From 57eee3c998cbe4db97ce0e74e995dde0573859d2 Mon Sep 17 00:00:00 2001 From: Jordan Keister Date: Fri, 6 Sep 2024 13:12:35 -0500 Subject: [PATCH 1/2] bumping constituent repos at once Signed-off-by: Jordan Keister --- go.mod | 37 +- go.sum | 74 +- .../containerd/containerd/archive/tar.go | 3 +- .../containerd/containerd/archive/tar_unix.go | 5 +- .../containerd/mount/mount_linux.go | 2 +- .../containerd/pkg/userns/userns_linux.go | 62 - .../pkg/userns/userns_unsupported.go | 25 - .../containerd/containerd/version/version.go | 2 +- .../containers/image/v5/version/version.go | 4 +- .../mattn/go-sqlite3/sqlite3-binding.c | 9075 ++++++++++------- .../mattn/go-sqlite3/sqlite3-binding.h | 116 +- vendor/github.com/mattn/go-sqlite3/sqlite3.go | 2 +- .../mattn/go-sqlite3/sqlite3_libsqlite3.go | 1 + .../mattn/go-sqlite3/sqlite3_opt_userauth.go | 2 +- vendor/github.com/moby/sys/userns/LICENSE | 202 + vendor/github.com/moby/sys/userns/userns.go | 16 + .../moby/sys/userns/userns_linux.go | 53 + .../moby/sys/userns/userns_linux_fuzzer.go | 8 + .../moby/sys/userns/userns_unsupported.go | 6 + vendor/github.com/onsi/ginkgo/v2/CHANGELOG.md | 7 + .../onsi/ginkgo/v2/types/version.go | 2 +- .../operators.coreos.com_catalogsources.yaml | 47 +- ...ors.coreos.com_clusterserviceversions.yaml | 301 +- .../operators.coreos.com_installplans.yaml | 5 +- .../crds/operators.coreos.com_olmconfigs.yaml | 28 +- ...erators.coreos.com_operatorconditions.yaml | 132 +- .../operators.coreos.com_operatorgroups.yaml | 33 +- .../crds/operators.coreos.com_operators.yaml | 3 +- .../operators.coreos.com_subscriptions.yaml | 133 +- .../operator-framework/api/crds/zz_defs.go | 16 +- .../api/pkg/constraints/cel.go | 6 +- .../operator-registry/alpha/model/model.go | 35 + .../operator-registry/pkg/api/api_to_model.go | 8 + vendor/go.etcd.io/bbolt/.go-version | 2 +- vendor/go.etcd.io/bbolt/Makefile | 13 + vendor/go.etcd.io/bbolt/db.go | 8 +- vendor/go.etcd.io/bbolt/freelist.go | 8 + vendor/go.etcd.io/bbolt/tx.go | 7 + .../x/crypto/internal/poly1305/sum_amd64.s | 133 +- .../x/crypto/salsa20/salsa/salsa20_amd64.s | 1742 ++-- vendor/golang.org/x/sys/cpu/cpu.go | 19 + .../golang.org/x/sys/cpu/cpu_linux_noinit.go | 2 +- .../golang.org/x/sys/cpu/cpu_linux_riscv64.go | 137 + vendor/golang.org/x/sys/cpu/cpu_riscv64.go | 11 +- vendor/golang.org/x/sys/unix/mkerrors.sh | 1 + .../golang.org/x/sys/unix/syscall_darwin.go | 37 + vendor/golang.org/x/sys/unix/syscall_hurd.go | 1 + .../x/sys/unix/zerrors_darwin_amd64.go | 7 + .../x/sys/unix/zerrors_darwin_arm64.go | 7 + .../x/sys/unix/zerrors_zos_s390x.go | 2 + .../x/sys/unix/zsyscall_darwin_amd64.go | 20 + .../x/sys/unix/zsyscall_darwin_amd64.s | 5 + .../x/sys/unix/zsyscall_darwin_arm64.go | 20 + .../x/sys/unix/zsyscall_darwin_arm64.s | 5 + .../x/sys/unix/ztypes_darwin_amd64.go | 13 + .../x/sys/unix/ztypes_darwin_arm64.go | 13 + .../x/sys/unix/ztypes_freebsd_386.go | 1 + .../x/sys/unix/ztypes_freebsd_amd64.go | 1 + .../x/sys/unix/ztypes_freebsd_arm.go | 1 + .../x/sys/unix/ztypes_freebsd_arm64.go | 1 + .../x/sys/unix/ztypes_freebsd_riscv64.go | 1 + vendor/golang.org/x/sys/unix/ztypes_linux.go | 2 +- .../x/sys/unix/ztypes_linux_riscv64.go | 33 + .../x/sys/windows/syscall_windows.go | 4 + .../golang.org/x/sys/windows/types_windows.go | 1 + .../x/sys/windows/zsyscall_windows.go | 38 + vendor/golang.org/x/term/term_windows.go | 1 + vendor/modules.txt | 48 +- 68 files changed, 7648 insertions(+), 5148 deletions(-) delete mode 100644 vendor/github.com/containerd/containerd/pkg/userns/userns_linux.go delete mode 100644 vendor/github.com/containerd/containerd/pkg/userns/userns_unsupported.go create mode 100644 vendor/github.com/moby/sys/userns/LICENSE create mode 100644 vendor/github.com/moby/sys/userns/userns.go create mode 100644 vendor/github.com/moby/sys/userns/userns_linux.go create mode 100644 vendor/github.com/moby/sys/userns/userns_linux_fuzzer.go create mode 100644 vendor/github.com/moby/sys/userns/userns_unsupported.go create mode 100644 vendor/golang.org/x/sys/cpu/cpu_linux_riscv64.go diff --git a/go.mod b/go.mod index 07fd3c15dc..ff6cab5cdb 100644 --- a/go.mod +++ b/go.mod @@ -17,12 +17,12 @@ require ( github.com/maxbrunsfeld/counterfeiter/v6 v6.8.1 github.com/mitchellh/hashstructure v1.1.0 github.com/mitchellh/mapstructure v1.5.0 - github.com/onsi/ginkgo/v2 v2.20.1 + github.com/onsi/ginkgo/v2 v2.20.2 github.com/onsi/gomega v1.34.2 github.com/openshift/api v3.9.0+incompatible github.com/openshift/client-go v0.0.0-20220525160904-9e1acff93e4a - github.com/operator-framework/api v0.26.0 - github.com/operator-framework/operator-registry v1.46.0 + github.com/operator-framework/api v0.27.0 + github.com/operator-framework/operator-registry v1.47.0 github.com/otiai10/copy v1.14.0 github.com/pkg/errors v0.9.1 github.com/prometheus/client_golang v1.20.0 @@ -32,10 +32,10 @@ require ( github.com/spf13/cobra v1.8.1 github.com/spf13/pflag v1.0.5 github.com/stretchr/testify v1.9.0 - golang.org/x/net v0.28.0 + golang.org/x/net v0.29.0 golang.org/x/sync v0.8.0 golang.org/x/time v0.6.0 - google.golang.org/grpc v1.65.0 + google.golang.org/grpc v1.66.0 gopkg.in/yaml.v2 v2.4.0 k8s.io/api v0.31.0 k8s.io/apiextensions-apiserver v0.31.0 @@ -64,7 +64,7 @@ require ( github.com/cenkalti/backoff/v4 v4.3.0 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/containerd/cgroups/v3 v3.0.3 // indirect - github.com/containerd/containerd v1.7.20 // indirect + github.com/containerd/containerd v1.7.21 // indirect github.com/containerd/containerd/api v1.7.19 // indirect github.com/containerd/continuity v0.4.2 // indirect github.com/containerd/errdefs v0.1.0 // indirect @@ -72,14 +72,14 @@ require ( github.com/containerd/platforms v0.2.1 // indirect github.com/containerd/ttrpc v1.2.5 // indirect github.com/containerd/typeurl/v2 v2.1.1 // indirect - github.com/containers/common v0.60.1 // indirect - github.com/containers/image/v5 v5.32.1 // indirect + github.com/containers/common v0.60.2 // indirect + github.com/containers/image/v5 v5.32.2 // indirect github.com/containers/libtrust v0.0.0-20230121012942-c1716e8a8d01 // indirect github.com/containers/ocicrypt v1.2.0 // indirect github.com/containers/storage v1.55.0 // indirect github.com/coreos/go-systemd/v22 v22.5.0 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect - github.com/docker/cli v27.1.2+incompatible // indirect + github.com/docker/cli v27.2.0+incompatible // indirect github.com/docker/distribution v2.8.3+incompatible // indirect github.com/docker/docker v27.1.1+incompatible // indirect github.com/docker/docker-credential-helpers v0.8.2 // indirect @@ -121,11 +121,12 @@ require ( github.com/mailru/easyjson v0.7.7 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.20 // indirect - github.com/mattn/go-sqlite3 v1.14.22 // indirect + github.com/mattn/go-sqlite3 v1.14.23 // indirect github.com/moby/locker v1.0.1 // indirect github.com/moby/sys/mountinfo v0.7.2 // indirect github.com/moby/sys/sequential v0.5.0 // indirect - github.com/moby/sys/user v0.2.0 // indirect + github.com/moby/sys/user v0.3.0 // indirect + github.com/moby/sys/userns v0.1.0 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect @@ -137,7 +138,7 @@ require ( github.com/stoewer/go-strcase v1.3.0 // indirect github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635 // indirect github.com/x448/float16 v0.8.4 // indirect - go.etcd.io/bbolt v1.3.10 // indirect + go.etcd.io/bbolt v1.3.11 // indirect go.etcd.io/etcd/api/v3 v3.5.14 // indirect go.etcd.io/etcd/client/pkg/v3 v3.5.14 // indirect go.etcd.io/etcd/client/v3 v3.5.14 // indirect @@ -153,17 +154,17 @@ require ( go.opentelemetry.io/proto/otlp v1.3.1 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.26.0 // indirect - golang.org/x/crypto v0.26.0 // indirect + golang.org/x/crypto v0.27.0 // indirect golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 // indirect - golang.org/x/mod v0.20.0 // indirect + golang.org/x/mod v0.21.0 // indirect golang.org/x/oauth2 v0.22.0 // indirect - golang.org/x/sys v0.24.0 // indirect - golang.org/x/term v0.23.0 // indirect - golang.org/x/text v0.17.0 // indirect + golang.org/x/sys v0.25.0 // indirect + golang.org/x/term v0.24.0 // indirect + golang.org/x/text v0.18.0 // indirect golang.org/x/tools v0.24.0 // indirect gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240604185151-ef581f913117 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240701130421-f6361c86f094 // indirect google.golang.org/protobuf v1.34.2 // indirect gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect diff --git a/go.sum b/go.sum index 9e4e0f19f4..b069a0b26e 100644 --- a/go.sum +++ b/go.sum @@ -1383,8 +1383,8 @@ github.com/cncf/xds/go v0.0.0-20231109132714-523115ebc101/go.mod h1:eXthEFrGJvWH github.com/cncf/xds/go v0.0.0-20231128003011-0fa0005c9caa/go.mod h1:x/1Gn8zydmfq8dk6e9PdstVsDgu9RuyIIJqAaF//0IM= github.com/containerd/cgroups/v3 v3.0.3 h1:S5ByHZ/h9PMe5IOQoN7E+nMc2UcLEM/V48DGDJ9kip0= github.com/containerd/cgroups/v3 v3.0.3/go.mod h1:8HBe7V3aWGLFPd/k03swSIsGjZhHI2WzJmticMgVuz0= -github.com/containerd/containerd v1.7.20 h1:Sl6jQYk3TRavaU83h66QMbI2Nqg9Jm6qzwX57Vsn1SQ= -github.com/containerd/containerd v1.7.20/go.mod h1:52GsS5CwquuqPuLncsXwG0t2CiUce+KsNHJZQJvAgR0= +github.com/containerd/containerd v1.7.21 h1:USGXRK1eOC/SX0L195YgxTHb0a00anxajOzgfN0qrCA= +github.com/containerd/containerd v1.7.21/go.mod h1:e3Jz1rYRUZ2Lt51YrH9Rz0zPyJBOlSvB3ghr2jbVD8g= github.com/containerd/containerd/api v1.7.19 h1:VWbJL+8Ap4Ju2mx9c9qS1uFSB1OVYr5JJrW2yT5vFoA= github.com/containerd/containerd/api v1.7.19/go.mod h1:fwGavl3LNwAV5ilJ0sbrABL44AQxmNjDRcwheXDb6Ig= github.com/containerd/continuity v0.4.2 h1:v3y/4Yz5jwnvqPKJJ+7Wf93fyWoCB3F5EclWG023MDM= @@ -1399,10 +1399,10 @@ github.com/containerd/ttrpc v1.2.5 h1:IFckT1EFQoFBMG4c3sMdT8EP3/aKfumK1msY+Ze4oL github.com/containerd/ttrpc v1.2.5/go.mod h1:YCXHsb32f+Sq5/72xHubdiJRQY9inL4a4ZQrAbN1q9o= github.com/containerd/typeurl/v2 v2.1.1 h1:3Q4Pt7i8nYwy2KmQWIw2+1hTvwTE/6w9FqcttATPO/4= github.com/containerd/typeurl/v2 v2.1.1/go.mod h1:IDp2JFvbwZ31H8dQbEIY7sDl2L3o3HZj1hsSQlywkQ0= -github.com/containers/common v0.60.1 h1:hMJNKfDxfXY91zD7mr4t/Ybe8JbAsTq5nkrUaCqTKsA= -github.com/containers/common v0.60.1/go.mod h1:tB0DRxznmHviECVHnqgWbl+8AVCSMZLA8qe7+U7KD6k= -github.com/containers/image/v5 v5.32.1 h1:fVa7GxRC4BCPGsfSRs4JY12WyeY26SUYQ0NuANaCFrI= -github.com/containers/image/v5 v5.32.1/go.mod h1:v1l73VeMugfj/QtKI+jhYbwnwFCFnNGckvbST3rQ5Hk= +github.com/containers/common v0.60.2 h1:utcwp2YkO8c0mNlwRxsxfOiqfj157FRrBjxgjR6f+7o= +github.com/containers/common v0.60.2/go.mod h1:I0upBi1qJX3QmzGbUOBN1LVP6RvkKhd3qQpZbQT+Q54= +github.com/containers/image/v5 v5.32.2 h1:SzNE2Y6sf9b1GJoC8qjCuMBXwQrACFp4p0RK15+4gmQ= +github.com/containers/image/v5 v5.32.2/go.mod h1:v1l73VeMugfj/QtKI+jhYbwnwFCFnNGckvbST3rQ5Hk= github.com/containers/libtrust v0.0.0-20230121012942-c1716e8a8d01 h1:Qzk5C6cYglewc+UyGf6lc8Mj2UaPTHy/iF2De0/77CA= github.com/containers/libtrust v0.0.0-20230121012942-c1716e8a8d01/go.mod h1:9rfv8iPl1ZP7aqh9YA68wnZv2NUDbXdcdPHVz0pFbPY= github.com/containers/ocicrypt v1.2.0 h1:X14EgRK3xNFvJEfI5O4Qn4T3E25ANudSOZz/sirVuPM= @@ -1425,8 +1425,8 @@ github.com/distribution/distribution/v3 v3.0.0-beta.1 h1:X+ELTxPuZ1Xe5MsD3kp2wfG github.com/distribution/distribution/v3 v3.0.0-beta.1/go.mod h1:O9O8uamhHzWWQVTjuQpyYUVm/ShPHPUDgvQMpHGVBDs= github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5QvfrDyIgxBk= github.com/distribution/reference v0.6.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/cli v27.1.2+incompatible h1:nYviRv5Y+YAKx3dFrTvS1ErkyVVunKOhoweCTE1BsnI= -github.com/docker/cli v27.1.2+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= +github.com/docker/cli v27.2.0+incompatible h1:yHD1QEB1/0vr5eBNpu8tncu8gWxg8EydFPOSKHzXSMM= +github.com/docker/cli v27.2.0+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/distribution v2.8.3+incompatible h1:AtKxIZ36LoNK51+Z6RpzLpddBirtxJnzDrHLEKxTAYk= github.com/docker/distribution v2.8.3+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= github.com/docker/docker v27.1.1+incompatible h1:hO/M4MtV36kzKldqnA37IWhebRA+LnqqcqDja6kVaKY= @@ -1777,8 +1777,8 @@ github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D github.com/mattn/go-sqlite3 v1.14.14/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= github.com/mattn/go-sqlite3 v1.14.15/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= github.com/mattn/go-sqlite3 v1.14.16/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= -github.com/mattn/go-sqlite3 v1.14.22 h1:2gZY6PC6kBnID23Tichd1K+Z0oS6nE/XwU+Vz/5o4kU= -github.com/mattn/go-sqlite3 v1.14.22/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= +github.com/mattn/go-sqlite3 v1.14.23 h1:gbShiuAP1W5j9UOksQ06aiiqPMxYecovVGwmTxWtuw0= +github.com/mattn/go-sqlite3 v1.14.23/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= github.com/maxbrunsfeld/counterfeiter/v6 v6.8.1 h1:NicmruxkeqHjDv03SfSxqmaLuisddudfP3h5wdXFbhM= github.com/maxbrunsfeld/counterfeiter/v6 v6.8.1/go.mod h1:eyp4DdUJAKkr9tvxR3jWhw2mDK7CWABMG5r9uyaKC7I= github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8/go.mod h1:mC1jAcsrzbxHt8iiaC+zU4b1ylILSosueou12R++wfY= @@ -1793,8 +1793,10 @@ github.com/moby/sys/mountinfo v0.7.2 h1:1shs6aH5s4o5H2zQLn796ADW1wMrIwHsyJ2v9Kou github.com/moby/sys/mountinfo v0.7.2/go.mod h1:1YOa8w8Ih7uW0wALDUgT1dTTSBrZ+HiBLGws92L2RU4= github.com/moby/sys/sequential v0.5.0 h1:OPvI35Lzn9K04PBbCLW0g4LcFAJgHsvXsRyewg5lXtc= github.com/moby/sys/sequential v0.5.0/go.mod h1:tH2cOOs5V9MlPiXcQzRC+eEyab644PWKGRYaaV5ZZlo= -github.com/moby/sys/user v0.2.0 h1:OnpapJsRp25vkhw8TFG6OLJODNh/3rEwRWtJ3kakwRM= -github.com/moby/sys/user v0.2.0/go.mod h1:RYstrcWOJpVh+6qzUqp2bU3eaRpdiQeKGlKitaH0PM8= +github.com/moby/sys/user v0.3.0 h1:9ni5DlcW5an3SvRSx4MouotOygvzaXbaSrc/wGDFWPo= +github.com/moby/sys/user v0.3.0/go.mod h1:bG+tYYYJgaMtRKgEmuueC0hJEAZWwtIbZTB+85uoHjs= +github.com/moby/sys/userns v0.1.0 h1:tVLXkFOxVu9A64/yh59slHVv9ahO9UIev4JZusOLG/g= +github.com/moby/sys/userns v0.1.0/go.mod h1:IHUYgu/kao6N8YZlp9Cf444ySSvCmDlmzUcYfDHOl28= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -1806,8 +1808,8 @@ github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= -github.com/onsi/ginkgo/v2 v2.20.1 h1:YlVIbqct+ZmnEph770q9Q7NVAz4wwIiVNahee6JyUzo= -github.com/onsi/ginkgo/v2 v2.20.1/go.mod h1:lG9ey2Z29hR41WMVthyJBGUBcBhGOtoPF2VFMvBXFCI= +github.com/onsi/ginkgo/v2 v2.20.2 h1:7NVCeyIWROIAheY21RLS+3j2bb52W0W82tkberYytp4= +github.com/onsi/ginkgo/v2 v2.20.2/go.mod h1:K9gyxPIlb+aIvnZ8bd9Ak+YP18w3APlR+5coaZoE2ag= github.com/onsi/gomega v1.34.2 h1:pNCwDkzrsv7MS9kpaQvVb1aVLahQXyJ/Tv5oAZMI3i8= github.com/onsi/gomega v1.34.2/go.mod h1:v1xfxRgk0KIsG+QOdm7p8UosrOzPYRo60fd3B/1Dukc= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= @@ -1820,10 +1822,10 @@ github.com/openshift/api v0.0.0-20221021112143-4226c2167e40 h1:PxjGCA72RtsdHWToZ github.com/openshift/api v0.0.0-20221021112143-4226c2167e40/go.mod h1:aQ6LDasvHMvHZXqLHnX2GRmnfTWCF/iIwz8EMTTIE9A= github.com/openshift/client-go v0.0.0-20221019143426-16aed247da5c h1:CV76yFOTXmq9VciBR3Bve5ZWzSxdft7gaMVB3kS0rwg= github.com/openshift/client-go v0.0.0-20221019143426-16aed247da5c/go.mod h1:lFMO8mLHXWFzSdYvGNo8ivF9SfF6zInA8ZGw4phRnUE= -github.com/operator-framework/api v0.26.0 h1:YVntU2NkVl5zSLLwK5kFcH6P3oSvN9QDgTsY9mb4yUM= -github.com/operator-framework/api v0.26.0/go.mod h1:3IxOwzVUeGxYlzfwKCcfCyS+q3EEhWA/4kv7UehbeyM= -github.com/operator-framework/operator-registry v1.46.0 h1:t10Ej4QHsHhHswsJ/MO1WAc7LW91wb1nMCrnD6+sRV0= -github.com/operator-framework/operator-registry v1.46.0/go.mod h1:tZjUHP8WUphLj/0/mkyOGdBGtrBnrn5Hj/hHnmNIybs= +github.com/operator-framework/api v0.27.0 h1:OrVaGKZJvbZo58HTv2guz7aURkhVKYhFqZ/6VpifiXI= +github.com/operator-framework/api v0.27.0/go.mod h1:lg2Xx+S8NQWGYlEOvFwQvH46E5EK5IrAIL7HWfAhciM= +github.com/operator-framework/operator-registry v1.47.0 h1:Imr7X/W6FmXczwpIOXfnX8d6Snr1dzwWxkMG+lLAfhg= +github.com/operator-framework/operator-registry v1.47.0/go.mod h1:CJ3KcP8uRxtC8l9caM1RsV7r7jYlKAd452tcxcgXyTQ= github.com/otiai10/copy v1.14.0 h1:dCI/t1iTdYGtkvCuBG2BgR6KZa83PTclw4U5n2wAllU= github.com/otiai10/copy v1.14.0/go.mod h1:ECfuL02W+/FkTWZWgQqXPWZgW9oeKCSQ5qVfSc4qc4w= github.com/otiai10/mint v1.5.1 h1:XaPLeE+9vGbuyEHem1JNk3bYc7KKqyI/na0/mLd/Kks= @@ -1931,8 +1933,8 @@ github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5t github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0= github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= go.einride.tech/aip v0.66.0/go.mod h1:qAhMsfT7plxBX+Oy7Huol6YUvZ0ZzdUz26yZsQwfl1M= -go.etcd.io/bbolt v1.3.10 h1:+BqfJTcCzTItrop8mq/lbzL8wSGtj94UO/3U31shqG0= -go.etcd.io/bbolt v1.3.10/go.mod h1:bK3UQLPJZly7IlNmV7uVHJDxfe5aK9Ll93e/74Y9oEQ= +go.etcd.io/bbolt v1.3.11 h1:yGEzV1wPz2yVCLsD8ZAiGHhHVlczyC9d1rP43/VCRJ0= +go.etcd.io/bbolt v1.3.11/go.mod h1:dksAq7YMXoljX0xu6VF5DMZGbhYYoLUalEiSySYAS4I= go.etcd.io/etcd/api/v3 v3.5.14 h1:vHObSCxyB9zlF60w7qzAdTcGaglbJOpSj1Xj9+WGxq0= go.etcd.io/etcd/api/v3 v3.5.14/go.mod h1:BmtWcRlQvwa1h3G2jvKYwIQy4PkHlDej5t7uLMUdJUU= go.etcd.io/etcd/client/pkg/v3 v3.5.14 h1:SaNH6Y+rVEdxfpA2Jr5wkEvN6Zykme5+YnbCkxvuWxQ= @@ -1996,8 +1998,8 @@ go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+Gf go.opentelemetry.io/otel/sdk v1.21.0/go.mod h1:Nna6Yv7PWTdgJHVRD9hIYywQBRx7pbox6nwBnZIxl/E= go.opentelemetry.io/otel/sdk v1.28.0 h1:b9d7hIry8yZsgtbmM0DKyPWMMUMlK9NEKuIG4aBqWyE= go.opentelemetry.io/otel/sdk v1.28.0/go.mod h1:oYj7ClPUA7Iw3m+r7GeEjz0qckQRJK2B8zjcZEfu7Pg= -go.opentelemetry.io/otel/sdk/metric v1.21.0 h1:smhI5oD714d6jHE6Tie36fPx4WDFIg+Y6RfAY4ICcR0= -go.opentelemetry.io/otel/sdk/metric v1.21.0/go.mod h1:FJ8RAsoPGv/wYMgBdUJXOm+6pzFY3YdljnXtv1SBE8Q= +go.opentelemetry.io/otel/sdk/metric v1.28.0 h1:OkuaKgKrgAbYrrY0t92c+cC+2F6hsFNnCQArXCKlg08= +go.opentelemetry.io/otel/sdk/metric v1.28.0/go.mod h1:cWPjykihLAPvXKi4iZc1dpER3Jdq2Z0YLse3moQUCpg= go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= go.opentelemetry.io/otel/trace v1.21.0/go.mod h1:LGbsEB0f9LGjN+OZaQQ26sohbOmiMR+BaslueVtS/qQ= go.opentelemetry.io/otel/trace v1.22.0/go.mod h1:RbbHXVqKES9QhzZq/fE5UnOSILqRt40a21sPw2He1xo= @@ -2040,8 +2042,8 @@ golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= -golang.org/x/crypto v0.26.0 h1:RrRspgV4mU+YwB4FYnuBoKsUapNIL5cohGAmSH3azsw= -golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54= +golang.org/x/crypto v0.27.0 h1:GXm2NjJrPaiv/h1tb2UH8QfgC/hOf/+z0p6PT8o1w7A= +golang.org/x/crypto v0.27.0/go.mod h1:1Xngt8kV6Dvbssa53Ziq6Eqn0HqbZi5Z6R0ZpwQzt70= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -2107,8 +2109,8 @@ golang.org/x/mod v0.10.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.13.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= -golang.org/x/mod v0.20.0 h1:utOm6MM3R3dnawAiJgn0y+xvuYRsm1RKM/4giyfDgV0= -golang.org/x/mod v0.20.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.21.0 h1:vvrHzRwRfVKSiLrG+d4FMl/Qi4ukBCE6kZlTUkDYRT0= +golang.org/x/mod v0.21.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -2176,8 +2178,8 @@ golang.org/x/net v0.18.0/go.mod h1:/czyP5RqHAH4odGYxBJ1qz0+CE5WZ+2j1YgoEo8F2jQ= golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= -golang.org/x/net v0.28.0 h1:a9JDOJc5GMUJ0+UDqmLT86WiEy7iWyIhz8gz8E4e5hE= -golang.org/x/net v0.28.0/go.mod h1:yqtgsTWOOnlGLG9GFRrK3++bGOUEkNBoHZc8MEDWPNg= +golang.org/x/net v0.29.0 h1:5ORfpBpCs4HzDYoodCDBbwHzdR5UrLBZ3sOnUJmFoHo= +golang.org/x/net v0.29.0/go.mod h1:gLkgy8jTGERgjzMic6DS9+SP0ajcu6Xu3Orq/SpETg0= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -2324,8 +2326,8 @@ golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.24.0 h1:Twjiwq9dn6R1fQcyiK+wQyHWfaz/BJB+YIpzU/Cv3Xg= -golang.org/x/sys v0.24.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.25.0 h1:r+8e+loiHxRqhXVl6ML1nO3l1+oFoWbnlu2Ehimmi34= +golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= @@ -2343,8 +2345,8 @@ golang.org/x/term v0.14.0/go.mod h1:TySc+nGkYR6qt8km8wUhuFRTVSMIX3XPR58y2lC8vww= golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= -golang.org/x/term v0.23.0 h1:F6D4vR+EHoL9/sWAWgAR1H2DcHr4PareCbAaCo1RpuU= -golang.org/x/term v0.23.0/go.mod h1:DgV24QBUrK6jhZXl+20l6UWznPlwAHm1Q1mGHtydmSk= +golang.org/x/term v0.24.0 h1:Mh5cbb+Zk2hqqXNO7S1iTjEphVL+jb8ZWaqh/g+JWkM= +golang.org/x/term v0.24.0/go.mod h1:lOBK/LVxemqiMij05LGJ0tzNr8xlmwBRJ81PX6wVLH8= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -2364,8 +2366,8 @@ golang.org/x/text v0.10.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/text v0.17.0 h1:XtiM5bkSOt+ewxlOE/aE/AKEHibwj/6gvWMl9Rsh0Qc= -golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= +golang.org/x/text v0.18.0 h1:XvMDiNzPAl0jr17s6W9lcaIhGUfUORdGCNsuLmPG224= +golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -2728,8 +2730,8 @@ google.golang.org/genproto/googleapis/api v0.0.0-20240125205218-1f4bbc51befe/go. google.golang.org/genproto/googleapis/api v0.0.0-20240205150955-31a09d347014/go.mod h1:rbHMSEDyoYX62nRVLOCc4Qt1HbsdytAYoVwgjiOhF3I= google.golang.org/genproto/googleapis/api v0.0.0-20240213162025-012b6fc9bca9/go.mod h1:PVreiBMirk8ypES6aw9d4p6iiBNSIfZEBqr3UGoAi2E= google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:5iCWqnniDlqZHrd3neWVTOwvh/v6s3232omMecelax8= -google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 h1:7whR9kGa5LUwFtpLm2ArCEejtnxlGeLbAyjFY8sGNFw= -google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157/go.mod h1:99sLkeliLXfdj2J75X3Ho+rrVCaJze0uwN7zDDkjPVU= +google.golang.org/genproto/googleapis/api v0.0.0-20240604185151-ef581f913117 h1:+rdxYoE3E5htTEWIe15GlN6IfvbURM//Jt0mmkmm6ZU= +google.golang.org/genproto/googleapis/api v0.0.0-20240604185151-ef581f913117/go.mod h1:OimBR/bc1wPO9iV4NC2bpyjy3VnAwZh5EBPQdtaE5oo= google.golang.org/genproto/googleapis/bytestream v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:ylj+BE99M198VPbBh6A8d9n3w8fChvyLK3wwBOjXBFA= google.golang.org/genproto/googleapis/bytestream v0.0.0-20230807174057-1744710a1577/go.mod h1:NjCQG/D8JandXxM57PZbAJL1DCNL6EypA0vPPwfsc7c= google.golang.org/genproto/googleapis/bytestream v0.0.0-20231030173426-d783a09b4405/go.mod h1:GRUCuLdzVqZte8+Dl/D4N25yLzcGqqWaYkeVOwulFqw= diff --git a/vendor/github.com/containerd/containerd/archive/tar.go b/vendor/github.com/containerd/containerd/archive/tar.go index cdc7e14bfd..c61f89ec8d 100644 --- a/vendor/github.com/containerd/containerd/archive/tar.go +++ b/vendor/github.com/containerd/containerd/archive/tar.go @@ -29,9 +29,10 @@ import ( "syscall" "time" + "github.com/moby/sys/userns" + "github.com/containerd/containerd/archive/tarheader" "github.com/containerd/containerd/pkg/epoch" - "github.com/containerd/containerd/pkg/userns" "github.com/containerd/continuity/fs" "github.com/containerd/log" ) diff --git a/vendor/github.com/containerd/containerd/archive/tar_unix.go b/vendor/github.com/containerd/containerd/archive/tar_unix.go index 8e883eee62..fa61100609 100644 --- a/vendor/github.com/containerd/containerd/archive/tar_unix.go +++ b/vendor/github.com/containerd/containerd/archive/tar_unix.go @@ -27,10 +27,11 @@ import ( "strings" "syscall" - "github.com/containerd/containerd/pkg/userns" + "github.com/moby/sys/userns" + "golang.org/x/sys/unix" + "github.com/containerd/continuity/fs" "github.com/containerd/continuity/sysx" - "golang.org/x/sys/unix" ) func chmodTarEntry(perm os.FileMode) os.FileMode { diff --git a/vendor/github.com/containerd/containerd/mount/mount_linux.go b/vendor/github.com/containerd/containerd/mount/mount_linux.go index 34aa639bb6..402def9c79 100644 --- a/vendor/github.com/containerd/containerd/mount/mount_linux.go +++ b/vendor/github.com/containerd/containerd/mount/mount_linux.go @@ -26,7 +26,7 @@ import ( "strings" "time" - "github.com/containerd/containerd/pkg/userns" + "github.com/moby/sys/userns" "golang.org/x/sys/unix" ) diff --git a/vendor/github.com/containerd/containerd/pkg/userns/userns_linux.go b/vendor/github.com/containerd/containerd/pkg/userns/userns_linux.go deleted file mode 100644 index 6656465efb..0000000000 --- a/vendor/github.com/containerd/containerd/pkg/userns/userns_linux.go +++ /dev/null @@ -1,62 +0,0 @@ -/* - Copyright The containerd Authors. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -package userns - -import ( - "bufio" - "fmt" - "os" - "sync" -) - -var ( - inUserNS bool - nsOnce sync.Once -) - -// RunningInUserNS detects whether we are currently running in a user namespace. -// Originally copied from github.com/lxc/lxd/shared/util.go -func RunningInUserNS() bool { - nsOnce.Do(func() { - file, err := os.Open("/proc/self/uid_map") - if err != nil { - // This kernel-provided file only exists if user namespaces are supported - return - } - defer file.Close() - - buf := bufio.NewReader(file) - l, _, err := buf.ReadLine() - if err != nil { - return - } - - line := string(l) - var a, b, c int64 - fmt.Sscanf(line, "%d %d %d", &a, &b, &c) - - /* - * We assume we are in the initial user namespace if we have a full - * range - 4294967295 uids starting at uid 0. - */ - if a == 0 && b == 0 && c == 4294967295 { - return - } - inUserNS = true - }) - return inUserNS -} diff --git a/vendor/github.com/containerd/containerd/pkg/userns/userns_unsupported.go b/vendor/github.com/containerd/containerd/pkg/userns/userns_unsupported.go deleted file mode 100644 index c67f773d0a..0000000000 --- a/vendor/github.com/containerd/containerd/pkg/userns/userns_unsupported.go +++ /dev/null @@ -1,25 +0,0 @@ -//go:build !linux - -/* - Copyright The containerd Authors. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -package userns - -// RunningInUserNS is a stub for non-Linux systems -// Always returns false -func RunningInUserNS() bool { - return false -} diff --git a/vendor/github.com/containerd/containerd/version/version.go b/vendor/github.com/containerd/containerd/version/version.go index d9fdca5665..315867d21f 100644 --- a/vendor/github.com/containerd/containerd/version/version.go +++ b/vendor/github.com/containerd/containerd/version/version.go @@ -23,7 +23,7 @@ var ( Package = "github.com/containerd/containerd" // Version holds the complete version number. Filled in at linking time. - Version = "1.7.20+unknown" + Version = "1.7.21+unknown" // Revision is filled with the VCS (e.g. git) revision being used to build // the program at linking time. diff --git a/vendor/github.com/containers/image/v5/version/version.go b/vendor/github.com/containers/image/v5/version/version.go index 19f708adb9..64e4687259 100644 --- a/vendor/github.com/containers/image/v5/version/version.go +++ b/vendor/github.com/containers/image/v5/version/version.go @@ -6,9 +6,9 @@ const ( // VersionMajor is for an API incompatible changes VersionMajor = 5 // VersionMinor is for functionality in a backwards-compatible manner - VersionMinor = 33 + VersionMinor = 32 // VersionPatch is for backwards-compatible bug fixes - VersionPatch = 1 + VersionPatch = 2 // VersionDev indicates development branch. Releases will be empty string. VersionDev = "" diff --git a/vendor/github.com/mattn/go-sqlite3/sqlite3-binding.c b/vendor/github.com/mattn/go-sqlite3/sqlite3-binding.c index 53d7560ecf..52ee2a3dcc 100644 --- a/vendor/github.com/mattn/go-sqlite3/sqlite3-binding.c +++ b/vendor/github.com/mattn/go-sqlite3/sqlite3-binding.c @@ -1,7 +1,7 @@ #ifndef USE_LIBSQLITE3 /****************************************************************************** ** This file is an amalgamation of many separate C source files from SQLite -** version 3.45.1. By combining all the individual C code files into this +** version 3.46.1. By combining all the individual C code files into this ** single large file, the entire code can be compiled as a single translation ** unit. This allows many compilers to do optimizations that would not be ** possible if the files were compiled separately. Performance improvements @@ -19,7 +19,7 @@ ** separate file. This file contains only code for the core SQLite library. ** ** The content in this amalgamation comes from Fossil check-in -** e876e51a0ed5c5b3126f52e532044363a014. +** c9c2ab54ba1f5f46360f1b4f35d849cd3f08. */ #define SQLITE_CORE 1 #define SQLITE_AMALGAMATION 1 @@ -460,9 +460,9 @@ extern "C" { ** [sqlite3_libversion_number()], [sqlite3_sourceid()], ** [sqlite_version()] and [sqlite_source_id()]. */ -#define SQLITE_VERSION "3.45.1" -#define SQLITE_VERSION_NUMBER 3045001 -#define SQLITE_SOURCE_ID "2024-01-30 16:01:20 e876e51a0ed5c5b3126f52e532044363a014bc594cfefa87ffb5b82257cc467a" +#define SQLITE_VERSION "3.46.1" +#define SQLITE_VERSION_NUMBER 3046001 +#define SQLITE_SOURCE_ID "2024-08-13 09:16:08 c9c2ab54ba1f5f46360f1b4f35d849cd3f080e6fc2b6c60e91b16c63f69a1e33" /* ** CAPI3REF: Run-Time Library Version Numbers @@ -734,6 +734,8 @@ typedef int (*sqlite3_callback)(void*,int,char**, char**); ** the 1st parameter to sqlite3_exec() while sqlite3_exec() is running. **
  • The application must not modify the SQL statement text passed into ** the 2nd parameter of sqlite3_exec() while sqlite3_exec() is running. +**
  • The application must not dereference the arrays or string pointers +** passed as the 3rd and 4th callback parameters after it returns. ** */ SQLITE_API int sqlite3_exec( @@ -1076,11 +1078,11 @@ struct sqlite3_file { ** ** xLock() upgrades the database file lock. In other words, xLock() moves the ** database file lock in the direction NONE toward EXCLUSIVE. The argument to -** xLock() is always on of SHARED, RESERVED, PENDING, or EXCLUSIVE, never +** xLock() is always one of SHARED, RESERVED, PENDING, or EXCLUSIVE, never ** SQLITE_LOCK_NONE. If the database file lock is already at or above the ** requested lock, then the call to xLock() is a no-op. ** xUnlock() downgrades the database file lock to either SHARED or NONE. -* If the lock is already at or below the requested lock state, then the call +** If the lock is already at or below the requested lock state, then the call ** to xUnlock() is a no-op. ** The xCheckReservedLock() method checks whether any database connection, ** either in this process or in some other process, is holding a RESERVED, @@ -2455,6 +2457,22 @@ struct sqlite3_mem_methods { ** configuration setting is never used, then the default maximum is determined ** by the [SQLITE_MEMDB_DEFAULT_MAXSIZE] compile-time option. If that ** compile-time option is not set, then the default maximum is 1073741824. +** +** [[SQLITE_CONFIG_ROWID_IN_VIEW]] +**
    SQLITE_CONFIG_ROWID_IN_VIEW +**
    The SQLITE_CONFIG_ROWID_IN_VIEW option enables or disables the ability +** for VIEWs to have a ROWID. The capability can only be enabled if SQLite is +** compiled with -DSQLITE_ALLOW_ROWID_IN_VIEW, in which case the capability +** defaults to on. This configuration option queries the current setting or +** changes the setting to off or on. The argument is a pointer to an integer. +** If that integer initially holds a value of 1, then the ability for VIEWs to +** have ROWIDs is activated. If the integer initially holds zero, then the +** ability is deactivated. Any other initial value for the integer leaves the +** setting unchanged. After changes, if any, the integer is written with +** a 1 or 0, if the ability for VIEWs to have ROWIDs is on or off. If SQLite +** is compiled without -DSQLITE_ALLOW_ROWID_IN_VIEW (which is the usual and +** recommended case) then the integer is always filled with zero, regardless +** if its initial value. ** */ #define SQLITE_CONFIG_SINGLETHREAD 1 /* nil */ @@ -2486,6 +2504,7 @@ struct sqlite3_mem_methods { #define SQLITE_CONFIG_SMALL_MALLOC 27 /* boolean */ #define SQLITE_CONFIG_SORTERREF_SIZE 28 /* int nByte */ #define SQLITE_CONFIG_MEMDB_MAXSIZE 29 /* sqlite3_int64 */ +#define SQLITE_CONFIG_ROWID_IN_VIEW 30 /* int* */ /* ** CAPI3REF: Database Connection Configuration Options @@ -3600,8 +3619,8 @@ SQLITE_API int sqlite3_set_authorizer( #define SQLITE_RECURSIVE 33 /* NULL NULL */ /* -** CAPI3REF: Tracing And Profiling Functions -** METHOD: sqlite3 +** CAPI3REF: Deprecated Tracing And Profiling Functions +** DEPRECATED ** ** These routines are deprecated. Use the [sqlite3_trace_v2()] interface ** instead of the routines described here. @@ -7182,6 +7201,12 @@ SQLITE_API int sqlite3_autovacuum_pages( ** The exceptions defined in this paragraph might change in a future ** release of SQLite. ** +** Whether the update hook is invoked before or after the +** corresponding change is currently unspecified and may differ +** depending on the type of change. Do not rely on the order of the +** hook call with regards to the final result of the operation which +** triggers the hook. +** ** The update hook implementation must not do anything that will modify ** the database connection that invoked the update hook. Any actions ** to modify the database connection must be deferred until after the @@ -8652,7 +8677,7 @@ SQLITE_API int sqlite3_test_control(int op, ...); ** The sqlite3_keyword_count() interface returns the number of distinct ** keywords understood by SQLite. ** -** The sqlite3_keyword_name(N,Z,L) interface finds the N-th keyword and +** The sqlite3_keyword_name(N,Z,L) interface finds the 0-based N-th keyword and ** makes *Z point to that keyword expressed as UTF8 and writes the number ** of bytes in the keyword into *L. The string that *Z points to is not ** zero-terminated. The sqlite3_keyword_name(N,Z,L) routine returns @@ -10231,24 +10256,45 @@ SQLITE_API const char *sqlite3_vtab_collation(sqlite3_index_info*,int); **
  • ** ^(If the sqlite3_vtab_distinct() interface returns 2, that means ** that the query planner does not need the rows returned in any particular -** order, as long as rows with the same values in all "aOrderBy" columns -** are adjacent.)^ ^(Furthermore, only a single row for each particular -** combination of values in the columns identified by the "aOrderBy" field -** needs to be returned.)^ ^It is always ok for two or more rows with the same -** values in all "aOrderBy" columns to be returned, as long as all such rows -** are adjacent. ^The virtual table may, if it chooses, omit extra rows -** that have the same value for all columns identified by "aOrderBy". -** ^However omitting the extra rows is optional. +** order, as long as rows with the same values in all columns identified +** by "aOrderBy" are adjacent.)^ ^(Furthermore, when two or more rows +** contain the same values for all columns identified by "colUsed", all but +** one such row may optionally be omitted from the result.)^ +** The virtual table is not required to omit rows that are duplicates +** over the "colUsed" columns, but if the virtual table can do that without +** too much extra effort, it could potentially help the query to run faster. ** This mode is used for a DISTINCT query. **

  • -** ^(If the sqlite3_vtab_distinct() interface returns 3, that means -** that the query planner needs only distinct rows but it does need the -** rows to be sorted.)^ ^The virtual table implementation is free to omit -** rows that are identical in all aOrderBy columns, if it wants to, but -** it is not required to omit any rows. This mode is used for queries +** ^(If the sqlite3_vtab_distinct() interface returns 3, that means the +** virtual table must return rows in the order defined by "aOrderBy" as +** if the sqlite3_vtab_distinct() interface had returned 0. However if +** two or more rows in the result have the same values for all columns +** identified by "colUsed", then all but one such row may optionally be +** omitted.)^ Like when the return value is 2, the virtual table +** is not required to omit rows that are duplicates over the "colUsed" +** columns, but if the virtual table can do that without +** too much extra effort, it could potentially help the query to run faster. +** This mode is used for queries ** that have both DISTINCT and ORDER BY clauses. ** ** +**

    The following table summarizes the conditions under which the +** virtual table is allowed to set the "orderByConsumed" flag based on +** the value returned by sqlite3_vtab_distinct(). This table is a +** restatement of the previous four paragraphs: +** +** +** +**
    sqlite3_vtab_distinct() return value +** Rows are returned in aOrderBy order +** Rows with the same value in all aOrderBy columns are adjacent +** Duplicates over all colUsed columns may be omitted +**
    0yesyesno +**
    1noyesno +**
    2noyesyes +**
    3yesyesyes +**
    +** ** ^For the purposes of comparing virtual table output values to see if the ** values are same value for sorting purposes, two NULL values are considered ** to be the same. In other words, the comparison operator is "IS" @@ -12293,6 +12339,30 @@ SQLITE_API int sqlite3changegroup_schema(sqlite3_changegroup*, sqlite3*, const c */ SQLITE_API int sqlite3changegroup_add(sqlite3_changegroup*, int nData, void *pData); +/* +** CAPI3REF: Add A Single Change To A Changegroup +** METHOD: sqlite3_changegroup +** +** This function adds the single change currently indicated by the iterator +** passed as the second argument to the changegroup object. The rules for +** adding the change are just as described for [sqlite3changegroup_add()]. +** +** If the change is successfully added to the changegroup, SQLITE_OK is +** returned. Otherwise, an SQLite error code is returned. +** +** The iterator must point to a valid entry when this function is called. +** If it does not, SQLITE_ERROR is returned and no change is added to the +** changegroup. Additionally, the iterator must not have been opened with +** the SQLITE_CHANGESETAPPLY_INVERT flag. In this case SQLITE_ERROR is also +** returned. +*/ +SQLITE_API int sqlite3changegroup_add_change( + sqlite3_changegroup*, + sqlite3_changeset_iter* +); + + + /* ** CAPI3REF: Obtain A Composite Changeset From A Changegroup ** METHOD: sqlite3_changegroup @@ -13097,8 +13167,8 @@ struct Fts5PhraseIter { ** EXTENSION API FUNCTIONS ** ** xUserData(pFts): -** Return a copy of the context pointer the extension function was -** registered with. +** Return a copy of the pUserData pointer passed to the xCreateFunction() +** API when the extension function was registered. ** ** xColumnTotalSize(pFts, iCol, pnToken): ** If parameter iCol is less than zero, set output variable *pnToken @@ -14296,6 +14366,8 @@ struct fts5_api { # define SQLITE_OMIT_ALTERTABLE #endif +#define SQLITE_DIGIT_SEPARATOR '_' + /* ** Return true (non-zero) if the input is an integer that is too large ** to fit in 32-bits. This macro is used inside of various testcase() @@ -14588,8 +14660,8 @@ SQLITE_PRIVATE void sqlite3HashClear(Hash*); #define TK_TRUEFALSE 170 #define TK_ISNOT 171 #define TK_FUNCTION 172 -#define TK_UMINUS 173 -#define TK_UPLUS 174 +#define TK_UPLUS 173 +#define TK_UMINUS 174 #define TK_TRUTH 175 #define TK_REGISTER 176 #define TK_VECTOR 177 @@ -14598,8 +14670,9 @@ SQLITE_PRIVATE void sqlite3HashClear(Hash*); #define TK_ASTERISK 180 #define TK_SPAN 181 #define TK_ERROR 182 -#define TK_SPACE 183 -#define TK_ILLEGAL 184 +#define TK_QNUMBER 183 +#define TK_SPACE 184 +#define TK_ILLEGAL 185 /************** End of parse.h ***********************************************/ /************** Continuing where we left off in sqliteInt.h ******************/ @@ -14861,7 +14934,7 @@ typedef INT16_TYPE LogEst; # define SQLITE_PTRSIZE __SIZEOF_POINTER__ # elif defined(i386) || defined(__i386__) || defined(_M_IX86) || \ defined(_M_ARM) || defined(__arm__) || defined(__x86) || \ - (defined(__APPLE__) && defined(__POWERPC__)) || \ + (defined(__APPLE__) && defined(__ppc__)) || \ (defined(__TOS_AIX__) && !defined(__64BIT__)) # define SQLITE_PTRSIZE 4 # else @@ -15098,6 +15171,7 @@ SQLITE_PRIVATE u32 sqlite3TreeTrace; ** 0x00010000 Beginning of DELETE/INSERT/UPDATE processing ** 0x00020000 Transform DISTINCT into GROUP BY ** 0x00040000 SELECT tree dump after all code has been generated +** 0x00080000 NOT NULL strength reduction */ /* @@ -15128,7 +15202,7 @@ SQLITE_PRIVATE u32 sqlite3WhereTrace; ** 0x00000010 Display sqlite3_index_info xBestIndex calls ** 0x00000020 Range an equality scan metrics ** 0x00000040 IN operator decisions -** 0x00000080 WhereLoop cost adjustements +** 0x00000080 WhereLoop cost adjustments ** 0x00000100 ** 0x00000200 Covering index decisions ** 0x00000400 OR optimization @@ -16277,6 +16351,7 @@ SQLITE_PRIVATE int sqlite3BtreeIntegrityCheck( sqlite3 *db, /* Database connection that is running the check */ Btree *p, /* The btree to be checked */ Pgno *aRoot, /* An array of root pages numbers for individual trees */ + sqlite3_value *aCnt, /* OUT: entry counts for each btree in aRoot[] */ int nRoot, /* Number of entries in aRoot[] */ int mxErr, /* Stop reporting errors after this many */ int *pnErr, /* OUT: Write number of errors seen to this variable */ @@ -16547,12 +16622,12 @@ typedef struct VdbeOpList VdbeOpList; #define OP_Vacuum 5 #define OP_VFilter 6 /* jump, synopsis: iplan=r[P3] zplan='P4' */ #define OP_VUpdate 7 /* synopsis: data=r[P3@P2] */ -#define OP_Init 8 /* jump, synopsis: Start at P2 */ +#define OP_Init 8 /* jump0, synopsis: Start at P2 */ #define OP_Goto 9 /* jump */ #define OP_Gosub 10 /* jump */ -#define OP_InitCoroutine 11 /* jump */ -#define OP_Yield 12 /* jump */ -#define OP_MustBeInt 13 /* jump */ +#define OP_InitCoroutine 11 /* jump0 */ +#define OP_Yield 12 /* jump0 */ +#define OP_MustBeInt 13 /* jump0 */ #define OP_Jump 14 /* jump */ #define OP_Once 15 /* jump */ #define OP_If 16 /* jump */ @@ -16560,22 +16635,22 @@ typedef struct VdbeOpList VdbeOpList; #define OP_IsType 18 /* jump, synopsis: if typeof(P1.P3) in P5 goto P2 */ #define OP_Not 19 /* same as TK_NOT, synopsis: r[P2]= !r[P1] */ #define OP_IfNullRow 20 /* jump, synopsis: if P1.nullRow then r[P3]=NULL, goto P2 */ -#define OP_SeekLT 21 /* jump, synopsis: key=r[P3@P4] */ -#define OP_SeekLE 22 /* jump, synopsis: key=r[P3@P4] */ -#define OP_SeekGE 23 /* jump, synopsis: key=r[P3@P4] */ -#define OP_SeekGT 24 /* jump, synopsis: key=r[P3@P4] */ +#define OP_SeekLT 21 /* jump0, synopsis: key=r[P3@P4] */ +#define OP_SeekLE 22 /* jump0, synopsis: key=r[P3@P4] */ +#define OP_SeekGE 23 /* jump0, synopsis: key=r[P3@P4] */ +#define OP_SeekGT 24 /* jump0, synopsis: key=r[P3@P4] */ #define OP_IfNotOpen 25 /* jump, synopsis: if( !csr[P1] ) goto P2 */ #define OP_IfNoHope 26 /* jump, synopsis: key=r[P3@P4] */ #define OP_NoConflict 27 /* jump, synopsis: key=r[P3@P4] */ #define OP_NotFound 28 /* jump, synopsis: key=r[P3@P4] */ #define OP_Found 29 /* jump, synopsis: key=r[P3@P4] */ -#define OP_SeekRowid 30 /* jump, synopsis: intkey=r[P3] */ +#define OP_SeekRowid 30 /* jump0, synopsis: intkey=r[P3] */ #define OP_NotExists 31 /* jump, synopsis: intkey=r[P3] */ -#define OP_Last 32 /* jump */ -#define OP_IfSmaller 33 /* jump */ +#define OP_Last 32 /* jump0 */ +#define OP_IfSizeBetween 33 /* jump */ #define OP_SorterSort 34 /* jump */ #define OP_Sort 35 /* jump */ -#define OP_Rewind 36 /* jump */ +#define OP_Rewind 36 /* jump0 */ #define OP_SorterNext 37 /* jump */ #define OP_Prev 38 /* jump */ #define OP_Next 39 /* jump */ @@ -16587,7 +16662,7 @@ typedef struct VdbeOpList VdbeOpList; #define OP_IdxGE 45 /* jump, synopsis: key=r[P3@P4] */ #define OP_RowSetRead 46 /* jump, synopsis: r[P3]=rowset(P1) */ #define OP_RowSetTest 47 /* jump, synopsis: if r[P3] in rowset(P1) goto P2 */ -#define OP_Program 48 /* jump */ +#define OP_Program 48 /* jump0 */ #define OP_FkIfZero 49 /* jump, synopsis: if fkctr[P1]==0 goto P2 */ #define OP_IsNull 50 /* jump, same as TK_ISNULL, synopsis: if r[P1]==NULL goto P2 */ #define OP_NotNull 51 /* jump, same as TK_NOTNULL, synopsis: if r[P1]!=NULL goto P2 */ @@ -16617,7 +16692,7 @@ typedef struct VdbeOpList VdbeOpList; #define OP_Null 75 /* synopsis: r[P2..P3]=NULL */ #define OP_SoftNull 76 /* synopsis: r[P1]=NULL */ #define OP_Blob 77 /* synopsis: r[P2]=P4 (len=P1) */ -#define OP_Variable 78 /* synopsis: r[P2]=parameter(P1,P4) */ +#define OP_Variable 78 /* synopsis: r[P2]=parameter(P1) */ #define OP_Move 79 /* synopsis: r[P2@P3]=r[P1@P3] */ #define OP_Copy 80 /* synopsis: r[P2@P3+1]=r[P1@P3+1] */ #define OP_SCopy 81 /* synopsis: r[P2]=r[P1] */ @@ -16741,14 +16816,15 @@ typedef struct VdbeOpList VdbeOpList; #define OPFLG_OUT2 0x10 /* out2: P2 is an output */ #define OPFLG_OUT3 0x20 /* out3: P3 is an output */ #define OPFLG_NCYCLE 0x40 /* ncycle:Cycles count against P1 */ +#define OPFLG_JUMP0 0x80 /* jump0: P2 might be zero */ #define OPFLG_INITIALIZER {\ /* 0 */ 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x41, 0x00,\ -/* 8 */ 0x01, 0x01, 0x01, 0x01, 0x03, 0x03, 0x01, 0x01,\ -/* 16 */ 0x03, 0x03, 0x01, 0x12, 0x01, 0x49, 0x49, 0x49,\ -/* 24 */ 0x49, 0x01, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49,\ -/* 32 */ 0x41, 0x01, 0x41, 0x41, 0x41, 0x01, 0x41, 0x41,\ +/* 8 */ 0x81, 0x01, 0x01, 0x81, 0x83, 0x83, 0x01, 0x01,\ +/* 16 */ 0x03, 0x03, 0x01, 0x12, 0x01, 0xc9, 0xc9, 0xc9,\ +/* 24 */ 0xc9, 0x01, 0x49, 0x49, 0x49, 0x49, 0xc9, 0x49,\ +/* 32 */ 0xc1, 0x01, 0x41, 0x41, 0xc1, 0x01, 0x41, 0x41,\ /* 40 */ 0x41, 0x41, 0x41, 0x26, 0x26, 0x41, 0x23, 0x0b,\ -/* 48 */ 0x01, 0x01, 0x03, 0x03, 0x0b, 0x0b, 0x0b, 0x0b,\ +/* 48 */ 0x81, 0x01, 0x03, 0x03, 0x0b, 0x0b, 0x0b, 0x0b,\ /* 56 */ 0x0b, 0x0b, 0x01, 0x03, 0x03, 0x03, 0x01, 0x41,\ /* 64 */ 0x01, 0x00, 0x00, 0x02, 0x02, 0x08, 0x00, 0x10,\ /* 72 */ 0x10, 0x10, 0x00, 0x10, 0x00, 0x10, 0x10, 0x00,\ @@ -16908,6 +16984,8 @@ SQLITE_PRIVATE RecordCompare sqlite3VdbeFindCompare(UnpackedRecord*); SQLITE_PRIVATE void sqlite3VdbeLinkSubProgram(Vdbe *, SubProgram *); SQLITE_PRIVATE int sqlite3VdbeHasSubProgram(Vdbe*); +SQLITE_PRIVATE void sqlite3MemSetArrayInt64(sqlite3_value *aMem, int iIdx, i64 val); + SQLITE_PRIVATE int sqlite3NotPureFunc(sqlite3_context*); #ifdef SQLITE_ENABLE_BYTECODE_VTAB SQLITE_PRIVATE int sqlite3VdbeBytecodeVtabInit(sqlite3*); @@ -17495,6 +17573,10 @@ struct FuncDefHash { }; #define SQLITE_FUNC_HASH(C,L) (((C)+(L))%SQLITE_FUNC_HASH_SZ) +#if defined(SQLITE_USER_AUTHENTICATION) +# warning "The SQLITE_USER_AUTHENTICATION extension is deprecated. \ + See ext/userauth/user-auth.txt for details." +#endif #ifdef SQLITE_USER_AUTHENTICATION /* ** Information held in the "sqlite3" database connection object and used @@ -17798,7 +17880,7 @@ struct sqlite3 { #define SQLITE_CursorHints 0x00000400 /* Add OP_CursorHint opcodes */ #define SQLITE_Stat4 0x00000800 /* Use STAT4 data */ /* TH3 expects this value ^^^^^^^^^^ to be 0x0000800. Don't change it */ -#define SQLITE_PushDown 0x00001000 /* The push-down optimization */ +#define SQLITE_PushDown 0x00001000 /* WHERE-clause push-down opt */ #define SQLITE_SimplifyJoin 0x00002000 /* Convert LEFT JOIN to JOIN */ #define SQLITE_SkipScan 0x00004000 /* Skip-scans */ #define SQLITE_PropagateConst 0x00008000 /* The constant propagation opt */ @@ -18371,8 +18453,7 @@ struct Table { #define TF_HasStored 0x00000040 /* Has one or more STORED columns */ #define TF_HasGenerated 0x00000060 /* Combo: HasVirtual + HasStored */ #define TF_WithoutRowid 0x00000080 /* No rowid. PRIMARY KEY is the key */ -#define TF_StatsUsed 0x00000100 /* Query planner decisions affected by - ** Index.aiRowLogEst[] values */ +#define TF_MaybeReanalyze 0x00000100 /* Maybe run ANALYZE on this table */ #define TF_NoVisibleRowid 0x00000200 /* No user-visible "rowid" column */ #define TF_OOOHidden 0x00000400 /* Out-of-Order hidden columns */ #define TF_HasNotNull 0x00000800 /* Contains NOT NULL constraints */ @@ -18428,6 +18509,15 @@ struct Table { #define HasRowid(X) (((X)->tabFlags & TF_WithoutRowid)==0) #define VisibleRowid(X) (((X)->tabFlags & TF_NoVisibleRowid)==0) +/* Macro is true if the SQLITE_ALLOW_ROWID_IN_VIEW (mis-)feature is +** available. By default, this macro is false +*/ +#ifndef SQLITE_ALLOW_ROWID_IN_VIEW +# define ViewCanHaveRowid 0 +#else +# define ViewCanHaveRowid (sqlite3Config.mNoVisibleRowid==0) +#endif + /* ** Each foreign key constraint is an instance of the following structure. ** @@ -19163,10 +19253,12 @@ struct IdList { ** ** Union member validity: ** -** u1.zIndexedBy fg.isIndexedBy && !fg.isTabFunc -** u1.pFuncArg fg.isTabFunc && !fg.isIndexedBy -** u2.pIBIndex fg.isIndexedBy && !fg.isCte -** u2.pCteUse fg.isCte && !fg.isIndexedBy +** u1.zIndexedBy fg.isIndexedBy && !fg.isTabFunc +** u1.pFuncArg fg.isTabFunc && !fg.isIndexedBy +** u1.nRow !fg.isTabFunc && !fg.isIndexedBy +** +** u2.pIBIndex fg.isIndexedBy && !fg.isCte +** u2.pCteUse fg.isCte && !fg.isIndexedBy */ struct SrcItem { Schema *pSchema; /* Schema to which this item is fixed */ @@ -19194,6 +19286,7 @@ struct SrcItem { unsigned isOn :1; /* u3.pOn was once valid and non-NULL */ unsigned isSynthUsing :1; /* u3.pUsing is synthesized from NATURAL */ unsigned isNestedFrom :1; /* pSelect is a SF_NestedFrom subquery */ + unsigned rowidUsed :1; /* The ROWID of this table is referenced */ } fg; int iCursor; /* The VDBE cursor number used to access this table */ union { @@ -19204,6 +19297,7 @@ struct SrcItem { union { char *zIndexedBy; /* Identifier from "INDEXED BY " clause */ ExprList *pFuncArg; /* Arguments to table-valued-function */ + u32 nRow; /* Number of rows in a VALUES clause */ } u1; union { Index *pIBIndex; /* Index structure corresponding to u1.zIndexedBy */ @@ -19268,7 +19362,7 @@ struct SrcList { #define WHERE_AGG_DISTINCT 0x0400 /* Query is "SELECT agg(DISTINCT ...)" */ #define WHERE_ORDERBY_LIMIT 0x0800 /* ORDERBY+LIMIT on the inner loop */ #define WHERE_RIGHT_JOIN 0x1000 /* Processing a RIGHT JOIN */ - /* 0x2000 not currently used */ +#define WHERE_KEEP_ALL_JOINS 0x2000 /* Do not do the omit-noop-join opt */ #define WHERE_USE_LIMIT 0x4000 /* Use the LIMIT in cost estimates */ /* 0x8000 not currently used */ @@ -19347,6 +19441,7 @@ struct NameContext { #define NC_InAggFunc 0x020000 /* True if analyzing arguments to an agg func */ #define NC_FromDDL 0x040000 /* SQL text comes from sqlite_schema */ #define NC_NoSelect 0x080000 /* Do not descend into sub-selects */ +#define NC_Where 0x100000 /* Processing WHERE clause of a SELECT */ #define NC_OrderAgg 0x8000000 /* Has an aggregate other than count/min/max */ /* @@ -19370,6 +19465,7 @@ struct Upsert { Expr *pUpsertWhere; /* WHERE clause for the ON CONFLICT UPDATE */ Upsert *pNextUpsert; /* Next ON CONFLICT clause in the list */ u8 isDoUpdate; /* True for DO UPDATE. False for DO NOTHING */ + u8 isDup; /* True if 2nd or later with same pUpsertIdx */ /* Above this point is the parse tree for the ON CONFLICT clauses. ** The next group of fields stores intermediate data. */ void *pToFree; /* Free memory when deleting the Upsert object */ @@ -19459,11 +19555,12 @@ struct Select { #define SF_View 0x0200000 /* SELECT statement is a view */ #define SF_NoopOrderBy 0x0400000 /* ORDER BY is ignored for this query */ #define SF_UFSrcCheck 0x0800000 /* Check pSrc as required by UPDATE...FROM */ -#define SF_PushDown 0x1000000 /* SELECT has be modified by push-down opt */ +#define SF_PushDown 0x1000000 /* Modified by WHERE-clause push-down opt */ #define SF_MultiPart 0x2000000 /* Has multiple incompatible PARTITIONs */ #define SF_CopyCte 0x4000000 /* SELECT statement is a copy of a CTE */ #define SF_OrderByReqd 0x8000000 /* The ORDER BY clause may not be omitted */ #define SF_UpdateFrom 0x10000000 /* Query originates with UPDATE FROM */ +#define SF_Correlated 0x20000000 /* True if references the outer context */ /* True if S exists and has SF_NestedFrom */ #define IsNestedFrom(S) ((S)!=0 && ((S)->selFlags&SF_NestedFrom)!=0) @@ -19703,6 +19800,7 @@ struct Parse { u8 disableLookaside; /* Number of times lookaside has been disabled */ u8 prepFlags; /* SQLITE_PREPARE_* flags */ u8 withinRJSubrtn; /* Nesting level for RIGHT JOIN body subroutines */ + u8 bHasWith; /* True if statement contains WITH */ #if defined(SQLITE_DEBUG) || defined(SQLITE_COVERAGE_TEST) u8 earlyCleanup; /* OOM inside sqlite3ParserAddCleanup() */ #endif @@ -20140,6 +20238,11 @@ struct Sqlite3Config { #endif #ifndef SQLITE_UNTESTABLE int (*xTestCallback)(int); /* Invoked by sqlite3FaultSim() */ +#endif +#ifdef SQLITE_ALLOW_ROWID_IN_VIEW + u32 mNoVisibleRowid; /* TF_NoVisibleRowid if the ROWID_IN_VIEW + ** feature is disabled. 0 if rowids can + ** occur in views. */ #endif int bLocaltimeFault; /* True to fail localtime() calls */ int (*xAltLocaltime)(const void*,void*); /* Alternative localtime() routine */ @@ -20377,6 +20480,9 @@ struct Window { ** due to the SQLITE_SUBTYPE flag */ }; +SQLITE_PRIVATE Select *sqlite3MultiValues(Parse *pParse, Select *pLeft, ExprList *pRow); +SQLITE_PRIVATE void sqlite3MultiValuesEnd(Parse *pParse, Select *pVal); + #ifndef SQLITE_OMIT_WINDOWFUNC SQLITE_PRIVATE void sqlite3WindowDelete(sqlite3*, Window*); SQLITE_PRIVATE void sqlite3WindowUnlinkFromSelect(Window*); @@ -20596,10 +20702,13 @@ SQLITE_PRIVATE void sqlite3MutexWarnOnContention(sqlite3_mutex*); # define EXP754 (((u64)0x7ff)<<52) # define MAN754 ((((u64)1)<<52)-1) # define IsNaN(X) (((X)&EXP754)==EXP754 && ((X)&MAN754)!=0) +# define IsOvfl(X) (((X)&EXP754)==EXP754) SQLITE_PRIVATE int sqlite3IsNaN(double); +SQLITE_PRIVATE int sqlite3IsOverflow(double); #else -# define IsNaN(X) 0 -# define sqlite3IsNaN(X) 0 +# define IsNaN(X) 0 +# define sqlite3IsNaN(X) 0 +# define sqlite3IsOVerflow(X) 0 #endif /* @@ -20691,6 +20800,7 @@ SQLITE_PRIVATE int sqlite3ErrorToParser(sqlite3*,int); SQLITE_PRIVATE void sqlite3Dequote(char*); SQLITE_PRIVATE void sqlite3DequoteExpr(Expr*); SQLITE_PRIVATE void sqlite3DequoteToken(Token*); +SQLITE_PRIVATE void sqlite3DequoteNumber(Parse*, Expr*); SQLITE_PRIVATE void sqlite3TokenInit(Token*,char*); SQLITE_PRIVATE int sqlite3KeywordCode(const unsigned char*, int); SQLITE_PRIVATE int sqlite3RunParser(Parse*, const char*); @@ -20721,7 +20831,7 @@ SQLITE_PRIVATE void sqlite3ExprFunctionUsable(Parse*,const Expr*,const FuncDef*) SQLITE_PRIVATE void sqlite3ExprAssignVarNumber(Parse*, Expr*, u32); SQLITE_PRIVATE void sqlite3ExprDelete(sqlite3*, Expr*); SQLITE_PRIVATE void sqlite3ExprDeleteGeneric(sqlite3*,void*); -SQLITE_PRIVATE void sqlite3ExprDeferredDelete(Parse*, Expr*); +SQLITE_PRIVATE int sqlite3ExprDeferredDelete(Parse*, Expr*); SQLITE_PRIVATE void sqlite3ExprUnmapAndDelete(Parse*, Expr*); SQLITE_PRIVATE ExprList *sqlite3ExprListAppend(Parse*,ExprList*,Expr*); SQLITE_PRIVATE ExprList *sqlite3ExprListAppendVector(Parse*,ExprList*,IdList*,Expr*); @@ -20944,12 +21054,10 @@ SQLITE_PRIVATE void sqlite3LeaveMutexAndCloseZombie(sqlite3*); SQLITE_PRIVATE u32 sqlite3IsTrueOrFalse(const char*); SQLITE_PRIVATE int sqlite3ExprIdToTrueFalse(Expr*); SQLITE_PRIVATE int sqlite3ExprTruthValue(const Expr*); -SQLITE_PRIVATE int sqlite3ExprIsConstant(Expr*); -SQLITE_PRIVATE int sqlite3ExprIsConstantNotJoin(Expr*); +SQLITE_PRIVATE int sqlite3ExprIsConstant(Parse*,Expr*); SQLITE_PRIVATE int sqlite3ExprIsConstantOrFunction(Expr*, u8); SQLITE_PRIVATE int sqlite3ExprIsConstantOrGroupBy(Parse*, Expr*, ExprList*); -SQLITE_PRIVATE int sqlite3ExprIsTableConstant(Expr*,int); -SQLITE_PRIVATE int sqlite3ExprIsSingleTableConstraint(Expr*,const SrcList*,int); +SQLITE_PRIVATE int sqlite3ExprIsSingleTableConstraint(Expr*,const SrcList*,int,int); #ifdef SQLITE_ENABLE_CURSOR_HINTS SQLITE_PRIVATE int sqlite3ExprContainsSubquery(Expr*); #endif @@ -21134,7 +21242,9 @@ SQLITE_PRIVATE void sqlite3ErrorWithMsg(sqlite3*, int, const char*,...); SQLITE_PRIVATE void sqlite3Error(sqlite3*,int); SQLITE_PRIVATE void sqlite3ErrorClear(sqlite3*); SQLITE_PRIVATE void sqlite3SystemError(sqlite3*,int); +#if !defined(SQLITE_OMIT_BLOB_LITERAL) SQLITE_PRIVATE void *sqlite3HexToBlob(sqlite3*, const char *z, int n); +#endif SQLITE_PRIVATE u8 sqlite3HexToInt(int h); SQLITE_PRIVATE int sqlite3TwoPartName(Parse *, Token *, Token *, Token **); @@ -21445,7 +21555,7 @@ SQLITE_PRIVATE With *sqlite3WithPush(Parse*, With*, u8); SQLITE_PRIVATE Upsert *sqlite3UpsertNew(sqlite3*,ExprList*,Expr*,ExprList*,Expr*,Upsert*); SQLITE_PRIVATE void sqlite3UpsertDelete(sqlite3*,Upsert*); SQLITE_PRIVATE Upsert *sqlite3UpsertDup(sqlite3*,Upsert*); -SQLITE_PRIVATE int sqlite3UpsertAnalyzeTarget(Parse*,SrcList*,Upsert*); +SQLITE_PRIVATE int sqlite3UpsertAnalyzeTarget(Parse*,SrcList*,Upsert*,Upsert*); SQLITE_PRIVATE void sqlite3UpsertDoUpdate(Parse*,Upsert*,Table*,Index*,int); SQLITE_PRIVATE Upsert *sqlite3UpsertOfIndex(Upsert*,Index*); SQLITE_PRIVATE int sqlite3UpsertNextIsIPK(Upsert*); @@ -21835,6 +21945,9 @@ static const char * const sqlite3azCompileOpt[] = { "ALLOW_COVERING_INDEX_SCAN=" CTIMEOPT_VAL(SQLITE_ALLOW_COVERING_INDEX_SCAN), # endif #endif +#ifdef SQLITE_ALLOW_ROWID_IN_VIEW + "ALLOW_ROWID_IN_VIEW", +#endif #ifdef SQLITE_ALLOW_URI_AUTHORITY "ALLOW_URI_AUTHORITY", #endif @@ -22854,6 +22967,9 @@ SQLITE_PRIVATE SQLITE_WSD struct Sqlite3Config sqlite3Config = { #endif #ifndef SQLITE_UNTESTABLE 0, /* xTestCallback */ +#endif +#ifdef SQLITE_ALLOW_ROWID_IN_VIEW + 0, /* mNoVisibleRowid. 0 == allow rowid-in-view */ #endif 0, /* bLocaltimeFault */ 0, /* xAltLocaltime */ @@ -24175,13 +24291,14 @@ struct DateTime { int tz; /* Timezone offset in minutes */ double s; /* Seconds */ char validJD; /* True (1) if iJD is valid */ - char rawS; /* Raw numeric value stored in s */ char validYMD; /* True (1) if Y,M,D are valid */ char validHMS; /* True (1) if h,m,s are valid */ - char validTZ; /* True (1) if tz is valid */ - char tzSet; /* Timezone was set explicitly */ - char isError; /* An overflow has occurred */ - char useSubsec; /* Display subsecond precision */ + char nFloor; /* Days to implement "floor" */ + unsigned rawS : 1; /* Raw numeric value stored in s */ + unsigned isError : 1; /* An overflow has occurred */ + unsigned useSubsec : 1; /* Display subsecond precision */ + unsigned isUtc : 1; /* Time is known to be UTC */ + unsigned isLocal : 1; /* Time is known to be localtime */ }; @@ -24279,6 +24396,8 @@ static int parseTimezone(const char *zDate, DateTime *p){ sgn = +1; }else if( c=='Z' || c=='z' ){ zDate++; + p->isLocal = 0; + p->isUtc = 1; goto zulu_time; }else{ return c!=0; @@ -24291,7 +24410,6 @@ static int parseTimezone(const char *zDate, DateTime *p){ p->tz = sgn*(nMn + nHr*60); zulu_time: while( sqlite3Isspace(*zDate) ){ zDate++; } - p->tzSet = 1; return *zDate!=0; } @@ -24335,7 +24453,6 @@ static int parseHhMmSs(const char *zDate, DateTime *p){ p->m = m; p->s = s + ms; if( parseTimezone(zDate, p) ) return 1; - p->validTZ = (p->tz!=0)?1:0; return 0; } @@ -24382,15 +24499,40 @@ static void computeJD(DateTime *p){ p->validJD = 1; if( p->validHMS ){ p->iJD += p->h*3600000 + p->m*60000 + (sqlite3_int64)(p->s*1000 + 0.5); - if( p->validTZ ){ + if( p->tz ){ p->iJD -= p->tz*60000; p->validYMD = 0; p->validHMS = 0; - p->validTZ = 0; + p->tz = 0; + p->isUtc = 1; + p->isLocal = 0; } } } +/* +** Given the YYYY-MM-DD information current in p, determine if there +** is day-of-month overflow and set nFloor to the number of days that +** would need to be subtracted from the date in order to bring the +** date back to the end of the month. +*/ +static void computeFloor(DateTime *p){ + assert( p->validYMD || p->isError ); + assert( p->D>=0 && p->D<=31 ); + assert( p->M>=0 && p->M<=12 ); + if( p->D<=28 ){ + p->nFloor = 0; + }else if( (1<M) & 0x15aa ){ + p->nFloor = 0; + }else if( p->M!=2 ){ + p->nFloor = (p->D==31); + }else if( p->Y%4!=0 || (p->Y%100==0 && p->Y%400!=0) ){ + p->nFloor = p->D - 28; + }else{ + p->nFloor = p->D - 29; + } +} + /* ** Parse dates of the form ** @@ -24429,12 +24571,16 @@ static int parseYyyyMmDd(const char *zDate, DateTime *p){ p->Y = neg ? -Y : Y; p->M = M; p->D = D; - if( p->validTZ ){ + computeFloor(p); + if( p->tz ){ computeJD(p); } return 0; } + +static void clearYMD_HMS_TZ(DateTime *p); /* Forward declaration */ + /* ** Set the time to the current time reported by the VFS. ** @@ -24444,6 +24590,9 @@ static int setDateTimeToCurrent(sqlite3_context *context, DateTime *p){ p->iJD = sqlite3StmtCurrentTime(context); if( p->iJD>0 ){ p->validJD = 1; + p->isUtc = 1; + p->isLocal = 0; + clearYMD_HMS_TZ(p); return 0; }else{ return 1; @@ -24582,7 +24731,7 @@ static void computeYMD_HMS(DateTime *p){ static void clearYMD_HMS_TZ(DateTime *p){ p->validYMD = 0; p->validHMS = 0; - p->validTZ = 0; + p->tz = 0; } #ifndef SQLITE_OMIT_LOCALTIME @@ -24714,7 +24863,7 @@ static int toLocaltime( p->validHMS = 1; p->validJD = 0; p->rawS = 0; - p->validTZ = 0; + p->tz = 0; p->isError = 0; return SQLITE_OK; } @@ -24734,12 +24883,12 @@ static const struct { float rLimit; /* Maximum NNN value for this transform */ float rXform; /* Constant used for this transform */ } aXformType[] = { - { 6, "second", 4.6427e+14, 1.0 }, - { 6, "minute", 7.7379e+12, 60.0 }, - { 4, "hour", 1.2897e+11, 3600.0 }, - { 3, "day", 5373485.0, 86400.0 }, - { 5, "month", 176546.0, 2592000.0 }, - { 4, "year", 14713.0, 31536000.0 }, + /* 0 */ { 6, "second", 4.6427e+14, 1.0 }, + /* 1 */ { 6, "minute", 7.7379e+12, 60.0 }, + /* 2 */ { 4, "hour", 1.2897e+11, 3600.0 }, + /* 3 */ { 3, "day", 5373485.0, 86400.0 }, + /* 4 */ { 5, "month", 176546.0, 30.0*86400.0 }, + /* 5 */ { 4, "year", 14713.0, 365.0*86400.0 }, }; /* @@ -24771,14 +24920,20 @@ static void autoAdjustDate(DateTime *p){ ** NNN.NNNN seconds ** NNN months ** NNN years +** +/-YYYY-MM-DD HH:MM:SS.SSS +** ceiling +** floor ** start of month ** start of year ** start of week ** start of day ** weekday N ** unixepoch +** auto ** localtime ** utc +** subsec +** subsecond ** ** Return 0 on success and 1 if there is any kind of error. If the error ** is in a system call (i.e. localtime()), then an error message is written @@ -24809,6 +24964,37 @@ static int parseModifier( } break; } + case 'c': { + /* + ** ceiling + ** + ** Resolve day-of-month overflow by rolling forward into the next + ** month. As this is the default action, this modifier is really + ** a no-op that is only included for symmetry. See "floor". + */ + if( sqlite3_stricmp(z, "ceiling")==0 ){ + computeJD(p); + clearYMD_HMS_TZ(p); + rc = 0; + p->nFloor = 0; + } + break; + } + case 'f': { + /* + ** floor + ** + ** Resolve day-of-month overflow by rolling back to the end of the + ** previous month. + */ + if( sqlite3_stricmp(z, "floor")==0 ){ + computeJD(p); + p->iJD -= p->nFloor*86400000; + clearYMD_HMS_TZ(p); + rc = 0; + } + break; + } case 'j': { /* ** julianday @@ -24835,7 +25021,9 @@ static int parseModifier( ** show local time. */ if( sqlite3_stricmp(z, "localtime")==0 && sqlite3NotPureFunc(pCtx) ){ - rc = toLocaltime(p, pCtx); + rc = p->isLocal ? SQLITE_OK : toLocaltime(p, pCtx); + p->isUtc = 0; + p->isLocal = 1; } break; } @@ -24860,7 +25048,7 @@ static int parseModifier( } #ifndef SQLITE_OMIT_LOCALTIME else if( sqlite3_stricmp(z, "utc")==0 && sqlite3NotPureFunc(pCtx) ){ - if( p->tzSet==0 ){ + if( p->isUtc==0 ){ i64 iOrigJD; /* Original localtime */ i64 iGuess; /* Guess at the corresponding utc time */ int cnt = 0; /* Safety to prevent infinite loop */ @@ -24883,7 +25071,8 @@ static int parseModifier( memset(p, 0, sizeof(*p)); p->iJD = iGuess; p->validJD = 1; - p->tzSet = 1; + p->isUtc = 1; + p->isLocal = 0; } rc = SQLITE_OK; } @@ -24903,7 +25092,7 @@ static int parseModifier( && r>=0.0 && r<7.0 && (n=(int)r)==r ){ sqlite3_int64 Z; computeYMD_HMS(p); - p->validTZ = 0; + p->tz = 0; p->validJD = 0; computeJD(p); Z = ((p->iJD + 129600000)/86400000) % 7; @@ -24943,7 +25132,7 @@ static int parseModifier( p->h = p->m = 0; p->s = 0.0; p->rawS = 0; - p->validTZ = 0; + p->tz = 0; p->validJD = 0; if( sqlite3_stricmp(z,"month")==0 ){ p->D = 1; @@ -25014,6 +25203,7 @@ static int parseModifier( x = p->M>0 ? (p->M-1)/12 : (p->M-12)/12; p->Y += x; p->M -= x*12; + computeFloor(p); computeJD(p); p->validHMS = 0; p->validYMD = 0; @@ -25060,11 +25250,12 @@ static int parseModifier( z += n; while( sqlite3Isspace(*z) ) z++; n = sqlite3Strlen30(z); - if( n>10 || n<3 ) break; + if( n<3 || n>10 ) break; if( sqlite3UpperToLower[(u8)z[n-1]]=='s' ) n--; computeJD(p); assert( rc==1 ); rRounder = r<0 ? -0.5 : +0.5; + p->nFloor = 0; for(i=0; iM += (int)r; x = p->M>0 ? (p->M-1)/12 : (p->M-12)/12; p->Y += x; p->M -= x*12; + computeFloor(p); p->validJD = 0; r -= (int)r; break; } case 5: { /* Special processing to add years */ int y = (int)r; - assert( strcmp(aXformType[i].zName,"year")==0 ); + assert( strcmp(aXformType[5].zName,"year")==0 ); computeYMD_HMS(p); + assert( p->M>=0 && p->M<=12 ); p->Y += y; + computeFloor(p); p->validJD = 0; r -= (int)r; break; @@ -25340,22 +25534,83 @@ static void dateFunc( } } +/* +** Compute the number of days after the most recent January 1. +** +** In other words, compute the zero-based day number for the +** current year: +** +** Jan01 = 0, Jan02 = 1, ..., Jan31 = 30, Feb01 = 31, ... +** Dec31 = 364 or 365. +*/ +static int daysAfterJan01(DateTime *pDate){ + DateTime jan01 = *pDate; + assert( jan01.validYMD ); + assert( jan01.validHMS ); + assert( pDate->validJD ); + jan01.validJD = 0; + jan01.M = 1; + jan01.D = 1; + computeJD(&jan01); + return (int)((pDate->iJD-jan01.iJD+43200000)/86400000); +} + +/* +** Return the number of days after the most recent Monday. +** +** In other words, return the day of the week according +** to this code: +** +** 0=Monday, 1=Tuesday, 2=Wednesday, ..., 6=Sunday. +*/ +static int daysAfterMonday(DateTime *pDate){ + assert( pDate->validJD ); + return (int)((pDate->iJD+43200000)/86400000) % 7; +} + +/* +** Return the number of days after the most recent Sunday. +** +** In other words, return the day of the week according +** to this code: +** +** 0=Sunday, 1=Monday, 2=Tues, ..., 6=Saturday +*/ +static int daysAfterSunday(DateTime *pDate){ + assert( pDate->validJD ); + return (int)((pDate->iJD+129600000)/86400000) % 7; +} + /* ** strftime( FORMAT, TIMESTRING, MOD, MOD, ...) ** ** Return a string described by FORMAT. Conversions as follows: ** -** %d day of month +** %d day of month 01-31 +** %e day of month 1-31 ** %f ** fractional seconds SS.SSS +** %F ISO date. YYYY-MM-DD +** %G ISO year corresponding to %V 0000-9999. +** %g 2-digit ISO year corresponding to %V 00-99 ** %H hour 00-24 -** %j day of year 000-366 +** %k hour 0-24 (leading zero converted to space) +** %I hour 01-12 +** %j day of year 001-366 ** %J ** julian day number +** %l hour 1-12 (leading zero converted to space) ** %m month 01-12 ** %M minute 00-59 +** %p "am" or "pm" +** %P "AM" or "PM" +** %R time as HH:MM ** %s seconds since 1970-01-01 ** %S seconds 00-59 -** %w day of week 0-6 Sunday==0 -** %W week of year 00-53 +** %T time as HH:MM:SS +** %u day of week 1-7 Monday==1, Sunday==7 +** %w day of week 0-6 Sunday==0, Monday==1 +** %U week of year 00-53 (First Sunday is start of week 01) +** %V week of year 01-53 (First week containing Thursday is week 01) +** %W week of year 00-53 (First Monday is start of week 01) ** %Y year 0000-9999 ** %% % */ @@ -25392,7 +25647,7 @@ static void strftimeFunc( sqlite3_str_appendf(&sRes, cf=='d' ? "%02d" : "%2d", x.D); break; } - case 'f': { + case 'f': { /* Fractional seconds. (Non-standard) */ double s = x.s; if( s>59.999 ) s = 59.999; sqlite3_str_appendf(&sRes, "%06.3f", s); @@ -25402,6 +25657,21 @@ static void strftimeFunc( sqlite3_str_appendf(&sRes, "%04d-%02d-%02d", x.Y, x.M, x.D); break; } + case 'G': /* Fall thru */ + case 'g': { + DateTime y = x; + assert( y.validJD ); + /* Move y so that it is the Thursday in the same week as x */ + y.iJD += (3 - daysAfterMonday(&x))*86400000; + y.validYMD = 0; + computeYMD(&y); + if( cf=='g' ){ + sqlite3_str_appendf(&sRes, "%02d", y.Y%100); + }else{ + sqlite3_str_appendf(&sRes, "%04d", y.Y); + } + break; + } case 'H': case 'k': { sqlite3_str_appendf(&sRes, cf=='H' ? "%02d" : "%2d", x.h); @@ -25415,25 +25685,11 @@ static void strftimeFunc( sqlite3_str_appendf(&sRes, cf=='I' ? "%02d" : "%2d", h); break; } - case 'W': /* Fall thru */ - case 'j': { - int nDay; /* Number of days since 1st day of year */ - DateTime y = x; - y.validJD = 0; - y.M = 1; - y.D = 1; - computeJD(&y); - nDay = (int)((x.iJD-y.iJD+43200000)/86400000); - if( cf=='W' ){ - int wd; /* 0=Monday, 1=Tuesday, ... 6=Sunday */ - wd = (int)(((x.iJD+43200000)/86400000)%7); - sqlite3_str_appendf(&sRes,"%02d",(nDay+7-wd)/7); - }else{ - sqlite3_str_appendf(&sRes,"%03d",nDay+1); - } + case 'j': { /* Day of year. Jan01==1, Jan02==2, and so forth */ + sqlite3_str_appendf(&sRes,"%03d",daysAfterJan01(&x)+1); break; } - case 'J': { + case 'J': { /* Julian day number. (Non-standard) */ sqlite3_str_appendf(&sRes,"%.16g",x.iJD/86400000.0); break; } @@ -25476,13 +25732,33 @@ static void strftimeFunc( sqlite3_str_appendf(&sRes,"%02d:%02d:%02d", x.h, x.m, (int)x.s); break; } - case 'u': /* Fall thru */ - case 'w': { - char c = (char)(((x.iJD+129600000)/86400000) % 7) + '0'; + case 'u': /* Day of week. 1 to 7. Monday==1, Sunday==7 */ + case 'w': { /* Day of week. 0 to 6. Sunday==0, Monday==1 */ + char c = (char)daysAfterSunday(&x) + '0'; if( c=='0' && cf=='u' ) c = '7'; sqlite3_str_appendchar(&sRes, 1, c); break; } + case 'U': { /* Week num. 00-53. First Sun of the year is week 01 */ + sqlite3_str_appendf(&sRes,"%02d", + (daysAfterJan01(&x)-daysAfterSunday(&x)+7)/7); + break; + } + case 'V': { /* Week num. 01-53. First week with a Thur is week 01 */ + DateTime y = x; + /* Adjust y so that is the Thursday in the same week as x */ + assert( y.validJD ); + y.iJD += (3 - daysAfterMonday(&x))*86400000; + y.validYMD = 0; + computeYMD(&y); + sqlite3_str_appendf(&sRes,"%02d", daysAfterJan01(&y)/7+1); + break; + } + case 'W': { /* Week num. 00-53. First Mon of the year is week 01 */ + sqlite3_str_appendf(&sRes,"%02d", + (daysAfterJan01(&x)-daysAfterMonday(&x)+7)/7); + break; + } case 'Y': { sqlite3_str_appendf(&sRes,"%04d",x.Y); break; @@ -25629,9 +25905,7 @@ static void timediffFunc( d1.iJD = d2.iJD - d1.iJD; d1.iJD += (u64)1486995408 * (u64)100000; } - d1.validYMD = 0; - d1.validHMS = 0; - d1.validTZ = 0; + clearYMD_HMS_TZ(&d1); computeYMD_HMS(&d1); sqlite3StrAccumInit(&sRes, 0, 0, 0, 100); sqlite3_str_appendf(&sRes, "%c%04d-%02d-%02d %02d:%02d:%06.3f", @@ -25700,6 +25974,36 @@ static void currentTimeFunc( } #endif +#if !defined(SQLITE_OMIT_DATETIME_FUNCS) && defined(SQLITE_DEBUG) +/* +** datedebug(...) +** +** This routine returns JSON that describes the internal DateTime object. +** Used for debugging and testing only. Subject to change. +*/ +static void datedebugFunc( + sqlite3_context *context, + int argc, + sqlite3_value **argv +){ + DateTime x; + if( isDate(context, argc, argv, &x)==0 ){ + char *zJson; + zJson = sqlite3_mprintf( + "{iJD:%lld,Y:%d,M:%d,D:%d,h:%d,m:%d,tz:%d," + "s:%.3f,validJD:%d,validYMS:%d,validHMS:%d," + "nFloor:%d,rawS:%d,isError:%d,useSubsec:%d," + "isUtc:%d,isLocal:%d}", + x.iJD, x.Y, x.M, x.D, x.h, x.m, x.tz, + x.s, x.validJD, x.validYMD, x.validHMS, + x.nFloor, x.rawS, x.isError, x.useSubsec, + x.isUtc, x.isLocal); + sqlite3_result_text(context, zJson, -1, sqlite3_free); + } +} +#endif /* !SQLITE_OMIT_DATETIME_FUNCS && SQLITE_DEBUG */ + + /* ** This function registered all of the above C functions as SQL ** functions. This should be the only routine in this file with @@ -25715,6 +26019,9 @@ SQLITE_PRIVATE void sqlite3RegisterDateTimeFunctions(void){ PURE_DATE(datetime, -1, 0, 0, datetimeFunc ), PURE_DATE(strftime, -1, 0, 0, strftimeFunc ), PURE_DATE(timediff, 2, 0, 0, timediffFunc ), +#ifdef SQLITE_DEBUG + PURE_DATE(datedebug, -1, 0, 0, datedebugFunc ), +#endif DFUNCTION(current_time, 0, 0, 0, ctimeFunc ), DFUNCTION(current_timestamp, 0, 0, 0, ctimestampFunc), DFUNCTION(current_date, 0, 0, 0, cdateFunc ), @@ -30130,6 +30437,24 @@ static void sqlite3MallocAlarm(int nByte){ sqlite3_mutex_enter(mem0.mutex); } +#ifdef SQLITE_DEBUG +/* +** This routine is called whenever an out-of-memory condition is seen, +** It's only purpose to to serve as a breakpoint for gdb or similar +** code debuggers when working on out-of-memory conditions, for example +** caused by PRAGMA hard_heap_limit=N. +*/ +static SQLITE_NOINLINE void test_oom_breakpoint(u64 n){ + static u64 nOomFault = 0; + nOomFault += n; + /* The assert() is never reached in a human lifetime. It is here mostly + ** to prevent code optimizers from optimizing out this function. */ + assert( (nOomFault>>32) < 0xffffffff ); +} +#else +# define test_oom_breakpoint(X) /* No-op for production builds */ +#endif + /* ** Do a memory allocation with statistics and alarms. Assume the ** lock is already held. @@ -30156,6 +30481,7 @@ static void mallocWithAlarm(int n, void **pp){ if( mem0.hardLimit ){ nUsed = sqlite3StatusValue(SQLITE_STATUS_MEMORY_USED); if( nUsed >= mem0.hardLimit - nFull ){ + test_oom_breakpoint(1); *pp = 0; return; } @@ -30444,6 +30770,7 @@ SQLITE_PRIVATE void *sqlite3Realloc(void *pOld, u64 nBytes){ sqlite3MallocAlarm(nDiff); if( mem0.hardLimit>0 && nUsed >= mem0.hardLimit - nDiff ){ sqlite3_mutex_leave(mem0.mutex); + test_oom_breakpoint(1); return 0; } } @@ -31310,6 +31637,7 @@ SQLITE_API void sqlite3_str_vappendf( if( xtype==etFLOAT ){ iRound = -precision; }else if( xtype==etGENERIC ){ + if( precision==0 ) precision = 1; iRound = precision; }else{ iRound = precision+1; @@ -31345,13 +31673,14 @@ SQLITE_API void sqlite3_str_vappendf( } exp = s.iDP-1; - if( xtype==etGENERIC && precision>0 ) precision--; /* ** If the field type is etGENERIC, then convert to either etEXP ** or etFLOAT, as appropriate. */ if( xtype==etGENERIC ){ + assert( precision>0 ); + precision--; flag_rtz = !flag_alternateform; if( exp<-4 || exp>precision ){ xtype = etEXP; @@ -31667,9 +31996,13 @@ SQLITE_API void sqlite3_str_vappendf( sqlite3_str_appendall(pAccum, pItem->zAlias); }else{ Select *pSel = pItem->pSelect; - assert( pSel!=0 ); + assert( pSel!=0 ); /* Because of tag-20240424-1 */ if( pSel->selFlags & SF_NestedFrom ){ sqlite3_str_appendf(pAccum, "(join-%u)", pSel->selId); + }else if( pSel->selFlags & SF_MultiValue ){ + assert( !pItem->fg.isTabFunc && !pItem->fg.isIndexedBy ); + sqlite3_str_appendf(pAccum, "%u-ROW VALUES CLAUSE", + pItem->u1.nRow); }else{ sqlite3_str_appendf(pAccum, "(subquery-%u)", pSel->selId); } @@ -32446,8 +32779,10 @@ SQLITE_PRIVATE void sqlite3TreeViewSrcList(TreeView *pView, const SrcList *pSrc) x.printfFlags |= SQLITE_PRINTF_INTERNAL; sqlite3_str_appendf(&x, "{%d:*} %!S", pItem->iCursor, pItem); if( pItem->pTab ){ - sqlite3_str_appendf(&x, " tab=%Q nCol=%d ptr=%p used=%llx", - pItem->pTab->zName, pItem->pTab->nCol, pItem->pTab, pItem->colUsed); + sqlite3_str_appendf(&x, " tab=%Q nCol=%d ptr=%p used=%llx%s", + pItem->pTab->zName, pItem->pTab->nCol, pItem->pTab, + pItem->colUsed, + pItem->fg.rowidUsed ? "+rowid" : ""); } if( (pItem->fg.jointype & (JT_LEFT|JT_RIGHT))==(JT_LEFT|JT_RIGHT) ){ sqlite3_str_appendf(&x, " FULL-OUTER-JOIN"); @@ -32487,12 +32822,14 @@ SQLITE_PRIVATE void sqlite3TreeViewSrcList(TreeView *pView, const SrcList *pSrc) sqlite3TreeViewIdList(pView, pItem->u3.pUsing, (--n)>0, "USING"); } if( pItem->pSelect ){ + sqlite3TreeViewPush(&pView, i+1nSrc); if( pItem->pTab ){ Table *pTab = pItem->pTab; sqlite3TreeViewColumnList(pView, pTab->aCol, pTab->nCol, 1); } assert( (int)pItem->fg.isNestedFrom == IsNestedFrom(pItem->pSelect) ); sqlite3TreeViewSelect(pView, pItem->pSelect, (--n)>0); + sqlite3TreeViewPop(&pView); } if( pItem->fg.isTabFunc ){ sqlite3TreeViewExprList(pView, pItem->u1.pFuncArg, 0, "func-args:"); @@ -32596,7 +32933,7 @@ SQLITE_PRIVATE void sqlite3TreeViewSelect(TreeView *pView, const Select *p, u8 m sqlite3TreeViewItem(pView, "LIMIT", (n--)>0); sqlite3TreeViewExpr(pView, p->pLimit->pLeft, p->pLimit->pRight!=0); if( p->pLimit->pRight ){ - sqlite3TreeViewItem(pView, "OFFSET", (n--)>0); + sqlite3TreeViewItem(pView, "OFFSET", 0); sqlite3TreeViewExpr(pView, p->pLimit->pRight, 0); sqlite3TreeViewPop(&pView); } @@ -34641,6 +34978,19 @@ SQLITE_PRIVATE int sqlite3IsNaN(double x){ } #endif /* SQLITE_OMIT_FLOATING_POINT */ +#ifndef SQLITE_OMIT_FLOATING_POINT +/* +** Return true if the floating point value is NaN or +Inf or -Inf. +*/ +SQLITE_PRIVATE int sqlite3IsOverflow(double x){ + int rc; /* The value return */ + u64 y; + memcpy(&y,&x,sizeof(y)); + rc = IsOvfl(y); + return rc; +} +#endif /* SQLITE_OMIT_FLOATING_POINT */ + /* ** Compute a string length that is limited to what can be stored in ** lower 30 bits of a 32-bit signed integer. @@ -34884,6 +35234,44 @@ SQLITE_PRIVATE void sqlite3DequoteExpr(Expr *p){ sqlite3Dequote(p->u.zToken); } +/* +** Expression p is a QNUMBER (quoted number). Dequote the value in p->u.zToken +** and set the type to INTEGER or FLOAT. "Quoted" integers or floats are those +** that contain '_' characters that must be removed before further processing. +*/ +SQLITE_PRIVATE void sqlite3DequoteNumber(Parse *pParse, Expr *p){ + assert( p!=0 || pParse->db->mallocFailed ); + if( p ){ + const char *pIn = p->u.zToken; + char *pOut = p->u.zToken; + int bHex = (pIn[0]=='0' && (pIn[1]=='x' || pIn[1]=='X')); + int iValue; + assert( p->op==TK_QNUMBER ); + p->op = TK_INTEGER; + do { + if( *pIn!=SQLITE_DIGIT_SEPARATOR ){ + *pOut++ = *pIn; + if( *pIn=='e' || *pIn=='E' || *pIn=='.' ) p->op = TK_FLOAT; + }else{ + if( (bHex==0 && (!sqlite3Isdigit(pIn[-1]) || !sqlite3Isdigit(pIn[1]))) + || (bHex==1 && (!sqlite3Isxdigit(pIn[-1]) || !sqlite3Isxdigit(pIn[1]))) + ){ + sqlite3ErrorMsg(pParse, "unrecognized token: \"%s\"", p->u.zToken); + } + } + }while( *pIn++ ); + if( bHex ) p->op = TK_INTEGER; + + /* tag-20240227-a: If after dequoting, the number is an integer that + ** fits in 32 bits, then it must be converted into EP_IntValue. Other + ** parts of the code expect this. See also tag-20240227-b. */ + if( p->op==TK_INTEGER && sqlite3GetInt32(p->u.zToken, &iValue) ){ + p->u.iValue = iValue; + p->flags |= EP_IntValue; + } + } +} + /* ** If the input token p is quoted, try to adjust the token to remove ** the quotes. This is not always possible: @@ -35200,6 +35588,9 @@ SQLITE_PRIVATE int sqlite3AtoF(const char *z, double *pResult, int length, u8 en u64 s2; rr[0] = (double)s; s2 = (u64)rr[0]; +#if defined(_MSC_VER) && _MSC_VER<1700 + if( s2==0x8000000000000000LL ){ s2 = 2*(u64)(0.5*rr[0]); } +#endif rr[1] = s>=s2 ? (double)(s - s2) : -(double)(s2 - s); if( e>0 ){ while( e>=100 ){ @@ -35642,7 +36033,7 @@ SQLITE_PRIVATE void sqlite3FpDecode(FpDecode *p, double r, int iRound, int mxRou assert( p->n>0 ); assert( p->nzBuf) ); p->iDP = p->n + exp; - if( iRound<0 ){ + if( iRound<=0 ){ iRound = p->iDP - iRound; if( iRound==0 && p->zBuf[i+1]>='5' ){ iRound = 1; @@ -36820,7 +37211,7 @@ SQLITE_PRIVATE const char *sqlite3OpcodeName(int i){ /* 30 */ "SeekRowid" OpHelp("intkey=r[P3]"), /* 31 */ "NotExists" OpHelp("intkey=r[P3]"), /* 32 */ "Last" OpHelp(""), - /* 33 */ "IfSmaller" OpHelp(""), + /* 33 */ "IfSizeBetween" OpHelp(""), /* 34 */ "SorterSort" OpHelp(""), /* 35 */ "Sort" OpHelp(""), /* 36 */ "Rewind" OpHelp(""), @@ -36865,7 +37256,7 @@ SQLITE_PRIVATE const char *sqlite3OpcodeName(int i){ /* 75 */ "Null" OpHelp("r[P2..P3]=NULL"), /* 76 */ "SoftNull" OpHelp("r[P1]=NULL"), /* 77 */ "Blob" OpHelp("r[P2]=P4 (len=P1)"), - /* 78 */ "Variable" OpHelp("r[P2]=parameter(P1,P4)"), + /* 78 */ "Variable" OpHelp("r[P2]=parameter(P1)"), /* 79 */ "Move" OpHelp("r[P2@P3]=r[P1@P3]"), /* 80 */ "Copy" OpHelp("r[P2@P3+1]=r[P1@P3+1]"), /* 81 */ "SCopy" OpHelp("r[P2]=r[P1]"), @@ -39263,8 +39654,12 @@ static int unixLogErrorAtLine( ** available, the error message will often be an empty string. Not a ** huge problem. Incorrectly concluding that the GNU version is available ** could lead to a segfault though. + ** + ** Forum post 3f13857fa4062301 reports that the Android SDK may use + ** int-type return, depending on its version. */ -#if defined(STRERROR_R_CHAR_P) || defined(__USE_GNU) +#if (defined(STRERROR_R_CHAR_P) || defined(__USE_GNU)) \ + && !defined(ANDROID) && !defined(__ANDROID__) zErr = # endif strerror_r(iErrno, aErr, sizeof(aErr)-1); @@ -44362,12 +44757,19 @@ static int unixOpen( rc = SQLITE_READONLY_DIRECTORY; }else if( errno!=EISDIR && isReadWrite ){ /* Failed to open the file for read/write access. Try read-only. */ + UnixUnusedFd *pReadonly = 0; flags &= ~(SQLITE_OPEN_READWRITE|SQLITE_OPEN_CREATE); openFlags &= ~(O_RDWR|O_CREAT); flags |= SQLITE_OPEN_READONLY; openFlags |= O_RDONLY; isReadonly = 1; - fd = robust_open(zName, openFlags, openMode); + pReadonly = findReusableFd(zName, flags); + if( pReadonly ){ + fd = pReadonly->fd; + sqlite3_free(pReadonly); + }else{ + fd = robust_open(zName, openFlags, openMode); + } } } if( fd<0 ){ @@ -53263,6 +53665,14 @@ SQLITE_API unsigned char *sqlite3_serialize( pOut = 0; }else{ sz = sqlite3_column_int64(pStmt, 0)*szPage; + if( sz==0 ){ + sqlite3_reset(pStmt); + sqlite3_exec(db, "BEGIN IMMEDIATE; COMMIT;", 0, 0, 0); + rc = sqlite3_step(pStmt); + if( rc==SQLITE_ROW ){ + sz = sqlite3_column_int64(pStmt, 0)*szPage; + } + } if( piSize ) *piSize = sz; if( mFlags & SQLITE_SERIALIZE_NOCOPY ){ pOut = 0; @@ -63786,7 +64196,7 @@ SQLITE_PRIVATE sqlite3_file *sqlite3PagerFile(Pager *pPager){ ** This will be either the rollback journal or the WAL file. */ SQLITE_PRIVATE sqlite3_file *sqlite3PagerJrnlFile(Pager *pPager){ -#if SQLITE_OMIT_WAL +#ifdef SQLITE_OMIT_WAL return pPager->jfd; #else return pPager->pWal ? sqlite3WalFile(pPager->pWal) : pPager->jfd; @@ -69810,6 +70220,7 @@ struct IntegrityCk { StrAccum errMsg; /* Accumulate the error message text here */ u32 *heap; /* Min-heap used for analyzing cell coverage */ sqlite3 *db; /* Database connection running the check */ + i64 nRow; /* Number of rows visited in current tree */ }; /* @@ -70284,8 +70695,47 @@ int corruptPageError(int lineno, MemPage *p){ # define SQLITE_CORRUPT_PAGE(pMemPage) SQLITE_CORRUPT_PGNO(pMemPage->pgno) #endif +/* Default value for SHARED_LOCK_TRACE macro if shared-cache is disabled +** or if the lock tracking is disabled. This is always the value for +** release builds. +*/ +#define SHARED_LOCK_TRACE(X,MSG,TAB,TYPE) /*no-op*/ + #ifndef SQLITE_OMIT_SHARED_CACHE +#if 0 +/* ^---- Change to 1 and recompile to enable shared-lock tracing +** for debugging purposes. +** +** Print all shared-cache locks on a BtShared. Debugging use only. +*/ +static void sharedLockTrace( + BtShared *pBt, + const char *zMsg, + int iRoot, + int eLockType +){ + BtLock *pLock; + if( iRoot>0 ){ + printf("%s-%p %u%s:", zMsg, pBt, iRoot, eLockType==READ_LOCK?"R":"W"); + }else{ + printf("%s-%p:", zMsg, pBt); + } + for(pLock=pBt->pLock; pLock; pLock=pLock->pNext){ + printf(" %p/%u%s", pLock->pBtree, pLock->iTable, + pLock->eLock==READ_LOCK ? "R" : "W"); + while( pLock->pNext && pLock->pBtree==pLock->pNext->pBtree ){ + pLock = pLock->pNext; + printf(",%u%s", pLock->iTable, pLock->eLock==READ_LOCK ? "R" : "W"); + } + } + printf("\n"); + fflush(stdout); +} +#undef SHARED_LOCK_TRACE +#define SHARED_LOCK_TRACE(X,MSG,TAB,TYPE) sharedLockTrace(X,MSG,TAB,TYPE) +#endif /* Shared-lock tracing */ + #ifdef SQLITE_DEBUG /* **** This function is only used as part of an assert() statement. *** @@ -70362,6 +70812,8 @@ static int hasSharedCacheTableLock( iTab = iRoot; } + SHARED_LOCK_TRACE(pBtree->pBt,"hasLock",iRoot,eLockType); + /* Search for the required lock. Either a write-lock on root-page iTab, a ** write-lock on the schema table, or (if the client is reading) a ** read-lock on iTab will suffice. Return 1 if any of these are found. */ @@ -70495,6 +70947,8 @@ static int setSharedCacheTableLock(Btree *p, Pgno iTable, u8 eLock){ BtLock *pLock = 0; BtLock *pIter; + SHARED_LOCK_TRACE(pBt,"setLock", iTable, eLock); + assert( sqlite3BtreeHoldsMutex(p) ); assert( eLock==READ_LOCK || eLock==WRITE_LOCK ); assert( p->db!=0 ); @@ -70562,6 +71016,8 @@ static void clearAllSharedCacheTableLocks(Btree *p){ assert( p->sharable || 0==*ppIter ); assert( p->inTrans>0 ); + SHARED_LOCK_TRACE(pBt, "clearAllLocks", 0, 0); + while( *ppIter ){ BtLock *pLock = *ppIter; assert( (pBt->btsFlags & BTS_EXCLUSIVE)==0 || pBt->pWriter==pLock->pBtree ); @@ -70600,6 +71056,9 @@ static void clearAllSharedCacheTableLocks(Btree *p){ */ static void downgradeAllSharedCacheTableLocks(Btree *p){ BtShared *pBt = p->pBt; + + SHARED_LOCK_TRACE(pBt, "downgradeLocks", 0, 0); + if( pBt->pWriter==p ){ BtLock *pLock; pBt->pWriter = 0; @@ -75213,9 +75672,12 @@ static int accessPayload( if( pCur->aOverflow==0 || nOvfl*(int)sizeof(Pgno) > sqlite3MallocSize(pCur->aOverflow) ){ - Pgno *aNew = (Pgno*)sqlite3Realloc( - pCur->aOverflow, nOvfl*2*sizeof(Pgno) - ); + Pgno *aNew; + if( sqlite3FaultSim(413) ){ + aNew = 0; + }else{ + aNew = (Pgno*)sqlite3Realloc(pCur->aOverflow, nOvfl*2*sizeof(Pgno)); + } if( aNew==0 ){ return SQLITE_NOMEM_BKPT; }else{ @@ -75225,6 +75687,12 @@ static int accessPayload( memset(pCur->aOverflow, 0, nOvfl*sizeof(Pgno)); pCur->curFlags |= BTCF_ValidOvfl; }else{ + /* Sanity check the validity of the overflow page cache */ + assert( pCur->aOverflow[0]==nextPage + || pCur->aOverflow[0]==0 + || CORRUPT_DB ); + assert( pCur->aOverflow[0]!=0 || pCur->aOverflow[offset/ovflSize]==0 ); + /* If the overflow page-list cache has been allocated and the ** entry for the first required overflow page is valid, skip ** directly to it. @@ -75706,6 +76174,23 @@ SQLITE_PRIVATE int sqlite3BtreeFirst(BtCursor *pCur, int *pRes){ return rc; } +#ifdef SQLITE_DEBUG +/* The cursors is CURSOR_VALID and has BTCF_AtLast set. Verify that +** this flags are true for a consistent database. +** +** This routine is is called from within assert() statements only. +** It is an internal verification routine and does not appear in production +** builds. +*/ +static int cursorIsAtLastEntry(BtCursor *pCur){ + int ii; + for(ii=0; iiiPage; ii++){ + if( pCur->aiIdx[ii]!=pCur->apPage[ii]->nCell ) return 0; + } + return pCur->ix==pCur->pPage->nCell-1 && pCur->pPage->leaf!=0; +} +#endif + /* Move the cursor to the last entry in the table. Return SQLITE_OK ** on success. Set *pRes to 0 if the cursor actually points to something ** or set *pRes to 1 if the table is empty. @@ -75734,18 +76219,7 @@ SQLITE_PRIVATE int sqlite3BtreeLast(BtCursor *pCur, int *pRes){ /* If the cursor already points to the last entry, this is a no-op. */ if( CURSOR_VALID==pCur->eState && (pCur->curFlags & BTCF_AtLast)!=0 ){ -#ifdef SQLITE_DEBUG - /* This block serves to assert() that the cursor really does point - ** to the last entry in the b-tree. */ - int ii; - for(ii=0; iiiPage; ii++){ - assert( pCur->aiIdx[ii]==pCur->apPage[ii]->nCell ); - } - assert( pCur->ix==pCur->pPage->nCell-1 || CORRUPT_DB ); - testcase( pCur->ix!=pCur->pPage->nCell-1 ); - /* ^-- dbsqlfuzz b92b72e4de80b5140c30ab71372ca719b8feb618 */ - assert( pCur->pPage->leaf ); -#endif + assert( cursorIsAtLastEntry(pCur) || CORRUPT_DB ); *pRes = 0; return SQLITE_OK; } @@ -75798,6 +76272,7 @@ SQLITE_PRIVATE int sqlite3BtreeTableMoveto( } if( pCur->info.nKeycurFlags & BTCF_AtLast)!=0 ){ + assert( cursorIsAtLastEntry(pCur) || CORRUPT_DB ); *pRes = -1; return SQLITE_OK; } @@ -76264,10 +76739,10 @@ SQLITE_PRIVATE i64 sqlite3BtreeRowCountEst(BtCursor *pCur){ assert( cursorOwnsBtShared(pCur) ); assert( sqlite3_mutex_held(pCur->pBtree->db->mutex) ); - /* Currently this interface is only called by the OP_IfSmaller - ** opcode, and it that case the cursor will always be valid and - ** will always point to a leaf node. */ - if( NEVER(pCur->eState!=CURSOR_VALID) ) return -1; + /* Currently this interface is only called by the OP_IfSizeBetween + ** opcode and the OP_Count opcode with P3=1. In either case, + ** the cursor will always be valid unless the btree is empty. */ + if( pCur->eState!=CURSOR_VALID ) return 0; if( NEVER(pCur->pPage->leaf==0) ) return -1; n = pCur->pPage->nCell; @@ -77089,7 +77564,10 @@ static int fillInCell( n = nHeader + nPayload; testcase( n==3 ); testcase( n==4 ); - if( n<4 ) n = 4; + if( n<4 ){ + n = 4; + pPayload[nPayload] = 0; + } *pnSize = n; assert( nSrc<=nPayload ); testcase( nSrcaData[0]!=apOld[0]->aData[0] ){ - rc = SQLITE_CORRUPT_BKPT; + rc = SQLITE_CORRUPT_PAGE(pOld); goto balance_cleanup; } @@ -78419,7 +78897,7 @@ static int balance_nonroot( memset(&b.szCell[b.nCell], 0, sizeof(b.szCell[0])*(limit+pOld->nOverflow)); if( pOld->nOverflow>0 ){ if( NEVER(limitaiOvfl[0]) ){ - rc = SQLITE_CORRUPT_BKPT; + rc = SQLITE_CORRUPT_PAGE(pOld); goto balance_cleanup; } limit = pOld->aiOvfl[0]; @@ -79062,7 +79540,7 @@ static int anotherValidCursor(BtCursor *pCur){ && pOther->eState==CURSOR_VALID && pOther->pPage==pCur->pPage ){ - return SQLITE_CORRUPT_BKPT; + return SQLITE_CORRUPT_PAGE(pCur->pPage); } } return SQLITE_OK; @@ -79122,7 +79600,7 @@ static int balance(BtCursor *pCur){ /* The page being written is not a root page, and there is currently ** more than one reference to it. This only happens if the page is one ** of its own ancestor pages. Corruption. */ - rc = SQLITE_CORRUPT_BKPT; + rc = SQLITE_CORRUPT_PAGE(pPage); }else{ MemPage * const pParent = pCur->apPage[iPage-1]; int const iIdx = pCur->aiIdx[iPage-1]; @@ -79286,7 +79764,7 @@ static SQLITE_NOINLINE int btreeOverwriteOverflowCell( rc = btreeGetPage(pBt, ovflPgno, &pPage, 0); if( rc ) return rc; if( sqlite3PagerPageRefcount(pPage->pDbPage)!=1 || pPage->isInit ){ - rc = SQLITE_CORRUPT_BKPT; + rc = SQLITE_CORRUPT_PAGE(pPage); }else{ if( iOffset+ovflPageSize<(u32)nTotal ){ ovflPgno = get4byte(pPage->aData); @@ -79314,7 +79792,7 @@ static int btreeOverwriteCell(BtCursor *pCur, const BtreePayload *pX){ if( pCur->info.pPayload + pCur->info.nLocal > pPage->aDataEnd || pCur->info.pPayload < pPage->aData + pPage->cellOffset ){ - return SQLITE_CORRUPT_BKPT; + return SQLITE_CORRUPT_PAGE(pPage); } if( pCur->info.nLocal==nTotal ){ /* The entire cell is local */ @@ -79395,7 +79873,7 @@ SQLITE_PRIVATE int sqlite3BtreeInsert( ** Which can only happen if the SQLITE_NoSchemaError flag was set when ** the schema was loaded. This cannot be asserted though, as a user might ** set the flag, load the schema, and then unset the flag. */ - return SQLITE_CORRUPT_BKPT; + return SQLITE_CORRUPT_PGNO(pCur->pgnoRoot); } } @@ -79518,7 +79996,7 @@ SQLITE_PRIVATE int sqlite3BtreeInsert( if( pPage->nFree<0 ){ if( NEVER(pCur->eState>CURSOR_INVALID) ){ /* ^^^^^--- due to the moveToRoot() call above */ - rc = SQLITE_CORRUPT_BKPT; + rc = SQLITE_CORRUPT_PAGE(pPage); }else{ rc = btreeComputeFreeSpace(pPage); } @@ -79535,7 +80013,10 @@ SQLITE_PRIVATE int sqlite3BtreeInsert( if( flags & BTREE_PREFORMAT ){ rc = SQLITE_OK; szNew = p->pBt->nPreformatSize; - if( szNew<4 ) szNew = 4; + if( szNew<4 ){ + szNew = 4; + newCell[3] = 0; + } if( ISAUTOVACUUM(p->pBt) && szNew>pPage->maxLocal ){ CellInfo info; pPage->xParseCell(pPage, newCell, &info); @@ -79557,7 +80038,7 @@ SQLITE_PRIVATE int sqlite3BtreeInsert( CellInfo info; assert( idx>=0 ); if( idx>=pPage->nCell ){ - return SQLITE_CORRUPT_BKPT; + return SQLITE_CORRUPT_PAGE(pPage); } rc = sqlite3PagerWrite(pPage->pDbPage); if( rc ){ @@ -79584,10 +80065,10 @@ SQLITE_PRIVATE int sqlite3BtreeInsert( ** necessary to add the PTRMAP_OVERFLOW1 pointer-map entry. */ assert( rc==SQLITE_OK ); /* clearCell never fails when nLocal==nPayload */ if( oldCell < pPage->aData+pPage->hdrOffset+10 ){ - return SQLITE_CORRUPT_BKPT; + return SQLITE_CORRUPT_PAGE(pPage); } if( oldCell+szNew > pPage->aDataEnd ){ - return SQLITE_CORRUPT_BKPT; + return SQLITE_CORRUPT_PAGE(pPage); } memcpy(oldCell, newCell, szNew); return SQLITE_OK; @@ -79597,7 +80078,7 @@ SQLITE_PRIVATE int sqlite3BtreeInsert( }else if( loc<0 && pPage->nCell>0 ){ assert( pPage->leaf ); idx = ++pCur->ix; - pCur->curFlags &= ~BTCF_ValidNKey; + pCur->curFlags &= ~(BTCF_ValidNKey|BTCF_ValidOvfl); }else{ assert( pPage->leaf ); } @@ -79627,7 +80108,7 @@ SQLITE_PRIVATE int sqlite3BtreeInsert( */ if( pPage->nOverflow ){ assert( rc==SQLITE_OK ); - pCur->curFlags &= ~(BTCF_ValidNKey); + pCur->curFlags &= ~(BTCF_ValidNKey|BTCF_ValidOvfl); rc = balance(pCur); /* Must make sure nOverflow is reset to zero even if the balance() @@ -79689,7 +80170,7 @@ SQLITE_PRIVATE int sqlite3BtreeTransferRow(BtCursor *pDest, BtCursor *pSrc, i64 nIn = pSrc->info.nLocal; aIn = pSrc->info.pPayload; if( aIn+nIn>pSrc->pPage->aDataEnd ){ - return SQLITE_CORRUPT_BKPT; + return SQLITE_CORRUPT_PAGE(pSrc->pPage); } nRem = pSrc->info.nPayload; if( nIn==nRem && nInpPage->maxLocal ){ @@ -79714,7 +80195,7 @@ SQLITE_PRIVATE int sqlite3BtreeTransferRow(BtCursor *pDest, BtCursor *pSrc, i64 if( nRem>nIn ){ if( aIn+nIn+4>pSrc->pPage->aDataEnd ){ - return SQLITE_CORRUPT_BKPT; + return SQLITE_CORRUPT_PAGE(pSrc->pPage); } ovflIn = get4byte(&pSrc->info.pPayload[nIn]); } @@ -79810,7 +80291,7 @@ SQLITE_PRIVATE int sqlite3BtreeDelete(BtCursor *pCur, u8 flags){ assert( rc!=SQLITE_OK || CORRUPT_DB || pCur->eState==CURSOR_VALID ); if( rc || pCur->eState!=CURSOR_VALID ) return rc; }else{ - return SQLITE_CORRUPT_BKPT; + return SQLITE_CORRUPT_PGNO(pCur->pgnoRoot); } } assert( pCur->eState==CURSOR_VALID ); @@ -79819,14 +80300,14 @@ SQLITE_PRIVATE int sqlite3BtreeDelete(BtCursor *pCur, u8 flags){ iCellIdx = pCur->ix; pPage = pCur->pPage; if( pPage->nCell<=iCellIdx ){ - return SQLITE_CORRUPT_BKPT; + return SQLITE_CORRUPT_PAGE(pPage); } pCell = findCell(pPage, iCellIdx); if( pPage->nFree<0 && btreeComputeFreeSpace(pPage) ){ - return SQLITE_CORRUPT_BKPT; + return SQLITE_CORRUPT_PAGE(pPage); } if( pCell<&pPage->aCellIdx[pPage->nCell] ){ - return SQLITE_CORRUPT_BKPT; + return SQLITE_CORRUPT_PAGE(pPage); } /* If the BTREE_SAVEPOSITION bit is on, then the cursor position must @@ -79917,7 +80398,7 @@ SQLITE_PRIVATE int sqlite3BtreeDelete(BtCursor *pCur, u8 flags){ n = pCur->pPage->pgno; } pCell = findCell(pLeaf, pLeaf->nCell-1); - if( pCell<&pLeaf->aData[4] ) return SQLITE_CORRUPT_BKPT; + if( pCell<&pLeaf->aData[4] ) return SQLITE_CORRUPT_PAGE(pLeaf); nCell = pLeaf->xCellSize(pLeaf, pCell); assert( MX_CELL_SIZE(pBt) >= nCell ); pTmp = pBt->pTmpSpace; @@ -80033,7 +80514,7 @@ static int btreeCreateTable(Btree *p, Pgno *piTable, int createTabFlags){ */ sqlite3BtreeGetMeta(p, BTREE_LARGEST_ROOT_PAGE, &pgnoRoot); if( pgnoRoot>btreePagecount(pBt) ){ - return SQLITE_CORRUPT_BKPT; + return SQLITE_CORRUPT_PGNO(pgnoRoot); } pgnoRoot++; @@ -80081,7 +80562,7 @@ static int btreeCreateTable(Btree *p, Pgno *piTable, int createTabFlags){ } rc = ptrmapGet(pBt, pgnoRoot, &eType, &iPtrPage); if( eType==PTRMAP_ROOTPAGE || eType==PTRMAP_FREEPAGE ){ - rc = SQLITE_CORRUPT_BKPT; + rc = SQLITE_CORRUPT_PGNO(pgnoRoot); } if( rc!=SQLITE_OK ){ releasePage(pRoot); @@ -80171,14 +80652,14 @@ static int clearDatabasePage( assert( sqlite3_mutex_held(pBt->mutex) ); if( pgno>btreePagecount(pBt) ){ - return SQLITE_CORRUPT_BKPT; + return SQLITE_CORRUPT_PGNO(pgno); } rc = getAndInitPage(pBt, pgno, &pPage, 0); if( rc ) return rc; if( (pBt->openFlags & BTREE_SINGLE)==0 && sqlite3PagerPageRefcount(pPage->pDbPage) != (1 + (pgno==1)) ){ - rc = SQLITE_CORRUPT_BKPT; + rc = SQLITE_CORRUPT_PAGE(pPage); goto cleardatabasepage_out; } hdr = pPage->hdrOffset; @@ -80282,7 +80763,7 @@ static int btreeDropTable(Btree *p, Pgno iTable, int *piMoved){ assert( p->inTrans==TRANS_WRITE ); assert( iTable>=2 ); if( iTable>btreePagecount(pBt) ){ - return SQLITE_CORRUPT_BKPT; + return SQLITE_CORRUPT_PGNO(iTable); } rc = sqlite3BtreeClearTable(p, iTable, 0); @@ -80876,6 +81357,9 @@ static int checkTreePage( ** number of cells on the page. */ nCell = get2byte(&data[hdr+3]); assert( pPage->nCell==nCell ); + if( pPage->leaf || pPage->intKey==0 ){ + pCheck->nRow += nCell; + } /* EVIDENCE-OF: R-23882-45353 The cell pointer array of a b-tree page ** immediately follows the b-tree page header. */ @@ -80987,6 +81471,7 @@ static int checkTreePage( btreeHeapInsert(heap, (pc<<16)|(pc+size-1)); } } + assert( heap!=0 ); /* Add the freeblocks to the min-heap ** ** EVIDENCE-OF: R-20690-50594 The second field of the b-tree page header @@ -81086,6 +81571,7 @@ SQLITE_PRIVATE int sqlite3BtreeIntegrityCheck( sqlite3 *db, /* Database connection that is running the check */ Btree *p, /* The btree to be checked */ Pgno *aRoot, /* An array of root pages numbers for individual trees */ + Mem *aCnt, /* Memory cells to write counts for each tree to */ int nRoot, /* Number of entries in aRoot[] */ int mxErr, /* Stop reporting errors after this many */ int *pnErr, /* OUT: Write number of errors seen to this variable */ @@ -81099,7 +81585,9 @@ SQLITE_PRIVATE int sqlite3BtreeIntegrityCheck( int bPartial = 0; /* True if not checking all btrees */ int bCkFreelist = 1; /* True to scan the freelist */ VVA_ONLY( int nRef ); + assert( nRoot>0 ); + assert( aCnt!=0 ); /* aRoot[0]==0 means this is a partial check */ if( aRoot[0]==0 ){ @@ -81172,15 +81660,18 @@ SQLITE_PRIVATE int sqlite3BtreeIntegrityCheck( testcase( pBt->db->flags & SQLITE_CellSizeCk ); pBt->db->flags &= ~(u64)SQLITE_CellSizeCk; for(i=0; (int)iautoVacuum && aRoot[i]>1 && !bPartial ){ - checkPtrmap(&sCheck, aRoot[i], PTRMAP_ROOTPAGE, 0); - } + if( pBt->autoVacuum && aRoot[i]>1 && !bPartial ){ + checkPtrmap(&sCheck, aRoot[i], PTRMAP_ROOTPAGE, 0); + } #endif - sCheck.v0 = aRoot[i]; - checkTreePage(&sCheck, aRoot[i], ¬Used, LARGEST_INT64); + sCheck.v0 = aRoot[i]; + checkTreePage(&sCheck, aRoot[i], ¬Used, LARGEST_INT64); + } + sqlite3MemSetArrayInt64(aCnt, i, sCheck.nRow); } pBt->db->flags = savedDbFlags; @@ -83235,6 +83726,13 @@ SQLITE_PRIVATE void sqlite3VdbeMemSetInt64(Mem *pMem, i64 val){ } } +/* +** Set the iIdx'th entry of array aMem[] to contain integer value val. +*/ +SQLITE_PRIVATE void sqlite3MemSetArrayInt64(sqlite3_value *aMem, int iIdx, i64 val){ + sqlite3VdbeMemSetInt64(&aMem[iIdx], val); +} + /* A no-op destructor */ SQLITE_PRIVATE void sqlite3NoopDestructor(void *p){ UNUSED_PARAMETER(p); } @@ -83923,14 +84421,20 @@ static int valueFromExpr( } /* Handle negative integers in a single step. This is needed in the - ** case when the value is -9223372036854775808. - */ - if( op==TK_UMINUS - && (pExpr->pLeft->op==TK_INTEGER || pExpr->pLeft->op==TK_FLOAT) ){ - pExpr = pExpr->pLeft; - op = pExpr->op; - negInt = -1; - zNeg = "-"; + ** case when the value is -9223372036854775808. Except - do not do this + ** for hexadecimal literals. */ + if( op==TK_UMINUS ){ + Expr *pLeft = pExpr->pLeft; + if( (pLeft->op==TK_INTEGER || pLeft->op==TK_FLOAT) ){ + if( ExprHasProperty(pLeft, EP_IntValue) + || pLeft->u.zToken[0]!='0' || (pLeft->u.zToken[1] & ~0x20)!='X' + ){ + pExpr = pLeft; + op = pExpr->op; + negInt = -1; + zNeg = "-"; + } + } } if( op==TK_STRING || op==TK_FLOAT || op==TK_INTEGER ){ @@ -83939,12 +84443,26 @@ static int valueFromExpr( if( ExprHasProperty(pExpr, EP_IntValue) ){ sqlite3VdbeMemSetInt64(pVal, (i64)pExpr->u.iValue*negInt); }else{ - zVal = sqlite3MPrintf(db, "%s%s", zNeg, pExpr->u.zToken); - if( zVal==0 ) goto no_mem; - sqlite3ValueSetStr(pVal, -1, zVal, SQLITE_UTF8, SQLITE_DYNAMIC); + i64 iVal; + if( op==TK_INTEGER && 0==sqlite3DecOrHexToI64(pExpr->u.zToken, &iVal) ){ + sqlite3VdbeMemSetInt64(pVal, iVal*negInt); + }else{ + zVal = sqlite3MPrintf(db, "%s%s", zNeg, pExpr->u.zToken); + if( zVal==0 ) goto no_mem; + sqlite3ValueSetStr(pVal, -1, zVal, SQLITE_UTF8, SQLITE_DYNAMIC); + } } - if( (op==TK_INTEGER || op==TK_FLOAT ) && affinity==SQLITE_AFF_BLOB ){ - sqlite3ValueApplyAffinity(pVal, SQLITE_AFF_NUMERIC, SQLITE_UTF8); + if( affinity==SQLITE_AFF_BLOB ){ + if( op==TK_FLOAT ){ + assert( pVal && pVal->z && pVal->flags==(MEM_Str|MEM_Term) ); + sqlite3AtoF(pVal->z, &pVal->u.r, pVal->n, SQLITE_UTF8); + pVal->flags = MEM_Real; + }else if( op==TK_INTEGER ){ + /* This case is required by -9223372036854775808 and other strings + ** that look like integers but cannot be handled by the + ** sqlite3DecOrHexToI64() call above. */ + sqlite3ValueApplyAffinity(pVal, SQLITE_AFF_NUMERIC, SQLITE_UTF8); + } }else{ sqlite3ValueApplyAffinity(pVal, affinity, SQLITE_UTF8); } @@ -84214,17 +84732,17 @@ SQLITE_PRIVATE int sqlite3Stat4Column( sqlite3_value **ppVal /* OUT: Extracted value */ ){ u32 t = 0; /* a column type code */ - int nHdr; /* Size of the header in the record */ - int iHdr; /* Next unread header byte */ - int iField; /* Next unread data byte */ - int szField = 0; /* Size of the current data field */ + u32 nHdr; /* Size of the header in the record */ + u32 iHdr; /* Next unread header byte */ + i64 iField; /* Next unread data byte */ + u32 szField = 0; /* Size of the current data field */ int i; /* Column index */ u8 *a = (u8*)pRec; /* Typecast byte array */ Mem *pMem = *ppVal; /* Write result into this Mem object */ assert( iCol>0 ); iHdr = getVarint32(a, nHdr); - if( nHdr>nRec || iHdr>=nHdr ) return SQLITE_CORRUPT_BKPT; + if( nHdr>(u32)nRec || iHdr>=nHdr ) return SQLITE_CORRUPT_BKPT; iField = nHdr; for(i=0; i<=iCol; i++){ iHdr += getVarint32(&a[iHdr], t); @@ -85259,6 +85777,15 @@ static void resolveP2Values(Vdbe *p, int *pMaxFuncArgs){ assert( aLabel!=0 ); /* True because of tag-20230419-1 */ pOp->p2 = aLabel[ADDR(pOp->p2)]; } + + /* OPFLG_JUMP opcodes never have P2==0, though OPFLG_JUMP0 opcodes + ** might */ + assert( pOp->p2>0 + || (sqlite3OpcodeProperty[pOp->opcode] & OPFLG_JUMP0)!=0 ); + + /* Jumps never go off the end of the bytecode array */ + assert( pOp->p2nOp + || (sqlite3OpcodeProperty[pOp->opcode] & OPFLG_JUMP)==0 ); break; } } @@ -87666,7 +88193,7 @@ SQLITE_PRIVATE int sqlite3VdbeHalt(Vdbe *p){ /* Check for immediate foreign key violations. */ if( p->rc==SQLITE_OK || (p->errorAction==OE_Fail && !isSpecialError) ){ - sqlite3VdbeCheckFk(p, 0); + (void)sqlite3VdbeCheckFk(p, 0); } /* If the auto-commit flag is set and this is the only active writer @@ -88380,6 +88907,23 @@ static void serialGet( pMem->flags = IsNaN(x) ? MEM_Null : MEM_Real; } } +static int serialGet7( + const unsigned char *buf, /* Buffer to deserialize from */ + Mem *pMem /* Memory cell to write value into */ +){ + u64 x = FOUR_BYTE_UINT(buf); + u32 y = FOUR_BYTE_UINT(buf+4); + x = (x<<32) + y; + assert( sizeof(x)==8 && sizeof(pMem->u.r)==8 ); + swapMixedEndianFloat(x); + memcpy(&pMem->u.r, &x, sizeof(x)); + if( IsNaN(x) ){ + pMem->flags = MEM_Null; + return 1; + } + pMem->flags = MEM_Real; + return 0; +} SQLITE_PRIVATE void sqlite3VdbeSerialGet( const unsigned char *buf, /* Buffer to deserialize from */ u32 serial_type, /* Serial type to deserialize */ @@ -88819,17 +89363,15 @@ SQLITE_PRIVATE int sqlite3IntFloatCompare(i64 i, double r){ return (xr); }else{ i64 y; - double s; if( r<-9223372036854775808.0 ) return +1; if( r>=9223372036854775808.0 ) return -1; y = (i64)r; if( iy ) return +1; - s = (double)i; - testcase( doubleLt(s,r) ); - testcase( doubleLt(r,s) ); - testcase( doubleEq(r,s) ); - return (sr); + testcase( doubleLt(((double)i),r) ); + testcase( doubleLt(r,((double)i)) ); + testcase( doubleEq(r,((double)i)) ); + return (((double)i)r); } } @@ -89059,7 +89601,7 @@ SQLITE_PRIVATE int sqlite3VdbeRecordCompareWithSkip( }else if( serial_type==0 ){ rc = -1; }else if( serial_type==7 ){ - sqlite3VdbeSerialGet(&aKey1[d1], serial_type, &mem1); + serialGet7(&aKey1[d1], &mem1); rc = -sqlite3IntFloatCompare(pRhs->u.i, mem1.u.r); }else{ i64 lhs = vdbeRecordDecodeInt(serial_type, &aKey1[d1]); @@ -89084,14 +89626,18 @@ SQLITE_PRIVATE int sqlite3VdbeRecordCompareWithSkip( }else if( serial_type==0 ){ rc = -1; }else{ - sqlite3VdbeSerialGet(&aKey1[d1], serial_type, &mem1); if( serial_type==7 ){ - if( mem1.u.ru.r ){ + if( serialGet7(&aKey1[d1], &mem1) ){ + rc = -1; /* mem1 is a NaN */ + }else if( mem1.u.ru.r ){ rc = -1; }else if( mem1.u.r>pRhs->u.r ){ rc = +1; + }else{ + assert( rc==0 ); } }else{ + sqlite3VdbeSerialGet(&aKey1[d1], serial_type, &mem1); rc = sqlite3IntFloatCompare(mem1.u.i, pRhs->u.r); } } @@ -89161,7 +89707,14 @@ SQLITE_PRIVATE int sqlite3VdbeRecordCompareWithSkip( /* RHS is null */ else{ serial_type = aKey1[idx1]; - rc = (serial_type!=0 && serial_type!=10); + if( serial_type==0 + || serial_type==10 + || (serial_type==7 && serialGet7(&aKey1[d1], &mem1)!=0) + ){ + assert( rc==0 ); + }else{ + rc = 1; + } } if( rc!=0 ){ @@ -89621,7 +90174,8 @@ SQLITE_PRIVATE sqlite3_value *sqlite3VdbeGetBoundValue(Vdbe *v, int iVar, u8 aff assert( iVar>0 ); if( v ){ Mem *pMem = &v->aVar[iVar-1]; - assert( (v->db->flags & SQLITE_EnableQPSG)==0 ); + assert( (v->db->flags & SQLITE_EnableQPSG)==0 + || (v->db->mDbFlags & DBFLAG_InternalFunc)!=0 ); if( 0==(pMem->flags & MEM_Null) ){ sqlite3_value *pRet = sqlite3ValueNew(v->db); if( pRet ){ @@ -89641,7 +90195,8 @@ SQLITE_PRIVATE sqlite3_value *sqlite3VdbeGetBoundValue(Vdbe *v, int iVar, u8 aff */ SQLITE_PRIVATE void sqlite3VdbeSetVarmask(Vdbe *v, int iVar){ assert( iVar>0 ); - assert( (v->db->flags & SQLITE_EnableQPSG)==0 ); + assert( (v->db->flags & SQLITE_EnableQPSG)==0 + || (v->db->mDbFlags & DBFLAG_InternalFunc)!=0 ); if( iVar>=32 ){ v->expmask |= 0x80000000; }else{ @@ -92226,7 +92781,6 @@ SQLITE_API int sqlite3_stmt_scanstatus_v2( } if( flags & SQLITE_SCANSTAT_COMPLEX ){ idx = iScan; - pScan = &p->aScan[idx]; }else{ /* If the COMPLEX flag is clear, then this function must ignore any ** ScanStatus structures with ScanStatus.addrLoop set to 0. */ @@ -92239,6 +92793,8 @@ SQLITE_API int sqlite3_stmt_scanstatus_v2( } } if( idx>=p->nScan ) return 1; + assert( pScan==0 || pScan==&p->aScan[idx] ); + pScan = &p->aScan[idx]; switch( iScanStatusOp ){ case SQLITE_SCANSTAT_NLOOP: { @@ -93687,7 +94243,7 @@ case OP_Return: { /* in1 */ ** ** See also: EndCoroutine */ -case OP_InitCoroutine: { /* jump */ +case OP_InitCoroutine: { /* jump0 */ assert( pOp->p1>0 && pOp->p1<=(p->nMem+1 - p->nCursor) ); assert( pOp->p2>=0 && pOp->p2nOp ); assert( pOp->p3>=0 && pOp->p3nOp ); @@ -93710,7 +94266,9 @@ case OP_InitCoroutine: { /* jump */ ** ** The instruction at the address in register P1 is a Yield. ** Jump to the P2 parameter of that Yield. -** After the jump, register P1 becomes undefined. +** After the jump, the value register P1 is left with a value +** such that subsequent OP_Yields go back to the this same +** OP_EndCoroutine instruction. ** ** See also: InitCoroutine */ @@ -93722,8 +94280,8 @@ case OP_EndCoroutine: { /* in1 */ pCaller = &aOp[pIn1->u.i]; assert( pCaller->opcode==OP_Yield ); assert( pCaller->p2>=0 && pCaller->p2nOp ); + pIn1->u.i = (int)(pOp - p->aOp) - 1; pOp = &aOp[pCaller->p2 - 1]; - pIn1->flags = MEM_Undefined; break; } @@ -93740,7 +94298,7 @@ case OP_EndCoroutine: { /* in1 */ ** ** See also: InitCoroutine */ -case OP_Yield: { /* in1, jump */ +case OP_Yield: { /* in1, jump0 */ int pcDest; pIn1 = &aMem[pOp->p1]; assert( VdbeMemDynamic(pIn1)==0 ); @@ -94070,19 +94628,15 @@ case OP_Blob: { /* out2 */ break; } -/* Opcode: Variable P1 P2 * P4 * -** Synopsis: r[P2]=parameter(P1,P4) +/* Opcode: Variable P1 P2 * * * +** Synopsis: r[P2]=parameter(P1) ** ** Transfer the values of bound parameter P1 into register P2 -** -** If the parameter is named, then its name appears in P4. -** The P4 value is used by sqlite3_bind_parameter_name(). */ case OP_Variable: { /* out2 */ Mem *pVar; /* Value being transferred */ assert( pOp->p1>0 && pOp->p1<=p->nVar ); - assert( pOp->p4.z==0 || pOp->p4.z==sqlite3VListNumToName(p->pVList,pOp->p1) ); pVar = &p->aVar[pOp->p1 - 1]; if( sqlite3VdbeMemTooBig(pVar) ){ goto too_big; @@ -94603,7 +95157,7 @@ case OP_AddImm: { /* in1 */ ** without data loss, then jump immediately to P2, or if P2==0 ** raise an SQLITE_MISMATCH exception. */ -case OP_MustBeInt: { /* jump, in1 */ +case OP_MustBeInt: { /* jump0, in1 */ pIn1 = &aMem[pOp->p1]; if( (pIn1->flags & MEM_Int)==0 ){ applyAffinity(pIn1, SQLITE_AFF_NUMERIC, encoding); @@ -94644,7 +95198,7 @@ case OP_RealAffinity: { /* in1 */ } #endif -#ifndef SQLITE_OMIT_CAST +#if !defined(SQLITE_OMIT_CAST) && !defined(SQLITE_OMIT_ANALYZE) /* Opcode: Cast P1 P2 * * * ** Synopsis: affinity(r[P1]) ** @@ -94859,7 +95413,9 @@ case OP_Ge: { /* same as TK_GE, jump, in1, in3 */ } } }else if( affinity==SQLITE_AFF_TEXT && ((flags1 | flags3) & MEM_Str)!=0 ){ - if( (flags1 & MEM_Str)==0 && (flags1&(MEM_Int|MEM_Real|MEM_IntReal))!=0 ){ + if( (flags1 & MEM_Str)!=0 ){ + pIn1->flags &= ~(MEM_Int|MEM_Real|MEM_IntReal); + }else if( (flags1&(MEM_Int|MEM_Real|MEM_IntReal))!=0 ){ testcase( pIn1->flags & MEM_Int ); testcase( pIn1->flags & MEM_Real ); testcase( pIn1->flags & MEM_IntReal ); @@ -94868,7 +95424,9 @@ case OP_Ge: { /* same as TK_GE, jump, in1, in3 */ flags1 = (pIn1->flags & ~MEM_TypeMask) | (flags1 & MEM_TypeMask); if( NEVER(pIn1==pIn3) ) flags3 = flags1 | MEM_Str; } - if( (flags3 & MEM_Str)==0 && (flags3&(MEM_Int|MEM_Real|MEM_IntReal))!=0 ){ + if( (flags3 & MEM_Str)!=0 ){ + pIn3->flags &= ~(MEM_Int|MEM_Real|MEM_IntReal); + }else if( (flags3&(MEM_Int|MEM_Real|MEM_IntReal))!=0 ){ testcase( pIn3->flags & MEM_Int ); testcase( pIn3->flags & MEM_Real ); testcase( pIn3->flags & MEM_IntReal ); @@ -96212,11 +96770,16 @@ case OP_MakeRecord: { switch( len ){ default: zPayload[7] = (u8)(v&0xff); v >>= 8; zPayload[6] = (u8)(v&0xff); v >>= 8; + /* no break */ deliberate_fall_through case 6: zPayload[5] = (u8)(v&0xff); v >>= 8; zPayload[4] = (u8)(v&0xff); v >>= 8; + /* no break */ deliberate_fall_through case 4: zPayload[3] = (u8)(v&0xff); v >>= 8; + /* no break */ deliberate_fall_through case 3: zPayload[2] = (u8)(v&0xff); v >>= 8; + /* no break */ deliberate_fall_through case 2: zPayload[1] = (u8)(v&0xff); v >>= 8; + /* no break */ deliberate_fall_through case 1: zPayload[0] = (u8)(v&0xff); } zPayload += len; @@ -97135,7 +97698,8 @@ case OP_SequenceTest: { ** is the only cursor opcode that works with a pseudo-table. ** ** P3 is the number of fields in the records that will be stored by -** the pseudo-table. +** the pseudo-table. If P2 is 0 or negative then the pseudo-cursor +** will return NULL for every column. */ case OP_OpenPseudo: { VdbeCursor *pCx; @@ -97278,10 +97842,10 @@ case OP_ColumnsUsed: { ** ** See also: Found, NotFound, SeekGt, SeekGe, SeekLt */ -case OP_SeekLT: /* jump, in3, group, ncycle */ -case OP_SeekLE: /* jump, in3, group, ncycle */ -case OP_SeekGE: /* jump, in3, group, ncycle */ -case OP_SeekGT: { /* jump, in3, group, ncycle */ +case OP_SeekLT: /* jump0, in3, group, ncycle */ +case OP_SeekLE: /* jump0, in3, group, ncycle */ +case OP_SeekGE: /* jump0, in3, group, ncycle */ +case OP_SeekGT: { /* jump0, in3, group, ncycle */ int res; /* Comparison result */ int oc; /* Opcode */ VdbeCursor *pC; /* The cursor to seek */ @@ -97948,7 +98512,7 @@ case OP_Found: { /* jump, in3, ncycle */ ** ** See also: Found, NotFound, NoConflict, SeekRowid */ -case OP_SeekRowid: { /* jump, in3, ncycle */ +case OP_SeekRowid: { /* jump0, in3, ncycle */ VdbeCursor *pC; BtCursor *pCrsr; int res; @@ -98707,7 +99271,7 @@ case OP_NullRow: { ** configured to use Prev, not Next. */ case OP_SeekEnd: /* ncycle */ -case OP_Last: { /* jump, ncycle */ +case OP_Last: { /* jump0, ncycle */ VdbeCursor *pC; BtCursor *pCrsr; int res; @@ -98741,28 +99305,38 @@ case OP_Last: { /* jump, ncycle */ break; } -/* Opcode: IfSmaller P1 P2 P3 * * +/* Opcode: IfSizeBetween P1 P2 P3 P4 * ** -** Estimate the number of rows in the table P1. Jump to P2 if that -** estimate is less than approximately 2**(0.1*P3). +** Let N be the approximate number of rows in the table or index +** with cursor P1 and let X be 10*log2(N) if N is positive or -1 +** if N is zero. +** +** Jump to P2 if X is in between P3 and P4, inclusive. */ -case OP_IfSmaller: { /* jump */ +case OP_IfSizeBetween: { /* jump */ VdbeCursor *pC; BtCursor *pCrsr; int res; i64 sz; assert( pOp->p1>=0 && pOp->p1nCursor ); + assert( pOp->p4type==P4_INT32 ); + assert( pOp->p3>=-1 && pOp->p3<=640*2 ); + assert( pOp->p4.i>=-1 && pOp->p4.i<=640*2 ); pC = p->apCsr[pOp->p1]; assert( pC!=0 ); pCrsr = pC->uc.pCursor; assert( pCrsr ); rc = sqlite3BtreeFirst(pCrsr, &res); if( rc ) goto abort_due_to_error; - if( res==0 ){ + if( res!=0 ){ + sz = -1; /* -Infinity encoding */ + }else{ sz = sqlite3BtreeRowCountEst(pCrsr); - if( ALWAYS(sz>=0) && sqlite3LogEst((u64)sz)p3 ) res = 1; + assert( sz>0 ); + sz = sqlite3LogEst((u64)sz); } + res = sz>=pOp->p3 && sz<=pOp->p4.i; VdbeBranchTaken(res!=0,2); if( res ) goto jump_to_p2; break; @@ -98815,7 +99389,7 @@ case OP_Sort: { /* jump ncycle */ ** from the beginning toward the end. In other words, the cursor is ** configured to use Next, not Prev. */ -case OP_Rewind: { /* jump, ncycle */ +case OP_Rewind: { /* jump0, ncycle */ VdbeCursor *pC; BtCursor *pCrsr; int res; @@ -99462,11 +100036,18 @@ case OP_CreateBtree: { /* out2 */ break; } -/* Opcode: SqlExec * * * P4 * +/* Opcode: SqlExec P1 P2 * P4 * ** ** Run the SQL statement or statements specified in the P4 string. -** Disable Auth and Trace callbacks while those statements are running if -** P1 is true. +** +** The P1 parameter is a bitmask of options: +** +** 0x0001 Disable Auth and Trace callbacks while the statements +** in P4 are running. +** +** 0x0002 Set db->nAnalysisLimit to P2 while the statements in +** P4 are running. +** */ case OP_SqlExec: { char *zErr; @@ -99474,6 +100055,7 @@ case OP_SqlExec: { sqlite3_xauth xAuth; #endif u8 mTrace; + int savedAnalysisLimit; sqlite3VdbeIncrWriteCounter(p, 0); db->nSqlExec++; @@ -99482,18 +100064,23 @@ case OP_SqlExec: { xAuth = db->xAuth; #endif mTrace = db->mTrace; - if( pOp->p1 ){ + savedAnalysisLimit = db->nAnalysisLimit; + if( pOp->p1 & 0x0001 ){ #ifndef SQLITE_OMIT_AUTHORIZATION db->xAuth = 0; #endif db->mTrace = 0; } + if( pOp->p1 & 0x0002 ){ + db->nAnalysisLimit = pOp->p2; + } rc = sqlite3_exec(db, pOp->p4.z, 0, 0, &zErr); db->nSqlExec--; #ifndef SQLITE_OMIT_AUTHORIZATION db->xAuth = xAuth; #endif db->mTrace = mTrace; + db->nAnalysisLimit = savedAnalysisLimit; if( zErr || rc ){ sqlite3VdbeError(p, "%s", zErr); sqlite3_free(zErr); @@ -99645,11 +100232,11 @@ case OP_DropTrigger: { /* Opcode: IntegrityCk P1 P2 P3 P4 P5 ** ** Do an analysis of the currently open database. Store in -** register P1 the text of an error message describing any problems. -** If no problems are found, store a NULL in register P1. +** register (P1+1) the text of an error message describing any problems. +** If no problems are found, store a NULL in register (P1+1). ** -** The register P3 contains one less than the maximum number of allowed errors. -** At most reg(P3) errors will be reported. +** The register (P1) contains one less than the maximum number of allowed +** errors. At most reg(P1) errors will be reported. ** In other words, the analysis stops as soon as reg(P1) errors are ** seen. Reg(P1) is updated with the number of errors remaining. ** @@ -99669,19 +100256,21 @@ case OP_IntegrityCk: { Mem *pnErr; /* Register keeping track of errors remaining */ assert( p->bIsReader ); + assert( pOp->p4type==P4_INTARRAY ); nRoot = pOp->p2; aRoot = pOp->p4.ai; assert( nRoot>0 ); + assert( aRoot!=0 ); assert( aRoot[0]==(Pgno)nRoot ); - assert( pOp->p3>0 && pOp->p3<=(p->nMem+1 - p->nCursor) ); - pnErr = &aMem[pOp->p3]; + assert( pOp->p1>0 && (pOp->p1+1)<=(p->nMem+1 - p->nCursor) ); + pnErr = &aMem[pOp->p1]; assert( (pnErr->flags & MEM_Int)!=0 ); assert( (pnErr->flags & (MEM_Str|MEM_Blob))==0 ); - pIn1 = &aMem[pOp->p1]; + pIn1 = &aMem[pOp->p1+1]; assert( pOp->p5nDb ); assert( DbMaskTest(p->btreeMask, pOp->p5) ); - rc = sqlite3BtreeIntegrityCheck(db, db->aDb[pOp->p5].pBt, &aRoot[1], nRoot, - (int)pnErr->u.i+1, &nErr, &z); + rc = sqlite3BtreeIntegrityCheck(db, db->aDb[pOp->p5].pBt, &aRoot[1], + &aMem[pOp->p3], nRoot, (int)pnErr->u.i+1, &nErr, &z); sqlite3VdbeMemSetNull(pIn1); if( nErr==0 ){ assert( z==0 ); @@ -99808,7 +100397,9 @@ case OP_RowSetTest: { /* jump, in1, in3 */ ** P1 contains the address of the memory cell that contains the first memory ** cell in an array of values used as arguments to the sub-program. P2 ** contains the address to jump to if the sub-program throws an IGNORE -** exception using the RAISE() function. Register P3 contains the address +** exception using the RAISE() function. P2 might be zero, if there is +** no possibility that an IGNORE exception will be raised. +** Register P3 contains the address ** of a memory cell in this (the parent) VM that is used to allocate the ** memory required by the sub-vdbe at runtime. ** @@ -99816,7 +100407,7 @@ case OP_RowSetTest: { /* jump, in1, in3 */ ** ** If P5 is non-zero, then recursive program invocation is enabled. */ -case OP_Program: { /* jump */ +case OP_Program: { /* jump0 */ int nMem; /* Number of memory registers for sub-program */ int nByte; /* Bytes of runtime space required for sub-program */ Mem *pRt; /* Register to allocate runtime space */ @@ -101365,7 +101956,7 @@ case OP_Filter: { /* jump */ ** error is encountered. */ case OP_Trace: -case OP_Init: { /* jump */ +case OP_Init: { /* jump0 */ int i; #ifndef SQLITE_OMIT_TRACE char *zTrace; @@ -105266,10 +105857,10 @@ static int bytecodevtabColumn( #ifdef SQLITE_ENABLE_STMT_SCANSTATUS case 9: /* nexec */ - sqlite3_result_int(ctx, pOp->nExec); + sqlite3_result_int64(ctx, pOp->nExec); break; case 10: /* ncycle */ - sqlite3_result_int(ctx, pOp->nCycle); + sqlite3_result_int64(ctx, pOp->nCycle); break; #else case 9: /* nexec */ @@ -106213,6 +106804,8 @@ static void resolveAlias( assert( iCol>=0 && iColnExpr ); pOrig = pEList->a[iCol].pExpr; assert( pOrig!=0 ); + assert( !ExprHasProperty(pExpr, EP_Reduced|EP_TokenOnly) ); + if( pExpr->pAggInfo ) return; db = pParse->db; pDup = sqlite3ExprDup(db, pOrig, 0); if( db->mallocFailed ){ @@ -106360,7 +106953,7 @@ static void extendFJMatch( static SQLITE_NOINLINE int isValidSchemaTableName( const char *zTab, /* Name as it appears in the SQL */ Table *pTab, /* The schema table we are trying to match */ - Schema *pSchema /* non-NULL if a database qualifier is present */ + const char *zDb /* non-NULL if a database qualifier is present */ ){ const char *zLegacy; assert( pTab!=0 ); @@ -106371,7 +106964,7 @@ static SQLITE_NOINLINE int isValidSchemaTableName( if( sqlite3StrICmp(zTab+7, &PREFERRED_TEMP_SCHEMA_TABLE[7])==0 ){ return 1; } - if( pSchema==0 ) return 0; + if( zDb==0 ) return 0; if( sqlite3StrICmp(zTab+7, &LEGACY_SCHEMA_TABLE[7])==0 ) return 1; if( sqlite3StrICmp(zTab+7, &PREFERRED_SCHEMA_TABLE[7])==0 ) return 1; }else{ @@ -106411,7 +107004,7 @@ static int lookupName( Parse *pParse, /* The parsing context */ const char *zDb, /* Name of the database containing table, or NULL */ const char *zTab, /* Name of table containing column, or NULL */ - const char *zCol, /* Name of the column. */ + const Expr *pRight, /* Name of the column. */ NameContext *pNC, /* The name context used to resolve the name */ Expr *pExpr /* Make this EXPR node point to the selected column */ ){ @@ -106428,6 +107021,7 @@ static int lookupName( Table *pTab = 0; /* Table holding the row */ Column *pCol; /* A column of pTab */ ExprList *pFJMatch = 0; /* Matches for FULL JOIN .. USING */ + const char *zCol = pRight->u.zToken; assert( pNC ); /* the name context cannot be NULL. */ assert( zCol ); /* The Z in X.Y.Z cannot be NULL */ @@ -106553,7 +107147,7 @@ static int lookupName( } }else if( sqlite3StrICmp(zTab, pTab->zName)!=0 ){ if( pTab->tnum!=1 ) continue; - if( !isValidSchemaTableName(zTab, pTab, pSchema) ) continue; + if( !isValidSchemaTableName(zTab, pTab, zDb) ) continue; } assert( ExprUseYTab(pExpr) ); if( IN_RENAME_OBJECT && pItem->zAlias ){ @@ -106600,8 +107194,37 @@ static int lookupName( } } if( 0==cnt && VisibleRowid(pTab) ){ + /* pTab is a potential ROWID match. Keep track of it and match + ** the ROWID later if that seems appropriate. (Search for "cntTab" + ** to find related code.) Only allow a ROWID match if there is + ** a single ROWID match candidate. + */ +#ifdef SQLITE_ALLOW_ROWID_IN_VIEW + /* In SQLITE_ALLOW_ROWID_IN_VIEW mode, allow a ROWID match + ** if there is a single VIEW candidate or if there is a single + ** non-VIEW candidate plus multiple VIEW candidates. In other + ** words non-VIEW candidate terms take precedence over VIEWs. + */ + if( cntTab==0 + || (cntTab==1 + && ALWAYS(pMatch!=0) + && ALWAYS(pMatch->pTab!=0) + && (pMatch->pTab->tabFlags & TF_Ephemeral)!=0 + && (pTab->tabFlags & TF_Ephemeral)==0) + ){ + cntTab = 1; + pMatch = pItem; + }else{ + cntTab++; + } +#else + /* The (much more common) non-SQLITE_ALLOW_ROWID_IN_VIEW case is + ** simpler since we require exactly one candidate, which will + ** always be a non-VIEW + */ cntTab++; pMatch = pItem; +#endif } } if( pMatch ){ @@ -106630,7 +107253,8 @@ static int lookupName( if( pParse->bReturning ){ if( (pNC->ncFlags & NC_UBaseReg)!=0 && ALWAYS(zTab==0 - || sqlite3StrICmp(zTab,pParse->pTriggerTab->zName)==0) + || sqlite3StrICmp(zTab,pParse->pTriggerTab->zName)==0 + || isValidSchemaTableName(zTab, pParse->pTriggerTab, 0)) ){ pExpr->iTable = op!=TK_DELETE; pTab = pParse->pTriggerTab; @@ -106727,13 +107351,18 @@ static int lookupName( ** Perhaps the name is a reference to the ROWID */ if( cnt==0 - && cntTab==1 + && cntTab>=1 && pMatch && (pNC->ncFlags & (NC_IdxExpr|NC_GenCol))==0 && sqlite3IsRowid(zCol) && ALWAYS(VisibleRowid(pMatch->pTab) || pMatch->fg.isNestedFrom) ){ - cnt = 1; + cnt = cntTab; +#if SQLITE_ALLOW_ROWID_IN_VIEW+0==2 + if( pMatch->pTab!=0 && IsView(pMatch->pTab) ){ + eNewExprOp = TK_NULL; + } +#endif if( pMatch->fg.isNestedFrom==0 ) pExpr->iColumn = -1; pExpr->affExpr = SQLITE_AFF_INTEGER; } @@ -106887,6 +107516,10 @@ static int lookupName( sqlite3ErrorMsg(pParse, "%s: %s.%s.%s", zErr, zDb, zTab, zCol); }else if( zTab ){ sqlite3ErrorMsg(pParse, "%s: %s.%s", zErr, zTab, zCol); + }else if( cnt==0 && ExprHasProperty(pRight,EP_DblQuoted) ){ + sqlite3ErrorMsg(pParse, "%s: \"%s\" - should this be a" + " string literal in single-quotes?", + zErr, zCol); }else{ sqlite3ErrorMsg(pParse, "%s: %s", zErr, zCol); } @@ -106920,8 +107553,12 @@ static int lookupName( ** If a generated column is referenced, set bits for every column ** of the table. */ - if( pExpr->iColumn>=0 && cnt==1 && pMatch!=0 ){ - pMatch->colUsed |= sqlite3ExprColUsed(pExpr); + if( pMatch ){ + if( pExpr->iColumn>=0 ){ + pMatch->colUsed |= sqlite3ExprColUsed(pExpr); + }else{ + pMatch->fg.rowidUsed = 1; + } } pExpr->op = eNewExprOp; @@ -107098,6 +107735,19 @@ static int resolveExprStep(Walker *pWalker, Expr *pExpr){ ** resolved. This prevents "column" from being counted as having been ** referenced, which might prevent a SELECT from being erroneously ** marked as correlated. + ** + ** 2024-03-28: Beware of aggregates. A bare column of aggregated table + ** can still evaluate to NULL even though it is marked as NOT NULL. + ** Example: + ** + ** CREATE TABLE t1(a INT NOT NULL); + ** SELECT a, a IS NULL, a IS NOT NULL, count(*) FROM t1; + ** + ** The "a IS NULL" and "a IS NOT NULL" expressions cannot be optimized + ** here because at the time this case is hit, we do not yet know whether + ** or not t1 is being aggregated. We have to assume the worst and omit + ** the optimization. The only time it is safe to apply this optimization + ** is within the WHERE clause. */ case TK_NOTNULL: case TK_ISNULL: { @@ -107108,19 +107758,36 @@ static int resolveExprStep(Walker *pWalker, Expr *pExpr){ anRef[i] = p->nRef; } sqlite3WalkExpr(pWalker, pExpr->pLeft); - if( 0==sqlite3ExprCanBeNull(pExpr->pLeft) && !IN_RENAME_OBJECT ){ - testcase( ExprHasProperty(pExpr, EP_OuterON) ); - assert( !ExprHasProperty(pExpr, EP_IntValue) ); - pExpr->u.iValue = (pExpr->op==TK_NOTNULL); - pExpr->flags |= EP_IntValue; - pExpr->op = TK_INTEGER; + if( IN_RENAME_OBJECT ) return WRC_Prune; + if( sqlite3ExprCanBeNull(pExpr->pLeft) ){ + /* The expression can be NULL. So the optimization does not apply */ + return WRC_Prune; + } - for(i=0, p=pNC; p && ipNext, i++){ - p->nRef = anRef[i]; + for(i=0, p=pNC; p; p=p->pNext, i++){ + if( (p->ncFlags & NC_Where)==0 ){ + return WRC_Prune; /* Not in a WHERE clause. Unsafe to optimize. */ } - sqlite3ExprDelete(pParse->db, pExpr->pLeft); - pExpr->pLeft = 0; } + testcase( ExprHasProperty(pExpr, EP_OuterON) ); + assert( !ExprHasProperty(pExpr, EP_IntValue) ); +#if TREETRACE_ENABLED + if( sqlite3TreeTrace & 0x80000 ){ + sqlite3DebugPrintf( + "NOT NULL strength reduction converts the following to %d:\n", + pExpr->op==TK_NOTNULL + ); + sqlite3ShowExpr(pExpr); + } +#endif /* TREETRACE_ENABLED */ + pExpr->u.iValue = (pExpr->op==TK_NOTNULL); + pExpr->flags |= EP_IntValue; + pExpr->op = TK_INTEGER; + for(i=0, p=pNC; p && ipNext, i++){ + p->nRef = anRef[i]; + } + sqlite3ExprDelete(pParse->db, pExpr->pLeft); + pExpr->pLeft = 0; return WRC_Prune; } @@ -107134,7 +107801,6 @@ static int resolveExprStep(Walker *pWalker, Expr *pExpr){ */ case TK_ID: case TK_DOT: { - const char *zColumn; const char *zTable; const char *zDb; Expr *pRight; @@ -107143,7 +107809,7 @@ static int resolveExprStep(Walker *pWalker, Expr *pExpr){ zDb = 0; zTable = 0; assert( !ExprHasProperty(pExpr, EP_IntValue) ); - zColumn = pExpr->u.zToken; + pRight = pExpr; }else{ Expr *pLeft = pExpr->pLeft; testcase( pNC->ncFlags & NC_IdxExpr ); @@ -107162,14 +107828,13 @@ static int resolveExprStep(Walker *pWalker, Expr *pExpr){ } assert( ExprUseUToken(pLeft) && ExprUseUToken(pRight) ); zTable = pLeft->u.zToken; - zColumn = pRight->u.zToken; assert( ExprUseYTab(pExpr) ); if( IN_RENAME_OBJECT ){ sqlite3RenameTokenRemap(pParse, (void*)pExpr, (void*)pRight); sqlite3RenameTokenRemap(pParse, (void*)&pExpr->y.pTab, (void*)pLeft); } } - return lookupName(pParse, zDb, zTable, zColumn, pNC, pExpr); + return lookupName(pParse, zDb, zTable, pRight, pNC, pExpr); } /* Resolve function names @@ -107345,11 +108010,9 @@ static int resolveExprStep(Walker *pWalker, Expr *pExpr){ #endif } } -#ifndef SQLITE_OMIT_WINDOWFUNC - else if( ExprHasProperty(pExpr, EP_WinFunc) ){ + else if( ExprHasProperty(pExpr, EP_WinFunc) || pExpr->pLeft ){ is_agg = 1; } -#endif sqlite3WalkExprList(pWalker, pList); if( is_agg ){ if( pExpr->pLeft ){ @@ -107419,6 +108082,7 @@ static int resolveExprStep(Walker *pWalker, Expr *pExpr){ testcase( pNC->ncFlags & NC_PartIdx ); testcase( pNC->ncFlags & NC_IdxExpr ); testcase( pNC->ncFlags & NC_GenCol ); + assert( pExpr->x.pSelect ); if( pNC->ncFlags & NC_SelfRef ){ notValidImpl(pParse, pNC, "subqueries", pExpr, pExpr); }else{ @@ -107427,6 +108091,7 @@ static int resolveExprStep(Walker *pWalker, Expr *pExpr){ assert( pNC->nRef>=nRef ); if( nRef!=pNC->nRef ){ ExprSetProperty(pExpr, EP_VarSelect); + pExpr->x.pSelect->selFlags |= SF_Correlated; } pNC->ncFlags |= NC_Subquery; } @@ -107952,6 +108617,7 @@ static int resolveSelectStep(Walker *pWalker, Select *p){ if( pOuterNC ) pOuterNC->nNestedSelect++; for(i=0; ipSrc->nSrc; i++){ SrcItem *pItem = &p->pSrc->a[i]; + assert( pItem->zName!=0 || pItem->pSelect!=0 );/* Test of tag-20240424-1*/ if( pItem->pSelect && (pItem->pSelect->selFlags & SF_Resolved)==0 ){ int nRef = pOuterNC ? pOuterNC->nRef : 0; const char *zSavedContext = pParse->zAuthContext; @@ -108020,7 +108686,9 @@ static int resolveSelectStep(Walker *pWalker, Select *p){ } if( sqlite3ResolveExprNames(&sNC, p->pHaving) ) return WRC_Abort; } + sNC.ncFlags |= NC_Where; if( sqlite3ResolveExprNames(&sNC, p->pWhere) ) return WRC_Abort; + sNC.ncFlags &= ~NC_Where; /* Resolve names in table-valued-function arguments */ for(i=0; ipSrc->nSrc; i++){ @@ -108211,6 +108879,9 @@ SQLITE_PRIVATE int sqlite3ResolveExprNames( ** Resolve all names for all expression in an expression list. This is ** just like sqlite3ResolveExprNames() except that it works for an expression ** list rather than a single expression. +** +** The return value is SQLITE_OK (0) for success or SQLITE_ERROR (1) for a +** failure. */ SQLITE_PRIVATE int sqlite3ResolveExprListNames( NameContext *pNC, /* Namespace to resolve expressions in. */ @@ -108219,7 +108890,7 @@ SQLITE_PRIVATE int sqlite3ResolveExprListNames( int i; int savedHasAgg = 0; Walker w; - if( pList==0 ) return WRC_Continue; + if( pList==0 ) return SQLITE_OK; w.pParse = pNC->pParse; w.xExprCallback = resolveExprStep; w.xSelectCallback = resolveSelectStep; @@ -108233,7 +108904,7 @@ SQLITE_PRIVATE int sqlite3ResolveExprListNames( #if SQLITE_MAX_EXPR_DEPTH>0 w.pParse->nHeight += pExpr->nHeight; if( sqlite3ExprCheckHeight(w.pParse, w.pParse->nHeight) ){ - return WRC_Abort; + return SQLITE_ERROR; } #endif sqlite3WalkExprNN(&w, pExpr); @@ -108250,10 +108921,10 @@ SQLITE_PRIVATE int sqlite3ResolveExprListNames( (NC_HasAgg|NC_MinMaxAgg|NC_HasWin|NC_OrderAgg); pNC->ncFlags &= ~(NC_HasAgg|NC_MinMaxAgg|NC_HasWin|NC_OrderAgg); } - if( w.pParse->nErr>0 ) return WRC_Abort; + if( w.pParse->nErr>0 ) return SQLITE_ERROR; } pNC->ncFlags |= savedHasAgg; - return WRC_Continue; + return SQLITE_OK; } /* @@ -108559,9 +109230,10 @@ SQLITE_PRIVATE Expr *sqlite3ExprSkipCollateAndLikely(Expr *pExpr){ assert( pExpr->x.pList->nExpr>0 ); assert( pExpr->op==TK_FUNCTION ); pExpr = pExpr->x.pList->a[0].pExpr; - }else{ - assert( pExpr->op==TK_COLLATE ); + }else if( pExpr->op==TK_COLLATE ){ pExpr = pExpr->pLeft; + }else{ + break; } } return pExpr; @@ -109255,11 +109927,12 @@ SQLITE_PRIVATE void sqlite3ExprSetErrorOffset(Expr *pExpr, int iOfst){ ** appear to be quoted. If the quotes were of the form "..." (double-quotes) ** then the EP_DblQuoted flag is set on the expression node. ** -** Special case: If op==TK_INTEGER and pToken points to a string that -** can be translated into a 32-bit integer, then the token is not -** stored in u.zToken. Instead, the integer values is written -** into u.iValue and the EP_IntValue flag is set. No extra storage +** Special case (tag-20240227-a): If op==TK_INTEGER and pToken points to +** a string that can be translated into a 32-bit integer, then the token is +** not stored in u.zToken. Instead, the integer values is written +** into u.iValue and the EP_IntValue flag is set. No extra storage ** is allocated to hold the integer text and the dequote flag is ignored. +** See also tag-20240227-b. */ SQLITE_PRIVATE Expr *sqlite3ExprAlloc( sqlite3 *db, /* Handle for sqlite3DbMallocRawNN() */ @@ -109275,7 +109948,7 @@ SQLITE_PRIVATE Expr *sqlite3ExprAlloc( if( pToken ){ if( op!=TK_INTEGER || pToken->z==0 || sqlite3GetInt32(pToken->z, &iValue)==0 ){ - nExtra = pToken->n+1; + nExtra = pToken->n+1; /* tag-20240227-a */ assert( iValue>=0 ); } } @@ -109707,6 +110380,7 @@ SQLITE_PRIVATE void sqlite3ExprAssignVarNumber(Parse *pParse, Expr *pExpr, u32 n static SQLITE_NOINLINE void sqlite3ExprDeleteNN(sqlite3 *db, Expr *p){ assert( p!=0 ); assert( db!=0 ); +exprDeleteRestart: assert( !ExprUseUValue(p) || p->u.iValue>=0 ); assert( !ExprUseYWin(p) || !ExprUseYSub(p) ); assert( !ExprUseYWin(p) || p->y.pWin!=0 || db->mallocFailed ); @@ -109722,7 +110396,6 @@ static SQLITE_NOINLINE void sqlite3ExprDeleteNN(sqlite3 *db, Expr *p){ if( !ExprHasProperty(p, (EP_TokenOnly|EP_Leaf)) ){ /* The Expr.x union is never used at the same time as Expr.pRight */ assert( (ExprUseXList(p) && p->x.pList==0) || p->pRight==0 ); - if( p->pLeft && p->op!=TK_SELECT_COLUMN ) sqlite3ExprDeleteNN(db, p->pLeft); if( p->pRight ){ assert( !ExprHasProperty(p, EP_WinFunc) ); sqlite3ExprDeleteNN(db, p->pRight); @@ -109737,6 +110410,19 @@ static SQLITE_NOINLINE void sqlite3ExprDeleteNN(sqlite3 *db, Expr *p){ } #endif } + if( p->pLeft && p->op!=TK_SELECT_COLUMN ){ + Expr *pLeft = p->pLeft; + if( !ExprHasProperty(p, EP_Static) + && !ExprHasProperty(pLeft, EP_Static) + ){ + /* Avoid unnecessary recursion on unary operators */ + sqlite3DbNNFreeNN(db, p); + p = pLeft; + goto exprDeleteRestart; + }else{ + sqlite3ExprDeleteNN(db, pLeft); + } + } } if( !ExprHasProperty(p, EP_Static) ){ sqlite3DbNNFreeNN(db, p); @@ -109769,11 +110455,11 @@ SQLITE_PRIVATE void sqlite3ClearOnOrUsing(sqlite3 *db, OnOrUsing *p){ ** ** The pExpr might be deleted immediately on an OOM error. ** -** The deferred delete is (currently) implemented by adding the -** pExpr to the pParse->pConstExpr list with a register number of 0. +** Return 0 if the delete was successfully deferred. Return non-zero +** if the delete happened immediately because of an OOM. */ -SQLITE_PRIVATE void sqlite3ExprDeferredDelete(Parse *pParse, Expr *pExpr){ - sqlite3ParserAddCleanup(pParse, sqlite3ExprDeleteGeneric, pExpr); +SQLITE_PRIVATE int sqlite3ExprDeferredDelete(Parse *pParse, Expr *pExpr){ + return 0==sqlite3ParserAddCleanup(pParse, sqlite3ExprDeleteGeneric, pExpr); } /* Invoke sqlite3RenameExprUnmap() and sqlite3ExprDelete() on the @@ -110209,17 +110895,19 @@ SQLITE_PRIVATE SrcList *sqlite3SrcListDup(sqlite3 *db, const SrcList *p, int fla pNewItem->iCursor = pOldItem->iCursor; pNewItem->addrFillSub = pOldItem->addrFillSub; pNewItem->regReturn = pOldItem->regReturn; + pNewItem->regResult = pOldItem->regResult; if( pNewItem->fg.isIndexedBy ){ pNewItem->u1.zIndexedBy = sqlite3DbStrDup(db, pOldItem->u1.zIndexedBy); + }else if( pNewItem->fg.isTabFunc ){ + pNewItem->u1.pFuncArg = + sqlite3ExprListDup(db, pOldItem->u1.pFuncArg, flags); + }else{ + pNewItem->u1.nRow = pOldItem->u1.nRow; } pNewItem->u2 = pOldItem->u2; if( pNewItem->fg.isCte ){ pNewItem->u2.pCteUse->nUse++; } - if( pNewItem->fg.isTabFunc ){ - pNewItem->u1.pFuncArg = - sqlite3ExprListDup(db, pOldItem->u1.pFuncArg, flags); - } pTab = pNewItem->pTab = pOldItem->pTab; if( pTab ){ pTab->nTabRef++; @@ -110685,6 +111373,54 @@ SQLITE_PRIVATE Expr *sqlite3ExprSimplifiedAndOr(Expr *pExpr){ return pExpr; } +/* +** pExpr is a TK_FUNCTION node. Try to determine whether or not the +** function is a constant function. A function is constant if all of +** the following are true: +** +** (1) It is a scalar function (not an aggregate or window function) +** (2) It has either the SQLITE_FUNC_CONSTANT or SQLITE_FUNC_SLOCHNG +** property. +** (3) All of its arguments are constants +** +** This routine sets pWalker->eCode to 0 if pExpr is not a constant. +** It makes no changes to pWalker->eCode if pExpr is constant. In +** every case, it returns WRC_Abort. +** +** Called as a service subroutine from exprNodeIsConstant(). +*/ +static SQLITE_NOINLINE int exprNodeIsConstantFunction( + Walker *pWalker, + Expr *pExpr +){ + int n; /* Number of arguments */ + ExprList *pList; /* List of arguments */ + FuncDef *pDef; /* The function */ + sqlite3 *db; /* The database */ + + assert( pExpr->op==TK_FUNCTION ); + if( ExprHasProperty(pExpr, EP_TokenOnly) + || (pList = pExpr->x.pList)==0 + ){; + n = 0; + }else{ + n = pList->nExpr; + sqlite3WalkExprList(pWalker, pList); + if( pWalker->eCode==0 ) return WRC_Abort; + } + db = pWalker->pParse->db; + pDef = sqlite3FindFunction(db, pExpr->u.zToken, n, ENC(db), 0); + if( pDef==0 + || pDef->xFinalize!=0 + || (pDef->funcFlags & (SQLITE_FUNC_CONSTANT|SQLITE_FUNC_SLOCHNG))==0 + || ExprHasProperty(pExpr, EP_WinFunc) + ){ + pWalker->eCode = 0; + return WRC_Abort; + } + return WRC_Prune; +} + /* ** These routines are Walker callbacks used to check expressions to @@ -110713,6 +111449,7 @@ SQLITE_PRIVATE Expr *sqlite3ExprSimplifiedAndOr(Expr *pExpr){ ** malformed schema error. */ static int exprNodeIsConstant(Walker *pWalker, Expr *pExpr){ + assert( pWalker->eCode>0 ); /* If pWalker->eCode is 2 then any term of the expression that comes from ** the ON or USING clauses of an outer join disqualifies the expression @@ -110732,6 +111469,8 @@ static int exprNodeIsConstant(Walker *pWalker, Expr *pExpr){ ){ if( pWalker->eCode==5 ) ExprSetProperty(pExpr, EP_FromDDL); return WRC_Continue; + }else if( pWalker->pParse ){ + return exprNodeIsConstantFunction(pWalker, pExpr); }else{ pWalker->eCode = 0; return WRC_Abort; @@ -110760,9 +111499,11 @@ static int exprNodeIsConstant(Walker *pWalker, Expr *pExpr){ case TK_IF_NULL_ROW: case TK_REGISTER: case TK_DOT: + case TK_RAISE: testcase( pExpr->op==TK_REGISTER ); testcase( pExpr->op==TK_IF_NULL_ROW ); testcase( pExpr->op==TK_DOT ); + testcase( pExpr->op==TK_RAISE ); pWalker->eCode = 0; return WRC_Abort; case TK_VARIABLE: @@ -110784,15 +111525,15 @@ static int exprNodeIsConstant(Walker *pWalker, Expr *pExpr){ return WRC_Continue; } } -static int exprIsConst(Expr *p, int initFlag, int iCur){ +static int exprIsConst(Parse *pParse, Expr *p, int initFlag){ Walker w; w.eCode = initFlag; + w.pParse = pParse; w.xExprCallback = exprNodeIsConstant; w.xSelectCallback = sqlite3SelectWalkFail; #ifdef SQLITE_DEBUG w.xSelectCallback2 = sqlite3SelectWalkAssert2; #endif - w.u.iCur = iCur; sqlite3WalkExpr(&w, p); return w.eCode; } @@ -110804,9 +111545,15 @@ static int exprIsConst(Expr *p, int initFlag, int iCur){ ** For the purposes of this function, a double-quoted string (ex: "abc") ** is considered a variable but a single-quoted string (ex: 'abc') is ** a constant. +** +** The pParse parameter may be NULL. But if it is NULL, there is no way +** to determine if function calls are constant or not, and hence all +** function calls will be considered to be non-constant. If pParse is +** not NULL, then a function call might be constant, depending on the +** function and on its parameters. */ -SQLITE_PRIVATE int sqlite3ExprIsConstant(Expr *p){ - return exprIsConst(p, 1, 0); +SQLITE_PRIVATE int sqlite3ExprIsConstant(Parse *pParse, Expr *p){ + return exprIsConst(pParse, p, 1); } /* @@ -110822,8 +111569,24 @@ SQLITE_PRIVATE int sqlite3ExprIsConstant(Expr *p){ ** can be added to the pParse->pConstExpr list and evaluated once when ** the prepared statement starts up. See sqlite3ExprCodeRunJustOnce(). */ -SQLITE_PRIVATE int sqlite3ExprIsConstantNotJoin(Expr *p){ - return exprIsConst(p, 2, 0); +static int sqlite3ExprIsConstantNotJoin(Parse *pParse, Expr *p){ + return exprIsConst(pParse, p, 2); +} + +/* +** This routine examines sub-SELECT statements as an expression is being +** walked as part of sqlite3ExprIsTableConstant(). Sub-SELECTs are considered +** constant as long as they are uncorrelated - meaning that they do not +** contain any terms from outer contexts. +*/ +static int exprSelectWalkTableConstant(Walker *pWalker, Select *pSelect){ + assert( pSelect!=0 ); + assert( pWalker->eCode==3 || pWalker->eCode==0 ); + if( (pSelect->selFlags & SF_Correlated)!=0 ){ + pWalker->eCode = 0; + return WRC_Abort; + } + return WRC_Prune; } /* @@ -110831,9 +111594,26 @@ SQLITE_PRIVATE int sqlite3ExprIsConstantNotJoin(Expr *p){ ** for any single row of the table with cursor iCur. In other words, the ** expression must not refer to any non-deterministic function nor any ** table other than iCur. +** +** Consider uncorrelated subqueries to be constants if the bAllowSubq +** parameter is true. */ -SQLITE_PRIVATE int sqlite3ExprIsTableConstant(Expr *p, int iCur){ - return exprIsConst(p, 3, iCur); +static int sqlite3ExprIsTableConstant(Expr *p, int iCur, int bAllowSubq){ + Walker w; + w.eCode = 3; + w.pParse = 0; + w.xExprCallback = exprNodeIsConstant; + if( bAllowSubq ){ + w.xSelectCallback = exprSelectWalkTableConstant; + }else{ + w.xSelectCallback = sqlite3SelectWalkFail; +#ifdef SQLITE_DEBUG + w.xSelectCallback2 = sqlite3SelectWalkAssert2; +#endif + } + w.u.iCur = iCur; + sqlite3WalkExpr(&w, p); + return w.eCode; } /* @@ -110851,7 +111631,10 @@ SQLITE_PRIVATE int sqlite3ExprIsTableConstant(Expr *p, int iCur){ ** ** (1) pExpr cannot refer to any table other than pSrc->iCursor. ** -** (2) pExpr cannot use subqueries or non-deterministic functions. +** (2a) pExpr cannot use subqueries unless the bAllowSubq parameter is +** true and the subquery is non-correlated +** +** (2b) pExpr cannot use non-deterministic functions. ** ** (3) pSrc cannot be part of the left operand for a RIGHT JOIN. ** (Is there some way to relax this constraint?) @@ -110880,7 +111663,8 @@ SQLITE_PRIVATE int sqlite3ExprIsTableConstant(Expr *p, int iCur){ SQLITE_PRIVATE int sqlite3ExprIsSingleTableConstraint( Expr *pExpr, /* The constraint */ const SrcList *pSrcList, /* Complete FROM clause */ - int iSrc /* Which element of pSrcList to use */ + int iSrc, /* Which element of pSrcList to use */ + int bAllowSubq /* Allow non-correlated subqueries */ ){ const SrcItem *pSrc = &pSrcList->a[iSrc]; if( pSrc->fg.jointype & JT_LTORJ ){ @@ -110905,7 +111689,8 @@ SQLITE_PRIVATE int sqlite3ExprIsSingleTableConstraint( } } } - return sqlite3ExprIsTableConstant(pExpr, pSrc->iCursor); /* rules (1), (2) */ + /* Rules (1), (2a), and (2b) handled by the following: */ + return sqlite3ExprIsTableConstant(pExpr, pSrc->iCursor, bAllowSubq); } @@ -110990,7 +111775,7 @@ SQLITE_PRIVATE int sqlite3ExprIsConstantOrGroupBy(Parse *pParse, Expr *p, ExprLi */ SQLITE_PRIVATE int sqlite3ExprIsConstantOrFunction(Expr *p, u8 isInit){ assert( isInit==0 || isInit==1 ); - return exprIsConst(p, 4+isInit, 0); + return exprIsConst(0, p, 4+isInit); } #ifdef SQLITE_ENABLE_CURSOR_HINTS @@ -111080,9 +111865,12 @@ SQLITE_PRIVATE int sqlite3ExprCanBeNull(const Expr *p){ return 0; case TK_COLUMN: assert( ExprUseYTab(p) ); - return ExprHasProperty(p, EP_CanBeNull) || - NEVER(p->y.pTab==0) || /* Reference to column of index on expr */ - (p->iColumn>=0 + return ExprHasProperty(p, EP_CanBeNull) + || NEVER(p->y.pTab==0) /* Reference to column of index on expr */ +#ifdef SQLITE_ALLOW_ROWID_IN_VIEW + || (p->iColumn==XN_ROWID && IsView(p->y.pTab)) +#endif + || (p->iColumn>=0 && p->y.pTab->aCol!=0 /* Possible due to prior error */ && ALWAYS(p->iColumny.pTab->nCol) && p->y.pTab->aCol[p->iColumn].notNull==0); @@ -111235,13 +112023,13 @@ static void sqlite3SetHasNullFlag(Vdbe *v, int iCur, int regHasNull){ ** The argument is an IN operator with a list (not a subquery) on the ** right-hand side. Return TRUE if that list is constant. */ -static int sqlite3InRhsIsConstant(Expr *pIn){ +static int sqlite3InRhsIsConstant(Parse *pParse, Expr *pIn){ Expr *pLHS; int res; assert( !ExprHasProperty(pIn, EP_xIsSelect) ); pLHS = pIn->pLeft; pIn->pLeft = 0; - res = sqlite3ExprIsConstant(pIn); + res = sqlite3ExprIsConstant(pParse, pIn); pIn->pLeft = pLHS; return res; } @@ -111510,7 +112298,7 @@ SQLITE_PRIVATE int sqlite3FindInIndex( if( eType==0 && (inFlags & IN_INDEX_NOOP_OK) && ExprUseXList(pX) - && (!sqlite3InRhsIsConstant(pX) || pX->x.pList->nExpr<=2) + && (!sqlite3InRhsIsConstant(pParse,pX) || pX->x.pList->nExpr<=2) ){ pParse->nTab--; /* Back out the allocation of the unused cursor */ iTab = -1; /* Cursor is not allocated */ @@ -111793,7 +112581,7 @@ SQLITE_PRIVATE void sqlite3CodeRhsOfIN( ** this code only executes once. Because for a non-constant ** expression we need to rerun this code each time. */ - if( addrOnce && !sqlite3ExprIsConstant(pE2) ){ + if( addrOnce && !sqlite3ExprIsConstant(pParse, pE2) ){ sqlite3VdbeChangeToNoop(v, addrOnce-1); sqlite3VdbeChangeToNoop(v, addrOnce); ExprClearProperty(pExpr, EP_Subrtn); @@ -112957,12 +113745,6 @@ SQLITE_PRIVATE int sqlite3ExprCodeTarget(Parse *pParse, Expr *pExpr, int target) assert( pExpr->u.zToken!=0 ); assert( pExpr->u.zToken[0]!=0 ); sqlite3VdbeAddOp2(v, OP_Variable, pExpr->iColumn, target); - if( pExpr->u.zToken[1]!=0 ){ - const char *z = sqlite3VListNumToName(pParse->pVList, pExpr->iColumn); - assert( pExpr->u.zToken[0]=='?' || (z && !strcmp(pExpr->u.zToken, z)) ); - pParse->pVList[0] = 0; /* Indicate VList may no longer be enlarged */ - sqlite3VdbeAppendP4(v, (char*)z, P4_STATIC); - } return target; } case TK_REGISTER: { @@ -113136,7 +113918,9 @@ SQLITE_PRIVATE int sqlite3ExprCodeTarget(Parse *pParse, Expr *pExpr, int target) } #endif - if( ConstFactorOk(pParse) && sqlite3ExprIsConstantNotJoin(pExpr) ){ + if( ConstFactorOk(pParse) + && sqlite3ExprIsConstantNotJoin(pParse,pExpr) + ){ /* SQL functions can be expensive. So try to avoid running them ** multiple times if we know they always give the same result */ return sqlite3ExprCodeRunJustOnce(pParse, pExpr, -1); @@ -113167,7 +113951,7 @@ SQLITE_PRIVATE int sqlite3ExprCodeTarget(Parse *pParse, Expr *pExpr, int target) } for(i=0; ia[i].pExpr) ){ + if( i<32 && sqlite3ExprIsConstant(pParse, pFarg->a[i].pExpr) ){ testcase( i==31 ); constMask |= MASKBIT32(i); } @@ -113309,8 +114093,9 @@ SQLITE_PRIVATE int sqlite3ExprCodeTarget(Parse *pParse, Expr *pExpr, int target) if( !ExprHasProperty(pExpr, EP_Collate) ){ /* A TK_COLLATE Expr node without the EP_Collate tag is a so-called ** "SOFT-COLLATE" that is added to constraints that are pushed down - ** from outer queries into sub-queries by the push-down optimization. - ** Clear subtypes as subtypes may not cross a subquery boundary. + ** from outer queries into sub-queries by the WHERE-clause push-down + ** optimization. Clear subtypes as subtypes may not cross a subquery + ** boundary. */ assert( pExpr->pLeft ); sqlite3ExprCode(pParse, pExpr->pLeft, target); @@ -113634,7 +114419,7 @@ SQLITE_PRIVATE int sqlite3ExprCodeTemp(Parse *pParse, Expr *pExpr, int *pReg){ if( ConstFactorOk(pParse) && ALWAYS(pExpr!=0) && pExpr->op!=TK_REGISTER - && sqlite3ExprIsConstantNotJoin(pExpr) + && sqlite3ExprIsConstantNotJoin(pParse, pExpr) ){ *pReg = 0; r2 = sqlite3ExprCodeRunJustOnce(pParse, pExpr, -1); @@ -113698,7 +114483,7 @@ SQLITE_PRIVATE void sqlite3ExprCodeCopy(Parse *pParse, Expr *pExpr, int target){ ** might choose to code the expression at initialization time. */ SQLITE_PRIVATE void sqlite3ExprCodeFactorable(Parse *pParse, Expr *pExpr, int target){ - if( pParse->okConstFactor && sqlite3ExprIsConstantNotJoin(pExpr) ){ + if( pParse->okConstFactor && sqlite3ExprIsConstantNotJoin(pParse,pExpr) ){ sqlite3ExprCodeRunJustOnce(pParse, pExpr, target); }else{ sqlite3ExprCodeCopy(pParse, pExpr, target); @@ -113757,7 +114542,7 @@ SQLITE_PRIVATE int sqlite3ExprCodeExprList( sqlite3VdbeAddOp2(v, copyOp, j+srcReg-1, target+i); } }else if( (flags & SQLITE_ECEL_FACTOR)!=0 - && sqlite3ExprIsConstantNotJoin(pExpr) + && sqlite3ExprIsConstantNotJoin(pParse,pExpr) ){ sqlite3ExprCodeRunJustOnce(pParse, pExpr, target+i); }else{ @@ -114908,9 +115693,8 @@ static int agginfoPersistExprCb(Walker *pWalker, Expr *pExpr){ && pAggInfo->aCol[iAgg].pCExpr==pExpr ){ pExpr = sqlite3ExprDup(db, pExpr, 0); - if( pExpr ){ + if( pExpr && !sqlite3ExprDeferredDelete(pParse, pExpr) ){ pAggInfo->aCol[iAgg].pCExpr = pExpr; - sqlite3ExprDeferredDelete(pParse, pExpr); } } }else{ @@ -114919,9 +115703,8 @@ static int agginfoPersistExprCb(Walker *pWalker, Expr *pExpr){ && pAggInfo->aFunc[iAgg].pFExpr==pExpr ){ pExpr = sqlite3ExprDup(db, pExpr, 0); - if( pExpr ){ + if( pExpr && !sqlite3ExprDeferredDelete(pParse, pExpr) ){ pAggInfo->aFunc[iAgg].pFExpr = pExpr; - sqlite3ExprDeferredDelete(pParse, pExpr); } } } @@ -116680,7 +117463,7 @@ static int renameResolveTrigger(Parse *pParse){ /* ALWAYS() because if the table of the trigger does not exist, the ** error would have been hit before this point */ if( ALWAYS(pParse->pTriggerTab) ){ - rc = sqlite3ViewGetColumnNames(pParse, pParse->pTriggerTab); + rc = sqlite3ViewGetColumnNames(pParse, pParse->pTriggerTab)!=0; } /* Resolve symbols in WHEN clause */ @@ -117622,7 +118405,12 @@ SQLITE_PRIVATE void sqlite3AlterDropColumn(Parse *pParse, SrcList *pSrc, const T if( i==pTab->iPKey ){ sqlite3VdbeAddOp2(v, OP_Null, 0, regOut); }else{ + char aff = pTab->aCol[i].affinity; + if( aff==SQLITE_AFF_REAL ){ + pTab->aCol[i].affinity = SQLITE_AFF_NUMERIC; + } sqlite3ExprCodeGetColumnOfTable(v, pTab, iCur, i, regOut); + pTab->aCol[i].affinity = aff; } nField++; } @@ -118541,7 +119329,7 @@ static void statGet( if( iVal==2 && p->nRow*10 <= nDistinct*11 ) iVal = 1; sqlite3_str_appendf(&sStat, " %llu", iVal); #ifdef SQLITE_ENABLE_STAT4 - assert( p->current.anEq[i] ); + assert( p->current.anEq[i] || p->nRow==0 ); #endif } sqlite3ResultStrAccum(context, &sStat); @@ -118726,7 +119514,7 @@ static void analyzeOneTable( for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){ int nCol; /* Number of columns in pIdx. "N" */ - int addrRewind; /* Address of "OP_Rewind iIdxCur" */ + int addrGotoEnd; /* Address of "OP_Rewind iIdxCur" */ int addrNextRow; /* Address of "next_row:" */ const char *zIdxName; /* Name of the index */ int nColTest; /* Number of columns to test for changes */ @@ -118750,9 +119538,14 @@ static void analyzeOneTable( /* ** Pseudo-code for loop that calls stat_push(): ** - ** Rewind csr - ** if eof(csr) goto end_of_scan; ** regChng = 0 + ** Rewind csr + ** if eof(csr){ + ** stat_init() with count = 0; + ** goto end_of_scan; + ** } + ** count() + ** stat_init() ** goto chng_addr_0; ** ** next_row: @@ -118791,41 +119584,36 @@ static void analyzeOneTable( sqlite3VdbeSetP4KeyInfo(pParse, pIdx); VdbeComment((v, "%s", pIdx->zName)); - /* Invoke the stat_init() function. The arguments are: + /* Implementation of the following: ** + ** regChng = 0 + ** Rewind csr + ** if eof(csr){ + ** stat_init() with count = 0; + ** goto end_of_scan; + ** } + ** count() + ** stat_init() + ** goto chng_addr_0; + */ + assert( regTemp2==regStat+4 ); + sqlite3VdbeAddOp2(v, OP_Integer, db->nAnalysisLimit, regTemp2); + + /* Arguments to stat_init(): ** (1) the number of columns in the index including the rowid ** (or for a WITHOUT ROWID table, the number of PK columns), ** (2) the number of columns in the key without the rowid/pk - ** (3) estimated number of rows in the index, - */ + ** (3) estimated number of rows in the index. */ sqlite3VdbeAddOp2(v, OP_Integer, nCol, regStat+1); assert( regRowid==regStat+2 ); sqlite3VdbeAddOp2(v, OP_Integer, pIdx->nKeyCol, regRowid); -#ifdef SQLITE_ENABLE_STAT4 - if( OptimizationEnabled(db, SQLITE_Stat4) ){ - sqlite3VdbeAddOp2(v, OP_Count, iIdxCur, regTemp); - addrRewind = sqlite3VdbeAddOp1(v, OP_Rewind, iIdxCur); - VdbeCoverage(v); - }else -#endif - { - addrRewind = sqlite3VdbeAddOp1(v, OP_Rewind, iIdxCur); - VdbeCoverage(v); - sqlite3VdbeAddOp3(v, OP_Count, iIdxCur, regTemp, 1); - } - assert( regTemp2==regStat+4 ); - sqlite3VdbeAddOp2(v, OP_Integer, db->nAnalysisLimit, regTemp2); + sqlite3VdbeAddOp3(v, OP_Count, iIdxCur, regTemp, + OptimizationDisabled(db, SQLITE_Stat4)); sqlite3VdbeAddFunctionCall(pParse, 0, regStat+1, regStat, 4, &statInitFuncdef, 0); + addrGotoEnd = sqlite3VdbeAddOp1(v, OP_Rewind, iIdxCur); + VdbeCoverage(v); - /* Implementation of the following: - ** - ** Rewind csr - ** if eof(csr) goto end_of_scan; - ** regChng = 0 - ** goto next_push_0; - ** - */ sqlite3VdbeAddOp2(v, OP_Integer, 0, regChng); addrNextRow = sqlite3VdbeCurrentAddr(v); @@ -118932,6 +119720,12 @@ static void analyzeOneTable( } /* Add the entry to the stat1 table. */ + if( pIdx->pPartIdxWhere ){ + /* Partial indexes might get a zero-entry in sqlite_stat1. But + ** an empty table is omitted from sqlite_stat1. */ + sqlite3VdbeJumpHere(v, addrGotoEnd); + addrGotoEnd = 0; + } callStatGet(pParse, regStat, STAT_GET_STAT1, regStat1); assert( "BBB"[0]==SQLITE_AFF_TEXT ); sqlite3VdbeAddOp4(v, OP_MakeRecord, regTabname, 3, regTemp, "BBB", 0); @@ -118955,6 +119749,13 @@ static void analyzeOneTable( int addrIsNull; u8 seekOp = HasRowid(pTab) ? OP_NotExists : OP_NotFound; + /* No STAT4 data is generated if the number of rows is zero */ + if( addrGotoEnd==0 ){ + sqlite3VdbeAddOp2(v, OP_Cast, regStat1, SQLITE_AFF_INTEGER); + addrGotoEnd = sqlite3VdbeAddOp1(v, OP_IfNot, regStat1); + VdbeCoverage(v); + } + if( doOnce ){ int mxCol = nCol; Index *pX; @@ -119007,7 +119808,7 @@ static void analyzeOneTable( #endif /* SQLITE_ENABLE_STAT4 */ /* End of analysis */ - sqlite3VdbeJumpHere(v, addrRewind); + if( addrGotoEnd ) sqlite3VdbeJumpHere(v, addrGotoEnd); } @@ -120756,7 +121557,7 @@ SQLITE_PRIVATE void sqlite3FinishCoding(Parse *pParse){ } sqlite3VdbeAddOp0(v, OP_Halt); -#if SQLITE_USER_AUTHENTICATION +#if SQLITE_USER_AUTHENTICATION && !defined(SQLITE_OMIT_SHARED_CACHE) if( pParse->nTableLock>0 && db->init.busy==0 ){ sqlite3UserAuthInit(db); if( db->auth.authLevelrc = SQLITE_ERROR; pParse->nErr++; return; } + iCsr = pParse->nTab++; regYield = ++pParse->nMem; regRec = ++pParse->nMem; regRowid = ++pParse->nMem; - assert(pParse->nTab==1); sqlite3MayAbort(pParse); - sqlite3VdbeAddOp3(v, OP_OpenWrite, 1, pParse->regRoot, iDb); + sqlite3VdbeAddOp3(v, OP_OpenWrite, iCsr, pParse->regRoot, iDb); sqlite3VdbeChangeP5(v, OPFLAG_P2ISREG); - pParse->nTab = 2; addrTop = sqlite3VdbeCurrentAddr(v) + 1; sqlite3VdbeAddOp3(v, OP_InitCoroutine, regYield, 0, addrTop); if( pParse->nErr ) return; @@ -123429,11 +124230,11 @@ SQLITE_PRIVATE void sqlite3EndTable( VdbeCoverage(v); sqlite3VdbeAddOp3(v, OP_MakeRecord, dest.iSdst, dest.nSdst, regRec); sqlite3TableAffinity(v, p, 0); - sqlite3VdbeAddOp2(v, OP_NewRowid, 1, regRowid); - sqlite3VdbeAddOp3(v, OP_Insert, 1, regRec, regRowid); + sqlite3VdbeAddOp2(v, OP_NewRowid, iCsr, regRowid); + sqlite3VdbeAddOp3(v, OP_Insert, iCsr, regRec, regRowid); sqlite3VdbeGoto(v, addrInsLoop); sqlite3VdbeJumpHere(v, addrInsLoop); - sqlite3VdbeAddOp1(v, OP_Close, 1); + sqlite3VdbeAddOp1(v, OP_Close, iCsr); } /* Compute the complete text of the CREATE statement */ @@ -123490,13 +124291,10 @@ SQLITE_PRIVATE void sqlite3EndTable( /* Test for cycles in generated columns and illegal expressions ** in CHECK constraints and in DEFAULT clauses. */ if( p->tabFlags & TF_HasGenerated ){ - sqlite3VdbeAddOp4(v, OP_SqlExec, 1, 0, 0, + sqlite3VdbeAddOp4(v, OP_SqlExec, 0x0001, 0, 0, sqlite3MPrintf(db, "SELECT*FROM\"%w\".\"%w\"", db->aDb[iDb].zDbSName, p->zName), P4_DYNAMIC); } - sqlite3VdbeAddOp4(v, OP_SqlExec, 1, 0, 0, - sqlite3MPrintf(db, "PRAGMA \"%w\".integrity_check(%Q)", - db->aDb[iDb].zDbSName, p->zName), P4_DYNAMIC); } /* Add the table to the in-memory representation of the database. @@ -123573,9 +124371,12 @@ SQLITE_PRIVATE void sqlite3CreateView( ** on a view, even though views do not have rowids. The following flag ** setting fixes this problem. But the fix can be disabled by compiling ** with -DSQLITE_ALLOW_ROWID_IN_VIEW in case there are legacy apps that - ** depend upon the old buggy behavior. */ -#ifndef SQLITE_ALLOW_ROWID_IN_VIEW - p->tabFlags |= TF_NoVisibleRowid; + ** depend upon the old buggy behavior. The ability can also be toggled + ** using sqlite3_config(SQLITE_CONFIG_ROWID_IN_VIEW,...) */ +#ifdef SQLITE_ALLOW_ROWID_IN_VIEW + p->tabFlags |= sqlite3Config.mNoVisibleRowid; /* Optional. Allow by default */ +#else + p->tabFlags |= TF_NoVisibleRowid; /* Never allow rowid in view */ #endif sqlite3TwoPartName(pParse, pName1, pName2, &pName); @@ -123631,8 +124432,9 @@ SQLITE_PRIVATE void sqlite3CreateView( #if !defined(SQLITE_OMIT_VIEW) || !defined(SQLITE_OMIT_VIRTUALTABLE) /* ** The Table structure pTable is really a VIEW. Fill in the names of -** the columns of the view in the pTable structure. Return the number -** of errors. If an error is seen leave an error message in pParse->zErrMsg. +** the columns of the view in the pTable structure. Return non-zero if +** there are errors. If an error is seen an error message is left +** in pParse->zErrMsg. */ static SQLITE_NOINLINE int viewGetColumnNames(Parse *pParse, Table *pTable){ Table *pSelTab; /* A fake table from which we get the result set */ @@ -123755,7 +124557,7 @@ static SQLITE_NOINLINE int viewGetColumnNames(Parse *pParse, Table *pTable){ sqlite3DeleteColumnNames(db, pTable); } #endif /* SQLITE_OMIT_VIEW */ - return nErr; + return nErr + pParse->nErr; } SQLITE_PRIVATE int sqlite3ViewGetColumnNames(Parse *pParse, Table *pTable){ assert( pTable!=0 ); @@ -128948,13 +129750,13 @@ SQLITE_PRIVATE void sqlite3QuoteValue(StrAccum *pStr, sqlite3_value *pValue){ double r1, r2; const char *zVal; r1 = sqlite3_value_double(pValue); - sqlite3_str_appendf(pStr, "%!.15g", r1); + sqlite3_str_appendf(pStr, "%!0.15g", r1); zVal = sqlite3_str_value(pStr); if( zVal ){ sqlite3AtoF(zVal, &r2, pStr->nChar, SQLITE_UTF8); if( r1!=r2 ){ sqlite3_str_reset(pStr); - sqlite3_str_appendf(pStr, "%!.20e", r1); + sqlite3_str_appendf(pStr, "%!0.20e", r1); } } break; @@ -129256,7 +130058,7 @@ static void replaceFunc( } if( zPattern[0]==0 ){ assert( sqlite3_value_type(argv[1])!=SQLITE_NULL ); - sqlite3_result_value(context, argv[0]); + sqlite3_result_text(context, (const char*)zStr, nStr, SQLITE_TRANSIENT); return; } nPattern = sqlite3_value_bytes(argv[1]); @@ -129739,7 +130541,7 @@ static void sumFinalize(sqlite3_context *context){ if( p->approx ){ if( p->ovrfl ){ sqlite3_result_error(context,"integer overflow",-1); - }else if( !sqlite3IsNaN(p->rErr) ){ + }else if( !sqlite3IsOverflow(p->rErr) ){ sqlite3_result_double(context, p->rSum+p->rErr); }else{ sqlite3_result_double(context, p->rSum); @@ -129756,7 +130558,7 @@ static void avgFinalize(sqlite3_context *context){ double r; if( p->approx ){ r = p->rSum; - if( !sqlite3IsNaN(p->rErr) ) r += p->rErr; + if( !sqlite3IsOverflow(p->rErr) ) r += p->rErr; }else{ r = (double)(p->iSum); } @@ -129770,7 +130572,7 @@ static void totalFinalize(sqlite3_context *context){ if( p ){ if( p->approx ){ r = p->rSum; - if( !sqlite3IsNaN(p->rErr) ) r += p->rErr; + if( !sqlite3IsOverflow(p->rErr) ) r += p->rErr; }else{ r = (double)(p->iSum); } @@ -130053,6 +130855,8 @@ static void groupConcatValue(sqlite3_context *context){ sqlite3_result_error_toobig(context); }else if( pAccum->accError==SQLITE_NOMEM ){ sqlite3_result_error_nomem(context); + }else if( pGCC->nAccum>0 && pAccum->nChar==0 ){ + sqlite3_result_text(context, "", 1, SQLITE_STATIC); }else{ const char *zText = sqlite3_str_value(pAccum); sqlite3_result_text(context, zText, pAccum->nChar, SQLITE_TRANSIENT); @@ -132667,6 +133471,196 @@ SQLITE_PRIVATE void sqlite3AutoincrementEnd(Parse *pParse){ # define autoIncStep(A,B,C) #endif /* SQLITE_OMIT_AUTOINCREMENT */ +/* +** If argument pVal is a Select object returned by an sqlite3MultiValues() +** that was able to use the co-routine optimization, finish coding the +** co-routine. +*/ +SQLITE_PRIVATE void sqlite3MultiValuesEnd(Parse *pParse, Select *pVal){ + if( ALWAYS(pVal) && pVal->pSrc->nSrc>0 ){ + SrcItem *pItem = &pVal->pSrc->a[0]; + sqlite3VdbeEndCoroutine(pParse->pVdbe, pItem->regReturn); + sqlite3VdbeJumpHere(pParse->pVdbe, pItem->addrFillSub - 1); + } +} + +/* +** Return true if all expressions in the expression-list passed as the +** only argument are constant. +*/ +static int exprListIsConstant(Parse *pParse, ExprList *pRow){ + int ii; + for(ii=0; iinExpr; ii++){ + if( 0==sqlite3ExprIsConstant(pParse, pRow->a[ii].pExpr) ) return 0; + } + return 1; +} + +/* +** Return true if all expressions in the expression-list passed as the +** only argument are both constant and have no affinity. +*/ +static int exprListIsNoAffinity(Parse *pParse, ExprList *pRow){ + int ii; + if( exprListIsConstant(pParse,pRow)==0 ) return 0; + for(ii=0; iinExpr; ii++){ + Expr *pExpr = pRow->a[ii].pExpr; + assert( pExpr->op!=TK_RAISE ); + assert( pExpr->affExpr==0 ); + if( 0!=sqlite3ExprAffinity(pExpr) ) return 0; + } + return 1; + +} + +/* +** This function is called by the parser for the second and subsequent +** rows of a multi-row VALUES clause. Argument pLeft is the part of +** the VALUES clause already parsed, argument pRow is the vector of values +** for the new row. The Select object returned represents the complete +** VALUES clause, including the new row. +** +** There are two ways in which this may be achieved - by incremental +** coding of a co-routine (the "co-routine" method) or by returning a +** Select object equivalent to the following (the "UNION ALL" method): +** +** "pLeft UNION ALL SELECT pRow" +** +** If the VALUES clause contains a lot of rows, this compound Select +** object may consume a lot of memory. +** +** When the co-routine method is used, each row that will be returned +** by the VALUES clause is coded into part of a co-routine as it is +** passed to this function. The returned Select object is equivalent to: +** +** SELECT * FROM ( +** Select object to read co-routine +** ) +** +** The co-routine method is used in most cases. Exceptions are: +** +** a) If the current statement has a WITH clause. This is to avoid +** statements like: +** +** WITH cte AS ( VALUES('x'), ('y') ... ) +** SELECT * FROM cte AS a, cte AS b; +** +** This will not work, as the co-routine uses a hard-coded register +** for its OP_Yield instructions, and so it is not possible for two +** cursors to iterate through it concurrently. +** +** b) The schema is currently being parsed (i.e. the VALUES clause is part +** of a schema item like a VIEW or TRIGGER). In this case there is no VM +** being generated when parsing is taking place, and so generating +** a co-routine is not possible. +** +** c) There are non-constant expressions in the VALUES clause (e.g. +** the VALUES clause is part of a correlated sub-query). +** +** d) One or more of the values in the first row of the VALUES clause +** has an affinity (i.e. is a CAST expression). This causes problems +** because the complex rules SQLite uses (see function +** sqlite3SubqueryColumnTypes() in select.c) to determine the effective +** affinity of such a column for all rows require access to all values in +** the column simultaneously. +*/ +SQLITE_PRIVATE Select *sqlite3MultiValues(Parse *pParse, Select *pLeft, ExprList *pRow){ + + if( pParse->bHasWith /* condition (a) above */ + || pParse->db->init.busy /* condition (b) above */ + || exprListIsConstant(pParse,pRow)==0 /* condition (c) above */ + || (pLeft->pSrc->nSrc==0 && + exprListIsNoAffinity(pParse,pLeft->pEList)==0) /* condition (d) above */ + || IN_SPECIAL_PARSE + ){ + /* The co-routine method cannot be used. Fall back to UNION ALL. */ + Select *pSelect = 0; + int f = SF_Values | SF_MultiValue; + if( pLeft->pSrc->nSrc ){ + sqlite3MultiValuesEnd(pParse, pLeft); + f = SF_Values; + }else if( pLeft->pPrior ){ + /* In this case set the SF_MultiValue flag only if it was set on pLeft */ + f = (f & pLeft->selFlags); + } + pSelect = sqlite3SelectNew(pParse, pRow, 0, 0, 0, 0, 0, f, 0); + pLeft->selFlags &= ~SF_MultiValue; + if( pSelect ){ + pSelect->op = TK_ALL; + pSelect->pPrior = pLeft; + pLeft = pSelect; + } + }else{ + SrcItem *p = 0; /* SrcItem that reads from co-routine */ + + if( pLeft->pSrc->nSrc==0 ){ + /* Co-routine has not yet been started and the special Select object + ** that accesses the co-routine has not yet been created. This block + ** does both those things. */ + Vdbe *v = sqlite3GetVdbe(pParse); + Select *pRet = sqlite3SelectNew(pParse, 0, 0, 0, 0, 0, 0, 0, 0); + + /* Ensure the database schema has been read. This is to ensure we have + ** the correct text encoding. */ + if( (pParse->db->mDbFlags & DBFLAG_SchemaKnownOk)==0 ){ + sqlite3ReadSchema(pParse); + } + + if( pRet ){ + SelectDest dest; + pRet->pSrc->nSrc = 1; + pRet->pPrior = pLeft->pPrior; + pRet->op = pLeft->op; + if( pRet->pPrior ) pRet->selFlags |= SF_Values; + pLeft->pPrior = 0; + pLeft->op = TK_SELECT; + assert( pLeft->pNext==0 ); + assert( pRet->pNext==0 ); + p = &pRet->pSrc->a[0]; + p->pSelect = pLeft; + p->fg.viaCoroutine = 1; + p->addrFillSub = sqlite3VdbeCurrentAddr(v) + 1; + p->regReturn = ++pParse->nMem; + p->iCursor = -1; + p->u1.nRow = 2; + sqlite3VdbeAddOp3(v,OP_InitCoroutine,p->regReturn,0,p->addrFillSub); + sqlite3SelectDestInit(&dest, SRT_Coroutine, p->regReturn); + + /* Allocate registers for the output of the co-routine. Do so so + ** that there are two unused registers immediately before those + ** used by the co-routine. This allows the code in sqlite3Insert() + ** to use these registers directly, instead of copying the output + ** of the co-routine to a separate array for processing. */ + dest.iSdst = pParse->nMem + 3; + dest.nSdst = pLeft->pEList->nExpr; + pParse->nMem += 2 + dest.nSdst; + + pLeft->selFlags |= SF_MultiValue; + sqlite3Select(pParse, pLeft, &dest); + p->regResult = dest.iSdst; + assert( pParse->nErr || dest.iSdst>0 ); + pLeft = pRet; + } + }else{ + p = &pLeft->pSrc->a[0]; + assert( !p->fg.isTabFunc && !p->fg.isIndexedBy ); + p->u1.nRow++; + } + + if( pParse->nErr==0 ){ + assert( p!=0 ); + if( p->pSelect->pEList->nExpr!=pRow->nExpr ){ + sqlite3SelectWrongNumTermsError(pParse, p->pSelect); + }else{ + sqlite3ExprCodeExprList(pParse, pRow, p->regResult, 0, 0); + sqlite3VdbeAddOp1(pParse->pVdbe, OP_Yield, p->regReturn); + } + } + sqlite3ExprListDelete(pParse->db, pRow); + } + + return pLeft; +} /* Forward declaration */ static int xferOptimization( @@ -133003,25 +133997,40 @@ SQLITE_PRIVATE void sqlite3Insert( if( pSelect ){ /* Data is coming from a SELECT or from a multi-row VALUES clause. ** Generate a co-routine to run the SELECT. */ - int regYield; /* Register holding co-routine entry-point */ - int addrTop; /* Top of the co-routine */ int rc; /* Result code */ - regYield = ++pParse->nMem; - addrTop = sqlite3VdbeCurrentAddr(v) + 1; - sqlite3VdbeAddOp3(v, OP_InitCoroutine, regYield, 0, addrTop); - sqlite3SelectDestInit(&dest, SRT_Coroutine, regYield); - dest.iSdst = bIdListInOrder ? regData : 0; - dest.nSdst = pTab->nCol; - rc = sqlite3Select(pParse, pSelect, &dest); - regFromSelect = dest.iSdst; - assert( db->pParse==pParse ); - if( rc || pParse->nErr ) goto insert_cleanup; - assert( db->mallocFailed==0 ); - sqlite3VdbeEndCoroutine(v, regYield); - sqlite3VdbeJumpHere(v, addrTop - 1); /* label B: */ - assert( pSelect->pEList ); - nColumn = pSelect->pEList->nExpr; + if( pSelect->pSrc->nSrc==1 + && pSelect->pSrc->a[0].fg.viaCoroutine + && pSelect->pPrior==0 + ){ + SrcItem *pItem = &pSelect->pSrc->a[0]; + dest.iSDParm = pItem->regReturn; + regFromSelect = pItem->regResult; + nColumn = pItem->pSelect->pEList->nExpr; + ExplainQueryPlan((pParse, 0, "SCAN %S", pItem)); + if( bIdListInOrder && nColumn==pTab->nCol ){ + regData = regFromSelect; + regRowid = regData - 1; + regIns = regRowid - (IsVirtual(pTab) ? 1 : 0); + } + }else{ + int addrTop; /* Top of the co-routine */ + int regYield = ++pParse->nMem; + addrTop = sqlite3VdbeCurrentAddr(v) + 1; + sqlite3VdbeAddOp3(v, OP_InitCoroutine, regYield, 0, addrTop); + sqlite3SelectDestInit(&dest, SRT_Coroutine, regYield); + dest.iSdst = bIdListInOrder ? regData : 0; + dest.nSdst = pTab->nCol; + rc = sqlite3Select(pParse, pSelect, &dest); + regFromSelect = dest.iSdst; + assert( db->pParse==pParse ); + if( rc || pParse->nErr ) goto insert_cleanup; + assert( db->mallocFailed==0 ); + sqlite3VdbeEndCoroutine(v, regYield); + sqlite3VdbeJumpHere(v, addrTop - 1); /* label B: */ + assert( pSelect->pEList ); + nColumn = pSelect->pEList->nExpr; + } /* Set useTempTable to TRUE if the result of the SELECT statement ** should be written into a temporary table (template 4). Set to @@ -133176,7 +134185,7 @@ SQLITE_PRIVATE void sqlite3Insert( pNx->iDataCur = iDataCur; pNx->iIdxCur = iIdxCur; if( pNx->pUpsertTarget ){ - if( sqlite3UpsertAnalyzeTarget(pParse, pTabList, pNx) ){ + if( sqlite3UpsertAnalyzeTarget(pParse, pTabList, pNx, pUpsert) ){ goto insert_cleanup; } } @@ -135068,7 +136077,10 @@ static int xferOptimization( } } #ifndef SQLITE_OMIT_CHECK - if( pDest->pCheck && sqlite3ExprListCompare(pSrc->pCheck,pDest->pCheck,-1) ){ + if( pDest->pCheck + && (db->mDbFlags & DBFLAG_Vacuum)==0 + && sqlite3ExprListCompare(pSrc->pCheck,pDest->pCheck,-1) + ){ return 0; /* Tables have different CHECK constraints. Ticket #2252 */ } #endif @@ -137743,6 +138755,34 @@ static const PragmaName aPragmaName[] = { /************** End of pragma.h **********************************************/ /************** Continuing where we left off in pragma.c *********************/ +/* +** When the 0x10 bit of PRAGMA optimize is set, any ANALYZE commands +** will be run with an analysis_limit set to the lessor of the value of +** the following macro or to the actual analysis_limit if it is non-zero, +** in order to prevent PRAGMA optimize from running for too long. +** +** The value of 2000 is chosen emperically so that the worst-case run-time +** for PRAGMA optimize does not exceed 100 milliseconds against a variety +** of test databases on a RaspberryPI-4 compiled using -Os and without +** -DSQLITE_DEBUG. Of course, your mileage may vary. For the purpose of +** this paragraph, "worst-case" means that ANALYZE ends up being +** run on every table in the database. The worst case typically only +** happens if PRAGMA optimize is run on a database file for which ANALYZE +** has not been previously run and the 0x10000 flag is included so that +** all tables are analyzed. The usual case for PRAGMA optimize is that +** no ANALYZE commands will be run at all, or if any ANALYZE happens it +** will be against a single table, so that expected timing for PRAGMA +** optimize on a PI-4 is more like 1 millisecond or less with the 0x10000 +** flag or less than 100 microseconds without the 0x10000 flag. +** +** An analysis limit of 2000 is almost always sufficient for the query +** planner to fully characterize an index. The additional accuracy from +** a larger analysis is not usually helpful. +*/ +#ifndef SQLITE_DEFAULT_OPTIMIZE_LIMIT +# define SQLITE_DEFAULT_OPTIMIZE_LIMIT 2000 +#endif + /* ** Interpret the given string as a safety level. Return 0 for OFF, ** 1 for ON or NORMAL, 2 for FULL, and 3 for EXTRA. Return 1 for an empty or @@ -139388,7 +140428,7 @@ SQLITE_PRIVATE void sqlite3Pragma( /* Set the maximum error count */ mxErr = SQLITE_INTEGRITY_CHECK_ERROR_MAX; if( zRight ){ - if( sqlite3GetInt32(zRight, &mxErr) ){ + if( sqlite3GetInt32(pValue->z, &mxErr) ){ if( mxErr<=0 ){ mxErr = SQLITE_INTEGRITY_CHECK_ERROR_MAX; } @@ -139405,7 +140445,6 @@ SQLITE_PRIVATE void sqlite3Pragma( Hash *pTbls; /* Set of all tables in the schema */ int *aRoot; /* Array of root page numbers of all btrees */ int cnt = 0; /* Number of entries in aRoot[] */ - int mxIdx = 0; /* Maximum number of indexes for any table */ if( OMIT_TEMPDB && i==1 ) continue; if( iDb>=0 && i!=iDb ) continue; @@ -139427,7 +140466,6 @@ SQLITE_PRIVATE void sqlite3Pragma( if( pObjTab && pObjTab!=pTab ) continue; if( HasRowid(pTab) ) cnt++; for(nIdx=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, nIdx++){ cnt++; } - if( nIdx>mxIdx ) mxIdx = nIdx; } if( cnt==0 ) continue; if( pObjTab ) cnt++; @@ -139447,11 +140485,11 @@ SQLITE_PRIVATE void sqlite3Pragma( aRoot[0] = cnt; /* Make sure sufficient number of registers have been allocated */ - sqlite3TouchRegister(pParse, 8+mxIdx); + sqlite3TouchRegister(pParse, 8+cnt); sqlite3ClearTempRegCache(pParse); /* Do the b-tree integrity checks */ - sqlite3VdbeAddOp4(v, OP_IntegrityCk, 2, cnt, 1, (char*)aRoot,P4_INTARRAY); + sqlite3VdbeAddOp4(v, OP_IntegrityCk, 1, cnt, 8, (char*)aRoot,P4_INTARRAY); sqlite3VdbeChangeP5(v, (u8)i); addr = sqlite3VdbeAddOp1(v, OP_IsNull, 2); VdbeCoverage(v); sqlite3VdbeAddOp4(v, OP_String8, 0, 3, 0, @@ -139461,6 +140499,36 @@ SQLITE_PRIVATE void sqlite3Pragma( integrityCheckResultRow(v); sqlite3VdbeJumpHere(v, addr); + /* Check that the indexes all have the right number of rows */ + cnt = pObjTab ? 1 : 0; + sqlite3VdbeLoadString(v, 2, "wrong # of entries in index "); + for(x=sqliteHashFirst(pTbls); x; x=sqliteHashNext(x)){ + int iTab = 0; + Table *pTab = sqliteHashData(x); + Index *pIdx; + if( pObjTab && pObjTab!=pTab ) continue; + if( HasRowid(pTab) ){ + iTab = cnt++; + }else{ + iTab = cnt; + for(pIdx=pTab->pIndex; ALWAYS(pIdx); pIdx=pIdx->pNext){ + if( IsPrimaryKeyIndex(pIdx) ) break; + iTab++; + } + } + for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){ + if( pIdx->pPartIdxWhere==0 ){ + addr = sqlite3VdbeAddOp3(v, OP_Eq, 8+cnt, 0, 8+iTab); + VdbeCoverageNeverNull(v); + sqlite3VdbeLoadString(v, 4, pIdx->zName); + sqlite3VdbeAddOp3(v, OP_Concat, 4, 2, 3); + integrityCheckResultRow(v); + sqlite3VdbeJumpHere(v, addr); + } + cnt++; + } + } + /* Make sure all the indices are constructed correctly. */ for(x=sqliteHashFirst(pTbls); x; x=sqliteHashNext(x)){ @@ -139475,31 +140543,7 @@ SQLITE_PRIVATE void sqlite3Pragma( int mxCol; /* Maximum non-virtual column number */ if( pObjTab && pObjTab!=pTab ) continue; - if( !IsOrdinaryTable(pTab) ){ -#ifndef SQLITE_OMIT_VIRTUALTABLE - sqlite3_vtab *pVTab; - int a1; - if( !IsVirtual(pTab) ) continue; - if( pTab->nCol<=0 ){ - const char *zMod = pTab->u.vtab.azArg[0]; - if( sqlite3HashFind(&db->aModule, zMod)==0 ) continue; - } - sqlite3ViewGetColumnNames(pParse, pTab); - if( pTab->u.vtab.p==0 ) continue; - pVTab = pTab->u.vtab.p->pVtab; - if( NEVER(pVTab==0) ) continue; - if( NEVER(pVTab->pModule==0) ) continue; - if( pVTab->pModule->iVersion<4 ) continue; - if( pVTab->pModule->xIntegrity==0 ) continue; - sqlite3VdbeAddOp3(v, OP_VCheck, i, 3, isQuick); - pTab->nTabRef++; - sqlite3VdbeAppendP4(v, pTab, P4_TABLEREF); - a1 = sqlite3VdbeAddOp1(v, OP_IsNull, 3); VdbeCoverage(v); - integrityCheckResultRow(v); - sqlite3VdbeJumpHere(v, a1); -#endif - continue; - } + if( !IsOrdinaryTable(pTab) ) continue; if( isQuick || HasRowid(pTab) ){ pPk = 0; r2 = 0; @@ -139634,6 +140678,7 @@ SQLITE_PRIVATE void sqlite3Pragma( ** is REAL, we have to load the actual data using OP_Column ** to reliably determine if the value is a NULL. */ sqlite3VdbeAddOp3(v, OP_Column, p1, p3, 3); + sqlite3ColumnDefault(v, pTab, j, 3); jmp3 = sqlite3VdbeAddOp2(v, OP_NotNull, 3, labelOk); VdbeCoverage(v); } @@ -139807,23 +140852,43 @@ SQLITE_PRIVATE void sqlite3Pragma( } sqlite3VdbeAddOp2(v, OP_Next, iDataCur, loopTop); VdbeCoverage(v); sqlite3VdbeJumpHere(v, loopTop-1); - if( !isQuick ){ - sqlite3VdbeLoadString(v, 2, "wrong # of entries in index "); - for(j=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, j++){ - if( pPk==pIdx ) continue; - sqlite3VdbeAddOp2(v, OP_Count, iIdxCur+j, 3); - addr = sqlite3VdbeAddOp3(v, OP_Eq, 8+j, 0, 3); VdbeCoverage(v); - sqlite3VdbeChangeP5(v, SQLITE_NOTNULL); - sqlite3VdbeLoadString(v, 4, pIdx->zName); - sqlite3VdbeAddOp3(v, OP_Concat, 4, 2, 3); - integrityCheckResultRow(v); - sqlite3VdbeJumpHere(v, addr); - } - if( pPk ){ - sqlite3ReleaseTempRange(pParse, r2, pPk->nKeyCol); - } + if( pPk ){ + assert( !isQuick ); + sqlite3ReleaseTempRange(pParse, r2, pPk->nKeyCol); } } + +#ifndef SQLITE_OMIT_VIRTUALTABLE + /* Second pass to invoke the xIntegrity method on all virtual + ** tables. + */ + for(x=sqliteHashFirst(pTbls); x; x=sqliteHashNext(x)){ + Table *pTab = sqliteHashData(x); + sqlite3_vtab *pVTab; + int a1; + if( pObjTab && pObjTab!=pTab ) continue; + if( IsOrdinaryTable(pTab) ) continue; + if( !IsVirtual(pTab) ) continue; + if( pTab->nCol<=0 ){ + const char *zMod = pTab->u.vtab.azArg[0]; + if( sqlite3HashFind(&db->aModule, zMod)==0 ) continue; + } + sqlite3ViewGetColumnNames(pParse, pTab); + if( pTab->u.vtab.p==0 ) continue; + pVTab = pTab->u.vtab.p->pVtab; + if( NEVER(pVTab==0) ) continue; + if( NEVER(pVTab->pModule==0) ) continue; + if( pVTab->pModule->iVersion<4 ) continue; + if( pVTab->pModule->xIntegrity==0 ) continue; + sqlite3VdbeAddOp3(v, OP_VCheck, i, 3, isQuick); + pTab->nTabRef++; + sqlite3VdbeAppendP4(v, pTab, P4_TABLEREF); + a1 = sqlite3VdbeAddOp1(v, OP_IsNull, 3); VdbeCoverage(v); + integrityCheckResultRow(v); + sqlite3VdbeJumpHere(v, a1); + continue; + } +#endif } { static const int iLn = VDBE_OFFSET_LINENO(2); @@ -140087,44 +141152,63 @@ SQLITE_PRIVATE void sqlite3Pragma( ** ** The optional argument is a bitmask of optimizations to perform: ** - ** 0x0001 Debugging mode. Do not actually perform any optimizations - ** but instead return one line of text for each optimization - ** that would have been done. Off by default. + ** 0x00001 Debugging mode. Do not actually perform any optimizations + ** but instead return one line of text for each optimization + ** that would have been done. Off by default. ** - ** 0x0002 Run ANALYZE on tables that might benefit. On by default. - ** See below for additional information. + ** 0x00002 Run ANALYZE on tables that might benefit. On by default. + ** See below for additional information. ** - ** 0x0004 (Not yet implemented) Record usage and performance - ** information from the current session in the - ** database file so that it will be available to "optimize" - ** pragmas run by future database connections. + ** 0x00010 Run all ANALYZE operations using an analysis_limit that + ** is the lessor of the current analysis_limit and the + ** SQLITE_DEFAULT_OPTIMIZE_LIMIT compile-time option. + ** The default value of SQLITE_DEFAULT_OPTIMIZE_LIMIT is + ** currently (2024-02-19) set to 2000, which is such that + ** the worst case run-time for PRAGMA optimize on a 100MB + ** database will usually be less than 100 milliseconds on + ** a RaspberryPI-4 class machine. On by default. ** - ** 0x0008 (Not yet implemented) Create indexes that might have - ** been helpful to recent queries + ** 0x10000 Look at tables to see if they need to be reanalyzed + ** due to growth or shrinkage even if they have not been + ** queried during the current connection. Off by default. ** - ** The default MASK is and always shall be 0xfffe. 0xfffe means perform all - ** of the optimizations listed above except Debug Mode, including new - ** optimizations that have not yet been invented. If new optimizations are - ** ever added that should be off by default, those off-by-default - ** optimizations will have bitmasks of 0x10000 or larger. + ** The default MASK is and always shall be 0x0fffe. In the current + ** implementation, the default mask only covers the 0x00002 optimization, + ** though additional optimizations that are covered by 0x0fffe might be + ** added in the future. Optimizations that are off by default and must + ** be explicitly requested have masks of 0x10000 or greater. ** ** DETERMINATION OF WHEN TO RUN ANALYZE ** ** In the current implementation, a table is analyzed if only if all of ** the following are true: ** - ** (1) MASK bit 0x02 is set. + ** (1) MASK bit 0x00002 is set. ** - ** (2) The query planner used sqlite_stat1-style statistics for one or - ** more indexes of the table at some point during the lifetime of - ** the current connection. + ** (2) The table is an ordinary table, not a virtual table or view. ** - ** (3) One or more indexes of the table are currently unanalyzed OR - ** the number of rows in the table has increased by 25 times or more - ** since the last time ANALYZE was run. + ** (3) The table name does not begin with "sqlite_". + ** + ** (4) One or more of the following is true: + ** (4a) The 0x10000 MASK bit is set. + ** (4b) One or more indexes on the table lacks an entry + ** in the sqlite_stat1 table. + ** (4c) The query planner used sqlite_stat1-style statistics for one + ** or more indexes of the table at some point during the lifetime + ** of the current connection. + ** + ** (5) One or more of the following is true: + ** (5a) One or more indexes on the table lacks an entry + ** in the sqlite_stat1 table. (Same as 4a) + ** (5b) The number of rows in the table has increased or decreased by + ** 10-fold. In other words, the current size of the table is + ** 10 times larger than the size in sqlite_stat1 or else the + ** current size is less than 1/10th the size in sqlite_stat1. ** ** The rules for when tables are analyzed are likely to change in - ** future releases. + ** future releases. Future versions of SQLite might accept a string + ** literal argument to this pragma that contains a mnemonic description + ** of the options rather than a bitmap. */ case PragTyp_OPTIMIZE: { int iDbLast; /* Loop termination point for the schema loop */ @@ -140136,6 +141220,10 @@ SQLITE_PRIVATE void sqlite3Pragma( LogEst szThreshold; /* Size threshold above which reanalysis needed */ char *zSubSql; /* SQL statement for the OP_SqlExec opcode */ u32 opMask; /* Mask of operations to perform */ + int nLimit; /* Analysis limit to use */ + int nCheck = 0; /* Number of tables to be optimized */ + int nBtree = 0; /* Number of btrees to scan */ + int nIndex; /* Number of indexes on the current table */ if( zRight ){ opMask = (u32)sqlite3Atoi(zRight); @@ -140143,6 +141231,14 @@ SQLITE_PRIVATE void sqlite3Pragma( }else{ opMask = 0xfffe; } + if( (opMask & 0x10)==0 ){ + nLimit = 0; + }else if( db->nAnalysisLimit>0 + && db->nAnalysisLimitnTab++; for(iDbLast = zDb?iDb:db->nDb-1; iDb<=iDbLast; iDb++){ if( iDb==1 ) continue; @@ -140151,23 +141247,61 @@ SQLITE_PRIVATE void sqlite3Pragma( for(k=sqliteHashFirst(&pSchema->tblHash); k; k=sqliteHashNext(k)){ pTab = (Table*)sqliteHashData(k); - /* If table pTab has not been used in a way that would benefit from - ** having analysis statistics during the current session, then skip it. - ** This also has the effect of skipping virtual tables and views */ - if( (pTab->tabFlags & TF_StatsUsed)==0 ) continue; + /* This only works for ordinary tables */ + if( !IsOrdinaryTable(pTab) ) continue; + + /* Do not scan system tables */ + if( 0==sqlite3StrNICmp(pTab->zName, "sqlite_", 7) ) continue; - /* Reanalyze if the table is 25 times larger than the last analysis */ - szThreshold = pTab->nRowLogEst + 46; assert( sqlite3LogEst(25)==46 ); + /* Find the size of the table as last recorded in sqlite_stat1. + ** If any index is unanalyzed, then the threshold is -1 to + ** indicate a new, unanalyzed index + */ + szThreshold = pTab->nRowLogEst; + nIndex = 0; for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){ + nIndex++; if( !pIdx->hasStat1 ){ - szThreshold = 0; /* Always analyze if any index lacks statistics */ - break; + szThreshold = -1; /* Always analyze if any index lacks statistics */ } } - if( szThreshold ){ - sqlite3OpenTable(pParse, iTabCur, iDb, pTab, OP_OpenRead); - sqlite3VdbeAddOp3(v, OP_IfSmaller, iTabCur, - sqlite3VdbeCurrentAddr(v)+2+(opMask&1), szThreshold); + + /* If table pTab has not been used in a way that would benefit from + ** having analysis statistics during the current session, then skip it, + ** unless the 0x10000 MASK bit is set. */ + if( (pTab->tabFlags & TF_MaybeReanalyze)!=0 ){ + /* Check for size change if stat1 has been used for a query */ + }else if( opMask & 0x10000 ){ + /* Check for size change if 0x10000 is set */ + }else if( pTab->pIndex!=0 && szThreshold<0 ){ + /* Do analysis if unanalyzed indexes exists */ + }else{ + /* Otherwise, we can skip this table */ + continue; + } + + nCheck++; + if( nCheck==2 ){ + /* If ANALYZE might be invoked two or more times, hold a write + ** transaction for efficiency */ + sqlite3BeginWriteOperation(pParse, 0, iDb); + } + nBtree += nIndex+1; + + /* Reanalyze if the table is 10 times larger or smaller than + ** the last analysis. Unconditional reanalysis if there are + ** unanalyzed indexes. */ + sqlite3OpenTable(pParse, iTabCur, iDb, pTab, OP_OpenRead); + if( szThreshold>=0 ){ + const LogEst iRange = 33; /* 10x size change */ + sqlite3VdbeAddOp4Int(v, OP_IfSizeBetween, iTabCur, + sqlite3VdbeCurrentAddr(v)+2+(opMask&1), + szThreshold>=iRange ? szThreshold-iRange : -1, + szThreshold+iRange); + VdbeCoverage(v); + }else{ + sqlite3VdbeAddOp2(v, OP_Rewind, iTabCur, + sqlite3VdbeCurrentAddr(v)+2+(opMask&1)); VdbeCoverage(v); } zSubSql = sqlite3MPrintf(db, "ANALYZE \"%w\".\"%w\"", @@ -140177,11 +141311,27 @@ SQLITE_PRIVATE void sqlite3Pragma( sqlite3VdbeAddOp4(v, OP_String8, 0, r1, 0, zSubSql, P4_DYNAMIC); sqlite3VdbeAddOp2(v, OP_ResultRow, r1, 1); }else{ - sqlite3VdbeAddOp4(v, OP_SqlExec, 0, 0, 0, zSubSql, P4_DYNAMIC); + sqlite3VdbeAddOp4(v, OP_SqlExec, nLimit ? 0x02 : 00, nLimit, 0, + zSubSql, P4_DYNAMIC); } } } sqlite3VdbeAddOp0(v, OP_Expire); + + /* In a schema with a large number of tables and indexes, scale back + ** the analysis_limit to avoid excess run-time in the worst case. + */ + if( !db->mallocFailed && nLimit>0 && nBtree>100 ){ + int iAddr, iEnd; + VdbeOp *aOp; + nLimit = 100*nLimit/nBtree; + if( nLimit<100 ) nLimit = 100; + aOp = sqlite3VdbeGetOp(v, 0); + iEnd = sqlite3VdbeCurrentAddr(v); + for(iAddr=0; iAddrnConstraint; i++, pConstraint++){ - if( pConstraint->usable==0 ) continue; - if( pConstraint->op!=SQLITE_INDEX_CONSTRAINT_EQ ) continue; if( pConstraint->iColumn < pTab->iHidden ) continue; + if( pConstraint->op!=SQLITE_INDEX_CONSTRAINT_EQ ) continue; + if( pConstraint->usable==0 ) return SQLITE_CONSTRAINT; j = pConstraint->iColumn - pTab->iHidden; assert( j < 2 ); seen[j] = i+1; @@ -140460,12 +141610,13 @@ static int pragmaVtabBestIndex(sqlite3_vtab *tab, sqlite3_index_info *pIdxInfo){ j = seen[0]-1; pIdxInfo->aConstraintUsage[j].argvIndex = 1; pIdxInfo->aConstraintUsage[j].omit = 1; - if( seen[1]==0 ) return SQLITE_OK; pIdxInfo->estimatedCost = (double)20; pIdxInfo->estimatedRows = 20; - j = seen[1]-1; - pIdxInfo->aConstraintUsage[j].argvIndex = 2; - pIdxInfo->aConstraintUsage[j].omit = 1; + if( seen[1] ){ + j = seen[1]-1; + pIdxInfo->aConstraintUsage[j].argvIndex = 2; + pIdxInfo->aConstraintUsage[j].omit = 1; + } return SQLITE_OK; } @@ -140485,6 +141636,7 @@ static void pragmaVtabCursorClear(PragmaVtabCursor *pCsr){ int i; sqlite3_finalize(pCsr->pPragma); pCsr->pPragma = 0; + pCsr->iRowid = 0; for(i=0; iazArg); i++){ sqlite3_free(pCsr->azArg[i]); pCsr->azArg[i] = 0; @@ -141285,7 +142437,13 @@ SQLITE_PRIVATE void *sqlite3ParserAddCleanup( void (*xCleanup)(sqlite3*,void*), /* The cleanup routine */ void *pPtr /* Pointer to object to be cleaned up */ ){ - ParseCleanup *pCleanup = sqlite3DbMallocRaw(pParse->db, sizeof(*pCleanup)); + ParseCleanup *pCleanup; + if( sqlite3FaultSim(300) ){ + pCleanup = 0; + sqlite3OomFault(pParse->db); + }else{ + pCleanup = sqlite3DbMallocRaw(pParse->db, sizeof(*pCleanup)); + } if( pCleanup ){ pCleanup->pNext = pParse->pCleanup; pParse->pCleanup = pCleanup; @@ -143407,9 +144565,16 @@ static void generateSortTail( int addrExplain; /* Address of OP_Explain instruction */ #endif - ExplainQueryPlan2(addrExplain, (pParse, 0, - "USE TEMP B-TREE FOR %sORDER BY", pSort->nOBSat>0?"RIGHT PART OF ":"") - ); + nKey = pOrderBy->nExpr - pSort->nOBSat; + if( pSort->nOBSat==0 || nKey==1 ){ + ExplainQueryPlan2(addrExplain, (pParse, 0, + "USE TEMP B-TREE FOR %sORDER BY", pSort->nOBSat?"LAST TERM OF ":"" + )); + }else{ + ExplainQueryPlan2(addrExplain, (pParse, 0, + "USE TEMP B-TREE FOR LAST %d TERMS OF ORDER BY", nKey + )); + } sqlite3VdbeScanStatusRange(v, addrExplain,pSort->addrPush,pSort->addrPushEnd); sqlite3VdbeScanStatusCounters(v, addrExplain, addrExplain, pSort->addrPush); @@ -143447,7 +144612,6 @@ static void generateSortTail( regRow = sqlite3GetTempRange(pParse, nColumn); } } - nKey = pOrderBy->nExpr - pSort->nOBSat; if( pSort->sortFlags & SORTFLAG_UseSorter ){ int regSortOut = ++pParse->nMem; iSortTab = pParse->nTab++; @@ -143687,11 +144851,7 @@ static const char *columnTypeImpl( ** data for the result-set column of the sub-select. */ if( iColpEList->nExpr -#ifdef SQLITE_ALLOW_ROWID_IN_VIEW - && iCol>=0 -#else - && ALWAYS(iCol>=0) -#endif + && (!ViewCanHaveRowid || iCol>=0) ){ /* If iCol is less than zero, then the expression requests the ** rowid of the sub-select or view. This expression is legal (see @@ -144056,8 +145216,7 @@ SQLITE_PRIVATE void sqlite3SubqueryColumnTypes( NameContext sNC; assert( pSelect!=0 ); - testcase( (pSelect->selFlags & SF_Resolved)==0 ); - assert( (pSelect->selFlags & SF_Resolved)!=0 || IN_RENAME_OBJECT ); + assert( (pSelect->selFlags & SF_Resolved)!=0 ); assert( pTab->nCol==pSelect->pEList->nExpr || pParse->nErr>0 ); assert( aff==SQLITE_AFF_NONE || aff==SQLITE_AFF_BLOB ); if( db->mallocFailed || IN_RENAME_OBJECT ) return; @@ -144068,17 +145227,22 @@ SQLITE_PRIVATE void sqlite3SubqueryColumnTypes( for(i=0, pCol=pTab->aCol; inCol; i++, pCol++){ const char *zType; i64 n; + int m = 0; + Select *pS2 = pSelect; pTab->tabFlags |= (pCol->colFlags & COLFLAG_NOINSERT); p = a[i].pExpr; /* pCol->szEst = ... // Column size est for SELECT tables never used */ pCol->affinity = sqlite3ExprAffinity(p); + while( pCol->affinity<=SQLITE_AFF_NONE && pS2->pNext!=0 ){ + m |= sqlite3ExprDataType(pS2->pEList->a[i].pExpr); + pS2 = pS2->pNext; + pCol->affinity = sqlite3ExprAffinity(pS2->pEList->a[i].pExpr); + } if( pCol->affinity<=SQLITE_AFF_NONE ){ pCol->affinity = aff; } - if( pCol->affinity>=SQLITE_AFF_TEXT && pSelect->pNext ){ - int m = 0; - Select *pS2; - for(m=0, pS2=pSelect->pNext; pS2; pS2=pS2->pNext){ + if( pCol->affinity>=SQLITE_AFF_TEXT && (pS2->pNext || pS2!=pSelect) ){ + for(pS2=pS2->pNext; pS2; pS2=pS2->pNext){ m |= sqlite3ExprDataType(pS2->pEList->a[i].pExpr); } if( pCol->affinity==SQLITE_AFF_TEXT && (m&0x01)!=0 ){ @@ -144108,12 +145272,12 @@ SQLITE_PRIVATE void sqlite3SubqueryColumnTypes( } } if( zType ){ - i64 m = sqlite3Strlen30(zType); + const i64 k = sqlite3Strlen30(zType); n = sqlite3Strlen30(pCol->zCnName); - pCol->zCnName = sqlite3DbReallocOrFree(db, pCol->zCnName, n+m+2); + pCol->zCnName = sqlite3DbReallocOrFree(db, pCol->zCnName, n+k+2); pCol->colFlags &= ~(COLFLAG_HASTYPE|COLFLAG_HASCOLL); if( pCol->zCnName ){ - memcpy(&pCol->zCnName[n+1], zType, m+1); + memcpy(&pCol->zCnName[n+1], zType, k+1); pCol->colFlags |= COLFLAG_HASTYPE; } } @@ -146510,7 +147674,7 @@ static void constInsert( ){ int i; assert( pColumn->op==TK_COLUMN ); - assert( sqlite3ExprIsConstant(pValue) ); + assert( sqlite3ExprIsConstant(pConst->pParse, pValue) ); if( ExprHasProperty(pColumn, EP_FixedCol) ) return; if( sqlite3ExprAffinity(pValue)!=0 ) return; @@ -146568,10 +147732,10 @@ static void findConstInWhere(WhereConst *pConst, Expr *pExpr){ pLeft = pExpr->pLeft; assert( pRight!=0 ); assert( pLeft!=0 ); - if( pRight->op==TK_COLUMN && sqlite3ExprIsConstant(pLeft) ){ + if( pRight->op==TK_COLUMN && sqlite3ExprIsConstant(pConst->pParse, pLeft) ){ constInsert(pConst,pRight,pLeft,pExpr); } - if( pLeft->op==TK_COLUMN && sqlite3ExprIsConstant(pRight) ){ + if( pLeft->op==TK_COLUMN && sqlite3ExprIsConstant(pConst->pParse, pRight) ){ constInsert(pConst,pLeft,pRight,pExpr); } } @@ -146792,6 +147956,18 @@ static int pushDownWindowCheck(Parse *pParse, Select *pSubq, Expr *pExpr){ ** The hope is that the terms added to the inner query will make it more ** efficient. ** +** NAME AMBIGUITY +** +** This optimization is called the "WHERE-clause push-down optimization". +** +** Do not confuse this optimization with another unrelated optimization +** with a similar name: The "MySQL push-down optimization" causes WHERE +** clause terms that can be evaluated using only the index and without +** reference to the table are run first, so that if they are false, +** unnecessary table seeks are avoided. +** +** RULES +** ** Do not attempt this optimization if: ** ** (1) (** This restriction was removed on 2017-09-29. We used to @@ -146857,15 +148033,19 @@ static int pushDownWindowCheck(Parse *pParse, Select *pSubq, Expr *pExpr){ ** (9c) There is a RIGHT JOIN (or FULL JOIN) in between the ON/USING ** clause and the subquery. ** -** Without this restriction, the push-down optimization might move -** the ON/USING filter expression from the left side of a RIGHT JOIN -** over to the right side, which leads to incorrect answers. See -** also restriction (6) in sqlite3ExprIsSingleTableConstraint(). +** Without this restriction, the WHERE-clause push-down optimization +** might move the ON/USING filter expression from the left side of a +** RIGHT JOIN over to the right side, which leads to incorrect answers. +** See also restriction (6) in sqlite3ExprIsSingleTableConstraint(). ** ** (10) The inner query is not the right-hand table of a RIGHT JOIN. ** ** (11) The subquery is not a VALUES clause ** +** (12) The WHERE clause is not "rowid ISNULL" or the equivalent. This +** case only comes up if SQLite is compiled using +** SQLITE_ALLOW_ROWID_IN_VIEW. +** ** Return 0 if no changes are made and non-zero if one or more WHERE clause ** terms are duplicated into the subquery. */ @@ -146976,7 +148156,19 @@ static int pushDownWhereTerms( } #endif - if( sqlite3ExprIsSingleTableConstraint(pWhere, pSrcList, iSrc) ){ +#ifdef SQLITE_ALLOW_ROWID_IN_VIEW + if( ViewCanHaveRowid && (pWhere->op==TK_ISNULL || pWhere->op==TK_NOTNULL) ){ + Expr *pLeft = pWhere->pLeft; + if( ALWAYS(pLeft) + && pLeft->op==TK_COLUMN + && pLeft->iColumn < 0 + ){ + return 0; /* Restriction (12) */ + } + } +#endif + + if( sqlite3ExprIsSingleTableConstraint(pWhere, pSrcList, iSrc, 1) ){ nChng++; pSubq->selFlags |= SF_PushDown; while( pSubq ){ @@ -147603,12 +148795,14 @@ SQLITE_PRIVATE int sqlite3ExpandSubquery(Parse *pParse, SrcItem *pFrom){ while( pSel->pPrior ){ pSel = pSel->pPrior; } sqlite3ColumnsFromExprList(pParse, pSel->pEList,&pTab->nCol,&pTab->aCol); pTab->iPKey = -1; + pTab->eTabType = TABTYP_VIEW; pTab->nRowLogEst = 200; assert( 200==sqlite3LogEst(1048576) ); #ifndef SQLITE_ALLOW_ROWID_IN_VIEW /* The usual case - do not allow ROWID on a subquery */ pTab->tabFlags |= TF_Ephemeral | TF_NoVisibleRowid; #else - pTab->tabFlags |= TF_Ephemeral; /* Legacy compatibility mode */ + /* Legacy compatibility mode */ + pTab->tabFlags |= TF_Ephemeral | sqlite3Config.mNoVisibleRowid; #endif return pParse->nErr ? SQLITE_ERROR : SQLITE_OK; } @@ -147876,7 +149070,7 @@ static int selectExpander(Walker *pWalker, Select *p){ pNestedFrom = pFrom->pSelect->pEList; assert( pNestedFrom!=0 ); assert( pNestedFrom->nExpr==pTab->nCol ); - assert( VisibleRowid(pTab)==0 ); + assert( VisibleRowid(pTab)==0 || ViewCanHaveRowid ); }else{ if( zTName && sqlite3StrICmp(zTName, zTabName)!=0 ){ continue; @@ -147908,7 +149102,8 @@ static int selectExpander(Walker *pWalker, Select *p){ pUsing = 0; } - nAdd = pTab->nCol + (VisibleRowid(pTab) && (selFlags&SF_NestedFrom)); + nAdd = pTab->nCol; + if( VisibleRowid(pTab) && (selFlags & SF_NestedFrom)!=0 ) nAdd++; for(j=0; ja[pNew->nExpr-1]; assert( pX->zEName==0 ); if( (selFlags & SF_NestedFrom)!=0 && !IN_RENAME_OBJECT ){ - if( pNestedFrom ){ + if( pNestedFrom && (!ViewCanHaveRowid || jnExpr) ){ + assert( jnExpr ); pX->zEName = sqlite3DbStrDup(db, pNestedFrom->a[j].zEName); testcase( pX->zEName==0 ); }else{ @@ -148107,8 +149303,7 @@ static void selectAddSubqueryTypeInfo(Walker *pWalker, Select *p){ if( p->selFlags & SF_HasTypeInfo ) return; p->selFlags |= SF_HasTypeInfo; pParse = pWalker->pParse; - testcase( (p->selFlags & SF_Resolved)==0 ); - assert( (p->selFlags & SF_Resolved) || IN_RENAME_OBJECT ); + assert( (p->selFlags & SF_Resolved) ); pTabList = p->pSrc; for(i=0, pFrom=pTabList->a; inSrc; i++, pFrom++){ Table *pTab = pFrom->pTab; @@ -148178,6 +149373,8 @@ SQLITE_PRIVATE void sqlite3SelectPrep( */ static void printAggInfo(AggInfo *pAggInfo){ int ii; + sqlite3DebugPrintf("AggInfo %d/%p:\n", + pAggInfo->selId, pAggInfo); for(ii=0; iinColumn; ii++){ struct AggInfo_col *pCol = &pAggInfo->aCol[ii]; sqlite3DebugPrintf( @@ -149368,7 +150565,7 @@ SQLITE_PRIVATE int sqlite3Select( /* Generate code for all sub-queries in the FROM clause */ pSub = pItem->pSelect; - if( pSub==0 ) continue; + if( pSub==0 || pItem->addrFillSub!=0 ) continue; /* The code for a subquery should only be generated once. */ assert( pItem->addrFillSub==0 ); @@ -149399,7 +150596,7 @@ SQLITE_PRIVATE int sqlite3Select( #endif assert( pItem->pSelect && (pItem->pSelect->selFlags & SF_PushDown)!=0 ); }else{ - TREETRACE(0x4000,pParse,p,("Push-down not possible\n")); + TREETRACE(0x4000,pParse,p,("WHERE-lcause push-down not possible\n")); } /* Convert unused result columns of the subquery into simple NULL @@ -150280,6 +151477,12 @@ SQLITE_PRIVATE int sqlite3Select( sqlite3ExprListDelete(db, pMinMaxOrderBy); #ifdef SQLITE_DEBUG if( pAggInfo && !db->mallocFailed ){ +#if TREETRACE_ENABLED + if( sqlite3TreeTrace & 0x20 ){ + TREETRACE(0x20,pParse,p,("Finished with AggInfo\n")); + printAggInfo(pAggInfo); + } +#endif for(i=0; inColumn; i++){ Expr *pExpr = pAggInfo->aCol[i].pCExpr; if( pExpr==0 ) continue; @@ -151461,6 +152664,72 @@ static ExprList *sqlite3ExpandReturning( return pNew; } +/* If the Expr node is a subquery or an EXISTS operator or an IN operator that +** uses a subquery, and if the subquery is SF_Correlated, then mark the +** expression as EP_VarSelect. +*/ +static int sqlite3ReturningSubqueryVarSelect(Walker *NotUsed, Expr *pExpr){ + UNUSED_PARAMETER(NotUsed); + if( ExprUseXSelect(pExpr) + && (pExpr->x.pSelect->selFlags & SF_Correlated)!=0 + ){ + testcase( ExprHasProperty(pExpr, EP_VarSelect) ); + ExprSetProperty(pExpr, EP_VarSelect); + } + return WRC_Continue; +} + + +/* +** If the SELECT references the table pWalker->u.pTab, then do two things: +** +** (1) Mark the SELECT as as SF_Correlated. +** (2) Set pWalker->eCode to non-zero so that the caller will know +** that (1) has happened. +*/ +static int sqlite3ReturningSubqueryCorrelated(Walker *pWalker, Select *pSelect){ + int i; + SrcList *pSrc; + assert( pSelect!=0 ); + pSrc = pSelect->pSrc; + assert( pSrc!=0 ); + for(i=0; inSrc; i++){ + if( pSrc->a[i].pTab==pWalker->u.pTab ){ + testcase( pSelect->selFlags & SF_Correlated ); + pSelect->selFlags |= SF_Correlated; + pWalker->eCode = 1; + break; + } + } + return WRC_Continue; +} + +/* +** Scan the expression list that is the argument to RETURNING looking +** for subqueries that depend on the table which is being modified in the +** statement that is hosting the RETURNING clause (pTab). Mark all such +** subqueries as SF_Correlated. If the subqueries are part of an +** expression, mark the expression as EP_VarSelect. +** +** https://sqlite.org/forum/forumpost/2c83569ce8945d39 +*/ +static void sqlite3ProcessReturningSubqueries( + ExprList *pEList, + Table *pTab +){ + Walker w; + memset(&w, 0, sizeof(w)); + w.xExprCallback = sqlite3ExprWalkNoop; + w.xSelectCallback = sqlite3ReturningSubqueryCorrelated; + w.u.pTab = pTab; + sqlite3WalkExprList(&w, pEList); + if( w.eCode ){ + w.xExprCallback = sqlite3ReturningSubqueryVarSelect; + w.xSelectCallback = sqlite3SelectWalkNoop; + sqlite3WalkExprList(&w, pEList); + } +} + /* ** Generate code for the RETURNING trigger. Unlike other triggers ** that invoke a subprogram in the bytecode, the code for RETURNING @@ -151497,6 +152766,7 @@ static void codeReturningTrigger( sSelect.pSrc = &sFrom; sFrom.nSrc = 1; sFrom.a[0].pTab = pTab; + sFrom.a[0].zName = pTab->zName; /* tag-20240424-1 */ sFrom.a[0].iCursor = -1; sqlite3SelectPrep(pParse, &sSelect, 0); if( pParse->nErr==0 ){ @@ -151523,6 +152793,7 @@ static void codeReturningTrigger( int i; int nCol = pNew->nExpr; int reg = pParse->nMem+1; + sqlite3ProcessReturningSubqueries(pNew, pTab); pParse->nMem += nCol+2; pReturning->iRetReg = reg; for(i=0; ipUpsertIdx = pIdx; + if( sqlite3UpsertOfIndex(pAll,pIdx)!=pUpsert ){ + /* Really this should be an error. The isDup ON CONFLICT clause will + ** never fire. But this problem was not discovered until three years + ** after multi-CONFLICT upsert was added, and so we silently ignore + ** the problem to prevent breaking applications that might actually + ** have redundant ON CONFLICT clauses. */ + pUpsert->isDup = 1; + } break; } if( pUpsert->pUpsertIdx==0 ){ @@ -153590,9 +154873,13 @@ SQLITE_PRIVATE int sqlite3UpsertNextIsIPK(Upsert *pUpsert){ Upsert *pNext; if( NEVER(pUpsert==0) ) return 0; pNext = pUpsert->pNextUpsert; - if( pNext==0 ) return 1; - if( pNext->pUpsertTarget==0 ) return 1; - if( pNext->pUpsertIdx==0 ) return 1; + while( 1 /*exit-by-return*/ ){ + if( pNext==0 ) return 1; + if( pNext->pUpsertTarget==0 ) return 1; + if( pNext->pUpsertIdx==0 ) return 1; + if( !pNext->isDup ) return 0; + pNext = pNext->pNextUpsert; + } return 0; } @@ -154717,6 +156004,8 @@ static int vtabCallConstructor( db->pVtabCtx = &sCtx; pTab->nTabRef++; rc = xConstruct(db, pMod->pAux, nArg, azArg, &pVTable->pVtab, &zErr); + assert( pTab!=0 ); + assert( pTab->nTabRef>1 || rc!=SQLITE_OK ); sqlite3DeleteTable(db, pTab); db->pVtabCtx = sCtx.pPrior; if( rc==SQLITE_NOMEM ) sqlite3OomFault(db); @@ -154739,7 +156028,7 @@ static int vtabCallConstructor( pVTable->nRef = 1; if( sCtx.bDeclared==0 ){ const char *zFormat = "vtable constructor did not declare schema: %s"; - *pzErr = sqlite3MPrintf(db, zFormat, pTab->zName); + *pzErr = sqlite3MPrintf(db, zFormat, zModuleName); sqlite3VtabUnlock(pVTable); rc = SQLITE_ERROR; }else{ @@ -154917,12 +156206,30 @@ SQLITE_API int sqlite3_declare_vtab(sqlite3 *db, const char *zCreateTable){ Table *pTab; Parse sParse; int initBusy; + int i; + const unsigned char *z; + static const u8 aKeyword[] = { TK_CREATE, TK_TABLE, 0 }; #ifdef SQLITE_ENABLE_API_ARMOR if( !sqlite3SafetyCheckOk(db) || zCreateTable==0 ){ return SQLITE_MISUSE_BKPT; } #endif + + /* Verify that the first two keywords in the CREATE TABLE statement + ** really are "CREATE" and "TABLE". If this is not the case, then + ** sqlite3_declare_vtab() is being misused. + */ + z = (const unsigned char*)zCreateTable; + for(i=0; aKeyword[i]; i++){ + int tokenType = 0; + do{ z += sqlite3GetToken(z, &tokenType); }while( tokenType==TK_SPACE ); + if( tokenType!=aKeyword[i] ){ + sqlite3ErrorWithMsg(db, SQLITE_ERROR, "syntax error"); + return SQLITE_ERROR; + } + } + sqlite3_mutex_enter(db->mutex); pCtx = db->pVtabCtx; if( !pCtx || pCtx->bDeclared ){ @@ -154930,6 +156237,7 @@ SQLITE_API int sqlite3_declare_vtab(sqlite3 *db, const char *zCreateTable){ sqlite3_mutex_leave(db->mutex); return SQLITE_MISUSE_BKPT; } + pTab = pCtx->pTab; assert( IsVirtual(pTab) ); @@ -154943,11 +156251,10 @@ SQLITE_API int sqlite3_declare_vtab(sqlite3 *db, const char *zCreateTable){ initBusy = db->init.busy; db->init.busy = 0; sParse.nQueryLoop = 1; - if( SQLITE_OK==sqlite3RunParser(&sParse, zCreateTable) - && ALWAYS(sParse.pNewTable!=0) - && ALWAYS(!db->mallocFailed) - && IsOrdinaryTable(sParse.pNewTable) - ){ + if( SQLITE_OK==sqlite3RunParser(&sParse, zCreateTable) ){ + assert( sParse.pNewTable!=0 ); + assert( !db->mallocFailed ); + assert( IsOrdinaryTable(sParse.pNewTable) ); assert( sParse.zErrMsg==0 ); if( !pTab->aCol ){ Table *pNew = sParse.pNewTable; @@ -157442,6 +158749,27 @@ static SQLITE_NOINLINE void filterPullDown( } } +/* +** Loop pLoop is a WHERE_INDEXED level that uses at least one IN(...) +** operator. Return true if level pLoop is guaranteed to visit only one +** row for each key generated for the index. +*/ +static int whereLoopIsOneRow(WhereLoop *pLoop){ + if( pLoop->u.btree.pIndex->onError + && pLoop->nSkip==0 + && pLoop->u.btree.nEq==pLoop->u.btree.pIndex->nKeyCol + ){ + int ii; + for(ii=0; iiu.btree.nEq; ii++){ + if( pLoop->aLTerm[ii]->eOperator & (WO_IS|WO_ISNULL) ){ + return 0; + } + } + return 1; + } + return 0; +} + /* ** Generate code for the start of the iLevel-th loop in the WHERE clause ** implementation described by pWInfo. @@ -157520,7 +158848,7 @@ SQLITE_PRIVATE Bitmask sqlite3WhereCodeOneLoopStart( if( pLevel->iFrom>0 && (pTabItem[0].fg.jointype & JT_LEFT)!=0 ){ pLevel->iLeftJoin = ++pParse->nMem; sqlite3VdbeAddOp2(v, OP_Integer, 0, pLevel->iLeftJoin); - VdbeComment((v, "init LEFT JOIN no-match flag")); + VdbeComment((v, "init LEFT JOIN match flag")); } /* Compute a safe address to jump to if we discover that the table for @@ -158189,7 +159517,9 @@ SQLITE_PRIVATE Bitmask sqlite3WhereCodeOneLoopStart( } /* Record the instruction used to terminate the loop. */ - if( pLoop->wsFlags & WHERE_ONEROW ){ + if( (pLoop->wsFlags & WHERE_ONEROW) + || (pLevel->u.in.nIn && regBignull==0 && whereLoopIsOneRow(pLoop)) + ){ pLevel->op = OP_Noop; }else if( bRev ){ pLevel->op = OP_Prev; @@ -158579,6 +159909,12 @@ SQLITE_PRIVATE Bitmask sqlite3WhereCodeOneLoopStart( ** iLoop==3: Code all remaining expressions. ** ** An effort is made to skip unnecessary iterations of the loop. + ** + ** This optimization of causing simple query restrictions to occur before + ** more complex one is call the "push-down" optimization in MySQL. Here + ** in SQLite, the name is "MySQL push-down", since there is also another + ** totally unrelated optimization called "WHERE-clause push-down". + ** Sometimes the qualifier is omitted, resulting in an ambiguity, so beware. */ iLoop = (pIdx ? 1 : 2); do{ @@ -158829,7 +160165,16 @@ SQLITE_PRIVATE SQLITE_NOINLINE void sqlite3WhereRightJoinLoop( pRJ->regReturn); for(k=0; ka[k].pWLoop->iTab == pWInfo->a[k].iFrom ); + pRight = &pWInfo->pTabList->a[pWInfo->a[k].iFrom]; mAll |= pWInfo->a[k].pWLoop->maskSelf; + if( pRight->fg.viaCoroutine ){ + sqlite3VdbeAddOp3( + v, OP_Null, 0, pRight->regResult, + pRight->regResult + pRight->pSelect->pEList->nExpr-1 + ); + } sqlite3VdbeAddOp1(v, OP_NullRow, pWInfo->a[k].iTabCur); iIdxCur = pWInfo->a[k].iIdxCur; if( iIdxCur ){ @@ -159886,7 +161231,7 @@ static SQLITE_NOINLINE int exprMightBeIndexed2( if( pIdx->aiColumn[i]!=XN_EXPR ) continue; assert( pIdx->bHasExpr ); if( sqlite3ExprCompareSkip(pExpr,pIdx->aColExpr->a[i].pExpr,iCur)==0 - && pExpr->op!=TK_STRING + && !sqlite3ExprIsConstant(0,pIdx->aColExpr->a[i].pExpr) ){ aiCurCol[0] = iCur; aiCurCol[1] = XN_EXPR; @@ -160535,6 +161880,7 @@ SQLITE_PRIVATE void SQLITE_NOINLINE sqlite3WhereAddLimit(WhereClause *pWC, Selec continue; } if( pWC->a[ii].leftCursor!=iCsr ) return; + if( pWC->a[ii].prereqRight!=0 ) return; } /* Check condition (5). Return early if it is not met. */ @@ -160549,12 +161895,14 @@ SQLITE_PRIVATE void SQLITE_NOINLINE sqlite3WhereAddLimit(WhereClause *pWC, Selec /* All conditions are met. Add the terms to the where-clause object. */ assert( p->pLimit->op==TK_LIMIT ); - whereAddLimitExpr(pWC, p->iLimit, p->pLimit->pLeft, - iCsr, SQLITE_INDEX_CONSTRAINT_LIMIT); - if( p->iOffset>0 ){ + if( p->iOffset!=0 && (p->selFlags & SF_Compound)==0 ){ whereAddLimitExpr(pWC, p->iOffset, p->pLimit->pRight, iCsr, SQLITE_INDEX_CONSTRAINT_OFFSET); } + if( p->iOffset==0 || (p->selFlags & SF_Compound)==0 ){ + whereAddLimitExpr(pWC, p->iLimit, p->pLimit->pLeft, + iCsr, SQLITE_INDEX_CONSTRAINT_LIMIT); + } } } @@ -161072,6 +162420,42 @@ static Expr *whereRightSubexprIsColumn(Expr *p){ return 0; } +/* +** Term pTerm is guaranteed to be a WO_IN term. It may be a component term +** of a vector IN expression of the form "(x, y, ...) IN (SELECT ...)". +** This function checks to see if the term is compatible with an index +** column with affinity idxaff (one of the SQLITE_AFF_XYZ values). If so, +** it returns a pointer to the name of the collation sequence (e.g. "BINARY" +** or "NOCASE") used by the comparison in pTerm. If it is not compatible +** with affinity idxaff, NULL is returned. +*/ +static SQLITE_NOINLINE const char *indexInAffinityOk( + Parse *pParse, + WhereTerm *pTerm, + u8 idxaff +){ + Expr *pX = pTerm->pExpr; + Expr inexpr; + + assert( pTerm->eOperator & WO_IN ); + + if( sqlite3ExprIsVector(pX->pLeft) ){ + int iField = pTerm->u.x.iField - 1; + inexpr.flags = 0; + inexpr.op = TK_EQ; + inexpr.pLeft = pX->pLeft->x.pList->a[iField].pExpr; + assert( ExprUseXSelect(pX) ); + inexpr.pRight = pX->x.pSelect->pEList->a[iField].pExpr; + pX = &inexpr; + } + + if( sqlite3IndexAffinityOk(pX, idxaff) ){ + CollSeq *pRet = sqlite3ExprCompareCollSeq(pParse, pX); + return pRet ? pRet->zName : sqlite3StrBINARY; + } + return 0; +} + /* ** Advance to the next WhereTerm that matches according to the criteria ** established when the pScan object was initialized by whereScanInit(). @@ -161122,16 +162506,24 @@ static WhereTerm *whereScanNext(WhereScan *pScan){ if( (pTerm->eOperator & pScan->opMask)!=0 ){ /* Verify the affinity and collating sequence match */ if( pScan->zCollName && (pTerm->eOperator & WO_ISNULL)==0 ){ - CollSeq *pColl; + const char *zCollName; Parse *pParse = pWC->pWInfo->pParse; pX = pTerm->pExpr; - if( !sqlite3IndexAffinityOk(pX, pScan->idxaff) ){ - continue; + + if( (pTerm->eOperator & WO_IN) ){ + zCollName = indexInAffinityOk(pParse, pTerm, pScan->idxaff); + if( !zCollName ) continue; + }else{ + CollSeq *pColl; + if( !sqlite3IndexAffinityOk(pX, pScan->idxaff) ){ + continue; + } + assert(pX->pLeft); + pColl = sqlite3ExprCompareCollSeq(pParse, pX); + zCollName = pColl ? pColl->zName : sqlite3StrBINARY; } - assert(pX->pLeft); - pColl = sqlite3ExprCompareCollSeq(pParse, pX); - if( pColl==0 ) pColl = pParse->db->pDfltColl; - if( sqlite3StrICmp(pColl->zName, pScan->zCollName) ){ + + if( sqlite3StrICmp(zCollName, pScan->zCollName) ){ continue; } } @@ -161483,9 +162875,13 @@ static void translateColumnToCopy( ** are no-ops. */ #if !defined(SQLITE_OMIT_VIRTUALTABLE) && defined(WHERETRACE_ENABLED) -static void whereTraceIndexInfoInputs(sqlite3_index_info *p){ +static void whereTraceIndexInfoInputs( + sqlite3_index_info *p, /* The IndexInfo object */ + Table *pTab /* The TABLE that is the virtual table */ +){ int i; if( (sqlite3WhereTrace & 0x10)==0 ) return; + sqlite3DebugPrintf("sqlite3_index_info inputs for %s:\n", pTab->zName); for(i=0; inConstraint; i++){ sqlite3DebugPrintf( " constraint[%d]: col=%d termid=%d op=%d usabled=%d collseq=%s\n", @@ -161503,9 +162899,13 @@ static void whereTraceIndexInfoInputs(sqlite3_index_info *p){ p->aOrderBy[i].desc); } } -static void whereTraceIndexInfoOutputs(sqlite3_index_info *p){ +static void whereTraceIndexInfoOutputs( + sqlite3_index_info *p, /* The IndexInfo object */ + Table *pTab /* The TABLE that is the virtual table */ +){ int i; if( (sqlite3WhereTrace & 0x10)==0 ) return; + sqlite3DebugPrintf("sqlite3_index_info outputs for %s:\n", pTab->zName); for(i=0; inConstraint; i++){ sqlite3DebugPrintf(" usage[%d]: argvIdx=%d omit=%d\n", i, @@ -161519,8 +162919,8 @@ static void whereTraceIndexInfoOutputs(sqlite3_index_info *p){ sqlite3DebugPrintf(" estimatedRows=%lld\n", p->estimatedRows); } #else -#define whereTraceIndexInfoInputs(A) -#define whereTraceIndexInfoOutputs(A) +#define whereTraceIndexInfoInputs(A,B) +#define whereTraceIndexInfoOutputs(A,B) #endif /* @@ -161704,7 +163104,7 @@ static SQLITE_NOINLINE void constructAutomaticIndex( ** WHERE clause (or the ON clause of a LEFT join) that constrain which ** rows of the target table (pSrc) that can be used. */ if( (pTerm->wtFlags & TERM_VIRTUAL)==0 - && sqlite3ExprIsSingleTableConstraint(pExpr, pTabList, pLevel->iFrom) + && sqlite3ExprIsSingleTableConstraint(pExpr, pTabList, pLevel->iFrom, 0) ){ pPartial = sqlite3ExprAnd(pParse, pPartial, sqlite3ExprDup(pParse->db, pExpr, 0)); @@ -161746,7 +163146,7 @@ static SQLITE_NOINLINE void constructAutomaticIndex( ** if they go out of sync. */ if( IsView(pTable) ){ - extraCols = ALLBITS; + extraCols = ALLBITS & ~idxCols; }else{ extraCols = pSrc->colUsed & (~idxCols | MASKBIT(BMS-1)); } @@ -161973,7 +163373,7 @@ static SQLITE_NOINLINE void sqlite3ConstructBloomFilter( for(pTerm=pWInfo->sWC.a; pTermpExpr; if( (pTerm->wtFlags & TERM_VIRTUAL)==0 - && sqlite3ExprIsSingleTableConstraint(pExpr, pTabList, iSrc) + && sqlite3ExprIsSingleTableConstraint(pExpr, pTabList, iSrc, 0) ){ sqlite3ExprIfFalse(pParse, pTerm->pExpr, addrCont, SQLITE_JUMPIFNULL); } @@ -162099,7 +163499,7 @@ static sqlite3_index_info *allocateIndexInfo( Expr *pE2; /* Skip over constant terms in the ORDER BY clause */ - if( sqlite3ExprIsConstant(pExpr) ){ + if( sqlite3ExprIsConstant(0, pExpr) ){ continue; } @@ -162134,7 +163534,7 @@ static sqlite3_index_info *allocateIndexInfo( } if( i==n ){ nOrderBy = n; - if( (pWInfo->wctrlFlags & WHERE_DISTINCTBY) ){ + if( (pWInfo->wctrlFlags & WHERE_DISTINCTBY) && !pSrc->fg.rowidUsed ){ eDistinct = 2 + ((pWInfo->wctrlFlags & WHERE_SORTBYGROUP)!=0); }else if( pWInfo->wctrlFlags & WHERE_GROUPBY ){ eDistinct = 1; @@ -162211,7 +163611,7 @@ static sqlite3_index_info *allocateIndexInfo( pIdxInfo->nConstraint = j; for(i=j=0; ia[i].pExpr; - if( sqlite3ExprIsConstant(pExpr) ) continue; + if( sqlite3ExprIsConstant(0, pExpr) ) continue; assert( pExpr->op==TK_COLUMN || (pExpr->op==TK_COLLATE && pExpr->pLeft->op==TK_COLUMN && pExpr->iColumn==pExpr->pLeft->iColumn) ); @@ -162263,11 +163663,11 @@ static int vtabBestIndex(Parse *pParse, Table *pTab, sqlite3_index_info *p){ sqlite3_vtab *pVtab = sqlite3GetVTable(pParse->db, pTab)->pVtab; int rc; - whereTraceIndexInfoInputs(p); + whereTraceIndexInfoInputs(p, pTab); pParse->db->nSchemaLock++; rc = pVtab->pModule->xBestIndex(pVtab, p); pParse->db->nSchemaLock--; - whereTraceIndexInfoOutputs(p); + whereTraceIndexInfoOutputs(p, pTab); if( rc!=SQLITE_OK && rc!=SQLITE_CONSTRAINT ){ if( rc==SQLITE_NOMEM ){ @@ -163745,7 +165145,9 @@ static int whereLoopAddBtreeIndex( } if( pProbe->bUnordered || pProbe->bLowQual ){ if( pProbe->bUnordered ) opMask &= ~(WO_GT|WO_GE|WO_LT|WO_LE); - if( pProbe->bLowQual ) opMask &= ~(WO_EQ|WO_IN|WO_IS); + if( pProbe->bLowQual && pSrc->fg.isIndexedBy==0 ){ + opMask &= ~(WO_EQ|WO_IN|WO_IS); + } } assert( pNew->u.btree.nEqnColumn ); @@ -164012,10 +165414,13 @@ static int whereLoopAddBtreeIndex( } } - /* Set rCostIdx to the cost of visiting selected rows in index. Add - ** it to pNew->rRun, which is currently set to the cost of the index - ** seek only. Then, if this is a non-covering index, add the cost of - ** visiting the rows in the main table. */ + /* Set rCostIdx to the estimated cost of visiting selected rows in the + ** index. The estimate is the sum of two values: + ** 1. The cost of doing one search-by-key to find the first matching + ** entry + ** 2. Stepping forward in the index pNew->nOut times to find all + ** additional matching entries. + */ assert( pSrc->pTab->szTabRow>0 ); if( pProbe->idxType==SQLITE_IDXTYPE_IPK ){ /* The pProbe->szIdxRow is low for an IPK table since the interior @@ -164026,7 +165431,15 @@ static int whereLoopAddBtreeIndex( }else{ rCostIdx = pNew->nOut + 1 + (15*pProbe->szIdxRow)/pSrc->pTab->szTabRow; } - pNew->rRun = sqlite3LogEstAdd(rLogSize, rCostIdx); + rCostIdx = sqlite3LogEstAdd(rLogSize, rCostIdx); + + /* Estimate the cost of running the loop. If all data is coming + ** from the index, then this is just the cost of doing the index + ** lookup and scan. But if some data is coming out of the main table, + ** we also have to add in the cost of doing pNew->nOut searches to + ** locate the row in the main table that corresponds to the index entry. + */ + pNew->rRun = rCostIdx; if( (pNew->wsFlags & (WHERE_IDX_ONLY|WHERE_IPK|WHERE_EXPRIDX))==0 ){ pNew->rRun = sqlite3LogEstAdd(pNew->rRun, pNew->nOut + 16); } @@ -164132,7 +165545,9 @@ static int indexMightHelpWithOrderBy( for(ii=0; iinExpr; ii++){ Expr *pExpr = sqlite3ExprSkipCollateAndLikely(pOB->a[ii].pExpr); if( NEVER(pExpr==0) ) continue; - if( pExpr->op==TK_COLUMN && pExpr->iTable==iCursor ){ + if( (pExpr->op==TK_COLUMN || pExpr->op==TK_AGG_COLUMN) + && pExpr->iTable==iCursor + ){ if( pExpr->iColumn<0 ) return 1; for(jj=0; jjnKeyCol; jj++){ if( pExpr->iColumn==pIndex->aiColumn[jj] ) return 1; @@ -164389,7 +165804,7 @@ static void wherePartIdxExpr( u8 aff; if( pLeft->op!=TK_COLUMN ) return; - if( !sqlite3ExprIsConstant(pRight) ) return; + if( !sqlite3ExprIsConstant(0, pRight) ) return; if( !sqlite3IsBinary(sqlite3ExprCompareCollSeq(pParse, pPart)) ) return; if( pLeft->iColumn<0 ) return; aff = pIdx->pTable->aCol[pLeft->iColumn].affinity; @@ -164662,7 +166077,9 @@ static int whereLoopAddBtree( " according to whereIsCoveringIndex()\n", pProbe->zName)); } } - }else if( m==0 ){ + }else if( m==0 + && (HasRowid(pTab) || pWInfo->pSelect!=0 || sqlite3FaultSim(700)) + ){ WHERETRACE(0x200, ("-> %s a covering index according to bitmasks\n", pProbe->zName, m==0 ? "is" : "is not")); @@ -164738,7 +166155,7 @@ static int whereLoopAddBtree( ** unique index is used (making the index functionally non-unique) ** then the sqlite_stat1 data becomes important for scoring the ** plan */ - pTab->tabFlags |= TF_StatsUsed; + pTab->tabFlags |= TF_MaybeReanalyze; } #ifdef SQLITE_ENABLE_STAT4 sqlite3Stat4ProbeFree(pBuilder->pRec); @@ -164760,6 +166177,21 @@ static int isLimitTerm(WhereTerm *pTerm){ && pTerm->eMatchOp<=SQLITE_INDEX_CONSTRAINT_OFFSET; } +/* +** Return true if the first nCons constraints in the pUsage array are +** marked as in-use (have argvIndex>0). False otherwise. +*/ +static int allConstraintsUsed( + struct sqlite3_index_constraint_usage *aUsage, + int nCons +){ + int ii; + for(ii=0; iipNew->iTab. This @@ -164900,13 +166332,20 @@ static int whereLoopAddVirtualOne( *pbIn = 1; assert( (mExclude & WO_IN)==0 ); } + /* Unless pbRetryLimit is non-NULL, there should be no LIMIT/OFFSET + ** terms. And if there are any, they should follow all other terms. */ assert( pbRetryLimit || !isLimitTerm(pTerm) ); - if( isLimitTerm(pTerm) && *pbIn ){ + assert( !isLimitTerm(pTerm) || i>=nConstraint-2 ); + assert( !isLimitTerm(pTerm) || i==nConstraint-1 || isLimitTerm(pTerm+1) ); + + if( isLimitTerm(pTerm) && (*pbIn || !allConstraintsUsed(pUsage, i)) ){ /* If there is an IN(...) term handled as an == (separate call to ** xFilter for each value on the RHS of the IN) and a LIMIT or - ** OFFSET term handled as well, the plan is unusable. Set output - ** variable *pbRetryLimit to true to tell the caller to retry with - ** LIMIT and OFFSET disabled. */ + ** OFFSET term handled as well, the plan is unusable. Similarly, + ** if there is a LIMIT/OFFSET and there are other unused terms, + ** the plan cannot be used. In these cases set variable *pbRetryLimit + ** to true to tell the caller to retry with LIMIT and OFFSET + ** disabled. */ if( pIdxInfo->needToFreeIdxStr ){ sqlite3_free(pIdxInfo->idxStr); pIdxInfo->idxStr = 0; @@ -165763,7 +167202,7 @@ static i8 wherePathSatisfiesOrderBy( if( MASKBIT(i) & obSat ) continue; p = pOrderBy->a[i].pExpr; mTerm = sqlite3WhereExprUsage(&pWInfo->sMaskSet,p); - if( mTerm==0 && !sqlite3ExprIsConstant(p) ) continue; + if( mTerm==0 && !sqlite3ExprIsConstant(0,p) ) continue; if( (mTerm&~orderDistinctMask)==0 ){ obSat |= MASKBIT(i); } @@ -166232,10 +167671,9 @@ static int wherePathSolver(WhereInfo *pWInfo, LogEst nRowEst){ if( pFrom->isOrdered==pWInfo->pOrderBy->nExpr ){ pWInfo->eDistinct = WHERE_DISTINCT_ORDERED; } - if( pWInfo->pSelect->pOrderBy - && pWInfo->nOBSat > pWInfo->pSelect->pOrderBy->nExpr ){ - pWInfo->nOBSat = pWInfo->pSelect->pOrderBy->nExpr; - } + /* vvv--- See check-in [12ad822d9b827777] on 2023-03-16 ---vvv */ + assert( pWInfo->pSelect->pOrderBy==0 + || pWInfo->nOBSat <= pWInfo->pSelect->pOrderBy->nExpr ); }else{ pWInfo->revMask = pFrom->revLoop; if( pWInfo->nOBSat<=0 ){ @@ -166278,7 +167716,6 @@ static int wherePathSolver(WhereInfo *pWInfo, LogEst nRowEst){ } } - pWInfo->nRowOut = pFrom->nRow; /* Free temporary memory and return success */ @@ -166286,6 +167723,83 @@ static int wherePathSolver(WhereInfo *pWInfo, LogEst nRowEst){ return SQLITE_OK; } +/* +** This routine implements a heuristic designed to improve query planning. +** This routine is called in between the first and second call to +** wherePathSolver(). Hence the name "Interstage" "Heuristic". +** +** The first call to wherePathSolver() (hereafter just "solver()") computes +** the best path without regard to the order of the outputs. The second call +** to the solver() builds upon the first call to try to find an alternative +** path that satisfies the ORDER BY clause. +** +** This routine looks at the results of the first solver() run, and for +** every FROM clause term in the resulting query plan that uses an equality +** constraint against an index, disable other WhereLoops for that same +** FROM clause term that would try to do a full-table scan. This prevents +** an index search from being converted into a full-table scan in order to +** satisfy an ORDER BY clause, since even though we might get slightly better +** performance using the full-scan without sorting if the output size +** estimates are very precise, we might also get severe performance +** degradation using the full-scan if the output size estimate is too large. +** It is better to err on the side of caution. +** +** Except, if the first solver() call generated a full-table scan in an outer +** loop then stop this analysis at the first full-scan, since the second +** solver() run might try to swap that full-scan for another in order to +** get the output into the correct order. In other words, we allow a +** rewrite like this: +** +** First Solver() Second Solver() +** |-- SCAN t1 |-- SCAN t2 +** |-- SEARCH t2 `-- SEARCH t1 +** `-- SORT USING B-TREE +** +** The purpose of this routine is to disallow rewrites such as: +** +** First Solver() Second Solver() +** |-- SEARCH t1 |-- SCAN t2 <--- bad! +** |-- SEARCH t2 `-- SEARCH t1 +** `-- SORT USING B-TREE +** +** See test cases in test/whereN.test for the real-world query that +** originally provoked this heuristic. +*/ +static SQLITE_NOINLINE void whereInterstageHeuristic(WhereInfo *pWInfo){ + int i; +#ifdef WHERETRACE_ENABLED + int once = 0; +#endif + for(i=0; inLevel; i++){ + WhereLoop *p = pWInfo->a[i].pWLoop; + if( p==0 ) break; + if( (p->wsFlags & WHERE_VIRTUALTABLE)!=0 ) continue; + if( (p->wsFlags & (WHERE_COLUMN_EQ|WHERE_COLUMN_NULL|WHERE_COLUMN_IN))!=0 ){ + u8 iTab = p->iTab; + WhereLoop *pLoop; + for(pLoop=pWInfo->pLoops; pLoop; pLoop=pLoop->pNextLoop){ + if( pLoop->iTab!=iTab ) continue; + if( (pLoop->wsFlags & (WHERE_CONSTRAINT|WHERE_AUTO_INDEX))!=0 ){ + /* Auto-index and index-constrained loops allowed to remain */ + continue; + } +#ifdef WHERETRACE_ENABLED + if( sqlite3WhereTrace & 0x80 ){ + if( once==0 ){ + sqlite3DebugPrintf("Loops disabled by interstage heuristic:\n"); + once = 1; + } + sqlite3WhereLoopPrint(pLoop, &pWInfo->sWC); + } +#endif /* WHERETRACE_ENABLED */ + pLoop->prereq = ALLBITS; /* Prevent 2nd solver() from using this one */ + } + }else{ + break; + } + } +} + /* ** Most queries use only a single table (they are not joins) and have ** simple == constraints against indexed fields. This routine attempts @@ -166454,6 +167968,10 @@ static void showAllWhereLoops(WhereInfo *pWInfo, WhereClause *pWC){ ** the right-most table of a subquery that was flattened into the ** main query and that subquery was the right-hand operand of an ** inner join that held an ON or USING clause. +** 6) The ORDER BY clause has 63 or fewer terms +** 7) The omit-noop-join optimization is enabled. +** +** Items (1), (6), and (7) are checked by the caller. ** ** For example, given: ** @@ -166574,7 +168092,7 @@ static SQLITE_NOINLINE void whereCheckIfBloomFilterIsUseful( SrcItem *pItem = &pWInfo->pTabList->a[pLoop->iTab]; Table *pTab = pItem->pTab; if( (pTab->tabFlags & TF_HasStat1)==0 ) break; - pTab->tabFlags |= TF_StatsUsed; + pTab->tabFlags |= TF_MaybeReanalyze; if( i>=1 && (pLoop->wsFlags & reqFlags)==reqFlags /* vvvvvv--- Always the case if WHERE_COLUMN_EQ is defined */ @@ -166595,6 +168113,58 @@ static SQLITE_NOINLINE void whereCheckIfBloomFilterIsUseful( } } +/* +** Expression Node callback for sqlite3ExprCanReturnSubtype(). +** +** Only a function call is able to return a subtype. So if the node +** is not a function call, return WRC_Prune immediately. +** +** A function call is able to return a subtype if it has the +** SQLITE_RESULT_SUBTYPE property. +** +** Assume that every function is able to pass-through a subtype from +** one of its argument (using sqlite3_result_value()). Most functions +** are not this way, but we don't have a mechanism to distinguish those +** that are from those that are not, so assume they all work this way. +** That means that if one of its arguments is another function and that +** other function is able to return a subtype, then this function is +** able to return a subtype. +*/ +static int exprNodeCanReturnSubtype(Walker *pWalker, Expr *pExpr){ + int n; + FuncDef *pDef; + sqlite3 *db; + if( pExpr->op!=TK_FUNCTION ){ + return WRC_Prune; + } + assert( ExprUseXList(pExpr) ); + db = pWalker->pParse->db; + n = pExpr->x.pList ? pExpr->x.pList->nExpr : 0; + pDef = sqlite3FindFunction(db, pExpr->u.zToken, n, ENC(db), 0); + if( pDef==0 || (pDef->funcFlags & SQLITE_RESULT_SUBTYPE)!=0 ){ + pWalker->eCode = 1; + return WRC_Prune; + } + return WRC_Continue; +} + +/* +** Return TRUE if expression pExpr is able to return a subtype. +** +** A TRUE return does not guarantee that a subtype will be returned. +** It only indicates that a subtype return is possible. False positives +** are acceptable as they only disable an optimization. False negatives, +** on the other hand, can lead to incorrect answers. +*/ +static int sqlite3ExprCanReturnSubtype(Parse *pParse, Expr *pExpr){ + Walker w; + memset(&w, 0, sizeof(w)); + w.pParse = pParse; + w.xExprCallback = exprNodeCanReturnSubtype; + sqlite3WalkExpr(&w, pExpr); + return w.eCode; +} + /* ** The index pIdx is used by a query and contains one or more expressions. ** In other words pIdx is an index on an expression. iIdxCur is the cursor @@ -166620,33 +168190,19 @@ static SQLITE_NOINLINE void whereAddIndexedExpr( for(i=0; inColumn; i++){ Expr *pExpr; int j = pIdx->aiColumn[i]; - int bMaybeNullRow; if( j==XN_EXPR ){ pExpr = pIdx->aColExpr->a[i].pExpr; - testcase( pTabItem->fg.jointype & JT_LEFT ); - testcase( pTabItem->fg.jointype & JT_RIGHT ); - testcase( pTabItem->fg.jointype & JT_LTORJ ); - bMaybeNullRow = (pTabItem->fg.jointype & (JT_LEFT|JT_LTORJ|JT_RIGHT))!=0; }else if( j>=0 && (pTab->aCol[j].colFlags & COLFLAG_VIRTUAL)!=0 ){ pExpr = sqlite3ColumnExpr(pTab, &pTab->aCol[j]); - bMaybeNullRow = 0; }else{ continue; } - if( sqlite3ExprIsConstant(pExpr) ) continue; - if( pExpr->op==TK_FUNCTION ){ + if( sqlite3ExprIsConstant(0,pExpr) ) continue; + if( pExpr->op==TK_FUNCTION && sqlite3ExprCanReturnSubtype(pParse,pExpr) ){ /* Functions that might set a subtype should not be replaced by the ** value taken from an expression index since the index omits the ** subtype. https://sqlite.org/forum/forumpost/68d284c86b082c3e */ - int n; - FuncDef *pDef; - sqlite3 *db = pParse->db; - assert( ExprUseXList(pExpr) ); - n = pExpr->x.pList ? pExpr->x.pList->nExpr : 0; - pDef = sqlite3FindFunction(db, pExpr->u.zToken, n, ENC(db), 0); - if( pDef==0 || (pDef->funcFlags & SQLITE_RESULT_SUBTYPE)!=0 ){ - continue; - } + continue; } p = sqlite3DbMallocRaw(pParse->db, sizeof(IndexedExpr)); if( p==0 ) break; @@ -166661,7 +168217,7 @@ static SQLITE_NOINLINE void whereAddIndexedExpr( p->iDataCur = pTabItem->iCursor; p->iIdxCur = iIdxCur; p->iIdxCol = i; - p->bMaybeNullRow = bMaybeNullRow; + p->bMaybeNullRow = (pTabItem->fg.jointype & (JT_LEFT|JT_LTORJ|JT_RIGHT))!=0; if( sqlite3IndexAffinityStr(pParse->db, pIdx) ){ p->aff = pIdx->zColAff[i]; } @@ -166829,6 +168385,7 @@ SQLITE_PRIVATE WhereInfo *sqlite3WhereBegin( if( pOrderBy && pOrderBy->nExpr>=BMS ){ pOrderBy = 0; wctrlFlags &= ~WHERE_WANT_DISTINCT; + wctrlFlags |= WHERE_KEEP_ALL_JOINS; /* Disable omit-noop-join opt */ } /* The number of tables in the FROM clause is limited by the number of @@ -166911,7 +168468,11 @@ SQLITE_PRIVATE WhereInfo *sqlite3WhereBegin( ){ pWInfo->eDistinct = WHERE_DISTINCT_UNIQUE; } - ExplainQueryPlan((pParse, 0, "SCAN CONSTANT ROW")); + if( ALWAYS(pWInfo->pSelect) + && (pWInfo->pSelect->selFlags & SF_MultiValue)==0 + ){ + ExplainQueryPlan((pParse, 0, "SCAN CONSTANT ROW")); + } }else{ /* Assign a bit from the bitmask to every term in the FROM clause. ** @@ -167064,6 +168625,7 @@ SQLITE_PRIVATE WhereInfo *sqlite3WhereBegin( wherePathSolver(pWInfo, 0); if( db->mallocFailed ) goto whereBeginError; if( pWInfo->pOrderBy ){ + whereInterstageHeuristic(pWInfo); wherePathSolver(pWInfo, pWInfo->nRowOut+1); if( db->mallocFailed ) goto whereBeginError; } @@ -167124,10 +168686,10 @@ SQLITE_PRIVATE WhereInfo *sqlite3WhereBegin( ** in-line sqlite3WhereCodeOneLoopStart() for performance reasons. */ notReady = ~(Bitmask)0; - if( pWInfo->nLevel>=2 - && pResultSet!=0 /* these two combine to guarantee */ - && 0==(wctrlFlags & WHERE_AGG_DISTINCT) /* condition (1) above */ - && OptimizationEnabled(db, SQLITE_OmitNoopJoin) + if( pWInfo->nLevel>=2 /* Must be a join, or this opt8n is pointless */ + && pResultSet!=0 /* Condition (1) */ + && 0==(wctrlFlags & (WHERE_AGG_DISTINCT|WHERE_KEEP_ALL_JOINS)) /* (1),(6) */ + && OptimizationEnabled(db, SQLITE_OmitNoopJoin) /* (7) */ ){ notReady = whereOmitNoopJoin(pWInfo, notReady); nTabList = pWInfo->nLevel; @@ -167447,26 +169009,6 @@ SQLITE_PRIVATE WhereInfo *sqlite3WhereBegin( } #endif -#ifdef SQLITE_DEBUG -/* -** Return true if cursor iCur is opened by instruction k of the -** bytecode. Used inside of assert() only. -*/ -static int cursorIsOpen(Vdbe *v, int iCur, int k){ - while( k>=0 ){ - VdbeOp *pOp = sqlite3VdbeGetOp(v,k--); - if( pOp->p1!=iCur ) continue; - if( pOp->opcode==OP_Close ) return 0; - if( pOp->opcode==OP_OpenRead ) return 1; - if( pOp->opcode==OP_OpenWrite ) return 1; - if( pOp->opcode==OP_OpenDup ) return 1; - if( pOp->opcode==OP_OpenAutoindex ) return 1; - if( pOp->opcode==OP_OpenEphemeral ) return 1; - } - return 0; -} -#endif /* SQLITE_DEBUG */ - /* ** Generate the end of the WHERE loop. See comments on ** sqlite3WhereBegin() for additional information. @@ -167613,7 +169155,15 @@ SQLITE_PRIVATE void sqlite3WhereEnd(WhereInfo *pWInfo){ addr = sqlite3VdbeAddOp1(v, OP_IfPos, pLevel->iLeftJoin); VdbeCoverage(v); assert( (ws & WHERE_IDX_ONLY)==0 || (ws & WHERE_INDEXED)!=0 ); if( (ws & WHERE_IDX_ONLY)==0 ){ - assert( pLevel->iTabCur==pTabList->a[pLevel->iFrom].iCursor ); + SrcItem *pSrc = &pTabList->a[pLevel->iFrom]; + assert( pLevel->iTabCur==pSrc->iCursor ); + if( pSrc->fg.viaCoroutine ){ + int m, n; + n = pSrc->regResult; + assert( pSrc->pTab!=0 ); + m = pSrc->pTab->nCol; + sqlite3VdbeAddOp3(v, OP_Null, 0, n, n+m-1); + } sqlite3VdbeAddOp1(v, OP_NullRow, pLevel->iTabCur); } if( (ws & WHERE_INDEXED) @@ -167663,6 +169213,7 @@ SQLITE_PRIVATE void sqlite3WhereEnd(WhereInfo *pWInfo){ */ if( pTabItem->fg.viaCoroutine ){ testcase( pParse->db->mallocFailed ); + assert( pTabItem->regResult>=0 ); translateColumnToCopy(pParse, pLevel->addrBody, pLevel->iTabCur, pTabItem->regResult, 0); continue; @@ -167757,16 +169308,10 @@ SQLITE_PRIVATE void sqlite3WhereEnd(WhereInfo *pWInfo){ ** reference. Verify that this is harmless - that the ** table being referenced really is open. */ -#ifdef SQLITE_ENABLE_OFFSET_SQL_FUNC - assert( (pLoop->wsFlags & WHERE_IDX_ONLY)==0 - || cursorIsOpen(v,pOp->p1,k) - || pOp->opcode==OP_Offset - ); -#else - assert( (pLoop->wsFlags & WHERE_IDX_ONLY)==0 - || cursorIsOpen(v,pOp->p1,k) - ); -#endif + if( pLoop->wsFlags & WHERE_IDX_ONLY ){ + sqlite3ErrorMsg(pParse, "internal query planner error"); + pParse->rc = SQLITE_INTERNAL; + } } }else if( pOp->opcode==OP_Rowid ){ pOp->p1 = pLevel->iIdxCur; @@ -168967,7 +170512,7 @@ SQLITE_PRIVATE void sqlite3WindowListDelete(sqlite3 *db, Window *p){ ** variable values in the expression tree. */ static Expr *sqlite3WindowOffsetExpr(Parse *pParse, Expr *pExpr){ - if( 0==sqlite3ExprIsConstant(pExpr) ){ + if( 0==sqlite3ExprIsConstant(0,pExpr) ){ if( IN_RENAME_OBJECT ) sqlite3RenameExprUnmap(pParse, pExpr); sqlite3ExprDelete(pParse->db, pExpr); pExpr = sqlite3ExprAlloc(pParse->db, TK_NULL, 0, 0); @@ -171037,9 +172582,9 @@ static void updateDeleteLimitError( break; } } - if( (p->selFlags & SF_MultiValue)==0 && - (mxSelect = pParse->db->aLimit[SQLITE_LIMIT_COMPOUND_SELECT])>0 && - cnt>mxSelect + if( (p->selFlags & (SF_MultiValue|SF_Values))==0 + && (mxSelect = pParse->db->aLimit[SQLITE_LIMIT_COMPOUND_SELECT])>0 + && cnt>mxSelect ){ sqlite3ErrorMsg(pParse, "too many terms in compound SELECT"); } @@ -171059,6 +172604,14 @@ static void updateDeleteLimitError( return pSelect; } + /* Memory allocator for parser stack resizing. This is a thin wrapper around + ** sqlite3_realloc() that includes a call to sqlite3FaultSim() to facilitate + ** testing. + */ + static void *parserStackRealloc(void *pOld, sqlite3_uint64 newSize){ + return sqlite3FaultSim(700) ? 0 : sqlite3_realloc(pOld, newSize); + } + /* Construct a new Expr object from a single token */ static Expr *tokenExpr(Parse *pParse, int op, Token t){ @@ -171308,8 +172861,8 @@ static void updateDeleteLimitError( #define TK_TRUEFALSE 170 #define TK_ISNOT 171 #define TK_FUNCTION 172 -#define TK_UMINUS 173 -#define TK_UPLUS 174 +#define TK_UPLUS 173 +#define TK_UMINUS 174 #define TK_TRUTH 175 #define TK_REGISTER 176 #define TK_VECTOR 177 @@ -171318,8 +172871,9 @@ static void updateDeleteLimitError( #define TK_ASTERISK 180 #define TK_SPAN 181 #define TK_ERROR 182 -#define TK_SPACE 183 -#define TK_ILLEGAL 184 +#define TK_QNUMBER 183 +#define TK_SPACE 184 +#define TK_ILLEGAL 185 #endif /**************** End token definitions ***************************************/ @@ -171360,6 +172914,9 @@ static void updateDeleteLimitError( ** sqlite3ParserARG_STORE Code to store %extra_argument into yypParser ** sqlite3ParserARG_FETCH Code to extract %extra_argument from yypParser ** sqlite3ParserCTX_* As sqlite3ParserARG_ except for %extra_context +** YYREALLOC Name of the realloc() function to use +** YYFREE Name of the free() function to use +** YYDYNSTACK True if stack space should be extended on heap ** YYERRORSYMBOL is the code number of the error symbol. If not ** defined, then do no error processing. ** YYNSTATE the combined number of states. @@ -171373,37 +172930,39 @@ static void updateDeleteLimitError( ** YY_NO_ACTION The yy_action[] code for no-op ** YY_MIN_REDUCE Minimum value for reduce actions ** YY_MAX_REDUCE Maximum value for reduce actions +** YY_MIN_DSTRCTR Minimum symbol value that has a destructor +** YY_MAX_DSTRCTR Maximum symbol value that has a destructor */ #ifndef INTERFACE # define INTERFACE 1 #endif /************* Begin control #defines *****************************************/ #define YYCODETYPE unsigned short int -#define YYNOCODE 319 +#define YYNOCODE 322 #define YYACTIONTYPE unsigned short int #define YYWILDCARD 101 #define sqlite3ParserTOKENTYPE Token typedef union { int yyinit; sqlite3ParserTOKENTYPE yy0; - TriggerStep* yy33; - Window* yy41; - Select* yy47; - SrcList* yy131; - struct TrigEvent yy180; - struct {int value; int mask;} yy231; - IdList* yy254; - u32 yy285; - ExprList* yy322; - Cte* yy385; - int yy394; - Upsert* yy444; - u8 yy516; - With* yy521; - const char* yy522; - Expr* yy528; - OnOrUsing yy561; - struct FrameBound yy595; + ExprList* yy14; + With* yy59; + Cte* yy67; + Upsert* yy122; + IdList* yy132; + int yy144; + const char* yy168; + SrcList* yy203; + Window* yy211; + OnOrUsing yy269; + struct TrigEvent yy286; + struct {int value; int mask;} yy383; + u32 yy391; + TriggerStep* yy427; + Expr* yy454; + u8 yy462; + struct FrameBound yy509; + Select* yy555; } YYMINORTYPE; #ifndef YYSTACKDEPTH #define YYSTACKDEPTH 100 @@ -171413,24 +172972,29 @@ typedef union { #define sqlite3ParserARG_PARAM #define sqlite3ParserARG_FETCH #define sqlite3ParserARG_STORE +#define YYREALLOC parserStackRealloc +#define YYFREE sqlite3_free +#define YYDYNSTACK 1 #define sqlite3ParserCTX_SDECL Parse *pParse; #define sqlite3ParserCTX_PDECL ,Parse *pParse #define sqlite3ParserCTX_PARAM ,pParse #define sqlite3ParserCTX_FETCH Parse *pParse=yypParser->pParse; #define sqlite3ParserCTX_STORE yypParser->pParse=pParse; #define YYFALLBACK 1 -#define YYNSTATE 579 -#define YYNRULE 405 -#define YYNRULE_WITH_ACTION 340 -#define YYNTOKEN 185 -#define YY_MAX_SHIFT 578 -#define YY_MIN_SHIFTREDUCE 838 -#define YY_MAX_SHIFTREDUCE 1242 -#define YY_ERROR_ACTION 1243 -#define YY_ACCEPT_ACTION 1244 -#define YY_NO_ACTION 1245 -#define YY_MIN_REDUCE 1246 -#define YY_MAX_REDUCE 1650 +#define YYNSTATE 583 +#define YYNRULE 409 +#define YYNRULE_WITH_ACTION 344 +#define YYNTOKEN 186 +#define YY_MAX_SHIFT 582 +#define YY_MIN_SHIFTREDUCE 845 +#define YY_MAX_SHIFTREDUCE 1253 +#define YY_ERROR_ACTION 1254 +#define YY_ACCEPT_ACTION 1255 +#define YY_NO_ACTION 1256 +#define YY_MIN_REDUCE 1257 +#define YY_MAX_REDUCE 1665 +#define YY_MIN_DSTRCTR 205 +#define YY_MAX_DSTRCTR 319 /************* End control #defines *******************************************/ #define YY_NLOOKAHEAD ((int)(sizeof(yy_lookahead)/sizeof(yy_lookahead[0]))) @@ -171446,6 +173010,22 @@ typedef union { # define yytestcase(X) #endif +/* Macro to determine if stack space has the ability to grow using +** heap memory. +*/ +#if YYSTACKDEPTH<=0 || YYDYNSTACK +# define YYGROWABLESTACK 1 +#else +# define YYGROWABLESTACK 0 +#endif + +/* Guarantee a minimum number of initial stack slots. +*/ +#if YYSTACKDEPTH<=0 +# undef YYSTACKDEPTH +# define YYSTACKDEPTH 2 /* Need a minimum stack size */ +#endif + /* Next are the tables used to determine what action to take based on the ** current state and lookahead token. These tables are used to implement @@ -171497,619 +173077,630 @@ typedef union { ** yy_default[] Default action for each state. ** *********** Begin parsing tables **********************************************/ -#define YY_ACTTAB_COUNT (2100) +#define YY_ACTTAB_COUNT (2142) static const YYACTIONTYPE yy_action[] = { - /* 0 */ 572, 210, 572, 119, 116, 231, 572, 119, 116, 231, - /* 10 */ 572, 1317, 379, 1296, 410, 566, 566, 566, 572, 411, - /* 20 */ 380, 1317, 1279, 42, 42, 42, 42, 210, 1529, 72, - /* 30 */ 72, 974, 421, 42, 42, 495, 305, 281, 305, 975, - /* 40 */ 399, 72, 72, 126, 127, 81, 1217, 1217, 1054, 1057, - /* 50 */ 1044, 1044, 124, 124, 125, 125, 125, 125, 480, 411, - /* 60 */ 1244, 1, 1, 578, 2, 1248, 554, 119, 116, 231, - /* 70 */ 319, 484, 147, 484, 528, 119, 116, 231, 533, 1330, - /* 80 */ 419, 527, 143, 126, 127, 81, 1217, 1217, 1054, 1057, - /* 90 */ 1044, 1044, 124, 124, 125, 125, 125, 125, 119, 116, - /* 100 */ 231, 329, 123, 123, 123, 123, 122, 122, 121, 121, - /* 110 */ 121, 120, 117, 448, 286, 286, 286, 286, 446, 446, - /* 120 */ 446, 1568, 378, 1570, 1193, 377, 1164, 569, 1164, 569, - /* 130 */ 411, 1568, 541, 261, 228, 448, 102, 146, 453, 318, - /* 140 */ 563, 242, 123, 123, 123, 123, 122, 122, 121, 121, - /* 150 */ 121, 120, 117, 448, 126, 127, 81, 1217, 1217, 1054, - /* 160 */ 1057, 1044, 1044, 124, 124, 125, 125, 125, 125, 143, - /* 170 */ 296, 1193, 341, 452, 121, 121, 121, 120, 117, 448, - /* 180 */ 128, 1193, 1194, 1193, 149, 445, 444, 572, 120, 117, - /* 190 */ 448, 125, 125, 125, 125, 118, 123, 123, 123, 123, - /* 200 */ 122, 122, 121, 121, 121, 120, 117, 448, 458, 114, - /* 210 */ 13, 13, 550, 123, 123, 123, 123, 122, 122, 121, - /* 220 */ 121, 121, 120, 117, 448, 424, 318, 563, 1193, 1194, - /* 230 */ 1193, 150, 1225, 411, 1225, 125, 125, 125, 125, 123, - /* 240 */ 123, 123, 123, 122, 122, 121, 121, 121, 120, 117, - /* 250 */ 448, 469, 344, 1041, 1041, 1055, 1058, 126, 127, 81, - /* 260 */ 1217, 1217, 1054, 1057, 1044, 1044, 124, 124, 125, 125, - /* 270 */ 125, 125, 1282, 526, 224, 1193, 572, 411, 226, 519, - /* 280 */ 177, 83, 84, 123, 123, 123, 123, 122, 122, 121, - /* 290 */ 121, 121, 120, 117, 448, 1010, 16, 16, 1193, 134, - /* 300 */ 134, 126, 127, 81, 1217, 1217, 1054, 1057, 1044, 1044, - /* 310 */ 124, 124, 125, 125, 125, 125, 123, 123, 123, 123, - /* 320 */ 122, 122, 121, 121, 121, 120, 117, 448, 1045, 550, - /* 330 */ 1193, 375, 1193, 1194, 1193, 254, 1438, 401, 508, 505, - /* 340 */ 504, 112, 564, 570, 4, 929, 929, 435, 503, 342, - /* 350 */ 464, 330, 362, 396, 1238, 1193, 1194, 1193, 567, 572, - /* 360 */ 123, 123, 123, 123, 122, 122, 121, 121, 121, 120, - /* 370 */ 117, 448, 286, 286, 371, 1581, 1607, 445, 444, 155, - /* 380 */ 411, 449, 72, 72, 1289, 569, 1222, 1193, 1194, 1193, - /* 390 */ 86, 1224, 273, 561, 547, 520, 520, 572, 99, 1223, - /* 400 */ 6, 1281, 476, 143, 126, 127, 81, 1217, 1217, 1054, - /* 410 */ 1057, 1044, 1044, 124, 124, 125, 125, 125, 125, 554, - /* 420 */ 13, 13, 1031, 511, 1225, 1193, 1225, 553, 110, 110, - /* 430 */ 224, 572, 1239, 177, 572, 429, 111, 199, 449, 573, - /* 440 */ 449, 432, 1555, 1019, 327, 555, 1193, 272, 289, 370, - /* 450 */ 514, 365, 513, 259, 72, 72, 547, 72, 72, 361, - /* 460 */ 318, 563, 1613, 123, 123, 123, 123, 122, 122, 121, - /* 470 */ 121, 121, 120, 117, 448, 1019, 1019, 1021, 1022, 28, - /* 480 */ 286, 286, 1193, 1194, 1193, 1159, 572, 1612, 411, 904, - /* 490 */ 192, 554, 358, 569, 554, 940, 537, 521, 1159, 437, - /* 500 */ 415, 1159, 556, 1193, 1194, 1193, 572, 548, 548, 52, - /* 510 */ 52, 216, 126, 127, 81, 1217, 1217, 1054, 1057, 1044, - /* 520 */ 1044, 124, 124, 125, 125, 125, 125, 1193, 478, 136, - /* 530 */ 136, 411, 286, 286, 1493, 509, 122, 122, 121, 121, - /* 540 */ 121, 120, 117, 448, 1010, 569, 522, 219, 545, 545, - /* 550 */ 318, 563, 143, 6, 536, 126, 127, 81, 1217, 1217, - /* 560 */ 1054, 1057, 1044, 1044, 124, 124, 125, 125, 125, 125, - /* 570 */ 1557, 123, 123, 123, 123, 122, 122, 121, 121, 121, - /* 580 */ 120, 117, 448, 489, 1193, 1194, 1193, 486, 283, 1270, - /* 590 */ 960, 254, 1193, 375, 508, 505, 504, 1193, 342, 574, - /* 600 */ 1193, 574, 411, 294, 503, 960, 879, 193, 484, 318, - /* 610 */ 563, 386, 292, 382, 123, 123, 123, 123, 122, 122, - /* 620 */ 121, 121, 121, 120, 117, 448, 126, 127, 81, 1217, - /* 630 */ 1217, 1054, 1057, 1044, 1044, 124, 124, 125, 125, 125, - /* 640 */ 125, 411, 396, 1139, 1193, 872, 101, 286, 286, 1193, - /* 650 */ 1194, 1193, 375, 1096, 1193, 1194, 1193, 1193, 1194, 1193, - /* 660 */ 569, 459, 33, 375, 235, 126, 127, 81, 1217, 1217, - /* 670 */ 1054, 1057, 1044, 1044, 124, 124, 125, 125, 125, 125, - /* 680 */ 1437, 962, 572, 230, 961, 123, 123, 123, 123, 122, - /* 690 */ 122, 121, 121, 121, 120, 117, 448, 1159, 230, 1193, - /* 700 */ 158, 1193, 1194, 1193, 1556, 13, 13, 303, 960, 1233, - /* 710 */ 1159, 154, 411, 1159, 375, 1584, 1177, 5, 371, 1581, - /* 720 */ 431, 1239, 3, 960, 123, 123, 123, 123, 122, 122, - /* 730 */ 121, 121, 121, 120, 117, 448, 126, 127, 81, 1217, - /* 740 */ 1217, 1054, 1057, 1044, 1044, 124, 124, 125, 125, 125, - /* 750 */ 125, 411, 210, 571, 1193, 1032, 1193, 1194, 1193, 1193, - /* 760 */ 390, 855, 156, 1555, 376, 404, 1101, 1101, 492, 572, - /* 770 */ 469, 344, 1322, 1322, 1555, 126, 127, 81, 1217, 1217, - /* 780 */ 1054, 1057, 1044, 1044, 124, 124, 125, 125, 125, 125, - /* 790 */ 130, 572, 13, 13, 532, 123, 123, 123, 123, 122, - /* 800 */ 122, 121, 121, 121, 120, 117, 448, 304, 572, 457, - /* 810 */ 229, 1193, 1194, 1193, 13, 13, 1193, 1194, 1193, 1300, - /* 820 */ 467, 1270, 411, 1320, 1320, 1555, 1015, 457, 456, 436, - /* 830 */ 301, 72, 72, 1268, 123, 123, 123, 123, 122, 122, - /* 840 */ 121, 121, 121, 120, 117, 448, 126, 127, 81, 1217, - /* 850 */ 1217, 1054, 1057, 1044, 1044, 124, 124, 125, 125, 125, - /* 860 */ 125, 411, 384, 1076, 1159, 286, 286, 421, 314, 280, - /* 870 */ 280, 287, 287, 461, 408, 407, 1539, 1159, 569, 572, - /* 880 */ 1159, 1196, 569, 409, 569, 126, 127, 81, 1217, 1217, - /* 890 */ 1054, 1057, 1044, 1044, 124, 124, 125, 125, 125, 125, - /* 900 */ 457, 1485, 13, 13, 1541, 123, 123, 123, 123, 122, - /* 910 */ 122, 121, 121, 121, 120, 117, 448, 202, 572, 462, - /* 920 */ 1587, 578, 2, 1248, 843, 844, 845, 1563, 319, 409, - /* 930 */ 147, 6, 411, 257, 256, 255, 208, 1330, 9, 1196, - /* 940 */ 264, 72, 72, 1436, 123, 123, 123, 123, 122, 122, - /* 950 */ 121, 121, 121, 120, 117, 448, 126, 127, 81, 1217, - /* 960 */ 1217, 1054, 1057, 1044, 1044, 124, 124, 125, 125, 125, - /* 970 */ 125, 572, 286, 286, 572, 1213, 411, 577, 315, 1248, - /* 980 */ 421, 371, 1581, 356, 319, 569, 147, 495, 529, 1644, - /* 990 */ 397, 935, 495, 1330, 71, 71, 934, 72, 72, 242, - /* 1000 */ 1328, 105, 81, 1217, 1217, 1054, 1057, 1044, 1044, 124, - /* 1010 */ 124, 125, 125, 125, 125, 123, 123, 123, 123, 122, - /* 1020 */ 122, 121, 121, 121, 120, 117, 448, 1117, 286, 286, - /* 1030 */ 1422, 452, 1528, 1213, 443, 286, 286, 1492, 1355, 313, - /* 1040 */ 478, 569, 1118, 454, 351, 495, 354, 1266, 569, 209, - /* 1050 */ 572, 418, 179, 572, 1031, 242, 385, 1119, 523, 123, - /* 1060 */ 123, 123, 123, 122, 122, 121, 121, 121, 120, 117, - /* 1070 */ 448, 1020, 108, 72, 72, 1019, 13, 13, 915, 572, - /* 1080 */ 1498, 572, 286, 286, 98, 530, 1537, 452, 916, 1334, - /* 1090 */ 1329, 203, 411, 286, 286, 569, 152, 211, 1498, 1500, - /* 1100 */ 426, 569, 56, 56, 57, 57, 569, 1019, 1019, 1021, - /* 1110 */ 447, 572, 411, 531, 12, 297, 126, 127, 81, 1217, - /* 1120 */ 1217, 1054, 1057, 1044, 1044, 124, 124, 125, 125, 125, - /* 1130 */ 125, 572, 411, 867, 15, 15, 126, 127, 81, 1217, - /* 1140 */ 1217, 1054, 1057, 1044, 1044, 124, 124, 125, 125, 125, - /* 1150 */ 125, 373, 529, 264, 44, 44, 126, 115, 81, 1217, - /* 1160 */ 1217, 1054, 1057, 1044, 1044, 124, 124, 125, 125, 125, - /* 1170 */ 125, 1498, 478, 1271, 417, 123, 123, 123, 123, 122, - /* 1180 */ 122, 121, 121, 121, 120, 117, 448, 205, 1213, 495, - /* 1190 */ 430, 867, 468, 322, 495, 123, 123, 123, 123, 122, - /* 1200 */ 122, 121, 121, 121, 120, 117, 448, 572, 557, 1140, - /* 1210 */ 1642, 1422, 1642, 543, 572, 123, 123, 123, 123, 122, - /* 1220 */ 122, 121, 121, 121, 120, 117, 448, 572, 1422, 572, - /* 1230 */ 13, 13, 542, 323, 1325, 411, 334, 58, 58, 349, - /* 1240 */ 1422, 1170, 326, 286, 286, 549, 1213, 300, 895, 530, - /* 1250 */ 45, 45, 59, 59, 1140, 1643, 569, 1643, 565, 417, - /* 1260 */ 127, 81, 1217, 1217, 1054, 1057, 1044, 1044, 124, 124, - /* 1270 */ 125, 125, 125, 125, 1367, 373, 500, 290, 1193, 512, - /* 1280 */ 1366, 427, 394, 394, 393, 275, 391, 896, 1138, 852, - /* 1290 */ 478, 258, 1422, 1170, 463, 1159, 12, 331, 428, 333, - /* 1300 */ 1117, 460, 236, 258, 325, 460, 544, 1544, 1159, 1098, - /* 1310 */ 491, 1159, 324, 1098, 440, 1118, 335, 516, 123, 123, - /* 1320 */ 123, 123, 122, 122, 121, 121, 121, 120, 117, 448, - /* 1330 */ 1119, 318, 563, 1138, 572, 1193, 1194, 1193, 112, 564, - /* 1340 */ 201, 4, 238, 433, 935, 490, 285, 228, 1517, 934, - /* 1350 */ 170, 560, 572, 142, 1516, 567, 572, 60, 60, 572, - /* 1360 */ 416, 572, 441, 572, 535, 302, 875, 8, 487, 572, - /* 1370 */ 237, 572, 416, 572, 485, 61, 61, 572, 449, 62, - /* 1380 */ 62, 332, 63, 63, 46, 46, 47, 47, 361, 572, - /* 1390 */ 561, 572, 48, 48, 50, 50, 51, 51, 572, 295, - /* 1400 */ 64, 64, 482, 295, 539, 412, 471, 1031, 572, 538, - /* 1410 */ 318, 563, 65, 65, 66, 66, 409, 475, 572, 1031, - /* 1420 */ 572, 14, 14, 875, 1020, 110, 110, 409, 1019, 572, - /* 1430 */ 474, 67, 67, 111, 455, 449, 573, 449, 98, 317, - /* 1440 */ 1019, 132, 132, 133, 133, 572, 1561, 572, 974, 409, - /* 1450 */ 6, 1562, 68, 68, 1560, 6, 975, 572, 6, 1559, - /* 1460 */ 1019, 1019, 1021, 6, 346, 218, 101, 531, 53, 53, - /* 1470 */ 69, 69, 1019, 1019, 1021, 1022, 28, 1586, 1181, 451, - /* 1480 */ 70, 70, 290, 87, 215, 31, 1363, 394, 394, 393, - /* 1490 */ 275, 391, 350, 109, 852, 107, 572, 112, 564, 483, - /* 1500 */ 4, 1212, 572, 239, 153, 572, 39, 236, 1299, 325, - /* 1510 */ 112, 564, 1298, 4, 567, 572, 32, 324, 572, 54, - /* 1520 */ 54, 572, 1135, 353, 398, 165, 165, 567, 166, 166, - /* 1530 */ 572, 291, 355, 572, 17, 357, 572, 449, 77, 77, - /* 1540 */ 1313, 55, 55, 1297, 73, 73, 572, 238, 470, 561, - /* 1550 */ 449, 472, 364, 135, 135, 170, 74, 74, 142, 163, - /* 1560 */ 163, 374, 561, 539, 572, 321, 572, 886, 540, 137, - /* 1570 */ 137, 339, 1353, 422, 298, 237, 539, 572, 1031, 572, - /* 1580 */ 340, 538, 101, 369, 110, 110, 162, 131, 131, 164, - /* 1590 */ 164, 1031, 111, 368, 449, 573, 449, 110, 110, 1019, - /* 1600 */ 157, 157, 141, 141, 572, 111, 572, 449, 573, 449, - /* 1610 */ 412, 288, 1019, 572, 882, 318, 563, 572, 219, 572, - /* 1620 */ 241, 1012, 477, 263, 263, 894, 893, 140, 140, 138, - /* 1630 */ 138, 1019, 1019, 1021, 1022, 28, 139, 139, 525, 455, - /* 1640 */ 76, 76, 78, 78, 1019, 1019, 1021, 1022, 28, 1181, - /* 1650 */ 451, 572, 1083, 290, 112, 564, 1575, 4, 394, 394, - /* 1660 */ 393, 275, 391, 572, 1023, 852, 572, 479, 345, 263, - /* 1670 */ 101, 567, 882, 1376, 75, 75, 1421, 501, 236, 260, - /* 1680 */ 325, 112, 564, 359, 4, 101, 43, 43, 324, 49, - /* 1690 */ 49, 901, 902, 161, 449, 101, 977, 978, 567, 1079, - /* 1700 */ 1349, 260, 965, 932, 263, 114, 561, 1095, 517, 1095, - /* 1710 */ 1083, 1094, 865, 1094, 151, 933, 1144, 114, 238, 1361, - /* 1720 */ 558, 449, 1023, 559, 1426, 1278, 170, 1269, 1257, 142, - /* 1730 */ 1601, 1256, 1258, 561, 1594, 1031, 496, 278, 213, 1346, - /* 1740 */ 310, 110, 110, 939, 311, 312, 237, 11, 234, 111, - /* 1750 */ 221, 449, 573, 449, 293, 395, 1019, 1408, 337, 1403, - /* 1760 */ 1396, 338, 1031, 299, 343, 1413, 1412, 481, 110, 110, - /* 1770 */ 506, 402, 225, 1296, 206, 367, 111, 1358, 449, 573, - /* 1780 */ 449, 412, 1359, 1019, 1489, 1488, 318, 563, 1019, 1019, - /* 1790 */ 1021, 1022, 28, 562, 207, 220, 80, 564, 389, 4, - /* 1800 */ 1597, 1357, 552, 1356, 1233, 181, 267, 232, 1536, 1534, - /* 1810 */ 455, 1230, 420, 567, 82, 1019, 1019, 1021, 1022, 28, - /* 1820 */ 86, 217, 85, 1494, 190, 175, 183, 465, 185, 466, - /* 1830 */ 36, 1409, 186, 187, 188, 499, 449, 244, 37, 99, - /* 1840 */ 400, 1415, 1414, 488, 1417, 194, 473, 403, 561, 1483, - /* 1850 */ 248, 92, 1505, 494, 198, 279, 112, 564, 250, 4, - /* 1860 */ 348, 497, 405, 352, 1259, 251, 252, 515, 1316, 434, - /* 1870 */ 1315, 1314, 94, 567, 1307, 886, 1306, 1031, 226, 406, - /* 1880 */ 1611, 1610, 438, 110, 110, 1580, 1286, 524, 439, 308, - /* 1890 */ 266, 111, 1285, 449, 573, 449, 449, 309, 1019, 366, - /* 1900 */ 1284, 1609, 265, 1566, 1565, 442, 372, 1381, 561, 129, - /* 1910 */ 550, 1380, 10, 1470, 383, 106, 316, 551, 100, 35, - /* 1920 */ 534, 575, 212, 1339, 381, 387, 1187, 1338, 274, 276, - /* 1930 */ 1019, 1019, 1021, 1022, 28, 277, 413, 1031, 576, 1254, - /* 1940 */ 388, 1521, 1249, 110, 110, 167, 1522, 168, 148, 1520, - /* 1950 */ 1519, 111, 306, 449, 573, 449, 222, 223, 1019, 839, - /* 1960 */ 169, 79, 450, 214, 414, 233, 320, 145, 1093, 1091, - /* 1970 */ 328, 182, 171, 1212, 918, 184, 240, 336, 243, 1107, - /* 1980 */ 189, 172, 173, 423, 425, 88, 180, 191, 89, 90, - /* 1990 */ 1019, 1019, 1021, 1022, 28, 91, 174, 1110, 245, 1106, - /* 2000 */ 246, 159, 18, 247, 347, 1099, 263, 195, 1227, 493, - /* 2010 */ 249, 196, 38, 854, 498, 368, 253, 360, 897, 197, - /* 2020 */ 502, 93, 19, 20, 507, 884, 363, 510, 95, 307, - /* 2030 */ 160, 96, 518, 97, 1175, 1060, 1146, 40, 21, 227, - /* 2040 */ 176, 1145, 282, 284, 969, 200, 963, 114, 262, 1165, - /* 2050 */ 22, 23, 24, 1161, 1169, 25, 1163, 1150, 34, 26, - /* 2060 */ 1168, 546, 27, 204, 101, 103, 104, 1074, 7, 1061, - /* 2070 */ 1059, 1063, 1116, 1064, 1115, 268, 269, 29, 41, 270, - /* 2080 */ 1024, 866, 113, 30, 568, 392, 1183, 144, 178, 1182, - /* 2090 */ 271, 928, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1602, + /* 0 */ 576, 128, 125, 232, 1622, 549, 576, 1290, 1281, 576, + /* 10 */ 328, 576, 1300, 212, 576, 128, 125, 232, 578, 412, + /* 20 */ 578, 391, 1542, 51, 51, 523, 405, 1293, 529, 51, + /* 30 */ 51, 983, 51, 51, 81, 81, 1107, 61, 61, 984, + /* 40 */ 1107, 1292, 380, 135, 136, 90, 1228, 1228, 1063, 1066, + /* 50 */ 1053, 1053, 133, 133, 134, 134, 134, 134, 1577, 412, + /* 60 */ 287, 287, 7, 287, 287, 422, 1050, 1050, 1064, 1067, + /* 70 */ 289, 556, 492, 573, 524, 561, 573, 497, 561, 482, + /* 80 */ 530, 262, 229, 135, 136, 90, 1228, 1228, 1063, 1066, + /* 90 */ 1053, 1053, 133, 133, 134, 134, 134, 134, 128, 125, + /* 100 */ 232, 1506, 132, 132, 132, 132, 131, 131, 130, 130, + /* 110 */ 130, 129, 126, 450, 1204, 1255, 1, 1, 582, 2, + /* 120 */ 1259, 1571, 420, 1582, 379, 320, 1174, 153, 1174, 1584, + /* 130 */ 412, 378, 1582, 543, 1341, 330, 111, 570, 570, 570, + /* 140 */ 293, 1054, 132, 132, 132, 132, 131, 131, 130, 130, + /* 150 */ 130, 129, 126, 450, 135, 136, 90, 1228, 1228, 1063, + /* 160 */ 1066, 1053, 1053, 133, 133, 134, 134, 134, 134, 287, + /* 170 */ 287, 1204, 1205, 1204, 255, 287, 287, 510, 507, 506, + /* 180 */ 137, 455, 573, 212, 561, 447, 446, 505, 573, 1616, + /* 190 */ 561, 134, 134, 134, 134, 127, 400, 243, 132, 132, + /* 200 */ 132, 132, 131, 131, 130, 130, 130, 129, 126, 450, + /* 210 */ 282, 471, 345, 132, 132, 132, 132, 131, 131, 130, + /* 220 */ 130, 130, 129, 126, 450, 574, 155, 936, 936, 454, + /* 230 */ 227, 521, 1236, 412, 1236, 134, 134, 134, 134, 132, + /* 240 */ 132, 132, 132, 131, 131, 130, 130, 130, 129, 126, + /* 250 */ 450, 130, 130, 130, 129, 126, 450, 135, 136, 90, + /* 260 */ 1228, 1228, 1063, 1066, 1053, 1053, 133, 133, 134, 134, + /* 270 */ 134, 134, 128, 125, 232, 450, 576, 412, 397, 1249, + /* 280 */ 180, 92, 93, 132, 132, 132, 132, 131, 131, 130, + /* 290 */ 130, 130, 129, 126, 450, 381, 387, 1204, 383, 81, + /* 300 */ 81, 135, 136, 90, 1228, 1228, 1063, 1066, 1053, 1053, + /* 310 */ 133, 133, 134, 134, 134, 134, 132, 132, 132, 132, + /* 320 */ 131, 131, 130, 130, 130, 129, 126, 450, 131, 131, + /* 330 */ 130, 130, 130, 129, 126, 450, 556, 1204, 302, 319, + /* 340 */ 567, 121, 568, 480, 4, 555, 1149, 1657, 1628, 1657, + /* 350 */ 45, 128, 125, 232, 1204, 1205, 1204, 1250, 571, 1169, + /* 360 */ 132, 132, 132, 132, 131, 131, 130, 130, 130, 129, + /* 370 */ 126, 450, 1169, 287, 287, 1169, 1019, 576, 422, 1019, + /* 380 */ 412, 451, 1602, 582, 2, 1259, 573, 44, 561, 95, + /* 390 */ 320, 110, 153, 565, 1204, 1205, 1204, 522, 522, 1341, + /* 400 */ 81, 81, 7, 44, 135, 136, 90, 1228, 1228, 1063, + /* 410 */ 1066, 1053, 1053, 133, 133, 134, 134, 134, 134, 295, + /* 420 */ 1149, 1658, 1040, 1658, 1204, 1147, 319, 567, 119, 119, + /* 430 */ 343, 466, 331, 343, 287, 287, 120, 556, 451, 577, + /* 440 */ 451, 1169, 1169, 1028, 319, 567, 438, 573, 210, 561, + /* 450 */ 1339, 1451, 546, 531, 1169, 1169, 1598, 1169, 1169, 416, + /* 460 */ 319, 567, 243, 132, 132, 132, 132, 131, 131, 130, + /* 470 */ 130, 130, 129, 126, 450, 1028, 1028, 1030, 1031, 35, + /* 480 */ 44, 1204, 1205, 1204, 472, 287, 287, 1328, 412, 1307, + /* 490 */ 372, 1595, 359, 225, 454, 1204, 195, 1328, 573, 1147, + /* 500 */ 561, 1333, 1333, 274, 576, 1188, 576, 340, 46, 196, + /* 510 */ 537, 217, 135, 136, 90, 1228, 1228, 1063, 1066, 1053, + /* 520 */ 1053, 133, 133, 134, 134, 134, 134, 19, 19, 19, + /* 530 */ 19, 412, 581, 1204, 1259, 511, 1204, 319, 567, 320, + /* 540 */ 944, 153, 425, 491, 430, 943, 1204, 488, 1341, 1450, + /* 550 */ 532, 1277, 1204, 1205, 1204, 135, 136, 90, 1228, 1228, + /* 560 */ 1063, 1066, 1053, 1053, 133, 133, 134, 134, 134, 134, + /* 570 */ 575, 132, 132, 132, 132, 131, 131, 130, 130, 130, + /* 580 */ 129, 126, 450, 287, 287, 528, 287, 287, 372, 1595, + /* 590 */ 1204, 1205, 1204, 1204, 1205, 1204, 573, 486, 561, 573, + /* 600 */ 889, 561, 412, 1204, 1205, 1204, 886, 40, 22, 22, + /* 610 */ 220, 243, 525, 1449, 132, 132, 132, 132, 131, 131, + /* 620 */ 130, 130, 130, 129, 126, 450, 135, 136, 90, 1228, + /* 630 */ 1228, 1063, 1066, 1053, 1053, 133, 133, 134, 134, 134, + /* 640 */ 134, 412, 180, 454, 1204, 879, 255, 287, 287, 510, + /* 650 */ 507, 506, 372, 1595, 1568, 1331, 1331, 576, 889, 505, + /* 660 */ 573, 44, 561, 559, 1207, 135, 136, 90, 1228, 1228, + /* 670 */ 1063, 1066, 1053, 1053, 133, 133, 134, 134, 134, 134, + /* 680 */ 81, 81, 422, 576, 377, 132, 132, 132, 132, 131, + /* 690 */ 131, 130, 130, 130, 129, 126, 450, 297, 287, 287, + /* 700 */ 460, 1204, 1205, 1204, 1204, 534, 19, 19, 448, 448, + /* 710 */ 448, 573, 412, 561, 230, 436, 1187, 535, 319, 567, + /* 720 */ 363, 432, 1207, 1435, 132, 132, 132, 132, 131, 131, + /* 730 */ 130, 130, 130, 129, 126, 450, 135, 136, 90, 1228, + /* 740 */ 1228, 1063, 1066, 1053, 1053, 133, 133, 134, 134, 134, + /* 750 */ 134, 412, 211, 949, 1169, 1041, 1110, 1110, 494, 547, + /* 760 */ 547, 1204, 1205, 1204, 7, 539, 1570, 1169, 376, 576, + /* 770 */ 1169, 5, 1204, 486, 3, 135, 136, 90, 1228, 1228, + /* 780 */ 1063, 1066, 1053, 1053, 133, 133, 134, 134, 134, 134, + /* 790 */ 576, 513, 19, 19, 427, 132, 132, 132, 132, 131, + /* 800 */ 131, 130, 130, 130, 129, 126, 450, 305, 1204, 433, + /* 810 */ 225, 1204, 385, 19, 19, 273, 290, 371, 516, 366, + /* 820 */ 515, 260, 412, 538, 1568, 549, 1024, 362, 437, 1204, + /* 830 */ 1205, 1204, 902, 1552, 132, 132, 132, 132, 131, 131, + /* 840 */ 130, 130, 130, 129, 126, 450, 135, 136, 90, 1228, + /* 850 */ 1228, 1063, 1066, 1053, 1053, 133, 133, 134, 134, 134, + /* 860 */ 134, 412, 1435, 514, 1281, 1204, 1205, 1204, 1204, 1205, + /* 870 */ 1204, 903, 48, 342, 1568, 1568, 1279, 1627, 1568, 911, + /* 880 */ 576, 129, 126, 450, 110, 135, 136, 90, 1228, 1228, + /* 890 */ 1063, 1066, 1053, 1053, 133, 133, 134, 134, 134, 134, + /* 900 */ 265, 576, 459, 19, 19, 132, 132, 132, 132, 131, + /* 910 */ 131, 130, 130, 130, 129, 126, 450, 1345, 204, 576, + /* 920 */ 459, 458, 50, 47, 19, 19, 49, 434, 1105, 573, + /* 930 */ 497, 561, 412, 428, 108, 1224, 1569, 1554, 376, 205, + /* 940 */ 550, 550, 81, 81, 132, 132, 132, 132, 131, 131, + /* 950 */ 130, 130, 130, 129, 126, 450, 135, 136, 90, 1228, + /* 960 */ 1228, 1063, 1066, 1053, 1053, 133, 133, 134, 134, 134, + /* 970 */ 134, 480, 576, 1204, 576, 1541, 412, 1435, 969, 315, + /* 980 */ 1659, 398, 284, 497, 969, 893, 1569, 1569, 376, 376, + /* 990 */ 1569, 461, 376, 1224, 459, 80, 80, 81, 81, 497, + /* 1000 */ 374, 114, 90, 1228, 1228, 1063, 1066, 1053, 1053, 133, + /* 1010 */ 133, 134, 134, 134, 134, 132, 132, 132, 132, 131, + /* 1020 */ 131, 130, 130, 130, 129, 126, 450, 1204, 1505, 576, + /* 1030 */ 1204, 1205, 1204, 1366, 316, 486, 281, 281, 497, 431, + /* 1040 */ 557, 288, 288, 402, 1340, 471, 345, 298, 429, 573, + /* 1050 */ 576, 561, 81, 81, 573, 374, 561, 971, 386, 132, + /* 1060 */ 132, 132, 132, 131, 131, 130, 130, 130, 129, 126, + /* 1070 */ 450, 231, 117, 81, 81, 287, 287, 231, 287, 287, + /* 1080 */ 576, 1511, 576, 1336, 1204, 1205, 1204, 139, 573, 556, + /* 1090 */ 561, 573, 412, 561, 441, 456, 969, 213, 558, 1511, + /* 1100 */ 1513, 1550, 969, 143, 143, 145, 145, 1368, 314, 478, + /* 1110 */ 444, 970, 412, 850, 851, 852, 135, 136, 90, 1228, + /* 1120 */ 1228, 1063, 1066, 1053, 1053, 133, 133, 134, 134, 134, + /* 1130 */ 134, 357, 412, 397, 1148, 304, 135, 136, 90, 1228, + /* 1140 */ 1228, 1063, 1066, 1053, 1053, 133, 133, 134, 134, 134, + /* 1150 */ 134, 1575, 323, 6, 862, 7, 135, 124, 90, 1228, + /* 1160 */ 1228, 1063, 1066, 1053, 1053, 133, 133, 134, 134, 134, + /* 1170 */ 134, 409, 408, 1511, 212, 132, 132, 132, 132, 131, + /* 1180 */ 131, 130, 130, 130, 129, 126, 450, 411, 118, 1204, + /* 1190 */ 116, 10, 352, 265, 355, 132, 132, 132, 132, 131, + /* 1200 */ 131, 130, 130, 130, 129, 126, 450, 576, 324, 306, + /* 1210 */ 576, 306, 1250, 469, 158, 132, 132, 132, 132, 131, + /* 1220 */ 131, 130, 130, 130, 129, 126, 450, 207, 1224, 1126, + /* 1230 */ 65, 65, 470, 66, 66, 412, 447, 446, 882, 531, + /* 1240 */ 335, 258, 257, 256, 1127, 1233, 1204, 1205, 1204, 327, + /* 1250 */ 1235, 874, 159, 576, 16, 480, 1085, 1040, 1234, 1128, + /* 1260 */ 136, 90, 1228, 1228, 1063, 1066, 1053, 1053, 133, 133, + /* 1270 */ 134, 134, 134, 134, 1029, 576, 81, 81, 1028, 1040, + /* 1280 */ 922, 576, 463, 1236, 576, 1236, 1224, 502, 107, 1435, + /* 1290 */ 923, 6, 576, 410, 1498, 882, 1029, 480, 21, 21, + /* 1300 */ 1028, 332, 1380, 334, 53, 53, 497, 81, 81, 874, + /* 1310 */ 1028, 1028, 1030, 445, 259, 19, 19, 533, 132, 132, + /* 1320 */ 132, 132, 131, 131, 130, 130, 130, 129, 126, 450, + /* 1330 */ 551, 301, 1028, 1028, 1030, 107, 532, 545, 121, 568, + /* 1340 */ 1188, 4, 1126, 1576, 449, 576, 462, 7, 1282, 418, + /* 1350 */ 462, 350, 1435, 576, 518, 571, 544, 1127, 121, 568, + /* 1360 */ 442, 4, 1188, 464, 533, 1180, 1223, 9, 67, 67, + /* 1370 */ 487, 576, 1128, 303, 410, 571, 54, 54, 451, 576, + /* 1380 */ 123, 944, 576, 417, 576, 333, 943, 1379, 576, 236, + /* 1390 */ 565, 576, 1574, 564, 68, 68, 7, 576, 451, 362, + /* 1400 */ 419, 182, 69, 69, 541, 70, 70, 71, 71, 540, + /* 1410 */ 565, 72, 72, 484, 55, 55, 473, 1180, 296, 1040, + /* 1420 */ 56, 56, 296, 493, 541, 119, 119, 410, 1573, 542, + /* 1430 */ 569, 418, 7, 120, 1244, 451, 577, 451, 465, 1040, + /* 1440 */ 1028, 576, 1557, 552, 476, 119, 119, 527, 259, 121, + /* 1450 */ 568, 240, 4, 120, 576, 451, 577, 451, 576, 477, + /* 1460 */ 1028, 576, 156, 576, 57, 57, 571, 576, 286, 229, + /* 1470 */ 410, 336, 1028, 1028, 1030, 1031, 35, 59, 59, 219, + /* 1480 */ 983, 60, 60, 220, 73, 73, 74, 74, 984, 451, + /* 1490 */ 75, 75, 1028, 1028, 1030, 1031, 35, 96, 216, 291, + /* 1500 */ 552, 565, 1188, 318, 395, 395, 394, 276, 392, 576, + /* 1510 */ 485, 859, 474, 1311, 410, 541, 576, 417, 1530, 1144, + /* 1520 */ 540, 399, 1188, 292, 237, 1153, 326, 38, 23, 576, + /* 1530 */ 1040, 576, 20, 20, 325, 299, 119, 119, 164, 76, + /* 1540 */ 76, 1529, 121, 568, 120, 4, 451, 577, 451, 203, + /* 1550 */ 576, 1028, 141, 141, 142, 142, 576, 322, 39, 571, + /* 1560 */ 341, 1021, 110, 264, 239, 901, 900, 423, 242, 908, + /* 1570 */ 909, 370, 173, 77, 77, 43, 479, 1310, 264, 62, + /* 1580 */ 62, 369, 451, 1028, 1028, 1030, 1031, 35, 1601, 1192, + /* 1590 */ 453, 1092, 238, 291, 565, 163, 1309, 110, 395, 395, + /* 1600 */ 394, 276, 392, 986, 987, 859, 481, 346, 264, 110, + /* 1610 */ 1032, 489, 576, 1188, 503, 1088, 261, 261, 237, 576, + /* 1620 */ 326, 121, 568, 1040, 4, 347, 1376, 413, 325, 119, + /* 1630 */ 119, 948, 319, 567, 351, 78, 78, 120, 571, 451, + /* 1640 */ 577, 451, 79, 79, 1028, 354, 356, 576, 360, 1092, + /* 1650 */ 110, 576, 974, 942, 264, 123, 457, 358, 239, 576, + /* 1660 */ 519, 451, 939, 1104, 123, 1104, 173, 576, 1032, 43, + /* 1670 */ 63, 63, 1324, 565, 168, 168, 1028, 1028, 1030, 1031, + /* 1680 */ 35, 576, 169, 169, 1308, 872, 238, 157, 1589, 576, + /* 1690 */ 86, 86, 365, 89, 568, 375, 4, 1103, 941, 1103, + /* 1700 */ 123, 576, 1040, 1389, 64, 64, 1188, 1434, 119, 119, + /* 1710 */ 571, 576, 82, 82, 563, 576, 120, 165, 451, 577, + /* 1720 */ 451, 413, 1362, 1028, 144, 144, 319, 567, 576, 1374, + /* 1730 */ 562, 498, 279, 451, 83, 83, 1439, 576, 166, 166, + /* 1740 */ 576, 1289, 554, 576, 1280, 565, 576, 12, 576, 1268, + /* 1750 */ 457, 146, 146, 1267, 576, 1028, 1028, 1030, 1031, 35, + /* 1760 */ 140, 140, 1269, 167, 167, 1609, 160, 160, 1359, 150, + /* 1770 */ 150, 149, 149, 311, 1040, 576, 312, 147, 147, 313, + /* 1780 */ 119, 119, 222, 235, 576, 1188, 396, 576, 120, 576, + /* 1790 */ 451, 577, 451, 1192, 453, 1028, 508, 291, 148, 148, + /* 1800 */ 1421, 1612, 395, 395, 394, 276, 392, 85, 85, 859, + /* 1810 */ 87, 87, 84, 84, 553, 576, 294, 576, 1426, 338, + /* 1820 */ 339, 1425, 237, 300, 326, 1416, 1409, 1028, 1028, 1030, + /* 1830 */ 1031, 35, 325, 344, 403, 483, 226, 1307, 52, 52, + /* 1840 */ 58, 58, 368, 1371, 1502, 566, 1501, 121, 568, 221, + /* 1850 */ 4, 208, 268, 209, 390, 1244, 1549, 1188, 1372, 1370, + /* 1860 */ 1369, 1547, 239, 184, 571, 233, 421, 1241, 95, 218, + /* 1870 */ 173, 1507, 193, 43, 91, 94, 178, 186, 467, 188, + /* 1880 */ 468, 1422, 13, 189, 190, 191, 501, 451, 245, 108, + /* 1890 */ 238, 401, 1428, 1427, 1430, 475, 404, 1496, 197, 565, + /* 1900 */ 14, 490, 249, 101, 1518, 496, 349, 280, 251, 201, + /* 1910 */ 353, 499, 252, 406, 1270, 253, 517, 1327, 1326, 435, + /* 1920 */ 1325, 1318, 103, 893, 1296, 413, 227, 407, 1040, 1626, + /* 1930 */ 319, 567, 1625, 1297, 119, 119, 439, 367, 1317, 1295, + /* 1940 */ 1624, 526, 120, 440, 451, 577, 451, 1594, 309, 1028, + /* 1950 */ 310, 373, 266, 267, 457, 1580, 1579, 443, 138, 1394, + /* 1960 */ 552, 1393, 11, 1483, 384, 115, 317, 1350, 109, 536, + /* 1970 */ 42, 579, 382, 214, 1349, 388, 1198, 389, 275, 277, + /* 1980 */ 278, 1028, 1028, 1030, 1031, 35, 580, 1265, 414, 1260, + /* 1990 */ 170, 415, 183, 1534, 1535, 1533, 171, 154, 307, 1532, + /* 2000 */ 846, 223, 224, 88, 452, 215, 172, 321, 234, 1102, + /* 2010 */ 152, 1188, 1100, 329, 185, 174, 1223, 925, 187, 241, + /* 2020 */ 337, 244, 1116, 192, 175, 176, 424, 426, 97, 194, + /* 2030 */ 98, 99, 100, 177, 1119, 1115, 246, 247, 161, 24, + /* 2040 */ 248, 348, 1238, 264, 1108, 250, 495, 199, 198, 15, + /* 2050 */ 861, 500, 369, 254, 504, 509, 512, 200, 102, 25, + /* 2060 */ 179, 361, 26, 364, 104, 891, 308, 162, 105, 904, + /* 2070 */ 520, 106, 1185, 1069, 1155, 17, 228, 27, 1154, 283, + /* 2080 */ 285, 263, 978, 202, 972, 123, 28, 1175, 29, 30, + /* 2090 */ 1179, 1171, 31, 1173, 1160, 41, 32, 206, 548, 33, + /* 2100 */ 110, 1178, 1083, 8, 112, 1070, 113, 1068, 1072, 34, + /* 2110 */ 1073, 560, 1125, 269, 1124, 270, 36, 18, 1194, 1033, + /* 2120 */ 873, 151, 122, 37, 393, 271, 272, 572, 181, 1193, + /* 2130 */ 1256, 1256, 1256, 935, 1256, 1256, 1256, 1256, 1256, 1256, + /* 2140 */ 1256, 1617, }; static const YYCODETYPE yy_lookahead[] = { - /* 0 */ 193, 193, 193, 274, 275, 276, 193, 274, 275, 276, - /* 10 */ 193, 223, 219, 225, 206, 210, 211, 212, 193, 19, - /* 20 */ 219, 233, 216, 216, 217, 216, 217, 193, 295, 216, - /* 30 */ 217, 31, 193, 216, 217, 193, 228, 213, 230, 39, - /* 40 */ 206, 216, 217, 43, 44, 45, 46, 47, 48, 49, - /* 50 */ 50, 51, 52, 53, 54, 55, 56, 57, 193, 19, - /* 60 */ 185, 186, 187, 188, 189, 190, 253, 274, 275, 276, - /* 70 */ 195, 193, 197, 193, 261, 274, 275, 276, 253, 204, - /* 80 */ 238, 204, 81, 43, 44, 45, 46, 47, 48, 49, - /* 90 */ 50, 51, 52, 53, 54, 55, 56, 57, 274, 275, - /* 100 */ 276, 262, 102, 103, 104, 105, 106, 107, 108, 109, - /* 110 */ 110, 111, 112, 113, 239, 240, 239, 240, 210, 211, - /* 120 */ 212, 314, 315, 314, 59, 316, 86, 252, 88, 252, - /* 130 */ 19, 314, 315, 256, 257, 113, 25, 72, 296, 138, - /* 140 */ 139, 266, 102, 103, 104, 105, 106, 107, 108, 109, + /* 0 */ 194, 276, 277, 278, 216, 194, 194, 217, 194, 194, + /* 10 */ 194, 194, 224, 194, 194, 276, 277, 278, 204, 19, + /* 20 */ 206, 202, 297, 217, 218, 205, 207, 217, 205, 217, + /* 30 */ 218, 31, 217, 218, 217, 218, 29, 217, 218, 39, + /* 40 */ 33, 217, 220, 43, 44, 45, 46, 47, 48, 49, + /* 50 */ 50, 51, 52, 53, 54, 55, 56, 57, 312, 19, + /* 60 */ 240, 241, 316, 240, 241, 194, 46, 47, 48, 49, + /* 70 */ 22, 254, 65, 253, 254, 255, 253, 194, 255, 194, + /* 80 */ 263, 258, 259, 43, 44, 45, 46, 47, 48, 49, + /* 90 */ 50, 51, 52, 53, 54, 55, 56, 57, 276, 277, + /* 100 */ 278, 285, 102, 103, 104, 105, 106, 107, 108, 109, + /* 110 */ 110, 111, 112, 113, 59, 186, 187, 188, 189, 190, + /* 120 */ 191, 310, 239, 317, 318, 196, 86, 198, 88, 317, + /* 130 */ 19, 319, 317, 318, 205, 264, 25, 211, 212, 213, + /* 140 */ 205, 121, 102, 103, 104, 105, 106, 107, 108, 109, /* 150 */ 110, 111, 112, 113, 43, 44, 45, 46, 47, 48, - /* 160 */ 49, 50, 51, 52, 53, 54, 55, 56, 57, 81, - /* 170 */ 292, 59, 292, 298, 108, 109, 110, 111, 112, 113, - /* 180 */ 69, 116, 117, 118, 72, 106, 107, 193, 111, 112, - /* 190 */ 113, 54, 55, 56, 57, 58, 102, 103, 104, 105, - /* 200 */ 106, 107, 108, 109, 110, 111, 112, 113, 120, 25, - /* 210 */ 216, 217, 145, 102, 103, 104, 105, 106, 107, 108, - /* 220 */ 109, 110, 111, 112, 113, 231, 138, 139, 116, 117, - /* 230 */ 118, 164, 153, 19, 155, 54, 55, 56, 57, 102, + /* 160 */ 49, 50, 51, 52, 53, 54, 55, 56, 57, 240, + /* 170 */ 241, 116, 117, 118, 119, 240, 241, 122, 123, 124, + /* 180 */ 69, 298, 253, 194, 255, 106, 107, 132, 253, 141, + /* 190 */ 255, 54, 55, 56, 57, 58, 207, 268, 102, 103, + /* 200 */ 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + /* 210 */ 214, 128, 129, 102, 103, 104, 105, 106, 107, 108, + /* 220 */ 109, 110, 111, 112, 113, 134, 25, 136, 137, 300, + /* 230 */ 165, 166, 153, 19, 155, 54, 55, 56, 57, 102, /* 240 */ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - /* 250 */ 113, 128, 129, 46, 47, 48, 49, 43, 44, 45, + /* 250 */ 113, 108, 109, 110, 111, 112, 113, 43, 44, 45, /* 260 */ 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - /* 270 */ 56, 57, 216, 193, 25, 59, 193, 19, 165, 166, - /* 280 */ 193, 67, 24, 102, 103, 104, 105, 106, 107, 108, - /* 290 */ 109, 110, 111, 112, 113, 73, 216, 217, 59, 216, - /* 300 */ 217, 43, 44, 45, 46, 47, 48, 49, 50, 51, + /* 270 */ 56, 57, 276, 277, 278, 113, 194, 19, 22, 23, + /* 280 */ 194, 67, 24, 102, 103, 104, 105, 106, 107, 108, + /* 290 */ 109, 110, 111, 112, 113, 220, 250, 59, 252, 217, + /* 300 */ 218, 43, 44, 45, 46, 47, 48, 49, 50, 51, /* 310 */ 52, 53, 54, 55, 56, 57, 102, 103, 104, 105, - /* 320 */ 106, 107, 108, 109, 110, 111, 112, 113, 121, 145, - /* 330 */ 59, 193, 116, 117, 118, 119, 273, 204, 122, 123, - /* 340 */ 124, 19, 20, 134, 22, 136, 137, 19, 132, 127, - /* 350 */ 128, 129, 24, 22, 23, 116, 117, 118, 36, 193, + /* 320 */ 106, 107, 108, 109, 110, 111, 112, 113, 106, 107, + /* 330 */ 108, 109, 110, 111, 112, 113, 254, 59, 205, 138, + /* 340 */ 139, 19, 20, 194, 22, 263, 22, 23, 231, 25, + /* 350 */ 72, 276, 277, 278, 116, 117, 118, 101, 36, 76, /* 360 */ 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - /* 370 */ 112, 113, 239, 240, 311, 312, 215, 106, 107, 241, - /* 380 */ 19, 59, 216, 217, 223, 252, 115, 116, 117, 118, - /* 390 */ 151, 120, 26, 71, 193, 308, 309, 193, 149, 128, - /* 400 */ 313, 216, 269, 81, 43, 44, 45, 46, 47, 48, - /* 410 */ 49, 50, 51, 52, 53, 54, 55, 56, 57, 253, - /* 420 */ 216, 217, 100, 95, 153, 59, 155, 261, 106, 107, - /* 430 */ 25, 193, 101, 193, 193, 231, 114, 25, 116, 117, - /* 440 */ 118, 113, 304, 121, 193, 204, 59, 119, 120, 121, - /* 450 */ 122, 123, 124, 125, 216, 217, 193, 216, 217, 131, - /* 460 */ 138, 139, 230, 102, 103, 104, 105, 106, 107, 108, + /* 370 */ 112, 113, 89, 240, 241, 92, 73, 194, 194, 73, + /* 380 */ 19, 59, 188, 189, 190, 191, 253, 81, 255, 151, + /* 390 */ 196, 25, 198, 71, 116, 117, 118, 311, 312, 205, + /* 400 */ 217, 218, 316, 81, 43, 44, 45, 46, 47, 48, + /* 410 */ 49, 50, 51, 52, 53, 54, 55, 56, 57, 270, + /* 420 */ 22, 23, 100, 25, 59, 101, 138, 139, 106, 107, + /* 430 */ 127, 128, 129, 127, 240, 241, 114, 254, 116, 117, + /* 440 */ 118, 76, 76, 121, 138, 139, 263, 253, 264, 255, + /* 450 */ 205, 275, 87, 19, 89, 89, 194, 92, 92, 199, + /* 460 */ 138, 139, 268, 102, 103, 104, 105, 106, 107, 108, /* 470 */ 109, 110, 111, 112, 113, 153, 154, 155, 156, 157, - /* 480 */ 239, 240, 116, 117, 118, 76, 193, 23, 19, 25, - /* 490 */ 22, 253, 23, 252, 253, 108, 87, 204, 89, 261, - /* 500 */ 198, 92, 261, 116, 117, 118, 193, 306, 307, 216, - /* 510 */ 217, 150, 43, 44, 45, 46, 47, 48, 49, 50, - /* 520 */ 51, 52, 53, 54, 55, 56, 57, 59, 193, 216, - /* 530 */ 217, 19, 239, 240, 283, 23, 106, 107, 108, 109, - /* 540 */ 110, 111, 112, 113, 73, 252, 253, 142, 308, 309, - /* 550 */ 138, 139, 81, 313, 145, 43, 44, 45, 46, 47, + /* 480 */ 81, 116, 117, 118, 129, 240, 241, 224, 19, 226, + /* 490 */ 314, 315, 23, 25, 300, 59, 22, 234, 253, 101, + /* 500 */ 255, 236, 237, 26, 194, 183, 194, 152, 72, 22, + /* 510 */ 145, 150, 43, 44, 45, 46, 47, 48, 49, 50, + /* 520 */ 51, 52, 53, 54, 55, 56, 57, 217, 218, 217, + /* 530 */ 218, 19, 189, 59, 191, 23, 59, 138, 139, 196, + /* 540 */ 135, 198, 232, 283, 232, 140, 59, 287, 205, 275, + /* 550 */ 116, 205, 116, 117, 118, 43, 44, 45, 46, 47, /* 560 */ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - /* 570 */ 307, 102, 103, 104, 105, 106, 107, 108, 109, 110, - /* 580 */ 111, 112, 113, 281, 116, 117, 118, 285, 23, 193, - /* 590 */ 25, 119, 59, 193, 122, 123, 124, 59, 127, 203, - /* 600 */ 59, 205, 19, 268, 132, 25, 23, 22, 193, 138, - /* 610 */ 139, 249, 204, 251, 102, 103, 104, 105, 106, 107, + /* 570 */ 194, 102, 103, 104, 105, 106, 107, 108, 109, 110, + /* 580 */ 111, 112, 113, 240, 241, 194, 240, 241, 314, 315, + /* 590 */ 116, 117, 118, 116, 117, 118, 253, 194, 255, 253, + /* 600 */ 59, 255, 19, 116, 117, 118, 23, 22, 217, 218, + /* 610 */ 142, 268, 205, 275, 102, 103, 104, 105, 106, 107, /* 620 */ 108, 109, 110, 111, 112, 113, 43, 44, 45, 46, /* 630 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - /* 640 */ 57, 19, 22, 23, 59, 23, 25, 239, 240, 116, - /* 650 */ 117, 118, 193, 11, 116, 117, 118, 116, 117, 118, - /* 660 */ 252, 269, 22, 193, 15, 43, 44, 45, 46, 47, + /* 640 */ 57, 19, 194, 300, 59, 23, 119, 240, 241, 122, + /* 650 */ 123, 124, 314, 315, 194, 236, 237, 194, 117, 132, + /* 660 */ 253, 81, 255, 205, 59, 43, 44, 45, 46, 47, /* 670 */ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - /* 680 */ 273, 143, 193, 118, 143, 102, 103, 104, 105, 106, - /* 690 */ 107, 108, 109, 110, 111, 112, 113, 76, 118, 59, - /* 700 */ 241, 116, 117, 118, 304, 216, 217, 292, 143, 60, - /* 710 */ 89, 241, 19, 92, 193, 193, 23, 22, 311, 312, - /* 720 */ 231, 101, 22, 143, 102, 103, 104, 105, 106, 107, + /* 680 */ 217, 218, 194, 194, 194, 102, 103, 104, 105, 106, + /* 690 */ 107, 108, 109, 110, 111, 112, 113, 294, 240, 241, + /* 700 */ 120, 116, 117, 118, 59, 194, 217, 218, 211, 212, + /* 710 */ 213, 253, 19, 255, 194, 19, 23, 254, 138, 139, + /* 720 */ 24, 232, 117, 194, 102, 103, 104, 105, 106, 107, /* 730 */ 108, 109, 110, 111, 112, 113, 43, 44, 45, 46, /* 740 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - /* 750 */ 57, 19, 193, 193, 59, 23, 116, 117, 118, 59, - /* 760 */ 201, 21, 241, 304, 193, 206, 127, 128, 129, 193, - /* 770 */ 128, 129, 235, 236, 304, 43, 44, 45, 46, 47, + /* 750 */ 57, 19, 264, 108, 76, 23, 127, 128, 129, 311, + /* 760 */ 312, 116, 117, 118, 316, 87, 306, 89, 308, 194, + /* 770 */ 92, 22, 59, 194, 22, 43, 44, 45, 46, 47, /* 780 */ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - /* 790 */ 22, 193, 216, 217, 193, 102, 103, 104, 105, 106, - /* 800 */ 107, 108, 109, 110, 111, 112, 113, 231, 193, 193, - /* 810 */ 193, 116, 117, 118, 216, 217, 116, 117, 118, 226, - /* 820 */ 80, 193, 19, 235, 236, 304, 23, 211, 212, 231, - /* 830 */ 204, 216, 217, 205, 102, 103, 104, 105, 106, 107, + /* 790 */ 194, 95, 217, 218, 265, 102, 103, 104, 105, 106, + /* 800 */ 107, 108, 109, 110, 111, 112, 113, 232, 59, 113, + /* 810 */ 25, 59, 194, 217, 218, 119, 120, 121, 122, 123, + /* 820 */ 124, 125, 19, 145, 194, 194, 23, 131, 232, 116, + /* 830 */ 117, 118, 35, 194, 102, 103, 104, 105, 106, 107, /* 840 */ 108, 109, 110, 111, 112, 113, 43, 44, 45, 46, /* 850 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - /* 860 */ 57, 19, 193, 123, 76, 239, 240, 193, 253, 239, - /* 870 */ 240, 239, 240, 244, 106, 107, 193, 89, 252, 193, - /* 880 */ 92, 59, 252, 254, 252, 43, 44, 45, 46, 47, + /* 860 */ 57, 19, 194, 66, 194, 116, 117, 118, 116, 117, + /* 870 */ 118, 74, 242, 294, 194, 194, 206, 23, 194, 25, + /* 880 */ 194, 111, 112, 113, 25, 43, 44, 45, 46, 47, /* 890 */ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - /* 900 */ 284, 161, 216, 217, 193, 102, 103, 104, 105, 106, - /* 910 */ 107, 108, 109, 110, 111, 112, 113, 231, 193, 244, - /* 920 */ 187, 188, 189, 190, 7, 8, 9, 309, 195, 254, - /* 930 */ 197, 313, 19, 127, 128, 129, 262, 204, 22, 117, - /* 940 */ 24, 216, 217, 273, 102, 103, 104, 105, 106, 107, + /* 900 */ 24, 194, 194, 217, 218, 102, 103, 104, 105, 106, + /* 910 */ 107, 108, 109, 110, 111, 112, 113, 241, 232, 194, + /* 920 */ 212, 213, 242, 242, 217, 218, 242, 130, 11, 253, + /* 930 */ 194, 255, 19, 265, 149, 59, 306, 194, 308, 232, + /* 940 */ 309, 310, 217, 218, 102, 103, 104, 105, 106, 107, /* 950 */ 108, 109, 110, 111, 112, 113, 43, 44, 45, 46, /* 960 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - /* 970 */ 57, 193, 239, 240, 193, 59, 19, 188, 253, 190, - /* 980 */ 193, 311, 312, 16, 195, 252, 197, 193, 19, 301, - /* 990 */ 302, 135, 193, 204, 216, 217, 140, 216, 217, 266, - /* 1000 */ 204, 159, 45, 46, 47, 48, 49, 50, 51, 52, + /* 970 */ 57, 194, 194, 59, 194, 239, 19, 194, 25, 254, + /* 980 */ 303, 304, 23, 194, 25, 126, 306, 306, 308, 308, + /* 990 */ 306, 271, 308, 117, 286, 217, 218, 217, 218, 194, + /* 1000 */ 194, 159, 45, 46, 47, 48, 49, 50, 51, 52, /* 1010 */ 53, 54, 55, 56, 57, 102, 103, 104, 105, 106, - /* 1020 */ 107, 108, 109, 110, 111, 112, 113, 12, 239, 240, - /* 1030 */ 193, 298, 238, 117, 253, 239, 240, 238, 259, 260, - /* 1040 */ 193, 252, 27, 193, 77, 193, 79, 204, 252, 262, - /* 1050 */ 193, 299, 300, 193, 100, 266, 278, 42, 204, 102, + /* 1020 */ 107, 108, 109, 110, 111, 112, 113, 59, 239, 194, + /* 1030 */ 116, 117, 118, 260, 254, 194, 240, 241, 194, 233, + /* 1040 */ 205, 240, 241, 205, 239, 128, 129, 270, 265, 253, + /* 1050 */ 194, 255, 217, 218, 253, 194, 255, 143, 280, 102, /* 1060 */ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - /* 1070 */ 113, 117, 159, 216, 217, 121, 216, 217, 63, 193, - /* 1080 */ 193, 193, 239, 240, 115, 116, 193, 298, 73, 240, - /* 1090 */ 238, 231, 19, 239, 240, 252, 22, 24, 211, 212, - /* 1100 */ 263, 252, 216, 217, 216, 217, 252, 153, 154, 155, - /* 1110 */ 253, 193, 19, 144, 213, 268, 43, 44, 45, 46, + /* 1070 */ 113, 118, 159, 217, 218, 240, 241, 118, 240, 241, + /* 1080 */ 194, 194, 194, 239, 116, 117, 118, 22, 253, 254, + /* 1090 */ 255, 253, 19, 255, 233, 194, 143, 24, 263, 212, + /* 1100 */ 213, 194, 143, 217, 218, 217, 218, 261, 262, 271, + /* 1110 */ 254, 143, 19, 7, 8, 9, 43, 44, 45, 46, /* 1120 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - /* 1130 */ 57, 193, 19, 59, 216, 217, 43, 44, 45, 46, + /* 1130 */ 57, 16, 19, 22, 23, 294, 43, 44, 45, 46, /* 1140 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - /* 1150 */ 57, 193, 19, 24, 216, 217, 43, 44, 45, 46, + /* 1150 */ 57, 312, 194, 214, 21, 316, 43, 44, 45, 46, /* 1160 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - /* 1170 */ 57, 284, 193, 208, 209, 102, 103, 104, 105, 106, - /* 1180 */ 107, 108, 109, 110, 111, 112, 113, 286, 59, 193, - /* 1190 */ 232, 117, 291, 193, 193, 102, 103, 104, 105, 106, - /* 1200 */ 107, 108, 109, 110, 111, 112, 113, 193, 204, 22, - /* 1210 */ 23, 193, 25, 66, 193, 102, 103, 104, 105, 106, - /* 1220 */ 107, 108, 109, 110, 111, 112, 113, 193, 193, 193, - /* 1230 */ 216, 217, 85, 193, 238, 19, 16, 216, 217, 238, - /* 1240 */ 193, 94, 193, 239, 240, 231, 117, 268, 35, 116, - /* 1250 */ 216, 217, 216, 217, 22, 23, 252, 25, 208, 209, + /* 1170 */ 57, 106, 107, 286, 194, 102, 103, 104, 105, 106, + /* 1180 */ 107, 108, 109, 110, 111, 112, 113, 207, 158, 59, + /* 1190 */ 160, 22, 77, 24, 79, 102, 103, 104, 105, 106, + /* 1200 */ 107, 108, 109, 110, 111, 112, 113, 194, 194, 229, + /* 1210 */ 194, 231, 101, 80, 22, 102, 103, 104, 105, 106, + /* 1220 */ 107, 108, 109, 110, 111, 112, 113, 288, 59, 12, + /* 1230 */ 217, 218, 293, 217, 218, 19, 106, 107, 59, 19, + /* 1240 */ 16, 127, 128, 129, 27, 115, 116, 117, 118, 194, + /* 1250 */ 120, 59, 22, 194, 24, 194, 123, 100, 128, 42, /* 1260 */ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - /* 1270 */ 54, 55, 56, 57, 193, 193, 19, 5, 59, 66, - /* 1280 */ 193, 263, 10, 11, 12, 13, 14, 74, 101, 17, - /* 1290 */ 193, 46, 193, 146, 193, 76, 213, 77, 263, 79, - /* 1300 */ 12, 260, 30, 46, 32, 264, 87, 193, 89, 29, - /* 1310 */ 263, 92, 40, 33, 232, 27, 193, 108, 102, 103, + /* 1270 */ 54, 55, 56, 57, 117, 194, 217, 218, 121, 100, + /* 1280 */ 63, 194, 245, 153, 194, 155, 117, 19, 115, 194, + /* 1290 */ 73, 214, 194, 256, 161, 116, 117, 194, 217, 218, + /* 1300 */ 121, 77, 194, 79, 217, 218, 194, 217, 218, 117, + /* 1310 */ 153, 154, 155, 254, 46, 217, 218, 144, 102, 103, /* 1320 */ 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - /* 1330 */ 42, 138, 139, 101, 193, 116, 117, 118, 19, 20, - /* 1340 */ 255, 22, 70, 130, 135, 65, 256, 257, 193, 140, - /* 1350 */ 78, 63, 193, 81, 193, 36, 193, 216, 217, 193, - /* 1360 */ 115, 193, 263, 193, 145, 268, 59, 48, 193, 193, - /* 1370 */ 98, 193, 115, 193, 291, 216, 217, 193, 59, 216, - /* 1380 */ 217, 161, 216, 217, 216, 217, 216, 217, 131, 193, - /* 1390 */ 71, 193, 216, 217, 216, 217, 216, 217, 193, 260, - /* 1400 */ 216, 217, 19, 264, 85, 133, 244, 100, 193, 90, - /* 1410 */ 138, 139, 216, 217, 216, 217, 254, 244, 193, 100, - /* 1420 */ 193, 216, 217, 116, 117, 106, 107, 254, 121, 193, - /* 1430 */ 115, 216, 217, 114, 162, 116, 117, 118, 115, 244, - /* 1440 */ 121, 216, 217, 216, 217, 193, 309, 193, 31, 254, - /* 1450 */ 313, 309, 216, 217, 309, 313, 39, 193, 313, 309, - /* 1460 */ 153, 154, 155, 313, 193, 150, 25, 144, 216, 217, - /* 1470 */ 216, 217, 153, 154, 155, 156, 157, 0, 1, 2, - /* 1480 */ 216, 217, 5, 149, 150, 22, 193, 10, 11, 12, - /* 1490 */ 13, 14, 193, 158, 17, 160, 193, 19, 20, 116, - /* 1500 */ 22, 25, 193, 24, 22, 193, 24, 30, 226, 32, - /* 1510 */ 19, 20, 226, 22, 36, 193, 53, 40, 193, 216, - /* 1520 */ 217, 193, 23, 193, 25, 216, 217, 36, 216, 217, - /* 1530 */ 193, 99, 193, 193, 22, 193, 193, 59, 216, 217, - /* 1540 */ 193, 216, 217, 193, 216, 217, 193, 70, 129, 71, - /* 1550 */ 59, 129, 193, 216, 217, 78, 216, 217, 81, 216, - /* 1560 */ 217, 193, 71, 85, 193, 133, 193, 126, 90, 216, - /* 1570 */ 217, 152, 258, 61, 152, 98, 85, 193, 100, 193, - /* 1580 */ 23, 90, 25, 121, 106, 107, 23, 216, 217, 216, - /* 1590 */ 217, 100, 114, 131, 116, 117, 118, 106, 107, 121, - /* 1600 */ 216, 217, 216, 217, 193, 114, 193, 116, 117, 118, - /* 1610 */ 133, 22, 121, 193, 59, 138, 139, 193, 142, 193, - /* 1620 */ 141, 23, 23, 25, 25, 120, 121, 216, 217, 216, - /* 1630 */ 217, 153, 154, 155, 156, 157, 216, 217, 19, 162, - /* 1640 */ 216, 217, 216, 217, 153, 154, 155, 156, 157, 1, - /* 1650 */ 2, 193, 59, 5, 19, 20, 318, 22, 10, 11, - /* 1660 */ 12, 13, 14, 193, 59, 17, 193, 23, 23, 25, - /* 1670 */ 25, 36, 117, 193, 216, 217, 193, 23, 30, 25, - /* 1680 */ 32, 19, 20, 23, 22, 25, 216, 217, 40, 216, - /* 1690 */ 217, 7, 8, 23, 59, 25, 83, 84, 36, 23, - /* 1700 */ 193, 25, 23, 23, 25, 25, 71, 153, 145, 155, - /* 1710 */ 117, 153, 23, 155, 25, 23, 97, 25, 70, 193, - /* 1720 */ 193, 59, 117, 236, 193, 193, 78, 193, 193, 81, - /* 1730 */ 141, 193, 193, 71, 193, 100, 288, 287, 242, 255, - /* 1740 */ 255, 106, 107, 108, 255, 255, 98, 243, 297, 114, - /* 1750 */ 214, 116, 117, 118, 245, 191, 121, 271, 293, 267, - /* 1760 */ 267, 246, 100, 246, 245, 271, 271, 293, 106, 107, - /* 1770 */ 220, 271, 229, 225, 249, 219, 114, 259, 116, 117, - /* 1780 */ 118, 133, 259, 121, 219, 219, 138, 139, 153, 154, - /* 1790 */ 155, 156, 157, 280, 249, 243, 19, 20, 245, 22, - /* 1800 */ 196, 259, 140, 259, 60, 297, 141, 297, 200, 200, - /* 1810 */ 162, 38, 200, 36, 294, 153, 154, 155, 156, 157, - /* 1820 */ 151, 150, 294, 283, 22, 43, 234, 18, 237, 200, - /* 1830 */ 270, 272, 237, 237, 237, 18, 59, 199, 270, 149, - /* 1840 */ 246, 272, 272, 200, 234, 234, 246, 246, 71, 246, - /* 1850 */ 199, 158, 290, 62, 22, 200, 19, 20, 199, 22, - /* 1860 */ 289, 221, 221, 200, 200, 199, 199, 115, 218, 64, - /* 1870 */ 218, 218, 22, 36, 227, 126, 227, 100, 165, 221, - /* 1880 */ 224, 224, 24, 106, 107, 312, 218, 305, 113, 282, - /* 1890 */ 91, 114, 220, 116, 117, 118, 59, 282, 121, 218, - /* 1900 */ 218, 218, 200, 317, 317, 82, 221, 265, 71, 148, - /* 1910 */ 145, 265, 22, 277, 200, 158, 279, 140, 147, 25, - /* 1920 */ 146, 202, 248, 250, 249, 247, 13, 250, 194, 194, - /* 1930 */ 153, 154, 155, 156, 157, 6, 303, 100, 192, 192, - /* 1940 */ 246, 213, 192, 106, 107, 207, 213, 207, 222, 213, - /* 1950 */ 213, 114, 222, 116, 117, 118, 214, 214, 121, 4, - /* 1960 */ 207, 213, 3, 22, 303, 15, 163, 16, 23, 23, - /* 1970 */ 139, 151, 130, 25, 20, 142, 24, 16, 144, 1, - /* 1980 */ 142, 130, 130, 61, 37, 53, 300, 151, 53, 53, - /* 1990 */ 153, 154, 155, 156, 157, 53, 130, 116, 34, 1, - /* 2000 */ 141, 5, 22, 115, 161, 68, 25, 68, 75, 41, - /* 2010 */ 141, 115, 24, 20, 19, 131, 125, 23, 28, 22, - /* 2020 */ 67, 22, 22, 22, 67, 59, 24, 96, 22, 67, - /* 2030 */ 23, 149, 22, 25, 23, 23, 23, 22, 34, 141, - /* 2040 */ 37, 97, 23, 23, 116, 22, 143, 25, 34, 75, - /* 2050 */ 34, 34, 34, 88, 75, 34, 86, 23, 22, 34, - /* 2060 */ 93, 24, 34, 25, 25, 142, 142, 23, 44, 23, - /* 2070 */ 23, 23, 23, 11, 23, 25, 22, 22, 22, 141, - /* 2080 */ 23, 23, 22, 22, 25, 15, 1, 23, 25, 1, - /* 2090 */ 141, 135, 319, 319, 319, 319, 319, 319, 319, 141, - /* 2100 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, - /* 2110 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, - /* 2120 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, - /* 2130 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, - /* 2140 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, - /* 2150 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, - /* 2160 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, - /* 2170 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, - /* 2180 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, - /* 2190 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, - /* 2200 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, - /* 2210 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, - /* 2220 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, - /* 2230 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, - /* 2240 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, - /* 2250 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, - /* 2260 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, - /* 2270 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, - /* 2280 */ 319, 319, 319, 319, 319, + /* 1330 */ 232, 270, 153, 154, 155, 115, 116, 66, 19, 20, + /* 1340 */ 183, 22, 12, 312, 254, 194, 262, 316, 209, 210, + /* 1350 */ 266, 239, 194, 194, 108, 36, 85, 27, 19, 20, + /* 1360 */ 265, 22, 183, 245, 144, 94, 25, 48, 217, 218, + /* 1370 */ 293, 194, 42, 270, 256, 36, 217, 218, 59, 194, + /* 1380 */ 25, 135, 194, 115, 194, 161, 140, 194, 194, 15, + /* 1390 */ 71, 194, 312, 63, 217, 218, 316, 194, 59, 131, + /* 1400 */ 301, 302, 217, 218, 85, 217, 218, 217, 218, 90, + /* 1410 */ 71, 217, 218, 19, 217, 218, 245, 146, 262, 100, + /* 1420 */ 217, 218, 266, 265, 85, 106, 107, 256, 312, 90, + /* 1430 */ 209, 210, 316, 114, 60, 116, 117, 118, 194, 100, + /* 1440 */ 121, 194, 194, 145, 115, 106, 107, 19, 46, 19, + /* 1450 */ 20, 24, 22, 114, 194, 116, 117, 118, 194, 245, + /* 1460 */ 121, 194, 164, 194, 217, 218, 36, 194, 258, 259, + /* 1470 */ 256, 194, 153, 154, 155, 156, 157, 217, 218, 150, + /* 1480 */ 31, 217, 218, 142, 217, 218, 217, 218, 39, 59, + /* 1490 */ 217, 218, 153, 154, 155, 156, 157, 149, 150, 5, + /* 1500 */ 145, 71, 183, 245, 10, 11, 12, 13, 14, 194, + /* 1510 */ 116, 17, 129, 227, 256, 85, 194, 115, 194, 23, + /* 1520 */ 90, 25, 183, 99, 30, 97, 32, 22, 22, 194, + /* 1530 */ 100, 194, 217, 218, 40, 152, 106, 107, 23, 217, + /* 1540 */ 218, 194, 19, 20, 114, 22, 116, 117, 118, 257, + /* 1550 */ 194, 121, 217, 218, 217, 218, 194, 133, 53, 36, + /* 1560 */ 23, 23, 25, 25, 70, 120, 121, 61, 141, 7, + /* 1570 */ 8, 121, 78, 217, 218, 81, 23, 227, 25, 217, + /* 1580 */ 218, 131, 59, 153, 154, 155, 156, 157, 0, 1, + /* 1590 */ 2, 59, 98, 5, 71, 23, 227, 25, 10, 11, + /* 1600 */ 12, 13, 14, 83, 84, 17, 23, 23, 25, 25, + /* 1610 */ 59, 194, 194, 183, 23, 23, 25, 25, 30, 194, + /* 1620 */ 32, 19, 20, 100, 22, 194, 194, 133, 40, 106, + /* 1630 */ 107, 108, 138, 139, 194, 217, 218, 114, 36, 116, + /* 1640 */ 117, 118, 217, 218, 121, 194, 194, 194, 23, 117, + /* 1650 */ 25, 194, 23, 23, 25, 25, 162, 194, 70, 194, + /* 1660 */ 145, 59, 23, 153, 25, 155, 78, 194, 117, 81, + /* 1670 */ 217, 218, 194, 71, 217, 218, 153, 154, 155, 156, + /* 1680 */ 157, 194, 217, 218, 194, 23, 98, 25, 321, 194, + /* 1690 */ 217, 218, 194, 19, 20, 194, 22, 153, 23, 155, + /* 1700 */ 25, 194, 100, 194, 217, 218, 183, 194, 106, 107, + /* 1710 */ 36, 194, 217, 218, 237, 194, 114, 243, 116, 117, + /* 1720 */ 118, 133, 194, 121, 217, 218, 138, 139, 194, 194, + /* 1730 */ 194, 290, 289, 59, 217, 218, 194, 194, 217, 218, + /* 1740 */ 194, 194, 140, 194, 194, 71, 194, 244, 194, 194, + /* 1750 */ 162, 217, 218, 194, 194, 153, 154, 155, 156, 157, + /* 1760 */ 217, 218, 194, 217, 218, 194, 217, 218, 257, 217, + /* 1770 */ 218, 217, 218, 257, 100, 194, 257, 217, 218, 257, + /* 1780 */ 106, 107, 215, 299, 194, 183, 192, 194, 114, 194, + /* 1790 */ 116, 117, 118, 1, 2, 121, 221, 5, 217, 218, + /* 1800 */ 273, 197, 10, 11, 12, 13, 14, 217, 218, 17, + /* 1810 */ 217, 218, 217, 218, 140, 194, 246, 194, 273, 295, + /* 1820 */ 247, 273, 30, 247, 32, 269, 269, 153, 154, 155, + /* 1830 */ 156, 157, 40, 246, 273, 295, 230, 226, 217, 218, + /* 1840 */ 217, 218, 220, 261, 220, 282, 220, 19, 20, 244, + /* 1850 */ 22, 250, 141, 250, 246, 60, 201, 183, 261, 261, + /* 1860 */ 261, 201, 70, 299, 36, 299, 201, 38, 151, 150, + /* 1870 */ 78, 285, 22, 81, 296, 296, 43, 235, 18, 238, + /* 1880 */ 201, 274, 272, 238, 238, 238, 18, 59, 200, 149, + /* 1890 */ 98, 247, 274, 274, 235, 247, 247, 247, 235, 71, + /* 1900 */ 272, 201, 200, 158, 292, 62, 291, 201, 200, 22, + /* 1910 */ 201, 222, 200, 222, 201, 200, 115, 219, 219, 64, + /* 1920 */ 219, 228, 22, 126, 221, 133, 165, 222, 100, 225, + /* 1930 */ 138, 139, 225, 219, 106, 107, 24, 219, 228, 219, + /* 1940 */ 219, 307, 114, 113, 116, 117, 118, 315, 284, 121, + /* 1950 */ 284, 222, 201, 91, 162, 320, 320, 82, 148, 267, + /* 1960 */ 145, 267, 22, 279, 201, 158, 281, 251, 147, 146, + /* 1970 */ 25, 203, 250, 249, 251, 248, 13, 247, 195, 195, + /* 1980 */ 6, 153, 154, 155, 156, 157, 193, 193, 305, 193, + /* 1990 */ 208, 305, 302, 214, 214, 214, 208, 223, 223, 214, + /* 2000 */ 4, 215, 215, 214, 3, 22, 208, 163, 15, 23, + /* 2010 */ 16, 183, 23, 139, 151, 130, 25, 20, 142, 24, + /* 2020 */ 16, 144, 1, 142, 130, 130, 61, 37, 53, 151, + /* 2030 */ 53, 53, 53, 130, 116, 1, 34, 141, 5, 22, + /* 2040 */ 115, 161, 75, 25, 68, 141, 41, 115, 68, 24, + /* 2050 */ 20, 19, 131, 125, 67, 67, 96, 22, 22, 22, + /* 2060 */ 37, 23, 22, 24, 22, 59, 67, 23, 149, 28, + /* 2070 */ 22, 25, 23, 23, 23, 22, 141, 34, 97, 23, + /* 2080 */ 23, 34, 116, 22, 143, 25, 34, 75, 34, 34, + /* 2090 */ 75, 88, 34, 86, 23, 22, 34, 25, 24, 34, + /* 2100 */ 25, 93, 23, 44, 142, 23, 142, 23, 23, 22, + /* 2110 */ 11, 25, 23, 25, 23, 22, 22, 22, 1, 23, + /* 2120 */ 23, 23, 22, 22, 15, 141, 141, 25, 25, 1, + /* 2130 */ 322, 322, 322, 135, 322, 322, 322, 322, 322, 322, + /* 2140 */ 322, 141, 322, 322, 322, 322, 322, 322, 322, 322, + /* 2150 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + /* 2160 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + /* 2170 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + /* 2180 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + /* 2190 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + /* 2200 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + /* 2210 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + /* 2220 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + /* 2230 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + /* 2240 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + /* 2250 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + /* 2260 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + /* 2270 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + /* 2280 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + /* 2290 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + /* 2300 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + /* 2310 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + /* 2320 */ 322, 322, 322, 322, 322, 322, 322, 322, }; -#define YY_SHIFT_COUNT (578) +#define YY_SHIFT_COUNT (582) #define YY_SHIFT_MIN (0) -#define YY_SHIFT_MAX (2088) +#define YY_SHIFT_MAX (2128) static const unsigned short int yy_shift_ofst[] = { - /* 0 */ 1648, 1477, 1272, 322, 322, 1, 1319, 1478, 1491, 1837, - /* 10 */ 1837, 1837, 471, 0, 0, 214, 1093, 1837, 1837, 1837, - /* 20 */ 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, - /* 30 */ 1837, 271, 271, 1219, 1219, 216, 88, 1, 1, 1, - /* 40 */ 1, 1, 40, 111, 258, 361, 469, 512, 583, 622, - /* 50 */ 693, 732, 803, 842, 913, 1073, 1093, 1093, 1093, 1093, - /* 60 */ 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - /* 70 */ 1093, 1093, 1093, 1093, 1113, 1093, 1216, 957, 957, 1635, - /* 80 */ 1662, 1777, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, - /* 90 */ 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, - /* 100 */ 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, - /* 110 */ 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, - /* 120 */ 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, - /* 130 */ 1837, 137, 181, 181, 181, 181, 181, 181, 181, 94, - /* 140 */ 430, 66, 65, 112, 366, 533, 533, 740, 1257, 533, - /* 150 */ 533, 79, 79, 533, 412, 412, 412, 77, 412, 123, - /* 160 */ 113, 113, 113, 22, 22, 2100, 2100, 328, 328, 328, - /* 170 */ 239, 468, 468, 468, 468, 1015, 1015, 409, 366, 1187, - /* 180 */ 1232, 533, 533, 533, 533, 533, 533, 533, 533, 533, - /* 190 */ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, - /* 200 */ 533, 969, 621, 621, 533, 642, 788, 788, 1133, 1133, - /* 210 */ 822, 822, 67, 1193, 2100, 2100, 2100, 2100, 2100, 2100, - /* 220 */ 2100, 1307, 954, 954, 585, 472, 640, 387, 695, 538, - /* 230 */ 541, 700, 533, 533, 533, 533, 533, 533, 533, 533, - /* 240 */ 533, 533, 222, 533, 533, 533, 533, 533, 533, 533, - /* 250 */ 533, 533, 533, 533, 533, 1213, 1213, 1213, 533, 533, - /* 260 */ 533, 565, 533, 533, 533, 916, 1147, 533, 533, 1288, - /* 270 */ 533, 533, 533, 533, 533, 533, 533, 533, 639, 1280, - /* 280 */ 209, 1129, 1129, 1129, 1129, 580, 209, 209, 1209, 768, - /* 290 */ 917, 649, 1315, 1334, 405, 1334, 1383, 249, 1315, 1315, - /* 300 */ 249, 1315, 405, 1383, 1441, 464, 1245, 1417, 1417, 1417, - /* 310 */ 1323, 1323, 1323, 1323, 184, 184, 1335, 1476, 856, 1482, - /* 320 */ 1744, 1744, 1665, 1665, 1773, 1773, 1665, 1669, 1671, 1802, - /* 330 */ 1782, 1809, 1809, 1809, 1809, 1665, 1817, 1690, 1671, 1671, - /* 340 */ 1690, 1802, 1782, 1690, 1782, 1690, 1665, 1817, 1693, 1791, - /* 350 */ 1665, 1817, 1832, 1665, 1817, 1665, 1817, 1832, 1752, 1752, - /* 360 */ 1752, 1805, 1850, 1850, 1832, 1752, 1749, 1752, 1805, 1752, - /* 370 */ 1752, 1713, 1858, 1775, 1775, 1832, 1665, 1799, 1799, 1823, - /* 380 */ 1823, 1761, 1765, 1890, 1665, 1757, 1761, 1771, 1774, 1690, - /* 390 */ 1894, 1913, 1913, 1929, 1929, 1929, 2100, 2100, 2100, 2100, - /* 400 */ 2100, 2100, 2100, 2100, 2100, 2100, 2100, 2100, 2100, 2100, - /* 410 */ 2100, 207, 1220, 331, 620, 967, 806, 1074, 1499, 1432, - /* 420 */ 1463, 1479, 1419, 1422, 1557, 1512, 1598, 1599, 1644, 1645, - /* 430 */ 1654, 1660, 1555, 1505, 1684, 1462, 1670, 1563, 1619, 1593, - /* 440 */ 1676, 1679, 1613, 1680, 1554, 1558, 1689, 1692, 1605, 1589, - /* 450 */ 1955, 1959, 1941, 1803, 1950, 1951, 1945, 1946, 1831, 1820, - /* 460 */ 1842, 1948, 1948, 1952, 1833, 1954, 1834, 1961, 1978, 1838, - /* 470 */ 1851, 1948, 1852, 1922, 1947, 1948, 1836, 1932, 1935, 1936, - /* 480 */ 1942, 1866, 1881, 1964, 1859, 1998, 1996, 1980, 1888, 1843, - /* 490 */ 1937, 1981, 1939, 1933, 1968, 1869, 1896, 1988, 1993, 1995, - /* 500 */ 1884, 1891, 1997, 1953, 1999, 2000, 1994, 2001, 1957, 1966, - /* 510 */ 2002, 1931, 1990, 2006, 1962, 2003, 2007, 2004, 1882, 2010, - /* 520 */ 2011, 2012, 2008, 2013, 2015, 1944, 1898, 2019, 2020, 1928, - /* 530 */ 2014, 2023, 1903, 2022, 2016, 2017, 2018, 2021, 1965, 1974, - /* 540 */ 1970, 2024, 1979, 1967, 2025, 2034, 2036, 2037, 2038, 2039, - /* 550 */ 2028, 1923, 1924, 2044, 2022, 2046, 2047, 2048, 2049, 2050, - /* 560 */ 2051, 2054, 2062, 2055, 2056, 2057, 2058, 2060, 2061, 2059, - /* 570 */ 1956, 1938, 1949, 1958, 2063, 2064, 2070, 2085, 2088, + /* 0 */ 1792, 1588, 1494, 322, 322, 399, 306, 1319, 1339, 1430, + /* 10 */ 1828, 1828, 1828, 580, 399, 399, 399, 399, 399, 0, + /* 20 */ 0, 214, 1093, 1828, 1828, 1828, 1828, 1828, 1828, 1828, + /* 30 */ 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1130, 1130, + /* 40 */ 365, 365, 55, 278, 436, 713, 713, 201, 201, 201, + /* 50 */ 201, 40, 111, 258, 361, 469, 512, 583, 622, 693, + /* 60 */ 732, 803, 842, 913, 1073, 1093, 1093, 1093, 1093, 1093, + /* 70 */ 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, + /* 80 */ 1093, 1093, 1093, 1113, 1093, 1216, 957, 957, 1523, 1602, + /* 90 */ 1674, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, + /* 100 */ 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, + /* 110 */ 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, + /* 120 */ 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, + /* 130 */ 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, + /* 140 */ 137, 181, 181, 181, 181, 181, 181, 181, 96, 222, + /* 150 */ 143, 477, 713, 1133, 1268, 713, 713, 79, 79, 713, + /* 160 */ 770, 83, 65, 65, 65, 288, 162, 162, 2142, 2142, + /* 170 */ 696, 696, 696, 238, 474, 474, 474, 474, 1217, 1217, + /* 180 */ 678, 477, 324, 398, 713, 713, 713, 713, 713, 713, + /* 190 */ 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, + /* 200 */ 713, 713, 713, 1220, 366, 366, 713, 917, 283, 283, + /* 210 */ 434, 434, 605, 605, 1298, 2142, 2142, 2142, 2142, 2142, + /* 220 */ 2142, 2142, 1179, 1157, 1157, 487, 527, 585, 645, 749, + /* 230 */ 914, 968, 752, 713, 713, 713, 713, 713, 713, 713, + /* 240 */ 713, 713, 713, 303, 713, 713, 713, 713, 713, 713, + /* 250 */ 713, 713, 713, 713, 713, 713, 797, 797, 797, 713, + /* 260 */ 713, 713, 959, 713, 713, 713, 1169, 1271, 713, 713, + /* 270 */ 1330, 713, 713, 713, 713, 713, 713, 713, 713, 629, + /* 280 */ 7, 91, 876, 876, 876, 876, 953, 91, 91, 1246, + /* 290 */ 1065, 1106, 1374, 1329, 1348, 468, 1348, 1394, 785, 1329, + /* 300 */ 1329, 785, 1329, 468, 1394, 859, 854, 1402, 1449, 1449, + /* 310 */ 1449, 1173, 1173, 1173, 1173, 1355, 1355, 1030, 1341, 405, + /* 320 */ 1230, 1795, 1795, 1711, 1711, 1829, 1829, 1711, 1717, 1719, + /* 330 */ 1850, 1833, 1860, 1860, 1860, 1860, 1711, 1868, 1740, 1719, + /* 340 */ 1719, 1740, 1850, 1833, 1740, 1833, 1740, 1711, 1868, 1745, + /* 350 */ 1843, 1711, 1868, 1887, 1711, 1868, 1711, 1868, 1887, 1801, + /* 360 */ 1801, 1801, 1855, 1900, 1900, 1887, 1801, 1797, 1801, 1855, + /* 370 */ 1801, 1801, 1761, 1912, 1830, 1830, 1887, 1711, 1862, 1862, + /* 380 */ 1875, 1875, 1810, 1815, 1940, 1711, 1807, 1810, 1821, 1823, + /* 390 */ 1740, 1945, 1963, 1963, 1974, 1974, 1974, 2142, 2142, 2142, + /* 400 */ 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, 2142, + /* 410 */ 2142, 2142, 20, 1224, 256, 1111, 1115, 1114, 1192, 1496, + /* 420 */ 1424, 1505, 1427, 355, 1383, 1537, 1506, 1538, 1553, 1583, + /* 430 */ 1584, 1591, 1625, 541, 1445, 1562, 1450, 1572, 1515, 1428, + /* 440 */ 1532, 1592, 1629, 1520, 1630, 1639, 1510, 1544, 1662, 1675, + /* 450 */ 1551, 48, 1996, 2001, 1983, 1844, 1993, 1994, 1986, 1989, + /* 460 */ 1874, 1863, 1885, 1991, 1991, 1995, 1876, 1997, 1877, 2004, + /* 470 */ 2021, 1881, 1894, 1991, 1895, 1965, 1990, 1991, 1878, 1975, + /* 480 */ 1977, 1978, 1979, 1903, 1918, 2002, 1896, 2034, 2033, 2017, + /* 490 */ 1925, 1880, 1976, 2018, 1980, 1967, 2005, 1904, 1932, 2025, + /* 500 */ 2030, 2032, 1921, 1928, 2035, 1987, 2036, 2037, 2038, 2040, + /* 510 */ 1988, 2006, 2039, 1960, 2041, 2042, 1999, 2023, 2044, 2043, + /* 520 */ 1919, 2048, 2049, 2050, 2046, 2051, 2053, 1981, 1935, 2056, + /* 530 */ 2057, 1966, 2047, 2061, 1941, 2060, 2052, 2054, 2055, 2058, + /* 540 */ 2003, 2012, 2007, 2059, 2015, 2008, 2062, 2071, 2073, 2074, + /* 550 */ 2072, 2075, 2065, 1962, 1964, 2079, 2060, 2082, 2084, 2085, + /* 560 */ 2087, 2086, 2089, 2088, 2091, 2093, 2099, 2094, 2095, 2096, + /* 570 */ 2097, 2100, 2101, 2102, 1998, 1984, 1985, 2000, 2103, 2098, + /* 580 */ 2109, 2117, 2128, }; -#define YY_REDUCE_COUNT (410) -#define YY_REDUCE_MIN (-271) -#define YY_REDUCE_MAX (1753) +#define YY_REDUCE_COUNT (411) +#define YY_REDUCE_MIN (-275) +#define YY_REDUCE_MAX (1798) static const short yy_reduce_ofst[] = { - /* 0 */ -125, 733, 789, 241, 293, -123, -193, -191, -183, -187, - /* 10 */ 166, 238, 133, -207, -199, -267, -176, -6, 204, 489, - /* 20 */ 576, 598, -175, 686, 860, 615, 725, 1014, 778, 781, - /* 30 */ 857, 616, 887, 87, 240, -192, 408, 626, 796, 843, - /* 40 */ 854, 1004, -271, -271, -271, -271, -271, -271, -271, -271, - /* 50 */ -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, - /* 60 */ -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, - /* 70 */ -271, -271, -271, -271, -271, -271, -271, -271, -271, 80, - /* 80 */ 83, 313, 886, 888, 918, 938, 1021, 1034, 1036, 1141, - /* 90 */ 1159, 1163, 1166, 1168, 1170, 1176, 1178, 1180, 1184, 1196, - /* 100 */ 1198, 1205, 1215, 1225, 1227, 1236, 1252, 1254, 1264, 1303, - /* 110 */ 1309, 1312, 1322, 1325, 1328, 1337, 1340, 1343, 1353, 1371, - /* 120 */ 1373, 1384, 1386, 1411, 1413, 1420, 1424, 1426, 1458, 1470, - /* 130 */ 1473, -271, -271, -271, -271, -271, -271, -271, -271, -271, - /* 140 */ -271, -271, 138, 459, 396, -158, 470, 302, -212, 521, - /* 150 */ 201, -195, -92, 559, 630, 632, 630, -271, 632, 901, - /* 160 */ 63, 407, 670, -271, -271, -271, -271, 161, 161, 161, - /* 170 */ 251, 335, 847, 979, 1097, 537, 588, 618, 628, 688, - /* 180 */ 688, -166, -161, 674, 787, 794, 799, 852, 996, -122, - /* 190 */ 837, -120, 1018, 1035, 415, 1047, 1001, 958, 1082, 400, - /* 200 */ 1099, 779, 1137, 1142, 263, 1083, 1145, 1150, 1041, 1139, - /* 210 */ 965, 1050, 362, 849, 752, 629, 675, 1162, 1173, 1090, - /* 220 */ 1195, -194, 56, 185, -135, 232, 522, 560, 571, 601, - /* 230 */ 617, 669, 683, 711, 850, 893, 1000, 1040, 1049, 1081, - /* 240 */ 1087, 1101, 392, 1114, 1123, 1155, 1161, 1175, 1271, 1293, - /* 250 */ 1299, 1330, 1339, 1342, 1347, 593, 1282, 1286, 1350, 1359, - /* 260 */ 1368, 1314, 1480, 1483, 1507, 1085, 1338, 1526, 1527, 1487, - /* 270 */ 1531, 560, 1532, 1534, 1535, 1538, 1539, 1541, 1448, 1450, - /* 280 */ 1496, 1484, 1485, 1489, 1490, 1314, 1496, 1496, 1504, 1536, - /* 290 */ 1564, 1451, 1486, 1492, 1509, 1493, 1465, 1515, 1494, 1495, - /* 300 */ 1517, 1500, 1519, 1474, 1550, 1543, 1548, 1556, 1565, 1566, - /* 310 */ 1518, 1523, 1542, 1544, 1525, 1545, 1513, 1553, 1552, 1604, - /* 320 */ 1508, 1510, 1608, 1609, 1520, 1528, 1612, 1540, 1559, 1560, - /* 330 */ 1592, 1591, 1595, 1596, 1597, 1629, 1638, 1594, 1569, 1570, - /* 340 */ 1600, 1568, 1610, 1601, 1611, 1603, 1643, 1651, 1562, 1571, - /* 350 */ 1655, 1659, 1640, 1663, 1666, 1664, 1667, 1641, 1650, 1652, - /* 360 */ 1653, 1647, 1656, 1657, 1658, 1668, 1672, 1681, 1649, 1682, - /* 370 */ 1683, 1573, 1582, 1607, 1615, 1685, 1702, 1586, 1587, 1642, - /* 380 */ 1646, 1673, 1675, 1636, 1714, 1637, 1677, 1674, 1678, 1694, - /* 390 */ 1719, 1734, 1735, 1746, 1747, 1750, 1633, 1661, 1686, 1738, - /* 400 */ 1728, 1733, 1736, 1737, 1740, 1726, 1730, 1742, 1743, 1748, - /* 410 */ 1753, + /* 0 */ -71, 194, 343, 835, -180, -177, 838, -194, -188, -185, + /* 10 */ -183, 82, 183, -65, 133, 245, 346, 407, 458, -178, + /* 20 */ 75, -275, -4, 310, 312, 489, 575, 596, 463, 686, + /* 30 */ 707, 725, 780, 1098, 856, 778, 1059, 1090, 708, 887, + /* 40 */ 86, 448, 980, 630, 680, 681, 684, 796, 801, 796, + /* 50 */ 801, -261, -261, -261, -261, -261, -261, -261, -261, -261, + /* 60 */ -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, + /* 70 */ -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, + /* 80 */ -261, -261, -261, -261, -261, -261, -261, -261, 391, 886, + /* 90 */ 888, 1013, 1016, 1081, 1087, 1151, 1159, 1177, 1185, 1188, + /* 100 */ 1190, 1194, 1197, 1203, 1247, 1260, 1264, 1267, 1269, 1273, + /* 110 */ 1315, 1322, 1335, 1337, 1356, 1362, 1418, 1425, 1453, 1457, + /* 120 */ 1465, 1473, 1487, 1495, 1507, 1517, 1521, 1534, 1543, 1546, + /* 130 */ 1549, 1552, 1554, 1560, 1581, 1590, 1593, 1595, 1621, 1623, + /* 140 */ -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, + /* 150 */ -261, -186, -117, 260, 263, 460, 631, -74, 497, -181, + /* 160 */ -261, 939, 176, 274, 338, 676, -261, -261, -261, -261, + /* 170 */ -212, -212, -212, -184, 149, 777, 1061, 1103, 265, 419, + /* 180 */ -254, 670, 677, 677, -11, -129, 184, 488, 736, 789, + /* 190 */ 805, 844, 403, 529, 579, 668, 783, 841, 1158, 1112, + /* 200 */ 806, 861, 1095, 846, 839, 1031, -189, 1077, 1080, 1116, + /* 210 */ 1084, 1156, 1139, 1221, 46, 1099, 1037, 1118, 1171, 1214, + /* 220 */ 1210, 1258, -210, -190, -176, -115, 117, 262, 376, 490, + /* 230 */ 511, 520, 618, 639, 743, 901, 907, 958, 1014, 1055, + /* 240 */ 1108, 1193, 1244, 720, 1248, 1277, 1324, 1347, 1417, 1431, + /* 250 */ 1432, 1440, 1451, 1452, 1463, 1478, 1286, 1350, 1369, 1490, + /* 260 */ 1498, 1501, 773, 1509, 1513, 1528, 1292, 1367, 1535, 1536, + /* 270 */ 1477, 1542, 376, 1547, 1550, 1555, 1559, 1568, 1571, 1441, + /* 280 */ 1443, 1474, 1511, 1516, 1519, 1522, 773, 1474, 1474, 1503, + /* 290 */ 1567, 1594, 1484, 1527, 1556, 1570, 1557, 1524, 1573, 1545, + /* 300 */ 1548, 1576, 1561, 1587, 1540, 1575, 1606, 1611, 1622, 1624, + /* 310 */ 1626, 1582, 1597, 1598, 1599, 1601, 1603, 1563, 1608, 1605, + /* 320 */ 1604, 1564, 1566, 1655, 1660, 1578, 1579, 1665, 1586, 1607, + /* 330 */ 1610, 1642, 1641, 1645, 1646, 1647, 1679, 1688, 1644, 1618, + /* 340 */ 1619, 1648, 1628, 1659, 1649, 1663, 1650, 1700, 1702, 1612, + /* 350 */ 1615, 1706, 1708, 1689, 1709, 1712, 1713, 1715, 1691, 1698, + /* 360 */ 1699, 1701, 1693, 1704, 1707, 1705, 1714, 1703, 1718, 1710, + /* 370 */ 1720, 1721, 1632, 1634, 1664, 1666, 1729, 1751, 1635, 1636, + /* 380 */ 1692, 1694, 1716, 1722, 1684, 1763, 1685, 1723, 1724, 1727, + /* 390 */ 1730, 1768, 1783, 1784, 1793, 1794, 1796, 1683, 1686, 1690, + /* 400 */ 1782, 1779, 1780, 1781, 1785, 1788, 1774, 1775, 1786, 1787, + /* 410 */ 1789, 1798, }; static const YYACTIONTYPE yy_default[] = { - /* 0 */ 1648, 1648, 1648, 1478, 1243, 1354, 1243, 1243, 1243, 1478, - /* 10 */ 1478, 1478, 1243, 1384, 1384, 1531, 1276, 1243, 1243, 1243, - /* 20 */ 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1477, 1243, - /* 30 */ 1243, 1243, 1243, 1564, 1564, 1243, 1243, 1243, 1243, 1243, - /* 40 */ 1243, 1243, 1243, 1393, 1243, 1400, 1243, 1243, 1243, 1243, - /* 50 */ 1243, 1479, 1480, 1243, 1243, 1243, 1530, 1532, 1495, 1407, - /* 60 */ 1406, 1405, 1404, 1513, 1372, 1398, 1391, 1395, 1474, 1475, - /* 70 */ 1473, 1626, 1480, 1479, 1243, 1394, 1442, 1458, 1441, 1243, - /* 80 */ 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, - /* 90 */ 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, - /* 100 */ 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, - /* 110 */ 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, - /* 120 */ 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, - /* 130 */ 1243, 1450, 1457, 1456, 1455, 1464, 1454, 1451, 1444, 1443, - /* 140 */ 1445, 1446, 1243, 1243, 1267, 1243, 1243, 1264, 1318, 1243, - /* 150 */ 1243, 1243, 1243, 1243, 1550, 1549, 1243, 1447, 1243, 1276, - /* 160 */ 1435, 1434, 1433, 1461, 1448, 1460, 1459, 1538, 1600, 1599, - /* 170 */ 1496, 1243, 1243, 1243, 1243, 1243, 1243, 1564, 1243, 1243, - /* 180 */ 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, - /* 190 */ 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, - /* 200 */ 1243, 1374, 1564, 1564, 1243, 1276, 1564, 1564, 1375, 1375, - /* 210 */ 1272, 1272, 1378, 1243, 1545, 1345, 1345, 1345, 1345, 1354, - /* 220 */ 1345, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, - /* 230 */ 1243, 1243, 1243, 1243, 1243, 1243, 1535, 1533, 1243, 1243, - /* 240 */ 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, - /* 250 */ 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, - /* 260 */ 1243, 1243, 1243, 1243, 1243, 1350, 1243, 1243, 1243, 1243, - /* 270 */ 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1593, 1243, 1508, - /* 280 */ 1332, 1350, 1350, 1350, 1350, 1352, 1333, 1331, 1344, 1277, - /* 290 */ 1250, 1640, 1410, 1399, 1351, 1399, 1637, 1397, 1410, 1410, - /* 300 */ 1397, 1410, 1351, 1637, 1293, 1615, 1288, 1384, 1384, 1384, - /* 310 */ 1374, 1374, 1374, 1374, 1378, 1378, 1476, 1351, 1344, 1243, - /* 320 */ 1640, 1640, 1360, 1360, 1639, 1639, 1360, 1496, 1623, 1419, - /* 330 */ 1321, 1327, 1327, 1327, 1327, 1360, 1261, 1397, 1623, 1623, - /* 340 */ 1397, 1419, 1321, 1397, 1321, 1397, 1360, 1261, 1512, 1634, - /* 350 */ 1360, 1261, 1486, 1360, 1261, 1360, 1261, 1486, 1319, 1319, - /* 360 */ 1319, 1308, 1243, 1243, 1486, 1319, 1293, 1319, 1308, 1319, - /* 370 */ 1319, 1582, 1243, 1490, 1490, 1486, 1360, 1574, 1574, 1387, - /* 380 */ 1387, 1392, 1378, 1481, 1360, 1243, 1392, 1390, 1388, 1397, - /* 390 */ 1311, 1596, 1596, 1592, 1592, 1592, 1645, 1645, 1545, 1608, - /* 400 */ 1276, 1276, 1276, 1276, 1608, 1295, 1295, 1277, 1277, 1276, - /* 410 */ 1608, 1243, 1243, 1243, 1243, 1243, 1243, 1603, 1243, 1540, - /* 420 */ 1497, 1364, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, - /* 430 */ 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1551, 1243, - /* 440 */ 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1424, - /* 450 */ 1243, 1246, 1542, 1243, 1243, 1243, 1243, 1243, 1243, 1243, - /* 460 */ 1243, 1401, 1402, 1365, 1243, 1243, 1243, 1243, 1243, 1243, - /* 470 */ 1243, 1416, 1243, 1243, 1243, 1411, 1243, 1243, 1243, 1243, - /* 480 */ 1243, 1243, 1243, 1243, 1636, 1243, 1243, 1243, 1243, 1243, - /* 490 */ 1243, 1511, 1510, 1243, 1243, 1362, 1243, 1243, 1243, 1243, - /* 500 */ 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1291, - /* 510 */ 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, - /* 520 */ 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, - /* 530 */ 1243, 1243, 1243, 1389, 1243, 1243, 1243, 1243, 1243, 1243, - /* 540 */ 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1579, 1379, - /* 550 */ 1243, 1243, 1243, 1243, 1627, 1243, 1243, 1243, 1243, 1243, - /* 560 */ 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1619, - /* 570 */ 1335, 1425, 1243, 1428, 1265, 1243, 1255, 1243, 1243, + /* 0 */ 1663, 1663, 1663, 1491, 1254, 1367, 1254, 1254, 1254, 1254, + /* 10 */ 1491, 1491, 1491, 1254, 1254, 1254, 1254, 1254, 1254, 1397, + /* 20 */ 1397, 1544, 1287, 1254, 1254, 1254, 1254, 1254, 1254, 1254, + /* 30 */ 1254, 1254, 1254, 1254, 1254, 1490, 1254, 1254, 1254, 1254, + /* 40 */ 1578, 1578, 1254, 1254, 1254, 1254, 1254, 1563, 1562, 1254, + /* 50 */ 1254, 1254, 1406, 1254, 1413, 1254, 1254, 1254, 1254, 1254, + /* 60 */ 1492, 1493, 1254, 1254, 1254, 1543, 1545, 1508, 1420, 1419, + /* 70 */ 1418, 1417, 1526, 1385, 1411, 1404, 1408, 1487, 1488, 1486, + /* 80 */ 1641, 1493, 1492, 1254, 1407, 1455, 1471, 1454, 1254, 1254, + /* 90 */ 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, + /* 100 */ 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, + /* 110 */ 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, + /* 120 */ 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, + /* 130 */ 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, + /* 140 */ 1463, 1470, 1469, 1468, 1477, 1467, 1464, 1457, 1456, 1458, + /* 150 */ 1459, 1278, 1254, 1275, 1329, 1254, 1254, 1254, 1254, 1254, + /* 160 */ 1460, 1287, 1448, 1447, 1446, 1254, 1474, 1461, 1473, 1472, + /* 170 */ 1551, 1615, 1614, 1509, 1254, 1254, 1254, 1254, 1254, 1254, + /* 180 */ 1578, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, + /* 190 */ 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, + /* 200 */ 1254, 1254, 1254, 1387, 1578, 1578, 1254, 1287, 1578, 1578, + /* 210 */ 1388, 1388, 1283, 1283, 1391, 1558, 1358, 1358, 1358, 1358, + /* 220 */ 1367, 1358, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, + /* 230 */ 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1548, 1546, 1254, + /* 240 */ 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, + /* 250 */ 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, + /* 260 */ 1254, 1254, 1254, 1254, 1254, 1254, 1363, 1254, 1254, 1254, + /* 270 */ 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1608, 1254, + /* 280 */ 1521, 1343, 1363, 1363, 1363, 1363, 1365, 1344, 1342, 1357, + /* 290 */ 1288, 1261, 1655, 1423, 1412, 1364, 1412, 1652, 1410, 1423, + /* 300 */ 1423, 1410, 1423, 1364, 1652, 1304, 1630, 1299, 1397, 1397, + /* 310 */ 1397, 1387, 1387, 1387, 1387, 1391, 1391, 1489, 1364, 1357, + /* 320 */ 1254, 1655, 1655, 1373, 1373, 1654, 1654, 1373, 1509, 1638, + /* 330 */ 1432, 1332, 1338, 1338, 1338, 1338, 1373, 1272, 1410, 1638, + /* 340 */ 1638, 1410, 1432, 1332, 1410, 1332, 1410, 1373, 1272, 1525, + /* 350 */ 1649, 1373, 1272, 1499, 1373, 1272, 1373, 1272, 1499, 1330, + /* 360 */ 1330, 1330, 1319, 1254, 1254, 1499, 1330, 1304, 1330, 1319, + /* 370 */ 1330, 1330, 1596, 1254, 1503, 1503, 1499, 1373, 1588, 1588, + /* 380 */ 1400, 1400, 1405, 1391, 1494, 1373, 1254, 1405, 1403, 1401, + /* 390 */ 1410, 1322, 1611, 1611, 1607, 1607, 1607, 1660, 1660, 1558, + /* 400 */ 1623, 1287, 1287, 1287, 1287, 1623, 1306, 1306, 1288, 1288, + /* 410 */ 1287, 1623, 1254, 1254, 1254, 1254, 1254, 1254, 1618, 1254, + /* 420 */ 1553, 1510, 1377, 1254, 1254, 1254, 1254, 1254, 1254, 1254, + /* 430 */ 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1564, + /* 440 */ 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, + /* 450 */ 1254, 1437, 1254, 1257, 1555, 1254, 1254, 1254, 1254, 1254, + /* 460 */ 1254, 1254, 1254, 1414, 1415, 1378, 1254, 1254, 1254, 1254, + /* 470 */ 1254, 1254, 1254, 1429, 1254, 1254, 1254, 1424, 1254, 1254, + /* 480 */ 1254, 1254, 1254, 1254, 1254, 1254, 1651, 1254, 1254, 1254, + /* 490 */ 1254, 1254, 1254, 1524, 1523, 1254, 1254, 1375, 1254, 1254, + /* 500 */ 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, + /* 510 */ 1254, 1302, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, + /* 520 */ 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, + /* 530 */ 1254, 1254, 1254, 1254, 1254, 1402, 1254, 1254, 1254, 1254, + /* 540 */ 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, + /* 550 */ 1593, 1392, 1254, 1254, 1254, 1254, 1642, 1254, 1254, 1254, + /* 560 */ 1254, 1352, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, + /* 570 */ 1254, 1254, 1254, 1634, 1346, 1438, 1254, 1441, 1276, 1254, + /* 580 */ 1266, 1254, 1254, }; /********** End of lemon-generated parsing tables *****************************/ @@ -172302,8 +173893,8 @@ static const YYCODETYPE yyFallback[] = { 0, /* TRUEFALSE => nothing */ 0, /* ISNOT => nothing */ 0, /* FUNCTION => nothing */ - 0, /* UMINUS => nothing */ 0, /* UPLUS => nothing */ + 0, /* UMINUS => nothing */ 0, /* TRUTH => nothing */ 0, /* REGISTER => nothing */ 0, /* VECTOR => nothing */ @@ -172312,6 +173903,7 @@ static const YYCODETYPE yyFallback[] = { 0, /* ASTERISK => nothing */ 0, /* SPAN => nothing */ 0, /* ERROR => nothing */ + 0, /* QNUMBER => nothing */ 0, /* SPACE => nothing */ 0, /* ILLEGAL => nothing */ }; @@ -172354,14 +173946,9 @@ struct yyParser { #endif sqlite3ParserARG_SDECL /* A place to hold %extra_argument */ sqlite3ParserCTX_SDECL /* A place to hold %extra_context */ -#if YYSTACKDEPTH<=0 - int yystksz; /* Current side of the stack */ - yyStackEntry *yystack; /* The parser's stack */ - yyStackEntry yystk0; /* First stack entry */ -#else - yyStackEntry yystack[YYSTACKDEPTH]; /* The parser's stack */ - yyStackEntry *yystackEnd; /* Last entry in the stack */ -#endif + yyStackEntry *yystackEnd; /* Last entry in the stack */ + yyStackEntry *yystack; /* The parser stack */ + yyStackEntry yystk0[YYSTACKDEPTH]; /* Initial stack space */ }; typedef struct yyParser yyParser; @@ -172575,8 +174162,8 @@ static const char *const yyTokenName[] = { /* 170 */ "TRUEFALSE", /* 171 */ "ISNOT", /* 172 */ "FUNCTION", - /* 173 */ "UMINUS", - /* 174 */ "UPLUS", + /* 173 */ "UPLUS", + /* 174 */ "UMINUS", /* 175 */ "TRUTH", /* 176 */ "REGISTER", /* 177 */ "VECTOR", @@ -172585,142 +174172,145 @@ static const char *const yyTokenName[] = { /* 180 */ "ASTERISK", /* 181 */ "SPAN", /* 182 */ "ERROR", - /* 183 */ "SPACE", - /* 184 */ "ILLEGAL", - /* 185 */ "input", - /* 186 */ "cmdlist", - /* 187 */ "ecmd", - /* 188 */ "cmdx", - /* 189 */ "explain", - /* 190 */ "cmd", - /* 191 */ "transtype", - /* 192 */ "trans_opt", - /* 193 */ "nm", - /* 194 */ "savepoint_opt", - /* 195 */ "create_table", - /* 196 */ "create_table_args", - /* 197 */ "createkw", - /* 198 */ "temp", - /* 199 */ "ifnotexists", - /* 200 */ "dbnm", - /* 201 */ "columnlist", - /* 202 */ "conslist_opt", - /* 203 */ "table_option_set", - /* 204 */ "select", - /* 205 */ "table_option", - /* 206 */ "columnname", - /* 207 */ "carglist", - /* 208 */ "typetoken", - /* 209 */ "typename", - /* 210 */ "signed", - /* 211 */ "plus_num", - /* 212 */ "minus_num", - /* 213 */ "scanpt", - /* 214 */ "scantok", - /* 215 */ "ccons", - /* 216 */ "term", - /* 217 */ "expr", - /* 218 */ "onconf", - /* 219 */ "sortorder", - /* 220 */ "autoinc", - /* 221 */ "eidlist_opt", - /* 222 */ "refargs", - /* 223 */ "defer_subclause", - /* 224 */ "generated", - /* 225 */ "refarg", - /* 226 */ "refact", - /* 227 */ "init_deferred_pred_opt", - /* 228 */ "conslist", - /* 229 */ "tconscomma", - /* 230 */ "tcons", - /* 231 */ "sortlist", - /* 232 */ "eidlist", - /* 233 */ "defer_subclause_opt", - /* 234 */ "orconf", - /* 235 */ "resolvetype", - /* 236 */ "raisetype", - /* 237 */ "ifexists", - /* 238 */ "fullname", - /* 239 */ "selectnowith", - /* 240 */ "oneselect", - /* 241 */ "wqlist", - /* 242 */ "multiselect_op", - /* 243 */ "distinct", - /* 244 */ "selcollist", - /* 245 */ "from", - /* 246 */ "where_opt", - /* 247 */ "groupby_opt", - /* 248 */ "having_opt", - /* 249 */ "orderby_opt", - /* 250 */ "limit_opt", - /* 251 */ "window_clause", - /* 252 */ "values", - /* 253 */ "nexprlist", - /* 254 */ "sclp", - /* 255 */ "as", - /* 256 */ "seltablist", - /* 257 */ "stl_prefix", - /* 258 */ "joinop", - /* 259 */ "on_using", - /* 260 */ "indexed_by", - /* 261 */ "exprlist", - /* 262 */ "xfullname", - /* 263 */ "idlist", - /* 264 */ "indexed_opt", - /* 265 */ "nulls", - /* 266 */ "with", - /* 267 */ "where_opt_ret", - /* 268 */ "setlist", - /* 269 */ "insert_cmd", - /* 270 */ "idlist_opt", - /* 271 */ "upsert", - /* 272 */ "returning", - /* 273 */ "filter_over", - /* 274 */ "likeop", - /* 275 */ "between_op", - /* 276 */ "in_op", - /* 277 */ "paren_exprlist", - /* 278 */ "case_operand", - /* 279 */ "case_exprlist", - /* 280 */ "case_else", - /* 281 */ "uniqueflag", - /* 282 */ "collate", - /* 283 */ "vinto", - /* 284 */ "nmnum", - /* 285 */ "trigger_decl", - /* 286 */ "trigger_cmd_list", - /* 287 */ "trigger_time", - /* 288 */ "trigger_event", - /* 289 */ "foreach_clause", - /* 290 */ "when_clause", - /* 291 */ "trigger_cmd", - /* 292 */ "trnm", - /* 293 */ "tridxby", - /* 294 */ "database_kw_opt", - /* 295 */ "key_opt", - /* 296 */ "add_column_fullname", - /* 297 */ "kwcolumn_opt", - /* 298 */ "create_vtab", - /* 299 */ "vtabarglist", - /* 300 */ "vtabarg", - /* 301 */ "vtabargtoken", - /* 302 */ "lp", - /* 303 */ "anylist", - /* 304 */ "wqitem", - /* 305 */ "wqas", - /* 306 */ "windowdefn_list", - /* 307 */ "windowdefn", - /* 308 */ "window", - /* 309 */ "frame_opt", - /* 310 */ "part_opt", - /* 311 */ "filter_clause", - /* 312 */ "over_clause", - /* 313 */ "range_or_rows", - /* 314 */ "frame_bound", - /* 315 */ "frame_bound_s", - /* 316 */ "frame_bound_e", - /* 317 */ "frame_exclude_opt", - /* 318 */ "frame_exclude", + /* 183 */ "QNUMBER", + /* 184 */ "SPACE", + /* 185 */ "ILLEGAL", + /* 186 */ "input", + /* 187 */ "cmdlist", + /* 188 */ "ecmd", + /* 189 */ "cmdx", + /* 190 */ "explain", + /* 191 */ "cmd", + /* 192 */ "transtype", + /* 193 */ "trans_opt", + /* 194 */ "nm", + /* 195 */ "savepoint_opt", + /* 196 */ "create_table", + /* 197 */ "create_table_args", + /* 198 */ "createkw", + /* 199 */ "temp", + /* 200 */ "ifnotexists", + /* 201 */ "dbnm", + /* 202 */ "columnlist", + /* 203 */ "conslist_opt", + /* 204 */ "table_option_set", + /* 205 */ "select", + /* 206 */ "table_option", + /* 207 */ "columnname", + /* 208 */ "carglist", + /* 209 */ "typetoken", + /* 210 */ "typename", + /* 211 */ "signed", + /* 212 */ "plus_num", + /* 213 */ "minus_num", + /* 214 */ "scanpt", + /* 215 */ "scantok", + /* 216 */ "ccons", + /* 217 */ "term", + /* 218 */ "expr", + /* 219 */ "onconf", + /* 220 */ "sortorder", + /* 221 */ "autoinc", + /* 222 */ "eidlist_opt", + /* 223 */ "refargs", + /* 224 */ "defer_subclause", + /* 225 */ "generated", + /* 226 */ "refarg", + /* 227 */ "refact", + /* 228 */ "init_deferred_pred_opt", + /* 229 */ "conslist", + /* 230 */ "tconscomma", + /* 231 */ "tcons", + /* 232 */ "sortlist", + /* 233 */ "eidlist", + /* 234 */ "defer_subclause_opt", + /* 235 */ "orconf", + /* 236 */ "resolvetype", + /* 237 */ "raisetype", + /* 238 */ "ifexists", + /* 239 */ "fullname", + /* 240 */ "selectnowith", + /* 241 */ "oneselect", + /* 242 */ "wqlist", + /* 243 */ "multiselect_op", + /* 244 */ "distinct", + /* 245 */ "selcollist", + /* 246 */ "from", + /* 247 */ "where_opt", + /* 248 */ "groupby_opt", + /* 249 */ "having_opt", + /* 250 */ "orderby_opt", + /* 251 */ "limit_opt", + /* 252 */ "window_clause", + /* 253 */ "values", + /* 254 */ "nexprlist", + /* 255 */ "mvalues", + /* 256 */ "sclp", + /* 257 */ "as", + /* 258 */ "seltablist", + /* 259 */ "stl_prefix", + /* 260 */ "joinop", + /* 261 */ "on_using", + /* 262 */ "indexed_by", + /* 263 */ "exprlist", + /* 264 */ "xfullname", + /* 265 */ "idlist", + /* 266 */ "indexed_opt", + /* 267 */ "nulls", + /* 268 */ "with", + /* 269 */ "where_opt_ret", + /* 270 */ "setlist", + /* 271 */ "insert_cmd", + /* 272 */ "idlist_opt", + /* 273 */ "upsert", + /* 274 */ "returning", + /* 275 */ "filter_over", + /* 276 */ "likeop", + /* 277 */ "between_op", + /* 278 */ "in_op", + /* 279 */ "paren_exprlist", + /* 280 */ "case_operand", + /* 281 */ "case_exprlist", + /* 282 */ "case_else", + /* 283 */ "uniqueflag", + /* 284 */ "collate", + /* 285 */ "vinto", + /* 286 */ "nmnum", + /* 287 */ "trigger_decl", + /* 288 */ "trigger_cmd_list", + /* 289 */ "trigger_time", + /* 290 */ "trigger_event", + /* 291 */ "foreach_clause", + /* 292 */ "when_clause", + /* 293 */ "trigger_cmd", + /* 294 */ "trnm", + /* 295 */ "tridxby", + /* 296 */ "database_kw_opt", + /* 297 */ "key_opt", + /* 298 */ "add_column_fullname", + /* 299 */ "kwcolumn_opt", + /* 300 */ "create_vtab", + /* 301 */ "vtabarglist", + /* 302 */ "vtabarg", + /* 303 */ "vtabargtoken", + /* 304 */ "lp", + /* 305 */ "anylist", + /* 306 */ "wqitem", + /* 307 */ "wqas", + /* 308 */ "withnm", + /* 309 */ "windowdefn_list", + /* 310 */ "windowdefn", + /* 311 */ "window", + /* 312 */ "frame_opt", + /* 313 */ "part_opt", + /* 314 */ "filter_clause", + /* 315 */ "over_clause", + /* 316 */ "range_or_rows", + /* 317 */ "frame_bound", + /* 318 */ "frame_bound_s", + /* 319 */ "frame_bound_e", + /* 320 */ "frame_exclude_opt", + /* 321 */ "frame_exclude", }; #endif /* defined(YYCOVERAGE) || !defined(NDEBUG) */ @@ -172823,351 +174413,363 @@ static const char *const yyRuleName[] = { /* 92 */ "oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt", /* 93 */ "oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt", /* 94 */ "values ::= VALUES LP nexprlist RP", - /* 95 */ "values ::= values COMMA LP nexprlist RP", - /* 96 */ "distinct ::= DISTINCT", - /* 97 */ "distinct ::= ALL", - /* 98 */ "distinct ::=", - /* 99 */ "sclp ::=", - /* 100 */ "selcollist ::= sclp scanpt expr scanpt as", - /* 101 */ "selcollist ::= sclp scanpt STAR", - /* 102 */ "selcollist ::= sclp scanpt nm DOT STAR", - /* 103 */ "as ::= AS nm", - /* 104 */ "as ::=", - /* 105 */ "from ::=", - /* 106 */ "from ::= FROM seltablist", - /* 107 */ "stl_prefix ::= seltablist joinop", - /* 108 */ "stl_prefix ::=", - /* 109 */ "seltablist ::= stl_prefix nm dbnm as on_using", - /* 110 */ "seltablist ::= stl_prefix nm dbnm as indexed_by on_using", - /* 111 */ "seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_using", - /* 112 */ "seltablist ::= stl_prefix LP select RP as on_using", - /* 113 */ "seltablist ::= stl_prefix LP seltablist RP as on_using", - /* 114 */ "dbnm ::=", - /* 115 */ "dbnm ::= DOT nm", - /* 116 */ "fullname ::= nm", - /* 117 */ "fullname ::= nm DOT nm", - /* 118 */ "xfullname ::= nm", - /* 119 */ "xfullname ::= nm DOT nm", - /* 120 */ "xfullname ::= nm DOT nm AS nm", - /* 121 */ "xfullname ::= nm AS nm", - /* 122 */ "joinop ::= COMMA|JOIN", - /* 123 */ "joinop ::= JOIN_KW JOIN", - /* 124 */ "joinop ::= JOIN_KW nm JOIN", - /* 125 */ "joinop ::= JOIN_KW nm nm JOIN", - /* 126 */ "on_using ::= ON expr", - /* 127 */ "on_using ::= USING LP idlist RP", - /* 128 */ "on_using ::=", - /* 129 */ "indexed_opt ::=", - /* 130 */ "indexed_by ::= INDEXED BY nm", - /* 131 */ "indexed_by ::= NOT INDEXED", - /* 132 */ "orderby_opt ::=", - /* 133 */ "orderby_opt ::= ORDER BY sortlist", - /* 134 */ "sortlist ::= sortlist COMMA expr sortorder nulls", - /* 135 */ "sortlist ::= expr sortorder nulls", - /* 136 */ "sortorder ::= ASC", - /* 137 */ "sortorder ::= DESC", - /* 138 */ "sortorder ::=", - /* 139 */ "nulls ::= NULLS FIRST", - /* 140 */ "nulls ::= NULLS LAST", - /* 141 */ "nulls ::=", - /* 142 */ "groupby_opt ::=", - /* 143 */ "groupby_opt ::= GROUP BY nexprlist", - /* 144 */ "having_opt ::=", - /* 145 */ "having_opt ::= HAVING expr", - /* 146 */ "limit_opt ::=", - /* 147 */ "limit_opt ::= LIMIT expr", - /* 148 */ "limit_opt ::= LIMIT expr OFFSET expr", - /* 149 */ "limit_opt ::= LIMIT expr COMMA expr", - /* 150 */ "cmd ::= with DELETE FROM xfullname indexed_opt where_opt_ret", - /* 151 */ "where_opt ::=", - /* 152 */ "where_opt ::= WHERE expr", - /* 153 */ "where_opt_ret ::=", - /* 154 */ "where_opt_ret ::= WHERE expr", - /* 155 */ "where_opt_ret ::= RETURNING selcollist", - /* 156 */ "where_opt_ret ::= WHERE expr RETURNING selcollist", - /* 157 */ "cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist from where_opt_ret", - /* 158 */ "setlist ::= setlist COMMA nm EQ expr", - /* 159 */ "setlist ::= setlist COMMA LP idlist RP EQ expr", - /* 160 */ "setlist ::= nm EQ expr", - /* 161 */ "setlist ::= LP idlist RP EQ expr", - /* 162 */ "cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert", - /* 163 */ "cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES returning", - /* 164 */ "upsert ::=", - /* 165 */ "upsert ::= RETURNING selcollist", - /* 166 */ "upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt upsert", - /* 167 */ "upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING upsert", - /* 168 */ "upsert ::= ON CONFLICT DO NOTHING returning", - /* 169 */ "upsert ::= ON CONFLICT DO UPDATE SET setlist where_opt returning", - /* 170 */ "returning ::= RETURNING selcollist", - /* 171 */ "insert_cmd ::= INSERT orconf", - /* 172 */ "insert_cmd ::= REPLACE", - /* 173 */ "idlist_opt ::=", - /* 174 */ "idlist_opt ::= LP idlist RP", - /* 175 */ "idlist ::= idlist COMMA nm", - /* 176 */ "idlist ::= nm", - /* 177 */ "expr ::= LP expr RP", - /* 178 */ "expr ::= ID|INDEXED|JOIN_KW", - /* 179 */ "expr ::= nm DOT nm", - /* 180 */ "expr ::= nm DOT nm DOT nm", - /* 181 */ "term ::= NULL|FLOAT|BLOB", - /* 182 */ "term ::= STRING", - /* 183 */ "term ::= INTEGER", - /* 184 */ "expr ::= VARIABLE", - /* 185 */ "expr ::= expr COLLATE ID|STRING", - /* 186 */ "expr ::= CAST LP expr AS typetoken RP", - /* 187 */ "expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP", - /* 188 */ "expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP", - /* 189 */ "expr ::= ID|INDEXED|JOIN_KW LP STAR RP", - /* 190 */ "expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP filter_over", - /* 191 */ "expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP filter_over", - /* 192 */ "expr ::= ID|INDEXED|JOIN_KW LP STAR RP filter_over", - /* 193 */ "term ::= CTIME_KW", - /* 194 */ "expr ::= LP nexprlist COMMA expr RP", - /* 195 */ "expr ::= expr AND expr", - /* 196 */ "expr ::= expr OR expr", - /* 197 */ "expr ::= expr LT|GT|GE|LE expr", - /* 198 */ "expr ::= expr EQ|NE expr", - /* 199 */ "expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr", - /* 200 */ "expr ::= expr PLUS|MINUS expr", - /* 201 */ "expr ::= expr STAR|SLASH|REM expr", - /* 202 */ "expr ::= expr CONCAT expr", - /* 203 */ "likeop ::= NOT LIKE_KW|MATCH", - /* 204 */ "expr ::= expr likeop expr", - /* 205 */ "expr ::= expr likeop expr ESCAPE expr", - /* 206 */ "expr ::= expr ISNULL|NOTNULL", - /* 207 */ "expr ::= expr NOT NULL", - /* 208 */ "expr ::= expr IS expr", - /* 209 */ "expr ::= expr IS NOT expr", - /* 210 */ "expr ::= expr IS NOT DISTINCT FROM expr", - /* 211 */ "expr ::= expr IS DISTINCT FROM expr", - /* 212 */ "expr ::= NOT expr", - /* 213 */ "expr ::= BITNOT expr", - /* 214 */ "expr ::= PLUS|MINUS expr", - /* 215 */ "expr ::= expr PTR expr", - /* 216 */ "between_op ::= BETWEEN", - /* 217 */ "between_op ::= NOT BETWEEN", - /* 218 */ "expr ::= expr between_op expr AND expr", - /* 219 */ "in_op ::= IN", - /* 220 */ "in_op ::= NOT IN", - /* 221 */ "expr ::= expr in_op LP exprlist RP", - /* 222 */ "expr ::= LP select RP", - /* 223 */ "expr ::= expr in_op LP select RP", - /* 224 */ "expr ::= expr in_op nm dbnm paren_exprlist", - /* 225 */ "expr ::= EXISTS LP select RP", - /* 226 */ "expr ::= CASE case_operand case_exprlist case_else END", - /* 227 */ "case_exprlist ::= case_exprlist WHEN expr THEN expr", - /* 228 */ "case_exprlist ::= WHEN expr THEN expr", - /* 229 */ "case_else ::= ELSE expr", - /* 230 */ "case_else ::=", - /* 231 */ "case_operand ::=", - /* 232 */ "exprlist ::=", - /* 233 */ "nexprlist ::= nexprlist COMMA expr", - /* 234 */ "nexprlist ::= expr", - /* 235 */ "paren_exprlist ::=", - /* 236 */ "paren_exprlist ::= LP exprlist RP", - /* 237 */ "cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt", - /* 238 */ "uniqueflag ::= UNIQUE", - /* 239 */ "uniqueflag ::=", - /* 240 */ "eidlist_opt ::=", - /* 241 */ "eidlist_opt ::= LP eidlist RP", - /* 242 */ "eidlist ::= eidlist COMMA nm collate sortorder", - /* 243 */ "eidlist ::= nm collate sortorder", - /* 244 */ "collate ::=", - /* 245 */ "collate ::= COLLATE ID|STRING", - /* 246 */ "cmd ::= DROP INDEX ifexists fullname", - /* 247 */ "cmd ::= VACUUM vinto", - /* 248 */ "cmd ::= VACUUM nm vinto", - /* 249 */ "vinto ::= INTO expr", - /* 250 */ "vinto ::=", - /* 251 */ "cmd ::= PRAGMA nm dbnm", - /* 252 */ "cmd ::= PRAGMA nm dbnm EQ nmnum", - /* 253 */ "cmd ::= PRAGMA nm dbnm LP nmnum RP", - /* 254 */ "cmd ::= PRAGMA nm dbnm EQ minus_num", - /* 255 */ "cmd ::= PRAGMA nm dbnm LP minus_num RP", - /* 256 */ "plus_num ::= PLUS INTEGER|FLOAT", - /* 257 */ "minus_num ::= MINUS INTEGER|FLOAT", - /* 258 */ "cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END", - /* 259 */ "trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause", - /* 260 */ "trigger_time ::= BEFORE|AFTER", - /* 261 */ "trigger_time ::= INSTEAD OF", - /* 262 */ "trigger_time ::=", - /* 263 */ "trigger_event ::= DELETE|INSERT", - /* 264 */ "trigger_event ::= UPDATE", - /* 265 */ "trigger_event ::= UPDATE OF idlist", - /* 266 */ "when_clause ::=", - /* 267 */ "when_clause ::= WHEN expr", - /* 268 */ "trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI", - /* 269 */ "trigger_cmd_list ::= trigger_cmd SEMI", - /* 270 */ "trnm ::= nm DOT nm", - /* 271 */ "tridxby ::= INDEXED BY nm", - /* 272 */ "tridxby ::= NOT INDEXED", - /* 273 */ "trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt", - /* 274 */ "trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt", - /* 275 */ "trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt", - /* 276 */ "trigger_cmd ::= scanpt select scanpt", - /* 277 */ "expr ::= RAISE LP IGNORE RP", - /* 278 */ "expr ::= RAISE LP raisetype COMMA nm RP", - /* 279 */ "raisetype ::= ROLLBACK", - /* 280 */ "raisetype ::= ABORT", - /* 281 */ "raisetype ::= FAIL", - /* 282 */ "cmd ::= DROP TRIGGER ifexists fullname", - /* 283 */ "cmd ::= ATTACH database_kw_opt expr AS expr key_opt", - /* 284 */ "cmd ::= DETACH database_kw_opt expr", - /* 285 */ "key_opt ::=", - /* 286 */ "key_opt ::= KEY expr", - /* 287 */ "cmd ::= REINDEX", - /* 288 */ "cmd ::= REINDEX nm dbnm", - /* 289 */ "cmd ::= ANALYZE", - /* 290 */ "cmd ::= ANALYZE nm dbnm", - /* 291 */ "cmd ::= ALTER TABLE fullname RENAME TO nm", - /* 292 */ "cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist", - /* 293 */ "cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm", - /* 294 */ "add_column_fullname ::= fullname", - /* 295 */ "cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm", - /* 296 */ "cmd ::= create_vtab", - /* 297 */ "cmd ::= create_vtab LP vtabarglist RP", - /* 298 */ "create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm", - /* 299 */ "vtabarg ::=", - /* 300 */ "vtabargtoken ::= ANY", - /* 301 */ "vtabargtoken ::= lp anylist RP", - /* 302 */ "lp ::= LP", - /* 303 */ "with ::= WITH wqlist", - /* 304 */ "with ::= WITH RECURSIVE wqlist", - /* 305 */ "wqas ::= AS", - /* 306 */ "wqas ::= AS MATERIALIZED", - /* 307 */ "wqas ::= AS NOT MATERIALIZED", - /* 308 */ "wqitem ::= nm eidlist_opt wqas LP select RP", - /* 309 */ "wqlist ::= wqitem", - /* 310 */ "wqlist ::= wqlist COMMA wqitem", - /* 311 */ "windowdefn_list ::= windowdefn_list COMMA windowdefn", - /* 312 */ "windowdefn ::= nm AS LP window RP", - /* 313 */ "window ::= PARTITION BY nexprlist orderby_opt frame_opt", - /* 314 */ "window ::= nm PARTITION BY nexprlist orderby_opt frame_opt", - /* 315 */ "window ::= ORDER BY sortlist frame_opt", - /* 316 */ "window ::= nm ORDER BY sortlist frame_opt", - /* 317 */ "window ::= nm frame_opt", - /* 318 */ "frame_opt ::=", - /* 319 */ "frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt", - /* 320 */ "frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt", - /* 321 */ "range_or_rows ::= RANGE|ROWS|GROUPS", - /* 322 */ "frame_bound_s ::= frame_bound", - /* 323 */ "frame_bound_s ::= UNBOUNDED PRECEDING", - /* 324 */ "frame_bound_e ::= frame_bound", - /* 325 */ "frame_bound_e ::= UNBOUNDED FOLLOWING", - /* 326 */ "frame_bound ::= expr PRECEDING|FOLLOWING", - /* 327 */ "frame_bound ::= CURRENT ROW", - /* 328 */ "frame_exclude_opt ::=", - /* 329 */ "frame_exclude_opt ::= EXCLUDE frame_exclude", - /* 330 */ "frame_exclude ::= NO OTHERS", - /* 331 */ "frame_exclude ::= CURRENT ROW", - /* 332 */ "frame_exclude ::= GROUP|TIES", - /* 333 */ "window_clause ::= WINDOW windowdefn_list", - /* 334 */ "filter_over ::= filter_clause over_clause", - /* 335 */ "filter_over ::= over_clause", - /* 336 */ "filter_over ::= filter_clause", - /* 337 */ "over_clause ::= OVER LP window RP", - /* 338 */ "over_clause ::= OVER nm", - /* 339 */ "filter_clause ::= FILTER LP WHERE expr RP", - /* 340 */ "input ::= cmdlist", - /* 341 */ "cmdlist ::= cmdlist ecmd", - /* 342 */ "cmdlist ::= ecmd", - /* 343 */ "ecmd ::= SEMI", - /* 344 */ "ecmd ::= cmdx SEMI", - /* 345 */ "ecmd ::= explain cmdx SEMI", - /* 346 */ "trans_opt ::=", - /* 347 */ "trans_opt ::= TRANSACTION", - /* 348 */ "trans_opt ::= TRANSACTION nm", - /* 349 */ "savepoint_opt ::= SAVEPOINT", - /* 350 */ "savepoint_opt ::=", - /* 351 */ "cmd ::= create_table create_table_args", - /* 352 */ "table_option_set ::= table_option", - /* 353 */ "columnlist ::= columnlist COMMA columnname carglist", - /* 354 */ "columnlist ::= columnname carglist", - /* 355 */ "nm ::= ID|INDEXED|JOIN_KW", - /* 356 */ "nm ::= STRING", - /* 357 */ "typetoken ::= typename", - /* 358 */ "typename ::= ID|STRING", - /* 359 */ "signed ::= plus_num", - /* 360 */ "signed ::= minus_num", - /* 361 */ "carglist ::= carglist ccons", - /* 362 */ "carglist ::=", - /* 363 */ "ccons ::= NULL onconf", - /* 364 */ "ccons ::= GENERATED ALWAYS AS generated", - /* 365 */ "ccons ::= AS generated", - /* 366 */ "conslist_opt ::= COMMA conslist", - /* 367 */ "conslist ::= conslist tconscomma tcons", - /* 368 */ "conslist ::= tcons", - /* 369 */ "tconscomma ::=", - /* 370 */ "defer_subclause_opt ::= defer_subclause", - /* 371 */ "resolvetype ::= raisetype", - /* 372 */ "selectnowith ::= oneselect", - /* 373 */ "oneselect ::= values", - /* 374 */ "sclp ::= selcollist COMMA", - /* 375 */ "as ::= ID|STRING", - /* 376 */ "indexed_opt ::= indexed_by", - /* 377 */ "returning ::=", - /* 378 */ "expr ::= term", - /* 379 */ "likeop ::= LIKE_KW|MATCH", - /* 380 */ "case_operand ::= expr", - /* 381 */ "exprlist ::= nexprlist", - /* 382 */ "nmnum ::= plus_num", - /* 383 */ "nmnum ::= nm", - /* 384 */ "nmnum ::= ON", - /* 385 */ "nmnum ::= DELETE", - /* 386 */ "nmnum ::= DEFAULT", - /* 387 */ "plus_num ::= INTEGER|FLOAT", - /* 388 */ "foreach_clause ::=", - /* 389 */ "foreach_clause ::= FOR EACH ROW", - /* 390 */ "trnm ::= nm", - /* 391 */ "tridxby ::=", - /* 392 */ "database_kw_opt ::= DATABASE", - /* 393 */ "database_kw_opt ::=", - /* 394 */ "kwcolumn_opt ::=", - /* 395 */ "kwcolumn_opt ::= COLUMNKW", - /* 396 */ "vtabarglist ::= vtabarg", - /* 397 */ "vtabarglist ::= vtabarglist COMMA vtabarg", - /* 398 */ "vtabarg ::= vtabarg vtabargtoken", - /* 399 */ "anylist ::=", - /* 400 */ "anylist ::= anylist LP anylist RP", - /* 401 */ "anylist ::= anylist ANY", - /* 402 */ "with ::=", - /* 403 */ "windowdefn_list ::= windowdefn", - /* 404 */ "window ::= frame_opt", + /* 95 */ "oneselect ::= mvalues", + /* 96 */ "mvalues ::= values COMMA LP nexprlist RP", + /* 97 */ "mvalues ::= mvalues COMMA LP nexprlist RP", + /* 98 */ "distinct ::= DISTINCT", + /* 99 */ "distinct ::= ALL", + /* 100 */ "distinct ::=", + /* 101 */ "sclp ::=", + /* 102 */ "selcollist ::= sclp scanpt expr scanpt as", + /* 103 */ "selcollist ::= sclp scanpt STAR", + /* 104 */ "selcollist ::= sclp scanpt nm DOT STAR", + /* 105 */ "as ::= AS nm", + /* 106 */ "as ::=", + /* 107 */ "from ::=", + /* 108 */ "from ::= FROM seltablist", + /* 109 */ "stl_prefix ::= seltablist joinop", + /* 110 */ "stl_prefix ::=", + /* 111 */ "seltablist ::= stl_prefix nm dbnm as on_using", + /* 112 */ "seltablist ::= stl_prefix nm dbnm as indexed_by on_using", + /* 113 */ "seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_using", + /* 114 */ "seltablist ::= stl_prefix LP select RP as on_using", + /* 115 */ "seltablist ::= stl_prefix LP seltablist RP as on_using", + /* 116 */ "dbnm ::=", + /* 117 */ "dbnm ::= DOT nm", + /* 118 */ "fullname ::= nm", + /* 119 */ "fullname ::= nm DOT nm", + /* 120 */ "xfullname ::= nm", + /* 121 */ "xfullname ::= nm DOT nm", + /* 122 */ "xfullname ::= nm DOT nm AS nm", + /* 123 */ "xfullname ::= nm AS nm", + /* 124 */ "joinop ::= COMMA|JOIN", + /* 125 */ "joinop ::= JOIN_KW JOIN", + /* 126 */ "joinop ::= JOIN_KW nm JOIN", + /* 127 */ "joinop ::= JOIN_KW nm nm JOIN", + /* 128 */ "on_using ::= ON expr", + /* 129 */ "on_using ::= USING LP idlist RP", + /* 130 */ "on_using ::=", + /* 131 */ "indexed_opt ::=", + /* 132 */ "indexed_by ::= INDEXED BY nm", + /* 133 */ "indexed_by ::= NOT INDEXED", + /* 134 */ "orderby_opt ::=", + /* 135 */ "orderby_opt ::= ORDER BY sortlist", + /* 136 */ "sortlist ::= sortlist COMMA expr sortorder nulls", + /* 137 */ "sortlist ::= expr sortorder nulls", + /* 138 */ "sortorder ::= ASC", + /* 139 */ "sortorder ::= DESC", + /* 140 */ "sortorder ::=", + /* 141 */ "nulls ::= NULLS FIRST", + /* 142 */ "nulls ::= NULLS LAST", + /* 143 */ "nulls ::=", + /* 144 */ "groupby_opt ::=", + /* 145 */ "groupby_opt ::= GROUP BY nexprlist", + /* 146 */ "having_opt ::=", + /* 147 */ "having_opt ::= HAVING expr", + /* 148 */ "limit_opt ::=", + /* 149 */ "limit_opt ::= LIMIT expr", + /* 150 */ "limit_opt ::= LIMIT expr OFFSET expr", + /* 151 */ "limit_opt ::= LIMIT expr COMMA expr", + /* 152 */ "cmd ::= with DELETE FROM xfullname indexed_opt where_opt_ret", + /* 153 */ "where_opt ::=", + /* 154 */ "where_opt ::= WHERE expr", + /* 155 */ "where_opt_ret ::=", + /* 156 */ "where_opt_ret ::= WHERE expr", + /* 157 */ "where_opt_ret ::= RETURNING selcollist", + /* 158 */ "where_opt_ret ::= WHERE expr RETURNING selcollist", + /* 159 */ "cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist from where_opt_ret", + /* 160 */ "setlist ::= setlist COMMA nm EQ expr", + /* 161 */ "setlist ::= setlist COMMA LP idlist RP EQ expr", + /* 162 */ "setlist ::= nm EQ expr", + /* 163 */ "setlist ::= LP idlist RP EQ expr", + /* 164 */ "cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert", + /* 165 */ "cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES returning", + /* 166 */ "upsert ::=", + /* 167 */ "upsert ::= RETURNING selcollist", + /* 168 */ "upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt upsert", + /* 169 */ "upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING upsert", + /* 170 */ "upsert ::= ON CONFLICT DO NOTHING returning", + /* 171 */ "upsert ::= ON CONFLICT DO UPDATE SET setlist where_opt returning", + /* 172 */ "returning ::= RETURNING selcollist", + /* 173 */ "insert_cmd ::= INSERT orconf", + /* 174 */ "insert_cmd ::= REPLACE", + /* 175 */ "idlist_opt ::=", + /* 176 */ "idlist_opt ::= LP idlist RP", + /* 177 */ "idlist ::= idlist COMMA nm", + /* 178 */ "idlist ::= nm", + /* 179 */ "expr ::= LP expr RP", + /* 180 */ "expr ::= ID|INDEXED|JOIN_KW", + /* 181 */ "expr ::= nm DOT nm", + /* 182 */ "expr ::= nm DOT nm DOT nm", + /* 183 */ "term ::= NULL|FLOAT|BLOB", + /* 184 */ "term ::= STRING", + /* 185 */ "term ::= INTEGER", + /* 186 */ "expr ::= VARIABLE", + /* 187 */ "expr ::= expr COLLATE ID|STRING", + /* 188 */ "expr ::= CAST LP expr AS typetoken RP", + /* 189 */ "expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP", + /* 190 */ "expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP", + /* 191 */ "expr ::= ID|INDEXED|JOIN_KW LP STAR RP", + /* 192 */ "expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP filter_over", + /* 193 */ "expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP filter_over", + /* 194 */ "expr ::= ID|INDEXED|JOIN_KW LP STAR RP filter_over", + /* 195 */ "term ::= CTIME_KW", + /* 196 */ "expr ::= LP nexprlist COMMA expr RP", + /* 197 */ "expr ::= expr AND expr", + /* 198 */ "expr ::= expr OR expr", + /* 199 */ "expr ::= expr LT|GT|GE|LE expr", + /* 200 */ "expr ::= expr EQ|NE expr", + /* 201 */ "expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr", + /* 202 */ "expr ::= expr PLUS|MINUS expr", + /* 203 */ "expr ::= expr STAR|SLASH|REM expr", + /* 204 */ "expr ::= expr CONCAT expr", + /* 205 */ "likeop ::= NOT LIKE_KW|MATCH", + /* 206 */ "expr ::= expr likeop expr", + /* 207 */ "expr ::= expr likeop expr ESCAPE expr", + /* 208 */ "expr ::= expr ISNULL|NOTNULL", + /* 209 */ "expr ::= expr NOT NULL", + /* 210 */ "expr ::= expr IS expr", + /* 211 */ "expr ::= expr IS NOT expr", + /* 212 */ "expr ::= expr IS NOT DISTINCT FROM expr", + /* 213 */ "expr ::= expr IS DISTINCT FROM expr", + /* 214 */ "expr ::= NOT expr", + /* 215 */ "expr ::= BITNOT expr", + /* 216 */ "expr ::= PLUS|MINUS expr", + /* 217 */ "expr ::= expr PTR expr", + /* 218 */ "between_op ::= BETWEEN", + /* 219 */ "between_op ::= NOT BETWEEN", + /* 220 */ "expr ::= expr between_op expr AND expr", + /* 221 */ "in_op ::= IN", + /* 222 */ "in_op ::= NOT IN", + /* 223 */ "expr ::= expr in_op LP exprlist RP", + /* 224 */ "expr ::= LP select RP", + /* 225 */ "expr ::= expr in_op LP select RP", + /* 226 */ "expr ::= expr in_op nm dbnm paren_exprlist", + /* 227 */ "expr ::= EXISTS LP select RP", + /* 228 */ "expr ::= CASE case_operand case_exprlist case_else END", + /* 229 */ "case_exprlist ::= case_exprlist WHEN expr THEN expr", + /* 230 */ "case_exprlist ::= WHEN expr THEN expr", + /* 231 */ "case_else ::= ELSE expr", + /* 232 */ "case_else ::=", + /* 233 */ "case_operand ::=", + /* 234 */ "exprlist ::=", + /* 235 */ "nexprlist ::= nexprlist COMMA expr", + /* 236 */ "nexprlist ::= expr", + /* 237 */ "paren_exprlist ::=", + /* 238 */ "paren_exprlist ::= LP exprlist RP", + /* 239 */ "cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt", + /* 240 */ "uniqueflag ::= UNIQUE", + /* 241 */ "uniqueflag ::=", + /* 242 */ "eidlist_opt ::=", + /* 243 */ "eidlist_opt ::= LP eidlist RP", + /* 244 */ "eidlist ::= eidlist COMMA nm collate sortorder", + /* 245 */ "eidlist ::= nm collate sortorder", + /* 246 */ "collate ::=", + /* 247 */ "collate ::= COLLATE ID|STRING", + /* 248 */ "cmd ::= DROP INDEX ifexists fullname", + /* 249 */ "cmd ::= VACUUM vinto", + /* 250 */ "cmd ::= VACUUM nm vinto", + /* 251 */ "vinto ::= INTO expr", + /* 252 */ "vinto ::=", + /* 253 */ "cmd ::= PRAGMA nm dbnm", + /* 254 */ "cmd ::= PRAGMA nm dbnm EQ nmnum", + /* 255 */ "cmd ::= PRAGMA nm dbnm LP nmnum RP", + /* 256 */ "cmd ::= PRAGMA nm dbnm EQ minus_num", + /* 257 */ "cmd ::= PRAGMA nm dbnm LP minus_num RP", + /* 258 */ "plus_num ::= PLUS INTEGER|FLOAT", + /* 259 */ "minus_num ::= MINUS INTEGER|FLOAT", + /* 260 */ "cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END", + /* 261 */ "trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause", + /* 262 */ "trigger_time ::= BEFORE|AFTER", + /* 263 */ "trigger_time ::= INSTEAD OF", + /* 264 */ "trigger_time ::=", + /* 265 */ "trigger_event ::= DELETE|INSERT", + /* 266 */ "trigger_event ::= UPDATE", + /* 267 */ "trigger_event ::= UPDATE OF idlist", + /* 268 */ "when_clause ::=", + /* 269 */ "when_clause ::= WHEN expr", + /* 270 */ "trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI", + /* 271 */ "trigger_cmd_list ::= trigger_cmd SEMI", + /* 272 */ "trnm ::= nm DOT nm", + /* 273 */ "tridxby ::= INDEXED BY nm", + /* 274 */ "tridxby ::= NOT INDEXED", + /* 275 */ "trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt", + /* 276 */ "trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt", + /* 277 */ "trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt", + /* 278 */ "trigger_cmd ::= scanpt select scanpt", + /* 279 */ "expr ::= RAISE LP IGNORE RP", + /* 280 */ "expr ::= RAISE LP raisetype COMMA nm RP", + /* 281 */ "raisetype ::= ROLLBACK", + /* 282 */ "raisetype ::= ABORT", + /* 283 */ "raisetype ::= FAIL", + /* 284 */ "cmd ::= DROP TRIGGER ifexists fullname", + /* 285 */ "cmd ::= ATTACH database_kw_opt expr AS expr key_opt", + /* 286 */ "cmd ::= DETACH database_kw_opt expr", + /* 287 */ "key_opt ::=", + /* 288 */ "key_opt ::= KEY expr", + /* 289 */ "cmd ::= REINDEX", + /* 290 */ "cmd ::= REINDEX nm dbnm", + /* 291 */ "cmd ::= ANALYZE", + /* 292 */ "cmd ::= ANALYZE nm dbnm", + /* 293 */ "cmd ::= ALTER TABLE fullname RENAME TO nm", + /* 294 */ "cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist", + /* 295 */ "cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm", + /* 296 */ "add_column_fullname ::= fullname", + /* 297 */ "cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm", + /* 298 */ "cmd ::= create_vtab", + /* 299 */ "cmd ::= create_vtab LP vtabarglist RP", + /* 300 */ "create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm", + /* 301 */ "vtabarg ::=", + /* 302 */ "vtabargtoken ::= ANY", + /* 303 */ "vtabargtoken ::= lp anylist RP", + /* 304 */ "lp ::= LP", + /* 305 */ "with ::= WITH wqlist", + /* 306 */ "with ::= WITH RECURSIVE wqlist", + /* 307 */ "wqas ::= AS", + /* 308 */ "wqas ::= AS MATERIALIZED", + /* 309 */ "wqas ::= AS NOT MATERIALIZED", + /* 310 */ "wqitem ::= withnm eidlist_opt wqas LP select RP", + /* 311 */ "withnm ::= nm", + /* 312 */ "wqlist ::= wqitem", + /* 313 */ "wqlist ::= wqlist COMMA wqitem", + /* 314 */ "windowdefn_list ::= windowdefn_list COMMA windowdefn", + /* 315 */ "windowdefn ::= nm AS LP window RP", + /* 316 */ "window ::= PARTITION BY nexprlist orderby_opt frame_opt", + /* 317 */ "window ::= nm PARTITION BY nexprlist orderby_opt frame_opt", + /* 318 */ "window ::= ORDER BY sortlist frame_opt", + /* 319 */ "window ::= nm ORDER BY sortlist frame_opt", + /* 320 */ "window ::= nm frame_opt", + /* 321 */ "frame_opt ::=", + /* 322 */ "frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt", + /* 323 */ "frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt", + /* 324 */ "range_or_rows ::= RANGE|ROWS|GROUPS", + /* 325 */ "frame_bound_s ::= frame_bound", + /* 326 */ "frame_bound_s ::= UNBOUNDED PRECEDING", + /* 327 */ "frame_bound_e ::= frame_bound", + /* 328 */ "frame_bound_e ::= UNBOUNDED FOLLOWING", + /* 329 */ "frame_bound ::= expr PRECEDING|FOLLOWING", + /* 330 */ "frame_bound ::= CURRENT ROW", + /* 331 */ "frame_exclude_opt ::=", + /* 332 */ "frame_exclude_opt ::= EXCLUDE frame_exclude", + /* 333 */ "frame_exclude ::= NO OTHERS", + /* 334 */ "frame_exclude ::= CURRENT ROW", + /* 335 */ "frame_exclude ::= GROUP|TIES", + /* 336 */ "window_clause ::= WINDOW windowdefn_list", + /* 337 */ "filter_over ::= filter_clause over_clause", + /* 338 */ "filter_over ::= over_clause", + /* 339 */ "filter_over ::= filter_clause", + /* 340 */ "over_clause ::= OVER LP window RP", + /* 341 */ "over_clause ::= OVER nm", + /* 342 */ "filter_clause ::= FILTER LP WHERE expr RP", + /* 343 */ "term ::= QNUMBER", + /* 344 */ "input ::= cmdlist", + /* 345 */ "cmdlist ::= cmdlist ecmd", + /* 346 */ "cmdlist ::= ecmd", + /* 347 */ "ecmd ::= SEMI", + /* 348 */ "ecmd ::= cmdx SEMI", + /* 349 */ "ecmd ::= explain cmdx SEMI", + /* 350 */ "trans_opt ::=", + /* 351 */ "trans_opt ::= TRANSACTION", + /* 352 */ "trans_opt ::= TRANSACTION nm", + /* 353 */ "savepoint_opt ::= SAVEPOINT", + /* 354 */ "savepoint_opt ::=", + /* 355 */ "cmd ::= create_table create_table_args", + /* 356 */ "table_option_set ::= table_option", + /* 357 */ "columnlist ::= columnlist COMMA columnname carglist", + /* 358 */ "columnlist ::= columnname carglist", + /* 359 */ "nm ::= ID|INDEXED|JOIN_KW", + /* 360 */ "nm ::= STRING", + /* 361 */ "typetoken ::= typename", + /* 362 */ "typename ::= ID|STRING", + /* 363 */ "signed ::= plus_num", + /* 364 */ "signed ::= minus_num", + /* 365 */ "carglist ::= carglist ccons", + /* 366 */ "carglist ::=", + /* 367 */ "ccons ::= NULL onconf", + /* 368 */ "ccons ::= GENERATED ALWAYS AS generated", + /* 369 */ "ccons ::= AS generated", + /* 370 */ "conslist_opt ::= COMMA conslist", + /* 371 */ "conslist ::= conslist tconscomma tcons", + /* 372 */ "conslist ::= tcons", + /* 373 */ "tconscomma ::=", + /* 374 */ "defer_subclause_opt ::= defer_subclause", + /* 375 */ "resolvetype ::= raisetype", + /* 376 */ "selectnowith ::= oneselect", + /* 377 */ "oneselect ::= values", + /* 378 */ "sclp ::= selcollist COMMA", + /* 379 */ "as ::= ID|STRING", + /* 380 */ "indexed_opt ::= indexed_by", + /* 381 */ "returning ::=", + /* 382 */ "expr ::= term", + /* 383 */ "likeop ::= LIKE_KW|MATCH", + /* 384 */ "case_operand ::= expr", + /* 385 */ "exprlist ::= nexprlist", + /* 386 */ "nmnum ::= plus_num", + /* 387 */ "nmnum ::= nm", + /* 388 */ "nmnum ::= ON", + /* 389 */ "nmnum ::= DELETE", + /* 390 */ "nmnum ::= DEFAULT", + /* 391 */ "plus_num ::= INTEGER|FLOAT", + /* 392 */ "foreach_clause ::=", + /* 393 */ "foreach_clause ::= FOR EACH ROW", + /* 394 */ "trnm ::= nm", + /* 395 */ "tridxby ::=", + /* 396 */ "database_kw_opt ::= DATABASE", + /* 397 */ "database_kw_opt ::=", + /* 398 */ "kwcolumn_opt ::=", + /* 399 */ "kwcolumn_opt ::= COLUMNKW", + /* 400 */ "vtabarglist ::= vtabarg", + /* 401 */ "vtabarglist ::= vtabarglist COMMA vtabarg", + /* 402 */ "vtabarg ::= vtabarg vtabargtoken", + /* 403 */ "anylist ::=", + /* 404 */ "anylist ::= anylist LP anylist RP", + /* 405 */ "anylist ::= anylist ANY", + /* 406 */ "with ::=", + /* 407 */ "windowdefn_list ::= windowdefn", + /* 408 */ "window ::= frame_opt", }; #endif /* NDEBUG */ -#if YYSTACKDEPTH<=0 +#if YYGROWABLESTACK /* ** Try to increase the size of the parser stack. Return the number ** of errors. Return 0 on success. */ static int yyGrowStack(yyParser *p){ + int oldSize = 1 + (int)(p->yystackEnd - p->yystack); int newSize; int idx; yyStackEntry *pNew; - newSize = p->yystksz*2 + 100; - idx = p->yytos ? (int)(p->yytos - p->yystack) : 0; - if( p->yystack==&p->yystk0 ){ - pNew = malloc(newSize*sizeof(pNew[0])); - if( pNew ) pNew[0] = p->yystk0; + newSize = oldSize*2 + 100; + idx = (int)(p->yytos - p->yystack); + if( p->yystack==p->yystk0 ){ + pNew = YYREALLOC(0, newSize*sizeof(pNew[0])); + if( pNew==0 ) return 1; + memcpy(pNew, p->yystack, oldSize*sizeof(pNew[0])); }else{ - pNew = realloc(p->yystack, newSize*sizeof(pNew[0])); + pNew = YYREALLOC(p->yystack, newSize*sizeof(pNew[0])); + if( pNew==0 ) return 1; } - if( pNew ){ - p->yystack = pNew; - p->yytos = &p->yystack[idx]; + p->yystack = pNew; + p->yytos = &p->yystack[idx]; #ifndef NDEBUG - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sStack grows from %d to %d entries.\n", - yyTracePrompt, p->yystksz, newSize); - } -#endif - p->yystksz = newSize; + if( yyTraceFILE ){ + fprintf(yyTraceFILE,"%sStack grows from %d to %d entries.\n", + yyTracePrompt, oldSize, newSize); } - return pNew==0; +#endif + p->yystackEnd = &p->yystack[newSize-1]; + return 0; } +#endif /* YYGROWABLESTACK */ + +#if !YYGROWABLESTACK +/* For builds that do no have a growable stack, yyGrowStack always +** returns an error. +*/ +# define yyGrowStack(X) 1 #endif /* Datatype of the argument to the memory allocated passed as the @@ -173187,24 +174789,14 @@ SQLITE_PRIVATE void sqlite3ParserInit(void *yypRawParser sqlite3ParserCTX_PDECL) #ifdef YYTRACKMAXSTACKDEPTH yypParser->yyhwm = 0; #endif -#if YYSTACKDEPTH<=0 - yypParser->yytos = NULL; - yypParser->yystack = NULL; - yypParser->yystksz = 0; - if( yyGrowStack(yypParser) ){ - yypParser->yystack = &yypParser->yystk0; - yypParser->yystksz = 1; - } -#endif + yypParser->yystack = yypParser->yystk0; + yypParser->yystackEnd = &yypParser->yystack[YYSTACKDEPTH-1]; #ifndef YYNOERRORRECOVERY yypParser->yyerrcnt = -1; #endif yypParser->yytos = yypParser->yystack; yypParser->yystack[0].stateno = 0; yypParser->yystack[0].major = 0; -#if YYSTACKDEPTH>0 - yypParser->yystackEnd = &yypParser->yystack[YYSTACKDEPTH-1]; -#endif } #ifndef sqlite3Parser_ENGINEALWAYSONSTACK @@ -173258,97 +174850,98 @@ static void yy_destructor( ** inside the C code. */ /********* Begin destructor definitions ***************************************/ - case 204: /* select */ - case 239: /* selectnowith */ - case 240: /* oneselect */ - case 252: /* values */ + case 205: /* select */ + case 240: /* selectnowith */ + case 241: /* oneselect */ + case 253: /* values */ + case 255: /* mvalues */ { -sqlite3SelectDelete(pParse->db, (yypminor->yy47)); -} - break; - case 216: /* term */ - case 217: /* expr */ - case 246: /* where_opt */ - case 248: /* having_opt */ - case 267: /* where_opt_ret */ - case 278: /* case_operand */ - case 280: /* case_else */ - case 283: /* vinto */ - case 290: /* when_clause */ - case 295: /* key_opt */ - case 311: /* filter_clause */ +sqlite3SelectDelete(pParse->db, (yypminor->yy555)); +} + break; + case 217: /* term */ + case 218: /* expr */ + case 247: /* where_opt */ + case 249: /* having_opt */ + case 269: /* where_opt_ret */ + case 280: /* case_operand */ + case 282: /* case_else */ + case 285: /* vinto */ + case 292: /* when_clause */ + case 297: /* key_opt */ + case 314: /* filter_clause */ { -sqlite3ExprDelete(pParse->db, (yypminor->yy528)); -} - break; - case 221: /* eidlist_opt */ - case 231: /* sortlist */ - case 232: /* eidlist */ - case 244: /* selcollist */ - case 247: /* groupby_opt */ - case 249: /* orderby_opt */ - case 253: /* nexprlist */ - case 254: /* sclp */ - case 261: /* exprlist */ - case 268: /* setlist */ - case 277: /* paren_exprlist */ - case 279: /* case_exprlist */ - case 310: /* part_opt */ +sqlite3ExprDelete(pParse->db, (yypminor->yy454)); +} + break; + case 222: /* eidlist_opt */ + case 232: /* sortlist */ + case 233: /* eidlist */ + case 245: /* selcollist */ + case 248: /* groupby_opt */ + case 250: /* orderby_opt */ + case 254: /* nexprlist */ + case 256: /* sclp */ + case 263: /* exprlist */ + case 270: /* setlist */ + case 279: /* paren_exprlist */ + case 281: /* case_exprlist */ + case 313: /* part_opt */ { -sqlite3ExprListDelete(pParse->db, (yypminor->yy322)); +sqlite3ExprListDelete(pParse->db, (yypminor->yy14)); } break; - case 238: /* fullname */ - case 245: /* from */ - case 256: /* seltablist */ - case 257: /* stl_prefix */ - case 262: /* xfullname */ + case 239: /* fullname */ + case 246: /* from */ + case 258: /* seltablist */ + case 259: /* stl_prefix */ + case 264: /* xfullname */ { -sqlite3SrcListDelete(pParse->db, (yypminor->yy131)); +sqlite3SrcListDelete(pParse->db, (yypminor->yy203)); } break; - case 241: /* wqlist */ + case 242: /* wqlist */ { -sqlite3WithDelete(pParse->db, (yypminor->yy521)); +sqlite3WithDelete(pParse->db, (yypminor->yy59)); } break; - case 251: /* window_clause */ - case 306: /* windowdefn_list */ + case 252: /* window_clause */ + case 309: /* windowdefn_list */ { -sqlite3WindowListDelete(pParse->db, (yypminor->yy41)); +sqlite3WindowListDelete(pParse->db, (yypminor->yy211)); } break; - case 263: /* idlist */ - case 270: /* idlist_opt */ + case 265: /* idlist */ + case 272: /* idlist_opt */ { -sqlite3IdListDelete(pParse->db, (yypminor->yy254)); +sqlite3IdListDelete(pParse->db, (yypminor->yy132)); } break; - case 273: /* filter_over */ - case 307: /* windowdefn */ - case 308: /* window */ - case 309: /* frame_opt */ - case 312: /* over_clause */ + case 275: /* filter_over */ + case 310: /* windowdefn */ + case 311: /* window */ + case 312: /* frame_opt */ + case 315: /* over_clause */ { -sqlite3WindowDelete(pParse->db, (yypminor->yy41)); +sqlite3WindowDelete(pParse->db, (yypminor->yy211)); } break; - case 286: /* trigger_cmd_list */ - case 291: /* trigger_cmd */ + case 288: /* trigger_cmd_list */ + case 293: /* trigger_cmd */ { -sqlite3DeleteTriggerStep(pParse->db, (yypminor->yy33)); +sqlite3DeleteTriggerStep(pParse->db, (yypminor->yy427)); } break; - case 288: /* trigger_event */ + case 290: /* trigger_event */ { -sqlite3IdListDelete(pParse->db, (yypminor->yy180).b); +sqlite3IdListDelete(pParse->db, (yypminor->yy286).b); } break; - case 314: /* frame_bound */ - case 315: /* frame_bound_s */ - case 316: /* frame_bound_e */ + case 317: /* frame_bound */ + case 318: /* frame_bound_s */ + case 319: /* frame_bound_e */ { -sqlite3ExprDelete(pParse->db, (yypminor->yy595).pExpr); +sqlite3ExprDelete(pParse->db, (yypminor->yy509).pExpr); } break; /********* End destructor definitions *****************************************/ @@ -173382,9 +174975,26 @@ static void yy_pop_parser_stack(yyParser *pParser){ */ SQLITE_PRIVATE void sqlite3ParserFinalize(void *p){ yyParser *pParser = (yyParser*)p; - while( pParser->yytos>pParser->yystack ) yy_pop_parser_stack(pParser); -#if YYSTACKDEPTH<=0 - if( pParser->yystack!=&pParser->yystk0 ) free(pParser->yystack); + + /* In-lined version of calling yy_pop_parser_stack() for each + ** element left in the stack */ + yyStackEntry *yytos = pParser->yytos; + while( yytos>pParser->yystack ){ +#ifndef NDEBUG + if( yyTraceFILE ){ + fprintf(yyTraceFILE,"%sPopping %s\n", + yyTracePrompt, + yyTokenName[yytos->major]); + } +#endif + if( yytos->major>=YY_MIN_DSTRCTR ){ + yy_destructor(pParser, yytos->major, &yytos->minor); + } + yytos--; + } + +#if YYGROWABLESTACK + if( pParser->yystack!=pParser->yystk0 ) YYFREE(pParser->yystack); #endif } @@ -173567,7 +175177,7 @@ static void yyStackOverflow(yyParser *yypParser){ ** stack every overflows */ /******** Begin %stack_overflow code ******************************************/ - sqlite3ErrorMsg(pParse, "parser stack overflow"); + sqlite3OomFault(pParse->db); /******** End %stack_overflow code ********************************************/ sqlite3ParserARG_STORE /* Suppress warning about unused %extra_argument var */ sqlite3ParserCTX_STORE @@ -173611,25 +175221,19 @@ static void yy_shift( assert( yypParser->yyhwm == (int)(yypParser->yytos - yypParser->yystack) ); } #endif -#if YYSTACKDEPTH>0 - if( yypParser->yytos>yypParser->yystackEnd ){ - yypParser->yytos--; - yyStackOverflow(yypParser); - return; - } -#else - if( yypParser->yytos>=&yypParser->yystack[yypParser->yystksz] ){ + yytos = yypParser->yytos; + if( yytos>yypParser->yystackEnd ){ if( yyGrowStack(yypParser) ){ yypParser->yytos--; yyStackOverflow(yypParser); return; } + yytos = yypParser->yytos; + assert( yytos <= yypParser->yystackEnd ); } -#endif if( yyNewState > YY_MAX_SHIFT ){ yyNewState += YY_MIN_REDUCE - YY_MIN_SHIFTREDUCE; } - yytos = yypParser->yytos; yytos->stateno = yyNewState; yytos->major = yyMajor; yytos->minor.yy0 = yyMinor; @@ -173639,411 +175243,415 @@ static void yy_shift( /* For rule J, yyRuleInfoLhs[J] contains the symbol on the left-hand side ** of that rule */ static const YYCODETYPE yyRuleInfoLhs[] = { - 189, /* (0) explain ::= EXPLAIN */ - 189, /* (1) explain ::= EXPLAIN QUERY PLAN */ - 188, /* (2) cmdx ::= cmd */ - 190, /* (3) cmd ::= BEGIN transtype trans_opt */ - 191, /* (4) transtype ::= */ - 191, /* (5) transtype ::= DEFERRED */ - 191, /* (6) transtype ::= IMMEDIATE */ - 191, /* (7) transtype ::= EXCLUSIVE */ - 190, /* (8) cmd ::= COMMIT|END trans_opt */ - 190, /* (9) cmd ::= ROLLBACK trans_opt */ - 190, /* (10) cmd ::= SAVEPOINT nm */ - 190, /* (11) cmd ::= RELEASE savepoint_opt nm */ - 190, /* (12) cmd ::= ROLLBACK trans_opt TO savepoint_opt nm */ - 195, /* (13) create_table ::= createkw temp TABLE ifnotexists nm dbnm */ - 197, /* (14) createkw ::= CREATE */ - 199, /* (15) ifnotexists ::= */ - 199, /* (16) ifnotexists ::= IF NOT EXISTS */ - 198, /* (17) temp ::= TEMP */ - 198, /* (18) temp ::= */ - 196, /* (19) create_table_args ::= LP columnlist conslist_opt RP table_option_set */ - 196, /* (20) create_table_args ::= AS select */ - 203, /* (21) table_option_set ::= */ - 203, /* (22) table_option_set ::= table_option_set COMMA table_option */ - 205, /* (23) table_option ::= WITHOUT nm */ - 205, /* (24) table_option ::= nm */ - 206, /* (25) columnname ::= nm typetoken */ - 208, /* (26) typetoken ::= */ - 208, /* (27) typetoken ::= typename LP signed RP */ - 208, /* (28) typetoken ::= typename LP signed COMMA signed RP */ - 209, /* (29) typename ::= typename ID|STRING */ - 213, /* (30) scanpt ::= */ - 214, /* (31) scantok ::= */ - 215, /* (32) ccons ::= CONSTRAINT nm */ - 215, /* (33) ccons ::= DEFAULT scantok term */ - 215, /* (34) ccons ::= DEFAULT LP expr RP */ - 215, /* (35) ccons ::= DEFAULT PLUS scantok term */ - 215, /* (36) ccons ::= DEFAULT MINUS scantok term */ - 215, /* (37) ccons ::= DEFAULT scantok ID|INDEXED */ - 215, /* (38) ccons ::= NOT NULL onconf */ - 215, /* (39) ccons ::= PRIMARY KEY sortorder onconf autoinc */ - 215, /* (40) ccons ::= UNIQUE onconf */ - 215, /* (41) ccons ::= CHECK LP expr RP */ - 215, /* (42) ccons ::= REFERENCES nm eidlist_opt refargs */ - 215, /* (43) ccons ::= defer_subclause */ - 215, /* (44) ccons ::= COLLATE ID|STRING */ - 224, /* (45) generated ::= LP expr RP */ - 224, /* (46) generated ::= LP expr RP ID */ - 220, /* (47) autoinc ::= */ - 220, /* (48) autoinc ::= AUTOINCR */ - 222, /* (49) refargs ::= */ - 222, /* (50) refargs ::= refargs refarg */ - 225, /* (51) refarg ::= MATCH nm */ - 225, /* (52) refarg ::= ON INSERT refact */ - 225, /* (53) refarg ::= ON DELETE refact */ - 225, /* (54) refarg ::= ON UPDATE refact */ - 226, /* (55) refact ::= SET NULL */ - 226, /* (56) refact ::= SET DEFAULT */ - 226, /* (57) refact ::= CASCADE */ - 226, /* (58) refact ::= RESTRICT */ - 226, /* (59) refact ::= NO ACTION */ - 223, /* (60) defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */ - 223, /* (61) defer_subclause ::= DEFERRABLE init_deferred_pred_opt */ - 227, /* (62) init_deferred_pred_opt ::= */ - 227, /* (63) init_deferred_pred_opt ::= INITIALLY DEFERRED */ - 227, /* (64) init_deferred_pred_opt ::= INITIALLY IMMEDIATE */ - 202, /* (65) conslist_opt ::= */ - 229, /* (66) tconscomma ::= COMMA */ - 230, /* (67) tcons ::= CONSTRAINT nm */ - 230, /* (68) tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf */ - 230, /* (69) tcons ::= UNIQUE LP sortlist RP onconf */ - 230, /* (70) tcons ::= CHECK LP expr RP onconf */ - 230, /* (71) tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt */ - 233, /* (72) defer_subclause_opt ::= */ - 218, /* (73) onconf ::= */ - 218, /* (74) onconf ::= ON CONFLICT resolvetype */ - 234, /* (75) orconf ::= */ - 234, /* (76) orconf ::= OR resolvetype */ - 235, /* (77) resolvetype ::= IGNORE */ - 235, /* (78) resolvetype ::= REPLACE */ - 190, /* (79) cmd ::= DROP TABLE ifexists fullname */ - 237, /* (80) ifexists ::= IF EXISTS */ - 237, /* (81) ifexists ::= */ - 190, /* (82) cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */ - 190, /* (83) cmd ::= DROP VIEW ifexists fullname */ - 190, /* (84) cmd ::= select */ - 204, /* (85) select ::= WITH wqlist selectnowith */ - 204, /* (86) select ::= WITH RECURSIVE wqlist selectnowith */ - 204, /* (87) select ::= selectnowith */ - 239, /* (88) selectnowith ::= selectnowith multiselect_op oneselect */ - 242, /* (89) multiselect_op ::= UNION */ - 242, /* (90) multiselect_op ::= UNION ALL */ - 242, /* (91) multiselect_op ::= EXCEPT|INTERSECT */ - 240, /* (92) oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */ - 240, /* (93) oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt */ - 252, /* (94) values ::= VALUES LP nexprlist RP */ - 252, /* (95) values ::= values COMMA LP nexprlist RP */ - 243, /* (96) distinct ::= DISTINCT */ - 243, /* (97) distinct ::= ALL */ - 243, /* (98) distinct ::= */ - 254, /* (99) sclp ::= */ - 244, /* (100) selcollist ::= sclp scanpt expr scanpt as */ - 244, /* (101) selcollist ::= sclp scanpt STAR */ - 244, /* (102) selcollist ::= sclp scanpt nm DOT STAR */ - 255, /* (103) as ::= AS nm */ - 255, /* (104) as ::= */ - 245, /* (105) from ::= */ - 245, /* (106) from ::= FROM seltablist */ - 257, /* (107) stl_prefix ::= seltablist joinop */ - 257, /* (108) stl_prefix ::= */ - 256, /* (109) seltablist ::= stl_prefix nm dbnm as on_using */ - 256, /* (110) seltablist ::= stl_prefix nm dbnm as indexed_by on_using */ - 256, /* (111) seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_using */ - 256, /* (112) seltablist ::= stl_prefix LP select RP as on_using */ - 256, /* (113) seltablist ::= stl_prefix LP seltablist RP as on_using */ - 200, /* (114) dbnm ::= */ - 200, /* (115) dbnm ::= DOT nm */ - 238, /* (116) fullname ::= nm */ - 238, /* (117) fullname ::= nm DOT nm */ - 262, /* (118) xfullname ::= nm */ - 262, /* (119) xfullname ::= nm DOT nm */ - 262, /* (120) xfullname ::= nm DOT nm AS nm */ - 262, /* (121) xfullname ::= nm AS nm */ - 258, /* (122) joinop ::= COMMA|JOIN */ - 258, /* (123) joinop ::= JOIN_KW JOIN */ - 258, /* (124) joinop ::= JOIN_KW nm JOIN */ - 258, /* (125) joinop ::= JOIN_KW nm nm JOIN */ - 259, /* (126) on_using ::= ON expr */ - 259, /* (127) on_using ::= USING LP idlist RP */ - 259, /* (128) on_using ::= */ - 264, /* (129) indexed_opt ::= */ - 260, /* (130) indexed_by ::= INDEXED BY nm */ - 260, /* (131) indexed_by ::= NOT INDEXED */ - 249, /* (132) orderby_opt ::= */ - 249, /* (133) orderby_opt ::= ORDER BY sortlist */ - 231, /* (134) sortlist ::= sortlist COMMA expr sortorder nulls */ - 231, /* (135) sortlist ::= expr sortorder nulls */ - 219, /* (136) sortorder ::= ASC */ - 219, /* (137) sortorder ::= DESC */ - 219, /* (138) sortorder ::= */ - 265, /* (139) nulls ::= NULLS FIRST */ - 265, /* (140) nulls ::= NULLS LAST */ - 265, /* (141) nulls ::= */ - 247, /* (142) groupby_opt ::= */ - 247, /* (143) groupby_opt ::= GROUP BY nexprlist */ - 248, /* (144) having_opt ::= */ - 248, /* (145) having_opt ::= HAVING expr */ - 250, /* (146) limit_opt ::= */ - 250, /* (147) limit_opt ::= LIMIT expr */ - 250, /* (148) limit_opt ::= LIMIT expr OFFSET expr */ - 250, /* (149) limit_opt ::= LIMIT expr COMMA expr */ - 190, /* (150) cmd ::= with DELETE FROM xfullname indexed_opt where_opt_ret */ - 246, /* (151) where_opt ::= */ - 246, /* (152) where_opt ::= WHERE expr */ - 267, /* (153) where_opt_ret ::= */ - 267, /* (154) where_opt_ret ::= WHERE expr */ - 267, /* (155) where_opt_ret ::= RETURNING selcollist */ - 267, /* (156) where_opt_ret ::= WHERE expr RETURNING selcollist */ - 190, /* (157) cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist from where_opt_ret */ - 268, /* (158) setlist ::= setlist COMMA nm EQ expr */ - 268, /* (159) setlist ::= setlist COMMA LP idlist RP EQ expr */ - 268, /* (160) setlist ::= nm EQ expr */ - 268, /* (161) setlist ::= LP idlist RP EQ expr */ - 190, /* (162) cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert */ - 190, /* (163) cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES returning */ - 271, /* (164) upsert ::= */ - 271, /* (165) upsert ::= RETURNING selcollist */ - 271, /* (166) upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt upsert */ - 271, /* (167) upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING upsert */ - 271, /* (168) upsert ::= ON CONFLICT DO NOTHING returning */ - 271, /* (169) upsert ::= ON CONFLICT DO UPDATE SET setlist where_opt returning */ - 272, /* (170) returning ::= RETURNING selcollist */ - 269, /* (171) insert_cmd ::= INSERT orconf */ - 269, /* (172) insert_cmd ::= REPLACE */ - 270, /* (173) idlist_opt ::= */ - 270, /* (174) idlist_opt ::= LP idlist RP */ - 263, /* (175) idlist ::= idlist COMMA nm */ - 263, /* (176) idlist ::= nm */ - 217, /* (177) expr ::= LP expr RP */ - 217, /* (178) expr ::= ID|INDEXED|JOIN_KW */ - 217, /* (179) expr ::= nm DOT nm */ - 217, /* (180) expr ::= nm DOT nm DOT nm */ - 216, /* (181) term ::= NULL|FLOAT|BLOB */ - 216, /* (182) term ::= STRING */ - 216, /* (183) term ::= INTEGER */ - 217, /* (184) expr ::= VARIABLE */ - 217, /* (185) expr ::= expr COLLATE ID|STRING */ - 217, /* (186) expr ::= CAST LP expr AS typetoken RP */ - 217, /* (187) expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP */ - 217, /* (188) expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP */ - 217, /* (189) expr ::= ID|INDEXED|JOIN_KW LP STAR RP */ - 217, /* (190) expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP filter_over */ - 217, /* (191) expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP filter_over */ - 217, /* (192) expr ::= ID|INDEXED|JOIN_KW LP STAR RP filter_over */ - 216, /* (193) term ::= CTIME_KW */ - 217, /* (194) expr ::= LP nexprlist COMMA expr RP */ - 217, /* (195) expr ::= expr AND expr */ - 217, /* (196) expr ::= expr OR expr */ - 217, /* (197) expr ::= expr LT|GT|GE|LE expr */ - 217, /* (198) expr ::= expr EQ|NE expr */ - 217, /* (199) expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ - 217, /* (200) expr ::= expr PLUS|MINUS expr */ - 217, /* (201) expr ::= expr STAR|SLASH|REM expr */ - 217, /* (202) expr ::= expr CONCAT expr */ - 274, /* (203) likeop ::= NOT LIKE_KW|MATCH */ - 217, /* (204) expr ::= expr likeop expr */ - 217, /* (205) expr ::= expr likeop expr ESCAPE expr */ - 217, /* (206) expr ::= expr ISNULL|NOTNULL */ - 217, /* (207) expr ::= expr NOT NULL */ - 217, /* (208) expr ::= expr IS expr */ - 217, /* (209) expr ::= expr IS NOT expr */ - 217, /* (210) expr ::= expr IS NOT DISTINCT FROM expr */ - 217, /* (211) expr ::= expr IS DISTINCT FROM expr */ - 217, /* (212) expr ::= NOT expr */ - 217, /* (213) expr ::= BITNOT expr */ - 217, /* (214) expr ::= PLUS|MINUS expr */ - 217, /* (215) expr ::= expr PTR expr */ - 275, /* (216) between_op ::= BETWEEN */ - 275, /* (217) between_op ::= NOT BETWEEN */ - 217, /* (218) expr ::= expr between_op expr AND expr */ - 276, /* (219) in_op ::= IN */ - 276, /* (220) in_op ::= NOT IN */ - 217, /* (221) expr ::= expr in_op LP exprlist RP */ - 217, /* (222) expr ::= LP select RP */ - 217, /* (223) expr ::= expr in_op LP select RP */ - 217, /* (224) expr ::= expr in_op nm dbnm paren_exprlist */ - 217, /* (225) expr ::= EXISTS LP select RP */ - 217, /* (226) expr ::= CASE case_operand case_exprlist case_else END */ - 279, /* (227) case_exprlist ::= case_exprlist WHEN expr THEN expr */ - 279, /* (228) case_exprlist ::= WHEN expr THEN expr */ - 280, /* (229) case_else ::= ELSE expr */ - 280, /* (230) case_else ::= */ - 278, /* (231) case_operand ::= */ - 261, /* (232) exprlist ::= */ - 253, /* (233) nexprlist ::= nexprlist COMMA expr */ - 253, /* (234) nexprlist ::= expr */ - 277, /* (235) paren_exprlist ::= */ - 277, /* (236) paren_exprlist ::= LP exprlist RP */ - 190, /* (237) cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ - 281, /* (238) uniqueflag ::= UNIQUE */ - 281, /* (239) uniqueflag ::= */ - 221, /* (240) eidlist_opt ::= */ - 221, /* (241) eidlist_opt ::= LP eidlist RP */ - 232, /* (242) eidlist ::= eidlist COMMA nm collate sortorder */ - 232, /* (243) eidlist ::= nm collate sortorder */ - 282, /* (244) collate ::= */ - 282, /* (245) collate ::= COLLATE ID|STRING */ - 190, /* (246) cmd ::= DROP INDEX ifexists fullname */ - 190, /* (247) cmd ::= VACUUM vinto */ - 190, /* (248) cmd ::= VACUUM nm vinto */ - 283, /* (249) vinto ::= INTO expr */ - 283, /* (250) vinto ::= */ - 190, /* (251) cmd ::= PRAGMA nm dbnm */ - 190, /* (252) cmd ::= PRAGMA nm dbnm EQ nmnum */ - 190, /* (253) cmd ::= PRAGMA nm dbnm LP nmnum RP */ - 190, /* (254) cmd ::= PRAGMA nm dbnm EQ minus_num */ - 190, /* (255) cmd ::= PRAGMA nm dbnm LP minus_num RP */ - 211, /* (256) plus_num ::= PLUS INTEGER|FLOAT */ - 212, /* (257) minus_num ::= MINUS INTEGER|FLOAT */ - 190, /* (258) cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ - 285, /* (259) trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ - 287, /* (260) trigger_time ::= BEFORE|AFTER */ - 287, /* (261) trigger_time ::= INSTEAD OF */ - 287, /* (262) trigger_time ::= */ - 288, /* (263) trigger_event ::= DELETE|INSERT */ - 288, /* (264) trigger_event ::= UPDATE */ - 288, /* (265) trigger_event ::= UPDATE OF idlist */ - 290, /* (266) when_clause ::= */ - 290, /* (267) when_clause ::= WHEN expr */ - 286, /* (268) trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ - 286, /* (269) trigger_cmd_list ::= trigger_cmd SEMI */ - 292, /* (270) trnm ::= nm DOT nm */ - 293, /* (271) tridxby ::= INDEXED BY nm */ - 293, /* (272) tridxby ::= NOT INDEXED */ - 291, /* (273) trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */ - 291, /* (274) trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */ - 291, /* (275) trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ - 291, /* (276) trigger_cmd ::= scanpt select scanpt */ - 217, /* (277) expr ::= RAISE LP IGNORE RP */ - 217, /* (278) expr ::= RAISE LP raisetype COMMA nm RP */ - 236, /* (279) raisetype ::= ROLLBACK */ - 236, /* (280) raisetype ::= ABORT */ - 236, /* (281) raisetype ::= FAIL */ - 190, /* (282) cmd ::= DROP TRIGGER ifexists fullname */ - 190, /* (283) cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ - 190, /* (284) cmd ::= DETACH database_kw_opt expr */ - 295, /* (285) key_opt ::= */ - 295, /* (286) key_opt ::= KEY expr */ - 190, /* (287) cmd ::= REINDEX */ - 190, /* (288) cmd ::= REINDEX nm dbnm */ - 190, /* (289) cmd ::= ANALYZE */ - 190, /* (290) cmd ::= ANALYZE nm dbnm */ - 190, /* (291) cmd ::= ALTER TABLE fullname RENAME TO nm */ - 190, /* (292) cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ - 190, /* (293) cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ - 296, /* (294) add_column_fullname ::= fullname */ - 190, /* (295) cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ - 190, /* (296) cmd ::= create_vtab */ - 190, /* (297) cmd ::= create_vtab LP vtabarglist RP */ - 298, /* (298) create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ - 300, /* (299) vtabarg ::= */ - 301, /* (300) vtabargtoken ::= ANY */ - 301, /* (301) vtabargtoken ::= lp anylist RP */ - 302, /* (302) lp ::= LP */ - 266, /* (303) with ::= WITH wqlist */ - 266, /* (304) with ::= WITH RECURSIVE wqlist */ - 305, /* (305) wqas ::= AS */ - 305, /* (306) wqas ::= AS MATERIALIZED */ - 305, /* (307) wqas ::= AS NOT MATERIALIZED */ - 304, /* (308) wqitem ::= nm eidlist_opt wqas LP select RP */ - 241, /* (309) wqlist ::= wqitem */ - 241, /* (310) wqlist ::= wqlist COMMA wqitem */ - 306, /* (311) windowdefn_list ::= windowdefn_list COMMA windowdefn */ - 307, /* (312) windowdefn ::= nm AS LP window RP */ - 308, /* (313) window ::= PARTITION BY nexprlist orderby_opt frame_opt */ - 308, /* (314) window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ - 308, /* (315) window ::= ORDER BY sortlist frame_opt */ - 308, /* (316) window ::= nm ORDER BY sortlist frame_opt */ - 308, /* (317) window ::= nm frame_opt */ - 309, /* (318) frame_opt ::= */ - 309, /* (319) frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ - 309, /* (320) frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ - 313, /* (321) range_or_rows ::= RANGE|ROWS|GROUPS */ - 315, /* (322) frame_bound_s ::= frame_bound */ - 315, /* (323) frame_bound_s ::= UNBOUNDED PRECEDING */ - 316, /* (324) frame_bound_e ::= frame_bound */ - 316, /* (325) frame_bound_e ::= UNBOUNDED FOLLOWING */ - 314, /* (326) frame_bound ::= expr PRECEDING|FOLLOWING */ - 314, /* (327) frame_bound ::= CURRENT ROW */ - 317, /* (328) frame_exclude_opt ::= */ - 317, /* (329) frame_exclude_opt ::= EXCLUDE frame_exclude */ - 318, /* (330) frame_exclude ::= NO OTHERS */ - 318, /* (331) frame_exclude ::= CURRENT ROW */ - 318, /* (332) frame_exclude ::= GROUP|TIES */ - 251, /* (333) window_clause ::= WINDOW windowdefn_list */ - 273, /* (334) filter_over ::= filter_clause over_clause */ - 273, /* (335) filter_over ::= over_clause */ - 273, /* (336) filter_over ::= filter_clause */ - 312, /* (337) over_clause ::= OVER LP window RP */ - 312, /* (338) over_clause ::= OVER nm */ - 311, /* (339) filter_clause ::= FILTER LP WHERE expr RP */ - 185, /* (340) input ::= cmdlist */ - 186, /* (341) cmdlist ::= cmdlist ecmd */ - 186, /* (342) cmdlist ::= ecmd */ - 187, /* (343) ecmd ::= SEMI */ - 187, /* (344) ecmd ::= cmdx SEMI */ - 187, /* (345) ecmd ::= explain cmdx SEMI */ - 192, /* (346) trans_opt ::= */ - 192, /* (347) trans_opt ::= TRANSACTION */ - 192, /* (348) trans_opt ::= TRANSACTION nm */ - 194, /* (349) savepoint_opt ::= SAVEPOINT */ - 194, /* (350) savepoint_opt ::= */ - 190, /* (351) cmd ::= create_table create_table_args */ - 203, /* (352) table_option_set ::= table_option */ - 201, /* (353) columnlist ::= columnlist COMMA columnname carglist */ - 201, /* (354) columnlist ::= columnname carglist */ - 193, /* (355) nm ::= ID|INDEXED|JOIN_KW */ - 193, /* (356) nm ::= STRING */ - 208, /* (357) typetoken ::= typename */ - 209, /* (358) typename ::= ID|STRING */ - 210, /* (359) signed ::= plus_num */ - 210, /* (360) signed ::= minus_num */ - 207, /* (361) carglist ::= carglist ccons */ - 207, /* (362) carglist ::= */ - 215, /* (363) ccons ::= NULL onconf */ - 215, /* (364) ccons ::= GENERATED ALWAYS AS generated */ - 215, /* (365) ccons ::= AS generated */ - 202, /* (366) conslist_opt ::= COMMA conslist */ - 228, /* (367) conslist ::= conslist tconscomma tcons */ - 228, /* (368) conslist ::= tcons */ - 229, /* (369) tconscomma ::= */ - 233, /* (370) defer_subclause_opt ::= defer_subclause */ - 235, /* (371) resolvetype ::= raisetype */ - 239, /* (372) selectnowith ::= oneselect */ - 240, /* (373) oneselect ::= values */ - 254, /* (374) sclp ::= selcollist COMMA */ - 255, /* (375) as ::= ID|STRING */ - 264, /* (376) indexed_opt ::= indexed_by */ - 272, /* (377) returning ::= */ - 217, /* (378) expr ::= term */ - 274, /* (379) likeop ::= LIKE_KW|MATCH */ - 278, /* (380) case_operand ::= expr */ - 261, /* (381) exprlist ::= nexprlist */ - 284, /* (382) nmnum ::= plus_num */ - 284, /* (383) nmnum ::= nm */ - 284, /* (384) nmnum ::= ON */ - 284, /* (385) nmnum ::= DELETE */ - 284, /* (386) nmnum ::= DEFAULT */ - 211, /* (387) plus_num ::= INTEGER|FLOAT */ - 289, /* (388) foreach_clause ::= */ - 289, /* (389) foreach_clause ::= FOR EACH ROW */ - 292, /* (390) trnm ::= nm */ - 293, /* (391) tridxby ::= */ - 294, /* (392) database_kw_opt ::= DATABASE */ - 294, /* (393) database_kw_opt ::= */ - 297, /* (394) kwcolumn_opt ::= */ - 297, /* (395) kwcolumn_opt ::= COLUMNKW */ - 299, /* (396) vtabarglist ::= vtabarg */ - 299, /* (397) vtabarglist ::= vtabarglist COMMA vtabarg */ - 300, /* (398) vtabarg ::= vtabarg vtabargtoken */ - 303, /* (399) anylist ::= */ - 303, /* (400) anylist ::= anylist LP anylist RP */ - 303, /* (401) anylist ::= anylist ANY */ - 266, /* (402) with ::= */ - 306, /* (403) windowdefn_list ::= windowdefn */ - 308, /* (404) window ::= frame_opt */ + 190, /* (0) explain ::= EXPLAIN */ + 190, /* (1) explain ::= EXPLAIN QUERY PLAN */ + 189, /* (2) cmdx ::= cmd */ + 191, /* (3) cmd ::= BEGIN transtype trans_opt */ + 192, /* (4) transtype ::= */ + 192, /* (5) transtype ::= DEFERRED */ + 192, /* (6) transtype ::= IMMEDIATE */ + 192, /* (7) transtype ::= EXCLUSIVE */ + 191, /* (8) cmd ::= COMMIT|END trans_opt */ + 191, /* (9) cmd ::= ROLLBACK trans_opt */ + 191, /* (10) cmd ::= SAVEPOINT nm */ + 191, /* (11) cmd ::= RELEASE savepoint_opt nm */ + 191, /* (12) cmd ::= ROLLBACK trans_opt TO savepoint_opt nm */ + 196, /* (13) create_table ::= createkw temp TABLE ifnotexists nm dbnm */ + 198, /* (14) createkw ::= CREATE */ + 200, /* (15) ifnotexists ::= */ + 200, /* (16) ifnotexists ::= IF NOT EXISTS */ + 199, /* (17) temp ::= TEMP */ + 199, /* (18) temp ::= */ + 197, /* (19) create_table_args ::= LP columnlist conslist_opt RP table_option_set */ + 197, /* (20) create_table_args ::= AS select */ + 204, /* (21) table_option_set ::= */ + 204, /* (22) table_option_set ::= table_option_set COMMA table_option */ + 206, /* (23) table_option ::= WITHOUT nm */ + 206, /* (24) table_option ::= nm */ + 207, /* (25) columnname ::= nm typetoken */ + 209, /* (26) typetoken ::= */ + 209, /* (27) typetoken ::= typename LP signed RP */ + 209, /* (28) typetoken ::= typename LP signed COMMA signed RP */ + 210, /* (29) typename ::= typename ID|STRING */ + 214, /* (30) scanpt ::= */ + 215, /* (31) scantok ::= */ + 216, /* (32) ccons ::= CONSTRAINT nm */ + 216, /* (33) ccons ::= DEFAULT scantok term */ + 216, /* (34) ccons ::= DEFAULT LP expr RP */ + 216, /* (35) ccons ::= DEFAULT PLUS scantok term */ + 216, /* (36) ccons ::= DEFAULT MINUS scantok term */ + 216, /* (37) ccons ::= DEFAULT scantok ID|INDEXED */ + 216, /* (38) ccons ::= NOT NULL onconf */ + 216, /* (39) ccons ::= PRIMARY KEY sortorder onconf autoinc */ + 216, /* (40) ccons ::= UNIQUE onconf */ + 216, /* (41) ccons ::= CHECK LP expr RP */ + 216, /* (42) ccons ::= REFERENCES nm eidlist_opt refargs */ + 216, /* (43) ccons ::= defer_subclause */ + 216, /* (44) ccons ::= COLLATE ID|STRING */ + 225, /* (45) generated ::= LP expr RP */ + 225, /* (46) generated ::= LP expr RP ID */ + 221, /* (47) autoinc ::= */ + 221, /* (48) autoinc ::= AUTOINCR */ + 223, /* (49) refargs ::= */ + 223, /* (50) refargs ::= refargs refarg */ + 226, /* (51) refarg ::= MATCH nm */ + 226, /* (52) refarg ::= ON INSERT refact */ + 226, /* (53) refarg ::= ON DELETE refact */ + 226, /* (54) refarg ::= ON UPDATE refact */ + 227, /* (55) refact ::= SET NULL */ + 227, /* (56) refact ::= SET DEFAULT */ + 227, /* (57) refact ::= CASCADE */ + 227, /* (58) refact ::= RESTRICT */ + 227, /* (59) refact ::= NO ACTION */ + 224, /* (60) defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */ + 224, /* (61) defer_subclause ::= DEFERRABLE init_deferred_pred_opt */ + 228, /* (62) init_deferred_pred_opt ::= */ + 228, /* (63) init_deferred_pred_opt ::= INITIALLY DEFERRED */ + 228, /* (64) init_deferred_pred_opt ::= INITIALLY IMMEDIATE */ + 203, /* (65) conslist_opt ::= */ + 230, /* (66) tconscomma ::= COMMA */ + 231, /* (67) tcons ::= CONSTRAINT nm */ + 231, /* (68) tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf */ + 231, /* (69) tcons ::= UNIQUE LP sortlist RP onconf */ + 231, /* (70) tcons ::= CHECK LP expr RP onconf */ + 231, /* (71) tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt */ + 234, /* (72) defer_subclause_opt ::= */ + 219, /* (73) onconf ::= */ + 219, /* (74) onconf ::= ON CONFLICT resolvetype */ + 235, /* (75) orconf ::= */ + 235, /* (76) orconf ::= OR resolvetype */ + 236, /* (77) resolvetype ::= IGNORE */ + 236, /* (78) resolvetype ::= REPLACE */ + 191, /* (79) cmd ::= DROP TABLE ifexists fullname */ + 238, /* (80) ifexists ::= IF EXISTS */ + 238, /* (81) ifexists ::= */ + 191, /* (82) cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */ + 191, /* (83) cmd ::= DROP VIEW ifexists fullname */ + 191, /* (84) cmd ::= select */ + 205, /* (85) select ::= WITH wqlist selectnowith */ + 205, /* (86) select ::= WITH RECURSIVE wqlist selectnowith */ + 205, /* (87) select ::= selectnowith */ + 240, /* (88) selectnowith ::= selectnowith multiselect_op oneselect */ + 243, /* (89) multiselect_op ::= UNION */ + 243, /* (90) multiselect_op ::= UNION ALL */ + 243, /* (91) multiselect_op ::= EXCEPT|INTERSECT */ + 241, /* (92) oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */ + 241, /* (93) oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt */ + 253, /* (94) values ::= VALUES LP nexprlist RP */ + 241, /* (95) oneselect ::= mvalues */ + 255, /* (96) mvalues ::= values COMMA LP nexprlist RP */ + 255, /* (97) mvalues ::= mvalues COMMA LP nexprlist RP */ + 244, /* (98) distinct ::= DISTINCT */ + 244, /* (99) distinct ::= ALL */ + 244, /* (100) distinct ::= */ + 256, /* (101) sclp ::= */ + 245, /* (102) selcollist ::= sclp scanpt expr scanpt as */ + 245, /* (103) selcollist ::= sclp scanpt STAR */ + 245, /* (104) selcollist ::= sclp scanpt nm DOT STAR */ + 257, /* (105) as ::= AS nm */ + 257, /* (106) as ::= */ + 246, /* (107) from ::= */ + 246, /* (108) from ::= FROM seltablist */ + 259, /* (109) stl_prefix ::= seltablist joinop */ + 259, /* (110) stl_prefix ::= */ + 258, /* (111) seltablist ::= stl_prefix nm dbnm as on_using */ + 258, /* (112) seltablist ::= stl_prefix nm dbnm as indexed_by on_using */ + 258, /* (113) seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_using */ + 258, /* (114) seltablist ::= stl_prefix LP select RP as on_using */ + 258, /* (115) seltablist ::= stl_prefix LP seltablist RP as on_using */ + 201, /* (116) dbnm ::= */ + 201, /* (117) dbnm ::= DOT nm */ + 239, /* (118) fullname ::= nm */ + 239, /* (119) fullname ::= nm DOT nm */ + 264, /* (120) xfullname ::= nm */ + 264, /* (121) xfullname ::= nm DOT nm */ + 264, /* (122) xfullname ::= nm DOT nm AS nm */ + 264, /* (123) xfullname ::= nm AS nm */ + 260, /* (124) joinop ::= COMMA|JOIN */ + 260, /* (125) joinop ::= JOIN_KW JOIN */ + 260, /* (126) joinop ::= JOIN_KW nm JOIN */ + 260, /* (127) joinop ::= JOIN_KW nm nm JOIN */ + 261, /* (128) on_using ::= ON expr */ + 261, /* (129) on_using ::= USING LP idlist RP */ + 261, /* (130) on_using ::= */ + 266, /* (131) indexed_opt ::= */ + 262, /* (132) indexed_by ::= INDEXED BY nm */ + 262, /* (133) indexed_by ::= NOT INDEXED */ + 250, /* (134) orderby_opt ::= */ + 250, /* (135) orderby_opt ::= ORDER BY sortlist */ + 232, /* (136) sortlist ::= sortlist COMMA expr sortorder nulls */ + 232, /* (137) sortlist ::= expr sortorder nulls */ + 220, /* (138) sortorder ::= ASC */ + 220, /* (139) sortorder ::= DESC */ + 220, /* (140) sortorder ::= */ + 267, /* (141) nulls ::= NULLS FIRST */ + 267, /* (142) nulls ::= NULLS LAST */ + 267, /* (143) nulls ::= */ + 248, /* (144) groupby_opt ::= */ + 248, /* (145) groupby_opt ::= GROUP BY nexprlist */ + 249, /* (146) having_opt ::= */ + 249, /* (147) having_opt ::= HAVING expr */ + 251, /* (148) limit_opt ::= */ + 251, /* (149) limit_opt ::= LIMIT expr */ + 251, /* (150) limit_opt ::= LIMIT expr OFFSET expr */ + 251, /* (151) limit_opt ::= LIMIT expr COMMA expr */ + 191, /* (152) cmd ::= with DELETE FROM xfullname indexed_opt where_opt_ret */ + 247, /* (153) where_opt ::= */ + 247, /* (154) where_opt ::= WHERE expr */ + 269, /* (155) where_opt_ret ::= */ + 269, /* (156) where_opt_ret ::= WHERE expr */ + 269, /* (157) where_opt_ret ::= RETURNING selcollist */ + 269, /* (158) where_opt_ret ::= WHERE expr RETURNING selcollist */ + 191, /* (159) cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist from where_opt_ret */ + 270, /* (160) setlist ::= setlist COMMA nm EQ expr */ + 270, /* (161) setlist ::= setlist COMMA LP idlist RP EQ expr */ + 270, /* (162) setlist ::= nm EQ expr */ + 270, /* (163) setlist ::= LP idlist RP EQ expr */ + 191, /* (164) cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert */ + 191, /* (165) cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES returning */ + 273, /* (166) upsert ::= */ + 273, /* (167) upsert ::= RETURNING selcollist */ + 273, /* (168) upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt upsert */ + 273, /* (169) upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING upsert */ + 273, /* (170) upsert ::= ON CONFLICT DO NOTHING returning */ + 273, /* (171) upsert ::= ON CONFLICT DO UPDATE SET setlist where_opt returning */ + 274, /* (172) returning ::= RETURNING selcollist */ + 271, /* (173) insert_cmd ::= INSERT orconf */ + 271, /* (174) insert_cmd ::= REPLACE */ + 272, /* (175) idlist_opt ::= */ + 272, /* (176) idlist_opt ::= LP idlist RP */ + 265, /* (177) idlist ::= idlist COMMA nm */ + 265, /* (178) idlist ::= nm */ + 218, /* (179) expr ::= LP expr RP */ + 218, /* (180) expr ::= ID|INDEXED|JOIN_KW */ + 218, /* (181) expr ::= nm DOT nm */ + 218, /* (182) expr ::= nm DOT nm DOT nm */ + 217, /* (183) term ::= NULL|FLOAT|BLOB */ + 217, /* (184) term ::= STRING */ + 217, /* (185) term ::= INTEGER */ + 218, /* (186) expr ::= VARIABLE */ + 218, /* (187) expr ::= expr COLLATE ID|STRING */ + 218, /* (188) expr ::= CAST LP expr AS typetoken RP */ + 218, /* (189) expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP */ + 218, /* (190) expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP */ + 218, /* (191) expr ::= ID|INDEXED|JOIN_KW LP STAR RP */ + 218, /* (192) expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP filter_over */ + 218, /* (193) expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP filter_over */ + 218, /* (194) expr ::= ID|INDEXED|JOIN_KW LP STAR RP filter_over */ + 217, /* (195) term ::= CTIME_KW */ + 218, /* (196) expr ::= LP nexprlist COMMA expr RP */ + 218, /* (197) expr ::= expr AND expr */ + 218, /* (198) expr ::= expr OR expr */ + 218, /* (199) expr ::= expr LT|GT|GE|LE expr */ + 218, /* (200) expr ::= expr EQ|NE expr */ + 218, /* (201) expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ + 218, /* (202) expr ::= expr PLUS|MINUS expr */ + 218, /* (203) expr ::= expr STAR|SLASH|REM expr */ + 218, /* (204) expr ::= expr CONCAT expr */ + 276, /* (205) likeop ::= NOT LIKE_KW|MATCH */ + 218, /* (206) expr ::= expr likeop expr */ + 218, /* (207) expr ::= expr likeop expr ESCAPE expr */ + 218, /* (208) expr ::= expr ISNULL|NOTNULL */ + 218, /* (209) expr ::= expr NOT NULL */ + 218, /* (210) expr ::= expr IS expr */ + 218, /* (211) expr ::= expr IS NOT expr */ + 218, /* (212) expr ::= expr IS NOT DISTINCT FROM expr */ + 218, /* (213) expr ::= expr IS DISTINCT FROM expr */ + 218, /* (214) expr ::= NOT expr */ + 218, /* (215) expr ::= BITNOT expr */ + 218, /* (216) expr ::= PLUS|MINUS expr */ + 218, /* (217) expr ::= expr PTR expr */ + 277, /* (218) between_op ::= BETWEEN */ + 277, /* (219) between_op ::= NOT BETWEEN */ + 218, /* (220) expr ::= expr between_op expr AND expr */ + 278, /* (221) in_op ::= IN */ + 278, /* (222) in_op ::= NOT IN */ + 218, /* (223) expr ::= expr in_op LP exprlist RP */ + 218, /* (224) expr ::= LP select RP */ + 218, /* (225) expr ::= expr in_op LP select RP */ + 218, /* (226) expr ::= expr in_op nm dbnm paren_exprlist */ + 218, /* (227) expr ::= EXISTS LP select RP */ + 218, /* (228) expr ::= CASE case_operand case_exprlist case_else END */ + 281, /* (229) case_exprlist ::= case_exprlist WHEN expr THEN expr */ + 281, /* (230) case_exprlist ::= WHEN expr THEN expr */ + 282, /* (231) case_else ::= ELSE expr */ + 282, /* (232) case_else ::= */ + 280, /* (233) case_operand ::= */ + 263, /* (234) exprlist ::= */ + 254, /* (235) nexprlist ::= nexprlist COMMA expr */ + 254, /* (236) nexprlist ::= expr */ + 279, /* (237) paren_exprlist ::= */ + 279, /* (238) paren_exprlist ::= LP exprlist RP */ + 191, /* (239) cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ + 283, /* (240) uniqueflag ::= UNIQUE */ + 283, /* (241) uniqueflag ::= */ + 222, /* (242) eidlist_opt ::= */ + 222, /* (243) eidlist_opt ::= LP eidlist RP */ + 233, /* (244) eidlist ::= eidlist COMMA nm collate sortorder */ + 233, /* (245) eidlist ::= nm collate sortorder */ + 284, /* (246) collate ::= */ + 284, /* (247) collate ::= COLLATE ID|STRING */ + 191, /* (248) cmd ::= DROP INDEX ifexists fullname */ + 191, /* (249) cmd ::= VACUUM vinto */ + 191, /* (250) cmd ::= VACUUM nm vinto */ + 285, /* (251) vinto ::= INTO expr */ + 285, /* (252) vinto ::= */ + 191, /* (253) cmd ::= PRAGMA nm dbnm */ + 191, /* (254) cmd ::= PRAGMA nm dbnm EQ nmnum */ + 191, /* (255) cmd ::= PRAGMA nm dbnm LP nmnum RP */ + 191, /* (256) cmd ::= PRAGMA nm dbnm EQ minus_num */ + 191, /* (257) cmd ::= PRAGMA nm dbnm LP minus_num RP */ + 212, /* (258) plus_num ::= PLUS INTEGER|FLOAT */ + 213, /* (259) minus_num ::= MINUS INTEGER|FLOAT */ + 191, /* (260) cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ + 287, /* (261) trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ + 289, /* (262) trigger_time ::= BEFORE|AFTER */ + 289, /* (263) trigger_time ::= INSTEAD OF */ + 289, /* (264) trigger_time ::= */ + 290, /* (265) trigger_event ::= DELETE|INSERT */ + 290, /* (266) trigger_event ::= UPDATE */ + 290, /* (267) trigger_event ::= UPDATE OF idlist */ + 292, /* (268) when_clause ::= */ + 292, /* (269) when_clause ::= WHEN expr */ + 288, /* (270) trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ + 288, /* (271) trigger_cmd_list ::= trigger_cmd SEMI */ + 294, /* (272) trnm ::= nm DOT nm */ + 295, /* (273) tridxby ::= INDEXED BY nm */ + 295, /* (274) tridxby ::= NOT INDEXED */ + 293, /* (275) trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */ + 293, /* (276) trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */ + 293, /* (277) trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ + 293, /* (278) trigger_cmd ::= scanpt select scanpt */ + 218, /* (279) expr ::= RAISE LP IGNORE RP */ + 218, /* (280) expr ::= RAISE LP raisetype COMMA nm RP */ + 237, /* (281) raisetype ::= ROLLBACK */ + 237, /* (282) raisetype ::= ABORT */ + 237, /* (283) raisetype ::= FAIL */ + 191, /* (284) cmd ::= DROP TRIGGER ifexists fullname */ + 191, /* (285) cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ + 191, /* (286) cmd ::= DETACH database_kw_opt expr */ + 297, /* (287) key_opt ::= */ + 297, /* (288) key_opt ::= KEY expr */ + 191, /* (289) cmd ::= REINDEX */ + 191, /* (290) cmd ::= REINDEX nm dbnm */ + 191, /* (291) cmd ::= ANALYZE */ + 191, /* (292) cmd ::= ANALYZE nm dbnm */ + 191, /* (293) cmd ::= ALTER TABLE fullname RENAME TO nm */ + 191, /* (294) cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ + 191, /* (295) cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ + 298, /* (296) add_column_fullname ::= fullname */ + 191, /* (297) cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ + 191, /* (298) cmd ::= create_vtab */ + 191, /* (299) cmd ::= create_vtab LP vtabarglist RP */ + 300, /* (300) create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ + 302, /* (301) vtabarg ::= */ + 303, /* (302) vtabargtoken ::= ANY */ + 303, /* (303) vtabargtoken ::= lp anylist RP */ + 304, /* (304) lp ::= LP */ + 268, /* (305) with ::= WITH wqlist */ + 268, /* (306) with ::= WITH RECURSIVE wqlist */ + 307, /* (307) wqas ::= AS */ + 307, /* (308) wqas ::= AS MATERIALIZED */ + 307, /* (309) wqas ::= AS NOT MATERIALIZED */ + 306, /* (310) wqitem ::= withnm eidlist_opt wqas LP select RP */ + 308, /* (311) withnm ::= nm */ + 242, /* (312) wqlist ::= wqitem */ + 242, /* (313) wqlist ::= wqlist COMMA wqitem */ + 309, /* (314) windowdefn_list ::= windowdefn_list COMMA windowdefn */ + 310, /* (315) windowdefn ::= nm AS LP window RP */ + 311, /* (316) window ::= PARTITION BY nexprlist orderby_opt frame_opt */ + 311, /* (317) window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ + 311, /* (318) window ::= ORDER BY sortlist frame_opt */ + 311, /* (319) window ::= nm ORDER BY sortlist frame_opt */ + 311, /* (320) window ::= nm frame_opt */ + 312, /* (321) frame_opt ::= */ + 312, /* (322) frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ + 312, /* (323) frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ + 316, /* (324) range_or_rows ::= RANGE|ROWS|GROUPS */ + 318, /* (325) frame_bound_s ::= frame_bound */ + 318, /* (326) frame_bound_s ::= UNBOUNDED PRECEDING */ + 319, /* (327) frame_bound_e ::= frame_bound */ + 319, /* (328) frame_bound_e ::= UNBOUNDED FOLLOWING */ + 317, /* (329) frame_bound ::= expr PRECEDING|FOLLOWING */ + 317, /* (330) frame_bound ::= CURRENT ROW */ + 320, /* (331) frame_exclude_opt ::= */ + 320, /* (332) frame_exclude_opt ::= EXCLUDE frame_exclude */ + 321, /* (333) frame_exclude ::= NO OTHERS */ + 321, /* (334) frame_exclude ::= CURRENT ROW */ + 321, /* (335) frame_exclude ::= GROUP|TIES */ + 252, /* (336) window_clause ::= WINDOW windowdefn_list */ + 275, /* (337) filter_over ::= filter_clause over_clause */ + 275, /* (338) filter_over ::= over_clause */ + 275, /* (339) filter_over ::= filter_clause */ + 315, /* (340) over_clause ::= OVER LP window RP */ + 315, /* (341) over_clause ::= OVER nm */ + 314, /* (342) filter_clause ::= FILTER LP WHERE expr RP */ + 217, /* (343) term ::= QNUMBER */ + 186, /* (344) input ::= cmdlist */ + 187, /* (345) cmdlist ::= cmdlist ecmd */ + 187, /* (346) cmdlist ::= ecmd */ + 188, /* (347) ecmd ::= SEMI */ + 188, /* (348) ecmd ::= cmdx SEMI */ + 188, /* (349) ecmd ::= explain cmdx SEMI */ + 193, /* (350) trans_opt ::= */ + 193, /* (351) trans_opt ::= TRANSACTION */ + 193, /* (352) trans_opt ::= TRANSACTION nm */ + 195, /* (353) savepoint_opt ::= SAVEPOINT */ + 195, /* (354) savepoint_opt ::= */ + 191, /* (355) cmd ::= create_table create_table_args */ + 204, /* (356) table_option_set ::= table_option */ + 202, /* (357) columnlist ::= columnlist COMMA columnname carglist */ + 202, /* (358) columnlist ::= columnname carglist */ + 194, /* (359) nm ::= ID|INDEXED|JOIN_KW */ + 194, /* (360) nm ::= STRING */ + 209, /* (361) typetoken ::= typename */ + 210, /* (362) typename ::= ID|STRING */ + 211, /* (363) signed ::= plus_num */ + 211, /* (364) signed ::= minus_num */ + 208, /* (365) carglist ::= carglist ccons */ + 208, /* (366) carglist ::= */ + 216, /* (367) ccons ::= NULL onconf */ + 216, /* (368) ccons ::= GENERATED ALWAYS AS generated */ + 216, /* (369) ccons ::= AS generated */ + 203, /* (370) conslist_opt ::= COMMA conslist */ + 229, /* (371) conslist ::= conslist tconscomma tcons */ + 229, /* (372) conslist ::= tcons */ + 230, /* (373) tconscomma ::= */ + 234, /* (374) defer_subclause_opt ::= defer_subclause */ + 236, /* (375) resolvetype ::= raisetype */ + 240, /* (376) selectnowith ::= oneselect */ + 241, /* (377) oneselect ::= values */ + 256, /* (378) sclp ::= selcollist COMMA */ + 257, /* (379) as ::= ID|STRING */ + 266, /* (380) indexed_opt ::= indexed_by */ + 274, /* (381) returning ::= */ + 218, /* (382) expr ::= term */ + 276, /* (383) likeop ::= LIKE_KW|MATCH */ + 280, /* (384) case_operand ::= expr */ + 263, /* (385) exprlist ::= nexprlist */ + 286, /* (386) nmnum ::= plus_num */ + 286, /* (387) nmnum ::= nm */ + 286, /* (388) nmnum ::= ON */ + 286, /* (389) nmnum ::= DELETE */ + 286, /* (390) nmnum ::= DEFAULT */ + 212, /* (391) plus_num ::= INTEGER|FLOAT */ + 291, /* (392) foreach_clause ::= */ + 291, /* (393) foreach_clause ::= FOR EACH ROW */ + 294, /* (394) trnm ::= nm */ + 295, /* (395) tridxby ::= */ + 296, /* (396) database_kw_opt ::= DATABASE */ + 296, /* (397) database_kw_opt ::= */ + 299, /* (398) kwcolumn_opt ::= */ + 299, /* (399) kwcolumn_opt ::= COLUMNKW */ + 301, /* (400) vtabarglist ::= vtabarg */ + 301, /* (401) vtabarglist ::= vtabarglist COMMA vtabarg */ + 302, /* (402) vtabarg ::= vtabarg vtabargtoken */ + 305, /* (403) anylist ::= */ + 305, /* (404) anylist ::= anylist LP anylist RP */ + 305, /* (405) anylist ::= anylist ANY */ + 268, /* (406) with ::= */ + 309, /* (407) windowdefn_list ::= windowdefn */ + 311, /* (408) window ::= frame_opt */ }; /* For rule J, yyRuleInfoNRhs[J] contains the negative of the number @@ -174144,316 +175752,320 @@ static const signed char yyRuleInfoNRhs[] = { -9, /* (92) oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */ -10, /* (93) oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt */ -4, /* (94) values ::= VALUES LP nexprlist RP */ - -5, /* (95) values ::= values COMMA LP nexprlist RP */ - -1, /* (96) distinct ::= DISTINCT */ - -1, /* (97) distinct ::= ALL */ - 0, /* (98) distinct ::= */ - 0, /* (99) sclp ::= */ - -5, /* (100) selcollist ::= sclp scanpt expr scanpt as */ - -3, /* (101) selcollist ::= sclp scanpt STAR */ - -5, /* (102) selcollist ::= sclp scanpt nm DOT STAR */ - -2, /* (103) as ::= AS nm */ - 0, /* (104) as ::= */ - 0, /* (105) from ::= */ - -2, /* (106) from ::= FROM seltablist */ - -2, /* (107) stl_prefix ::= seltablist joinop */ - 0, /* (108) stl_prefix ::= */ - -5, /* (109) seltablist ::= stl_prefix nm dbnm as on_using */ - -6, /* (110) seltablist ::= stl_prefix nm dbnm as indexed_by on_using */ - -8, /* (111) seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_using */ - -6, /* (112) seltablist ::= stl_prefix LP select RP as on_using */ - -6, /* (113) seltablist ::= stl_prefix LP seltablist RP as on_using */ - 0, /* (114) dbnm ::= */ - -2, /* (115) dbnm ::= DOT nm */ - -1, /* (116) fullname ::= nm */ - -3, /* (117) fullname ::= nm DOT nm */ - -1, /* (118) xfullname ::= nm */ - -3, /* (119) xfullname ::= nm DOT nm */ - -5, /* (120) xfullname ::= nm DOT nm AS nm */ - -3, /* (121) xfullname ::= nm AS nm */ - -1, /* (122) joinop ::= COMMA|JOIN */ - -2, /* (123) joinop ::= JOIN_KW JOIN */ - -3, /* (124) joinop ::= JOIN_KW nm JOIN */ - -4, /* (125) joinop ::= JOIN_KW nm nm JOIN */ - -2, /* (126) on_using ::= ON expr */ - -4, /* (127) on_using ::= USING LP idlist RP */ - 0, /* (128) on_using ::= */ - 0, /* (129) indexed_opt ::= */ - -3, /* (130) indexed_by ::= INDEXED BY nm */ - -2, /* (131) indexed_by ::= NOT INDEXED */ - 0, /* (132) orderby_opt ::= */ - -3, /* (133) orderby_opt ::= ORDER BY sortlist */ - -5, /* (134) sortlist ::= sortlist COMMA expr sortorder nulls */ - -3, /* (135) sortlist ::= expr sortorder nulls */ - -1, /* (136) sortorder ::= ASC */ - -1, /* (137) sortorder ::= DESC */ - 0, /* (138) sortorder ::= */ - -2, /* (139) nulls ::= NULLS FIRST */ - -2, /* (140) nulls ::= NULLS LAST */ - 0, /* (141) nulls ::= */ - 0, /* (142) groupby_opt ::= */ - -3, /* (143) groupby_opt ::= GROUP BY nexprlist */ - 0, /* (144) having_opt ::= */ - -2, /* (145) having_opt ::= HAVING expr */ - 0, /* (146) limit_opt ::= */ - -2, /* (147) limit_opt ::= LIMIT expr */ - -4, /* (148) limit_opt ::= LIMIT expr OFFSET expr */ - -4, /* (149) limit_opt ::= LIMIT expr COMMA expr */ - -6, /* (150) cmd ::= with DELETE FROM xfullname indexed_opt where_opt_ret */ - 0, /* (151) where_opt ::= */ - -2, /* (152) where_opt ::= WHERE expr */ - 0, /* (153) where_opt_ret ::= */ - -2, /* (154) where_opt_ret ::= WHERE expr */ - -2, /* (155) where_opt_ret ::= RETURNING selcollist */ - -4, /* (156) where_opt_ret ::= WHERE expr RETURNING selcollist */ - -9, /* (157) cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist from where_opt_ret */ - -5, /* (158) setlist ::= setlist COMMA nm EQ expr */ - -7, /* (159) setlist ::= setlist COMMA LP idlist RP EQ expr */ - -3, /* (160) setlist ::= nm EQ expr */ - -5, /* (161) setlist ::= LP idlist RP EQ expr */ - -7, /* (162) cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert */ - -8, /* (163) cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES returning */ - 0, /* (164) upsert ::= */ - -2, /* (165) upsert ::= RETURNING selcollist */ - -12, /* (166) upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt upsert */ - -9, /* (167) upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING upsert */ - -5, /* (168) upsert ::= ON CONFLICT DO NOTHING returning */ - -8, /* (169) upsert ::= ON CONFLICT DO UPDATE SET setlist where_opt returning */ - -2, /* (170) returning ::= RETURNING selcollist */ - -2, /* (171) insert_cmd ::= INSERT orconf */ - -1, /* (172) insert_cmd ::= REPLACE */ - 0, /* (173) idlist_opt ::= */ - -3, /* (174) idlist_opt ::= LP idlist RP */ - -3, /* (175) idlist ::= idlist COMMA nm */ - -1, /* (176) idlist ::= nm */ - -3, /* (177) expr ::= LP expr RP */ - -1, /* (178) expr ::= ID|INDEXED|JOIN_KW */ - -3, /* (179) expr ::= nm DOT nm */ - -5, /* (180) expr ::= nm DOT nm DOT nm */ - -1, /* (181) term ::= NULL|FLOAT|BLOB */ - -1, /* (182) term ::= STRING */ - -1, /* (183) term ::= INTEGER */ - -1, /* (184) expr ::= VARIABLE */ - -3, /* (185) expr ::= expr COLLATE ID|STRING */ - -6, /* (186) expr ::= CAST LP expr AS typetoken RP */ - -5, /* (187) expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP */ - -8, /* (188) expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP */ - -4, /* (189) expr ::= ID|INDEXED|JOIN_KW LP STAR RP */ - -6, /* (190) expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP filter_over */ - -9, /* (191) expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP filter_over */ - -5, /* (192) expr ::= ID|INDEXED|JOIN_KW LP STAR RP filter_over */ - -1, /* (193) term ::= CTIME_KW */ - -5, /* (194) expr ::= LP nexprlist COMMA expr RP */ - -3, /* (195) expr ::= expr AND expr */ - -3, /* (196) expr ::= expr OR expr */ - -3, /* (197) expr ::= expr LT|GT|GE|LE expr */ - -3, /* (198) expr ::= expr EQ|NE expr */ - -3, /* (199) expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ - -3, /* (200) expr ::= expr PLUS|MINUS expr */ - -3, /* (201) expr ::= expr STAR|SLASH|REM expr */ - -3, /* (202) expr ::= expr CONCAT expr */ - -2, /* (203) likeop ::= NOT LIKE_KW|MATCH */ - -3, /* (204) expr ::= expr likeop expr */ - -5, /* (205) expr ::= expr likeop expr ESCAPE expr */ - -2, /* (206) expr ::= expr ISNULL|NOTNULL */ - -3, /* (207) expr ::= expr NOT NULL */ - -3, /* (208) expr ::= expr IS expr */ - -4, /* (209) expr ::= expr IS NOT expr */ - -6, /* (210) expr ::= expr IS NOT DISTINCT FROM expr */ - -5, /* (211) expr ::= expr IS DISTINCT FROM expr */ - -2, /* (212) expr ::= NOT expr */ - -2, /* (213) expr ::= BITNOT expr */ - -2, /* (214) expr ::= PLUS|MINUS expr */ - -3, /* (215) expr ::= expr PTR expr */ - -1, /* (216) between_op ::= BETWEEN */ - -2, /* (217) between_op ::= NOT BETWEEN */ - -5, /* (218) expr ::= expr between_op expr AND expr */ - -1, /* (219) in_op ::= IN */ - -2, /* (220) in_op ::= NOT IN */ - -5, /* (221) expr ::= expr in_op LP exprlist RP */ - -3, /* (222) expr ::= LP select RP */ - -5, /* (223) expr ::= expr in_op LP select RP */ - -5, /* (224) expr ::= expr in_op nm dbnm paren_exprlist */ - -4, /* (225) expr ::= EXISTS LP select RP */ - -5, /* (226) expr ::= CASE case_operand case_exprlist case_else END */ - -5, /* (227) case_exprlist ::= case_exprlist WHEN expr THEN expr */ - -4, /* (228) case_exprlist ::= WHEN expr THEN expr */ - -2, /* (229) case_else ::= ELSE expr */ - 0, /* (230) case_else ::= */ - 0, /* (231) case_operand ::= */ - 0, /* (232) exprlist ::= */ - -3, /* (233) nexprlist ::= nexprlist COMMA expr */ - -1, /* (234) nexprlist ::= expr */ - 0, /* (235) paren_exprlist ::= */ - -3, /* (236) paren_exprlist ::= LP exprlist RP */ - -12, /* (237) cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ - -1, /* (238) uniqueflag ::= UNIQUE */ - 0, /* (239) uniqueflag ::= */ - 0, /* (240) eidlist_opt ::= */ - -3, /* (241) eidlist_opt ::= LP eidlist RP */ - -5, /* (242) eidlist ::= eidlist COMMA nm collate sortorder */ - -3, /* (243) eidlist ::= nm collate sortorder */ - 0, /* (244) collate ::= */ - -2, /* (245) collate ::= COLLATE ID|STRING */ - -4, /* (246) cmd ::= DROP INDEX ifexists fullname */ - -2, /* (247) cmd ::= VACUUM vinto */ - -3, /* (248) cmd ::= VACUUM nm vinto */ - -2, /* (249) vinto ::= INTO expr */ - 0, /* (250) vinto ::= */ - -3, /* (251) cmd ::= PRAGMA nm dbnm */ - -5, /* (252) cmd ::= PRAGMA nm dbnm EQ nmnum */ - -6, /* (253) cmd ::= PRAGMA nm dbnm LP nmnum RP */ - -5, /* (254) cmd ::= PRAGMA nm dbnm EQ minus_num */ - -6, /* (255) cmd ::= PRAGMA nm dbnm LP minus_num RP */ - -2, /* (256) plus_num ::= PLUS INTEGER|FLOAT */ - -2, /* (257) minus_num ::= MINUS INTEGER|FLOAT */ - -5, /* (258) cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ - -11, /* (259) trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ - -1, /* (260) trigger_time ::= BEFORE|AFTER */ - -2, /* (261) trigger_time ::= INSTEAD OF */ - 0, /* (262) trigger_time ::= */ - -1, /* (263) trigger_event ::= DELETE|INSERT */ - -1, /* (264) trigger_event ::= UPDATE */ - -3, /* (265) trigger_event ::= UPDATE OF idlist */ - 0, /* (266) when_clause ::= */ - -2, /* (267) when_clause ::= WHEN expr */ - -3, /* (268) trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ - -2, /* (269) trigger_cmd_list ::= trigger_cmd SEMI */ - -3, /* (270) trnm ::= nm DOT nm */ - -3, /* (271) tridxby ::= INDEXED BY nm */ - -2, /* (272) tridxby ::= NOT INDEXED */ - -9, /* (273) trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */ - -8, /* (274) trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */ - -6, /* (275) trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ - -3, /* (276) trigger_cmd ::= scanpt select scanpt */ - -4, /* (277) expr ::= RAISE LP IGNORE RP */ - -6, /* (278) expr ::= RAISE LP raisetype COMMA nm RP */ - -1, /* (279) raisetype ::= ROLLBACK */ - -1, /* (280) raisetype ::= ABORT */ - -1, /* (281) raisetype ::= FAIL */ - -4, /* (282) cmd ::= DROP TRIGGER ifexists fullname */ - -6, /* (283) cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ - -3, /* (284) cmd ::= DETACH database_kw_opt expr */ - 0, /* (285) key_opt ::= */ - -2, /* (286) key_opt ::= KEY expr */ - -1, /* (287) cmd ::= REINDEX */ - -3, /* (288) cmd ::= REINDEX nm dbnm */ - -1, /* (289) cmd ::= ANALYZE */ - -3, /* (290) cmd ::= ANALYZE nm dbnm */ - -6, /* (291) cmd ::= ALTER TABLE fullname RENAME TO nm */ - -7, /* (292) cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ - -6, /* (293) cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ - -1, /* (294) add_column_fullname ::= fullname */ - -8, /* (295) cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ - -1, /* (296) cmd ::= create_vtab */ - -4, /* (297) cmd ::= create_vtab LP vtabarglist RP */ - -8, /* (298) create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ - 0, /* (299) vtabarg ::= */ - -1, /* (300) vtabargtoken ::= ANY */ - -3, /* (301) vtabargtoken ::= lp anylist RP */ - -1, /* (302) lp ::= LP */ - -2, /* (303) with ::= WITH wqlist */ - -3, /* (304) with ::= WITH RECURSIVE wqlist */ - -1, /* (305) wqas ::= AS */ - -2, /* (306) wqas ::= AS MATERIALIZED */ - -3, /* (307) wqas ::= AS NOT MATERIALIZED */ - -6, /* (308) wqitem ::= nm eidlist_opt wqas LP select RP */ - -1, /* (309) wqlist ::= wqitem */ - -3, /* (310) wqlist ::= wqlist COMMA wqitem */ - -3, /* (311) windowdefn_list ::= windowdefn_list COMMA windowdefn */ - -5, /* (312) windowdefn ::= nm AS LP window RP */ - -5, /* (313) window ::= PARTITION BY nexprlist orderby_opt frame_opt */ - -6, /* (314) window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ - -4, /* (315) window ::= ORDER BY sortlist frame_opt */ - -5, /* (316) window ::= nm ORDER BY sortlist frame_opt */ - -2, /* (317) window ::= nm frame_opt */ - 0, /* (318) frame_opt ::= */ - -3, /* (319) frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ - -6, /* (320) frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ - -1, /* (321) range_or_rows ::= RANGE|ROWS|GROUPS */ - -1, /* (322) frame_bound_s ::= frame_bound */ - -2, /* (323) frame_bound_s ::= UNBOUNDED PRECEDING */ - -1, /* (324) frame_bound_e ::= frame_bound */ - -2, /* (325) frame_bound_e ::= UNBOUNDED FOLLOWING */ - -2, /* (326) frame_bound ::= expr PRECEDING|FOLLOWING */ - -2, /* (327) frame_bound ::= CURRENT ROW */ - 0, /* (328) frame_exclude_opt ::= */ - -2, /* (329) frame_exclude_opt ::= EXCLUDE frame_exclude */ - -2, /* (330) frame_exclude ::= NO OTHERS */ - -2, /* (331) frame_exclude ::= CURRENT ROW */ - -1, /* (332) frame_exclude ::= GROUP|TIES */ - -2, /* (333) window_clause ::= WINDOW windowdefn_list */ - -2, /* (334) filter_over ::= filter_clause over_clause */ - -1, /* (335) filter_over ::= over_clause */ - -1, /* (336) filter_over ::= filter_clause */ - -4, /* (337) over_clause ::= OVER LP window RP */ - -2, /* (338) over_clause ::= OVER nm */ - -5, /* (339) filter_clause ::= FILTER LP WHERE expr RP */ - -1, /* (340) input ::= cmdlist */ - -2, /* (341) cmdlist ::= cmdlist ecmd */ - -1, /* (342) cmdlist ::= ecmd */ - -1, /* (343) ecmd ::= SEMI */ - -2, /* (344) ecmd ::= cmdx SEMI */ - -3, /* (345) ecmd ::= explain cmdx SEMI */ - 0, /* (346) trans_opt ::= */ - -1, /* (347) trans_opt ::= TRANSACTION */ - -2, /* (348) trans_opt ::= TRANSACTION nm */ - -1, /* (349) savepoint_opt ::= SAVEPOINT */ - 0, /* (350) savepoint_opt ::= */ - -2, /* (351) cmd ::= create_table create_table_args */ - -1, /* (352) table_option_set ::= table_option */ - -4, /* (353) columnlist ::= columnlist COMMA columnname carglist */ - -2, /* (354) columnlist ::= columnname carglist */ - -1, /* (355) nm ::= ID|INDEXED|JOIN_KW */ - -1, /* (356) nm ::= STRING */ - -1, /* (357) typetoken ::= typename */ - -1, /* (358) typename ::= ID|STRING */ - -1, /* (359) signed ::= plus_num */ - -1, /* (360) signed ::= minus_num */ - -2, /* (361) carglist ::= carglist ccons */ - 0, /* (362) carglist ::= */ - -2, /* (363) ccons ::= NULL onconf */ - -4, /* (364) ccons ::= GENERATED ALWAYS AS generated */ - -2, /* (365) ccons ::= AS generated */ - -2, /* (366) conslist_opt ::= COMMA conslist */ - -3, /* (367) conslist ::= conslist tconscomma tcons */ - -1, /* (368) conslist ::= tcons */ - 0, /* (369) tconscomma ::= */ - -1, /* (370) defer_subclause_opt ::= defer_subclause */ - -1, /* (371) resolvetype ::= raisetype */ - -1, /* (372) selectnowith ::= oneselect */ - -1, /* (373) oneselect ::= values */ - -2, /* (374) sclp ::= selcollist COMMA */ - -1, /* (375) as ::= ID|STRING */ - -1, /* (376) indexed_opt ::= indexed_by */ - 0, /* (377) returning ::= */ - -1, /* (378) expr ::= term */ - -1, /* (379) likeop ::= LIKE_KW|MATCH */ - -1, /* (380) case_operand ::= expr */ - -1, /* (381) exprlist ::= nexprlist */ - -1, /* (382) nmnum ::= plus_num */ - -1, /* (383) nmnum ::= nm */ - -1, /* (384) nmnum ::= ON */ - -1, /* (385) nmnum ::= DELETE */ - -1, /* (386) nmnum ::= DEFAULT */ - -1, /* (387) plus_num ::= INTEGER|FLOAT */ - 0, /* (388) foreach_clause ::= */ - -3, /* (389) foreach_clause ::= FOR EACH ROW */ - -1, /* (390) trnm ::= nm */ - 0, /* (391) tridxby ::= */ - -1, /* (392) database_kw_opt ::= DATABASE */ - 0, /* (393) database_kw_opt ::= */ - 0, /* (394) kwcolumn_opt ::= */ - -1, /* (395) kwcolumn_opt ::= COLUMNKW */ - -1, /* (396) vtabarglist ::= vtabarg */ - -3, /* (397) vtabarglist ::= vtabarglist COMMA vtabarg */ - -2, /* (398) vtabarg ::= vtabarg vtabargtoken */ - 0, /* (399) anylist ::= */ - -4, /* (400) anylist ::= anylist LP anylist RP */ - -2, /* (401) anylist ::= anylist ANY */ - 0, /* (402) with ::= */ - -1, /* (403) windowdefn_list ::= windowdefn */ - -1, /* (404) window ::= frame_opt */ + -1, /* (95) oneselect ::= mvalues */ + -5, /* (96) mvalues ::= values COMMA LP nexprlist RP */ + -5, /* (97) mvalues ::= mvalues COMMA LP nexprlist RP */ + -1, /* (98) distinct ::= DISTINCT */ + -1, /* (99) distinct ::= ALL */ + 0, /* (100) distinct ::= */ + 0, /* (101) sclp ::= */ + -5, /* (102) selcollist ::= sclp scanpt expr scanpt as */ + -3, /* (103) selcollist ::= sclp scanpt STAR */ + -5, /* (104) selcollist ::= sclp scanpt nm DOT STAR */ + -2, /* (105) as ::= AS nm */ + 0, /* (106) as ::= */ + 0, /* (107) from ::= */ + -2, /* (108) from ::= FROM seltablist */ + -2, /* (109) stl_prefix ::= seltablist joinop */ + 0, /* (110) stl_prefix ::= */ + -5, /* (111) seltablist ::= stl_prefix nm dbnm as on_using */ + -6, /* (112) seltablist ::= stl_prefix nm dbnm as indexed_by on_using */ + -8, /* (113) seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_using */ + -6, /* (114) seltablist ::= stl_prefix LP select RP as on_using */ + -6, /* (115) seltablist ::= stl_prefix LP seltablist RP as on_using */ + 0, /* (116) dbnm ::= */ + -2, /* (117) dbnm ::= DOT nm */ + -1, /* (118) fullname ::= nm */ + -3, /* (119) fullname ::= nm DOT nm */ + -1, /* (120) xfullname ::= nm */ + -3, /* (121) xfullname ::= nm DOT nm */ + -5, /* (122) xfullname ::= nm DOT nm AS nm */ + -3, /* (123) xfullname ::= nm AS nm */ + -1, /* (124) joinop ::= COMMA|JOIN */ + -2, /* (125) joinop ::= JOIN_KW JOIN */ + -3, /* (126) joinop ::= JOIN_KW nm JOIN */ + -4, /* (127) joinop ::= JOIN_KW nm nm JOIN */ + -2, /* (128) on_using ::= ON expr */ + -4, /* (129) on_using ::= USING LP idlist RP */ + 0, /* (130) on_using ::= */ + 0, /* (131) indexed_opt ::= */ + -3, /* (132) indexed_by ::= INDEXED BY nm */ + -2, /* (133) indexed_by ::= NOT INDEXED */ + 0, /* (134) orderby_opt ::= */ + -3, /* (135) orderby_opt ::= ORDER BY sortlist */ + -5, /* (136) sortlist ::= sortlist COMMA expr sortorder nulls */ + -3, /* (137) sortlist ::= expr sortorder nulls */ + -1, /* (138) sortorder ::= ASC */ + -1, /* (139) sortorder ::= DESC */ + 0, /* (140) sortorder ::= */ + -2, /* (141) nulls ::= NULLS FIRST */ + -2, /* (142) nulls ::= NULLS LAST */ + 0, /* (143) nulls ::= */ + 0, /* (144) groupby_opt ::= */ + -3, /* (145) groupby_opt ::= GROUP BY nexprlist */ + 0, /* (146) having_opt ::= */ + -2, /* (147) having_opt ::= HAVING expr */ + 0, /* (148) limit_opt ::= */ + -2, /* (149) limit_opt ::= LIMIT expr */ + -4, /* (150) limit_opt ::= LIMIT expr OFFSET expr */ + -4, /* (151) limit_opt ::= LIMIT expr COMMA expr */ + -6, /* (152) cmd ::= with DELETE FROM xfullname indexed_opt where_opt_ret */ + 0, /* (153) where_opt ::= */ + -2, /* (154) where_opt ::= WHERE expr */ + 0, /* (155) where_opt_ret ::= */ + -2, /* (156) where_opt_ret ::= WHERE expr */ + -2, /* (157) where_opt_ret ::= RETURNING selcollist */ + -4, /* (158) where_opt_ret ::= WHERE expr RETURNING selcollist */ + -9, /* (159) cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist from where_opt_ret */ + -5, /* (160) setlist ::= setlist COMMA nm EQ expr */ + -7, /* (161) setlist ::= setlist COMMA LP idlist RP EQ expr */ + -3, /* (162) setlist ::= nm EQ expr */ + -5, /* (163) setlist ::= LP idlist RP EQ expr */ + -7, /* (164) cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert */ + -8, /* (165) cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES returning */ + 0, /* (166) upsert ::= */ + -2, /* (167) upsert ::= RETURNING selcollist */ + -12, /* (168) upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt upsert */ + -9, /* (169) upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING upsert */ + -5, /* (170) upsert ::= ON CONFLICT DO NOTHING returning */ + -8, /* (171) upsert ::= ON CONFLICT DO UPDATE SET setlist where_opt returning */ + -2, /* (172) returning ::= RETURNING selcollist */ + -2, /* (173) insert_cmd ::= INSERT orconf */ + -1, /* (174) insert_cmd ::= REPLACE */ + 0, /* (175) idlist_opt ::= */ + -3, /* (176) idlist_opt ::= LP idlist RP */ + -3, /* (177) idlist ::= idlist COMMA nm */ + -1, /* (178) idlist ::= nm */ + -3, /* (179) expr ::= LP expr RP */ + -1, /* (180) expr ::= ID|INDEXED|JOIN_KW */ + -3, /* (181) expr ::= nm DOT nm */ + -5, /* (182) expr ::= nm DOT nm DOT nm */ + -1, /* (183) term ::= NULL|FLOAT|BLOB */ + -1, /* (184) term ::= STRING */ + -1, /* (185) term ::= INTEGER */ + -1, /* (186) expr ::= VARIABLE */ + -3, /* (187) expr ::= expr COLLATE ID|STRING */ + -6, /* (188) expr ::= CAST LP expr AS typetoken RP */ + -5, /* (189) expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP */ + -8, /* (190) expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP */ + -4, /* (191) expr ::= ID|INDEXED|JOIN_KW LP STAR RP */ + -6, /* (192) expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP filter_over */ + -9, /* (193) expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP filter_over */ + -5, /* (194) expr ::= ID|INDEXED|JOIN_KW LP STAR RP filter_over */ + -1, /* (195) term ::= CTIME_KW */ + -5, /* (196) expr ::= LP nexprlist COMMA expr RP */ + -3, /* (197) expr ::= expr AND expr */ + -3, /* (198) expr ::= expr OR expr */ + -3, /* (199) expr ::= expr LT|GT|GE|LE expr */ + -3, /* (200) expr ::= expr EQ|NE expr */ + -3, /* (201) expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ + -3, /* (202) expr ::= expr PLUS|MINUS expr */ + -3, /* (203) expr ::= expr STAR|SLASH|REM expr */ + -3, /* (204) expr ::= expr CONCAT expr */ + -2, /* (205) likeop ::= NOT LIKE_KW|MATCH */ + -3, /* (206) expr ::= expr likeop expr */ + -5, /* (207) expr ::= expr likeop expr ESCAPE expr */ + -2, /* (208) expr ::= expr ISNULL|NOTNULL */ + -3, /* (209) expr ::= expr NOT NULL */ + -3, /* (210) expr ::= expr IS expr */ + -4, /* (211) expr ::= expr IS NOT expr */ + -6, /* (212) expr ::= expr IS NOT DISTINCT FROM expr */ + -5, /* (213) expr ::= expr IS DISTINCT FROM expr */ + -2, /* (214) expr ::= NOT expr */ + -2, /* (215) expr ::= BITNOT expr */ + -2, /* (216) expr ::= PLUS|MINUS expr */ + -3, /* (217) expr ::= expr PTR expr */ + -1, /* (218) between_op ::= BETWEEN */ + -2, /* (219) between_op ::= NOT BETWEEN */ + -5, /* (220) expr ::= expr between_op expr AND expr */ + -1, /* (221) in_op ::= IN */ + -2, /* (222) in_op ::= NOT IN */ + -5, /* (223) expr ::= expr in_op LP exprlist RP */ + -3, /* (224) expr ::= LP select RP */ + -5, /* (225) expr ::= expr in_op LP select RP */ + -5, /* (226) expr ::= expr in_op nm dbnm paren_exprlist */ + -4, /* (227) expr ::= EXISTS LP select RP */ + -5, /* (228) expr ::= CASE case_operand case_exprlist case_else END */ + -5, /* (229) case_exprlist ::= case_exprlist WHEN expr THEN expr */ + -4, /* (230) case_exprlist ::= WHEN expr THEN expr */ + -2, /* (231) case_else ::= ELSE expr */ + 0, /* (232) case_else ::= */ + 0, /* (233) case_operand ::= */ + 0, /* (234) exprlist ::= */ + -3, /* (235) nexprlist ::= nexprlist COMMA expr */ + -1, /* (236) nexprlist ::= expr */ + 0, /* (237) paren_exprlist ::= */ + -3, /* (238) paren_exprlist ::= LP exprlist RP */ + -12, /* (239) cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ + -1, /* (240) uniqueflag ::= UNIQUE */ + 0, /* (241) uniqueflag ::= */ + 0, /* (242) eidlist_opt ::= */ + -3, /* (243) eidlist_opt ::= LP eidlist RP */ + -5, /* (244) eidlist ::= eidlist COMMA nm collate sortorder */ + -3, /* (245) eidlist ::= nm collate sortorder */ + 0, /* (246) collate ::= */ + -2, /* (247) collate ::= COLLATE ID|STRING */ + -4, /* (248) cmd ::= DROP INDEX ifexists fullname */ + -2, /* (249) cmd ::= VACUUM vinto */ + -3, /* (250) cmd ::= VACUUM nm vinto */ + -2, /* (251) vinto ::= INTO expr */ + 0, /* (252) vinto ::= */ + -3, /* (253) cmd ::= PRAGMA nm dbnm */ + -5, /* (254) cmd ::= PRAGMA nm dbnm EQ nmnum */ + -6, /* (255) cmd ::= PRAGMA nm dbnm LP nmnum RP */ + -5, /* (256) cmd ::= PRAGMA nm dbnm EQ minus_num */ + -6, /* (257) cmd ::= PRAGMA nm dbnm LP minus_num RP */ + -2, /* (258) plus_num ::= PLUS INTEGER|FLOAT */ + -2, /* (259) minus_num ::= MINUS INTEGER|FLOAT */ + -5, /* (260) cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ + -11, /* (261) trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ + -1, /* (262) trigger_time ::= BEFORE|AFTER */ + -2, /* (263) trigger_time ::= INSTEAD OF */ + 0, /* (264) trigger_time ::= */ + -1, /* (265) trigger_event ::= DELETE|INSERT */ + -1, /* (266) trigger_event ::= UPDATE */ + -3, /* (267) trigger_event ::= UPDATE OF idlist */ + 0, /* (268) when_clause ::= */ + -2, /* (269) when_clause ::= WHEN expr */ + -3, /* (270) trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ + -2, /* (271) trigger_cmd_list ::= trigger_cmd SEMI */ + -3, /* (272) trnm ::= nm DOT nm */ + -3, /* (273) tridxby ::= INDEXED BY nm */ + -2, /* (274) tridxby ::= NOT INDEXED */ + -9, /* (275) trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */ + -8, /* (276) trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */ + -6, /* (277) trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ + -3, /* (278) trigger_cmd ::= scanpt select scanpt */ + -4, /* (279) expr ::= RAISE LP IGNORE RP */ + -6, /* (280) expr ::= RAISE LP raisetype COMMA nm RP */ + -1, /* (281) raisetype ::= ROLLBACK */ + -1, /* (282) raisetype ::= ABORT */ + -1, /* (283) raisetype ::= FAIL */ + -4, /* (284) cmd ::= DROP TRIGGER ifexists fullname */ + -6, /* (285) cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ + -3, /* (286) cmd ::= DETACH database_kw_opt expr */ + 0, /* (287) key_opt ::= */ + -2, /* (288) key_opt ::= KEY expr */ + -1, /* (289) cmd ::= REINDEX */ + -3, /* (290) cmd ::= REINDEX nm dbnm */ + -1, /* (291) cmd ::= ANALYZE */ + -3, /* (292) cmd ::= ANALYZE nm dbnm */ + -6, /* (293) cmd ::= ALTER TABLE fullname RENAME TO nm */ + -7, /* (294) cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ + -6, /* (295) cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ + -1, /* (296) add_column_fullname ::= fullname */ + -8, /* (297) cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ + -1, /* (298) cmd ::= create_vtab */ + -4, /* (299) cmd ::= create_vtab LP vtabarglist RP */ + -8, /* (300) create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ + 0, /* (301) vtabarg ::= */ + -1, /* (302) vtabargtoken ::= ANY */ + -3, /* (303) vtabargtoken ::= lp anylist RP */ + -1, /* (304) lp ::= LP */ + -2, /* (305) with ::= WITH wqlist */ + -3, /* (306) with ::= WITH RECURSIVE wqlist */ + -1, /* (307) wqas ::= AS */ + -2, /* (308) wqas ::= AS MATERIALIZED */ + -3, /* (309) wqas ::= AS NOT MATERIALIZED */ + -6, /* (310) wqitem ::= withnm eidlist_opt wqas LP select RP */ + -1, /* (311) withnm ::= nm */ + -1, /* (312) wqlist ::= wqitem */ + -3, /* (313) wqlist ::= wqlist COMMA wqitem */ + -3, /* (314) windowdefn_list ::= windowdefn_list COMMA windowdefn */ + -5, /* (315) windowdefn ::= nm AS LP window RP */ + -5, /* (316) window ::= PARTITION BY nexprlist orderby_opt frame_opt */ + -6, /* (317) window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ + -4, /* (318) window ::= ORDER BY sortlist frame_opt */ + -5, /* (319) window ::= nm ORDER BY sortlist frame_opt */ + -2, /* (320) window ::= nm frame_opt */ + 0, /* (321) frame_opt ::= */ + -3, /* (322) frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ + -6, /* (323) frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ + -1, /* (324) range_or_rows ::= RANGE|ROWS|GROUPS */ + -1, /* (325) frame_bound_s ::= frame_bound */ + -2, /* (326) frame_bound_s ::= UNBOUNDED PRECEDING */ + -1, /* (327) frame_bound_e ::= frame_bound */ + -2, /* (328) frame_bound_e ::= UNBOUNDED FOLLOWING */ + -2, /* (329) frame_bound ::= expr PRECEDING|FOLLOWING */ + -2, /* (330) frame_bound ::= CURRENT ROW */ + 0, /* (331) frame_exclude_opt ::= */ + -2, /* (332) frame_exclude_opt ::= EXCLUDE frame_exclude */ + -2, /* (333) frame_exclude ::= NO OTHERS */ + -2, /* (334) frame_exclude ::= CURRENT ROW */ + -1, /* (335) frame_exclude ::= GROUP|TIES */ + -2, /* (336) window_clause ::= WINDOW windowdefn_list */ + -2, /* (337) filter_over ::= filter_clause over_clause */ + -1, /* (338) filter_over ::= over_clause */ + -1, /* (339) filter_over ::= filter_clause */ + -4, /* (340) over_clause ::= OVER LP window RP */ + -2, /* (341) over_clause ::= OVER nm */ + -5, /* (342) filter_clause ::= FILTER LP WHERE expr RP */ + -1, /* (343) term ::= QNUMBER */ + -1, /* (344) input ::= cmdlist */ + -2, /* (345) cmdlist ::= cmdlist ecmd */ + -1, /* (346) cmdlist ::= ecmd */ + -1, /* (347) ecmd ::= SEMI */ + -2, /* (348) ecmd ::= cmdx SEMI */ + -3, /* (349) ecmd ::= explain cmdx SEMI */ + 0, /* (350) trans_opt ::= */ + -1, /* (351) trans_opt ::= TRANSACTION */ + -2, /* (352) trans_opt ::= TRANSACTION nm */ + -1, /* (353) savepoint_opt ::= SAVEPOINT */ + 0, /* (354) savepoint_opt ::= */ + -2, /* (355) cmd ::= create_table create_table_args */ + -1, /* (356) table_option_set ::= table_option */ + -4, /* (357) columnlist ::= columnlist COMMA columnname carglist */ + -2, /* (358) columnlist ::= columnname carglist */ + -1, /* (359) nm ::= ID|INDEXED|JOIN_KW */ + -1, /* (360) nm ::= STRING */ + -1, /* (361) typetoken ::= typename */ + -1, /* (362) typename ::= ID|STRING */ + -1, /* (363) signed ::= plus_num */ + -1, /* (364) signed ::= minus_num */ + -2, /* (365) carglist ::= carglist ccons */ + 0, /* (366) carglist ::= */ + -2, /* (367) ccons ::= NULL onconf */ + -4, /* (368) ccons ::= GENERATED ALWAYS AS generated */ + -2, /* (369) ccons ::= AS generated */ + -2, /* (370) conslist_opt ::= COMMA conslist */ + -3, /* (371) conslist ::= conslist tconscomma tcons */ + -1, /* (372) conslist ::= tcons */ + 0, /* (373) tconscomma ::= */ + -1, /* (374) defer_subclause_opt ::= defer_subclause */ + -1, /* (375) resolvetype ::= raisetype */ + -1, /* (376) selectnowith ::= oneselect */ + -1, /* (377) oneselect ::= values */ + -2, /* (378) sclp ::= selcollist COMMA */ + -1, /* (379) as ::= ID|STRING */ + -1, /* (380) indexed_opt ::= indexed_by */ + 0, /* (381) returning ::= */ + -1, /* (382) expr ::= term */ + -1, /* (383) likeop ::= LIKE_KW|MATCH */ + -1, /* (384) case_operand ::= expr */ + -1, /* (385) exprlist ::= nexprlist */ + -1, /* (386) nmnum ::= plus_num */ + -1, /* (387) nmnum ::= nm */ + -1, /* (388) nmnum ::= ON */ + -1, /* (389) nmnum ::= DELETE */ + -1, /* (390) nmnum ::= DEFAULT */ + -1, /* (391) plus_num ::= INTEGER|FLOAT */ + 0, /* (392) foreach_clause ::= */ + -3, /* (393) foreach_clause ::= FOR EACH ROW */ + -1, /* (394) trnm ::= nm */ + 0, /* (395) tridxby ::= */ + -1, /* (396) database_kw_opt ::= DATABASE */ + 0, /* (397) database_kw_opt ::= */ + 0, /* (398) kwcolumn_opt ::= */ + -1, /* (399) kwcolumn_opt ::= COLUMNKW */ + -1, /* (400) vtabarglist ::= vtabarg */ + -3, /* (401) vtabarglist ::= vtabarglist COMMA vtabarg */ + -2, /* (402) vtabarg ::= vtabarg vtabargtoken */ + 0, /* (403) anylist ::= */ + -4, /* (404) anylist ::= anylist LP anylist RP */ + -2, /* (405) anylist ::= anylist ANY */ + 0, /* (406) with ::= */ + -1, /* (407) windowdefn_list ::= windowdefn */ + -1, /* (408) window ::= frame_opt */ }; static void yy_accept(yyParser*); /* Forward Declaration */ @@ -174505,16 +176117,16 @@ static YYACTIONTYPE yy_reduce( { sqlite3FinishCoding(pParse); } break; case 3: /* cmd ::= BEGIN transtype trans_opt */ -{sqlite3BeginTransaction(pParse, yymsp[-1].minor.yy394);} +{sqlite3BeginTransaction(pParse, yymsp[-1].minor.yy144);} break; case 4: /* transtype ::= */ -{yymsp[1].minor.yy394 = TK_DEFERRED;} +{yymsp[1].minor.yy144 = TK_DEFERRED;} break; case 5: /* transtype ::= DEFERRED */ case 6: /* transtype ::= IMMEDIATE */ yytestcase(yyruleno==6); case 7: /* transtype ::= EXCLUSIVE */ yytestcase(yyruleno==7); - case 321: /* range_or_rows ::= RANGE|ROWS|GROUPS */ yytestcase(yyruleno==321); -{yymsp[0].minor.yy394 = yymsp[0].major; /*A-overwrites-X*/} + case 324: /* range_or_rows ::= RANGE|ROWS|GROUPS */ yytestcase(yyruleno==324); +{yymsp[0].minor.yy144 = yymsp[0].major; /*A-overwrites-X*/} break; case 8: /* cmd ::= COMMIT|END trans_opt */ case 9: /* cmd ::= ROLLBACK trans_opt */ yytestcase(yyruleno==9); @@ -174537,7 +176149,7 @@ static YYACTIONTYPE yy_reduce( break; case 13: /* create_table ::= createkw temp TABLE ifnotexists nm dbnm */ { - sqlite3StartTable(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,yymsp[-4].minor.yy394,0,0,yymsp[-2].minor.yy394); + sqlite3StartTable(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,yymsp[-4].minor.yy144,0,0,yymsp[-2].minor.yy144); } break; case 14: /* createkw ::= CREATE */ @@ -174549,40 +176161,40 @@ static YYACTIONTYPE yy_reduce( case 62: /* init_deferred_pred_opt ::= */ yytestcase(yyruleno==62); case 72: /* defer_subclause_opt ::= */ yytestcase(yyruleno==72); case 81: /* ifexists ::= */ yytestcase(yyruleno==81); - case 98: /* distinct ::= */ yytestcase(yyruleno==98); - case 244: /* collate ::= */ yytestcase(yyruleno==244); -{yymsp[1].minor.yy394 = 0;} + case 100: /* distinct ::= */ yytestcase(yyruleno==100); + case 246: /* collate ::= */ yytestcase(yyruleno==246); +{yymsp[1].minor.yy144 = 0;} break; case 16: /* ifnotexists ::= IF NOT EXISTS */ -{yymsp[-2].minor.yy394 = 1;} +{yymsp[-2].minor.yy144 = 1;} break; case 17: /* temp ::= TEMP */ -{yymsp[0].minor.yy394 = pParse->db->init.busy==0;} +{yymsp[0].minor.yy144 = pParse->db->init.busy==0;} break; case 19: /* create_table_args ::= LP columnlist conslist_opt RP table_option_set */ { - sqlite3EndTable(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,yymsp[0].minor.yy285,0); + sqlite3EndTable(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,yymsp[0].minor.yy391,0); } break; case 20: /* create_table_args ::= AS select */ { - sqlite3EndTable(pParse,0,0,0,yymsp[0].minor.yy47); - sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy47); + sqlite3EndTable(pParse,0,0,0,yymsp[0].minor.yy555); + sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy555); } break; case 21: /* table_option_set ::= */ -{yymsp[1].minor.yy285 = 0;} +{yymsp[1].minor.yy391 = 0;} break; case 22: /* table_option_set ::= table_option_set COMMA table_option */ -{yylhsminor.yy285 = yymsp[-2].minor.yy285|yymsp[0].minor.yy285;} - yymsp[-2].minor.yy285 = yylhsminor.yy285; +{yylhsminor.yy391 = yymsp[-2].minor.yy391|yymsp[0].minor.yy391;} + yymsp[-2].minor.yy391 = yylhsminor.yy391; break; case 23: /* table_option ::= WITHOUT nm */ { if( yymsp[0].minor.yy0.n==5 && sqlite3_strnicmp(yymsp[0].minor.yy0.z,"rowid",5)==0 ){ - yymsp[-1].minor.yy285 = TF_WithoutRowid | TF_NoVisibleRowid; + yymsp[-1].minor.yy391 = TF_WithoutRowid | TF_NoVisibleRowid; }else{ - yymsp[-1].minor.yy285 = 0; + yymsp[-1].minor.yy391 = 0; sqlite3ErrorMsg(pParse, "unknown table option: %.*s", yymsp[0].minor.yy0.n, yymsp[0].minor.yy0.z); } } @@ -174590,20 +176202,20 @@ static YYACTIONTYPE yy_reduce( case 24: /* table_option ::= nm */ { if( yymsp[0].minor.yy0.n==6 && sqlite3_strnicmp(yymsp[0].minor.yy0.z,"strict",6)==0 ){ - yylhsminor.yy285 = TF_Strict; + yylhsminor.yy391 = TF_Strict; }else{ - yylhsminor.yy285 = 0; + yylhsminor.yy391 = 0; sqlite3ErrorMsg(pParse, "unknown table option: %.*s", yymsp[0].minor.yy0.n, yymsp[0].minor.yy0.z); } } - yymsp[0].minor.yy285 = yylhsminor.yy285; + yymsp[0].minor.yy391 = yylhsminor.yy391; break; case 25: /* columnname ::= nm typetoken */ {sqlite3AddColumn(pParse,yymsp[-1].minor.yy0,yymsp[0].minor.yy0);} break; case 26: /* typetoken ::= */ case 65: /* conslist_opt ::= */ yytestcase(yyruleno==65); - case 104: /* as ::= */ yytestcase(yyruleno==104); + case 106: /* as ::= */ yytestcase(yyruleno==106); {yymsp[1].minor.yy0.n = 0; yymsp[1].minor.yy0.z = 0;} break; case 27: /* typetoken ::= typename LP signed RP */ @@ -174622,7 +176234,7 @@ static YYACTIONTYPE yy_reduce( case 30: /* scanpt ::= */ { assert( yyLookahead!=YYNOCODE ); - yymsp[1].minor.yy522 = yyLookaheadToken.z; + yymsp[1].minor.yy168 = yyLookaheadToken.z; } break; case 31: /* scantok ::= */ @@ -174636,17 +176248,17 @@ static YYACTIONTYPE yy_reduce( {pParse->constraintName = yymsp[0].minor.yy0;} break; case 33: /* ccons ::= DEFAULT scantok term */ -{sqlite3AddDefaultValue(pParse,yymsp[0].minor.yy528,yymsp[-1].minor.yy0.z,&yymsp[-1].minor.yy0.z[yymsp[-1].minor.yy0.n]);} +{sqlite3AddDefaultValue(pParse,yymsp[0].minor.yy454,yymsp[-1].minor.yy0.z,&yymsp[-1].minor.yy0.z[yymsp[-1].minor.yy0.n]);} break; case 34: /* ccons ::= DEFAULT LP expr RP */ -{sqlite3AddDefaultValue(pParse,yymsp[-1].minor.yy528,yymsp[-2].minor.yy0.z+1,yymsp[0].minor.yy0.z);} +{sqlite3AddDefaultValue(pParse,yymsp[-1].minor.yy454,yymsp[-2].minor.yy0.z+1,yymsp[0].minor.yy0.z);} break; case 35: /* ccons ::= DEFAULT PLUS scantok term */ -{sqlite3AddDefaultValue(pParse,yymsp[0].minor.yy528,yymsp[-2].minor.yy0.z,&yymsp[-1].minor.yy0.z[yymsp[-1].minor.yy0.n]);} +{sqlite3AddDefaultValue(pParse,yymsp[0].minor.yy454,yymsp[-2].minor.yy0.z,&yymsp[-1].minor.yy0.z[yymsp[-1].minor.yy0.n]);} break; case 36: /* ccons ::= DEFAULT MINUS scantok term */ { - Expr *p = sqlite3PExpr(pParse, TK_UMINUS, yymsp[0].minor.yy528, 0); + Expr *p = sqlite3PExpr(pParse, TK_UMINUS, yymsp[0].minor.yy454, 0); sqlite3AddDefaultValue(pParse,p,yymsp[-2].minor.yy0.z,&yymsp[-1].minor.yy0.z[yymsp[-1].minor.yy0.n]); } break; @@ -174661,151 +176273,151 @@ static YYACTIONTYPE yy_reduce( } break; case 38: /* ccons ::= NOT NULL onconf */ -{sqlite3AddNotNull(pParse, yymsp[0].minor.yy394);} +{sqlite3AddNotNull(pParse, yymsp[0].minor.yy144);} break; case 39: /* ccons ::= PRIMARY KEY sortorder onconf autoinc */ -{sqlite3AddPrimaryKey(pParse,0,yymsp[-1].minor.yy394,yymsp[0].minor.yy394,yymsp[-2].minor.yy394);} +{sqlite3AddPrimaryKey(pParse,0,yymsp[-1].minor.yy144,yymsp[0].minor.yy144,yymsp[-2].minor.yy144);} break; case 40: /* ccons ::= UNIQUE onconf */ -{sqlite3CreateIndex(pParse,0,0,0,0,yymsp[0].minor.yy394,0,0,0,0, +{sqlite3CreateIndex(pParse,0,0,0,0,yymsp[0].minor.yy144,0,0,0,0, SQLITE_IDXTYPE_UNIQUE);} break; case 41: /* ccons ::= CHECK LP expr RP */ -{sqlite3AddCheckConstraint(pParse,yymsp[-1].minor.yy528,yymsp[-2].minor.yy0.z,yymsp[0].minor.yy0.z);} +{sqlite3AddCheckConstraint(pParse,yymsp[-1].minor.yy454,yymsp[-2].minor.yy0.z,yymsp[0].minor.yy0.z);} break; case 42: /* ccons ::= REFERENCES nm eidlist_opt refargs */ -{sqlite3CreateForeignKey(pParse,0,&yymsp[-2].minor.yy0,yymsp[-1].minor.yy322,yymsp[0].minor.yy394);} +{sqlite3CreateForeignKey(pParse,0,&yymsp[-2].minor.yy0,yymsp[-1].minor.yy14,yymsp[0].minor.yy144);} break; case 43: /* ccons ::= defer_subclause */ -{sqlite3DeferForeignKey(pParse,yymsp[0].minor.yy394);} +{sqlite3DeferForeignKey(pParse,yymsp[0].minor.yy144);} break; case 44: /* ccons ::= COLLATE ID|STRING */ {sqlite3AddCollateType(pParse, &yymsp[0].minor.yy0);} break; case 45: /* generated ::= LP expr RP */ -{sqlite3AddGenerated(pParse,yymsp[-1].minor.yy528,0);} +{sqlite3AddGenerated(pParse,yymsp[-1].minor.yy454,0);} break; case 46: /* generated ::= LP expr RP ID */ -{sqlite3AddGenerated(pParse,yymsp[-2].minor.yy528,&yymsp[0].minor.yy0);} +{sqlite3AddGenerated(pParse,yymsp[-2].minor.yy454,&yymsp[0].minor.yy0);} break; case 48: /* autoinc ::= AUTOINCR */ -{yymsp[0].minor.yy394 = 1;} +{yymsp[0].minor.yy144 = 1;} break; case 49: /* refargs ::= */ -{ yymsp[1].minor.yy394 = OE_None*0x0101; /* EV: R-19803-45884 */} +{ yymsp[1].minor.yy144 = OE_None*0x0101; /* EV: R-19803-45884 */} break; case 50: /* refargs ::= refargs refarg */ -{ yymsp[-1].minor.yy394 = (yymsp[-1].minor.yy394 & ~yymsp[0].minor.yy231.mask) | yymsp[0].minor.yy231.value; } +{ yymsp[-1].minor.yy144 = (yymsp[-1].minor.yy144 & ~yymsp[0].minor.yy383.mask) | yymsp[0].minor.yy383.value; } break; case 51: /* refarg ::= MATCH nm */ -{ yymsp[-1].minor.yy231.value = 0; yymsp[-1].minor.yy231.mask = 0x000000; } +{ yymsp[-1].minor.yy383.value = 0; yymsp[-1].minor.yy383.mask = 0x000000; } break; case 52: /* refarg ::= ON INSERT refact */ -{ yymsp[-2].minor.yy231.value = 0; yymsp[-2].minor.yy231.mask = 0x000000; } +{ yymsp[-2].minor.yy383.value = 0; yymsp[-2].minor.yy383.mask = 0x000000; } break; case 53: /* refarg ::= ON DELETE refact */ -{ yymsp[-2].minor.yy231.value = yymsp[0].minor.yy394; yymsp[-2].minor.yy231.mask = 0x0000ff; } +{ yymsp[-2].minor.yy383.value = yymsp[0].minor.yy144; yymsp[-2].minor.yy383.mask = 0x0000ff; } break; case 54: /* refarg ::= ON UPDATE refact */ -{ yymsp[-2].minor.yy231.value = yymsp[0].minor.yy394<<8; yymsp[-2].minor.yy231.mask = 0x00ff00; } +{ yymsp[-2].minor.yy383.value = yymsp[0].minor.yy144<<8; yymsp[-2].minor.yy383.mask = 0x00ff00; } break; case 55: /* refact ::= SET NULL */ -{ yymsp[-1].minor.yy394 = OE_SetNull; /* EV: R-33326-45252 */} +{ yymsp[-1].minor.yy144 = OE_SetNull; /* EV: R-33326-45252 */} break; case 56: /* refact ::= SET DEFAULT */ -{ yymsp[-1].minor.yy394 = OE_SetDflt; /* EV: R-33326-45252 */} +{ yymsp[-1].minor.yy144 = OE_SetDflt; /* EV: R-33326-45252 */} break; case 57: /* refact ::= CASCADE */ -{ yymsp[0].minor.yy394 = OE_Cascade; /* EV: R-33326-45252 */} +{ yymsp[0].minor.yy144 = OE_Cascade; /* EV: R-33326-45252 */} break; case 58: /* refact ::= RESTRICT */ -{ yymsp[0].minor.yy394 = OE_Restrict; /* EV: R-33326-45252 */} +{ yymsp[0].minor.yy144 = OE_Restrict; /* EV: R-33326-45252 */} break; case 59: /* refact ::= NO ACTION */ -{ yymsp[-1].minor.yy394 = OE_None; /* EV: R-33326-45252 */} +{ yymsp[-1].minor.yy144 = OE_None; /* EV: R-33326-45252 */} break; case 60: /* defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */ -{yymsp[-2].minor.yy394 = 0;} +{yymsp[-2].minor.yy144 = 0;} break; case 61: /* defer_subclause ::= DEFERRABLE init_deferred_pred_opt */ case 76: /* orconf ::= OR resolvetype */ yytestcase(yyruleno==76); - case 171: /* insert_cmd ::= INSERT orconf */ yytestcase(yyruleno==171); -{yymsp[-1].minor.yy394 = yymsp[0].minor.yy394;} + case 173: /* insert_cmd ::= INSERT orconf */ yytestcase(yyruleno==173); +{yymsp[-1].minor.yy144 = yymsp[0].minor.yy144;} break; case 63: /* init_deferred_pred_opt ::= INITIALLY DEFERRED */ case 80: /* ifexists ::= IF EXISTS */ yytestcase(yyruleno==80); - case 217: /* between_op ::= NOT BETWEEN */ yytestcase(yyruleno==217); - case 220: /* in_op ::= NOT IN */ yytestcase(yyruleno==220); - case 245: /* collate ::= COLLATE ID|STRING */ yytestcase(yyruleno==245); -{yymsp[-1].minor.yy394 = 1;} + case 219: /* between_op ::= NOT BETWEEN */ yytestcase(yyruleno==219); + case 222: /* in_op ::= NOT IN */ yytestcase(yyruleno==222); + case 247: /* collate ::= COLLATE ID|STRING */ yytestcase(yyruleno==247); +{yymsp[-1].minor.yy144 = 1;} break; case 64: /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */ -{yymsp[-1].minor.yy394 = 0;} +{yymsp[-1].minor.yy144 = 0;} break; case 66: /* tconscomma ::= COMMA */ {pParse->constraintName.n = 0;} break; case 68: /* tcons ::= PRIMARY KEY LP sortlist autoinc RP onconf */ -{sqlite3AddPrimaryKey(pParse,yymsp[-3].minor.yy322,yymsp[0].minor.yy394,yymsp[-2].minor.yy394,0);} +{sqlite3AddPrimaryKey(pParse,yymsp[-3].minor.yy14,yymsp[0].minor.yy144,yymsp[-2].minor.yy144,0);} break; case 69: /* tcons ::= UNIQUE LP sortlist RP onconf */ -{sqlite3CreateIndex(pParse,0,0,0,yymsp[-2].minor.yy322,yymsp[0].minor.yy394,0,0,0,0, +{sqlite3CreateIndex(pParse,0,0,0,yymsp[-2].minor.yy14,yymsp[0].minor.yy144,0,0,0,0, SQLITE_IDXTYPE_UNIQUE);} break; case 70: /* tcons ::= CHECK LP expr RP onconf */ -{sqlite3AddCheckConstraint(pParse,yymsp[-2].minor.yy528,yymsp[-3].minor.yy0.z,yymsp[-1].minor.yy0.z);} +{sqlite3AddCheckConstraint(pParse,yymsp[-2].minor.yy454,yymsp[-3].minor.yy0.z,yymsp[-1].minor.yy0.z);} break; case 71: /* tcons ::= FOREIGN KEY LP eidlist RP REFERENCES nm eidlist_opt refargs defer_subclause_opt */ { - sqlite3CreateForeignKey(pParse, yymsp[-6].minor.yy322, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy322, yymsp[-1].minor.yy394); - sqlite3DeferForeignKey(pParse, yymsp[0].minor.yy394); + sqlite3CreateForeignKey(pParse, yymsp[-6].minor.yy14, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy14, yymsp[-1].minor.yy144); + sqlite3DeferForeignKey(pParse, yymsp[0].minor.yy144); } break; case 73: /* onconf ::= */ case 75: /* orconf ::= */ yytestcase(yyruleno==75); -{yymsp[1].minor.yy394 = OE_Default;} +{yymsp[1].minor.yy144 = OE_Default;} break; case 74: /* onconf ::= ON CONFLICT resolvetype */ -{yymsp[-2].minor.yy394 = yymsp[0].minor.yy394;} +{yymsp[-2].minor.yy144 = yymsp[0].minor.yy144;} break; case 77: /* resolvetype ::= IGNORE */ -{yymsp[0].minor.yy394 = OE_Ignore;} +{yymsp[0].minor.yy144 = OE_Ignore;} break; case 78: /* resolvetype ::= REPLACE */ - case 172: /* insert_cmd ::= REPLACE */ yytestcase(yyruleno==172); -{yymsp[0].minor.yy394 = OE_Replace;} + case 174: /* insert_cmd ::= REPLACE */ yytestcase(yyruleno==174); +{yymsp[0].minor.yy144 = OE_Replace;} break; case 79: /* cmd ::= DROP TABLE ifexists fullname */ { - sqlite3DropTable(pParse, yymsp[0].minor.yy131, 0, yymsp[-1].minor.yy394); + sqlite3DropTable(pParse, yymsp[0].minor.yy203, 0, yymsp[-1].minor.yy144); } break; case 82: /* cmd ::= createkw temp VIEW ifnotexists nm dbnm eidlist_opt AS select */ { - sqlite3CreateView(pParse, &yymsp[-8].minor.yy0, &yymsp[-4].minor.yy0, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy322, yymsp[0].minor.yy47, yymsp[-7].minor.yy394, yymsp[-5].minor.yy394); + sqlite3CreateView(pParse, &yymsp[-8].minor.yy0, &yymsp[-4].minor.yy0, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy14, yymsp[0].minor.yy555, yymsp[-7].minor.yy144, yymsp[-5].minor.yy144); } break; case 83: /* cmd ::= DROP VIEW ifexists fullname */ { - sqlite3DropTable(pParse, yymsp[0].minor.yy131, 1, yymsp[-1].minor.yy394); + sqlite3DropTable(pParse, yymsp[0].minor.yy203, 1, yymsp[-1].minor.yy144); } break; case 84: /* cmd ::= select */ { SelectDest dest = {SRT_Output, 0, 0, 0, 0, 0, 0}; - sqlite3Select(pParse, yymsp[0].minor.yy47, &dest); - sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy47); + sqlite3Select(pParse, yymsp[0].minor.yy555, &dest); + sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy555); } break; case 85: /* select ::= WITH wqlist selectnowith */ -{yymsp[-2].minor.yy47 = attachWithToSelect(pParse,yymsp[0].minor.yy47,yymsp[-1].minor.yy521);} +{yymsp[-2].minor.yy555 = attachWithToSelect(pParse,yymsp[0].minor.yy555,yymsp[-1].minor.yy59);} break; case 86: /* select ::= WITH RECURSIVE wqlist selectnowith */ -{yymsp[-3].minor.yy47 = attachWithToSelect(pParse,yymsp[0].minor.yy47,yymsp[-1].minor.yy521);} +{yymsp[-3].minor.yy555 = attachWithToSelect(pParse,yymsp[0].minor.yy555,yymsp[-1].minor.yy59);} break; case 87: /* select ::= selectnowith */ { - Select *p = yymsp[0].minor.yy47; + Select *p = yymsp[0].minor.yy555; if( p ){ parserDoubleLinkSelect(pParse, p); } @@ -174813,8 +176425,8 @@ static YYACTIONTYPE yy_reduce( break; case 88: /* selectnowith ::= selectnowith multiselect_op oneselect */ { - Select *pRhs = yymsp[0].minor.yy47; - Select *pLhs = yymsp[-2].minor.yy47; + Select *pRhs = yymsp[0].minor.yy555; + Select *pLhs = yymsp[-2].minor.yy555; if( pRhs && pRhs->pPrior ){ SrcList *pFrom; Token x; @@ -174824,148 +176436,145 @@ static YYACTIONTYPE yy_reduce( pRhs = sqlite3SelectNew(pParse,0,pFrom,0,0,0,0,0,0); } if( pRhs ){ - pRhs->op = (u8)yymsp[-1].minor.yy394; + pRhs->op = (u8)yymsp[-1].minor.yy144; pRhs->pPrior = pLhs; if( ALWAYS(pLhs) ) pLhs->selFlags &= ~SF_MultiValue; pRhs->selFlags &= ~SF_MultiValue; - if( yymsp[-1].minor.yy394!=TK_ALL ) pParse->hasCompound = 1; + if( yymsp[-1].minor.yy144!=TK_ALL ) pParse->hasCompound = 1; }else{ sqlite3SelectDelete(pParse->db, pLhs); } - yymsp[-2].minor.yy47 = pRhs; + yymsp[-2].minor.yy555 = pRhs; } break; case 89: /* multiselect_op ::= UNION */ case 91: /* multiselect_op ::= EXCEPT|INTERSECT */ yytestcase(yyruleno==91); -{yymsp[0].minor.yy394 = yymsp[0].major; /*A-overwrites-OP*/} +{yymsp[0].minor.yy144 = yymsp[0].major; /*A-overwrites-OP*/} break; case 90: /* multiselect_op ::= UNION ALL */ -{yymsp[-1].minor.yy394 = TK_ALL;} +{yymsp[-1].minor.yy144 = TK_ALL;} break; case 92: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt */ { - yymsp[-8].minor.yy47 = sqlite3SelectNew(pParse,yymsp[-6].minor.yy322,yymsp[-5].minor.yy131,yymsp[-4].minor.yy528,yymsp[-3].minor.yy322,yymsp[-2].minor.yy528,yymsp[-1].minor.yy322,yymsp[-7].minor.yy394,yymsp[0].minor.yy528); + yymsp[-8].minor.yy555 = sqlite3SelectNew(pParse,yymsp[-6].minor.yy14,yymsp[-5].minor.yy203,yymsp[-4].minor.yy454,yymsp[-3].minor.yy14,yymsp[-2].minor.yy454,yymsp[-1].minor.yy14,yymsp[-7].minor.yy144,yymsp[0].minor.yy454); } break; case 93: /* oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt window_clause orderby_opt limit_opt */ { - yymsp[-9].minor.yy47 = sqlite3SelectNew(pParse,yymsp[-7].minor.yy322,yymsp[-6].minor.yy131,yymsp[-5].minor.yy528,yymsp[-4].minor.yy322,yymsp[-3].minor.yy528,yymsp[-1].minor.yy322,yymsp[-8].minor.yy394,yymsp[0].minor.yy528); - if( yymsp[-9].minor.yy47 ){ - yymsp[-9].minor.yy47->pWinDefn = yymsp[-2].minor.yy41; + yymsp[-9].minor.yy555 = sqlite3SelectNew(pParse,yymsp[-7].minor.yy14,yymsp[-6].minor.yy203,yymsp[-5].minor.yy454,yymsp[-4].minor.yy14,yymsp[-3].minor.yy454,yymsp[-1].minor.yy14,yymsp[-8].minor.yy144,yymsp[0].minor.yy454); + if( yymsp[-9].minor.yy555 ){ + yymsp[-9].minor.yy555->pWinDefn = yymsp[-2].minor.yy211; }else{ - sqlite3WindowListDelete(pParse->db, yymsp[-2].minor.yy41); + sqlite3WindowListDelete(pParse->db, yymsp[-2].minor.yy211); } } break; case 94: /* values ::= VALUES LP nexprlist RP */ { - yymsp[-3].minor.yy47 = sqlite3SelectNew(pParse,yymsp[-1].minor.yy322,0,0,0,0,0,SF_Values,0); + yymsp[-3].minor.yy555 = sqlite3SelectNew(pParse,yymsp[-1].minor.yy14,0,0,0,0,0,SF_Values,0); } break; - case 95: /* values ::= values COMMA LP nexprlist RP */ + case 95: /* oneselect ::= mvalues */ { - Select *pRight, *pLeft = yymsp[-4].minor.yy47; - pRight = sqlite3SelectNew(pParse,yymsp[-1].minor.yy322,0,0,0,0,0,SF_Values|SF_MultiValue,0); - if( ALWAYS(pLeft) ) pLeft->selFlags &= ~SF_MultiValue; - if( pRight ){ - pRight->op = TK_ALL; - pRight->pPrior = pLeft; - yymsp[-4].minor.yy47 = pRight; - }else{ - yymsp[-4].minor.yy47 = pLeft; - } + sqlite3MultiValuesEnd(pParse, yymsp[0].minor.yy555); } break; - case 96: /* distinct ::= DISTINCT */ -{yymsp[0].minor.yy394 = SF_Distinct;} + case 96: /* mvalues ::= values COMMA LP nexprlist RP */ + case 97: /* mvalues ::= mvalues COMMA LP nexprlist RP */ yytestcase(yyruleno==97); +{ + yymsp[-4].minor.yy555 = sqlite3MultiValues(pParse, yymsp[-4].minor.yy555, yymsp[-1].minor.yy14); +} break; - case 97: /* distinct ::= ALL */ -{yymsp[0].minor.yy394 = SF_All;} + case 98: /* distinct ::= DISTINCT */ +{yymsp[0].minor.yy144 = SF_Distinct;} break; - case 99: /* sclp ::= */ - case 132: /* orderby_opt ::= */ yytestcase(yyruleno==132); - case 142: /* groupby_opt ::= */ yytestcase(yyruleno==142); - case 232: /* exprlist ::= */ yytestcase(yyruleno==232); - case 235: /* paren_exprlist ::= */ yytestcase(yyruleno==235); - case 240: /* eidlist_opt ::= */ yytestcase(yyruleno==240); -{yymsp[1].minor.yy322 = 0;} + case 99: /* distinct ::= ALL */ +{yymsp[0].minor.yy144 = SF_All;} break; - case 100: /* selcollist ::= sclp scanpt expr scanpt as */ + case 101: /* sclp ::= */ + case 134: /* orderby_opt ::= */ yytestcase(yyruleno==134); + case 144: /* groupby_opt ::= */ yytestcase(yyruleno==144); + case 234: /* exprlist ::= */ yytestcase(yyruleno==234); + case 237: /* paren_exprlist ::= */ yytestcase(yyruleno==237); + case 242: /* eidlist_opt ::= */ yytestcase(yyruleno==242); +{yymsp[1].minor.yy14 = 0;} + break; + case 102: /* selcollist ::= sclp scanpt expr scanpt as */ { - yymsp[-4].minor.yy322 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy322, yymsp[-2].minor.yy528); - if( yymsp[0].minor.yy0.n>0 ) sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy322, &yymsp[0].minor.yy0, 1); - sqlite3ExprListSetSpan(pParse,yymsp[-4].minor.yy322,yymsp[-3].minor.yy522,yymsp[-1].minor.yy522); + yymsp[-4].minor.yy14 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy14, yymsp[-2].minor.yy454); + if( yymsp[0].minor.yy0.n>0 ) sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy14, &yymsp[0].minor.yy0, 1); + sqlite3ExprListSetSpan(pParse,yymsp[-4].minor.yy14,yymsp[-3].minor.yy168,yymsp[-1].minor.yy168); } break; - case 101: /* selcollist ::= sclp scanpt STAR */ + case 103: /* selcollist ::= sclp scanpt STAR */ { Expr *p = sqlite3Expr(pParse->db, TK_ASTERISK, 0); sqlite3ExprSetErrorOffset(p, (int)(yymsp[0].minor.yy0.z - pParse->zTail)); - yymsp[-2].minor.yy322 = sqlite3ExprListAppend(pParse, yymsp[-2].minor.yy322, p); + yymsp[-2].minor.yy14 = sqlite3ExprListAppend(pParse, yymsp[-2].minor.yy14, p); } break; - case 102: /* selcollist ::= sclp scanpt nm DOT STAR */ + case 104: /* selcollist ::= sclp scanpt nm DOT STAR */ { Expr *pRight, *pLeft, *pDot; pRight = sqlite3PExpr(pParse, TK_ASTERISK, 0, 0); sqlite3ExprSetErrorOffset(pRight, (int)(yymsp[0].minor.yy0.z - pParse->zTail)); pLeft = tokenExpr(pParse, TK_ID, yymsp[-2].minor.yy0); pDot = sqlite3PExpr(pParse, TK_DOT, pLeft, pRight); - yymsp[-4].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy322, pDot); + yymsp[-4].minor.yy14 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy14, pDot); } break; - case 103: /* as ::= AS nm */ - case 115: /* dbnm ::= DOT nm */ yytestcase(yyruleno==115); - case 256: /* plus_num ::= PLUS INTEGER|FLOAT */ yytestcase(yyruleno==256); - case 257: /* minus_num ::= MINUS INTEGER|FLOAT */ yytestcase(yyruleno==257); + case 105: /* as ::= AS nm */ + case 117: /* dbnm ::= DOT nm */ yytestcase(yyruleno==117); + case 258: /* plus_num ::= PLUS INTEGER|FLOAT */ yytestcase(yyruleno==258); + case 259: /* minus_num ::= MINUS INTEGER|FLOAT */ yytestcase(yyruleno==259); {yymsp[-1].minor.yy0 = yymsp[0].minor.yy0;} break; - case 105: /* from ::= */ - case 108: /* stl_prefix ::= */ yytestcase(yyruleno==108); -{yymsp[1].minor.yy131 = 0;} + case 107: /* from ::= */ + case 110: /* stl_prefix ::= */ yytestcase(yyruleno==110); +{yymsp[1].minor.yy203 = 0;} break; - case 106: /* from ::= FROM seltablist */ + case 108: /* from ::= FROM seltablist */ { - yymsp[-1].minor.yy131 = yymsp[0].minor.yy131; - sqlite3SrcListShiftJoinType(pParse,yymsp[-1].minor.yy131); + yymsp[-1].minor.yy203 = yymsp[0].minor.yy203; + sqlite3SrcListShiftJoinType(pParse,yymsp[-1].minor.yy203); } break; - case 107: /* stl_prefix ::= seltablist joinop */ + case 109: /* stl_prefix ::= seltablist joinop */ { - if( ALWAYS(yymsp[-1].minor.yy131 && yymsp[-1].minor.yy131->nSrc>0) ) yymsp[-1].minor.yy131->a[yymsp[-1].minor.yy131->nSrc-1].fg.jointype = (u8)yymsp[0].minor.yy394; + if( ALWAYS(yymsp[-1].minor.yy203 && yymsp[-1].minor.yy203->nSrc>0) ) yymsp[-1].minor.yy203->a[yymsp[-1].minor.yy203->nSrc-1].fg.jointype = (u8)yymsp[0].minor.yy144; } break; - case 109: /* seltablist ::= stl_prefix nm dbnm as on_using */ + case 111: /* seltablist ::= stl_prefix nm dbnm as on_using */ { - yymsp[-4].minor.yy131 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-4].minor.yy131,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,0,&yymsp[0].minor.yy561); + yymsp[-4].minor.yy203 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-4].minor.yy203,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,0,&yymsp[0].minor.yy269); } break; - case 110: /* seltablist ::= stl_prefix nm dbnm as indexed_by on_using */ + case 112: /* seltablist ::= stl_prefix nm dbnm as indexed_by on_using */ { - yymsp[-5].minor.yy131 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-5].minor.yy131,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,0,&yymsp[0].minor.yy561); - sqlite3SrcListIndexedBy(pParse, yymsp[-5].minor.yy131, &yymsp[-1].minor.yy0); + yymsp[-5].minor.yy203 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-5].minor.yy203,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,0,&yymsp[0].minor.yy269); + sqlite3SrcListIndexedBy(pParse, yymsp[-5].minor.yy203, &yymsp[-1].minor.yy0); } break; - case 111: /* seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_using */ + case 113: /* seltablist ::= stl_prefix nm dbnm LP exprlist RP as on_using */ { - yymsp[-7].minor.yy131 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-7].minor.yy131,&yymsp[-6].minor.yy0,&yymsp[-5].minor.yy0,&yymsp[-1].minor.yy0,0,&yymsp[0].minor.yy561); - sqlite3SrcListFuncArgs(pParse, yymsp[-7].minor.yy131, yymsp[-3].minor.yy322); + yymsp[-7].minor.yy203 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-7].minor.yy203,&yymsp[-6].minor.yy0,&yymsp[-5].minor.yy0,&yymsp[-1].minor.yy0,0,&yymsp[0].minor.yy269); + sqlite3SrcListFuncArgs(pParse, yymsp[-7].minor.yy203, yymsp[-3].minor.yy14); } break; - case 112: /* seltablist ::= stl_prefix LP select RP as on_using */ + case 114: /* seltablist ::= stl_prefix LP select RP as on_using */ { - yymsp[-5].minor.yy131 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-5].minor.yy131,0,0,&yymsp[-1].minor.yy0,yymsp[-3].minor.yy47,&yymsp[0].minor.yy561); + yymsp[-5].minor.yy203 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-5].minor.yy203,0,0,&yymsp[-1].minor.yy0,yymsp[-3].minor.yy555,&yymsp[0].minor.yy269); } break; - case 113: /* seltablist ::= stl_prefix LP seltablist RP as on_using */ + case 115: /* seltablist ::= stl_prefix LP seltablist RP as on_using */ { - if( yymsp[-5].minor.yy131==0 && yymsp[-1].minor.yy0.n==0 && yymsp[0].minor.yy561.pOn==0 && yymsp[0].minor.yy561.pUsing==0 ){ - yymsp[-5].minor.yy131 = yymsp[-3].minor.yy131; - }else if( ALWAYS(yymsp[-3].minor.yy131!=0) && yymsp[-3].minor.yy131->nSrc==1 ){ - yymsp[-5].minor.yy131 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-5].minor.yy131,0,0,&yymsp[-1].minor.yy0,0,&yymsp[0].minor.yy561); - if( yymsp[-5].minor.yy131 ){ - SrcItem *pNew = &yymsp[-5].minor.yy131->a[yymsp[-5].minor.yy131->nSrc-1]; - SrcItem *pOld = yymsp[-3].minor.yy131->a; + if( yymsp[-5].minor.yy203==0 && yymsp[-1].minor.yy0.n==0 && yymsp[0].minor.yy269.pOn==0 && yymsp[0].minor.yy269.pUsing==0 ){ + yymsp[-5].minor.yy203 = yymsp[-3].minor.yy203; + }else if( ALWAYS(yymsp[-3].minor.yy203!=0) && yymsp[-3].minor.yy203->nSrc==1 ){ + yymsp[-5].minor.yy203 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-5].minor.yy203,0,0,&yymsp[-1].minor.yy0,0,&yymsp[0].minor.yy269); + if( yymsp[-5].minor.yy203 ){ + SrcItem *pNew = &yymsp[-5].minor.yy203->a[yymsp[-5].minor.yy203->nSrc-1]; + SrcItem *pOld = yymsp[-3].minor.yy203->a; pNew->zName = pOld->zName; pNew->zDatabase = pOld->zDatabase; pNew->pSelect = pOld->pSelect; @@ -174981,153 +176590,153 @@ static YYACTIONTYPE yy_reduce( pOld->zName = pOld->zDatabase = 0; pOld->pSelect = 0; } - sqlite3SrcListDelete(pParse->db, yymsp[-3].minor.yy131); + sqlite3SrcListDelete(pParse->db, yymsp[-3].minor.yy203); }else{ Select *pSubquery; - sqlite3SrcListShiftJoinType(pParse,yymsp[-3].minor.yy131); - pSubquery = sqlite3SelectNew(pParse,0,yymsp[-3].minor.yy131,0,0,0,0,SF_NestedFrom,0); - yymsp[-5].minor.yy131 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-5].minor.yy131,0,0,&yymsp[-1].minor.yy0,pSubquery,&yymsp[0].minor.yy561); + sqlite3SrcListShiftJoinType(pParse,yymsp[-3].minor.yy203); + pSubquery = sqlite3SelectNew(pParse,0,yymsp[-3].minor.yy203,0,0,0,0,SF_NestedFrom,0); + yymsp[-5].minor.yy203 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-5].minor.yy203,0,0,&yymsp[-1].minor.yy0,pSubquery,&yymsp[0].minor.yy269); } } break; - case 114: /* dbnm ::= */ - case 129: /* indexed_opt ::= */ yytestcase(yyruleno==129); + case 116: /* dbnm ::= */ + case 131: /* indexed_opt ::= */ yytestcase(yyruleno==131); {yymsp[1].minor.yy0.z=0; yymsp[1].minor.yy0.n=0;} break; - case 116: /* fullname ::= nm */ + case 118: /* fullname ::= nm */ { - yylhsminor.yy131 = sqlite3SrcListAppend(pParse,0,&yymsp[0].minor.yy0,0); - if( IN_RENAME_OBJECT && yylhsminor.yy131 ) sqlite3RenameTokenMap(pParse, yylhsminor.yy131->a[0].zName, &yymsp[0].minor.yy0); + yylhsminor.yy203 = sqlite3SrcListAppend(pParse,0,&yymsp[0].minor.yy0,0); + if( IN_RENAME_OBJECT && yylhsminor.yy203 ) sqlite3RenameTokenMap(pParse, yylhsminor.yy203->a[0].zName, &yymsp[0].minor.yy0); } - yymsp[0].minor.yy131 = yylhsminor.yy131; + yymsp[0].minor.yy203 = yylhsminor.yy203; break; - case 117: /* fullname ::= nm DOT nm */ + case 119: /* fullname ::= nm DOT nm */ { - yylhsminor.yy131 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); - if( IN_RENAME_OBJECT && yylhsminor.yy131 ) sqlite3RenameTokenMap(pParse, yylhsminor.yy131->a[0].zName, &yymsp[0].minor.yy0); + yylhsminor.yy203 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); + if( IN_RENAME_OBJECT && yylhsminor.yy203 ) sqlite3RenameTokenMap(pParse, yylhsminor.yy203->a[0].zName, &yymsp[0].minor.yy0); } - yymsp[-2].minor.yy131 = yylhsminor.yy131; + yymsp[-2].minor.yy203 = yylhsminor.yy203; break; - case 118: /* xfullname ::= nm */ -{yymsp[0].minor.yy131 = sqlite3SrcListAppend(pParse,0,&yymsp[0].minor.yy0,0); /*A-overwrites-X*/} + case 120: /* xfullname ::= nm */ +{yymsp[0].minor.yy203 = sqlite3SrcListAppend(pParse,0,&yymsp[0].minor.yy0,0); /*A-overwrites-X*/} break; - case 119: /* xfullname ::= nm DOT nm */ -{yymsp[-2].minor.yy131 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/} + case 121: /* xfullname ::= nm DOT nm */ +{yymsp[-2].minor.yy203 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); /*A-overwrites-X*/} break; - case 120: /* xfullname ::= nm DOT nm AS nm */ + case 122: /* xfullname ::= nm DOT nm AS nm */ { - yymsp[-4].minor.yy131 = sqlite3SrcListAppend(pParse,0,&yymsp[-4].minor.yy0,&yymsp[-2].minor.yy0); /*A-overwrites-X*/ - if( yymsp[-4].minor.yy131 ) yymsp[-4].minor.yy131->a[0].zAlias = sqlite3NameFromToken(pParse->db, &yymsp[0].minor.yy0); + yymsp[-4].minor.yy203 = sqlite3SrcListAppend(pParse,0,&yymsp[-4].minor.yy0,&yymsp[-2].minor.yy0); /*A-overwrites-X*/ + if( yymsp[-4].minor.yy203 ) yymsp[-4].minor.yy203->a[0].zAlias = sqlite3NameFromToken(pParse->db, &yymsp[0].minor.yy0); } break; - case 121: /* xfullname ::= nm AS nm */ + case 123: /* xfullname ::= nm AS nm */ { - yymsp[-2].minor.yy131 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,0); /*A-overwrites-X*/ - if( yymsp[-2].minor.yy131 ) yymsp[-2].minor.yy131->a[0].zAlias = sqlite3NameFromToken(pParse->db, &yymsp[0].minor.yy0); + yymsp[-2].minor.yy203 = sqlite3SrcListAppend(pParse,0,&yymsp[-2].minor.yy0,0); /*A-overwrites-X*/ + if( yymsp[-2].minor.yy203 ) yymsp[-2].minor.yy203->a[0].zAlias = sqlite3NameFromToken(pParse->db, &yymsp[0].minor.yy0); } break; - case 122: /* joinop ::= COMMA|JOIN */ -{ yymsp[0].minor.yy394 = JT_INNER; } + case 124: /* joinop ::= COMMA|JOIN */ +{ yymsp[0].minor.yy144 = JT_INNER; } break; - case 123: /* joinop ::= JOIN_KW JOIN */ -{yymsp[-1].minor.yy394 = sqlite3JoinType(pParse,&yymsp[-1].minor.yy0,0,0); /*X-overwrites-A*/} + case 125: /* joinop ::= JOIN_KW JOIN */ +{yymsp[-1].minor.yy144 = sqlite3JoinType(pParse,&yymsp[-1].minor.yy0,0,0); /*X-overwrites-A*/} break; - case 124: /* joinop ::= JOIN_KW nm JOIN */ -{yymsp[-2].minor.yy394 = sqlite3JoinType(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,0); /*X-overwrites-A*/} + case 126: /* joinop ::= JOIN_KW nm JOIN */ +{yymsp[-2].minor.yy144 = sqlite3JoinType(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0,0); /*X-overwrites-A*/} break; - case 125: /* joinop ::= JOIN_KW nm nm JOIN */ -{yymsp[-3].minor.yy394 = sqlite3JoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0);/*X-overwrites-A*/} + case 127: /* joinop ::= JOIN_KW nm nm JOIN */ +{yymsp[-3].minor.yy144 = sqlite3JoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0);/*X-overwrites-A*/} break; - case 126: /* on_using ::= ON expr */ -{yymsp[-1].minor.yy561.pOn = yymsp[0].minor.yy528; yymsp[-1].minor.yy561.pUsing = 0;} + case 128: /* on_using ::= ON expr */ +{yymsp[-1].minor.yy269.pOn = yymsp[0].minor.yy454; yymsp[-1].minor.yy269.pUsing = 0;} break; - case 127: /* on_using ::= USING LP idlist RP */ -{yymsp[-3].minor.yy561.pOn = 0; yymsp[-3].minor.yy561.pUsing = yymsp[-1].minor.yy254;} + case 129: /* on_using ::= USING LP idlist RP */ +{yymsp[-3].minor.yy269.pOn = 0; yymsp[-3].minor.yy269.pUsing = yymsp[-1].minor.yy132;} break; - case 128: /* on_using ::= */ -{yymsp[1].minor.yy561.pOn = 0; yymsp[1].minor.yy561.pUsing = 0;} + case 130: /* on_using ::= */ +{yymsp[1].minor.yy269.pOn = 0; yymsp[1].minor.yy269.pUsing = 0;} break; - case 130: /* indexed_by ::= INDEXED BY nm */ + case 132: /* indexed_by ::= INDEXED BY nm */ {yymsp[-2].minor.yy0 = yymsp[0].minor.yy0;} break; - case 131: /* indexed_by ::= NOT INDEXED */ + case 133: /* indexed_by ::= NOT INDEXED */ {yymsp[-1].minor.yy0.z=0; yymsp[-1].minor.yy0.n=1;} break; - case 133: /* orderby_opt ::= ORDER BY sortlist */ - case 143: /* groupby_opt ::= GROUP BY nexprlist */ yytestcase(yyruleno==143); -{yymsp[-2].minor.yy322 = yymsp[0].minor.yy322;} + case 135: /* orderby_opt ::= ORDER BY sortlist */ + case 145: /* groupby_opt ::= GROUP BY nexprlist */ yytestcase(yyruleno==145); +{yymsp[-2].minor.yy14 = yymsp[0].minor.yy14;} break; - case 134: /* sortlist ::= sortlist COMMA expr sortorder nulls */ + case 136: /* sortlist ::= sortlist COMMA expr sortorder nulls */ { - yymsp[-4].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy322,yymsp[-2].minor.yy528); - sqlite3ExprListSetSortOrder(yymsp[-4].minor.yy322,yymsp[-1].minor.yy394,yymsp[0].minor.yy394); + yymsp[-4].minor.yy14 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy14,yymsp[-2].minor.yy454); + sqlite3ExprListSetSortOrder(yymsp[-4].minor.yy14,yymsp[-1].minor.yy144,yymsp[0].minor.yy144); } break; - case 135: /* sortlist ::= expr sortorder nulls */ + case 137: /* sortlist ::= expr sortorder nulls */ { - yymsp[-2].minor.yy322 = sqlite3ExprListAppend(pParse,0,yymsp[-2].minor.yy528); /*A-overwrites-Y*/ - sqlite3ExprListSetSortOrder(yymsp[-2].minor.yy322,yymsp[-1].minor.yy394,yymsp[0].minor.yy394); + yymsp[-2].minor.yy14 = sqlite3ExprListAppend(pParse,0,yymsp[-2].minor.yy454); /*A-overwrites-Y*/ + sqlite3ExprListSetSortOrder(yymsp[-2].minor.yy14,yymsp[-1].minor.yy144,yymsp[0].minor.yy144); } break; - case 136: /* sortorder ::= ASC */ -{yymsp[0].minor.yy394 = SQLITE_SO_ASC;} + case 138: /* sortorder ::= ASC */ +{yymsp[0].minor.yy144 = SQLITE_SO_ASC;} break; - case 137: /* sortorder ::= DESC */ -{yymsp[0].minor.yy394 = SQLITE_SO_DESC;} + case 139: /* sortorder ::= DESC */ +{yymsp[0].minor.yy144 = SQLITE_SO_DESC;} break; - case 138: /* sortorder ::= */ - case 141: /* nulls ::= */ yytestcase(yyruleno==141); -{yymsp[1].minor.yy394 = SQLITE_SO_UNDEFINED;} + case 140: /* sortorder ::= */ + case 143: /* nulls ::= */ yytestcase(yyruleno==143); +{yymsp[1].minor.yy144 = SQLITE_SO_UNDEFINED;} break; - case 139: /* nulls ::= NULLS FIRST */ -{yymsp[-1].minor.yy394 = SQLITE_SO_ASC;} + case 141: /* nulls ::= NULLS FIRST */ +{yymsp[-1].minor.yy144 = SQLITE_SO_ASC;} break; - case 140: /* nulls ::= NULLS LAST */ -{yymsp[-1].minor.yy394 = SQLITE_SO_DESC;} + case 142: /* nulls ::= NULLS LAST */ +{yymsp[-1].minor.yy144 = SQLITE_SO_DESC;} break; - case 144: /* having_opt ::= */ - case 146: /* limit_opt ::= */ yytestcase(yyruleno==146); - case 151: /* where_opt ::= */ yytestcase(yyruleno==151); - case 153: /* where_opt_ret ::= */ yytestcase(yyruleno==153); - case 230: /* case_else ::= */ yytestcase(yyruleno==230); - case 231: /* case_operand ::= */ yytestcase(yyruleno==231); - case 250: /* vinto ::= */ yytestcase(yyruleno==250); -{yymsp[1].minor.yy528 = 0;} + case 146: /* having_opt ::= */ + case 148: /* limit_opt ::= */ yytestcase(yyruleno==148); + case 153: /* where_opt ::= */ yytestcase(yyruleno==153); + case 155: /* where_opt_ret ::= */ yytestcase(yyruleno==155); + case 232: /* case_else ::= */ yytestcase(yyruleno==232); + case 233: /* case_operand ::= */ yytestcase(yyruleno==233); + case 252: /* vinto ::= */ yytestcase(yyruleno==252); +{yymsp[1].minor.yy454 = 0;} break; - case 145: /* having_opt ::= HAVING expr */ - case 152: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==152); - case 154: /* where_opt_ret ::= WHERE expr */ yytestcase(yyruleno==154); - case 229: /* case_else ::= ELSE expr */ yytestcase(yyruleno==229); - case 249: /* vinto ::= INTO expr */ yytestcase(yyruleno==249); -{yymsp[-1].minor.yy528 = yymsp[0].minor.yy528;} + case 147: /* having_opt ::= HAVING expr */ + case 154: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==154); + case 156: /* where_opt_ret ::= WHERE expr */ yytestcase(yyruleno==156); + case 231: /* case_else ::= ELSE expr */ yytestcase(yyruleno==231); + case 251: /* vinto ::= INTO expr */ yytestcase(yyruleno==251); +{yymsp[-1].minor.yy454 = yymsp[0].minor.yy454;} break; - case 147: /* limit_opt ::= LIMIT expr */ -{yymsp[-1].minor.yy528 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy528,0);} + case 149: /* limit_opt ::= LIMIT expr */ +{yymsp[-1].minor.yy454 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy454,0);} break; - case 148: /* limit_opt ::= LIMIT expr OFFSET expr */ -{yymsp[-3].minor.yy528 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[-2].minor.yy528,yymsp[0].minor.yy528);} + case 150: /* limit_opt ::= LIMIT expr OFFSET expr */ +{yymsp[-3].minor.yy454 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[-2].minor.yy454,yymsp[0].minor.yy454);} break; - case 149: /* limit_opt ::= LIMIT expr COMMA expr */ -{yymsp[-3].minor.yy528 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy528,yymsp[-2].minor.yy528);} + case 151: /* limit_opt ::= LIMIT expr COMMA expr */ +{yymsp[-3].minor.yy454 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy454,yymsp[-2].minor.yy454);} break; - case 150: /* cmd ::= with DELETE FROM xfullname indexed_opt where_opt_ret */ + case 152: /* cmd ::= with DELETE FROM xfullname indexed_opt where_opt_ret */ { - sqlite3SrcListIndexedBy(pParse, yymsp[-2].minor.yy131, &yymsp[-1].minor.yy0); - sqlite3DeleteFrom(pParse,yymsp[-2].minor.yy131,yymsp[0].minor.yy528,0,0); + sqlite3SrcListIndexedBy(pParse, yymsp[-2].minor.yy203, &yymsp[-1].minor.yy0); + sqlite3DeleteFrom(pParse,yymsp[-2].minor.yy203,yymsp[0].minor.yy454,0,0); } break; - case 155: /* where_opt_ret ::= RETURNING selcollist */ -{sqlite3AddReturning(pParse,yymsp[0].minor.yy322); yymsp[-1].minor.yy528 = 0;} + case 157: /* where_opt_ret ::= RETURNING selcollist */ +{sqlite3AddReturning(pParse,yymsp[0].minor.yy14); yymsp[-1].minor.yy454 = 0;} break; - case 156: /* where_opt_ret ::= WHERE expr RETURNING selcollist */ -{sqlite3AddReturning(pParse,yymsp[0].minor.yy322); yymsp[-3].minor.yy528 = yymsp[-2].minor.yy528;} + case 158: /* where_opt_ret ::= WHERE expr RETURNING selcollist */ +{sqlite3AddReturning(pParse,yymsp[0].minor.yy14); yymsp[-3].minor.yy454 = yymsp[-2].minor.yy454;} break; - case 157: /* cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist from where_opt_ret */ + case 159: /* cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist from where_opt_ret */ { - sqlite3SrcListIndexedBy(pParse, yymsp[-5].minor.yy131, &yymsp[-4].minor.yy0); - sqlite3ExprListCheckLength(pParse,yymsp[-2].minor.yy322,"set list"); - if( yymsp[-1].minor.yy131 ){ - SrcList *pFromClause = yymsp[-1].minor.yy131; + sqlite3SrcListIndexedBy(pParse, yymsp[-5].minor.yy203, &yymsp[-4].minor.yy0); + sqlite3ExprListCheckLength(pParse,yymsp[-2].minor.yy14,"set list"); + if( yymsp[-1].minor.yy203 ){ + SrcList *pFromClause = yymsp[-1].minor.yy203; if( pFromClause->nSrc>1 ){ Select *pSubquery; Token as; @@ -175136,92 +176745,92 @@ static YYACTIONTYPE yy_reduce( as.z = 0; pFromClause = sqlite3SrcListAppendFromTerm(pParse,0,0,0,&as,pSubquery,0); } - yymsp[-5].minor.yy131 = sqlite3SrcListAppendList(pParse, yymsp[-5].minor.yy131, pFromClause); + yymsp[-5].minor.yy203 = sqlite3SrcListAppendList(pParse, yymsp[-5].minor.yy203, pFromClause); } - sqlite3Update(pParse,yymsp[-5].minor.yy131,yymsp[-2].minor.yy322,yymsp[0].minor.yy528,yymsp[-6].minor.yy394,0,0,0); + sqlite3Update(pParse,yymsp[-5].minor.yy203,yymsp[-2].minor.yy14,yymsp[0].minor.yy454,yymsp[-6].minor.yy144,0,0,0); } break; - case 158: /* setlist ::= setlist COMMA nm EQ expr */ + case 160: /* setlist ::= setlist COMMA nm EQ expr */ { - yymsp[-4].minor.yy322 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy322, yymsp[0].minor.yy528); - sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy322, &yymsp[-2].minor.yy0, 1); + yymsp[-4].minor.yy14 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy14, yymsp[0].minor.yy454); + sqlite3ExprListSetName(pParse, yymsp[-4].minor.yy14, &yymsp[-2].minor.yy0, 1); } break; - case 159: /* setlist ::= setlist COMMA LP idlist RP EQ expr */ + case 161: /* setlist ::= setlist COMMA LP idlist RP EQ expr */ { - yymsp[-6].minor.yy322 = sqlite3ExprListAppendVector(pParse, yymsp[-6].minor.yy322, yymsp[-3].minor.yy254, yymsp[0].minor.yy528); + yymsp[-6].minor.yy14 = sqlite3ExprListAppendVector(pParse, yymsp[-6].minor.yy14, yymsp[-3].minor.yy132, yymsp[0].minor.yy454); } break; - case 160: /* setlist ::= nm EQ expr */ + case 162: /* setlist ::= nm EQ expr */ { - yylhsminor.yy322 = sqlite3ExprListAppend(pParse, 0, yymsp[0].minor.yy528); - sqlite3ExprListSetName(pParse, yylhsminor.yy322, &yymsp[-2].minor.yy0, 1); + yylhsminor.yy14 = sqlite3ExprListAppend(pParse, 0, yymsp[0].minor.yy454); + sqlite3ExprListSetName(pParse, yylhsminor.yy14, &yymsp[-2].minor.yy0, 1); } - yymsp[-2].minor.yy322 = yylhsminor.yy322; + yymsp[-2].minor.yy14 = yylhsminor.yy14; break; - case 161: /* setlist ::= LP idlist RP EQ expr */ + case 163: /* setlist ::= LP idlist RP EQ expr */ { - yymsp[-4].minor.yy322 = sqlite3ExprListAppendVector(pParse, 0, yymsp[-3].minor.yy254, yymsp[0].minor.yy528); + yymsp[-4].minor.yy14 = sqlite3ExprListAppendVector(pParse, 0, yymsp[-3].minor.yy132, yymsp[0].minor.yy454); } break; - case 162: /* cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert */ + case 164: /* cmd ::= with insert_cmd INTO xfullname idlist_opt select upsert */ { - sqlite3Insert(pParse, yymsp[-3].minor.yy131, yymsp[-1].minor.yy47, yymsp[-2].minor.yy254, yymsp[-5].minor.yy394, yymsp[0].minor.yy444); + sqlite3Insert(pParse, yymsp[-3].minor.yy203, yymsp[-1].minor.yy555, yymsp[-2].minor.yy132, yymsp[-5].minor.yy144, yymsp[0].minor.yy122); } break; - case 163: /* cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES returning */ + case 165: /* cmd ::= with insert_cmd INTO xfullname idlist_opt DEFAULT VALUES returning */ { - sqlite3Insert(pParse, yymsp[-4].minor.yy131, 0, yymsp[-3].minor.yy254, yymsp[-6].minor.yy394, 0); + sqlite3Insert(pParse, yymsp[-4].minor.yy203, 0, yymsp[-3].minor.yy132, yymsp[-6].minor.yy144, 0); } break; - case 164: /* upsert ::= */ -{ yymsp[1].minor.yy444 = 0; } + case 166: /* upsert ::= */ +{ yymsp[1].minor.yy122 = 0; } break; - case 165: /* upsert ::= RETURNING selcollist */ -{ yymsp[-1].minor.yy444 = 0; sqlite3AddReturning(pParse,yymsp[0].minor.yy322); } + case 167: /* upsert ::= RETURNING selcollist */ +{ yymsp[-1].minor.yy122 = 0; sqlite3AddReturning(pParse,yymsp[0].minor.yy14); } break; - case 166: /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt upsert */ -{ yymsp[-11].minor.yy444 = sqlite3UpsertNew(pParse->db,yymsp[-8].minor.yy322,yymsp[-6].minor.yy528,yymsp[-2].minor.yy322,yymsp[-1].minor.yy528,yymsp[0].minor.yy444);} + case 168: /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO UPDATE SET setlist where_opt upsert */ +{ yymsp[-11].minor.yy122 = sqlite3UpsertNew(pParse->db,yymsp[-8].minor.yy14,yymsp[-6].minor.yy454,yymsp[-2].minor.yy14,yymsp[-1].minor.yy454,yymsp[0].minor.yy122);} break; - case 167: /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING upsert */ -{ yymsp[-8].minor.yy444 = sqlite3UpsertNew(pParse->db,yymsp[-5].minor.yy322,yymsp[-3].minor.yy528,0,0,yymsp[0].minor.yy444); } + case 169: /* upsert ::= ON CONFLICT LP sortlist RP where_opt DO NOTHING upsert */ +{ yymsp[-8].minor.yy122 = sqlite3UpsertNew(pParse->db,yymsp[-5].minor.yy14,yymsp[-3].minor.yy454,0,0,yymsp[0].minor.yy122); } break; - case 168: /* upsert ::= ON CONFLICT DO NOTHING returning */ -{ yymsp[-4].minor.yy444 = sqlite3UpsertNew(pParse->db,0,0,0,0,0); } + case 170: /* upsert ::= ON CONFLICT DO NOTHING returning */ +{ yymsp[-4].minor.yy122 = sqlite3UpsertNew(pParse->db,0,0,0,0,0); } break; - case 169: /* upsert ::= ON CONFLICT DO UPDATE SET setlist where_opt returning */ -{ yymsp[-7].minor.yy444 = sqlite3UpsertNew(pParse->db,0,0,yymsp[-2].minor.yy322,yymsp[-1].minor.yy528,0);} + case 171: /* upsert ::= ON CONFLICT DO UPDATE SET setlist where_opt returning */ +{ yymsp[-7].minor.yy122 = sqlite3UpsertNew(pParse->db,0,0,yymsp[-2].minor.yy14,yymsp[-1].minor.yy454,0);} break; - case 170: /* returning ::= RETURNING selcollist */ -{sqlite3AddReturning(pParse,yymsp[0].minor.yy322);} + case 172: /* returning ::= RETURNING selcollist */ +{sqlite3AddReturning(pParse,yymsp[0].minor.yy14);} break; - case 173: /* idlist_opt ::= */ -{yymsp[1].minor.yy254 = 0;} + case 175: /* idlist_opt ::= */ +{yymsp[1].minor.yy132 = 0;} break; - case 174: /* idlist_opt ::= LP idlist RP */ -{yymsp[-2].minor.yy254 = yymsp[-1].minor.yy254;} + case 176: /* idlist_opt ::= LP idlist RP */ +{yymsp[-2].minor.yy132 = yymsp[-1].minor.yy132;} break; - case 175: /* idlist ::= idlist COMMA nm */ -{yymsp[-2].minor.yy254 = sqlite3IdListAppend(pParse,yymsp[-2].minor.yy254,&yymsp[0].minor.yy0);} + case 177: /* idlist ::= idlist COMMA nm */ +{yymsp[-2].minor.yy132 = sqlite3IdListAppend(pParse,yymsp[-2].minor.yy132,&yymsp[0].minor.yy0);} break; - case 176: /* idlist ::= nm */ -{yymsp[0].minor.yy254 = sqlite3IdListAppend(pParse,0,&yymsp[0].minor.yy0); /*A-overwrites-Y*/} + case 178: /* idlist ::= nm */ +{yymsp[0].minor.yy132 = sqlite3IdListAppend(pParse,0,&yymsp[0].minor.yy0); /*A-overwrites-Y*/} break; - case 177: /* expr ::= LP expr RP */ -{yymsp[-2].minor.yy528 = yymsp[-1].minor.yy528;} + case 179: /* expr ::= LP expr RP */ +{yymsp[-2].minor.yy454 = yymsp[-1].minor.yy454;} break; - case 178: /* expr ::= ID|INDEXED|JOIN_KW */ -{yymsp[0].minor.yy528=tokenExpr(pParse,TK_ID,yymsp[0].minor.yy0); /*A-overwrites-X*/} + case 180: /* expr ::= ID|INDEXED|JOIN_KW */ +{yymsp[0].minor.yy454=tokenExpr(pParse,TK_ID,yymsp[0].minor.yy0); /*A-overwrites-X*/} break; - case 179: /* expr ::= nm DOT nm */ + case 181: /* expr ::= nm DOT nm */ { Expr *temp1 = tokenExpr(pParse,TK_ID,yymsp[-2].minor.yy0); Expr *temp2 = tokenExpr(pParse,TK_ID,yymsp[0].minor.yy0); - yylhsminor.yy528 = sqlite3PExpr(pParse, TK_DOT, temp1, temp2); + yylhsminor.yy454 = sqlite3PExpr(pParse, TK_DOT, temp1, temp2); } - yymsp[-2].minor.yy528 = yylhsminor.yy528; + yymsp[-2].minor.yy454 = yylhsminor.yy454; break; - case 180: /* expr ::= nm DOT nm DOT nm */ + case 182: /* expr ::= nm DOT nm DOT nm */ { Expr *temp1 = tokenExpr(pParse,TK_ID,yymsp[-4].minor.yy0); Expr *temp2 = tokenExpr(pParse,TK_ID,yymsp[-2].minor.yy0); @@ -175230,27 +176839,27 @@ static YYACTIONTYPE yy_reduce( if( IN_RENAME_OBJECT ){ sqlite3RenameTokenRemap(pParse, 0, temp1); } - yylhsminor.yy528 = sqlite3PExpr(pParse, TK_DOT, temp1, temp4); + yylhsminor.yy454 = sqlite3PExpr(pParse, TK_DOT, temp1, temp4); } - yymsp[-4].minor.yy528 = yylhsminor.yy528; + yymsp[-4].minor.yy454 = yylhsminor.yy454; break; - case 181: /* term ::= NULL|FLOAT|BLOB */ - case 182: /* term ::= STRING */ yytestcase(yyruleno==182); -{yymsp[0].minor.yy528=tokenExpr(pParse,yymsp[0].major,yymsp[0].minor.yy0); /*A-overwrites-X*/} + case 183: /* term ::= NULL|FLOAT|BLOB */ + case 184: /* term ::= STRING */ yytestcase(yyruleno==184); +{yymsp[0].minor.yy454=tokenExpr(pParse,yymsp[0].major,yymsp[0].minor.yy0); /*A-overwrites-X*/} break; - case 183: /* term ::= INTEGER */ + case 185: /* term ::= INTEGER */ { - yylhsminor.yy528 = sqlite3ExprAlloc(pParse->db, TK_INTEGER, &yymsp[0].minor.yy0, 1); - if( yylhsminor.yy528 ) yylhsminor.yy528->w.iOfst = (int)(yymsp[0].minor.yy0.z - pParse->zTail); + yylhsminor.yy454 = sqlite3ExprAlloc(pParse->db, TK_INTEGER, &yymsp[0].minor.yy0, 1); + if( yylhsminor.yy454 ) yylhsminor.yy454->w.iOfst = (int)(yymsp[0].minor.yy0.z - pParse->zTail); } - yymsp[0].minor.yy528 = yylhsminor.yy528; + yymsp[0].minor.yy454 = yylhsminor.yy454; break; - case 184: /* expr ::= VARIABLE */ + case 186: /* expr ::= VARIABLE */ { if( !(yymsp[0].minor.yy0.z[0]=='#' && sqlite3Isdigit(yymsp[0].minor.yy0.z[1])) ){ u32 n = yymsp[0].minor.yy0.n; - yymsp[0].minor.yy528 = tokenExpr(pParse, TK_VARIABLE, yymsp[0].minor.yy0); - sqlite3ExprAssignVarNumber(pParse, yymsp[0].minor.yy528, n); + yymsp[0].minor.yy454 = tokenExpr(pParse, TK_VARIABLE, yymsp[0].minor.yy0); + sqlite3ExprAssignVarNumber(pParse, yymsp[0].minor.yy454, n); }else{ /* When doing a nested parse, one can include terms in an expression ** that look like this: #1 #2 ... These terms refer to registers @@ -175259,194 +176868,203 @@ static YYACTIONTYPE yy_reduce( assert( t.n>=2 ); if( pParse->nested==0 ){ sqlite3ErrorMsg(pParse, "near \"%T\": syntax error", &t); - yymsp[0].minor.yy528 = 0; + yymsp[0].minor.yy454 = 0; }else{ - yymsp[0].minor.yy528 = sqlite3PExpr(pParse, TK_REGISTER, 0, 0); - if( yymsp[0].minor.yy528 ) sqlite3GetInt32(&t.z[1], &yymsp[0].minor.yy528->iTable); + yymsp[0].minor.yy454 = sqlite3PExpr(pParse, TK_REGISTER, 0, 0); + if( yymsp[0].minor.yy454 ) sqlite3GetInt32(&t.z[1], &yymsp[0].minor.yy454->iTable); } } } break; - case 185: /* expr ::= expr COLLATE ID|STRING */ + case 187: /* expr ::= expr COLLATE ID|STRING */ { - yymsp[-2].minor.yy528 = sqlite3ExprAddCollateToken(pParse, yymsp[-2].minor.yy528, &yymsp[0].minor.yy0, 1); + yymsp[-2].minor.yy454 = sqlite3ExprAddCollateToken(pParse, yymsp[-2].minor.yy454, &yymsp[0].minor.yy0, 1); } break; - case 186: /* expr ::= CAST LP expr AS typetoken RP */ + case 188: /* expr ::= CAST LP expr AS typetoken RP */ { - yymsp[-5].minor.yy528 = sqlite3ExprAlloc(pParse->db, TK_CAST, &yymsp[-1].minor.yy0, 1); - sqlite3ExprAttachSubtrees(pParse->db, yymsp[-5].minor.yy528, yymsp[-3].minor.yy528, 0); + yymsp[-5].minor.yy454 = sqlite3ExprAlloc(pParse->db, TK_CAST, &yymsp[-1].minor.yy0, 1); + sqlite3ExprAttachSubtrees(pParse->db, yymsp[-5].minor.yy454, yymsp[-3].minor.yy454, 0); } break; - case 187: /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP */ + case 189: /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP */ { - yylhsminor.yy528 = sqlite3ExprFunction(pParse, yymsp[-1].minor.yy322, &yymsp[-4].minor.yy0, yymsp[-2].minor.yy394); + yylhsminor.yy454 = sqlite3ExprFunction(pParse, yymsp[-1].minor.yy14, &yymsp[-4].minor.yy0, yymsp[-2].minor.yy144); } - yymsp[-4].minor.yy528 = yylhsminor.yy528; + yymsp[-4].minor.yy454 = yylhsminor.yy454; break; - case 188: /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP */ + case 190: /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP */ { - yylhsminor.yy528 = sqlite3ExprFunction(pParse, yymsp[-4].minor.yy322, &yymsp[-7].minor.yy0, yymsp[-5].minor.yy394); - sqlite3ExprAddFunctionOrderBy(pParse, yylhsminor.yy528, yymsp[-1].minor.yy322); + yylhsminor.yy454 = sqlite3ExprFunction(pParse, yymsp[-4].minor.yy14, &yymsp[-7].minor.yy0, yymsp[-5].minor.yy144); + sqlite3ExprAddFunctionOrderBy(pParse, yylhsminor.yy454, yymsp[-1].minor.yy14); } - yymsp[-7].minor.yy528 = yylhsminor.yy528; + yymsp[-7].minor.yy454 = yylhsminor.yy454; break; - case 189: /* expr ::= ID|INDEXED|JOIN_KW LP STAR RP */ + case 191: /* expr ::= ID|INDEXED|JOIN_KW LP STAR RP */ { - yylhsminor.yy528 = sqlite3ExprFunction(pParse, 0, &yymsp[-3].minor.yy0, 0); + yylhsminor.yy454 = sqlite3ExprFunction(pParse, 0, &yymsp[-3].minor.yy0, 0); } - yymsp[-3].minor.yy528 = yylhsminor.yy528; + yymsp[-3].minor.yy454 = yylhsminor.yy454; break; - case 190: /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP filter_over */ + case 192: /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP filter_over */ { - yylhsminor.yy528 = sqlite3ExprFunction(pParse, yymsp[-2].minor.yy322, &yymsp[-5].minor.yy0, yymsp[-3].minor.yy394); - sqlite3WindowAttach(pParse, yylhsminor.yy528, yymsp[0].minor.yy41); + yylhsminor.yy454 = sqlite3ExprFunction(pParse, yymsp[-2].minor.yy14, &yymsp[-5].minor.yy0, yymsp[-3].minor.yy144); + sqlite3WindowAttach(pParse, yylhsminor.yy454, yymsp[0].minor.yy211); } - yymsp[-5].minor.yy528 = yylhsminor.yy528; + yymsp[-5].minor.yy454 = yylhsminor.yy454; break; - case 191: /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP filter_over */ + case 193: /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP filter_over */ { - yylhsminor.yy528 = sqlite3ExprFunction(pParse, yymsp[-5].minor.yy322, &yymsp[-8].minor.yy0, yymsp[-6].minor.yy394); - sqlite3WindowAttach(pParse, yylhsminor.yy528, yymsp[0].minor.yy41); - sqlite3ExprAddFunctionOrderBy(pParse, yylhsminor.yy528, yymsp[-2].minor.yy322); + yylhsminor.yy454 = sqlite3ExprFunction(pParse, yymsp[-5].minor.yy14, &yymsp[-8].minor.yy0, yymsp[-6].minor.yy144); + sqlite3WindowAttach(pParse, yylhsminor.yy454, yymsp[0].minor.yy211); + sqlite3ExprAddFunctionOrderBy(pParse, yylhsminor.yy454, yymsp[-2].minor.yy14); } - yymsp[-8].minor.yy528 = yylhsminor.yy528; + yymsp[-8].minor.yy454 = yylhsminor.yy454; break; - case 192: /* expr ::= ID|INDEXED|JOIN_KW LP STAR RP filter_over */ + case 194: /* expr ::= ID|INDEXED|JOIN_KW LP STAR RP filter_over */ { - yylhsminor.yy528 = sqlite3ExprFunction(pParse, 0, &yymsp[-4].minor.yy0, 0); - sqlite3WindowAttach(pParse, yylhsminor.yy528, yymsp[0].minor.yy41); + yylhsminor.yy454 = sqlite3ExprFunction(pParse, 0, &yymsp[-4].minor.yy0, 0); + sqlite3WindowAttach(pParse, yylhsminor.yy454, yymsp[0].minor.yy211); } - yymsp[-4].minor.yy528 = yylhsminor.yy528; + yymsp[-4].minor.yy454 = yylhsminor.yy454; break; - case 193: /* term ::= CTIME_KW */ + case 195: /* term ::= CTIME_KW */ { - yylhsminor.yy528 = sqlite3ExprFunction(pParse, 0, &yymsp[0].minor.yy0, 0); + yylhsminor.yy454 = sqlite3ExprFunction(pParse, 0, &yymsp[0].minor.yy0, 0); } - yymsp[0].minor.yy528 = yylhsminor.yy528; + yymsp[0].minor.yy454 = yylhsminor.yy454; break; - case 194: /* expr ::= LP nexprlist COMMA expr RP */ + case 196: /* expr ::= LP nexprlist COMMA expr RP */ { - ExprList *pList = sqlite3ExprListAppend(pParse, yymsp[-3].minor.yy322, yymsp[-1].minor.yy528); - yymsp[-4].minor.yy528 = sqlite3PExpr(pParse, TK_VECTOR, 0, 0); - if( yymsp[-4].minor.yy528 ){ - yymsp[-4].minor.yy528->x.pList = pList; + ExprList *pList = sqlite3ExprListAppend(pParse, yymsp[-3].minor.yy14, yymsp[-1].minor.yy454); + yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_VECTOR, 0, 0); + if( yymsp[-4].minor.yy454 ){ + yymsp[-4].minor.yy454->x.pList = pList; if( ALWAYS(pList->nExpr) ){ - yymsp[-4].minor.yy528->flags |= pList->a[0].pExpr->flags & EP_Propagate; + yymsp[-4].minor.yy454->flags |= pList->a[0].pExpr->flags & EP_Propagate; } }else{ sqlite3ExprListDelete(pParse->db, pList); } } break; - case 195: /* expr ::= expr AND expr */ -{yymsp[-2].minor.yy528=sqlite3ExprAnd(pParse,yymsp[-2].minor.yy528,yymsp[0].minor.yy528);} + case 197: /* expr ::= expr AND expr */ +{yymsp[-2].minor.yy454=sqlite3ExprAnd(pParse,yymsp[-2].minor.yy454,yymsp[0].minor.yy454);} break; - case 196: /* expr ::= expr OR expr */ - case 197: /* expr ::= expr LT|GT|GE|LE expr */ yytestcase(yyruleno==197); - case 198: /* expr ::= expr EQ|NE expr */ yytestcase(yyruleno==198); - case 199: /* expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ yytestcase(yyruleno==199); - case 200: /* expr ::= expr PLUS|MINUS expr */ yytestcase(yyruleno==200); - case 201: /* expr ::= expr STAR|SLASH|REM expr */ yytestcase(yyruleno==201); - case 202: /* expr ::= expr CONCAT expr */ yytestcase(yyruleno==202); -{yymsp[-2].minor.yy528=sqlite3PExpr(pParse,yymsp[-1].major,yymsp[-2].minor.yy528,yymsp[0].minor.yy528);} + case 198: /* expr ::= expr OR expr */ + case 199: /* expr ::= expr LT|GT|GE|LE expr */ yytestcase(yyruleno==199); + case 200: /* expr ::= expr EQ|NE expr */ yytestcase(yyruleno==200); + case 201: /* expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ yytestcase(yyruleno==201); + case 202: /* expr ::= expr PLUS|MINUS expr */ yytestcase(yyruleno==202); + case 203: /* expr ::= expr STAR|SLASH|REM expr */ yytestcase(yyruleno==203); + case 204: /* expr ::= expr CONCAT expr */ yytestcase(yyruleno==204); +{yymsp[-2].minor.yy454=sqlite3PExpr(pParse,yymsp[-1].major,yymsp[-2].minor.yy454,yymsp[0].minor.yy454);} break; - case 203: /* likeop ::= NOT LIKE_KW|MATCH */ + case 205: /* likeop ::= NOT LIKE_KW|MATCH */ {yymsp[-1].minor.yy0=yymsp[0].minor.yy0; yymsp[-1].minor.yy0.n|=0x80000000; /*yymsp[-1].minor.yy0-overwrite-yymsp[0].minor.yy0*/} break; - case 204: /* expr ::= expr likeop expr */ + case 206: /* expr ::= expr likeop expr */ { ExprList *pList; int bNot = yymsp[-1].minor.yy0.n & 0x80000000; yymsp[-1].minor.yy0.n &= 0x7fffffff; - pList = sqlite3ExprListAppend(pParse,0, yymsp[0].minor.yy528); - pList = sqlite3ExprListAppend(pParse,pList, yymsp[-2].minor.yy528); - yymsp[-2].minor.yy528 = sqlite3ExprFunction(pParse, pList, &yymsp[-1].minor.yy0, 0); - if( bNot ) yymsp[-2].minor.yy528 = sqlite3PExpr(pParse, TK_NOT, yymsp[-2].minor.yy528, 0); - if( yymsp[-2].minor.yy528 ) yymsp[-2].minor.yy528->flags |= EP_InfixFunc; + pList = sqlite3ExprListAppend(pParse,0, yymsp[0].minor.yy454); + pList = sqlite3ExprListAppend(pParse,pList, yymsp[-2].minor.yy454); + yymsp[-2].minor.yy454 = sqlite3ExprFunction(pParse, pList, &yymsp[-1].minor.yy0, 0); + if( bNot ) yymsp[-2].minor.yy454 = sqlite3PExpr(pParse, TK_NOT, yymsp[-2].minor.yy454, 0); + if( yymsp[-2].minor.yy454 ) yymsp[-2].minor.yy454->flags |= EP_InfixFunc; } break; - case 205: /* expr ::= expr likeop expr ESCAPE expr */ + case 207: /* expr ::= expr likeop expr ESCAPE expr */ { ExprList *pList; int bNot = yymsp[-3].minor.yy0.n & 0x80000000; yymsp[-3].minor.yy0.n &= 0x7fffffff; - pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy528); - pList = sqlite3ExprListAppend(pParse,pList, yymsp[-4].minor.yy528); - pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy528); - yymsp[-4].minor.yy528 = sqlite3ExprFunction(pParse, pList, &yymsp[-3].minor.yy0, 0); - if( bNot ) yymsp[-4].minor.yy528 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy528, 0); - if( yymsp[-4].minor.yy528 ) yymsp[-4].minor.yy528->flags |= EP_InfixFunc; + pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy454); + pList = sqlite3ExprListAppend(pParse,pList, yymsp[-4].minor.yy454); + pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy454); + yymsp[-4].minor.yy454 = sqlite3ExprFunction(pParse, pList, &yymsp[-3].minor.yy0, 0); + if( bNot ) yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy454, 0); + if( yymsp[-4].minor.yy454 ) yymsp[-4].minor.yy454->flags |= EP_InfixFunc; } break; - case 206: /* expr ::= expr ISNULL|NOTNULL */ -{yymsp[-1].minor.yy528 = sqlite3PExpr(pParse,yymsp[0].major,yymsp[-1].minor.yy528,0);} + case 208: /* expr ::= expr ISNULL|NOTNULL */ +{yymsp[-1].minor.yy454 = sqlite3PExpr(pParse,yymsp[0].major,yymsp[-1].minor.yy454,0);} break; - case 207: /* expr ::= expr NOT NULL */ -{yymsp[-2].minor.yy528 = sqlite3PExpr(pParse,TK_NOTNULL,yymsp[-2].minor.yy528,0);} + case 209: /* expr ::= expr NOT NULL */ +{yymsp[-2].minor.yy454 = sqlite3PExpr(pParse,TK_NOTNULL,yymsp[-2].minor.yy454,0);} break; - case 208: /* expr ::= expr IS expr */ + case 210: /* expr ::= expr IS expr */ { - yymsp[-2].minor.yy528 = sqlite3PExpr(pParse,TK_IS,yymsp[-2].minor.yy528,yymsp[0].minor.yy528); - binaryToUnaryIfNull(pParse, yymsp[0].minor.yy528, yymsp[-2].minor.yy528, TK_ISNULL); + yymsp[-2].minor.yy454 = sqlite3PExpr(pParse,TK_IS,yymsp[-2].minor.yy454,yymsp[0].minor.yy454); + binaryToUnaryIfNull(pParse, yymsp[0].minor.yy454, yymsp[-2].minor.yy454, TK_ISNULL); } break; - case 209: /* expr ::= expr IS NOT expr */ + case 211: /* expr ::= expr IS NOT expr */ { - yymsp[-3].minor.yy528 = sqlite3PExpr(pParse,TK_ISNOT,yymsp[-3].minor.yy528,yymsp[0].minor.yy528); - binaryToUnaryIfNull(pParse, yymsp[0].minor.yy528, yymsp[-3].minor.yy528, TK_NOTNULL); + yymsp[-3].minor.yy454 = sqlite3PExpr(pParse,TK_ISNOT,yymsp[-3].minor.yy454,yymsp[0].minor.yy454); + binaryToUnaryIfNull(pParse, yymsp[0].minor.yy454, yymsp[-3].minor.yy454, TK_NOTNULL); } break; - case 210: /* expr ::= expr IS NOT DISTINCT FROM expr */ + case 212: /* expr ::= expr IS NOT DISTINCT FROM expr */ { - yymsp[-5].minor.yy528 = sqlite3PExpr(pParse,TK_IS,yymsp[-5].minor.yy528,yymsp[0].minor.yy528); - binaryToUnaryIfNull(pParse, yymsp[0].minor.yy528, yymsp[-5].minor.yy528, TK_ISNULL); + yymsp[-5].minor.yy454 = sqlite3PExpr(pParse,TK_IS,yymsp[-5].minor.yy454,yymsp[0].minor.yy454); + binaryToUnaryIfNull(pParse, yymsp[0].minor.yy454, yymsp[-5].minor.yy454, TK_ISNULL); } break; - case 211: /* expr ::= expr IS DISTINCT FROM expr */ + case 213: /* expr ::= expr IS DISTINCT FROM expr */ { - yymsp[-4].minor.yy528 = sqlite3PExpr(pParse,TK_ISNOT,yymsp[-4].minor.yy528,yymsp[0].minor.yy528); - binaryToUnaryIfNull(pParse, yymsp[0].minor.yy528, yymsp[-4].minor.yy528, TK_NOTNULL); + yymsp[-4].minor.yy454 = sqlite3PExpr(pParse,TK_ISNOT,yymsp[-4].minor.yy454,yymsp[0].minor.yy454); + binaryToUnaryIfNull(pParse, yymsp[0].minor.yy454, yymsp[-4].minor.yy454, TK_NOTNULL); } break; - case 212: /* expr ::= NOT expr */ - case 213: /* expr ::= BITNOT expr */ yytestcase(yyruleno==213); -{yymsp[-1].minor.yy528 = sqlite3PExpr(pParse, yymsp[-1].major, yymsp[0].minor.yy528, 0);/*A-overwrites-B*/} + case 214: /* expr ::= NOT expr */ + case 215: /* expr ::= BITNOT expr */ yytestcase(yyruleno==215); +{yymsp[-1].minor.yy454 = sqlite3PExpr(pParse, yymsp[-1].major, yymsp[0].minor.yy454, 0);/*A-overwrites-B*/} break; - case 214: /* expr ::= PLUS|MINUS expr */ + case 216: /* expr ::= PLUS|MINUS expr */ { - yymsp[-1].minor.yy528 = sqlite3PExpr(pParse, yymsp[-1].major==TK_PLUS ? TK_UPLUS : TK_UMINUS, yymsp[0].minor.yy528, 0); - /*A-overwrites-B*/ + Expr *p = yymsp[0].minor.yy454; + u8 op = yymsp[-1].major + (TK_UPLUS-TK_PLUS); + assert( TK_UPLUS>TK_PLUS ); + assert( TK_UMINUS == TK_MINUS + (TK_UPLUS - TK_PLUS) ); + if( p && p->op==TK_UPLUS ){ + p->op = op; + yymsp[-1].minor.yy454 = p; + }else{ + yymsp[-1].minor.yy454 = sqlite3PExpr(pParse, op, p, 0); + /*A-overwrites-B*/ + } } break; - case 215: /* expr ::= expr PTR expr */ + case 217: /* expr ::= expr PTR expr */ { - ExprList *pList = sqlite3ExprListAppend(pParse, 0, yymsp[-2].minor.yy528); - pList = sqlite3ExprListAppend(pParse, pList, yymsp[0].minor.yy528); - yylhsminor.yy528 = sqlite3ExprFunction(pParse, pList, &yymsp[-1].minor.yy0, 0); + ExprList *pList = sqlite3ExprListAppend(pParse, 0, yymsp[-2].minor.yy454); + pList = sqlite3ExprListAppend(pParse, pList, yymsp[0].minor.yy454); + yylhsminor.yy454 = sqlite3ExprFunction(pParse, pList, &yymsp[-1].minor.yy0, 0); } - yymsp[-2].minor.yy528 = yylhsminor.yy528; + yymsp[-2].minor.yy454 = yylhsminor.yy454; break; - case 216: /* between_op ::= BETWEEN */ - case 219: /* in_op ::= IN */ yytestcase(yyruleno==219); -{yymsp[0].minor.yy394 = 0;} + case 218: /* between_op ::= BETWEEN */ + case 221: /* in_op ::= IN */ yytestcase(yyruleno==221); +{yymsp[0].minor.yy144 = 0;} break; - case 218: /* expr ::= expr between_op expr AND expr */ + case 220: /* expr ::= expr between_op expr AND expr */ { - ExprList *pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy528); - pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy528); - yymsp[-4].minor.yy528 = sqlite3PExpr(pParse, TK_BETWEEN, yymsp[-4].minor.yy528, 0); - if( yymsp[-4].minor.yy528 ){ - yymsp[-4].minor.yy528->x.pList = pList; + ExprList *pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy454); + pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy454); + yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_BETWEEN, yymsp[-4].minor.yy454, 0); + if( yymsp[-4].minor.yy454 ){ + yymsp[-4].minor.yy454->x.pList = pList; }else{ sqlite3ExprListDelete(pParse->db, pList); } - if( yymsp[-3].minor.yy394 ) yymsp[-4].minor.yy528 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy528, 0); + if( yymsp[-3].minor.yy144 ) yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy454, 0); } break; - case 221: /* expr ::= expr in_op LP exprlist RP */ + case 223: /* expr ::= expr in_op LP exprlist RP */ { - if( yymsp[-1].minor.yy322==0 ){ + if( yymsp[-1].minor.yy14==0 ){ /* Expressions of the form ** ** expr1 IN () @@ -175455,208 +177073,208 @@ static YYACTIONTYPE yy_reduce( ** simplify to constants 0 (false) and 1 (true), respectively, ** regardless of the value of expr1. */ - sqlite3ExprUnmapAndDelete(pParse, yymsp[-4].minor.yy528); - yymsp[-4].minor.yy528 = sqlite3Expr(pParse->db, TK_STRING, yymsp[-3].minor.yy394 ? "true" : "false"); - if( yymsp[-4].minor.yy528 ) sqlite3ExprIdToTrueFalse(yymsp[-4].minor.yy528); - }else{ - Expr *pRHS = yymsp[-1].minor.yy322->a[0].pExpr; - if( yymsp[-1].minor.yy322->nExpr==1 && sqlite3ExprIsConstant(pRHS) && yymsp[-4].minor.yy528->op!=TK_VECTOR ){ - yymsp[-1].minor.yy322->a[0].pExpr = 0; - sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy322); + sqlite3ExprUnmapAndDelete(pParse, yymsp[-4].minor.yy454); + yymsp[-4].minor.yy454 = sqlite3Expr(pParse->db, TK_STRING, yymsp[-3].minor.yy144 ? "true" : "false"); + if( yymsp[-4].minor.yy454 ) sqlite3ExprIdToTrueFalse(yymsp[-4].minor.yy454); + }else{ + Expr *pRHS = yymsp[-1].minor.yy14->a[0].pExpr; + if( yymsp[-1].minor.yy14->nExpr==1 && sqlite3ExprIsConstant(pParse,pRHS) && yymsp[-4].minor.yy454->op!=TK_VECTOR ){ + yymsp[-1].minor.yy14->a[0].pExpr = 0; + sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy14); pRHS = sqlite3PExpr(pParse, TK_UPLUS, pRHS, 0); - yymsp[-4].minor.yy528 = sqlite3PExpr(pParse, TK_EQ, yymsp[-4].minor.yy528, pRHS); - }else if( yymsp[-1].minor.yy322->nExpr==1 && pRHS->op==TK_SELECT ){ - yymsp[-4].minor.yy528 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy528, 0); - sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy528, pRHS->x.pSelect); + yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_EQ, yymsp[-4].minor.yy454, pRHS); + }else if( yymsp[-1].minor.yy14->nExpr==1 && pRHS->op==TK_SELECT ){ + yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy454, 0); + sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy454, pRHS->x.pSelect); pRHS->x.pSelect = 0; - sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy322); - }else{ - yymsp[-4].minor.yy528 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy528, 0); - if( yymsp[-4].minor.yy528==0 ){ - sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy322); - }else if( yymsp[-4].minor.yy528->pLeft->op==TK_VECTOR ){ - int nExpr = yymsp[-4].minor.yy528->pLeft->x.pList->nExpr; - Select *pSelectRHS = sqlite3ExprListToValues(pParse, nExpr, yymsp[-1].minor.yy322); + sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy14); + }else{ + yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy454, 0); + if( yymsp[-4].minor.yy454==0 ){ + sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy14); + }else if( yymsp[-4].minor.yy454->pLeft->op==TK_VECTOR ){ + int nExpr = yymsp[-4].minor.yy454->pLeft->x.pList->nExpr; + Select *pSelectRHS = sqlite3ExprListToValues(pParse, nExpr, yymsp[-1].minor.yy14); if( pSelectRHS ){ parserDoubleLinkSelect(pParse, pSelectRHS); - sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy528, pSelectRHS); + sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy454, pSelectRHS); } }else{ - yymsp[-4].minor.yy528->x.pList = yymsp[-1].minor.yy322; - sqlite3ExprSetHeightAndFlags(pParse, yymsp[-4].minor.yy528); + yymsp[-4].minor.yy454->x.pList = yymsp[-1].minor.yy14; + sqlite3ExprSetHeightAndFlags(pParse, yymsp[-4].minor.yy454); } } - if( yymsp[-3].minor.yy394 ) yymsp[-4].minor.yy528 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy528, 0); + if( yymsp[-3].minor.yy144 ) yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy454, 0); } } break; - case 222: /* expr ::= LP select RP */ + case 224: /* expr ::= LP select RP */ { - yymsp[-2].minor.yy528 = sqlite3PExpr(pParse, TK_SELECT, 0, 0); - sqlite3PExprAddSelect(pParse, yymsp[-2].minor.yy528, yymsp[-1].minor.yy47); + yymsp[-2].minor.yy454 = sqlite3PExpr(pParse, TK_SELECT, 0, 0); + sqlite3PExprAddSelect(pParse, yymsp[-2].minor.yy454, yymsp[-1].minor.yy555); } break; - case 223: /* expr ::= expr in_op LP select RP */ + case 225: /* expr ::= expr in_op LP select RP */ { - yymsp[-4].minor.yy528 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy528, 0); - sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy528, yymsp[-1].minor.yy47); - if( yymsp[-3].minor.yy394 ) yymsp[-4].minor.yy528 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy528, 0); + yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy454, 0); + sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy454, yymsp[-1].minor.yy555); + if( yymsp[-3].minor.yy144 ) yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy454, 0); } break; - case 224: /* expr ::= expr in_op nm dbnm paren_exprlist */ + case 226: /* expr ::= expr in_op nm dbnm paren_exprlist */ { SrcList *pSrc = sqlite3SrcListAppend(pParse, 0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0); Select *pSelect = sqlite3SelectNew(pParse, 0,pSrc,0,0,0,0,0,0); - if( yymsp[0].minor.yy322 ) sqlite3SrcListFuncArgs(pParse, pSelect ? pSrc : 0, yymsp[0].minor.yy322); - yymsp[-4].minor.yy528 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy528, 0); - sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy528, pSelect); - if( yymsp[-3].minor.yy394 ) yymsp[-4].minor.yy528 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy528, 0); + if( yymsp[0].minor.yy14 ) sqlite3SrcListFuncArgs(pParse, pSelect ? pSrc : 0, yymsp[0].minor.yy14); + yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy454, 0); + sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy454, pSelect); + if( yymsp[-3].minor.yy144 ) yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy454, 0); } break; - case 225: /* expr ::= EXISTS LP select RP */ + case 227: /* expr ::= EXISTS LP select RP */ { Expr *p; - p = yymsp[-3].minor.yy528 = sqlite3PExpr(pParse, TK_EXISTS, 0, 0); - sqlite3PExprAddSelect(pParse, p, yymsp[-1].minor.yy47); + p = yymsp[-3].minor.yy454 = sqlite3PExpr(pParse, TK_EXISTS, 0, 0); + sqlite3PExprAddSelect(pParse, p, yymsp[-1].minor.yy555); } break; - case 226: /* expr ::= CASE case_operand case_exprlist case_else END */ + case 228: /* expr ::= CASE case_operand case_exprlist case_else END */ { - yymsp[-4].minor.yy528 = sqlite3PExpr(pParse, TK_CASE, yymsp[-3].minor.yy528, 0); - if( yymsp[-4].minor.yy528 ){ - yymsp[-4].minor.yy528->x.pList = yymsp[-1].minor.yy528 ? sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy322,yymsp[-1].minor.yy528) : yymsp[-2].minor.yy322; - sqlite3ExprSetHeightAndFlags(pParse, yymsp[-4].minor.yy528); + yymsp[-4].minor.yy454 = sqlite3PExpr(pParse, TK_CASE, yymsp[-3].minor.yy454, 0); + if( yymsp[-4].minor.yy454 ){ + yymsp[-4].minor.yy454->x.pList = yymsp[-1].minor.yy454 ? sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy14,yymsp[-1].minor.yy454) : yymsp[-2].minor.yy14; + sqlite3ExprSetHeightAndFlags(pParse, yymsp[-4].minor.yy454); }else{ - sqlite3ExprListDelete(pParse->db, yymsp[-2].minor.yy322); - sqlite3ExprDelete(pParse->db, yymsp[-1].minor.yy528); + sqlite3ExprListDelete(pParse->db, yymsp[-2].minor.yy14); + sqlite3ExprDelete(pParse->db, yymsp[-1].minor.yy454); } } break; - case 227: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */ + case 229: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */ { - yymsp[-4].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy322, yymsp[-2].minor.yy528); - yymsp[-4].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy322, yymsp[0].minor.yy528); + yymsp[-4].minor.yy14 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy14, yymsp[-2].minor.yy454); + yymsp[-4].minor.yy14 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy14, yymsp[0].minor.yy454); } break; - case 228: /* case_exprlist ::= WHEN expr THEN expr */ + case 230: /* case_exprlist ::= WHEN expr THEN expr */ { - yymsp[-3].minor.yy322 = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy528); - yymsp[-3].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy322, yymsp[0].minor.yy528); + yymsp[-3].minor.yy14 = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy454); + yymsp[-3].minor.yy14 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy14, yymsp[0].minor.yy454); } break; - case 233: /* nexprlist ::= nexprlist COMMA expr */ -{yymsp[-2].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy322,yymsp[0].minor.yy528);} + case 235: /* nexprlist ::= nexprlist COMMA expr */ +{yymsp[-2].minor.yy14 = sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy14,yymsp[0].minor.yy454);} break; - case 234: /* nexprlist ::= expr */ -{yymsp[0].minor.yy322 = sqlite3ExprListAppend(pParse,0,yymsp[0].minor.yy528); /*A-overwrites-Y*/} + case 236: /* nexprlist ::= expr */ +{yymsp[0].minor.yy14 = sqlite3ExprListAppend(pParse,0,yymsp[0].minor.yy454); /*A-overwrites-Y*/} break; - case 236: /* paren_exprlist ::= LP exprlist RP */ - case 241: /* eidlist_opt ::= LP eidlist RP */ yytestcase(yyruleno==241); -{yymsp[-2].minor.yy322 = yymsp[-1].minor.yy322;} + case 238: /* paren_exprlist ::= LP exprlist RP */ + case 243: /* eidlist_opt ::= LP eidlist RP */ yytestcase(yyruleno==243); +{yymsp[-2].minor.yy14 = yymsp[-1].minor.yy14;} break; - case 237: /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ + case 239: /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ { sqlite3CreateIndex(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0, - sqlite3SrcListAppend(pParse,0,&yymsp[-4].minor.yy0,0), yymsp[-2].minor.yy322, yymsp[-10].minor.yy394, - &yymsp[-11].minor.yy0, yymsp[0].minor.yy528, SQLITE_SO_ASC, yymsp[-8].minor.yy394, SQLITE_IDXTYPE_APPDEF); + sqlite3SrcListAppend(pParse,0,&yymsp[-4].minor.yy0,0), yymsp[-2].minor.yy14, yymsp[-10].minor.yy144, + &yymsp[-11].minor.yy0, yymsp[0].minor.yy454, SQLITE_SO_ASC, yymsp[-8].minor.yy144, SQLITE_IDXTYPE_APPDEF); if( IN_RENAME_OBJECT && pParse->pNewIndex ){ sqlite3RenameTokenMap(pParse, pParse->pNewIndex->zName, &yymsp[-4].minor.yy0); } } break; - case 238: /* uniqueflag ::= UNIQUE */ - case 280: /* raisetype ::= ABORT */ yytestcase(yyruleno==280); -{yymsp[0].minor.yy394 = OE_Abort;} + case 240: /* uniqueflag ::= UNIQUE */ + case 282: /* raisetype ::= ABORT */ yytestcase(yyruleno==282); +{yymsp[0].minor.yy144 = OE_Abort;} break; - case 239: /* uniqueflag ::= */ -{yymsp[1].minor.yy394 = OE_None;} + case 241: /* uniqueflag ::= */ +{yymsp[1].minor.yy144 = OE_None;} break; - case 242: /* eidlist ::= eidlist COMMA nm collate sortorder */ + case 244: /* eidlist ::= eidlist COMMA nm collate sortorder */ { - yymsp[-4].minor.yy322 = parserAddExprIdListTerm(pParse, yymsp[-4].minor.yy322, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy394, yymsp[0].minor.yy394); + yymsp[-4].minor.yy14 = parserAddExprIdListTerm(pParse, yymsp[-4].minor.yy14, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy144, yymsp[0].minor.yy144); } break; - case 243: /* eidlist ::= nm collate sortorder */ + case 245: /* eidlist ::= nm collate sortorder */ { - yymsp[-2].minor.yy322 = parserAddExprIdListTerm(pParse, 0, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy394, yymsp[0].minor.yy394); /*A-overwrites-Y*/ + yymsp[-2].minor.yy14 = parserAddExprIdListTerm(pParse, 0, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy144, yymsp[0].minor.yy144); /*A-overwrites-Y*/ } break; - case 246: /* cmd ::= DROP INDEX ifexists fullname */ -{sqlite3DropIndex(pParse, yymsp[0].minor.yy131, yymsp[-1].minor.yy394);} + case 248: /* cmd ::= DROP INDEX ifexists fullname */ +{sqlite3DropIndex(pParse, yymsp[0].minor.yy203, yymsp[-1].minor.yy144);} break; - case 247: /* cmd ::= VACUUM vinto */ -{sqlite3Vacuum(pParse,0,yymsp[0].minor.yy528);} + case 249: /* cmd ::= VACUUM vinto */ +{sqlite3Vacuum(pParse,0,yymsp[0].minor.yy454);} break; - case 248: /* cmd ::= VACUUM nm vinto */ -{sqlite3Vacuum(pParse,&yymsp[-1].minor.yy0,yymsp[0].minor.yy528);} + case 250: /* cmd ::= VACUUM nm vinto */ +{sqlite3Vacuum(pParse,&yymsp[-1].minor.yy0,yymsp[0].minor.yy454);} break; - case 251: /* cmd ::= PRAGMA nm dbnm */ + case 253: /* cmd ::= PRAGMA nm dbnm */ {sqlite3Pragma(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,0,0);} break; - case 252: /* cmd ::= PRAGMA nm dbnm EQ nmnum */ + case 254: /* cmd ::= PRAGMA nm dbnm EQ nmnum */ {sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,0);} break; - case 253: /* cmd ::= PRAGMA nm dbnm LP nmnum RP */ + case 255: /* cmd ::= PRAGMA nm dbnm LP nmnum RP */ {sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor.yy0,0);} break; - case 254: /* cmd ::= PRAGMA nm dbnm EQ minus_num */ + case 256: /* cmd ::= PRAGMA nm dbnm EQ minus_num */ {sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,1);} break; - case 255: /* cmd ::= PRAGMA nm dbnm LP minus_num RP */ + case 257: /* cmd ::= PRAGMA nm dbnm LP minus_num RP */ {sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor.yy0,1);} break; - case 258: /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ + case 260: /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ { Token all; all.z = yymsp[-3].minor.yy0.z; all.n = (int)(yymsp[0].minor.yy0.z - yymsp[-3].minor.yy0.z) + yymsp[0].minor.yy0.n; - sqlite3FinishTrigger(pParse, yymsp[-1].minor.yy33, &all); + sqlite3FinishTrigger(pParse, yymsp[-1].minor.yy427, &all); } break; - case 259: /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ + case 261: /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ { - sqlite3BeginTrigger(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0, yymsp[-5].minor.yy394, yymsp[-4].minor.yy180.a, yymsp[-4].minor.yy180.b, yymsp[-2].minor.yy131, yymsp[0].minor.yy528, yymsp[-10].minor.yy394, yymsp[-8].minor.yy394); + sqlite3BeginTrigger(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0, yymsp[-5].minor.yy144, yymsp[-4].minor.yy286.a, yymsp[-4].minor.yy286.b, yymsp[-2].minor.yy203, yymsp[0].minor.yy454, yymsp[-10].minor.yy144, yymsp[-8].minor.yy144); yymsp[-10].minor.yy0 = (yymsp[-6].minor.yy0.n==0?yymsp[-7].minor.yy0:yymsp[-6].minor.yy0); /*A-overwrites-T*/ } break; - case 260: /* trigger_time ::= BEFORE|AFTER */ -{ yymsp[0].minor.yy394 = yymsp[0].major; /*A-overwrites-X*/ } + case 262: /* trigger_time ::= BEFORE|AFTER */ +{ yymsp[0].minor.yy144 = yymsp[0].major; /*A-overwrites-X*/ } break; - case 261: /* trigger_time ::= INSTEAD OF */ -{ yymsp[-1].minor.yy394 = TK_INSTEAD;} + case 263: /* trigger_time ::= INSTEAD OF */ +{ yymsp[-1].minor.yy144 = TK_INSTEAD;} break; - case 262: /* trigger_time ::= */ -{ yymsp[1].minor.yy394 = TK_BEFORE; } + case 264: /* trigger_time ::= */ +{ yymsp[1].minor.yy144 = TK_BEFORE; } break; - case 263: /* trigger_event ::= DELETE|INSERT */ - case 264: /* trigger_event ::= UPDATE */ yytestcase(yyruleno==264); -{yymsp[0].minor.yy180.a = yymsp[0].major; /*A-overwrites-X*/ yymsp[0].minor.yy180.b = 0;} + case 265: /* trigger_event ::= DELETE|INSERT */ + case 266: /* trigger_event ::= UPDATE */ yytestcase(yyruleno==266); +{yymsp[0].minor.yy286.a = yymsp[0].major; /*A-overwrites-X*/ yymsp[0].minor.yy286.b = 0;} break; - case 265: /* trigger_event ::= UPDATE OF idlist */ -{yymsp[-2].minor.yy180.a = TK_UPDATE; yymsp[-2].minor.yy180.b = yymsp[0].minor.yy254;} + case 267: /* trigger_event ::= UPDATE OF idlist */ +{yymsp[-2].minor.yy286.a = TK_UPDATE; yymsp[-2].minor.yy286.b = yymsp[0].minor.yy132;} break; - case 266: /* when_clause ::= */ - case 285: /* key_opt ::= */ yytestcase(yyruleno==285); -{ yymsp[1].minor.yy528 = 0; } + case 268: /* when_clause ::= */ + case 287: /* key_opt ::= */ yytestcase(yyruleno==287); +{ yymsp[1].minor.yy454 = 0; } break; - case 267: /* when_clause ::= WHEN expr */ - case 286: /* key_opt ::= KEY expr */ yytestcase(yyruleno==286); -{ yymsp[-1].minor.yy528 = yymsp[0].minor.yy528; } + case 269: /* when_clause ::= WHEN expr */ + case 288: /* key_opt ::= KEY expr */ yytestcase(yyruleno==288); +{ yymsp[-1].minor.yy454 = yymsp[0].minor.yy454; } break; - case 268: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ + case 270: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ { - assert( yymsp[-2].minor.yy33!=0 ); - yymsp[-2].minor.yy33->pLast->pNext = yymsp[-1].minor.yy33; - yymsp[-2].minor.yy33->pLast = yymsp[-1].minor.yy33; + assert( yymsp[-2].minor.yy427!=0 ); + yymsp[-2].minor.yy427->pLast->pNext = yymsp[-1].minor.yy427; + yymsp[-2].minor.yy427->pLast = yymsp[-1].minor.yy427; } break; - case 269: /* trigger_cmd_list ::= trigger_cmd SEMI */ + case 271: /* trigger_cmd_list ::= trigger_cmd SEMI */ { - assert( yymsp[-1].minor.yy33!=0 ); - yymsp[-1].minor.yy33->pLast = yymsp[-1].minor.yy33; + assert( yymsp[-1].minor.yy427!=0 ); + yymsp[-1].minor.yy427->pLast = yymsp[-1].minor.yy427; } break; - case 270: /* trnm ::= nm DOT nm */ + case 272: /* trnm ::= nm DOT nm */ { yymsp[-2].minor.yy0 = yymsp[0].minor.yy0; sqlite3ErrorMsg(pParse, @@ -175664,367 +177282,377 @@ static YYACTIONTYPE yy_reduce( "statements within triggers"); } break; - case 271: /* tridxby ::= INDEXED BY nm */ + case 273: /* tridxby ::= INDEXED BY nm */ { sqlite3ErrorMsg(pParse, "the INDEXED BY clause is not allowed on UPDATE or DELETE statements " "within triggers"); } break; - case 272: /* tridxby ::= NOT INDEXED */ + case 274: /* tridxby ::= NOT INDEXED */ { sqlite3ErrorMsg(pParse, "the NOT INDEXED clause is not allowed on UPDATE or DELETE statements " "within triggers"); } break; - case 273: /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */ -{yylhsminor.yy33 = sqlite3TriggerUpdateStep(pParse, &yymsp[-6].minor.yy0, yymsp[-2].minor.yy131, yymsp[-3].minor.yy322, yymsp[-1].minor.yy528, yymsp[-7].minor.yy394, yymsp[-8].minor.yy0.z, yymsp[0].minor.yy522);} - yymsp[-8].minor.yy33 = yylhsminor.yy33; + case 275: /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */ +{yylhsminor.yy427 = sqlite3TriggerUpdateStep(pParse, &yymsp[-6].minor.yy0, yymsp[-2].minor.yy203, yymsp[-3].minor.yy14, yymsp[-1].minor.yy454, yymsp[-7].minor.yy144, yymsp[-8].minor.yy0.z, yymsp[0].minor.yy168);} + yymsp[-8].minor.yy427 = yylhsminor.yy427; break; - case 274: /* trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */ + case 276: /* trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */ { - yylhsminor.yy33 = sqlite3TriggerInsertStep(pParse,&yymsp[-4].minor.yy0,yymsp[-3].minor.yy254,yymsp[-2].minor.yy47,yymsp[-6].minor.yy394,yymsp[-1].minor.yy444,yymsp[-7].minor.yy522,yymsp[0].minor.yy522);/*yylhsminor.yy33-overwrites-yymsp[-6].minor.yy394*/ + yylhsminor.yy427 = sqlite3TriggerInsertStep(pParse,&yymsp[-4].minor.yy0,yymsp[-3].minor.yy132,yymsp[-2].minor.yy555,yymsp[-6].minor.yy144,yymsp[-1].minor.yy122,yymsp[-7].minor.yy168,yymsp[0].minor.yy168);/*yylhsminor.yy427-overwrites-yymsp[-6].minor.yy144*/ } - yymsp[-7].minor.yy33 = yylhsminor.yy33; + yymsp[-7].minor.yy427 = yylhsminor.yy427; break; - case 275: /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ -{yylhsminor.yy33 = sqlite3TriggerDeleteStep(pParse, &yymsp[-3].minor.yy0, yymsp[-1].minor.yy528, yymsp[-5].minor.yy0.z, yymsp[0].minor.yy522);} - yymsp[-5].minor.yy33 = yylhsminor.yy33; + case 277: /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ +{yylhsminor.yy427 = sqlite3TriggerDeleteStep(pParse, &yymsp[-3].minor.yy0, yymsp[-1].minor.yy454, yymsp[-5].minor.yy0.z, yymsp[0].minor.yy168);} + yymsp[-5].minor.yy427 = yylhsminor.yy427; break; - case 276: /* trigger_cmd ::= scanpt select scanpt */ -{yylhsminor.yy33 = sqlite3TriggerSelectStep(pParse->db, yymsp[-1].minor.yy47, yymsp[-2].minor.yy522, yymsp[0].minor.yy522); /*yylhsminor.yy33-overwrites-yymsp[-1].minor.yy47*/} - yymsp[-2].minor.yy33 = yylhsminor.yy33; + case 278: /* trigger_cmd ::= scanpt select scanpt */ +{yylhsminor.yy427 = sqlite3TriggerSelectStep(pParse->db, yymsp[-1].minor.yy555, yymsp[-2].minor.yy168, yymsp[0].minor.yy168); /*yylhsminor.yy427-overwrites-yymsp[-1].minor.yy555*/} + yymsp[-2].minor.yy427 = yylhsminor.yy427; break; - case 277: /* expr ::= RAISE LP IGNORE RP */ + case 279: /* expr ::= RAISE LP IGNORE RP */ { - yymsp[-3].minor.yy528 = sqlite3PExpr(pParse, TK_RAISE, 0, 0); - if( yymsp[-3].minor.yy528 ){ - yymsp[-3].minor.yy528->affExpr = OE_Ignore; + yymsp[-3].minor.yy454 = sqlite3PExpr(pParse, TK_RAISE, 0, 0); + if( yymsp[-3].minor.yy454 ){ + yymsp[-3].minor.yy454->affExpr = OE_Ignore; } } break; - case 278: /* expr ::= RAISE LP raisetype COMMA nm RP */ + case 280: /* expr ::= RAISE LP raisetype COMMA nm RP */ { - yymsp[-5].minor.yy528 = sqlite3ExprAlloc(pParse->db, TK_RAISE, &yymsp[-1].minor.yy0, 1); - if( yymsp[-5].minor.yy528 ) { - yymsp[-5].minor.yy528->affExpr = (char)yymsp[-3].minor.yy394; + yymsp[-5].minor.yy454 = sqlite3ExprAlloc(pParse->db, TK_RAISE, &yymsp[-1].minor.yy0, 1); + if( yymsp[-5].minor.yy454 ) { + yymsp[-5].minor.yy454->affExpr = (char)yymsp[-3].minor.yy144; } } break; - case 279: /* raisetype ::= ROLLBACK */ -{yymsp[0].minor.yy394 = OE_Rollback;} + case 281: /* raisetype ::= ROLLBACK */ +{yymsp[0].minor.yy144 = OE_Rollback;} break; - case 281: /* raisetype ::= FAIL */ -{yymsp[0].minor.yy394 = OE_Fail;} + case 283: /* raisetype ::= FAIL */ +{yymsp[0].minor.yy144 = OE_Fail;} break; - case 282: /* cmd ::= DROP TRIGGER ifexists fullname */ + case 284: /* cmd ::= DROP TRIGGER ifexists fullname */ { - sqlite3DropTrigger(pParse,yymsp[0].minor.yy131,yymsp[-1].minor.yy394); + sqlite3DropTrigger(pParse,yymsp[0].minor.yy203,yymsp[-1].minor.yy144); } break; - case 283: /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ + case 285: /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ { - sqlite3Attach(pParse, yymsp[-3].minor.yy528, yymsp[-1].minor.yy528, yymsp[0].minor.yy528); + sqlite3Attach(pParse, yymsp[-3].minor.yy454, yymsp[-1].minor.yy454, yymsp[0].minor.yy454); } break; - case 284: /* cmd ::= DETACH database_kw_opt expr */ + case 286: /* cmd ::= DETACH database_kw_opt expr */ { - sqlite3Detach(pParse, yymsp[0].minor.yy528); + sqlite3Detach(pParse, yymsp[0].minor.yy454); } break; - case 287: /* cmd ::= REINDEX */ + case 289: /* cmd ::= REINDEX */ {sqlite3Reindex(pParse, 0, 0);} break; - case 288: /* cmd ::= REINDEX nm dbnm */ + case 290: /* cmd ::= REINDEX nm dbnm */ {sqlite3Reindex(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);} break; - case 289: /* cmd ::= ANALYZE */ + case 291: /* cmd ::= ANALYZE */ {sqlite3Analyze(pParse, 0, 0);} break; - case 290: /* cmd ::= ANALYZE nm dbnm */ + case 292: /* cmd ::= ANALYZE nm dbnm */ {sqlite3Analyze(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);} break; - case 291: /* cmd ::= ALTER TABLE fullname RENAME TO nm */ + case 293: /* cmd ::= ALTER TABLE fullname RENAME TO nm */ { - sqlite3AlterRenameTable(pParse,yymsp[-3].minor.yy131,&yymsp[0].minor.yy0); + sqlite3AlterRenameTable(pParse,yymsp[-3].minor.yy203,&yymsp[0].minor.yy0); } break; - case 292: /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ + case 294: /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ { yymsp[-1].minor.yy0.n = (int)(pParse->sLastToken.z-yymsp[-1].minor.yy0.z) + pParse->sLastToken.n; sqlite3AlterFinishAddColumn(pParse, &yymsp[-1].minor.yy0); } break; - case 293: /* cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ + case 295: /* cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ { - sqlite3AlterDropColumn(pParse, yymsp[-3].minor.yy131, &yymsp[0].minor.yy0); + sqlite3AlterDropColumn(pParse, yymsp[-3].minor.yy203, &yymsp[0].minor.yy0); } break; - case 294: /* add_column_fullname ::= fullname */ + case 296: /* add_column_fullname ::= fullname */ { disableLookaside(pParse); - sqlite3AlterBeginAddColumn(pParse, yymsp[0].minor.yy131); + sqlite3AlterBeginAddColumn(pParse, yymsp[0].minor.yy203); } break; - case 295: /* cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ + case 297: /* cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ { - sqlite3AlterRenameColumn(pParse, yymsp[-5].minor.yy131, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0); + sqlite3AlterRenameColumn(pParse, yymsp[-5].minor.yy203, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0); } break; - case 296: /* cmd ::= create_vtab */ + case 298: /* cmd ::= create_vtab */ {sqlite3VtabFinishParse(pParse,0);} break; - case 297: /* cmd ::= create_vtab LP vtabarglist RP */ + case 299: /* cmd ::= create_vtab LP vtabarglist RP */ {sqlite3VtabFinishParse(pParse,&yymsp[0].minor.yy0);} break; - case 298: /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ + case 300: /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ { - sqlite3VtabBeginParse(pParse, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-4].minor.yy394); + sqlite3VtabBeginParse(pParse, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-4].minor.yy144); } break; - case 299: /* vtabarg ::= */ + case 301: /* vtabarg ::= */ {sqlite3VtabArgInit(pParse);} break; - case 300: /* vtabargtoken ::= ANY */ - case 301: /* vtabargtoken ::= lp anylist RP */ yytestcase(yyruleno==301); - case 302: /* lp ::= LP */ yytestcase(yyruleno==302); + case 302: /* vtabargtoken ::= ANY */ + case 303: /* vtabargtoken ::= lp anylist RP */ yytestcase(yyruleno==303); + case 304: /* lp ::= LP */ yytestcase(yyruleno==304); {sqlite3VtabArgExtend(pParse,&yymsp[0].minor.yy0);} break; - case 303: /* with ::= WITH wqlist */ - case 304: /* with ::= WITH RECURSIVE wqlist */ yytestcase(yyruleno==304); -{ sqlite3WithPush(pParse, yymsp[0].minor.yy521, 1); } + case 305: /* with ::= WITH wqlist */ + case 306: /* with ::= WITH RECURSIVE wqlist */ yytestcase(yyruleno==306); +{ sqlite3WithPush(pParse, yymsp[0].minor.yy59, 1); } break; - case 305: /* wqas ::= AS */ -{yymsp[0].minor.yy516 = M10d_Any;} + case 307: /* wqas ::= AS */ +{yymsp[0].minor.yy462 = M10d_Any;} break; - case 306: /* wqas ::= AS MATERIALIZED */ -{yymsp[-1].minor.yy516 = M10d_Yes;} + case 308: /* wqas ::= AS MATERIALIZED */ +{yymsp[-1].minor.yy462 = M10d_Yes;} break; - case 307: /* wqas ::= AS NOT MATERIALIZED */ -{yymsp[-2].minor.yy516 = M10d_No;} + case 309: /* wqas ::= AS NOT MATERIALIZED */ +{yymsp[-2].minor.yy462 = M10d_No;} break; - case 308: /* wqitem ::= nm eidlist_opt wqas LP select RP */ + case 310: /* wqitem ::= withnm eidlist_opt wqas LP select RP */ { - yymsp[-5].minor.yy385 = sqlite3CteNew(pParse, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy322, yymsp[-1].minor.yy47, yymsp[-3].minor.yy516); /*A-overwrites-X*/ + yymsp[-5].minor.yy67 = sqlite3CteNew(pParse, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy14, yymsp[-1].minor.yy555, yymsp[-3].minor.yy462); /*A-overwrites-X*/ } break; - case 309: /* wqlist ::= wqitem */ + case 311: /* withnm ::= nm */ +{pParse->bHasWith = 1;} + break; + case 312: /* wqlist ::= wqitem */ { - yymsp[0].minor.yy521 = sqlite3WithAdd(pParse, 0, yymsp[0].minor.yy385); /*A-overwrites-X*/ + yymsp[0].minor.yy59 = sqlite3WithAdd(pParse, 0, yymsp[0].minor.yy67); /*A-overwrites-X*/ } break; - case 310: /* wqlist ::= wqlist COMMA wqitem */ + case 313: /* wqlist ::= wqlist COMMA wqitem */ { - yymsp[-2].minor.yy521 = sqlite3WithAdd(pParse, yymsp[-2].minor.yy521, yymsp[0].minor.yy385); + yymsp[-2].minor.yy59 = sqlite3WithAdd(pParse, yymsp[-2].minor.yy59, yymsp[0].minor.yy67); } break; - case 311: /* windowdefn_list ::= windowdefn_list COMMA windowdefn */ + case 314: /* windowdefn_list ::= windowdefn_list COMMA windowdefn */ { - assert( yymsp[0].minor.yy41!=0 ); - sqlite3WindowChain(pParse, yymsp[0].minor.yy41, yymsp[-2].minor.yy41); - yymsp[0].minor.yy41->pNextWin = yymsp[-2].minor.yy41; - yylhsminor.yy41 = yymsp[0].minor.yy41; + assert( yymsp[0].minor.yy211!=0 ); + sqlite3WindowChain(pParse, yymsp[0].minor.yy211, yymsp[-2].minor.yy211); + yymsp[0].minor.yy211->pNextWin = yymsp[-2].minor.yy211; + yylhsminor.yy211 = yymsp[0].minor.yy211; } - yymsp[-2].minor.yy41 = yylhsminor.yy41; + yymsp[-2].minor.yy211 = yylhsminor.yy211; break; - case 312: /* windowdefn ::= nm AS LP window RP */ + case 315: /* windowdefn ::= nm AS LP window RP */ { - if( ALWAYS(yymsp[-1].minor.yy41) ){ - yymsp[-1].minor.yy41->zName = sqlite3DbStrNDup(pParse->db, yymsp[-4].minor.yy0.z, yymsp[-4].minor.yy0.n); + if( ALWAYS(yymsp[-1].minor.yy211) ){ + yymsp[-1].minor.yy211->zName = sqlite3DbStrNDup(pParse->db, yymsp[-4].minor.yy0.z, yymsp[-4].minor.yy0.n); } - yylhsminor.yy41 = yymsp[-1].minor.yy41; + yylhsminor.yy211 = yymsp[-1].minor.yy211; } - yymsp[-4].minor.yy41 = yylhsminor.yy41; + yymsp[-4].minor.yy211 = yylhsminor.yy211; break; - case 313: /* window ::= PARTITION BY nexprlist orderby_opt frame_opt */ + case 316: /* window ::= PARTITION BY nexprlist orderby_opt frame_opt */ { - yymsp[-4].minor.yy41 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy41, yymsp[-2].minor.yy322, yymsp[-1].minor.yy322, 0); + yymsp[-4].minor.yy211 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy211, yymsp[-2].minor.yy14, yymsp[-1].minor.yy14, 0); } break; - case 314: /* window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ + case 317: /* window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ { - yylhsminor.yy41 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy41, yymsp[-2].minor.yy322, yymsp[-1].minor.yy322, &yymsp[-5].minor.yy0); + yylhsminor.yy211 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy211, yymsp[-2].minor.yy14, yymsp[-1].minor.yy14, &yymsp[-5].minor.yy0); } - yymsp[-5].minor.yy41 = yylhsminor.yy41; + yymsp[-5].minor.yy211 = yylhsminor.yy211; break; - case 315: /* window ::= ORDER BY sortlist frame_opt */ + case 318: /* window ::= ORDER BY sortlist frame_opt */ { - yymsp[-3].minor.yy41 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy41, 0, yymsp[-1].minor.yy322, 0); + yymsp[-3].minor.yy211 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy211, 0, yymsp[-1].minor.yy14, 0); } break; - case 316: /* window ::= nm ORDER BY sortlist frame_opt */ + case 319: /* window ::= nm ORDER BY sortlist frame_opt */ { - yylhsminor.yy41 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy41, 0, yymsp[-1].minor.yy322, &yymsp[-4].minor.yy0); + yylhsminor.yy211 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy211, 0, yymsp[-1].minor.yy14, &yymsp[-4].minor.yy0); } - yymsp[-4].minor.yy41 = yylhsminor.yy41; + yymsp[-4].minor.yy211 = yylhsminor.yy211; break; - case 317: /* window ::= nm frame_opt */ + case 320: /* window ::= nm frame_opt */ { - yylhsminor.yy41 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy41, 0, 0, &yymsp[-1].minor.yy0); + yylhsminor.yy211 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy211, 0, 0, &yymsp[-1].minor.yy0); } - yymsp[-1].minor.yy41 = yylhsminor.yy41; + yymsp[-1].minor.yy211 = yylhsminor.yy211; break; - case 318: /* frame_opt ::= */ + case 321: /* frame_opt ::= */ { - yymsp[1].minor.yy41 = sqlite3WindowAlloc(pParse, 0, TK_UNBOUNDED, 0, TK_CURRENT, 0, 0); + yymsp[1].minor.yy211 = sqlite3WindowAlloc(pParse, 0, TK_UNBOUNDED, 0, TK_CURRENT, 0, 0); } break; - case 319: /* frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ + case 322: /* frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ { - yylhsminor.yy41 = sqlite3WindowAlloc(pParse, yymsp[-2].minor.yy394, yymsp[-1].minor.yy595.eType, yymsp[-1].minor.yy595.pExpr, TK_CURRENT, 0, yymsp[0].minor.yy516); + yylhsminor.yy211 = sqlite3WindowAlloc(pParse, yymsp[-2].minor.yy144, yymsp[-1].minor.yy509.eType, yymsp[-1].minor.yy509.pExpr, TK_CURRENT, 0, yymsp[0].minor.yy462); } - yymsp[-2].minor.yy41 = yylhsminor.yy41; + yymsp[-2].minor.yy211 = yylhsminor.yy211; break; - case 320: /* frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ + case 323: /* frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ { - yylhsminor.yy41 = sqlite3WindowAlloc(pParse, yymsp[-5].minor.yy394, yymsp[-3].minor.yy595.eType, yymsp[-3].minor.yy595.pExpr, yymsp[-1].minor.yy595.eType, yymsp[-1].minor.yy595.pExpr, yymsp[0].minor.yy516); + yylhsminor.yy211 = sqlite3WindowAlloc(pParse, yymsp[-5].minor.yy144, yymsp[-3].minor.yy509.eType, yymsp[-3].minor.yy509.pExpr, yymsp[-1].minor.yy509.eType, yymsp[-1].minor.yy509.pExpr, yymsp[0].minor.yy462); } - yymsp[-5].minor.yy41 = yylhsminor.yy41; + yymsp[-5].minor.yy211 = yylhsminor.yy211; break; - case 322: /* frame_bound_s ::= frame_bound */ - case 324: /* frame_bound_e ::= frame_bound */ yytestcase(yyruleno==324); -{yylhsminor.yy595 = yymsp[0].minor.yy595;} - yymsp[0].minor.yy595 = yylhsminor.yy595; + case 325: /* frame_bound_s ::= frame_bound */ + case 327: /* frame_bound_e ::= frame_bound */ yytestcase(yyruleno==327); +{yylhsminor.yy509 = yymsp[0].minor.yy509;} + yymsp[0].minor.yy509 = yylhsminor.yy509; break; - case 323: /* frame_bound_s ::= UNBOUNDED PRECEDING */ - case 325: /* frame_bound_e ::= UNBOUNDED FOLLOWING */ yytestcase(yyruleno==325); - case 327: /* frame_bound ::= CURRENT ROW */ yytestcase(yyruleno==327); -{yylhsminor.yy595.eType = yymsp[-1].major; yylhsminor.yy595.pExpr = 0;} - yymsp[-1].minor.yy595 = yylhsminor.yy595; + case 326: /* frame_bound_s ::= UNBOUNDED PRECEDING */ + case 328: /* frame_bound_e ::= UNBOUNDED FOLLOWING */ yytestcase(yyruleno==328); + case 330: /* frame_bound ::= CURRENT ROW */ yytestcase(yyruleno==330); +{yylhsminor.yy509.eType = yymsp[-1].major; yylhsminor.yy509.pExpr = 0;} + yymsp[-1].minor.yy509 = yylhsminor.yy509; break; - case 326: /* frame_bound ::= expr PRECEDING|FOLLOWING */ -{yylhsminor.yy595.eType = yymsp[0].major; yylhsminor.yy595.pExpr = yymsp[-1].minor.yy528;} - yymsp[-1].minor.yy595 = yylhsminor.yy595; + case 329: /* frame_bound ::= expr PRECEDING|FOLLOWING */ +{yylhsminor.yy509.eType = yymsp[0].major; yylhsminor.yy509.pExpr = yymsp[-1].minor.yy454;} + yymsp[-1].minor.yy509 = yylhsminor.yy509; break; - case 328: /* frame_exclude_opt ::= */ -{yymsp[1].minor.yy516 = 0;} + case 331: /* frame_exclude_opt ::= */ +{yymsp[1].minor.yy462 = 0;} break; - case 329: /* frame_exclude_opt ::= EXCLUDE frame_exclude */ -{yymsp[-1].minor.yy516 = yymsp[0].minor.yy516;} + case 332: /* frame_exclude_opt ::= EXCLUDE frame_exclude */ +{yymsp[-1].minor.yy462 = yymsp[0].minor.yy462;} break; - case 330: /* frame_exclude ::= NO OTHERS */ - case 331: /* frame_exclude ::= CURRENT ROW */ yytestcase(yyruleno==331); -{yymsp[-1].minor.yy516 = yymsp[-1].major; /*A-overwrites-X*/} + case 333: /* frame_exclude ::= NO OTHERS */ + case 334: /* frame_exclude ::= CURRENT ROW */ yytestcase(yyruleno==334); +{yymsp[-1].minor.yy462 = yymsp[-1].major; /*A-overwrites-X*/} break; - case 332: /* frame_exclude ::= GROUP|TIES */ -{yymsp[0].minor.yy516 = yymsp[0].major; /*A-overwrites-X*/} + case 335: /* frame_exclude ::= GROUP|TIES */ +{yymsp[0].minor.yy462 = yymsp[0].major; /*A-overwrites-X*/} break; - case 333: /* window_clause ::= WINDOW windowdefn_list */ -{ yymsp[-1].minor.yy41 = yymsp[0].minor.yy41; } + case 336: /* window_clause ::= WINDOW windowdefn_list */ +{ yymsp[-1].minor.yy211 = yymsp[0].minor.yy211; } break; - case 334: /* filter_over ::= filter_clause over_clause */ + case 337: /* filter_over ::= filter_clause over_clause */ { - if( yymsp[0].minor.yy41 ){ - yymsp[0].minor.yy41->pFilter = yymsp[-1].minor.yy528; + if( yymsp[0].minor.yy211 ){ + yymsp[0].minor.yy211->pFilter = yymsp[-1].minor.yy454; }else{ - sqlite3ExprDelete(pParse->db, yymsp[-1].minor.yy528); + sqlite3ExprDelete(pParse->db, yymsp[-1].minor.yy454); } - yylhsminor.yy41 = yymsp[0].minor.yy41; + yylhsminor.yy211 = yymsp[0].minor.yy211; } - yymsp[-1].minor.yy41 = yylhsminor.yy41; + yymsp[-1].minor.yy211 = yylhsminor.yy211; break; - case 335: /* filter_over ::= over_clause */ + case 338: /* filter_over ::= over_clause */ { - yylhsminor.yy41 = yymsp[0].minor.yy41; + yylhsminor.yy211 = yymsp[0].minor.yy211; } - yymsp[0].minor.yy41 = yylhsminor.yy41; + yymsp[0].minor.yy211 = yylhsminor.yy211; break; - case 336: /* filter_over ::= filter_clause */ + case 339: /* filter_over ::= filter_clause */ { - yylhsminor.yy41 = (Window*)sqlite3DbMallocZero(pParse->db, sizeof(Window)); - if( yylhsminor.yy41 ){ - yylhsminor.yy41->eFrmType = TK_FILTER; - yylhsminor.yy41->pFilter = yymsp[0].minor.yy528; + yylhsminor.yy211 = (Window*)sqlite3DbMallocZero(pParse->db, sizeof(Window)); + if( yylhsminor.yy211 ){ + yylhsminor.yy211->eFrmType = TK_FILTER; + yylhsminor.yy211->pFilter = yymsp[0].minor.yy454; }else{ - sqlite3ExprDelete(pParse->db, yymsp[0].minor.yy528); + sqlite3ExprDelete(pParse->db, yymsp[0].minor.yy454); } } - yymsp[0].minor.yy41 = yylhsminor.yy41; + yymsp[0].minor.yy211 = yylhsminor.yy211; break; - case 337: /* over_clause ::= OVER LP window RP */ + case 340: /* over_clause ::= OVER LP window RP */ { - yymsp[-3].minor.yy41 = yymsp[-1].minor.yy41; - assert( yymsp[-3].minor.yy41!=0 ); + yymsp[-3].minor.yy211 = yymsp[-1].minor.yy211; + assert( yymsp[-3].minor.yy211!=0 ); } break; - case 338: /* over_clause ::= OVER nm */ + case 341: /* over_clause ::= OVER nm */ { - yymsp[-1].minor.yy41 = (Window*)sqlite3DbMallocZero(pParse->db, sizeof(Window)); - if( yymsp[-1].minor.yy41 ){ - yymsp[-1].minor.yy41->zName = sqlite3DbStrNDup(pParse->db, yymsp[0].minor.yy0.z, yymsp[0].minor.yy0.n); + yymsp[-1].minor.yy211 = (Window*)sqlite3DbMallocZero(pParse->db, sizeof(Window)); + if( yymsp[-1].minor.yy211 ){ + yymsp[-1].minor.yy211->zName = sqlite3DbStrNDup(pParse->db, yymsp[0].minor.yy0.z, yymsp[0].minor.yy0.n); } } break; - case 339: /* filter_clause ::= FILTER LP WHERE expr RP */ -{ yymsp[-4].minor.yy528 = yymsp[-1].minor.yy528; } + case 342: /* filter_clause ::= FILTER LP WHERE expr RP */ +{ yymsp[-4].minor.yy454 = yymsp[-1].minor.yy454; } + break; + case 343: /* term ::= QNUMBER */ +{ + yylhsminor.yy454=tokenExpr(pParse,yymsp[0].major,yymsp[0].minor.yy0); + sqlite3DequoteNumber(pParse, yylhsminor.yy454); +} + yymsp[0].minor.yy454 = yylhsminor.yy454; break; default: - /* (340) input ::= cmdlist */ yytestcase(yyruleno==340); - /* (341) cmdlist ::= cmdlist ecmd */ yytestcase(yyruleno==341); - /* (342) cmdlist ::= ecmd (OPTIMIZED OUT) */ assert(yyruleno!=342); - /* (343) ecmd ::= SEMI */ yytestcase(yyruleno==343); - /* (344) ecmd ::= cmdx SEMI */ yytestcase(yyruleno==344); - /* (345) ecmd ::= explain cmdx SEMI (NEVER REDUCES) */ assert(yyruleno!=345); - /* (346) trans_opt ::= */ yytestcase(yyruleno==346); - /* (347) trans_opt ::= TRANSACTION */ yytestcase(yyruleno==347); - /* (348) trans_opt ::= TRANSACTION nm */ yytestcase(yyruleno==348); - /* (349) savepoint_opt ::= SAVEPOINT */ yytestcase(yyruleno==349); - /* (350) savepoint_opt ::= */ yytestcase(yyruleno==350); - /* (351) cmd ::= create_table create_table_args */ yytestcase(yyruleno==351); - /* (352) table_option_set ::= table_option (OPTIMIZED OUT) */ assert(yyruleno!=352); - /* (353) columnlist ::= columnlist COMMA columnname carglist */ yytestcase(yyruleno==353); - /* (354) columnlist ::= columnname carglist */ yytestcase(yyruleno==354); - /* (355) nm ::= ID|INDEXED|JOIN_KW */ yytestcase(yyruleno==355); - /* (356) nm ::= STRING */ yytestcase(yyruleno==356); - /* (357) typetoken ::= typename */ yytestcase(yyruleno==357); - /* (358) typename ::= ID|STRING */ yytestcase(yyruleno==358); - /* (359) signed ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=359); - /* (360) signed ::= minus_num (OPTIMIZED OUT) */ assert(yyruleno!=360); - /* (361) carglist ::= carglist ccons */ yytestcase(yyruleno==361); - /* (362) carglist ::= */ yytestcase(yyruleno==362); - /* (363) ccons ::= NULL onconf */ yytestcase(yyruleno==363); - /* (364) ccons ::= GENERATED ALWAYS AS generated */ yytestcase(yyruleno==364); - /* (365) ccons ::= AS generated */ yytestcase(yyruleno==365); - /* (366) conslist_opt ::= COMMA conslist */ yytestcase(yyruleno==366); - /* (367) conslist ::= conslist tconscomma tcons */ yytestcase(yyruleno==367); - /* (368) conslist ::= tcons (OPTIMIZED OUT) */ assert(yyruleno!=368); - /* (369) tconscomma ::= */ yytestcase(yyruleno==369); - /* (370) defer_subclause_opt ::= defer_subclause (OPTIMIZED OUT) */ assert(yyruleno!=370); - /* (371) resolvetype ::= raisetype (OPTIMIZED OUT) */ assert(yyruleno!=371); - /* (372) selectnowith ::= oneselect (OPTIMIZED OUT) */ assert(yyruleno!=372); - /* (373) oneselect ::= values */ yytestcase(yyruleno==373); - /* (374) sclp ::= selcollist COMMA */ yytestcase(yyruleno==374); - /* (375) as ::= ID|STRING */ yytestcase(yyruleno==375); - /* (376) indexed_opt ::= indexed_by (OPTIMIZED OUT) */ assert(yyruleno!=376); - /* (377) returning ::= */ yytestcase(yyruleno==377); - /* (378) expr ::= term (OPTIMIZED OUT) */ assert(yyruleno!=378); - /* (379) likeop ::= LIKE_KW|MATCH */ yytestcase(yyruleno==379); - /* (380) case_operand ::= expr */ yytestcase(yyruleno==380); - /* (381) exprlist ::= nexprlist */ yytestcase(yyruleno==381); - /* (382) nmnum ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=382); - /* (383) nmnum ::= nm (OPTIMIZED OUT) */ assert(yyruleno!=383); - /* (384) nmnum ::= ON */ yytestcase(yyruleno==384); - /* (385) nmnum ::= DELETE */ yytestcase(yyruleno==385); - /* (386) nmnum ::= DEFAULT */ yytestcase(yyruleno==386); - /* (387) plus_num ::= INTEGER|FLOAT */ yytestcase(yyruleno==387); - /* (388) foreach_clause ::= */ yytestcase(yyruleno==388); - /* (389) foreach_clause ::= FOR EACH ROW */ yytestcase(yyruleno==389); - /* (390) trnm ::= nm */ yytestcase(yyruleno==390); - /* (391) tridxby ::= */ yytestcase(yyruleno==391); - /* (392) database_kw_opt ::= DATABASE */ yytestcase(yyruleno==392); - /* (393) database_kw_opt ::= */ yytestcase(yyruleno==393); - /* (394) kwcolumn_opt ::= */ yytestcase(yyruleno==394); - /* (395) kwcolumn_opt ::= COLUMNKW */ yytestcase(yyruleno==395); - /* (396) vtabarglist ::= vtabarg */ yytestcase(yyruleno==396); - /* (397) vtabarglist ::= vtabarglist COMMA vtabarg */ yytestcase(yyruleno==397); - /* (398) vtabarg ::= vtabarg vtabargtoken */ yytestcase(yyruleno==398); - /* (399) anylist ::= */ yytestcase(yyruleno==399); - /* (400) anylist ::= anylist LP anylist RP */ yytestcase(yyruleno==400); - /* (401) anylist ::= anylist ANY */ yytestcase(yyruleno==401); - /* (402) with ::= */ yytestcase(yyruleno==402); - /* (403) windowdefn_list ::= windowdefn (OPTIMIZED OUT) */ assert(yyruleno!=403); - /* (404) window ::= frame_opt (OPTIMIZED OUT) */ assert(yyruleno!=404); + /* (344) input ::= cmdlist */ yytestcase(yyruleno==344); + /* (345) cmdlist ::= cmdlist ecmd */ yytestcase(yyruleno==345); + /* (346) cmdlist ::= ecmd (OPTIMIZED OUT) */ assert(yyruleno!=346); + /* (347) ecmd ::= SEMI */ yytestcase(yyruleno==347); + /* (348) ecmd ::= cmdx SEMI */ yytestcase(yyruleno==348); + /* (349) ecmd ::= explain cmdx SEMI (NEVER REDUCES) */ assert(yyruleno!=349); + /* (350) trans_opt ::= */ yytestcase(yyruleno==350); + /* (351) trans_opt ::= TRANSACTION */ yytestcase(yyruleno==351); + /* (352) trans_opt ::= TRANSACTION nm */ yytestcase(yyruleno==352); + /* (353) savepoint_opt ::= SAVEPOINT */ yytestcase(yyruleno==353); + /* (354) savepoint_opt ::= */ yytestcase(yyruleno==354); + /* (355) cmd ::= create_table create_table_args */ yytestcase(yyruleno==355); + /* (356) table_option_set ::= table_option (OPTIMIZED OUT) */ assert(yyruleno!=356); + /* (357) columnlist ::= columnlist COMMA columnname carglist */ yytestcase(yyruleno==357); + /* (358) columnlist ::= columnname carglist */ yytestcase(yyruleno==358); + /* (359) nm ::= ID|INDEXED|JOIN_KW */ yytestcase(yyruleno==359); + /* (360) nm ::= STRING */ yytestcase(yyruleno==360); + /* (361) typetoken ::= typename */ yytestcase(yyruleno==361); + /* (362) typename ::= ID|STRING */ yytestcase(yyruleno==362); + /* (363) signed ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=363); + /* (364) signed ::= minus_num (OPTIMIZED OUT) */ assert(yyruleno!=364); + /* (365) carglist ::= carglist ccons */ yytestcase(yyruleno==365); + /* (366) carglist ::= */ yytestcase(yyruleno==366); + /* (367) ccons ::= NULL onconf */ yytestcase(yyruleno==367); + /* (368) ccons ::= GENERATED ALWAYS AS generated */ yytestcase(yyruleno==368); + /* (369) ccons ::= AS generated */ yytestcase(yyruleno==369); + /* (370) conslist_opt ::= COMMA conslist */ yytestcase(yyruleno==370); + /* (371) conslist ::= conslist tconscomma tcons */ yytestcase(yyruleno==371); + /* (372) conslist ::= tcons (OPTIMIZED OUT) */ assert(yyruleno!=372); + /* (373) tconscomma ::= */ yytestcase(yyruleno==373); + /* (374) defer_subclause_opt ::= defer_subclause (OPTIMIZED OUT) */ assert(yyruleno!=374); + /* (375) resolvetype ::= raisetype (OPTIMIZED OUT) */ assert(yyruleno!=375); + /* (376) selectnowith ::= oneselect (OPTIMIZED OUT) */ assert(yyruleno!=376); + /* (377) oneselect ::= values */ yytestcase(yyruleno==377); + /* (378) sclp ::= selcollist COMMA */ yytestcase(yyruleno==378); + /* (379) as ::= ID|STRING */ yytestcase(yyruleno==379); + /* (380) indexed_opt ::= indexed_by (OPTIMIZED OUT) */ assert(yyruleno!=380); + /* (381) returning ::= */ yytestcase(yyruleno==381); + /* (382) expr ::= term (OPTIMIZED OUT) */ assert(yyruleno!=382); + /* (383) likeop ::= LIKE_KW|MATCH */ yytestcase(yyruleno==383); + /* (384) case_operand ::= expr */ yytestcase(yyruleno==384); + /* (385) exprlist ::= nexprlist */ yytestcase(yyruleno==385); + /* (386) nmnum ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=386); + /* (387) nmnum ::= nm (OPTIMIZED OUT) */ assert(yyruleno!=387); + /* (388) nmnum ::= ON */ yytestcase(yyruleno==388); + /* (389) nmnum ::= DELETE */ yytestcase(yyruleno==389); + /* (390) nmnum ::= DEFAULT */ yytestcase(yyruleno==390); + /* (391) plus_num ::= INTEGER|FLOAT */ yytestcase(yyruleno==391); + /* (392) foreach_clause ::= */ yytestcase(yyruleno==392); + /* (393) foreach_clause ::= FOR EACH ROW */ yytestcase(yyruleno==393); + /* (394) trnm ::= nm */ yytestcase(yyruleno==394); + /* (395) tridxby ::= */ yytestcase(yyruleno==395); + /* (396) database_kw_opt ::= DATABASE */ yytestcase(yyruleno==396); + /* (397) database_kw_opt ::= */ yytestcase(yyruleno==397); + /* (398) kwcolumn_opt ::= */ yytestcase(yyruleno==398); + /* (399) kwcolumn_opt ::= COLUMNKW */ yytestcase(yyruleno==399); + /* (400) vtabarglist ::= vtabarg */ yytestcase(yyruleno==400); + /* (401) vtabarglist ::= vtabarglist COMMA vtabarg */ yytestcase(yyruleno==401); + /* (402) vtabarg ::= vtabarg vtabargtoken */ yytestcase(yyruleno==402); + /* (403) anylist ::= */ yytestcase(yyruleno==403); + /* (404) anylist ::= anylist LP anylist RP */ yytestcase(yyruleno==404); + /* (405) anylist ::= anylist ANY */ yytestcase(yyruleno==405); + /* (406) with ::= */ yytestcase(yyruleno==406); + /* (407) windowdefn_list ::= windowdefn (OPTIMIZED OUT) */ assert(yyruleno!=407); + /* (408) window ::= frame_opt (OPTIMIZED OUT) */ assert(yyruleno!=408); break; /********** End reduce actions ************************************************/ }; @@ -176211,19 +177839,12 @@ SQLITE_PRIVATE void sqlite3Parser( (int)(yypParser->yytos - yypParser->yystack)); } #endif -#if YYSTACKDEPTH>0 if( yypParser->yytos>=yypParser->yystackEnd ){ - yyStackOverflow(yypParser); - break; - } -#else - if( yypParser->yytos>=&yypParser->yystack[yypParser->yystksz-1] ){ if( yyGrowStack(yypParser) ){ yyStackOverflow(yypParser); break; } } -#endif } yyact = yy_reduce(yypParser,yyruleno,yymajor,yyminor sqlite3ParserCTX_PARAM); }else if( yyact <= YY_MAX_SHIFTREDUCE ){ @@ -177294,27 +178915,58 @@ SQLITE_PRIVATE int sqlite3GetToken(const unsigned char *z, int *tokenType){ *tokenType = TK_INTEGER; #ifndef SQLITE_OMIT_HEX_INTEGER if( z[0]=='0' && (z[1]=='x' || z[1]=='X') && sqlite3Isxdigit(z[2]) ){ - for(i=3; sqlite3Isxdigit(z[i]); i++){} - return i; - } + for(i=3; 1; i++){ + if( sqlite3Isxdigit(z[i])==0 ){ + if( z[i]==SQLITE_DIGIT_SEPARATOR ){ + *tokenType = TK_QNUMBER; + }else{ + break; + } + } + } + }else #endif - for(i=0; sqlite3Isdigit(z[i]); i++){} + { + for(i=0; 1; i++){ + if( sqlite3Isdigit(z[i])==0 ){ + if( z[i]==SQLITE_DIGIT_SEPARATOR ){ + *tokenType = TK_QNUMBER; + }else{ + break; + } + } + } #ifndef SQLITE_OMIT_FLOATING_POINT - if( z[i]=='.' ){ - i++; - while( sqlite3Isdigit(z[i]) ){ i++; } - *tokenType = TK_FLOAT; - } - if( (z[i]=='e' || z[i]=='E') && - ( sqlite3Isdigit(z[i+1]) - || ((z[i+1]=='+' || z[i+1]=='-') && sqlite3Isdigit(z[i+2])) - ) - ){ - i += 2; - while( sqlite3Isdigit(z[i]) ){ i++; } - *tokenType = TK_FLOAT; - } + if( z[i]=='.' ){ + if( *tokenType==TK_INTEGER ) *tokenType = TK_FLOAT; + for(i++; 1; i++){ + if( sqlite3Isdigit(z[i])==0 ){ + if( z[i]==SQLITE_DIGIT_SEPARATOR ){ + *tokenType = TK_QNUMBER; + }else{ + break; + } + } + } + } + if( (z[i]=='e' || z[i]=='E') && + ( sqlite3Isdigit(z[i+1]) + || ((z[i+1]=='+' || z[i+1]=='-') && sqlite3Isdigit(z[i+2])) + ) + ){ + if( *tokenType==TK_INTEGER ) *tokenType = TK_FLOAT; + for(i+=2; 1; i++){ + if( sqlite3Isdigit(z[i])==0 ){ + if( z[i]==SQLITE_DIGIT_SEPARATOR ){ + *tokenType = TK_QNUMBER; + }else{ + break; + } + } + } + } #endif + } while( IdChar(z[i]) ){ *tokenType = TK_ILLEGAL; i++; @@ -177479,10 +179131,13 @@ SQLITE_PRIVATE int sqlite3RunParser(Parse *pParse, const char *zSql){ if( tokenType>=TK_WINDOW ){ assert( tokenType==TK_SPACE || tokenType==TK_OVER || tokenType==TK_FILTER || tokenType==TK_ILLEGAL || tokenType==TK_WINDOW + || tokenType==TK_QNUMBER ); #else if( tokenType>=TK_SPACE ){ - assert( tokenType==TK_SPACE || tokenType==TK_ILLEGAL ); + assert( tokenType==TK_SPACE || tokenType==TK_ILLEGAL + || tokenType==TK_QNUMBER + ); #endif /* SQLITE_OMIT_WINDOWFUNC */ if( AtomicLoad(&db->u1.isInterrupted) ){ pParse->rc = SQLITE_INTERRUPT; @@ -177515,7 +179170,7 @@ SQLITE_PRIVATE int sqlite3RunParser(Parse *pParse, const char *zSql){ assert( n==6 ); tokenType = analyzeFilterKeyword((const u8*)&zSql[6], lastTokenParsed); #endif /* SQLITE_OMIT_WINDOWFUNC */ - }else{ + }else if( tokenType!=TK_QNUMBER ){ Token x; x.z = zSql; x.n = n; @@ -178866,6 +180521,18 @@ SQLITE_API int sqlite3_config(int op, ...){ } #endif /* SQLITE_OMIT_DESERIALIZE */ + case SQLITE_CONFIG_ROWID_IN_VIEW: { + int *pVal = va_arg(ap,int*); +#ifdef SQLITE_ALLOW_ROWID_IN_VIEW + if( 0==*pVal ) sqlite3GlobalConfig.mNoVisibleRowid = TF_NoVisibleRowid; + if( 1==*pVal ) sqlite3GlobalConfig.mNoVisibleRowid = 0; + *pVal = (sqlite3GlobalConfig.mNoVisibleRowid==0); +#else + *pVal = 0; +#endif + break; + } + default: { rc = SQLITE_ERROR; break; @@ -188498,22 +190165,24 @@ static int fts3IntegrityMethod( char **pzErr /* Write error message here */ ){ Fts3Table *p = (Fts3Table*)pVtab; - int rc; + int rc = SQLITE_OK; int bOk = 0; UNUSED_PARAMETER(isQuick); rc = sqlite3Fts3IntegrityCheck(p, &bOk); - assert( rc!=SQLITE_CORRUPT_VTAB || bOk==0 ); - if( rc!=SQLITE_OK && rc!=SQLITE_CORRUPT_VTAB ){ + assert( rc!=SQLITE_CORRUPT_VTAB ); + if( rc==SQLITE_ERROR || (rc&0xFF)==SQLITE_CORRUPT ){ *pzErr = sqlite3_mprintf("unable to validate the inverted index for" " FTS%d table %s.%s: %s", p->bFts4 ? 4 : 3, zSchema, zTabname, sqlite3_errstr(rc)); - }else if( bOk==0 ){ + if( *pzErr ) rc = SQLITE_OK; + }else if( rc==SQLITE_OK && bOk==0 ){ *pzErr = sqlite3_mprintf("malformed inverted index for FTS%d table %s.%s", p->bFts4 ? 4 : 3, zSchema, zTabname); + if( *pzErr==0 ) rc = SQLITE_NOMEM; } sqlite3Fts3SegmentsClose(p); - return SQLITE_OK; + return rc; } @@ -200175,7 +201844,12 @@ SQLITE_PRIVATE int sqlite3Fts3IntegrityCheck(Fts3Table *p, int *pbOk){ sqlite3_finalize(pStmt); } - *pbOk = (rc==SQLITE_OK && cksum1==cksum2); + if( rc==SQLITE_CORRUPT_VTAB ){ + rc = SQLITE_OK; + *pbOk = 0; + }else{ + *pbOk = (rc==SQLITE_OK && cksum1==cksum2); + } return rc; } @@ -201081,7 +202755,7 @@ static void fts3SnippetDetails( } mCover |= mPhrase; - for(j=0; jnToken; j++){ + for(j=0; jnToken && jnSnippet; j++){ mHighlight |= (mPos>>j); } @@ -203742,7 +205416,6 @@ static void jsonAppendRawNZ(JsonString *p, const char *zIn, u32 N){ } } - /* Append formatted text (not to exceed N bytes) to the JsonString. */ static void jsonPrintf(int N, JsonString *p, const char *zFormat, ...){ @@ -203800,6 +205473,40 @@ static void jsonAppendSeparator(JsonString *p){ jsonAppendChar(p, ','); } +/* c is a control character. Append the canonical JSON representation +** of that control character to p. +** +** This routine assumes that the output buffer has already been enlarged +** sufficiently to hold the worst-case encoding plus a nul terminator. +*/ +static void jsonAppendControlChar(JsonString *p, u8 c){ + static const char aSpecial[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 'b', 't', 'n', 0, 'f', 'r', 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }; + assert( sizeof(aSpecial)==32 ); + assert( aSpecial['\b']=='b' ); + assert( aSpecial['\f']=='f' ); + assert( aSpecial['\n']=='n' ); + assert( aSpecial['\r']=='r' ); + assert( aSpecial['\t']=='t' ); + assert( c>=0 && cnUsed+7 <= p->nAlloc ); + if( aSpecial[c] ){ + p->zBuf[p->nUsed] = '\\'; + p->zBuf[p->nUsed+1] = aSpecial[c]; + p->nUsed += 2; + }else{ + p->zBuf[p->nUsed] = '\\'; + p->zBuf[p->nUsed+1] = 'u'; + p->zBuf[p->nUsed+2] = '0'; + p->zBuf[p->nUsed+3] = '0'; + p->zBuf[p->nUsed+4] = "0123456789abcdef"[c>>4]; + p->zBuf[p->nUsed+5] = "0123456789abcdef"[c&0xf]; + p->nUsed += 6; + } +} + /* Append the N-byte string in zIn to the end of the JsonString string ** under construction. Enclose the string in double-quotes ("...") and ** escape any double-quotes or backslash characters contained within the @@ -203859,35 +205566,14 @@ static void jsonAppendString(JsonString *p, const char *zIn, u32 N){ } c = z[0]; if( c=='"' || c=='\\' ){ - json_simple_escape: if( (p->nUsed+N+3 > p->nAlloc) && jsonStringGrow(p,N+3)!=0 ) return; p->zBuf[p->nUsed++] = '\\'; p->zBuf[p->nUsed++] = c; }else if( c=='\'' ){ p->zBuf[p->nUsed++] = c; }else{ - static const char aSpecial[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 'b', 't', 'n', 0, 'f', 'r', 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - }; - assert( sizeof(aSpecial)==32 ); - assert( aSpecial['\b']=='b' ); - assert( aSpecial['\f']=='f' ); - assert( aSpecial['\n']=='n' ); - assert( aSpecial['\r']=='r' ); - assert( aSpecial['\t']=='t' ); - assert( c>=0 && cnUsed+N+7 > p->nAlloc) && jsonStringGrow(p,N+7)!=0 ) return; - p->zBuf[p->nUsed++] = '\\'; - p->zBuf[p->nUsed++] = 'u'; - p->zBuf[p->nUsed++] = '0'; - p->zBuf[p->nUsed++] = '0'; - p->zBuf[p->nUsed++] = "0123456789abcdef"[c>>4]; - p->zBuf[p->nUsed++] = "0123456789abcdef"[c&0xf]; + jsonAppendControlChar(p, c); } z++; N--; @@ -204588,7 +206274,10 @@ static u32 jsonbValidityCheck( if( !jsonIsOk[z[j]] && z[j]!='\'' ){ if( z[j]=='"' ){ if( x==JSONB_TEXTJ ) return j+1; - }else if( z[j]!='\\' || j+1>=k ){ + }else if( z[j]<=0x1f ){ + /* Control characters in JSON5 string literals are ok */ + if( x==JSONB_TEXTJ ) return j+1; + }else if( NEVER(z[j]!='\\') || j+1>=k ){ return j+1; }else if( strchr("\"\\/bfnrt",z[j+1])!=0 ){ j++; @@ -204786,6 +206475,7 @@ static int jsonTranslateTextToBlob(JsonParse *pParse, u32 i){ case '[': { /* Parse array */ iThis = pParse->nBlob; + assert( i<=(u32)pParse->nJson ); jsonBlobAppendNode(pParse, JSONB_ARRAY, pParse->nJson - i, 0); iStart = pParse->nBlob; if( pParse->oom ) return -1; @@ -204882,9 +206572,14 @@ static int jsonTranslateTextToBlob(JsonParse *pParse, u32 i){ return -1; } }else if( c<=0x1f ){ - /* Control characters are not allowed in strings */ - pParse->iErr = j; - return -1; + if( c==0 ){ + pParse->iErr = j; + return -1; + } + /* Control characters are not allowed in canonical JSON string + ** literals, but are allowed in JSON5 string literals. */ + opcode = JSONB_TEXT5; + pParse->hasNonstd = 1; }else if( c=='"' ){ opcode = JSONB_TEXT5; } @@ -205100,6 +206795,7 @@ static int jsonTranslateTextToBlob(JsonParse *pParse, u32 i){ return i+4; } /* fall-through into the default case that checks for NaN */ + /* no break */ deliberate_fall_through } default: { u32 k; @@ -205184,6 +206880,10 @@ static void jsonReturnStringAsBlob(JsonString *pStr){ JsonParse px; memset(&px, 0, sizeof(px)); jsonStringTerminate(pStr); + if( pStr->eErr ){ + sqlite3_result_error_nomem(pStr->pCtx); + return; + } px.zJson = pStr->zBuf; px.nJson = pStr->nUsed; px.db = sqlite3_context_db_handle(pStr->pCtx); @@ -205364,7 +207064,7 @@ static u32 jsonTranslateBlobToText( zIn = (const char*)&pParse->aBlob[i+n]; jsonAppendChar(pOut, '"'); while( sz2>0 ){ - for(k=0; k0 ){ jsonAppendRawNZ(pOut, zIn, k); if( k>=sz2 ){ @@ -205379,6 +207079,13 @@ static u32 jsonTranslateBlobToText( sz2--; continue; } + if( zIn[0]<=0x1f ){ + if( pOut->nUsed+7>pOut->nAlloc && jsonStringGrow(pOut,7) ) break; + jsonAppendControlChar(pOut, zIn[0]); + zIn++; + sz2--; + continue; + } assert( zIn[0]=='\\' ); assert( sz2>=1 ); if( sz2<2 ){ @@ -205481,6 +207188,112 @@ static u32 jsonTranslateBlobToText( return i+n+sz; } +/* Context for recursion of json_pretty() +*/ +typedef struct JsonPretty JsonPretty; +struct JsonPretty { + JsonParse *pParse; /* The BLOB being rendered */ + JsonString *pOut; /* Generate pretty output into this string */ + const char *zIndent; /* Use this text for indentation */ + u32 szIndent; /* Bytes in zIndent[] */ + u32 nIndent; /* Current level of indentation */ +}; + +/* Append indentation to the pretty JSON under construction */ +static void jsonPrettyIndent(JsonPretty *pPretty){ + u32 jj; + for(jj=0; jjnIndent; jj++){ + jsonAppendRaw(pPretty->pOut, pPretty->zIndent, pPretty->szIndent); + } +} + +/* +** Translate the binary JSONB representation of JSON beginning at +** pParse->aBlob[i] into a JSON text string. Append the JSON +** text onto the end of pOut. Return the index in pParse->aBlob[] +** of the first byte past the end of the element that is translated. +** +** This is a variant of jsonTranslateBlobToText() that "pretty-prints" +** the output. Extra whitespace is inserted to make the JSON easier +** for humans to read. +** +** If an error is detected in the BLOB input, the pOut->eErr flag +** might get set to JSTRING_MALFORMED. But not all BLOB input errors +** are detected. So a malformed JSONB input might either result +** in an error, or in incorrect JSON. +** +** The pOut->eErr JSTRING_OOM flag is set on a OOM. +*/ +static u32 jsonTranslateBlobToPrettyText( + JsonPretty *pPretty, /* Pretty-printing context */ + u32 i /* Start rendering at this index */ +){ + u32 sz, n, j, iEnd; + const JsonParse *pParse = pPretty->pParse; + JsonString *pOut = pPretty->pOut; + n = jsonbPayloadSize(pParse, i, &sz); + if( n==0 ){ + pOut->eErr |= JSTRING_MALFORMED; + return pParse->nBlob+1; + } + switch( pParse->aBlob[i] & 0x0f ){ + case JSONB_ARRAY: { + j = i+n; + iEnd = j+sz; + jsonAppendChar(pOut, '['); + if( jnIndent++; + while( pOut->eErr==0 ){ + jsonPrettyIndent(pPretty); + j = jsonTranslateBlobToPrettyText(pPretty, j); + if( j>=iEnd ) break; + jsonAppendRawNZ(pOut, ",\n", 2); + } + jsonAppendChar(pOut, '\n'); + pPretty->nIndent--; + jsonPrettyIndent(pPretty); + } + jsonAppendChar(pOut, ']'); + i = iEnd; + break; + } + case JSONB_OBJECT: { + j = i+n; + iEnd = j+sz; + jsonAppendChar(pOut, '{'); + if( jnIndent++; + while( pOut->eErr==0 ){ + jsonPrettyIndent(pPretty); + j = jsonTranslateBlobToText(pParse, j, pOut); + if( j>iEnd ){ + pOut->eErr |= JSTRING_MALFORMED; + break; + } + jsonAppendRawNZ(pOut, ": ", 2); + j = jsonTranslateBlobToPrettyText(pPretty, j); + if( j>=iEnd ) break; + jsonAppendRawNZ(pOut, ",\n", 2); + } + jsonAppendChar(pOut, '\n'); + pPretty->nIndent--; + jsonPrettyIndent(pPretty); + } + jsonAppendChar(pOut, '}'); + i = iEnd; + break; + } + default: { + i = jsonTranslateBlobToText(pParse, i, pOut); + break; + } + } + return i; +} + + /* Return true if the input pJson ** ** For performance reasons, this routine does not do a detailed check of the @@ -206509,8 +208322,9 @@ static JsonParse *jsonParseFuncArg( } p->zJson = (char*)sqlite3_value_text(pArg); p->nJson = sqlite3_value_bytes(pArg); + if( db->mallocFailed ) goto json_pfa_oom; if( p->nJson==0 ) goto json_pfa_malformed; - if( NEVER(p->zJson==0) ) goto json_pfa_oom; + assert( p->zJson!=0 ); if( jsonConvertTextToBlob(p, (flgs & JSON_KEEPERROR) ? 0 : ctx) ){ if( flgs & JSON_KEEPERROR ){ p->nErr = 1; @@ -206676,10 +208490,10 @@ static void jsonDebugPrintBlob( if( sz==0 && x<=JSONB_FALSE ){ sqlite3_str_append(pOut, "\n", 1); }else{ - u32 i; + u32 j; sqlite3_str_appendall(pOut, ": \""); - for(i=iStart+n; iaBlob[i]; + for(j=iStart+n; jaBlob[j]; if( c<0x20 || c>=0x7f ) c = '.'; sqlite3_str_append(pOut, (char*)&c, 1); } @@ -206730,11 +208544,12 @@ static void jsonParseFunc( if( p==0 ) return; if( argc==1 ){ jsonDebugPrintBlob(p, 0, p->nBlob, 0, &out); - sqlite3_result_text64(ctx, out.zText, out.nChar, SQLITE_DYNAMIC, SQLITE_UTF8); + sqlite3_result_text64(ctx,out.zText,out.nChar,SQLITE_TRANSIENT,SQLITE_UTF8); }else{ jsonShowParse(p); } jsonParseFree(p); + sqlite3_str_reset(&out); } #endif /* SQLITE_DEBUG */ @@ -206833,13 +208648,6 @@ static void jsonArrayLengthFunc( jsonParseFree(p); } -/* True if the string is all digits */ -static int jsonAllDigits(const char *z, int n){ - int i; - for(i=0; i $[NUMBER] // Not PG. Purely for convenience */ jsonStringInit(&jx, ctx); - if( jsonAllDigits(zPath, nPath) ){ + if( sqlite3_value_type(argv[i])==SQLITE_INTEGER ){ jsonAppendRawNZ(&jx, "[", 1); jsonAppendRaw(&jx, zPath, nPath); jsonAppendRawNZ(&jx, "]", 2); @@ -207398,6 +209206,40 @@ static void jsonTypeFunc( jsonParseFree(p); } +/* +** json_pretty(JSON) +** json_pretty(JSON, INDENT) +** +** Return text that is a pretty-printed rendering of the input JSON. +** If the argument is not valid JSON, return NULL. +** +** The INDENT argument is text that is used for indentation. If omitted, +** it defaults to four spaces (the same as PostgreSQL). +*/ +static void jsonPrettyFunc( + sqlite3_context *ctx, + int argc, + sqlite3_value **argv +){ + JsonString s; /* The output string */ + JsonPretty x; /* Pretty printing context */ + + memset(&x, 0, sizeof(x)); + x.pParse = jsonParseFuncArg(ctx, argv[0], 0); + if( x.pParse==0 ) return; + x.pOut = &s; + jsonStringInit(&s, ctx); + if( argc==1 || (x.zIndent = (const char*)sqlite3_value_text(argv[1]))==0 ){ + x.zIndent = " "; + x.szIndent = 4; + }else{ + x.szIndent = (u32)strlen(x.zIndent); + } + jsonTranslateBlobToPrettyText(&x, 0); + jsonReturnString(&s, 0, 0); + jsonParseFree(x.pParse); +} + /* ** json_valid(JSON) ** json_valid(JSON, FLAGS) @@ -208087,6 +209929,9 @@ static int jsonEachColumn( case JEACH_VALUE: { u32 i = jsonSkipLabel(p); jsonReturnFromBlob(&p->sParse, i, ctx, 1); + if( (p->sParse.aBlob[i] & 0x0f)>=JSONB_ARRAY ){ + sqlite3_result_subtype(ctx, JSON_SUBTYPE); + } break; } case JEACH_TYPE: { @@ -208133,9 +209978,9 @@ static int jsonEachColumn( case JEACH_JSON: { if( p->sParse.zJson==0 ){ sqlite3_result_blob(ctx, p->sParse.aBlob, p->sParse.nBlob, - SQLITE_STATIC); + SQLITE_TRANSIENT); }else{ - sqlite3_result_text(ctx, p->sParse.zJson, -1, SQLITE_STATIC); + sqlite3_result_text(ctx, p->sParse.zJson, -1, SQLITE_TRANSIENT); } break; } @@ -208409,6 +210254,8 @@ SQLITE_PRIVATE void sqlite3RegisterJsonFunctions(void){ JFUNCTION(jsonb_object, -1,0,1, 1,1,0, jsonObjectFunc), JFUNCTION(json_patch, 2,1,1, 0,0,0, jsonPatchFunc), JFUNCTION(jsonb_patch, 2,1,0, 0,1,0, jsonPatchFunc), + JFUNCTION(json_pretty, 1,1,0, 0,0,0, jsonPrettyFunc), + JFUNCTION(json_pretty, 2,1,0, 0,0,0, jsonPrettyFunc), JFUNCTION(json_quote, 1,0,1, 1,0,0, jsonQuoteFunc), JFUNCTION(json_remove, -1,1,1, 0,0,0, jsonRemoveFunc), JFUNCTION(jsonb_remove, -1,1,0, 0,1,0, jsonRemoveFunc), @@ -209161,11 +211008,9 @@ static RtreeNode *nodeNew(Rtree *pRtree, RtreeNode *pParent){ ** Clear the Rtree.pNodeBlob object */ static void nodeBlobReset(Rtree *pRtree){ - if( pRtree->pNodeBlob && pRtree->inWrTrans==0 && pRtree->nCursor==0 ){ - sqlite3_blob *pBlob = pRtree->pNodeBlob; - pRtree->pNodeBlob = 0; - sqlite3_blob_close(pBlob); - } + sqlite3_blob *pBlob = pRtree->pNodeBlob; + pRtree->pNodeBlob = 0; + sqlite3_blob_close(pBlob); } /* @@ -209209,7 +211054,6 @@ static int nodeAcquire( &pRtree->pNodeBlob); } if( rc ){ - nodeBlobReset(pRtree); *ppNode = 0; /* If unable to open an sqlite3_blob on the desired row, that can only ** be because the shadow tables hold erroneous data. */ @@ -209269,6 +211113,7 @@ static int nodeAcquire( } *ppNode = pNode; }else{ + nodeBlobReset(pRtree); if( pNode ){ pRtree->nNodeRef--; sqlite3_free(pNode); @@ -209413,6 +211258,7 @@ static void nodeGetCoord( int iCoord, /* Which coordinate to extract */ RtreeCoord *pCoord /* OUT: Space to write result to */ ){ + assert( iCellzData[12 + pRtree->nBytesPerCell*iCell + 4*iCoord], pCoord); } @@ -209602,7 +211448,9 @@ static int rtreeClose(sqlite3_vtab_cursor *cur){ sqlite3_finalize(pCsr->pReadAux); sqlite3_free(pCsr); pRtree->nCursor--; - nodeBlobReset(pRtree); + if( pRtree->nCursor==0 && pRtree->inWrTrans==0 ){ + nodeBlobReset(pRtree); + } return SQLITE_OK; } @@ -210187,7 +212035,11 @@ static int rtreeRowid(sqlite3_vtab_cursor *pVtabCursor, sqlite_int64 *pRowid){ int rc = SQLITE_OK; RtreeNode *pNode = rtreeNodeOfFirstSearchPoint(pCsr, &rc); if( rc==SQLITE_OK && ALWAYS(p) ){ - *pRowid = nodeGetRowid(RTREE_OF_CURSOR(pCsr), pNode, p->iCell); + if( p->iCell>=NCELL(pNode) ){ + rc = SQLITE_ABORT; + }else{ + *pRowid = nodeGetRowid(RTREE_OF_CURSOR(pCsr), pNode, p->iCell); + } } return rc; } @@ -210205,6 +212057,7 @@ static int rtreeColumn(sqlite3_vtab_cursor *cur, sqlite3_context *ctx, int i){ if( rc ) return rc; if( NEVER(p==0) ) return SQLITE_OK; + if( p->iCell>=NCELL(pNode) ) return SQLITE_ABORT; if( i==0 ){ sqlite3_result_int64(ctx, nodeGetRowid(pRtree, pNode, p->iCell)); }else if( i<=pRtree->nDim2 ){ @@ -210302,6 +212155,8 @@ static int deserializeGeometry(sqlite3_value *pValue, RtreeConstraint *pCons){ return SQLITE_OK; } +SQLITE_PRIVATE int sqlite3IntFloatCompare(i64,double); + /* ** Rtree virtual table module xFilter method. */ @@ -210331,7 +212186,8 @@ static int rtreeFilter( i64 iNode = 0; int eType = sqlite3_value_numeric_type(argv[0]); if( eType==SQLITE_INTEGER - || (eType==SQLITE_FLOAT && sqlite3_value_double(argv[0])==iRowid) + || (eType==SQLITE_FLOAT + && 0==sqlite3IntFloatCompare(iRowid,sqlite3_value_double(argv[0]))) ){ rc = findLeafNode(pRtree, iRowid, &pLeaf, &iNode); }else{ @@ -211687,7 +213543,7 @@ static int rtreeUpdate( static int rtreeBeginTransaction(sqlite3_vtab *pVtab){ Rtree *pRtree = (Rtree *)pVtab; assert( pRtree->inWrTrans==0 ); - pRtree->inWrTrans++; + pRtree->inWrTrans = 1; return SQLITE_OK; } @@ -211701,6 +213557,9 @@ static int rtreeEndTransaction(sqlite3_vtab *pVtab){ nodeBlobReset(pRtree); return SQLITE_OK; } +static int rtreeRollback(sqlite3_vtab *pVtab){ + return rtreeEndTransaction(pVtab); +} /* ** The xRename method for rtree module virtual tables. @@ -211819,7 +213678,7 @@ static sqlite3_module rtreeModule = { rtreeBeginTransaction, /* xBegin - begin transaction */ rtreeEndTransaction, /* xSync - sync transaction */ rtreeEndTransaction, /* xCommit - commit transaction */ - rtreeEndTransaction, /* xRollback - rollback transaction */ + rtreeRollback, /* xRollback - rollback transaction */ 0, /* xFindFunction - function overloading */ rtreeRename, /* xRename - rename the table */ rtreeSavepoint, /* xSavepoint */ @@ -215238,7 +217097,7 @@ static void icuLoadCollation( UCollator *pUCollator; /* ICU library collation object */ int rc; /* Return code from sqlite3_create_collation_x() */ - assert(nArg==2); + assert(nArg==2 || nArg==3); (void)nArg; /* Unused parameter */ zLocale = (const char *)sqlite3_value_text(apArg[0]); zName = (const char *)sqlite3_value_text(apArg[1]); @@ -215253,7 +217112,39 @@ static void icuLoadCollation( return; } assert(p); - + if(nArg==3){ + const char *zOption = (const char*)sqlite3_value_text(apArg[2]); + static const struct { + const char *zName; + UColAttributeValue val; + } aStrength[] = { + { "PRIMARY", UCOL_PRIMARY }, + { "SECONDARY", UCOL_SECONDARY }, + { "TERTIARY", UCOL_TERTIARY }, + { "DEFAULT", UCOL_DEFAULT_STRENGTH }, + { "QUARTERNARY", UCOL_QUATERNARY }, + { "IDENTICAL", UCOL_IDENTICAL }, + }; + unsigned int i; + for(i=0; i=sizeof(aStrength)/sizeof(aStrength[0]) ){ + sqlite3_str *pStr = sqlite3_str_new(sqlite3_context_db_handle(p)); + sqlite3_str_appendf(pStr, + "unknown collation strength \"%s\" - should be one of:", + zOption); + for(i=0; ipTblIter, &p->zErrmsg); pIter->zTbl = 0; + pIter->zDataTbl = 0; }else{ pIter->zTbl = (const char*)sqlite3_column_text(pIter->pTblIter, 0); pIter->zDataTbl = (const char*)sqlite3_column_text(pIter->pTblIter,1); @@ -219206,7 +221100,7 @@ static i64 rbuShmChecksum(sqlite3rbu *p){ u32 volatile *ptr; p->rc = pDb->pMethods->xShmMap(pDb, 0, 32*1024, 0, (void volatile**)&ptr); if( p->rc==SQLITE_OK ){ - iRet = ((i64)ptr[10] << 32) + ptr[11]; + iRet = (i64)(((u64)ptr[10] << 32) + ptr[11]); } } return iRet; @@ -226677,14 +228571,14 @@ static int sessionChangesetNextOne( p->rc = sessionInputBuffer(&p->in, 2); if( p->rc!=SQLITE_OK ) return p->rc; + sessionDiscardData(&p->in); + p->in.iCurrent = p->in.iNext; + /* If the iterator is already at the end of the changeset, return DONE. */ if( p->in.iNext>=p->in.nData ){ return SQLITE_DONE; } - sessionDiscardData(&p->in); - p->in.iCurrent = p->in.iNext; - op = p->in.aData[p->in.iNext++]; while( op=='T' || op=='P' ){ if( pbNew ) *pbNew = 1; @@ -228419,6 +230313,7 @@ struct sqlite3_changegroup { int rc; /* Error code */ int bPatch; /* True to accumulate patchsets */ SessionTable *pList; /* List of tables in current patch */ + SessionBuffer rec; sqlite3 *db; /* Configured by changegroup_schema() */ char *zDb; /* Configured by changegroup_schema() */ @@ -228717,108 +230612,128 @@ static int sessionChangesetExtendRecord( } /* -** Add all changes in the changeset traversed by the iterator passed as -** the first argument to the changegroup hash tables. +** Locate or create a SessionTable object that may be used to add the +** change currently pointed to by iterator pIter to changegroup pGrp. +** If successful, set output variable (*ppTab) to point to the table +** object and return SQLITE_OK. Otherwise, if some error occurs, return +** an SQLite error code and leave (*ppTab) set to NULL. */ -static int sessionChangesetToHash( - sqlite3_changeset_iter *pIter, /* Iterator to read from */ - sqlite3_changegroup *pGrp, /* Changegroup object to add changeset to */ - int bRebase /* True if hash table is for rebasing */ +static int sessionChangesetFindTable( + sqlite3_changegroup *pGrp, + const char *zTab, + sqlite3_changeset_iter *pIter, + SessionTable **ppTab ){ - u8 *aRec; - int nRec; int rc = SQLITE_OK; SessionTable *pTab = 0; - SessionBuffer rec = {0, 0, 0}; - - while( SQLITE_ROW==sessionChangesetNext(pIter, &aRec, &nRec, 0) ){ - const char *zNew; - int nCol; - int op; - int iHash; - int bIndirect; - SessionChange *pChange; - SessionChange *pExist = 0; - SessionChange **pp; - - /* Ensure that only changesets, or only patchsets, but not a mixture - ** of both, are being combined. It is an error to try to combine a - ** changeset and a patchset. */ - if( pGrp->pList==0 ){ - pGrp->bPatch = pIter->bPatchset; - }else if( pIter->bPatchset!=pGrp->bPatch ){ - rc = SQLITE_ERROR; - break; - } + int nTab = (int)strlen(zTab); + u8 *abPK = 0; + int nCol = 0; - sqlite3changeset_op(pIter, &zNew, &nCol, &op, &bIndirect); - if( !pTab || sqlite3_stricmp(zNew, pTab->zName) ){ - /* Search the list for a matching table */ - int nNew = (int)strlen(zNew); - u8 *abPK; + *ppTab = 0; + sqlite3changeset_pk(pIter, &abPK, &nCol); - sqlite3changeset_pk(pIter, &abPK, 0); - for(pTab = pGrp->pList; pTab; pTab=pTab->pNext){ - if( 0==sqlite3_strnicmp(pTab->zName, zNew, nNew+1) ) break; - } - if( !pTab ){ - SessionTable **ppTab; + /* Search the list for an existing table */ + for(pTab = pGrp->pList; pTab; pTab=pTab->pNext){ + if( 0==sqlite3_strnicmp(pTab->zName, zTab, nTab+1) ) break; + } - pTab = sqlite3_malloc64(sizeof(SessionTable) + nCol + nNew+1); - if( !pTab ){ - rc = SQLITE_NOMEM; - break; - } - memset(pTab, 0, sizeof(SessionTable)); - pTab->nCol = nCol; - pTab->abPK = (u8*)&pTab[1]; - memcpy(pTab->abPK, abPK, nCol); - pTab->zName = (char*)&pTab->abPK[nCol]; - memcpy(pTab->zName, zNew, nNew+1); - - if( pGrp->db ){ - pTab->nCol = 0; - rc = sessionInitTable(0, pTab, pGrp->db, pGrp->zDb); - if( rc ){ - assert( pTab->azCol==0 ); - sqlite3_free(pTab); - break; - } - } + /* If one was not found above, create a new table now */ + if( !pTab ){ + SessionTable **ppNew; - /* The new object must be linked on to the end of the list, not - ** simply added to the start of it. This is to ensure that the - ** tables within the output of sqlite3changegroup_output() are in - ** the right order. */ - for(ppTab=&pGrp->pList; *ppTab; ppTab=&(*ppTab)->pNext); - *ppTab = pTab; - } + pTab = sqlite3_malloc64(sizeof(SessionTable) + nCol + nTab+1); + if( !pTab ){ + return SQLITE_NOMEM; + } + memset(pTab, 0, sizeof(SessionTable)); + pTab->nCol = nCol; + pTab->abPK = (u8*)&pTab[1]; + memcpy(pTab->abPK, abPK, nCol); + pTab->zName = (char*)&pTab->abPK[nCol]; + memcpy(pTab->zName, zTab, nTab+1); - if( !sessionChangesetCheckCompat(pTab, nCol, abPK) ){ - rc = SQLITE_SCHEMA; - break; + if( pGrp->db ){ + pTab->nCol = 0; + rc = sessionInitTable(0, pTab, pGrp->db, pGrp->zDb); + if( rc ){ + assert( pTab->azCol==0 ); + sqlite3_free(pTab); + return rc; } } - if( nColnCol ){ - assert( pGrp->db ); - rc = sessionChangesetExtendRecord(pGrp, pTab, nCol, op, aRec, nRec, &rec); - if( rc ) break; - aRec = rec.aBuf; - nRec = rec.nBuf; - } + /* The new object must be linked on to the end of the list, not + ** simply added to the start of it. This is to ensure that the + ** tables within the output of sqlite3changegroup_output() are in + ** the right order. */ + for(ppNew=&pGrp->pList; *ppNew; ppNew=&(*ppNew)->pNext); + *ppNew = pTab; + } - if( sessionGrowHash(0, pIter->bPatchset, pTab) ){ - rc = SQLITE_NOMEM; - break; - } + /* Check that the table is compatible. */ + if( !sessionChangesetCheckCompat(pTab, nCol, abPK) ){ + rc = SQLITE_SCHEMA; + } + + *ppTab = pTab; + return rc; +} + +/* +** Add the change currently indicated by iterator pIter to the hash table +** belonging to changegroup pGrp. +*/ +static int sessionOneChangeToHash( + sqlite3_changegroup *pGrp, + sqlite3_changeset_iter *pIter, + int bRebase +){ + int rc = SQLITE_OK; + int nCol = 0; + int op = 0; + int iHash = 0; + int bIndirect = 0; + SessionChange *pChange = 0; + SessionChange *pExist = 0; + SessionChange **pp = 0; + SessionTable *pTab = 0; + u8 *aRec = &pIter->in.aData[pIter->in.iCurrent + 2]; + int nRec = (pIter->in.iNext - pIter->in.iCurrent) - 2; + + /* Ensure that only changesets, or only patchsets, but not a mixture + ** of both, are being combined. It is an error to try to combine a + ** changeset and a patchset. */ + if( pGrp->pList==0 ){ + pGrp->bPatch = pIter->bPatchset; + }else if( pIter->bPatchset!=pGrp->bPatch ){ + rc = SQLITE_ERROR; + } + + if( rc==SQLITE_OK ){ + const char *zTab = 0; + sqlite3changeset_op(pIter, &zTab, &nCol, &op, &bIndirect); + rc = sessionChangesetFindTable(pGrp, zTab, pIter, &pTab); + } + + if( rc==SQLITE_OK && nColnCol ){ + SessionBuffer *pBuf = &pGrp->rec; + rc = sessionChangesetExtendRecord(pGrp, pTab, nCol, op, aRec, nRec, pBuf); + aRec = pBuf->aBuf; + nRec = pBuf->nBuf; + assert( pGrp->db ); + } + + if( rc==SQLITE_OK && sessionGrowHash(0, pIter->bPatchset, pTab) ){ + rc = SQLITE_NOMEM; + } + + if( rc==SQLITE_OK ){ + /* Search for existing entry. If found, remove it from the hash table. + ** Code below may link it back in. */ iHash = sessionChangeHash( pTab, (pIter->bPatchset && op==SQLITE_DELETE), aRec, pTab->nChange ); - - /* Search for existing entry. If found, remove it from the hash table. - ** Code below may link it back in. - */ for(pp=&pTab->apChange[iHash]; *pp; pp=&(*pp)->pNext){ int bPkOnly1 = 0; int bPkOnly2 = 0; @@ -228833,19 +230748,41 @@ static int sessionChangesetToHash( break; } } + } + if( rc==SQLITE_OK ){ rc = sessionChangeMerge(pTab, bRebase, pIter->bPatchset, pExist, op, bIndirect, aRec, nRec, &pChange ); - if( rc ) break; - if( pChange ){ - pChange->pNext = pTab->apChange[iHash]; - pTab->apChange[iHash] = pChange; - pTab->nEntry++; - } + } + if( rc==SQLITE_OK && pChange ){ + pChange->pNext = pTab->apChange[iHash]; + pTab->apChange[iHash] = pChange; + pTab->nEntry++; + } + + if( rc==SQLITE_OK ) rc = pIter->rc; + return rc; +} + +/* +** Add all changes in the changeset traversed by the iterator passed as +** the first argument to the changegroup hash tables. +*/ +static int sessionChangesetToHash( + sqlite3_changeset_iter *pIter, /* Iterator to read from */ + sqlite3_changegroup *pGrp, /* Changegroup object to add changeset to */ + int bRebase /* True if hash table is for rebasing */ +){ + u8 *aRec; + int nRec; + int rc = SQLITE_OK; + + while( SQLITE_ROW==(sessionChangesetNext(pIter, &aRec, &nRec, 0)) ){ + rc = sessionOneChangeToHash(pGrp, pIter, bRebase); + if( rc!=SQLITE_OK ) break; } - sqlite3_free(rec.aBuf); if( rc==SQLITE_OK ) rc = pIter->rc; return rc; } @@ -228973,6 +230910,23 @@ SQLITE_API int sqlite3changegroup_add(sqlite3_changegroup *pGrp, int nData, void return rc; } +/* +** Add a single change to a changeset-group. +*/ +SQLITE_API int sqlite3changegroup_add_change( + sqlite3_changegroup *pGrp, + sqlite3_changeset_iter *pIter +){ + if( pIter->in.iCurrent==pIter->in.iNext + || pIter->rc!=SQLITE_OK + || pIter->bInvert + ){ + /* Iterator does not point to any valid entry or is an INVERT iterator. */ + return SQLITE_ERROR; + } + return sessionOneChangeToHash(pGrp, pIter, 0); +} + /* ** Obtain a buffer containing a changeset representing the concatenation ** of all changesets added to the group so far. @@ -229022,6 +230976,7 @@ SQLITE_API void sqlite3changegroup_delete(sqlite3_changegroup *pGrp){ if( pGrp ){ sqlite3_free(pGrp->zDb); sessionDeleteTable(0, pGrp->pList); + sqlite3_free(pGrp->rec.aBuf); sqlite3_free(pGrp); } } @@ -229423,6 +231378,7 @@ SQLITE_API int sqlite3rebaser_rebase_strm( SQLITE_API void sqlite3rebaser_delete(sqlite3_rebaser *p){ if( p ){ sessionDeleteTable(0, p->grp.pList); + sqlite3_free(p->grp.rec.aBuf); sqlite3_free(p); } } @@ -229520,8 +231476,8 @@ struct Fts5PhraseIter { ** EXTENSION API FUNCTIONS ** ** xUserData(pFts): -** Return a copy of the context pointer the extension function was -** registered with. +** Return a copy of the pUserData pointer passed to the xCreateFunction() +** API when the extension function was registered. ** ** xColumnTotalSize(pFts, iCol, pnToken): ** If parameter iCol is less than zero, set output variable *pnToken @@ -231117,6 +233073,9 @@ static void sqlite3Fts5UnicodeAscii(u8*, u8*); ** sqlite3Fts5ParserARG_STORE Code to store %extra_argument into fts5yypParser ** sqlite3Fts5ParserARG_FETCH Code to extract %extra_argument from fts5yypParser ** sqlite3Fts5ParserCTX_* As sqlite3Fts5ParserARG_ except for %extra_context +** fts5YYREALLOC Name of the realloc() function to use +** fts5YYFREE Name of the free() function to use +** fts5YYDYNSTACK True if stack space should be extended on heap ** fts5YYERRORSYMBOL is the code number of the error symbol. If not ** defined, then do no error processing. ** fts5YYNSTATE the combined number of states. @@ -231130,6 +233089,8 @@ static void sqlite3Fts5UnicodeAscii(u8*, u8*); ** fts5YY_NO_ACTION The fts5yy_action[] code for no-op ** fts5YY_MIN_REDUCE Minimum value for reduce actions ** fts5YY_MAX_REDUCE Maximum value for reduce actions +** fts5YY_MIN_DSTRCTR Minimum symbol value that has a destructor +** fts5YY_MAX_DSTRCTR Maximum symbol value that has a destructor */ #ifndef INTERFACE # define INTERFACE 1 @@ -231156,6 +233117,9 @@ typedef union { #define sqlite3Fts5ParserARG_PARAM ,pParse #define sqlite3Fts5ParserARG_FETCH Fts5Parse *pParse=fts5yypParser->pParse; #define sqlite3Fts5ParserARG_STORE fts5yypParser->pParse=pParse; +#define fts5YYREALLOC realloc +#define fts5YYFREE free +#define fts5YYDYNSTACK 0 #define sqlite3Fts5ParserCTX_SDECL #define sqlite3Fts5ParserCTX_PDECL #define sqlite3Fts5ParserCTX_PARAM @@ -231173,6 +233137,8 @@ typedef union { #define fts5YY_NO_ACTION 82 #define fts5YY_MIN_REDUCE 83 #define fts5YY_MAX_REDUCE 110 +#define fts5YY_MIN_DSTRCTR 16 +#define fts5YY_MAX_DSTRCTR 24 /************* End control #defines *******************************************/ #define fts5YY_NLOOKAHEAD ((int)(sizeof(fts5yy_lookahead)/sizeof(fts5yy_lookahead[0]))) @@ -231188,6 +233154,22 @@ typedef union { # define fts5yytestcase(X) #endif +/* Macro to determine if stack space has the ability to grow using +** heap memory. +*/ +#if fts5YYSTACKDEPTH<=0 || fts5YYDYNSTACK +# define fts5YYGROWABLESTACK 1 +#else +# define fts5YYGROWABLESTACK 0 +#endif + +/* Guarantee a minimum number of initial stack slots. +*/ +#if fts5YYSTACKDEPTH<=0 +# undef fts5YYSTACKDEPTH +# define fts5YYSTACKDEPTH 2 /* Need a minimum stack size */ +#endif + /* Next are the tables used to determine what action to take based on the ** current state and lookahead token. These tables are used to implement @@ -231348,14 +233330,9 @@ struct fts5yyParser { #endif sqlite3Fts5ParserARG_SDECL /* A place to hold %extra_argument */ sqlite3Fts5ParserCTX_SDECL /* A place to hold %extra_context */ -#if fts5YYSTACKDEPTH<=0 - int fts5yystksz; /* Current side of the stack */ - fts5yyStackEntry *fts5yystack; /* The parser's stack */ - fts5yyStackEntry fts5yystk0; /* First stack entry */ -#else - fts5yyStackEntry fts5yystack[fts5YYSTACKDEPTH]; /* The parser's stack */ - fts5yyStackEntry *fts5yystackEnd; /* Last entry in the stack */ -#endif + fts5yyStackEntry *fts5yystackEnd; /* Last entry in the stack */ + fts5yyStackEntry *fts5yystack; /* The parser stack */ + fts5yyStackEntry fts5yystk0[fts5YYSTACKDEPTH]; /* Initial stack space */ }; typedef struct fts5yyParser fts5yyParser; @@ -231462,37 +233439,45 @@ static const char *const fts5yyRuleName[] = { #endif /* NDEBUG */ -#if fts5YYSTACKDEPTH<=0 +#if fts5YYGROWABLESTACK /* ** Try to increase the size of the parser stack. Return the number ** of errors. Return 0 on success. */ static int fts5yyGrowStack(fts5yyParser *p){ + int oldSize = 1 + (int)(p->fts5yystackEnd - p->fts5yystack); int newSize; int idx; fts5yyStackEntry *pNew; - newSize = p->fts5yystksz*2 + 100; - idx = p->fts5yytos ? (int)(p->fts5yytos - p->fts5yystack) : 0; - if( p->fts5yystack==&p->fts5yystk0 ){ - pNew = malloc(newSize*sizeof(pNew[0])); - if( pNew ) pNew[0] = p->fts5yystk0; + newSize = oldSize*2 + 100; + idx = (int)(p->fts5yytos - p->fts5yystack); + if( p->fts5yystack==p->fts5yystk0 ){ + pNew = fts5YYREALLOC(0, newSize*sizeof(pNew[0])); + if( pNew==0 ) return 1; + memcpy(pNew, p->fts5yystack, oldSize*sizeof(pNew[0])); }else{ - pNew = realloc(p->fts5yystack, newSize*sizeof(pNew[0])); + pNew = fts5YYREALLOC(p->fts5yystack, newSize*sizeof(pNew[0])); + if( pNew==0 ) return 1; } - if( pNew ){ - p->fts5yystack = pNew; - p->fts5yytos = &p->fts5yystack[idx]; + p->fts5yystack = pNew; + p->fts5yytos = &p->fts5yystack[idx]; #ifndef NDEBUG - if( fts5yyTraceFILE ){ - fprintf(fts5yyTraceFILE,"%sStack grows from %d to %d entries.\n", - fts5yyTracePrompt, p->fts5yystksz, newSize); - } -#endif - p->fts5yystksz = newSize; + if( fts5yyTraceFILE ){ + fprintf(fts5yyTraceFILE,"%sStack grows from %d to %d entries.\n", + fts5yyTracePrompt, oldSize, newSize); } - return pNew==0; +#endif + p->fts5yystackEnd = &p->fts5yystack[newSize-1]; + return 0; } +#endif /* fts5YYGROWABLESTACK */ + +#if !fts5YYGROWABLESTACK +/* For builds that do no have a growable stack, fts5yyGrowStack always +** returns an error. +*/ +# define fts5yyGrowStack(X) 1 #endif /* Datatype of the argument to the memory allocated passed as the @@ -231512,24 +233497,14 @@ static void sqlite3Fts5ParserInit(void *fts5yypRawParser sqlite3Fts5ParserCTX_PD #ifdef fts5YYTRACKMAXSTACKDEPTH fts5yypParser->fts5yyhwm = 0; #endif -#if fts5YYSTACKDEPTH<=0 - fts5yypParser->fts5yytos = NULL; - fts5yypParser->fts5yystack = NULL; - fts5yypParser->fts5yystksz = 0; - if( fts5yyGrowStack(fts5yypParser) ){ - fts5yypParser->fts5yystack = &fts5yypParser->fts5yystk0; - fts5yypParser->fts5yystksz = 1; - } -#endif + fts5yypParser->fts5yystack = fts5yypParser->fts5yystk0; + fts5yypParser->fts5yystackEnd = &fts5yypParser->fts5yystack[fts5YYSTACKDEPTH-1]; #ifndef fts5YYNOERRORRECOVERY fts5yypParser->fts5yyerrcnt = -1; #endif fts5yypParser->fts5yytos = fts5yypParser->fts5yystack; fts5yypParser->fts5yystack[0].stateno = 0; fts5yypParser->fts5yystack[0].major = 0; -#if fts5YYSTACKDEPTH>0 - fts5yypParser->fts5yystackEnd = &fts5yypParser->fts5yystack[fts5YYSTACKDEPTH-1]; -#endif } #ifndef sqlite3Fts5Parser_ENGINEALWAYSONSTACK @@ -231643,9 +233618,26 @@ static void fts5yy_pop_parser_stack(fts5yyParser *pParser){ */ static void sqlite3Fts5ParserFinalize(void *p){ fts5yyParser *pParser = (fts5yyParser*)p; - while( pParser->fts5yytos>pParser->fts5yystack ) fts5yy_pop_parser_stack(pParser); -#if fts5YYSTACKDEPTH<=0 - if( pParser->fts5yystack!=&pParser->fts5yystk0 ) free(pParser->fts5yystack); + + /* In-lined version of calling fts5yy_pop_parser_stack() for each + ** element left in the stack */ + fts5yyStackEntry *fts5yytos = pParser->fts5yytos; + while( fts5yytos>pParser->fts5yystack ){ +#ifndef NDEBUG + if( fts5yyTraceFILE ){ + fprintf(fts5yyTraceFILE,"%sPopping %s\n", + fts5yyTracePrompt, + fts5yyTokenName[fts5yytos->major]); + } +#endif + if( fts5yytos->major>=fts5YY_MIN_DSTRCTR ){ + fts5yy_destructor(pParser, fts5yytos->major, &fts5yytos->minor); + } + fts5yytos--; + } + +#if fts5YYGROWABLESTACK + if( pParser->fts5yystack!=pParser->fts5yystk0 ) fts5YYFREE(pParser->fts5yystack); #endif } @@ -231872,25 +233864,19 @@ static void fts5yy_shift( assert( fts5yypParser->fts5yyhwm == (int)(fts5yypParser->fts5yytos - fts5yypParser->fts5yystack) ); } #endif -#if fts5YYSTACKDEPTH>0 - if( fts5yypParser->fts5yytos>fts5yypParser->fts5yystackEnd ){ - fts5yypParser->fts5yytos--; - fts5yyStackOverflow(fts5yypParser); - return; - } -#else - if( fts5yypParser->fts5yytos>=&fts5yypParser->fts5yystack[fts5yypParser->fts5yystksz] ){ + fts5yytos = fts5yypParser->fts5yytos; + if( fts5yytos>fts5yypParser->fts5yystackEnd ){ if( fts5yyGrowStack(fts5yypParser) ){ fts5yypParser->fts5yytos--; fts5yyStackOverflow(fts5yypParser); return; } + fts5yytos = fts5yypParser->fts5yytos; + assert( fts5yytos <= fts5yypParser->fts5yystackEnd ); } -#endif if( fts5yyNewState > fts5YY_MAX_SHIFT ){ fts5yyNewState += fts5YY_MIN_REDUCE - fts5YY_MIN_SHIFTREDUCE; } - fts5yytos = fts5yypParser->fts5yytos; fts5yytos->stateno = fts5yyNewState; fts5yytos->major = fts5yyMajor; fts5yytos->minor.fts5yy0 = fts5yyMinor; @@ -232327,19 +234313,12 @@ static void sqlite3Fts5Parser( (int)(fts5yypParser->fts5yytos - fts5yypParser->fts5yystack)); } #endif -#if fts5YYSTACKDEPTH>0 if( fts5yypParser->fts5yytos>=fts5yypParser->fts5yystackEnd ){ - fts5yyStackOverflow(fts5yypParser); - break; - } -#else - if( fts5yypParser->fts5yytos>=&fts5yypParser->fts5yystack[fts5yypParser->fts5yystksz-1] ){ if( fts5yyGrowStack(fts5yypParser) ){ fts5yyStackOverflow(fts5yypParser); break; } } -#endif } fts5yyact = fts5yy_reduce(fts5yypParser,fts5yyruleno,fts5yymajor,fts5yyminor sqlite3Fts5ParserCTX_PARAM); }else if( fts5yyact <= fts5YY_MAX_SHIFTREDUCE ){ @@ -235016,7 +236995,11 @@ static int sqlite3Fts5ExprNew( } sqlite3_free(sParse.apPhrase); - *pzErr = sParse.zErr; + if( 0==*pzErr ){ + *pzErr = sParse.zErr; + }else{ + sqlite3_free(sParse.zErr); + } return sParse.rc; } @@ -237144,6 +239127,7 @@ static Fts5ExprNode *sqlite3Fts5ParseImplicitAnd( assert( pRight->eType==FTS5_STRING || pRight->eType==FTS5_TERM || pRight->eType==FTS5_EOF + || (pRight->eType==FTS5_AND && pParse->bPhraseToAnd) ); if( pLeft->eType==FTS5_AND ){ @@ -245378,23 +247362,26 @@ static void fts5IterSetOutputsTokendata(Fts5Iter *pIter){ static void fts5TokendataIterNext(Fts5Iter *pIter, int bFrom, i64 iFrom){ int ii; Fts5TokenDataIter *pT = pIter->pTokenDataIter; + Fts5Index *pIndex = pIter->pIndex; for(ii=0; iinIter; ii++){ Fts5Iter *p = pT->apIter[ii]; if( p->base.bEof==0 && (p->base.iRowid==pIter->base.iRowid || (bFrom && p->base.iRowidpIndex, p, bFrom, iFrom); + fts5MultiIterNext(pIndex, p, bFrom, iFrom); while( bFrom && p->base.bEof==0 && p->base.iRowidpIndex->rc==SQLITE_OK + && pIndex->rc==SQLITE_OK ){ - fts5MultiIterNext(p->pIndex, p, 0, 0); + fts5MultiIterNext(pIndex, p, 0, 0); } } } - fts5IterSetOutputsTokendata(pIter); + if( pIndex->rc==SQLITE_OK ){ + fts5IterSetOutputsTokendata(pIter); + } } /* @@ -249308,6 +251295,7 @@ static int fts5UpdateMethod( rc = SQLITE_ERROR; }else{ rc = fts5SpecialDelete(pTab, apVal); + bUpdateOrDelete = 1; } }else{ rc = fts5SpecialInsert(pTab, z, apVal[2 + pConfig->nCol + 1]); @@ -250482,14 +252470,16 @@ static int sqlite3Fts5GetTokenizer( if( pMod==0 ){ assert( nArg>0 ); rc = SQLITE_ERROR; - *pzErr = sqlite3_mprintf("no such tokenizer: %s", azArg[0]); + if( pzErr ) *pzErr = sqlite3_mprintf("no such tokenizer: %s", azArg[0]); }else{ rc = pMod->x.xCreate( pMod->pUserData, (azArg?&azArg[1]:0), (nArg?nArg-1:0), &pConfig->pTok ); pConfig->pTokApi = &pMod->x; if( rc!=SQLITE_OK ){ - if( pzErr ) *pzErr = sqlite3_mprintf("error in tokenizer constructor"); + if( pzErr && rc!=SQLITE_NOMEM ){ + *pzErr = sqlite3_mprintf("error in tokenizer constructor"); + } }else{ pConfig->ePattern = sqlite3Fts5TokenizerPattern( pMod->x.xCreate, pConfig->pTok @@ -250548,7 +252538,7 @@ static void fts5SourceIdFunc( ){ assert( nArg==0 ); UNUSED_PARAM2(nArg, apUnused); - sqlite3_result_text(pCtx, "fts5: 2024-01-30 16:01:20 e876e51a0ed5c5b3126f52e532044363a014bc594cfefa87ffb5b82257cc467a", -1, SQLITE_TRANSIENT); + sqlite3_result_text(pCtx, "fts5: 2024-08-13 09:16:08 c9c2ab54ba1f5f46360f1b4f35d849cd3f080e6fc2b6c60e91b16c63f69a1e33", -1, SQLITE_TRANSIENT); } /* @@ -250583,18 +252573,25 @@ static int fts5IntegrityMethod( assert( pzErr!=0 && *pzErr==0 ); UNUSED_PARAM(isQuick); + assert( pTab->p.pConfig->pzErrmsg==0 ); + pTab->p.pConfig->pzErrmsg = pzErr; rc = sqlite3Fts5StorageIntegrity(pTab->pStorage, 0); - if( (rc&0xff)==SQLITE_CORRUPT ){ - *pzErr = sqlite3_mprintf("malformed inverted index for FTS5 table %s.%s", - zSchema, zTabname); - }else if( rc!=SQLITE_OK ){ - *pzErr = sqlite3_mprintf("unable to validate the inverted index for" - " FTS5 table %s.%s: %s", - zSchema, zTabname, sqlite3_errstr(rc)); + if( *pzErr==0 && rc!=SQLITE_OK ){ + if( (rc&0xff)==SQLITE_CORRUPT ){ + *pzErr = sqlite3_mprintf("malformed inverted index for FTS5 table %s.%s", + zSchema, zTabname); + rc = (*pzErr) ? SQLITE_OK : SQLITE_NOMEM; + }else{ + *pzErr = sqlite3_mprintf("unable to validate the inverted index for" + " FTS5 table %s.%s: %s", + zSchema, zTabname, sqlite3_errstr(rc)); + } } + sqlite3Fts5IndexCloseReader(pTab->p.pIndex); + pTab->p.pConfig->pzErrmsg = 0; - return SQLITE_OK; + return rc; } static int fts5Init(sqlite3 *db){ @@ -252026,7 +254023,7 @@ static int fts5AsciiCreate( int i; memset(p, 0, sizeof(AsciiTokenizer)); memcpy(p->aTokenChar, aAsciiTokenChar, sizeof(aAsciiTokenChar)); - for(i=0; rc==SQLITE_OK && ibFold = 1; pNew->iFoldParam = 0; - for(i=0; rc==SQLITE_OK && iiFoldParam!=0 && pNew->bFold==0 ){ rc = SQLITE_ERROR; diff --git a/vendor/github.com/mattn/go-sqlite3/sqlite3-binding.h b/vendor/github.com/mattn/go-sqlite3/sqlite3-binding.h index a07a51952c..d67a4adb64 100644 --- a/vendor/github.com/mattn/go-sqlite3/sqlite3-binding.h +++ b/vendor/github.com/mattn/go-sqlite3/sqlite3-binding.h @@ -147,9 +147,9 @@ extern "C" { ** [sqlite3_libversion_number()], [sqlite3_sourceid()], ** [sqlite_version()] and [sqlite_source_id()]. */ -#define SQLITE_VERSION "3.45.1" -#define SQLITE_VERSION_NUMBER 3045001 -#define SQLITE_SOURCE_ID "2024-01-30 16:01:20 e876e51a0ed5c5b3126f52e532044363a014bc594cfefa87ffb5b82257cc467a" +#define SQLITE_VERSION "3.46.1" +#define SQLITE_VERSION_NUMBER 3046001 +#define SQLITE_SOURCE_ID "2024-08-13 09:16:08 c9c2ab54ba1f5f46360f1b4f35d849cd3f080e6fc2b6c60e91b16c63f69a1e33" /* ** CAPI3REF: Run-Time Library Version Numbers @@ -421,6 +421,8 @@ typedef int (*sqlite3_callback)(void*,int,char**, char**); ** the 1st parameter to sqlite3_exec() while sqlite3_exec() is running. **

  • The application must not modify the SQL statement text passed into ** the 2nd parameter of sqlite3_exec() while sqlite3_exec() is running. +**
  • The application must not dereference the arrays or string pointers +** passed as the 3rd and 4th callback parameters after it returns. ** */ SQLITE_API int sqlite3_exec( @@ -763,11 +765,11 @@ struct sqlite3_file { ** ** xLock() upgrades the database file lock. In other words, xLock() moves the ** database file lock in the direction NONE toward EXCLUSIVE. The argument to -** xLock() is always on of SHARED, RESERVED, PENDING, or EXCLUSIVE, never +** xLock() is always one of SHARED, RESERVED, PENDING, or EXCLUSIVE, never ** SQLITE_LOCK_NONE. If the database file lock is already at or above the ** requested lock, then the call to xLock() is a no-op. ** xUnlock() downgrades the database file lock to either SHARED or NONE. -* If the lock is already at or below the requested lock state, then the call +** If the lock is already at or below the requested lock state, then the call ** to xUnlock() is a no-op. ** The xCheckReservedLock() method checks whether any database connection, ** either in this process or in some other process, is holding a RESERVED, @@ -2142,6 +2144,22 @@ struct sqlite3_mem_methods { ** configuration setting is never used, then the default maximum is determined ** by the [SQLITE_MEMDB_DEFAULT_MAXSIZE] compile-time option. If that ** compile-time option is not set, then the default maximum is 1073741824. +** +** [[SQLITE_CONFIG_ROWID_IN_VIEW]] +**
    SQLITE_CONFIG_ROWID_IN_VIEW +**
    The SQLITE_CONFIG_ROWID_IN_VIEW option enables or disables the ability +** for VIEWs to have a ROWID. The capability can only be enabled if SQLite is +** compiled with -DSQLITE_ALLOW_ROWID_IN_VIEW, in which case the capability +** defaults to on. This configuration option queries the current setting or +** changes the setting to off or on. The argument is a pointer to an integer. +** If that integer initially holds a value of 1, then the ability for VIEWs to +** have ROWIDs is activated. If the integer initially holds zero, then the +** ability is deactivated. Any other initial value for the integer leaves the +** setting unchanged. After changes, if any, the integer is written with +** a 1 or 0, if the ability for VIEWs to have ROWIDs is on or off. If SQLite +** is compiled without -DSQLITE_ALLOW_ROWID_IN_VIEW (which is the usual and +** recommended case) then the integer is always filled with zero, regardless +** if its initial value. ** */ #define SQLITE_CONFIG_SINGLETHREAD 1 /* nil */ @@ -2173,6 +2191,7 @@ struct sqlite3_mem_methods { #define SQLITE_CONFIG_SMALL_MALLOC 27 /* boolean */ #define SQLITE_CONFIG_SORTERREF_SIZE 28 /* int nByte */ #define SQLITE_CONFIG_MEMDB_MAXSIZE 29 /* sqlite3_int64 */ +#define SQLITE_CONFIG_ROWID_IN_VIEW 30 /* int* */ /* ** CAPI3REF: Database Connection Configuration Options @@ -3287,8 +3306,8 @@ SQLITE_API int sqlite3_set_authorizer( #define SQLITE_RECURSIVE 33 /* NULL NULL */ /* -** CAPI3REF: Tracing And Profiling Functions -** METHOD: sqlite3 +** CAPI3REF: Deprecated Tracing And Profiling Functions +** DEPRECATED ** ** These routines are deprecated. Use the [sqlite3_trace_v2()] interface ** instead of the routines described here. @@ -6869,6 +6888,12 @@ SQLITE_API int sqlite3_autovacuum_pages( ** The exceptions defined in this paragraph might change in a future ** release of SQLite. ** +** Whether the update hook is invoked before or after the +** corresponding change is currently unspecified and may differ +** depending on the type of change. Do not rely on the order of the +** hook call with regards to the final result of the operation which +** triggers the hook. +** ** The update hook implementation must not do anything that will modify ** the database connection that invoked the update hook. Any actions ** to modify the database connection must be deferred until after the @@ -8339,7 +8364,7 @@ SQLITE_API int sqlite3_test_control(int op, ...); ** The sqlite3_keyword_count() interface returns the number of distinct ** keywords understood by SQLite. ** -** The sqlite3_keyword_name(N,Z,L) interface finds the N-th keyword and +** The sqlite3_keyword_name(N,Z,L) interface finds the 0-based N-th keyword and ** makes *Z point to that keyword expressed as UTF8 and writes the number ** of bytes in the keyword into *L. The string that *Z points to is not ** zero-terminated. The sqlite3_keyword_name(N,Z,L) routine returns @@ -9918,24 +9943,45 @@ SQLITE_API const char *sqlite3_vtab_collation(sqlite3_index_info*,int); **
  • ** ^(If the sqlite3_vtab_distinct() interface returns 2, that means ** that the query planner does not need the rows returned in any particular -** order, as long as rows with the same values in all "aOrderBy" columns -** are adjacent.)^ ^(Furthermore, only a single row for each particular -** combination of values in the columns identified by the "aOrderBy" field -** needs to be returned.)^ ^It is always ok for two or more rows with the same -** values in all "aOrderBy" columns to be returned, as long as all such rows -** are adjacent. ^The virtual table may, if it chooses, omit extra rows -** that have the same value for all columns identified by "aOrderBy". -** ^However omitting the extra rows is optional. +** order, as long as rows with the same values in all columns identified +** by "aOrderBy" are adjacent.)^ ^(Furthermore, when two or more rows +** contain the same values for all columns identified by "colUsed", all but +** one such row may optionally be omitted from the result.)^ +** The virtual table is not required to omit rows that are duplicates +** over the "colUsed" columns, but if the virtual table can do that without +** too much extra effort, it could potentially help the query to run faster. ** This mode is used for a DISTINCT query. **

  • -** ^(If the sqlite3_vtab_distinct() interface returns 3, that means -** that the query planner needs only distinct rows but it does need the -** rows to be sorted.)^ ^The virtual table implementation is free to omit -** rows that are identical in all aOrderBy columns, if it wants to, but -** it is not required to omit any rows. This mode is used for queries +** ^(If the sqlite3_vtab_distinct() interface returns 3, that means the +** virtual table must return rows in the order defined by "aOrderBy" as +** if the sqlite3_vtab_distinct() interface had returned 0. However if +** two or more rows in the result have the same values for all columns +** identified by "colUsed", then all but one such row may optionally be +** omitted.)^ Like when the return value is 2, the virtual table +** is not required to omit rows that are duplicates over the "colUsed" +** columns, but if the virtual table can do that without +** too much extra effort, it could potentially help the query to run faster. +** This mode is used for queries ** that have both DISTINCT and ORDER BY clauses. ** ** +**

    The following table summarizes the conditions under which the +** virtual table is allowed to set the "orderByConsumed" flag based on +** the value returned by sqlite3_vtab_distinct(). This table is a +** restatement of the previous four paragraphs: +** +** +** +**
    sqlite3_vtab_distinct() return value +** Rows are returned in aOrderBy order +** Rows with the same value in all aOrderBy columns are adjacent +** Duplicates over all colUsed columns may be omitted +**
    0yesyesno +**
    1noyesno +**
    2noyesyes +**
    3yesyesyes +**
    +** ** ^For the purposes of comparing virtual table output values to see if the ** values are same value for sorting purposes, two NULL values are considered ** to be the same. In other words, the comparison operator is "IS" @@ -11980,6 +12026,30 @@ SQLITE_API int sqlite3changegroup_schema(sqlite3_changegroup*, sqlite3*, const c */ SQLITE_API int sqlite3changegroup_add(sqlite3_changegroup*, int nData, void *pData); +/* +** CAPI3REF: Add A Single Change To A Changegroup +** METHOD: sqlite3_changegroup +** +** This function adds the single change currently indicated by the iterator +** passed as the second argument to the changegroup object. The rules for +** adding the change are just as described for [sqlite3changegroup_add()]. +** +** If the change is successfully added to the changegroup, SQLITE_OK is +** returned. Otherwise, an SQLite error code is returned. +** +** The iterator must point to a valid entry when this function is called. +** If it does not, SQLITE_ERROR is returned and no change is added to the +** changegroup. Additionally, the iterator must not have been opened with +** the SQLITE_CHANGESETAPPLY_INVERT flag. In this case SQLITE_ERROR is also +** returned. +*/ +SQLITE_API int sqlite3changegroup_add_change( + sqlite3_changegroup*, + sqlite3_changeset_iter* +); + + + /* ** CAPI3REF: Obtain A Composite Changeset From A Changegroup ** METHOD: sqlite3_changegroup @@ -12784,8 +12854,8 @@ struct Fts5PhraseIter { ** EXTENSION API FUNCTIONS ** ** xUserData(pFts): -** Return a copy of the context pointer the extension function was -** registered with. +** Return a copy of the pUserData pointer passed to the xCreateFunction() +** API when the extension function was registered. ** ** xColumnTotalSize(pFts, iCol, pnToken): ** If parameter iCol is less than zero, set output variable *pnToken diff --git a/vendor/github.com/mattn/go-sqlite3/sqlite3.go b/vendor/github.com/mattn/go-sqlite3/sqlite3.go index 4b3b6cab5f..ed2a9e2a3d 100644 --- a/vendor/github.com/mattn/go-sqlite3/sqlite3.go +++ b/vendor/github.com/mattn/go-sqlite3/sqlite3.go @@ -1679,7 +1679,7 @@ func (d *SQLiteDriver) Open(dsn string) (driver.Conn, error) { } } - // Forgein Keys + // Foreign Keys if foreignKeys > -1 { if err := exec(fmt.Sprintf("PRAGMA foreign_keys = %d;", foreignKeys)); err != nil { C.sqlite3_close_v2(db) diff --git a/vendor/github.com/mattn/go-sqlite3/sqlite3_libsqlite3.go b/vendor/github.com/mattn/go-sqlite3/sqlite3_libsqlite3.go index 95cc7c0b66..6ef2308620 100644 --- a/vendor/github.com/mattn/go-sqlite3/sqlite3_libsqlite3.go +++ b/vendor/github.com/mattn/go-sqlite3/sqlite3_libsqlite3.go @@ -18,5 +18,6 @@ package sqlite3 #cgo openbsd LDFLAGS: -lsqlite3 #cgo solaris LDFLAGS: -lsqlite3 #cgo windows LDFLAGS: -lsqlite3 +#cgo zos LDFLAGS: -lsqlite3 */ import "C" diff --git a/vendor/github.com/mattn/go-sqlite3/sqlite3_opt_userauth.go b/vendor/github.com/mattn/go-sqlite3/sqlite3_opt_userauth.go index de9630c276..76d8401644 100644 --- a/vendor/github.com/mattn/go-sqlite3/sqlite3_opt_userauth.go +++ b/vendor/github.com/mattn/go-sqlite3/sqlite3_opt_userauth.go @@ -86,7 +86,7 @@ var ( // combination is incorrect or unknown. // // If the SQLITE_USER table is not present in the database file, then -// this interface is a harmless no-op returnning SQLITE_OK. +// this interface is a harmless no-op returning SQLITE_OK. func (c *SQLiteConn) Authenticate(username, password string) error { rv := c.authenticate(username, password) switch rv { diff --git a/vendor/github.com/moby/sys/userns/LICENSE b/vendor/github.com/moby/sys/userns/LICENSE new file mode 100644 index 0000000000..d645695673 --- /dev/null +++ b/vendor/github.com/moby/sys/userns/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/vendor/github.com/moby/sys/userns/userns.go b/vendor/github.com/moby/sys/userns/userns.go new file mode 100644 index 0000000000..56b24c44ad --- /dev/null +++ b/vendor/github.com/moby/sys/userns/userns.go @@ -0,0 +1,16 @@ +// Package userns provides utilities to detect whether we are currently running +// in a Linux user namespace. +// +// This code was migrated from [libcontainer/runc], which based its implementation +// on code from [lcx/incus]. +// +// [libcontainer/runc]: https://github.com/opencontainers/runc/blob/3778ae603c706494fd1e2c2faf83b406e38d687d/libcontainer/userns/userns_linux.go#L12-L49 +// [lcx/incus]: https://github.com/lxc/incus/blob/e45085dd42f826b3c8c3228e9733c0b6f998eafe/shared/util.go#L678-L700 +package userns + +// RunningInUserNS detects whether we are currently running in a Linux +// user namespace and memoizes the result. It returns false on non-Linux +// platforms. +func RunningInUserNS() bool { + return inUserNS() +} diff --git a/vendor/github.com/moby/sys/userns/userns_linux.go b/vendor/github.com/moby/sys/userns/userns_linux.go new file mode 100644 index 0000000000..87c1c38eec --- /dev/null +++ b/vendor/github.com/moby/sys/userns/userns_linux.go @@ -0,0 +1,53 @@ +package userns + +import ( + "bufio" + "fmt" + "os" + "sync" +) + +var inUserNS = sync.OnceValue(runningInUserNS) + +// runningInUserNS detects whether we are currently running in a user namespace. +// +// This code was migrated from [libcontainer/runc] and based on an implementation +// from [lcx/incus]. +// +// [libcontainer/runc]: https://github.com/opencontainers/runc/blob/3778ae603c706494fd1e2c2faf83b406e38d687d/libcontainer/userns/userns_linux.go#L12-L49 +// [lcx/incus]: https://github.com/lxc/incus/blob/e45085dd42f826b3c8c3228e9733c0b6f998eafe/shared/util.go#L678-L700 +func runningInUserNS() bool { + file, err := os.Open("/proc/self/uid_map") + if err != nil { + // This kernel-provided file only exists if user namespaces are supported. + return false + } + defer file.Close() + + buf := bufio.NewReader(file) + l, _, err := buf.ReadLine() + if err != nil { + return false + } + + return uidMapInUserNS(string(l)) +} + +func uidMapInUserNS(uidMap string) bool { + if uidMap == "" { + // File exist but empty (the initial state when userns is created, + // see user_namespaces(7)). + return true + } + + var a, b, c int64 + if _, err := fmt.Sscanf(uidMap, "%d %d %d", &a, &b, &c); err != nil { + // Assume we are in a regular, non user namespace. + return false + } + + // As per user_namespaces(7), /proc/self/uid_map of + // the initial user namespace shows 0 0 4294967295. + initNS := a == 0 && b == 0 && c == 4294967295 + return !initNS +} diff --git a/vendor/github.com/moby/sys/userns/userns_linux_fuzzer.go b/vendor/github.com/moby/sys/userns/userns_linux_fuzzer.go new file mode 100644 index 0000000000..26ba2e16ec --- /dev/null +++ b/vendor/github.com/moby/sys/userns/userns_linux_fuzzer.go @@ -0,0 +1,8 @@ +//go:build linux && gofuzz + +package userns + +func FuzzUIDMap(uidmap []byte) int { + _ = uidMapInUserNS(string(uidmap)) + return 1 +} diff --git a/vendor/github.com/moby/sys/userns/userns_unsupported.go b/vendor/github.com/moby/sys/userns/userns_unsupported.go new file mode 100644 index 0000000000..8ed83072c2 --- /dev/null +++ b/vendor/github.com/moby/sys/userns/userns_unsupported.go @@ -0,0 +1,6 @@ +//go:build !linux + +package userns + +// inUserNS is a stub for non-Linux systems. Always returns false. +func inUserNS() bool { return false } diff --git a/vendor/github.com/onsi/ginkgo/v2/CHANGELOG.md b/vendor/github.com/onsi/ginkgo/v2/CHANGELOG.md index 6f105f1ad5..afc55af940 100644 --- a/vendor/github.com/onsi/ginkgo/v2/CHANGELOG.md +++ b/vendor/github.com/onsi/ginkgo/v2/CHANGELOG.md @@ -1,3 +1,10 @@ +## 2.20.2 + +Require Go 1.22+ + +### Maintenance +- bump go to v1.22 [a671816] + ## 2.20.1 ### Fixes diff --git a/vendor/github.com/onsi/ginkgo/v2/types/version.go b/vendor/github.com/onsi/ginkgo/v2/types/version.go index 58fddc09e2..6dfb25f249 100644 --- a/vendor/github.com/onsi/ginkgo/v2/types/version.go +++ b/vendor/github.com/onsi/ginkgo/v2/types/version.go @@ -1,3 +1,3 @@ package types -const VERSION = "2.20.1" +const VERSION = "2.20.2" diff --git a/vendor/github.com/operator-framework/api/crds/operators.coreos.com_catalogsources.yaml b/vendor/github.com/operator-framework/api/crds/operators.coreos.com_catalogsources.yaml index 9b22b37416..59d316f8de 100644 --- a/vendor/github.com/operator-framework/api/crds/operators.coreos.com_catalogsources.yaml +++ b/vendor/github.com/operator-framework/api/crds/operators.coreos.com_catalogsources.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 + controller-gen.kubebuilder.io/version: v0.16.1 name: catalogsources.operators.coreos.com spec: group: operators.coreos.com @@ -363,7 +363,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). type: array items: type: string @@ -378,7 +378,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). type: array items: type: string @@ -535,7 +535,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). type: array items: type: string @@ -550,7 +550,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). type: array items: type: string @@ -708,7 +708,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). type: array items: type: string @@ -723,7 +723,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). type: array items: type: string @@ -880,7 +880,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). type: array items: type: string @@ -895,7 +895,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). type: array items: type: string @@ -992,13 +992,11 @@ spec: - the $GOMEMLIMIT environment variable will be set to this value in bytes - the memory request will be set to this value - This field should be set if it's desired to reduce the footprint of a catalog server as much as possible, or if a catalog being served is very large and needs more than the default allocation. If your index image has a file- system cache, determine a good approximation for this value by doubling the size of the package cache at /tmp/cache/cache/packages.json in the index image. - This field is best-effort; if unset, no default will be used and no Pod memory limit or $GOMEMLIMIT value will be set. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ anyOf: @@ -1029,7 +1027,6 @@ spec: specified. Specifying a value other than `legacy` or `restricted` result in a validation error. When using older catalog images, which can not run in `restricted` mode, the SecurityContextConfig should be set to `legacy`. - More information about PSA can be found here: https://kubernetes.io/docs/concepts/security/pod-security-admission/' type: string enum: @@ -1136,24 +1133,7 @@ spec: introduced will use conditions. type: array items: - description: |- - Condition contains details for one aspect of the current state of this API Resource. - --- - This struct is intended for direct use as an array at the field path .status.conditions. For example, - - - type FooStatus struct{ - // Represents the observations of a foo's current state. - // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" - // +patchMergeKey=type - // +patchStrategy=merge - // +listType=map - // +listMapKey=type - Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` - - - // other fields - } + description: Condition contains details for one aspect of the current state of this API Resource. type: object required: - lastTransitionTime @@ -1201,12 +1181,7 @@ spec: - "False" - Unknown type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. type: string maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ diff --git a/vendor/github.com/operator-framework/api/crds/operators.coreos.com_clusterserviceversions.yaml b/vendor/github.com/operator-framework/api/crds/operators.coreos.com_clusterserviceversions.yaml index a3192a66d3..9f91b0691c 100644 --- a/vendor/github.com/operator-framework/api/crds/operators.coreos.com_clusterserviceversions.yaml +++ b/vendor/github.com/operator-framework/api/crds/operators.coreos.com_clusterserviceversions.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 + controller-gen.kubebuilder.io/version: v0.16.1 name: clusterserviceversions.operators.coreos.com spec: group: operators.coreos.com @@ -339,7 +339,6 @@ spec: CustomResourceDefinitions declares all of the CRDs managed or required by an operator being ran by ClusterServiceVersion. - If the CRD is present in the Owned list, it is implicitly required. type: object properties: @@ -774,9 +773,6 @@ spec: description: |- Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate. - --- - TODO: Update this to follow our convention for oneOf, whatever we decide it - to be. type: object properties: maxSurge: @@ -1118,7 +1114,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). type: array items: type: string @@ -1133,7 +1129,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). type: array items: type: string @@ -1290,7 +1286,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). type: array items: type: string @@ -1305,7 +1301,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). type: array items: type: string @@ -1463,7 +1459,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). type: array items: type: string @@ -1478,7 +1474,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). type: array items: type: string @@ -1635,7 +1631,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). type: array items: type: string @@ -1650,7 +1646,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). type: array items: type: string @@ -1812,9 +1808,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" optional: @@ -1873,9 +1867,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" optional: @@ -1908,9 +1900,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" optional: @@ -1930,9 +1920,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" optional: @@ -2212,9 +2200,9 @@ spec: Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string + default: "" httpGet: description: HTTPGet specifies the http request to perform. type: object @@ -2418,9 +2406,9 @@ spec: Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string + default: "" httpGet: description: HTTPGet specifies the http request to perform. type: object @@ -2558,11 +2546,9 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. It can only be set for containers. type: array items: @@ -2577,6 +2563,12 @@ spec: the Pod where this field is used. It makes that resource available inside a container. type: string + request: + description: |- + Request is the name chosen for a request in the referenced claim. + If empty, everything from the claim is made available, otherwise + only the result of this request. + type: string x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map @@ -2694,7 +2686,7 @@ spec: procMount: description: |- procMount denotes the type of proc mount to use for the containers. - The default is DefaultProcMount which uses the container runtime defaults for + The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows. @@ -2775,7 +2767,6 @@ spec: type indicates which kind of seccomp profile will be applied. Valid options are: - Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. @@ -2858,9 +2849,9 @@ spec: Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string + default: "" httpGet: description: HTTPGet specifies the http request to perform. type: object @@ -3064,10 +3055,8 @@ spec: RecursiveReadOnly specifies whether read-only mounts should be handled recursively. - If ReadOnly is false, this field has no meaning and must be unspecified. - If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this @@ -3075,11 +3064,9 @@ spec: supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. - If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). - If this field is not specified, it is treated as an equivalent of Disabled. type: string subPath: @@ -3179,7 +3166,6 @@ spec: removed or restarted. The kubelet may evict a Pod if an ephemeral container causes the Pod to exceed its resource allocation. - To add an ephemeral container, use the ephemeralcontainers subresource of an existing Pod. Ephemeral containers may not be removed or restarted. type: object @@ -3259,9 +3245,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" optional: @@ -3320,9 +3304,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" optional: @@ -3355,9 +3337,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" optional: @@ -3377,9 +3357,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" optional: @@ -3651,9 +3629,9 @@ spec: Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string + default: "" httpGet: description: HTTPGet specifies the http request to perform. type: object @@ -3845,9 +3823,9 @@ spec: Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string + default: "" httpGet: description: HTTPGet specifies the http request to perform. type: object @@ -3984,11 +3962,9 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. It can only be set for containers. type: array items: @@ -4003,6 +3979,12 @@ spec: the Pod where this field is used. It makes that resource available inside a container. type: string + request: + description: |- + Request is the name chosen for a request in the referenced claim. + If empty, everything from the claim is made available, otherwise + only the result of this request. + type: string x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map @@ -4108,7 +4090,7 @@ spec: procMount: description: |- procMount denotes the type of proc mount to use for the containers. - The default is DefaultProcMount which uses the container runtime defaults for + The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows. @@ -4189,7 +4171,6 @@ spec: type indicates which kind of seccomp profile will be applied. Valid options are: - Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. @@ -4265,9 +4246,9 @@ spec: Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string + default: "" httpGet: description: HTTPGet specifies the http request to perform. type: object @@ -4394,7 +4375,6 @@ spec: The ephemeral container will be run in the namespaces (IPC, PID, etc) of this container. If not set then the ephemeral container uses the namespaces configured in the Pod spec. - The container runtime must implement support for this feature. If the runtime does not support namespace targeting then the result of setting this field is undefined. type: string @@ -4481,10 +4461,8 @@ spec: RecursiveReadOnly specifies whether read-only mounts should be handled recursively. - If ReadOnly is false, this field has no meaning and must be unspecified. - If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this @@ -4492,11 +4470,9 @@ spec: supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. - If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). - If this field is not specified, it is treated as an equivalent of Disabled. type: string subPath: @@ -4601,9 +4577,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" x-kubernetes-map-type: atomic @@ -4705,9 +4679,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" optional: @@ -4766,9 +4738,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" optional: @@ -4801,9 +4771,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" optional: @@ -4823,9 +4791,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" optional: @@ -5105,9 +5071,9 @@ spec: Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string + default: "" httpGet: description: HTTPGet specifies the http request to perform. type: object @@ -5311,9 +5277,9 @@ spec: Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string + default: "" httpGet: description: HTTPGet specifies the http request to perform. type: object @@ -5451,11 +5417,9 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. It can only be set for containers. type: array items: @@ -5470,6 +5434,12 @@ spec: the Pod where this field is used. It makes that resource available inside a container. type: string + request: + description: |- + Request is the name chosen for a request in the referenced claim. + If empty, everything from the claim is made available, otherwise + only the result of this request. + type: string x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map @@ -5587,7 +5557,7 @@ spec: procMount: description: |- procMount denotes the type of proc mount to use for the containers. - The default is DefaultProcMount which uses the container runtime defaults for + The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows. @@ -5668,7 +5638,6 @@ spec: type indicates which kind of seccomp profile will be applied. Valid options are: - Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. @@ -5751,9 +5720,9 @@ spec: Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string + default: "" httpGet: description: HTTPGet specifies the http request to perform. type: object @@ -5957,10 +5926,8 @@ spec: RecursiveReadOnly specifies whether read-only mounts should be handled recursively. - If ReadOnly is false, this field has no meaning and must be unspecified. - If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this @@ -5968,11 +5935,9 @@ spec: supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. - If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). - If this field is not specified, it is treated as an equivalent of Disabled. type: string subPath: @@ -6002,9 +5967,11 @@ spec: x-kubernetes-list-type: map nodeName: description: |- - NodeName is a request to schedule this pod onto a specific node. If it is non-empty, - the scheduler simply schedules this pod onto that node, assuming that it fits resource - requirements. + NodeName indicates in which node this pod is scheduled. + If empty, this pod is a candidate for scheduling by the scheduler defined in schedulerName. + Once this field is set, the kubelet for this node becomes responsible for the lifecycle of this pod. + This field should not be used to express a desire for the pod to be scheduled on a specific node. + https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodename type: string nodeSelector: description: |- @@ -6020,11 +5987,9 @@ spec: Specifies the OS of the containers in the pod. Some pod and container fields are restricted if this is set. - If the OS field is set to linux, the following fields must be unset: -securityContext.windowsOptions - If the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC @@ -6039,6 +6004,7 @@ spec: - spec.securityContext.runAsUser - spec.securityContext.runAsGroup - spec.securityContext.supplementalGroups + - spec.securityContext.supplementalGroupsPolicy - spec.containers[*].securityContext.appArmorProfile - spec.containers[*].securityContext.seLinuxOptions - spec.containers[*].securityContext.seccompProfile @@ -6124,16 +6090,17 @@ spec: will be made available to those containers which consume them by name. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. type: array items: description: |- - PodResourceClaim references exactly one ResourceClaim through a ClaimSource. + PodResourceClaim references exactly one ResourceClaim, either directly + or by naming a ResourceClaimTemplate which is then turned into a ResourceClaim + for the pod. + It adds a name to it that uniquely identifies the ResourceClaim inside the Pod. Containers that need access to the ResourceClaim reference it with this name. type: object @@ -6145,32 +6112,32 @@ spec: Name uniquely identifies this resource claim inside the pod. This must be a DNS_LABEL. type: string - source: - description: Source describes where to find the ResourceClaim. - type: object - properties: - resourceClaimName: - description: |- - ResourceClaimName is the name of a ResourceClaim object in the same - namespace as this pod. - type: string - resourceClaimTemplateName: - description: |- - ResourceClaimTemplateName is the name of a ResourceClaimTemplate - object in the same namespace as this pod. + resourceClaimName: + description: |- + ResourceClaimName is the name of a ResourceClaim object in the same + namespace as this pod. + Exactly one of ResourceClaimName and ResourceClaimTemplateName must + be set. + type: string + resourceClaimTemplateName: + description: |- + ResourceClaimTemplateName is the name of a ResourceClaimTemplate + object in the same namespace as this pod. - The template will be used to create a new ResourceClaim, which will - be bound to this pod. When this pod is deleted, the ResourceClaim - will also be deleted. The pod name and resource name, along with a - generated component, will be used to form a unique name for the - ResourceClaim, which will be recorded in pod.status.resourceClaimStatuses. + The template will be used to create a new ResourceClaim, which will + be bound to this pod. When this pod is deleted, the ResourceClaim + will also be deleted. The pod name and resource name, along with a + generated component, will be used to form a unique name for the + ResourceClaim, which will be recorded in pod.status.resourceClaimStatuses. + This field is immutable and no changes will be made to the + corresponding ResourceClaim by the control plane after creating the + ResourceClaim. - This field is immutable and no changes will be made to the - corresponding ResourceClaim by the control plane after creating the - ResourceClaim. - type: string + Exactly one of ResourceClaimName and ResourceClaimTemplateName must + be set. + type: string x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map @@ -6200,7 +6167,6 @@ spec: If schedulingGates is not empty, the pod will stay in the SchedulingGated state and the scheduler will not attempt to schedule the pod. - SchedulingGates can only be set at pod creation time, and be removed only afterwards. type: array items: @@ -6252,12 +6218,10 @@ spec: Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: - 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- - If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows. type: integer @@ -6343,25 +6307,34 @@ spec: type indicates which kind of seccomp profile will be applied. Valid options are: - Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. type: string supplementalGroups: description: |- - A list of groups applied to the first process run in each container, in addition - to the container's primary GID, the fsGroup (if specified), and group memberships - defined in the container image for the uid of the container process. If unspecified, - no additional groups are added to any container. Note that group memberships - defined in the container image for the uid of the container process are still effective, - even if they are not included in this list. + A list of groups applied to the first process run in each container, in + addition to the container's primary GID and fsGroup (if specified). If + the SupplementalGroupsPolicy feature is enabled, the + supplementalGroupsPolicy field determines whether these are in addition + to or instead of any group memberships defined in the container image. + If unspecified, no additional groups are added, though group memberships + defined in the container image may still be used, depending on the + supplementalGroupsPolicy field. Note that this field cannot be set when spec.os.name is windows. type: array items: type: integer format: int64 x-kubernetes-list-type: atomic + supplementalGroupsPolicy: + description: |- + Defines how supplemental groups of the first container processes are calculated. + Valid values are "Merge" and "Strict". If not specified, "Merge" is used. + (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled + and the container runtime must implement support for this feature. + Note that this field cannot be set when spec.os.name is windows. + type: string sysctls: description: |- Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported @@ -6568,7 +6541,6 @@ spec: Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector. - This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default). type: array items: @@ -6608,7 +6580,6 @@ spec: Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. - For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | @@ -6626,7 +6597,6 @@ spec: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. - If this value is nil, the behavior is equivalent to the Honor policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag. type: string @@ -6638,7 +6608,6 @@ spec: has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. - If this value is nil, the behavior is equivalent to the Ignore policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag. type: string @@ -6706,7 +6675,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - TODO: how do we prevent errors in the filesystem from compromising the machine type: string partition: description: |- @@ -6748,6 +6716,7 @@ spec: Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. type: string + default: ext4 kind: description: 'kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared' type: string @@ -6756,6 +6725,7 @@ spec: readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. type: boolean + default: false azureFile: description: azureFile represents an Azure File Service mount on the host and bind mount to the pod. type: object @@ -6814,9 +6784,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" x-kubernetes-map-type: atomic @@ -6858,9 +6826,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" x-kubernetes-map-type: atomic @@ -6928,9 +6894,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" optional: @@ -6969,9 +6933,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" x-kubernetes-map-type: atomic @@ -7093,7 +7055,6 @@ spec: The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. - Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity @@ -7104,17 +7065,14 @@ spec: information on the connection between this volume type and PersistentVolumeClaim). - Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. - Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. - A pod can use both types of ephemeral volumes and persistent volumes at the same time. type: object @@ -7129,7 +7087,6 @@ spec: entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). - An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until @@ -7139,11 +7096,9 @@ spec: this should not be necessary, but it may be useful when manually reconstructing a broken cluster. - This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. - Required, must not be nil. type: object required: @@ -7342,7 +7297,7 @@ spec: set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled. + (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default). type: string volumeMode: description: |- @@ -7361,7 +7316,6 @@ spec: fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. - TODO: how do we prevent errors in the filesystem from compromising the machine type: string lun: description: 'lun is Optional: FC target lun number' @@ -7428,9 +7382,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" x-kubernetes-map-type: atomic @@ -7461,7 +7413,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - TODO: how do we prevent errors in the filesystem from compromising the machine type: string partition: description: |- @@ -7538,9 +7489,6 @@ spec: used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath - --- - TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not - mount host directories as read/write. type: object required: - path @@ -7557,6 +7505,41 @@ spec: Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath type: string + image: + description: |- + image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine. + The volume is resolved at pod startup depending on which PullPolicy value is provided: + + - Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. + - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. + - IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. + + The volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation. + A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message. + The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field. + The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images. + The volume will be mounted read-only (ro) and non-executable files (noexec). + Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath). + The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type. + type: object + properties: + pullPolicy: + description: |- + Policy for pulling OCI objects. Possible values are: + Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. + Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. + IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. + Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. + type: string + reference: + description: |- + Required: Image or artifact reference to be used. + Behaves in the same way as pod.spec.containers[*].image. + Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets. + More info: https://kubernetes.io/docs/concepts/containers/images + This field is optional to allow higher level config management to default or override + container images in workload controllers like Deployments and StatefulSets. + type: string iscsi: description: |- iscsi represents an ISCSI Disk resource that is attached to a @@ -7580,7 +7563,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi - TODO: how do we prevent errors in the filesystem from compromising the machine type: string initiatorName: description: |- @@ -7596,6 +7578,7 @@ spec: iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp). type: string + default: default lun: description: lun represents iSCSI Target Lun number. type: integer @@ -7623,9 +7606,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" x-kubernetes-map-type: atomic @@ -7734,10 +7715,14 @@ spec: type: integer format: int32 sources: - description: sources is the list of volume projections + description: |- + sources is the list of volume projections. Each entry in this list + handles one source. type: array items: - description: Projection that may be projected along with other supported volume types + description: |- + Projection that may be projected along with other supported volume types. + Exactly one of these fields must be set. type: object properties: clusterTrustBundle: @@ -7745,14 +7730,11 @@ spec: ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field of ClusterTrustBundle objects in an auto-updating file. - Alpha, gated by the ClusterTrustBundleProjection feature gate. - ClusterTrustBundle objects can either be selected by name, or by the combination of signer name and a label selector. - Kubelet performs aggressive normalization of the PEM contents written into the pod filesystem. Esoteric PEM features such as inter-block comments and block headers are stripped. Certificates are deduplicated. @@ -7880,9 +7862,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" optional: @@ -7999,9 +7979,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" optional: @@ -8088,7 +8066,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd - TODO: how do we prevent errors in the filesystem from compromising the machine type: string image: description: |- @@ -8101,6 +8078,7 @@ spec: Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it type: string + default: /etc/ceph/keyring monitors: description: |- monitors is a collection of Ceph monitors. @@ -8115,6 +8093,7 @@ spec: Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it type: string + default: rbd readOnly: description: |- readOnly here will force the ReadOnly setting in VolumeMounts. @@ -8135,9 +8114,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" x-kubernetes-map-type: atomic @@ -8147,6 +8124,7 @@ spec: Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it type: string + default: admin scaleIO: description: scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. type: object @@ -8162,6 +8140,7 @@ spec: Ex. "ext4", "xfs", "ntfs". Default is "xfs". type: string + default: xfs gateway: description: gateway is the host address of the ScaleIO API Gateway. type: string @@ -8185,9 +8164,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" x-kubernetes-map-type: atomic @@ -8199,6 +8176,7 @@ spec: storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned. type: string + default: ThinProvisioned storagePool: description: storagePool is the ScaleIO Storage Pool associated with the protection domain. type: string @@ -8300,9 +8278,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" x-kubernetes-map-type: atomic @@ -8678,7 +8654,6 @@ spec: description: |- Resources is a list of resources this rule applies to. - For example: 'pods' means pods. 'pods/log' means the log subresource of pods. @@ -8687,11 +8662,9 @@ spec: '*/scale' means all scale subresources. '*/*' means all resources and their subresources. - If wildcard is present, the validation rule will ensure resources do not overlap with each other. - Depending on the enclosing object, subresources might not be allowed. Required. type: array diff --git a/vendor/github.com/operator-framework/api/crds/operators.coreos.com_installplans.yaml b/vendor/github.com/operator-framework/api/crds/operators.coreos.com_installplans.yaml index 97c4551e04..dfa1681535 100644 --- a/vendor/github.com/operator-framework/api/crds/operators.coreos.com_installplans.yaml +++ b/vendor/github.com/operator-framework/api/crds/operators.coreos.com_installplans.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 + controller-gen.kubebuilder.io/version: v0.16.1 name: installplans.operators.coreos.com spec: group: operators.coreos.com @@ -85,7 +85,6 @@ spec: InstallPlanStatus represents the information about the status of steps required to complete installation. - Status may trail the actual state of a system. type: object required: @@ -110,7 +109,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -166,7 +164,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- diff --git a/vendor/github.com/operator-framework/api/crds/operators.coreos.com_olmconfigs.yaml b/vendor/github.com/operator-framework/api/crds/operators.coreos.com_olmconfigs.yaml index 21a679ca25..e4290c38eb 100644 --- a/vendor/github.com/operator-framework/api/crds/operators.coreos.com_olmconfigs.yaml +++ b/vendor/github.com/operator-framework/api/crds/operators.coreos.com_olmconfigs.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 + controller-gen.kubebuilder.io/version: v0.16.1 name: olmconfigs.operators.coreos.com spec: group: operators.coreos.com @@ -74,24 +74,7 @@ spec: conditions: type: array items: - description: |- - Condition contains details for one aspect of the current state of this API Resource. - --- - This struct is intended for direct use as an array at the field path .status.conditions. For example, - - - type FooStatus struct{ - // Represents the observations of a foo's current state. - // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" - // +patchMergeKey=type - // +patchStrategy=merge - // +listType=map - // +listMapKey=type - Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` - - - // other fields - } + description: Condition contains details for one aspect of the current state of this API Resource. type: object required: - lastTransitionTime @@ -139,12 +122,7 @@ spec: - "False" - Unknown type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. type: string maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ diff --git a/vendor/github.com/operator-framework/api/crds/operators.coreos.com_operatorconditions.yaml b/vendor/github.com/operator-framework/api/crds/operators.coreos.com_operatorconditions.yaml index 571d8f8e6e..6d6ef53bee 100644 --- a/vendor/github.com/operator-framework/api/crds/operators.coreos.com_operatorconditions.yaml +++ b/vendor/github.com/operator-framework/api/crds/operators.coreos.com_operatorconditions.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 + controller-gen.kubebuilder.io/version: v0.16.1 name: operatorconditions.operators.coreos.com spec: group: operators.coreos.com @@ -53,24 +53,7 @@ spec: overrides: type: array items: - description: |- - Condition contains details for one aspect of the current state of this API Resource. - --- - This struct is intended for direct use as an array at the field path .status.conditions. For example, - - - type FooStatus struct{ - // Represents the observations of a foo's current state. - // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" - // +patchMergeKey=type - // +patchStrategy=merge - // +listType=map - // +listMapKey=type - Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` - - - // other fields - } + description: Condition contains details for one aspect of the current state of this API Resource. type: object required: - message @@ -117,12 +100,7 @@ spec: - "False" - Unknown type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. type: string maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ @@ -139,24 +117,7 @@ spec: conditions: type: array items: - description: |- - Condition contains details for one aspect of the current state of this API Resource. - --- - This struct is intended for direct use as an array at the field path .status.conditions. For example, - - - type FooStatus struct{ - // Represents the observations of a foo's current state. - // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" - // +patchMergeKey=type - // +patchStrategy=merge - // +listType=map - // +listMapKey=type - Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` - - - // other fields - } + description: Condition contains details for one aspect of the current state of this API Resource. type: object required: - lastTransitionTime @@ -204,12 +165,7 @@ spec: - "False" - Unknown type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. type: string maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ @@ -251,24 +207,7 @@ spec: conditions: type: array items: - description: |- - Condition contains details for one aspect of the current state of this API Resource. - --- - This struct is intended for direct use as an array at the field path .status.conditions. For example, - - - type FooStatus struct{ - // Represents the observations of a foo's current state. - // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" - // +patchMergeKey=type - // +patchStrategy=merge - // +listType=map - // +listMapKey=type - Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` - - - // other fields - } + description: Condition contains details for one aspect of the current state of this API Resource. type: object required: - lastTransitionTime @@ -316,12 +255,7 @@ spec: - "False" - Unknown type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. type: string maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ @@ -332,24 +266,7 @@ spec: overrides: type: array items: - description: |- - Condition contains details for one aspect of the current state of this API Resource. - --- - This struct is intended for direct use as an array at the field path .status.conditions. For example, - - - type FooStatus struct{ - // Represents the observations of a foo's current state. - // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" - // +patchMergeKey=type - // +patchStrategy=merge - // +listType=map - // +listMapKey=type - Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` - - - // other fields - } + description: Condition contains details for one aspect of the current state of this API Resource. type: object required: - message @@ -396,12 +313,7 @@ spec: - "False" - Unknown type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. type: string maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ @@ -416,24 +328,7 @@ spec: conditions: type: array items: - description: |- - Condition contains details for one aspect of the current state of this API Resource. - --- - This struct is intended for direct use as an array at the field path .status.conditions. For example, - - - type FooStatus struct{ - // Represents the observations of a foo's current state. - // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" - // +patchMergeKey=type - // +patchStrategy=merge - // +listType=map - // +listMapKey=type - Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` - - - // other fields - } + description: Condition contains details for one aspect of the current state of this API Resource. type: object required: - lastTransitionTime @@ -481,12 +376,7 @@ spec: - "False" - Unknown type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. type: string maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ diff --git a/vendor/github.com/operator-framework/api/crds/operators.coreos.com_operatorgroups.yaml b/vendor/github.com/operator-framework/api/crds/operators.coreos.com_operatorgroups.yaml index 2061eaa9aa..5e314f9c57 100644 --- a/vendor/github.com/operator-framework/api/crds/operators.coreos.com_operatorgroups.yaml +++ b/vendor/github.com/operator-framework/api/crds/operators.coreos.com_operatorgroups.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 + controller-gen.kubebuilder.io/version: v0.16.1 name: operatorgroups.operators.coreos.com spec: group: operators.coreos.com @@ -115,20 +115,17 @@ spec: UpgradeStrategy defines the upgrade strategy for operators in the namespace. There are currently two supported upgrade strategies: - Default: OLM will only allow clusterServiceVersions to move to the replacing phase from the succeeded phase. This effectively means that OLM will not allow operators to move to the next version if an installation or upgrade has failed. - TechPreviewUnsafeFailForward: OLM will allow clusterServiceVersions to move to the replacing phase from the succeeded phase or from the failed phase. Additionally, OLM will generate new installPlans when a subscription references a failed installPlan and the catalog has been updated with a new upgrade for the existing set of operators. - WARNING: The TechPreviewUnsafeFailForward upgrade strategy is unsafe and may result in unexpected behavior or unrecoverable data loss unless you have deep understanding of the set of operators being managed in the namespace. @@ -147,24 +144,7 @@ spec: description: Conditions is an array of the OperatorGroup's conditions. type: array items: - description: |- - Condition contains details for one aspect of the current state of this API Resource. - --- - This struct is intended for direct use as an array at the field path .status.conditions. For example, - - - type FooStatus struct{ - // Represents the observations of a foo's current state. - // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" - // +patchMergeKey=type - // +patchStrategy=merge - // +listType=map - // +listMapKey=type - Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` - - - // other fields - } + description: Condition contains details for one aspect of the current state of this API Resource. type: object required: - lastTransitionTime @@ -212,12 +192,7 @@ spec: - "False" - Unknown type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. type: string maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ @@ -247,7 +222,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -400,7 +374,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- diff --git a/vendor/github.com/operator-framework/api/crds/operators.coreos.com_operators.yaml b/vendor/github.com/operator-framework/api/crds/operators.coreos.com_operators.yaml index 0b570b1b2e..cf7c5312f4 100644 --- a/vendor/github.com/operator-framework/api/crds/operators.coreos.com_operators.yaml +++ b/vendor/github.com/operator-framework/api/crds/operators.coreos.com_operators.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 + controller-gen.kubebuilder.io/version: v0.16.1 name: operators.operators.coreos.com spec: group: operators.coreos.com @@ -144,7 +144,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- diff --git a/vendor/github.com/operator-framework/api/crds/operators.coreos.com_subscriptions.yaml b/vendor/github.com/operator-framework/api/crds/operators.coreos.com_subscriptions.yaml index e9eedba916..e5bf29e9de 100644 --- a/vendor/github.com/operator-framework/api/crds/operators.coreos.com_subscriptions.yaml +++ b/vendor/github.com/operator-framework/api/crds/operators.coreos.com_subscriptions.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 + controller-gen.kubebuilder.io/version: v0.16.1 name: subscriptions.operators.coreos.com spec: group: operators.coreos.com @@ -350,7 +350,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). type: array items: type: string @@ -365,7 +365,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). type: array items: type: string @@ -522,7 +522,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). type: array items: type: string @@ -537,7 +537,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). type: array items: type: string @@ -695,7 +695,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). type: array items: type: string @@ -710,7 +710,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). type: array items: type: string @@ -867,7 +867,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). type: array items: type: string @@ -882,7 +882,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). type: array items: type: string @@ -1009,9 +1009,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" optional: @@ -1070,9 +1068,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" optional: @@ -1102,9 +1098,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" optional: @@ -1124,9 +1118,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" optional: @@ -1153,11 +1145,9 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. It can only be set for containers. type: array items: @@ -1172,6 +1162,12 @@ spec: the Pod where this field is used. It makes that resource available inside a container. type: string + request: + description: |- + Request is the name chosen for a request in the referenced claim. + If empty, everything from the claim is made available, otherwise + only the result of this request. + type: string x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map @@ -1323,10 +1319,8 @@ spec: RecursiveReadOnly specifies whether read-only mounts should be handled recursively. - If ReadOnly is false, this field has no meaning and must be unspecified. - If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this @@ -1334,11 +1328,9 @@ spec: supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. - If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). - If this field is not specified, it is treated as an equivalent of Disabled. type: string subPath: @@ -1377,7 +1369,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - TODO: how do we prevent errors in the filesystem from compromising the machine type: string partition: description: |- @@ -1419,6 +1410,7 @@ spec: Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. type: string + default: ext4 kind: description: 'kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared' type: string @@ -1427,6 +1419,7 @@ spec: readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. type: boolean + default: false azureFile: description: azureFile represents an Azure File Service mount on the host and bind mount to the pod. type: object @@ -1485,9 +1478,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" x-kubernetes-map-type: atomic @@ -1529,9 +1520,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" x-kubernetes-map-type: atomic @@ -1599,9 +1588,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" optional: @@ -1640,9 +1627,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" x-kubernetes-map-type: atomic @@ -1764,7 +1749,6 @@ spec: The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. - Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity @@ -1775,17 +1759,14 @@ spec: information on the connection between this volume type and PersistentVolumeClaim). - Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. - Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. - A pod can use both types of ephemeral volumes and persistent volumes at the same time. type: object @@ -1800,7 +1781,6 @@ spec: entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). - An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until @@ -1810,11 +1790,9 @@ spec: this should not be necessary, but it may be useful when manually reconstructing a broken cluster. - This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. - Required, must not be nil. type: object required: @@ -2013,7 +1991,7 @@ spec: set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled. + (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default). type: string volumeMode: description: |- @@ -2032,7 +2010,6 @@ spec: fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. - TODO: how do we prevent errors in the filesystem from compromising the machine type: string lun: description: 'lun is Optional: FC target lun number' @@ -2099,9 +2076,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" x-kubernetes-map-type: atomic @@ -2132,7 +2107,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - TODO: how do we prevent errors in the filesystem from compromising the machine type: string partition: description: |- @@ -2209,9 +2183,6 @@ spec: used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath - --- - TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not - mount host directories as read/write. type: object required: - path @@ -2228,6 +2199,41 @@ spec: Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath type: string + image: + description: |- + image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine. + The volume is resolved at pod startup depending on which PullPolicy value is provided: + + - Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. + - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. + - IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. + + The volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation. + A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message. + The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field. + The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images. + The volume will be mounted read-only (ro) and non-executable files (noexec). + Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath). + The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type. + type: object + properties: + pullPolicy: + description: |- + Policy for pulling OCI objects. Possible values are: + Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. + Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. + IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. + Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. + type: string + reference: + description: |- + Required: Image or artifact reference to be used. + Behaves in the same way as pod.spec.containers[*].image. + Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets. + More info: https://kubernetes.io/docs/concepts/containers/images + This field is optional to allow higher level config management to default or override + container images in workload controllers like Deployments and StatefulSets. + type: string iscsi: description: |- iscsi represents an ISCSI Disk resource that is attached to a @@ -2251,7 +2257,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi - TODO: how do we prevent errors in the filesystem from compromising the machine type: string initiatorName: description: |- @@ -2267,6 +2272,7 @@ spec: iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp). type: string + default: default lun: description: lun represents iSCSI Target Lun number. type: integer @@ -2294,9 +2300,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" x-kubernetes-map-type: atomic @@ -2405,10 +2409,14 @@ spec: type: integer format: int32 sources: - description: sources is the list of volume projections + description: |- + sources is the list of volume projections. Each entry in this list + handles one source. type: array items: - description: Projection that may be projected along with other supported volume types + description: |- + Projection that may be projected along with other supported volume types. + Exactly one of these fields must be set. type: object properties: clusterTrustBundle: @@ -2416,14 +2424,11 @@ spec: ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field of ClusterTrustBundle objects in an auto-updating file. - Alpha, gated by the ClusterTrustBundleProjection feature gate. - ClusterTrustBundle objects can either be selected by name, or by the combination of signer name and a label selector. - Kubelet performs aggressive normalization of the PEM contents written into the pod filesystem. Esoteric PEM features such as inter-block comments and block headers are stripped. Certificates are deduplicated. @@ -2551,9 +2556,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" optional: @@ -2670,9 +2673,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" optional: @@ -2759,7 +2760,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd - TODO: how do we prevent errors in the filesystem from compromising the machine type: string image: description: |- @@ -2772,6 +2772,7 @@ spec: Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it type: string + default: /etc/ceph/keyring monitors: description: |- monitors is a collection of Ceph monitors. @@ -2786,6 +2787,7 @@ spec: Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it type: string + default: rbd readOnly: description: |- readOnly here will force the ReadOnly setting in VolumeMounts. @@ -2806,9 +2808,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" x-kubernetes-map-type: atomic @@ -2818,6 +2818,7 @@ spec: Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it type: string + default: admin scaleIO: description: scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. type: object @@ -2833,6 +2834,7 @@ spec: Ex. "ext4", "xfs", "ntfs". Default is "xfs". type: string + default: xfs gateway: description: gateway is the host address of the ScaleIO API Gateway. type: string @@ -2856,9 +2858,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" x-kubernetes-map-type: atomic @@ -2870,6 +2870,7 @@ spec: storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned. type: string + default: ThinProvisioned storagePool: description: storagePool is the ScaleIO Storage Pool associated with the protection domain. type: string @@ -2971,9 +2972,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" x-kubernetes-map-type: atomic @@ -3059,7 +3058,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -3146,7 +3144,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- diff --git a/vendor/github.com/operator-framework/api/crds/zz_defs.go b/vendor/github.com/operator-framework/api/crds/zz_defs.go index 3fd52828d3..2bdb4ce915 100644 --- a/vendor/github.com/operator-framework/api/crds/zz_defs.go +++ b/vendor/github.com/operator-framework/api/crds/zz_defs.go @@ -85,7 +85,7 @@ func (fi bindataFileInfo) Sys() interface{} { return nil } -var _operatorsCoreosCom_catalogsourcesYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x7d\x69\x73\x1b\x39\xb2\xe0\xe7\xe7\x5f\x81\xd0\xbe\x08\x4b\x1e\x92\xb2\x7b\xde\xf6\xbe\xd1\xf4\x11\x7a\xf2\xb1\x8a\xf6\xa1\xb0\xd4\xfd\x62\xc7\xe3\x5d\x83\x55\x49\x12\xad\x2a\xa0\x1a\x40\x49\x62\x1f\xff\x7d\x03\x09\xa0\x0e\x92\x75\x91\x3a\xec\x1e\xe0\x43\xb7\xc5\xaa\xc2\x91\xc8\x4c\xe4\x0d\x9a\xb1\x9f\x40\x2a\x26\xf8\x11\xa1\x19\x83\x1b\x0d\xdc\xfc\xa5\x26\x97\xff\xa9\x26\x4c\x1c\x5e\x3d\x7b\x74\xc9\x78\x7c\x44\x4e\x72\xa5\x45\xfa\x1e\x94\xc8\x65\x04\xcf\x61\xc6\x38\xd3\x4c\xf0\x47\x29\x68\x1a\x53\x4d\x8f\x1e\x11\x42\x39\x17\x9a\x9a\x9f\x95\xf9\x93\x90\x48\x70\x2d\x45\x92\x80\x1c\xcf\x81\x4f\x2e\xf3\x29\x4c\x73\x96\xc4\x20\xb1\x73\x3f\xf4\xd5\xd3\xc9\xb3\xff\x39\x79\xfa\x88\x10\x4e\x53\x38\x22\x11\xd5\x34\x11\x73\x3b\x96\x9a\x88\x0c\x24\xd5\x42\xaa\x49\x24\x24\x08\xf3\xbf\xf4\x91\xca\x20\x32\x83\xcc\xa5\xc8\xb3\x23\xb2\xf1\x1d\xdb\x9f\x9f\x0b\xd5\x30\x17\x92\xf9\xbf\x09\x19\x13\x91\xa4\xf8\x6f\xb7\x46\x3b\xec\x39\x0e\x8b\xbf\x27\x4c\xe9\x1f\xd6\x9f\xbd\x66\x4a\xe3\xf3\x2c\xc9\x25\x4d\x56\x27\x8c\x8f\xd4\x42\x48\xfd\xb6\x1c\xde\x0c\x17\x51\xad\x64\x64\x1f\x33\x3e\xcf\x13\x2a\x57\xbe\x7d\x44\x88\x8a\x44\x06\x47\x04\x3f\xcd\x68\x04\xf1\x23\x42\x1c\xa4\x5c\x57\x63\x42\xe3\x18\xa1\x4f\x93\x33\xc9\xb8\x06\x79\x22\x92\x3c\xe5\xc5\x50\xe6\x9d\x18\x54\x24\x59\xa6\x11\xc2\x17\x0b\x20\x99\x04\xad\x97\x08\x12\x22\x66\x44\x2f\xc0\x8f\x5d\x7c\x45\xc8\xcf\x4a\xf0\x33\xaa\x17\x47\x64\x62\x20\x3c\x89\x99\xca\x12\xba\x34\xb3\xa9\xbc\x65\xb7\xe9\xb9\x7d\x56\xf9\x5d\x2f\xcd\xd4\x95\x96\x8c\xcf\xdb\xa6\x62\xde\xeb\x3f\x07\x0b\x9a\x8b\x65\xb6\x3e\x85\x95\x1f\xfb\x8e\x9f\xe5\xd3\x84\xa9\x05\xc8\xfe\x93\x28\x3e\x59\x9b\xc3\xd9\x86\x27\x0d\x13\xa9\x74\xea\xe9\x66\x12\x49\x40\x92\xb9\x60\x29\x28\x4d\xd3\x6c\x6d\x80\xe3\xf9\xfa\x1a\x63\xaa\xfd\x8f\xf6\xa5\xab\x67\x34\xc9\x16\xf4\x99\xfb\x51\x45\x0b\x48\x69\x89\x0f\x22\x03\x7e\x7c\x76\xfa\xd3\x5f\xcf\x57\x1e\x90\x3a\x74\x6a\x78\x4e\x98\x22\x94\x48\xc8\x84\x62\x5a\xc8\xa5\x81\xd6\xc9\xf9\x4f\x6a\x44\x4e\xde\x3f\x57\x23\x42\x79\x5c\x10\x1e\xc9\x68\x74\x49\xe7\xa0\x26\x6b\x73\x15\xd3\x9f\x21\xd2\x95\x9f\x25\xfc\x92\x33\x09\x71\x75\x16\x06\x3c\x1e\x26\x2b\x3f\x1b\xf8\x57\x7e\xca\xa4\x19\x53\x57\x08\xd9\xb6\x0a\x33\xab\xfd\xbe\xb2\xc2\xdf\xc7\x2b\x4f\x09\x31\x80\xb1\x5f\x92\xd8\x70\x36\x50\x88\x14\x8e\xea\x20\x76\xd0\xb4\xc8\xc2\x94\x81\x88\x04\x05\xdc\xf2\x3a\xf3\x33\xe5\x6e\x95\x93\xb5\xce\xcf\x41\x9a\x8e\x0c\x43\xc8\x93\xd8\xb0\xc4\x2b\x90\x9a\x48\x88\xc4\x9c\xb3\x5f\x8b\xde\x15\xd1\x02\x87\x4d\xa8\x06\xa5\x09\xd2\x35\xa7\x09\xb9\xa2\x49\x0e\x08\xec\xb5\xbe\x53\xba\x24\x12\xcc\xb8\x24\xe7\x95\x1e\xf1\x13\xb5\x3e\x97\x37\x42\x02\x61\x7c\x26\x8e\xc8\x42\xeb\x4c\x1d\x1d\x1e\xce\x99\xf6\xcc\x3e\x12\x69\x9a\x73\xa6\x97\x87\xc8\xb7\xd9\x34\x37\x0c\xf5\x30\x86\x2b\x48\x0e\x15\x9b\x8f\xa9\x8c\x16\x4c\x43\xa4\x73\x09\x87\x34\x63\x63\x5c\x0c\x47\x86\x3f\x49\xe3\xff\x21\xa1\xca\x01\x57\xd1\x60\x85\x1a\x88\xe7\xbb\x03\x37\xcb\xf0\x63\x8b\x98\xb6\x43\xbb\xd8\x72\x4f\xcc\x4f\x06\x8c\xef\x5f\x9c\x5f\x10\x3f\x23\xbb\x6f\x76\x8b\xca\x57\x37\x40\xc8\xef\x96\x81\x2c\xe3\x33\x90\xf6\xcb\x99\x14\x29\xf6\x0a\x3c\xce\x04\xe3\xda\x72\x8d\x84\x01\xd7\x44\xe5\xd3\x94\x69\x85\x68\x0d\x4a\x9b\x8d\x5c\xef\xf8\x04\x0f\x47\x32\x05\x92\x67\x86\x78\xe3\xf5\x57\x4e\x39\x39\xa1\x29\x24\x27\x54\xc1\xbd\xef\x9d\xd9\x23\x35\x36\x1b\xd2\x7b\xf7\xaa\x47\xff\xfa\x07\x6b\x54\x4f\x88\x3f\xb3\x7b\xbd\xdc\xc4\x26\x88\xe5\x09\x9b\xce\x04\xd2\xc2\x1d\x4c\xa3\x71\x2c\x41\x6d\x78\xd0\x8d\x75\xa6\x1d\xdb\xcf\x2d\xf2\x2d\x84\x32\x48\x40\x35\x79\xf7\xfa\x0d\x89\x28\x27\xb9\x02\x43\xc2\x91\xe0\xdc\x60\x99\x16\x84\x9a\x33\x77\x0c\x37\x4c\x21\x56\x4a\x98\x33\xa5\xe5\x72\x7d\x6f\x4d\x7b\x29\x64\x4a\xf5\x11\xf9\xc6\xbf\x36\xc6\x21\x84\x24\x2c\xfb\xee\xe8\x9b\x4c\x48\xfd\xdd\xc6\x0f\xdf\xf1\x64\x69\x06\x8f\xc9\xf5\x02\x38\x39\x2f\x20\x43\xbe\xad\xfc\xf1\x4a\x66\xd1\xe6\x81\x4f\xe7\x5c\x48\xff\xb5\x41\xeb\xd3\x94\xce\x81\xcc\x18\x24\x48\x68\x0a\x36\x70\xb5\x16\xb4\x20\x56\xf0\x9b\xb1\xf9\x1b\x9a\x6d\x0b\xeb\x13\xdf\x81\x99\x81\x99\x54\x55\x6c\x29\x1f\x6a\x81\x14\x65\x16\x6f\xfe\x49\xa3\x4b\x42\xdd\xe0\x29\xcd\xc6\x0a\xa9\xb9\x03\xf0\xfd\xe0\x77\xe2\x3b\x35\x3b\x52\xfe\x7c\xea\xb8\xf4\x60\x08\x55\x81\x30\xf8\xdb\x52\x28\xeb\x84\xef\x9b\x4d\x67\x6a\x8f\x31\xe6\x32\x8b\xce\x44\x6c\x97\xbd\xed\x2e\xbe\xaa\x76\x42\xe0\x26\x13\x0a\x14\x89\xd9\x6c\x06\xd2\x70\x4e\x71\x05\x52\xb2\x18\x14\x99\x09\x89\x5b\x9b\x89\x18\xd9\x44\xb1\xd5\x35\x79\xe4\x4c\x6c\x60\x9b\x64\x10\x0d\xa0\xd0\x62\x31\xbc\x0b\xb7\x37\x32\x25\xd2\xc1\x63\x4c\xa3\x33\x54\x8f\x96\x9b\x9f\xae\x80\xee\xd8\xbd\xec\x11\xdd\x89\xa2\x8e\xc3\x3d\x56\x06\x24\x8f\x55\xd1\xe7\xe6\xf5\x77\x4e\xb9\xcf\xb4\x4d\xe3\x22\x86\xe3\x8e\xe9\xaf\x2d\xe1\x39\xfe\x31\x05\x85\x9f\x17\x53\x45\xc1\x26\xce\x13\xe4\x7d\x79\x52\xdf\xe5\xa6\x75\xf4\x5c\x4b\xdf\xf5\xd8\xf7\x60\x06\x52\x42\xfc\x3c\x37\xa8\x7e\x5e\xcc\xca\x71\x3e\xfb\xf3\x8b\x1b\x88\xf2\x26\x72\x6c\x5c\x7a\x03\xe2\x57\x9b\x51\x38\x1c\x24\x40\x92\x6b\x96\x24\x6e\x46\x86\x65\xf9\x07\x06\x24\x28\x01\x1a\x08\x2a\x7b\xb0\x28\xaa\x99\x9a\x2d\x3b\x07\x30\x10\x2d\x60\x0e\x37\x46\xb8\x41\x6d\x11\x09\x89\xcd\x18\xc4\x64\xba\x74\x72\x8c\x61\xea\x23\x32\xcd\x35\x61\x1a\x85\x9c\x68\x21\x84\x5a\x3d\x44\xd7\x1b\xb5\x5b\x8b\xf3\xba\x62\x02\x65\x54\x22\x38\x18\x6e\x98\x1a\xc9\xc4\xd1\x6b\x65\xf8\x09\xae\xbc\xfc\x8c\xad\x0a\x16\xeb\x2d\x35\x27\x5e\xb1\x5d\x9e\x22\xcc\x30\xd7\x4c\x2f\xf0\x8f\xb9\x51\x97\x8c\x7c\xac\xf2\xd4\x0c\x7a\x0d\x6c\xbe\xd0\x6a\x44\xd8\x64\x83\xd0\xb4\xda\x0c\x02\x02\x8d\x16\x95\x69\xa5\x00\x5a\x11\x9a\x24\x7e\x09\x55\xac\xb5\x12\x48\x6a\x64\x45\xb2\xef\x85\xc9\xce\x51\x9c\x20\x38\x2a\x24\x98\x55\xc4\xdb\xb8\x5d\x23\x02\x3a\x9a\x1c\x8c\x3a\xbb\x8f\x44\x9a\xe5\x1a\x8c\x04\x9c\xa7\x66\x6b\x99\x36\x3a\x98\x15\x7c\xa5\xc8\xe7\x16\x52\x90\xb8\x89\x7b\xb5\xc5\x9e\xe8\x86\xff\xd1\x38\xde\xc4\xf3\x57\xdb\x9e\x05\xee\x9e\xd7\x4c\xcc\x70\xcc\x02\x09\xe1\x97\x52\x1d\x2d\x9c\xb2\x14\x09\x29\x41\x65\x82\x9b\x9e\xed\x93\x17\xe5\xda\xfe\x6e\xde\xe9\x1c\xcf\x74\xba\xaf\x0e\xca\xcd\x5e\xb0\xf9\xc2\xef\x35\x95\x80\xbf\xd5\x71\xa4\x6b\xcb\x2d\x2b\xa1\x52\xd2\x2e\x3a\x62\x1a\xd2\x0e\x46\x42\xb6\xa0\x7e\x42\x8e\x39\x81\x34\xd3\xcb\x0a\x62\x57\x50\x4c\x83\x4c\x0b\x40\x22\x16\x22\xdb\x53\x16\x08\x2c\xcd\x12\x16\x31\xed\xd0\x9c\x3c\xed\x31\xde\xbe\xa1\x04\xc2\xb4\x39\x34\x08\x17\x63\x91\x1d\x4c\xc8\x31\xe1\x79\xc1\x78\xda\xa6\xc0\x45\x31\x03\xd7\x91\x99\x96\x12\x65\x5f\xdd\xfc\xa8\x1f\xfb\xb6\xad\x59\xc8\x5f\x6f\x63\x37\x7f\xe0\x3d\x88\xd0\xbc\x6e\xa1\xd6\xf9\x6a\xdf\x83\xc4\xbf\xed\xe7\xd0\xe7\xed\xd5\xd3\xde\x52\x8e\x82\x04\x22\x6d\x4e\x43\x90\xe9\x88\x50\xa5\x44\xc4\x8c\x56\x58\xe2\x7e\x9d\xa0\xec\x4a\xba\x61\x4f\x86\xc2\x9f\x0c\x5e\x3f\x41\xc3\x43\x9d\xbe\xfb\x7e\xb7\x06\x8d\x84\x19\x1d\x67\xb6\x02\x95\x1a\xdf\x9d\x2e\xf1\xe9\x63\x45\x12\x3a\x85\x64\x83\xd2\xde\xd4\xfa\x13\x7f\xd9\x7a\xb2\x81\x86\x05\xf5\x62\x08\x65\x5b\xc5\x86\xca\xba\x9d\x89\xa3\xc0\x13\x73\x54\x19\xd5\x9e\x32\xae\x9c\x7d\x67\x44\x28\xb9\x84\xa5\xb5\xc3\x51\x5e\x98\xe2\x06\x4d\x01\x3b\x96\x60\x0f\x74\x83\x77\x97\xb0\xc4\x0e\x9b\x6c\x48\x2d\x5d\x0d\xc5\x3b\xdb\x86\x70\x80\xb2\x8d\xcd\x44\x07\x7e\xb1\x05\x80\x86\x93\x86\x6d\x97\xd0\x2a\x3e\x6f\x6a\x6b\x56\x6a\x44\x77\xdc\x0f\xdc\x24\x3c\x81\x3d\x3e\xd0\x2c\x4b\x18\x6c\x36\x35\xb5\xb7\x56\xad\xaf\xad\x79\xe8\xed\xb4\xae\x81\x04\x62\xda\xfb\xc2\x5c\x67\xf1\xfd\xb1\xb2\xf8\x6a\xf8\xce\x82\x65\xd6\xd0\xa2\x00\xd9\xc8\x70\xa4\xb5\xed\x27\x9a\xb0\xd2\x96\xad\x50\xd8\x38\xe5\x23\xf2\x56\x68\xf3\xbf\x17\x37\x4c\x19\x19\xf3\xb9\x00\xf5\x56\x68\xfc\x73\x42\x5e\x69\x4b\x7a\xaf\x7b\xf2\xe5\xb2\x6d\xbd\x07\x76\x7d\xf7\xbd\x03\xc7\xdc\x32\x51\x03\xe1\xaa\xd1\x55\x4d\xc8\xa9\x15\x07\x0b\x2f\x00\x53\xe4\x94\x1b\xa5\xc0\x42\x6e\xf0\x50\x68\x77\xc7\xbe\xdd\x90\x69\xae\xd0\x6a\xca\x05\x1f\xa3\x18\xb5\x71\x4c\xbb\x41\x66\xdc\xea\x16\xdd\xe2\xf0\xcd\x43\xbf\x42\x1b\xdd\x6b\x3d\xaa\x7c\x3c\x78\xdc\xca\x60\x0b\x7a\x85\xa2\x3d\xe3\xf3\xa4\x10\xe2\x47\xe4\x7a\xc1\xa2\x85\xd5\x1e\xa7\x60\x9d\x03\x99\x04\x23\x31\x50\x65\x98\xbf\xf9\x65\x0e\x72\x38\xea\x5f\x18\xd5\xc0\x8e\x6f\x5d\x1b\x09\x8d\x20\x26\x31\xaa\x2c\xd6\xca\x4e\x35\xcc\x59\x44\x52\x90\x73\x20\x99\x39\xfa\xb7\x43\xf8\x61\x27\xb1\x6d\x83\xcf\xe3\xea\x80\x5b\x50\x18\x21\x37\xe3\xcb\x7c\x0a\x92\x83\x06\x35\x36\xf2\xc9\xd8\xcd\x5e\x8b\x94\x45\xbd\x3b\xbb\x95\x6e\x50\xce\x7a\x69\xf4\xb6\x7b\x12\xb1\x50\x47\x0c\x22\x56\x10\xb1\x82\x88\x15\x44\xac\x20\x62\xf5\x6e\x41\xc4\xda\x79\xf8\x20\x62\x05\x11\xeb\xde\x45\xac\x5a\x17\x29\xcd\x86\xf6\x60\xed\x72\x5b\x18\x02\xff\xdb\x1a\x74\x57\x2d\x7f\x28\xf0\xf9\x10\x96\xba\x09\xd0\xc8\x31\xe7\xee\x70\xba\x40\xb3\x21\xb3\xfe\x7a\x49\xf9\x1c\xc8\xb3\xf1\xb3\xa7\x4f\x87\x18\x08\x1d\x3a\xf7\xfa\x62\xe6\x82\x13\x18\xd7\x7f\xfd\xaa\xe3\x8b\x1d\x76\xa5\xc9\x5f\x72\x3f\x8e\x3a\xc7\x79\x0a\xdf\x4c\x4d\x44\x6e\xf0\xa5\xe1\x31\xc6\x85\x26\x29\x68\x42\xbb\x65\xb2\xaa\xd9\x9d\xa5\x30\x2a\x9c\xde\xc8\x76\x5c\x84\x90\x77\x0a\xc6\x44\x70\xe7\x7a\x31\x9b\xdf\xbd\xb9\x5b\xad\x20\x02\x6a\x23\x57\xa6\x60\x56\xd1\xed\x0a\xd4\x44\x89\xd4\xcc\x9a\x71\xed\x99\x98\x59\x02\xf8\x8d\x21\xfb\x30\x99\x4f\x48\x9c\x63\xb7\x94\xbb\x90\xa7\x03\xbb\x5a\xb5\x54\x1a\xd2\x6e\x5f\xa0\x39\x0c\x25\xfe\xcf\x80\x45\xcb\xa5\xe9\x0c\xae\x80\xeb\x9c\x26\xc9\x92\xc0\x15\x8b\x74\x01\x3f\x8c\xd0\x62\x5a\xf5\x82\xd4\x00\x31\xba\xbf\xe8\x3c\x5e\xa3\xd0\xae\x43\x6a\x88\xe4\xbb\xd6\x77\x1f\x9e\x53\xa3\x80\xf7\x6e\x25\x93\x46\x9d\x50\x9b\x7e\xad\xdb\x16\xff\x89\xc8\xfd\xee\x7d\xb7\x97\x8d\x0c\x3e\x7f\x06\x9c\x39\xdb\x89\x56\xce\xe1\x25\xa4\x73\xbe\xad\xaf\x74\x83\xcb\xcb\xae\xbd\x46\x35\x62\xd6\x73\x40\xbd\x00\xeb\xa4\x3c\x7e\xfb\xbc\x1f\xc4\x88\x0b\x0e\xb8\x10\x99\x48\xc4\x7c\x59\xdd\x5e\x1b\x22\xcd\xd2\xcc\x3b\x71\x29\x51\xf9\xd4\x89\xe0\x06\xe7\xdf\xae\xe0\x43\x70\x0d\x05\xd7\x50\xb0\x5b\x60\x0b\x76\x8b\x60\xb7\x08\x76\x8b\x7e\x2d\xd8\x2d\x76\x1e\x3e\xd8\x2d\x82\xdd\x22\xb8\x86\xd6\x5b\x10\xb1\xba\x5b\x10\xb1\x5a\x5b\x10\xb1\x8a\x16\x44\xac\x20\x62\x05\x11\x2b\x88\x58\x41\xc4\xba\xaf\x6e\x76\x75\x0d\xed\x34\x85\xed\x06\xcf\x44\xbc\x43\xf2\x56\x26\xe2\x96\xdc\x2d\x6b\xd3\x8f\xc4\x38\x11\x11\xd5\x2e\xa3\xda\x7c\xe2\xbc\x50\x8a\xa6\xd6\x4d\x31\x22\xbf\x0a\x0e\x36\x9b\xc5\x90\x07\x3a\x0b\x84\x5e\x80\x34\xaf\xef\xab\x83\xd6\x14\x82\x90\xfb\x15\x72\xbf\x42\xee\x57\x63\xfb\x6c\x72\xbf\x16\x54\x59\xbc\xb5\x47\x63\x73\x2a\x58\x85\x27\x5d\x80\x4c\xff\xa4\x99\x60\x06\xdd\x1d\x3a\x62\x3d\x90\x12\xa5\x2c\x64\x62\xe7\xf0\x87\xf8\xac\x0e\x0f\xa7\x56\xe3\xa2\x68\x1c\x43\x4c\x32\x90\x63\x8b\xa2\x82\xcc\x18\x8f\x37\xac\xd5\xc3\xa7\x9b\x3d\xdc\x61\x2a\x56\x7d\x1d\xbd\xbe\xb9\x9b\x7c\xac\xfa\x44\xb6\x70\x2a\x56\x3d\xa3\xb5\x43\xf0\xb3\xc8\xce\x1a\xaa\xa1\x8f\x89\x76\x0e\xc5\x1f\x7a\xea\xe8\xc3\xd5\x6c\x54\x8e\xbd\xfb\x71\x4b\xf3\xd3\x20\x55\xe8\xd8\xe9\xe3\xbf\xe4\x20\x97\x58\x37\xa0\x54\x3b\x8b\xb2\x33\x2e\x22\x86\x29\x12\x51\x65\x8f\xd5\x21\xa2\xf2\xe9\xcc\x66\x4d\xf2\x3c\x49\x46\xb6\x9f\x55\x62\xf5\x6c\x0e\xf1\x80\x0b\xf3\x7c\xb0\x45\x6c\xa0\x89\x66\x3b\x1b\xc8\xf6\x5e\x58\xb2\xba\x4f\xab\x5d\x59\xdb\x98\x37\x1d\xda\x6d\xd9\x68\x3b\xdc\xe0\x4d\x1f\xec\x1f\xb7\x6d\x5b\x05\x66\x2b\xf5\x65\x67\x7d\xbd\x05\x26\x3b\xd8\x15\xf1\xe5\xc1\x93\xb9\x1d\xdb\x22\xd9\xde\xbe\x48\xb6\xb6\x31\x92\xad\xec\x8c\x64\x5b\x5b\x23\xd9\xc1\xde\x48\xb6\xb3\x39\x92\x55\x6c\x33\x3b\xe4\x04\xdf\xbb\x31\x3f\x92\xdd\x94\xf3\xed\xcd\x90\xe4\x16\x08\xab\x3a\x7e\xa5\x88\xd7\xdd\xd9\x25\x49\x5f\xdb\x24\x92\x55\xcd\x3c\x79\xdf\xfb\xb2\x9d\x69\x92\xdc\xd2\xae\x38\xa3\x1d\x43\x5b\xd8\x7d\x19\x2b\xc9\xc3\x1b\x2c\x5b\xa7\xe0\x86\xef\x6d\xe1\xdb\x6a\xf4\x1d\xac\x82\x64\x27\xcb\x20\xd9\xde\x3a\x48\x76\x45\xf6\x5b\xb3\x12\xde\x6a\x57\x28\x27\xbd\xc6\x38\xb4\x1d\xa4\xad\xc1\x14\x58\x19\xd6\x4a\x17\x58\xa3\x6c\x46\x7e\x33\x42\x04\x22\xe6\x1f\x24\xa3\x4c\x2a\xa3\xdd\x38\xbb\x76\xf5\x99\x33\xdf\x55\xba\x19\x3c\x01\x2c\xd2\x66\xce\xf8\x2b\x9a\x18\x21\xc7\x06\xfd\x3a\x1b\x84\x99\xcb\xaa\x08\x39\x22\xd7\x0b\xa1\xac\x44\x52\xd4\x99\xdb\xbb\x84\xe5\xde\xa8\x97\x79\xa0\xde\xaa\x94\xbd\x77\xca\xf7\xac\xe8\xb4\x46\x97\x85\x9c\x25\x78\xb2\x24\x7b\xf8\x6c\xef\xb6\x65\xd4\x2d\xe4\xa3\x6a\x31\xdf\x6d\xc5\x8f\xad\xc8\x69\x57\x03\x37\xa9\x61\xdf\x0f\xb0\xdc\x36\x10\x61\x10\xce\xbf\xa9\x8d\xe8\x05\x6a\x44\x33\xa3\xbb\x17\x72\x13\x5a\x54\xad\xc8\xe4\x6c\x54\xd6\x5c\xc5\x92\x64\xc0\x68\x53\x20\x9a\x5e\x02\x7a\x78\xb0\xb6\xa3\x62\x31\x1a\xdc\x04\xb7\xa8\x83\x23\x19\x94\xf1\x45\x08\x13\x21\x2e\xf3\xcc\xa3\x9e\x2f\x1c\x3a\x60\x48\xc6\x23\x91\xfa\x98\x7a\x1b\xd7\x6a\xa8\xc2\xd1\xcb\xd8\x96\x3b\xb5\xbf\xe3\xc0\x78\x04\x38\xd3\xc4\xa7\x9a\x62\xfe\x89\x50\x45\x3e\xa1\x50\xc9\xc9\x3e\x7e\x78\xf0\x69\x48\x48\x41\x01\x40\x6b\x7d\x15\x39\x72\x96\xa2\xa0\x65\xc5\xfe\x57\xc0\xb6\x0d\x62\x03\x86\xf6\x95\xe2\xaa\xc0\xb0\xb5\xf0\xc8\x3e\xe5\x9a\x1d\x94\x05\xf1\x08\xe2\x01\x4a\xc9\xb1\xe0\x8f\xb5\x9d\x9f\xe7\x6b\xbe\x83\x21\x51\x07\x05\xdc\x4b\x8f\x9f\xf5\x16\xd8\x2d\x8f\x61\x46\xf3\x44\xbb\xc2\xb3\x86\xf5\xe1\x49\x3f\x60\x84\x0b\xef\x2f\x71\x02\xff\x4c\xc8\x29\x8b\x63\xe0\x98\xe2\xe0\xa7\x3f\x15\x3e\x21\xa8\x44\x77\xc3\xd9\x6a\x7b\x3c\x64\xd8\xe3\x44\x89\xd1\x6a\x8f\x51\x51\x98\xd6\x50\x11\x96\x4f\xac\x0d\x40\x98\x32\x40\x6d\xa8\x94\xd8\xbc\x42\x56\xc8\x83\x49\xb6\xa0\x15\x03\xb4\x63\xb6\x8a\x00\xa7\x53\xb4\x88\xd7\x49\xfa\x94\x57\xac\x2e\x64\x06\x54\xe7\x12\xc8\x9c\xea\x1e\x36\x7e\xdf\xee\x25\xf6\x68\x77\xa6\xbb\x75\xec\x17\x53\x0f\xc0\x78\x57\x07\x0d\xbc\xb7\x17\xef\xe5\x42\x07\xf6\xfb\xc5\xb2\xdf\x35\xa4\xbf\x0d\x0e\xbc\xd6\x69\x60\xc2\xae\x7d\x41\x4c\x98\xfb\x1b\x3a\x1e\xd8\x0f\x62\x4d\x83\x36\x8e\xd7\x4f\x49\x95\x56\x43\x4c\x75\xdb\xce\x62\xe8\x13\x01\x11\x87\xb0\x87\xd8\xbb\x83\x73\xee\x6e\x3e\xf0\xb5\xb9\xdd\xb0\x96\x61\xad\x46\x1d\x0c\x18\xd3\xab\x6e\x82\x83\x42\x27\x03\x14\x11\x26\x95\x61\xb0\xd7\x21\x4b\xc1\x64\xc0\xd2\x80\xca\xe3\xd5\xf4\xc0\xb2\x6f\xf4\x6c\xa4\x40\xb9\x22\x7b\x3e\xc8\xe5\xb1\x2a\xdf\xd8\x1b\x44\xf0\xbe\xf8\x67\x31\xf6\xfe\x6f\x7f\x1c\xd4\x0a\x7e\x96\x43\x07\x4f\x52\xf0\x24\x55\x5b\xf0\x24\xad\x4f\x22\x78\x92\x9a\x5a\xf0\x24\x6d\x35\x7e\xf0\x24\xd5\x5b\xf0\x24\x05\x4f\x52\xf0\x24\x05\x4f\x52\xf0\x24\x05\x4f\x52\xdf\x8f\x6e\xc3\x93\x54\xaa\x41\xf7\xa1\x47\x57\x55\x56\x17\x29\x6f\xaf\x94\xa3\x9a\x45\x65\x5e\xac\x7f\xcb\xfe\xeb\xa1\x94\xea\xaa\x1a\xbc\xab\x4a\x5d\x55\xd0\xd7\x2c\x18\x83\x35\xea\x46\xfd\xb9\xd0\xb0\xd7\xc6\xb8\x25\xd5\xfa\x4f\x6e\x5c\xaa\x84\xf0\xde\x07\x39\x5c\xf8\x64\x1e\x77\x4b\xe5\x14\xca\x4c\x9f\x98\xec\x7b\x63\xef\x81\xd9\x70\x2e\x74\xfd\x21\xd7\x6c\x5c\xbe\x51\x84\x48\xa3\x4d\xda\xd7\xb3\x1b\x02\x74\xaf\xb3\x94\xc6\x4f\x97\x61\x54\xa4\xb4\x94\xd8\x66\xf8\x3f\xc8\xda\x6c\x99\x72\xb7\x78\x62\x72\x9e\xcc\x39\x37\xe2\x91\xe0\x2e\x8f\x65\xc0\x4c\xec\xd1\x62\xed\xcc\x8e\x2a\xad\x32\x85\x6b\x44\x8d\xaa\xdc\xa6\x4a\x0a\x04\xd5\xf6\x4e\x50\x57\x75\x4a\x70\x67\xa5\x37\xbf\xd8\x7e\x06\x4c\xa2\x20\x58\x84\x27\x2b\x56\x34\x84\x56\x5f\x20\x8d\x56\x27\xcb\x14\xee\x23\x4d\x12\x71\x3d\xe4\x7c\x1a\x48\x11\x5b\x97\x47\xec\x8d\xbd\xd7\x83\xeb\x28\xae\xe4\x0b\xf4\x95\xd5\x43\xb1\xc5\xd6\x16\x8a\x2d\x7e\x1e\xc5\x16\x2b\x8e\xd8\x6a\xd5\xc5\x6e\x58\x61\x55\xc6\x3b\xad\xba\x48\xc8\x7f\xbb\x2b\x46\x25\x58\xef\x69\x9e\x68\x96\x95\x79\xd6\xca\xee\x50\x62\x55\xea\x99\xcb\x87\xac\x53\xaf\x99\x0d\x8d\x16\x9d\x43\xad\x50\x39\x8e\x87\x79\xdb\x0a\xb9\xa9\xcd\x19\x44\xfb\xbb\x2d\x75\xe8\x75\x6d\x9b\x78\xc9\x1e\x3a\x9f\xac\x17\xff\x7b\xee\x2e\xab\xae\x3a\xe1\x15\xd9\x37\xa7\x63\xb2\x74\x6e\xeb\x1a\x23\xac\x1d\xab\x3d\x06\xb0\x76\xb0\x2b\xf0\x02\xea\x9c\x5d\x01\x2f\x4f\xdf\x7d\x75\x70\xe0\x65\xe2\x55\xf9\xa1\x47\xef\xbb\x48\x18\x7d\xb8\xf6\x50\xc9\x60\xe5\xbc\xef\x31\xc2\x06\x89\xe0\x9b\xca\x29\xfb\x5d\xb7\x4c\xd0\x63\x10\x4b\xd2\x3e\x41\xb5\xb2\xd1\xa5\x2c\xd0\xd9\xcb\x1d\xe6\x01\x0e\x49\x36\x1b\x66\x15\xdf\x22\xc9\x6c\xdb\x5a\xa1\x77\x9b\x5c\x76\xa7\x89\x65\x5f\x4e\x49\xcf\x07\x76\xff\x7d\x01\xf5\xa8\x3e\x13\x77\x5f\x28\x48\xd5\xd4\x1e\xaa\x20\xd5\x9d\xbb\xf3\xbe\xb8\xba\x54\xf7\xea\xbe\xbb\x1f\xd7\xdd\x17\x56\x97\xea\x41\x5c\x75\x9f\x79\x85\xaa\xbb\x73\xd1\x85\xf2\x4f\x0f\x53\x61\x73\xa8\x1b\x6e\x7b\xaa\x7a\x50\xf7\xdb\x83\xba\xde\x1e\xde\xed\xb6\x95\xac\xb2\xab\xbb\x6d\x30\x99\xec\xea\x66\xdb\x26\x67\x60\x3b\x7c\xbe\xbf\x24\xad\x7b\x4e\x12\xf8\x3c\x92\xb3\x1e\x28\x33\xe0\xa1\xb2\x02\xee\x36\x23\xe0\x01\x92\xb1\xee\x29\x11\xeb\x01\xe3\xff\x87\xca\x1c\x83\x24\x8d\xdd\x18\xe7\x36\xe2\xc0\x96\x09\x57\x5b\x32\xcf\xfb\x4c\xb4\xfa\x13\xf0\xcf\xad\x12\xac\x02\x0b\x7d\x20\x16\x7a\x7b\x09\x55\xf7\x97\x4c\x15\x18\xa9\x6b\x3b\x33\xd2\x2d\x93\xa6\x6e\xcd\xae\x7f\x37\xc9\x52\xf7\x9d\x28\x75\x07\x49\x52\x0f\x91\x20\x75\x07\xc9\x51\xc1\x1b\xd2\xb3\x05\x6f\x48\xdf\x16\xbc\x21\x4d\x2d\x78\x43\x56\x5b\xf0\x86\x04\x6f\x48\xf0\x86\x04\x6f\xc8\xfa\x80\xc1\x1b\x12\xbc\x21\xfd\x5a\xf0\x86\xdc\x8f\x37\x64\x68\xc2\xd1\x76\xb8\xfc\x30\x89\x46\xf7\x9b\x64\x74\xfb\x09\x46\x0f\x98\x5c\xf4\x27\x33\xb8\x0c\x4e\x24\xda\x0e\xcd\x3f\x97\x04\xa2\xcf\x23\x79\xe8\xc1\x13\x87\x76\x4d\x1a\xba\x9d\x84\xa1\x01\xd8\xbe\x25\x9e\x67\x22\x3e\xe6\x9a\xed\x7a\xe9\x55\x15\x01\x9b\x6e\xbe\xa2\x57\x82\xc5\x24\xcb\xb5\xbb\x6c\x27\xdc\x7e\xd5\x89\x03\xf7\x73\xfb\x55\x6d\xf3\xc2\x15\x58\x6d\xed\xb3\xb9\x02\xab\x69\xcf\xc2\x3d\x58\xf5\x16\xee\xc1\x0a\xf7\x60\x85\x7b\xb0\x6c\x0b\xf7\x60\x85\x7b\xb0\x42\xf5\xc2\x50\xbd\x30\x54\x2f\xec\xff\x55\xa8\x5e\xd8\xdc\x42\xf5\xc2\x21\x2d\x54\x2f\xec\x3d\x7a\xa8\x5e\x18\xaa\x17\x0e\x1b\x38\x54\x2f\x24\xa1\x7a\x61\xa8\x5e\xf8\x05\x57\x2f\x0c\xf7\x60\x7d\x11\x77\xb1\x84\x8b\x58\x06\x8c\xfd\x79\x5d\xc4\x12\xee\xc1\x0a\x57\xb0\xac\xb6\x70\x0f\xd6\x17\xc4\x7b\xc3\x3d\x58\x5f\x32\xfb\x0d\xf7\x60\x05\x26\xbc\xb9\x85\x7b\xb0\xc2\x3d\x58\x9d\x2d\xdc\x83\x15\x3c\x49\xc1\x93\x54\x6f\xc1\x93\xd4\xde\x82\x27\xa9\xab\x05\x4f\x52\x6b\x0b\x9e\xa4\xe1\x2d\x78\x92\x82\x27\x29\x78\x92\x82\x27\x29\x78\x92\xc2\x3d\x58\xe1\x1e\xac\x3e\x10\x0c\xf7\x60\x6d\x6e\xe1\x1e\xac\x70\x0f\x56\xb8\x07\xcb\xb6\x70\x0f\x56\xb8\x07\x6b\x73\xf3\xb7\x48\xd5\x32\xa2\xbe\xdc\xcb\xb0\x86\x2f\x23\xdc\x88\x15\x6e\xc4\x6a\x68\xe1\x46\xac\x70\x23\xd6\xa6\x16\x6e\xc4\x0a\x37\x62\xb5\xb4\x50\x03\xb2\x67\x0b\x35\x20\xfb\xb6\x50\x03\xb2\xa9\x85\x1a\x90\xab\x2d\xd4\x80\x0c\x35\x20\x43\x0d\xc8\x50\x03\x72\x7d\xc0\x50\x03\x32\xd4\x80\xec\xd7\x1e\xde\x01\xf7\xaf\x51\x03\x32\xdc\x88\xf5\x59\xde\xe8\x12\xae\x73\xe9\x68\x9f\xcf\x75\x2e\xe1\x46\xac\x7f\xcd\x8b\x5c\xc2\x8d\x58\x9f\x31\xff\x0c\x37\x62\x75\xb7\xcf\x87\x85\x86\x1b\xb1\xfe\x95\x19\x69\xb8\x11\x2b\xdc\x88\x55\xb4\x70\x23\x56\xf0\x86\x34\xb6\xe0\x0d\x21\xc1\x1b\x52\xb4\xe0\x0d\xe9\x35\x6e\xf0\x86\x04\x6f\x48\xf0\x86\xb4\x4f\x3a\x78\x43\x82\x37\xa4\x73\xf0\xe0\x0d\xf9\xd3\x7b\x43\xc2\x8d\x58\xe1\x46\xac\x0d\xed\x4f\x66\x70\x09\x37\x62\x85\x1b\xb1\xfe\x9c\x37\x62\xc1\x8d\x96\x34\xd2\x27\x82\x6b\xe0\x8d\xd9\x46\x7d\xd1\xf9\x45\xad\x37\x73\xba\xce\xd8\x3c\x97\x4e\xef\x9f\xbf\x3f\x3b\x21\x11\xd5\x34\x11\x73\x72\x26\x62\x6b\xd7\xc6\x2f\x8a\x9f\x53\xd0\x34\xa6\x9a\x16\x2e\x11\xa3\x1f\x5f\xb1\x18\x99\x6a\x0c\x37\x84\xa5\x74\x0e\x86\x79\x35\x4e\x22\x57\x40\x28\xb9\x86\x24\x19\x5f\x72\x71\xcd\xc9\x15\x48\x55\x61\xd7\x9f\x44\x96\x7e\x22\x0a\xe4\x95\xbd\x55\x0a\x6e\x32\x83\x68\x4c\xdb\x73\xdf\xcf\xa4\x3a\x5c\x19\x9e\x7f\x62\x9f\x9e\x63\x38\x73\xdb\x05\x4d\xc5\xda\x71\x99\x66\x4e\x4f\x8c\x60\xff\xc4\x10\x75\xae\x7c\x2e\xc1\x8c\x25\x30\x9e\x52\x05\xb1\x1f\x57\x19\x5a\x13\x32\xb6\x73\xcb\x35\x4b\xd8\xaf\xe0\x4e\x13\x6b\xf7\x6e\x42\x9b\x1e\x02\x47\xb7\x21\x64\x4c\x22\x1a\x2d\xe0\x39\x6b\x36\x61\x8c\xfd\x54\x9b\x5f\xea\x63\xd3\xf0\xe3\xf4\xbe\x80\xed\xc4\x7d\xe0\xad\x16\x31\x93\xc8\x9c\x96\x44\x69\x21\x3d\x44\x33\x09\xe3\x88\x26\x51\x9e\x20\x2b\x3a\x3e\x3b\xb5\x23\x75\x5f\xa1\xd6\x41\x62\xe5\xa2\x07\xcc\xd8\x7f\xd2\x3e\xe7\x75\x2c\x40\xc1\x14\xed\x94\xbb\x4c\x3b\x85\x54\xc8\xe5\x05\x95\x73\xd8\x99\xb4\xdf\x54\xfa\x5a\x25\xec\x7f\x7f\xf5\xee\xcd\x8b\x37\xaf\x4f\xdf\x9c\x5e\x38\x7e\xed\x3d\x74\xab\x24\x3f\x29\xbd\x40\x44\x89\x99\x76\x53\x24\x09\x4b\x99\x2e\xbe\xb2\xb4\xd9\xac\x4a\x5b\x7e\x8e\x29\x85\x39\xd7\x2c\x05\xeb\x8e\xa3\x5a\x1b\x51\xc7\xd0\x4d\x0a\xa0\xf1\xce\xb6\x94\x5e\x82\x61\xba\x64\x9e\x53\x49\xb9\x06\x7f\x44\x30\x6d\x3f\x8a\x05\x51\xc2\x29\xf8\x4c\x95\xae\x3b\x05\xda\x26\x52\x9d\x89\x66\x56\x83\x3d\x2c\xe8\x95\xbd\x54\x6b\x26\x0c\x5f\x37\x9b\x9a\x8a\x98\xcd\x58\x64\x2d\x46\x24\xa5\x71\x91\xfc\xe3\x14\x0e\x90\xc5\xb1\x58\x2e\xb8\x8d\x2a\x57\xc1\x0c\xfc\x8a\x49\xc1\x51\x91\xba\xa2\x92\xd1\x69\x02\x85\x53\x52\x81\xb6\xe3\x95\x0b\xe2\x64\xba\xd4\xd0\xcc\xae\xec\x08\x6e\x37\xdc\x6d\x6c\xcd\xfd\x3d\x7a\xd4\xd8\xd1\x45\x99\xa6\x57\x4a\x31\xa6\x03\xe6\xf2\x37\x62\x50\xcc\x71\x45\x09\x71\x1e\x79\xd8\x09\x9d\x49\x66\xd5\x42\x5a\xa0\x8c\xe3\xd2\x54\x91\x34\x37\x47\xb8\x11\x8f\x94\x62\xd3\x04\x46\x46\x08\x62\xcd\xf9\x45\x65\x1f\x53\x30\x60\xc6\x9e\x50\x34\xb9\x02\x83\x70\x06\x91\xad\x0c\x0c\x60\x24\x24\x81\x37\xa3\x51\x2b\xe7\x78\x47\xae\x39\xa8\x23\xe7\xc6\x3f\x9d\x91\xa5\xc8\x65\xed\x5c\x58\x50\x83\xc8\x48\xbe\x8d\x13\x71\x39\x81\xc8\x84\x46\x24\x06\xa3\x51\x30\x6e\x8e\xa8\xb9\x10\xb1\x51\x2c\xa4\xb8\x61\x29\x8e\xe2\x28\xa0\xd8\xb6\xe9\x92\xc4\x22\xb7\x1e\x51\xc4\x13\x73\x16\xb8\x63\x2c\xa3\xd1\xa5\x99\x03\x76\xdc\x96\xcd\x79\xa8\xd3\xec\x10\xdf\x72\xff\x75\x5f\xaa\xc9\xcf\x4a\xf0\xd2\x15\x5e\x2c\x6b\xd2\x6f\x7b\x99\x22\x53\x50\x7a\x0c\xb3\x99\x90\xfa\xef\x66\x83\x73\x8e\x64\xc3\x45\x01\x41\x8f\x42\x18\xf7\x80\xe0\xc6\xb4\x9c\x3a\xdd\x0b\xb9\x81\x85\x54\x90\xaf\x89\x09\x66\x86\xe2\x25\x3f\x22\xff\x77\xff\x9f\x7f\xf9\x7d\x7c\xf0\xfd\xfe\xfe\x87\xa7\xe3\xbf\x7d\xfc\xcb\xfe\x3f\x27\xf8\x8f\x27\x07\xdf\x1f\xfc\xee\xff\xf8\xcb\xc1\xc1\xfe\xfe\x87\x1f\xde\xbc\xba\x38\x7b\xf1\x91\x1d\xfc\xfe\x81\xe7\xe9\xa5\xfd\xeb\xf7\xfd\x0f\xf0\xe2\x63\xcf\x4e\x0e\x0e\xbe\xff\xf7\x86\x09\x51\xbe\x7c\x37\x6b\x25\xe3\x5e\x19\xcd\xe3\x3e\x27\x52\x4d\xd8\x63\x5c\x8f\x85\x1c\xdb\x0f\x8e\x88\x96\xf9\x66\x21\xd7\x48\xc4\x5d\x4e\xe3\xbe\x27\xc2\xdb\x4a\x5f\x2b\xbe\x24\x77\xb1\xa1\x33\x64\x9a\xd9\x14\xbc\x3d\xb3\x72\xdf\xcc\x6c\xbb\x57\x08\x9a\x0f\xb9\xf3\x0d\x3d\xa2\xa4\xef\xbe\x7c\xac\x7c\x40\xc6\x4a\xff\x2b\x89\xc9\x96\xe7\xb7\x8d\xd5\x43\x7a\x1a\x66\x9c\xe9\xdc\xc2\x4c\x32\x21\x99\x5e\x9e\x24\x54\xa9\xb7\x34\x85\x5d\x37\xe4\x74\x56\x2a\x68\x23\x43\xd0\xe6\x04\x72\x47\xb4\x8b\x90\x71\x43\x36\x03\xfc\x74\x86\x1a\x4a\xa5\x1f\x0f\x54\xff\x6d\x41\x98\x9e\xc4\x85\x24\xbf\x82\x14\xee\x8a\x4b\x09\x56\xcb\x69\x1c\xc1\x7d\xd6\xbe\x0f\x2d\x60\x53\x10\xe5\x08\x36\x23\x21\xdd\x18\x5d\x63\xc6\xe6\xbb\x82\xee\x7c\x53\xa7\x24\xa2\xdc\x2c\x14\x2f\x6d\x9d\x91\x4f\x09\xcc\x69\xb4\xfc\x64\x16\xfc\x49\x82\x99\xa2\xd1\x0e\x3f\x59\xb5\xa1\xa6\x18\xb8\x60\x24\xa6\x08\x30\xbc\xc7\x97\xf1\x9f\xad\x2a\xe9\xf5\xf2\xc6\x99\x48\xac\xc9\x90\x89\x78\x62\xf6\x60\xb2\xb2\x5a\x64\xa1\xc5\xc3\x42\x98\xf8\xf0\xe4\xe3\xda\x9b\xce\xce\xa9\x85\x55\x37\xab\xc4\x21\x73\x64\xfb\x6d\x92\x8d\x07\x08\x39\x8e\x53\x86\xc6\x59\xb2\x7f\x76\x7e\x7c\x50\x5b\xb9\x91\x73\xec\x41\x1c\x0b\xf0\xe1\x40\x66\x20\x55\x9a\x59\xf1\x10\xc5\xb4\x4f\x4b\xc2\x98\xf7\xe9\xe7\x62\x00\x8c\x96\xd7\x96\x54\x67\x3f\xd9\xf3\x63\xf2\xc9\xc8\xc8\x09\xe3\x60\xf7\x20\x93\xec\x8a\x25\x30\x37\x33\xa9\x84\x38\x78\x67\xcd\xe6\x3d\x65\xca\x9c\x52\x75\xf4\x4e\x31\x6f\xd9\xa2\x75\x0b\xde\xba\x93\xdb\x45\x9b\x54\xec\x7e\x8f\x15\x4e\xcf\x4b\xc5\xa5\xc0\x50\x7b\x0b\xd1\x81\xcf\x84\x8c\xcc\x71\xbe\x01\x8e\xda\x25\xf6\x1b\xd0\xb4\x8b\x9c\x68\x18\x2a\xf4\x4b\xaa\x0c\xed\xd5\x3a\xbc\xa6\x95\xea\x09\x13\xf2\xce\x20\xe1\x35\x53\x30\x2a\xe4\xde\x8d\x5d\x78\x0c\xbf\xa6\xcd\x92\x62\xa5\xdb\x73\xfc\xe7\xd2\xfa\xa1\x9c\xa1\x06\xd1\x1d\x05\xa9\x26\x7a\x21\x12\x94\xe1\x1b\x8c\xdb\xaf\x58\x6c\x65\x1f\x90\x52\xc8\x89\x2d\x6f\x60\x35\x64\x91\xc4\x2d\xa7\x64\xa1\xa8\x1b\x99\x05\xcd\x50\x16\xbf\x38\x72\x30\x87\x36\x9b\xc1\xdc\x80\x1b\x75\x81\x55\x8b\x62\x09\x6d\x12\xd1\x1b\x81\x45\x11\x6c\xe5\x11\xb3\x0e\x3a\x15\xb9\xb6\x08\x61\xf9\xc7\x4c\xe4\x3c\x26\x86\x35\x1e\x91\x85\xd6\x99\x3a\x3a\x3c\x2c\xcf\xee\x09\x13\x87\xb1\x88\xd4\x61\x24\x78\x04\x99\x56\x87\x9e\x92\x0f\x33\x11\x8f\xfd\x1f\x63\xea\x09\xf1\xf0\xf1\xb6\xac\x93\x10\xe0\x79\xcb\x2d\xaf\x63\x62\xd7\xdb\xf2\x42\x09\xce\x8d\x2f\x69\x91\xb8\x50\xce\xc6\x93\xb1\x7e\xf7\x6f\xf9\x7e\x71\x37\x71\x21\xfb\x57\x58\xe9\x63\x55\xed\xba\xfd\xec\x68\xb3\x3a\x77\xd8\x99\xfb\x9b\x6d\x2f\x3c\x37\x35\xf2\x70\xb9\x0a\x94\x83\xb4\xa6\x78\x6d\xb1\x51\x99\xec\x13\xc3\x08\xf9\x92\x18\x66\xad\xdd\x1d\xda\xd6\x5c\xd9\xa6\xdd\x2f\x8c\xe4\x84\x95\x3d\xbe\x29\x5c\x72\x23\x98\xcd\x20\xd2\xdf\x55\x4c\x48\x45\x6d\x8a\xc2\xe5\xf5\x8d\xff\xd7\x77\xcd\xe7\x7c\x2f\xef\x54\xbf\xd0\x14\x3b\xa5\x76\xbb\xf8\x30\x7b\xf8\x0b\xec\x71\x45\x82\xb1\xc0\xb3\x83\xa1\x8a\x8f\x7e\x6b\x67\x64\xb5\x1e\x0b\x27\x19\x26\x49\xed\xe5\xce\xe0\x0c\xe4\x38\x95\x23\xc1\x99\x67\x4b\x4f\x21\x90\xb7\xc2\x15\xf9\x81\x11\x39\xc3\xab\xa4\xcb\x5f\xf0\x4c\x7e\x2b\x6c\xb9\x9f\x8e\x80\xd4\x9e\xc6\xdc\xce\xd8\x9e\x61\xf0\xfc\xa1\x0c\xf5\xb1\x80\xa9\x85\xfa\x94\x84\x55\xf5\x91\xb5\x02\xf6\x12\x96\x9d\x50\x75\xc7\x9f\x0b\x33\x42\x1f\xd4\xa8\xc4\x51\xaf\x1b\xd8\x28\x8a\xbf\xbb\x9a\x10\x22\x9d\x32\x6e\xa7\x62\x07\xf6\xfb\x8c\x63\xfb\xfd\xe0\x31\xfe\xd9\x3d\x89\x9e\xd0\xee\x17\x6f\x34\x0c\xe4\xef\x06\xc4\x12\x15\x5e\xe9\x2e\x90\x6e\x8a\x19\xaa\x04\x0a\xbd\xf8\x25\xa7\xc9\x84\x3c\xb7\x02\x36\x02\xcf\xfe\xd4\x45\x6e\xb6\x8b\x35\x5f\xfd\x35\x4b\xe2\x88\xca\x18\x75\x2b\xcb\x7e\x88\x12\x16\x71\xa8\x97\xdf\x3a\xfa\xf6\x0c\xb0\x44\x1e\x7b\xc9\x3b\xc9\xa8\xd4\x2c\xca\x13\x2a\x0d\xc3\x87\xb9\x90\x1d\x81\xf2\x3d\x37\xb3\xc4\xe6\x73\x88\x04\x8f\x3b\xbc\x8a\xc3\x76\xf5\x62\xb5\xf3\xea\xf6\xa2\xe4\x06\x92\xb9\x3a\x33\x2c\x85\x55\xf2\xda\xaf\xe9\xc5\x1d\x63\x89\x99\x67\x76\x05\x6f\x19\x59\xf1\xca\x08\x72\xd5\x72\x58\x4c\xf9\x34\x84\x83\xca\x81\x53\x50\xfb\x84\xfc\xd7\xd2\x6b\x5d\x5d\xe1\x49\x4c\x7b\x1f\x15\x1a\x72\xdc\x7c\x1d\x29\xba\x9d\x2c\xd9\xc8\x4c\x48\xb8\x02\x49\xf6\x63\x81\xdf\x60\x59\xab\x83\x09\xf9\x87\x51\x07\xdb\x5c\x34\xb6\x71\x98\xdb\xc2\x48\x8e\xb0\x8b\xec\x10\x09\x68\xbb\xa7\x8a\x3c\x25\xfb\xb6\x56\x16\x4b\x53\x88\x19\xd5\x90\x2c\x0f\xbc\xfc\x6d\x2d\x6b\x7d\xb0\xa6\x4f\x09\xb9\x4a\xe9\xb8\xaf\xff\xa3\xe5\x4d\x9c\xec\x6d\x22\xd5\x4f\xde\xe4\x5c\x02\xd6\xca\xd2\x2b\xd8\x53\x78\x38\x3b\x03\x18\x1a\xa3\xd5\x46\x25\xaf\xa9\x08\xbb\x9e\x37\x17\xb8\xf5\xb3\x41\x50\x4a\x24\xcc\x91\x3e\x2d\xcd\xed\x40\x9d\x2c\xda\x5c\x04\xaf\x43\x08\x69\xf7\x56\x8d\x89\xd1\x06\xbf\xfe\x8f\x98\x6a\xda\xf0\x82\x45\x99\x65\xb6\x89\xd4\xba\x64\x9b\xb2\xf3\xa6\xbd\xee\xe1\x7e\x71\xc3\x6f\xd5\x03\xaa\x35\x9b\xbe\xec\x83\x5d\xa7\x68\x9e\xb6\x71\x94\x1e\x0d\xc6\x12\xe6\x4c\x69\xb9\xac\x38\x21\x9c\x7b\x53\x10\xc6\x95\xa6\x5c\x33\x64\xd5\xc4\xbf\x39\x76\xf6\xf7\x6b\xa6\x1b\x42\x04\xdf\x19\xed\x1d\x8d\xbb\x98\x22\x64\xcd\x1f\x17\xcb\x0c\xc8\xb7\x95\x3f\x5e\xc9\x2c\xda\xfc\xfd\xe9\x8c\x38\x06\x6a\x71\x93\xc6\xb1\x04\xb5\xce\xd9\x36\x7d\xdd\x0a\x3e\x6f\xae\xda\x16\x82\x67\xde\xdc\xe5\xb2\x94\x94\x62\x73\xa3\xa4\xf8\xaa\x99\xde\x9f\x53\x53\x56\xcc\xaf\x6e\x60\xeb\xb5\x85\xb4\x38\x31\x99\xf6\xfa\x60\x24\xb8\xca\xd3\xd2\x8e\x10\x43\x06\x3c\x06\x1e\x2d\xb1\x50\x56\x72\x05\x0d\x21\x3e\x3f\xaa\x06\x94\x20\xe4\x7f\xb3\xb9\x51\xbc\xdd\xe4\xaa\x92\xb3\xf7\x5c\xaf\xcc\x94\x29\x03\xf8\x19\x48\xa3\xfe\x63\x56\x8f\x11\x7a\x7d\x0f\x15\x4f\xa4\xab\xdc\xe5\x03\x4e\x57\x27\x8b\xe5\x13\x37\x4f\xf7\xa2\xa8\xf9\xe9\x5d\x16\x1e\xa6\x96\x03\x19\x70\xcc\x85\xf5\xf4\x67\x42\x31\x5f\x24\xaf\x38\x17\x6a\x75\x43\xc5\xcc\x56\xf5\x6c\x1e\xab\x9e\x7e\x87\x41\xda\x2b\x8b\x46\xeb\x5b\xce\xed\x66\x42\xd5\xa6\xe9\x79\x61\x43\x65\xd2\x8b\xf5\xad\x2e\x22\x6c\x30\x67\xaf\xbe\xb4\xf2\x2c\x93\x94\x5f\x42\x4c\x12\xb8\x61\x91\x98\x4b\x9a\x2d\x58\x84\x25\x20\xad\xbb\xd7\x68\x8c\xda\x86\x57\x35\x63\x78\xd3\xe9\x95\xe5\xd3\x84\xa9\xc5\x66\xc7\x61\x2b\x71\x28\x88\x24\xe8\x8d\x9c\xaf\x0f\x6d\x9c\xdb\xcf\x4b\xe1\xc7\x07\xc3\xbb\x7e\x5d\x2e\x89\xc5\x76\x9f\xf1\x4a\xa3\xc8\x10\xb6\x77\x82\x82\x93\x04\x2b\x44\xd4\xc0\x21\xb4\xf7\x34\x99\x5e\x2e\x01\x32\x8b\xcf\x18\xc4\xa6\x52\xb4\x2e\x2a\xc6\x23\xc0\x92\x96\xae\x34\x29\x80\xf7\x02\x68\xc9\xc0\x4a\xb0\x80\x8e\x3f\xbf\x8b\xc0\xf5\x66\x89\xb3\xdd\x88\xd0\x62\x40\x68\x87\x78\xc1\x0b\x3b\x81\x5e\xe1\xa1\x5e\x28\x30\xff\x36\xe0\xc5\x27\x43\x37\xdb\x56\x30\x3d\xb7\x61\xe2\x5b\xf3\xc3\x1f\x6b\xbd\xb8\xf8\x2e\x45\x16\xe2\xda\x0d\xb0\xca\x31\x9c\x5d\xce\xa3\x41\xcc\x54\x64\xd8\x4c\x83\xe1\xe8\x44\x70\xe5\x2b\x96\x52\x6e\x8b\x8c\x5e\xd1\xc4\x65\xee\xba\xc1\x32\x91\xa0\x2b\x34\xce\xbd\xbe\x6a\xd3\x92\x20\x9d\x42\x1c\x43\xec\x63\xe1\x97\xa4\xe1\xd0\xef\x10\x38\xba\x64\x02\x7f\x2c\x9e\x89\x24\x69\x3f\xd3\x5b\x0d\x2b\x7d\xcc\x2a\x1e\x00\xbd\x63\x4d\x3a\xc4\xcc\x53\x0f\x50\xa6\x0a\x8a\x2c\x7d\xd1\x88\x64\x46\x61\x29\xe0\x3e\x05\x7d\x0d\xc0\x49\xb4\x80\xe8\x52\x95\xf1\x77\xda\xd0\xe1\xca\x46\xbb\xf8\xaa\x76\x01\xb1\xca\x41\x0b\xc1\xd4\x6c\xa8\xcb\xbe\x07\xc2\x8c\x5a\xc8\xe1\x7a\x35\x5e\x6b\xfd\xe0\xa2\x57\x94\x25\x74\x9a\x74\x28\xcc\xa7\xb3\xf2\xcd\x51\x75\xfe\xcc\x4b\x47\x59\x9e\x24\xce\x2f\x8d\x91\x2a\x5a\xd2\xd9\x8c\x45\x18\xc0\x88\x91\x3a\x65\xc4\xef\xc6\xa5\x6f\x15\x9d\xa3\x34\xd5\xf9\xda\xd6\xb7\xe0\x4d\x1b\xbe\x18\x2d\x94\x35\xda\x5b\xfb\x60\xc8\xfb\xba\x06\x6b\x66\x07\x56\x45\xaf\xb9\xb4\x26\xe4\xad\xd0\x2e\x12\xee\x0d\x28\xe5\xa2\xf0\xc8\x7b\xa0\x4a\xf0\xca\x51\x80\x9a\x87\x64\x73\xc6\xe9\xe6\xf2\x09\x76\xfd\x55\x93\x79\xa1\x68\xd2\x25\x96\x74\x66\x73\x49\x75\xc1\xc1\xcb\x25\xba\x43\xd3\x89\x05\xb3\x1c\xa3\xe1\xc8\x31\x5f\x22\xda\xb8\xf0\xb8\xcd\x36\x55\xc6\xb5\x14\x71\x1e\x81\x2b\x5e\x9d\xab\x6a\xc7\xb7\x7a\x0e\xf4\x23\xcb\x13\x3f\x78\x99\x83\x10\x83\xa6\xcc\xb9\xb2\x05\x07\x42\x55\x66\xd4\x7f\x4f\x06\xb9\x94\x78\xd4\xfa\x0d\xc2\x53\xf0\xf8\xec\x94\xbc\x87\x76\x6c\x1c\x8f\x9b\x26\x81\xd1\x1c\x4a\xcb\x3c\xc2\x43\xd6\x50\x3f\x8f\xdd\x71\x69\x09\xc0\x46\x53\x56\xf2\xb1\x9c\xd1\xd0\x4a\xc5\x19\xd5\x0b\x32\xb1\x1b\x3a\xa9\x80\x93\x90\x97\xe6\xc0\xbd\xa1\x69\x96\xc0\xa8\xd1\x79\xf2\x6f\x78\xb0\xbd\x14\xe2\xdc\xa2\x84\x9d\xc9\x6f\x4d\x6f\x9b\xff\x1c\x1e\xae\x22\xac\x98\x1a\x25\xc5\xf9\x10\x10\x6f\x67\x42\x3c\x56\x75\x78\x35\x81\xc6\xf7\xf9\x03\x06\x8a\x6e\x58\x09\xce\x90\x4a\x38\x22\x7b\xc7\x9e\x97\xec\x8d\xc8\xde\x99\x14\x73\xcc\x5a\xe1\x73\x97\x5b\xb2\xf7\x1c\xe6\x92\xc6\x10\xef\x75\x8c\xf5\x17\xcc\xb8\x7a\x03\x72\x0e\x3f\xc0\xf2\xdb\x86\xa3\x6a\xfd\x0b\x7f\xf6\x7e\x8b\x79\x5b\x5d\x9f\x18\xf1\xc8\xc8\x10\xdf\xa6\x34\xeb\xf3\xee\x1b\x9a\xf5\x99\xcd\x49\x49\x8c\x1f\x3e\xa6\xa0\xe9\xd5\xb3\x49\x89\xca\x9f\x7e\x56\x82\x1f\xed\x95\xf0\x1b\x89\x94\x61\x50\xde\x72\x8f\xd4\x16\x71\xb4\x87\xab\x70\xbf\x7a\x60\x1c\xed\x99\xf1\xf7\x0c\xc7\xd3\x62\x9a\xcf\x8e\xf6\x30\x6a\x6d\xf4\x6c\x24\x21\x1b\x19\x29\xf9\xdb\xb2\xef\xbd\x4f\xcd\x88\xe5\x56\x66\xbd\x91\x88\xab\x4d\xae\x96\x7f\xfb\xa3\x45\x98\x6b\x39\xc6\xbb\x42\x69\xc7\x24\xa1\x4a\x5f\x48\xca\x15\x4e\xf7\x82\xa5\x4d\x80\x1d\x93\xd4\x32\xd4\xc6\xe7\x12\x99\x6c\xe3\x63\x8b\xb6\x8d\x8f\x1b\xf7\xb4\x5b\x10\x59\x5f\xc3\x6d\x38\xcf\xd6\x7b\x2d\x33\x91\x8d\x98\xef\x4d\xa7\xc5\x5e\x9b\x83\xd9\xbd\x0d\xae\x5e\xbe\x61\x90\xee\x24\xc1\xb4\x32\xdc\xea\xb6\xf3\xd8\xf2\xba\xc2\xe8\x75\xed\x9d\xed\x39\x8f\x41\x26\xe8\xc4\x2e\xc7\x8b\x16\x46\xe7\x8c\x27\xce\x96\x46\x0b\xb3\x28\x46\x94\x3b\x57\x7d\xe9\x83\xb3\x31\xa8\xbe\x47\xc3\x93\xdd\x45\x05\xb6\x1b\x94\x59\xa2\x08\x32\xdd\x2e\xb4\xf4\x32\x71\x7b\x3b\xa5\x91\xb9\xc7\xba\x19\xab\x1c\x4e\xdd\xc6\x7e\xb9\xae\x6c\x90\xd7\x22\x4f\xa9\x39\xef\x69\x8c\x31\xa7\xc5\x33\x6b\x72\xb0\x26\x02\x7b\x8e\x59\x47\xb8\xf5\x63\xfa\xed\xeb\xdc\x21\x27\x03\xd0\xa2\xaa\x45\x87\xf1\xb1\x17\xcc\x52\x7a\xf3\x1a\xf8\x5c\x2f\x8e\xc8\x5f\xbf\xfa\x5f\x5f\xff\x67\xc3\x8b\xf6\x28\x81\xf8\x15\x70\x67\x74\xbd\x0d\xe8\xad\xf7\xba\xea\x35\x98\xf8\xac\x87\xc9\xbc\x7c\xa7\xf0\xcf\x95\x58\x89\x51\x1d\xa0\x9d\x18\x94\x67\xed\xe0\x7c\x89\x79\x3b\x4a\x53\x1e\xc1\xc8\x48\xd7\x1b\x87\x61\xc5\x49\x99\x2c\xc9\xb3\xaf\x46\x18\x35\x8d\x93\x5a\x3b\x0c\x3f\xdc\x7c\x9c\x6c\x58\x0c\x53\xe4\x6f\xa3\x95\x99\x32\x45\xcc\xde\x8b\x19\xa2\x69\xcb\x24\xd1\x8a\x22\xc1\x4a\x3a\xde\xa6\xb6\x2e\xe9\x40\xb1\x92\x2e\x4c\xe8\x32\xf5\xf7\x33\xf3\xa7\x8c\xb3\x34\x4f\x8f\xc8\xd3\x86\x57\x2c\x47\xbe\x0d\xf4\xb0\x3d\x95\x52\x20\x35\x6c\x79\x2e\x69\x9a\x62\x72\x23\x8b\x81\x6b\x36\x63\x18\x44\x56\x90\x18\x9a\xc5\xec\x87\x3e\xf0\xb1\x00\x3e\xc6\x44\x1a\x36\xda\x8b\xe8\xce\xac\x58\x2c\x51\x76\x72\x4e\xf0\xa8\xca\x79\x97\x19\x58\xaa\xb4\x5a\x38\x81\x9b\xcc\x2a\x46\x15\x77\x6c\x0a\x94\x33\x3e\x57\x65\xfc\x32\xf2\xbf\x36\x6f\x93\xf9\xec\x7a\x01\x2e\x5c\x08\xaa\xce\x76\x5f\x12\xcc\x68\x66\x65\xdc\x3e\xe6\x72\xb4\xb3\x8f\x75\xd7\x86\x51\x62\x52\x48\x4e\xa8\x82\x1e\x6e\x8c\x4a\x70\xb3\xbf\xbb\xa5\xc8\xc3\xbf\x35\x06\xf4\xec\xe9\x57\xad\x78\x57\xbc\xd7\xf8\x52\x19\xf6\xfc\xe1\x78\xfc\x0f\x3a\xfe\xf5\xe3\xbe\xfb\xc7\xd3\xf1\xdf\xfe\xdf\xe8\xe8\xe3\x93\xca\x9f\x1f\x9b\xa3\x95\x37\x2b\xa2\x65\xab\xe1\xb0\x3b\x6b\xbd\x32\xe2\xf1\x63\xe4\xa3\x23\x2f\x64\x0e\x23\xf2\x92\x26\x0a\x46\xe4\x47\x8e\xe7\xe4\x8e\x40\x6b\x0f\x56\x32\x92\xcd\x9e\x19\xb5\x49\xde\x76\xaf\xe0\x94\xda\xdf\x71\xd3\x6d\xb3\xe8\xdc\x02\xa1\x7b\x2b\x5e\x85\x4b\xf2\x0a\x7a\xda\x2c\xcb\x99\x10\x13\xa7\x37\x4d\x22\x91\x1e\x16\xcf\xdb\xf0\xb6\x59\xc1\x23\x58\x46\x96\x2f\x49\xc9\xc6\xad\x4a\xb3\x4a\x6e\x0a\x13\xf6\x68\x24\x85\x52\xe5\x75\x1d\x24\x61\x97\x40\x8e\x4b\x23\x8a\x39\x1c\xa6\x10\x51\xd4\x0a\xe5\x94\x69\x49\xad\x3f\xc9\x2b\x05\xd6\xda\xd7\x32\x9b\x5c\xc1\x2c\x4f\xc8\xbe\x02\x20\x13\x0c\xc8\x5e\x3b\x67\x0e\x9c\x2b\x68\xca\x12\x86\x09\x94\x24\x86\x48\xf0\x59\xc2\x9c\x9a\x9a\x66\x42\x6a\xca\x5b\xab\xa1\xd8\x14\xfe\x39\xdc\x10\x56\x44\x5b\x99\x8f\xf7\x63\xae\x9e\x3d\xfb\xea\xaf\xe7\xf9\x34\x16\x29\x65\xfc\x65\xaa\x0f\x0f\xbe\xdf\xff\x25\xa7\x09\xc6\xff\xbc\xa5\x29\xbc\x4c\xf5\xc1\xed\x49\x1c\xcf\xbe\xee\x41\xca\xfb\x1f\x2c\xc1\x7e\xdc\xff\x30\x76\xff\x7a\xe2\x7f\x3a\xf8\x7e\xff\x9f\x93\xd6\xe7\x07\x4f\x0e\x31\x71\xa1\xa0\xfb\x8f\x1f\xc6\x25\x0f\x98\x7c\x7c\x72\xf0\x7d\xe5\xd9\xc1\x26\x8e\xb0\x9e\x3c\x9a\xd2\x6c\x7c\xd9\x58\xa6\xb3\x51\xaf\x68\xca\x42\xdd\xa4\x88\xda\x10\xd4\x37\x34\x7b\x0f\x33\x90\xc0\xa3\x6e\xf3\xf8\xc9\xda\x27\x64\x3f\x36\xf2\x14\xe6\x1e\x1f\x78\x4d\x42\x16\x4f\x9d\x54\x51\x7c\xe7\x8f\xda\xe2\x8a\xbb\xd5\x78\xc3\x5a\x1c\xef\xa8\x94\xeb\x37\x18\x22\xcb\x5e\x87\x5b\x9b\xbb\xdc\xdb\x46\xdd\x6d\x79\x84\x31\xc5\x5b\x18\xb1\x8d\x6c\x60\x8d\xf9\x6d\xea\x5c\x0f\x24\xef\xa7\x88\xf0\x96\xc4\x86\xce\x41\x8a\x75\x6e\xdd\x83\x67\x65\x3f\x59\x9b\xf2\xd6\xfd\xe4\xac\x51\xd3\xef\x7b\x02\xfc\x78\xfa\xdc\xe2\x0c\x32\x60\x14\xef\x17\x22\x89\x15\xc9\x39\xfb\x25\x07\x72\xfa\xbc\xa8\xba\xc6\x78\x94\xe4\x78\x53\xdb\x8f\x3f\x9e\x3e\x57\x13\x42\xfe\xcb\x31\xdd\xeb\x96\x00\x75\xac\x6f\xfa\xee\xed\xeb\xff\x83\x46\x3b\xfc\xd2\x5d\x94\xe4\xab\x6e\x32\x6a\xad\xed\x56\x12\x32\xbd\xda\xd8\x6d\x9c\x51\x44\xb3\x66\xfb\x29\x71\x3e\x09\x6e\x53\x10\x16\x90\x64\x0a\x93\x2b\x89\xca\xa5\x5b\x8d\x19\xd0\xe6\x78\x61\xf9\x0d\x17\x14\xe4\xf3\x45\x31\x1f\x77\xab\xac\x8f\x48\x70\x0e\x11\x46\x5d\x19\x8d\xa0\x0f\x87\xa8\xbe\xbf\xaa\x6d\x6d\x54\x2f\x56\xd3\x37\xca\x31\x3d\xff\xf0\xce\x9f\xdb\x27\x74\x43\x91\xef\x9c\x5e\x85\x33\xde\x82\xaa\x5d\xdc\xc4\xd6\xf8\x6d\xe6\xe0\xe0\x76\xe7\x2c\x61\x6d\xbd\x5b\x8d\x68\x1d\x32\x18\xe8\xf2\xbe\xc3\x2f\x57\x0f\x39\x5f\x33\x33\xad\xe4\xf4\xa3\x73\xa8\x88\x95\x59\x50\x45\xa6\x00\x1c\x7d\x55\xd6\x27\x01\xdc\xe1\x3c\x94\x9e\xa4\x3c\x1b\x6b\x31\x6e\x50\x76\x3b\x20\xd7\x0d\xb5\x16\x5b\x4e\x6d\x6d\xc7\x83\xad\x33\xd7\x8b\xe5\x26\x18\xa8\xf2\x9e\xb6\x42\x6e\x1c\xba\xb0\x66\x15\xb9\x36\x67\xe7\x40\x2a\x8e\x6d\xfc\x6b\x7d\x4a\xd7\x86\x75\x55\xad\x80\x5a\x60\xe8\x44\xa7\x99\xbf\x63\x8e\x76\x9b\xcf\x41\x5e\xb1\x1e\xc2\xc7\xfb\xfa\xfb\xbd\x58\xcb\xab\xf7\x67\x27\x98\x7e\x6c\x3e\xf0\xbe\x57\xc4\xfe\xaa\x54\x31\x9c\xad\x74\xb1\x84\xc8\x86\x51\x1e\xdf\x3d\x41\x1b\x71\x7c\xeb\x41\xd0\xd6\x1f\x89\x0e\x87\x7a\x6b\x42\x20\x82\xb6\x2d\x83\x72\x48\x1f\x43\xe5\x0d\xcb\xc7\x6a\x39\xb7\x4a\x0b\x69\xc8\xb5\xf6\x5b\x3e\x2d\xd4\xaa\xb2\x77\xa7\x82\x93\xdf\xfe\x78\xf4\xff\x03\x00\x00\xff\xff\xe8\x3a\xde\x8e\x59\x5f\x01\x00") +var _operatorsCoreosCom_catalogsourcesYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x7d\x6b\x73\x1c\xb7\x11\xe0\x77\xfd\x0a\x94\x2e\x55\x22\x95\xdd\xa5\xe4\xa4\x7c\x09\xe3\xd8\xc5\x50\xb2\x8e\x65\x3d\x58\x22\xed\xd4\x45\xd1\x9d\xb0\x33\xbd\xbb\x30\x67\x80\x31\x80\x21\xb9\x8e\xf3\xdf\xaf\xd0\x00\xe6\xb1\xbb\xf3\xe4\x4b\xf2\x01\x1f\x6c\x71\x67\x06\x8f\x46\x77\xa3\xdf\xa0\x19\xfb\x09\xa4\x62\x82\x1f\x12\x9a\x31\xb8\xd6\xc0\xcd\x5f\x6a\x76\xf1\x17\x35\x63\xe2\xe0\xf2\xf9\xa3\x0b\xc6\xe3\x43\x72\x9c\x2b\x2d\xd2\xf7\xa0\x44\x2e\x23\x78\x01\x0b\xc6\x99\x66\x82\x3f\x4a\x41\xd3\x98\x6a\x7a\xf8\x88\x10\xca\xb9\xd0\xd4\xfc\xac\xcc\x9f\x84\x44\x82\x6b\x29\x92\x04\xe4\x74\x09\x7c\x76\x91\xcf\x61\x9e\xb3\x24\x06\x89\x9d\xfb\xa1\x2f\x9f\xcd\x9e\x7f\x3d\x7b\xfe\x88\x10\x4e\x53\x38\x24\x11\xd5\x34\x11\x4b\x3b\x96\x9a\x89\x0c\x24\xd5\x42\xaa\x59\x24\x24\x08\xf3\xbf\xf4\x91\xca\x20\x32\x83\x2c\xa5\xc8\xb3\x43\xb2\xf3\x1d\xdb\x9f\x9f\x0b\xd5\xb0\x14\x92\xf9\xbf\x09\x99\x12\x91\xa4\xf8\x6f\xb7\x46\x3b\xec\x19\x0e\x8b\xbf\x27\x4c\xe9\x1f\xb6\x9f\xbd\x66\x4a\xe3\xf3\x2c\xc9\x25\x4d\x36\x27\x8c\x8f\xd4\x4a\x48\xfd\xb6\x1c\xde\x0c\x17\x51\xad\x64\x64\x1f\x33\xbe\xcc\x13\x2a\x37\xbe\x7d\x44\x88\x8a\x44\x06\x87\x04\x3f\xcd\x68\x04\xf1\x23\x42\x1c\xa4\x5c\x57\x53\x42\xe3\x18\xa1\x4f\x93\x53\xc9\xb8\x06\x79\x2c\x92\x3c\xe5\xc5\x50\xe6\x9d\x18\x54\x24\x59\xa6\x11\xc2\xe7\x2b\x20\x99\x04\xad\xd7\x08\x12\x22\x16\x44\xaf\xc0\x8f\x5d\x7c\x45\xc8\xcf\x4a\xf0\x53\xaa\x57\x87\x64\x66\x20\x3c\x8b\x99\xca\x12\xba\x36\xb3\xa9\xbc\x65\xb7\xe9\x85\x7d\x56\xf9\x5d\xaf\xcd\xd4\x95\x96\x8c\x2f\xdb\xa6\x62\xde\xeb\x3f\x07\x0b\x9a\xf3\x75\xb6\x3d\x85\x8d\x1f\xfb\x8e\x9f\xe5\xf3\x84\xa9\x15\xc8\xfe\x93\x28\x3e\xd9\x9a\xc3\xe9\x8e\x27\x0d\x13\xa9\x74\xea\xe9\x66\x16\x49\x40\x92\x39\x67\x29\x28\x4d\xd3\x6c\x6b\x80\xa3\xe5\xf6\x1a\x63\xaa\xfd\x8f\xf6\xa5\xcb\xe7\x34\xc9\x56\xf4\xb9\xfb\x51\x45\x2b\x48\x69\x89\x0f\x22\x03\x7e\x74\x7a\xf2\xd3\x9f\xce\x36\x1e\x90\x3a\x74\x6a\x78\x4e\x98\x22\x94\x48\xc8\x84\x62\x5a\xc8\xb5\x81\xd6\xf1\xd9\x4f\x6a\x42\x8e\xdf\xbf\x50\x13\x42\x79\x5c\x10\x1e\xc9\x68\x74\x41\x97\xa0\x66\x5b\x73\x15\xf3\x9f\x21\xd2\x95\x9f\x25\xfc\x92\x33\x09\x71\x75\x16\x06\x3c\x1e\x26\x1b\x3f\x1b\xf8\x57\x7e\xca\xa4\x19\x53\x57\x08\xd9\xb6\x0a\x33\xab\xfd\xbe\xb1\xc2\xdf\xa6\x1b\x4f\x09\x31\x80\xb1\x5f\x92\xd8\x70\x36\x50\x88\x14\x8e\xea\x20\x76\xd0\xb4\xc8\xc2\x94\x81\x88\x04\x05\xdc\xf2\x3a\xf3\x33\xe5\x6e\x95\xb3\xad\xce\xcf\x40\x9a\x8e\x0c\x43\xc8\x93\xd8\xb0\xc4\x4b\x90\x9a\x48\x88\xc4\x92\xb3\x5f\x8b\xde\x15\xd1\x02\x87\x4d\xa8\x06\xa5\x09\xd2\x35\xa7\x09\xb9\xa4\x49\x0e\x08\xec\xad\xbe\x53\xba\x26\x12\xcc\xb8\x24\xe7\x95\x1e\xf1\x13\xb5\x3d\x97\x37\x42\x02\x61\x7c\x21\x0e\xc9\x4a\xeb\x4c\x1d\x1e\x1c\x2c\x99\xf6\xcc\x3e\x12\x69\x9a\x73\xa6\xd7\x07\xc8\xb7\xd9\x3c\x37\x0c\xf5\x20\x86\x4b\x48\x0e\x14\x5b\x4e\xa9\x8c\x56\x4c\x43\xa4\x73\x09\x07\x34\x63\x53\x5c\x0c\x47\x86\x3f\x4b\xe3\xff\x21\xa1\xca\x01\x37\xd1\x60\x83\x1a\x88\xe7\xbb\x03\x37\xcb\xf0\x63\x8b\x98\xb6\x43\xbb\xd8\x72\x4f\xcc\x4f\x06\x8c\xef\x5f\x9e\x9d\x13\x3f\x23\xbb\x6f\x76\x8b\xca\x57\x77\x40\xc8\xef\x96\x81\x2c\xe3\x0b\x90\xf6\xcb\x85\x14\x29\xf6\x0a\x3c\xce\x04\xe3\xda\x72\x8d\x84\x01\xd7\x44\xe5\xf3\x94\x69\x85\x68\x0d\x4a\x9b\x8d\xdc\xee\xf8\x18\x0f\x47\x32\x07\x92\x67\x86\x78\xe3\xed\x57\x4e\x38\x39\xa6\x29\x24\xc7\x54\xc1\xbd\xef\x9d\xd9\x23\x35\x35\x1b\xd2\x7b\xf7\xaa\x47\xff\xf6\x07\x5b\x54\x4f\x88\x3f\xb3\x7b\xbd\xdc\xc4\x26\x88\xe5\x09\xbb\xce\x04\xd2\xc2\x1d\x4c\xa3\x71\x2c\x41\xed\x78\xd0\x8d\x75\xa6\x1d\xd9\xcf\x2d\xf2\xad\x84\x32\x48\x40\x35\x79\xf7\xfa\x0d\x89\x28\x27\xb9\x02\x43\xc2\x91\xe0\xdc\x60\x99\x16\x84\x9a\x33\x77\x0a\xd7\x4c\x21\x56\x4a\x58\x32\xa5\xe5\x7a\x7b\x6f\x4d\xfb\x5e\xc8\x94\xea\x43\xf2\x8d\x7f\x6d\x8a\x43\x08\x49\x58\xf6\xed\xe1\x37\x99\x90\xfa\xdb\x9d\x1f\xbe\xe3\xc9\xda\x0c\x1e\x93\xab\x15\x70\x72\x56\x40\x86\xfc\xbd\xf2\xc7\x2b\x99\x45\xbb\x07\x3e\x59\x72\x21\xfd\xd7\x06\xad\x4f\x52\xba\x04\xb2\x60\x90\x20\xa1\x29\xd8\xc1\xd5\x5a\xd0\x82\x58\xc1\x6f\xc1\x96\x6f\x68\x36\x16\xd6\xc7\xbe\x03\x33\x03\x33\xa9\xaa\xd8\x52\x3e\xd4\x02\x29\xca\x2c\xde\xfc\x93\x46\x17\x84\xba\xc1\x53\x9a\x4d\x15\x52\x73\x07\xe0\xfb\xc1\xef\xd8\x77\x6a\x76\xa4\xfc\xf9\xc4\x71\xe9\xc1\x10\xaa\x02\x61\xf0\xb7\xa5\x50\xd6\x09\xdf\x37\xbb\xce\xd4\x1e\x63\x2c\x65\x16\x9d\x8a\xd8\x2e\x7b\xec\x2e\xbe\xaa\x76\x42\xe0\x3a\x13\x0a\x14\x89\xd9\x62\x01\xd2\x70\x4e\x71\x09\x52\xb2\x18\x14\x59\x08\x89\x5b\x9b\x89\x18\xd9\x44\xb1\xd5\x35\x79\xe4\x54\xec\x60\x9b\x64\x10\x0d\xa0\xd0\x62\x31\xbc\x0b\xb7\x77\x32\x25\xd2\xc1\x63\x4c\xa3\x0b\x54\x8f\xd6\xbb\x9f\x6e\x80\xee\xc8\xbd\xec\x11\xdd\x89\xa2\x8e\xc3\x3d\x51\x06\x24\x4f\x54\xd1\xe7\xee\xf5\x77\x4e\xb9\xcf\xb4\x4d\xe3\x22\x86\xa3\x8e\xe9\x6f\x2d\xe1\x05\xfe\x31\x07\x85\x9f\x17\x53\x45\xc1\x26\xce\x13\xe4\x7d\x79\x52\xdf\xe5\xa6\x75\xf4\x5c\x4b\xdf\xf5\xd8\xf7\x60\x01\x52\x42\xfc\x22\x37\xa8\x7e\x56\xcc\xca\x71\x3e\xfb\xf3\xcb\x6b\x88\xf2\x26\x72\x6c\x5c\x7a\x03\xe2\x57\x9b\x51\x38\x1c\x24\x40\x92\x2b\x96\x24\x6e\x46\x86\x65\xf9\x07\x06\x24\x28\x01\x1a\x08\x2a\x7b\xb0\x28\xaa\x99\x5a\xac\x3b\x07\x30\x10\x2d\x60\x0e\xd7\x46\xb8\x41\x6d\x11\x09\x89\x2d\x18\xc4\x64\xbe\x76\x72\x8c\x61\xea\x13\x32\xcf\x35\x61\x1a\x85\x9c\x68\x25\x84\xda\x3c\x44\xb7\x1b\xb5\x5b\x8b\xf3\xba\x64\x02\x65\x54\x22\x38\x18\x6e\x98\x1a\xc9\xc4\xd1\x6b\x65\xf8\x19\xae\xbc\xfc\x8c\x6d\x0a\x16\xdb\x2d\x35\x27\x5e\xb1\x5d\x9e\x22\xcc\x30\x57\x4c\xaf\xf0\x8f\xa5\x51\x97\x8c\x7c\xac\xf2\xd4\x0c\x7a\x05\x6c\xb9\xd2\x6a\x42\xd8\x6c\x87\xd0\xb4\xd9\x0c\x02\x02\x8d\x56\x95\x69\xa5\x00\x5a\x11\x9a\x24\x7e\x09\x55\xac\xb5\x12\x48\x6a\x64\x45\xb2\xe7\x85\xc9\xce\x51\x9c\x20\x38\x29\x24\x98\x4d\xc4\xdb\xb9\x5d\x13\x02\x3a\x9a\xed\x4f\x3a\xbb\x8f\x44\x9a\xe5\x1a\x8c\x04\x9c\xa7\x66\x6b\x99\x36\x3a\x98\x15\x7c\xa5\xc8\x97\x16\x52\x90\xb8\x89\x7b\xb5\xc5\x9e\xe8\x86\xff\xd1\x38\xde\xc5\xf3\x37\xdb\x63\x0b\xdc\xc7\x5e\x33\x31\xc3\x31\x0b\x24\x84\x5f\x4a\x75\xb4\x72\xca\x52\x24\xa4\x04\x95\x09\x6e\x7a\xb6\x4f\x5e\x96\x6b\xfb\x9b\x79\xa7\x73\x3c\xd3\xe9\x9e\xda\x2f\x37\x7b\xc5\x96\x2b\xbf\xd7\x54\x02\xfe\x56\xc7\x91\xae\x2d\xb7\xac\x84\x4a\x49\xbb\xe8\x88\x69\x48\x3b\x18\x09\x19\x41\xfd\x84\x1c\x71\x02\x69\xa6\xd7\x15\xc4\xae\xa0\x98\x06\x99\x16\x80\x44\x2c\x44\xb6\xa7\x2c\x10\x58\x9a\x25\x2c\x62\xda\xa1\x39\x79\xd6\x63\xbc\x3d\x43\x09\x84\x69\x73\x68\x10\x2e\xa6\x22\xdb\x9f\x91\x23\xc2\xf3\x82\xf1\xb4\x4d\x81\x8b\x62\x06\xae\x23\x33\x2d\x25\xca\xbe\xba\xf9\x51\x3f\xf6\x6d\x5b\xb3\x90\xbf\xdd\xa6\x6e\xfe\xc0\x7b\x10\xa1\x79\xdd\x42\xad\xf3\xd5\xbe\x07\x89\x7f\xdb\xcf\xa1\xcf\xdb\x9b\xa7\xbd\xa5\x1c\x05\x09\x44\xda\x9c\x86\x20\xd3\x09\xa1\x4a\x89\x88\x19\xad\xb0\xc4\xfd\x3a\x41\xd9\x95\x74\xc3\x9e\x0c\x85\x3f\x19\xbc\x7e\x82\x86\x87\x3a\x7d\xf7\xfd\x6e\x0b\x1a\x09\x33\x3a\xce\x62\x03\x2a\x35\xbe\x3b\x5f\xe3\xd3\x27\x8a\x24\x74\x0e\xc9\x0e\xa5\xbd\xa9\xf5\x27\xfe\xb2\xf5\x64\x03\x0d\x0b\xea\xc5\x10\xca\xb6\x89\x0d\x95\x75\x3b\x13\x47\x81\x27\xe6\xa8\x32\xaa\x3d\x65\x5c\x39\xfb\xce\x84\x50\x72\x01\x6b\x6b\x87\xa3\xbc\x30\xc5\x0d\x9a\x02\x76\x2c\xc1\x1e\xe8\x06\xef\x2e\x60\x8d\x1d\x36\xd9\x90\x5a\xba\x1a\x8a\x77\xb6\x0d\xe1\x00\x65\x9b\x9a\x89\x0e\xfc\x62\x04\x80\x86\x93\x86\x6d\x17\xd0\x2a\x3e\xef\x6a\x5b\x56\x6a\x44\x77\xdc\x0f\xdc\x24\x3c\x81\x3d\x3e\xd0\x2c\x4b\x18\xec\x36\x35\xb5\xb7\x56\xad\xaf\xad\x79\xe8\xdd\x68\x5d\x03\x09\xc4\xb4\xf7\x85\xb9\xce\xe2\xfb\x13\x65\xf1\xd5\xf0\x9d\x15\xcb\xac\xa1\x45\x01\xb2\x91\xe1\x48\x6b\xdb\x4f\x34\x61\xa5\x2d\x5b\xa1\xb0\x71\xc2\x27\xe4\xad\xd0\xe6\x7f\x2f\xaf\x99\x32\x32\xe6\x0b\x01\xea\xad\xd0\xf8\xe7\x8c\xbc\xd2\x96\xf4\x5e\xf7\xe4\xcb\x65\x1b\xbd\x07\x76\x7d\xf7\xbd\x03\x47\xdc\x32\x51\x03\xe1\xaa\xd1\x55\xcd\xc8\x89\x15\x07\x0b\x2f\x00\x53\xe4\x84\x1b\xa5\xc0\x42\x6e\xf0\x50\x68\x77\xc7\xbe\xdd\x90\x69\xae\xd0\x6a\xca\x05\x9f\xa2\x18\xb5\x73\x4c\xbb\x41\x66\xdc\xea\x16\xdd\xe2\xf0\xcd\x43\xbf\x42\x1b\xdd\x6b\x3d\xa9\x7c\x3c\x78\xdc\xca\x60\x2b\x7a\x89\xa2\x3d\xe3\xcb\xa4\x10\xe2\x27\xe4\x6a\xc5\xa2\x95\xd5\x1e\xe7\x60\x9d\x03\x99\x04\x23\x31\x50\x65\x98\xbf\xf9\x65\x09\x72\x38\xea\x9f\x1b\xd5\xc0\x8e\x6f\x5d\x1b\x09\x8d\x20\x26\x31\xaa\x2c\xd6\xca\x4e\x35\x2c\x59\x44\x52\x90\x4b\x20\x99\x39\xfa\xc7\x21\xfc\xb0\x93\xd8\xb6\xc1\xe7\x71\x75\xc0\x11\x14\x46\xc8\xf5\xf4\x22\x9f\x83\xe4\xa0\x41\x4d\x8d\x7c\x32\x75\xb3\xd7\x22\x65\x51\xef\xce\x6e\xa5\x1b\x94\xb3\xbe\x37\x7a\xdb\x3d\x89\x58\xa8\x23\x06\x11\x2b\x88\x58\x41\xc4\x0a\x22\x56\x10\xb1\x7a\xb7\x20\x62\xdd\x78\xf8\x20\x62\x05\x11\xeb\xde\x45\xac\x5a\x17\x29\xcd\x86\xf6\x60\xed\x72\x23\x0c\x81\xff\xb4\x06\xdd\x4d\xcb\x1f\x0a\x7c\x3e\x84\xa5\x6e\x02\x34\x72\xcc\x99\x3b\x9c\xce\xd1\x6c\xc8\xac\xbf\x5e\x52\xbe\x04\xf2\x7c\xfa\xfc\xd9\xb3\x21\x06\x42\x87\xce\xbd\xbe\x58\xb8\xe0\x04\xc6\xf5\x9f\xbe\xea\xf8\xe2\x06\xbb\xd2\xe4\x2f\xb9\x1f\x47\x9d\xe3\x3c\x85\x6f\xa6\x26\x22\x37\xf8\xd2\xf0\x18\xe3\x42\x93\x14\x34\xa1\xdd\x32\x59\xd5\xec\xce\x52\x98\x14\x4e\x6f\x64\x3b\x2e\x42\xc8\x3b\x05\x63\x22\xb8\x73\xbd\x98\xcd\xef\xde\xdc\x51\x2b\x88\x80\xda\xc8\x95\x39\x98\x55\x74\xbb\x02\x35\x51\x22\x35\xb3\x66\x5c\x7b\x26\x66\x96\x00\x7e\x63\xc8\x1e\xcc\x96\x33\x12\xe7\xd8\x2d\xe5\x2e\xe4\x69\xdf\xae\x56\xad\x95\x86\xb4\xdb\x17\x68\x0e\x43\x89\xff\x33\x60\xd1\x72\x6d\x3a\x83\x4b\xe0\x3a\xa7\x49\xb2\x26\x70\xc9\x22\x5d\xc0\x0f\x23\xb4\x98\x56\xbd\x20\x35\x40\x8c\xee\x2f\x3a\x4f\xb7\x28\xb4\xeb\x90\x1a\x22\xf9\x6e\xf5\xdd\x87\xe7\xd4\x28\xe0\xbd\x5b\xc9\xac\x51\x27\xd4\xa6\x5f\xeb\xb6\xc5\x7f\x22\x72\xbf\x7b\xdf\xed\x65\x23\x83\xcf\x9f\x01\x67\xce\x38\xd1\xca\x39\xbc\x84\x74\xce\xb7\xed\x95\xee\x70\x79\xd9\xb5\xd7\xa8\x46\x2c\x7a\x0e\xa8\x57\x60\x9d\x94\x47\x6f\x5f\xf4\x83\x18\x71\xc1\x01\xe7\x22\x13\x89\x58\xae\xab\xdb\x6b\x43\xa4\x59\x9a\x79\x27\x2e\x25\x2a\x9f\x3b\x11\xdc\xe0\xfc\xdb\x0d\x7c\x08\xae\xa1\xe0\x1a\x0a\x76\x0b\x6c\xc1\x6e\x11\xec\x16\xc1\x6e\xd1\xaf\x05\xbb\xc5\x8d\x87\x0f\x76\x8b\x60\xb7\x08\xae\xa1\xed\x16\x44\xac\xee\x16\x44\xac\xd6\x16\x44\xac\xa2\x05\x11\x2b\x88\x58\x41\xc4\x0a\x22\x56\x10\xb1\xee\xab\x9b\x9b\xba\x86\x6e\x34\x85\x71\x83\x67\x22\xbe\x41\xf2\x56\x26\xe2\x96\xdc\x2d\x6b\xd3\x8f\xc4\x34\x11\x11\xd5\x2e\xa3\xda\x7c\xe2\xbc\x50\x8a\xa6\xd6\x4d\x31\x21\xbf\x0a\x0e\x36\x9b\xc5\x90\x07\x3a\x0b\x84\x5e\x81\x34\xaf\xef\xa9\xfd\xd6\x14\x82\x90\xfb\x15\x72\xbf\x42\xee\x57\x63\xfb\x6c\x72\xbf\x56\x54\x59\xbc\xb5\x47\x63\x73\x2a\x58\x85\x27\x9d\x83\x4c\x7f\xa7\x99\x60\x06\xdd\x1d\x3a\x62\x3d\x90\x12\xa5\x2c\x64\x62\xe7\xf0\x87\xf8\xb4\x0e\x0f\xa7\x56\xe3\xa2\x68\x1c\x43\x4c\x32\x90\x53\x8b\xa2\x82\x2c\x18\x8f\x77\xac\xd5\xc3\xa7\x9b\x3d\xdc\x61\x2a\x56\x7d\x1d\xbd\xbe\xb9\x9b\x7c\xac\xfa\x44\x46\x38\x15\xab\x9e\xd1\xda\x21\xf8\x59\x64\x67\x0d\xd5\xd0\xa7\x44\x3b\x87\xe2\x0f\x3d\x75\xf4\xe1\x6a\x36\x2a\xc7\xde\xfd\x38\xd2\xfc\x34\x48\x15\x3a\x72\xfa\xf8\x2f\x39\xc8\x35\xd6\x0d\x28\xd5\xce\xa2\xec\x8c\x8b\x88\x61\x8a\x44\x54\xd9\x63\x75\x88\xa8\x7c\xb2\xb0\x59\x93\x3c\x4f\x92\x89\xed\x67\x93\x58\x3d\x9b\x43\x3c\xe0\xc2\x3c\x1f\x6c\x11\x1b\x68\xa2\x19\x67\x03\x19\xef\x85\x25\x9b\xfb\xb4\xd9\x95\xb5\x8d\x79\xd3\xa1\xdd\x96\x9d\xb6\xc3\x1d\xde\xf4\xc1\xfe\x71\xdb\xc6\x2a\x30\xa3\xd4\x97\x1b\xeb\xeb\x2d\x30\xb9\x81\x5d\x11\x5f\x1e\x3c\x99\xdb\xb1\x2d\x92\xf1\xf6\x45\x32\xda\xc6\x48\x46\xd9\x19\xc9\x58\x5b\x23\xb9\x81\xbd\x91\x8c\xb3\x39\x92\x4d\x6c\x33\x3b\xe4\x04\xdf\xbb\x31\x3f\x92\x9b\x29\xe7\xe3\xcd\x90\xe4\x16\x08\xab\x3a\x7e\xa5\x88\xd7\xdd\xd9\x25\x49\x5f\xdb\x24\x92\x55\xcd\x3c\x79\xdf\xfb\x32\xce\x34\x49\x6e\x69\x57\x9c\xd1\x8e\xa1\x2d\xec\xbe\x8c\x95\xe4\xe1\x0d\x96\xad\x53\x70\xc3\xf7\xb6\xf0\x8d\x1a\xfd\x06\x56\x41\x72\x23\xcb\x20\x19\x6f\x1d\x24\x37\x45\xf6\x5b\xb3\x12\xde\x6a\x57\x28\x27\xbd\xc6\x38\xb4\x1b\x48\x5b\x83\x29\xb0\x32\xac\x95\x2e\xb0\x46\xd9\x82\xfc\xc7\x08\x11\x88\x98\xff\x25\x19\x65\x52\x19\xed\xc6\xd9\xb5\xab\xcf\x9c\xf9\xae\xd2\xcd\xe0\x09\x60\x91\x36\x73\xc6\x5f\xd2\xc4\x08\x39\x36\xe8\xd7\xd9\x20\xcc\x5c\x36\x45\xc8\x09\xb9\x5a\x09\x65\x25\x92\xa2\xce\xdc\xe3\x0b\x58\x3f\x9e\xf4\x32\x0f\xd4\x5b\x95\xb2\x1f\x9f\xf0\xc7\x56\x74\xda\xa2\xcb\x42\xce\x12\x3c\x59\x93\xc7\xf8\xec\xf1\x6d\xcb\xa8\x23\xe4\xa3\x6a\x31\xdf\xb1\xe2\xc7\x28\x72\xba\xa9\x81\x9b\xd4\xb0\xef\x07\x58\x8f\x0d\x44\x18\x84\xf3\x6f\x6a\x23\x7a\x81\x1a\xd1\xcc\xe8\xee\x85\xdc\x84\x16\x55\x2b\x32\x39\x1b\x95\x35\x57\xb1\x24\x19\x30\xda\x1c\x88\xa6\x17\x80\x1e\x1e\xac\xed\xa8\x58\x8c\x06\x37\xc1\x2d\xea\xe0\x48\x06\x65\x7c\x11\xc2\x44\x88\x8b\x3c\xf3\xa8\xe7\x0b\x87\x0e\x18\x92\xf1\x48\xa4\x3e\xa6\xde\xc6\xb5\x1a\xaa\x70\xf4\x32\xb5\xe5\x4e\xed\xef\x38\x30\x1e\x01\xce\x34\xf1\xa9\xa6\x98\x7f\x22\x54\x91\x4f\x28\x54\x72\xb2\x87\x1f\xee\x7f\x1a\x12\x52\x50\x00\xd0\x5a\x5f\x45\x8e\x9c\xa5\x28\x68\x59\xb1\xff\x15\xb0\x6d\x83\xd8\x80\xa1\x7d\xa5\xb8\x2a\x30\x6c\x2d\x3c\xb2\x47\xb9\x66\xfb\x65\x41\x3c\x82\x78\x80\x52\x72\x2c\xf8\x13\x6d\xe7\xe7\xf9\x9a\xef\x60\x48\xd4\x41\x01\xf7\xd2\xe3\x67\xbd\x05\x76\xcb\x63\x58\xd0\x3c\xd1\xae\xf0\xac\x61\x7d\x78\xd2\x0f\x18\xe1\xdc\xfb\x4b\x9c\xc0\xbf\x10\x72\xce\xe2\x18\x38\xa6\x38\xf8\xe9\xcf\x85\x4f\x08\x2a\xd1\xdd\x70\xb6\xda\x1e\x0f\x19\xf6\x28\x51\x62\xb2\xd9\x63\x54\x14\xa6\x35\x54\x84\xe5\x13\x6b\x03\x10\xa6\x0c\x50\x1b\x2a\x25\x36\xaf\x90\x39\xda\x9c\x83\xa6\x15\xf3\xb3\x63\xb5\x8a\x00\xa7\x73\xb4\x87\xd7\x09\xfa\x84\x57\x6c\x2e\x64\x01\x54\xe7\x12\xc8\x92\x6a\x20\x7b\xf8\x89\xf5\x68\xb8\x3d\xe8\x51\x8d\xca\xb7\x7b\x09\x47\xba\x39\x1f\x1e\x1d\x0e\xc6\xd4\x03\xf0\xe2\xcd\x41\x03\x3b\xee\xc5\x8e\xb9\xd0\x81\x23\x7f\xb1\x1c\x79\x0b\xe9\x6f\x83\x29\x6f\x75\x1a\xf8\x72\x73\xfb\x82\xf8\x32\xf7\xf7\x78\x3c\xb0\xb7\xc4\x1a\x10\x6d\xb4\xaf\x9f\x92\x2a\x6d\x8b\x98\x10\x37\xce\xae\xe8\xd3\x05\x11\xad\xb0\x87\xd8\x3b\x8d\x73\xee\xee\x47\xf0\x15\xbc\xdd\xb0\x96\x87\x6d\xc6\x26\x0c\x18\xd3\x2b\x78\x82\x83\x42\x57\x04\x14\x71\x28\x95\x61\xb0\xd7\x21\x4b\xc1\x94\xc1\xd2\xcc\xca\xe3\xcd\x24\xc2\xb2\x6f\xf4\x7f\xa4\x40\xb9\x22\x8f\x7d\x28\xcc\x13\x55\xbe\xf1\x78\x10\x0f\xf0\x25\x42\x8b\xb1\xf7\xfe\xf3\xdf\xfd\x5a\x59\xd0\x72\xe8\xe0\x6f\x0a\xfe\xa6\x6a\x0b\xfe\xa6\xed\x49\x04\x7f\x53\x53\x0b\xfe\xa6\x51\xe3\x07\x7f\x53\xbd\x05\x7f\x53\xf0\x37\x05\x7f\x53\xf0\x37\x05\x7f\x53\xf0\x37\xf5\xfd\xe8\x36\xfc\x4d\xa5\x1a\x74\x1f\x7a\x74\x55\x65\x75\xf1\xf4\xf6\xe2\x39\xaa\x59\x54\x66\xcf\xfa\xb7\xec\xbf\x1e\x4a\xa9\xae\xaa\xc1\x37\x55\xa9\xab\x0a\xfa\x96\x05\x63\xb0\x46\xdd\xa8\x3f\x17\x1a\xf6\xd6\x18\xb7\xa4\x5a\xff\xce\x8d\x4b\x95\x40\xdf\xfb\x20\x87\x73\x9f\xf2\xe3\xee\xb2\x9c\x43\x99\x0f\x14\x93\x3d\x6f\xff\xdd\x37\x1b\xce\x85\xae\x3f\xe4\x9a\x4d\xcb\x37\x8a\x40\x6a\x34\x53\xfb\xaa\x77\x43\x80\xee\x75\x96\xd2\x1e\xea\xf2\x90\x8a\xc4\x97\x12\xdb\x0c\xff\x07\x59\x9b\x2d\x53\xee\xae\x4f\x4c\xe1\x93\x39\xe7\x46\x3c\x12\xdc\x65\xbb\x0c\x98\x89\x3d\x5a\xac\xe9\xd9\x51\xa5\x55\xa6\x70\x8d\xa8\x51\x95\xdb\x54\x49\x94\xa0\xda\xde\x1c\xea\x6a\x53\x09\xee\x0c\xf7\xe6\x17\xdb\xcf\x80\x49\x14\x04\x8b\xf0\x64\xc5\x8a\x86\xd0\xea\x4b\xa4\xd1\xea\x64\x99\xc2\x7d\xa4\x49\x22\xae\x86\x9c\x4f\x03\x29\x62\x74\x11\xc5\xde\xd8\x7b\x35\xb8\xda\xe2\x46\x56\x41\x5f\x59\x3d\x94\x64\x6c\x6d\xa1\x24\xe3\xe7\x51\x92\xb1\xe2\x9b\xad\xd6\x66\xec\x86\x15\xd6\x6e\xbc\xd3\xda\x8c\x84\xfc\xd3\x5d\x44\x2a\xc1\x3a\x54\xf3\x44\xb3\xac\xcc\xc6\x56\x76\x87\x12\xab\x52\x2f\x5c\xd6\x64\x9d\x7a\xcd\x6c\x68\xb4\xea\x1c\x6a\x83\xca\x71\x3c\xcc\xee\x56\xc8\x4d\x6d\x66\x21\xda\xdf\x6d\x41\x44\xaf\x6b\xdb\xf4\x4c\xf6\xd0\x59\x67\xbd\xf8\xdf\x0b\x77\xa5\x75\xd5\x2f\xaf\xc8\x9e\x39\x1d\x93\xb5\xf3\x64\xd7\x18\x61\xed\x58\xed\x31\x80\xb5\x83\x5d\x82\x17\x50\x97\xec\x12\x78\x79\xfa\xee\xa9\xfd\x7d\x2f\x13\x6f\xca\x0f\x3d\x7a\xbf\x89\x84\xd1\x87\x6b\x0f\x95\x0c\x36\xce\xfb\x1e\x23\xec\x90\x08\xbe\xa9\x9c\xb2\xdf\x76\xcb\x04\x3d\x06\xb1\x24\xed\xd3\x58\x2b\x1b\x5d\xca\x02\x9d\xbd\xdc\x61\xb6\xe0\x90\x94\xb4\x61\x56\xf1\x11\xa9\x68\x63\x2b\x8a\xde\x6d\x0a\xda\x9d\xa6\x9f\x7d\x39\x85\x3f\x1f\xd8\xfd\xf7\x05\x54\xad\xfa\x4c\xdc\x7d\xa1\x6c\x55\x53\x7b\xa8\xb2\x55\x77\xee\xce\xfb\xe2\xaa\x57\xdd\xab\xfb\xee\x7e\x5c\x77\x5f\x58\xf5\xaa\x07\x71\xd5\x7d\xe6\x75\xac\xee\xce\x45\x17\x8a\x44\x3d\x4c\x1d\xce\xa1\x6e\xb8\xf1\x54\xf5\xa0\xee\xb7\x07\x75\xbd\x3d\xbc\xdb\x6d\x94\xac\x72\x53\x77\xdb\x60\x32\xb9\xa9\x9b\x6d\x4c\x1a\xc1\x38\x7c\xbe\xbf\x54\xae\x7b\xce\x1b\xf8\x3c\x52\xb8\x1e\x28\x59\xe0\xa1\x12\x05\xee\x36\x49\xe0\x01\x52\xb6\xee\x29\x5d\xeb\xf3\x4a\x09\x18\x2a\x86\x0c\x12\x3e\x6e\xc6\x4b\xc7\x48\x08\x23\xd3\xb2\x46\xf2\xd3\xfb\x4c\xc7\xfa\x1d\xb0\xd4\x51\x69\x58\x81\xab\x3e\x10\x57\xbd\xbd\xb4\xab\xfb\x4b\xb9\x0a\xbc\xb5\xb9\xdd\x98\xb7\x8e\x4c\xad\xba\x35\xeb\xff\xdd\xa4\x54\xdd\x77\x3a\xd5\x1d\xa4\x52\x3d\x44\x1a\xd5\x1d\xa4\x50\x05\x9f\x49\xcf\x16\x7c\x26\x7d\x5b\xf0\x99\x34\xb5\xe0\x33\xd9\x6c\xc1\x67\x12\x7c\x26\xc1\x67\x12\x7c\x26\xdb\x03\x06\x9f\x49\xf0\x99\xf4\x6b\xc1\x67\x72\x3f\x3e\x93\xa1\x69\x49\xe3\x70\xf9\x61\xd2\x91\xee\x37\x15\xe9\xf6\xd3\x90\x1e\x30\x05\xe9\x77\x66\x70\x19\x9c\x6e\x34\x0e\xcd\x3f\x97\x34\xa3\xcf\x23\xc5\xe8\xc1\xd3\x8b\x6e\x9a\x5a\x74\x3b\x69\x45\x03\xb0\x7d\x24\x9e\x67\x22\x3e\xe2\x9a\xdd\xf4\x02\xad\x2a\x02\x36\xdd\xa2\x45\x2f\x05\x8b\x49\x96\x6b\x77\x71\x4f\xb8\x49\xab\x13\x07\xee\xe7\x26\xad\xda\xe6\x85\xeb\xb4\xda\xda\x67\x73\x9d\x56\xd3\x9e\x85\x3b\xb5\xea\x2d\xdc\xa9\x15\xee\xd4\x0a\x77\x6a\xd9\x16\xee\xd4\x0a\x77\x6a\x85\x1a\x87\xa1\xc6\x61\xa8\x71\xd8\xff\xab\x50\xe3\xb0\xb9\x85\x1a\x87\x43\x5a\xa8\x71\xd8\x7b\xf4\x50\xe3\x30\xd4\x38\x1c\x36\x70\xa8\x71\x48\x42\x8d\xc3\x50\xe3\xf0\x0b\xae\x71\x18\xee\xd4\xfa\x22\x2e\x71\x09\x37\xb8\x0c\x18\xfb\xf3\xba\xc1\x25\xdc\xa9\x15\xee\x6e\xe9\xd1\xc2\x9d\x5a\x5f\x10\x3b\x0e\x77\x6a\x7d\xc9\x1c\x39\xdc\xa9\x15\xf8\x72\xb8\x53\xab\x68\xe1\x4e\xad\x70\xa7\x56\xf0\x37\x61\x0b\xfe\xa6\xe0\x6f\x1a\xd2\x82\xbf\xa9\xab\x05\x7f\x53\xf0\x37\x35\x8d\x1e\xfc\x4d\xc1\xdf\x34\x6c\xe0\xe0\x6f\x22\xc1\xdf\x14\xfc\x4d\x5f\xb0\xbf\x29\xdc\xa9\x15\xee\xd4\x0a\x77\x6a\x15\x23\x87\x3b\xb5\xc2\x9d\x5a\xd8\xc2\x9d\x5a\x3d\x46\x08\x77\x6a\x7d\xa9\x77\x6a\xd5\xf2\xa6\xbe\xdc\x8b\xb5\x86\x2f\x23\xdc\xae\x15\x6e\xd7\x6a\x68\xe1\x76\xad\x70\xbb\xd6\xae\x16\x6e\xd7\x0a\xb7\x6b\xb5\xb4\x50\x29\xb2\x67\x0b\x95\x22\xfb\xb6\x50\x29\xb2\xa9\x85\x4a\x91\x9b\x2d\x54\x8a\x0c\x95\x22\x43\xa5\xc8\x50\x29\x72\x7b\xc0\x50\x29\x32\x54\x8a\xec\xd7\x1e\xde\x01\xf7\xff\x47\xa5\xc8\x70\xbb\xd6\x67\x79\x15\x4c\xb8\x07\xa6\xa3\x7d\x3e\xf7\xc0\x84\xdb\xb5\xc2\x0d\x30\xae\x85\xdb\xb5\x3e\x63\x96\x1a\x6e\xd7\xea\x6e\x9f\x0f\x57\x0d\xb7\x6b\x05\xde\x5a\x6b\xe1\x76\xad\x70\xbb\x56\xd1\xc2\xed\x5a\xc1\x67\xd2\xd8\x82\xcf\x84\x04\x9f\x49\xd1\x82\xcf\xa4\xd7\xb8\xc1\x67\x12\x7c\x26\xc1\x67\xd2\x3e\xe9\xe0\x33\x09\x3e\x93\xce\xc1\x83\xcf\xe4\x77\xef\x33\x09\xb7\x6b\x85\xdb\xb5\x76\xb4\xdf\x99\xc1\x25\xdc\xae\x15\x6e\xd7\xfa\x7d\xde\xae\x05\xd7\x5a\xd2\x48\x1f\x0b\xae\x81\x37\xe6\x24\xf5\x45\xe7\x97\xb5\xde\xcc\xe9\xba\x60\xcb\x5c\x3a\xbd\x7f\xf9\xfe\xf4\x98\x44\x54\xd3\x44\x2c\xc9\xa9\x88\xad\xa9\x1b\xbf\x28\x7e\x4e\x41\xd3\x98\x6a\x5a\x78\x49\x8c\x7e\x7c\xc9\x62\x64\xaa\x31\x5c\x13\x96\xd2\x25\x18\xe6\xd5\x38\x89\x5c\x01\xa1\xe4\x0a\x92\x64\x7a\xc1\xc5\x15\x27\x97\x20\x55\x85\x5d\x7f\x12\x59\xfa\x89\x28\x90\x97\xf6\x86\x2a\xb8\xce\x0c\xa2\x31\x6d\xcf\x7d\x3f\x93\xea\x70\x65\x10\xff\xb1\x7d\x7a\x86\x41\xcf\x6d\x97\x3d\x15\x6b\xc7\x65\x9a\x39\x3d\x35\x82\xfd\x53\x43\xd4\xb9\xf2\x19\x07\x0b\x96\xc0\x74\x4e\x15\xc4\x7e\x5c\x65\x68\x4d\xc8\xd8\xce\x2d\xd7\x2c\x61\xbf\x82\x3b\x4d\xac\x31\xbc\x09\x6d\x7a\x08\x1c\xdd\x86\x90\x29\x89\x68\xb4\x82\x17\xac\xd9\x84\x31\xf5\x53\x6d\x7e\xa9\x8f\x4d\xc3\x8f\xd3\xfb\x32\xb7\x63\xf7\x81\xb7\x5a\xc4\x4c\x22\x73\x5a\x13\xa5\x85\xf4\x10\xcd\x24\x4c\x23\x9a\x44\x79\x82\xac\xe8\xe8\xf4\xc4\x8e\xd4\x7d\x1d\x5b\x07\x89\x95\x8b\x1e\x30\x63\xff\x49\xfb\x9c\xb7\xb1\x00\x05\x53\xb4\x53\xde\x64\xda\x29\xa4\x42\xae\xcf\xa9\x5c\xc2\x8d\x49\xfb\x4d\xa5\xaf\x4d\xc2\xfe\xc3\xab\x77\x6f\x5e\xbe\x79\x7d\xf2\xe6\xe4\xdc\xf1\x6b\xef\xb4\xdb\x24\xf9\x59\xc5\x31\xa4\xc4\x42\xbb\x29\x92\x84\xa5\x4c\x17\x5f\x59\xda\x6c\x56\xa5\x2d\x3f\xc7\xc4\xc3\x9c\x6b\x96\x82\xf5\xd0\x51\xad\x8d\xa8\x63\xe8\x26\x05\xd0\x78\xff\x5b\x4a\x2f\xc0\x30\x5d\xb2\xcc\xa9\xa4\x5c\x83\x3f\x22\x98\xb6\x1f\xc5\x82\x28\xe1\x14\x7c\xa6\x4a\x6f\x9e\x02\x6d\xd3\xad\x4e\x45\x33\xab\xc1\x1e\x56\xf4\xd2\x5e\xd0\xb5\x10\x86\xaf\x9b\x4d\x4d\x45\xcc\x16\x2c\xb2\x16\x23\x92\xd2\xb8\x48\x11\x72\x0a\x07\xc8\xe2\x58\x2c\x17\xdc\x46\x95\x9b\x60\x06\x7e\xc9\xa4\xe0\xa8\x48\x5d\x52\xc9\xe8\x3c\x81\xc2\x4f\xa9\x40\xdb\xf1\xca\x05\x71\x32\x5f\x6b\x68\x66\x57\x76\x04\xb7\x1b\xee\x66\xb7\xe6\xfe\x1e\x35\xf6\x73\x5e\xe6\xf2\x95\x42\x8c\xf9\x9e\xb9\x24\x8f\x18\x14\x73\x4c\x51\x42\x9c\x47\x1e\x74\x42\x67\x92\x59\xad\x90\x16\x18\xe3\x98\x34\x55\x24\xcd\xcd\x09\x6e\xa4\x23\xa5\xd8\x3c\x81\x89\x91\x81\x58\x73\x12\x52\xd9\xc7\x1c\x0c\x94\xb1\x27\x94\x4c\x2e\xc1\xe0\x9b\xc1\x63\x2b\x02\x03\x18\x01\x49\xe0\x25\x6b\xd4\x8a\x39\xde\xb5\x6b\xce\xe9\xc8\x39\xf6\x4f\x16\x64\x2d\x72\x59\x3b\x16\x56\xd4\xe0\x31\x52\x6f\xe3\x44\x5c\xe2\x20\xf2\xa0\x09\x89\xc1\x28\x14\x8c\x9b\x13\x6a\x29\x44\x6c\xf4\x0a\x29\xae\x59\x8a\xa3\x38\x02\x28\x76\x6d\xbe\x26\xb1\xc8\xad\x97\x14\xd1\xc4\x1c\x05\xee\x14\xcb\x68\x74\x61\xe6\x80\x1d\xb7\xa5\x7c\x1e\xe8\x34\x3b\xc0\xb7\xdc\x7f\xdd\x97\x6a\xf6\xb3\x12\xbc\x74\x8e\x17\xcb\x9a\xf5\xda\x5d\xa6\xc8\x1c\x94\x9e\xc2\x62\x21\xa4\xfe\x9b\xd9\xdf\x9c\x23\xd1\x70\x51\x00\xd0\x23\x10\x06\x42\x20\xb4\x31\x75\xa7\x4e\xf5\x42\xee\x60\x20\x15\xd4\x6b\x62\x81\x99\xa1\x77\xc9\x0f\xc9\xff\xd9\xfb\xf7\x1f\x7f\x9b\xee\x7f\xb7\xb7\xf7\xe1\xd9\xf4\xaf\x1f\xff\xb8\xf7\xef\x19\xfe\xe3\xe9\xfe\x77\xfb\xbf\xf9\x3f\xfe\xb8\xbf\xbf\xb7\xf7\xe1\x87\x37\xaf\xce\x4f\x5f\x7e\x64\xfb\xbf\x7d\xe0\x79\x7a\x61\xff\xfa\x6d\xef\x03\xbc\xfc\xd8\xb3\x93\xfd\xfd\xef\xfe\xd0\x30\x21\xca\xd7\xef\x16\xad\x44\xdc\x2b\xeb\x79\xda\xe7\x3c\xaa\x89\x7a\x8c\xeb\xa9\x90\x53\xfb\xc1\x21\xd1\x32\xdf\x2d\xe2\x1a\x79\xb8\xcb\x65\xdc\xf7\x3c\x78\x5b\xe9\x6b\xc3\x93\xe4\xae\x48\x74\x66\x4c\x33\x9b\x82\xb3\x67\x56\xea\x5b\x98\x6d\xf7\xea\x40\xf3\x11\x77\xb6\xa3\x47\x94\xf3\xdd\x97\x4f\x94\x8f\xd0\xd8\xe8\x7f\x23\x79\xd9\x72\xfc\xb6\xb1\x7a\xc8\x4e\xc3\x4c\x33\x9d\x5b\x98\x49\x26\x24\xd3\xeb\xe3\x84\x2a\xf5\x96\xa6\x70\xd3\x0d\x39\x59\x94\xea\xd9\xc4\xd0\xb3\x39\x7f\xdc\x01\xed\x42\x66\xdc\x90\xcd\x00\x3f\x59\xa0\x7e\x52\xe9\xc7\x03\xd5\x7f\x5b\x10\xa6\x27\x71\x21\xc9\xaf\x20\x85\xbb\x2c\x53\x82\xd5\x71\x1a\x47\x70\x9f\xb5\xef\x43\x0b\xd8\x14\x44\x39\x82\xcd\xc8\x47\xd7\x46\xd3\x58\xb0\xe5\x4d\x41\x77\xb6\xab\x53\x12\x51\x6e\x16\x8a\xd7\xbf\x2e\xc8\xa7\x04\x96\x34\x5a\x7f\x32\x0b\xfe\x24\xc1\x4c\xd1\xe8\x86\x9f\xac\xd2\x50\x53\x0b\x5c\x74\x12\x53\x04\x18\xde\x08\xcc\xf8\xcf\x56\x91\xf4\x5a\x79\xe3\x4c\x24\xd6\x6d\xc8\x44\x3c\x33\x7b\x30\xdb\x58\x2d\xb2\xd0\xe2\x61\x21\x4a\x7c\x78\xfa\x71\xeb\x4d\x67\xe5\xd4\xc2\x2a\x9b\x55\xe2\x90\x39\x72\xfd\x36\xb9\xc6\x03\x84\x1c\xc5\x29\x43\xd3\x2c\xd9\x3b\x3d\x3b\xda\xaf\xad\xdc\x48\x39\xf6\x1c\x8e\x05\xf8\xf8\x20\x33\x90\x2a\x8d\xac\x78\x86\x62\x6a\xa8\x25\x61\xcc\x0d\xf5\x73\x31\x00\x46\xbb\x6b\x4b\x3a\xb4\x9f\xec\xd9\x11\xf9\x64\x24\xe4\x84\x71\xb0\x7b\x90\x49\x76\xc9\x12\x58\x9a\x99\x54\x02\x1c\xbc\xab\x66\xf7\x9e\x32\x65\x4e\xa9\x3a\x7a\xa7\x98\xdb\x6c\xd1\xba\x05\x6f\xdd\xc1\xed\x62\x4d\x2a\x56\xbf\x27\x0a\xa7\xe7\x65\xe2\x52\x5e\xa8\xbd\x85\xe8\xc0\x17\x42\x46\xe6\x34\xdf\x01\x47\xed\x92\xff\x0d\x68\xda\x05\x4e\x34\x0b\x15\xda\x25\x55\x86\xf6\x6a\x1d\x5e\xd1\x4a\x85\x85\x19\x79\x67\x90\xf0\x8a\x29\x98\x14\x52\xef\xce\x2e\x3c\x86\x5f\xd1\x66\x39\xb1\xd2\xed\x19\xfe\x73\x6d\xbd\x50\xce\x4c\x83\xe8\x8e\x72\x54\x13\xbd\x10\x09\xca\xf0\x0d\xc6\xed\x57\x2c\xb6\xa2\x0f\x48\x29\xe4\xcc\x96\x40\xb0\xfa\xb1\x48\xe2\x96\x53\xb2\x50\xd3\x8d\xc8\x82\x46\x28\x8b\x5f\x1c\x39\x98\x43\x9b\xdd\x60\x6e\xc0\x8d\xba\xbc\xaa\x45\xb1\x84\x16\x81\xe8\x8d\xc0\xba\x09\xb6\x38\x89\x59\x06\x9d\x8b\x5c\x5b\x7c\xb0\xec\x63\x21\x72\x1e\x13\xc3\x19\x0f\xc9\x4a\xeb\x4c\x1d\x1e\x1c\x94\x47\xf7\x8c\x89\x83\x58\x44\xea\x20\x12\x3c\x82\x4c\xab\x03\x4f\xc8\x07\x99\x88\xa7\xfe\x8f\x29\xf5\x74\x78\xf0\x64\x2c\xe7\x24\x04\x78\xde\x72\x5d\xec\x94\xd8\xe5\xb6\xbc\x50\x42\x73\xe7\x4b\x5a\x24\x2e\xb4\xb3\xf1\x60\xac\x5f\x22\x5c\xbe\x5f\x5c\x72\x5c\x48\xfe\x15\x4e\xfa\x44\x55\xbb\x6e\x3f\x3a\xda\x4c\xce\x1d\x46\xe6\xfe\x36\xdb\x73\xcf\x4c\x8d\x38\x5c\xae\x02\xc5\x20\xad\x29\xde\x7f\x6c\xf4\x25\xfb\xc4\xf0\x41\xbe\x26\x86\x57\x6b\x77\x19\xb7\xb5\x55\xb6\xa9\xf6\x2b\x23\x38\x61\xf1\x8f\x6f\x0a\x7f\xdc\x04\x16\x0b\x88\xf4\xb7\x15\xfb\x51\x51\xbe\xa2\xf0\x77\x7d\xe3\xff\xf5\x6d\xf3\x31\xdf\xcb\x35\xd5\x2f\x2e\xc5\x4e\xa9\xdd\x28\x3e\xcc\x18\xfe\x12\x7b\xdc\x10\x60\x2c\xf0\xec\x60\xa8\xdf\xa3\xd3\xda\x59\x58\xad\xbb\xc2\x09\x86\x49\x52\x7b\xb9\x33\x32\x03\x19\x4e\xe5\x44\x70\xb6\xd9\xd2\x4d\x08\xe4\xad\x70\x75\x80\x60\x42\x4e\xf1\x4e\xea\xf2\x17\x3c\x92\xdf\x0a\x5b\x11\xa8\xa3\xc4\x4b\x4f\x4b\x6e\x67\x60\xcf\x30\x78\xfe\x50\xc6\xf9\x58\xc0\xd4\xe2\x7c\x4a\xc2\xaa\x3a\xc8\x5a\x01\x7b\x01\xeb\x4e\xa8\xba\xd3\xcf\xc5\x18\xa1\x03\x6a\x52\xe2\xa8\x57\x0d\x6c\x08\xc5\xdf\x5c\xd9\x08\x91\xce\x19\xb7\x53\xb1\x03\xfb\x7d\xc6\xb1\xfd\x7e\xf0\x18\xff\xec\x9e\x44\x4f\x68\xf7\x0b\x36\x1a\x06\xf2\x77\x03\x02\x89\x0a\x97\x74\x17\x48\x77\x05\x0c\x55\xa2\x84\x5e\xfe\x92\xd3\x64\x46\x5e\x58\xf9\x1a\x81\x67\x7f\xea\x22\x37\xdb\xc5\x96\xa3\xfe\x8a\x25\x71\x44\x65\x8c\xaa\x95\x65\x3f\x44\x09\x8b\x38\xd4\x8b\x6f\x1d\x7d\x7b\x06\x58\x22\x8f\xbd\x2d\x9e\x64\x54\x6a\x16\xe5\x09\x95\x86\xe1\xc3\x52\xc8\x8e\xc0\xf9\x9e\x9b\x59\x62\xf3\x19\x44\x82\xc7\x1d\x2e\xc5\x61\xbb\x7a\xbe\xd9\x79\x75\x7b\x51\x70\x03\xc9\x5c\x29\x1a\x96\xc2\x26\x79\xed\xd5\xd4\xe2\x8e\xb1\xc4\xc2\x33\xbb\x82\xb7\x4c\xac\x74\x65\xe4\xb8\x6a\xc5\x2c\xa6\x7c\x5a\xc2\x7e\xe5\xc0\x29\xa8\x7d\x46\xfe\x51\x04\xcb\x77\xc5\x26\x31\xed\x1d\x54\x68\xc7\x71\xf3\x75\xa4\xe8\x76\xb2\x64\x23\x0b\x21\xe1\x12\x24\xd9\x8b\x05\x7e\x83\x95\xaf\xf6\x67\xe4\x5f\x46\x1b\x6c\xf3\xcf\xd8\xc6\x61\x69\x6b\x27\x39\xc2\x2e\xb2\x45\x24\xa0\xe1\x9e\x2a\xf2\x8c\xec\xd9\x72\x5a\x2c\x4d\x21\x66\x54\x43\xb2\xde\xf7\xe2\xb7\xb5\xab\xf5\xc1\x9a\x3e\x55\xe6\x2a\xd5\xe5\xbe\xfe\x73\xcb\x9b\x38\xd9\xdb\x44\xaa\x9f\xbc\xbd\xb9\x04\xac\x15\xa5\x37\xb0\xa7\x70\x6f\x76\x46\x2f\x34\x86\xaa\x4d\x4a\x5e\x53\x91\x75\x3d\x6f\x2e\x70\xeb\x67\x83\xa0\x94\x48\x58\x22\x7d\x5a\x9a\xbb\x01\x75\xb2\x68\x77\x9d\xbc\x0e\x21\xa4\xdd\x55\x35\x25\x46\x19\xfc\xfa\xcf\x31\xd5\xb4\xe1\x05\x8b\x32\xeb\x6c\x17\xa9\x75\xc9\x36\x65\xe7\x4d\x7b\xdd\xc3\xf7\xe2\x86\x1f\xd5\x03\x6a\x35\xbb\xbe\xec\x83\x5d\x27\x68\x9c\xb6\x41\x94\x1e\x0d\xa6\x12\x96\x4c\x69\xb9\xae\x78\x20\x9c\x6f\x53\x10\xc6\x95\xa6\x5c\x33\x64\xd5\xc4\xbf\x39\x75\xd6\xf7\x2b\xa6\x1b\xe2\x03\xdf\x19\xe5\x1d\x6d\xbb\x98\x32\x64\xad\x1f\xe7\xeb\x0c\xc8\xdf\x2b\x7f\xbc\x92\x59\xb4\xfb\xfb\x93\x05\x71\x0c\xd4\xe2\x26\x8d\x63\x09\x6a\x9b\xb3\xed\xfa\xba\x15\x7c\xde\x5a\x35\x16\x82\xa7\xde\xda\xe5\xf2\x96\x94\x62\x4b\xa3\xa4\xf8\xc2\x9a\xde\x99\x53\x53\x56\xcc\xaf\x6e\x60\xeb\xb2\x85\xb4\x38\x31\x99\xf6\xfa\x60\x24\xb8\xca\xd3\xd2\x8c\x10\x43\x06\x3c\x06\x1e\xad\xb1\x96\x56\x72\x09\x0d\xf1\x3d\x3f\xaa\x06\x94\x20\xe4\x7f\xb1\xa5\xd1\xbb\xdd\xe4\xaa\x92\xb3\x77\x5b\x6f\xcc\x94\x29\x03\xf8\x05\x48\xa3\xfd\x63\x4a\x8f\x11\x7a\x7d\x0f\x15\x37\xa4\x2b\xee\xe5\xa3\x4d\x37\x27\x8b\x15\x16\x77\x4f\xf7\xbc\x28\x0b\xea\x1d\x16\x1e\xa6\x96\x03\x19\x70\x2c\x85\x75\xf3\x67\x42\x31\x5f\x47\xaf\x38\x17\x6a\xa5\x45\xc5\xc2\x16\xfe\x6c\x1e\xab\x9e\x8e\x87\x11\xda\x1b\x8b\x46\xe3\x5b\xce\xed\x66\x42\xd5\xa4\xe9\x79\x61\x43\xf1\xd2\xf3\xed\xad\x2e\xc2\x6b\x30\x87\xaf\xbe\xb4\xf2\x2c\x93\x94\x5f\x40\x4c\x12\xb8\x66\x91\x58\x4a\x9a\xad\x58\x84\x55\x22\xad\xaf\xd7\x68\x8c\xda\xc6\x56\x35\x63\x78\xd3\xe9\x95\xe5\xf3\x84\xa9\xd5\x6e\xaf\x61\x2b\x71\x28\x88\x24\xe8\x9d\x9c\xaf\x0f\x6d\x9c\xd9\xcf\x4b\xe1\xc7\x47\xc2\xbb\x7e\x5d\x22\x89\xc5\x76\x9f\x01\x4b\xa3\xc8\x10\xb6\xf7\x80\x82\x93\x04\x2b\x44\xd4\xc0\x21\xb4\x77\x34\x99\x5e\x2e\x00\x32\x8b\xcf\x18\xc1\xa6\x52\x34\x2e\x2a\xc6\x23\xc0\xaa\x97\xae\x7a\x29\x80\x77\x02\x68\xc9\xc0\x4a\xb0\x80\x6e\x3f\xbf\x8b\xc0\xf5\x6e\x89\xb3\xdd\x88\xd0\x62\x40\x68\x87\x78\xc1\x0b\x3b\x81\x5e\xe1\xa1\x5e\x28\x30\xff\x36\xe0\xc5\x27\x43\x37\xdb\x16\x39\x3d\xb3\x31\xe2\xa3\xf9\xe1\x8f\xb5\x5e\x5c\x70\x97\x22\x2b\x71\xe5\x06\xd8\xe4\x18\xce\x2c\xe7\xd1\x20\x66\x2a\x32\x6c\xa6\xc1\x70\x74\x2c\xb8\xf2\x45\x4d\x29\xb7\x75\x48\x2f\x69\xe2\x32\x79\xdd\x60\x99\x48\xd0\x11\x1a\xe7\x5e\x5f\xb5\x39\x49\x90\xce\x21\x8e\x21\xf6\x81\xf0\x6b\xd2\x70\xe8\x77\x08\x1c\x5d\x32\x81\x3f\x16\x4f\x45\x92\xb4\x9f\xe9\xad\x86\x95\x3e\x66\x15\x0f\x80\xde\x81\x26\x1d\x62\xe6\x89\x07\x28\x53\x05\x45\x96\x9e\x68\x44\x32\xa3\xb0\x14\x70\x9f\x83\xbe\x02\xe0\x24\x5a\x41\x74\xa1\xca\xe0\x3b\x6d\xe8\x70\x63\xa3\x5d\x70\x55\xbb\x80\x58\xe5\xa0\x85\x60\x6a\x36\xd4\x65\xe3\x03\x61\x46\x2d\xe4\x70\xb5\x19\xac\xb5\x7d\x70\xd1\x4b\xca\x12\x3a\x4f\x3a\x14\xe6\x93\x45\xf9\xe6\xa4\x3a\x7f\xe6\xa5\xa3\x2c\x4f\x12\xe7\x96\xc6\x30\x15\x2d\xe9\x62\xc1\x22\x8c\x5e\xc4\x30\x9d\x32\xdc\x77\xe7\xd2\x47\x85\xe6\x28\x4d\x75\xbe\xb5\xf5\x2d\x78\xd3\x86\x2f\x46\x0b\x65\x8d\xf6\xd6\x3e\x18\xf2\xbe\xae\xc1\x9a\xd9\x81\x55\xd1\x6b\x1e\xad\x19\x79\x2b\xb4\x0b\x83\x7b\x03\x4a\xb9\x10\x3c\xf2\x1e\xa8\x12\xbc\x72\x14\xa0\xe6\x21\xd9\x92\x71\xba\xbb\x9c\x82\x5d\x7f\xd5\x64\x5e\x28\x9a\x74\x8d\x55\x9f\xd9\x52\x52\x5d\x70\xf0\x72\x89\xee\xd0\x74\x62\xc1\x22\xc7\x50\x38\x72\xc4\xd7\x88\x36\x2e\x36\x6e\xb7\x4d\x95\x71\x2d\x45\x9c\x47\xe0\xea\x5b\xe7\xaa\xda\xf1\xad\x9e\x03\xf5\xf8\x2f\x3f\x46\x99\x67\x10\x83\xa6\xcc\x39\xac\x05\x07\x42\x55\x66\xb4\x7c\x8f\xed\xb9\x94\x78\xa2\xfa\x7d\xc0\xc3\xee\xe8\xf4\x84\xbc\x87\x36\xa4\xeb\xe4\x3b\x5d\x81\x7f\x53\x92\x50\xa5\xcf\x25\xe5\x0a\x27\x7c\xce\xd2\x26\x13\x85\xd1\xac\x10\x03\x1a\x9f\x4b\xc4\x8a\xc6\xc7\x16\x05\x1a\x1f\x37\x70\xef\x3e\x9c\x73\x7b\x0d\xb7\x61\xed\xdf\xee\xb5\xcc\x9b\x34\x72\x89\xb7\xf5\x14\x18\x65\x38\x89\x7b\x1b\x5c\x0d\x70\xb3\xd5\x0e\xf5\x31\x09\x06\xd5\xed\x36\x06\x82\x91\x36\xa5\x96\x7e\xe5\x9d\x83\x39\x8f\x41\x26\xe8\x74\x2b\xc7\x8b\x56\x46\x48\x8e\x67\x4e\xf9\xa7\x85\x1d\x07\xe3\x5f\x9d\x6b\xb1\x74\x1a\xd8\x88\x39\xdf\xa3\xc1\x2e\x57\x7c\xdd\x76\x83\x4c\x36\x8a\x20\xd3\xed\x5c\xb6\x97\x4d\xce\x1b\x56\x8c\x90\x30\xd5\xcd\x58\xe5\x70\xea\x36\xf6\xcb\x75\x65\x83\x52\x56\x79\x4a\x0d\x83\xa2\x31\x46\xc8\x15\xcf\xac\x8e\x64\x75\x1a\x4b\x91\xd6\x73\x67\x1d\x2f\x7e\xfb\x3a\x77\xc8\x31\x2d\x5a\xe4\xe0\x77\x58\x4b\x7a\xc1\x2c\xa5\xd7\xaf\x81\x2f\xf5\xea\x90\xfc\xe9\xab\xff\xf9\xf5\x5f\x1a\x5e\x14\x73\x1b\xd4\xf6\x0a\xb8\xb3\x12\xdd\x06\xf4\xb6\x7b\xdd\x34\x73\xce\x7c\x8c\xf6\x6c\x59\xbe\x53\x38\x14\x4a\xac\x44\x2f\x34\x68\xc7\xb7\xf3\xac\x1d\x9c\xdf\x63\x96\x81\xd2\x94\x47\x30\x31\xe2\xc0\xce\x61\x8c\x2a\x6b\x79\x64\xb2\x26\xcf\xbf\x9a\x60\x8c\x27\x4e\xca\x52\xd7\xac\x64\xeb\x1f\xae\x3f\xce\x76\x2c\x86\x29\xf2\xd7\xc9\xc6\x4c\x99\x22\x66\xef\xc5\x02\xd1\xb4\x65\x92\xa8\xf6\x49\xb0\x3c\xdb\x1b\x01\xb6\x79\x36\x14\x2b\xe9\xc2\x84\x2e\xdb\x64\x3f\xbb\x64\xca\x38\x4b\xf3\xf4\x90\x3c\x6b\x78\xc5\x72\xe4\xdb\x40\x0f\xdb\x53\x79\x9e\x51\xc3\x96\x97\x92\xa6\x29\xa6\x62\xb1\x18\xb8\x66\x0b\x86\x41\x2f\x05\x89\xa1\x1e\x6f\x3f\xf4\x81\x5a\x05\xf0\x31\x86\xcb\xb0\xd1\x5e\x44\x77\x6a\xcf\x71\x89\x42\xa9\xf3\xda\x45\x55\xce\xbb\xce\xc0\x52\xa5\x55\x1b\x08\x5c\x67\x56\x92\xab\xf8\x8f\x52\xa0\x9c\xf1\xa5\x2a\xc3\x2d\x91\xff\xb5\x99\xc7\xcd\x67\x57\x2b\x70\xe1\x0d\x50\xf5\x0e\xfa\x9a\x46\x46\x94\x2c\xa3\x8c\x31\xf2\xbc\x9d\x7d\x6c\xdb\x62\x8d\xd4\x95\x42\x72\x4c\x15\xf4\xb0\xbb\x56\x82\x31\xfd\x7d\x14\x45\xd6\xf0\xad\x31\xa0\xe7\xcf\xbe\x6a\xc5\xbb\xe2\xbd\xc6\x97\xca\x30\xcd\x0f\x47\xd3\x7f\xd1\xe9\xaf\x1f\xf7\xdc\x3f\x9e\x4d\xff\xfa\x7f\x27\x87\x1f\x9f\x56\xfe\xfc\xd8\x1c\x5d\xb9\x5b\x72\x2e\x5b\x0d\x87\xdd\x59\xeb\xc5\x2a\x8f\x1f\x13\x1f\xcd\x75\x2e\x73\x98\x90\xef\x69\xa2\x60\x42\x7e\xe4\x78\x4e\xde\x10\x68\xed\xd1\x15\x46\xb2\x79\x6c\x46\x7d\xdc\xfe\x0a\x4e\xa9\xfd\x1d\x37\xdd\x36\x15\xb4\x1f\x90\xbc\x65\xa1\xc2\x08\x79\x05\x03\x6d\xda\xd7\x42\x88\x19\x5c\xd3\x34\x4b\x60\x16\x89\xf4\xa0\x78\x7e\x8b\x87\xdc\xf3\xaf\x7b\x60\xcf\xde\x07\x8b\x23\x1f\xf7\x3e\x4c\xdd\xbf\x9e\xfa\x9f\xf6\xbf\xdb\xfb\xf7\xac\xf5\xf9\xfe\xd3\x03\x8c\xed\x2d\x50\xed\xe3\x87\x69\x89\x76\xb3\x8f\x4f\xf7\xbf\xab\x3c\xdb\xdf\x85\x84\xdb\xd9\x55\x29\xcd\xa6\x17\x8d\xa5\xed\x1a\x45\xd9\xa6\x34\xad\x94\x66\xbb\x54\xbc\x05\x5b\xbe\xa1\xd9\x7b\x58\x80\x04\x1e\x75\x9b\x90\x8e\xb7\x3e\x21\x7b\xb1\x39\xc2\x31\x39\x6f\xdf\x0b\xaf\xb2\x78\xea\x0e\xb2\xe2\x3b\xcf\xdd\x8b\x9b\xa2\x36\x63\x72\x6a\xa1\x6e\x93\x52\x94\xdc\xa1\xac\x97\xbd\xde\xbe\x0b\x88\xd3\x06\x71\x72\x5a\x86\xdd\x8d\x30\xf4\x98\xe3\xc8\x1a\xbc\xda\x34\x88\x1e\x48\xde\x4f\xf6\xe5\x2d\xb1\xbf\x9d\x83\x14\xeb\x1c\xdd\x83\xbf\xc0\xe3\x27\x6b\x77\x19\xdd\x4f\xce\x1a\x95\xcb\xbe\xd2\xc5\x8f\x27\x2f\x2c\xce\x20\x63\x42\x89\x72\x25\x92\x58\x91\x9c\xb3\x5f\x72\x20\x27\x2f\x8a\xb2\x44\x8c\x47\x49\x8e\x17\x1e\xfd\xf8\xe3\xc9\x0b\x35\x23\xe4\x1f\x10\x51\xa3\xd7\x5f\xb5\xc4\x70\x62\x4d\xc0\x77\x6f\x5f\xff\x6f\xb4\x00\xe0\x97\xee\xbe\x11\x57\x71\x24\x61\xd4\x5a\xa4\xec\xe1\x6b\x7a\xb5\xe1\x8d\x38\xa3\x88\x66\xcd\x36\x06\xe2\xec\x76\xdc\x46\xe9\xae\x20\xc9\x14\x66\x1f\x11\x95\x4b\xb7\x1a\x33\xa0\x4d\x83\xc0\xfc\x74\xe7\x38\xf7\x09\x55\x98\xb0\x36\x2a\x30\x3a\x12\x9c\x43\x84\x91\x09\x46\x08\xed\xc3\x21\xaa\xef\x6f\x0a\xf8\x3b\x25\xda\xcd\x08\xe7\x72\x4c\xcf\x3f\xbc\x81\xf4\xf6\x09\xdd\x50\xe4\x3b\x27\xca\xe3\x8c\x47\x50\xb5\xf3\x2d\x8e\xc6\x6f\x33\x07\x07\xb7\x3b\x67\x09\x5b\xeb\x1d\x35\xa2\x35\x5a\xa2\x33\xf8\x7d\x87\xed\xba\x1e\x96\xb9\x65\xd9\xd8\x48\x7a\x45\x03\x6a\xe1\x4f\x5e\x51\x45\xe6\x00\x1c\xed\xb9\xd6\x6e\x07\xdc\xe1\x3c\x94\xd6\xd6\x3c\x9b\x6a\x31\x6d\xd0\xaf\x3a\x20\xd7\x0d\xb5\x16\xf3\x41\x6d\x6d\x47\x83\x0d\x02\x57\xab\xf5\x2e\x18\xa8\xf2\xba\x23\x2f\x3d\x0d\xf6\x52\x37\x6b\x65\xb5\x39\x3b\x23\x6b\x71\x6c\xe3\x5f\xdb\x53\x32\xea\x76\xcd\xf0\xa4\x05\xba\x17\x6b\xd4\x3c\x62\x8e\x76\x9b\xcf\x40\x5e\xb2\x1e\xc2\xc7\xfb\xfa\xfb\xbd\x58\xcb\xab\xf7\xa7\xc7\x98\xa0\x67\x3e\xf0\xfe\x09\xc4\xfe\xaa\x54\x71\xfb\x1e\x9d\xc8\x86\x1a\x1d\xdd\x3d\x41\x67\x42\x8e\x1f\x24\x93\x42\x8b\x48\x74\x38\x9d\x5a\x73\x66\x10\xb4\x6d\x49\x46\x43\xfa\x18\x2a\x6f\x58\x3e\x56\x4b\x4b\x53\x5a\x48\x43\xae\xb5\xdf\xf2\x79\x71\x99\x58\xd9\xbb\xd3\xfa\xc8\x7f\xfe\xfb\xe8\xff\x05\x00\x00\xff\xff\x88\x8c\x51\x47\x12\x5b\x01\x00") func operatorsCoreosCom_catalogsourcesYamlBytes() ([]byte, error) { return bindataRead( @@ -105,7 +105,7 @@ func operatorsCoreosCom_catalogsourcesYaml() (*asset, error) { return a, nil } -var _operatorsCoreosCom_clusterserviceversionsYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\xbd\x7b\x77\x1b\xb9\x95\x2f\xfa\x7f\x3e\x05\x96\xd3\x73\x25\x4d\x48\xca\x4e\x26\xb9\x19\x9f\xb9\x93\xa5\x23\xbb\xbb\x75\xbb\x2d\x6b\x59\x8a\x73\xb3\x3a\x7d\xba\xc1\xaa\x4d\x12\xa3\x2a\xa0\x06\x40\x51\x66\x4e\x9f\xef\x7e\x17\x36\x80\x7a\xf0\x21\x91\x05\x48\x2a\xbb\x0b\x59\x2b\x6d\x91\x45\x60\x17\x1e\x1b\xfb\xf9\xdb\xb4\x60\x1f\x41\x2a\x26\xf8\x6b\x42\x0b\x06\x9f\x34\x70\xf3\x97\x9a\xdc\xfe\x59\x4d\x98\x38\x5d\xbe\xfa\xcd\x2d\xe3\xe9\x6b\x72\x5e\x2a\x2d\xf2\x0f\xa0\x44\x29\x13\x78\x03\x33\xc6\x99\x66\x82\xff\x26\x07\x4d\x53\xaa\xe9\xeb\xdf\x10\x42\x39\x17\x9a\x9a\x8f\x95\xf9\x93\x90\x44\x70\x2d\x45\x96\x81\x1c\xcf\x81\x4f\x6e\xcb\x29\x4c\x4b\x96\xa5\x20\xb1\x73\x3f\xf4\xf2\xe5\xe4\xd5\x1f\x27\x2f\x7f\x43\x08\xa7\x39\xbc\x26\x49\x56\x2a\x0d\x52\x81\x5c\xb2\x04\xdc\x63\x6a\x22\x0a\x90\x54\x0b\xa9\x26\x89\x90\x20\xcc\x7f\xf2\xdf\xa8\x02\x12\x33\xd8\x5c\x8a\xb2\x78\x4d\xb6\x3e\x63\xfb\xf5\x34\x51\x0d\x73\x21\x99\xff\x9b\x90\x31\x11\x59\x8e\xff\x76\xef\x6a\x87\xbf\xb6\xc3\xbb\x09\xc2\xef\x33\xa6\xf4\x77\xbb\x9f\xf9\x9e\x29\x8d\xcf\x15\x59\x29\x69\xb6\xeb\x45\xf0\x11\xb5\x10\x52\x5f\xd6\x64\x19\x32\x12\xb5\x6c\xfe\xdb\x3d\xc8\xf8\xbc\xcc\xa8\xdc\xd1\xdb\x6f\x08\x51\x89\x28\xe0\x35\xc1\xce\x0a\x9a\x40\xfa\x1b\x42\xfc\x58\xb6\xf3\x31\xa1\x69\x8a\xeb\x45\xb3\x2b\xc9\xb8\x06\x79\x2e\xb2\x32\xe7\xd5\xe0\xe6\x99\x14\x54\x22\x59\xa1\x71\x4d\x6e\x16\x80\xb3\x46\xc4\x8c\xe8\x05\x90\xf3\xeb\x8f\xd5\xa3\x84\xfc\x97\x12\xfc\x8a\xea\xc5\x6b\x32\x31\x0b\x30\x49\x99\x2a\x32\xba\x32\x24\x34\x9e\xb2\xab\xf9\xc6\x7e\xd7\xf8\x5c\xaf\x0c\xbd\x4a\x4b\xc6\xe7\xf7\x8d\xef\x5e\x62\x3f\x12\x96\x8d\x75\x6a\x0e\xff\x71\xe3\xf3\x7d\x87\xf7\xaf\x4f\xcd\xc8\x44\x2f\xa8\x26\x7a\xc1\x14\x11\x1c\x88\x84\x22\xa3\x09\xa8\x7b\x08\xda\xf2\x88\xa5\xe8\xc3\xe6\x17\x3b\x48\x6a\x76\xa9\xa9\x2e\xd5\xa4\x58\x50\xb5\x39\xc5\x57\x6b\x9f\x6e\xe9\xce\x3e\xb8\x7c\x45\xb3\x62\x41\x5f\xb9\x0f\x55\xb2\x80\x9c\xd6\x7b\x40\x14\xc0\xcf\xae\x2e\x3e\xfe\xe1\x7a\xed\x0b\xd2\x9e\x9d\xad\xbb\x9f\x30\x65\xa6\x0a\x19\x05\xf1\x9c\x02\xd7\x6e\x55\x00\xf9\x79\xeb\x6f\xae\x0b\x48\x7e\x9e\x6c\x50\x2e\xa6\xff\x05\x89\x6e\x7c\x2c\xe1\xbf\x4b\x26\x21\x6d\x52\x64\x26\xc8\x73\x9f\xb5\x8f\xcd\xfc\x37\x3e\x2a\xa4\x61\x0b\xba\x71\xe4\x6d\x6b\xb0\xbf\xd6\xe7\x6b\x6f\xfb\xcb\x78\xed\x5b\x42\xcc\x24\xb9\xb7\x4e\x0d\x2f\x04\x85\x3b\xd4\xed\x41\x48\xdd\xcc\xda\x9d\xcb\x94\xd9\x2e\x12\x14\x70\xcb\x1d\x71\x53\x71\xf7\x96\x93\x8d\xce\xcd\x14\x81\x54\x86\x45\x94\x59\x6a\x98\xe8\x12\xa4\x26\x12\x12\x31\xe7\xec\x9f\x55\xef\x8a\x68\x81\xc3\x66\x54\x83\xd2\x04\xcf\x35\xa7\x19\x59\xd2\xac\x84\x11\xa1\x3c\xdd\xe8\x3b\xa7\x2b\x22\xc1\x8c\x4b\x4a\xde\xe8\x11\x7f\xa2\x36\x69\x79\x27\x24\x10\xc6\x67\xe2\x35\x59\x68\x5d\xa8\xd7\xa7\xa7\x73\xa6\xfd\xf5\x90\x88\x3c\x2f\x39\xd3\xab\x53\xe4\xf4\x6c\x5a\x1a\xd6\x7b\x9a\xc2\x12\xb2\x53\xc5\xe6\x63\x2a\x93\x05\xd3\x90\xe8\x52\xc2\x29\x2d\xd8\x18\x5f\x86\xe3\x15\x31\xc9\xd3\xdf\x4a\xb7\x4d\xd4\xda\xc0\x5b\xcf\x03\xf1\x1c\xfa\xc0\xc5\x32\x1c\xdb\x6e\x4e\xdb\xa1\x7d\xd9\x7a\x4d\xcc\x47\x66\x1a\x3f\xbc\xbd\xbe\x21\x9e\x22\x77\xd4\x71\x89\xea\x47\xb7\xcc\x90\x5f\x2d\x33\xb3\x8c\xcf\x40\xda\x5f\xce\xa4\xc8\xb1\x57\xe0\x69\x21\x18\xd7\xf8\x47\x92\x31\xe0\x9a\xa8\x72\x9a\x33\xad\x70\x5b\x83\xd2\x66\x21\x37\x3b\x3e\xc7\xeb\x94\x4c\x81\x94\x45\x4a\x35\xa4\x9b\x8f\x5c\x70\x72\x4e\x73\xc8\xce\xa9\x82\x27\x5f\x3b\xb3\x46\x6a\x6c\x16\x64\xef\xd5\x6b\x0a\x0b\x9b\x3f\xd8\x38\xf5\x84\xf8\xdb\xfd\x90\xe5\xde\xc9\x68\x48\x0a\x49\x46\xa5\x15\x50\x88\x86\x2c\x23\xef\xbf\x7f\x47\x16\xe2\xce\x1c\x24\xc6\x95\xa6\x59\x86\x07\xd3\x09\x11\x1b\x5d\xe3\x1d\x90\x50\x4e\x72\xca\xe9\x1c\x08\x2d\x0a\x45\x66\x42\x12\x4a\xe6\x6c\x09\xdc\x33\x80\xf5\xb5\xd8\xf9\x7e\xbb\x38\x1b\xb1\x37\xd2\xd6\x5b\xd5\x7f\xeb\x08\x5e\xfb\x66\x17\xaf\x33\x6d\x43\x3e\x3b\x6c\x62\x4d\x3b\xab\xbb\xc0\x23\xc5\x49\xc9\x95\x96\x25\xee\x92\x94\xdc\xc2\xca\x9d\xae\x9c\x16\x44\x69\x61\x3e\xbc\x63\x7a\x41\x68\xf3\x64\x51\x8d\xc7\x65\xba\xf9\x5a\xa6\x29\xd0\x64\xba\x22\x46\x1a\x45\x76\xa6\x85\xc8\x90\xd7\x61\x7f\x86\xad\x11\x09\x5a\x32\x58\x02\xa1\x72\xca\xb4\xa4\x72\x55\xed\xad\xcd\x73\x70\xef\xfc\xe3\xbc\x34\x84\xa3\xdd\xb3\x47\xee\xdb\xd9\xc4\x5e\x27\x4e\x36\x4b\x2b\xf9\xb8\xfb\x44\x5f\x5d\xb8\x1d\x5c\x0b\xdb\xca\xed\x60\x50\xc4\xec\x54\x27\x16\x55\x52\x3b\x12\xe0\xb6\x66\x4a\x84\xac\xf6\x16\x99\xae\xb6\x8e\xd1\xd8\xea\x64\x0a\x86\x0d\x4a\xca\xcd\xd4\x6f\x3d\x42\x1d\x26\xf6\xbe\xcd\x68\x9a\xb8\xe3\xdb\x76\x7e\xb3\x6f\x2a\x25\xdd\x4e\x3d\x21\x4c\x43\xbe\xa3\x67\xb2\x3e\xcd\xcd\xf9\xac\x3e\x36\x04\x2e\x59\x0a\x66\x62\x35\x65\x76\x97\x19\x9e\x40\xa7\xa2\xd4\x76\x3e\xdd\x23\x29\x59\x32\x4a\xe8\x7c\x2e\x61\x8e\xfb\x7f\xe7\xb0\x0f\xcc\x89\x6d\xbb\x8f\x7d\xdd\xc6\x56\xa9\xb9\xf7\x09\xc3\x7e\xef\x7d\x80\x6f\x63\x1e\xcd\x07\x36\xe5\xe6\x76\x7b\x68\x0d\x6d\xa3\x89\x99\x13\x3f\xb5\x42\xde\xfb\xf0\x3e\x6b\x6b\xdb\x03\x2b\x6c\x5b\x7b\x9d\xd7\x08\x71\xdf\x4e\xcd\x99\xa9\x2f\x00\xc3\x39\xf0\xc1\x9a\xa5\x4f\x81\x14\x20\x67\x42\xe6\xe6\xf0\x70\x42\x49\x62\x45\xd9\x8a\x6f\x21\xc3\xe5\xc9\x7d\xd3\x49\xf6\x5d\x7f\xdb\xf6\xd9\x05\xb6\x8d\x49\x41\xf5\xe2\x81\xc7\xf6\x5b\x2a\xdb\x9a\x93\xf6\xe0\xc3\x0f\x30\xbe\x8d\xbe\xeb\x7b\x2b\x7a\xdf\x66\x1a\xa2\x77\x8a\x57\xd6\x3e\xbd\xee\xc3\xb9\xd7\xdb\x07\x7a\xf7\x0e\x94\x32\xf2\x02\x0a\xa1\x92\xde\x11\xe0\x89\x30\x3c\xe5\xff\xbd\x7e\x7f\x69\x47\xdf\xc6\x5d\x37\xdb\x85\x26\x2c\x2f\x32\xc8\x8d\x2c\x4a\x7e\x78\x47\xa5\x5a\xd0\x0c\xe4\x8f\x78\x2b\xfe\xf0\x57\x9e\xb7\x3f\x49\xe8\xee\x83\xdd\x6c\x46\xc8\x54\x90\x1a\xf6\x97\x42\x46\x57\x96\xb0\x14\x12\x91\x9a\x6b\x41\x48\x52\x18\x65\x21\x2f\x4a\x0d\x84\xda\x6f\xf1\x1d\x18\x9f\xef\x43\xf9\x41\xab\x41\x8c\x48\x95\x53\xfd\x9a\x4c\x57\xfa\xa1\xd3\x46\xc8\xa7\x71\xba\x2f\xdb\x69\x12\xf3\x30\xf3\xb1\x6d\x2f\x16\xd4\xec\xf8\xc1\xb7\x34\xf2\x36\x65\x1c\xe4\x95\x90\x7a\x1f\x3e\x69\x14\xbb\x39\x6c\x8a\xa3\xcd\xe6\xa7\x8c\x71\xfd\x87\xdf\xdf\xf3\x64\x0a\x45\x26\x56\x66\xff\x3c\x7c\x3c\xf7\x7c\x9f\xbd\x59\xc9\xbe\xfd\xed\xcb\x3e\xf6\xec\xcf\x9a\x06\x63\xf4\xb4\x4d\xfb\xec\xd4\x11\x8f\xf5\x6e\x95\x02\xfd\x6c\xf7\xed\xd5\x85\xb7\xf5\x7c\x80\x19\x48\xe0\x89\xe7\x73\xd5\x9f\x5a\x10\x4a\xbe\x2b\xa7\x20\x39\x68\x50\x0d\x4d\x60\x55\x80\x37\xac\x81\xfd\x81\x04\x49\x4a\xcd\x32\xf6\xcf\x6d\xe6\x88\x6d\x6f\x15\xfd\xa6\x7d\x40\xa6\xf2\x8f\x3d\x20\x59\xf9\xc7\x1e\x92\xaf\x6c\x3b\xe4\xea\x7e\x78\x17\xda\xd6\x5a\x27\x34\x82\x38\x8d\xa1\x5a\x99\xb4\xbd\x14\xd1\x39\xf9\xc3\xdb\x7c\x0b\xa5\x57\x68\x3c\x6f\x19\x9f\x77\x11\x4c\x8e\x77\xf9\x25\x26\x46\xe1\x9f\xa0\x49\xfc\x87\x1f\x27\xb6\xcb\x93\x09\x79\x9b\x17\x7a\xe5\xcd\x40\xec\x81\xce\x99\x22\x5c\xe8\x4d\x41\x30\xfa\x34\x2d\xb7\x1b\x21\x1f\x9c\xa9\xb3\xab\x0b\x6f\xde\x7e\xc2\xa5\x55\x05\x24\x3d\x10\xf4\xaf\x5b\x64\xb4\xc4\xfc\x19\x83\x2c\x25\xcc\xc8\xf0\x86\x58\x32\xcd\x44\x72\xeb\x2c\xf9\x1f\xde\x10\x25\x2c\xcf\x31\x8a\x9e\x91\xfc\x13\xc1\x55\x99\x03\x61\x0f\x31\x91\x41\xb2\x1f\x24\xfb\x66\x1b\x24\xfb\x41\xb2\x6f\x35\xeb\xa4\xeb\x03\x73\x5c\x23\x64\x27\x7b\xc4\xe7\x06\x06\x79\x5f\x1b\x18\x24\xb6\x81\x41\x0e\x0c\xf2\xa1\x8e\x1f\x7c\xcb\xbd\x24\xdd\x07\xfb\x7a\x88\x77\x0c\x9e\x83\xc1\x73\x30\x78\x0e\x5c\x1b\xae\x4f\xd7\x86\xeb\x73\xb8\x3e\xdb\xed\xb3\xbb\x3e\x07\xcf\xc1\xe0\x39\x18\x3c\x07\x83\xe7\xa0\xd9\x06\xcf\xc1\xe0\x39\x18\x3c\x07\x83\xe7\x60\x47\x1b\x24\xfb\x8e\x9d\x0e\x92\xfd\x20\xd9\xef\x6a\x83\xe7\x60\xf0\x1c\x0c\x0c\x72\x60\x90\x03\x83\xdc\xd1\xfa\xe8\x39\x48\x32\xa0\x7c\xbb\x3a\xbf\x96\xdc\x88\xcf\xa1\x00\xc8\x66\xcc\xa5\xf6\xb9\x5f\x93\x29\x2c\xe8\x92\x89\x52\x92\xbb\x05\x70\x9f\x97\x4a\xe6\xa0\x95\xd9\x05\xa0\x61\x9b\x06\xf8\x00\x7b\xbb\x9f\xa5\x8d\x09\x70\x3a\xcd\xb6\x76\xfc\x10\xf7\x72\xbf\xbc\xdf\x53\x32\x15\xc2\xbc\xdd\xe6\x8c\xa1\xf6\xe2\xb5\x81\x08\x49\x2d\xbb\x74\xae\xed\x89\x2d\xe7\x1f\xde\x3c\x6a\x3a\xcb\x6f\xb6\xf6\x72\x51\x0d\x4e\xd0\x87\x83\x79\x7f\xe6\xce\x33\x9f\xbe\xbf\xe3\x90\x62\x1a\xf8\x88\x30\x6d\x1e\x30\x9c\x85\x25\x4c\x67\xab\x8a\xbe\xcf\x3b\x51\xe6\xfc\xc3\x9b\xfd\xfd\x5c\x7e\x99\x76\x76\x1d\xd1\xa5\x35\x38\xac\x06\x87\x55\xd5\x06\xa9\xad\x63\xa7\x83\xd4\x36\x48\x6d\xbb\x5a\x7c\xa9\xad\xef\x0e\x9e\xc1\x2d\x43\x06\xb7\x8c\x7f\x6c\x70\xcb\x3c\xf8\xf8\xe0\x96\x19\xdc\x32\x83\x5b\xe6\xfe\x36\xc8\xaf\xae\x0d\xf2\xeb\x20\xbf\xb6\xdb\x67\x27\xbf\x0e\x6e\x99\x81\x41\x0e\x0c\xb2\x6e\x03\x83\x1c\x18\x64\xab\x7d\x8e\x09\x1d\x83\x85\x7b\xb0\x70\x0f\x16\xee\xe1\x02\x1c\x2e\xc0\xe1\x02\x7c\xa8\xe3\xc1\xc2\xed\xdb\x60\xe1\x1e\x2c\xdc\xad\x36\x58\xb8\x07\x0b\xf7\x60\xe1\x1e\x2c\xdc\x3b\xda\x20\xbf\x76\xec\x74\x90\x5f\x07\xf9\x75\x57\x1b\x2c\xdc\x83\x85\x7b\x60\x90\x03\x83\x1c\x18\xe4\x8e\xd6\x47\x0b\xf7\x03\x87\x77\x9f\x5d\xda\xb4\x57\x3b\xb1\xd9\x87\xba\x4f\xc8\x39\xe5\x84\xf1\x24\x2b\x53\xc0\x6f\x66\x40\x75\x29\x41\x8d\x48\xc6\x72\xe6\xab\x75\x08\x69\x36\xcd\x38\xa1\x0a\x94\xeb\x63\xeb\x50\x55\xbf\x5b\xbe\xbd\xff\x35\xef\xe7\x23\xf7\x56\x17\xab\xe2\xf6\x19\xf7\xfd\xb8\x6d\x75\x30\x19\x2c\xd9\x63\x9a\xcd\xf8\xe6\x41\x2c\xde\x62\x2b\xfd\x3c\xf8\xda\xbb\xb6\xe0\x3d\x5b\xee\xc1\xcb\xe5\xa1\x2b\x65\x4c\xa6\x54\xc1\x9f\xfe\x6d\xa3\xc6\x55\xf3\x91\x1c\x52\x46\xcd\x50\x5b\x9f\x78\xf8\x9a\xa9\x87\xd8\xbd\xc9\xf7\x38\x2c\x15\x19\x1d\x7b\x71\xf5\x6c\xba\x1e\x11\xb3\xef\xd2\x0b\xdb\xc7\xb5\x96\x54\xc3\x7c\xd5\x28\xdc\x84\xdb\xac\x16\x1a\xf8\x8e\x1a\x66\x5e\x03\xdd\x3a\xc4\xdd\x02\xa4\x3d\x62\xbe\x58\x90\xf2\x03\x31\x55\xe5\x0b\x75\xc9\xff\x78\x28\x01\xc8\x8f\xb3\xe5\xeb\x87\xd6\x77\x5b\x09\x25\xdf\xf6\xbd\x20\xfd\x7c\xbe\xb1\x1e\xb2\x37\x15\x12\xcc\xfa\x04\x17\x54\x9a\x8b\xc9\x7b\xd2\x50\x3c\xab\x9f\xde\xd9\xff\xda\xb2\xed\xba\xa3\xf6\x90\xd5\x1e\x96\xd1\xc6\x0d\x20\x9b\x5d\x5e\xbd\x7d\x44\x33\x57\x8d\xf1\x0a\x64\xce\x94\xda\x95\x15\xd5\x26\xfd\xa1\x5b\x6c\x8f\xdb\x6b\x4d\x66\xf6\xeb\xe2\xdf\xa8\x41\x4e\x25\x40\x5b\x2b\xcb\x94\x26\x44\x96\x99\x11\xa7\x79\x4a\x5c\xa1\x22\x42\x93\x44\x94\x5c\x13\x0e\x90\x62\x66\xd5\xd6\xed\xbd\xc7\xdd\xb7\x87\x04\xbd\xaf\xfc\x3c\xb6\x74\x3e\xf8\x94\x7b\x87\x33\xfb\x0a\x5b\xab\x64\x35\xdb\xfe\xf2\x36\x0e\xff\xb0\x10\x71\x88\x64\xb2\xb7\x5c\xd2\x45\x66\xbd\x12\x19\x4b\x56\x1f\xca\x0c\xc8\x42\x64\xa9\xc2\xa2\x6f\xe6\xf2\xac\x7c\xa2\x4d\x5d\xaa\xc0\xa7\xf1\x25\x47\x64\x5a\x6a\x92\x0a\xb0\x66\x43\x07\x2f\xd5\xfc\xf9\x5e\xe3\x5b\x4f\xf9\xdd\xc2\x56\x23\x34\x1d\x13\x5a\x14\x19\xa6\x4e\x0a\x23\x78\xdc\x2d\x58\xb2\xb0\x45\x58\x0b\x9a\xc0\xb6\xc7\xf6\x97\x4b\xf7\xd2\xd5\xc8\x41\xfa\x1a\xf1\x66\xef\xe9\x43\xbb\x8e\x1c\xa8\xb8\x11\x5b\x17\xec\x1b\x29\xca\x62\xcf\xc7\xbb\xed\x01\x62\x6b\x86\xd9\x81\xcc\x75\xa4\xd7\x44\x2c\xff\xa5\x73\x92\xdb\xa5\x56\xce\x02\xeb\x3c\x32\x13\x4c\x7f\xcc\xcb\x4c\xb3\x22\xc3\x9f\x58\x08\x2c\x45\xa8\x84\xfa\x82\x1b\x11\xca\x57\xde\xe7\xee\x6a\x18\x42\x4a\xe8\xdc\xf4\xa8\xb1\x3e\xaa\x98\xed\x4d\xb5\x2d\x92\x58\xe6\x46\xfe\x6a\xd8\x80\x15\xaa\xfb\x7c\x55\x53\x41\xee\x58\x96\x19\xe5\x87\x66\x99\xb8\x83\x74\x42\x5e\xbc\x58\xbf\x80\x12\x21\x1b\x74\x23\xab\x7b\xf1\xaf\xad\xa7\x0c\x5f\xab\x5f\x6c\x3f\x45\xee\x50\x2d\x84\x1c\xa6\x89\x90\xc3\x75\x2e\x82\xaa\xd4\x6d\xe5\xa0\x1a\x67\x4c\xe9\xb1\xa3\x52\x8b\x9c\x25\x7b\x75\xc2\x05\xf7\x8e\x88\xbf\x7e\xf8\xfe\xd1\x37\xe8\x65\x7b\x38\x57\x94\x13\xb4\xd9\xa3\x05\x95\x9a\xd1\x8c\x94\x32\x53\x76\x8f\x52\xa3\xb0\x48\x5f\x06\x75\x41\x31\xce\x23\x01\x85\xec\x82\x90\x7f\xb5\xbb\xd2\x6d\x06\xcb\xca\x04\xcf\x56\x84\xda\xad\x30\x2b\xb3\x6c\x44\x66\x8c\x53\x73\x91\x41\xe1\x73\x78\xf7\x30\xcd\xd4\xed\x9a\xf1\x04\xcc\x34\x8d\x2b\xdf\x04\x52\x6e\x46\x36\x2c\xb3\xe2\x69\xe9\xc8\xd5\xfd\xb4\x96\x2a\xe5\x48\x31\xfc\x2d\xa1\xd3\x0c\x50\xd3\x70\x32\xe7\x07\x91\xa1\x4b\xb1\xf2\x7b\x60\xb1\x50\xda\xfc\xfa\x7f\x32\xbe\xaf\xb6\x6e\xdb\x07\xbc\xda\x13\xca\x09\x30\xbd\x00\x89\x43\xaf\x0c\xff\x35\x9b\xbd\x3e\x54\xc7\xaa\x4c\x16\x66\x8a\x5e\x14\x22\x55\x2f\x0c\x77\x7e\xa1\x20\x91\xa0\xd5\x8b\x13\xf3\xd7\xfa\xbb\xe2\x7c\x35\x7f\x77\x4a\x0b\xf6\xe2\x64\x44\x70\xc2\xb1\x42\xa9\xd0\x8b\x5f\xf9\x39\xf2\x13\xd6\x2a\xe8\xfd\x50\x6b\x9d\xa2\x0f\xcd\x1e\x5c\x69\x4d\x51\xd8\xaa\x94\xe6\xfe\xd4\x80\x69\xe7\xe6\xa4\xe0\x9e\x6b\xf8\xa0\xd7\x2e\x52\x42\xce\x38\x01\xeb\x35\x04\x4d\x72\xa0\xdc\x3d\x0d\x4b\x90\x2b\xbd\x40\x47\xa2\xaa\xb8\xe8\xb0\x72\x7b\x44\x23\xd4\x6d\xeb\xaa\x39\x56\xe6\x57\xa8\x3e\x6e\xb6\xfa\xf3\xfa\x0a\x1d\xfd\xeb\xd1\xfa\x95\x54\xdf\xc1\xbf\xee\xf5\x40\x21\xac\xd3\x5a\x7c\x34\xbf\x6c\xaf\x83\xfd\xc8\x5e\x26\x15\x3b\xfc\xfe\x7b\x5b\xed\xd9\x4d\xf8\x77\x8c\xa7\xaa\x42\x56\x4d\xed\x2d\xe1\x16\x6d\xeb\x4a\x21\x85\xbf\xda\x55\xda\x54\xba\xf6\x55\x94\x1e\xa0\xb1\xa1\x95\xf7\x41\x91\xc6\x82\xd1\x2d\x29\xd9\xb0\xdd\x91\xf5\xce\x1b\xb1\x32\xa3\x53\xc8\x94\x33\x20\x42\x83\x7c\x72\xf6\xfd\xbb\xaa\x76\xbb\x04\xfa\x80\x51\xfc\x11\xd4\xe7\x3d\xc2\x7c\x36\x6a\xe4\x6f\xb6\xfd\xd5\x1c\x9c\x8a\xc3\x9c\x58\xe4\x1a\xb4\x3d\xab\x39\x2d\xcc\x51\xb5\x7d\x58\xe7\xca\x9a\xe3\xe4\x7b\x9c\xe9\x87\x4f\xdc\x41\xea\xe1\xfe\x35\x9f\xb7\x0d\xb2\xd7\x79\xdb\x2f\x94\xe8\x80\x0e\xef\x33\xe5\xd5\xad\x35\xcd\x6b\x1b\xda\xe9\x85\x4e\x93\x4b\x68\xd3\xa1\x90\x82\xb2\xe8\x3a\x16\xe1\x48\xfa\xcf\xeb\x2e\x22\x2f\xc1\x21\xfa\xf9\x98\x28\xc8\x20\xd9\x56\x94\x7d\xdb\xc3\x1a\xf2\x22\x7b\xe8\xe4\x91\x83\x75\xf9\x9c\xf1\x0f\x40\xd3\xd5\x35\x24\x82\xa7\x7b\x72\xe9\x6e\xca\xd2\x3b\xc6\x59\x5e\xe6\x84\x97\xf9\x14\x70\x2d\x94\x1d\x14\x39\x8e\x35\xa8\x50\xc2\xe1\x2e\x5b\x39\x2e\x93\x92\x42\xa4\x9e\xf1\x4c\x8d\x56\x4f\xd3\x7d\x2f\x9d\x3b\xa6\x17\x58\xb7\x82\xaf\xcc\x50\x4c\xd7\x37\xa2\x24\x89\xa4\xca\x08\x8d\x23\x1c\x9a\x69\x73\x8b\x4e\x01\x5d\xec\x2c\x05\xb3\x65\xe8\x92\xb2\xcc\x68\x39\xfb\x5e\x8b\x6f\x60\x46\xcb\x4c\xa3\x7d\xe8\x25\x39\x36\x84\x7b\xe5\x7e\x5b\xb7\x46\xef\x50\x42\x70\xf3\x5f\x0b\xbb\x84\x2f\x77\x72\x80\x9f\x6f\x1f\x24\x74\xdf\xf6\x45\x44\xf7\xad\xa0\xa5\xda\xd7\xcc\xd4\xda\x0d\x17\x3c\x35\x87\xb0\x29\xcd\x37\xee\x11\xa6\x5c\xcf\xfb\xcd\xea\xfd\x58\x5e\x5b\xa8\x96\x62\x2e\x41\xa9\x37\x40\xd3\x8c\x71\x78\x82\x4d\x7d\xb3\x00\x92\xd3\x4f\xb8\xb1\x35\xcb\xc1\x08\x5b\xcd\x6d\x4d\x9b\xaf\xaf\x05\xc9\xe9\x2d\x54\x74\x92\x29\xcc\x84\xdc\x23\xa4\xc3\x37\xa6\x9a\x9b\xc9\x6e\xda\x19\x65\x19\xa4\x13\xa4\xa4\x31\x96\xd9\xec\x52\x64\x19\x48\xbb\x0f\xcd\xdf\x8c\x97\x40\xb4\xd8\x73\xb0\x42\x0a\x34\x4d\xd8\x01\x9a\xd2\x0c\x4a\x0b\xd4\x74\x69\x6f\x1c\x3c\x6c\x84\x92\xab\xb5\xf9\x7f\xfb\x29\x41\x23\xfc\x9e\x03\x4a\xa0\x0a\x3b\xb3\xc7\x46\x95\x72\x46\x13\x2f\xbf\xb6\x5e\xce\x46\xcc\x4c\xc8\xa5\xd0\x2e\x74\xb9\x9a\x52\xf3\xeb\x3d\xc7\x43\x4d\x1f\x08\x28\xcd\x72\xe4\x36\x69\x89\x21\xa9\x66\x30\x5c\x4b\xba\x7d\xef\xb6\xce\xfa\x9f\x5e\xbe\xdc\x53\x74\x7e\xfc\x53\x2b\x01\x6d\x33\x8f\xba\xe1\x2f\x2b\xee\xed\x6f\xd7\x42\xa4\xca\x6c\x3f\xe6\x54\x95\x42\x98\x77\x94\x18\xcb\xc1\x94\x66\x7c\x5e\x32\xb5\x20\x53\xd0\x77\x00\x9c\xc0\x27\x0b\x2f\xb7\xe7\x78\xff\x04\x29\x70\xbf\x99\xd5\xaa\x1d\x92\xad\x35\x78\xd5\x9f\x05\x58\x32\xc5\x04\xff\x96\x29\x2d\xe4\xea\x7b\x96\xb3\x07\x8a\x5a\xf8\xd6\x9d\xfb\xd4\xd7\xa9\xc8\x52\xf2\xc1\x6e\x81\x6b\xb0\x33\x23\x01\xdd\x1f\x5a\x58\xdb\x08\x31\x1c\x61\x4a\x93\xdb\x7d\x6f\xb5\x83\x57\x75\xd7\x7a\x75\xb8\x45\x5f\xbd\xec\xcb\xb2\x7a\x41\xed\x31\x97\x12\x55\x82\x6a\x24\xbc\x3b\xec\xc1\x7a\xfb\xc9\x4e\x77\x6b\x69\xef\x16\x42\x01\x3e\x40\xa8\x7c\x58\x26\x6c\xbe\x86\xf7\x89\x32\x55\x71\x5a\x8c\x57\xe1\xa0\x08\x9d\xcd\xda\x4f\xa4\x07\x48\xca\xb6\x5d\x68\x92\x97\x4a\x93\x9c\xea\x64\x61\xad\xd3\x22\xad\xa4\xd7\x23\xe5\xb4\xcc\x43\x96\x76\x6f\xf7\xd8\xe1\x8e\x2c\x62\xe9\x7c\xfb\xa9\x30\x97\xc7\x43\x2e\xef\x76\x6b\xad\xf3\x7a\x37\x6d\xab\x4d\xd6\x5e\x5c\xa7\x26\xe0\x5d\x6a\x2f\xee\xe6\x27\x68\x89\x3f\xbb\x7c\xb3\xff\xa9\xe9\x62\x94\x39\xd8\x2c\xd3\xdd\x47\x62\xda\xd9\x3d\x73\xe0\x9d\x26\xee\x9b\xb6\x37\x0f\xf5\x67\x35\x22\x94\xdc\xc2\x6a\x64\x25\x8f\x06\x2a\xaa\x79\xf8\x20\x42\x24\x64\x4e\x3c\x05\xd3\x23\x76\x68\xc7\xd8\x7f\xb6\x3b\x6c\x4c\x3f\xf8\x21\xfe\x5b\xdf\xc6\x86\xd0\x03\x7f\xe1\x27\xe8\x80\x9f\x1d\x7e\x76\x6c\xbb\x85\xd5\x61\x3f\x58\xdb\x49\x66\x15\x9c\x16\x6f\xf7\x88\xf9\xa0\xd2\x1e\xaa\x6d\x71\x98\x63\xbd\xd9\x3a\x18\x14\x6d\xf3\x93\x18\xf4\x7a\x07\x1e\x94\xe6\xb8\x2d\x3b\xad\x99\x96\x23\x65\xf7\xaf\xe1\x30\x0b\x56\xd8\x9c\x3e\xe7\x6d\x3c\x7c\x13\xdb\xf6\x91\x66\x2c\xad\x86\xb4\xdc\xe7\x82\x8f\x8c\x6c\x6d\xfe\x83\xd7\x8f\x95\xf8\xdf\x08\x50\x97\x42\xe3\x27\x4f\xb6\x06\xf6\xb5\x9e\x7a\x05\xec\xa8\xce\x69\x85\x6c\x15\xed\x15\x36\x65\xcd\xcd\xb4\xc7\x55\xae\x23\x3d\x15\xb9\xe0\x44\x48\x37\x75\x07\x0f\x6a\x3a\x73\x03\xdb\x21\xf1\x22\x9d\x5a\x67\x2d\xba\xbf\xb6\x8e\xe9\x56\x48\xc8\xd6\x02\x45\x1c\xde\x0d\x8d\xb2\xa0\xfd\x06\xcd\x15\x45\x86\xda\x99\x53\x9a\xa8\x0f\xad\xda\xd3\x2b\xd2\x6c\x39\xc8\x39\x7a\xb1\x93\xbd\xbd\xae\x15\xd1\x1d\x2e\x3e\xdb\x0e\xbe\xfe\x9a\x03\x76\xd8\xc8\x51\x7c\x49\xd1\xba\x41\x79\xc5\x9a\xa1\x3b\x4a\x3c\x07\x9d\xaa\xc6\x70\x2d\x1b\xf9\xff\x36\x97\x3a\x6e\xba\xff\x43\x0a\xca\xa4\x9a\x90\x33\xa2\x18\x9f\x67\xd0\xfa\xce\x99\x00\x1a\xdd\x1c\x34\x78\x61\x06\x35\x77\xef\x92\x66\xce\x10\x43\x39\x01\x6b\x8e\x37\x74\xac\x8b\x6f\x23\x27\x61\x9b\xab\xa8\x8a\x7f\x78\x71\x0b\xab\x17\xa3\x9d\x61\xe6\xdb\x5b\xf3\xa4\xbe\xb8\xe0\x2f\xac\x08\xb3\x71\xd6\x2a\x79\x07\x83\x2c\x5e\xe0\x77\x2f\x62\xca\x86\x07\xca\x2a\x5d\x9d\x09\xed\x41\x0f\x38\x26\xad\x5d\x9d\xd3\xe2\xd0\x4d\xed\x03\x3b\x3b\xe8\x68\x37\xeb\xc6\x25\x17\x01\xad\x05\x29\x15\x58\x35\x1a\x99\x1d\x01\xaf\x8b\xa1\xe6\x85\x56\x2f\x0e\x77\xa8\x3b\xf5\x46\xa1\x31\x2a\x3e\xe3\xf3\xbf\x16\x29\xd5\x7b\xe5\x14\xd9\xd6\xfd\x6c\x7f\xb0\x03\x92\x12\x47\x34\x3b\x79\xc6\xe6\xa4\xa0\x92\xe6\x6a\x42\xae\x5c\xb9\x01\xdc\xd7\x6c\xd6\x74\xdf\xb8\x79\xbe\x59\x15\x40\xfe\x9f\xc3\x07\xb4\x6f\x78\xc8\x85\x31\x1e\x1f\xf2\x5e\x37\xef\xdf\xbc\x7f\x4d\xec\x28\x56\x1b\xd6\x82\xcc\x04\xda\x51\x44\x29\xcd\x8b\x2e\x81\xa3\xfd\xd3\x68\xeb\x82\xc3\xfb\x99\xe1\x1b\x54\xc3\x12\x24\xb9\x33\x9b\x2a\x61\xe9\x01\xe6\x5d\xd3\xd0\xa8\xfb\xc8\x87\xbb\x9b\xa4\x9f\xd3\x4f\xd7\xa5\x9c\x1f\xb0\xa7\x48\xb0\x24\xd6\x34\xaf\xd7\x86\x2e\x3c\x7d\x4d\x64\x24\x95\x2c\x20\x2d\x33\x48\x09\x9d\x8a\x25\xb4\x9c\x7f\xd5\xcf\x0e\x1c\x1a\xad\x2f\x07\xfe\xe6\xa3\x61\xdb\x9e\x28\x23\x39\x4e\x95\xc8\x4a\x5d\x19\xe9\x8e\xe1\xd3\x6b\xf2\x47\x0c\x4a\xa3\xa4\x00\x99\x00\xd7\x74\x0e\xeb\xd6\x54\xfb\xdc\xab\x97\xff\x72\x72\x28\x01\x28\xa3\x99\xf1\x9d\x6d\xfb\xa5\x39\x72\xef\xe8\xa7\xbf\xf2\xda\xf3\xc4\x14\xd9\xd3\xb2\x56\xb7\xb3\xb5\x17\xc1\x51\xb2\xa4\xcc\xd0\x6e\x8e\xc1\x7e\x8d\xd7\x99\xae\x88\x14\x25\x86\xfb\x91\xb2\x38\x74\xac\xa6\x0d\xf0\xf7\x7f\xfc\x97\x43\x7f\xfe\xf6\x13\xcd\x8b\x0c\x5e\xfb\x6a\x36\xd6\x80\x69\x94\x24\x2d\xc8\x1f\x5e\xfe\xcb\xc8\x86\x3e\xc0\x5d\xc3\xa0\x56\xef\x23\x6a\x36\x51\x59\x10\x96\xdb\xe4\x1f\xc8\x56\xd8\xd1\xa1\x62\xa9\xb9\xb7\xdb\x7c\x51\x69\x2a\xb5\x1a\x11\x8c\x3a\xac\xd4\x5b\x2d\x34\xcd\xd6\x6c\xb8\x68\x3d\x85\x3b\xbb\x15\x52\x81\x6b\x09\xe8\x4a\x39\x90\x8a\x57\x7f\x78\xf9\x2f\x9b\x96\xfa\xf7\x3c\x01\x1c\x07\xfb\xc7\x20\xd4\x29\x00\x27\xb7\x2c\xcb\x20\x3d\x54\x6f\x78\x68\x22\x67\xa5\xd4\x0b\x90\x23\x02\x5c\x79\xf7\x8a\x79\xf7\xb5\xf7\x46\x5a\x64\xc9\xf9\xe1\x62\x35\xb5\x4e\x5e\xf4\xd8\x34\x3c\x38\x6e\xda\x8d\xb4\xa9\x49\x2e\x94\xde\x3e\x1d\x07\x0d\x46\xf9\xea\xfd\xec\x50\x9d\x61\xdc\xc1\x42\xbd\xf9\xeb\x0e\x1a\x47\x4b\xa4\x62\x5c\x8f\x85\x1c\xdb\x6e\x5e\x13\x2d\xcb\x43\xa4\xd8\xbc\xc5\x42\x7a\x78\x03\x94\x0d\x06\xb7\xb1\x09\x3e\x3b\x36\xde\x9d\xdd\xa6\xe2\x8e\xc7\xba\x34\xf0\xb6\xef\x74\x5d\x3c\x09\x0b\x6f\xbb\xbb\xd6\x38\x8f\x99\x07\xf3\xf4\xff\xbd\x79\xe4\x0f\xb5\x13\xac\xdd\x04\xbb\x79\xbb\x63\xad\x15\xeb\x36\xba\x1a\x46\x75\x8c\xd6\x68\x3d\x90\x82\x2d\x6f\x56\x71\x55\x2b\x8f\x5a\x8f\x8d\x79\xc0\x12\xb5\xe5\x8a\xab\x19\xf0\xc1\x57\xd9\x8e\xab\xca\xbe\x63\x1d\xd0\xa2\x31\x96\xd4\xb0\x61\xb5\x8b\x0f\x1f\x38\x74\x06\x54\xe9\x6d\x4b\x38\x70\xed\x07\xdb\xfd\x69\xcb\xeb\xad\xad\x0f\x1b\x85\x0c\x67\xbc\x72\xfe\x61\x46\xfe\x14\xc8\x8b\x0f\x60\x43\xb3\x6c\x9a\x45\x4b\x13\x7b\x51\x39\xe5\xcd\x62\x77\x54\xd2\x0e\x9c\x36\xef\x57\x7c\x54\x27\xbb\x1b\xa3\x91\x72\xe8\xdc\x9a\xee\x0a\xaa\xe2\xbc\x6c\xd0\xda\xfe\xbe\x75\x70\x29\x35\xee\x08\xfb\x97\x99\xa8\x02\x92\x89\x04\xe4\x2a\x36\x13\xd2\x1a\x8b\xd0\x86\x74\x96\xdd\xd1\x95\x7a\xd1\x1b\x7b\x43\x0e\x9a\xde\x9f\x69\xbf\xde\xba\x0b\x04\xd7\x9a\xf2\x94\xca\xd4\xbd\xd1\x91\xaa\x46\x3f\x84\x23\xbc\xc3\x98\x2b\x3e\x13\xaf\xc9\x42\xeb\x42\xbd\x3e\x3d\x9d\x33\x3d\xb9\xfd\xb3\x9a\x30\x71\x9a\x88\x3c\x2f\x39\xd3\xab\x53\x0c\xa1\x62\xd3\x52\x0b\xa9\x4e\x53\x58\x42\x76\xaa\xd8\x7c\x4c\x65\xb2\x60\x1a\x12\x5d\x4a\x38\xa5\x05\x1b\xd7\x86\x00\x35\xc9\xd3\xdf\x7a\x92\x1e\x57\x87\x6f\xb1\x09\xf4\x12\xc9\x25\x8c\x4b\x7e\xcb\xc5\x1d\x1f\xa3\xcd\x52\x1d\xc4\x30\xf6\x0b\xc5\xf5\x2d\x60\x0d\x0f\x89\xd4\x2d\xc4\x01\x86\xce\x47\x5f\x59\x33\x45\x63\xca\xd3\xb1\x8d\x3f\x7b\xdc\x05\xee\xe2\x2b\x1e\xd7\x31\xae\xfb\x53\xd7\xcd\x1a\x44\x13\xcd\x96\xd0\x29\xd2\xd2\xb7\x30\xc5\xe0\xbd\x4f\x25\x4b\x4b\x69\xf7\x52\x23\xf4\xd2\xc7\x9d\xe4\x74\x85\x32\x3c\x12\x4b\x84\x15\xde\xb8\x48\xc1\xf9\x51\x97\x07\xc4\x43\xfa\x76\x6d\xd8\xf2\x8d\xd1\x36\x5d\xf8\x26\xba\xa9\x57\x4a\x43\x6e\xaf\x02\x3b\x5a\xb6\x22\x5a\xae\x6c\xcc\xa7\xbc\x25\x4c\xfb\x40\x4a\xa3\xde\xdf\xe2\x73\x4a\x89\x84\xa1\x48\x5f\x2f\x5b\x37\x5d\xc5\xbb\xea\x28\x29\x84\x62\xf8\x5e\x4e\x70\x39\xac\xbf\xee\x32\x4f\x23\xa6\xea\x4f\xff\x76\xc8\x3e\x9a\x21\x5a\xe8\x81\x21\x04\xed\x98\xe3\x59\x33\x91\xdb\x2d\xfd\x91\xf2\x56\x41\x23\x88\x26\x82\x2b\x2d\x29\xdb\x0d\x90\xb1\xbd\x75\x8c\xf3\xe8\x1e\x4c\x41\x70\x77\x9e\x75\x9a\x14\xb2\x99\x2a\xe1\x05\x16\xdc\xf2\x7e\xaa\x9b\x13\x63\xf1\x33\x7c\xca\xcf\x81\xec\xd6\xb6\xce\x73\x44\x82\xe6\xc9\xfe\xda\xa2\x15\xa7\x6f\x50\xdf\xb8\xae\xde\xeb\x62\xce\x45\xf5\xf1\xdb\x4f\x90\x94\xfb\x02\xcd\x6d\xb6\xd0\x58\x02\xdb\x8c\xb4\xe7\xcd\xd4\x2e\x24\xdb\x52\x6f\x38\x84\xff\xc2\x09\x95\x02\xd7\xcb\x49\x97\x8a\x6a\xa6\x66\x87\x7a\xb7\x7d\x33\xab\x5a\xad\x3b\x34\xe2\xd3\xaa\x13\x53\xc5\xfa\xa1\xcc\x60\x93\xce\x99\x46\xce\x99\x2c\x84\x50\x87\x98\x89\x9a\x8d\xda\x4d\x87\xef\xb0\x64\xc2\x46\x5d\x21\x90\x82\x24\xb9\x61\x9b\xee\x8a\x6f\x10\x65\xfd\x9d\xf5\xcf\xd8\xa1\xba\xba\x6f\x68\xee\xab\x36\x87\x8f\x2e\x32\x83\xa3\xcf\xce\xfc\x31\x47\x61\x5d\x69\xa2\xca\xdc\x90\x72\x07\x6c\xbe\xd0\x6a\x44\xd8\xe4\x60\x7b\x91\x6f\xe6\x18\x01\x4d\x16\x8d\x57\xc8\x01\x74\xab\x04\x78\xf3\xec\x35\x1d\xbb\xc7\xf7\xe2\x34\x3d\xdc\x1c\x68\xc5\xa8\x92\x1b\xd6\x8f\xc4\xd6\x6d\x30\x22\xa0\x93\xc9\xc9\xe1\xc1\x22\xb6\xd5\x88\x7c\x66\x16\xa7\x2b\xc2\x34\x98\xcb\x18\x55\x7f\x29\xca\xb9\x9d\x6b\xf0\x79\x6f\x38\x07\x15\xa4\x00\xc6\xf2\xa5\xe9\xe1\x26\x09\xdf\x5e\xd8\x45\x7b\x61\x4e\x0c\xce\x6d\x99\x7b\x3c\x69\x5c\x01\xf4\xea\x43\x05\xa3\x21\x41\x15\xc2\x9a\xc9\xd6\xfd\xfd\xff\xe3\x40\xaf\x7e\xb3\x99\xa1\x8e\xd5\x49\xbd\xb5\x16\x6c\xbe\xf0\x3b\x8b\x3a\xf9\xa0\xbd\x23\xbb\x6d\xb0\xee\xb1\x2e\xb6\x75\x8c\x78\xb1\x2d\x0e\x17\x6c\x64\xf2\xd7\xc7\xb3\x71\x24\x34\xc8\xbc\x5a\x36\x3c\x35\x78\xad\x38\x5f\xbb\xaf\x4c\xef\x0e\x2b\x79\xd9\x99\x8a\x63\x73\xca\x09\x33\x1a\xa4\xe1\x53\x63\x51\x9c\x4c\xc8\x19\xe1\x65\xc5\x96\xef\x23\x8c\x8b\x8a\x2e\xd7\x91\x21\x56\x89\xba\xaf\xae\xdc\x3a\xe4\x2a\xb5\xad\x5b\x88\x69\xb3\x8d\xdd\x0c\xc0\xc3\xb5\x64\xee\xeb\xc4\xae\x51\xc7\x0e\xc2\xc4\x02\xdf\x87\x7f\x8b\xee\x7d\xac\x63\xbd\x5b\xbe\x52\x87\x2a\x83\xcc\x47\x4d\x39\xbe\xe2\x01\x6d\x76\x63\xe7\xa2\xeb\xae\x20\x71\x76\x06\x89\x34\xaf\x24\x28\x6a\x7e\x7b\x5b\x9b\xe5\x0a\x17\xa4\x35\xdb\xad\xfb\x72\xba\xc2\x6f\x0f\x4c\x28\xd8\xdd\x42\x99\x6b\xdd\x82\xd8\x6c\xdd\x62\x31\xdc\xba\xad\xef\xde\x38\x21\xf8\x11\x08\xc3\xe1\xe2\x04\xe6\xef\x18\x20\xce\xe9\xb1\x2d\x9c\xc3\xd6\xed\xf0\xd0\xfe\x5d\xfd\x44\x5b\x8e\x58\x2c\xc2\xb6\x0e\xc9\x01\xdb\xdb\x46\xc4\xde\xe3\xe4\x0a\x6c\x6f\x01\x41\xbf\xdb\x5a\xd7\xbc\x82\xed\x2d\x3e\xa3\x30\xed\xc3\x13\xa4\x1e\x6c\x6f\x7b\x25\x24\x8c\xda\xd9\x08\xe4\x1b\x6d\x19\xd3\xf7\x41\xb7\x6c\xdd\x22\xaf\x78\xb7\x2c\x86\xed\xed\x71\xd6\xfb\xec\xe9\xf2\x1c\xb6\xb7\x67\xce\x7e\x38\x90\xa8\xdd\x04\x7d\xa3\x0d\x31\xdf\xeb\x51\xe3\xc7\x91\xa8\x69\x90\x60\xb1\x03\x7d\xa8\xbc\x53\xb0\x47\x0e\x45\xc3\x3b\x24\x31\x63\xb7\x90\x80\x50\x96\x98\xca\xd2\xc9\x28\xbc\xbb\xed\x9d\x12\x12\x92\xe2\xb1\xbd\xc5\x93\xd7\x6c\x8b\x24\xb5\xd9\x16\x99\x7b\x44\x4b\x1d\x79\xf2\xce\x51\x4f\xf8\xda\x3a\x23\x9f\x51\x45\xb0\xee\xd0\x41\x45\x78\xb0\x0d\x2a\xc2\xa0\x22\x3c\xdc\x06\x15\x61\xb3\x0d\x2a\xc2\xa0\x22\x04\xb5\x41\x45\x78\xb0\x0d\x2a\xc2\x83\x6d\x50\x11\xea\x36\xa8\x08\xfd\x57\x11\x42\xd3\x7e\xb7\x37\xeb\x6f\x89\xe6\xf6\xf9\x9b\x75\x37\xae\xfb\x79\x50\xb9\xf1\x61\xee\x6d\x87\x8f\x91\xa2\xaf\x9d\xa8\x71\x83\x4e\x22\x97\xc1\x2e\x29\x9f\x03\x79\x35\x7e\xf5\xf2\xe0\xa4\x8a\x66\x0b\x89\x4d\x6f\xb6\x43\x91\xb0\x36\x5b\xf4\x9d\xb1\x2b\x7e\xa1\x7f\x21\x3d\x8e\xb3\x57\x71\x15\x2d\xe5\x73\x47\x7c\x4d\x55\x66\x21\x07\x7d\x78\x42\x84\x6f\x4d\xc7\x34\xcb\xa1\x0a\x7a\xb3\x6c\xdd\xa5\xf1\xd4\x49\xb1\x82\xbb\x00\x09\xb3\x2d\xbb\x6e\xbb\x4e\x6f\x9b\x00\xb5\x19\xf4\x53\x30\x6f\xdc\x35\x94\x48\x13\x25\x72\xb0\x18\x74\xfe\xea\x30\xaf\x0b\x7e\x1b\x90\x63\x98\xcc\x27\x24\x2d\xc1\x61\x3b\xd8\xac\x93\x93\x51\x23\x38\xb3\x6b\x2c\x91\x11\x78\x24\xfe\xc7\x4c\xac\x8b\xe9\x84\x25\x70\x5d\xd2\x2c\x5b\x11\x58\xb2\x44\x57\x2b\x80\xc9\x59\x4c\xab\x80\xb9\x0e\x56\x45\x43\xd5\xcf\xf1\x06\xff\xea\x26\x9e\x84\xeb\x89\x1b\x74\x74\xe7\xe9\x6b\x55\x0e\xec\x0c\x4d\x76\x5a\x92\xb4\x19\xcd\x06\xa4\xe1\x3f\xf1\xe0\xbe\xff\xd0\x35\x76\x87\x44\x92\x47\x82\x65\x90\x98\xaa\x81\x0b\x98\x11\xd2\x85\xf4\x6c\xce\xe0\x96\x90\x99\x2d\xa0\x26\x07\xe7\xe6\xb7\x9b\x5e\x40\xde\x05\x18\x65\x5b\x33\xb4\xdd\x88\x42\x64\x62\xbe\x6a\x6e\x3c\x5c\xbc\x26\x84\x3b\x25\xaa\x9c\x3a\xe5\xd6\x9c\xfd\xcb\xb5\x9d\x3a\x04\x7b\xec\x6c\x43\xb0\xc7\x46\x1b\x2c\xb9\x83\x25\xf7\x80\x7e\x06\x4b\xee\x60\xc9\x1d\x2c\xb9\x83\x25\xb7\x6b\x1b\x2c\xb9\x07\x11\x35\x58\x72\xc9\x60\xc9\xdd\xd9\x06\x4b\xae\x6b\x43\xb0\xc7\xd6\x36\xa8\x08\x87\xb6\x41\x45\x08\xef\x67\x50\x11\x06\x15\x61\x50\x11\x06\x15\xa1\x6b\x1b\x54\x84\x83\x88\x1a\x54\x04\x32\xa8\x08\x3b\xdb\xa0\x22\x6c\x76\x1c\x2d\xd8\xe3\x11\xc8\x8d\x49\x68\x21\xd2\xe8\x70\x2e\x85\x48\xef\x41\x73\xb1\xbe\xf0\x44\x8c\x33\x91\x54\xd8\xe5\xe6\x27\x2e\x06\x45\xd1\xdc\x86\x02\x8c\xc8\x3f\x05\x07\x8b\x01\x61\x0b\x92\xe6\x40\x84\x5e\x00\xd6\x1e\x3b\x56\x27\x1d\x12\xd9\x07\x34\x98\x7d\xda\x80\x06\x33\xa0\xc1\x0c\x68\x30\x4f\x8b\x06\xb3\xa0\xca\xd5\xed\x40\xa1\x68\x37\x38\x4c\x83\x63\xdf\x80\xcc\x07\x6c\x98\x87\xda\x86\x2e\xee\x8e\x8f\x59\xe1\xc6\x66\xb7\x33\x9e\xba\x70\x4a\x48\xaf\xda\xf3\xec\x0c\x77\x38\x2d\x34\x4d\x21\x25\x05\xc8\xb1\x3d\x3c\x82\xcc\x98\x2b\x9b\xb3\x76\x9a\xdd\x0c\x77\x65\x88\x3d\x01\x5c\x69\xcf\x44\x40\x4f\xcf\x8f\xba\xd2\x7e\x95\x68\xa1\x4a\xcd\x88\xad\x96\xf8\xf3\xd9\x61\xb0\xc4\xb1\x17\x8e\x89\x76\x61\x4a\xdf\x05\x59\x0c\x63\x99\xf7\xd0\xfc\x76\x7d\x50\xa1\xdc\xdd\x2d\xb6\x49\xc3\x57\x1f\xfd\xef\x12\xe4\x8a\x88\x25\xc8\xda\x58\xe5\x6f\x5a\xe5\x62\xb4\x11\x0b\xdf\x15\xd7\x0d\x57\x4d\x2f\x66\x16\x65\x8a\x97\x59\x36\xb2\xbd\xaf\xb3\x3d\x7f\x11\xd9\x72\x52\xc2\x7c\x1f\xc9\x7b\x11\xc5\xc0\x1d\xd3\xfe\x1b\x3b\x92\x8c\xf4\xac\x0c\xef\xee\x16\xd7\x3c\x11\xd1\x38\xf1\x48\xd6\xc3\xbe\x94\xfb\xdd\xdd\x1e\xd3\xbf\x44\x62\xfb\x98\x48\x64\x3f\x13\x89\xe8\x6b\x22\x71\xfd\x4d\x24\xba\xcf\x89\xc4\xf4\x3b\x91\x27\x2f\x5f\xbc\xbb\x45\x37\x2b\xc6\x76\x45\x91\x47\x63\x30\xe4\xa9\xcb\x24\xef\x6e\x4f\x53\x40\x79\x77\x7b\x84\x5d\x10\xd3\x3d\x45\x1e\x75\x0f\x3c\x4b\xa1\xe6\xdd\xad\x97\x4e\xab\x7b\x09\x7b\xf4\xe2\xce\xbb\x5b\x74\x1f\x10\x79\x04\x3f\x10\x89\xed\x0b\x22\x8f\x73\x64\x1f\xd9\x27\xf4\x04\x03\x74\x2a\x49\xbd\xbb\x3d\x06\xcf\x79\xd6\x32\xd6\xf7\x91\xf5\x8c\x05\xae\x77\xb7\xe7\x2f\x7d\xbd\xbb\x45\x96\xce\x43\xcb\x65\x3f\x44\x68\x14\x56\xf1\x38\xee\x57\xd2\x3a\x17\xdf\xc1\x2a\x6e\xf0\x67\x84\x93\xfb\xae\x45\x9d\x57\x3f\xb5\xab\x61\x57\x4b\xed\xe8\x6b\xb3\x02\xbb\xf3\x11\xb8\x32\xdf\x59\x16\x4c\xc3\x14\x88\xa6\xb7\x80\x11\x17\x02\xcb\x91\xb0\x14\x6c\xdd\x1a\xbb\xd5\x71\x7c\xb3\xc5\x4b\x05\xa9\x21\x24\x13\xe2\xb6\x2c\xfc\x51\xc1\xb4\xe2\x18\x07\x93\xf1\x44\xe4\x3e\x7f\xda\x66\xd3\x99\x13\xef\x78\xc1\xd8\xd6\x19\xb3\x9f\x23\x39\x78\x49\x3b\xa3\xea\xcf\x2d\x23\xdf\xcf\x84\x2a\xf2\x33\xaa\x3f\x9c\x1c\xe3\x0f\x4f\x7e\x0e\x0f\xcd\xac\x96\xc0\xfa\xe5\x44\x89\x1c\x76\xad\xf2\x7a\x7b\x75\xee\x9b\xdd\x60\x82\x7c\x6d\x94\xe6\xc4\x1d\x59\x7f\xfa\x31\xe5\x9a\x9d\x54\xa6\xe8\x09\xc1\xfd\x85\xba\x5f\x2a\xf8\x91\xb6\x54\x7b\xae\xef\x3b\x08\x8f\xc8\xac\x56\xae\x8e\xec\xb1\x1e\xee\x89\xab\x65\x6f\xab\xf0\x55\x35\xe3\xac\x8c\x17\x3c\xee\x8d\x8f\x1d\x70\x2a\xef\x4c\xc8\x29\x4b\x53\xc0\x42\x9b\xd5\xab\x4e\x85\x87\xc6\xa8\x8f\x9c\xe1\xfb\xad\xbd\x13\x4e\xcc\x59\xa6\xc4\x68\x7d\x9c\x84\x72\x0f\x7e\x00\xda\x56\xeb\x6c\x0d\x4b\x98\x32\xcb\xa2\x20\x82\xfa\x75\xe3\xca\x92\x1a\xbd\x23\x2b\x16\xb4\xe1\xc6\x74\xd7\x96\x22\xc0\xe9\x14\xbd\xad\x6d\x16\x74\xc1\x1b\x36\x60\x32\x03\xaa\x4b\x09\x64\xde\xa1\x52\xed\x7a\xeb\x5d\xd4\xfa\x63\x5d\x5f\x91\x33\x17\x98\xea\xf9\x15\xb6\x4e\xe0\x70\x8b\x45\xbf\xc5\xb8\xd0\xc3\x45\x36\x5c\x64\x6b\x17\xd9\xc6\xc1\x7b\xbc\xbb\x6c\x63\xa8\xe1\x3a\x1b\xae\xb3\x2e\x8d\xd3\x1c\x54\x41\x13\xf8\x8c\xfc\xf1\xd6\x59\x62\xb3\xfc\x3c\xf9\xaa\x51\x7c\x1c\x64\x1e\xd5\x87\xe2\x81\x7d\x70\xcf\x63\xbf\xa9\x0f\x1c\x2b\x79\xa3\x32\x6d\x83\x18\xcb\xce\xd7\x63\x24\x83\x29\xf1\x46\x11\xc1\x41\xa1\xab\x1a\xaa\x48\xdd\xc6\xe0\x38\x56\xf8\x6b\x23\x60\x4f\xed\x94\xe2\xe9\x3a\x84\x4f\x3d\x22\x7a\xcd\x73\xa0\x5c\x91\x17\x3e\x84\xf8\x48\xd5\x4f\xec\x59\x82\xfa\xbe\x56\x15\x03\xab\x28\x3a\xfe\xdf\xff\xe7\xa4\x55\x00\xac\x26\x68\x88\x89\xd8\xbb\x0d\x31\x11\x41\x6d\x88\x89\x18\x62\x22\x62\xf4\x35\xc4\x44\x0c\x31\x11\x5b\xdb\x10\x13\x31\xc4\x44\x0c\x31\x11\x43\x4c\xc4\x66\x1b\x62\x22\x86\x98\x88\x46\x1b\x62\x22\xba\x93\x35\xc4\x44\x1c\xd8\x86\x98\x88\x98\x31\x11\xb5\xe1\xa2\x6f\xd6\xb7\xa6\x49\xcb\xe5\xfd\xa2\xf6\xa9\xa9\x66\x49\x8d\xb5\xe5\x9f\xb2\xff\xea\x97\x29\xae\x69\x26\x7b\x1c\x43\x5c\xd3\xd8\xb7\x61\x4f\x8d\x64\x87\xdb\x69\x75\xab\xec\x72\x1b\x23\x3f\xaa\x41\x6e\x30\xb7\x77\xa3\xb2\x4e\xc4\xeb\xdb\x51\xbf\xf1\xd0\x0f\x6a\x21\xca\x2c\x35\xc2\x6d\x85\x0b\x91\x92\x63\xef\xf0\x3b\x31\x5b\x91\x0b\xdd\xfe\x92\x6b\x36\xae\x9f\xa8\xd2\x2a\xd1\x5b\xe9\x6b\x9f\x84\x2f\xb1\xb7\x11\xd4\x4e\x2d\x87\x52\x51\x41\x12\xd4\xa7\xc3\xdc\xd0\x20\x5b\xef\xc0\x14\x49\x61\xc6\xb8\x85\xb4\x91\x25\xe7\x46\x38\x17\xdc\x21\x0e\x04\xd3\x67\x45\x02\xeb\x81\x74\x7c\xc8\x9a\x34\x70\x3e\xd0\xae\x51\x2f\x7f\x23\xa9\x9c\x22\x13\xa5\xdc\xa1\xe2\x0b\xee\x7c\xbd\xe6\x13\xdb\x4f\x30\x69\x15\x8b\xc2\x15\x61\xd5\xdb\x87\x73\xa7\xb7\xc8\x95\x9a\x2f\xc6\x14\xee\x0f\x9a\x65\xe2\x2e\x5c\xda\x88\x72\xae\x23\x17\xf9\x09\x3c\x6d\x77\x07\xd7\x08\x5a\xcb\x94\x0e\xd3\x6c\x87\xf2\x42\x7b\xb6\xa1\xbc\xd0\xc3\x6d\x28\x2f\x74\x7f\x79\xa1\x46\xc0\x55\xb3\xce\x50\xd7\xd9\xc6\xea\x44\xcf\x50\x67\x88\x90\xbf\x2d\x00\xf9\x86\x04\x1b\x25\x55\x66\x9a\x15\x35\x7e\x9c\xb2\x2b\x9f\x59\x43\xdc\xcc\xe1\x10\xb5\xb9\x98\xa1\x91\x26\x8b\x8e\x04\xac\xf1\x40\xa4\x02\x51\xea\x14\xde\x6c\x16\x7f\x07\xfd\xc0\xb6\x08\x8f\xb7\xd0\x59\x18\x24\xf6\xf9\xa3\xa5\x04\xdc\x3a\x6f\x50\xec\x69\x87\x01\x2a\x72\x6c\xa4\xa5\x6c\xe5\x82\xe1\x5a\xd7\x4f\x4b\xcc\xea\x3c\xac\xf5\x22\x2c\xc1\xab\x68\x73\xb6\x04\x5e\xcb\x68\xc7\xea\xe4\xc4\xeb\x8a\xeb\xb2\x67\xe7\x31\x43\x64\xd6\xee\xf7\xea\xa1\xb2\xe6\x9a\xac\xd8\x79\xdc\x2d\x32\xe6\x7f\x34\x64\xb1\xff\x7c\x58\xca\xec\x3c\xb4\x65\x6d\x1e\x9c\xaa\xb1\xad\x6a\xe9\xb2\x63\xdf\x3d\x41\xda\x09\x07\x4d\x89\xe1\x87\x8d\x06\x96\x12\xb7\x9a\xd7\x73\x80\xa4\x3c\x03\x40\xca\xaf\xa9\xbc\x56\x2f\x83\x7f\x7a\x67\x67\x7a\x0c\x6c\xfd\x5e\x07\xfb\x0c\xe0\xfa\x41\xfd\xfc\xaa\xc0\xf5\x9f\x29\x98\xe7\x57\x88\xb1\xdf\x83\xe0\x9d\xe7\x0c\xdc\xf9\xd5\x61\xec\xf7\x28\x50\xa7\x97\x41\x3a\x7d\x0b\xd0\x19\x40\xeb\x83\xda\xe7\x09\x5a\x1f\x35\x08\x27\x36\x1f\xe9\x61\xf0\x4d\x0f\x03\x6f\xfa\x1a\x74\x13\x51\x52\x7e\x9c\x60\x9b\x48\x2c\xe0\x71\x82\x6c\xe2\x65\x6c\xc7\x3c\x95\xcf\x0d\x36\xd2\x8b\x14\xed\x3e\x83\x8c\xf4\x2a\x2f\xbb\x5f\x39\xd9\xcf\x91\x8f\xdd\x1b\x50\x91\x67\x05\x14\xe9\x5d\xf6\x75\x1c\xc9\x34\x82\x3c\xfa\x18\x57\x50\x3c\xf1\x30\x2a\x70\x48\xd4\x6b\xe8\xf9\x01\x43\xbe\xd8\x9b\x28\x22\x50\xc8\x70\x19\xed\x6c\x7d\xbf\x8c\x1e\x1b\x18\xe4\xb9\x41\x41\x86\x2b\xe9\x7e\x42\xfa\x7a\x25\x45\x05\xff\x78\x64\xff\xf2\x53\x82\x7e\xf4\x03\xf0\xe3\xc9\xc0\x3e\xfa\x03\xf4\xf1\x64\x20\x1f\x83\x5f\x7f\xf0\xeb\xb7\xdb\xe0\xd7\x1f\xfc\xfa\x87\xf4\x33\xf8\xf5\x07\xbf\xfe\xe0\xd7\x1f\xfc\xfa\x81\x6d\xf0\xeb\x77\x24\x6a\xf0\xeb\x6f\x6f\x83\x5f\x7f\xf0\xeb\x0f\x7e\xfd\x8d\x36\xf8\xf5\x83\x08\xec\xa9\x5f\x3f\x0e\x70\x46\xcc\x13\xd9\x27\xc0\x8c\x3e\x80\x65\x3c\x15\x50\x46\xef\x40\x32\x06\x13\xf4\x7e\xd4\xc5\x01\xc4\x88\x79\x84\xfb\x0d\x84\xd1\x67\x10\x8c\x9e\x02\x60\x3c\x0e\xf8\xc5\x63\x02\x5f\x04\x9f\xd9\xa8\xa7\xb5\x10\xe9\x19\xd7\xcc\x7b\xe9\x0e\x3f\xa7\xad\xd3\xf9\x06\xff\x98\x82\x3d\x63\xad\x03\xd3\x44\x13\x90\x65\x06\xca\x25\xd3\xd3\xa5\x60\x29\x29\x4a\xad\x6d\x7e\xb2\x3b\x9f\x7e\xe3\xd3\xdc\xe2\x09\x8c\xc8\x3f\x05\x87\x11\x01\x9d\x4c\xcc\xe6\xc6\x4c\x7d\xa1\x17\x20\xcd\xe3\xc7\xea\xe4\xe4\xf0\x35\x09\x92\xcf\xc2\x4c\x7b\x85\x84\x19\xc8\xcf\x02\x7f\x02\x9d\xe1\x0e\xe4\x41\x5a\x1f\xbc\xa5\x1e\xa3\x16\xdc\x17\xf6\xf8\x69\xe1\xb0\x01\xf0\xd8\xdb\xe4\xfc\xae\x37\x24\xa2\x40\xb4\x36\x10\x34\xdc\x1c\x3b\x90\x20\x46\x64\x5a\x6a\xc2\x34\xc2\x27\x24\x0b\x21\x54\x57\xee\xe2\x52\xb9\xf1\x45\x96\x4c\x58\x73\xba\xe0\x80\xd8\x0c\x42\x56\x3c\xb0\x41\x94\x55\x25\xea\x9f\xb1\xae\xca\x56\x2e\x94\xae\x77\x88\x37\xce\x9a\xc1\xab\x3b\x67\x2e\xc1\x50\xa4\x89\x2a\x73\x43\x8a\x85\x9d\x51\x16\x28\xa1\xe3\xb0\x33\x23\x62\xd1\x64\xd1\x78\x85\x1c\x40\x5b\xd7\x9c\xcf\x05\x6f\x1c\xe2\xa6\xce\x74\xec\x33\x83\x3b\x8e\x6d\x3a\x03\xa5\x47\x3b\x71\x59\x76\xef\x05\xcb\x13\x4e\xba\x1a\xa5\x12\x91\x17\xa5\x06\x23\xc7\x97\xb9\xd9\x4d\x4c\x63\x10\x0d\x32\x23\x29\xca\xb9\x9d\x70\x0f\x85\x61\x27\xa2\xc6\x59\xe1\x29\xea\x66\x9d\x2f\xfe\x17\x76\xe5\x5e\x78\xe1\xdd\x10\xc1\x66\x15\x8c\x0a\x59\x50\xd5\x8c\xfe\xa9\xef\xd5\x07\x60\x84\xfe\x47\xc0\xcd\x6a\x06\x3e\x56\x0d\x09\x67\xc1\xe6\x0b\xbf\xd9\x8c\x76\x8c\x36\x85\xd6\x26\xfd\xdc\xf1\x37\xcc\xc9\x75\x67\x08\xc5\x95\x7a\xc7\xdb\x19\x4f\xc9\xdf\xf0\x5b\x48\xd7\xb3\xd2\x71\x1f\x58\xa3\x01\x4d\x53\x23\x88\x80\x1c\xdb\x13\x24\xc8\x8c\x39\x15\x69\xed\x48\xbb\x19\xee\xca\x1a\xfb\x81\xa1\xb0\xb6\xe3\x02\x7a\xb2\x33\xdf\xb1\x83\x18\x3e\xb6\xb5\x57\x89\xa6\xad\x7c\x70\xd3\x3c\x21\x67\x56\x22\xf2\xfc\xcb\xa8\xee\xa3\x0d\x94\xb0\xcd\x53\x6d\x67\xa6\x07\xd1\x10\x71\x1c\xb5\x31\x80\x37\x48\x44\xbf\x6a\x34\x00\x0e\xf2\x34\xd5\x91\x9e\x00\x88\x83\x3c\x0f\x18\x07\x19\x2a\xf3\xf4\x2b\x88\x87\x0c\x95\x79\x7a\x16\xd4\x43\x86\xca\x3c\x43\x65\x9e\xee\xad\x0f\x41\x3f\x64\xa8\xcc\xd3\x83\x20\x20\x32\x54\xe6\xd9\xa7\x0d\x95\x79\x86\xca\x3c\x9b\x6d\xa8\xcc\x33\x54\xe6\x69\xb4\xa1\x32\x4f\x77\xb2\x7a\x17\x48\x44\x7a\x1c\x4c\x44\x86\xca\x3c\x91\x2b\xf3\xc4\xcb\xd8\x26\x8f\x70\x72\x9f\x1b\x40\x84\xf4\x25\x75\x9b\xf4\x1c\x48\x84\xf4\x2d\x7f\x9b\xf4\x2e\x87\x9b\x3c\x53\x1e\x37\xe9\x13\xb0\x08\x79\x6e\x70\x11\xd2\xc7\x6c\x6e\xd2\xc7\x7c\xc1\xcf\xa3\xde\x54\x54\xd0\x11\xf2\x18\x57\xd8\xf3\x83\x8f\x90\x2f\xfd\x16\x8b\x08\x42\x42\x86\x8b\x6c\x9f\xf6\x39\x5c\x64\x8f\x0d\x4a\x42\x7a\x00\x4c\x42\x86\xeb\xec\x20\x82\xfa\x7e\x9d\x45\x05\x2c\x21\x4f\xe3\x8f\x7f\x4a\xe0\x12\xd2\x1b\xf0\x12\xf2\x94\x00\x26\xa4\x57\x20\x26\xe4\x29\x81\x4c\xc8\x10\x13\x31\xc4\x44\xec\xdd\x86\x98\x88\x21\x26\x22\x46\x5f\x43\x4c\xc4\x10\x13\xb1\xb5\x0d\x31\x11\x43\x4c\xc4\x10\x13\x31\xc4\x44\x6c\xb6\x21\x26\x62\x88\x89\x68\xb4\x21\x26\xa2\x3b\x59\x43\x4c\xc4\x81\x6d\x88\x89\x88\x19\x13\x11\x07\x74\x85\x3c\xc2\xa9\xed\x13\xf8\x0a\xe9\x09\x00\x0b\x79\x42\x10\x16\xd2\x47\x20\x16\x32\x98\xdb\x3b\x53\x19\x07\x9c\x85\x3c\xc2\x51\xef\x37\x48\x0b\xe9\x39\x50\x0b\xe9\x2f\x58\x0b\x79\x34\xc0\x16\xf2\xc8\xa0\x2d\x24\xd6\xb9\xb6\x09\xbd\x7d\x81\x43\xb2\xd4\x6c\xe4\x21\xfb\x73\xf2\x30\xcc\x40\x98\x66\xeb\x0e\x8d\xa4\x7c\x0e\xe4\xd5\xf8\xd5\xcb\x97\xe1\x99\xce\x8c\x6b\x98\x43\x88\xf5\x72\x26\x64\x4e\x35\xf6\xf4\x87\xdf\x77\xea\x27\x3a\xdb\xde\x85\x8a\xd1\x3f\xb4\x18\x67\x13\x69\xa3\x75\xb4\xa4\xff\x1d\xd0\x2d\xa8\x15\x98\xd3\x9a\x83\x26\x9d\x7d\x03\x0d\x7c\x12\xcd\x72\x18\x79\xde\x6f\x43\x35\x7c\x5c\x82\x03\xad\x49\x89\xe0\x4e\x64\x33\xec\xae\xeb\xde\xeb\xfe\xca\x09\x50\x85\x38\x11\x53\x30\xaf\xdd\x71\x7c\xaa\x2d\x1a\x52\x21\x18\xd7\xde\xd0\x63\xde\x19\xfc\x86\x70\x50\x4b\x69\x09\xd6\x82\x5a\x87\x5e\x95\x45\x4a\x35\x9c\x84\xa8\x8a\x6a\xa5\x34\xe4\x88\xb8\x63\x24\x3d\x8a\x31\x49\x44\xcb\x15\xc6\xa5\x2c\x81\xeb\x92\x66\xd9\x8a\xc0\x92\xb9\xb0\x22\x33\x3c\x06\x55\x31\xad\x82\x66\xfe\x6f\x0b\x40\x0e\x22\xc1\xc6\x4b\x95\x99\x66\x45\x56\x83\xb5\xd8\xe5\xcf\xac\x49\x6e\xe6\xb0\x89\xda\xfc\xcc\xd0\x48\x93\x45\x47\x02\xd6\xb8\x21\x52\x61\x18\x90\x54\x78\xc7\x59\x38\x1e\xf4\x08\x1b\x55\x41\x55\xb6\x3a\x0b\x8d\xc4\x3e\x7f\xdc\x94\x80\xfb\xe7\x0d\x0a\x40\xed\x80\x40\x45\x8e\x8d\xdc\x94\xad\x5c\x58\x5c\xeb\x22\x6a\x09\x5c\x9d\x87\xb5\xfe\x84\x25\x78\x65\x6d\xce\x96\xc0\x6b\x69\xed\x58\x9d\x9c\x78\xad\x71\x5d\x0a\xed\x3c\x66\x88\xf4\xda\xfd\x86\x3d\x54\xea\x5c\x93\x1a\x3b\x8f\xbb\x45\xda\xfc\x8f\x86\x54\xf6\x9f\x0f\xcb\x9b\x9d\x87\xb6\xac\xcd\x63\x55\x35\xb6\x55\x2d\x67\x76\xec\xbb\x27\x98\x3b\xe1\xf0\x29\x31\x3c\xb2\xd1\x60\x53\x1e\xb9\xae\xd4\x13\xc0\xa5\x3c\x03\x54\xca\x50\xdf\x68\xa8\x6f\xd4\x6e\x43\x7d\xa3\xa1\xbe\xd1\x21\xfd\x0c\xf5\x8d\x86\xfa\x46\x43\x7d\xa3\xa1\xbe\x51\x60\xeb\x51\xc8\x4e\x2f\xc3\x75\xfa\x16\xaa\x33\xd4\x37\x0a\x6a\x43\x7d\xa3\xa1\xbe\xd1\x50\xdf\xa8\xd1\x86\xfa\x46\x21\x47\x33\x5e\xee\x76\xcc\x53\xf9\xdc\xb0\x23\xbd\x48\xd6\xee\x33\xdc\x48\xaf\x32\xb4\xfb\x95\x9d\xfd\x1c\x99\xd9\xbd\x81\x17\x79\x56\x68\x91\xde\xe5\x61\x0f\x15\xba\xf6\x6a\x51\x21\x44\xa2\x5e\x43\xcf\x0f\x1d\xf2\xc5\xde\x44\x11\x21\x43\x86\xcb\x68\x67\xeb\xfb\x65\xf4\xd8\x10\x21\xcf\x0d\x0f\x32\x5c\x49\xf7\x13\xd2\xd7\x2b\x29\x2a\x0c\xc8\x23\xfb\x97\x9f\x12\xfe\xa3\x1f\xd0\x1f\x4f\x06\xfb\xd1\x1f\xc8\x8f\x27\x83\xfb\x18\xfc\xfa\x83\x5f\xbf\xdd\x06\xbf\xfe\xe0\xd7\x3f\xa4\x9f\xc1\xaf\x3f\xf8\xf5\x07\xbf\xfe\xe0\xd7\x0f\x6c\x83\x5f\xbf\x23\x51\x83\x5f\x7f\x7b\x1b\xfc\xfa\x83\x5f\x7f\xf0\xeb\x6f\xb4\xc1\xaf\x1f\x44\x60\x4f\xfd\xfa\x71\x20\x34\x62\x9e\xc8\x3e\x41\x67\xf4\x01\x36\xe3\xa9\x20\x33\x7a\x07\x97\x31\x98\xa0\xf7\xa3\x2e\x0e\x34\x46\xcc\x23\xdc\x6f\x48\x8c\x3e\xc3\x61\xf4\x14\x0a\xe3\x71\x60\x30\x1e\x13\x02\x23\xf8\xcc\x46\x3b\xad\xb4\xd4\x22\x17\x25\xd7\xd7\x20\x97\x2c\x81\xb3\x24\x31\x7f\xdd\x88\x5b\x38\x10\xfb\xa0\x75\x44\xcf\xee\xe9\x96\x30\x9e\xb2\x04\x6d\x93\x77\x0b\xd0\x0b\x97\x5c\x88\xcf\x11\x6a\x1f\x24\x1a\x9f\xac\x4f\x28\xd2\x69\xee\x58\xcc\x7f\xc7\xae\x0f\x5d\x02\x3b\x43\x53\x21\x32\xa0\x87\x78\xc7\x9d\xcc\x08\xf2\x40\x46\x1d\xc6\xb3\xbe\x77\xa2\x44\x3d\x3a\x99\x42\x26\xf8\xdc\x65\xda\x3b\xae\x73\xe8\x2e\x3c\xaf\xbb\x73\xde\xe3\xa4\x94\x12\xb8\xce\x56\x38\xcd\x69\x0a\x29\x41\xf3\x54\x2e\x96\x87\x6f\xf2\x1b\x64\x47\x5e\x87\xa7\x9a\x64\x40\xcd\x7b\x70\xa8\x5f\xc4\x30\x34\x4a\xae\x3a\xd0\x5e\xb9\xbb\x2d\xd4\x42\xa7\xf5\x3f\xfc\xc6\xee\x74\x47\xb7\x4f\x83\xd7\xcb\x50\x4a\x4b\xd0\xc8\xd7\x98\x0f\x64\x90\x2b\x51\x92\x3b\x6a\x55\x29\x59\x72\x64\xa9\x38\x51\x1d\x16\x39\x40\xe9\xe8\x6e\x8c\x1f\xe3\xbd\x74\xe0\xcf\x42\x8c\xe3\x54\xce\x3b\x89\x4e\x31\x64\x89\x33\x39\x2f\xad\xa6\xe8\x8e\x22\x70\x2d\x57\x88\x1a\xd2\xed\x5e\xb8\x59\xb4\x4e\x48\x4e\xe7\x70\xa4\xc8\xf9\xbb\x37\xe6\xd6\xc1\xa0\x28\x36\xb3\x32\xbb\xbb\x85\x0a\x29\x96\x2c\xed\x7a\x0d\x7d\xa4\x92\xd1\x69\x66\xb4\xde\x19\x48\xe0\x46\x92\xfe\xea\xf8\xe3\xd9\x87\x9f\x2e\xcf\xde\xbd\x3d\x41\xfd\x17\x3e\x15\x94\x1b\x76\x50\xaa\x1a\xbf\xc8\x51\x78\xa4\x08\xf0\x25\x93\x82\x9b\x59\x40\xbb\x21\x25\x4b\xd7\x69\x27\x8a\xea\x58\x16\x09\x4a\x64\x4b\x48\x2d\xe2\x48\x45\x60\x1d\x51\x54\x94\xda\x5b\x50\x7d\x38\x50\xc9\x93\x05\xe5\x73\x48\x27\xe4\x8d\x28\xcd\x8b\x7d\xf5\x15\xbe\x84\x84\xb4\x4c\xa0\x9b\x8e\x63\x4d\xf0\xf6\xe4\x7e\x35\xf2\x32\x8b\xb9\xfd\x31\x1c\x88\x80\x4a\x68\xe1\xa7\xa6\x39\x7b\x6a\xc5\x35\xfd\xf4\xda\x22\x96\xbc\xf8\xaa\xf1\xd5\x8b\xee\xb1\x74\x85\x14\xe6\x55\xac\x2c\x68\xdf\x3e\x63\x1a\x24\xcd\xc8\x8b\xe6\x08\x13\xf2\xd6\xd0\x05\x69\x73\x6d\x2d\x64\x0f\x2c\x41\xa2\x6d\xd5\xad\xec\x88\x48\x98\x53\x99\x66\xa0\xba\x19\x85\xc4\xac\xba\xc2\xad\xa9\xc5\xed\x2a\xa8\x6c\xc6\x5c\xe8\x49\x28\xe3\xf6\xed\x9d\x40\x48\x98\x99\x78\x4d\x16\x5a\x17\xea\xf5\xe9\x69\x2d\x05\x4d\x98\x38\x4d\x45\xa2\x4e\x35\x55\xb7\xea\x94\x71\xc3\xfc\xc6\x29\xd5\x74\xdc\xe0\xba\xa7\x56\x36\x1e\x27\x22\xcf\x29\x4f\xc7\xd4\x9d\xe3\x71\xb5\xb3\x4f\x7f\xeb\xa4\xc7\x31\xad\x9e\x62\x7c\x4c\xc7\x6a\x01\x9d\x56\x2e\x4c\x51\x0c\x50\x10\x03\x85\xcc\xc8\x0a\xa1\x9b\xcb\xe7\x62\xd8\x6f\x2b\xfe\x6c\x97\x62\x42\x2e\x85\x76\xa8\x4e\x2e\xc8\x13\x6f\x5b\x5c\xe5\x98\x2c\xfc\xed\xe5\xcd\x87\xbf\x5f\xbd\xbf\xb8\xbc\x19\x38\xf9\xc0\xc9\xb1\x0d\x9c\x7c\xe0\xe4\x1d\x06\xee\x0b\x27\x07\xbe\x7c\x2e\x2e\xee\x95\xe2\x06\xc7\xaa\xb6\xaa\xcb\x5d\xa8\x22\xcf\xab\x7d\xd0\x6d\x8b\x46\xd9\xe9\xcf\xb6\x63\x5a\x93\xfd\x96\x2f\x3f\xd2\x76\xc4\x09\xdf\x3a\x85\xc4\x3d\x60\x35\xf4\xf3\xb0\x09\x0c\xf6\x7c\x85\xc6\x85\x75\x52\x48\x6d\x0b\x8f\xd9\x32\x43\x77\x37\x78\xb7\x96\xef\x92\xe6\x95\xb9\x75\xdb\xaa\x4d\xc8\x3b\x6f\x6f\x21\xe7\x3f\x5d\xbc\x79\x7b\x79\x73\xf1\xf5\xc5\xdb\x0f\xdd\x0d\x94\x11\x5c\x0a\x68\x24\x8e\x34\x01\x41\xf6\xfe\x43\xe4\xa3\x80\x61\x6a\xc9\xaa\x90\xb0\x64\xa2\x54\xd9\xaa\x32\xc4\x6f\x67\x57\xeb\x7c\x8a\x50\x1e\x42\x01\xe5\xab\xca\x8a\xba\x75\xc0\x35\xd9\x6e\x9b\x9c\x16\x62\xd2\x7e\x5e\x09\xcf\x11\x11\x43\xce\x0b\x18\x7f\x8b\x84\xb8\xbf\xb4\x17\x30\x6e\x27\x39\x71\x97\xcc\x17\x40\x47\x5b\x5a\x0c\xe8\xe8\x8d\xcd\xe8\xc2\x3b\xfd\x45\xc0\xd4\xc4\xe2\x64\x5f\x4b\x91\x47\xe2\x66\xd7\x88\x9e\x58\x65\xd8\x6d\x3b\xaa\x47\x2e\x46\xbc\x25\x6f\x3b\xcd\xb1\xca\x71\x33\x9f\x07\xe6\xb9\x45\x09\x4e\x89\x13\xdf\x9c\x08\x3e\x63\xf3\x77\xb4\xf8\x0e\x56\x1f\x60\x16\xe6\x12\x6f\xcf\x37\x7a\x07\x5d\x94\x2d\xfa\x21\x8d\x64\x63\x07\x0b\xf3\x10\x46\x8b\xed\x89\x15\x01\x1f\x1e\xfd\x1e\x2f\x58\x3d\x4a\xa0\x7a\x6b\x21\x5d\x9e\x70\x9d\x28\x1b\x2b\x8f\x21\x4a\xfc\x63\x98\xc0\xe7\x5b\xfc\x20\xe4\xa6\xf4\xe8\xae\x87\x28\xb1\xdc\x37\x35\xf4\x3a\x53\x04\x66\x33\x48\x34\x5b\x42\x56\xc1\xb5\xa7\x23\x32\x2d\xb5\x07\x4a\x9f\xd2\xe4\xf6\x8e\xca\x54\x91\x44\xe4\x05\xd5\x6c\xca\x32\xa6\x57\x84\xc5\x28\xf6\xe5\x3c\xf2\x0e\xfd\xdd\x87\x32\x73\xa5\x29\x5e\x85\xc2\xd9\xdb\xcc\x6a\xdb\x50\x05\xea\xf3\xd0\x2c\x37\xf5\xa8\xe7\x51\x48\xc9\x85\xd2\x24\x01\x69\x84\xba\x6c\x45\xee\xa4\x88\x51\x90\x83\x90\x9b\xf7\x6f\xde\xbf\x26\x67\x69\x4a\x04\x5e\xd9\xa5\x82\x59\x99\xd9\x25\x50\x13\x42\x0b\xf6\x11\xa4\x62\x82\x8f\xc8\x2d\xe3\xe9\x88\x94\x2c\xfd\x4b\x84\x71\xf7\xb3\xd5\x24\x82\x27\x50\x68\x75\x2a\x96\x46\x06\x85\xbb\xd3\x3b\x21\x6f\x19\x9f\x8f\xcd\x84\x8f\x2d\x93\x54\xa7\x18\xba\x72\xfa\x5b\xfc\x4f\xb4\x39\x79\x23\x45\x41\x7e\x36\x44\x4d\x4b\x96\xa5\x20\x5f\xbb\x84\xf0\x9f\x6d\x4e\xb4\x91\xb0\xa5\xc8\x32\x90\xe3\x39\x70\x92\x0a\xc0\xb4\x68\x0e\xe6\x46\xd5\xd5\x5b\xcd\x99\x5e\x94\xd3\x49\x22\xf2\xc6\x0b\x8e\x15\x9b\xab\xd3\x46\xdf\xa7\x4c\xa9\x12\xd4\xe9\x1f\xfe\xfc\xef\x7f\xea\x15\x03\x22\x3e\x0d\xfe\x35\x79\xf1\x22\xb0\x2f\x51\xd8\x40\xd3\xc8\x0c\xed\x1a\x43\x98\x56\x2d\xa9\xb3\xba\x8b\x8d\xd4\xc8\xb4\x42\x16\xef\x03\x08\x9c\x02\x15\x69\x9a\x0f\x0f\xfd\xd8\x6c\x8f\x55\x2e\x0e\x8f\x71\x5c\xc1\x27\xf8\xfa\xa8\x25\x27\xcb\xe7\xdd\x2d\x52\x88\xf4\x35\x51\x65\x51\x08\xa9\x15\xc9\x41\xd3\x94\x6a\x3a\x31\x67\x7a\xd4\xfe\x13\x83\xd4\x46\xe4\xe7\xea\x43\x0b\xe2\xf0\xc3\xd1\x7f\x7c\xf7\xf6\xef\xff\x79\xf4\xe3\xcf\xcd\xef\x50\xd2\xb5\xf9\x4f\x8d\x07\x02\x5f\x41\x15\x90\x4c\xb8\x48\xe1\x12\xa9\xc3\x3f\x55\x2b\x24\xc9\x7d\xa1\xa9\x2e\xd5\x64\x21\x94\xbe\xb8\xaa\xfe\x2c\x44\xba\xfe\x57\x60\x16\x56\x0f\x45\x46\x5c\xdb\x2b\xaa\xbb\x57\x0a\x20\x51\x05\xc7\xfa\x22\x8b\xcc\x7d\x5c\xaf\x55\x49\x83\x64\x01\x39\xc5\x7f\x7e\xed\xa7\xc0\x88\x32\x77\x92\x69\x8d\x51\x6a\xae\xd0\x88\x98\x8d\x3c\x6b\xb5\xfa\xe8\xf2\x55\x70\xa1\xbd\xa8\x9c\xbf\x5a\xc1\xc8\x13\x86\x33\xe2\x66\xcb\x72\x80\x1a\xa3\x66\x23\x28\xf5\xec\xea\x82\x2c\xed\x0c\xf7\x68\x72\x1e\x8b\x5d\xfb\x22\x08\x5f\xf7\x9a\x6d\x7b\x2a\xfd\x22\x56\xa6\xc6\xd7\x36\xff\xa5\x2a\xe5\x40\x32\x96\x33\x97\xf4\x69\x38\x0b\x28\x1d\x2a\x9e\x1d\xdb\x2e\x27\x49\x51\x8e\x5c\xf7\x93\x1c\x72\x21\x57\xd5\x9f\x50\x2c\x20\x07\x49\xb3\xb1\xd2\x42\xd2\x39\x8c\xaa\xc1\xed\xcf\xaa\xbf\xec\x0f\x5b\xe4\x6d\xfe\xda\xda\x72\xeb\x70\x46\x77\x45\x85\xe6\xf0\xf4\x90\x65\xfb\x75\xeb\x09\xc7\xae\xb6\xd5\x65\x7c\x1d\xf8\xa8\xf2\x42\x59\x0d\xbb\x9a\x45\x34\xa0\x2d\x45\x56\xe6\xa0\x46\x95\xc0\x6a\xad\xbc\x7c\x49\x96\x54\xaa\xa3\xfe\xf0\x21\x42\x52\xb6\x64\x2a\x46\x6e\xfa\x16\x89\x9a\x39\x98\x07\x51\xea\xa2\xd4\xae\xe8\x5e\xe5\x32\xfa\x54\x08\x85\xb6\xe1\xaa\x6e\x4b\xeb\x36\x7b\x15\xaa\x2c\x10\x52\x50\xad\x41\xf2\xd7\xe4\x7f\x1d\xff\xe3\x77\xbf\x8c\x4f\xfe\x72\x7c\xfc\xc3\xcb\xf1\xbf\xff\xf8\xbb\xe3\x7f\x4c\xf0\x1f\xff\x7a\xf2\x97\x93\x5f\xfc\x1f\xbf\x3b\x39\x39\x3e\xfe\xe1\xbb\x77\xdf\xdc\x5c\xbd\xfd\x91\x9d\xfc\xf2\x03\x2f\xf3\x5b\xfb\xd7\x2f\xc7\x3f\xc0\xdb\x1f\xf7\xec\xe4\xe4\xe4\x2f\x5f\x05\x93\x4e\xf9\xea\x7d\x20\xf7\xb6\x6d\x1c\xad\x66\xe2\x7a\x8f\x91\xb4\xc3\xd6\x55\xc8\xb8\x1e\x0b\x39\xb6\x5d\xbf\x26\x5a\x96\xa1\xc6\x0f\xbf\xbd\x62\x9f\xff\x0f\x9e\x6b\xd6\xb7\x59\x25\x85\xf4\xe8\x80\x3f\x96\xa0\xa1\x20\x91\xa0\x9f\xc2\x28\x6e\x47\xf2\x82\xdd\x5a\xaa\xdc\x97\x76\x83\xfe\x1a\xec\xe4\x55\xe9\x36\x5c\xd7\x5a\x74\x9f\x49\x91\x4f\x48\x23\x68\x60\x89\x80\x20\xee\xb9\x5b\x08\x04\x4e\x24\x83\x5d\x3d\xa4\x0d\x76\xf5\x1d\xa4\x0c\x76\xf5\xc1\xae\xbe\x77\x1b\xec\xea\xd7\x96\x9d\xff\x2a\x8d\xea\x9b\x01\xaf\xa6\xd3\xdb\xce\x98\xdc\x9d\x23\x09\x77\x45\xde\xe6\xb4\xe8\x12\x76\xdb\x35\x0a\x25\x66\xe8\xad\xb7\x18\x69\x41\x0a\x51\x94\x19\xd5\x3b\xc2\xcd\x22\xc5\xe1\x56\xe8\xe0\x3e\x98\xae\x4e\xd5\xb0\xda\x40\xbe\x3d\xf8\x91\x9c\x65\x19\x61\xdc\xca\x36\xa6\x83\x4e\xa3\xfb\x98\x35\x09\xd6\x94\x44\xa8\x0d\x9e\x5d\x9a\x57\xbd\x73\x25\xb3\x9b\x59\x1f\x8a\x28\x4d\xa5\x66\x7c\x3e\xb1\x25\xb5\xad\x84\xed\x02\xa3\x18\xaf\x0a\x6b\x77\x22\xa7\xd2\xe0\x2b\x60\x1b\x42\x95\x12\x09\xa3\x3e\x89\xc5\x25\xe5\x2b\xed\xa7\x07\xdf\x40\xd3\x5b\x0c\x4c\x4c\x20\x05\x9e\x74\x0c\x71\xfb\x68\x81\x74\xfc\x3a\x4c\x57\x66\x26\xde\xf2\xa5\xbb\xfa\x49\x5a\xda\xe0\x7c\x2b\x7d\xc6\x1b\xf7\xcb\x8a\xc4\x36\x67\xd8\x85\x80\x35\x02\xb2\x51\x50\xaf\x6c\xb5\x15\xf0\x5f\xe5\x1c\xed\xb6\x7b\x83\x15\xaf\x70\x35\xa7\x8a\xeb\x0a\xd2\x5f\x37\xf4\x9b\xda\x6b\xdc\xd6\x6b\xbe\x84\x50\xb8\x70\x8d\x27\xae\xb6\xf3\x18\x9a\x4e\x5f\xb4\x9c\x9e\x68\x38\x8f\xa3\xdd\x3c\x87\x66\xd3\x57\xad\xe6\xb3\xd6\x68\xa2\x69\x33\x71\x34\x99\x38\x5a\xcc\x01\x91\x41\x31\x35\x97\x38\x5a\xcb\x63\x98\x7b\x0b\x09\x33\xf6\x29\xd2\x25\x79\xc6\x6b\x9f\x18\x4b\x81\x6b\x36\x63\x66\x5e\x85\x19\xa6\x00\x8e\x2c\x0f\x68\x62\x61\x9b\x9c\xa8\x5e\xc7\x45\xf7\x31\xa5\xc8\x1a\x28\xe3\xca\x11\xd7\xdb\x8c\xa3\x83\x10\x41\x06\x21\xe2\x80\x36\x08\x11\x83\x10\x31\x08\x11\x07\xb6\x27\x12\x22\x1c\x83\xff\xf2\x25\x88\xc8\x49\xfe\x08\x5f\xf2\x5c\xb6\xc6\xf3\x36\x8a\x0a\x5e\x66\x8f\x09\x34\x51\x71\x92\x1a\x6c\xef\x14\x47\xee\xc6\x30\xda\xf7\x52\x25\x86\x69\x61\x6f\x0a\xb2\x60\x73\xb3\x3d\x33\x58\x42\xe6\x0c\x24\x24\xa7\x9c\xce\x2d\x7a\xb6\x16\x55\x41\x3b\x21\xb1\x38\x96\x64\x1d\x81\x3b\xd7\xe0\x68\xd0\x00\x69\x98\x64\x26\x68\xda\xe0\x53\x8a\x64\xec\x16\xc8\x1b\x28\x32\xb1\x72\x00\xd8\x3c\x25\xd7\x9a\x6a\xc3\xec\xaf\x41\x77\x0a\x7b\x0e\xe2\x38\x48\xf0\x55\x99\x65\x57\x22\x63\x49\x27\x1f\x79\x8c\xad\x78\x81\x1b\xb0\x28\xb3\x8c\x14\x48\x48\xb7\x7d\xf8\x9e\xa3\xf4\x73\x96\xdd\xd1\x95\x1a\x91\x4b\x58\x82\x1c\x91\x8b\xd9\xa5\xd0\x57\xd6\x06\xd8\xad\xdf\x66\x9e\xac\xed\x9c\xb0\x19\x79\x8d\x95\x7f\x34\xd1\x74\x8e\x16\x69\x1f\xa4\x3b\x32\x1b\xaa\x39\xa8\xbd\xd3\xef\x98\x7a\x4e\xd3\x6c\xf8\x29\xfd\x2d\x8e\x6e\x6e\xfe\xce\xa7\x36\x68\xaf\x66\x6c\x06\xc9\x2a\xc9\x9e\x8d\x61\x9e\x25\x98\x37\x51\xe3\x8c\x37\xd8\x89\x5a\x29\x0d\xb9\x87\x52\x45\x8b\x3c\xe3\x44\x82\x2a\x04\x57\x28\x18\xd7\x5c\xa2\x7a\x11\xeb\xe1\xe8\x98\xec\x10\xd1\x60\xdf\x59\x97\x0a\xd5\xa2\x0a\xa1\xf4\xb5\xa6\x52\x77\x95\x4f\x62\xa9\x4f\x57\x9e\x10\x73\x92\x13\x9a\x65\x46\x8a\xcc\x73\x48\x19\xd5\x46\xd5\xa1\x33\x8d\x00\xba\x2d\x1f\x54\x22\x01\xe7\xdd\xd7\x73\x59\x50\x9e\x66\x20\xc9\x8c\xb2\x4c\x75\xcf\xa9\xd9\xf0\x75\x69\x90\x39\xe3\xe8\x7c\xb2\xb1\xd9\xe8\xfc\x32\x7f\x25\x89\x90\xa9\x83\xaa\x65\x5a\xf9\xaf\x82\x98\xa8\x69\xef\x51\xb2\x6b\x6c\xef\xf5\xd0\x76\x32\xcd\x44\x72\xab\x48\xc9\x35\xcb\xec\xcb\x0b\x71\x8b\x2a\x5f\x86\xec\xa4\xf3\xd0\xdd\xb9\x54\xf5\xcf\x71\x75\xc0\xc6\x86\x2a\x75\xfa\xdb\xfa\x2b\xfc\xa0\x23\x71\x11\x0c\x0f\x31\xcc\x0e\xf0\x09\x92\x68\x28\xef\x6f\x3f\x41\xd2\xa8\xb1\x60\x56\x92\x22\x9b\x43\xc8\x55\x7a\x1b\xa1\x80\x6c\x6f\xea\x43\x06\x80\x23\x36\x5b\xec\x28\xb7\x73\x4b\x96\x2f\x0d\xe7\xa8\x24\x19\xe3\x60\xab\x20\x23\x7a\x22\x61\x58\x75\xba\x7d\x0c\xad\x8b\xda\x29\xe4\x24\x65\x12\xb1\xec\x57\x1e\xf6\x22\x98\x34\x4f\x0b\xc2\xbd\x0b\xa1\xc9\xf1\xd1\xe9\xd1\xc9\x46\xcc\xc1\x91\x11\xc4\x33\xb0\x77\xe0\xc4\x41\x34\x56\x2f\xa5\x58\x5e\x64\x2b\x7c\x8f\xa3\x74\x64\x94\xf3\x08\x61\x73\xe6\xea\x93\x25\xf7\xb3\xe2\x20\x25\x47\x44\x09\xa2\x25\xf5\x25\x5c\xec\xa7\xe6\x21\x2d\x4b\x77\x7b\x1f\x1f\xfd\x72\x34\x22\xa0\x93\x13\x72\x87\x95\xb4\xcd\xf4\x4d\xc8\x8d\x20\xa5\x0a\x9f\xb1\x8a\x90\x95\x28\xad\x31\x02\x97\xb0\xc8\x58\xc2\x74\xb6\xc2\xbb\x85\x88\x52\x5b\x44\x63\xaa\x43\xa0\x30\x9b\xed\xed\x27\xa6\x5d\x0a\xa5\x61\xd6\x2f\x71\x37\xd9\xfb\x89\x50\xa3\x79\x2c\xe1\x74\x01\x34\xd3\x0b\x9b\xe0\xc3\x05\x1f\xff\x13\xa4\x40\xb8\x4c\xee\xbe\xf9\xe2\xca\x91\x46\x0c\x50\x7b\xa4\xca\x1d\xe6\x8e\xfb\x06\x3a\xcb\x3f\x64\x9d\x1f\x7d\x7b\x73\x73\xf5\x0d\xe8\x35\x96\x6e\x46\xf1\x39\x5d\xe8\x9d\x00\x39\x13\x32\xef\x01\x6f\x8f\x13\x6c\x3e\x26\x85\x90\x7d\xb8\x62\x16\x42\x05\xad\x25\x79\x84\xfb\xe5\x5b\xa1\x34\x1a\x77\x9c\x16\xc2\x21\x31\x9b\xa0\x9d\xa0\xe4\xb2\x11\xc8\xc5\xd5\x84\xfc\x5d\x94\x66\x42\xa6\x74\x9a\xad\x2a\xb4\x7c\x05\xe1\x35\x68\x5f\x18\x52\x5e\x98\xeb\xc3\x6c\xc8\x6f\x81\xa6\x20\x15\x72\x67\xa0\x91\x6a\x80\x45\x38\xeb\x0d\xda\xa2\x2e\xe5\x79\xa9\xb4\xc8\xc9\xc2\xbd\x76\x1b\x47\xd3\x1d\xce\x09\x1e\x60\x0f\xa6\x26\xa1\xb0\x1c\xdc\xfd\xe6\x8b\xe3\xcf\x1b\xac\xcb\xce\xbb\xfb\x7c\x8a\x45\xbf\x92\xe6\xb4\x39\xef\x8f\x85\xe9\xe2\x76\xb2\xcc\x56\x8d\x10\x8f\xdd\xe3\x6a\xcb\x9d\x11\x36\xd7\x3b\x42\x4f\x58\x70\x4f\x71\x6b\x2d\xc7\x49\x3d\x21\x8f\x56\x5b\xd6\x48\xb3\x6e\xf3\x59\x6b\x73\x77\x3b\xf9\xb6\xce\x99\xaa\xc2\x5f\x13\xca\x05\x67\x09\xcd\xd8\x3f\x21\x25\x65\x21\xb8\xcb\x35\x45\xb1\x36\xa1\x0a\xc6\x18\xf7\xcb\xb5\x2b\x78\x57\x63\x3d\x1a\xee\xa0\x85\x40\x59\x0f\xa3\x1c\x0d\xbb\xb7\x54\xf7\xb7\xa4\xf0\x23\xac\xfa\xc6\x62\xc5\xd9\xf1\xe4\xb3\x90\x25\x89\x4d\x12\x0e\x06\xa8\xd8\x84\xa7\xd0\x82\xd0\x24\x41\x34\x4b\x7b\x5d\x21\xe3\x55\x20\x97\xe1\xfb\x2b\xda\xbc\x1a\x11\xb0\x6f\xb2\x97\x0d\xc8\x90\x84\x97\xf9\x14\x64\x8d\xed\x23\xf5\xe6\x9c\x06\x86\xf0\xb7\x86\xb5\xc3\x79\x7f\xac\x97\x31\x28\x9f\x03\x79\x65\x46\xfe\xd3\x1f\xff\xf8\x87\x3f\x46\x18\xc7\xbc\x5e\x95\x1a\xc0\xc9\xc5\xd9\xe5\xd9\x4f\xd7\x1f\xcf\x11\x6c\x35\xb4\xfb\x48\x49\xe3\xb1\x53\xc6\xa3\x26\x8c\x3f\x6a\xba\x38\x62\xef\x04\x73\xd9\xd8\x47\xe2\x1a\xa9\x32\x9b\xb0\x54\x16\xa0\xd5\xe9\x24\x8d\x92\x6b\x46\x8d\x0a\xdf\x9d\x4d\xb7\x9d\x61\x58\xbd\xe0\x54\x2a\x03\x28\xa2\xa9\xfb\xd7\xa6\xb7\xf5\x14\x87\xb4\x94\xb6\xf8\x59\xe5\xa8\xaa\xed\xf6\xce\x41\x85\x54\x90\x29\xcc\x84\x04\x32\x05\x9c\xfa\xca\xcb\xf0\x05\x99\x05\x14\x24\x82\xa7\x21\xca\x41\x2c\x61\xd7\x51\x12\xf5\x34\x5e\xdb\x3e\xbd\xe5\xb8\xbe\x64\xdc\x60\xa8\x63\x9a\x95\x8e\xb3\xf3\xe3\x70\x50\x8b\x9b\x82\xbd\xfd\xe9\xdf\xba\x3b\xc9\x92\xe2\x5a\x24\xb7\x11\x2d\x67\x81\xac\xed\x8d\x39\x83\x89\xf5\x07\xde\x9c\x5f\x59\xe2\xcc\xca\x5c\xbe\xbf\xa9\x41\x92\x30\xb3\x8d\x7c\xef\xfd\x53\xdf\x3a\x8f\x21\xe5\x29\xb9\x85\x22\x4c\xef\xf4\x58\xd7\x3e\x02\xb3\x1d\x80\x39\x71\x55\x23\xa9\x04\xc2\x85\x45\x23\xb0\x5c\xc2\x47\x4e\x5a\x81\x39\x0c\x1e\xbf\xe1\xa5\x47\x8f\xa0\xd3\x51\x66\x94\x65\xe8\x0f\x2f\xb9\x66\x39\xb8\x9c\xbe\xa4\xa8\x5c\xa6\xcd\xf8\x89\x2f\x88\xfd\x7c\xa9\x56\xc9\xa3\xf7\x3e\xae\xf0\x60\xeb\x62\x28\x9a\xcc\x97\xad\x2e\x38\x0e\x6e\x61\xb8\x06\x75\xe1\x90\x36\xa8\x0b\x1d\xd5\x85\x42\xc2\xb5\x16\x9d\x65\xd2\x68\x21\x38\x96\x8c\x1d\x01\x38\x4e\x54\xa5\x3b\x23\x63\x5c\xfa\x41\x40\xac\xf0\xd9\xd5\x45\xe5\x23\x13\xad\xe8\x17\x9b\x88\xae\xca\x64\xe1\x7d\xa9\x1c\x94\x3a\xc5\x58\x9b\xb2\xb0\x06\x68\xbc\xe3\x4a\x09\xdd\xe3\x7e\x0a\x09\x90\xe3\x3c\x8e\x6a\x14\x2e\xf3\xba\xc0\xed\x87\xa0\x13\xeb\x5c\x6f\xdc\x9a\x58\x5b\xda\x4d\x57\x58\x8d\xf7\x7a\x62\x13\x49\xd5\x02\xb0\xc0\x08\x7c\x62\x5a\xd9\x41\xaf\x10\xab\xca\xcf\xb8\x11\x1c\xe6\x92\x26\x40\x0a\x90\x4c\x18\x61\xa3\xe4\x3a\x15\x77\x9c\x4c\x61\xce\xb8\xf2\x2b\x16\x42\x92\xdf\x12\x18\x5b\xc4\x54\x55\x48\x72\x42\x3e\xb4\xea\xab\x38\x54\xbe\x44\xd4\x3c\xd3\x4d\xd1\x28\xd2\x94\xa0\x14\x83\xdb\xa0\xc4\xd2\xe8\xd5\xc6\xf3\x40\x09\x7a\xf7\x0c\x75\xdf\x10\x76\x66\x8f\x4b\x8e\x2f\x9a\x42\x46\x57\x16\x12\x60\xc6\x38\x5a\x89\xa5\x3a\x99\x84\x07\x6b\x75\x26\x50\xc8\x46\x9f\x3b\x77\x06\x53\x44\x02\x4d\x16\x21\x92\xdd\x10\x15\xf6\x50\x1b\xa2\xc2\x3a\xb6\x21\x2a\xec\xd0\x36\x44\x85\x1d\xda\x86\xa8\xb0\x3e\x45\x1d\xf4\xdf\x93\x37\x44\x85\x0d\xf6\x97\xb5\x36\x44\x85\x75\x6a\x43\x54\xd8\x83\xad\x77\xfc\x79\x88\x0a\xdb\xa3\x0d\x51\x61\x7b\xb6\x21\x2a\x6c\x88\x0a\x1b\xa2\xc2\x86\xa8\xb0\x80\x36\x44\x85\x1d\xfe\x7a\x83\x9b\xa7\x7b\x1b\xa2\xc2\x86\xa8\xb0\x03\xdb\x10\x15\xb6\x77\x1b\xa2\xc2\x86\xa8\xb0\xfb\xda\x10\x15\x36\x44\x85\x6d\x6d\x83\x55\x72\xa3\x0d\x51\x61\x5b\xda\x10\x15\x76\xd8\x38\x83\xba\x10\xd6\x59\x74\x75\xc1\x47\x38\x5d\x49\x31\x7d\x36\xb4\xad\x2b\x8c\x1e\x61\x89\x0b\xaf\x12\xb3\x16\x82\x96\x25\xb0\x23\x72\x56\x3b\xac\x07\x0b\x8f\x78\x48\x25\xe6\x0e\x57\x15\xd2\xf5\x9c\xe8\x5c\x07\xc7\xbd\x78\xd4\x41\x75\x5a\x08\xfb\x7f\x75\xd4\x4b\x23\xdc\xa5\xb3\x6d\xfc\x99\xe1\xc2\x42\x62\x5c\x9e\x26\xbe\xa5\x27\xc1\x40\x11\x62\x5a\x62\x5e\x62\x3d\x8d\x65\xe9\x67\x1c\x4b\x1f\x63\x58\x9e\x23\x7e\xe5\xd9\x63\x57\xe2\xf8\x45\x23\xf8\x44\x23\x89\x0a\x8f\xe0\x5f\x70\x31\xcf\x37\x0b\x09\x6a\x21\xb2\xce\x0c\x27\x16\xb3\x79\xc7\x38\xcb\xcb\xdc\x9c\x5d\x65\x78\x0a\x5b\x56\x71\xd9\xaa\xd2\x84\xed\xdd\x6e\x5d\xc6\xe6\x41\x96\x02\x56\x3a\xa7\x2c\x33\x5b\x0b\x91\x1e\x17\x74\x69\xf8\x8d\x2a\x93\x04\x20\x0d\xd1\x3e\x9b\xe6\xc6\x3f\x4c\x2a\x0a\x2d\x26\x3d\x53\xe4\x55\xd8\x55\x13\x26\x90\x36\xac\x2e\x7f\xf8\x7d\xa7\x3e\xe6\xb2\x88\x73\x25\x7f\xf3\xe1\xea\xbc\x71\x25\x53\xee\x6f\x64\xc6\x97\x22\xc3\xd5\xa0\xf6\x21\xa3\xf8\x3c\xe3\xfd\x1c\x6e\x05\x08\xb2\x00\xc4\x10\x0f\x42\x95\xdc\xb6\x2b\xd0\xe8\xa1\x6d\x4f\xd6\x1c\xd7\x12\xe4\x92\x25\x30\x79\x02\x3d\x32\x96\x6e\x16\x7e\x1c\x08\xda\x74\xf1\xc5\xfb\x22\x7c\x5d\x5b\x72\x2a\x73\x70\xc3\x84\xe0\x28\xc5\xd8\xbf\x8c\x26\xd5\xda\xe0\xfa\x7d\x8b\x37\xe8\xf9\x02\x92\xdb\x0f\x36\x0c\x29\x88\x8c\x63\x05\xb0\xad\x2a\x83\x61\x20\xf6\xff\xa6\x99\x98\x9e\xe6\x54\x69\x90\x46\xad\x71\x97\xfb\x38\x31\x14\x30\x3e\x9f\xe4\xe9\xc9\xe4\x37\xbf\x09\x22\xe2\xc2\x19\x35\x5d\xe2\x4c\x03\xb2\x1b\x3d\x24\x0e\x0f\x7e\x0a\x86\xfd\x0b\xb4\x3f\x36\xea\x30\x9a\x59\x09\xdf\xa5\x01\xd7\x78\x60\x54\xe8\xd3\x47\x84\x0e\xdc\x96\x44\xb0\xb3\xc6\x64\x06\xfd\x88\xfa\x7c\xb4\x88\xcf\x28\x92\x72\xa4\x48\xcf\x1e\x45\x79\xf6\x46\x93\xe9\x4b\x64\x67\xb4\xa8\xce\x58\x11\x9d\x51\xa2\x39\x63\x44\x72\xc6\x8b\xe2\x8c\x13\xc1\x19\x3f\x7a\xf3\xd1\x22\x37\x3f\x8b\xa8\xcd\x88\x6e\x87\x48\xd1\x9a\x4f\x11\xa9\xd9\x5f\x0b\x0a\x89\x10\x9d\xf9\x74\x91\x99\x51\xe6\x31\xaa\xf6\x19\xc8\x12\x9e\x21\x12\xf3\x29\xdc\xaa\x8f\xe6\x52\x8d\xe0\x4e\x8d\xe9\x4a\x8d\xe6\x46\x7d\xb4\x88\xcb\xf0\x68\xcb\xa8\xb6\x80\x27\x89\xb2\x8c\x19\x61\x19\xbc\xbe\x8c\x33\xcd\x68\xf6\x06\x32\xba\xba\x0e\x8b\xb6\x8b\xb5\x12\x97\x1b\x11\x79\xd6\xe8\xdc\x8e\xc9\x5c\x50\x45\xbc\x57\xda\x85\x64\x7a\xb7\xb7\x13\x81\x31\x6a\xcb\xbe\x5f\x50\x7c\x66\xcf\x9c\xcc\xa4\x37\xc6\x6d\x0b\x60\xd1\x93\x5d\xf3\xad\xb8\x23\x62\xa6\x81\x93\x63\xc6\xfd\xce\x39\x69\x58\x69\x6a\xe7\x46\xb0\xb7\xc2\xf4\xfa\xea\xa5\x1f\xe4\xcb\xf3\x5a\xa0\x5f\x47\xa9\x5e\xfb\xad\x1c\x8d\x0f\x3b\xae\xdc\x83\xb3\x32\x6b\x3b\xaf\xac\x43\x2b\x8e\xe7\xea\x55\x5d\xab\xfc\x15\xd2\x53\xb1\x22\xca\x53\xe2\x80\x90\xbe\xbc\x7d\x12\x1c\x4f\xdc\x56\x6e\xaa\x00\xe0\x87\xfc\x5c\x37\xe7\x57\x83\x9b\xab\x5f\x86\xd7\x67\x0a\x6e\xfd\xf2\x34\xae\xa7\x0f\x66\x1d\x34\xae\x5f\x8b\xc6\xd5\xc0\x20\xfb\x46\xd2\x04\xae\xfa\x24\xc0\x79\x06\x52\x67\x62\xd5\x72\x5c\xc5\x2e\x38\x80\xcd\xd0\xa9\x11\xe6\x10\x4c\x6d\x56\x66\xd9\xca\xda\x11\x5b\x70\x83\xdd\xb7\xd6\xcd\x02\x36\x70\xda\x5a\x79\x62\x0d\xea\x6a\xfd\xa4\x90\xc2\x49\x25\xb2\xe4\xdc\xdc\x56\xee\x38\x19\xe2\x8d\x3e\xa2\x80\x77\x37\xa9\xd3\x16\x8a\x9c\x62\x73\x33\x5d\x46\xc2\x40\x80\xb9\x3a\x47\xa4\x45\x88\x19\x75\x26\x64\xc2\xa6\xd9\x8a\x2c\x68\x66\x14\xa6\x3b\xa6\x17\x84\x92\x5b\x96\x65\xae\x9b\xee\x13\x75\x0d\xda\x7a\x8d\xad\x54\x93\x09\x3e\xc7\xc9\xa0\x96\x10\xf8\x54\x40\x62\xc6\x4c\x32\xa0\xbc\x2c\x2c\x9d\x46\x46\x5a\x89\x52\x7a\x3a\xbb\x0f\xef\x7d\xd6\x95\x4c\xc5\x59\x36\xf2\x53\xde\xc6\x1b\xdc\xdc\xf3\xb5\x59\x59\x41\xea\xa0\x02\xef\x98\x82\x11\xf6\xd9\x99\x26\x4b\x8b\x2f\x9a\x6e\xf7\x8d\xfd\xac\x90\x62\xc9\x52\xeb\x30\xf7\xdb\xc2\x48\x3b\xdd\xdf\xff\x23\xf6\xeb\x59\x2b\x17\x7c\xcc\x61\x4e\x51\x44\x76\x0c\xcd\xc6\x64\xda\xf1\x6d\x04\x20\x4f\x59\x42\x35\x18\x05\x5a\x14\x2d\x1c\xd1\x25\xa3\x9d\x29\x31\xef\xd3\xd8\x51\xe4\x98\x0b\x22\x30\x85\xab\xe4\x4c\xaf\xd0\xab\xb7\x28\x35\x49\xc5\x1d\x3f\x09\x39\x98\x36\x42\x81\x92\x29\x68\x5a\x27\x60\x79\x91\x4c\x11\xe0\x74\x9a\x99\xb3\x87\x01\xfa\x37\x5b\x37\x00\x99\x01\xd5\xa5\x04\x32\xa7\x3a\x80\x4b\x6c\x91\xe8\xed\x7a\xde\xbf\xed\x98\x72\x3e\xbb\x19\x29\xb9\x82\x40\x41\x36\x9a\x1a\xd0\x31\xb5\xd0\x9c\x68\x51\xea\x9e\xdc\x23\xbb\xcc\x47\x77\x0b\x96\x2c\x9a\x8a\x22\xcb\x41\x11\x51\x06\x58\xf3\x5a\x2a\xa0\x1b\x2e\xa6\x96\x37\xd8\x9e\xb6\xb6\xae\xae\xd3\x18\x3b\xec\xb2\x21\x95\x37\x12\xc4\x7d\xa4\x94\x4d\x55\x7d\x73\x79\xfd\xd3\xf7\x67\xff\xf3\xed\xf7\xdd\x16\xfe\x2d\x4d\x16\x4d\x20\x67\x4e\x28\x5e\x14\xc8\xe4\x17\x74\x09\x84\x92\x92\xb3\xff\x2e\x5d\xb8\xda\x71\x35\x5e\x47\xb6\x1a\xb1\x56\x7e\x47\xc1\xd7\xdc\x12\x9d\x38\x47\x8c\x35\xfd\x9e\x29\x44\x05\x46\x22\x5c\xe8\xbe\x50\x40\x66\x52\xe4\x6b\x8a\x16\xb9\xac\xe2\xe2\x56\xd6\x16\x81\xaa\xd9\x02\x64\x37\x89\xfc\xcd\xfb\xb7\xd7\x98\xec\x5c\x48\x8b\xa2\x8d\xe9\x01\xd8\x27\x8e\x6e\x51\x06\x2c\x3d\xe9\x84\x9c\xf1\x95\xfd\xd2\x32\xb3\x8e\x22\x4a\xc6\x94\x06\x14\x4e\x9d\x22\xe9\x23\xfb\x5e\xbc\x9c\xe0\xff\x5e\x10\x9a\xa6\xd2\x68\x9a\x55\x96\x45\xb2\x9e\x14\xd6\x69\x64\xab\xbf\xb2\x69\xd6\x98\x5c\x0e\x1a\x13\x31\x3a\x75\xf8\x4e\xa4\x6e\x25\x50\x08\xc4\x18\x1e\x2b\xdd\x2a\x2d\xa9\x86\x39\x4b\x48\x0e\x72\x0e\xa4\xa0\x3a\x59\x90\x9c\xae\x48\x22\xa4\x2c\x0b\x8b\xf1\x90\x52\x4d\xbb\x8d\xfc\xb5\x90\x24\xf7\xdc\xd9\x70\x33\x23\x92\x5f\x6f\x0f\xe2\xac\x59\x76\xf3\x9f\x4c\xa9\x12\xd4\xe9\xab\x97\x7f\xfe\xfd\x1f\x3b\xaa\xd7\x11\x0f\x6e\xd7\xf0\xa7\x80\xb0\xa7\x76\x08\x98\xdf\x60\x18\x30\xdd\x00\xe7\xa0\x7e\x87\xd8\x9d\x8f\xdc\x50\x31\x3e\xcf\x82\x0d\x20\xc1\x66\xc0\x50\x23\xe0\xb8\x7e\x83\xab\xae\xb6\xc0\x70\x4b\x60\x8b\x86\xee\xa6\x94\x78\x56\xb0\x5a\x82\xf3\x76\x2f\xc7\x90\x05\x6f\x28\x76\x17\x57\x9e\x4b\x85\xd8\x8f\x50\x9b\xa8\x0c\x53\x16\xe1\xc1\x0e\x6b\x63\x1e\x46\xe4\x25\xf9\x0f\xf2\x89\xfc\x07\x5a\xc1\xfe\xd4\x7d\xa8\x38\x36\xa6\x18\x21\xf8\x0b\xa1\xf4\xc5\x55\xa4\x85\xfe\x9b\xb9\xaf\x4c\x8f\x66\x3d\xb4\x20\x53\xe6\xcc\x11\xf0\x49\x83\x34\x6a\xa0\x5b\xc3\xd0\x99\x0b\xb2\xa8\x19\x02\x3f\x97\xdd\x1d\x1a\x60\x70\x31\x6b\x07\xee\x3f\xd1\xfe\xc6\x81\xbf\x15\x4a\x5f\x3a\x6e\xdd\x44\x27\x69\xd2\x91\xe3\x45\xdc\x62\xf7\x21\xa3\xbe\x33\x7b\xaf\x2e\x68\x40\x52\x81\xb9\x0b\x36\x0b\x73\xc1\x02\x98\x43\x7f\x4e\x6c\x58\xac\x68\xbc\xad\x7b\xdf\xd6\x5a\xb3\xe9\xa3\x45\xc6\x29\x29\x8d\x1a\x20\x85\x48\x27\xa8\xdf\x04\x50\x61\x66\x23\x6d\x08\x03\xf7\xa8\x46\x13\xab\xaf\x55\x1e\x62\x3c\x70\x86\x63\x25\x94\x77\x95\x61\x6d\x93\x30\x03\x29\x6d\xa6\xef\x74\xe5\x53\x85\x82\x77\x5b\x10\x97\x2b\xa4\xd0\x22\x11\x59\x1f\xb6\xca\x95\xa3\x05\xe7\x1e\x7d\xb5\x95\x87\xfc\xaf\x6f\xae\x46\xe4\xe6\xfc\x6a\x44\x84\x24\xd7\xe7\x61\x01\x50\x4d\x13\xcc\x8b\x9b\xf3\xab\x17\xcf\xba\x02\xc4\xab\x52\xe8\xcd\xee\xd0\xc9\x66\x08\x6d\x4e\x8b\xf1\x2d\xac\x3a\x4a\x77\x31\x24\xcc\x71\xb5\xb1\xa2\xbc\x90\x9d\xe6\x9c\x16\x07\xf7\x26\x81\xa6\xac\xd7\xc0\x2b\x3e\x63\xb0\xa2\x34\x1e\x02\x4b\x2e\x96\x90\x5a\xad\xd9\x8f\x02\x3c\x2d\x04\x33\x3a\xd2\x00\xcb\x72\x5f\x1b\x60\x59\x1e\x68\x03\x2c\xcb\xb6\x36\xc0\xb2\x1c\xd0\x06\x58\x16\xdb\x06\x58\x96\x36\x21\x7d\x4c\x2a\x1a\x60\x59\x1e\x6c\x03\x2c\xcb\xce\x36\xc0\xb2\x74\x68\x03\x2c\xcb\x66\x1b\x60\x59\xee\x69\x03\x2c\x4b\xdd\x06\x58\x96\x01\x96\xe5\xa0\xd6\xbb\xec\x80\x01\x96\xe5\xbe\x36\xc0\xb2\x6c\x6d\xbd\xd1\x64\x06\x58\x96\x1d\x6d\x80\x65\xd9\xd1\x06\x58\x96\x01\x96\x65\x80\x65\xb9\xbf\x0d\xb0\x2c\x9d\xdb\x00\xcb\x72\x58\x1b\x92\x04\x0f\x6c\x03\x2c\xcb\x00\xcb\xb2\xde\x06\x58\x96\x07\x5b\x3f\x8c\xdb\x03\x2c\xcb\x00\xcb\x72\x6f\x1b\x60\x59\x06\x58\x96\x7b\xdb\x00\xcb\xf2\xa5\x18\x5e\x07\x58\x96\x01\x96\xe5\xbe\x31\x06\x8d\xeb\xb0\x36\xc0\xb2\x0c\xb0\x2c\x1b\x6d\x80\x65\xd9\x6c\x03\x2c\xcb\x00\xcb\x32\xc0\xb2\x0c\xb0\x2c\x55\x1b\x60\x59\xbe\x74\xdb\x93\x04\xc5\xfe\x09\x57\x22\x63\xc9\x2a\x38\x39\xe7\x03\x28\x51\xca\xc4\xdc\xd8\xd8\x2d\x29\xb0\xdf\xca\xaa\x10\x24\x64\xf7\x0c\xf1\xe0\x43\x63\xe2\x9a\xc8\x07\xd2\xcd\xc1\x63\x4c\x41\x2f\xd0\x0f\xfc\x0b\x5e\x76\x8f\x22\x18\xfb\xe2\xd4\x76\xfa\xba\x19\x4c\x83\xb5\xf6\xe6\x8b\xf4\x21\xfb\xb2\x89\x52\x54\xed\x22\x2d\x2a\x66\xcb\x76\x6e\x2e\x5a\x14\x19\x0b\xc9\x63\x25\xe4\xba\x44\xe9\x02\x9c\x1b\x5c\xbd\x26\x49\x51\x8e\x48\x0e\xb9\x90\x01\xa9\x0d\x11\x34\xb8\xd6\x56\xe9\xc3\x3a\x7d\xb0\x04\xf9\xc9\xd7\x02\xe7\x7f\x65\xf5\x85\x1a\x54\xaa\x5a\x2b\xe6\xd9\x61\x50\xbc\xd9\xc5\x6c\x3d\x8e\x94\xe9\x96\x15\xe8\x52\xe8\x0f\xee\x70\x3f\xdb\x7a\x45\x8e\x5a\xf0\x53\xf8\x6c\x20\x53\xe7\x22\x2f\x4a\x0d\xad\x8b\xcd\x4e\xb1\x55\x3a\x98\x0a\x65\xe8\xcf\x93\xbc\x99\x08\x3e\x63\x73\xa7\x7d\x9f\xe6\x94\xd3\x39\x8c\xab\xd9\x1e\xd7\xc8\x0c\xa7\x9d\x2f\xea\x67\xcb\xdc\x4c\x32\xca\xba\x07\x0f\xc6\x62\x13\xe7\x48\x05\xa2\x76\xd5\xc1\xf0\x98\x5d\x56\x4d\xf3\xa8\x8a\xf8\x66\x96\x6f\x4c\xfc\x57\xf6\xc7\xa3\x00\xed\x91\x6a\xb4\x55\xa0\x62\xb4\x65\xa7\x76\x0f\x6d\xaf\x34\x46\x4e\x68\x56\x2c\xee\xd7\x19\x43\xb2\x26\xdf\xac\x38\xcd\x59\xe2\x4f\xde\x59\x96\x89\xc4\xda\x6a\xda\xda\x66\xe0\xab\x58\xf2\xcd\x3b\xe5\x79\xa9\xe9\x34\x83\x09\xb9\xb0\x50\x13\x82\x67\x2b\x73\x30\x15\x68\x1f\xbf\xe0\x4e\x45\x98\x8a\x19\x12\x1c\x1b\x18\x18\xbb\x55\x5a\xc7\xdd\x66\xb1\x31\x80\x1b\x1e\x27\x38\x10\xe0\x5a\xae\xcc\xc6\xbc\x12\xe9\xb5\xd9\x9b\xad\xa7\x83\x21\x33\x02\xe3\x61\x63\xc4\xc2\x06\xc6\xc1\xc6\x89\x5e\x0d\x8f\x5c\x8d\x1b\xb5\x5a\xfb\x16\x2c\xe2\x4f\x33\x8d\xa7\xb5\x2d\x0a\x91\x4e\xb6\xf0\x2c\x22\x66\x81\x14\x98\x11\xaf\x44\x6a\xa4\x29\x09\x96\x71\x55\x67\xd4\x5a\x16\x2f\x0c\x71\xb7\x68\x0a\xa4\xba\x16\xb3\xe8\x92\xb2\xcc\x1c\xe0\x40\x02\x36\xd1\x13\xc3\xdc\x35\x11\x44\xe0\xd8\x00\x23\x24\x74\xfb\xc7\x04\x08\x21\x08\x6e\x99\xb3\x6e\x50\xa2\x24\xe2\x11\xf8\x1e\xa9\x68\x64\x08\x98\xbd\x98\xd3\x4f\x68\x81\xa2\xb9\x28\xb9\xb6\xc8\x21\x56\x28\xac\x2e\x72\x9b\x47\xf1\x84\x61\x51\x8f\x2a\xbe\x91\x38\x4c\x9a\xa6\x1e\x3f\xe0\x2a\x46\x1a\x29\xd5\x1a\x24\x7f\x4d\xfe\xd7\xf1\x3f\x7e\xf7\xcb\xf8\xe4\x2f\xc7\xc7\x3f\xbc\x1c\xff\xfb\x8f\xbf\x3b\xfe\xc7\x04\xff\xf1\xaf\x27\x7f\x39\xf9\xc5\xff\xf1\xbb\x93\x93\xe3\xe3\x1f\xbe\x7b\xf7\xcd\xcd\xd5\xdb\x1f\xd9\xc9\x2f\x3f\xf0\x32\xbf\xb5\x7f\xfd\x72\xfc\x03\xbc\xfd\x71\xcf\x4e\x4e\x4e\xfe\xf2\x55\x77\x07\x53\xa8\x37\x35\x9e\x2f\x35\x92\x27\xf5\x51\xfc\xa8\x2e\x23\xe9\xd9\x0f\xbf\x4b\x3c\xdd\x38\xfe\xce\x00\x7d\xdf\xf1\x97\xc1\x6a\xf7\xc5\xac\x1e\x9f\x29\x22\x72\xa6\x35\xa4\x28\x75\xd2\x26\x40\xc9\x9a\xca\xef\x18\x16\x02\x09\x51\x6d\x7e\xd9\x00\xca\xa8\x2d\x05\x9d\xc9\x12\xde\x87\x87\x46\x0e\x4e\x58\x5e\x64\x90\x03\xd7\xc8\x78\xc6\x5e\x7d\x41\x8b\xd1\xa4\x7e\x83\xc4\xea\xb4\xf0\x29\x01\x48\x1d\x91\x03\x6f\x6c\xb4\x81\x37\x0e\xbc\xf1\xa1\x16\x6c\xf6\x8c\xc1\x18\x3f\x34\x89\x70\xe6\x0a\xe5\x0d\xd4\x68\x04\xad\x12\xd8\xc5\x0c\x7d\xe1\x4b\x96\x96\x34\x6b\x62\x7b\x7a\xb8\xc7\x6e\x1c\xa0\xa1\xa4\xe7\x74\xb5\xa1\x93\x33\xce\x9a\x40\xa2\xa3\x2a\x82\x03\x1f\x74\x72\x59\xed\x3d\x7c\x71\x96\xdd\xd1\x95\xea\x88\x37\xf8\xb5\x90\x18\x14\xb0\x36\x28\x11\xd2\xc7\x8a\x34\x95\x95\xb6\xb5\xb6\x9b\xb7\x67\xdb\x44\xb7\x91\x02\x9c\xba\x74\xa4\xaa\x07\xbd\x4f\xc0\x4d\x44\x1d\xe5\x6f\xf6\x79\xb7\x17\xbf\x06\xad\x9d\x3d\x67\x6d\x4b\xd0\x7a\x4e\x2b\x17\x57\x7b\x7a\x6c\x58\x08\xa2\x7c\x9a\x2f\x67\xc2\xac\x09\xe2\xe3\xcf\x66\x90\x74\x8c\x15\xb4\xc8\x0a\x5b\xc6\xb1\xe1\xca\x9a\xf1\x92\x66\xd9\xca\xcf\x09\xa4\x44\xf0\x4e\x03\xc1\x27\xa6\x49\xc9\x35\xcb\xcc\x66\x22\x12\xe6\x65\x46\x9b\xa6\x20\xf7\x66\x3e\x82\x2a\x9d\x90\xf7\xdc\x28\xa3\xf5\xc3\xdd\x8c\x98\x6b\x03\x18\xa1\x23\x03\x0d\xe9\x08\xbb\x5e\xdf\x81\x18\x83\xd4\xe2\x18\xd5\xb2\x74\x1a\xde\xcf\x65\x15\x63\x32\xb1\x07\xb1\x72\x80\x93\x94\xcd\x66\x66\x64\xc4\x36\xe4\x42\xe6\x74\x93\x2a\xca\xd3\x4e\xa3\x1b\x09\x08\xb3\x0f\x9a\x78\xad\x58\xa3\xe3\x85\x51\xcd\x13\x2a\x5f\x34\xab\x3b\x9c\x65\x7a\x21\xca\xf9\xa2\xde\x15\x61\x53\x4e\x94\xc6\xc8\x1b\x33\x99\xca\xc7\x9c\xad\x6d\x36\x65\x64\x1d\x9e\x80\x15\xc9\x04\xd8\xe3\x7e\x47\x3b\x8e\xbd\xe1\x1d\xb6\xe1\xbe\x76\xcd\x7d\x4a\x0e\x86\x77\x41\xda\xc8\x9f\xe2\xf0\x49\x47\x78\xe1\x09\xb9\xb0\x78\x08\xa3\x76\xaf\xad\x29\xb1\x93\xd1\x08\x6f\xf2\x81\x7a\x1d\x63\xbb\xd6\x06\x60\x55\x06\x12\x22\xcc\xda\xce\x29\x5f\xf9\x80\x7f\x0c\x3f\xb2\x89\x4a\x55\x0e\x42\xd6\xcd\x8a\x5a\x9d\xa5\x27\x2f\x98\xa2\x20\x29\x25\xd3\xab\x73\xc1\x35\x7c\xea\xc4\xfb\x62\xdc\xea\xd7\x6d\x32\x5a\xf7\xba\x27\x91\x88\xc2\x22\xfd\xad\xd5\xcc\x59\x88\x32\x4b\x11\xdc\xb4\xe4\xc8\x76\xba\xdd\x28\x17\x33\x73\x85\xdb\xfd\x86\x37\x26\xba\x46\xd6\x09\xf3\x51\x7f\x36\xf8\xf1\xbf\x4b\xb6\xa4\x19\x70\xdd\xf8\xc5\x15\xc6\x81\x35\x7f\xf4\x98\xfe\x33\x4d\xd5\x6d\xad\x61\xc0\xb8\x10\x69\xad\x50\x9c\xfa\xa9\xc3\x8f\xe0\x93\xfe\x0c\x7d\x67\x28\x30\x5d\x49\xb6\x64\x19\xcc\xe1\xad\x4a\x68\x86\x7a\xd4\x73\x2b\xe7\x67\x3b\xe8\xc2\x9d\x29\x45\xa6\x8c\x00\x66\x94\x55\x23\x6a\xda\x28\x58\x74\xe1\xcc\x29\xe3\x58\xf0\x25\xc0\xcc\xef\x06\x55\x36\x0c\xd7\xe8\xdb\x05\x95\x66\x17\xfa\x70\x5b\x7b\x35\x4e\x85\xc8\x1c\x68\x68\xb6\xaa\xe9\x62\xdd\xed\xe1\xc8\x8b\xc5\x4f\x1c\xee\x7e\x32\x54\x28\x32\xcb\xe8\xbc\xbe\x9a\x41\x6f\xe4\x2e\x84\x47\x00\xef\x9c\x68\x44\xc4\x2c\x8d\x60\x63\xa4\x8a\x3a\x36\xba\xc9\xc1\xbb\x2b\x74\xaf\x4e\x90\x9f\x50\x45\xaa\xb1\xbb\x89\x0e\xa6\xfd\xfe\x04\xef\x89\xf3\xb3\xab\x9f\xae\xff\x7e\xfd\xd3\xd9\x9b\x77\x17\x97\xdd\x23\x20\x85\x06\x6b\x5d\x69\x48\xf7\x49\xe5\xb4\x37\xab\x50\xc5\x7d\x4c\x84\x9a\xa0\xb3\x04\xc1\x39\x78\x2a\xee\x02\x3d\x85\x66\x4f\x01\xed\x26\xb9\xd2\xa2\x38\x93\xb9\x90\x57\x52\xcc\x58\xd6\xd9\xc9\x14\xeb\x04\xaf\x91\xe3\x33\x00\xce\xdc\xc7\xf5\x75\x63\xf3\xc5\x37\x7d\xd6\x8d\x2b\x83\x61\x56\xb2\xe9\xa6\xbb\x65\xab\x15\x4f\x6e\xa3\xdb\xd7\x48\xec\x7e\x88\x9e\x75\xcf\x3c\x7b\x26\x9e\x21\xa3\xe3\xcf\x63\xf8\x54\x33\x91\xd0\x0c\x4b\xc7\x84\x6d\x7c\x12\xd9\xb7\xba\x4e\x57\x23\x73\x80\xfa\xed\x4c\x32\x41\x53\x54\x56\x1d\xf3\x4f\xc1\x63\x1c\x7b\xb1\x0b\x5d\xa0\x41\x84\xdc\xd8\xa8\x6d\x1c\xcf\xa7\x3a\x14\x12\x2a\xa9\x66\x6d\x78\x41\xba\x17\x7a\xf3\xed\x5d\xdb\xa1\xec\xde\xb2\x95\x94\x17\x7a\xe6\xaa\x61\xdc\x01\x63\x33\xb4\x80\xa0\x19\x88\xcd\x70\x53\xa2\x01\xe8\x7b\xbf\x0c\x01\x35\x27\x22\xa5\x4a\x62\x27\x3d\xd9\x9d\x76\x7e\xaa\x1d\x69\x43\x4e\x6f\x99\x99\xc1\x59\xcd\xa4\xfd\xb6\xf1\x32\x88\x8d\x3b\x0d\xdc\x8f\x1f\xb1\xba\x91\xe7\xff\x54\x06\xe3\x3c\x55\x4b\x4c\xc6\x8d\xa3\x55\x48\x18\x6f\x1e\xaf\x50\x94\xab\x0f\x25\xd7\x2c\x07\x8f\x65\x30\x5e\x93\x89\xa4\xfd\xfa\x48\x55\x80\x9f\x51\x36\x3a\x21\x7f\xe5\x78\x5e\x39\xa4\x64\x4c\xb8\xa8\x97\x08\xf8\x4c\xc8\x04\x9d\x34\xcf\xba\xc1\x13\x5a\xd0\x29\xcb\x58\x08\x33\x8f\xb5\xc1\x11\x46\xbf\x41\x0f\x9a\x93\xd2\xf4\x34\x95\xa2\xb0\x37\xb1\x4f\x30\x0c\x0f\xf1\x6a\x27\xb2\x34\xa1\x5e\x51\x60\x9f\xb5\x09\x99\x4b\xca\x75\x6d\xc8\xdd\xd8\x38\xbf\x46\x19\x24\x86\x10\x40\xd3\x78\x05\x29\xce\x52\xc3\x33\x9a\xcb\x16\x7c\xae\xfa\x06\x8f\x79\xee\x5f\xae\x91\xc9\x42\xae\xde\x5f\x5f\xfc\x7f\x6b\xe7\xa6\xbb\x68\x67\x5b\xbf\xc1\xf1\x0c\x3f\x88\xb6\x6d\x3e\xb8\xe2\x3f\xc3\xc6\xf9\xb2\x37\x4e\x65\x20\x7a\x76\x64\x9f\x0f\x25\x6f\x17\x20\xaf\x49\x23\x79\x90\xac\x73\x55\x25\xc0\xb7\x7b\x6d\xfa\x7a\x24\x10\xf3\x08\xd7\x0c\x3d\x6f\x0d\x6b\xad\x16\xb6\xe4\x4d\x94\x52\x99\xcd\xdb\x75\x46\x33\xf5\xb9\x5e\x91\x21\xa6\x9d\x42\x8a\xe4\x9d\x28\x79\x1c\xa8\xa0\x80\x1d\x57\x11\x42\x52\xe0\x42\x3b\x6b\x0a\xea\x12\x62\x86\xdf\x12\x1b\x36\xd5\x40\x01\x6c\xc9\x39\x01\x62\xd6\x4d\x43\xb4\x62\xca\xef\x8b\xab\x8a\x22\xab\xc2\x94\x0a\xd6\x5d\x18\x4e\xb4\xaa\x03\xa9\x66\xa2\x7b\xfc\x88\x04\x9a\xa2\x8e\x59\x50\xbd\xb0\x08\x55\x39\x55\xb7\x90\xda\x0f\x02\x33\xf3\xab\x8c\x0a\xf4\xf2\xfb\x57\xbb\x31\xf3\xeb\x93\x20\xd0\x26\x6c\x71\xba\x30\xed\x22\x44\x1b\x7b\xd6\x03\x11\xc0\xdb\xcd\x22\xbc\xe7\xd9\xea\x83\x10\xfa\xeb\xaa\x7c\xd6\x73\x1f\x8e\xbf\x39\x8f\x44\xdb\x8e\x89\xa6\x69\x8a\x24\x8f\x71\xe3\x20\x6b\x6c\x14\xfd\x0a\xe5\x8c\x66\x41\x7e\xad\x8c\x51\x96\xfc\x4c\x7d\x23\x45\xd9\x59\x8c\x8b\xa9\x72\x7e\x73\xf1\x06\xef\xbe\xd2\x81\xb7\x70\x2d\x57\x58\xfa\xd1\x1b\xbd\x22\xfa\x6d\xfe\xea\x60\x72\x9a\x9c\x2d\x18\x11\x83\x90\x77\x74\x45\x68\xa6\x44\x65\x55\xe3\xdb\x3c\xae\xde\x9d\x6b\xbe\x9e\x0a\xbd\xd8\xf0\xe3\x76\x0d\x04\x31\x6d\x73\xbc\x51\x03\x03\xa6\x4e\xb7\x65\x7c\x63\x58\x8d\x59\x22\x85\x84\x04\x52\xe0\xc9\xe7\x7a\x22\x9e\x1b\x92\x04\x4f\xd5\xa5\xe0\x86\xbd\x3e\xf7\xb9\xba\xa8\x4c\x94\x6e\x35\x9a\xa7\x08\xad\xd9\xce\x8f\x48\x31\x52\x0f\x99\x6b\xa9\x42\x52\x78\x2e\x66\xe8\xf8\xb4\x9b\xee\xbb\x72\x0a\x99\x59\x6c\x96\x65\xb6\x2c\x3b\xd5\x36\x3a\x81\xe5\x74\x0e\x84\xea\xea\x10\x6a\x41\x80\xab\x52\xba\x7d\xd3\x31\x46\xc7\xb4\x2a\xbc\xc8\xbd\xda\x5f\x2f\xde\x90\x97\xe4\xd8\xbc\xdb\x09\x4a\x1c\x33\xca\x32\x44\x04\xc2\xf8\xbf\x35\xaf\xec\xcc\x47\x28\x05\x4d\x01\xf2\x11\x22\xa4\xbd\x5a\x46\x84\x0b\xa2\xca\x64\xe1\xe7\x80\x09\x5e\x19\x85\x1d\x44\x6c\x50\x3a\xcc\xc0\x76\xe2\xdd\x87\x7f\x55\x20\x9f\xfb\xd8\x9a\xeb\xf0\xaf\x4f\x78\x1d\x36\xb5\x44\x73\xfc\xdb\x0b\x66\xcf\x6a\x0e\x9a\xa6\x54\x53\x77\x4d\xfa\x07\x86\x5d\x3b\x5c\x96\x01\x97\xa5\x82\xef\x19\x2f\x3f\x59\x00\xc6\x5e\x78\x3e\xae\xdf\x22\x45\x24\xf1\x0b\x2d\x1a\xae\x3b\xef\xa4\x88\x90\xeb\x7a\xd1\x3a\x46\xa3\x1d\x5a\x37\xde\x12\xd4\x26\xf3\x83\x51\x84\x28\x4f\x45\xbe\x41\xe4\x4c\x48\x02\x34\x59\x74\xa6\xa6\x11\x38\x32\x1c\x4c\xd7\x7e\xdd\x3e\xa1\x0c\x96\x90\x45\x33\xef\x7f\x6f\x7a\x33\x93\xe3\x77\x2e\x76\x4f\x32\x3a\x85\xcc\xe1\x6f\x58\x50\xa6\x88\x27\x2c\x92\x19\x5c\x8a\x88\x51\x31\x1f\x84\x0d\xe6\xa2\xd5\x44\x98\xee\x3f\x8b\x79\x88\x1a\x7f\x71\xe3\x02\x4c\xea\x79\x40\x33\xe8\xe7\x30\x0f\x65\x80\x80\x48\xd6\xe7\xc1\x48\x9b\xed\x79\x40\xf9\xab\xef\xf3\xa0\x20\x49\x44\x5e\xf4\x24\x58\xf2\xc6\x06\xe2\x1b\x8a\xf6\x0d\x8c\x6c\x3f\x4c\x83\x22\x9e\x1d\xac\x2e\xd5\xf6\x1e\xf4\xd8\xba\xff\x57\xe3\x3a\x47\x6e\xb7\x7e\xc7\xbb\xd1\x83\x83\x32\xab\x11\x5d\x87\xbf\xc6\x1b\x6f\x88\xc4\x6c\xb5\x27\x8f\xc4\x6c\x40\x73\x51\x34\xcf\xb7\xa2\x22\xbf\x84\x78\x4c\xa3\x04\xe0\xbc\x02\xc7\x9c\xb2\x82\xea\xc5\x88\x48\xc8\x2c\xe0\xb5\x63\xcf\xb7\xd6\xe2\x75\x84\x1c\xc7\x13\xe4\xd9\x4d\x1d\xb6\x6a\xa1\xb9\xa2\x86\x6f\x6e\x0b\xd9\xb4\xcf\x5c\xbe\xbf\x69\xe6\x00\x53\xbe\xb2\x48\x05\x01\x19\xae\xb6\xf5\x4f\xac\x78\xcc\xb0\xce\xf5\x55\x7c\xec\xa8\xce\xb0\x7a\xea\xdb\xa3\x3a\x9f\xee\x98\xee\x17\xe9\xb9\x1e\xe7\x19\x95\x84\xf5\xa0\xcf\xcd\x31\x22\x2c\x5d\xf0\x19\x70\x77\x67\x8f\x2c\x20\x7f\xb3\x14\x79\x35\x3b\x31\x9c\x43\x33\x3e\x57\x4d\x2b\x08\xcd\xb2\x28\x71\x09\xdb\xcc\x20\xfe\x18\x60\xb2\xb4\xcb\xd8\x5f\x57\xf3\x5b\xd5\x13\x42\x46\x7f\xc0\x84\xf1\x79\x9b\x22\x32\xa3\x52\x7c\xe6\x86\x88\x79\xae\xe8\xb9\x34\x33\xa8\x19\xcd\xae\x0b\x48\xfa\x72\x5d\x7c\xf3\xee\xfa\xac\x4d\x19\x0a\xc3\x0e\x89\x0f\xf0\x7b\x42\xd3\x9c\x29\x85\x1e\x1f\x98\x2e\x84\xb8\x0d\x1a\xf2\xd8\xa7\xdb\xce\x99\x5e\x94\xd3\x49\x22\xf2\x46\xe6\xed\x58\xb1\xb9\x3a\x75\x1c\x65\x6c\x26\xee\x84\x30\x9e\x55\xd9\xca\x68\x2e\xe4\x5a\x39\x17\x42\xf0\xcb\x93\xa4\x7a\x7b\xdc\x7a\x98\xa3\x52\x85\x67\x6f\x4e\x0f\xc2\x25\xe2\xe6\x7d\x76\xb1\x63\x73\x57\x85\xe1\x9a\xaf\xed\xac\x1d\xef\xce\x54\x0b\x22\xb2\xda\x24\xeb\xf3\x68\xb5\xd7\x67\x9f\x24\x27\xf5\x27\xa0\x82\xa2\x60\x63\x9e\xb9\x6f\x6b\x92\x48\x0a\x16\x48\x04\x10\xd3\x8b\xee\xcc\xbb\x47\xff\xf6\x11\xd6\x86\x73\x3f\x3d\x8a\x85\x56\x79\x96\x65\x66\x21\xa9\x03\x95\x69\x44\x78\xa2\x6e\x52\xe1\xb8\x60\xa5\x78\x0b\xe1\x62\xb4\x85\xe6\x5b\x84\xd7\x51\x3f\x66\xda\x23\xe8\x78\x08\x1f\x2d\xec\xd8\x94\xe4\xec\x93\xa1\xb0\x39\x62\x1b\x73\x04\x3d\xff\xdb\xbf\x0e\x28\x95\x43\x30\xfa\xa0\x82\xee\x1a\x99\x15\x6a\x0e\xe2\x13\xa4\xb5\xb9\xb6\xcc\x17\x97\xa0\x8d\xa6\x66\xe7\xad\xe9\x7e\x30\x9a\x95\x2c\x23\x1c\x86\x10\xd7\x30\x69\xba\x87\xa3\x72\x8a\xc0\xf3\x80\xae\x62\x47\x93\x91\x41\xbc\xf0\xf6\x54\xae\x63\xb2\x25\x85\xe7\xc9\x5c\xc8\x64\x7f\x37\xf2\x23\x3a\xab\x48\x5f\x1c\x56\xa1\x70\x2b\x0d\xe8\x98\x67\xc3\x5a\x69\xc2\xd7\xb0\xcd\xe8\xa5\x2b\x91\x6e\xa0\xda\xf8\x42\xe2\xdd\x4b\x46\x98\xcd\x51\xab\x20\x5c\x38\xfb\x48\xa3\x96\x37\x7c\x82\xa4\xd4\x90\x3a\x70\x2b\x67\x53\xb6\xc0\x38\x6d\x6a\x3a\x53\xe0\x13\xf5\x5d\x05\x41\x35\xaa\xb1\x9d\x9d\xae\x53\xc1\x73\x8d\xc8\x7f\x21\x97\x74\x58\x96\x75\xf9\xf1\xab\xea\xe7\x5d\xa7\x02\x03\xa9\x13\xca\xbd\x6e\x85\x55\xac\xad\x89\xdb\x81\x58\x39\x2c\x8f\x29\x90\x82\x4a\x9a\x9b\x3b\x58\x11\xb7\x3c\x53\x98\x33\x9b\x1a\xd8\xb8\x14\x2b\x14\xac\x6e\xa8\x6e\xa8\xd8\x30\x4d\x72\x36\x5f\xd8\xd3\x42\x28\x96\xfa\x23\x3e\x70\x2c\x13\x34\x25\xc8\x58\x84\x24\x77\x54\xe6\x46\x16\xa0\xc9\x02\xa3\xd0\x28\x27\x69\x69\xce\x03\x41\xcc\xa6\xd5\x58\x69\xaa\x8d\x8e\x09\x32\xc0\x08\xe7\xa7\xe9\x19\x8a\x51\x3c\x76\xa1\xad\x67\xc6\xd4\x31\x27\x2d\x8a\x15\xe4\xed\x27\x48\x1a\xe5\x9c\xcd\xf6\x74\xf5\x9c\xcd\x35\x45\x6f\x03\x03\xcd\x9e\x5d\x2f\x4e\x44\x9e\x53\x1e\x2f\x71\x33\x50\x10\x39\xb7\xe4\x78\x15\xc7\x51\x47\x8c\xf2\x89\xc1\x9d\x96\x81\x7a\xb8\xf8\x96\x14\x62\x39\x9d\xd9\xd7\xe6\x98\x5a\x50\x20\x21\xab\x22\x60\x41\x64\x79\x3a\xb0\xac\x90\x10\x9a\x1c\x1f\x9d\x1e\x9d\x78\x98\xba\x8a\x84\x23\xd5\x4c\x2a\xb0\x29\xd0\xf5\x0b\x29\x96\x17\xd9\x0a\xdf\xe1\xc8\x56\x12\x0a\xa8\xd0\x69\x9a\x0f\x4f\xad\xc0\xf3\xd5\x02\xb2\x6c\x44\x94\x91\x75\xa9\x47\xbb\xb5\x9f\x9a\x87\xb4\x2c\x13\x6b\x13\x3b\x3e\xfa\xe5\x68\x44\x40\x27\x27\xe4\x4e\xf0\x23\x6d\xdd\x1b\xe4\x06\x15\xc6\x20\x9a\x2a\x22\x56\xa2\xc4\x62\xb7\x76\xd9\x2a\x80\xe4\x84\x1a\x5d\xa7\xb4\x02\xb9\x45\xd9\x80\x2c\xa0\x78\xab\x69\x6f\x3f\x31\x6d\xe4\x0e\x5d\xa2\x4d\xe2\xa5\x55\x0b\xc0\xf0\x52\x73\xbb\x99\x6b\xed\x74\x01\x34\xd3\x8b\x55\xa5\xaa\xd8\x3a\xa2\x8a\x94\xdc\x7d\x13\x2e\x30\xf5\x20\x4f\xb4\xbf\x19\x9b\xae\x9c\xf1\xcd\x42\x82\x5a\x88\xec\xd9\xf3\x36\x7d\x8d\xcb\x44\x70\x65\x78\x8a\xd1\xa7\x1d\x8d\xaa\x4a\x99\x73\x75\x36\x85\x43\x38\x35\xa7\x4c\x42\xea\x24\x23\x07\x97\xb8\xa0\x58\xd3\x1f\x85\x37\x48\x43\xf4\x90\xa6\x02\xf4\x87\x98\x55\x38\x9f\xbf\xe0\xa5\x69\x73\x59\xc4\xb9\x92\xbf\xf9\x70\x75\xde\xb8\x92\x29\xf7\x37\x32\xe3\x4b\x91\xe1\x6a\x50\xfb\x50\x21\x64\x60\x65\xda\x67\x0f\x27\x30\xaf\xf0\x8c\xe2\x81\x19\x3e\x9a\x6c\x70\x25\xa4\x26\xbc\xaa\x6e\x6b\x4e\xd8\x1c\xd7\x12\xe4\x92\x25\x30\x79\x82\x42\xfe\xb1\x00\xcc\xc3\x8f\x03\xc1\x00\x28\x7c\xf1\xbe\x08\x5f\xd7\x96\x9c\x6d\xf6\x65\x47\x29\xea\x71\x19\x4d\xaa\xb5\xc1\xf5\xfb\x16\x6f\xd0\xf3\x05\x24\xb7\xae\x1c\x41\x98\x21\x52\x01\x90\x2d\x1e\x0a\xc3\x40\xec\xff\x4d\x33\x31\x3d\xcd\xa9\xd2\x20\x8d\x5a\xe3\x2e\xf7\x71\x62\x28\x60\x7c\x3e\xc9\xd3\x93\x90\x1a\x65\xa4\xa1\x4a\x6f\x60\x8a\xb7\xe0\x65\x76\xe0\x83\x9b\x59\x79\x56\xb3\xbb\x99\xbd\x6f\x20\x4e\xe2\xd8\xb7\x37\x37\x57\xdf\x80\x5e\x53\x82\xcc\x08\xbe\x8c\x08\xee\x0a\x9b\x80\x34\x70\xdb\x10\x6e\xbb\x10\x2a\x1e\xb7\x8d\xe0\x22\xb1\x2c\x00\x51\xb1\x39\x87\xc4\x2c\xf4\xa8\x55\x0b\xc5\xc7\x0c\x5e\x5c\x4d\xc8\xdf\x45\x89\x02\x13\x9d\x66\x2b\x72\x47\x2d\x00\x81\x82\x30\x5e\xf0\xc2\x90\xf1\xc2\x70\x1b\xb3\xe1\xbe\x05\x9a\xda\xea\x06\x68\x85\x79\x7e\xcf\x56\x4d\x53\xb4\x65\x3b\x2f\x95\x16\x39\x59\xb8\x57\xb5\x73\x58\x5d\x85\xf6\xc0\x4d\xf0\x50\x5a\x37\x8d\x22\x12\x0a\xab\xeb\xb8\xdf\x7c\x11\x9a\xcc\x06\x0b\xb2\xf3\xdc\x28\x14\x44\x49\xd2\x9c\x2a\x27\xa6\xa3\xb5\x91\x71\x3b\x41\x41\x65\xe2\x6d\x8b\x52\x39\x91\x44\xaa\x9e\x48\xc2\x2b\x28\xfa\x4e\xc2\xfd\x85\x71\x6a\x31\x92\x28\xf5\x18\x49\xf4\x9a\x8c\xc4\x79\xc5\xdc\xe6\xb2\xb1\x32\x86\xd0\x50\x10\x41\xe2\xed\xbe\x55\xe9\x0c\xca\x05\x67\x89\xf5\x3c\x90\xb2\x10\x9c\x88\x52\x17\xa5\x46\x43\x4e\x42\x15\x8c\x97\x54\x32\xc3\x50\x6d\x39\xdb\x2a\x68\x89\x9b\xd3\xae\x85\x40\x2b\x47\xe5\x1f\xb6\x14\x87\x93\x19\xc9\x96\x60\x1a\x6e\xb6\xc8\x2b\xbc\xb1\x38\xe1\x3b\x9a\xf4\xda\x82\x42\x6c\xd5\xa9\x45\x3c\x75\x8c\xea\x05\x06\xe1\xa1\xdb\xc9\xc7\x70\x22\xe3\x34\xe2\x7e\x0f\x92\x64\xa2\x6a\x9f\x81\x2c\x01\x5d\xe3\x42\xae\xe9\xaf\x86\xc2\xcd\x39\x8c\x14\x16\xf2\xf8\xea\x70\xb3\xf6\xec\x14\x08\xe5\xe4\xe2\xec\xf2\xec\xa7\xeb\x8f\xe7\x3f\x5d\x9e\xbd\x7b\x1b\xd2\x75\x70\xb5\xb1\x98\xf5\xc6\xa2\x55\x1c\x7b\xa4\x7a\x8c\xa6\xa9\x64\x01\xfd\x89\x08\xb9\x46\x6a\x9a\x18\x62\x4e\x07\x68\x54\xc2\x09\x03\x95\x23\x6b\x26\x4f\xc3\x78\x9e\x95\xe3\xb8\x00\x80\x37\x90\xd1\xd5\x35\x24\x82\xa7\xcf\x1e\x48\x7d\x59\x31\x1b\x65\x09\xaa\x0a\x00\xc1\x1a\xba\x95\x2f\xb9\xe5\xca\x16\x79\x57\x7e\x33\xfa\xc0\xbe\x5f\x67\x07\x33\xe9\x9f\x93\x99\xf4\xc6\xb8\x5d\x80\x64\x18\xbc\xd3\x87\x5d\xf3\xad\xb8\x73\xb5\xbc\x8e\x19\xf7\x3b\xe7\xa4\x61\xa5\xa9\x9d\x1b\xe1\xc8\x67\x5a\x90\x57\x2f\xfd\x20\x5f\x9e\xd7\xc2\x05\xe5\xf4\xda\x6f\xe5\x68\x7c\xd8\x71\x55\x47\x18\xb5\x9d\x57\x21\xa1\x3e\x64\x8d\x8d\xbf\x9a\x54\x39\x65\xaf\x90\x9e\x8a\x15\x51\x9e\xfa\xe8\xb0\x2f\x6f\x9f\xe8\xa4\xb8\x16\xc9\x6d\x24\x9b\xeb\xcd\xf9\x95\xed\xed\x41\x3f\xd7\xcd\xf9\xd5\xe0\xe6\xea\x97\xe1\xf5\xc8\x66\x61\xd1\xec\xf5\xc1\x46\xd4\xa3\x41\xe3\xaa\x9b\x17\x7e\x64\xbb\x68\xc9\xa0\x71\xed\x68\x83\xc6\x75\x40\xf3\xc5\x63\x99\xe0\xdf\x48\x9a\xc0\x55\x9f\x04\x38\xcf\x40\x48\xea\x4a\xaa\x93\x5a\x8e\xab\xd8\x05\x07\x48\x2d\xff\xf0\x75\x70\xc9\xdc\xbc\x89\x8d\x66\x46\x3b\x62\x1d\x07\x5c\xca\x00\x51\xef\x66\xe1\xba\x76\x62\xae\x77\x10\x6f\xa3\xae\xd6\x4f\x8a\x0a\xbf\xdc\x17\xfa\x70\xc7\xc9\x10\x6f\xf4\x11\x05\xbc\xbb\x49\x9d\x36\x57\x90\x28\x36\x37\xd3\xe5\xcb\x2f\x5b\xd0\x2b\x5f\x2d\xaf\x26\xc4\x8c\x3a\x13\x32\x61\xd3\x6c\x45\x16\x34\x33\x0a\x13\x56\xf1\xa5\xe4\x16\xab\xcf\x62\x37\xdd\x27\xea\x1a\x5c\x6a\xa5\x95\x6a\x32\xc1\xe7\x38\x19\xd4\xa5\x50\x7c\x2a\x20\x31\x63\x26\x19\x50\x5e\x16\x96\x4e\x23\x23\xad\x44\x19\x21\x8b\xc2\xfb\xac\x2b\x99\x8a\x33\x07\x17\x62\x6b\xad\xdd\xbb\xe7\xdb\xb9\xb0\xe4\xbd\x5e\x80\xbc\x63\x0a\x46\xdd\xab\xcd\x12\x6f\xfa\x5d\xab\xfc\x66\x3f\xab\x20\x4f\x5c\xa2\x9f\xd9\x16\x98\x79\xda\x79\xac\x8f\xd8\xaf\x67\xad\x5c\xf0\x31\x87\xb9\x05\x56\x70\x0c\xcd\xc6\x64\xda\xf1\x6d\x04\x60\x95\x1c\xa0\xb4\x28\x5a\xa5\x76\x97\x8c\x76\xa6\x04\x41\x1c\xea\x1d\x45\x8e\xb9\x20\xa2\x30\x57\x57\xc9\x99\x5e\xa1\x57\xcf\x57\x79\x0e\x48\x8f\xba\x71\x11\x0a\x94\x4c\x41\x53\x67\x07\x37\x87\xa0\xc2\x30\x47\x78\x72\x73\xf6\x30\xa6\xff\x66\xeb\x06\xa8\x60\xcd\xe7\x54\x07\x70\x89\x2d\x12\xbd\x5d\xcf\xfb\xb7\x1d\x53\xce\x67\x17\x88\x9b\xdc\x0f\x24\x42\x73\xa2\x45\xa9\x7b\x72\x8f\xec\x32\x1f\x59\x48\x8a\x86\xa2\xc8\x72\x50\x44\x94\x91\x4a\x44\xbc\x72\xc3\xc5\xd4\xf2\x06\xdb\xd3\xd6\xa6\x74\xca\x3a\x15\x0a\x8e\xb1\xc5\x76\x80\xed\xbb\xb4\xd9\x06\xde\xe4\xb4\x9c\xcd\x40\xe2\x4d\x87\x04\x6f\x04\xce\x57\xa5\xb7\xfc\x1d\xd6\xcd\x80\xeb\x62\xb5\x40\x8f\x10\xeb\xdf\x61\x3f\xec\x18\xd2\x81\x62\x62\x65\x5d\x09\x0a\xb1\xdb\x39\x79\xfb\xfe\xeb\x6e\x5b\x34\x46\x25\x80\xb0\x0c\x53\x7c\xcf\xf7\xbc\x5b\x3c\x61\xdc\xfd\xb0\x0d\xa4\xc5\x6d\x8b\x24\x13\xca\x65\x33\xe3\xba\x24\x0b\xca\x39\x78\x83\x14\xd3\x68\xcd\x9e\x02\x70\x22\x0a\xb0\xf1\x74\x9d\x88\xa1\x44\x31\x3e\xcf\x80\x50\xad\x69\xb2\x98\x18\xea\xb8\xdf\x0b\x75\xda\xb0\xfb\x44\x69\x09\x34\xb7\x7b\x42\x42\x4e\x99\x1d\x9e\xd0\x44\x0a\xa5\x48\x5e\x66\x9a\x15\x55\x67\xdd\x2c\x89\x80\x00\x0e\xca\x66\x91\xfa\xb5\xc2\xc4\x90\x3a\x3f\x79\x54\x53\xe8\x5e\x5f\x34\xeb\x0b\xa1\xf9\x6c\x64\xbe\x85\xbc\xd0\xab\x2a\x8f\xb0\x9b\x0e\x34\x63\x52\x69\x92\x64\x0c\xb8\x76\x6f\x66\x21\x02\x91\x86\x91\x17\xa7\xb9\x9b\x11\xe5\xa6\x84\xa7\xa8\x7c\x17\x5a\xd9\x74\xb9\x8a\x08\xdf\x55\xca\x94\xb3\x75\xa8\x6e\xc9\x7a\xd4\x57\x92\xb1\x1b\xc7\xcf\x08\x6e\x1d\x2f\xe0\x58\x8a\xdc\x47\x0d\x12\x1a\xa5\xb1\xeb\x54\xc7\x30\xbe\x82\xe5\x5e\xfc\xb9\x1e\xb5\x20\x02\x6a\xdd\x02\x93\x59\x36\xb8\x0e\x6e\x28\x0e\x4b\x73\x0e\x20\x01\x23\x8a\xd2\x88\x4c\xe6\xc9\x79\x4c\x43\x96\x7b\x07\x4a\xd1\x39\x5c\x75\x0c\x49\x88\xc1\x70\x6a\x43\x1b\xc6\x32\xd4\xdb\x66\x01\x16\x97\x4a\x8b\xc6\x27\xcd\x34\xad\xa6\xf2\x98\xdb\x17\xe9\x44\x81\x57\x9a\xee\x24\xd3\x1a\x70\x97\x62\xf1\x25\x0c\x42\x5b\x07\xdb\x6c\xa7\x87\x75\x1a\xcf\x4d\x7a\x73\x3c\x23\x7e\xf0\xd4\x26\x5a\x4d\x81\x4c\x25\x83\x19\x99\x31\xcc\xfc\xc2\x9c\xa8\x91\xad\x1a\x40\xad\x09\x59\x29\x90\xf8\xda\xce\x2c\xe0\x5f\xbf\x1b\x3d\x7f\x73\xef\xaf\x65\xc9\x13\xda\xa8\xaa\x89\x50\x60\x6c\x46\xe6\x98\x87\xe5\x94\xe0\x7f\x7b\xf9\xef\x7f\x22\xd3\x95\x91\xd7\x50\x11\xd3\x42\xd3\xcc\x13\x40\x32\xe0\x73\xb3\x8a\xc8\x72\xbb\xf1\x8d\x16\x9c\x54\xb5\x38\x19\xcb\x99\xb6\x13\xf4\xea\xf7\xb7\xd3\xa0\xa3\x87\xfc\xf1\x34\x85\xe5\x69\x63\x0b\x8d\x33\x31\xef\xd6\xeb\x79\x8c\xe4\xdf\x20\x3b\xdb\x96\x13\x2d\x32\x96\xac\x9e\xeb\x4c\xfb\x62\x23\x64\x21\xee\xac\x31\x67\xf3\xa8\x36\x90\x59\x0a\x51\x94\x19\x4e\x1c\xf9\xba\xc2\xd3\x2b\x15\xac\x23\x15\x85\x1a\x09\x1b\xdc\x0e\x1d\xa9\x6e\xd8\xb5\x3b\xc7\x25\x21\x7a\x32\x85\xc3\x89\x70\x7e\xb7\xaa\x6e\x48\x67\x6b\xdc\xd7\x34\xcb\xa6\x34\xb9\xbd\x11\xdf\x8b\xb9\x7a\xcf\xdf\x4a\x29\x64\xfb\x9d\x33\x6a\xee\xf4\x45\xc9\x6f\xb1\xf0\x6d\x0d\x1e\x2b\xe6\x2e\xae\xd0\xa7\xfb\x37\xde\xae\x13\x31\xfe\x2d\x2d\x9c\xa7\x17\x49\xbc\x0d\xae\x1e\x19\x3e\xb1\xda\xd0\xc6\x09\x18\x9a\xbb\xe6\xcb\x43\xeb\x3d\x54\xf3\x68\xff\xfe\xe5\xbf\xfd\xd9\x32\x17\x22\x24\xf9\xf3\x4b\x4c\x1a\x56\x23\x7b\x01\xe0\x0d\x6c\x44\xad\x9c\x66\x59\x57\x2f\x41\x93\x05\x7c\xdd\xb9\x9e\x74\x0f\x8e\xbc\x7e\xb6\xd3\xbd\xb7\xca\x78\x73\xf3\x77\xd4\x17\x99\x56\x90\xcd\x46\x16\x9c\xa5\x32\x6b\x1d\xa1\x74\x75\xe4\xae\xbc\xee\xc0\x3e\xcf\xaf\xb4\x2d\x45\x56\xe6\xf0\x06\x96\x2c\xe9\xe6\xc0\x6c\xad\x4a\xab\x37\x6f\xa6\xcf\x98\x42\xcc\x9e\x69\x26\x92\x5b\x92\xba\x2f\x1b\xe1\xf2\xeb\x85\xb0\xbb\xcf\x42\xd7\xc4\x81\x80\x84\x81\x9d\xef\xdf\x4a\x15\xc8\x69\x51\x54\x80\x22\x92\xde\xb5\x26\x03\x59\x13\x82\x99\x06\xba\x11\x83\x9d\xe9\xa1\xae\xf4\xb1\x7b\x23\x73\x4d\x75\xee\xa2\x73\x7e\x41\xb8\x27\xbe\xa6\xbe\xbb\x1f\xb3\xb5\x21\xea\x0e\xfd\x69\x28\xf0\xdf\x16\x31\x61\x03\xc8\xaa\x42\x08\xaa\x36\x86\x95\x20\xcd\xf6\xc1\x5b\xa6\xbb\xf9\x32\x82\x33\x34\x2c\x4f\xa2\x35\x2f\xbc\x72\x42\xe7\x54\x3b\xfd\xc8\x7b\xd9\x29\x29\x40\x2a\xa6\x8c\xe8\xf4\x11\x0f\xd4\x79\x46\x59\xde\x70\xdf\x3d\xd7\x24\x6c\x46\xd5\xe7\xb4\x18\xdf\xc2\xaa\xe3\x86\x0b\x3c\x2e\xbb\x82\xfc\x73\x5a\x74\xbc\x07\xb0\xd4\x6c\xf8\x35\xd0\xf1\x72\xbe\x12\xa9\xa3\x03\xaf\x07\x5b\x45\xf8\x51\xd4\xd8\x88\x32\xd0\x73\x5f\x39\x1f\xeb\x85\x6b\xdf\x38\xe6\x93\xea\xca\xb1\x4f\x7d\x49\x17\x0d\xbe\xdf\xe7\x7a\xcf\x54\xc4\x47\x62\xa7\x41\x91\x4e\x78\x3b\xb9\x9d\xd1\xbe\x8e\x5a\x06\x2d\x7b\x32\x1b\xaa\xaf\x33\x34\x4d\x2c\x88\x7f\x00\x01\xe6\x28\xba\x41\xc9\xd1\xeb\xa3\x67\xbd\xe3\xec\xca\x48\x51\xd0\x39\x6a\xa6\x7d\x58\xa0\x75\x9a\x9a\x90\xb1\x0b\x71\x67\xbf\xb7\xd1\x25\x85\x7b\x0a\xd2\x1a\x77\x7c\x21\x82\x56\xc7\x46\x0e\xfa\x1d\xe1\xb4\x6b\x0b\x2d\x78\x47\x57\x84\x4a\x51\xf2\xa0\x54\x68\x74\x8c\x54\x8e\xb3\x77\x6b\x2f\x7b\x29\x38\x78\x27\x7d\xc8\x28\x37\x35\xe4\x38\x53\x36\x5e\x81\x71\xf2\x6a\xf2\xea\x65\x30\xed\x1f\x20\x29\xa5\x62\x4b\xf8\xe0\x6a\x92\x37\x9c\x2a\x17\xb3\x2b\xa1\x14\x9b\x66\x98\xbc\xa5\x05\x79\x6b\x0b\xb6\x6f\xbe\x68\x15\x38\x82\x6f\x2c\x64\x13\x5c\x34\x80\xc2\x63\x7b\x82\x9b\x01\x9f\x66\x80\x80\xa8\x8f\x7e\x49\x92\xb8\xae\x6b\x92\xe4\x65\x25\x49\xda\x7b\xef\x59\xdf\xd5\x17\xaa\xef\x03\x27\x79\xe7\x7c\x03\x75\x25\x7a\xe6\x2b\x1d\xe3\x47\x77\x92\x69\x77\xb8\xef\x98\x02\x72\x8c\x56\x89\xb5\xcd\x18\x84\xa7\xdc\xb4\x61\x05\x56\xac\x8f\x81\x87\x2c\xd7\x8f\x6e\x1f\x56\x69\x93\x9f\xd4\x51\xf8\x77\xce\x80\x55\xaf\xa0\xe3\xfe\xf5\xbd\xbc\xa0\x3c\xcd\x82\x78\x46\x35\x2b\xd9\x2a\x0c\xc7\xe6\x62\x46\x9a\x3c\xd1\x39\x30\x1b\xd5\x1f\x16\x54\x11\x2e\x48\x0e\x14\x23\x34\xcd\xf5\xe2\xd9\x60\x0b\x5b\x39\x22\x11\x76\xbb\xdb\x8b\xac\x79\x25\x38\x86\xfd\x86\x29\xc7\xa0\x0d\x27\x71\x3a\x88\x0d\xec\xc8\x69\x1a\x92\xe0\xdd\x98\xd5\x7a\xf9\x26\x75\xd8\xe4\x3a\x25\xf5\xd5\xb1\x46\xcb\x63\xd0\x31\x72\x45\xc3\xcd\xf0\x25\x46\x0a\x6e\x31\xcc\xd5\x61\x32\x41\xfe\x6c\xdb\xd6\x5f\xb7\xba\x18\x37\xde\x75\x3b\xc5\x15\xc1\x01\x34\x3c\xfc\xaa\xa3\x06\x37\xf4\x51\xa2\xd6\xa9\xee\x8a\x96\xb8\xbc\xc7\x30\xe8\x6d\xef\x96\xa8\x0c\x3e\x73\xe0\x20\xa9\xf3\x2c\xf8\x20\x51\x07\xc1\x42\x95\xe0\xc1\x27\xe2\x81\x1d\x67\x58\xfe\xc3\x92\x8a\xfd\x59\x00\x21\x28\xea\x1c\x0b\xb9\x76\xde\x9d\xd3\x64\x9b\xd0\x12\xf5\xb5\xd7\x90\xb5\xec\xf6\x6f\x20\x77\x9a\x65\xf9\xef\x92\x2d\x69\x06\x16\x76\xde\x33\x87\x67\x15\x28\x54\x39\xed\xab\xea\xe8\x74\x44\x54\x3d\xb6\x07\x3e\xec\xd4\x22\x23\xc9\x14\x2f\x5e\x90\x63\x3b\xc6\x91\x85\xca\x7d\x5e\x41\xd7\xad\xd5\xdb\x4f\x45\x40\xb5\xd5\x78\xeb\xf5\xf6\x53\x41\x31\x56\xa3\xe8\xc5\xc2\xfd\x4f\x58\xd0\x25\x20\x32\x31\xcb\xa8\xcc\x30\x30\xfd\xda\x4e\x19\x99\x96\x9a\x00\x5f\x32\x29\x78\x6e\x8e\x1f\x82\xd0\x18\xd6\x24\x01\xf1\xdb\x13\x50\xe4\xab\xe3\x8f\x67\x1f\x30\x71\xe9\xc4\x01\xdc\xbb\xf7\x2b\x15\xe2\x04\xac\xbd\x43\xa3\xbb\x3e\xee\x37\xe2\xdf\xdd\x6c\x17\x94\x50\xfc\x5c\x98\x77\xcb\x4b\x5d\xd2\x0c\x01\x9c\x93\xac\x34\xb7\xe1\xb3\xed\xec\xf8\x76\xf0\x10\x6b\x5e\x4c\x33\xb8\x83\xef\x7e\xc3\x3a\x1d\xd7\x18\x07\xf5\xbc\xb1\x5f\x37\xc0\xc4\x3b\x97\x65\xd8\x82\x21\xb9\x21\xea\x1c\xa9\x0a\x57\xb2\x99\x8b\xe3\x2e\xe3\x6e\x21\x1a\x58\xed\xc0\x26\x81\xfb\x3a\xa2\x1b\x56\x46\x2c\xab\xf2\xec\x76\xfc\x0e\x87\x21\xde\x31\xe8\x60\x8c\x8e\xb3\xeb\x53\xae\xce\x71\x69\x0e\xa3\x38\x6c\xa3\x5f\xb7\x90\x3c\xdf\x5c\x5e\x37\x6b\x70\x58\x07\xa0\x38\x78\x25\xaf\xea\x2e\xea\x42\x35\x58\xc4\xae\x72\xa2\x82\x9c\x5b\x81\x1a\x91\x63\x2b\x09\xfb\xcd\xe5\xf5\x81\x63\xf9\xdd\x6c\xa5\xe1\x29\x55\x36\x4e\xfa\xcd\xe5\xb5\x8d\x5d\x3b\x8c\xf6\xce\xce\x94\xee\x7e\x08\x04\x72\x43\x8c\xad\x0e\x1c\x3b\x9c\xcb\x9d\x55\x31\x21\x66\xf1\xd1\xef\x6b\xa9\x21\x17\x57\x84\xa6\xa9\xc4\x90\xe6\x2e\x67\xb9\x85\x6c\x47\x8b\xa2\x8a\x4c\xc5\xba\x2e\x54\x41\xf3\xd5\x1b\x7b\x00\x05\x9f\x8e\xeb\x67\xdb\x9b\xb2\xc8\x98\x0d\x41\x6d\x0e\x51\x57\xbd\xc9\xc5\xb2\x0b\x7f\x0a\xf1\x32\x76\xf6\x31\x06\xc9\x07\x51\xb1\xe7\x44\xd7\x8a\xb2\xb1\x77\xa9\x04\x25\xb2\x65\x5d\xf0\x3e\x78\x77\x3a\x76\x84\x61\x89\xd5\xee\xf4\x45\x63\x1f\x69\x67\x02\xd7\x92\xc1\xe6\xae\x24\x1f\xcc\xdb\x95\xc8\xce\x2a\x12\xd8\x12\x30\x6d\xe9\x7d\xe7\x0a\xff\x38\x4c\xa3\xc0\xbf\xcd\xbc\xa1\x1a\x4f\x26\x95\x5e\x14\xc0\x37\x0f\x78\xc5\x67\x39\x22\x6b\xc8\xf2\xe9\x9b\xcb\x6b\x7b\x93\xda\xe9\x72\x70\xdc\x6a\xeb\xde\xe9\x7c\xc9\x91\xe7\xaf\x6c\x14\xe2\xba\x69\xcd\xd9\x07\x17\x02\x10\x96\x70\x1b\xa0\x9d\x07\xa1\x82\xf6\x87\x43\x2a\xa0\x32\x59\x74\x59\xce\xd8\x2c\xd2\x52\x42\x52\x61\x73\xa3\x66\x42\xa2\xef\x79\x8c\x17\x7c\x26\xc4\x6d\x59\x3c\xce\x9d\xee\x06\x2e\xa8\x5e\x3c\x1a\xeb\x6c\x8d\x31\xdc\xea\xdd\xf7\x6c\xca\x55\x97\x0c\x8f\x40\x95\x03\xb4\x55\x34\x70\xe4\x1a\xa7\xec\x70\x16\xdc\x32\xfe\x9c\x67\xa5\xd2\x20\xbf\x66\x52\xe9\x17\x87\xf6\xf4\x91\x66\xcc\xc1\x06\xdb\xe0\x8d\xa3\x66\x77\x7f\x63\x7a\xe1\x2a\xca\x1e\x8d\xda\x5f\x99\xbf\x1d\x19\x47\x44\x48\x72\x74\x29\x38\x1c\x1c\x36\xb3\xa6\x77\x55\xd7\x7d\x75\x91\xed\x94\x54\xdc\x24\x2a\xc8\x2c\x9c\x08\x7e\xd1\xf9\x9c\xdd\xb8\x22\xbf\x86\x1e\x7f\x3f\x2a\xd0\x84\x62\x75\x44\xec\x7b\x51\x57\xd6\xb5\x85\xbd\x6c\x45\x62\xe1\x34\xbd\x55\x63\x69\x0f\x1c\xbc\x51\x19\x4c\x8b\xdd\x0b\xd0\x45\xa1\x3b\xf8\x9c\x21\x56\x06\xb8\x22\x28\xdf\x33\x7e\x7b\xe0\x21\x0f\x3b\x21\x6f\x37\x46\x6f\x80\x93\x78\xaf\x33\xe3\x16\x2e\xc0\x08\x38\x74\x2a\x4a\xed\x0b\xb3\x34\xfd\xcf\x8c\xff\x97\xdd\x17\x18\xba\x89\xd0\x2f\x87\xae\xca\x16\xb3\xaf\x1a\xd9\x00\x0f\x6f\xd7\x55\x2b\xae\x29\x16\x85\x7e\x23\x92\x5b\x90\x24\x33\x34\x1f\xba\xf9\xea\x0c\xce\x56\xf9\xdf\x83\x13\x3a\xba\xc6\x22\x40\xb1\x80\x1c\x24\xcd\x2a\xb3\xdf\x93\x2e\xfa\xf7\xee\xf6\xae\xc8\x68\xa6\x2f\xda\xd2\x7e\xae\xa2\xab\x48\x27\xe4\xed\xb6\xa7\x72\xba\xf2\x15\xca\x19\x47\x8f\xd9\x27\xa6\xf4\xe1\x37\x4c\x21\xd2\x26\x42\x68\xa9\x40\x8e\x2b\xc4\x58\x87\x3c\xa8\xaa\x4c\xd2\x14\xa6\xe5\x7c\xce\xf8\x7c\x62\xc5\x03\x14\x43\xea\x4a\xa6\xb5\x05\xe8\x6e\x01\x87\xc6\x86\x24\x12\xa8\xb6\xe8\x86\x85\x48\x6d\xa8\x00\x6b\xf6\x9e\x8b\xd4\x76\x3e\x5d\x59\xbb\xa3\xdf\x93\x15\x84\x10\xb9\xe0\x44\x48\x57\x15\x82\xa6\x29\x39\x38\x40\x65\xcb\x8a\x60\x5f\xf5\xfc\x5a\xe2\xca\xda\x2f\x7d\xa4\xea\x5f\x35\x16\x48\x95\x53\xa3\x7f\x94\xf2\xd0\xa2\xcc\x5d\x65\x94\x4e\xf2\x49\xa8\x2c\x7a\xc6\xeb\xed\x79\xde\xcc\xc1\xa7\x44\x43\x5e\x08\x49\xe5\x6a\x3d\xd1\xc2\xdc\x24\x66\xfb\x9a\x05\x5a\x9b\xdb\x2b\x91\x1a\x21\xe1\x60\x32\xb6\x6c\xdb\x25\x33\xca\xd6\xb6\x9d\xbb\xf5\x3c\xe1\xd5\xc6\x05\xf1\x6b\x46\x3a\x50\xa1\x92\x05\xa4\x25\xe2\x2e\xcd\x4b\x2a\x29\xd7\x60\xf8\xa7\x0b\xde\x5c\xb5\x02\x18\x2a\x8c\x82\x0a\xb0\x6c\x85\x19\x93\x58\x85\xd8\x7c\x82\x05\x90\xbb\x84\x59\x38\xe1\xd8\x74\xd4\x00\x42\xb8\x59\x00\x31\x92\x64\x06\x1a\x27\x1f\x96\x2c\xd1\x7e\x90\x19\x2e\xc2\x96\xad\x9f\xd0\xd2\x82\x1c\x1c\x1e\xf8\x72\x25\x5c\x0d\xd0\x04\xcc\x9d\xa4\x55\x3d\xb5\x2e\xdf\x8f\x75\x8b\xa7\xb8\xf1\x47\x7b\x1b\xc5\xf5\xc9\x7c\xe0\x4c\xa2\x2d\xa0\x33\xd7\xc4\xd7\xbb\x87\x33\x57\x8b\xbc\x65\x29\x0e\x1c\x2a\xc0\xee\xd0\x3d\xda\xbf\x53\x94\x7e\x88\x89\x83\xca\xf9\xb3\xe5\xbf\x9c\xc9\x79\x99\x63\xbe\xb8\x53\x6e\x81\x6b\xb9\x2a\x04\xeb\xea\xae\x36\x67\x0d\xbd\x6b\x47\x8a\x9c\xbf\x7b\xd3\xc4\x3a\x6b\x16\x97\xf3\x48\x78\xdd\x06\xf9\x18\xd7\x2f\x4f\x2e\x66\x84\x56\x52\x5f\x27\x8a\xea\x9b\xda\x19\xde\x9c\xc7\xb3\x22\xd0\x1b\x1e\x19\x2f\x8c\x08\x8b\x82\x7a\xa3\xac\x4d\xb2\xa0\x7c\x6e\x78\xd5\x1b\x51\x9a\x17\xfb\xea\x2b\x7c\x09\x09\x69\x99\x74\x8c\xab\x34\xd7\x8b\x07\x04\xfa\xca\x87\x37\xb9\xfa\x59\x46\x19\x05\x95\xd0\xc2\x4f\x4d\x73\xf6\xac\x98\xfb\x9a\xb0\x09\x4c\xc8\x8b\xaf\x1a\x5f\xbd\x40\x8a\x3b\x51\x53\x48\x61\x5e\xc5\xe1\x0f\xe1\xdb\x67\x4c\x23\xff\x78\xd1\x1c\x61\x42\xde\x1a\xba\x30\x60\xb8\x5a\xdb\x06\xa4\xcc\xb4\x5e\xd9\x11\x91\x30\xa7\x32\xcd\xa0\x23\x76\x86\x98\x55\x5a\x86\xc5\x68\x74\xbb\x0a\x19\x23\xa6\xd4\x73\xa1\x27\x71\x3c\xbe\xfb\x82\xb9\x69\xaa\x6e\xd5\xa9\xd5\x67\xc6\x29\xd5\x74\x4c\x0b\x6b\x10\x62\x82\x9f\x5a\x0b\xef\xd8\x55\xd8\x1e\x53\x77\x7a\xc7\xd5\xce\x3e\xfd\xad\x43\x1e\x1d\xd3\xea\x29\xc6\xc7\x74\x8c\x35\xa7\x3b\x1b\x70\x9e\x21\xe3\x2c\x7a\xbc\x48\x50\x35\xa2\x80\x9a\xf1\x31\xd8\xf4\xdb\x8a\x2b\xdb\xa5\x98\x90\x4b\xa1\x7d\x69\xf8\xb4\xce\xb1\x0b\xa8\x2c\xde\x64\xdc\x6f\x2f\x6f\x3e\xfc\xfd\xea\xfd\xc5\xe5\xcd\xc0\xbf\x07\xfe\x8d\x6d\xe0\xdf\x03\xff\xee\x30\x70\x5f\xf8\x37\xf0\xe5\x73\xf1\xee\xca\xe0\xb5\xcd\xc2\xb8\x56\xec\x34\x30\x47\xfa\x0b\xca\x31\x7f\xcb\x97\x1f\xa9\x51\x1d\x0b\x09\x0a\x15\x14\xa3\xb1\x6e\x8b\xcd\x75\x0f\xa0\x29\xb0\x0e\x65\xfc\x6c\x93\xcc\x9f\x31\x45\x3c\x62\x8a\xe4\x65\xa3\x7c\xc5\xb6\x55\xab\x2b\xe6\x50\x72\xfe\xd3\xc5\x9b\xb7\x97\x37\x17\x5f\x5f\xbc\xfd\xf0\xac\x91\xf3\x81\x35\x3b\xe3\xc5\xcc\x1f\x22\x1f\x05\x0c\x53\x4b\x56\x85\x84\x25\x13\xa5\xca\x56\x55\x4d\xf7\xed\xec\x6a\x33\x5f\x3f\x30\x09\x69\x55\xd5\xd9\xdf\x3a\xe0\x9a\x6c\xb7\x4d\x4e\x0b\x18\xfe\x99\x25\x3c\x47\x44\x0c\x39\x2f\x60\xfc\x2d\x12\xe2\xfe\xd2\x5e\xc0\xb8\x9d\xe4\xc4\x5d\x32\x5f\x00\x1d\x6d\x69\x31\xa0\xa3\x76\x8e\xc6\xf3\x73\xb2\xaf\xa5\xc8\x23\x71\xb3\x6b\x6b\x37\xf6\x31\x0c\xdb\x8e\xea\x91\x2b\xc2\xd1\x92\xb7\x9d\xe6\x58\x57\xe7\x30\x5a\x6b\x5e\xe8\x8e\x59\x05\x24\x56\x75\xf2\x38\x85\xbc\x6d\x4c\xf6\x3b\x5a\x7c\x07\xab\x0f\x10\x58\x87\xa8\x3d\xdf\x18\xe7\xa0\x08\x25\xb7\xb0\xb2\xa1\x7b\xe7\x7e\xb0\xb0\x52\x4c\x3d\x2c\xee\x7e\x0b\x21\x85\xf7\x63\x56\x65\xbf\x85\x80\x64\x7c\xdf\x36\x4a\x76\x9b\x25\x44\x31\xdf\xac\x69\xaf\x8a\x94\xf7\xb5\x0a\x7d\x53\x7a\x74\xd7\x43\x84\x89\x5b\x07\x64\x81\xd9\x0c\x12\xed\x53\xbc\xed\x6e\x1e\x61\x0e\x60\x5a\xda\x4a\x92\x34\xb9\xbd\xa3\x32\x55\x24\x11\x79\x41\x35\x9b\xb2\x8c\xe9\x55\x58\xfe\xb7\x6f\x78\xc3\x57\x10\xd6\x96\x29\x92\x0b\xae\x34\xc5\xab\x50\x38\x7b\x9b\x59\xed\x1a\x47\x16\xe1\x66\x2d\x37\xc5\x3c\x13\x2a\xc3\xcb\xbf\x1b\x52\x72\xa1\x34\x49\x40\x1a\xa1\x2e\x5b\x91\x3b\x29\x78\x47\x74\xe7\x76\xbb\x79\xff\xe6\xfd\x6b\x72\x96\xa6\x0e\xbd\xa7\x54\x30\x2b\x33\xbb\x04\x6a\x42\x68\xc1\x3e\x82\x54\x4c\xf0\x11\xb9\x65\x3c\x1d\x91\x92\xa5\x7f\x89\x30\xee\x81\x85\x53\xc4\xd2\xc8\xa0\x70\x77\xea\xb2\xdf\xc6\x66\xc2\xc7\x96\x49\xaa\x53\xcc\xad\x38\xfd\x2d\xfe\x27\xda\x9c\xbc\x91\xa2\x20\x3f\x1b\xa2\xa6\x25\xcb\x52\x90\xaf\x5d\x22\xdc\xcf\xd6\x05\x6e\x24\x6c\x29\xb2\x0c\xe4\x78\x0e\x9c\xa4\x02\x14\x3f\xd2\x58\x01\x0d\x2b\x46\xb8\xb7\x9a\x33\xbd\x28\xa7\x93\x44\xe4\x8d\x17\x1c\x2b\x36\x57\xa7\x8d\xbe\x4f\x99\x52\x25\xa8\xd3\x3f\xfc\xf9\xdf\xff\xd4\x2b\x06\x44\x7c\xfa\xdf\x6b\xf2\xe2\x45\x60\x5f\xc2\xc7\x55\xc5\x65\x68\xd7\x2e\xde\xaf\x29\x75\x56\x77\x31\xb1\x70\xbd\xc8\xe2\x3d\x42\x81\x53\xa0\x22\x4d\x73\x18\xd6\x8c\x6d\x2d\x5b\x5a\x4e\x8b\x30\x53\x5a\xdd\xf0\x18\xc7\x15\x7c\x82\xaf\x8f\x5a\x72\xb2\x7c\xbe\x2a\xa1\x99\xbe\xf6\xd0\x1b\x8a\xe4\xa0\x69\x4a\x35\x9d\x98\x33\x3d\x6a\xff\xa9\x0a\x9a\xc0\x88\xfc\x5c\x7d\x98\xd1\x29\x64\xea\x87\xa3\xff\xf8\xee\xed\xdf\xff\xf3\xe8\xc7\x9f\x9b\xdf\xa1\xa4\x8b\xa6\xdd\xe6\x03\x81\xaf\x80\xe1\x5c\x5c\xa4\x70\x89\xd4\xe1\x9f\x4e\x49\x3e\x4b\x12\x51\x72\xed\xbe\x40\xe4\xf5\xc9\x42\x28\x7d\x71\x55\xfd\x59\x88\x74\xfd\xaf\x80\xfa\x7a\xa4\x9f\x22\x23\xae\x6d\x00\x12\xa3\x6d\xf1\x04\xc7\xfa\x22\x8b\xcc\x7d\x5c\xaf\x7e\x1b\xab\x64\x01\x39\xc5\x7f\x7e\xed\xa7\xc0\x88\x32\x55\x6d\x0c\x8e\x10\xf7\x46\x7c\x68\x17\xdc\x7d\xb1\x7c\x15\xa4\xac\xdb\x16\x91\xf3\x57\x2b\x18\x79\xc2\x70\x46\xdc\x6c\x59\x0e\x50\x89\xde\xde\xc0\x53\x47\x6a\x9e\x5d\x5d\x90\xa5\x9d\xe1\x1e\x4d\xce\x63\xb1\x6b\x1f\xfe\xf5\x75\xaf\xd9\x76\x33\x48\xad\x65\x6a\x7c\x4d\x10\x82\xc9\x7f\xef\x0a\x21\xa8\xaa\xf8\x23\x28\x1d\x2a\x9e\x1d\xdb\x2e\x27\x49\x51\x8e\x5c\xf7\x93\x1c\x72\x21\x57\xd5\x9f\x55\x68\xdd\x58\x69\x21\xe9\x1c\x61\xec\xec\xe0\xf6\x67\xd5\x5f\xf6\x87\x2d\xf2\x36\x7f\x6d\x6d\xb9\x49\x29\x8d\x8a\x93\xad\x6a\x74\xa8\x2f\x8e\x65\xfb\x75\xeb\x09\xc7\xae\xb6\xd5\x65\x7c\x1d\xf8\xa8\x8e\x06\x46\x0d\xbb\x9a\x45\x34\xa0\x39\xb8\xe9\x51\x25\xb0\x5a\x2b\x2f\x5f\x92\x25\x95\x2a\xa4\x1c\xba\x6d\x11\x99\x74\xca\x96\x4c\x89\x00\x18\xa1\xaa\xa3\x4d\x89\xda\x63\x31\xb8\xc2\x26\x36\xc9\xa3\x72\x19\x7d\x2a\xb0\xc8\x59\x75\xd8\xd7\x6e\xb3\x57\xa1\xca\x02\x21\x05\xd5\x1a\x24\x7f\x4d\xfe\xd7\xf1\x3f\x7e\xf7\xcb\xf8\xe4\x2f\xc7\xc7\x3f\xbc\x1c\xff\xfb\x8f\xbf\x3b\xfe\xc7\x04\xff\xf1\xaf\x27\x7f\x39\xf9\xc5\xff\xf1\xbb\x93\x93\xe3\xe3\x1f\xbe\x7b\xf7\xcd\xcd\xd5\xdb\x1f\xd9\xc9\x2f\x3f\xf0\x32\xbf\xb5\x7f\xfd\x72\xfc\x03\xbc\xfd\x71\xcf\x4e\x4e\x4e\xfe\xf2\x55\x30\xe9\x11\xaa\x9e\xdb\x16\xb3\xf6\x79\xbb\xc7\x48\xda\xe1\xa3\xd4\x41\xaf\x9b\xdf\x5e\xb1\xcf\xbf\xcf\x33\x7e\x5d\xdf\x66\x95\x14\xd2\xa3\x03\xfe\x58\x82\x86\x82\x44\x82\x7e\x0a\xa3\xb8\x1d\xa9\x51\xa6\xe1\x48\x91\x4a\x89\xfb\xd2\x6e\xd0\x5f\x83\x9d\xdc\xeb\x39\x76\x5d\x6b\xd1\x7d\x26\x45\xee\x50\xdf\x6d\xd0\xc0\x12\x33\x59\xdd\x73\xb7\x10\xe0\x50\xf2\x6d\xb0\xab\x77\x6e\x83\x5d\x7d\x07\x29\x83\x5d\x7d\xb0\xab\xef\xdd\x06\xbb\xfa\xb5\x65\xe7\xbf\x4a\xa3\x7a\x7c\x80\xcb\x8e\x91\x84\x31\xb1\x2d\x81\x2f\xbb\x46\xa1\xc4\x0c\xbd\xf5\x16\xa3\x66\x15\xd3\xfd\xe2\xdb\xba\xe7\x52\x98\x95\xab\x82\xe9\xea\x04\x0d\xab\x0d\xe4\xdb\x83\x1f\xc9\x59\x96\x11\xc6\xad\x6c\x63\x3a\xe8\x34\x7a\x8d\x14\xe3\x80\xc6\x1d\xac\xf4\xd2\xbc\xaa\xcf\xb8\x6d\x57\x0d\xc7\xfc\x4c\x4c\x10\xfe\x9b\xcd\xbf\xbd\xb5\x29\xb9\x4a\xe3\x94\xf8\x5a\xf0\x9d\xc8\xa9\x34\x78\x1b\xaf\x65\xee\x58\xaa\x94\x48\x6c\xba\x72\x85\xf0\x81\x45\x5c\xdd\xf4\xe0\x1b\x68\x7a\x8b\x81\x89\x09\xa4\xc0\x0f\x4d\x24\xf7\xed\xa3\x85\x3a\xf1\xeb\x30\x5d\x61\x2d\x72\xbe\x74\x57\x3f\x49\x3d\xda\x0e\xbe\x71\xbc\x71\xbf\xac\x48\x6c\x73\x86\x5d\x08\x58\x23\x20\x1b\x05\xf5\x3a\xa1\x18\xe3\xd8\xc5\xac\x76\x8e\x76\xdb\xbd\xc1\x8a\x57\xb8\x9a\x53\xc5\x75\x05\xe9\xaf\x1b\xfa\x4d\xed\x35\x6e\xeb\x35\x5f\x42\x28\x5c\xb8\xc6\x13\x57\xdb\x79\x0c\x4d\xa7\x2f\x5a\x4e\x4f\x34\x9c\xc7\xd1\x6e\x9e\x43\xb3\xe9\xab\x56\xf3\x59\x6b\x34\xd1\xb4\x99\x38\x9a\x4c\x1c\x2d\xe6\x80\xc8\xa0\x98\x9a\x4b\x1c\xad\xe5\x31\xcc\xbd\x85\x84\x19\xfb\x14\xe9\x92\x3c\xe3\xb5\x4f\x8c\xa5\xc0\x35\x9b\x31\x8b\x41\x54\x48\x28\x80\x5b\x50\x15\x9a\x2c\x50\x58\x73\xa2\x7a\x1d\x17\xdd\xc7\x94\x22\x6b\xa0\x8c\x2b\x47\x5c\x6f\x33\x8e\x0e\x42\x04\x19\x84\x88\x03\xda\x20\x44\x0c\x42\xc4\x20\x44\x1c\xd8\x9e\x48\x88\x70\x0c\xfe\xcb\x97\x20\x22\x27\xf9\x23\x7c\xc9\xb3\x17\xd1\xb1\x64\xe0\x65\xf6\x98\x40\x13\x15\x27\xa9\xe1\xd7\x4e\x71\xe4\x2e\x0c\x23\xe8\x9c\xe1\xa8\x57\x65\x96\x75\xc1\x58\xb6\x2d\xc6\x02\x5c\xe0\xb4\x17\x65\x96\x39\x5c\xde\x6e\xb3\xff\x9e\xe3\x9d\x7f\x96\xdd\xd1\x95\x1a\x91\x4b\x58\x82\x1c\x91\x8b\xd9\xa5\xd0\x57\xd6\xf2\xd5\xad\xdf\x66\x76\xa8\xed\x9c\xb0\x19\x79\x9d\x51\x0d\x4a\x13\x4d\xe7\x68\x87\xad\xeb\x25\x09\xd9\x1a\xb4\xae\x09\xf9\x8c\x06\xc9\xf0\xbd\xf9\x5b\x0f\x5e\x3a\x7e\x9e\xbd\x9a\xb1\x19\x24\xab\x24\x0b\x67\x13\xdf\xfb\x9e\x7c\x5e\xab\x97\xa8\x30\x9a\x6f\x0b\x38\xe2\x67\x58\x78\xa1\x10\x4a\x5f\x6b\x2a\x75\x94\xea\x0b\x01\xf2\xf8\x95\x27\xc4\x4c\x76\x42\xb3\xcc\x88\x25\x79\x0e\x29\xa3\xda\xc8\xce\x74\xa6\x41\x12\xda\x76\x6a\x24\xb6\xaa\xe6\xc4\x16\xe1\xf4\x45\x8a\x25\x99\x51\x96\xa9\xee\x49\x1a\x1b\xce\x13\x5b\x18\x9f\xba\x92\xac\x0d\x74\x53\x9a\x24\x42\xa6\x98\xba\x2f\x3c\x0a\x28\xbe\x44\x08\x7f\x32\xed\x3d\x8a\x0a\x39\xe5\x74\x0e\xb9\xab\x13\xda\x26\x6b\x9a\x89\xe4\x56\x91\x92\x6b\x96\xb9\x8a\xfc\xe2\x16\x75\x88\x0c\x4f\x6a\xe7\xa1\xbb\x33\x80\xea\x9f\xe3\xea\x10\x8e\x0d\x55\xea\xf4\xb7\xf5\x57\xf8\x41\x47\xe2\x22\x68\xb2\x31\xf4\x58\xf8\x04\x49\x88\x80\xd8\x76\xbe\x7c\x82\xa4\x51\x8a\xdb\xac\xa4\xc5\xa5\x46\xbc\x4e\x7a\x1b\x84\xfc\x10\x29\xc6\x2d\x56\x5c\x59\x00\xc6\x5e\xb3\xc5\x0e\x9b\x3a\xb7\x64\xe1\x49\xc7\x33\x66\xff\xcc\x18\x07\x0b\xf2\x8b\x20\x7c\x84\x71\x65\x2b\x0e\x41\x13\x91\xd7\xfc\xb9\x51\x52\xd1\xe3\x28\x04\x93\xe6\x69\x31\xb4\x49\x21\x34\x39\x3e\x3a\x3d\x3a\xd9\x70\x62\x1f\x29\x32\x63\x19\xa8\x95\xd2\x90\x5b\x38\xe4\xa4\x7e\x29\xc5\xf2\x02\x4b\x7c\x42\x72\xe4\x2b\x12\x07\x53\x66\x2e\x44\x8b\xcf\x8e\xb3\xe2\x90\x09\x47\x44\x09\xa2\x25\x4d\x99\xb3\xf2\xe1\xa7\xe6\x21\x2d\x4b\x07\xb7\x7e\x7c\xf4\xcb\xd1\x88\x80\x4e\x4e\xc8\x9d\x30\x3a\xa8\x99\xbe\x09\xb9\x11\x46\x8b\x0f\x0f\x9d\xf6\x84\xac\x44\x69\xb5\x5b\x5c\xc2\xaa\x22\x83\xb9\x5b\x88\x28\xb5\x85\xc3\xa5\x3a\x04\x51\xb1\xd9\xde\x7e\x62\xda\xe5\xe4\x19\x66\xfd\x72\xad\xea\x73\xc6\x96\x70\xba\x00\x9a\xe9\x85\xcd\x18\xe1\x82\x8f\xff\x09\x52\x20\xfe\x22\x77\xdf\x84\x92\x11\xe6\x4f\x6e\xb6\x00\xdf\xf2\x26\x41\x51\x22\x9e\x22\xab\x92\xbe\x99\x3b\xee\x1b\xe8\x2c\xff\x90\x75\x7e\xf4\xed\xcd\xcd\xd5\x37\xa0\xd7\x58\xba\x19\xc5\x27\x09\x35\x2a\x12\xf4\x80\xb7\xc7\x89\x5e\x1e\x93\x42\xc8\x3e\x5c\x31\x0b\xa1\x82\xd6\x92\x3c\xc2\xfd\xf2\xad\x50\xda\x16\xa4\xd4\xc2\xf0\x6c\x0e\x89\xd9\x04\xed\x8c\x17\x5f\xea\xe1\xe2\x6a\x42\xfe\x2e\x4a\x33\x21\x53\x3a\xcd\x56\xe4\x8e\x72\xe7\x0a\x08\x0b\x53\x37\xed\x85\x21\xe5\x85\xb9\x3e\xcc\x86\xfc\x16\x68\x0a\x52\x21\x77\x06\x1a\x98\x90\x16\xf1\xac\x37\x68\x8b\xba\x94\xe7\xa5\xd2\x22\x27\x0b\xf7\xda\x6d\x60\x46\x77\x38\x27\x78\x80\x3d\x3a\x97\x84\xc2\x72\x70\xf7\x9b\x2f\x8e\x3f\x6f\xb0\x2e\x3b\xef\xee\xf3\x29\x28\xa3\x72\x35\xa7\xcd\xb9\x13\x2c\xee\x13\xb7\x93\x65\xb6\x6a\x84\x00\xdf\x68\x09\x19\x24\x62\x52\x06\x09\x83\x6c\x5c\xef\x08\x5d\x2b\xc1\x3d\xc5\xcb\xf3\x20\xd1\x72\x19\xc8\xa3\xe4\x33\x10\x17\x6b\xe9\x36\x9f\x75\xab\x75\x37\xbc\x6e\xeb\xbc\x51\x07\x30\xa1\x5c\x70\x96\xd0\x8c\xfd\x13\x52\x52\x16\x82\xbb\xe4\x45\x14\x6b\x13\xaa\x60\x8c\x81\xa4\xdc\xb2\x73\xd5\x00\x0f\x34\xdc\x41\x0b\x81\xb2\x1e\x86\xcd\x19\x76\x6f\xa9\x8e\x43\x6a\xd4\xd8\xf1\x60\x24\xcc\x66\xdb\x70\x5f\xb7\x16\x2b\xce\x8e\x27\x9f\x85\x2c\x49\x6c\xd6\x69\x30\xe2\xc1\x26\xde\x81\x16\x84\x26\x09\xc2\x23\xda\xeb\x0a\x19\xaf\xad\x07\xdd\x9b\x7b\xdb\x88\x80\x7d\x93\xbd\xac\x87\x5f\x12\x5e\xe6\x53\x90\x35\x58\x8c\xd4\x9b\x73\x1a\x18\x13\xde\x1a\xd6\x0e\xe7\x1d\x7c\x5e\xc6\xa0\x7c\x0e\xe4\x95\x19\xf9\x4f\x7f\xfc\xe3\x1f\xfe\x18\x61\x1c\xf3\x7a\x55\xac\x39\x27\x17\x67\x97\x67\x3f\x5d\x7f\x3c\x47\xf4\xce\xd0\xee\x23\x65\x21\xc7\xce\x41\x8e\x9a\x81\xfc\xa8\xf9\xc7\x08\xe6\x12\xcc\x65\x63\x1f\x89\x6b\xa4\xca\x6c\xc2\x52\x59\xc4\x4f\xa7\x93\x38\x3b\xb6\x35\x26\xab\x08\x79\x83\x4d\x8f\x98\x61\x58\xbd\xe0\x54\x2a\x03\x28\xa2\xa9\xfb\xd7\xa6\xb7\xf5\x98\xf9\xb4\x94\xb6\x9c\x25\x1a\x98\xda\x76\x7b\x57\xd2\x12\xa9\x20\x53\x98\x09\x09\x64\x0a\x38\xf5\x95\x97\xe1\x0b\x32\x0b\x28\x48\x04\x4f\x43\x94\x83\x58\xc2\xae\xa3\x24\xea\x69\xbc\xb6\x7d\x7a\xcb\x71\x7d\xc9\xb8\xc1\x50\xc7\x34\x2b\x1d\x67\xe7\xc7\xe1\xa0\x16\x88\x03\x7b\xfb\xd3\xbf\x75\x77\x92\x25\xc5\xb5\x48\x6e\x23\x5a\xce\x02\x59\xdb\x1b\x73\x06\x13\xeb\x0f\xbc\x39\xbf\xb2\xc4\x99\x95\xb9\x7c\x7f\x53\xa3\xee\x60\xaa\x54\xed\xda\xfd\xd6\x79\x0c\x29\x4f\xc9\x2d\x14\x61\x7a\xa7\x07\x4f\xf6\x21\x7d\xed\x88\x3e\x34\xcb\xdb\x90\x3a\xc2\x85\x4d\x6f\xb7\x5c\xc2\x87\xe2\x59\x81\x39\x0c\x6f\xbd\xe1\x00\x47\x8f\xa0\xd3\x51\x66\x94\x65\x46\x0a\x91\x25\xd7\x2c\x07\x97\x24\x96\x14\x95\xcb\xb4\x19\x9a\xf0\x05\xb1\x9f\x2f\xd5\x2a\x79\x54\xd7\x18\x3e\xd4\xba\x18\x0a\x4f\xf2\x65\xab\x0b\x8e\x83\x5b\x5c\xa7\x41\x5d\x38\xa4\x0d\xea\x42\x47\x75\xa1\x90\x70\xad\x45\x67\x99\x34\x5a\x08\x8e\x25\x63\x47\x00\x8e\x13\x55\xe9\xce\xc8\x18\x17\xcf\x1e\x10\x7c\x7a\x76\x75\x51\xf9\xc8\x44\x2b\xfa\xc5\x66\x36\xfb\x6a\xc7\x19\x5b\x02\x07\xa5\x4e\x31\xd6\xa6\x2c\xac\x01\x1a\xef\xb8\x52\x42\xf7\xb8\x9f\x42\x02\xe4\x38\x8f\xa3\x1a\xd6\xc9\xbc\x2e\x70\xfb\x21\xe8\xc4\x3a\xd7\x1b\xb7\x26\x17\xba\x9a\xae\x59\x90\xcf\xbf\x51\x98\x58\x52\xb5\x00\xac\x58\x01\x9f\x98\x56\x76\xd0\x2b\x04\x3f\xf2\x33\x6e\x04\x87\xb9\xa4\x09\x90\x02\x24\x13\x46\xd8\x28\xb9\x4e\xc5\x1d\x27\x53\x98\xff\xff\xec\xfd\x7d\x73\x1b\xb9\x95\x36\x0e\xff\xbf\x9f\x02\xe5\xa4\x6e\x49\x1b\x52\xb2\x93\x4d\x2a\x99\x27\x95\x29\xad\xac\xf1\xa8\x62\xcb\x7c\x24\xcd\xe4\x4e\xcd\xcc\xce\x82\xdd\x20\x89\x5b\xdd\x40\x07\x40\x4b\x62\x6a\x3e\xfc\xaf\x70\x0e\xd0\x8d\x26\x29\xdb\x04\x5a\x22\xed\xe9\xde\xaa\xec\x98\xa4\x1a\xef\x07\xe7\xe5\x3a\xd7\xe1\x42\xfb\x15\x4b\xe9\x92\xdf\x12\x80\x2d\xe2\xba\xa9\x47\x78\x4c\xae\x3a\x05\x3b\x1c\xcd\x5b\x26\x5b\x99\xe9\xa6\x68\xd4\xd3\x94\x80\x16\x03\xdb\xa0\xa6\x45\xb1\x6c\x37\x9e\xcf\xbc\x37\x8f\xcf\x50\xfc\x86\xc0\x99\x3d\xac\x05\x0c\x34\x67\x05\x5d\x62\x8e\xf9\x8c\x0b\xf0\x12\x2b\x7d\x74\x9c\x0e\xd6\x8a\xee\xa0\x54\xc1\x3b\x1f\xdd\x19\x5c\x13\xc5\x68\xb6\x48\xd1\xec\x06\x54\xd8\xc7\x9e\x01\x15\x16\xf9\x0c\xa8\xb0\x6d\x9f\x01\x15\xb6\xed\x33\xa0\xc2\xf6\x09\x75\xb0\xff\x91\xbc\x01\x15\x36\xf8\x5f\x56\x9e\x01\x15\x16\xf5\x0c\xa8\xb0\x8f\x3e\x7b\x27\x9f\x07\x54\xd8\x27\x3c\x03\x2a\xec\x13\x9f\x01\x15\x36\xa0\xc2\x06\x54\xd8\x80\x0a\x4b\x78\x06\x54\xd8\xf6\xc3\x1b\xc2\x3c\xf1\xcf\x80\x0a\x1b\x50\x61\x5b\x3e\x03\x2a\xec\x93\x9f\x01\x15\x36\xa0\xc2\x3e\xf4\x0c\xa8\xb0\x01\x15\xb6\xf1\x19\xbc\x92\x6b\xcf\x80\x0a\xdb\xf0\x0c\xa8\xb0\xed\xda\x19\xcc\x85\xb4\x97\xf5\x6e\x2e\x78\x84\xd3\x44\xc9\x69\x3a\x91\x15\xbc\x45\xbb\x2b\xe6\x8b\xa4\xb1\x4a\xc1\x5e\x3c\x0f\xee\x62\x4f\x40\x2a\x3d\x60\x2d\xfa\x14\xae\x7b\x8a\xb1\xd8\x4f\x7c\xc5\x3e\x62\x2b\x76\x81\xab\xd8\x39\xa6\xa2\x9f\x78\x5d\x0f\xb1\xba\x9e\xae\xb0\x27\xf0\x7b\x3b\x2c\xee\xcd\x42\x31\xbd\x90\x45\xb4\xc0\xe9\x4b\xd8\xbc\xe3\x82\x97\x75\x69\xcf\xae\xb6\x32\x85\xdf\x35\x78\x61\xdd\x58\x68\x08\x23\xc6\x50\xa6\xfd\x21\xcf\x19\x94\x74\xa6\xbc\xb0\x5b\x0b\x18\x08\x17\xf4\xce\xca\x1b\x5d\x67\x19\x63\x79\x8a\x55\x14\xba\xc1\xfe\x70\xdc\xf4\x10\xc9\xb7\xb9\x26\xaf\xd2\xae\x9a\x34\x45\x29\xf0\x06\xfc\xe1\xf7\x51\xef\x98\xab\xaa\x9f\x2b\xf9\xcd\xd5\xe4\x2c\xb8\x92\xa9\xf0\x37\x32\x17\x77\xb2\x80\xd5\xa0\xf8\x23\xab\x90\xef\xf0\x7e\x4e\xb7\x4e\x93\x2c\xd3\x3e\xd4\x83\x54\xe3\xab\xab\x76\x5a\xfb\xa8\x1b\x61\x99\xc3\x5a\x32\x75\xc7\x33\x76\xfc\x0c\xf6\x4d\x5f\x36\x43\xfa\x71\x20\xe0\x6b\x84\x81\xef\x8b\xf2\x75\x8d\xdd\x69\xdc\x94\x81\x69\xeb\x7a\x0a\x98\xb4\x82\x66\xcd\xda\xc0\xfa\x7d\x0b\x37\xe8\xd9\x82\x65\xb7\x57\x08\x8f\x49\xea\xc6\xa1\x66\x6c\x13\xfd\xbc\x15\x20\xf8\x3f\xd3\x42\x4e\x4f\x4a\xaa\x0d\x53\x27\xb9\xcc\xdc\xe5\x3e\xce\x6c\x0f\xb8\x98\x1f\x97\xf9\xd1\xf1\x7f\xfc\x47\x52\x27\x2e\x9c\xb3\xcd\x25\x74\x04\x2c\xcd\xe0\xb9\x47\x51\x4d\xa6\xcc\x8a\x7f\x09\x7e\xb1\xa0\xe0\x9c\x9d\x95\xf4\x5d\x9a\x70\x8d\x27\xa2\x15\x9f\x1f\xa9\x38\x48\x5b\xd2\x83\xff\xaf\x4f\x61\xb0\x1f\x68\xc4\x27\x43\x22\xf6\xa2\x29\xf7\x84\x40\xdc\x23\xf4\xe1\xde\x58\x32\xfb\x82\x38\xec\x0d\x6d\xd8\x17\xd2\xb0\x17\x94\x61\x1f\x08\xc3\xfe\xd0\x85\xfb\x5a\x3b\xff\xc9\x10\x85\x9f\x05\x9a\xb0\x47\x77\x78\x4f\x28\xc2\xe7\x40\x10\xee\xaf\x07\x85\xf4\x80\x1a\x7c\x3e\xc4\x60\x2f\xf3\xd8\xab\xf5\x99\x28\x12\x76\x80\x10\x7c\x8e\x70\xdf\x93\x85\xfa\x7a\x08\xf3\xf5\x19\xe2\xeb\x2d\xbc\xf7\x64\x48\xc0\x74\x14\x60\xaf\xbe\x80\x67\x41\xff\xf5\x89\xfc\x4b\x5e\x5f\x2e\xb8\xe1\xb4\x78\xcd\x0a\xba\xbc\x4e\x43\x81\xf5\xb5\x12\x97\x6b\x48\x31\x74\x3a\x77\xb1\x82\x0b\xea\xca\xf9\xb3\xdc\x43\x05\x7d\xbc\xd8\xa9\xc0\x10\xea\xc5\xf1\x25\xe1\x06\xb7\x4c\xfa\xbf\x97\xea\xb6\x90\x34\xd7\x27\x95\xc4\xff\x69\x53\xfe\x83\x5c\xff\x24\x35\x7d\x3f\x9c\xdb\x48\xac\xb0\x27\xbb\xe6\x5b\x79\x4f\xe4\xcc\x30\x41\x0e\xb9\xf0\x3b\xe7\x28\xf0\xd2\xb4\xc1\x8d\xe4\x68\x85\x7d\xeb\xab\x97\xbe\x91\x2f\x2f\x6a\x01\x71\x1d\xad\xf7\x3a\x6e\xe5\xfa\xf8\xf1\xc0\x95\xfb\xe1\xac\x2e\xba\xc1\x2b\x0c\x68\xf5\x13\xb9\x7a\xd5\x16\x65\x7e\x05\xfd\x69\x44\x11\x15\x39\x71\x04\x3d\x5f\xde\x3e\x49\xc6\xb9\x76\x8d\x9b\x06\x98\xfa\xb1\x38\xd7\xcd\xd9\x64\x08\x73\xed\x97\xe3\x75\x47\xa0\xcb\x2f\xcf\xe2\x7a\x7e\x90\xe5\x60\x71\xfd\x5a\x2c\xae\x80\x1b\xeb\x8d\xa2\x19\x9b\xec\x93\x02\xe7\x05\x48\x9b\x21\xd4\xea\x71\x8d\xb8\x10\x8c\x61\xe6\x48\xcb\x7c\x06\x24\x5f\xb3\xba\x28\x96\xe8\x47\xec\xd0\xe0\xc5\x6f\xad\x9b\x05\x5b\xe3\x0f\xeb\xe4\x2f\x05\xbd\x6b\xed\x93\x4a\x49\xa7\x95\xa8\x5a\x08\x7b\x5b\xb9\xe3\x64\x3b\x6f\xed\x11\xcd\x44\xbc\x4b\x9d\x76\xd8\xcd\x34\x9f\xdb\xe9\xb2\x1a\x06\x10\x9f\xb5\xb9\x0b\x9d\x8e\xd8\x56\x67\x52\x65\x7c\x5a\x2c\xc9\x82\x16\xd6\x60\xc2\x4a\xf7\xe4\x96\x17\x85\x7b\x4d\xfc\x44\x5d\x33\x83\x51\x63\xd4\x6a\x0a\x29\xe6\x30\x19\x14\x3b\xc2\x1e\x2a\x96\xd9\x36\xb3\x82\x51\x51\x57\xd8\x4f\xab\x23\x2d\x65\xad\x7c\x3f\xe3\x9b\xf7\x31\xeb\x46\xa7\x12\xbc\x18\xf9\x29\xef\xf2\xe0\xad\xef\xf9\xd6\xad\xac\x59\xee\x28\xec\xee\xb9\x66\x23\x78\x67\x74\x9f\xb0\x2f\xf2\x8e\x29\xc5\x73\x17\x3b\xc6\xcf\x2a\x25\xef\x78\x8e\x01\x73\xbf\x2d\xac\xb6\x13\x3f\xfe\xef\xe1\xbd\x5e\xb4\x0a\x29\xc6\x82\xcd\x29\xa8\xc8\x4e\xa0\x21\x26\x13\xdb\x47\x04\xa0\xc8\x79\x46\x0d\xb3\x06\xb4\xac\x3a\xfc\x96\x77\x9c\x46\xf7\xc4\x8e\x27\xd8\x51\xe4\x50\x48\x22\x21\xb5\xa8\x16\xdc\x2c\x21\xaa\xb7\xa8\x0d\xc9\xe5\xbd\x38\x4a\x39\x98\x88\x50\xa0\x64\xca\x0c\x6d\x13\x83\xbc\x4a\xa6\x09\x13\x74\x5a\xd8\xb3\x07\x90\xef\x9b\x8d\x1b\x80\xcc\x18\x35\xb5\x62\x64\x4e\x4d\x82\x94\xd8\xa0\xd1\xe3\x7a\x7e\x78\xdb\x71\xed\x62\x76\x33\x52\x0b\xcd\x12\x15\xd9\xde\xcc\x80\xc8\x94\x37\x7b\xa2\x65\x6d\xf6\xe4\x1e\x79\xcc\x7d\x74\xbf\xe0\xd9\x22\x34\x14\x79\xc9\x34\x91\x75\x82\x37\xaf\x63\x02\xba\xe6\xfa\xb4\xf2\x06\xdf\xd3\xc6\x27\x36\x74\xda\xc7\x0e\xbb\x0c\xb4\xf2\x0d\x69\x23\x2d\x66\x0a\x93\x29\x5f\x5f\x5e\xff\xfc\xf6\xf4\xbf\xcf\xdf\xc6\x6d\x01\x90\x75\x22\xd4\x9d\x6b\xc1\xff\x55\x33\x42\x4b\x69\x2d\xe1\x22\xcc\x58\x19\x81\xb3\x33\xf8\x00\xa4\x62\xbf\xb9\x2d\x91\x7a\xad\xbd\x04\xa2\x04\xc3\x1a\x94\xf2\x39\x12\x78\x62\x91\x20\x09\x08\x90\x2e\x1a\xc6\x8f\x01\xb0\xa3\x41\xfe\x3c\x25\x82\x19\x7b\xc6\xd1\x20\xe4\x82\x50\xa2\xb9\x98\x17\xc9\xb6\x60\xb2\x47\x24\xd5\x1f\x32\x6e\x47\x30\x89\x75\x8b\xa4\x3b\x45\x3a\x7d\x88\xb7\x2a\xfb\x73\x08\xb4\x97\x99\x77\x01\xb0\x87\x4a\x6a\xe6\x5d\x00\xa8\xe3\x5e\x4c\x08\xcd\x73\x95\xa4\x47\x3b\x61\xd3\xd8\xe8\x98\x84\x8d\xcd\x62\xf8\x77\x44\x5e\x92\xbf\x92\x07\xf2\x57\x70\x08\xfc\x29\xbe\xa9\x7e\xcc\xed\x3e\xd0\xc8\x0b\xa9\xcd\xc5\xa4\xa7\x85\xfe\xc7\x82\x1a\x78\xa3\x5d\x0f\x23\xc9\x94\x3b\xcb\x8c\x3d\x18\xa6\xac\x46\xec\xd6\x30\x75\xe6\x92\x9c\x0b\xb6\x83\x9f\xcb\xee\x4e\x8d\xb5\x5e\xcc\xba\x18\xe6\x67\xda\xdf\xd0\xf0\xb7\x52\x9b\x4b\x27\xad\x43\x02\x81\xb0\x1f\x25\x35\xd9\xa2\x2b\xee\x53\x5a\x7d\x67\xf7\x5e\x70\xfd\xe7\x12\x2e\x4a\x4c\x48\x5b\xf0\x04\xe1\xb0\x3f\x27\x36\x0d\x36\xd7\xdf\xd6\xfd\xd0\xd6\x5a\x71\x6f\x82\x1a\xe6\xf4\xb6\x80\xa6\xbf\x92\xf9\x31\x39\xa7\xd9\x22\xa1\x17\x76\x36\xf2\x40\x19\xa8\x64\x8e\xdd\x58\xd0\x3b\xbb\xc7\x5d\xab\x00\xe1\x43\xd5\xb5\x09\x96\xc1\x81\xb3\x12\x2b\xa3\x82\x4c\x53\x30\x64\x8a\xcd\x98\x52\x98\xf4\x38\x5d\xfa\xac\x89\xe4\xdd\x96\x24\xe5\x2a\x25\x8d\xcc\x64\xb1\x0f\x5b\x65\xe2\xfa\x02\x73\x0f\x61\xab\x26\x58\xf8\xdd\xeb\xc9\x88\xdc\x9c\x4d\x46\x44\x2a\x72\x7d\x96\x86\x05\x09\xad\xd1\x17\x37\x67\x93\x17\x3b\x5d\x01\xe2\xc3\x3d\x10\xd8\x8b\x78\xc9\x3a\x9a\xb0\xa4\xd5\xf8\x96\x2d\x23\xb5\xbb\x3e\x34\xcc\x71\xb3\xb1\x7a\x19\x10\x4e\x73\x49\xab\xad\xdf\xa6\x18\xcd\xf9\xc0\x8d\xf0\xe9\xcf\xc0\x8d\xf0\x89\xcf\xc0\x8d\xf0\x29\xcf\xc0\x8d\xf0\xa9\xcf\xc0\x8d\x10\xfd\x0c\xdc\x08\x9f\xf0\x0c\xdc\x08\xdb\x3f\xbb\x77\xe1\x93\x81\x1b\x21\xea\xd9\x39\x68\x6c\xe0\x46\xd8\xfc\x0c\xdc\x08\x03\x37\xc2\xc0\x8d\x30\x70\x23\xb4\xcf\xde\x41\x74\x07\x6e\x84\x0f\x3d\x03\x37\xc2\xc6\x67\x6f\x2c\x99\x81\x1b\xe1\x91\x67\xe0\x46\x78\xe4\x19\xb8\x11\x06\x6e\x84\x81\x1b\xe1\xc3\xcf\xc0\x8d\x10\xfd\x0c\xdc\x08\xdb\x3d\x43\xa6\xce\x96\xcf\xc0\x8d\x30\x70\x23\xac\x3e\x03\x37\xc2\x47\x9f\xfd\x70\x6e\x0f\xdc\x08\x03\x37\xc2\x07\x9f\x81\x1b\x61\xe0\x46\xf8\xe0\x33\x70\x23\x7c\x29\x8e\xd7\x81\x1b\x61\xe0\x46\xf8\x50\x1b\x83\xc5\xb5\xdd\x33\x70\x23\x0c\xdc\x08\x6b\xcf\xc0\x8d\xb0\xfe\x0c\xdc\x08\x03\x37\xc2\xc0\x8d\x30\x70\x23\x34\xcf\xc0\x8d\xf0\xa5\xfb\x9e\x14\xd3\xfc\xdf\x6c\x22\x0b\x9e\x2d\x93\xd3\x42\xae\x98\x96\xb5\xca\xec\x8d\x0d\xaf\x25\x15\xbc\xb7\xf1\x2a\x24\x29\xd9\x7b\x96\x6b\x7f\x15\x4c\x5c\x98\x73\xaf\xdc\x1c\x3c\xc5\x14\xec\x45\xde\xbd\x1f\xe0\x65\x3c\x8a\x00\x5e\x62\xa8\x32\x38\x7d\x71\x0e\xd3\x64\xab\x3d\x1c\xc8\x3e\xe4\xfd\x85\x54\x21\xcd\x2e\x32\xb2\x11\xb6\xfc\xd1\xcd\x45\xab\xaa\xe0\x29\x19\x94\x84\x5c\x37\x45\xdd\x41\xd4\xea\xaf\x48\x56\xd5\x23\x52\xb2\x52\xaa\x84\xd4\x86\x1e\x2c\xb8\xce\x56\xd9\x87\x75\xba\xc2\x0e\xf9\xc9\x37\x12\xe6\x7f\x89\xf6\x42\xcb\xe7\xd2\xac\x15\xf7\xe2\x30\x09\x6f\x76\x31\x5b\xc5\x91\x72\xd3\xf1\x02\x5d\x4a\x73\xe5\x0e\xf7\xce\xd6\xab\x67\xd4\x82\x9f\xc2\x74\x2a\x98\xc8\x05\x6f\x2f\xb4\x4f\x4e\x75\x24\xe7\x1b\x3e\x85\x18\xa8\xae\xec\x4b\x9a\x31\x45\x75\x88\x16\x8a\xd1\x7c\x09\xdd\xc8\x00\xb3\xd7\xfa\xff\x3e\xc3\x2c\xcb\xac\xa0\x3c\x1e\xe8\xd7\xd7\x91\x3e\x83\x5e\x10\xbb\x5f\x5b\xe0\x3a\x64\x82\x35\x8b\x35\x6a\xd0\xd9\x1c\xcf\xf8\xb1\xff\x0a\xff\x78\x94\x60\xe9\x51\x03\xbb\x0b\x8c\x18\x30\x65\xb9\x0e\xd5\x84\x78\x18\x7a\x63\xdd\x09\x42\x8b\x6a\xf1\x61\xfb\x2e\x25\xc3\xf1\xf5\x52\xd0\x92\x67\xfe\xb4\x9c\xe2\xe6\xe4\x52\xac\x58\x86\x89\x43\xc1\xee\xdb\x31\x95\x65\x6d\xe8\xb4\x60\xc7\xe4\x02\x09\x09\xa4\x28\x96\xd6\x66\xd7\xcc\x78\xac\x41\x42\xee\x31\xe9\x05\xc8\x9a\x08\x62\xdd\xa8\x59\xc3\x6e\x43\x06\x05\x26\xac\x5c\x92\x82\x11\x26\x8c\x5a\xda\x8d\x39\x91\xf9\xb5\xdd\x9b\x9d\x5f\x27\x13\x2b\x24\x62\x57\xfb\xc0\xad\x26\x62\x56\xfb\x41\x9a\xa6\xa3\x4c\xfb\x45\x98\xb6\x71\x00\xe4\x85\x09\x53\x6e\x3a\xdb\xc2\xde\x0d\x1b\x64\x16\x91\xb3\xc4\x1e\xd8\x16\x27\x32\xb7\x9a\x8f\x62\x28\xb8\x9a\x33\x8a\x5e\xc0\x0b\xdb\xb9\x5b\x70\xdb\x51\xd3\xaa\x44\xf4\x8e\xf2\xc2\x1e\xe0\xc4\x0e\x34\x89\xcb\x3d\x85\x6f\x7a\x50\x57\xfb\xa6\xa1\x20\xa9\xdb\xbf\x4f\x1a\x09\xfb\x14\xbc\xe4\x71\xe4\x7c\xa4\xc7\x23\xf0\x16\x7a\x11\xa0\xf9\xed\x5e\x2c\xe9\x03\x78\x8b\x68\x29\x6b\x61\xec\x39\xc8\x64\x59\xd5\x26\xd0\xba\xbc\x02\xf7\x6c\x6e\xa4\x4c\x8a\x19\x9f\xbb\x40\xc7\x49\x49\x05\x9d\xb3\x71\xd3\x9d\x71\x7b\x51\x9d\xec\x2e\x00\x4f\x73\x9f\xeb\x3f\xe9\x23\xe5\x93\x1a\xc3\x94\xf8\x8a\xfc\xcf\xe1\x8f\xbf\xfb\x65\x7c\xf4\xf5\xe1\xe1\x0f\x2f\xc7\x7f\xf9\xe9\x77\x87\x3f\x1e\xc3\x7f\xfc\xe7\xd1\xd7\x47\xbf\xf8\x7f\xfc\xee\xe8\xe8\xf0\xf0\x87\xbf\xbf\x7b\x73\x33\x39\xff\x89\x1f\xfd\xf2\x83\xa8\xcb\x5b\xfc\xd7\x2f\x87\x3f\xb0\xf3\x9f\x3e\xf1\x25\x47\x47\x5f\xff\x36\x3e\x18\x94\x1a\xf9\xec\x2f\xee\xd9\x53\xd4\xf3\x49\x62\x9e\x2e\x7b\x68\xe7\x87\xdf\x25\x89\xae\x1d\x7f\xe7\x2c\xfe\xd0\xf1\x57\xc9\x26\xf2\xc5\xac\x6d\x9f\x6b\x22\x4b\x6e\x8c\x33\x08\x69\x48\x26\xb2\x62\x9e\x3b\x81\xc5\x67\x78\x15\x72\x1d\x92\x5a\xb4\x56\x7d\x74\xb7\xa4\x8f\xb7\x81\x43\x42\x10\x5e\x56\x05\x2b\x99\x30\x20\x78\xc6\xde\x7c\x01\xef\xce\x71\x3b\x82\x8c\x0a\x6b\xd6\xb2\x87\x8c\xb1\xdc\x75\x72\x90\x8d\xc1\x33\xc8\xc6\x41\x36\x7e\xec\x49\x76\x51\xf6\xe4\xab\x0a\xdd\x92\x6b\x01\x07\x2b\x17\xf0\x88\x79\x0f\x33\xfc\xbc\xc9\x40\x97\x33\xc2\x62\xd9\x05\xdb\x46\x1c\x61\x21\x8d\x75\x48\x79\x5a\x59\xba\x5c\xb3\xe9\x57\xd8\xaa\x31\x61\xd8\xc9\x2f\xed\x81\x13\x68\x7f\x48\x11\xd5\xf4\x5e\x70\x5f\x6b\x96\xd5\x8a\x9b\xe5\x99\x14\x86\x3d\x44\x81\xe9\xfa\xd8\x4e\x2d\x06\xf1\xba\xdb\x21\xe7\x09\x73\x09\x83\xee\x3b\x22\x2b\x24\x86\x7a\x94\xe7\x7c\x21\xeb\x22\xb7\xcb\xa9\x6a\x01\xbb\x24\x6e\x77\x5c\xcc\xec\x5a\x23\x28\x05\xd6\x1a\xfc\x74\xab\x5d\xf4\x70\x11\xec\xce\xbf\x6a\x7e\x47\x0b\x26\x4c\xf0\x17\x13\x00\x10\x84\x7f\xf4\x19\xba\x4f\xc1\x96\x99\x28\x7e\xc7\x0b\x36\x67\xe7\x3a\xa3\x05\x5c\xa5\xbb\xd6\xcf\x4e\x1f\xe9\x17\xec\x07\x25\x0b\x4d\xee\x17\xcc\xea\x2b\x56\x4e\x20\x68\x09\xbc\x78\x73\xca\x05\x29\xa5\x4a\xf1\xf4\xb8\x46\x35\xa2\xa6\xac\xca\x55\x51\x65\xd7\xde\xa3\xa3\x50\xc0\x4c\xa5\x2c\x1c\xc7\x5b\xb1\x6c\xfb\xc5\xe3\x5d\x22\xe0\x7e\x91\x3f\x0b\x76\xff\xb3\xed\x85\x26\xb3\x82\xce\x1b\x50\x94\x15\x50\xab\x50\xd3\x74\xc0\xd6\xa3\x13\x0d\x04\x66\x35\x23\xb4\xb8\xa7\x4b\xdd\x42\xd9\xda\xb6\x79\x82\x16\xf3\xea\x08\x4e\x31\xd5\xa4\x69\x3b\x8f\x7e\xd9\xef\x8f\x20\xff\xe8\xec\x74\xf2\xf3\xf5\x3f\xaf\x7f\x3e\x7d\xfd\xee\xe2\x32\x1e\xb0\x22\x0d\x43\x05\x3b\xb8\x0d\xdc\x1d\xe1\x56\xa1\x09\xd3\x1d\x4b\x7d\x0c\xfe\x32\xc8\xa5\x16\xb9\xbc\x4f\x74\x16\xdb\x3d\xc5\x68\xdc\xd5\x43\xab\xea\x54\x95\x52\x4d\x94\x9c\xf1\x22\xda\xcf\xd8\xd7\x09\x5e\xe9\x8e\x07\x6c\x9e\xba\x8f\x5b\x71\x8f\xe9\x7d\xeb\x61\x8b\x40\x50\x73\x48\x22\xb3\xaf\x89\x37\x6e\x3a\xf0\x3f\x04\x23\xae\x74\x31\xfe\x10\xed\x74\xcf\xec\x3c\x71\xc2\x76\x23\xf2\xcf\xfb\x70\xab\x17\x32\xa3\x05\x70\xcc\xa7\x6d\x7c\xd2\xb3\x7b\x7d\xb5\x5f\x01\xd0\x93\xfa\xed\x4c\x0a\x49\x73\x96\x7b\xb9\x2e\x64\xce\x3c\x25\xa5\x57\x76\xc0\x0b\x9e\xd4\x91\x1b\x04\xd9\x41\x7b\x1e\x99\x5a\x29\xe6\x4d\xe7\xd5\xe6\x25\x32\x71\x26\x35\xf9\xae\x1b\x53\x70\xa3\xec\xe4\x50\xa4\x9e\xb9\xa6\x19\x77\xc0\xf8\x0c\xc2\x92\xa0\xf2\xf3\x19\x6c\x4a\x7b\xc4\x5e\xbc\xf5\xcb\x90\x40\x4e\xdd\x53\x66\x0b\xbc\x64\x4f\x76\x27\xce\x4f\xb3\x23\x11\x21\x74\xcb\xed\x0c\xce\x5a\x21\xed\xb7\x8d\xd7\x41\x10\x26\x94\xb8\x1f\xbf\x87\x32\x08\x5e\xfe\x53\x95\x4c\xcb\xd1\x2c\x31\x19\x07\x47\xab\x52\x6c\xbc\x7e\xbc\x52\x49\x49\xae\x6a\x61\x78\xc9\x7c\xea\xe9\x78\x45\x27\x52\xf8\xf5\x81\x6e\xf8\xd9\x7a\xd9\xe8\x84\x7c\x27\xe0\xbc\x0a\x96\x93\x31\x11\xb2\x5d\x22\x26\x66\x52\x65\xe0\xa7\xdb\xe9\x06\xcf\x68\x45\xa7\xbc\xe0\x29\xc2\xbc\xaf\x0d\x0e\xac\xc7\x41\x7f\xc0\xa1\x99\xe7\x27\xb9\x92\x15\xde\xc4\x3e\x1f\x24\x3d\xca\xdf\xc5\x1d\x87\xcc\x7c\xa0\xb0\xcf\xba\x1d\x99\x2b\x2a\x4c\x9b\x70\xb0\xb6\x71\x7e\x8d\x3a\x48\x1f\x4a\x00\xcd\xfb\xe3\x0f\x3f\xcd\xad\xcc\x08\x97\x2d\xf9\x5c\xed\x1b\x9b\xd9\x99\x1f\x5c\x00\x3c\x26\x93\xf7\xd7\x17\xff\x77\xe5\xdc\xc4\xab\x76\xf8\xec\x37\x97\x91\x95\x07\xbd\x6d\x9b\x2b\x56\xca\xbb\x61\xe3\x7c\xf1\x1b\xa7\x71\x10\xed\x9c\x88\xe1\xaa\x16\xa1\x3b\x46\x04\x5d\x23\x65\x92\xae\x33\x69\xf2\x15\xbb\x6f\x0d\x2b\x3d\x2a\x46\xec\x4f\x84\xe1\xb4\x28\x96\xa1\x8f\xd4\x48\xac\x50\xd0\x4b\x4d\xad\xf0\x76\x9d\xd1\x42\x7f\xae\x57\x64\x8a\x6b\xa7\x52\x32\x7b\x27\x6b\xd1\x0f\xb3\x43\xc2\x8e\x6b\x3a\x42\x72\x26\xa4\x71\xde\x14\xb0\x25\xe4\x0c\xbe\x25\x18\x39\x0f\x48\x9b\x3a\x7a\x4e\x82\x9a\x75\x13\xa8\x56\x5c\xfb\x7d\x31\x69\x7a\x84\x26\x4c\xad\x99\xde\xac\x5a\xb5\xb1\xf4\x99\x8c\x0f\x21\x2a\x46\x73\xb0\x31\x2b\x6a\x16\x48\x28\x52\x52\x7d\xcb\x72\xfc\x20\x31\x91\xb2\x01\xd5\x02\x2e\xce\x0f\xed\xc6\xce\xaf\xc7\xc1\x82\x4f\x18\x69\x55\x00\x79\x9b\x62\x8d\xed\xf4\x40\x24\xc8\x76\xbb\x08\xef\x45\xb1\xbc\x92\xd2\x7c\xd3\x54\x3b\xd9\xf5\xe1\xf8\x87\x8b\x48\x74\xfd\x98\xe0\x9a\xa6\xd0\xe5\x31\x6c\x1c\x10\x8d\x41\x8d\x96\x54\xc9\x68\x17\xe4\xd7\x2a\x18\x55\x2d\x4e\xf5\x1b\x25\xeb\x68\x35\xae\x4f\x93\xf3\xcd\xc5\x6b\xb8\xfb\x6a\x97\x6b\x2f\x8c\x5a\x56\x92\x23\x90\xa8\xe7\xb8\xcd\x77\x8e\xd5\x20\x94\x6c\xc9\x09\xcc\x84\xbc\xa3\x4b\x42\x0b\x2d\x1b\xaf\x9a\xd8\x14\xe7\xf4\x41\x54\xfb\xf5\x54\x9a\xc5\x5a\xf4\x94\x8a\xf8\x68\xce\x7a\x7b\xa3\x20\x65\xbf\xcd\x8e\xe2\x62\xad\x59\x03\x40\xe1\x4a\xb1\x8c\xe5\x4c\x64\x9f\xeb\x89\xd8\x75\x06\x39\x9c\xaa\x4b\x29\xac\x78\xdd\xf5\xb9\xba\x68\x5c\x94\x6e\x35\xc2\x53\x04\xde\x6c\x17\x47\xa4\xc0\xb6\x00\xc2\xb5\xd6\x29\x28\xee\x8b\x19\x04\x3e\x71\xd3\xfd\xbd\x9e\xb2\xc2\x2e\x36\x2f\x0a\xac\xdf\x4a\x0d\x62\x02\x78\x49\xe7\x8c\x50\xd3\x1c\x42\x23\x09\x13\xba\x56\x6e\xdf\xf0\xf8\x7c\x87\x5c\x32\xdd\x54\xd6\xa2\x9a\x7c\x77\xf1\x9a\xbc\x24\x87\x76\x6c\x47\xa0\x71\xcc\x28\x2f\x80\xc0\x01\xf0\x37\x2b\x51\xd9\x19\xe0\x06\x65\x4a\x32\xe7\x85\x93\x23\x44\x2a\xbc\x5a\x46\x44\x48\xa2\xeb\x6c\xe1\xe7\x80\x4b\xd1\x38\x85\x1d\xa3\x5f\x12\x22\x7a\x10\x3b\xfd\xdd\x87\xdf\x69\xa6\x76\x7d\x6c\xed\x75\xf8\xdd\x33\x5e\x87\xa1\x95\x68\x8f\x7f\x77\xc1\xf0\xac\x96\xcc\xd0\x9c\x1a\xea\xae\x49\xff\x83\x61\xd7\x0e\x97\x65\xc2\x65\xa9\xd9\x5b\x2e\xea\x07\x04\xbb\xed\x45\xe4\xe3\xfa\x1c\x7a\x04\xc7\x0b\x16\x5a\x06\xa1\x3b\x1f\xa4\xe8\x21\xdd\xe9\xa2\x73\x8c\x46\x8f\x58\xdd\x70\x4b\xf8\x64\x63\x6b\x08\x51\x91\xcb\x72\xad\x93\x90\x0d\x9d\x52\x9a\x3a\x00\x8e\x0c\x07\xd3\x3d\xbf\xee\x98\x50\xc1\xee\x58\x42\x39\xee\x95\x43\xf9\xd6\xbe\xcd\x4e\x8e\xdf\xb9\xf0\x7a\x52\xd0\x29\x2b\x5c\x0a\x36\x72\x68\xf4\x78\xc2\x7a\x72\x83\x2b\xd9\x23\x2a\xe6\x4a\x22\x98\x8b\x36\x13\x61\x5f\xff\x59\xcc\x43\xaf\xf8\x8b\x1b\x07\x30\x69\xe7\x01\xdc\xa0\x9f\xc3\x3c\xd4\x09\x0a\x22\x59\x9d\x07\xab\x6d\x76\xe7\x01\xf4\xaf\x7d\x9f\x07\xcd\xb2\x4c\x96\xd5\x9e\x80\x25\x6f\x10\x08\x6f\x7b\xf4\xa9\xc0\xc8\xee\x8f\x69\x12\xe2\xd9\xb1\x20\x52\x83\xf7\xa0\xa7\x42\xfc\x3f\xc1\x75\x0e\xd2\x6e\xf5\x8e\x77\xad\x27\x83\x32\x9b\x16\xdd\x0b\x7f\x8d\x37\xde\x80\xc4\xec\x3c\xcf\x8e\xc4\x0c\xd8\x59\x28\xb8\xe7\x3b\xa8\xc8\x2f\x01\x8f\x69\x8d\x00\x98\x57\x26\x72\x2e\xe6\x10\xb0\x1a\x11\xc5\x0a\xe4\x27\x75\xe2\xf9\x16\x3d\x5e\x07\x20\x71\x7c\x87\xbc\xb8\x69\x61\xab\xc8\xce\xd2\x2b\x7c\x73\x13\x64\x13\x7f\x73\xf9\xfe\x26\x4c\xe3\xa2\x62\x89\xc9\xaa\xf0\x27\x3b\xbf\x4e\x3f\x1b\x58\xe7\xea\x2a\x3e\x35\xaa\x33\xad\xfc\xed\x66\x54\xe7\xf3\x1d\xd3\x4f\x43\x7a\xae\xe2\x3c\x7b\xed\xc2\x2a\xe8\x73\xbd\x8d\x1e\x96\x2e\xf9\x0c\xb8\xbb\x73\x8f\x3c\x20\xff\xc0\x1e\x79\x33\x3b\xb3\x92\xc3\x70\x31\xd7\xa1\x17\x84\x16\xa9\x49\x9a\xf8\x6c\x72\x83\xf8\x63\x30\x53\xb2\xf4\x1c\x37\xab\x66\x7e\x87\xec\x3a\xa5\xf5\x8f\xb8\x30\x3e\x6f\x57\x44\x61\x4d\x8a\xcf\xdc\x11\x31\x2f\x35\x3d\x53\x76\x06\x0d\xa7\xc5\x75\xc5\xb2\x7d\xb9\x2e\xde\xbc\xbb\x3e\xed\xf6\x0c\x94\x61\x47\xc6\xc4\xe0\x7b\x42\xf3\x92\x6b\x0d\x11\x1f\x36\x5d\x48\x79\x9b\xd4\xe4\xe1\x86\xb2\xea\x01\x46\x4f\xf3\xb9\x3e\x71\x12\x65\x6c\x27\xee\x88\x70\x51\x34\xd9\xc2\xe0\x2e\x14\x46\xbb\x10\x42\xf2\xe0\x49\xd6\x8c\x1e\xb6\x1e\xe4\xa8\x34\xf0\xec\xf5\xe9\x01\xc6\x2c\xd8\xbc\x3b\x57\x3b\xd6\x77\x55\x1a\x0d\xed\xca\xce\x7a\x64\xec\x1b\x0a\xf3\x6f\x9c\x47\xb4\x5e\x77\x3e\x49\x4e\xeb\xcf\x98\xee\xaf\x3c\x76\x0f\x55\xcd\x5d\x97\x48\xce\x90\x99\x9e\x01\xad\x0b\x7d\x34\xdb\x1d\xe2\xdb\x07\x50\xca\xc7\xfd\xe9\x41\x5f\x84\x65\xa7\x45\x61\x17\x92\xda\x6b\xe2\x40\x87\x08\x4f\xb0\x4d\x16\xf4\x8e\xb5\x85\x7d\xd9\x6c\xc6\x32\xb0\x16\xc2\x51\xa4\x97\xbd\x3d\xe4\x00\x63\x0a\xe9\x51\x8d\xc4\xb6\x29\x29\xf9\x83\xed\x61\xd8\x62\x88\x43\x15\x39\x44\xfe\x37\x7f\x9d\x50\xd9\x80\x00\xfa\xa0\x61\x6f\x19\xd9\x15\x0a\x1b\xf1\x09\xd2\xc6\x5e\x5b\xf6\x8b\x4b\x66\xac\xa5\x86\xf3\x16\x86\x1f\xac\x65\xa5\xea\x1e\x0e\x43\x4a\x68\x98\x84\xe1\xe1\x5e\x25\x45\xe2\x79\x80\x50\xb1\xeb\x93\xd5\x41\xbc\xf2\xf6\x5c\xa1\x63\xb2\x21\x85\xe7\xd9\x42\xc8\xe4\xd3\xc3\xc8\x4f\x18\xac\x22\xfb\x12\xb0\x4a\x25\x3e\xc1\xd2\x7e\x50\x68\x24\x99\xf5\x64\xd2\x96\x2d\xfd\x24\xda\xe6\x88\xf6\x76\x4c\xfe\xc1\x1e\xe2\x35\xd1\xce\x54\x9d\x3f\xb0\x2c\x28\x13\x68\xb7\x8d\xab\x13\x68\xcf\x13\xbd\x4d\x44\xc4\xec\x5c\x81\xcf\x64\x59\x52\xd1\x5f\x86\x59\xa2\xc4\x3c\xc3\xee\x78\x5d\xcc\xf5\xce\x9a\x4a\x88\x42\x7b\x60\x59\x6d\x98\xa7\x36\xed\x88\x4b\x3c\xd3\xf6\x9a\xe2\x62\xee\xd8\x4b\xa4\x6a\xb8\x9e\x92\xba\xe5\xfb\x01\x74\xf5\x52\x1a\x72\x78\x70\x72\x70\xe4\x4b\x6e\x35\x5d\x38\xd0\x21\xfa\x19\x73\x35\xdb\x01\x69\x5e\x56\xc5\x12\xc6\x70\x80\x0c\xf5\x09\x95\x9f\xec\xe3\x71\x74\x0d\xd1\xab\x5e\xb0\xa2\x18\x11\x6d\x2f\x65\xea\x99\xd9\xf0\x53\xfb\x23\xa3\xea\x0c\x8d\xf7\xc3\x83\x5f\x0e\x46\x84\x99\xec\x88\xdc\x4b\x71\x60\xd0\x0f\x4b\x6e\x40\xb3\x4d\xea\x53\xd3\x89\xa5\xac\xa1\x88\x1a\x2e\x5b\x43\xe6\x97\x51\xab\x94\xd5\xa8\x39\x20\x1d\x00\x2b\x12\x8a\x82\xd9\xe7\xfc\x81\x1b\x2b\x20\x4d\x0d\xc6\xd3\x4b\xd4\x5f\x18\x30\xc0\x53\x0d\x25\x52\x4f\x16\x8c\x16\x66\xb1\x6c\x74\x2a\xac\x4f\xa5\x49\x2d\xdc\x37\xe9\x92\x7d\x0f\x12\xda\xf6\x37\xb5\xcc\x95\xc9\xdb\xeb\x4a\xbf\xae\x8f\x1f\x2d\xf4\x8b\x05\x7d\xbb\x45\x7e\xa1\xf8\x2f\xcb\xfb\xaa\xf3\xfb\x87\x2f\xaf\x86\xef\x5c\x55\xfd\x5c\xc9\x6f\xae\x26\x67\x1f\xad\xdc\x0b\x3f\x1a\x4a\xf7\x26\x53\x72\xf6\x59\xb1\x76\x22\x95\x21\xa2\xa9\x9a\x66\x4f\xd8\x1c\xd6\x92\xa9\x3b\x9e\xb1\xe3\x67\x28\x10\xdb\x17\xd9\x66\xfa\x71\x20\x80\xd4\x80\x81\xef\x8b\xf2\x75\x8d\xdd\xd9\xe4\x08\x73\x3d\x85\x2a\xf7\x05\xcd\x9a\xb5\x81\xf5\xfb\x16\x6e\xd0\xb3\x05\xcb\x6e\x1d\x75\x6e\x9a\xc7\x44\x33\x46\x36\xb8\x52\xad\x00\xc1\xff\x99\x16\x72\x7a\x52\x52\x6d\x98\x3a\xc9\x65\xe6\x2e\xf7\x71\x66\x7b\xc0\xc5\xfc\xb8\xcc\x8f\x52\xea\x69\x90\xa0\xda\xa7\x73\xdd\xac\x04\x41\x7c\x64\xac\xe1\x07\xe5\xba\x09\xdf\x4d\x97\x30\x2b\x3b\xf5\x0f\xda\xd9\x7b\xd3\x53\xb5\xf4\x6f\x6f\x6e\x26\x6f\x3a\xb5\xd2\x21\xf3\xd9\x98\xca\x53\x5e\xc3\xae\xc0\x4c\x89\x41\xda\xee\x4d\xa1\xf4\x1e\x7c\xb9\xdb\x14\x57\x07\xc2\x59\xab\x30\xd1\x69\xb1\x24\xf7\x14\x33\xa5\x35\x4b\x93\x05\x2f\x6c\x37\x5e\x58\x69\x63\x37\xdc\xb7\x8c\xe6\x4c\x69\xb0\x65\x18\xdd\x7d\x9c\x22\xe8\x53\x6f\xcb\x76\x56\x6b\x23\x4b\xb2\x70\x43\xc5\x39\x6c\xae\x42\x3c\x70\xc7\x70\x28\xd1\x6f\xa3\x89\x62\x15\xda\x3a\xee\x6f\xbe\x08\x4b\x66\x4d\x04\xe1\x3c\x07\xa4\xf6\x94\x64\xe1\x54\x39\x35\x1d\xab\xdd\x0a\x9c\xa0\xa4\xf2\xa3\xf8\xf4\x52\xe5\x87\xf4\x54\xe9\x87\xa4\x57\xfb\xf1\x2f\x49\x0f\x6c\xf4\x53\x37\x88\xf4\x52\x3b\x88\xf4\x5e\x3f\x88\x38\xf7\xbd\xdb\x5c\x18\xd4\xb7\x1d\x4d\x65\x3b\x23\x9e\x10\xc1\x83\x24\x32\x2a\xa4\xe0\x19\x2d\xf8\xbf\x59\x8e\x95\xe5\x65\x6d\xaa\xda\x80\x23\x27\xa3\x9a\x8d\xef\xa8\xe2\x56\xa0\x62\xe9\xb5\x06\x5d\x21\xec\x69\x37\x52\x82\x97\xa3\x09\x64\x61\x8f\xd3\xbb\xd9\x93\x2f\x81\xf8\x32\xe5\x3d\xaf\xf0\xda\xe2\xa4\xef\x68\xb2\xd7\x1e\x14\x82\x15\x12\x16\xfd\x99\x63\xd4\x2c\x00\x2d\x94\x41\xd0\xcf\x81\xcd\x40\x70\x5a\x75\x7f\x0f\xd0\xfc\xbd\x5a\x9f\x89\x22\x01\x0b\xd0\xaa\x15\xfb\xd5\xf6\x70\x7d\x0e\x7b\x8a\x5f\x3f\xbd\x39\x1c\xd6\x49\x9b\x32\x42\x05\xb9\x38\xbd\x3c\xfd\xf9\xfa\xfb\xb3\x9f\x2f\x4f\xdf\x9d\xa7\xbc\x3a\xb9\x32\x46\x9f\xb5\x31\x7a\xab\x8e\xf1\x44\xb5\x83\xec\xa3\xb3\x05\xdb\x9f\xd0\xf5\x35\xf4\x26\x24\x3b\x72\x36\x00\x94\xc3\x94\x3d\xb0\x5f\x91\x15\x97\xa7\x15\x3c\x3b\x95\x38\x5c\x70\xc3\x69\xf1\x9a\x15\x74\x79\x8d\x15\xfd\x77\xed\xa5\xbe\x6c\x84\x0d\xd6\xfc\xd7\xce\xe9\xdc\xc5\x09\x2c\xa8\xc6\xf8\x30\xcb\xc9\x94\xcd\xa4\x62\x10\xf3\x10\x56\x22\x55\x6d\xa8\x17\xc7\x67\x9e\xb1\xbc\xdb\xbd\x54\xb7\x85\xa4\xb9\x3e\xa9\x24\xfe\xcf\xb8\xe0\x33\x96\x2d\xb3\x82\xfd\xa6\xe9\xff\x38\x49\x4d\xdf\x0f\xe7\x76\xc5\x14\x07\x94\xc1\x3e\xec\x9a\x6f\xe5\x3d\x91\x33\xc3\x04\x39\xe4\xc2\xef\x9c\xa3\xc0\x4b\xd3\x06\x37\xd2\x29\x9a\x8c\x24\xaf\x5e\xfa\x46\xbe\xbc\xa8\x05\xc4\x75\xb4\xde\xeb\xb8\x95\xeb\xe3\xc7\x03\x57\xee\x87\xb3\xba\xe8\x06\xaf\x30\xa0\xd5\x4f\xe4\xea\xd5\x71\x93\xfc\xf2\x0a\xfa\xd3\x88\x22\x2a\x72\x0f\x63\xf9\xf2\xf6\x89\xc9\xaa\x6b\x99\xdd\xf6\xe4\x73\xbd\x39\x9b\xe0\xdb\x3e\x1a\xe7\xba\x39\x9b\x0c\x61\xae\xfd\x72\xbc\x1e\xb4\xd5\xa1\xb6\x75\xa2\x1e\x0c\x16\x57\xfb\x78\xe5\x47\x75\xab\x2b\x0c\x16\xd7\x23\xcf\x60\x71\x6d\xf1\x20\x38\x1d\x32\x3d\xdf\x28\x9a\xb1\xc9\x3e\x29\x70\x5e\x80\x90\xdc\x95\xff\x24\xad\x1e\xd7\x88\x0b\xc1\x58\x8e\xf2\xc3\x0d\x85\x91\xb9\x1d\xc9\xac\x2e\x8a\x25\xfa\x11\x51\x0d\x70\xb0\x96\x34\x7a\x5a\x78\xb5\x53\x73\x7d\x80\x78\x53\xef\x5a\xfb\xa4\x6a\x88\x96\x7d\x45\x02\x77\x9c\x6c\xe7\xad\x3d\xa2\x99\x88\x77\xa9\xd3\x70\x05\x89\xe6\x73\x3b\x5d\x56\xc3\x00\xd6\x5e\x60\xe7\xf1\x65\xbd\xda\x8e\xd8\x56\x67\x52\x65\x7c\x5a\x2c\xc9\x82\x16\xd6\x60\xba\xe7\x66\x41\x28\xb9\xe5\x45\xe1\x5e\x13\x3f\x51\xd7\xbe\xd0\x22\x6a\x35\x85\x14\x73\x98\x0c\xea\xb0\xde\x0f\x15\xcb\x6c\x9b\x59\xc1\xa8\xa8\x2b\xec\xa7\xd5\x91\x96\xb2\xee\x01\xee\xed\x63\xd6\x8d\x4e\x25\xb8\xe3\x35\xc0\xa2\x50\x1f\xdc\xf3\xdd\xa4\x3d\xf2\xde\x57\xcc\xc5\x22\x55\xd1\x7d\xc2\xbe\x74\x4b\x54\xe1\x67\x0d\x37\x83\xcb\x48\xb2\xdb\x02\x52\xe4\xa2\xdb\xfa\x1e\xde\xeb\x45\xab\x90\x62\x2c\xd8\x1c\x33\xc0\x9d\x40\x43\x4c\x26\xb6\x8f\x08\xc0\x26\x9f\x58\x1b\x59\x11\x5e\x96\x2c\xb7\x36\x72\xb1\x24\x77\x9c\x46\xf7\x04\xb2\xcd\xdb\x1d\x45\x0e\x85\x24\xb2\xb2\x57\x57\x2d\xb8\x59\x42\x54\x6f\x51\x1b\x92\xcb\x7b\x91\x90\xc7\x71\xe3\x10\x0a\x94\x4c\x99\xa1\xce\x0f\x6e\x0f\x41\x43\xb6\x0c\x3c\xca\xf6\xec\x01\xe4\xfb\x66\xe3\x06\x68\xf8\x97\xe7\xd4\x24\x48\x89\x0d\x1a\x3d\xae\xe7\x87\xb7\x1d\xd7\x2e\x66\x97\x48\xf0\xba\x1f\x94\x69\xf6\x44\xcb\xda\xec\xc9\x3d\xf2\x98\xfb\x08\x73\xe7\x03\x43\x91\x97\x4c\x13\x59\xf7\xc4\x65\xff\xca\x35\xd7\xa7\x95\x37\xf8\x9e\x36\x3e\xda\xe4\x3c\xaa\xa2\x69\x1f\x5b\xec\x11\x56\x70\x97\xdf\x17\x10\xe3\x4d\xeb\xd9\x8c\x29\xb8\xe9\xa0\xc3\x6b\xc0\xf9\xa6\x46\x90\xbf\xc3\xe2\x1c\xb8\x0e\xab\xc5\xcc\x08\x48\xc9\x5d\x92\xfa\x23\x4d\x3a\xf6\x3e\x28\x01\xaa\x98\x06\x92\x69\x41\xce\xdf\x7f\x13\xb7\x45\xfb\xa0\x2c\x4f\x4b\x85\x83\x71\xbe\x17\x71\x78\xc2\x7e\xf7\xc3\x26\x36\x09\xb7\x2d\xb2\x42\x6a\x97\x76\x09\xeb\x92\x2d\xa8\x10\xcc\x3b\xa4\xb8\x01\x6f\xf6\x94\x31\x41\x64\xc5\x10\x4f\x17\xd5\x19\x4a\x34\x17\xf3\x82\x11\x6a\x0c\xcd\x16\xc7\xb6\x77\xc2\xef\x85\x36\xbf\xd1\x7d\xa2\x8d\x62\xb4\xc4\x3d\xa1\x58\x49\x39\x36\x4f\x68\xa6\xa4\xd6\xa4\xac\x0b\xc3\xab\xe6\x65\x71\x9e\x44\x06\x99\xe6\x1a\xd3\xdd\xfc\x5a\x41\x62\x48\x9b\x48\x39\x6a\x7b\xe8\x86\x2f\xc3\x42\x28\xe0\x3e\x1b\xd9\x6f\x59\x59\x99\x25\xb1\x53\x5b\x44\x67\xb7\xcc\xb8\xd2\x86\x64\x05\x67\xc2\xb8\x91\x21\x97\x19\xf4\x61\xe4\xd5\x69\xe1\x66\x44\xbb\x29\x11\x39\x18\xdf\x95\xd1\x04\x12\x06\x9b\x4e\xf8\x57\xe5\x5c\x3b\x5f\x87\x1e\xc5\xad\x9d\x2f\x79\x81\x1b\xc7\xcf\x08\x6c\x1d\xaf\xe0\x60\x8f\xdc\x47\x41\x17\x82\x1a\xbe\xbe\x8c\xbb\xd5\x67\x53\xe4\x0a\xd4\xa5\xf0\xe7\x7a\xd4\xc9\x65\x6e\x6d\x0b\x48\x66\x59\x93\x3a\xb0\xa1\x04\xbb\xb3\xe7\x80\x65\xcc\xaa\xa2\xb4\x47\x21\xf3\xec\x32\xc6\x50\x35\x67\xe6\xcc\x8f\x3f\x36\xd9\xb6\x0f\x69\x13\x16\x3b\x0f\x1d\x44\xed\xe2\xc0\x3a\x4c\x64\x0e\xe4\x0f\x2d\x41\xc7\xa6\x0a\xec\x38\xae\x48\xdb\xeb\xe6\x91\xb2\xee\xde\xa2\xc2\x1c\xad\xa6\xa3\xba\xa2\x19\xd3\xe4\xf0\x62\x72\x36\x22\x93\x8b\xd7\x2e\x11\x4b\xce\x56\xd9\xf0\x62\xa7\xa5\xad\xf9\xef\x2c\xe0\x4d\x9d\x6b\xaa\xc9\x04\x5d\x0a\x68\xb1\x5c\x7f\x27\x8d\x51\x16\x07\xa7\xbe\xd9\x78\x15\x80\x89\xc6\xcb\xaa\x80\xda\x8e\x44\xd7\x60\x1a\xb9\xe8\x85\xdd\xdb\x68\x90\xb8\x53\xcb\x5a\x42\x22\xc7\x1e\x1f\x19\xc9\xc1\x56\x9a\xf1\xba\x45\x87\x80\xb6\x9f\x29\xa7\x08\x80\xc6\x6c\xdc\x57\x0d\xa7\x0b\xa4\x8b\x39\x98\x77\xfc\xf5\x1e\xe9\x0f\x0b\xac\xa8\x77\x4c\x6b\x3a\x67\x93\x48\x30\x50\x1f\x87\xaf\x75\x71\x03\x8a\xa8\x15\xd8\x0b\x86\xd4\x55\x46\x06\x9f\x84\x09\x92\xa1\xdb\xa6\xc4\x81\x44\xf5\xc0\x1f\xae\x7b\xc5\x8d\x61\x70\x3f\x40\x7d\x26\xd8\xbb\xab\x7c\x9c\xdd\xc4\xcc\xa8\xf6\xdc\xa4\x87\xed\x59\xc5\x5f\xe4\x98\xe2\x38\x65\x64\xaa\x38\x9b\x91\x19\x87\x9c\x4b\xc8\x46\x1c\x61\x61\x01\x8a\xc1\x1b\xad\x99\x82\x61\x3b\x87\x9c\x1f\x7e\x5c\x7f\xfe\xe1\xc6\x6f\x54\x2d\x32\x1a\x14\xde\x04\xb6\x30\x3e\x23\x73\xc8\x80\x74\xee\xa7\xff\x7a\xf9\x97\x3f\x91\xe9\xd2\x5a\x4a\x70\x26\x8d\x34\xb4\xf0\x1d\x20\x05\x13\x73\xbb\x8a\xa0\xec\xc4\xdd\xd8\x1d\xc6\xa9\x66\x71\x0a\x5e\x72\x83\x13\xf4\xea\xf7\xb7\xd3\xa4\x4b\x0f\x34\x93\x93\x9c\xdd\x9d\x04\x5b\x68\x5c\xc8\x79\xdc\x5b\xcf\x1a\x82\xa6\xba\xca\x63\x51\x11\x7d\x9f\x68\x59\xf0\x6c\xb9\xb3\x0b\xd5\xf9\xc2\xc8\x42\xde\xa3\x1b\x75\xfd\xa8\x06\xe4\x2d\x95\xac\xea\x02\x26\x8e\x7c\xd3\x50\xee\xd5\x9a\xad\x92\x19\xa5\xba\xe7\x03\x69\x07\x10\x06\xd7\xec\xca\x5d\xef\xd2\x7f\x7d\x37\xa5\xa3\x92\x70\x11\xef\xa6\xb4\x48\xb4\x1f\xfc\x1b\x5a\x14\x53\x9a\xdd\xde\xc8\xb7\x72\xae\xdf\x8b\x73\xa5\xa4\xea\x8e\xb9\xa0\x56\x9b\x5e\xd4\xe2\x16\x6a\xe3\xb6\xfc\xb2\x72\xee\x10\xbd\x40\x05\xd9\x9d\xd8\xa8\xce\xf8\x51\x22\xe3\xa7\x37\x06\xbc\xf7\xbb\x6d\x99\x3d\xf0\xd6\xc5\x2d\x08\xb3\x7d\x8e\x57\x71\xc2\x71\xe8\xf0\x68\xff\xfe\xe5\x7f\xfd\x19\x85\x0b\x91\x8a\xfc\xf9\x25\xa4\xeb\xeb\x11\x5e\x00\xa0\xfb\x5a\x23\xa7\xa4\x45\x11\xab\xd4\x84\x22\xe0\x9b\xe8\x92\xd3\x7b\x70\xe4\xcd\xce\x4e\xf7\x27\x3b\x6b\x6e\x6e\xfe\x09\x9a\x18\x37\x9a\x15\xb3\x11\xf2\xb7\x34\x0e\xe5\x03\xb0\x6b\x0e\xdc\x95\x17\xcf\xfd\xb3\x7b\x77\xc9\x9d\x2c\xea\x92\xbd\x66\x77\x3c\x8b\x83\x0e\x74\x56\xa5\xf3\x36\x1f\x20\x2b\xb8\x06\x5d\x72\x5a\xc8\xec\x96\xe4\xee\xcb\x20\x51\x65\xb5\x56\x76\xfc\x2c\xc4\xa6\xec\x24\xa4\xea\x3c\x3a\xfe\x4e\x92\x4e\x49\xab\xca\xea\xd1\x40\xc4\xa5\xe8\x7d\x67\x32\x40\x34\x01\xdf\x69\xa2\xd5\x93\x0c\x63\x49\x05\xb1\x8c\xdd\x88\xec\x35\x15\xfd\x8a\xe8\xcc\x9e\x74\x0c\x4c\xdb\xfb\x78\x04\x41\x67\x43\xb4\x2f\xf4\xa7\xa1\x82\xff\x46\xae\x92\x35\x5b\xbd\x29\x81\xd6\x6c\x0c\xd4\x20\xed\xf6\x81\x5b\x26\x3e\x70\xd0\x03\x0c\x21\x2d\x43\xa9\x33\x2f\xa2\x81\x7f\x94\xd4\x38\xfb\xc8\xbb\x2f\x28\xa9\x98\xd2\x5c\x5b\xd5\xe9\x7b\x38\x50\x67\x05\xe5\x65\x10\x38\xdf\xd5\x24\xac\xe7\xb3\x94\xb4\x1a\xdf\xb2\x65\xe4\x86\x4b\x3c\x2e\x8f\xa5\xd7\x94\xb4\x8a\xbc\x07\xa0\x1a\x6d\xfa\x35\x10\x79\x39\x4f\x64\xee\xfa\x01\xd7\x03\x16\x1a\xfe\x98\x19\x4b\xae\xeb\x29\x9c\x29\xf8\xf9\xd3\xd2\x79\xf5\xaa\x3c\xed\xfa\xae\xfa\xbe\x5d\xf1\xee\x55\x65\x3f\x69\xee\x2a\xfc\xd5\x97\x74\x43\xc1\xf8\x3e\xd7\x0b\xaa\xe9\x7c\x4f\x72\x38\x09\x9c\x08\xd7\x9a\xdb\x19\xdd\x7b\xac\xe3\x09\xc3\x23\x1d\xd8\xcc\xce\x43\x75\x8c\x05\x02\x12\x3a\x60\x8f\xa2\x6b\x94\x1c\x7c\x75\xb0\xd3\xcb\x11\x57\x46\xc9\x8a\xce\xc1\xa4\xdd\x87\x05\x5a\xed\x53\x48\x47\xbb\x90\xf7\xa1\xc8\xac\xdc\xaf\xac\xc4\xf4\x9c\xe6\x0b\x99\xb4\x3a\x08\xf6\xf5\x3b\xc2\x99\xe5\x58\xd6\xe1\x9e\x2e\x09\x55\xb2\x16\x49\xec\x05\x10\xcb\x6c\x62\xdd\xef\x56\x06\x7b\x29\x05\xf3\xb8\x9a\x94\x56\x6e\x3a\xae\x6f\x80\x18\x71\x41\x5e\x1d\xbf\x7a\x99\xdc\xf7\x2b\x96\xd5\x4a\xf3\x3b\x76\xe5\xea\x9d\x07\x71\xd0\x8b\xd9\x44\x6a\xcd\xa7\x05\xe4\x5b\x1a\x49\xce\xb1\x18\xfc\xfa\x40\x1b\xac\x17\x8c\x58\xaa\x90\xb8\x34\xa1\x87\x87\x78\x82\x43\x8c\xb6\x6d\x20\x01\xa8\xb5\x5f\x2a\x28\xac\xeb\x8a\x0a\x7a\xd9\xa8\xa0\x78\xef\xed\x74\xac\xbe\x08\xfe\x3e\x48\x92\x77\x2e\xa8\xd0\x56\xb9\xe7\xbe\x8a\x32\x7c\x74\xaf\xb8\x71\x87\xfb\x9e\x6b\x46\x0e\xc1\x9d\xb1\xb2\x19\x93\xb8\x9a\x43\xe7\x57\x62\x35\xfc\x3e\xb8\x96\xd5\xea\xd1\xdd\x87\x55\x5a\x97\x27\x6d\xe2\xcc\xbd\xf3\x7c\xb5\x2b\xe8\xa4\x7f\x7b\x2f\x2f\xa8\xc8\x8b\x24\x99\xd1\xcc\x4a\xb1\x4c\xa3\x9e\xba\x98\x91\x50\x26\x3a\xcc\x41\x10\x85\x5c\x50\x4d\x84\x24\x25\xa3\x00\xaa\xb6\xd7\x8b\x17\x83\x1d\xde\xe6\x1e\x3b\x81\xdb\x1d\x2f\xb2\xf0\x4a\x70\x02\xfb\x35\xd7\x4e\x40\x5b\x49\xe2\x8c\x17\xc4\x62\x95\x34\x4f\xe1\x64\x08\x66\xb5\x5d\xbe\xe3\x16\xe9\xbc\xda\x93\xf6\xea\x58\xe9\xcb\x53\xf4\x63\xe4\x0a\x92\xdb\xe6\x31\xb6\xbc\xc1\xa3\xd7\x22\xdb\x92\x20\x28\xf8\xac\x0e\xb7\xb9\x18\xd7\xc6\xba\xb9\xc7\x4d\x87\x13\xfa\xf0\xf1\xa1\x8e\x02\x69\xe8\x81\xdd\x88\x83\x71\x05\x51\x5c\xaa\x72\x1a\xad\xb7\x8f\x67\x34\x9e\xa2\x39\x13\x4c\x51\x17\x92\xf0\xb8\x6e\x17\xd4\xa7\x5a\x8a\xe4\x13\xf1\x91\x1d\x67\x45\xfe\xc7\x35\x15\xfc\xb3\x84\x8e\x80\xaa\x73\x28\xd5\xca\x79\x77\xd1\x96\x4d\x4a\x4b\xaf\xc3\x5e\x21\xc3\xc3\xed\x1f\x90\xed\xda\x65\xf9\x57\xcd\xef\x68\xc1\x90\xd2\xde\x0b\x87\x9d\x2a\x14\xba\x9e\xee\xab\xe9\xe8\x6c\x44\x30\x3d\x36\x23\x26\x1e\xb5\x22\x7b\xd2\x29\x5e\xbc\x20\x87\xd8\xc6\x01\xb2\x5b\xef\x56\xd1\x75\x6b\x75\xfe\x50\x25\x54\x72\xed\x6f\xbd\xce\x1f\x2a\x0a\x20\x8f\x6a\x2f\x16\xee\xbf\xd9\x82\xde\x31\x20\x13\xe7\x05\x55\x05\xe4\x92\x5c\xe3\x94\x91\x69\x6d\x08\x13\x77\x5c\x49\x01\xc0\x2a\xe0\x8d\xb2\xa2\x49\xb1\x19\x53\x4c\x64\x4c\x93\xdf\x1e\x7e\x7f\x7a\x05\xb9\x86\x47\x60\xfe\x32\x3f\xbe\x5a\x3b\x24\x54\x67\x0c\xc1\xeb\xf6\x71\xbf\x11\x3f\x76\xbb\x5d\x40\x43\xf1\x73\x61\xc7\x56\xd6\xa6\xa6\x05\x70\xae\x67\x45\x6d\x6f\xc3\x9d\xed\xec\xfe\x1d\xe8\x29\xde\xbc\x3e\xfd\xe7\x8e\x71\xff\x35\x8f\x3a\xae\x7d\x1c\xd4\xb3\x60\xbf\xae\xf1\xff\xa7\xa1\x28\xbb\xb4\xaf\x6b\xaa\xce\x81\x6e\xa8\x60\xc3\xf4\x39\x77\x19\xc7\x61\x3b\xf8\x7c\x61\x1c\x6f\xc3\x0a\x18\x33\xc0\x36\x97\xd1\xb8\xb1\xdd\x82\x20\xfa\x3b\x06\x11\xce\xe8\x7e\x76\xfd\x42\x6a\x73\x5a\x70\xaa\xb7\xf5\x65\xa7\x6d\xf5\x6f\xdb\x66\x21\xe5\x4f\xb8\x4a\x8c\xb4\x68\x60\x06\xb6\x67\x08\x75\xba\x98\x38\x40\xba\xdf\x95\x5c\xfc\x3f\x4c\x3d\x6d\x82\x4a\x98\x12\x0a\x7f\xb2\x65\x4f\x10\x75\x34\x23\x91\x35\x82\x62\x63\x40\x51\xd1\x9f\x54\xf1\xd2\xcc\x3a\x59\xc8\xc2\x25\x5f\x7b\x44\xc3\x94\x99\x7b\xc6\x04\xb9\x98\xc0\x9c\xdb\xa9\x44\x82\xc6\xcd\x33\xef\x94\x63\x61\xd4\xd2\x1d\xe8\xad\x7b\x13\xac\x19\xac\xc2\xb6\x47\x37\x21\x06\x15\x1f\x7d\x1a\x13\xbe\xed\xa5\x92\x12\x2d\x6a\x96\x21\xf9\x36\xfa\xb6\x59\x50\x4f\xab\x43\xa7\xf2\x8e\xc1\x7a\xe7\xb9\x8a\x4c\xd5\xde\x59\x08\xb4\x77\x05\x26\x89\xd1\x92\x57\xc9\xeb\xd3\xae\x83\x87\x93\x40\x49\x65\x10\x4f\x70\xcc\x9e\x1d\xde\x47\xbc\x36\xf0\x15\x79\xf1\x62\x67\xf7\xe2\x96\xc7\xad\xbf\x5b\xf1\x62\x72\xf6\x9c\x37\xe2\x77\xce\xbf\x64\x9b\x3e\xd0\x84\x57\x59\x9b\xdb\xb1\xed\xd2\xb7\xf9\x0c\x01\xaf\x59\x84\xb3\x3d\xd6\xc1\xbe\x68\x8b\x2c\x3e\xb7\x52\x41\x04\xb6\x6b\xaf\x34\xc7\x2f\xee\xc0\x23\xe0\xf9\xa9\x64\x7e\xbc\x3a\xd5\xee\x2f\xe2\xa7\xdb\xbb\x95\x50\x85\x71\xee\xb4\x51\xc3\xef\xb3\x72\x85\x02\x54\xb2\x71\xa0\xc5\x56\x26\xdc\xdd\xc2\x4e\x2e\x5e\xef\xf0\x5c\x54\x3c\xff\xbc\xcf\xc5\x77\x7a\x6b\x7e\xfd\x5e\x27\x10\x2a\x66\xf6\x3b\x83\x31\xb8\x69\x57\x24\xd3\xfd\x35\xd0\x62\x49\x43\x2a\xc5\x34\x13\xcd\xd9\xc9\x37\x25\x1d\xc2\xb5\xd8\x1d\xc5\xc8\xfe\x7b\x56\x17\xdb\xaa\xfe\x52\x05\xbc\x3a\x0d\x09\x11\x6d\x28\x44\x20\xca\x40\xef\x28\x2f\xc0\xef\x14\x10\xc5\xae\x75\xc0\xa5\x46\x6d\xd9\x83\x42\xd2\x1c\x99\xef\x6e\xed\x9d\x55\x90\x52\xe6\x75\x81\x30\x2d\x72\x76\x3a\xf9\xf9\xfa\x9f\xd7\x3f\xbf\x7b\xff\xfa\xbb\xb7\x5b\x73\x69\x61\x82\x38\x6b\xb7\xf8\x88\x50\x22\xd8\x3d\xf4\x5c\x80\xd5\x95\x39\x47\x77\xc3\xb3\x68\x85\xe3\xb5\xcb\x14\xc4\xc0\x2f\xe2\x2e\x66\x75\x61\x7f\xb4\x65\x0f\x4a\x6e\xf8\x9c\xc2\xcb\x5a\x5b\x7f\xaa\x18\xbd\x95\xb5\x21\x77\x75\x21\x98\xa2\x53\x5e\x70\xab\x1a\x13\x76\xc7\x04\x82\xfd\xec\x1f\xd8\x4e\x86\x95\x65\xf9\xb6\x8d\x87\x85\x87\x5d\x95\x43\x3b\xa9\xb6\x65\x9a\x39\x3f\x9a\xe3\x8b\x84\x2f\x2b\xc5\xef\x78\xc1\xe6\xac\x21\x61\x8b\xe1\x03\xee\x62\x4c\x68\x51\x2d\xe8\xb8\x60\x77\x0c\xc9\x9c\xec\x15\x61\x77\xd4\x42\x0a\xa9\x30\xe4\x84\xd4\xe4\xee\x86\x00\x7a\x1b\x3c\xac\xbe\xce\x2e\xa6\xb2\x5e\xfb\x94\x52\x97\x49\xfa\x6c\xc2\x6a\x7b\x98\x46\x9a\xac\xba\xee\x56\xe5\x71\x3d\xf0\x0a\xf1\x64\x6b\xc4\xf0\x66\xc7\x57\x6b\x78\xc2\xdb\xbd\x8c\x71\x87\x85\x12\x44\xa4\x8e\x7d\x09\x24\xa0\x7b\x89\x99\xf3\xad\xf5\x6e\x70\x84\x4d\xea\xa2\xb8\x66\x99\x62\xdb\x02\x78\xd3\xa6\xfe\x62\xa5\xed\xc7\xdc\x32\x81\xf3\x1d\xaa\xb9\xb8\x1f\x8b\xb6\x64\x43\x90\x92\xdc\xf2\x6d\x57\x75\x51\x60\x80\x7f\xe9\x97\x13\x46\xab\x83\xd4\x11\xae\x7d\x7e\x7b\xcc\x6d\xd2\x59\x63\xcd\x9a\xae\xf9\xe5\xad\xa8\xd6\x6d\x38\xf5\x8e\xe7\x35\x2d\xa0\x5b\xe0\x81\x74\xd9\xdb\x14\x2b\x8a\x3a\x89\x58\x46\x56\xc7\xdf\x92\xdc\xa7\x95\x55\x27\x38\x27\xbf\xc1\xc1\x2c\xb9\x98\x8f\xe1\x13\xdb\x4d\x37\x9e\xb1\x14\x63\x3a\xde\x16\x3c\xff\x59\xb9\xa9\xde\xca\x8c\x16\xef\xc1\xaf\x73\xe5\x77\x9b\x17\xe8\x9a\x30\x21\xeb\xf9\x02\xa6\x57\x95\xd4\x17\x2f\x2e\x98\x81\x22\xad\x2e\xf1\x2b\xc6\x1f\xd5\xec\xec\xdc\x39\x95\xc2\xc2\xbc\xdd\x9d\xfd\x8c\xae\xaa\x14\xef\x51\x2c\xca\xae\x8f\x30\xc6\x65\x20\xb8\xdd\xcc\x46\xc6\xdc\xba\x97\x2a\x9b\xcd\x58\x66\x3c\x14\x04\xdd\x78\x23\x88\x15\xe6\x35\x92\x44\xd3\xec\xf6\x9e\xaa\x5c\x93\x4c\x96\x15\x35\x1c\x54\x8c\x65\x2c\x4e\xc4\xe7\x1f\x60\x9e\x1b\xe4\xa6\x1e\x93\x0b\xa1\x0d\x05\x19\xe8\x79\x2e\xec\x0a\xb7\xa9\xa9\x90\xc1\x8a\x34\x61\x0b\xa6\x18\xa1\x2a\x0e\xaf\x43\x8b\xd2\x2a\x9b\x19\x53\x76\xef\x17\x4b\x72\xaf\xa4\x88\x4c\x11\xbf\x79\xff\xfa\xfd\x57\xe4\x34\xcf\x1d\x76\xd7\xeb\x75\x76\x62\xf5\x31\xa1\x15\xff\x9e\x29\xcd\xa5\x18\x91\x5b\x2e\xf2\x11\xa9\x79\xfe\x75\x54\x4b\x5b\x8a\x3f\x79\xc7\xd4\x1d\x67\xf7\x27\xce\x6e\x1f\xdb\x69\x1c\xe3\x61\xd1\x27\x70\xe6\x4e\x7e\x03\xff\x2f\x61\xdc\xaf\x95\xac\xc8\xff\xda\x6e\x4c\x6b\x5e\xe4\x4c\x7d\xe5\x9c\x5b\xff\x8b\x26\x80\x15\x2f\x4a\xda\xcb\x60\x3c\x67\x02\xb8\x39\xc4\x81\xc1\x9a\xcf\xdc\x6c\x2a\xe0\x18\xf8\x99\x34\x9f\xeb\x93\xe0\xdd\x27\x5c\xeb\x9a\xe9\x93\x3f\xfc\xf9\x2f\x7f\xfa\x8c\xdc\x76\x2b\xde\xb3\x92\x56\xf1\x5e\xd1\x2f\x20\x34\xc6\x05\x6f\xb9\x81\x9e\x55\x17\x7b\xeb\x74\x2d\x57\xc3\x83\xff\x1b\xaf\xb9\xc0\xa6\x99\xb2\x42\x8a\x79\x50\xbd\xc4\xda\x6e\xdb\x2a\x4d\x82\x9b\x8e\x9d\x04\xf8\x09\x28\x49\x0f\x41\x5a\xa9\x72\xe0\x84\xe2\x88\x5b\xef\xb4\x0e\x45\xa2\x03\x36\x2a\x2a\xb6\xf5\xff\xf3\x4e\xeb\x40\x67\xa0\x5b\xbb\x1f\xb3\xba\x3d\xd3\xbf\x91\xd6\x56\x63\x4d\xa9\x6a\xb4\xa5\x1c\xcc\x95\xd0\x2c\x93\x2a\xdf\xfe\xa8\x58\x4d\xd0\x34\xb4\x5a\xc8\x56\x81\x7c\x22\x60\x16\x58\x1d\x90\x8a\xd5\x7e\x82\xa3\x42\x95\x1d\xf2\x21\xe7\xcc\xdb\xb2\xf9\x5a\xf0\x7f\xd5\x8c\xd0\x52\x5a\xb5\xb8\x48\xc9\x69\x5b\x5d\xc9\x92\x2e\xc1\xee\x81\x49\x7b\xeb\x79\x22\x1d\xe1\xbe\x1e\x01\x1a\x96\x07\x05\x55\x46\xe4\x6d\xb7\xc2\xca\xc8\x8e\xf3\x1a\xab\x1b\xb8\x8f\xb6\x37\x85\x81\x7f\x48\xd6\x2a\x63\x57\x78\x4f\x97\x8e\x43\x63\xc3\xb4\xda\xbd\x67\xe8\x2d\x13\x18\xd2\xb5\x4b\x0a\xf9\x6c\xb5\x82\x9d\x96\x2d\x58\x5e\x17\xdb\x2f\xf1\x74\x49\x66\x56\xdb\x77\x50\xa0\x05\x9f\x2f\x98\x36\xde\x31\x7c\x02\xac\x0f\x98\x59\x48\xb3\x45\xd3\x5d\x90\xbf\x01\x61\x5c\x8b\x25\x2a\xe9\xc3\xf6\x1c\x20\xa0\x22\x50\xe3\xc9\x83\xd1\xd7\xa2\xeb\xd2\x6b\x47\xab\xfb\x49\x1f\x93\xb7\xb6\x63\x78\x22\x69\x55\x15\xdc\xdb\x2d\x9d\x65\xde\xfa\xc0\x01\x8b\x20\x00\xad\xc8\x8c\xea\x05\x97\x22\x75\xa3\x65\x08\xbf\xc8\x6a\x65\xd5\xbb\x62\x09\x24\xf0\x79\x6e\x35\x68\x45\x14\x2b\xe5\xdd\xf6\x9e\xed\x64\x48\x47\x1a\xb5\xaa\x9d\xe4\x71\x60\x91\x7d\x26\x66\xd6\x69\x43\x10\x69\xf7\x4b\xb6\x72\x61\xe0\x06\xb4\xf6\x91\x2f\x65\xab\x6a\xd1\x26\x83\x46\x5c\x1e\x3b\x0a\xbe\x47\xa4\x6c\xa6\x18\x50\x54\xcd\x77\x96\x45\x7d\xaa\xe6\x35\x4a\x4c\x77\xc5\x43\x14\xb8\x92\x3c\xde\x8e\x5a\x03\x5d\x1d\x68\x72\xf6\xee\x75\xc8\x5a\x1d\x96\x09\xf7\x9c\xe6\x71\xcd\x7d\xdf\x2f\x5c\x13\xb4\x8c\x06\x03\x1a\xd5\xa3\xac\x91\x2c\x56\xd2\x17\x77\xde\x1f\xd8\x74\xd0\xbb\xb1\xb8\xa8\x6a\xe3\xf4\xef\xa0\x40\x69\xb6\xa0\x62\x6e\x15\x9e\xd7\xb2\xb6\x03\xfb\xed\x6f\x61\x10\x8a\xe5\x75\x16\x99\x6e\x83\xfe\x46\x3c\xb9\xbf\xf5\xa8\x77\x57\x09\x19\xee\x25\x9d\xd1\xca\x4f\x4d\x38\x7b\x7a\x29\x0c\x7d\xf8\x8a\xf0\x63\x76\x4c\x5e\xfc\x36\xf8\xea\x05\xf4\x38\xaa\x37\x95\x92\x76\x28\x8e\x49\x16\x46\x5f\x70\x03\x09\xf7\x2f\xc2\x16\x8e\xc9\xb9\xed\x17\xe4\x91\x35\x6b\x1b\x90\x83\x4e\xdb\x95\x1d\x11\xc5\xe6\x54\xe5\x05\x8b\xe4\x62\x93\xb3\x26\xe5\x09\xd9\xf6\xdd\xae\x62\x0f\x5c\x1b\xed\x02\x47\xc7\xfd\x00\x01\x3f\xf5\xee\x30\x54\xdf\xda\x9b\xc2\x0a\xbf\x71\x4e\x0d\x1d\x07\x52\xf7\x04\xfd\xc6\xe3\x4c\x96\x25\x15\xf9\x98\xba\x73\xdc\x5e\x2a\x27\xbf\x71\x35\x24\xc6\xb4\xf9\x15\x17\x63\x3a\xd6\x0b\x16\xb5\x72\x03\x0a\x07\x1e\x37\x97\xbb\x12\xd8\xe7\x8d\x7c\xc6\xa5\x38\x26\x97\xd2\xb4\x16\x55\x73\xdb\xc2\x2a\xf7\x29\xc2\xcf\x2f\x6f\xae\xfe\x39\x79\x7f\x71\x79\x33\x48\xf2\x41\x92\xc3\x33\x48\xf2\x41\x92\x47\x34\xbc\x2f\x92\x9c\x89\xbb\x5d\x49\x71\xef\x7b\xdb\x94\x79\xe4\x42\x9e\x66\x2d\x85\x61\xe7\xc9\x0b\xbb\x26\x21\x3a\x17\x77\xdf\x53\x6b\xf2\x3b\x04\x8f\x43\x87\x6f\x48\xde\x72\x3f\x40\x77\xc4\xd9\x67\xcf\x42\xb4\x43\x0e\xa1\x1e\x39\x34\xc2\x60\xdd\xa6\x55\x6b\xab\xa0\x52\x72\xf6\xf3\xc5\xeb\xf3\xcb\x9b\x8b\x6f\x2e\xce\xaf\x76\x9a\x5a\x09\xfe\xb4\x7d\x48\xaa\xdc\x46\x3f\x4a\x68\xa6\xd5\xac\x2a\xc5\xee\xb8\xac\x75\xb1\x24\x1e\xa4\xb2\x59\x5c\xad\x13\x3a\x25\x66\xa9\x23\x62\x89\x67\x9b\xb7\x89\x5e\xd1\xed\x36\xe9\x69\x09\xcd\xef\x58\xc3\x73\x9d\xe8\x43\xcf\x4b\x68\x7f\x83\x86\xf8\xe9\xda\x5e\x42\xbb\x51\x7a\xe2\x63\x3a\x5f\x42\x3f\xba\xda\x62\xc2\x8b\xba\x49\xbc\xbb\x97\x64\xdf\x28\x59\xf6\x24\xcd\xae\x31\x8c\xe1\x71\x9d\x9b\x8e\xea\x81\x2b\xac\xd8\xd1\xb7\x9d\xe5\xd8\x56\x5c\xb4\xf6\x2b\x20\x1e\x12\x67\x27\xa9\x22\x73\x3f\x45\x91\x89\x4b\x41\x7d\x47\xab\xbf\xb3\xe5\x15\x4b\xac\x2d\xdb\x9d\x6f\x56\xb0\xcc\xea\x3c\xe4\x96\x2d\x91\x77\xea\xcc\x37\x96\x56\x5e\xb7\x97\xe9\x23\xbd\x94\xb5\xc6\x67\x6c\x87\x98\xf4\x8e\x7e\x16\xd3\x3e\xb7\x2c\x81\xad\xc9\x3f\x2b\x5c\x62\x0c\x96\x10\xd4\x7c\xbb\xa6\x69\xab\x47\xfa\x2a\x64\x8d\x4f\x9a\xc2\xe7\x9f\x3e\x8b\x5a\xe3\xd3\x1f\xd4\xab\xfb\xec\x16\xf8\xd5\x7d\x76\x0a\x03\x5b\xed\x4a\x7f\xa0\xb0\xee\xf3\x7c\x10\xb1\xee\xb3\x5f\x80\xb1\x4d\x73\xf2\x59\xc1\xc7\xba\x4f\x8f\x02\x28\x05\x5a\xb6\xfa\x78\x60\x79\xcf\x02\x0d\x33\x08\x96\x1d\xad\xb3\xb9\x8b\x09\x16\x82\x00\x11\xef\x33\xf0\x9c\x01\xd5\xd3\x34\xa7\x91\x11\xe2\xd3\x1f\x08\xaf\xfb\xc0\x31\xee\x57\xf1\x49\xbe\x3e\x5a\xcd\x09\xe5\xbc\xbb\x45\x2a\x99\x7f\xe5\xb9\xd9\x34\x29\x99\xa1\x39\x35\xf4\xd8\x9e\xe9\x51\xf7\x9f\x2e\xfd\xea\x7f\x9b\x0f\x0b\x3a\x65\x85\xfe\xe1\xe0\xaf\x7f\x3f\xff\xe7\xdf\x0e\x7e\xfa\xdf\xf0\x3b\xd0\x74\x11\xe2\x1f\xfc\x20\x71\x08\x50\x50\x4e\xc8\x9c\x5d\x42\xef\xe0\x9f\xce\x48\x3e\x45\x18\x93\xfb\x02\x6a\xfa\x1c\x63\x6a\x71\xf3\xcf\x4a\xe6\xab\xff\x4a\xa8\x99\x4e\xf6\x53\x65\x84\xb5\x4d\xa0\xea\xc6\xa7\x3f\xc5\xb1\xbd\xc8\x7a\x96\x3e\xee\xad\x7e\x1b\xeb\x6c\xc1\x4a\x0a\xff\xf9\x8d\x9f\x02\xab\xca\x34\x55\xd7\x04\x14\x4f\xb2\xea\xc3\xa8\xc3\x75\xf7\xe2\xee\x55\x92\xb1\x8e\x4f\x8f\x92\xbf\x59\xc1\x9e\x27\x0c\x66\xc4\xcd\x16\x4a\x80\x46\xf5\x6e\x72\x8a\x7c\x62\x0f\x39\x9d\x5c\x90\x3b\x9c\xe1\x3d\x9a\x9c\xa7\x12\xd7\x1e\x8d\xf8\xcd\x5e\x8b\xed\x06\x33\xb9\x5a\x03\xe5\x2b\xcc\x75\xf4\xdf\xbb\x12\x5b\xba\x29\xe8\xcf\xb6\xa7\xea\x59\x7d\x0e\xf1\x95\xc7\x59\x55\x8f\xdc\xeb\x8f\x4b\x56\x4a\xb5\x6c\xfe\xd9\x54\x8c\x18\x6b\x23\x15\x9d\x03\xcf\x31\x36\x8e\x7f\xd6\xfc\x0b\xff\xb0\xd3\xbd\xf5\xbf\x46\x5f\x6e\x0b\x77\x6c\xe8\x43\xbf\x38\x91\xed\xd7\x6d\x4f\x24\x76\x96\x5a\xa3\xb7\xfb\x74\x4e\xc3\x41\x13\x85\x42\x0b\xbb\x99\x45\x70\xa0\xb9\x42\x26\xa3\x36\x13\x12\xbc\xbc\xe2\x8e\xdc\x51\xa5\x0f\xf6\x47\x0e\x11\x92\xf3\x3b\xae\x65\x02\xcf\x64\xf3\xa2\x75\x8d\xda\xe7\xe4\xba\x92\x79\x98\x7b\xd7\x84\x8c\x1e\x2a\x28\x5c\xdd\x1c\xf6\x95\xdb\xec\x55\xaa\xb1\x40\x48\x45\x8d\x61\x4a\x7c\x45\xfe\xe7\xf0\xc7\xdf\xfd\x32\x3e\xfa\xfa\xf0\xf0\x87\x97\xe3\xbf\xfc\xf4\xbb\xc3\x1f\x8f\xe1\x3f\xfe\xf3\xe8\xeb\xa3\x5f\xfc\x3f\x7e\x77\x74\x74\x78\xf8\xc3\xdf\xdf\xbd\xb9\x99\x9c\xff\xc4\x8f\x7e\xf9\x41\xd4\xe5\x2d\xfe\xeb\x97\xc3\x1f\xd8\xf9\x4f\x9f\xf8\x92\xa3\xa3\xaf\x7f\x9b\xdc\x75\x2a\x96\xef\x13\xa5\x37\x3e\x63\xb7\x59\xb8\x30\x6c\xce\xb6\xcd\x88\xff\xd0\x1b\x7b\xb2\x0e\x3b\x57\x21\x17\x66\x2c\xd5\x18\x5f\xfd\x15\xd0\x3c\x24\x36\xe0\xb7\x57\xdf\xe7\xff\xca\x4b\xcd\x20\x03\xc0\x6b\x21\x7b\x74\xc0\x9f\x4a\xd1\xc0\xc4\xe2\xe7\x70\x8a\x63\x4b\x41\x01\xb0\x03\xdd\xe6\xd4\x7e\x69\x37\xe8\xaf\xc1\x4f\xee\xed\x1c\x5c\xd7\x56\x75\x9f\x29\x59\xba\xb2\x40\x08\x1a\xb8\xa3\x05\xcf\xfd\xef\x6e\x59\x42\x40\xc9\x3f\x83\x5f\x3d\xfa\x19\xfc\xea\x8f\x74\x65\xf0\xab\x0f\x7e\xf5\x4f\x7e\x06\xbf\x3a\x32\xc5\xfc\x3a\x9d\xea\xfd\x33\xa0\x47\x22\x09\xfb\x24\x3f\x67\xe2\x2e\x16\x85\xd2\x27\xf4\xd6\x7b\x8c\xc2\xfa\xf8\x9f\x86\x6f\x8b\xcf\xaa\xb0\x2b\xd7\x80\xe9\xda\x54\x0d\xb4\x06\xca\xcd\xe0\x47\x72\x5a\x14\x84\x0b\xd4\x6d\xec\x0b\xa2\x5a\x6f\x28\xee\x98\xab\x44\xe3\xa8\x95\xef\xec\x50\x1b\x7a\xba\x20\xeb\x43\x63\xe6\x3d\x17\xf3\x63\x64\x79\x43\x0d\xdb\x01\xa3\xb8\x20\x65\x5d\x18\x5e\x45\xa2\xac\x1a\x0b\x1e\xf1\x5a\xf6\x8e\xa5\x5a\xcb\x8c\xd3\xa6\xf8\x3e\x14\x03\xa7\xda\xf8\xe9\x81\x11\x18\x7a\x0b\xc0\xc4\x8c\xe5\x4c\x6c\xcf\x90\x83\xcf\xf7\xb6\xbd\x76\x1d\xa6\x4b\x3b\x13\xe7\xe2\xce\x5d\xfd\x24\xaf\x11\x9c\x8f\xda\x67\x7f\xed\x7e\x59\x48\x6c\x7b\x86\x1d\x04\x2c\x00\x64\x83\xa2\xde\xf8\x6a\x29\xe0\xd8\xe5\xac\x0d\x8e\xc6\xed\xde\x64\xc3\x2b\xdd\xcc\x69\x70\x5d\x49\xf6\xeb\x9a\x7d\xd3\x46\x8d\xbb\x76\xcd\x97\x00\x85\x4b\xb7\x78\xfa\xb5\x76\x9e\xc2\xd2\xd9\x17\x2b\x67\x4f\x2c\x9c\xa7\xb1\x6e\x76\x61\xd9\xec\xab\x55\xf3\x59\x5b\x34\xbd\x59\x33\xfd\x58\x32\xfd\x58\x31\x5b\x20\x83\xfa\xb4\x5c\xfa\xb1\x5a\x9e\xc2\xdd\x5b\x29\x36\xe3\x0f\x3d\x5d\x92\xa7\x01\x3b\x28\xcf\x99\x30\x7c\xc6\x19\x50\x45\x55\x8a\x55\x4c\x80\xc8\x03\x62\x1d\xab\xac\x39\x55\xbd\xc5\x45\xef\x63\x4a\x11\x3a\x28\xfb\xd5\x23\xae\x37\x39\x47\x07\x25\x82\x0c\x4a\xc4\x16\xcf\xa0\x44\x0c\x4a\xc4\xa0\x44\x6c\xf9\x3c\x93\x12\xe1\x04\xfc\x97\xaf\x41\xf4\x5d\x34\xa9\xa4\xf3\x9d\xd1\x13\x9f\x75\x59\x54\xe0\x32\x7b\x4a\xa2\x89\xc7\xc9\xbe\x23\x5d\x96\xe1\xbd\xd4\xa8\x61\x46\xe2\x4d\x81\x4c\x87\x8a\x60\xed\x01\x74\x90\x90\x92\x0a\x3a\x07\x12\x46\xfb\x3b\x5f\xe9\x51\x2a\x62\x85\x9b\xe2\x91\x25\xc5\x57\xe8\x68\xc0\x01\xe9\x29\xf5\x02\x39\xa5\x49\xc1\x6f\x19\x79\xcd\xaa\x42\x2e\x4b\xc7\x10\x90\x93\x6b\x43\x8d\x15\xf6\xd7\xcc\x24\xd4\x1f\x8b\x94\x38\x0d\xdd\x3e\x72\x7f\xee\x6a\x2b\x02\xf3\x3e\x30\xd1\x93\x0a\x49\x48\xa3\x5e\xf3\x5e\x80\xf6\x73\x5a\xdc\xd3\xa5\x1e\x91\x4b\x76\xc7\xd4\x88\x5c\xcc\x2e\xa5\x99\xa0\x0f\x30\xee\xbd\x61\x9e\x2c\xbe\x9c\xf0\x19\xf9\xaa\xa0\x86\x69\x43\x0c\x9d\x83\x47\xba\x65\xdf\x97\xaa\xd3\x68\x5b\x3e\x7d\x87\xae\xd9\x1e\x28\xf9\xa1\xf5\x86\x90\x3f\xe6\xd4\x26\xed\xd5\xc2\xb3\xb8\xee\x8c\x8e\x10\xc9\x63\x91\x49\x12\xb9\x50\x1b\x71\x82\x05\x33\x7c\x69\x68\xf0\xc8\x73\x41\x14\xd3\x95\x14\x9a\x75\xc8\x83\xdb\x81\x60\x84\x23\x32\xd9\xa1\x47\x87\x7d\xb4\x2d\x95\x6a\x45\x55\x52\x1b\xe0\xd8\x8d\xd5\x4f\xfa\x32\x9f\x26\xbe\x23\x40\xbb\x4c\x8b\xc2\x6a\x91\x65\xc9\x72\x4e\x8d\x35\x75\xe8\xcc\x30\x45\x68\x37\x06\xe5\x8a\x07\x1d\x63\xf5\x33\xe6\xd8\x98\x3d\x91\x73\xbc\x7d\xbb\x1a\xeb\x32\x4c\x95\x5c\x60\x41\x7e\xc0\x66\x3b\xda\xe9\x96\xf6\x79\x85\xc8\x39\x49\x88\xda\xe7\x3d\x68\x76\xc1\xf6\x5e\x85\xb6\x93\x69\x21\xb3\x5b\x4d\x6a\x61\x78\xe1\x2a\xd5\xc8\x5b\x30\xf9\x0a\x10\x27\xd1\x4d\xc7\x4b\xa9\xe6\x3f\xc7\xcd\x01\x1b\xdb\x5e\xe9\x93\xdf\xb4\x5f\xc1\x07\x91\x9d\xeb\xc1\xf1\xd0\x87\xdb\x81\x3d\xb0\x2c\x45\x9f\xef\xc6\xca\x1e\x58\xd6\x5c\x5d\x18\x21\x43\x8e\x6c\xa0\x5c\xa5\xb7\x49\x44\x1d\x3d\x41\x12\xfb\x82\x01\x26\x90\x23\x86\x4f\xdf\x28\xb7\x33\xec\x16\x9c\x74\x38\x63\xf8\xcf\x82\x0b\xb8\x37\x1c\x7b\x62\x58\x89\xa5\xd9\xce\x18\xa2\x5e\x2b\x91\xee\x69\x2f\x92\xbb\xe6\xfb\x62\xfb\x06\x35\xc2\x0e\x0f\x4e\x0e\x8e\xd6\x30\x07\x07\x58\xbd\x18\xef\xc0\x63\x47\xd1\xd8\x0c\x4a\xf3\xb2\x82\x92\xfd\x2c\x3b\xc8\x47\xd6\x38\xef\x01\x36\x67\xaf\x3e\xac\x88\x07\xb3\xe2\x28\x25\x47\x44\x4b\x62\x14\xcd\xb9\xb3\x06\xe0\x53\xfb\x23\xa3\x6a\x77\x7b\x1f\x1e\xfc\x72\x30\x22\xcc\x64\x47\xe4\x5e\x8a\x03\x03\xd3\x77\x4c\x6e\xa0\xcc\x51\x3a\xd2\xdd\x77\x64\x29\x6b\x74\x46\xc0\x12\x56\x05\xcf\xb8\x29\x96\x70\xb7\x10\x59\x63\xd9\x3f\xab\x47\x24\x50\x61\x86\xcf\xf9\x03\x37\x2e\x85\xd2\x0a\xeb\x97\xb0\x9b\x5c\x71\x3b\x6a\x2d\x8f\x3b\x76\xb2\x60\xb4\x30\x0b\x4c\xf0\x11\x52\x8c\xff\xcd\x94\x04\xba\x4c\xe1\xbe\x49\xed\x46\x5a\xf8\x3f\x7c\x12\xa0\x00\xeb\x1d\xea\x05\xa0\xd6\xb3\xe5\xef\x1f\x7b\xc7\xbd\x61\xd1\xfa\x0f\x59\xab\x71\x7d\x73\x33\x79\xc3\xcc\x8a\x48\xb7\xad\xf8\x9c\x2e\x88\x4e\x30\x35\x93\xaa\xdc\x03\xd9\xde\x0f\xd8\x7c\x0c\x55\x66\xf7\xe0\x8a\x59\x48\x9d\xb4\x96\xe4\x09\xee\x17\xac\x09\x4c\x4b\x6f\x85\x08\x96\xd9\x4d\xd0\x4d\x50\xf2\x55\x47\x2e\x26\xc7\xe4\x9f\xb2\x86\x8a\x17\x74\x5a\x2c\x1b\xb6\x7c\xcd\xd2\xb2\x0a\xec\xf3\xc2\x76\xe5\x85\xbd\x3e\xec\x86\xfc\x96\xd1\x9c\x29\x0d\xd2\x99\xd1\xc4\xfc\xc1\x1e\xcf\x7a\xd0\xb7\x5e\x97\xf2\xac\xd6\x46\x96\x64\xe1\x86\xdd\xe5\xd1\x74\x87\xf3\x18\x0e\xb0\x27\x53\x53\xac\x42\x09\xee\xfe\xe6\x8b\x93\xcf\x6b\xa2\x0b\xe7\xdd\x7d\x3e\x65\xda\x9a\x5c\xe1\xb4\xb9\xe8\x0f\xd2\x74\x09\x9c\x2c\x2c\xce\xd2\xd3\x5d\xd1\x43\xfe\x0c\xe9\x31\x87\x86\xa4\x31\x6c\xae\xbe\x08\x22\x61\xc9\x6f\xea\x2f\x2d\x87\xf4\x96\x7a\x42\x9e\x24\xfd\x84\x38\x68\xac\xdb\x7c\xe8\x6d\x8e\xf7\x93\x6f\x7a\x39\x6f\xcb\x73\x66\x54\x48\xc1\x33\x5a\xf0\x7f\xb3\x9c\xd4\x95\x14\x2e\xd7\x14\xd4\xda\x8c\x6a\x36\x06\xdc\xaf\x40\x71\xae\x03\xae\x47\x2b\x1d\x8c\x94\xa0\xeb\x35\xb5\x1a\xb1\xd7\xfd\x74\xb5\x57\xa8\x7f\x32\x71\x69\xf8\xac\xa1\x0d\x3a\x8b\xd5\xcf\x8e\x27\x9f\x85\x2e\x49\x30\x49\x38\x99\xa0\x62\x9d\x9e\x02\xeb\x51\x01\x9b\x25\x5e\x57\x20\x78\xb1\x72\xf3\xde\xdc\xdb\x56\x05\xdc\x37\xdd\x0b\x01\x19\x8a\x88\xba\x9c\x32\xd5\x72\xfb\x28\xb3\x3e\xa7\x89\x10\xfe\x4e\xb3\xd8\x9c\x8f\xc7\x7a\x1d\x83\x8a\x39\x23\xaf\x6c\xcb\x7f\xfa\xe3\x1f\xff\xf0\xc7\x1e\xda\xb1\xc3\x6b\x52\x03\x04\xb9\x38\xbd\x3c\xfd\xf9\xfa\xfb\x33\x20\x5b\x4d\x7d\x7d\x4f\x49\xe3\x7d\xa7\x8c\xf7\x9a\x30\xfe\xa4\xe9\xe2\xc0\xbd\x93\x2c\x65\xfb\x3e\x12\xd7\xd0\xab\xb0\x30\xb6\xb3\x49\x82\x52\x8e\x31\x85\xe7\xd7\x9f\x30\x6c\x67\x05\xd6\x5e\x48\x2a\x5d\x30\x56\xf5\x66\xee\x5f\xdb\xb7\xad\xa6\x38\xe4\xb5\x72\x45\xa1\x7d\xa0\xaa\xf5\xdb\xbb\x00\x15\xf4\x82\x4c\xd9\x4c\x2a\xe6\x6a\x59\xb6\x51\x86\x2f\xc8\x2d\xa0\x59\x26\x45\x9e\x62\x1c\xf4\xa5\xec\xba\x9e\xf4\x7a\x1a\xaf\xf1\x9d\xde\x73\xdc\x5e\x32\xae\x31\xb0\x31\xed\x4a\xf7\xb3\xf3\xfb\x91\xa0\xc8\x9b\x02\x6f\xfb\xd3\x7f\xc5\x07\xc9\xb2\xea\x5a\x66\xb7\x3d\x7a\xce\x12\x45\xdb\x6b\x7b\x06\x33\x8c\x07\xde\x9c\x4d\xb0\x73\x76\x65\x2e\xdf\xdf\xb4\x24\x49\x90\xd9\xd6\xd6\x23\xfd\xd6\x45\x0c\xa9\xc8\xc9\x2d\xab\xd2\xec\x4e\xcf\x75\xed\x11\x98\x5d\x00\x26\xb8\xe5\x11\x01\x49\x84\x44\x36\x02\x94\x12\x1e\x39\x89\x0a\x73\x1a\x3d\x7e\x10\xa5\x87\x88\xa0\xb3\x51\x66\x94\x17\x10\x0f\xaf\x85\xe1\x25\x73\x39\x7d\x59\xd5\x84\x4c\x43\xfc\xc4\x17\x24\x7e\xbe\x54\xaf\xe4\xc1\x7b\x8f\x2b\xdc\xda\xbb\x98\xca\x26\xf3\x65\x9b\x0b\x4e\x82\x23\x0d\xd7\x60\x2e\x6c\xf3\x0c\xe6\x42\xa4\xb9\x50\x29\x76\x6d\x64\xb4\x4e\xda\x1b\x04\x07\xbb\xf1\x08\x00\xc7\xa9\xaa\xf4\x51\x64\x8c\x4b\x3f\x48\xc0\x0a\x9f\x4e\x2e\x9a\x18\x99\xec\xa0\x5f\x30\x11\x5d\xd7\xd9\xc2\xc7\x52\x05\xd3\xfa\x44\x87\xd5\xc1\xe1\x8e\xab\x15\x8b\xc7\xfd\x54\x8a\xb1\x12\xe6\x71\xd4\xb2\x70\xd9\xe1\x32\x81\x1f\x32\x93\x61\x70\x3d\xb8\x35\xa1\xf6\xb4\x9b\xae\x59\x52\xcc\xbf\x9d\xd8\x4c\x51\xbd\x60\x50\x60\x84\x3d\x70\xa3\xb1\xd1\x09\x70\x55\xf9\x19\xb7\x8a\xc3\x5c\xd1\x8c\x91\x8a\x29\x2e\xad\xb2\x51\x0b\x93\xcb\x7b\x41\xa6\x6c\xce\x85\xf6\x2b\x96\xd2\x25\xbf\x25\x00\x5b\xc4\x75\x53\x48\xf2\x98\x5c\x75\xea\xab\x38\x56\xbe\x4c\xb6\x32\xd3\x4d\xd1\xa8\xa7\x29\x01\x2d\x06\xb6\x41\x4d\x8b\x62\xd9\x6e\x3c\x4f\x94\x60\x1e\x9f\xa1\xf8\x0d\x81\x33\x7b\x58\x0b\x18\x68\xce\x0a\xba\x44\x4a\x80\x19\x17\xe0\x25\x56\xfa\xe8\x38\x1d\xac\x15\xdd\x41\xa9\x82\x77\x3e\xba\x33\xb8\x26\x8a\xd1\x6c\x91\xa2\xd9\x0d\xa8\xb0\x8f\x3d\x03\x2a\x2c\xf2\x19\x50\x61\xdb\x3e\x03\x2a\x6c\xdb\x67\x40\x85\xed\x13\xea\x60\xff\x23\x79\x03\x2a\x6c\xf0\xbf\xac\x3c\x03\x2a\x2c\xea\x19\x50\x61\x1f\x7d\xf6\x4e\x3e\x0f\xa8\xb0\x4f\x78\x06\x54\xd8\x27\x3e\x03\x2a\x6c\x40\x85\x0d\xa8\xb0\x01\x15\x96\xf0\x0c\xa8\xb0\xed\x87\x37\x84\x79\xe2\x9f\x01\x15\x36\xa0\xc2\xb6\x7c\x06\x54\xd8\x27\x3f\x03\x2a\x6c\x40\x85\x7d\xe8\x19\x50\x61\x03\x2a\x6c\xe3\x33\x78\x25\xd7\x9e\x01\x15\xb6\xe1\x19\x50\x61\xdb\xb5\x33\x98\x0b\x69\x2f\xeb\xdd\x5c\xf0\x08\xa7\x89\x92\xd3\x9d\xb1\x6d\x4d\x00\x3d\xc2\x33\x07\xaf\x92\xb3\x0e\x83\x16\x76\x30\x92\x39\xab\x0b\xeb\x81\xc2\x23\x9e\x52\x89\xbb\xc3\xd5\x40\xba\x76\xc9\xce\xb5\x35\xee\xc5\xb3\x0e\xea\x93\x4a\xe2\xff\xb4\xa8\x97\x00\xee\x12\xed\x1b\xdf\x31\x5d\x58\x0a\xc6\xe5\x79\xf0\x2d\x7b\x02\x06\xea\x01\xd3\xd2\xe7\x25\xb6\xa7\x58\x96\xfd\xc4\xb1\xec\x23\x86\x65\x17\xf8\x95\x9d\x63\x57\xfa\x89\x8b\xf6\x10\x13\xed\x49\x55\x78\x82\xf8\x82\xc3\x3c\xdf\x2c\x14\xd3\x0b\x59\x44\x0b\x9c\xbe\x84\xcd\x3b\x2e\x78\x59\x97\xf6\xec\x6a\x2b\x53\xf8\x5d\x83\xcb\xd6\x8d\x25\x8c\x77\x3b\x86\x8c\xed\x0f\x79\xce\xa0\xd2\x39\xe5\x85\xdd\x5a\xc0\xf4\xb8\xa0\x77\x56\xde\xe8\x3a\xcb\x18\xcb\x53\xac\xcf\xd0\xdd\xf8\x87\xe3\xa6\x87\xc8\x49\xcf\x35\x79\x95\x76\xd5\xa4\x29\xa4\x81\xd7\xe5\x0f\xbf\x8f\x7a\xc7\x5c\x55\xfd\x5c\xc9\x6f\xae\x26\x67\xc1\x95\x4c\x85\xbf\x91\xb9\xb8\x93\x05\xac\x06\xc5\x1f\x59\xc3\x67\x87\xf7\x73\xba\x17\x20\xc9\x03\xd0\x87\x7a\x90\x6a\xe4\x76\x43\x81\xd6\x0e\xed\x46\xb2\xe6\xb0\x96\x4c\xdd\xf1\x8c\x1d\x3f\x83\x1d\xd9\x97\x6d\x96\x7e\x1c\x08\xf8\x74\x61\xe0\xfb\xa2\x7c\x5d\x63\x77\x1a\x77\x70\xe0\x42\x70\x3d\x05\xec\x5f\x41\xb3\x66\x6d\x60\xfd\xbe\x85\x1b\xf4\x6c\xc1\xb2\xdb\x2b\x84\x21\x25\x75\xe3\x50\x33\xb6\xa9\x2a\x83\x15\x20\xf8\x3f\xd3\x42\x4e\x4f\x4a\xaa\x0d\x53\xd6\xac\x71\x97\xfb\x38\xb3\x3d\xe0\x62\x7e\x5c\xe6\x47\xc7\xff\xf1\x1f\x49\x9d\xb8\x70\x4e\x4d\x97\x38\x13\x50\x76\x43\x84\xc4\xf1\xc1\x4f\x99\x15\xff\x12\xfc\x8f\x41\x1d\x46\x3b\x2b\xe9\xbb\x34\xe1\x1a\x4f\x44\x85\x3e\x3f\x22\x74\x90\xb6\xa4\x07\x3f\x6b\x9f\xc2\x60\x3f\x50\x9f\x4f\x86\xf8\xec\x45\x53\xee\x09\xe9\xb9\x47\x28\xcf\xbd\xb1\x64\xf6\x05\xd9\xd9\x1b\xaa\xb3\x2f\x44\x67\x2f\x68\xce\x3e\x90\x9c\xfd\xa1\x38\xfb\x41\x70\xf6\x8f\xde\x7c\x32\xe4\xe6\x67\x81\xda\xec\x31\xec\xd0\x13\x5a\xf3\x39\x90\x9a\xfb\xeb\x41\x21\x3d\xa0\x33\x9f\x0f\x99\xd9\xcb\x3c\xf6\x6a\x7d\x26\x8a\x84\x1d\x20\x31\x9f\x23\xac\xfa\x64\x21\xd5\x1e\xc2\xa9\x7d\x86\x52\x7b\x0b\xa3\x3e\x19\xe2\x32\x1d\x6d\xd9\xab\x2f\xe0\x59\x50\x96\x7d\x22\x2c\x93\xd7\x97\x0b\x6e\x38\x2d\x5e\xb3\x82\x2e\xaf\xd3\xd0\x76\x7d\xad\xc4\xe5\x1a\x22\x0f\x9d\xce\x5d\x4c\xe6\x82\x6a\xe2\xa3\xd2\x0e\x92\xe9\xc3\xde\x4e\x05\x06\xd4\x16\x8e\x2f\x09\x9f\xb9\x67\x41\x66\xb2\x37\xce\x6d\x24\xb0\xd8\x93\x5d\xf3\xad\xbc\x27\x72\x66\x98\x20\x87\x5c\xf8\x9d\x73\x14\x78\x69\xda\xe0\x46\x72\xb4\xc2\xbe\xf5\xd5\x4b\xdf\xc8\x97\x17\xb5\x80\xb8\x8e\xd6\x7b\x1d\xb7\x72\x7d\xfc\x78\xe0\xca\xfd\x70\x56\x17\xdd\xe0\x15\x06\xb4\xfa\x89\x5c\xbd\x6a\x6b\x95\xbf\x82\xfe\x34\xa2\x88\x8a\x9c\x38\x22\xa4\x2f\x6f\x9f\x24\xe3\x89\xbb\xc6\x4d\x03\x00\xfe\x58\x9c\xeb\xe6\x6c\x32\x84\xb9\xf6\xcb\xf1\xba\x23\x70\xeb\x97\x67\x71\x3d\x3f\x98\x75\xb0\xb8\x7e\x2d\x16\x57\xc0\x41\xf6\x46\xd1\x8c\x4d\xf6\x49\x81\xf3\x02\xa4\xcd\xc4\x6a\xf5\xb8\x46\x5c\x08\xc6\x30\x43\xa7\x65\x98\x03\x32\xb5\x59\x5d\x14\x4b\xf4\x23\x76\xe8\x06\xe3\xb7\xd6\xcd\x82\xad\xf1\xb4\x75\xf2\xc4\x82\xde\xb5\xf6\x49\xa5\xa4\xd3\x4a\x54\x2d\x84\xbd\xad\xdc\x71\xb2\x9d\xb7\xf6\x88\x66\x22\xde\xa5\x4e\x3b\x2c\x72\x9a\xcf\xed\x74\x59\x0d\x03\x08\xe6\xda\x1c\x91\x4e\x47\x6c\xab\x33\xa9\x32\x3e\x2d\x96\x64\x41\x0b\x6b\x30\xdd\x73\xb3\x20\x94\xdc\xf2\xa2\x70\xaf\x89\x9f\xa8\x6b\x66\x30\x6a\x8c\x5a\x4d\x21\xc5\x1c\x26\x83\x62\x47\xd8\x43\xc5\x32\xdb\x66\x56\x30\x2a\xea\x0a\xfb\x69\x75\xa4\xa5\xac\x95\xef\x67\x7c\xf3\x3e\x66\xdd\xe8\x54\x82\x17\x23\x3f\xe5\x5d\xbe\xc1\xf5\x3d\xdf\xba\x95\x35\xcb\x1d\x55\xe0\x3d\xd7\x6c\x04\xef\x8c\xee\x13\xf6\xc5\x17\x4d\xc7\x7d\x83\x9f\x55\x4a\xde\xf1\x1c\x03\xe6\x7e\x5b\x58\x6d\x27\x7e\xfc\xdf\xc3\x7b\xbd\x68\x15\x52\x8c\x05\x9b\x53\x50\x91\x9d\x40\x43\x4c\x26\xb6\x8f\x08\x40\x91\xf3\x8c\x1a\x66\x0d\x68\x59\x75\x78\x44\xef\x38\x8d\xee\x89\x1d\x4f\xb0\xa3\xc8\xa1\x90\x44\x42\x0a\x57\x2d\xb8\x59\x42\x54\x6f\x51\x1b\x92\xcb\x7b\x71\x94\x72\x30\x11\xa1\x40\xc9\x94\x19\xda\x26\x60\x79\x95\x4c\x13\x26\xe8\xb4\xb0\x67\x0f\x00\xfa\x37\x1b\x37\x00\x99\x31\x6a\x6a\xc5\xc8\x9c\x9a\x04\x29\xb1\x41\xa3\xc7\xf5\xfc\xf0\xb6\xe3\xda\xc5\xec\x66\xa4\x16\x9a\x25\x2a\xb2\xbd\x99\x01\x91\xa9\x85\xf6\x44\xcb\xda\xec\xc9\x3d\xf2\x98\xfb\xe8\x7e\xc1\xb3\x45\x68\x28\xf2\x92\x69\x22\xeb\x04\x6f\x5e\xc7\x04\x74\xcd\xf5\x69\xe5\x0d\xbe\xa7\x8d\x4f\x6c\xe8\xb4\x8f\x1d\x76\x19\x68\xe5\x41\x82\xb8\x47\x4a\x61\xaa\xea\xeb\xcb\xeb\x9f\xdf\x9e\xfe\xf7\xf9\xdb\xb8\x85\x3f\xa7\xd9\x22\x24\x72\x16\x84\xc2\x45\x01\x42\x7e\x41\xef\x18\xa1\xa4\x16\xfc\x5f\xb5\x83\xab\x1d\x36\xed\x45\x8a\xd5\x1e\x6b\xe5\x47\x2a\xbe\xf6\x96\x88\x92\x1c\x7d\xac\xe9\x5b\xae\x81\x15\x18\x3a\xe1\xa0\xfb\x52\x33\x32\x53\xb2\x5c\x31\xb4\xc8\x65\x83\x8b\x5b\xa2\x2f\x02\x4c\xb3\x05\x53\x71\x1a\xf9\xeb\xf7\xe7\xd7\x90\xec\x5c\x29\x64\xd1\x86\xf4\x00\x78\x27\xb4\x8e\x2c\x03\xd8\x9f\xfc\x98\x9c\x8a\x25\x7e\x89\xc2\x2c\x52\x45\x29\xb8\x36\x0c\x94\x53\x67\x48\x7a\x64\xdf\x8b\x97\xc7\xf0\x7f\x2f\x08\xcd\x73\x65\x2d\xcd\x26\xcb\x22\x5b\x4d\x0a\x8b\x6a\x19\xed\x57\x3e\x2d\x82\xc9\x15\xcc\x40\x22\x46\xd4\x0b\xdf\xc9\xdc\xad\x04\x28\x81\x80\xe1\x41\xed\x56\x1b\x45\x0d\x9b\xf3\x8c\x94\x4c\xcd\x19\xa9\xa8\xc9\x16\xa4\xa4\x4b\x92\x49\xa5\xea\x0a\x39\x1e\x72\x6a\x68\x5c\xcb\xdf\x48\x45\x4a\x2f\x9d\xad\x34\xb3\x2a\xf9\xf5\x66\x10\x67\x2b\xb2\xc3\xff\xe4\x5a\xd7\x4c\x9f\xbc\x7a\xf9\xe7\xdf\xff\x31\xd2\xbc\xee\xf1\xe0\xc6\xc2\x9f\x12\x60\x4f\x5d\x08\x98\xdf\x60\x00\x98\x0e\xc8\x39\xa8\xdf\x21\xb8\xf3\x41\x1a\x6a\x2e\xe6\x45\xb2\x03\x24\xd9\x0d\x98\xea\x04\x1c\xb7\x23\x98\xc4\xfa\x02\xd3\x3d\x81\x9d\x3e\xc4\xbb\x52\xfa\xf3\x82\xb5\x1a\x9c\xf7\x7b\x39\x81\x2c\x45\x60\xd8\x5d\x4c\xbc\x94\x4a\xf1\x1f\x81\x35\xd1\x38\xa6\x90\xe1\x01\x9b\x45\xcc\xc3\x88\xbc\x24\x7f\x25\x0f\xe4\xaf\xe0\x05\xfb\x53\x7c\x53\xfd\xf8\x98\xfa\x80\xe0\x2f\xa4\x36\x17\x93\x9e\x16\xfa\x1f\xf6\xbe\xb2\x6f\xb4\xeb\x61\x24\x99\x72\xe7\x8e\x60\x0f\x86\x29\x6b\x06\xba\x35\x4c\x9d\xb9\x24\x8f\x9a\xed\xe0\xe7\xb2\xbb\x53\x01\x06\x17\xb3\x2e\x70\xff\x99\xf6\x37\x34\xfc\xad\xd4\xe6\xd2\x49\xeb\x90\x9d\x24\xec\x47\x09\x17\x71\x47\xdc\xa7\xb4\xfa\xce\xee\xbd\xb6\xa0\x01\xc9\x25\xe4\x2e\x60\x16\xe6\x82\x27\x08\x87\xfd\x39\xb1\x69\x58\xd1\xfe\xb6\xee\x87\xb6\xd6\x8a\x4f\x1f\x3c\x32\xce\x48\x09\x6a\x80\x54\x32\x3f\x06\xfb\x26\xa1\x17\x76\x36\xf2\x40\x19\xf8\x80\x69\x74\x8c\xf6\x5a\x13\x21\x86\x03\x67\x25\x56\x46\x45\xac\x0e\x8b\x8f\x62\x33\xa6\x14\x66\xfa\x4e\x97\x3e\x55\x28\x79\xb7\x25\x49\xb9\x4a\x49\x23\x33\x59\xec\xc3\x56\x99\xb8\xbe\xc0\xdc\x43\xac\xb6\x89\x90\x7f\xf7\x7a\x32\x22\x37\x67\x93\x11\x91\x8a\x5c\x9f\xa5\x01\xa0\x42\x17\xcc\x8b\x9b\xb3\xc9\x8b\x9d\xae\x00\xf1\xa6\x14\x44\xb3\x23\x5e\xb2\x0e\xa1\x2d\x69\x35\xbe\x65\xcb\x48\xed\xae\x0f\x0d\x73\xdc\x6c\xac\x5e\x06\x84\xd3\x5c\xd2\x6a\xeb\xb7\x29\x46\x73\xbe\xd7\xc4\x2b\x3e\x63\xb0\xe9\x69\x7f\x0c\x2c\xa5\xbc\x63\x39\x5a\xcd\xbe\x15\x26\xf2\x4a\x72\x6b\x23\x0d\xb4\x2c\x1f\x7a\x06\x5a\x96\x8f\x3c\x03\x2d\xcb\xa6\x67\xa0\x65\xd9\xe2\x19\x68\x59\xf0\x19\x68\x59\xba\x1d\xd9\xc7\xa4\xa2\x81\x96\xe5\xa3\xcf\x40\xcb\xf2\xe8\x33\xd0\xb2\x44\x3c\x03\x2d\xcb\xfa\x33\xd0\xb2\x7c\xe0\x19\x68\x59\xda\x67\xa0\x65\x19\x68\x59\xb6\x7a\xf6\x2e\x3b\x60\xa0\x65\xf9\xd0\x33\xd0\xb2\x6c\x7c\xf6\xc6\x92\x19\x68\x59\x1e\x79\x06\x5a\x96\x47\x9e\x81\x96\x65\xa0\x65\x19\x68\x59\x3e\xfc\x0c\xb4\x2c\xd1\xcf\x40\xcb\xb2\xdd\x33\x24\x09\x6e\xf9\x0c\xb4\x2c\x03\x2d\xcb\xea\x33\xd0\xb2\x7c\xf4\xd9\x0f\xe7\xf6\x40\xcb\x32\xd0\xb2\x7c\xf0\x19\x68\x59\x06\x5a\x96\x0f\x3e\x03\x2d\xcb\x97\xe2\x78\x1d\x68\x59\x06\x5a\x96\x0f\xb5\x31\x58\x5c\xdb\x3d\x03\x2d\xcb\x40\xcb\xb2\xf6\x0c\xb4\x2c\xeb\xcf\x40\xcb\x32\xd0\xb2\x0c\xb4\x2c\x03\x2d\x4b\xf3\x0c\xb4\x2c\x5f\xba\xef\x49\x31\xcd\xff\xcd\x26\xb2\xe0\xd9\x32\x39\x39\xe7\x8a\x69\x59\xab\xcc\xde\xd8\xf0\x5a\x52\xc1\x7b\x1b\xaf\x42\x92\x92\xbd\x67\x8c\x07\x57\xc1\xc4\x85\xcc\x07\xca\xcd\xc1\x53\x4c\xc1\x5e\xb0\x1f\xf8\x01\x5e\xc6\xa3\x08\xc6\xbe\x38\x35\x4e\x5f\x9c\xc3\x34\xd9\x6a\x0f\x07\xb2\x0f\xd9\x97\x21\x4b\x51\xb3\x8b\x8c\x6c\x84\x2d\x7f\x74\x73\xd1\xaa\x2a\x78\x4a\x1e\x2b\x21\xd7\x35\x68\x17\xcc\x85\xc1\xf5\x57\x24\xab\xea\x11\x29\x59\x29\x55\x42\x6a\x43\x0f\x16\x5c\x67\xab\xec\xc3\x3a\x5d\x61\x87\xfc\xe4\x1b\x09\xf3\xbf\x44\x7b\xa1\x25\x95\x6a\xd6\x8a\x7b\x71\x98\x84\x37\xbb\x98\xad\xe2\x48\xb9\xe9\x78\x81\x2e\xa5\xb9\x72\x87\x7b\x67\xeb\xd5\x33\x6a\xc1\x4f\xe1\xce\x48\xa6\xce\x64\x59\xd5\x86\x75\x2e\x36\x9c\x62\x34\x3a\xb8\x4e\x15\xe8\xbb\x49\xde\xcc\xa4\x98\xf1\xb9\xb3\xbe\x4f\x4a\x2a\xe8\x9c\x8d\x9b\xd9\x1e\xb7\xcc\x0c\x27\xd1\x17\xf5\xce\x32\x37\xb3\x82\xf2\x78\xf0\x60\x5f\x62\xe2\x0c\x7a\x01\xac\x5d\x2d\x18\x1e\xb2\xcb\x9a\x69\x1e\x35\x88\x6f\x8e\x72\xe3\xd8\x7f\x85\x7f\x3c\x4a\xb0\x1e\xa9\x01\x5f\x05\x18\x46\x1b\x76\x6a\x3c\xb4\xbd\xb1\x18\x05\xa1\x45\xb5\xf8\xb0\xcd\x98\x92\x35\xf9\x7a\x29\x68\xc9\x33\x7f\xf2\x4e\x8b\x42\x66\xe8\xab\xe9\x5a\x9b\x89\x43\xc1\xee\xdb\x31\x95\x65\x6d\xe8\xb4\x60\xc7\xe4\x02\xa9\x26\xa4\x28\x96\xf6\x60\x6a\x66\x3c\x7e\xc1\x9d\x8a\x34\x13\x33\x05\x1c\x9b\x08\x8c\xdd\xa8\xad\xc3\x6e\x43\x6e\x0c\x26\xac\x8c\x93\x82\x11\x26\x8c\x5a\xda\x8d\x39\x91\xf9\xb5\xdd\x9b\x9d\x5f\x27\x53\x66\x24\xe2\x61\xfb\xc0\xc2\x26\xe2\x60\xfb\x41\xaf\xa6\x23\x57\xfb\x45\xad\xb6\xb1\x05\x64\xfc\x09\xd3\x78\x3a\xdb\xa2\x92\xf9\xf1\x06\x99\x45\xe4\x2c\xb1\x07\xb6\xc5\x89\xcc\xad\x36\xa5\x18\x0a\xae\xe6\x8c\xa2\x67\xf1\xc2\x76\xee\x16\x5c\x81\xd4\xb4\x6a\x16\xbd\xa3\xbc\xb0\x07\x38\xb1\x03\xeb\xec\x89\x69\xe1\x9a\x1e\x54\xe0\xbe\x09\x46\x48\xea\xf6\xef\x93\x20\x84\x00\xb9\x65\xc9\xe3\xa8\x44\x49\x8f\x47\xe0\x2d\xf4\x22\xc8\x10\xb0\x7b\xb1\xa4\x0f\xe0\x81\xa2\xa5\xac\x85\x41\xe6\x10\x54\x0a\x9b\x8b\x1c\xf3\x28\x9e\x11\x16\xf5\xa4\xea\x1b\xe9\x47\x48\xd3\xdc\xf3\x07\x4c\xfa\x48\x23\xa5\xc6\x30\x25\xbe\x22\xff\x73\xf8\xe3\xef\x7e\x19\x1f\x7d\x7d\x78\xf8\xc3\xcb\xf1\x5f\x7e\xfa\xdd\xe1\x8f\xc7\xf0\x1f\xff\x79\xf4\xf5\xd1\x2f\xfe\x1f\xbf\x3b\x3a\x3a\x3c\xfc\xe1\xef\xef\xde\xdc\x4c\xce\x7f\xe2\x47\xbf\xfc\x20\xea\xf2\x16\xff\xf5\xcb\xe1\x0f\xec\xfc\xa7\x4f\x7c\xc9\xd1\xd1\xd7\xbf\x8d\x0f\x30\xa5\x46\x53\xfb\x8b\xa5\xf6\x14\x49\x7d\x92\x38\xaa\xcb\x48\xda\xf9\xe1\x77\x89\xa7\x6b\xc7\xdf\x39\xa0\x3f\x74\xfc\x55\xb2\xd9\x7d\x31\x6b\xdb\xe7\x9a\xc8\x92\x1b\xc3\x72\xd0\x3a\x69\x48\x50\xb2\x62\xf2\x3b\x81\x05\x44\x42\xd4\xd8\xbf\x0c\x88\x32\x5a\x4f\x41\x74\xb7\xa4\x8f\xe1\x81\x93\x43\x10\x5e\x56\x05\x2b\x99\x30\x20\x78\xc6\xde\x7c\x01\x8f\xd1\x71\x3b\x82\x0c\x6d\x5a\xf6\x90\x31\x96\xbb\x4e\x0e\xb2\x31\x78\x06\xd9\x38\xc8\xc6\x8f\x3d\xc9\x6e\xcf\x3e\x04\xe3\x55\xd8\x09\xe7\xae\xd0\xde\x41\x0d\x4e\xd0\x26\x81\x5d\xce\x20\x16\x7e\xc7\xf3\x9a\x16\x21\xb7\xa7\xa7\x7b\x8c\x93\x00\x81\x91\x5e\xd2\xe5\x9a\x4d\xce\x05\x0f\x89\x44\x47\x0d\x82\x03\x7e\xe8\xf4\xb2\x36\x7a\xf8\xe2\xb4\xb8\xa7\x4b\x1d\xc9\x37\xf8\x8d\x54\x00\x0a\x58\x69\x94\x48\xe5\xb1\x22\xa1\xb1\xd2\xf5\xd6\xc6\x45\x7b\x36\x4d\x74\x97\x29\xc0\x99\x4b\x07\xba\xf9\xa1\x8f\x09\xb8\x89\x68\x51\xfe\x76\x9f\xc7\x0d\xfc\x9a\x19\xe3\xfc\x39\x2b\x5b\x82\xb6\x73\xda\x84\xb8\xba\xd3\x83\xb0\x10\x60\xf9\xb4\x5f\xce\xa4\x5d\x13\xe0\xc7\x9f\xcd\x58\x16\x89\x15\x44\x66\x85\x0d\xed\x20\x5c\xd9\x70\x51\xd3\xa2\x58\xfa\x39\x61\x39\x91\x22\xaa\x21\xf6\xc0\x0d\xa9\x85\xe1\x85\xdd\x4c\x44\xb1\x79\x5d\xd0\xd0\x15\xe4\x46\xe6\x11\x54\xf9\x31\x79\x2f\xac\x31\xda\xfe\x38\xce\x89\xb9\xd2\x80\x55\x3a\x0a\x66\x58\x3e\x82\x57\xaf\xee\x40\xc0\x20\x75\x24\x46\xb3\x2c\x51\xcd\xfb\xb9\x6c\x30\x26\xc7\x78\x10\x9b\x00\x38\xc9\xf9\x6c\x66\x5b\x06\x6e\x43\x21\x55\x49\xd7\x7b\x45\x45\x1e\xd5\xba\xd5\x80\x20\xfb\x20\xe4\x6b\x85\x1a\x1d\x2f\xac\x69\x9e\x51\xf5\x22\xac\xee\x70\x5a\x98\x85\xac\xe7\x8b\x76\x57\xa4\x4d\x39\xd1\x06\x90\x37\x76\x32\xb5\xc7\x9c\xad\x6c\x36\x6d\x75\x1d\x91\x31\x54\xc9\x24\xc3\xe3\x7e\x4f\x23\xdb\x5e\x8b\x0e\x23\xdc\x17\xd7\xdc\xa7\xe4\x00\xbc\x8b\xe5\x41\xfe\x94\x60\x0f\xa6\x87\x01\x1f\x93\x0b\xe4\x43\x18\x75\xdf\xda\x99\x12\x9c\x8c\x00\xde\xe4\x81\x7a\x91\xd8\xae\x95\x06\x78\x93\x81\x04\x0c\xb3\xf8\x72\x2a\x96\x1e\xf0\x0f\xf0\x23\x4c\x54\x6a\x72\x10\x8a\x38\x2f\x6a\x73\x96\x9e\xbd\x60\x8a\x66\x59\xad\xb8\x59\x9e\x49\x61\xd8\x43\x94\xec\xeb\xe3\x56\xbf\xee\x76\xa3\x73\xaf\xfb\x2e\x12\x59\x21\xd3\xdf\x4a\xcd\x9c\x85\xac\x8b\x1c\xc8\x4d\x6b\x01\x62\x27\xee\x46\xb9\x98\xd9\x2b\x1c\xf7\x1b\xdc\x98\x10\x1a\x59\xed\x98\x47\xfd\x21\xf8\xf1\x5f\x35\xbf\xa3\x05\x13\x26\xf8\x8b\x09\xe0\xc0\xc2\x3f\x7a\xca\xf8\x99\xa1\xfa\xb6\xb5\x30\xd8\xb8\x92\x79\x6b\x50\x9c\xf8\xa9\x83\x8f\xd8\x83\xf9\x0c\x63\x67\xa0\x30\x4d\x14\xbf\xe3\x05\x9b\xb3\x73\x9d\xd1\x02\xec\xa8\x5d\x1b\xe7\xa7\x8f\xf4\x0b\x76\xa6\x92\x85\xb6\x0a\x98\x35\x56\xad\xaa\x89\x28\x58\x08\xe1\xcc\x29\x17\x50\xf0\x25\xc1\xcd\xef\x1a\xd5\x08\xc3\xb5\xf6\x76\x45\x95\xdd\x85\x1e\x6e\x8b\x57\xe3\x54\xca\xc2\x91\x86\x16\xcb\xb6\x5f\x3c\xde\x1f\x0e\xb2\x58\xfe\x2c\xd8\xfd\xcf\xb6\x17\x9a\xcc\x0a\x3a\x6f\xaf\x66\x66\xd6\x72\x17\xd2\x11\xc0\x8f\x4e\x34\x30\x62\xd6\x56\xb1\xb1\x5a\x45\x8b\x8d\x0e\x25\x78\xbc\x41\xf7\xea\x08\xe4\x09\xd5\xa4\x69\x3b\x4e\x75\xb0\xcf\xef\x8f\xe0\x9e\x38\x3b\x9d\xfc\x7c\xfd\xcf\xeb\x9f\x4f\x5f\xbf\xbb\xb8\x8c\x47\x40\x4a\xc3\xd0\xbb\x12\x68\xf7\x59\x13\xb4\xb7\xab\xd0\xe0\x3e\x8e\xa5\x3e\x86\x60\x09\x90\x73\x88\x5c\xde\x27\x46\x0a\xed\x9e\x62\x34\x4e\x73\xa5\x55\x75\xaa\x4a\xa9\x26\x4a\xce\x78\x11\x1d\x64\xea\xeb\x04\xaf\x74\xc7\x67\x00\x9c\xba\x8f\xdb\xeb\x06\xf3\xc5\xd7\x63\xd6\xc1\x95\xc1\x21\x2b\xd9\xbe\x26\xde\xb3\xd5\xc1\x93\x23\xba\x7d\xa5\x8b\xf1\x87\x68\xa7\x7b\x66\xe7\x99\x78\xb6\x1b\x91\x7f\xde\x47\x4c\xb5\x90\x19\x2d\xa0\x74\x4c\xda\xc6\x27\x3d\xc7\x56\x57\xfb\x15\x64\x0e\x50\xbf\x9d\x49\x21\x69\x0e\xc6\xaa\x13\xfe\x39\xf3\x1c\xc7\x5e\xed\x82\x10\x68\x52\x47\x6e\x10\xb5\x0d\xed\xf9\x54\x87\x4a\xb1\x46\xab\x59\x69\x5e\x92\xf8\x42\x6f\xfe\x79\xd7\x0d\x28\xbb\x51\x76\x92\xf2\x52\xcf\x5c\xd3\x8c\x3b\x60\x7c\x06\x1e\x10\x70\x03\xf1\x19\x6c\x4a\x70\x00\xbd\xf5\xcb\x90\x50\x73\xa2\xa7\x54\x49\x78\xc9\x9e\xec\x4e\x9c\x9f\x66\x47\x22\xe4\xf4\x96\xdb\x19\x9c\xb5\x42\xda\x6f\x1b\xaf\x83\x20\xee\x34\x71\x3f\x7e\x0f\xd5\x8d\xbc\xfc\xa7\x2a\x99\xe7\xa9\x59\x62\x32\x0e\x8e\x56\xa5\xd8\x78\xfd\x78\xa5\xb2\x5c\x5d\xd5\xc2\xf0\x92\x79\x2e\x83\xf1\x8a\x4e\xa4\xf0\xeb\x03\xdd\x10\x7e\xf6\xb2\xd1\x09\xf9\x4e\xc0\x79\x15\x2c\x27\x63\x22\x64\xbb\x44\x4c\xcc\xa4\xca\x20\x48\xb3\xd3\x0d\x9e\xd1\x8a\x4e\x79\xc1\x53\x84\x79\x5f\x1b\x1c\x68\xf4\x83\xfe\x80\x3b\x29\xcf\x4f\x72\x25\x2b\xbc\x89\x7d\x82\x61\x3a\xc4\xab\x9b\xc8\x12\x52\xbd\x82\xc2\x3e\xeb\x76\x64\xae\xa8\x30\xad\x23\x77\x6d\xe3\xfc\x1a\x75\x90\x3e\x94\x00\x9a\xf7\x57\x90\xe2\x34\xb7\x32\x23\x5c\xb6\xe4\x73\xb5\x6f\xf4\x98\x67\x7e\x70\x41\x26\x0b\x99\xbc\xbf\xbe\xf8\xbf\x2b\xe7\x26\x5e\xb5\xc3\x67\xbf\xc9\xf1\xac\x3c\xe8\x6d\xdb\x5c\xb9\xe2\x3f\xc3\xc6\xf9\xb2\x37\x4e\xe3\x20\xda\x39\xb3\xcf\x55\x2d\xba\x05\xc8\xdb\xae\x91\x32\x49\xd7\x99\x34\x09\xf0\xdd\xb7\x86\xb1\x1e\xc5\x88\xfd\x89\x30\x1c\x22\x6f\x81\xb7\xd6\x48\x2c\x79\xd3\x4b\xa9\xcc\xf0\x76\x9d\xd1\x42\x7f\xae\x57\x64\x8a\x6b\xa7\x52\x32\x7b\x27\x6b\xd1\x0f\x55\x50\xc2\x8e\x6b\x3a\x42\x72\x26\xa4\x71\xde\x14\xb0\x25\xe4\x0c\xbe\x25\x08\x9b\x0a\x58\x00\x3b\x7a\x4e\x82\x9a\x75\x13\xa8\x56\x5c\xfb\x7d\x31\x69\x7a\x84\x26\x4c\xad\xd9\x6a\x08\xc3\xa9\x56\x2d\x90\x6a\x26\xe3\xf1\x23\x8a\xd1\x1c\x6c\xcc\x8a\x9a\x05\x32\x54\x95\x54\xdf\xb2\x1c\x3f\x48\xcc\xcc\x6f\x32\x2a\x20\xca\xef\x87\x76\x63\xe7\xd7\x27\x41\x80\x4f\x18\x79\xba\x20\xed\x22\xc5\x1a\xdb\xe9\x81\x48\x90\xed\x76\x11\xde\x8b\x62\x79\x25\xa5\xf9\xa6\x29\x9f\xb5\xeb\xc3\xf1\x0f\x17\x91\xe8\xfa\x31\xc1\x35\x4d\xa1\xcb\x63\xd8\x38\x20\x1a\x83\xa2\x5f\xa9\x92\xd1\x2e\xc8\xaf\x55\x30\xaa\x5a\x9c\xea\x37\x4a\xd6\xd1\x6a\x5c\x9f\x26\xe7\x9b\x8b\xd7\x70\xf7\xd5\x8e\xbc\x45\x18\xb5\x84\xd2\x8f\xde\xe9\xd5\x63\xdc\xe6\x3b\x47\x93\x13\x4a\xb6\x64\x46\x0c\x42\xde\xd1\x25\xa1\x85\x96\x8d\x57\x4d\x6c\x8a\xb8\xfa\x70\xae\xfd\x7a\x2a\xcd\x62\x2d\x8e\x1b\x0b\x04\xb1\xcf\x7a\x7b\xa3\x80\x03\xa6\x4d\xb7\xe5\x62\xad\x59\x03\x59\x22\x95\x62\x19\xcb\x99\xc8\x3e\xd7\x13\xb1\x6b\x4a\x12\x38\x55\x97\x52\x58\xf1\xba\xeb\x73\x75\xd1\xb8\x28\xdd\x6a\x84\xa7\x08\xbc\xd9\x2e\x8e\x48\x01\xa9\x07\xc2\xb5\xd6\x29\x29\x3c\x17\x33\x08\x7c\xe2\xa6\xfb\x7b\x3d\x65\x85\x5d\x6c\x5e\x14\x58\x96\x9d\x1a\x44\x27\xf0\x92\xce\x19\xa1\xa6\x39\x84\x46\x12\x26\x74\xad\xdc\xbe\x89\xc4\xe8\xd8\xa7\x81\x17\xb9\xa1\x7d\x77\xf1\x9a\xbc\x24\x87\x76\x6c\x47\xa0\x71\xcc\x28\x2f\x80\x11\x08\xf0\x7f\x2b\x51\xd9\x99\x47\x28\x25\x4d\x01\xc8\x11\x22\x15\x5e\x2d\x23\x22\x24\xd1\x75\xb6\xf0\x73\xc0\xa5\x68\x9c\xc2\x8e\x22\x36\x29\x1d\x66\x10\x3b\xfd\xdd\x87\xdf\x69\xa6\x76\x7d\x6c\xed\x75\xf8\xdd\x33\x5e\x87\xa1\x95\x68\x8f\x7f\x77\xc1\xf0\xac\x96\xcc\xd0\x9c\x1a\xea\xae\x49\xff\x83\x61\xd7\x0e\x97\x65\xc2\x65\xa9\xd9\x5b\x2e\xea\x07\x24\x60\xdc\x8b\xc8\xc7\xf5\x39\xf4\x88\x64\x7e\xa1\x65\x10\xba\xf3\x41\x8a\x1e\x72\x5d\x2f\x3a\xc7\x68\xf4\x88\xd5\x0d\xb7\x04\xc5\x64\x7e\x66\x0d\x21\x2a\x72\x59\xae\x75\x72\x26\x15\x61\x34\x5b\x44\xf7\x26\x00\x8e\x0c\x07\xd3\x3d\xbf\xee\x98\x50\xc1\xee\x58\xd1\x9b\x7b\xff\xad\x7d\x9b\x9d\x1c\xbf\x73\xe1\xf5\xa4\xa0\x53\x56\x38\xfe\x0d\x24\x65\xea\xf1\x84\xf5\xe4\x06\x57\xb2\x47\x54\xcc\x95\x44\x30\x17\x6d\x26\xc2\xbe\xfe\xb3\x98\x87\x5e\xf1\x17\x37\x0e\x60\xd2\xce\x03\xb8\x41\x3f\x87\x79\xa8\x13\x14\x44\xb2\x3a\x0f\x56\xdb\xec\xce\x03\xe8\x5f\xfb\x3e\x0f\x9a\x65\x99\x2c\xab\x3d\x01\x4b\xde\x20\x10\xdf\xf6\xe8\x53\x81\x91\xdd\x1f\xd3\x24\xc4\xb3\xa3\xd5\xa5\x06\xef\x41\xcf\xad\xfb\x7f\x82\xeb\x1c\xa4\xdd\xea\x1d\xef\x5a\x4f\x06\x65\x36\x2d\xba\x17\xfe\x1a\x6f\xbc\x01\x89\xd9\x79\x9e\x1d\x89\x19\x50\x73\x51\x70\xcf\x77\x50\x91\x5f\x02\x1e\xd3\x1a\x01\x30\xaf\x4c\x40\x4e\x59\x45\xcd\x62\x44\x14\x2b\x90\xf0\xda\x89\xe7\x5b\xf4\x78\x1d\x80\xc4\xf1\x1d\xf2\xe2\xa6\x85\xad\x22\x35\x57\xaf\xf0\xcd\x4d\x90\x4d\xfc\xcd\xe5\xfb\x9b\x30\x07\x98\x8a\x25\x32\x15\x24\x64\xb8\xe2\xb3\x7f\x6a\xc5\x53\xc2\x3a\x57\x57\xf1\xa9\x51\x9d\x69\xf5\xd4\x37\xa3\x3a\x9f\xef\x98\x7e\x1a\xd2\x73\x15\xe7\xd9\x6b\x17\x56\x41\x9f\xeb\x6d\xf4\xb0\x74\xc9\x67\xc0\xdd\x9d\x7b\xe4\x01\xf9\x07\xf6\xc8\x9b\xd9\x99\x95\x1c\x86\x8b\xb9\x0e\xbd\x20\xb4\x28\x7a\xc1\x25\x6c\x72\x83\xf8\x63\x00\xc9\xd2\x2e\x63\x7f\xd5\xcc\xef\x54\x4f\x48\x69\xfd\x23\x2e\x8c\xcf\xdb\x15\x51\x58\x93\xe2\x33\x77\x44\xcc\x4b\x4d\xcf\x94\x9d\x41\xc3\x69\x71\x5d\xb1\x6c\x5f\xae\x8b\x37\xef\xae\x4f\xbb\x3d\x03\x65\xd8\x31\xf1\x31\xf8\x9e\xd0\xbc\xe4\x5a\x43\xc4\x87\x4d\x17\x52\xde\x26\x35\x79\xe8\xd3\x6d\xe7\xdc\x2c\xea\xe9\x71\x26\xcb\x20\xf3\x76\xac\xf9\x5c\x9f\x38\x89\x32\xb6\x13\x77\x44\xb8\x28\x9a\x6c\x65\x70\x17\x0a\xa3\x5d\x08\x21\x79\xf0\x24\x6b\x46\x0f\x5b\x0f\x72\x54\x1a\x78\xf6\xfa\xf4\x00\x5d\x22\x6c\xde\x9d\xab\x1d\xeb\xbb\x2a\x8d\xd7\x7c\x65\x67\x3d\x32\x76\xae\x3b\x14\x91\xcd\x26\x59\x9d\x47\xb4\x5e\x77\x3e\x49\x4e\xeb\xcf\x98\x4e\x42\xc1\xf6\x79\xe6\xbe\x6d\xbb\x44\x72\x86\x44\x22\x0c\x38\xbd\xe8\xa3\x79\xf7\x10\xdf\x3e\x80\xda\x70\xee\x4f\x0f\xfa\x62\xab\x3c\x2d\x0a\xbb\x90\xd4\x91\xca\x04\x08\x4f\xb0\x4d\x1a\x1e\x17\xa8\x14\x8f\x14\x2e\xd6\x5a\x08\x47\x91\x5e\x47\xfd\x90\x1b\xcf\xa0\xe3\x29\x7c\x8c\xc4\xb6\x29\x29\xf9\x83\xed\x61\xd8\x62\x97\x73\x04\x22\xff\x9b\xbf\x4e\x28\x95\x43\x00\x7d\xd0\x50\x77\x8d\xec\x0a\x85\x8d\xf8\x04\x69\x63\xaf\x2d\xfb\xc5\x25\x33\xd6\x52\xc3\x79\x0b\xc3\x0f\xd6\xb2\x52\x75\x0f\x87\x21\x25\x34\x4c\xc2\xf0\x70\xaf\x92\x22\xf1\x3c\x40\xa8\xd8\xf5\xc9\xea\x20\x5e\x79\x7b\xae\xd0\x31\xd9\x90\xc2\xf3\x6c\x21\x64\xf2\xe9\x61\xe4\x27\x0c\x56\x91\x7d\x09\x58\xa5\xd2\xad\x04\xd4\x31\x3b\xe3\x5a\x09\xe9\x6b\xf8\x3a\x7a\x69\x22\xf3\x35\x56\x1b\x5f\x48\x3c\xbe\x64\x84\xdd\x1c\xad\x09\x22\xa4\xf3\x8f\x04\xb5\xbc\xd9\x03\xcb\x6a\xc3\x72\x47\x6e\xe5\x7c\xca\x48\x8c\xd3\xed\x4d\x74\x0f\x7c\xa2\xbe\xab\x20\xa8\x47\x2d\xb7\xb3\xb3\x75\x1a\x7a\xae\x11\xf9\x7f\x20\x25\x1d\x97\x65\x5b\x7e\x7c\xd2\xfc\x79\xec\x54\x00\x90\x3a\xa3\xc2\xdb\x56\x50\xc5\x1a\x5d\xdc\x8e\xc4\xca\x71\x79\x4c\x19\xa9\xa8\xa2\xa5\xbd\x83\x35\x71\xcb\x33\x65\x73\x8e\xa9\x81\xc1\xa5\xd8\xb0\x60\xc5\xb1\xba\x81\x61\xc3\x0d\x29\xf9\x7c\x81\xa7\x85\x50\x28\xf5\x47\x3c\x70\xac\x90\x34\x27\x20\x58\xa4\x22\xf7\x54\x95\x56\x17\xa0\xd9\x02\x50\x68\x54\x90\xbc\xb6\xe7\x81\x00\x67\xd3\x72\xac\x0d\x35\xd6\xc6\x64\x2a\xc1\x09\xe7\xa7\x69\x07\xc5\x28\x9e\xba\xd0\xd6\x8e\x39\x75\xec\x49\xeb\xc5\x0b\x72\xfe\xc0\xb2\xa0\x9c\xb3\xdd\x9e\xae\x9e\xb3\xbd\xa6\xe8\x6d\x22\xd0\x6c\xe7\x76\x71\x26\xcb\x92\x8a\xfe\x12\x37\x13\x15\x91\x33\xec\x8e\x37\x71\x5c\xef\x88\x35\x3e\x01\xdc\x89\x02\xd4\xd3\xc5\x77\xb4\x10\x94\x74\x76\x5f\xdb\x63\x8a\xa4\x40\x52\x35\x45\xc0\x92\xba\xe5\xfb\x01\x65\x85\xa4\x34\xe4\xf0\xe0\xe4\xe0\xc8\xd3\xd4\x35\x5d\x38\xd0\x61\x52\x01\xa6\x40\xb7\x03\xd2\xbc\xac\x8a\x25\x8c\xe1\x00\x2b\x09\x25\x54\xe8\xb4\x8f\x87\xa7\x36\xe4\xf9\x7a\xc1\x8a\x62\x44\xb4\xd5\x75\xa9\x67\xbb\xc5\x4f\xed\x8f\x8c\xaa\x33\xf4\x89\x1d\x1e\xfc\x72\x30\x22\xcc\x64\x47\xe4\x5e\x8a\x03\x83\xe1\x0d\x72\x03\x06\x63\x52\x9f\x9a\x4e\x2c\x65\x0d\xc5\x6e\x71\xd9\x1a\x82\xe4\x8c\x5a\x5b\xa7\x46\x85\x1c\x59\x36\x58\x91\x50\xbc\xd5\x3e\xe7\x0f\xdc\x58\xbd\xc3\xd4\xe0\x93\x78\x89\x66\x01\xb3\xb2\xd4\xde\x6e\xf6\x5a\x3b\x59\x30\x5a\x98\xc5\xb2\x31\x55\xb0\x8e\xa8\x26\xb5\x70\xdf\xa4\x2b\x4c\x7b\x90\x27\xba\xbf\x19\x9b\xae\x9c\xf1\xcd\x42\x31\xbd\x90\xc5\xce\xf3\x36\x7d\x8d\xcb\x4c\x0a\x6d\x65\x8a\xb5\xa7\x5d\x1f\x75\x93\x32\xe7\xea\x6c\x4a\xc7\x70\x6a\x4f\x99\x62\xb9\xd3\x8c\x1c\x5d\xe2\x82\x42\x4d\x7f\x50\xde\x58\x9e\x62\x87\x84\x06\xd0\x1f\xfa\xac\xc2\xb9\xfb\x82\x97\xf6\x99\xab\xaa\x9f\x2b\xf9\xcd\xd5\xe4\x2c\xb8\x92\xa9\xf0\x37\x32\x17\x77\xb2\x80\xd5\xa0\xf8\xa3\x4a\xaa\xc4\xca\xb4\x3b\x87\x13\xd8\x21\xec\x50\x3d\xb0\xcd\xf7\xa6\x1b\x4c\xa4\x32\x44\x34\xd5\x6d\xed\x09\x9b\xc3\x5a\x32\x75\xc7\x33\x76\xfc\x0c\x85\xfc\xfb\x22\x30\x4f\x3f\x0e\x04\x00\x50\x30\xf0\x7d\x51\xbe\xae\xb1\x3b\x9b\xfc\xcb\xae\xa7\x60\xc7\x15\x34\x6b\xd6\x06\xd6\xef\x5b\xb8\x41\xcf\x16\x2c\xbb\x75\xe5\x08\xd2\x1c\x91\x9a\x31\xb2\x21\x42\x61\x05\x08\xfe\xcf\xb4\x90\xd3\x93\x92\x6a\xc3\x94\x35\x6b\xdc\xe5\x3e\xce\x6c\x0f\xb8\x98\x1f\x97\xf9\x51\x4a\x8d\x32\x12\x98\xd2\x6b\x9c\xe2\x1d\x7a\x99\x47\xf8\xc1\xed\xac\xec\xd4\xed\x6e\x67\xef\x0d\xeb\x27\x71\xec\xdb\x9b\x9b\xc9\x1b\x66\x56\x8c\x20\xdb\x82\x2f\x23\x02\xbb\x02\x13\x90\x06\x69\x9b\x22\x6d\x17\x52\xf7\x27\x6d\x7b\x08\x91\xa0\x08\x00\x56\x6c\x21\x58\x66\x17\x7a\xd4\xa9\x85\xe2\x31\x83\x17\x93\x63\xf2\x4f\x59\x83\xc2\x44\xa7\xc5\x92\xdc\x53\x24\x20\xd0\x2c\x4d\x16\xbc\xb0\xdd\x78\x61\xa5\x8d\xdd\x70\xdf\x32\x9a\x63\x75\x03\xf0\xc2\xec\x3e\xb2\xd5\xf6\xa9\xb7\x65\x3b\xab\xb5\x91\x25\x59\xb8\xa1\xe2\x1c\x36\x57\x21\x1e\xb8\x63\x38\x94\x18\xa6\xd1\x44\xb1\x0a\x6d\x1d\xf7\x37\x5f\x84\x25\xb3\x26\x82\x70\x9e\x83\x42\x41\x94\x64\xe1\x54\x39\x35\x1d\xbc\x8d\x5c\xe0\x04\x25\x95\x89\xc7\xa7\x97\xca\x89\xa4\xa7\xea\x89\x24\xbd\x82\xa2\x7f\x49\x7a\xbc\xb0\x9f\x5a\x8c\xa4\x97\x7a\x8c\xa4\xf7\x9a\x8c\xc4\x45\xc5\xdc\xe6\x42\xac\x8c\xed\x68\x2a\x89\x20\xf1\x7e\xdf\xa6\x74\x06\x15\x52\xf0\x0c\x23\x0f\xa4\xae\xa4\x20\xb2\x36\x55\x6d\xc0\x91\x93\x51\xcd\xc6\x77\x54\x71\x2b\x50\xb1\x9c\x6d\x03\x5a\x12\xf6\xb4\x1b\x29\xc1\xcb\xd1\xc4\x87\xb1\xc7\xe9\xdd\xec\xc9\x97\x60\x1f\xd8\x6c\x3d\xaf\xf0\xda\xe2\xa4\xef\x68\xb2\xd7\x1e\x14\x82\x55\xa7\x16\xfd\x99\x63\xd4\x2c\x00\x84\x07\x61\x27\x8f\xe1\x04\xc1\x69\xd5\xfd\x3d\x48\x92\xe9\xd5\xfa\x4c\x14\x09\x10\x1a\x97\x6a\xc5\x7e\xb5\x3d\x5c\x9f\xc3\x9e\x60\x21\x4f\x6f\x0e\x87\xb5\x67\xa7\x8c\x50\x41\x2e\x4e\x2f\x4f\x7f\xbe\xfe\xfe\xec\xe7\xcb\xd3\x77\xe7\x29\xaf\x4e\xae\x36\xd6\x67\xbd\xb1\xde\x2a\x8e\x3d\x51\x3d\x46\xfb\xe8\x6c\xc1\xf6\x07\x11\x72\x0d\xbd\x09\x39\xc4\x9c\x0d\x10\x54\xc2\x49\x23\x95\x23\x2b\x2e\x4f\x2b\x78\x76\x2a\x71\x1c\x00\xe0\x35\x2b\xe8\xf2\x9a\x65\x52\xe4\x3b\x07\x52\x5f\x36\xc2\x46\x63\x87\x9a\x02\x40\x6c\x85\xdd\xca\x97\xdc\x72\x65\x8b\x7c\x28\x3f\x44\x1f\xe0\xf8\xa2\x03\xcc\x64\xff\x82\xcc\x64\x6f\x9c\xdb\x15\x53\x1c\xc0\x3b\xfb\xb0\x6b\xbe\x95\xf7\xae\x96\xd7\x21\x17\x7e\xe7\x1c\x05\x5e\x9a\x36\xb8\x91\xce\x7c\x66\x24\x79\xf5\xd2\x37\xf2\xe5\x45\x2d\x1c\x28\x67\xaf\xe3\x56\xae\x8f\x1f\x0f\x5c\xb5\x08\xa3\x6e\xf0\x2a\x05\xea\x43\x56\xc4\xf8\xab\xe3\x26\xa7\xec\x15\xf4\xa7\x11\x45\x54\xe4\x1e\x1d\xf6\xe5\xed\x13\x93\x55\xd7\x32\xbb\xed\xc9\xe7\x7a\x73\x36\xc1\xb7\x7d\x34\xce\x75\x73\x36\x19\xc2\x5c\xfb\xe5\x78\x3d\xc0\x2c\x2c\x5a\x7c\xb5\xb5\x13\xf5\x60\xb0\xb8\xda\xc7\x2b\x3f\xaa\x5b\xb4\x64\xb0\xb8\x1e\x79\x06\x8b\x6b\x8b\xc7\x17\x8f\xe5\x52\xbc\x51\x34\x63\x93\x7d\x52\xe0\xbc\x00\x21\xb9\x2b\xa9\x4e\x5a\x3d\xae\x11\x17\x82\xb1\x1c\xe5\x87\xaf\x83\x4b\xe6\x76\x24\x88\x66\x06\x3f\x62\x8b\x03\xae\x55\x82\xaa\x77\xb3\x70\xaf\x76\x6a\xae\x0f\x10\x6f\xea\x5d\x6b\x9f\x54\x0d\x7f\xb9\x2f\xf4\xe1\x8e\x93\xed\xbc\xb5\x47\x34\x13\xf1\x2e\x75\x1a\xae\x20\xd1\x7c\x6e\xa7\xcb\x97\x5f\x46\xd2\x2b\x5f\x2d\xaf\xed\x88\x6d\x75\x26\x55\xc6\xa7\xc5\x92\x2c\x68\x61\x0d\x26\xa8\xe2\x4b\xc9\x2d\x54\x9f\x85\xd7\xc4\x4f\xd4\x35\x73\xa9\x95\xa8\xd5\x14\x52\xcc\x61\x32\xa8\x4b\xa1\x78\xa8\x58\x66\xdb\xcc\x0a\x46\x45\x5d\x61\x3f\xad\x8e\xb4\x94\x75\x0f\x59\x14\x3e\x66\xdd\xe8\x54\x82\x3b\xba\x10\xac\xb5\xf6\xc1\x3d\xdf\xcd\x85\x25\xef\xcd\x82\xa9\x7b\xae\xd9\x28\xbe\xda\x2c\xf1\xae\xdf\x95\xca\x6f\xf8\x59\x43\x79\xe2\x12\xfd\xec\xb6\x80\xcc\xd3\xe8\xb6\xbe\x87\xf7\x7a\xd1\x2a\xa4\x18\x0b\x36\x47\x62\x05\x27\xd0\x10\x93\x89\xed\x23\x02\xb0\x49\x0e\xd0\x46\x56\x9d\x52\xbb\x77\x9c\x46\xf7\x04\x48\x1c\xda\x1d\x45\x0e\x85\x24\xb2\xb2\x57\x57\x2d\xb8\x59\x42\x54\xcf\x57\x79\x4e\x48\x8f\xba\x71\x08\x05\x4a\xa6\xcc\x50\xe7\x07\xb7\x87\xa0\xe1\x30\x07\x7a\x72\x7b\xf6\x00\xd3\x7f\xb3\x71\x03\x34\xb4\xe6\x73\x6a\x12\xa4\xc4\x06\x8d\x1e\xd7\xf3\xc3\xdb\x8e\x6b\x17\xb3\x4b\xe4\x4d\xde\x0f\x26\x42\x7b\xa2\x65\x6d\xf6\xe4\x1e\x79\xcc\x7d\x84\x94\x14\x81\xa1\xc8\x4b\xa6\x89\xac\x7b\x2a\x11\xf1\xca\x35\xd7\xa7\x95\x37\xf8\x9e\x36\x3e\xda\xe4\x3c\xaa\x50\x70\x1f\x5b\xec\x11\xb2\x7d\x97\x36\x1b\xf0\x4d\x4e\xeb\xd9\x8c\x29\xb8\xe9\xa0\xc3\x6b\xc0\xf9\xa6\xf4\x96\xbf\xc3\xe2\x1c\xb8\x0e\xab\xc5\xcc\x08\xb8\xfe\x1d\xf7\xc3\x23\x4d\x3a\x52\x4c\xa8\xac\xab\x98\x06\xee\x76\x41\xce\xdf\x7f\x13\xb7\x45\xfb\xa8\x04\x90\x96\x61\x0a\xe3\x7c\x2f\xe2\xf0\x84\xfd\xee\x87\x4d\x24\x2d\x6e\x5b\x64\x85\xd4\x2e\x9b\x19\xd6\x25\x5b\x50\x21\x98\x77\x48\x71\x03\xde\xec\x29\x63\x82\xc8\x8a\x21\x9e\x2e\xaa\x33\x94\x68\x2e\xe6\x05\x23\xd4\x18\x9a\x2d\x8e\x6d\xef\x84\xdf\x0b\x6d\xda\xb0\xfb\x44\x1b\xc5\x68\x89\x7b\x42\xb1\x92\x72\x6c\x9e\xd0\x4c\x49\xad\x49\x59\x17\x86\x57\xcd\xcb\xe2\x3c\x89\x0c\x08\x1c\x34\x66\x91\xfa\xb5\x82\xc4\x90\x36\x3f\x79\xd4\xf6\xd0\x0d\x5f\x86\xf5\x85\xc0\x7d\x36\xb2\xdf\xb2\xb2\x32\xcb\x26\x8f\x30\xce\x06\x9a\x71\xa5\x0d\xc9\x0a\xce\x84\x71\x23\x43\x8a\x40\xe8\xc3\xc8\xab\xd3\xc2\xcd\x88\x76\x53\x22\x72\x30\xbe\x2b\xa3\x31\x5d\xae\xe9\x84\x7f\x55\xce\xb5\xf3\x75\xe8\xb8\x64\x3d\xea\x2b\xc9\xe0\xc6\xf1\x33\x02\x5b\xc7\x2b\x38\xd8\x23\xf7\x51\xd0\x85\xa0\x34\x76\x9b\xea\x98\x26\x57\xa0\xdc\x8b\x3f\xd7\xa3\x0e\x45\x40\x6b\x5b\x40\x32\xcb\x9a\xd4\x81\x0d\x25\xd8\x9d\x3d\x07\x2c\x63\x56\x15\xa5\x3d\x0a\x99\x67\x97\x31\x81\x2e\xf7\x8e\x69\x4d\xe7\x6c\x12\x09\x49\xe8\x43\xe0\xb4\x8e\x36\xc0\x32\xb4\xdb\x66\xc1\x90\x97\xca\xc8\xe0\x93\x30\x4d\x2b\x34\x1e\x4b\x1c\x48\x54\x0f\xbc\xd1\x74\xaf\xb8\x31\x0c\x76\x29\x14\x5f\x02\x10\xda\x2a\xd9\x66\x37\x3d\x2c\xaa\x3d\x37\xe9\x61\x7b\x56\xfd\x10\x39\x26\x5a\x4d\x19\x99\x2a\xce\x66\x64\xc6\x21\xf3\x0b\x72\xa2\x46\x58\x35\x80\xa2\x0b\x59\x6b\xa6\x60\xd8\xce\x2d\xe0\x87\x1f\xd7\x9f\x7f\xb8\xf1\x1b\x55\x8b\x8c\x06\x55\x35\x81\x0a\x8c\xcf\xc8\x1c\xf2\xb0\x9c\x11\xfc\x5f\x2f\xff\xf2\x27\x32\x5d\x5a\x7d\x0d\x0c\x31\x23\x0d\x2d\x7c\x07\x48\xc1\xc4\xdc\xae\x22\x88\xdc\x38\xb9\xd1\xa1\x93\x6a\x16\xa7\xe0\x25\x37\x38\x41\xaf\x7e\x7f\x3b\x4d\x3a\x7a\x20\x1f\x4f\x72\x76\x77\x12\x6c\xa1\x71\x21\xe7\x71\x6f\x3d\xeb\x23\xf9\x37\xc9\xcf\xb6\xe1\x44\xcb\x82\x67\xcb\x5d\x9d\x69\x5f\x6c\x84\x2c\xe4\x3d\x3a\x73\xd6\x8f\x6a\xc0\xcc\x52\xc9\xaa\x2e\x60\xe2\xc8\x37\x0d\x9f\x5e\xad\xd9\x2a\x53\x51\xaa\x93\x30\x90\x76\x10\x48\x75\xcd\xae\xdc\x39\x2e\x09\xd1\x77\x53\x3a\x9e\x08\x17\x77\x6b\xea\x86\x44\x7b\xe3\xbe\xa1\x45\x31\xa5\xd9\xed\x8d\x7c\x2b\xe7\xfa\xbd\x38\x57\x4a\xaa\xee\x98\x0b\x6a\xef\xf4\x45\x2d\x6e\xa1\xf0\x6d\x4b\x1e\x2b\xe7\x0e\x57\xe8\xd3\xfd\x83\xd1\x45\x75\xc6\x8f\x12\xe9\x3c\xbd\x4a\xe2\x7d\x70\x6d\xcb\xec\x81\xb7\x8e\x36\x41\x98\xed\x73\x6c\xbe\x3c\xeb\x8c\x43\x87\x47\xfb\xf7\x2f\xff\xeb\xcf\x28\x5c\x88\x54\xe4\xcf\x2f\x21\x69\x58\x8f\xf0\x02\x80\x1b\xd8\xaa\x5a\x25\x2d\x8a\xd8\x28\x41\x28\x02\xbe\x89\xae\x27\xbd\x07\x47\xde\xec\xec\x74\x7f\xb2\xc9\x78\x73\xf3\x4f\xb0\x17\xb9\xd1\xac\x98\x8d\x90\x9c\xa5\x71\x6b\x1d\x80\x76\x75\xe0\xae\xbc\x78\x62\x9f\xdd\x1b\x6d\x77\xb2\xa8\x4b\xf6\x9a\xdd\xf1\x2c\x2e\x80\xd9\x59\x95\xce\xdb\xbc\x9b\xbe\xe0\x1a\x38\x7b\xa6\x85\xcc\x6e\x49\xee\xbe\x0c\xe0\xf2\xab\x85\xb0\xe3\x67\x21\x36\x71\x20\x21\x61\xe0\xd1\xf1\x77\x52\x05\x4a\x5a\x55\x0d\xa1\x88\xa2\xf7\x9d\xc9\x00\xd1\x04\x64\xa6\x89\x61\xc4\xe4\x60\x7a\x6a\x28\x7d\xec\x46\x64\xaf\xa9\xe8\x57\x44\xe7\x17\xa4\x47\xe2\xdb\xde\xc7\xc7\x31\x3b\x1b\xa2\x7d\xa1\x3f\x0d\x15\xfc\x37\x32\x26\xac\x11\x59\x35\x0c\x41\xcd\xc6\x40\x0d\xd2\x6e\x1f\xb8\x65\xe2\xdd\x97\x3d\x04\x43\xd3\xf2\x24\x3a\xf3\x22\x9a\x20\x74\x49\x8d\xb3\x8f\x7c\x94\x9d\x92\x8a\x29\xcd\xb5\x55\x9d\xbe\x87\x03\x75\x56\x50\x5e\x06\xe1\xbb\x5d\x4d\xc2\x3a\xaa\xbe\xa4\xd5\xf8\x96\x2d\x23\x37\x5c\xe2\x71\x79\x0c\xe4\x5f\xd2\x2a\xf2\x1e\x80\x52\xb3\xe9\xd7\x40\xe4\xe5\x3c\x91\xb9\xeb\x07\x5c\x0f\x58\x45\xf8\x49\xcc\xd8\x1e\x75\xa0\x5d\x5f\x39\xdf\xb7\x0b\xd7\xbd\x71\xec\x27\xcd\x95\x83\xbf\xfa\x92\x2e\x1a\x18\xdf\xe7\x7a\xcf\x34\x9d\xef\x49\x9c\x26\x21\x9d\xe0\x76\x72\x3b\xa3\x7b\x1d\x75\x1c\x5a\x78\x32\x03\xd3\xd7\x39\x9a\x8e\x91\xc4\x3f\xa1\x03\xf6\x28\xba\x46\xc9\xc1\x57\x07\x3b\xbd\xe3\x70\x65\x94\xac\xe8\x1c\x2c\xd3\x7d\x58\xa0\xd5\x3e\x85\x94\xb1\x0b\x79\x8f\xdf\x23\xba\xa4\x72\xbf\x62\x79\xcb\x3b\xbe\x90\x49\xab\x83\xc8\x41\xbf\x23\x9c\x75\x8d\xd4\x82\xf7\x74\x49\xa8\x92\xb5\x48\x4a\x85\x86\xc0\x48\x13\x38\x7b\xb7\x32\xd8\x4b\x29\x98\x0f\xd2\xa7\xb4\x72\xd3\x52\x8e\x73\x8d\x78\x05\x2e\xc8\xab\xe3\x57\x2f\x93\xfb\x7e\xc5\xb2\x5a\x69\x7e\xc7\xae\x5c\x4d\xf2\x20\xa8\x72\x31\x9b\x48\xad\xf9\xb4\x80\xe4\x2d\x23\xc9\x39\x16\x6c\x5f\x1f\x68\x03\x1c\x81\x11\x4b\x15\x92\x8b\x26\xf4\xf0\x10\x4f\x70\x08\xf8\xb4\x0d\x24\xa0\x3e\xf6\x4b\x93\x84\x75\x5d\xd1\x24\x2f\x1b\x4d\x12\xef\xbd\x9d\x8e\xd5\x17\xaa\xdf\x07\x49\xf2\xce\xc5\x06\xda\x4a\xf4\xdc\x57\x3a\x86\x8f\xee\x15\x37\xee\x70\xdf\x73\xcd\xc8\x21\x78\x25\x56\x36\x63\x12\x9f\x72\xe8\xc3\x4a\xac\x58\xdf\x07\x1f\xb2\x5a\x3d\xba\xfb\xb0\x4a\xeb\xf2\xa4\x45\xe1\xdf\x3b\x07\x56\xbb\x82\x4e\xfa\xb7\xf7\xf2\x82\x8a\xbc\x48\x92\x19\xcd\xac\x14\xcb\x34\x1e\x9b\x8b\x19\x09\x65\xa2\x0b\x60\x06\xd5\x1f\x16\x54\x13\x21\x49\xc9\x28\x20\x34\xed\xf5\xe2\xc5\x60\x87\x5b\xb9\xc7\x4e\xe0\x76\xc7\x8b\x2c\xbc\x12\x9c\xc0\x7e\xcd\xb5\x13\xd0\x56\x92\x38\x1b\x04\x81\x1d\x25\xcd\x53\x12\xbc\x83\x59\x6d\x97\xef\xb8\x85\x4d\xae\xf6\xa4\xbd\x3a\x56\xfa\xf2\x14\xfd\x18\xb9\xa2\xe1\xb6\xf9\x1a\x90\x82\x1b\x1c\x73\x2d\x4c\x26\x29\x9e\x8d\xcf\xea\x70\x9b\x8b\x71\x6d\xac\x9b\x7b\xdc\x74\x38\xa1\x0f\x1f\x1f\xea\x28\x90\x86\x1e\x25\x8a\x41\x75\x57\xb4\xc4\xe5\x3d\xa6\x51\x6f\xfb\xb0\x44\xe3\xf0\x99\x33\xc1\x14\x75\x91\x05\x0f\x12\x75\x14\x2c\x54\x4b\x91\x7c\x22\x3e\xb2\xe3\xac\xc8\xff\xb8\xa6\x82\x7f\x96\xd0\x11\x50\x75\x0e\xa5\x5a\x39\xef\x2e\x68\xb2\x49\x69\xe9\x75\xd8\x2b\xcc\x5a\xb8\xfd\x03\xe6\x4e\xbb\x2c\xff\xaa\xf9\x1d\x2d\x18\xd2\xce\x7b\xe1\xb0\x53\x85\x42\xd7\xd3\x7d\x35\x1d\x9d\x8d\x08\xa6\xc7\x66\xe0\xc3\xa3\x56\x64\x4f\x3a\xc5\x8b\x17\xe4\x10\xdb\x38\x40\xaa\xdc\xdd\x2a\xba\x6e\xad\xce\x1f\xaa\x84\x6a\xab\xfd\xad\xd7\xf9\x43\x45\x01\xab\x51\xed\xc5\xc2\xfd\x37\x5b\xd0\x3b\x06\xcc\xc4\xbc\xa0\xaa\x00\x60\xfa\x35\x4e\x19\x99\xd6\x86\x30\x71\xc7\x95\x14\xa5\x3d\x7e\x40\x42\x63\x45\x93\x62\xc0\xdf\x9e\x31\x4d\x7e\x7b\xf8\xfd\xe9\x15\x24\x2e\x1d\x39\x82\x7b\x37\xbe\x5a\x03\x4f\xc0\xca\x18\x82\xd7\xed\xe3\x7e\x23\x7e\xec\x76\xbb\x80\x86\xe2\xe7\xc2\x8e\xad\xac\x4d\x4d\x0b\x20\x70\xce\x8a\xda\xde\x86\x3b\xdb\xd9\xfd\xfb\xc1\x53\xbc\x79\x7d\xba\xc1\x1d\x7d\xf7\x6b\x1e\x75\x5c\xfb\x38\xa8\x67\xc1\x7e\x5d\x23\x13\x8f\x2e\xcb\xb0\x81\x43\x72\x4d\xd5\x39\xd0\x0d\xaf\x64\x98\x8b\xe3\x2e\xe3\x38\x88\x06\x54\x3b\xc0\x24\x70\x5f\x47\x74\xcd\xcb\x08\x65\x55\x76\xee\xc7\x8f\x38\x0c\xfd\x1d\x83\x08\x67\x74\x3f\xbb\x5e\xc8\x9c\x6d\x5f\x08\x28\x6d\x9f\x5f\xba\x36\x31\x73\x28\xe0\xf0\xd4\xd9\x82\xe5\x75\xc1\x5c\x11\x11\x99\x13\x29\x8c\x24\xb4\xad\xe1\x68\xbb\x0b\x58\x5a\x5f\x2b\x4a\x8c\x01\xf5\xb3\x2d\xcc\x17\x80\xd7\xae\x35\xe5\x89\xf1\xfd\x07\x7a\xa5\x7d\x08\xca\xda\x96\x47\x84\x6a\x5d\x97\x78\xb3\x50\x63\x3b\x31\xe3\x06\x60\xbe\xb2\x56\xd9\xb6\x36\x99\x8b\x81\xd8\xdb\x68\xcb\xa4\xbb\xc8\x1d\x6b\xc7\x70\xcd\x0a\x10\x25\xcf\xbd\xe0\xbe\x5d\x5c\x74\xed\xff\x85\xba\x86\xb7\x27\x00\x14\xdf\x70\x48\x48\x30\x7e\x66\xdc\x10\x29\x08\xc5\xb5\xdf\xb2\xe5\xeb\x0d\xed\xa0\x9b\x10\xdf\x77\xa0\xb1\x48\xbd\x5e\x6d\x75\xda\xee\x0f\x57\x8a\xd9\xed\x81\x6d\x7b\xb0\x65\xd6\x90\x97\x93\x60\x67\x9d\x50\xad\xf9\x5c\x8c\x2b\x99\x8f\x6d\xdb\x27\x11\x9b\x24\x22\x46\xe7\xab\x9d\xd1\x62\x12\x1d\xe8\xea\x47\xa6\x5a\x71\x1a\xc9\x5b\x27\xb7\xec\x72\xda\x0e\xbf\xee\x70\x13\xbf\xbf\x5e\x43\x76\xe8\x00\xbd\xb0\xf5\x26\x96\xa5\x4b\x5a\x16\x79\x70\x6d\x82\x15\x8b\x51\x1f\xc5\xec\x4c\x43\x6a\x2f\x6f\x79\xa3\x21\x99\x71\x5b\x7b\xf9\x62\xe6\x87\xb0\xea\x1c\x80\x2a\xac\xa8\x3a\xcc\x64\x51\xc8\x7b\x60\x6e\xc1\x4e\x04\x3e\xbb\xed\x19\x48\xc6\x7a\xa5\xcc\x59\xb7\x98\x70\x8f\x43\x70\x2f\x1e\xf5\x3d\x00\xcc\x33\x85\x3a\x93\x17\xaf\xe3\xff\xf8\x62\x72\x16\xff\xc7\xdf\x69\xa6\xb6\x75\x85\xb9\x3f\x5f\x9d\x7f\x5a\x55\xa7\xaa\x94\xca\x95\xca\xef\xe7\xa5\x9a\xbd\xb5\x1b\xc8\x2f\x6a\x4f\xef\x84\x62\xe6\xbd\xf6\x73\xa6\xdf\x28\x59\x6f\x6b\x39\x7c\xf8\x65\x67\x0b\x2a\x3c\xae\xbd\xa7\x91\x2f\x75\x66\x8a\xd8\x69\x5c\x50\xc5\x5c\x09\x4b\xab\x88\xe9\x8a\x6e\xad\xbc\x3c\xd2\xaf\xa6\xba\x64\x8f\xaf\xeb\x71\x3d\x74\x5d\x55\x05\x68\x5c\xb4\x80\xd7\x46\xce\x60\x2b\xd7\x7f\xf8\xcf\x9f\x9e\xe6\xfc\x7c\xb8\x89\x3e\x4e\xd3\xc7\x5a\x48\x3f\x5b\x1f\x6e\x21\xa3\x15\x9d\xf2\x82\x5b\xfd\xe2\x29\xde\xef\x03\xaf\x57\x52\x9a\x6f\x1a\xc0\xd8\x53\xb4\x54\x29\x7e\xc7\x0b\x36\xdf\x3a\xe8\xf6\x69\xdb\xc9\xde\x55\x13\xdf\xc4\xb9\xce\x68\x11\x93\x34\xf1\x89\x23\x91\x19\xb8\xfb\x9f\x64\x41\xd2\x84\xc3\x27\xbc\x7c\x7b\x51\x11\xad\x25\xc7\x22\xd8\x22\x4c\xfd\x78\xbc\x59\x1c\xce\x22\xdd\x8d\xf5\x58\x99\x70\x57\xaf\x52\xcc\x49\xa7\x46\x5d\xad\x14\x13\xc6\x9a\xe0\x4d\x3c\x0e\x18\x1b\x50\xbb\x05\xc5\x13\x94\x5f\xa7\xbf\xc5\x38\x79\x4e\x1b\xa3\xc6\x91\x41\x94\x74\x69\x15\x3e\x5f\x35\x85\x0b\x32\xab\x81\x85\x04\xb4\x6c\x2c\x1d\x0a\x40\x9c\x28\x4a\xab\x0d\xe5\x63\x64\xc5\x44\xbb\x85\x4f\x9c\xd3\x6d\x6c\xb7\x76\xa7\xa0\x0c\x9a\x80\xc7\x65\xfe\x9b\xaa\xa0\x66\x26\x55\x39\xf6\xfe\x8f\x71\xc7\x3c\x8c\xe8\xd6\x19\x24\x48\x37\x60\x01\x24\x04\xc2\x32\xdb\x22\x2f\x58\x60\xfa\x35\x0b\x20\x72\x8c\x88\x91\x5a\x28\x96\xc9\xb9\x00\x9a\x78\xf7\x2d\x18\x35\x4d\x44\x8d\x6a\x6b\x76\x11\x51\x17\xc5\xd6\x7d\x8b\x34\x18\xe5\x1d\x53\x0b\x46\xb7\x3c\x85\x69\x1b\xfc\xbd\x6b\x93\x28\x56\x29\xa6\x61\x42\x31\x32\x8b\x6e\xa0\xa6\x53\x84\x6a\x2d\x33\xa0\xbc\xc5\xec\x33\x4f\x44\x45\xc1\x9c\x9b\x49\x45\x28\x99\xf3\x3b\x26\xc8\x15\xee\x86\xb3\x82\x6e\x4f\xc0\x14\x20\xdb\xbc\xdf\x96\xd6\x46\x36\x99\x89\x84\x1a\x42\xf3\x92\x43\xfa\x3f\xa6\xb4\xbb\x68\x77\xd8\x6a\xf0\x13\xbb\x4b\x95\x84\x3c\x35\x72\xb1\x6d\xe6\xe2\x27\xbd\x17\xd2\xf5\x7c\x78\xb9\x99\x2e\x30\xc2\x7c\x5c\xbd\x29\x82\x4d\x32\x08\xc8\x7a\x47\x61\xc4\xf4\x7c\x4a\x87\x1c\xf3\x82\xbd\x06\x36\x35\xea\x1c\x48\x4d\x25\xfc\x76\x89\x0b\xab\x66\x6c\xab\xd5\x5b\xd3\x1c\x70\x29\x61\xbf\x30\x23\xcd\xbb\xc9\x81\xad\x14\xdc\x57\xad\xcf\x7c\x22\xf3\xeb\x8a\x65\xa3\x76\x0b\xfa\x05\xf7\x14\x0e\x9e\x5d\x6a\xcb\xfe\x04\x52\x10\xdd\x16\x4a\x31\x5d\x49\x91\xdb\xdd\x1a\x76\x32\x84\x43\x70\xd3\xe1\xab\x00\xd3\xb9\x95\x17\x18\x41\xff\x37\x53\x5b\xe7\xac\x6c\x70\x99\xcd\xb9\x39\xbe\xfd\x33\xf8\xcb\x98\x58\x50\x91\xa1\xd7\xf4\xe4\x96\x55\xfa\x44\xf3\x39\xba\xc7\xfe\xf4\xe7\x3f\x83\xaf\xcc\x2f\xce\xc9\xd5\xf9\xe9\xeb\x77\xe7\xc7\xe5\x76\x6a\xd9\x4e\x1d\x67\x15\x35\x86\x29\xf1\x15\xf9\x9f\xc3\x1f\x7f\xf7\xcb\xf8\xe8\xeb\xc3\xc3\x1f\x5e\x8e\xff\xf2\xd3\xef\x0e\x7f\x3c\x86\xff\xf8\xcf\xa3\xaf\x8f\x7e\xf1\xff\xf8\xdd\xd1\xd1\xe1\xe1\x0f\x7f\x7f\xf7\xe6\x66\x72\xfe\x13\x3f\xfa\xe5\x07\x51\x97\xb7\xf8\xaf\x5f\x0e\x7f\x60\xe7\x3f\x7d\xe2\x4b\x8e\x8e\xbe\xfe\xed\x96\x1d\x8d\x64\x7b\x4c\x65\x78\x4c\x62\x75\xec\x91\xc9\xb1\x52\x8c\x95\x70\x83\xc4\xa4\xab\xa7\x5d\x40\x93\x95\xb6\xbd\xa6\xe5\xfe\x65\xef\x15\xdf\x3d\x31\xb7\x57\x8d\xc6\xeb\xa7\x90\xf7\x40\x19\xc2\xa5\x55\x9c\xb7\x3d\x96\xef\x41\x19\x22\x97\xec\x8e\xa9\x91\xef\xc3\x5b\xfb\xca\x49\xe4\x1b\xc3\x38\xfa\xa6\xf7\x45\x72\xb2\x45\x6e\x10\x3f\x2f\xcf\xb9\x92\x37\x40\x81\xe6\x46\x0b\x82\xfb\x98\x7c\x4f\x15\x97\xb5\x76\x1a\x32\xd4\xe7\x97\x02\x94\x0c\x4c\xb1\x6f\x2e\x7b\x08\x8e\x20\x1e\x7f\x5b\x21\xe3\x9b\x6c\x38\x6d\x73\xc7\x4f\xd4\x4c\xfd\x69\x73\x49\x9e\x6d\xbe\xb5\xf9\xb6\x26\x62\xa5\xd8\x9d\x1f\x86\xf2\x24\x35\xcc\x60\x41\x87\x66\x54\x68\x11\x6c\xbc\xa2\xbd\x42\xb3\xad\xb3\x20\x98\x32\x68\xd4\x8f\x11\x2e\xb4\xcb\x88\x92\x4a\x50\xfa\x87\xcf\x3d\xd5\x14\xac\x1b\x3a\xc6\x83\x4f\xe3\x8e\x59\xbc\x70\x8c\xe5\x71\xab\x56\x67\xe3\x39\xf7\xff\xc5\xac\x83\xbf\x6b\xc8\x30\x5b\xce\xd0\x66\x1a\xc9\x0b\x3c\x10\x70\xd5\x8f\x33\xc5\x0d\xcf\x68\xf1\x22\x02\x78\xe9\x5f\x94\x15\xb5\x35\xb8\xc2\x77\x29\x46\xcc\xbd\xc4\x3e\xd1\x82\xdc\xb2\xe5\xbd\x54\xb9\xd7\xfe\x42\x1c\xe6\x96\x6d\xc2\xc6\xd0\xc6\x0f\x07\x90\xdc\x56\x24\x63\x34\x45\x95\x4c\x91\x29\xf3\x90\xa5\x95\x1f\x2f\x8f\xc9\xa9\x58\xa2\xe2\x15\x61\xff\x37\xb1\x8d\xa0\x40\x28\x68\xb7\x68\x89\x74\x4e\x83\xd3\x7a\x7c\xdf\xa8\x89\x2a\x39\xb6\x19\x6f\x62\x4d\x9e\x46\xf0\x78\xbd\xd5\x03\x4e\xa4\x72\x7c\xa8\x20\x90\x14\xb2\xc7\x6e\x8b\x2c\x75\x2f\x7b\x96\xdb\xc2\x6a\xfd\x5c\x30\xad\xdf\xd8\x0d\xbb\xbb\x33\x43\x41\x01\x77\x7d\x01\x06\xd5\x96\x77\x88\x59\xc9\x84\xb9\x60\x56\x25\x90\x79\xfb\xcb\x6d\x97\xf4\x14\xfe\x1c\x28\xcd\x68\xbe\x44\x6e\x63\xdb\x34\x37\x3a\x0c\x72\x62\x30\xd2\xfe\xe2\xf4\x72\xdb\x40\x98\x23\x4f\x42\x15\x5a\xb7\x63\x6c\x6b\x4f\x76\x47\x09\xb6\x98\x23\xbc\x61\xff\xaa\x69\x01\x70\xbc\x1b\x55\xb3\x17\xcf\x61\x70\x30\x73\x2f\xd5\xed\xc9\x1f\xff\xfc\x12\x6c\x8e\xa6\x77\xe3\xf9\xd6\x57\x54\x6c\x22\x71\x54\x0a\xf1\x4a\x45\xec\xfc\x2a\xdc\xc8\x7e\x2d\xbd\x43\xc3\x01\x2d\x81\xef\x1e\x76\x40\xb3\x40\x51\x78\x80\xa8\x84\xe1\xf8\x54\xe1\x71\xdb\xdd\x9b\x65\xb5\xbd\x92\x14\x9f\xe5\xdb\x69\x37\x19\x49\x78\x16\xbe\x0d\x57\x45\xe3\x92\x34\xed\x04\xf0\x82\x03\x1d\x7c\x0c\xdc\x2b\x20\xcd\x01\xf6\x02\x37\xcc\xb2\x4a\xe0\x99\xe9\x05\x26\x17\x89\xe9\xf0\x0e\x36\xa0\x83\x78\x56\x99\x7b\xd5\x69\xd9\xdd\xa4\x5e\x2d\x58\xf9\xb2\x29\xad\xe0\xc8\x84\xb6\x55\x4f\x90\x5e\x12\x2a\x20\x36\xe5\xb4\x9c\xf3\x07\xc0\x53\x85\x35\xe3\x72\xa4\xc9\xa4\xca\xa0\xc2\xec\xa7\x66\x5b\xdd\xb8\x25\x18\xc9\x19\xa1\x77\x94\x17\x00\xb1\x06\x57\x92\xd4\x1d\x00\x0b\x0e\x36\x93\x42\xd7\x25\xf4\x68\xdb\x50\xda\x74\xe9\xb4\x89\x6d\x01\x1d\x0d\xcd\xb8\xbd\x73\xaa\xc5\x87\x89\xc6\xb7\xd7\xcd\x5e\x2f\x05\x2d\x79\xe6\x97\xf1\x14\xd7\x0d\x28\x0a\x3b\xc4\xe4\x51\xdd\x6e\x20\x28\xbc\x2c\x6b\x63\x27\x37\x46\x3d\xd9\xc5\xdd\x10\x11\xf8\x81\xeb\x24\x38\x0c\x21\x54\x9f\x3d\xd0\xcc\x14\x4b\x88\xa9\x74\x7f\x64\x16\x4a\xd6\xf3\x05\xa1\x04\xfe\x7d\x0d\x5f\x6d\x2f\xa1\x2e\x0c\xa1\x79\xae\x09\x6d\x0a\xde\x70\x83\x3a\x6c\x2d\xf8\xbf\x6a\x56\x2c\x09\xcf\x99\x30\x2d\x4e\xab\xdb\x0d\xc7\xc9\xe3\x8e\xda\xf6\xed\x9f\xb5\x47\x05\x35\x67\xc6\x72\x5f\x25\xc6\xb9\x66\x1f\x99\x1c\xf4\xa4\x82\xc6\x6d\xd5\xde\x08\x8d\x7b\x47\xd7\x6b\x04\x83\x46\xca\xad\x1a\x9b\x35\xde\x07\x2c\x1f\x22\x9a\x9b\x37\x12\x6f\x11\xc0\x24\x5b\xdd\x4a\x11\x78\x3f\x7c\xda\xbc\x76\x7b\x97\x90\xd7\x97\xd7\x3f\xbf\x3d\xfd\xef\xf3\xb7\xcf\xce\xd6\x87\x23\x4b\x9e\x77\x3c\xd6\x01\x45\xcd\x3d\xd8\x79\x81\x13\xab\x7b\x3c\xe2\xc7\x19\x4d\x4b\x93\xca\xeb\xd2\xd1\x4f\xb6\x77\xa5\xb4\x4f\x5f\x09\x5f\x57\xab\x1d\x5a\x8d\xc9\xd3\x15\x91\xe4\xcc\x7f\xa7\x4c\xea\x94\x42\xef\xc2\x03\xcb\xb0\x38\x38\x02\xea\xd3\x8a\x6b\x24\x64\xe2\x75\x96\xe6\x86\x95\x55\x41\x4d\x44\xe2\x43\xfb\x3c\xc9\x12\x85\x1d\xfb\xc8\x52\xf9\x9f\x46\x37\xbc\xbe\xd4\x8f\x2d\x59\x7c\xca\x2d\x70\x2c\xbb\x8e\x76\x72\x8a\x80\x54\x06\x23\xac\x94\x08\x76\xdf\x1d\x9b\x4f\xff\xb5\x7f\x11\xdd\xf6\x94\x91\xa9\xac\x45\x8e\x77\xaf\x1b\x0b\x3a\xb9\x9b\xf4\x0e\x6e\x55\xf9\x82\x19\xef\xa2\xea\xf4\x22\xba\x65\x57\xd8\x41\x4b\x74\x70\xc1\xfb\x51\x4b\x87\xb2\x59\x76\xa6\x9d\x8e\x8f\x22\xd1\x7e\x32\x22\xb4\x90\x62\xee\x48\x6a\xa3\x9b\x6e\xd3\xc6\x9b\xb0\xc1\x68\x6d\xe2\xa1\x02\x2b\x75\x97\x19\xf6\xc7\x65\x3f\xf4\xb3\x8b\xc3\xe5\xb3\xed\x2a\x96\x49\x95\xa3\x23\xc7\x2e\x02\xfa\x6c\x8e\x3b\x47\xf2\x1a\x3e\x63\x3a\x6d\xb7\x6d\xd4\xb7\x61\xb2\x85\x84\x42\x0f\xf3\xc0\x3b\x06\x26\x0f\x2a\x66\xd1\x4d\xae\x04\xca\x3b\xb2\x34\x60\x14\x50\xb2\x20\x55\x41\x05\x73\x55\x26\x1a\xf7\x6b\x6f\x73\xfe\xec\x82\xf5\x0b\xc8\x7d\x73\xd5\x19\x9e\x3f\x7e\x7b\x85\x0d\x93\xaa\x8d\xd7\xae\x31\xc7\x37\x99\xd9\x11\xb7\xa6\x8b\xd4\x9e\x42\x6d\x99\x11\x79\x2f\xbe\x41\xce\xef\x11\x06\x6f\x8f\xc9\x85\x20\x5a\x96\x8e\x9f\xfc\xc1\xe8\x11\x01\x42\x0d\x4a\x74\x3d\xd5\xcc\x60\x58\xd0\x9a\xff\x0e\xe6\xe5\xb0\x72\x15\x53\x25\x37\x11\x59\x96\x41\xad\x66\xec\xd4\x13\x67\x51\x7d\xa8\xf6\xd2\xc9\x6f\xdc\xba\x8f\xab\xed\xf1\xf8\xb1\xc1\x82\x00\x41\xf3\xdc\x21\xb6\xab\x95\xb6\x3b\xfe\xc3\x0e\xfe\xa8\xab\x11\x40\xb2\x1b\xba\xc0\xc9\x5c\xc9\xba\xf2\x62\xbd\x65\x00\xb0\x17\xca\xb6\x86\xaa\xb4\x93\x11\x5c\xc8\x18\x2c\xea\x76\xa4\xb9\x19\xc1\x67\xc9\x5a\x3d\x28\xb7\xf6\x95\xd6\xa3\x8d\x4c\x2c\xaa\x16\x11\x81\x2a\x44\x2d\x49\x85\xec\xf1\xf8\xe6\x17\x05\x9b\xd3\x6c\xf9\xa2\xdb\xab\x0d\x39\xd1\xce\x29\xc5\xcb\xaa\xe0\x19\x37\xd8\x3b\x4f\x34\xbf\x65\x5f\x90\xbd\x1e\x3c\x8b\xe8\xba\x45\xd7\x85\x76\xc3\xf7\x81\x32\x5f\xcd\x08\x01\x9b\x5b\xd3\x77\x46\x63\xab\xfe\xf8\xe7\x3f\x8e\x3d\x64\x15\x86\xf9\x1c\xe7\xa6\x49\xd1\xdd\x6d\x5c\xba\xb3\xdb\xac\x4e\xc7\x75\x05\x3b\x13\x62\xa9\x6d\xa0\xaa\xe9\x6e\x7f\x01\xd3\xcd\x4d\xfa\xcd\x10\xd9\x60\xda\x6a\x70\x31\x7f\xf6\x98\xe7\x75\xb7\x69\x77\xee\x64\x45\xad\x06\xeb\xf9\xe5\xdd\x65\x85\xa9\xd9\xc1\x02\xba\x49\x04\xc2\xf5\x76\x0c\xb1\x97\xab\xdd\x1a\xeb\xbd\xb1\xcb\x17\x48\x90\x66\xe9\xb4\xa1\x4b\x2f\x51\xbb\x83\x80\x5a\xf4\x86\x79\x46\xcd\x6d\x01\xa4\x4d\xf2\x7a\x23\x02\xa9\xb1\xa6\xd6\x6a\x22\x3d\x8b\xb3\xe1\x56\x27\x3c\xb3\xd3\x6d\x75\x04\x87\x35\xa5\x06\xc3\x81\xa0\xc8\x3a\x54\x31\x92\xaa\x81\xc2\x5f\xca\x3b\xc8\x9b\xb6\x4a\x85\xd5\x78\xef\xa9\xca\xa3\x72\xdc\x77\x14\x14\xed\x0e\x1f\xb6\x5b\x0b\xe5\x86\x9b\x73\x82\x79\xe2\xf3\x9a\xaa\x1c\xa2\xe0\xed\xa6\x18\x9c\xb7\x9b\x9e\x9d\x3b\x6f\x1d\xd6\x2d\x90\x00\xf1\xf5\x66\xcf\xa9\x55\x84\xba\x6f\x42\x67\x2d\xa0\x12\x56\x8c\x6b\xc0\xb5\xed\x36\xe2\xfa\xd9\x19\x67\x2b\xe9\x5d\xcf\x7a\xd9\x74\x9b\x26\x0b\x59\xe4\xa0\xad\x8e\x0b\x76\xc7\x8a\xa6\x6b\x56\xe2\x2a\x3e\xad\x8d\x4b\x93\xc9\x64\x59\x76\xab\x25\x22\xba\x71\x6b\x6b\xa7\x2d\x2b\x17\x22\x64\xe1\x7a\x39\xb6\xdd\x63\xb0\x33\xc2\x51\x82\x0d\xe9\xb5\x02\x77\x0f\xca\x19\x61\x76\x9b\x46\x6c\xbf\x68\x89\x14\x2f\x20\x56\x72\x66\x77\x91\xb4\xb6\xd2\x05\xef\x80\x3d\x75\x1f\x13\x89\xc9\xb6\x76\x2d\x6a\xcd\xd6\x18\x23\xdb\x6c\xa8\x48\x47\xf7\xa5\x04\x68\x21\x35\x21\x62\x35\x6b\x18\x8e\xec\xb5\x0b\xb8\x2b\x48\x86\x94\xfa\x58\x38\x2f\x71\x74\x56\x5c\x52\xb8\x24\x85\xc1\x1f\x41\xfc\x5b\xff\x61\x5a\x7c\xa6\x90\x19\x2d\x80\xa3\x21\x76\x8b\x91\xde\xfc\xfe\xab\x7d\x09\xa0\xaf\xd4\x0e\x13\x3e\x2b\x24\xcd\x3d\xfb\x8c\x2b\x68\x08\xbb\xa3\x6b\x80\xc7\x7a\xfe\x10\x7a\x8e\x2d\xf9\x30\x63\xa5\x58\x90\x81\xd4\x69\x58\x02\x19\x59\x6c\x63\xef\xba\xfc\xdc\x6e\x64\x61\x66\xa8\xeb\x4a\x52\x03\x3e\x6d\x6c\x06\xe2\xb8\xa1\xb7\xb6\xb2\x92\x6b\xf2\xe2\xad\x9f\xf4\x17\x29\x45\x2f\xa2\x83\x50\x26\x12\x0a\xd6\xd7\x9e\xc3\x79\x68\xf6\x19\x3a\x30\x6e\xb9\x9d\xa9\x59\x2b\xe4\xfc\x96\x68\x32\x09\xab\xaa\xe0\xf1\xbb\xec\x7b\x5a\xf0\xbc\x91\x9c\x54\x25\xb0\xbe\x37\xcb\x47\xc6\xc1\x21\xa9\x14\x1b\xaf\x1f\x94\x78\x66\x44\xe7\xf2\xf1\x1e\xcb\xf1\x47\xa9\xf2\x12\x37\x2e\x21\xdf\x09\x38\x73\x82\xe5\x56\xdb\x92\xed\x52\x30\x31\x93\x0a\xbd\x31\xcf\xbe\x61\x1d\x71\xc9\x2e\xae\xe1\xd3\x06\x7e\x1f\xb2\x75\xa0\x0f\x12\x05\x20\xee\x49\x74\x61\x76\xfd\xe6\x50\xdb\x26\xf2\xfa\x05\x9a\x25\xc7\x72\x6a\x67\xce\x41\xed\x60\x03\xfc\xbd\x9e\xb2\x02\x53\x2c\x31\x8c\x84\x49\xa0\xf7\xb6\xd1\x05\xaf\x50\x88\x51\xe3\xfe\x3c\x46\x38\x40\xb0\xd0\xbe\xb0\xa1\xa2\xae\x64\xfe\x55\x54\x34\xec\x15\x06\x1b\xe5\x3d\xe4\x1a\xbf\xb9\x78\xdd\x1c\x66\xfb\xda\x6f\xae\x63\xf8\x54\xec\xf3\x7b\x7c\xaf\x66\x66\xce\x73\x32\x75\x64\xe1\xcc\x90\x43\xc1\xee\xb1\x24\x93\x0b\xea\x36\x98\xed\x3b\x5f\x76\x08\xdb\x6f\xc6\xe7\x3a\x71\x14\xd1\x8b\x3f\xb8\x50\x2a\x53\x3e\x45\x68\xca\x5d\xf1\x93\xf7\x57\x07\x3e\xd1\xfa\x7e\xac\xee\xc7\xe3\xf1\x38\x6a\x02\xbd\x5b\x78\xd4\x59\xfb\xc6\xd1\x52\xca\x9c\xcf\x96\x2b\x3b\xc0\xde\x38\x6d\x9f\x40\xfb\xa6\x62\xe9\x26\xe0\x33\xd2\x06\x63\xf3\x32\x83\xf4\xa3\x3f\xfd\x57\x9c\xb0\x09\x59\x92\x76\x21\x78\x36\x74\xa3\x41\xfa\x4e\xd9\x82\xde\x71\x6b\x04\xcc\x50\x02\x40\x65\xad\x47\x56\xdf\xeb\x34\xd1\xd2\xc0\xa1\x7e\x31\x23\x88\x3d\x54\x50\x63\xde\x81\xca\x26\x12\xc0\x04\xdd\x94\x7f\xf4\xb4\x55\x15\x30\x28\x47\x34\xd8\x11\x7b\x2e\xcc\x83\x54\x1c\x7e\x56\xc8\x94\xda\x4e\x34\x43\x3e\x5c\xd9\xf0\x51\xb4\xc7\x17\xee\x54\x81\xd3\x44\x48\xc2\x66\x33\x96\x01\xdd\x23\xab\x16\xac\x64\x8a\x16\xdd\xae\xb9\x42\xe2\x5f\x59\x1b\x5c\xd9\x03\x8a\xea\x6a\x49\xb7\x26\x72\x22\x0e\x69\x0d\x56\x75\xce\xa3\xea\xa0\xa1\x72\x13\x30\x95\xbc\x78\x2f\xae\xa4\x34\xef\xb8\x06\x5d\x17\x92\xd3\xc8\x0b\x0c\x79\xbe\x38\xde\xe0\xe6\xf7\xdf\xa5\x14\x38\xda\x91\xa0\x88\x52\x2b\x5a\x92\x9e\x5d\x1c\x70\x7b\x6f\xd8\xeb\xb0\x09\x42\x32\xc2\x84\x51\xcb\x4a\x72\x61\xd6\x8b\x71\x56\xc8\x90\x16\xb3\x26\xdf\x69\xa6\x9b\x50\x9d\xd7\x14\xe3\xb2\x99\xf1\x79\x47\x97\x0d\xa4\xc8\x51\x63\xac\xb8\xa9\x30\x94\xea\xbe\x83\xaa\xdf\xab\x7e\xac\xb8\x12\x15\x13\x99\xaf\xbc\x68\xd4\x66\xbd\x76\xb3\xb4\x56\x1b\x34\xf4\x96\x69\x30\x2a\x59\xce\xc4\xd6\x14\x73\x04\xaf\x15\xdc\xdb\x49\x05\x0b\x7f\x45\x77\x29\x9c\xb0\x4b\x09\x72\x68\x17\x67\xec\x22\xc8\xe1\x75\xb5\x6c\xdb\x13\x05\x7e\x06\x7b\xf4\x28\xc0\xf4\xa5\x18\x2b\x29\x21\xc8\x1d\xb5\xac\x17\xbe\x76\xd5\x9a\x9a\x76\x67\x25\xb3\xaf\x98\x02\xfc\xe2\x84\xb6\xb1\x73\x23\x09\x13\xba\x56\xcc\xd3\x38\xc7\x84\x25\x24\xc3\xa8\x9f\x1b\xce\x77\x17\xaf\xc9\x4b\x72\x08\x15\x00\x9a\x3a\xfb\x4d\x92\xce\x2a\xe3\x39\x10\x58\xdb\x57\x44\x0e\xbb\x41\x2d\xb8\x8a\x4a\x42\xe2\xd5\xe8\xc6\x6d\x75\x10\xaf\x73\x57\x4c\x41\x82\x71\xd4\xdd\xf2\x45\x88\x9d\xd8\xe3\x1b\x57\x59\xac\x21\xb9\xdb\xd5\x0d\xf7\xdd\xb3\xdc\x70\x61\x64\xc2\x9e\xdf\xee\x92\xe0\x91\x2b\x99\xa1\x39\x35\xd4\xdd\x7c\x6d\x35\xaf\xed\x9b\xfb\x22\x36\xe2\x70\xff\x7d\xda\x93\x72\xff\x75\x89\x51\x77\x75\x06\xaf\xcf\xa1\x17\x1e\x60\xe9\xdc\x3b\xce\x97\xba\xee\xb7\x8a\xbf\x05\x3e\x52\xd2\xc3\x63\xd1\x31\x13\x95\x50\xa2\xa8\xc8\x65\xb9\xd6\x3f\xbb\xcd\x18\x8d\x2a\xf2\xd1\x6e\xcc\x6d\x4f\x69\x8c\x61\xfc\xc8\xb9\x4e\x38\xa5\x31\xce\xba\x95\x73\xfd\x79\x9f\xd2\xc8\xf8\x5f\x62\x30\x8e\xdd\xb1\xa2\x87\x68\xc8\x5b\x88\xc8\x73\xdd\xec\x68\x0c\xd1\x43\x51\x87\x35\x67\x71\xe7\x88\xec\x24\x06\xa4\x64\x2f\x71\xc7\x2b\x59\xb8\xea\x29\x7e\xd8\xf6\xc5\x7b\x3b\xea\x9e\x22\x5f\x37\x2e\x90\xd7\x8e\x1a\x42\x5a\xfb\x3a\xea\x3a\x4a\x07\x24\xab\xa3\xb6\xaa\x64\x77\xd4\xa0\x6e\xed\xe3\xa8\xbb\x94\xe1\xbb\xba\x7b\x5d\x2f\x06\xb8\x46\xe7\x19\xe0\x1a\x4f\x0d\xd7\x08\x38\x54\x29\x44\xc3\x3a\x00\x8a\xcf\x15\xb4\x01\xc9\xe7\x76\x16\x19\xe6\xb8\x55\xd4\x2c\x46\x44\xb1\x82\x1a\x7e\xe7\xf3\xe7\xc8\x2d\x3a\x5f\x0e\x3a\x0c\xb6\xfe\x20\xb6\x78\x16\xa4\xd5\xe8\x09\xe3\xb1\x09\xd7\x81\xbf\xb9\x7c\x7f\xe3\x7f\x07\xb9\x55\x9e\x3c\x2d\x9a\xfa\x66\x5f\x6e\xc0\xa7\xc1\x7e\xac\xae\xd3\xd3\x41\x3f\x62\x73\x3b\x37\x43\x3f\x9e\xe3\xc0\x7d\x1a\x1c\x64\x15\x0c\xd2\x53\xe3\xab\xc8\x90\xf5\xb7\x27\x2d\x51\xca\x4d\xbf\x56\x47\x65\x37\x48\x11\x9f\xfa\x01\xe0\x10\x1d\x1a\xd8\x40\xac\xc8\x15\xb0\x28\x82\x93\x0b\x1c\x62\x5c\x20\x26\xb6\x59\xc1\x11\xec\x9e\x3c\x8a\xd3\x8c\x20\x6e\x63\xb5\xc8\x6c\xa5\x78\x49\xd5\x92\xbc\xb9\x78\xed\xaa\x65\xb9\x08\xea\x61\x98\x94\x72\x84\xd9\x12\x88\x6a\x29\x59\x39\xc5\xb0\x6a\x4c\x18\x73\x8d\xbc\xbb\x53\x58\xb3\xa9\x6c\x57\xf3\xfc\x71\x0f\xe0\xaa\x3b\x21\xa2\x1b\x42\x86\xe5\x03\xfc\x8a\x28\x28\x2a\xe0\x9c\x1e\x62\x19\xba\x0b\x5a\x05\x6a\x4f\x66\x01\x7a\xab\x8d\x15\x7f\x18\x89\xe6\x77\x2c\x66\x26\xd8\x1d\x13\x8e\xc9\x72\x09\xef\xb4\x2a\x21\x17\x59\x51\xe7\xbe\x83\x5c\xc3\xde\xfd\x8c\xf4\xce\xed\x33\x71\x48\x6c\x36\x0e\x49\xf6\x20\xa6\xf9\x10\x7b\xa4\xac\xb3\x8f\xab\xd5\xb5\x0b\x09\x79\x8d\x4d\x43\x0a\x03\xa1\x8d\xb8\x6c\x88\x3e\x72\xdf\x39\x24\x87\x08\x8a\x60\x1e\x93\x49\xc3\x1b\x5e\x8b\xa6\x2e\x4b\x44\x1f\x7c\x0b\x87\xab\x16\x98\xbf\x3d\x8f\x5c\x99\x60\x1f\x31\x2b\x68\x2d\xb2\xc5\x70\x34\x1e\x7b\xba\xb4\x4a\x30\xbb\x0d\x4e\x89\x92\x5b\xbb\x6d\x0b\x52\x51\x45\x4b\x66\xac\xd2\xeb\xdd\xb1\xd1\xa7\x30\x9a\x50\x29\xc5\xe8\x8c\x4c\x51\xf3\x7f\x1a\x53\x05\x83\xf4\xc0\x01\x15\x9b\xe6\x46\x56\x17\xf6\xb2\xe1\xfd\x71\x5d\x82\xe2\xf8\x71\xcb\x48\xfa\xa0\x50\x82\x19\xed\x65\x68\xdf\x83\x53\x7e\x5f\xc6\xd6\xab\xac\xef\x96\x2e\xdd\x95\x0b\xec\x1f\xd8\x8b\xb6\x6e\xb6\xcf\x44\x7b\xfa\x10\x94\xb7\xf7\x1c\x83\x09\xed\xa8\xc6\xab\x91\x9b\x90\x52\x21\xb2\x03\x1f\x09\xf8\xee\x16\x47\x10\x7f\x23\x41\xcd\xb3\xcf\x2a\xa2\x33\x2f\x35\x3d\x53\x0c\x88\x11\x69\x71\x5d\xb1\x6c\x97\x0e\x8f\x37\xef\xae\x4f\xbb\xbd\x81\x7b\x1e\x29\x07\x17\x0c\xbe\x0f\xaa\x4c\xdc\xb3\xe9\x42\xca\xdb\xc8\xc6\x0e\x37\x54\x7b\x0b\x64\x8a\xe6\x73\x7d\xe2\x04\xc3\xd8\x4e\xd3\x11\xe1\xa2\x80\xeb\xda\xeb\x43\x50\x17\x03\xcd\x92\x84\x01\x93\xac\x19\x31\x6c\x28\xc7\x99\xe2\xf4\xae\xf5\x29\xb9\x4c\xca\x4e\x4e\xbe\x52\xd6\x77\x4c\x3c\x21\x5f\x67\xd7\x3c\x32\xd2\x0d\xf5\x08\x37\xce\x1a\x06\x0c\x76\x32\x25\xce\xc7\x6c\x8d\xd1\x5d\x9e\x9e\x6f\xdb\x6e\x90\xdc\x2a\x91\x25\xec\x56\x3e\x0b\xe5\x79\xe0\x86\x6a\x20\x7d\x07\xf6\x2f\x89\xfb\xd3\x83\xd4\x50\x14\x21\xa7\x45\x81\x7a\xc2\xc4\xf3\x9a\xfb\xe0\x4d\x9b\x6c\xdf\xd0\x17\x36\x36\x7b\xa7\xff\xb1\x8a\xa0\x7d\x0e\x31\xc7\x05\xd8\x35\x5a\xda\x6d\x97\xe2\x5f\xf2\x07\xdb\xb7\xb0\xad\xb0\x12\x02\x90\xce\x89\xf1\xe6\xaf\xa3\xd0\xf2\x04\xe0\x95\x8d\x93\x65\x64\xd7\x23\x7c\xbd\xdd\xdf\xaa\x86\x09\x11\xf0\xc5\x25\xd6\x28\xc0\xb9\x0a\x71\x19\x46\xc2\x2f\x53\xb6\x78\x1c\x38\x8e\x84\x00\xb9\x9e\x4e\x7b\xf4\x2e\x07\xb0\x9c\xeb\x87\xbd\xff\xbd\xd6\xf4\xf4\xe0\x39\xb2\x02\xa0\x03\xc7\xd4\xd3\x83\xe8\xc8\x66\x20\xdd\xba\x8a\x74\xfc\x34\x50\x3a\xb2\x6b\x5c\x27\x49\x20\x3f\x62\xea\x8e\x67\xec\x34\xcb\x64\x2d\x9e\x95\x8e\xe2\x35\xb3\x43\xa6\x86\xe5\xd7\x9d\x3e\x20\x28\x20\x6f\xbe\x25\xb4\xe0\x54\x83\x0f\xa7\xfb\xc3\x98\x12\x57\x6d\xa3\x80\x40\x58\x19\xbe\x3b\x31\xda\x30\x1a\xc5\x2c\x91\x38\xfb\xcf\xcd\x06\xb6\x3e\x9d\x9b\x74\x89\x95\xd5\x71\xb0\x83\x55\xc2\xbb\x2d\x9b\xfe\x34\xe2\x43\x43\xf5\xad\x3e\x69\x42\xaf\x50\x90\xa6\x11\x54\xc1\xe7\x6e\x1a\xc7\x14\xfb\x78\xf2\x3c\x4b\x67\xec\x5d\x64\x67\xea\x54\x7f\xf3\xff\x7f\x7d\xf9\xcc\x3c\x6e\xfe\x4a\x74\xa5\x51\x16\xae\x2f\x8d\xed\x19\x96\x5c\x0d\x0b\x8f\xd9\xae\x8e\x88\xa2\x18\x38\x5e\x50\xbc\x10\x0a\x46\xd1\x7d\x4a\x0e\x03\x56\xbe\xad\xaf\xf3\x0b\x41\x5a\x00\x26\xaa\x04\x23\xdc\x23\x25\xa3\x42\x07\x75\xf1\x18\x74\xc4\x47\x35\x9a\xde\xa3\x21\xe9\x76\x9e\x73\xf9\x1d\xfa\xd8\x67\xf7\x17\xda\xa8\x3a\x33\xa4\x36\xda\x7e\x1e\xd3\x55\x7f\x31\x7e\x42\x67\x15\x9b\x73\x6d\x94\x2b\x66\x68\x9b\x6f\xbb\xec\x9c\xcb\xcd\x4f\x6e\xd9\x92\x7c\xfb\xf7\xf3\x7f\xfe\xfc\xf6\xfd\xd9\xe9\xdb\x9f\xdf\x9d\x9e\x7d\x7b\x71\x79\xfe\xe3\x8f\xd7\xff\xbc\xbe\x39\x7f\xf7\xe3\x8f\x67\x58\x16\xdc\xd5\x1f\xbc\x66\xe6\xc7\x1f\xdd\x19\xd3\x3f\xfe\x78\x93\x55\xbc\xfa\xf1\xc7\x89\x77\x73\xc2\x3d\x6a\xa7\x2a\x82\xcf\x0d\x4b\x1b\x35\x19\x1d\xa0\xdf\xe1\xf2\xc3\x28\x17\x54\xb7\xc9\x89\x09\xd4\xa7\x90\xab\x11\x23\x2e\xb7\xd7\xb5\xf4\x82\x2a\xe6\xf4\xc2\x4b\xef\xec\x7f\x56\x91\xb9\x80\xc8\x1f\xd1\x5c\xcc\x81\xa5\x01\x55\xd4\x96\x61\x7c\xca\xcc\x3d\x73\x45\xc4\x56\x55\xab\xf8\x3c\xfe\x96\xde\xdb\xa5\xa6\x77\x38\x75\x1d\xac\xc1\x15\xb8\xb9\xe3\xec\x1e\xab\x2c\xf3\xb9\xa0\x85\xef\x23\x73\xa5\x29\x11\x31\xd2\xfe\xfd\x96\x3d\x09\x79\xd5\x2b\x99\x8f\x3c\xcf\xdf\x4a\x50\x7a\x2d\x20\xdd\xa1\x34\xa5\xda\xf6\x8d\xe5\x64\x72\xf1\x9a\xbc\xda\x76\x32\xc0\x36\xb8\x78\x0d\x2d\x5f\x6f\xda\x10\x8d\x23\xca\xaa\x78\xa8\x0f\x26\x53\x55\x3d\xf7\x46\xaf\xa7\xb9\x2c\x29\x17\xbb\x65\x07\x9d\xd5\x45\xb1\x24\xff\xaa\x69\x81\xda\xeb\x44\xe6\xeb\x37\xcd\x8b\xbf\xfa\x8f\xfe\x76\xfc\xd7\xa6\xe3\x7f\x3b\xfe\xab\xa7\x85\x87\x45\xf9\xdb\xb1\xbe\xcb\x8e\xff\xea\x8a\x53\x12\xf7\xa3\xad\x29\x6b\x3e\x42\x29\xda\xc8\x39\xea\x5a\x40\x5a\x7a\xb0\x73\x9f\x45\xa3\x43\xa7\x02\xe0\xc1\xde\x28\x9a\xb1\x09\x53\x1c\x4c\x03\x29\xf2\x67\xa5\x16\xf5\x3b\x98\xe4\xb5\xa2\xbe\x94\x9a\xc6\x7e\x34\x73\x26\x18\xcb\xd1\x52\x73\xdd\x66\x64\x6e\x7b\x0d\xeb\x7e\x0c\x46\x15\x70\xfd\x67\x8a\x51\xcc\xd5\x77\xc4\xff\xbe\x80\xfc\xb6\xcb\x87\x21\x12\x0f\xf1\x13\x52\x8c\x05\x9b\x23\xe4\xce\xc5\xc4\x91\x06\x03\xaf\x59\x2c\x9d\xd9\xc0\xbb\xb4\x91\x15\xe1\x65\xc9\x72\x4e\x0d\x2b\x96\xe4\x8e\x6f\x5b\x52\x00\xd4\x0a\x20\x30\x45\xe1\x78\x28\x24\x91\x10\x03\xae\x05\x77\xe1\x9a\x45\x6d\x48\x2e\xef\xc5\xf6\x2a\xc5\x0c\x65\x34\x76\x9e\x6b\x22\x78\x31\xea\xb0\x1c\xc3\xe4\x92\x0a\xf6\x44\xb7\x7e\x41\x94\xd5\x81\xb6\x7e\xe7\xa5\x4e\x81\xdf\xb4\xe8\xc8\xd1\xef\x48\xa9\xdc\x95\xa0\x6a\x01\x6c\x2a\x2d\x29\x3b\x82\x45\x98\xd8\xd6\xcf\x4e\xc3\xad\xef\xa7\xd7\x5f\x0e\x98\xb3\x83\x97\x58\xd8\xbc\x6d\x6b\x26\x55\xc6\xa7\xc5\x92\x2c\x68\x61\x98\x23\x3a\xa1\xe1\x2a\x6d\x3b\x29\xd7\xcc\x84\x0b\x51\x48\x31\x0f\x75\x5d\xf6\x50\xb1\x0c\x6a\x49\x58\xa1\x5c\x57\xd8\x3b\xab\xc6\x2d\x65\x1d\xed\xff\x08\xfd\x1e\x7f\x78\xe9\x27\x7d\x07\x55\x92\xb7\x82\x85\x18\x59\x30\xdc\x29\x29\xc2\x69\x23\xad\xf4\x81\x0e\xdf\xfe\xb9\x90\xe4\x46\x78\xdd\x7c\x05\x14\xd8\x72\x37\xcd\x90\xc1\x8f\x61\x0c\x05\x72\x6b\x2b\x62\xf1\x1b\x20\xd5\x5c\x12\xab\x15\xb9\x32\x6e\x8e\x0d\x7e\xfb\xa0\x98\x3d\x58\x8a\x57\x05\x23\x7f\xbd\x65\xcb\x11\xd6\xeb\x46\x75\xfe\x6f\xa4\xd6\xde\x76\x69\x2a\x64\xca\xca\x76\x40\x2a\xf2\x57\xff\x5f\x7f\x7b\x46\x4e\xdf\x94\x30\x1c\x0e\x6a\x57\x34\xbb\xe7\x48\xdf\xd2\x2d\xe3\x8d\x0b\xe8\x98\x5d\x8c\xc4\x59\x3e\x26\xe7\x40\x77\x8f\x06\x24\x12\x03\x5a\x4b\x20\xfc\x71\xa4\x67\xf5\x1f\x3e\x9c\xda\x16\x48\x06\xc7\x7d\x40\xd3\x72\x29\x1d\xbf\x33\x1b\x91\x09\x94\x43\x68\x3f\x01\x51\x7c\x29\xcf\x1f\x58\x56\xc7\xb1\x03\x27\x85\x80\x6e\x59\x04\xf5\x51\x3f\xab\xf7\x77\xb6\xf4\xb7\x22\x2e\x83\xb5\xcf\x1b\x12\x87\x56\x44\x05\xf9\x46\x1f\x5e\xc6\x5b\xb6\x7d\xa1\x0f\x7c\x2e\xbc\x5f\x03\x7a\xe4\x78\xd5\x9b\x53\xe9\xb5\xa2\xf3\x07\xae\x8d\xfe\xff\xa1\x3c\xc9\x64\x39\xf5\x97\x2a\x76\xc7\xef\x35\xe8\x91\x5f\x7d\x91\xc3\x3f\x63\xbb\x96\xb4\xb6\x7e\x00\xbb\x5a\xe0\xf7\x7e\x02\x15\xab\x14\xd3\x10\x73\xa6\x76\x2a\x0e\xb4\x4b\xe8\x90\x02\xd8\xac\x5c\x44\x02\xe6\x2c\x6e\x01\x3d\xf6\x1f\x1b\xc4\x53\x87\xcb\x05\x4b\x70\x6e\x2d\xa5\xe3\x8e\x2a\x80\x1f\xc5\x89\x1d\x7c\x31\x87\x32\xe0\xfc\x8e\x16\x0c\xdd\xaf\xf7\xbc\xc8\x33\xaa\x10\xd6\x88\x42\x9f\x68\xe9\x72\xe6\x90\xbe\x3e\x2a\x80\xd5\x68\x03\xac\xdd\xec\xda\xc1\x99\xa8\x32\xff\x1f\x7b\xef\xda\xdc\xc8\x8d\x25\x88\x7e\xef\x5f\x81\x50\x6f\x44\x49\x6e\x92\xaa\xb2\xfb\x35\x75\xe7\x4e\x87\x5c\x92\x7b\xb4\xae\x87\x56\x92\xed\xd8\xdb\xd3\xbb\x06\x33\x41\x12\xa3\x24\x90\x06\x90\x52\xb1\xa7\xe7\xbf\xdf\xc0\x39\x00\x12\x49\x51\x14\x95\x80\x44\xaa\x2c\x74\x44\x97\x45\x26\x81\x93\xc0\xc1\x79\x3f\x78\xd1\x54\x54\x11\x4b\x01\xa7\x52\x2d\x9e\x1c\xcd\xda\x9b\xda\x4b\x9b\xc2\x91\x03\xdf\x2e\x97\x01\x89\x11\xcf\xcc\x82\x28\x2e\x27\x28\x59\x2e\x91\x99\x7d\xcc\x52\x71\xb7\xbd\x17\x04\x72\xe2\x19\x4f\xa0\xe8\x03\x34\xec\xdc\x70\xcd\xe2\x90\x1c\xae\x09\x9f\x0a\xa9\x58\x79\x10\x09\x20\x81\x16\x8e\xc8\xb7\xa1\xeb\x46\x9f\x88\x70\x2b\x71\x79\x4f\x32\x14\x16\x74\xef\xe6\x08\x95\xc3\xa6\x96\xf4\x4e\xa4\x62\xd7\x4c\x91\xfd\x52\x62\x6b\x89\x6b\x5e\x98\x83\x11\xf9\xff\xac\xa2\xd7\xd7\xf9\x16\x34\x48\x47\x0c\x43\x55\x48\x57\xb3\x91\x6a\xf2\x9a\xec\xc3\x52\xb1\xf6\x78\xe0\x03\x48\xf4\x42\x1b\x96\xd0\x97\x73\x5b\xc1\xdc\xbd\x03\x17\x73\x5c\x82\x1f\xbd\x8e\xdb\x1e\x2e\x6a\x5b\x4b\xd8\x1e\x5a\x1d\xc9\x24\x96\x19\x98\x24\xd7\x8e\x2e\x76\xdc\xab\x21\x62\xc3\xf3\xd4\x70\x17\xfe\x13\x62\x04\x88\x62\x53\xa0\x5e\x48\x7b\x9e\x67\x9b\x78\x23\x6b\x59\xc9\xe9\xe2\xa2\x56\x8c\x96\xef\xa4\xd0\x46\x01\x8d\x7e\x4a\xb3\xd2\xe5\x5d\x40\x44\x1d\x70\x67\xf2\x86\x50\x97\xfc\x22\x27\x96\x23\x69\x22\x9b\xe9\x0c\x7b\xb8\xc0\x0f\x09\x2d\x94\x84\x06\xd2\x38\xdd\x43\x55\x36\xb0\xed\xe9\x91\xef\xe7\xe2\xed\xcb\xa1\x41\x0c\xac\x09\xd6\xf6\x1b\xba\x70\x54\x89\x8e\x79\xc9\x74\x94\x30\xed\x41\x7f\x28\x3a\x1c\x59\xee\x78\xe7\x3e\x58\x99\xe0\xe8\xe3\xf1\x43\x43\x19\xb6\xa7\xf2\xde\x75\xa4\x41\xdb\xc0\x13\x6d\xcf\x2e\x28\x94\xb0\xcb\x74\x2e\x9d\xa2\x39\xe5\xd7\x4c\x84\x9d\x79\x26\xed\x62\xe6\xf4\xf3\xc5\x15\xbb\xe9\xf1\x4b\xff\xa2\xdf\xb3\x87\x27\x49\x0c\xc1\x1a\xf6\x83\xd0\xd4\x70\x3d\xe1\x74\x5c\x3d\x65\xcf\x1a\x28\xb2\x70\xc1\x2a\x56\x6c\x51\x6c\x7f\x1f\x03\xe1\x0b\x85\x86\xbe\xd9\x1d\x1c\xeb\xc7\x3a\x20\xd1\xa7\xb5\xb0\xb8\xec\x34\xa8\x2f\xa1\xfd\xb2\xf6\xb2\x42\xcc\x00\x2e\x1d\x82\x02\x31\x0a\xa2\x99\x8f\x99\xf2\x24\xac\x9f\x78\x04\x26\x47\xae\x96\x3a\xaa\x7a\xd4\x71\x84\xec\x19\xf6\x04\x87\x2d\x3d\xf9\x6c\xe5\x5e\xdd\x2f\x25\x00\x47\x07\x93\x96\x27\xc5\x50\x20\x9f\xdd\xb5\x74\x74\xee\xd2\x43\x53\x3f\x74\x1a\xc4\x9f\xf4\x25\xc3\xed\x48\xc9\x81\xc2\xd1\x3b\x13\x0a\x47\xae\x56\xdc\x90\x50\x7c\xe7\xde\xe1\x1e\x87\x6f\xe2\x72\x4f\xce\x80\xae\x07\xa8\x4e\xa3\xaf\x17\xfa\xd3\x39\x61\xcc\x3e\x9c\x00\x16\x28\xe7\x4e\x1d\xb9\x62\x0b\x98\x1e\x57\xec\xdf\x75\x20\xf1\x5a\x78\xc0\x52\xf2\xbb\x70\x0c\xed\x2b\x25\xfd\xde\x6f\x73\xef\x49\x52\xef\x38\x8e\x9e\xa6\xbb\x76\x74\xf0\xf8\xaa\xb5\xc6\x21\x4e\x76\xac\x71\x2d\x5d\x6e\x6d\x71\x49\x6b\x27\x67\x87\xe1\x48\x31\x71\xb5\x23\xdf\x85\x8e\x61\xda\xc4\xec\x45\x89\x6b\x7f\x9c\x7a\xbd\x70\xac\x32\x83\x9d\x8a\x01\xf9\x28\x8d\xfd\x27\xb2\x88\x1d\x4b\xa6\x3f\x4a\x03\x9f\xec\xc4\x49\xe2\x06\xec\xd2\x39\x3a\xab\x05\xb6\xfe\x04\x76\xe3\xa2\xdb\xac\xa0\xe0\xce\x6b\x95\x1a\x7c\x2a\x88\x54\x6e\xcb\x13\x41\x08\x9a\xb4\x76\x00\xc4\x0e\x7a\xd7\x9f\xed\x4e\x45\xdc\x42\x11\x1f\xf3\xa3\x01\xe3\x00\x81\x1e\x01\xf8\x0d\x07\xd3\x5b\x05\x09\xdf\x65\x03\x1b\x46\xed\xce\x51\xc3\xa6\x0f\x4e\x71\x5c\x1e\x73\xa6\xa6\x8c\x40\x77\xda\x1c\x98\x9b\x22\x48\xe0\x48\x14\x27\x62\x60\x92\xaf\x51\xe6\xf4\xd2\x47\x9c\x14\x64\x4a\xd0\x35\xf2\xc8\xa8\x09\xf7\x3d\x02\x05\xa5\xae\x39\x05\x03\xc9\x7f\x05\xef\xed\x7f\x93\x9a\x72\xa5\x47\xe4\xc8\x47\x18\xc6\xdf\xb9\x20\x8d\x68\x9a\x04\x50\xea\xdb\x8e\x05\x2a\x08\xc3\xea\x37\x16\xaa\x65\x61\x7c\x40\x6e\xa0\x77\xbe\x65\xd8\xc1\xb8\xbc\x77\xc5\x16\x7b\x83\x84\xfc\x3e\xd2\xa1\x28\x7b\xa7\x62\xaf\x0d\x29\xec\x50\x81\x20\x93\x42\x4f\x90\x3d\xf8\x6e\xef\xf1\xe4\xfe\x24\x09\xb2\xad\x17\x73\x96\x41\x04\x4b\xbc\xb2\x9d\x3b\x35\xa7\x75\xda\x95\x6a\x91\xef\xfb\x1e\x6d\x57\x49\xa6\xdb\xf4\xa1\x03\x85\x57\x61\x8c\x53\xd5\x5b\xc9\x52\x63\xfe\x7d\x05\x3e\xfa\x99\x33\x0b\xca\x6b\xa6\xd0\x24\xd8\x6b\x6d\x34\x82\x59\x5e\x13\x42\xed\x69\x55\x34\x56\x95\x29\x11\x1f\x61\x61\x8b\x87\xde\xa2\x51\x49\x79\xd5\xd4\x1e\x9f\x21\x0c\xb7\xef\x8d\xe1\xa2\x90\x73\x67\x17\xc1\xf7\x04\x4b\xb8\xbb\x98\x43\x17\xf1\x84\x34\x26\x5c\x05\x8c\xa9\xea\x58\x7d\x7a\xfa\x07\xe3\xcd\x0c\x06\x5e\x66\xd9\x7e\xb0\x07\xb6\xdb\xbb\x76\xab\x7a\x01\xe0\x63\xed\xe3\x5d\x70\xdd\xbb\xe8\x3c\x38\xd6\x27\x52\x8d\x79\x59\x82\x2d\x12\x81\x0b\x09\x5f\x4b\x88\x63\x29\x4d\xc7\x0e\xd5\x8f\x68\x2c\xcd\xba\x22\x0f\x7e\xd9\xd8\x25\x5e\x99\x3e\x61\xc9\x38\x60\x11\xd0\x99\x4a\x69\x27\x0a\xaf\xb8\xbc\x35\x1e\x11\xec\xee\xf7\x5a\x69\xcc\xbc\xfb\xd0\xb2\x24\xd1\x54\x95\x95\xf6\x40\x10\x43\xb3\x0c\x7a\xfa\x80\x24\xbb\xa0\x84\xa9\x25\xd2\xa6\x8b\x6c\x0f\xef\xd3\x8e\xe3\xd2\x45\xbc\x53\x32\x66\x86\x3a\xae\x63\xcf\xcc\x51\x7c\xd4\x23\xbb\xbb\x7f\x2a\xce\x64\xd9\x35\x69\x93\x09\xa3\xa6\x51\x0c\xdb\x59\x63\xdd\x18\x26\xe8\xb8\x62\x25\xd9\xf7\xff\x31\x5e\xf4\xce\x7a\x21\xc9\x42\x5e\x82\x68\x97\x93\x3b\xa4\x4b\x5c\xce\x9a\xbe\x3d\xbe\x00\xcb\x47\xbe\x28\x8c\xbe\x9d\x2a\x86\x65\x43\x81\x2c\x01\x99\x9a\x63\x6c\x73\x23\xd8\x35\xb3\xe8\x5b\x72\xed\xba\x5e\xf7\x94\x1c\x20\x40\xeb\xe7\x5b\x66\xfd\xff\xf7\x58\x7e\x94\xc6\xfb\xa9\x7e\x1e\x38\x8f\x39\x0a\x72\x9f\xf9\xbc\x99\x63\xbb\x31\x63\xac\x12\xc3\x27\x13\xa6\x7a\xf6\x54\x20\x21\xf9\xa4\x6b\xbc\xee\xba\x6b\x1c\x99\x30\x54\x4d\x21\x63\xda\x19\xa2\xbd\xcc\x35\xad\xe4\x98\x56\x64\xce\x85\x05\xad\xdf\x4e\x5c\xde\x9a\x27\xbc\xb1\xfb\x73\x0d\x70\x20\x84\xf2\x29\x1f\x57\xcc\x59\xc7\xfb\x85\x48\x28\x17\x3d\x3e\x59\xda\x8d\xa5\xc9\x81\xbe\x54\x4c\x6b\x8c\x0f\xfe\xc0\xc5\xb1\xf3\x2d\xf6\x5a\xf6\x3b\x4b\x1e\x3f\xd3\x79\x5d\x31\x2c\xc1\x48\xbe\x19\xfe\x43\x0a\x46\x5c\xde\xc3\x20\xa0\xa8\x4b\xe4\x31\x92\xbc\x41\x89\xb7\x0e\x75\xc9\x7c\x82\x4d\x2f\x08\x3a\x84\x37\x78\x5b\x35\xf9\xfa\xf0\xeb\xc3\x37\xfd\x48\xcc\xa9\xcb\x3d\x2a\xa8\x76\x4d\x89\x6e\x9f\xee\x83\xb3\x78\x70\xfc\x93\xd8\xdd\x79\xe3\xfe\xfd\xda\xfd\xfb\x0d\xf9\x67\xcf\xd9\xc8\x19\x39\xeb\xfc\x6b\xff\xe9\x39\xdb\xd0\x22\x4f\x74\x5c\x6f\x06\x5d\xe6\x5a\x50\x81\x9c\xcf\x32\x7a\x77\xbf\x41\xdc\xc3\x57\x00\x3e\x53\xc8\x39\x83\xad\xff\xfa\xff\xe9\x27\x6c\xe2\xbc\x10\xa2\x6f\x88\x14\x6e\xf6\x37\xfb\xb0\x5d\x07\xe4\x06\x02\x1f\xe6\xf4\x0a\x3d\x56\x47\x85\x69\x68\x65\x01\xde\xff\x66\xf8\xe6\x80\x48\xd1\x79\xbc\x17\x08\xd7\x5c\x5a\x81\xcd\xef\xc4\xfe\x9b\x9e\x45\x1e\x96\xb7\xf3\xeb\x15\xdb\xd9\xd9\x49\x78\x5b\x2a\x16\xf0\x0a\x79\x69\xb2\x27\xc7\x47\x62\x71\x43\x17\x81\x28\x7b\x79\x7d\xca\xaf\x19\x99\xf1\xe9\x0c\xca\x21\x24\xb4\xb9\xc1\x42\xaa\x48\x63\xb9\xef\x1d\x86\x80\x2c\x08\xef\x29\xfe\x9d\x9a\x57\x1a\x42\x5a\xd0\x49\xe1\x2a\xdd\x84\x44\xb5\x90\x7d\xf2\x06\xc8\xca\xeb\xa5\x4a\x1f\x5b\x8e\x73\xfa\xe6\xeb\x87\xcb\x14\x81\x26\x6f\x4d\xac\x08\x10\x74\x2a\xa4\xdf\xe6\x66\xcb\xcc\x25\x01\x6b\xef\xe1\x5a\xc0\x28\x02\xf3\x0c\x6c\xfc\xca\xa9\xc3\x2d\x47\x6b\x77\xaf\x9f\x61\xf6\x4c\x96\x21\x42\x84\x38\x79\x1a\x22\xeb\x34\xd9\xeb\xb2\x81\x3d\x88\xb4\x0b\xe6\x1b\x57\xaf\xd6\x29\x7c\xae\x7d\xac\xbf\xfc\x49\xdd\xdb\x08\x39\x12\x65\x9b\x4e\xd4\x73\x97\xd8\x2f\x0d\xad\xc0\x7a\x3d\x85\x40\x41\x95\x67\xbf\xa2\xc4\xa3\x4e\x82\xb5\xa5\xc5\x2d\x35\xef\xf9\xda\x78\xef\x75\x53\x41\xa8\xe5\xfd\xef\x9f\x15\x13\x74\x1b\x6b\x05\x6a\x67\x08\xb6\x9a\x4b\x6c\x39\x28\xbc\xf8\xef\x42\x2f\xa4\x33\x4c\x24\x5d\x86\xd3\xc9\x8a\x7c\xba\x36\x78\x0b\x3b\x18\xdb\xeb\x08\x75\x9c\xe2\x9b\xea\x8e\x18\x44\xac\x94\x70\xef\x28\xc3\xc2\x91\x40\xdd\x45\x99\xd7\x09\xd7\xbc\x7d\x37\x69\xf0\xfd\x7e\x5a\xe6\x56\xc1\x01\xd2\xd1\x24\xfa\xea\xd4\x7d\x24\xd4\xaf\x07\x4b\x1b\xeb\x3e\xff\xc3\x53\x09\xae\x5f\xf7\x13\x5c\x1f\x5d\xba\xc4\x7f\x7b\x2b\x49\xed\xcd\x5d\x79\x61\xff\xb0\xdf\xee\xfa\x01\xc4\xf8\xdf\xa2\xb8\x50\x1b\xab\x0d\x73\xee\x79\xc5\x9c\x7c\xaf\xb9\x69\x28\x96\xe0\x12\xec\xc6\x25\x55\x47\xc7\xba\x74\x44\x91\x99\xcb\xcb\x6c\xfd\x08\xcb\x98\x15\xb4\xd1\xf6\x56\xcf\x6b\xab\x7f\x13\x6d\xd1\xcf\x9b\x0c\xbf\xd9\xff\x86\x0c\xc9\xeb\x03\x7b\xbd\x05\xd2\x16\x40\xc1\x58\xe2\x86\x56\x18\xa8\xe9\x99\x99\xd5\xf5\xed\x39\xf7\x24\x73\xdc\xf7\x5a\xed\xca\xbd\xcf\x4f\x6e\x12\xb2\x64\x47\x93\x09\x17\xdc\x2c\xfa\x76\x9f\xcf\x23\x3f\x7d\xbc\x05\x49\x24\x47\xcd\xe4\x0d\xb9\x71\xd5\x04\x00\x97\x5d\x51\xbc\x18\xfc\x43\xfb\x47\x92\xe9\x1a\xb8\x65\x10\x46\x9c\xca\x11\x04\x02\x47\x6d\x2c\xde\x8d\x5c\xe6\xbc\x6b\xed\xd1\x67\xad\x21\xf9\x77\x29\xa4\x7a\x8b\xda\xa1\x05\x5d\xb7\x42\xc8\x9d\xaf\xe5\x18\x4c\x5c\x4d\xbf\x23\x3e\xf5\xe4\x9f\x43\x72\x0a\x16\xdc\xb7\xf7\xad\x1c\xec\xbc\x50\x46\xa1\x0c\x1c\x6f\x1d\x40\xfd\x58\xd0\xdd\x79\xf2\xc0\xcc\x39\xfa\x02\xbb\xbe\x49\xfb\x2d\xec\x2a\xa9\x01\x81\xfa\x5a\xa6\x62\x83\xf2\x10\x9b\xea\x79\xeb\xb0\x4f\xd2\x8f\x2c\xc2\x76\x55\x8b\xbc\xa7\x76\x17\x34\x97\x02\xb1\x77\x9d\x8d\x79\x52\xd1\xa7\xcd\x2f\x20\xee\xaa\x5f\x42\xf8\xf9\xf6\x2f\x7a\x0c\xc7\xda\x6b\x8e\xbd\x9c\x30\x68\x7e\xf9\x7a\xf6\x5a\xfd\x29\xae\x34\xde\x0c\xcb\x16\x65\x63\x1c\xf4\x03\x42\x2b\x09\x4e\x2e\xcb\x2c\xed\x47\xac\x74\x0f\x4e\xa4\xf7\x85\x2d\xfb\x66\x7a\x81\x31\x83\x6a\xa4\x6d\x7a\xcd\xa0\x73\x47\x73\x10\x08\x7f\x20\x1b\x90\x84\xa7\xbe\xfe\x08\xe6\xcb\xfd\x5f\xf5\xe3\x36\x15\x61\x7b\x59\x91\x01\x04\x6f\xed\xbf\x62\x20\x95\x01\x5a\xa1\x27\x72\x04\xbb\xe9\xec\x60\xae\x4e\x0f\x3a\xeb\x9d\xa0\xc9\x75\xef\xb0\x59\xab\x8a\x70\x28\x78\x5c\xd0\x2a\x56\xda\xac\xb2\xc8\x4b\xa6\x50\x54\x1c\xb3\x4e\x0d\xab\xbe\xd9\x2a\x38\x7e\x6a\x67\xc7\x7a\x57\x50\x88\x01\x17\xff\x37\x2c\x1d\xbc\x37\x6e\x8a\x2b\x66\x7c\x58\x8b\x82\x1a\x33\x75\x63\xc8\x98\x56\x54\x14\x96\x52\x80\x16\xd0\xcf\xcb\x31\xf1\x7e\x13\x23\x11\x00\x5c\xad\xf7\xdb\x60\xbf\x8d\x50\x3d\x09\x5f\x21\xca\xfe\xe5\x42\x1b\x0b\x35\xa6\x05\xa7\x6d\xde\x51\xa5\xe5\xc0\xf2\x04\xbf\xe8\x2d\xcf\x0f\x2e\xef\xfe\x1b\xa3\x8f\x9c\x34\xc5\x98\x71\x45\xf7\xa2\xd0\x1f\x39\xe9\x05\xc7\x6d\x39\xd9\x55\x39\xee\xf2\xb2\x7e\x2f\xc9\x46\x53\x88\x9d\x5c\xba\x1e\x7b\xdd\x6a\x97\xbe\x80\xd6\xde\x00\x4f\xd1\xde\x12\x57\x07\x15\x5f\x1e\x94\x1b\x6a\x52\x77\x5c\x94\x50\x5d\x79\x19\x98\x30\x6b\x17\x2a\xab\x44\x79\x88\xc0\x44\x90\x1f\xa2\xd5\xb6\xec\xa7\x26\x9f\xb7\x1c\x04\xdb\x22\xa2\xb7\x6d\x3f\x5d\x01\x0a\x52\x94\x68\xe5\x6b\x24\x59\x81\x87\x4f\xac\xc6\x5a\x4a\x86\x31\x25\xe8\x5b\xe8\x69\xb9\x64\x5e\x6a\x6a\xed\x6b\x7d\x65\x8a\x8e\xad\x8a\xec\xfb\xd0\x0a\x62\x58\x55\x21\x77\x68\xcd\x89\x42\x62\x66\xa8\x7f\xba\xaf\x63\x64\x48\xba\x7e\x9d\x95\x8b\xc5\x0b\xf9\x92\x57\xe0\x76\x5e\x84\x46\x9e\x7d\x23\x98\xc7\x8d\x21\x53\x7e\x6d\x05\xbc\x5b\xce\xa3\x55\x8e\x20\x74\xde\xcd\x58\x55\x13\xc5\xca\xa6\x60\x09\x71\x94\xba\xa7\x89\x82\x90\xa3\xd8\x9a\x0a\x15\x47\x02\xbb\xdc\xeb\xe0\xe2\x9e\xeb\x3a\x9a\x2e\xc6\xf2\x09\x50\x58\x50\x8f\xf9\x84\xb0\x6b\xa6\x16\xa4\x96\x5a\x03\xed\x07\x79\x01\x4b\x44\x42\x2c\x6a\xe8\x42\x0f\x06\x29\xd8\x33\x67\x9b\xe9\xb5\xf8\x9e\x33\xe8\xec\x81\x45\x5e\x26\xcb\x00\xbb\xeb\xf2\xff\xe6\xf0\x4d\x5f\x97\x7f\x6e\xcb\xe9\x19\xfc\x2f\xf8\xe3\x93\xfc\xf2\xa7\x93\x55\x74\x32\xec\x6d\x87\xf2\x6c\xe2\xb2\xef\xeb\xd7\x85\x9d\x01\xcf\xfa\x37\x07\x91\xb7\xff\x9b\xc3\xaf\x0f\xdf\xec\xdb\xbd\xff\xfa\xc0\x9e\x42\xe4\x93\xff\x3a\xf2\xc9\x87\x5f\xba\xb7\xe8\x51\x00\x8c\xb4\x11\x4f\xfb\x6f\x0e\x46\x90\x11\x02\xd5\x5d\x6f\xa4\x2a\x5d\x81\x04\x5f\x6f\xd3\xbe\x39\xb6\x80\xb4\x02\xf0\xdc\x0b\x9f\x03\x20\x5a\x81\x3a\xf6\x33\xad\x81\x37\x08\x62\x10\xb8\x21\x5f\xcd\xa5\x62\x5f\x45\x4b\x3c\x57\xc1\xe0\x76\x64\xdc\x9c\xd6\xc3\xab\x1e\x51\xcf\x29\xa9\xe2\xa9\x89\xe2\x77\xc5\xf7\xcd\x69\xfd\x80\x79\xae\x65\xd5\xcc\x1f\x1a\xc3\x9e\x26\x10\xbd\x77\x59\xbf\x6e\x69\x97\x98\x8a\x31\x22\x73\x97\xb1\x3d\x5e\xc4\x85\x90\xc7\xac\x92\x62\x8a\x8e\xde\xd0\xee\xf1\x81\xab\x6e\x56\x97\xbe\x90\xa2\x60\xb5\xd1\x87\xda\x48\x45\xa7\xec\xd0\x01\xf9\xa0\xc5\xb6\x57\xf0\xe1\x47\x80\xb6\x9b\x37\x88\x2d\x95\xf0\x3d\x42\x99\x6a\x9f\x3d\x0f\xf4\x92\x16\x50\xb4\x13\x76\xbd\xd3\xf1\x36\x2a\x1e\xfa\x4c\x6a\x3e\xf4\xe8\xbf\x98\x92\x4b\x4b\x6f\xf4\x49\x45\xb5\xe1\xc5\xb7\x95\x2c\xae\x2e\x8c\xec\x67\x86\xcc\xa1\x61\xac\x82\xa5\x83\x09\x82\x1c\xfd\x74\x41\x8e\xb9\xbe\x22\x8a\x69\xd9\xa8\xc2\x35\x7a\x5b\x2a\x67\xf9\xd0\xca\xbb\x38\xda\x86\xfa\xd0\xf6\x7c\x4e\x8b\x19\xaa\xfe\x2e\x64\x84\x7d\xae\xa5\x6e\x3b\x5d\xf7\x40\x29\x1c\x69\xf7\xf8\xb7\xf4\x46\x33\xdc\xa5\xb1\xdd\x25\xfb\x75\x1f\xd1\x6c\xcb\x6d\x46\xf1\x6d\x4e\x8f\x7b\xfc\x3c\x35\x75\x7c\xa2\x2f\xed\xbb\xf7\x54\x66\x72\x25\xdc\x21\x14\xde\x1c\x39\xe1\x15\xc3\x5a\x5f\x70\x30\xde\x61\xec\x68\x1e\xe0\xf8\x42\x36\xe4\x86\xa2\xc9\x19\x98\x4c\xff\xcc\xcf\x4b\x5e\xbf\x25\x27\x42\x37\x8a\xb5\xf9\xed\xcb\x20\x58\xa9\xd5\xb7\x20\xf6\xf6\x66\xb8\x18\x98\x14\x67\x79\x59\xff\xea\x64\x38\x4e\x50\x35\xd1\x6f\xc9\x1e\xfb\x6c\x7e\xbf\x37\x20\x7b\x9f\x27\xda\xfe\x23\xcc\x44\xef\x8d\xc8\xe9\xbc\xae\x78\xc1\x8d\xd5\xc5\xc4\x84\xa9\xd6\x4e\x8a\x3f\xc8\xd4\xa0\x69\x57\xee\x24\x8e\xcb\x4f\xc7\x9f\xde\x82\x49\xa5\x94\xe4\x86\x59\x45\xfd\xda\xea\x9a\x4c\x29\xa9\x42\x90\x7c\x74\x5c\x90\xb4\x55\xc8\x79\xad\xe4\x9c\x47\xa5\x75\x81\x7e\xf5\x04\x23\x39\x17\x17\x0c\xb3\x70\x4b\xb6\x7c\xd1\x02\x20\xfe\xae\x45\x1f\x88\xc7\xbc\x65\xa7\x13\x22\x31\x77\xa2\x5b\x68\x9d\xeb\x30\xb9\xbd\x57\x6e\x75\xd1\xa3\x63\x54\x3b\xda\x9b\x64\x55\x7e\x37\xe5\x61\xc9\xae\x0f\x75\x49\xdf\x0c\xe0\xb5\xf0\x9a\x2c\x96\xf6\x80\x6a\xb2\xf7\xe6\xc1\xad\x0e\xda\x71\xc1\xe7\xbc\xa2\xaa\x5a\x0c\xe2\xbd\x6c\xe7\x9f\x48\x15\x00\x01\x83\xee\xeb\x3d\xb2\x8f\xf5\xcc\x41\x64\xae\x98\x6f\x28\x18\xfa\x12\x43\x0e\x57\xef\x76\x7d\xa9\x81\x2d\x24\x39\xb8\x85\x00\x7f\xa4\xe5\x27\x51\xf5\x2e\x4f\x92\x0b\xfb\x3d\x1c\xbe\x02\xa2\x6a\x9c\x9f\x7b\x22\x51\x7a\x62\xed\x23\xbe\xa9\x10\x17\x4e\x0c\xff\x60\x71\x34\xa1\x22\xc7\xee\x50\xd5\xd4\x06\x8a\x24\x08\x2c\xdb\x3e\x50\x0f\x07\xe4\x04\x08\xfe\x4b\xc3\xc8\xe9\xb1\x97\x17\x6a\xa6\x34\xd7\xc6\x72\x8b\xb2\x23\x25\x73\x14\x9d\xf7\x8f\xe6\xf4\x1f\x52\x90\x93\x6f\x2f\xdc\x44\xbd\xaf\xd9\xee\x9d\x6e\x4f\x66\x45\xff\xd1\x28\x66\x75\x8a\x64\xb5\x27\xcc\xb4\xac\xb4\xd8\xcf\xc9\x31\x35\x14\x75\x17\x24\xfd\xb2\x6d\x2f\x06\x3a\xc6\x18\x4a\xcb\xf9\x3e\x76\x09\x1a\xc6\x96\x25\x7b\x8b\x78\x1f\xfb\x9a\x8b\xf1\xe7\x3f\x9c\x9f\x6e\x41\x2f\x28\x40\x60\x9a\x7e\x90\x65\x1e\xe5\xe0\x55\x34\xa1\x97\x3d\xa0\x57\xef\x3b\xfc\x9c\xcc\xed\x4a\xe4\xa3\x14\x6c\x40\xce\x19\x2d\x89\xa5\xc2\xee\x3f\x7f\x52\xdc\xb0\xd1\xab\x6d\x49\x6f\xfe\x10\xb3\x6c\x84\x9f\xcc\x6f\xc2\xc7\xa8\x83\x23\xb4\x59\x05\x5a\xe5\x84\xb1\x71\x25\xc7\xc4\xd1\x8a\x6d\xbe\xfd\x0f\xe7\xa7\xd9\x5e\xfe\x87\xf3\x53\xff\xee\xf6\x3f\xe5\x64\x37\x5f\x7b\xd7\x14\xe3\xef\x96\x34\xd2\x74\x91\xfc\x83\xcb\x56\xa0\xb7\xb4\xdd\xc7\x57\x75\x47\x5b\x56\x72\x93\xd1\xe3\x8a\x8b\xde\x55\x07\xbb\x84\xd1\xce\xd4\xb6\x3a\x8a\xc2\xa1\xa0\x65\x5e\xf9\x96\xcc\x9b\xca\x40\xf3\x18\xb8\x16\xf6\x9e\x40\x5a\x96\xbf\x20\xc4\x35\x53\x25\xe4\x98\x61\x08\x42\xf9\xd6\x17\x25\x0a\xbf\x58\xfd\x83\x0f\x54\xd0\xa9\x7d\x1c\x98\x35\x99\xe3\x9f\xd1\x7d\xdc\x47\xcf\xaf\x08\x5f\xd1\x6b\xca\x2b\x3a\xe6\x15\x37\x20\x22\x1f\x8c\xbc\x26\x87\x15\x5c\x00\xe4\xad\x11\xea\x9d\xd3\x33\xe2\x06\x13\xd0\x94\x90\xec\xdb\xef\x0e\x6f\x2c\x43\x3b\x18\x01\x77\x83\x07\x67\x4c\xc5\xaa\x48\xef\x95\xed\x65\x3d\x7f\x24\x15\x26\x4d\x6d\x00\x14\xb3\x44\x2c\x8f\x64\x69\x67\x5a\x29\x59\xc2\x17\xae\x4d\xeb\x17\x2e\x5c\x6a\x56\x28\x66\x12\xc4\x4b\xb8\xae\x3d\x7f\x9f\x2a\x60\xee\xdc\x5d\x2d\x5f\xee\x6a\x3c\x5a\xe4\xca\x72\x42\xed\x74\x5e\xf8\x0b\xbd\xcb\xf1\xab\xa5\x82\xc6\x78\x99\x2f\x1c\xc7\xf2\x3d\xcd\xe1\xf7\xf6\x0a\xf7\x29\xe5\x8e\x23\x99\xc9\x84\x4b\x93\x67\x5f\xfc\x6c\x7e\x5b\x90\x15\xc3\xc7\xa4\xf7\xd5\x4e\x7c\xcd\x82\xd5\xb3\x49\x7a\x12\xbf\x9d\xe6\xbb\x8b\xae\xfb\xfa\x1d\xab\x67\xe4\xbb\x8b\x15\x94\x19\x4b\x2e\xd8\xf7\xd6\xe8\xd4\x7e\xa5\x49\xc5\x27\xcc\xf0\x5e\x9b\xb0\x65\xda\x3c\x97\x82\x1b\xf9\xe0\xae\xcd\x24\x47\xc5\x77\xb7\xf4\xb6\x29\xab\x87\xc3\x62\xf6\xb9\xdf\x4e\xf2\x21\xfa\x94\x92\x42\x56\x15\x2b\x7c\xd1\x01\x40\x8e\x84\x9d\xc3\xb1\xc2\x14\xe7\xc2\xfe\xf4\xe8\xea\xcf\x60\x8c\x73\x66\xb7\x43\x44\xf4\xc3\xf3\x93\xa3\xe3\x0f\x27\xa3\x79\xf9\xdb\x99\xbc\x19\x1a\x39\x6c\x34\x1b\xf2\xbe\x45\x25\xb7\x5e\x8f\x3e\x43\xe9\xd8\x47\xa8\xef\x5a\x53\x33\xcb\xa3\x31\xd9\x99\x2c\xfa\xb4\xbd\xbf\x7f\xd0\x98\x57\x0d\xae\x3e\x17\x73\xa4\xa4\x34\x03\xa2\x28\x04\xda\x85\x9e\xb2\x93\xa6\xaa\x10\xcf\x8c\x62\x6c\x10\xfb\xa1\x0e\x5f\xf4\x16\x2f\x8d\x74\x36\xf7\x8b\x52\x62\x76\x85\x3c\xa4\x8b\x66\x7d\x75\x29\x92\x11\x61\x5a\x48\xba\x28\x73\xd1\xf9\x1c\x7d\xac\x66\x66\x11\xe8\x8a\x2d\x08\xd4\xff\x9e\x48\x65\xaf\xad\xea\x5e\x41\x66\x0a\xd8\xf5\xc3\x46\x33\x35\xc2\xe9\x9f\xf9\x49\xa7\x88\x9a\xf0\xfe\xe7\x6c\xb2\x1b\xe7\x7c\xce\x26\xab\x8e\xd9\x7d\x0c\x7d\x6c\x43\x06\x85\x95\x64\x1b\x33\xc3\x2c\x3f\xec\x34\x8e\x62\xfe\xca\x73\xc7\x8a\xf1\xcf\xfc\xa0\x93\x2a\x51\xe7\x68\x01\x22\x12\x94\x12\x92\xb9\x5d\x42\xec\xd6\x70\x98\x91\xd8\x57\xe2\xb2\xd3\x2c\x13\x6b\x35\xf1\x6b\x56\x2d\x82\xac\x8e\x31\xf2\x65\x83\xa5\x63\x69\x71\x75\x43\x55\x09\x9d\x79\x6b\x6a\xb8\x33\x5a\xf2\xfe\x82\xa5\x1d\xbe\x9b\xb3\x2b\x4e\xeb\x5a\x2e\xb8\x64\x4b\x8d\x6f\x6c\x49\xde\xa2\x66\x2e\xf9\x4b\xb8\x32\xbc\xae\xd4\x94\xe5\x91\x34\x21\x20\x0a\x81\x98\x5b\x8d\xa9\x60\xca\x2a\xcb\xd5\x82\xdc\x28\xd9\xb7\x54\x95\x1f\x18\x68\x75\x54\x96\x2e\x35\xa1\xd1\x6c\xd2\x54\xb8\xe1\x7a\x44\x68\xcd\x7f\x64\x4a\x43\x2a\xfb\x15\x17\xe5\x80\x34\xbc\xfc\x4b\xd2\x8a\x0f\x74\x99\xcb\x6b\xa6\xae\x39\xbb\x39\xbc\x91\xea\x8a\x8b\xe9\xd0\x6e\xef\x10\x2f\x9d\x3e\xb4\xb8\xaf\x0f\x7f\x0b\xff\x64\xd8\x87\x63\x25\x6b\xf2\xb3\x05\x67\xdc\xf0\xaa\x64\xea\xad\xa3\x56\x3f\xbb\x0a\x08\x52\x18\x65\x75\x17\x35\x9c\x32\x11\xb2\xfa\x04\x63\x25\xe1\x26\xbc\xcf\x94\x9b\x59\x33\x1e\x15\x72\x1e\xbd\xda\x50\xf3\xa9\x3e\x8c\xe6\x3e\xe4\x5a\x37\x4c\x1f\x7e\xf3\xe7\x7f\xf9\x63\xca\x21\x66\x6a\x19\xe1\xde\xf4\x2d\xd9\xdb\xcb\xa1\x3d\x24\x57\xb2\xb7\xc3\x8a\x03\xdb\x66\x82\x16\x06\x4b\x7a\x64\xac\x76\x28\x2f\xe0\x28\x5a\x4a\x8d\xcf\x58\x24\xec\xb0\x37\x5a\xce\x7b\x56\xc7\x25\x3b\xc3\xdd\xfa\x9a\x92\xb8\x28\xfb\x1d\x5d\x8e\x63\xc3\xd5\xbb\x16\x28\xf7\x99\x8b\xcd\x0b\x91\xf2\xd4\xfb\x04\xa0\xa0\xa9\x8f\x7f\xef\x86\xbf\x67\x0b\x71\x5f\x3e\xbf\xf9\x42\xff\x52\x0d\x11\xb2\x61\x5d\xb6\x07\xf8\xfc\x0c\x5f\x2f\xb1\xec\x6b\x63\xd9\x9f\xb7\xdb\x7e\x87\x23\xd4\x1f\xf3\x4a\x91\x2f\xd2\xc8\xf3\x45\x39\xbc\xb6\x88\x13\xe9\xa6\x9c\x5d\xd3\xf0\x5b\x09\xa7\x96\x50\x64\xca\x75\x26\x04\x05\x1e\x39\x8b\xf7\xd4\x41\xc2\x36\x55\x74\xce\x0c\x53\x6d\x61\xee\x42\x0a\x91\xd2\xd8\xd3\x48\xf2\xa9\x66\xe2\xc2\xd0\xe2\x6a\x8b\xfd\xa1\x5e\xb4\xf2\xfb\xc6\x8b\x56\x1e\x01\xf1\xa2\x95\xbf\x68\xe5\xb7\xc6\x17\xac\x95\xef\x5c\x1a\x88\x67\x3f\x58\x5e\xce\xa5\x77\xb5\xb9\xf2\xc8\xf9\x9f\xa1\x88\xd1\x57\xf9\x96\x62\xc2\xa7\x1f\x68\x9d\x1e\xca\xe1\x67\x5a\xd2\xa5\xc3\xc7\x2e\x7a\x03\x8a\xfe\xd4\xb2\x86\xd6\x71\xae\x7a\x24\x6c\xff\xd3\x2b\xb2\xa9\xbc\xdb\x5d\xb8\x6c\x19\x10\x09\xf8\x1d\x81\xd2\x15\xcf\xe6\xf6\x93\x31\x37\xad\xe0\xa5\x99\xc1\x36\x55\xae\x31\xbf\x14\xa4\x70\x75\xc7\x41\x5d\x8c\xda\xa7\x65\x50\x41\x05\x91\x85\xf1\x45\x1c\x43\x57\xab\xd7\xaf\x5f\xbf\xc6\x96\x26\x7f\xfa\xd3\x9f\x88\x54\x84\x92\x92\x15\x7c\x7e\xfb\x41\x78\xea\x0f\x6f\x7a\x56\xfd\xb7\xe3\x7f\x1f\x7d\x78\x0f\x15\x2f\x6a\xa3\xb1\x73\x20\x42\x64\x27\xee\x2c\xaa\x07\xe4\x7f\x5e\x7c\xfa\xd8\x76\xa4\xeb\x7e\x0b\x7e\xa9\xb0\x9d\xfd\xe1\x89\x9d\xe5\xaf\xff\xf8\xfb\xdf\x27\xcc\xc4\x15\xd4\x89\xe2\xae\x8c\xad\x2f\xde\x41\xad\xf8\xa2\x18\xb6\x8a\x01\x79\xcb\x2b\xfc\x58\x5a\xc9\xf4\xee\x5a\x41\xbc\x3c\x37\xe7\xd3\x99\x71\x05\x38\xed\x15\xaf\x78\x61\x50\x6e\x42\x29\x44\xba\x2a\xbd\x70\xe9\x11\x86\x60\xec\x48\x08\x17\x2a\xd9\x80\x54\xfc\x8a\x91\x89\xfe\xab\x92\x4d\xdd\x36\x98\xc5\x56\x1a\xbe\xaa\x0c\x02\xd1\xe2\x7e\xef\xfe\x8c\xbb\x92\x1f\x9b\x14\xef\x93\x8b\xc8\x00\x10\x4b\x16\x1a\x57\x53\xb2\x6d\x58\x5a\x53\x1e\xca\xc8\x40\x0e\x1f\x8a\xfe\x5d\x95\xa2\xe8\x59\xaa\xcb\x8e\x77\x81\xa3\xf8\xb6\x02\xb5\x92\xff\x89\x48\x0e\xc5\x53\x23\x8e\x0e\x45\x47\x2d\xce\xf9\x92\xa3\x6d\x18\x65\xef\xf5\xaf\x18\x16\x15\xb5\xa2\x24\x13\xa1\x03\x20\xbc\x3d\xd4\x07\x8d\xf6\xc6\x7e\x51\x71\x6d\x41\x83\x46\x35\x0e\xe2\xde\x6b\xaf\x78\xd3\xb0\x1a\xdc\x7b\x8d\x37\xa2\x11\xb7\x56\xc5\xfe\x0e\x09\x2b\x03\x4b\x87\x17\xa4\xbe\x3b\x6b\xbb\x36\x16\xc6\x76\xbd\x4f\xdc\xb3\x1e\x0b\xc2\x81\xf5\x6f\x27\x1f\x1d\xa9\x66\xa6\x71\x47\x0f\x15\x1e\xec\xbb\x32\xad\x5d\xdb\xaf\x39\x55\x57\xac\x0c\xfc\x6f\x44\xce\xec\xa6\xf8\xb6\x2b\x09\x16\xb1\x8a\x5a\xa5\x15\x7d\x00\x74\x01\xaf\xe9\xec\x1b\x00\xdc\xab\xd1\xe8\x15\x12\x5e\xa9\x88\x36\x54\x39\x6a\x68\x3f\x4f\xa3\x3c\x5b\x8c\x12\xec\xd0\x8d\x0f\xb4\xd6\xd8\x92\x9f\x8b\x29\x20\x00\x98\x7c\xe0\x9d\x1d\xf3\xa1\xee\x8c\xfa\xf3\x96\x0c\x06\x99\x54\xff\x04\x8e\x61\xef\xda\xd5\xfe\xf7\x76\x63\x52\xee\x79\xb2\x55\x09\x28\x55\xca\xcf\x97\x10\xe0\xaa\x5b\x0d\xdc\x48\x4f\x8d\xd2\xec\x17\x99\x94\xdf\x79\x82\x10\x8e\x23\xa7\x15\x0d\xe1\xe9\x86\x42\x6d\x24\x89\x1b\x34\x96\x55\x09\x77\x08\xc7\x0e\x09\xe0\x38\x76\x4d\x0c\xc7\x71\x3a\x01\x52\xbe\xc4\xb2\x1d\xab\x89\x95\x2a\x2f\x6b\xd8\xb3\x4b\x5d\x74\x7b\x12\x34\x8e\xad\xc8\xd1\x38\x72\x48\xd3\x38\xd2\x65\x6a\x1c\x29\x41\xe7\x38\xf2\x12\x0e\x1f\xba\x8e\x87\xe1\xc4\x0e\x94\x2c\x26\x01\x01\xc0\x49\x0c\x36\x15\x4f\x8c\x93\xe9\x85\x13\x6a\x90\x64\xd0\xb1\x96\x55\x63\x70\xe1\x5c\x53\xc7\xf2\x12\xbc\x10\xab\xa0\xda\x7f\x92\x90\xb4\xbc\x48\x24\x7b\x81\x74\x8c\xe2\x4a\xfa\x0a\xbb\x99\x31\x91\xe2\x39\xca\x85\xb6\x79\x3d\x46\xdb\xf7\x16\x6d\xdd\x53\x94\xdb\x4b\xf4\xb4\x1e\xa2\xdd\xf3\x0e\x3d\x53\xcf\x50\x06\x8a\x93\xea\x11\x0a\x66\xe4\x1c\x24\xc6\x4f\x16\x0a\xeb\xdd\xcc\x98\xcb\xbc\x8a\x6c\x04\x56\x16\xb5\x92\x06\x18\x2e\x7c\xb7\x54\xec\x2a\xb3\xad\x18\x8c\xbc\x5e\xb1\x42\xf3\x74\x5f\x8b\xe6\x64\xff\x5d\x28\xda\xec\x73\xa0\x4f\x85\x61\x6a\x42\x0b\x76\x10\xfb\x60\x58\x3d\x63\x73\xa6\xec\xc6\xbb\xe7\x7c\x0d\xe0\x19\x15\xa5\xeb\x8e\xe5\x88\x0d\x61\x9f\x0d\x53\xf6\x90\xde\x5d\x9c\x92\x52\xf1\x6b\xa6\x34\xd9\xff\x96\x19\xea\xbb\x62\xf5\xaa\x80\xb6\xed\x1a\x5b\xf0\x22\xdb\xf0\x10\xc1\xc2\xdb\xe6\xd0\x08\x85\x17\x2a\x45\xc4\xaf\xdb\x53\xf6\x7d\xbc\x2c\x46\xe8\xd8\x2d\xd7\x9f\xef\xbc\x93\x02\x74\x09\x60\x92\x0b\xd9\x28\x8c\x72\x76\x4d\x40\x18\x29\xa4\x52\x56\xab\x01\x80\xa8\x26\x8a\x4d\xb9\x36\xd0\xad\xc4\x77\xa8\xc4\x8e\x07\x5b\xa3\xa0\x3b\x15\x2e\x1a\xe2\x42\xd7\x14\x47\xea\xbd\x86\xd3\x83\x6b\x25\xaf\x79\xe9\xd5\xe0\x58\xaa\xe1\x9a\xd4\x54\x47\xf5\xbc\xa9\xd6\xb2\xe0\xe0\x36\x6c\xb1\xa8\xf7\xfa\x68\x3f\x06\x25\xbb\x64\x86\xa9\x39\x17\xac\x53\x05\x36\x8e\x64\x95\x84\xd6\x75\xd5\x3b\x1b\x2c\x19\x2d\x84\x2c\xd9\x59\x33\xae\xb8\x9e\x5d\xec\x4a\x74\xde\x2a\x98\x30\x81\xfe\x56\xd6\xdd\x5d\x51\x7a\x09\x91\x81\x42\x73\xd0\x53\xad\xdc\x67\xd5\x72\x2e\x05\x18\x08\xa9\xd6\x7e\xd5\x98\xd4\x48\x90\xd6\x2b\x66\x98\xff\xaa\xbf\xf6\xd1\xbe\xb7\xeb\x85\x40\x45\x09\x9f\xfe\x20\xea\xce\xe7\x05\xad\xaa\x04\x7b\x51\x57\x31\xf1\xc2\x0c\x1a\x4e\x7c\x5f\x05\xbc\x30\xdc\xde\x25\xbf\xcb\x90\xf6\x88\xdc\x6b\x84\xed\x32\xfb\x2b\x06\x2b\x0f\x4e\x47\x3d\xfb\xa5\xf0\xa7\x3b\xb0\x6a\x8c\xff\x41\xc0\x00\xac\x1a\x86\xf7\xf8\x25\x66\xf2\x25\x66\xf2\x9e\xb1\x75\x4d\x98\xbc\xc4\x4c\xbe\xc4\x4c\xae\x1e\x5f\x70\xcc\xe4\xce\xa5\x81\x78\xef\x08\x4a\x13\xb4\x1c\x42\xcd\x47\x8c\xec\x6b\xb0\x7b\x75\x10\xea\x53\x95\x86\x7b\x4a\x89\x6c\xc9\x04\xe0\x03\x48\x8f\x8c\x51\x7c\xdc\x98\xfe\x9c\x2b\x6f\x40\x6b\x0b\x0f\x28\xf7\x4c\x3b\x11\x6b\xe8\x8e\xac\x88\x78\xad\xf3\x24\x05\x01\x20\x12\xcc\x12\x35\xcb\x51\x50\xf5\x40\xcb\xc3\x0f\x5f\x69\x52\xca\xa2\x99\x33\x61\x5a\x0c\x69\xf3\xcf\xd0\x99\xb7\x45\x21\x84\x96\x25\x47\x19\xee\x2c\x83\x38\x92\x44\x8e\x4a\x79\x23\x2c\xfb\x3e\x3a\xeb\x55\x43\xb9\x5b\x3f\xb9\x9d\x2b\x36\x02\xf9\x8f\x89\xfd\x9c\x8e\xa1\xe1\xbd\xeb\x98\xfa\x12\x97\xbb\x72\x8a\x3c\xd7\x74\x95\xfb\xdf\x48\x2b\x70\xac\x8d\xbb\x6d\xdd\xf7\x59\x57\x7e\x09\x01\xde\x8d\xd8\x83\x97\x10\xe0\xbe\x2b\xbf\x84\x00\xf7\x5b\xbe\x43\xcf\x4e\x31\x8e\xd7\x8a\x73\x95\x6b\xcd\xd9\xe1\x0f\x2e\xfc\x25\xe1\xa0\x76\x2b\x74\xf1\xb8\xe5\x89\x68\x0b\x5a\x2e\x0d\xbd\x64\xb6\x42\x5a\xd8\x06\x5b\x44\x89\xac\x9e\x69\x82\xaa\xf8\x25\x84\x39\xee\x40\x98\x22\xec\x65\x82\x09\x15\x47\xb7\x00\x64\x5b\x4d\x14\x9b\x69\x63\x1c\x78\x14\x88\x5e\xcb\xf2\x2d\xf6\x8f\xa6\x42\x48\x14\x51\xf5\x00\xfb\x6f\xeb\x81\x2b\xd0\x02\x1a\x76\x4d\x0b\x34\x2a\x36\xbc\x04\x9a\x1a\x84\xd8\xde\xfd\x46\x70\x64\xc1\x02\x92\x09\x13\x08\x60\x03\x6c\xd1\x59\x0a\x4a\x90\x6c\x68\x61\x47\x6b\x89\x49\x9d\x69\xb9\x6f\x2e\xce\xea\xb1\x41\x17\x33\x36\xa7\xf0\x9f\xdf\xf9\x2d\xb0\x04\xd2\x6a\x9d\x86\x61\xe7\x3b\xa6\xe6\x9a\xc8\xc9\xa0\x53\x15\x61\xef\x3a\xa5\x19\x9c\x1f\x99\x8c\x19\xc4\x5f\xa6\xb3\xe4\x98\x36\xb2\xbc\x61\x67\x9d\x08\x34\x7b\x91\x40\x8e\xb4\x77\xcb\x7b\xeb\xda\x6c\x00\x60\x22\xb8\xc3\x3b\xb4\x39\xf9\x2d\x35\x38\x76\x2d\xf4\xb8\x6f\xc8\xf1\x20\xc4\x5b\x74\x45\xf6\x44\x70\x5e\x42\x8e\xbb\xe3\x25\xe4\xf8\x25\xe4\x38\x6b\xc8\x71\x24\xec\x78\xbe\xb5\x22\x7a\x38\x0e\xfb\xf0\x21\xc4\x63\xe6\xf5\x7e\x67\x71\xf0\x11\xc0\x3e\xfc\x57\xaa\x6e\x96\xd3\xab\xd1\xe8\x15\xe6\x39\xb5\x26\x8a\xc6\x4c\x86\x7f\x26\x4c\x14\xb2\xb4\xf3\x5c\xc2\xfc\x4a\x1b\x10\xe1\x5b\xb7\x58\x0c\xcb\xdc\xaf\x15\x67\x4a\xc1\xdc\x39\x24\xaa\x64\x56\xe1\xdb\x40\x7e\x97\x5f\x30\x4d\x26\xee\xad\x38\x1b\x9a\x55\xba\x2d\x0e\x4d\xfc\x9d\x5c\xeb\xbf\xd7\xa4\xe2\x73\x0e\x0d\x70\x4a\xa0\x70\x4c\x9b\x34\xb7\x11\x21\xfb\x38\xe5\xa8\xa8\x9b\x81\x9b\x7e\x34\x67\x73\xa9\x16\x83\xb0\x84\xfd\xb2\xb3\xa6\x7b\xe2\x00\x84\xe8\xa2\x51\x8a\x09\x53\x2d\x22\x71\xfa\x4b\x93\xa6\xfd\x09\xec\x88\x30\x1d\x10\x24\xa5\x35\x49\x3b\xba\x34\xa8\x8d\x46\x04\xcf\x7c\xd8\x45\xe0\x9d\xae\xf8\xe4\xa0\x8d\x01\xb5\x9f\x32\x71\x4d\xae\xa9\xd2\x69\x77\x9e\xe4\x95\x9f\x4b\x7e\xcd\xb5\xec\x1d\xb2\x17\x4d\x14\x6f\xcf\x45\xf0\xa0\xd9\x9b\x2a\x1b\x53\x37\xc6\xb1\x13\x7f\x7d\xd9\xe7\x5a\x5a\x21\x2d\x5c\xdb\x25\x45\xe3\x4d\x5f\x07\x65\x3b\x6a\x6a\x0c\x53\xe2\x2d\xf9\x3f\xfb\xff\xf1\xbb\x7f\x0e\x0f\xfe\xb2\xbf\xff\xb7\xd7\xc3\x7f\xf9\xfb\xef\xf6\xff\x63\x04\xff\xf1\xd5\xc1\x5f\x0e\xfe\xe9\xff\xf8\xdd\xc1\xc1\xfe\xfe\xdf\xbe\xff\xf0\xd7\xcb\xb3\x93\xbf\xf3\x83\x7f\xfe\x4d\x34\xf3\x2b\xfc\xeb\x9f\xfb\x7f\x63\x27\x7f\xdf\x70\x92\x83\x83\xbf\xfc\x8f\x64\xd0\xa9\x58\x7c\x4a\xa4\xc3\x38\x86\x19\xe5\x81\xee\x8c\x59\xd0\x6f\x49\x4b\xe1\xc2\x0c\xa5\x1a\xe2\xd4\x6f\xa1\x1d\x75\xe2\x02\x1e\xbd\x72\xdf\xff\x56\x06\x09\x7c\x29\x28\x88\x3b\x74\xc1\x1f\x43\x07\xcc\x9c\xd7\x03\x11\x34\xc7\x7c\x6b\x15\x71\xfd\xfa\xdd\x3a\x3e\x86\xcd\x6b\xa9\xa8\x5a\x90\xd2\xb9\x1c\x16\x6b\xfb\x31\x65\x2b\x84\xfb\x90\x1e\xd9\x00\x7a\xc9\xfb\xdc\xea\x2d\xbb\x2c\xe7\xac\xe4\xcd\x7c\xdb\xde\x4a\x84\x22\x3e\xf8\x1b\x7b\xc4\x10\xe0\x25\x27\x21\x7f\xc0\x3d\xe6\x7c\xc6\x63\x5a\x5c\xa1\x11\x21\x60\x46\x8a\x67\x89\xc5\x65\xb1\xf7\xf6\x5c\x64\xf0\x9c\x51\x11\x3c\xa7\x10\xc5\x2e\x4b\xf6\x4a\x87\x67\x11\xa4\x2c\xce\x4a\x8c\x60\x73\x89\x83\xfb\x6e\x81\x03\xab\x0a\x7d\x00\xf9\x75\x6b\x1d\xe0\x13\xb0\x9b\x64\xe9\x35\xc2\xff\xc1\xde\x5b\x59\x7f\xdb\x68\x1a\x00\xf1\x29\x0d\x46\x82\x59\xc7\x75\x8c\x9b\x90\x4a\x16\x51\xba\x4b\x47\x14\x05\x44\x3d\xf1\x24\x2e\x35\x5a\xc9\xa2\xab\x85\x06\x75\x20\x70\xa9\x55\x1a\xc3\xd3\x79\x41\xc7\x15\x43\xd3\x11\xe0\x4d\x32\x8e\xda\xc5\xe6\xf4\x33\x9f\x37\x73\xd2\x68\xfb\x66\x52\x74\xe7\x6e\x5f\xec\x06\xaf\x26\xde\x95\x39\x17\xf0\xa3\x8e\x99\xad\xbf\xf3\x6a\xc6\xc8\x45\x38\x81\xd6\xe8\x8b\xd1\x9e\xce\xa6\xa3\x1b\x50\xfd\x1d\x74\x4e\x01\x95\x13\x88\x4a\x0e\x7a\x88\x26\x50\x34\xa4\x67\x6b\xd5\x76\x53\x22\x82\x21\x78\xd5\xa5\x18\x40\xbf\x66\xd1\x01\x35\xc2\x65\x93\x3d\xd7\x7b\xfc\xec\xa4\xf8\x44\xd9\x3d\x97\xc4\x9e\x45\x4e\xcf\x2e\x9d\x87\xec\xbc\xad\x89\x7b\x21\x3d\xb0\x23\xef\x39\x7b\xf4\x8a\x54\x41\xea\xd3\xb2\x02\x81\x75\x51\x80\xbd\x96\xbf\x0c\xb6\x6f\x27\x3c\x16\x8b\xc2\xf5\x04\xe3\x6d\x8c\x62\x88\x53\xc3\xbb\x0b\xd5\x9e\x86\xf6\xff\xbc\x8d\xdc\x87\x2f\x8d\xd9\x04\xb3\x21\xf0\x37\x60\x5f\xd4\xfd\xea\x4e\xa1\x97\xa0\x62\x06\xca\x5b\x31\x11\x26\x85\x94\x8e\xb9\xbc\xb6\x24\xe4\x37\xbd\xa6\xfe\x41\xbb\x08\x3b\xde\xf3\x5e\xd0\x83\x4e\xdd\x52\x8d\x16\x3f\xc1\x58\x89\xb5\xb8\xaa\x76\x0b\x54\x23\x7a\x6e\xc0\xf8\xc0\xe7\x7c\x02\xe9\x16\x52\x81\x4b\x04\xa9\x18\xda\xf2\x15\xb3\x38\x00\xcd\xda\x94\x9c\x13\x2d\x68\xad\x67\xd2\x80\xdd\x98\xd6\xb4\xe0\xa6\x77\x11\x25\xa3\x68\x71\x65\x67\x86\x30\x26\x78\xb3\x7e\xaf\x51\x1c\xb8\x4a\x10\x31\xb2\x76\xab\x97\x99\x99\x92\xcd\x74\x06\xe5\xad\xf0\xa9\xa2\xa2\x1a\x6b\xa9\xf5\x8b\x40\x5c\xb9\xa6\xb3\x74\x6a\x52\x2e\x04\x9d\xf3\xc2\x9f\x1f\x64\xdd\x69\x2e\x5d\x84\x09\xc0\xd2\x77\xdb\x28\x39\x63\x4a\x73\x6d\x98\x30\x18\xec\xf2\xae\xa2\x7c\x4e\xf6\x35\x63\xe4\xc4\xdf\x75\xfc\xe6\x02\xf5\x74\xf4\x6e\xf5\x4f\xd3\x88\xa3\x67\x5c\xbb\x5e\x57\xdc\xdd\x7e\xe2\xbd\x7a\x51\x44\x29\x10\xe2\xde\x2f\x28\xca\xd5\xaf\x78\x90\x72\x1b\x57\x6f\x9a\x54\x90\x52\xe5\x2c\x74\xd7\x4c\x94\xb2\x0d\xad\xee\xb5\xd6\xd1\xd9\xa9\x8e\x4d\xa2\x48\xd5\x6a\x5c\x1d\xbe\xa8\xa4\x98\xc6\xed\x48\x03\x4d\xec\xb5\x9e\x15\xb9\x04\xe1\xa2\xe4\xd7\xbc\x6c\x68\x85\xc2\x56\xff\x7d\x7a\x77\x71\x8a\x50\xf2\xe9\xcc\x0c\x6f\x18\x78\x14\x51\xdc\x6e\x19\x89\x7f\x37\x7e\x2b\xc9\x98\x6b\x90\xcb\x0c\x31\xb2\x1f\x49\x62\xce\x93\x6d\x77\xed\x86\x2e\xa0\xc5\xbd\x4b\x14\xed\x04\x9b\xbb\x23\x73\xcb\x4e\x64\x3f\xb1\x61\xee\x05\x3d\x87\xde\x7d\x77\xee\x08\x28\x71\x41\x05\xa8\xaf\xe0\x89\xb6\x57\x00\xc8\xea\xed\x6d\xeb\x4b\x74\xea\x80\xc3\xed\x54\x28\xfc\x6a\x6a\x2f\x5d\x4f\xab\xcc\x96\x2d\x23\xd7\xed\x7d\xbc\x64\xf3\xba\xa2\x66\xeb\x41\xdd\x3f\x45\x8e\xf9\x28\x5e\xd0\x72\x0f\x2a\xca\x21\xad\x2c\xd1\x38\xfb\xf1\x9d\xab\x91\x87\xb4\x3d\x4b\x76\xcc\xa5\x17\x41\x84\xd3\x72\x50\x9d\x5d\x49\xd6\xa1\x69\xe6\x98\x95\x20\x12\x38\x88\x53\xb2\x4f\xe5\x8d\x60\xca\x5f\xac\xb3\x1f\xdf\x0d\x08\x1f\xb1\x91\xff\x2b\x2c\xe1\x45\x26\x23\xa7\x58\xde\xc3\xd7\x62\xea\x1f\x65\x28\xcb\x11\xbe\x7a\xec\xc3\x8e\xd7\xfc\xf9\x5f\xed\xa6\xd8\x6f\xff\x6d\xf8\xaf\x8e\xc7\xc0\x5f\x90\xc1\x96\x90\x80\xf8\xf3\xd2\x6c\x71\x09\x05\x90\x78\xec\x5f\x3f\x9f\xc9\xf2\xa2\x66\xc5\x08\xb7\x5f\xff\x9c\x14\xf8\x4a\x08\x13\x46\x2d\x46\xe4\x4c\x42\x96\x0c\x2f\x91\xa2\xc1\xbb\x2a\xf6\x9f\x3e\x28\x03\xd0\x20\x78\x7e\x0b\x6a\x98\x00\x09\xd8\xc2\xd6\x7b\x69\x57\xc0\x15\x96\x05\x3a\x4f\x61\x9f\xf7\xc1\x5d\x87\x75\xec\x07\xc4\x48\x09\x5c\xaa\x37\xc3\xb5\xe3\x48\x10\xf6\x99\x6b\x68\xf0\x83\x47\x09\x58\x42\x5d\x39\x08\xaf\x77\x58\x68\x2c\xe2\x85\x86\x55\xb5\xec\x1f\x76\x0b\x5b\xf8\x95\x90\xe6\xab\x70\x7b\x7d\xda\x1a\x28\x18\x92\xd0\x6b\xc9\x4b\xd2\x68\x90\x3b\x05\x69\x04\xc4\x2d\x24\x14\x2b\x76\xe8\x33\x5e\x90\x39\xd7\x86\x5e\xb1\x11\xb9\xb0\x3a\x49\x1c\x4b\x8c\x48\x25\xc8\xb8\x92\xc5\x15\x2b\x49\x23\x0c\xaf\x92\xcc\x33\x01\x6e\xd8\xda\x48\x5f\x81\xf2\xc4\x4d\x61\x25\xdd\x5a\xb1\xa1\xd7\x9a\xf0\xa9\x04\xb3\x31\xb2\xf4\xb0\xab\xed\x59\x0d\xc2\x5d\x9d\x51\xb4\xdf\xd6\x25\x2c\xe9\xf2\x85\x13\xa9\xd1\xad\xda\x06\x76\x3f\x25\xfc\xed\xfe\x00\x24\xd3\x23\xf2\x11\xb4\x97\xaa\xff\xad\xc4\xcc\x09\x34\x79\xbb\x30\x19\xc1\x0a\xa6\x35\x55\x0b\x4c\xc6\xe6\xc6\xd7\x01\x70\xf9\xc4\x56\x6b\xec\xbf\xa9\x54\x34\x16\x60\xa2\x58\x21\x85\x36\xaa\x29\x00\x6b\x28\x19\x2b\x79\xc5\x44\x5b\x1c\xa5\xff\x25\xec\xa6\x99\xb7\xa9\x9d\x56\xc6\x16\x92\x14\x33\x2a\xa6\x2c\x54\xad\x26\x73\x5a\x02\x2a\x7f\x1f\x4c\x20\xfd\x77\x53\x06\xc4\xa0\x13\x63\x25\x43\x03\x18\x32\xb6\xaa\x82\x8f\x49\x4a\x78\xb3\xf3\x90\x26\x3f\x8f\xe2\x9a\x04\xaf\xb6\x98\x71\x98\x1e\x58\x32\x04\x9d\xb5\xaf\xdd\x30\x43\x20\xc9\x9c\x19\x5a\x52\x43\x77\xa5\xf2\xc2\x07\xba\x08\x01\x6a\x18\xba\x0f\xb8\x1b\x85\xf4\x3b\x55\xc1\x9b\x89\x64\xcd\xe3\xe2\xe9\x67\x3f\xbe\x4b\x5a\x1f\xf3\xe3\x2d\xba\x42\xa3\x3a\x63\xe9\x8c\x8b\x60\xc4\x62\x02\x60\xbd\xf0\x75\x14\x2c\x68\x1e\x12\xe4\xe4\xac\x24\x65\x93\xec\xd4\x6e\xa5\x84\xf4\x8c\xfa\xc4\x00\x2a\x8b\x9f\xbb\x82\x1c\x97\x6d\x4c\x7a\xd1\x4d\x52\x5f\xa9\xed\x63\xe8\x22\x13\x86\x2b\x16\x15\xf7\x4f\x02\xc1\xe1\x5b\x23\x90\x94\x76\x31\x0f\x51\x73\xca\x8c\x6e\xb3\x2f\x51\xa6\x4c\x5c\xd5\x38\x3d\x09\xdf\x08\x94\x3f\x8f\x8d\xce\xe5\xb2\x72\x03\x92\xd6\x44\x3c\xd7\xd2\xc9\x8e\x56\xea\xde\x3a\x32\xe6\x0b\x9e\xa3\x85\xe5\xf4\x1f\x64\x99\x1e\x85\x97\x37\x1c\xb4\x03\x5a\x5b\x12\x08\x2b\x67\x69\xf0\x7a\xe2\x03\x10\x51\xad\x3b\x8d\x14\x50\x96\x99\xd1\xeb\xe4\x62\xe3\xbd\x5d\x62\xad\xc9\x62\xe8\xbd\x63\x08\xee\x10\xc0\x1d\xbe\x49\x04\x2c\x3d\x0f\xd1\x8f\xc4\x7c\xc4\x2e\x40\x59\x42\xc5\x1e\xa1\x9c\xb0\x1f\x96\xc5\x5f\x64\x09\x13\xcb\x8d\xed\x2d\x64\x4e\x6e\x75\x59\x03\x21\xbf\xc5\xd5\x16\x65\xdc\x32\xe1\xf4\xf3\xfa\xaa\xa3\xa8\x3a\xfb\x4a\xf0\x72\x60\x21\xae\x7d\xef\xf6\x18\x39\xb4\xf6\x9d\xde\xba\x8f\x1f\x64\x06\x06\x14\xf3\xd5\x96\xf0\xe4\x95\x4e\x5d\x92\xa4\x37\x5e\x31\x05\x09\x3b\x51\x7d\xd0\xb6\x28\x10\x1c\x81\x73\x6d\x2c\xe5\x81\xd9\xd3\x22\x18\x0d\xd8\xbf\xf7\x8b\x1f\xde\xdb\x17\xac\x6d\x82\xdd\x04\xfd\x9a\x6a\x6c\xca\xee\x03\xe1\xc1\x8b\xe9\x93\xfb\x56\xc1\x93\x4e\xf2\x7e\xf2\x3e\xc1\x23\xb1\xc0\xcd\x3f\x8e\x90\x13\x1d\x67\x64\x6a\x41\xe5\x9a\x30\x41\xc7\x95\x55\x47\x22\x04\x0e\x70\x2e\x49\xa7\x46\x46\x4f\x9d\xb3\x49\xfa\xd6\x81\x2b\x33\x9e\x72\xb3\xb5\x51\xbc\xed\xfc\x70\xd4\xa6\xc4\x3a\xeb\x4c\x86\x5e\xdd\x7e\x38\xac\xeb\x2c\xd1\x4d\x93\x5a\x82\x26\xee\x6c\xb4\xf2\x0d\x52\x61\xca\x96\x54\x90\x2f\xad\x00\x7a\xd3\xf0\x9e\x2e\x82\xee\x34\x49\xa6\x42\x1c\xf9\xb2\x13\x20\xd9\x17\x32\xc3\x72\x84\x79\xe7\xe6\x3b\x04\x7d\x77\x00\x9f\xb7\x02\x4f\xe1\x0f\xaf\x53\x84\xb0\xe7\x31\xb3\xd4\xb9\x6d\x74\x96\x7e\x2f\x08\xde\x8d\x78\xfd\x15\x19\x84\x2d\x99\xfb\x9e\x8b\x32\xe4\x72\xfa\x52\xba\x56\x40\x3b\x3a\x3b\x45\xa8\xf3\xc0\xf4\x1d\xf0\x84\x85\x53\x78\xcd\x8c\xab\x72\x58\x53\x65\x16\xe8\xdd\x1a\x74\x20\x0e\x55\x30\x33\x2c\x9d\x35\xe0\xde\x5e\xa6\xec\x28\x07\x47\xe0\xa3\x13\x5d\xf8\xec\x9d\x18\xb2\x6b\x3b\x92\x5a\x5b\xd3\x8f\xce\x8e\x7c\x6c\x5b\xef\x05\x3f\xce\x33\xd9\x91\xc7\x4a\x1c\x27\x5d\x6e\xb6\xbb\xb2\xb6\x65\xb5\xba\x9b\xc2\x84\xa2\x2f\xd8\x2b\x9c\x27\x52\xc6\xd5\xc3\x82\x96\x09\x76\x7e\x3b\xd3\x80\xf0\x89\x15\xda\xa4\x18\x42\x00\x64\x32\x78\x6d\xf0\x93\xd3\x74\x47\x2e\xcb\x19\x6d\xf0\x40\x98\x22\x28\xa3\xa5\x5b\x3a\x48\xf6\x85\xec\x6f\xa2\xf7\x03\x68\x2b\xae\x75\x80\x89\xed\x77\x84\x93\x8c\xd3\xdb\xa5\x91\x56\xf2\x8c\x6d\xf7\x11\x2f\xf0\x22\x31\x17\xa5\xbd\x54\x20\x22\x81\x55\x5f\x37\x45\x01\x35\x3b\x27\x31\x59\x4a\x57\x69\x3b\xbc\xc7\x6d\xf9\x9c\x9a\x62\xc6\x34\xd1\x12\xfa\x6a\x6b\x43\xab\x8a\x95\x21\xe0\x09\x11\x45\x82\x56\xe1\x82\xa1\x92\xe1\x88\x94\x95\xf4\x2d\x8e\x3c\x23\xce\xf1\x5a\x57\xd4\xb9\x95\x26\x8d\x28\x30\x8d\x91\x9b\x45\x88\x34\x59\x56\x4c\xc1\x0e\xad\xc1\xdb\x96\xae\xfa\x4c\x30\x68\x24\xb2\x29\x07\x64\x06\xe6\xbf\x40\x76\x3f\xa3\xd7\xac\x0d\xf8\x70\x1d\x49\x2d\x97\x0e\x05\x82\x33\xe0\x7a\x54\x60\x78\x80\x1a\x42\x2c\xb0\x8b\x57\x71\x4c\x38\x17\xb9\x55\x99\x78\x1f\xf6\xa3\x4d\xbf\xa5\xe2\x1c\x04\xd5\x46\x33\x13\x4a\x9f\xa7\x4b\xbc\xc4\x85\xd1\xd3\xc6\xc8\x39\x35\xbc\x00\x27\x1d\x9f\x44\x91\x62\x73\x8c\xbd\xb0\x94\xc6\xc7\xc3\xa3\x88\x04\x82\x9b\x3b\xb7\x4c\x64\x60\xb5\xb2\xf4\x08\x1b\x1f\xed\xb5\x3b\xe5\xee\xb6\xfa\x6d\x89\x44\xcf\x4c\xef\x79\xe9\xeb\x48\x13\x33\x53\x8c\x11\x3e\xaf\xa5\x32\x54\x18\x52\xf2\x49\xa8\x6c\xee\xe3\x0c\xd7\xe1\x44\x0e\x7b\xd0\x4f\x10\x5d\x1b\xad\x82\x1e\xd3\xaa\x92\x37\x9a\x98\x1b\x19\x5c\x0e\x6d\x88\x97\xab\xdb\x3c\xe8\x02\x93\x41\xc6\x71\xab\x5a\x56\x67\xf1\x2a\xe2\x43\x03\x4b\x7b\x6e\x58\x55\xd9\x7f\xd7\x71\xa3\xe4\x72\x26\x2b\xf7\x84\x4f\x05\x56\xa3\xe5\xda\x3b\xbf\x5c\x29\x95\xfd\x52\xc9\xba\x76\xe1\x0f\xf3\x83\xfc\x7b\x02\x31\xec\xea\x9a\x69\xc8\x35\xf1\xe5\x5d\x2c\x2a\x4c\x99\x60\x8a\x1a\x88\xb0\x73\xbd\x83\x41\x24\x59\x06\x32\xd5\xe9\x83\x23\xa3\x5d\xe4\x1e\xa4\xc3\xf0\xcb\xd5\x48\xe6\x9f\x71\xdf\x66\x78\x2f\x2e\x10\xdf\x3c\xdd\xc9\x80\x40\xd0\x5f\xe8\x80\xfc\xa0\x11\x2d\x02\xe7\x0d\xe5\x78\x36\xb2\xb2\xb9\x2a\xf5\x68\x68\xcb\x00\xd4\x51\x55\xcf\x22\xa8\x62\xbb\x54\xa8\x24\xd7\xdd\xeb\x0e\xbc\xef\x94\xd4\xfa\xa3\xff\xc9\x13\x82\xfe\x62\xb3\xba\x67\xbc\xd8\xac\x5e\x6c\x56\x2f\x36\x2b\x18\x2f\x36\xab\xe5\xf1\xa5\xd8\xac\x48\xcb\xae\x76\x95\x36\x7d\x8c\x55\x97\x2e\x83\x7d\xe4\x7d\x26\xe4\xa3\x34\x2e\xc8\x18\x34\x58\x7a\xa7\xd3\x89\x02\x87\xbe\xa1\x8b\x91\x60\xc6\x75\x63\xf1\xfe\xdd\x73\x0f\xd3\x5f\x95\xd5\x46\x9c\xe9\x23\xa2\x1b\x9e\x90\xf9\xa6\x40\xd1\x2a\x46\xa2\x68\xd6\xc6\x3c\xc3\xe7\xaf\xb4\x8b\x6c\xb5\xdf\x43\xe5\xc2\x78\x82\x82\x8d\xc8\x85\xcb\x77\x59\x5a\xfc\x76\xaf\x85\x92\x19\xca\x53\x3a\x5e\xc5\xc3\x4b\x43\x97\x77\x48\x67\x5b\x93\x76\x48\xce\x6b\x13\x6a\x2f\xed\x9a\x29\xb6\xad\xe5\x16\x25\xe9\xc6\xa9\xfd\xed\x03\x8f\x15\xe1\x73\x3a\x21\xe7\xac\x90\xd7\x4c\xe1\xe9\x9e\x7c\xae\xa9\xd0\x5c\x8a\xef\x28\xaf\xec\xd9\xfa\x33\x6e\xbd\xdd\xa4\xd1\x4c\x75\x43\x20\xa3\x10\x8d\x70\xc1\x1d\x22\x59\xec\x4d\x57\x50\x42\x93\x13\xbb\x9e\x4b\xa3\xab\x15\xbb\xe6\xb2\xd1\xbe\x00\x42\x63\x50\xd2\xd0\xc6\x59\x88\x66\x7c\x3a\xf3\x0f\xfb\xbc\x55\x88\xbb\x56\x65\xb8\xc4\xc9\x90\x69\x43\x4d\xa3\xbb\x55\xa8\x0b\x08\x3c\xdc\xa1\xe8\xab\x80\x47\xbb\xa3\x84\xe4\x14\xd7\xb1\x10\xc5\xae\x32\xc4\xf7\x58\x26\x03\xa7\x1e\xbb\xbb\xec\x2b\x7e\xb4\xd5\x4d\x0a\x39\xaf\x1b\xc3\xa2\x3b\xef\x6e\x57\x1e\x52\xff\x40\x64\xea\xb4\x81\x3a\x9c\x53\x41\xa7\x6c\x18\x40\x1b\xb6\xc5\x3e\x0e\xb3\x51\xfa\x2c\x68\x45\xb2\xf7\x00\x8a\xc7\xb3\x2b\xd2\xd1\x1d\xd9\xca\xed\x91\x47\x29\xb9\x47\xf2\x97\xdd\x23\x8f\x5f\x7a\x8f\x84\x4a\xa8\xbb\x4a\x80\xce\x1d\x7c\xcb\x24\xc8\x09\x19\xeb\x48\x50\x4e\x55\xd9\x09\x1b\x0e\x16\xae\x89\x9c\x73\x63\x98\xcf\x48\x0c\x24\x65\x40\xb8\xe9\x14\xc9\x74\x04\x14\x1c\x9c\x98\x3f\xc8\x3e\xd7\x15\x2f\xb8\x89\xba\xd8\xf5\x2c\x23\xb1\x3c\xc0\x80\x70\xc3\x35\x8a\xf2\x82\xf0\x79\x5d\xb1\x20\x81\x0f\x5d\x91\x21\xef\x84\x0b\x6f\x53\x40\x6e\x0a\x61\x9f\xc1\x15\x8b\x00\xbf\xd0\xed\x07\x8e\x17\xba\x7d\xc7\x78\xa1\xdb\xd9\xe9\x36\x96\x30\x4d\xaf\x08\xdc\xa1\xd7\x7e\x52\xd7\x84\x89\x8e\x59\x45\x7e\x69\x98\x5a\x10\xab\x60\xb5\xc5\x41\xa4\x25\x76\x9a\x97\x58\xc3\xc2\xc7\x74\xec\x90\x87\x20\xa7\x70\x0e\x31\x23\x27\x9f\xad\x7e\x0b\xcd\x29\xb2\x73\xc9\xe5\x05\xba\x2d\xb0\xf0\x14\xc2\xc9\xc4\x5a\x29\x26\x52\xc5\x9f\x80\x8a\x79\xf4\xf1\x38\xa7\x01\x23\x47\x9a\x0a\xc9\x97\xaa\x42\x1e\x49\xc8\x20\xe4\x68\xcd\x5e\xe3\x99\x84\x6f\x80\x8f\x87\xb4\xa6\xe0\xcd\x25\x57\x6c\x31\x70\xa9\x9e\xc4\x62\x20\xf5\x0f\x67\x02\x11\xf3\xe7\x51\xfc\xb9\x62\x18\xc7\x91\xd6\xb2\xb4\x3b\x32\x33\xc4\x9c\xae\x3a\x1c\x43\xfb\xda\xd9\xe6\xf2\x47\x94\x87\x47\x67\xe6\xf9\xc4\xbe\x6a\xae\xa9\x96\xee\x8c\xc5\x1d\x67\xdd\x46\x9c\xb7\x1f\x84\xa2\x94\x01\xcd\xa1\x60\x28\x10\xfc\x3c\xe8\x45\x72\x3b\x13\x70\xf8\x63\x7c\xa4\xcd\xca\x46\x60\x48\x04\x6b\xb7\xac\xe1\x15\x5b\xbc\xd2\xae\x1b\x89\x14\x7a\xc6\x6b\x10\xdf\x21\x98\x49\x4e\xb2\x5e\x71\x1c\x3f\x42\x3a\xac\x07\x06\xf9\xc6\xa9\x18\x90\x8f\xd2\xd8\x7f\x4e\xa0\x3c\x05\x90\x97\x63\xc9\xf4\x47\x69\xe0\x93\x9d\xc6\x02\xdc\xa4\xe7\x80\x03\x2e\xe6\x88\x43\xc4\x0f\xb0\x57\x2c\x63\x0d\x15\x0b\xdd\x59\xfb\xac\xa3\x80\x2f\x5c\x93\x53\x41\xa4\x72\x47\x94\x11\x1c\x30\xcd\x23\x48\x08\x8c\xf7\x77\xb7\x41\x81\xab\xa0\x71\x38\x22\x55\x07\x45\x9e\x04\x30\x07\x14\x78\x7d\xf0\x1b\xf0\x6e\x41\x2c\xac\x2f\x5d\x00\x75\xaf\x14\x35\x6c\x9a\x21\x88\xb7\x1d\x73\xa6\xa6\xd0\x2e\xa8\x98\xe5\xbe\x0d\xb9\x04\x2d\x1c\x19\xc5\x2d\x1c\x8f\x70\x65\x1f\x35\x5b\xf8\x49\x16\x00\xd9\xfd\x3d\x94\xf8\xd8\x55\xeb\x59\x04\x22\x4a\xb1\x73\x5a\x5b\x7a\xf3\x5f\x56\x58\x85\xeb\xf5\xdf\xa4\xa6\x5c\xe9\x11\x39\x22\x9a\x8b\x69\xc5\x3a\xdf\x39\x67\x71\x34\x4d\x26\xb0\x20\x96\xc5\xca\x87\xd7\xb4\x62\x58\xa9\x89\x0a\xc2\xd0\x5c\x05\x65\xba\x97\x14\xa3\x01\xb9\x99\x49\x8d\x92\x6f\x48\x31\xd8\xbb\x62\x8b\xbd\x41\x16\x57\x18\x89\xf9\xb3\x9d\xfa\x54\xec\xb5\xfd\xe0\x3a\x94\x28\xc8\xfe\x10\xf1\xb8\x07\xdf\xed\x3d\x8d\x3e\xf6\x0c\xcc\x55\xcf\x22\xc9\xc9\xb9\x1b\xdf\x55\x14\x43\x04\x76\xcd\xb9\xbe\x0c\xdf\x72\xc4\x0f\x14\xbc\x8f\x9e\x69\xc3\x3b\x5c\x9d\xb3\x9d\xf3\xe2\x42\xf5\xe2\x4c\xc5\x33\x32\x20\x17\x82\x75\x64\x8c\xe2\xe3\xc6\x30\xbd\xb3\x98\x70\x27\xa0\x51\x61\xb7\xd0\x46\xd5\x9e\xfc\x8f\xab\x7e\x10\xd5\xc0\xe3\x3a\x17\x72\x9c\x4e\x96\x63\x27\xa3\xb2\xba\x71\x5d\x04\xa9\x5c\x8d\xbd\x5b\x59\x78\xf6\x6f\x1a\x40\x75\xa5\xd4\xd3\xc3\xa9\xda\x60\x4d\xc5\x74\x2d\x31\xeb\x6c\xe5\xc6\x38\x41\x72\x46\x35\x44\xdd\x4f\x5c\x50\x54\xdd\xa8\x5a\x42\x45\x74\x2a\x6e\x5d\xc6\x2c\x75\x23\x5c\x91\x10\x5f\x84\x09\x2b\xce\x85\x9b\x6b\xef\x7b\x68\x83\x79\xb4\xd4\x00\x06\x43\x46\xa2\x66\x12\x42\xae\x7e\xb9\x64\x38\x7d\xba\x12\xda\x02\x42\xe9\x7b\x04\x11\xeb\x0b\xbe\xc2\x20\xda\x28\x98\xc6\x6a\xb6\x26\x8e\x99\x37\xb2\x0b\x3f\x14\x43\xc4\xce\x17\xc9\x9d\x54\x09\xe2\x61\x23\xda\xb0\x5d\xcf\xb3\x57\xa7\x98\x40\xbb\x8d\xb1\x6c\x84\x43\x59\xdf\xa8\xe3\x71\x37\xd0\xee\x88\xaf\x40\x19\xc0\x72\x17\x21\x2a\x5b\xc2\x27\x76\x5f\x5c\x7d\xc8\x1c\xfb\xd2\x89\xa8\x86\x88\x3d\x85\x87\x34\x5e\xac\xa6\x2c\xa4\x94\x0c\x4f\x14\xa0\x18\xe0\x39\xae\xde\x4a\xf7\x72\xe9\xcc\x0e\xb3\xb6\x28\x39\x63\x78\x53\xb5\xa1\x86\x41\xba\x90\x62\x93\x0a\x6b\xd2\xb9\xdd\x9b\xcb\x92\x4f\x5c\xd6\xc5\x45\x14\xbd\x34\xc0\x12\xa5\xae\x92\x68\xdc\x8b\x34\x19\xbc\x5c\xc7\x91\xd4\xa2\x65\xd8\x52\xc9\x21\xb0\x52\x96\xc1\x09\xba\x9c\x4f\xb2\x3a\x8e\x72\x35\x43\x79\xec\x64\x91\x6c\x3c\xfe\x43\x72\x2b\xf4\xc7\x62\xea\xd0\x51\xdb\x77\x0f\xe9\x74\x35\x6b\xf3\xc8\x1f\x49\xae\xfb\x11\x58\x88\x9c\x90\xef\x78\xc5\xf4\x42\x1b\x4c\x10\xe5\x73\xa4\xf3\x98\x42\x2b\x0d\xe1\xa2\xa8\x1a\x17\x70\x88\x54\xdf\xd2\xd9\x1d\x3b\xe1\xec\x62\x5b\x3b\xad\x97\xbb\x7d\xe6\xfa\xad\xe2\xbe\xcb\x94\x11\xd2\x9a\xc3\x6d\xca\x72\x5a\x49\xbb\x35\xe9\x55\xfa\xb2\xb3\x1b\x93\xa2\x6b\xaf\xfe\x8e\x8f\x15\x23\xef\x66\x54\x08\x56\x45\xad\x35\x5d\x78\x0b\x35\x86\x16\x33\xe4\x32\x94\x58\x0a\x57\x31\x2b\x25\xcc\xa4\x36\x64\x4e\x8b\x19\x17\xa1\x27\x97\x08\x2d\x66\xdb\x5a\xc9\xcf\xb0\x1f\xc0\x44\x5f\x5a\x00\x7a\x9e\x73\x2e\xe2\x82\x50\x78\x8c\x9d\xb4\x17\x1b\xa8\x8a\x91\x04\x42\xa5\x32\xf4\x23\xbc\x35\x77\x68\x97\xed\xa9\x14\x9c\x35\x5a\x53\x80\x9f\xc3\xb3\xfd\x57\x3e\xf9\x3c\x22\x7b\xec\xb3\xf9\xfd\xde\x80\xec\x7d\x9e\x68\xfb\x8f\x30\x13\xbd\x37\x22\xa7\xf3\x10\x4c\xc5\x45\x24\xde\x30\xf7\x03\x2b\x52\x45\xc2\x61\x42\x9b\x83\x4f\xc7\x9f\xde\x92\x99\xbc\x21\xa5\x24\x37\x0c\x02\xb8\xad\xa6\x00\x49\xbb\xda\x6b\x1c\xd1\xce\x40\x85\x8f\x42\xce\x6b\x25\xe7\x3c\x24\x6c\xba\x0b\xd0\x13\x8c\x64\xc2\x59\x35\x22\x0b\x9a\xbe\xaa\x1a\x61\x31\xed\x93\x6b\x9e\xfd\x96\x7c\xf7\x8e\x18\xaa\xa6\xcc\xd8\x35\x88\x68\xe6\x63\xa6\xfa\x36\xd9\xcd\x11\xe3\x83\x0d\x52\x60\x96\x6f\xbe\xee\x35\x87\x62\xb4\xfc\x24\xaa\xde\x6e\xd8\x5c\xf7\xda\xc3\xd1\xdd\xef\xe3\x28\xc6\x70\x42\x2b\xcd\xc8\xbe\x7d\xf0\xf0\x46\x71\xc3\x0e\x46\xe4\xdc\xff\x0a\x2a\x15\x80\xa8\x3e\x91\x29\xe2\x30\x26\xf8\xb8\x49\x35\x33\x58\x5e\x5a\x38\xf1\xf0\x83\xa5\x2d\xbd\x85\x64\x3c\xf0\xb1\x94\x15\xeb\x59\x7f\x1f\x71\xef\xa7\x9f\x3e\xf6\xb6\x62\x76\xf1\xbb\x9d\xef\x2e\x34\xbf\x91\xaa\x2a\x6f\x78\xe9\x72\xc4\xc8\xbe\x7d\xf8\x20\x0d\xe5\x53\xbc\x40\x89\x3e\x9f\xdc\x8d\x08\xf3\xb8\x5b\x6e\x6e\x78\x99\xe7\x44\x13\x2e\x20\x00\xd1\xc5\x01\x6f\xc3\xb2\x38\x40\x00\x09\x78\xc9\x84\xb1\x3c\x46\x69\xb2\x0f\xbf\xe8\x5f\xf2\xf4\x84\x63\x97\x1a\x58\x57\x2a\xcb\x45\xc6\x5c\xb4\x5d\xa4\x5a\xdc\xb4\x72\x94\xa5\xb7\xde\x39\xaa\x99\xc1\xc6\x0f\x50\x80\x52\x9a\x19\xd1\x7c\xde\x54\x86\x0a\x26\x1b\x5d\xf5\xae\x7c\xf2\x82\x9e\xb7\xc6\xa4\x62\x9f\x91\xf6\x6d\xab\x4d\x66\x0b\x41\x57\x40\x87\xa2\x22\x6d\x2b\xbf\x65\x09\xbd\xd7\x5a\x6d\x25\xab\xf2\x30\x48\xf8\xa1\x29\x0d\xfb\xcc\x0a\x57\xf0\xb6\xae\x9a\x29\xef\x55\xf4\x3f\x51\x88\x4f\x8b\x36\x1b\x3a\xbb\xf5\x16\xb4\x07\x5c\x38\x0b\x91\x6b\x5b\xda\x2d\x3b\x8b\xdc\x37\xae\x5b\x79\xe8\x3a\x9d\xd6\xfc\x2b\xf9\x52\xbe\x28\x4e\x5b\x53\x9c\xe2\x26\xd5\x11\x58\x25\xab\x99\xb0\x5c\x47\x90\xef\x5a\xf2\x82\xfb\xbc\x35\x34\x91\x70\xc6\x99\x24\x3b\x37\x59\x57\xac\x8b\x6c\x9f\x33\x59\x95\x9a\xb0\xcf\x46\x51\xcb\x78\xe7\x96\xc5\x86\xdf\x4c\x08\x15\x8b\x51\x9a\x90\x97\xe4\xc3\xcf\xeb\xb7\x4f\x3e\x99\xdd\xd6\x91\xca\x17\x1d\x29\x1e\x9a\x15\x8a\x99\x84\x9a\x73\xb9\x4e\x2b\x00\xd2\x3d\xae\xce\xc7\xb7\x2c\xad\xf8\xad\xaf\x68\xe1\x62\x70\x52\x0c\xc8\x9a\x09\xcd\x0d\xbf\xee\xb4\x53\x85\x9a\xb1\x54\xeb\x60\x90\x04\x71\xc6\x11\x40\xdd\x29\xe7\xda\x7b\x61\x74\x86\xf2\x09\x11\x72\xe9\xad\xe2\x3a\x1f\x21\xee\xb2\xf3\x48\xef\x45\x43\xd0\xd2\x1c\x9b\x91\x53\x01\xd5\x21\x71\xf2\x01\x14\xa6\xc3\xff\xc6\xb8\x25\xbb\x07\x91\x59\x16\x76\xa1\xff\x4e\xbb\xdd\xdb\x1e\xd9\xcc\x11\x9f\x9f\x5a\xce\x27\xa7\x13\xe9\x63\x24\xda\xf9\x4a\x2e\x69\x7e\x86\x6e\xdf\x3d\x36\x99\xb0\xc2\xde\x0d\x68\xf6\xe7\xfb\xd6\x59\xc5\xb2\x6c\xd0\xdd\xe7\xab\xb7\x76\xab\xaf\xa6\xd6\x29\x8c\xc2\x08\xda\x50\xdf\x53\xa1\x0d\x85\x82\x9a\xf0\xc6\x56\x4e\xb3\xc2\x93\x6b\xd7\xe8\xae\x13\x06\x45\xf8\xb2\x9c\x89\x40\xcc\xad\x18\x56\x30\x65\x6f\x4c\xb5\x20\x37\x4a\xa6\x66\xb8\xa1\xf9\xf8\xa8\x2c\x5d\x95\x2f\xd7\x8e\x11\xab\xc6\x8e\x08\xad\xf9\x8f\x4c\x59\xfd\x6a\x00\x85\xb4\x06\xa4\xe1\xe5\x5f\x92\x56\x7c\xa0\xbb\x59\x5e\x33\x75\xcd\xd9\xcd\xa1\x2b\x28\x34\xb4\xdb\x3b\x74\x35\x1a\x0f\xc1\xc4\x75\xf8\x5b\xf8\x27\xc3\x3e\x1c\x2b\x59\x93\x9f\x2d\x38\xe3\x86\x57\x25\x53\x6f\x1d\xab\xfe\xd9\xb5\xaf\x0b\x21\x11\xc3\x29\x13\x10\x93\x20\x5e\x19\x68\xb9\x0f\x5d\x19\xdd\xfb\x4c\xb9\x99\x35\xe3\x51\x21\xe7\xd1\xab\x0d\x35\x9f\xea\xc3\x68\xee\x43\xae\x75\xc3\xf4\xe1\x37\x7f\xfe\x97\x3f\xa6\xf7\xff\x4a\xf6\x5a\xba\x37\x7d\x4b\xf6\xf6\x72\x18\x32\x92\xc3\x22\x27\xd0\xe2\xb5\x97\xfe\xd9\x75\x13\xe2\x3c\x4b\xbe\x42\xf7\xa1\x33\x45\x6c\xe2\x1b\x74\x3c\x36\x52\x44\x2c\x91\xf3\x13\x39\xcc\x20\xda\x62\x6b\x5b\x89\xab\x11\x3d\x45\x81\x2d\x7b\x0e\x4b\x6a\xa8\x66\x26\xc5\x83\x9d\x8b\xad\x44\xa0\x58\x0e\x10\x73\x18\xf7\x15\x04\xc2\x31\x28\x21\xee\x9b\x6e\x92\xe1\xbf\x39\x33\x83\xe8\x3c\x39\x91\xca\x1f\x59\x7f\xa9\x01\x4b\x45\x41\x1b\x1d\x4c\x38\xc6\xb5\x4b\x8b\x60\x45\x42\x0b\xe4\xe4\x8b\xec\xde\xf2\x87\x1f\x4e\x8f\xf3\x98\x6d\xda\xf9\xbc\x15\x02\xfe\xbb\xbb\xfd\xee\x62\x40\x00\x1b\xff\xa5\x89\x4d\xce\xf6\xc9\xf6\xb2\xb9\xe7\xb7\xb1\x3b\xd3\x82\xb5\x11\x11\xc7\x5c\x5f\x6d\xcb\x36\x7a\x0b\x90\x2e\x5d\xfa\xeb\xbb\x13\xe2\x3e\x5d\x17\xbe\xd0\x6b\xe9\xa7\x09\x79\x48\x8c\x27\xd3\xbf\x9d\x16\xac\x0d\x45\x2c\xb9\xbe\x7a\x7e\x26\xdb\xba\xfc\xd8\xaf\xf4\xee\x97\x16\xf0\xb1\x6c\x57\x74\x84\xc3\x71\x5d\x40\xed\x85\x6c\xc8\x8d\xeb\x89\x9e\x68\xcf\xbc\xe4\xf5\x5b\x72\x22\x74\xa3\x58\x9b\x37\xbc\x0c\x82\x55\x65\x1f\xdd\xba\x09\xdd\xff\xf5\xdb\xad\x07\x87\xec\xc0\x55\xc4\xf1\x65\x44\xa9\xd4\x54\x19\xb0\x72\x6e\xfb\x86\x05\x40\x3c\x5b\x8e\x3e\x10\x8f\x79\xc5\x4e\x27\xbe\xc0\x54\x37\x4a\x9d\xeb\x30\x79\x1b\xc2\x0d\x12\x58\x8e\x6b\xf4\x9d\x0c\x92\xfa\x61\xc9\xae\x0f\x75\x49\xdf\x0c\xe0\xb5\x7c\x81\xcc\xee\x1e\x50\x4d\xf6\xde\xec\xf5\x5f\xf9\x82\xcf\x79\x45\x55\x85\x0d\x63\x42\x27\x9e\x30\xbf\x95\x22\x3d\x20\x90\x93\xf7\x7a\x8f\xec\x4b\x05\x10\x15\x54\x90\x8a\xf9\xe6\x32\x8e\xa0\x2f\xd0\x18\x70\xf0\xec\x6f\xf2\x6e\x44\x40\x21\x7f\xdd\xfa\x25\x2c\xbd\x4e\xe2\xe4\xde\xd8\xaf\x79\x76\xdc\x8a\x70\x5c\x58\xb9\x6e\x44\x7e\x70\xd2\x95\x93\x8f\x11\x6b\xed\x61\xf8\x27\xbe\x0c\xec\xf8\x92\xdc\x36\x4b\x0e\x98\x47\x75\xa4\x90\xdb\xb1\x73\x5f\x08\x46\xf4\x75\x0e\x4d\xb9\x39\x67\xb5\xdc\x9a\xae\x86\xcb\x2f\x05\xb1\x70\x63\x3f\x90\x9a\x1b\xa9\x16\x84\x1a\x42\x91\x33\x14\x4d\x45\x15\x51\x0c\xc3\x51\xfa\x9d\xdc\xf1\xc9\xd9\xf9\xc9\xbb\xa3\xcb\x93\xe3\xb7\xe4\xaf\x6e\x75\x1e\x5b\x16\x46\xe4\x52\xb6\x31\x2f\x71\x81\x47\x67\x76\x0e\xf0\x0d\x1c\x37\xee\xe9\x93\x3b\xb1\xfc\xea\x98\x2b\x4b\xa5\x21\x05\xfe\x54\x70\xf3\x2e\x2c\x86\xb5\xa6\x2a\x29\x5c\x2e\x8e\x5d\xd1\x85\xdd\x4c\xb9\x71\xfd\x87\x11\x00\xfb\xb5\x9f\xad\x17\x28\x00\x01\xd0\x54\x59\xbe\xd2\xed\x1b\x3f\xc3\x58\x9e\x16\x71\xb6\x61\xd3\xe3\x0a\x2a\x28\x6d\x9d\xba\x06\x40\x42\x07\x0d\x8c\x5c\x6d\x3f\x4f\x13\x1c\x21\xae\x45\xc8\xe0\x8c\x25\x52\x11\x6d\xa8\x32\x78\x47\x5e\x8d\x46\xaf\x46\x20\xca\xbe\x1a\xbd\xf2\xfa\x60\x15\x72\x85\x9d\xb4\xd7\x02\xe3\x73\x25\x53\xaa\x39\x74\xa9\xc6\x88\x90\x4f\xbe\x24\x2a\xf4\xfa\x5c\x4a\x57\x0e\x99\xc8\x55\x15\xde\x01\x3a\xd2\x74\x69\x4f\x82\xe7\x13\xfc\xb7\xcd\x38\x7e\x49\x97\xf5\x3c\xe5\xd7\xae\x55\xde\xd6\xc2\x6a\xda\x57\xcc\x82\xa9\xf1\x8e\x39\x23\xe6\xf9\xfb\xed\xbd\x1b\x92\xee\x4c\x6f\xe6\xf8\x80\x7b\xaf\x42\xce\xe7\xdc\x90\x19\xd5\xb3\xd0\xb7\xa8\xcd\x3f\x4e\x63\x4d\xa9\x06\xd8\xaa\xd1\x86\xa9\x49\x2f\xda\x95\x85\x99\x7b\x00\x96\x0c\xae\xe1\x63\x57\xb0\x59\xb4\x16\x21\x60\x72\x7a\x46\x15\xb3\x4f\xd6\xc0\x7d\x2a\x3e\x61\x86\xf7\xbd\x1c\x2b\xa4\x32\xe6\xb4\x5c\xdf\x28\xc5\x49\x60\x87\x01\xde\xc3\xf3\x93\xa3\xe3\x0f\x27\xa3\x79\x1f\xb7\xc2\x96\xf9\x1d\x13\x65\x2d\x79\xdf\x5e\x15\x43\x52\x53\xd3\xa7\x23\x6c\x2a\xa7\x0c\x60\x6f\x9b\x53\x06\x40\xfc\x0d\xf7\x1f\xa0\xae\x09\x08\xea\x7a\xd7\x44\x98\x6c\x64\x2d\x2b\x39\x4d\x68\x27\x9a\x86\xa7\xbf\xc5\x0a\x11\x43\x3a\xac\xe5\xd6\x7c\x61\x16\x75\xb6\x7d\x7c\x16\x06\x7f\x72\xed\xf1\x04\x73\x92\x49\xa8\xd6\xf6\x05\x9c\xd0\xb3\x50\xf6\x6f\x1d\x1b\xda\xe9\x81\x59\xb0\x12\xc5\x26\x3b\xc1\x10\x6a\x6e\xd5\x4c\xcd\x39\xd6\x05\xdb\x55\x2b\xc0\x56\xb0\xa4\xaf\x01\xc0\xb2\xe1\xb3\x9e\x17\x39\x07\x7a\xf8\xf5\xbb\x32\x43\xad\xd8\x10\x8a\x6f\x58\x75\x77\xc2\x2b\x28\x24\xd4\x8a\xd2\x91\x08\xd1\x6b\x51\xef\x98\xf5\x9e\x5f\x9c\xb9\x5a\x2c\x3b\x68\x5b\x45\x38\x38\xe0\xb1\x6d\x6f\x55\xf5\x4b\x86\x82\x5a\x4c\x56\x6e\x74\x3e\x18\x3a\x85\x17\x96\xca\xc5\x86\xd5\x8a\x5f\xf3\x8a\x4d\x2d\x08\x33\x2e\xa6\xba\xed\x20\xe5\xe2\xe3\x7a\x2d\x0b\x35\xa2\x58\x2b\x76\x85\x78\x9b\x0f\x10\xed\x16\x9a\x2b\xe0\xd5\xfc\xf8\xe9\x12\xe3\xad\xcc\x8c\xf7\xbc\x64\x89\xb6\x31\x0b\x64\x4f\xc1\x84\x90\xe1\xb0\x1f\x26\x5e\x7e\x3a\xfe\xb4\xff\x9f\x52\x30\x5d\x56\x07\xe4\x27\xe6\xf6\x00\xaa\x1a\x19\xc5\x0b\x43\x6e\x66\x12\x9c\x0f\x8d\x76\xfb\xd8\x62\x24\x50\x2b\x4c\xca\x73\x4f\x1d\xda\x27\x85\xec\x89\xa0\x20\x29\x77\xd6\xe0\x56\x44\xd6\xa4\x8d\x62\x7f\x86\xc6\x99\x2d\x09\x9b\x3b\x23\xa8\xf8\xa8\x9e\x55\x84\x2c\xc9\x63\x88\xce\x39\x14\x85\x28\xd1\x8b\x79\xc5\xc5\x15\x34\xa4\x71\xcc\xd6\x35\x77\x64\xc4\x7e\xe1\xc9\x9b\x62\xb4\xca\x2f\x24\x3d\xd9\x45\xcf\x20\x20\x99\x1d\x88\xe5\x80\x98\x09\xcb\x13\xfe\xdd\xb3\x42\x74\x75\x64\x91\x6e\x7a\x47\x9a\x3e\xeb\xa3\xe5\xba\xd0\x7c\x5b\x12\x0d\x2c\xde\x11\x67\x04\x39\xbd\x78\x77\x71\xfa\x25\x86\x9d\xdd\x25\xeb\xc2\x26\x3c\x67\xbb\x0a\xff\xa5\x9f\xe9\x77\x48\xaa\xa6\xef\x2f\xd1\x48\x7f\x26\x95\xa1\xd5\x16\xd8\x64\x31\xa3\xf5\x51\x63\x66\xc7\x5c\x43\x67\xd5\x3c\x6a\xe3\xad\x59\xa3\xba\x67\x0c\x84\x5e\x17\x2c\x46\xb8\xbf\x24\xee\xb9\x77\xff\x7e\x74\x46\x68\x63\x51\xd8\xf0\x02\x72\xb4\xb6\xa2\x22\x91\x68\x6f\x2e\xb0\x26\x75\xd6\x9d\x71\x73\xde\xb3\x2f\xfe\xa9\x5d\xda\x95\x5d\x0b\x86\x5c\x15\x8d\xf8\x12\x10\xf9\xac\x02\x22\x81\x71\xfc\xca\x83\x20\xb9\xe0\x86\x53\x23\xd5\x2e\xc4\x60\x75\x80\x09\x6e\xb0\x46\x1b\x39\x77\x94\xe9\xd4\x3f\x01\x99\x23\x49\x7a\xcc\xad\xc5\x5a\xdf\x1a\xd8\x01\x01\x3b\x4e\x85\x61\x6a\x42\x0b\xb6\x54\xe1\x66\x40\x04\xbb\x71\x30\x71\xff\x4c\x6f\x68\xfe\xd5\xb9\xcc\x6b\x60\xc7\xff\xf6\xf6\x5f\xa3\x88\xcb\x7f\x0b\x1e\x6b\x57\xa9\x39\xf8\x02\x0b\x29\x04\x2b\xcc\xb6\x7c\x80\x76\xf0\x5f\xf2\xb0\x27\xfe\x8b\x58\x8a\x1e\xc0\xad\xfd\x5f\x0d\xad\xf0\x48\x52\x8e\x3b\xfd\x35\x3b\xa8\xb0\xf5\x5b\xd2\x45\x4c\xb7\x6f\x01\x0b\x31\xa7\x0a\x18\x44\xa3\x19\xa8\x04\xb8\x99\x46\x51\xa1\x2d\x8a\xe5\x31\x66\xbf\x72\xd1\xc2\xaf\xc8\xbe\x29\xea\xde\xc1\xb0\x3b\x53\x6c\xb0\x6a\x44\xac\x49\xe1\x9e\x5d\x22\x36\xbe\x0f\xc5\x06\xd3\x5e\x73\xeb\xa1\xb6\x40\x60\xb6\xee\x08\x75\x60\x04\xd4\x8d\xb7\x1a\x55\x12\xf2\x9e\x6b\x83\xe5\x63\xf0\x61\x48\x17\xc7\x82\x65\x56\xc7\x3d\x23\x52\x11\x5e\xff\x5f\x5a\x96\xea\x2d\x4a\xae\xce\x32\x25\x55\xff\xea\x05\x5c\x3b\xdb\x38\x14\x2e\xf0\xd1\xf0\xfb\x66\x51\xf3\x82\x56\xd5\x82\x5c\xbe\x3b\x83\x15\x34\xf9\xf3\x1f\x5f\x83\xd2\xfb\xcd\xd7\x7f\x7c\x9d\x88\xfb\x2f\xf5\xce\x96\xc6\xb3\x70\x25\x3e\x83\xb8\xe1\x5d\xab\xe5\xd2\xa9\xbc\x02\x8d\x3c\xac\x7e\x79\x81\x85\x47\xac\x54\xe3\xf8\x14\x12\x02\x7b\xbb\x82\x8c\x96\x53\x0b\x7d\x29\xf1\x11\x8d\x97\x12\x1f\x2f\x25\x3e\xee\x19\x2f\x25\x3e\x5e\x4a\x7c\x6c\x3a\x62\xb3\xf2\xb6\xd9\x77\x0c\x0b\xb4\x9d\xb8\x2d\x66\xa2\x84\x79\xf6\xa5\x4b\x98\x3d\x51\xad\x2f\x9f\xca\x71\x80\x71\xf6\x5d\x4a\xf9\xd0\xb6\x2a\xe6\xf1\xc7\x8b\xff\xfb\xfe\xe8\xdb\x93\xf7\xb0\xab\x2e\xc9\xcf\xd2\x26\x67\xa9\x7b\xaa\x0a\x09\x8f\x4a\x1f\xd3\xce\x7b\x7b\xf1\xdc\x62\x29\x92\x5b\x90\x8f\xdf\x5d\x3c\x30\x88\x7b\x1b\xd1\x43\x62\xd2\xff\x94\x9e\x5b\x68\x8c\xfd\xa9\x66\x6a\x3b\xe5\x8b\x77\x26\xae\xc6\xbb\xd2\xd9\xe7\xae\x93\xc5\xe2\x2b\xee\xce\xd6\xfc\x19\xfd\x90\x91\xfc\x6a\xa2\x7f\xed\x11\xe1\xb1\x3d\xfb\xb8\xdf\xa7\x44\x8b\x34\x03\x82\xca\x55\x75\x3c\xa9\x12\xac\x8a\x0a\x96\x5b\x46\x82\xe2\x85\xb2\x62\x9e\x15\xf0\x98\xd6\x5e\xd8\xf8\xf5\xde\xe3\x7a\x55\xfb\xc5\x6d\x09\x04\x2b\x81\x71\x0d\x19\x7d\x9f\xc9\x28\x88\xbb\x53\xc7\xb7\x5f\x64\xd3\x1d\x8d\x3c\x51\xf8\xd0\xd4\xb9\xe3\x74\x4d\x8b\x7c\xe9\x62\x3d\xbb\x1c\x2f\x37\xf7\x84\x06\x70\xcf\x50\x10\x01\xb8\xb7\x54\x5c\x2b\xac\xbd\x6d\xe2\x14\x00\x59\x6e\xa8\x40\x1f\x82\x92\x84\x6a\xaf\xc5\xb8\xcc\xfd\x0c\x9d\x17\x76\x12\x67\xc9\x17\x29\xaf\xfc\xf4\xc4\xde\x85\x6d\x7a\x16\xea\x99\x34\x52\x64\xae\xe0\xb8\x6a\xd2\x2e\x8f\x38\x83\x27\xde\xb5\x7d\x90\x5b\x94\xc4\xba\x3d\x21\x3a\x96\x8a\x32\xc8\x86\x52\xf8\x98\xd7\x6e\xc8\xeb\xf3\xa3\xb6\x75\x79\x7a\xbc\x05\x42\xfb\x1c\x02\xf7\xbe\xd0\xee\x2b\x4f\x14\x88\x97\x9e\xdd\x5b\x66\x2a\x71\x6b\x27\xf2\x67\x7c\x7a\xec\x74\x75\x5f\xbf\x56\x3b\x0a\x40\xee\x26\x01\x5b\x11\xbb\xa5\x32\x37\x52\xe5\xea\xf2\xd5\x9d\x6e\x29\xd5\xd1\x7d\x77\xab\x50\xf6\x97\x49\xf0\xf0\x2d\x7f\xcd\x44\xef\x02\x88\x5e\x84\x03\xeb\x88\xdf\x97\x40\xfb\x9e\x0f\xcd\xdb\x39\x09\xf4\xa5\x8d\x51\x67\x78\xe2\x91\xe5\x7c\xfc\x64\xce\xed\x64\x71\xb3\xe5\x4a\x14\x1c\x90\x11\x5d\xde\x0a\x17\x52\xd2\x52\xe9\x7e\xc4\xb6\xcb\x80\xfc\x4c\x18\x9c\x06\x81\x3d\xb4\xaa\xec\xc9\x4a\xd1\xf6\x89\xd4\xbe\x11\xd0\x80\x14\x52\x4c\xf8\x74\x4e\x6b\x3d\x00\x4e\x54\xca\x1b\x71\x43\x55\x49\x8e\xce\x4e\x9f\x9e\xeb\x24\x17\x66\xc3\x7b\xf4\x41\x96\x5b\xa7\xff\x11\x28\x90\xd7\x0f\xf9\x06\xf6\x8f\x31\x37\x1a\x0b\x04\x40\xba\xbe\x89\x4d\xde\x56\x00\x08\xa1\xe6\x96\x9e\x5b\xda\xed\x66\xca\x20\x1f\x0b\x22\x0b\x43\x2b\x17\x66\x33\x66\xe6\x86\x31\x41\x5e\xbf\x7e\x8d\xde\xee\xd7\x7f\xfa\xd3\x9f\x88\xc5\x18\x52\xb2\x82\xcf\x6f\x3f\x08\x4f\xfd\xe1\xcd\x9b\xfe\xa0\xfc\xef\xa3\x0f\xef\x09\x2d\xc0\x62\x81\xdd\x6b\x11\x22\x40\xbd\x78\x51\x3d\x20\xff\xf3\xe2\xd3\x47\x2f\x87\xe8\xa5\x6f\x01\xb3\xc3\x76\x26\x68\xe4\x51\xd6\x7d\xec\x8f\xa6\x66\x06\xa7\x26\xa4\x21\x14\xc2\xa8\x3c\x1f\xe5\xda\xd3\xcb\x84\x6c\x22\x68\x31\xc6\xa7\x33\x38\x16\x0e\xa1\x32\x93\x0a\x4a\x0f\x70\xbb\x25\x10\xa5\xe0\x3b\x12\x62\x65\x08\x80\x21\x88\x10\xbd\x57\xb6\x5b\x36\x20\x15\xbf\x62\x64\xa2\xff\xaa\x64\x53\x0f\x7c\xfe\xa8\xa5\x0e\x4d\x65\xa0\xf2\xc1\x98\x39\x20\x5a\x8c\xd5\x2c\xb1\x3b\xe4\xb6\xe3\xaf\x1d\xe9\xcb\x13\x4d\xe9\xc8\xa8\x53\x77\x2a\x6e\x25\xab\x49\xa8\x47\x84\x54\xd8\x9e\x5e\xd2\x8e\x6d\x31\x38\xb9\xf3\xb6\x67\xe1\x7d\x10\x19\xb1\x39\x5e\xc4\x6c\x68\x25\xc5\x34\xc6\xdd\x56\xf6\xf4\xf9\x78\x8b\x3a\x21\xe6\x2c\x43\xec\x68\x9e\xe8\x51\x42\x0a\x2c\xee\x73\xa9\x1a\x6d\xbe\x6d\x44\x59\x25\x45\x93\xe6\x8d\x27\x25\xe4\xdd\x2d\xe8\x30\x18\xd3\x05\x6c\x80\x83\xa6\x28\x98\x46\xb4\xfd\x79\x64\x45\xf1\x91\x69\x9f\xfe\x19\x63\x19\x13\xa1\x90\x93\x55\x80\xb8\x28\x1b\x4b\xee\xa8\x20\xb4\x31\x72\xd8\xd4\x25\x0d\xa5\x7f\x46\xbf\xf9\x4d\xe2\xba\x47\x55\x3d\xa3\x03\x32\xa5\x91\xd2\x73\x1b\x90\x08\x9b\x27\x8c\x9a\x46\x31\xf8\x45\xfa\xf2\x6b\xde\xd9\xd2\x54\x17\xdf\x06\x2d\xdc\xab\xc0\x50\x04\x9d\xb3\x81\x65\xba\x08\x6f\x22\x08\x4b\x6d\xe4\x35\x9f\x0a\xa6\xd0\xa9\x61\xa9\x3c\x25\x15\x1d\xb3\xca\x01\x20\x55\xfa\x3b\x7f\x8f\xd6\x0a\x2b\xc3\x58\x0a\xad\x09\x9d\x4e\x15\xd3\x9a\x5f\x5b\xde\xa9\xe6\xb4\xe2\xff\x68\xbb\xda\xcf\x18\x39\x3b\xf9\x00\x81\xa1\xa0\x11\x5b\xf5\xc6\xb0\xfe\xb5\x57\x71\x84\xaa\xc6\x16\xc3\x5b\x2d\x78\x44\xc8\x89\x96\x06\xfa\xa4\xdb\x55\xdd\x61\x6b\xa2\x9b\x62\x46\xa8\xc6\xac\xad\xe1\xb8\x92\x45\xff\x6e\x1c\x38\x0a\x39\x9f\x33\x5f\x17\x08\x26\x24\x33\x46\x4b\xa6\xb0\xd3\xa6\x55\x0b\xea\x9a\x95\x23\x42\xde\x59\x0a\x34\xe1\x05\x35\x0c\xbf\x2b\x59\xd9\x58\xa5\x19\x4a\x52\x27\x82\x71\x39\x63\x44\xaa\x92\x59\x25\xc4\xee\x77\x11\x2f\x16\x49\x37\x50\x68\x8b\xdb\xf5\xc7\xdc\x28\xaa\x16\x28\x03\xb8\xb3\x4c\x04\xc2\x32\x87\x62\x46\xc5\x14\x45\x5e\x80\x87\x48\xe8\x4c\xde\xbb\xd8\xa7\x1f\x59\xf8\x00\x49\xb6\x6e\xb5\x23\x21\x9e\xcb\x8f\x3c\x6c\xc9\x0e\xb8\xdb\x17\xee\x6a\xa7\x4e\x96\x9b\x33\xd9\x81\xb0\x81\x42\x7a\x9b\x56\x6a\x2f\x5b\x98\x62\x86\x62\xf6\x12\xad\x22\x04\x2d\x20\x34\x2d\x76\x1d\x07\xa6\x46\x40\xc1\x68\xa0\x91\x21\x0f\x99\x99\x91\x55\x98\x4c\x43\xab\x6a\x31\x64\x9f\x2d\xbf\xb7\xc4\x0c\x84\x1b\xa8\xe5\x0c\x09\xcc\x8d\xd0\xcc\x0c\x32\x00\x02\x44\xa8\x56\xcc\x60\xe7\xbb\x3d\x7c\x7f\x21\xa1\x2c\xdc\x1e\x2e\x66\x95\xc4\x71\x63\x30\x47\x62\xb0\xfa\x27\x39\xf6\xe4\x9a\xa9\x85\x5b\x37\x79\xba\x6c\x57\x95\x64\xbd\x23\x04\x28\x94\x29\x66\x27\x9f\x6b\x85\x95\x36\xb2\xcc\xb9\x74\x5d\x96\x97\xc0\x7a\x5d\x5e\x4d\xe8\x22\xb6\x27\x46\xc0\x41\x30\x28\x3e\xfe\x04\xb8\xc4\xd1\xc7\xe3\x74\xf6\x80\x23\x5d\xb5\xe8\x8e\x44\x45\xa3\x3b\xf2\xd3\x1c\x1c\x47\x6b\xf6\xdc\xd5\x52\xf3\xdf\x60\x3f\x06\xdf\x4a\xdb\xdb\x22\x28\xb9\x62\x8e\x4d\x52\xe1\x8c\xe8\xee\xe1\x6c\x40\x2a\x56\x01\xa7\xb6\x6c\xf3\x8a\x2d\x60\x31\x5c\x3f\xcf\xc9\x67\xbe\x94\x38\x72\x71\xd2\x76\x0c\xed\xcb\x67\x9c\xcd\x1f\x56\xa6\x29\xf3\xd2\x22\x1c\x57\xac\xb7\x2b\x62\xd5\xe8\xdc\x22\x8b\x49\xde\x4c\x01\x77\xc0\x7e\x10\x4a\xd8\x04\xb4\xa7\xd0\xb8\x41\x13\x23\x73\x21\x1b\xc9\x97\x6d\xd5\x1d\xfe\x40\x1f\x6d\xcb\x32\x12\x1e\x12\xc1\xdb\xf5\x07\x5f\xb1\xc5\x2b\x8d\x77\xde\x72\x88\x19\xaf\xb1\x65\xb2\x65\xf6\x72\x92\xf9\xe2\xe3\xf8\x91\x56\xbc\x0c\xe0\x20\x67\x39\x15\x03\xf2\x51\x1a\xfb\xcf\xc9\x67\xae\x9d\x0e\x73\x2c\x99\xfe\x28\x0d\x7c\xb2\xf3\xf8\x80\x5b\xf5\x5c\xb0\xc1\xd9\xaf\x39\x24\xda\x00\x1b\x06\x4d\x1d\xb6\xc4\x9f\xba\x2f\xf5\x19\x30\x87\x6b\x72\x0a\xcd\x57\xf0\xa8\xb2\x02\x04\x59\x5e\x08\x14\x82\x33\x77\xee\x02\x21\xc5\xd0\x27\xef\xde\x86\xc7\x61\x8b\x54\x1d\x64\x79\x22\xd0\x1c\x58\x60\x47\xc7\x6f\x38\xe4\x30\x55\xb4\x60\x25\x29\x1b\xd8\x4c\x6a\x77\x95\x1a\x36\xed\x99\x4f\x79\xd7\x98\x33\x35\x05\x17\x41\x91\x50\x50\xf5\xf6\xc8\x2d\x98\xe1\xc8\x2a\x9e\xe1\x78\x94\x4b\xfc\x28\xc5\x2c\x9e\x7c\x09\x90\xfb\xdf\x5b\x36\xfb\x18\x5a\x45\x36\x4a\x14\x81\x89\xd2\xef\x9c\xd6\x96\x0a\xfd\x97\x15\x72\xe1\xc2\xfd\x37\xa9\x29\x57\x7a\x44\x8e\x88\xe6\x62\x5a\xb1\xce\x77\xce\x8e\x14\x4d\x93\x0d\xb0\x1a\xf2\xbb\x7e\x69\xf8\x35\xad\x18\x96\xee\xa3\x82\xb0\x0a\x45\x75\x39\xb9\xa5\x5a\x0d\xc8\xcd\x4c\x6a\x94\x98\x43\xe5\x83\xbd\x2b\xb6\xd8\x1b\x64\x30\xa8\xfa\x11\x53\xbe\xbd\x53\xb1\xd7\x7a\xcd\x3a\xf4\x29\xe8\x0d\x90\xcb\xb4\x07\xdf\xed\x3d\x95\x4e\x97\x51\xae\xa7\x65\x09\xfd\x59\x69\x75\x96\x5d\xdc\xcd\x4a\x3e\xf2\x67\xd1\xb7\x23\xb5\x54\x08\x8e\xc7\x33\xa3\xf9\x9b\xb9\xc2\xef\x30\x5e\x38\x6c\xf0\x26\xab\xdb\x16\xad\x0c\x80\x80\x4d\x2c\xb2\x9f\xd9\x2b\xd1\x31\x42\xe6\x32\x23\x65\x41\x16\xf4\xa7\xf7\x2f\x8d\xd0\x8e\xfc\x47\x6a\xe5\x2b\xd5\xb0\x01\x29\xa5\x78\x65\x9c\x0b\xa1\x96\x25\x36\xdb\x6b\x6a\x5f\xff\x20\xa4\x5a\x95\x2b\x4e\x7d\x5f\x1f\x64\x00\x85\x2a\x66\x41\xa0\xd7\x94\x57\x74\x5c\x79\x7b\x27\xa4\xb5\xa0\xb3\x0a\x6a\x4d\xfb\x64\x99\x55\x80\xa4\xd6\x8f\x71\x80\xb8\x2a\x32\x42\x02\x17\x80\x36\x21\x31\x30\x2d\xe2\x45\x20\x75\x1d\x60\x19\xa0\x58\x87\xde\xc0\x3b\xdb\x5a\x37\x68\xba\xfd\x07\x53\x32\xc3\xba\x2b\x0c\xe4\xb9\x6e\x53\x4a\x64\x5e\x3b\x52\x92\xc2\xdb\xd1\xb9\x4a\xe7\xa0\x0c\x5f\xbb\xf0\x1b\x28\xd9\x1a\x95\xf4\x55\x12\x11\x01\x62\x22\xe1\x8b\x31\xec\xcb\x4e\x11\x99\x16\x5d\x76\x91\xcc\x3c\xd0\x01\x13\xb9\x8f\x73\xc8\x29\xf7\x78\x55\x2e\x5d\x23\x1e\xec\x94\x33\x01\x28\xbd\xa7\xfc\x71\x2e\x54\xa8\xee\xda\x08\x2c\x74\x8a\x51\x68\xf9\x1c\xb2\xd9\x50\x0b\xa3\x34\x3f\xd0\x3a\x63\xb0\x49\x98\x13\x72\x0c\xd5\x1c\x89\x26\x1d\xcb\xc6\xf8\x12\xb7\xee\xfb\x92\x1a\x6a\x6f\x9e\x0b\xf8\xd9\x0d\x17\x6e\x3e\x3b\x6c\x26\x15\x39\xff\x75\xc5\x18\xde\x6e\xcc\xfc\x80\x30\x5a\xcc\xac\xb6\x33\xc4\xe0\x4c\xab\xa7\x79\x85\xec\xd8\x1e\x14\x2a\x41\x72\x59\x60\xc8\x71\x85\x02\x46\xf8\x8b\x13\xc5\x1b\xfb\x20\x0c\x9f\xde\xa2\x5d\x4a\x82\x53\xcf\x44\x9b\x64\x9b\x01\x12\xef\x1e\x71\xf4\xc2\x1b\xb8\x61\x47\xc0\x5a\xb5\xd4\x06\xd8\xea\xfa\xac\xb4\x3f\x0b\x97\x3e\x03\x14\x2b\xde\xbe\xad\x63\x6d\x79\x98\x8b\xa9\x6e\xc4\xad\xf5\xad\x50\x93\x09\x06\xb0\x28\xc3\x4b\x53\x6f\xec\x8f\xaa\x69\xcf\x78\x01\xdd\x82\xec\x82\xee\x59\x8f\x2d\xe1\x38\x73\x18\xed\xa2\xa3\xd7\xcc\x4a\xac\xf0\x9a\x50\x8f\xdd\xbe\x3f\xd3\x9a\x70\x38\xa7\x39\x55\x57\xac\x0c\xd2\xf8\x88\x9c\xd9\x8d\xf2\x96\xbd\x0c\x90\x28\x2f\x45\x40\x62\x15\x5d\x74\xfa\x57\x5b\x30\x5f\x8d\x46\xaf\x5c\x9f\xa6\xdb\xdd\xac\x33\x51\xfc\x3c\x66\xbc\x6c\xc6\xbb\x0e\x6d\xfa\x40\x6b\x8d\xc6\x51\x2b\x46\x83\x3b\x48\x42\xeb\x7d\x33\xf3\x51\x42\x34\x39\x79\xbd\x1d\x99\x8d\x13\x79\x1d\x8e\xf9\x9c\x8d\x19\x42\x81\x70\xe4\x76\x30\x66\x74\x2e\xde\xe5\x58\x74\x38\xe4\xe8\x61\x5e\x6f\x75\x46\x3b\xf3\x3c\x21\x2d\x64\x79\x3c\x96\x8b\x08\x02\xee\xb9\x26\x9f\xbc\xb5\x62\xb3\xa4\x11\x83\x85\x5f\x73\x68\x43\x7e\xec\x50\xd6\xc8\xf2\xd8\xb5\x2c\x92\xe5\x71\x3a\x01\xa6\xb3\x24\x84\x38\xf6\x18\x27\x06\x05\x05\x44\xe7\x32\x05\x93\xad\xa6\x97\x2c\x8f\xad\xa4\x9b\x2c\x8f\x1c\xe9\x27\xcb\x23\x3d\x1d\x65\x79\xe4\xb1\xa7\xe0\x78\x2c\xe2\x14\x77\xe1\x56\x1d\x63\x8d\x53\x37\x40\xe0\x07\x53\x58\x1d\x31\x86\x8c\x34\xc9\x89\x73\x48\x96\xe8\x58\xcb\xaa\x31\xa9\x0d\xc0\xef\x5a\x24\x96\x19\xe1\x25\xbd\x17\x2a\x8f\xa0\xb8\xbc\x5c\x24\x89\x82\x26\x81\xe2\x59\xce\xb5\x1e\xcf\xf3\x92\xdb\x97\xba\xab\xae\x97\xfc\x15\xdb\x71\xec\x46\xdd\x76\x1c\x3b\x51\xbd\xdd\x83\x92\xbf\x86\x3b\x8e\xa7\xaf\xe4\x8e\x63\x97\xea\x15\xaf\xde\x93\x67\x59\xd5\x1d\x47\x56\xfa\x96\x5e\xe1\xdd\x8f\x47\x72\x3c\xfa\x69\x9d\x98\xb9\x08\xfd\x24\x3b\xb6\x1d\xa8\xa4\x6e\x34\x9a\x9e\x7c\xf8\x14\x76\xa0\x4c\x37\x09\xe6\xf3\x27\x3d\x96\x1f\xdf\x97\x33\x38\x3a\x3b\xcd\x68\x3a\x8f\x66\xbd\xc3\x78\x1e\x3f\xf1\x62\x3e\xdf\x64\x74\x36\xf8\x14\x2d\xdf\x71\xd2\xc4\x71\xbb\xa3\xae\xbc\x52\x16\x4d\x65\xf7\xcd\x75\xb7\x5e\xfc\x3b\x2b\x64\xc7\xdd\xd2\x22\x0c\x34\xd2\xd5\x8f\x68\xc5\x71\x27\xc6\xfa\x9e\x97\x98\x24\x99\x9e\xe4\x4b\x76\xdf\xb4\xb7\xa3\x06\x39\xd8\xfd\x84\xbe\x4e\xcb\xa3\x83\x2d\xaf\xce\xfd\x26\x3a\x6f\x2f\xfa\x61\x22\x97\x50\x2d\xcb\xb7\x18\x9f\x46\x85\x90\x06\xc3\xcf\x07\x18\xd9\xa0\x07\x2e\xc6\x23\xaa\x6d\x2a\x4a\x2b\xfc\x60\x22\xab\x4f\xeb\x1f\xbd\xfa\x75\x65\xa4\xc0\x06\x9e\xe5\x41\x27\xf2\x48\x49\x24\xad\xcc\xfa\x68\xa1\xf0\x6e\x7e\x8f\x49\xba\x98\xb1\x39\x85\xff\xfc\xce\x6f\x90\x25\xda\x2e\xad\x1b\xfc\x4c\x4c\xcd\xad\xce\x30\xe8\x94\xb8\xda\xbb\x7e\x93\x21\xc5\xb0\x1d\x8f\x12\x91\x1c\xce\xfc\xd1\xb6\xf3\xac\x63\x39\xb1\x57\x14\x8c\xbb\x10\xa3\xe1\x0b\x0d\x07\x4f\x9e\x95\x24\xae\x71\xff\x77\x7c\xeb\x1e\x33\x26\x13\xc7\x73\x30\xe4\xf7\x35\xe0\x0f\x82\x94\xde\x35\xbc\x67\x03\xec\xc5\x80\x7f\xff\x78\x31\xe0\xbb\xf1\x62\xc0\xdf\x78\x3c\x9a\x01\x3f\x12\xe9\x3c\x87\x5d\x61\x81\x8f\x9b\x76\x79\x33\x7c\xdb\xb8\x7c\x84\xee\x3c\x6f\x3b\xf7\x86\x73\xa9\xba\x91\x11\xaf\x46\xa3\x57\x18\x1b\x31\x0a\xfe\xbf\xc6\x4c\x86\x7f\x26\x4c\x14\xb2\xb4\xf3\x5c\xc2\xfc\x4a\x1b\x50\x77\x5a\x63\x68\x0c\xcb\xdc\xaf\x15\x47\x57\xc0\xdc\x79\xe5\xc6\x8c\x6c\xcb\x97\x46\xfc\xee\x31\x85\xf3\x8c\xec\xa5\x15\xee\x3d\xe4\xfe\x28\xdc\x81\x32\xe5\xa4\xfc\xb6\xe8\x63\xc5\xe7\xdc\x25\x78\x5a\x7a\xca\xb4\xc9\x95\xb7\x43\xc8\x3e\x4e\x3e\x2a\xea\x66\xe0\x16\x1a\xcd\xd9\x5c\xaa\xc5\x20\x2c\x66\xbf\xec\xac\xee\x9e\x38\x00\xe5\xa2\x68\x94\x62\xc2\x54\x8b\x48\xcd\xf8\x75\x69\x19\xfe\xa4\x76\x58\xc9\x08\xc8\x95\x27\xc4\xb9\x1d\x5d\x8a\xf7\xce\x2f\x83\x9e\xa0\xb0\xdb\xc0\xef\x5d\x57\x8b\x41\x6b\x01\xb5\x9f\x32\x71\x4d\xae\xa9\xd2\xb9\x28\x0c\x79\x2c\xbd\xa2\xe4\xd7\x5c\x3f\x62\xf6\xfa\x85\x13\x5a\xd0\x4d\x2b\x1b\x53\x37\xc6\xb1\x3b\x4f\x22\xd8\xe7\x5a\x5a\x51\x34\x90\x86\x25\xf5\xec\x4d\xaa\xc9\x3b\x1e\x35\x35\x86\x29\xf1\x96\xfc\x9f\xfd\xff\xf8\xdd\x3f\x87\x07\x7f\xd9\xdf\xff\xdb\xeb\xe1\xbf\xfc\xfd\x77\xfb\xff\x31\x82\xff\xf8\xea\xe0\x2f\x07\xff\xf4\x7f\xfc\xee\xe0\x60\x7f\xff\x6f\xdf\x7f\xf8\xeb\xe5\xd9\xc9\xdf\xf9\xc1\x3f\xff\x26\x9a\xf9\x15\xfe\xf5\xcf\xfd\xbf\xb1\x93\xbf\x6f\x38\xc9\xc1\xc1\x5f\xfe\x47\xc6\x97\xa0\x62\xf1\x29\x1b\x4f\xc0\x31\x7c\x14\xb9\xa6\x3b\xf7\xe3\x26\xe9\x72\x61\x86\x52\x0d\x71\x91\xb7\x90\xc1\x94\x6d\x29\x8f\x9a\x8f\x47\x63\x5a\xa9\x2a\x70\xd0\xa0\x7e\xef\x38\x11\x79\x5c\x0d\xfb\xd1\x3c\xfb\x58\x74\x3a\xa3\x1f\x06\x27\xbc\xc3\x05\xe3\xbe\x7c\xf1\xbe\x6c\x32\xbe\xfc\xe4\x85\x0b\x44\x87\x97\xcc\x05\xf2\xfc\x33\x17\xf0\x2c\x5f\xd2\x16\x5e\xd2\x16\x5e\xd2\x16\x92\x67\xda\x51\x2f\xe9\x4b\xda\x82\x1f\xcf\xc1\xdb\xf1\x92\xb6\xb0\xc1\x78\xf1\x7a\xac\x1d\x2f\x5e\x8f\xce\xf8\x95\x7b\x3d\x5e\xd2\x16\x7a\x2e\xf2\x92\xb6\xb0\x6e\xbc\xa4\x2d\xbc\xa4\x2d\xbc\xa4\x2d\x3c\x74\xbc\xa4\x2d\xbc\xa4\x2d\xa4\xc0\xb4\x2a\x6d\x01\xe9\xc6\xaa\xe4\x05\x67\xaa\x6b\x33\x17\x7e\x85\x89\x0b\xda\xde\xa0\x82\x1d\x15\x85\x6c\x84\xb9\x94\x57\x2c\x31\xac\x73\xc9\x70\x7e\x6b\x76\x4b\xc1\xef\x32\xa4\xdf\x7e\x78\x27\xad\xea\x5f\x64\x57\x17\xda\x94\x9c\x89\x1c\x8e\xb0\xfc\x72\x85\x87\xcd\x0b\xd7\x56\x59\x11\x25\x2b\xdb\x2f\x9c\xd0\x61\x2c\xd2\x8c\xc8\x11\x51\xac\xe0\x35\x77\xa5\x5c\x29\x7e\x9e\x01\x10\xa0\x0f\xae\xad\xeb\xc2\x52\x0d\x56\x4d\x02\x97\x0f\xed\x5e\x55\x64\x5e\x76\x02\xf2\x12\xa0\x39\xec\x86\xf6\x95\x50\x5d\x04\x1e\x7d\xc3\x35\x23\x7a\x26\x9b\xaa\x24\x8a\xfd\xa7\xd7\x57\xdd\x8e\x5c\xc6\x30\xc4\x3e\xf8\x3c\xc0\x44\xaf\xee\x4e\x82\xd6\xdc\xde\x67\xb6\x5b\xb5\x39\xd9\xe7\x9a\x2b\xa0\x3b\x17\xac\x90\xa2\xdc\x49\x8f\xd6\x2d\x20\x5b\x9d\x12\xc2\x99\xb0\xf2\x78\xe8\x76\x76\x4d\x2b\x5e\x5a\xf1\xd6\x47\xcb\x23\x19\xcd\x71\xed\x90\x12\x87\x5b\xa5\x5b\x8c\x22\xb4\xae\x95\xa4\xc5\x8c\xe9\x08\x5e\x34\xe4\xb8\xce\xf2\x69\x8d\x8e\xe3\x51\x57\xcd\x94\x0b\xb4\x06\xc1\xaa\x5e\xf8\x97\xc6\x67\x20\xb9\x97\x5e\x06\xf9\x32\x02\xc7\xfe\x3c\x03\x30\xa8\x87\x1a\xb5\x80\x44\x27\x19\x03\x81\x3b\xc3\x27\xf1\x1f\x9a\x48\x2b\xc9\x11\x33\xa3\x82\xfc\xf9\x35\xa9\x99\x2a\x90\x2c\x65\xf1\x7d\x6a\xe8\x76\x66\xe1\xa8\xf8\x35\xc4\x59\xae\x59\xfe\xeb\xdf\x93\x99\x6c\x94\x1e\x1d\x47\x04\xe0\x0d\x7c\x96\x03\x5b\x44\xd9\x86\x94\x1b\x52\x31\xaa\x0d\x79\xf3\x9a\xcc\xb9\x68\x4c\xbe\xaa\xa2\xb9\x0c\x55\x91\x89\xea\x8f\xbf\x4f\x9c\xed\x11\x6a\x94\x66\xa1\x24\xb1\x41\x0a\xfe\x3b\x58\xa5\x9c\x33\x76\x0e\x97\xa5\x96\x5c\x98\x65\x1b\x95\x93\xb8\x72\x72\x2b\x70\x02\xef\x04\x3f\xc8\x6c\x9d\xf9\xa5\x91\xe3\x85\xe9\x25\x3a\x75\x0e\xdd\xcd\xd3\x6d\xe0\xf2\xbf\xdc\x87\x78\x56\x12\xe5\x89\x99\x55\xfc\xc1\x36\xad\x67\x54\x31\xd7\x77\xf5\x95\x26\x15\x9f\x30\x4b\x12\x7a\x80\x92\x28\x1f\xa7\x49\xc5\x43\xa2\xd8\x94\x6b\xa3\xfa\xb9\x1b\x87\xfd\xb9\x4d\xaa\x08\x3d\x55\xb2\xe9\x5d\x2f\x35\xd7\x9d\x07\x20\xbc\x69\xd9\x07\x98\xb8\x0e\xbc\xfd\xcb\x44\x3b\x3e\x81\xd1\x11\xb8\x46\xcf\xb9\x92\xef\xac\x62\xb4\xfc\x24\xaa\xde\xbe\xda\x5c\x1b\xed\xe1\x40\x3b\x1e\x88\x24\x13\x09\x31\x7d\x33\x16\xae\xaa\x6f\x46\x0d\x26\x42\xb8\xb7\xac\x44\x35\xc1\xfe\x7c\x08\xe1\xf2\x91\x87\x32\xa1\xad\x7c\xc4\xc8\x27\xb4\xd2\xbd\xfd\x9b\xe9\x86\x0a\x7f\x7d\xb7\x7f\x40\x08\x47\x97\x88\xba\x16\x06\x52\x91\x79\x53\x19\x5e\x57\xed\x61\x9d\xfb\x1f\x38\x19\xb2\xbf\xad\xb0\xd5\xfa\x68\x14\x41\x42\x35\x50\xeb\xb7\xb5\x54\x06\x03\xd1\xf6\x03\x0c\x4c\x18\xc5\x5d\x87\x5e\xcd\x6a\xaa\x68\xc0\x94\x42\xce\xe7\x34\xa1\xd2\x3e\xc6\x35\x51\xc8\xdd\x40\x09\xc0\xca\x9d\x8a\x56\xed\x0e\x45\x41\xee\xdb\xba\xd6\x86\x09\x2a\x7a\x87\x6a\xe6\xc2\x19\x84\x82\xc8\x9b\x50\xbd\x60\xca\xaf\x99\x58\xbe\xcf\x4e\x97\xff\x96\x16\x57\x4c\xf4\x37\x0e\xfe\xa0\xfd\x19\x97\x0b\x41\xe7\xbc\xa0\x95\xa5\x07\x4a\x5e\x73\x4b\x0e\x58\xb9\xb4\xae\x1e\x38\xd7\x01\xf6\x8d\xf5\x1d\xc7\x51\x2b\xda\xd6\xc1\x35\x9a\xf5\x4e\x2d\xc8\x75\x6c\x16\x86\xc7\xe2\x79\x1a\x23\x49\x14\xbf\x2e\x98\x57\x2a\xed\x7a\xdb\xda\x6f\x7c\xbf\x2c\x3b\xee\xb1\x39\xa2\x51\x20\x49\x86\x30\x58\x6c\x19\x57\x59\x5e\xb5\xf0\x89\x7d\xcb\x77\xc1\xb5\x94\x4f\xe3\x37\x3d\xf7\x43\x8d\x7b\x09\x99\x39\xd0\x4e\x8d\xcb\x2e\x63\x39\xa7\xa5\xd4\xe4\x5b\x68\xa4\x72\xcc\xc0\x06\xf1\x30\x41\xbd\xdf\x0e\xae\x70\x94\xb1\xcf\x74\x5e\x57\x4c\x8f\xae\xfe\x0c\xae\x32\x47\x3c\x0e\xd5\xb8\x3c\x3c\x3f\x39\x3a\xfe\x70\x32\x9a\xf7\x21\x5a\x5b\x56\x0b\xf8\x9c\x4e\xfb\x69\xa0\x43\x32\x97\x82\x1b\xa9\xfa\x70\xb7\x54\xad\x60\xa2\x2f\xed\xbe\x6d\x99\x42\x22\x14\xde\x04\x60\x55\x7b\xbd\xd0\x86\xcd\xd1\x3d\xed\x34\x7e\x2f\xad\x5a\x24\x5d\xc8\x86\xdc\x50\xec\x87\x06\x78\xdc\x5f\x36\xbd\xe4\xf5\x5b\x72\x22\x74\xa3\x58\xdb\x07\x76\x19\x04\xcb\xd2\x7c\x16\xa6\x67\x6c\x70\x65\xb0\x11\x1a\xf4\xdf\x81\xc7\xfb\xc3\x71\xe2\xee\xc5\x5b\xb2\xc7\x3e\x9b\xdf\xef\x0d\xc8\xde\xe7\x89\xb6\xff\x08\x33\xd1\x7b\x23\x72\x3a\xaf\x2b\x5e\x70\x53\x2d\xec\x8d\x62\x4a\x05\xef\x3e\xfe\x60\x29\xb9\xa0\x3f\x24\x0f\xf4\x6e\x6b\x23\x15\x9d\x32\x7f\x91\x7f\xab\xc6\xfd\x65\x0e\x74\x5e\xcf\xe4\x0d\x29\x25\xb9\x61\xa4\x56\xec\x9a\x09\x83\x11\xe8\xda\x4b\x36\xd1\xe9\x40\x57\x9c\x42\xce\x6b\x25\xe7\x5c\x7b\xb1\x68\x4e\x8b\x19\x17\x7d\x0d\x42\xc9\x4c\x10\x68\xc1\xb6\xef\x14\x00\x11\x4c\xf2\x40\xfe\xf1\xa3\xb4\xfe\x35\x7d\x29\xfa\x6f\x67\xf2\x66\x68\xe4\xb0\xd1\x6c\xc8\xfb\xfa\x35\x93\x4f\xe6\x8a\x2d\x20\x39\x6f\xcb\x67\xe3\xc0\xe8\xd8\x3c\x8d\x04\xd7\x3e\x7c\x6e\x35\x9e\xf3\x6f\x8f\x7f\xd0\x29\x7e\xa9\xc8\x2a\x72\xc8\x4c\x71\x58\xb0\x7a\x76\xe8\x56\xfe\xb5\x9e\xbf\xe7\xb4\xdb\x46\x00\x0f\x07\x4a\xb7\x85\xac\x2a\x56\x78\x47\xd9\x3b\x56\xcf\xc2\x03\xcf\xfa\xa0\x52\xd2\x67\x12\x93\x66\x76\xcf\xf8\x6e\x47\x2d\x65\xef\xf8\xa1\x5c\xa8\x67\x61\xe8\xb2\x05\xf8\x24\x8d\x2b\x44\xb4\x46\x8d\xf3\x8a\x1e\xcf\x88\xba\x3c\x0b\xe3\xef\xb9\xff\x52\x33\x03\x82\x2b\x17\x04\x0b\x69\x7e\xb0\x82\xf4\x2e\x58\x79\x77\x02\x0f\x52\x8c\xcc\x98\x6b\x9d\x50\x36\x27\x17\x26\x04\x40\xc0\x37\x12\x85\x3d\xd3\xc6\xcc\x98\x30\xbc\xc0\xf8\x0c\x97\x1c\x1e\xcb\x1d\xe4\x74\x82\xc6\xbe\x32\x21\xc0\x50\x5e\x33\xa5\x78\xc9\x34\x49\x16\x3c\x62\x27\x0f\xaf\x9e\x35\x6a\x25\xc5\xf6\xe5\x08\xa5\x4b\x0d\xcc\xcf\x19\x02\x90\x3f\x18\x7f\x37\xc2\xf0\x77\x22\x00\xff\x31\x42\xef\x9f\x3e\xe8\x7e\x37\xc3\xed\x9f\x71\xa0\x7d\xa6\x50\xc5\xf4\xe0\xfa\xfc\xe1\xe2\x3b\xe3\xf0\xe9\x88\xd8\xf0\x49\x36\x11\x9b\x96\x73\x9e\x50\xf5\x76\x07\x38\x60\x4f\xd4\xd3\x05\xad\xd8\xe9\xa7\x64\xaf\x8a\x9b\xa7\xeb\x22\xb9\x70\x1f\xd6\x96\x7a\x69\xa8\x46\xe2\xbd\x75\xc6\xd0\x62\xe6\x1a\x22\xfb\x38\x09\x29\xc8\xf7\x01\x77\x89\x90\x65\xbf\xd8\xc1\x2d\xbb\x2d\xa6\xd4\xb0\x9b\x9e\x4a\xfa\xb0\x15\x2f\xfb\xfe\x1e\x8c\xb8\x2f\x6e\x8f\x95\x3e\x87\x74\xd7\x46\xc8\xfd\xbf\x35\xf7\xe3\x3b\x33\x46\x77\xb8\x31\x72\xd0\x3f\x98\x71\x2b\x2e\x5d\x3b\xdc\x95\xc9\x82\x3c\x6e\x2e\x8f\x02\x70\x0a\xb4\x2c\x15\xd3\xda\xcb\xc4\x9e\x2c\x1d\x9d\x9d\x92\xbf\xe2\xe3\x5b\x7b\xf5\x5a\x49\x83\x86\xca\x63\x39\xa7\xbc\x77\x0a\x56\x67\x0f\x96\x27\xf5\x9b\x11\xab\xab\x7e\x13\xce\xc2\xb3\xc4\x3d\x6c\x55\xd6\xb6\x3d\x7b\xa3\x58\x49\x9c\x43\x6a\x6b\xbb\xb4\x73\x66\xa0\x5b\x86\x19\xb2\x6f\xbf\x3b\xbc\x51\xdc\xb0\x83\x51\x6b\x12\x5a\xb2\x17\xf5\xb7\xbe\x3e\xa2\x9d\xe9\x8b\xb4\xce\x44\x31\x2d\xbe\xfe\x58\x6b\x91\xf1\xc8\x0f\x42\x64\x48\xa4\x4a\x58\x55\x68\x0e\xd1\xf5\x51\x7e\x23\x98\x7b\x40\x21\x0d\x25\xc6\xd0\xf4\x33\x20\xef\xe5\x94\x0b\xcf\x1b\xa4\xcb\x6f\x99\xd0\xfe\x36\x98\x17\x23\xc8\xad\xf1\x62\x04\x79\x31\x82\xdc\x33\x5e\x8c\x20\x2f\x46\x90\x4d\x87\xd6\xd5\x89\xa0\xe3\xaa\x7f\xee\x77\x57\x5d\x0e\xd3\x91\xef\x2a\x3a\x25\x0c\xfe\x38\x2c\xb9\xb6\xff\x92\x8b\x8b\xf7\x10\x06\xde\x08\xef\x4e\x80\xab\xec\x84\xd5\x50\x4b\x1b\x45\x8f\xed\x71\x7d\x94\x0a\x3f\x24\x54\x8f\xcb\xc6\xf7\x5b\x50\x08\x17\xa5\xdd\x35\xa6\x3b\x25\x1f\xdc\x13\xc0\xfe\x69\xa8\xc8\x89\x59\xd3\x63\x66\x89\x7b\x71\x75\x16\x45\x62\x4b\x65\x3f\x13\xd1\x47\x59\x14\xad\x4c\x73\x26\xdf\x34\xb7\x1d\x67\xb9\xdc\xe7\xd1\x7c\x5e\xdb\xf0\x42\xd6\x85\xdb\x79\xf8\x8e\x6a\x2d\x0b\xde\x26\x3b\x40\xb0\x4e\xab\x82\x94\xa0\x82\x6c\x6f\x57\x40\x49\xcf\xb3\x21\x68\x1b\x58\xa1\x79\x79\x4c\x74\x4f\x50\x1d\x6b\x5a\x5c\xf8\x7d\xdb\xda\x26\xe0\xdd\x48\x69\xbf\x90\xeb\x56\xb7\x90\x2c\xef\x63\xb8\xc1\xcb\xc1\xea\xbe\x7e\xaf\xc3\xbd\xde\xe6\x30\x1c\x10\xbd\xca\xf5\x0a\xac\xe5\x3a\xd0\x10\xa8\xec\xbe\x95\xd3\xea\x5f\xee\x3c\xc7\x09\x39\x7d\xaa\x9b\x6d\x85\x9f\xb9\xb0\x77\x20\xae\xb5\xac\x9b\x0a\x13\xe5\xc3\xa6\x65\x0b\x7d\x7f\x48\x14\x2d\xc2\xf6\xf4\x06\xe5\x54\xcd\x2a\xaa\x8b\xb9\xed\x0b\x19\x97\xe8\x7c\x78\x2d\x56\x7f\x47\xc1\x74\x4a\xc6\x0b\x3f\x5d\x06\x73\xec\xf6\x4b\xb1\xe6\x2a\xbd\xda\xdf\xf4\xdd\x29\xd9\xda\xb1\x50\xbd\xfe\xe3\xef\x7f\x9f\x20\xbd\x70\xc5\x0a\x23\x21\x5d\xd1\x95\xc1\x0e\x21\xb6\x54\x31\xb0\x6d\x60\x9d\x54\x6f\xfc\xc6\x74\x35\x93\x14\x9c\xb2\xbd\x5a\xad\x5b\xa9\xcd\x9a\xa3\xc4\x45\x7a\xed\xd5\xa4\x10\xd1\x6c\x61\xf6\xd0\xd7\xe1\x74\xcb\x7d\x1d\xb6\xda\xcd\x61\x9b\x3d\x1c\xb6\xd7\xb9\x61\x8b\xfd\x1a\xb6\xdd\xa5\x61\x2b\xbd\x19\xb6\x1e\x52\xfe\xf4\xdd\x17\xb2\x54\x02\xcc\x51\x05\x30\xb5\xbf\x42\x62\x05\xc1\x3c\xd5\x03\x93\x3b\x28\x3c\x45\xdf\x84\x4c\x46\xc9\xf4\x1e\x09\x79\xab\x3c\x6d\xbb\x1f\xc2\x0e\x89\xde\x38\x76\xb3\xf7\xc1\x56\x3a\x1e\x6c\xbb\xcf\xc1\x16\xbb\x1b\xe4\x2b\x15\x97\xab\x93\x41\x7a\x89\xb8\xbc\x84\x63\x4b\xbd\x0a\x1e\xb1\x43\xc1\x93\xf4\x25\x78\xec\x6e\x04\xbb\x99\x5e\x97\x5a\xa2\x3b\xb9\x30\xb7\xce\x54\x99\x3b\x57\x8c\xcb\x2e\x98\xc5\x5b\x48\x56\xba\x17\x7c\xcb\x4a\xbc\x07\x50\x72\x04\xbc\xd2\x35\xc5\x06\xa4\x4d\xe6\x34\xb2\x27\xb1\xc1\x92\x64\x5b\x39\x42\x22\x7b\x09\xbc\xab\x5c\x5d\x9f\x2e\x96\x82\x9d\xc3\xc7\xbb\x1f\xe3\xfc\x12\xec\xbb\xc9\xd8\xc5\x60\xdf\xa7\xaa\x59\xf2\xe5\x85\x6c\x96\x2f\x21\x9b\xf1\xd8\xc1\x90\x4d\xdd\xe9\x2b\xef\x5d\x89\xc0\xb0\x40\x29\x93\x63\x2b\xde\xf9\x8a\x34\x2d\xbd\x3d\x3a\x3b\xed\xbd\x7a\xa1\x18\x54\xb0\xa7\x95\x1e\xad\xd2\xd6\x7c\xa4\x8d\xd3\x0d\xbd\x96\x46\x8d\x61\xf3\xda\xa4\xde\xaf\x97\x88\xcd\x68\xbc\x44\x6c\xbe\x44\x6c\xde\x33\x5e\x22\x36\x5f\x22\x36\x37\x1d\xbb\x1c\xc6\x34\x6b\xe6\x54\x0c\xad\xf8\x01\xe1\x9e\x9d\xbc\x9c\x25\x35\x62\x44\x9c\xc0\x90\x44\xe3\xb1\xd0\x30\x94\x9f\x6e\x04\xff\xa5\x61\xad\x4b\x25\xe8\x86\x3b\x10\x70\x06\x70\xec\xce\x71\xa1\xca\xbc\x24\x96\x14\xf2\x56\x01\x45\xb7\x97\xe1\xe8\xbc\x24\x91\x76\x64\xb0\x78\xc7\x03\x6a\x2c\x1d\xb1\xeb\x9e\x2d\x69\xf5\x1d\xe3\xb1\xe3\x7b\xc0\x76\xd2\xdc\xd0\xb1\xa6\x6a\x51\xd4\xbe\xbb\x6b\x7e\x32\x66\x64\xce\x95\x92\xca\x85\xc4\xc5\xaf\x8f\x19\x64\x7c\x3a\x33\x4c\xa1\x29\x16\xf3\x5c\xfa\x13\xaa\x0b\x66\xdc\x2d\x80\x5b\x64\x24\xa1\x02\xcb\xd0\xda\xff\xf6\x25\x51\x60\x6b\xbc\xc0\x36\x66\x33\x7a\xcd\x65\x93\x50\xee\xed\x02\xc5\xcf\x3d\x37\x25\xa8\x56\x0b\xd9\x84\xa0\x97\x06\xaa\x23\x86\x53\xd0\xb7\xf1\xa0\xf7\xd2\x1f\xdb\x49\xc1\x3e\x5f\x4a\xef\xf5\x1e\xb2\xcf\x5c\x9b\xdb\x7b\xee\x51\xc0\x05\x59\x6d\xe5\x32\x5f\xeb\xda\x0a\x2b\x3f\xf6\xae\x58\xdc\xad\x56\x1c\xcf\xd6\xb5\xb5\x5c\x5f\xc0\x57\xf7\x59\x5a\x5c\x03\x20\x2c\xc3\x9e\x50\xc2\x72\xcb\x19\xe5\xf8\x96\x67\xfd\xfc\xbd\x5f\x9a\xa9\xe7\xc5\xcc\xb3\x53\x66\x9e\x10\xf7\x5f\xf1\x62\x71\x7a\x9c\x37\x97\x00\xe7\xf4\x42\x93\x0e\x79\x04\xf6\x73\xf2\x2d\xd5\xac\x24\x1f\xa8\xa0\x53\xf4\xf2\xec\x5f\x9c\x7d\xfb\xe1\xc0\x22\x3c\x78\xb0\x4e\x8f\x57\x26\x1b\x5c\xc4\x93\x7f\xdc\x56\x21\x73\xb2\xbc\x75\xd9\xe4\xd4\x5b\xb3\xf6\xdc\xbe\xad\xd5\x78\x27\x41\x04\x3b\x4b\xf0\x9c\xae\xa8\x7b\x7f\xb6\xdc\x13\x0b\xa3\xfb\x7d\x03\x43\xbd\xcc\x55\xae\xe7\xe5\xd5\x53\x6f\xc0\x6d\x17\x9e\xd5\x85\xae\xd8\xe2\xc1\xd4\x7b\x08\x27\x98\xb8\x38\xbe\xc7\x9c\xde\xdd\xfc\x27\x0a\x2f\x59\x07\xe1\x66\xa1\x66\x1b\x84\x93\x75\xce\xf5\xc2\x28\x6a\xd8\x74\x71\xcc\xea\x4a\x2e\x2c\x16\x9f\x45\xd1\x2e\xf8\xe8\x18\xc5\x42\x35\xa6\x05\x51\x4d\x05\x2d\x0e\xca\x5b\x5d\x03\xad\x16\xde\x92\x79\x2e\xb4\xa1\x55\x65\x0f\x10\xe6\x5f\x0b\xd1\xc6\xc2\xc1\xa6\x62\xc0\x10\xe1\xbc\xf7\xa9\x6e\xd7\xdc\x8f\xf7\x9d\xf6\xe6\x82\x00\x2c\x7f\x3f\xbe\x3d\x24\x7c\x70\xe3\x40\xc1\x3e\x02\x03\x52\xb4\xf3\xa6\xb2\x0c\xba\x2a\xbb\x5d\x86\x51\x7c\x76\xa8\x80\x4d\x18\x80\xfe\xd9\x97\x74\xd6\x3f\xc9\x74\x27\x7e\x20\xfa\xf9\x46\xeb\x63\x23\xe3\x9b\x19\x06\xcb\xda\x89\x09\xad\xeb\x8a\x63\xe9\x01\xa9\x5c\xe4\x6a\xe4\x84\xbd\xfd\xd8\x26\xa4\xf6\x81\x62\xe8\xc3\xc4\xce\x21\xb9\x66\x6a\xbc\x89\x21\xec\xa1\x12\x25\xad\x39\xc4\x00\x6d\x4c\xc2\xfa\x0a\x8d\x47\x67\xa7\xb8\xd0\x2a\xb7\xb8\xff\x12\x11\xc2\x1d\xb5\x8f\x82\xc1\x1c\x2e\xe7\x01\x08\x3d\x9a\x8e\xce\x4e\xb1\xf5\x99\x6b\xd3\xd4\x7a\x05\xac\xf6\x49\x31\x63\xb1\x6d\xcd\x4a\xa7\x76\x46\x43\xa4\x60\x0f\x69\xf2\x69\x21\x60\xa2\x99\x33\x6c\x01\x15\x80\x21\x5c\xc0\x3a\x01\x8a\xd6\xf9\x80\x06\xe5\x11\xd9\xdb\x8b\xd5\x22\xac\xd9\xa2\x22\xb8\x81\xd4\xed\x7d\xd5\x79\xca\xd2\xb5\xf6\xc5\x36\xe5\xf0\x0f\x0f\x15\x7e\x60\x68\x70\x0f\x8e\x99\x21\xdc\x45\x48\x71\xee\xf6\xfb\x87\xf3\xf7\x8f\x8e\xa0\x1f\xbb\xcb\xb9\x46\x3c\x0c\x3a\x70\xd6\x54\x19\x4e\x2b\xd2\xa8\xca\xc7\xe4\x61\x79\x12\x97\x46\x37\xa3\xd7\x51\x93\xa3\x11\x21\x5f\x21\x56\x3a\x64\x40\x52\x06\x06\x3e\xd7\xf4\x6b\xd2\x54\xd5\x80\x4c\xb8\xa0\x96\x91\xb1\x9a\x44\x91\x51\x1b\x43\x7c\xc1\x45\xc1\xec\x36\x0d\x3d\x5e\x12\x80\xdc\x9b\x40\x02\x4d\x83\xc0\xc6\xd8\xdb\x82\xa0\x58\xfa\x56\x80\x8d\x73\x22\x15\x79\x57\x35\xda\x30\x75\x2e\x2d\x1b\x6e\x73\x34\xb0\xe5\x04\x8d\xbf\xfe\x96\x8b\xf2\x41\xe9\x43\xe7\xc0\xda\x0b\x2a\x08\xe3\xe0\x8c\xb0\x4b\x43\x10\xb1\x45\xf6\xf6\x52\xed\xeb\xa6\x98\xd9\x2d\xda\xab\x65\xa9\xf7\x2c\x75\xde\x43\x4f\xa3\xde\x3b\xb0\x7f\x2d\xbf\x2b\xa6\x3c\x44\xbf\x3b\xa4\x35\xdf\x3b\x18\x10\xd8\x70\x88\x68\x93\x9b\x87\xb0\x7d\xa1\xf7\xc8\x6f\x18\x98\xad\x7a\xdd\xa2\xf3\x78\x06\xb8\x18\xa2\x8d\x17\xbb\x99\x71\x83\x49\x2e\xf6\xa6\xa0\x3d\x3b\x34\x96\x59\x66\xa4\x84\x1c\x79\xff\x99\xbd\x5a\x73\x46\x7d\x90\x2b\xbb\x66\x6a\x61\x66\xae\x4d\x84\xa7\xa2\x2f\x27\x07\x37\x23\xe9\xd4\x1c\x29\xf3\x27\xd4\x5e\x37\xa0\x09\xb7\x4e\xe8\xd5\x57\xaf\x96\x59\x52\xcb\x83\x7f\xdd\xe7\x01\x42\x58\xaf\xb3\xf8\xd1\xfe\xb2\x7b\x0e\xf8\x11\x32\x93\x40\x0e\xdf\xbf\x77\x91\x29\xb8\xe1\xdf\x73\x01\x0e\x6f\x90\x87\x7c\x02\xbd\x3b\xb4\x95\x27\x05\x10\xfe\x6a\x4f\xe9\xb6\xd2\xb5\xa9\xa2\xb4\x06\x46\xaf\x67\xde\x35\xd5\xda\x09\x9c\xb2\xfa\x41\x96\xab\x2f\x71\x07\x49\x4e\xa3\x87\x43\x00\x6e\x6b\xe6\x74\x73\x39\xcd\x69\x51\xaf\xd4\x42\xd7\x9f\xe9\x9a\xf3\xbb\x0b\x92\xd6\x4e\x07\x64\x3f\xfa\xe6\xb2\x8d\x89\x20\x93\x8a\x4e\x5b\x5c\x04\x22\x8e\x92\xfd\xbb\x8b\x1f\xfd\x2b\x68\x72\x47\x15\xdd\x7b\x55\xa7\xfb\x94\xa5\x61\xbb\x4b\x77\x3e\x61\x17\x59\xf9\xe5\xfd\x1a\x53\x98\xfc\x6e\x6c\xda\x24\xe4\xcb\xac\x35\xd5\xdf\xb5\xff\xde\xb4\x4e\x23\x4c\xf0\x6d\xe2\xbc\x29\x04\x52\x34\x40\x86\xbb\xf8\xb1\x83\x26\xf7\xc0\x7b\x07\xd2\x5e\xb1\xc5\x8d\x54\xe5\xfd\x08\x7b\x14\x88\x99\xff\x89\x57\xe6\x7d\x1c\x18\x9a\xe3\xe5\x4a\x3f\x5f\x6f\x54\x5d\x0b\x7c\x45\xc7\xac\xba\x1f\xf4\x3b\x14\x83\x0f\xb4\xb6\xaf\xd3\xe6\x39\xa2\x45\xca\x05\x98\xa1\x76\x8a\xc9\x31\x3e\x8d\x4b\xaa\x29\x15\xfc\x1f\x98\x1c\x5a\x58\x4a\x21\x15\xff\xc7\x6a\x54\xdb\x47\xff\x34\xda\xb8\x2a\x56\x98\x03\x87\xf5\x2b\x49\xf6\x3d\xd7\x82\x96\x25\x47\x11\xec\xec\x1e\x0c\x5e\xbf\x5f\x5c\x5c\x3d\xe4\xa4\xe1\x79\xcc\x4d\xc1\x0d\x78\xe4\x63\x5e\x43\x16\xee\xbf\xb9\xeb\x23\xe8\x36\x60\x4f\x8d\x5a\x93\x5d\xb1\xf6\xf7\x73\xca\x91\x6b\xaf\xee\xbe\x75\xc7\xee\x3a\x6c\xa2\x4e\xb6\xb6\xb4\xd4\xbe\x5f\x98\xed\x09\xee\x55\xd2\x86\xb3\x39\xe5\x7d\x77\x0c\x47\xc2\x91\xcd\xa9\x69\x14\x37\x2b\x39\xf5\xfa\x1f\x72\xf1\x7d\x33\x66\x2e\x20\xee\xc1\x3f\x17\x90\xa6\x75\x74\x76\xba\x72\x5b\xf2\x70\xe4\x3b\x0d\x19\x60\x37\x73\x90\x5b\x71\x91\x34\x82\xce\xc7\x7c\xda\xc8\x46\x57\x8b\xd8\x83\x42\x21\xd0\x6f\x44\xc8\xa9\x09\x01\x6e\x54\x48\xb1\x98\xbb\x47\x45\x51\x35\x25\xeb\xcc\x78\x17\x2b\x93\x84\x5e\x4b\x5e\x12\xda\x18\x39\xa7\x86\x17\xa4\x90\x4c\x15\x50\x59\x35\x9e\xbf\xd1\x8c\xd0\xce\x8c\xed\x6f\x8b\x46\x1b\x39\x27\x73\xaa\xf4\x8c\x56\xd5\x5d\x28\x91\x41\x3a\x00\x73\xda\x9d\xdf\xda\x5d\xb9\xf3\xcb\xeb\x35\xfb\x70\xff\x75\x80\x85\x93\xae\x83\x05\x2e\x69\x82\xeb\xbb\x91\x7a\x83\x39\x5c\x59\xdc\x95\x2d\x26\x3a\xf8\x79\x39\x63\xa4\x6e\xc6\x15\xd7\xa0\xc2\x03\xe1\x5a\x90\x31\x9b\x71\x97\x5a\x7a\x3f\xc5\xba\xf3\x88\xef\xdb\xe7\x75\x24\xe3\xde\x1d\x5a\x43\xe1\xd7\xfe\xd6\x71\xc0\xd3\x39\x9d\x6e\x20\xda\xdf\x71\x7d\xdf\x5b\xb2\x4f\xc5\x22\xf0\x53\x68\x59\xaa\x07\x44\x2a\x17\xb6\xeb\x75\x3f\xe5\xbe\x0a\xfd\x80\x15\xf9\xe4\x76\xd4\x25\x13\xbb\x6b\x00\xa9\xf9\x4c\x4d\xa4\x9a\xdb\x7d\xe7\x8a\x4c\x1a\x01\xd6\xf0\x3b\xf4\x42\x88\x47\x03\xfe\xe3\x8c\x99\xb4\xd2\x32\x10\x03\x38\x36\xe1\x01\x23\x54\x93\x1b\x56\x55\x23\x72\x54\x55\xae\xbf\x6a\x54\xcb\xb9\xad\xd8\xd8\x86\xc5\x8d\x57\xeb\x96\x25\x9f\x32\x6d\xc8\xfe\xc5\xbf\x1f\x1d\x80\x40\x04\xc6\xba\x05\x31\x74\x3a\x5a\x0a\x0d\xc7\xc0\x48\x2b\x6e\x95\x0d\x88\x65\x05\x35\xb4\x92\x53\x8c\xa6\xb2\x24\xc5\xfe\xbe\xae\xe8\x42\x13\x21\xc1\x56\x0b\x69\xd5\x68\xb0\x24\xaa\x11\x77\x35\xf4\x7e\x3c\x4e\x79\x3f\x4d\x5a\xd7\x40\x7b\x8d\x7b\xf8\x7e\x9a\x73\x4f\x37\xde\xc7\x65\xc1\x8a\xd5\x15\xbd\xc3\x60\x75\x8b\x5e\xb4\xf5\x02\xad\xde\x02\x86\x0d\x29\x58\x98\x63\x44\x2e\x10\x9f\xe6\xd4\x14\x18\x1f\xf2\xf3\x9c\x19\x5a\x52\x43\x47\x56\xb9\xff\xb9\x5b\x57\x48\x56\xa5\x9d\xe8\xee\x83\xbe\x03\x66\x14\xc5\xe5\xfd\x34\xee\xbd\x55\x2d\xc2\xe3\xa0\x70\xf9\x7b\xbb\xd6\x42\x96\x48\xde\xe0\xf5\x4f\x3e\x5b\xdd\x7a\xad\x2b\xbf\x03\xeb\xf2\x8f\xba\xb6\xa7\xaa\xfb\x26\x0e\x5b\xe7\x4c\x18\x3d\x82\xa3\x89\x3f\x01\x7f\xc2\xd1\xc7\xe3\xbb\xcd\xb1\xf7\x1b\x92\xee\x31\x1c\x6d\xee\xb3\x39\x5a\x03\xbb\x77\xd9\xb8\x6f\xba\xbe\x44\x5f\x5d\x02\x6a\x17\x61\xc5\x03\x2a\x02\x57\x82\x87\xd7\x2c\x8b\xe7\xdc\xd6\x3f\x69\x95\xc2\xbb\x8d\x6d\x1b\x79\x84\x37\xf1\x03\xdf\x57\x8e\x66\x18\x5e\xe3\xce\x87\x36\x73\x0b\xdf\x5b\x32\xe6\xae\x92\x30\x78\x26\x50\x8b\xc0\x5b\xfe\xc3\x31\x6c\xea\x46\xdf\xd0\x58\xe8\x5f\xf5\x01\x80\xde\xeb\x04\x0c\x58\xd0\x89\x63\xbd\x62\x8b\x57\x4e\xd3\xb5\x37\x68\xc6\x6b\x2c\x7a\xe4\x7c\x82\xf7\x1d\x3f\x8e\x1f\x69\xc5\xcb\xb0\x00\xde\xa5\x53\x31\x20\x1f\xa5\xb1\xff\x9c\x7c\xe6\xda\xa0\x8d\xe1\x58\x32\xfd\x51\x1a\xf8\x24\xcb\x4e\x21\x80\x39\xf7\xc9\x99\x41\xd0\x01\x04\xd7\x3d\x32\x96\xb8\xfd\xc0\xc6\x0a\xad\xbc\x67\x9f\x3e\x15\x56\xa0\xc1\x57\xbe\x67\x89\x50\x49\x4d\xbb\x05\x7c\x85\x01\x21\xc5\xd0\xa7\x67\xdd\x5e\xc1\xed\xa3\x54\x9d\x6d\xec\xbd\x98\x5b\x08\x43\xf5\xe1\x1b\xae\x3d\x5f\x0a\x62\x08\xf5\xa6\xe1\x7b\xed\xd2\x73\xa6\xa6\xe0\xdb\x2d\xee\xf1\x45\x6e\x6a\x91\xdf\xc8\x0e\xbf\xb1\xf5\xbd\x97\xcd\xbd\xc7\x8f\x80\x27\xbd\xbf\xd3\x3e\x47\x1e\x80\x8f\xd1\x54\x48\xf5\xe7\x68\xb8\xfb\x2f\x4b\xdc\xe1\x48\xff\x1b\xaa\x10\xea\x11\x39\x22\x9a\x8b\x69\xc5\x3a\xdf\x39\x77\x7b\x34\xcd\x9a\xa5\x6a\x48\x50\xfc\xa5\xe1\xd7\xb4\xb2\x6c\x06\x32\x1c\x42\xfd\x12\x39\xb9\xc5\x6c\x07\xae\xda\xa0\x25\x88\x41\x8c\xdd\xbb\x62\x8b\xbd\xc1\xda\x94\x8f\x18\xa3\xf7\x4e\xc5\x5e\x5b\x98\xa7\x83\xa5\x81\xa7\x81\x64\xbc\x07\xdf\xed\xf5\xe7\xdb\x6b\x39\xd4\xe6\x56\x46\x72\x3f\xca\x3d\x2c\x8f\x4c\x5f\xf1\xd5\x61\x49\x9b\x20\x89\x97\x2f\xf7\xf5\x01\xd8\xd5\x04\x23\x50\x39\x4a\x81\x4b\xc2\x7e\x1a\x97\x41\xb6\x1a\xcb\x15\xaf\xeb\xb6\x46\x75\x53\x4f\x15\x2d\x19\x99\x2a\x5a\xdf\x71\x69\x1f\x26\x9d\xa2\x88\xbb\x6a\xc9\x35\x6a\xd9\xee\xeb\x40\x77\x9c\xf5\x1a\xab\xc3\xda\xdf\xdd\xb0\xf1\x4c\xca\x2b\x28\x27\x03\x78\xf7\x88\x26\xb5\x9f\x70\xad\xe3\xf6\x33\x6f\xee\xd0\xa4\x64\x86\xf2\x0a\x42\x04\x3f\xbd\xff\xe0\x82\x08\xbd\xac\xe6\xa1\x5c\x4d\x33\x32\xe8\x86\xb4\x74\x71\xb2\xe7\xec\x9a\xb3\x1b\x67\x39\xbb\x8b\x44\x0d\xc9\x94\x09\x08\x50\x5b\x13\x66\x3a\x24\x9a\x97\xec\x04\xb2\xac\xef\x9e\x28\xc1\x49\x76\x07\xcc\xf7\xd1\x8a\xf5\xbc\xee\x5e\x3e\xb7\x01\x8f\x0b\x16\x94\x33\xa9\xd6\x94\x63\xdf\xac\x36\xd9\x66\x75\xc7\x42\xc6\xed\xef\x7f\xff\xcd\x1a\xbe\xf2\x99\xcf\x9b\xf9\x5b\xf2\xc7\x3f\xfc\xe1\x9b\x3f\xdc\xfd\x18\x17\xf8\xd8\x9b\xbb\xdf\xcf\xdd\xb6\x77\xe7\xc7\x3b\xb0\xdf\x65\x88\xf7\x5e\xef\x80\xdf\x60\xaa\x09\xe5\x55\xa3\x5c\xba\xc4\x86\xda\xe3\x77\xf1\x6f\xc0\x79\xda\xa6\x88\x52\x3f\xa3\x8f\x33\x76\xf1\xc7\x13\x2e\x98\x26\x33\x79\x43\x1a\xa1\x58\x21\xa7\x82\xff\x83\x95\x58\x61\x56\x63\x00\x1c\x34\x91\xf7\x28\x4e\x98\x28\x6b\xc9\x85\x01\x16\x3b\xa3\xa2\xac\xd6\xc5\x2a\x6d\xf0\xa6\xf1\x0d\x4e\xda\x32\xe0\x46\x0f\xda\xb0\x0f\xed\x2f\x96\xb6\xcb\xbe\xb3\x77\x35\x23\x97\xc3\x6d\x4b\x7a\x53\x24\x8c\x17\x6b\x6c\x2e\x2b\x60\x7c\x98\x49\x00\x4d\x1d\xf0\xd9\x2f\x0d\x53\x0b\xc8\x41\x6d\x15\xb7\x28\xa2\xf8\xb2\xad\x79\xe8\xdf\xd1\x09\x95\xf4\x4e\x9f\x00\x59\x61\x92\x89\x44\xad\x36\xc0\x6d\x09\x2a\xf8\x0d\xc3\x30\x1d\xef\xf5\x25\x47\x44\x34\x55\xb5\x66\xa5\x3b\x26\x11\x72\x9d\xe7\x18\xc7\x46\xf6\x87\xcd\x0c\x03\x9b\x9a\xa0\x70\x6c\xcf\x10\x15\xbf\x78\x26\x2d\xea\xa1\xe1\xc4\x5b\x32\x50\xe1\xe8\x63\xa6\xc2\xf1\x80\xf4\x85\xcd\x53\x17\x36\xab\xa3\xbc\x81\xf9\x0a\xc7\x43\x72\x1b\x36\xac\x7e\xfc\x98\x06\x2d\x1c\x0f\x8a\x81\xdb\xcc\xb8\xb5\x02\xf4\x0d\xe3\xdc\x1f\xd1\xd0\x85\xe3\x31\xcc\x5d\x38\x1e\xb4\x8f\x9b\x98\xbe\x70\xf4\xd9\xc5\x27\x30\x83\xb9\x77\x7e\x4a\x63\xd8\x3d\x4b\x66\x36\x89\xe1\xd8\xd8\x30\xe6\x80\x7b\x50\xc0\xea\x03\x82\x55\x1f\x18\xa8\x9a\x10\xa4\xda\xfb\xa7\x1b\x18\xcf\x70\x3c\x0c\xa3\x9f\xd0\x90\xe6\x17\x7c\x32\x73\x1a\x8e\xa7\x36\xaa\xe1\xd8\x98\x9f\x3e\xcc\xc0\x16\x4f\x7e\x0f\xba\xf6\x29\xda\xa4\x18\x17\xd7\x12\xbb\x5a\x3e\x48\x89\x38\xbf\xf5\xc3\x25\x5d\xe2\x06\xd8\xa8\x53\x26\x82\xf6\x15\xeb\x54\x33\x29\xaf\x48\xa3\xef\xf7\xa8\xad\x7d\xef\x7b\xd2\x63\xb3\x28\xc1\x0f\xb9\x61\xe7\x4d\xc5\x7e\xe2\x66\xf6\xc9\xf7\x93\x76\xd7\xcc\x34\x75\x05\x7b\x11\x7d\x61\xf1\xf2\xbc\x55\x4e\x4e\x0d\x92\xd8\x42\xce\xe7\x4c\x94\x18\x6d\x39\xa7\x57\xeb\x11\x5e\x5b\xf5\x16\xb3\x0a\xaa\x0a\x55\x38\x58\x8a\x7d\xae\xa9\x68\x95\x95\x6b\xcb\xa8\xd7\xa1\xf0\x86\x08\xbc\xa9\x4c\xb6\x71\x9e\xe9\x83\xe5\xed\xe5\xbc\xd2\x28\x31\xb4\x93\x3f\x4a\xc6\xac\x92\x50\x1f\x09\x33\x27\x30\xcb\x68\xe3\x54\xcb\xd3\x89\xff\x95\x93\x9c\x5c\x73\x1f\x26\xa6\x6d\x75\x76\x5d\xf1\x82\x05\x96\x29\xc5\x06\x45\x1a\xce\x9d\x34\xbd\x99\x80\xbe\x09\xef\xdb\x90\xef\x3d\x80\xe7\x25\xf0\xbb\xb6\xce\xe0\x63\x9c\xbc\x9f\x3a\x3e\xfb\x6b\xff\xd9\x26\xa7\xef\x1f\x7e\x39\xff\x75\x23\xe1\xfc\x43\x1f\xfd\xec\xc7\xdf\xa5\xa8\xad\x0c\x1c\xce\x7e\x89\xb5\x14\x54\x59\x66\x0f\x96\xfc\x21\x79\x77\x7e\x72\x74\x79\x32\x20\x3f\x9c\x1d\xc3\xbf\xc7\x27\xef\x4f\xec\xbf\xef\x3e\x7d\xfc\x78\xf2\xee\xd2\x0a\xcf\x5f\xdd\x0b\x02\xb4\x2b\xae\x2a\x3c\x7d\x2b\xa1\xc8\x2e\x31\xa7\x62\x41\x26\x8d\xb1\x14\xb9\x05\xa6\x03\x25\x45\x13\x22\x2d\xcb\x4d\x92\x1d\xbf\x38\x1c\xec\x9c\x79\x38\xd0\x65\xab\x6d\xb4\x67\xae\x43\xb4\xcb\xeb\xbf\xff\xcd\x9e\x06\xc9\x37\xce\xd3\x7c\x28\x8e\xf7\x4b\xe1\xfc\xcd\x6f\xee\x9d\xf8\x3b\xa9\x08\xfb\x4c\xe7\x75\xb5\x41\x8a\xdc\xab\x5a\x96\xfa\x95\x4b\xd6\xb5\xff\x7d\xff\xbe\xc3\x4f\x0e\x2b\x39\x7d\x15\x72\x7c\x19\xa9\xe4\x94\xe8\x66\x1c\x12\xb8\x41\x12\xdc\x68\xb6\xaf\xfc\x34\x9d\x6c\xd4\x41\xc8\xf2\x8e\x66\xdd\x18\xb8\xce\x9c\xf1\x04\x0f\x81\xeb\x50\x17\xb4\x62\x9d\x99\xec\x07\x0f\x05\xe8\xab\xc3\xd5\x6f\xe8\x55\x15\xae\x96\x66\xbc\xff\x84\x4f\x27\xe4\x86\x57\x65\x41\x55\x79\x8b\x60\x80\xf0\x87\xf7\x09\x70\x07\xfb\xe9\x09\x10\x1d\xdb\xb5\xb1\xac\xe1\xfd\x36\xab\x6b\xa6\x2a\x5a\x63\x26\x20\x34\x82\x84\xc8\xe5\x4d\x60\x3c\x66\x35\x83\x52\x02\xd8\xfc\x8a\x11\x26\x8a\x4a\x42\xe1\x46\x14\x3c\x07\xdd\x83\xc1\x40\x67\xdf\xa8\x66\xd3\x14\xf1\x2f\x9c\xc3\x42\x4e\x59\x6e\xc2\x83\x89\x6a\x77\x16\x57\xf5\x29\xc8\xf7\xce\x83\xf6\xc0\xa0\x68\x33\xb2\xe7\xea\x48\xec\x0d\xc8\x5e\xa8\xa3\x59\x3a\xa5\x7c\xef\xab\xfb\x2b\x14\x87\x09\xe2\xe2\x01\xa0\xb3\xbb\x60\x87\x21\xc0\x19\xd7\x6a\x01\xf4\xf6\x61\x1a\x1b\x83\xde\xd6\x98\xb5\x52\xa5\xf3\xb6\xc0\x3b\x74\x17\xba\x7f\xa6\xf8\x45\x6f\x41\xdd\x16\xe9\x48\x86\x78\xef\xab\xce\xf4\xc6\xd7\x26\x27\x42\xba\xc3\x53\xcc\x62\xe3\xba\x6c\x80\x78\x5c\x74\xee\x5e\x08\x73\x89\x8b\xec\x72\x45\x6a\xaa\x98\x30\x01\xf8\xfb\xa7\x75\xcd\x8f\xc1\x1e\xf3\xd5\xde\x66\xb7\x72\xed\x25\x8a\x22\x1b\x36\x34\x57\x5c\x84\x5f\xbc\xab\xa8\xd6\x2b\x7c\x9e\xc0\x05\xec\xc4\xae\x32\xbd\x65\xbf\x2e\xec\x03\x5a\x80\xce\xe8\xf5\x9a\x57\xdd\x00\x68\x43\xd5\x94\x99\xf5\x31\x09\x54\x2c\x3e\xad\x6d\x01\x31\xdc\xb8\xa5\xda\xb0\x87\xd1\x88\x0b\x33\x94\x6a\x88\x3f\x79\x4b\x8c\x6a\xee\x32\x3d\x18\x3e\x67\xb2\x31\x17\xac\x90\x62\x75\xde\xb0\x7b\x2e\x5b\x90\xc5\x03\x92\xa9\x5d\x9c\xcf\x91\x97\xc0\xe3\xbe\x34\xde\x22\xd5\x8a\xe7\x3e\xb6\xa7\x5b\x5f\xf4\xd3\xfb\x0f\x29\x87\x4d\xa0\x88\xd4\xfa\x93\xfc\xd1\x31\x65\x31\x0d\x90\x3a\xc8\xd7\xfe\xec\x43\x63\x1e\xfe\xa3\x77\x21\x66\x64\xfd\xd3\x6e\x33\xd6\xd7\x7a\xbc\xf3\xfd\xb5\xa1\xa6\xb9\x85\x0d\xf7\xb1\x22\x47\xdf\x2f\xb0\x96\x83\xd3\xf0\x2f\x60\xaa\xd8\x6d\x15\x97\x91\x43\xa5\x0e\xeb\x68\xc2\x73\x3e\xa9\x64\x44\xdc\x0f\xed\x95\x35\x8a\x72\xb4\x88\xd1\xc2\x34\xf4\xb6\xd7\xdd\xfe\xd8\x25\xa4\xac\x2e\x1e\xbb\xc6\x26\xb6\xce\x0e\x56\x30\x65\xf4\x7b\xaa\xcd\x0f\x75\x49\xef\x28\x23\xb0\x94\x68\xa2\x0d\xdc\x29\x54\x6b\x6f\x04\x2b\x2d\x13\x72\x5b\x82\xf3\x91\x1b\x4b\xdd\x1b\x9c\x71\xc5\x84\xf7\x60\xa5\xbf\x63\xf6\xe7\x43\xbb\xd4\x6a\xa8\xcf\xa5\xdd\x93\xa3\x95\x34\xaa\x9b\xcf\x73\x1f\xb4\x96\xa3\x29\x98\x8d\x08\xf6\x79\x95\x58\x99\x0e\x71\xc5\xa8\x58\x9d\x6f\xd9\x81\xf5\x1d\x3e\xf7\x70\x9c\x72\x0b\x90\x9b\x19\xb7\x1a\x17\x96\x5b\xd0\xc4\x0b\xb1\x25\xab\xd8\x1d\x55\x17\x12\x53\x80\xdc\x0a\xc7\x6e\x81\xd4\xe8\xe9\xb3\xee\x74\xc1\xe9\xed\xd4\x4b\x97\x98\xdb\xea\x69\x4e\xf6\x09\xe6\x8a\xe5\x17\x06\xe1\x6d\x5c\xc9\xe2\x0a\x4b\x7b\x43\x5d\x33\xfe\x0f\xa6\xd6\x08\x19\xe0\x48\xe4\xa2\xe4\x45\x88\x58\xa8\x95\x9c\x2a\xa6\x3b\x5b\x8d\x65\x60\x35\xce\x6e\xd7\xb4\x7b\x1e\xd6\x95\xaa\x75\xef\x34\xc2\x55\xbe\x78\x9a\x2c\x25\xaf\x9a\x43\x0a\x67\xc7\x9d\x7e\x5b\x4b\xc7\x12\x93\xd0\xe4\xc1\xd9\x68\xe8\xdc\xe5\x59\x1f\x7e\x7f\x77\xf6\x71\xd6\x14\xa2\x75\x39\xd0\xf8\x04\xf7\x5d\x6f\xd6\x3e\xb5\x26\x5b\x7a\x53\x6f\xc0\x3d\x59\xd1\x64\x73\xd5\x29\x80\xbc\xc9\x6c\x59\xd3\x2a\xb2\x47\xca\x6c\x50\x10\xf8\x21\xf1\x2f\x9b\xf6\x8e\x7a\x90\xe7\x5b\x3c\xa4\x0b\x48\xe7\xb6\xb4\xca\x94\x2b\x9f\x82\x21\x72\x13\xa9\xee\x54\xdb\xf2\x01\xbf\x3e\x87\xfe\xde\x89\xac\x4c\x7b\x77\x2c\x7a\x97\x71\x7b\x0a\x1a\x7e\x32\x20\x94\xcc\xb8\x36\x52\xb9\x20\x11\xcb\x00\x8d\xa2\x42\xe3\xf7\x77\xf2\x8a\xd4\xe8\xf6\x77\x01\x04\x42\xeb\x9a\x51\xe5\x5d\xf5\x8e\x9d\x51\x0d\x76\xd4\x42\xaa\x72\x25\x60\xde\x24\xb3\x52\x1c\x5b\xb9\x7c\x86\xf2\x21\x15\xd5\xe6\x32\xc0\x60\x65\x8a\x0d\xa9\x71\x57\x62\x72\xaf\xd8\xbe\x8d\x2f\x63\x29\x45\xfb\xa5\x24\x54\x38\x4b\xd5\x5d\x4b\x6c\x84\x5f\xf7\xcb\x25\xed\xbb\xa1\x00\xd8\xeb\xbd\x6e\x82\xb0\x17\xbd\xe2\xd3\x40\x3e\x67\x5a\xaf\xcd\x29\x5f\x2a\x66\x03\x0d\x94\x48\x68\xa0\xe4\x7e\xee\x99\x3d\x0a\x0e\x98\x5e\xe1\x8b\x33\x2f\xee\x46\x35\x02\x62\x02\x9a\x41\xc2\xb5\x4a\x3a\xb2\x7a\x46\xf5\xa6\x2f\x13\x6e\x51\x48\xe3\xd9\xf8\x3a\x6c\x08\x8d\x62\x54\xaf\x2b\xcf\xf1\x90\x38\xe8\xb1\xe2\x6c\x42\xde\xd1\x39\xab\xde\x51\x9d\x73\xe7\x81\x3c\xac\x33\xd5\xb0\xd1\x74\x44\x5e\x9d\x47\x91\x32\x1f\xa5\xf9\xc0\xcc\xab\x7e\x7b\xb3\x19\x21\x78\x54\x12\x90\xac\x8e\xdc\x7f\xe1\x13\xaf\x7a\x32\x84\x6b\x2e\xf6\x4e\x5c\xe9\xf5\xa5\x69\xee\xba\xc6\xdd\x0b\xdc\x28\x30\x4f\x16\x7d\x2f\xf2\x3d\xe5\x2e\xee\xba\xbc\x9b\x5c\xdb\x2d\x5d\xd8\x87\x5c\xd5\x7b\xde\x3e\x4c\x71\xb1\xd2\xd4\x73\x6b\x23\x2e\x3b\xea\x34\x38\x8b\xe2\xf0\x78\x68\x4d\x66\xa1\x7f\x77\xf1\x63\x4e\xc1\x68\xbb\x25\xa4\xdc\xa1\xde\xf9\xfd\x1a\xc9\x7f\xb8\x9e\xcf\xa7\x96\xa7\x2a\xc1\xff\x66\x31\xe0\x29\x23\xe6\x8e\xfd\xaa\xce\x00\x13\x5a\xe0\xc0\x5f\xe8\xe0\x0f\x90\x75\xf0\x63\xdf\x48\x52\x2b\x76\x0d\xa9\x14\x02\x52\x44\x19\x11\x4c\xdb\x8b\x72\xb0\x66\xf9\x0d\x55\xb6\xcd\xd4\xb5\xfb\x55\xe9\x7b\xd5\x64\x72\xff\xd1\xfa\x87\xd6\x1d\x30\x8e\x4d\xb5\xc2\x0d\xb4\xee\x07\xa8\x83\xf7\xeb\x54\x0f\x98\xec\x5e\x01\xf3\x81\xf3\xad\x36\x3c\x2f\x8f\xa5\x6e\x35\xf6\x27\xe7\x40\xcf\x31\xd8\xa2\xb0\x54\xb9\x80\x46\x4c\x48\xe6\x1d\x79\xea\x1a\x99\xcf\x97\x69\x20\x84\xdd\x77\x31\x3c\xd7\x6b\x35\x0d\xcf\xb7\xe7\xf7\xd6\x85\xdb\x78\xbe\x1d\x28\x72\x77\x2f\x02\x3d\x6e\xd5\x2b\x1c\xf7\x61\xdd\xf6\xf1\x6d\x93\x82\xa7\x6b\x71\xec\x91\xea\x0d\x6a\xa6\xae\x59\xd9\xf1\x30\xba\x86\x68\xdd\xcf\x22\x7f\x74\x3b\xbf\xdb\x76\xf2\x5f\xff\xfd\x9b\xff\x3f\x00\x00\xff\xff\x5d\x7e\x11\x84\x21\x98\x0b\x00") +var _operatorsCoreosCom_clusterserviceversionsYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\xbd\x7b\x77\x1b\xb9\x95\x2f\xfa\x7f\x3e\x05\x96\x93\xb9\x92\x26\x24\x65\x27\x93\xdc\x19\x9f\xb9\x93\xa5\x23\xbb\xbb\x75\xbb\x2d\x6b\x59\x8a\x73\xb3\x7a\xfa\x24\x60\xd5\x26\x89\x51\x15\x50\x03\xa0\x28\x33\xa7\xcf\x77\xbf\x0b\x1b\x40\x3d\xf8\xb0\xc8\x02\x24\x96\xdd\x85\xac\x95\xb6\xc8\x22\xb0\x0b\x8f\x8d\xfd\xf8\xed\xbd\x69\xc1\x3e\x82\x54\x4c\xf0\xd7\x84\x16\x0c\x3e\x69\xe0\xe6\x2f\x35\xb9\xff\x57\x35\x61\xe2\x7c\xf9\xea\x57\xf7\x8c\xa7\xaf\xc9\x65\xa9\xb4\xc8\x3f\x80\x12\xa5\x4c\xe0\x0d\xcc\x18\x67\x9a\x09\xfe\xab\x1c\x34\x4d\xa9\xa6\xaf\x7f\x45\x08\xe5\x5c\x68\x6a\x3e\x56\xe6\x4f\x42\x12\xc1\xb5\x14\x59\x06\x72\x3c\x07\x3e\xb9\x2f\xa7\x30\x2d\x59\x96\x82\xc4\xce\xfd\xd0\xcb\x97\x93\x57\x7f\x9c\xbc\xfa\x15\x21\x9c\xe6\xf0\x9a\x24\x59\xa9\x34\x48\x05\x72\xc9\x12\x70\x8f\xa9\x89\x28\x40\x52\x2d\xa4\x9a\x24\x42\x82\x30\xff\xc9\x7f\xa5\x0a\x48\xcc\x60\x73\x29\xca\xe2\x35\xd9\xfa\x8c\xed\xd7\xd3\x44\x35\xcc\x85\x64\xfe\x6f\x42\xc6\x44\x64\x39\xfe\xdb\xbd\xab\x1d\xfe\xd6\x0e\xef\x26\x08\xbf\xcf\x98\xd2\xdf\xef\x7e\xe6\x07\xa6\x34\x3e\x57\x64\xa5\xa4\xd9\xae\x17\xc1\x47\xd4\x42\x48\x7d\x5d\x93\x65\xc8\x48\xd4\xb2\xf9\x6f\xf7\x20\xe3\xf3\x32\xa3\x72\x47\x6f\xbf\x22\x44\x25\xa2\x80\xd7\x04\x3b\x2b\x68\x02\xe9\xaf\x08\xf1\x63\xd9\xce\xc7\x84\xa6\x29\xae\x17\xcd\x6e\x24\xe3\x1a\xe4\xa5\xc8\xca\x9c\x57\x83\x9b\x67\x52\x50\x89\x64\x85\xc6\x35\xb9\x5b\x00\xce\x1a\x11\x33\xa2\x17\x40\x2e\x6f\x3f\x56\x8f\x12\xf2\x5f\x4a\xf0\x1b\xaa\x17\xaf\xc9\xc4\x2c\xc0\x24\x65\xaa\xc8\xe8\xca\x90\xd0\x78\xca\xae\xe6\x1b\xfb\x5d\xe3\x73\xbd\x32\xf4\x2a\x2d\x19\x9f\x7f\x6e\x7c\xf7\x12\xfb\x91\xb0\x6c\xac\x53\x73\xf8\x8f\x1b\x9f\xef\x3b\xbc\x7f\x7d\x6a\x46\x26\x7a\x41\x35\xd1\x0b\xa6\x88\xe0\x40\x24\x14\x19\x4d\x40\x7d\x86\xa0\x2d\x8f\x58\x8a\x3e\x6c\x7e\xb1\x83\xa4\x66\x97\x9a\xea\x52\x4d\x8a\x05\x55\x9b\x53\x7c\xb3\xf6\xe9\x96\xee\xec\x83\xcb\x57\x34\x2b\x16\xf4\x95\xfb\x50\x25\x0b\xc8\x69\xbd\x07\x44\x01\xfc\xe2\xe6\xea\xe3\xef\x6f\xd7\xbe\x20\xed\xd9\xd9\xba\xfb\x09\x53\x66\xaa\x90\x51\x10\xcf\x29\x70\xed\x56\x05\x90\xbf\x6f\xfd\xcd\x6d\x01\xc9\xdf\x27\x1b\x94\x8b\xe9\x7f\x41\xa2\x1b\x1f\x4b\xf8\xef\x92\x49\x48\x9b\x14\x99\x09\xf2\xdc\x67\xed\x63\x33\xff\x8d\x8f\x0a\x69\xd8\x82\x6e\x1c\x79\xdb\x1a\xec\xaf\xf5\xf9\xda\xdb\xfe\x3c\x5e\xfb\x96\x10\x33\x49\xee\xad\x53\xc3\x0b\x41\xe1\x0e\x75\x7b\x10\x52\x37\xb3\x76\xe7\x32\x65\xb6\x8b\x04\x05\xdc\x72\x47\xdc\x54\xdc\xbd\xe5\x64\xa3\x73\x33\x45\x20\x95\x61\x11\x65\x96\x1a\x26\xba\x04\xa9\x89\x84\x44\xcc\x39\xfb\x47\xd5\xbb\x22\x5a\xe0\xb0\x19\xd5\xa0\x34\xc1\x73\xcd\x69\x46\x96\x34\x2b\x61\x44\x28\x4f\x37\xfa\xce\xe9\x8a\x48\x30\xe3\x92\x92\x37\x7a\xc4\x9f\xa8\x4d\x5a\xde\x09\x09\x84\xf1\x99\x78\x4d\x16\x5a\x17\xea\xf5\xf9\xf9\x9c\x69\x7f\x3d\x24\x22\xcf\x4b\xce\xf4\xea\x1c\x39\x3d\x9b\x96\x86\xf5\x9e\xa7\xb0\x84\xec\x5c\xb1\xf9\x98\xca\x64\xc1\x34\x24\xba\x94\x70\x4e\x0b\x36\xc6\x97\xe1\x78\x45\x4c\xf2\xf4\xd7\xd2\x6d\x13\xb5\x36\xf0\xd6\xf3\x40\x3c\x87\x3e\x70\xb1\x0c\xc7\xb6\x9b\xd3\x76\x68\x5f\xb6\x5e\x13\xf3\x91\x99\xc6\x0f\x6f\x6f\xef\x88\xa7\xc8\x1d\x75\x5c\xa2\xfa\xd1\x2d\x33\xe4\x57\xcb\xcc\x2c\xe3\x33\x90\xf6\x97\x33\x29\x72\xec\x15\x78\x5a\x08\xc6\x35\xfe\x91\x64\x0c\xb8\x26\xaa\x9c\xe6\x4c\x2b\xdc\xd6\xa0\xb4\x59\xc8\xcd\x8e\x2f\xf1\x3a\x25\x53\x20\x65\x91\x52\x0d\xe9\xe6\x23\x57\x9c\x5c\xd2\x1c\xb2\x4b\xaa\xe0\xd9\xd7\xce\xac\x91\x1a\x9b\x05\xd9\x7b\xf5\x9a\xc2\xc2\xe6\x0f\x36\x4e\x3d\x21\xfe\x76\x3f\x64\xb9\x77\x32\x1a\x92\x42\x92\x51\x69\x05\x14\xa2\x21\xcb\xc8\xfb\x1f\xde\x91\x85\x78\x30\x07\x89\x71\xa5\x69\x96\xe1\xc1\x74\x42\xc4\x46\xd7\x78\x07\x24\x94\x93\x9c\x72\x3a\x07\x42\x8b\x42\x91\x99\x90\x84\x92\x39\x5b\x02\xf7\x0c\x60\x7d\x2d\x76\xbe\xdf\x2e\xce\x46\xec\x8d\xb4\xf5\x56\xf5\xdf\x3a\x82\xd7\xbe\xd9\xc5\xeb\x4c\xdb\x90\xcf\x0e\x9b\x58\xd3\x2e\xea\x2e\xf0\x48\x71\x52\x72\xa5\x65\x89\xbb\x24\x25\xf7\xb0\x72\xa7\x2b\xa7\x05\x51\x5a\x98\x0f\x1f\x98\x5e\x10\xda\x3c\x59\x54\xe3\x71\x99\x6e\xbe\x96\x69\x0a\x34\x99\xae\x88\x91\x46\x91\x9d\x69\x21\x32\xe4\x75\xd8\x9f\x61\x6b\x44\x82\x96\x0c\x96\x40\xa8\x9c\x32\x2d\xa9\x5c\x55\x7b\x6b\xf3\x1c\x7c\x76\xfe\x71\x5e\x1a\xc2\xd1\xee\xd9\x23\x9f\xdb\xd9\xc4\x5e\x27\x4e\x36\x4b\x2b\xf9\xb8\xfb\x44\xdf\x5c\xb9\x1d\x5c\x0b\xdb\xca\xed\x60\x50\xc4\xec\x54\x27\x16\x55\x52\x3b\x12\xe0\xb6\x66\x4a\x84\xac\xf6\x16\x99\xae\xb6\x8e\xd1\xd8\xea\x64\x0a\x86\x0d\x4a\xca\xcd\xd4\x6f\x3d\x42\x1d\x26\xf6\x73\x9b\xd1\x34\xf1\xc0\xb7\xed\xfc\x66\xdf\x54\x4a\xba\x9d\x7a\x42\x98\x86\x7c\x47\xcf\x64\x7d\x9a\x9b\xf3\x59\x7d\x6c\x08\x5c\xb2\x14\xcc\xc4\x6a\xca\xec\x2e\x33\x3c\x81\x4e\x45\xa9\xed\x7c\xba\x47\x52\xb2\x64\x94\xd0\xf9\x5c\xc2\x1c\xf7\xff\xce\x61\x1f\x99\x13\xdb\x76\x1f\xfb\xba\x8d\xad\x52\xf3\xd9\x27\x0c\xfb\xfd\xec\x03\x7c\x1b\xf3\x68\x3e\xb0\x29\x37\xb7\xdb\x63\x6b\x68\x1b\x4d\xcc\x9c\xf8\xa9\x15\xf2\xb3\x0f\xef\xb3\xb6\xb6\x3d\xb2\xc2\xb6\xb5\xd7\x79\x8d\x10\xf7\xed\xd4\x9c\x99\xfa\x02\x30\x9c\x03\x1f\xac\x59\xfa\x14\x48\x01\x72\x26\x64\x6e\x0e\x0f\x27\x94\x24\x56\x94\xad\xf8\x16\x32\x5c\x9e\x7c\x6e\x3a\xc9\xbe\xeb\x6f\xdb\x3e\xbb\xc0\xb6\x31\x29\xa8\x5e\x3c\xf2\xd8\x7e\x4b\x65\x5b\x73\xd2\x1e\x7d\xf8\x11\xc6\xb7\xd1\x77\x7d\x6f\x45\xef\xdb\x4c\x43\xf4\x4e\xf1\xca\xda\xa7\xd7\x7d\x38\xf7\x7a\xfb\x40\x1f\xde\x81\x52\x46\x5e\x40\x21\x54\xd2\x07\x02\x3c\x11\x86\xa7\xfc\xbf\xb7\xef\xaf\xed\xe8\xdb\xb8\xeb\x66\xbb\xd2\x84\xe5\x45\x06\xb9\x91\x45\xc9\x8f\xef\xa8\x54\x0b\x9a\x81\xfc\x09\x6f\xc5\x1f\xff\xcc\xf3\xf6\x27\x09\xdd\x7d\xb0\x9b\xcd\x08\x99\x0a\x52\xc3\xfe\x52\xc8\xe8\xca\x12\x96\x42\x22\x52\x73\x2d\x08\x49\x0a\xa3\x2c\xe4\x45\xa9\x81\x50\xfb\x2d\xbe\x03\xe3\xf3\x7d\x28\x3f\x68\x35\x88\x11\xa9\x72\xaa\x5f\x93\xe9\x4a\x3f\x76\xda\x08\xf9\x34\x4e\xf7\x65\x3b\x4d\x62\x1e\x67\x3e\xb6\xed\xc5\x82\x9a\x1d\x3f\xfa\x96\x46\xde\xa6\x8c\x83\xbc\x11\x52\xef\xc3\x27\x8d\x62\x37\x87\x4d\x71\xb4\xd9\xfc\x94\x31\xae\x7f\xff\xbb\xcf\x3c\x99\x42\x91\x89\x95\xd9\x3f\x8f\x1f\xcf\x3d\xdf\x67\x6f\x56\xb2\x6f\x7f\xfb\xb2\x8f\x3d\xfb\xb3\xa6\xc1\x18\x3d\x6d\xd3\x3e\x3b\x75\xc4\x63\xbd\x5b\xa5\x40\x1f\xed\xbe\xbd\xb9\xf2\xb6\x9e\x0f\x30\x03\x09\x3c\xf1\x7c\xae\xfa\x53\x0b\x42\xc9\xf7\xe5\x14\x24\x07\x0d\xaa\xa1\x09\xac\x0a\xf0\x86\x35\xb0\x3f\x90\x20\x49\xa9\x59\xc6\xfe\xb1\xcd\x1c\xb1\xed\xad\xa2\xdf\xb4\x8f\xc8\x54\xfe\xb1\x47\x24\x2b\xff\xd8\x63\xf2\x95\x6d\x87\x5c\xdd\x8f\xef\x42\xdb\x5a\xeb\x84\x46\x10\xa7\x31\x54\x2b\x93\xb6\x97\x22\x3a\x27\x7f\x7c\x9b\x6f\xa1\xf4\x06\x8d\xe7\x2d\xe3\xf3\x2e\x82\xc9\xe9\x2e\xbf\xc4\xc4\x28\xfc\x13\x34\x89\xff\xf8\xd3\xc4\x76\x79\x36\x21\x6f\xf3\x42\xaf\xbc\x19\x88\x3d\xd2\x39\x53\x84\x0b\xbd\x29\x08\x46\x9f\xa6\xe5\x76\x23\xe4\xa3\x33\x75\x71\x73\xe5\xcd\xdb\xcf\xb8\xb4\xaa\x80\xa4\x07\x82\xfe\x6d\x8b\x8c\x96\x98\x3f\x63\x90\xa5\x84\x19\x19\xde\x10\x4b\xa6\x99\x48\xee\x9d\x25\xff\xc3\x1b\xa2\x84\xe5\x39\x46\xd1\x33\x92\x7f\x22\xb8\x2a\x73\x20\xec\x31\x26\x32\x48\xf6\x83\x64\xdf\x6c\x83\x64\x3f\x48\xf6\xad\x66\x9d\x74\x7d\x60\x8e\x6b\x84\xec\x64\x8f\xf8\xdc\xc0\x20\x3f\xd7\x06\x06\x89\x6d\x60\x90\x03\x83\x7c\xac\xe3\x47\xdf\x72\x2f\x49\xf7\xd1\xbe\x1e\xe3\x1d\x83\xe7\x60\xf0\x1c\x0c\x9e\x03\xd7\x86\xeb\xd3\xb5\xe1\xfa\x1c\xae\xcf\x76\xfb\xe2\xae\xcf\xc1\x73\x30\x78\x0e\x06\xcf\xc1\xe0\x39\x68\xb6\xc1\x73\x30\x78\x0e\x06\xcf\xc1\xe0\x39\xd8\xd1\x06\xc9\xbe\x63\xa7\x83\x64\x3f\x48\xf6\xbb\xda\xe0\x39\x18\x3c\x07\x03\x83\x1c\x18\xe4\xc0\x20\x77\xb4\x3e\x7a\x0e\x92\x0c\x28\xdf\xae\xce\xaf\x05\x37\xe2\x73\x28\x00\xb2\x19\x73\xa1\x7d\xee\xd7\x64\x0a\x0b\xba\x64\xa2\x94\xe4\x61\x01\xdc\xc7\xa5\x92\x39\x68\x65\x76\x01\x68\xd8\xa6\x01\x3e\xc2\xde\x3e\xcf\xd2\xc6\x04\x38\x9d\x66\x5b\x3b\x7e\x8c\x7b\xb9\x5f\x7e\xde\x53\x32\x15\xc2\xbc\xdd\xe6\x8c\xa1\xf6\xe2\xb5\x81\x08\x41\x2d\xbb\x74\xae\xed\x81\x2d\x97\x1f\xde\x3c\x69\x38\xcb\xd6\x4e\xae\xaa\xb1\x09\xba\x70\x30\xec\xcf\x5c\x79\xe6\xd3\xf7\x0f\x1c\x52\x8c\x02\x1f\x11\xa6\xcd\x03\x86\xb1\xb0\x84\xe9\x6c\x55\x91\xf7\x65\xc7\xc9\x5c\x7e\x78\xb3\xbf\x9b\xcb\xaf\xd2\xce\xae\x23\x7a\xb4\x06\x7f\xd5\xe0\xaf\xaa\xda\x20\xb4\x75\xec\x74\x10\xda\x06\xa1\x6d\x57\x8b\x2f\xb4\xf5\xdd\xbf\x33\x78\x65\xc8\xe0\x95\xf1\x8f\x0d\x5e\x99\x47\x1f\x1f\xbc\x32\x83\x57\x66\xf0\xca\x7c\xbe\x0d\xf2\xab\x6b\x83\xfc\x3a\xc8\xaf\xed\xf6\xc5\xc9\xaf\x83\x57\x66\x60\x90\x03\x83\xac\xdb\xc0\x20\x07\x06\xd9\x6a\x5f\x62\x3c\xc7\x60\xe1\x1e\x2c\xdc\x83\x85\x7b\xb8\x00\x87\x0b\x70\xb8\x00\x1f\xeb\x78\xb0\x70\xfb\x36\x58\xb8\x07\x0b\x77\xab\x0d\x16\xee\xc1\xc2\x3d\x58\xb8\x07\x0b\xf7\x8e\x36\xc8\xaf\x1d\x3b\x1d\xe4\xd7\x41\x7e\xdd\xd5\x06\x0b\xf7\x60\xe1\x1e\x18\xe4\xc0\x20\x07\x06\xb9\xa3\xf5\xd1\xc2\xfd\xc8\xe1\xdd\x67\x97\x36\xed\xd5\x4e\x6c\xf6\x48\xf7\x09\xb9\xa4\x9c\x30\x9e\x64\x65\x0a\xf8\xcd\x0c\xa8\x2e\x25\xa8\x11\xc9\x58\xce\x7c\xb1\x0e\x21\xcd\xa6\x19\x27\x54\x81\x72\x7d\x6c\x1d\xaa\xea\x77\xcb\xb7\x9f\x7f\xcd\xcf\xf3\x91\xcf\x16\x17\xab\x60\xfb\x8c\xfb\x7e\xdc\xb6\x3a\x98\x0c\x96\xec\x31\xcd\x66\x7c\xf3\x20\xd6\x6e\xb1\x85\x7e\x1e\x7d\xed\x5d\x5b\xf0\x33\x5b\xee\xd1\xcb\xe5\xb1\x2b\x65\x4c\xa6\x54\xc1\x1f\xff\x65\xa3\xc4\x55\xf3\x91\x1c\x52\x46\xcd\x50\x5b\x9f\x78\xfc\x9a\xa9\x87\xd8\xbd\xc9\xf7\x38\x2c\x15\x19\x1d\x7b\x71\xe5\x6c\xba\x1e\x11\xb3\xef\xd2\x2b\xdb\xc7\xad\x96\x54\xc3\x7c\xd5\xa8\xdb\x84\xdb\xac\x16\x1a\xf8\x8e\x12\x66\x5e\x03\xdd\x3a\xc4\xc3\x02\xa4\x3d\x62\xbe\x56\x90\xf2\x03\x31\x55\x85\x0b\x75\x89\xff\x78\x2c\xfe\xc7\x8f\xb3\xe5\xeb\xc7\xd6\x77\x5b\x05\x25\xdf\xf6\xbd\x20\xfd\x7c\xbe\xb1\x1e\xb2\x37\x55\x22\x98\xf5\x09\x2e\xa8\x34\x17\x93\xf7\xa4\xa1\x78\x56\x3f\xbd\xb3\xff\xb5\x65\xdb\x75\x47\xed\x21\xab\x3d\x2e\xa3\x8d\x1b\x79\x6c\x76\x79\xf5\xf6\x11\xcd\x5c\x31\xc6\x1b\x90\x39\x53\x6a\x57\x50\x54\x9b\xf4\xc7\x6e\xb1\x3d\x6e\xaf\x35\x99\xd9\xaf\x8b\x7f\xa3\x06\x39\x95\x00\x6d\xad\x2c\x53\x9a\x10\x59\x66\x46\x9c\xe6\x29\x71\x75\x8a\x08\x4d\x12\x51\x72\x4d\x38\x40\x8a\x81\x55\x5b\xb7\xf7\x1e\x77\xdf\x1e\x12\xf4\xbe\xf2\xf3\xd8\xd2\xf9\xe8\x53\xee\x1d\x2e\xec\x2b\x6c\x2d\x92\xd5\x6c\xfb\xcb\xdb\x38\xfc\xe3\x42\xc4\x21\x92\xc9\xde\x72\x49\x17\x99\xf5\x46\x64\x2c\x59\x7d\x28\x33\x20\x0b\x91\xa5\x0a\x6b\xbe\x99\xcb\xb3\xf2\x89\x36\x75\xa9\x02\x9f\xc6\x97\x1c\x91\x69\xa9\x49\x2a\xc0\x9a\x0d\x5d\x76\xa9\xe6\xcf\xf7\x1a\xdf\x7a\xca\x1f\x16\xb6\x18\xa1\xe9\x98\xd0\xa2\xc8\x30\x72\x52\x18\xc1\xe3\x61\xc1\x92\x85\xad\xc1\x5a\xd0\x04\xb6\x3d\xb6\xbf\x5c\xba\x97\xae\x46\x0e\xd2\xd7\x88\x37\x7b\x4f\x1f\xdb\x75\xe4\x40\xc5\x8d\xd8\xb2\x60\xdf\x4a\x51\x16\x7b\x3e\xde\x6d\x0f\x10\x5b\x32\xcc\x0e\x64\xae\x23\xbd\x26\x62\xf9\x2f\x9d\x93\xdc\x2e\xb5\x72\x16\x58\xe7\x91\x99\x60\xf8\x63\x5e\x66\x9a\x15\x19\xfe\xc4\x66\xc0\x52\x84\x4a\xa8\x2f\xb8\x11\xa1\x7c\xe5\x7d\xee\xae\x84\x21\xa4\x84\xce\x4d\x8f\x1a\xcb\xa3\x8a\xd9\xde\x54\xdb\x1a\x89\x65\x6e\xe4\xaf\x86\x0d\x58\xa1\xba\xcf\x57\x35\x15\xe4\x81\x65\x99\x51\x7e\x68\x96\x89\x07\x48\x27\xe4\xc5\x8b\xf5\x0b\x28\x11\xb2\x41\x37\xb2\xba\x17\xff\xdc\x7a\xca\xf0\xb5\xfa\xc5\xf6\x53\xe4\x0e\xd5\x42\xc8\x61\x9a\x08\x39\x5c\xe7\x22\xa8\x4a\xdd\x57\x0e\xaa\x71\xc6\x94\x1e\x3b\x2a\xb5\xc8\x59\xb2\x57\x27\x5c\x70\xef\x88\xf8\xf3\x87\x1f\x9e\x7c\x83\x5e\xb7\x87\x73\x35\x39\x41\x9b\x3d\x5a\x50\xa9\x19\xcd\x48\x29\x33\x65\xf7\x28\x35\x0a\x8b\xf4\x55\x50\x17\x14\x71\x1e\x09\x28\x64\x17\x84\xfc\xb3\xdd\x95\x6e\x33\x58\x56\x26\x78\xb6\x22\xd4\x6e\x85\x59\x99\x65\x23\x32\x63\x9c\x9a\x8b\x0c\x0a\x1f\xc3\xbb\x87\x69\xa6\x6e\xb7\x8c\x27\x60\xa6\x69\x5c\xf9\x26\x90\x72\x33\xb2\x61\x99\x15\x4f\x4b\x47\xae\xec\xa7\xb5\x54\x29\x47\x8a\xe1\x6f\x09\x9d\x66\x80\x9a\x86\x93\x39\x3f\x88\x0c\x5d\x8a\x95\xdf\x03\x6b\x85\xd2\xe6\xd7\xff\x93\xf1\x7d\xb5\x75\xdb\x3e\xe0\xd5\x9e\x50\x4e\x80\xe9\x05\x48\x1c\x7a\x65\xf8\xaf\xd9\xec\xf5\xa1\x3a\x55\x65\xb2\x30\x53\xf4\xa2\x10\xa9\x7a\x61\xb8\xf3\x0b\x05\x89\x04\xad\x5e\x9c\x99\xbf\xd6\xdf\x15\xe7\xab\xf9\xbb\x73\x5a\xb0\x17\x67\x23\x82\x13\x8e\x05\x4a\x85\x5e\xfc\xc2\xcf\x91\x9f\xb0\x56\x3d\xef\xc7\x5a\xeb\x14\x7d\x68\xf6\xe0\x2a\x6b\x8a\xc2\x16\xa5\x34\xf7\xa7\x06\x0c\x3b\x37\x27\x05\xf7\x5c\xc3\x07\xbd\x76\x91\x12\x72\xc1\x09\x58\xaf\x21\x68\x92\x03\xe5\xee\x69\x58\x82\x5c\xe9\x05\x3a\x12\x55\xc5\x45\x87\x95\xdb\x03\x8d\x50\xb7\xad\xab\xe6\x58\x99\x5f\xa1\xfa\xb8\xd9\xe2\xcf\xeb\x2b\x74\xf2\xcf\x27\xeb\x57\x52\x7d\x07\xff\xb2\xd7\x03\x85\xb0\x4e\x6b\xf1\xd1\xfc\xb2\xbd\x0e\xf6\x23\x7b\x99\x54\xec\xf0\x87\x1f\x6c\xb1\x67\x37\xe1\xdf\x33\x9e\xaa\x2a\xb1\x6a\x6a\x6f\x09\xb7\x68\x5b\x57\x0a\x29\xfc\xc5\xae\xd2\xa6\xd2\xb5\xaf\xa2\xf4\x08\x8d\x0d\xad\xbc\x0f\x8a\x34\xd6\x8b\x6e\x49\xc9\x86\xed\x8e\xac\x77\xde\x88\x95\x19\x9d\x42\xa6\x9c\x01\x11\x1a\xe4\x93\x8b\x1f\xde\x55\xa5\xdb\x25\xd0\x47\x8c\xe2\x4f\xa0\x3e\xef\x01\xf3\xd9\x28\x91\xbf\xd9\xf6\x57\x73\x70\x2a\x0e\x73\x62\x91\x5b\xd0\xf6\xac\xe6\xb4\x30\x47\xd5\xf6\x61\x9d\x2b\x6b\x8e\x93\x1f\x70\xa6\x1f\x3f\x71\x07\xa9\x87\xfb\x97\x7c\xde\x36\xc8\x5e\xe7\x6d\x3f\x28\xd1\x01\x1d\x7e\xce\x94\x57\xb7\xd6\x34\xaf\x6d\x68\xa7\x17\x3a\x4d\x2e\xa1\x4d\x87\x42\x0a\xca\x26\xd7\xb1\x09\x8e\xa4\xff\xbc\xee\x22\xf2\x12\x1c\xa2\x9f\x8f\x89\x82\x0c\x92\x6d\x35\xd9\xb7\x3d\xac\x21\x2f\xb2\xc7\x4e\x1e\x39\x58\x97\xcf\x19\xff\x00\x34\x5d\xdd\x42\x22\x78\xba\x27\x97\xee\xa6\x2c\xbd\x63\x9c\xe5\x65\x4e\x78\x99\x4f\x01\xd7\x42\xd9\x41\x91\xe3\x58\x83\x0a\x25\x1c\x1e\xb2\x95\xe3\x32\x29\x29\x44\xea\x19\xcf\xd4\x68\xf5\x34\xdd\xf7\xd2\x79\x60\x7a\x81\x65\x2b\xf8\xca\x0c\xc5\x74\x7d\x23\x4a\x92\x48\xaa\x8c\xd0\x38\xc2\xa1\x99\x36\xb7\xe8\x14\xd0\xc5\xce\x52\x30\x5b\x86\x2e\x29\xcb\x8c\x96\xb3\xef\xb5\xf8\x06\x66\xb4\xcc\x34\xda\x87\x5e\x92\x53\x43\xb8\x57\xee\xb7\x75\x6b\xf4\x0e\x25\x04\x37\xff\xb5\x69\x97\xf0\xe5\xce\x0e\xf0\xf3\xed\x93\x08\xdd\xb7\x7d\x13\xa2\xfb\x56\xd0\x52\xed\x6b\x66\x6a\xed\x86\x2b\x9e\x9a\x43\xd8\x94\xe6\x1b\xf7\x08\x53\xae\xe7\xfd\x66\xf5\xf3\xa9\xbc\xb6\x50\x2d\xc5\x5c\x82\x52\x6f\x80\xa6\x19\xe3\xf0\x0c\x9b\xfa\x6e\x01\x24\xa7\x9f\x70\x63\x6b\x96\x83\x11\xb6\x9a\xdb\x9a\x36\x5f\x5f\x0b\x92\xd3\x7b\xa8\xe8\x24\x53\x98\x09\xb9\x07\xa4\xc3\x37\xa6\x9a\x9b\xc9\x6e\xda\x19\x65\x19\xa4\x13\xa4\xa4\x31\x96\xd9\xec\x52\x64\x19\x48\xbb\x0f\xcd\xdf\x8c\x97\x40\xb4\xd8\x73\xb0\x42\x0a\x34\x4d\xd8\x01\x9a\xd2\x0c\x4a\x0b\xd4\x74\x69\x6f\x1c\x3c\x6c\x84\x92\x9b\xb5\xf9\x7f\xfb\x29\x41\x23\xfc\x9e\x03\x4a\xa0\x0a\x3b\xb3\xc7\x46\x95\x72\x46\x13\x2f\xbf\xb6\x5e\xce\x22\x66\x26\xe4\x5a\x68\x07\x5d\xae\xa6\xd4\xfc\x7a\xcf\xf1\x50\xd3\x07\x02\x4a\xb3\x1c\xb9\x4d\x5a\x22\x24\xd5\x0c\x86\x6b\x49\xb7\xef\xdd\xd6\x59\xff\xe3\xcb\x97\x7b\x8a\xce\x4f\x7f\x6a\x25\xa0\x6d\xe6\x49\x37\xfc\x75\xc5\xbd\xfd\xed\x5a\x88\x54\x99\xed\xc7\x9c\xaa\x52\x08\xf3\x8e\x12\xb1\x1c\x4c\x69\xc6\xe7\x25\x53\x0b\x32\x05\xfd\x00\xc0\x09\x7c\xb2\xe9\xe5\xf6\x1c\xef\x1f\x20\x05\xee\x37\xb3\x5a\xb5\x43\xb2\xb5\x06\xaf\xfa\xb3\x00\x4b\xa6\x98\xe0\xdf\x31\xa5\x85\x5c\xfd\xc0\x72\xf6\x48\x4d\x0b\xdf\xba\x73\x9f\xfa\x3a\x15\x59\x4a\x3e\xd8\x2d\x70\x0b\x76\x66\x24\xa0\xfb\x43\x0b\x6b\x1b\x21\x86\x23\x4c\x69\x72\xbf\xef\xad\x76\xf0\xaa\xee\x5a\xaf\x0e\xb7\xe8\xab\x97\x7d\x59\x56\x2f\xa8\x3d\xe5\x52\xa2\x4a\x50\x8d\x84\x77\x87\x3d\x58\x6f\x3f\xd9\xe9\x6e\x2d\xed\xc3\x42\x28\xc0\x07\x08\x95\x8f\xcb\x84\xcd\xd7\xf0\x3e\x51\xa6\x2a\x4e\x8b\x78\x15\x0e\x8a\xd0\xd9\xac\xfd\x44\x7a\x80\xa4\x6c\xdb\x95\x26\x79\xa9\x34\xc9\xa9\x4e\x16\xd6\x3a\x2d\xd2\x4a\x7a\x3d\x51\x4e\xcb\x3c\x64\x69\xf7\x76\x8f\x1d\xee\xc8\x22\x96\xce\xb7\x9f\x0a\x73\x79\x3c\xe6\xf2\x6e\xb7\xd6\x3a\xaf\x77\xd3\xb6\xda\x64\xed\xc5\x75\x6a\x02\xde\xa5\xf6\xe2\x6e\x7e\x82\x96\xf8\x8b\xeb\x37\xfb\x9f\x9a\x2e\x46\x99\x83\xcd\x32\xdd\x7d\x24\xa6\x5d\x7c\x66\x0e\xbc\xd3\xc4\x7d\xd3\xf6\xe6\xa1\xfe\xac\x46\x84\x92\x7b\x58\x8d\xac\xe4\xd1\x48\x8a\x6a\x1e\x3e\x88\x10\x09\x99\x13\x4f\xc1\xf4\x88\x1d\xda\x31\xf6\x9f\xed\x0e\x1b\xd3\x0f\x7e\x88\xff\xd6\xb7\xb1\x21\xf4\xc0\x5f\xf8\x09\x3a\xe0\x67\x87\x9f\x1d\xdb\xee\x61\x75\xd8\x0f\xd6\x76\x92\x59\x05\xa7\xc5\xdb\x3d\x62\x3e\xa8\xb4\x87\x6a\x5b\x1c\xe6\x58\x6f\xb6\x0e\x06\x45\xdb\xfc\x24\x06\xbd\xde\x81\x07\xa5\x39\x6e\xcb\x4e\x6b\xa6\xe5\x44\xd9\xfd\x6b\x38\xcc\x82\x15\x36\xa6\xcf\x79\x1b\x0f\xdf\xc4\xb6\x7d\xa4\x19\x4b\xab\x21\x2d\xf7\xb9\xe2\x23\x23\x5b\x9b\xff\xe0\xf5\x63\x25\xfe\x37\x02\xd4\xb5\xd0\xf8\xc9\xb3\xad\x81\x7d\xad\xe7\x5e\x01\x3b\xaa\x73\x5a\x21\x5b\x45\x7b\x85\x0d\x59\x73\x33\xed\xf3\x2a\xd7\x48\x4f\x45\xae\x38\x11\xd2\x4d\xdd\xc1\x83\x9a\xce\xdc\xc0\x76\x48\xbc\x48\xa7\xd6\x59\x8b\xee\xaf\xad\x63\xba\x15\x12\xb2\xb5\x40\x11\x87\x77\x43\xa3\x2c\x68\xbf\x41\x73\x45\x91\xa1\x76\xe6\x94\x26\xea\xa1\x55\x7b\x7a\x45\x9a\x2d\x07\x39\x47\x2f\x76\xb2\xb7\xd7\xb5\x22\xba\xc3\xc5\x67\xdb\xc1\xd7\x5f\x73\xc0\x0e\x1b\x39\x8a\x2f\x29\x5a\x37\x28\xaf\x58\x33\x74\x47\x89\xe7\xa0\x53\xd5\x18\xae\x65\x23\xff\xdf\xe6\x52\xc7\x4d\xf7\x7f\x48\x41\x99\x54\x13\x72\x41\x14\xe3\xf3\x0c\x5a\xdf\x39\x13\x40\xa3\x9b\x83\x06\x2f\xcc\xa0\xe6\xee\x5d\xd2\xcc\x19\x62\x28\x27\x60\xcd\xf1\x86\x8e\x75\xf1\x6d\xe4\x24\x6c\x73\x15\x55\xf8\x87\x17\xf7\xb0\x7a\x31\xda\x09\x33\xdf\xde\x9a\x27\xf5\xc5\x15\x7f\x61\x45\x98\x8d\xb3\x56\xc9\x3b\x08\xb2\x78\x81\xdf\xbd\x88\x29\x1b\x1e\x28\xab\x74\x75\x26\xb4\x07\x3d\xe0\x98\xb4\x76\x75\x4e\x8b\x43\x37\xb5\x07\x76\x76\xd0\xd1\xee\xd6\x8d\x4b\x0e\x01\xad\x05\x29\x15\x58\x35\x1a\x99\x1d\x01\xaf\x8b\xa1\xe6\x85\x56\x2f\x0e\x0f\xa8\x3b\xf5\x46\xa1\x31\x2a\x3e\xe3\xf3\x3f\x17\x29\xd5\x7b\xc5\x14\xd9\xd6\xfd\x6c\x7f\xb0\x03\x92\x12\x47\x34\x3b\x79\xc6\xe6\xa4\xa0\x92\xe6\x6a\x42\x6e\x5c\xb9\x01\xdc\xd7\x6c\xd6\x74\xdf\xb8\x79\xbe\x5b\x15\x40\xfe\x9f\xc3\x07\xb4\x6f\xf8\xc4\xe7\xa0\x9b\x50\x9c\xd3\x4f\xb7\xa5\x9c\x1f\x30\xfd\x24\x58\x68\x69\x5a\xa2\x6b\x9b\x10\x6e\xd4\x66\x12\x21\x95\x2c\x20\x2d\x33\x48\x09\x9d\x8a\x25\xb4\xfc\x64\xd5\xcf\x0e\x1c\x1a\x0d\x15\x07\xfe\xe6\xa3\xe1\x70\x9e\x28\x23\x64\x4d\x95\xc8\x4a\x5d\xd9\xb3\x4e\xe1\xd3\x6b\xf2\x07\xc4\x6f\x51\x52\x80\x4c\x80\x6b\x3a\x87\x75\xc3\xa3\x7d\xee\xd5\xcb\x7f\x3a\x3b\x94\x00\x14\x67\xcc\xf8\xce\x0c\xfc\xd2\xec\xce\x77\xf4\xd3\x9f\x79\xed\xa4\x61\x8a\xec\x69\x84\xaa\xdb\xc5\xda\x8b\xe0\x28\x59\x52\x66\x68\x62\x46\x5c\x5c\xe3\x75\xa6\x2b\x22\x45\x89\xc8\x38\x52\x16\x87\x8e\xd5\x34\x97\xfd\xee\x0f\xff\x74\xe8\xcf\xdf\x7e\xa2\x79\x91\xc1\x6b\x5f\xf7\xc5\xda\xfa\x8c\x3e\xa1\x05\xf9\xfd\xcb\x7f\x1a\x59\x94\x00\x3c\x34\x6c\x4f\xf5\x3e\xa2\x66\x13\x95\x05\x61\xb9\x8d\x93\x81\x6c\x85\x1d\x1d\x2a\xc1\x99\x2b\xae\xcd\x42\x94\xa6\x52\xab\x11\x41\x80\x5e\xa5\x09\x6a\xa1\x69\xb6\x66\xee\x44\x43\x23\x3c\xd8\xad\x90\x0a\x5c\x4b\x40\xaf\xc3\x81\x54\xbc\xfa\xfd\xcb\x7f\xda\x34\x6a\xbf\xe7\x09\xe0\x38\xd8\x3f\xe2\x35\xa7\x00\x9c\xdc\xb3\x2c\x83\xf4\x50\x11\xfb\xb1\x89\x9c\x95\x52\x2f\x40\x8e\x08\x70\xe5\x3d\x11\xe6\xdd\xd7\xde\x1b\x69\x91\x25\xe7\x87\x4b\xa0\xd4\xfa\x43\xd1\xb9\xd1\x70\x76\xb8\x69\x37\x82\x99\x26\xb9\x50\x7a\xfb\x74\x1c\x34\x18\xe5\xab\xf7\xb3\x43\xc5\xeb\x71\x07\x63\xee\xe6\xaf\x3b\x08\xe7\x2d\xe9\x83\x71\x3d\x16\x72\x6c\xbb\x79\x4d\xb4\x2c\x0f\x11\xf8\xf2\x16\x0b\xe9\xe1\x0d\x50\x36\x18\xdc\xc6\x26\xf8\xe2\xd8\x78\x77\x76\x9b\x8a\x07\x1e\xeb\xd2\xc0\xdb\xbe\xd3\x75\xf1\x2c\x2c\xbc\xed\x19\x5a\xe3\x3c\x66\x1e\xcc\xd3\xff\xf7\xe6\x91\x3f\x54\xa5\x5e\xbb\x09\x76\xf3\x76\xc7\x5a\x2b\xd6\x6d\xd4\x1a\x04\x40\x8c\xd6\x68\x3d\x90\x82\x2d\x6f\x56\x71\xd5\x99\xb0\xf0\x60\xb3\x09\xcc\x03\x96\xa8\x2d\x57\x5c\xcd\x80\x0f\xbe\xca\x76\x5c\x55\xf6\x1d\x6b\xec\x87\x46\xd8\xa5\x61\xc3\x6a\x17\x1f\x3e\x70\xe8\x0c\xa8\xd2\xdb\x96\x70\xe0\xda\x8f\xb6\xcf\x47\xf8\xae\xb7\xb6\xea\x68\x74\x17\x9c\xf1\xca\x4f\x86\xc1\xeb\x53\x20\x2f\x3e\x80\x45\x31\xd9\x88\x84\x96\xd2\xf2\xa2\xf2\x5f\x9b\xc5\x0e\xd2\x67\xf6\x9e\x36\xef\x82\x7b\x52\x7f\xb4\x1b\xa3\x11\x9d\xe7\x3c\x80\xee\x0a\xaa\x20\x51\x16\xdf\xb5\xbf\x1b\x1a\x5c\xf4\x89\x3b\xc2\xfe\x65\x26\xaa\x80\x64\x22\x01\xb9\x8a\x0d\x1a\xb4\x76\x15\x34\xb7\x5c\x64\x0f\x74\xa5\x5e\xf4\x46\x35\xcf\x41\xd3\xcf\x07\xa5\xaf\xb7\xee\x02\xc1\xad\xa6\x3c\xa5\x32\x75\x6f\x74\xa2\xaa\xd1\x0f\xe1\x08\xef\x10\x9e\xc4\x67\xe2\x35\x59\x68\x5d\xa8\xd7\xe7\xe7\x73\xa6\x27\xf7\xff\xaa\x26\x4c\x9c\x27\x22\xcf\x4b\xce\xf4\xea\x1c\xd1\x46\x6c\x5a\x6a\x21\xd5\x79\x0a\x4b\xc8\xce\x15\x9b\x8f\xa9\x4c\x16\x4c\x43\xa2\x4b\x09\xe7\xb4\x60\xe3\x44\xf0\x25\x70\xf4\x5f\x4c\xf2\xf4\xd7\x9e\xa4\xa7\xd5\xe1\x5b\x6c\x02\x1d\x2a\x72\x09\xe3\x92\xdf\x73\xf1\xc0\xc7\x68\xde\x53\x07\x31\x8c\xfd\x50\xab\xbe\x05\xac\xe1\x21\xa0\xd6\x42\x1c\x60\x13\x7c\xf2\x95\x35\x53\x34\xa6\x3c\x1d\x5b\xa8\xd6\xd3\x2e\x70\x17\xb7\xea\xb8\x86\x83\xee\x4f\x5d\x37\x6b\x10\x4d\x34\x5b\x42\x27\x50\xa2\x6f\x61\x8a\xc1\x7b\x1f\x75\x95\x96\xd2\xee\xa5\x06\x4a\xd1\x43\x34\x72\xba\x42\x19\x1e\x89\x25\xc2\x0a\x6f\x5c\xa4\xe0\x5c\x8e\xcb\x03\xa0\x83\xbe\xdd\x1a\xb6\x7c\x67\xb4\x4d\x87\x74\x44\x8f\xee\x4a\x69\xc8\xed\x55\x60\x47\xcb\x56\x44\xcb\x95\x85\x47\xca\x7b\xc2\xb4\xc7\x1c\x1a\xf5\xfe\x1e\x9f\x53\x4a\x24\x0c\x45\xfa\x7a\xd9\xba\xe9\x2a\xde\xab\x45\x49\x21\x14\xc3\xf7\x72\x82\xcb\x61\xfd\x75\x97\x79\x1a\xf0\xa3\x3f\xfe\xcb\x21\xfb\x68\x86\x89\x35\x0f\xf4\xb6\xb7\xe1\xb9\xb3\x66\xcc\xb3\x5b\xfa\x13\xe5\xad\x82\x46\x10\x4d\x04\x57\x5a\x52\xb6\x3b\x97\xc4\xf6\xd6\x11\x12\xd1\x1d\x77\x40\x70\x77\x5e\x74\x9a\x14\xb2\x19\x55\xe0\x05\x16\xdc\xf2\x7e\xaa\x9b\x13\x63\x53\x4d\xf8\xe8\x98\x03\xd9\xad\x6d\x9d\xe7\x88\x04\xcd\x93\xfd\xb5\x4d\xec\x9b\xbe\x41\x7d\xe3\xb6\x7a\xaf\xab\x39\x17\xd5\xc7\x6f\x3f\x41\x52\xee\x9b\x93\x6d\xb3\x85\xba\xdd\x6d\x33\xd2\x9e\x37\x53\x3b\xf4\xb2\xa5\xde\x70\x08\xff\x85\x13\x2a\x05\xae\x97\x93\x2e\x15\xd5\x4c\xcd\x0e\x75\x04\xfb\x66\x56\xb5\x5a\x77\x68\x40\xb9\xaa\x13\x53\xc1\xe2\x50\x66\xb0\xf1\xd9\x4c\x23\xe7\x4c\x16\x42\xa8\x43\xcc\x44\xcd\x46\xed\xa6\xc3\x77\x58\x32\x61\x01\x4a\x98\x73\x40\x92\xdc\xb0\x4d\x77\xc5\x37\x88\xb2\xae\xc1\xfa\x67\xec\x50\x5d\xdd\x37\x34\xf7\x55\x9b\xc3\x03\x71\xcc\xe0\xe8\xde\x32\x7f\xcc\x51\x58\x57\x9a\xa8\x32\x37\xa4\x3c\x00\x9b\x2f\xb4\x1a\x11\x36\x39\xd8\x5e\xe4\x9b\x39\x46\x40\x93\x45\xe3\x15\x72\x00\xdd\x2a\x96\xdd\x3c\x7b\x4d\x1f\xe8\xe9\x67\x53\x1a\x3d\xde\x5c\x7e\x87\x51\x25\x37\xac\x1f\x89\xad\xdb\x60\x44\x40\x27\x93\xb3\xc3\x71\x15\xb6\xd5\xc9\xeb\xcc\x2c\x4e\x57\x84\x69\x30\x97\x31\xaa\xfe\x52\x94\x73\x3b\xd7\xe0\x43\xc4\x70\x0e\xaa\xe8\x7b\x84\xbd\xa5\xe9\xe1\x26\x09\xdf\x5e\xd8\x45\x7b\x61\x4e\x0c\xce\x6d\x99\xfb\xd4\xcb\xb8\x02\xe8\x00\x87\x2a\xe3\x84\x04\x55\x08\x6b\x26\x5b\x77\x8d\xff\x8f\x03\x1d\xe0\xcd\x66\x86\x3a\x55\x67\xf5\xd6\x5a\xb0\xf9\xc2\xef\x2c\xea\xe4\x83\xf6\x8e\xec\xb6\xc1\xba\xc3\x42\x6c\xeb\x08\x0e\xb1\x2d\x0e\x17\x6c\x04\xbd\xd7\xc7\xb3\x71\x24\x34\xc8\xbc\x5a\x36\x3c\x35\x78\xad\x38\xb7\xb4\x2f\xe2\xee\x0e\x2b\x79\xd9\x99\x8a\x53\x73\xca\x09\x33\x1a\xa4\xe1\x53\x63\x51\x9c\x4d\xc8\x05\xe1\x65\xc5\x96\x3f\x47\x18\x17\x15\x5d\xae\x23\x43\xac\x12\x75\x5f\x5d\xb9\x75\xc8\x55\x6a\x5b\x37\x34\x66\xb3\x8d\xdd\x0c\xc0\xe3\x65\x57\x3e\xd7\x89\x5d\xa3\x8e\x1d\x84\x89\x05\xbe\x0f\xff\x16\xdd\xfb\x58\x4f\x8b\x6e\xf9\x4a\x8d\xea\x05\x99\x8f\x9a\x72\x7c\xc5\x03\xda\xec\xc6\xce\x45\xd7\x5d\x41\xe2\xec\x0c\x12\x69\x5e\x49\x10\xc0\x7c\x7b\x5b\x9b\xe5\x2a\x85\x46\x6b\xb6\x5b\xf7\xe5\x74\x85\xdf\x1e\x88\xbd\xdf\xdd\x42\x99\x6b\xdd\x82\xd8\x6c\xdd\x62\x31\xdc\xba\xad\xef\xde\x38\x68\xf5\x08\x84\xe1\x70\x71\x30\xec\x3b\x06\x88\x73\x7a\x6c\x0b\xe7\xb0\x75\x3b\x1c\x05\xbf\xab\x9f\x68\xcb\x11\x8b\x45\xd8\xd6\x01\x47\xbf\xbd\x6d\x80\xdb\x9e\x06\x56\xbf\xbd\x05\xe0\x63\xb7\xb5\xae\x10\xfc\xed\x2d\x3e\xa3\x30\xed\xc3\x33\xa0\xf4\xb7\xb7\xbd\xb0\xfb\xa3\x36\x70\x9f\x7c\xab\x2d\x63\xfa\x21\xe8\x96\xad\x5b\xe4\x15\xef\x06\xf8\xdf\xde\x9e\x66\xbd\x2f\x9e\x2f\x24\x60\x7b\x3b\x72\xa0\xc0\x81\x44\xed\x26\xe8\x5b\x6d\x88\xf9\x41\x8f\x1a\x3f\x8e\x44\x4d\x83\x04\x9b\x66\xcf\xa3\xca\x9d\x82\x3d\x72\x09\x27\xbc\x43\x12\x83\x5b\x0b\x09\x98\xf5\x11\xa3\x3e\x3a\x19\x85\x77\xb7\xbd\xa3\x27\x42\xa2\x21\xb6\xb7\x78\xf2\x9a\x6d\x91\xa4\x36\xdb\x22\x73\x8f\x68\x51\x16\xcf\xde\x39\xea\x09\xdf\x58\x67\xe4\x11\x55\x04\xeb\x0e\x1d\x54\x84\x47\xdb\xa0\x22\x0c\x2a\xc2\xe3\x6d\x50\x11\x36\xdb\xa0\x22\x0c\x2a\x42\x50\x1b\x54\x84\x47\xdb\xa0\x22\x3c\xda\x06\x15\xa1\x6e\x83\x8a\xd0\x7f\x15\x21\x34\x42\x76\x7b\xb3\xfe\x96\x68\x6e\x9f\xbf\x58\x77\xe3\xba\x9f\x07\x95\x1b\x0f\x73\x6f\x3b\x7c\x8c\x14\x7d\xeb\x44\x8d\x3b\x74\x12\xb9\x60\x6f\x49\xf9\x1c\xc8\xab\xf1\xab\x97\x07\x07\x55\x34\x5b\x08\x36\xbd\xd9\x0e\x4d\x1a\xb5\xd9\xa2\xef\x8c\x5d\xf8\x85\xfe\x41\x7a\x1c\x67\xaf\x70\x15\x2d\xe5\x73\x07\xbe\xa6\xaa\x48\x90\x83\x3e\x3c\x20\xc2\xb7\xa6\x63\x9a\xe5\x50\x81\xde\x2c\x5b\x77\x61\x3c\x75\x50\xac\xe0\x0e\x20\x61\xb6\x65\xd7\x6d\xd7\xe9\x6d\x13\xa0\x36\xd8\x7c\x0a\xe6\x8d\xbb\x42\x89\x34\x51\x22\x07\x9b\xae\xcd\x5f\x1d\xe6\x75\xc1\x6f\x03\x72\x0a\x93\xf9\x84\xa4\x25\xb8\x34\x08\x36\xea\xe4\x6c\xd4\x00\x67\x76\xc5\x12\x19\x81\x47\xe2\x7f\xcc\xc4\x3a\x4c\x27\x2c\x81\xeb\x92\x66\xd9\x8a\xc0\x92\x25\xba\x5a\x01\x0c\xce\x62\x5a\x05\xcc\x75\xb0\x2a\x1a\xaa\x7e\x8e\x37\xf8\x57\x37\xf1\x24\x5c\x4f\xdc\xa0\xa3\x3b\x4f\x5f\x2b\x08\x60\x67\x68\xb2\xd3\x92\xa4\xcd\x68\x16\x90\x86\xff\xc4\x83\xfb\xfe\x43\x57\xec\x0e\x89\x24\x8f\x04\xcb\x20\x31\x55\x03\x07\x98\x11\xd2\x41\x7a\x36\x67\x70\x0b\x64\x66\x4b\xfe\x8f\x83\x63\xf3\xdb\x4d\x2f\x20\xef\x92\x43\x64\x5b\x33\xb4\xdd\x89\x42\x64\x62\xbe\x6a\x6e\x3c\x57\xb7\xbf\xce\x76\x4e\x89\x2a\xa7\x4e\xb9\x35\x67\xff\x7a\x6d\xa7\x0e\x60\x8f\x9d\x6d\x00\x7b\x6c\xb4\xc1\x92\x3b\x58\x72\x0f\xe8\x67\xb0\xe4\x0e\x96\xdc\xc1\x92\x3b\x58\x72\xbb\xb6\xc1\x92\x7b\x10\x51\x83\x25\x97\x0c\x96\xdc\x9d\x6d\xb0\xe4\xba\x36\x80\x3d\xb6\xb6\x41\x45\x38\xb4\x0d\x2a\x42\x78\x3f\x83\x8a\x30\xa8\x08\x83\x8a\x30\xa8\x08\x5d\xdb\xa0\x22\x1c\x44\xd4\xa0\x22\x90\x41\x45\xd8\xd9\x06\x15\x61\xb3\xe3\x68\x60\x8f\x27\x20\x37\x26\xa1\x85\x48\xa3\xa7\x73\x29\x44\xfa\x99\x6c\x2e\xd6\x17\x9e\x88\x71\x26\x12\x8a\xb5\x04\x99\xfd\x89\xc3\xa0\x28\x9a\x5b\x28\xc0\x88\xfc\x43\x70\xb0\x39\x20\x6c\xed\xce\x1c\x88\xd0\x0b\xc0\x32\x5d\xa7\xea\xac\x43\x20\xfb\x90\x0d\x66\x9f\x36\x64\x83\x19\xb2\xc1\x0c\xd9\x60\x9e\x37\x1b\xcc\x82\x2a\x57\xe2\x02\x85\xa2\xdd\xc9\x61\x1a\x1c\xfb\x0e\x64\x3e\xe4\x86\x79\xac\x6d\xe8\xe2\xee\xf8\x98\x15\x6e\x6c\x76\x3b\xe3\xa9\x83\x53\x42\x7a\xd3\x9e\x67\x67\xb8\xc3\x69\xa1\x69\x0a\x29\x29\x40\x8e\xed\xe1\x11\x64\xc6\x5c\x85\x99\xb5\xd3\xec\x66\xb8\x2b\x43\xec\x49\xc2\x95\xf6\x4c\x04\xf4\x74\xfc\xac\x2b\xed\x57\x89\x06\x55\x6a\x22\xb6\x5a\xe2\xcf\x17\x97\x83\x25\x8e\xbd\x70\x4c\xb4\x83\x29\x7d\x1f\x64\x31\x8c\x65\xde\x43\xf3\xdb\xed\x41\x35\x65\x77\xb7\xd8\x26\x0d\x5f\xa8\xf3\xbf\x4b\x90\x2b\x22\x96\x20\x6b\x63\x95\xbf\x69\x95\xc3\x68\x63\x2e\x7c\x57\x87\x36\x5c\x35\xbd\x9a\xd9\x2c\x53\xbc\xcc\xb2\x91\xed\x7d\x9d\xed\xf9\x8b\xc8\x56\x5e\x12\xe6\xfb\x48\xde\x8b\x28\x06\xee\x98\xf6\xdf\xd8\x48\x32\xd2\xb3\x8a\xb5\xbb\x5b\x5c\xf3\x44\x44\xe3\xc4\x13\x59\x0f\xfb\x52\x19\x77\x77\x7b\x4a\xff\x12\x89\xed\x63\x22\x91\xfd\x4c\x24\xa2\xaf\x89\xc4\xf5\x37\x91\xe8\x3e\x27\x12\xd3\xef\x44\x9e\xbd\xd2\xef\xee\x16\xdd\xac\x18\xdb\x15\x45\x9e\x8c\xc1\x90\xe7\xae\x28\xbc\xbb\x3d\x4f\xad\xe1\xdd\xed\x09\x76\x41\x4c\xf7\x14\x79\xd2\x3d\x70\x94\x9a\xc6\xbb\x5b\x2f\x9d\x56\x9f\x25\xec\xc9\xeb\x20\xef\x6e\xd1\x7d\x40\xe4\x09\xfc\x40\x24\xb6\x2f\x88\x3c\xcd\x91\x7d\x62\x9f\xd0\x33\x0c\xd0\xa9\x7a\xf3\xee\xf6\x14\x3c\xe7\xa8\x15\x9f\x3f\x47\xd6\x11\x6b\x41\xef\x6e\xc7\xaf\x12\xbd\xbb\x45\x96\xce\x43\x2b\x4b\x3f\x46\x68\x14\x56\xf1\x34\xee\x57\xd2\x3a\x17\xdf\xc3\x2a\x2e\xf8\x33\xc2\xc9\x7d\xd7\xa2\xce\xab\x9f\xda\xd5\xb0\xab\xa5\x76\xf4\xb5\x59\x81\xdd\xf9\x08\x5c\x45\xec\x2c\x0b\xa6\x61\x0a\x44\xd3\x7b\x40\xc4\x85\xc0\x72\x24\x2c\x05\x5b\xb7\xc6\x6e\x75\x1c\xdf\x6c\xf1\x52\x41\x6a\x08\xc9\x84\xb8\x2f\x0b\x7f\x54\x30\xac\x38\xc6\xc1\x64\x3c\x11\xb9\x8f\x9f\xb6\xd1\x74\xe6\xc4\x3b\x5e\x30\xb6\x75\xc6\xec\xe7\x48\x0e\x5e\xd2\xce\xa8\xfa\xf7\x96\x91\xef\xef\x84\x2a\xf2\x77\x54\x7f\x38\x39\xc5\x1f\x9e\xfd\x3d\x1c\x9a\x59\x2d\x81\xf5\xcb\x89\x12\x39\xec\x5a\x91\xf2\xf6\xea\x7c\x6e\x76\x83\x09\xf2\xb5\x51\x9a\x13\x77\x62\xfd\xe9\xa7\x94\x6b\x76\x56\x99\xa2\x27\x04\xf7\x17\xea\x7e\xa9\xe0\x27\xda\x52\xed\xb9\xbe\xef\x20\x1c\x91\x59\xad\x5c\x8d\xec\xb1\x1e\xee\x89\x2b\xfb\x6e\xab\xf0\x55\x35\xe3\xac\x8c\x17\x3c\xee\x9d\xc7\x0e\x38\x95\x77\x26\xe4\x94\xa5\x29\x60\xa1\xcd\xea\x55\xa7\xc2\xa7\xc6\xa8\x8f\x9c\xe1\xfb\xad\xbd\x13\x4e\xcc\x45\xa6\xc4\x68\x7d\x9c\x84\x72\x9f\xfc\x00\xb4\xad\xd6\xd9\x1a\x96\x30\x65\x96\x45\x41\x04\xf5\xeb\xce\x95\x25\xa5\x64\x0a\x9a\x36\x9c\x98\xee\xd2\x52\x04\x38\x9d\xa2\xaf\xb5\xcd\x80\xae\x78\xc3\x02\x4c\x66\x40\x75\x29\x81\xcc\xa9\x06\x72\x8a\x3f\xb1\x5e\x78\xb7\x8a\x9d\x6b\x09\xf8\xd6\x3b\x20\xfb\x53\xdd\x68\x91\x83\x19\x98\xea\xf9\xad\xb6\x4e\xe0\x70\xb1\x45\xbf\xd8\xb8\xd0\xc3\xdd\x36\xdc\x6d\x6b\x77\xdb\xc6\xc1\x7b\xba\xeb\x6d\x63\xa8\xe1\x86\xdb\x6c\xc3\x0d\xd7\xa9\x71\x9a\x83\x2a\x68\x02\x5f\x90\xd7\xde\xba\x54\x6c\x2c\xa0\x27\x5f\x35\x4a\x94\x83\xcc\xa3\x7a\x5a\x7c\xfa\x1f\x3c\x06\xd8\x6f\xea\xe1\x65\x25\x6f\xd4\xaf\x6d\x10\x63\x39\xfc\x3a\x92\x32\x98\x12\x6f\x3a\x11\x1c\x14\x3a\xb4\xa1\xc2\xf3\x36\x06\xc7\xb1\xc2\x5f\x1b\xd3\xfa\xd4\xae\x2b\x9e\xae\x27\xfa\xa9\x47\x44\xdf\x7a\x0e\x94\x2b\xf2\xc2\x03\x8d\x4f\x54\xfd\xc4\x9e\x85\xaa\x3f\xd7\xaa\x92\x61\x15\x45\xa7\xff\xfb\xff\x9c\xb5\xca\x84\xd5\x04\x0d\xc8\x89\xbd\xdb\x80\x9c\x08\x6a\x03\x72\x62\x40\x4e\xc4\xe8\x6b\x40\x4e\x0c\xc8\x89\xad\x6d\x40\x4e\x0c\xc8\x89\x01\x39\x31\x20\x27\x36\xdb\x80\x9c\x18\x90\x13\x8d\x36\x20\x27\xba\x93\x35\x20\x27\x0e\x6c\x03\x72\x22\x26\x72\xa2\x36\x5c\xf4\xcd\xfa\xd6\x34\x69\xb9\xe8\x60\xd4\x3e\x35\xd5\x2c\xa9\x33\x72\xf9\xa7\xec\xbf\xfa\x65\x8a\x6b\x9a\xc9\x9e\xc6\x10\xd7\x34\xf6\x6d\xd8\x53\x23\xd9\xe1\x76\x5a\xdd\x2a\xbb\xdc\xc6\xc8\x4f\x6a\x90\x1b\xcc\xed\xdd\xa8\xac\xc3\xf5\xfa\x76\xd4\xef\x7c\x82\x08\xb5\x10\x65\x96\x1a\xe1\xb6\xca\x1e\x91\x92\x53\xef\x03\x3c\x33\x5b\x91\x0b\xdd\xfe\x92\x6b\x36\xae\x9f\xa8\x82\x2f\xd1\x81\xe9\x2b\xa4\x84\x2f\xb1\xb7\x11\xd4\x7e\x2e\x97\xcb\xa2\x4a\x5c\x50\x9f\x0e\x73\x43\x83\x6c\xbd\x03\x53\x24\x85\x19\xe3\x36\xf1\x8d\x2c\x39\x37\xc2\xb9\xe0\x2e\x2f\x41\x30\x7d\x56\x24\xb0\x4e\x49\xc7\x87\xac\x49\x03\xe7\x03\xed\x1a\xf5\xf2\x37\x42\xcf\x29\x32\x51\xca\x5d\xee\x7c\xc1\x9d\xfb\xd7\x7c\x62\xfb\x09\x26\xad\x62\x51\xb8\x22\xac\x7a\xfb\x70\xee\xf4\x16\xb9\x52\xf3\xc5\x98\xc2\xfd\x41\xb3\x4c\x3c\x84\x4b\x1b\x51\xce\x75\xe4\x52\x40\x81\xa7\xed\xe1\xe0\x4a\x42\x6b\xf1\xd4\x61\x9a\xed\x50\x84\x68\xcf\x36\x14\x21\x7a\xbc\x0d\x45\x88\x3e\x5f\x84\xa8\x81\xc1\x6a\x56\x23\xea\x3a\xdb\x58\xc3\xe8\x08\xd5\x88\x08\xf9\xcb\x02\x90\x6f\x48\xb0\xc0\xa9\x32\xd3\xac\xa8\xb3\xcc\x29\xbb\xf2\x99\x35\xc4\xcd\x5c\xb6\xa2\x36\x17\x33\x34\xd2\x64\xd1\x91\x80\x35\x1e\x88\x54\x60\x2e\x3b\x85\x37\x9b\xcd\xd2\x83\x7e\x60\x5b\xaa\xc7\x5b\xe8\x6c\xb2\x24\xf6\xe5\xe7\x54\x09\xb8\x75\xde\xa0\xd8\xd3\x46\x06\x2a\x72\x6a\xa4\xa5\x6c\xe5\xf0\x71\xad\xeb\xa7\x25\x66\x75\x1e\xd6\x7a\x11\x96\xe0\x55\xb4\x39\x5b\x02\xaf\x65\xb4\x53\x75\x76\xe6\x75\xc5\x75\xd9\xb3\xf3\x98\x21\x32\x6b\xf7\x7b\xf5\x50\x59\x73\x4d\x56\xec\x3c\xee\x16\x19\xf3\xdf\x1b\xb2\xd8\x7f\x3c\x2e\x65\x76\x1e\xda\xb2\x36\x9f\xc2\xaa\xb1\xad\x6a\xe9\xb2\x63\xdf\x3d\xc9\xc7\x13\x9e\x5a\x25\x86\x1f\x36\x5a\x4a\x95\xb8\x35\xbf\x8e\x91\x4a\xe5\x08\x69\x54\x7e\x49\x45\xb8\x7a\x09\xfe\xe9\x9d\x9d\xe9\x29\x32\xf0\xf7\x1a\xec\x33\xa4\xe0\x0f\xea\xe7\x17\x95\x82\xff\x48\x60\x9e\x5f\x60\x26\xfe\x1e\x80\x77\x8e\x09\xdc\xf9\xc5\x65\xe2\xef\x11\x50\xa7\x97\x20\x9d\xbe\x01\x74\x86\xd4\xf6\x41\xed\xcb\x4c\x6d\x1f\x15\x84\x13\x9b\x8f\xf4\x10\x7c\xd3\x43\xe0\x4d\x5f\x41\x37\x11\x25\xe5\xa7\x01\xdb\x44\x62\x01\x4f\x03\xb2\x89\x17\xc4\x1d\xf3\x54\x1e\x3b\x25\x49\x2f\xa2\xb6\xfb\x9c\x8a\xa4\x57\xa1\xda\xfd\x0a\xd3\x3e\x46\x88\x76\x6f\x52\x8f\x1c\x35\xed\xc8\x97\x10\x90\x1d\x47\x58\x8d\x20\xa2\x3e\xc5\xad\x14\x4f\x62\x8c\x9a\x5e\x24\xea\xcd\x74\xfc\xb4\x22\x5f\xed\xe5\x14\x31\x9d\xc8\x70\x3f\xed\x6c\x7d\xbf\x9f\x9e\x3a\x7d\xc8\xb1\x53\x87\x0c\xb7\xd4\xc1\x84\xf4\xf5\x96\x8a\x9a\x22\xe4\x89\xbd\xd0\xcf\x99\x1a\xa4\x1f\x69\x41\x9e\x2d\x25\x48\x7f\xd2\x81\x3c\x5b\x2a\x90\xc1\xfb\x3f\x78\xff\xdb\x6d\xf0\xfe\x0f\xde\xff\x43\xfa\x19\xbc\xff\x83\xf7\x7f\xf0\xfe\x0f\xde\xff\xc0\x36\x78\xff\x3b\x12\x35\x78\xff\xb7\xb7\xc1\xfb\x3f\x78\xff\x07\xef\xff\x46\x1b\xbc\xff\x41\x04\xf6\xd4\xfb\x1f\x27\xbd\x46\xcc\x13\xd9\xa7\xb4\x1a\x7d\x48\xa9\xf1\x5c\xe9\x34\x7a\x97\x4a\x63\x30\x41\xef\x47\x5d\x9c\xb4\x19\x31\x8f\x70\xbf\xd3\x65\xf4\x39\x55\x46\x4f\xd3\x64\x3c\x4d\x8a\x8c\xa7\x4c\x8f\x11\x7c\x66\xa3\x9e\xd6\x42\xa4\x17\x5c\x33\xef\xba\x3b\xfc\x9c\xb6\x4e\xe7\x1b\xfc\x63\x0a\xf6\x8c\xb5\x0e\x4c\x33\xe7\x80\x2c\x33\x50\x2e\xe4\x9e\x2e\x05\x4b\x49\x51\x6a\x6d\xa3\x98\xdd\xf9\xf4\x1b\x9f\xe6\x36\xeb\xc0\x88\xfc\x43\x70\x18\x11\xd0\xc9\xc4\x6c\x6e\x8c\xe7\x17\x7a\x01\xd2\x3c\x7e\xaa\xce\x3a\xf8\x14\x83\xe4\xb3\x30\xd3\x5e\x21\x61\x06\xf2\x8b\xc8\x52\x81\xfe\x71\x97\x0a\x42\x5a\xb7\xbc\xa5\x1e\x81\x0c\xee\x0b\x7b\xfc\xb4\x70\x19\x04\xf0\xd8\xdb\x10\xfe\xae\x37\x24\xe6\x8a\x68\x6d\x20\x68\xb8\x39\x76\xe4\x8b\x18\x91\x69\xa9\x09\xd3\x98\x64\x21\x59\x08\xa1\xba\x72\x17\x17\xf0\x8d\x2f\xb2\x64\xc2\x9a\xd3\x05\x07\xcc\xe0\x20\x64\xc5\x03\x1b\x44\x59\x55\xa2\xfe\x19\xeb\xaa\x6c\xe5\x42\xe9\x7a\x87\x78\xe3\xac\x19\xbc\xba\x73\xe6\x12\x0c\x45\x9a\xa8\x32\x37\xa4\xd8\xe4\x34\xca\xa6\x53\xe8\x38\xec\xcc\x88\x58\x34\x59\x34\x5e\x21\x07\xd0\xd6\x35\xe7\x23\xc6\x1b\x87\xb8\xa9\x33\x9d\xfa\xf8\xe1\x8e\x63\x9b\xce\x40\xe9\xd1\xce\xec\x2d\xbb\xf7\x82\xe5\x09\x67\x5d\x8d\x52\x89\xc8\x8b\x52\x83\x91\xe3\xcb\xdc\xec\x26\xa6\x11\x57\x83\xcc\x48\x8a\x72\x6e\x27\xdc\x27\xcc\xb0\x13\x51\x67\x63\xe1\x29\xea\x66\x9d\x2f\xfe\x17\x76\xe5\x5e\x78\xe1\xdd\x10\xc1\x66\x55\xb2\x15\xb2\xa0\xaa\x09\x08\xaa\xef\xd5\x47\x92\x0d\xfd\x8f\x80\x9b\xd5\x0c\x7c\xaa\x1a\x12\xce\x82\xcd\x17\x7e\xb3\x19\xed\x18\x6d\x0a\xad\x4d\xfa\xa5\x67\xe9\x30\x27\xd7\x9d\x21\x14\x57\xea\x1d\x6f\x67\x3c\x25\x7f\xc1\x6f\x21\x5d\x8f\x5d\xc7\x7d\x60\x8d\x06\x34\x4d\x8d\x20\x02\x72\x6c\x4f\x90\x20\x33\xe6\x54\xa4\xb5\x23\xed\x66\xb8\x2b\x6b\xec\x47\xa6\x85\xb5\x1d\x17\xd0\x93\x9d\xf9\x8e\x1d\xc4\xf0\xb1\xad\xbd\x4a\x34\x6d\xe5\x83\x9b\xe6\x09\xb9\xb0\x12\x91\xe7\x5f\x46\x75\x1f\x6d\xe4\x12\xdb\x3c\xd5\x76\x66\x7a\x80\x86\x88\xe3\xa8\x8d\x91\x9e\x83\x44\xf4\xab\x46\x4b\xd3\x41\x9e\xa7\x86\xd2\x33\xa4\xeb\x20\xc7\x49\xd9\x41\x86\xfa\x3d\xfd\x02\xf1\x90\xa1\x7e\x4f\xcf\x40\x3d\x64\xa8\xdf\x33\xd4\xef\xe9\xde\xfa\x00\xfa\x21\x43\xfd\x9e\x1e\x80\x80\xc8\x50\xbf\x67\x9f\x36\xd4\xef\x19\xea\xf7\x6c\xb6\xa1\x7e\xcf\x50\xbf\xa7\xd1\x86\xfa\x3d\xdd\xc9\xea\x1d\x90\x88\xf4\x18\x4c\x44\x86\xfa\x3d\x91\xeb\xf7\xc4\x0b\xe2\x26\x4f\x70\x72\x8f\x9d\x66\x84\xf4\x25\x9a\x9b\xf4\x3c\xdd\x08\xe9\x5b\x48\x37\xe9\x5d\x58\x37\x39\x52\x68\x37\xe9\x53\xfa\x11\x72\xec\x14\x24\xe4\x0b\x09\xf0\x26\x7d\x0c\x21\xfc\x32\x0a\x55\x45\x4d\x4d\x42\x9e\xe2\x56\x3b\x7e\x8a\x12\xf2\xb5\x5f\x6c\x11\x53\x95\x90\xe1\x6e\xdb\xa7\x7d\x09\x77\xdb\x53\xa7\x2e\x21\x3d\x48\x5f\x42\x86\x1b\x2e\x94\xa0\xbe\xdf\x70\x51\xd3\x9a\x90\xe7\xf1\xda\x3f\x67\x7a\x13\xd2\x9b\x14\x27\xe4\x39\xd3\x9c\x90\x5e\xa5\x3a\x21\xcf\x99\xee\x84\x0c\xc8\x89\x01\x39\xb1\x77\x1b\x90\x13\x03\x72\x22\x46\x5f\x03\x72\x62\x40\x4e\x6c\x6d\x03\x72\x62\x40\x4e\x0c\xc8\x89\x01\x39\xb1\xd9\x06\xe4\xc4\x80\x9c\x68\xb4\x01\x39\xd1\x9d\xac\x01\x39\x71\x60\x1b\x90\x13\x31\x91\x13\x71\x52\xb3\x90\x27\x38\xb5\x7d\x4a\xd1\x42\x7a\x92\xa6\x85\x3c\x63\xaa\x16\xd2\xc7\x74\x2d\x64\x30\xb7\x77\xa6\x32\x4e\x0a\x17\xf2\x04\x47\xbd\xdf\xa9\x5c\x48\xcf\xd3\xb9\x90\xfe\xa6\x74\x21\x4f\x96\xd6\x85\x3c\x71\x6a\x17\x12\xeb\x5c\xdb\xb0\xdf\xbe\x24\x4d\xb2\xd4\x6c\x44\x2b\xfb\x73\xf2\x78\x32\x82\x30\xcd\xd6\x1d\x1a\x49\xf9\x1c\xc8\xab\xf1\xab\x97\x2f\xc3\xe3\xa1\x19\xd7\x30\x87\x10\xeb\xe5\x4c\xc8\x9c\x6a\xec\xe9\xf7\xbf\xeb\xd4\x4f\x74\xb6\xbd\x2b\x77\x46\xff\x72\xca\x38\x9b\x48\x3b\xa7\x47\x4b\xfa\xdf\x91\xe0\x05\xb5\x02\x73\x5a\x73\xd0\xa4\xb3\x6f\xa0\x91\xc5\x44\xb3\x1c\x46\x9e\xf7\x5b\xf4\x86\x87\x2a\xb8\xd4\x36\x29\x11\xdc\x89\x6c\x86\xdd\x75\xdd\x7b\xdd\x5f\x39\x01\xaa\x30\x9b\xc4\x14\xcc\x6b\x77\x1c\x9f\x6a\x9b\x33\xa9\x10\x8c\x6b\x6f\xe8\x31\xef\x0c\x7e\x43\xb8\x84\x4c\x69\x09\xd6\x82\x5a\xa3\xb1\xca\x22\xa5\x1a\xce\x42\x54\x45\xb5\x52\x1a\x72\xcc\xcb\x63\x24\x3d\x8a\x30\x25\xa2\xe5\x0a\xa1\x2a\x4b\xe0\xba\xa4\x59\xb6\x22\xb0\x64\x0e\x69\x64\x86\x47\x9c\x15\xd3\x2a\x68\xe6\xff\xb2\x00\xe4\x20\x12\x2c\x84\xaa\xcc\x34\x2b\xb2\x3a\xa5\x8b\x5d\xfe\xcc\x9a\xe4\x66\x2e\x83\x51\x9b\x9f\x19\x1a\x69\xb2\xe8\x48\xc0\x1a\x37\x44\x2a\x0c\x03\x92\x0a\xef\x38\x9b\xb4\x07\x3d\xc2\x46\x55\x50\x95\xad\xce\x26\x50\x62\x5f\x7e\x76\x95\x80\xfb\xe7\x0d\x0a\x40\x6d\x8c\xa0\x22\xa7\x46\x6e\xca\x56\x0e\x29\xd7\xba\x88\x5a\x02\x57\xe7\x61\xad\x3f\x61\x09\x5e\x59\x9b\xb3\x25\xf0\x5a\x5a\x3b\x55\x67\x67\x5e\x6b\x5c\x97\x42\x3b\x8f\x19\x22\xbd\x76\xbf\x61\x0f\x95\x3a\xd7\xa4\xc6\xce\xe3\x6e\x91\x36\xff\xbd\x21\x95\xfd\xc7\xe3\xf2\x66\xe7\xa1\x2d\x6b\xf3\x19\xad\x1a\xdb\xaa\x96\x33\x3b\xf6\xdd\x93\xcc\x3c\xe1\x49\x56\x62\x78\x64\xa3\x25\x57\x79\xe2\xea\x53\xcf\x90\x54\xe5\x08\x09\x55\x86\x2a\x48\x43\x15\xa4\x76\x1b\xaa\x20\x0d\x55\x90\x0e\xe9\x67\xa8\x82\x34\x54\x41\x1a\xaa\x20\x0d\x55\x90\x02\x5b\x8f\x20\x3b\xbd\x84\xeb\xf4\x0d\xaa\x33\x54\x41\x0a\x6a\x43\x15\xa4\xa1\x0a\xd2\x50\x05\xa9\xd1\x86\x2a\x48\x21\x47\x33\x5e\x38\x77\xcc\x53\x79\xec\xe4\x24\xbd\x88\xdf\xee\x73\x52\x92\x5e\x05\x6d\xf7\x2b\x60\xfb\x18\xc1\xda\xbd\x49\x42\x72\xd4\x04\x24\x5f\x42\x68\xf6\x50\xda\x6b\xaf\x16\x35\xd1\x48\xd4\x9b\xe9\xf8\x09\x46\xbe\xda\xcb\x29\x62\x62\x91\xe1\x7e\xda\xd9\xfa\x7e\x3f\x3d\x75\x22\x91\x63\x27\x11\x19\x6e\xa9\x83\x09\xe9\xeb\x2d\x15\x35\x59\xc8\x13\x7b\xa1\x9f\x33\x49\x48\x3f\x12\x84\x3c\x5b\x72\x90\xfe\x24\x06\x79\xb6\xa4\x20\x83\xf7\x7f\xf0\xfe\xb7\xdb\xe0\xfd\x1f\xbc\xff\x87\xf4\x33\x78\xff\x07\xef\xff\xe0\xfd\x1f\xbc\xff\x81\x6d\xf0\xfe\x77\x24\x6a\xf0\xfe\x6f\x6f\x83\xf7\x7f\xf0\xfe\x0f\xde\xff\x8d\x36\x78\xff\x83\x08\xec\xa9\xf7\x3f\x4e\xa2\x8d\x98\x27\xb2\x4f\x09\x36\xfa\x90\x5c\xe3\xb9\x12\x6b\xf4\x2e\xa9\xc6\x60\x82\xde\x8f\xba\x38\x09\x34\x62\x1e\xe1\x7e\x27\xce\xe8\x73\xd2\x8c\x9e\x26\xcc\x78\x9a\x64\x19\x4f\x99\x28\x23\xf8\xcc\x46\x3b\xad\xb4\xd4\x22\x17\x25\xd7\xb7\x20\x97\x2c\x81\x8b\x24\x31\x7f\xdd\x89\x7b\x38\x30\x43\x42\xeb\x88\x5e\x7c\xa6\x5b\xc2\x78\xca\x12\xb4\x4d\x3e\x2c\x40\x2f\x5c\x08\x22\x3e\x47\xa8\x7d\x90\x68\x7c\xb2\x3e\xa1\x48\xa7\xb9\x63\x31\x4a\x1e\xbb\x3e\x74\x09\xec\x0c\x4d\x85\xc8\x80\x1e\xe2\x30\x77\x32\x23\xc8\x03\x19\x75\x18\xcf\xfa\xc1\x89\x12\xf5\xe8\x64\x0a\x99\xe0\x73\x17\x8f\xef\xb8\xce\xa1\xbb\xf0\xb2\xee\xce\x39\x94\x93\x52\x4a\xe0\x3a\x5b\xe1\x34\xa7\x29\xa4\x04\xcd\x53\xb9\x58\x1e\xbe\xc9\xef\x90\x1d\x79\x1d\x9e\x6a\x92\x01\x35\xef\xc1\xa1\x7e\x11\xc3\xd0\x28\xb9\xe9\x40\x7b\xe5\x01\xb7\x09\x19\x3a\xad\xff\xe1\x37\x76\xa7\x3b\xba\x7d\x1a\xbc\x5e\x86\x52\x5a\x82\x46\xbe\xc6\x7c\x20\x83\x5c\x89\x92\x3c\x50\xab\x4a\xc9\x92\x23\x4b\xc5\x89\xea\xb0\xc8\x01\x4a\x47\x77\x63\xfc\x18\xef\xa5\x03\x7f\x16\x62\x1c\xa7\x72\xde\x49\x74\x8a\x21\x4b\x5c\xc8\x79\x69\x35\x45\x77\x14\x81\x6b\xb9\xc2\xdc\x22\xdd\xee\x85\xbb\x45\xeb\x84\xe4\x74\x0e\x27\x8a\x5c\xbe\x7b\x63\x6e\x1d\xc4\x49\xb1\x99\x95\xd9\xdd\x2d\x54\x48\xb1\x64\x69\xd7\x6b\xe8\x23\x95\x8c\x4e\x33\xa3\xf5\xce\x40\x02\x37\x92\xf4\x6f\x4e\x3f\x5e\x7c\xf8\xdb\xf5\xc5\xbb\xb7\x67\xa8\xff\xc2\xa7\x82\x72\xc3\x0e\x4a\x55\x67\x39\x72\x14\x9e\x28\x02\x7c\xc9\xa4\xe0\x66\x16\xd0\x6e\x48\xc9\xd2\x75\xda\x89\xa2\x1a\xde\x22\x41\x89\x6c\x09\xa9\xcd\x4b\x52\x11\x58\x83\x8c\x8a\x52\x7b\x0b\xaa\x47\x08\x95\x3c\x59\x50\x3e\x87\x74\x42\xde\x88\xd2\xbc\xd8\x6f\x7e\x83\x2f\x21\x21\x2d\x13\xe8\xa6\xe3\x58\x13\xbc\x3d\xb9\xbf\x19\x79\x99\xc5\xdc\xfe\x88\x10\x22\xa0\x12\x5a\xf8\xa9\x69\xce\x9e\x5a\x71\x4d\x3f\xbd\xb6\x79\x4d\x5e\xfc\xa6\xf1\xd5\x8b\xee\xf0\xba\x42\x0a\xf3\x2a\x56\x16\xb4\x6f\x9f\x31\x0d\x92\x66\xe4\x45\x73\x84\x09\x79\x6b\xe8\x82\xb4\xb9\xb6\x36\xb1\x0f\x2c\x41\xa2\x6d\xd5\xad\xec\x88\x48\x98\x53\x99\x66\xa0\xba\x19\x85\xc4\xac\xba\xc2\xad\xa9\xc5\xed\x2a\xa8\x6c\xc6\x5c\xe8\x49\x28\xe3\xf6\xed\x9d\xc0\xc4\x31\x33\xf1\x9a\x2c\xb4\x2e\xd4\xeb\xf3\xf3\x5a\x0a\x9a\x30\x71\x9e\x8a\x44\x9d\x6b\xaa\xee\xd5\x39\xe3\x86\xf9\x8d\x53\xaa\xe9\xb8\xc1\x75\xcf\xad\x6c\x3c\x4e\x44\x9e\x53\x9e\x8e\xa9\x3b\xc7\xe3\x6a\x67\x9f\xff\xda\x49\x8f\x63\x5a\x3d\xc5\xf8\x98\x8e\xd5\x02\x3a\xad\x5c\x98\xa2\x18\xa0\x20\x06\x0a\x99\x91\x15\x42\x37\x97\xc7\x62\xd8\x6f\x2b\xfe\x6c\x97\x62\x42\xae\x85\x76\xb9\x9f\x1c\xee\x13\x6f\x5b\x5c\xe5\x98\x2c\xfc\xed\xf5\xdd\x87\xbf\xde\xbc\xbf\xba\xbe\x1b\x38\xf9\xc0\xc9\xb1\x0d\x9c\x7c\xe0\xe4\x1d\x06\xee\x0b\x27\x07\xbe\x3c\x16\x17\xf7\x4a\x71\x83\x63\x55\x5b\xd5\x85\x33\x54\x60\xf4\x6a\x1f\x74\xdb\xa2\x51\x76\xfa\xd1\x76\x4c\x6b\xb2\xdf\xf2\xe5\x47\xda\x46\x9c\xf0\xad\x53\x48\xdc\x03\x56\x43\xbf\x0c\x9b\xc0\x60\xcf\x57\x28\x2e\xac\x93\x42\x6a\x5b\x38\x66\xcb\x0c\xdd\xdd\xe0\xdd\x5a\xbe\x6b\x9a\x57\xe6\xd6\x6d\xab\x36\x21\xef\xbc\xbd\x85\x5c\xfe\xed\xea\xcd\xdb\xeb\xbb\xab\x6f\xae\xde\x7e\xe8\x6e\xa0\x8c\xe0\x52\x40\x23\x71\xa4\x09\x08\xb2\xf7\x1f\x22\x1f\x05\x0c\x53\x4b\x56\x85\x84\x25\x13\xa5\xca\x56\x95\x21\x7e\x3b\xbb\x5a\xe7\x53\x84\xf2\x10\x0a\x28\x5f\x55\x56\xd4\xad\x03\xae\xc9\x76\xdb\xe4\xb4\x10\x93\xf6\x71\x25\x3c\x47\x44\x0c\x39\x2f\x60\xfc\x2d\x12\xe2\xfe\xd2\x5e\xc0\xb8\x9d\xe4\xc4\x5d\x32\x5f\x00\x1d\x6d\x69\x31\xa0\xa3\x37\x36\x48\x08\xef\xf4\x17\x01\x53\x13\x8b\x93\x7d\x23\x45\x1e\x89\x9b\xdd\x62\x8e\xc5\x2a\xe8\x6e\xdb\x51\x3d\x71\x18\xf1\x96\xbc\xed\x34\xc7\x2a\xec\xcd\x7c\x1e\x18\xfa\x16\x05\x9c\x12\x07\xdf\x9c\x08\x3e\x63\xf3\x77\xb4\xf8\x1e\x56\x1f\x60\x16\xe6\x12\x6f\xcf\x37\x7a\x07\x1d\xca\x16\xfd\x90\x46\xb2\xb1\x83\x85\x79\x08\xa3\x61\x7b\x62\x21\xe0\xc3\xd1\xef\xf1\xc0\xea\x51\x80\xea\xad\x85\x74\xa1\xc3\x75\xec\x6c\xac\x38\x86\x28\xf8\xc7\x30\x81\xcf\xb7\xf8\x20\xe4\xa6\xf4\xe8\xae\x87\x28\x58\xee\xbb\x3a\x41\x3b\x53\x04\x66\x33\x48\x34\x5b\x42\x56\x25\x75\x4f\x47\x64\x5a\x6a\x9f\x4e\x7d\x4a\x93\xfb\x07\x2a\x53\x45\x12\x91\x17\x54\xb3\x29\xcb\x98\x5e\x11\x16\xa3\x24\x98\xf3\xc8\xbb\x1c\xf1\x1e\xca\xcc\x95\xa6\x78\x15\x0a\x67\x6f\x33\xab\x6d\xa1\x0a\xd4\xc7\xa1\x59\x6e\xea\x73\xa3\x47\x21\x25\x17\x4a\x93\x04\xa4\x11\xea\xb2\x15\x79\x90\x22\x46\xd9\x8e\x7d\x6d\x26\x89\xe0\x09\x14\x5a\x9d\x8b\xa5\x91\x05\xe1\xe1\xfc\x41\xc8\x7b\xc6\xe7\x63\xf3\xe2\x63\xcb\xac\xd4\x39\x42\x48\xce\x7f\x8d\xff\xe9\xd3\x29\x22\x3e\x3c\xf8\x35\x79\xf1\x22\xb0\x2f\x51\x58\xb4\x64\xe4\x53\x79\x8b\x38\x9c\x55\x4b\x74\xaa\x2e\x14\x23\xfa\x30\xad\x90\x4f\x79\x2f\xb8\xd3\x02\x22\x4d\xf3\xe1\xf8\x85\xcd\xf6\x54\x95\xd1\x90\x1d\xc4\xbd\xbd\x83\x79\x60\x7d\xfd\x5b\x66\xe5\x58\x61\x21\xd2\xd7\x44\x95\x45\x21\xa4\x56\x24\x07\x4d\x53\xaa\xe9\xc4\x1c\x88\x51\xfb\x4f\x44\x5a\x8d\xc8\xdf\xab\x0f\x6d\x72\x82\x1f\x4f\xfe\xfd\xfb\xb7\x7f\xfd\x8f\x93\x9f\xfe\xde\xfc\x0e\xc5\x35\x1b\xc4\xd3\x78\x20\xf0\x15\x54\x01\xc9\x84\x8b\x14\xae\x91\x3a\xfc\x53\xb5\x70\x35\xee\x0b\x4d\x75\xa9\x26\x0b\xa1\xf4\xd5\x4d\xf5\x67\x21\xd2\xf5\xbf\x02\x43\x89\x7a\x28\xf7\xe0\xda\xde\x50\xdd\x3d\x29\x3e\x89\x2a\xfd\xd0\x82\x7d\x04\xa9\x3a\x97\x99\x69\xb6\xd6\x79\x70\xbd\x56\xd9\xfb\x93\x05\xe4\x14\xff\xf9\x8d\x9f\x02\x73\x1f\x3f\x48\xa6\x35\x42\xad\x5c\x4d\x0d\x31\x1b\x79\xd6\x6a\x95\xaa\xe5\xab\xe0\x9a\x72\x51\x39\x7f\xb5\x82\x91\x27\x0c\x67\xc4\xcd\x96\xe5\x00\x75\xee\x95\x0d\x64\xe5\xc5\xcd\x15\x59\xda\x19\xee\xd1\xe4\x3c\x15\xbb\xf6\xf9\xfe\xbf\xe9\x35\xdb\xf6\x54\xfa\x45\xac\xec\x65\xaf\x6d\x10\x47\x55\xb5\x80\x64\x2c\x67\x2e\x72\xd1\x70\x16\x50\x3a\x54\xb6\x39\xb5\x5d\x4e\x92\xa2\x1c\xb9\xee\x27\x39\xe4\x42\xae\xaa\x3f\xa1\x58\x40\x0e\x92\x66\x63\xa5\x85\xa4\x73\x18\x55\x83\xdb\x9f\x55\x7f\xd9\x1f\xb6\xc8\xdb\xfc\xb5\x35\x48\xd6\x98\x3c\x77\x45\x85\x06\xa2\xf4\x90\x65\xfb\x75\xeb\x09\xc7\xae\xb6\xd5\x75\x7c\x45\xee\xa4\x72\xa5\x58\x35\xb1\x9a\x45\xb4\x02\x2d\x45\x56\xe6\xa0\x46\x95\xc0\x6a\x4d\x95\x7c\x49\x96\x54\xaa\x93\xfe\xf0\x21\x42\x52\xb6\x64\x2a\x46\x80\xf5\x16\x89\x9a\xb9\x5c\x05\xa2\xd4\x45\xa9\x5d\x7d\xb9\xca\xef\xf1\xa9\x10\x0a\x0d\x9c\x55\x89\x92\xd6\x6d\xf6\x2a\x54\x59\x20\xa4\xa0\x5a\x83\xe4\xaf\xc9\xff\x3a\xfd\xcf\xdf\xfe\x3c\x3e\xfb\xd3\xe9\xe9\x8f\x2f\xc7\xff\xf6\xd3\x6f\x4f\xff\x73\x82\xff\xf8\xe7\xb3\x3f\x9d\xfd\xec\xff\xf8\xed\xd9\xd9\xe9\xe9\x8f\xdf\xbf\xfb\xf6\xee\xe6\xed\x4f\xec\xec\xe7\x1f\x79\x99\xdf\xdb\xbf\x7e\x3e\xfd\x11\xde\xfe\xb4\x67\x27\x67\x67\x7f\xfa\x4d\x30\xe9\x94\xaf\xde\x07\x72\x6f\xdb\xc6\xd1\xca\x03\xae\xf7\x18\x49\x3b\x6c\x5d\x85\x8c\xeb\xb1\x90\x63\xdb\xf5\x6b\xa2\x65\x19\xaa\xc1\xfb\xed\x15\xfb\xfc\x7f\xf0\x5c\xb3\xbe\xcd\x2a\x29\xa4\x47\x07\xfc\xa9\x04\x0d\x05\x89\x04\xfd\x1c\x96\x5d\x3b\x92\x17\xec\xd6\xe2\xbd\xbe\xb6\x1b\xf4\x97\x60\xec\xad\xaa\x94\xe1\xba\xd6\xa2\xfb\x4c\x8a\x7c\x42\x1a\x9e\xef\x25\x66\xb5\x70\xcf\xdd\x43\x60\x42\x40\x32\x18\x87\x43\xda\x60\x1c\xde\x41\xca\x60\x1c\x0e\x6a\x5f\xa4\x71\xf8\xd6\xf2\xa4\x5f\xa4\x65\x78\x13\x7a\x68\x3a\xbd\xef\x9c\x30\xb9\x33\xa6\x6b\x17\x06\x32\xa7\x45\x17\x00\x64\x57\x3c\x40\x4c\x10\xa4\x37\x7b\x68\x41\x0a\x51\x94\x19\xd5\x3b\x80\x3f\x91\x10\x91\x55\xea\x66\x0f\x6b\xaa\x41\xf3\x56\xa4\xcd\xb7\xc3\xd0\xc8\x45\x96\x11\xc6\xed\x05\x6d\x3a\xe8\x34\xba\x47\x0f\x49\xb0\xf6\x10\x42\x2d\x8c\x71\x69\x5e\xf5\xc1\x95\x38\x6e\xe2\xef\x15\x51\x9a\x4a\xcd\xf8\x7c\x62\x4b\x20\x5b\x31\xd1\x41\x54\x18\xaf\x0a\x21\x77\x22\xa7\x52\x43\xab\x14\x23\x1b\xf5\xe1\x6d\x78\xb4\xd2\x7e\x7a\xf0\x0d\x34\xbd\x47\x88\x58\x02\x29\xf0\xa4\x23\xd8\xe8\xa3\x4d\x69\xe2\xd7\x61\xba\x32\x33\xf1\x96\x2f\xdd\xfd\x45\xd2\xd2\xc2\xa4\xad\x08\x15\x6f\xdc\xaf\x0b\x13\x6b\xce\xb0\x03\xe3\x34\xa0\xb1\x28\x6d\x56\x06\xc7\x2a\x05\x5b\xe5\xe1\xeb\xb6\x7b\x83\xb5\x87\x70\x59\xbd\x42\xd8\x04\x29\x61\x1b\x42\x7a\xed\xfa\x6c\x0b\xe7\x5f\x03\x28\x29\x5c\x6c\x8f\x2b\xb2\x3f\x85\xb8\xde\x17\x51\xbd\x27\x62\xfa\xd3\x88\xe8\xfd\x14\xcf\xa3\x89\xe6\x71\xc4\xf2\x38\x22\xf9\x01\x58\x8d\x98\x62\x78\x1c\x11\xfc\x29\x0c\x70\x85\x84\x19\xfb\x14\x89\xe3\x5f\xf0\xda\x4b\xc1\x52\xe0\x9a\xcd\x98\x99\x57\x61\x86\x29\x80\xe3\xf9\x05\x9a\xd8\x6c\x30\x4e\xee\xac\xe1\x96\x7d\x8c\x54\xb0\x26\xa3\xb8\x97\xe2\xed\x36\x73\xd5\x70\x23\x92\xe1\x46\x3c\xa0\x0d\x37\xe2\x70\x23\x3e\xcb\x8d\xe8\xb8\xd5\xd7\x7f\x1d\x46\x0e\x84\xc5\x10\xff\x63\x59\x81\x2e\xdb\x99\x06\x90\x33\x3f\x65\x30\x76\x75\x14\xeb\x84\x54\xe7\x38\x72\xb7\x13\xd7\x66\xb2\x95\x4c\xa1\x85\x65\x7b\x64\xc1\xe6\x66\x7b\x66\xb0\x84\xcc\xa9\xae\x24\xa7\x9c\xce\x6d\x86\x59\x2d\xaa\x3a\x50\x42\x62\x01\x19\xc9\x3a\x26\xb7\x5b\x4b\xd9\x80\xa6\x21\xc3\x65\x32\x41\x53\xfc\x52\x8a\x2c\x03\xa9\x48\xc6\xee\x81\xbc\x81\x22\x13\x2b\x97\x24\x96\xa7\xe4\x56\x53\x0d\xb3\x32\xbb\x05\xdd\x09\x55\x19\xc4\x71\x90\xe0\x9b\x32\xcb\x6e\x44\xc6\x92\x4e\x2e\xb8\x18\x5b\xf1\x0a\x37\x60\x51\x66\x19\x29\x90\x90\x6e\xfb\xf0\x3d\xc7\xab\xfc\x22\x7b\xa0\x2b\x35\x22\xd7\xb0\x04\x39\x22\x57\xb3\x6b\xa1\x6f\xac\x75\xa6\x5b\xbf\xcd\x58\x32\xdb\x39\x61\x33\xf2\x1a\xab\x63\x68\xa2\xe9\x1c\x6d\x85\x1e\x03\x38\x32\x1b\xaa\x39\x28\x11\x86\x51\x3e\x30\x75\x4c\xa3\x59\xf8\x29\xfd\x35\x8e\x6e\xae\xce\xce\xa7\x36\x68\xaf\x66\x6c\x06\xc9\x2a\xc9\x8e\xc6\x30\x2f\x12\x84\x65\xd7\xb9\x78\x1b\xec\x44\xad\x94\x86\xdc\xa7\x1b\x44\x5b\x29\xe3\x44\x82\x2a\x04\x57\x28\xe5\xd5\x5c\xa2\x7a\x11\x6b\x7b\xee\x88\xa5\x8e\x68\x4a\xed\xac\x18\x84\xaa\x04\x85\x50\xfa\x56\x53\xa9\xbb\xca\x27\xb1\x74\x81\x1b\x4f\x88\x39\xc9\x09\xcd\x32\x48\x09\xcb\x73\x48\x19\xd5\x46\x6e\xa7\x33\x8d\x49\x26\x5b\xde\x81\x44\x02\xce\xbb\xaf\x79\xb0\xa0\x3c\xcd\x40\x92\x19\x65\x99\xea\x0e\xd9\xdf\xf0\x42\x68\x90\x39\xe3\xe8\x16\xb0\xd0\x4f\x74\x4b\x98\xbf\x92\x44\xc8\xd4\xa5\x73\x64\x5a\xf9\xaf\x82\x98\xa8\x69\xef\x51\xb2\x6b\x6c\xef\x75\xe4\x2c\x99\x66\x22\xb9\x57\xa4\xe4\x9a\x65\xf6\xe5\x85\xb8\x47\xfd\x25\x43\x76\xd2\x79\xe8\xee\x5c\xaa\xfa\xe7\xb8\x3a\x60\x63\x43\x95\x3a\xff\x75\xfd\x15\x7e\xd0\x91\xb8\x08\x5a\x74\x0c\x1d\x1a\x3e\x41\x12\x2d\x13\xf2\xdb\x4f\x90\x34\xf2\x90\x9b\x95\xa4\xc8\xe6\x30\x2d\x21\xbd\x0f\x0a\x66\xef\x59\x0d\xb5\x80\x04\x62\xcd\x16\x1b\x44\x73\x69\xc9\xf2\xe5\x93\x1c\x95\x24\x63\x1c\x6c\xf1\x50\xcc\x30\x46\x18\x16\x6b\x6d\x1f\x43\xeb\x3c\x74\x1a\x2d\x49\x99\xc4\x7c\xcf\x2b\x1f\x1a\x1e\x4c\x9a\xa7\x05\x53\x22\x0b\xa1\xc9\xe9\xc9\xf9\xc9\xd9\x86\x37\xf8\xc4\x08\xe2\x19\xd8\x3b\x70\xe2\xd2\x98\x55\x2f\xa5\x58\x5e\x64\x2b\x7c\x8f\x93\x74\x44\x98\x8e\x81\xca\x31\x57\x9f\x2c\xb9\x9f\x15\x97\x76\x6d\x44\x94\x20\x5a\x52\x5f\xe6\xc0\x7e\x6a\x1e\xd2\xb2\x74\xb7\xf7\xe9\xc9\xcf\x27\x23\x02\x3a\x39\x23\x0f\x58\x80\xd6\x4c\xdf\x84\xdc\x09\x52\xaa\xf0\x19\xab\x08\x59\x89\x92\x70\xb0\xc6\x17\xf8\x54\x64\x2c\x61\x3a\x5b\xe1\xdd\x42\x44\xa9\x6d\xd6\x4f\xaa\x43\xd2\xc5\x35\xdb\xdb\x4f\x4c\xbb\x08\x2d\xc3\xac\x5f\xe2\x6e\xb2\xf7\x13\xa1\x46\xf3\x58\xc2\xf9\x02\x68\xa6\x17\x36\x7e\x80\x0b\x3e\xfe\x07\x48\x81\x29\xe5\xb8\xfb\xe6\xab\x2b\xd9\x17\x11\x3a\xf4\x44\xd9\xed\xcd\x1d\xf7\x2d\x74\x96\x7f\xc8\x3a\x3f\xfa\xee\xee\xee\xe6\x5b\xd0\x6b\x2c\xdd\x8c\xe2\x43\x46\xd0\xd4\x0e\x72\x26\x64\xde\x03\xde\x1e\x07\xcb\x3a\x26\x85\x90\x7d\xb8\x62\x16\x42\x05\xad\x25\x79\x82\xfb\xe5\x3b\xa1\x34\x1a\x77\x9c\x16\xc2\xb1\x68\xb8\x68\xc7\x3f\x38\xb0\x33\xb9\xba\x99\x90\xbf\x8a\xd2\x4c\xc8\x94\x4e\xb3\x55\x95\x51\x5a\x41\x78\x9d\xc6\x17\x86\x94\x17\xe6\xfa\x30\x1b\xf2\x3b\xa0\x29\x48\x85\xdc\x19\x68\xa4\x3a\x39\x11\xce\x7a\x83\xb6\xa8\x4b\x79\x59\x2a\x2d\x72\xb2\x70\xaf\xdd\xce\x35\xe7\x0e\xe7\x04\x0f\xb0\x4f\x38\x24\xa1\xb0\x1c\xdc\xfd\xe6\xab\xe3\xcf\x1b\xac\xcb\xce\xbb\xfb\x7c\x8a\x85\x71\x92\xe6\xb4\x39\x57\x86\x4d\x65\xc3\xed\x64\x99\xad\x1a\x0d\x66\xda\xcb\x8a\xa4\x9d\xb3\xd0\xad\x77\x84\x6e\x9d\xe0\x9e\xe2\xd6\x23\x8d\x83\x6c\x27\x4f\x56\x7f\xd1\x48\xb3\x6e\xf3\x59\x6b\x73\x77\x3b\xf9\xb6\xce\x99\xaa\x80\x89\x09\xe5\x82\xb3\x84\x66\xec\x1f\x90\x92\xb2\x10\xdc\x85\xb2\xa1\x58\x9b\x50\x05\x63\x44\x64\x72\xed\x8a\x42\xd5\xf9\xd0\x0c\x77\xd0\x42\xa0\xac\x87\xf8\x33\xc3\xee\x2d\xd5\xfd\x2d\xbb\xf9\x04\xab\xbe\xb1\x58\x71\x76\x3c\xf9\x22\x64\x49\x62\x63\x10\x83\xe3\xdf\x37\xa3\xdf\xb5\x20\x34\x49\x30\xe3\x9b\xbd\xae\x90\xf1\x2a\x90\xcb\xf0\xfd\x15\x6d\x5e\x8d\x08\xd8\x37\xd9\xcb\xa2\x0b\x24\xe1\x65\x3e\x05\x59\xa7\x0e\x91\x7a\x73\x4e\x03\xc1\xd5\xad\x61\xed\x70\xde\x1f\xeb\x65\x0c\xca\xe7\x40\x5e\x99\x91\xff\xf8\x87\x3f\xfc\xfe\x0f\x11\xc6\x31\xaf\x57\x81\xb6\x39\xb9\xba\xb8\xbe\xf8\xdb\xed\xc7\x4b\x4c\x48\x18\xda\x7d\xa4\x98\xd4\xd8\x11\xa9\x51\xe3\x51\x9f\x34\x1a\x15\x53\x7b\x04\x73\xd9\xd8\x47\xe2\x16\xa9\x32\x9b\xb0\x54\x36\x89\xa1\xd3\x49\x1a\x65\x89\x8c\x1a\x15\xbe\x3b\x9b\x6e\x3b\xc3\xb0\x7a\xc1\xa9\x54\x06\x50\x44\x53\xf7\x6f\x4d\x6f\xeb\xe0\xf3\xb4\x94\xb6\x40\x50\xe5\xa8\xaa\xed\xf6\xce\x41\x85\x54\x90\x29\xcc\x84\x04\x32\x05\x9c\xfa\xca\xcb\xf0\x15\x99\x05\x14\x24\x82\xa7\x21\xca\x41\x2c\x61\xd7\x51\x12\xf5\x34\xde\xda\x3e\xbd\xe5\xb8\xbe\x64\xdc\x60\xa8\x63\x9a\x95\x8e\xb3\xf3\xe3\x70\x50\x9b\x96\x01\x7b\xfb\xe3\xbf\x74\x77\x92\x25\xc5\xad\x48\xee\x23\x5a\xce\x02\x59\xdb\x1b\x73\x06\x13\xeb\x0f\xbc\xbb\xbc\xb1\xc4\x99\x95\xb9\x7e\x7f\x57\xe7\x60\xc1\x98\x23\xf2\x83\xf7\x4f\x7d\xe7\x3c\x86\x94\xa7\xe4\x1e\x8a\x30\xbd\xd3\xe7\x83\xf5\x70\xc2\x36\x9a\x70\xe2\x2a\xab\x51\x09\x84\x0b\x1b\xec\x6c\xb9\x84\x87\x01\x5a\x81\x39\x2c\x85\x74\xc3\x4b\x8f\x1e\x41\xa7\xa3\xcc\x28\xcb\xd0\x1f\x5e\x72\xcd\x72\x70\xd1\x56\x49\x51\xb9\x4c\x9b\xf8\x89\xaf\x88\xfd\x7c\xad\x56\xc9\x93\xf7\x1e\x57\x78\xb0\x75\x31\x34\x59\xc5\xd7\xad\x2e\x38\x0e\x6e\xb3\xfc\x0c\xea\xc2\x21\x6d\x50\x17\x3a\xaa\x0b\x85\x84\x5b\x2d\x3a\xcb\xa4\xd1\x20\x38\x96\x8c\x1d\x00\x1c\x27\xaa\xd2\x9d\xc8\x18\x87\xa5\x0f\xc0\x0a\x5f\xdc\x5c\x55\x3e\x32\xd1\x42\xbf\xd8\x10\x61\x55\x26\x0b\xef\x4b\xe5\xa0\xd4\x39\x62\x6d\xca\xc2\x1a\xa0\xf1\x8e\x2b\x25\x74\xc7\xfd\x14\x12\x20\xc7\x79\x1c\xd5\x49\x7e\xcc\xeb\x02\xb7\x1f\x82\x4e\xac\x73\xbd\x71\x6b\x62\xfd\x55\x37\x5d\x61\x75\x90\xeb\x89\x4d\x24\x55\x0b\xc0\x24\xfc\xf0\x89\x69\x65\x07\xbd\xc1\x54\x38\x7e\xc6\x8d\xe0\x30\x97\x34\x01\x52\x80\x64\xc2\x08\x1b\x25\xd7\xa9\x78\xe0\x64\x0a\x73\xc6\x95\x5f\xb1\x10\x92\xfc\x96\x40\x6c\x11\x53\x55\xb1\xb5\x09\xf9\xd0\xaa\x41\xe0\x92\x7e\x25\xa2\xe6\x99\x6e\x8a\x46\x91\xa6\x04\xa5\x18\xdc\x06\x25\x96\x0f\xae\x36\x9e\x0f\x61\xd7\xbb\x67\xa8\xfb\x86\xb0\x33\x7b\x5a\x72\x7c\xd1\x14\x32\xba\xb2\xc1\xda\x33\xc6\xd1\x4a\x2c\xd5\xd9\x24\x1c\xac\xd5\x99\x40\x21\x1b\x7d\xee\xdc\x19\x4c\x11\x09\x34\x59\x84\x48\x76\x03\x2a\xec\xb1\x36\xa0\xc2\x3a\xb6\x01\x15\x76\x68\x1b\x50\x61\x87\xb6\x01\x15\xd6\x27\xd4\x41\xff\x3d\x79\x03\x2a\x6c\xb0\xbf\xac\xb5\x01\x15\xd6\xa9\x0d\xa8\xb0\x47\x5b\xef\xf8\xf3\x80\x0a\xdb\xa3\x0d\xa8\xb0\x3d\xdb\x80\x0a\x1b\x50\x61\x03\x2a\x6c\x40\x85\x05\xb4\x01\x15\x76\xf8\xeb\x0d\x6e\x9e\xee\x6d\x40\x85\x0d\xa8\xb0\x03\xdb\x80\x0a\xdb\xbb\x0d\xa8\xb0\x01\x15\xf6\xb9\x36\xa0\xc2\x06\x54\xd8\xd6\x36\x58\x25\x37\xda\x80\x0a\xdb\xd2\x06\x54\xd8\x61\xe3\x0c\xea\x42\x58\x67\xd1\xd5\x05\x8f\x70\xba\x91\x62\x7a\xb4\x6c\x5b\x37\x88\x1e\x61\x89\x83\x57\x89\x59\x2b\x83\x96\x25\xb0\x63\xe6\xac\x36\xac\x07\x4b\x42\xf8\x94\x4a\xcc\x1d\xae\x0a\xd2\x75\xcc\xec\x5c\x07\xe3\x5e\x7c\xd6\x41\x75\x5e\x08\xfb\x7f\x35\xea\xa5\x01\x77\xe9\x6c\x1b\x3f\x72\xba\xb0\x10\x8c\xcb\xf3\xe0\x5b\x7a\x02\x06\x8a\x80\x69\x89\x79\x89\xf5\x14\xcb\xd2\x4f\x1c\x4b\x1f\x31\x2c\xc7\xc0\xaf\x1c\x1d\xbb\x12\xc7\x2f\x1a\xc1\x27\x1a\x49\x54\x78\x02\xff\x82\xc3\x3c\xdf\x2d\x24\xa8\x85\xc8\x3a\x33\x9c\x58\xcc\xe6\x1d\xe3\x2c\x2f\x73\x73\x76\x95\xe1\x29\x6c\x59\xe1\xb2\x55\xa5\x09\xdb\xbb\xdd\xba\x8c\xcd\x83\x2c\x05\x2c\xa4\x4c\x59\x66\xb6\x16\x66\x7a\x5c\xd0\xa5\xe1\x37\xaa\x4c\x12\x80\x34\x44\xfb\x6c\x9a\x1b\x7f\x3f\xa9\x28\xb4\x09\xd6\x99\x22\xaf\xc2\xae\x9a\x30\x81\xb4\x61\x75\xf9\xfd\xef\x3a\xf5\x31\x97\x45\x9c\x2b\xf9\xdb\x0f\x37\x97\x8d\x2b\x99\x72\x7f\x23\x33\xbe\x14\x19\xae\x06\xb5\x0f\x19\xc5\xe7\x88\xf7\x73\xb8\x15\x20\xc8\x02\x10\x43\x3c\x08\x55\x72\xdb\xae\x40\xa3\x87\xb6\x3d\x59\x73\x5c\x4b\x90\x4b\x96\xc0\xe4\x19\xf4\xc8\x58\xba\x59\xf8\x71\x20\x68\xd3\xc5\x17\xef\x8b\xf0\x75\x6b\xc9\xa9\xcc\xc1\x0d\x13\x82\xa3\x14\xb1\x7f\x19\x4d\xaa\xb5\xc1\xf5\xfb\x0e\x6f\xd0\xcb\x05\x24\xf7\x1f\x2c\x0c\x29\x88\x8c\x53\x05\x50\xe9\x30\x73\xa6\x17\xe5\x74\x92\x88\xfc\xdc\x30\x10\xfb\x7f\xd3\x4c\x4c\xcf\x73\xaa\x34\x48\xa3\xd6\xb8\xcb\x7d\x9c\x18\x0a\x18\x9f\x4f\xf2\xf4\x6c\xf2\xab\x20\x1a\xae\x9c\x4d\xd3\xc5\xcd\x34\x32\x76\xa3\x83\xc4\xa5\x83\x9f\x82\xe1\xfe\x02\xcd\x8f\x8d\x02\x79\x66\x52\xc2\x37\x69\xf0\x2d\x1e\x5a\x17\x22\x10\x5a\xfa\xfc\xb0\xd2\x81\x65\x93\x08\xc6\xda\x98\x1c\xa5\x1f\xd0\xd1\x27\x83\x8d\x46\x39\xa8\x91\xe0\xa2\x3d\x82\x8a\xf6\x46\x1d\xea\x0b\x3c\xb4\x87\xf5\xfc\x23\x40\x42\x63\xc0\x41\xe3\x41\x41\xfb\x5a\xf6\xfe\xc9\xe0\x9f\x5f\x04\xf4\x33\xa2\xef\x22\x12\xe4\xf3\x39\xe0\x9e\xfd\x35\xc3\x90\x08\x10\xcf\xe7\x83\x77\x46\x99\xc7\xa8\x2a\x6c\x20\x4b\x38\x02\x9c\xf3\x39\x7c\xb3\x4f\xe6\x97\x8d\xe0\x93\x8d\xe9\x8f\x8d\xe6\x8b\x7d\x32\xd8\x66\x38\x64\x33\xaa\x41\xe1\x59\xa0\x9a\x31\x61\x9a\xc1\xeb\xcb\x38\xd3\x8c\x66\x6f\x20\xa3\xab\xdb\x30\xc8\x5e\xac\x95\xb8\xde\x80\xf5\x59\xcb\x75\x1b\xd8\xb9\xa0\x8a\x78\xd7\xb6\xc3\x75\x7a\xdf\xb9\x13\x81\x11\xfa\x65\xdf\x2f\x08\xe4\xd9\x33\x4f\x35\xe9\x8d\x85\xdc\x66\xc1\xe8\xc9\xae\xf9\x4e\x3c\x10\x31\xd3\xc0\xc9\x29\xe3\x7e\xe7\x9c\x35\xac\x34\xb5\x87\x24\xd8\xe5\x61\x7a\x7d\xf5\xd2\x0f\xf2\xf5\xb9\x3e\xd0\x39\xa4\x54\xaf\x9d\x5f\x8e\xc6\xc7\xbd\x5f\xee\xc1\x59\x99\xb5\x3d\x60\xd6\x2b\x16\xc7\xfd\xf5\xaa\xae\xde\xfd\x0a\xe9\xa9\x58\x11\xe5\x29\x71\xd9\x94\xbe\xbe\x7d\x12\x0c\x4a\x6e\x2b\x37\x15\x8a\xf8\x31\x67\xd9\xdd\xe5\xcd\xe0\x2b\xeb\x97\xe1\xf5\x48\x08\xd9\xaf\x4f\xe3\x7a\x7e\x44\xec\xa0\x71\xfd\x52\x34\xae\x46\x22\xb3\x6f\x25\x4d\xe0\xa6\x4f\x02\x9c\x67\x20\x75\x38\x57\x2d\xc7\x55\xec\x82\x03\xd8\x30\x9f\x3a\x4d\x1d\x66\x64\x9b\x95\x59\xb6\xb2\x76\xc4\x56\xce\xc2\xee\x5b\xeb\x6e\x01\x1b\xc9\xde\x5a\xc1\x66\x0d\xea\x6a\xfd\xa4\x90\xc2\x49\x25\xb2\xe4\xdc\xdc\x56\xee\x38\x19\xe2\x8d\x3e\xa2\x80\x77\x37\xa9\xd3\x56\x2a\x3a\xc5\xe6\x66\xba\x8c\x84\x81\x59\xea\xea\x40\x93\x16\x21\x66\xd4\x99\x90\x09\x9b\x66\x2b\xb2\xa0\x99\x51\x98\x1e\x98\x5e\x10\x4a\xee\x59\x96\xb9\x6e\xba\x4f\xd4\x2d\x68\xeb\x7b\xb6\x52\x4d\x26\xf8\x1c\x27\x83\x5a\x42\xe0\x53\x01\x89\x19\x33\xc9\x80\xf2\xb2\xb0\x74\x1a\x19\x69\x25\x4a\xe9\xe9\xec\x3e\xbc\xf7\x7c\x57\x32\x15\x67\xd9\xc8\x4f\x79\x3b\x69\xe1\xe6\x9e\xaf\xcd\xca\x0a\x52\x97\x6f\xf0\x81\x29\x18\x61\x9f\x9d\x69\xb2\xb4\xf8\xca\xeb\x76\xdf\xd8\xcf\x0a\x29\x96\x2c\xb5\x6e\x77\xbf\x2d\x8c\xb4\xd3\xfd\xfd\x3f\x62\xbf\x9e\xb5\x72\xc1\xc7\x1c\xe6\x14\x45\x64\xc7\xd0\x2c\xb0\xd3\x8e\x6f\x61\x84\x3c\x65\x09\xd5\x60\x14\x68\x51\xb4\x92\x91\x2e\x19\xed\x4c\x89\x79\x9f\xc6\x8e\x22\xa7\x5c\x10\x81\x71\x60\x25\x67\x7a\x85\x5e\xbd\x45\xa9\x49\x2a\x1e\xf8\x59\xc8\xc1\xb4\x38\x07\x4a\xa6\xa0\x69\x1d\xc5\xe5\x45\x32\x45\x80\xd3\x69\x66\xce\x1e\xa2\xfc\xef\xb6\x6e\x00\x32\x03\xaa\x4b\x09\x64\x4e\x75\x00\x97\xd8\x22\xd1\xdb\xf5\xfc\xfc\xb6\x63\xca\xf9\xec\x66\xa4\xe4\x0a\x02\x05\xd9\x68\x6a\x40\xc7\xf8\x44\x73\xa2\x45\xa9\x7b\x72\x8f\xec\x32\x1f\x3d\x2c\x58\xb2\x68\x2a\x8a\x2c\x07\x45\x44\x19\x60\xcd\x6b\xa9\x80\x6e\xb8\x98\x5a\xde\x60\x7b\xda\xda\xba\xba\x4e\x63\xec\xb0\xeb\x86\x54\xde\x88\x32\xf7\x78\x2b\x1b\xef\xfa\xe6\xfa\xf6\x6f\x3f\x5c\xfc\xcf\xb7\x3f\x74\x5b\xf8\xb7\x34\x59\x34\xb3\x41\x73\x42\xf1\xa2\x40\x26\xbf\xa0\x4b\x20\x94\x94\x9c\xfd\x77\xe9\x30\x6f\xa7\xd5\x78\x1d\xd9\x6a\xc4\x82\xfb\x1d\x05\x5f\x73\x4b\x74\xe2\x1c\x31\xd6\xf4\x07\xa6\x30\xb5\x30\x12\xe1\xf0\xff\x42\x01\x99\x49\x91\xaf\x29\x5a\xe4\xba\x42\xd7\xad\xac\x2d\x02\x55\xb3\x05\xc8\x6e\x12\xf9\x9b\xf7\x6f\x6f\x31\x62\xba\x90\x36\x15\x37\xc6\x18\x60\x9f\x38\xba\x4d\x55\x60\xe9\x49\x27\xe4\x82\xaf\xec\x97\x96\x99\x75\x14\x51\x32\xa6\x34\xa0\x70\xea\x14\x49\x8f\x0f\x7c\xf1\x72\x82\xff\x7b\x41\x68\x9a\x4a\xa3\x69\x56\xa1\x1a\xc9\x7a\x64\x59\xa7\x91\xad\xfe\xca\xa6\x59\x63\x72\x39\x68\x8c\xe6\xe8\xd4\xe1\x3b\x91\xba\x95\x40\x21\x10\x31\x3c\x56\xba\x55\x5a\x52\x0d\x73\x96\x90\x1c\xe4\x1c\x48\x41\x75\xb2\x20\x39\x5d\x91\x44\x48\x59\x16\x36\x51\x44\x4a\x35\xed\x36\xf2\x37\x42\x92\xdc\x73\x67\xc3\xcd\x8c\x48\x7e\xbb\x1d\x09\x5a\xb3\xec\xe6\x3f\x99\x52\x25\xa8\xf3\x57\x2f\xff\xf5\x77\x7f\xe8\xa8\x5e\x47\x3c\xb8\x5d\xe1\x4f\x01\xb0\xa7\x36\x04\xcc\x6f\x30\x44\x5d\x37\x32\x7c\x50\xbf\x43\xec\xce\x47\x6e\xa8\x18\x9f\x67\xc1\x06\x90\x60\x33\x60\xa8\x11\x70\x5c\xbf\xc1\x4d\x57\x5b\x60\xb8\x25\xb0\x45\x43\x77\x53\x4a\x3c\x2b\x58\x2d\xc1\x79\xbb\x97\x63\xc8\x82\x37\x14\xbb\xab\x1b\xcf\xa5\x42\xec\x47\xa8\x4d\x54\x86\x29\x9b\x26\xc2\x0e\x6b\x31\x0f\x23\xf2\x92\xfc\x3b\xf9\x44\xfe\x1d\xad\x60\x7f\xec\x3e\x54\x1c\x1b\x53\x0c\x1c\xff\x42\x28\x7d\x75\x13\x69\xa1\xff\x62\xee\x2b\xd3\xa3\x59\x0f\x2d\xc8\x94\x39\x73\x04\x7c\xd2\x20\x8d\x1a\xe8\xd6\x30\x74\xe6\x82\x2c\x6a\x86\xc0\x2f\x65\x77\x87\x02\x0c\xae\x66\x6d\xf8\xff\x33\xed\x6f\x1c\xf8\x3b\xa1\xf4\xb5\xe3\xd6\xcd\x14\x27\x4d\x3a\x72\xbc\x88\x5b\xec\x3e\x64\xd4\x77\x66\xef\xd5\x55\x11\x48\x2a\x30\x02\xc2\x86\x72\x2e\x58\x00\x73\xe8\xcf\x89\x0d\xc3\x8a\xc6\xdb\xba\x9f\xdb\x5a\x6b\x36\x7d\xb4\xc8\x38\x25\xa5\x51\x48\xa4\x10\xe9\x04\xf5\x9b\x00\x2a\xcc\x6c\xa4\x0d\x61\xe0\x33\xaa\xd1\xc4\xea\x6b\x95\x87\x18\x0f\x9c\xe1\x58\x09\xe5\x5d\x65\x58\xdb\x24\xcc\x40\x4a\x1b\x2e\x3c\x5d\xf9\x78\xa3\xe0\xdd\x16\xc4\xe5\x0a\x29\xb4\x48\x44\xd6\x87\xad\x72\xe3\x68\xc1\xb9\x47\x5f\x6d\xe5\x21\xff\xf3\x9b\x9b\x11\xb9\xbb\xbc\x19\x11\x21\xc9\xed\x65\x18\x00\xaa\x69\x82\x79\x71\x77\x79\xf3\xe2\xa8\x2b\xd0\x08\x62\xba\xbb\xbc\xe9\xd0\xc9\x26\x84\x36\xa7\xc5\xf8\x1e\x56\x1d\xa5\xbb\x18\x12\xe6\xb8\xda\x58\x51\x5e\xc8\x4e\x73\x4e\x8b\x83\x7b\x93\x40\x53\xd6\xeb\xec\x2d\x3e\xec\xb0\xa2\x34\x5e\x1a\x97\x5c\x2c\x21\xb5\x5a\xb3\x1f\x05\x78\x5a\x08\x66\x74\xa4\x21\xb7\xcb\xe7\xda\x90\xdb\xe5\x91\x36\xe4\x76\xd9\xd6\x86\xdc\x2e\x07\xb4\x21\xb7\x8b\x6d\x43\x6e\x97\x36\x21\x7d\x0c\x2a\x1a\x72\xbb\x3c\xda\x86\xdc\x2e\x3b\xdb\x90\xdb\xa5\x43\x1b\x72\xbb\x6c\xb6\x21\xb7\xcb\x67\xda\x90\xdb\xa5\x6a\x43\x6e\x97\x21\xb7\x4b\xb7\x76\x74\x96\x3d\xe4\x76\x59\x6f\x43\x6e\x97\x21\xb7\xcb\x90\xdb\xa5\xd9\x86\xdc\x2e\x3b\xda\x90\xdb\x65\xc8\xed\x32\xe4\x76\xf9\x7c\x1b\x72\xbb\x74\x6e\x43\x6e\x97\xc3\xda\x10\x69\x78\x60\x1b\x72\xbb\x0c\xb9\x5d\xd6\xdb\x90\xdb\xe5\xd1\xd6\x0f\x0b\xf9\x90\xdb\x65\xc8\xed\xf2\xd9\x36\xe4\x76\x19\x72\xbb\x7c\xb6\x0d\xb9\x5d\xbe\x16\xc3\xeb\x90\xdb\x65\xc8\xed\xf2\xb9\x31\x06\x8d\xeb\xb0\x36\xe4\x76\x19\x72\xbb\x6c\xb4\x21\xb7\xcb\x66\x1b\x72\xbb\x0c\xb9\x5d\x86\xdc\x2e\x43\x6e\x97\xaa\x0d\xb9\x5d\xbe\x76\xdb\x93\x04\xc5\xfe\x01\x37\x22\x63\xc9\x2a\x38\xc2\xe7\x03\x28\x51\xca\xc4\xdc\xd8\xd8\x2d\x29\xb0\xdf\xca\xaa\x10\x24\x64\xf7\x2c\x6d\xc2\x87\xc6\xc4\x35\xd3\x27\x48\x37\x07\x4f\x31\x05\xbd\x48\xa1\xe0\x5f\xf0\xba\x3b\x8a\x60\xec\xcb\x64\xdb\xe9\xeb\x66\x30\x0d\xd6\xda\x9b\x2f\xd2\x87\x10\xce\x66\xaa\xa3\x6a\x17\x69\x51\x31\x5b\xb6\x73\x73\xd1\xa2\xc8\x58\x48\x30\x2c\x21\xb7\x25\x4a\x17\xe0\xdc\xe0\xea\x35\x49\x8a\x72\x44\x72\xc8\x85\x0c\x88\x8f\x88\xa0\xc1\xb5\xb6\x4a\x1f\xd6\xe9\x83\x25\xc8\x4f\xbe\x16\x38\xff\x2b\xab\x2f\xd4\x99\xa9\xaa\xb5\x62\x9e\x1d\x06\xe1\xcd\xae\x66\xeb\x68\x54\xa6\x5b\x56\xa0\x6b\xa1\x3f\xb8\xc3\x7d\xb4\xf5\x8a\x8c\x5a\xf0\x53\x78\xb4\x4c\x55\x97\x22\x2f\x4a\x0d\xad\x8b\xcd\x4e\xb1\x55\x3a\x98\x0a\x65\xe8\xc7\x89\x00\x4d\x04\x9f\xb1\xb9\xd3\xbe\xcf\x73\xca\xe9\x1c\xc6\xd5\x6c\x8f\xeb\xf4\x0e\xe7\x9d\x2f\xea\xa3\x85\x7f\x26\x19\x65\xdd\xc1\x83\xb1\xd8\xc4\x25\x52\x81\xa9\xbf\x6a\x44\x3d\x86\xa8\x55\xd3\x3c\xaa\x70\xe3\xcc\xf2\x8d\x89\xff\xca\xfe\x78\x14\xa0\x3d\x52\x8d\xb6\x0a\x54\x8c\xb6\xec\xd4\x70\x85\x91\x13\x9a\x15\x8b\xcf\xab\x8c\x21\x91\x97\x6f\x56\x9c\xe6\x2c\xf1\x07\xef\x22\xcb\x44\x62\x4d\x35\x6d\x65\x33\xec\x4d\x2c\xf5\xe6\x95\xf2\xbc\xd4\x74\x9a\xc1\x84\x5c\xd9\x6c\x15\x82\x67\x2b\x73\x2c\x15\x68\x8f\x5e\x70\x67\x22\x4c\xc1\x0c\x81\xc6\x06\xc2\x62\xb7\xca\xea\xb8\xd7\x6c\x7a\x0d\xe0\x86\xc3\x09\x0e\x04\xb8\x96\x2b\xb3\x2d\x6f\x44\x7a\x6b\x76\x66\xeb\xe9\xe0\xac\x1b\x81\x68\xd8\x18\x48\xd8\x40\x14\x6c\x1c\xec\x6a\x38\x6e\x35\x2e\x66\xb5\xf6\x2c\xd8\xa4\x41\xcd\x48\xa0\xd6\xb6\x28\x44\x3a\xd9\xc2\xb1\x88\x98\x05\x52\x60\x46\xbc\x11\xa9\x91\xa5\x24\x58\xb6\x55\x9d\x51\x6b\x57\xbc\x32\xc4\xdd\xa3\x21\x90\xea\x5a\xc8\xa2\x4b\xca\x32\x73\x80\x03\x09\xd8\x4c\xc0\x18\xe6\xac\x89\xe4\xc2\x70\xb8\xfd\x3e\x6d\x16\x17\xee\xd5\x8a\x18\x4b\x16\x42\x01\x47\x7e\x49\xab\xe0\x9e\x2a\xf4\xc0\xb1\x98\xd4\x5e\xd1\xa1\x00\xe3\xab\x19\x81\xbc\xd0\xab\x11\x81\x25\xc8\x95\x5e\x20\x10\xa1\x4a\x21\x8a\x6c\x8d\x29\x92\xd3\xb4\xb1\x3b\x46\x44\x78\xbb\x74\xe0\xf0\x78\x3f\x38\x55\xad\xcc\xb4\x55\xdc\x98\xaa\x22\x2c\x8e\xbd\x6b\x62\x67\xb6\x21\xa1\x4c\x33\x66\x66\x1a\x82\x59\x55\x73\xd6\x2d\x87\x2d\x89\x78\x16\x7e\x40\x2a\x1a\x51\x25\x66\x4b\xe4\xf4\x13\x5a\x2d\x69\x2e\x4a\xae\x6d\xca\x1a\xab\x48\x54\xc2\x9f\x8d\xbd\x79\x46\x28\xdd\x93\x8a\xfc\x24\xce\xd5\x4e\x53\x9f\xb8\xe2\x26\x46\xfc\x32\xd5\x1a\x24\x7f\x4d\xfe\xd7\xe9\x7f\xfe\xf6\xe7\xf1\xd9\x9f\x4e\x4f\x7f\x7c\x39\xfe\xb7\x9f\x7e\x7b\xfa\x9f\x13\xfc\xc7\x3f\x9f\xfd\xe9\xec\x67\xff\xc7\x6f\xcf\xce\x4e\x4f\x7f\xfc\xfe\xdd\xb7\x77\x37\x6f\x7f\x62\x67\x3f\xff\xc8\xcb\xfc\xde\xfe\xf5\xf3\xe9\x8f\xf0\xf6\xa7\x3d\x3b\x39\x3b\xfb\xd3\x6f\xba\x3b\x25\x43\x3d\xf0\xf1\xfc\xef\x91\xbc\xef\x4f\xe2\x7b\x77\x3c\xf6\xe8\x87\xdf\x5d\x81\x1b\xc7\xdf\x39\x2d\x3e\x77\xfc\x65\xb0\xa9\xe6\x6a\x56\x8f\xcf\x14\x11\x39\xd3\x1a\x52\x77\xf7\x36\x32\xe3\xac\x99\x89\x1c\xc3\xc2\x0c\x56\x14\x6f\xef\x46\x86\x96\xda\xba\xd4\x99\xac\xea\x7e\x45\xc3\x18\x27\x2c\x2f\x32\xc8\x81\x6b\x64\x3c\x63\xaf\xf2\xa2\x95\x71\x52\xbf\x41\x62\xed\x20\xf0\x29\x01\x48\x1d\x91\x03\x6f\x6c\xb4\x81\x37\x0e\xbc\xf1\xb1\x16\x6c\x2a\x8f\xc1\x18\x3f\x34\x89\x70\x26\x2e\xe5\x25\x65\x34\x9c\x57\xa9\x13\xc4\x0c\xf1\x13\x4b\x96\x96\x34\x6b\x26\x95\xf5\x79\x46\xbb\x71\x80\x86\x69\x27\xa7\xab\x0d\x4b\x0e\xe3\xac\x99\xc1\x76\x54\xa1\x7e\xf0\x41\x27\x97\xd5\x1e\xe7\x17\x17\xd9\x03\x5d\xa9\x8e\x89\x2e\xbf\x11\x12\x81\x24\x6b\x83\x12\x21\x3d\xbe\xa8\xa9\xe2\xb6\x2d\xfc\xdd\x3c\x84\xdb\x26\xba\x9d\xa3\xc2\x29\xd9\x27\xaa\x7a\xd0\xfb\x91\xdc\x44\xd4\x91\x21\x66\x9f\x77\x7b\xf1\x5b\xd0\xda\x19\x01\xd7\xb6\x04\xad\xe7\xb4\x72\x8b\xb6\xa7\xc7\x42\x89\x30\xbd\xac\xf9\x72\x26\xcc\x9a\x60\x61\x86\xd9\x0c\x92\x8e\x5a\xb0\xcd\xe9\xb1\x65\x1c\x0b\x71\xd7\x8c\x97\x34\xcb\x56\x7e\x4e\x20\x25\x82\x77\x1a\x08\x3e\x31\x4d\x4a\xae\x59\x66\x36\x13\x91\x30\x2f\x33\xda\x34\x20\xba\x37\xf3\xa8\xbb\x74\x42\xde\xf3\x04\x9a\x0f\x77\x33\x7c\xaf\x0d\x60\x84\x8e\x0c\x34\xa4\x23\xec\x7a\x7d\x07\x22\x6e\xad\xc5\x31\xaa\x65\xe9\x34\xbc\x9f\xcb\x0a\x97\x34\xb1\x07\xb1\x02\x4d\x90\x94\xcd\x66\x66\x64\x54\xd2\xb9\x90\x39\xdd\xa4\x8a\xf2\xb4\xd3\xe8\x46\x02\xc2\x88\x95\x66\xa2\x60\x2c\x0e\xf3\x42\xb1\x14\x12\x2a\x5f\x34\xcb\x8a\x5c\x64\x7a\x21\xca\xf9\xa2\xde\x15\x61\x53\x4e\x94\x46\xb4\x96\x99\x4c\xe5\x2d\x1e\x6b\x9b\x4d\x19\x59\x87\x27\x60\x45\x32\x01\xf6\xb8\x3f\xd0\x8e\x63\x6f\x20\x0a\x2c\x44\xdc\xae\xb9\x0f\xe3\x42\x48\x20\xa4\x8d\x98\x3b\x0e\x9f\x74\x84\x17\x9e\x90\x2b\x9b\x43\x63\xd4\xee\xb5\x35\x25\x76\x32\x1a\x90\x38\x0f\xee\xec\x88\x07\x5c\x1b\x80\x55\x51\x6b\x98\xda\xd8\x76\x4e\xf9\xca\x07\x89\x20\x64\xcd\x06\xb7\x55\x71\x2b\x59\x37\xdb\x7b\x75\x96\x9e\xbd\x52\x8f\x82\xa4\x94\x4c\xaf\x2e\x05\xd7\xf0\xa9\x13\xef\x8b\x71\xab\xdf\xb6\xc9\x68\xdd\xeb\x9e\x44\x22\x0a\x9b\x62\x72\xad\x58\xd3\x42\x94\x59\x8a\x59\x75\x4b\x8e\x6c\xa7\xdb\x8d\x72\x35\x33\x57\xb8\xdd\x6f\x78\x63\xa2\x3b\x6d\x9d\x30\x8f\x14\xb5\x80\xd9\xff\x2e\xd9\x92\x66\xc0\x75\xe3\x17\x37\x88\x1d\x6c\xfe\xe8\x29\x7d\xae\x9a\xaa\xfb\x5a\xc3\x80\x71\x21\xd2\x5a\xa1\x38\xf7\x53\x87\x1f\xc1\x27\xfd\x05\xfa\x5b\x51\x60\xba\x91\x6c\xc9\x32\x98\xc3\x5b\x95\xd0\x0c\xf5\xa8\x63\x2b\xe7\x17\x3b\xe8\xc2\x9d\x29\x45\xa6\x8c\x00\x66\x94\x55\x23\x6a\x5a\xe4\x34\x3a\xfe\xe6\x94\x71\xac\x34\x14\xe0\x1c\x72\x83\x2a\x0b\xdd\x36\xfa\x76\x41\xa5\xd9\x85\x1e\xa2\x6d\xaf\xc6\xa9\x10\x99\xcb\x56\x9b\xad\x6a\xba\x58\x77\x2f\x0a\xf2\x62\xf1\x37\x0e\x0f\x7f\x33\x54\x28\x32\xcb\xe8\xbc\xbe\x9a\x41\x6f\xc4\xbb\x84\xa3\xc6\x77\x4e\x34\xa6\x62\x2d\x8d\x60\x63\xa4\x8a\x1a\x4f\xdf\xe4\xe0\xdd\x15\xba\x57\x67\xc8\x4f\xa8\x22\xd5\xd8\xdd\x44\x07\xd3\x7e\x77\x86\xf7\xc4\xe5\xc5\xcd\xdf\x6e\xff\x7a\xfb\xb7\x8b\x37\xef\xae\xae\xbb\xa3\x66\x85\x06\x6b\x5d\x69\x48\xf7\x49\x05\xf4\x30\xab\x50\x61\x85\x26\x42\x4d\xd0\x75\x82\x09\x5d\x78\x2a\x1e\x02\xfd\xcb\x66\x4f\x01\xed\x26\xb9\xd2\xa2\xb8\x90\xb9\x90\x37\x52\xcc\x58\xd6\xd9\x35\x19\xeb\x04\xaf\x91\xe3\x3d\x4d\x17\xee\xe3\xfa\xba\xb1\x39\x06\x36\x71\x0e\x8d\x2b\x83\x61\x24\xbb\xe9\xa6\xbb\x65\xab\x15\x83\x60\x23\x22\xd6\x48\xec\x7e\x88\x8e\xba\x67\x8e\x1e\xbd\x69\xc8\xe8\xf8\xf3\x18\x9e\xf8\x4c\x24\x34\xc3\x9a\x45\x61\x1b\x9f\x44\x76\xb2\xae\xd3\xd5\x88\x36\xa1\x7e\x3b\x93\x4c\xd0\x14\x95\x55\xc7\xfc\x53\xf0\xc9\xb5\xbd\xd8\x85\x8e\xf3\x20\x42\xee\x2c\xd2\x1f\xc7\xf3\xe1\x31\x85\x84\x4a\xaa\x59\x1b\x5e\x90\xee\x15\x06\x7d\x7b\xd7\x86\x21\xb8\xb7\x6c\x05\x72\x86\x9e\xb9\x6a\x18\x77\xc0\xd8\x0c\x2d\x20\x68\x06\x62\x33\xdc\x94\x68\x00\xfa\xc1\x2f\x43\x40\xb1\x93\x48\x48\x00\xec\xa4\x27\xbb\xd3\xce\x4f\xb5\x23\x2d\x4c\xf9\x9e\x99\x19\x9c\xd5\x4c\xda\x6f\x1b\x2f\x83\x58\xac\x72\xe0\x7e\xfc\x88\x65\xb5\x3c\xff\xa7\x32\x38\x37\x58\xb5\xc4\x64\xdc\x38\x5a\x85\x84\xf1\xe6\xf1\x0a\x05\x2e\x7c\x28\xb9\x66\x39\xf8\xfc\x17\xe3\x35\x99\x48\xda\xaf\x4f\x54\x95\x6a\x36\xca\x46\x27\xe4\xcf\x1c\xcf\x2b\x87\x94\x8c\x09\x17\xf5\x12\x01\x9f\x09\x99\xa0\x93\xe6\xa8\x1b\x3c\xa1\x05\x9d\xb2\x8c\x85\x30\xf3\x58\x1b\x1c\xeb\x37\x34\xe8\x41\x73\x52\x9a\x9e\xa7\x52\x14\xf6\x26\xf6\x41\xa9\xe1\xc0\xc0\x76\xf0\x53\x33\xc9\x30\x0a\xec\xb3\x36\x21\x73\x49\xb9\xae\x0d\xb9\x1b\x1b\xe7\x97\x28\x83\xc4\x10\x02\x68\x1a\xaf\x12\xca\x45\x6a\x78\x46\x73\xd9\x82\xcf\x55\xdf\x52\xaa\x5e\xfa\x97\x6b\x44\x3f\x91\x9b\xf7\xb7\x57\xff\xdf\xda\xb9\xe9\x2e\xda\xd9\xd6\xef\x84\x8a\x86\x1f\x44\xdb\x36\x1f\x5c\xd5\xa9\x61\xe3\x7c\xdd\x1b\xa7\x32\x10\x1d\x3d\x1b\xd4\x87\x92\xb7\x2b\xdf\xd7\xa4\x91\x3c\x48\xd6\xb9\xa9\x92\x26\xb4\x7b\x6d\xfa\x7a\x24\x10\xf3\x08\xd7\x0c\x3d\x6f\x0d\x6b\xad\x16\xb6\xd6\x52\x94\x1a\xad\xcd\xdb\x75\x46\x33\xf5\xa5\x5e\x91\x21\xa6\x9d\x42\x8a\xe4\x9d\x28\x79\x9c\xf4\x52\x01\x3b\xae\x22\x84\xa4\xc0\x85\x76\xd6\x14\xd4\x25\xc4\x0c\xbf\x25\x16\x36\xd5\xc8\x1c\xd9\x92\x73\x02\xc4\xac\xbb\x86\x68\x55\xf9\xf7\xbd\x1c\x6e\xf5\x97\x52\xc1\xba\xff\xc2\xc9\x55\x35\x8a\x6a\x26\xba\x83\x47\x24\xd0\x14\x15\xcc\x82\xea\x85\x4d\x69\x96\x53\x75\x0f\xa9\xfd\x20\x30\x95\x43\x15\x83\x83\x2e\x7e\x3f\xd3\x77\x66\x72\x7d\xd8\x0c\x1a\x84\x6d\x62\x37\x0c\xd4\x09\x51\xc5\x8e\x7a\x1a\x02\x18\xbb\x59\x84\xf7\x3c\x5b\x7d\x10\x42\x7f\x53\x15\x6d\x3b\xf6\xc9\xf8\x8b\x73\x47\xb4\x8d\x98\x68\x97\xa6\x48\xf2\x18\x37\x0e\xf2\xc5\x46\xa9\xb9\x50\xb6\x68\x16\xe4\x97\xca\x15\x65\xc9\x2f\xd4\xb7\x52\x94\x9d\x65\xb8\x98\xfa\xe6\xb7\x57\x6f\xf0\xe2\x2b\x5d\xb6\x1f\xae\xe5\x0a\x0b\x8e\x7a\x8b\x57\x44\xa7\xcd\x9f\x5d\x5e\xa5\x26\x67\x0b\x4e\xa1\x42\xc8\x3b\xba\x22\x34\x53\xa2\x32\xa9\xf1\x6d\xee\x56\xef\xcb\x35\x5f\x4f\x85\x5e\x6c\x38\x71\xbb\xa2\x40\x4c\xdb\x1c\x6f\xd4\x48\x1a\x54\xc7\x67\x33\xbe\x31\xac\xc6\xc0\xa2\x42\x42\x02\x29\xf0\xe4\x4b\x3d\x11\xc7\xce\x61\x83\xa7\xea\x5a\x70\xc3\x5e\x8f\x7d\xae\xae\x2a\xfb\xa4\x5b\x8d\xe6\x29\x42\x53\xb6\x73\x22\x52\x84\xe9\x21\x73\x2d\x55\x48\xd4\xd7\xd5\x0c\xbd\x9e\x76\xd3\x7d\x5f\x4e\x21\x33\x8b\xcd\xb2\xcc\xec\x40\x96\x52\x6d\xa1\x09\x2c\xa7\x73\x20\x54\x57\x87\x50\x0b\x02\x5c\x95\xd2\xed\x9b\x8e\x00\x1d\xd3\x2a\x6c\x91\x7b\xb5\x3f\x5f\xbd\x21\x2f\xc9\xa9\x79\xb7\x33\x94\x38\x66\x94\x65\x98\x42\x0a\xc1\x7f\x6b\x2e\xd9\x99\x87\x27\x05\x4d\x01\xf2\x11\x22\xa4\xbd\x5a\x46\x84\x0b\xa2\xca\x64\xe1\xe7\x80\x09\x5e\x59\x84\x5d\x4e\xe1\xa0\x58\x98\x81\xed\xc4\xbb\x0f\xff\xac\x40\x1e\xfb\xd8\x9a\xeb\xf0\xcf\xcf\x78\x1d\x36\x55\x44\x73\xfc\xdb\x0b\x66\xcf\x6a\x0e\x9a\xa6\x54\x53\x77\x4d\xfa\x07\x86\x5d\x3b\x5c\x96\x01\x97\xa5\x82\x1f\x18\x2f\x3f\xd9\x8c\x9d\xbd\x70\x7b\xdc\xbe\x45\x8a\x48\xe2\x17\x5a\x34\xfc\x76\xde\x43\x11\x21\x3c\xfa\xaa\x75\x8c\x46\x3b\xb4\x6e\xbc\x25\xa8\x4d\xff\x00\x46\x11\xa2\x3c\x15\xf9\x06\x91\x33\x21\x09\xd0\x64\xd1\x99\x9a\x06\x6a\x64\x38\x98\xae\xfd\xb2\x1d\x42\x19\x2c\x21\x8b\x66\xdb\xff\xc1\xf4\x66\x26\xc7\xef\x5c\xec\x9e\x64\x74\x0a\x99\x4b\xd8\x62\xb3\x78\x45\x3c\x61\x91\x6c\xe0\x52\x44\x84\xc4\x7c\x10\x16\xc9\x45\xab\x89\x30\xdd\x7f\x11\xf3\x10\x15\x7c\x71\xe7\xd0\x25\xf5\x3c\xa0\x0d\xf4\x4b\x98\x87\x32\x40\x40\x24\xeb\xf3\x60\xa4\xcd\xf6\x3c\xa0\xfc\xd5\xf7\x79\x50\x90\x24\x22\x2f\x7a\x82\x94\xbc\xb3\x28\x7c\x43\xd1\xbe\xa8\xc8\xf6\xc3\x34\x08\xee\xec\xf2\x30\x53\x6d\xef\x41\x9f\x8c\xf9\xff\x6a\x5c\xe7\xc8\xed\xd6\xef\x78\x37\x7a\x30\x22\xb3\x1a\xd1\x75\xf8\x4b\xbc\xf1\x06\x18\x66\xab\x3d\x3b\x0c\xb3\x91\xcb\x8d\xa2\x79\xbe\x05\x89\xfc\x1a\xc0\x98\x46\x09\xc0\x79\x05\x8e\x01\x65\x05\xd5\x8b\x11\x91\x90\xd9\x0c\xe9\x8e\x3d\xdf\x5b\x8b\xd7\x09\x72\x1c\x4f\x90\x67\x37\x35\x66\xd5\x26\x73\x8b\x8a\xdd\xdc\x86\xd7\xb4\xcf\x5c\xbf\xbf\x6b\x06\x00\x53\xbe\xb2\x69\x0a\x02\xc2\x5b\x6d\xeb\x9f\x58\xf1\x94\x98\xce\xf5\x55\x7c\x6a\x48\x67\x50\x7f\xdb\x11\x9d\xcf\x77\x4a\xf7\x43\x79\xae\x63\x3c\xa3\x92\xb0\x0e\xf8\xdc\x1c\x23\xc2\xca\x05\x1f\x01\x77\x75\xf6\xc8\x00\xf2\x17\x4b\x91\xd7\xb2\x13\xc3\x38\x34\xe3\x73\xd5\x34\x82\xd0\x2c\x8b\x82\x49\xd8\x66\x05\xf1\xa7\xa0\xca\x66\xb6\x69\x0d\x68\x57\xdb\x08\x19\xfd\x11\x0b\xc6\x97\x6d\x89\xc8\x8c\x46\xf1\x85\xdb\x21\xe6\xb9\xa2\x97\xd2\xcc\xa0\x66\x34\xbb\x2d\x20\xe9\xcb\x6d\xf1\xed\xbb\xdb\x8b\x36\x65\x28\x0b\xbb\xdc\x8d\x80\xdf\x13\x9a\xe6\x4c\x29\x74\xf8\xc0\x74\x21\xc4\x7d\xd0\x90\xa7\x3e\xd4\x76\xce\xf4\xa2\x9c\x4e\x12\x91\x37\xa2\x6e\xc7\x8a\xcd\xd5\xb9\xe3\x28\x63\x33\x71\x67\x84\xf1\xac\x8a\x54\x46\x6b\x21\xd7\xca\x79\x10\x82\x5f\x9e\x24\xd5\xdb\xe3\xd6\xc3\xf8\x94\x0a\x9a\xbd\x39\x3d\x98\x60\x13\x37\xef\xd1\xa5\x8e\xcd\x5d\x15\x96\x07\x7f\x6d\x67\xed\x78\xf7\x66\xb2\x48\xe7\xc5\xd9\x3a\x8f\x56\x79\x3d\xfa\x24\x39\xa1\x3f\x01\x15\x84\x80\x8d\x79\xe6\xbe\xab\x49\x22\x29\xd8\x24\x22\x80\xf9\xbc\xe8\xce\x98\x7b\x74\x6f\x9f\x60\x2d\x41\xf7\xd3\x93\x58\xf9\x4d\x2f\xb2\xcc\x2c\x24\x75\x09\x65\x1a\xe8\x4e\x54\x4d\xaa\x1c\x2e\xca\xac\xb8\x4d\xdf\x62\x94\x85\xe6\x5b\x84\xd7\xdd\x3f\x65\xda\x67\xcf\xf1\xe9\x7b\xb4\xb0\x63\x53\x92\xb3\x4f\x86\xc2\xe6\x88\xed\x7c\x23\xe8\xf8\xdf\xfe\x75\x40\x69\x25\x82\xe0\x83\x2a\x6d\xd7\xc8\xac\x50\x73\x10\x1f\x1c\xad\xcd\xb5\x65\xbe\xb8\x06\x6d\x14\x35\x3b\x6f\x4d\xef\x83\x51\xac\x64\x19\xe1\x30\x84\x78\x86\x49\xd3\x3b\x1c\x95\x53\x04\x9e\x07\xf4\x14\x3b\x9a\x8c\x0c\xe2\x85\xb7\xe7\xf2\x1c\x93\x2d\xe1\x3b\xcf\xe6\x41\x26\xfb\x7b\x91\x9f\xd0\x57\x45\xfa\xe2\xaf\x0a\x4d\xb5\xd2\x48\x1b\x73\xb4\x3c\x2b\xcd\xd4\x35\x6c\x13\xbc\x74\x23\xd2\x8d\x8c\x36\xbe\xf0\x7c\xf7\x12\x23\x66\x73\xd4\x2a\x08\x17\xce\x3c\xd2\xa8\xfd\x0e\x9f\x20\x29\x35\xa4\x2e\xb1\x95\x33\x29\xdb\xa4\x38\x6d\x6a\x3a\x53\xe0\x83\xf4\x5d\xc5\x49\x35\xaa\xb3\x81\x3b\x5d\xa7\x4a\xcd\x35\x22\xff\x85\x5c\xd2\xe5\xb1\xac\xcb\xd5\xdf\x54\x3f\xef\x3a\x15\x88\xa3\x4e\x28\xf7\xba\x15\x56\x3d\xb7\x16\x6e\x97\xc0\xca\xe5\xf1\x98\x02\x29\xa8\xa4\xb9\xb9\x83\x15\x71\xcb\x33\x85\x39\xb3\x61\x81\x8d\x4b\xb1\xca\x80\xd5\x2d\xa3\x1b\x2a\x36\x4c\x93\x9c\xcd\x17\xf6\xb4\x10\x8a\xa5\x21\x89\xc7\x8d\x65\x82\xa6\x04\x19\x8b\x90\xe4\x81\xca\xdc\xc8\x02\x34\x59\x20\x08\x8d\x72\x92\x96\xe6\x3c\x10\xcc\xd7\xb4\x1a\x2b\x4d\xb5\xd1\x31\x41\x06\xd8\xe0\xfc\x34\x1d\xa1\x78\xc9\x53\x17\x66\x3b\x72\x3e\x1d\x73\xd2\xa2\x58\x41\xde\x7e\x82\xa4\x51\xfe\xdb\x6c\x4f\x57\xff\xdb\x5c\x53\xf4\x3e\x10\x67\x76\x74\xbd\x38\x11\x79\x4e\x79\xbc\xa0\xcd\x40\x41\xe4\xd2\x92\xe3\x55\x1c\x47\x1d\x31\xca\x27\x62\x3b\x2d\x03\xf5\x05\x06\x5a\x52\x88\xe5\x74\x66\x5f\x9b\x63\x6a\x13\x02\x09\x59\x15\x8d\x0b\x22\xcb\xd3\x81\x65\xa8\x84\xd0\xe4\xf4\xe4\xfc\xe4\xcc\xa7\xa8\xab\x48\x38\x51\xcd\x98\x02\x1b\xfe\x5c\xbf\x90\x62\x79\x91\xad\xf0\x1d\x4e\x6c\xe5\xa9\x80\x8a\xae\xa6\x79\x74\x6a\x55\x6e\x41\x2d\x20\xcb\x46\x44\x19\x59\x97\xfa\x4c\xb7\xf6\x53\xf3\x90\x96\x65\x62\x6d\x62\xa7\x27\x3f\x9f\x8c\x08\xe8\xe4\x8c\x3c\x08\x7e\xa2\xad\x77\x83\xdc\xa1\xc2\x18\x44\x53\x45\xc4\x4a\x94\x58\x1c\xd9\x2e\x5b\x95\x1c\x39\xa1\x46\xd7\x29\xad\x40\x6e\x33\x6c\x40\x16\x50\xec\xd7\xb4\xb7\x9f\x98\x36\x72\x87\x2e\xd1\x26\xf1\xd2\xaa\x05\x60\x78\xa9\xb9\xdd\xcc\xb5\x76\xbe\x00\x9a\xe9\xc5\xaa\x52\x55\x6c\xdd\x59\x45\x4a\xee\xbe\x09\x17\x98\x7a\x10\x23\xda\xdf\x68\x4d\x57\xfe\xfa\x6e\x21\x41\x2d\x44\x76\xf4\x98\x4d\x5f\x13\x35\x11\x5c\x19\x9e\x62\xf4\x69\x47\xa3\xaa\xc2\xe5\x5c\x5d\x56\xe1\xb2\x9b\x9a\x53\x26\x21\x75\x92\x91\x4b\x95\xb8\xa0\x4b\x14\x0b\x8c\xf0\x06\x69\x88\x1e\xd2\x54\x80\x7e\x1f\xb3\x6a\xeb\xf1\x0b\xa4\x9a\x36\x97\x45\x9c\x2b\xf9\xdb\x0f\x37\x97\x8d\x2b\x99\x72\x7f\x23\x33\xbe\x14\x19\xae\x06\xb5\x0f\x15\x42\x06\x56\x32\x3e\x3a\x9a\xc0\xbc\xc2\x11\xc5\x03\x33\x7c\x34\xd9\xe0\x46\x48\x4d\x78\x55\x0d\xd9\x9c\xb0\x39\xae\x25\xc8\x25\x4b\x60\xe2\x2b\x25\x7b\x7f\xbc\xaf\x79\x43\xf9\x1c\xc8\x2b\x73\x2c\xfe\xf8\x87\x3f\xfc\xfe\x0f\xe1\x9c\x3a\x3c\x79\x79\xf8\x71\x20\x88\x7f\xc2\x17\xef\x8b\xf0\x75\x6b\xc9\xd9\x66\x5f\x76\x94\xa2\x1e\x97\xd1\xa4\x5a\x1b\x5c\xbf\xef\xf0\x06\xbd\x5c\x40\x72\xef\x4a\x11\x84\x19\x22\x15\x00\xd9\xe2\xa1\x30\x0c\xc4\xfe\xdf\x34\x13\xd3\xf3\x9c\x2a\x0d\xd2\xa8\x35\xee\x72\x1f\x27\x86\x02\xc6\xe7\x93\x3c\x3d\x0b\x28\x6a\x47\x1a\x9a\xf4\x46\x3a\xf1\x56\x66\x99\x1d\xa9\xc1\xcd\xa4\x1c\xdd\xea\x4e\x3c\x95\xaf\xc9\x8b\x6e\xb9\xa8\xcd\x12\x7c\x0b\x71\x82\xcf\xbe\xbb\xbb\xbb\xf9\x16\xf4\x9a\x26\x65\x46\xa8\x2a\x5c\x99\xad\x65\x83\x98\x06\x96\x1d\xc2\xb2\x17\x22\xac\xc4\x59\x6c\x3f\x8b\xe5\x23\x98\x56\x9b\x73\x48\xcc\x42\x8f\x5a\xc5\x54\x3c\xee\xf0\xea\x66\x42\xfe\x2a\x4a\x94\xba\xe8\x34\x5b\x91\x07\x6a\x33\x18\x28\x08\x63\x28\x2f\x0c\x19\x2f\x0c\xcb\x32\x1b\xee\x3b\xa0\xa9\x2d\x8f\x80\xa6\x9c\xa3\x1f\xd4\x06\x4d\xd1\x96\xed\xb2\x54\x5a\xe4\x64\xe1\x5e\xd5\xce\x61\x5d\x43\xce\x16\x57\xc3\x43\x69\x7d\x3d\x8a\x48\x28\xac\xc2\xe4\x7e\xf3\x55\xa8\x43\x1b\x2c\xc8\xce\x73\xa3\xd2\x10\x25\x49\x73\xaa\x9c\xac\x8f\x26\x4b\xc6\xed\x04\x75\x36\x81\xd5\x2d\x4a\xc1\x4e\x12\xa9\x68\x27\x09\x2f\xdc\xe9\x3b\x09\x77\x3a\xc6\x29\x01\x4a\xa2\x94\x01\x25\xd1\xab\x3b\x12\xe7\x5a\x73\x9b\xcb\x02\x6e\x0c\xa1\xa1\x59\x08\x89\x37\x1e\x57\xb5\x37\x28\x17\x9c\x25\xd6\x7d\x41\xca\x42\x70\x22\x4a\x5d\x94\x1a\xad\x41\x09\x55\x30\x5e\x52\xc9\x0c\x43\xb5\x35\x94\x2b\xe4\x13\x37\xa7\x5d\x0b\x81\xa6\x92\xca\xc9\x6c\x29\x0e\x27\x33\x92\x28\x63\x1a\x6e\xb6\xc8\x2b\xbc\xb1\x38\xe1\x3b\x9a\xf4\xda\x0c\x43\x6c\xd9\xaa\x45\x3c\x9d\x8e\xea\x05\x22\xf9\xd0\x77\xe5\x81\xa0\xc8\x38\x8d\xce\xd0\x83\x40\x9b\xa8\x2a\x6c\x20\x4b\x40\xff\xba\x90\x6b\x4a\xb0\xa1\x70\x73\x0e\x23\x61\x4b\x9e\x5e\xa7\x6e\x96\x3c\x9e\x02\xa1\x9c\x5c\x5d\x5c\x5f\xfc\xed\xf6\xe3\xe5\xdf\xae\x2f\xde\xbd\x0d\xe9\x3a\xb8\x5c\x59\xcc\x82\x65\xd1\x4a\x96\x3d\x51\x41\x47\xd3\x54\xb2\x80\xfe\xc0\x4a\x6e\x91\x9a\x66\x12\x32\xa7\x03\x34\x4a\xe9\x84\x65\xa5\x23\x6b\x76\x53\xc3\x78\x8e\xca\x71\x1c\x8a\xe0\x0d\x64\x74\x75\x0b\x89\xe0\xe9\xd1\xd1\xd8\xd7\x15\xb3\x51\x96\xa0\xaa\x82\x10\xac\x65\xc8\xf2\x35\xbb\x5c\xdd\x23\x8f\x07\x68\x42\x18\xec\xfb\x75\xf6\x52\x93\xfe\x79\xaa\x49\x6f\x2c\xe4\x05\x48\x86\x08\xa0\x3e\xec\x9a\xef\xc4\x83\x2b\x06\x76\xca\xb8\xdf\x39\x67\x0d\x2b\x4d\xed\x21\x09\xcf\x9e\xa6\x05\x79\xf5\xd2\x0f\xf2\xf5\xb9\x3e\x1c\xb2\xa7\xd7\xce\x2f\x47\xe3\xe3\xde\xaf\x1a\xa6\xd4\xf6\x80\x85\xe0\x85\xc8\x1a\x1b\x7f\x35\xa9\xe2\xd2\x5e\x21\x3d\x15\x2b\xa2\x3c\xf5\x10\xb3\xaf\x6f\x9f\xe8\xa4\xb8\x15\xc9\x7d\x24\x9b\xeb\xdd\xe5\x8d\xed\xed\x51\x67\xd9\xdd\xe5\xcd\xe0\x2b\xeb\x97\xe1\xf5\xc4\x86\x72\xd1\xec\xf5\xc1\x46\xd4\x93\x41\xe3\xaa\x9b\x17\x7e\x64\xbb\xea\xc9\xa0\x71\xed\x68\x83\xc6\x75\x40\xf3\xd5\x67\x99\xe0\xdf\x4a\x9a\xc0\x4d\x9f\x04\x38\xcf\x40\x48\xea\x6a\xb2\x93\x5a\x8e\xab\xd8\x05\x07\x48\x2d\xff\xf0\x85\x74\xc9\xdc\xbc\x89\x85\x44\xa3\x1d\xb1\x06\x13\x97\x32\x40\xd4\xbb\x5b\xb8\xae\x9d\x98\xeb\xbd\xcc\xdb\xa8\xab\xf5\x93\xa2\x4a\x80\xee\x2b\x85\xb8\xe3\x64\x88\x37\xfa\x88\x02\xde\xdd\xa4\x4e\x9b\x2b\x48\x14\x9b\x9b\xe9\xf2\xf5\x9b\x6d\xe2\x2c\x5f\x6e\xaf\x26\xc4\x8c\x3a\x13\x32\x61\xd3\x6c\x45\x16\x34\x33\x0a\x13\x96\x01\xa6\xe4\x1e\xcb\xd7\x62\x37\xdd\x27\xea\x16\x5c\x7c\xa6\x95\x6a\x32\xc1\xe7\x38\x19\xd4\xc5\x61\x7c\x2a\x20\x31\x63\x26\x19\x50\x5e\x16\x96\x4e\x23\x23\xad\x44\x19\x21\x14\xc3\x7b\xbe\x2b\x99\x8a\x33\x97\x72\xc4\x16\x6b\xfb\xec\x9e\x6f\x07\xd4\x92\xf7\x7a\x01\xf2\x81\x29\x18\x75\x2f\x57\x4b\xbc\xe9\x77\xad\x74\x9c\xfd\xac\x4a\x9b\xe2\xa2\x05\xcd\xb6\xc0\xf0\xd5\xce\x63\x7d\xc4\x7e\x3d\x6b\xe5\x82\x8f\x39\xcc\x6d\x72\x06\xc7\xd0\x2c\xb0\xd3\x8e\x6f\x61\x84\x55\x84\x81\xd2\xa2\x68\xd5\xea\x5d\x32\xda\x99\x12\x4c\x04\x51\xef\x28\x72\xca\x05\x11\x85\xb9\xba\x4a\xce\xf4\x0a\xbd\x7a\xbe\x4c\x74\x40\x8c\xd5\x9d\xc3\x39\x50\x32\x05\x4d\x9d\x1d\xdc\x1c\x82\x2a\x0f\x3a\xa6\x38\x37\x67\x0f\x03\x03\xee\xb6\x6e\x80\x2a\x35\xfa\x9c\xea\x00\x2e\xb1\x45\xa2\xb7\xeb\xf9\xf9\x6d\xc7\x94\xf3\xd9\x05\xe6\x5e\xee\x47\x36\x43\x73\xa2\x45\xa9\x7b\x72\x8f\xec\x32\x1f\xd9\xb4\x16\x0d\x45\x91\xe5\xa0\x88\x28\x23\xd5\x98\x78\xe5\x86\x8b\xa9\xe5\x0d\xb6\xa7\xad\x4d\xe9\x94\x75\xaa\x34\x1c\x63\x8b\xed\x48\xd8\xef\x62\x6f\x1b\x39\x2b\xa7\xe5\x6c\x06\x12\x6f\x3a\x24\x78\x03\x7d\x5f\xd5\xee\xf2\x77\x58\x37\x03\xae\x43\x7c\x81\x1e\x61\xbd\x00\x97\x40\x62\xc7\x90\x2e\xb1\x26\x96\xe6\x95\xa0\x30\xff\x3b\x27\x6f\xdf\x7f\xd3\x6d\x8b\xc6\xa8\x26\x10\x16\xa6\x8a\xef\xf9\x9e\x77\x03\x25\xc6\xdd\x0f\xdb\x32\xbd\xb8\x6d\x91\x64\x42\xb9\x90\x68\x5c\x97\x64\x41\x39\x07\x6f\x90\x62\x1a\xad\xd9\x53\x00\x4e\x44\x01\x16\x95\xd7\x89\x18\x4a\x14\xe3\xf3\x0c\x08\xd5\x9a\x26\x8b\x89\xa1\x8e\xfb\xbd\x50\xc7\x1e\xbb\x4f\x94\x96\x40\x73\xbb\x27\x24\xe4\x94\xd9\xe1\x09\x4d\xa4\x50\x8a\xe4\x65\xa6\x59\x51\x75\xd6\xcd\x92\x08\x98\x05\x42\xd9\x50\x54\xbf\x56\x18\x5d\x52\x07\x39\x8f\x6a\x0a\xdd\xeb\x8b\x66\x81\x22\x34\x9f\x8d\xcc\xb7\x90\x17\x7a\x55\x05\x23\x76\xd3\x81\x66\x4c\x2a\x4d\x92\x8c\x01\xd7\xee\xcd\x6c\x9a\x41\xa4\x61\xe4\xc5\x69\xee\x66\x44\xb9\x29\xe1\x29\x2a\xdf\x85\x56\x36\xe6\xae\x22\xc2\x77\x95\x32\xe5\x6c\x1d\xaa\x5b\xc4\x1f\xf5\xd5\x68\xec\xc6\xf1\x33\x82\x5b\xc7\x0b\x38\x96\x22\xf7\x51\x83\x84\x46\x6d\xed\x3a\x5e\x32\x8c\xaf\x60\xc9\x18\x7f\xae\x47\xad\x3c\x03\xb5\x6e\x81\x11\x31\x1b\x5c\x07\x37\x14\x87\xa5\x39\x07\x90\x80\x11\x45\x69\x44\x26\xf3\xec\x3c\xa6\x21\xcb\xbd\x03\xa5\xe8\x1c\x6e\x3a\x42\x12\x62\x30\x9c\xda\xd0\x86\x58\x86\x7a\xdb\x2c\xc0\x26\xb7\xd2\xa2\xf1\x49\x33\xd6\xab\xa9\x3c\xe6\xf6\x45\x3a\x51\xe0\x95\xa6\x07\xc9\xb4\x06\xdc\xa5\x58\xbd\x09\x41\x68\xeb\x09\x3b\xdb\x31\x66\x9d\xc6\x73\x93\xde\x1c\xcf\x88\x1f\x3c\xb5\xd1\x5a\x53\x20\x53\xc9\x60\x46\x66\x0c\xc3\xc7\x30\xb0\x6a\x64\x2b\x0f\x50\x6b\x42\x56\x0a\x24\xbe\xb6\x33\x0b\xf8\xd7\xef\x46\xcf\x5f\xdc\xfb\x6b\x59\xf2\x84\x36\xca\x72\x62\x3e\x31\x36\x23\x73\x0c\xe6\x72\x4a\xf0\xbf\xbc\xfc\xb7\x3f\x92\xe9\xca\xc8\x6b\xa8\x88\x69\xa1\x69\xe6\x09\x20\x19\xf0\xb9\x59\x45\x64\xb9\xdd\xf8\x46\x2b\x27\x55\xb5\x38\x19\xcb\x99\xb6\x13\xf4\xea\x77\xf7\xd3\xa0\xa3\x87\xfc\xf1\x3c\x85\xe5\x79\x63\x0b\x8d\x33\x31\xef\xd6\xeb\x65\x8c\x08\xe2\x20\x3b\xdb\x96\x13\x2d\x32\x96\xac\x8e\x75\xa6\x7d\xc1\x12\xb2\x10\x0f\xd6\x98\xb3\x79\x54\x1b\xe9\x5d\x0a\x51\x94\x19\x4e\x1c\xf9\xa6\xca\xc9\x57\x2a\x58\x4f\x77\x14\x6a\x24\x6c\x70\x3b\x74\xa4\xba\x61\xd7\xee\x1c\x17\xc9\xe8\xc9\x14\x2e\xd9\x84\xf3\xbb\x55\xb5\x47\x3a\x5b\xe3\xbe\xa1\x59\x36\xa5\xc9\xfd\x9d\xf8\x41\xcc\xd5\x7b\xfe\x56\x4a\x21\xdb\xef\x9c\x51\x73\xa7\x2f\x4a\x7e\x8f\x95\x73\xeb\x04\xb4\x62\xee\x70\x85\x3e\x67\x40\xe3\xed\x3a\x11\xe3\xdf\xd2\xa6\x04\xf5\x22\x89\xb7\xc1\xd5\x23\xc3\x27\x56\x1b\xda\x38\x01\x43\x73\xd7\xa0\x7b\x68\xbd\x87\x6a\x1e\xed\xdf\xbd\xfc\x97\x7f\xb5\xcc\x85\x08\x49\xfe\xf5\x25\x46\x1e\xab\x91\xbd\x00\xf0\x06\x36\xa2\x56\x4e\xb3\xac\xab\x97\xa0\xc9\x02\xbe\xe9\x5c\x90\xba\x07\x47\x5e\x1f\xed\x74\xef\xad\x32\xde\xdd\xfd\x15\xf5\x45\xa6\x15\x64\xb3\x91\xcd\xf0\x52\x99\xb5\x4e\x50\xba\x3a\x71\x57\x5e\xf7\xec\x40\xc7\x57\xda\x96\x22\x2b\x73\x78\x03\x4b\x96\x74\x73\x60\xb6\x56\xa5\xd5\x9b\x37\xd3\x67\x4c\x61\xe2\x9f\x69\x26\x92\x7b\x92\xba\x2f\x1b\x70\xf9\xf5\x4a\xda\xdd\x67\xa1\x6b\xe0\x40\x40\xc0\xc0\xce\xf7\x6f\x85\x0a\xe4\xb4\x28\xaa\xac\x24\x92\x3e\xb4\x26\x03\x59\x13\x66\x44\x0d\x74\x23\x06\x3b\xd3\x43\x5d\xe9\x63\xf7\x46\xe6\x9a\xea\xdc\x45\xe7\xf8\x82\x70\x4f\x7c\x4d\x7d\x77\x3f\x66\x6b\x43\xd4\x1d\xfa\xd3\x50\xe0\xbf\x6d\xda\x85\x8d\x6c\x58\x55\x9a\xa1\x6a\x63\x58\x09\xd2\x6c\x1f\xbc\x65\xba\x9b\x2f\x23\x38\x43\xc3\xe2\x24\x5a\xf3\xc2\x2b\x27\x74\x4e\xb5\xd3\x8f\xbc\x97\x9d\x92\x02\xa4\x62\xca\x88\x4e\x1f\xf1\x40\x5d\x66\x94\xe5\x0d\xf7\xdd\xb1\x26\x61\x13\x55\x9f\xd3\x62\x7c\x0f\xab\x8e\x1b\x2e\xf0\xb8\xec\x02\xf9\xe7\xb4\xe8\x78\x0f\x60\xb9\xda\xf0\x6b\xa0\xe3\xe5\x7c\x23\x52\x47\x07\x5e\x0f\xb6\x0c\xf1\x93\xa8\xb1\x11\x65\xa0\x63\x5f\x39\x1f\xeb\x85\x6b\xdf\x38\xe6\x93\xea\xca\xb1\x4f\x7d\x4d\x17\x0d\xbe\xdf\x97\x7a\xcf\x54\xc4\x47\x62\xa7\x41\x48\x27\xbc\x9d\xdc\xce\x68\x5f\x47\x2d\x83\x96\x3d\x99\x0d\xd5\xd7\x19\x9a\x26\xb6\x10\x40\x00\x01\xe6\x28\xba\x41\xc9\xc9\xeb\x93\xa3\xde\x71\x76\x65\xa4\x28\xe8\x1c\x35\xd3\x3e\x2c\xd0\x3a\x4d\xcd\xbc\xb3\x0b\xf1\x60\xbf\xb7\xe8\x92\xc2\x3d\x05\x69\x9d\xbc\x7c\x21\x82\x56\xc7\x22\x07\xfd\x8e\x70\xda\xb5\xcd\x4f\xf8\x40\x57\x84\x4a\x51\xf2\xa0\x50\x68\x74\x8c\x54\x8e\xb3\x77\x6b\x2f\x7b\x2d\x38\x78\x27\x7d\xc8\x28\x77\x75\xde\x72\xa6\x2c\x5e\x81\x71\xf2\x6a\xf2\xea\x65\x30\xed\x1f\x20\x29\xa5\x62\x4b\xf8\xe0\xea\x9a\x37\x9c\x2a\x57\xb3\x1b\xa1\x14\x9b\x66\x18\xbc\xa5\x05\x79\x6b\x8b\xbe\x6f\xbe\x68\x05\x1c\xc1\x37\x16\xb2\x99\xa1\x34\x80\xc2\x53\x7b\x82\x9b\x80\x4f\x33\x40\x00\xea\xa3\x5f\x92\x24\xae\xeb\x9a\x24\x79\x5d\x49\x92\xf6\xde\x3b\xea\xbb\xfa\x62\xf7\x7d\xe0\x24\xef\x9c\x6f\xa0\xae\x66\xcf\x7c\xb5\x64\xfc\xe8\x41\x32\xed\x0e\xf7\x03\x53\x40\x4e\xd1\x2a\xb1\xb6\x19\x83\x92\x32\x37\x6d\x58\x81\x55\xef\x63\x24\x55\x96\xeb\x47\xb7\x0f\xab\xb4\xc9\x4f\x6a\x14\xfe\x83\x33\x60\xd5\x2b\xe8\xb8\x7f\x7d\x2f\x2f\x28\x4f\xb3\x20\x9e\x51\xcd\x4a\xb6\x0a\x4a\x86\x73\x35\x23\x4d\x96\xe8\xfc\x97\x8d\x0a\x12\x0b\xaa\x08\x17\x24\x07\x8a\x00\x4d\x73\xbb\x78\x2e\xd8\xca\xcf\x1c\x8f\x06\xbb\xd9\xed\x35\xd6\xbc\x10\x1c\xbb\x7e\xc3\x94\x63\xcf\x86\x8f\x38\x0d\xc4\xc2\x3a\x72\x9a\x86\x84\x77\x37\xe6\xb4\x5e\xbc\x49\x0d\x9a\x5c\xa7\xa4\xbe\x38\xd6\x68\x79\x0a\x3a\x46\xae\xec\xb8\x19\xbe\x44\x9c\xe0\x16\xb3\x5c\x0d\x92\x09\xf2\x66\xdb\xb6\xfe\xba\xd5\xb5\xb8\xf1\xae\xdb\x29\xae\x08\x0e\xa0\xe1\xf1\x57\x1d\x35\x78\xa1\xc7\x88\x5a\x97\xba\xab\x7b\xe2\xa2\x1e\xc3\xb2\x77\x7b\xa7\x44\x65\xee\x99\x03\x07\x49\x9d\x5f\xc1\x43\x44\x5d\x02\x16\xaa\x04\x0f\x3d\x10\x8f\x6c\x38\xc3\xef\x1f\x17\x53\xec\xcf\x02\x08\x41\x39\xe7\x54\xc8\xb5\xd3\xee\x3c\x26\xdb\x24\x96\x98\x6f\xbd\x96\x9b\xcb\x6e\xfe\x46\xea\x4f\xb3\x28\xff\x5d\xb2\x25\xcd\xc0\xe6\xad\xf7\xac\xe1\xa8\xc2\x84\x2a\xa7\x7d\x55\x1b\x9d\x7e\x88\x6a\xc7\x76\xd0\xc3\x4e\x0d\x32\x92\x3c\xf1\xe2\x05\x39\xb5\x63\x9c\xd8\x5c\xbb\xc7\x15\x72\xdd\x5a\xbd\xfd\x54\x04\x54\x6b\x8d\xb7\x5e\x6f\x3f\x15\x14\x71\x1a\x45\x2f\x16\xee\x7f\xc2\x82\x2e\x01\x53\x1b\xb3\x8c\xca\x0c\x41\xe9\xb7\x76\xca\xc8\xb4\xd4\x04\xf8\x92\x49\xc1\x73\x73\xfc\x30\x01\x8d\xe1\x4c\x12\x30\x01\x7c\x02\x8a\xfc\xe6\xf4\xe3\xc5\x07\x0c\x5a\x3a\x73\x19\xf2\xdd\xfb\x95\x0a\x73\x04\xac\xbd\x43\xa3\xbb\x3e\xee\x37\xe2\xdf\xdd\x6c\x17\x94\x4f\xfc\x5c\x98\x77\xcb\x4b\x5d\xd2\x0c\x33\x40\x27\x59\x69\xee\xc2\xa3\xed\xec\xf8\x36\xf0\x10\x4b\x5e\x4c\x13\xb8\xcb\xff\xfd\x86\x75\x3a\xae\x31\x0e\xea\x65\x63\xbf\x6e\x64\x23\xef\x5c\xd7\x61\x4b\x16\xca\x0d\x41\xe7\x44\x55\x99\x29\x9b\x71\x38\xee\x2e\xee\x06\xcf\xc0\x72\x09\x36\x00\xdc\xd7\x21\xdd\xb0\x30\x62\x5d\x96\xa3\xdb\xf0\x3b\x1c\x86\x78\xc7\xa0\x83\x21\x3a\xce\xae\x4f\xb9\xba\xc4\xa5\x39\x8c\xe2\xb0\x8d\x7e\xdb\xca\xe2\xf9\xe6\xfa\xb6\x59\xc4\xc3\x3a\xff\xc4\xc1\x2b\x79\x53\x77\x51\x57\xba\xc1\x2a\x78\x95\x03\x15\xe4\xdc\x8a\xd3\x98\x7a\xb6\x92\xaf\xdf\x5c\xdf\x1e\x38\x96\xdf\xcd\x56\x18\x9e\x52\x65\x31\xd2\x6f\xae\x6f\x2d\x6e\xed\x30\xda\x3b\x3b\x52\xba\xfb\x20\x30\x89\x1b\xe6\xd7\xea\xc0\xb1\xc3\xb9\xdc\x45\x85\x07\x31\x8b\x8f\x3e\x5f\x4b\x0d\xb9\xba\x21\x34\x4d\x25\xc2\x99\xbb\x9c\xe5\x56\x56\x3b\x5a\x14\x15\x2a\x15\x0b\xc3\x50\x05\xcd\x57\x6f\xec\x01\x14\x7c\x3a\xae\x9f\x6d\x6f\xca\x22\x63\x16\x7e\xda\x1c\xa2\x2e\x9b\x93\x8b\x65\x17\xfe\x14\xe2\x61\xec\xec\x5f\x0c\x92\x0f\xa2\xe6\x9d\x13\x5d\x4b\xd2\xc6\xde\xa5\x12\x94\xc8\x96\x75\xc1\xfc\xe0\xdd\xe9\xd8\x11\x42\x12\xab\xdd\xe9\xab\xce\x3e\xd1\xce\x04\xae\x25\x83\xcd\x5d\x49\x3e\x98\xb7\x2b\x91\x9d\x55\x24\xb0\x25\x60\xc8\x92\xab\x0a\xdc\x61\x64\x1c\xc6\xc7\xdd\x12\xbd\xb0\x51\x37\x54\xe3\xc9\xa4\xd2\x8b\x02\xf8\xe6\x01\xaf\x78\x94\x23\xb2\x96\x9a\x3e\x7d\x73\x7d\x6b\x6f\x52\x3b\x5d\x2e\xa1\xb7\xda\xba\x77\x3a\x5f\x72\xe4\xf8\xa5\x91\x42\xdc\x36\xad\x39\xfb\xe0\xdc\xff\x61\xc1\xb6\x01\xda\x79\x50\x46\xd0\xfe\x70\x48\x05\x54\x26\x8b\x2e\xcb\x19\x9b\x45\x5a\x4a\x48\x2a\x6c\x5c\xd4\x4c\x48\xf4\x3b\x8f\xf1\x82\xcf\x84\xb8\x2f\x8b\xa7\xb9\xd3\xdd\xc0\x05\xd5\x8b\x27\x63\x9d\xad\x31\x86\x5b\xbd\xfb\x9e\x4d\xb9\xea\x12\xdd\x11\xa8\x72\x80\xb6\x8a\x06\x8e\x5c\xe7\x28\x3b\x9c\x05\xb7\x8c\x3f\x97\x59\xa9\x34\xc8\x6f\x98\x54\xfa\xc5\xa1\x3d\x7d\xa4\x19\x73\x29\x83\x2d\x70\xe3\xa4\xd9\xdd\x5f\x98\x5e\xb8\x92\xb4\x27\xa3\xf6\x57\xe6\x6f\x47\xc6\x09\x11\x92\x9c\x5c\x0b\x0e\x07\x43\x66\xd6\xf4\xae\xea\xba\xaf\x2e\xb2\x9d\x92\x8a\x9b\x44\x05\x99\x4d\x25\x82\x5f\x74\x3e\x67\x77\xae\x4a\xb0\xa1\xc7\xdf\x8f\x0a\x34\xa1\x58\x5e\x11\xfb\x5e\xd4\xa5\x79\x6d\x65\x30\x5b\xd2\x58\x38\x4d\x6f\xd5\x58\xda\x03\x07\x6f\x94\x16\xd3\x62\xf7\x02\x74\x51\xe8\x0e\x3e\x67\x98\x27\x03\x5c\x15\x95\x1f\x18\xbf\x3f\xf0\x90\x87\x9d\x90\xb7\x1b\xa3\x37\x12\x93\x78\x8f\x33\xe3\x36\x55\x80\x11\x70\xe8\x54\x94\xda\x57\x76\x69\xfa\x9e\x19\xff\x2f\xbb\x2f\x10\xb6\x89\x69\x5f\x0e\x5d\x95\x2d\x66\x5f\x35\xb2\xe0\x0e\x6f\xd7\x55\x2b\xae\x29\x56\x95\x7e\x23\x92\x7b\x90\x24\x33\x34\x1f\xba\xf9\xea\xe8\xcd\x56\xfd\xe0\x83\x83\x39\xba\xe2\x10\xa0\x58\x40\x0e\x92\x66\x95\xd9\xef\x59\x17\xfd\x07\x77\x7b\x57\x64\x34\x43\x17\x6d\x6d\x40\x57\x12\x56\xa4\x13\xf2\x76\xdb\x53\x39\x5d\xf9\x12\xe7\x8c\xa3\xc7\xec\x13\x53\xfa\xf0\x1b\xa6\x10\x69\x33\x3b\x68\xa9\x40\x8e\xab\x6c\xb1\x2e\xeb\xa0\xaa\xa2\x48\x53\x98\x96\xf3\x39\xe3\xf3\x89\x15\x0f\x50\x0c\xa9\x4b\xa1\xd6\x16\xa0\x87\x05\x1c\x8a\x0b\x49\x24\x50\x6d\x33\x1b\x16\x22\xb5\x40\x01\xd6\xec\x3d\x17\xa9\xed\x7c\xba\xb2\x76\x47\xbf\x27\xab\xf4\x41\xe4\x8a\x13\x21\x5d\x45\x08\x9a\xa6\xe4\x60\x70\xca\x96\x15\xc1\xbe\xea\xf9\xb5\xc4\x95\xb5\x57\xfa\x44\xd5\xbf\x6a\x2c\x90\x2a\xa7\x46\xff\x28\xe5\xa1\x55\x9d\xbb\xca\x28\x9d\xe4\x93\x50\x59\xf4\x82\xd7\xdb\xf3\xb2\x19\x7f\x4f\x89\x86\xbc\x10\x92\xca\xd5\x7a\x90\x85\xb9\x49\xcc\xf6\x35\x0b\xb4\x36\xb7\x37\x22\x35\x42\xc2\xc1\x64\x6c\xd9\xb6\x4b\x66\x94\xad\x6d\x3b\x77\xeb\x79\xc2\xab\x8d\x0b\xe2\xd7\x8c\x74\xa0\x42\x25\x0b\x48\x4b\xcc\xb9\x34\x2f\xa9\xa4\x5c\x83\xe1\x9f\x0e\xb8\xb9\x6a\xc1\x17\xaa\xfc\x04\x55\xb2\xb2\x15\x46\x4b\x62\x19\x63\xf3\x09\x56\x50\xee\x02\xb2\x70\xc2\xb1\xe9\xa8\x91\x04\xe1\x6e\x01\xc4\x48\x92\x19\x68\x9c\x7c\x58\xb2\x44\xfb\x41\x66\xb8\x08\x5b\xb6\x7e\x42\x4b\x9b\xe0\xe0\x70\xd8\xcb\x8d\x70\x45\x44\x13\x30\x77\x92\x56\xf5\xd4\xba\x58\x3f\xd6\x09\x4d\x71\xe7\x4f\xf6\x36\x82\xeb\x83\xf9\xc8\x91\x44\x53\x40\x67\xa6\x89\x6f\xf7\x19\xc6\x5c\xad\xf1\x96\x95\x38\x70\xa8\x00\xb3\x43\x77\xa0\x7f\x27\x80\x7e\x88\x85\x83\xca\xf9\xd1\x42\x5f\x2e\xe4\xbc\xcc\x31\x54\xdc\xe9\xb6\xc0\xb5\x5c\x15\x82\x75\xf5\x56\x9b\xa3\x86\xce\xb5\x13\x45\x2e\xdf\xbd\x69\xa6\x39\x6b\x56\xa7\xf3\x49\xf0\xba\x0d\xf2\x31\xae\x5b\x9e\x5c\xcd\x08\xad\x84\xbe\x4e\x14\xd5\x17\xb5\xb3\xbb\x39\x87\x67\x45\xa0\xb7\x3b\x32\x5e\x18\x09\x16\xe5\xf4\x46\x45\x9b\x64\x41\xf9\xdc\xb0\xaa\x37\xa2\x34\x2f\xf6\x9b\xdf\xe0\x4b\x48\x48\xcb\xa4\x23\xa4\xd2\xdc\x2e\x3e\x17\xd0\x6f\x3c\xb8\xc9\x95\xce\x32\xba\x28\xa8\x84\x16\x7e\x6a\x9a\xb3\x67\xa5\xdc\xd7\x84\x4d\x60\x42\x5e\xfc\xa6\xf1\xd5\x0b\xa4\xb8\x13\x35\x85\x14\xe6\x55\x5c\xea\x21\x7c\xfb\x8c\x69\xe4\x1f\x2f\x9a\x23\x4c\xc8\x5b\x43\x17\x62\x85\xab\xb5\x6d\x64\x93\x99\xd6\x2b\x3b\x22\x12\xe6\x54\xa6\x19\x74\x4c\x9b\x21\x66\x95\x92\x61\xd3\x33\xba\x5d\x85\x8c\x11\xa3\xe9\xb9\xd0\x93\x38\x0e\xdf\x7d\xf3\xb8\x69\xaa\xee\xd5\xb9\x55\x67\xc6\x29\xd5\x74\x4c\x0b\x6b\x0f\x62\x82\x9f\x5b\x03\xef\xd8\x55\xe8\x1e\x53\x77\x7a\xc7\xd5\xce\x3e\xff\xb5\x4b\x3a\x3a\xa6\xd5\x53\x8c\x8f\xe9\x18\x6b\x56\x77\xb6\xdf\x1c\x21\xd8\x2c\x3a\x5c\x24\xa8\x10\x51\x40\xcd\xf9\x18\x6c\xfa\x6d\xc5\x95\xed\x52\x4c\xc8\xb5\xd0\xbe\xb4\x7c\x5a\x87\xd7\x05\x54\x26\x6f\x32\xee\xb7\xd7\x77\x1f\xfe\x7a\xf3\xfe\xea\xfa\x6e\xe0\xdf\x03\xff\xc6\x36\xf0\xef\x81\x7f\x77\x18\xb8\x2f\xfc\x1b\xf8\xf2\x58\xbc\xbb\xb2\x77\x6d\x33\x30\xae\xd5\x39\x0d\x0c\x8f\xfe\x8a\xc2\xcb\xdf\xf2\xe5\x47\x6a\x54\xc7\x42\x82\x42\x05\xc5\x68\xac\xdb\xa0\xb9\xee\x01\xb4\x04\xd6\x48\xc6\x2f\x36\xbe\xfc\x88\xd1\xe1\x11\xa3\x23\xaf\x1b\x95\x2b\xb6\xad\x5a\x5d\x2c\x87\x92\xcb\xbf\x5d\xbd\x79\x7b\x7d\x77\xf5\xcd\xd5\xdb\x0f\x47\x05\xce\x07\x96\xeb\x8c\x07\x99\x3f\x44\x3e\x0a\x18\xa6\x96\xac\x0a\x09\x4b\x26\x4a\x95\xad\xaa\xa2\xf0\xdb\xd9\xd5\x66\xa8\x7e\x60\x04\xd2\xaa\xaa\xd3\xbf\x75\xc0\x35\xd9\x6e\x9b\x9c\x16\x30\xfc\x91\x25\x3c\x47\x44\x0c\x39\x2f\x60\xfc\x2d\x12\xe2\xfe\xd2\x5e\xc0\xb8\x9d\xe4\xc4\x5d\x32\x5f\x00\x1d\x6d\x69\x31\xa0\xa3\x76\x88\xc6\xf1\x39\xd9\x37\x52\xe4\x91\xb8\xd9\xad\xb5\x1b\x7b\x08\xc3\xb6\xa3\x7a\xe2\xea\x6f\xb4\xe4\x6d\xa7\x39\xd6\x85\x39\x8c\xd6\x9a\x17\xba\x63\x50\x01\x89\x55\x98\x3c\x4e\x0d\x6f\x0b\xc9\x7e\x47\x8b\xef\x61\xf5\x01\x02\x4b\x10\xb5\xe7\x1b\x61\x0e\x8a\x50\x72\x0f\x2b\x8b\xdc\xbb\xf4\x83\x85\x55\x61\xea\x61\x5d\xf7\x7b\x08\xa9\xb9\x1f\xb3\x20\xfb\x3d\x04\xc4\xe1\xfb\xb6\x51\xad\xdb\x2c\x21\x8a\xf9\x66\x4d\x7b\x55\x9f\xbc\xaf\x05\xe8\x9b\xd2\xa3\xbb\x1e\x22\x4c\xdc\x7a\x2e\x16\x98\xcd\x20\xd1\x3e\xbe\xdb\xee\xe6\x11\x86\x00\xa6\xa5\x2d\x22\x49\x93\xfb\x07\x2a\x53\x45\x12\x91\x17\x54\xb3\x29\xcb\x98\x5e\x85\x05\x7f\xfb\x86\x37\x7c\x95\xbd\xda\x32\x45\x72\xc5\x95\xa6\x78\x15\x0a\x67\x6f\x33\xab\x5d\xa7\x90\xc5\x4c\xb3\x96\x9b\x62\x98\x09\x95\xe1\x95\xdf\x0d\x29\xb9\x50\x9a\x24\x20\x8d\x50\x97\xad\xc8\x83\x14\xbc\x63\x62\xe7\x76\x3b\xb0\x76\x89\x58\x1a\x59\x10\x1e\xce\x5d\x10\xda\xd8\xbc\xf8\xd8\x32\x2b\x75\x8e\x21\x0e\xe7\xbf\xc6\xff\xf4\xe9\x14\x11\x1f\xc2\xf6\x9a\xbc\x78\x11\xd8\x97\xf0\xd8\xa0\xb8\xa7\xf2\xd6\x61\xd6\x9a\xa2\x53\x75\xa1\x10\x9b\x6e\x16\xf9\x94\x0f\xb2\x77\x5a\x40\xa4\x69\x0e\xcb\x95\x62\x5b\xcb\x20\x94\xd3\x22\xcc\x1e\x54\x37\x64\x07\x71\x6f\xef\x60\x1e\x58\x5f\xff\x96\x59\x55\x25\x20\xd3\xd7\x3e\x79\x84\x22\x39\x68\x9a\x52\x4d\x27\xe6\x40\x8c\xda\x7f\xaa\x82\x26\x30\x22\x7f\xaf\x3e\xcc\xe8\x14\x32\xf5\xe3\xc9\xbf\x7f\xff\xf6\xaf\xff\x71\xf2\xd3\xdf\x9b\xdf\xa1\xb8\x86\xf6\xc9\xe6\x03\x81\xaf\x80\x90\x24\x2e\x52\xb8\x46\xea\xf0\x4f\xa7\xe9\x5d\x24\x89\x28\xb9\x76\x5f\x60\xe6\xf0\xc9\x42\x28\x7d\x75\x53\xfd\x59\x88\x74\xfd\xaf\x80\xfa\x70\xa4\x9f\x72\x0f\xae\x6d\x40\x26\x41\xdb\xe2\x49\x3f\xb4\x60\x1f\x41\xaa\xa0\xe4\x73\xbe\xb5\x53\x45\xda\x5e\xfd\x36\xc6\x82\xff\x14\xff\xf9\x8d\x9f\x02\x73\x1f\x57\xb5\x1d\x38\xa6\x68\x37\x77\x60\xbb\x60\xec\x8b\xe5\xab\x20\x8d\xd3\xb6\x88\x9c\xbf\x5a\xc1\xc8\x13\x86\x33\xe2\x66\xcb\x72\x80\x4a\x7e\xf4\x56\x8a\x1a\x6d\x78\x71\x73\x45\x96\x76\x86\x7b\x34\x39\x4f\xc5\xae\x3d\x86\xe9\x9b\x5e\xb3\xed\x26\xd2\xaa\x65\x2f\x7b\x4d\x30\x89\x90\xff\xde\x25\xf2\x57\x55\xf1\x42\x50\x3a\x54\xb6\x39\xb5\x5d\x4e\x92\xa2\x1c\xb9\xee\x27\x39\xe4\x42\xae\xaa\x3f\x2b\x7c\xd8\x58\x69\x21\xe9\x1c\xd3\xb0\xd9\xc1\xed\xcf\xaa\xbf\xec\x0f\x5b\xe4\x6d\xfe\xda\x1a\x24\x93\x52\x1a\x39\x3d\x5b\xd5\xf9\x8d\xbe\x3a\x96\xed\xd7\xad\x27\x1c\xbb\xda\x56\xd7\xf1\x15\xb9\x93\x1a\xd1\x8a\x6a\x62\x35\x8b\x68\x05\x72\xe9\x92\x47\x95\xc0\x6a\x4d\x95\x7c\x49\x96\x54\xaa\x90\x72\xde\xb6\x45\x64\xd2\x29\x5b\x32\x25\x02\x52\xe1\x54\x1d\x6d\x4a\xd4\x3e\x9f\x80\x2b\xcc\x61\x03\x15\x2a\xbf\xc7\xa7\x02\x8b\x74\x55\x87\x7d\xed\x36\x7b\x15\xaa\x2c\x10\x52\x50\xad\x41\xf2\xd7\xe4\x7f\x9d\xfe\xe7\x6f\x7f\x1e\x9f\xfd\xe9\xf4\xf4\xc7\x97\xe3\x7f\xfb\xe9\xb7\xa7\xff\x39\xc1\x7f\xfc\xf3\xd9\x9f\xce\x7e\xf6\x7f\xfc\xf6\xec\xec\xf4\xf4\xc7\xef\xdf\x7d\x7b\x77\xf3\xf6\x27\x76\xf6\xf3\x8f\xbc\xcc\xef\xed\x5f\x3f\x9f\xfe\x08\x6f\x7f\xda\xb3\x93\xb3\xb3\x3f\xfd\x26\x98\xf4\x08\x55\xbb\x6d\x8b\x59\xbb\xbb\xdd\x63\x24\xed\xf0\x49\xea\x78\xd7\xcd\x6f\xaf\xd8\xe7\xdf\xc7\xca\xbe\xae\x6f\xb3\x4a\x0a\xe9\xd1\x01\x7f\x2a\x41\x43\x41\x22\x41\x3f\x87\x65\xd7\x8e\xd4\x28\x33\x70\xa2\x48\xa5\xc4\x7d\x6d\x37\xe8\x2f\xc1\xd8\xeb\xf5\x1c\xbb\xae\xb5\xe8\x3e\x93\x22\x77\x59\xcb\xad\xe7\x7b\x89\xd1\x98\xee\xb9\x7b\x08\xf0\x8a\xf8\x36\x18\x87\x3b\xb7\xc1\x38\xbc\x83\x94\xc1\x38\x1c\xd4\xbe\x48\xe3\xf0\xad\xe5\x49\xbf\x48\xcb\x70\xfc\x4c\x83\x1d\x31\x5d\x31\x93\x0c\x02\x5f\x76\xc5\x03\xc4\x04\x41\x7a\xb3\x47\xb3\x94\xe4\x7e\x48\xa3\xee\xa8\x76\xb3\x72\x15\xac\xa9\x86\xca\x5b\x91\x36\xdf\x0e\x43\x23\x17\x59\x46\x18\xb7\x17\xb4\xe9\xa0\xd3\xe8\x75\xca\x0e\x97\xef\xd9\xe5\xf7\x5d\x9a\x57\xf5\xa1\x8f\xed\xd2\xcd\x18\x29\x87\x91\x9a\x7f\xb1\x81\x90\xf7\x36\x36\x52\x69\x9c\x12\x5f\x90\xbb\x13\x39\x95\x1a\x6a\x91\x33\xe6\xa2\xa0\x4a\x89\xc4\xc6\x8d\x56\xa9\x16\xb0\x92\xa6\x9b\x1e\x7c\x03\x4d\xef\x11\x22\x96\x40\x0a\xfc\xd0\x88\x5e\xdf\x3e\xda\x9c\x13\x7e\x1d\xa6\x2b\x2c\x08\xcd\x97\xee\xfe\x22\xa9\x4f\x7b\x82\x6f\x1c\x6f\xdc\xaf\x0b\x13\x6b\xce\xb0\x03\xe3\x34\xa0\xb1\x28\x6d\xd6\xa1\x9d\x88\x28\x16\xb3\xda\xc3\xd7\x6d\xf7\x06\x6b\x0f\xe1\xb2\x7a\x85\xb0\x09\x52\xc2\x36\x84\xf4\xda\xf5\xd9\x16\xce\xbf\x06\x50\x52\xb8\xd8\x1e\x57\x64\x7f\x0a\x71\xbd\x2f\xa2\x7a\x4f\xc4\xf4\xa7\x11\xd1\xfb\x29\x9e\x47\x13\xcd\xe3\x88\xe5\x71\x44\xf2\x03\xb0\x1a\x31\xc5\xf0\x38\x22\xf8\x53\x18\xe0\x0a\x09\x33\xf6\x29\x12\xc7\xbf\xe0\xb5\x97\x82\xa5\xc0\x35\x9b\x31\x9b\xd9\xa4\x90\x50\x00\xb7\xa9\x1a\x68\xb2\x40\xc9\xc3\xc9\x9d\x35\xdc\xb2\x8f\x91\x0a\xd6\x64\x14\xf7\x52\xbc\xdd\x66\xae\x1a\x6e\x44\x32\xdc\x88\x07\xb4\xe1\x46\x1c\x6e\xc4\x67\xb9\x11\x1d\xb7\xfa\xfa\xaf\xc3\xc8\x81\xb0\x18\xe2\x7f\xf4\x3a\x13\x96\x0c\xe4\xcc\x4f\x19\x8c\x5d\x1d\xc5\x3a\x45\xd1\x39\x8e\xdc\xe5\xc4\x05\x9d\x33\x1c\xf5\xa6\xcc\xb2\x2e\x69\x48\x6d\x8b\xb1\x00\x57\x38\xed\x45\x99\x65\x2e\x75\x65\xb7\xd9\x7f\xcf\xf1\x02\xbb\xc8\x1e\xe8\x4a\x8d\xc8\x35\x2c\x41\x8e\xc8\xd5\xec\x5a\xe8\x1b\x6b\x93\xe8\xd6\x6f\x33\x82\xca\x76\x4e\xd8\x8c\xbc\xce\xa8\x06\xa5\x89\xa6\x73\xb4\x90\xd5\x25\x45\x84\x6c\x0d\x5a\x17\x4d\x3b\xa2\xa9\x28\x7c\x6f\xfe\xda\xe7\xf7\x1b\x1f\x67\xaf\x66\x6c\x06\xc9\x2a\xc9\xc2\xd9\xc4\x0f\xbe\x27\x1f\xfb\xe5\xc5\x03\x04\x0b\x6d\x49\x20\xf6\x05\xe6\x26\x2f\x84\xd2\xb7\x9a\x4a\x1d\x25\x41\x79\x80\x70\x79\xe3\x09\x31\x93\x9d\xd0\x2c\x83\x94\xb0\x3c\x87\x94\x51\x6d\x04\x41\x3a\xd3\x20\x9b\x25\xd8\xf1\x39\x5b\x78\x6e\x62\xeb\xd4\xf9\x1a\x9e\x92\xcc\x28\xcb\x54\x77\x0c\xf8\x86\x59\xdb\xd6\x8d\xa6\xae\x66\x61\x23\x01\x20\x4d\x12\x21\x53\x0c\x6f\x15\x3e\x51\x1e\xbe\x44\x08\x7f\x32\xed\x3d\x8a\x0a\x39\xe5\x74\x0e\xb9\x2b\xa5\xd7\x26\x6b\x9a\x89\xe4\x5e\x91\x92\x6b\x96\xb9\x82\xd5\xe2\x1e\x05\xe2\x0c\x4f\x6a\xe7\xa1\xbb\x33\x80\xea\x9f\xe3\xea\x10\x8e\x0d\x55\xea\xfc\xd7\xf5\x57\xf8\x41\x47\xe2\x22\xa8\x65\x31\x94\x32\xf8\x04\x49\x88\x80\xd8\x36\x8b\x7f\x82\xa4\x51\xa9\xd6\xac\xa4\x4d\xdd\x8a\x39\xed\xe8\x7d\x50\x74\x74\x24\x08\x4d\x2c\xd8\x4a\x40\x1e\xaa\x66\x8b\x8d\xca\xb8\xb4\x64\xe1\x49\xc7\x33\x66\xff\xcc\x18\x07\x9b\x07\x13\x13\x55\x11\xc6\x95\x2d\xca\x01\xcd\xac\x95\xe6\xcf\x8d\xaa\x63\x3e\xd6\x38\x98\x34\x4f\x8b\xa1\x4d\x0a\xa1\xc9\xe9\xc9\xf9\xc9\xd9\x86\x7b\xf1\xc4\xa8\xcf\x19\xa8\x95\xd2\x90\xdb\x8c\xa1\x49\xfd\x52\x8a\xe5\x05\x56\xc1\x83\xe4\xc4\x17\xed\x0c\xa6\xcc\x5c\x88\x36\x85\x31\xce\x8a\xcb\xde\x35\x22\x4a\x10\x2d\x69\xca\x9c\xc9\x0a\x3f\x35\x0f\x69\x59\xba\x8c\xc4\xa7\x27\x3f\x9f\x8c\x08\xe8\xe4\x8c\x3c\x08\x7e\xa2\x71\xfa\x26\xe4\x4e\x90\x52\x85\xcf\x58\x45\xc8\x4a\x94\x84\x03\xb8\x54\xa6\x55\xd2\x72\x73\xb7\x10\x51\x6a\x9b\x32\x92\xea\x90\xac\x63\xcd\xf6\xf6\x13\xd3\x2e\xe4\xc7\x30\xeb\x97\x6b\x85\x51\x33\xb6\x84\xf3\x05\xd0\x4c\x2f\x2c\x20\x9d\x0b\x3e\xfe\x07\x48\x81\x39\xca\xb8\xfb\x26\x94\x8c\x30\x4f\x5f\xb3\x05\x78\xfd\x36\x09\x8a\x82\x45\x89\xac\x4a\xfa\x66\xee\xb8\x6f\xa1\xb3\xfc\x43\xd6\xf9\xd1\x77\x77\x77\x37\xdf\x82\x5e\x63\xe9\x66\x14\x1f\x83\xd0\x48\xda\xdd\x03\xde\x1e\x07\x1c\x39\x26\x85\x90\x7d\xb8\x62\x16\x42\x05\xad\x25\x79\x82\xfb\xe5\x3b\xa1\xb4\xad\xd9\xa6\x85\xe1\xd9\x1c\x12\xb3\x09\xda\x80\x7a\x9f\x0d\xfd\xea\x66\x42\xfe\x2a\x4a\x33\x21\x53\x3a\xcd\x56\xe4\x81\x72\x67\xd7\x0e\x43\xc1\x9a\xf6\xc2\x90\xf2\xc2\x5c\x1f\x66\x43\x7e\x07\x34\x05\xa9\x90\x3b\x03\x0d\x8c\x77\x89\x78\xd6\x1b\xb4\x45\x5d\xca\xcb\x52\x69\x91\x93\x85\x7b\xed\x76\xf2\x32\x77\x38\x27\x78\x80\x7d\x06\x1b\x09\x85\xe5\xe0\xee\x37\x5f\x1d\x7f\xde\x60\x5d\x76\xde\xdd\xe7\x53\x50\x46\xe5\x6a\x4e\x9b\xb3\x8d\xdb\xdc\x28\xdc\x4e\x96\xd9\xaa\xd1\x70\x8b\x11\xf0\xde\x24\x22\xe6\x9b\x84\xa5\x35\x5b\xef\x08\xfd\x04\xc1\x3d\xc5\x83\x91\x93\x68\x50\x69\xf2\x24\x70\x69\xe2\x50\x70\x6e\xf3\x59\x1f\x51\x77\xc3\xeb\xb6\xce\x1b\xa5\xb2\x12\xca\x05\x67\x09\xcd\xd8\x3f\x20\x25\x65\x21\xb8\x8b\x8d\x42\xb1\x36\xa1\x0a\xc6\x08\xf1\xe3\x96\x9d\xab\x46\x82\x2d\xc3\x1d\xb4\x10\x28\xeb\x21\xa0\xc9\xb0\x7b\x4b\x75\x1c\x52\xa3\xa2\x7a\x83\xb3\xc5\x35\xdb\x86\x2f\xb6\xb5\x58\x71\x76\x3c\xf9\x22\x64\x49\x62\x83\xda\x82\x03\xaa\x37\xc3\xa9\xb5\x20\x34\x49\x30\x85\x98\xbd\xae\x90\xf1\xda\x92\xa9\xbd\xb9\xb7\x8d\x08\xd8\x37\xd9\xcb\xba\xab\x25\xe1\x65\x3e\x05\x59\xe7\xa2\x90\x7a\x73\x4e\x03\xd1\xba\xad\x61\xed\x70\xde\xc1\xe7\x65\x0c\xca\xe7\x40\x5e\x99\x91\xff\xf8\x87\x3f\xfc\xfe\x0f\x11\xc6\x31\xaf\x57\xa1\x80\x39\xb9\xba\xb8\xbe\xf8\xdb\xed\xc7\x4b\xcc\x70\x17\xda\x7d\xa4\x20\xc7\xd8\x21\x8e\x51\x03\x1c\x9f\x34\xbc\x11\x73\x45\x04\x73\xd9\xd8\x47\xe2\x16\xa9\x32\x9b\xb0\x54\x36\x2b\x9e\xd3\x49\x9c\x1d\xdb\x1a\x93\x55\x84\xb0\xa4\xa6\x47\xcc\x30\xac\x5e\x70\x2a\x95\x01\x14\xd1\xd4\xfd\x5b\xd3\xdb\x3a\x9a\x39\xf5\x85\xce\xd1\xc0\xd4\xb6\xdb\xbb\xaa\x6f\x48\x05\x99\xc2\x4c\x48\x20\x53\xc0\xa9\xaf\xbc\x0c\x5f\x91\x59\x40\x41\x22\x78\x1a\xa2\x1c\xc4\x12\x76\x1d\x25\x51\x4f\xe3\xad\xed\xd3\x5b\x8e\xeb\x4b\xc6\x0d\x86\x3a\xa6\x59\xe9\x38\x3b\x3f\x0e\x07\xb5\x71\xfe\xd8\xdb\x1f\xff\xa5\xbb\x93\x2c\x29\x6e\x45\x72\x1f\xd1\x72\x16\xc8\xda\xde\x98\x33\x98\x58\x7f\xe0\xdd\xe5\x8d\x25\xce\xac\xcc\xf5\xfb\xbb\x3a\xa9\x07\x06\xb1\xd4\xae\xdd\xef\x9c\xc7\x90\xf2\x94\xdc\x43\x11\xa6\x77\xfa\x04\xa3\x1e\x9f\xd6\x86\xa7\xa1\x59\xde\xe2\xc3\x08\x17\x36\x7a\xd6\x72\x09\x8f\x2b\xb3\x02\x73\x58\x4e\xe2\x86\x03\x1c\x3d\x82\x4e\x47\x99\x51\x96\x19\x29\x44\x96\x5c\xb3\x1c\x5c\xf8\x4e\x52\x54\x2e\xd3\x26\x34\xe1\x2b\x62\x3f\x5f\xab\x55\xf2\xa4\x2e\xc3\x79\xa8\x75\x31\x34\xfb\xc1\xd7\xad\x2e\x38\x0e\x6e\xd3\xc6\x0c\xea\xc2\x21\x6d\x50\x17\x3a\xaa\x0b\x85\x84\x5b\x2d\x3a\xcb\xa4\xd1\x20\x38\x96\x8c\x1d\x00\x1c\x27\xaa\xd2\x9d\xc8\x18\x07\xce\x0e\x00\x9f\x5e\xdc\x5c\x55\x3e\x32\xd1\x42\xbf\xd8\x98\x53\x5f\x10\x34\x63\x4b\xe0\xa0\xd4\x39\x62\x6d\xca\xc2\x1a\xa0\xf1\x8e\x2b\x25\x74\xc7\xfd\x14\x12\x20\xc7\x79\x1c\xd5\x59\x63\xcc\xeb\x02\xb7\x1f\x82\x4e\xac\x73\xbd\x71\x6b\x72\xa1\xab\xe9\x9a\x05\xf9\xfc\x1b\xb5\x3b\x25\x55\x0b\xc0\xac\xee\xf0\x89\x69\x65\x07\xbd\xc1\xdc\x2a\x7e\xc6\x8d\xe0\x30\x97\x34\x01\x52\x80\x64\xc2\x08\x1b\x25\xd7\xa9\x78\xe0\x64\x0a\x73\xc6\x95\x5f\xb1\x10\x92\xfc\x96\x40\x6c\x11\x53\x55\xcd\xae\x09\xf9\xd0\x4a\x6a\xef\xb2\x48\x25\xa2\xe6\x99\x6e\x8a\x46\x91\xa6\x04\xa5\x18\xdc\x06\x25\xcd\xb2\x55\xbd\xf1\x7c\x4c\xb4\xde\x3d\x43\xdd\x37\x84\x9d\xd9\xd3\x92\xe3\x8b\xa6\x90\xd1\x95\x8d\xfe\x9d\x31\x8e\x56\x62\xa9\xce\x26\xe1\x60\xad\xce\x04\x0a\xd9\xe8\x73\xe7\xce\x60\x8a\x48\xa0\xc9\x22\x44\xb2\x1b\x50\x61\x8f\xb5\x01\x15\xd6\xb1\x0d\xa8\xb0\x43\xdb\x80\x0a\x3b\xb4\x0d\xa8\xb0\x3e\xa1\x0e\xfa\xef\xc9\x1b\x50\x61\x83\xfd\x65\xad\x0d\xa8\xb0\x4e\x6d\x40\x85\x3d\xda\x7a\xc7\x9f\x07\x54\xd8\x1e\x6d\x40\x85\xed\xd9\x06\x54\xd8\x80\x0a\x1b\x50\x61\x03\x2a\x2c\xa0\x0d\xa8\xb0\xc3\x5f\x6f\x70\xf3\x74\x6f\x03\x2a\x6c\x40\x85\x1d\xd8\x06\x54\xd8\xde\x6d\x40\x85\x0d\xa8\xb0\xcf\xb5\x01\x15\x36\xa0\xc2\xb6\xb6\xc1\x2a\xb9\xd1\x06\x54\xd8\x96\x36\xa0\xc2\x0e\x1b\x67\x50\x17\xc2\x3a\x8b\xae\x2e\x78\x84\xd3\x8d\x14\xd3\xf0\x44\x56\xd8\x8b\x72\x57\xcc\x57\x99\xc6\x2a\x04\x7b\xf1\x3c\xb8\x8b\x9e\x80\x54\x22\x60\x2d\x62\x32\xd7\x9e\x62\x2c\xfa\x89\xaf\xe8\x23\xb6\xe2\x18\xb8\x8a\xa3\x63\x2a\xe2\xf8\xeb\x22\xf8\xea\x22\x5d\x61\x4f\x60\xf7\x76\x58\xdc\xbb\x85\x04\xb5\x10\x59\x67\x86\x13\x8b\xd9\xbc\x63\xfc\xff\x67\xef\xef\x97\x1b\xc9\x8d\x74\x71\xf8\xff\x73\x15\x88\xb6\xe3\x48\x5a\x93\x52\xb7\xbd\x76\x78\xe7\x75\xac\x43\xab\xd6\xf4\x28\xdc\xad\xe6\xdb\xd2\x8c\x8f\x63\x66\x76\x0e\x58\x05\x92\x38\xaa\x02\xca\x00\x4a\x12\x37\xe6\xe2\x7f\x81\x4c\x00\x85\x22\xd9\x1f\x04\xaa\x45\x76\x9b\xb5\x11\xde\x69\x92\x2a\x24\xbe\x12\x89\xcc\x27\x9f\xe4\x75\x5b\xdb\xbd\xab\xad\x4e\xe1\xf7\x01\x2f\xac\xc3\x0d\x0d\x61\xc4\x18\xca\xb4\x3f\xe4\x25\x83\x8a\xb1\x94\x57\x76\x69\x01\x03\xe1\x82\xde\x5b\x7d\xa3\xdb\xa2\x60\xac\xcc\xb9\x15\xc5\x6e\xb0\x3f\x9c\x06\x09\x91\x49\x9a\x6b\xf2\x22\xef\xa8\xc9\x33\x94\x22\x6f\xc0\x1f\x7e\x9f\xf4\x8e\xb9\x6a\x86\x39\x92\x5f\xbd\x9b\x5c\x44\x47\x32\x15\xfe\x44\xe6\xe2\x5e\x56\x30\x1b\x14\x7f\x64\x0d\xf2\x1d\x9e\xcf\xf9\xb7\xd3\xac\x9b\xe9\x10\xe6\x41\xee\xe5\xab\x6f\x76\xda\xfb\x51\x3f\xc2\x32\x87\xb9\x64\xea\x9e\x17\xec\xf4\x09\xee\x37\x43\xdd\x19\xf2\xb7\x03\x01\x5f\x23\x74\x7c\x5f\x8c\xaf\x1b\x14\x27\xb8\x29\xa3\xab\xad\x93\x14\x30\x69\x15\x2d\xc2\xdc\xc0\xfc\x7d\x07\x27\xe8\xc5\x82\x15\x77\xef\x10\x1e\x93\x25\xc6\xb1\x66\x2c\x60\xca\xe7\xdc\x2c\xda\xe9\x69\x21\xeb\x33\xab\x40\xf0\x7f\xa6\x95\x9c\x9e\xd5\x54\x1b\xa6\xce\x4a\x59\xb8\xc3\x7d\x5c\x58\x09\xb8\x98\x9f\xd6\xe5\xc9\xe9\xff\xca\x92\xe1\xca\xf9\xda\x5c\x3e\x47\x44\xd2\x0c\x8e\x7b\xd4\xd4\x64\xca\xac\xf6\x97\xe0\x16\x8b\x2a\x81\xd9\x41\xc9\x5f\xa4\xd9\xa7\x78\x2e\x01\x7e\x26\xe4\xf1\xe9\xe1\x8e\x07\x95\x4d\x06\x70\x22\x0e\xa9\x51\xf6\x03\xd2\xf8\xd9\xe0\x8c\x83\x6c\xd4\x81\x60\x8c\x7b\x04\x61\xdc\x9b\xeb\xd0\xbe\xc0\x16\xf7\xb0\x70\xf9\x00\x50\xc5\x21\x60\x8a\xc3\x41\x14\xf7\xb5\xbe\xf7\x67\x83\x25\x7e\x11\x90\xc4\x01\x7d\xea\x03\x41\x11\x9f\x02\x86\xb8\xbf\x6e\x18\x32\x00\xf4\xf0\xe9\x60\x87\x83\x8c\xe3\xa0\x57\xd8\x4c\x95\xb0\x03\x98\xe1\x53\xc4\x0c\x3f\x5b\xbc\x70\x80\x58\xe1\x90\x71\xc2\xc1\x62\x84\x9f\x0d\x4e\x98\x0f\x25\x1c\xd4\xa1\xf0\x24\x10\xc2\x21\xe1\x83\xd9\xf3\xcb\x05\x37\x9c\x56\x2f\x59\x45\x97\x37\x79\x50\xb2\xa1\x66\xe2\x7a\x0d\x6e\x86\x9e\xeb\x3e\xe0\x70\x41\x5d\xb5\x76\x56\x7a\xbc\xa1\x0f\x3a\x3b\x13\x18\xe2\xc5\xd8\xbf\x2c\xf0\xe1\x96\xcc\x01\x0f\x52\xdd\x55\x92\x96\xfa\xac\x91\xf8\x3f\x1d\x6f\x40\x44\x18\x90\x65\xa6\xef\x87\x87\x1c\xd9\x19\xf6\x64\xd5\x7c\x27\x1f\x88\x9c\x19\x26\xc8\x31\x17\x7e\xe5\x9c\x44\x5e\x9a\x2e\x42\x92\x1d\xf2\xb0\x6f\x7d\xf1\xdc\x37\xf2\xf5\x85\x3e\x20\x38\xa4\xf5\x5e\x07\xbf\x9c\x8c\x1f\x8f\x7e\xb9\x1f\xce\xda\xaa\x1f\x01\xc3\xa8\xd8\x30\xe1\xaf\x17\x5d\x99\xe2\x17\x20\x4f\x50\x45\x54\x94\xc4\xb1\xfc\x7c\x7d\xeb\x24\x1b\x2c\xdb\xbf\xdc\x04\x74\xeb\xc7\x82\x65\xb7\x17\x93\x43\xac\x6c\xbf\x1c\xaf\x3b\x42\x6e\x7e\x7d\x37\xae\xa7\x47\x6a\x1e\x6e\x5c\xff\x2a\x37\xae\x88\x60\xeb\x95\xa2\x05\x9b\xec\x93\x01\xe7\x15\x48\x97\x66\xd4\xd9\x71\x41\x5d\x08\xc6\x30\xfd\xa4\xa3\x4f\x03\xa6\xb0\x59\x5b\x55\x4b\xf4\x23\xf6\xb8\xf4\xd2\x97\xd6\xed\x82\xad\x91\x90\xf5\x92\xa0\x22\xe9\xba\xfb\x49\xa3\xa4\xb3\x4a\x54\x2b\x84\x3d\xad\xdc\x76\xb2\xc2\xdb\xfb\x88\x66\x22\xdd\xa5\x4e\x7b\x14\x69\x9a\xcf\xed\x70\x59\x0b\x03\xd8\xd3\xba\x04\x88\x9e\x20\xb6\xd5\x99\x54\x05\x9f\x56\x4b\xb2\xa0\x95\xbd\x30\x61\xed\x77\x72\xc7\xab\xca\xbd\x26\x7d\xa0\x6e\x98\xc1\xd8\x33\x5a\x35\x95\x14\x73\x18\x0c\x8a\x82\xb0\xc7\x86\x15\xb6\xcd\xa2\x62\x54\xb4\x0d\xca\x69\x6d\xa4\xa5\x6c\x95\x97\x33\xbd\x79\x1f\xf9\x0e\x36\x95\xe0\xd5\xc8\x0f\x79\x9f\x4c\x6f\x7d\xcd\x77\x6e\x65\xcd\x4a\xc7\x83\xf7\xc0\x35\x1b\xc1\x3b\x93\x65\x42\x59\xe4\x3d\x53\x8a\x97\x2e\x76\x8c\x9f\x35\x4a\xde\xf3\x12\xc3\xee\x7e\x59\x58\x6b\x27\xbd\xff\x3f\xc0\x7b\xbd\x6a\x15\x52\x8c\x05\x9b\x53\x30\x91\x9d\x42\x43\x60\x27\xb6\x8f\x30\x42\x51\xf2\x82\x1a\x66\x2f\xd0\xb2\xe9\x91\x64\xde\x73\x9a\x2c\x89\xed\x4f\xb4\xa2\xc8\xb1\x90\x44\x42\x7e\x52\x2b\xb8\x59\x42\x54\x6f\xd1\x1a\x52\xca\x07\x71\x92\xb3\x31\x11\xe7\x40\xc9\x94\x19\xda\x65\x17\x79\x93\x4c\x13\x26\xe8\xb4\xb2\x7b\x0f\x70\xe3\xb7\x1b\x17\x00\x99\x31\x6a\x5a\xc5\xc8\x9c\x9a\x0c\x2d\xb1\xc1\xa2\xc7\xf9\xfc\xf0\xb2\xe3\xda\xc5\xec\x66\xa4\x15\x9a\x65\x1a\xb2\x83\x5d\x03\x12\xf3\xe6\xec\x8e\x96\xad\xd9\x93\x73\xe4\x7d\xee\xa3\x87\x05\x2f\x16\xf1\x45\x91\xd7\x4c\x13\xd9\x66\x78\xf3\x7a\x57\x40\xd7\xdc\x90\xb7\xbc\x83\xef\x69\xe3\x93\x1a\x3a\x1d\x62\x85\x5d\x47\x56\xf9\x86\xdc\x93\x0e\x79\x85\x19\x99\x2f\xaf\x6f\x7e\x79\x7d\xfe\x5f\x97\xaf\xd3\x96\x00\xe8\x3a\x11\xdb\xce\xad\xe0\xff\x6c\x19\xa1\xb5\xb4\x37\xe1\x2a\x4e\x7b\x19\x81\xb3\x33\xfa\x00\xb4\xe2\xb0\x09\x32\x89\x76\xad\x3d\x04\x92\x14\xc3\x1a\x1e\xf3\x29\xb2\x80\x52\x91\x20\x19\x08\x90\x3e\x1a\xc6\xf7\x01\x00\xa8\x51\x12\x3e\x25\x82\x19\xbb\xc7\xf1\x42\xc8\x05\xa1\x44\x73\x31\xaf\xb2\xef\x82\xd9\x1e\x91\x5c\x7f\xc8\xb8\xeb\xc1\x24\xd5\x2d\x92\xef\x14\xe9\xc9\x90\x7e\xab\x1c\xce\x21\xd0\x1d\x66\xde\x05\xc0\x1e\x1b\xa9\x99\x77\x01\xa0\x8d\x7b\x35\x21\xb4\x2c\x55\x96\x1d\xed\x94\x4d\xb8\xa3\x63\x26\x37\x36\x8b\xe1\xdf\x11\x79\x4e\xfe\x42\x1e\xc9\x5f\xc0\x21\xf0\xa7\xf4\xa6\x86\xb9\x6e\x0f\x01\x69\x5e\x48\x6d\xae\x26\x03\x4d\xf4\xdf\x17\xd4\xc0\x1b\xed\x7c\x18\x49\xa6\xdc\xdd\xcc\xd8\xa3\x61\xca\x5a\xc4\x6e\x0e\x73\x47\x2e\xcb\xb9\x60\x05\xfc\x52\x56\x77\x6e\xac\xf5\x6a\xd6\x47\x42\x3f\xd1\xfa\x86\x86\xbf\x93\xda\x5c\x3b\x6d\x1d\xb3\x10\xc4\x72\xd4\xd4\x14\x8b\xbe\xba\xcf\x69\xf5\x8d\x5d\x7b\xd1\xf1\x5f\x4a\x38\x28\x31\xab\x6d\xc1\x33\x94\xc3\xfe\xec\xd8\x3c\xd8\xdc\x70\x4b\xf7\x43\x4b\x6b\xc5\xbd\x09\x66\x98\xb3\xdb\x22\xae\xff\x46\x96\xa7\xe4\x92\x16\x8b\x0c\x29\xec\x68\x94\x91\x31\xd0\xc8\x12\xc5\x58\xd0\x7b\xbb\xc6\x5d\xab\x00\xe1\x43\xd3\x35\x04\xcb\x60\xc3\x59\x8d\x55\x50\x41\xa6\x39\x18\x32\xc5\x66\x4c\x29\xcc\x9c\x9c\x2e\x7d\xea\x45\xf6\x6a\xcb\xd2\x72\x8d\x92\x46\x16\xb2\xda\x87\xa5\x32\x71\xb2\xc0\xd8\x43\xd8\x2a\x04\x0b\xbf\x7f\x39\x19\x91\xdb\x8b\xc9\x88\x48\x45\x6e\x2e\xf2\xb0\x20\xf1\x6d\xf4\xd9\xed\xc5\xe4\xd9\x4e\x67\x20\xca\xe7\xb8\xbd\x98\x24\xbc\x64\x1d\x4d\x58\xd3\x66\x7c\xc7\x96\x89\xd6\xdd\x10\x16\xe6\x38\x2c\xac\x41\x3a\x84\xc3\x5c\xd3\x66\xeb\xb7\x29\x46\x4b\x7e\x20\x58\xf8\xf4\xe7\x40\xb0\xf0\x89\xcf\x81\x60\xe1\x53\x9e\x03\xc1\xc2\xa7\x3e\x07\x82\x85\xe4\xe7\x40\xb0\xf0\x09\xcf\x81\x60\x61\xfb\x67\xf7\x2e\x7c\x72\x20\x58\x48\x7a\x76\x0e\x1a\x3b\x10\x2c\x6c\x7e\x0e\x04\x0b\x07\x82\x85\x03\xc1\xc2\x47\x9a\x3f\x10\x2c\x6c\xfb\xec\x1d\xce\xf7\x40\xb0\xf0\xa1\xe7\x40\xb0\xb0\xf1\xd9\x9b\xeb\xd0\x81\x60\xe1\x3d\xcf\x81\x60\xe1\x3d\xcf\x81\x60\xe1\x40\xb0\x70\x20\x58\xf8\xf0\x73\x20\x58\x48\x7e\x0e\x04\x0b\xdb\x3d\x87\x74\x9f\x2d\x9f\x03\xc1\xc2\x81\x60\x61\xf5\x39\x10\x2c\x7c\xf4\xd9\x0f\x0f\xf9\x81\x60\xe1\x40\xb0\xf0\xc1\xe7\x40\xb0\x70\x20\x58\xf8\xe0\x73\x20\x58\xf8\x5a\x1c\xaf\x07\x82\x85\x03\xc1\xc2\x87\xda\x38\xdc\xb8\xb6\x7b\x0e\x04\x0b\x07\x82\x85\xb5\xe7\x40\xb0\xb0\xfe\x1c\x08\x16\x0e\x04\x0b\x07\x82\x85\x03\xc1\x42\x78\x0e\x04\x0b\x5f\xbb\xef\x49\x31\xcd\xff\x87\x4d\x64\xc5\x8b\x65\x76\x6e\xc9\x3b\xa6\x65\xab\x0a\x7b\x62\xc3\x6b\x49\x03\xef\x0d\x5e\x85\x2c\x23\x7b\xcf\x12\xf6\xdf\x45\x03\x17\x27\xee\x2b\x37\x06\x9f\x63\x08\xf6\x22\x79\xdf\x77\xf0\x3a\x1d\x45\x00\x2f\x31\x54\x19\x1c\xbe\x34\x87\x69\xf6\xad\x3d\xee\xc8\x3e\x24\x0f\xc6\x7c\x23\x61\x15\x19\x19\x94\x2d\x7f\xef\xe2\xa2\x4d\x53\xf1\x9c\x34\x4c\x42\x6e\x42\x79\x79\x50\xb5\xfa\x1b\x52\x34\xed\x88\xd4\xac\x96\x2a\x23\x3f\x62\x80\x1b\x5c\x6f\xa9\xec\xc3\x3c\xbd\x43\x81\xfc\xe0\x1b\x09\xe3\xbf\xc4\xfb\x42\x47\x0a\x13\xe6\x8a\x7b\x75\x98\x85\x37\xbb\x9a\xad\xa2\x51\xb9\xe9\x79\x81\xae\xa5\x79\xe7\x36\xf7\xce\xe6\x6b\x60\xd4\x82\x1f\xc2\x7c\x3e\x99\xc4\x09\xef\x0e\xb4\x4f\xce\x97\x24\x97\x1b\x3e\x85\x18\xa8\x6e\xec\x4b\x42\x9f\x92\x04\xa2\x95\x62\xb4\x5c\x82\x18\x05\x60\xf6\x3a\xff\xdf\x17\x98\xaa\x59\x54\x94\xa7\x03\xfd\x86\xda\xd2\x17\x20\x05\xb1\xeb\xb5\x43\xbf\x43\x3a\x59\x98\xac\x51\xc0\x78\x73\xdc\xe3\xa7\xfe\x2b\xfc\xe3\x51\xc6\x4d\x8f\x1a\x58\x5d\x70\x89\x81\xab\x2c\xd7\xb1\x99\x90\x7f\xb9\x13\x84\x56\xcd\xe2\xc3\xd7\xbb\x9c\x2c\xc9\x97\x4b\x41\x6b\x5e\xf8\xcd\x72\x8e\x6b\x93\x4b\xb1\x72\x31\xcc\xeb\x09\x4a\x6f\xbb\x54\xd7\xad\xa1\xd3\x8a\x9d\x92\x2b\xe4\x34\x90\xa2\x5a\xda\x1b\xbb\x66\xc6\x23\x0d\x32\xd2\x97\xc9\x20\x30\xd6\x4c\x08\xeb\x46\xbb\x1a\xd6\x1a\x92\x30\x30\x61\xb5\x92\x14\x8c\x30\x61\xd4\xd2\x2e\xcb\x89\x2c\x6f\xec\xca\xec\xfd\x3a\x9b\x9b\x21\x13\xb9\x3a\x04\x6a\x35\x13\xb1\x3a\x0c\xce\x34\x1f\x63\x3a\x2c\xbe\xb4\x8b\x02\x20\xb5\x4c\x9c\xb5\xd3\x5b\x16\xf6\x64\xd8\xa0\xb1\x88\x9c\x65\x4a\x60\x5b\x9c\xc8\xd2\xda\x3d\x8a\xa1\xda\x0a\x7b\x14\x7d\x80\x57\x56\xb8\x3b\x70\xda\x51\xd3\x19\x44\xf4\x9e\xf2\xca\x6e\xe0\x4c\x01\x42\xee\xf3\x40\xc1\x9b\x81\xc2\x0d\x0e\x63\xbf\x4f\x8b\xc5\xa5\x66\xf5\xb2\xbb\x8a\x85\xd4\x4c\x80\xbe\xa4\x21\x11\x27\xa4\x09\x38\x15\x53\xe2\x11\x9d\x0b\x06\xbe\x9a\x11\x56\x37\x66\x39\x22\xec\x9e\xa9\xa5\x59\x00\x68\x40\x49\x04\x92\x40\x13\x56\xb6\x9a\x96\xd1\xea\x18\x11\xe9\x7d\xc8\x99\xcd\xc3\xf9\xe0\xae\x55\x6d\x65\xf0\x92\x05\x66\x39\x66\x43\xec\x7a\xd5\x0c\xcd\x7f\x42\x72\x95\xe6\x90\xfc\x25\xf6\xa9\x78\xcd\xd3\x58\x21\xc9\x80\x7b\xe1\x35\x48\x11\x65\x80\xd8\x25\x51\xd3\x47\xf0\x30\xd2\x5a\xb6\x02\x96\x46\x21\xeb\xa6\x35\x91\xa5\xee\x8d\xfe\x27\x73\x3d\x16\x52\xcc\xf8\xdc\x05\xc7\xce\x6a\x2a\xe8\x9c\x8d\x83\x38\xe3\xce\xbc\x39\xdb\x1d\x68\x83\x96\x9e\x64\x62\x32\x44\xae\x31\x35\x86\x29\xf1\x0d\xf9\xef\xe3\x9f\x7e\xf7\xeb\xf8\xe4\xaf\xc7\xc7\x3f\x3e\x1f\xff\xc7\xcf\xbf\x3b\xfe\xe9\x14\xfe\xe3\xdf\x4e\xfe\x7a\xf2\xab\xff\xc7\xef\x4e\x4e\x8e\x8f\x7f\xfc\xdb\x9b\x57\xb7\x93\xcb\x9f\xf9\xc9\xaf\x3f\x8a\xb6\xbe\xc3\x7f\xfd\x7a\xfc\x23\xbb\xfc\xf9\x13\x5f\x72\x72\xf2\xd7\xdf\xa6\x07\x10\x73\xa3\xe5\xc3\xc5\xca\x07\x8a\x94\x7f\x96\x38\xb9\xd3\xb1\x3b\xdf\xfc\xee\x08\x5c\xdb\xfe\x2e\xc0\xf0\xa1\xed\xaf\xb2\xdd\x2a\x57\xb3\xae\x7d\xae\x89\xac\xb9\x31\xce\x89\x40\x63\x16\x9b\x15\x97\x8e\x53\x58\x7c\x86\x06\x14\xd7\x31\x9b\x4a\xe7\x09\x4a\x16\x2b\x9c\xaf\xe0\xc4\x12\x84\xd7\x4d\xc5\x6a\x26\x0c\x28\x9e\xb1\xbf\xf2\x82\x47\xf0\xb4\xeb\x41\x41\x85\x90\x86\xb0\xc7\x82\xb1\xd2\x09\x79\xd0\x8d\xd1\x73\xd0\x8d\x07\xdd\xf8\xb1\x27\xdb\xad\x3d\x90\x7f\x33\x76\x65\xaf\x05\xa9\xac\x5e\xc0\x2d\xe6\xcd\x67\xf8\x79\xe0\x3e\x90\x33\xc2\x52\x69\x2d\xbb\x46\x1c\x53\x26\x4d\x75\x62\x7a\x3e\x63\xba\x5c\xf3\x04\xad\xd0\xa4\x63\x92\xb9\xd3\x5f\xda\x83\x6d\xf0\xd6\x2a\x45\x52\xd3\x7b\x41\xba\xae\x59\xd1\x2a\x6e\x96\x17\x52\x18\xf6\x98\x74\xf5\x1c\x62\x39\x75\xb8\xd5\x9b\xbe\x40\xce\x7b\xea\x92\x4c\xdd\x77\x44\x36\xc8\x48\xf6\x5e\x82\xfd\x85\x6c\xab\xd2\x4e\xa7\x6a\x05\xac\x92\xb4\xd5\x71\x35\xb3\x73\x8d\x40\x26\x98\x6b\xf0\xed\xae\x8a\xe8\x21\x46\x28\xce\x3f\x5b\x7e\x4f\x2b\x26\x4c\xf4\x17\x13\x00\x9d\xc4\x7f\xf4\x05\xba\xdc\xe1\x2e\x33\x51\xfc\x9e\x57\x6c\xce\x2e\x75\x41\x2b\x38\x4a\x77\x6d\x9f\x9d\xbf\x47\x2e\x58\x0f\x4a\x56\x9a\x3c\x2c\x98\xb5\x57\xac\x9e\x40\xa0\x1b\xf8\x7e\xe7\x94\x0b\x52\x4b\x95\xe3\x1f\x74\x8d\x6a\x44\xda\x59\x93\xab\xa1\xca\xce\xbd\x47\xd4\xa1\x82\x99\x4a\x59\x39\x72\xc1\x6a\xd9\xc9\xc5\xd3\x1d\x69\xe0\x8c\x91\xbf\x08\xf6\xf0\x8b\x95\x42\x93\x59\x45\xe7\x01\x48\x67\x15\xd4\x2a\x3c\x39\x1f\xe4\xf7\xde\x81\x06\xe6\xbc\x96\x11\x5a\x3d\xd0\xa5\xee\xe0\x8f\x5d\xdb\x3c\xc3\x8a\x79\x71\x02\xbb\x98\x6a\x12\xda\x2e\x93\x5f\xf6\xfb\x13\xc8\x59\xbb\x38\x9f\xfc\x72\xf3\x8f\x9b\x5f\xce\x5f\xbe\xb9\xba\x4e\x07\x39\x49\xc3\xd0\xc0\x8e\x4e\x03\x77\x46\xb8\x59\x08\xa1\xdd\x53\xa9\x4f\xc1\x7b\x06\xf9\xf7\xa2\x94\x0f\x99\x21\x06\xbb\xa6\x18\x4d\x3b\x7a\x68\xd3\x9c\xab\x5a\xaa\x89\x92\x33\x5e\x25\x7b\xa7\x87\xda\xc1\x2b\xe2\x78\x67\xe3\xb9\xfb\xb8\x53\xf7\x98\x12\xba\x1e\xea\x8a\x14\x35\x87\xc4\x43\xfb\x9a\xf4\xcb\x4d\x0f\x32\x8a\x00\xd6\x15\x11\xd3\x37\xd1\x4e\xd7\xcc\xce\x93\x6d\xac\x18\x89\x7f\x3e\x44\x30\xa6\x92\x05\xad\xa0\xb8\x41\xde\xc2\x27\x03\xfb\xd9\x57\xe5\x8a\xc0\xc1\xd4\x2f\x67\x52\x49\x5a\xb2\xd2\xeb\x75\x21\x4b\xe6\xb9\x50\xbd\xb1\x03\xb1\x93\x2c\x41\x6e\x11\x98\x09\xed\x79\x34\x73\xa3\x98\xbf\x3a\xaf\x36\x2f\x91\x02\x36\xab\xc9\x37\xfd\x48\x94\xeb\x65\x2f\xef\x26\x77\xcf\x85\x66\xdc\x06\xe3\x33\x88\x65\x83\xc9\xcf\x67\xb0\x28\xed\x16\x7b\xf6\xda\x4f\x43\x06\x2b\xfa\x40\xc1\x20\x78\xc9\x9e\xac\x4e\x1c\x9f\xb0\x22\x11\x55\x76\xc7\xed\x08\xce\x3a\x25\xed\x97\x8d\xb7\x41\x10\x5a\x96\xb9\x1e\x7f\x80\xfa\x1b\x5e\xff\x53\x95\x4d\xe5\x12\xa6\x98\x8c\xa3\xad\xd5\x28\x36\x5e\xdf\x5e\xb9\xb1\xab\x77\xad\x30\xbc\x66\x3e\x5d\x79\xbc\x62\x13\x29\xfc\xfa\x48\x07\x66\xc0\x41\x16\x3a\x21\xdf\x0b\xd8\xaf\x82\x95\x64\x4c\x84\xec\xa6\x88\x89\x99\x54\x05\xf8\xe9\x76\xba\xc0\x0b\xda\xd0\x29\xaf\x78\x8e\x32\x1f\x6a\x81\x03\xdd\x76\x24\x0f\x38\x34\xcb\xf2\xac\x54\xb2\xc1\x93\xd8\xe7\x10\xe5\x63\x43\xfa\x58\xf5\x98\x13\x12\x0c\xf6\x59\x5f\x90\xb9\xa2\xc2\x74\x49\x2a\x6b\x0b\xe7\x5f\xd1\x06\x19\xc2\x08\xa0\xe5\x70\xc4\xf5\xe7\xa5\xd5\x19\xf1\xb4\x65\xef\xab\x7d\x63\xc0\xbb\xf0\x9d\x8b\xc0\xea\x64\xf2\xf6\xe6\xea\xff\xac\xec\x9b\x74\xd3\x0e\x9f\xfd\xe6\xbf\xb2\xfa\x60\xb0\x65\xf3\x8e\xd5\xf2\xfe\xb0\x70\xbe\xfa\x85\x13\x1c\x44\x3b\x27\xef\x78\xd7\x8a\xd8\x1d\x23\x22\xd1\x48\x9d\x65\xeb\x4c\x42\x8e\x6b\xff\xad\x71\x89\x51\xc5\x88\xfd\x89\x30\x9c\x56\xd5\x32\xf6\x91\x1a\x89\xa5\x31\x06\x29\xe6\x16\x9f\xae\x33\x5a\xe9\x2f\xf5\x88\xcc\x71\xed\x34\x4a\x16\x6f\x64\x2b\x86\x61\x03\xc9\x58\x71\x41\x10\x52\x32\x21\x8d\xf3\xa6\xc0\x5d\x42\xce\xe0\x5b\x82\x91\xf3\x88\xe8\xab\x67\xe7\x64\x98\x59\xb7\x91\x69\x15\x12\x00\xbd\x1d\x8e\xf7\x97\x56\x33\xbd\xd9\xae\xea\x02\xe9\x33\x99\x1e\x3f\x54\x8c\x96\x70\xc1\x6c\xa8\x59\x20\x03\x4d\x4d\xf5\x1d\x2b\xf1\x83\xcc\xcc\xdb\x00\xc3\x06\x28\xa5\x1f\xe9\x5b\x3b\xb8\x1e\x39\x0d\x0e\x61\xe4\xe1\x01\xac\x76\xce\x55\x6c\xa7\xbb\x21\x43\xb1\xdb\x49\x78\x2b\xaa\xe5\x3b\x29\xcd\xb7\xa1\xc6\xce\xae\x77\xc6\xdf\x5d\x38\xa2\xef\xc4\x04\xbf\x34\x05\x91\xc7\xb0\x70\x40\x2f\x46\x95\x81\x72\xd5\xa2\x9d\x90\x7f\x55\xad\xa8\x5a\x71\xae\x5f\x29\xd9\x26\xdb\x70\x43\xde\x37\x5f\x5d\xbd\x84\x83\xaf\x75\xe4\x0c\xc2\xa8\x65\x23\xb9\x30\xde\xe3\x35\x60\xd0\xe6\x7b\x47\x83\x11\x6b\xb6\xec\x8c\x77\x42\xde\xd0\x25\xa1\x95\x96\xc1\xa5\x26\x36\x05\x39\x7d\x04\xd5\x7e\x3d\x95\x66\xb1\x16\x3a\xa5\x22\x3d\x94\xb3\xde\xde\x28\xe2\x78\xe8\xd2\xe9\xb8\x58\x6b\xd6\x00\xb6\xbc\x51\xac\x60\x25\x13\xc5\x97\xba\x23\x76\x4d\x39\x00\xbb\xea\x5a\x0a\xab\x5e\x77\xbd\xaf\xae\x82\x7f\xd2\xcd\x46\xbc\x8b\xc0\x95\xed\x82\x88\x14\xe8\x39\x40\xb9\xb6\x3a\x07\xf8\x7f\x35\x83\xa8\x27\x2e\xba\xbf\xb5\x53\x56\xd9\xc9\xe6\x55\x85\x55\x83\xa9\x41\x40\x00\xaf\xe9\x9c\x11\x6a\xc2\x26\x34\x92\x30\xa1\x5b\xe5\xd6\x0d\x4f\x4f\x91\x29\x25\xd3\xa1\x9e\x1b\xd5\xe4\xfb\xab\x97\xe4\x39\x39\xb6\x7d\x3b\x01\x8b\x63\x46\x79\x05\x8c\x1f\x00\xbe\x59\x09\xc9\xce\x00\x34\x28\x73\xb2\x7f\xaf\x9c\x1e\x21\x52\xe1\xd1\x32\x22\x42\x12\xdd\x16\x0b\x3f\x06\x5c\x8a\xe0\x11\x76\x14\x90\x59\x70\xe8\x83\xda\x19\xee\x3c\xfc\x5e\x33\xb5\xeb\x6d\x6b\x8f\xc3\xef\x9f\xf0\x38\x8c\xaf\x88\x76\xfb\xf7\x27\x0c\xf7\x6a\xcd\x0c\x2d\xa9\xa1\xee\x98\xf4\x3f\x38\xac\xda\xc3\x61\x99\x71\x58\x6a\xf6\x9a\x8b\xf6\x11\x91\x6e\x7b\x11\xf6\xb8\xb9\x04\x89\x60\x7b\xc1\x44\xcb\x28\x6e\xe7\x23\x14\x03\x64\xc8\x5d\xf5\xb6\xd1\xe8\x3d\xb7\x6e\x38\x25\x7c\x76\xba\xbd\x08\x51\x51\xca\x7a\x4d\x48\x48\x9f\xcf\x29\x88\x1e\xa1\x46\x0e\x1b\xd3\x3d\xff\xda\x01\xa1\x8a\xdd\xb3\x8c\x22\xf0\x2b\x9b\xf2\xb5\x7d\x9b\x1d\x1c\xbf\x72\xe1\xf5\xa4\xa2\x53\x56\xb9\x9c\x7d\x24\x5d\x19\x70\x87\x0d\xe4\x03\x57\x72\x40\x48\xcc\x3b\x89\x48\x2e\x1a\x06\xc2\xbe\xfe\x8b\x18\x87\x41\xc1\x17\xb7\x0e\x5d\xd2\x8d\x03\xf8\x40\xbf\x84\x71\x68\x33\x0c\x44\xb2\x3a\x0e\xd6\xda\xec\x8f\x03\xd8\x5f\xfb\x3e\x0e\x9a\x15\x85\xac\x9b\x3d\x41\x4a\xde\x22\x0a\xde\x4a\xf4\xa9\xa8\xc8\xfe\x8f\x69\x16\xdc\xd9\xd1\x66\x52\x83\xe7\xa0\xe7\xce\xfc\xdf\xd1\x71\x0e\xda\x6e\xf5\x8c\x77\xad\x67\x23\x32\x43\x8b\xee\x85\xff\x8a\x27\xde\x01\x86\xd9\x7b\x9e\x1c\x86\x19\xd1\xf9\x50\x70\xcf\xf7\x20\x91\x5f\x03\x18\xd3\x5e\x02\x60\x5c\x99\x28\xb9\x98\x43\xc0\x6a\x44\x14\xab\x90\xd0\xd6\xa9\xe7\x3b\xf4\x78\x1d\x81\xc6\xf1\x02\x79\x75\xd3\x61\x56\x91\xcf\x67\x50\xec\xe6\x26\xbc\x26\xfe\xe6\xfa\xed\x6d\x9c\xc3\x45\xc5\x12\x33\x55\xe1\x4f\x76\x7e\x9c\x7e\x31\x98\xce\xd5\x59\xfc\xdc\x90\xce\xac\xf7\x6d\x46\x74\x3e\xdd\x2e\xfd\x34\x94\xe7\x2a\xc6\x73\x50\x11\x56\x01\x9f\xeb\x6d\x0c\x30\x73\xd9\x5b\xc0\x1d\x9d\x7b\xe4\x00\xf9\x3b\x4a\xe4\x6f\xd9\x85\x55\x1c\x86\x8b\xb9\x8e\x9d\x20\xb4\xca\x4d\xd0\xc4\x67\x93\x17\xc4\xef\x82\x40\x68\xb3\xee\x0d\xe8\x93\xa3\xe7\xb4\xfe\x11\x0f\xc6\x97\xed\x89\xa8\xec\x8d\xe2\x0b\xf7\x43\xcc\x6b\x4d\x2f\x94\x1d\x41\xc3\x69\x75\xd3\xb0\x62\x5f\x4e\x8b\x57\x6f\x6e\xce\xfb\x92\x81\x2d\xec\xe8\xbb\x18\x7c\x4f\x68\x59\x73\xad\x21\xe0\xc3\xa6\x0b\x29\xef\xb2\x9a\x3c\xde\x50\xcb\x3f\xc2\xe7\x69\x3e\xd7\x67\x4e\xa3\x8c\xed\xc0\x9d\x10\x2e\xaa\x90\x29\x0c\xde\x42\x61\xb4\x8b\x20\x64\x77\x9e\x14\xa1\xf7\xb0\xf4\x20\x3f\x25\x40\xb3\xd7\x87\x07\x38\xd6\x60\xf1\xee\xdc\xea\x58\x5f\x55\x79\xb4\xc5\x2b\x2b\xeb\x3d\x7d\x8f\xf9\xc2\x5c\x14\x67\xe3\x38\xe2\xe5\x75\xe7\x83\xe4\x8c\xfe\x82\xe9\xe1\xca\xa9\x0f\x50\x05\xdf\x89\x44\x4a\x86\x95\x0c\x18\x50\xba\xd0\xf7\x66\xba\x43\x78\xfb\x08\x4a\x3f\xb9\x3f\x3d\x1a\x8a\xe2\xee\xbc\xaa\xec\x44\x52\x7b\x4c\x1c\xe9\x18\xdd\x09\x57\x93\x05\xbd\x67\x5d\x21\x68\x36\x9b\xb1\x02\x2e\x0b\x71\x2f\xf2\xcb\x24\x1f\x73\x40\x31\xc5\x74\xba\x46\x62\xdb\x94\xd4\xfc\xd1\x4a\x18\xb7\x18\x63\x50\x45\x09\x81\xff\xcd\x5f\x67\x54\xc2\x20\x00\x3e\x08\xcc\x2d\x23\x3b\x43\x71\x23\x3e\x39\xda\xd8\x63\xcb\x7e\x71\xcd\x8c\xbd\xa8\xe1\xb8\xc5\xd1\x07\x7b\xb1\x52\xed\x00\x9b\x21\x27\x32\x4c\xe2\xe8\xf0\xa0\x9a\x22\x73\x3f\x40\xa4\xd8\xc9\x64\x6d\x10\x6f\xbc\x3d\x55\xe4\x98\x6c\x48\xdf\x79\xb2\x08\x32\xf9\xf4\x28\xf2\x67\x8c\x55\x91\x7d\x89\x57\xe5\x92\x9e\x60\x29\x48\x28\x4c\x93\xcd\x78\x32\xe9\xca\xdc\x7e\x12\xcd\x77\x42\x7b\x3b\x26\xfe\x60\x8f\xe9\x96\x68\x6f\xa8\x2e\x1f\x59\x11\x95\x95\xb4\xcb\xc6\xd5\x95\xb4\xfb\x89\xde\x65\x02\x62\x76\x6e\xc0\x17\xb2\xae\xa9\x18\x2e\xbb\x2c\x53\x63\x5e\xa0\x38\xde\x16\x73\xd2\xd9\xab\x12\x82\xd0\x1e\x59\xd1\x1a\xe6\xc9\x70\x7b\xea\x12\xf7\xb4\x3d\xa6\xb8\x98\x3b\xe6\x12\xa9\x02\xcf\x53\x96\x58\x5e\x0e\x28\x6f\x20\xa5\x21\xc7\x47\x67\x47\x27\x9e\x40\x36\x88\x70\xa4\x63\xf0\x33\xe6\x69\x76\x1d\xd2\xbc\x6e\xaa\x25\xf4\xe1\x08\x2b\x1a\x64\x54\x0a\xb3\x8f\x87\xd1\x05\x6a\x60\xbd\x60\x55\x35\x22\xda\x1e\xca\xd4\xb3\xb2\xe1\xa7\xf6\x47\x46\xb5\x05\x5e\xde\x8f\x8f\x7e\x3d\x1a\x11\x66\x8a\x13\xf2\x20\xc5\x91\x41\x37\x2c\xb9\x05\xcb\x36\x4b\xa6\x20\xc4\x52\xb6\x50\x74\x0f\xa7\x2d\x10\xf9\x15\xd4\x1a\x65\x2d\x5a\x0e\x48\x05\xc0\xaa\x8c\x22\x72\xf6\xb9\x7c\xe4\xc6\x2a\x48\xd3\xc2\xe5\xe9\x39\xda\x2f\x0c\x2a\x06\x50\x0d\x25\x75\xcf\x16\x8c\x56\x66\xb1\x0c\x36\x15\xd6\x33\xd3\xa4\x15\xee\x9b\x7c\xcd\xbe\x07\xc9\x6c\xfb\x9b\x56\xe6\xca\x2a\xee\x75\x65\x68\x27\xe3\x47\x0b\x43\x63\x01\xe8\x7e\x51\x68\x28\x16\xcd\xca\xa1\xea\x42\xff\xe1\xeb\xab\xf9\x3c\x57\xcd\x30\x47\xf2\xab\x77\x93\x8b\x8f\x56\x7a\x86\x1f\x1d\x4a\x3d\x67\xd3\x71\x0e\x59\xe1\x78\x22\x95\x21\x22\x54\xd9\xb3\x3b\x6c\x0e\x73\xc9\xd4\x3d\x2f\xd8\xe9\x13\x14\x14\x1e\x8a\x68\x33\x7f\x3b\x10\x00\x6a\x40\xc7\xf7\xc5\xf8\xba\x41\x71\x36\x39\xc2\x9c\xa4\x76\x0e\x9a\x8a\x16\x61\x6e\x60\xfe\xbe\x83\x13\xf4\x62\xc1\x8a\x3b\x47\x9b\x9b\xe7\x31\xd1\x8c\x91\x0d\xae\x54\xab\x40\xf0\x7f\xa6\x95\x9c\x9e\xd5\x54\x1b\xa6\xce\x4a\x59\xb8\xc3\x7d\x5c\x58\x09\xb8\x98\x9f\xd6\xe5\x49\x46\x01\x16\x12\x15\x87\x75\x9e\x9b\x95\x18\x88\x0f\x8c\x05\x6a\x50\xae\x43\xf4\x6e\xba\x84\x41\xd9\xb9\x7b\x90\x78\x29\xbf\x21\xcf\x9e\x25\xbd\xc5\x4e\xc1\xab\x81\x4a\xf4\x7f\x77\x7b\x3b\x79\xd5\x2b\xd0\x0f\xa9\xd3\xc6\x34\xa1\x1a\x83\x5d\x5a\x98\x6d\x71\x50\xd9\x7b\x53\x9d\x7f\x00\x87\xf0\x36\x15\xfd\x81\xb1\xd6\x5a\x5d\x74\x5a\x2d\xc9\x03\xc5\x54\x6b\xcd\xf2\x14\xca\x33\x2b\xc6\x33\xab\xb2\xec\x82\xfb\x8e\xd1\x92\x29\x0d\x17\x22\x46\x77\x1f\xec\x88\x64\x1a\x6c\xda\x2e\x5a\x6d\x64\x4d\x16\xae\xab\x38\x86\x5d\xbd\x13\x2c\x04\x02\x9b\x12\x9d\x3f\x9a\x28\xd6\xe0\x85\xc9\xfd\xcd\x57\x71\x1d\x5a\x53\x41\x38\xce\x11\x2b\x3e\x25\x45\x3c\x54\xce\xd6\xc7\x12\xcb\x02\x07\x28\xab\xe6\x2d\x3e\x83\x14\x97\x22\x03\x15\x98\x22\xf9\x45\xa6\xfc\x4b\xf2\xa3\x23\xc3\x94\xab\x22\x83\x94\xac\x22\x83\x57\x22\x22\x2e\x06\xe0\x16\x17\x22\x03\xac\xa0\xb9\x74\x69\xc4\x93\x2a\x78\xa4\x45\x41\x85\x14\xbc\xa0\x15\xff\x1f\x56\x92\xb6\x91\x82\xc8\xd6\x34\xad\x01\x6f\x50\x41\x35\x1b\xdf\x53\xc5\xad\x42\xc5\x7a\x7f\x01\xa2\x21\xec\x6e\x37\x52\x82\xab\x24\x44\xc3\x50\xe2\x7c\x31\x07\x32\x65\x88\xaf\x8d\x3f\xf0\x0c\xaf\x4d\x4e\xfe\x8a\x26\x7b\xed\x86\x21\x58\x62\x61\x31\xdc\x9d\x8e\x9a\x05\x40\x8e\x0a\x88\x1c\x3a\xc4\x1a\x28\x4e\x7b\x67\xd8\x83\x8c\x80\x41\xaf\xb0\x99\x2a\x01\xab\x1e\xab\x95\x4b\xb0\x95\x70\x7d\x0c\x07\x0a\x82\x7f\xfe\x3b\x75\x5c\x9e\x6f\xca\x08\x15\xe4\xea\xfc\xfa\xfc\x97\x9b\x1f\x2e\x7e\xb9\x3e\x7f\x73\x99\xf3\xea\xec\xd2\x1a\x43\x16\xd7\x18\xac\xbc\xc6\x67\x2a\x3e\x64\x1f\x5d\x2c\xd8\xfe\xc4\xbf\x6f\x40\x9a\x98\x2d\xc9\xdd\x01\xa0\x08\xab\x1c\x80\x3e\x8b\xac\xf8\x4d\xad\xe2\xd9\xa9\xc6\xe1\x82\x1b\x4e\xab\x97\xac\xa2\xcb\x1b\x56\x48\x51\xee\x1c\x36\x7a\x1d\x94\x8d\x46\x81\x9c\xe7\xba\x0f\x36\x58\x50\x8d\x41\x66\x56\x92\x29\x9b\x49\xc5\x20\x70\x22\xac\x46\x6a\xba\x78\x31\xf6\xcf\x3c\x61\x7d\xb8\x07\xa9\xee\x2a\x49\x4b\x7d\xd6\x48\xfc\x9f\x71\xc5\x67\xac\x58\x16\x15\xfb\x4d\x90\x7f\x9c\x65\xa6\xef\x87\x87\xbc\x61\x8a\x03\x54\x61\x1f\x56\xcd\x77\xf2\x81\xc8\x99\x61\x82\x1c\x73\xe1\x57\xce\x49\xe4\xa5\xe9\x22\x24\xf9\x34\x4f\x46\x92\x17\xcf\x7d\x23\x5f\x5f\xe8\x03\x82\x43\x5a\xef\x75\xf0\xcb\xc9\xf8\xf1\xe8\x97\xfb\xe1\xac\xad\xfa\x11\x30\x8c\x8a\x0d\x13\xfe\x7a\x71\x1a\x12\x68\x5e\x80\x3c\x41\x15\x51\x51\x7a\x2c\xcc\xd7\xb7\x4e\x4c\xd1\xdc\xc8\xe2\x6e\x20\x9f\xeb\xed\xc5\x04\xdf\xf6\xd1\x60\xd9\xed\xc5\xe4\x10\x2b\xdb\x2f\xc7\xeb\x51\x57\x5e\x6a\x5b\x27\xea\xd1\xe1\xc6\xd5\x3d\xde\xf8\x51\xfd\xf2\x0c\x87\x1b\xd7\x7b\x9e\xc3\x8d\x6b\x8b\x07\x11\xee\x90\x2d\xfa\x4a\xd1\x82\x4d\xf6\xc9\x80\xf3\x0a\x84\x94\xae\x7e\x28\xe9\xec\xb8\xa0\x2e\x04\x63\x25\xea\x0f\xd7\x15\x46\xe6\xb6\x27\xb3\xb6\xaa\x96\xe8\x47\x44\x33\xc0\x61\x63\xf2\xf8\x6d\xe1\xd5\xce\xcc\xf5\x51\xe6\x4d\xd2\x75\xf7\x93\x26\x30\x35\xfb\x92\x06\x6e\x3b\x59\xe1\xed\x7d\x44\x33\x91\xee\x52\xa7\xf1\x0c\x12\xcd\xe7\x76\xb8\xac\x85\x01\xb4\xbf\xc0\xf0\xe3\xeb\x82\x75\x82\xd8\x56\x67\x52\x15\x7c\x5a\x2d\xc9\x82\x56\xf6\xc2\xf4\xc0\xcd\x82\x50\x72\xc7\xab\xca\xbd\x26\x7d\xa0\x6e\x7c\xa5\x46\xb4\x6a\x2a\x29\xe6\x30\x18\xd4\x01\xc6\x1f\x1b\x56\x18\xa8\x55\xcf\xa8\x68\x1b\x94\xd3\xda\x48\x4b\xd9\x0e\x80\x19\xf7\x91\xef\x60\x53\x09\xee\xb8\x11\xb0\xaa\xd4\x07\xd7\x7c\x3f\xf3\x8f\xbc\xf5\x25\x77\xb1\xca\x55\xb2\x4c\x28\x4b\xbf\xc6\x15\x7e\x16\xf8\x1d\x5c\x5a\x93\x5d\x16\x90\x67\x97\xdc\xd6\x0f\xf0\x5e\xaf\x5a\x85\x14\x63\xc1\xe6\x98\x45\xee\x14\x1a\x02\x3b\xb1\x7d\x84\x11\x86\x9c\x64\x6d\x64\x43\x78\x5d\xb3\xd2\xde\x91\xab\x25\xb9\xe7\x34\x59\x12\xc8\x58\xef\x56\x14\x39\x16\x92\xc8\xc6\x1e\x5d\xad\xe0\x66\x09\x51\xbd\x45\x6b\x48\x29\x1f\x44\x46\x32\xc8\xad\xc3\x39\x50\x32\x65\x86\x3a\x3f\xb8\xdd\x04\x81\xb0\x19\xb8\x98\xed\xde\x03\xdc\xf8\xed\xc6\x05\x10\x38\x9c\xe7\xd4\x64\x68\x89\x0d\x16\x3d\xce\xe7\x87\x97\x1d\xd7\x2e\x66\x97\x49\x12\xbb\x1f\xb4\x6b\x76\x47\xcb\xd6\xec\xc9\x39\xf2\x3e\xf7\x11\xe6\xdf\x47\x17\x45\x5e\x33\x4d\x64\x3b\x10\x19\xfe\x0b\xd7\xdc\x90\xb7\xbc\x83\xef\x69\xe3\xa3\x4d\xc9\x93\x4a\xa2\x0e\xb1\xc4\xde\xc3\x2c\xee\x92\x04\x23\x72\xbd\x69\x3b\x9b\x31\x05\x27\x1d\x08\xbc\x86\xbe\x0f\x45\x86\xfc\x19\x96\xe6\xc0\x75\x88\x2f\x66\x46\x40\x6c\xee\x32\xdd\xdf\xd3\xa4\x63\x00\x84\x1a\xa2\x8a\x69\x20\xaa\x16\xe4\xf2\xed\xb7\x69\x4b\x74\x08\xda\xf3\xbc\x7c\x3a\xe8\xe7\x5b\x91\x06\x4a\x1c\x76\x3d\x6c\xa2\xa4\x70\xcb\xa2\xa8\xa4\x76\xb9\x9b\x30\x2f\xc5\x82\x0a\xc1\xbc\x43\x8a\x1b\xf0\x66\x4f\x19\x13\x44\x36\x0c\x51\x79\x49\xc2\x50\xa2\xb9\x98\x57\x8c\x50\x63\x68\xb1\x38\xb5\xd2\x09\xbf\x16\xba\x24\x49\xf7\x89\x36\x8a\xd1\x1a\xd7\x84\x62\x35\xe5\xd8\x3c\xa1\x85\x92\x5a\x93\xba\xad\x0c\x6f\xc2\xcb\xd2\x3c\x89\x0c\xd2\xd5\x35\xe6\xcc\xf9\xb9\x82\xec\x92\x2e\x1b\x73\xd4\x49\xe8\xba\x2f\xe3\x4a\x2a\xe0\x3e\x1b\xd9\x6f\x59\xdd\x98\x25\xb1\x43\x5b\x25\xa7\xc8\xcc\xb8\xd2\x86\x14\x15\x67\xc2\xb8\x9e\x21\x1f\x1a\xc8\x30\xf2\xe6\xb4\x70\x23\xa2\xdd\x90\x88\x12\x2e\xdf\x8d\xd1\x04\xb2\x0e\x83\x10\xfe\x55\x25\xd7\xce\xd7\xa1\x47\x69\x73\xe7\xcb\x66\xe0\xc2\xf1\x23\x02\x4b\xc7\x1b\x38\x28\x91\xfb\x28\x12\x21\x2a\x02\xec\xeb\xc0\x5b\x7b\x36\x47\xaf\x40\x6d\x0b\xbf\xaf\x47\xbd\x84\xe8\xee\x6e\x01\x19\x31\x6b\x5a\x07\x16\x94\x60\xf7\x76\x1f\xb0\x82\x59\x53\x94\x0e\xa8\x64\x9e\x5c\xc7\x18\xaa\xe6\xcc\x5c\xf8\xfe\xa7\x66\xec\x0e\xa1\x6d\xe2\x6a\xe9\xb1\x83\xa8\x9b\x1c\x98\x87\x89\x2c\x81\x41\xa2\x63\xf9\xd8\x54\xc2\x1d\xfb\x95\x78\xf7\xba\x7d\x4f\x5d\x78\x7f\xa3\xc2\x44\xaf\x20\xa8\x6e\x68\xc1\x34\x39\xbe\x9a\x5c\x8c\xc8\xe4\xea\xa5\xcb\xe6\x92\xb3\x55\x46\xbd\xd4\x61\x71\x87\x20\xee\xdd\xf7\x15\xad\x0f\x15\x69\x22\x91\x22\x6a\x2d\x27\xef\x24\x5c\xca\x92\x47\x66\xfd\x24\x80\x1b\x1a\xaf\x9b\x0a\x6a\x43\x12\xdd\xc2\xcd\xc8\x05\x2f\xec\xd2\xc6\xfb\x88\xdb\xb4\xac\x23\x35\x72\x04\xf4\x89\x81\x1c\x6c\x25\x74\xd7\xcd\x39\xc4\xb3\xfd\x40\x39\x3b\x00\x0c\x66\xe3\xbe\x0a\xbc\x30\x90\x72\xe6\xb0\xe2\xe9\xa7\x7b\xa2\x3b\x2c\xba\x44\xbd\x61\x5a\xd3\x39\x9b\x24\x62\x81\x86\xd8\x7b\x9d\x87\x1b\x40\x44\x9d\xbe\x5e\x30\xa4\xbf\x32\x32\xfa\x24\x4e\xb2\x8c\xbd\x36\x35\x76\x24\x49\x02\xbf\xb7\x1e\x14\x37\x86\xc1\xf1\x00\xf5\x9d\x60\xe9\xae\x52\x7a\xf6\x93\x3b\x93\xda\x73\x83\x1e\xb7\x67\xed\x7e\x51\x62\x9a\xe4\x94\x91\xa9\xe2\x6c\x46\x66\x1c\xf2\x36\x21\xa3\x71\x84\xb5\x09\x28\xc6\x6e\xb4\x66\x0a\xba\xed\xfc\x71\xbe\xfb\x69\xf2\xfc\xdd\xf5\xdf\xa8\x56\x14\x34\x2a\xdc\x09\x8c\x63\x7c\x46\xe6\x90\x45\xe9\xbc\x4f\xff\xfe\xfc\x3f\xfe\x44\xa6\x4b\x7b\x51\x82\x3d\x69\xa4\xa1\x95\x17\x80\x54\x4c\xcc\xed\x2c\x82\xad\x93\x76\x60\xf7\x58\xab\xc2\xe4\x54\xbc\xe6\x06\x07\xe8\xc5\xef\xef\xa6\x59\x67\x1e\x18\x26\x67\x25\xbb\x3f\x8b\x96\xd0\xb8\x92\xf3\xb4\xb7\x5e\x04\x92\xa7\xb6\x29\x53\x41\x11\x43\xef\x68\x59\xf1\x62\xb9\xb3\xf3\xd4\xb9\xc2\xc8\x42\x3e\xa0\x17\x75\x7d\xab\x46\x04\x30\x8d\x6c\xda\x0a\x06\x8e\x7c\x1b\x58\xfb\x5a\xcd\x56\x09\x91\x72\xbd\xf3\x91\xb6\x03\x04\x83\x6b\x76\xe5\xa8\x77\x29\xc4\x5e\x4c\xe9\xe8\x28\x5c\xc0\x3b\x54\x27\x49\x76\x83\x7f\x4b\xab\x6a\x4a\x8b\xbb\x5b\xf9\x5a\xce\xf5\x5b\x71\xa9\x94\x54\xfd\x3e\x57\xd4\x1a\xd3\x8b\x56\xdc\x41\x6d\xdd\x8e\xa2\x56\xce\x1d\xa0\x17\xd8\x24\xfb\x03\x9b\x24\x8c\xef\x25\x92\x86\xfa\xbb\x80\x77\x7e\x77\x2d\xb3\x47\xde\x79\xb8\x05\x61\x56\xe6\x74\x0b\x27\xee\x87\x8e\xb7\xf6\xef\x9f\xff\xfb\x9f\x51\xb9\x10\xa9\xc8\x9f\x9f\x43\xca\xbf\x1e\xe1\x01\x00\xa6\xaf\xbd\xe3\xd4\xb4\xaa\x52\x6d\x9a\x58\x05\x7c\x9b\x5c\xb2\x7a\x0f\xb6\xbc\xd9\xd9\xee\xfe\x64\x5f\xcd\xed\xed\x3f\xc0\x12\xe3\x46\xb3\x6a\x36\x42\x0e\x98\xe0\x4f\x3e\x82\x6b\xcd\x91\x3b\xf2\xd2\xf9\x83\x76\xef\x2d\xb9\x97\x55\x5b\xb3\x97\xec\x9e\x17\x69\xc8\x81\xde\xac\xf4\xde\xe6\xe3\x63\x15\xd7\x60\x4b\x4e\x2b\x59\xdc\x91\xd2\x7d\x19\xe5\xa9\xac\xd6\xda\x4e\x1f\x85\xd4\x8c\x9d\x8c\x4c\x9d\xf7\xf6\xbf\x97\xa3\x53\xd3\xa6\xb1\x76\x34\x90\x79\x29\xfa\xd0\x1b\x0c\x50\x4d\xc0\x99\x9a\x79\xe9\xc9\x46\xb1\xe4\x62\x58\xc6\xae\x47\xf6\x98\x4a\x7e\x45\x72\x62\x4f\x3e\x04\xa6\x93\x3e\x1d\x40\xd0\x5b\x10\xdd\x0b\xfd\x6e\x68\xe0\xbf\x91\xef\x64\xed\xaa\x1e\xaa\xa8\x85\x85\x81\x16\xa4\x5d\x3e\x70\xca\xa4\xc7\x0d\x06\x40\x21\xe4\x25\x28\xf5\xc6\x45\x04\xf4\x47\x4d\x8d\xbb\x1f\x79\xef\x05\x25\x0d\x53\x9a\x6b\x6b\x3a\xfd\x00\x1b\xea\xa2\xa2\xbc\x8e\xe2\xe6\xbb\x1a\x84\xf5\x74\x96\x9a\x36\xe3\x3b\xb6\x4c\x5c\x70\x99\xdb\xe5\x7d\xd9\x35\x35\x6d\x12\xcf\x01\x28\x68\x9b\x7f\x0c\x24\x1e\xce\x13\x59\x3a\x39\xe0\x78\xc0\x42\xc5\x1f\xbb\xc6\x92\x9b\x76\x0a\x7b\x0a\x7e\xfe\x79\x29\xc1\x06\x35\x9e\x76\x7d\x56\xfd\xd0\xcd\x78\xff\xa8\xb2\x9f\x84\xb3\x0a\x7f\xf5\x35\x9d\x50\xd0\xbf\x2f\xf5\x80\x0a\xc2\x0f\xa4\x87\xb3\xb0\x89\x70\xac\xb9\x95\xd1\x3f\xc7\x7a\x9e\x30\xdc\xd2\xd1\x9d\xd9\x79\xa8\x4e\xb1\xc6\x40\x86\x00\x76\x2b\xba\x46\xc9\xd1\x37\x47\x3b\x3d\x1c\x71\x66\x94\x6c\xe8\x1c\xae\xb4\xfb\x30\x41\xab\x32\xc5\x94\xb6\x0b\xf9\x10\xab\xcc\xc6\xfd\xca\x6a\x4c\xcf\x8b\xbe\x90\x59\xb3\x83\x58\x5f\xbf\x22\xdc\xb5\x1c\x2b\x43\x3c\xd0\x25\xa1\x4a\xb6\x22\x8b\xbc\x00\x42\x99\x21\xd4\xfd\x66\xa5\xb3\xd7\x52\x30\x0f\xab\xc9\x69\xe5\xb6\xe7\xfa\x06\x84\x11\x17\xe4\xc5\xe9\x8b\xe7\xd9\xb2\xbf\x63\x45\xab\x34\xbf\x67\xef\x5c\xc9\xf4\x28\x0c\x7a\x35\x9b\x48\xad\xf9\xb4\x82\x74\x4b\x23\xc9\x25\xd6\x93\x5f\xef\x68\x80\x7a\x41\x8f\xa5\x8a\xc9\x4f\x33\x24\x3c\xc6\x1d\x1c\x43\xb4\x6d\x03\x19\x38\xad\xfd\x32\x41\x61\x5e\x57\x4c\xd0\xeb\x60\x82\xe2\xb9\xb7\xd3\xbe\xfa\x3a\xfa\xfb\xa0\x49\xde\xb8\xa0\x42\x57\x28\x9f\xfb\x42\xcc\xf0\xd1\x83\xe2\xc6\x6d\xee\x07\xae\x19\x39\x06\x77\xc6\xca\x62\xcc\xe2\x7b\x8e\x9d\x5f\x99\x05\xf5\x87\xe0\x6b\x56\xab\x5b\x77\x1f\x66\x69\x5d\x9f\x74\x79\x33\x0f\xce\xf3\xd5\xcd\xa0\xd3\xfe\xdd\xb9\xbc\xa0\xa2\xac\xb2\x74\x46\x18\x95\x6a\x99\x45\x5f\x75\x35\x23\xb1\x4a\x74\x88\x83\x28\x08\xb9\xa0\x9a\x08\x49\x6a\x46\x01\x52\x6d\x4f\x17\xaf\x05\x7b\xd4\xcf\xc3\xc9\x80\x8b\x1d\x8f\xb1\xf8\x40\x70\xea\xfa\x25\xd7\x4e\x3d\x5b\x3d\xe2\xae\x2e\x08\xc4\xaa\x69\x99\x43\xc8\x10\x8d\x69\x37\x79\xa7\x1d\xcc\x79\x55\x92\xee\xe0\x58\x91\xe5\x73\xc8\x31\x72\x15\xcd\x6d\xf3\x18\x59\xde\xe0\xcf\xeb\x60\x6d\x59\xf8\x13\x7c\x56\xbb\x1b\x8e\xc5\xb5\xbe\x6e\x96\x38\x08\x9c\x21\xc3\xc7\xbb\x3a\x8a\x74\xa1\x47\x75\x23\x08\xc6\x95\x54\x71\x79\xca\x79\xc4\xe0\x3e\x9a\x11\xfc\x44\x73\x26\x98\xa2\x2e\x20\xe1\x41\xdd\x2e\xa4\x4f\xb5\x14\xb9\x1b\xe2\x23\x0b\xce\xea\xfb\x8f\x9b\x29\xf8\x67\x19\x82\x80\x9d\x73\x2c\xd5\xca\x6e\x77\xa1\x96\x4d\x16\xcb\x90\xbd\x5e\x61\xd3\xc3\xc5\x1f\x91\xf5\xda\x49\xf9\x67\xcb\xef\x69\xc5\x90\x12\xdf\xab\x86\x9d\x1a\x13\xba\x9d\xee\xeb\xb5\xd1\xdd\x0f\xe1\xda\xb1\x19\x2d\xf1\xde\x1b\xe4\x40\xf6\xc4\xb3\x67\xe4\x18\xdb\x38\x42\x76\xec\xdd\x1a\xb9\x6e\xae\x2e\x1f\x9b\x8c\x42\xb0\xc3\xcd\xd7\xe5\x63\x43\x01\xe0\xd1\xec\xc5\xc4\xfd\x17\x5b\xd0\x7b\x06\x64\xe4\xbc\xa2\xaa\x82\x34\x92\x1b\x1c\x32\x32\x6d\x0d\x61\xe2\x9e\x2b\x29\x00\x54\x05\x94\x51\x56\x33\x29\x36\x63\x8a\x89\x82\x69\xf2\xdb\xe3\x1f\xce\xdf\x41\x9a\xe1\x09\x5c\x7d\x99\xef\x5f\xab\x1d\x0a\xaa\xd7\x87\xe8\x75\xfb\xb8\xde\x88\xef\xbb\x5d\x2e\x60\x9f\xf8\xb1\xb0\x7d\xab\x5b\xd3\xd2\x0a\x38\xdb\x8b\xaa\xb5\x67\xe1\xce\x56\xf6\xf0\xce\xf3\x1c\x4f\xde\x90\xbe\x73\xc7\xd8\xff\x92\x27\x6d\xd7\x21\x36\xea\x45\xb4\x5e\xd7\xea\x07\xe4\x01\x28\xfb\xbc\xb1\x6b\x86\xce\x91\x0e\x5c\xb2\x71\xe6\x9c\x3b\x8b\xd3\x70\x1d\x7c\xbe\x30\x8e\xb2\x61\x05\x87\x19\xc1\x9a\xeb\x64\xcc\xd8\x6e\x01\x10\xc3\x6d\x83\x04\x47\xf4\x30\xab\x7e\x21\xb5\x39\xaf\x38\xd5\xdb\xfa\xb1\xf3\x96\xfa\x77\x5d\xb3\x90\xed\x27\x5c\x25\x47\x5a\x05\x88\x81\x95\x0c\x61\x4e\x57\x13\x87\x45\xf7\xab\x92\x8b\xff\x87\x59\xa7\x21\xa0\x84\xd9\xa0\xf0\x27\x5b\x4a\x82\x88\xa3\x19\x49\xac\x31\x94\x1a\xff\x49\x8a\xfc\xe4\xaa\x97\x30\xea\x64\x21\x2b\x97\x77\xed\xd1\x0c\x53\x66\x1e\x18\x13\xe4\x6a\x02\x63\x6e\x87\x12\xb9\x19\x37\x8f\xbc\x33\x8e\x85\x51\x4b\xb7\xa1\xb7\x96\x26\x9a\x33\x98\x85\x6d\xb7\x6e\x46\xfc\x29\x3d\xf2\x34\x26\x7c\xdb\x43\x25\x27\x52\x14\xa6\x21\xfb\x34\xfa\x2e\x4c\xa8\x67\xd4\xa1\x53\x79\xcf\x60\xbe\xcb\x52\x25\x66\x69\xef\x2c\xfc\x39\xb8\x01\x93\x45\x66\xc9\x9b\xec\xf9\xe9\xe6\xc1\x43\x49\xa0\x24\x33\xa8\x27\xd8\x66\x4f\x0e\xed\x4b\xe7\x6c\x1f\xf2\x5c\xdc\x72\xbb\x0d\x77\x2a\x5e\x4d\x2e\x9e\xf2\x44\xfc\xde\x79\x97\x6c\xd3\x47\x9a\xf0\xa6\xe8\xf2\x3a\xb6\x9d\xfa\x2e\x97\x21\xa2\x34\x4b\x70\xb4\xa7\x3a\xd7\x17\x5d\x91\xc6\xa7\x36\x2a\x88\xc0\x76\xed\x91\xe6\xa8\xc5\x1d\x70\x04\x3c\x3f\x8d\x2c\x4f\x57\x87\xda\xfd\x45\xfa\x70\x7b\xb7\x12\x9a\x30\xce\x9b\x36\x0a\xd4\x3e\x2b\x47\x28\xc0\x24\x83\xff\x2c\xb5\xb2\xe1\xee\x26\x76\x72\xf5\x72\x87\xfb\xa2\xe1\xe5\x97\xbd\x2f\xbe\xd7\x5b\x53\xeb\x0f\x3a\x80\x50\x71\x73\xd8\x11\x4c\xc1\x4c\xbb\x22\x9b\xee\xaf\x81\x11\x4b\x1a\xd2\x28\xa6\x99\x08\x7b\xa7\xdc\x94\x6f\x08\xc7\x62\xbf\x17\x23\xfb\xef\x59\x5b\x6d\x6b\xfa\x4b\x15\x51\xea\x04\xfe\x21\x1a\xd8\x43\x20\xc6\x40\xef\x29\xaf\xc0\xef\x14\x71\xc4\xae\x09\xe0\xd2\xa2\xb6\x94\xa0\x92\xb4\x44\xd2\xbb\x3b\x7b\x66\x55\xa4\x96\x65\x5b\x21\x44\x8b\x5c\x9c\x4f\x7e\xb9\xf9\xc7\xcd\x2f\x6f\xde\xbe\xfc\xfe\xf5\xd6\x34\x5a\x98\x1b\xce\xba\x25\x3e\x22\x94\x08\xf6\x00\x92\x0b\xb8\x75\x15\xce\xd1\x1d\x28\x16\xad\x72\xbc\x71\x59\x82\x18\xf4\x45\xcc\xc5\xac\xad\xec\x8f\xb6\x94\xa0\xe6\x86\xcf\x29\xbc\xac\xbb\xeb\x4f\x15\xa3\x77\xb2\x35\xe4\xbe\xad\x04\x53\x74\xca\x2b\x6e\x4d\x63\xc2\xee\x99\x40\xa0\x9f\xfd\x03\x2b\x64\x5c\x99\x96\x6f\xdb\x78\x5c\xb8\xd8\x55\x49\xb4\x83\x6a\x5b\xa6\x85\xf3\xa3\x39\xaa\x48\xf8\xb2\x51\xfc\x9e\x57\x6c\xce\x02\xff\x5a\x0a\x15\x70\x1f\x5f\x42\xab\x66\x41\xc7\x15\xbb\x67\xc8\xe3\x64\x8f\x08\xbb\xa2\x16\x52\x48\x85\x01\x27\x64\x25\x77\x27\x04\x30\xdb\xe0\x66\xf5\x75\x7a\x31\x8b\xf5\xc6\xa7\x93\xba\x2c\xd2\x27\x53\x56\xdb\x43\x34\xf2\x74\xd5\x4d\xbf\x20\x8f\x93\xc0\x1b\xc4\x93\xad\xd1\xc2\x9b\x1d\x5f\xdd\xc5\x13\xde\xee\x75\x8c\xdb\x2c\x94\x20\x1a\x75\xec\x6b\x28\x01\xd3\x4b\xca\x98\x6f\x6d\x77\x83\x23\x6c\xd2\x56\xd5\x0d\x2b\x14\xdb\x16\xbc\x9b\x37\xf4\x57\x2b\x6d\xbf\xcf\x2d\x13\x39\xdf\xa1\x90\x8b\xfb\xb1\xe8\xaa\x35\x44\xe9\xc8\x1d\xd5\x76\xd3\x56\x15\x46\xf7\x97\x7e\x3a\xa1\xb7\x3a\x4a\x1b\xe1\xda\xa7\xb6\xa7\x9c\x26\xbd\x39\xd6\x2c\x88\xe6\xa7\xb7\xa1\x5a\x77\xc1\xd4\x7b\x5e\xb6\xb4\x02\xb1\xc0\x03\xe9\x32\xb7\x29\x56\x24\x75\x1a\xb1\x4e\xac\xae\xbf\x25\xaf\x4f\xa7\xab\xce\x70\x4c\x7e\x83\x9d\x59\x72\x31\x1f\xc3\x27\x56\x4c\xd7\x9f\xb1\x14\x63\x3a\xde\x16\x38\xff\x45\xb9\xa9\x5e\xcb\x82\x56\x6f\xc1\xaf\xf3\xce\xaf\x36\xaf\xd0\x35\x61\x42\xb6\xf3\x05\x0c\xaf\xaa\xa9\x2f\x7e\x5c\x31\x03\x45\x5e\x5d\xd2\x57\x8a\x3f\x2a\xac\xec\xd2\x39\x95\xe2\xc2\xbe\xfd\x95\xfd\x84\xae\xaa\x1c\xef\x51\x2a\xc2\x6e\x88\x30\xc6\x75\xa4\xb8\xdd\xc8\x26\xc6\xdc\xfa\x87\x2a\x9b\xcd\x58\x61\x3c\x10\x04\xdd\x78\x23\x88\x15\x96\x2d\xf2\x43\xd3\xe2\xee\x81\xaa\x52\x93\x42\xd6\x0d\x35\x1c\x4c\x8c\x65\x2a\x4a\xc4\xe7\x1e\x60\x8e\x1b\xe4\xa5\x9e\x92\x2b\xa1\x0d\x05\x1d\xe8\x29\x2e\xec\x0c\x77\x69\xa9\x90\xbd\x8a\x0c\x61\x0b\xa6\x18\xa1\x2a\x0d\xad\x43\xab\xda\x1a\x9b\x05\x53\x76\xed\x57\x4b\xf2\xa0\xa4\x48\x4c\x0f\xdf\x52\x29\xc9\x7b\xa6\xee\x39\x7b\x38\x73\xb7\xe9\xb1\xed\xdc\x18\x97\xb0\x3e\x83\x9d\x70\xf6\x1b\xf8\x7f\x5f\x8e\x5f\x6a\xc5\x3d\x54\xd3\x26\xdd\xed\xf7\x15\xc4\x7e\xb8\xe0\x1d\xef\xcd\x93\x1a\x1b\xaf\x9d\x31\xe1\xea\x53\xf0\xff\x41\x3d\x1e\x19\xed\x53\x56\x49\x31\x8f\x2a\x73\xd8\xcb\xc9\xb6\x56\x81\xe0\xa6\x77\x11\x00\x80\x00\xd4\x6c\x87\x28\xa4\x54\x25\xf0\x1d\x71\x04\x65\xf7\x5a\x87\x2a\xca\x11\xd3\x12\x15\xdb\x3a\xb8\x79\xaf\x75\xc8\xd5\xd7\xdd\xc5\x16\x53\x96\x3d\x8b\xbd\x91\xf6\x32\xc2\x42\x2d\x67\xbc\x2c\x38\x0c\x27\xa1\x45\x21\x55\xb9\xfd\x56\xb1\xa6\x8e\x09\x94\x51\x48\xc5\x80\x64\x19\x60\xf7\x5a\x23\x87\x8a\x55\x39\xe1\x26\xae\xea\x1e\xb1\x8e\xf3\x56\x6d\xd9\x7c\x2b\xf8\x3f\x5b\x46\x68\x2d\xad\xdd\x57\xe5\x24\x6c\xad\xce\x64\x4d\x97\x60\xd8\xc3\xa0\xbd\xf6\x1c\x88\x8e\x4c\x5e\x8f\x00\xec\xc9\xa3\x62\x21\x23\xf2\xba\x5f\x3d\x64\x64\xfb\x79\x83\xcc\xfd\xee\xa3\xed\xef\x7a\x40\xae\x23\x5b\x55\xb0\x77\x78\x10\xd5\x8e\x20\x62\xc3\xb0\xda\xb5\x67\xe8\x1d\x13\x18\xb3\xb4\x53\x0a\xc9\x5a\xad\x82\x95\x56\x2c\x58\xd9\x56\xdb\x4f\xf1\x74\x49\x66\xd6\x9c\x75\x58\x97\x05\x9f\x2f\x98\x36\xde\xf3\x79\x06\x94\x06\x98\x36\x47\x8b\x45\x10\x17\xf4\x6f\x44\x86\xd6\x81\x65\x6a\xfa\xb8\x3d\xc1\x05\x9c\x81\xd4\x78\x62\x5c\x74\x26\xe8\xb6\xf6\xc7\xff\xea\x7a\xd2\xa7\xe4\xb5\x15\x0c\x77\x24\x6d\x9a\x8a\x7b\xc3\xbc\x37\xcd\x5b\x6f\x38\x60\xc8\x03\x24\x11\x99\x51\xbd\xe0\x52\xe4\x2e\xb4\x02\xf1\x05\x45\xab\xac\xfd\x52\x2d\x81\xe0\xbc\x2c\xad\x89\xa8\x88\x62\xb5\xbc\xdf\xde\x75\x9b\x8d\x59\xc8\xa3\x0d\xb5\x83\x3c\x8e\xae\x1c\x5f\xc8\x3d\xe2\x3c\x90\x1f\xda\xf5\x52\xac\x1c\x18\xb8\x00\xed\x05\xc0\x97\x69\x55\xad\xe8\x32\x1d\x13\x0e\x8f\x1d\x45\x97\x13\xf2\x11\x73\x6e\x08\x54\xcd\x77\x96\x22\x7c\xae\xe6\x2d\x6a\x4c\x77\xc4\x43\x98\xb3\x91\x3c\xfd\xa2\xb0\x86\x2a\x3a\xd2\xe4\xe2\xcd\xcb\x98\x91\x39\x2e\xa4\xed\xf9\xba\xd3\x9a\xfb\x61\x58\x3c\x22\x58\x19\x01\xe4\x98\x24\x51\x11\x34\x8b\xd5\xf4\xd5\xbd\x77\x78\x05\x01\xbd\x9f\x86\x8b\xa6\x35\xce\xfe\x8e\x8a\x6f\x16\x0b\x2a\xe6\xd6\xe0\x79\x29\x5b\xdb\xb1\xdf\xfe\x16\x3a\xa1\x58\xd9\x16\x89\xb9\x24\xe8\x50\xc3\x9d\xfb\x5b\x8f\xea\x76\x55\x7e\xe1\x5c\xd2\x05\x6d\xfc\xd0\xc4\xa3\xa7\x97\xc2\xd0\xc7\x6f\x08\x3f\x65\xa7\xe4\xd9\x6f\xa3\xaf\x9e\x81\xc4\x49\xd2\x34\x4a\xda\xae\x38\x96\x54\xe8\x7d\xc5\x0d\x64\x93\x3f\x8b\x5b\x38\x25\x97\x56\x2e\x48\x92\x0a\x73\x1b\x11\x5f\x4e\xbb\x99\x1d\x11\xc5\xe6\x54\x95\x15\x4b\x24\x1a\x93\xb3\x90\xcf\x83\x4c\xf2\x6e\x55\xb1\x47\xae\x8d\x76\x91\x91\xd3\x61\x90\x6e\x9f\x7a\x76\x18\xaa\xef\xec\x49\x61\x95\xdf\xb8\xa4\x86\x8e\x23\xad\x7b\x86\x8e\xd1\x71\x21\xeb\x9a\x8a\x72\x4c\xdd\x3e\xee\x0e\x95\xb3\xdf\xb8\xfa\x08\x63\x1a\x7e\xc5\xc5\x98\x8e\xf5\x82\x25\xcd\xdc\x01\x66\x02\x8f\x1b\xcb\x5d\x29\xec\xcb\xa0\x9f\x71\x2a\x4e\xc9\xb5\x34\xdd\x8d\x2a\x9c\xb6\x30\xcb\x43\xaa\xf0\xcb\xeb\xdb\x77\xff\x98\xbc\xbd\xba\xbe\x3d\x68\xf2\x83\x26\x87\xe7\xa0\xc9\x0f\x9a\x3c\xa1\xe1\x7d\xd1\xe4\x4c\xdc\xef\x4a\x8b\x7b\xdf\xdb\xa6\xd4\x1a\x17\xd3\x33\x6b\x18\xfd\x9d\xa3\xf3\x77\xcd\xb0\x73\x29\xee\x7f\xa0\xf6\xca\xef\x20\x2a\x0e\xfe\xbc\x21\x3b\xc9\xfd\x00\xdd\x11\x17\x5f\x3c\xc5\xce\x0e\x09\x72\x06\x24\x88\x88\xa3\x51\x9b\x66\xad\xab\xf0\x49\xc9\xc5\x2f\x57\x2f\x2f\xaf\x6f\xaf\xbe\xbd\xba\x7c\xb7\xd3\xdc\x41\xf0\xa7\xed\x43\xd6\xe0\x36\xf6\x51\x46\x33\x9d\x65\xd5\x28\x76\xcf\x65\xab\xab\x25\xf1\x28\x8c\xcd\xea\x6a\x9d\xad\x28\x33\x09\x1b\x21\x39\xbc\xd8\xbc\x4c\xf4\x8a\x6d\xb7\xc9\x4e\xcb\x68\x7e\xc7\x16\x9e\x13\x62\x08\x3b\x2f\xa3\xfd\x0d\x16\xe2\xa7\x5b\x7b\x19\xed\x26\xd9\x89\xef\xb3\xf9\x32\xe4\xe8\x5b\x8b\x19\x2f\xea\x67\xa9\xee\x5e\x93\x7d\xab\x64\x3d\x90\x36\xbb\xc1\x30\x86\x07\x2e\x6e\xda\xaa\x47\xae\x68\x60\xcf\xde\x76\x37\xc7\xae\x9a\xa0\xbd\xbf\x42\x48\x3f\x73\x74\xb2\xaa\x0d\x0f\x53\xf0\x97\xb8\x1c\xcb\x37\xb4\xf9\x1b\x5b\xbe\x63\x99\x75\x53\xfb\xe3\xcd\x2a\x56\x58\x9b\x87\xdc\xb1\x25\x92\x2a\x5d\xf8\xc6\xf2\x4a\xc7\x0e\x32\x7c\x64\x90\x92\xcd\xf8\x8c\x6d\x17\xb3\xde\x31\xcc\x64\xda\xe7\x8e\x65\x50\x11\xf9\x67\x85\x28\x8b\xc1\x14\x82\x99\x6f\xe7\x34\x6f\xf6\xc8\x50\x45\x9a\xf1\xc9\x33\xf8\xfc\x33\x64\xc1\x66\x7c\x86\xc3\x32\xf5\x9f\xdd\x22\x9b\xfa\xcf\x4e\x71\x4e\xab\xa2\x0c\x87\x7a\xea\x3f\xfb\x84\x81\xea\x3f\x03\xee\xa2\x1c\x7c\xd4\xea\xe3\xe1\xbf\x03\xef\x4a\xc4\x79\x2f\x7b\xa6\x53\x38\x50\x08\x52\xf5\x83\x9e\xf2\x79\x52\xee\x16\x30\xd0\x30\xe7\xd1\xc5\xe1\x33\x1c\x92\xac\xff\x80\x3a\x18\xf6\xf4\xce\xd6\x81\xdd\xf1\x8f\xca\x2a\xd4\xad\x2f\xbf\xf1\xfc\x59\x9a\xd4\xcc\xd0\x92\x1a\x7a\x6a\x37\xc4\xa8\xff\x4f\x97\x24\xf3\x7f\xc3\x87\x15\x9d\xb2\x4a\xff\x78\xf4\x97\xbf\x5d\xfe\xe3\x3f\x8f\x7e\xfe\xbf\xf1\x77\x60\xae\x21\x10\x3b\xfa\x41\x66\x17\xa0\xe2\x97\x90\x25\xbb\x06\xe9\xe0\x9f\xee\xa6\x77\x8e\x58\x1c\xf7\x05\x54\x5d\x39\xc5\x04\xd0\xf0\xcf\x46\x96\xab\xff\xca\x28\x6a\x4d\xf6\xd3\xee\x81\xb9\xcd\x20\x53\xc6\x67\x38\xeb\x87\x36\xfc\x07\xa6\x74\x16\xff\xae\x7f\xfa\x6c\xd9\xf8\x56\xbf\x8c\x75\xb1\x60\x35\x85\xff\xfc\xd6\x0f\x81\x3d\x8f\x43\x5d\x2c\x01\xe5\x6d\xec\x19\x38\xea\x11\x92\x3d\xbb\x7f\x91\x75\xe3\xc4\x67\x40\xcd\x1f\x66\x70\xe0\x01\x83\x11\x71\xa3\x85\x1a\x20\xd8\x8f\x21\xf3\xc3\xa7\x5f\x90\xf3\xc9\x15\xb9\xc7\x11\xde\xa3\xc1\xf9\x5c\xea\xda\x43\xea\xbe\xdd\x6b\xb5\x1d\x80\x7f\xab\x55\x2a\xbe\xc1\x8c\x34\xff\xbd\x2b\x82\xa4\x43\xc5\x75\xb6\x3d\xa1\xca\xea\x73\x8c\xaf\x3c\x2d\x9a\x76\xe4\x5e\x7f\x5a\xb3\x5a\xaa\x65\xf8\x67\xe0\xf4\x1f\x6b\x23\x15\x9d\x03\x13\x2d\x36\x8e\x7f\x16\xfe\x85\x7f\xd8\x13\x6f\xfd\xaf\xd1\x21\xd9\x61\xf6\x02\xc5\xe3\x57\xa7\xb2\xfd\xbc\xed\x89\xc6\x2e\x72\x8b\xa8\xf6\x9f\xde\x6e\x38\x0a\xa1\x14\xbc\x26\x86\x51\x04\x2f\x90\x2b\x35\x31\xea\xf2\xd5\xc0\x55\x29\xee\xc9\x3d\x55\xfa\x68\x7f\xf4\x10\x21\x25\xbf\xe7\x5a\x66\xb0\x01\x86\x17\xad\x5b\xd4\x3e\x73\xd2\x15\x35\xc3\x0c\xa9\x10\xf7\x78\x6c\xa0\xb2\x70\xd8\xec\x2b\xa7\xd9\x8b\xdc\xcb\x02\x21\x0d\x35\x86\x29\xf1\x0d\xf9\xef\xe3\x9f\x7e\xf7\xeb\xf8\xe4\xaf\xc7\xc7\x3f\x3e\x1f\xff\xc7\xcf\xbf\x3b\xfe\xe9\x14\xfe\xe3\xdf\x4e\xfe\x7a\xf2\xab\xff\xc7\xef\x4e\x4e\x8e\x8f\x7f\xfc\xdb\x9b\x57\xb7\x93\xcb\x9f\xf9\xc9\xaf\x3f\x8a\xb6\xbe\xc3\x7f\xfd\x7a\xfc\x23\xbb\xfc\xf9\x13\x5f\x72\x72\xf2\xd7\xdf\x66\x8b\x4e\xc5\xf2\x6d\xa6\xf6\xc6\x67\x3c\x48\x0d\xfd\x4d\x6f\x1c\xe8\x76\xd8\x3b\x0a\xb9\x30\x63\xa9\xc6\xf8\xea\x6f\x20\x19\x3f\xb3\x01\xbf\xbc\x86\xde\xff\xef\xbc\xd6\x8c\x60\xec\xde\x0a\xd9\xa3\x0d\xfe\xb9\x0c\x0d\x4c\xff\x7c\x0a\xcf\x2e\xb6\x14\x95\x68\x3a\xd2\x5d\xe6\xe3\xd7\x76\x82\xfe\x2b\x38\x7b\xfd\x3d\x07\xe7\xb5\x33\xdd\x67\x4a\xd6\xae\x70\x0b\x46\xbe\xef\x69\xc5\x4b\xff\xbb\x3b\x96\x11\x15\xf1\xcf\xc1\x39\x9c\xfc\x1c\x9c\xc3\xef\x11\xe5\xe0\x1c\xce\x7a\xbe\x48\xe7\x30\x92\x52\xfc\x6b\x7a\x86\x87\x27\x5b\x4e\xc4\x74\x0d\xc9\xb3\xcc\xc4\x7d\x2a\x1e\x60\x48\x10\xa4\x77\x7b\xc4\x65\xb8\x3f\x0d\x69\x94\x8e\x6f\xb7\x33\x17\x60\x4d\x1d\x68\x1e\x4d\xda\x7a\x33\x0c\x8d\x9c\x57\x15\xe1\x02\x0f\x68\xfb\x82\xa4\xd6\x03\x9b\x16\x73\x25\x2f\x1c\x8b\xeb\xbd\xed\x6a\x60\xc2\x8a\xf0\xf7\x1a\x73\xa0\xb9\x98\x9f\x22\xa1\x14\x9a\x89\x0e\xa2\xc2\x05\xa9\xdb\xca\xf0\x26\x11\xef\x12\xae\xa1\x88\x9c\xb1\x07\x05\xd5\x5a\x16\x9c\x86\x1a\xdf\xa1\x0a\xb9\x1b\x1e\xe8\x81\xa1\x77\x00\x11\x2b\x58\xc9\xc4\xf6\x64\x1c\xf8\xfc\x60\xdb\xeb\xe6\x61\xba\xb4\x23\x71\x29\xee\xdd\xf9\x45\xca\x16\x61\xd2\x68\x42\x0d\xd7\xee\xd7\x85\x89\xb5\x7b\xd8\x81\x71\x22\x68\x2c\x58\x9b\xc1\xe1\x48\x01\x51\x2c\x67\x5d\x84\x2f\x6d\xf5\x66\xdf\x1e\xf2\x6d\xf5\x80\xb0\xc9\xba\x84\xad\x19\xe9\x5d\xe8\xb3\x6f\x9c\x7f\x0d\xa0\xa4\x7c\xb3\x7d\x58\x93\xfd\x73\x98\xeb\xfb\x62\xaa\xef\x89\x99\xfe\x79\x4c\xf4\xfd\x34\xcf\x07\x33\xcd\x87\x31\xcb\x87\x31\xc9\xb7\xc0\x6a\x0c\x69\x86\x0f\x63\x82\x7f\x0e\x07\x5c\xa3\xd8\x8c\x3f\x0e\xa4\xf1\xcf\x23\x56\x3d\x5e\x32\x61\xf8\x8c\x33\x60\xa0\x69\x14\x6b\x98\x80\xfd\x0b\x7c\x1d\xd6\xf2\x70\x76\x67\x07\xb7\xdc\xc7\x4c\x05\x74\x19\x0d\x7b\x28\xde\x6c\x72\x57\x1d\x4e\x44\x72\x38\x11\xb7\x78\x0e\x27\xe2\xe1\x44\x7c\x92\x13\xd1\x69\xab\xaf\xff\x38\x1c\xba\x72\x46\x4d\xe7\x3b\xe3\xa8\xbc\xe8\x33\x0d\x80\x66\x7e\x12\x72\xc5\x35\xc6\xd7\x44\x67\x52\xac\x64\x83\x4d\x61\x24\xaa\x3d\x64\x03\x53\x04\x09\xa8\xf1\xea\x4a\x6a\x2a\xe8\x1c\x88\xca\xec\xef\x7c\xb9\x2f\xa9\x88\xd5\x0e\x8a\x27\x56\x95\x5d\xa1\x6c\x00\xd7\x90\xa7\x9d\x82\x2f\x95\xac\x2a\xa6\x34\xa9\xf8\x1d\x23\x2f\x59\x53\xc9\x65\xed\xb2\x68\x4b\x72\x63\xa8\x61\xb3\xb6\xba\x61\x26\xa3\x08\x4d\xa2\xc6\x09\x9c\xcb\xc8\x8f\xb7\xab\xa5\x08\xf4\xcb\x40\x47\x4c\x1a\x24\xea\x4b\x7a\xcd\x5b\x01\x47\xf9\x79\xf5\x40\x97\x7a\x44\xae\xd9\x3d\x53\x23\x72\x35\xbb\x96\x66\x82\xde\x99\xb4\xf7\xc6\xb9\x64\xf8\x72\xc2\x67\xe4\x9b\x8a\x1a\xa6\x0d\x31\x74\x0e\xbe\xc2\x8e\x82\x59\xaa\x5e\xa3\x5d\x05\xdd\x1d\x3a\xcd\x06\xe0\x65\x86\xd6\x03\x2b\xf3\x93\x33\x9f\x56\x9e\xe9\x70\x67\x94\x5d\x48\xb0\x88\x6c\x6b\xc8\x17\x18\xd4\x09\xb2\xa6\xfb\xfa\xa0\xe0\x2b\xe5\x82\x28\xa6\x1b\x29\x34\xeb\x11\x6c\x76\x1d\x41\xdf\x73\x22\x96\x7a\x40\x57\x6a\xf2\xc5\x20\xf7\x4a\xd0\x48\x6d\x80\x87\x32\xd5\x3e\x19\xea\x2e\x30\xf1\x82\x00\x35\x29\xad\x2a\x56\x12\x5e\xd7\xac\xe4\xd4\x58\xbb\x9d\xce\x0c\x53\x84\xf6\xa3\x03\xae\x82\xc4\x29\x96\xc0\xf1\x55\xe7\x3d\xd9\x69\xfa\x65\x6d\x35\x0a\x61\x98\xaa\xb9\xa0\xae\xca\xb6\x67\x34\x8d\xa9\x51\x57\xc8\x4e\xb3\x94\xa8\x7d\xde\x82\x65\x17\x2d\xef\x55\xe4\x2c\x99\x56\xb2\xb8\xd3\xa4\x15\x86\x57\xae\x5c\x81\xbc\x83\xfb\x4b\x05\xea\x24\xb9\xe9\x74\x2d\x15\xfe\x73\x1c\x36\xd8\xd8\x4a\xa5\xcf\x7e\xd3\x7d\x05\x1f\x24\x0a\x37\xc0\x2d\x7a\x88\x3b\x34\x7b\x64\x45\x8e\x3d\xdf\x8f\x62\x3c\xb2\x22\x1c\x5d\x18\xbb\x40\x1e\x59\xa0\x25\xa4\x77\x59\xc9\xec\x03\x21\x9e\x86\x42\x19\x65\x10\x88\xc5\xcf\xd0\x20\x9a\x0b\x14\x0b\x76\x3a\xec\x31\xfc\x67\xc5\x05\x9c\x1b\x8e\x61\x2c\xa6\xe3\x0f\xcb\x19\x83\x87\x6b\x75\x72\x7d\x6a\x78\xb6\x68\x5e\x16\x2b\x1b\x14\x8a\x39\x3e\x3a\x3b\x3a\x59\x8b\x06\x1f\x61\x09\x4b\x3c\x03\x4f\x1d\x8d\x59\xe8\x94\xe6\x75\x03\x75\x9b\x59\x71\xe4\xcb\xcc\x67\x4b\x66\x8f\x3e\x2c\x8b\x04\xa3\xe2\x68\xd7\x46\x44\x4b\x62\x14\x2d\xb9\xbb\x0d\xc0\xa7\xf6\x47\x46\xb5\xee\xf4\x3e\x3e\xfa\xf5\x68\x44\x98\x29\x4e\xc8\x83\x14\x47\x06\x86\xef\x94\xdc\x42\xad\x8b\x7c\x20\xad\x17\x64\x29\x5b\xa8\xa8\x84\x53\xd8\x54\xbc\xe0\xa6\x5a\xc2\xd9\x42\x64\x8b\xb5\x9f\xac\x1d\x91\x41\x17\x17\x3f\x97\x8f\xdc\xb8\x0c\x2d\xab\xac\x9f\xaf\x94\xf2\xaf\xf8\x3d\x3b\x5b\x30\x5a\x99\x05\xe6\x0f\x08\x29\xc6\xff\xc3\x94\x04\x4a\x39\xe1\xbe\xc9\x15\x23\x2f\x30\x1b\x3f\x19\x41\xda\x75\x81\x06\x81\x0e\x0d\x7c\xf3\xf7\x8f\x3d\xe3\x5e\xb1\x64\xfb\x87\xac\x15\x3a\xbd\xbd\x9d\xbc\x62\x66\x45\xa5\xdb\x56\x7c\xca\x08\xb8\xda\x99\x9a\x49\x55\xef\x81\x6e\x1f\x06\xcb\x3a\x86\x52\x83\x7b\x70\xc4\x2c\xa4\xce\x9a\x4b\xf2\x19\xce\x17\x2c\x0c\x49\x6b\x7f\x0b\x11\xac\xb0\x8b\xa0\x9f\xff\xe0\x99\xf9\xaf\x26\xa7\xe4\x1f\xb2\x05\x56\x78\x3a\xad\x96\x81\x51\x5a\xb3\x3c\xd0\xb2\x7d\x9e\x59\x51\x9e\xd9\xe3\xc3\x2e\xc8\xef\x18\x2d\x99\xd2\xa0\x9d\x19\xcd\x4c\x4f\x1a\x70\xaf\x47\xb2\x0d\x3a\x95\x17\xad\x36\xb2\x26\x0b\xd7\xed\x3e\xd7\x9c\xdb\x9c\xa7\xb0\x81\x3d\xe1\x90\x62\x0d\x6a\x70\xf7\x37\x5f\x9d\x7e\x5e\x53\x5d\x38\xee\xee\xf3\x29\xd3\xf6\xca\x15\x0f\x9b\x0b\x65\x20\x95\x8d\xc0\xc1\xc2\x02\x06\x03\x9d\x15\x03\xc0\xf3\xc9\x80\x10\x7d\x92\xc7\x42\xb7\xfa\x22\x08\xeb\x64\xbf\x69\x38\xd4\x3f\x19\x0c\xd9\x4e\x3e\x0b\xba\x9d\x38\xd0\xa2\x5b\x7c\xe8\x6d\x4e\xf7\x93\x6f\x7a\x39\xef\x6a\xb4\x15\x54\x48\xc1\x0b\x5a\xf1\xff\x61\x25\x69\x1b\x29\x5c\x2a\x1b\x98\xb5\x05\xd5\x6c\x0c\x88\x4c\x81\xea\x5c\x47\x7c\x68\x56\x3b\x18\x29\xc1\xd6\x0b\x05\xbb\x50\xea\x61\x44\x1d\x14\x84\x9d\x4d\xee\x17\x3f\x6b\xa1\xf3\xde\x64\x0d\xb3\xe2\xc9\x17\x61\x4b\x12\xcc\x41\xcc\xce\x7f\x5f\xcf\x7e\xc7\x9a\x2d\xc0\xf8\x86\xc7\x15\x28\x5e\x2c\xdf\xb9\x37\xe7\xb6\x35\x01\xf7\xcd\xf6\x42\x74\x81\x22\xa2\xad\xa7\x4c\x75\xd4\x21\xca\xac\x8f\x69\x26\xb8\xba\xd7\x2c\x36\xe7\xe3\xb1\xde\xc6\xa0\x62\xce\xc8\x0b\xdb\xf2\x9f\xfe\xf8\xc7\x3f\xfc\x71\x80\x76\x6c\xf7\x02\x68\x5b\x90\xab\xf3\xeb\xf3\x5f\x6e\x7e\xb8\x00\x42\xc2\xdc\xd7\x0f\x94\x93\x3a\x74\x46\xea\xa0\xf9\xa8\x9f\x35\x1b\x15\xa8\x3d\xb2\xb5\xec\xd0\x5b\xe2\x06\xa4\x8a\xab\xa3\xba\x3b\x49\x54\xee\x2c\xa5\xfa\xf0\xfa\x13\x87\xed\xac\xc2\xda\x0b\x4d\xa5\x2b\xc6\x9a\xc1\xae\xfb\x37\xf6\x6d\xab\xe0\xf3\xb2\x55\xae\x32\xa8\x0f\x54\x75\x7e\x7b\x17\xa0\x02\x29\xc8\x94\xcd\xa4\x62\xae\xde\x5b\x17\x65\xf8\x8a\xdc\x02\x9a\x15\x52\x94\x39\x97\x83\xa1\x8c\x5d\x27\xc9\xa0\xbb\xf1\x06\xdf\xe9\x3d\xc7\xdd\x21\xe3\x1a\x83\x3b\xa6\x9d\xe9\x61\x56\xfe\x30\x1a\x14\x69\x19\xe0\x6d\x7f\xfa\xf7\xf4\x20\x59\xd1\xdc\xc8\xe2\x6e\x40\xcf\x59\xa6\x6a\x7b\x69\xf7\x60\x81\xf1\xc0\xdb\x8b\x09\x0a\x67\x67\xe6\xfa\xed\x6d\xc7\xc1\x02\x39\x47\x5d\xcd\xbe\xef\x5c\xc4\x90\x8a\x92\xdc\xb1\x26\xef\xde\xe9\xf9\x60\x3d\x9c\xb0\x8f\x26\x04\xb7\x3c\xc2\xf9\x88\x90\x98\xec\x8c\x5a\xc2\xc3\x00\xd1\x60\xce\xa3\x90\x8e\xa2\xf4\x10\x11\x74\x77\x94\x19\xe5\x15\xc4\xc3\x5b\x61\x78\xcd\x5c\xb6\x55\xd1\x84\x90\x69\x8c\x9f\xf8\x8a\xd4\xcf\xd7\xea\x95\x3c\x7a\xeb\x71\x85\x5b\x7b\x17\x73\xc9\x2a\xbe\xee\xeb\x82\xd3\xe0\xc8\xf2\x73\xb8\x2e\x6c\xf3\x1c\xae\x0b\x89\xd7\x85\x46\xb1\x1b\x23\x93\x6d\xd2\xc1\x20\x38\x28\xc6\x7b\x00\x38\xce\x54\xa5\xef\x45\xc6\x38\x2c\x7d\x06\x56\xf8\x7c\x72\x15\x62\x64\xb2\x87\x7e\xc1\x14\x61\xdd\x16\x0b\x1f\x4b\x15\x4c\xeb\x33\x1d\x57\xd0\x85\x33\xae\x55\x2c\x1d\xf7\xd3\x28\xc6\x6a\x18\xc7\x51\x47\xf2\x63\xbb\xcb\x04\x7e\xc8\x4c\x81\xc1\xf5\xe8\xd4\x84\xfa\xac\x6e\xb8\x66\x59\x31\xff\x6e\x60\x0b\x45\xf5\x82\x01\x09\x3f\x7b\xe4\x46\x63\xa3\x13\xa0\xc2\xf1\x23\x6e\x0d\x87\xb9\xa2\x05\x23\x0d\x53\x5c\x5a\x63\xa3\x15\xa6\x94\x0f\x82\x4c\xd9\x9c\x0b\xed\x67\x2c\x47\x24\xbf\x24\x00\x5b\xc4\x75\x28\xb6\x76\x4a\xde\xf5\x6a\x10\x38\xd2\xaf\x42\x76\x3a\xd3\x0d\xd1\x68\xa0\x21\x01\x2b\x06\x96\x41\x4b\xab\x6a\xd9\x2d\x3c\x9f\xc2\x6e\xde\x3f\x42\xe9\x0b\x02\x47\xf6\xb8\x15\xd0\xd1\x92\x55\x74\x89\xc9\xda\x33\x2e\xc0\x4b\xac\xf4\xc9\x69\x3e\x58\x2b\x59\x40\xa9\xa2\x77\xbe\x77\x65\x70\x4d\x14\xa3\xc5\x22\xc7\xb2\x3b\xa0\xc2\x3e\xf6\x1c\x50\x61\x89\xcf\x01\x15\xb6\xed\x73\x40\x85\x6d\xfb\x1c\x50\x61\xfb\x84\x3a\xd8\xff\x48\xde\x01\x15\x76\xf0\xbf\xac\x3c\x07\x54\x58\xd2\x73\x40\x85\x7d\xf4\xd9\x3b\xfd\x7c\x40\x85\x7d\xc2\x73\x40\x85\x7d\xe2\x73\x40\x85\x1d\x50\x61\x07\x54\xd8\x01\x15\x96\xf1\x1c\x50\x61\xdb\x77\xef\x10\xe6\x49\x7f\x0e\xa8\xb0\x03\x2a\x6c\xcb\xe7\x80\x0a\xfb\xe4\xe7\x80\x0a\x3b\xa0\xc2\x3e\xf4\x1c\x50\x61\x07\x54\xd8\xc6\xe7\xe0\x95\x5c\x7b\x0e\xa8\xb0\x0d\xcf\x01\x15\xb6\x5d\x3b\x87\xeb\x42\xde\xcb\x06\xbf\x2e\x78\x84\xd3\x44\xc9\xe9\xce\xd8\xb6\x26\x80\x1e\xe1\x85\x83\x57\xc9\x59\x8f\x41\x0b\x05\x4c\x64\xce\xea\xc3\x7a\xa0\x24\x84\xa7\x54\xe2\x6e\x73\x05\x48\xd7\x2e\xd9\xb9\xb6\xc6\xbd\x78\xd6\x41\x7d\xd6\x48\xfc\x9f\x0e\xf5\x12\xc1\x5d\x92\x7d\xe3\x3b\xa6\x0b\xcb\xc1\xb8\x3c\x0d\xbe\x65\x4f\xc0\x40\x03\x60\x5a\x86\x3c\xc4\xf6\x14\xcb\xb2\x9f\x38\x96\x7d\xc4\xb0\xec\x02\xbf\xb2\x73\xec\xca\x30\x71\xd1\x01\x62\xa2\x03\x99\x0a\x9f\x21\xbe\xe0\x30\xcf\xb7\x0b\xc5\xf4\x42\x56\xc9\x0a\x67\x28\x65\xf3\x86\x0b\x5e\xb7\xb5\xdd\xbb\xda\xea\x14\x7e\x1f\x70\xd9\x3a\xdc\x84\xf1\x6c\xc7\x90\xb1\xfd\x21\x2f\x19\x14\x52\xa6\xbc\xb2\x4b\x0b\x98\x1e\x17\xf4\xde\xea\x1b\xdd\x16\x05\x63\x65\xce\xed\x33\x76\x37\xfe\xe1\x34\x48\x88\x04\xeb\x5c\x93\x17\x79\x47\x4d\x9e\x41\x1a\x79\x5d\xfe\xf0\xfb\xa4\x77\xcc\x55\x33\xcc\x91\xfc\xea\xdd\xe4\x22\x3a\x92\xa9\xf0\x27\x32\x17\xf7\xb2\x82\xd9\xa0\xf8\x23\x7b\xf1\xd9\xe1\xf9\x9c\xef\x05\xc8\xf2\x00\x0c\x61\x1e\xe4\x5e\x72\xfb\xa1\x40\x7b\x0f\xed\x47\xb2\xe6\x30\x97\x4c\xdd\xf3\x82\x9d\x3e\xc1\x3d\x72\xa8\xbb\x59\xfe\x76\x20\xe0\xd3\x85\x8e\xef\x8b\xf1\x75\x83\xe2\x04\x77\x70\xe4\x42\x70\x92\x02\xf6\xaf\xa2\x45\x98\x1b\x98\xbf\xef\xe0\x04\xbd\x58\xb0\xe2\xee\x1d\xc2\x90\xb2\xc4\x38\xd6\x8c\x85\x3b\xcc\x9c\x9b\x45\x3b\x3d\x2d\x64\x7d\x66\x15\x08\xfe\xcf\xb4\x92\xd3\xb3\x9a\x6a\xc3\x94\xbd\xd6\xb8\xc3\x7d\x5c\x58\x09\xb8\x98\x9f\xd6\xe5\xc9\xe9\xff\xca\x92\xe1\xca\xf9\x34\x5d\xde\x4c\xc4\xd8\x0d\x01\x12\x47\x07\x3f\x65\x56\xfb\x4b\x70\x3f\x46\x05\xf2\xec\xa0\xe4\x2f\xd2\xec\x53\x3c\xb7\x2e\x44\x26\xb4\xf4\xe9\x61\xa5\x07\x95\x4d\x06\x70\xd6\x0e\xa9\x51\xf6\x03\x3a\xfa\xd9\x60\xa3\x83\x6c\xd4\x81\xe0\xa2\x7b\x04\x15\xdd\x9b\xeb\xd0\xbe\xc0\x43\xf7\xb0\x9e\xff\x00\x90\xd0\x21\xe0\xa0\xc3\x41\x41\xf7\xb5\xec\xfd\x67\x83\x7f\x7e\x11\xd0\xcf\x01\x63\x17\x03\x41\x3e\x9f\x02\xee\xb9\xbf\x6e\x18\x32\x00\xc4\xf3\xe9\xe0\x9d\x83\x8c\xe3\xa0\x57\xd8\x4c\x95\xb0\x03\x38\xe7\x53\xc4\x66\x3f\x5b\x5c\x76\x80\x98\xec\x90\xf1\xd8\xc1\x62\xb1\x9f\x0d\xb6\x99\x0f\xd9\x1c\xd4\xa1\xf0\x24\x50\xcd\x21\x61\x9a\xd9\xf3\xcb\x05\x37\x9c\x56\x2f\x59\x45\x97\x37\x79\x90\xbd\xa1\x66\xe2\x7a\x0d\xd6\x87\x9e\xeb\x3e\xb0\x73\x41\x35\xf1\xa1\x6d\x87\xeb\xf4\xb1\x73\x67\x02\x03\xf4\x0b\xfb\x97\x05\xf2\xdc\xb3\x48\x35\xd9\x1b\x0f\x39\xb2\x60\xec\xc9\xaa\xf9\x4e\x3e\x10\x39\x33\x4c\x90\x63\x2e\xfc\xca\x39\x89\xbc\x34\x5d\x84\x24\x3b\xe4\x61\xdf\xfa\xe2\xb9\x6f\xe4\xeb\x0b\x7d\x40\x70\x48\xeb\xbd\x0e\x7e\x39\x19\x3f\x1e\xfd\x72\x3f\x9c\xb5\x55\x3f\x02\x86\x51\xb1\x61\xc2\x5f\x2f\xba\xea\xdd\x2f\x40\x9e\xa0\x8a\xa8\x28\x89\x63\x53\xfa\xfa\xd6\x49\x36\x28\xb9\x7f\xb9\x09\x28\xe2\x8f\x05\xcb\x6e\x2f\x26\x87\x58\xd9\x7e\x39\x5e\x77\x84\x90\xfd\xfa\x6e\x5c\x4f\x8f\x88\x3d\xdc\xb8\xfe\x55\x6e\x5c\x11\x91\xd9\x2b\x45\x0b\x36\xd9\x27\x03\xce\x2b\x90\x2e\x9d\xab\xb3\xe3\x82\xba\x10\x8c\x61\x9a\x4f\x47\x53\x07\x8c\x6c\xb3\xb6\xaa\x96\xe8\x47\xec\x71\x16\xa6\x2f\xad\xdb\x05\x5b\x23\x7b\xeb\x25\x9b\x45\xd2\x75\xf7\x93\x46\x49\x67\x95\xa8\x56\x08\x7b\x5a\xb9\xed\x64\x85\xb7\xf7\x11\xcd\x44\xba\x4b\x9d\xf6\xa8\xe8\x34\x9f\xdb\xe1\xb2\x16\x06\xb0\xd4\x75\x89\x26\x3d\x41\x6c\xab\x33\xa9\x0a\x3e\xad\x96\x64\x41\x2b\x7b\x61\x7a\xe0\x66\x41\x28\xb9\xe3\x55\xe5\x5e\x93\x3e\x50\x37\xcc\x60\xec\x19\xad\x9a\x4a\x8a\x39\x0c\x06\x45\x41\xd8\x63\xc3\x0a\xdb\x66\x51\x31\x2a\xda\x06\xe5\xb4\x36\xd2\x52\xb6\xca\xcb\x99\xde\xbc\x8f\x7c\x07\x9b\x4a\xf0\x6a\xe4\x87\xbc\x4f\x5a\xb8\xbe\xe6\x3b\xb7\xb2\x66\xa5\xe3\x1b\x7c\xe0\x9a\x8d\xe0\x9d\xc9\x32\xa1\x2c\xbe\xf2\x3a\xae\x1b\xfc\xac\x51\xf2\x9e\x97\x18\x76\xf7\xcb\xc2\x5a\x3b\xe9\xfd\xff\x01\xde\xeb\x55\xab\x90\x62\x2c\xd8\x9c\x82\x89\xec\x14\x1a\x02\x3b\xb1\x7d\x84\x11\x8a\x92\x17\xd4\x30\x7b\x81\x96\x4d\x8f\x8c\xf4\x9e\xd3\x64\x49\x6c\x7f\xa2\x15\x45\x8e\x85\x24\x12\xf2\xc0\x5a\xc1\xcd\x12\xa2\x7a\x8b\xd6\x90\x52\x3e\x88\x93\x9c\x8d\x89\x38\x07\x4a\xa6\xcc\xd0\x2e\x8b\xcb\x9b\x64\x9a\x30\x41\xa7\x95\xdd\x7b\x80\xf2\xbf\xdd\xb8\x00\xc8\x8c\x51\xd3\x2a\x46\xe6\xd4\x64\x68\x89\x0d\x16\x3d\xce\xe7\x87\x97\x1d\xd7\x2e\x66\x37\x23\xad\xd0\x2c\xd3\x90\x1d\xec\x1a\x90\x98\x9f\x68\x77\xb4\x6c\xcd\x9e\x9c\x23\xef\x73\x1f\x3d\x2c\x78\xb1\x88\x2f\x8a\xbc\x66\x9a\xc8\x36\xc3\x9b\xd7\xbb\x02\xba\xe6\x86\xbc\xe5\x1d\x7c\x4f\x1b\x9f\xd4\xd0\xe9\x10\x2b\xec\x3a\xb2\xca\xa3\x2c\x73\x8f\xb7\xc2\x7c\xd7\x97\xd7\x37\xbf\xbc\x3e\xff\xaf\xcb\xd7\x69\x13\x7f\x49\x8b\x45\xcc\x06\x2d\x08\x85\x83\x02\x94\xfc\x82\xde\x33\x42\x49\x2b\xf8\x3f\x5b\x87\x79\x3b\x0e\xed\x25\xaa\xd5\x01\x0b\xee\x27\x1a\xbe\xf6\x94\x48\xd2\x1c\x43\xcc\xe9\x6b\xae\x81\x5a\x18\x84\x70\xf8\x7f\xa9\x19\x99\x29\x59\xaf\x5c\xb4\xc8\x75\x40\xd7\x2d\xd1\x17\x01\x57\xb3\x05\x53\x69\x16\xf9\xcb\xb7\x97\x37\x90\x31\xdd\x28\xa4\xe2\x86\x1c\x03\x78\x27\xb4\x8e\x54\x05\x28\x4f\x79\x4a\xce\xc5\x12\xbf\x44\x65\x96\x68\xa2\x54\x5c\x1b\x06\xc6\xa9\xbb\x48\x7a\x7c\xe0\xb3\xe7\xa7\xf0\x7f\xcf\x08\x2d\x4b\x65\x6f\x9a\x21\x55\xa3\x58\xcd\x2c\x4b\x6a\x19\xef\xaf\x7c\x5a\x45\x83\x2b\x98\x81\x6c\x8e\xa4\x17\xbe\x91\xa5\x9b\x09\x30\x02\x01\xc3\x83\xd6\xad\x36\x8a\x1a\x36\xe7\x05\xa9\x99\x9a\x33\xd2\x50\x53\x2c\x48\x4d\x97\xa4\x90\x4a\xb5\x0d\x12\x45\x94\xd4\xd0\xb4\x96\xbf\x95\x8a\xd4\x5e\x3b\x5b\x6d\x66\x4d\xf2\x9b\xcd\x48\xd0\x4e\x65\xc7\xff\xc9\xb5\x6e\x99\x3e\x7b\xf1\xfc\xcf\xbf\xff\x63\xe2\xf5\x7a\xc0\x8d\x9b\x0a\x7f\xca\x80\x3d\xf5\x21\x60\x7e\x81\x01\xea\x3a\x62\xf8\xa0\x7e\x85\xe0\xca\x07\x6d\xa8\xb9\x98\x57\xd9\x0e\x90\x6c\x37\x60\xae\x13\x70\xdc\xf5\x60\x92\xea\x0b\xcc\xf7\x04\xf6\x64\x48\x77\xa5\x0c\xe7\x05\xeb\x2c\x38\xef\xf7\x72\x0a\x59\x8a\xe8\x62\x77\x35\xf1\x5a\x2a\xc7\x7f\x04\xb7\x89\xe0\x98\x42\x9a\x08\x6c\x16\x31\x0f\x23\xf2\x9c\xfc\x85\x3c\x92\xbf\x80\x17\xec\x4f\xe9\x4d\x0d\xe3\x63\x1a\x02\xc7\xbf\x90\xda\x5c\x4d\x06\x9a\xe8\xbf\xdb\xf3\xca\xbe\xd1\xce\x87\x91\x64\xca\x9d\x3b\x82\x3d\x1a\xa6\xec\x35\xd0\xcd\x61\xee\xc8\x65\x79\xd4\xac\x80\x5f\xca\xea\xce\x05\x18\x5c\xcd\xfa\xf0\xff\x27\x5a\xdf\xd0\xf0\x77\x52\x9b\x6b\xa7\xad\x63\x8a\x93\x58\x8e\x1a\x0e\xe2\x9e\xba\xcf\x69\xf5\x8d\x5d\x7b\x5d\x55\x04\x52\x4a\xc8\x80\xc0\x54\xce\x05\xcf\x50\x0e\xfb\xb3\x63\xf3\xb0\xa2\xc3\x2d\xdd\x0f\x2d\xad\x15\x9f\x3e\x78\x64\xdc\x25\x25\x2a\x24\xd2\xc8\xf2\x14\xee\x37\x19\x52\xd8\xd1\x28\x23\x63\xe0\x03\x57\xa3\x53\xbc\xaf\x85\x08\x31\x6c\x38\xab\xb1\x0a\x2a\x52\x6d\x58\x7c\x14\x9b\x31\xa5\x30\x5d\x78\xba\xf4\xf9\x46\xd9\xab\x2d\x4b\xcb\x35\x4a\x1a\x59\xc8\x6a\x1f\x96\xca\xc4\xc9\x02\x63\x0f\xb1\xda\x10\x21\xff\xfe\xe5\x64\x44\x6e\x2f\x26\x23\x22\x15\xb9\xb9\xc8\x03\x40\xc5\x2e\x98\x67\xb7\x17\x93\x67\x3b\x9d\x81\x28\x89\xe9\xf6\x62\x92\xf0\x92\x75\x08\x6d\x4d\x9b\xf1\x1d\x5b\x26\x5a\x77\x43\x58\x98\xe3\xb0\xb0\x06\xe9\x10\x0e\x73\x4d\x9b\xad\xdf\xa6\x18\x2d\xf9\x5e\xb3\xb7\xf8\xb4\xc3\x20\xe9\x70\x34\x2e\xb5\xbc\x67\x25\xde\x9a\x7d\x2b\x4c\x94\x8d\xe4\xf6\x8e\x74\xe0\x76\xf9\xd0\x73\xe0\x76\xf9\xc8\x73\xe0\x76\xd9\xf4\x1c\xb8\x5d\xb6\x78\x0e\xdc\x2e\xf8\x1c\xb8\x5d\xfa\x82\xec\x63\x52\xd1\x81\xdb\xe5\xa3\xcf\x81\xdb\xe5\xbd\xcf\x81\xdb\x25\xe1\x39\x70\xbb\xac\x3f\x07\x6e\x97\x0f\x3c\x07\x6e\x97\xf0\x1c\xb8\x5d\x0e\xdc\x2e\x69\xcf\xce\x55\xf6\x81\xdb\x65\xf5\x39\x70\xbb\x1c\xb8\x5d\x0e\xdc\x2e\xf1\x73\xe0\x76\x79\xcf\x73\xe0\x76\x39\x70\xbb\x1c\xb8\x5d\x3e\xfc\x1c\xb8\x5d\x92\x9f\x03\xb7\xcb\x76\xcf\x21\xd3\x70\xcb\xe7\xc0\xed\x72\xe0\x76\x59\x7d\x0e\xdc\x2e\x1f\x7d\xf6\xc3\x43\x7e\xe0\x76\x39\x70\xbb\x7c\xf0\x39\x70\xbb\x1c\xb8\x5d\x3e\xf8\x1c\xb8\x5d\xbe\x16\xc7\xeb\x81\xdb\xe5\xc0\xed\xf2\xa1\x36\x0e\x37\xae\xed\x9e\x03\xb7\xcb\x81\xdb\x65\xed\x39\x70\xbb\xac\x3f\x07\x6e\x97\x03\xb7\xcb\x81\xdb\xe5\xc0\xed\x12\x9e\x03\xb7\xcb\xd7\xee\x7b\x52\x4c\xf3\xff\x61\x13\x59\xf1\x62\x99\x9d\xe1\xf3\x8e\x69\xd9\xaa\xc2\x9e\xd8\xf0\x5a\xd2\xc0\x7b\x83\x57\x21\xcb\xc8\xde\x33\xda\x84\x77\xd1\xc0\xc5\xf4\x09\xca\x8d\xc1\xe7\x18\x82\xbd\xa0\x50\xf0\x1d\xbc\x4e\x47\x11\x8c\x7d\x99\x6c\x1c\xbe\x34\x87\x69\xf6\xad\x3d\xee\xc8\x3e\xa4\x70\xc6\x54\x47\x61\x15\x19\x19\x94\x2d\x7f\xef\xe2\xa2\x4d\x53\xf1\x9c\x64\x58\x42\x6e\x5a\xb0\x2e\x98\x0b\x83\xeb\x6f\x48\xd1\xb4\x23\x52\xb3\x5a\xaa\x8c\xfc\x88\x01\x6e\x70\xbd\xa5\xb2\x0f\xf3\xf4\x0e\x05\xf2\x83\x6f\x24\x8c\xff\x12\xef\x0b\x1d\x33\x55\x98\x2b\xee\xd5\x61\x16\xde\xec\x6a\xb6\x8a\x46\xe5\xa6\xe7\x05\xba\x96\xe6\x9d\xdb\xdc\x3b\x9b\xaf\x81\x51\x0b\x7e\x08\x77\xc6\x54\x75\x21\xeb\xa6\x35\xac\x77\xb0\xe1\x10\xe3\xa5\x83\xeb\x5c\x85\xbe\x9b\x0c\xd0\x42\x8a\x19\x9f\xbb\xdb\xf7\x59\x4d\x05\x9d\xb3\x71\x18\xed\x71\x47\xef\x70\x96\x7c\x50\xef\x2c\xfd\xb3\xa8\x28\x4f\x07\x0f\x0e\xa5\x26\x2e\x40\x0a\xa0\xfe\xea\x10\xf5\x90\xa2\x16\x86\x79\x14\x70\xe3\x1c\xf5\xc6\xa9\xff\x0a\xff\x78\x94\x71\x7b\xa4\x06\x7c\x15\x70\x31\xda\xb0\x52\xf3\x2f\x8c\x82\xd0\xaa\x59\x7c\xf8\xca\x98\x93\x79\xf9\x72\x29\x68\xcd\x0b\xbf\xf1\xce\xab\x4a\x16\xe8\xaa\xe9\x5f\x36\xf3\x7a\x82\xd2\xdb\x2e\xd5\x75\x6b\xe8\xb4\x62\xa7\xe4\x0a\xd9\x2a\xa4\xa8\x96\x76\x5b\x6a\x66\x3c\x7a\xc1\xed\x89\xbc\x0b\x66\x0e\x34\x36\x13\x16\xbb\xd1\x56\x87\xb5\x86\xf4\x1a\x4c\x58\x0d\x27\x05\x23\x4c\x18\xb5\xb4\xcb\x72\x22\xcb\x1b\xbb\x32\x7b\xbf\xce\x66\xdd\xc8\x44\xc3\x0e\x81\x84\xcd\x44\xc1\x0e\x83\x5d\xcd\xc7\xad\x0e\x8b\x59\xed\x22\x0b\x48\x1a\x14\x67\x02\xf5\x96\x45\x23\xcb\xd3\x0d\x1a\x8b\xc8\x59\xa6\x04\xb6\xc5\x89\x2c\xad\x2d\xa5\x18\xaa\xad\xb0\x47\xd1\xaf\x78\x65\x85\xbb\x03\x47\x20\x35\x9d\x91\x45\xef\x29\xaf\xec\x06\xce\x14\x60\x9d\x80\x31\x2f\x58\x33\x50\x08\xc3\xe1\xf6\xf7\x69\xb1\xb8\x74\xaf\x5e\xc6\x58\xb1\x90\x9a\x09\xd0\x97\x34\x24\xf7\x84\xd4\x03\xa7\x62\x4a\x3c\xa2\x73\x01\xc6\x57\x33\xc2\xea\xc6\x2c\x47\x84\xdd\x33\xb5\x34\x0b\x00\x22\x04\x0a\x51\x50\x6b\x5c\x93\x9a\x96\xd1\xea\x18\x11\xe9\xfd\xd2\x99\xcd\xc3\xf9\xe0\xae\x6a\x6d\x65\xf0\xe2\xc6\x75\xc8\xb0\xd8\xf5\xaa\x19\x9a\xd9\x86\xe4\x2a\xcd\x21\x99\x69\x08\xb0\xaa\xd6\x3c\x8d\xc3\x96\x0c\xb8\x17\x5e\x83\x14\x51\x56\x89\x5d\x12\x35\x7d\x04\xaf\x25\xad\x65\x2b\x0c\x52\xd6\xe0\x45\x22\x18\x7f\x98\x7b\xf3\x84\x50\xba\xcf\x6a\xf2\x93\x61\x8e\x76\x5a\x7a\xe2\x8a\xc9\x10\xf9\xcb\xd4\x18\xa6\xc4\x37\xe4\xbf\x8f\x7f\xfa\xdd\xaf\xe3\x93\xbf\x1e\x1f\xff\xf8\x7c\xfc\x1f\x3f\xff\xee\xf8\xa7\x53\xf8\x8f\x7f\x3b\xf9\xeb\xc9\xaf\xfe\x1f\xbf\x3b\x39\x39\x3e\xfe\xf1\x6f\x6f\x5e\xdd\x4e\x2e\x7f\xe6\x27\xbf\xfe\x28\xda\xfa\x0e\xff\xf5\xeb\xf1\x8f\xec\xf2\xe7\x4f\x7c\xc9\xc9\xc9\x5f\x7f\x9b\x1e\x94\xcc\x8d\xc0\x0f\x17\x7f\x1f\x28\xfa\xfe\x59\x62\xef\x4e\xc7\xee\x7c\xf3\xbb\x23\x70\x6d\xfb\xbb\xa0\xc5\x87\xb6\xbf\xca\x76\xd5\x5c\xcd\xba\xf6\xb9\x26\xb2\xe6\xc6\xb0\xd2\x9d\xbd\x11\x33\xce\x8a\x9b\xc8\x29\x2c\x60\xb0\xa2\x70\x7a\x47\x0c\x2d\x9d\x77\x29\x59\xac\x70\xbe\x82\x63\x4c\x10\x5e\x37\x15\xab\x99\x30\xa0\x78\xc6\xfe\xca\x0b\x5e\xc6\xd3\xae\x07\x05\xfa\x41\xd8\x63\xc1\x58\xe9\x84\x3c\xe8\xc6\xe8\x39\xe8\xc6\x83\x6e\xfc\xd8\x93\xed\x2a\x1f\x42\x31\xbe\x8b\x85\x70\x2e\x2e\xed\x2d\x65\x70\x9c\x07\xea\x04\x39\x03\xfc\xc4\x3d\x2f\x5b\x5a\xc5\xa4\xb2\x9e\x67\x34\x4d\x03\x44\xae\x9d\x9a\x2e\xd7\x3c\x39\x5c\xf0\x98\xc1\x76\x14\x50\x3f\xf0\x43\x67\x97\x75\x11\xe7\x67\xe7\xd5\x03\x5d\xea\x44\xa2\xcb\x6f\xa5\x02\x20\xc9\x4a\xa3\x44\x2a\x8f\x2f\x8a\xaf\xb8\x7d\x0f\x7f\x5a\x84\x70\xd3\x40\xf7\x39\x2a\xdc\x25\xfb\x48\x87\x1f\xfa\x38\x92\x1b\x88\x2e\x33\xc4\xae\xf3\xb4\x8e\xdf\x30\x63\x9c\x13\x70\x65\x49\xd0\x6e\x4c\x43\x58\xb4\x3f\x3c\x08\x25\x02\x7a\x59\xfb\xe5\x4c\xda\x39\x81\xc2\x0c\xb3\x19\x2b\x12\x6f\xc1\xc8\xe9\xb1\xa1\x1d\x84\xb8\x1b\x2e\x5a\x5a\x55\x4b\x3f\x26\xac\x24\x52\x24\x35\xc4\x1e\xb9\x21\xad\x30\xbc\xb2\x8b\x89\x28\x36\x6f\x2b\x1a\x3b\x10\x5d\xcf\x3c\xea\xae\x3c\x25\x6f\x45\xc1\xe2\x1f\xa7\x39\xbe\x57\x1a\xb0\x46\x47\xc5\x0c\x2b\x47\xf0\xea\xd5\x15\x08\xb8\xb5\x9e\xc6\x08\xd3\x92\xd4\xbc\x1f\xcb\x80\x4b\x3a\xc5\x8d\x18\x40\x13\xa4\xe4\xb3\x99\x6d\x19\x2e\xe9\x42\xaa\x9a\xae\x4b\x45\x45\x99\xd4\xba\xb5\x80\x20\x63\x25\x26\x0a\x86\xe2\x30\xcf\x34\x2f\x59\x41\xd5\xb3\xb8\xac\xc8\x79\x65\x16\xb2\x9d\x2f\xba\x55\x91\x37\xe4\x44\x1b\x40\x6b\xd9\xc1\xd4\xde\xe3\xb1\xb2\xd8\xb4\xb5\x75\x44\xc1\xd0\x24\x93\x0c\xb7\xfb\x03\x4d\x6c\x7b\x0d\x51\x80\x10\x71\x9c\x73\x9f\xc6\x05\x90\x40\x56\x46\x39\x77\x82\x3d\x9a\x01\x3a\x7c\x4a\xae\x90\x43\x63\xd4\x7f\x6b\x6f\x48\x70\x30\x22\x48\x9c\x07\x77\x26\xe2\x01\x57\x1a\xe0\x21\x6b\x0d\xa8\x8d\xf1\xe5\x54\x2c\x7d\x92\x08\x40\xd6\x30\xb9\x2d\xe4\xad\x54\x69\xbe\xf7\xb0\x97\x9e\xbc\x52\x8f\x66\x45\xab\xb8\x59\x5e\x48\x61\xd8\x63\x92\xee\x1b\xe2\x54\xbf\xe9\x8b\xd1\x3b\xd7\xbd\x88\x44\x36\x48\x31\xb9\x52\xac\x69\x21\xdb\xaa\x04\x56\xdd\x56\x80\xda\x49\x3b\x51\xae\x66\xf6\x08\xc7\xf5\x06\x27\x26\x84\xd3\x56\x05\xf3\x48\x51\x04\xcc\xfe\xb3\xe5\xf7\xb4\x62\xc2\x44\x7f\x31\x01\xec\x60\xfc\x47\x9f\x33\xe6\x6a\xa8\xbe\xeb\x6e\x18\x6c\xdc\xc8\xb2\xbb\x50\x9c\xf9\xa1\x83\x8f\xd8\xa3\xf9\x02\xe3\xad\x60\x30\x4d\x14\xbf\xe7\x15\x9b\xb3\x4b\x5d\xd0\x0a\xee\x51\xbb\xbe\x9c\x9f\xbf\x47\x2e\x58\x99\x4a\x56\xda\x1a\x60\xf6\xb2\x6a\x4d\x4d\x44\x4e\x43\xe0\x6f\x4e\xb9\x80\x4a\x43\x19\xc1\x21\xd7\xa8\x46\xe8\xb6\xbd\x6f\x37\x54\xd9\x55\xe8\x21\xda\x78\x34\x4e\xa5\xac\x1c\x5b\x6d\xb5\xec\xe4\xe2\xe9\x51\x14\xd0\xc5\xf2\x17\xc1\x1e\x7e\xb1\x52\x68\x32\xab\xe8\xbc\x3b\x9a\x99\x59\xcb\x77\xc9\x47\x8d\xbf\x77\xa0\x81\x8a\xb5\xb5\x86\x8d\xb5\x2a\x3a\x3c\x7d\xac\xc1\xd3\x2f\x74\x2f\x4e\x40\x9f\x50\x4d\x42\xdb\x69\xa6\x83\x7d\x7e\x7f\x02\xe7\xc4\xc5\xf9\xe4\x97\x9b\x7f\xdc\xfc\x72\xfe\xf2\xcd\xd5\x75\x3a\x6a\x56\x1a\x86\xde\x95\xc8\xba\x2f\x02\xd0\xc3\xce\x42\xc0\x0a\x9d\x4a\x7d\x0a\xa1\x13\x20\x74\x11\xa5\x7c\xc8\x8c\x2f\xdb\x35\xc5\x68\x9a\xe5\x4a\x9b\xe6\x5c\xd5\x52\x4d\x94\x9c\xf1\x2a\x39\x34\x39\xd4\x0e\x5e\x11\xc7\x47\x9a\xce\xdd\xc7\xdd\x71\x83\x1c\x03\xeb\x38\x87\xe8\xc8\xe0\x90\xc9\x6e\x5f\x93\xee\xd9\xea\xe5\x20\x60\x46\xc4\x8a\x88\xe9\x9b\x68\xa7\x6b\x66\xe7\xd9\x9b\x56\x8c\xc4\x3f\x1f\x22\x12\x5f\xc9\x82\x56\x50\xb3\x28\x6f\xe1\x93\x81\x83\xac\xab\x72\x45\xd9\x26\xd4\x2f\x67\x52\x49\x5a\xc2\x65\xd5\x29\xff\x92\x79\x72\x6d\x6f\x76\x41\xe0\x3c\x4b\x90\x5b\x44\xfa\x43\x7b\x3e\x3d\xa6\x51\x2c\x58\x35\x2b\xcd\x4b\x92\x5e\x61\xd0\x3f\x6f\xfa\x30\x04\xd7\xcb\x5e\x22\x67\xee\x9e\x0b\xcd\xb8\x0d\xc6\x67\xe0\x01\x01\x37\x10\x9f\xc1\xa2\x04\x07\xd0\x6b\x3f\x0d\x19\xc5\x4e\x06\x42\x02\xc0\x4b\xf6\x64\x75\xe2\xf8\x84\x15\x89\x30\xe5\x3b\x6e\x47\x70\xd6\x29\x69\xbf\x6c\xbc\x0d\x82\x58\xe5\xcc\xf5\xf8\x03\x94\xd5\xf2\xfa\x9f\xaa\x6c\x6e\xb0\x30\xc5\x64\x1c\x6d\xad\x46\xb1\xf1\xfa\xf6\xca\x05\x2e\xbc\x6b\x85\xe1\x35\xf3\xfc\x17\xe3\x15\x9b\x48\xe1\xd7\x47\x3a\x50\xcd\x0e\xb2\xd0\x09\xf9\x5e\xc0\x7e\x15\xac\x24\x63\x22\x64\x37\x45\x4c\xcc\xa4\x2a\x20\x48\xb3\xd3\x05\x5e\xd0\x86\x4e\x79\xc5\x73\x94\xf9\x50\x0b\x1c\xea\x37\x44\xf2\x80\x3b\xa9\x2c\xcf\x4a\x25\x1b\x3c\x89\x7d\x52\x6a\x3e\x30\xb0\x9f\xfc\x14\x93\x0c\x83\xc1\x3e\xeb\x0b\x32\x57\x54\x98\xce\x91\xbb\xb6\x70\xfe\x15\x6d\x90\x21\x8c\x00\x5a\x0e\x57\x09\xe5\xbc\xb4\x3a\x23\x9e\xb6\xec\x7d\xb5\x6f\x94\xaa\x17\xbe\x73\x51\xf6\x13\x99\xbc\xbd\xb9\xfa\x3f\x2b\xfb\x26\xdd\xb4\xc3\x67\xbf\x09\x15\xad\x3e\x18\x6c\xd9\xbc\x73\x55\xa7\x0e\x0b\xe7\xeb\x5e\x38\xc1\x41\xb4\x73\x36\xa8\x77\xad\xe8\x57\xbe\xef\x44\x23\x75\x96\xad\x33\x09\xa4\x09\xfd\xb7\xc6\xb1\x1e\xc5\x88\xfd\x89\x30\x1c\x22\x6f\x91\xb7\xd6\x48\xac\xb5\x34\x48\x8d\xd6\xf8\x74\x9d\xd1\x4a\x7f\xa9\x47\x64\x8e\x6b\xa7\x51\xb2\x78\x23\x5b\x31\x0c\xbd\x54\xc6\x8a\x0b\x82\x90\x92\x09\x69\x9c\x37\x05\xee\x12\x72\x06\xdf\x12\x84\x4d\x45\xcc\x91\x3d\x3b\x27\xc3\xcc\xba\x8d\x4c\xab\x10\xdf\xf7\x76\x38\xde\x5f\x5a\xcd\x56\xe3\x17\xce\xae\xea\x50\x54\x33\x99\x0e\x1e\x51\x8c\x96\x70\xc1\x6c\xa8\x59\x20\xa5\x59\x4d\xf5\x1d\x2b\xf1\x83\x4c\x2a\x87\x90\x83\x03\x21\x7e\x3f\xd2\xb7\x76\x70\x7d\xda\x0c\x38\x84\x91\xd8\x0d\x12\x75\x72\xae\x62\x3b\xdd\x0d\x19\x8a\xdd\x4e\xc2\x5b\x51\x2d\xdf\x49\x69\xbe\x0d\x45\xdb\x76\xbd\x33\xfe\xee\xc2\x11\x7d\x27\x26\xf8\xa5\x29\x88\x3c\x86\x85\x03\x7a\x31\x2a\x35\x97\xab\x16\xed\x84\xfc\xab\x6a\x45\xd5\x8a\x73\xfd\x4a\xc9\x36\xd9\x86\x1b\xf2\xbe\xf9\xea\xea\x25\x1c\x7c\xad\x63\xfb\x11\x46\x2d\xa1\xe0\xa8\xf7\x78\x0d\x18\xb4\xf9\xde\xf1\x2a\xc5\x9a\x2d\x9b\x42\x85\x90\x37\x74\x49\x68\xa5\x65\x70\xa9\x89\x4d\xe1\x56\x1f\xcb\xb5\x5f\x4f\xa5\x59\xac\x05\x71\x53\x51\x20\xf6\x59\x6f\x6f\x14\x91\x06\x75\xf9\xd9\x5c\xac\x35\x6b\x20\xb1\xa8\x51\xac\x60\x25\x13\xc5\x97\xba\x23\x76\xcd\x61\x03\xbb\xea\x5a\x0a\xab\x5e\x77\xbd\xaf\xae\x82\x7f\xd2\xcd\x46\xbc\x8b\xc0\x95\xed\x82\x88\x14\x60\x7a\xa0\x5c\x5b\x9d\x93\xf5\x75\x35\x83\xa8\x27\x2e\xba\xbf\xb5\x53\x56\xd9\xc9\xe6\x55\x65\x57\x20\x2f\xa9\x41\x68\x02\xaf\xe9\x9c\x11\x6a\xc2\x26\x34\x92\x30\xa1\x5b\xe5\xd6\x4d\x22\x40\xc7\x3e\x01\x5b\xe4\xba\xf6\xfd\xd5\x4b\xf2\x9c\x1c\xdb\xbe\x9d\x80\xc5\x31\xa3\xbc\x02\x0a\x29\x00\xff\xad\x84\x64\x67\x1e\x9e\x94\x35\x04\xa0\x47\x88\x54\x78\xb4\x8c\x88\x90\x44\xb7\xc5\xc2\x8f\x01\x97\x22\x78\x84\x1d\xa7\x70\x56\x2e\xcc\x41\xed\x0c\x77\x1e\x7e\xaf\x99\xda\xf5\xb6\xb5\xc7\xe1\xf7\x4f\x78\x1c\xc6\x57\x44\xbb\xfd\xfb\x13\x86\x7b\xb5\x66\x86\x96\xd4\x50\x77\x4c\xfa\x1f\x1c\x56\xed\xe1\xb0\xcc\x38\x2c\x35\x7b\xcd\x45\xfb\x88\x8c\x9d\x7b\x11\xf6\xb8\xb9\x04\x89\x48\xe1\x27\x5a\x46\x71\x3b\x1f\xa1\x18\x20\x3d\xfa\xaa\xb7\x8d\x46\xef\xb9\x75\xc3\x29\x41\x91\xfe\x81\xd9\x8b\x10\x15\xa5\xac\xd7\x84\x9c\x49\x45\x18\x2d\x16\xc9\xd2\x44\xa8\x91\xc3\xc6\x74\xcf\xbf\x76\x40\xa8\x62\xf7\xac\x1a\xcc\xb7\xff\xda\xbe\xcd\x0e\x8e\x5f\xb9\xf0\x7a\x52\xd1\x29\xab\x1c\x61\x0b\xb2\x78\x0d\xb8\xc3\x06\xf2\x81\x2b\x39\x20\x24\xe6\x9d\x44\x24\x17\x0d\x03\x61\x5f\xff\x45\x8c\xc3\xa0\xe0\x8b\x5b\x87\x2e\xe9\xc6\x01\x7c\xa0\x5f\xc2\x38\xb4\x19\x06\x22\x59\x1d\x07\x6b\x6d\xf6\xc7\x01\xec\xaf\x7d\x1f\x07\xcd\x8a\x42\xd6\xcd\x9e\x20\x25\x6f\x11\x85\x6f\x25\xfa\x54\x54\x64\xff\xc7\x34\x0b\xee\xec\x78\x98\xa9\xc1\x73\xd0\x93\x31\xff\xef\xe8\x38\x07\x6d\xb7\x7a\xc6\xbb\xd6\xb3\x11\x99\xa1\x45\xf7\xc2\x7f\xc5\x13\xef\x00\xc3\xec\x3d\x4f\x0e\xc3\x8c\xb8\xdc\x28\xb8\xe7\x7b\x90\xc8\xaf\x01\x8c\x69\x2f\x01\x30\xae\x4c\x40\x42\x59\x43\xcd\x62\x44\x14\xab\x90\x21\xdd\xa9\xe7\x3b\xf4\x78\x1d\x81\xc6\xf1\x02\x79\x75\xd3\x61\x56\x91\xcc\x6d\x50\xec\xe6\x26\xbc\x26\xfe\xe6\xfa\xed\x6d\x9c\x00\x4c\xc5\x12\x69\x0a\x32\xd2\x5b\xf1\xd9\x3f\xb3\xe2\x73\x62\x3a\x57\x67\xf1\x73\x43\x3a\xb3\xde\xb7\x19\xd1\xf9\x74\xbb\xf4\xd3\x50\x9e\xab\x18\xcf\x41\x45\x58\x05\x7c\xae\xb7\x31\xc0\xcc\x65\x6f\x01\x77\x74\xee\x91\x03\xe4\xef\x28\x91\xbf\x65\x17\x56\x71\x18\x2e\xe6\x3a\x76\x82\xd0\xaa\x1a\x04\x93\xb0\xc9\x0b\xe2\x77\x41\x60\x33\x5b\xf7\x06\xf4\xab\x6d\xe4\xb4\xfe\x11\x0f\xc6\x97\xed\x89\xa8\xec\x8d\xe2\x0b\xf7\x43\xcc\x6b\x4d\x2f\x94\x1d\x41\xc3\x69\x75\xd3\xb0\x62\x5f\x4e\x8b\x57\x6f\x6e\xce\xfb\x92\x81\x2d\xec\xb8\x1b\x19\x7c\x4f\x68\x59\x73\xad\x21\xe0\xc3\xa6\x0b\x29\xef\xb2\x9a\x3c\xf6\xa9\xb6\x73\x6e\x16\xed\xf4\xb4\x90\x75\x94\x75\x3b\xd6\x7c\xae\xcf\x9c\x46\x19\xdb\x81\x3b\x21\x5c\x54\x21\x53\x19\xbc\x85\xc2\x68\x17\x41\xc8\xee\x3c\x29\x42\xef\x61\xe9\x41\x7e\x4a\x80\x66\xaf\x0f\x0f\x10\x6c\xc2\xe2\xdd\xb9\xd5\xb1\xbe\xaa\xf2\x78\xf0\x57\x56\xd6\x7b\xfa\x1e\x93\x45\xba\x28\xce\xc6\x71\xc4\xcb\xeb\xce\x07\xc9\x19\xfd\x05\xd3\x59\x08\xd8\x21\xf7\xdc\x77\x9d\x48\xa4\x64\x48\x22\xc2\x80\xcf\x8b\xbe\x37\xe7\x1e\xc2\xdb\x47\x50\x4b\xd0\xfd\xe9\xd1\x50\xfc\xa6\xe7\x55\x65\x27\x92\x3a\x42\x99\x08\xdd\x09\x57\x93\xc0\xe1\xa2\xed\x8c\x23\x7d\x8b\xbd\x2c\xc4\xbd\xc8\xaf\xbb\x7f\xcc\x8d\x67\xcf\xf1\xf4\x3d\x46\x62\xdb\x94\xd4\xfc\xd1\x4a\x18\xb7\xd8\xe7\x1b\x81\xc0\xff\xe6\xaf\x33\x4a\x2b\x11\x00\x1f\x04\xda\xae\x91\x9d\xa1\xb8\x11\x9f\x1c\x6d\xec\xb1\x65\xbf\xb8\x66\xc6\x5e\xd4\x70\xdc\xe2\xe8\x83\xbd\x58\xa9\x76\x80\xcd\x90\x13\x19\x26\x71\x74\x78\x50\x4d\x91\xb9\x1f\x20\x52\xec\x64\xb2\x36\x88\x37\xde\x9e\x2a\x72\x4c\x36\xa4\xef\x3c\x59\x04\x99\x7c\x7a\x14\xf9\x33\xc6\xaa\xc8\xbe\xc4\xab\x72\xa9\x56\x22\xda\x98\x9d\xf1\xac\xc4\xd4\x35\x7c\x1d\xbc\x34\x91\xe5\x1a\xa3\x8d\x2f\x3c\x9f\x5e\x62\xc4\x2e\x8e\xee\x0a\x22\xa4\x73\x8f\x44\xb5\xdf\xd9\x23\x2b\x5a\xc3\x4a\x47\x6c\xe5\x5c\xca\x48\x8a\xd3\x97\x26\x59\x02\x9f\xa4\xef\x2a\x4e\xea\x51\xc7\x06\xee\xee\x3a\x81\x9a\x6b\x44\xfe\x1f\x68\x49\xc7\x63\xd9\x95\xab\x9f\x84\x3f\x4f\x1d\x0a\xc0\x51\x17\x54\xf8\xbb\x15\x54\x3d\x47\x0f\xb7\x23\xb0\x72\x3c\x1e\x53\x46\x1a\xaa\x68\x6d\xcf\x60\x4d\xdc\xf4\x4c\xd9\x9c\x63\x5a\x60\x74\x28\x06\x06\xac\x34\x46\x37\xb8\xd8\x70\x43\x6a\x3e\x5f\xe0\x6e\x21\x14\x4a\x43\x12\x8f\x1b\xab\x24\x2d\x09\x28\x16\xa9\xc8\x03\x55\xb5\xb5\x05\x68\xb1\x00\x10\x1a\x15\xa4\x6c\xed\x7e\x20\xc0\xd7\xb4\x1c\x6b\x43\x8d\xbd\x63\x32\x95\xe1\x83\xf3\xc3\xb4\x83\xe2\x25\x9f\xbb\x30\xdb\x8e\xf9\x74\xec\x4e\x1b\xc4\x0b\x72\xf9\xc8\x8a\xa8\xfc\xb7\x5d\x9e\xae\xfe\xb7\x3d\xa6\xe8\x5d\x26\xce\x6c\xe7\xf7\xe2\x42\xd6\x35\x15\xc3\x25\x6d\x66\x1a\x22\x17\x28\x8e\xbf\xe2\x38\xe9\x88\xbd\x7c\x02\xb6\x13\x15\xa8\x2f\x30\xd0\xb3\x42\x50\xd3\xd9\x75\x6d\xb7\x29\x12\x02\x49\x15\x8a\xc6\x65\x89\xe5\xe5\x80\x32\x54\x52\x1a\x72\x7c\x74\x76\x74\xe2\x29\xea\x82\x08\x47\x3a\xce\x29\xc0\xf4\xe7\xae\x43\x9a\xd7\x4d\xb5\x84\x3e\x1c\x61\xe5\xa9\x8c\x8a\xae\xf6\xf1\xe8\xd4\x50\x6e\x41\x2f\x58\x55\x8d\x88\xb6\xb6\x2e\xf5\x4c\xb7\xf8\xa9\xfd\x91\x51\x6d\x81\x3e\xb1\xe3\xa3\x5f\x8f\x46\x84\x99\xe2\x84\x3c\x48\x71\x64\x30\xba\x41\x6e\xe1\xc2\x98\x25\x53\x10\x62\x29\x5b\x28\x8e\x8c\xd3\x16\xc8\x91\x0b\x6a\xef\x3a\x2d\x1a\xe4\xc8\xb0\xc1\xaa\x8c\x62\xbf\xf6\xb9\x7c\xe4\xc6\xda\x1d\xa6\x05\x9f\xc4\x73\xbc\x16\x30\xab\x4b\xed\xe9\x66\x8f\xb5\xb3\x05\xa3\x95\x59\x2c\xc3\x55\x05\xeb\xce\x6a\xd2\x0a\xf7\x4d\xbe\xc1\xb4\x07\x39\xa2\xfb\x9b\xad\xe9\xca\x5f\xdf\x2e\x14\xd3\x0b\x59\xed\x3c\x67\xd3\xd7\x44\x2d\xa4\xd0\x56\xa7\xd8\xfb\xb4\x93\x51\x87\x74\x39\x57\x97\x55\x3a\x76\x53\xbb\xcb\x14\x2b\x9d\x65\xe4\xa8\x12\x17\xf4\x1e\xcc\x02\x6b\xbc\xb1\x32\xe7\x1e\x12\x5f\x80\xfe\x30\x64\xd5\xd6\xdd\x17\x48\xb5\xcf\x5c\x35\xc3\x1c\xc9\xaf\xde\x4d\x2e\xa2\x23\x99\x0a\x7f\x22\x73\x71\x2f\x2b\x98\x0d\x8a\x3f\x6a\xa4\xca\xac\x64\xbc\x73\x34\x81\xed\xc2\x0e\xcd\x03\xdb\xfc\x60\xb6\xc1\x44\x2a\x43\x44\xa8\x86\x6c\x77\xd8\x1c\xe6\x92\xa9\x7b\x5e\xb0\x53\x5f\x29\xd9\xc7\xe3\x7d\xcd\x1b\x2a\xe6\x8c\xbc\xb0\xdb\xe2\x4f\x7f\xfc\xe3\x1f\xfe\x98\xaf\xa9\xf3\xc9\xcb\xf3\xb7\x03\x01\xfc\x13\x74\x7c\x5f\x8c\xaf\x1b\x14\x67\x93\x7f\xd9\x49\x0a\xf7\xb8\x8a\x16\x61\x6e\x60\xfe\xbe\x83\x13\xf4\x62\xc1\x8a\x3b\x57\x8a\x20\xcf\x11\xa9\x19\x23\x1b\x22\x14\x56\x81\xe0\xff\x4c\x2b\x39\x3d\xab\xa9\x36\x4c\xd9\x6b\x8d\x3b\xdc\xc7\x85\x95\x80\x8b\xf9\x69\x5d\x9e\x64\x14\xb5\x23\xd1\x4d\x7a\x8d\x4e\xbc\xc7\x2c\xf3\x1e\x6a\x70\x3b\x28\x3b\xf7\xba\x13\x2f\xe5\x37\xe4\x59\x1a\x17\xb5\x9d\x82\x57\x6c\x98\xe4\xb3\xef\x6e\x6f\x27\xaf\x98\x59\xb9\x49\xd9\x16\x42\x85\x2b\xbb\xb4\x30\x89\xe9\xa0\xb2\x73\x54\xf6\x42\xe6\x95\x38\x1b\x3a\xce\x82\x7a\x04\x68\xb5\x85\x60\x85\x9d\xe8\x51\xaf\x98\x8a\xc7\x1d\x5e\x4d\x4e\xc9\x3f\x64\x0b\x56\x17\x9d\x56\x4b\xf2\x40\x91\xc1\x40\xb3\x3c\x85\xf2\xcc\x8a\xf1\xcc\xaa\x2c\xbb\xe0\xbe\x63\xb4\xc4\xf2\x08\xe0\xca\xd9\xf9\x46\x8d\x64\x1a\x6c\xda\x2e\x5a\x6d\x64\x4d\x16\xae\xab\x38\x86\x5d\x0d\x39\x2c\xae\x06\x9b\x12\x63\x3d\x9a\x28\xd6\xe0\x85\xc9\xfd\xcd\x57\x71\x1d\x5a\x53\x41\x38\xce\x51\xa5\x21\x4a\x8a\x78\xa8\x9c\xad\x0f\x2e\x4b\x2e\x70\x80\x92\x5d\x60\xdd\x33\x48\xc1\x4e\x32\x50\xd1\x4e\x92\x5f\xb8\xd3\xbf\x24\x3f\xe8\x38\x4c\x09\x50\x32\x48\x19\x50\x32\x78\x75\x47\xe2\x42\x6b\x6e\x71\x21\xe0\xc6\x0a\x9a\xcb\x42\x48\xbc\xf3\x38\xd4\xde\xa0\x42\x0a\x5e\x60\xf8\x82\xb4\x8d\x14\x44\xb6\xa6\x69\x0d\x78\x83\x0a\xaa\xd9\xf8\x9e\x2a\x6e\x15\x2a\xd6\x50\x0e\xc8\x27\x61\x77\xbb\x91\x12\x5c\x25\x21\xc8\x8c\x12\xe7\x8b\x39\x90\x29\x63\x1f\x58\x6c\x03\xcf\xf0\xda\xe4\xe4\xaf\x68\xb2\xd7\x6e\x18\x82\x65\xab\x16\xc3\xdd\xe9\xa8\x59\x00\x92\x0f\x62\x57\x1e\x08\x0a\x8a\xd3\xde\x19\xf6\x20\xd1\x66\xd0\x2b\x6c\xa6\x4a\x80\xf8\xba\x54\x2b\x97\x60\x2b\xe1\xfa\x18\x0e\x84\x2d\xf9\xfc\x77\xea\xb8\xe4\xf1\x94\x11\x2a\xc8\xd5\xf9\xf5\xf9\x2f\x37\x3f\x5c\xfc\x72\x7d\xfe\xe6\x32\xe7\xd5\xd9\xe5\xca\x86\x2c\x58\x36\x58\xc9\xb2\xcf\x54\xd0\xd1\x3e\xba\x58\xb0\xfd\x81\x95\xdc\x80\x34\x31\x09\x99\xbb\x03\x44\xa5\x74\xf2\x58\xe9\xc8\x8a\xdf\xd4\x2a\x9e\x9d\x6a\x1c\x87\x22\x78\xc9\x2a\xba\xbc\x61\x85\x14\xe5\xce\xd1\xd8\xd7\x41\xd9\x68\x14\x28\x54\x10\x62\x2b\x0c\x59\xbe\x66\x97\xab\x7b\xe4\xf1\x00\x31\x84\x01\xfb\x97\x1c\xa5\x26\xfb\x17\xa9\x26\x7b\xe3\x21\x6f\x98\xe2\x80\x00\xda\x87\x55\xf3\x9d\x7c\x70\xc5\xc0\x8e\xb9\xf0\x2b\xe7\x24\xf2\xd2\x74\x11\x92\x7c\xf6\x34\x23\xc9\x8b\xe7\xbe\x91\xaf\x2f\xf4\xe1\x90\x3d\x7b\x1d\xfc\x72\x32\x7e\x3c\xfa\xd5\xc1\x94\xfa\x11\xb0\x1c\xbc\x10\x59\x51\xe3\x2f\x4e\x43\x5e\xda\x0b\x90\x27\xa8\x22\x2a\x4a\x0f\x31\xfb\xfa\xd6\x89\x29\x9a\x1b\x59\xdc\x0d\xe4\x73\xbd\xbd\x98\xe0\xdb\x3e\x1a\x2c\xbb\xbd\x98\x1c\x62\x65\xfb\xe5\x78\x3d\xc2\x54\x2e\x5a\x7d\xb3\xb5\x13\xf5\xe8\x70\xe3\xea\x1e\x6f\xfc\xa8\x7e\xd5\x93\xc3\x8d\xeb\x3d\xcf\xe1\xc6\xb5\xc5\xe3\xab\xcf\x72\x29\x5e\x29\x5a\xb0\xc9\x3e\x19\x70\x5e\x81\x90\xd2\xd5\x64\x27\x9d\x1d\x17\xd4\x85\x60\xac\x44\xfd\xe1\x0b\xe9\x92\xb9\xed\x09\x42\xa2\xc1\x8f\xd8\x81\x89\x5b\x95\x61\xea\xdd\x2e\xdc\xab\x9d\x99\xeb\xa3\xcc\x9b\xa4\xeb\xee\x27\x4d\x20\x40\xf7\x95\x42\xdc\x76\xb2\xc2\xdb\xfb\x88\x66\x22\xdd\xa5\x4e\xe3\x19\x24\x9a\xcf\xed\x70\xf9\xfa\xcd\x48\x9c\xe5\xcb\xed\x75\x82\xd8\x56\x67\x52\x15\x7c\x5a\x2d\xc9\x82\x56\xf6\xc2\x04\x65\x80\x29\xb9\x83\xf2\xb5\xf0\x9a\xf4\x81\xba\x61\x2e\x3f\x13\xad\x9a\x4a\x8a\x39\x0c\x06\x75\x79\x18\x8f\x0d\x2b\x6c\x9b\x45\xc5\xa8\x68\x1b\x94\xd3\xda\x48\x4b\xd9\x0e\x90\x8a\xe1\x23\xdf\xc1\xa6\x12\xdc\x51\x8e\x60\xb1\xb6\x0f\xae\xf9\x7e\x42\x2d\x79\x6b\x16\x4c\x3d\x70\xcd\x46\xe9\xe5\x6a\x89\x77\xfd\xae\x94\x8e\xc3\xcf\x02\x6d\x8a\xcb\x16\xb4\xcb\x02\xd2\x57\x93\xdb\xfa\x01\xde\xeb\x55\xab\x90\x62\x2c\xd8\x1c\xc9\x19\x9c\x42\x43\x60\x27\xb6\x8f\x30\xc2\x90\x61\xa0\x8d\x6c\x7a\xb5\x7a\xef\x39\x4d\x96\x04\x88\x20\xba\x15\x45\x8e\x85\x24\xb2\xb1\x47\x57\x2b\xb8\x59\x42\x54\xcf\x97\x89\xce\xc8\xb1\xba\x75\x38\x07\x4a\xa6\xcc\x50\xe7\x07\xb7\x9b\x20\xf0\xa0\x03\xc5\xb9\xdd\x7b\x90\x18\x70\xbb\x71\x01\x04\x6a\xf4\x39\x35\x19\x5a\x62\x83\x45\x8f\xf3\xf9\xe1\x65\xc7\xb5\x8b\xd9\x65\x72\x2f\xef\x07\x9b\xa1\xdd\xd1\xb2\x35\x7b\x72\x8e\xbc\xcf\x7d\x84\xb4\x16\xd1\x45\x91\xd7\x4c\x13\xd9\x0e\x54\x63\xe2\x85\x6b\x6e\xc8\x5b\xde\xc1\xf7\xb4\xf1\xd1\xa6\xe4\x49\x95\x86\x87\x58\x62\xef\x21\xec\x77\xb9\xb7\x11\x67\xe5\xb4\x9d\xcd\x98\x82\x93\x0e\x04\x5e\x43\xdf\x87\xda\x5d\xfe\x0c\x4b\x73\xe0\x3a\xc4\x17\x33\x23\xa8\x17\xe0\x08\x24\xde\xd3\xa4\x23\xd6\x84\xd2\xbc\x8a\x69\xe0\x7f\x17\xe4\xf2\xed\xb7\x69\x4b\x74\x88\x6a\x02\x79\x69\xaa\xd0\xcf\xb7\x22\x0d\x94\x38\xec\x7a\xd8\xc4\xf4\xe2\x96\x45\x51\x49\xed\x52\xa2\x61\x5e\x8a\x05\x15\x82\x79\x87\x14\x37\xe0\xcd\x9e\x32\x26\x88\x6c\x18\xa2\xf2\x92\x84\xa1\x44\x73\x31\xaf\x18\xa1\xc6\xd0\x62\x71\x6a\xa5\x13\x7e\x2d\x74\xb9\xc7\xee\x13\x6d\x14\xa3\x35\xae\x09\xc5\x6a\xca\xb1\x79\x42\x0b\x25\xb5\x26\x75\x5b\x19\xde\x84\x97\xa5\x79\x12\x19\xb0\x40\x68\x4c\x45\xf5\x73\x05\xd9\x25\x5d\x92\xf3\xa8\x93\xd0\x75\x5f\xc6\x05\x8a\xc0\x7d\x36\xb2\xdf\xb2\xba\x31\xcb\x90\x8c\x98\x76\x07\x9a\x71\xa5\x0d\x29\x2a\xce\x84\x71\x3d\x43\x9a\x41\x90\x61\xe4\xcd\x69\xe1\x46\x44\xbb\x21\x11\x25\x5c\xbe\x1b\xa3\x31\xe7\x2e\x08\xe1\x5f\x55\x72\xed\x7c\x1d\x3a\x2d\xe3\x8f\xfa\x6a\x34\xb8\x70\xfc\x88\xc0\xd2\xf1\x06\x0e\x4a\xe4\x3e\x8a\x44\x88\x6a\x6b\x77\xf9\x92\x79\x7a\x05\x4a\xc6\xf8\x7d\x3d\xea\xf1\x0c\x74\x77\x0b\xc8\x88\x59\xd3\x3a\xb0\xa0\x04\xbb\xb7\xfb\x80\x15\xcc\x9a\xa2\x74\x40\x25\xf3\xe4\x3a\x26\xb2\xe5\xde\x30\xad\xe9\x9c\x4d\x12\x21\x09\x43\x28\x9c\xce\xd1\x06\x58\x86\x6e\xd9\x2c\x18\x92\x5b\x19\x19\x7d\x12\xe7\x7a\xc5\x97\xc7\x1a\x3b\x92\x24\x81\xbf\x34\x3d\x28\x6e\x0c\x83\x55\x0a\xd5\x9b\x00\x84\xb6\x4a\xd8\xd9\xcf\x31\x4b\x6a\xcf\x0d\x7a\xdc\x9e\x35\x3f\x44\x89\xd9\x5a\x53\x46\xa6\x8a\xb3\x19\x99\x71\x48\x1f\x83\xc4\xaa\x11\x56\x1e\xa0\xe8\x42\xd6\x9a\x29\xe8\xb6\x73\x0b\xf8\xee\xa7\xc9\xf3\x77\xd7\x7f\xa3\x5a\x51\xd0\xa8\x2c\x27\xf0\x89\xf1\x19\x99\x43\x32\x97\xbb\x04\xff\xfb\xf3\xff\xf8\x13\x99\x2e\xad\xbd\x06\x17\x31\x23\x0d\xad\xbc\x00\xa4\x62\x62\x6e\x67\x11\x54\x6e\x9a\xde\xe8\x71\x52\x85\xc9\xa9\x78\xcd\x0d\x0e\xd0\x8b\xdf\xdf\x4d\xb3\xb6\x1e\xe8\xc7\xb3\x92\xdd\x9f\x45\x4b\x68\x5c\xc9\x79\xda\x5b\x2f\x86\xc8\x20\xce\xf2\xb3\x6d\xd8\xd1\xb2\xe2\xc5\x72\x57\x7b\xda\x17\x2c\x21\x0b\xf9\x80\xce\x9c\xf5\xad\x1a\xd1\xbb\x34\xb2\x69\x2b\x18\x38\xf2\x6d\xe0\xe4\x6b\x35\x5b\xa5\x3b\xca\x75\x12\x46\xda\x0e\x02\xa9\xae\xd9\x95\x33\xc7\x65\x32\x7a\x31\xa5\x23\x9b\x70\x71\xb7\x50\x7b\x24\xd9\x1b\xf7\x2d\xad\xaa\x29\x2d\xee\x6e\xe5\x6b\x39\xd7\x6f\xc5\xa5\x52\x52\xf5\xfb\x5c\x51\x7b\xa6\x2f\x5a\x71\x07\x95\x73\x3b\x02\x5a\x39\x77\xb8\x42\xcf\x19\x10\xf5\x2e\x49\x18\xdf\x4b\xa4\x04\xf5\x26\x89\xf7\xc1\x75\x2d\xb3\x47\xde\x39\xda\x04\x61\x56\xe6\xd4\xa4\x7b\xd6\xeb\x87\x8e\xb7\xf6\xef\x9f\xff\xfb\x9f\x51\xb9\x10\xa9\xc8\x9f\x9f\x43\xe6\xb1\x1e\xe1\x01\x00\x27\xb0\x35\xb5\x6a\x5a\x55\xa9\x51\x82\x58\x05\x7c\x9b\x5c\x90\x7a\x0f\xb6\xbc\xd9\xd9\xee\xfe\xe4\x2b\xe3\xed\xed\x3f\xe0\xbe\xc8\x8d\x66\xd5\x6c\x84\x0c\x2f\xc1\xad\x75\x04\xd6\xd5\x91\x3b\xf2\xd2\xd9\x81\x76\x7f\x69\xbb\x97\x55\x5b\xb3\x97\xec\x9e\x17\x69\x01\xcc\xde\xac\xf4\xde\xe6\xdd\xf4\x15\xd7\x40\xfc\x33\xad\x64\x71\x47\x4a\xf7\x65\x04\x97\x5f\xad\xa4\x9d\x3e\x0a\xa9\x89\x03\x19\x09\x03\xef\xed\x7f\x2f\x55\xa0\xa6\x4d\x13\x58\x49\x14\x7d\xe8\x0d\x06\xa8\x26\x60\x44\xcd\x0c\x23\x66\x07\xd3\x73\x43\xe9\x63\xd7\x23\x7b\x4c\x25\xbf\x22\x39\xbf\x20\x3f\x12\xdf\x49\x9f\x1e\xc7\xec\x2d\x88\xee\x85\x7e\x37\x34\xf0\xdf\x48\xbb\xb0\xc6\x86\x15\x68\x86\xc2\xc2\x40\x0b\xd2\x2e\x1f\x38\x65\xd2\xdd\x97\x03\x04\x43\xf3\xf2\x24\x7a\xe3\x22\x42\x10\xba\xa6\xc6\xdd\x8f\x7c\x94\x9d\x92\x86\x29\xcd\xb5\x35\x9d\x7e\x80\x0d\x75\x51\x51\x5e\x47\xe1\xbb\x5d\x0d\xc2\x3a\xaa\xbe\xa6\xcd\xf8\x8e\x2d\x13\x17\x5c\xe6\x76\x79\x1f\xc8\xbf\xa6\x4d\xe2\x39\x00\xe5\x6a\xf3\x8f\x81\xc4\xc3\x79\x22\x4b\x27\x07\x1c\x0f\x58\x86\xf8\xb3\x5c\x63\x07\xb4\x81\x76\x7d\xe4\xfc\xd0\x4d\x5c\xff\xc4\xb1\x9f\x84\x23\x07\x7f\xf5\x35\x1d\x34\xd0\xbf\x2f\xf5\x9c\x09\xc2\x0f\xa4\x4e\xb3\x90\x4e\x70\x3a\xb9\x95\xd1\x3f\x8e\x7a\x0e\x2d\xdc\x99\xd1\xd5\xd7\x39\x9a\x4e\xb1\x10\x40\x86\x00\x76\x2b\xba\x46\xc9\xd1\x37\x47\x3b\x3d\xe3\x70\x66\x94\x6c\xe8\x1c\x6e\xa6\xfb\x30\x41\xab\x32\xc5\xbc\xb3\x0b\xf9\x80\xdf\x23\xba\xa4\x71\xbf\x62\x65\x47\x5e\xbe\x90\x59\xb3\x83\xc8\x41\xbf\x22\xdc\xed\x1a\xf9\x09\x1f\xe8\x92\x50\x25\x5b\x91\x95\x0a\x0d\x81\x91\x10\x38\x7b\xb3\xd2\xd9\x6b\x29\x98\x0f\xd2\xe7\xb4\x72\xdb\xf1\x96\x73\x8d\x78\x05\x2e\xc8\x8b\xd3\x17\xcf\xb3\x65\x7f\xc7\x8a\x56\x69\x7e\xcf\xde\xb9\xba\xe6\x51\x50\xe5\x6a\x36\x91\x5a\xf3\x69\x05\xc9\x5b\x46\x92\x4b\x2c\xfa\xbe\xde\xd1\x00\x1c\x81\x1e\x4b\x15\x33\x94\x66\x48\x78\x8c\x3b\x38\x06\x7c\xda\x06\x32\x50\x1f\xfb\x65\x49\xc2\xbc\xae\x58\x92\xd7\xc1\x92\xc4\x73\x6f\xa7\x7d\xf5\xc5\xee\xf7\x41\x93\xbc\x71\xb1\x81\xae\x9a\x3d\xf7\xd5\x92\xe1\xa3\x07\xc5\x8d\xdb\xdc\x0f\x5c\x33\x72\x0c\x5e\x89\x95\xc5\x98\x45\xca\x1c\xfb\xb0\x32\xab\xde\x0f\x41\xaa\xac\x56\xb7\xee\x3e\xcc\xd2\xba\x3e\xe9\x50\xf8\x0f\xce\x81\xd5\xcd\xa0\xd3\xfe\xdd\xb9\xbc\xa0\xa2\xac\xb2\x74\x46\x18\x95\x6a\x99\x45\x86\x73\x35\x23\xb1\x4a\x74\xf1\xcb\xa8\x82\xc4\x82\x6a\x22\x24\xa9\x19\x05\x80\xa6\x3d\x5d\xbc\x16\xec\xf1\x33\x0f\x27\x03\x2e\x76\x3c\xc6\xe2\x03\xc1\xa9\xeb\x97\x5c\x3b\xf5\x6c\xf5\x88\xbb\x81\x20\xac\xa3\xa6\x65\x4e\x7a\x77\x34\xa6\xdd\xe4\x9d\x76\xa0\xc9\x55\x49\xba\x83\x63\x45\x96\xcf\x21\xc7\xc8\x95\x1d\xb7\xcd\xb7\x80\x13\xdc\xe0\x96\xeb\x40\x32\x59\xd1\x6c\x7c\x56\xbb\x1b\x8e\xc5\xb5\xbe\x6e\x96\x38\x08\x9c\x21\xc3\xc7\xbb\x3a\x8a\x74\xa1\xc7\x88\x62\x48\xdd\xd5\x3d\x71\x59\x8f\x79\xec\xdd\x3e\x28\x11\xdc\x3d\x73\x26\x98\xa2\x2e\xae\xe0\x21\xa2\x8e\x80\x85\x6a\x29\x72\x37\xc4\x47\x16\x9c\xd5\xf7\x1f\x37\x53\xf0\xcf\x32\x04\x01\x3b\xe7\x58\xaa\x95\xdd\xee\x22\x26\x9b\x2c\x96\x21\x7b\xbd\xc2\xcd\x85\x8b\x3f\xa2\xfe\xb4\x93\xf2\xcf\x96\xdf\xd3\x8a\x21\x6f\xbd\x57\x0d\x3b\x35\x26\x74\x3b\xdd\xd7\x6b\xa3\xbb\x1f\xc2\xb5\x63\x33\xe8\xe1\xbd\x37\xc8\x81\xec\x89\x67\xcf\xc8\x31\xb6\x71\x84\x5c\xbb\xbb\x35\x72\xdd\x5c\x5d\x3e\x36\x19\xd5\x5a\x87\x9b\xaf\xcb\xc7\x86\x02\x4e\xa3\xd9\x8b\x89\xfb\x2f\xb6\xa0\xf7\x0c\xa8\x8d\x79\x45\x55\x05\xa0\xf4\x1b\x1c\x32\x32\x6d\x0d\x61\xe2\x9e\x2b\x29\x6a\xbb\xfd\x80\x80\xc6\x6a\x26\xc5\x80\x00\xbe\x60\x9a\xfc\xf6\xf8\x87\xf3\x77\x90\xb4\x74\xe2\x18\xf2\x5d\xff\x5a\x0d\x1c\x01\x2b\x7d\x88\x5e\xb7\x8f\xeb\x8d\xf8\xbe\xdb\xe5\x02\xf6\x89\x1f\x0b\xdb\xb7\xba\x35\x2d\xad\x80\x01\xba\xa8\x5a\x7b\x16\xee\x6c\x65\x0f\xef\x03\xcf\xf1\xe4\x0d\xe9\x02\x77\xfc\xdf\x2f\x79\xd2\x76\x1d\x62\xa3\x5e\x44\xeb\x75\x8d\x8d\x3c\xb9\xae\xc3\x06\x16\xca\x35\x43\xe7\x48\x07\x66\xca\x38\x0f\xc7\x9d\xc5\x69\xf0\x0c\x28\x97\x80\x09\xe0\xbe\x0e\xe9\x9a\x87\x11\xea\xb2\xec\xdc\x87\x9f\xb0\x19\x86\xdb\x06\x09\x8e\xe8\x61\x56\xbd\x90\x25\xdb\xbe\x92\x50\xde\x3a\xbf\x76\x6d\x46\x89\x4f\x5c\xb8\x53\x07\xcb\xe5\x42\x11\x12\xcc\xf1\xd3\xc5\x82\x95\x6d\x82\xc9\x75\x35\x43\x30\xd0\xa8\xf7\x3a\x4a\x0a\x2a\x4a\x6e\xd7\x0a\xa6\x02\xe0\xeb\xed\x26\x73\xf6\xbf\x6f\x50\xc5\x75\x4a\xc3\x87\xd7\x09\xec\x6b\x00\xb1\x5e\x33\xb7\x47\x71\xa5\x5e\x47\x9a\x00\x26\x69\xc9\xc8\x94\x15\xb2\x66\x80\x1d\x6e\xa4\x40\x7b\xdc\xd3\x2a\x84\x04\x12\x8c\x1c\x63\xd7\xb6\x15\x29\x72\x84\xba\x03\xdd\x6f\x23\x1d\x28\xf7\x15\xa0\xc5\xec\x5c\x73\xd5\x35\x6f\xc7\x11\x61\x1b\x61\x66\x88\x14\x84\x76\x85\x3a\x6d\x0f\xb6\x95\xe7\x53\x92\x69\xba\xa9\x1a\xb3\x7b\x0e\x2c\x04\x67\x54\x6b\x3e\x17\xe3\x46\x96\x63\xdb\xec\xd9\x6f\xec\xff\x6e\xbd\x95\x12\x15\x80\x6d\xeb\x86\x55\xa0\x99\x9f\x7a\xff\xf8\x76\x71\x4d\x6b\xff\x2f\xdc\x44\xfe\x76\x06\xf9\x05\x2b\x13\x37\xe3\x06\xe7\x2b\x65\x9a\x6e\x36\xb4\x83\x1e\x57\x7c\xdf\x91\x26\x15\x9d\xb2\x4a\x7f\x6c\xb9\x00\xc6\x21\x45\x82\x2d\x13\xb0\xfc\xb1\x43\x37\xae\x96\x84\x45\x92\x10\xee\xf4\xd5\xe7\x68\x35\x49\x8e\x19\x0e\x73\x44\xd9\xd3\x29\x91\x02\x50\x6e\x29\x72\xde\x0a\xbf\xe9\xd1\x3c\xbf\xbd\x59\x03\xc9\xe8\x08\x08\xb2\xf5\x22\x96\xb5\xcb\xff\x16\x65\x64\x85\x80\x36\xc4\x00\x9a\x62\x76\xa4\x21\x4b\x9a\x77\x44\xde\x90\x17\xba\xfd\x21\xe4\x7a\xb0\xea\x69\x81\xa2\xb8\x78\x06\xcc\x64\x55\xc9\x07\xe0\xc0\x41\x19\x22\xf7\xe7\xf6\x5c\x2e\x63\xbd\x52\x75\xae\x5f\xdb\x79\xb8\x1e\xb8\xf7\x8e\x86\x96\x1f\x13\x76\xa1\xea\xe7\xd5\xcb\xf4\x3f\xbe\x9a\x5c\xa4\xff\xf1\xf7\x9a\xa9\x6d\xbd\x8a\xee\xcf\x57\x87\x9f\x36\xcd\xb9\xaa\xa5\x9a\x60\xe1\xef\x61\x5e\xaa\xd9\x6b\xbb\x7e\xfc\x9c\x0e\xf4\x4e\xa8\x2c\x3f\xa8\x9c\x33\xfd\x4a\xc9\x76\xdb\x6b\xd8\x87\x5f\x76\xb1\xa0\xc2\x27\x08\x0c\xd4\xf3\xa5\x2e\x4c\x95\x3a\x8c\x0b\xaa\x98\x2b\x28\x6a\xad\x43\xdd\xd0\x62\xa0\xd1\x0b\xb5\x3e\x07\x7c\xdd\x80\xf3\xa1\xdb\xa6\xa9\x58\xcd\x84\xa1\x15\xbc\x76\xa8\x85\xb8\xf6\xde\x9c\xc9\xee\xce\x8c\x1f\xff\xed\xe7\xcf\xb3\x3b\x3f\xdc\xc4\x10\x7b\xf5\x63\x2d\xe4\xef\xdc\x0f\xb7\x50\xd0\x86\x4e\x79\xc5\xad\xed\xf2\x39\xde\xef\xe3\xe3\xef\xa4\x34\xdf\x06\x5c\xdf\xe7\x68\xa9\x51\xfc\x9e\x57\x6c\xbe\x75\x6c\xf4\xd3\x96\x93\x3d\x09\x27\xbe\x89\x4b\x5d\xd0\x2a\x25\xb7\xe5\x13\x7b\x22\x0b\x08\xcc\x7c\x96\x09\xc9\x53\x3d\x9f\xf0\xf2\xed\x15\x51\xb2\x05\x9e\x0a\x34\x4c\xf0\xca\xa4\xc3\x02\xd3\xe0\x30\xf9\x1e\xc7\xf7\x95\x84\x77\xb5\x49\xc5\x9c\xf4\xea\x11\xb6\x4a\x31\x61\xaa\x65\x14\x38\x05\x62\x0d\xb4\x9c\xc1\xaa\x05\xc3\xda\x59\x87\x29\xfe\xb8\xf3\x70\x61\x72\x9c\x1d\x35\x5d\x5a\x73\x32\xf2\xc7\xcc\x5a\x20\x8b\x01\x0b\x1e\xcb\xc4\x02\x5e\x2a\x89\x79\x6c\x43\xa9\x20\xd9\x30\xd1\x2d\xe1\x33\xe7\x1f\x1d\xdb\xa5\xdd\x2b\x1e\x84\xd7\xcb\xd3\xba\xfc\x4d\x53\x51\x33\x93\xaa\x1e\x7b\x37\xc8\xb8\x77\xf5\x4c\x10\xeb\x02\xf2\xd8\x03\xa6\x03\x79\x9b\xb0\xa4\xba\x28\x2b\x16\x5d\x2b\xc3\x04\x88\x12\x83\x97\xa4\x15\x8a\x15\x72\x2e\x80\xcd\xdf\x7d\x0b\x17\xa6\xe0\xf5\xa1\xda\x5e\xe9\x88\x68\xab\x6a\x6b\xd9\x12\x2f\xa3\xf2\x9e\xa9\x05\xa3\x5b\xee\xc2\xbc\x05\xfe\xd6\xb5\x49\x14\x6b\x14\xd3\x30\xa0\x18\x42\xd7\xb2\x55\x05\x0b\x42\x11\xaa\xb5\x2c\x80\x99\x18\x93\x04\x3d\x5f\x18\x85\xab\xe2\x4c\x2a\x42\xc9\x9c\xdf\x33\x41\xde\xe1\x6a\xb8\xa8\xe8\xf6\x3c\x59\x91\xdf\xcd\xbb\xd8\x69\x6b\x64\x48\x20\x25\xd4\x10\x5a\xd6\x1c\x58\x1a\x90\x79\xc0\xb9\x25\xe3\x56\xa3\x9f\xd8\x55\xaa\x24\xa4\x13\x92\xab\x6d\x13\x4c\x3f\xe9\xbd\x90\x55\xe9\x81\x00\x61\xb8\xe0\x8a\xe7\x01\x10\xa1\xe0\x39\x29\x20\x76\xee\x4b\xc4\x24\x0c\xcf\xa7\x08\xe4\x08\x32\xec\x31\xb0\xa9\x51\xe7\x9c\x5a\xd0\x7b\x84\x4b\x74\x53\x5c\x59\x33\x63\x5b\x33\xd2\x5e\xfb\x01\x40\x14\xcb\x85\x89\x83\x3e\xa2\x01\xa4\xb2\xe0\x1a\xeb\xc2\x1b\x13\x59\xde\x34\xac\x18\x75\x4b\xd0\x4f\xb8\x67\xda\xf0\x24\x60\x5b\xca\x13\x69\x41\x74\x89\x28\xf4\x12\x97\x76\xb5\xc6\x42\xc6\xb8\x15\x6e\x7a\xb4\x22\x70\x31\xef\xf4\x05\x82\x1d\xfe\x87\xa9\xad\x53\x8b\x36\xb8\xe3\xe6\xdc\x9c\xde\xfd\x19\x7c\x71\x4c\x2c\xa8\x28\xc0\x92\xd7\x67\x77\xac\xd1\x67\x9a\xcf\xd1\xf5\xf6\xa7\x3f\xff\x19\xfc\x70\x7e\x72\xce\xde\x5d\x9e\xbf\x7c\x73\x79\x5a\x6f\x67\x96\xed\xd4\x29\xd7\x50\x63\x98\x12\xdf\x90\xff\x3e\xfe\xe9\x77\xbf\x8e\x4f\xfe\x7a\x7c\xfc\xe3\xf3\xf1\x7f\xfc\xfc\xbb\xe3\x9f\x4e\xe1\x3f\xfe\xed\xe4\xaf\x27\xbf\xfa\x7f\xfc\xee\xe4\xe4\xf8\xf8\xc7\xbf\xbd\x79\x75\x3b\xb9\xfc\x99\x9f\xfc\xfa\xa3\x68\xeb\x3b\xfc\xd7\xaf\xc7\x3f\xb2\xcb\x9f\x3f\xf1\x25\x27\x27\x7f\xfd\xed\x96\x82\x26\x92\x72\xe6\x12\x71\x66\x91\x6f\x0e\x48\xb8\xd9\x28\xc6\x6a\x38\x41\x52\x58\x05\xf2\x0e\xa0\xc9\x4a\xdb\xde\xd2\x72\xff\xb2\xe7\x8a\x17\x4f\xcc\xed\x51\xa3\xf1\xf8\xa9\xe4\x03\x30\xbb\x70\x69\x0d\xe7\xed\x23\x4e\x60\xc6\x5d\xb3\x7b\xa6\x46\x5e\x86\xd7\xf6\x95\x93\xc4\x37\xc6\x90\x87\x4d\xef\x4b\xa4\xce\x4b\x5c\x20\x7e\x5c\x9e\x72\x26\x6f\x81\xa9\xce\xf5\x16\x14\xf7\x29\xf9\x81\x2a\x2e\x5b\xed\x2c\x64\x62\x2f\xe1\x52\x80\x91\x81\x4c\x08\xe1\xb0\x87\xc0\x0b\xa6\x4d\x6c\xab\x64\x7c\x93\x81\x7a\xb8\x74\x34\x52\x61\xe8\xcf\xc3\x21\x79\xb1\xf9\xd4\xe6\xdb\x5e\x11\x1b\xc5\xee\x7d\x37\x94\xe7\x12\x62\x06\xeb\x6e\x84\x5e\xe1\x8d\x60\xe3\x11\xed\x0d\x9a\x6d\x9d\x05\xd1\x90\x41\xa3\xbe\x8f\x70\xa0\xa5\xc4\x5e\xa1\x42\x13\x9f\x7b\x46\x30\x98\x37\xf4\xba\x47\x9f\xa6\x6d\xb3\x74\xe5\x98\x4a\xb7\xd7\xac\x8e\xc6\x53\xae\xff\xab\x59\x0f\x2a\x19\x42\xf7\x1d\xb5\x6b\x18\x46\xf2\x0c\x37\x04\x1c\xf5\xe3\x42\x71\xc3\x0b\x5a\x3d\x4b\x40\xc8\xfa\x17\x15\x55\x6b\x2f\x5c\xf1\xbb\x14\x23\xe6\x41\xa2\x4c\xb4\x22\x77\x6c\xf9\x20\x55\xe9\xad\xbf\x18\x30\xbb\x6d\x2c\xda\x2e\x0c\x6d\x7c\x77\x00\x70\x6f\x55\x32\x86\x6a\x54\xcd\x14\x99\x32\x8f\x2e\x5b\xf9\xf1\xf2\x94\x9c\x8b\x25\x1a\x5e\x09\xf7\xff\x10\x39\x89\xaa\xc1\x82\x75\x8b\x37\x91\xde\x6e\x70\x56\x8f\x97\x8d\x9a\xa4\xca\x70\x9b\xa1\x41\xf6\xca\x13\x14\x8f\xb7\x5b\x3d\x36\x48\x2a\x47\x5b\x0b\x0a\x49\x21\xc9\xef\xb6\x18\x60\xf7\xb2\x27\x39\x2d\xac\xd5\xcf\x05\xd3\xfa\x95\x5d\xb0\xbb\xdb\x33\x14\x0c\x70\x27\x0b\x10\xdd\x76\xf4\x50\xcc\x6a\x26\x4c\xd9\xb3\x26\x81\x2c\xbb\x5f\x6e\x3b\xa5\xe7\x1e\xeb\x02\xb7\x1d\xa4\xa0\xb6\x4d\x73\xa3\xe3\x00\x2a\x06\x3a\xed\x2f\xce\xaf\xb7\x0d\xb3\x39\x8e\x2b\x34\xa1\x75\xd7\xc7\xae\x44\x68\xbf\x97\x70\x17\x73\xbc\x44\xec\x9f\x2d\xad\x00\x39\x79\xab\x5a\xb6\x6d\x69\xe1\xa4\x0b\x07\x33\x0f\x52\xdd\x9d\xfd\xf1\xcf\xcf\xe1\xce\x11\xa4\x1b\xcf\xb7\x3e\xa2\x52\xf3\xbd\x93\x32\xbd\x57\xaa\x9f\x97\xef\xe2\x85\xec\xe7\xd2\x3b\x34\x1c\x26\x16\xca\x12\xc0\x0a\x08\x13\x94\x84\x35\x48\xca\xeb\x4e\xcf\xe8\x1e\x77\xe2\xde\x2e\x9b\xed\x8d\xa4\xf4\x64\xec\x5e\xbb\xd9\xa0\xcf\x8b\xf8\x6d\x38\x2b\x1a\xa7\x24\xb4\x13\x41\x17\x8e\x74\xf4\x31\x50\xe4\x80\x36\x07\x48\x0d\x9c\x30\xcb\x26\x83\x0e\x68\x10\x44\x63\x22\x5e\xc4\x3b\xd8\x80\xb5\xe3\x49\x75\xee\xbb\x5e\xcb\xee\x24\xf5\x66\xc1\xca\x97\xa1\x02\x86\xe3\x7c\xda\xd6\x3c\x41\x16\x50\x28\x54\x19\xaa\x9e\x39\xe7\x0f\x00\xb3\x2a\x7b\x8d\x2b\x91\xcd\x94\x2a\x83\x06\xb3\x1f\x9a\x6d\x6d\xe3\x8e\x07\xa6\x64\x84\xde\x53\x5e\x01\x1a\x1e\x5c\x49\x52\xf7\xc0\x31\xd8\xd9\x42\x0a\xdd\xd6\x20\xd1\xb6\xa1\xb4\xe9\xd2\x59\x13\x29\xfe\x4d\x8e\x24\x8f\x55\xb3\xf8\x30\x1d\xfc\xf6\xa6\xd9\xcb\xa5\xa0\x35\x2f\xfc\x2c\x9e\xe3\xb4\x01\x91\x64\x8f\x3e\x3e\xdd\x2b\x6b\xc5\xaf\xeb\xd6\xd8\xa1\x4d\x31\x4e\x76\x71\x32\x24\x84\x7d\xe0\x30\x89\xb6\x42\x9c\x53\xc1\x1e\x69\x61\xaa\x25\x44\x54\x7a\x3f\x1a\x11\xc6\x21\xef\x14\xe1\xe8\xd5\xf6\x8c\x27\x52\xb9\x95\x85\xf6\x6c\xef\xed\xb7\xac\x6e\x80\xcd\xd0\x19\xf0\x1a\x69\x7f\x4d\xab\x84\x27\x32\x5d\xf9\x8b\xad\x9b\x8f\x40\x89\x09\x79\x64\x57\x86\xd0\xb2\xd4\x84\x86\x62\x4a\xdc\xa0\xe1\xdd\x0a\xfe\xcf\x96\x55\x4b\xc2\x4b\x26\x4c\x07\x5c\xeb\x0f\xb1\xe3\x7b\x72\xfa\x61\x7b\xb5\x7e\xd1\xed\x6f\x34\xf7\x19\x2b\x7d\x05\x22\xe7\x4f\x7e\xcf\x9c\xa2\xfb\x17\xae\x09\xd6\x56\x4f\xb8\x26\xec\xc8\x26\x48\x60\x67\xc9\x31\x05\x52\x19\x09\x86\x48\xfb\x80\x30\xec\xe6\x85\x84\x24\xd2\x18\xaf\x2a\x56\x97\x52\x02\x00\x12\x9f\x8e\x33\xc1\x1e\x80\xe4\xe5\xf5\xcd\x2f\xaf\xcf\xff\xeb\xf2\xf5\x93\x33\x41\xf6\x4c\x85\xed\xbd\x1a\xf8\x0c\x31\x05\xef\x56\x05\x59\x0d\x8b\xaf\xe8\x1f\x7f\x03\x77\xf6\x9c\x4e\xa5\x12\x12\x1e\x35\x86\x25\xd4\x3d\xa2\x3f\xe9\x5d\x97\x91\xf2\x96\xb3\x0d\x5d\xb2\x47\xf1\x46\xbd\x1b\x4a\x82\x25\xb5\x8b\x71\xad\xdd\xae\x9d\xb8\x27\x7b\xb1\x86\x7a\x43\xfb\xe1\xb5\xe4\x7f\x9a\xd4\xe8\xfa\x3a\x1c\x74\x4d\x01\x4b\x76\x38\x9d\xa3\xcc\x30\xa0\x05\xc2\xe0\x2b\x25\x82\x3d\xac\x9a\x0b\x78\x92\xdb\xbf\x48\x5d\x53\x53\xd9\x8a\x12\x4f\x37\xd7\x05\xf4\x7d\xc7\x29\x3d\x25\xab\x98\xf1\x9e\xab\x3c\x03\x81\x78\x33\x1b\x98\x5e\xc1\xe7\x05\xef\x46\xc3\x1d\x0a\x9e\xf9\x3d\x14\x34\xb2\xfd\x64\x44\x68\x25\xc5\xdc\xd1\x0b\x27\x35\xdb\xa5\xfb\x87\x28\xc2\x68\x6d\xb0\xa1\x6e\x2e\x75\xc7\x04\xca\xe2\x6c\x9a\xfc\xc5\x1a\x4f\x97\x6d\x53\xb1\x42\xaa\x12\x7d\x3a\x76\xe0\xd1\x7d\x73\xda\xdb\x71\x37\xf0\x19\xd3\xc9\x0b\x6b\xa3\xdd\x0d\xe3\x2b\x24\x54\xe5\x98\x47\x3e\x32\xb8\xf8\xa0\xa5\x93\xd4\xdc\x4a\xa8\xbc\xa7\xca\x23\xf2\x07\x25\x2b\xd2\x54\x54\x30\x57\x0e\x24\x38\x60\x07\x19\xe6\x83\x5e\xff\xd8\xf3\x15\x64\x55\xba\x9a\x1f\x4f\x1f\x6e\x7e\x87\x0d\x93\xa6\x0b\x2f\xaf\xd5\x23\x08\x39\xff\x09\xa6\xa3\x0b\x2c\x9f\x43\xc5\xa2\x11\x79\x2b\xbe\x45\x26\xf9\x11\xc6\x9a\x4f\xc9\x95\x20\x5a\xd6\x8e\xf5\xfe\xd1\xe8\x11\x01\xa2\x16\x4a\x74\x3b\xd5\xcc\x60\x14\x53\x6a\xe6\x51\x69\x0e\xda\xd7\x30\x55\x73\x93\x90\xbf\x1b\x55\x00\x47\xa1\x3e\x73\x42\xd9\x87\x2a\x7a\x9d\xfd\xc6\xcd\xfb\xb8\xd9\x1e\xaf\x9e\x1a\xdb\x88\x00\x3f\x4f\x1d\x11\x7c\xb7\xd2\x76\xcf\xdd\xd9\x83\x4b\xf5\x0d\x14\xc8\xfb\x43\x8f\x3d\x99\x2b\xd9\x36\xfe\xe8\xe9\xb8\x25\xec\x81\xb7\xed\x15\x55\xda\xc1\x88\x0c\x05\x8c\x6d\xf5\x05\x09\xa7\x36\xb8\x58\x59\x67\x92\x95\xf6\x66\xa5\xf5\x68\x23\xc3\x8f\x6a\x45\x42\x5c\x0d\x41\x56\x52\x75\x69\xc8\x8c\x3c\xab\xd8\x9c\x16\xcb\x67\x7d\xa9\x36\x64\xdb\x3b\x27\x1a\xaf\x9b\x8a\x17\xdc\xa0\x74\xbe\x7c\xc1\x96\xb2\x60\x4d\x04\x70\x84\xa2\xa7\x19\x9d\x16\xda\x75\xdf\xc7\xf5\x7c\x8d\x2c\xc4\x97\x6e\x4d\x0a\x9b\x0c\x05\xfb\xe3\x9f\xff\x38\xf6\x08\x5b\xe8\xe6\x53\xec\x9b\x5e\x42\xf7\xee\x42\x82\xbd\xd5\x66\xed\x4d\xae\x1b\x58\x99\x10\xfa\xed\xe2\x6a\x41\xdc\xe1\xe2\xbb\x9b\x9b\xf4\x8b\x21\xb1\xc1\xbc\xd9\xe0\x62\xfe\xe4\x21\xda\x9b\x7e\xd3\x6e\xdf\xc9\x86\x5a\x0b\xdb\x57\x2d\x70\x87\x15\xec\x1b\x1e\x4d\xa0\x1b\x44\xa0\xf1\x8f\x98\x04\x12\x0f\x57\xbb\x34\xd6\xa5\xb1\xd3\x17\x69\x90\x30\x75\xda\xd0\xa5\xd7\xa8\xfd\x4e\x94\x10\x6a\x65\x9e\xa7\x75\x5b\xbc\x6b\xe0\x3f\x08\x2a\x90\x1a\x7b\xfd\x83\x43\xd6\x7f\x9b\xec\x47\x5d\x1d\xef\xc2\x8e\xb6\x35\x11\x1c\x32\x96\x1a\x0c\x5e\x82\xd1\xed\x30\xd0\xc8\xd5\x07\x77\x92\x5a\xde\x43\x06\xb9\xb5\x29\xac\x75\xfe\x40\x55\xb9\xe5\x99\xbf\xd3\x10\x6e\xbf\xfb\xb0\xda\x3a\xe0\x39\x1c\x9c\x13\xcc\x98\x9f\xb7\x54\x95\x10\xb3\xef\xd6\xc4\xc1\x6b\xbb\xe9\xd9\xb9\xd7\xd6\x21\xf3\x22\x05\x90\x5e\xc4\xf8\x92\x5a\x3b\xa8\xff\x26\xf4\xd2\x02\x86\x62\xe5\xee\x0f\x28\xbc\xc3\xdd\x6c\xab\xbb\xd9\x4a\x32\xda\x93\x9e\x35\xfd\xa6\xc9\x42\x56\x25\x18\xab\xe3\x8a\xdd\xb3\x2a\x88\x66\x15\xae\xe2\xd3\xd6\xb8\xa4\x9e\x42\xd6\x75\xbf\x04\x27\x62\x31\xb7\xbe\xec\x74\xb5\x0a\x63\x3c\x2f\x9c\x2e\xa7\x56\x3c\x06\x2b\x23\xee\x25\x5c\x21\xbd\x51\xe0\x8e\x41\x39\x23\xcc\x2e\xd3\x84\xe5\x97\xac\x91\xd2\x15\xc4\x4a\x86\xef\x2e\x52\xec\x56\x44\xf0\xae\xe0\x73\xf7\x31\x91\x98\x1a\x6c\xe7\xa2\xd5\x6c\x8d\x88\xb4\xcb\xdd\x4a\x0c\xf6\x5c\x4b\x00\x42\x42\x59\x99\xe0\x71\x2b\x02\x75\x96\x3d\x76\x01\x25\x06\xa9\x9b\x52\x9f\x0a\xe7\xaf\x4e\xce\xe1\xcb\x2a\x0d\x91\x53\x16\x02\x53\x0e\xb6\xfe\xc3\xbc\x62\x0e\x95\x2c\x68\x05\x7c\x15\xa9\x4b\x8c\x0c\x46\xf2\xb8\x2a\x4b\x04\xd4\xa5\xb6\x9b\xf0\x59\x25\x69\xe9\x79\x78\x98\xa7\xdc\xa2\x66\xe5\xfe\x9d\xca\x2e\x88\x40\x79\x6c\xc9\xc7\x17\x1b\xc5\xa2\x7c\xa9\x5e\xc3\x12\x58\xee\x52\x1b\x7b\xd3\x27\x7d\x77\x3d\x8b\xf3\x58\x9d\x28\x59\x0d\xf8\x24\xb7\x19\xa8\xe3\xc0\x99\x6e\x75\x25\xd7\xe4\xd9\x6b\x3f\xe8\xcf\x72\x2a\xa9\x24\xb3\x31\x9a\x44\xe0\xda\x50\x6b\x0e\xc7\x21\xac\x33\xf4\x5f\xdc\x71\x3b\x52\xb3\x4e\xc9\xf9\x25\x11\xf2\x1e\x9b\xa6\xe2\xe9\xab\xec\x07\x5a\xf1\x32\x68\x4e\xaa\x32\x4a\x09\x84\xe9\x23\xe3\x68\x93\x34\x8a\x8d\xd7\x37\x4a\x3a\xe5\xa6\xf3\xf8\x78\x87\xe5\xf8\xa3\x1c\x8c\x99\x0b\x97\x90\xef\x05\xec\x39\xc1\x4a\x6b\x6d\xc9\x6e\x2a\x98\x98\x49\x85\xce\x98\x27\x5f\xb0\x8e\xc4\x65\x17\xc7\xf0\x79\x48\x16\x88\x19\x46\xd0\x05\x89\x0a\x10\xd7\x24\x7a\x30\xfb\x6e\x73\x28\x98\x94\x78\xfc\x02\xe1\x94\xa3\xcf\xb5\x23\xe7\x80\x81\xb0\x00\xfe\xe6\xf8\xff\x8c\x0f\x77\x61\xca\xea\x83\x6d\x74\xc1\x1b\x54\x62\xd4\xb8\x3f\x4f\x51\x0e\x10\xc7\xb4\x2f\x0c\x0c\xe7\x8d\x2c\xbf\x49\x89\x42\xbd\xc0\x30\xa8\x7c\x80\xc4\xe8\x57\x57\x2f\xc3\x5e\xb6\x6f\xfd\xf6\x26\x85\x5a\xc6\x3e\xbf\xc7\xf7\x6a\x66\xe6\xbc\x24\x53\x47\x41\xcf\x0c\x39\x16\xec\x01\xcb\x7c\xb9\x30\x73\x00\x98\xdf\xfb\x52\x56\xd8\x7e\xe8\x9e\x13\xe2\x24\x41\x8a\x3f\xb8\x20\x2f\x53\x3e\x9f\x69\xca\x5d\x41\x9d\xb7\xef\x8e\x7c\x56\xf8\xc3\x58\x3d\x8c\xc7\xe3\x71\xca\xf8\x79\x9f\xf0\xa8\x37\xf3\xc1\xcb\x52\xcb\x92\xcf\x96\x2b\xf3\x6f\xcf\x9b\x4e\x24\xb0\xbd\xa9\x58\xba\xfe\x7f\x41\xb6\x60\x6a\x0e\x69\x94\x2a\xf5\xa7\x7f\x4f\x53\x35\x31\x5f\xd4\x2e\xd4\xce\x06\x31\x02\x2a\x79\xca\x16\xf4\x9e\xdb\x2b\xc0\x0c\xf7\x3f\x14\x6b\x7b\xcf\xec\x7b\x8b\x26\x59\x17\x38\x84\x32\x66\x2f\xb1\xc7\x46\x6a\xd8\x51\x80\x25\x9b\x48\x40\x39\xf4\xe9\x09\xd0\xcf\xd6\x34\x40\xcc\x9d\xd0\x60\x4f\xe9\xb9\x18\x0f\xd2\x86\xf8\x51\x21\x53\x6a\x85\x08\x5d\x3e\x5e\x59\xf0\x49\x6c\xda\x57\x6e\x57\x81\xcb\x44\x48\xc2\x66\x33\x56\x00\xed\x25\x6b\x16\xac\x66\x8a\x56\x7d\xd1\x5c\x6d\xfa\x6f\xec\x0d\x5c\xd9\x0d\x8a\xc6\x6a\x4d\xb7\xa6\xb4\x22\x0e\x15\x0e\x77\xea\x92\x27\x95\xd6\x43\xd3\x26\x62\x55\x79\xf6\x56\xbc\x93\xd2\xbc\xe1\x1a\x2c\x5d\x48\xa4\x23\xcf\x30\xde\xf9\xec\x74\x83\x8f\xdf\x7f\x97\x53\x33\x6b\x47\x8a\x22\xc9\xa8\xe8\x08\x85\x76\xb1\xc1\xed\xb1\x61\x4f\xc3\x10\x81\x64\x84\x09\xa3\x96\x8d\xe4\xc2\xac\xd7\x77\x6d\x90\x2b\x2e\x65\x4e\xbe\xd7\x4c\x87\x38\x9d\xb7\x13\xd3\x32\xaf\xf1\x79\x43\x97\x01\xeb\xe4\x68\x3c\x56\x9c\x54\x18\x47\x75\xdf\x41\x21\xf9\x55\x2f\x56\x5a\xdd\x93\x89\x2c\x57\x5e\x34\xea\x32\x74\xfb\x19\x65\xab\x0d\x1a\x7a\xc7\x34\x5c\x29\x59\xc9\xc4\xd6\x64\x7b\x24\x20\xc1\xa9\xc9\xab\x81\xf9\x2f\x74\x96\xc2\x0e\xbb\x96\xa0\x87\x76\xb1\xc7\xae\xa2\x7c\x63\x57\x1e\xb9\xdb\x51\xe0\x65\xb0\x5b\x8f\x02\x3a\x5f\x8a\xb1\x92\x12\x22\xdc\x49\xd3\x7a\xe5\xcb\xa1\xad\x99\x69\xf7\x56\x33\xfb\x32\x3c\x40\x5b\x4f\x68\x17\x38\x37\x92\x30\xa1\x5b\xe5\xd6\xc4\xd6\x59\xf7\xf6\x29\x25\xc3\x90\x9f\xeb\xce\xf7\x57\x2f\xc9\x73\x72\x0c\x85\x25\x40\xed\xcf\x28\xaf\x42\x42\xd1\x2a\x91\x3e\x94\x43\xb2\xaf\x48\xec\x76\x80\x2c\xb8\x2a\x5d\x42\xe2\xd1\xe8\xfa\x6d\x6d\x10\x6f\x72\x37\x4c\x41\x32\x74\xd2\xd9\xf2\x55\xa8\x9d\xd4\xed\x9b\x56\xac\x2e\x10\xf2\xed\xea\x84\xfb\xfe\x49\x4e\xb8\x38\x2e\x61\xf7\x6f\x7f\x4a\x70\xcb\xd5\xcc\xd0\x92\x1a\xea\x4e\xbe\xae\x42\xdc\xf6\xcd\x7d\x15\x0b\xf1\x70\xfe\x7d\xda\x93\x73\xfe\xf5\x49\x5c\x77\xb5\x07\x6f\x2e\x41\x0a\x8f\xae\x74\xce\x1d\xe7\x49\x5d\xf7\x5a\xa5\x9f\x02\x1f\xa9\x14\xe3\x41\xf2\x98\x35\x4b\x28\x51\x54\x94\xb2\x5e\x93\xcf\x2e\x33\x46\x93\x6a\xc7\x74\x0b\x73\xdb\x5d\x9a\x72\x31\x7e\xcf\xbe\xce\xd8\xa5\x29\xae\xba\x95\x7d\xfd\x65\xef\xd2\xc4\xe8\x5f\x66\x28\x8e\xdd\xb3\x6a\x80\x58\xc8\x6b\x88\xc7\x73\x1d\x56\x34\x06\xe8\xa1\xb8\xc5\x9a\xab\xb8\xb7\x45\x76\x12\x01\x52\x72\x90\xa8\xe3\x3b\x89\xc1\x69\x1a\xba\x6d\x5f\xbc\xb7\xbd\x1e\x28\xee\x75\xeb\xc2\x78\x5d\xaf\x21\xa0\xb5\xaf\xbd\x6e\x93\x6c\x40\xb2\xda\x6b\x6b\x4a\xf6\x7b\x0d\xe6\xd6\x3e\xf6\xba\x4f\x6f\xbe\xab\xb3\xd7\x49\x71\x00\x6b\xf4\x9e\x03\x58\xe3\x73\x83\x35\x22\xbe\x57\x0a\xc1\xb0\x1e\x7c\xe2\x4b\x85\x6c\x40\xce\xb9\x1d\x45\x86\xd9\x78\x0d\x35\x8b\x11\x51\xac\xa2\x86\xdf\xfb\x2c\x3f\x5f\x1d\xed\xa8\xc7\xb6\xeb\x37\x62\x87\x66\x41\x0e\x90\x81\x10\x1e\x9b\x50\x1d\xf8\x9b\xeb\xb7\xb7\xfe\x77\x90\x58\xe5\x89\xde\x92\x69\x7a\xf6\xe5\x04\xfc\x3c\xc8\x8f\xd5\x79\xfa\x7c\xc0\x8f\xc4\x37\x6d\xc6\x7d\x3c\xc5\x7e\xfb\x34\x2c\xc8\x2a\x12\x64\xa0\xc6\x57\x61\x21\xeb\x6f\xcf\x9a\xa1\x9c\x83\x7e\xad\xf0\xcb\x6e\x60\x22\x3e\xed\x03\x90\x21\x3a\xbe\x5f\x03\x07\x24\x57\x40\xf8\x08\x3e\x2e\xf0\x87\x71\x81\x80\xd8\x30\x83\xa3\xb4\x6b\xa8\x27\xa5\x5e\x33\xb9\x90\x5c\xb3\xa6\x6a\x09\x81\x26\xf0\x03\xbb\xf8\xe9\x71\x9c\x8f\x72\x02\xf7\xe0\x14\x45\xb2\x60\xe4\xe6\x3d\x65\x77\x02\xb7\x52\x4c\x29\x9b\x96\x0b\xfd\xbe\xca\x3e\xce\xca\x29\x99\x61\xaa\x76\x74\x5d\xcc\x38\x7a\x56\xcd\x20\x08\x6a\xf7\x63\x99\x44\x68\x47\x10\x06\x23\x15\xe1\x42\x1b\x46\x4b\x8f\xa2\x40\xe4\x4f\xcd\xea\x29\x06\x9f\xf5\x3a\xb9\x7a\x76\x8d\xda\x55\x7f\x8a\x90\x71\xe5\x06\xbf\xc2\x14\xd4\x73\xc0\x81\x95\xed\x7c\xb1\x2e\x5a\x4a\x2c\xe1\x83\x9d\x81\xd4\x5b\x6d\x7a\xa9\x87\x25\x6b\xdc\x79\x8c\x3a\x6f\xf0\x29\xfe\x82\x0c\xe2\xed\x13\x84\x48\x6a\x92\x10\xc9\x76\x6d\xe6\x39\x37\x07\xe4\xfd\x23\x1f\x58\x02\xbb\x50\xe6\x2f\x1d\xd0\x66\x21\x1f\x36\xa0\xfe\xb4\x8f\x5d\xa0\x4e\x5f\x8b\x60\x38\xfc\x45\x41\xab\x02\xeb\x73\x0c\x03\xe7\x78\xc3\xd4\x9c\x39\x14\xc7\x0d\x54\x9a\xdc\x8c\xe2\x70\xbf\xcb\x00\x71\x1c\x9f\x57\xcd\x82\x9e\x90\xef\x43\x39\x7c\xdc\x3e\x81\x8c\xef\x93\x14\x3f\x24\x21\xa1\xaf\xd9\x1d\x00\x89\xa8\x98\xcd\x66\x0e\xdc\x38\x78\xed\x64\xe8\x10\x42\xbe\x24\xb2\x13\xe3\x0b\xd2\x1d\x69\xd6\x0f\x56\x21\xdc\xc5\x2e\xb9\xc1\xa6\x21\x21\x89\xd0\x60\xff\x04\x12\xa1\xd2\x0b\x87\x4c\x34\x31\x8f\x1e\x99\x84\x9a\x05\xad\x08\x35\xa1\x52\x0e\x0e\xd7\xc2\xf1\xaa\x47\xc5\xaf\x93\x13\x57\x4d\xde\x47\xc0\x2b\xda\x8a\x62\xf1\x05\xad\x8a\x27\x3e\x51\x7a\xcb\x02\x67\x38\xe0\x0e\x29\xb9\xb3\xda\xbe\x22\x0d\x55\xb4\xb6\x66\x97\xaf\xd2\xcc\x92\x22\x17\x39\x2e\xa4\x3c\x27\x52\x62\xc2\xa9\xff\xd3\x94\x0a\x3c\x24\xdb\x09\x95\x9e\xb4\x4a\x56\x27\xf6\x3a\xf0\x89\x39\x91\x96\x80\x0e\x49\x9a\x46\x92\xef\x91\x20\x38\xa2\x83\x74\xed\x07\x08\xb2\xed\x4b\xdf\x06\x35\x91\xfa\x35\x99\x77\xe5\xd2\xfe\x3b\x4a\xd1\x95\xee\xf7\x79\xa5\x9f\x3f\xa4\xec\xfd\x37\x8e\x8e\x88\xf6\xee\xba\xab\x91\xd8\x98\x1f\x25\x51\x80\x8f\x00\x38\x76\x8b\x0b\x4a\x3f\x91\xa0\xde\xe2\x17\x15\xa1\x9d\xd7\x9a\x5e\x28\x06\xfc\xa6\xb4\xba\x69\x58\xb1\x4b\x07\xe6\xab\x37\x37\xe7\x7d\x69\xe0\x9c\x87\xb2\x16\x76\xfa\xed\xf7\x51\x85\x9b\x07\x36\x5d\x48\x79\x97\xd8\xd8\xf1\x86\x4a\x93\x91\x4e\xd1\x7c\xae\xcf\x9c\x62\x18\xdb\x61\x3a\x21\x5c\x54\x70\x5c\x7b\x7b\x08\x6a\xf2\xe0\x95\x25\xa3\xc3\xa4\x08\x3d\x86\x05\xe5\x08\x90\x9c\xdd\xb5\x3e\x24\xd7\x59\x5c\x03\xd9\x47\xca\xfa\x8a\x49\x25\xf8\x5c\x59\x35\xef\xe9\xe9\x86\x5a\xa8\x1b\x47\x0d\x03\x80\x3b\x19\x12\x17\x33\xb2\x57\xd4\x5d\xee\x9e\xef\x3a\x31\x62\xdf\x1d\x9f\xc5\xfa\x3c\xf2\x2b\x07\x88\xee\x91\xfd\x4b\xe2\xfe\xf4\x28\x37\xb4\x4c\xc8\x79\x55\xa1\x9d\x30\xf1\x35\x15\x7c\x30\xb6\xa3\xce\x08\xd4\xa8\x98\x0d\xc2\xef\x59\x4f\xfe\x54\x43\xd0\x3e\xc7\x98\xb2\x06\x54\x39\x1d\xe5\xbf\x23\xec\xa8\xf9\xa3\x95\x2d\x6e\x2b\xae\xc2\x02\x54\x97\x62\xbc\xf9\xeb\xa4\xec\x17\x02\x70\xe9\xe0\x65\x1c\xd9\xf9\x88\x5f\x6f\xd7\xb7\x6a\x19\xd2\xab\xdb\x2f\xae\xb1\x3e\x0a\x8e\x55\x8c\xb3\x32\x12\x7e\x99\xb3\xc4\xd3\xc0\xae\x24\x06\xbc\x0e\xb4\xdb\x93\x57\x39\x80\x5f\x9d\x1c\xf6\xfc\xf7\x56\xd3\xe7\x07\xc3\x92\x15\x40\xac\x7d\xf1\x13\x80\x62\xc9\x66\x60\xec\xba\x89\x74\xfa\x79\xa0\xb1\x64\xd7\x38\x6d\x92\xc1\x64\xc6\xd4\x3d\x2f\xd8\x79\x51\xc8\x56\x3c\x29\xb9\xcc\x4b\x66\xbb\x4c\x0d\x2b\x6f\x7a\x32\x20\xc8\xa7\x0c\xdf\x12\x5a\x71\xaa\xc1\x87\xd3\xff\x61\x4a\x79\xbd\xae\x51\x40\x14\xad\x74\xdf\xed\x18\x88\xb9\x3c\x0d\x8f\xdc\x5a\xf3\x4f\x4b\xef\xb3\xde\xf9\x75\x5b\x62\x65\x76\x1c\x8c\x68\x95\xbd\x72\xcb\xa6\x3f\x8d\xc5\xd4\x50\x7d\xa7\xcf\x02\x94\x02\x8a\x61\x05\x45\x15\x7d\xee\x86\x71\x4c\x51\xc6\xb3\xa7\x99\x3a\x63\xcf\x22\x3b\x52\xe7\xfa\xdb\xff\xff\xcb\xeb\x27\x26\x65\xf4\x47\xa2\x2b\xcb\xb4\x70\xb2\x84\xbb\x67\x5c\xee\x39\x2e\x7a\x68\x45\x1d\x11\x45\x5d\xb4\x92\xe2\x81\x50\x31\x8a\xee\x53\x72\x1c\x51\x6c\x6e\x7d\x9c\x5f\x09\xd2\x01\xaa\xd1\x24\x18\xe1\x1a\xa9\x19\x15\x3a\xaa\xc9\xc9\x40\x10\x1f\xea\x0b\xd2\xe3\x45\xd2\xad\x3c\xe7\xf2\x3b\xf6\x60\x86\xfe\x2f\xb4\x51\x6d\x61\x48\x6b\xb4\xfd\x3c\x45\x54\x7f\x30\x7e\x82\xb0\x8a\xcd\xb9\x36\xca\x15\x52\xb5\xcd\x77\x22\x3b\xe7\x72\xf8\xc9\x1d\x5b\x92\xef\xfe\x76\xf9\x8f\x5f\x5e\xbf\xbd\x38\x7f\xfd\xcb\x9b\xf3\x8b\xef\xae\xae\x2f\x7f\xfa\xe9\xe6\x1f\x37\xb7\x97\x6f\x7e\xfa\xe9\xa2\x55\x8a\x09\xe3\x6a\x9f\xde\x30\xf3\xd3\x4f\x6e\x8f\xe9\x9f\x7e\xba\x2d\x1a\xde\xfc\xf4\xd3\xc4\xbb\x39\xe1\x1c\xb5\x43\x95\x40\xce\x88\x65\xd5\x42\x86\x16\xd8\x77\x38\xfd\xd0\xcb\x05\xd5\x5d\xb2\x71\x06\x8f\x31\xe4\x5e\xa5\xa8\xcb\xed\x6d\x2d\xbd\xa0\x8a\x39\xbb\xf0\xda\x3b\xfb\x9f\x54\x65\x2e\x20\xf4\x4d\x34\x17\x73\xe0\x5c\x41\x13\xb5\xab\x5e\x30\x65\xe6\x81\xb9\x02\x86\xab\xa6\x55\x3a\x2b\x47\x57\x43\xc0\x31\x4d\xf4\x08\xb2\x1d\x4c\xc9\x15\xd7\xba\xe7\xec\x01\x2b\xbc\xf3\xb9\xa0\x55\x14\x1a\x84\x0a\xb5\x88\x00\xeb\xfe\x7e\x4b\x49\xe2\x9a\x0d\x8d\x2c\x47\x21\x4c\xd6\x47\x99\xac\x21\x4c\x7a\xfc\xc4\x54\x5b\xd9\x58\x49\x26\x57\x2f\xc9\x8b\x6d\x07\x03\xee\x06\x0e\x55\x72\xb3\x69\x41\x04\x47\x94\x35\xf1\xd2\x08\xe1\xd7\x88\xe7\x9e\x7a\xa1\xb7\xd3\x52\xd6\x94\x8b\xdd\x52\xfd\xce\xda\xaa\x5a\x92\x7f\xb6\xb4\x42\xeb\x75\x22\xcb\xf5\x93\xe6\xd9\x5f\xfc\x47\xff\x79\xfa\x97\x20\xf8\x7f\x9e\xfe\xc5\xd7\x9f\x80\x49\xf9\xcf\x53\x7d\x5f\x9c\xfe\xc5\x15\xc6\x25\xee\x47\x5b\x13\x50\x7d\x84\x1f\x38\xe8\x39\xea\x5a\xc0\xfa\x17\x70\xcf\x7d\x12\x8b\x0e\x9d\x0a\x80\xef\x7c\xa5\x68\xc1\x26\x4c\x71\xb8\x1a\x48\x51\x3e\x29\x4f\xb0\x5f\xc1\xa4\x6c\x15\xf5\x65\x1c\x35\xca\x11\xc6\x4c\x30\x56\xe2\x4d\xcd\x89\xcd\xc8\xdc\x4a\x0d\xf3\x7e\x0a\x97\x2a\x28\x2a\x52\x28\x46\x91\x7b\xc3\x55\x18\x81\x10\x18\xd3\x5b\xef\x2b\x0c\x91\x78\xc8\xae\x90\x62\x2c\xd8\x1c\x21\xb4\x0e\x4a\x82\xac\x36\x78\xcc\x62\xd9\xde\x00\xd7\xd4\x46\x36\x84\xd7\x35\x2b\x39\x35\xac\x5a\x92\x7b\xbe\x6d\xed\x12\x30\x2b\x80\x8d\x18\x95\xe3\xb1\x90\x44\x42\x0c\xb8\x15\xdc\x85\x6b\x16\xad\x21\xa5\x7c\x10\xdb\x9b\x14\x33\xd4\xd1\x28\x3c\xd7\x44\xf0\x6a\xd4\xa3\x2c\x87\xc1\x25\x0d\xac\x89\x7e\xb1\x94\xa4\x5b\x07\xde\xf5\x7b\x2f\x75\x06\xfc\xa6\x49\xc7\xea\x20\x8e\x62\xce\x1d\x09\xaa\x15\x40\x8e\xd4\x55\x58\x00\xc4\x87\x66\x62\x5b\x3f\x3b\x8d\x97\xbe\x1f\x5e\x7f\x38\x60\x0e\x1e\x1e\x62\x6c\x05\xac\x32\x93\xaa\xe0\xd3\x6a\x49\x16\xb4\x32\xcc\xf1\x16\xd1\x78\x96\xb6\x1d\x94\x1b\x66\xe2\x89\xa8\xa4\x98\xc7\xb6\x2e\x7b\x6c\x58\x01\x85\x6b\xac\x52\x6e\x1b\x94\xce\x9a\x71\x4b\xd9\x26\xfb\x3f\x62\xbf\xc7\x1f\x9e\xfb\x41\xdf\x41\x85\xf6\xad\xd0\x54\x46\x56\x0c\x57\x4a\x8e\x72\xda\xc8\x11\x7f\xa4\xe3\xb7\x7f\x29\x94\xd7\x09\x5e\x37\x5f\x6a\x09\x96\xdc\x6d\xe8\x32\xf8\x31\x8c\xa1\xc0\x54\x6f\x55\x2c\x7e\x03\x14\xb9\x4b\x62\xad\x22\x57\x8d\xd1\x95\x76\xd8\x3e\x28\x66\x37\x96\xe2\x4d\xc5\xc8\x5f\xee\xd8\x72\x04\xab\x7d\x84\xe6\xfc\x7f\x92\x36\x20\xa8\x42\x75\x5e\xd9\x58\x01\xa4\x22\x7f\xf1\xff\xf5\x9f\x4f\xc8\xd0\x9d\x13\x86\xc3\x4e\xed\x8a\x34\xfb\x12\xe9\x98\x78\x44\xe9\xc1\xdc\x04\x3a\xa6\x26\x23\x71\x94\x4f\xc9\x25\xd4\xae\xc0\x0b\x24\xd2\x7c\xda\x9b\x40\xfc\xe3\x44\xcf\xea\xdf\x7d\x38\xb5\x2b\xce\x0e\x8e\xfb\x08\xa7\x77\x2d\x1d\x5b\x3b\x1b\x91\x09\xd4\x36\xe9\x3e\x01\x55\x7c\x2d\x2f\x1f\x59\xd1\xa6\x71\x7d\x67\x85\x80\xee\x58\x02\x9a\x72\x98\xd9\xfb\x1b\x5b\xfa\x53\x11\xa7\xc1\xde\xcf\x03\x29\x4b\xa7\xa2\xa2\xfc\xc1\x0f\x4f\xe3\x1d\xdb\xbe\x6a\x0f\x3e\x57\xde\xaf\x01\x12\xb9\x22\x09\x61\x57\x7a\xab\xe8\xf2\x91\x6b\xa3\xff\x7f\xa8\x4f\x0a\x59\x4f\xfd\xa1\x8a\xe2\xf8\xb5\x06\x12\xf9\xd9\x17\x25\xfc\x33\x55\xb4\xac\xb9\xf5\x1d\xd8\xd5\x04\xbf\xf5\x03\xa8\x58\xa3\x98\x86\x98\x33\xb5\x43\x71\xa4\x5d\x82\x96\x14\xc0\x4e\xe7\x22\x12\x30\x66\x69\x13\xe8\x73\x79\xb0\x41\xdc\x75\x38\x5d\x30\x05\x97\xf6\xa6\x74\xda\x33\x05\xf0\xa3\x34\xb5\x83\x2f\xb6\x2b\xe5\x9f\x2d\xbf\xa7\x15\x43\xf7\xeb\x03\xaf\xca\x82\xaa\xff\x8f\xbd\xb7\x7f\x6e\xe3\xc6\x16\x44\x7f\xdf\xbf\x02\xa5\xd9\x2a\x4b\x19\x92\xb6\x93\xf9\x5a\xbf\xfb\xee\x94\x62\x29\x73\xb5\xb1\x1d\xad\xa4\x24\xb5\x6f\xee\xec\x06\xec\x06\x49\x5c\x75\x03\x1d\x00\x2d\x99\x73\xe7\xfe\xef\xaf\x70\x0e\x80\x46\x53\x14\x45\x35\x20\x93\xf6\x08\x53\x35\x8e\xc8\x26\x70\x1a\x38\x38\xdf\x1f\x18\xd6\x88\x44\x9f\x68\xe9\x72\x60\xb1\x19\xc5\x20\x07\x56\x90\x06\x58\x87\xec\xda\x85\x33\x51\x65\x78\xd1\x56\x54\x11\x4b\x01\xe7\x52\x2d\x3f\x39\x9a\x75\x37\x75\x90\x36\x85\x23\x07\xbe\x5d\xad\x02\x12\x23\x9e\x59\x04\x51\x5c\xce\x50\xb2\x5c\x21\x33\x87\x98\x75\xe6\x6e\xfb\x20\x08\xe4\xcc\x33\x9e\x40\xd1\x47\x68\xd8\xb9\xe5\x9a\xc5\x21\x39\x5c\x13\x3e\x17\x52\xb1\xf2\x28\x12\x40\x02\x2d\x9c\x90\x6f\x43\x0b\x9d\xd1\x20\x50\x3a\x4f\x32\x14\x0a\x75\xef\xe6\x08\x95\xc3\xa6\x8e\xf4\xce\xa4\x62\x37\x4c\x91\xc3\x52\x62\x9f\x98\x1b\x5e\x98\xa3\x09\xf9\xff\xac\xa2\x37\xd4\xf9\x16\x34\x48\x47\x0c\x43\x91\x57\x57\x82\x95\x6a\xf2\x8a\x1c\xc2\x52\xb1\xf6\x78\xe4\x03\x48\xf4\x52\x1b\x56\x0f\xc7\xe7\x5d\xe5\x40\x0c\x0e\x5c\xcc\x71\x09\x7e\xf2\x3a\x6e\x77\xb8\xa8\x6d\xad\x60\x7b\xe8\x5b\x26\x93\x58\x66\x60\x92\x5c\x3b\xba\xd8\x73\xaf\x86\x88\x0d\xcf\x53\xc3\x5d\xf8\x0f\x88\x11\x20\x8a\xcd\x81\x7a\x21\xed\xd9\x71\x0b\x92\x81\x71\x98\x46\x36\xb2\x92\xf3\xe5\x65\xa3\x18\x2d\xdf\x4a\xa1\x8d\x02\x1a\xfd\x29\xcd\x4a\x57\xf7\x01\xe1\xe6\x9d\xba\xdc\x15\xea\x32\xc2\xe4\xcc\x72\x24\x4d\x64\x3b\x5f\x60\x43\x26\xf8\x21\xa1\x85\x92\xd0\x07\x1e\xa7\x7b\xac\xca\x06\xb6\x3d\x3d\xf1\xdd\x99\xbc\x7d\x39\x74\x7b\x82\x35\xc1\xda\x7e\x4b\x97\x8e\x2a\xd1\x29\x2f\x99\x8e\x0a\x20\x78\xd0\x1f\x8b\x0e\xc7\x96\x3b\xde\xbb\x0f\x56\x26\x38\xfe\x70\xf2\xd8\x50\x86\xdd\xa9\xbc\xf7\x1d\x69\xd0\x36\xf0\x44\xbb\xb3\x0b\x0a\x25\xec\x32\xad\xa5\x53\x34\xe7\xfc\x86\x89\xb0\x33\x9f\x49\xf3\xa7\x9a\x7e\xbc\xbc\x66\xb7\x03\x7e\xe9\x5f\xf4\x7b\xf6\xf8\x24\x89\x31\x58\xc3\x7e\x14\x9a\x1a\xae\x67\x9c\x4e\xab\x4f\xd9\x81\x0a\x8a\xa6\x5c\xb2\x8a\x15\x3b\x14\xdb\xdf\xc5\x40\xf8\x9c\x31\x70\xb3\x70\xb1\x82\x63\xc3\x58\x07\x24\xfa\x74\x16\x16\x14\x8b\xb0\x5e\x8c\xf6\xcb\x42\xb6\x9c\x6c\x85\xeb\x66\x16\x82\x02\x31\x0a\xa2\xad\xa7\x4c\x79\x12\x36\x4c\x3c\x02\x93\x23\x57\x2b\xbd\x9c\x3d\xea\x38\x42\x36\x9c\x1f\x0d\x4e\x61\x49\xcd\x07\x81\x2d\x3d\xfd\x68\xe5\x5e\x3d\x2c\x25\x00\x47\x0f\x93\x56\x27\xc5\x50\x20\x9f\xdd\xb5\x72\x74\xee\xd2\x43\x87\x4e\x74\x1a\xc4\x9f\x0c\x25\xc3\xdd\x48\xc9\x81\xc2\x31\x38\x13\x0a\x47\x9e\x68\x40\x82\x15\x02\xee\xdd\x3b\xdc\xe3\xf0\x4d\x5c\xbe\xcd\x19\xd0\xf5\x08\xd5\x69\xf4\xf5\x42\xb3\x49\x27\x8c\xd9\x87\x13\xc0\x02\xe5\xdc\xa9\x23\xd7\x6c\x09\xd3\xe3\x8a\xc3\x7b\x88\x24\x5e\x0b\x0f\x58\x4a\x7e\x17\x8e\xb1\x7d\xa5\xa4\xdf\xfb\x6d\x1e\x3c\x49\xea\x1d\xc7\x31\xd0\x74\xd7\x8d\x1e\x1e\x5f\x77\xd6\x38\xc4\xc9\x9e\x35\xae\xa3\xcb\x9d\x2d\x2e\x69\xed\xe4\xec\x30\x1c\x29\x26\xae\x6e\xe4\xbb\xd0\x31\x4c\xdb\x98\xbd\x28\x71\xbd\xcc\x53\xaf\x17\x8e\x75\x66\xb0\x33\x31\x22\x1f\xa4\xb1\xff\x44\x16\xb1\x13\xc9\xf4\x07\x69\xe0\x93\xbd\x38\x49\xdc\x80\x7d\x3a\x47\x67\xb5\xc0\x3e\xbe\xc0\x6e\x5c\x74\x9b\x15\x14\xdc\x79\xad\x53\x83\xcf\x04\x91\xca\x6d\x79\x22\x08\x41\x93\xd6\x0e\x80\xd8\x41\xef\xba\x2d\xde\xab\x88\x5b\x28\xe2\x63\x7e\x32\x60\x1c\x20\xd0\xf3\x03\xbf\xe1\x60\x7a\xab\x20\xe1\xbb\x6c\x61\xc3\xa8\xdd\x39\x6a\xd8\xfc\xd1\x29\x8e\xab\xa3\x66\x6a\xce\x08\xb4\x9a\xce\x81\xb9\x29\x82\x04\x8e\x44\x71\x22\x06\x26\xf9\x1a\x65\x4e\x2f\x7d\xc2\x49\x41\xa6\x04\x5d\x23\x8f\x8c\x9a\x70\xdf\x23\x50\x50\xea\xaa\x29\x18\x48\xfe\x33\x78\x6f\xff\x8b\x34\x94\x2b\x3d\x21\xc7\x3e\xc2\x30\xfe\xce\x05\x69\x44\xd3\x24\x80\xd2\xdc\x75\x2c\x50\x41\x98\xab\x69\x21\x67\x77\x84\xf1\x11\xb9\x5d\x48\x8d\x92\x5a\x30\x2e\x1f\x5c\xb3\xe5\xc1\xd0\xea\x4a\x38\x62\x8a\x72\x70\x26\x0e\xba\x90\xc2\x1e\x15\x08\x32\x29\xf4\xf8\x39\x80\xef\x0e\x9e\x4e\xee\x4f\x92\x20\xbb\x82\x49\xe7\x19\x44\xb0\xc4\x2b\xdb\xbb\x53\x35\x6d\xd2\xae\x54\x87\x7c\xdf\x0f\x68\xa2\x4c\x32\xdd\xa6\xf7\x3d\x28\xbc\x0a\x63\x9c\xaa\xde\x49\x96\x1a\xf3\xef\x2b\xf0\xd1\x2f\x9c\x59\x50\xde\x30\x85\x26\xc1\x41\x6b\xa3\x11\xcc\xf2\x9a\x10\x6a\xdf\x95\xdb\x01\x7c\x84\x85\x2d\x1e\x7a\x8b\x46\x25\xe5\x75\xdb\x78\x7c\x86\x30\xdc\xa1\x37\x86\x8b\x42\xd6\xce\x2e\x82\xef\x09\x96\x70\x77\x31\xc7\x2e\xe2\x09\x69\x4c\xb8\x0a\x18\x53\xd5\xb3\xfa\x0c\xf4\x0f\xc6\x9b\x19\x0c\xbc\xcc\xb2\xfd\x60\x0f\xec\xb6\x77\xe3\x56\x0d\x02\xc0\xc7\xda\xc7\xbb\xe0\x9a\xf1\xd1\x3a\x38\xd6\x67\x52\x4d\x79\x59\x82\x2d\x12\x81\x0b\x09\x5f\x2b\x88\x63\x29\x4d\xcf\x0e\x35\x8c\x68\xac\xcc\xba\x26\x0f\x7e\xd5\xd8\x25\x5e\x98\x21\x61\xc9\x38\x60\x11\xd0\x99\x4a\x69\x27\x0a\xaf\xb8\xba\x35\x1e\x11\xec\xee\x0f\x5a\x69\xca\xbc\xfb\xd0\xb2\x24\xd1\x56\x95\x95\xf6\x40\x10\x43\xb3\x0c\x7a\xfa\x80\x24\xbb\xa0\x84\xb9\x25\xd2\xa6\x8f\x6c\x93\x61\x15\x2f\xaf\x5c\xc0\x3b\x25\x53\x66\xa8\x63\x3a\xf6\xc8\x7a\xd5\xa0\xfa\x9b\x7f\x26\xce\x65\xd9\xb7\x68\x6f\x28\x0b\x45\x0e\xfd\x7f\x4c\x97\x83\x93\x5e\x48\xb2\x8c\x97\x20\xd9\xe5\x64\x0e\xe9\x02\x97\x33\xa6\xef\x8e\x2d\xc0\xf2\x91\x2b\x0a\x83\x6f\xe7\x8a\x61\x15\x60\xa0\x4a\x40\xa5\x6a\x0c\x6d\x6e\x05\xbb\x61\x16\x7b\x4b\xae\x5d\x0b\xfb\x81\x82\x03\xc4\x67\xfd\x72\xc7\xaa\xff\xff\x9e\xc8\x0f\xd2\x78\x37\xd5\x2f\x23\xe7\x30\x47\x39\xee\x23\xaf\xdb\x1a\xbb\x07\x1a\x63\x75\x18\x3e\x9b\x31\x35\xb0\x45\x0a\x09\xb9\x27\x7d\xdb\x75\xdf\x5b\xe3\xa8\x84\xa1\x6a\x0e\x09\xd3\xce\x0e\xed\x45\xae\x79\x25\xa7\xb4\x22\x35\x17\x16\xb4\x61\x3b\x71\x75\x67\x9e\xf0\xc6\xee\xcf\x0d\xc0\x81\x0c\xca\xe7\x7c\x5a\x31\x67\x1c\x1f\x16\x21\xa1\x5c\xf0\xf8\x6c\x65\x37\x56\x26\x07\xfa\x52\x31\xad\x31\x3c\xf8\x3d\x17\x27\xce\xb5\x38\x68\xd9\xef\x2c\x75\xfc\x48\xeb\xa6\x62\x23\x74\x3f\x7e\x33\xfe\xbb\x14\x8c\xb8\xb4\x87\x51\x40\x51\x97\xc7\x63\x24\x79\x8d\x02\x6f\x13\xca\x92\xf9\xfc\x9a\x41\x10\xf4\xe8\x6e\x70\xb6\x6a\xf2\xf5\xcb\xaf\x5f\xbe\x1e\x46\x62\xce\x5c\xea\x51\x41\xb5\xeb\x31\x76\xf7\x74\x1f\x9d\xc4\x83\xe3\x1f\xc4\xee\xce\x6b\xf7\xef\xd7\xee\xdf\x6f\xc8\x3f\x06\xce\x46\xce\xc9\x79\xef\x5f\xfb\xcf\xc0\xd9\xc6\x16\x79\xa2\xe3\x7a\x3d\xea\xf3\xd6\x82\x0a\x64\x7c\x96\xcf\xbb\xfb\x0d\xd2\x1e\xbe\x02\xf0\x99\x42\xd6\x0c\xb6\xfe\xeb\xff\x67\x98\xac\x89\xf3\x42\x84\xbe\x21\x52\xb8\xd9\x5f\x1f\xc2\x76\x1d\x91\x5b\x88\x7b\xa8\xe9\x35\x3a\xac\x8e\x0b\xd3\xd2\xca\x02\x7c\xf8\xcd\xf8\xf5\x11\x91\xa2\xf7\xf8\x20\x10\x6e\xb8\xb4\xf2\x9a\xdf\x89\xc3\xd7\x03\x6b\x3c\xac\x6e\xe7\xd7\x6b\xb6\xb3\xb7\x93\xf0\xb6\x54\x2c\xe1\x15\xf2\xd2\x64\x4f\x8e\x8f\xc5\xf2\x96\x2e\x03\x51\xf6\xe2\xfa\x9c\xdf\x30\xb2\xe0\xf3\x05\x54\x43\x48\xe8\x5a\x45\x30\xee\x1b\x68\x2c\xf7\xad\x00\x11\x90\x25\xe1\x03\xa5\xbf\x33\xf3\x42\x43\x44\x0b\xfa\x28\x5c\xa1\x9b\x90\xa7\x16\x92\x4f\x5e\x03\x59\x79\xb5\x52\xe8\x63\xc7\x61\x4e\xdf\x7c\xfd\x78\x99\x22\xd0\xe4\x9d\x89\x15\x01\x82\x5e\xc3\x83\xbb\xdc\x6c\x95\xb9\x24\x60\xed\x03\x5c\x0b\x18\x45\x60\x9e\x81\x8d\x5f\x3b\x6d\xb8\xe3\x68\xdd\xee\x0d\xb3\xcb\x9e\xcb\x32\x04\x88\x10\x27\x4f\x43\x60\x9d\x26\x07\x7d\x36\x70\x00\x81\x76\xc1\x7a\xe3\x6a\x38\x3b\x7d\xcf\x75\x83\xf6\x97\x3f\xa9\x19\x23\x21\xc7\xa2\xec\xb2\x89\x06\xee\x12\xfb\xb5\xa5\x15\x18\xaf\xe7\x10\x27\xa8\xf2\xec\x57\x94\x77\xd4\xcb\xaf\xb6\xb4\xb8\xa3\xe6\x03\x5f\x1b\xef\xbd\x6e\x2b\x88\xb4\x7c\xf8\xfd\xb3\x62\x82\xee\x42\xad\x40\xeb\x0c\xb1\x56\xb5\xc4\x0e\xa2\xc2\x8b\xff\x2e\xf2\x42\x3a\xbb\x44\xd2\x65\x38\x9b\xad\x49\xa7\xeb\x62\xb7\xb0\x21\xb9\xbd\x8e\x50\xc6\x29\xbe\xa9\xee\x88\x41\xc4\x4a\x89\xf6\x8e\x12\x2c\x1c\x09\xd4\x7d\x94\x79\x95\x70\xcd\xbb\x77\x93\x06\xdf\xef\xe7\x55\x6e\x15\xfc\x1f\x3d\x4d\x62\xa0\x4a\x3d\x44\x40\xfd\x7a\xb4\xb2\xaf\xee\xf3\xdf\x7f\x2a\xb9\xf5\xeb\x61\x72\xeb\x93\x0b\x97\xf8\xef\x60\x1d\xa9\xbb\xb8\x6b\xef\xeb\xef\x0f\xbb\x5d\x3f\x82\x08\xff\x3b\x04\x17\x2a\x63\x75\x41\xce\x03\x6f\x98\x13\xef\x35\x37\x2d\xc5\x02\x5c\x82\xdd\xba\x94\xea\xe8\x58\x57\x8e\x28\x32\x72\x79\x91\x6d\x18\x5d\x99\xb2\x82\xb6\xda\x5e\xea\xba\xb1\xea\x37\xd1\x16\xfd\xbc\xc1\xf0\x9b\xc3\x6f\xc8\x98\xbc\x3a\xb2\xb7\x5b\x20\x69\x01\x14\x8c\x05\x6e\x68\x6c\x83\x8a\x9e\x59\x58\x55\xdf\x9e\xf3\x40\x2a\xc7\x7d\xe7\xe4\xbe\xd8\xfb\xf9\x89\x4d\x42\x96\xec\x78\x36\xe3\x82\x9b\xe5\xd0\x72\xf6\x79\xc4\xa7\x0f\x77\x20\x89\xc4\xa8\x85\xbc\x25\xb7\xae\x96\x00\xe0\xb2\x2b\x89\x17\x83\xff\xd2\xfe\x91\x64\xb8\x06\x66\x19\x64\x11\xa7\x71\x04\x79\xc0\x51\x1b\x8b\x77\x13\x97\x37\xef\x1a\xf5\x0c\x59\x6b\x4c\xfe\x4d\x0a\xa9\xde\xa0\x72\x68\x41\xd7\x9d\x0c\x72\xef\x6b\x39\xfe\x52\x54\x6d\x19\x75\xc0\xe8\xa4\xa7\x81\xec\x73\x4c\xce\xc0\x7e\xfb\xe6\xa1\x95\x83\x95\x17\x8a\x28\x94\x81\xe1\x6d\x02\x68\x78\x40\xff\xda\x24\x79\x60\xe5\x1c\x1d\x81\x7d\xc7\xa4\xfd\x16\x36\x95\x34\x80\x3f\x43\xed\x52\xb1\x39\x79\x8c\x1d\x32\xbd\x6d\xd8\x67\xe8\x47\xf6\x60\xbb\xaa\xc5\xdd\x33\xbb\x09\x9a\x4b\x81\xc8\xbb\xc9\xc2\x3c\xab\xe8\xa7\x4d\x2e\x20\xee\xa6\x5f\x41\xec\xf9\xee\xef\x79\x0c\xc7\xc6\x5b\x8e\x8d\xd9\x30\x62\x7e\xf5\x76\x0e\x5a\xfd\x53\xdc\x68\xbc\x18\x96\x2b\xca\xd6\x38\xe8\x47\x84\x56\x12\x3c\x5c\x96\x57\xda\x8f\x58\xe9\x1e\x9c\x49\xef\x08\x5b\x75\xcc\x0c\x02\x63\x01\xa5\x48\xbb\xdc\x9a\x51\xef\x8a\xe6\xa0\x0f\xfe\x40\xb6\xa0\x08\x9f\xf8\xf6\x23\x94\xcf\xd7\x7f\xdd\x8f\xbb\x34\x84\xdd\x65\x44\x06\x10\xbc\xa9\xff\x9a\x81\x4c\x06\x58\x85\x5e\xc8\x09\xec\xa6\x33\x82\xb9\x1a\x3d\xe8\xa8\x77\x62\x26\xd7\x83\x43\x66\xad\x22\xc2\xa1\xd8\x71\x41\xab\x58\x63\xb3\x9a\x22\x2f\x99\x42\x41\x71\xca\x7a\xf5\xab\x86\x66\xaa\xe0\xf8\xb9\x9b\x1d\x6b\x5d\x41\x11\x06\x5c\xfc\x5f\xb1\x6c\xf0\xc1\xb4\x2d\xae\x99\xf1\x21\x2d\x0a\xea\xcb\x34\xad\x21\x53\x5a\x51\x51\x58\x42\x01\x3a\xc0\x30\x17\xc7\xcc\x3b\x4d\x8c\x44\x00\x70\xb5\xc1\x6f\x83\xbd\x36\x42\xe5\x24\x7c\x85\x28\xf3\x97\x0b\x6d\x2c\xd4\x98\x12\x9c\xb6\x79\xc7\x95\x96\x23\xcb\x12\xfc\xa2\x77\xdc\x3e\xb8\xbc\xfb\x6f\x8c\x3c\x72\xb2\x14\x63\xc6\x15\xdc\x8b\xc2\x7e\xe4\x90\x2e\x72\xeb\xa4\x64\x57\xe1\xb8\xcf\xca\x86\xbd\x24\x9b\xcc\x21\x6e\x72\xe5\x7a\x1c\xf4\x2b\x5d\xfa\xe2\x59\x07\x23\x3c\x45\x7b\x4b\x5c\x0d\x54\x7c\x79\x50\x6d\xa8\x49\xdd\x71\x51\x42\x65\xe5\x55\x60\xc2\xac\x7d\xa8\xac\x0a\xe5\x21\x02\x03\x41\x7e\x88\xd6\x1b\xb2\x3f\x35\xf9\xbc\xe3\x1d\xd8\x15\x11\xbd\x6b\xf8\xe9\xcb\x4f\x90\x9e\x44\x2b\x5f\x1f\xc9\xca\x3b\x7c\x66\xf5\xd5\x52\x32\x8c\x27\x41\xc7\xc2\x40\xb3\x25\xf3\x42\x53\x67\x5c\x1b\x2a\x52\xf4\x0c\x55\xe4\xd0\xc7\x55\x10\xc3\xaa\x0a\xb9\x43\x67\x4b\x14\x12\xb3\x42\xfd\xd3\x43\xbd\x22\x63\xd2\x77\xea\xac\x5d\x2c\x5e\xc8\x97\xbb\x02\x9f\xf3\x32\x34\xe5\x1d\x1a\xbd\x3c\x6d\x0d\x99\xf3\x1b\x2b\xdf\xdd\xf1\x1c\xad\xf3\x02\xa1\xe7\x6e\xc1\xaa\x86\x28\x56\xb6\x05\x4b\x88\xa1\xd4\x03\x0d\x14\x84\x1c\xc7\xa6\x54\xa8\x36\x12\xd8\xe5\x41\x0f\x17\x0f\x5c\x07\xe1\x74\x29\x96\xcf\x80\xc2\x82\x72\xcc\x67\x84\xdd\x30\xb5\x24\x8d\xd4\x1a\x68\x3f\xc8\x0b\x58\x1e\x12\xe2\x50\x67\x3e\x25\x09\xcc\x51\xb0\x67\xce\x32\x33\x68\xf1\x03\x67\xce\x39\x00\x73\xbc\x4c\x96\x01\xf6\xd7\xdf\xff\xcd\xcb\xd7\x43\xfd\xfd\xb9\xed\xa6\xe7\xf0\xbf\xe0\x8c\x4f\x72\xca\x9f\xcd\xd6\xd1\xc9\xb0\xb7\x3d\xca\xb3\x8d\xbf\x7e\xa8\x53\x17\x76\x06\xdc\xea\xdf\x1c\x45\xae\xfe\x6f\x5e\x7e\xfd\xf2\xf5\xa1\xdd\xfb\xaf\x8f\xec\x29\x44\x0e\xf9\xaf\x23\x87\x7c\xf8\xa5\x7b\x8b\x01\xc5\xbf\x48\x17\xee\x74\xf8\xfa\x68\x02\xd9\x20\x50\xd9\xf5\x56\xaa\xd2\x15\x47\xf0\xb5\x36\xed\x9b\x87\xc6\xa9\xbc\xf6\xc2\xe7\x08\x88\x56\xa0\x8e\xc3\x0c\x6b\xe0\x0a\x82\x00\x04\x6e\xc8\x57\xb5\x54\xec\xab\x68\x89\xcf\x55\x30\xb8\x1b\x16\x57\xd3\x66\x7c\x3d\x20\xe2\x39\x25\x4d\x3c\x35\x49\xfc\xbe\xe0\xbe\x9a\x36\x8f\x98\xe7\x46\x56\x6d\xfd\xd8\xf8\xf5\x34\x81\xe8\x9d\xcb\xf8\x75\x4b\xbb\xa4\x54\x0c\x10\xa9\x5d\xb6\xf6\x74\x19\x17\x41\x9e\xb2\x4a\x8a\x39\x7a\x79\x43\xab\xc7\x47\xae\xba\x5d\x4d\xfa\x42\x8a\x82\x35\x46\xbf\xd4\x46\x2a\x3a\x67\x2f\x1d\x90\x8f\x5a\x6c\x77\xc5\x1e\x7e\x02\x68\xfb\x39\x83\xd8\x4e\x09\xdf\x23\x94\xa8\xf6\x99\xf3\x40\x2f\x69\x01\x05\x3b\x61\xd7\xad\xb4\x14\xb5\x66\x16\x43\xb7\x7b\x47\xf5\x1e\x06\xf4\x5e\x4c\xc9\xa3\xa5\xb7\xfa\xb4\xa2\xda\xf0\xe2\xdb\x4a\x16\xd7\x97\x46\x0e\xb3\x42\xe6\xd0\x30\xd6\xc1\xd2\xc3\x04\x41\x8e\x7f\xbe\x24\x27\x5c\x5f\x13\xc5\xb4\x6c\x55\xe1\x9a\xbc\xad\x94\xb2\x7c\x6c\xd5\x5d\x1c\xf6\x32\x55\xcc\xb8\x66\x05\xa4\xa6\xc5\x02\x55\x7f\x17\x2f\xc2\x3e\x36\x52\x77\x6d\xeb\x07\xa0\x14\x8e\xb4\x7b\xfc\x1b\x7a\xab\x19\xee\xd2\xd4\xee\x92\xfd\x7a\x88\x68\xb6\xe3\x16\xa3\xf8\x36\x67\x27\x03\x7e\x9e\x9a\x36\x3e\xd3\x57\xf6\xdd\x07\x2a\x33\xb9\x92\xed\x10\x0a\x6f\x8e\x9c\xf1\x8a\x61\x9d\x2f\x38\x18\xef\x2e\x76\x34\x0f\x70\x7c\x29\x5b\x72\x4b\xd1\xe4\x0c\x4c\x66\x78\xd6\xe7\x15\x6f\xde\x90\x53\xa1\x5b\xc5\xba\xdc\xf6\x55\x10\xac\xd4\xea\xdb\x0f\x7b\x7b\x33\x5c\x0c\x4c\x88\xb3\xbc\x6c\x78\x65\x32\x1c\xa7\xa8\x9a\xe8\x37\xe4\x80\x7d\x34\xbf\x3b\x18\x91\x83\x8f\x33\x6d\xff\x11\x66\xa6\x0f\x26\xe4\xac\x6e\x2a\x5e\x70\x63\x75\x31\x31\x63\xaa\xb3\x93\xe2\x0f\x32\x35\x67\xda\x97\x3b\x49\x72\x24\xc0\x82\x45\x14\xd0\x73\xc7\x18\x1e\x00\xf1\x48\x1e\x7d\x20\x9e\x12\xbd\xcf\x66\x44\x62\xc6\x42\xbf\xba\x39\xd7\x61\x72\x8b\xd0\x6e\x75\x31\xa0\x4d\x53\x37\x3a\x14\xb6\xba\xb6\x9b\xf2\x65\xc9\x6e\x5e\xea\x92\xbe\x1e\xc1\x6b\x21\x7e\x2e\x57\xf6\x80\x6a\x72\xf0\xfa\xd1\xfd\x05\xba\x71\xc9\x6b\x5e\x51\x55\x2d\x47\xf1\x5e\x76\xf3\xcf\xa4\x0a\x80\x80\x25\xf5\xd5\x01\x39\xc4\x22\xe2\x20\xab\x56\xcc\x77\xf1\x0b\xcd\x80\x21\x71\x6a\x70\x8f\xbc\xd4\x78\x12\x92\x1c\x53\x42\x80\x31\xd1\xf2\x07\x51\x0d\xae\x09\x92\x0b\xfb\x3d\x1c\xbe\xec\xa0\x6a\x9d\x7f\x79\x26\x51\x6c\x61\xdd\x23\xbe\x93\x0f\x17\x4e\xfe\x7d\x6f\x71\x34\xa1\x0c\xc6\xbe\x91\xb3\xe1\x5d\x0b\x49\x90\x14\x76\x7d\xa0\x1e\x0e\x88\xc4\x17\xfc\xd7\x96\x91\xb3\x13\xcf\xa8\x1b\xa6\x34\xd7\x86\x09\x43\xca\x9e\x78\xca\x51\x66\x3d\x3c\xae\xe9\xdf\xa5\x20\xa7\xdf\x5e\xba\x89\x06\x5f\xb3\xfd\x3b\xdd\x81\xcc\x8a\xfe\xbd\x55\xcc\x0a\xf3\xc9\xfa\x46\x98\x69\x55\x5b\xb0\x9f\x93\x13\x6a\x28\x2a\x0d\x48\xfa\x65\xd7\xd3\x0b\x84\xfb\x29\xd4\x73\xf3\xcd\xe3\x12\x44\xfb\x1d\x8b\xd4\x16\xf1\x3e\x0c\xef\xdc\x6f\x7f\xfe\xe3\xc5\xd9\x0e\x04\xf2\x02\x34\xad\xf9\x7b\x59\xe6\x91\xca\x5f\x44\x13\x7a\xd9\x03\x1a\xe4\xbe\xc5\xcf\x49\x6d\x57\x22\x1f\xa4\x60\x23\x72\xc1\x68\x49\x2c\x15\x76\xff\xf9\xb3\xe2\x86\x4d\x5e\xec\x4a\x7a\xf3\x87\x98\x65\x23\xfc\x64\x7e\x13\x3e\x44\x6d\x13\xa1\xb7\x29\xd0\x2a\x27\x8c\x4d\x2b\x39\x25\x8e\x56\xec\xf2\xed\x7f\xbc\x38\xcb\xf6\xf2\x3f\x5e\x9c\xf9\x77\xb7\xff\x29\x67\xfb\xf9\xda\xfb\xa6\x91\x7e\xb7\xa2\x0a\xa6\x8b\xe4\xef\x5d\x8e\x00\xbd\xa3\x66\x3e\xbd\x8e\x39\xd9\xb1\x76\x99\xa1\xa4\x91\xd3\x60\xde\x10\x0b\xd7\x30\xe3\x16\x17\x83\xcb\x05\xf6\x89\xab\x9d\xa9\xeb\x51\x14\xc5\x32\x41\xaf\xbb\xf2\x0d\xa9\xdb\xca\x40\xd7\x17\xb8\x5a\xf6\xae\x41\x42\x95\xbf\x64\xc4\x75\x41\x25\xe4\x84\x61\xfc\x40\xf9\xc6\x57\x13\x0a\xbf\x58\xff\x83\xf7\x54\xd0\xb9\x7d\x1c\x18\x3e\xa9\xf1\xcf\xe8\x4e\x1f\xa2\xdb\x56\x84\xaf\xe8\x0d\xe5\x15\x9d\xf2\x8a\x1b\x10\xb3\x8f\x26\x7e\x2f\xb1\xf4\x0a\x80\xbc\x33\x62\xbf\x77\xba\x4a\xdc\x19\x02\xba\x09\x92\x43\xfb\xdd\xcb\x5b\xcb\x14\x8f\x26\xc0\x21\xe1\xc1\x05\x53\xb1\x3a\x33\x78\x65\x7b\xe1\x2f\x9e\x48\x0d\x4a\x57\x3d\xa2\x8b\x07\xbb\x31\x4c\xc4\xb5\xd4\x34\x8f\x88\x6b\x67\x5a\x2b\xe2\xc2\x17\xae\x49\xeb\x17\x2e\xe5\x6a\x56\x28\x66\x12\xe4\x5c\xb8\xf3\x03\x7f\x9f\x2a\xe9\xee\xdd\x85\x2f\x9f\x2f\x7c\x3c\x3a\xe4\xca\x72\x42\xdd\x74\x5e\x0a\x0d\x9d\xcb\xf1\xab\x95\x72\xc6\x78\x99\x2f\x1d\xdb\xf3\x1d\xcd\xe1\xf7\xf6\x0a\x0f\x29\xe4\x8e\x23\x99\x53\x85\x4b\x93\x67\x5f\xfc\x6c\x7e\x5b\x90\x9f\xc3\xc7\x64\xf0\xd5\x4e\x7c\xcd\x82\x35\x8b\x59\x7a\x0e\xbf\x9d\xe6\xbb\xcb\xbe\x03\xfb\x2d\x6b\x16\xe4\xbb\xcb\x35\x94\x19\x2b\x2e\xd8\xf7\xd6\xe8\xd6\x7e\xa1\x49\xc5\x67\xcc\xf0\x41\x9b\xb0\x63\xda\x5c\x4b\xc1\x8d\x7c\x74\xcf\x66\x92\xa3\xde\xbb\x5b\x7a\xd7\x94\xd5\xc3\x61\x31\xfb\xc2\x6f\x27\x79\x1f\x7d\x4a\x49\x21\xab\x8a\x15\xbe\xe6\x00\x20\x47\xc2\xce\xe1\x58\x63\x13\x74\x81\x7f\x7a\x72\xfd\x27\xb0\x0a\x3a\xfb\xdf\x4b\x44\xf4\x97\x17\xa7\xc7\x27\xef\x4f\x27\x75\xf9\x9b\x85\xbc\x1d\x1b\x39\x6e\x35\x1b\xf3\xa1\x25\x25\x77\x5e\x8d\x3e\x83\x96\xf5\x04\xd5\x5d\x1b\x6a\x16\x79\xd4\x2e\x3b\x93\x45\x9f\xae\xf3\xf7\x8f\x1a\xf3\xaa\xa1\x72\x95\x8b\x3a\x52\x52\x9a\x11\x51\x14\x42\xed\x42\x47\xd9\x59\x5b\x55\x88\x67\x46\x31\x36\x8a\x1d\x62\x2f\x9f\x95\x1f\x2f\x8d\xf4\x36\xf7\x8b\xd2\x84\xf6\x85\x3c\xa4\x8b\x66\x43\x75\x29\x92\x11\x61\x3a\x48\xfa\x28\x73\xd9\xfb\x1c\x9d\xbd\x66\x61\x11\xe8\x9a\x2d\x09\x54\xff\x9e\x49\x65\xaf\xad\xea\x5f\x41\x66\x0a\xd8\xf5\x97\xad\x66\x6a\x82\xd3\x7f\xe6\x27\x9d\x22\x6a\xc2\xfb\x5f\xb0\xd9\x7e\x9c\xf3\x05\x9b\xad\x3b\x66\xf7\x31\x74\xb1\x0d\x39\x14\x56\x92\x6d\xcd\x02\xf3\xfc\xb0\xcf\x38\x8a\xf9\x6b\xcf\x1d\xeb\xc5\x7f\xe6\x07\x9d\x54\x87\x3a\x47\x03\x10\x91\xa0\x94\x90\xcc\xcd\x12\x62\xff\x8a\xc3\x8c\xc4\xae\x12\x57\xbd\x56\x99\x58\xaa\x89\xdf\xb0\x6a\x19\x64\x75\x8c\x92\x2f\x5b\xac\x1c\x4b\x8b\xeb\x5b\xaa\x4a\xe8\xcb\xdb\x50\xc3\x9d\xe5\x93\x0f\x17\x2c\xed\xf0\xbd\x9c\x5d\x6d\x5a\xd7\x70\xc1\xa5\x5b\x6a\x7c\x63\x4b\xf2\x96\x0d\x73\xe9\x5f\xc2\x15\xe1\x75\x95\xa6\x2c\x8f\xa4\x83\xbd\xcc\x1e\x88\xda\x6a\x4c\x05\x53\x56\x59\xae\x96\xe4\x56\xc9\xa1\x95\xaa\xfc\x78\xa4\x27\x5d\xde\x30\x75\xc3\xd9\xed\xcb\x5b\xa9\xae\xb9\x98\x8f\xed\xcb\x8e\xf1\x0a\xe8\x97\x16\x13\xf5\xcb\xdf\xc0\x3f\x09\x50\x65\xea\x80\x10\x2c\x97\x07\x07\x39\xc4\xe1\xe4\xc2\xec\x76\x58\xfe\xb6\x6b\xaa\x6e\x61\xb0\x77\x49\xc6\x72\xb4\xf2\x1c\x5b\xd1\x52\x6a\x7c\xc6\x9e\x63\x8f\x5e\xd3\xb2\x1e\x58\xed\x95\xec\x0d\xb9\x1e\x6a\x1b\xe1\xa2\x1c\x76\x74\x39\x8e\x0d\x57\xef\x9b\x54\xdc\x67\x2e\xea\x2d\x04\x7f\x53\x6f\xe4\x86\x02\x9d\x3e\xa4\xbb\x1f\xd1\x9d\x2d\x6a\x7b\xf5\xfc\xea\xa5\xfe\xb5\x1a\x23\x64\xe3\xa6\xec\x0e\xf0\xf3\xb3\xe4\x3c\x87\x67\x6f\x0c\xcf\xfe\xbc\x1d\xe2\x7b\x1c\x74\xfd\x94\x57\x8a\x7c\x91\x56\x8b\x2f\xca\x83\xb3\x43\x9c\x48\xb7\x4d\xec\x9b\xca\xda\x49\x38\x8d\x84\xb2\x49\xae\xd1\x1e\x68\xa4\xc8\x59\xbc\xeb\x09\x72\x90\xa9\xa2\x35\x33\x4c\x75\x85\xa6\x0b\x29\x44\x4a\x9f\x4a\x23\xc9\x0f\x0d\x13\x97\x86\x16\xd7\x3b\x6c\x77\xf4\xac\x66\x3e\x34\x9e\xd5\xcc\x08\x88\x67\x35\xf3\x11\x63\x1f\xd5\xcc\xbd\xcb\x18\xf0\xf4\x14\x4b\x80\xb9\x4c\xa0\x2e\x9f\x19\x59\xd9\x67\xc8\x33\x87\x6a\x93\x52\xcc\xf8\xfc\x3d\x6d\xd2\x9d\xed\x7e\xa6\x15\xe5\x30\x7c\xec\xfc\xeb\x50\x98\xa5\x91\x0d\xb4\xf6\x72\x15\xfe\x60\xfb\x3f\xbd\x66\x96\xca\x8c\xdc\x85\xcb\x16\x2c\x9f\x80\xdf\x11\x28\x7d\x79\xa3\xb6\x9f\x4c\xb9\xe9\x24\x09\xcd\x0c\xf6\x11\x72\x8d\xd3\xa5\x20\x85\xab\x0c\x0d\xfa\x4f\xd4\xdf\x2a\x83\x4e\x25\x88\x2c\x8c\x2f\xb4\x17\xda\x0e\xbd\x7a\xf5\xea\x15\xf6\x9c\xf8\xe3\x1f\xff\x48\xa4\x22\x94\x94\xac\xe0\xf5\xdd\x07\xe1\xa9\xdf\xbf\x1e\x58\x96\xdd\x8e\xff\x7d\xfc\xfe\x1d\x54\x25\x68\x8c\xc6\xce\x6e\x08\x91\x9d\xb8\xb7\xa8\x1e\x91\xff\x79\xf9\xc3\x87\xae\x65\x58\xff\x5b\xf0\x1c\x84\xed\x1c\x0e\x4f\xec\xce\x7c\xf5\x87\xdf\xfd\x2e\x61\x26\xae\xa0\x96\x0f\x77\x95\x46\x7d\x81\x05\x6a\xf9\xb1\x62\xd8\xcb\x03\x04\x08\xaf\xc1\x62\xf9\x1b\x33\xb8\xad\x00\xf1\x02\x4a\xcd\xe7\x0b\xe3\x8a\x24\xda\x2b\x5e\xf1\xc2\xa0\x20\x80\xa5\x65\xa4\x2b\xa4\x0a\x97\x1e\x61\x08\xda\x7b\x42\x40\x47\xc9\x46\xa4\xe2\xd7\x8c\xcc\xf4\x5f\x94\x6c\x9b\xae\x01\x28\xf6\x3a\xf0\x95\x3f\x10\x88\x0e\xf7\x07\xf7\xcf\xdb\x97\x54\xca\xa4\x88\x8c\x5c\x44\x06\x80\x58\x31\x39\xb8\xba\x7f\x5d\x43\xc9\x86\xf2\x50\xea\x03\xd2\xbd\x50\x96\xed\xcb\xc8\xc5\xc0\x72\x4a\x76\xbc\x0d\x1c\xc5\x17\x7e\x6f\x94\xfc\x0f\x44\x72\x28\x70\x19\x71\x74\x28\x0c\x69\x71\xce\x97\x85\xec\x02\xdd\x06\xaf\x7f\xcd\xb0\xf0\xa3\xd5\xd7\x98\x08\x2d\xda\xe0\xed\xa1\x86\x63\xb4\x37\xd0\xbb\x9e\x6b\x0b\x1a\x74\x12\x71\x10\x0f\x5e\x7b\xcd\x9b\x86\xd5\xe0\xde\x6b\xbc\x11\xad\xb8\xb3\x2a\x56\xe0\x4f\x58\x19\x58\x3a\xbc\x20\xf5\xdd\x33\xbb\xb5\xb1\x76\xb1\x6b\x4e\xe1\x9e\xf5\x58\x10\x0e\x6c\x78\xbb\xef\xe8\x48\x35\x33\xad\x3b\x7a\xa6\x94\x54\xf6\x5d\x99\xd6\xae\x2f\x53\x4d\xd5\x35\x2b\x03\xff\x9b\x90\x73\xbb\x29\xbe\x2f\x46\x82\x89\xa7\xa2\x56\x0b\x43\xa3\x36\x5d\xc2\x6b\x3a\x85\x1d\x80\x7b\x31\x99\xbc\x40\xc2\x2b\x15\xd1\x86\x2a\x47\x0d\xed\xe7\x69\x94\x67\x87\x71\x5c\x3d\xba\xf1\x9e\x36\x1a\x5b\xa6\x73\x31\x07\x04\x00\x1b\x06\xbc\xb3\x63\x3e\xd4\x9d\xd1\x70\xde\x92\xc1\xc2\x90\x6a\x70\xc7\x31\x1e\x5c\x5f\xd8\xff\xde\x6e\x4c\xca\x3d\x4f\x36\x93\x00\xa5\x4a\xeb\x01\xdf\x43\x80\xeb\x7e\xc5\x66\x23\x3d\x35\xca\xd1\xf2\x3e\x59\xf9\xad\x13\x84\x70\x1c\x39\xcd\x42\x08\x4f\x3f\x58\x65\x2b\x49\xdc\xa0\xf5\xa7\x4a\xb8\x43\x38\xf6\x48\x00\xc7\xb1\x6f\x62\x38\x8e\xb3\x19\x90\xf2\x15\x96\xed\x58\x4d\xac\x54\x79\x59\xc3\x9e\x5d\xea\xa2\xbb\x93\xa0\x71\xec\x44\x8e\xc6\x91\x43\x9a\xc6\x91\x2e\x53\xe3\x48\x09\x0b\xc6\x91\x97\x70\xf8\xe0\x62\x3c\x0c\x27\x76\xa0\x64\x31\x0b\x08\x00\x5e\x4f\xb0\xa9\x78\x62\x9c\x4c\x2f\x9c\x50\x83\x24\x83\x4e\xb5\xac\x5a\x83\x0b\xe7\x9a\x3a\x96\x97\xe0\x85\x58\x05\x15\xd9\x93\x84\xa4\xd5\x45\x22\xd9\x0b\xa4\x63\x14\x57\xd2\x57\xd8\xcf\x98\xf6\x14\x57\x48\x2e\xb4\xcd\xeb\x02\xd9\xbd\xfb\x63\xe7\xae\x8f\xdc\x6e\x8f\x7d\x73\x79\xe4\x4c\xc2\x1f\xe8\xea\x08\xf6\xd1\x1c\x77\xc7\x4f\x16\x8a\x8b\xdd\x2e\x98\x4b\xfa\x88\x94\x5f\x2b\x64\x59\x16\x0a\x1a\xb9\xef\xd3\x88\x2d\x2d\x76\xe5\x2d\xcf\xeb\xee\x29\x34\x4f\x77\x22\x68\x4e\x0e\xdf\x86\x8a\xb1\x3e\xfd\xf2\x4c\x18\xa6\x66\xb4\x60\x47\xb1\x73\x81\x35\x0b\x56\x33\x65\x37\xde\x3d\xe7\x0b\x90\x2e\xa8\x28\x5d\x6b\x1e\x77\x8b\x08\xfb\x68\x98\xb2\x87\xf4\xf6\xf2\x8c\x94\x8a\xdf\x30\xa5\xc9\xe1\xb7\xcc\x50\xdf\x92\x67\x50\x15\xa8\x5d\xd7\x19\x82\x17\xd9\x85\xeb\x03\x16\xde\x35\xeb\x41\x28\xbc\xb4\x24\x22\x46\xd4\x9d\xb2\x6f\x22\x64\x31\x42\xc7\xfe\xa6\xe1\x04\xf5\xad\x14\x20\x24\x03\xf5\x5f\xca\x56\x61\x3c\xaa\xeb\x40\xc0\x48\x21\x95\xb2\xe2\x3a\x00\x44\x35\x51\x6c\xce\xb5\x81\x56\x09\xbe\x39\x1e\x96\x5b\xdf\x59\x19\x93\xbd\x0a\xec\x0b\x11\x7c\x1b\x0a\xc4\x0c\x5e\xc3\x29\x78\x8d\x92\x37\xbc\xf4\xfa\x5d\xcc\xae\xb9\x26\x0d\xd5\x51\x31\x61\xaa\xb5\x2c\x38\xf8\xc3\x3a\x2c\x1a\xbc\x3e\x1a\x46\x41\x7b\x2c\x99\xb1\xca\xbe\x60\xbd\x4a\x98\x71\xcc\xa1\x24\xb4\x69\xaa\xc1\x89\x28\xc9\x68\x21\x64\xc9\xce\xdb\x69\xc5\xf5\xe2\x72\x5f\xe2\xa8\xd6\xc1\x84\xb9\xbb\x77\x12\x7e\xee\x8b\xa7\x4a\x88\xe1\x12\x9a\x83\x02\x66\xc5\x27\xab\x6f\x72\x29\xc0\xf2\x45\xb5\xf6\xab\xc6\xa4\x46\x82\x18\x5a\x31\xc3\xfc\x57\xc3\xc5\xea\xee\xbd\x5d\x21\x76\xab\xa2\xdb\x4f\x7f\x14\x4d\xef\xf3\x82\x56\x55\x82\x21\xa4\x2f\x71\x7b\x61\x06\x2d\x02\xbe\xa8\x3b\x5e\x18\x6e\xef\x92\xdf\x65\xc8\xb8\x42\xee\x35\xc1\x5e\x7d\xc3\x25\xde\xb5\x07\xa7\xa3\x6e\xe1\x52\xf8\xd3\x1d\x59\xf9\xdc\xff\x20\x60\x00\x56\x3d\xc2\x7b\xfc\x1c\xdd\xf6\x1c\xdd\xf6\xc0\xd8\xb9\x8a\x47\x9e\xa3\xdb\x1e\x3b\xf6\x31\xba\x6d\xef\x22\xd0\xbd\x1d\x1b\xd9\x23\x2d\xc7\x50\x84\x0d\x63\xb0\x5a\x6c\x05\x1b\xa4\xd4\x54\x29\xf8\x81\xb4\xfc\x9d\x45\x80\xe3\x7b\x1d\x1b\xa3\xf8\xb4\x35\xc3\x49\x71\xde\xd0\xc3\x0e\x1e\xd0\x56\x99\x76\x32\xc3\xd8\x1d\x59\x11\x31\x0f\x67\xf3\x0f\x1c\x2d\x92\x34\x12\x55\xa5\x49\xd0\x5d\x40\x6d\xc1\x0f\x5f\x68\x52\xca\xa2\xad\x99\x30\x1d\x86\x74\xa9\x2f\xe8\x76\xd9\x21\x57\xa5\x65\xc9\x51\x28\x39\xcf\xc0\x5f\x93\xc8\x51\x29\x6f\x85\xe5\x47\xc7\xe7\x83\x0a\xa3\xf6\x8b\xa2\x76\x73\xc5\x56\x0d\xff\x31\xb1\x9f\xd3\x29\x74\x8f\x76\xfd\x07\x9f\x23\x28\xd7\x4e\x91\xe7\x9a\xae\x73\xd4\x1a\x49\x5a\xcd\x36\x46\x48\x76\x8e\xd6\xac\x2b\x3f\x07\x6b\xee\x87\x97\xf8\x39\x58\x73\xe8\xca\xcf\xc1\x9a\xc3\x96\xef\xd1\xb3\x33\x8c\xb8\xb4\xe2\x5c\xe5\x1a\xdd\xf5\xf8\x83\x0b\x54\x48\x38\xa8\xfd\x0a\x32\x3b\xe9\x78\x22\x1a\x37\x56\xcb\xac\xae\xd8\x61\x90\x16\x76\x6e\xf1\x28\x87\xce\x33\x4d\x50\x36\xbf\x84\x80\xb4\x3d\x08\x28\x83\xbd\x4c\xb0\x09\xe2\xe8\x17\x53\xeb\x2a\xf3\x61\x6b\x5a\x8c\xd8\x8d\x42\x86\x1b\x59\xbe\xc1\x6e\xac\x54\x08\x89\x22\xaa\x1e\x61\x37\x5b\x3d\x72\xb5\x21\x40\x49\x6d\x68\x81\x56\xb2\x96\x97\x40\x53\x83\x10\x3b\xb8\x89\x00\x8e\x2c\x58\x40\x32\x61\x02\x01\x6c\x80\x2d\x3a\x4f\x41\x09\x92\x0d\x2d\xec\xa0\x0d\xff\x89\x29\x9d\xd0\xeb\xaa\x1b\xfd\x2e\x94\x38\xab\xc7\x06\x5d\x2c\x58\x4d\xe1\x3f\xbf\xf3\x5b\x60\x09\xa4\xd5\x3a\x0d\xc3\x76\x56\x4c\xd5\x9a\xc8\xd9\xa8\x97\x90\x7d\x70\x93\xd2\xe1\xc9\x8f\x4c\xc6\x0c\xe2\x2f\xd3\x79\x72\xf4\x11\x59\xdd\xb0\xf3\x5e\xac\x90\xbd\x48\x20\x47\xda\xbb\xe5\xdd\x4f\x5d\xdc\x36\x30\x11\xdc\xe1\x3d\xda\x9c\xfc\x96\x1a\x1c\xfb\x16\x24\x3a\x34\x38\x74\x14\x02\x08\xfa\x22\x7b\x22\x38\xcf\xc1\xa1\xfd\xf1\x1c\x1c\xfa\x1c\x1c\x9a\x35\x38\x34\x12\x76\x3c\xdf\x5a\x13\xe7\x19\xc7\x31\xf8\x60\xcf\x29\xf3\x7a\xbf\xb3\x38\xf8\x58\x4d\x1f\xa8\x29\x55\x3f\x1f\xe5\xc5\x64\xf2\x02\x33\x52\x3a\x13\x45\x6b\x66\xe3\x3f\x11\x26\x0a\x59\xda\x79\xae\x60\x7e\xa5\x0d\x88\xf0\x9d\x9f\x27\x86\xa5\xf6\x6b\xc5\x39\x2d\x30\x77\x0e\x89\x2a\x99\x55\xf8\xde\x6e\xdf\xe5\x17\x4c\x93\x89\x7b\x27\xce\x86\x0e\x74\x6e\x8b\x43\x4b\x6c\x27\xd7\xfa\xef\x35\xa9\x78\xcd\xa1\x99\x44\x09\x14\x8e\x69\x93\xe6\xe8\x22\xe4\x10\xa7\x9c\x14\x4d\x3b\x72\xd3\x4f\x6a\x56\x4b\xb5\x1c\x85\x25\xec\x97\xbd\x35\xdd\x13\x47\x20\x44\x17\xad\x52\x4c\x98\x6a\x19\x89\xd3\x5f\x9a\x34\xed\x4f\x60\x4f\x84\xe9\x80\x20\x29\x65\xfe\xbb\xd1\xa7\x41\x5d\x78\x1d\xb8\x9a\xc3\x2e\x02\xef\x74\x75\xef\x46\x5d\x50\xa3\xfd\x94\x89\x1b\x72\x43\x95\x4e\xbb\xf3\x24\xaf\xfc\x5c\xf2\x1b\xae\xe5\xe0\x18\xb4\x68\xa2\x78\x7b\x2e\x83\x07\xcd\xde\x54\xd9\x9a\xa6\x35\x8e\x9d\xf8\xeb\xeb\x9b\x8f\x87\x6b\xbb\xa2\x68\xbc\x1e\xea\xa0\xec\x46\x43\x8d\x61\x4a\xbc\x21\xff\xe7\xf0\xdf\x7f\xfb\x8f\xf1\xd1\x9f\x0f\x0f\xff\xfa\x6a\xfc\x3f\xfe\xf6\xdb\xc3\x7f\x9f\xc0\x7f\x7c\x75\xf4\xe7\xa3\x7f\xf8\x3f\x7e\x7b\x74\x74\x78\xf8\xd7\xef\xdf\xff\xe5\xea\xfc\xf4\x6f\xfc\xe8\x1f\x7f\x15\x6d\x7d\x8d\x7f\xfd\xe3\xf0\xaf\xec\xf4\x6f\x5b\x4e\x72\x74\xf4\xe7\xff\x9e\x0c\x3a\x15\xcb\x1f\x12\xe9\x30\x8e\x71\x46\x79\xa0\x3f\x63\x16\xf4\x5b\xd1\x52\xb8\x30\x63\xa9\xc6\x38\xf5\x1b\xe8\x31\x9b\xb8\x80\x47\xaf\xdc\xf7\xbf\x93\x41\xba\xc6\xfd\x5e\x41\xdc\xa3\x0b\xfe\x14\x3a\x60\xe6\x0c\x0c\x08\x09\x39\xe1\x3b\x2b\xc6\xe9\xd7\xef\x57\x5c\x31\xac\x6e\xa4\xa2\x6a\x49\x4a\xe7\x72\x58\x6e\xec\x6d\x92\xad\x06\xe7\x63\x1a\xdf\x02\xe8\x25\x1f\x72\xab\x77\xec\xb2\xac\x59\xc9\xdb\x7a\xd7\xde\x4a\x84\x22\x3e\xf8\x5b\x7b\xc4\x10\xb1\x24\x67\x21\x20\xde\x3d\xe6\x7c\xc6\x53\x5a\x5c\xa3\x11\x21\x60\x46\x8a\x67\xa9\xd7\xcd\xfd\xe0\xc0\x85\xba\xd6\x8c\x8a\xe0\x39\x85\xb0\x6c\x59\xb2\x17\x3a\x3c\x8b\x20\x65\x71\x56\x62\x48\x96\x4b\xf1\x3a\x74\x0b\x1c\x59\x55\xe8\x3d\xc8\xaf\x3b\x6b\xeb\x9c\x80\xdd\x24\x4b\xdd\x7e\xfe\x77\xf6\xce\xca\xfa\xbb\x46\xd3\x00\x88\x8f\xd1\x37\x12\xcc\x3a\xae\xfb\xd2\x8c\x54\xb2\x88\xf2\x37\x7a\xa2\x28\x20\xea\xa9\x27\x71\xa9\xd1\x4a\x16\x5d\x2d\x34\xa8\x03\x81\x4b\xad\xd2\x18\x6f\xcd\x0b\x3a\xad\x18\x9a\x8e\x00\x6f\x92\x71\xd4\x2e\x56\xd3\x8f\xbc\x6e\x6b\xd2\x6a\xfb\x66\x52\xf4\xe7\xee\x5e\xec\x16\xaf\x26\xde\x95\x9a\x0b\xf8\x51\xcf\xcc\x36\xdc\x79\xb5\x60\xe4\x32\x9c\x40\x67\xf4\xc5\xf0\x45\x67\xd3\xd1\x2d\xa8\xfe\x0e\x3a\xa7\x80\xca\x19\x84\xd9\x06\x3d\x44\x13\x28\xef\x30\xb0\x4d\x61\xb7\x29\x11\xc1\x10\xbc\xea\x53\x0c\xa0\x5f\x8b\xe8\x80\x5a\xe1\xd2\xa3\x3e\xd7\x7b\xfc\xd9\x49\xf1\x89\xb2\x7b\x2e\x89\x3d\x8b\x9c\x9e\x5d\x3a\x0f\xe9\x66\x3b\x13\xf7\x42\xbe\x5b\x4f\xde\x73\xf6\xe8\x35\xb9\x6f\xd4\xe7\x19\x05\x02\xeb\xa2\x00\x07\x2d\x7f\x15\x6c\xdf\x4e\x78\x2c\x96\x85\xeb\xaf\xc3\xbb\x18\xc5\x10\xa7\x86\x77\x17\xea\xf2\x8c\xed\xff\x79\x1b\xb9\x0f\x5f\x9a\xb2\x19\x86\xf7\xe3\x6f\xc0\xbe\xa8\x87\x55\x08\x42\x2f\x41\xc5\x0c\x14\x22\x62\x22\x4c\x0a\x39\x0a\xb5\xbc\xb1\x24\x64\xd0\xcc\x3f\x6a\x17\x60\xc7\x07\x5e\x0b\x7a\xd4\x2b\x30\xa9\xd1\xe0\x27\x18\x2b\xb1\x68\x52\xd5\xed\x80\x6a\xc5\xc0\xf7\x9f\x1e\xf9\x1c\x46\xa0\xdc\x42\x2a\xf0\x88\x20\x11\x43\x53\xbe\x62\x16\x05\xa0\xef\x91\x92\x35\xd1\x82\x36\x7a\x21\x0d\x98\x8d\x69\x43\x0b\x6e\x06\x57\xbb\x31\x8a\x16\xd7\x76\x66\x88\x62\x82\x37\x1b\xf6\x1a\xc5\x91\x4b\xd9\x8f\x71\xb5\x5f\x66\xca\x2c\x94\x6c\xe7\x0b\xa8\x43\x84\x4f\x15\x15\xd5\x58\xf4\x6a\x58\x00\xe2\xda\x35\x9d\xa1\x53\x93\x72\x29\x68\xcd\x0b\x7f\x7e\x90\x45\xa6\xb9\x74\x01\x26\x00\xcb\xd0\x6d\xa3\xe4\x9c\x29\xcd\xb5\x61\xc2\x60\xac\xcb\xdb\x8a\xf2\x9a\x1c\x6a\xc6\xc8\xa9\xbf\xea\xf8\xcd\x25\xaa\xe9\xe8\xdc\x1a\x9e\x76\x10\x07\xcf\xb8\xce\x97\xae\xac\xb4\xfd\xc4\x3b\xf5\xa2\x80\x52\xa0\xc3\x83\x5f\x50\x94\xeb\x5f\xf1\x28\xe1\x32\xae\xdf\x33\xa9\x20\x43\xc8\xd9\xe7\x6e\x98\x28\x65\x17\x58\x3d\x68\xad\xe3\xf3\x33\x1d\x1b\x44\x91\xa6\x35\xb8\x3a\x7c\x51\x49\x31\x8f\x1b\xfb\x05\x8a\x38\x68\x3d\x2b\x70\x09\xc2\x45\xc9\x6f\x78\xd9\xd2\x0a\x45\xad\xc1\xdb\xf4\xf6\xf2\x0c\x81\xe4\xf3\x85\x19\xdf\x32\x70\x27\xa2\xac\xdd\x71\x11\xff\x6a\xfc\x4e\xca\x2c\xd7\x20\x94\x19\x62\xe4\x30\x82\xc4\x9c\x1b\xdb\x6e\xda\x2d\x5d\x42\xaf\x68\x97\xf6\xd8\x8b\x34\x77\x27\xe6\x96\x9d\xc9\x61\x32\x43\xed\xa5\x3c\x87\xdc\x03\x37\xee\x18\xc8\x70\x41\x05\xa8\xae\xe0\x85\xb6\xf8\x0f\x34\xf5\xee\xae\x0d\xa5\x38\x4d\xc0\xe0\x6e\x2a\x14\x7c\x35\xb5\x37\x6e\xa0\x45\x66\xc7\x56\x91\x9b\xee\x36\x5e\xb1\xba\xa9\xa8\xd9\x79\x40\xf7\xcf\x91\x53\x3e\x8a\x15\xb4\xac\x83\x8a\x72\x4c\x2b\x4b\x32\xce\x7f\x7a\xeb\x2a\x99\x21\x61\xcf\x92\x19\x73\xe5\xc5\x0f\xe1\x34\x1c\x54\x65\xd7\xd2\x74\x68\x3e\x37\x65\x25\xc8\x03\x0e\xe2\x94\x54\x4a\x79\x2b\x98\xf2\xf7\xea\xfc\xa7\xb7\x23\xc2\x27\x6c\xe2\xff\x0a\x4b\x78\x71\xc9\xc8\x39\xd6\xaa\xf0\x15\x73\x86\x47\x18\xca\x72\x82\xaf\x1e\xfb\xaf\xe3\x35\x7f\xf9\x17\xbb\x29\xf6\xdb\x7f\x1d\xff\x8b\x63\x30\xf0\xd7\x2f\x56\x6a\x4b\xc8\xa6\xfb\x65\x65\xb6\xb8\x1e\x00\x88\x3b\xf6\xaf\x5f\xce\x65\x79\xd9\xb0\x62\x82\xdb\xaf\x7f\x49\x0a\x7a\x25\x84\x09\xa3\x96\x13\x72\x2e\x21\x43\x86\x97\x48\xd0\xe0\x5d\x15\xfb\x0f\x1f\x90\x01\x68\x10\xbc\xbe\x05\x35\x4c\x80\xf4\x2b\x86\x77\xd6\x26\xbe\xcc\x26\x2c\x0b\x64\x9e\xc2\x3e\x1f\x82\xab\x0e\xab\x8d\x8f\x88\x91\x12\x78\xd4\x50\x6e\x6b\xc7\xb1\x20\xec\x23\xd7\xd0\x56\x04\x4f\x12\x90\x84\xba\xd2\x06\x5e\xe5\xb0\xc0\x58\xbc\x0b\x6d\x72\x1a\x39\x3c\xe2\x16\x76\xf0\x2b\x21\xcd\x57\xe1\xf2\xfa\x8c\x35\xd0\x2d\x24\xa1\x37\x92\x97\xa4\xd5\x20\x73\x0a\xd2\x0a\x08\x59\x48\xa8\x28\xeb\xb0\x67\xba\x24\x35\xd7\x86\x5e\xb3\x09\xb9\xb4\xea\x48\x1c\x46\x8c\x38\x25\xc8\xb4\x92\xc5\x35\x2b\x49\x2b\x0c\xaf\x92\x2c\x33\x01\x6e\xd8\xda\x48\x55\x81\x1a\xb2\x6d\x61\xa5\xdc\x46\xb1\xb1\x57\x98\xf0\xa9\x04\x8b\x31\x32\xf4\xb0\xab\xdd\x59\x8d\xc2\x55\x5d\x50\x34\xdd\x36\x25\x2c\xe9\x72\x5f\x13\x89\xd1\x9d\x3c\x7d\xbb\x9f\x12\xfe\x76\x7f\x00\x92\xe9\x09\xf9\x00\x9a\x4b\x35\xfc\x52\x62\xd2\x04\x5a\xbb\x5d\x84\x8c\x60\x05\xd3\x9a\xaa\x25\x26\x16\x73\xe3\x73\xda\x5b\xcd\x66\x6d\x05\x0a\xe3\xf0\x4d\xa5\xa2\xb5\x00\x13\xc5\x0a\x29\xb4\x51\x6d\x01\x58\x43\xc9\x54\xc9\x6b\x26\xba\x42\x1f\x09\xcc\x24\xce\x98\xee\x92\x3a\xad\x78\x2d\x24\x29\x16\x54\xcc\x59\xa8\x2c\x4c\x6a\x5a\x02\x26\x7f\x1f\x8c\x1f\xc3\x37\x53\x06\xbc\xa0\x33\x63\xc5\x42\x03\x08\x32\xb5\x5a\x82\x8f\x46\x1a\xfe\x62\x17\x21\xe1\xbb\x8e\x02\x9a\x04\xaf\x76\x98\x6a\x98\x1e\x51\x32\x06\x6d\x75\xa8\xc1\x30\x43\x04\x49\xcd\x0c\x2d\xa9\xa1\xfb\x52\x43\xe0\x3d\x5d\x86\xc8\x34\x8c\xd9\x07\xd4\x8d\x62\xf9\x9d\x9a\xe0\xed\x43\xb2\xe1\x71\x7d\xeb\xf3\x9f\xde\x26\xad\x0f\x06\x21\xc0\x56\x68\x8e\x65\x2c\x95\x71\xa1\x8b\x70\xab\xb0\x74\x84\xaf\x08\x60\x41\xf3\x90\x20\x1b\x67\x25\x29\xdb\x64\x6f\x76\x27\x22\xa4\xc4\x4e\x65\x89\x9c\xb2\xf8\xb9\x2f\xc8\x71\xd5\x05\xa3\x17\xfd\xec\xf4\xb5\x8a\x3e\xc6\x2c\x32\x61\xb8\x62\x51\xfd\xf5\x24\x10\x1c\xbe\xb5\x02\x29\x69\x1f\xf3\x10\x35\xe7\xcc\xe8\x2e\xed\x12\x05\xca\xc4\x55\x8d\x53\x92\xf0\x8d\x40\xf3\xf3\xd8\xe8\x7c\x2d\x6b\x37\x20\x69\x4d\xc4\x73\x2d\x9d\xe0\x68\x45\xee\x9d\x23\x63\xbe\xa8\x39\x5a\x58\x3e\xff\x5e\x96\xe9\xe1\x77\x79\xe3\x40\x7b\xa0\x75\xc5\x6d\xb0\x06\x94\x06\x77\x27\x3e\x00\xa1\xd4\xba\x57\xeb\x1e\x25\x99\x05\xbd\x49\xae\x07\x3d\xd8\x17\xd6\xd9\x2b\xc6\xde\x2d\x86\xe0\x8e\x01\xdc\xf1\xeb\x44\xc0\xd2\x13\x10\xfd\x48\x4c\x44\xec\x03\x94\x25\x46\xec\x09\x2a\xbe\xfa\x61\x59\xfc\x65\x96\xf8\xb0\xdc\xd8\xde\x41\xe6\xc4\x56\x97\x2e\x10\x12\x5b\x5c\x95\x4c\xc6\x2d\x13\x4e\x3f\xaf\xaf\x7a\x6a\xaa\x33\xae\x04\xff\x06\x96\x94\x3a\xf4\x0e\x8f\x89\x43\x6b\xdf\x8c\xab\xff\xf8\x51\x66\x60\x40\x2b\x5f\x6f\x03\x4f\x5e\xe9\xcc\x65\x47\x7a\xcb\x15\x53\x90\xa9\x13\x55\xba\xb4\xa4\x46\xc9\xaa\x62\x0a\x8e\xc0\x39\x35\x56\x12\xc0\xec\x69\x11\x0c\x03\x1c\xde\x9e\xc3\x0f\xef\xe6\x0b\xa6\x36\xc1\x6e\x83\x76\x4d\x35\x36\x82\xf6\x11\xf0\xe0\xbe\xf4\x59\x7d\xeb\xe0\x49\x27\x79\x3f\x7b\x67\xe0\xb1\x58\xe2\xe6\x9f\x44\xc8\x89\x2e\x33\x32\xb7\xa0\x72\x4d\x98\xa0\xd3\xca\xaa\x23\x11\x02\x07\x38\x57\xa4\x53\x23\xa3\xa7\x2e\xd8\x2c\x7d\xeb\xc0\x87\x19\x4f\xb9\xdd\xda\x28\xde\xf6\x7e\x38\xe9\x72\x61\x9d\x6d\x26\x43\x7f\x60\x3f\x1c\xd6\xf5\x96\xe8\xe7\x47\xad\x40\x13\x37\x9f\x59\xfb\x06\xa9\x30\x65\xcb\x26\xc8\x97\x4f\x00\xed\x43\xf8\x40\xff\x40\x7f\x9a\x24\x3b\x21\x8e\x7c\x69\x09\x90\xe5\x0b\x29\x61\x39\xe2\xbb\x73\xf3\x1d\x82\x6e\x3b\x80\xcf\x9b\x80\xe7\xf0\x87\xd7\x29\x42\xbc\xf3\x94\x59\xea\xdc\xf5\xa2\x4a\xbf\x17\x04\xef\x46\xbc\xfe\x9a\xd4\xc1\x8e\xcc\x7d\xcf\x45\x19\x92\x38\x7d\x51\x58\x2b\xa0\x1d\x9f\x9f\x21\xd4\x79\x60\xfa\x0e\x78\xc2\xd2\x29\xbc\x66\xc1\x55\x39\x6e\xa8\x32\x4b\x74\x6d\x8d\x7a\x10\x87\x7a\x8e\x19\x96\xce\x1a\x69\x6f\x2f\x53\x76\x94\x83\x23\xf0\x61\x89\x2e\x6e\xf6\x5e\x0c\xd9\xb7\x1d\x49\xad\x12\xe9\x47\x6f\x47\x3e\x74\xdd\xd1\x82\x13\xe7\x33\xd9\x91\xa7\xca\x18\x27\x7d\x6e\xb6\xbf\xb2\xb6\x65\xb5\xba\x9f\xbb\x84\xa2\x2f\xd8\x2b\x9c\x1b\x52\xc6\x65\xc3\x82\x96\x09\x56\x7e\x3b\xd3\x88\xf0\x99\x15\xda\xa4\x18\x43\xe4\x63\x32\x78\x5d\xd8\x93\xd3\x74\x27\x2e\xbd\x19\x2d\xf0\x40\x98\x22\x28\xa3\xa5\x3b\x3a\x48\x0e\x85\x1c\x6e\xa0\xf7\x03\x68\x2b\xae\x75\x84\x19\xed\xf7\x44\x92\x4c\xd3\x3b\x5a\x91\x4e\xf2\x8c\x4d\xf7\x11\x2f\xf0\x22\x31\x17\xa5\xbd\x54\x20\x22\x81\x51\x5f\xb7\x45\xc1\x58\x70\x19\x3a\xb2\x94\xae\xd2\xf6\x78\x8f\xdb\xf2\x9a\x9a\x62\xc1\x34\xd1\x12\x5a\x1f\x6b\x43\xab\x8a\x95\x21\xd4\x09\x11\x45\x82\x56\xe1\xc2\xa0\x92\xe1\x88\x94\x95\xf4\x2d\x8e\x1c\x23\xce\xeb\xda\x54\xd4\x39\x95\x66\xad\x28\x30\x7f\x91\x9b\x65\x88\x32\x59\x55\x4c\xc1\x0e\xad\xc1\xd7\x96\xae\xfa\xcc\x30\x62\x24\xb2\x29\x07\x64\x06\xe6\xbf\x44\x76\xbf\xa0\x37\xac\x8b\xf6\x70\x4d\x23\x2d\x97\x0e\xa5\x6e\x33\xe0\x7a\x54\x2a\x77\x84\x1a\x42\x2c\xb0\x8b\x17\x71\x30\x38\x17\xb9\x55\x99\x78\x1f\x0e\xa3\x4d\xbf\xa3\xe2\x1c\x05\xd5\x46\x33\x13\x8a\x78\xa7\x4b\xbc\xc4\xc5\xcf\xd3\xd6\xc8\x9a\x1a\x5e\x80\x8b\x8e\xcf\xa2\x20\xb1\x1a\x03\x2f\x2c\xa5\xf1\x81\xf0\x28\x22\x81\xe0\xe6\xce\x2d\x13\x19\x58\xaf\x2c\x3d\xc1\xc6\x47\x7b\xed\x4e\xb9\xbf\xad\x7e\x5b\x22\xd1\x33\xd3\x7b\x5e\xf9\x8a\xc8\xc4\x2c\x14\x63\x84\xd7\x8d\x54\x86\x0a\x43\x4a\x3e\x0b\x35\xba\x7d\x84\xe1\x26\x9c\xc8\x61\x0f\xfa\x19\xe2\x6a\xa3\x55\xd0\x61\x5a\x55\xf2\x56\x13\x73\x2b\x83\xcb\xa1\x8b\xef\x72\x35\x8f\x47\x7d\x60\x32\xc8\x38\x6e\x55\xcb\xea\x2c\x5e\x45\x7c\x68\x64\x69\xcf\x2d\xab\x2a\xfb\xef\x26\x6e\x94\x5c\xc7\x64\xed\x9e\xf0\xb9\xc0\x32\xb4\x5c\x7b\xe7\x97\xab\xa1\x72\x58\x2a\xd9\x34\x2e\xf8\xa1\x3e\xca\xbf\x27\x10\xbc\xae\x6e\x98\x86\x24\x13\x5f\xd7\xc5\xa2\xc2\x9c\x09\xa6\xa8\x81\xf0\x3a\xd7\xde\x15\x44\x92\x55\x20\x53\x9d\x3e\x38\x32\xda\x45\x1e\x40\x3a\x0c\xbd\x5c\x8f\x64\xfe\x19\xf7\x6d\x86\xf7\xe2\x02\xf1\xcd\xd3\x9d\x0c\x08\x04\x9d\x72\x8e\xc8\x8f\x1a\xd1\x22\x70\xde\x50\x87\x67\x2b\x2b\x9b\xab\xb7\x8e\x86\xb6\x0c\x40\x1d\x57\xcd\x22\x82\x2a\xb6\x4b\x85\x12\x72\xfd\xbd\xee\xc1\xfb\x56\x49\xad\x3f\xf8\x9f\x7c\x42\xd0\x9f\x6d\x56\x0f\x8c\x67\x9b\xd5\xb3\xcd\xea\xd9\x66\x05\xe3\xd9\x66\xb5\x3a\xbe\x14\x9b\x15\xe9\xd8\xd5\xbe\xd2\xa6\x0f\xb1\xea\xd2\x67\xb0\x4f\xbc\xcf\x84\x7c\x90\xc6\x85\x18\x83\x06\x4b\xef\x75\x3a\x51\xe0\xd0\xb7\x74\x39\x11\xcc\xb8\x4e\x26\xde\xbf\x7b\xe1\x61\xfa\x8b\xb2\xda\x88\x33\x7d\x44\x74\xc3\x13\x32\xdf\xde\x26\x5a\xc5\x48\x14\xcd\xba\x88\x67\xf8\xfc\x85\x76\x71\xad\xf6\x7b\x28\x59\x18\x4f\x50\xb0\x09\xb9\x74\xb9\x2e\x2b\x8b\xdf\x6d\xb2\x50\x32\x43\x79\x4a\xef\xa6\x78\x78\x69\xe8\xea\x1e\xe9\x6c\x67\xd2\x0e\xc9\x79\x6d\x42\xd1\xa5\x7d\x33\xc5\x76\x45\xdc\xa2\xec\xdc\x38\xa7\xbf\x7b\xe0\xa9\x22\x7c\xce\x66\xe4\x82\x15\xf2\x86\x29\x3c\xdd\xd3\x8f\x0d\x15\x9a\x4b\xf1\x1d\xe5\x95\x3d\x5b\x7f\xc6\x9d\xb7\x9b\xb4\x9a\xa9\x7e\x08\x64\x14\xa2\x11\x2e\xb8\x43\x24\x8b\xbd\xe9\x0a\x4a\xe8\x6e\x62\xd7\x73\x19\x74\x8d\x62\x37\x5c\xb6\xda\x57\x3e\x68\x0d\x4a\x1a\xda\x38\x0b\xd1\x82\xcf\x17\xfe\x61\x9f\xb1\x0a\x51\xd7\xaa\x0c\x97\x38\x19\x32\x6d\xa8\x69\x75\xbf\xfc\x74\x01\x81\x87\x7b\x14\x7d\x15\xf0\x68\x7f\x94\x90\x9c\xe2\x3a\x56\xa0\xd8\x57\x86\xf8\x0e\xeb\x63\xe0\xd4\x53\x77\x97\x7d\xa9\x8f\xae\xac\x49\x21\xeb\xa6\x35\x2c\xba\xf3\xee\x76\xe5\x21\xf5\x8f\x44\xa6\x5e\xff\xa7\x97\x35\x15\x74\xce\xc6\x01\xb4\x71\x57\xe5\xe3\x65\x36\x4a\x9f\x05\xad\x48\xf6\xe6\x3f\xf1\xf8\xec\xaa\x73\xf4\x47\xb6\x3a\x7b\xe4\x49\x6a\xed\x91\xfc\xf5\xf6\xc8\xd3\xd7\xdc\x23\xa1\x04\xea\xbe\x12\xa0\x0b\x07\xdf\x2a\x09\x72\x42\xc6\x26\x12\x94\x53\x55\x76\xc2\x86\x83\x85\x6b\x22\x6b\x6e\x0c\xf3\xe9\x88\x81\xa4\x8c\x08\x37\xbd\xea\x98\x8e\x80\x82\x83\x13\xb3\x07\xd9\xc7\xa6\xe2\x05\x37\x51\xfb\xba\x81\x05\x24\x56\x07\x18\x10\x6e\xb9\x46\x51\x5e\x10\x5e\x37\x15\x0b\x12\xf8\xd8\x55\x17\xf2\x4e\xb8\xf0\x36\x05\xe4\xa6\x10\xf6\x11\x5c\xb1\x08\xf0\x33\xdd\x7e\xe4\x78\xa6\xdb\xf7\x8c\x67\xba\x9d\x9d\x6e\x63\xed\xd2\xf4\x52\xc0\x3d\x7a\xed\x27\x75\xdd\x97\xe8\x94\x55\xe4\xd7\x96\xa9\x25\xb1\x0a\x56\x57\x17\x44\x5a\x62\xa7\x79\x89\xf5\x2b\x7c\x4c\xc7\x1e\x79\x08\x72\x0a\xe7\x10\x33\x72\xfa\xd1\xea\xb7\xd0\x95\x22\x3b\x97\x5c\x5d\xa0\xdf\xfb\x0a\x4f\x21\x9c\x4c\xac\x95\x62\x22\x55\xfc\x09\xa8\x98\xc7\x1f\x4e\x72\x1a\x30\x72\xa4\xa9\x90\x7c\xa9\x2a\xe4\x89\x84\x0c\x42\x8e\x37\xec\x35\x9e\x49\xf8\x06\xf8\x78\x48\x6b\x0a\xde\x5c\x72\xcd\x96\x23\x97\xea\x49\x2c\x06\x52\xff\x70\x26\x10\x31\x7b\x1e\xc5\x9f\x6b\x86\x71\x1c\x69\xbd\x4a\xfb\x23\x33\x43\xcc\xe9\xaa\xc3\x31\xb6\xaf\x9d\x6d\x2e\x7f\x44\x79\x78\x74\x66\x9e\x4f\xec\xab\xe6\x9a\x6a\xe5\xce\x58\xdc\x71\xd6\x6d\xc4\x79\xfb\x41\xa8\x46\x19\xd0\x1c\x2a\x85\x02\xc1\xcf\x83\x5e\x24\xb7\x33\x01\x87\x3f\xc6\x27\xda\xac\x6c\x04\x86\x44\xb0\xf6\xeb\x19\x5e\xb3\xe5\x0b\xed\xda\x90\x48\xa1\x17\xbc\x01\xf1\x1d\x82\x99\xe4\x2c\xeb\x15\xc7\xf1\x13\xa4\xc3\x7a\x60\x90\x6f\x9c\x89\x11\xf9\x20\x8d\xfd\xe7\x14\x8a\x53\x00\x79\x39\x91\x4c\x7f\x90\x06\x3e\xd9\x6b\x2c\xc0\x4d\xfa\x1c\x70\xc0\xc5\x1c\x71\x88\xf8\x01\xf6\x8a\xf5\xab\xa1\x56\xa1\x3b\x6b\x9f\x75\x14\xf0\x85\x6b\x72\x26\x88\x54\xee\x88\x32\x82\x03\xa6\x79\x04\x09\x81\xf1\xfe\xee\x2e\x28\x70\x1d\x34\x0e\x47\xa4\xea\xa1\xc8\x27\x01\xcc\x01\x05\x5e\x1f\xfc\x06\xbc\x5b\x10\x0b\xeb\x4b\x17\x40\xd1\x2b\x45\x0d\x9b\x67\x08\xe2\xed\x46\xcd\xd4\x1c\xfa\x04\x15\x8b\xdc\xb7\x21\x97\xa0\x85\x23\xa3\xb8\x85\xe3\x09\xae\xec\x93\x66\x0b\x7f\x92\x05\x40\x76\x7f\x07\x25\x3e\xf6\xd5\x7a\x16\x81\x88\x52\x6c\x4d\x1b\x4b\x6f\xfe\xd3\x0a\xab\x70\xbd\xfe\x8b\x34\x94\x2b\x3d\x21\xc7\x44\x73\x31\xaf\x58\xef\x3b\xe7\x2c\x8e\xa6\xc9\x04\x16\xc4\xb2\x58\xf9\xf0\x86\x56\x0c\xeb\x34\x51\x41\x18\x9a\xab\xa0\x3e\xf7\x8a\x62\x34\x22\xb7\x0b\xa9\x51\xf2\x0d\x29\x06\x07\xd7\x6c\x79\x30\xca\xe2\x0a\x23\x31\x7f\xb6\x53\x9f\x89\x83\xae\x11\x5c\x8f\x12\x05\xd9\x1f\x22\x1e\x0f\xe0\xbb\x83\x4f\xa3\x8f\x7d\x06\xe6\xaa\xcf\x22\xc9\xc9\xb9\x1b\xdf\x56\x14\x43\x04\xf6\xcd\xb9\xbe\x0a\xdf\x6a\xc4\x0f\x54\xba\x8f\x9e\xe9\xc2\x3b\x5c\x95\xb3\xbd\xf3\xe2\x42\xdd\xe2\x4c\xc5\x33\x32\x20\x17\x82\x75\x6c\x8c\xe2\xd3\xd6\x30\xbd\xb7\x98\x70\x2f\xa0\x51\x59\xb7\xd0\x3f\xd5\x9e\xfc\x4f\xeb\x7e\x10\x55\xc0\xe3\x3a\x17\x72\x9c\xcd\x56\x63\x27\xa3\x92\xba\x71\x5d\x04\xa9\x5c\x85\xbd\x3b\x59\x78\xf6\x6f\x1a\x40\x75\x35\xd4\xd3\xc3\xa9\xba\x60\x4d\xc5\x74\x23\x31\xeb\x6c\xed\xc6\x38\x41\x72\x41\x35\x44\xdd\xcf\x5c\x50\x54\xd3\xaa\x46\x42\x2d\x74\x2a\xee\x5c\xc6\x2c\x75\x23\x5c\x91\x10\x5f\x84\x09\x0b\xce\x85\x9b\x6b\xef\x7b\xe8\x7f\x79\xbc\xd2\xf9\x05\x43\x46\xa2\x2e\x12\x42\xae\x7f\xb9\x64\x38\x7d\xba\x12\xda\x02\x42\xcd\x7b\x04\x11\xab\x0b\xbe\xc0\x20\xda\x28\x98\xc6\x6a\xb6\x26\x8e\x99\x37\xb2\x0f\x3f\x94\x42\xc4\x96\x17\xc9\x2d\x54\x09\xe2\x61\x2b\xba\xb0\x5d\xcf\xb3\xd7\xa7\x98\x40\x9f\x8d\xa9\x6c\x85\x43\x59\xdf\xa1\xe3\x69\x37\xd0\xee\x88\xaf\x3f\x19\xc0\x72\x17\x21\x2a\x5b\xc2\x67\x76\x5f\x5c\x75\xc8\x1c\xfb\xd2\x8b\xa8\x86\x88\x3d\x85\x87\x34\x5d\xae\xa7\x2c\xa4\x94\x0c\x4f\x14\xa0\x18\xe1\x39\xae\xdf\x4a\xf7\x72\xe9\xcc\x0e\xb3\xb6\x28\x39\x67\x78\x53\xb5\xa1\x86\x41\xba\x90\x62\xb3\x0a\x6b\xd2\xb9\xdd\xab\x65\xc9\x67\x2e\xeb\xe2\x32\x8a\x5e\x1a\x61\x81\x52\x57\x47\x34\x6e\x42\x9a\x0c\x5e\xae\xe3\x48\xea\xcd\x32\xee\xa8\xe4\x18\x58\x29\xcb\xe0\x04\xdd\x2a\xc9\x65\x3d\x3f\xb9\x3f\x7a\x92\x1c\xca\xd9\xcc\x1e\x97\xef\x4f\x95\xc7\x35\x94\x8d\xe7\xbf\x4f\xee\x89\xfe\x54\x4c\x1e\x5a\x6b\xfb\x36\x22\xbd\xf6\x66\x5d\x5e\xf9\x13\xc9\x79\x3f\x01\x4b\x91\x33\xf2\x1d\xaf\x98\x5e\x6a\x83\x09\xa3\xbc\x46\xba\x8f\x29\xb5\xd2\x10\x2e\x8a\xaa\x75\x01\x88\xc8\x05\x2c\xdd\xdd\xb3\x13\xce\x2e\xc6\x75\xd3\x7a\x39\xdc\x67\xb2\xdf\x29\xf5\xbb\x4a\x29\x21\xcd\x39\x5c\xaf\x2c\xa7\x95\xb4\x5b\xb3\x41\xa5\x30\x7b\xbb\x31\x2b\xfa\xf6\xeb\xef\xf8\x54\x31\xf2\x76\x41\x85\x60\x55\xd4\x63\xd3\x85\xbb\x50\x63\x68\xb1\x40\xae\x43\x89\xa5\x78\x15\xb3\x52\xc3\x42\x6a\x43\x6a\x5a\x2c\xb8\x08\xcd\xb9\x44\xe8\x35\xdb\x55\x4e\xfe\x0c\x9b\x03\xcc\xf4\x95\x05\x60\xe0\x39\xe7\x22\x2e\x08\x85\xc7\xd8\x59\x77\xb1\x81\xaa\x18\x49\x20\x74\x2a\x43\x63\xc2\x3b\x73\x87\xbe\xd9\x9e\x4a\xc1\x59\xa3\x75\x05\xf8\x3b\x3c\x3b\x7c\xe5\xd3\x8f\x13\x72\xc0\x3e\x9a\xdf\x1d\x8c\xc8\xc1\xc7\x99\xb6\xff\x08\x33\xd3\x07\x13\x72\x56\x87\xe0\x2a\x2e\x22\x71\x87\xb9\x1f\x58\x11\x2b\x12\x16\xd3\x4a\x2f\x27\x50\xac\xaa\x15\x59\xf0\xe3\x45\xd5\x0a\x7b\xc4\x3f\xb8\xf6\xd5\x6f\xc8\x77\x6f\x89\xa1\x6a\xce\x8c\x5d\x83\x88\xb6\x9e\x32\x35\xb4\xcd\x6d\x8e\x60\x1b\xec\x52\x02\xb3\x7c\xf3\xf5\xa0\x39\x14\xa3\xe5\x0f\xa2\x1a\xec\x0f\xcd\x75\xa1\x3c\x1c\xfd\xfd\x3e\x89\x82\xfd\x66\xb4\xd2\x8c\x1c\xda\x07\x5f\xde\x2a\x6e\xd8\xd1\x84\x5c\xf8\x5f\x41\xc9\x00\x90\x99\x67\x32\x45\x2e\xc5\x4c\x1b\x37\xa9\x66\x06\xeb\x3c\x0b\x27\xa8\xbd\xb7\x97\x7a\xb0\xb4\x8a\x07\x3e\x95\xb2\x62\x03\xcb\xe0\x23\xee\xfd\xfc\xf3\x87\xc1\xe6\xc4\x3e\x7e\x77\xf3\xdd\x87\xe6\xb7\x52\x55\xe5\x2d\x2f\x5d\xb2\x16\x39\xb4\x0f\x1f\xa5\xa1\x7c\x8a\x3b\x26\xd1\xf9\x92\xbb\x15\x60\x1e\xbf\xc7\xed\x2d\x2f\xf3\x9c\x68\xc2\x05\x04\x20\xfa\x38\xe0\x8d\x49\x16\x07\x08\x20\x01\x2f\x99\x30\x96\xb8\x2b\x4d\x0e\xe1\x17\xc3\x6b\x8f\x9e\x72\xec\x15\x03\xeb\x4a\x45\x0a\x59\x4f\xb9\xe8\x5a\x39\x75\xb8\x69\x05\x18\x4b\x6f\xbd\x97\x52\x33\x83\xfd\x17\xa0\x12\xa4\x34\x0b\xa2\x79\xdd\x56\x86\x0a\x26\x5b\x5d\x0d\x2e\x41\xf2\x8c\x9e\x77\xc6\xac\x62\x1f\x91\xf6\xed\xaa\x51\x65\x07\x41\x5f\x32\x86\xea\x1e\x5d\x37\xbd\x55\xd1\x78\xd0\x5a\x5d\x49\xa9\xf2\x65\x10\xad\x43\x6f\x18\xf6\x91\x15\xae\xf2\x6c\x53\xb5\x73\x3e\xa8\xfa\x7e\xa2\xf4\x9c\x16\xf6\x35\x76\x06\xe4\x1d\x88\xed\xb8\x70\x16\x22\xd7\xf5\x95\x5b\xf5\xda\xb8\x6f\x5c\xbf\xf0\xd0\xf7\x39\xad\x05\x57\xf2\xa5\x7c\xd6\x58\x76\xa6\xb1\xc4\x6d\xa2\x23\xb0\x4a\xd6\x30\x61\xb9\x8e\x20\xdf\x75\xe4\x05\xf7\x79\x67\x68\x22\xe1\x8c\x33\x49\x76\x6e\xb2\xbe\x58\x17\x59\x21\x17\xb2\x2a\x35\x61\x1f\x8d\xa2\x96\xf1\xd6\x96\xc5\x86\xdf\xcc\x08\x15\xcb\x49\x9a\x90\x97\xe4\x4c\xcf\xeb\x40\x4f\x3e\x99\xfd\xd6\x91\xca\x67\x1d\x29\x1e\x9a\x15\x8a\x99\x84\xe2\x6f\xb9\x4e\x2b\x00\xd2\x3f\xae\xde\xc7\x77\x4c\x9c\xf8\xad\x2f\x2d\xe1\x82\x61\x52\x2c\xb7\x9a\x09\xcd\x0d\xbf\xe9\xf5\x34\x85\xe2\xad\x54\xeb\x60\x09\x04\x71\xc6\x11\x40\xdd\xab\xab\x3a\x78\x61\xf4\x4a\xf2\x19\x11\x72\xe5\xad\xe2\x82\x1b\x21\x00\xb2\xf7\xc8\xe0\x45\x43\xf4\x50\x8d\xed\xc0\xa9\x80\x32\x8d\x38\xf9\x08\x2a\xc4\xe1\x7f\x63\x00\x91\xdd\x83\xc8\x1e\x0a\xbb\x30\x7c\xa7\xdd\xee\xed\x8e\x6c\xe6\x08\x94\x4f\xad\xab\x93\xd3\x7b\xf3\x21\x12\xed\x7c\x49\x95\x34\x03\x7f\xbf\xff\x1d\x9b\xcd\x58\x61\xef\x06\xf4\xdc\xf3\x0d\xe4\xac\x62\x59\xb6\xe8\x78\xf3\x65\x54\xfb\x65\x50\x53\x0b\x06\x46\xfe\xfc\x2e\xe6\xf6\x4c\x68\x43\xa1\xb2\x25\xbc\xb1\x95\xd3\xac\xf0\xe4\xba\x26\xba\xeb\x84\xd1\x09\xbe\x3e\x66\x22\x10\xb5\x15\xc3\x0a\xa6\xec\x8d\xa9\x96\xe4\x56\xc9\xd4\x54\xb3\x47\x7a\x61\xe5\x0d\x53\x37\x9c\xdd\xbe\x74\x75\x76\xc6\xf6\x65\xc7\xae\x74\xe1\x4b\x30\x38\xbd\xfc\x0d\xfc\x93\x00\x55\x26\xff\x97\xe3\xb2\x6f\xc8\xc1\x41\x0e\xcd\x3c\x39\xe0\x6e\x06\xad\x43\x07\x29\x54\x7d\x87\x13\xce\xb3\xe2\x75\x72\x1f\x3a\xdd\x7a\x1b\x2f\x93\x63\x1a\x91\x64\x6d\x6f\xad\x9f\xc8\x85\x61\x10\x6d\x0f\xbc\xab\xf1\xd4\x8a\x81\xbc\x6d\xc7\x3e\xa8\x92\x1a\xaa\x99\x49\xf1\x85\xe6\xa2\x93\x11\x28\x96\xa4\xc5\x24\xd3\x7d\x05\x21\x56\x0c\x8a\x53\xfb\x76\x8e\x64\xfc\xaf\x4e\x6f\x16\xbd\x27\xad\xc6\xec\x8e\x6c\x38\x1b\xc4\x22\x44\xd0\xa0\x05\x53\x59\x71\xed\xd2\x22\x58\x91\xd0\x5a\x37\xf9\x22\xbb\xb7\xfc\xf1\xc7\xb3\x93\x3c\x76\x88\x6e\x3e\xaf\x56\xc3\x7f\xf7\xb7\xdf\x5d\x0c\x08\x8d\xe2\xbf\xb6\xb1\x0d\x15\x1a\xf5\x87\x3b\xe2\x9e\xdf\xc5\xee\xcc\x0b\xd6\xf9\xd6\x4f\xb8\xbe\xde\x95\xb1\xef\x0e\x20\x7d\xba\xf4\x97\xb7\xa7\xc4\x7d\xba\xc9\x11\x3e\x68\xe9\x4f\xe3\x3c\x4f\x8c\x54\xd2\xbf\x99\x17\xac\x0b\x72\x2b\xb9\xbe\xfe\xfc\x6c\x90\x4d\xf9\x61\x58\x51\xd7\x2f\x2d\x74\x60\xd5\x50\xe6\x08\x87\xe3\xba\x80\xda\x4b\xd9\x92\x5b\xd7\x6b\x3b\xd1\x40\x77\xc5\x9b\x37\xe4\x54\xe8\x56\xb1\x2e\x23\x75\x15\x04\xab\x9b\x3d\xb9\xb9\x0e\x9a\xca\xeb\x37\x3b\x0e\x33\xd8\x8b\xab\x48\x72\x30\xb6\x86\x2a\x03\xf6\xb2\x5d\xa3\x76\x00\xc4\xf3\xc3\xe8\x03\xf1\x94\xb8\x7d\x36\xf3\x35\x83\xfa\x81\xc7\x5c\x87\xc9\xbb\xa8\x5c\x10\x7d\x72\xe0\xef\x77\x32\x88\xc8\x2f\x4b\x76\xf3\x52\x97\xf4\xf5\x08\x5e\xcb\xd7\x3c\xec\xef\x01\xd5\xe4\xe0\xf5\xc1\xf0\x95\x2f\x79\xcd\x2b\xaa\x2a\xec\x01\x12\x9a\xab\x84\xf9\xad\xf8\xe6\x01\x81\x34\xab\x57\x07\xe4\x50\x2a\x80\xa8\xa0\x82\x54\xcc\xf7\x0b\x71\x94\x74\x89\x6a\x65\x42\x14\xe9\x5e\x5d\xa1\x5d\xc7\xd2\x20\x63\xdb\xf9\x25\x2c\xbd\x32\xe0\x04\xce\xd8\x43\x76\x7e\xd2\xc9\x4e\x5c\x58\x81\x6a\x42\x7e\x74\x62\x8d\x13\x4c\x11\x6b\xed\x61\xf8\x27\xbe\x0c\xec\xf8\x92\x1c\x00\x2b\xa6\xfc\x27\x35\xc9\x93\xbb\x51\x58\x5f\x08\x46\x0c\x75\x33\xcc\xb9\xb9\x60\x8d\xdc\x99\x92\x84\xcb\xaf\x84\x43\x70\x63\x3f\x90\x9a\x1b\xa9\x96\x84\x1a\x42\x91\x33\x14\x6d\x45\x15\x51\x0c\x03\x1b\x86\x9d\xdc\xc9\xe9\xf9\xc5\xe9\xdb\xe3\xab\xd3\x93\x37\xe4\x2f\x6e\x75\x1e\xab\xf4\x13\x72\x25\xbb\xe8\x89\xb8\x66\x9f\x33\x60\x06\xf8\x46\x8e\x1b\x0f\xf4\xee\x9c\x5a\x7e\x75\xc2\x15\x36\xd6\xa7\x82\x9c\x09\x6e\xde\x86\xc5\xb0\x7c\x50\x25\x85\xcb\xaf\xb0\x2b\xba\x00\x8e\x39\x37\xae\xa5\x2c\x02\x60\xbf\xf6\xb3\x0d\x02\xa5\x6b\xed\x2f\xcb\x17\xba\x7b\xe3\xcf\x30\x2a\xa4\x43\x9c\x5d\x18\xd3\xb8\x82\xa2\x38\x3b\xa7\xae\x01\x90\xd0\x14\x01\x63\x20\xbb\xcf\xd3\x04\x47\x88\x90\x10\x32\xb8\xf5\x88\x54\x44\x1b\xaa\x0c\xde\x91\x17\x93\xc9\x8b\x09\x88\xb2\x2f\x26\x2f\xbc\x22\x56\x85\xf4\x4f\x27\xed\x75\xc0\xf8\xf4\xb7\x94\x04\xfd\x3e\xd5\x98\x10\xf2\x83\xaf\x72\x09\xed\x1b\x57\x32\x50\x43\x72\x69\x55\x85\x77\x80\x26\x23\x7d\xda\x93\xe0\x43\x03\x4f\x60\x3b\x8d\x5f\xd2\x25\xb2\xce\xf9\x8d\xeb\x7e\xb6\xb3\x00\x8d\xee\x15\xb3\x60\x6a\xbc\x63\xce\x7a\x78\xf1\x6e\x77\xef\x86\xa4\x3b\xd3\x9b\x39\x3e\xe0\xde\xab\x90\x75\xcd\x0d\x59\x50\xbd\x08\xad\x68\xba\x94\xd2\x34\xd6\x94\x6a\xf9\xac\x5a\x6d\x98\x9a\x0d\xa2\x5d\x59\x98\xb9\x07\x60\xc5\xd2\x19\x3e\x76\x35\x78\x45\x67\x8a\x01\x26\xa7\x17\x54\x31\xfb\x64\x03\xdc\xa7\xe2\x33\x66\xf8\xd0\xcb\xb1\x46\x2a\x63\x4e\xcb\xf5\xbd\x2f\x9c\x04\xf6\x32\xc0\xfb\xf2\xe2\xf4\xf8\xe4\xfd\xe9\xa4\x1e\x62\xcf\xdf\x31\xbf\x63\xa2\x6c\x24\x1f\xda\x7e\x60\x4c\x1a\x6a\x86\x34\xf9\x4c\xe5\x94\x01\xec\x5d\x73\xca\x00\x88\xbf\xe1\xfe\x03\xd4\x35\x01\x41\x5d\x3b\x92\x08\x93\x8d\x6c\x64\x25\xe7\x09\x1d\x22\xd3\xf0\xf4\x37\x98\xf4\x3f\xa6\xe3\x46\xee\xcc\x09\x65\x51\x67\xd7\xc7\x67\x61\xf0\x27\xd7\x1d\x4f\x30\x27\x99\x84\x02\x5c\x5f\xc0\x09\x7d\x16\xca\xfe\x9d\x63\x43\x03\x39\x30\x0b\x56\xa2\xd8\x64\x27\x18\x43\x19\xa5\x86\xa9\x9a\x63\xa9\xa7\x7d\xb5\x02\xec\x04\x4b\x86\x1a\x00\x2c\x1b\x3e\x1f\x78\x91\x73\xa0\x87\x5f\xbf\x2f\x33\x34\x8a\x8d\xa1\x9e\x82\x55\x77\x67\xbc\x82\xda\x30\x9d\x28\x1d\x89\x10\x83\x16\xf5\x1e\x51\xef\x72\xc5\x99\xab\xe5\xaa\x67\xb4\x53\x84\x83\xe7\x1b\x3b\xb1\x56\xd5\xb0\xb4\x1a\x28\xaf\x63\xe5\x46\xe7\xa8\xa2\x73\x78\x61\xa9\x5c\x53\xbf\x46\xf1\x1b\x5e\xb1\xb9\x05\x61\xc1\xc5\x5c\x77\x4d\x81\x5c\xa4\xd5\xa0\x65\xa1\xec\x0f\xeb\xc4\xae\x10\xe8\xf2\x1e\xe2\xa6\x42\xbd\x7c\xbc\x9a\x1f\x7e\xb8\x22\x82\x21\x08\x03\x2f\x59\xa2\x6d\xcc\x02\x39\x50\x30\xd9\xb5\x43\x78\x37\xe2\xd4\xde\xb0\x62\x1f\x30\xb2\xee\xaa\x26\xf9\xc4\xd0\xfd\x84\xcc\x9e\x12\xbd\xac\x2b\x2e\xae\xa1\x8b\x86\x63\x27\xae\x23\x1d\x23\xf6\x0b\x7f\x81\x15\xa3\x55\x7e\x31\xe0\x13\xa1\x32\xc9\x21\x02\x98\x3d\x08\x13\x00\x77\xbc\xa5\x7a\xff\xe6\x89\x3d\x1a\xf3\xb3\xf0\xef\xc1\x41\x8c\x9f\xf5\xd1\xf2\x9a\xce\x77\x96\xc7\x08\x8b\xf7\x18\xb6\x20\x3f\xbc\x3d\xf3\x41\xf1\x87\xb1\xcd\x1c\x9f\x95\x8a\x50\x65\xf8\x8c\x16\xe6\x88\x34\x6d\x55\xb9\xfa\x5b\x5e\xc8\x73\x54\xe2\x9e\x78\xcc\x41\x40\x5e\x75\x56\x3e\xc8\x4e\xd0\xb2\xba\xb1\xab\x1a\xd2\xc8\x12\x8d\x95\x6d\xe3\x82\x3c\xb1\xda\x18\xb9\x5d\xf0\x62\x41\xce\xdb\xaa\x3a\x97\x15\x2f\x96\xa1\xa7\x3a\xfa\x03\x4a\xcb\x16\x06\xf2\x85\xe3\xea\x96\x2e\xf5\x9b\xf8\x2d\x09\x85\xcf\x08\x35\x86\xd5\x0d\x22\xb3\xdd\x9a\xd5\xae\x99\x9d\x4b\x00\x84\x45\x6e\x01\x05\x92\x47\x79\x15\x28\x63\xeb\x3e\x18\xc8\xaf\xc7\xe4\x03\xbb\x61\xaa\x0f\x9f\xb0\x1f\xc1\xd4\xba\x0f\x13\x1c\x1d\x48\xe3\xad\x06\xc3\x0d\xb6\x71\xbf\x73\xd4\x0f\xc0\xce\x67\x2b\xd3\x72\x2d\x5e\x18\xe2\xb0\x6a\xe8\x8b\x9c\xcd\x3e\x48\x73\x8e\x73\xf4\xdf\x07\xdf\xe4\x9e\x55\x69\x65\x75\x8c\xa5\x5f\xdd\xa2\x43\xc9\xf5\x75\xd2\x2b\x84\x12\x73\xf1\xf1\xa4\x22\xf3\x9c\x19\x8b\xce\xe3\x80\xd1\x0e\x06\x8b\xd5\xf0\x5d\x69\x5f\xd6\xdd\x2f\xc5\x5c\x75\xc0\x91\x43\xee\xb8\x1a\x20\xbb\x25\x8a\xd5\xd2\xa0\x9c\x6b\xe1\x75\x76\xf8\x42\xd6\x8c\xd0\x1b\xca\x2b\x3a\xad\x20\xb2\xd6\x4e\xee\xe6\x1a\x6c\xde\x3c\x86\x1d\x80\x90\x2d\xe9\xef\xa3\xc5\x96\x80\xf3\x88\x3f\xae\x32\x77\x7c\x49\x11\xac\x4a\x16\xd7\xb1\xac\x3a\x53\xb2\xc6\x47\x30\xa9\xb9\x84\x34\x1f\x5a\x96\x44\xf3\xb9\xe0\x33\x5e\x50\x61\x48\x45\x0d\x13\xc5\x72\x42\x5c\xaf\x4f\x1d\x9c\x0d\x8a\x19\xc5\x43\x52\xb4\x90\xaa\xa6\x95\xdf\xe4\x29\x2d\xae\xe5\x6c\x06\xb3\x76\xcf\xbb\x58\x32\x47\xac\x70\x4f\xa8\x96\x02\x17\x67\x5a\xd3\x79\x02\xb1\x82\x26\xde\x56\x80\x72\x59\x03\x78\x4a\xae\x7a\xa7\x27\x94\xbe\x34\xa7\x0f\x67\x57\xbe\x12\x58\x57\xe9\x2b\xe0\xab\x6a\x85\xe1\x96\xfc\xf5\xda\x7b\x11\x70\x6a\xde\x09\x0c\xb5\x4b\xb9\x5e\x69\x50\x9b\xc0\x55\xf0\x82\x3c\xa3\x1b\x68\x04\x80\xf0\xdd\x09\xa9\x5b\x25\xf5\x90\x92\x32\x7c\x17\x22\x3e\x02\xd8\xec\x5f\x9c\x5b\xa8\x5d\xe5\xe9\x4e\xba\x3c\x84\xb2\x62\x1d\x52\xfc\xf5\xab\xbf\x4d\x6e\xe2\x40\x01\xf8\xb9\x15\x39\x8e\x2c\xbc\x35\x53\x73\x2c\xb2\xc5\x48\x4d\x05\x9f\x31\x6d\x31\x64\x69\xd1\xc9\x39\x80\x34\xad\x19\xb9\xb5\x88\xa4\x41\x64\x59\x79\xbd\x81\xf4\xf5\x6a\xc5\xe5\x14\x9d\x68\x67\xda\x38\x54\xf2\x08\xce\x02\x6a\xea\x7f\x64\x45\x6b\xe0\xfe\x41\x60\x23\x39\x14\xd2\x7e\x36\x30\xc0\xe9\xb2\x9d\xa2\xf8\x0c\xcb\xae\xbc\x1a\x66\x90\x41\x8f\xfb\x70\xba\x0f\xee\xac\x6e\xa7\x76\xc2\x81\xf0\x5c\x2d\x1c\xa6\x60\x61\x38\xcd\x8a\x56\x71\xb3\xb4\xc4\x96\x7d\x34\x93\x99\x86\x46\xf6\x6f\xa1\xea\xa9\x63\xc6\x0b\xaa\x89\x90\x2e\xd3\x09\x2f\x61\x77\x11\x2c\x72\x7e\x86\x15\xc0\x9a\x20\x6b\xec\x5a\x46\x77\x9b\x3c\x73\x04\xd9\xde\x92\xee\x2a\xea\x09\x39\x97\x5a\x73\x8b\x8d\xa1\xc4\x79\x42\x6e\xdd\x9e\x4b\x43\x76\x7c\x21\xf2\x10\x01\xed\x79\xbf\x25\xa2\xa1\xef\x15\x6b\x81\x88\x51\x76\xf5\x37\xd0\xfd\xca\x10\x43\xe7\x2b\xfd\xf0\xa5\xea\x6d\x45\xd7\x06\x73\x87\x6e\x78\xb7\x4b\xbb\xbe\xfd\x17\xde\xec\x45\xce\x56\x91\xb6\x9f\xd8\xed\x0a\x89\x0f\x3f\xb4\x6f\xd9\x82\xde\xb0\xb5\xec\xb6\x91\xe5\x64\x0d\xd7\x81\x6b\x34\x7c\x41\xab\xce\x85\x4c\xe9\x50\xa8\x5a\x6b\x56\x43\x15\xda\x7b\xd8\xfe\x3a\xc9\x66\xba\x24\x95\x94\x50\xa5\xb3\x6d\x88\x90\x25\xb3\x17\x00\x22\x4d\x69\xa5\x47\xe4\xf2\xd8\x3d\xd8\x44\x4b\x62\x6f\x08\x90\x66\x1b\x56\xac\x79\xe0\x93\x59\xa6\xa2\xb6\xa8\x28\xca\x0c\x4f\xbf\xe8\xa5\x1e\x4b\x57\x0f\x00\xf2\x95\xc0\x0a\xe7\x7a\xd2\x57\xec\x86\x41\x74\xcd\x8c\xcf\x09\x76\x69\xad\x5d\x0f\x0f\x1f\xd4\x2e\x15\x74\x8d\x54\xbc\x1c\x6e\x0c\x5a\x95\xd0\xec\x91\xde\x4a\x75\x5d\x49\x5a\x46\x45\xb3\x35\xa9\xf8\x35\x23\x27\xac\xa9\xe4\xd2\x35\xde\x10\x25\xb9\x34\xd4\xb0\x59\x5b\x5d\x26\x1c\x45\x9a\x25\x47\x17\x9a\xef\xcc\x92\x63\x17\x5f\xb1\xe4\x9c\x5d\xbe\xbd\x3c\xfb\x12\x73\xd3\xee\xf3\xcb\xc1\x26\x7c\xce\x31\x20\xfc\xd7\x61\x61\x6a\x63\x52\xb5\x43\x7f\x89\x01\x85\xe7\x52\x19\x5a\xed\x40\x70\x2e\x16\xb4\x39\x6e\xcd\xe2\x84\xeb\xc2\x52\x90\x3c\xf2\xf3\x9d\x59\xa3\x32\xdb\x0c\x1c\x74\x4e\x41\x22\xdc\x5f\x12\xf7\xdc\xdb\x7f\x3b\x3e\x27\xb4\xb5\x28\x6c\x78\x01\x42\xd1\x4e\xdc\xb9\x24\xda\x9b\x4b\x6c\x89\x94\x75\x67\xdc\x9c\x0f\xec\x8b\x7f\x6a\x9f\x76\x65\xdf\x32\x26\xd7\xa5\x2c\x3e\x67\x4d\x7e\x56\x59\x93\xc0\x38\x76\xa5\x3b\x70\xc1\x0d\xa7\x46\xaa\x7d\x48\xd4\xea\x01\x13\x62\x65\x5b\x6d\x64\xed\x48\xc2\x99\x7f\x02\xea\x3a\x24\xb9\x82\xef\x2c\xd6\x05\xe0\x42\xb0\x10\x1c\xcb\x99\x30\x4c\xcd\x68\xc1\x56\x0a\xaa\x8e\xc0\xee\x8d\x30\x71\xff\xcc\x60\x68\xfe\xc5\xc5\xd5\x37\xc0\x07\xff\xf5\xcd\xbf\x44\x69\x99\xff\x1a\xb4\x0d\x67\x83\x8f\x15\x0b\xc1\x8a\xe1\x96\xf4\x1c\xd8\xf3\x6b\x1e\xbe\xc0\x7f\x15\x2b\x29\x06\xb8\xb5\xff\xab\xa5\x15\x1e\x49\xca\x71\xa7\xbf\x66\x0f\x15\x76\x7e\x4b\xfa\x88\xe9\xf6\x2d\x60\x21\x56\x3c\x01\xca\x8c\x76\x24\xe1\x36\xd3\x28\x2a\xb4\x45\xb1\x3c\xb6\x92\x17\x4e\xfb\x7a\x41\x0e\x4d\xd1\x0c\xce\x98\xcd\x50\x8d\x28\x54\x22\x72\xff\x31\x68\x9a\x5c\x25\xf2\xab\x56\xc4\x9a\x10\x6e\xfd\x15\x22\xf5\xbb\x50\x22\x3f\x6d\xb7\x76\x9e\xd6\x0b\x74\x6a\xe7\x41\xd7\x0e\x8c\x70\x03\xe2\xad\x46\x95\x82\xbc\xe3\xda\x60\xd1\x53\x7c\x18\x8a\x9c\x61\x99\x6d\xab\xa3\x9e\x13\xa9\x08\x6f\xfe\x2f\x2d\x4b\xf5\x06\x25\x4f\xef\x06\x55\xc3\x6b\xee\x71\xed\xe2\xf0\xa0\xdc\x9e\x37\x52\x1c\x9a\x65\xc3\x0b\x5a\x55\x4b\x72\xf5\xf6\x1c\x56\xd0\xe4\x4f\x7f\x78\x05\x4a\xeb\x37\x5f\xff\xe1\x55\xe2\x15\x7a\xae\xd2\xbd\x32\x3e\x8b\xb0\xe5\xcf\x20\x47\x79\xdf\x2a\x90\xf6\xea\x85\x42\x1f\x48\xab\x1f\x5e\x62\xb9\x4c\x2b\x1c\x39\x76\x87\x84\xc0\xde\xae\x20\xea\xe5\xd4\x22\x9f\x0b\x53\x46\xe3\xb9\x30\xe5\x73\x61\xca\xe7\xc2\x94\xf7\x8f\xd8\xce\xb9\x6b\x7e\x14\xc3\x02\x6d\xf7\xee\xca\x4d\x28\x32\x9d\x7f\xe9\x22\xd3\x40\x54\x1b\x4a\x78\x73\x1c\x60\x5c\xba\x26\xa5\x8b\x43\xd7\x9c\xe0\xe4\xc3\xe5\xff\x7d\x77\xfc\xed\xe9\x3b\xd8\x55\x57\x21\xc7\x5e\x6f\x2e\x3e\x69\x5d\xbf\x27\x25\x31\x69\xe7\xbd\xbb\x64\x68\xb1\x92\x06\x2d\xc8\x87\xef\x2e\x1f\x99\x01\xfd\x29\x0e\x6f\xd5\xa6\x29\x66\xc3\x4f\xe9\x73\xcb\xba\xb1\x3f\xd5\x4c\xed\xa6\x8b\xcc\xde\xa4\xec\x78\xdf\x2e\xfb\xd8\xb7\xfa\x5b\x7c\xc5\xdd\xd9\x99\x81\x7d\x18\x32\x92\x7f\x9a\xd4\x59\x7b\x44\x78\x6c\x9f\x7d\xd2\xec\xa7\x44\x8b\x34\x8d\x58\xe5\x6a\xfe\x94\xd4\x90\x43\x45\x7d\xa3\x2c\x23\x41\xf1\x42\x59\x31\xcf\x0a\x78\x4c\x6b\x2f\x6c\xfc\xf3\xde\xe3\x66\x5d\x3b\xfa\x5d\x09\x04\x6b\x81\x71\x0d\xea\x7d\xdf\xfd\x28\x03\xba\x17\x75\x37\x2c\xd4\x66\x7d\x37\xfe\x38\xe0\x0d\x84\xb2\x86\x16\xf9\x6a\xad\x6c\x83\x15\xdd\x4e\x8c\x3d\x82\x74\x1f\xe1\x27\xd0\x00\xfb\x33\x14\x44\x00\xee\x1d\x95\x84\x0e\x6b\xef\x9a\x38\x05\x40\x56\xfb\xda\xd1\xc7\xa0\x24\xa1\x3a\xa4\xd9\x60\x8a\x4e\x86\x06\x78\x7b\x89\xb3\xe4\x8b\x94\x57\x7e\xfe\xc4\xe6\xf2\x5d\x9a\xca\x9b\x85\x34\x52\x64\xee\x3b\xb0\x6e\xd2\x3e\x8f\x38\x87\x27\xde\x86\x10\xd7\x88\xc7\x60\xd1\xdb\x10\xae\xb9\x92\x6b\xeb\x82\x30\xfb\x31\x98\x9f\x1f\xb5\x6d\xca\xb3\x93\x1d\x10\xda\xcf\x21\x92\xec\x0b\x6d\x82\xf9\xb9\xb4\xed\xb7\x98\x99\x05\x41\xec\x44\xfe\x8c\xcf\x4e\x9c\xae\xee\xbb\xae\x68\x47\x01\xc8\xfd\x24\x60\x27\x62\xb7\x54\xe6\x56\xaa\x5c\xcd\x96\xfb\xd3\xad\xd4\x09\x72\xdf\xdd\x69\xef\xf4\x65\x12\x3c\x7c\xcb\x7f\x66\xa2\x77\x09\x44\x2f\xc2\x81\x4d\xc4\xef\x4b\xa0\x7d\x9f\x0f\xcd\xdb\x3b\x09\xf4\xb9\x9b\x6c\x6f\x78\xe2\x91\xe5\x7c\xfc\x64\xce\xed\x64\x71\xb3\xe3\x4a\x14\x1c\x90\x11\x5d\xde\x09\x17\x52\xd2\x52\xe9\x61\xc4\xb6\xcf\x80\xfc\x4c\x18\x6d\x05\x91\x2a\xb4\xaa\xec\xc9\x4a\xd1\xb5\xeb\xd7\x5d\xca\x1f\xe6\xbc\xd5\xb4\x71\xe9\x7f\xa5\xbc\x15\xb7\x54\x95\xe4\xf8\xfc\xec\xd3\x73\x9d\xe4\xaa\xe6\x78\x8f\xde\xcb\x72\xe7\xf4\x3f\x02\x05\x6a\x16\x40\x21\x07\xfb\xc7\x94\x1b\x8d\xd5\xf5\xa0\xd6\x9d\x89\x4d\xde\x56\x00\x08\x21\xd8\x50\x4b\x61\x1a\x88\x43\x06\xf9\x58\x10\x59\x18\x5a\xb9\xb8\x91\x29\x33\xb7\x8c\x09\xf2\xea\xd5\x2b\xf4\x76\xbf\xfa\xe3\x1f\xff\x08\xf9\xb4\xa4\x64\x05\xaf\xef\x3e\x08\x4f\xfd\xfe\xf5\xeb\xe1\xa0\xfc\xef\xe3\xf7\xef\x08\x2d\xc0\x62\x41\xa6\xd2\x2c\x1c\x44\x80\x7a\xf1\xa2\x7a\x44\xfe\xe7\xe5\x0f\x1f\xbc\x1c\xa2\x57\xbe\x05\xcc\x0e\xdb\x99\xa0\x91\xbb\xfa\x1c\x1c\xaa\xad\x74\xfe\x68\x6a\x16\xa1\xd2\x04\x85\xb8\xa0\xa8\xa2\x89\xa3\x97\x09\xe9\x2d\xd0\xe9\x99\xcf\x17\x70\x2c\x5c\xc0\x2d\xac\x78\xe1\x6a\xd2\x63\x94\x82\x6f\x0c\x8f\x65\x15\xb1\x94\x84\x17\x21\x06\xaf\x6c\xb7\x6c\x84\xe9\xa5\xae\x70\xc5\x28\x24\xba\x2b\xa6\xdb\xca\x40\xcf\xa2\x29\x73\x40\x74\x18\xab\x59\x62\x93\xfe\x5d\x07\x14\x3b\xd2\xb7\x6b\xba\xe0\x29\xb0\xd3\x94\x2a\x6e\x85\xb2\x59\xa8\x03\x8c\x04\x1c\xdc\x5f\xe4\x94\x16\x0b\xc2\x84\x81\xea\xfe\x88\x7a\xf6\xf1\xc1\x4b\x2f\xa8\x28\x2d\x4d\x81\xe6\xdc\x00\xc6\x67\x1b\x0d\x9c\x2f\xae\xf0\x3c\xec\x78\xaf\x8a\x51\xc7\x49\x69\x25\xc5\x3c\xbe\x98\x9d\x60\x1d\x55\x74\x49\xa0\x41\x90\x66\x06\x35\x5d\xed\xc1\xa0\x2b\x4c\xbb\x9a\x33\x1a\x4b\x1c\x4d\x59\xca\xfd\xcb\x12\x4d\x9a\x27\x9e\x94\x90\x02\x4b\x0b\x5f\xa9\x56\x9b\x6f\x5b\x8b\x90\x29\xb3\xe5\x8d\x30\x25\xe4\xed\x1d\xe8\x30\x3c\xd3\x45\xbc\x80\x87\xab\x28\x98\xc6\xcb\xfb\x0b\x16\x81\x30\xdd\xd3\xbf\xe0\xb1\x25\x42\x21\x67\xeb\x00\xf1\xc5\xb6\xb8\xb0\x9c\x9c\xb6\x46\x8e\xdb\xa6\xa4\xa1\xf0\xf0\xc0\x82\x6d\xdd\x38\xae\x9a\x05\x1d\x91\x39\x8d\x94\xc6\xbb\x70\x44\x17\x66\xc6\xa8\x69\x15\x83\x5f\x24\xaf\xbe\xe1\x8d\x2d\x4b\x72\xe1\x81\x70\x13\xaa\xc0\x8f\x05\xad\x19\x94\x4b\x41\x70\x13\x41\x28\x64\x3d\xe5\xc2\xd5\x1e\x9b\x41\x71\x36\xa6\xd0\x27\x04\x85\xc7\x48\x45\xa7\xac\x72\x00\x48\x95\xfc\xca\xdf\xfb\xe2\x36\x4c\x59\xfe\xa6\x09\x9d\xcf\x15\xd3\x9a\xdf\x30\x57\xe5\x8d\xff\x3d\x40\x03\x4d\x8f\x4e\xdf\xfb\x0a\x78\x9a\x58\xe5\xd0\xb0\xe1\x6d\x5f\x70\x84\x86\x4a\x16\xbd\x3b\x1b\xc2\x84\x90\x53\x2d\x0d\x53\xbc\x80\x55\xdd\x51\x6b\xa2\xdb\x62\x41\xa8\xc6\x5c\xb0\x31\x94\xba\x4b\xdf\xf5\xae\xc8\x05\xd6\xce\x5b\x30\x5a\xfa\x62\x5f\x56\xa9\x6a\x1a\x56\x4e\x08\x79\x6b\xc9\xcf\x8c\x17\xd4\x60\x59\x27\x52\xb2\xb2\x6d\x2a\x8e\xdd\xb0\x12\xc1\xb8\x5a\x30\x22\x55\xc9\xa0\xa6\x9f\x9c\x41\x28\x74\x58\x2c\x92\x0d\xa1\xc6\x37\xb7\xeb\x4f\xb9\x51\x54\x2d\x51\x82\x72\x67\x99\x08\x84\xe5\x3e\x05\x94\x12\x83\xb5\x00\x1e\xa8\x3b\x42\x86\xf7\x19\xf1\x23\x0b\x13\x20\xc9\xb6\xc1\x6e\x24\x44\xc3\xf9\x91\x87\x27\xd9\x01\x57\xfb\xd2\xdd\xec\xd4\xc9\x72\xb3\x25\x3b\x10\x36\x50\xe7\xef\x92\xca\x50\x82\xd1\x14\x0b\x27\x29\xf6\x49\x15\x21\x68\x3f\xa2\x69\xb9\x0a\x38\x5c\x61\x3b\xee\x49\x64\xc8\x6e\x66\x66\x62\xd5\x4d\xd3\xd2\xaa\x5a\x8e\xd9\x47\xcb\xec\x2d\x31\x03\xe9\x09\xda\x48\x41\x5a\x74\x2b\x34\x33\xa3\x0c\x80\x00\x11\x6a\x14\x16\x11\xd5\xe4\x00\xdf\x5f\x48\xa8\x48\x7f\x80\x8b\x59\x15\x7b\xda\x1a\x4c\x99\x18\xad\xff\x49\x8e\x3d\xb9\x61\x6a\xe9\xd6\x4d\x9e\x2e\xdb\x55\x25\x59\xef\x08\x01\x0a\x65\x8a\xc5\xe9\xc7\x46\x61\xe1\x8c\x2c\x73\xae\x5c\x97\xd5\x25\xb0\x90\xba\xd7\x94\xfa\x88\xed\x89\x11\x70\x10\x4c\x29\x88\x3f\x01\x2e\x71\xfc\xe1\x24\x9d\x3d\xe0\x48\x57\x7c\xfa\x23\x51\x0d\xea\x8f\xfc\x34\x07\xc7\xf1\x86\x3d\x77\x45\xee\xfd\x37\xd8\x0a\x12\xcb\x5c\xe9\x60\xc9\xa1\xe4\x9a\x39\x36\x49\x85\x73\x41\xb8\x87\xb3\x01\xa9\x18\x54\xd3\xc3\xa2\x81\x6c\x09\x8b\xe1\xfa\x79\x4e\x3e\xf3\xa5\xc4\x91\x8b\x93\x76\x63\x6c\x5f\x3e\xe3\x6c\xfe\xb0\x32\x4d\x99\x97\x16\xe1\xb8\x66\x83\x1d\x39\xeb\x46\xef\x16\x59\x4c\xf2\x96\x1a\xb8\x03\xf6\x83\x50\x91\x26\xa0\x3d\x85\x9e\x91\x9a\x18\x99\x0b\xd9\x48\xbe\x5c\xb5\xfe\xf0\x07\xfa\x64\x5b\x96\x91\xf0\x90\x08\xde\xbe\x37\xfd\x9a\x2d\x5f\x68\xbc\xf3\x96\x43\x2c\x78\x03\xaa\x39\x30\x7b\x39\xcb\x7c\xf1\x71\xfc\x04\xa5\xa5\x3d\x38\xc8\x59\xce\xc4\x88\x7c\x90\xc6\xfe\x73\xfa\x91\x6b\xa7\xc3\x9c\x48\xa6\x3f\x48\x03\x9f\xec\x3d\x3e\xe0\x56\x7d\x2e\xd8\xe0\xac\xff\x1c\xd2\x94\x80\x0d\x83\xa2\x0e\x5b\xe2\x4f\xdd\xd7\xd6\x0d\x98\xc3\x35\x39\x83\xbe\xaf\x78\x54\x59\x01\x82\x1c\x39\x5f\x67\xd8\x82\xe3\xed\x75\x50\x19\xdb\xe5\xf2\xde\x85\xc7\x61\x8b\x54\x3d\x64\xf9\x44\xa0\x39\xb0\xc0\x0b\x81\xdf\x40\xdb\x89\xa6\xa2\x05\x2b\x7d\x55\x7b\x6a\x77\x95\x1a\x36\x1f\x98\x8d\x7a\xdf\xa8\x99\x9a\x83\x83\xa5\x48\xe8\x74\x73\x77\xe4\x16\xcc\x70\x64\x15\xcf\x70\x3c\xc9\x25\x7e\x92\xda\x16\x9f\x7c\x09\x90\xfb\xdf\x59\x36\xfb\x14\x5a\x45\x36\x4a\x14\x81\x89\xd2\x6f\x4d\x1b\x4b\x85\xfe\xd3\x0a\xb9\x70\xe1\xfe\x8b\x34\x94\x2b\x3d\x21\xc7\xbe\x0f\x40\xfc\x9d\xb3\x23\x45\xd3\x64\x03\xac\x81\xec\xb8\x5f\x5b\x7e\x43\x2b\x57\xbf\x96\x0a\xc2\xb0\xa7\x82\x85\x71\x55\xb5\x1a\x91\xdb\x85\xd4\x28\x31\x87\x42\x08\x07\xd7\x6c\x79\x30\xca\x60\x4f\xf5\x23\xa6\x7c\x07\x67\xe2\xa0\xf3\x39\xf6\xe8\x53\xd0\x1b\x20\x13\xec\x00\xbe\x3b\xf8\x54\x3a\x5d\x46\xb9\x9e\x96\x25\xc7\x42\xc3\xe7\xd9\xc5\xdd\xac\xe4\x23\x7f\x0d\x82\x6e\xa4\x56\x0e\xc1\xf1\x74\x66\x34\x7f\x33\xd7\xb8\x1d\xa6\x4b\xdf\xd7\xc3\x99\xac\xee\x5a\xb4\x32\x00\x02\x36\xb1\xc8\x7e\x66\xaf\x44\xcf\x08\x99\xcb\x8c\x94\x05\x59\x7c\xe9\xec\x7d\x3c\x52\x2b\x5f\xa9\x96\x8d\x48\x29\xc5\x0b\xe3\x5c\x08\x71\x57\x9e\xd5\x4a\xff\xe5\x9a\x53\x3f\xd4\x47\x19\x40\xa1\x8a\x41\x43\x02\xdf\x91\xc8\xd9\x3b\xb1\x6f\x0f\xf8\xaa\xa0\x74\xb4\x4f\x35\x5a\x07\x48\x6a\x39\x19\x07\x88\x2b\x2a\x23\x24\x70\x01\xe8\x50\x1a\x03\xd3\x21\x5e\x04\x52\xdf\xff\x95\x01\x8a\x4d\xe8\x0d\xbc\xb3\x2b\x7d\x83\xa6\xdb\xbf\x33\x25\x33\xac\xbb\xc6\x40\x9e\xeb\x36\xa5\xc4\x35\x76\x23\x25\xa5\xbe\x1b\xbd\xab\x74\x01\xca\xf0\x8d\x0b\x5e\x82\x96\x53\x51\x85\x5e\x25\x11\x11\x20\xa2\x14\xbe\x98\xc2\xbe\xec\x15\x91\xe9\xd0\x65\x1f\xc9\xcc\x23\x1d\x30\x91\xf7\x38\x87\x9c\xf2\x80\x57\xe5\x6a\xc1\x3a\xcf\xb0\x9c\x01\x94\xde\x51\xfe\x34\x17\x2a\xd4\x8c\x6d\x05\x96\x4f\xc5\x18\xbe\x7c\x0e\xd9\x6c\xa8\x85\x31\xae\xef\x69\x93\x31\xd2\x24\xcc\x09\x19\x9a\xaa\x46\xa2\x49\xa7\xb2\x35\xbe\x70\xae\xfb\xbe\xa4\x86\x42\x8b\x20\x8c\x9b\xd8\x0f\x17\x6e\x3e\x3b\x6c\x26\x15\x39\xff\x75\xc5\x08\xe8\x7e\xc6\xc1\x88\x30\x5a\x2c\xac\xb6\x33\xc6\xd0\x56\xab\xa7\x79\x85\xec\xc4\x1e\x14\x2a\x41\x72\x55\x60\xc8\x71\x85\x02\x46\xf8\x8b\x13\x45\x6b\xfb\x20\x0c\x9f\x1c\xa4\x5d\x42\x87\x53\xcf\x44\x97\xa2\x9c\x01\x12\xef\x1e\xf1\xbd\x14\x9d\x81\x1b\x76\x04\xac\x55\xd1\x7e\xf9\x18\x45\x56\xda\x9f\x85\x4b\x9f\x01\x8a\x35\x6f\xdf\x55\xc7\xb6\x3c\xcc\x45\xa4\xb7\xe2\xce\xfa\x56\xa8\xc9\x04\x03\x36\xac\xb2\x2f\x4d\xbd\xb1\x3f\xaa\xd1\x0d\x8d\x28\xb9\x86\x05\x7d\x5f\x28\x87\x2d\xe1\x38\x73\x18\xed\xa2\xa3\xd7\x2c\xf4\x91\x64\x4a\x49\x65\xdf\x9f\x69\x4d\x38\x9c\x53\x4d\xd5\x35\x2b\x83\x34\x3e\x21\xe7\x76\xa3\xbc\x65\x2f\x03\x24\xca\x4b\x11\xbe\x4b\xa5\x7d\x75\xa7\x98\x03\x98\x2f\x26\x93\x17\xae\x81\xb6\x42\x01\x1b\xf9\x90\xfd\x3c\x17\xc5\xcf\x63\xc6\xcb\x66\xbc\xeb\xd1\xa6\xf7\xb4\xd1\x68\x1c\xb5\x62\x34\xb8\x83\x24\xa1\xb8\x23\x2e\x4a\x88\x26\xa7\xfe\x77\x23\xb3\x71\x22\xaf\xc3\x31\x9f\xb3\x31\x43\x28\x10\x8e\xdc\x0e\xc6\x8c\xce\xc5\xfb\x1c\x8b\x0e\x87\x1c\x3d\xcc\xeb\xad\xce\x68\x67\xae\x13\x92\x6a\x56\xc7\x53\xb9\x88\x20\x5d\x81\x6b\xf2\x83\xb7\x56\x6c\x97\x72\x63\xb0\x0e\x6c\x0e\x6d\xc8\x8f\x3d\xca\xb9\x59\x1d\xfb\x96\x83\xb3\x3a\xce\x66\xd8\xe0\xb5\x2f\x84\x38\xf6\x18\xa7\x55\x05\x05\x24\xa9\xcd\xdf\xea\xd8\x5d\x72\xce\xea\xd8\x49\xb2\xce\xea\xc8\x91\xbc\xb3\x3a\xd2\x93\x79\x56\x47\x1e\x7b\x0a\x8e\xa7\x22\x4e\x20\x22\x70\xdf\x90\x35\x36\xd6\x38\x75\x03\x04\x7e\x30\x85\x35\x11\x63\xc8\x48\x93\x9c\x38\x87\x64\x89\x4e\xb5\xac\x5a\x83\x20\xe4\x5f\x24\x96\x19\xe1\x25\xbd\x17\x2a\x8f\xa0\xb8\xba\x5c\x24\x89\x82\x26\x81\xe2\x59\xce\xb5\x9e\xce\xf3\x92\xdb\x97\xba\xaf\xae\x97\xfc\x05\xdc\x71\xec\x47\x19\x77\x1c\x7b\x51\xcc\xdd\x83\x92\xbf\xa4\x3b\x8e\x7d\xaa\xba\xdc\x1f\x59\x2f\x69\x7a\x91\x77\x3f\x9e\xc8\x7b\x16\xfa\xd9\xa2\xac\xb4\x0c\x3d\x0e\x7b\x06\x0a\x28\xa6\x6e\x34\xda\x4f\x7c\x0c\x10\x76\x45\x4c\xb7\x6b\xe5\x73\x8a\x3c\x95\x33\xda\x57\x34\x38\x3e\x3f\xcb\x68\xff\x8d\x66\xbd\xc7\x02\x1c\x3f\xf1\x6c\x03\xde\x66\xf4\x36\xf8\x0c\xcd\xb7\x71\xe4\xff\x49\xb7\xa3\xae\xc2\x52\x16\x71\x7b\xff\x6d\x4e\x77\x5e\xfc\x3b\x2b\x29\xc6\x1d\xc0\x22\x0c\x34\xd2\x95\x90\xe8\x64\x4a\x27\x8b\x61\x65\x4a\x9f\xe9\x97\x9e\xa6\x4a\xf6\xdf\x3e\xb5\xa7\x56\x25\xd8\xfd\x84\x5e\x45\xab\xa3\x87\x2d\x2f\xba\x16\xf9\xe8\xb2\x44\x67\x42\xe4\xd7\x68\x64\xf9\x06\x83\xac\xa8\x10\xd2\x60\x0c\xf5\x08\xdd\xf3\x7a\xe4\x02\x15\xa2\xf2\xa6\xa2\x24\x2d\x2f\x31\x1b\xd3\x27\xbf\x4f\x5e\xfc\x73\xa5\x55\xc0\x06\x9e\xe7\x41\x27\xf2\x44\x99\x10\xb4\xe1\x3f\x31\x95\xd2\x49\x79\xdd\xe8\x21\x97\x9b\xdf\x63\x92\x2e\x16\xac\xa6\xf0\x9f\xdf\xf9\x0d\xb2\x44\xdb\xe5\x26\x83\xb3\x84\xa9\xda\x0a\xbe\xa3\x5e\x95\xab\x83\x9b\xd7\x19\xf2\xe4\xba\xf1\x24\x61\xb5\xe1\xcc\x9f\x6c\x3b\xcf\x7b\xea\xbf\xbd\xa2\x60\xa1\x84\x40\x03\x5f\x6b\x38\xb8\xa3\xac\x24\x71\x83\xfb\xbf\xe7\x5b\xf7\x94\x81\x85\x38\x3e\x07\x6b\xf4\x50\x2b\xf4\x28\x48\xe9\x7d\xeb\x71\x36\xc0\x9e\xad\xd0\x0f\x8f\x67\x2b\xb4\x1b\xcf\x56\xe8\xad\xc7\x93\x59\xa1\x23\x91\xce\x73\xd8\x35\x66\xe4\xb8\x6f\x97\xb7\x25\x77\x3d\xbd\x27\xe8\x93\xf2\x06\x60\x6f\xfd\x95\xaa\xef\xde\x7f\x31\x99\xbc\x40\x07\xff\x24\x38\xb1\x5a\x33\x1b\xff\x89\x30\x51\xc8\xd2\xce\x73\x05\xf3\x2b\x6d\x40\xdd\xe9\x2c\x7a\x31\x2c\xb5\x5f\x2b\x0e\x11\x80\xb9\xf3\xca\x8d\x19\xd9\x96\xaf\x8e\xf8\xdd\x53\x0a\xe7\x19\xd9\x4b\x27\xdc\x7b\xc8\xfd\x51\xb8\x03\x65\xca\x49\xf9\x5d\xdd\xc7\x8a\xd7\xdc\x65\x29\x5a\x7a\xca\xb4\xc9\x95\x7c\x42\xc8\x21\x4e\x3e\x29\x9a\x76\xe4\x16\x9a\xd4\xac\x96\x6a\x39\x0a\x8b\xd9\x2f\x7b\xab\xbb\x27\x8e\x40\xb9\x28\x5a\xa5\x98\x30\xd5\x32\x52\x33\xfe\xb9\xb4\x0c\x7f\x52\x7b\xac\x64\x04\xe4\xca\x13\xa7\xdb\x8d\x3e\xc5\x7b\xeb\x97\x41\x77\x46\xd8\x6d\xe0\xf7\xae\xb1\xc5\xa8\xb3\x80\xda\x4f\x99\xb8\x21\x37\x54\xe9\x5c\x14\x86\x3c\x95\x5e\x51\xf2\x1b\xae\x9f\x30\x05\xfb\xd2\x09\x2d\xe8\x6b\x94\xad\x69\x5a\xe3\xd8\x9d\x27\x11\xec\x63\x23\xad\x28\x1a\x48\xc3\x8a\x7a\xf6\x3a\xd5\xe4\x1d\x8f\x86\x1a\xc3\x94\x78\x43\xfe\xcf\xe1\xbf\xff\xf6\x1f\xe3\xa3\x3f\x1f\x1e\xfe\xf5\xd5\xf8\x7f\xfc\xed\xb7\x87\xff\x3e\x81\xff\xf8\xea\xe8\xcf\x47\xff\xf0\x7f\xfc\xf6\xe8\xe8\xf0\xf0\xaf\xdf\xbf\xff\xcb\xd5\xf9\xe9\xdf\xf8\xd1\x3f\xfe\x2a\xda\xfa\x1a\xff\xfa\xc7\xe1\x5f\xd9\xe9\xdf\xb6\x9c\xe4\xe8\xe8\xcf\xff\x3d\xe3\x4b\x50\xb1\xfc\x21\x1b\x4f\xc0\x31\x7e\x12\xb9\xa6\x3f\xf7\xd3\x66\x9a\x72\x61\xc6\x52\x8d\x71\x91\x37\x90\x86\x93\x6d\x29\x8f\x9a\x4f\x47\x63\x3a\xa9\x2a\x70\xd0\xa0\x7e\xef\x39\x11\x79\x5a\x0d\xfb\xc9\xdc\xd3\x58\x77\x3a\xa3\x1f\x06\x27\xbc\xc7\x05\xe3\xbe\x7c\xf6\xbe\x6c\x33\xbe\xfc\x08\x7c\xd7\xbe\xff\x39\xfc\x9e\x7c\xfe\xe1\xf7\x78\x96\xcf\xb1\xf7\xcf\xb1\xf7\xcf\xb1\xf7\xc9\x33\xed\xa9\x97\xf4\x39\xf6\xde\x8f\xcf\xc1\xdb\xf1\x1c\x7b\xbf\xc5\x78\xf6\x7a\x6c\x1c\xcf\x5e\x8f\xde\xf8\x27\xf7\x7a\x3c\xc7\xde\x0f\x5c\xe4\x39\xf6\x7e\xd3\x78\x8e\xbd\x7f\x8e\xbd\x7f\x8e\xbd\x7f\x8e\xbd\x1f\x00\xd3\xba\xd8\x7b\x44\xfe\x75\x11\xf8\xce\xde\xd4\x85\xdf\xff\x13\x46\xdf\x6b\x8b\x7e\x05\x3b\x2e\x0a\xd9\x0a\x73\x25\xaf\x59\x62\x6c\xe2\x8a\xf5\xf7\xce\xec\x96\x0c\xdd\x67\x0d\xbe\xfb\xf0\x5e\x9a\x86\xbf\xc8\xfe\x1a\xb4\x2d\x39\x13\x39\xbc\x39\xf9\x99\xa3\x87\xcd\x4b\x88\x56\xe2\x16\x25\x2b\xbb\x2f\x1c\xe7\x34\x16\x69\x26\xe4\x98\x28\x56\xf0\x86\xbb\xa2\x9a\x14\x3f\xcf\x00\x08\xd0\x07\xd7\x9e\x74\x69\xa9\x06\xab\x66\x81\x55\x85\xb6\xa5\x2a\xb2\x91\x3a\x29\x6f\x05\xd0\x1c\xc6\x2f\xfb\x4a\xa8\xf3\x80\x86\x73\xcb\x35\x23\x7a\x21\xdb\xaa\x24\x8a\xfd\x87\x57\xba\xdc\x8e\x5c\xc5\x30\xc4\x8e\xe4\x3c\xc0\x44\xaf\xee\x4e\x82\x36\xdc\xde\x67\xb6\x5f\x55\x12\xd9\xc7\x86\x2b\xa0\x3b\x97\xac\x90\xa2\xdc\x4b\xb7\xcc\x1d\x20\x3b\xc5\x08\x62\x72\xb0\x06\x74\xe8\x3b\x75\x43\x2b\x5e\x5a\x19\xcd\x87\x7c\x23\x19\xcd\x71\xed\x90\x12\x87\x5b\xa5\x3b\x8c\x22\xb4\x69\x94\xa4\xc5\x82\xe9\x08\x5e\xb4\x46\xb8\x0e\xe9\x69\x0d\x7b\xe3\xd1\x54\xed\x9c\x0b\x34\x69\xc0\xaa\x5e\x82\x95\xc6\xa7\xd1\xb8\x97\x5e\x05\xf9\x2a\x02\xc7\xfe\x3c\x03\x30\xa8\x4c\x19\xb5\x84\x6c\x1d\x19\x03\x81\x3b\xc3\x67\xf1\x1f\x9a\xc8\xaa\x04\x79\x83\x0a\xf2\xa7\x57\xa4\x61\xaa\x40\xb2\x94\xc5\x81\xa7\xa1\xef\x94\x85\xa3\xb2\x1a\xb3\x15\x65\xee\x5f\xfe\xeb\xdf\x91\x85\x6c\x95\x9e\x9c\x44\x04\xe0\x35\x7c\x96\x03\x5b\x44\xd9\xc5\x45\x1b\x52\x31\xaa\x0d\x79\xfd\x8a\xd4\x5c\xb4\x26\x5f\x7d\xc7\x5c\xd6\x96\xc8\xce\xf2\x87\xdf\x25\xce\xf6\x04\xd5\x22\xb3\x50\x92\xd8\xaa\x02\xff\x1d\x4c\x2b\xce\xa3\x08\xbd\xed\x49\x23\xb9\x30\xab\x86\x16\x27\x71\xe5\xe4\x56\xe0\xc9\xdc\x0b\x7e\x90\xd9\xc4\xf0\x6b\x2b\xa7\x4b\x33\x48\x74\xea\x1d\xba\x9b\xa7\xdf\x4a\xe3\x7f\xb9\x0f\xf1\xac\x24\xca\x13\x0b\xab\xbd\x82\x81\x55\x2f\xa8\x62\xae\xfd\xe5\x0b\x4d\x2a\x3e\x63\x96\x24\x0c\x00\x25\x51\x3e\x4e\x93\x8a\xc7\x44\xb1\x39\xd7\x46\x0d\xf3\x99\x8d\x87\x73\x9b\x54\x11\x7a\xae\x64\x3b\xb8\x72\x65\xae\x3b\x0f\x40\x78\xfb\xa8\x8f\x92\x70\x8d\x50\x87\x17\xec\x75\x7c\x02\x5d\xfc\xb8\xc6\xc0\xb9\x92\xef\xac\x62\xb4\xfc\x41\x54\x83\x1d\x8e\xb9\x36\xda\xc3\x81\xc6\x28\x10\x49\x66\x12\x02\xd3\x16\x2c\x5c\x55\xdf\x77\x18\xec\x5c\x70\x6f\x59\x89\x6a\x82\xfd\xf9\x18\x62\xbe\x23\x37\x5b\x42\x7b\xf4\x88\x91\xcf\x68\xa5\x13\x1b\x46\xa7\x18\x2a\xfc\xf5\xdd\xfd\x01\x21\x1c\x7d\x22\xea\x8a\xc9\x4b\x45\xea\xb6\x32\xbc\xa9\xba\xc3\xba\xf0\x3f\x70\x32\xe4\x70\x43\x5b\xa7\xf5\xd1\x28\x0c\x82\x6a\xa0\xd6\x6f\x1a\xa9\x0c\x46\x53\x1d\x06\x18\x98\x30\xd0\xda\x1e\x32\x77\x59\x43\x15\x0d\x98\x52\xc8\xba\xa6\x09\x35\xcf\x31\x38\x87\x42\x02\x02\x4a\x00\x56\xee\x54\xb4\xea\x76\x28\x8a\xd4\xde\xd5\xb5\x36\x4c\x50\x31\x38\xde\x30\x17\xce\x20\x14\x44\xde\x86\x14\xfc\x39\xbf\x61\x62\xf5\x3e\x3b\x5d\xfe\x5b\x5a\x5c\x33\x31\xdc\x38\xf8\xa3\xf6\x67\x5c\x2e\x05\xad\x79\x41\x2b\x4b\x0f\x94\xbc\xe1\x96\x1c\xb0\x72\x65\x5d\x3d\x72\xf6\x6f\xec\xe0\xe9\x3b\x3f\xa3\x56\xb4\xab\x83\x6b\x35\x1b\x1c\x1f\x9f\xeb\xd8\x2c\x0c\x4f\xc5\xf3\x34\x86\x43\x28\x7e\x53\x30\xaf\x54\xda\xf5\x76\xb5\xdf\xf8\x7e\x59\x76\xdc\x63\x73\x44\xa3\x40\x92\x0c\xb1\x9c\xd8\xbc\xab\xb2\xbc\x6a\xe9\xb3\xd3\x56\xef\x82\xeb\xed\x9d\xc6\x6f\x06\xee\x87\x9a\x0e\x12\x32\x73\xa0\x9d\x9a\x96\x7d\xc6\x72\x41\x4b\xa9\xc9\xb7\xd0\xd2\xe2\x84\x81\x0d\xe2\x71\x82\xfa\xb0\x1d\x5c\xe3\x65\x62\x1f\x69\xdd\x54\x4c\x4f\xae\xff\x04\x7e\x26\x47\x3c\x5e\xaa\x69\xf9\xf2\xe2\xf4\xf8\xe4\xfd\xe9\xa4\x1e\x42\xb4\x76\xac\x16\xf0\x9a\xce\x87\x69\xa0\x63\x52\x4b\xc1\x8d\x54\x43\xb8\x5b\xaa\x56\x30\xd3\x57\x76\xdf\x76\x4c\x21\x11\x0a\x6f\x02\xe8\xba\xc7\xa3\x8f\xd5\x69\xfc\x5e\x5a\xb5\x48\xba\x94\x2d\xb9\xa5\xd8\x99\x0a\xf0\x78\xb8\x6c\x7a\xc5\x9b\x37\xe4\x54\xe8\x56\xb1\xae\x23\xe7\x2a\x08\x96\xa5\xf9\x54\x42\xcf\xd8\xe0\xca\x60\x4b\x2a\xe8\x84\x82\xfd\xee\x07\xc3\x71\xea\xee\xc5\x1b\x72\xc0\x3e\x9a\xdf\x1d\x8c\xc8\xc1\xc7\x99\xb6\xff\x08\x33\xd3\x07\x13\x72\x56\x37\x15\x2f\xb8\xa9\x96\xf6\x46\x31\xa5\x82\x8b\x1a\x7f\xb0\x12\x21\x3f\x1c\x92\x47\xba\x86\xb5\x91\x8a\xce\x99\xbf\xc8\xbf\x51\xd3\xa1\x32\x47\x32\xf7\x81\x4b\xb8\x6b\x64\x06\x20\x82\x2d\x1c\xe8\x2e\x7e\x94\xd6\xc2\x63\x28\x29\xfd\xcd\x42\xde\x8e\x8d\x1c\xb7\x9a\x8d\xf9\x50\x87\x62\xf2\xc9\x5c\xb3\x25\xa4\x76\xed\xf8\x6c\x1c\x18\x3d\x63\xa3\x91\xe0\x53\x87\xcf\xad\xaa\x71\xf1\xed\xc9\x8f\x3a\xc5\x21\x14\x99\x23\x5e\x32\x53\xbc\x2c\x58\xb3\x78\xe9\x56\xfe\x67\x3d\xff\x28\x12\xe3\xce\x9e\x0c\x9a\xd0\xf3\xcc\x5d\x63\x94\x87\x03\xe5\xd4\x42\x56\x15\x2b\xbc\xcb\xeb\x2d\x6b\x16\xe1\x81\xcf\xfa\xe4\x53\xb2\x39\x12\x73\x38\xf6\xcf\x8c\x6e\x47\x23\xe5\xe0\x48\xa0\x5c\xa8\x67\x61\xe8\xf3\x19\xf8\x24\x8d\xcd\x44\xc4\x4b\x4d\xf3\x0a\x11\x9f\x27\xb9\x1a\x2a\xce\x7c\x16\x96\xe0\x0b\xff\xa5\x66\x06\xa4\x58\x2e\x08\x96\x86\x7c\x6f\xa5\xea\x7d\x30\xf9\xee\x05\x2a\xa5\x58\x9c\x31\x7b\x38\xa1\x10\x4c\x2e\x4c\x08\x80\x80\xa3\x24\x0a\xe4\xa5\xad\x59\x30\x61\x78\x81\xc1\x1a\x2e\xdd\x39\x96\x85\xc8\xd9\x0c\x2d\x7f\x65\x42\xb4\xa1\xbc\x61\x4a\xf1\x92\x69\x92\x2c\x0c\xc5\x1e\x1f\x5e\x7d\xd6\xa8\x95\x14\xe8\x97\x23\xae\x2e\x35\xd4\x3c\x67\x3c\x40\xfe\xf0\xf2\xfd\x08\x2c\xdf\x8b\x90\xf2\xa7\x08\x26\xdf\xc7\x30\xf2\x4c\x81\x78\xe9\xa1\xe3\xf9\x83\xa1\xf7\xc6\x9d\xd1\x13\x3b\xe1\x93\x6c\x62\x27\x2d\x6b\x9e\x50\x98\x74\x0f\x48\x7a\x1e\xc1\x13\xf6\xe1\xd1\x93\xe8\x82\x56\xec\xec\x87\x64\xc7\x83\x9b\xa7\xef\x45\xb8\x74\x1f\x36\x4c\x69\xae\xa1\xea\x84\x77\x68\x19\x43\x8b\x85\xeb\xde\xea\x43\x09\xa4\x20\xdf\x87\x0b\x40\x84\x2c\x87\x85\xd7\xed\xd8\xb2\x3f\xa7\x86\xdd\x0e\xd4\x7e\xc7\x9d\xd0\x35\xf4\xf7\x60\x56\x7e\xf6\x0c\xac\x35\xcb\xa7\x5b\xff\x43\x8e\xf7\x9d\xb9\x9f\xde\xde\x3f\xb9\xc7\xd2\x9f\x83\x88\xc2\x8c\x3b\xf1\x7a\xe2\x08\x54\xec\xe3\x6c\x18\x2b\x77\xb7\x2e\x0b\xfe\xb9\xb9\x3c\x16\xc1\x41\xd2\xb2\x54\x4c\x6b\x2f\x6c\x7a\xca\x76\x7c\x7e\x46\xfe\x82\x8f\xef\x6c\xf7\x1a\x25\x0d\x1a\x11\x4f\x64\x4d\xf9\xe0\x44\xa7\xde\x1e\xac\x4e\xea\x37\x23\xd6\x03\xfd\x26\x9c\x87\x67\x89\x7b\xd8\xea\x82\x5d\x3b\xea\x56\xb1\x92\x38\xb7\xcf\xce\x76\x69\xef\xec\x2b\x77\x2c\x1e\xe4\xd0\x7e\xf7\x12\x5a\xe5\x1f\x4d\x3a\x5b\xcb\x8a\x21\x66\xb8\x65\xf4\x09\x0d\x38\x5f\xa4\xd9\x23\x8a\x1c\xf1\xa5\xaa\x3a\x53\x87\x47\x7e\x10\x66\x43\xba\x52\xc2\xaa\x42\x73\x88\x61\x8f\xb2\x08\xc1\x8e\x02\x9a\x5e\xa8\x46\x85\x36\x95\x11\x79\x27\xe7\x5c\x78\xf6\x22\x5d\x16\xc9\x8c\x0e\x37\x6e\x3c\x5b\x17\xee\x8c\x67\xeb\xc2\xb3\x75\xe1\xd9\xba\x70\xff\xd0\xba\x3a\x15\x74\x5a\x0d\x4f\x19\xee\xab\x90\x61\x3a\xf2\x5d\x45\xe7\x84\xc1\x1f\x2f\x4b\xae\xed\xbf\xe4\xf2\xf2\x1d\x44\x0f\xb7\xc2\x1b\x9e\x01\x37\x9d\xf4\x15\xea\x08\x23\x2f\xdd\x1d\x1b\x43\x31\xe7\x7d\x42\xe5\xac\x6c\x8c\xac\x03\x85\x70\x51\xda\x5d\x63\xba\x57\x29\xc0\x3d\x01\xfc\x8c\x86\x6a\x84\x98\x6c\x3b\x65\x96\x5a\x15\xd7\xe7\x51\x00\xaf\x54\xf6\x33\x11\x7d\x94\x45\xf9\xc8\x34\x67\x4e\x35\x64\x05\xa4\x14\x54\x38\xcf\xe5\xfa\x8d\xe6\xf3\xd2\xb8\x17\x42\x2e\xdd\x41\xc2\x77\x54\x6b\x59\xf0\x2e\xe4\x1e\x22\x57\x3a\x11\xbd\x04\x11\x7d\x67\x9b\x8c\x7a\x70\x9e\x0d\x41\xf5\x7b\x8d\x66\xe2\x11\xdb\x3d\x41\x75\xac\x89\x70\xe1\xf7\x6d\x67\x9b\x80\x57\x2d\xa5\x92\x7d\x2e\x22\xd1\x41\xb2\xba\x8f\x81\x20\xac\x86\x4c\xfb\x52\xa8\x0e\xf7\x06\x5b\x9c\x70\x40\x0c\x25\xd7\x6b\xb0\x96\xeb\x40\x92\xa0\x48\xf6\x4e\x4e\x6b\x78\xe5\xe8\x1c\x27\xe4\xf4\x8d\x7e\xce\x0f\x7e\xe6\x82\xaf\x81\x56\x37\xb2\x69\x2b\x4c\xd7\x0e\x9b\x96\x2d\x00\xfb\x31\xb1\x9c\x08\xdb\xa7\xb7\xd9\xa6\x6a\x1e\x51\x89\xc1\x5d\x5f\xc8\xb8\xda\xe1\xe3\xcb\x5a\xfa\x3b\x0a\xd6\x49\x32\x5d\xfa\xe9\x32\x58\x3c\x77\x5f\xd5\x32\x57\x15\xcb\xe1\xd6\xe5\x5e\xf5\xcb\x9e\x05\xe7\xd5\x1f\x7e\xf7\xbb\x04\x61\x88\x2b\x56\x18\x09\x49\x73\xae\xa2\x70\x88\x37\xa5\x8a\x81\xee\x8f\x25\x27\xbd\x7d\x19\x93\xa6\x4c\x52\x54\xc4\xee\xca\x5e\xee\xa4\xcc\x65\x8e\x42\x0b\xe9\x65\x2c\x93\xc2\x1b\xb3\xc5\x9c\x43\x89\xfc\xb3\x1d\x97\xc8\xdf\x69\x61\xfc\x5d\x96\xc3\xdf\x5d\x11\xfc\x1d\x96\xbe\xdf\x75\xc1\xfb\x9d\x94\xb9\xdf\x79\x38\xf4\xa7\x2f\x64\x9f\xa5\x1e\x5d\x8e\x5a\x74\xa9\xa5\xea\x13\xeb\xd8\xe5\xa9\x61\x97\x5c\x8c\xfe\x53\x94\xa0\xcf\x64\xe3\x4c\x2f\x37\x9f\xb7\xd6\xd0\xae\x4b\xcb\xef\x91\xe8\x8d\x63\x3f\xcb\xc8\xef\xa4\x78\xfc\xae\x4b\xc6\xef\xb0\x50\x7c\xbe\x82\x65\xb9\x8a\xc2\xa7\x17\x2a\xcb\x4b\x38\x76\x54\xf6\xfd\x09\x8b\xbd\x7f\x92\x12\xef\x4f\x5d\xd8\x7d\x3f\x53\xc3\x52\x0b\x45\x27\x97\x87\xd6\x99\xea\x43\xe7\x8a\x01\xd9\x07\xb3\x78\x07\xc9\x5a\xf7\x82\xef\xfe\x87\xf7\x00\x0a\x5f\x80\x9f\xb8\xa1\xd8\xcb\xb1\xcd\x9c\xbf\xf4\x49\x6c\xb0\x24\xd9\x56\x8e\x90\xc8\x41\x02\xef\x3a\x57\xd7\x0f\x97\x2b\xf1\xc4\xe1\xe3\xfd\x0f\x23\x7e\x8e\xa7\xdd\x66\xec\x63\x3c\xed\xa7\xaa\x9c\xf1\xe5\x85\x34\x96\xcf\x21\x8d\xf1\xd8\xc3\x90\x46\xdd\x6b\xd1\xed\x5d\x89\xc0\xb0\x40\x29\x93\x53\x2b\xde\xf9\x72\x71\x1d\xbd\x3d\x3e\x3f\x1b\xbc\x7a\xa1\x18\xd4\x51\xa7\x95\x9e\xac\xd3\xd6\x7c\xe0\x8e\xd3\x0d\xbd\x96\x46\x8d\x61\x75\x93\xd0\x8b\xff\x39\xa2\xf1\xce\x78\x8e\x68\x7c\x8e\x68\x7c\x8e\x68\xbc\x7f\xec\x73\x5c\xce\xa2\xad\xa9\x18\x5b\x7e\x0a\xe1\x90\xbd\x44\x8c\x15\xb9\x78\x42\x1c\x07\x4c\x22\x5a\x58\xbf\x15\xaa\xfa\xb6\x82\xff\xda\xb2\xce\x47\x10\x94\x9d\x3d\x88\xa0\x02\x38\xf6\xe7\xb8\x50\x07\x5c\xe1\xb3\x85\xbc\x53\x97\xce\xed\x65\x38\x3a\xcf\x1a\xd3\x8e\x0c\x16\xef\xb9\xf4\xcc\x82\xa1\x9a\x7a\xbe\xa2\xa6\xf6\xac\xa1\x8e\x90\x03\x1d\x4d\xf3\xab\xc6\xaa\x97\x45\x51\xfb\xee\xae\xa7\xc4\x94\x91\x9a\x2b\x25\x95\x8b\xf1\x8a\x5f\x1f\x53\x86\xf8\x7c\x61\x98\x42\xdb\x22\x26\x36\x0c\x27\x9f\x97\xcc\xb8\x5b\x00\xb7\xc8\x48\x42\x05\x56\xf7\xb4\xff\xed\x8b\x4b\xc0\xd6\x78\x09\x64\xca\x16\xf4\x86\xcb\x36\xa1\x98\xd7\x25\xca\x53\x07\x6e\x4a\xd0\x15\x96\xb2\x0d\x51\x1c\xad\xb6\x9b\x11\x4e\x41\xdf\xc5\x83\xc1\x4b\x7f\xe8\x26\x05\x83\x73\x29\xbd\x1b\x77\xcc\x3e\x72\x6d\xee\xee\xb9\x47\x01\x17\x35\xb4\x93\xcb\x7c\xa3\x1b\xcb\x7d\x7f\x1a\x5c\x08\xb6\x5f\x04\x36\x9e\xad\x6f\x3c\xb8\xb9\x84\xaf\x1e\x32\x1d\xb8\xbe\x2a\x58\xdd\x9a\xd4\xb4\x58\x70\xf1\x19\xb6\x1d\xc0\xb7\x3c\x1f\xe6\xc0\xfc\xd2\x6c\x17\xcf\x76\x8b\xbd\xb2\x5b\x84\x40\xf6\x8a\x17\xcb\xb3\x93\xbc\xc1\xf1\x38\xa7\x17\x9a\x74\x08\x8c\xb7\x9f\x93\x6f\xa9\x66\x25\x79\x4f\x05\x9d\xa3\xdb\xe2\xf0\xf2\xfc\xdb\xf7\x47\x16\xe1\xc1\x25\x73\x76\xb2\x36\x7a\xfe\x32\x9e\xfc\xc3\xae\xea\x43\x93\xd5\xad\xcb\x26\xa7\xde\x99\x75\xe0\xf6\xed\xac\x74\x36\x09\x22\xd8\x79\x82\x2b\x70\x4d\x39\xf1\xf3\xd5\x56\x43\x18\xae\xee\xfb\xc2\xe9\x55\xae\x72\x53\x97\xd7\x9f\x7a\x03\xee\xfa\xa4\xac\x2e\x74\xcd\x96\x8f\xa6\xde\x63\x38\xc1\xc4\xc5\xf1\x3d\x6a\x7a\x7f\x4f\x95\x28\x5e\x62\x13\x84\xdb\xc5\x4e\x6d\x11\x1f\xd5\x3b\xd7\x4b\xa3\xa8\x61\xf3\xe5\x09\x6b\x2a\xb9\xb4\x58\x7c\x1e\x85\x6f\xe0\xa3\x53\x14\x0b\xd5\x94\x16\x44\xb5\x15\x54\x8e\x2f\xef\x34\x63\x13\x8c\x95\x1d\x99\xe7\x42\x1b\x5a\x55\xf6\x00\x61\xfe\x8d\x10\x6d\x2d\x1c\x6c\x2b\x06\x8c\x11\xce\x07\x9f\xea\x37\x23\xfd\xf0\xd0\x69\x6f\x2f\x08\xc0\xf2\x0f\xe3\xdb\x63\xe2\xe1\xb6\x8e\x7c\x1b\x22\x30\x20\x45\xbb\x68\x2b\xcb\xa0\xab\xb2\xdf\xbc\x15\xc5\x67\x87\x0a\x58\xdb\x1e\xe8\x9f\x7d\x49\x67\xce\x92\x4c\xf7\x1c\xe2\xd1\xcf\xb7\x5a\x1f\xfb\xc3\xde\x2e\x30\xfa\xd3\x4e\x4c\x68\xd3\x54\x1c\x73\xcd\xa5\x72\xa1\x98\x91\x57\xf1\xee\x63\xdb\x90\xda\x47\x8a\xa1\x8f\x13\x3b\xc7\xe4\x86\xa9\xe9\x36\xb6\xa4\xc7\x4a\x94\xb4\xe1\x10\xd4\xb2\x35\x09\x1b\x2a\x34\x1e\x9f\x9f\xe1\x42\xeb\xfc\xbc\xfe\x4b\x44\x08\x77\xd4\x3e\xac\x03\x93\x92\x9c\x49\x3b\xb4\xbe\x39\x3e\x3f\xc3\x8e\x52\xae\xfb\x4d\x67\xe6\xb6\xda\x27\xc5\x14\xbc\xae\xe3\x25\x9d\xdb\x19\x0d\x91\x82\x3d\xa6\x77\xa2\x85\x80\x89\xb6\x66\xd8\x59\x27\x00\x43\xb8\x80\x75\x02\x14\x9d\x35\x1d\x2d\xa4\x13\x72\x70\x10\xab\x45\x58\xa4\x43\x45\x70\x03\xa9\x3b\xf8\xaa\xf7\x94\xa5\x6b\xdd\x8b\x6d\xcb\xe1\x1f\x1f\xfb\xfa\xc8\x58\xd7\x01\x1c\x33\x43\xfc\x86\x90\xe2\xc2\xed\xf7\x8f\x17\xef\x9e\x1c\x41\x3f\xf4\x97\x73\xfd\x4d\x18\x34\x36\x6c\xa8\x32\x9c\x56\xa4\x55\x95\x0f\x32\xc3\x7a\x14\x2e\x2f\x6c\x41\x6f\xa2\xde\x31\x13\x42\xbe\x42\xac\x74\xc8\x80\xa4\x0c\x0c\x7c\xae\x97\xd2\xac\xad\xaa\x11\x99\x71\x41\x2d\x23\x63\x0d\x89\x42\x7d\xb6\x86\xf8\x92\x8b\x82\xd9\x6d\x1a\x7b\xbc\x24\x00\xb9\x37\x81\x04\x9a\x06\x91\x7a\xb1\xfb\x00\x41\xb1\xf4\xad\x00\x1b\xe7\x4c\x2a\xf2\xb6\x6a\xb5\x61\xea\x42\x5a\x36\xdc\x25\x1d\x90\x99\x92\x35\xa1\xf1\xd7\xdf\x72\x51\x3e\x2a\x1f\xe6\x02\x58\x7b\x41\x05\x61\x1c\xc2\x63\xec\xd2\x10\x15\x6b\x91\xbd\xbb\x54\x87\xba\x2d\x16\x76\x8b\x0e\x1a\x59\xea\x03\x4b\x9d\x0f\xd0\x75\xa6\x0f\x8e\xec\x5f\xab\xef\x8a\x31\xfc\xd1\xef\x5e\xd2\x86\x1f\x1c\x8d\x08\x6c\x38\x84\x68\xc9\xed\x63\xb2\xbe\xd0\x7b\xe4\x37\x0c\xcc\x56\x83\x6e\xd1\x45\x3c\x03\x5c\x0c\xd1\x05\x40\xdd\x2e\xb8\xc1\xac\x0d\x7b\x53\xd0\x9e\x1d\xfa\x75\xac\x32\x52\x42\x8e\xbd\x43\xc8\x5e\xad\x9a\x51\x1f\xb5\xc9\x6e\x98\x5a\x9a\x85\x6b\x02\xe0\xa9\xe8\xf3\xc9\xc1\xcd\x48\x3a\x35\x47\xca\xfc\x09\x75\xd7\x0d\x68\xc2\x9d\x13\x7a\xf1\xd5\x8b\x55\x96\xd4\xf1\xe0\x7f\xee\xf3\x00\x21\x6c\xd0\x59\xfc\x64\x7f\xd9\x3f\x07\xfc\x08\x99\x49\x20\x87\xef\xde\xb9\x50\x0b\xdc\xf0\xef\xb9\x00\x0f\x2e\xc8\x43\x3e\x23\xdc\x1d\xda\xda\x93\x02\x08\xff\x69\x4f\xe9\xae\xd2\xb5\xad\xa2\xb4\x01\x46\xaf\x67\xde\x37\xd5\xc6\x09\x9c\xb2\xfa\x5e\x96\xeb\x2f\x71\x0f\x49\xce\xa2\x87\x43\x44\x69\x67\xe6\x74\x73\x39\xcd\x69\xd9\xac\xd5\x42\x37\x9f\xe9\x86\xf3\xbb\x0f\x92\xce\x4e\x07\x64\x3f\xfa\xe6\xaa\x73\xf2\x93\x59\x45\xe7\x1d\x2e\x02\x11\x47\xc9\xfe\xed\xe5\x4f\xfe\x15\x34\xb9\xa7\x7c\xeb\x83\xaa\xd3\x43\xca\xd2\xb8\xdb\xa5\x7b\x9f\xb0\x8b\xac\xfd\xf2\x61\x8d\x29\x4c\x7e\x3f\x36\x6d\x13\xc3\x64\x36\x9a\xea\xef\xdb\x7f\x6f\x5a\xa7\x11\x26\xf8\xee\x5b\xde\x14\x02\x39\x07\x20\xc3\x5d\xfe\xd4\x43\x93\x07\xe0\xbd\x07\x69\xaf\xd9\xf2\x56\xaa\xf2\x61\x84\x3d\x0e\xc4\xcc\xff\xc4\x2b\xf3\x3e\xb0\x09\xcd\xf1\x72\xad\x9f\x6f\x30\xaa\x6e\x04\xbe\xa2\x53\x56\x3d\x0c\xfa\x3d\x8a\xc1\x7b\xda\xd8\xd7\xe9\x12\xf7\xd0\x22\xe5\x22\xa6\x50\x3b\xc5\x6c\x0f\x9f\x97\x24\xd5\x9c\x0a\xfe\x77\xcc\x76\x2c\x2c\xa5\x90\x8a\xff\x7d\x3d\xaa\x1d\xa2\x7f\x1a\x6d\x5c\x15\x2b\xcc\x91\xc3\xfa\xb5\x24\xfb\x81\x6b\x41\xcb\x92\xa3\x08\x76\xfe\x00\x06\x6f\xde\x2f\x2e\xae\x1f\x73\xd2\xf0\x3c\x26\x5b\xe0\x06\x3c\xf1\x31\x6f\x20\x0b\x0f\xdf\xdc\xcd\x21\x61\x5b\xb0\xa7\x56\x6d\x48\x17\xd8\xf8\xfb\x9a\x72\xe4\xda\xeb\x5b\x21\xdd\xb3\xbb\x0e\x9b\xa8\x93\xad\x2d\x2d\xb5\xef\x17\x66\xfb\x04\xf7\x2a\x69\xc3\x59\x4d\xf9\xd0\x1d\xc3\x91\x70\x64\x35\x35\xad\xe2\x66\x2d\xa7\xde\xfc\x43\x2e\xbe\x6f\xa7\xec\x27\xa6\xb4\x3d\x8f\xc7\xfe\x5c\x40\xde\xd1\xf1\xf9\xd9\xda\x6d\xc9\xc3\x91\xef\x35\x64\x80\xdd\xcc\x41\x6e\xc5\x45\xd2\x0a\x5a\x4f\xf9\xbc\x95\xad\xae\x96\xb1\x07\x85\x92\x6b\x2e\xca\x09\x21\x67\x68\x56\x15\x2f\x0c\xa1\x42\x8a\x65\xed\x1e\x15\x45\xd5\x96\xac\x37\xe3\x7d\xac\x4c\x12\x7a\x23\x79\x49\x68\x6b\x64\x4d\x0d\x2f\x48\x21\x99\x2a\xa0\x94\x66\x3c\x7f\xab\x19\xa1\xbd\x19\xbb\xdf\x16\xad\x36\xb2\x26\x35\x55\x7a\x41\xab\xea\x3e\x94\xc8\x20\x1d\x6c\xea\x3c\x3f\x86\x5d\xb9\xf7\xcb\x9b\x0d\xfb\xf0\xf0\x75\x78\xa0\xb7\xff\x16\xd7\xc1\x02\x97\x34\xc1\xcd\xfd\x48\xbd\xc5\x1c\xae\x0e\xea\xda\xde\x06\x3d\xfc\xbc\x5a\x30\xd2\xb4\xd3\x8a\x6b\x50\xe1\x81\x70\x2d\xc9\x94\x2d\xb8\xcb\x95\x7c\x98\x62\xdd\x7b\xc4\x0f\xed\xf3\x26\x92\xf1\xe0\x0e\x6d\xa0\xf0\x1b\x7f\xeb\x38\xe0\x59\x4d\xe7\x5b\x88\xf6\xf7\x5c\xdf\x77\x96\xec\x53\xb1\x0c\xfc\x14\x1a\x52\xea\x11\x91\xca\xa5\x93\x7a\xdd\x4f\xb9\xaf\x42\x9b\x55\x45\x7e\x70\x3b\xea\xb2\x63\xdd\x35\x80\x5c\x73\xa6\x66\x52\xd5\x76\xdf\xb9\x22\xb3\x56\x80\x35\xfc\x1e\xbd\x10\xe2\xd1\x80\xff\x38\x63\x26\xad\xb4\x0c\xc4\x00\x8e\x4d\x78\xc0\x08\xd5\xe4\x96\x55\xd5\x84\x1c\x57\x95\xeb\x9e\x19\x15\xef\xed\x2a\x1a\x76\x61\x71\xd3\xf5\xba\x65\xc9\xe7\x4c\x1b\x72\x78\xf9\x6f\xc7\x47\x20\x10\x81\xb1\x6e\x49\x0c\x9d\x4f\x56\x62\x9d\x31\x30\xd2\x8a\x5b\x65\x0b\x62\x59\x41\x0d\xad\xe4\x1c\xa3\xa9\x2c\x49\xb1\xbf\x6f\x2a\xba\xd4\x44\x48\xb0\xd5\x42\x9e\x30\x1a\x2c\x89\x6a\xc5\x7d\x7d\x92\x9f\x8e\x53\x3e\x4c\x93\x36\xf5\x25\xde\xe0\x1e\x7e\x98\xe6\x3c\xd0\x6b\xf5\x69\x59\xb0\x62\x4d\x45\xef\x31\x58\xdd\xa1\x17\x5d\x01\x3c\xab\xb7\x80\x61\x43\x0a\x16\xe6\x98\x90\x4b\xc4\xa7\x9a\x9a\x02\xe3\x43\x7e\xa9\x99\xa1\x25\x35\x74\x62\x95\xfb\x5f\xfa\x85\x72\x64\x55\xda\x89\xee\x3f\xe8\x7b\x60\x46\x51\x5c\x3e\x4c\xe3\xde\x59\xd5\x22\x3c\x0e\x0a\x97\xbf\xb7\x1b\x2d\x64\x89\xe4\x0d\x5e\xff\xf4\xa3\xd5\xad\x37\xba\xf2\x7b\xb0\xae\xfe\xa8\x6f\x7b\xaa\xfa\x6f\xe2\xb0\xb5\x66\xc2\xe8\x09\x1c\x4d\xfc\x09\xf8\x13\x8e\x3f\x9c\xdc\x6f\x8e\x7d\xd8\x90\xf4\x80\xe1\x68\x7b\x9f\xcd\xf1\x06\xd8\xbd\xcb\xc6\x7d\xd3\xf7\x25\xfa\x72\x09\x50\x8c\x07\x53\xf8\xa9\x08\x5c\x09\x1e\xde\xb0\x2c\x9e\x73\x57\xd0\xa3\x53\x0a\xef\x37\xb6\x6d\xe5\x11\xde\xc6\x0f\xfc\x50\x7d\x95\x71\x78\x8d\x7b\x1f\xda\xce\x2d\xfc\x60\x0d\x94\xfb\x6a\x9c\xe0\x99\x40\x72\xbd\xb7\xfc\x87\x63\xd8\xd6\x8d\xbe\xa5\xb1\xd0\xbf\xea\x23\x00\x7d\xd0\x09\x18\xb0\xa0\x17\xc7\x7a\xcd\x96\x2f\x9c\xa6\x6b\x6f\xd0\x82\x37\x58\xc5\xc7\xf9\x04\x1f\x3a\x7e\x1c\x3f\xd1\x8a\x97\x61\x01\xbc\x4b\x67\x62\x44\x3e\x48\x63\xff\x39\xfd\xc8\xb5\x41\x1b\xc3\x89\x64\xfa\x83\x34\xf0\x49\x96\x9d\x42\x00\x73\xee\x93\x33\x83\xa0\x03\x08\xae\x7b\x64\x2c\x71\xfb\x81\x95\xf4\x3b\x79\xcf\x3e\x7d\x26\xac\x40\x83\xaf\xfc\xc0\x12\xa1\x34\x98\x76\x0b\xf8\x94\x79\x21\xc5\xd8\xe7\x1b\xdd\x5d\xc1\xed\xa3\x54\xbd\x6d\x1c\xbc\x98\x5b\x08\x43\xf5\xe1\x1b\xae\x3d\x5f\x0a\x62\x08\xf5\xa6\xe1\x07\xed\xd2\x35\x53\x73\xf0\xed\x16\x0f\xf8\x22\xb7\xb5\xc8\x6f\x65\x87\xdf\xda\xfa\x3e\xc8\xe6\x3e\xe0\x47\xc0\x93\xde\xdd\x6b\x9f\x23\x8f\xc0\xc7\x68\x2a\xa4\xfa\x35\x1a\xee\xfe\xd3\x12\x77\x38\xd2\xff\x82\xb2\x7a\x7a\x42\x8e\x89\xe6\x62\x5e\xb1\xde\x77\xce\xdd\x1e\x4d\xb3\x61\xa9\x06\x32\xee\x7e\x6d\xf9\x0d\xad\x2c\x9b\x81\x0c\x87\x50\x90\x43\xce\xee\x30\xdb\x91\x2b\x9f\x67\x09\x62\x10\x63\x0f\xae\xd9\xf2\x60\xb4\x31\xe5\x23\xc6\xe8\x83\x33\x71\xd0\x55\x9a\xe9\x61\x69\xe0\x69\x20\x19\x1f\xc0\x77\x07\xc3\xf9\xf6\x46\x0e\xb5\xbd\x95\x91\x3c\x8c\x72\x8f\xcb\x23\xd3\xd7\x7c\x7d\x58\xd2\x36\x48\xe2\xe5\xcb\x43\x7d\x04\x76\x35\xc1\x08\x94\x42\x52\xe0\x92\xb0\x9f\xc6\x75\x7d\xad\xc6\x72\xcd\x9b\xa6\x2b\xba\xdc\x36\x73\x45\x4b\x46\xe6\x8a\x36\xf7\x5c\xda\xc7\x49\xa7\x28\xe2\xae\x5b\x72\x83\x5a\xb6\xff\x3a\xd0\x3d\x67\xbd\xc1\xea\xb0\xf1\x77\xb7\x6c\xba\x90\xf2\x1a\xea\xa3\x00\xde\x3d\xa1\x49\xed\x67\x5c\xeb\xa4\xfb\xcc\x9b\x3b\x34\x29\x99\xa1\xbc\x82\x10\xc1\x1f\xde\xbd\x77\x41\x84\x5e\x56\xf3\x50\xae\xa7\x19\x19\x74\x43\x5a\xba\x38\xd9\x0b\x76\xc3\xd9\xad\xb3\x9c\xdd\x47\xa2\xc6\x64\xce\x04\x04\xa8\x6d\x08\x33\x1d\x13\xcd\x4b\x76\x0a\x69\xc3\xf7\x4f\x94\xe0\x24\xbb\x07\xe6\x87\x68\xc5\x66\x5e\xf7\x20\x9f\xdb\x82\xc7\x05\x0b\xca\xb9\x54\x1b\xea\x8b\x6f\x57\x6c\x6b\xbb\x42\x5a\x21\xe3\xf6\x77\xbf\xfb\x66\x03\x5f\xf9\xc8\xeb\xb6\x7e\x43\xfe\xf0\xfb\xdf\x7f\xf3\xfb\xfb\x1f\xe3\x02\x1f\x7b\x7d\xff\xfb\xb9\xdb\xf6\xf6\xe2\x64\x0f\xf6\xbb\x0c\xf1\xde\x9b\x1d\xf0\x5b\x4c\x35\xa3\xbc\x6a\x95\x4b\x97\xd8\x52\x7b\xfc\x2e\xfe\x0d\x38\x4f\xbb\x14\x51\xea\x67\xf4\x71\xc6\x2e\xfe\x78\xc6\x05\xd3\x64\x21\x6f\x49\x2b\x14\x2b\xe4\x5c\xf0\xbf\xb3\x12\x4b\xa6\x6a\x0c\x80\x83\x76\xdc\x1e\xc5\x09\x13\x65\x23\xb9\x30\xc0\x62\x17\x54\x94\xd5\xa6\x58\xa5\x2d\xde\x34\xbe\xc1\x49\x5b\x06\xdc\xe8\x51\x1b\xf6\xbe\xfb\xc5\xca\x76\xd9\x77\xf6\xae\x66\xe4\x72\xb8\x6d\x49\x6f\x8a\x84\xf1\x72\x83\xcd\x65\x0d\x8c\x8f\x33\x09\xa0\xa9\x03\x3e\xfb\xb5\x65\x6a\x09\x39\xa8\x9d\xe2\x16\x45\x14\x5f\x75\x45\xfc\xfc\x3b\x3a\xa1\x92\xde\xeb\x13\x20\x6b\x4c\x32\x91\xa8\xd5\x05\xb8\xad\x40\x05\xbf\x61\x18\xa6\xe3\xbd\xbe\xe4\x98\x88\xb6\xaa\x36\xac\x74\xcf\x24\x42\x6e\xf2\x1c\xe3\xd8\xca\xfe\xb0\x9d\x61\x60\x5b\x13\x14\x8e\xdd\x19\xa2\xe2\x17\xcf\xa4\x45\x3d\x36\x9c\x78\x47\x06\x2a\x1c\x43\xcc\x54\x38\x1e\x91\xbe\xb0\x7d\xea\xc2\x76\x85\x81\xb7\x30\x5f\xe1\x78\x4c\x6e\xc3\x96\xe5\x7c\x9f\xd2\xa0\x85\xe3\x51\x31\x70\xdb\x19\xb7\xd6\x80\xbe\x65\x9c\xfb\x13\x1a\xba\x70\x3c\x85\xb9\x0b\xc7\xa3\xf6\x71\x1b\xd3\x17\x8e\x21\xbb\xf8\x09\xcc\x60\xee\x9d\x3f\xa5\x31\xec\x81\x25\x33\x9b\xc4\x70\x6c\x6d\x18\x73\xc0\x3d\x2a\x60\xf5\x11\xc1\xaa\x8f\x0c\x54\x4d\x08\x52\x1d\xfc\xd3\x2d\x8c\x67\x38\x1e\x87\xd1\x9f\xd0\x90\xe6\x17\xfc\x64\xe6\x34\x1c\x9f\xda\xa8\x86\x63\x6b\x7e\xfa\x38\x03\x5b\x3c\xf9\x03\xe8\x3a\xa4\x68\x93\x62\x5c\xdc\x48\xec\xfa\xf8\x28\x25\xe2\xe2\xce\x0f\x57\x74\x89\x5b\x60\xa3\x4e\x99\x08\xda\x57\xac\x53\x2d\xa4\xbc\x26\xad\x7e\xd8\xa3\xb6\xf1\xbd\x1f\x48\x8f\xcd\xa2\x04\x3f\xe6\x86\x5d\xb4\x15\xfb\x99\x9b\xc5\x0f\xbe\x81\xb0\xbb\x66\xa6\x6d\x2a\xd8\x8b\xe8\x0b\x8b\x97\x17\x9d\x72\x72\x66\x90\xc4\x16\xb2\xae\x99\x28\x31\xda\xb2\xa6\xd7\x9b\x11\x5e\x5b\xf5\x16\xb3\x0a\xaa\x0a\x55\x38\x58\x8a\x7d\x6c\xa8\xe8\x94\x95\x1b\xcb\xa8\x37\xa1\xf0\x96\x08\xbc\xad\x4c\xb6\x75\x9e\xe9\xa3\xe5\xed\xd5\xbc\xd2\x28\x31\xb4\x97\x3f\x4a\xa6\xac\x92\x50\x1f\x09\x33\x27\x30\xcb\x68\xeb\x54\xcb\xb3\x99\xff\x95\x93\x9c\x5c\xb7\x1a\x26\xe6\x5d\xb9\x71\x5d\xf1\x82\x05\x96\x29\xc5\x16\x45\x1a\x2e\x9c\x34\xbd\x9d\x80\xbe\x0d\xef\xdb\x92\xef\x3d\x82\xe7\x25\xf0\x3b\xda\xf0\x87\x4d\x81\x38\x06\x9c\xbc\x9f\x3a\x3e\xfb\x1b\xff\xd9\x36\xa7\xef\x1f\x7e\x3e\xff\x4d\x23\xe1\xfc\x43\xe3\xf4\xec\xc7\xdf\xa7\xa8\x9d\x0c\x1c\xce\x7e\x85\xb5\x14\x54\x59\x66\x0f\x96\xfc\x31\x79\x7b\x71\x7a\x7c\x75\x3a\x22\x3f\x9e\x9f\xc0\xbf\x27\xa7\xef\x4e\xed\xbf\x6f\x7f\xf8\xf0\xe1\xf4\xed\x95\x15\x9e\xbf\x7a\x10\x04\x68\xe7\x5b\x55\x78\xfa\x56\x42\x91\x7d\x62\x4e\xc5\x92\xcc\x5a\x63\x29\x72\x07\x4c\x0f\x4a\x8a\x26\x44\x5a\x96\xdb\x24\x3b\x7e\x71\x38\xd8\x3b\xf3\x70\xa0\xab\x56\xdb\xb8\xfd\x3e\x76\x50\x76\x79\xfd\x0f\xbf\xd9\xa7\x41\xf2\xad\xf3\x34\x1f\x8b\xe3\xc3\x52\x38\xff\xdb\x83\xf3\x7e\x27\x15\x61\x1f\x69\xdd\x54\x5b\x64\xc8\xbd\x68\x64\xa9\x5f\xb8\x5c\x5d\xfb\xdf\x0f\x6f\x3b\xfc\xe4\x65\x25\xe7\x2f\x42\x8a\x2f\x23\x95\x9c\x13\xdd\x4e\x43\xfe\x36\x08\x82\x5b\xcd\xf6\x95\x9f\xa6\x97\x8c\x3a\x0a\x49\xde\xd1\xac\x5b\x03\xd7\x9b\x33\x9e\xe0\x31\x70\xbd\xd4\x05\xad\x58\x6f\x26\xfb\xc1\x63\x01\xfa\xea\xe5\xfa\x37\xf4\x9a\x0a\x57\x2b\x33\x6e\x43\x29\x6e\x79\x55\x16\x54\x95\x77\xc8\x05\x88\x7e\x78\x9b\x00\x73\xb0\x3d\x9c\x00\xc1\xb1\x5b\x1a\x8b\x1a\x3e\x6c\xb1\xba\x61\xaa\xa2\x0d\xe6\x01\x42\x5f\x43\x88\x5b\xde\x02\xc4\x13\xd6\x30\xa8\x23\x80\xad\x9c\x18\x61\xa2\xa8\x24\x54\x6d\x44\xa9\x73\xd4\x3f\x16\x8c\x72\xf6\x6d\x57\xb6\xcd\x0f\xff\xc2\xd9\x2b\x24\x94\xe5\xa6\x3a\x98\xa5\x76\x6f\x65\x55\x9f\x7f\xfc\xe0\x3c\x68\x0c\x0c\x5a\x36\x23\x07\xae\x88\xc4\xc1\x88\x1c\x84\x22\x9a\xa5\xd3\xc8\x0f\xbe\x7a\xb8\x3c\x71\x98\x20\xae\x1c\x00\x0a\xbb\x8b\x74\x18\x03\x9c\x71\xa1\x16\xc0\x6e\x1f\xa3\xb1\x35\xe8\x5d\x81\x59\x2b\x52\x3a\x57\x0b\xbc\x43\x7f\xa1\x87\x67\x8a\x5f\xf4\x0e\xd4\x5d\x85\x8e\x64\x88\x0f\xbe\xea\x4d\x6f\x7c\xa5\x6d\x22\xa4\x3b\x3c\xc5\x2c\x36\x6e\x4a\x05\x88\xc7\x65\xef\xee\x85\x18\x97\xb8\xc2\x2e\x57\xa4\xa1\x8a\x09\x13\x80\x7f\x78\x5a\xd7\xca\x17\x8c\x31\x5f\x1d\x6c\x77\x2b\x37\x5e\xa2\x28\xac\x61\x4b\x5b\xc5\x65\xf8\xc5\xdb\x8a\x6a\xbd\xc6\xe1\x09\x3c\xc0\x4e\xec\xea\xac\x5b\xde\xeb\x62\x3e\xa0\xa1\xe5\x82\xde\x6c\x78\xd5\x2d\x80\x36\x54\xcd\x99\xd9\x1c\x90\x40\xc5\xf2\x87\x8d\x0d\x0d\xc6\x5b\x37\x08\x1b\x0f\xb0\x18\x71\x61\xc6\x52\x8d\xf1\x27\x6f\x88\x51\xed\x7d\x76\x07\xc3\x6b\x26\x5b\x73\xc9\x0a\x29\xd6\x27\x0d\xbb\xe7\xb2\x45\x58\x3c\x22\x93\xda\x05\xf9\x1c\x7b\xf1\x3b\xee\xb2\xe2\xcd\x51\x9d\x6c\xee\x03\x7b\xfa\xc5\x45\x7f\x78\xf7\x3e\xe5\xb0\x09\x54\x90\xda\x7c\x92\x3f\x39\x9e\x2c\xe6\x01\x52\x07\xf9\xc6\x9f\xbd\x6f\xcd\xe3\x7f\xf4\x36\x04\x8c\x6c\x7e\xda\x6d\xc6\xe6\x42\x8f\xf7\xbe\xbf\x36\xd4\xb4\x77\xb0\xe1\x21\x56\xe4\xe8\xfb\x25\x16\x72\x70\xea\xfd\x25\x4c\x15\xfb\xac\xe2\x1a\x72\xa8\xd1\x61\x11\x4d\x78\xce\x67\x94\x4c\x88\xfb\xa1\xbd\xb2\x46\x51\x8e\xe6\x30\x5a\x98\x96\xde\x75\xb9\xdb\x1f\xbb\x6c\x94\xf5\x95\x63\x37\x18\xc4\x36\x19\xc1\x0a\xa6\x8c\x7e\x47\xb5\xf9\xb1\x29\xe9\x3d\x35\x04\x56\xb2\x4c\xb4\x81\x3b\x85\x3a\xed\xad\x60\xa5\x65\x42\x6e\x4b\x70\x3e\x72\x6b\xa9\x7b\x8b\x33\xae\x99\xf0\x01\xac\xf4\x77\xcc\xfe\x7c\x6c\x97\x5a\x0f\xf5\x85\xb4\x7b\x72\xbc\x96\x46\xf5\x93\x79\x1e\x82\xd6\x72\x34\x05\xb3\x11\xc1\x3e\xae\x93\x2a\xd3\x21\xae\x18\x15\xeb\x93\x2d\x7b\xb0\xbe\xc5\xe7\x1e\x8f\x53\x6e\x01\x72\xbb\xe0\x56\xdd\xc2\x5a\x0b\x9a\x78\x21\xb6\x64\x15\xbb\xa7\xe4\x42\x62\xfe\x8f\x5b\xe1\xc4\x2d\x90\x1a\x3a\x7d\xde\x9f\x2e\x78\xbc\x9d\x6e\xe9\xb2\x72\x3b\x2d\xcd\xc9\x3e\xc1\x56\xb1\xfa\xc2\x20\xbc\x4d\x2b\x59\x5c\x63\x5d\x6f\x28\x6a\xc6\xff\xce\xd4\x06\x21\x03\xbc\x88\x5c\x94\xbc\x08\xe1\x0a\x8d\x92\x73\xc5\x74\x6f\xab\xb1\x06\xac\xc6\xd9\xed\x9a\x76\xcf\xc3\xba\x52\x75\xbe\x9d\x56\xb8\xb2\x17\x9f\x26\x45\xc9\xeb\xe5\x90\xbf\xd9\xf3\xa5\xdf\x55\xd1\xb1\xbe\x24\x74\x78\x70\x06\x1a\x5a\xbb\x24\xeb\x97\xdf\xdf\x9f\x7a\x9c\x35\x7f\x68\x53\x02\x34\x3e\xc1\x7d\x0f\x97\x8d\x4f\x6d\x48\x95\xde\xd6\x15\xf0\x40\x4a\x34\xd9\x5e\x75\x0a\x20\x6f\x33\x5b\xd6\x9c\x8a\xec\x61\x32\x5b\x54\x03\x7e\x4c\xf0\xcb\xb6\x9d\x90\x1e\xe5\xf6\x16\x8f\x69\x01\xd2\xbb\x2d\x9d\x32\xe5\x6a\xa7\x60\x7c\xdc\x4c\xaa\x7b\xd5\xb6\x7c\xc0\x6f\x4e\xa0\x7f\x70\x22\x2b\xd3\xde\x1f\x88\xde\x67\xdc\x9e\x82\x86\x9f\x8c\x08\x25\x0b\xae\x8d\x54\x2e\x42\xc4\x32\x40\xa3\xa8\xd0\xf8\xfd\xbd\xbc\x22\x35\xb4\xfd\x6d\x00\x81\xd0\xa6\x61\x54\x79\x3f\xbd\x63\x67\x54\x83\x11\xb5\x90\xaa\x5c\x0b\x98\x37\xc9\xac\x15\xc7\xd6\x2e\x9f\xa1\x76\x48\x45\xb5\xb9\x0a\x30\x58\x99\x62\x4b\x6a\xdc\x97\x98\xdc\x2b\x76\x6f\xe3\x6b\x58\x4a\xd1\x7d\x29\x09\x15\xce\x50\x75\xdf\x12\x5b\xe1\xd7\xc3\x72\x49\xf7\x6e\x28\x00\x0e\x7a\xaf\xdb\x20\xec\x45\xaf\xf8\x69\x20\xaf\x99\xd6\x1b\x13\xca\x57\x2a\xd9\x40\xf7\x24\x12\xba\x27\xb9\x9f\x7b\x66\x8f\x82\x03\xe6\x56\xf8\xca\xcc\xcb\xfb\x51\x8d\x80\x98\x80\x66\x90\x70\xad\x92\x8e\xac\x59\x50\xbd\xed\xcb\x84\x5b\x14\x72\x78\xb6\xbe\x0e\x5b\x42\xa3\x18\xd5\x9b\x6a\x73\x3c\x26\x08\x7a\xaa\x38\x9b\x91\xb7\xb4\x66\xd5\x5b\xaa\x73\xee\x3c\x90\x87\x4d\xa6\x1a\x36\x99\x4f\xc8\x8b\x8b\x28\x4c\xe6\x83\x34\xef\x99\x79\x31\x6c\x6f\xb6\x23\x04\x4f\x4a\x02\x92\xd5\x91\x87\x2f\x7c\xe2\x55\x4f\x86\x70\xc3\xc5\xde\x8b\x2b\xbd\xb9\x2e\xcd\x7d\xd7\xb8\x7f\x81\x5b\x05\xe6\xc9\x62\xe8\x45\x7e\xa0\xd6\xc5\x7d\x97\x77\x9b\x6b\xbb\xa3\x0b\xfb\x98\xab\xfa\xc0\xdb\x87\x29\x2e\xd7\x9a\x7a\xee\x6c\xc4\x55\x4f\x9d\x06\x5f\x51\x1c\x1b\x0f\x7d\xc9\x2c\xf4\x6f\x2f\x7f\xca\x29\x18\xed\xb6\x7e\x94\x3b\xd4\x7b\xbf\xdf\x20\xf9\x8f\x37\xf3\xf9\xd4\xda\x54\x25\xf8\xdf\x2c\x06\x7c\xca\x70\xb9\x13\xbf\xaa\x33\xc0\x84\xfe\x37\xf0\x17\x7a\xf7\x03\x64\x3d\xfc\x38\x34\x92\x34\x8a\xdd\x40\x1e\x85\x80\xfc\x50\x46\x04\xd3\xf6\xa2\x1c\x6d\x58\x7e\x4b\x95\x6d\x3b\x75\xed\x61\x55\xfa\x41\x35\x99\x3c\x7c\xb4\xfe\xa1\x4d\x07\x8c\x63\x5b\xad\x70\x0b\xad\xfb\x11\xea\xe0\xc3\x3a\xd5\x23\x26\x7b\x50\xc0\x7c\xe4\x7c\xeb\x0d\xcf\xab\x63\xa5\x55\x8d\xfd\xc9\x05\xd0\x73\x8c\xb4\x28\x2c\x55\x2e\xa0\x0b\x13\x92\x79\x47\x9e\xfa\x46\xe6\x8b\x55\x1a\x08\x31\xf7\x7d\x0c\xcf\xf5\x5a\x6d\xcb\xf3\xed\xf9\x83\x45\xe1\xb6\x9e\x6f\x0f\x2a\xdc\x3d\x88\x40\x4f\x5b\xf2\x0a\xc7\x43\x58\xb7\x7b\x7c\xdb\xa6\xda\xe9\x46\x1c\x7b\xa2\x62\x83\x9a\xa9\x1b\x56\xf6\x3c\x8c\xae\x1b\x5a\xff\xb3\xc8\x1f\xdd\xcd\xef\xb6\x9d\xfc\xe7\x7f\xfd\xb7\xff\x3f\x00\x00\xff\xff\xaf\xfe\xbe\x33\xb5\x9b\x0b\x00") func operatorsCoreosCom_clusterserviceversionsYamlBytes() ([]byte, error) { return bindataRead( @@ -125,7 +125,7 @@ func operatorsCoreosCom_clusterserviceversionsYaml() (*asset, error) { return a, nil } -var _operatorsCoreosCom_installplansYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xcc\x5b\x5b\x73\xeb\xb6\x11\x7e\xf7\xaf\xd8\x71\x1e\x92\xcc\x58\x52\x4e\x3a\x9d\xe9\xe8\xcd\x75\x9a\x8e\xdb\x5c\x3c\x47\xce\x79\xc9\x9c\x87\x15\xb9\x12\x11\x83\x00\x83\x8b\x64\x35\xcd\x7f\xef\x2c\x40\x52\x94\xc4\x9b\x74\x7c\xec\xe2\xc5\x16\x09\x2c\xf6\x82\xbd\x7c\x00\x88\x85\xf8\x40\xc6\x0a\xad\xe6\x80\x85\xa0\x67\x47\x8a\x7f\xd9\xe9\xd3\xdf\xec\x54\xe8\xd9\xe6\xdd\xd5\x93\x50\xe9\x1c\xee\xbc\x75\x3a\x7f\x4f\x56\x7b\x93\xd0\x77\xb4\x12\x4a\x38\xa1\xd5\x55\x4e\x0e\x53\x74\x38\xbf\x02\x40\xa5\xb4\x43\x7e\x6c\xf9\x27\x40\xa2\x95\x33\x5a\x4a\x32\x93\x35\xa9\xe9\x93\x5f\xd2\xd2\x0b\x99\x92\x09\xc4\xab\xa9\x37\xdf\x4c\xdf\xfd\x75\xfa\xcd\x15\x80\xc2\x9c\xe6\x20\x94\x75\x28\x65\x21\x51\xd9\xa9\x2e\xc8\xa0\xd3\xc6\x4e\x13\x6d\x48\xf3\x9f\xfc\xca\x16\x94\xf0\x14\x6b\xa3\x7d\x31\x87\xd6\x3e\x91\x5a\xc5\x09\x3a\x5a\x6b\x23\xaa\xdf\x00\x13\xd0\x32\x0f\xff\x47\x09\xef\xe3\xa4\x0f\x12\x55\x78\x2a\x85\x75\xff\x3e\x7e\xf3\x83\xb0\x2e\xbc\x2d\xa4\x37\x28\x0f\x59\x0d\x2f\x6c\xa6\x8d\xfb\x69\x3f\x31\x4f\x24\x8a\xf8\x4a\xa8\xb5\x97\x68\x0e\x46\x5d\x01\xd8\x44\x17\x34\x87\x30\xa8\xc0\x84\xd2\x2b\x80\x52\x37\x25\x91\x09\x60\x9a\x06\x7d\xa3\x7c\x30\x42\x39\x32\x77\x5a\xfa\x5c\xd5\x93\x70\x9f\x94\x6c\x62\x44\xe1\x82\x4e\x1f\x33\x82\x95\x30\xd6\xc1\xdd\xe2\x03\x08\x05\x2e\xa3\x20\x13\xe8\x15\x24\xd2\x5b\x47\x66\x41\x66\x23\x12\x2a\x97\x40\x98\xbf\x26\x07\xf0\x9b\xd5\xea\x01\x5d\x36\x87\x29\xab\x7b\xda\x3d\xe8\xd7\x6f\x3e\x36\xc6\x45\x1b\xde\x2d\x3e\x34\x9e\xb9\x1d\x4b\x68\x9d\x11\x6a\xdd\xc7\x31\x16\x85\xd1\x1b\x94\x90\xeb\x94\x7a\x78\xa9\xfa\x9d\x4c\x7b\x7b\xfa\xa2\x63\xee\x76\x92\x41\xf9\x6d\x24\x0f\x5e\x44\x92\x4b\xad\x25\x95\xab\xa5\xea\xbc\x79\x87\xb2\xc8\xf0\x5d\xf9\xd0\x26\x19\xe5\xb8\x37\x92\x2e\x48\xdd\x3e\xdc\x7f\xf8\xcb\xe2\xe8\x05\x1c\xea\xa2\xb1\xe4\x20\x65\x67\x23\x1b\x0c\x58\x2e\x9c\xe0\x63\x6c\x48\x04\x4b\xc1\xa2\x7b\x0f\x38\x61\x53\x2f\x7f\xa3\xc4\x35\x1e\x1b\xfa\xdd\x0b\x43\x69\x73\x76\xd6\x48\xe5\xca\x47\x8f\x59\x3b\x8d\x47\x85\xe1\xb9\x5c\xc3\x93\x62\x6b\xc4\x92\x83\xe7\x47\x92\xfd\x77\x72\xf4\x16\x80\x15\x12\x47\x1e\xc8\x5a\xba\x00\xa5\xa5\x16\x59\x4c\x97\x09\x0b\x86\x0a\x43\x96\x94\xdb\xab\x41\x95\x52\x4e\x4f\x88\xf3\x72\x25\x63\xd9\x2f\xbd\x4c\x39\x22\x6d\xc8\x38\x30\x94\xe8\xb5\x12\xff\xa9\xa9\x5b\x70\x3a\xfa\x08\x3a\xb2\x0e\x82\x93\x29\x94\xb0\x41\xe9\xe9\x06\x50\xa5\x27\xb4\x73\xdc\x81\x21\x9e\x17\xbc\x6a\x50\x0c\x43\xec\x29\x2f\x3f\x6a\xc3\x26\x5c\xe9\x39\x64\xce\x15\x76\x3e\x9b\xad\x85\xab\x62\x6d\xa2\xf3\xdc\x2b\xe1\x76\xb3\x10\x36\xc5\xd2\xb3\x3d\x67\x29\x6d\x48\xce\xac\x58\x4f\xd0\x24\x99\x70\x94\x38\x6f\x68\x86\x85\x98\x04\x61\x54\x88\xb7\xd3\x3c\xfd\xc2\x94\xd1\xd9\x1e\x4d\xdc\xea\x00\x50\x05\xbe\x33\x8d\xc5\x21\x11\x84\xe5\x95\x17\x08\x46\x61\xf7\x36\xe1\x47\xac\xc6\xf7\xff\x58\x3c\x42\xc5\x51\xb4\x5b\x34\xd1\xbe\x6b\x8b\x86\x2a\x6b\xb1\x66\x85\x5a\x91\x89\x23\x57\x46\xe7\x81\x2a\xa9\xb4\xd0\x42\xb9\xf0\x23\x91\x82\x94\x03\xeb\x97\xb9\x70\x36\x2c\x6b\xb2\x8e\x0d\x79\x4a\xf8\x2e\xe4\x26\x58\x12\xf8\x22\x45\x47\xe9\x69\x97\x7b\x05\x77\x98\x93\xbc\x43\x4b\xaf\x6e\x3b\xb6\x91\x9d\xb0\x41\x46\x5b\xaf\x99\x79\x4f\x07\x9c\x78\x3d\x40\x95\x34\x3b\xcd\xdd\x88\x3a\x8b\x82\x92\xda\x1b\xeb\x28\x73\x5b\x14\x52\x24\xd1\xed\xea\xd5\xc6\x8e\xb3\xac\x43\x13\x1d\xbb\x49\x27\x3b\x5d\x81\x08\x62\xc2\x3b\x0d\xe4\x87\xaf\x4e\x26\xe2\x57\xa3\x12\x1b\xf4\x44\x31\x08\x91\x2c\x4e\x7d\xfa\x66\xd8\x3d\xb8\x55\x39\x88\xdd\x84\xd7\xa9\xb7\x64\xf6\x99\xad\xd0\x52\x24\x3b\x58\x69\xc3\x61\xab\xa1\xf2\xd3\x35\xc7\xed\xde\x41\xee\x6d\x58\xb9\x5a\x11\x1b\xe1\xfa\xd6\x3b\x9d\xa3\x13\xc9\x35\x68\x03\xd7\x3f\xa2\xf2\x28\xaf\xdb\x86\x77\xae\x9d\xbd\x98\x6d\xda\x6f\x4f\x70\xfb\xd6\xad\xe5\x6e\x5a\x68\x0c\xee\x5a\xde\x0a\x47\x79\xeb\xb0\x01\xee\xd7\xa4\x38\xe3\xb5\xa4\x9b\xfd\x50\x8e\xe1\x6b\x32\x27\xef\xe3\xc2\xed\x1e\xd7\x31\x65\x1c\x56\x97\x69\x67\x8d\xb7\x0e\x9d\x3f\x91\x73\x68\x35\x35\x1d\x32\x10\x68\x04\xcf\xb2\x1e\x58\x69\x93\x47\x87\xc4\xa5\xf6\x31\x30\xc6\xc9\x40\xaf\x4e\x45\x70\x54\xd8\xda\xef\xd8\x73\x13\x9d\x17\x92\xdc\x61\x69\x31\xbd\xba\x3a\x0d\xcd\x91\x28\x47\x66\x67\x50\xc8\x30\x13\x26\xce\xa3\x0c\x13\x52\x59\x8f\xec\xac\xa3\xfc\x78\x31\x5e\x18\x04\x12\x74\x28\xf5\x7a\xd1\x9a\xd6\xb8\x43\x91\xa1\xa5\x73\x5c\xdb\x39\x52\x9e\xe3\x7f\xb9\x78\x6f\x93\x44\x7b\xe5\xde\xd3\xea\x62\x6f\xef\x26\x09\x86\x56\x64\x48\x25\x65\x45\x63\x63\x07\xc0\xd8\x03\x5c\x86\x8e\x83\x84\xb7\x2d\xc1\x2c\xa8\x4d\x43\xaa\x23\x3e\x48\xeb\x12\xaf\xb2\x54\xb7\xc3\xb7\xea\x79\x48\x35\xd0\x5b\xc3\xb5\x6a\xe4\xf6\xe1\xbe\xaa\xd2\x62\x71\x46\x95\xc4\x2d\x85\x58\x93\xc1\x0e\x07\xe3\xb6\x12\x24\xd3\x50\x97\x8f\xe1\xa0\xc3\x26\xdc\xee\x4b\xf5\x87\x22\xc5\x69\x40\x28\x04\x25\x74\x50\x2e\x06\x55\x12\xa6\xe5\x43\xce\xc7\x86\xca\x77\x37\xb1\xf4\xe8\x61\x15\x22\xdc\x2b\xcb\x4a\x87\x42\x01\x72\x39\x24\x52\xf8\xd7\xe2\xe7\x9f\x66\xff\xd4\x51\x1a\xb6\x37\x59\x1b\xbd\x24\x27\xe5\x6e\xc0\xfa\x24\x03\xb4\x2c\x0c\xaf\x7d\xf6\x2d\x9a\xe6\xa8\xc4\x8a\xac\x9b\x96\xd4\xc8\xd8\x5f\xbf\xfd\xd8\xa5\x49\x80\xef\xb5\x01\x7a\x46\xf6\xdf\x1b\x10\x51\xff\x75\x8d\x55\x2e\xbc\x90\x83\x58\xf8\x9a\x26\x6c\x85\xcb\x02\xab\x85\x4e\x4b\x21\xb7\x41\x08\x87\x4f\x9c\x64\xa2\x10\x9e\xd1\xe2\x53\x6b\x90\x8b\xed\x3a\x82\xc2\x9a\xd5\x3f\x18\x00\xfd\x79\x0d\x5f\x6d\x33\x32\x04\xd7\xfc\xf3\x3a\x32\x52\xd7\xd6\xfc\xac\x5a\x29\x7b\x86\x82\x1b\x38\x23\xd6\x6b\x32\x1d\x8e\xc0\x2d\xd4\x7f\x5c\x33\x7d\xcd\x69\x4f\xac\x40\xe9\x06\x91\x40\x9a\xed\x55\x50\x22\x56\x82\xd2\x13\x06\x7f\xfd\xf6\xe3\x35\x7c\x75\xa8\x87\xce\xc9\x84\x4a\xe9\x19\xbe\x8d\xc0\x59\x58\xd6\xd5\xd7\x53\x78\x0c\x2b\x62\xa7\x1c\x3e\xf3\x5c\x49\xa6\x2d\x29\xd0\x4a\xee\x58\xc2\x0c\x37\x04\x56\xe7\x04\x5b\x92\x72\x12\xab\xa7\x14\xb6\xb8\x6b\x0b\xc5\x55\xab\x4c\xc5\xcb\x14\xa1\x40\xe3\x06\x10\x4d\xd5\x1e\x7f\xfe\xee\xe7\x79\xe4\x8e\x97\xd1\x5a\x31\x4b\x5c\xe4\xae\x04\xe3\x16\x54\x69\x59\x3c\x87\x35\xc8\x8c\xfb\xb8\x38\x38\xea\x67\xa8\xd6\x54\x6d\x0b\xac\x3c\x97\xa5\x17\xbb\x6c\x1b\x8c\xa8\xda\x58\x6f\x0d\xb0\x62\x64\x0c\x79\xc3\x62\x7c\xb4\x4e\xc2\x6e\xc0\x27\xea\xe4\xa7\x86\xb7\x5c\xa4\x93\x27\xbf\x24\xa3\xc8\x51\x50\x4b\xaa\x13\xcb\x1a\x49\xa8\x70\x76\xa6\x37\x9c\x8c\x68\x3b\xdb\x6a\xf3\x24\xd4\x7a\xc2\xee\x30\x89\x6b\xce\xce\xc2\xce\xd9\xec\x0b\xd5\x52\x39\x9f\xa5\x82\xce\x42\xe9\x5c\x3d\x04\x42\x6f\xa9\x0c\x9e\xdf\xce\x2e\xd5\x45\x05\x96\xce\xc9\xae\x3d\x1a\x59\xc4\x20\x97\x1c\xd3\x65\xd7\xde\x66\x22\xc9\xaa\x8d\x92\x46\x16\xc8\x31\x8d\x69\x02\xd5\xee\xcd\x3c\x8b\x35\xee\x0d\xf3\xb4\x9b\x94\x9b\xc3\x13\x54\x29\xff\x6f\x85\x75\xfc\xfc\x52\x15\x7b\xf1\xc9\x41\xe8\x97\xfb\xef\xde\xd6\xdf\xbc\xb8\x34\xe2\x3c\x4f\xf6\x93\x4f\x72\x2c\x26\x25\xea\x72\x3a\x17\xc9\x49\xff\xa5\x57\xa9\xa4\x1f\xb4\x7e\xf2\x45\x6b\x29\x78\xa0\xb1\xbf\x37\x7b\x57\xa0\xb6\xdc\x11\x10\x6a\x52\x18\xbd\x36\x5c\xdf\x34\x36\x60\xa0\xf0\x32\xa6\x20\xaf\x0a\x4c\x9e\x70\x4d\xe5\xa4\x21\x65\x93\x72\x55\x49\x50\x62\xc9\xee\x62\xf6\x02\xe0\xd8\xc9\x7d\xdc\xb8\x2a\xf9\xec\x60\xb3\xaa\x4d\x98\xc7\x80\x68\x4a\xbe\x87\xf9\x1d\x2c\xbf\xfb\xc0\x4e\x6c\x47\x90\xe7\x3d\x75\xd5\x0d\x13\x10\x29\xfb\xd5\x4a\xb4\xe0\xdb\xaa\x4b\x81\x9d\x15\xce\x84\x91\xa4\xc4\x36\x54\x05\x23\x80\x02\x9c\xf0\xd9\x5d\x28\x1e\x58\xe3\xee\x68\x58\x65\x91\x2a\x50\x95\x5a\x3e\xe8\x16\x9e\x94\x56\x60\x91\x60\x8b\x36\x44\x3e\xb9\xa1\x34\xec\x0d\x76\x7b\xe9\xa0\x45\xc6\x49\x0b\xa3\xc0\x51\x8b\xbc\x17\x40\xa4\x26\xe3\x03\xe8\x63\x04\x5c\x6a\xe1\xa9\x27\x02\xc6\xf6\x3a\xd0\x29\xb6\xb7\x04\x50\xb1\xbd\x2d\x8c\x8a\xed\xd5\xc1\x54\x6c\xaf\x0a\xa9\x62\x7b\x3d\x60\x15\xdb\xc5\xf0\x2a\xb6\xd7\x02\x59\xa5\x3d\xc6\x39\x7d\x1f\xe0\x8a\xed\x3c\x7f\x3f\x0f\x7c\xc5\xf6\xe6\x10\xec\x2c\x8d\xf5\xc1\xb1\x4b\x34\x76\x1e\x34\xeb\xd4\xd8\x67\x05\x68\x67\x2b\xa8\x17\xac\x5d\xaa\xa5\x33\x81\xdb\xe7\x52\x55\x2f\x7c\x3b\x4b\x53\x23\xa1\xdc\x25\xfa\xfa\x7c\xb0\xae\x53\xad\xff\x1f\xe0\xee\x2c\x03\xf4\x00\xbd\x4b\x94\x7e\x16\xe8\xeb\xd4\xe3\xe7\x84\x7e\x67\x68\xe7\x3c\x18\x18\x5b\xa2\x55\xbc\x5b\xd4\x53\xfd\x1e\xd6\xf0\xf5\x80\xe3\xe3\x28\x96\x14\xe5\xc1\x79\x50\x13\x7e\x0d\x95\xe9\x5d\x50\x2f\xb6\x1e\xc0\xd7\x24\x32\x50\xeb\x0f\x63\xb0\xd8\x26\xe5\x29\xda\x40\x27\x9e\xb3\xa7\xcb\x38\x64\x01\x20\xd1\xba\x47\x83\xca\x06\xbd\x3e\x8a\xa1\x6c\x75\x64\x91\x1f\x90\xe1\xac\xc8\x6b\xf4\x1a\xed\x03\xae\x26\x59\x02\xa5\x70\x86\x5c\x1e\x0f\x72\x3d\xab\xb4\xcb\xba\xc0\xec\xbe\x8d\x74\x4c\x6e\xf1\x38\x72\x0e\x29\x3a\x9a\x30\x47\x83\x62\xff\x12\xee\x63\xbc\x98\xc8\x8c\x0d\x0b\xa3\x97\x6d\x37\x3c\x5e\x49\xaa\x9c\xac\xc5\xf5\x79\xe2\xdc\x42\xe6\x73\x54\x60\x08\x53\x5c\x4a\xaa\x88\x70\xbd\x1c\x6e\x5c\xa8\x35\xa4\xe4\x50\x48\xdb\x38\xe8\xdd\xdb\xf7\xc5\x84\x35\x84\x76\x28\xab\xc1\xe9\xc5\xbd\x38\x2c\xdc\x6a\x38\xb0\xc7\x97\x36\x18\xf9\x73\x70\xda\x7e\xa4\xde\xcb\xe9\xa2\x3a\x18\x3f\x64\xf2\xa6\xba\x5a\xf1\x68\x3c\xdd\xc0\xf7\x28\x2d\xdd\xc0\x2f\xea\x49\xe9\xed\xcb\xf1\x1b\x3a\x9e\xa5\xd7\x5d\x11\xb8\xaa\xf9\x7c\x01\x56\xf6\xbb\x46\x23\x83\xfd\x7d\x3d\xa0\xda\xf9\x2b\x77\x7e\x26\x5e\x89\xdf\xfd\x21\x0c\xad\x8f\xa8\xbf\x3a\x06\xa8\x77\x8b\x0f\x61\x71\xc4\x6d\x1c\x1b\x61\x6a\x05\xfa\xef\x16\x1f\xec\xd7\x03\xb9\xa1\x57\xaa\xa2\x77\x03\x64\x7c\x3d\xf0\x80\x2e\x3b\x42\xd9\x52\x27\x8d\xdb\x96\xfb\xbd\xc0\xc2\xb7\x9f\xc0\x57\xed\xde\x7d\x69\x99\x75\x91\xa0\x94\x3b\x06\x9c\x22\x67\x7f\xae\x8b\xb7\xa1\x64\xd8\x2f\xf0\x88\xbc\x72\xe2\xa3\xb4\x5a\x51\xe2\xc4\x86\x1a\xc3\x2b\xfb\xc4\xfd\x4f\x4a\x4b\x09\x3f\x89\xb9\x6a\x67\x71\x24\x6b\xef\xcb\xee\xd5\xfa\x6a\x2e\x9b\xbd\xbe\x4b\xa2\x61\x8b\x21\xae\x35\x45\xb0\xd2\x5e\xa5\x80\x2e\x18\xee\x42\x9e\x0f\xef\x98\xbc\xde\x05\xa6\xfe\xb2\xeb\x65\xf6\xbe\x3b\x17\x7b\xe3\x62\x51\x5d\xcd\xf5\x15\x73\xfb\xa0\x49\xcf\x94\xf8\xd2\x21\x3a\x88\x8f\xb9\xd6\x36\x58\xab\x0d\xaf\xf0\x73\x6a\xa6\x51\x41\x7a\x6c\x96\x1f\x5b\xb5\xbc\xe8\xa4\x83\x45\xc5\x28\xc7\xec\xcf\xed\xed\x55\xfe\xfb\x98\xda\xc3\x46\x7d\x82\x39\xc9\x04\x2d\xa5\xc7\x19\x3f\x96\xfc\x63\xd2\xfc\x08\x46\x87\x52\xfb\x08\x12\xfd\xd9\xb6\xeb\xda\x6b\x2d\x74\xc8\xbd\xb1\xd7\xb2\xba\xbd\x55\x83\x9a\x83\xf5\xcd\xe1\x07\x21\x21\x13\x52\x59\xbc\x9d\x8c\xac\xab\x6d\xa6\x2f\x0e\xa4\x3d\xd6\x1e\xe3\xe0\x3f\x56\xc5\x23\xf3\x11\x0a\xcb\xc9\x49\x61\x59\x26\xdf\x7d\x61\xd9\xb1\x5b\xdc\xbc\x62\x18\xb2\x76\x8e\xbb\x70\xdf\x37\x2f\xb4\x71\x18\x4f\xf2\xbc\x4a\xc9\x58\x87\x2a\x65\x7a\xdb\x6c\xc7\x1a\x6b\xf7\x6b\x56\x59\x86\x16\x84\xb3\x10\xb7\x0b\x5c\x69\xef\xb3\x6f\xb0\x86\xdb\x7f\x83\x3a\x6a\xd8\xea\x81\x07\xd4\x75\xcc\xc1\xe4\x31\xbf\x1f\xd8\xb5\xd7\x88\xfd\x8c\x49\xec\xb9\x96\xfa\xa9\x51\x7d\xe1\xa8\x38\x0e\xd6\x0d\x21\x54\xc0\x0c\x1b\x91\xc6\x9b\x99\x54\x80\x50\x2f\x13\x93\x87\x4f\x2f\xe3\xa9\x5c\xb7\x57\x4e\xea\xad\xad\xce\x0e\x3d\xb0\x7b\x38\x27\xe8\x22\x7e\x24\x35\x14\x3a\xba\x6e\x36\xc7\x56\x4b\xf1\x89\xd1\xb6\xfb\x9e\x71\x6c\xe3\x0b\x53\x36\x79\xf5\xf1\x5d\x8f\xe9\x1b\x1f\x5c\x84\x3b\xf9\xce\x94\x45\x1d\x17\xa0\x7d\xc5\xea\xd0\xd2\x80\xb1\xdb\x2b\x63\x36\x57\x26\xf1\xb3\xbd\xde\x1e\x4f\xa2\xe5\x7b\x9b\x66\x07\xae\x12\x7b\x3b\xec\x6f\x6b\x8f\xec\x16\xf6\x88\x7b\xfb\x96\x07\xb9\x9d\x7d\xc6\xed\xf6\xc4\x6f\x16\x5f\x62\x27\x74\xf8\x1c\x68\x24\xa1\xea\xe0\xf4\x45\x88\x0d\x9f\xb5\x8c\x24\xb4\x37\xcd\x0b\x93\x1b\x71\xd0\x31\x92\xe6\x66\xcc\x21\xc0\x0b\x14\x3c\xe7\x45\x8a\x72\x9b\xa3\x27\xcf\x15\x68\x9c\x48\xbc\x44\xb3\x0f\x19\x21\x71\x8c\x0b\x12\x97\x85\x45\xeb\xd0\xb8\xae\x92\x79\x8c\x84\x8b\x8a\x40\x25\x5a\xd8\xff\xdb\x66\xa4\xea\x43\xf0\xf8\xb5\x31\x2c\x69\xcd\x19\xbc\x28\xe4\xae\x4b\xe9\x71\xc3\xbf\xfa\x86\x49\x0a\xeb\x28\xad\xce\x6a\x43\x91\x32\xf6\x82\x52\xa7\x61\xbb\x4a\x7b\x4b\x66\x43\xe9\x1c\x9c\xf1\xf5\x23\xa7\x0d\xd7\x7b\x07\xcf\xfc\xb2\xe6\x6f\xaf\xb1\x72\xa5\xc0\x1f\x7f\x5e\xfd\x2f\x00\x00\xff\xff\x8d\x4b\xdb\x60\xbe\x3d\x00\x00") +var _operatorsCoreosCom_installplansYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xcc\x5b\x4b\x73\x23\xb7\xf1\xbf\xeb\x53\x74\xc9\x07\xdb\x55\x22\xe9\xf5\xbf\xea\x5f\x29\xdd\x14\x39\x4e\x29\xb1\x1d\xd5\x72\xbd\x17\x97\x0f\xcd\x99\x26\x09\x0b\x03\xc0\x78\x90\x62\x1c\x7f\xf7\x54\x03\x33\xc3\x21\x39\x2f\x72\xb5\x52\x70\x91\x38\x03\x34\xfa\x81\xee\xfe\x35\x80\x41\x23\x3e\x92\x75\x42\xab\x5b\x40\x23\xe8\xd9\x93\xe2\x5f\x6e\xfa\xf4\x17\x37\x15\x7a\xb6\x79\x77\xf5\x24\x54\x7e\x0b\xf7\xc1\x79\x5d\xbc\x27\xa7\x83\xcd\xe8\x3b\x5a\x0a\x25\xbc\xd0\xea\xaa\x20\x8f\x39\x7a\xbc\xbd\x02\x40\xa5\xb4\x47\x7e\xec\xf8\x27\x40\xa6\x95\xb7\x5a\x4a\xb2\x93\x15\xa9\xe9\x53\x58\xd0\x22\x08\x99\x93\x8d\xc4\xab\xa9\x37\xdf\x4c\xdf\xfd\xff\xf4\xdd\x15\x80\xc2\x82\x6e\x41\x28\xe7\x51\x4a\x23\x51\xb9\xa9\x36\x64\xd1\x6b\xeb\xa6\x99\xb6\xa4\xf9\x4f\x71\xe5\x0c\x65\x3c\xc5\xca\xea\x60\x6e\xa1\xb5\x4f\xa2\x56\x71\x82\x9e\x56\xda\x8a\xea\x37\xc0\x04\xb4\x2c\xe2\xff\x49\xc2\x87\x34\xe9\xa3\x44\x15\x9f\x4a\xe1\xfc\x3f\x8f\xdf\xfc\x20\x9c\x8f\x6f\x8d\x0c\x16\xe5\x21\xab\xf1\x85\x5b\x6b\xeb\x7f\xda\x4f\xcc\x13\x09\x93\x5e\x09\xb5\x0a\x12\xed\xc1\xa8\x2b\x00\x97\x69\x43\xb7\x10\x07\x19\xcc\x28\xbf\x02\x28\x75\x53\x12\x99\x00\xe6\x79\xd4\x37\xca\x47\x2b\x94\x27\x7b\xaf\x65\x28\x54\x3d\x09\xf7\xc9\xc9\x65\x56\x18\x1f\x75\xfa\x61\x4d\xb0\x14\xd6\x79\xb8\x9f\x7f\x04\xa1\xc0\xaf\x29\xca\x04\x7a\x09\x99\x0c\xce\x93\x9d\x93\xdd\x88\x8c\xca\x25\x10\xe7\xaf\xc9\x01\xfc\xe6\xb4\x7a\x44\xbf\xbe\x85\x29\xab\x7b\xda\x3d\xe8\x97\x6f\x7e\x6d\x8c\x4b\x36\xbc\x9f\x7f\x6c\x3c\xf3\x3b\x96\xd0\x79\x2b\xd4\xaa\x8f\x63\x34\xc6\xea\x0d\x4a\x28\x74\x4e\x3d\xbc\x54\xfd\x4e\xa6\xbd\x3b\x7d\xd1\x31\x77\x3b\xc9\xa8\xfc\x36\x92\x07\x2f\x12\xc9\x85\xd6\x92\xca\xd5\x52\x75\xde\xbc\x43\x69\xd6\xf8\xae\x7c\xe8\xb2\x35\x15\xb8\x37\x92\x36\xa4\xee\x1e\x1f\x3e\xfe\xdf\xfc\xe8\x05\x1c\xea\xa2\xb1\xe4\x20\x67\x67\x23\x17\x0d\x58\x2e\x9c\xe8\x63\x6c\x48\x04\x47\xd1\xa2\x7b\x0f\x38\x61\x53\x2f\x7e\xa3\xcc\x37\x1e\x5b\xfa\x3d\x08\x4b\x79\x73\x76\xd6\x48\xe5\xca\x47\x8f\x59\x3b\x8d\x47\xc6\xf2\x5c\xbe\xe1\x49\xa9\x35\x62\xc9\xc1\xf3\x23\xc9\xfe\x33\x39\x7a\x0b\xc0\x0a\x49\x23\x0f\x64\x2d\x5d\x80\xf2\x52\x8b\x2c\xa6\x5f\x0b\x07\x96\x8c\x25\x47\xca\xef\xd5\xa0\x4a\x29\xa7\x27\xc4\x79\xb9\x92\x75\xec\x97\x41\xe6\x1c\x91\x36\x64\x3d\x58\xca\xf4\x4a\x89\x7f\xd7\xd4\x1d\x78\x9d\x7c\x04\x3d\x39\x0f\xd1\xc9\x14\x4a\xd8\xa0\x0c\x74\x03\xa8\xf2\x13\xda\x05\xee\xc0\x12\xcf\x0b\x41\x35\x28\xc6\x21\xee\x94\x97\x1f\xb5\x65\x13\x2e\xf5\x2d\xac\xbd\x37\xee\x76\x36\x5b\x09\x5f\xc5\xda\x4c\x17\x45\x50\xc2\xef\x66\x31\x6c\x8a\x45\x60\x7b\xce\x72\xda\x90\x9c\x39\xb1\x9a\xa0\xcd\xd6\xc2\x53\xe6\x83\xa5\x19\x1a\x31\x89\xc2\xa8\x18\x6f\xa7\x45\xfe\x85\x2d\xa3\xb3\x3b\x9a\xb8\xd5\x01\xa0\x0a\x7c\x67\x1a\x8b\x43\x22\x08\xc7\x2b\x2f\x12\x4c\xc2\xee\x6d\xc2\x8f\x58\x8d\xef\xff\x36\xff\x00\x15\x47\xc9\x6e\xc9\x44\xfb\xae\x2d\x1a\xaa\xac\xc5\x9a\x15\x6a\x49\x36\x8d\x5c\x5a\x5d\x44\xaa\xa4\x72\xa3\x85\xf2\xf1\x47\x26\x05\x29\x0f\x2e\x2c\x0a\xe1\x5d\x5c\xd6\xe4\x3c\x1b\xf2\x94\xf0\x7d\xcc\x4d\xb0\x20\x08\x26\x47\x4f\xf9\x69\x97\x07\x05\xf7\x58\x90\xbc\x47\x47\xaf\x6e\x3b\xb6\x91\x9b\xb0\x41\x46\x5b\xaf\x99\x79\x4f\x07\x9c\x78\x3d\x40\x95\x34\x3b\xcd\xdd\x88\x3a\x73\x43\x59\xed\x8d\x75\x94\xb9\x33\x46\x8a\x2c\xb9\x5d\xbd\xda\xd8\x71\x16\x75\x68\xa2\x63\x37\xe9\x64\xa7\x2b\x10\x41\x4a\x78\xa7\x81\xfc\xf0\xd5\xc9\x44\xfc\x6a\x54\x62\x83\x9e\x28\x06\x31\x92\xa5\xa9\x4f\xdf\x0c\xbb\x07\xb7\x2a\x07\xb1\x9b\xf0\x3a\x0d\x8e\xec\x3e\xb3\x19\x2d\x45\xb6\x83\xa5\xb6\x1c\xb6\x1a\x2a\x3f\x5d\x73\xdc\x1e\x3c\x14\xc1\xc5\x95\xab\x15\xb1\x11\xae\xef\x82\xd7\x05\x7a\x91\x5d\x83\xb6\x70\xfd\x23\xaa\x80\xf2\xba\x6d\x78\xe7\xda\xd9\x8b\xd9\xa6\xfd\xf6\x04\xb7\x6f\xdd\x5a\xee\xa6\x85\xd6\xe2\xae\xe5\xad\xf0\x54\xb4\x0e\x1b\xe0\x7e\x45\x8a\x33\x5e\x4b\xba\xd9\x0f\xe5\x18\xbe\x22\x7b\xf2\x3e\x2d\xdc\xee\x71\x1d\x53\xa6\x61\x35\x4c\x3b\x6b\xbc\xf3\xe8\xc3\x89\x9c\x43\xab\xa9\xe9\x90\x91\x40\x23\x78\x96\x78\x60\xa9\x6d\x91\x1c\x12\x17\x3a\xa4\xc0\x98\x26\x03\xbd\x3c\x15\xc1\x93\x71\xb5\xdf\xb1\xe7\x66\xba\x30\x92\xfc\x21\xb4\x98\x5e\x9d\x46\xe6\x44\x93\x03\xb3\xb7\x28\x64\x9c\x08\x33\x1f\x50\xc6\xf9\xa8\x84\x23\x3b\xe7\xa9\x38\x5e\x8b\x17\xc6\x80\x0c\x3d\x4a\xbd\x9a\xb7\x66\x35\xee\x60\xd6\xe8\xe8\x1c\xcf\xf6\x9e\x54\xe0\xf0\x5f\xae\xdd\xbb\x2c\xd3\x41\xf9\xf7\xb4\xbc\xd8\xd9\xbb\x49\x82\xa5\x25\x59\x52\x59\x09\x68\x5c\xea\x00\x98\x7a\x80\x5f\xa3\xe7\x18\x11\x5c\x4b\x2c\x8b\x6a\xd3\x90\xeb\x54\x1e\xe4\x35\xc2\xab\x0c\xd5\xed\xef\xad\x7a\x1e\x52\x0d\xf4\x42\xb8\x56\x8d\xdc\x3d\x3e\x54\x20\x2d\x61\x33\xaa\x24\x6e\xc1\x61\x4d\x06\x3b\xfc\x8b\xdb\x52\x90\xcc\x23\x2c\x1f\xc3\x41\x87\x4d\xb8\x3d\x94\xea\x8f\x18\xc5\x6b\x40\x30\x82\x32\x3a\x40\x8b\x51\x95\x84\x79\xf9\x90\xd3\xb1\xa5\xf2\xdd\x4d\x42\x1e\x3d\xac\x42\xaa\xf6\x4a\x54\xe9\x51\x28\x40\x46\x43\x22\x87\x7f\xcc\xff\xf5\xd3\xec\xef\x3a\x49\xc3\xf6\x26\xe7\x92\x97\x14\xa4\xfc\x0d\xb8\x90\xad\x01\x1d\x0b\xc3\x6b\x9f\x7d\x8b\xa6\x05\x2a\xb1\x24\xe7\xa7\x25\x35\xb2\xee\x97\x6f\x7f\xed\xd2\x24\xc0\xf7\xda\x02\x3d\x23\xbb\xef\x0d\x88\xa4\xff\x1a\x62\x95\x0b\x2f\xa6\x20\x16\xbe\xa6\x09\x5b\xe1\xd7\x91\x55\xa3\xf3\x52\xc8\x6d\x14\xc2\xe3\x13\xe7\x98\x24\x44\xe0\x62\xf1\xa9\x35\xc6\xa5\x76\x9d\x6a\xc2\x9a\xd5\x3f\xb8\xfe\xf9\xf3\x1a\xbe\xda\xae\xc9\x12\x5c\xf3\xcf\xeb\xc4\x48\x0d\xad\xf9\x59\xb5\x52\xf6\x0c\x45\x37\xf0\x56\xac\x56\x64\x3b\x1c\x81\x5b\x84\x7f\x0c\x99\xbe\xe6\xac\x27\x96\xa0\x74\x83\x48\x24\xcd\xf6\x32\x94\x89\xa5\xa0\xfc\x84\xc1\x5f\xbe\xfd\xf5\x1a\xbe\x3a\xd4\x43\xe7\x64\x42\xe5\xf4\x0c\xdf\xa6\xba\x59\x38\xd6\xd5\xd7\x53\xf8\x10\x57\xc4\x4e\x79\x7c\xe6\xb9\xb2\xb5\x76\xa4\x40\x2b\xb9\x63\x09\xd7\xb8\x21\x70\xba\x20\xd8\x92\x94\x93\x04\x9e\x72\xd8\xe2\xae\x2d\x12\x57\xad\x32\x15\x2f\x53\x04\x83\xd6\x0f\x14\x34\xa5\x36\x86\x1c\xa9\x0d\xdb\x57\x6d\xac\x0f\x45\xac\x3f\xd2\xb3\xdf\x10\x21\x8f\xd6\x49\x2c\xd1\x3f\x51\x27\x3f\x35\xd6\xf0\x45\x3a\x79\x0a\x0b\xb2\x8a\x3c\x45\xb5\xe4\x3a\x73\xac\x91\x8c\x8c\x77\x33\xbd\xe1\x14\x41\xdb\xd9\x56\xdb\x27\xa1\x56\x13\x5e\xa4\x93\xb4\x12\xdc\x2c\x6e\x67\xcd\xbe\x50\x2d\x70\xf6\x2c\x15\x74\xa2\x97\x73\xf5\x10\x09\xbd\xa5\x32\x78\x7e\x37\xbb\x54\x17\x55\x05\x73\x4e\xce\xeb\xd1\xc8\x3c\x85\x9e\xec\x98\x2e\xc7\x86\xed\x5a\x64\xeb\x6a\xf7\xa2\x11\x9b\x0b\xcc\x53\xf0\x46\xb5\x7b\x33\xcf\x62\x8d\x07\xcb\x3c\xed\x26\xe5\x8e\xed\x04\x55\xce\xff\x3b\xe1\x3c\x3f\xbf\x54\xc5\x41\x7c\x72\x10\xfa\xf9\xe1\xbb\xb7\xf5\xb7\x20\x2e\x8d\x38\xcf\x93\xfd\xe4\x93\x02\xcd\xa4\x2c\x85\xbc\x2e\x44\x76\xd2\x7f\x11\x54\x2e\xe9\x07\xad\x9f\x82\x69\x05\x68\x07\x1a\xfb\x6b\xb3\x77\x55\x69\x96\x65\xba\x50\x13\x63\xf5\xca\x32\xea\x68\xec\x8a\x80\x09\x52\x02\xaa\x1c\x82\x32\x98\x3d\xe1\x8a\xca\x49\x63\x22\x25\x86\xa4\xba\xdc\x59\x89\x05\x5e\x37\xc4\xbc\xa0\x9a\xeb\xe4\x3e\xed\x26\x95\x7c\x76\xb0\x59\x21\x06\xe6\x31\xd6\x19\x25\xdf\xc3\xfc\x0e\x82\xe2\xbe\x12\x24\xb5\xa3\x42\xe4\x3d\x75\x65\xf3\x09\x88\x9c\xfd\x6a\x29\x5a\x8a\xce\xaa\x8b\xc1\x4e\xdc\x31\xe1\xf2\x4e\x62\x5b\xad\x03\x23\xe0\x3b\x9c\xf0\xd9\x0d\xdf\x0e\xac\x71\x7f\x34\xac\xb2\x48\x15\xa8\x4a\x2d\x1f\x74\x8b\x4f\x4a\x2b\xb0\x48\xb0\x45\x17\x23\x9f\xdc\x50\x1e\x37\xec\xba\xbd\x74\xd0\x22\xe3\xa4\x85\x51\x25\x4b\x8b\xbc\x17\x14\x2e\x4d\xc6\x07\x6a\x82\x11\x45\x4c\x0b\x4f\x3d\x11\x30\xb5\xd7\x29\x68\x52\x7b\xcb\xb2\x26\xb5\xb7\x2d\x6e\x52\x7b\xf5\x12\x27\xb5\x57\x2d\x74\x52\x7b\xbd\x72\x27\xb5\x0b\x8b\x9e\x52\x3f\xe3\x9c\xb0\xaf\x00\x4a\xed\x3c\xff\x3b\xaf\x18\x4a\xed\xcd\x4b\xa2\xb3\x34\xd6\x57\x1e\x5d\xa2\xb1\xf3\x4a\xa5\x4e\x8d\x7d\xd6\x82\xe9\x6c\x05\xf5\x16\x4f\x97\x6a\xe9\xcc\x42\xea\x73\xa9\xaa\xb7\x9c\x3a\x4b\x53\x23\x4b\xab\x4b\xf4\xf5\xf9\xca\xac\x4e\xb5\xfe\x6f\x14\x5b\x67\x19\xa0\xa7\xf0\xba\x44\xe9\x67\x15\x61\x9d\x7a\xfc\x9c\xa5\xd8\x19\xda\x39\xaf\x2c\x4b\x2d\xd3\x2a\x5d\xc0\xe9\x41\xa3\x87\x98\xba\x1e\x70\x7c\x66\xc3\x92\xa2\x3c\x38\x35\x69\x96\x43\x43\xb0\xb9\xab\xf4\x4a\xad\xa7\x00\x6b\x12\x19\xc0\xde\xc3\x35\x51\x6a\x93\xf2\xa8\x69\xa0\x13\xcf\xd9\xd3\x65\x1c\xd2\x07\x90\xe8\xfc\x07\x8b\xca\x45\xbd\x7e\x10\x43\xd9\xea\xc8\x22\x3f\x20\x97\x97\xa2\xa8\xab\xc9\x64\x1f\xf0\x35\xc9\xb2\x70\x89\x07\xad\xe5\x19\x1a\xe3\x4b\xa5\xfd\xba\xab\xb8\xdc\xb7\x91\x8e\xc9\x2d\x9d\xd9\xdd\x42\x8e\x9e\x26\xcc\xd1\xa0\xd8\x3f\xc7\x4b\x0b\x2f\x26\x32\xd7\x6a\xc6\xea\x45\xdb\x35\x88\x57\x92\xaa\x20\xe7\x70\x75\x9e\x38\x77\xb0\x0e\x05\x2a\xb0\x84\x39\x2e\x24\x55\x44\x18\xbf\xc6\x6b\x09\x6a\x05\x39\x79\x14\xd2\x35\x4e\x43\xf7\xf6\x7d\x31\x61\x2d\xa1\x1b\xca\x6a\x70\x7a\xbb\x2d\x0d\x8b\x47\xff\x07\xf6\xf8\xd2\x45\x23\x7f\x0e\x4e\xdb\xcf\x9d\x7b\x39\x9d\x57\xa7\xc7\x87\x4c\xde\x54\xf7\x0f\x3e\xd8\x40\x37\xf0\x3d\x4a\x47\x37\xf0\xb3\x7a\x52\x7a\xfb\x72\xfc\xc6\x8e\x67\xe9\x75\x67\x22\x57\x35\x9f\x2f\xc0\xca\x7e\x17\x67\x64\xb0\x7f\xa8\x07\x54\x3b\x71\xe5\x4e\xcc\x24\x28\xf1\x7b\x38\x2c\x0b\xeb\x83\xdc\xaf\x8e\x0b\xc6\xfb\xf9\xc7\xb8\x38\xd2\xb6\x8a\x4b\x65\x63\x55\x84\xdf\xcf\x3f\xba\xaf\x07\x72\x43\xaf\x54\xa6\x77\x43\x62\x3c\x1e\x78\x44\xbf\x3e\xaa\x7a\xa5\xce\x1a\x57\x12\xf7\x7b\x73\x26\xb4\x9f\x53\x57\xed\xc1\x7f\xe9\x98\x75\x91\xa1\x94\x3b\x2e\x00\x45\xc1\xfe\x5c\x83\xb7\xa1\x64\xd8\x2f\xf0\x88\xbc\x72\xe2\xa3\xb4\x5c\x52\xe6\xc5\x86\x1a\xc3\x2b\xfb\xa4\xfd\x48\xca\x4b\x09\x3f\x89\xb9\x6a\xa7\x6f\x24\x6b\xef\xcb\xee\xd5\xfa\x6a\x2e\x9b\xbd\xbe\x4b\xa2\xb1\xe4\x4f\x6b\x4d\x11\x2c\x75\x50\x39\xa0\x8f\x86\xbb\x90\xe7\xc3\x9b\x18\xaf\x77\xcb\xa7\x1f\x76\xbd\xcc\x5e\x74\xe7\x62\x6f\xdc\xbe\xa9\xd1\x5c\x1f\x98\xdb\x07\x4d\x7a\xa6\x2c\x94\x0e\xd1\x41\x7c\xcc\xdd\xaf\x41\xac\x36\xbc\xc2\xcf\xc1\x4c\xa3\x82\xf4\xd8\x2c\x3f\x16\xb5\xbc\xe8\xa4\x83\xa0\x62\x94\x63\xf6\xe7\xf6\x76\x94\xff\x3e\xa5\xf6\xb8\x71\x9e\x61\x41\x32\x43\x47\xf9\x71\xc6\x4f\x90\x7f\x4c\x9a\x1f\xc1\xe8\x50\x6a\x1f\x41\xa2\x3f\xdb\x76\xdd\x0d\xad\x85\x8e\xb9\x37\xf5\x5a\x54\x77\x9c\xea\xa2\xe6\x60\x7d\x73\xf8\x41\xc8\xc8\xc6\x54\x96\xae\xf0\x22\xeb\x6a\xbb\xd6\x17\x07\xd2\x1e\x6b\x8f\x71\xf0\x1f\x2b\xf0\xc8\x7c\x44\x60\x39\x39\x01\x96\x65\xf2\xdd\x03\xcb\x8e\xdd\xdb\xe6\x3d\xbc\x98\xb5\x0b\xdc\xc5\x4b\xb1\x85\xd1\xd6\x63\x3a\x59\x0b\x2a\x27\xeb\x3c\xaa\x9c\xe9\x6d\xd7\x3b\xd6\x58\xbb\x5f\xb3\xca\xd6\xe8\x40\x78\x07\x69\xbb\xc0\x97\xf6\x3e\xfb\x9a\x67\xbc\x23\x37\xa8\xa3\x86\xad\x1e\x79\x40\x8d\x63\x0e\x26\x4f\xf9\xfd\xc0\xae\xbd\x46\xec\x67\x4c\x62\xcf\xdd\xcd\x4f\x8d\xea\x73\x4f\xe6\x38\x58\x37\x84\x50\xb1\x66\xd8\x88\x3c\xdd\x5f\x24\x03\x42\xbd\x4c\x4c\x1e\x3e\x4d\x4c\xa7\x64\xdd\x5e\x39\xa9\xb7\xb6\x3a\x3b\xf4\x94\xdd\xc3\x39\x41\x9b\xf4\x25\xd1\x50\xe8\xe8\xba\xfe\x9b\x5a\x2d\xc5\x27\x46\xdb\xee\xcb\xb8\xa9\x8d\x07\xa6\x6c\xf2\xea\x0b\xb5\x1e\xd3\x37\xbe\x4a\x88\x17\xd7\xbd\x2d\x41\x1d\x03\xd0\x3e\xb0\x3a\xb4\x34\x60\xec\xf6\xca\x98\xcd\x95\x49\xfa\xb6\xad\xb7\xc7\x93\x68\xf9\x28\xa5\xd9\x81\x51\x62\x6f\x87\xfd\x95\xe6\x91\xdd\xe2\x1e\x71\x6f\xdf\xf2\x60\xb5\xb3\xcf\xb8\xdd\x9e\xf4\x61\xdf\x4b\xec\x84\x0e\x9f\x03\x8d\x24\x54\x1d\x64\xbe\x08\xb1\xe1\xb3\x96\x91\x84\xf6\xa6\x79\x61\x72\x23\x0e\x3a\x46\xd2\xdc\x8c\x39\x04\x78\x01\xc0\x73\x5e\xa4\x28\xb7\x39\x7a\xf2\x9c\x41\xeb\x45\x16\x24\xda\x7d\xc8\x88\x89\x63\x5c\x90\xb8\x2c\x2c\x3a\x8f\xd6\x77\x41\xe6\x31\x12\xce\x2b\x02\x95\x68\x71\xff\x6f\xbb\x26\x55\x1f\x4a\xa7\x4f\x72\x61\x41\x2b\xce\xe0\xc6\xc8\x5d\x97\xd2\xd3\x86\x7f\xf5\xa1\x8f\x14\xce\x53\x5e\x7d\x4c\x1a\x41\xca\xd8\x0b\x43\x9d\x86\xed\x82\xf6\x8e\xec\x86\xf2\x5b\xf0\x36\xd4\x8f\xbc\xb6\x8c\xf7\x0e\x9e\x85\x45\xcd\xdf\x5e\x63\xe5\x4a\x81\x3f\xfe\xbc\xfa\x6f\x00\x00\x00\xff\xff\xa4\xb0\x30\x39\xe3\x3c\x00\x00") func operatorsCoreosCom_installplansYamlBytes() ([]byte, error) { return bindataRead( @@ -145,7 +145,7 @@ func operatorsCoreosCom_installplansYaml() (*asset, error) { return a, nil } -var _operatorsCoreosCom_olmconfigsYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xbc\x59\x7b\x6f\xdc\xc6\x11\xff\x3b\xfa\x14\x03\x36\x40\xee\x9c\x3b\x4a\x72\x5a\x37\xbe\xc2\x30\x0c\xb9\x0a\x0c\x5b\xb5\x61\xa9\x2e\x50\x45\x6d\x86\xdc\x39\xde\x46\xe4\x2e\xb3\x0f\x49\x97\x38\xdf\xbd\x98\x5d\xbe\xa4\x3b\x9e\x54\x58\x2d\xff\xb0\x8f\xfb\x98\xf7\xfc\x66\x86\xc2\x5a\x7e\x22\x63\xa5\x56\x0b\xc0\x5a\xd2\x8d\x23\xc5\x6f\x36\xbd\xfc\xde\xa6\x52\xef\x5f\x1d\xee\x5d\x4a\x25\x16\x70\xe4\xad\xd3\xd5\x47\xb2\xda\x9b\x9c\x5e\xd3\x52\x2a\xe9\xa4\x56\x7b\x15\x39\x14\xe8\x70\xb1\x07\x80\x4a\x69\x87\xbc\x6c\xf9\x15\x20\xd7\xca\x19\x5d\x96\x64\xe6\x05\xa9\xf4\xd2\x67\x94\x79\x59\x0a\x32\x81\x78\xcb\xfa\xea\x20\x3d\xfc\x53\x7a\xb0\x07\xa0\xb0\xa2\x05\xe8\xb2\xca\xb5\x5a\xca\xc2\xa6\xba\x26\x83\x4e\x1b\x9b\xe6\xda\x90\xe6\xff\xaa\x3d\x5b\x53\xce\x0c\x0a\xa3\x7d\xbd\x80\xad\x67\x22\xad\x56\x0e\x74\x54\x68\x23\xdb\x77\x80\x39\x33\x09\xbf\xa3\x7e\xef\xdf\x9d\x1c\x05\x96\x61\xad\x94\xd6\xbd\xbd\xbd\xfe\x4e\x5a\x17\xf6\xea\xd2\x1b\x2c\x87\x42\x86\x65\x2b\x55\xe1\x4b\x34\x83\x8d\x3d\x00\x9b\xeb\x9a\x16\x70\x54\x7a\xeb\xc8\xec\x01\x34\x3a\x37\x72\xcc\x1b\x85\xaf\x0e\x1b\xb1\x6c\xbe\xa2\x0a\x5b\x21\x81\x55\x53\xaf\x3e\xbc\xf9\xf4\xdd\xe9\x9d\x0d\x00\x41\x36\x37\xb2\x76\xc1\x82\x9d\x98\x20\x2d\x20\x98\xc6\x4f\xfc\xa3\xd6\xca\xca\xac\x24\x58\x6a\x03\x51\x30\x6f\xa4\x2a\xf8\x4e\x3a\xa0\xe7\xd6\x2c\xa9\xce\x7e\xa6\xdc\x0d\x96\x0d\xfd\xe2\xa5\x21\x31\x64\xcd\x82\xb7\x7e\x1f\x2c\xd7\x86\x3d\xe1\x06\x56\x8e\xcf\x20\xca\x6e\xad\xdf\xd1\xe1\xf3\xfc\xce\x2e\x00\xab\x1e\x6f\x82\xe0\x90\x23\x0b\x6e\x45\xad\x11\x49\x34\xf6\x02\xbd\x04\xb7\x92\x16\x0c\xd5\x86\x2c\xa9\x18\x84\xbc\x8c\xaa\x51\x29\xdd\x20\x7e\x4a\x86\x09\x81\x5d\x69\x5f\x0a\x36\xcd\x15\x19\x07\x86\x72\x5d\x28\xf9\x6b\x47\xdd\x82\xd3\x81\x6d\x89\x8e\xac\x03\xa9\x1c\x19\x85\x25\x5c\x61\xe9\x69\x06\xa8\xc4\x06\xed\x0a\xd7\x60\x88\xf9\x82\x57\x03\x8a\xe1\x8a\xdd\x94\xe5\x44\x1b\x02\xa9\x96\x7a\x01\x2b\xe7\x6a\xbb\xd8\xdf\x2f\xa4\x6b\xb3\x30\xd7\x55\xe5\x95\x74\xeb\xfd\x90\x50\x32\xf3\x1c\xed\xfb\x82\xae\xa8\xdc\xb7\xb2\x98\xa3\xc9\x57\xd2\x51\xee\xbc\xa1\x7d\xac\xe5\x3c\x28\xa3\x42\x26\xa6\x95\xf8\x43\x1b\x0f\xf6\x0e\xe3\xe8\x73\xeb\x38\x1e\x6e\x6d\x85\xa4\xf8\x2f\x9d\xc5\x09\x13\xc3\x2f\x12\x8c\xca\xf6\x3e\xe1\x25\x36\xe3\xc7\xbf\x9e\x9e\xf5\x11\x1a\xfc\x16\x5d\xd4\x1f\xdd\x62\xa1\xd6\x5b\x6c\x59\xa9\x96\x64\xe2\xcd\xa5\xd1\x55\xa0\x4a\x4a\xd4\x5a\x2a\x17\x5e\xf2\x52\x92\x72\x60\x7d\x56\x49\x67\x43\x0c\x93\x75\xec\xc8\x4d\xc2\x47\x01\xb5\x20\x23\xf0\xb5\x40\x47\x62\xf3\xc8\x1b\x05\x47\x58\x51\x79\x84\x96\xfe\xef\xbe\x63\x1f\xd9\x39\x3b\xe4\xc1\xde\x1b\x62\xf2\xe6\x85\x8d\x14\x07\x68\x01\x75\xd4\xdd\x1d\xbe\x9c\xd6\x94\xb3\x93\xd9\xca\x7c\x2b\xa0\x0a\xaa\x01\x00\xb5\x9e\xbd\x6b\xa8\x51\xe6\xe3\xc0\xc1\xcf\x92\x90\x2d\xb3\x65\xe7\x8e\x88\xc7\xcd\xc1\x50\x74\x50\xaa\x28\x23\x23\x39\xe3\x40\x0b\x7c\xc8\x48\xf8\xfe\xdd\x49\x47\x77\xd3\x9f\x3b\x45\xbd\x4f\xdc\x20\x96\xb4\xcc\xe6\x48\xd7\x92\xc4\xd1\xe9\xa7\x91\x63\xf7\x67\x54\xfb\xbc\xbe\x4b\x90\x3d\xe0\x2d\x09\x46\xa6\x86\x1b\x2b\xf5\x8d\x85\x24\x1e\x82\xa3\xd3\x4f\x49\xab\xe3\x28\x5d\xf6\x5d\x57\x3c\x41\x2a\xeb\xb0\x2c\x49\x00\xb6\x59\x14\xaa\x56\x2c\x62\x33\xb8\x5e\x91\x21\xc0\x76\x79\x94\x6a\x38\x2e\x3a\xc2\x2c\xab\x56\x9c\xe8\xe8\x60\x85\x16\x32\x22\x35\x60\x26\x15\xa0\x1a\x25\xf6\xbe\xa1\xf2\x03\x97\xfa\x48\xc3\xa1\x29\xc8\x59\xc0\xb2\x8c\x35\xbe\xc6\x7c\xbb\x1f\xe3\xf3\x8f\x15\x29\x30\x44\x8a\xcd\x24\x66\xc1\xfb\xd7\xb2\x2c\x19\xe9\x0d\xa1\xa3\xa0\xec\xc0\x70\x36\x09\x96\x21\xcc\x57\xa3\x44\x6f\xd9\xa6\x57\x76\x4c\x8a\x18\x51\x99\xd6\x25\x8d\x28\x5b\x63\x7e\x89\x05\x45\x98\x3b\x5d\xab\xfc\x0d\x97\x99\x2b\x2c\xbf\x34\x78\x3e\x8c\x11\xbe\x15\x44\xa1\xba\xc6\xac\x5e\xab\x3c\xd6\x38\x3e\xb3\xd4\xe3\x8e\x6e\x44\x36\x36\x90\x86\x5a\x0b\x9b\xb6\xec\x06\x6b\x50\x93\x91\x5a\xc8\x1c\xcb\x72\x0d\xf9\x8a\xf2\x4b\x66\x34\x1e\x3f\x0e\x9d\xb7\x9c\xb4\x47\xe8\xb0\xd4\xc5\x69\xac\x5d\x7f\x89\x88\xcf\xa8\x23\x97\xb2\x69\x05\x22\x6d\xf0\xdc\x7e\x81\xf0\x26\x14\xfe\x5d\x01\x5f\xa1\x83\x09\xa5\x45\x0a\xc9\xb3\x83\x2a\x99\xa6\x70\xac\x9b\x5a\x52\xa3\xc1\x8a\x1c\x99\x19\x68\x55\xae\x61\xa5\xbd\xb1\x30\x49\x56\xc9\x74\x06\x95\x54\xde\x6d\x14\xd0\xfe\x99\x24\x15\x1f\x43\x25\xc0\x52\xae\x95\xe0\x9b\x36\x99\x86\x82\x95\x51\x27\xb6\x48\x63\x40\x72\xcd\xe9\xd6\x66\x3b\x0d\xd2\xe8\x28\x68\x89\xbe\x74\x5d\x3b\x12\xcb\x6b\x47\x03\xae\xa5\x5b\x49\x15\xad\x32\x74\xc2\xee\x98\xdc\x52\x3e\x86\x1e\x76\xdc\xeb\x2c\xe0\x5f\x93\xf3\x83\xf9\xf3\x8b\x6f\x27\x3f\xa6\xf1\xc7\xf4\xe5\xc4\x7e\xae\x3e\xaf\xa6\xd3\x6f\xbf\xde\xdb\xf4\xde\x03\x8b\x49\xf4\x74\x5b\x4e\xe2\xdb\xff\xba\xa0\xb0\x6f\xe4\x60\x46\xd9\x46\x14\x8d\xc1\xf5\x96\x5d\xe9\xa8\x1a\x03\xfd\x07\xa5\xe3\x51\xcb\xbc\xaf\x52\x82\x1c\xca\x32\xea\xcd\x38\x89\xec\x51\x17\x5b\x5a\x82\xdc\x1b\x13\x5a\x19\xc7\x40\xd5\xf6\xb9\xaf\x3e\xbc\x81\x8f\x23\x66\x69\x9f\xf9\x7c\x4c\x88\xb3\x90\x46\xce\xf8\xdc\xb1\xed\x39\xd7\x95\x20\x11\x24\x10\xd2\x84\xa6\xd5\xb2\x20\xec\x87\x60\x8a\xb6\x22\x2c\x25\x95\x82\xa3\x62\x05\x69\x74\x57\xda\x9b\x33\x85\x90\x4a\x74\x83\x55\x5d\xd2\x6c\x6f\x6f\x84\xfd\x57\x6c\x63\x38\xd6\xba\x71\x7f\x94\xe4\xb7\xb1\xd3\xfc\xcf\xfe\x3e\x7c\xec\x7a\xc3\x20\x89\xce\x38\xb8\xe3\xac\x19\xfa\x7c\x58\x6a\xfd\x8d\xbd\x6d\xaf\x31\xd3\xb4\x34\xdf\x2a\x7d\xad\xb6\x69\x12\x24\x44\x43\x0b\x48\x5e\x5d\xa1\x2c\xb9\x72\x24\x33\x48\x3e\x18\x5d\x18\xb2\x0c\x36\x49\xcc\xf5\xe4\x35\x15\x06\x05\x89\xe4\x1e\x5e\xdf\xd6\xe8\xf2\xd5\x09\x99\x82\xde\xd2\xfa\x05\x73\x78\xd0\x8d\x53\x67\x78\x78\x5d\xbf\xa8\xf8\xea\x7d\x57\xb8\xdd\x39\x5b\xd7\xf4\xa2\xc2\xfa\x21\x67\x4f\xb0\x7e\x88\x34\x5d\xd8\x5a\x38\xbf\xe0\xee\xf2\xea\x30\xed\x43\xf9\xa7\x9f\xad\x56\x8b\xa4\xb7\xdf\x4c\x57\x9c\x29\xb5\x5b\x27\x70\x4b\x89\x45\x12\xb4\x68\x56\x5b\x63\x2c\x12\xe6\x9f\x70\xd6\x3a\x9d\xf9\xe5\x22\xc9\xd6\x8e\xec\xec\x70\x66\xa8\x9e\x71\x89\x7f\xd1\xd3\x4e\x7e\x1a\x0f\xac\x46\x33\xed\x56\x64\x62\xac\x8e\xe1\xf5\x57\xbf\x6f\xdd\xb8\xa7\xf1\x1b\x9b\x86\xfb\x67\x0e\x25\x5a\x77\x66\x50\xd9\x20\xee\x99\xac\xc6\x0c\xcb\x23\xb4\xb5\x38\xea\xd3\x39\x18\x42\x3b\x5a\xcc\xe6\x0d\x5e\x8e\x6e\x8f\xfa\xf4\xbe\xf6\x15\xb6\xe8\x30\x76\xf2\xe1\x6d\xc8\x36\xaa\x2d\xf2\xf3\x0e\x38\x5e\x08\x90\xd7\x05\x96\xeb\x4e\x33\x3a\xf1\xa4\xc7\x00\xd9\xd4\x09\xa7\x01\x55\x70\xf5\x78\xeb\xd7\x62\x5d\x9c\xf0\x33\xe2\x1e\x36\x56\x48\xaf\x04\x99\x72\xcd\x5d\x43\xcf\x2f\x5f\xa1\x2a\xb8\x42\xc3\x9b\x65\xec\x35\xa5\x0d\x85\xfa\x92\x81\x22\x14\x69\xd5\xb4\x1a\x4c\x23\x48\xdc\x51\x64\x4c\x8e\xf8\xd8\x90\x09\xb3\x70\x9e\x53\xed\x18\x3e\xc6\x85\x7c\x40\x1d\x6e\x3b\x97\x05\xf0\x84\x3a\x77\xe3\x51\xd5\xc4\xd4\x63\xf8\xab\x21\x15\x47\xfa\x95\xaf\x90\xbb\x68\x14\x61\xd8\xe8\xf6\x14\xf7\x75\x61\xb4\x6f\xeb\x18\x66\xda\xc7\x6a\xd1\xbb\xef\x5e\x0f\x35\x4d\x12\x2a\x08\xb0\xd1\x58\xe3\x0b\x6d\x56\xe1\xcd\x3b\x52\x85\x5b\x2d\xe0\xbb\xa7\x7f\x7e\xf6\xfd\xc8\xc1\x58\x4a\x48\xfc\x40\x8a\x62\xff\xf8\x18\xd6\xdb\xa4\x3a\xf8\xbc\x11\xcc\x93\xb6\x63\x7a\x5a\xf4\x67\xe2\x84\x73\x2b\x0b\xae\xd1\x82\x25\x07\x19\x72\xb3\xee\xeb\xdd\xe6\xe4\x12\x1c\x86\x2b\x95\xd3\x0c\xe4\x72\x3b\x1b\xd9\x55\xca\x72\x0d\x87\x4f\x67\x90\x35\x3e\xdb\x2c\x86\xe7\x37\x17\xe9\x16\x65\xa4\x85\xe7\xb3\x3b\x92\xf2\xa4\xe7\x43\xeb\xc2\x61\xba\x43\x48\x6e\x55\xc3\xb7\x49\xee\x35\x9a\x76\x76\x4b\xa7\x43\x9d\x26\xf7\x45\x02\xf7\x30\xc5\x8e\x99\xb4\x4d\x1f\xa9\xdc\xb3\x3f\x8e\x07\x8c\x54\xb2\xf2\xd5\x02\x0e\x46\x8e\x44\x44\x7e\x8c\xf0\x88\x94\xfa\x2e\x10\x19\x96\x0b\x83\x55\x85\x4e\xe6\x20\x05\x29\xc7\x6d\xbd\x19\xa6\x18\x5b\xa4\xb9\xb8\x0c\x43\xcb\xc0\xf8\xdf\xd8\x06\x46\x1f\x94\x74\x1f\x8c\x16\x3e\x27\x13\x7a\xa7\x66\x84\xc8\x87\xc8\xbb\xae\x29\x66\x65\x33\x19\xd2\x0d\xfb\xaa\xfb\x82\x19\x7a\x9f\x8a\x50\x49\x55\xd8\x46\x18\x69\x23\xfe\xcd\x76\xf0\xe5\x6b\xd7\x2b\x0a\x05\xba\x9b\x61\x2c\xb7\x5a\xcc\xdc\x4a\x41\x86\x04\x20\x14\x1e\x0d\x2a\x47\x24\x18\x57\x77\xc3\x47\x37\x09\x75\x28\x8f\xfd\xe7\xba\x7b\x91\xa4\x01\xa0\x88\xdc\xac\x70\xf3\x31\x30\xe0\xd0\xe3\x01\xd0\xe1\xc1\xd3\x9d\x71\xd7\x9d\xdb\x31\x6d\xb7\xb3\xd8\xf9\xab\xf9\x3f\x71\xfe\xeb\xc5\xa4\xf9\x71\x30\x7f\xfe\xef\xd9\xe2\xe2\xc9\xe0\xf5\x62\xfa\xf2\xeb\x11\x4a\xdb\x07\xb4\xfe\xb9\x15\xc3\xfd\x2c\x7e\x2b\xd8\x66\xa1\x10\xeb\x25\x9c\x19\x4f\x33\x38\xc6\xd2\xd2\x0c\xfe\xae\x42\x9d\xfc\x42\xa3\x91\xf2\xd5\xb8\x74\xdc\xd9\x24\xcc\x75\xac\xdf\x6e\x8e\x04\x91\x76\x9f\x69\xc4\xdd\x35\x1d\x3f\x42\xa2\x87\x51\x22\x7e\x80\x6c\x51\x72\xf0\x35\x19\x02\x5a\xf3\xec\x92\x36\x73\x53\x9a\xeb\x6a\x7f\xc7\xd7\xe6\x81\x06\xa3\x03\x1e\x3f\x27\xa8\xd6\xd0\xc3\x78\x1c\x69\xee\xa6\x9b\x75\x8c\xb8\x98\x1b\x6d\x6d\x37\x67\x5b\x28\xe5\x25\x41\x37\xf8\xc4\xe2\x90\x51\x8e\x61\x2a\x34\x99\x74\x06\xcd\x7a\x30\x48\x43\x8e\x0a\xb2\x5d\x80\xef\x2d\x2d\x7d\x09\x13\x4b\x04\xa9\xd2\x82\x36\xeb\xcc\x34\x56\x13\xcc\x64\x29\xdd\x3a\x7e\x94\xca\xb5\x5a\x96\xb2\x19\x53\xab\x5a\x1b\x87\x6a\xcb\x5f\x72\xfa\xe7\x2c\x20\x64\x41\x37\x20\x1d\x54\x3c\x64\x50\xf8\xbe\x30\x11\xca\x1e\x1e\x3e\xfd\xee\xd4\x67\x42\x57\x28\xd5\x71\xe5\xf6\xa7\x2f\x27\xbf\x78\x2c\xc3\xd7\x93\xbf\x61\x45\xc7\x95\x9b\x3e\x5e\xc7\x71\xf8\xec\x01\xa9\x3c\x39\x8f\x09\x7b\x31\x39\x9f\x37\xbf\x9e\xb4\x4b\xd3\x97\x93\x1f\xd3\x9d\xfb\xd3\x27\xac\xc3\x00\x06\x2e\xce\xe7\x3d\x06\xa4\x17\x4f\xa6\x2f\x07\x7b\xd3\x16\x11\x62\x2d\x5f\x80\x33\xbe\xf5\x99\x75\xda\x70\xdb\x78\x6b\xcd\x67\x5d\x48\xf4\x99\xd0\xc0\x07\xfc\xf6\xfb\xde\x7f\x02\x00\x00\xff\xff\xcc\xf4\xfc\x74\x3e\x1e\x00\x00") +var _operatorsCoreosCom_olmconfigsYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xbc\x58\x6d\x6f\xdb\xc8\x11\xfe\xee\x5f\x31\x50\x0f\x38\x29\x27\xd1\x76\xae\x70\x2f\xea\x07\x23\xd0\x35\x07\xa3\x09\x12\xc4\x6e\x0a\xd4\x75\x8b\x11\x39\x24\xb7\x5e\xee\xb2\xfb\x62\x5b\xd7\xf4\xbf\x17\xb3\xcb\x37\x59\xa2\xec\x20\xe9\xf1\x8b\xc4\x7d\x99\x9d\x99\x67\xe6\x99\x59\x62\x2d\x3e\x91\xb1\x42\xab\x25\x60\x2d\xe8\xc1\x91\xe2\x37\x9b\xdc\xfe\x64\x13\xa1\x8f\xef\x4e\x8f\x6e\x85\xca\x96\xb0\xf2\xd6\xe9\xea\x23\x59\xed\x4d\x4a\x3f\x53\x2e\x94\x70\x42\xab\xa3\x8a\x1c\x66\xe8\x70\x79\x04\x80\x4a\x69\x87\x3c\x6c\xf9\x15\x20\xd5\xca\x19\x2d\x25\x99\x45\x41\x2a\xb9\xf5\x6b\x5a\x7b\x21\x33\x32\x41\x78\x7b\xf4\xdd\x49\x72\x7a\x96\x9c\x1e\x01\x28\xac\x68\x09\x5a\x56\xa9\x56\xb9\x28\x6c\xa2\x6b\x32\xe8\xb4\xb1\x49\xaa\x0d\x69\xfe\xa9\x8e\x6c\x4d\x29\x1f\x50\x18\xed\xeb\x25\xec\x5d\x13\x65\xb5\x7a\xa0\xa3\x42\x1b\xd1\xbe\x03\x2c\xf8\x90\xf0\x3f\xda\xf7\xfe\xed\xbb\x55\x38\x32\x8c\x49\x61\xdd\x9f\xb7\xc7\xdf\x0a\xeb\xc2\x5c\x2d\xbd\x41\x39\x54\x32\x0c\x5b\xa1\x0a\x2f\xd1\x0c\x26\x8e\x00\x6c\xaa\x6b\x5a\xc2\x4a\x7a\xeb\xc8\x1c\x01\x34\x36\x37\x7a\x2c\x1a\x83\xef\x4e\x1b\xb5\x6c\x5a\x52\x85\xad\x92\xc0\xa6\xa9\xd7\x1f\x2e\x3e\xfd\x78\xf9\x68\x02\x20\x23\x9b\x1a\x51\xbb\xe0\xc1\x4e\x4d\x10\x16\x10\x4c\x83\x13\xff\xa9\xb5\xb2\x62\x2d\x09\x72\x6d\x20\x2a\xe6\x8d\x50\x05\xef\x49\x06\xf2\xdc\x86\x35\xd5\xeb\x7f\x51\xea\x06\xc3\x86\xfe\xed\x85\xa1\x6c\x78\x34\x2b\xde\xe2\x3e\x18\xae\x0d\x23\xe1\x06\x5e\x8e\xcf\x20\xca\xb6\xc6\x1f\xd9\xf0\x79\xf1\x68\x16\x80\x4d\x8f\x3b\x21\xe3\x90\x23\x0b\xae\xa4\xd6\x89\x94\x35\xfe\x02\x9d\x83\x2b\x85\x05\x43\xb5\x21\x4b\x2a\x06\x21\x0f\xa3\x6a\x4c\x4a\x76\x84\x5f\x92\x61\x41\x60\x4b\xed\x65\xc6\xae\xb9\x23\xe3\xc0\x50\xaa\x0b\x25\x7e\xed\xa4\x5b\x70\x3a\x1c\x2b\xd1\x91\x75\x20\x94\x23\xa3\x50\xc2\x1d\x4a\x4f\x73\x40\x95\xed\xc8\xae\x70\x03\x86\xf8\x5c\xf0\x6a\x20\x31\x6c\xb1\xbb\xba\xbc\xd3\x86\x40\xa8\x5c\x2f\xa1\x74\xae\xb6\xcb\xe3\xe3\x42\xb8\x36\x0b\x53\x5d\x55\x5e\x09\xb7\x39\x0e\x09\x25\xd6\x9e\xa3\xfd\x38\xa3\x3b\x92\xc7\x56\x14\x0b\x34\x69\x29\x1c\xa5\xce\x1b\x3a\xc6\x5a\x2c\x82\x31\x2a\x64\x62\x52\x65\xbf\x6b\xe3\xc1\x3e\x3a\x38\x62\x6e\x1d\xc7\xc3\xd6\x54\x48\x8a\x2f\x04\x8b\x13\x26\x86\x5f\x14\x18\x8d\xed\x31\xe1\x21\x76\xe3\xc7\x3f\x5d\x5e\xf5\x11\x1a\x70\x8b\x10\xf5\x4b\xf7\x78\xa8\x45\x8b\x3d\x2b\x54\x4e\x26\xee\xcc\x8d\xae\x82\x54\x52\x59\xad\x85\x72\xe1\x25\x95\x82\x94\x03\xeb\xd7\x95\x70\x36\xc4\x30\x59\xc7\x40\xee\x0a\x5e\x05\xd6\x82\x35\x81\xaf\x33\x74\x94\xed\x2e\xb9\x50\xb0\xc2\x8a\xe4\x0a\x2d\xfd\xe6\xd8\x31\x46\x76\xc1\x80\x3c\x1b\xbd\x21\x27\xef\x6e\xd8\x49\x71\x80\x96\x50\x47\xe1\xee\xf8\xe5\xb2\xa6\x94\x41\x66\x2f\xf3\xae\xc0\x2a\xa8\x06\x04\xd4\x22\xfb\xd8\x51\xa3\x87\x8f\x13\x07\x3f\x39\x21\x7b\x66\xcf\xcc\x23\x15\xdf\x34\x0b\x43\xd1\x41\xa1\xa2\x8e\xcc\xe4\xcc\x03\x2d\xf1\x21\x33\xe1\xfb\xb7\xef\x3a\xb9\xbb\x78\x1e\x54\xf5\x29\x75\x83\x5a\xc2\xf2\x31\x2b\x5d\x0b\xca\x56\x97\x9f\x46\x96\x3d\x9d\x51\xed\xf3\xf3\x63\x81\x8c\x80\xb7\x94\x31\x33\x35\xa7\xb1\x51\xdf\x5b\x98\xc4\x45\xb0\xba\xfc\x34\x69\x6d\x1c\x95\xcb\xd8\x75\xc5\x13\x84\xb2\x0e\xa5\xa4\x0c\xb0\xcd\xa2\x50\xb5\x62\x11\x9b\xc3\x7d\x49\x86\x00\xdb\xe1\x51\xa9\x61\x79\xd6\x09\x66\x5d\xb5\xe2\x44\x47\x07\x25\x5a\x58\x13\xa9\xc1\x61\x42\x01\xaa\x51\x61\xef\x1b\x29\xbf\x70\xa9\x8f\x32\x1c\x9a\x82\x9c\x05\x94\x32\xd6\xf8\x1a\xd3\xfd\x38\xc6\xe7\xaf\x25\x29\x30\x44\x8a\xdd\x94\xcd\x03\xfa\xf7\x42\x4a\x66\x7a\x43\xe8\x28\x18\x3b\x70\x9c\x9d\x04\xcf\x10\xa6\xe5\xa8\xd0\x2d\xdf\xf4\xc6\x8e\x69\x11\x23\x6a\xad\xb5\xa4\x11\x63\x6b\x4c\x6f\xb1\xa0\x48\x73\x97\x1b\x95\x5e\x70\x99\xb9\x43\xf9\xb5\xc1\xf3\x61\x4c\xf0\x56\x10\x85\xea\x1a\xb3\x7a\xa3\xd2\x58\xe3\x78\x4d\xae\xc7\x81\x6e\x54\x36\x36\x88\x86\x5a\x67\x36\x69\x8f\x1b\x8c\x41\x4d\x46\xe8\x4c\xa4\x28\xe5\x06\xd2\x92\xd2\x5b\x3e\x68\x3c\x7e\x1c\x3a\x6f\x39\x69\x57\xe8\x50\xea\xe2\x32\xd6\xae\x3f\x46\xc6\x67\xd6\x11\xb9\x68\x5a\x81\x28\x1b\x3c\xb7\x5f\x90\x79\x13\x0a\xff\xa1\x80\xaf\xd0\xc1\x94\x92\x22\x81\xc9\xd9\x49\x35\x99\x25\xf0\x46\x37\xb5\xa4\x46\x83\x15\x39\x32\x73\xd0\x4a\x6e\xa0\xd4\xde\x58\x98\x4e\xca\xc9\x6c\x0e\x95\x50\xde\xed\x14\xd0\xfe\x99\x4e\x2a\x5e\x86\x2a\x03\x4b\xa9\x56\x19\xef\xb4\x93\x59\x28\x58\x6b\xea\xd4\xce\x92\x18\x90\x5c\x73\xba\xb1\xf9\x41\x87\x34\x36\x66\x94\xa3\x97\xae\x6b\x47\x62\x79\xed\x64\xc0\xbd\x70\xa5\x50\xd1\x2b\x43\x10\x0e\xc7\xe4\x9e\xf2\x31\x44\xd8\x71\xaf\xb3\x84\x7f\x4c\xaf\x4f\x16\xaf\x6e\x7e\x98\xfe\x3d\x89\x7f\x66\xe7\x53\xfb\xb9\xfa\x5c\xce\x66\x3f\x7c\x77\xb4\x8b\xde\x33\x8b\x49\x44\xba\x2d\x27\xf1\xed\xff\x5d\x50\x18\x1b\x31\xb8\xa3\xec\x13\x8a\xc6\xe0\x66\xcf\xac\x70\x54\x8d\x91\xfe\xd0\xc2\x55\x7b\x46\x5f\x8c\x32\x72\x28\x64\x34\x8f\xe9\x10\x19\x38\x17\x3b\x57\x82\xd4\x1b\x13\x3a\x16\xc7\x7c\xd4\xb6\xb3\xaf\x3f\x5c\xc0\xc7\x11\xeb\x9f\xf4\x41\x7c\xf6\xb7\xef\xfd\xb3\x00\x89\xd6\x5d\x19\x54\x36\x28\x7c\x25\xaa\xb1\x40\xe4\x9e\xdf\x5a\x2c\xc6\xe7\x0d\xa1\x1d\xcd\xbe\x45\x03\xf0\xe8\x34\xdb\xb2\x9f\x1a\x9f\xa8\xb7\xb0\xc7\x86\xb1\x95\xcf\xe7\xcd\x7d\x52\xdb\x50\xe5\x19\x70\x3c\x10\xc0\xeb\xd0\x76\xdd\x6a\xca\x62\x6b\xca\x50\x37\x81\xed\x34\xa0\xd2\xae\x1c\xcf\x48\x7e\xae\x02\xc7\xc5\x2b\xc9\x9a\xb8\xe8\xc6\x94\xf6\x2a\x23\x23\x37\x4c\x73\xfd\x79\x69\x89\xaa\x60\x4a\x81\x8b\x3c\x16\x47\x61\x03\xb3\xdc\x2a\x7d\xaf\x02\xab\xa8\x86\x1b\x59\x46\xd0\xb8\x93\xc8\xd1\x95\x0b\xe2\xab\x4f\x14\x13\x9a\xf7\x34\xa5\xda\x71\xa5\x1c\x57\xf2\x19\xc4\xd1\x52\xed\x12\xb8\xa5\x5e\xb8\xf1\xa8\x6a\x62\xea\x5b\xe0\xd5\x88\x8a\x77\x90\xd2\x57\xc8\x65\x1f\xb3\xd0\x1d\x75\x73\x8a\x0b\x51\xb8\x8b\xb4\x19\x89\x6b\xed\x63\xc3\xd3\xc3\xf7\x24\x42\x0d\xab\xa3\x02\xaa\x6a\xb7\x69\xbc\xf1\x95\x3e\xab\xf0\xe1\x2d\xa9\xc2\x95\x4b\xf8\xf1\xe5\x1f\xce\x7e\x1a\x59\xa8\xd7\x81\xd8\xb3\x5f\x48\x51\x2c\x78\xdf\xc2\x7b\xbb\x52\x07\xf7\xb1\xe0\x9e\xa4\xbd\x57\x24\x45\xbf\x26\xb6\x64\x5b\x59\x70\x8f\x16\x2c\x39\x58\x23\x77\x17\xbe\x3e\xec\x4e\x2e\xbf\xa1\x1b\x54\x29\xcd\x41\xe4\xfb\x8f\x11\xb6\xe5\x48\xb9\x81\xd3\x97\x73\x58\x37\x98\x25\x31\xbb\x92\x9e\xd6\xaf\x1f\x6e\x92\x3d\xc6\x08\x0b\xaf\xe6\x8f\x34\xe5\xd6\xd4\x07\x12\xe6\x30\x3d\xa0\x24\xd7\xd6\xf0\x31\x85\x39\xbb\xa9\xbf\x7b\x38\x9b\x3a\x4b\x9e\x8a\x04\x6e\xb0\x8a\x03\x4d\x74\x9b\x3e\x42\xb9\xb3\xdf\x8f\x07\x8c\x50\xa2\xf2\xd5\x12\x4e\x46\x96\x44\x46\xfe\x16\xe1\x11\x25\xf5\xf5\x0c\x99\x96\x0b\x83\x55\x85\x4e\xa4\x20\x32\xbe\xb2\xe6\x82\xcc\x30\xc5\xd8\x23\xcd\xc6\x3c\x74\x59\x03\xe7\x7f\x6f\x1b\x1a\x7d\x56\xd2\x7d\x30\x3a\xf3\x29\x99\xd0\x17\x36\x3d\x4f\x3a\x64\x5e\xbe\x25\x87\xac\x6c\x5a\x59\x7a\x60\xac\xba\x4f\x2e\xa1\x31\xab\x08\x95\x50\x85\x6d\x94\x11\x36\xf2\xdf\xfc\xc0\xb9\xbc\xed\xbe\x24\x66\xed\xbe\xe9\xb2\x80\x26\x58\x62\x45\x46\x86\x2f\x4c\x50\x78\x34\xa8\x1c\x51\xc6\xbc\x7a\x98\x3e\xba\xd6\xad\x63\x79\xec\xbf\x2f\x3c\xc9\x24\x0d\x01\x45\xe6\x66\x83\x9b\xaf\x17\x81\x87\xbe\x1d\x01\x9d\x9e\xbc\x3c\x18\x77\xdd\xba\x03\xd7\x83\xb6\x79\xbc\x7e\xbd\xf8\x1b\x2e\x7e\xbd\x99\x36\x7f\x4e\x16\xaf\xfe\x39\x5f\xde\xbc\x18\xbc\xde\xcc\xce\xbf\x1b\x91\xb4\xbf\xa3\xec\x9f\xad\x18\xee\x2f\x0f\x5b\xc1\x36\x0f\x85\x58\xe7\x70\x65\x3c\xcd\xe1\x0d\x4a\x4b\x73\xf8\x8b\x0a\x75\xf2\x2b\x9d\x46\xca\x57\xe3\xda\x71\x67\x33\xe1\x53\x27\x87\x97\x04\x95\x0e\xaf\x69\xd4\x3d\xd4\xce\x3f\xcf\x49\xbc\xb4\xf9\x28\xd2\x12\xe1\xe0\x0b\x17\x04\x42\x86\x5c\xeb\x84\x1e\xb0\xaa\x25\x25\xa9\xae\x8e\x0f\x7c\x01\xdb\x52\xe1\x4b\x8a\xdc\xe9\xd9\x33\xa2\x67\x7a\x1d\x63\xe4\x66\x7a\xbd\x68\xfe\xbd\x68\x87\x66\xe7\x7c\x23\x39\x34\x3f\x7b\x71\x3c\x3b\x9f\x0e\x22\xef\xe6\x7a\xd1\x87\x5d\x72\xf3\x62\x76\x3e\x98\x9b\xb5\x41\x18\xcb\xc7\x12\x9c\xf1\x6d\x5d\xb0\x4e\x1b\xee\x54\xb6\xc6\xfc\xba\xfb\xb6\xda\x3b\xbf\x89\x58\xf8\xcf\x7f\x8f\xfe\x17\x00\x00\xff\xff\xd9\x25\xf0\x22\x62\x19\x00\x00") func operatorsCoreosCom_olmconfigsYamlBytes() ([]byte, error) { return bindataRead( @@ -165,7 +165,7 @@ func operatorsCoreosCom_olmconfigsYaml() (*asset, error) { return a, nil } -var _operatorsCoreosCom_operatorconditionsYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x5b\x6d\x6f\xdc\xb8\xf1\x7f\xfd\xf7\xa7\x18\xec\xbf\xc0\xd9\xe9\x3e\xc4\xb9\xf6\x7a\xb7\x40\x10\x04\xb9\xa6\x08\x12\x5f\x82\xd8\xbd\x17\x75\xdd\x66\x24\xce\xee\xf2\x22\x91\x3a\x3e\xac\xbd\x77\xed\x77\x2f\x86\x94\x56\x5a\xaf\xb4\x76\x1b\x37\x87\xb6\xe4\x8b\xc4\x2b\x91\x43\x72\x1e\x7e\x9c\xf9\x81\xc2\x4a\x7e\x4f\xc6\x4a\xad\xe6\x80\x95\xa4\x1b\x47\x8a\x7f\xd9\xe9\xc7\xaf\xed\x54\xea\xd9\xfa\xf4\xe8\xa3\x54\x62\x0e\x2f\xbc\x75\xba\x7c\x4f\x56\x7b\x93\xd3\xb7\xb4\x90\x4a\x3a\xa9\xd5\x51\x49\x0e\x05\x3a\x9c\x1f\x01\xa0\x52\xda\x21\x3f\xb6\xfc\x13\x20\xd7\xca\x19\x5d\x14\x64\x26\x4b\x52\xd3\x8f\x3e\xa3\xcc\xcb\x42\x90\x09\xc2\x9b\xa9\xd7\x8f\xa7\xa7\xbf\x9d\x3e\x3e\x02\x50\x58\xd2\x1c\x74\x45\x06\x9d\x36\xb9\x56\x22\xcc\x62\xa7\xcd\x23\x3b\xcd\xb5\x21\xcd\xff\x95\x47\xb6\xa2\x9c\x27\x5a\x1a\xed\xab\x76\xd8\x4e\x9f\x28\xb3\x59\x0f\x3a\x5a\x6a\x23\x9b\xdf\x00\x13\xd0\x45\x19\xfe\x8e\xfb\x7c\x5b\xcb\x78\xd1\x4c\x1d\xde\x15\xd2\xba\xd7\xfd\xef\xdf\x48\xeb\x42\x9f\xaa\xf0\x06\x8b\xbe\xc5\x87\xd7\x76\xa5\x8d\xfb\xae\x5d\x0a\x4f\x9d\xef\x4c\x62\xa5\x5a\xfa\x02\x4d\x8f\x88\x23\x00\x9b\xeb\x8a\xe6\x10\x24\x54\x98\x93\x38\x02\xa8\x15\x58\x4b\x9c\xd4\xda\x5b\x9f\xd6\x13\xd8\x7c\x45\x25\x36\xd3\x01\x8b\x55\xcf\xdf\xbd\xfa\xfe\xcb\xf3\x5b\x2f\x00\x04\xd9\xdc\xc8\xca\x05\x73\xec\xed\x11\xa4\x05\xac\x5d\x00\x1a\x1f\x00\xbd\x00\xb7\xa9\x08\x3e\xec\xf5\xff\x00\xd7\x2b\x99\xaf\x78\x98\xb7\x24\xc0\x69\xde\xea\x9a\x36\x20\xd5\x42\x9b\x32\xb8\x08\x3f\x7d\xfb\xe6\x0c\x30\xd3\xde\x81\x5b\x11\x58\x87\x2e\x88\x45\xb5\x55\xc1\xb4\xb3\x48\x9e\x6d\x0e\x3a\xfb\x81\x72\xd7\x79\x6c\xe8\x47\x2f\x0d\x89\xee\x7e\x58\x1b\x8d\x67\x76\x1e\x57\x86\xe5\xba\x8e\xfd\x63\xeb\xc4\xc1\xce\xf3\x5b\x8a\xf9\xdb\xe4\xd6\x5b\x00\xd6\x67\x1c\x09\x82\x83\x82\x6c\xd8\x4a\x6d\x19\x12\xb5\x11\x82\xb2\x56\xd2\x82\xa1\xca\x90\x25\x15\xc3\xa4\xd9\x6c\xd8\xd2\x74\x4f\xf8\x39\x19\x16\xc4\xbe\xe3\x0b\x11\x75\x68\x1c\x18\xca\xf5\x52\xc9\x9f\xb6\xd2\x2d\xeb\x92\xa7\x2d\xd0\x91\x75\x20\x95\x23\xa3\xb0\x80\x35\x16\x9e\xc6\x80\x4a\xec\xc9\x2e\x71\x03\x86\x78\x5e\xf0\xaa\x23\x31\x0c\xb1\xfb\x6b\x39\xd3\x86\x82\xf9\xe6\xb0\x72\xae\xb2\xf3\xd9\x6c\x29\x5d\x83\x13\xb9\x2e\x4b\xaf\xa4\xdb\xcc\x42\xc8\xcb\xcc\x73\x1c\xce\x04\xad\xa9\x98\x59\xb9\x9c\xa0\xc9\x57\xd2\x51\xee\xbc\xa1\x19\x56\x72\x12\x36\xa3\x62\x70\x97\xe2\xff\x4d\xed\x55\xf6\xd6\xc4\xd1\xe6\xd6\x19\xa9\x96\x3b\xaf\x42\xb8\xfe\x93\xc6\xe2\x10\x8e\xbe\x1c\x05\xc6\xcd\xb6\x36\xe1\x47\xac\xc6\xf7\xbf\x3f\xbf\x80\x66\x45\xd1\x6e\xd1\x44\x6d\xd7\x1e\x0d\x35\xd6\x62\xcd\x4a\xb5\x20\x13\x47\x2e\x8c\x2e\x83\x54\x52\xa2\xd2\x52\x45\x5f\xcf\x0b\x49\xca\x81\xf5\x59\x29\x9d\x0d\x3e\x4c\xd6\xb1\x21\xf7\x05\xbf\x08\xb8\x0a\x19\x81\xaf\x04\x3a\x12\xfb\x5d\x5e\x29\x78\x81\x25\x15\x2f\xd0\xd2\x67\xb7\x1d\xdb\xc8\x4e\xd8\x20\xf7\xb6\x5e\xf7\xd4\xd8\x1f\xb0\x17\xe2\x00\x0d\xd4\x0f\x9a\x7b\x0f\x84\xce\x2b\xca\x01\x8b\x42\x5f\xb3\xc1\xf3\xc2\x5b\x47\x06\x50\x94\x52\x0d\x00\xd2\x61\x24\xaa\xf1\x6a\x0c\x95\x76\xbc\x79\x2c\x8a\x0d\xe8\x35\x19\x23\x05\x3b\x4e\x1c\x63\xa8\xd2\xc6\x91\x80\x6c\x13\x24\xf5\xe1\xd8\xc1\x8d\x0e\x83\x54\xdc\x72\x55\xe8\x4d\xc9\x0e\xb8\xff\xb2\x91\x8a\xc6\xe0\xa6\xe7\xad\x74\x54\xf6\x0e\x3b\x60\x28\x6e\xf5\x26\xfb\xd6\xf3\x09\x53\xde\x15\xac\xb1\xb5\x67\x10\x3b\x27\x4a\x65\x41\x90\x43\x59\x58\x58\x68\x03\x5a\x11\x20\xfb\x86\x8b\x08\x4b\x90\x7b\x63\x42\x64\x35\x26\x0c\x41\xf8\xfc\xdd\xab\xed\xc1\xb5\x1f\x1f\xb1\x4d\x26\x43\x8b\xb8\x60\x11\xd6\x19\x9f\x3b\x86\x0f\x86\x57\x25\x48\x84\x15\x08\x69\x02\x86\x5a\x5e\x08\xfb\x4b\x50\x05\x60\x74\xa4\x85\xa4\x42\x40\x85\x6e\x05\x53\x5e\x91\xe7\xa4\x64\x9b\xd4\x00\xbc\xd4\x06\xe8\x06\xcb\xaa\xa0\xf1\xd1\xd1\xc0\xf4\xff\x17\x8e\xd9\x97\x5a\x9f\x07\x09\xf5\x4a\x7e\x1e\xea\xcd\xff\xcc\x66\xf0\x7e\x0b\x55\xd1\x11\x33\x4b\x66\x1d\x93\xb3\xe0\xd9\xb0\xd0\xfa\x0b\xbb\xab\xaf\x21\xd5\x34\x32\x5f\x2b\x7d\xad\xfa\x76\x12\x56\x88\x86\xe6\x30\x7a\xbe\x46\x59\x60\x56\xd0\x68\x0c\xa3\x77\x46\x2f\x0d\x59\x4e\x6d\x46\xe1\x1c\x82\xd1\xb7\xb4\x34\x28\x48\x8c\xee\x98\xeb\xd7\x15\xba\x7c\x75\x46\x66\x49\xaf\x69\xf3\x94\x67\xb8\xd7\x88\x73\x67\x38\xcb\xdb\x3c\x2d\x79\xe8\x5d\x43\x38\xb3\xbb\xd8\x54\xf4\xb4\xc4\xea\x3e\x7d\xcf\xb0\xba\xcf\x6a\xb6\x6e\x6b\xe1\xf2\x8a\xc1\x6e\x7d\x3a\x6d\x5d\xf9\xc3\x0f\x56\xab\xf9\xa8\xd5\xdf\x58\x97\x1c\x29\x95\xdb\x8c\x60\x67\x13\xf3\x51\xd8\x45\xfd\xb4\x51\xc6\x7c\xc4\xf3\x8f\x18\x29\x9c\xce\xfc\x62\x3e\xca\x36\x8e\xec\xf8\x74\x6c\xa8\x1a\x73\x16\xf8\xb4\x95\x3d\xfa\x30\xec\x58\xf5\xce\xb4\x5b\x91\x89\xbe\x7a\x1b\xc1\xb7\x5d\xff\x7e\x00\x37\x7a\x61\x2c\xb6\xfe\xe4\xac\x6d\x9c\xa6\x59\x8b\x83\x86\x9a\x80\x21\xb4\x75\x86\xdc\xf7\x3a\xfa\xe2\xe0\xeb\x41\x43\x1d\x42\xd9\xd8\x0a\xb4\xee\xc2\xa0\xb2\x41\x8f\x17\xb2\xa4\xa1\x9e\xf7\x05\xb3\x7e\xa9\x0c\x29\x31\x79\xb3\x0e\x1c\x3f\x08\x38\xb6\xf5\x16\xb7\xed\xcd\x90\xc3\xd9\x04\xa3\x5e\xdc\x37\x1f\x4a\xa8\x82\xfd\x86\x62\x17\xb6\x00\x16\xb3\xc8\x8c\xe0\x7a\x45\x2a\x4c\xe2\x95\x20\x53\x6c\xf8\xf8\x6a\xe7\xcb\x57\xa8\x96\x24\xa6\x00\xaf\x18\x3d\x31\x60\x1e\x27\x20\x1f\x39\xfa\xc7\x3c\x50\x81\xb7\x4d\xb2\x14\x56\xbc\x95\xc8\x40\x1b\x41\xaf\x16\x13\xf2\xad\x3c\xa7\xca\x31\x26\x0c\x2f\xf2\xe0\x09\xd4\xb4\x78\x56\xcf\x81\xb3\xa0\x09\x4f\x3c\xd0\xb3\xf6\xa9\x87\xb0\x57\x2d\x2a\xa6\x8d\x2b\x5f\xa2\x62\x8f\x14\xbc\x99\xf6\x9d\x12\x32\xc7\x90\x3e\x36\x87\x53\x9b\x4b\xb4\xe6\xbb\xd3\x42\x9c\x39\x66\xc4\x87\x48\xc0\x82\x5a\x1b\x9f\xa8\xb3\x12\x6f\xde\x90\x5a\xba\xd5\x1c\xbe\x7c\xf2\xbb\xaf\xbe\x1e\xe8\x18\xcf\x07\x12\x7f\x20\xc5\x19\x4b\x4f\x29\xf4\xaf\x68\x6f\x5f\x6a\x27\x85\x0e\xea\x99\x36\xa9\xe0\x74\xd9\xf6\x09\x5e\xb7\x1b\x05\xd7\x68\xc1\x92\x83\x0c\xb9\xa2\xf4\xd5\x61\x75\xf2\xb9\x2a\x95\x75\xa8\x72\x1a\x83\x5c\xf4\x4f\x23\xb7\xc7\x5f\xb1\x81\xd3\x27\x63\xc8\x6a\x9b\xed\x9f\x70\x97\x37\x57\xd3\x9e\xcd\x48\x0b\xdf\x8c\x6f\xad\x94\xab\x05\x1f\xf2\x11\x76\xd3\x03\x8b\xbc\x96\x6e\xc5\x65\x46\x48\x5f\xea\x0a\xae\x27\x7d\xa1\xed\x4e\xee\xf2\x04\x4e\x4c\x96\x64\xee\x0c\x1f\xa9\xdc\x57\xbf\x19\x76\x18\xa9\x64\xe9\xcb\x39\x3c\x1e\xe8\x12\x11\xf9\x21\xdc\x23\x4a\x6a\x53\x3b\x64\x58\x5e\x1a\x2c\x39\x23\xcf\x41\x0a\x4e\xb4\x17\x92\x4c\x37\xc4\x58\x23\xf5\x40\x4e\xc0\x76\x94\xff\x85\xad\x61\xf4\x5e\x41\xf7\xce\x68\xe1\x73\xae\xd9\xf4\x22\x54\x18\x72\x21\xf3\x2e\xf2\x72\x61\x13\xa2\x32\xd6\xf6\x40\x37\x6c\xab\x6d\x95\x1c\x12\x9a\x92\x50\x49\xb5\xb4\xf5\x62\xb8\xe2\x63\xfc\x1b\x1f\x98\x97\x87\x5d\xaf\x28\x9c\xba\x81\x2d\xa8\xa5\x99\xb0\x13\x2b\x05\x19\x12\x80\xb0\xf4\x68\x50\x39\x22\xc1\xb8\x7a\x18\x3e\x6a\x29\x1d\x94\xc7\xb6\x24\xbc\x13\x49\x6a\x00\x8a\xc8\xcd\x1b\xae\x0b\xce\x80\x43\x0f\x07\x40\xa7\x8f\x9f\x1c\xf4\xbb\x6d\xbf\xc1\x4e\x15\x3a\x47\x46\xcd\xe1\x2f\x97\xcf\x27\x7f\xc2\xc9\x4f\x57\xc7\xf5\x1f\x8f\x27\xdf\xfc\x75\x3c\xbf\x7a\xd4\xf9\x79\x75\xf2\xec\x57\x03\x92\x62\x80\xdf\xd3\x87\xeb\xb3\xb6\xa9\x30\x1a\xff\x18\x87\x83\x58\x2f\xe0\xc2\x78\x1a\xc3\x4b\x2c\x2c\x8d\xe1\x8f\x2a\x9c\x93\x9f\xa8\x34\x52\xbe\x1c\x5e\x1d\x67\x36\x23\x9e\x75\x28\x89\xae\xbb\x84\x25\x1d\xee\x53\x2f\x77\xa0\x4f\x58\xeb\x03\x04\x7a\xa8\x0f\xf4\xa2\x8b\x92\x1d\xc6\x02\x02\x5a\x73\x41\x32\xad\x8b\xa1\x69\xae\xcb\xd9\x01\x46\xa3\xb3\x83\xc1\xaa\x8d\xdb\x19\xaa\x0d\xb4\x30\x1e\xeb\x94\xdb\xe1\x66\xb9\x9e\x07\xcc\x8d\xb6\x76\x4b\xfb\x58\x28\xe4\x47\x82\x6d\x35\x13\x0f\x87\x8c\x72\x0c\xa5\x9e\xc9\xa4\x33\x68\x36\xed\x8e\x2c\xe4\xa8\x20\x3b\x04\xf8\xde\xd2\xc2\x17\x70\x6c\x89\x60\xaa\xb4\xa0\xfd\x73\xe6\x24\x9e\x26\x98\xc9\x42\xba\x0d\x9f\x0a\x82\x72\xad\x16\x85\xac\x6b\xcf\xb2\xd2\xc6\xa1\xea\x61\x0b\xdb\x76\x11\x10\x72\x49\x37\x20\x1d\x94\x5c\x39\x90\xe5\xc1\xc7\x42\xd9\xd3\xd3\x27\x5f\x9e\xfb\x4c\xe8\x12\xa5\x7a\x59\xba\xd9\xc9\xb3\xe3\x1f\x3d\x16\x0c\xb3\xe2\x3b\x2c\xe9\x65\xe9\x4e\x1e\x2e\xe3\x38\xfd\xea\x1e\xa1\x7c\x7c\x19\x03\xf6\xea\xf8\x72\x52\xff\xf5\xa8\x79\x74\xf2\xec\xf8\xcf\xd3\x83\xef\x4f\x1e\xf1\x1e\x3a\x30\x70\x75\x39\x69\x31\x60\x7a\xf5\xe8\xe4\x59\xe7\xdd\xc9\x3e\x22\xf0\xa9\x2e\x73\x7a\x9e\xe7\xda\x7f\x36\x62\xa5\x1f\x80\xee\x8a\xa8\x7d\x96\x2b\x42\x53\xc3\x73\xed\xd2\x55\x3d\x1c\x97\x74\xb6\xce\x2d\x22\x9d\x35\x0d\xce\x52\x03\x1c\x03\xbf\x33\x28\x8b\xe8\x83\xb9\xf3\x58\xec\x6b\x6b\xcb\x8d\x81\xdd\x58\x47\xe5\x03\x51\x5b\x6d\x0c\x24\x9a\x29\xd1\x4c\x89\x66\x4a\x34\x53\xdb\x1e\x80\x66\xda\xe7\x5d\x12\x23\x35\x24\x35\x31\x52\x90\x18\xa9\xc4\x48\x25\x46\x2a\x31\x52\x89\x91\x4a\x8c\x54\x62\xa4\x20\x31\x52\x89\x91\x4a\x8c\xd4\xbf\x99\x91\x8a\x67\xf9\x1c\x9c\xf1\x8d\xcd\xac\xd3\x86\xd3\x46\x58\x70\xdc\x34\x0f\x7d\xb6\xf5\x89\x36\x14\x6a\xfc\x80\x9f\x63\x09\xb5\xbd\x0d\xfa\xa4\x19\x95\x6e\x83\xa6\xdb\xa0\xe9\x36\x68\xdb\xd2\x6d\xd0\xff\xde\xdb\xa0\xf7\xa2\xce\xbb\x17\x44\x77\x89\xf3\x78\x8b\x73\x87\x28\x0f\x29\x72\x65\xf4\x5a\x8a\x3d\xb7\x84\x5b\xd7\x4b\x43\x19\x75\xeb\xd0\x2c\x51\xf9\xee\x95\x51\xfa\x3c\x17\x46\x13\xab\x9e\x58\x75\x48\xac\x7a\x62\xd5\x7b\x5a\x62\xd5\x43\x4b\xac\x7a\x62\xd5\x13\xab\xfe\x69\xda\x4b\xac\x7a\x62\xd5\x13\xab\x7e\xbb\x25\x56\xbd\xb7\x5f\x62\xd5\xdb\x96\x58\xf5\xc4\xaa\x27\x56\xfd\xf3\xdc\xf3\x4c\x1f\xcf\x26\xfe\x25\xf1\x2f\x07\x47\x24\xfe\xe5\x3f\x8b\x7f\x49\xa4\x4a\x22\x55\x12\xa9\x92\x48\x95\x44\xaa\x24\x52\x25\x91\x2a\x89\x54\x49\xa4\x0a\x24\x52\x25\x91\x2a\x89\x54\xf9\x9f\xff\x78\xf6\x8e\x2f\x65\xdf\xbe\x39\xeb\x5c\x44\x8c\x17\x14\x3b\xde\xb8\xc2\x35\x41\x46\xa4\xb6\x49\x58\xba\x8f\x93\xf8\xa0\xc4\x07\x1d\x1e\x92\xf8\xa0\x5f\x9a\x0f\x4a\xf7\x71\x86\x5a\xa2\x8e\xfa\x5b\xa2\x8e\x12\x75\x94\xa8\xa3\x44\x1d\x25\xea\x28\x51\x47\x89\x3a\x4a\xd4\x51\xa2\x8e\x12\x75\xf4\x8b\x7d\xe5\xda\x7d\x76\xd7\x47\xae\xff\x08\x00\x00\xff\xff\xc2\x71\x78\x33\xbc\x66\x00\x00") +var _operatorsCoreosCom_operatorconditionsYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x5a\x5f\x73\xdb\xb8\x11\x7f\xf7\xa7\xd8\xb9\x76\xa6\x76\x46\xa2\xe2\x5c\x27\xbd\xd3\x4b\x26\xe3\xf6\x3a\x99\x26\x4d\xe6\xe2\xde\x43\x5d\xb7\xb7\x22\x56\x12\x1a\x12\x60\xf1\x47\xb6\xae\xed\x77\xef\x2c\x40\x8a\x94\x48\x4a\xbe\xc6\x93\x76\x3c\xe0\x8b\x2d\x02\x58\x2c\xf6\xcf\x6f\xf1\x03\x81\x95\xfc\x81\x8c\x95\x5a\xcd\x01\x2b\x49\xf7\x8e\x14\xff\xb2\xd9\xa7\x6f\x6c\x26\xf5\x6c\x73\x79\xf6\x49\x2a\x31\x87\x2b\x6f\x9d\x2e\xbf\x27\xab\xbd\xc9\xe9\xb7\xb4\x94\x4a\x3a\xa9\xd5\x59\x49\x0e\x05\x3a\x9c\x9f\x01\xa0\x52\xda\x21\xbf\xb6\xfc\x13\x20\xd7\xca\x19\x5d\x14\x64\xa6\x2b\x52\xd9\x27\xbf\xa0\x85\x97\x85\x20\x13\x84\x37\x53\x6f\x9e\x67\x97\x2f\xb3\xcb\x33\x00\x85\x25\xcd\x41\x57\x64\xd0\x69\x93\x6b\x25\xc2\x2c\x36\x6b\x5e\xd9\x2c\xd7\x86\x34\xff\x29\xcf\x6c\x45\x39\x4f\xb4\x32\xda\x57\xed\xb0\xbd\x3e\x51\x66\xa3\x0f\x3a\x5a\x69\x23\x9b\xdf\x00\x53\xd0\x45\x19\xfe\x8f\xeb\x7c\x5f\xcb\xb8\x6a\xa6\x0e\x6d\x85\xb4\xee\x0f\xc3\xed\x6f\xa5\x75\xa1\x4f\x55\x78\x83\xc5\x90\xf2\xa1\xd9\xae\xb5\x71\x7f\x6c\x55\xe1\xa9\xf3\xbd\x49\xac\x54\x2b\x5f\xa0\x19\x10\x71\x06\x60\x73\x5d\xd1\x1c\x82\x84\x0a\x73\x12\x67\x00\xb5\x01\x6b\x89\xd3\xda\x7a\x9b\xcb\x7a\x02\x9b\xaf\xa9\xc4\x66\x3a\x60\xb1\xea\xf5\x87\x37\x3f\x7c\xfd\xf1\xa0\x01\x40\x90\xcd\x8d\xac\x5c\x70\x47\x6f\x8d\x20\x2d\x60\x1d\x02\xd0\xc4\x00\xe8\x25\xb8\x6d\x45\xf0\x63\xaf\xff\x8f\x70\xb7\x96\xf9\x9a\x87\x79\x4b\x02\x9c\xe6\xa5\x6e\x68\x0b\x52\x2d\xb5\x29\x43\x88\xf0\xdb\xf7\x6f\xdf\x01\x2e\xb4\x77\xe0\xd6\x04\xd6\xa1\x0b\x62\x51\xed\x4c\x90\x75\x94\xe4\xd9\xe6\xa0\x17\x7f\xa7\xdc\x75\x5e\x1b\xfa\x87\x97\x86\x44\x77\x3d\x6c\x8d\x26\x32\x3b\xaf\x2b\xc3\x72\x5d\xc7\xff\xf1\xe9\xe4\xc1\xde\xfb\x03\xc3\xfc\x6b\x7a\xd0\x0a\xc0\xf6\x8c\x23\x41\x70\x52\x90\x0d\x4b\xa9\x3d\x43\xa2\x76\x42\x30\xd6\x5a\x5a\x30\x54\x19\xb2\xa4\x62\x9a\x34\x8b\x0d\x4b\xca\x7a\xc2\x3f\x92\x61\x41\x1c\x3b\xbe\x10\xd1\x86\xc6\x81\xa1\x5c\xaf\x94\xfc\x69\x27\xdd\xb2\x2d\x79\xda\x02\x1d\x59\x07\x52\x39\x32\x0a\x0b\xd8\x60\xe1\x69\x02\xa8\x44\x4f\x76\x89\x5b\x30\xc4\xf3\x82\x57\x1d\x89\x61\x88\xed\xeb\xf2\x4e\x1b\x0a\xee\x9b\xc3\xda\xb9\xca\xce\x67\xb3\x95\x74\x0d\x4e\xe4\xba\x2c\xbd\x92\x6e\x3b\x0b\x29\x2f\x17\x9e\xf3\x70\x26\x68\x43\xc5\xcc\xca\xd5\x14\x4d\xbe\x96\x8e\x72\xe7\x0d\xcd\xb0\x92\xd3\xb0\x18\x15\x93\xbb\x14\xbf\x30\x75\x54\xd9\x83\x89\xa3\xcf\xad\x33\x52\xad\xf6\x9a\x42\xba\xfe\x4c\x67\x71\x0a\xc7\x58\x8e\x02\xe3\x62\x5b\x9f\xf0\x2b\x36\xe3\xf7\xbf\xfb\x78\x0d\x8d\x46\xd1\x6f\xd1\x45\x6d\xd7\x01\x0b\x35\xde\x62\xcb\x4a\xb5\x24\x13\x47\x2e\x8d\x2e\x83\x54\x52\xa2\xd2\x52\xc5\x58\xcf\x0b\x49\xca\x81\xf5\x8b\x52\x3a\x1b\x62\x98\xac\x63\x47\xf6\x05\x5f\x05\x5c\x85\x05\x81\xaf\x04\x3a\x12\xfd\x2e\x6f\x14\x5c\x61\x49\xc5\x15\x5a\xfa\xe2\xbe\x63\x1f\xd9\x29\x3b\xe4\xc1\xde\xeb\x56\x8d\xfe\x80\x5e\x8a\x03\x34\x50\x3f\xea\xee\x1e\x08\x7d\xac\x28\x07\x2c\x0a\x7d\xc7\x0e\xcf\x0b\x6f\x1d\x19\x40\x51\x4a\x35\x02\x48\xc7\x91\xa8\xc6\xab\x09\x54\xda\xf1\xe2\xb1\x28\xb6\xa0\x37\x64\x8c\x14\x1c\x38\x71\x8c\xa1\x4a\x1b\x47\x02\x16\xdb\x20\x69\x08\xc7\x8e\x2e\x74\x1c\xa4\xe2\x92\xab\x42\x6f\x4b\x0e\xc0\x7e\x63\x23\x15\x8d\xc1\xed\x40\xab\x74\x54\x0e\x0e\x3b\xe2\x28\x7e\xea\x45\x0e\xe9\xf3\x19\x53\xee\x79\xaf\x2d\x35\x1c\x83\x28\x95\x05\x41\x0e\x65\x61\x61\xa9\x0d\x68\x45\x80\x1c\x02\x2e\x02\x29\x41\xee\x8d\x09\x09\xd4\x78\x2a\xe4\xda\xeb\x0f\x6f\x76\xf5\xa9\x9f\x06\x70\xdc\xee\xf1\x19\xae\x26\xed\xc3\x75\xc5\x5a\x5c\xd1\x68\xbb\x21\xb4\x75\x49\x1f\x6a\x66\x8d\xfd\x61\xa2\xb4\xcd\xac\xe0\x60\xe3\xb1\xb0\x88\x4f\x81\xd6\x5d\x1b\x54\x36\x58\xf2\x5a\x96\x34\xd6\xf3\x34\x54\x1e\x93\xca\x10\x1a\xab\x8d\x75\xe0\xf8\x45\xf0\xc8\xce\x85\x6e\xd7\x9b\x44\x84\x3f\xf6\x5f\x5c\x37\x67\x11\x2a\xed\xd6\xd4\x4b\x89\xee\x73\xcd\xde\xac\xcb\xde\x82\xe0\x6e\x4d\x2a\x4c\xe2\x95\x20\x53\x6c\x39\xdf\xda\xf9\xf2\x35\xaa\x15\x89\x0c\xe0\x0d\xc7\x01\x3a\x56\x90\x11\xf3\x93\xd2\x77\x6a\xc2\x03\x15\x78\xdb\xa0\x7b\xd0\x78\x27\x91\x43\x66\x29\x89\xcb\x6b\x14\x13\x0a\x44\x9e\x53\xe5\x70\x51\x8c\x44\x11\x9c\x4a\x99\xe6\x89\xe0\x32\x07\x86\xed\x29\x4f\x3c\xd2\xb3\x8e\xa9\xc7\xf0\x57\x2d\x2a\xd6\xb9\xb5\x2f\x51\x71\x44\x0a\x5e\x4c\xdb\xa6\x84\xcc\x31\xd4\xbb\x26\xcd\x5a\xf0\x6b\xdd\x77\xd2\x43\x5c\xea\x16\xc4\x28\x49\x65\xe5\xb6\xb5\x35\x3e\xd3\x66\x25\xde\xbf\x25\xb5\x72\xeb\x39\x7c\xfd\xe2\x37\x2f\xbf\x19\xe9\xa8\x17\x96\x0b\xae\xf8\x3d\x29\x86\xd8\x81\xbd\xdb\x7f\x63\xbd\xbe\xd4\x4e\xcd\x0f\xe6\xc9\x9a\xda\x95\xad\xda\x3e\x21\xea\xf6\xb3\xe0\x0e\x2d\x58\x72\xb0\x40\xde\x02\xfb\xea\xb8\x39\xbf\xd3\x06\xa4\xb2\x0e\x55\x4e\x13\x90\xcb\xe1\x69\xa4\x6d\x80\xaf\xd8\xc2\xe5\x8b\x09\x2c\x6a\x9f\x65\x31\xbb\xb2\x96\x74\xdc\xdc\xdf\x66\x03\x8b\x91\x16\xbe\x9d\x1c\x68\xca\xdb\x1b\x1f\x90\x95\xc3\xf4\x88\x92\x77\xd2\xad\x79\x5f\x14\x80\xb8\xde\x72\x0e\x00\x31\xed\x56\x72\x2a\x12\x78\xa3\xba\x22\x73\x32\x7d\xa4\x72\x2f\x7f\x3d\x1e\x30\x52\xc9\xd2\x97\x73\x78\x3e\xd2\x25\x22\xf2\x63\x84\x47\x94\xd4\x16\x29\x64\x58\x5e\x19\x2c\x79\x0b\x91\x83\x14\xbc\x33\x58\x4a\x32\xdd\x14\x63\x8b\xd4\x03\xb9\x98\xed\x19\xff\x57\xb6\x86\xd1\x07\x25\xdd\x07\xa3\x85\xcf\x79\x93\xa9\x97\x61\x4b\x24\x97\x32\xef\x22\x2f\xef\xc4\x42\x56\x46\x32\x02\x74\xcf\xbe\xda\x6d\xeb\x99\x09\x40\x49\xa8\xa4\x5a\xd9\x5a\x19\xde\xa2\x32\xfe\x4d\x8e\xcc\xcb\xc3\xee\xd6\xc4\xa8\x1d\xe9\x4d\x2d\xcd\x84\x95\x58\x29\xc8\x90\x00\x84\x95\x47\x83\xca\x11\x09\xc6\xd5\xe3\xf0\x51\x4b\xe9\xa0\x3c\xb6\x7b\xd8\x93\x48\x52\x03\x50\x44\x6e\x5e\x70\xbd\x43\x0e\x38\xf4\x78\x00\x74\xf9\xfc\xc5\xd1\xb8\xdb\xf5\x1b\xed\x54\xa1\x63\x32\x36\x87\xbf\xde\xbc\x9e\xfe\x19\xa7\x3f\xdd\x9e\xd7\xff\x3c\x9f\x7e\xfb\xb7\xc9\xfc\xf6\x59\xe7\xe7\xed\xc5\xab\x5f\x8e\x48\x8a\x09\xfe\xc0\x18\xae\x6b\x6d\xb3\x57\x6a\xe2\x63\x12\x0a\xb1\x5e\xc2\xb5\x61\x5a\xf8\x1d\x16\x96\x26\xf0\x27\x15\xea\xe4\x67\x1a\x8d\x94\x2f\xc7\xb5\xe3\x9d\xcd\x57\x3c\xeb\x57\xc7\xbb\x04\x95\x8e\xf7\xa9\xd5\x1d\xe9\x13\x74\x7d\x98\x91\xc2\xe1\x85\x5e\x76\x81\xb0\xc3\xa2\x20\x00\x32\x2c\xb5\xce\xe8\x1e\xcb\xaa\xa0\x2c\xd7\xe5\xec\x08\xcb\xda\x53\xe1\xe7\x14\xb9\xcb\x97\x0f\x88\x9e\xf3\x9b\x18\x23\xb7\xe7\x37\xd3\xfa\xbf\x67\xcd\xab\x8b\x57\xe7\x7f\xc9\x8e\xb6\x5f\x3c\x9b\x5d\xbc\x3a\xef\x44\xde\xed\xcd\xb4\x0d\xbb\xec\xf6\xd9\xc5\xab\x4e\xdb\x45\x3f\x08\xb9\x90\xc8\x9c\x5e\xe7\xb9\xf6\x5f\x8c\x7c\x0c\xc7\xfc\x29\xb4\xee\x33\xc1\x98\x0d\x0d\x17\xdc\xa7\x74\x03\x3c\x90\x09\x79\x2c\x67\x91\xf2\x65\x01\xad\xea\x9c\x62\xac\x71\x06\x65\x11\x52\x0b\x73\xe7\xb1\xe8\x5b\x6b\xc7\x1f\xc1\x6e\xad\xa3\xf2\x91\xe8\x5f\x5b\xde\x13\x15\x63\x2c\xe8\x73\x93\xc4\xda\xc6\xa4\x26\xd6\x06\x89\xb5\x25\xd6\x96\x58\x5b\x62\x6d\x89\xb5\x25\xd6\x96\x58\x1b\x24\xd6\x76\xa8\xc2\xd3\x60\x6d\xb1\x7c\xcc\xc1\x19\xdf\xd4\x05\xeb\xb4\xe1\x9d\x0a\x2c\xd9\x55\xcd\x4b\xbf\xd8\x7d\x76\x6d\xad\x5f\x87\x2c\xfc\xf3\xdf\x67\xd0\xbd\x55\xf0\xa2\x19\x95\x6e\x15\xa4\x5b\x05\xe9\x56\x41\xfb\xa4\x5b\x05\x4f\xf7\x56\xc1\x83\x8e\x97\xba\x17\x0d\xf6\x0f\x97\xe2\x6d\x80\xbd\xc3\xa4\xb0\x2b\xab\x8c\xde\x48\xd1\x0b\x4b\x38\xb8\xa6\x10\x76\xee\xe1\x98\x69\x21\x0b\xe9\xb6\x2c\xa2\x44\xe5\xbb\x57\x0f\xe8\xcb\x5c\x3c\x48\x27\x4f\xdd\x27\x9d\x3c\x8d\xf5\x4b\x27\x4f\x63\x2a\xa6\x93\xa7\x74\xf2\x94\x4e\x9e\xd2\xc9\x53\x3a\x79\x4a\x27\x4f\xe9\xe4\x29\x9d\x3c\xed\xab\xf0\x34\x4e\x9e\xba\x96\x4b\x17\x95\xff\xd7\x1c\x25\x11\x8f\x44\x3c\x12\xf1\x48\xc4\x23\x11\x8f\x44\x3c\x12\xf1\x48\xc4\x23\x11\x0f\x48\xc4\xe3\x50\x85\xa7\x46\x3c\xfe\x5f\x2f\x2a\x9f\xb8\x95\xfc\xfe\xed\xbb\xce\x07\xed\xf8\xa1\xbb\xad\x91\xb0\xc6\x0d\xc1\x82\x48\xed\xea\x7e\xfa\xae\x33\xa6\x6e\xfa\xae\x93\xe8\x55\xa2\x57\x89\x5e\x7d\x96\xf5\x12\xbd\x4a\xf4\x2a\xd1\xab\xc3\x27\xd1\xab\xc1\x7e\x89\x5e\xb5\x4f\xa2\x57\x7b\x2a\x3c\x0d\x7a\x75\xec\x46\x71\xf7\xdd\xa9\x0b\xc5\xff\x09\x00\x00\xff\xff\x22\xbb\x75\x3b\x70\x4e\x00\x00") func operatorsCoreosCom_operatorconditionsYamlBytes() ([]byte, error) { return bindataRead( @@ -185,7 +185,7 @@ func operatorsCoreosCom_operatorconditionsYaml() (*asset, error) { return a, nil } -var _operatorsCoreosCom_operatorgroupsYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x3b\x6b\x73\x1b\x39\x72\x9f\xcf\xbf\xa2\x8b\x97\xaa\x95\x36\x7c\x58\xde\x64\x73\xc7\xaa\xad\x2d\x95\xbd\xde\x52\xd6\x0f\x95\x25\x6f\xaa\xe2\x28\x39\x70\xa6\x49\xe2\x84\x01\xe6\x00\x0c\x29\xde\x66\xff\x7b\xaa\x1b\x98\x17\xc9\x19\xd2\xb2\xee\x36\x49\x71\x3e\xd8\xe2\x00\xd3\x68\xf4\xfb\x01\x88\x5c\xfe\x8c\xd6\x49\xa3\xa7\x20\x72\x89\x0f\x1e\x35\xfd\x72\xe3\xfb\x3f\xb8\xb1\x34\x93\xd5\xc5\xb3\x7b\xa9\xd3\x29\xbc\x2c\x9c\x37\xd9\x07\x74\xa6\xb0\x09\xbe\xc2\xb9\xd4\xd2\x4b\xa3\x9f\x65\xe8\x45\x2a\xbc\x98\x3e\x03\x10\x5a\x1b\x2f\xe8\xb5\xa3\x9f\x00\x89\xd1\xde\x1a\xa5\xd0\x8e\x16\xa8\xc7\xf7\xc5\x0c\x67\x85\x54\x29\x5a\x06\x5e\x2e\xbd\x7a\x3e\xbe\xf8\xe7\xf1\xf3\x67\x00\x5a\x64\x38\x05\x93\xa3\x15\xde\xd8\x85\x35\x45\xee\xc6\xe5\x4f\x37\x4e\x8c\x45\x43\xff\x65\xcf\x5c\x8e\x09\x2d\xc2\x73\xea\x4f\x5a\x73\x02\xbc\x12\x17\xe1\x71\x61\xac\x2c\x7f\x03\x8c\xc0\xa8\x8c\xff\x0e\x7b\x7c\x1f\x61\xfc\x48\x20\xf9\xbd\x92\xce\xff\xb4\x3b\xf6\x46\x3a\xcf\xe3\xb9\x2a\xac\x50\xdb\x08\xf3\x90\x5b\x1a\xeb\xdf\xd5\xcb\xf3\x72\x8b\x30\x24\xf5\xa2\x50\xc2\x6e\x7d\xf7\x0c\xc0\x25\x26\xc7\x29\xf0\x67\xb9\x48\x30\x7d\x06\x10\xa9\x14\xc1\x8c\x22\x89\x56\x17\x11\xaa\x4b\x96\x98\x89\x72\x0d\x20\x90\xfa\xf2\xfa\xea\xe7\x6f\x6e\xb6\x06\x00\x52\x74\x89\x95\xb9\x67\x9a\xff\xf7\xa8\x31\x02\xed\xfd\x81\x74\xe0\x97\x08\x85\x96\x1e\xcc\x1c\xb2\x42\x79\xe9\x51\x0b\x9d\x6c\x60\x6e\x2c\xbc\x7f\xf3\x16\x32\xa1\xc5\x02\xd3\x06\xe5\x5b\x00\xaf\x3c\x71\xdf\x79\x2b\xa4\x0e\xd0\xa4\x76\x5e\x28\xc5\xf2\x41\x50\xab\x0f\x41\x6a\x90\xde\x05\x66\xd1\xb6\xc1\x1b\x10\x40\x1c\x96\x73\x89\x29\x38\x64\x34\xbc\xb0\x0b\xf4\xf5\xb4\xd6\x8a\x7e\x43\x94\x33\xb3\x3f\x63\xe2\x1b\xaf\x2d\xfe\xa5\x90\x16\xd3\x69\x0b\xb9\x11\x94\x62\xdb\x78\x9d\x5b\xc2\xc8\x37\x04\x24\x3c\x0d\x25\x69\xbd\xef\x27\x28\x3d\xc4\x87\xf0\x25\xa4\xa4\x31\x18\x08\x11\x39\x4a\x1b\x63\x1e\xf1\xde\x96\xd2\x81\xc5\xdc\xa2\x43\xed\x2b\x1a\x09\x1d\xb7\x34\xde\x01\x7e\x83\x96\x00\x91\xa0\x15\x2a\x25\x62\xaf\xd0\x7a\xb0\x98\x98\x85\x96\x7f\xad\xa0\x3b\xa2\x26\x2d\xab\x84\x47\xe7\x41\x6a\x8f\x56\x0b\x05\x2b\xa1\x0a\x1c\x82\xd0\xe9\x0e\xec\x4c\x6c\xc0\x22\xad\x0b\x85\x6e\x40\xe4\x4f\xdc\x2e\x2e\x6f\x8d\x25\xfe\xce\xcd\x14\x96\xde\xe7\x6e\x3a\x99\x2c\xa4\x2f\x8d\x48\x62\xb2\x8c\x44\x69\x33\x61\x7b\x20\x67\x05\x71\x7d\x92\xe2\x0a\xd5\xc4\xc9\xc5\x48\xd8\x64\x29\x3d\x26\xbe\xb0\x38\x11\xb9\x1c\xf1\x66\x34\x1b\x92\x71\x96\xfe\xde\x46\xb3\xe3\xb6\x16\x0e\x3c\x77\xde\x4a\xbd\x68\x0d\xb1\x3e\x7f\x26\xb3\x48\xcf\x49\xf0\x45\x04\x18\x36\x5b\xf3\x84\x5e\x11\x19\x3f\xfc\x70\x73\x0b\x25\x46\x81\x6f\x81\x45\xf5\xd4\x3d\x14\x2a\xb9\x45\x94\x95\x7a\x8e\x36\x7c\x39\xb7\x26\x63\xa8\xa8\xd3\xdc\x48\xed\xf9\x47\xa2\x24\x6a\x0f\xae\x98\x65\xa4\x17\x24\xc3\xe8\x3c\x31\x72\x17\xf0\x4b\x36\xba\x30\x43\x28\xf2\x54\x78\x4c\x77\xa7\x5c\x69\x78\x29\x32\x54\x2f\x85\xc3\xbf\x3b\xef\x88\x47\x6e\x44\x0c\x39\x9a\x7b\x4d\x97\xb2\xfb\xc1\x8e\x8a\x03\x94\xbe\xa0\x93\xdd\x2d\xeb\x76\x93\x63\x52\x5a\x38\xfa\x92\x2d\x9a\xd0\x5b\x26\xb0\xe4\xf0\x36\xc1\x3a\x91\xa0\x25\xe7\xa2\x50\x7e\x1b\x13\x80\x22\x5f\x58\x91\xe2\x8d\xb7\xe4\x83\x36\x53\x78\x15\x66\x6e\x4d\xec\x32\x40\xbc\x45\x54\x98\x78\x63\x77\x47\xb6\xb6\x7a\x13\x27\xc6\x2f\xc2\x36\x5b\x5b\xfb\xca\xf5\x5b\xd2\x23\x76\x7a\x08\x5b\x60\x1b\xe2\x93\xe5\x0f\x0f\xa4\x12\x0d\xff\x75\x00\xfb\xed\x8f\x82\x42\x92\x1b\x26\x6b\xa8\xc4\x0c\x55\x45\x8a\xd2\xb6\x67\xac\x71\x70\xbb\xc4\xd6\x1b\x10\x16\xe1\xf2\xdd\xab\x7d\x1a\xd1\xdc\xa0\xb0\x56\x6c\x3a\x66\x48\x8f\x59\x27\xe2\x87\x4d\x4a\xfd\x5c\xf6\xe0\x1e\x8d\x4e\x39\xe2\x97\x82\x5d\xa7\x67\xc7\x19\x2c\xee\x10\x04\xdc\xe3\x86\x8d\x35\xfb\x84\xc8\x4f\x9e\xdc\xb3\xac\x45\x36\xfa\x2c\x03\xf7\xb8\xe1\xcf\xbb\x6c\x78\x9b\x2a\x9d\x6c\x2f\x01\xef\x73\xab\xed\x67\x44\x4b\xf6\x8e\x97\xdb\xe8\x9c\x74\x48\xc6\xc2\x73\x8f\x9b\xbe\xe1\x2d\x3e\x11\x1d\xa2\xf6\x07\x9e\xd0\x0b\x26\x3a\x1b\x84\x92\x0d\x22\xcf\x95\xc4\xfd\x36\xb7\xf9\x74\x5a\xb1\xf6\x53\x6e\xf5\x33\x10\xed\x15\xa8\x26\xcc\x86\xe3\x09\x72\xf2\x95\x0b\x9c\x27\x0d\x5a\xca\x3c\x86\x53\x21\x88\x3a\xc4\xfe\xf0\xfc\x2c\x94\x6c\x84\x76\xac\x4b\x57\x7a\x08\xef\x8c\xa7\xff\x7e\x78\x90\xe4\x8f\x48\x9c\x5e\x19\x74\xef\x8c\xe7\x37\x4f\x42\xa9\x80\xe0\x53\xd2\x29\x40\x64\x35\xd3\x41\xdd\x89\x10\x4d\x2f\xef\xc6\x70\x35\x67\xfe\x57\x34\x95\x8e\xfc\xa6\xb1\x71\xcb\x07\x96\xe0\xb0\x2e\x2c\x13\x16\xc8\x0a\xc7\x4e\x59\x1b\x3d\xc2\x2c\xf7\x9b\xbd\x2b\x44\x3a\x1a\xdb\x22\xe3\xa3\x17\x8b\x0b\xdd\x52\x64\x11\x46\x42\x50\xa9\x28\x95\x80\xb4\xe0\x0d\x73\x7c\x43\x7e\x48\x26\x07\xd6\xc9\xd0\x2e\x10\x72\x32\xc9\xc7\x70\xb6\xcf\x90\x86\xe7\x80\x39\x6d\x02\x3b\x28\x26\x00\x0f\x23\xca\x27\xad\x46\x8f\x6e\x44\x2e\x62\x14\xf1\xf0\x26\xeb\xdc\xdb\x23\x3e\x62\x9f\xf4\x86\x4c\xc5\x71\x3e\xac\x47\x1e\x1b\xa0\x82\xd5\xcf\x44\x4e\xb2\xf8\x0b\x19\x77\x66\xe9\xaf\x90\x0b\x69\xdd\x18\x2e\x39\x4d\x54\xd8\x1a\x93\x9a\x99\xdf\x00\xd3\xb3\x14\xa7\x71\x64\xa7\x57\x42\x91\x9b\x21\x2b\xa0\x01\x55\x70\x3a\x94\xd6\x6d\x39\xdb\x21\xac\x97\xc6\x05\x4f\x31\x97\xa8\x38\x1c\x1e\xdc\xe3\x66\x30\xa4\x65\x3b\x97\x6a\x4a\xf4\xe0\x4a\x0f\x82\x9b\xda\x91\xd2\xca\xa7\x19\xad\x36\x30\xe0\xb1\xc1\xe3\xfd\x76\xaf\x87\x12\x69\xca\xe5\x09\xa1\xae\x8f\x70\x21\x07\x44\xae\x25\x33\x99\xc8\xfb\x45\xc6\xa1\x5d\xc9\x04\x2f\x93\xc4\x14\x9a\x2b\x00\x07\x63\xb6\x0e\x89\xb9\xd9\x81\x54\x3a\x2e\x91\x66\x52\xb7\x12\x64\x9e\x09\x22\x4c\x85\xf5\x52\x26\x4b\x58\x4b\xa5\x60\xb6\x9f\x6f\x85\xc3\x94\x24\x22\xc5\x5c\x99\x4d\xc5\xc2\x33\x77\x1e\x84\x8c\xb2\x9a\x92\xad\x5c\x9d\xe8\x8e\x10\x3b\xe8\xe6\x28\x8b\x4d\xae\xad\x59\xc9\x14\xd3\xcb\xeb\xab\xbd\x0c\x68\xc7\xae\xfc\x09\x78\x54\xca\x71\x8d\x81\x32\x1b\x6f\x62\x66\xb3\x37\x92\xcd\x1b\xf0\x1b\xf5\xa7\x4e\x64\x67\xc6\x28\x14\xbb\xe3\x21\x22\xae\x0a\x2f\x87\x71\xed\xe0\xd9\xed\x16\x9c\xe8\x75\xf0\x21\x57\x32\x91\xbe\xf4\xc2\x75\xe4\xcd\xd9\x39\x7f\xb4\x5f\xdc\xaf\xe6\x20\x39\x44\x74\xe8\x87\x75\x74\x2f\x1d\xc8\x85\x36\x76\xbf\x96\xf4\x1b\xe4\x1e\x33\xfc\x39\x9a\xd0\xb0\x9e\x0e\x77\x15\x71\x3b\xe9\x79\x24\x41\x3f\xb6\xc1\xb4\x0a\x29\x71\x89\xd2\xa1\x85\xda\x54\xab\xac\x44\xb3\x2a\x5a\xef\x27\xf0\xed\x12\x2d\xb2\xd1\x49\x0a\x6b\x51\x7b\xb5\x01\xbf\x36\xe0\x8a\x3c\x37\xd6\x63\xba\xbd\x0c\x9b\x92\x67\x7b\x61\xc5\xbc\x6e\xca\xc2\xcb\xea\xc7\xb6\x4e\x28\x65\xd6\x90\xa8\xc2\x79\xb4\x51\xab\x63\x61\x88\xf9\x9f\x99\x15\x96\x55\x9a\xe0\xae\xbb\x7c\x5f\xbe\x14\x0e\xeb\xaa\x81\x2b\x92\x04\x31\xc5\x34\x0c\x44\xd7\x8f\xf3\x39\x26\x5e\xae\x50\x6d\x20\x43\xc1\xe5\x37\xe1\x6b\x9c\xb4\xd9\x6f\x36\x03\x9a\x35\xfd\xb6\x30\xd3\xf8\xe0\xcb\xda\x15\x48\xae\x4d\xb5\x4b\x7a\xb6\xa4\xd4\x5e\xe8\x4b\xe1\x60\x2e\xa4\x22\x89\xdd\x4f\xbd\x5b\x4c\x96\xd7\x16\x57\x12\xd7\x1f\xb5\x13\x73\x7c\x2d\xa4\x7a\x6d\xec\x5a\xd8\xb4\x41\xd2\xcf\xa0\xe6\xde\x65\x2a\x0a\x1f\xa0\x26\x6d\xa8\x1a\x0b\x98\x47\x32\xef\x05\x7b\x59\xb9\x1c\xb5\x19\xd6\xd8\x2e\x50\x13\x3d\x89\x7c\xeb\x92\x5e\xd7\x8a\x98\xb2\x5e\xa2\xa6\x68\xac\x98\x55\x5a\x00\x16\xe7\x68\x51\xef\x96\xba\x22\x87\x4a\x3c\x1a\x80\x2a\x67\x9b\x08\x2f\x94\x59\x30\xa1\x67\x88\xba\x2c\x08\xc1\x5a\xfa\x25\x08\x46\xa0\x14\xe5\x79\x47\xd2\xc5\xa5\x28\x8a\x41\x89\x3c\xd1\x56\x35\x0a\xbc\xfb\xf9\xf6\x6f\x97\x1f\xde\x5d\xbd\xfb\x71\xca\xae\xbc\x8f\x89\xbb\x0a\x2b\x1d\x14\x3c\x8b\x77\x11\xca\x8e\x6e\xb7\x32\x12\x1e\xa9\xa1\xd0\xf8\x90\x63\x42\xbb\x9a\xe1\x52\xac\x24\x29\xbc\x8d\x45\xca\x15\x5a\x31\x53\x08\xa9\xf0\x02\x94\x71\x04\x5b\xa1\x73\xb0\x31\x05\x2c\xc5\x0a\x21\x45\xcc\xf7\xbb\x43\x9d\xa2\x75\x5e\xe8\x94\x36\x6e\xe6\x31\x17\x6c\xef\x1f\x66\x48\xa3\x65\xe1\xfb\x18\xf3\x72\xc0\x9e\x96\x15\xa3\x8e\x82\x10\x3d\xa8\x8b\x6c\xbf\xad\x1e\xf5\x7c\x45\xa3\x7d\x9c\x68\x97\xcf\xbc\xf0\xc5\x8e\x43\xe8\x29\xa0\xf1\xfc\xaa\x84\x16\x7e\xed\x2b\xa2\x7d\xf8\xfc\x1a\x5a\x77\x61\x61\x04\x4a\x38\xff\x31\xc8\xf4\x67\x54\xce\x12\xa3\x83\x62\x1e\xf6\xe9\x2f\xab\xa9\xdb\xc9\xe2\xbe\xd0\xa3\x06\xfc\xa4\x2e\xf8\xb8\x5c\xa2\x42\xb5\x0e\xab\x53\xf4\x42\xaa\xc0\x09\xa3\x11\x04\xc5\x87\xbe\xc4\x3e\x3a\x37\x66\x17\x56\x1d\x87\xcb\xeb\x2b\xe8\xe2\x52\x45\xf8\x51\x17\x12\xec\x6d\x9c\xb7\x45\xc2\x11\x8a\xd4\x1e\x35\x99\x4f\xc2\x20\x95\x96\xdb\x07\x8e\x10\xa9\x69\x19\xcb\x2c\x21\xbd\xc8\x85\x5f\xc2\x38\x08\xd0\xb8\x41\x4e\x80\xd7\xc6\x02\x3e\x88\x2c\x57\x38\xec\xb0\x3a\x00\xbf\x23\x1a\xc3\x6b\x63\xa2\x40\x06\x4c\x7e\xe9\x9a\x4d\xff\x4c\x26\xf0\xa1\x2e\x96\x70\x3a\x3e\xa3\xe0\x39\xd4\x4a\xb8\xe3\x02\x73\x63\x88\xbb\x4d\x7a\x75\x91\xa6\x84\xf9\x93\x36\x6b\xbd\x6f\x27\x8c\xa1\xb0\x38\x85\xc1\xe5\x4a\x48\x45\xf6\x69\x30\x84\xc1\xb5\x35\x0b\x4e\xbb\xf4\x22\xa6\x4b\x83\x57\xc8\xb6\x31\x1d\x1c\x58\xeb\x1f\x39\x21\x7f\x4b\xb9\xf9\x4f\xb8\xf9\x8e\x56\x38\xea\x8b\x32\x82\xfa\x8e\xd3\xfa\x43\x9f\x50\x70\x77\xbb\xc9\xf1\xbb\x4c\xec\xb7\x98\x5b\x73\xdf\x8a\xfc\x18\x6c\x1a\x1a\xf6\xe9\x2e\x43\x2f\x56\x17\xe3\x5a\x94\xff\xf4\x67\x67\xf4\x74\x50\xd3\x6f\x68\x32\xd2\x94\xdc\x6f\x06\xd0\xda\xc4\x74\xc0\xbb\x88\x6f\x4b\x62\x4c\x07\xb4\xfe\x80\xcc\x81\x37\xb3\x62\x3e\x1d\xcc\x36\x1e\xdd\xf0\x62\x68\x31\x1f\x92\xa1\xfe\xae\x86\x3d\xf8\x53\xb7\x60\xc5\x9d\x19\xbf\x44\x1b\x64\xb5\x2b\xd1\xfe\xdd\xaf\x3d\x71\x74\x4f\x8a\x7a\xa8\x80\x1a\xac\xdd\xad\x15\xda\x31\xba\xb7\x32\xeb\x22\xec\x08\x32\x74\x4e\x74\xf2\x74\x04\x16\x85\xdb\x9b\x13\x85\xe1\x20\xb6\x9d\xc3\x9d\x3c\x3d\x5c\x9d\xdd\xdd\xc3\x53\x14\xd3\x77\xa1\xd6\x05\x5d\xe7\xc1\xd3\x0b\x36\x79\x95\x60\xf9\x6a\x36\x59\x27\x8a\xe9\xc8\x40\x46\xcf\xc5\x75\x11\x66\x75\x5f\x95\x2b\xd8\xba\xd0\x6b\x9d\x61\x08\xde\x42\x8f\x3c\x45\xab\x36\x14\x18\xd4\xeb\x25\x4b\xa1\x17\x98\x8e\x21\x14\xfd\x04\x9b\x47\x4a\x66\xef\xc9\x50\x70\x35\x45\x43\xe1\xca\x96\x22\x63\x5c\x41\x24\x9b\x1c\xec\x63\x04\xc3\xce\x28\x49\x30\xf7\x64\x3e\x0e\x55\xee\x0f\x54\xce\xe6\xc6\x66\xc2\x4f\x29\x48\xc2\x91\xef\x96\xaa\x28\x53\x4f\xc1\xaf\x08\x2a\x54\xbc\x96\x45\x26\x28\xce\x15\x29\xc7\x6a\xd5\x98\x4e\x65\x22\x38\xec\x2c\xfd\x98\x98\x99\x22\x78\x8b\x9a\x7d\x07\x39\x44\x21\xe4\x0c\x39\xe5\x26\xb3\x11\xa9\xf1\x85\x34\xcb\xc4\xc3\x1b\xd4\x0b\xbf\x9c\xc2\x37\x2f\xfe\xe5\xdb\x3f\x74\x4c\x0c\xae\x04\xd3\x1f\x43\xc8\xbf\xe7\xc0\xc0\x63\xa8\xb7\x0b\xb5\x59\xef\x27\xf2\x8c\xcb\x86\xe9\x78\x51\xcf\xa9\x3a\x1a\xb5\x54\xae\x05\x57\x11\x60\x26\x1c\x67\xb5\xfd\xe4\x24\x17\xcc\x69\x86\x4e\x70\x48\xf9\xde\xde\x65\xa4\x6b\xa4\xcd\x17\x2f\x86\x30\x8b\x3c\xdb\x75\x86\x9f\x1e\xee\xc6\x7b\x36\x23\x1d\xfc\x71\xb8\x85\xa9\x74\x40\xbc\x37\x73\x16\xd3\x1e\x24\x39\xb5\xb1\x18\x22\x9d\x98\xa7\xee\x89\x74\xb0\xda\xc9\x21\x49\xa0\x18\x66\x81\xdd\x1d\xa9\x52\x7d\xa4\xf6\xdf\xfe\x53\xb7\xc0\x48\x2d\xb3\x22\x9b\xc2\xf3\x8e\x29\xc1\x22\x3f\x85\x78\x04\x48\x75\x14\x28\xc8\x2c\x2f\xac\xc8\x32\xae\xa5\xc9\x14\xb5\x97\x73\x89\xb6\xa9\x62\xa1\xd0\xc0\x1f\xce\xb9\x8b\xd8\x20\xfe\x57\x2e\x9a\xd1\xa3\x94\xee\xda\x9a\xb4\x48\xd0\x72\xec\x14\x0b\x92\x49\xd3\xf2\x6e\x72\x0c\x5a\x19\x0a\x37\x50\xe5\x6f\x65\x6d\x98\xf2\x3e\x14\x5a\xea\x85\x8b\xc8\x48\x17\xec\x5f\x5f\x1f\x84\x3e\x5b\x2f\x91\x1d\x74\xab\xd2\xcc\x3b\x71\x32\x45\x8b\x29\x08\x58\x14\xc2\x0a\xed\x11\x53\xb2\xab\xfd\xe6\x23\x42\x69\x58\x79\x51\x1f\x9c\x38\x68\x49\xa2\x01\x0a\x96\x9b\x36\x1c\x8f\x65\x84\xa6\xcc\x93\x19\xa0\x8b\xe7\x2f\x7a\xe5\xae\x9a\xd7\xdd\x54\x15\xde\xa3\xd5\x53\xf8\xcf\x4f\x97\xa3\x7f\x17\xa3\xbf\xde\x9d\xc5\x3f\x9e\x8f\xfe\xf8\x5f\xc3\xe9\xdd\xd7\x8d\x9f\x77\xe7\xdf\xff\x43\x07\xa4\xfd\x69\x63\xfd\xb4\x64\x38\xfa\xda\x32\x19\x29\xe5\x63\xc8\x8e\xd8\xcc\xe1\xd6\x16\x38\x84\xd7\x42\x39\x1c\xc2\x47\xcd\x7e\xf2\x0b\x89\xd6\x9d\x39\x87\x67\x04\x03\x5a\xb5\x2b\xde\x8e\x53\x18\xa5\xfe\x39\x11\xdd\xbe\x6e\xc5\x13\x28\x3a\xa7\x12\x66\xde\xb4\x92\x8d\x73\x3d\xc0\xd6\x9a\x72\x97\x71\xcc\x9b\xc6\x89\xc9\x26\x3d\xe7\x7e\x1a\x3b\xe8\x4c\xf0\xe8\x79\x2b\xf4\x06\x6a\x33\x1e\x52\x9a\x6d\x75\x73\x9e\x2c\xae\x48\xac\x71\xae\x3a\x3a\xe3\x40\xc9\x7b\x84\x2a\xf1\x09\xce\x61\x86\x89\xe0\xac\xd0\xce\xa4\xb7\xc2\x6e\x1a\x89\x34\x24\x42\x77\x75\x2c\xc2\x53\x38\x9c\x17\x0a\xce\x1c\x22\x8c\xb5\x49\x71\xd7\xcf\x9c\x07\x6f\x22\x66\x52\x49\xbf\x09\x4d\x8e\xc4\xe8\xb9\x92\x31\x4d\xcd\x72\x63\xbd\xd0\xbd\xed\xea\xd0\x95\x5a\xe0\x03\x48\x1f\x1a\x65\xa1\x96\x7f\x96\x6a\x77\x71\xf1\xe2\x9b\x9b\x62\x96\x9a\x4c\x48\xfd\x3a\xf3\x93\xf3\xef\xcf\xfe\x52\x08\xc5\xbd\x98\x77\x22\xc3\xd7\x99\x3f\x7f\xba\x88\xe3\xe2\xdb\x23\x54\xf9\xec\x53\x50\xd8\xbb\xb3\x4f\xa3\xf8\xd7\xd7\xe5\xab\xf3\xef\xcf\xfe\x63\xdc\x3b\x7e\xfe\x35\xed\xa1\x61\x06\xee\x3e\x8d\x6a\x1b\x30\xbe\xfb\xfa\xfc\xfb\xc6\xd8\xf9\xae\x45\x68\x94\x66\x0e\x56\x59\xde\xd4\x73\x43\x48\x48\x51\xa8\xf3\x22\xcb\x4b\xf3\xd0\x0e\xe3\xb7\xeb\x2e\xd1\x94\x50\x34\xf3\xb1\xeb\xc8\xdb\x41\x32\x1f\x0e\x83\xf5\xf1\xbd\xa0\x76\xbb\xa7\x51\x3a\xdc\x39\x67\x55\xb9\xdb\xd6\xa6\xfe\xb7\xb6\x70\xda\xad\xcc\x0f\x38\x3f\xe2\xf4\xd9\xd6\x17\x8d\x8a\x76\x24\x4c\xbb\x53\x19\x8f\x4e\x56\xad\xcc\xbf\xc1\x41\xb4\xee\xf3\xbb\x7b\xb7\x40\xe9\x57\xd9\xe5\x88\xf2\x18\xf7\xd0\x69\x30\x0e\xaa\x34\x07\x05\xd7\xc2\x2f\xbf\xf4\x00\xc1\x55\x24\x28\x9f\xe4\xe0\x63\x3d\xb9\xc4\x04\x5b\x47\x85\x39\xd6\x45\x91\xc6\x97\x14\xff\x59\x8c\x63\xc3\x10\x5e\x1d\xb0\x3e\xf5\x91\x62\x8a\x29\x41\x90\xb9\x97\x29\xfc\xeb\xcd\xfb\x77\x93\x1f\x4d\x0c\x71\x28\x23\x75\x41\x1b\xb9\x71\x3f\x04\x57\x24\x4b\x10\x8e\x36\x23\x2d\xa6\x37\x5c\x39\xcb\x84\x96\x73\x74\x7e\x1c\xa1\xa1\x75\x9f\x5e\xdc\x75\x9b\xde\x66\xe5\x8f\xb2\x8e\x50\xa3\x8b\xe7\x6b\xa3\x28\xb1\x96\xd1\xe6\x2b\x98\x9c\x08\x30\xaa\xb9\x49\xe3\x26\xd7\xbc\x09\x2f\xee\x11\x4c\xdc\x44\x81\xec\x92\xba\xdd\xf1\x80\x04\xb1\x81\xea\x2f\xa4\xba\xbf\x0e\xe0\x6c\xcd\x5d\xc2\x01\xfd\x1c\x04\x44\xaa\x73\xd5\xf4\xae\x11\xd8\x44\x84\x42\xfe\x65\xe5\x62\x41\x91\x68\xb7\x37\x58\x22\xe0\x0a\xb5\x3f\x67\x0f\x3e\x07\x6d\x1a\x40\x74\xec\xf9\xd7\x9d\xfe\x6d\x04\x3f\xbd\xb8\x1b\xc0\x59\x9b\x0e\x9d\x8b\x49\x9d\xe2\x03\xbc\xa8\x3a\xfc\xb9\x49\xcf\x63\xcf\xd0\x6d\xb4\x17\x0f\x9c\xce\x2d\x8d\x43\x1d\x1a\x97\xde\x84\xbe\x89\x33\x19\xc2\x1a\x95\x1a\x85\x28\x3e\x85\x35\xd7\xc5\x3b\x57\x2a\x59\x15\x0e\x1c\xe5\xc2\xfa\x03\xa7\xd9\xcb\xe7\xf6\xfd\xab\xf7\xd3\x80\x1d\x89\xd1\x42\x97\x95\x93\xb9\xd4\x42\xc5\x5e\x57\x15\x66\x13\xe2\x45\x10\x0e\x6f\x62\xb9\xa4\xec\xcb\xcc\x0b\x5f\xd8\xce\xb8\xe7\xa0\xca\xee\x3b\x42\x5e\x3e\xc7\x6a\x2b\x1f\x29\x3f\xd2\x86\xfc\x86\x07\xb1\x8f\xa6\x89\xee\x38\xcc\xf2\x39\x34\x79\xd7\xd0\x96\x47\xd1\xa4\x76\x5f\x44\x96\xd4\x24\x8e\x28\x92\x60\xee\xdd\xc4\xac\xc8\xbd\xe0\x7a\xb2\x36\xf6\x5e\xea\xc5\x88\xd4\x61\x14\x64\xce\x4d\xd8\x0d\x4f\x7e\xcf\xff\x7d\x09\x09\xd8\x95\x3f\x05\x1d\xc2\x65\x97\xdf\x90\x18\x1c\x93\x4c\x1e\x4b\x8b\x32\xce\xff\x1c\xef\xda\x43\x91\x9b\xb2\x7a\xb0\x05\x97\x54\x3b\x1c\x68\x8a\x97\x64\x1a\x5e\x20\x13\x69\x70\x13\x42\xf7\xe4\xd8\x7f\x63\xcd\x22\x8a\x73\xcd\x29\xd9\x8c\xe2\x8d\xb7\x91\xd0\xe9\xa8\xca\x8c\x92\xae\x63\x91\x07\x49\x5c\xc8\x2f\x36\x42\x1f\xaf\x5e\xfd\xb6\xfa\x56\xc8\xc7\x5a\x9c\x63\x0e\xde\x85\x7a\xe2\x14\xbc\x2d\xca\x18\xde\x79\x63\xc5\x02\xdb\xef\x8a\x59\x95\x96\xd6\x14\x8d\x25\x0c\xf8\x25\x74\x71\xea\xcb\x75\x42\xe5\x4b\xf1\xa2\xfc\xf6\x74\xc5\xae\xc1\xad\xd3\x15\xbb\xd3\x15\xbb\xd3\x15\xbb\xad\xe7\x74\xc5\xee\xef\x73\xc5\xee\x74\x45\xee\x74\x45\xee\x74\x45\xae\xf9\x9c\xae\xc8\xf5\x3d\xa7\x2b\x72\xa7\x2b\x72\xa7\x2b\x72\xa7\x2b\x72\x1d\x4b\x9d\xae\xc8\x9d\xae\xc8\x9d\xae\xc8\x6d\x21\x7b\xba\x22\xf7\xb8\xfe\xea\xff\xef\x6b\x14\xa7\x0e\xff\xff\x8d\x0e\xff\xa9\x67\x7f\xea\xd9\x9f\x7a\xf6\xa7\x9e\xfd\xa9\x67\xdf\x7e\x4e\x3d\xfb\xc7\xd3\xe4\xd4\xb3\xaf\xe9\x70\xea\xd9\x37\x9f\x53\xcf\x7e\xf7\x39\xf5\xec\xbf\xa4\x67\x3f\x17\xca\x1d\xdd\xb4\xff\x9f\x00\x00\x00\xff\xff\x57\x76\xcd\xab\xc0\x58\x00\x00") +var _operatorsCoreosCom_operatorgroupsYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x3b\x6d\x73\x1b\x37\x73\xdf\xfd\x2b\x76\x94\xce\x44\xf2\xf0\xc5\x76\x3a\x6e\xc2\x2f\x1e\x8d\x1d\x7b\xd4\x3a\x8a\xc6\x92\xd3\x99\xba\x6a\x07\xbc\x5b\xf2\x50\xdd\x01\x57\x00\x47\x8a\x49\xf3\xdf\x3b\xbb\xc0\x1d\xef\xc8\x7b\xa1\x64\x25\x79\x9e\x67\x88\x2f\x12\x0f\xc0\x62\xb1\xef\xbb\x00\x44\x2e\x7f\x41\x63\xa5\x56\x33\x10\xb9\xc4\x7b\x87\x8a\x7e\xd9\xc9\xdd\xf7\x76\x22\xf5\x74\xf5\xf2\xd9\x9d\x54\xf1\x0c\xde\x16\xd6\xe9\xec\x13\x5a\x5d\x98\x08\xdf\xe1\x42\x2a\xe9\xa4\x56\xcf\x32\x74\x22\x16\x4e\xcc\x9e\x01\x08\xa5\xb4\x13\xf4\xd9\xd2\x4f\x80\x48\x2b\x67\x74\x9a\xa2\x19\x2f\x51\x4d\xee\x8a\x39\xce\x0b\x99\xc6\x68\x18\x78\xb9\xf4\xea\xc5\xe4\xe5\xeb\xc9\xcb\x67\x00\x4a\x64\x38\x03\x9d\xa3\x11\x4e\x9b\xa5\xd1\x45\x6e\x27\xe5\x4f\x3b\x89\xb4\x41\x4d\x7f\xb2\x67\x36\xc7\x88\x16\xe1\x31\xdb\x29\x8d\x31\x1e\x5e\x89\x8b\x70\xb8\xd4\x46\x96\xbf\x01\xc6\xa0\xd3\x8c\xff\xf7\x7b\xfc\x39\xc0\xf8\x40\x20\xf9\x7b\x2a\xad\xfb\xb7\xfd\xbe\x8f\xd2\x3a\xee\xcf\xd3\xc2\x88\x74\x17\x61\xee\xb2\x89\x36\xee\x72\xbb\x3c\x2f\xb7\xf4\x5d\x52\x2d\x8b\x54\x98\x9d\x79\xcf\x00\x6c\xa4\x73\x9c\x01\x4f\xcb\x45\x84\xf1\x33\x80\x40\xa5\x00\x66\x1c\x48\xb4\x7a\x19\xa0\xda\x28\xc1\x4c\x94\x6b\x00\x81\x54\xe7\x57\x17\xbf\x7c\x77\xbd\xd3\x01\x10\xa3\x8d\x8c\xcc\x1d\xd3\xfc\xff\xc6\xb5\x1e\x68\xee\x0f\xa4\x05\x97\x20\x14\x4a\x3a\xd0\x0b\xc8\x8a\xd4\x49\x87\x4a\xa8\x68\x03\x0b\x6d\xe0\xe7\x8f\x3f\x41\x26\x94\x58\x62\x5c\xa3\x7c\x03\xe0\x85\x23\xee\x5b\x67\x84\x54\x1e\x9a\x54\xd6\x89\x34\x65\xf9\x20\xa8\xd5\x44\x90\x0a\xa4\xb3\x9e\x59\xb4\x6d\x70\x1a\x04\x10\x87\xe5\x42\x62\x0c\x16\x19\x0d\x27\xcc\x12\xdd\x76\x58\x63\x45\xb7\x21\xca\xe9\xf9\xff\x60\xe4\x6a\x9f\x0d\xfe\x6f\x21\x0d\xc6\xb3\x06\x72\x63\x28\xc5\xb6\xf6\x39\x37\x84\x91\xab\x09\x88\x6f\x35\x25\x69\x7c\xef\x27\x28\x35\xe2\x83\x9f\x09\x31\x69\x0c\x7a\x42\x04\x8e\xd2\xc6\x98\x47\xbc\xb7\x44\x5a\x30\x98\x1b\xb4\xa8\x5c\x45\x23\xa1\xc2\x96\x26\x7b\xc0\xaf\xd1\x10\x20\x12\xb4\x22\x8d\x89\xd8\x2b\x34\x0e\x0c\x46\x7a\xa9\xe4\xaf\x15\x74\x4b\xd4\xa4\x65\x53\xe1\xd0\x3a\x90\xca\xa1\x51\x22\x85\x95\x48\x0b\x1c\x81\x50\xf1\x1e\xec\x4c\x6c\xc0\x20\xad\x0b\x85\xaa\x41\xe4\x29\x76\x1f\x97\x9f\xb4\x21\xfe\x2e\xf4\x0c\x12\xe7\x72\x3b\x9b\x4e\x97\xd2\x95\x46\x24\xd2\x59\x46\xa2\xb4\x99\xb2\x3d\x90\xf3\x82\xb8\x3e\x8d\x71\x85\xe9\xd4\xca\xe5\x58\x98\x28\x91\x0e\x23\x57\x18\x9c\x8a\x5c\x8e\x79\x33\x8a\x0d\xc9\x24\x8b\xbf\x31\xc1\xec\xd8\x9d\x85\x3d\xcf\xad\x33\x52\x2d\x1b\x5d\xac\xcf\x0f\x64\x16\xe9\x39\x09\xbe\x08\x00\xfd\x66\xb7\x3c\xa1\x4f\x44\xc6\x4f\x3f\x5e\xdf\x40\x89\x91\xe7\x9b\x67\xd1\x76\x68\x0b\x85\x4a\x6e\x11\x65\xa5\x5a\xa0\xf1\x33\x17\x46\x67\x0c\x15\x55\x9c\x6b\xa9\x1c\xff\x88\x52\x89\xca\x81\x2d\xe6\x19\xe9\x05\xc9\x30\x5a\x47\x8c\xdc\x07\xfc\x96\x8d\x2e\xcc\x11\x8a\x3c\x16\x0e\xe3\xfd\x21\x17\x0a\xde\x8a\x0c\xd3\xb7\xc2\xe2\x9f\xce\x3b\xe2\x91\x1d\x13\x43\x0e\xe6\x5e\xdd\xa5\xec\x4f\xd8\x53\x71\x80\xd2\x17\x74\xb2\xbb\x61\xdd\xae\x73\x8c\x4a\x0b\x47\x33\xd9\xa2\x09\xb5\x63\x02\x4b\x0e\xef\x12\xac\x13\x09\x5a\x72\x21\x8a\xd4\xed\x62\x02\x50\xe4\x4b\x23\x62\xbc\x76\x86\x7c\xd0\x66\x06\xef\xfc\xc8\x9d\x81\x5d\x06\x88\xb7\x88\x29\x46\x4e\x9b\xfd\x9e\x9d\xad\x5e\x87\x81\x61\x86\xdf\x66\x63\x6b\xdf\xda\x7e\x4b\x7a\xc0\x4e\x87\xb0\x05\xb6\x21\x2e\x4a\x7e\xbc\x27\x95\xa8\xf9\xaf\x01\xec\x77\x27\x79\x85\x24\x37\x4c\xd6\x30\x15\x73\x4c\x2b\x52\x94\xb6\x3d\x63\x8d\x83\x9b\x04\x1b\x5f\x40\x18\x84\xf3\xcb\x77\x6d\x1a\x51\xdf\xa0\x30\x46\x6c\x3a\x46\x48\x87\x59\x27\xe2\xc3\x26\x65\xdb\xce\x7b\x70\x0f\x46\xa7\xec\x71\x89\x60\xd7\xe9\xd8\x71\x7a\x8b\x3b\x02\x01\x77\xb8\x61\x63\xcd\x3e\x21\xf0\x93\x07\xf7\x2c\x6b\x90\x8d\x3e\xcb\xc0\x1d\x6e\x78\x7a\x97\x0d\x6f\x52\xa5\x93\xed\x25\xe0\x36\xb7\xda\x6c\x63\x5a\xb2\xb7\xbf\xdc\x46\xe7\xa0\x21\x19\xf3\xed\x0e\x37\x7d\xdd\x3b\x7c\x22\x3a\x04\xed\xf7\x3c\xa1\x0f\x4c\x74\x36\x08\x25\x1b\x44\x9e\xa7\x12\xdb\x6d\x6e\xbd\x75\x5a\xb1\x66\x2b\xb7\xfa\x00\x44\x7b\x05\xaa\x0e\xb3\xe6\x78\xbc\x9c\x7c\x6b\x3d\xe7\x49\x83\x12\x99\x87\x70\xca\x07\x51\x43\xec\xf7\xed\x17\x91\xca\x5a\x68\xc7\xba\x74\xa1\x46\x70\xa9\x1d\xfd\xf9\xf1\x5e\x92\x3f\x22\x71\x7a\xa7\xd1\x5e\x6a\xc7\x5f\x9e\x84\x52\x1e\xc1\xa7\xa4\x93\x87\xc8\x6a\xa6\xbc\xba\x13\x21\xea\x5e\xde\x4e\xe0\x62\xc1\xfc\xaf\x68\x2a\x2d\xf9\x4d\x6d\xc2\x96\x07\x96\xe0\xb0\xce\x2f\xe3\x17\xc8\x0a\xcb\x4e\x59\x69\x35\xc6\x2c\x77\x9b\xd6\x15\x02\x1d\xb5\x69\x90\xf1\xd1\x8b\x85\x85\x6e\x28\xb2\xf0\x3d\x3e\xa8\x4c\x29\x95\x80\xb8\xe0\x0d\x73\x7c\x43\x7e\x48\x46\x03\xeb\x64\x68\x96\x08\x39\x99\xe4\x43\x38\xdb\x67\x48\x7d\x1b\x30\xa7\x75\x60\x83\x62\x02\x70\x3f\xa6\x7c\xd2\x28\x74\x68\xc7\xe4\x22\xc6\x01\x0f\xa7\xb3\xce\xbd\x3d\x62\x12\xfb\xa4\x8f\x64\x2a\x0e\xf3\x61\x3d\xf2\x58\x03\xe5\xad\x7e\x26\x72\x92\xc5\xdf\xc8\xb8\x33\x4b\x7f\x87\x5c\x48\x63\x27\x70\xce\x69\x62\x8a\x8d\x3e\xa9\x98\xf9\x35\x30\x3d\x4b\x71\x1a\x47\x76\x7a\x25\x52\x72\x33\x64\x05\x14\x60\xea\x9d\x0e\xa5\x75\x3b\xce\x76\x04\xeb\x44\x5b\xef\x29\x16\x12\x53\x0e\x87\x4f\xee\x70\x73\x32\xa2\x65\x3b\x97\xaa\x4b\xf4\xc9\x85\x3a\xf1\x6e\x6a\x4f\x4a\x2b\x9f\xa6\x55\xba\x81\x13\xee\x3b\x79\xbc\xdf\xee\xf5\x50\x22\x8e\xb9\x3c\x21\xd2\xab\x03\x5c\xc8\x80\xc8\x35\x64\x26\x13\x79\xbf\xc8\x58\x34\x2b\x19\xe1\x79\x14\xe9\x42\x71\x05\x60\x30\x66\xeb\x90\x98\xeb\x3d\x48\xa5\xe3\x12\x71\x26\x55\x23\x41\xe6\x91\x20\xfc\x50\x58\x27\x32\x4a\x60\x2d\xd3\x14\xe6\xed\x7c\x2b\x2c\xc6\x24\x11\x31\xe6\xa9\xde\x54\x2c\x3c\xb5\x67\x5e\xc8\x28\xab\x29\xd9\xca\xd5\x89\xee\x08\xb1\x83\x6e\x96\xb2\xd8\xe8\xca\xe8\x95\x8c\x31\x3e\xbf\xba\x68\x65\x40\x33\x76\xe5\x29\xe0\x30\x4d\x2d\xd7\x18\x28\xb3\x71\x3a\x64\x36\xad\x91\x6c\x5e\x83\x5f\xab\x3f\x75\x22\x3b\xd7\x3a\x45\xb1\xdf\xef\x23\xe2\xaa\xf0\x32\x8c\x6b\x07\xcf\x6e\x76\xe0\x04\xaf\x83\xf7\x79\x2a\x23\xe9\x4a\x2f\xbc\x8d\xbc\x39\x3b\xe7\x49\xed\xe2\x7e\xb1\x00\xc9\x21\xa2\x45\x37\xda\x46\xf7\xd2\x82\x5c\x2a\x6d\xda\xb5\xa4\xdf\x20\xf7\x98\xe1\x87\x68\x42\xcd\x7a\x5a\xdc\x57\xc4\xdd\xa4\xe7\x91\x04\xfd\xdc\x04\xd3\x28\xa4\x84\x25\x4a\x87\xe6\x6b\x53\x8d\xb2\x12\x8d\xaa\x68\xdd\x4e\xe0\x9b\x04\x0d\xb2\xd1\x89\x0a\x63\x50\xb9\x74\x03\x6e\xad\xc1\x16\x79\xae\x8d\xc3\x78\x77\x19\x36\x25\xad\xa0\x42\x5a\x37\x63\xd9\x65\xed\x63\x53\x27\xd2\x54\xaf\x21\x4a\x0b\xeb\xd0\x04\xa5\x0e\x75\x21\x66\x7f\xa6\x57\x58\x16\x69\xbc\xb7\xee\x72\x7d\x79\x22\x2c\x6e\x8b\x06\xb6\x88\x22\xc4\x18\x63\xdf\x11\x3c\x3f\x2e\x16\x18\x39\xb9\xc2\x74\x03\x19\x0a\xae\xbe\x09\xb7\xc5\x49\xe9\x76\xab\xe9\xd1\xdc\x92\x6f\x07\x33\x85\xf7\xae\x2c\x5d\x81\xe4\xd2\x54\xb3\xa2\x67\x4a\x42\xb5\x42\x4f\x84\x85\x85\x90\x29\x09\x6c\x3b\x1f\x30\x4a\xae\x0c\xae\x24\xae\x3f\x2b\x2b\x16\xf8\x5e\xc8\xf4\xbd\x36\x6b\x61\xe2\x1a\x45\x1f\x40\xcc\xd6\x65\x2a\x02\x0f\x10\x93\xf6\x53\xf5\x79\xc4\x03\x95\x5b\xc1\x9e\x57\x0e\x27\xdd\x8c\xb6\xd8\x2e\x51\x11\x39\x89\x7a\xeb\x92\x5c\x57\x29\xf1\x64\x9d\xa0\xa2\x58\xac\x98\x57\x3a\x00\x06\x17\x68\x50\xed\x17\xba\x02\x83\x4a\x3c\x6a\x80\x2a\x57\x1b\x09\x27\x52\xbd\x64\x3a\xcf\x11\x55\x59\x0e\x82\xb5\x74\x09\x08\x46\xa0\x14\xe4\x45\x47\xca\xc5\x85\x28\x8a\x40\x89\x3c\xc1\x52\xd5\xca\xbb\xad\x73\xfe\xfd\xfc\xd3\xe5\xc5\xe5\x87\x19\xfb\xf1\x3e\x1e\xee\x6b\xab\xb4\x50\xf0\x28\xde\x84\xaf\x39\xda\xfd\xb2\x88\x6f\x52\x41\xa1\xf0\x3e\xc7\x88\x36\x35\xc7\x44\xac\x24\x69\xbb\x09\x15\xca\x15\x1a\x31\x4f\x11\x62\xe1\x04\xa4\xda\x12\xec\x14\xad\x85\x8d\x2e\x20\x11\x2b\x84\x18\x31\x6f\xf7\x85\x2a\x46\x63\x9d\x50\x31\xed\x5b\x2f\x42\x22\xd8\xdc\x3e\xcc\x91\x7a\xcb\xaa\xf7\x21\xb6\x65\xc0\x98\x96\xe5\xa2\x8e\x6a\x10\x35\x54\x45\xd6\x6e\xa8\xc7\x3d\xb3\xa8\xb7\x8f\x13\xcd\xda\x99\x13\xae\xd8\xf3\x06\x3d\xd5\x33\x1e\x5f\xd5\xcf\xfc\xaf\xb6\x0a\xda\xa7\x87\x17\xd0\xba\xab\x0a\x63\x48\x85\x75\x9f\xbd\x48\x3f\xa0\x6c\x16\x69\xe5\xf5\x72\xd8\xa1\xbf\xad\x86\xee\x66\x8a\x6d\x71\xc7\x16\xf0\x93\xfa\xdf\x76\x8c\xb6\xa1\x73\x8c\x4e\xc8\xd4\x13\x5c\x2b\x04\x41\x31\xa0\x2b\x91\x0c\x0e\x8c\xb9\x82\xd5\xa9\xc2\xf9\xd5\x05\x74\x31\x63\x90\x25\xbe\x0d\x95\x7b\x3c\x7b\x6e\x8c\x50\x96\x11\xbe\x91\x59\x57\xba\x30\x86\x0c\xad\x15\xcb\xee\x7e\x83\xc2\xb6\x46\x70\xbe\xdb\x8b\x5c\x67\x37\xed\xa5\xdd\x77\x0e\x26\x02\xfb\x7b\x78\x8a\xd2\xdf\x3e\xd4\x6d\xf9\xc9\x3a\x70\xf4\x81\x99\x57\x71\xdb\x55\xa3\x31\xf6\x3e\x88\x58\x1d\x54\x8d\xb3\x38\xed\x12\x34\x7d\x39\x39\x07\x02\xe1\x64\x68\x8e\xde\xd9\xf8\x13\xbd\x18\x4d\xba\x21\x4b\xb6\x5d\x2f\x4a\x84\x5a\x62\x3c\x01\x5f\xa2\x10\x1c\x6e\x52\xe8\x7d\xa7\xf4\x5a\x71\xee\xa7\xa0\xb0\xe5\x01\x08\x63\x5c\x41\x24\xe9\xf2\xc9\x62\x00\xc3\xda\x13\x45\x98\x3b\xb2\xc7\x43\x75\xc6\x81\x3c\x7f\xa1\x4d\x26\xdc\x8c\xac\x3a\x8e\x5d\xb7\x54\x05\x99\x7a\x0a\x7e\x05\x50\x3e\x3f\x4f\x8a\x4c\x90\x5f\x16\x31\x3b\x97\xaa\x4f\xc5\x32\x12\xec\x26\x4b\x8d\x14\x73\x5d\xf8\x12\xe2\x96\x7d\x83\x1c\x22\x9f\x37\x47\x4e\x10\xb2\xdc\x6d\x02\x35\xbe\x92\x66\x99\xb8\xff\x88\x6a\xe9\x92\x19\x7c\xf7\xea\x5f\x5e\x7f\xdf\x31\x50\xcf\x29\x6b\xc4\xf8\x83\x0f\x51\x5a\x8e\x37\x1f\x43\xbd\x7d\xa8\xf5\xea\x24\x91\x67\x52\x1e\xef\x4c\x96\xdb\x31\x55\xfd\x75\x2b\x95\x6b\xc1\x39\x0f\xcc\x85\xe5\x18\xbc\x9f\x9c\xef\x29\x27\xa2\xb0\x48\x45\x38\xa2\xf0\xb4\x75\x19\x69\x6b\x41\xfe\xcb\x57\x23\x98\x07\x9e\x4d\xbc\x76\x4d\xb6\x66\xfd\xcb\xfd\xed\xa4\x65\x33\xd2\xc2\x0f\xa3\x1d\x4c\x29\x57\x2e\xd8\x08\x93\x98\xf6\x20\xc9\xa1\x98\x41\x6f\xb3\x43\x58\xdd\x62\xb3\xb1\xda\xc9\x90\x24\x48\xe5\x70\x89\xdd\xf5\xf3\x52\x7d\xa4\x72\xaf\xff\xb9\x5b\x60\xa4\x92\x59\x91\xcd\xe0\x45\xc7\x10\x6f\x91\x9f\x42\x3c\x3c\xa4\xad\x3f\x13\x64\x96\x97\x46\x64\x19\x67\xfe\x32\x46\xe5\xe4\x42\xa2\xa9\xab\x98\xcf\x8b\x78\xe2\x82\xcf\x3c\x6a\xc4\xff\xd6\x06\x33\x7a\x90\xd2\x5d\x19\x1d\x17\x11\x1a\xcb\x05\x60\x5f\x3e\x89\xea\x96\x77\x93\xa3\xd7\x4a\x9f\x66\x42\x15\x70\x96\x95\x2c\x0a\x54\x51\x28\xa9\x96\x36\x20\x23\xad\xb7\x7f\x7d\x55\x5b\x9a\xb6\x4e\x90\xac\x76\xb3\x2e\xc6\x3b\xb1\x32\x46\x83\x31\x08\x58\x16\xc2\x08\xe5\x10\x63\xb2\xab\xfd\xe6\x23\x40\xa9\x59\x79\xb1\x3d\xe6\x1d\xb4\x24\xc1\x00\x79\xcb\x4d\x1b\x0e\x87\xc8\xbe\x84\xfc\x64\x06\xe8\xe5\x8b\x57\xbd\x72\x57\x8d\xeb\x3e\x02\x12\xce\xa1\x51\x33\xf8\xaf\x2f\xe7\xe3\xff\x10\xe3\x5f\x6f\x4f\xc3\x3f\x2f\xc6\x3f\xfc\xf7\x68\x76\xfb\xbc\xf6\xf3\xf6\xec\xcd\x3f\x75\x40\x6a\x8f\x73\xb7\xad\x21\xc3\xc1\xd7\x96\x61\x55\x29\x1f\x23\x76\xc4\x7a\x01\x37\xa6\xc0\x11\xbc\x17\xa9\xc5\x11\x7c\x56\xec\x27\xbf\x92\x68\xdd\xa1\xbe\x6f\x63\x38\xa1\x55\x4f\xfa\x87\x30\x4a\xfd\x63\x02\xba\x7d\xb5\xd5\xc3\x88\x44\x43\x89\x18\x35\x43\x58\xbb\x68\x00\x6c\x90\x61\xa1\xf5\x04\xef\x45\x96\xa7\x38\x89\x74\x36\xed\xb9\x88\xd0\x40\xe1\x21\x4e\xee\xe5\xeb\x03\xa4\xe7\xf4\x8b\x97\x91\xdb\xd3\x2f\xe3\xf0\xdf\xf3\xf2\xd3\xd9\x9b\xd3\xff\x9c\xf4\xf6\x9f\x3d\x9f\x9e\xbd\x39\xad\x49\xde\xed\x97\xf1\x56\xec\x26\xb7\xcf\xcf\xde\xd4\xfa\xce\xf6\x85\xb0\x96\xbe\x0c\x66\x22\x1f\xb7\x63\x7d\x14\x42\x81\x8f\x75\x22\xcb\x4b\x89\x6c\x46\x8e\xbb\xb9\x49\x90\x5e\x72\xa0\x9f\xbb\xee\x84\x0c\x92\x79\x38\xf2\x52\x87\x17\x4b\x9b\xf5\xd0\x5a\x7a\xbd\x77\x11\xa1\xb2\xf0\x8d\x4d\xfd\xad\xd6\x38\x9b\xb5\xfe\x4f\xb8\x38\xe0\x7a\xc6\xce\x8c\x5a\xd1\x27\x10\xa6\x59\xca\x0f\x77\x8b\xaa\x5a\xff\x1f\x70\x53\xa3\xfb\x82\x5b\xeb\x16\x28\xe2\x2f\xeb\x80\x41\x1e\xc3\x1e\x3a\x0f\x80\x07\x55\x9a\xfd\xd0\x95\x70\xc9\xd7\x9e\xb0\x5d\x04\x82\xf2\x51\x27\x9f\x7b\xe7\x12\x23\x6c\xdc\xa5\xe3\xf0\x0a\x45\x1c\x3e\x52\xc8\x61\x30\xf4\x8d\xbc\x47\x1f\xb0\x3e\xdb\x3b\x77\x14\xc6\x80\x20\x57\x2c\x63\xf8\xd7\xeb\x9f\x2f\xa7\x1f\x74\xf0\xaa\x94\x04\x59\xaf\x8d\x7c\xb2\x35\x02\x5b\x44\x09\x08\xca\xe2\x2d\x65\xd3\xd7\xd4\x33\xc9\x84\x92\x0b\xb4\x6e\x12\xa0\xa1\xb1\x5f\x5e\xdd\x76\x9b\x47\x8a\x74\x83\x45\xe5\x40\x97\xcf\x94\xcb\x0b\x68\x41\x94\x58\xcb\x68\xf3\x15\x4c\x8e\x3d\x19\xd5\x5c\xc7\x61\x93\x6b\xde\x84\x13\x77\x08\x3a\x6c\xa2\x40\x48\xe5\x5d\x8f\x07\x38\x21\x41\xac\xa1\xfa\x1b\xa9\xee\xef\x27\x70\xba\xe6\x32\xfa\x09\xfd\x3c\xf1\x88\x54\x17\x0f\xe9\x5b\xcd\x97\x06\x84\x7c\xc8\x6f\xe4\x72\x49\xc1\x4f\xb7\x37\x48\x10\x70\x85\xca\x9d\xb1\x47\x59\x80\xd2\x35\x20\x2a\x1c\x8a\x6d\x8f\xc2\x76\x11\xfc\xf2\xea\xf6\x04\x4e\x9b\x74\xe8\x5c\x4c\xaa\x18\xef\xe1\x55\x75\x04\x96\xeb\xf8\x2c\x54\xd5\xed\x46\x39\x71\xcf\x19\x44\xa2\x2d\x2a\x5f\xda\x77\xda\xd7\x16\xad\xa6\x9c\x18\xd3\x74\xec\x03\xc7\x18\xd6\x5c\x3b\xea\x5c\xa9\x64\x95\x3f\x91\xcf\x85\x71\x03\xd7\x3d\x03\x35\x86\x14\xa9\xed\xe6\x63\xd9\x0e\xd5\x21\xbe\x09\x79\xa0\x66\xff\x85\xf7\x07\x0f\xa6\x89\xea\x38\x83\x7d\x08\x4d\x2e\x6b\x32\xfc\x28\x9a\x6c\x9d\x0a\x91\x25\xd6\x91\x25\x8a\x44\x98\x3b\x3b\xd5\x2b\x32\xfa\xb8\x9e\xae\xb5\xb9\x93\x6a\x39\x26\x21\x1d\x7b\x49\xb0\x53\x76\x8e\xd3\x6f\xf8\xcf\xd7\x90\x80\x1d\xec\x53\xd0\xc1\xdf\xd1\xfe\x0b\x89\xc1\x91\xc2\xf4\xb1\xb4\x28\x6f\x76\x3e\xc4\xe7\xf5\x50\xe4\xba\x4c\x23\x77\xe0\x92\x6d\xf0\xe7\xf0\xe1\x6e\x77\xcd\x36\x67\x22\xf6\xc6\x5b\xa8\x9e\x64\xeb\x0f\xd6\x2c\xa2\x38\x17\x1f\xa2\xcd\x38\x3c\xd4\x18\x0b\x15\x8f\x39\x23\xb5\x8e\xbe\x3f\x96\xc4\x85\xfc\x6a\x23\xf4\xf9\xe2\xdd\x5f\xab\x6f\x85\x7c\xac\xc5\x39\xe4\xbe\x88\x2f\x2c\xcd\xc0\x99\xa2\x8c\xac\xad\xd3\x46\x2c\xb1\xf9\xad\x98\x57\x97\xdf\xb7\x14\x0d\xb9\x2c\xfc\xf6\x3b\x7f\xda\xbe\x09\x11\x69\x9e\x88\x57\xe5\xdc\xe3\xcb\x90\x1a\xb7\x8e\x2f\x43\x8e\x2f\x43\x8e\x2f\x43\x76\xda\xf1\x65\xc8\x9f\xf3\x32\xe4\xf8\xb2\xe3\xf8\xb2\xe3\xf8\xb2\xa3\xde\x8e\x2f\x3b\xfa\xda\xf1\x65\xc7\xf1\x65\xc7\xf1\x65\xc7\xf1\x65\x47\xc7\x52\xc7\x97\x1d\xc7\x97\x1d\xc7\x97\x1d\x3b\xc8\x1e\x5f\x76\x3c\xee\xd4\xf3\x1f\xfb\x02\xf0\xf1\xdc\xfd\xef\xe3\xdc\xfd\x78\x92\x7e\x3c\x49\x3f\x9e\xa4\x1f\x4f\xd2\x8f\x27\xe9\xc7\x93\xf4\x01\x9a\x1c\x4f\xd2\x8f\x27\xe9\xc7\x93\xf4\xe3\x49\x7a\x18\xdf\x77\x92\xbe\x10\xa9\x3d\xf8\x28\xfd\xff\x03\x00\x00\xff\xff\x63\xea\xe3\x68\x0d\x53\x00\x00") func operatorsCoreosCom_operatorgroupsYamlBytes() ([]byte, error) { return bindataRead( @@ -205,7 +205,7 @@ func operatorsCoreosCom_operatorgroupsYaml() (*asset, error) { return a, nil } -var _operatorsCoreosCom_operatorsYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xc4\x1a\xdb\x8e\xdb\xb8\xf5\x7d\xbe\xe2\xc0\x79\xc8\x2e\xe0\xcb\x26\x45\x81\xc2\x6f\x83\x49\xb6\x98\x76\x3b\x09\x32\x93\xbc\x2c\xf6\xe1\x58\x3a\xb6\x58\x4b\xa4\x96\x87\xb2\xc7\x4d\xf3\xef\xc5\x21\x29\x5b\xf2\x4d\xf2\xc6\xdb\xe1\x8b\x6d\x5e\xce\xfd\x4a\x1a\x4b\xf5\x85\x2c\x2b\xa3\xa7\x80\xa5\xa2\x67\x47\x5a\x7e\xf1\x78\xf9\x37\x1e\x2b\x33\x59\xbd\xb9\x59\x2a\x9d\x4e\xe1\xae\x62\x67\x8a\x4f\xc4\xa6\xb2\x09\xbd\xa3\xb9\xd2\xca\x29\xa3\x6f\x0a\x72\x98\xa2\xc3\xe9\x0d\x00\x6a\x6d\x1c\xca\x34\xcb\x4f\x80\xc4\x68\x67\x4d\x9e\x93\x1d\x2d\x48\x8f\x97\xd5\x8c\x66\x95\xca\x53\xb2\x1e\x78\x8d\x7a\xf5\xd3\xf8\xcd\x5f\xc7\x3f\xdd\x00\x68\x2c\x68\x0a\xa6\x24\x8b\xce\x58\x1e\xef\xbe\x25\xc6\x92\x91\x8f\xe2\x86\x4b\x4a\x04\xfe\xc2\x9a\xaa\x6c\xee\x6e\xec\x09\xa0\x6a\x32\xd0\xd1\xc2\x58\x55\xff\x06\x18\x81\xc9\x0b\xff\x3d\xb0\xf7\x21\xc2\xf0\x53\xb9\x62\xf7\xcf\xd6\xf4\x2f\x8a\x9d\x5f\x2a\xf3\xca\x62\xde\xc0\xe9\x67\x59\xe9\x45\x95\xa3\xdd\xcd\xdf\x00\x70\x62\x4a\x9a\xc2\x5d\x5e\xb1\x23\x99\x88\xec\x46\x1a\x46\x91\xd7\xd5\x9b\x48\x12\x27\x19\x15\x58\x13\x08\x02\x4a\xdf\x7e\xbc\xff\xf2\x97\xc7\xbd\x05\x80\x94\x38\xb1\xaa\x74\x5e\x78\x35\x8d\x60\xa9\xb4\xc4\xa4\x1d\x03\x42\x12\xd0\x6e\x09\x1a\x37\x8e\xbb\x8d\x10\x66\x66\xff\xa6\xc4\x35\xa6\x4b\x2b\x9b\x5d\x43\x4a\x61\x34\x8c\xa4\x35\xbf\x47\xc7\x7f\x47\x7b\xab\x00\x42\x7e\x38\x09\xa9\x58\x0c\x31\xb8\x8c\x6a\x41\x50\x1a\x79\x06\x33\x07\x97\x29\xde\x71\xe0\x6d\x48\xa6\x51\x47\x3a\xc7\x07\xc0\x1f\xc9\x0a\x20\xe0\xcc\x54\x79\x2a\xa6\xb6\x22\xeb\xc0\x52\x62\x16\x5a\xfd\x67\x0b\x9d\xc1\x19\x8f\x36\x47\x47\xec\x40\x69\x47\x56\x63\x0e\x2b\xcc\x2b\x1a\x02\xea\xf4\x00\x76\x81\x1b\xb0\x24\x78\xa1\xd2\x0d\x88\xfe\x08\x1f\xd2\xf2\x2f\x63\x09\x94\x9e\x9b\x29\x64\xce\x95\x3c\x9d\x4c\x16\xca\xd5\x4e\x94\x98\xa2\xa8\xb4\x72\x9b\x89\xf7\x07\x35\xab\xc4\x72\x26\x29\xad\x28\x9f\xb0\x5a\x8c\xd0\x26\x99\x72\x94\xb8\xca\xd2\x04\x4b\x35\xf2\xcc\x68\xef\x48\xe3\x22\x7d\x65\xa3\xdb\xf1\x1e\xe2\xa0\x48\x76\x56\xe9\x45\x6b\xc9\x1b\xf5\x85\xca\x12\x8b\x07\x25\xb6\x13\x00\x06\x66\x77\x3a\x91\x29\x11\xe3\xa7\xf7\x8f\x4f\x50\x53\x14\xf4\x16\x54\xd4\x30\xc0\xd3\xda\x12\xc9\x2a\x3d\x27\x1b\x4e\xce\xad\x29\x3c\x54\xd2\x69\x69\x94\x76\xfe\x47\x92\x2b\xd2\x0e\xb8\x9a\x15\xca\x89\x59\xfc\x5e\x11\x3b\x51\xe4\x21\xe0\x3b\x1f\x74\x60\x46\x50\x95\x29\x3a\x4a\x0f\xb7\xdc\x6b\xb8\xc3\x82\xf2\x3b\x64\xfa\xbf\xeb\x4e\x74\xc4\x23\x51\x48\x6f\xed\x35\x43\xea\xe1\x81\x03\xbf\x05\xa8\x03\xe2\x49\x75\xd7\x31\xe2\xb1\xa4\xa4\xe5\x8a\x29\xb1\xb2\xe2\x2a\x0e\x1d\x89\xc3\xb5\x02\x61\x1f\xd4\x0e\x5d\xc5\xfd\x90\xfb\xad\x2d\xf4\x66\xc6\x62\x17\x0d\xfc\xa8\x77\x01\x0d\xc5\x20\x1d\x43\x62\x8a\xd2\x68\xb1\xab\xbe\x54\x9d\x0e\x66\xe0\xb3\x52\x0d\xef\x70\x6d\x8f\xf6\xbb\xed\xd6\x38\x3f\x23\xde\x1a\xbf\xf0\x80\x2e\x80\x63\x0a\x0c\x1d\x09\xb7\x3d\xa8\x95\x21\x56\x2e\xba\x38\x46\x93\xa4\x8b\x1c\x67\x94\x3f\x52\x4e\xc9\xa1\x7a\xba\x38\x96\xd1\x3a\x7f\x7c\xcb\x1e\xf3\xbf\x34\x4f\x84\xd0\xe0\x81\xc0\xef\x15\xd9\x0d\x98\x15\x59\x89\x16\xe4\x44\x71\x3b\xa1\x54\x4c\xa9\xc4\x5c\xf6\x27\x5b\x62\x79\x7d\x46\x99\x3d\xc5\xd4\x87\x55\xf0\x21\xdc\x25\xd9\xfb\x67\x89\x48\x8d\xac\xdb\x83\xeb\xfd\x83\x91\x71\xc5\x9e\xcd\x20\x00\xae\x85\x12\x95\x56\xf8\xa0\x07\x4f\x19\xb5\x66\x00\x2d\xc1\xed\xc3\xbb\x63\x41\x69\x9f\x61\xb4\x16\x37\x67\x76\x29\x47\xc5\x59\x26\xba\x23\x7c\x7b\xdc\x9e\xe1\x25\xe6\x81\x7a\x25\x9a\xb9\x76\xa8\x34\xc7\x24\x38\x04\x84\x25\x6d\x7c\xfe\xf4\x69\xba\xf6\x5a\xd9\xdc\x81\xda\x92\xcf\xc5\xde\x34\x96\xb4\xf1\x20\x4e\xa5\xd6\x43\x49\x9d\x35\x8d\x1a\xc1\x39\x5f\xda\x8d\x91\xa0\xef\xdc\x63\x8e\xc7\xc4\xf6\xe8\x63\x93\x61\x2c\x69\xd3\xb5\x65\x4f\x97\x22\x23\xc5\xb1\x88\x11\x9d\xc9\x84\x57\x8a\x4c\x6d\xd5\x84\x65\x99\x2b\x3a\x9e\x26\xf7\xc7\xc9\xe4\x73\x38\x6a\xf6\x2f\x24\xba\xd3\x00\x9b\xb0\xdb\xc5\xeb\x92\x36\xaf\x39\x58\x89\x78\x60\xa6\x4a\x89\x27\xdb\x50\xd3\xc7\x54\xc2\xf8\x82\xb9\x4a\x77\xc5\xba\xf7\xc7\x7b\x3d\x84\x07\xe3\xe4\xe3\xfd\xb3\x92\xb2\x42\xcc\xef\x9d\x21\x7e\x30\xce\xcf\x5c\x55\x7a\x81\xd8\x3f\x43\x76\x01\xb2\x77\x55\x1d\xc2\x87\x08\xa7\x59\xbc\xf1\x18\xee\xe7\xad\x00\x2c\xbb\xef\x35\x18\x1b\x45\xd0\x03\x8d\xaf\xd8\x03\xaa\x80\xa4\xa8\xd8\xd7\x5b\xda\xe8\x11\x15\xa5\xdb\x1c\xc5\x12\x65\x6b\x6c\x4b\xb4\xdf\x85\x30\x22\x7b\x92\xc2\x31\xac\x84\x9e\x21\xc7\x84\x52\x48\x2b\xcf\xb8\x2f\x5f\xa5\xdf\x53\x49\x0f\x5c\x05\xd9\x05\x41\x29\x21\xbf\xaf\xd6\xbb\x02\x75\x18\x3d\xc2\x75\x13\x68\x2f\x53\x02\x78\x1e\x49\x0b\x6d\x35\x39\xe2\x91\xa4\xa4\x51\xa4\xc9\x99\xe2\x2c\xbf\x7f\xf0\xa0\xcf\x85\xbe\x0c\xe8\x9f\x3f\x3b\x6c\xb7\x01\x32\x64\x99\x02\x4b\xb1\xdb\xaf\x92\x4c\xbc\xda\xbf\x41\x89\xca\xf2\x18\x6e\x7d\x63\x9d\x53\x6b\x4d\x69\x6f\x20\x0d\x30\x1d\xe8\x4a\x41\x23\xf9\x60\x85\xb9\xa4\x36\x89\x24\x1a\x28\x0f\x89\xce\xcc\x0f\x12\xfe\x10\xd6\x99\xd4\x73\x12\x64\xe7\x8a\x72\xdf\x15\x0d\x96\xb4\x19\x0c\x05\xf5\x59\x74\x4d\x0f\x18\xdc\xeb\x41\x48\x8f\x07\x16\xbd\xcd\xa5\x46\xe7\x1b\x18\xf8\xb5\xc1\xf7\xd5\x0f\x9d\x59\x11\xd3\xd4\xdf\xd8\x60\xfe\xb1\x67\xaa\xea\x61\x9a\x2d\xbb\x2a\xb0\xec\x36\x2b\x4b\xf3\x93\x68\x5b\x76\xf4\x89\xe6\x41\x00\x8d\x12\x73\x4e\x96\xb4\x2f\xbc\xcd\xc9\xba\x72\x57\x89\x0e\x63\x6a\xa4\x14\xd6\xca\x65\xed\x7a\xf6\x94\x44\xbb\x9d\xbc\xc3\xb5\xdb\x4c\xa8\x24\xfb\x54\x93\x1d\xec\x7d\xcb\x45\xc8\x69\x35\xb5\x43\x20\x6d\x55\x92\xd5\xc4\x4a\xe3\x13\x9a\x2b\xb1\x96\xa0\xba\x33\x39\xaf\x97\x11\xf4\xab\x51\x4e\xdf\xf7\x9c\x61\xf4\xf6\xe3\x7d\x7d\xaf\x13\xae\x73\xa8\x66\xb4\x23\x9d\xf6\x8c\x7f\x3b\x19\x5c\x40\xd4\xdd\xf6\x50\xb3\xbe\x68\xdc\x05\x6d\xdb\x4e\x7f\xeb\x50\x5b\x50\x1f\x82\xbb\xb3\x40\xaf\x0c\x70\x9c\xdc\x1d\xb5\x4d\x62\x71\x85\x2a\xc7\x59\x5e\xb7\xcd\xa1\x38\x8a\x4d\xf3\x96\xf8\xd7\xc1\x6c\x8e\x5c\x74\x1c\x63\xa3\x47\x2d\xdd\xbf\x9a\x96\x5a\x39\x98\x6c\x8f\x8d\x82\xbf\x63\x5b\xff\x92\x5a\xba\x5b\x76\x4f\x16\x35\x7b\x01\x3e\xa9\x82\xfa\x24\xdf\xbd\x76\x97\x1d\x38\x55\x50\xb4\x86\x5a\x19\x6e\x0b\x96\xd2\x70\x61\x65\x34\xd5\xbe\xe9\xb3\x89\x71\x19\x9d\x0c\x28\xcd\x71\x51\xb2\x07\x98\x1b\x5b\xa0\x9b\x42\x8a\x8e\x46\x42\x59\x2f\x31\x7c\xf6\xf7\x60\x57\x15\xc1\x1a\x59\xb4\x31\xa3\xc3\xab\xd2\x17\x60\xb2\x20\x66\x5c\x5c\xce\xdd\x2d\x64\x55\x81\xe2\x5d\x98\x7a\x3f\x8a\x80\x40\xe9\x54\x25\xe8\x6f\x38\x53\x72\xa8\x72\x06\x9c\x99\x2a\x78\xdf\x4e\xfd\x57\xd7\xb0\x25\xe4\xae\x28\x7b\x84\x8f\x50\x26\xc8\x51\x11\x5e\x5b\x55\xaf\xd9\xdb\xc0\x9f\x49\xf5\xf1\x2b\xbf\x4e\xaa\xe3\xf5\xdf\x36\xd8\x46\x82\x87\xde\x9b\xcc\x1c\x9e\x6c\x45\x43\xf8\x19\x73\xa6\x21\x7c\xd6\x4b\x6d\xd6\xd7\xa7\xdd\x6f\xbe\x58\xde\x9b\xd2\x53\xb8\xa5\xf9\x8a\x64\xf9\x02\xf3\x23\xba\xec\x9a\x57\x3b\xf7\xb1\x56\xf2\x0d\x91\xaf\x32\x4a\x45\x09\xb5\x1e\x54\x40\x69\x76\x84\x69\x9c\x24\xed\x94\xa5\xb8\x36\x0c\x97\xf3\xbd\x64\xba\x7b\x7e\x91\x8a\x16\x50\x0a\x5d\x95\xc2\x3f\x1e\x3f\x3c\x4c\xfe\x6e\x62\x01\x8d\x49\x42\x1c\x13\x93\x54\xb6\x43\xe0\x2a\xc9\x00\xb9\xbe\x80\x7e\xf4\x29\xab\x40\xad\xe6\xc4\x6e\x1c\xa1\x91\xe5\x5f\xdf\xfe\xd6\x25\xed\x9f\x8d\x05\x7a\xc6\xa2\xcc\x69\x08\x2a\x76\xa2\xf5\x8b\x44\xa3\xf4\xf2\x82\xd8\x42\xf6\x55\x96\x27\xb8\x34\x69\x64\x78\xed\x59\x71\xb8\x24\x30\x91\x95\x8a\x20\x57\xcb\x4e\x9b\x19\x70\x49\x49\x83\xec\xaf\x1a\x0b\xfa\x36\x80\x1f\xd6\x19\x59\x82\x81\xfc\x1c\x04\x72\xb6\xc5\xab\xcc\x35\xdc\x21\x92\x15\xae\x75\xac\x5a\x2c\xc8\x76\x86\x5b\xff\x72\xb2\x22\xed\x7e\x94\x46\x5b\xcd\x41\x9b\x06\x28\x8f\x40\xf4\x58\x52\xa2\xe6\x8a\xd2\x03\x32\x7f\x7d\xfb\xdb\x00\x7e\x68\xcb\xa4\x03\xa5\xd2\x29\x3d\xc3\xdb\xd0\x87\x29\x16\xe9\xfd\x18\x7b\x72\xde\x68\x87\xcf\x82\x31\x91\x06\x4a\x87\xee\xc6\x19\xc8\x70\x45\xc0\xa6\x20\x58\x53\x9e\x8f\xc2\x0b\x40\x0a\x6b\x7f\x63\xd1\x59\x7c\x04\x15\x86\xde\xbe\x44\xeb\x3a\xde\x05\xdb\xe3\xe9\xc3\xbb\x0f\xd3\x40\xa9\x98\xda\x42\x0b\x79\xda\x38\x98\x2b\x8d\x79\xec\xce\x14\xef\x1a\x3d\xae\x82\xe9\x38\x03\x49\x86\xda\x67\x07\x2f\xe7\x79\xe5\x2a\xdb\x51\x56\xf5\x74\xfa\x63\xcf\x73\xed\x71\x99\xbf\xfb\xa7\xbb\x8b\xaa\xee\x17\x7c\xf6\xfa\x43\x12\xf3\x6f\xe5\x57\x94\xd8\x43\xc3\xf7\xbe\x43\x62\xbb\xe6\x57\x84\x96\x9a\x84\x45\x5e\x09\x95\x8e\x27\x66\x45\x76\xa5\x68\x3d\x59\x1b\xbb\x54\x7a\x31\x12\xe7\x1a\x05\xab\xe5\x89\xff\x77\xc2\xe4\x95\xff\xb8\x96\x80\xb8\xc4\xe4\xea\x52\xf2\x40\x5f\x5e\x54\x42\x05\x4f\xae\x21\xa9\xba\xe1\xbe\xbc\xc7\xed\x94\xd7\x63\x08\xb4\xc9\x3e\x0e\x09\x26\xeb\x4c\x25\x59\xfd\x37\x87\x46\x56\x2a\x30\x0d\x69\x0b\xf5\xe6\x85\x7d\x56\xf4\x51\x59\xa1\x6c\x33\x8a\xff\xdc\x19\xa1\x4e\xe5\x3b\x2b\x76\x32\x7f\x0d\x05\x54\xea\xaa\xc1\xef\xf3\xfd\xbb\x97\x37\xcf\xc9\xab\x4a\x5d\x23\xd2\xf5\xb9\x4f\x0b\x4f\xe6\x53\x70\xb6\xaa\x7b\x25\x76\xc6\x4a\x47\xd4\x9a\xab\x66\xdb\x9b\xb0\x9d\xbc\x63\xf1\x0e\x5f\xbf\xdd\xfc\x2f\x00\x00\xff\xff\x9e\xad\x2c\x9c\xfd\x25\x00\x00") +var _operatorsCoreosCom_operatorsYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xc4\x1a\x4d\x8f\xdb\xb8\xf5\x3e\xbf\xe2\xc1\x39\x64\x17\xb0\xec\x26\x05\x8a\x62\x6e\x83\x49\xb6\x98\x76\x3b\x1b\x64\x26\xb9\x2c\xf6\xf0\x2c\x3d\x5b\xac\x25\x52\xcb\x47\xd9\xe3\xa6\xf9\xef\xc5\x23\x29\x5b\xf2\x97\x34\x1b\x67\x87\x17\xdb\xfc\x78\xdf\x9f\xa4\xb1\x52\x9f\xc9\xb2\x32\xfa\x1a\xb0\x52\xf4\xe4\x48\xcb\x2f\x9e\x2c\xff\xce\x13\x65\xa6\xab\x37\x57\x4b\xa5\xb3\x6b\xb8\xad\xd9\x99\xf2\x23\xb1\xa9\x6d\x4a\xef\x68\xae\xb4\x72\xca\xe8\xab\x92\x1c\x66\xe8\xf0\xfa\x0a\x00\xb5\x36\x0e\x65\x9a\xe5\x27\x40\x6a\xb4\xb3\xa6\x28\xc8\x26\x0b\xd2\x93\x65\x3d\xa3\x59\xad\x8a\x8c\xac\x07\xde\xa0\x5e\xfd\x65\xf2\xe6\x6f\x93\x37\x57\x00\x1a\x4b\xba\x06\x53\x91\x45\x67\x2c\x4f\x76\xdf\x52\x63\xc9\xc8\x47\x79\xc5\x15\xa5\x02\x7f\x61\x4d\x5d\xb5\x77\xb7\xf6\x04\x50\x0d\x19\xe8\x68\x61\xac\x6a\x7e\x03\x24\x60\x8a\xd2\x7f\x0f\xec\xfd\x12\x61\xf8\xa9\x42\xb1\xfb\x57\x67\xfa\x67\xc5\xce\x2f\x55\x45\x6d\xb1\x68\xe1\xf4\xb3\xac\xf4\xa2\x2e\xd0\xee\xe6\xaf\x00\x38\x35\x15\x5d\xc3\x6d\x51\xb3\x23\x99\x88\xec\x46\x1a\x92\xc8\xeb\xea\x4d\x24\x89\xd3\x9c\x4a\x6c\x08\x04\x01\xa5\x6f\x3e\xdc\x7d\xfe\xeb\xc3\xde\x02\x40\x46\x9c\x5a\x55\x39\x2f\xbc\x86\x46\xb0\x54\x59\x62\xd2\x8e\x01\x21\x0d\x68\xb7\x04\x4d\x5a\xc7\xdd\x46\x08\x33\xb3\xff\x50\xea\x5a\xd3\x95\x95\xcd\xae\x25\xa5\x30\x5a\x46\xd2\x99\xdf\xa3\xe3\x7f\xc9\xde\x2a\x80\x90\x1f\x4e\x42\x26\x16\x43\x0c\x2e\xa7\x46\x10\x94\x45\x9e\xc1\xcc\xc1\xe5\x8a\x77\x1c\x78\x1b\x92\x69\xd4\x91\xce\xc9\x01\xf0\x07\xb2\x02\x08\x38\x37\x75\x91\x89\xa9\xad\xc8\x3a\xb0\x94\x9a\x85\x56\xff\xdd\x42\x67\x70\xc6\xa3\x2d\xd0\x11\x3b\x50\xda\x91\xd5\x58\xc0\x0a\x8b\x9a\xc6\x80\x3a\x3b\x80\x5d\xe2\x06\x2c\x09\x5e\xa8\x75\x0b\xa2\x3f\xc2\x87\xb4\xfc\xdb\x58\x02\xa5\xe7\xe6\x1a\x72\xe7\x2a\xbe\x9e\x4e\x17\xca\x35\x4e\x94\x9a\xb2\xac\xb5\x72\x9b\xa9\xf7\x07\x35\xab\xc5\x72\xa6\x19\xad\xa8\x98\xb2\x5a\x24\x68\xd3\x5c\x39\x4a\x5d\x6d\x69\x8a\x95\x4a\x3c\x33\xda\x3b\xd2\xa4\xcc\x5e\xd9\xe8\x76\xbc\x87\x38\x28\x92\x9d\x55\x7a\xd1\x59\xf2\x46\xfd\x4c\x65\x89\xc5\x83\x12\xdb\x09\x00\x03\xb3\x3b\x9d\xc8\x94\x88\xf1\xe3\xfb\x87\x47\x68\x28\x0a\x7a\x0b\x2a\x6a\x19\xe0\x69\x6d\x89\x64\x95\x9e\x93\x0d\x27\xe7\xd6\x94\x1e\x2a\xe9\xac\x32\x4a\x3b\xff\x23\x2d\x14\x69\x07\x5c\xcf\x4a\xe5\xc4\x2c\x7e\xaf\x89\x9d\x28\xf2\x10\xf0\xad\x0f\x3a\x30\x23\xa8\xab\x0c\x1d\x65\x87\x5b\xee\x34\xdc\x62\x49\xc5\x2d\x32\xfd\xe9\xba\x13\x1d\x71\x22\x0a\x19\xac\xbd\x76\x48\x3d\x3c\x70\xe0\xb7\x00\x4d\x40\x3c\xa9\xee\x26\x46\x3c\x54\x94\x76\x5c\x31\x23\x56\x56\x5c\xc5\xa1\x23\x71\xb8\x4e\x20\x1c\x82\xda\xa1\xab\x79\x18\x72\xbf\xb5\x83\xde\xcc\x58\xec\xa2\x85\x1f\xf5\x2e\xa0\xa1\x18\xa4\x63\x48\x4d\x59\x19\x2d\x76\x35\x94\xaa\xd3\xc1\x0c\x7c\x56\x6a\xe0\x1d\xae\xed\xd1\x7e\xbb\xdd\x1a\xe7\x67\xc4\x5b\xe3\x17\x1e\xd0\x05\x70\x4c\x81\xa1\x23\xe1\x76\x00\xb5\x32\xc4\xca\x45\x17\xc7\x68\x92\x74\x51\xe0\x8c\x8a\x07\x2a\x28\x3d\x54\x4f\x1f\xc7\x32\x3a\xe7\x8f\x6f\xd9\x63\xfe\xe7\xf6\x89\x10\x1a\x3c\x10\xf8\xbd\x26\xbb\x01\xb3\x22\x2b\xd1\x82\x9c\x28\x6e\x27\x94\x9a\x29\x93\x98\xcb\xfe\x64\x47\x2c\xaf\xcf\x28\x73\xa0\x98\x86\xb0\x0a\x3e\x84\xbb\x34\x7f\xff\x24\x11\xa9\x95\x75\x07\x70\xbd\x7f\x30\x32\xae\xd8\xb3\x19\x04\xc0\x8d\x50\xa2\xd2\x4a\x1f\xf4\xe0\x31\xa7\xce\x0c\xa0\x25\xb8\xb9\x7f\x77\x2c\x28\xed\x33\x8c\xd6\xe2\xe6\xcc\x2e\xe5\xa8\x3c\xcb\x44\x7f\x84\xef\x8e\x9b\x33\xbc\xc4\x3c\xd0\xac\x44\x33\xd7\x0e\x95\xe6\x98\x04\xc7\x80\xb0\xa4\x8d\xcf\x9f\x3e\x4d\x37\x5e\x2b\x9b\x7b\x50\x5b\xf2\xb9\xd8\x9b\xc6\x92\x36\x1e\xc4\xa9\xd4\x7a\x28\xa9\xb3\xa6\xd1\x20\x38\xe7\x4b\xbb\x91\x08\xfa\xde\x3d\xe6\x78\x4c\xec\x8e\x21\x36\x19\xc6\x92\x36\x7d\x5b\xf6\x74\x29\x32\x52\x1c\x8b\x18\xd1\x99\x4c\x78\xa5\xc8\xd4\x56\x4d\x58\x55\x85\xa2\xe3\x69\x72\x7f\x9c\x4c\x3e\x87\xa3\x61\xff\x99\x44\xf7\x1a\x60\x1b\x76\xb7\x78\x5d\xd2\xe6\x35\x07\x2b\x11\x0f\xcc\x55\x25\xf1\x64\x1b\x6a\x86\x98\x4a\x18\x9f\xb1\x50\xd9\xae\x58\xf7\xfe\x78\xa7\xc7\x70\x6f\x9c\x7c\xbc\x7f\x52\x52\x56\x88\xf9\xbd\x33\xc4\xf7\xc6\xf9\x99\x8b\x4a\x2f\x10\xfb\x3d\x64\x17\x20\x7b\x57\xd5\x21\x7c\x88\x70\xda\xc5\x1b\x4f\xe0\x6e\xde\x09\xc0\xb2\xfb\x4e\x83\xb1\x51\x04\x03\xd0\xf8\x8a\x3d\xa0\x0a\x48\xca\x9a\x7d\xbd\xa5\x8d\x4e\xa8\xac\xdc\xe6\x28\x96\x28\x5b\x63\x3b\xa2\xfd\x26\x84\x11\xd9\xa3\x14\x8e\x61\x25\xf4\x0c\x05\xa6\x94\x41\x56\x7b\xc6\x7d\xf9\x2a\xfd\x9e\x4a\x07\xe0\x2a\xc9\x2e\x08\x2a\x09\xf9\x43\xb5\xde\x17\xa8\xc3\x18\x10\xae\xdb\x40\x07\x99\x12\xc0\x53\x22\x2d\xb4\xd5\xe4\x88\x13\x49\x49\x49\xa4\xc9\x99\xf2\x2c\xbf\x7f\xf0\xa0\xcf\x85\xbe\x0c\x18\x9e\x3f\x7b\x6c\xb7\x05\x32\x64\x99\x12\x2b\xb1\xdb\x2f\x92\x4c\xbc\xda\xbf\x42\x85\xca\xf2\x04\x6e\x7c\x63\x5d\x50\x67\x4d\x69\x6f\x20\x2d\x30\x3d\xe8\x2a\x41\x23\xf9\x60\x85\x85\xa4\x36\x89\x24\x1a\xa8\x08\x89\xce\xcc\x0f\x12\xfe\x18\xd6\xb9\xd4\x73\x12\x64\xe7\x8a\x0a\xdf\x15\x8d\x96\xb4\x19\x8d\x05\xf5\x59\x74\x6d\x0f\x18\xdd\xe9\x51\x48\x8f\x07\x16\xbd\xcd\xa5\x46\x17\x1b\x18\xf9\xb5\xd1\xb7\xd5\x0f\xbd\x59\x11\xb3\xcc\xdf\xd8\x60\xf1\x61\x60\xaa\x1a\x60\x9a\x1d\xbb\x2a\xb1\xea\x37\x2b\x4b\xf3\x93\x68\x3b\x76\xf4\x91\xe6\x41\x00\xad\x12\x73\x4e\x96\xb4\x2f\xbc\xcd\xc9\xba\x72\x57\x89\x8e\x63\x6a\xa4\x0c\xd6\xca\xe5\xdd\x7a\xf6\x94\x44\xfb\x9d\xbc\xc7\xb5\xbb\x4c\xa8\x34\xff\xd8\x90\x1d\xec\x7d\xcb\x45\xc8\x69\x0d\xb5\x63\x20\x6d\x55\x9a\x37\xc4\x4a\xe3\x13\x9a\x2b\xb1\x96\xa0\xba\x33\x39\x6f\x90\x11\x0c\xab\x51\x4e\xdf\xf7\x9c\x61\xf4\xe6\xc3\x5d\x73\xaf\x13\xae\x73\xa8\x61\xb4\x27\x9d\x0e\x8c\x7f\x3b\x19\x3c\x83\xa8\xdb\xed\xa1\x76\x7d\xd1\xba\x0b\xda\xb6\x9d\xfe\xd6\xa1\xb1\xa0\x21\x04\xf7\x67\x81\x41\x19\xe0\x38\xb9\x3b\x6a\xdb\xc4\xe2\x0a\x55\x81\xb3\xa2\x69\x9b\x43\x71\x14\x9b\xe6\x2d\xf1\xaf\x83\xd9\x1c\xb9\xe8\x38\xc6\xc6\x80\x5a\x7a\x78\x35\x2d\xb5\x72\x30\xd9\x01\x1b\x05\x7f\xcf\xb6\xe1\x25\xb5\x74\xb7\xec\x1e\x2d\x6a\xf6\x02\x7c\x54\x25\x0d\x49\xbe\x7b\xed\x2e\x3b\x70\xaa\xa4\x68\x0d\x8d\x32\xdc\x16\x2c\x65\xe1\xc2\xca\x68\x6a\x7c\xd3\x67\x13\xe3\x72\x3a\x19\x50\xda\xe3\x59\xc9\x1e\x60\x6e\x6c\x89\xee\x1a\x32\x74\x94\x08\x65\x83\xc4\xf0\xc9\xdf\x83\x5d\x54\x04\x6b\x64\xd1\xc6\x8c\x0e\xaf\x4a\x5f\x80\xc9\x92\x98\x71\xf1\x7c\xee\x6e\x20\xaf\x4b\x14\xef\xc2\xcc\xfb\x51\x04\x04\x4a\x67\x2a\x45\x7f\xc3\x99\x91\x43\x55\x30\xe0\xcc\xd4\xc1\xfb\x76\xea\xbf\xb8\x86\x2d\x21\xf7\x45\xd9\x23\x7c\x84\x32\x41\x8e\x8a\xf0\xba\xaa\x7a\xcd\xde\x06\xbe\x27\xd5\xc7\xaf\xfc\x7a\xa9\x8e\xd7\x7f\xdb\x60\x1b\x09\x1e\x7b\x6f\x32\x73\x78\xb4\x35\x8d\xe1\x27\x2c\x98\xc6\xf0\x49\x2f\xb5\x59\x5f\x9e\x76\xbf\xf9\xd9\xf2\xde\x54\x9e\xc2\x2d\xcd\x17\x24\xcb\x17\x98\x1f\xd0\xe5\x97\xbc\xda\xb9\x8b\xb5\x92\x6f\x88\x7c\x95\x51\x29\x4a\xa9\xf3\xa0\x02\x4a\xb3\x23\xcc\xe2\x24\x69\xa7\x2c\xc5\xb5\x71\xb8\x9c\x1f\x24\xd3\xdd\xf3\x8b\x54\xb4\x80\x52\xe8\xaa\x0c\xfe\xf9\xf0\xcb\xfd\xf4\x1f\x26\x16\xd0\x98\xa6\xc4\x31\x31\x49\x65\x3b\x06\xae\xd3\x1c\x90\x9b\x0b\xe8\x07\x9f\xb2\x4a\xd4\x6a\x4e\xec\x26\x11\x1a\x59\xfe\xf5\xed\x6f\x7d\xd2\xfe\xc9\x58\xa0\x27\x2c\xab\x82\xc6\xa0\x62\x27\xda\xbc\x48\xb4\x4a\x2f\x2f\x88\x2d\x64\x5f\x65\x79\x82\x2b\x93\x45\x86\xd7\x9e\x15\x87\x4b\x02\x13\x59\xa9\x09\x0a\xb5\xec\xb5\x99\x11\x57\x94\xb6\xc8\xfe\xa2\xb1\xa4\xaf\x23\xf8\x61\x9d\x93\x25\x18\xc9\xcf\x51\x20\x67\x5b\xbc\xca\x5c\xcb\x1d\x22\x59\xe1\x5a\xc7\xaa\xc5\x82\x6c\x6f\xb8\xf5\x2f\x27\x2b\xd2\xee\x47\x69\xb4\xd5\x1c\xb4\x69\x81\xf2\x08\x44\x8f\x15\xa5\x6a\xae\x28\x3b\x20\xf3\xd7\xb7\xbf\x8d\xe0\x87\xae\x4c\x7a\x50\x2a\x9d\xd1\x13\xbc\x0d\x7d\x98\x62\x91\xde\x8f\xb1\x27\xe7\x8d\x76\xf8\x24\x18\x53\x69\xa0\x74\xe8\x6e\x9c\x81\x1c\x57\x04\x6c\x4a\x82\x35\x15\x45\x12\x5e\x00\x32\x58\xfb\x1b\x8b\xde\xe2\x23\xa8\x30\xf4\xf6\x15\x5a\xd7\xf3\x2e\xd8\x91\xcf\x30\x27\x3c\xf6\x5c\xd6\x1d\xcf\xf3\x3f\xff\x94\xf6\xac\x2a\xf8\x05\x9f\xa1\xfe\x90\xc4\xfc\xdb\xf5\x05\x25\x76\xdf\xf2\x85\x6f\x90\xd8\xae\x19\x15\xa1\x65\x26\x65\x91\x57\x4a\x95\xe3\xa9\x59\x91\x5d\x29\x5a\x4f\xd7\xc6\x2e\x95\x5e\x24\x62\xec\x49\xb0\x22\x9e\xfa\x7f\x0b\x4c\x5f\xf9\x8f\x4b\x09\x88\x2b\x4c\x2f\x2e\x25\x0f\xf4\xe5\x45\x25\x54\xf0\xf4\x12\x92\x6a\x1a\xe0\xe7\xf7\x9c\xbd\xf2\x7a\x08\x81\x2f\xdd\xc7\x21\x31\x69\x9d\xab\x34\x6f\xfe\x76\xd0\xca\x12\x25\x66\x21\x8d\xa0\xde\xbc\xb0\xcf\x8a\x3e\x6a\x2b\x94\x6d\x92\xf8\x4f\x9a\x04\x75\x26\xdf\x59\xb1\x93\xf9\x4b\x28\xa0\x56\x17\x0d\x7e\x9f\xee\xde\xbd\xbc\x79\x4e\x5f\xd5\xea\x12\x91\x6e\xc8\xfd\x56\x78\xc2\xbe\x06\x67\xeb\xa6\x77\x61\x67\xac\x74\x28\x9d\xb9\x7a\xb6\xbd\x99\xda\xc9\x3b\x16\xd3\xf0\xe5\xeb\xd5\xff\x03\x00\x00\xff\xff\xf9\xa8\x7e\xbd\x8d\x25\x00\x00") func operatorsCoreosCom_operatorsYamlBytes() ([]byte, error) { return bindataRead( @@ -225,7 +225,7 @@ func operatorsCoreosCom_operatorsYaml() (*asset, error) { return a, nil } -var _operatorsCoreosCom_subscriptionsYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\xbd\x7b\x73\xe4\xb6\x95\x28\xfe\x7f\x3e\x05\x4a\x49\x95\xa4\xa4\xbb\x35\xce\xe6\x66\xb3\x73\x53\x49\x29\x23\x8d\x57\xd7\x9e\xb1\xee\x68\xec\xd4\xfe\xbc\xb9\x6b\x34\x89\xee\x46\x44\x02\x34\x01\x4a\xd3\x59\xef\x77\xff\x15\xce\x01\x48\xb0\x5f\x04\xa8\xee\x96\xc6\x21\xfe\xb0\x47\x6c\x12\xcf\x83\xf3\x7e\xd0\x82\x7f\xc7\x4a\xc5\xa5\x78\x4d\x68\xc1\xd9\x27\xcd\x84\xf9\x4b\x4d\xee\xff\xa0\x26\x5c\x5e\x3c\x7c\xf1\x8b\x7b\x2e\xd2\xd7\xe4\x4d\xa5\xb4\xcc\x3f\x30\x25\xab\x32\x61\x57\x6c\xc6\x05\xd7\x5c\x8a\x5f\xe4\x4c\xd3\x94\x6a\xfa\xfa\x17\x84\x50\x21\xa4\xa6\xe6\xb1\x32\x7f\x12\x92\x48\xa1\x4b\x99\x65\xac\x1c\xcf\x99\x98\xdc\x57\x53\x36\xad\x78\x96\xb2\x12\x3a\x77\x43\x3f\xbc\x9a\x7c\xf1\xbf\x26\xaf\x7e\x41\x88\xa0\x39\x7b\x4d\x54\x35\x55\x49\xc9\x0b\xe8\x69\x22\x0b\x56\x52\x2d\x4b\x35\x49\x64\xc9\xa4\xf9\x5f\xfe\x0b\x55\xb0\xc4\x8c\x31\x2f\x65\x55\xbc\x26\x1b\xdf\xc1\xee\xdc\x54\xa8\x66\x73\x59\x72\xf7\x37\x21\x63\x22\xb3\x1c\xfe\x8d\x4b\xbc\xf3\x46\x85\xc7\x19\x57\xfa\xab\xb5\x9f\xbe\xe6\x4a\xc3\xcf\x45\x56\x95\x34\x5b\x99\x2d\xfc\xa2\x16\xb2\xd4\xef\x9b\xb1\xcd\x58\xaa\x9a\xfa\xff\xb6\x2f\x72\x31\xaf\x32\x5a\xb6\x3b\xf9\x05\x21\x2a\x91\x05\x7b\x4d\xa0\x8f\x82\x26\x2c\xfd\x05\x21\x76\xbb\x6c\x9f\x63\x42\xd3\x14\x8e\x80\x66\xb7\x25\x17\x9a\x95\x6f\x64\x56\xe5\xa2\x1e\xd3\xbc\x93\xb2\xba\xd7\xd7\xe4\xe3\x82\x91\x82\x26\xf7\x74\xce\xdc\x78\x53\x96\x12\x2d\xeb\x0f\x08\xf9\xbb\x92\xe2\x96\xea\xc5\x6b\x32\x31\x5b\x3c\x31\x3b\xe8\xfd\x8c\xe7\x73\x8b\x9d\x78\xcf\xf5\xd2\x4c\x57\xe9\x92\x8b\xf9\xae\xe1\x13\xaa\x69\x26\xe7\x04\xc1\x88\xcc\x64\x49\xf4\x82\x11\x33\x14\x9f\x71\x96\xba\xf9\xed\x98\x11\x7e\xba\x36\xa7\xbb\xd5\xc7\xc1\x53\x5a\x50\x21\x58\x46\xe4\x8c\x54\x45\x4a\x35\x53\x44\xcb\x66\x7f\x76\x6f\x8f\xfd\x78\x6d\x36\x6f\xd6\x9e\x6f\x98\x0e\xbe\xfa\xf0\x05\xcd\x8a\x05\xfd\xc2\x3e\x54\xc9\x82\xe5\xb4\x39\x43\x59\x30\x71\x79\x7b\xf3\xdd\xbf\xdc\xad\xfc\x40\xda\x4b\xf1\x41\x94\xdc\x33\x56\xa8\xe6\x52\x90\xaa\x30\x6b\x32\x8b\x23\xd3\x25\xd1\x25\x4d\xee\xb9\x98\xc3\xd2\xe7\xb8\xde\x37\x78\x30\x6a\xb2\x36\x65\x39\xfd\x3b\x4b\xb4\xf7\xb8\x64\x3f\x56\xbc\x64\xa9\x3f\x15\xb3\xb3\x0e\x13\xac\x3c\x36\xfb\xe4\x3d\x2a\x4a\x33\x2d\xed\xdd\x43\x6c\x1e\x2a\x6a\x3d\x5f\x59\xe6\x4f\xe3\x95\x5f\x09\x31\xbb\x83\x5f\x92\xd4\xe0\x25\xb3\xa0\x05\x73\xd7\x85\xa5\x76\x4b\xcd\x01\xeb\x05\x57\xa4\x64\x45\xc9\x14\x13\x88\xa9\xcc\x63\x2a\xec\x2a\x27\x6b\x9d\xdf\xb1\xd2\x74\x64\xae\x74\x95\xa5\x06\xa1\x3d\xb0\x52\x93\x92\x25\x72\x2e\xf8\x3f\xea\xde\x61\x13\xcd\xb0\x99\x81\x20\x4d\xe0\x42\x0a\x9a\x91\x07\x9a\x55\x6c\x44\xa8\x48\xd7\xfa\xce\xe9\x92\x94\xcc\x8c\x4b\x2a\xe1\xf5\x08\x9f\xa8\xf5\xb9\xbc\x93\x25\x23\x5c\xcc\xe4\x6b\xb2\xd0\xba\x50\xaf\x2f\x2e\xe6\x5c\x3b\x54\x9d\xc8\x3c\xaf\x04\xd7\xcb\x0b\xc0\xba\x7c\x5a\x99\xa3\xbf\x48\xd9\x03\xcb\x2e\x14\x9f\x8f\x69\x99\x2c\xb8\x66\x89\xae\x4a\x76\x41\x0b\x3e\x86\xc5\x08\x44\xb2\x79\xfa\xcb\xd2\x22\x77\xb5\x32\xf0\xc6\x8b\x44\x1c\xda\x8c\x3c\x2c\x83\x4f\x09\x57\x84\xda\x0e\x71\xb1\xcd\x99\x98\x47\x66\x1b\x3f\x5c\xdf\x7d\x24\x6e\x46\x78\x6e\x78\x44\xcd\xab\x1b\x76\xc8\x9d\x96\xd9\x59\x2e\x66\xac\xc4\x2f\x67\xa5\xcc\xa1\x57\x26\xd2\x42\x72\xa1\xe1\x8f\x24\xe3\x4c\x68\x73\xd3\x73\xae\x15\x80\x35\x53\xda\x1c\xe4\x7a\xc7\x6f\x80\xb4\x91\x29\xb3\x38\x22\x5d\x7f\xe5\x46\x90\x37\x34\x67\xd9\x1b\xaa\xd8\xd1\xcf\xce\x9c\x91\x1a\x9b\x03\x09\x3e\x3d\x9f\x70\xaf\x7f\xb0\x76\xeb\x09\x71\x24\x77\xeb\x71\xfb\x28\xe8\xae\x60\x49\x7d\x1d\xa9\x20\x97\x45\x91\xf1\x04\x6f\x9c\x5e\x50\x4d\x12\x2a\xcc\x76\x72\xa1\x34\xcd\x32\xb6\x7a\x3b\xb6\xce\x62\x1b\xfe\x21\x80\x6c\x56\xc8\x95\x7b\xbc\x46\x33\xda\x3f\xd4\x64\x76\xe5\x8d\x6d\xb8\xca\x34\x8b\xf9\xd7\x7f\xd8\xb1\xe5\x04\x59\xa2\x19\x9f\x6f\xfa\x6c\xeb\x5e\xbe\x81\x4f\x80\x99\xa2\x5c\x28\xdb\x45\x55\xe2\x6e\x36\xb4\xd3\x50\x53\xda\xe2\x24\xd6\xe1\x70\xe7\xce\x76\xad\xd9\x34\x3a\x03\xd6\x6f\xb9\xf9\xd7\x6e\x04\xe0\xda\xcd\xac\x99\xf9\x88\xc8\x07\x56\x96\x3c\xb5\xa8\xbb\x90\xe9\xa9\x02\xc4\x9a\x56\x19\x10\x2a\x29\x94\x2e\x29\xdf\x78\xe9\x5d\x13\x3c\x33\x8b\x1f\x53\x8d\x37\x88\x29\xf2\xc8\xb3\x8c\xfc\x5a\x48\xfd\xeb\x7a\x04\x18\x40\x96\x7c\xce\x6b\xec\xac\x08\x17\x6e\x5c\x20\xeb\x96\x2f\x91\x8a\xad\x74\xb8\x7d\xf0\x6f\x15\x23\x2c\x2f\xf4\xd2\xa1\xa9\xb3\xff\xfe\x9f\x73\x43\x13\x58\x49\x95\x37\x60\xab\xbf\xad\x98\x1e\x5b\xc7\x49\x91\x80\xd3\x82\x7d\x91\x29\xbb\xec\x38\x35\xb2\x7a\x72\x57\x0c\xd9\x1f\x05\x9f\xd7\xa7\xee\x1f\x4a\x59\x65\x4c\xd5\x2c\x9c\xd9\xbb\x1d\x9d\x07\xac\x25\x74\x3d\xf8\x1e\x9b\xb1\xb2\x64\xe9\x55\x65\x6e\xd9\x5d\x3d\xab\x9b\xb9\x90\xf5\xe3\xeb\x4f\x2c\xa9\xf4\x06\x96\x62\xe7\xd2\x77\x00\xad\x6b\x86\x6f\xb4\x3b\xc1\x4a\x84\x32\x9c\x11\xb0\x8e\xf6\x07\xb3\x25\xc0\x16\x98\x1d\x54\x88\xf5\x14\xd5\x5c\xcd\x96\x9d\x03\x98\x1d\xad\xf7\x9c\x7d\x32\x14\x0f\x78\x7f\xef\xb6\x1b\x46\x0e\x88\x1b\x67\x59\x3a\x22\xd3\x4a\x13\xae\x81\xf2\x25\x0b\x29\xd5\x3a\xb6\x5b\x6d\x14\x8f\x16\xe6\xf5\xc0\x25\x30\x2e\x44\x0a\x03\xac\x24\x37\xe4\x0a\x18\x26\xe6\x0f\x3f\x81\x95\x37\x9f\xf1\x55\x6a\xb3\xde\x72\xa9\x74\x73\x5c\x86\xf4\xc3\x05\x14\x8c\x3c\x72\xbd\x80\x3f\xe6\x25\x43\xa6\x49\x55\xb9\x19\xf4\x91\xf1\xf9\x42\xab\x11\xe1\x93\x0d\x94\x74\xb5\x19\x00\x64\x34\x59\x78\xd3\xca\x19\xd3\x8a\xd0\x2c\x73\x4b\xf0\xa1\x16\xa9\x47\x6e\x18\x08\x72\xe6\x38\x8c\xce\x51\x2c\x77\x30\xaa\xa9\xcf\x2a\xe0\x6d\x3c\xae\x11\x61\x3a\x99\x9c\x8f\x3a\xbb\x4f\x64\x5e\x18\x84\x40\x61\x0f\xa6\x4b\xc2\xb5\xe1\xdd\x91\x1b\x2a\x65\x35\xc7\x9d\x62\x99\x9d\xb8\xe3\x65\xe1\xf0\x0d\x73\x09\xd2\xe0\x06\x72\xb3\xda\x4e\x70\x73\x4f\x1c\xbb\x6a\x86\xe3\xb8\x49\xb0\x7f\x39\xd5\xc9\xc2\xa2\xe1\x44\x96\x25\x53\x85\x14\xa6\x67\xfc\xe5\xba\x59\xdb\xff\x36\xef\x74\x8e\x67\x3a\x3d\x53\xe7\xcd\x61\x2f\xf8\x7c\xe1\xce\x9a\x96\x88\x8e\xdb\x30\xd2\x75\xe4\x88\x4a\x68\x59\xd2\xae\x7b\xc4\x35\xcb\x3b\x10\x09\xe9\x71\xfb\x09\xb9\x14\x16\xd9\x37\x80\xed\x81\x98\x66\x65\x5e\x6f\x24\x40\x21\xa0\x3d\x85\x9b\xc0\x73\xc3\x09\x71\x6d\xc1\x9c\xbc\x0a\x18\xef\xcc\xdc\x04\xc2\xf5\xa9\x82\x5b\x3b\x96\xc5\xf9\x84\x5c\x12\x51\xd5\x88\x67\xd7\x14\x84\xac\x67\x60\x3b\x32\xd3\x52\xb2\xe9\xab\x1b\x1f\x85\xa1\x6f\x6c\xdb\x19\xb4\xf5\x36\xb6\xf3\x67\x22\xe0\x12\x9a\xd7\x71\xd7\x3a\x5f\x0d\x25\x24\xee\x6d\x37\x87\x90\xb7\x57\x20\xe6\x12\x6f\x8e\x62\x19\x4b\xb4\xa1\x86\xac\xcc\x47\x84\x2a\x25\x13\x6e\x44\x85\x06\xf6\xdb\x17\x0a\x57\xd2\xbd\xf7\x24\x76\xff\x49\xf4\xfa\x09\x48\xa3\xed\xfb\x1d\xfa\xdd\xda\x6e\x64\x5c\x69\x83\xa0\xda\xbb\xd2\xc2\xbb\xd3\x25\xfc\x7a\xaa\x48\x46\xa7\x2c\xdb\xc1\x57\xad\xb6\xf0\xcb\xdf\xb4\x40\x34\xb0\x65\x41\x41\x08\xa1\x69\xab\xd0\xe0\xad\xdb\xca\xbd\x35\x9c\x80\x18\xe4\x98\x7a\x64\x05\x47\x84\x92\x7b\xb6\x1c\x21\x4a\x17\xb5\x0a\x27\x6a\x0a\xd0\x71\xc9\x90\xa0\x1b\xb8\xbb\x67\x4b\xe8\x70\x37\xbb\xb9\xb1\xab\x58\xb8\xc3\x16\x83\x01\x9a\x36\x36\x13\x8d\xfc\xa2\xc7\x06\xc5\x5f\x0d\x6c\xf7\x6c\x27\xfb\xbc\xa9\xad\x29\x1b\x01\xdc\xe1\x3c\xe0\x90\x80\x02\x3b\x78\xa0\x46\x44\x66\x9b\xf5\x0f\xbb\xdb\x4e\x81\x73\x57\x73\xbb\xf7\xa4\x75\x45\x5e\x10\xd3\x3e\xd4\x3a\x1c\x84\xf7\x53\x85\xf0\x6a\xf0\xce\x82\x83\xb2\xd2\x5c\x14\x40\x23\xf1\x40\x8b\xed\x3b\x9a\xf1\xd4\xd3\x81\x1a\x66\xe3\x46\x8c\xc8\x7b\xa9\xcd\xff\xae\x3f\x71\x65\x78\xcc\x2b\xc9\xd4\x7b\xa9\xe1\xcf\x09\xf9\x52\xe3\xd5\xfb\x3a\x10\x2f\x37\xad\xf7\x19\xe0\xfa\x8e\x7d\x02\x97\x02\x91\xa8\xd9\x61\x5f\x13\xa7\x26\x46\x32\x07\x16\xdd\xee\x9c\xc1\x5a\x37\xc2\x08\x05\xb8\x73\xd1\x43\x81\x32\x16\xe5\x6c\x1c\x32\xaf\x14\xa8\xd2\x84\x14\x63\x60\xa3\x36\x8e\x89\x07\x64\xc6\xf5\x8f\x68\x8f\xc3\x6f\x1f\xfa\x4b\x6d\x86\xfd\x5a\x8f\xbc\x8f\xa3\xc7\xf5\x06\x5b\xd0\x07\x60\xed\xb9\x98\x67\x35\x13\x3f\x22\x8f\x0b\x9e\x2c\x50\x7a\x04\x4d\x98\x66\x65\x51\x32\xc3\x31\x50\xd0\x99\x99\x27\x73\x56\xc6\x83\xfe\x47\x23\x1a\xe0\xf8\xa8\xef\xce\x68\xc2\x52\x92\x82\xc8\x82\xaa\x57\xaa\xd9\x9c\x27\x24\x67\xe5\x9c\x91\xc2\x90\xfe\x7e\x00\x1f\x47\x89\xb1\x45\xd3\x63\x7f\xc0\x1e\x37\x8c\x90\x4f\xe3\xfb\x6a\xca\x4a\xc1\x34\x53\x63\xc3\x9f\x8c\xed\xec\xb5\xcc\x79\x12\xdc\xd9\x5e\xba\x01\x3e\xeb\xad\x91\xdb\x8e\xc4\x62\x81\x8c\x38\xb0\x58\x03\x8b\x35\xb0\x58\x03\x8b\x35\xb0\x58\xc1\x6d\x60\xb1\x9e\x3c\xfc\xc0\x62\x0d\x2c\xd6\xd1\x59\xac\x56\x17\x39\x2d\x62\x7b\x40\xbd\x5c\x0f\x45\xe0\x5f\x51\xa1\xbb\xaa\xf9\x03\x86\xcf\xf9\x35\xb4\x55\x80\x86\x8f\xb9\xb3\xc4\xe9\x23\xa8\x0d\xad\x25\xb2\xa4\x62\xce\xc8\x17\xe3\x2f\x5e\xbd\x8a\x51\x10\x5a\x70\x0e\xfa\x62\x26\xcb\x9c\x6a\xf8\xe6\x5f\x7e\xdb\xf1\xc5\x13\x4e\x65\x9b\xbd\xe4\x38\x86\x3a\x8b\x79\x6a\xdb\x4c\x8b\x45\xde\x62\x4b\x03\x32\x26\xa4\x26\x39\xd3\x84\x76\xf3\x64\xbe\xda\x9d\xe7\x6c\xe4\xcc\xa1\x88\x76\xac\xdb\x88\x33\x0a\xa6\x44\x0a\x6b\x7a\x31\x87\xdf\x7d\xb8\xbd\x56\x90\x30\xaa\x98\x21\xf1\x53\x66\x56\xd1\x6d\x0a\xd4\x44\xc9\xdc\xcc\x9a\x0b\xed\x90\x98\x59\x02\x73\x07\x43\xce\xd8\x64\x3e\x21\x69\x05\xdd\x52\x61\xfd\x60\xce\x71\xb5\x6a\xa9\x34\xcb\xbb\x6d\x81\x86\x18\x96\xf0\x3f\xb3\x2d\xba\x5c\x82\x85\xfc\x81\x09\x5d\xd1\x2c\x5b\x12\xf6\xc0\x13\x5d\xef\x1f\xb8\xed\x70\xad\x82\x76\x2a\x82\x8d\x0e\x67\x9d\xc7\x6b\x37\xb4\x8b\x48\xc5\x70\xbe\x6b\x7d\x87\xe0\x9c\xd6\x0d\xf8\x60\x57\x32\xd9\x2a\x13\x6a\xd3\x2f\x9a\x6d\xe1\x9f\x00\xdc\xdf\x7c\xe8\xb6\xb2\x91\x68\xfa\x13\x41\x73\xfa\xb1\x56\xd6\xe0\x25\x4b\x6b\x7c\x5b\x5f\xe9\x06\x93\x17\xae\xbd\x75\x6b\xe4\x2c\x70\x40\xbd\x60\x68\xa4\xbc\x7c\x7f\x15\xb6\x63\xc4\x3a\x07\x7c\x94\x85\xcc\xe4\x7c\xe9\x1f\x2f\x6c\x27\x98\xff\xec\x3c\xd0\x57\x07\x59\x70\x03\xf3\xef\x57\xe0\x61\x30\x0d\x0d\xa6\xa1\x41\x6f\x01\x6d\xd0\x5b\x0c\x7a\x8b\x41\x6f\x11\xd6\x06\xbd\xc5\x93\x87\x1f\xf4\x16\x83\xde\x62\x30\x0d\xad\xb7\x81\xc5\xea\x6e\x03\x8b\xb5\xb3\x0d\x2c\x56\xdd\x06\x16\x6b\x60\xb1\x06\x16\x6b\x60\xb1\x06\x16\xeb\x58\xdd\x3c\xd5\x34\xf4\xa4\x29\xf4\x1b\xbc\x90\xe9\x13\x82\xb7\x0a\x99\xee\x88\xdd\x42\x9d\x7e\x22\xc7\x99\x4c\xa8\xb6\x61\xb6\xe6\x13\x6b\x85\x52\x34\x47\x33\xc5\x88\xfc\x43\x0a\x86\xd1\x2c\xe6\x7a\x80\xb1\x40\xea\x05\x2b\xcd\xeb\x67\xea\x7c\x67\x08\xc1\x10\xfb\x35\xc4\x7e\x0d\xb1\x5f\x5b\xdb\x8b\x89\xfd\x5a\x50\x85\x70\x8b\xa4\x71\x7b\x28\x98\x87\x93\x3e\xb2\x32\xff\x99\x46\x82\x19\x70\xb7\xe0\x08\x49\x22\x1a\x90\xc2\x9d\x49\xad\xc1\x9f\xa5\xb7\xed\xfd\xb0\x62\x35\x2c\x8a\xa6\x29\x4b\x49\xc1\xca\x31\x82\xa8\x24\x33\x2e\xd2\x0d\x6b\x75\xfb\xd3\x8d\x1e\x0e\x18\x8a\xd5\x5e\x47\xd0\x37\x87\x89\xc7\x6a\x4f\xa4\x87\x51\xd1\xb7\x8c\xb6\x88\xe0\x8b\x88\xce\x8a\x95\xd0\xc7\x44\x5b\x83\xe2\x57\x81\x32\x7a\xbc\x98\x0d\xc2\xb1\x33\x3f\xf6\x54\x3f\x45\x89\x42\x97\x56\x1e\xff\xb1\x62\xe5\x12\xe2\xf3\x1b\xb1\xb3\xce\x45\x62\x3d\x62\xb8\x22\x09\x55\x48\x56\x63\x58\xe5\x9b\x19\x46\x4d\x8a\x2a\xcb\x46\xd8\xcf\xea\x65\x75\x68\x0e\xe0\x40\x48\xf3\x7b\xb4\x46\x2c\x52\x45\xd3\x4f\x07\xd2\xdf\x0a\x4b\x56\xcf\x69\xb5\x2b\xd4\x8d\x39\xd5\x21\x1e\xcb\x46\xdd\xe1\x06\x6b\x7a\xb4\x7d\x1c\x5b\x5f\x01\xa6\x97\xf8\xf2\x64\x79\x7d\xc7\x9e\x3c\x41\xaf\x08\x2f\x47\x4f\x66\x3f\xba\x45\xd2\x5f\xbf\x48\x7a\xeb\x18\x49\x2f\x3d\x23\xe9\xab\x6b\x24\x4f\xd0\x37\x92\x7e\x3a\x47\xb2\x0a\x6d\xe6\x84\x2c\xe3\x7b\x18\xf5\x23\x79\x9a\x70\xde\x5f\x0d\x49\xf6\x70\xb1\xfc\xf1\xbd\xcc\x4e\x87\xd3\x4b\x92\x50\xdd\x24\x5c\xab\x96\x7a\xf2\xd8\xe7\xd2\x4f\x35\x49\xf6\x74\x2a\x2e\x33\x0e\xe8\xc2\x8e\xa5\xac\x24\xcf\xaf\xb0\xdc\x39\x05\x3b\x7c\xb0\x86\xaf\xd7\xe8\x4f\xd0\x0a\x92\x27\x69\x06\x49\x7f\xed\x20\x79\x2a\xb0\xef\x4d\x4b\xb8\xd7\xae\x80\x4f\xfa\x1a\xfc\xd0\x9e\xc0\x6d\x45\xdf\x40\x6f\x58\xe4\x2e\x72\x5a\x98\xdb\xf7\xdf\x86\x89\x00\xc0\xfc\x1f\x52\x50\x5e\x2a\x23\xdd\x58\xbd\xb6\xff\x9b\x55\xdf\x79\xdd\x44\x4f\xa0\x30\x03\x1b\x1a\xff\x40\x33\xc3\xe4\xa0\xd3\xaf\xd5\x41\x98\xb9\xac\xb2\x90\x23\xf2\x08\x09\xb3\x0c\x79\x43\xcd\x04\x57\xe4\xe4\x9e\x2d\x4f\x46\x41\xea\x81\x76\xf3\x6f\xf6\xc9\x8d\x38\x41\xd6\x69\xed\x5e\xd6\x7c\x96\x14\xd9\x92\x9c\xc0\x6f\x27\xfb\xe6\x51\x7b\xf0\x47\x7e\x6a\xd6\xbe\xec\x47\xaf\xeb\xf4\x54\x05\x37\x69\x41\xdf\x57\x6c\xd9\xd7\x11\x21\x0a\xe6\xdf\xb5\x46\x74\x0c\x35\x80\x99\x91\xdd\x6b\xbe\x09\x33\xb3\x02\xcb\x64\x75\x54\xa8\xae\xe2\x59\x16\x31\xda\x94\x11\x4d\xef\x19\x58\x78\x24\xa4\x96\xe3\x29\xc3\x64\x7a\x08\x3a\x30\x92\x01\x99\x4a\x41\x7a\x5c\x92\x49\x79\x5f\x15\x0e\xf4\x5c\x36\xc9\x88\x21\xb9\x48\x64\xee\x7c\xea\xd1\xaf\x75\x64\x13\xcc\xdd\xb3\xe5\x18\x73\x60\xe2\x73\x18\x18\x48\x80\x55\x4d\xfc\xd0\x12\xcc\x7f\x20\x54\x91\x1f\x80\xa9\x14\xe4\x0c\x3e\x3c\xff\x21\xc6\xa5\xa0\xde\x40\xd4\xbe\xca\x0a\x30\x0b\x33\xc4\xd2\x4e\x50\xad\xee\xed\xae\x1d\x8b\x18\xda\x65\x8a\xf3\x37\xe3\x14\xed\x0d\x67\x54\x68\x7e\x5e\x2b\x69\x26\x04\xe0\x00\xb8\xe4\x54\x8a\x53\x8d\xf3\x73\x78\xcd\x75\x10\xe3\x75\x50\xef\x7b\x63\xf1\x43\x6b\x01\x1e\x79\xca\x66\xb4\xca\xb4\xcd\x46\x6a\x50\x1f\x50\xfa\x88\x11\x3e\x3a\x7b\x89\x65\xf8\x67\xb2\x9c\xf2\x34\x65\x02\x42\x1c\xdc\xf4\xa7\xd2\x05\x04\x35\xe0\x6e\x30\x5b\xeb\x8c\x63\x86\xbd\xcc\x94\x1c\xad\xf6\x98\xd4\xd9\x4a\xcd\x2d\x7a\x5c\x30\xd1\x1e\x80\x70\x65\x36\x55\xb1\x28\xa6\x16\xb8\x1e\xcb\x0f\x66\xc5\x82\x7a\x0a\x68\x8b\x6c\x15\x61\x82\x4e\x41\x23\xde\xbe\xd2\x37\xc2\xd3\xba\x90\x19\xa3\xba\x2a\x19\x99\x53\x1d\xa0\xe3\x77\xed\x28\xbe\x47\x4f\x47\xba\xbd\x7d\xbf\xb8\x7a\x06\xc4\xbb\x3a\xe8\x80\x7b\x83\x70\xaf\x90\x7a\x40\xbf\x9f\x2d\xfa\x5d\x03\xfa\x7d\x60\xe0\xb5\x4e\x07\x24\x6c\xdb\x67\x84\x84\x85\x4b\x04\xfd\xcc\x76\x10\x54\x0d\xa2\x1f\xaf\x9b\x92\x6a\xb4\x86\x10\xea\xd6\x4f\x63\xe8\x02\x01\x01\x86\xa0\x87\xd4\x99\x83\x2b\x61\xd3\xe1\x83\x41\xb8\x19\x16\x11\xd6\xaa\xd7\x41\xc4\x98\x4e\x74\x93\x82\x29\x30\x32\xb0\xda\xc3\xc4\x1b\x06\x7a\x8d\x59\x0a\x04\x03\x36\x0a\x54\x91\xae\x86\x07\x36\x7d\x83\x65\x23\x67\x54\x28\x72\xe2\x9c\x5c\x4e\x55\xf3\xc6\x49\xd4\x85\x77\xc9\x3f\xeb\xb1\x21\xd7\xb3\x9f\xf0\xb3\x19\x7a\xb0\x24\x0d\x96\x24\xbf\x0d\x96\xa4\xf5\x49\x0c\x96\xa4\x6d\x6d\xb0\x24\xf5\x1a\x7f\xb0\x24\xb5\xdb\x60\x49\x1a\x2c\x49\x83\x25\x69\xb0\x24\x0d\x96\xa4\xc1\x92\x14\xfa\xd1\x3e\x2c\x49\x8d\x18\x74\x0c\x39\xda\x17\x59\xad\xa7\x3c\xd6\x19\xa3\x9a\x27\x4d\x5c\xac\x7b\x0b\xff\xf5\x5c\x42\xb5\x2f\x06\x3f\x55\xa4\xf6\x05\xf4\x35\x0d\x46\xb4\x44\xbd\x55\x7e\xae\x25\xec\xb5\x31\xf6\x24\x5a\xff\xcc\x95\x4b\x9e\x0b\xef\x31\xae\xc3\x47\x17\xcc\x63\x4b\x17\x4e\x59\x13\xe9\x93\x92\x33\xa7\xec\x3d\x37\x07\x2e\xa4\x6e\xff\x28\x34\x1f\x37\x6f\xd4\x2e\xd2\xa0\x93\x76\xf9\xec\x62\x36\xdd\xc9\x2c\x8d\xf2\x53\xac\x14\xfe\x6c\xa0\xcd\xe0\x7f\x56\xb6\x66\xcb\x95\xad\x25\x07\xc1\x79\x65\x25\x84\x61\x8f\xa4\xb0\x71\x2c\x11\x33\x41\xd2\x82\x7a\x66\x7b\x2b\x51\x98\x82\x35\x82\x44\xd5\x1c\x93\x17\x02\x41\x35\x16\x8a\xb4\x59\xa7\xa4\xb0\x5a\x7a\xf3\x04\xfb\x89\x98\x44\x7d\x61\x61\x3f\x79\xbd\xa2\x98\xbb\x7a\x0d\x77\xd4\x9f\x2c\x57\x70\x8e\x34\xcb\xe4\x63\x0c\x7d\x8a\xbc\x11\xbd\xd3\x23\x06\x43\xef\x63\x74\x1e\xc5\x95\x78\x81\x50\x5e\x7d\x48\xb6\xb8\xb3\x0d\xc9\x16\x5f\x46\xb2\x45\xcf\x10\xeb\x67\x5d\xec\xde\x2b\xc8\xca\x78\xd0\xac\x8b\x84\xfc\x75\xc1\xe0\x16\x95\x0c\xad\xa7\x55\xa6\x79\xd1\xc4\x59\x2b\x3c\xa1\x0c\x45\xea\x99\x8d\x87\x6c\xdf\x5e\x33\x1b\x9a\x2c\x3a\x87\x5a\xb9\xe5\x30\x1e\xc4\x6d\x2b\xc0\xa6\x18\x33\x08\xfa\x77\x4c\x75\xe8\x64\x6d\x0c\xbc\xe4\xcf\x1d\x4f\x16\x84\xff\xae\x5c\xc9\x54\xcf\x08\xaf\xc8\x99\xa1\x8e\xd9\xd2\x9a\xad\x5b\x88\xb0\x45\x56\x03\x06\x40\x3d\xd8\x03\x73\x0c\xea\x9c\x3f\x30\xd1\x50\xdf\x33\x75\x7e\xee\x78\xe2\x55\xfe\x21\xa0\xf7\xa7\x70\x18\x21\x58\x3b\x96\x33\x58\xa1\xf7\x01\x23\x6c\xe0\x08\xfe\xe8\x51\xd9\x3f\x75\xf3\x04\x01\x83\xe0\x95\x76\x01\xaa\xde\x41\x37\xbc\x40\x67\x2f\x07\x8c\x03\x8c\x09\x36\x8b\xd3\x8a\xf7\x08\x32\xeb\x9b\x2b\xf4\xb0\xc1\x65\x07\x0d\x2c\xfb\x7c\x52\x7a\x3e\xb3\xf9\xef\x33\xc8\x47\xf5\x42\xcc\x7d\x43\x42\xaa\x6d\xed\xb9\x12\x52\x1d\xdc\x9c\xf7\xd9\xe5\xa5\x3a\xaa\xf9\xee\x38\xa6\xbb\xcf\x2c\x2f\xd5\xb3\x98\xea\x5e\x78\x86\xaa\xc3\x99\xe8\x86\xf4\x4f\xcf\x93\x61\x33\xd6\x0c\xd7\xff\x56\x3d\xab\xf9\xed\x59\x4d\x6f\xcf\x6f\x76\xeb\xc5\xab\x3c\xd5\xdc\x16\x7d\x4d\x9e\x6a\x66\xeb\x13\x33\xd0\x0f\x9e\x8f\x17\xa4\x75\xe4\x20\x81\x97\x11\x9c\xf5\x4c\x91\x01\xcf\x15\x15\x70\xd8\x88\x80\x67\x08\xc6\x3a\x52\x20\xd6\x33\xfa\xff\xc7\xf2\x1c\x51\x9c\xc6\xd3\x10\x67\x1f\x76\xa0\x67\xc0\x55\x4f\xe4\x79\xcc\x40\xab\x9f\x01\xfe\xec\x15\x60\x35\xa0\xd0\x67\x42\xa1\xfb\x0b\xa8\x3a\x5e\x30\xd5\x80\x48\x6d\x7b\x32\x22\xed\x19\x34\xb5\x37\xbd\xfe\x61\x82\xa5\x8e\x1d\x28\x75\x80\x20\xa9\xe7\x08\x90\x3a\x40\x70\xd4\x60\x0d\x09\x6c\x83\x35\x24\xb4\x0d\xd6\x90\x6d\x6d\xb0\x86\xac\xb6\xc1\x1a\x32\x58\x43\x06\x6b\xc8\x60\x0d\x59\x1f\x70\xb0\x86\x0c\xd6\x90\xb0\x36\x58\x43\x8e\x63\x0d\x89\x0d\x38\xea\x07\xcb\xcf\x13\x68\x74\xdc\x20\xa3\xfd\x07\x18\x3d\x63\x70\xd1\xcf\x4c\xe1\x12\x1d\x48\xd4\x0f\xcc\x5f\x4a\x00\xd1\xcb\x08\x1e\x7a\xf6\xc0\xa1\xa7\x06\x0d\xed\x27\x60\x28\x02\xda\x7b\xc2\x79\x21\xd3\x4b\xa1\xf9\x53\x8b\x5e\xf9\x00\xb8\xad\xf2\x15\x7d\x90\x3c\x25\x45\xa5\x6d\xb1\x9d\xa1\xfa\x55\x27\x0c\x1c\xa7\xfa\x55\xeb\xf0\x86\x12\x58\xbb\xda\x8b\x29\x81\xb5\xed\xcc\x86\x3a\x58\xed\x36\xd4\xc1\x1a\xea\x60\x0d\x75\xb0\xb0\x0d\x75\xb0\x86\x3a\x58\x43\xf6\xc2\x21\x7b\xe1\x90\xbd\x30\xfc\xab\x21\x7b\xe1\xf6\x36\x64\x2f\x8c\x69\x43\xf6\xc2\xe0\xd1\x87\xec\x85\x43\xf6\xc2\xb8\x81\x87\xec\x85\x64\xc8\x5e\x38\x64\x2f\xfc\x8c\xb3\x17\x0e\x75\xb0\x3e\x8b\x5a\x2c\x43\x21\x96\x88\xb1\x5f\x56\x21\x96\xa1\x0e\xd6\x50\x82\x65\xb5\x0d\x75\xb0\x3e\x23\xdc\x3b\xd4\xc1\xfa\x9c\xd1\xef\x50\x07\x6b\x40\xc2\x9b\xdb\x50\x07\x6b\xa8\x83\xd5\xd9\x86\x3a\x58\x83\x25\x69\xb0\x24\xb5\xdb\x60\x49\xda\xdd\x06\x4b\x52\x57\x1b\x2c\x49\x3b\xdb\x60\x49\x8a\x6f\x83\x25\x69\xb0\x24\x0d\x96\xa4\xc1\x92\x34\x58\x92\x86\x3a\x58\x43\x1d\xac\x90\x1d\x1c\xea\x60\x6d\x6e\x43\x1d\xac\xa1\x0e\xd6\x50\x07\x0b\xdb\x50\x07\x6b\xa8\x83\xb5\xb9\xb9\x2a\x52\xad\x88\xa8\xcf\xb7\x18\x56\xfc\x32\x86\x8a\x58\x43\x45\xac\x2d\x6d\xa8\x88\x35\x54\xc4\xda\xd4\x86\x8a\x58\x43\x45\xac\x1d\x6d\xc8\x01\x19\xd8\x86\x1c\x90\xa1\x6d\xc8\x01\xb9\xad\x0d\x39\x20\x57\xdb\x90\x03\x72\xc8\x01\x39\xe4\x80\x1c\x72\x40\xae\x0f\x38\xe4\x80\x1c\x72\x40\x86\xb5\xe7\x37\xc0\xfd\x73\xe4\x80\x1c\x2a\x62\xbd\xc8\x8a\x2e\x43\x39\x97\x8e\xf6\x72\xca\xb9\x0c\x15\xb1\xfe\x39\x0b\xb9\x0c\x15\xb1\x5e\x30\xfe\x1c\x2a\x62\x75\xb7\x97\x83\x42\x87\x8a\x58\xff\xcc\x88\x74\xa8\x88\x35\x54\xc4\xaa\xdb\x50\x11\x6b\xb0\x86\x6c\x6d\x83\x35\x84\x0c\xd6\x90\xba\x0d\xd6\x90\xa0\x71\x07\x6b\xc8\x60\x0d\x19\xac\x21\xbb\x27\x3d\x58\x43\x06\x6b\x48\xe7\xe0\x83\x35\xe4\x67\x6f\x0d\x19\x2a\x62\x0d\x15\xb1\x36\xb4\x9f\x99\xc2\x65\xa8\x88\x35\x54\xc4\xfa\x79\x56\xc4\x02\x2d\x2f\x4a\x36\xdb\x20\x3b\x14\x96\x2f\x9b\xae\x2c\x07\x5f\x09\xa5\xcb\x2a\xd1\x55\xc9\x52\x38\x30\x3c\x4c\xc3\x18\x28\x2d\x4b\x67\x92\x80\xf2\x42\x57\xac\xc8\xe4\xd2\x50\xdb\x11\xb9\x95\xe9\x88\x5c\xde\xde\xdc\xb1\xf2\x81\x27\xcc\x41\xdf\x37\x96\xa6\x6f\xdf\xb7\x8f\xcb\x82\x27\x34\xcb\x40\x63\xd1\xcc\x26\xa7\x4b\xa7\xc8\x9e\x2e\x09\xfb\xa4\x59\x29\x68\x46\xb4\x94\x19\xda\x7e\xcc\x64\xac\x22\x5a\x97\x9c\x3d\x30\x42\xcb\x29\xd7\x25\x2d\x97\x24\x67\x9a\xa6\x54\xd3\xed\xa3\x7e\xab\x98\x1f\x9d\xa2\x25\x29\x4a\x36\xc6\x1b\xd0\x9a\x07\xc0\xe6\x37\x5f\xbf\x73\xf7\x9b\xa6\xa9\x0b\xc5\x70\x10\x7e\x57\x4d\xeb\xdd\x3e\xdd\xce\x6d\xa5\xf5\x6e\xa9\x11\x80\xa7\x55\xd1\x14\x5c\xe1\x9e\x6d\x95\x48\x03\xd8\x92\x38\x26\xa4\x13\x3e\x99\x78\x78\x2a\x68\x5d\x8b\x87\xb6\x66\x8f\x89\x07\x5e\x4a\x01\x7c\xe4\x03\x2d\x39\x9d\x66\xcc\x9a\xf1\x6a\xe3\x8e\xe5\xed\xd8\x0e\x78\x79\x53\x1b\x39\x30\xcc\x67\xeb\x95\xec\xa6\x67\x1d\x14\xac\xb5\xd2\x6b\xf1\xf0\x1d\x6d\xab\x19\xc4\xc6\x25\x11\xfb\x82\x59\x12\x25\x6f\xba\x17\x14\xc4\x74\x86\xa8\xc3\xc6\x80\xe1\xb7\xbe\x10\xa6\xb4\x32\x5d\xec\xa6\x97\xad\x6d\x79\x4f\xf3\xa6\x2a\xda\x86\xdd\x98\x90\x77\x56\x34\xa6\xe4\xcd\x7f\xdd\x5c\x5d\xbf\xff\x78\xf3\xf6\xe6\xfa\xc3\x6e\x3c\x1a\x88\x3f\x01\x35\x45\x4c\xb6\x93\xa8\x7f\xe7\xce\x10\x2a\x4f\x31\x61\x18\xaf\x5f\x9d\x7d\x77\xf9\xe1\xbf\xde\x5f\xbe\xbb\x3e\x07\x91\x82\x7d\x2a\xa8\x48\x59\x17\x8b\x58\x29\x17\x7b\x54\x94\xec\x81\xcb\x4a\x65\xcb\x9a\xc2\x6e\xbe\x0a\xab\x77\xc0\xa0\x87\x8e\x51\x0c\x7d\xb4\xd8\x63\x73\xa7\xa0\x06\xa1\x0d\x70\x36\x26\xc2\x92\x29\x99\x3d\xb0\xb4\x4b\xfb\x01\x51\xa0\x6e\x3b\x1a\x23\x6c\x51\x69\xa7\xe4\x71\x76\xd5\x4a\x24\x0b\x2a\xe6\x2c\x9d\x90\x2b\x59\x99\xd1\x7e\xf5\x2b\xd8\xb2\x92\xa5\x55\xd2\xb9\x63\xa8\xa1\x43\x81\xf6\x57\x23\xc7\x00\x18\xb2\xab\xb0\xa2\x9d\x4a\x68\xe1\x36\xd5\x3f\x15\xb5\x14\x9a\x7e\x7a\x1d\x52\x1b\xef\xe4\x57\xde\x87\x27\xae\x56\xa1\x34\xd3\x43\x66\x09\x57\x94\x41\x99\xb9\x8c\x9c\xf8\x6f\x77\xf5\x7d\x6d\xe6\xc7\x52\x1f\x76\x30\xe6\x92\x3d\xb0\x12\x94\x43\x16\x72\x46\xa4\x64\x73\x5a\xa6\x19\x53\x10\xed\xf7\xb8\x60\x50\x38\x12\x25\x5d\x3c\xa8\x8e\xb1\x58\xad\xc8\x12\xb2\x53\xc1\x78\x85\x26\x6e\xc0\xb5\x27\x1d\xcb\x88\xb9\x79\x6f\x4b\xd9\x51\x7e\xac\x75\xfb\xee\x20\x9c\xa8\x76\x04\xd8\x04\xae\xa7\xd6\x88\x31\xf1\xb1\xbc\x32\xdc\xe9\xac\x31\xd0\x9b\xe7\x01\x46\xfa\x60\x59\x3e\x5c\x99\x9f\x48\x31\xe3\xf3\x77\xb4\xf8\x8a\x2d\x3f\xb0\x59\x64\x64\x23\x32\xe6\x56\x3d\x0d\xec\xae\xa1\x0e\xd8\x61\x37\x5b\x79\xc0\x40\xb6\x10\x93\x49\x9c\xc5\x23\xd8\xce\xb1\x56\x54\x10\x45\x04\xcb\xc6\xef\x9d\xd9\x26\x41\x04\x6e\xe3\xe4\x82\x05\x42\x9f\x22\x5a\x54\x10\xe7\x6e\x51\x2b\xd1\xd8\x6c\xc6\x12\xcd\x1f\x58\x56\xc7\x58\xdb\xaa\xa6\x36\xe6\x79\x4a\x93\xfb\x47\x5a\xa6\x0a\xea\x64\x52\xcd\xa7\x3c\xe3\x7a\x19\x52\x83\x14\x9b\x15\x6a\x6c\x58\xb6\xd3\x9b\x0b\xa5\x29\xa0\x2f\x57\x4d\xd3\xec\x30\xb2\xfd\xd4\x19\xae\xf1\x36\xba\x80\xe6\xe0\xe1\xa0\xae\x63\xc2\x4a\x43\xe0\xb2\x25\x79\x2c\x65\xb8\x68\xf6\xf1\x9b\xab\x6f\x5e\x93\xcb\x34\xb5\x75\x76\x2b\xc5\x66\x55\x66\x0b\x4a\x4e\x0c\x1f\xfd\x1d\x2b\x15\x97\x62\x44\xee\xb9\x48\x47\xa4\xe2\xe9\x9f\x03\xfb\x7e\x27\x21\x4a\x7a\x26\x5f\x93\x85\xd6\x85\x7a\x7d\x71\xd1\x88\x65\x13\x2e\x2f\x52\x99\xa8\x8b\x44\x8a\x84\x15\x5a\x5d\xc8\x07\x43\x73\xd9\xe3\xc5\xa3\x2c\xef\xb9\x98\x8f\xcd\xe6\x8c\xf1\x72\xaa\x0b\x90\xb3\x2f\x7e\x09\xff\x8b\x5a\xdb\x55\x29\x0b\xf2\x83\x19\x78\x5a\xf1\x2c\x65\xe5\x6b\xeb\x9d\xf4\x03\x3a\xf3\x18\xce\xa0\x94\x59\xc6\xca\xf1\x9c\x09\x92\x4a\x06\xfe\x3c\x82\x19\x0c\xa9\xeb\x99\xcf\xb9\x5e\x54\xd3\x49\x22\x73\x6f\x11\x63\xc5\xe7\xea\xc2\xeb\xfb\x82\x2b\x55\x31\x75\xf1\x2f\x7f\xf8\xb7\xdf\x1f\xe4\xa2\x11\xe7\x5b\xf5\x9a\x9c\x9c\x04\xbc\x2f\x0b\x14\x60\x7a\x5c\xce\x3b\xd0\x71\x2c\x5b\x94\xb4\xc6\xad\x86\x4a\x72\xad\x00\xb5\x38\x3b\x8d\x65\xc4\x22\x96\x3d\x95\x32\x63\xb4\xdb\xdb\xed\x29\xca\x59\x00\xe5\x78\xc2\x12\x84\x9a\x1a\xea\x83\xf8\xc5\x62\xa8\x42\xa6\xaf\x89\xaa\x8a\x42\x96\x5a\x35\x72\xb3\x81\xdd\x51\xfb\x4f\xd0\x1c\x8d\xc8\x0f\xf5\x43\xf4\xaa\xfb\xfe\xf4\x8f\x5f\x5d\xff\xc7\x9f\x4e\xff\xf6\x83\xff\x9b\x27\x41\x7b\x2f\x04\x4c\x53\x15\x2c\x99\x08\x99\xb2\xf7\x30\x03\xf8\xd3\x32\xb8\x97\x49\x22\x2b\xa1\xed\x0f\x9a\xea\x4a\x4d\x16\x52\xe9\x9b\xdb\xfa\xcf\x42\xa6\xab\x7f\x05\x98\x79\x0f\x48\x5a\x61\xaf\x6f\xa9\x0e\x48\xdb\x10\x45\x60\x1b\x64\xd7\xe3\xb6\xd8\x2f\xfd\x4a\xd0\x39\x85\x7f\xbe\x75\xd3\x35\xe4\xe7\xb1\xe4\x5a\x83\xcb\xa7\xcd\x14\x21\x67\x23\x77\xa5\x91\x97\x7c\xf8\x22\x4a\xb5\x1c\x8c\x39\xea\x5d\xeb\xb1\x38\x98\xbd\x5d\x59\xad\xdb\xb1\x0e\xaf\x6b\x1a\xd1\xcb\xdb\x1b\xf2\x80\xbb\x71\x80\x85\x3c\x05\x15\xb8\xe8\xfb\xb7\x47\x41\x09\x6e\x34\xb7\x71\xb5\x08\xfa\x1a\x8d\x6c\x75\x2e\x00\x92\xf1\x9c\x5b\x1f\x07\x5b\xff\x3b\x84\xc4\x9d\xe1\x67\x93\xa4\xa8\x46\xb6\x8b\x49\xce\x72\x59\x2e\xeb\x3f\x59\xb1\x60\xb9\x11\xba\xc6\x4a\xcb\x92\xce\xd9\xa8\x1e\x00\x3f\xab\xff\xc2\x0f\x5b\x53\x58\xff\x1a\x65\xf5\xa4\x2a\x0d\xfb\x95\x2d\x1d\x8a\x0b\x51\xe0\x1e\x10\x1d\x04\xd7\x56\x8f\xc3\x06\xf5\x71\xbd\xef\xc7\xdb\x9e\xd6\x5a\x2a\xe4\x8e\xeb\x55\x81\xb0\xf6\x20\xb3\x2a\x67\x6a\x54\x13\x68\x94\xc6\xc5\x83\x11\xdb\xd4\xe9\x21\x10\x40\xca\x1f\xb8\xea\xe5\x22\x7b\x57\x9b\x1a\xc1\x2e\x57\xe9\xa2\xd2\x36\xc3\x94\x57\xbc\x5f\x2a\x90\xd3\xeb\x04\x17\x2d\xac\xf6\x45\x08\xb3\x42\x48\x41\xb5\x66\xa5\x78\x4d\xfe\xdf\xd9\x7f\xfe\xe6\xa7\xf1\xf9\x9f\xcf\xce\xbe\x7f\x35\xfe\xb7\xbf\xfd\xe6\xec\x3f\x27\xf0\x8f\x5f\x9f\xff\xf9\xfc\x27\xf7\xc7\x6f\xce\xcf\xcf\xce\xbe\xff\xea\xdd\x97\x1f\x6f\xaf\xff\xc6\xcf\x7f\xfa\x5e\x54\xf9\x3d\xfe\xf5\xd3\xd9\xf7\xec\xfa\x6f\x81\x9d\x9c\x9f\xff\xf9\x57\x41\xd3\xa3\x62\xf9\x4d\x00\xd6\xc0\x36\xee\x91\xb6\xab\xf9\xaa\xaf\x55\x8f\x0b\x3d\x96\xe5\x18\x3f\x7f\x4d\x74\x59\x85\x08\x12\xee\xd8\xfa\xc0\xb9\xab\x7c\xfe\xba\xc1\x78\x35\x75\x38\x00\x20\x3f\x85\x00\x28\x96\x94\x4c\xef\x4b\xd1\x80\xbd\x39\x02\xb8\x62\x1f\x1e\x74\x0f\x8d\xee\xa1\xce\x36\x04\xfb\xd5\xb0\x0e\xb3\x52\xe6\x13\xe2\x29\xb3\x1f\xc0\x17\xd0\xbe\x77\xcf\x02\x23\x46\x06\x5d\xc5\xa0\xab\x18\x74\x15\x83\xae\x62\x45\x57\x71\x87\x68\xe4\x85\x2b\x2a\x98\x78\xd8\xa5\xf2\x8f\x30\x0c\xbf\x85\xec\x89\xbe\x71\xd8\xc9\x17\x5a\x92\x42\x16\x55\x46\xf5\x16\x83\x56\x84\xa5\xb8\x0e\xe2\x74\x66\x37\x03\xf9\x60\x95\xb5\xb4\x3f\xdf\x6c\x9a\x24\x97\x59\x46\xb8\x40\x0c\x6f\x3a\xd8\x3a\x82\xb3\x7c\x95\x0c\x85\x0b\x42\xd1\x2c\xfc\x60\xa6\xfc\x68\x73\x3e\x7a\x06\x3d\xae\x88\xd2\xb4\xd4\x5c\xcc\x27\x98\x13\x12\x69\xb4\x35\xe7\x70\x51\x67\x86\xdc\x3a\x64\xcd\xb3\xd6\x7e\x91\x6b\xc9\x60\xd1\xeb\x46\x69\xb7\x4c\x98\xa5\xa6\xf7\x60\x8a\x4c\x58\xca\x44\xb2\xc3\x50\xf6\x1d\xfa\x5a\xba\x3d\x9b\x1a\x49\x0b\x8c\xf9\x88\x54\x49\x5a\x15\x19\x4f\xcc\xf9\x98\x99\xc7\xf5\x7d\x93\xe7\x95\x06\xb3\xf0\xb1\x6c\xf6\x06\xd2\xac\xe1\xc9\x33\xdd\x03\x89\xaf\x25\xde\x3a\x2e\xa0\x56\x19\x6e\x3f\xf1\x20\x56\x28\x8c\x61\xa9\xad\x49\x9d\x1c\xde\x1a\xa7\xd2\xe8\x36\xdb\x1c\xca\xb1\x0d\x62\x61\xfc\x49\x3c\x6f\xd2\x97\x2f\x39\x26\x4f\x72\x44\x7e\xa4\x3f\x2f\x72\x28\x3e\xe4\x39\x79\x90\x17\xcf\x7f\x44\xf1\x1e\xe1\x7c\x47\x38\xcf\x11\x61\x1b\x89\xe5\x33\xc2\x79\x8c\xbe\xc2\x6f\x51\xb2\x19\xff\x14\x81\x10\x2f\x45\xa3\x99\xe2\x29\x13\x9a\xcf\xb8\x59\x27\xb8\xf4\x15\x4c\x34\xfe\x7a\x36\xe7\x4c\x6b\x07\x0e\xea\xa0\x84\xe2\x61\x3c\x7e\xbf\xdb\x24\x7e\x0e\xc8\x7d\x40\xee\xed\x0d\x19\x90\xfb\x80\xdc\xb7\x0a\x93\x2f\x09\xb3\x0b\x99\x76\xe6\xbd\x08\x45\x24\xef\xbd\xbe\x56\xc2\xe1\xd1\x65\xd0\x2d\x5c\x97\x55\xe3\x6d\x56\x48\xb8\xcc\x33\xae\x9b\x98\x86\xed\x87\x7d\xb7\xa1\x47\x08\x56\xb0\x5f\x9e\x2a\x97\x53\x66\xa5\xff\x95\xda\x0a\xe8\x3d\xbe\x7b\xac\xc8\xdb\x86\x52\x43\x85\xb9\x77\x2e\xa8\x52\x7c\x2e\xc6\x85\x4c\xc7\x66\x94\x8b\x9d\x62\xd5\x31\x1d\xc8\x6b\xe3\xca\x53\x8f\xfb\x43\x6d\x7a\xf4\xe4\x37\x83\xd1\x2b\xcd\x3c\xbb\x64\x6d\xb1\x72\x59\x45\x02\xf4\x03\x9d\xd2\xe8\x13\x0f\x27\xa7\x82\xce\xd9\xd8\x4e\x76\x5c\x4f\x76\x5c\xcf\xed\x09\xe7\x15\x42\xc7\x93\x8c\xf2\xdd\x21\x5a\x31\xd4\xfb\x0d\xf4\x66\x8b\x54\xd4\x31\x74\x2b\xa9\xe2\x9d\xda\x80\x0b\xf4\xdd\x70\x3f\xe1\xc7\xbb\x3d\x40\xe0\xb2\xd4\x09\xb7\x36\x1c\xe4\x2f\x76\x7e\x1e\x95\xab\xa8\x2b\xa2\xe8\x6a\x29\x68\xce\x13\x07\x7d\x97\x19\xc4\x49\x71\x29\x56\x32\x19\x05\x4c\xa9\x66\x59\x78\x0d\x6f\xe4\x46\x93\x84\x0a\x34\xae\xdb\x28\x17\x83\x49\xea\xb5\xee\xf4\x5a\x09\x0b\xd4\x0b\x08\xcf\x6b\x9d\xfe\x07\xff\xa4\x7c\x27\x66\x29\x18\x61\x42\x97\xc0\x3b\xdf\xca\xd4\xd0\x9c\x49\xeb\xed\x0e\x1f\x9b\x60\xde\x34\xd4\x74\xd4\x11\xe8\x40\x5e\x0e\x9b\xeb\x51\x0e\x77\x63\xcc\x85\x69\x6d\x69\x21\xd3\xc9\x86\xbb\x12\x5e\x88\xe3\x56\xa6\x36\x9e\x4f\xb7\xe0\xcd\x5c\x23\x00\xb5\x9c\xde\xbb\x28\xbb\xda\xee\x49\x1f\x28\xcf\x02\x3c\xcd\x09\xe4\xae\x53\x3c\x35\x02\x52\x00\x52\xad\x27\x16\xc6\x27\xad\x87\xbf\x19\x86\xe2\xbe\x33\xd1\x60\x27\x08\x6c\x8b\xab\xcb\x69\xb1\xf5\x2b\x74\x45\xd9\x17\xbe\xfc\x1a\x5d\x65\xf0\x93\xa9\xf5\x48\xc8\xe9\x27\x9e\x57\x39\xa1\xb9\xac\x30\x9e\x7e\x9d\x96\x05\x85\x1a\xee\x83\x32\x6d\xa0\x48\x6a\x1b\x49\x22\xe1\x17\x39\x3e\x20\xfe\x85\xfa\x52\x04\xf9\x50\xc4\xf9\x4e\x44\xf8\x4c\xf4\xf6\x95\x70\x5e\x51\xfb\x02\xe4\x0f\xb6\xbf\x55\x50\xe6\xa2\x13\x94\x1d\x46\xdf\x0d\xcb\x37\xb3\x66\x0c\xae\x88\xcc\xb9\xd6\xd6\xf9\xc8\xc3\x39\x23\x23\xda\xf9\x9e\x3a\xf6\x82\xf1\x19\xa2\x36\xae\x08\xfb\x54\x64\x3c\xe1\xe0\xf0\xe5\x9c\xfc\x76\xf3\x1c\x20\x39\x3f\x72\x2c\x4d\x46\x05\xe1\x79\x81\xa9\x2e\xe0\xa2\x8c\x1d\x3b\x63\xa3\x52\xea\x59\xda\x30\x2a\xf6\x29\x31\x22\x27\x4e\x64\xb8\xaf\xc3\x7d\x8d\xbe\xaf\x6a\x4f\x52\xb1\x2f\x11\x37\x51\xf7\xb5\x64\x6c\xae\x12\x44\xc4\xa3\x8c\xea\xa0\x6b\xd7\xc5\xbc\x76\x09\x61\x3f\x30\x30\xf8\xdd\x31\xad\x6c\x7c\x3f\xf4\xb4\x4b\xbb\xb5\x96\xe3\xb1\x4e\x22\xeb\x92\x65\x50\x50\xdf\x79\x6f\x34\xd1\xd1\x3b\x04\x36\xbd\xca\x50\x81\xd8\xcd\xf2\x22\xa3\xba\x11\xca\x9f\x10\x46\x1d\xc2\x36\xc6\xa4\x41\x7c\xde\xc4\x87\x87\x11\x14\x3a\xb9\xdf\x67\x4c\x60\xd8\x37\x65\xe1\x01\x44\x94\x6e\xcf\xb6\xc0\xd4\x83\xe1\xa2\x4c\x90\xeb\xdb\xa1\x13\x0a\x46\x28\x48\xc3\x93\x06\xc6\x8b\x5f\x07\x4e\x0c\x78\xa8\x54\x80\x11\xbb\x17\x9a\xee\x2f\x7e\xef\x8e\x94\xd2\xef\xe8\x49\xfc\x8e\x99\xb6\x2f\x2a\x51\x5f\x4c\xea\xa5\xe0\xb4\x4b\xfd\x5d\x95\x63\xd2\x2d\xf5\xfc\x30\x30\xa9\x5e\x0c\xec\x1e\x39\x71\xde\x91\x53\xe5\x3d\x47\x72\xbc\x83\xc9\x0f\x01\xa0\x19\x6f\x64\xd2\x32\xb3\x25\x09\xc2\x8c\x0e\x1f\x9b\xf7\x61\x3b\x1a\xcf\x78\xaf\xa7\xe3\x38\xaa\xed\x84\xec\x8f\x8e\xcf\x35\xd8\xa9\x99\x34\xc0\xb8\xd6\x34\x59\xd8\x14\x77\xf8\x8b\x81\x04\xb1\x24\x06\x08\x34\x52\x72\x9b\x65\x6b\xd7\x39\x2f\x18\xd1\x25\x14\xa4\xfe\x63\x7d\x21\x46\x68\x61\xff\x93\x97\xc9\xa4\x2e\xa9\x5c\x03\xe3\x1f\xdd\xbf\xfe\xf4\xc4\xfc\x36\x61\x4c\x0e\x4e\x69\x9f\xbc\xea\x35\xf4\x48\xb8\x48\xc1\xa7\x11\x59\x21\xdc\x3c\x1c\xcc\x6c\x2d\xac\x7b\x62\x73\x83\x61\xa2\x3d\x6b\x0d\x04\xe7\xc7\xe6\xe5\x4e\xd6\x01\x7c\x3e\x1b\xd5\x44\xed\x67\x50\xdf\x61\x46\xde\x4b\x5b\x9b\x9e\x8d\xc8\x2d\xa8\xe1\x9b\x27\x70\xe7\xdf\x4b\xac\x52\xdf\x91\xec\x24\x10\xfd\x77\xf2\x8c\x71\xfb\xf9\x55\xc3\x50\xe2\xc6\xb4\x18\xca\xe6\x62\xf9\x2c\xe5\xce\x8d\xbd\x67\xcb\xce\x5d\xb5\x4c\x82\x65\x66\x81\x98\x8f\x1a\x18\x75\x44\x1e\xf9\x86\xff\xed\xac\x4a\xf9\x94\x0b\x9c\x0a\x0e\xec\xce\x19\xc6\x76\xe7\x61\x24\x90\x2c\x0b\x98\x44\xe0\x6e\x87\x71\xbc\x71\x5b\xfe\x4d\x04\xa7\x5b\xd3\x8b\xae\x2d\xdd\xc4\xdf\x7a\x4c\xed\xf5\x8f\x15\xcd\x26\xad\xcc\x32\xf8\xa8\xeb\xba\x59\x47\xe7\x55\xba\xf9\xc8\xb3\x34\xa1\xa5\x0d\x38\x04\xf4\x43\x94\xb4\x16\x41\xc0\x7e\x49\xa7\x4b\xbb\x43\x80\x0d\xf0\x28\xf4\xee\x2d\x68\xa9\x79\x52\x65\xb4\x24\xe6\x8e\xcf\x65\x19\x94\x3a\xa6\xf3\x30\x1b\x68\xbe\x63\x89\x14\xe9\x5e\x85\xe8\x8f\xab\x9d\xaf\xfa\x2f\x17\xac\xe4\xb6\x3c\x3a\xcf\xd9\xea\xf5\x3a\x6b\xf9\x42\x74\xc9\x61\x33\x87\xec\x6a\xdc\x32\xf2\x35\xa3\x6d\x2b\x26\x56\xcf\x39\xf7\x08\x4e\x7d\xdb\x27\xe4\x2f\x4b\xa7\xa2\xed\x62\xc8\xb9\x76\xc9\x7c\x14\xd3\x2e\xdd\x93\xbb\x8a\xf6\x24\x1b\x34\x32\x93\x25\xa4\x51\x3a\x4b\x25\x26\x00\x7a\xe0\x89\x3e\x9f\x90\xff\x8f\x95\x32\x20\x4f\x96\x60\x73\xac\xe7\x6f\x2f\x76\xad\x8f\x2a\x19\xb5\x7e\xfb\xaf\xc8\x19\x74\x4a\x78\x9e\xb3\x94\x53\xcd\xb2\xe5\x39\xaa\xa7\x18\x51\x4b\xa5\x59\x1e\x02\x35\x21\x6a\x45\x8c\x47\x85\x77\x7f\xff\xbb\x1d\x6f\x1e\x20\xbf\x99\xcd\xa1\xd4\x6c\x2c\xfa\xab\xad\x40\x4f\x9d\x98\xb3\x53\xde\xdf\x2a\x9f\xf9\x01\x0a\x4d\x6a\x54\x87\x9b\x6b\xd8\xfa\xbb\x01\x50\x4a\x4a\x36\x87\xfb\x89\x77\xee\x89\xb7\x13\x03\x96\xdf\xc9\x4a\x6c\xb7\x81\xb4\xf6\xed\x6b\xab\x82\xfb\xce\xfb\x30\x36\x31\xe1\x7e\x19\x42\x6f\x26\x9e\xd5\x85\x12\x30\xb5\x00\x07\x66\x10\x1b\xbe\xd5\x84\xb5\x04\x98\x67\xf7\x98\x6c\x10\xe6\xd2\x91\xdb\x62\x2f\x29\x09\xeb\x81\xf6\x79\x15\x20\x4f\x84\xdd\xb9\x95\xac\x7b\xae\xa2\x1c\x00\x30\x6e\x71\x03\xc1\x30\x19\x96\xda\x58\xd0\x2e\xb4\x23\x6b\xed\x26\x39\x7d\x7d\xba\x17\xaa\x83\xbb\x51\xca\x82\xce\xe1\xb2\xee\x73\x53\x56\xfb\x26\x29\xd3\xac\xcc\xb9\x60\x8a\x2c\xe4\x23\xfe\x8e\xcc\x40\x61\xdf\x62\x69\x5d\x09\x8f\x2c\x64\xe7\x8e\x60\xf5\xb8\x26\xbf\x21\x62\x0f\xf0\x5d\x7c\xa4\x4b\x42\x4b\x59\x89\xce\x1c\x0d\xc0\x45\xd7\x94\xe3\xdd\xca\xa4\xdf\x4b\xc1\x6a\xf7\x87\x2e\x2a\xdb\x22\x6d\x53\xa6\xa9\xb9\xf0\x5f\x4c\xbe\x78\x15\x34\x87\x0f\x2c\xa9\x4a\xc5\x1f\xd8\x07\x46\xd3\x6f\x8c\xc4\xcd\x15\x60\x0d\x2d\xc9\xcd\xec\x56\x2a\xc5\xa7\x19\x23\x12\xbc\xd1\xaf\x05\x9d\x66\x86\xe9\x5f\x9d\x70\xcd\xa1\xc2\xcc\x65\x49\x2a\x51\x8b\x08\x1d\xb3\xb0\x64\xde\xb7\x8a\x9a\x4e\xce\xf7\x02\x69\x91\xa9\x40\x61\x2f\x57\xec\x33\xce\xd7\xdb\xe1\xaa\xbd\xcc\xab\xb4\x9b\xbd\x4f\xc8\x7f\x87\xd7\x1a\xfa\x1e\x83\xee\x84\xcf\xc0\x6a\x37\xc2\x47\x8f\x25\xd7\xcc\xa3\x5b\x67\x33\x9a\xa9\xd5\xc3\xea\xd8\xf6\x76\x26\x46\xe8\x20\x64\x3f\xba\x5d\x72\xcb\x55\x30\xdc\xe7\xce\xac\xc3\x78\x93\xce\xdf\xb9\x1d\x37\xbb\x66\x31\x44\x83\x2f\x17\x54\xa4\x59\x27\x1c\xd7\x2b\xc8\x96\x5d\x3e\x75\xd6\x5d\xa0\xb9\x6f\xb0\x91\x23\x9f\x4b\x5d\x50\xc3\x58\x02\x33\x09\x8a\x5b\x91\xd6\x57\xcc\x3b\xad\xe8\x81\x10\x1c\x10\x69\xf9\x68\xc3\x5e\xf8\x2b\xae\xec\x05\x07\x5d\x09\xd0\x6e\xcb\xe1\xe6\xb4\x33\x83\xba\xb7\x03\xcd\x76\x4e\x2c\x83\xb5\x61\xb4\x06\xbd\xac\x8c\xd7\x77\xac\x91\x81\x78\x64\xca\xeb\x64\x39\x8e\xfd\x6d\x50\x76\x69\xf8\x8f\x9c\x35\x13\xeb\x18\x6a\x75\xda\x35\x12\x5c\x9b\xf3\xe6\x59\xd5\x93\xea\x18\xa7\x7b\xca\x6d\x89\x06\x55\x6a\x98\x9f\xd5\x96\xcc\xd4\x14\x43\x78\x03\x92\xee\x12\x56\x96\xb2\xac\xa5\x88\x39\x13\x20\xaf\x80\x1e\xce\xa9\x92\x6c\x7c\x0b\x55\x52\x04\x41\x5a\xc7\x29\x1b\x54\xd3\x4d\x41\xf0\xb3\x8e\xc1\x80\xcc\x9c\xc9\x72\xe5\x3e\x38\x19\x6c\x03\x31\x89\x9e\x3e\x10\xe7\xa6\x63\x04\x2b\x4f\xd8\x32\x5b\xd8\x28\x00\xe4\xac\xbe\x3c\xfb\x09\xbb\xaa\xa6\x87\x66\x17\x2d\x5f\x08\xac\x4f\xc3\x2d\xd6\x40\x77\xaa\xb6\x73\x8e\x11\x34\xe2\xe4\x84\x9c\x61\x3f\xa7\x8a\x94\x52\xea\xfd\x10\x76\xbb\x3f\xd7\x9f\x8a\xbd\x2a\xa2\xae\x6d\x7e\x63\x52\x1c\x6d\xb3\xfe\xc2\x16\xf4\x81\x29\xa2\x78\xce\x33\x5a\x66\x90\x3c\xf6\x0e\x97\x07\xc1\x60\x1b\x33\xb4\x07\x64\xf7\xf6\xb4\xde\xfe\x3c\xbd\xee\x0e\x79\x8e\xc4\xad\xc1\x1c\x11\x50\x1c\xb7\x26\x28\x0d\x5d\xe9\x8a\x66\xd9\x92\xb0\x4f\x49\x56\x19\x8c\xb9\x17\x81\xb9\x8f\xac\xbc\x2a\x26\x17\xd6\x3d\xfc\x88\x42\x72\x5b\xed\x69\x78\xd6\xd4\x81\x13\x08\xc5\x68\x3a\x01\x3b\x08\xf8\xda\xd3\x24\x61\x4a\xb9\xcc\x06\x4b\x3f\x3b\x43\xbd\x86\xcf\x25\x59\x3f\x7d\x54\xd7\x19\x55\x9a\x27\x7f\xc9\x64\x72\x7f\xa7\x65\xb9\x57\x7d\xd1\xa6\xfe\x57\x4a\x20\x5c\xfe\xf5\xce\x20\xef\x7b\x2f\xa3\x96\x75\xc6\xf4\x8d\x53\xb4\x63\xa0\xfb\x6a\xca\x32\xa6\x4f\x15\xc8\x90\x24\xa7\xc9\x02\x0b\x71\x80\x80\x28\xea\x9c\x6d\x56\x85\xbd\xf3\x88\xb0\x45\xfa\x5b\xda\xb4\x81\x17\xf6\x2a\xfc\x92\x3e\x2a\x86\x2b\x9f\x9a\x95\x43\xb5\x91\x80\x4b\xb6\x57\x0f\x22\x9c\xcb\xcd\xd5\xce\x17\xc3\xbd\x83\x66\xea\xa3\x99\x63\xa7\x2b\x40\xbc\xbf\x08\xf6\xec\xf4\x8a\x33\x9e\x31\xd4\x97\x62\x7c\xac\x0d\xf5\xb5\x77\x12\xa0\x63\x29\x2b\xf2\x48\x51\xf5\x0f\x98\x3e\x28\xdc\x95\x17\xaf\xc9\xb5\x50\x55\xc9\x1a\x8b\xd2\xea\x60\x9b\xb8\x57\x00\x29\xd4\x50\x1a\x9c\x1e\xa2\xcb\xc5\x76\xfd\x89\xe6\x45\xc6\xd4\x6b\x72\xc2\x3e\xe9\xdf\x9d\x8c\xc8\xc9\xa7\x99\x32\xff\x13\x7a\xa6\x4e\x26\xe4\x26\xaf\xfd\x8d\xb9\x98\xb1\xb2\xac\x43\x86\xf1\x03\xc3\xbd\xb6\x24\x8e\xee\x31\x8f\x0d\xb7\x76\x6f\x21\xec\x76\x21\x1f\x49\x2a\xc9\x23\xd6\xac\x30\x24\x13\xf8\xdc\x3a\xe7\x8e\xb7\xd9\x40\xcb\x13\x99\x17\xa5\xcc\xb9\x67\x20\x86\x7b\xdb\x39\x60\x84\x6b\x0a\x18\x6f\xba\xf5\x5c\xa4\x17\xe0\xd6\x9d\x3b\xd8\xf5\x1e\x88\xfd\x40\xed\xcd\xcc\xf9\xb3\xa3\xcc\x63\xb9\x6b\x18\xd0\x76\x63\xe0\xd4\x8e\x63\x68\x42\x1c\x64\xbe\xad\x33\x74\x92\x8b\x94\x3d\x5c\xa8\x94\x7e\x31\x82\xa9\x2a\x1b\x1b\xdc\x5e\x17\x55\xe4\x24\x2c\x6d\xef\x9d\xe3\xa9\x46\xfe\x4e\x34\x3d\xcd\x64\x59\x0f\x09\x5e\x29\xaf\x4e\x40\xaa\x30\x63\x27\x54\x90\x8c\xd1\x07\x2b\x6a\x21\x8e\x5a\xa2\xfa\xbf\x93\xf7\x89\x31\xa5\x90\xb6\x39\xe5\x5f\x7e\xdb\x29\xfa\x86\x68\x48\x48\x2f\x68\x72\x7d\x3b\x9b\x4a\x59\xd9\xdc\x4b\x33\x59\x26\xb5\x3c\x68\x75\x28\x4c\x03\x32\xe2\xa2\x65\x75\x78\xa9\x18\x22\x26\xb5\x98\x23\x5b\x07\xf1\x4c\xb4\x7d\x83\x7e\x57\xf0\x1f\x2b\x46\x6e\xae\xea\x5c\xe6\xac\x54\x5c\x69\x83\xb7\xd2\x16\x47\xc2\x91\x4d\x39\xbb\xcc\xe9\x3f\xa4\x20\xd7\x7f\xb9\xb3\x1d\x05\x80\xe2\x73\xee\x77\x27\x82\xa4\xff\xa8\x4a\x66\xb8\xaf\x08\xa6\xaf\xfe\x66\x95\x91\x33\xcf\xc9\x15\xd5\x14\xf9\x39\x1b\xd5\x23\x1a\x12\x6a\xb8\xb1\x29\x17\xa9\xfd\x29\x94\x17\x3b\x00\x67\x64\x8e\xf7\x7d\x57\x08\xa8\x7b\xf1\xdb\x0f\x37\x7b\xe2\xa0\x12\x20\x6f\xf3\x77\x32\x8d\x65\xa3\x4e\xbd\x4f\x1d\xad\xf9\x77\xb3\xa7\x6f\xf0\x39\xc9\x4d\x9f\xa0\x6e\x19\x81\xce\x91\x7c\x03\x2a\x39\xf8\xe7\x5f\x4b\xae\xd9\xa4\x3b\x3f\x6d\x04\x55\x75\x1b\x18\xb9\x0c\xf7\x99\x5b\x82\x9f\xca\x25\x35\x90\x03\xf7\xce\x92\xce\x69\x26\xa7\xc4\xde\x86\x7d\xcf\xfd\xdb\x0f\x37\x3d\xa6\xfe\xed\x87\x1b\x37\x73\xf3\x4f\x39\x3b\xde\xa4\x8f\xc1\x7c\xbf\x5d\xe1\x85\x63\xd8\x94\x26\x09\xd2\x2a\x47\xbd\x4f\x76\x7a\x72\x34\x46\x3a\xe2\x68\xee\xb9\x08\x48\x56\xdc\xbe\xce\xe6\x1b\x23\x94\x62\x0c\x93\xe7\xbd\x77\xb7\xa0\x90\x5f\xda\xe5\x71\x44\x80\x32\x10\xa6\x0c\x7d\x72\xa0\x45\x28\x16\xb3\x20\xe4\x8a\xa1\xba\x38\x7d\xed\x7c\x92\xeb\x2f\x36\x7f\xf0\x0e\x62\x01\x53\x8b\xc8\x09\x86\x06\xa6\x1e\x24\x9f\xa1\xde\x5c\xd4\x3f\xd9\x50\x6f\x4c\x7f\xa4\x98\x3e\x9f\xb4\x74\xbc\x0a\xa6\xbc\x57\xf4\x72\x14\x2e\x6b\xcd\x98\x46\xce\xcc\x6f\x17\x60\xaa\x3b\x9f\x34\xa6\x1b\x08\x8d\x6f\x18\xb1\x80\x31\x0c\x98\x7f\x78\x32\xab\x16\xca\x34\xc1\x41\x9a\xcb\x1b\x4b\xc5\xcd\x37\x1b\xa9\x38\xfc\xe0\x2a\xb1\xbe\x64\x42\x8e\x09\xd2\x82\x48\x39\x80\x69\xe7\x9b\xe1\xc4\xfc\x28\x30\x9a\xfe\x5c\x60\x94\xd4\xd9\xec\x7a\xb0\x0d\xcd\x87\x8e\xfc\xd6\x99\x30\x5c\xa2\xf5\x56\x1c\x20\x02\xf1\x9d\xc5\x7c\xb6\xee\x0f\x32\x1b\x06\x74\xbf\x0a\xc8\x19\x1f\x81\xac\x6a\xc0\x8a\x5d\x95\xfb\xce\x2d\x0a\x11\x32\x3c\x26\x01\x20\x1d\x3c\xc9\x84\x15\x8b\x59\x8c\x73\xa9\xf9\xe0\xed\x5d\x5b\x31\xfe\x86\x15\x0b\xf2\xf6\x6e\x03\x36\x80\xbd\x87\x59\x2b\x54\x97\x9f\x2a\x92\xf1\x19\xd3\xbc\x63\x09\x07\xc0\x07\xb9\x14\x5c\xcb\x72\xb7\xb5\x37\xfc\x8e\xbb\xee\x0e\x71\xc7\x5d\xdf\xe6\xf4\x9b\xba\x12\xef\xbc\xa7\x94\x24\x32\xcb\x58\xa2\x6d\xb1\x25\x38\x82\xa0\x15\x62\xdb\x20\x78\x32\xab\xf7\x99\xdc\xff\x01\x44\x4f\x2b\x64\x5e\x20\x88\x5c\x7c\xb8\xbe\xbc\x7a\x77\x3d\xc9\xd3\x5f\x2e\xe4\xe3\x58\xcb\x71\xa5\xd8\x98\x77\xd7\x6c\xf8\x8c\xe3\xcf\x08\xa6\x23\x08\x28\x15\xd5\xe6\xe0\x0a\x5b\xe5\xea\x1b\x97\x78\x8f\x7c\xab\xd0\x36\x5d\x7b\x26\xb0\x14\x6c\x75\x23\x52\x52\x9b\x5c\x8f\x5a\x3d\x68\x95\x65\x78\x9a\xba\x64\x6c\xe4\xeb\xf4\x2e\x3e\x3f\x3e\xaa\xb5\x09\x2f\x9e\xa9\x3a\xfe\xb5\x88\x21\x8e\xdd\x5c\x1c\xe9\x75\x58\x4d\xef\xed\xe3\xba\x6b\x3d\x47\x4d\xaf\x5e\x98\xc3\xbb\x67\x4b\x02\x61\xab\x33\x59\x1a\xd0\x2e\xdb\x60\xca\x74\x02\xbb\x73\x51\x29\x56\x4e\xb0\xfb\x17\xb8\xf7\x61\x04\x3c\x2c\xcb\x2e\x79\xc2\xce\x7f\x60\xb3\x4d\x1b\x6f\x1f\x37\xe5\xb1\x2d\x2b\x4d\x2b\xbd\x60\x42\x73\x9b\x32\xce\x32\x39\x1b\x4f\x22\xa0\x92\x31\xb6\x63\x6f\x7d\x60\xb9\x9f\xb8\xe2\x3c\x43\x41\x9b\xa6\x0d\x05\x6d\x6c\x1b\x0a\xda\x04\xb4\x83\x16\xb4\x79\x4a\xa1\x32\x43\x40\x0e\x81\x78\x4d\xbf\x90\x0d\xcc\x67\xd0\xea\xfc\x46\x25\x4d\xa5\xc2\x77\xb0\x56\xad\x87\x52\x69\x9a\xf3\xee\xfa\x37\x2f\x90\x98\x25\x5c\xa4\x5d\x9b\x19\xb7\x91\xd8\x63\x5b\x12\xb4\xcf\xac\x3d\xb7\xf6\xd2\xa1\x4e\x1f\x84\x99\x8b\xad\x47\x4e\xdb\x21\xa7\x87\xd3\xcd\xea\x8e\xe6\x4b\xf5\x63\x36\xc6\x39\x8c\x8b\xb4\xd9\xd2\x63\x8b\x9a\x3f\x13\xef\x9a\x97\xa7\xe4\x7f\x11\x3e\x33\xfb\x01\x3b\xf2\x02\xc5\xb5\x17\xaf\x52\x3c\xca\x79\xc4\x08\x65\xc7\x90\x0c\x1a\x2a\x55\x48\x6e\xc3\x47\xeb\xb2\x9b\x88\xb7\x9c\x7e\xd3\x6c\x6a\x41\x4b\x9a\x33\xcd\x4a\x0c\x53\xb3\x61\x71\x22\x84\xe1\x86\x18\xba\x6f\x0a\x26\xee\x34\x4d\xee\xf7\x5c\xce\x78\xe0\xe6\x07\x6e\x7e\xe0\xe6\xff\x89\xb9\xf9\xa3\x38\x6f\x39\x94\x67\xab\x35\x2d\x7d\xff\x42\x2e\x2c\x83\xfa\x42\x08\x4d\x37\xd3\xee\x2a\x49\xc5\x18\x68\xea\xfa\x5b\x6d\xce\xbc\x29\xeb\x87\x36\x19\x88\x86\xa9\xeb\x61\x02\x02\xc1\x6d\xda\x0f\xb3\x1c\x8e\xed\x2d\xf8\xf5\xf0\x7c\x0a\x82\x0c\xaf\xfb\x36\x31\xcd\xcd\x93\x29\xd7\x0d\x99\x54\x4c\x93\x82\x95\x39\xb7\x39\x54\xa5\x20\x89\x8d\x2b\x03\xa6\xd6\x30\xb0\xb6\xbb\x28\x96\x58\x10\x99\x68\x6a\x33\xff\x90\x29\xd3\x8f\x8c\x09\xf2\xea\xd5\xab\x57\x20\x19\xbd\xfa\xd7\x7f\xfd\x57\x02\xf9\xa8\x53\x96\xf0\x7c\xfd\x45\x78\xeb\x7f\x7d\xf1\x45\xc8\xa0\xff\x71\xf9\xee\x6b\x88\x43\x29\xb4\x22\x53\xa9\x17\x76\x6c\xd3\x45\xab\x7b\x35\x22\xff\xe7\xee\x9b\xf7\x4d\xfd\x8a\xf6\xaf\xa0\x51\xac\xb7\x28\x64\x64\x5f\xbd\xff\xea\xf7\xbf\xfb\x5d\xd0\x37\xbc\x84\x2c\xa0\x10\xf0\xdb\x04\x75\x15\x2e\x1c\x49\x48\xbd\x9e\xce\xd7\x72\x8f\xc1\x75\xbd\x72\x3e\x5f\xc0\x41\x70\xc0\xcd\xb3\x8c\x27\x1a\xe9\x24\x52\x28\x04\x09\x5b\xc4\x80\xda\xcc\x5c\x56\x1c\x0a\x32\xd6\xa5\x6c\x44\x32\x7e\xcf\xc8\x4c\x7d\x59\xca\xaa\x68\xf2\xe7\x95\x4c\x55\x19\xd6\xe3\x98\xba\x5c\x04\x0d\xdc\x29\x16\x9c\xb5\xf3\x10\xfe\xca\x81\xd6\xb6\xf8\x2b\x07\x1d\xaf\xc8\x5a\xa3\xba\x4c\xde\x18\xa1\xbb\xa0\xbc\x0e\x8b\x02\xcf\x50\x64\xa8\xda\x2c\x59\x12\x54\x9e\xb8\x29\x39\xe8\xa2\x66\x8b\x52\xfe\x1d\x81\x86\x0b\x97\x9a\xca\xea\x24\x94\x15\x51\x6d\xbe\x44\xd1\x18\xd9\x03\x46\x72\x79\x7f\x0d\x89\xb7\x19\x87\x9b\xb4\x57\xe4\x66\xe6\x07\xa6\x42\xe2\x5b\xae\xcc\x24\xa0\x52\xb0\x9d\x5b\xc0\x28\x1b\x66\x5f\xf7\x0b\x77\x43\x21\x84\x55\x62\xad\x7f\x0c\x38\x0e\x1a\x03\x48\x03\x4c\x9a\xba\xf4\x66\xcd\x28\x18\x4a\x69\xa3\x6d\xed\xbb\x6b\xf5\x0d\x83\xf3\xa2\xda\x08\x4c\xa6\x2b\x7b\x44\x18\xe3\x5c\x89\x8c\x29\x65\x23\x78\x73\x5a\xde\xb3\xb4\xc6\xcf\x13\x08\x8b\x55\x81\x59\xa6\x88\xcb\xcf\xcc\x1f\xd0\x8f\x23\xa7\xcb\x56\x86\x14\x33\x8d\xd3\xc9\xe4\x14\x51\x8b\x2c\x31\x24\x1b\xb1\x80\x79\xfe\x4c\x79\x54\x5b\x77\xeb\x1d\x2d\x14\x66\x82\x35\x62\x1c\x24\xb7\x93\x90\x62\xac\x89\x78\xa5\x76\x2f\x43\x70\x5f\x94\x70\x16\xae\xdd\xc2\x16\x92\x83\xda\xbd\x59\xec\xce\xe3\xe3\x5a\x9c\x7c\x18\x98\x91\x1a\xdb\xb6\xbc\xd4\x76\x8f\xed\x7d\x0b\x95\x70\xa2\x19\xec\x3c\x88\xb5\xd9\x30\xd5\x60\x69\x16\xc7\x68\x9b\x11\x83\xf8\x1b\x1b\x5a\xbf\xab\x4e\xd9\x6a\x7b\x16\xb6\x06\xdb\xf3\x31\x37\xd8\x6e\x66\xab\xd9\x07\x3c\xf4\xe6\x33\x9a\x8e\x0e\x85\xe4\x09\x6a\xda\x31\xb8\x15\x6c\x07\xe6\x59\xb0\xc5\x71\x2e\xd8\x62\xf8\x17\x6c\x61\x0e\x3a\xd8\xfa\x5e\x2e\xe7\xd0\x83\xdb\x63\xc9\x0c\x52\x92\x59\xbd\xf9\x98\xe5\xb3\xf0\x10\x4b\xc4\x9d\xb2\xe4\x0a\xaf\x15\x9d\x2a\x99\x55\x1a\x87\x88\xef\xc4\xa7\x79\x30\x49\x97\x36\x3a\x8c\xd0\xad\x76\xe7\x51\x4a\xe0\x44\x90\x3c\xc5\xf4\x75\x3c\x6f\xad\xa1\xae\xf0\x50\x57\x78\xa8\x2b\xbc\xda\x5e\x56\x5d\xe1\xba\xa0\xba\xda\x59\x3d\x5e\x96\xc4\xd0\x1b\x10\x6d\x5e\x52\xbd\x61\x6c\x89\xe2\x31\x3a\x39\xc5\xc9\xd9\x9b\x3a\x19\x88\xf3\x3e\xbf\x11\x9a\x95\x33\x9a\xb0\x73\x5f\x57\xc7\x8a\x05\xcb\x59\x69\x36\xc8\xbe\xe7\xb2\x5e\xd8\x7c\x67\x64\xba\x74\x57\x8f\xb0\x4f\x9a\x95\x66\x33\xdf\xdc\xdd\x90\xb4\xe4\x0f\xac\x54\xe4\xec\x2f\xcc\xc8\xd3\x58\x4c\x34\x28\xad\xcf\x7e\x23\x28\x61\x1a\xfb\xd2\x0e\x42\x67\x07\x51\x0c\x42\xcf\x8e\xac\x0b\x0f\xc3\x37\x7b\x89\x5b\x8f\xfb\xae\x7c\x25\x69\x08\xae\x7b\x23\x05\x70\x52\x80\x6c\x97\xb2\x2a\xd1\x7b\xa4\xae\xeb\x9c\xc8\xb2\x34\xdc\x1b\x0c\x4d\x15\x29\xd9\xdc\x88\xf3\x25\x96\xb8\x85\x37\xb2\xca\x3c\xd8\xeb\x0d\x3f\xb8\x33\x41\xed\x35\xb0\x23\x28\x2f\xa0\x37\xcb\x6b\x17\xa5\x7c\xe0\xa9\x63\xb5\x7d\x7a\xc5\x15\x29\xa8\xf2\x32\xb7\x50\xa5\x64\xc2\x41\x5d\xdb\x9c\x60\xc0\x48\xa8\xeb\x00\x96\xbd\xce\x49\xda\xca\xa7\xe0\x7b\x34\x48\xc8\x2e\x1f\xe0\x55\x19\x71\x24\x42\xa6\xec\xb6\x9a\x66\x5c\x2d\xee\x0e\x69\x55\xde\x34\x0e\x06\x13\xac\x79\x99\x6e\xb3\x2e\x07\xd9\xae\x85\xe2\xc0\x21\x1b\x7a\x6c\xd8\x79\x6e\x04\x4d\x09\xa7\xe5\xfa\xf7\xaf\x98\x04\x6e\x27\x63\x36\xaf\xdd\x9b\xbb\xdd\x31\xd5\xd8\xde\x37\x6b\xb1\xb9\x9a\xb0\x7e\x41\xca\xbe\x15\x45\xeb\x79\x42\xb3\xed\x75\xdb\xfc\xd6\x66\xd6\x1c\x99\x42\xc1\xc8\x65\x78\x42\x00\xe4\x06\x36\xdd\x1e\x71\xaf\x14\xa5\xcd\x59\x1d\x6c\xe1\x5f\xd9\x60\x45\x72\x89\x19\x68\x04\xd4\xf1\xc5\x97\xa0\x94\x83\xfb\xc0\xcb\x2f\x06\xa9\x72\xe1\x06\x0c\x96\xfa\x2d\x6d\xb0\xd4\xef\xda\x9c\xc1\x52\x3f\x58\xea\x37\xb6\xa3\x38\x9b\x35\xa9\x7e\xa9\x97\x93\xb5\x55\x9c\xb6\x66\x95\xc2\x99\xae\x8e\x20\xa3\x3d\x8a\x0e\xce\xe9\xe0\x52\xeb\x92\x4f\x2b\x7d\xa0\x7a\x79\x2b\x63\x80\x50\xc0\x94\x25\x9e\x63\xbb\x89\x89\x87\xb3\xad\x66\xb0\x26\x0e\x1e\xc9\x0d\xe6\x8a\x27\x35\xf3\x0a\x7c\x2b\x3e\x3c\x55\x24\x95\x49\x55\x57\x30\x86\xd3\x69\xbc\x3b\x43\x0b\x1c\x46\x91\xa2\xf8\xfa\x5f\xfe\x20\x9d\x57\x2b\x95\x8f\xc2\x20\xfc\xcb\xdb\x8e\x9c\x1f\xed\x7c\x1f\xcd\x57\xbe\xe0\xe6\x1e\x13\xf3\x9c\x4e\x65\xa5\xeb\x64\xc0\xff\x64\x3e\x17\x9b\x8c\x10\x5a\x1a\x02\xb3\xd3\xa7\xa2\x31\x2d\xf4\x1c\x63\x70\xe4\x18\x1c\x39\x06\x47\x8e\x6d\xad\x75\x8f\x6f\xd0\x47\xc3\xaf\x12\xdd\xc2\x5f\x2e\xaf\x72\xc8\xd6\x1d\xde\x34\x7e\xd5\x60\x5c\x94\xea\x56\xd3\x93\xac\x88\x9a\x78\xdb\x1b\xd3\x8c\xe7\x1e\xed\x50\x32\xb0\xb9\xcf\x6f\x46\x3f\x90\x71\x1c\x56\x17\xa4\x46\xc0\xd6\x0e\x60\x6f\x72\x0e\x60\xed\x77\xf4\x99\xf1\xdc\x73\x0a\x99\xbe\xc6\x32\xa0\x54\x08\x89\xec\x80\x1a\xd9\x1a\xe9\x23\x1b\x36\x05\xfc\x7a\x41\x13\x14\xcd\x2b\x9e\x02\x26\xa8\x19\x86\x80\xac\x63\xd8\x22\x4f\x80\x44\x9f\x02\x81\x93\x80\x05\x76\xd4\x1c\xf2\x5b\xec\x91\x98\xd6\xc8\x54\xe1\xdf\xac\x66\xa6\xc6\xef\xdd\x49\xa8\x64\xc1\x72\x0a\xff\x7c\xeb\x16\x60\xae\xb5\xe1\x77\x35\xc3\x5c\xa3\xac\xcc\x8d\xec\x39\x6a\xc5\x77\x9c\x3c\x84\xa5\xea\x74\x2d\x5a\x58\x21\x0e\x0c\xbb\xf3\xe5\xef\x58\xee\x6d\xcb\xca\x6a\x40\x10\xe8\x7b\x86\x95\x35\x57\x7c\xa3\x00\x71\xe1\xfe\x1c\x78\x69\x4f\x91\xae\xb0\x1d\xc3\x29\xa4\xaf\x33\xc8\xa8\xb6\xb8\xb4\x59\x9e\xe0\x81\x07\x67\x90\xc1\x19\xa4\xdd\x5e\xb8\x33\x88\x47\xf2\x1c\x06\xdd\xe0\xed\xe1\x1b\x89\x9c\xcb\xc7\x94\x39\xd9\xc2\xca\x2f\xce\x8f\xc3\x39\x71\xc8\xb2\xed\x85\x78\x3a\x99\x9c\xa2\x1f\x62\x23\xf0\x54\x7a\x36\xfe\x03\x61\x22\x91\xa9\xe9\xe7\x23\xf4\x5f\x2a\x0d\xec\x52\xa3\xfc\xf4\xe7\x92\xbb\xb1\x7c\x4f\x46\xe8\x3b\x8e\xae\x46\xa0\x3d\x97\xf4\xf6\xed\x53\x98\x8b\x08\xf4\xd5\x30\x1f\x75\xba\x5d\xbb\x15\x75\x61\x05\xcb\x85\xb8\xdf\x15\xc9\x78\xce\x6d\x21\x59\x73\xdf\x99\xd2\xa1\x2a\x43\x42\xce\xf0\xe3\x49\x52\x54\x23\xdb\xd1\x24\x67\xb9\x2c\x97\xa3\xba\x33\xf3\x63\xab\x77\xfb\x06\x96\xf8\x48\xaa\xb2\x64\x42\x67\x4b\x8f\xcd\x79\x59\x5c\x8e\xdb\xa9\x03\x32\x39\xf5\xe1\x84\x25\x3e\x6b\x5a\xfb\x46\x36\xf6\x72\xb0\x30\xd4\xab\xc5\x3a\xbe\x18\x3c\x3f\x6a\xbc\x09\xcc\x53\x26\x1e\xc8\x03\x2d\x55\xe8\x0d\x20\x7d\xf9\x9a\x94\x3f\x70\xd5\x55\x6a\x79\xc7\xe2\xee\x6a\xdd\x27\xd4\x28\xac\x74\x51\x69\x8b\xee\x1c\x88\xbb\xb2\x14\x35\x68\xaf\xb0\x6f\x5f\x74\xab\x80\x9b\x56\x50\xad\x59\x29\x5e\x93\xff\x77\xf6\x9f\xbf\xf9\x69\x7c\xfe\xe7\xb3\xb3\xef\x5f\x8d\xff\xed\x6f\xbf\x39\xfb\xcf\x09\xfc\xe3\xd7\xe7\x7f\x3e\xff\xc9\xfd\xf1\x9b\xf3\xf3\xb3\xb3\xef\xbf\x7a\xf7\xe5\xc7\xdb\xeb\xbf\xf1\xf3\x9f\xbe\x17\x55\x7e\x8f\x7f\xfd\x74\xf6\x3d\xbb\xfe\x5b\x60\x27\xe7\xe7\x7f\xfe\x55\xc4\x24\xa9\x58\x7e\x13\x8c\x53\xb0\x8d\x7b\xd1\x95\xf6\xb7\x91\x47\xbf\xc2\xfb\x71\xa1\xc7\xb2\x1c\x63\x27\xaf\x21\x31\x7b\x70\x57\xee\x68\xfb\xdf\x91\x86\x6a\x35\x25\x52\x1c\x7b\x7c\xe0\x4b\xf0\x34\x0e\xb8\xb7\x97\x1f\x58\xcb\xae\xf8\x5e\x33\x59\xb8\x3e\xdb\x11\x73\x9a\xe5\x85\x2c\x69\xb9\x24\xa9\x55\x6e\x2d\x77\xe6\x33\x3c\x70\xd5\x18\x98\x64\xca\x77\xc3\xf8\x01\x54\xc5\x39\x4b\x79\x95\x1f\x24\xcb\x21\xf4\xec\x6f\xfa\x23\x94\x5e\xb1\x85\x5d\x9c\xf7\x93\x7d\xcd\xd5\xef\xa2\xc9\x3d\x0a\x2a\xf5\xa9\x84\xe9\x0f\x5b\xe5\x31\x4e\x4e\x56\x8a\x82\x83\x6e\x1a\xfc\x80\x64\xca\x4e\x55\xfd\x2e\x0e\x1e\xa9\x24\x46\x8b\xae\x75\x94\x3d\xb3\x5d\x9d\x1b\x46\xf0\x1d\xf0\x0a\x47\xa8\x0c\x10\x04\x2d\x24\x32\x17\x1a\xff\x07\xfb\xda\x70\x45\x07\xc9\x78\xe0\x3a\xaf\x4b\x88\x4b\x10\xe6\x6c\x4e\xd1\x19\xc9\x64\xe2\xb9\xc4\xb5\x98\x01\x00\x87\x6b\x77\x89\xc3\x6d\x85\x06\x28\xcc\xb8\xc8\xeb\x81\x32\x34\x53\xe8\xe0\xc3\x13\xa8\xe6\x06\xa2\x21\x9c\x59\x04\x24\x7c\x84\x6a\x35\x9f\x78\x5e\xe5\xa4\x52\x66\xb6\x52\xb4\x7b\x69\x26\xfb\xe8\x8a\xd2\x41\x66\x48\x2e\xe0\xa3\x96\x68\x1c\xa2\xa2\x5c\x30\x72\x57\xef\x5f\xa3\x0e\x41\x6f\x02\x2b\xc9\xa9\x0a\x04\x09\x3b\x0f\xcb\x26\xcb\x19\xf8\x96\xd4\x1c\x9b\xaa\xeb\x9a\xf5\xb8\x54\x82\x67\xed\x5b\xe5\x0a\x29\xd5\xdb\x5b\x09\xeb\xc1\xf9\x92\x6e\xc0\x0b\xe6\x8d\x82\x39\xa2\x78\x3e\x28\x92\xfb\x79\x02\xcf\x53\xfb\xb3\xee\x95\x64\xd7\x4e\xb2\x2d\x9a\xed\x97\x54\x6a\x3b\xcc\x52\xe7\x4c\x59\xa3\x10\x6b\xe9\xee\x18\xe8\x63\xad\xd3\xb1\xa4\x3e\x59\x26\x36\x23\x26\x6f\x15\x8d\xc3\x41\x11\xbe\x21\xa6\x71\x6c\xfe\xe3\x74\x3f\xce\xfc\x38\x65\x33\xf4\xf0\xc2\x6f\x40\x76\x57\x5d\x71\x94\xa8\xd1\xca\x98\x86\xc0\x4c\x56\x97\x12\x44\xd7\xb3\x5c\x3e\x84\x14\x1c\xfe\x56\x59\x8b\x33\xef\x84\x28\x7a\xde\xca\x9a\xa0\x50\xc6\x16\x8c\xa5\x18\x19\x9a\x35\x0b\x28\x2b\xd1\x39\xfd\xe9\xb9\xf3\x45\x06\x84\x23\x8c\x98\x93\x39\x09\x0e\xf5\x4e\x25\x33\xa7\x02\x29\x45\x4b\x99\x13\x25\x68\xa1\x16\x52\x83\xee\x84\x16\x34\xe1\x3a\x20\xd8\x50\x97\x34\xb9\x87\xa2\xcc\x25\xb3\xb3\xed\x9a\x5a\x72\x6e\x63\x5a\x7c\x90\x68\x47\xc2\xea\x45\x29\xab\xf9\x02\x02\x33\xf1\xad\x24\xa3\x0a\x23\x70\xbb\xac\xec\x1b\x7b\xb7\x9a\x01\x45\xd2\xa5\xa0\x39\x4f\xea\xea\x57\xa5\x7c\xe0\x8a\x4b\x6b\xa5\x82\x51\xbb\x17\x4d\xc9\x6d\x5d\x9a\x08\x4d\x63\x6f\x32\xca\x73\x72\xa6\x18\x23\xd7\xee\x96\xe0\x2f\x77\x28\x21\xa0\xbe\x33\xc4\xc9\xcc\xb7\xaa\xd9\xb4\xde\x36\x95\x90\x79\xe2\x74\xb7\x9e\x1f\x03\x20\x95\x80\x49\x8b\x74\xf3\xb4\x03\xea\x01\x1b\x38\xde\xbc\x64\x59\x82\xd3\xa4\xab\x09\xc8\x44\x2a\x1b\x07\x99\x8e\x5e\x2f\x6f\x6f\x94\xaf\x58\xc0\xdb\x6c\xab\x3e\xc1\x0f\x99\x14\x73\x3f\x51\x73\x8d\x0b\x3a\x7a\x36\x24\x56\x40\xe5\xe6\x07\x9e\x56\x34\x43\xe2\x1a\xb2\xca\x37\x77\x37\x38\x32\x9f\x2f\xf4\xf8\x91\x81\x2e\x18\xd9\xa0\x06\xfd\xb9\xf9\xf2\x35\xd7\x75\xae\x80\x0e\x07\x14\x6d\xb6\xba\x69\x5c\xf3\x23\x5d\x42\xf1\x04\xeb\x02\xdd\x72\xf8\x71\xe5\x78\x70\x80\x99\xec\x22\x34\xb9\x23\xe1\x16\x88\xba\xd7\x7d\x09\x58\x25\xa1\x02\x18\x72\xd0\xea\x1b\x90\x02\xc4\xb1\xbe\xe8\xee\x2b\xe8\xd5\xed\xaa\x3f\x42\xa6\x44\x51\x03\xae\x9d\x72\xdb\x01\x24\xaa\x87\x06\x66\x3f\xb2\xbc\xc8\xa8\x3e\x88\x13\xce\x5f\x3d\xb3\x83\x67\x13\x37\x78\x8c\x8a\x74\x4c\x33\x73\x59\x6e\xbf\x7b\x63\x23\xa0\x11\xf7\x44\x7a\xdb\x7d\x74\x84\x48\xd4\xc5\x97\x0d\x2b\xbe\x11\xed\x40\x42\xe2\x29\x4b\x81\x88\xd8\xb9\x85\xf9\x4a\xcb\x47\xc1\x4a\x07\x7c\xb7\xdf\xbd\x19\x11\x3e\x61\x13\xf7\x57\xdd\x99\x23\x91\x5a\xce\x31\xa0\xc8\xc5\x2c\x86\xd8\xd7\x65\x3a\xc1\xe5\xf8\x3a\x7e\xbf\xf7\x1f\xfe\x68\x16\x6a\x7e\xfd\xd3\xf8\x8f\x5e\x49\xc5\x3f\x81\x2f\x69\x90\xcb\xee\x0f\x2b\xdf\xf9\xa1\x27\x40\xf7\xcc\x5f\x3f\xdc\xda\x3a\xc7\xb6\x0a\xf2\x0f\x81\x8e\x15\x84\x30\xa1\xcb\xe5\x84\xdc\x4a\xf0\xc5\xe3\x29\xde\x59\x98\x7f\xc9\xfe\xee\x4c\x43\x70\x5c\xb5\x16\x3d\xa1\x9a\x09\xe0\x4c\x76\x96\x0c\x6e\x9a\x4d\x09\x01\x03\x00\x76\xa2\xb0\x4b\x67\xa0\x7e\xc5\xfc\x48\x23\xa2\xa5\x04\x7c\x19\x80\xce\x4d\xbb\x14\x84\x7d\xe2\x0a\x52\x02\xe2\x96\xc3\xb9\x51\x1b\x1a\xe3\xb8\x39\x33\xae\x01\x85\x3a\x91\x64\x21\x43\x1c\x38\x60\x03\x7e\x2d\xa4\xfe\x75\x7d\x1b\x9c\x5b\x29\xb0\x6d\x92\xd0\x07\xc9\x5d\x55\x6e\x83\x79\x04\x58\x5a\x82\x52\x8f\xd8\x03\x9d\x2e\x49\xce\x95\xa6\xf7\x6c\x42\xee\x0c\x4f\xe7\x7b\x9a\xe0\x31\x0b\x02\x35\xfa\x58\x4a\x2a\xa1\x79\x16\x28\xd6\xd5\x73\x81\x8d\xf1\xf8\x3d\x48\x36\x52\x25\x86\x2f\x29\x4a\x36\x76\xfc\x25\xbe\x15\xa4\x7c\xb1\xd5\x46\xdd\x9e\x34\x7b\x3a\xaa\x61\x7f\x41\x51\x37\x52\xa4\xd0\xb9\xf5\x58\x0f\xbe\xb1\x6b\x51\x25\x66\x37\xa4\x48\x1a\xf6\x11\x8e\x5d\x4d\xc8\x7b\xe0\x09\xb3\x10\x28\x47\xcf\x31\x54\x06\x59\x53\x9b\x60\x09\x53\x8a\x96\x4b\x74\xe6\xe7\x75\x3d\x6e\xeb\xd1\x6e\x78\xe6\x90\x2d\xa1\x02\x6b\x9f\x97\x2c\x91\x42\xe9\xb2\x4a\xe0\x1c\x29\x99\x96\xf2\x9e\x89\x26\x1c\x2b\x04\xa8\xdb\xa1\x07\x8d\x83\xb3\xe1\x7d\x84\x24\xc9\x82\x8a\x39\xab\xb3\xc2\x90\x9c\xa6\x00\x46\x5f\xd5\x62\x56\xc8\x5e\xc8\xfa\xa8\xe8\xcc\xc8\x36\x5c\xc3\x99\x4d\x0d\x5b\xe6\xac\x92\x41\xb3\xfd\x50\x87\x43\xe4\x9e\x0d\x53\xf0\x6c\xcf\xfe\xbc\x31\x26\xab\x31\x70\xe1\xdd\xf2\x7b\x94\x89\x2a\x67\x9a\xa6\x54\xd3\x43\x46\xac\xbc\xa3\x75\xe9\x77\xeb\x12\x05\xa7\xee\xb9\x4a\x59\x56\xcb\x09\x87\xb2\xe0\x7e\xb2\x9f\xdb\xef\xde\x04\x8e\x84\x51\x0c\xe6\xa0\x21\x9d\xaa\x36\x37\xc9\x5a\xe9\x31\x8c\x03\x64\x21\x17\x95\x62\x26\xe1\xc6\x44\x8a\xc0\x52\x92\x56\x11\x4a\xff\x86\xae\xc4\x44\x38\x04\x1b\x35\xcd\x79\x1f\xf2\x60\x3e\x36\xde\x42\x49\x3b\xc0\x60\xa3\x44\x81\x86\x78\x26\x34\x2f\x99\x97\xf2\x29\x70\x30\x7b\xaa\x95\xc0\xab\xde\x3e\x5f\x04\x80\x39\xd3\xaa\xf1\x4c\x46\x0e\x20\xb8\x7f\x6d\x79\x47\x9c\x25\xb0\xb3\xee\xcc\xad\x1a\x6f\xe3\xa2\x02\x7b\x47\xb8\x51\xd2\x52\x7a\xc3\xe1\x1c\xe4\xc8\xfb\x98\x98\x69\x62\xf0\xfd\x3b\x99\xc6\x58\xa5\xfb\x3a\x21\xb4\x86\x6b\x02\xf5\x30\x3e\x54\x81\x0e\x1a\x5f\x00\xbf\x18\xd5\x4a\x78\x85\x54\x6a\x41\x1f\x22\xd2\xeb\xf4\x56\x7c\x36\xa2\xce\xb8\xae\x0f\x0c\x13\x1b\xc3\xc4\xc6\x5f\x04\x4f\x21\xc6\x9f\xd7\xb5\x60\xbf\xde\xf6\x20\x91\xc6\xd7\x27\x25\x07\x71\xcd\xa0\xff\xbb\x48\xc3\x6b\x7f\xe8\x69\x46\xb3\xdc\x80\xf5\xa5\xaa\xfd\xf0\x6c\x16\x04\xc6\x0d\xda\x8e\xd9\xc1\x5f\xb7\x18\x67\x2b\x6b\xd5\x9a\x33\x0c\x2c\x3d\x73\xaa\xb4\x89\x05\x13\x97\xbb\xb4\xfd\xfa\x79\xef\x61\x81\xf9\xdf\xac\xcb\x89\xe8\xf3\xc6\xba\x15\x3b\x31\xd4\x88\x7b\x25\x98\xd2\x5c\x7e\x83\x26\x54\x0f\x36\xd0\x2a\xd1\x56\xfc\x3f\xa1\x50\x29\xda\xc1\x43\x72\xd3\xb9\xe6\xf4\xb4\xb5\x84\x2c\xd8\x63\xcd\xd9\x53\x85\x45\x0b\x9c\xdb\x11\x68\x9a\x9d\xf3\xed\xa6\x91\x63\xae\xfa\x5f\x9d\x36\xf7\x52\x2c\x71\xeb\xae\x3c\x70\x41\xa5\x29\x99\x9b\x49\x19\xe9\x59\xd0\x69\x66\x58\x34\x0f\xa4\xea\x19\xad\xf0\x12\x5a\x7a\x6f\x7d\x60\xb3\x98\xed\x00\x75\xb3\xff\x71\xd8\x28\xc8\x8c\xb4\x3e\x9c\x34\x2e\xe0\x56\x7e\x8b\xca\xbd\xef\x9a\x85\x8e\x56\x67\x6d\xb7\xcb\x95\x71\xfd\x5c\x88\x1b\xe7\x1a\x3e\x7a\x0f\xb7\xac\x3e\x8e\x59\x90\x51\x8f\x77\xaa\xb3\xda\x1f\x04\x8a\xec\xd8\xfa\x78\x72\x81\xc3\x3a\x78\x84\xc6\xb9\xe5\xf4\xc7\x96\x04\x75\xb1\x30\xa6\xd3\x8f\xcc\xe1\x0f\xc7\xa9\xd5\x8e\x2e\x53\x66\xf0\x4f\x93\x28\x34\x06\xa2\x08\x42\x95\x3f\xd2\x06\x5f\xde\xe6\x7a\x7f\x05\x15\x6d\xad\x85\xdf\x25\xe7\x30\x64\xfa\xf2\xf6\x06\xe7\x17\x3b\xfa\x5b\xc0\x6f\x4b\xcb\xac\xeb\x05\x2f\xd3\x71\x41\x4b\xbd\x44\x7d\xe7\xa8\x35\xb7\x3a\xbf\x40\xd4\x20\x3d\xdd\x9b\xc2\x6a\x56\xfb\xad\x75\xdc\xb0\x55\xce\x86\x6f\x5d\x39\xb6\x9e\xd9\x31\xd6\x13\x9e\x9f\x60\xe3\x7a\xfc\x2a\xac\x4e\x37\xf8\x8c\xeb\x79\x7a\xe0\x01\x69\xe3\xca\xe3\xf2\x40\x06\x39\xab\xb6\xf3\x23\x32\x2a\x20\xfd\x58\x1d\xb2\xf4\x63\x64\x6b\x6e\x1a\xb4\x4f\xa6\xa7\x11\xe1\x33\x43\xa4\xa5\x18\x83\x91\x3f\x62\x22\x8d\x49\xd3\xf2\xee\x13\xeb\x67\x8f\xfa\x22\xb8\x90\xde\x7c\xbc\x41\x9a\x9b\x4e\xce\x84\x0c\x51\x27\xb9\x06\x78\x02\x7b\x3d\xc7\x10\x88\x2d\xe6\xab\x69\x4c\x12\x52\xd2\x70\x0f\xbe\x9e\xc9\xc3\x60\x8e\x81\xe1\x22\x35\x40\x0a\x24\x11\x34\x50\xaa\x4a\x12\xc8\x70\x30\xf3\x2f\x69\x0c\xeb\xde\xc2\x8d\x76\xc3\x72\xaa\x93\x05\x53\x44\x49\xc8\xb4\xaf\x34\xcd\x32\x96\xd6\xc6\x4d\x3c\x50\x09\x7c\x9d\x35\x7c\x46\x8c\xe8\x31\x86\x31\x1b\xe4\xe9\xe0\xac\x1a\xbc\xc8\xa8\x55\x3f\xce\x2a\x91\xa0\xeb\x30\xd7\xcb\xda\xb2\xb5\xca\xac\x83\xde\x46\x81\xa6\x35\x86\xa1\x9c\xa1\xe9\xca\xd3\xc1\xd4\x80\x04\xa4\x65\x89\xc4\xc4\x48\x86\x8d\x31\xca\x66\x91\x36\x94\xa1\x4e\x44\x12\x05\x67\x5e\xca\x92\x11\x72\x63\x3e\xcb\x24\x4e\x7d\xdf\x20\x2e\xfa\x33\x88\xfe\xda\xce\xbc\x2d\x5b\x63\x1c\xcf\x6b\x86\x51\xb1\xba\x16\xbc\x8a\xe1\x5a\x88\x75\x86\xa2\x95\x96\x39\xd5\x3c\x01\x05\x2d\x9f\x79\x96\xde\xbc\x2e\x75\x59\xfb\x3a\x21\x51\x05\xa2\x6e\x77\x3d\xfa\x5a\x6d\x66\x36\x9f\xb4\x6d\xde\x4e\xd9\xd3\x68\x6f\x8a\x5b\xaa\xc7\x6a\x44\xcf\xfd\xa3\xcb\x20\x43\xf4\xa2\x64\x8c\xf0\xdc\x88\x49\x54\x68\x92\xf2\x59\x9d\x39\xc8\x59\xee\x77\x9d\x5d\x9c\x24\xfa\x57\xf0\x0a\xf1\xfa\x43\x5d\x77\x96\xc9\x47\x45\xf4\xa3\xac\xd5\x6e\x8d\x39\xd7\x66\x77\x19\xb5\x87\x8d\xa2\xa0\xb6\x7f\x83\xb6\xcd\x49\x7b\x98\x76\x64\x6e\xed\x23\xcb\x32\xf3\xff\x5d\xf8\x36\x22\xe0\x6b\xe3\x3a\xf9\x5c\x60\x3e\x0e\xae\x9c\x9a\xd5\x86\x95\x9d\xa5\xa5\x2c\x0a\x6b\x08\xca\xcf\x9f\xb2\x4e\xf0\x70\x2a\x1f\x98\x02\x6f\x3d\x17\xd4\x66\x8e\x6c\xce\x04\x2b\xa9\x06\x5b\xb8\xcd\xaa\x0e\xc4\x71\x75\x3a\xe1\x6a\x4b\x6c\xbd\xe4\xb4\x0e\x30\x40\xd7\x85\xcd\xc7\xee\xde\xb1\xbf\x46\xcd\x95\x0b\x84\x00\x77\x63\xa3\x8e\x14\x72\x25\x9e\x93\x6f\x15\x1e\x54\x4d\x2f\xea\x60\xc1\x20\xe9\xdc\xe6\x7b\x42\x01\x3d\x6a\xf8\xcb\xac\x58\x78\xe3\xfb\x52\x6e\x1d\x71\xdd\xde\xa9\xd6\xcc\xde\x94\x52\xa9\xf7\xee\x93\x83\x4c\x72\x90\x80\x07\x09\x78\x90\x80\x77\xb7\x41\x02\x3e\xf6\x7a\x00\xdf\x1d\xf3\x4e\xbe\xf7\x19\xc2\x36\xa2\xde\xdb\x7e\x10\xf2\x5e\x6a\xeb\xf0\x02\xfc\x3b\xdd\xaa\xf4\xa4\x80\xd3\x1f\xe9\x72\x22\x98\xb6\x59\xf3\x9c\x6e\xff\x83\x1b\xfd\xcb\xd2\x70\x7e\x56\x40\xf3\x6e\x91\xbb\xc0\x2e\x9d\xa2\x37\x8a\x96\x48\x8a\x1b\xff\x1b\x78\x7e\xaa\xac\x4f\x87\xf9\x1d\x62\xee\x49\xab\x4c\xcf\x84\xdc\x59\x8f\xc1\x95\xc1\xd7\x33\x86\xa5\x4c\x53\x1e\x96\x91\xd3\x6f\x8e\x52\x7e\xdc\x42\xa3\x8f\x40\x09\x49\x3f\x90\xad\x23\x38\x8f\xa1\x6a\x69\x22\xa1\x3d\xc7\x78\x3f\xb8\xa4\x79\xe1\xe9\x96\xca\x9b\x19\xf9\xc0\x12\xf9\xc0\x4a\xdc\xef\xeb\x4f\x05\x15\x46\x4c\x7f\x4b\x79\x66\x76\xdb\xed\x7a\x63\xbd\x80\xba\xda\x6d\xb7\x04\xcf\x08\x56\x5f\x23\x7b\xb4\x06\x72\x62\x98\xc1\x3a\xf5\x9d\xe9\xd9\x3a\xeb\x16\x25\x7b\xe0\xb2\x52\x2e\xac\xa6\xd2\x48\xc7\x94\xb6\xb2\xe9\x82\xcf\x17\xee\x65\xe7\x6d\x0e\x3e\x40\x65\x5a\x5f\x95\x88\x39\x28\x4d\x75\xa5\xda\xf9\x72\x12\x70\x27\x78\x16\x1b\x70\x7d\xde\x87\x65\xf8\xfa\x31\x57\x18\x86\x74\x4c\x34\xfe\x35\x06\x3e\x61\x27\x53\x7b\x0b\x5c\xb4\x56\x13\x6d\x96\xc8\xbc\xa8\x34\xf3\x6e\x8b\x85\xd6\x58\xb4\x15\x79\x90\xad\xf4\x97\x17\x39\x15\x74\xce\xc6\xf5\x24\xc6\x4d\xa0\xd6\x45\x0f\xac\x15\x79\xa4\xe4\x09\xf9\x17\xfd\xf6\x82\x03\xac\x56\x16\x1b\x1f\x80\x4e\x9e\x18\x84\x4e\x9e\x12\x88\x4e\xf6\x19\x8c\x4e\xea\x8c\x16\xc7\xbc\x8e\x1f\xec\x98\xab\x17\xd2\x12\xab\x5d\x17\xb2\x9f\x48\x60\x89\x96\x1d\x95\x2b\x22\x73\xae\x35\x73\xbe\xcc\xf5\x05\x1b\x11\xae\x5b\x09\x17\x2c\xe2\x00\xa5\x39\xfa\x23\xb3\x4f\x75\xb5\xf9\x86\x31\x8b\x9c\x0c\x08\x3f\x8f\x5c\x21\xe3\x25\x08\xcf\x0b\x2c\xd6\x03\x08\x60\x6c\xc3\x25\x9d\x6a\xb8\x9e\x77\x02\xbe\x84\x84\x7d\x02\x45\x3e\x4e\x6d\xc0\x4c\x03\x66\x5a\x69\x3f\x07\xcc\x84\xc9\x2c\x62\x72\xad\xb4\x30\x92\xfb\xdc\xa6\xba\xa4\x53\x96\x91\x1f\x2b\x56\x2e\x89\x61\x5b\x9b\x70\x2f\x28\x92\xaf\x78\x8a\x71\x4d\xce\x6a\x76\x60\x2d\x59\x3f\xa6\x09\x2c\x6d\xd7\x9f\x0c\x77\x0f\xa9\xdb\x9e\x80\xaf\x57\xbb\x6a\x27\x04\xc5\xdd\xaa\x77\xd0\xe7\xc9\xd1\xe9\xd4\x7f\x02\x6c\xf7\xe5\xfb\xab\x7e\x02\x55\x9c\xb3\x21\xe9\xe3\x70\xb8\xb6\xf8\x68\x62\x45\xc8\xe5\x8e\x3d\xc1\xbd\xab\x7f\x01\x2a\x51\xbb\x8b\xd6\x3a\x7b\x72\xcf\x96\x23\xeb\x0e\x4e\xcc\xe9\x53\xf7\x72\xf4\x64\x30\x32\xa4\xa9\x64\x69\x3a\x0d\x4d\xc2\xdd\x6e\xbd\x91\x70\x3f\x45\x2f\xb6\xf0\x12\xa2\xed\xaf\xdc\xa6\xc5\xe2\xfa\xde\x54\x22\xaa\xd4\xa8\xdf\xb6\x95\x1d\x45\x18\x82\x1a\x81\x2e\x45\x42\x0d\x36\x90\x7c\x02\x10\x52\xec\x21\x92\xfe\x0a\x35\x6c\x6e\x63\x9f\xbc\xd4\x1e\x17\xcb\x1f\xbf\x1d\xd2\x7f\xcf\x96\xa7\xca\xe6\xbe\x93\x42\x2d\x78\x81\x65\x71\x15\x03\x1c\xd5\x0f\xe0\xb1\x7d\x07\xae\xed\x6e\x58\xc4\x60\x37\x62\x44\xde\x4b\x6d\xfe\x77\x0d\xc1\x49\x70\xad\xae\x24\x53\xef\xa5\x86\x27\x47\x3f\x17\x5c\xe2\x73\x9d\x8a\xb5\x66\x72\xb0\x30\x02\x9a\xc6\xe4\x3c\x10\xad\x6f\x77\xdf\x79\x68\xd6\x27\xc8\x15\xb9\x11\x44\x96\x76\x2b\x7b\x0d\xac\x5d\x61\x6d\x65\x87\x75\xd6\x87\xc6\xa8\xbf\x69\x5c\x7b\x6a\xb2\x6c\x1d\xda\x9e\xa7\x60\x87\x07\x5d\x24\xfe\x02\xda\x55\xf0\x2e\x71\x21\x35\x58\xca\x99\x6a\x36\x8f\x72\x75\x69\x5a\xce\xca\x39\x24\x7b\x4c\x22\x8a\x80\x7a\x93\xef\x49\x58\xb1\xf5\x22\xaf\xfe\xc0\x3d\x81\x7d\x4f\x3e\xfe\x7b\xee\x0a\xf8\xa4\xaf\x21\x94\xeb\x98\xd2\xb1\x37\x2c\x72\x17\x39\x2d\xcc\xed\xfb\x6f\xc3\x44\x00\x60\xfe\x0f\xd4\xd1\x57\x13\x72\x49\x14\x17\xf3\x8c\xb5\x7e\xb3\x6a\x7e\xaf\x9b\xe8\x09\x80\xf5\xcd\xd0\xf8\x07\x9a\x31\x8c\x18\xa5\xa2\xae\x28\x2b\x67\x6b\x2c\xe4\xc8\x16\xd6\x37\xe4\xad\x76\x4b\x3b\xb9\x67\xcb\x93\x51\xa4\x22\x95\xf8\x34\xc1\x74\x72\x23\x4e\x9a\xcc\xb4\xad\x7b\x59\xf3\x59\xe0\x6f\x70\x02\xbf\x9d\xec\x9b\x47\x7d\x26\x21\xf5\xd9\xdc\x44\xad\x52\xf9\x4d\x46\xd1\xb0\x72\x0c\xf3\xc5\xea\x98\x9b\xca\x33\xde\x79\xef\x34\x26\x2d\x1b\xbf\xfc\x8c\x9a\x76\xc8\x0b\x13\x1d\x66\x15\x75\xb0\xab\xd5\x80\x8e\x7a\x36\x5b\x07\xf7\xc2\xad\xeb\xd4\xe2\xe6\x2c\xbe\xdb\xf4\x81\x17\x6d\xce\x55\xfc\x71\xdd\xcc\x56\x7d\x14\xbc\x94\x27\x7e\x14\x8f\x2c\x6d\xdc\xfa\x9a\x0f\x31\xd4\x8a\x6c\x0a\x2a\x85\x16\x95\x6d\x5a\xe3\xfe\x50\x32\x55\x48\xf4\xaf\xdd\xb8\x58\xcb\x22\x2c\xa8\x02\x9f\xac\x99\x35\xb7\x16\x55\x59\x48\x65\x0b\xfd\xad\x82\x7c\x64\xe4\x92\x0d\x27\x73\x41\xa6\x18\x07\x5e\xdf\x04\x73\x7f\xea\xf4\xd4\x97\x2b\xa9\x09\xd1\x20\xe6\x25\x6b\x13\x72\xf3\x32\x22\x66\xe4\x1c\x3e\x51\x8e\xa9\x13\x64\xe1\x64\x30\x3a\xff\x14\x5d\x4d\x3c\xf3\x9f\xe1\xf6\xb5\xef\x7d\xa5\x65\x7b\xa6\x90\x34\x00\x73\xc8\x45\xe4\x1c\x27\x08\x2f\x95\x68\xdc\x58\x1c\xf5\xd8\xec\x12\x08\x29\xea\xa6\xb2\x12\x16\xb4\x5c\x72\xbb\x7d\x6d\x8a\x59\xa5\xcb\xb3\x50\x4f\xc0\x82\xa6\x17\xe0\xc6\x67\x66\xad\x36\x37\x42\xdc\x5a\x5b\xfe\x41\x60\x9d\x2f\x6d\x39\xc2\xe5\xe6\xfb\x0b\x45\xef\x08\x2a\x93\x0d\x9f\x8c\xa7\xb0\x79\x7b\xec\x32\x62\xd0\x39\x7a\xb8\x52\x72\xcb\xf0\x96\x28\x4d\x35\x1b\x61\xb5\xdb\x59\xe6\x95\x03\x62\x24\x97\x29\x9f\x59\x3f\xbb\x3b\xcf\x86\x3a\xc2\x84\x19\x36\xdb\x85\x9f\x0d\x3c\x62\x22\xf1\x9b\xf9\xa4\xf4\x83\xe3\x06\xbf\x8c\x81\x2c\xb0\x28\xb5\xf8\xaa\x57\xe0\x66\x8f\x87\xcd\xe8\x75\x7f\x2e\x7f\x3d\x28\x53\x58\x41\x31\xd7\x9e\x4a\x8a\xa0\xba\x82\xcb\xb8\xd7\xca\x1d\xdb\xc4\x79\x3c\x99\x3f\xf8\x0e\x90\xa4\x9c\x91\xb7\x4d\x15\x60\xae\xc0\x50\xc3\x5d\x3e\x3e\x73\x7d\xb8\x48\xb2\xca\x3a\x0c\x20\xb6\x33\x58\xe7\x08\x7b\xfe\x04\xf2\xdf\x74\xe0\xf8\x2c\x17\x2d\xb2\x96\xba\x65\x15\x23\x40\x88\x42\x0d\x9d\x91\xbb\x1a\xb8\xd6\x59\x47\x32\x88\xd6\x5a\x66\x49\x5b\x6f\xf4\x96\x4f\x4b\x46\xde\x2c\xa8\x10\x2c\xf3\xd2\x63\x5b\xe3\x1d\xd5\x9a\x26\x0b\xc4\x8d\x94\x98\x9b\x9d\x31\x43\x99\x16\x52\x69\x92\xd3\x64\xc1\x45\x9d\x3b\x55\xd4\xc9\xd8\x9b\x3c\x36\x47\xcf\x1a\x76\xf0\xba\xdd\x16\x02\xfc\x62\xd7\xad\x72\xde\x01\x3d\xd5\x39\x90\xd7\x7a\x69\xca\x44\xda\x7b\x08\xfb\x8c\xd2\x1d\xd0\x05\x78\x37\x64\x8c\xed\x45\xc5\xc9\x4d\x5e\x1b\x64\xb9\xf0\x48\x1f\xb3\x1f\x18\xc2\xea\x31\x03\x41\x09\xce\xa0\x8e\xec\x42\x3e\x92\x54\x92\x47\x06\xce\x44\x86\x83\x03\x57\x7b\xe5\x38\x41\x6f\xb5\x10\x37\x96\xc8\xbc\x28\x65\xce\x6b\xa7\x6e\x0b\x50\x9d\x03\x46\x20\x81\xac\x0a\xa8\x21\xd5\xce\x16\x9f\x55\xc2\x9c\x72\x53\x15\xe8\xed\x1b\xa2\x69\x39\x67\xda\xf4\x46\x44\x95\x4f\x59\xd9\x9d\x36\xfe\x70\x85\xec\x8e\x52\x77\xb6\xb5\x03\x1d\xe5\x62\xc9\x07\xf7\x15\xc4\xd5\x00\x03\x34\x93\x61\xac\x07\x3a\x43\xba\x62\xb7\x58\xea\xd0\x00\xcc\x77\x96\x76\x55\x22\x84\x21\x89\xa9\x47\x8b\x67\xf9\xd7\xbf\xbe\x8f\x2d\x06\x78\xda\x7c\xb9\x0d\x40\x1e\x65\x99\xa5\x8f\x3c\xb5\x7e\xaf\xe4\xcc\xbc\x7c\x1e\x0a\x2c\x7b\xae\x0d\xd8\x3f\x75\x71\xac\x12\xf0\xf1\x91\xa7\x07\xa9\xeb\x0b\x1d\xb7\x77\xda\xc9\xa8\x66\xa7\x09\x6c\x35\x4f\x99\xd0\x06\x57\x95\x8a\x9c\xc1\x17\x21\x49\x35\xae\x39\x66\x3f\x84\x11\xa0\xfa\x50\x3e\xe5\xa2\xc9\xe0\xd9\x9c\xb5\xa1\x6f\xe6\xe6\x3b\xb5\xb6\x62\x1a\x53\xa8\x41\xea\x04\xa9\x17\x44\xf1\xbc\xca\x34\x15\x4c\x56\x2a\x0b\x88\x44\xfb\x8c\x8f\x7b\x96\xb1\x4f\x78\x37\xf7\x99\xa8\xba\xe9\xb5\xcd\x9e\x40\xe0\x56\x93\xfc\x77\x95\x3f\xe9\xe8\xb5\x89\x87\x4d\x2f\x6a\x4e\xa6\x4e\x60\xc8\x3e\xb1\xc4\x26\x2e\x29\xb2\x6a\xce\x3b\x92\x75\x05\x33\x2b\xa1\xb6\xde\xb1\xd5\xc7\xec\x89\xf3\xc1\xce\x22\x2f\x61\x93\x04\x77\x55\x7d\x68\x7f\xb1\x35\x1f\xea\xfa\x01\xa1\x49\x4f\x23\x80\x71\x60\xd9\xb0\xed\x60\xd9\xfc\x12\x02\xde\x04\x52\x56\x30\x91\x42\x51\xc2\xb7\xcd\x05\xc2\x5d\xda\xeb\x11\xd9\x02\x7a\xb1\xf4\xd2\xd5\xdd\x6b\x11\x4b\x4f\x4e\x5f\xc8\x2c\x55\x84\x7d\xd2\x25\x35\xe8\x37\x37\x88\xb6\xfe\x66\x46\xa8\x58\x06\x54\x3f\x7d\x49\x85\xd2\xc9\xb3\x70\x67\xe9\xcf\x89\x3b\x53\x2c\x29\x99\x0e\x8a\xac\xee\x51\x3e\xc5\x75\xde\xde\xc0\xd6\xe3\x35\x99\x1e\x7f\x75\xf1\x41\x4d\x8d\xe4\xa0\xf1\x84\xe2\x50\x8c\x70\xa5\xf2\x72\x41\x95\xaa\xc5\x64\x20\x3e\xf6\xda\xaa\x56\xaa\x8d\x80\x21\x50\x01\xcc\x67\x44\xc8\x95\x99\xfa\x91\x50\xb5\x0f\x40\xeb\x95\x80\xee\x6b\x93\x61\x8e\x05\x19\xa8\x80\x9c\x02\xd8\xcd\x08\x02\xad\xf1\xdf\x68\x35\x34\xeb\xf2\x14\x00\xb0\xb2\x90\x7d\xb2\x6b\xdf\xef\x65\x8f\xf3\x65\x0a\x0f\xff\xeb\xa7\x90\x7b\xef\x11\x57\x17\x51\x16\xaa\x0b\x6a\x67\xc9\x65\x50\xc1\x94\x3f\x30\x48\xc2\xeb\x32\xd2\x1a\x86\x34\xad\x50\x99\xe9\xf2\x62\xb4\xb3\x5d\x84\x47\xb7\x7b\x46\x87\xc6\x8d\xe3\x46\x28\x4d\x21\x31\x02\xac\xc2\x50\x55\x43\x00\x6d\xba\x63\x0b\x88\x68\x2c\x71\xe9\x15\x82\x87\xcb\x0d\xd1\x4c\x58\x69\x60\x2d\x5b\x92\xc7\x52\x86\x7b\x95\xa2\xf2\xe1\x32\x4d\x6d\x8c\xac\x4d\x67\x8c\x99\x37\x26\x5e\x31\xe9\x11\x84\xac\x8e\x48\xc5\xd3\x3f\x07\xf6\x1d\xa9\xde\x96\x0f\xac\x7c\xe0\xec\xf1\xc2\x86\x1a\x8e\xcd\xe6\x8c\x6d\xb4\xfe\x05\x88\x84\x17\xbf\x84\xff\x45\xad\xed\xaa\x94\x05\xf9\xc1\x0c\x3c\xad\x78\x96\xb2\xf2\xb5\x45\xf9\x3f\xd8\xd4\xb6\xb5\x51\x64\x3c\x67\x02\x6c\x15\xe2\x54\x43\x71\x0f\xc8\x75\x6c\x67\x3e\xe7\x7a\x51\x4d\x27\x89\xcc\xbd\x45\x8c\x15\x9f\xab\x0b\xaf\xef\x0b\xae\x54\xc5\xd4\xc5\xbf\xfc\xe1\xdf\x7e\x1f\x93\xcb\x34\x42\x27\x6b\x67\xff\x9a\x9c\x74\x57\x67\xec\x6b\xa2\x9f\x41\x1a\xf1\x98\x02\x78\xf6\x8b\x15\xfd\xa8\x7d\x68\x05\x90\x10\x7d\xa8\xc5\xe0\x1e\x73\x66\xae\xbc\xeb\xc8\x9e\x15\x51\x06\x52\x9a\x48\xd8\x4a\x74\x92\x94\x03\x68\x4b\x53\xaa\xa9\x62\x3a\x4c\x37\x1e\x8f\xf6\xbc\xee\x0d\xde\xf2\x31\xa0\xfd\x09\xcc\xba\x0c\x92\x07\xb9\x94\xd3\x64\xfc\x27\x2b\x88\x88\xd6\x9b\x46\x04\xb1\x9b\x18\x42\x51\x16\xae\x64\x98\x73\x58\xc7\x51\x52\x73\xb8\x49\x50\xda\xfa\x08\xb0\xb6\x73\xfc\xf6\xdb\x9b\xab\x58\x01\xac\xf9\xd2\xc9\x29\xf0\xef\xf6\x36\x59\x90\x02\xc3\x2b\xff\xb1\xf2\x55\x1e\x50\x39\xa5\x86\x2e\xfb\xfe\xbe\xd6\x36\x4f\x58\x63\xd1\xb8\xe2\xea\x7e\x9f\x32\xff\x5a\xe7\xed\x9b\xf7\xe5\x9b\x6b\x62\x9f\xee\x32\x4a\x74\x0c\xb2\x6f\x93\xc5\x93\x0b\xae\xcd\x13\xd6\x18\xb5\x53\xae\xee\x8f\xad\x74\x28\xd2\xf7\x5d\xe9\x40\x5e\x96\xb9\x65\x55\xe2\x76\x95\x8b\xbc\x22\x66\x4b\x59\x91\x47\x5b\xa9\x21\x58\xa6\xff\xc8\x8b\xd7\xe4\x5a\xa8\xaa\x64\x8d\x87\xf9\xea\x60\x86\x89\xde\xa3\x84\x0f\x95\x3f\xd4\xeb\x23\x9a\x66\x8e\x0a\xae\x76\x63\x5f\xac\x35\xa8\xa0\xa5\x06\xf9\xff\x10\x10\x5b\x77\xee\x10\xb9\xf7\x40\xec\x07\x64\x6f\x66\x2e\x10\xb3\xed\x79\xc3\x55\xdd\x4d\xe3\xc2\x02\x54\x34\x0e\x2c\xdf\xd6\xa5\xbd\xc8\x45\xca\x1e\x2e\x54\x4a\xbf\x18\xc1\x54\x5d\xea\x81\xf6\xba\xa8\x22\x27\x5f\x9c\x84\x8c\x71\xc7\x73\x9e\xd1\x32\xc3\xc4\x7e\x75\xbe\xc3\xba\x27\x43\xdd\xdd\x90\xe0\xc5\xfa\xea\x84\x9c\xc9\x12\xc6\x4e\xa8\x20\x19\x73\x49\x00\x2d\x72\x5a\xa2\xc0\x71\xfe\x22\xef\xc0\xe1\x6c\x7f\x88\xbd\x0f\x02\xbe\xa9\xe3\xd3\x2c\x8f\xd1\x2a\xf1\x74\xd5\x90\x61\x2e\x0c\x6d\x9e\x90\x6f\x2d\xdd\xb4\xbc\x08\xc2\x86\xd9\x1e\xf7\xc6\xcb\x3d\x99\x97\xa3\xc8\x5b\x51\xc9\xed\x49\xe1\x46\xd6\x2d\xb6\x2f\xf8\x34\xba\x15\x83\x73\xae\x3f\xb0\x42\xee\x95\xfb\xc4\x2e\x57\xcc\x4d\x5c\x9b\x07\x52\x71\xa8\x63\x4e\x35\xa1\x88\xa3\x92\x2a\xa3\x46\x32\x44\x73\x52\xd7\x5e\x5e\x5d\xdf\x7e\xb8\x7e\x73\xf9\xf1\xfa\xea\x35\xf9\xd2\x8e\xc3\x7d\xd9\x63\x42\x3e\xfa\xd5\xe4\xbc\x80\x7a\xab\x4e\xa9\x67\x32\xb2\x58\xbd\x53\x6f\x5a\xd7\x4a\x86\xfa\x29\x54\x90\x1b\xc1\xf5\x9b\xba\x5b\x8c\xb3\xcc\xa4\xb0\x5e\x71\xa6\x6f\x6b\x0a\x9b\x73\x6d\xb3\xc3\xe3\x50\xe6\x67\xd7\x5b\xc7\xa0\x4d\xad\x16\xa8\xf1\x5e\xaf\xe2\xe8\x96\xb4\xe6\xd0\xf6\x25\x19\xbb\xb2\xe9\x07\x91\x8b\xeb\x4a\xf9\x2e\xff\x19\x7a\x0f\x34\xcf\x43\x49\xf7\x3b\x57\x86\xca\x15\x52\x92\x25\x56\xcb\x45\x38\x3a\x9d\x4c\x4e\x27\xc0\x36\x9c\x4e\x4e\x1d\x2f\x9b\xd5\x3e\xe1\x96\x0a\x37\xc3\xc6\x15\x1c\x6c\xdf\x96\x09\x21\xdf\xb8\x34\x0d\x90\x7b\x7a\xc5\x01\xbd\xf6\x2d\x6f\x2a\x69\x63\xd6\xbe\xf6\x9d\x0b\xd2\x17\x83\x26\xbb\x9a\xfa\x13\xb7\x1e\xeb\x73\xfe\x60\xd3\xd2\xee\xd5\x00\xd6\x4c\x30\x12\x1e\xfc\x95\x59\xf1\xfe\xc3\xd7\xfb\x9d\x19\x22\x91\xe8\x79\x59\xdc\x63\x67\x95\xc8\x3c\xc7\xb2\x68\x8b\x3a\x83\x62\xe3\x0f\x1e\x8a\xf8\xc2\x15\x0b\x58\x23\x6e\xd6\x71\x0f\x23\x51\xba\xeb\x74\x45\x91\x50\x3f\xb6\x69\x52\x44\x23\xc5\x01\x5a\x54\x0b\x5a\x32\x85\x05\xdd\x6d\xf9\xea\xee\x8a\xa7\x1b\xa9\xa5\x2d\xed\xa8\x5c\x8a\x39\x4b\x19\x2f\xea\x99\x5d\x7c\xb8\xbe\xbc\x7a\x77\x3d\xc9\x77\xab\x9f\x0e\x80\x21\x99\x48\x0b\xc9\xbb\xf3\x84\x8d\x49\x41\xf5\xee\x2c\xde\xe1\x58\xb4\x1e\xf4\x10\x58\xb4\xee\xdc\xc1\xb0\x7b\xe0\xd5\xc3\xb4\x59\xf4\x3c\x18\xd0\xb2\x90\x99\x9c\x07\xa5\x8b\x7e\xda\x09\xff\x12\x23\x4a\xc6\x74\x1c\x52\x81\x33\x4a\x8a\xd5\x8b\xc3\x08\xb0\x7a\xe1\xf6\xb2\xd9\xb0\x5a\x54\xd3\x41\xf1\xb5\x2f\x74\xcf\x9e\x8d\x99\x5f\xdb\x48\xd4\xe7\x00\x2a\x72\xc5\x42\x9b\xb2\x97\x05\x2b\x73\x8e\x11\xa2\xc7\xe4\xf2\x0f\x7c\x42\xdd\x0c\xbe\x41\xc6\xb7\x9d\x60\x1d\x77\x34\xae\xcf\x36\x35\x28\x4a\x36\xae\xcb\x72\xcd\x78\x06\x21\x70\x0d\x23\xe1\x11\x87\x8e\xee\x9d\x2a\xd9\x69\xa5\xb1\x8f\x6c\xb9\xaa\x52\x6e\x98\xe2\x5a\x89\x8f\xe9\xc8\xbb\x0b\xb9\xd6\x55\x78\xad\x9e\x8c\xce\xb1\xac\x56\x69\x2d\x9d\x45\xc9\x1f\x78\xc6\xe6\x50\x94\x9c\x8b\xb9\x6a\x32\x3b\x5a\x0b\x6e\xc7\x00\x10\x85\xc8\x1a\x72\x58\x5b\xb0\xde\x81\x3d\xb6\x4e\x56\x85\x40\xfd\xfe\x9b\x8f\x68\x53\xd4\x0b\xde\x09\x9e\x4f\x94\x25\xcd\x74\x3a\x09\x11\x21\xe3\x71\x17\x14\x7c\xfc\xe6\xea\x9b\xb3\xbf\x1b\xb9\x27\xcd\xce\xc9\x5f\x99\x5d\x01\x44\xd3\xe9\x92\x27\x9a\x3c\x2e\x64\x5d\x4a\x1d\x76\xa1\x81\x06\xb8\xa5\xe8\x00\x6a\xdf\xba\x30\x6f\x0a\xd9\x09\x1c\xc0\x69\xb4\x7a\xe3\x4c\x61\x40\x97\xf3\xcc\x39\xba\x90\xb4\x47\xc2\x7e\x50\x12\xe4\x6c\x5f\x9b\x2e\x65\xa0\x96\x14\xd5\x94\x48\xce\x28\x51\xcb\x3c\xe3\xe2\x7e\x54\x97\xb0\x9b\x49\x9b\xbc\x97\x11\xf3\x83\xbb\xaa\x25\xa3\xd9\x53\x08\xdd\x01\x00\x3c\x8a\xc8\xe9\x03\xd9\x62\xc0\x12\x62\xf0\xd0\xbf\x3b\x94\x8a\xea\xa8\x48\x0a\x15\x60\xed\x7f\x71\xdb\xca\x55\xa2\xf8\x3e\xa9\x12\x74\xd8\x22\x49\x82\xdc\xdc\xbd\xb9\xbb\xf9\x5c\x8c\x9d\xdb\x78\x05\x58\xd8\xf3\xc9\x37\xfc\xc7\x2e\xc5\xc1\x98\x64\x55\xf7\x3b\xa8\x8a\xb9\x95\xa5\xa6\xbb\xab\xcf\x87\x23\xcb\x64\x41\x8b\xcb\x4a\x2f\xae\xb8\x82\x2c\xd0\xb1\x4c\xe8\xda\xf7\x5e\x34\x27\x03\x46\xc0\xd5\xf9\xe4\x0e\x90\xec\x7b\x6f\xfe\xfd\xf2\x96\xd0\xca\x1c\xbe\xb6\xb5\x9c\xf7\xc6\xb2\xf9\x2b\xbb\xc3\xac\x26\x3d\xd7\x65\xbf\xee\x58\x95\x7b\xeb\xd0\x6b\x7a\x2e\x77\xf4\xc1\xac\x7d\x44\xb3\x36\x20\xab\xcf\xda\x94\xcd\x05\xd7\x9c\x6a\x59\x1e\xca\x1e\xd8\x1a\xa0\x56\x13\x56\x4a\xcb\xdc\xde\xc8\x1b\xf7\x06\x78\x76\x05\x72\x66\x6b\xdd\x36\x5a\x46\x90\x85\xe1\x64\x6e\x84\x91\x3a\x69\xc2\x56\x22\xab\x46\x50\x73\x18\x47\xe7\xee\x9d\x80\x71\xff\x68\x15\xec\x50\xe5\x2b\xfb\xd3\xeb\x3f\x7a\x16\xf2\x3f\x35\xe5\x7a\x5d\x89\x79\xab\xff\x4c\xa4\x10\x2c\x09\x2b\xe3\x1f\x73\x72\x3f\xc6\x22\x4a\xfe\xa3\x58\xb1\x14\xe0\x16\xfc\xdf\x8a\x66\xb8\x75\x61\x07\x10\x33\xc9\xd6\x31\x1c\x04\xbe\xda\x07\x6d\xd7\x57\x9f\x2a\x7a\x0b\x02\x02\xab\x14\x16\xee\xc2\x45\xeb\x92\x0a\x65\x0e\x32\x56\x41\x72\x6a\xbd\x25\x4e\xc9\x99\x4e\x8a\x00\xc7\x81\x83\x86\x19\x67\x95\xf0\xb9\x40\x5c\xdb\x47\x3c\xdd\xaf\xeb\x30\xe3\xd0\x49\x1e\xc4\xd5\x00\x2e\xcb\x41\x54\xb7\xb6\xeb\xfa\xd0\xfd\xc5\x23\xeb\x45\xbe\xe6\x4a\x63\xe0\x13\xbe\x0c\x8e\xef\x18\xb2\x69\x38\xe6\x5b\x22\x4b\xc2\x8b\xff\xa2\x69\x5a\xbe\x46\x2e\xc1\x4a\x7d\xb2\x0c\x89\x6b\xe0\xaa\xae\xa8\x44\x45\xed\x47\x73\xa6\x97\x85\x2d\x9e\xf8\xf1\xcd\x2d\xf4\xa5\xc8\x1f\x7e\xff\x0a\x58\xe8\x7f\xf9\xed\xef\x5f\x05\x43\xcd\x67\x19\xdb\x49\xfe\x09\xbd\x1e\x8e\x11\x9b\xd4\x8a\x2f\x82\x64\x5c\x86\x87\xbd\xc3\x50\x1c\x43\x6d\x2c\x66\xc3\x0b\x60\x60\xad\xa6\x92\xfd\x38\xdd\x21\x40\x66\x08\x90\xf1\x36\x67\x08\x90\x19\x02\x64\x36\x4f\xcc\x53\x76\x1c\x44\x71\xe8\xf5\x0f\xe9\xa0\xd6\x09\x3d\xd2\xf8\xdb\xcf\x91\xc6\x77\x1e\x68\x37\xc6\x8c\xdb\x52\xdf\x23\x33\x2c\x10\xbf\x89\x5b\xbf\x7a\x7f\xf7\x5f\x5f\x5f\xfe\xe5\xfa\x6b\x58\xa7\x75\xf1\x34\xb7\xcf\xca\xb0\xfb\x8f\x7c\xd8\xd3\x5d\x0f\xdd\xeb\xfd\xfa\x92\x88\x15\x2f\x12\x41\xde\xbf\xbd\x8b\x74\x20\x39\xac\x85\x4c\xcc\x42\xf6\xed\xb8\x06\x24\xf3\x12\x94\x60\xde\x57\x52\x8b\x83\xda\x99\xbc\x0a\x45\x2d\x45\x98\x39\x69\x5c\xc5\x11\x34\x51\x5d\xc7\x48\x3e\x13\x3f\x07\xb3\x69\xb8\x91\x2f\xd2\xc3\xe1\x30\x47\x12\x2a\x36\x94\xf1\x99\x59\x02\xf3\x19\x94\x5e\xfa\x16\x83\x90\x90\x44\x94\x86\x78\x1a\xb2\xc9\x94\x72\x04\xe3\x73\x85\xea\x62\x53\x92\xd5\x7d\xa2\xfa\x8d\x03\xd8\x04\xab\x2e\x43\xac\xe7\x40\xd2\xca\x0f\xd1\x65\x91\xdb\x92\x40\x17\x09\x88\xa2\xb9\x57\x1f\xf7\x40\x0e\x15\x1b\x32\x70\xaf\x26\xd5\x85\xb4\x94\x47\x27\x26\x30\xea\x1e\x43\x11\xeb\xfe\x0e\x71\xd1\xea\xce\x57\x53\x25\xd1\x98\x23\x26\x54\x39\x5e\xcb\xfa\xde\x47\xe5\x54\x7a\x66\x18\x20\x2f\x90\x12\xfd\xf5\x60\x3a\xa4\x7d\xeb\x8f\x8a\x85\xd4\x52\xf4\x8e\xa6\xde\xf4\x79\x1b\x2f\xdd\xc2\x1b\x6f\x9a\xfc\xd8\xcd\x11\x63\x54\x56\xed\x49\x60\x04\x00\x47\x9d\xa5\x70\x5e\x03\x6d\xa7\x81\xa3\xb3\x96\xe9\xcd\xd5\x9e\x10\xc1\x90\x4f\x0c\xdb\x31\x53\xc0\xc6\x78\x2f\xa7\xd1\x49\x12\xcc\x27\x6e\xd7\x6f\xae\x2c\xdf\xee\x32\x20\x28\x0b\xf9\x64\x3b\xe8\xef\x8d\x15\x91\xa5\x7e\x94\x65\x7c\xfe\xc3\xf6\x87\x2b\x0e\xa9\xf6\xb7\xb5\x14\x23\x2f\xf1\x9a\xe2\x1c\x3f\x87\xab\x7a\x07\x57\x75\xa5\xba\xfb\xb6\x2b\xfb\x52\x6f\xec\xf3\xde\xd4\xa3\x50\xf0\x9f\x55\xf2\x3a\x77\x3d\x22\x77\xcc\x7d\x66\xd5\x72\xe6\xac\x1b\xec\x46\x41\x39\xea\x61\x88\xbd\x61\xb3\x52\xfe\x1d\x4a\x4b\xc4\x20\x32\xf7\x0d\x9a\x2e\xb1\x1c\x74\x96\x99\x5d\x95\xc2\x2f\x3b\x6d\x93\xc2\x8d\x08\x16\x44\xce\x69\xa1\xb0\x28\x55\x2a\x1f\xc5\x23\x2d\x53\x72\x79\x7b\xb3\x1f\xec\x15\x11\xd4\x89\xb0\x16\x56\x7e\xa1\x47\x58\x67\xd3\x3d\xf8\xe0\xdb\x72\x1d\x8c\x4c\xb9\x56\xad\xb2\x3f\x9e\x12\xc4\xa0\xf6\xda\xf1\xc4\x60\x16\x83\x45\x6c\x4f\x51\x9c\x84\x20\x32\xd1\x34\xb3\x06\xa6\x29\xd3\x8f\x8c\x09\xf2\xea\xd5\x2b\xd4\x6c\xbf\xfa\xd7\x7f\xfd\x57\x02\xc5\xbb\x53\x96\xf0\x7c\xfd\x45\x78\xeb\x7f\x7d\xf1\x45\xc8\xa0\xff\x71\xf9\xee\x6b\x42\x13\x90\x32\x30\x03\x32\x8e\x0d\x07\xec\x77\xaf\x46\xe4\xff\xdc\x7d\xf3\xbe\xa9\xc8\xd1\xfe\x15\xe0\xa7\xde\xa2\x20\xee\xdc\xf3\xa6\xf7\xb5\xd7\x54\x2f\x60\xcf\xa1\x64\x0e\x98\xff\xbc\xf2\x49\xf6\xee\x07\x79\xcf\x41\xf2\x45\x3e\x5f\xc0\xa6\x72\x30\x1d\xcd\x32\x08\x13\xe0\x66\x99\x60\x4f\x70\x39\x4a\x31\xda\x02\x46\xab\xc9\x4b\xc0\x18\x66\xc1\x23\x92\xf1\x7b\x46\x66\xea\xcb\x52\x56\x45\x53\xaf\xad\x64\xca\x08\x1f\xb6\x5c\x11\x0e\xd7\xc0\x50\x50\x55\x9f\xc3\x79\x84\xd8\xcb\x1d\x6b\xfd\xb6\x28\xc1\x95\x75\xb5\x65\x93\x5d\x5c\x19\x62\x14\xb3\x9f\x81\x2b\xdb\xb3\x6b\x45\x6b\xae\xb7\xf5\x6c\xf0\x70\x6d\xc9\xae\x06\xed\xd1\x4c\x8a\xb9\x0f\x0b\x0d\xf5\x77\x9e\x9b\xcb\x22\xc8\x7a\x19\x59\x2d\x2f\xb6\x30\x6f\x82\xa1\x5b\x1f\xcb\x4a\xe9\xbf\x54\x22\xcd\x82\xab\x9f\xf4\xad\x37\xf3\x66\x6d\x44\x34\x93\x5b\xc3\x08\xa8\xcb\x92\x84\x29\x04\x83\x1f\x26\x50\xf8\x45\x37\x6f\xff\x80\x16\xe9\xe0\xf1\xe4\x6c\xd3\x90\xd6\xbe\x64\xae\x2e\x15\x84\x56\x5a\x8e\xa1\xc0\x99\x0b\xf7\x9a\xfc\xe2\x17\xc1\x23\x40\x7d\xa1\x11\xd4\x08\xaa\x99\xbb\xf5\x21\x3d\x98\xf1\xab\x0a\xc5\x0c\xb4\x63\x1d\x06\x13\x58\x9b\xe8\xd4\x15\x40\xc6\xd9\x08\x9a\xb3\x91\x41\xe9\x38\xb3\xe0\xc1\x56\x12\xdd\x2b\x3e\x17\xac\x44\x85\x16\x14\xdc\x5e\x29\xde\x1d\xb3\x8e\xaf\x50\x46\x31\xf4\xcd\xe0\x15\x45\xe8\x7c\x0e\x15\x2f\x1f\x0c\x66\x2e\x73\x9a\xf1\x7f\x34\x19\xf6\x17\x8c\xdc\x5e\xbf\x03\xe3\x3c\x70\xe8\x86\xe5\xd3\x2c\x24\xfe\x1f\x5b\x9d\x7d\xc2\x40\x57\xc3\x95\x4f\x08\xb9\x56\x52\x43\xde\x78\xd3\xbf\x3d\x14\x55\x97\xc6\x02\x1f\xc3\xf1\x34\x93\x49\x48\x36\xab\x7a\xd3\x6c\x6d\x4c\x91\x12\xf8\x94\x2c\x18\x4d\x99\xad\x87\x6c\x98\xad\xa2\x60\xe9\x84\x90\x37\xe6\x96\xce\x78\x02\x45\xc7\xcd\x6f\x29\x4b\x2b\xc3\xc4\x43\xe2\x8f\xe0\x01\x3f\x2e\x18\x91\x65\xca\xb0\xb0\xdb\x0c\x7c\x3f\xea\x6e\x3d\xca\x07\x21\x8c\x50\x5f\x77\xca\x75\x49\x4b\x5b\x36\xdd\x9e\x44\xf0\x70\x06\xd1\x61\x71\x3c\xe8\x15\x46\xc6\xda\xff\x21\xa1\xf0\xae\xf5\xa8\x00\x1a\x5f\x19\x3d\xc8\x0e\xe9\x5a\x9f\x7a\xe6\x00\xff\x77\x16\xfc\x63\xea\x90\x3e\xa5\x8c\x2d\x8e\x07\xcc\xf4\x3a\x36\x50\x8e\x1a\xe9\x64\x81\x2c\xcd\xca\x1d\x25\x04\x65\x24\x1a\x57\xba\x16\x1d\xa5\x20\x59\x07\x60\x81\xda\x27\x9b\xe9\x89\x61\x2d\x75\x45\xb3\x6c\x39\x66\x9f\x0c\x35\x31\x97\x18\x08\x1f\x64\xd7\x70\x35\x03\x59\x64\xd1\x68\xb8\x7c\x45\xc9\x34\xe6\xe3\x3c\xc1\x35\x09\x09\x01\xac\x27\xd8\x2d\x14\x00\xac\x34\x7a\x4c\x8d\x36\x7f\x12\xb7\xce\x07\x56\x2e\xed\x08\x11\x1f\xf6\x2c\x68\xdb\xb7\x86\xfe\x6a\x8d\xe0\xd8\x12\xb8\x2d\xf0\x5b\xed\x0c\x23\x21\x1d\xf3\xd5\x06\x9f\x56\xf5\xdf\xfd\xd5\x03\x7e\x4a\x71\xed\x9e\x85\xb5\x9f\x5e\xca\xfd\x72\xc7\xde\xd8\x68\x52\xf7\x0b\xe6\x54\x72\x09\xd2\x9d\xbc\x03\xb5\xf8\x11\x09\x1b\x99\xcc\x55\x66\x36\x2f\xf7\x98\x0e\x54\xf4\xb7\x39\x9b\xee\xd9\x12\xba\xed\x5b\xcc\xbf\x77\x7d\x66\xd2\x0b\x4f\x37\x6d\x6c\xa6\xde\xeb\x3b\xb7\x7d\xd1\x1f\xf7\xbd\x83\xd8\xee\x59\x80\xd2\x6b\x53\x6b\xc1\x9f\x39\x2f\x27\xf4\x00\x4c\x99\x07\x75\x48\x56\x0d\x46\x58\x03\x56\x11\x2d\xfb\xd4\xaf\x7f\x72\x21\x79\xb7\xc5\x7b\x58\x70\xaf\x0b\xe7\xcf\xa1\xad\x19\xbf\x67\xcb\x53\x85\x37\xc0\x60\xb0\x05\x2f\x30\xed\xb6\x21\x0f\x46\x80\xec\x79\x0d\xb0\x7d\x47\x33\x9e\xd6\x03\x23\x8e\xbb\x11\x23\xf2\x5e\x6a\xf3\xbf\x6b\xa8\x84\x0a\xd7\xed\x4a\x32\xf5\x5e\x6a\x78\xf2\x2c\x27\x84\x0b\x7d\xce\xf3\xb1\xda\x1a\x0e\x8e\x70\x58\x4b\xde\x48\x0e\x5e\x7d\x64\x55\x57\x98\xf0\x6b\xd1\xdf\x40\x42\x32\xdc\xd2\x9e\x43\xeb\xd5\x22\xf6\xae\x0a\x97\x90\x62\xec\x1c\xaf\xd7\x47\xb6\xe7\x27\xcb\xd6\xf1\xed\x7d\x12\x76\x02\xa0\x35\xc2\x5f\xa0\x82\x48\x91\xd1\x84\xa5\x24\xad\x60\x83\xa8\xd9\x29\xaa\xd9\x3c\xb8\xa6\xfc\x6a\xcb\x59\x39\x07\x25\x57\x12\x94\x9a\x60\xc3\x02\x7a\x13\x62\x6c\x3d\xc9\xb1\x3f\x78\x6f\xf0\x7f\x62\x40\xcb\x01\x3b\x03\x1e\xeb\x6b\x83\xda\x9f\xc6\xab\xf5\xb8\x97\xde\xd0\xc8\x95\xe4\xb4\x30\x77\xf2\xbf\x0d\xf3\x01\xa0\xfa\x3f\xa4\xa0\xbc\x54\x13\x72\x49\x14\x17\xf3\x8c\xb5\x7e\xb3\xd2\xa3\xd7\x4d\x8f\x29\x14\xe0\x3d\xf9\x63\xc5\x1f\x68\xc6\x30\x4c\x99\x0a\xc2\x32\x64\x96\xe4\x6c\x8d\x09\x1d\x91\xc7\x85\x54\xc8\xc9\xd4\xd1\x1a\x27\xf7\x6c\x79\x32\x8a\x52\x61\xb8\xe6\xdf\xf8\x93\x1b\x71\xd2\xe8\x51\x5b\xb7\xb5\xe6\xd1\xc0\x03\xf1\x04\x7e\x3b\xd9\x3f\x9f\xdb\x8b\xb3\xea\x5b\x91\x6a\xd3\x04\xa2\xaf\xd8\x53\x62\x07\x9a\x16\x1e\x18\x84\x6d\x1f\x62\xb2\x83\xe9\x0d\x9a\xb3\xe9\xd2\x55\x40\xb2\x82\xea\xba\x1c\x1b\x35\x24\xc8\xbc\x9e\x7c\x0c\xe5\x20\x7d\x15\x41\xbc\x48\x19\x79\x50\xd2\x55\xaa\x3a\xd2\x26\x1b\x7a\x5a\x56\x6c\x44\x52\x29\x4e\xb5\x55\x77\x15\x32\xc5\xd4\xa2\x55\xe1\xe2\x30\x6a\x57\xc8\x74\xc3\x39\x9c\x05\x55\xe1\x6c\x1a\x2d\x99\x19\x8c\x3e\x50\x9e\xd1\x69\xe6\x34\x0c\xe0\x26\x87\xaa\x4e\xc8\x61\xe2\x9c\xef\x36\x0d\x19\x1e\xbf\x65\x87\xb4\x51\x5c\x42\x02\xee\x82\xb4\x60\xfe\xb0\xcd\xa1\x7b\x83\xb7\xd5\xa7\x51\xe3\xed\x02\x22\xc0\xe2\x4d\x54\x19\xaa\x45\xfe\xc1\x4a\x19\x35\xc2\x06\xd5\x51\x3c\x74\x86\xd9\xba\x9b\x16\xe6\xa4\xdf\xb4\x16\x68\x7e\x00\xf6\xfe\xc1\x9a\xf0\x20\x7d\x82\x97\x06\xa3\x94\x78\x34\xe0\x0d\x00\x3f\x4c\x61\x55\x07\xbf\x72\xcd\x51\xbd\x50\x05\xa0\xa7\xb6\x8f\xa3\x56\x1d\x5a\xbd\x8f\x36\x65\x1d\x66\x9a\x9b\xd9\x0a\x6f\x68\x75\x78\x2a\x28\xd6\x99\x16\x2a\x81\x69\x0b\xd0\x5e\xdc\x47\x3d\xde\xe3\x58\xd1\x13\xe1\x1d\x2d\x7a\x19\xc2\xea\xaf\x5b\xa5\xfc\xe8\x54\x56\xda\x25\x8b\xb0\xbf\x43\x11\x23\x2d\x9d\xd1\xf0\x70\xaa\xf3\x3e\x3a\x8e\x68\x46\xfe\x29\x20\x8d\x3e\x22\x6d\x0f\xa5\x11\x61\x34\x59\x18\x0e\x70\x8c\x0e\x08\x86\x4b\x75\xec\xe8\x95\xd9\x3a\x64\x0c\xe5\x2a\x89\x89\x03\xbe\xfa\x34\x1c\xc8\x79\x9e\x2b\xce\x6c\xe4\x1c\xee\x94\x75\xea\xb2\xcc\xa9\x68\xdc\xbc\xa3\xc6\x74\xea\x39\x7b\x7b\x9c\xea\x07\x56\x09\x32\xea\x4a\x42\x6c\x23\x7b\xb0\xd4\x7c\x56\x5f\x8c\xa8\xf1\x36\xac\xa8\xc9\xa5\x62\xb0\xa9\xf5\xb8\xa9\xc4\xda\x48\x50\xb8\x3a\x76\x34\xd0\xcb\xc0\x42\xa8\x53\x6d\x79\xb9\x5b\x16\x3c\x81\x6c\x7b\xa6\x6b\xfb\xae\x3b\xd5\xfa\x30\xe2\xc4\x6f\xef\x88\x14\x33\x5c\x07\x4c\x1d\x32\xef\x98\x35\x31\xa5\x08\x87\x5d\xce\x69\x79\xcf\xd2\x9a\x4b\x9a\x90\x5b\xb3\x78\x27\xa3\x47\x8d\x59\x3a\x6a\x04\xce\x97\x74\xd9\xca\xad\x6e\x26\x74\x3a\x99\x9c\xda\x2c\x85\xeb\x99\xd6\xa3\xb1\x57\xac\x40\xde\x43\x0c\x6f\xdd\xdf\x77\xb4\x50\xa8\x8e\x30\xec\x0d\xa8\x23\x25\x94\x38\xd0\x0b\x67\x53\xa4\x11\xe1\x08\xab\xcb\xe9\x21\x00\xf5\x55\x2b\xf7\x51\x29\x47\x19\x0e\xb1\xf5\x57\x23\xf7\x52\x21\x6f\x53\x1f\xdb\x93\xb2\x37\xbe\xaf\xe6\xbf\x97\x06\x26\x0f\x72\x96\x5b\x6d\x4f\x57\x3b\x82\xd3\x53\xab\x4a\x6f\x90\x2b\x9d\xad\x2e\x1d\xc7\x21\xba\xf6\x2c\xbe\x74\xab\xed\xf9\x7c\xeb\x56\xdb\xcd\x0c\xd0\xdf\xe6\x3a\x0e\xbe\xb3\x63\xcd\xd6\xa9\x78\xd5\x09\x39\x92\xd3\xdd\x6a\x3b\xb0\x13\xde\x6a\x8b\x73\xca\x5b\x6d\x31\x4e\x7a\xab\x2d\x56\x3a\xc3\xf6\xf4\x0b\xec\x67\x93\x2f\x5b\x42\x9e\x65\xed\x80\xe5\x02\x51\xb7\xf0\x90\x5c\xaf\x7b\x6b\x09\x35\x5e\x5d\x3a\x55\x32\xab\x74\x78\xca\xfa\x6d\xdd\xf9\x74\x1f\x26\xee\x34\x9b\xb1\xc4\x7e\xb5\x63\x8f\x6f\x00\xae\x0d\xc9\x71\xbf\x5e\xf7\xa1\xf9\xeb\xaf\x05\x3f\xa6\xea\xef\x29\xf9\x81\xb0\x1d\x3b\x4b\x10\xb6\x23\xe7\x0a\x72\x83\x3e\x25\x63\x90\xdd\xae\x03\xe6\x0d\xc2\xf6\xdc\xd9\x83\xfc\x75\xbe\xf0\x1c\x42\xd8\x7a\xde\xf6\x98\x7c\x42\xae\x3d\x59\xe9\xec\x3a\xa8\x6b\x47\xba\xbc\xbe\x2d\x99\x10\x72\xfc\x68\x85\xc2\xa9\x33\xab\x62\x26\xe0\x18\x91\xbf\x8f\xe6\xf2\xe9\xd6\x0f\x17\xcc\x72\x79\x7b\xd3\x4b\xa9\xe4\x7d\xbf\x45\xad\xe4\xbf\xf1\x33\x56\x2c\xdd\xa0\xa6\xc8\x77\x51\xbb\x6a\x56\x6e\xc3\x26\x23\x39\xbd\xe7\x11\xb1\xd7\xa6\xfd\xd6\xb0\x39\x7e\xa6\x4f\xef\x9c\xb5\xb4\xb1\x3f\x0d\x43\x64\x99\x0e\x97\x39\x18\x5d\x9b\x63\xdc\xe2\xc9\xf3\x88\xe3\x47\x14\xad\x61\x3f\x82\xb2\x30\xae\xb6\xd6\x49\x9d\x7e\x70\x8b\xb5\xba\x77\xd4\x03\x7a\xca\xc7\x42\xa6\xaf\xd1\x66\x4c\x85\x90\x1a\xdd\x90\x46\x68\xb7\x51\x23\x6b\x95\xf2\xb2\x3b\x88\xd4\x90\x40\x74\x08\x77\x61\x21\x93\xd3\xcf\xc9\x4f\x0f\x96\x7f\x1b\x7b\x94\xe4\xc9\x0e\x77\x0d\x2f\xb1\x07\x37\x27\xdb\x93\x3b\x45\x95\x2c\x58\x4e\xe1\x9f\x6f\xdd\xf2\x0c\xaa\xb1\xe1\x06\xa0\xa5\x64\x65\x6e\x38\xb1\x51\x2b\x1c\xf5\xe4\x21\xac\xb6\xf1\x7a\x7b\xa2\xc7\x4b\x7d\x0a\x7b\xd8\x8c\xdb\x96\xc4\x65\x80\x1b\x14\x27\x60\x6b\x72\x49\x4a\x6a\x2d\xae\xa1\x32\x0f\xb8\x7b\xcf\xb0\xf0\xfd\x78\x23\x60\x7b\x2e\xb5\x55\x5f\x75\xd5\xa8\xe6\x7d\xda\xca\xa7\x1e\x53\x18\xd4\x55\x83\xba\xea\x9f\x5a\x5d\xe5\x11\x76\x87\xeb\x37\x68\xa1\xfc\x64\x9a\x4e\x15\xd5\x14\x01\x98\x34\xa5\x75\xcd\x9d\x74\x2a\x25\x59\xb6\xad\x41\xa7\x93\xc9\x29\xda\x83\x26\xb5\xf6\xb8\xd2\xb3\xf1\x1f\x08\x13\x89\x4c\xa1\xd2\x33\xf4\x5f\x2a\x0d\xac\x65\xa3\xc0\xf0\xe7\x92\xbb\xb1\x7c\x8b\x12\xf4\xdd\x97\x7b\xe8\x85\x82\x5d\xf8\xfe\xdb\xfd\x30\x58\xbd\x10\x68\xc3\x8a\xd5\xa5\x90\xec\x96\xd5\xe5\xe8\x2c\x4f\xd6\x24\x1b\xc8\x78\xce\xad\xb3\xb6\xc1\x2e\x4c\x75\x56\x39\xdd\xd4\xce\xb0\x9b\x49\x52\x54\x23\xdb\xe5\x24\x67\xb9\x2c\x97\xa3\xba\x5b\xf3\x63\x6b\x1c\xfb\xc6\x39\x30\x7d\x49\x55\x96\x4c\xe8\x6c\xe9\xb1\x7f\x9f\x13\xf7\xe7\x76\xf4\xc8\xcc\x5f\x7d\xb0\xb1\xee\x36\x4d\x6b\xdf\xff\xa6\xec\x39\xe8\x27\xeb\x5d\x01\x1a\x63\x33\xa0\x8d\x1a\xfd\x84\x79\xca\xc4\x03\x79\xa0\xa5\x8a\xbf\x6f\xe4\xe9\xfc\x5e\xca\x1f\xb8\xda\x4b\x04\xc6\x9d\x25\x7e\xa8\x76\x97\x95\x2e\x2a\x6d\xd1\xb1\xbb\x46\xae\x08\x58\x7d\x7d\x56\x98\xde\x2f\xc2\x55\x44\x7e\x2b\xa8\xd6\xac\x14\xaf\xc9\xff\x3b\xfb\xcf\xdf\xfc\x34\x3e\xff\xf3\xd9\xd9\xf7\xaf\xc6\xff\xf6\xb7\xdf\x9c\xfd\xe7\x04\xfe\xf1\xeb\xf3\x3f\x9f\xff\xe4\xfe\xf8\xcd\xf9\xf9\xd9\xd9\xf7\x5f\xbd\xfb\xf2\xe3\xed\xf5\xdf\xf8\xf9\x4f\xdf\x8b\x2a\xbf\xc7\xbf\x7e\x3a\xfb\x9e\x5d\xff\x2d\xb0\x93\xf3\xf3\x3f\xff\xaa\xd7\x74\xa9\x58\x7e\xd3\x03\xbf\x61\x1b\x3f\x91\x3e\xb6\x7b\xd9\x97\x63\x3c\x17\x7a\x2c\xcb\x31\x76\xf7\x1a\x3c\x38\x7b\x74\xea\xc0\x62\x1f\xf7\xb0\xa1\xc3\x4d\x59\x3b\x27\x7c\x3c\xc3\x45\xdb\x97\x7c\xb1\x07\xdb\x09\xa6\xc7\xe9\xa5\x33\xc4\x4f\xb7\xa8\x0b\xed\x8f\x3f\x63\x4d\xe1\x67\xe3\x82\x66\xcb\x7b\x0c\xfe\x67\xcf\xee\x7f\x86\x27\x31\x38\x9f\x35\x8b\x1b\x9c\xcf\xa0\x0d\xce\x67\x7e\x1b\x9c\xcf\x5a\xe3\x0e\xce\x67\x83\x36\x6f\xd0\xe6\x3d\xbf\x36\x6f\x70\x3e\x1b\x9c\xcf\x36\xb7\xc1\xf9\xac\xbb\x0d\xce\x67\x5b\xdb\xe0\x7c\xf6\xcf\xe0\x7c\x86\x37\x6e\x93\x0b\x9a\x15\xd0\x1b\xff\xb3\xcf\xce\xfd\x4c\x19\x88\x4c\xd8\x65\x92\xc8\x4a\xe8\x8f\xf2\x9e\x05\xbb\x4f\xac\xa8\x94\xd6\xfa\x81\x6a\x7d\x5b\x54\x4c\xeb\x2f\x1f\x4d\xdf\xf4\x02\xb3\x05\xd2\x2a\xe5\x4c\xc4\x29\x4c\x9f\x42\x89\xdc\x78\x7e\xc5\x6c\x91\xb2\xb4\xf9\xc1\x92\x29\x6d\x8e\x66\x42\x2e\x49\xc9\x12\x5e\x70\x9b\x92\x83\xe2\xf3\xa8\x21\xe1\x5e\xd8\x94\xe4\x4b\x73\x5b\x58\x36\xab\xa9\x45\x9d\xaa\xbc\xf4\xd4\x31\x96\x71\x59\x99\x52\x9c\x54\x6f\xa6\x89\x6c\x31\x50\x80\x47\xae\x18\x51\x0b\x59\x65\x29\x29\xd9\xdf\x1d\x07\x6e\x57\xf9\xd1\x1f\xcd\xb7\x67\xc4\x0e\xeb\x2d\xc7\xee\x23\x2d\x78\x78\xdd\xac\x7a\xf6\x7d\x70\x25\xfb\x54\xf0\x12\xee\xdb\x1d\x4b\xa4\x48\x8f\xa6\x25\x5d\x1b\xb8\xe1\x9d\xc1\xcc\x89\xb9\x8c\xea\xcc\xad\x0f\x34\xe3\xa9\x61\x46\x9c\x87\x15\xa2\x84\x38\x30\x46\xfc\x51\x43\xa9\x6a\x4e\x93\xd0\xa2\x28\x25\x4d\x16\x4c\x79\x33\x43\x01\xd0\x56\xc1\x08\x4d\x85\xef\xb7\x22\xab\xe6\x5c\xa0\xbc\x08\xfd\x3b\xf6\x4b\x6a\xe7\x81\x69\x17\xb2\x3a\xb9\x8f\xde\xc0\xe6\xf3\xa8\x61\x91\xdf\xd6\xe5\x12\x5c\x3a\xa5\x3f\x1c\xae\x96\xcf\xfc\x3f\x14\x91\x86\x46\x63\xcd\xd2\x3f\xbc\x22\x05\x2b\x13\xbc\xba\x91\x7a\x6f\x05\x99\x5b\xcd\x88\x99\x11\x7e\x0c\x99\xdb\x3e\xd0\x6f\x7f\x47\x16\xb2\x2a\xd5\xc4\xaf\xb7\xf7\x05\x3c\x8b\x3b\x55\x91\x36\x8e\x4c\x9a\x64\x8c\x2a\x4d\xbe\x78\x45\x72\x2e\x2a\xdd\x27\x17\x45\xbc\xd0\xea\x89\xab\xbf\xff\x5d\xf0\x77\x4f\xca\x61\x11\x79\xdb\x7c\xe1\x14\xfe\x5d\x4b\xa8\x56\x8d\x8e\x65\x46\x0b\xc9\x85\x5e\x95\x57\x2d\x85\xed\x87\x4d\x41\x51\x7f\x30\x2c\xd6\x5b\xaa\xfb\xb1\x92\xd3\xa5\x8e\xa9\xa7\x63\xbf\x68\xa7\x0b\xfc\xbf\xf6\xe1\x1e\x8b\xb4\x1e\xa0\x82\x4e\xc9\xe6\x5c\xe9\xb2\x4b\x7d\x3c\x0e\xc1\x70\xe1\xec\xca\xbc\x94\x55\x40\xde\x8b\x78\xa8\x86\x8e\x9d\x22\xc5\x19\xb4\x6c\x96\xf7\x90\xd4\x35\xae\xda\x1a\x58\x6e\xb0\xb7\xce\xaf\x5e\x5a\x09\x9b\x4d\xe5\x50\x1d\x30\xba\xa2\x00\xcf\x5b\x12\x35\x46\x3c\x71\x00\x7a\x98\x2d\xc3\xbe\xdb\x17\xd7\xa6\xf2\x92\x25\xc9\xab\x4c\xf3\x22\x6b\xb6\xef\x83\xfb\xc0\x52\xe6\x10\xd9\xba\xe1\x42\xa9\x67\x6f\xa2\x58\x38\x0b\xeb\x88\x83\xc1\xf7\xac\x1e\x8d\x09\x0d\x05\x45\xc0\x71\x9f\x15\xb4\xa4\xf5\x29\x25\x32\xcf\x69\x50\x26\x2b\xb4\x40\x52\xf0\x5d\x43\xdc\x6e\xe8\x76\x49\xb3\x66\xd5\x9e\xfb\xd1\x3e\x81\x5c\x33\x41\x45\x80\x33\x41\x8f\xfa\xed\xd0\x33\x91\x8f\x75\x3c\xca\x9c\x3f\x30\xb1\x0a\xdd\x96\xdb\xff\x0b\x4d\xee\x99\x08\x11\x9b\xbf\x55\x6e\x7f\xd3\xa5\xa0\xb9\x2d\xc7\x5e\x94\xf2\x81\x9b\x6b\xc0\xd2\x95\x11\xd4\xc8\xaa\xa3\x30\x37\xb9\xab\xc5\x80\x1c\xdd\x3e\xb7\xb2\x52\x87\x29\xd4\x6b\xfa\x7d\x3a\x96\x54\x68\x77\x2a\xf9\x43\xc2\x1c\x8b\x6a\x7a\xde\xe7\x0e\x3c\x04\xd4\xb6\x23\x9b\x0b\x58\xd9\xf4\xd8\x78\xdf\x80\xe6\xd6\xae\x13\x98\x38\x36\x33\x38\x6f\x59\x97\x3b\x5a\x81\x22\x5b\xd2\x62\x6f\x25\xcc\xca\x69\x4c\x65\xab\xce\x63\x2c\xa7\x69\x1b\x6d\x7d\xa0\xa9\x54\xe4\x2f\x90\x1c\xef\x8a\x81\xdc\x10\xc7\x7a\xf4\xa8\xf8\xcb\x3e\xd1\xbc\xc8\x98\x9a\xdc\xff\x01\x54\x94\xf6\x7a\x5c\x94\xd3\xf4\xe2\xc3\xf5\xe5\xd5\xbb\xeb\x49\xbe\xfb\x02\x1e\x80\xa5\xe1\x39\x9d\x77\x71\xa3\x63\x92\x4b\xc1\xb5\x2c\x77\x63\xbe\x17\x51\x3a\x70\x67\x95\x4f\xcb\x8f\x3b\xba\x6e\x8e\x77\x29\x2b\xf2\x48\x31\xff\x69\x70\x05\xd0\x8f\xbc\x78\x4d\xae\x85\xaa\x4a\xd6\xe4\x04\x5f\x1d\xcc\xa0\xbb\x3d\x56\x17\x44\xd8\x79\x7d\xb4\xaa\xa0\x4f\x2e\x23\x5e\x4e\x43\xa8\x09\xaa\xd0\x17\xf2\x91\xa4\x92\x3c\x32\x52\x94\xec\xc1\x88\xcc\xe0\xad\xa3\x88\x57\x28\xc5\xee\x2d\x64\x19\x4c\x64\x5e\x94\x32\xe7\xca\x91\xb6\x90\x92\x9a\x24\x0e\x99\xc2\xcd\x38\x04\x8c\x42\xc7\xb5\x92\x06\x10\x11\x3e\x0a\xcd\x07\xd8\x17\xb7\xfc\x72\x21\x1f\xc7\x5a\x8e\x2b\xc5\xc6\xbc\x5b\x6b\x1b\xb1\x57\xf7\x6c\x09\x8e\xab\x07\xd8\x2d\xdb\x75\x4b\xe6\xd6\x12\x54\xfe\xf0\xdc\xf0\x65\x1f\xfe\x72\xf5\xad\x0a\xd3\xf1\x79\x32\xcb\x05\xd3\xc9\x45\xc2\x8a\xc5\x85\x1d\xe3\xf3\xdc\x7b\x87\x9b\x0f\xb1\xf9\xae\x6f\xe4\x0e\x12\x99\x65\xb6\x58\x96\x9c\x91\x37\xac\x58\xd4\x2f\xbc\xb8\xad\xdb\x73\xa1\xb9\xe3\x28\x53\x08\xd4\x29\x96\x01\x96\xb3\xf8\xa3\x34\xfd\xb6\x91\x0e\x3c\x09\xc5\x39\xde\xbd\x29\xa7\x7d\xc9\xc7\x33\xdf\x94\x67\x53\x28\xec\xb1\xb4\x7d\x8c\xe6\xe0\xc8\x67\x10\xa6\xa2\x40\x2f\xf7\xa0\x00\xb5\xf8\x53\xa8\x3b\x07\x9d\x94\xe7\xf6\x41\x2b\xbd\x60\x42\xf3\x04\xed\x20\xd6\xd5\xde\xa7\x1d\xe4\x66\x86\x42\x6c\x1a\x64\x3c\x96\x0f\xac\x2c\x79\xca\x14\x89\x20\x1e\xbe\xc2\x8c\x67\x2f\xee\x00\x03\xad\xb9\x71\x86\xd6\x70\x47\x9f\x7e\x6a\xf9\xa7\x38\xf7\x1c\xdb\xad\xe7\xc8\x0e\x3d\x4f\x73\xe5\x39\xa4\x13\xcf\x73\xbb\xef\x7c\x16\x8e\x3b\xd1\x66\xe8\x18\x67\x9d\xa7\x38\xb0\x1c\x54\xd1\xd6\x62\x51\xe0\x49\x0f\x16\x85\xa6\x39\x0f\xca\x82\xf1\xb2\x98\x14\x95\xd0\x8c\xdd\x7c\x13\xa1\xf9\xb2\x5f\xb4\x95\x5b\x77\xf6\x61\x61\xee\xa7\x82\x78\x22\xa7\xb7\xd4\x9a\x26\x0b\x9b\xbc\xdd\x59\x34\xa4\x80\x8a\xa3\x08\x0b\x44\xc8\xb4\xcb\xd6\x7b\x00\x35\xd4\x9c\x6a\xf6\xd8\xc9\xb0\x8f\x1b\x02\xdf\xfd\x26\xa8\x0b\x3e\x73\x85\x55\x8c\x52\xaa\x8e\x41\x58\xeb\x65\x9f\x6a\xa8\xc9\x16\x05\x54\xdc\xfd\x84\x6f\xf7\xa6\x2c\x36\xcd\x02\x50\xe4\x11\xd9\xaf\xdc\xf6\xc3\xbe\xd0\x34\x2d\x99\x52\x8e\xa7\x70\x97\xe9\xf2\xf6\x86\x7c\x89\xaf\xef\x75\xe2\x45\x29\x35\x0a\xd5\x57\x32\xa7\x3c\xc0\x09\xb0\xb5\x82\xd5\xcf\xdd\x52\x7c\xe6\xd7\x2d\xe1\xb6\x7e\x97\xd8\x97\x67\xb2\xf4\x0a\x20\x54\x25\x4b\x89\x55\xe3\xed\x75\x8d\x47\x11\xbc\xd6\x04\x24\x72\x66\x7e\xbb\x80\xf2\x23\xe7\x93\x46\x08\x5b\x91\xd0\x42\xa4\xff\xbd\xc8\x70\x2f\x50\x4a\xf2\x6c\x3c\x2e\x0a\xb4\x91\x8c\x1c\xd8\x00\x11\xae\x5d\xf9\x82\xfa\x17\x8a\x83\x4f\x8c\xe7\x85\x6a\x2b\xfd\x71\xd5\x04\x7a\xa2\xb0\x35\x22\x5f\xcb\x39\x77\xd5\x56\x0d\x70\xe2\xd9\xd0\x10\x09\x69\x10\x5c\x06\xc1\x65\x6d\x73\x06\xc1\x65\x10\x5c\x36\x36\xa5\xb2\x6b\x41\xa7\x59\x88\x0f\x7a\x9b\xcd\xae\x3f\x24\x6f\x33\x3a\x27\x0c\xfe\xb8\x48\xb9\x32\xff\x27\x77\x77\x5f\x83\xb3\x49\x25\x9c\x82\x09\x2e\x81\x65\x17\xea\x1c\x2d\x48\x96\xf6\x4b\x27\x90\x5a\xbf\x0b\x8a\xb5\xed\x41\x29\x9a\xee\x09\x17\x29\x14\x7a\x52\xad\x40\x0c\xfb\x06\x10\x0c\x5a\x47\xdd\xa3\xa7\xf7\x94\x19\x44\x95\xdc\xdf\x7a\xbe\x21\xb2\x34\xcf\x84\xf7\x28\x92\x75\x8c\xfe\x3a\x02\x1a\xed\x62\x6e\xe3\x55\xf0\xde\x97\x8e\x03\x73\xe4\xf3\xce\xee\x10\xfc\x46\x95\x92\x09\x6f\x5c\x94\xc0\xa4\xd5\xb0\x65\x29\xb0\x65\xfb\x5d\x13\x30\xf7\xb1\xcb\x41\xe9\x61\x03\x2f\xe9\xce\xdb\xbe\x41\x95\xcf\x3b\x72\xe1\x56\xbd\xd7\x25\x20\x54\x85\x25\x98\x8a\x87\xf1\xa6\xf7\xd5\xf5\xd6\xf0\xbc\xea\xfc\xe2\x72\x53\xd8\x13\x0e\x10\x35\xed\x9a\x17\x14\xd5\x13\x6b\x50\xc0\x55\x7d\x77\x20\xd7\xce\xde\xf6\x2f\x24\x59\x4d\xdc\x9e\x59\x0e\xb1\xed\x05\x88\xcf\xac\xc3\x0c\x5c\xfe\x42\x16\x55\x86\xce\xf2\xf5\xe2\x7a\x38\xcd\xc4\x78\x1c\xe0\x2c\xf6\xa3\xba\x08\xe7\x15\xbd\x78\xf6\x43\x80\xa7\x1f\x2e\x1f\x9f\xd5\xc0\x41\x2c\xa8\x04\x8c\xf8\x6f\xbb\x8b\x52\x28\x1c\x33\xa9\xc1\xbe\x92\x18\x84\xa8\x5e\x5a\x69\x0e\x5a\xf2\xe3\xab\xdf\xff\xee\x77\x41\x74\x89\x97\x50\x00\x94\x43\x7d\x44\x48\x83\x52\x3b\x29\xd0\x92\x81\x9c\x83\x19\x07\x9c\xf2\x05\x9d\x20\x75\xa0\xc1\xe8\x18\xf9\x0d\x0e\x9c\xcf\x20\x2e\x14\x24\x26\x5f\x41\xa0\xf1\xbe\x87\x83\x0e\xe4\x9d\xba\x39\x5a\xde\xa9\x23\x65\x9b\x3a\x4e\x8e\xa9\x63\x64\x96\x3a\x4a\x3e\xa9\xe3\x65\x91\x3a\x70\xee\xa8\x83\x38\xc4\x1c\x32\x3b\x54\x64\x6c\x71\x5c\x5c\x71\x78\xfe\xa7\xe0\xe8\xe3\xd8\xc8\xe3\x88\x0c\x4f\xfb\xcd\xeb\x14\x2d\x98\xc7\xe4\x70\xea\x1b\x55\x77\xbc\x7c\x4d\xcf\x98\xa5\xe9\xb9\x73\x33\x1d\x38\x23\xd3\xf1\xf2\x30\x1d\x25\xfb\x52\x9f\xf0\xd5\xf8\x4c\x4b\x31\x61\xab\x7d\x2f\xd7\xc1\x73\x29\xed\x25\x83\xd2\x9e\xf3\x26\xed\x2f\x5b\xd2\xf1\xdc\x3e\xc3\x93\xa6\x3c\x39\x55\x4a\x7c\xa9\xae\x78\xcb\xd5\xa1\x94\x35\x4d\xef\x1b\x95\x53\x2e\xbd\xae\xab\x00\x74\xaa\xbc\x12\x3f\x5a\x1a\xac\x76\x84\xc8\x87\x00\x3d\x04\x89\xd0\xe0\x60\xef\xb2\x83\xb9\xd8\xa4\x8e\xfc\xe6\x6e\xc5\x31\xa4\x7e\xfc\x3c\xfe\x20\x83\xc3\xc5\xfe\x1c\x2e\xf6\x1f\xf1\xf3\xd2\x0c\xfa\xe9\x60\xd0\x8f\x36\xe8\xab\x56\x0d\x01\xa7\x96\x05\xc4\x07\xac\xa3\x9c\xfa\x05\xea\x1a\x7c\x70\x79\x7b\x13\x30\x4e\x52\x32\xc8\xb0\x43\x33\x35\xd9\xc4\x53\x3a\x3b\x97\xe5\x55\x1d\x2f\x49\xb5\x66\x79\x11\x54\x50\x63\xb0\xe7\x0f\xf6\xfc\xb5\xcd\x19\xec\xf9\x83\x3d\x7f\x63\x3b\xb6\x61\x70\x51\xe5\x54\x8c\x0d\x11\x02\xb3\x7f\xcb\xc7\x6e\x85\xb5\x9a\x10\x4b\x4c\x02\x31\x13\x26\xb0\x80\x94\x22\x95\xe0\x3f\x56\xac\x51\x9c\xd5\x1c\xec\x81\x8c\xaa\xd0\xf7\x61\x37\x10\x19\xf0\x15\xe2\x94\xc8\xb5\x90\x6c\xbb\xe6\x7a\x33\x1d\x95\x09\xdd\x44\x18\xa6\xa5\x0b\xd6\xe6\xfe\x98\x11\x6e\x57\xa4\x81\x96\xa2\xc3\x62\x60\x40\x8b\xa1\xea\x74\x9f\x47\x36\x80\x60\xd6\x63\xd3\x84\x4d\x19\xc9\x79\x59\xca\xd2\x1a\x78\xfd\x25\xa1\xcf\x25\x9f\x2f\x34\x2b\x51\xc5\x80\x5e\x6f\x21\x57\xf1\x8e\x69\x0b\x55\x00\x95\x5a\x12\x2a\x30\xf1\x82\xf9\xb7\x0b\x49\x82\xe5\x3a\x52\x3c\x65\x0b\xfa\xc0\x65\x15\x14\x1c\x7b\x87\xcc\xc2\x89\xfd\x18\x58\xc8\xa5\xac\x6a\x53\x56\x05\xf1\xd6\xf5\x1e\xaa\xf5\xf3\x0a\x18\xe4\x7d\xf3\x39\x68\x82\x52\xe9\xf4\xf4\x63\xf6\x89\x2b\xbd\xbe\x63\xee\xa8\x5c\x79\xb7\x7d\x5d\x83\x07\x55\x18\x42\xf6\x5d\x40\xd6\x8c\x76\xc6\x0c\xff\xbb\xb6\x84\xf5\x70\x07\x3f\x75\xc9\x57\x36\x21\x1d\xa6\xb5\x09\x0a\x5e\x3f\x80\xcf\x3d\xce\xb1\xb3\x60\xec\xcb\x12\xda\x06\x81\xad\x69\x7d\x3c\x9b\x32\x9e\x2c\x6f\xae\xfa\x7a\x37\xe1\xd7\x8e\x1c\xaa\xda\xb3\xc9\x3c\x27\x7f\xa1\x8a\xa5\xe4\x1d\x15\x74\x8e\x5a\xbb\xb3\xbb\xdb\xbf\xbc\x3b\x37\x00\x04\x5a\xc6\x9b\xab\x8d\xee\x4f\x77\x7e\xe7\xef\xf7\x99\x44\x66\x6d\xe1\x3d\x38\x85\xb5\xef\x7b\x2e\x7e\xaf\xd9\x71\x48\x4d\x5c\xc3\x0a\x0d\x6f\xc8\xf7\x73\xbb\x9a\xc7\x10\x7d\x93\x5c\x02\x55\xb5\x8a\xc9\x1e\xf2\xf4\xfe\x69\xd3\xe7\x46\xbc\xc8\xb2\xdb\x8c\x8a\xcb\xa2\x28\xe5\xc3\x66\x65\x67\x08\x72\x70\xdf\xbb\x05\xa0\x87\xba\x7b\x58\xe0\x89\x80\x47\xa2\x40\xa9\x06\x87\xdd\xbc\xff\x37\xba\xd6\x87\x4a\x01\x0c\xc9\xc9\x65\xa5\x65\x4e\x35\x4f\x4e\x88\x2c\xc9\xc9\x3b\x2a\x2a\x9a\x6d\x8c\x57\xd9\xb9\xe2\x6d\x12\xe7\xce\x8f\xb6\x57\x70\x0b\xf8\x6c\x27\x3b\xb7\xfb\x7b\x4d\x4b\x83\xea\xde\xdc\x7d\x17\xf5\xad\xd2\x54\x57\x6b\x94\x61\x07\xb5\xda\x4e\x9f\xc6\x24\xa3\x4a\x7f\x5b\xa4\x06\x3f\xac\xfc\xba\x8b\x08\x25\x54\xd3\x4c\xce\xff\x9d\xd1\x6c\xf3\x65\x08\x01\xa9\x37\x7e\x27\xce\x10\x61\x1d\x39\xab\x69\xfd\xfd\xa9\x22\x46\xfe\x33\x50\xc2\xb5\x22\x25\xcb\xd8\x03\x15\xda\x7d\x7e\x87\x55\x19\x4f\xed\xb6\x6c\x05\x38\xde\x98\x36\x53\xa6\x59\x99\x73\xd1\x1e\xe7\x0e\xbe\x7f\x23\x45\xca\xd1\x68\x06\xc6\x1b\xfc\xa2\x3d\xd6\x76\xa8\xdc\x66\xf1\xdf\x61\xe3\x6f\xd7\xa3\xf4\xe6\xd3\xde\x1e\x7c\x6d\x6a\x19\xf9\x05\x3e\x04\x87\xc9\xd6\xdc\xd6\x76\x8f\xdc\x0b\xc3\x5f\x43\x3e\xf2\xcd\x7b\xd3\xc9\xe6\x74\xb1\x37\x63\x07\x0e\x38\x85\xed\x91\x82\x63\x3b\xef\x6d\xbe\x00\xbb\xa0\x11\x5b\x37\x63\xb4\x3a\x95\xed\x98\xba\xb5\xf1\x6f\x56\x3e\xc3\xec\x2b\xb5\x4b\x11\x3a\x57\xb4\x5e\xda\x4e\x59\x82\xf8\xc6\x30\x16\x2f\xb4\xce\x7f\x6b\x2d\x5e\x55\xfa\x38\xe5\x58\x20\x29\x0c\x2c\xb7\x1f\xc7\x72\xde\xd8\xc8\xa8\xd2\xca\x73\x94\x14\x9c\x61\x26\x74\x2a\xec\x66\x02\x3d\x63\x34\xb5\x0f\x0d\xdd\x34\x02\x3c\xfc\x36\xb2\x8e\x7e\x41\x0c\x0a\xba\xcb\x3a\xd3\x27\xc5\x04\xdd\xe0\x04\x70\xf1\xa5\xb4\x4a\x41\x9b\x6f\xd0\x60\x15\xe0\x2e\x46\x44\x55\xc9\x82\x50\x65\x16\x66\xae\x83\xc1\x17\x6c\x92\x53\xc1\x67\x4c\xe9\x49\x5d\x95\x57\x7d\xff\xdb\xbf\x75\xb1\x1d\x6f\x65\x49\x6c\xd0\xf3\xc8\xe5\x99\xb6\x6b\x6c\x60\x8e\x2b\xdc\x88\xba\xe7\x46\x3f\x51\xc8\xd4\x2e\xf8\x11\x96\xa2\xe9\xbd\x21\xa5\xb8\x94\x8a\x81\xb1\xbe\x8b\x47\x39\x31\x6c\xaf\x37\xed\xff\x36\xb4\xf3\x7f\x4e\xc8\xd9\x23\x30\x21\x27\xe6\xcf\x13\x9c\x4e\x1d\xaa\xe6\xab\x5f\x9a\x69\x61\x3e\xb6\x92\xcf\xe7\xac\xec\x34\x6d\x42\x4d\xdd\x07\x26\xf4\xb9\xcd\xb1\x2d\xa4\xd7\x95\x73\xaf\x6b\xb4\x09\xab\xd3\xfc\xfe\xb7\x7f\x3b\x21\x67\xed\x3d\xe9\x18\x92\x8b\x94\x7d\x22\xbf\x45\x23\x25\x57\x66\xf7\xce\x27\xa8\x7e\x50\x4b\xa1\xe9\x27\x33\x62\xb2\x90\x8a\x09\x54\x07\x69\x49\x16\xf4\x81\x11\x25\x73\x46\x1e\x59\x96\x8d\xad\xd9\x96\x3c\xd2\x65\x77\x6a\x71\x77\x84\x90\x47\x95\x14\xb4\xd4\x2d\x30\xee\x02\x0e\x54\x50\xc2\x4c\x0d\xa8\xcd\x85\xf3\xab\x9b\x71\x61\xfd\x57\x74\x4b\x79\xad\x2a\x04\x1d\x2d\x49\xb2\xa0\x62\x5e\x67\x18\x9d\x55\xba\x2a\x3b\x78\xe0\xc0\x4b\x7f\xcf\xc5\x5e\xd3\x43\x7e\xc5\xc5\xaa\xe7\x66\xe7\xc6\x6c\xd0\x1c\xcf\xb9\x76\x49\x03\x6c\x34\x90\x5e\x5e\x80\xee\x96\x4f\x2b\x2d\x4b\x75\x91\xb2\x07\x96\x5d\x28\x3e\x1f\xd3\x32\x59\x70\xcd\x12\xb3\x27\x17\xb4\xe0\xe3\x44\x0a\x03\x88\x90\x48\x38\x4f\x7f\x69\x76\x42\x8d\xcd\x42\x77\xab\x92\x03\x77\xac\xdb\xf8\x11\xb7\x63\x7d\x8c\x1d\xcf\xa3\x6b\x8f\xd8\xa0\x00\x45\x68\xfc\x2e\xa1\xb6\xf1\xd9\xb7\x0a\x14\x6e\x17\xfb\xd8\x29\x57\x0e\x3a\x9e\x17\xe8\xdc\x2f\x5b\x01\x3d\x59\x1d\xc3\x20\x13\x74\xea\x05\x5c\xd3\xa2\x4a\x39\x4d\x91\x6c\x51\xd1\x19\x98\x7f\xe0\x3b\x6b\xce\xa3\x2a\xcd\xcc\x96\x63\x6b\xb2\x19\x53\x91\x9a\x7f\x63\x1e\x8e\x64\xb7\xe3\x69\xe0\x01\x54\x7c\xaf\xc8\xef\xdb\x9b\xab\xe7\x07\xcf\x8b\x5f\x56\x7c\x1f\x98\xae\x8f\x35\xc9\xca\x01\x81\xcc\x39\x8a\x40\xe8\x88\x5b\x56\xcc\x31\x4c\x6d\xc1\x87\x2b\xd7\xeb\xff\xb6\xae\x0b\x75\x19\x9c\x2e\x56\x7d\xb7\x3b\x81\x27\x93\x04\xce\xf7\xeb\xe6\x0b\x5f\x55\x0d\x0e\xfe\x54\x69\x5b\x68\xc4\x25\xb1\x6d\x2d\xc3\x09\xc3\x40\xc6\xb7\xb3\x52\x41\x07\xe3\xdc\x23\xcd\x44\xc6\x1b\x6b\x37\x24\xb5\xb0\xdb\x29\xc3\x7b\x72\x31\x88\x46\x19\x57\x75\xb1\x0d\x23\x26\x2b\x4d\xe8\x03\xe5\x19\x58\xe9\xe4\x54\xb1\xf2\x81\xe2\xeb\x58\x0a\x8b\xae\xca\xf4\x78\x6d\x35\x32\xd8\x47\x92\xa8\xdd\x1a\xd6\x4f\x65\xd7\x02\x40\xca\x5e\x99\xfd\xd6\x59\xef\x45\x9e\x46\x55\xc6\xd6\x9f\xcd\x08\x3d\xc5\x63\x03\x7f\xff\xce\x68\xa9\xa7\x8c\xea\x8f\x7c\x17\x87\xb2\x06\xd2\xad\xef\x9c\x1e\xb0\x01\xe8\x47\x46\xe6\x52\x1b\x36\xb7\x02\xd8\x47\x79\x04\x13\xe0\xd7\x80\x76\x68\x88\x6e\x56\xf9\xb1\xa4\x90\x12\x43\x8a\xc8\x65\xb6\x3f\x5c\x5f\xa7\x95\x7d\x2c\x24\x69\x7c\x1b\x73\x24\x4b\xc1\xec\xd9\xa1\xa1\x70\x77\xf6\x8e\xbd\x2e\x39\x67\x4a\xed\x4c\x9e\xdc\x8e\x1e\xc1\xb7\xf1\x2a\xaf\x98\xd8\x73\xf7\x1b\x06\x9f\x1b\x21\x26\x65\x9a\xf2\xcc\x5d\x65\xdc\x8a\x7a\x97\xba\xb0\xeb\xce\x05\x96\x8c\xaa\x5d\x0c\x4d\x6b\xd6\x1f\xe0\x65\x9c\xb4\x14\x6c\xfc\x28\xcb\x94\xbc\xa1\x39\xcb\xde\x50\xc5\x6c\x5f\x7e\x82\x1d\x3c\xa3\x53\xb5\xd7\x29\x6f\x56\xbf\x6e\x99\x32\x2a\x15\x1b\x03\x06\xfc\xd5\x08\xd0\x38\xc1\x91\xd3\x82\x7f\x2c\x2b\x36\x22\x6f\x0d\xf5\x1a\x91\x6f\xc5\xbd\x90\x8f\x4f\x9b\xab\xde\x69\x1c\x6c\xcd\xd4\x77\xd1\x74\x99\xdb\x5b\x8a\xc4\x7a\xba\x3d\x67\x64\x11\xfe\x16\x6d\x77\x9b\xd8\xd4\xaf\xba\x19\x99\x7f\xae\xa9\x36\x8d\x28\x5f\xca\x79\xc9\x14\x26\x25\xdf\xe8\x43\x1f\x6a\x20\xf9\x92\x09\x9b\x0c\xa7\x73\x7a\x37\x9b\xbe\x72\x33\x75\x74\x6d\xde\xfc\x62\xcf\xdb\x0e\x56\x64\x1b\x59\x8d\xdd\x01\x10\xde\x44\xb7\x28\x35\xb7\xcd\x70\xb3\x32\xd3\xa3\x7a\xde\xbb\xc8\x94\xec\xd2\xc4\xbb\xd5\xbd\xb9\xfb\x6e\xfb\x66\x6f\xa5\x7d\x5d\xf4\xa9\x5b\xdd\xf9\x54\x45\x67\xe7\x9d\xe9\x54\x6e\x86\x72\xfa\xc7\x51\x68\x3e\xa7\x2a\xf3\x79\x95\x98\x47\x57\x5f\x1e\x55\x71\x79\x3c\x95\x65\x6f\x65\xe5\xb1\xd4\x94\x9d\x57\x76\x97\x6a\x32\xf4\xb6\xc6\xa9\x23\x9f\x5d\x11\xd9\xb9\x27\xbb\x94\x8f\xa1\x7b\x12\xa7\x70\x3c\xb6\xaa\x31\x68\x0b\x76\xaa\x17\x63\xf6\x21\x52\xa5\x78\x64\x65\x62\xe7\x5e\x04\x2a\x10\x43\x77\xe4\x70\x4a\xc3\x17\xab\x2e\xec\xdc\xe2\x1d\x2a\xc2\xd0\x6d\x8d\x52\x0b\x1e\x59\x21\xd8\xb1\xfe\x38\x25\xa0\xe5\x66\x59\x1a\x22\x0c\xdc\x78\x2f\xfb\xe2\x80\x65\x45\xc1\xb5\xcf\xbe\xe1\x5c\x09\x7d\xa6\xb5\xaf\x4c\x60\xd8\xf4\xbe\x9e\x2d\x76\xca\xe1\x7c\xb7\x15\x16\x58\x5a\x4b\xaf\x5d\x4b\x20\xe4\xea\xfa\xf6\xc3\xf5\x9b\xcb\x8f\xd7\x57\xab\xfc\x7e\x3c\x63\xbe\x5b\x25\x35\xf6\x18\xf3\x2d\x2f\x18\x62\xb5\xe5\x27\x03\x5b\x5b\x7e\xaa\x2a\xbe\xe9\xab\xa7\x8b\x09\x4f\xe2\x19\x9e\x44\x5c\xbb\xf1\xc4\x9e\x10\x05\xc0\x16\xfa\xe3\x1a\xfe\x75\x21\xb3\x54\xb9\x38\x86\x9b\xab\x3a\xb3\x01\x17\x49\x56\xa5\x86\xb9\xfb\xf6\xdb\x9b\x2b\x35\x21\xe4\x2f\x2c\xa1\x95\x32\x4c\xe2\x76\xc5\x80\x14\xa7\x9a\x7c\xf3\xfe\xeb\xff\x80\x28\x36\xf8\x72\x54\x67\x92\x85\xd2\x84\x9c\x62\x75\x45\x58\x28\xf4\x8a\x0c\x24\xcc\x28\xa1\x85\xc1\xc0\xdb\x8d\x0b\x1c\xd3\xe1\x18\x1e\x71\xc1\xb2\xc2\x50\x87\x7b\x46\x9a\xe2\x6e\x66\x40\xf8\x15\xe3\x34\xac\xbf\xfa\x9c\x69\xcc\x72\xb0\xcb\x25\x7d\xe7\x01\x74\xe8\xf2\x9f\xa0\xc5\x6f\x29\x26\xac\x9e\xe7\x91\x2a\xab\x0b\xdd\x38\xdb\x0e\x50\xe9\xd6\xfc\x6d\x57\x9e\x6d\x51\x9b\x21\x65\x81\xbf\xd6\xe6\x6c\x26\xdb\x68\xc8\xd0\xed\x8d\xeb\x60\x3d\xfd\x76\x1f\xc7\xcd\x95\xaa\xd7\xb4\x64\x6c\x75\x93\x5b\x03\xd7\x31\x3f\xde\x94\xc3\xe6\xa2\x58\xf9\xc0\xd2\xd7\x60\x39\x72\x8f\xd0\x8f\xb8\xfd\xac\x9a\x3a\x66\xc6\xc3\x3a\x56\xd7\x47\xfe\xfb\x7f\x7e\xf1\xff\x07\x00\x00\xff\xff\xc4\x49\x06\xc4\x66\x78\x03\x00") +var _operatorsCoreosCom_subscriptionsYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\xbd\x7b\x73\x23\xb7\x95\x28\xfe\x7f\x3e\x05\x4a\x49\x95\xa4\x84\xa4\x66\xb2\xb9\xd9\xdc\xb9\xa9\xa4\xe4\x19\x8d\x57\xd7\x9e\xb1\xee\x68\xec\xd4\xfe\xbc\xde\x35\xd4\x0d\x92\x88\x9a\x40\xbb\x81\xa6\x86\x59\xef\x77\xff\x15\xce\x01\xd0\x68\xbe\x1a\xa0\x48\x4a\xe3\x34\xfe\xb0\x47\xcd\x6e\x3c\x0f\xce\xfb\x41\x4b\xfe\x1d\xab\x14\x97\xe2\x15\xa1\x25\x67\x9f\x34\x13\xe6\x2f\x35\xba\xff\x93\x1a\x71\x79\x31\x7f\xf9\xab\x7b\x2e\xf2\x57\xe4\x75\xad\xb4\x9c\x7d\x60\x4a\xd6\x55\xc6\xde\xb0\x31\x17\x5c\x73\x29\x7e\x35\x63\x9a\xe6\x54\xd3\x57\xbf\x22\x84\x0a\x21\x35\x35\x8f\x95\xf9\x93\x90\x4c\x0a\x5d\xc9\xa2\x60\xd5\x70\xc2\xc4\xe8\xbe\xbe\x63\x77\x35\x2f\x72\x56\x41\xe7\x6e\xe8\xf9\x8b\xd1\xcb\x3f\x8e\x5e\xfe\x8a\x10\x41\x67\xec\x15\x51\xf5\x9d\xca\x2a\x5e\x42\x4f\x23\x59\xb2\x8a\x6a\x59\xa9\x51\x26\x2b\x26\xcd\xff\x66\xbf\x52\x25\xcb\xcc\x18\x93\x4a\xd6\xe5\x2b\xb2\xf6\x1d\xec\xce\x4d\x85\x6a\x36\x91\x15\x77\x7f\x13\x32\x24\xb2\x98\xc1\xbf\x71\x89\xb7\xc1\xa8\xf0\xb8\xe0\x4a\x7f\xb5\xf2\xd3\xd7\x5c\x69\xf8\xb9\x2c\xea\x8a\x16\x4b\xb3\x85\x5f\xd4\x54\x56\xfa\x7d\x33\xb6\x19\x4b\xd5\x77\xe1\xbf\xed\x8b\x5c\x4c\xea\x82\x56\xed\x4e\x7e\x45\x88\xca\x64\xc9\x5e\x11\xe8\xa3\xa4\x19\xcb\x7f\x45\x88\xdd\x2e\xdb\xe7\x90\xd0\x3c\x87\x23\xa0\xc5\x4d\xc5\x85\x66\xd5\x6b\x59\xd4\x33\xe1\xc7\x34\xef\xe4\xcc\xf7\xfa\x8a\x7c\x9c\x32\x52\xd2\xec\x9e\x4e\x98\x1b\xef\x8e\xe5\x44\x4b\xff\x01\x21\x7f\x57\x52\xdc\x50\x3d\x7d\x45\x46\x66\x8b\x47\x66\x07\x83\x9f\xf1\x7c\x6e\xb0\x93\xe0\xb9\x5e\x98\xe9\x2a\x5d\x71\x31\xd9\x36\x7c\x46\x35\x2d\xe4\x84\x20\x18\x91\xb1\xac\x88\x9e\x32\x62\x86\xe2\x63\xce\x72\x37\xbf\x2d\x33\xc2\x4f\x57\xe6\x74\xbb\xfc\x38\x7a\x4a\x53\x2a\x04\x2b\x88\x1c\x93\xba\xcc\xa9\x66\x8a\x68\xd9\xec\xcf\xf6\xed\xb1\x1f\xaf\xcc\xe6\xf5\xca\xf3\x35\xd3\xc1\x57\xe7\x2f\x69\x51\x4e\xe9\x4b\xfb\x50\x65\x53\x36\xa3\xcd\x19\xca\x92\x89\xcb\x9b\xeb\xef\xfe\xe5\x76\xe9\x07\xd2\x5e\x4a\x08\xa2\xe4\x9e\xb1\x52\x35\x97\x82\xd4\xa5\x59\x93\x59\x1c\xb9\x5b\x10\x5d\xd1\xec\x9e\x8b\x09\x2c\x7d\x82\xeb\x7d\x8d\x07\xa3\x46\x2b\x53\x96\x77\x7f\x67\x99\x0e\x1e\x57\xec\xa7\x9a\x57\x2c\x0f\xa7\x62\x76\xd6\x61\x82\xa5\xc7\x66\x9f\x82\x47\x65\x65\xa6\xa5\x83\x7b\x88\x2d\x40\x45\xad\xe7\x4b\xcb\xfc\x79\xb8\xf4\x2b\x21\x66\x77\xf0\x4b\x92\x1b\xbc\x64\x16\x34\x65\xee\xba\xb0\xdc\x6e\xa9\x39\x60\x3d\xe5\x8a\x54\xac\xac\x98\x62\x02\x31\x95\x79\x4c\x85\x5d\xe5\x68\xa5\xf3\x5b\x56\x99\x8e\xcc\x95\xae\x8b\xdc\x20\xb4\x39\xab\x34\xa9\x58\x26\x27\x82\xff\xc3\xf7\x0e\x9b\x68\x86\x2d\x0c\x04\x69\x02\x17\x52\xd0\x82\xcc\x69\x51\xb3\x01\xa1\x22\x5f\xe9\x7b\x46\x17\xa4\x62\x66\x5c\x52\x8b\xa0\x47\xf8\x44\xad\xce\xe5\x9d\xac\x18\xe1\x62\x2c\x5f\x91\xa9\xd6\xa5\x7a\x75\x71\x31\xe1\xda\xa1\xea\x4c\xce\x66\xb5\xe0\x7a\x71\x01\x58\x97\xdf\xd5\xe6\xe8\x2f\x72\x36\x67\xc5\x85\xe2\x93\x21\xad\xb2\x29\xd7\x2c\xd3\x75\xc5\x2e\x68\xc9\x87\xb0\x18\x81\x48\x76\x96\xff\xba\xb2\xc8\x5d\x2d\x0d\xbc\xf6\x22\x11\x87\x36\x13\x0f\xcb\xe0\x53\xc2\x15\xa1\xb6\x43\x5c\x6c\x73\x26\xe6\x91\xd9\xc6\x0f\x57\xb7\x1f\x89\x9b\x11\x9e\x1b\x1e\x51\xf3\xea\x9a\x1d\x72\xa7\x65\x76\x96\x8b\x31\xab\xf0\xcb\x71\x25\x67\xd0\x2b\x13\x79\x29\xb9\xd0\xf0\x47\x56\x70\x26\xb4\xb9\xe9\x33\xae\x15\x80\x35\x53\xda\x1c\xe4\x6a\xc7\xaf\x81\xb4\x91\x3b\x66\x71\x44\xbe\xfa\xca\xb5\x20\xaf\xe9\x8c\x15\xaf\xa9\x62\x47\x3f\x3b\x73\x46\x6a\x68\x0e\x24\xfa\xf4\x42\xc2\xbd\xfa\xc1\xca\xad\x27\xc4\x91\xdc\x8d\xc7\x1d\xa2\xa0\xdb\x92\x65\xfe\x3a\x52\x41\x2e\xcb\xb2\xe0\x19\xde\x38\x3d\xa5\x9a\x64\x54\x98\xed\xe4\x42\x69\x5a\x14\x6c\xf9\x76\x6c\x9c\xc5\x26\xfc\x43\x00\xd9\x2c\x91\x2b\xf7\x78\x85\x66\xb4\x7f\xf0\x64\x76\xe9\x8d\x4d\xb8\xca\x34\x8b\xf9\x57\x7f\xd8\xb2\xe5\x04\x59\xa2\x31\x9f\xac\xfb\x6c\xe3\x5e\xbe\x86\x4f\x80\x99\xa2\x5c\x28\xdb\x45\x5d\xe1\x6e\x36\xb4\xd3\x50\x53\xda\xe2\x24\x56\xe1\x70\xeb\xce\x76\xad\xd9\x34\x3a\x06\xd6\x6f\xb1\xfe\xd7\x6e\x04\xe0\xda\xf5\xb8\x99\xf9\x80\xc8\x39\xab\x2a\x9e\x5b\xd4\x5d\xca\xfc\x54\x01\x62\xcd\xeb\x02\x08\x95\x14\x4a\x57\x94\xaf\xbd\xf4\xae\x09\x5e\x98\xc5\x0f\xa9\xc6\x1b\xc4\x14\x79\xe0\x45\x41\x7e\x2b\xa4\xfe\xad\x1f\x01\x06\x90\x15\x9f\x70\x8f\x9d\x15\xe1\xc2\x8d\x0b\x64\xdd\xf2\x25\x52\xb1\xa5\x0e\x37\x0f\xfe\xad\x62\x84\xcd\x4a\xbd\x70\x68\xea\xec\xbf\xff\xe7\xdc\xd0\x04\x56\x51\x15\x0c\xd8\xea\x6f\x23\xa6\xc7\xd6\x71\x52\x24\xe2\xb4\x60\x5f\x64\xce\x2e\x3b\x4e\x8d\x2c\x9f\xdc\x1b\x86\xec\x8f\x82\xcf\xfd\xa9\x87\x87\x52\xd5\x05\x53\x9e\x85\x33\x7b\xb7\xa5\xf3\x88\xb5\xc4\xae\x07\xdf\x63\x63\x56\x55\x2c\x7f\x53\x9b\x5b\x76\xeb\x67\x75\x3d\x11\xd2\x3f\xbe\xfa\xc4\xb2\x5a\xaf\x61\x29\xb6\x2e\x7d\x0b\xd0\xba\x66\xf8\x46\xbb\x13\xac\x42\x28\xc3\x19\x01\xeb\x68\x7f\x30\x5b\x02\x6c\x81\xd9\x41\x85\x58\x4f\x51\xcd\xd5\x78\xd1\x39\x80\xd9\x51\xbf\xe7\xec\x93\xa1\x78\xc0\xfb\x07\xb7\xdd\x30\x72\x40\xdc\x38\x2b\xf2\x01\xb9\xab\x35\xe1\x1a\x28\x5f\x36\x95\x52\xad\x62\xbb\xe5\x46\xf1\x68\x61\x5e\x73\x2e\x81\x71\x21\x52\x18\x60\x25\x33\x43\xae\x80\x61\x62\xe1\xf0\x23\x58\x79\xf3\x19\x5f\xa6\x36\xab\x6d\x26\x95\x6e\x8e\xcb\x90\x7e\xb8\x80\x82\x91\x07\xae\xa7\xf0\xc7\xa4\x62\xc8\x34\xa9\x7a\x66\x06\x7d\x60\x7c\x32\xd5\x6a\x40\xf8\x68\x0d\x25\x5d\x6e\x06\x00\x19\xcd\xa6\xc1\xb4\x66\x8c\x69\x45\x68\x51\xb8\x25\x84\x50\x8b\xd4\x63\x66\x18\x08\x72\xe6\x38\x8c\xce\x51\x2c\x77\x30\xf0\xd4\x67\x19\xf0\xd6\x1e\xd7\x80\x30\x9d\x8d\xce\x07\x9d\xdd\x67\x72\x56\x1a\x84\x40\x61\x0f\xee\x16\x84\x6b\xc3\xbb\x23\x37\x54\xc9\x7a\x82\x3b\xc5\x0a\x3b\x71\xc7\xcb\xc2\xe1\x1b\xe6\x12\xa4\xc1\x35\xe4\x66\xb9\x9d\xe0\xe6\x9e\x38\x76\xd5\x0c\xc7\x71\x93\x60\xff\x66\x54\x67\x53\x8b\x86\x33\x59\x55\x4c\x95\x52\x98\x9e\xf1\x97\xab\x66\x6d\xff\xc7\xbc\xd3\x39\x9e\xe9\xf4\x4c\x9d\x37\x87\x3d\xe5\x93\xa9\x3b\x6b\x5a\x21\x3a\x6e\xc3\x48\xd7\x91\x23\x2a\xa1\x55\x45\xbb\xee\x11\xd7\x6c\xd6\x81\x48\xc8\x0e\xb7\x9f\x90\x4b\x61\x91\x7d\x03\xd8\x01\x88\x69\x56\xcd\xfc\x46\x02\x14\x02\xda\x53\xb8\x09\x7c\x66\x38\x21\xae\x2d\x98\x93\x17\x11\xe3\x9d\x99\x9b\x40\xb8\x3e\x55\x70\x6b\x87\xb2\x3c\x1f\x91\x4b\x22\x6a\x8f\x78\xb6\x4d\x41\x48\x3f\x03\xdb\x91\x99\x96\x92\x4d\x5f\xdd\xf8\x28\x0e\x7d\x63\xdb\xcc\xa0\xad\xb6\xa1\x9d\x3f\x13\x11\x97\xd0\xbc\x8e\xbb\xd6\xf9\x6a\x2c\x21\x71\x6f\xbb\x39\xc4\xbc\xbd\x04\x31\x97\x78\x73\x14\x2b\x58\xa6\x0d\x35\x64\xd5\x6c\x40\xa8\x52\x32\xe3\x46\x54\x68\x60\xbf\x7d\xa1\x70\x25\xdd\x7b\x4f\x52\xf7\x9f\x24\xaf\x9f\x80\x34\xda\xbe\xdf\xb1\xdf\xad\xec\x46\xc1\x95\x36\x08\xaa\xbd\x2b\x2d\xbc\x7b\xb7\x80\x5f\x4f\x15\x29\xe8\x1d\x2b\xb6\xf0\x55\xcb\x2d\xfe\xf2\x37\x2d\x12\x0d\x6c\x58\x50\x14\x42\x68\xda\x32\x34\x04\xeb\xb6\x72\xaf\x87\x13\x10\x83\x1c\x53\x8f\xac\xe0\x80\x50\x72\xcf\x16\x03\x44\xe9\xc2\xab\x70\x92\xa6\x00\x1d\x57\x0c\x09\xba\x81\xbb\x7b\xb6\x80\x0e\xb7\xb3\x9b\x6b\xbb\x4a\x85\x3b\x6c\x29\x18\xa0\x69\x43\x33\xd1\xc4\x2f\x76\xd8\xa0\xf4\xab\x81\xed\x9e\x6d\x65\x9f\xd7\xb5\x15\x65\x23\x80\x3b\x9c\x07\x1c\x12\x50\x60\x07\x0f\xd4\x88\xc8\x6c\xbd\xfe\x61\x7b\xdb\x2a\x70\x6e\x6b\x6e\xf7\x1e\xb5\xae\xc4\x0b\x62\xda\x07\xaf\xc3\x41\x78\x3f\x55\x08\xaf\x06\xef\x4c\x39\x28\x2b\xcd\x45\x01\x34\x92\x0e\xb4\xd8\xbe\xa3\x05\xcf\x03\x1d\xa8\x61\x36\xae\xc5\x80\xbc\x97\xda\xfc\xef\xea\x13\x57\x86\xc7\x7c\x23\x99\x7a\x2f\x35\xfc\x39\x22\x5f\x6a\xbc\x7a\x5f\x47\xe2\xe5\xa6\xed\x7c\x06\xb8\xbe\x63\x9f\xc0\xa5\x40\x24\x6a\x76\x38\xd4\xc4\xa9\x91\x91\xcc\x81\x45\xb7\x3b\x67\xb0\xd6\xb5\x30\x42\x01\xee\x5c\xf2\x50\xa0\x8c\x45\x39\x1b\x87\x9c\xd5\x0a\x54\x69\x42\x8a\x21\xb0\x51\x6b\xc7\xc4\x03\x32\xe3\x86\x47\xb4\xc7\xe1\x37\x0f\xfd\xa5\x36\xc3\x7e\xad\x07\xc1\xc7\xc9\xe3\x06\x83\x4d\xe9\x1c\x58\x7b\x2e\x26\x85\x67\xe2\x07\xe4\x61\xca\xb3\x29\x4a\x8f\xa0\x09\xd3\xac\x2a\x2b\x66\x38\x06\x0a\x3a\x33\xf3\x64\xc2\xaa\x74\xd0\xff\x68\x44\x03\x1c\x1f\xf5\xdd\x05\xcd\x58\x4e\x72\x10\x59\x50\xf5\x4a\x35\x9b\xf0\x8c\xcc\x58\x35\x61\xa4\x34\xa4\x7f\x37\x80\x4f\xa3\xc4\xd8\x92\xe9\x71\x38\xe0\x0e\x37\x8c\x90\x4f\xc3\xfb\xfa\x8e\x55\x82\x69\xa6\x86\x86\x3f\x19\xda\xd9\x6b\x39\xe3\x59\x74\x67\x7b\xe9\x06\xf8\xac\xb7\x46\x6e\x3b\x12\x8b\x05\x32\x62\xcf\x62\xf5\x2c\x56\xcf\x62\xf5\x2c\x56\xcf\x62\x45\xb7\x9e\xc5\x7a\xf4\xf0\x3d\x8b\xd5\xb3\x58\x47\x67\xb1\x5a\x5d\xcc\x68\x99\xda\x03\xea\xe5\x76\x50\x04\xfe\x0d\x15\xba\xcb\x9a\x3f\x60\xf8\x9c\x5f\x43\x5b\x05\x68\xf8\x98\x5b\x4b\x9c\x3e\x82\xda\xd0\x5a\x22\x2b\x2a\x26\x8c\xbc\x1c\xbe\x7c\xf1\x22\x45\x41\x68\xc1\x39\xea\x8b\xb1\xac\x66\x54\xc3\x37\xff\xf2\xfb\x8e\x2f\x1e\x71\x2a\x9b\xec\x25\xc7\x31\xd4\x59\xcc\xe3\x6d\x33\x2d\x16\x79\x83\x2d\x0d\xc8\x98\x90\x9a\xcc\x98\x26\xb4\x9b\x27\x0b\xd5\xee\x7c\xc6\x06\xce\x1c\x8a\x68\xc7\xba\x8d\x38\xa3\x60\x4e\xa4\xb0\xa6\x17\x73\xf8\xdd\x87\xbb\xd3\x0a\x32\x46\x15\x33\x24\xfe\x8e\x99\x55\x74\x9b\x02\x35\x51\x72\x66\x66\xcd\x85\x76\x48\xcc\x2c\x81\xb9\x83\x21\x67\x6c\x34\x19\x91\xbc\x86\x6e\xa9\xb0\x7e\x30\xe7\xb8\x5a\xb5\x50\x9a\xcd\xba\x6d\x81\x86\x18\x56\xf0\x3f\xb3\x2d\xba\x5a\x80\x85\x7c\xce\x84\xae\x69\x51\x2c\x08\x9b\xf3\x4c\xfb\xfd\x03\xb7\x1d\xae\x55\xd4\x4e\x25\xb0\xd1\xf1\xac\xf3\x70\xe5\x86\x76\x11\xa9\x14\xce\x77\xa5\xef\x18\x9c\xd3\xba\x01\x1f\xec\x4a\x46\x1b\x65\x42\x6d\xfa\x45\xb3\x2d\xfc\x13\x80\xfb\x9b\x0f\xdd\x56\x36\x92\x4c\x7f\x12\x68\xce\x6e\xac\x95\x35\x78\xc9\xca\x1a\xdf\x56\x57\xba\xc6\xe4\x85\x6b\x6f\xdd\x1a\x39\x8e\x1c\x50\x4f\x19\x1a\x29\x2f\xdf\xbf\x89\xdb\x31\x62\x9d\x03\x3e\xca\x52\x16\x72\xb2\x08\x8f\x17\xb6\x13\xcc\x7f\x76\x1e\xe8\xab\x83\x2c\xb8\x81\xf9\xf7\x4b\xf0\xd0\x9b\x86\x7a\xd3\x50\xaf\xb7\x80\xd6\xeb\x2d\x7a\xbd\x45\xaf\xb7\x88\x6b\xbd\xde\xe2\xd1\xc3\xf7\x7a\x8b\x5e\x6f\xd1\x9b\x86\x56\x5b\xcf\x62\x75\xb7\x9e\xc5\xda\xda\x7a\x16\xcb\xb7\x9e\xc5\xea\x59\xac\x9e\xc5\xea\x59\xac\x9e\xc5\x3a\x56\x37\x8f\x35\x0d\x3d\x6a\x0a\xbb\x0d\x5e\xca\xfc\x11\xc1\x5b\xa5\xcc\xb7\xc4\x6e\xa1\x4e\x3f\x93\xc3\x42\x66\x54\xdb\x30\x5b\xf3\x89\xb5\x42\x29\x3a\x43\x33\xc5\x80\xfc\x43\x0a\x86\xd1\x2c\xe6\x7a\x80\xb1\x40\xea\x29\xab\xcc\xeb\x67\xea\x7c\x6b\x08\x41\x1f\xfb\xd5\xc7\x7e\xf5\xb1\x5f\x1b\xdb\xb3\x89\xfd\x9a\x52\x85\x70\x8b\xa4\x71\x73\x28\x58\x80\x93\x3e\xb2\x6a\xf6\x0b\x8d\x04\x33\xe0\x6e\xc1\x11\x92\x44\x34\x20\x85\x3b\x93\x5b\x83\x3f\xcb\x6f\xda\xfb\x61\xc5\x6a\x58\x14\xcd\x73\x96\x93\x92\x55\x43\x04\x51\x49\xc6\x5c\xe4\x6b\xd6\xea\xf6\xa7\x1b\x3d\x1c\x30\x14\xab\xbd\x8e\xa8\x6f\x0e\x13\x8f\xd5\x9e\xc8\x0e\x46\xc5\xd0\x32\xda\x22\x82\xcf\x22\x3a\x2b\x55\x42\x1f\x12\x6d\x0d\x8a\x5f\x45\xca\xe8\xe9\x62\x36\x08\xc7\xce\xfc\xb8\xa3\xfa\x29\x49\x14\xba\xb4\xf2\xf8\x4f\x35\xab\x16\x10\x9f\xdf\x88\x9d\x3e\x17\x89\xf5\x88\xe1\x8a\x64\x54\x21\x59\x4d\x61\x95\xaf\xc7\x18\x35\x29\xea\xa2\x18\x60\x3f\xcb\x97\xd5\xa1\x39\x80\x03\x21\xcd\xef\xc9\x1a\xb1\x44\x15\xcd\x6e\x3a\x90\xdd\xad\xb0\x64\xf9\x9c\x96\xbb\x42\xdd\x98\x53\x1d\xe2\xb1\xac\xd5\x1d\xae\xb1\xa6\x27\xdb\xc7\xb1\xed\x2a\xc0\xec\x24\xbe\x3c\x5a\x5e\xdf\xb2\x27\x8f\xd0\x2b\xc2\xcb\xc9\x93\xd9\x8f\x6e\x91\xec\xae\x5f\x24\x3b\xeb\x18\xc9\x4e\x7a\x46\xb2\xab\xae\x91\x3c\x42\xdf\x48\x76\xd3\x39\x92\x65\x68\x33\x27\x64\x19\xdf\xc3\xa8\x1f\xc9\xe3\x84\xf3\xdd\xd5\x90\x64\x0f\x17\x2b\x1c\x3f\xc8\xec\x74\x38\xbd\x24\x89\xd5\x4d\xc2\xb5\x6a\xa9\x27\x8f\x7d\x2e\xbb\xa9\x26\xc9\x9e\x4e\xc5\x65\xc6\x01\x5d\xd8\xb1\x94\x95\xe4\xe9\x15\x96\x5b\xa7\x60\x87\x8f\xd6\xf0\xed\x34\xfa\x23\xb4\x82\xe4\x51\x9a\x41\xb2\xbb\x76\x90\x3c\x16\xd8\xf7\xa6\x25\xdc\x6b\x57\xc0\x27\x7d\x0d\x7e\x68\x8f\xe0\xb6\x92\x6f\x60\x30\x2c\x72\x17\x33\x5a\x9a\xdb\xf7\xdf\x86\x89\x00\xc0\xfc\x1f\x52\x52\x5e\x29\x23\xdd\x58\xbd\x76\xf8\x9b\x55\xdf\x05\xdd\x24\x4f\xa0\x34\x03\x1b\x1a\x3f\xa7\x85\x61\x72\xd0\xe9\xd7\xea\x20\xcc\x5c\x96\x59\xc8\x01\x79\x80\x84\x59\x86\xbc\xa1\x66\x82\x2b\x72\x72\xcf\x16\x27\x83\x28\xf5\x40\xbb\x85\x37\xfb\xe4\x5a\x9c\x20\xeb\xb4\x72\x2f\x3d\x9f\x25\x45\xb1\x20\x27\xf0\xdb\xc9\xbe\x79\xd4\x1d\xf8\xa3\x30\x35\xeb\xae\xec\xc7\x4e\xd7\xe9\xb1\x0a\x6e\xd2\x82\xbe\xaf\xd8\x62\x57\x47\x84\x24\x98\x7f\xd7\x1a\xd1\x31\xd4\x00\x66\x46\x76\xf7\x7c\x13\x66\x66\x05\x96\xc9\xea\xa8\x50\x5d\xc5\x8b\x22\x61\xb4\x3b\x46\x34\xbd\x67\x60\xe1\x91\x90\x5a\x8e\xe7\x0c\x93\xe9\x21\xe8\xc0\x48\x06\x64\x6a\x05\xe9\x71\x49\x21\xe5\x7d\x5d\x3a\xd0\x73\xd9\x24\x13\x86\xe4\x22\x93\x33\xe7\x53\x8f\x7e\xad\x03\x9b\x60\xee\x9e\x2d\x86\x98\x03\x13\x9f\xc3\xc0\x40\x02\xac\x6a\xe2\xc7\x96\x60\xfe\x23\xa1\x8a\xfc\x08\x4c\xa5\x20\x67\xf0\xe1\xf9\x8f\x29\x2e\x05\x7e\x03\x51\xfb\x2a\x6b\xc0\x2c\xcc\x10\x4b\x3b\x41\xb5\xbc\xb7\xdb\x76\x2c\x61\x68\x97\x29\x2e\xdc\x8c\x53\xb4\x37\x9c\x51\xa1\xf9\xb9\x57\xd2\x8c\x08\xc0\x01\x70\xc9\xb9\x14\xa7\x1a\xe7\xe7\xf0\x9a\xeb\x20\xc5\xeb\xc0\xef\x7b\x63\xf1\x43\x6b\x01\x1e\x79\xce\xc6\xb4\x2e\xb4\xcd\x46\x6a\x50\x1f\x50\xfa\x84\x11\x3e\x3a\x7b\x89\x65\xf8\xc7\xb2\xba\xe3\x79\xce\x04\x84\x38\xb8\xe9\xdf\x49\x17\x10\xd4\x80\xbb\xc1\x6c\xad\x33\x4e\x19\xf6\xb2\x50\x72\xb0\xdc\x63\xe6\xb3\x95\x9a\x5b\xf4\x30\x65\xa2\x3d\x00\xe1\xca\x6c\xaa\x62\x49\x4c\x2d\x70\x3d\x70\x37\xef\x98\xa6\x81\xfa\xd9\xa2\x5a\x45\x98\xa0\x77\xa0\x0f\x6f\x5f\xe8\x6b\x11\xe8\x5c\xc8\x98\x51\x5d\x57\x8c\x4c\xa8\x66\xe4\x0c\x3e\x41\x8b\x86\x3d\x83\x88\x6c\x54\xae\x1d\xc5\x1d\xe9\xf1\x78\x78\x67\x77\x30\xae\x9e\x00\x17\x2f\x0f\xda\xa3\xe3\x28\x74\x2c\xa4\xee\x31\xf2\x67\x8b\x91\x57\x80\x7e\x1f\x48\x79\xa5\xd3\x1e\x2f\x6f\x6e\x9f\x11\x5e\x16\x2e\x5d\xf4\x13\x5b\x4b\x50\x81\x88\xde\xbe\x6e\x4a\xaa\xd1\x2d\x42\x40\xdc\x6e\x7a\x45\x17\x2e\x08\x60\x05\x3d\xe4\xce\x68\x5c\x0b\x9b\x34\x1f\xcc\xc6\xcd\xb0\x88\xc3\x96\x7d\x13\x12\xc6\x74\x02\x9e\x14\x4c\x81\x29\x82\x79\x3f\x94\x60\x18\xe8\x35\x65\x29\x10\x32\xd8\xa8\x59\x45\xbe\x1c\x44\xd8\xf4\x0d\xf6\x8f\x19\xa3\x42\x91\x13\xe7\x0a\x73\xaa\x9a\x37\x4e\x92\x70\x80\x4b\x11\xea\xc7\x86\x8c\xd0\x61\x5a\xd0\x66\xe8\xde\xde\xd4\xdb\x9b\xc2\xd6\xdb\x9b\x56\x27\xd1\xdb\x9b\x36\xb5\xde\xde\xb4\xd3\xf8\xbd\xbd\xa9\xdd\x7a\x7b\x53\x6f\x6f\xea\xed\x4d\xbd\xbd\xa9\xb7\x37\xf5\xf6\xa6\xd8\x8f\xf6\x61\x6f\x6a\xc4\xa0\x63\xc8\xd1\xa1\xc8\x6a\xfd\xe9\xb1\x1a\x19\xd5\x3c\x6b\xa2\x67\xdd\x5b\xf8\xaf\xa7\x12\xaa\x43\x31\xf8\xb1\x22\x75\x28\xa0\xaf\x68\x30\x92\x25\xea\x8d\xf2\xb3\x97\xb0\x57\xc6\xd8\x93\x68\xfd\x0b\x57\x2e\x05\x8e\xbe\xc7\xb8\x0e\x1f\x5d\xc8\x8f\x2d\x70\x78\xc7\x9a\x78\xa0\x9c\x9c\x39\xfd\xef\xb9\x39\x70\x21\x75\xfb\x47\xa1\xf9\xb0\x79\xc3\x3b\x52\x83\x9a\xda\x65\xbd\x4b\xd9\x74\x27\xb3\x34\xfa\x50\xb1\x54\x1e\xb4\x81\x36\x83\xff\x59\xd5\x9a\x2d\x57\xb6\xe2\x1c\x84\xf0\x55\xb5\x10\x86\x3d\x92\xc2\x46\xbb\x24\xcc\x04\x49\x0b\xaa\x9e\xed\xad\x44\x61\x0a\xd6\x08\x12\x55\x73\x4c\x41\xa0\x04\xd5\x58\x4e\xd2\xe6\xa6\x92\xc2\x2a\xee\xcd\x13\xec\x27\x61\x12\xfe\xc2\xc2\x7e\x72\xbf\xa2\x94\xbb\x7a\x05\x77\x34\x9c\x2c\x57\x70\x8e\xb4\x28\xe4\x43\x0a\x7d\x4a\xbc\x11\x3b\x27\x51\x8c\x86\xde\x87\xe4\x6c\x8b\x4b\x51\x05\xb1\xbc\x7a\x9f\x92\x71\x6b\xeb\x53\x32\x3e\x8f\x94\x8c\x81\x6d\x36\xcc\xcd\xd8\xbd\x57\x90\xbb\xf1\xa0\xb9\x19\x09\xf9\xdb\x94\xc1\x2d\xaa\x18\x1a\x54\xeb\x42\xf3\xb2\x89\xc6\x56\x78\x42\x05\x8a\xd4\x63\x1b\x35\xd9\xbe\xbd\x66\x36\x34\x9b\x76\x0e\xb5\x74\xcb\x61\x3c\x88\xee\x56\x80\x4d\x31\xb2\x10\xf4\xef\x98\x10\xd1\xc9\xda\x18\x9e\xc9\x9f\x3a\xea\x2c\x0a\xff\xbd\x71\x85\x55\x03\xbb\xbc\x22\x67\x86\x3a\x16\x0b\x6b\xc9\x6e\x21\xc2\x16\x59\x8d\x18\x00\xf5\x60\x73\xe6\x18\xd4\x09\x9f\x33\xd1\x50\xdf\x33\x75\x7e\xee\x78\xe2\x65\xfe\x21\xa2\xf7\xc7\x70\x18\x31\x58\x3b\x95\x33\x58\xa2\xf7\x11\x23\xac\xe1\x08\xfe\x1c\x50\xd9\xbf\x74\xf3\x04\x11\x83\xe0\x95\x76\x61\xac\xc1\x41\x37\xbc\x40\x67\x2f\x07\x8c\x16\x4c\x09\x49\x4b\xd3\x8a\xef\x10\x8a\xb6\x6b\x46\xd1\xc3\x86\xa0\x1d\x34\xfc\xec\xf3\x49\xfc\xf9\xc4\xe6\xbf\xcf\x20\x6b\xd5\x33\x31\xf7\xf5\x69\xab\x36\xb5\xa7\x4a\x5b\x75\x70\x73\xde\x67\x97\xbd\xea\xa8\xe6\xbb\xe3\x98\xee\x3e\xb3\xec\x55\x4f\x62\xaa\x7b\xe6\x79\xac\x0e\x67\xa2\xeb\x93\x44\x3d\x4d\x1e\xce\x54\x33\xdc\xee\xb7\xea\x49\xcd\x6f\x4f\x6a\x7a\x7b\x7a\xb3\xdb\x4e\xbc\xca\x63\xcd\x6d\xc9\xd7\xe4\xb1\x66\xb6\x5d\xc2\x08\x76\x83\xe7\xe3\x85\x72\x1d\x39\x6e\xe0\x79\x84\x70\x3d\x51\xb0\xc0\x53\x05\x0a\x1c\x36\x48\xe0\x09\x42\xb6\x8e\x14\xae\xf5\xbc\x42\x02\x52\xd9\x90\x24\xe6\xe3\x71\xb8\x74\x17\x0e\x61\xc7\xb0\xac\x1d\xf1\xe9\x31\xc3\xb1\x7e\x01\x28\x75\xa7\x30\xac\x1e\xab\x3e\x11\x56\xdd\x5f\xd8\xd5\xf1\x42\xae\x7a\xdc\xba\xb9\x3d\x1a\xb7\xee\x18\x5a\xb5\x37\xed\xff\x61\x42\xaa\x8e\x1d\x4e\x75\x80\x50\xaa\xa7\x08\xa3\x3a\x40\x08\x55\x6f\x33\x89\x6c\xbd\xcd\x24\xb6\xf5\x36\x93\x4d\xad\xb7\x99\x2c\xb7\xde\x66\xd2\xdb\x4c\x7a\x9b\x49\x6f\x33\x59\x1d\xb0\xb7\x99\xf4\x36\x93\xb8\xd6\xdb\x4c\x8e\x63\x33\x49\x0d\x4b\xda\x0d\x96\x9f\x26\x1c\xe9\xb8\xa1\x48\xfb\x0f\x43\x7a\xc2\x10\xa4\x5f\x98\xc2\x25\x39\xdc\x68\x37\x30\x7f\x2e\x61\x46\xcf\x23\xc4\xe8\xc9\xc3\x8b\x1e\x1b\x5a\xb4\x9f\xb0\xa2\x04\x68\xdf\x11\xce\x4b\x99\x5f\x0a\xcd\x1f\x5b\x40\x2b\x04\xc0\x4d\x55\xb4\xe8\x5c\xf2\x9c\x94\xb5\xb6\x85\x7b\xfa\x4a\x5a\x9d\x30\x70\x9c\x4a\x5a\xad\xc3\xeb\xcb\x69\x6d\x6b\xcf\xa6\x9c\xd6\xa6\x33\xeb\x6b\x6a\xb5\x5b\x5f\x53\xab\xaf\xa9\xd5\xd7\xd4\xc2\xd6\xd7\xd4\xea\x6b\x6a\xf5\x39\x0e\xfb\x1c\x87\x7d\x8e\xc3\xf8\xaf\xfa\x1c\x87\x9b\x5b\x9f\xe3\x30\xa5\xf5\x39\x0e\xa3\x47\xef\x73\x1c\xf6\x39\x0e\xd3\x06\xee\x73\x1c\x92\x3e\xc7\x61\x9f\xe3\xf0\x33\xce\x71\xd8\xd7\xd4\xfa\x2c\x8a\xb8\xf4\x15\x5c\x12\xc6\x7e\x5e\x15\x5c\xfa\x9a\x5a\x7d\xed\x96\x88\xd6\xd7\xd4\xfa\x8c\xd0\x71\x5f\x53\xeb\x73\xc6\xc8\x7d\x4d\xad\x1e\x2f\xf7\x35\xb5\x7c\xeb\x6b\x6a\xf5\x35\xb5\x7a\x7b\x13\xb4\xde\xde\xd4\xdb\x9b\x52\x5a\x6f\x6f\xea\x6a\xbd\xbd\xa9\xb7\x37\x6d\x1a\xbd\xb7\x37\xf5\xf6\xa6\xb4\x81\x7b\x7b\x13\xe9\xed\x4d\xbd\xbd\xe9\x33\xb6\x37\xf5\x35\xb5\xfa\x9a\x5a\x7d\x4d\x2d\x3f\x72\x5f\x53\xab\xaf\xa9\x05\xad\xaf\xa9\x15\x31\x42\x5f\x53\xeb\x73\xad\xa9\xd5\x8a\x9b\xfa\x7c\x0b\x6b\xa5\x2f\xa3\xaf\xae\xd5\x57\xd7\xda\xd0\xfa\xea\x5a\x7d\x75\xad\x75\xad\xaf\xae\xd5\x57\xd7\xda\xd2\xfa\x4c\x91\x91\xad\xcf\x14\x19\xdb\xfa\x4c\x91\x9b\x5a\x9f\x29\x72\xb9\xf5\x99\x22\xfb\x4c\x91\x7d\xa6\xc8\x3e\x53\xe4\xea\x80\x7d\xa6\xc8\x3e\x53\x64\x5c\x7b\x7a\x03\xdc\x3f\x47\xa6\xc8\xbe\xba\xd6\xb3\x2c\x05\xd3\xd7\x81\xe9\x68\xcf\xa7\x0e\x4c\x5f\x5d\xab\xaf\x00\x63\x5b\x5f\x5d\xeb\x19\xa3\xd4\xbe\xba\x56\x77\x7b\x3e\x58\xb5\xaf\xae\xd5\xe3\xd6\x56\xeb\xab\x6b\xf5\xd5\xb5\x7c\xeb\xab\x6b\xf5\x36\x93\x8d\xad\xb7\x99\x90\xde\x66\xe2\x5b\x6f\x33\x89\x1a\xb7\xb7\x99\xf4\x36\x93\xde\x66\xb2\x7d\xd2\xbd\xcd\xa4\xb7\x99\x74\x0e\xde\xdb\x4c\x7e\xf1\x36\x93\xbe\xba\x56\x5f\x5d\x6b\x4d\xfb\x85\x29\x5c\xfa\xea\x5a\x7d\x75\xad\x5f\x66\x75\x2d\x50\xfc\xa2\x64\xb3\x09\xb2\x63\x61\xf9\xb2\xe9\xca\x72\xf0\xb5\x50\xba\xaa\x33\x5d\x57\x2c\x87\x03\xc3\xc3\x34\x8c\x81\xd2\xb2\x72\x56\x0a\x28\x55\xf4\x86\x95\x85\x5c\x18\x6a\x3b\x20\x37\x32\x1f\x90\xcb\x9b\xeb\x5b\x56\xcd\x79\xc6\x1c\xf4\x7d\x63\x69\xfa\xe6\x7d\xfb\xb8\x28\x79\x46\x8b\x02\x34\x16\xcd\x6c\x66\x74\xe1\x74\xdb\x77\x0b\xc2\x3e\x69\x56\x09\x5a\x10\x2d\x65\x81\xe6\x20\x33\x19\xab\x9d\xd6\x15\x67\x73\x46\x68\x75\xc7\x75\x45\xab\x05\x99\x31\x4d\x73\xaa\xe9\xe6\x51\xbf\x55\x2c\x8c\x61\xd1\x92\x94\x15\x1b\xe2\x0d\x68\xcd\x03\x60\xf3\x9b\xaf\xdf\xb9\xfb\x4d\xf3\xdc\x05\x6c\x38\x08\xbf\xad\xef\xfc\x6e\x9f\x6e\xe6\xb6\x72\xbf\x5b\x6a\x00\xe0\x69\x55\x34\x25\x57\xb8\x67\x1b\x25\xd2\x08\xb6\x24\x8d\x09\xe9\x84\x4f\x26\xe6\x8f\x05\xad\x2b\x31\x6f\x6b\xf6\x98\x98\xf3\x4a\x0a\xe0\x23\xe7\xb4\xe2\xf4\xae\x60\xd6\xb2\xe7\xed\x3d\x96\xb7\x63\x5b\xe0\xe5\xb5\xb7\x7b\x60\x30\xd0\xc6\x2b\xd9\x4d\xcf\x3a\x28\x58\x6b\xa5\x57\x62\xfe\x1d\x6d\xab\x19\xc4\xda\x25\x11\xfb\x82\x59\x12\x25\xaf\xbb\x17\x14\xc5\x74\xc6\xa8\xc3\x86\x80\xe1\x37\xbe\x10\xa7\xb4\x32\x5d\x6c\xa7\x97\xad\x6d\x79\x4f\x67\x4d\x85\xb5\x35\xbb\x31\x22\xef\xac\x68\x4c\xc9\xeb\xff\xba\x7e\x73\xf5\xfe\xe3\xf5\xdb\xeb\xab\x0f\xdb\xf1\x68\x24\xfe\x04\xd4\x94\x30\xd9\x4e\xa2\xfe\x9d\x3b\x43\xa8\x62\xc5\x84\x61\xbc\x7e\x73\xf6\xdd\xe5\x87\xff\x7a\x7f\xf9\xee\xea\x1c\x44\x0a\xf6\xa9\xa4\x22\x67\x5d\x2c\x62\xad\x5c\x84\x52\x59\xb1\x39\x97\xb5\x2a\x16\x9e\xc2\xae\xbf\x0a\xcb\x77\xc0\xa0\x87\x8e\x51\x0c\x7d\xb4\xd8\x63\x7d\xa7\xa0\x06\xa1\x0d\x70\x36\x56\xc3\x8a\x29\x59\xcc\x59\xde\xa5\xfd\x80\x58\x51\xb7\x1d\x8d\x5d\xb6\xac\xb5\x53\xf2\x38\x53\x6b\x2d\xb2\x29\x15\x13\x96\x8f\xc8\x1b\x59\x9b\xd1\x7e\xf3\x1b\xd8\xb2\x8a\xe5\x75\xd6\xb9\x63\xa8\xa1\x43\x81\xf6\x37\x03\xc7\x00\x18\xb2\xab\xb0\x3a\x9e\xca\x68\xe9\x36\x35\x3c\x15\xb5\x10\x9a\x7e\x7a\x15\x53\x67\xef\xe4\x37\xc1\x87\x27\xae\xee\xa1\x34\xd3\x43\x66\x09\x57\x54\x40\xc9\xba\x82\x9c\x84\x6f\x77\xf5\x7d\x65\xe6\xc7\xf2\x10\x76\x30\x32\x93\xcd\x59\x05\xca\x21\x0b\x39\x03\x52\xb1\x09\xad\xf2\x82\x29\x88\x09\x7c\x98\x32\x28\x42\x89\x92\x2e\x1e\x54\xc7\x58\xcc\x2b\xb2\x84\xec\x54\x30\xbe\x41\xbb\x2b\xe0\xda\x93\x8e\x65\xa4\xdc\xbc\xb7\x95\xec\x28\x65\xd6\xba\x7d\xb7\x10\x74\xe4\x7d\x03\xd6\x81\xeb\xa9\x35\x62\x8c\x42\x2c\xaf\x0c\x77\x3a\x6e\x6c\xf6\xe6\x79\x84\xdd\x3e\x5a\x96\x8f\x57\xe6\x67\x52\x8c\xf9\xe4\x1d\x2d\xbf\x62\x8b\x0f\x6c\x9c\x18\xff\x88\x8c\xb9\x55\x4f\x03\xbb\x6b\xa8\x03\x76\xd8\xcd\x56\x1e\x30\xdc\x2d\xc6\x64\x92\x66\xf1\x88\xb6\x73\xac\x14\x28\x44\x11\xc1\xb2\xf1\x7b\x67\xb6\x49\x14\x81\x5b\x3b\xb9\x68\x81\x30\xa4\x88\x16\x15\xa4\x79\x60\x78\x25\x1a\x1b\x8f\x59\xa6\xf9\x9c\x15\x3e\x12\xdb\x56\x48\xb5\x91\xd1\x77\x34\xbb\x7f\xa0\x55\xae\xa0\xe6\x26\xd5\xfc\x8e\x17\x5c\x2f\x62\xea\x99\x62\xb3\x42\x8d\x0d\xde\x76\x7a\x73\xa1\x34\x05\xf4\xe5\x2a\x73\x9a\x1d\x46\xb6\x9f\x3a\xc3\x35\xde\x46\x17\xf6\x1c\x3d\x1c\xd4\x88\xcc\x58\x65\x08\x5c\xb1\x20\x0f\x95\x8c\x17\xcd\xde\x49\x88\x77\x1e\xcb\x57\x64\xaa\x75\xa9\x5e\x5d\x5c\x34\xa2\xd3\x88\xcb\x8b\x5c\x66\xea\x22\x93\x22\x63\xa5\x56\x17\x72\x6e\xe8\x22\x7b\xb8\x78\x90\xd5\x3d\x17\x93\xa1\x59\xc0\x10\x2f\x90\xba\x00\x59\xf8\xe2\xd7\xf0\xbf\x43\x40\x19\x71\xde\x2e\xaf\xc8\xc9\x49\xc4\xfb\xb2\x44\xee\x7d\x07\xc8\xbc\x05\x01\x7f\xd1\x22\x23\x1e\xb1\x18\x12\xc1\xb5\x82\x7b\xe5\x8c\x14\x96\x0b\x49\x58\xf6\x9d\x94\x05\xa3\xdd\xde\x5f\x8f\xd1\x4c\x02\xd8\xa7\x63\xd5\xa8\x7b\xd9\xa0\x5e\xbc\x5c\xf6\x7a\x96\x32\x7f\x45\x54\x5d\x96\xb2\xd2\xaa\x11\x1a\x0d\x50\x0c\xda\x7f\x82\xda\x64\x40\x7e\xf4\x0f\xd1\xcb\xec\xfb\xd3\x3f\x7f\x75\xf5\xef\x7f\x39\xfd\xe1\xc7\xf0\xb7\x40\x7c\x0c\x5e\x88\x98\xa6\x2a\x59\x36\x12\x32\x67\xef\x61\x06\xf0\xa7\xe5\xee\x2e\xb3\x4c\xd6\x42\xdb\x1f\x34\xd5\xb5\x1a\x4d\xa5\xd2\xd7\x37\xfe\xcf\x52\xe6\xcb\x7f\x45\xd8\x38\x0f\x48\x57\x60\xaf\x6f\xa8\x8e\xc8\x6c\x90\x44\x5d\x68\xc9\xbf\x63\x95\x8a\xc8\xe5\x81\xad\x05\x2f\xf6\xcb\xb0\xa4\xf2\x8c\xc2\x3f\xdf\xba\xe9\x1a\xdc\xfb\x50\x71\xad\xc1\x05\xd2\x26\x53\x90\xe3\x81\xbb\xd2\xc8\x48\xcd\x5f\x26\xe9\x55\xa3\x31\x87\xdf\xb5\x1d\x16\x07\xb3\xb7\x2b\xf3\x8a\x0d\xeb\x00\xba\xa2\x0e\xbc\xbc\xb9\x26\x73\xdc\x8d\x03\x2c\xe4\x31\xa8\xc0\x05\xa8\xbf\x3d\x0a\x4a\x70\xa3\xb9\x8d\xf3\xf2\xd7\x2b\xb4\x30\xf9\x70\x79\x52\xf0\x19\xb7\x06\x7e\x5b\x48\x3b\x86\x76\x9c\xe1\x67\xa3\xac\xac\x07\xb6\x8b\xd1\x8c\xcd\x64\xb5\xf0\x7f\xb2\x72\xca\x66\x46\xe2\x18\x2a\x2d\x2b\x3a\x61\x03\x3f\x00\x7e\xe6\xff\xc2\x0f\x5b\x53\x58\xfd\x1a\x05\xd5\xac\xae\x0c\xef\x51\x2c\x1c\x8a\x8b\xd1\x5e\x1e\x10\x1d\x44\x17\x29\x4f\xc3\x06\xfe\xb8\xde\xef\xc6\xd8\x9d\x7a\x15\x0d\xb2\x86\x7e\x55\x20\xa9\xcc\x65\x51\xcf\x98\x1a\x78\x02\x8d\xa2\xa8\x98\x1b\x99\x45\x9d\x1e\x02\x01\xe4\x7c\xce\xd5\x4e\xfe\xa1\xb7\xde\xce\x06\x46\xa9\x5a\x1b\x21\x1d\x93\x30\x05\x55\xf0\xa5\x02\x21\xd5\xe7\x80\x68\x61\xb5\x97\x31\xcc\x0a\x21\x25\xd5\x9a\x55\xe2\x15\xf9\xcf\xb3\xff\xf8\xdd\xcf\xc3\xf3\xbf\x9e\x9d\x7d\xff\x62\xf8\xbf\x7f\xf8\xdd\xd9\x7f\x8c\xe0\x1f\xbf\x3d\xff\xeb\xf9\xcf\xee\x8f\xdf\x9d\x9f\x9f\x9d\x7d\xff\xd5\xbb\x2f\x3f\xde\x5c\xfd\xc0\xcf\x7f\xfe\x5e\xd4\xb3\x7b\xfc\xeb\xe7\xb3\xef\xd9\xd5\x0f\x91\x9d\x9c\x9f\xff\xf5\x37\x51\xd3\xa3\x62\xf1\x4d\x04\xd6\xc0\x36\xdc\x21\xb3\x55\xf3\xd5\xae\x26\x2d\x2e\xf4\x50\x56\x43\xfc\xfc\x15\xd1\x55\x1d\xc3\x45\xbb\x63\xdb\x05\xce\x5d\x09\xf1\x57\x0d\xc6\xf3\xd4\xe1\x00\x80\xfc\x18\x02\xa0\x58\x56\x31\xbd\x2f\x29\x1b\x7b\x73\x04\x70\xc9\x38\xda\x0b\xde\x8d\xe0\xed\x13\xf2\xc0\x7e\x35\xac\xc3\xb8\x92\xb3\x11\x09\x34\xb9\x73\x70\x84\xb3\xef\xdd\xb3\xc8\x08\x8a\x5e\x50\xef\x05\xf5\x5e\x50\x6f\x0b\xea\xb7\x78\x87\x9e\xb9\x94\xce\xc4\x7c\x9b\xb2\x37\xc1\x24\xf8\x16\xb2\xeb\x85\x66\x41\xc7\x5c\x6b\x49\x4a\x59\xd6\x05\xd5\x1b\x4c\x19\x09\x36\x42\x1f\xd1\xe7\x0c\x2e\x06\xa4\xc0\x1e\x67\x09\xdf\x6c\xbd\x51\x8a\x5c\x16\x05\xe1\x02\xd1\x9b\xe9\x60\xe3\x08\xce\xe6\x51\x31\xe4\xac\x09\x45\x83\xe0\xdc\x4c\xf9\xc1\xe6\x04\x0c\x4c\x39\x5c\x19\xc1\xbc\xd2\x5c\x4c\x46\x98\x33\x10\x09\x94\x55\xe4\x73\xe1\x33\x07\x6e\x1c\xd2\x33\x6c\xde\x23\x6e\x25\x59\x28\xfa\x5b\x28\xed\x96\x09\xb3\xd4\xf4\x1e\x8c\x50\x19\xcb\x99\xc8\xb6\x98\x48\xbe\x43\x2f\x3b\xb7\x67\x77\x46\xcc\x00\x33\x2e\x62\x14\x92\xd7\x65\xc1\x33\x73\x3e\x66\xe6\x69\x7d\x5f\xcf\x66\xb5\x06\x83\xe0\xb1\xac\xb5\x06\xd2\xac\xc9\x21\x30\xda\x02\x7d\xf3\xe2\x9e\xf7\x08\xf7\xfa\xb2\xcd\x27\x1e\xc5\x07\xc4\x51\x6b\x6f\x47\xe8\x64\x6f\x56\xc8\x74\xa3\xd8\x6b\x93\xe7\x63\x9b\x42\xe2\x88\x73\x3a\x61\xde\x95\x28\x1f\x93\x20\x1f\x91\x18\xef\x4e\x88\x9f\x8e\x08\x27\x11\xe0\x78\xe2\x1b\x4f\x78\x13\xb4\xe3\xa9\xc4\x36\x9e\xd0\xee\x2a\xfe\x94\x15\x1b\xf3\x4f\x09\x58\xe1\x52\x34\xba\x09\x9e\x33\xa1\xf9\x98\x9b\x75\x82\x47\x53\xc9\x44\xe3\xae\x64\x13\x73\xb4\x76\xe0\xa0\xfe\x19\x28\x20\xa4\x23\xb9\xdb\x75\x02\x48\x8f\xe1\x7a\x0c\xd7\x6a\x3d\x86\xeb\x14\x2b\x9e\x13\x7a\x13\x32\xef\x8c\x7d\x8f\xbd\x4d\xef\x83\xbe\x96\x42\x62\xd1\x6d\xc8\x2d\x5c\x57\x75\xe3\x71\x52\x4a\x80\xe8\x31\xd7\x8d\x5f\xf3\x66\x40\xbb\x5d\xd3\x23\x38\x2c\xdb\x2f\x4f\x95\x4b\x35\xb1\xd4\xff\x52\x16\x76\xf4\x20\xdd\x3e\x56\x22\x28\x23\xff\x58\x63\x4a\x8e\x0b\xaa\x14\x9f\x88\x61\x29\xf3\xa1\x19\xe5\x62\x2b\x83\x7d\x4c\x27\x52\xaf\x63\x7e\xec\x71\x7f\xf0\x16\x98\x80\x93\x37\x68\xad\xd6\x2c\x30\xcf\x78\xc5\xbd\xcb\x2c\x10\x21\x29\x76\xca\x25\x8f\x3c\x9c\x19\x15\x74\xc2\x86\x76\xb2\x43\x3f\xd9\xa1\x9f\xdb\x23\xce\x2b\x86\x98\x65\x05\xe5\xdb\xc3\x34\x52\x48\xd8\x6b\xe8\xcd\xa6\xb3\xf7\x71\x34\x4b\x49\xa5\x9d\x00\xc9\x05\x9a\xb0\xdd\x4f\xf8\xf1\x76\x43\x38\x5c\x16\x9f\x87\x67\xcd\x41\x6e\xfd\xda\x67\x30\x11\x84\x16\xe5\x74\x7b\x0e\x93\xae\xa0\x82\x37\x0b\x41\x67\x3c\x73\xc0\x77\x59\x40\xa8\x04\x97\xa2\x95\xe1\x24\x66\x46\x9e\x6a\x73\x0f\x6d\xe4\x5a\x93\x8c\x0a\xb4\x30\x5a\x3f\x77\x83\x47\xfc\x4a\xb7\x9a\xee\xe3\x42\x75\x22\x02\x74\x5a\x67\xff\x21\x3c\xa7\xd0\x8d\x51\x0a\x46\x98\xd0\x15\xb0\x8f\x37\x32\x37\x14\x67\xd4\x7a\xbb\xc3\xd1\x20\x9a\x3d\x8b\xd5\x9f\x77\xb8\x3a\x93\xe7\xc3\xe9\x05\x74\xc3\xdd\x17\x73\x5d\x5a\x5b\x5a\xca\x7c\xb4\xe6\xa6\xc4\x27\xec\xbf\x91\xb9\x8d\xe8\xd1\x2d\x78\x33\x97\x08\x40\x6d\x46\xef\x5d\x9c\x8d\x37\xfe\xd0\x39\xe5\x45\x84\xaf\x29\x81\x84\x56\x8a\xe7\x46\x46\x88\x40\xa9\x7e\x62\xf1\x5c\x92\x35\x65\x1f\xe2\x10\x3e\x60\xd7\x2e\x6d\x02\xec\x7f\x36\x95\x8a\x09\xb8\x6f\xd4\x8d\xed\xcb\xe2\x38\xb0\xcf\x11\x75\xc6\x70\xa2\xd7\x63\xe4\x7e\x07\x84\xcd\x59\xb5\xd0\x50\x9c\xc2\xa5\x0c\xc3\x6e\xcc\xf8\x33\x9a\x07\xbb\x3e\x20\xd2\xb0\x6b\x0f\x5c\xc5\x1c\x00\xe0\x09\x9c\x9f\xaa\x0b\xed\x59\x70\x3b\xfb\xbd\x9d\xc6\x6a\x38\x92\x61\xee\xee\x3b\x73\xc1\x75\x5e\xc8\x4d\x71\x4e\x33\x5a\x6e\xfc\x0a\xbd\x23\xf6\x45\xbb\xbe\x46\xef\x0d\xfc\xe4\xce\x1a\xc9\x67\xf4\x13\x9f\xd5\x33\x42\x67\xb2\xc6\xf8\xe6\x55\xbe\x22\x2a\xf4\x6b\x1f\x5c\xc2\x1a\xee\x40\x6d\x62\x0f\x48\x3c\x5a\x4d\x0f\x50\x7e\xa6\xe6\xfd\x28\xb3\x7e\x9a\x39\x3f\xc1\x8c\xbf\xb3\xf9\xde\x39\xea\xec\x0b\x90\x2d\x4a\x5b\x01\x65\x2e\x3a\x41\xd9\xd1\xd7\xed\xb0\x7c\x3d\x6e\xc6\xe0\x8a\xc8\x19\xd7\xda\xfa\xc3\x04\x14\x60\x40\xb8\x6e\x39\x8f\xd8\x0b\xc6\xc7\x48\x68\xb8\x22\xec\x53\x59\xf0\x8c\x83\x0f\x92\xf3\x3b\xdb\xce\xff\x79\x9c\x68\x13\x0f\xf0\x59\x89\xa9\x07\xe0\xa2\x0c\x1d\x6b\x69\xa3\x04\xfc\x2c\x6d\x58\x0b\xfb\x94\x31\x96\xdb\x89\xf4\xf7\xb5\xbf\xaf\xc9\xf7\x55\xed\x49\x43\x11\x6a\x27\x9a\x28\x68\xaf\xa5\x30\x57\x09\x22\x94\x51\x5f\xe0\xa0\x6b\xdb\xc5\xbc\x72\x39\x3b\x3f\x30\x30\xc3\xdd\x32\xad\x6c\xbc\x35\xf4\xb4\x4d\xdd\xb6\x92\x73\xcf\xe7\xf9\x74\xc9\x0b\x28\xe8\x13\x83\x37\x9a\x68\xd5\x2d\xc2\xb3\x5e\x66\x6f\x41\x05\xc2\x66\x65\x41\x75\xa3\x20\x79\x44\x58\x6b\x0c\x13\x9f\x92\x96\xee\x69\x13\xd1\x1d\x46\x6c\xeb\x64\x83\x9f\x30\xa1\xdc\xae\x29\xe4\x0e\x20\x30\x76\x3b\x5b\x45\xa6\x82\x8b\x17\x2c\xa3\xbc\xb1\x0e\x9d\xe0\x2d\x41\x0c\x8b\x4f\xe2\x96\x2e\x87\x1d\x38\x51\xdb\xa1\x52\xb3\x25\xec\x5e\x6c\xfa\xb5\xf4\xbd\x3b\x52\x8a\xb5\xa3\x27\x55\x3b\x66\x1a\xb5\xa4\xc4\x69\x29\xa9\x70\xa2\xd3\xe0\xec\xee\x3d\x9b\x92\xfe\x66\xc7\x0f\x23\x93\x9c\xa5\xc0\xee\x91\x13\x99\x1d\x39\x75\xd9\x53\x24\x2b\x3b\x98\xfc\x10\x01\x9a\xe9\x06\x3f\x2d\x0b\x9b\x35\x3e\xce\x00\xf4\xb1\x79\x1f\xb6\xa3\x71\xd6\x0e\x7a\x3a\x8e\xfb\xd8\x56\xc8\xfe\xe8\xf8\x5c\x83\x9d\x9a\x49\x03\x8c\x6b\x4d\xb3\xa9\x4d\x39\x86\xbf\x18\x48\x10\x0b\x62\x80\x40\x23\x25\xb7\x59\x8f\xb6\x9d\xf3\x94\x11\x5d\x41\x19\xe1\x3f\xfb\x0b\x31\x40\x93\xff\x5f\x82\xcc\x12\xbe\x10\xae\x07\xc6\x3f\xbb\x7f\xfd\xe5\x91\xf9\x46\xe2\x98\x1c\x9c\xd2\x3e\x79\xd5\x2b\xe8\x91\x70\x91\x83\xa7\x21\xb2\x42\xb8\x79\x38\x98\xd9\x5a\x58\xf7\xc8\xe6\x6a\xc2\xc4\x67\xd6\x32\x0b\x2e\x89\xcd\xcb\x9d\xac\x03\x78\x62\x36\xaa\x09\xef\xf8\xe0\xef\x30\x23\xef\xa5\xad\x28\xce\x06\xe4\x06\xb4\xc3\xcd\x13\xb8\xf3\xef\x25\xd6\x16\xef\x48\x3e\x11\x89\xfe\x3b\x79\xc6\xb4\xfd\xfc\xaa\x61\x28\x71\x63\x5a\x0c\x65\x73\xb1\x42\x96\x72\xeb\xc6\xde\xb3\x45\xe7\xae\x5a\x26\xc1\x32\xb3\x56\x35\xee\x61\xd4\x11\x79\xe4\x1b\xfe\x8f\xb3\xf0\xcd\xee\xb8\xc0\xa9\xe0\xc0\xee\x9c\x61\x6c\x77\x1e\x46\x02\x29\x8a\x88\x49\x44\xee\x76\x1c\xc7\x9b\xb6\xe5\xdf\x24\x70\xba\x9e\x5e\x74\x6d\xe9\x3a\xfe\x36\x60\x6a\xaf\x7e\xaa\x69\x31\x6a\x65\xfa\xc0\x47\x5d\xd7\xcd\xba\x1f\x2f\xd3\xcd\x07\x5e\xe4\x19\xad\x6c\x0c\x1c\xa0\x1f\xa2\xa4\xb5\xce\x02\xf6\xcb\x3a\x1d\xcd\x1d\x02\x6c\x80\x47\xa1\xcf\x6d\x49\x2b\xcd\xb3\xba\xa0\x15\x31\x77\x7c\x22\xab\xa8\x54\x1e\x9d\x87\xd9\x40\xf3\x2d\xcb\xa4\xc8\xf7\x2a\x44\x7f\x5c\xee\x7c\xd9\xab\xb8\x64\x15\xb7\x45\xad\xf9\x8c\x2d\x5f\xaf\xb3\x96\x5f\x4a\x97\x1c\x36\x76\xc8\xce\xe3\x96\x41\xa8\x19\x6d\xdb\x94\xb1\xc0\xc9\x79\x40\x70\xfc\x6d\x1f\x91\x2f\x7c\xd9\x8d\x2e\x86\x9c\x6b\x97\x5c\x45\x31\xed\xd2\xef\xb8\xab\x68\x4f\xb2\x41\x23\x63\x59\x41\x5a\x9b\xb3\x5c\x62\x42\x96\x39\xcf\xf4\xf9\x88\xfc\x7f\xac\x92\x11\x79\x8b\x04\x9b\x60\x15\x76\x7b\xb1\xbd\x3e\xaa\x62\xd4\x7a\xd3\xbf\x20\x67\x58\x98\x9f\xcf\x66\x2c\xe7\x54\xb3\x62\x71\x8e\xea\x29\x66\x4b\xfb\xc7\x40\x4d\x8c\x5a\x11\x43\x24\xe1\xdd\x3f\xfe\x61\xcb\x9b\x07\xc8\x37\x65\x73\xda\x34\x1b\x8b\x0e\x74\x4b\xd0\xe3\x13\x25\x76\xca\xfb\x1b\xe5\xb3\x30\x6c\xa0\x49\x55\xe9\x70\xb3\x87\xad\xbf\x1b\x00\xa5\xa4\x62\x13\xb8\x9f\x78\xe7\x1e\x79\x3b\x31\x86\xf6\x9d\xac\xc5\x66\x1b\x48\x6b\xdf\xbe\xb6\x2a\xb8\xef\x82\x0f\x53\x13\xc5\xed\x97\x21\x0c\x66\x12\x58\x5d\x28\x01\x53\x0b\x70\x60\x06\xb1\xe1\x5b\x4d\xb0\x49\x84\xb1\x7c\x8f\xc9\xdf\x60\x2e\x1d\xe9\x16\xf6\x92\x22\xce\x0f\xb4\xcf\xab\x00\xa9\x0b\xec\xce\x2d\x65\x41\x73\x45\xbf\x00\x80\x71\x8b\x1b\x08\x86\xc9\xb0\xdc\x86\x27\x76\xa1\x1d\xe9\xb5\x9b\xe4\xf4\xd5\xe9\x5e\xa8\x0e\xee\x46\x25\x4b\x3a\x81\xcb\xba\xcf\x4d\x59\xee\x9b\xe4\x4c\xb3\x6a\xc6\x05\x53\x64\x2a\x1f\xf0\x77\x64\x06\x4a\xfb\x16\xcb\x1b\xcf\x83\xa9\xec\xdc\x11\x2c\xf0\xd5\xe4\x9b\x43\xec\x01\x7e\xa4\x0f\x74\x41\x68\x25\x6b\xd1\x99\x36\x00\xb8\x68\x4f\x39\xde\x2d\x4d\xfa\xbd\x14\xcc\x3b\xa3\x74\x51\xd9\x16\x69\x83\x32\x54\x5c\x90\x97\xa3\x97\x2f\xa2\xe6\xf0\x81\x65\x75\xa5\xf8\x9c\x7d\x60\x34\xff\xc6\x48\xdc\x5c\x01\xd6\xd0\x92\x5c\x8f\x6f\xa4\x52\xfc\xae\x60\x44\x82\x7b\xfc\x15\x56\xa6\x5a\x9d\xb0\xe7\x50\x61\xe6\xb2\x22\xb5\xf0\x22\x42\xc7\x2c\x2c\x99\x0f\xad\xa2\xa6\x93\x8e\x92\x57\x91\x90\x96\x98\x9a\x11\xf6\x72\xc9\x3e\xe3\x9c\xcf\x1d\xae\xda\xcb\xbc\x2a\xbb\xd9\xfb\x84\xfc\x77\x78\xad\xa1\xef\x21\xe8\x4e\xf8\x18\xac\x76\x03\x7c\xf4\x50\x71\xcd\x02\xba\x75\x36\xa6\x85\x5a\x3e\xac\xce\x4a\x63\x21\xbf\x0c\x1d\xc4\xec\x47\xb7\x7b\x74\xb5\x0c\x86\xfb\xdc\x99\x55\x18\x6f\xd2\xab\x3b\x17\xf0\x66\xd7\x2c\x86\x68\xf0\xe5\x94\x8a\xbc\xe8\x84\x63\xbf\x82\x62\xd1\xe1\xe0\x68\xbd\x05\x9a\xeb\x06\xfb\x38\x08\x99\xd4\x29\x35\x7c\x25\xf0\x92\xa0\xb7\x15\xb9\xbf\x61\xc1\x61\xa5\x8e\x83\xc0\x80\x28\x2b\x44\x1a\xf6\xba\xbf\xe1\xca\x5e\x6f\xd0\x94\x00\xe5\xb6\xfc\xed\x8c\x76\xe6\xb3\x0e\xd6\xdf\x6c\xe6\xc8\xb2\x57\x6b\x46\x6b\x90\xcb\xd2\x78\xbb\x8e\x35\x30\xf0\x8e\x2c\xb9\xcf\xde\xe2\x98\xdf\x06\x61\x57\x86\xfb\x98\xb1\x66\x62\x1d\x43\x2d\x4f\xdb\xa3\xc0\x95\x39\xaf\x9f\x95\x9f\x54\xc7\x38\xdd\x53\x6e\xcb\x33\xa8\x50\xc3\x6c\x99\xb6\xa6\xa1\xa6\x18\x56\x1b\x91\x02\x95\xb0\xaa\x92\x95\x97\x21\x26\x4c\x80\xb4\x02\x5a\x38\xa7\x48\xb2\xbe\x73\x54\x49\x11\x03\x68\x1d\x87\x6c\xf0\x4c\x37\xf9\xc0\xcf\x3a\x06\x03\x1a\x73\x26\xab\xa5\xdb\xe0\x04\xb0\x35\x94\x24\x75\xf6\x40\x98\x9b\x7e\x11\xa8\x02\x41\xcb\x6c\x60\x23\xfc\xcb\xb1\xbf\x3a\xfb\x89\x01\xab\xef\x0e\xcd\x2a\x5a\x9e\x10\xd8\x9e\x86\x53\xf4\x20\x77\xaa\x36\x73\x8d\x09\xf4\xe1\xe4\x84\x9c\x61\x3f\xa7\x8a\x54\x52\x76\xd5\xb1\x4c\xdb\x9f\xab\x4f\xe5\x5e\x95\x50\x57\x36\xd7\x2c\x29\x8f\xb6\x59\x5f\xb0\x29\x9d\x33\x45\x14\x9f\xf1\x82\x56\x05\x24\xf2\xbc\xc5\xe5\x41\x64\xda\xda\x6c\xd9\x11\x99\x96\x03\x8d\x77\x38\xcf\xa0\xbb\x43\x9e\x23\x71\x6b\x30\x47\x04\xf4\xc6\xad\x09\x2a\xf7\xd6\xba\xa6\x45\xb1\x20\xec\x53\x56\xd4\x06\x5f\xee\x45\x58\xde\x45\x4e\x5e\x16\x91\x4b\xeb\xa8\x7f\x44\x01\xb9\xad\xf2\x34\xfc\x6a\xee\xc0\x09\x04\x62\x34\x9b\x80\x0d\x04\xa2\x1e\x68\x96\x31\xa5\x5c\xae\x81\x45\x98\x2f\xc1\xaf\xe1\x73\x49\x9c\x4e\x1f\xd4\x55\x41\x95\xe6\xd9\x17\x85\xcc\xee\x6f\xb5\xac\xf6\xaa\x2b\x5a\xd7\xff\x52\x3a\xfa\xcb\xbf\xdd\x1a\xe4\x7d\x1f\x24\x78\xb2\x8e\x98\xa1\x61\x8a\x76\x0c\x74\x5f\xdf\xb1\x82\xe9\x53\x05\xf2\x23\x99\xd1\x6c\x8a\x45\x11\x40\x38\x14\x3e\x85\x98\x55\x5f\x6f\x3d\x22\x6c\x89\xbe\x96\x36\x8b\xdd\x85\xbd\x0a\xbf\xa6\x0f\x8a\xe1\xca\xef\xcc\xca\xa1\xf2\x43\xc4\x25\xdb\xab\xf7\x10\xce\xe5\xfa\xcd\xd6\x17\xe3\x3d\x83\xc6\xea\xa3\x99\x63\xa7\x1b\x40\xba\xaf\x08\xf6\xec\x74\x8a\x63\x5e\x30\xd4\x95\x62\xb0\xae\x8d\x3b\xb6\x77\x12\xa0\x63\x21\x6b\xf2\x40\x51\xed\x0f\x98\x3e\x2a\x18\x99\x97\xaf\xc8\x95\x50\x75\xc5\x1a\x6b\xd2\xf2\x60\xeb\x78\x57\x00\x29\xd4\x4e\x1a\x9c\x1e\xa3\xc7\xc5\x76\xf5\x89\xce\xca\x82\xa9\x57\xe4\x84\x7d\xd2\x7f\x38\x19\x90\x93\x4f\x63\x65\xfe\x27\xf4\x58\x9d\x8c\xc8\xf5\xcc\xfb\x1a\x73\x31\x66\x55\xe5\xe3\x97\xf1\x03\xc3\xbb\xb6\xc4\x8d\xee\x31\x8f\x0d\xb7\x24\xcd\x4b\x04\xec\x28\xdd\x2a\x27\xb2\x13\x1c\xf9\xce\x1d\x28\x05\x0f\xc4\x7e\x80\xe8\x7a\xec\x5c\xcb\x51\x00\x71\xd5\xd9\xb9\xf2\xdd\x18\xb0\xb1\xe3\x18\x14\x9d\x06\x28\x6f\x7d\xfe\x46\x72\x91\xb3\xf9\x85\xca\xe9\xcb\x01\x4c\x55\xd9\x90\xe9\xf6\xba\xa8\x22\x27\x71\x49\x5d\x6f\x1d\x8b\x33\x08\x77\xa2\xe9\x69\x2c\x2b\x3f\x24\x38\x88\xbc\x38\x01\x1e\xdf\x8c\x9d\x51\x41\x0a\x46\xe7\x56\xee\x41\x94\xb1\x40\x4d\x7c\x44\x69\xf4\xb4\x5c\x85\x81\x65\xe3\x5f\x7e\xdf\x29\x87\xc6\x28\x2b\xc8\x4e\xd0\xe4\xfa\x76\xe6\x8d\xaa\xb6\xc9\x89\xc6\xb2\xca\xbc\x70\x66\xd5\x19\x4c\x03\x6e\xe0\xa2\x65\x00\x78\xde\x17\x36\x2e\xf7\x96\xa3\x22\x07\x71\x12\xb4\x7d\x83\xaa\x55\xf0\x9f\x6a\x46\xae\xdf\xf8\x4c\xd7\xac\x52\x5c\x69\xc3\x79\xe7\x2d\x06\x81\x23\xd7\x70\x76\x39\xa3\xff\x90\x82\x5c\x7d\x71\x6b\x3b\x8a\xaa\xd2\xff\x8c\x11\x24\xfd\x47\x5d\x31\xc3\x0c\x25\xf0\x60\xfe\x9b\x65\xbe\xca\x3c\x27\x6f\xa8\xa6\xc8\x5e\xd9\x00\x1b\xd1\x50\x34\xc3\x1c\xdd\x71\x91\xdb\x9f\x62\x59\xa3\x03\x30\x2a\xe6\x78\xdf\x77\xc5\xc6\xba\x17\xbf\xfd\x70\xbd\x27\x86\x26\x03\x2e\x71\xf2\x4e\xe6\xa9\x5c\xcd\x69\xf0\xa9\xa3\x35\xff\x66\xf6\xf4\x35\x3e\x27\x33\xd3\x27\x28\x3f\x06\xa0\x00\x24\xdf\x80\x7e\x0c\xfe\xf9\xb7\x8a\x6b\x36\xea\xce\x5e\x9a\x40\x55\xdd\x06\x26\x2e\xc3\x7d\xe6\x96\x10\xa6\x79\xc9\x0d\xe4\xc0\xbd\xb3\xa4\xf3\xae\x90\x77\xc4\xde\x86\x7d\xcf\xfd\xdb\x0f\xd7\x3b\x4c\xfd\xdb\x0f\xd7\x6e\xe6\xe6\x9f\x72\x7c\xbc\x49\x1f\x83\x17\x7e\xbb\xc4\x9a\xa6\xb0\x29\x4d\x82\xa4\x65\x06\x77\x9f\xdc\xed\xe8\x68\x7c\xed\x6e\xd9\x6b\xcc\x58\x5d\x82\x23\x17\x11\x89\x6f\xdb\x97\xdf\x7c\x63\x24\x4a\x0c\x3e\x0a\xdc\xee\x6e\xa7\x14\x72\x15\xbb\xb4\x88\x08\x7e\x06\x1e\x95\xa1\x66\x0e\x10\x09\xc5\xc2\x08\x84\xbc\x61\xa8\xe9\xcd\x5f\x39\x67\x62\xff\xc5\xfa\x0f\xde\x41\x10\x5f\x6e\xd1\x3e\xc1\x98\xbe\x3c\x80\xfb\x33\x54\x79\x0b\xff\x93\x8d\xdd\xc6\x44\x4a\x8a\xe9\xf3\x51\x4b\x3f\xab\x60\xca\x7b\x45\x46\x47\xe1\xc9\x56\xac\x60\xe4\xcc\xfc\x76\x01\x36\xb6\xf3\x51\x63\x75\x81\x0c\x03\x0d\xdb\x16\x31\x86\xb9\x14\x1f\x1e\xcd\xd8\xa5\xa5\x37\xf5\x20\x0b\x6b\xe9\x62\x11\x0c\x66\x48\x65\x11\xcc\x37\x6b\x59\x04\xf8\xc1\x55\xc0\x7c\xce\x5c\x02\x66\x66\x8b\xe2\x13\x00\xaa\x3b\xdf\x8c\xe7\x14\x8e\x02\xd2\xf9\x2f\x09\xa4\x9b\xc3\x4a\xdc\xb3\xe6\x43\x47\xdb\x7d\xfe\x11\x97\xe3\xbb\x15\xef\x87\x40\x7c\x6b\x11\xa5\x2d\x39\x83\x9c\x8c\x01\xdd\xaf\x22\xd2\x95\x27\xe0\x36\x0f\x58\xa9\xab\x72\xdf\xb9\x45\x21\xfe\x86\xc7\x24\x02\xa4\xa3\x27\x99\xb1\x72\x3a\x4e\x71\x22\x35\x1f\xbc\xbd\x6d\x2b\xc1\x5f\xb3\x72\x4a\xde\xde\xae\xc1\x06\xb0\xf7\x30\x6b\x85\xaa\xf1\x53\x45\x0a\x3e\x66\x9a\x77\x2c\xe1\x00\xf8\x60\x26\x05\xd7\xb2\xda\x6e\xd7\x8d\xbf\xe3\xae\xbb\x43\xdc\x71\xd7\xb7\x39\xfd\xa6\xa4\xc1\xbb\xe0\x29\x25\x99\x2c\x0a\x96\x69\x5b\xe7\x07\x8e\x20\x6a\x85\xd8\xd6\x48\xb5\xcc\x2a\x95\x46\xf7\x7f\x02\xb9\xd6\x4a\xb0\x17\x08\x22\x17\x1f\xae\x2e\xdf\xbc\xbb\x1a\xcd\xf2\x5f\x4f\xe5\xc3\x50\xcb\x61\xad\xd8\x90\x77\x97\x0b\xf8\x8c\xe3\xcc\x08\xa6\x1d\x88\xa8\x52\xd4\x66\xf8\x4a\x5b\x60\xe9\x1b\x97\xec\x90\x7c\xab\xd0\x0e\xed\x7d\x10\x58\x0e\x76\xb9\x01\xa9\xa8\x4d\x68\x48\xf1\xda\x8c\xeb\xa2\xc0\xd3\xd4\x15\x63\x83\x50\x61\x78\xf1\xf9\xb1\x5d\xad\x4d\x78\xf6\x3c\xd8\xf1\xaf\x45\x0a\x71\xec\xe6\xe2\xc8\x4e\x87\xd5\xf4\xde\x3e\xae\xdb\xd6\x73\x54\x23\xeb\xa9\x39\xbc\x7b\xb6\x20\x10\x9e\x3a\x96\x95\x01\xed\xaa\x0d\xa6\x4c\x67\xb0\x3b\x17\xb5\x62\xd5\x08\xbb\x7f\x86\x7b\x1f\x47\xc0\xe3\xd2\xfb\x92\x47\xec\xfc\x07\x36\x5e\xb7\xf1\xf6\x71\x53\x96\xd8\xb2\xd2\xb4\xd6\x53\x26\x34\xb7\x79\xfa\x2c\x93\xb3\xf6\x24\x22\x2a\xc8\x62\x3b\xf6\xd6\x47\x56\x9a\x49\xab\x0b\xd3\xd7\x52\x69\x5a\x5f\x4b\xe5\x79\xd4\x52\x79\x4c\x81\x28\x83\x3d\x0f\x81\x75\x4c\xbf\x90\xf2\x2a\xe4\x4e\x7c\x12\x9f\x8a\xe6\x52\xe1\x3b\x58\x23\x34\xc0\x27\x34\x9f\xf1\x6e\xdd\xc4\x33\xc4\xe4\x19\x17\x79\xd7\x66\xa6\x6d\x24\xf6\xd8\x16\x83\xec\x33\x6b\x29\xf5\xee\x28\xd4\x29\x43\x30\x55\xb2\x75\x3d\x69\x7b\x9e\xec\xe0\x5d\xb2\xbc\xa3\xb3\x85\xfa\xa9\x18\xe2\x1c\x86\x65\xde\x6c\xe9\xb1\xe5\xac\x5f\x88\x1b\xc9\xf3\x53\x9f\x3f\x0b\xe7\x90\xfd\x80\x1d\x79\x86\xb2\xca\xb3\xd7\xa7\x1d\xe5\x3c\x52\x24\x92\x63\xb0\xc5\x0d\x95\x2a\x25\xb7\x31\x92\xbe\xdc\x21\xe2\x2d\xa7\xdc\x33\x9b\x5a\xd2\x8a\xce\x98\x66\x15\xc6\x62\xd9\xd8\x2f\x11\xc3\x6d\x42\xa0\xd8\x37\x25\x13\xb7\x9a\x66\xf7\x7b\x2e\x23\xdb\xb3\xb2\x3d\x2b\xfb\xcf\xcb\xca\x1e\xc5\x27\xc8\xdd\x77\x5b\x20\x68\x11\xba\xad\x71\x61\xb9\xb3\x67\x82\x65\xbb\x39\x56\x57\xbc\x28\x45\x35\xef\x4b\x3e\xb5\xd9\xd2\xa6\x9c\x1a\x6a\xe3\x21\xe6\xc1\xd7\x21\x84\xdb\x83\xdb\xb4\x1f\x4e\x31\x1e\xd5\x59\xf0\xdb\xc1\xa1\x26\x0a\x32\x82\xee\xdb\x94\x64\x66\x9e\xdc\x71\xdd\xd0\x08\xc5\x34\x29\x59\x35\xe3\x36\x4b\xa6\x14\x24\xb3\xd1\x43\xc0\xd1\x19\xee\xcd\x76\x97\xc4\x0f\x0a\x22\x33\x4d\x6d\x6e\x17\x72\xc7\xf4\x03\x63\x82\xbc\x78\xf1\xe2\x05\x88\x05\x2f\xfe\xf5\x5f\xff\x95\x40\xc6\xe1\x9c\x65\x7c\xb6\xfa\x22\xbc\xf5\xbf\x5e\xbe\x8c\x19\xf4\xdf\x2f\xdf\x7d\x0d\xd1\x06\xa5\x56\xe4\x4e\xea\xa9\x1d\xdb\x74\xd1\xea\x5e\x0d\xc8\xff\xbd\xfd\xe6\x7d\x53\x2e\xa2\xfd\x2b\xe8\x92\xfc\x16\xc5\x8c\x1c\x2a\x76\x5f\xfc\xf1\x0f\x7f\x88\xfa\x86\x57\x90\xe7\x11\x42\x3a\x9b\xd0\x9d\xd2\x05\x9d\x08\xa9\x57\x13\xb6\x5a\xd6\x29\xba\x94\xd4\x8c\x4f\xa6\x70\x10\xe6\xfe\x4b\x31\x2e\x78\xa6\x91\x48\x60\xf8\x37\x82\x84\x2d\x1a\x40\x6d\xee\x25\x2b\x0b\x44\x99\x69\x72\x36\x20\x05\xbf\x67\x64\xac\xbe\xac\x64\x5d\x36\x19\xd2\x6c\x0e\xfb\x8c\x0a\x33\x3e\x0e\xd7\xc0\x9d\x62\xd1\x79\x19\x0f\xe1\x06\x1b\x69\x67\x49\xbf\x72\xd0\xf1\x92\xa0\x31\xf0\x95\xd9\x86\x08\xdd\x25\xe5\x3e\xf8\x05\x1c\x0e\x91\x9b\x68\xf3\x23\x59\x54\x59\xd8\xa6\xca\x9d\x8b\x8c\x2c\x2b\xf9\x77\x04\x1a\x2e\x5c\xf2\x21\x2b\x90\x2b\x2b\x9f\xd9\x8c\x78\xa2\x31\xaf\x46\x8c\xe4\x32\xbb\x1a\x5e\xd3\xe6\x94\x6d\x12\x1b\x91\xeb\x71\x18\x7e\x08\xa9\x4d\xb9\x32\x93\x80\x0a\xad\x76\x6e\x11\xa3\xac\x99\xbd\xef\x17\xee\x86\x42\x08\xab\xc5\x4a\xff\x18\x54\x1a\x35\x06\x90\x06\x98\x34\x75\x09\xac\x9a\x51\x30\x60\xce\xc6\x54\xda\x77\x57\x4a\xea\x45\x67\xbe\xb4\x71\x76\x4c\xd7\xf6\x88\x30\x8e\xb5\x16\x05\x53\xca\xc6\x69\xce\x68\x75\xcf\x72\x8f\x9f\x47\x10\xfc\xa8\x22\xf3\x08\x11\x97\x81\x97\xcf\xd1\x82\x3f\xa3\x8b\x56\x0e\x0c\x33\x8d\xd3\xd1\xe8\x14\x51\x8b\xac\x30\xec\x16\xb1\x80\x79\xfe\x44\x99\x32\x5b\x77\xeb\x1d\x2d\x15\xe6\xfa\x34\x32\x0c\xa4\x2f\x93\x90\x44\xaa\x89\x6b\xa4\x76\x2f\x63\x70\x5f\x92\x64\x92\x56\xd0\x3d\xb6\xa4\x3b\xbe\x59\x6e\xcf\xd4\xe2\x5a\x9a\x70\x94\x50\x01\x7e\x73\xe6\x61\xbb\xc7\xf6\xbe\xc5\xb2\xf7\xc9\x0c\xf6\x2c\x8a\xb5\x59\x33\xd5\x68\x51\x0e\xc7\x68\x1b\x90\xa2\xf8\x1b\x1b\x40\xbd\xad\x2a\xd8\x72\x7b\x12\xb6\x06\xdb\xd3\x31\x37\xd8\xae\xc7\xcb\x31\xe6\x01\x7a\x0b\x19\x4d\x47\x87\x62\x32\xc1\x34\xed\x18\xdc\x0a\xb6\x03\xf3\x2c\xd8\xd2\x38\x17\x6c\x29\xfc\x0b\xb6\x38\xd7\x0c\x6c\xbb\x5e\x2e\xe7\xca\x81\xdb\x63\xc9\x0c\x52\x92\xb1\xdf\x7c\xcc\xe3\x58\x06\x88\x25\xe1\x4e\x59\x72\x85\xd7\x8a\xde\x29\x59\xd4\x1a\x87\x48\xef\x24\xa4\x79\x30\x49\x97\x18\x38\x8e\xd0\x2d\x77\x17\x50\x4a\xe0\x44\x90\x3c\xa5\xf4\x75\x3c\x3f\x9d\xbe\x94\x6d\x5f\xca\x76\x43\x7b\x5e\xa5\x6c\x7d\x21\x6b\xb5\xb5\x6a\xb7\xac\x88\x41\xba\xc0\xdf\x3f\xa7\x12\xb7\xd8\x32\xc5\x53\x14\x53\x8a\x93\xb3\xd7\x3e\xef\x81\x73\xbe\xbd\x16\x9a\x55\x63\x9a\xb1\xf3\x50\x61\xc5\xca\x29\x9b\xb1\xca\x6c\x90\x7d\xcf\x05\xf8\xdb\xb4\x4e\xe4\x6e\xe1\xe0\x8f\xb0\x4f\x9a\x55\x66\x33\x5f\xdf\x5e\x93\xbc\xe2\x73\x56\x29\x72\xf6\x05\x33\x42\x25\x16\xb0\x8c\xca\x60\xb2\xdf\xe8\x34\x98\xc6\xbe\x54\x64\xd0\xd9\x41\xb4\x63\xd0\x73\xab\x66\xa0\x45\x73\xcd\x5e\xe2\xd6\xe3\xbe\xab\x50\x53\x18\x73\xe1\x5f\x4b\x01\xec\x04\x60\x9c\x85\xac\x2b\xf4\x1f\xf0\xa5\x84\x33\x59\x55\x86\x85\x81\xa1\xa9\x22\x15\x9b\x18\x99\xb6\xc2\xaa\xaa\x58\x55\xb0\x36\x0f\xf6\x1a\xee\x73\x70\x73\xb2\xb7\x1b\x6f\x09\x78\x8a\xe8\xcd\x32\x9c\x65\x25\xe7\x3c\x77\xfc\x66\x88\xb4\xb9\x22\x25\x55\x41\x92\x0a\xaa\x94\xcc\x38\xe8\x2c\x9b\x13\x8c\x18\x09\x05\x7e\xe0\x5b\x7d\xea\xc5\x56\xac\x7a\x68\xd3\x96\x90\x44\x3b\xc2\xa9\x2c\xe1\x48\x84\xcc\xd9\x4d\x7d\x57\x70\x35\xbd\x3d\xa4\x5d\x71\xdd\x38\xe8\x4b\xbd\xe2\x64\xb7\xc9\xbe\x18\x65\xbd\x14\x8a\x03\x9b\x68\x88\x9d\xe1\x69\xb9\x91\xb6\x24\x9c\x96\xeb\x3f\xbc\x62\x12\x48\x7e\xc1\x6c\x02\xaf\xd7\xb7\xdb\xe3\x55\xb1\xbd\x6f\xd6\x62\xd3\xd2\x60\x9a\xf6\x9c\x7d\x2b\xca\xd6\xf3\x8c\x16\x9b\xcb\x53\x85\xad\xcd\xb1\x38\x32\x85\xd2\x81\x4b\x66\x83\x00\xc8\x0d\x6c\xba\x3d\xe2\x41\xc5\x3d\x9b\x9a\x37\xda\xc6\xbb\xb4\xc1\x8a\xcc\x24\x26\xdb\x10\x50\x3c\x16\x5f\x82\x8c\xf5\xee\x83\x20\x95\x12\x64\x04\x85\x1b\xd0\xdb\x6a\x37\xb4\xde\x56\xbb\xa5\xf5\xb6\xda\xb5\xed\x28\xbe\x36\x4d\x3a\x4f\x1a\x64\x5e\x6c\x15\xa0\xf4\x7c\x42\x3c\xc7\xd1\x11\x60\xb0\x57\x0f\x18\x9c\xd5\xa5\xd6\x15\xbf\xab\xf5\x81\x6a\x62\x2d\x8d\x01\x1c\x31\x53\x96\x72\x0c\xed\x26\x66\x01\xc2\x6a\x6a\xcb\xb7\x79\x83\x38\xa2\x82\xfd\x8e\x3c\xe7\x06\x4c\x1b\x3e\x3c\x55\x24\x97\x59\xed\xab\x94\xc2\xe9\x34\xce\x6d\xb1\x45\xcc\x92\xf0\x70\x7a\x8d\x9f\x70\x90\xce\xab\x95\xcb\x07\x61\xb0\xdd\xe5\x4d\x47\x32\x81\x76\x22\x81\xe6\xab\x50\x6a\x71\x8f\x89\x79\x4e\xef\x64\xad\x9b\x5a\x91\xff\x5c\x56\xf7\x75\x6a\x68\x2d\x49\xad\xd8\x56\xab\x7a\xa3\x5c\xde\x71\x8c\xde\x94\xdf\x9b\xf2\x7b\x53\xfe\xa6\xd6\xba\xc7\xd7\x68\xa5\x0f\x2b\xc1\xb6\xf0\x97\xcb\x9f\x1a\xb3\x75\x87\x37\x8e\xbe\x69\x30\x2e\x8a\x34\xcb\xa9\x09\x96\xe4\x2c\xbc\xed\x8d\x72\x3e\xf0\x0e\x75\x28\x19\x58\xe2\xa7\x37\xa4\x1e\xc8\x3c\x0a\xab\x8b\x92\xa1\xb1\xb5\x83\x57\x9b\x78\x63\xac\xef\x8c\x5e\x13\x81\x83\x46\x29\xf3\x57\x58\xea\x0f\x0a\x92\x63\xad\xa7\x81\xad\x83\x3c\xb0\x51\x23\xc0\x08\x97\x34\x43\xb9\xb4\xe6\x39\x60\x02\xcf\x30\x44\xa4\x33\xc2\x96\x78\x02\x24\xf9\x14\x08\x9c\x04\x2c\xb0\xa3\xae\x48\xd8\x52\x8f\xc4\x34\x5a\xf2\xef\x58\xa5\xa2\x72\x19\x36\xad\x9d\x81\x16\xbf\x77\x27\xa1\xb2\x29\x9b\x51\xf8\xe7\x5b\xb7\x00\x73\xad\x0d\xbf\xab\x19\x26\x31\x64\xd5\xcc\x08\x5e\x83\x96\x7b\xfb\xc9\x3c\x2e\x07\xa0\x6b\xc9\xc2\x0a\x71\x60\xd8\x9d\x17\x7b\xcb\x72\x6f\x5a\x76\x36\x03\x82\x40\xdf\x0b\xac\x9e\xb7\xe4\x1d\x03\x88\x0b\xf7\xe7\xc0\x4b\x7b\x8c\x74\x85\xed\x18\x6e\x01\xbb\xba\x03\x0c\xbc\xb9\xa1\xcd\xf2\x44\x0f\xdc\xbb\x03\xf4\xee\x00\xed\xf6\xcc\xdd\x01\x02\x92\xe7\x30\xe8\x1a\x7b\x7f\x68\x21\x71\x46\xff\x3b\xe6\x64\x0b\x2b\xbf\x38\x4b\xbe\x33\xe3\xcb\xaa\xed\x87\x76\x3a\x1a\x9d\xa2\x27\x5a\x23\xf0\xd4\x7a\x3c\xfc\x13\x61\x22\x93\xb9\xe9\xe7\x23\xf4\x5f\x29\x0d\xec\x52\xa3\xf9\x0b\xe7\x32\x73\x63\x85\xbe\x6c\xd0\x77\x1a\x5d\x4d\x40\x7b\x2e\x9b\xe6\xdb\xc7\x30\x17\x09\xe8\xab\x61\x3e\x7c\x1e\x4f\xbb\x15\x3e\x81\xba\xe5\x42\xdc\xef\x8a\x14\x7c\xc6\x6d\xb1\x48\x73\xdf\x99\xd2\xb1\x8a\x4b\x42\xce\xf0\xe3\x51\x56\xd6\x03\xdb\xd1\x68\xc6\x66\xb2\x5a\x0c\x7c\x67\xe6\xc7\x56\xef\xf6\x0d\x4c\xe5\x9f\xd5\x55\xc5\x84\x2e\x16\x01\x9b\xf3\xbc\xb8\x1c\xb7\x53\x07\x64\x72\xfc\xe1\xc4\x25\x3d\x6a\x5a\xfb\x46\x36\xc6\x62\x50\xaf\xfb\xd5\x62\xad\x4e\x8c\x1d\x1e\x34\xa6\x74\xf3\x94\x89\x39\x99\xd3\x4a\xc5\xde\x00\xb2\x2b\x5f\x93\xf3\x39\x57\x5d\xe5\x54\xb7\x2c\xee\xd6\xeb\x3e\xa1\x0e\x59\xad\xcb\x5a\x5b\x74\xe7\x40\xdc\xa5\x9f\xf7\xa0\xbd\xc4\xbe\xbd\xec\x56\x01\x37\xad\xa4\x5a\xb3\x4a\xbc\x22\xff\x79\xf6\x1f\xbf\xfb\x79\x78\xfe\xd7\xb3\xb3\xef\x5f\x0c\xff\xf7\x0f\xbf\x3b\xfb\x8f\x11\xfc\xe3\xb7\xe7\x7f\x3d\xff\xd9\xfd\xf1\xbb\xf3\xf3\xb3\xb3\xef\xbf\x7a\xf7\xe5\xc7\x9b\xab\x1f\xf8\xf9\xcf\xdf\x8b\x7a\x76\x8f\x7f\xfd\x7c\xf6\x3d\xbb\xfa\x21\xb2\x93\xf3\xf3\xbf\xfe\x26\x61\x92\x54\x2c\xbe\x89\xc6\x29\xd8\x86\x3b\xd1\x95\xf6\xb7\x89\x47\xbf\xc4\xfb\x71\xa1\x87\xb2\x1a\x62\x27\xaf\x20\xe3\x73\x74\x57\xee\x68\x77\xbf\x23\x0d\xd5\x6a\x4a\x21\x38\xf6\xf8\xc0\x97\xe0\x71\x1c\xf0\xce\x7e\x5e\x60\x2a\x7a\xc3\xf7\x1a\xc8\xef\xfa\x6c\xc7\x4c\x69\x36\x2b\x65\x45\xab\x05\xc9\xad\x72\x6b\xb1\x35\x97\xd9\x81\xab\x43\xc0\x24\x73\xbe\x1d\xc6\x0f\xa0\x2a\x9e\xb1\x9c\xd7\xb3\x83\x64\x38\x83\x9e\xc3\x4d\x7f\x80\x12\x0b\xb6\x80\x83\x73\xfd\xb1\xaf\xb9\x3a\x3d\x34\xbb\x47\x41\xc5\x9f\x4a\x9c\xfe\xb0\x95\x77\xff\xe4\x64\xa9\xf0\x2f\xe8\xa6\xc1\x09\x46\xe6\xec\x54\xf9\x77\x71\xf0\x44\x25\x31\x9a\x33\xad\xab\xe4\x99\xed\xea\xdc\x30\x82\xef\x80\x57\x38\x42\xca\xf1\x28\x68\x21\x89\x79\x90\xf8\x3f\xd8\xd7\x86\x2b\x3a\x48\xc0\xb7\xeb\xdc\x97\x09\x96\x20\xcc\xd9\x7c\x82\x63\x52\xc8\x2c\xf0\x07\x6b\x31\x03\x00\x0e\x57\xee\x12\xc7\xdb\x0a\x0d\x50\x98\x71\x91\xd7\x03\x65\x68\xa1\xd0\xbb\x85\x67\x50\xb5\x09\x44\x43\x38\xb3\x04\x48\x30\xdd\xce\xe8\x27\x3e\xab\x67\xa4\x56\x66\xb6\x50\xec\x3d\xe8\xa5\x99\xec\x83\x2b\x3e\x05\x59\xe1\xb8\x80\x8f\x5a\xa2\x71\x8c\x8a\x72\xca\xc8\xad\xdf\xbf\x46\x1d\x82\xa6\x74\x2b\xc9\xa9\x1a\x04\x09\x3b\x0f\xcb\x26\xcb\x31\x38\x56\x78\x8e\x4d\xf9\xfa\x45\x3b\x5c\x2a\xc1\x8b\xf6\xad\x72\x05\x53\xfc\xf6\xd6\xc2\xba\x2f\x3e\xa7\x1b\xf0\x8c\x79\xa3\x68\x8e\x28\x9d\x0f\x4a\xe4\x7e\x1e\xc1\xf3\x78\x67\xce\xbd\x92\x6c\xef\x21\xda\xa2\xd9\x61\xad\x96\xb6\xb7\x28\x75\x9e\x84\x1e\x85\x58\x4b\x77\xc7\x40\x1f\xbd\x4e\xc7\x92\xfa\x6c\x91\xd9\x6c\x78\xbc\x55\x1c\x0a\x07\x45\xf8\x86\xa8\xb6\xa1\xf9\x8f\xd3\xfd\x38\xf3\xe3\x1d\x1b\xa3\x7b\x13\x7e\x03\xb2\xbb\xea\x8a\xa4\x43\x8d\x56\xc1\x34\x84\xe6\x31\x5f\x32\x0c\xfd\xae\x66\x72\x1e\x51\x55\xf4\x5b\x57\x50\x9f\x77\x02\x14\x3d\x6f\x85\xcd\x2b\x14\xb1\x05\x63\x39\x86\x06\x16\xcd\xfc\xab\x5a\x74\xce\xfe\xee\xdc\xf9\xe1\x02\xbe\x11\x46\xca\x29\x9c\x00\x87\x6a\xa7\x8a\x99\x43\x81\x6c\x82\x95\x9c\x11\x25\x68\xa9\xa6\x52\x83\xea\x84\x96\x34\xe3\x3a\x22\xda\x4c\x57\x34\xbb\x87\xc2\xab\x15\xb3\xb3\xed\x9a\x5a\x76\x6e\x83\x1a\x42\x88\x68\x87\x42\xea\x69\x25\xeb\xc9\x14\x22\xf3\xf0\xad\xac\xa0\x0a\x43\x30\xbb\x8c\xec\x6b\x7b\xb7\x8a\x01\x45\xf2\x85\xa0\x33\x9e\xf9\xaa\x3a\x95\x9c\x73\xc5\xa5\x35\x52\xc1\xa8\xdd\x8b\xa6\xe4\xc6\x97\x3c\x41\xcb\xd8\xeb\x82\xf2\x19\x39\x53\x8c\x91\x2b\x77\x49\xf0\x97\x5b\x14\x10\x50\xdd\x19\xe3\x60\x15\x1a\xd5\xa4\x2f\x57\x2e\x6c\xc6\x59\xa7\xba\x0d\xdc\x18\x00\xa7\x44\x4c\x5a\xe4\xeb\xa7\xdd\x5d\xf5\xd3\x80\xf1\xfa\x15\xcb\x0a\xfc\x05\x5d\xe5\x2f\x26\x72\xd9\xb8\xc7\x74\xf4\x7a\x79\x73\xad\x42\xb5\x02\xde\x65\x5b\x4c\x06\x7e\x28\xa4\x98\x84\x29\x5a\x3d\x26\xe8\xe8\xd9\x10\x58\x01\xd5\x59\xe7\x3c\xaf\x69\x81\xa4\x35\x62\x91\xaf\x6f\xaf\x71\x60\x3e\x99\xea\xe1\x03\x03\x45\x30\xf2\x40\x0d\xee\x73\xd3\xe5\x2b\x4e\xdb\x5c\x01\x11\x8e\x28\xcc\x6a\x15\xd3\xb8\xe4\x07\xba\x80\xac\xe9\xd6\xf9\xb7\xe5\xed\xe3\x8a\x7c\xe0\x00\x63\xd9\x45\x65\x66\x8e\x7e\x5b\x10\xea\x5c\xf6\x25\xa0\x94\x8c\x0a\x60\xc6\x41\xa3\x6f\xe0\x09\xb0\xc6\xea\x9a\xbb\xef\x5f\x50\x0c\xc8\x7f\x84\x0c\x89\xa2\x06\x56\x3b\x65\xb6\x03\x48\x53\xf3\x06\x62\x3f\xb2\x59\x59\x50\x7d\x10\x07\x9c\xbf\x05\x26\x87\xc0\x1e\x6e\x90\x18\x15\xf9\x90\x16\xe6\xaa\xdc\x7c\xf7\xda\xc6\xbf\x22\xe2\x49\xf4\xb4\xfb\xe8\x88\x90\xf0\x05\x56\x0d\x1b\xbe\x16\xe7\x40\x22\xd2\x3b\x96\x03\x05\xb1\x73\x8b\x73\x12\x96\x0f\x82\x55\x0e\xf6\x6e\xbe\x7b\x3d\x20\x7c\xc4\x46\xee\x2f\xdf\x99\x23\x8f\x5a\x4e\x30\x92\xc6\x45\xac\xc5\xd8\xd6\x65\x3e\xc2\xe5\x84\xfa\xfd\xb0\xf7\x1f\xff\x6c\x16\x6a\x7e\xfd\xcb\xf0\xcf\x41\x9d\xb6\xbf\xfc\x68\xe8\x71\x94\xaf\xea\x8f\x4b\xdf\x85\x31\x17\x40\xf4\xcc\x5f\x3f\xde\xd8\x5a\xa6\xb6\xd2\xe9\x8f\x91\x4e\x15\x84\x30\xa1\xab\xc5\x88\xdc\x48\xf0\xc3\xe3\x39\x5e\x59\x98\x7f\xc5\xfe\xee\xcc\x42\x70\x5c\x5e\x83\x9e\x51\xcd\x04\x70\x25\x5b\xcb\x82\x36\xcd\x26\x04\x80\x01\x00\x39\x51\xd8\xa5\x33\x50\xbd\x62\x76\x9c\x01\xd1\x52\x02\xb6\xec\xc6\xe5\xa6\x5d\x0a\xc2\x3e\x71\x05\xc9\xd0\x70\xc7\xe1\xd8\xa8\x0d\x09\x71\x8c\x9c\x19\xd6\x40\x82\x4f\xa1\x57\xca\x18\xdf\x0d\x58\xff\x6f\x85\xd4\xbf\xf5\x97\xc1\x79\x94\x02\xc7\x26\x09\x9d\x4b\xee\x0a\xef\x1a\xc4\x23\xc0\xc8\x12\x95\x77\xc2\x9e\xe7\xdd\x82\xcc\xb8\xd2\xf4\x9e\x8d\xc8\xad\x61\xe7\x42\x27\x13\x3c\x65\x41\xa0\xee\x17\xcb\x49\x2d\x34\x2f\x22\x25\x3a\x3f\x17\xd8\x98\x80\xd5\x83\x4c\x13\x75\x66\x78\x92\xb2\x62\x43\xc7\x5a\xe2\x5b\x51\x7a\x17\x5b\xc1\xd0\xed\x49\xb3\xa7\x03\x0f\xfa\x53\x8a\x6a\x91\x32\x87\xce\xad\xa7\x76\xf4\x85\x5d\x89\xa6\x30\xbb\x21\x45\xd6\xb0\x8e\x70\xec\x6a\x44\xde\x03\x3f\x58\xc4\x00\x39\x3a\x8d\xa1\x1e\xc8\x5a\xd9\x04\xcb\x98\x52\xb4\x5a\xa0\x13\x3b\xf7\x25\x77\x6b\xc5\xc6\x75\x01\xec\x72\xcc\x96\x50\x81\xe5\x8d\x2b\x96\x49\xa1\x74\x55\x67\x70\x8e\x94\xdc\x55\xf2\x9e\x89\x26\x0c\x29\x0a\x31\x86\x1e\xf7\x8d\x6b\xb3\x61\x7b\x84\x24\xd9\x94\x8a\x09\xf3\x19\x41\xb0\x0c\xfd\xdd\x82\x7c\xe5\x05\xac\x98\xad\x90\xfe\xa4\xe8\xd8\x48\x35\x5c\xc3\x91\xdd\x19\x8e\xcc\xd9\x23\x63\x26\xfb\xc1\x07\x01\xcc\x02\xe3\xa5\xe0\xc5\x9e\x1d\x79\x53\x6c\x55\x43\xe0\xbf\xbb\x05\xf7\x24\xdb\xd4\x8c\x69\x9a\x53\x4d\x0f\x19\xa7\xf1\x8e\xfa\xda\xce\xd6\x17\x0a\x0e\x3d\xf0\x91\xb2\x6c\x96\x93\x0a\x65\xc9\xc3\x3c\x2f\x37\xdf\xbd\x8e\x1c\x09\xc4\x40\x38\x67\x48\x23\xa9\xcd\x3d\xb2\xe6\x79\x80\x3c\x0c\x8d\x71\xb1\x18\x66\x12\x6e\x4c\x24\x07\x2c\x27\x79\x9d\xa0\xed\x6f\x88\x4a\x9c\x3d\x33\xd1\x9a\x69\xce\xfb\x90\x07\xf3\xb1\x71\x13\xca\xda\x91\x05\x6b\x85\x09\xb4\xc0\x33\xa1\x79\xc5\x82\x6c\x3f\x91\x83\xd9\x53\xad\x05\xde\xf4\xf6\xf9\x22\x00\x4c\x98\x56\x8d\x4b\x32\x92\xff\xe8\xfe\xb5\x65\x1c\x71\x96\xc0\xcb\xba\x33\xb7\xfa\xbb\xb5\x8b\x8a\xec\x1d\xe1\x46\x49\x4b\xe6\x0d\x7b\x73\x90\x23\xdf\xc5\xb6\x8c\x75\xd4\xdf\xc9\x3c\xc5\x1c\xbd\xab\xf7\x41\x6b\xb8\x26\x3c\x0d\xa3\x22\x15\x28\x9f\xf1\x05\x70\x88\x51\xad\x5c\x47\x48\xa3\xa6\xb4\xab\x4c\x7e\xbb\xed\xa8\xf1\x6c\xe4\x9c\xa1\xaf\x38\x0a\x13\x1b\xc2\xc4\x86\x2f\xa3\xa7\x90\xe2\xc8\xeb\x5a\xb4\x43\x6f\x7b\x90\x44\xab\xeb\xa3\xf2\x42\xb8\x66\xd0\xff\x6d\xa2\xc5\x75\x77\xe8\x69\x46\xb3\xcc\x80\x75\xa2\xf2\x0e\x78\x36\xf6\x9f\x71\x83\xb6\x53\x76\xf0\xb7\x2d\xb6\xd9\x0a\x5a\x5e\x67\x86\xe1\x94\x67\x4e\x89\x36\xb2\x60\xe2\xd2\x56\xb6\x5f\x3f\xdf\x79\x58\xe0\xfc\xd7\x6b\x71\x12\xfa\xbc\xb6\xfe\xc4\x4e\x06\x35\xb2\x5e\x05\x36\x34\x17\xd5\x6f\x2e\x5e\x25\x8b\x82\x55\xb0\x81\x56\x7d\xb6\xe4\xf8\x09\xc5\x0c\xd1\x00\x1e\x93\x96\xcc\x35\xa7\xa0\xf5\xe2\xb1\x60\x0f\x9e\xaf\xa7\x0a\x93\xb5\x3b\x7f\x23\x50\x31\x3b\xaf\xdb\x75\x23\xa7\x5c\xf5\xbf\x39\x35\xee\xa5\x58\xe0\xd6\xbd\x09\xc0\x05\xd5\xa5\x64\x62\x26\x65\x44\x67\x41\xef\x0a\xc3\xa2\x05\x20\xe5\x67\xb4\xc4\x4b\x68\x19\xbc\xf5\x81\x8d\x53\xb6\x03\xf4\xcc\xe1\xc7\x71\xa3\x20\x33\xd2\xfa\x70\xd4\xf8\x7e\x5b\xe9\x2d\x29\xe7\xb8\x6b\x16\x3a\x5a\x9d\xb5\xfd\x2d\x97\xc6\x0d\xd3\xe0\xad\x9d\x6b\xfc\xe8\x3b\xf8\x63\xed\xe2\x91\x05\xc9\xd4\x78\xa7\x2e\xab\xfd\x41\xa4\xbc\x8e\x6d\x17\x17\x2e\xf0\x54\x07\x57\xd0\x34\x7f\x9c\xdd\xb1\x25\x41\x35\x2c\x8c\xe9\x94\x23\x13\xf8\xc3\x71\x6a\xde\xc3\xe5\x8e\x19\xfc\xd3\xe4\x88\x4c\x81\x28\x82\x50\x15\x8e\xb4\xc6\x89\xb7\xb9\xde\x5f\x41\x19\x4b\x6b\xda\x77\x29\x29\x0c\x99\xbe\xbc\xb9\xc6\xf9\xa5\x8e\xfe\x16\xf0\xdb\xc2\x32\xeb\x7a\xca\xab\x7c\x58\xd2\x4a\x2f\x50\xd9\x39\x68\xcd\xcd\x47\xd5\x27\x0d\xb2\xa3\x5f\x53\x5c\x5d\xdb\xb0\xb5\x8e\x1b\xb6\xca\x19\xef\xad\x0f\xc7\xc6\x33\x3b\xc6\x7a\xe2\xa3\xf2\xd7\xae\x27\x2c\xbd\xe8\x14\x83\x4f\xb8\x9e\xc7\x47\x1c\x90\x36\xae\x3c\x2e\x0f\x64\x90\xb3\x6a\x7b\x3d\x22\xa3\x02\xd2\x8f\x55\x20\xcb\x30\x38\xd6\x73\xd3\xa0\x7b\x32\x3d\x0d\x08\x1f\x1b\x22\x2d\xc5\x10\xac\xfb\x09\x13\x69\x8c\x99\x96\x77\x1f\x59\x07\x7b\xd4\x16\xc1\x85\x0c\xe6\x13\x0c\xd2\xdc\x74\x72\x26\x64\x8c\x32\xc9\x35\xc0\x13\xd8\xeb\x39\xc6\x3e\x6c\xb0\x5c\xdd\xa5\xe4\x9f\x24\x0d\xf7\x10\xaa\x99\x02\x0c\xe6\x18\x18\x2e\x72\x03\xa4\x40\x12\x41\x01\xa5\xea\x2c\x63\xcc\xab\x80\xed\x25\x4d\x61\xdd\x5b\xb8\xd1\x6e\xd8\x8c\xea\x6c\xca\x14\x51\x12\x92\xac\x2b\x4d\x8b\x82\xe5\xde\xac\x89\x07\x2a\x81\xaf\xb3\x26\xcf\x84\x11\x03\xc6\x30\x65\x83\x02\x15\x9c\xd5\x81\x97\x05\xb5\xca\xc7\x71\x2d\x32\xf4\x19\xe6\x7a\x11\x96\xae\x6f\x31\xeb\xa0\xb7\x51\xa0\x67\x4d\x61\x28\xc7\x68\xb7\x0a\x74\x30\x1e\x90\x80\xb4\x2c\x90\x98\x18\xc9\xb0\xb1\x44\xd9\x04\xc2\x86\x32\xf8\xf4\x1b\x49\x70\x16\x24\xea\x18\x20\x37\x16\xb2\x4c\xe2\x34\x74\x0a\xe2\x62\x77\x06\x31\x5c\xdb\x59\xb0\x65\x2b\x8c\xe3\xb9\x67\x18\x15\xf3\x05\xa0\x55\x0a\xd7\x42\xac\x17\x14\xad\xb5\x9c\x51\xcd\x33\x50\xcf\xf2\x71\x60\xe4\x9d\xf9\xfa\x76\xde\xc9\x09\x89\x2a\x10\x75\xbb\xeb\xc9\xd7\x6a\x3d\xb3\xf9\xa8\x6d\x0b\x76\xca\x9e\x46\x7b\x53\xdc\x52\x03\x56\x23\x79\xee\x1f\x5d\xde\x14\xa2\xa7\x15\x63\x84\xcf\x8c\x98\x44\x85\x26\x39\x1f\xfb\x7c\x39\xce\x66\xbf\xed\xec\xd2\x24\xd1\xbf\x81\x3f\x48\xd0\x1f\xaa\xba\x8b\x42\x3e\x28\xa2\x1f\xa4\x57\xbb\x35\xb6\x5c\x9b\x2f\x65\xd0\x1e\x36\x89\x82\xda\xfe\x0d\xda\x36\x27\x1d\x60\xda\x81\xb9\xb5\x0f\xac\x28\xcc\xff\xb7\xe1\xdb\x84\x48\xaf\xb5\xeb\xe4\x13\x81\x89\x38\xb8\x72\x6a\x56\x1b\x4f\x76\x96\x57\xb2\x2c\xad\x19\x68\x76\xfe\x98\x75\x82\x6b\x53\x35\x67\x0a\xdc\xf4\x5c\x34\x9b\x39\xb2\x09\x13\xac\xa2\x1a\x0c\xe1\x36\xa1\x36\x10\xc7\xe5\xe9\xc4\xab\x2d\xb1\xed\x24\xa7\x75\x80\x01\xba\x2d\xac\x3f\x76\xf7\x8e\xfd\x35\x69\xae\x5c\x20\x04\xb8\x1b\x9b\x74\xa4\x90\x21\xf0\x9c\x7c\xab\xf0\xa0\x3c\xbd\xf0\x51\x82\x51\xd2\xb9\xcd\x72\x84\x02\x7a\xd2\xf0\x97\x45\x39\x0d\xc6\x0f\xa5\x5c\x1f\x6a\xdd\xde\xa9\xd6\xcc\x5e\x57\x52\xa9\xf7\xee\x93\x83\x4c\xb2\x97\x80\x7b\x09\xb8\x97\x80\xb7\xb7\x5e\x02\x3e\xf6\x7a\x00\xdf\x1d\xf3\x4e\xbe\x0f\x19\xc2\x36\xa2\xde\xdb\x7e\x10\xf2\x5e\x6a\xeb\xee\x02\xfc\x3b\xdd\xa8\xf4\xa4\x80\xd3\x1f\xe8\x62\x24\x98\xb6\x79\xe8\x9c\x6e\xff\x83\x1b\xfd\xcb\xca\x70\x7e\x56\x40\x0b\x6e\x91\xbb\xc0\x2e\x89\x60\x30\x8a\x96\x48\x8a\x1b\xef\x1b\x78\x7e\xaa\xac\x47\x87\xf9\x1d\x82\xed\x49\xab\x42\xcb\x88\xdc\x5a\x6f\xc1\xa5\xc1\x57\x53\x85\xe5\x4c\x53\x1e\x97\x87\x32\x6c\x8e\x52\x7e\xdc\x40\xa3\x8f\x40\x09\xc9\x6e\x20\xeb\x43\x37\x8f\xa1\x6a\x69\x42\xa0\x03\x8f\xf8\x30\xaa\xa4\x79\xe1\xf1\x96\xca\xeb\x31\xf9\xc0\x32\x39\x67\x15\xee\xf7\xd5\xa7\x92\x0a\x23\xa6\xbf\xa5\xbc\x30\xbb\xed\x76\xbd\xb1\x5e\x40\x3d\xe1\xb6\x5b\x42\x60\x04\xf3\xd7\xc8\x1e\xad\x81\x9c\x14\x66\xd0\xe7\xbc\x33\x3d\x5b\x3f\xdd\xb2\x62\x73\x2e\x6b\xe5\xe2\x69\x6a\x8d\x74\x4c\x69\x2b\x9b\x4e\xf9\x64\xea\x5e\x76\x7e\xe6\xe0\x01\x54\xe5\xfe\xaa\x24\xcc\x41\x69\xaa\x6b\xd5\x4e\x94\x93\x81\x3b\xc1\x93\xd8\x80\xfd\x79\x1f\x96\xe1\xdb\x8d\xb9\xc2\xf8\xa3\x63\xa2\xf1\xaf\x31\xe2\x09\x3b\xb9\xb3\xb7\xc0\x85\x69\x35\x61\x66\x99\x9c\x95\xb5\x66\xc1\x6d\xb1\xd0\x9a\x8a\xb6\x12\x0f\xb2\x95\xf7\xf2\x62\x46\x05\x9d\xb0\xa1\x9f\xc4\xb0\x89\xd0\xba\xd8\x01\x6b\x25\x1e\x29\x79\x44\xe2\xc5\xb0\x3d\xe3\xc8\xaa\xa5\xc5\xa6\x47\x9e\x93\x47\x46\x9f\x93\xc7\x44\xa0\x93\x7d\x46\xa1\x13\x9f\xca\xe2\x98\xd7\xf1\x83\x1d\x73\xf9\x42\x5a\x62\xb5\xed\x42\xee\x26\x12\x58\xa2\x65\x47\xe5\x8a\xc8\x19\xd7\x9a\x39\x47\x66\x7f\xc1\x06\x84\xeb\x56\xa6\x05\x8b\x38\x40\x69\x8e\xde\xc8\xec\x93\xaf\xb2\xdd\x30\x66\x89\x93\x01\xe1\xe7\x81\x2b\x64\xbc\x04\xe1\xb3\x12\xeb\xb4\x00\x02\x18\xda\x38\x49\xa7\x1a\xf6\xf3\xce\xc0\x97\x90\xb0\x4f\xa0\xc8\xc7\xa9\xf5\x98\xa9\xc7\x4c\x4b\xed\x97\x80\x99\x30\x8b\x45\x4a\x92\x95\x16\x46\x72\x9f\xdb\x1c\x97\xf4\x8e\x15\xe4\xa7\x9a\x55\x0b\x62\xd8\xd6\x26\xd2\x0b\x8a\x83\x2b\x9e\x63\x4c\x93\xb3\x9a\x1d\x58\x4b\xb6\x1b\xd3\x04\x96\xb6\xab\x4f\x86\xbb\x87\x9c\x6d\x8f\xc0\xd7\xcb\x5d\xb5\x33\x81\xe2\x6e\xf9\x1d\x0c\x79\x72\x74\x3a\x0d\x9f\x00\xdb\x7d\xf9\xfe\xcd\x6e\x02\x55\x9a\xb3\x21\xd9\xc5\xe1\x70\x65\xf1\xc9\xc4\x8a\x90\xcb\x2d\x7b\x82\x7b\xe7\x7f\x01\x2a\xe1\xdd\x45\xbd\xce\x9e\xdc\xb3\xc5\xc0\xba\x83\x13\x73\xfa\xd4\xbd\x9c\x3c\x19\x8c\x0b\x69\x8a\x18\x9a\x4e\x63\xb3\x6f\xb7\xdb\xce\x48\x78\x37\x45\x2f\xb6\xf8\xea\x91\xed\xaf\xdc\xa6\xa5\xe2\xfa\x9d\xa9\x44\x52\x95\xc9\xb0\x6d\xaa\x38\x89\x30\x04\xe5\xe1\x5c\x6e\x04\x0f\x36\x90\x75\x02\x10\x52\xea\x21\x92\xdd\x15\x6a\xd8\xdc\xc6\x3e\x7a\xa9\x3b\x5c\xac\x70\xfc\x76\x2c\xff\x3d\x5b\x9c\x2a\x9b\xf4\x4e\x0a\x35\xe5\x25\x56\x44\x55\x0c\x70\xd4\x6e\x00\x8f\xed\x3b\x70\x6d\x77\xc3\x22\x06\xbb\x16\x03\xf2\x5e\x6a\xf3\xbf\x2b\x08\x4d\x82\x6b\xf5\x46\x32\xf5\x5e\x6a\x78\x72\xf4\x73\xc1\x25\x3e\xd5\xa9\x58\x6b\x26\x07\x0b\x23\xa0\x69\xcc\xca\x03\x71\xfa\x76\xf7\x9d\x87\xa6\x3f\x41\xae\xc8\xb5\x20\xb2\xb2\x5b\xb9\xd3\xc0\xda\xd5\x54\x56\x76\x58\x67\x7d\x68\x8c\xfa\xeb\xc6\xb5\xa7\x26\xab\xd6\xa1\xed\x79\x0a\x76\x78\xd0\x45\xe2\x2f\xa0\x5d\x05\xef\x12\x17\x52\x83\x55\x7c\xa9\x66\x93\x24\x57\x97\xa6\xcd\x58\x35\x81\x2c\x8f\x59\x42\xfd\xc7\x60\xf2\x3b\x12\x56\x6c\x3b\x91\xd7\x70\xe0\x1d\x81\x7d\x4f\x3e\xfe\x7b\xee\x0a\xf8\xa4\xaf\x21\x94\xeb\x98\xd2\x71\x30\x2c\x72\x17\x33\x5a\x9a\xdb\xf7\xdf\x86\x89\x00\xc0\xfc\x1f\x28\xa1\xae\x46\xe4\x92\x28\x2e\x26\x05\x6b\xfd\x66\xd5\xfc\x41\x37\xc9\x13\x00\xeb\x9b\xa1\xf1\x73\x5a\x30\x8c\x17\xa5\xc2\x17\x13\x95\xe3\x15\x16\x72\x60\x6b\xaa\x1b\xf2\xe6\xdd\xd2\x4e\xee\xd9\xe2\x64\x90\xa8\x48\x25\x21\x4d\x30\x9d\x5c\x8b\x93\x26\x25\x6d\xeb\x5e\x7a\x3e\x0b\xfc\x0d\x4e\xe0\xb7\x93\x7d\xf3\xa8\x4f\x24\xa4\x3e\x99\x9b\xa8\x55\x2a\xbf\x2e\x28\x1a\x56\x8e\x61\xbe\x58\x1e\x73\x5d\x51\xc2\xdb\xe0\x9d\xc6\xa4\x65\xa3\x97\x9f\x50\xd3\x0e\x19\x61\x92\xc3\xac\x92\x0e\x76\xb9\x0c\xd0\x51\xcf\x66\xe3\xe0\x41\xb0\xb5\xcf\x29\x6e\xce\xe2\xbb\x75\x1f\x04\xb1\xe6\x5c\xa5\x1f\xd7\xf5\x78\xd9\x47\x21\x48\x77\x12\x46\xf1\xc8\xca\x46\xad\xaf\xf8\x10\x43\x85\xc4\xa6\x92\x52\x6c\x29\xd5\xa6\x35\xee\x0f\x15\x53\xa5\x44\xff\xda\xb5\x8b\xb5\x2c\xc2\x94\x2a\xf0\xc9\x1a\x5b\x73\x6b\x59\x57\xa5\x54\xb6\xbc\xdd\x32\xc8\x27\x46\x2e\xd9\x70\x32\x17\x64\x8a\x61\xe0\xfe\x26\x98\xfb\xe3\xf3\x52\x5f\x2e\xe5\x24\x44\x83\x58\x90\xa5\x4d\xc8\xf5\xcb\x48\x98\x91\x73\xf8\x44\x39\xc6\x67\xc6\xc2\xc9\x60\x6c\xfe\x29\xba\x9a\x04\xe6\x3f\xc3\xed\xeb\xd0\xfb\x4a\xcb\xf6\x4c\x21\x65\x00\x26\x8f\x4b\x48\x36\x4e\x10\x5e\x6a\xd1\xb8\xb1\x38\xea\xb1\xde\x25\x10\x72\xd3\xdd\xc9\x5a\x58\xd0\x72\x59\xed\xf6\xb5\x29\x66\x95\x2e\xcb\x82\x9f\x80\x05\xcd\x20\xc0\x8d\x8f\xcd\x5a\x6d\x66\x84\xb4\xb5\xb6\xfc\x83\xc0\x3a\x5f\xd9\x22\x7c\x8b\xf5\xf7\x97\xe4\x92\xe1\x79\xc0\x78\x03\x3c\x85\xf5\xdb\x63\x97\x91\x82\xce\xd1\xc3\x95\x92\x1b\x86\xb7\x44\x69\xaa\xd9\x00\x6b\xbc\x8e\x8b\xa0\x0e\x10\x23\x33\x99\xf3\xb1\xf5\xb3\xbb\x0d\x6c\xa8\x03\x4c\x97\x61\x73\x5d\x84\x69\xc0\x13\x26\x92\xbe\x99\x8f\xca\x3b\x38\x6c\xf0\xcb\x10\xc8\x02\x4b\x52\x8b\x47\x39\x25\xae\xc7\xae\x9b\xfd\x1c\xc8\x99\x1c\x8f\x83\x92\x57\x11\x55\xf0\x5c\xdb\x99\x52\xc5\x55\x16\x73\xed\xb1\xa4\x09\xca\x2c\xb8\xd4\x7b\xad\x24\xb2\x4d\xdc\xc7\xa3\xf9\x85\xef\x00\x69\xca\x31\x79\xdb\xd4\xc2\xe5\x0a\x0c\x37\xdc\x25\xe6\x33\xd7\x89\x8b\xac\xa8\xad\x03\x01\x62\x3f\x83\x85\x8e\xb0\xe7\x8f\x60\x07\x9a\x0e\x1c\xdf\xe5\xa2\x47\x56\x12\xb9\x2c\x63\x08\x08\x59\xf0\xe0\x9a\xb8\xab\x91\x6b\x1d\x77\x24\x87\x68\xad\x65\x9c\xb5\xf5\x48\x6f\xf9\x5d\xc5\xc8\xeb\x29\x15\x82\x15\x41\x9e\x6c\x6b\xcc\xa3\x5a\xd3\x6c\x8a\xb8\x92\x12\x73\xd3\x0b\x66\x28\xd5\x54\x2a\x4d\x66\x34\x9b\x72\xe1\x93\xa8\x0a\x9f\x95\xbd\xc9\x6a\x73\xf4\x14\x62\x07\xaf\x5e\x6d\x21\x20\x2c\xf9\xdc\x2a\x6a\x1d\xd1\x93\x4f\x86\xbc\xd2\x4b\x53\x2f\xd2\xde\x43\xd8\x67\x94\xf6\x80\x4e\xc0\xbb\x31\x63\x6c\x2e\xad\x4d\xae\x67\xde\x40\xcb\x45\x40\x0a\x99\xfd\xc0\x10\xda\x80\x39\xd8\x6b\x25\xeb\xa2\x8e\xa8\xed\xd4\xce\xe2\x5e\xd4\xc2\x6c\x7a\x53\xad\xe7\xed\x6b\xa2\x69\x35\x61\xda\xf4\x46\x44\x3d\xbb\x63\x55\x77\x3a\xf7\xc3\x15\x98\x3b\x4a\x3d\xd8\xd6\x0e\x74\x94\x71\x25\x1f\xdc\x57\x10\xf6\x02\xfc\xc9\x58\xc6\x71\x06\xe8\xab\xe8\x8a\xd0\x62\x09\x42\x83\xab\xbf\xb3\xa4\xa4\x16\x31\xfc\x42\x4a\x9d\x58\x3c\xcb\xbf\xfd\xed\x7d\x6a\x91\xbe\xd3\xe6\xcb\x4d\x00\xf2\x20\xab\x22\x7f\xe0\xb9\x75\x4b\x25\x67\xe6\xe5\xf3\x58\x60\xd9\x73\xcd\xbe\xdd\x53\x0a\xa7\xea\xe8\x1e\x1e\x78\x7e\x90\x7a\xbb\xd0\x71\x7b\xa7\x9d\x08\x69\x76\x9a\xc0\x56\xf3\x9c\x09\x6d\x50\x47\xa5\xc8\x19\x7c\x11\x93\xf3\xe2\x8a\x63\x66\x42\x18\x01\xaa\x02\xcd\xee\xb8\x68\x92\x6b\x36\x67\x6d\xc8\x8d\xb9\xf9\x4e\xeb\xac\x98\xc6\xfc\x66\x90\xd9\x40\xea\x29\x51\x7c\x56\x17\x9a\x0a\x26\x6b\x15\x5f\x8a\xff\xb3\x3c\xee\x71\xc1\x3e\xe1\xdd\xdc\x67\x02\xe9\xa6\xd7\x36\xb7\x00\x71\x55\x4d\x56\xde\x65\x76\xa1\xa3\xd7\x26\x5c\x35\xbf\xf0\x8c\x85\xcf\x2e\xc8\x3e\xb1\xcc\xe6\x15\x29\x8b\x7a\xc2\x3b\x72\x69\x45\xf3\x0e\xb1\xa6\xd8\xa1\x55\x97\xec\x89\x11\xc1\xce\x12\x2f\x61\x93\x9f\x76\x59\xbb\x67\x7f\xb1\xb5\x18\x7c\x5e\xff\xd8\x84\xa4\x09\xc0\xd8\x73\x50\xd8\xb6\x70\x50\x61\x6a\xff\x60\x02\x39\x2b\x99\xc8\xa1\x58\xe0\xdb\xe6\x02\xe1\x2e\xed\xf5\x88\x6c\x61\xbb\x54\x7a\xe9\xea\xe1\xb5\x88\x65\x20\x47\x4f\x65\x91\x2b\xc2\x3e\xe9\x8a\x1a\xf4\x3b\x33\x88\xd6\x7f\x33\x26\x54\x2c\x22\xaa\x92\x3e\xa7\x02\xe6\xe4\x49\xb8\xb3\xfc\x97\xc4\x9d\x29\x96\x55\x4c\x47\x05\x3e\xef\x50\xd6\xc4\x75\xde\xde\xc0\xd6\xe3\x15\x11\x1b\x7f\x75\xe1\x3b\x4d\xed\xe2\xa8\xf1\x84\xe2\x50\x24\x70\xa9\x22\x72\x49\x95\xf2\x52\x2b\x10\x1f\x7b\x6d\x55\x2b\x13\x46\xc4\x10\xa8\x9f\xe5\x63\x22\xe4\xd2\x4c\xc3\x40\x25\x6f\xa2\x6f\xbd\x12\xd1\xbd\xb7\xe8\xcd\xb0\x50\x02\x15\x10\xf2\x8f\xdd\x0c\x20\x0e\x1a\xff\x8d\x46\x3d\xb3\xae\x40\x1e\x87\x95\xc5\xec\x93\x5d\xfb\x7e\x2f\x7b\x9a\xab\x51\x7c\x74\xde\x6e\xfa\xb1\xf7\x01\x71\x75\x01\x5f\xb1\xaa\x99\x76\x0e\x5b\x06\x95\x45\xf9\x9c\x41\x86\x5c\x97\x30\xd6\x30\xa4\x79\x8d\xca\x46\x97\xb6\xa2\x9d\x8c\x22\x3e\xf8\x3c\xb0\x09\x34\x5e\x16\xd7\x42\x69\x0a\x79\x0b\x60\x15\x86\xaa\x1a\x02\x68\x73\x11\x5b\x40\x44\x5b\x86\xcb\x7e\x10\x3d\xdc\xcc\x10\xcd\x8c\x55\x06\xd6\x8a\x05\x79\xa8\x64\xbc\xd3\x67\xa2\x86\x58\xce\x59\x35\xe7\xec\xe1\xc2\x46\xeb\x0d\xcd\x02\x86\x36\xe0\xfd\x02\xc4\xb6\x8b\x5f\xc3\xff\xa2\xc6\x4f\xd6\x0f\x5a\x6c\xfd\x8a\x9c\x74\x97\x0c\xdc\xd5\x7c\x3c\x86\x04\xd7\x29\x55\xd9\xec\x17\x4b\xba\x3a\xfb\xd0\x72\xdf\x31\xba\x39\x8b\xbe\x02\xce\xc4\xc0\xbb\xeb\xc8\x1a\x57\x88\x32\x47\xd0\x44\x69\xd6\xa2\x13\x9f\x1e\x40\x73\x97\x53\x4d\x15\xd3\x71\x7a\xda\xf4\x3b\x1f\x74\x6f\x2e\x6d\x78\xfd\xed\x4f\x60\x72\x64\x90\xd8\xc6\xa5\x43\x26\xc3\xbf\x58\x2e\x5c\xb4\xde\x34\xfc\xb7\xdd\xc4\x18\x74\x3a\x75\x75\xac\x9c\x33\x35\x8e\x92\x9b\xc3\xcd\xa2\x12\xaa\x27\x80\xb5\x9d\xe3\xb7\xdf\x5e\xbf\x49\x95\x3e\x9a\x2f\x1d\x93\x0e\xff\x6e\x6f\x93\x05\x29\x30\x0a\xf2\x9f\xea\x50\xde\x87\x82\x1e\x1e\xba\xec\xfb\xfb\x5a\xdb\x24\x63\x8d\x76\xfd\x0d\x57\xf7\xfb\x14\x78\x57\x3a\x6f\xdf\xbc\x2f\x5f\x5f\x11\xfb\x74\x9b\x82\xbc\x63\x90\x7d\xab\xcf\x1f\x5d\x05\x6c\x92\xb1\xc6\xe0\x9a\x73\x75\x7f\x6c\x89\xbb\xcc\xdf\x77\xa5\xaa\x78\x5e\xaa\xff\x65\x71\xd3\x15\xd4\x09\x2a\x6b\x2d\x64\x4d\x1e\x6c\x0d\x81\x68\x81\xf6\x23\x2f\x5f\x91\x2b\xa1\xea\x8a\x35\xde\xcf\xcb\x83\x19\x0e\x72\x8f\xe2\x2d\x94\xa4\x50\xaf\x8e\x66\x26\x38\x32\xb8\x92\x34\xb4\x59\xd2\x4a\x83\x2c\x7a\x08\x00\xf2\x9d\x3b\xbc\x1a\x3c\x10\xfb\x81\xa0\xeb\xb1\x8b\xd9\x6b\x3b\x69\x70\xe5\xbb\x69\xbc\x1d\x80\xa8\xa5\x41\xc9\x5b\x5f\x00\x8a\x5c\xe4\x6c\x7e\xa1\x72\xfa\x72\x00\x53\x75\x51\xea\xed\x75\x51\x45\x4e\x5e\x9e\xc4\x8c\x71\xcb\x67\xbc\xa0\x55\x81\x39\xe0\x7c\x6a\x3c\xdf\x93\x21\xb6\x6e\x48\x70\x78\x7c\x71\x42\xce\x64\x05\x63\x67\x54\x90\x82\xb9\x7c\x71\x16\x57\x2c\x90\xf9\x8d\xb2\xe4\x3f\x11\x48\x1e\xc2\x0e\x85\xc8\xf4\x20\xe0\x9b\x3b\xb6\xc9\x92\xfc\x56\x29\xa0\x37\x0d\x55\xe4\xc2\x90\xca\x11\xf9\xd6\x92\x31\xcb\x1a\x20\x6c\x98\xed\x71\x6f\x3c\xdf\x93\x79\x3e\x4a\xa5\x25\xf5\xd0\x9e\x94\x3f\x64\xd5\x7a\xf8\x8c\x4f\xa3\x5b\x49\x35\xe1\xfa\x03\x2b\xe5\x5e\x99\x41\xec\x72\xc9\xf4\xc1\xb5\x79\x20\x15\x87\x5a\xd7\x54\x13\x8a\x38\x2a\xab\x0b\x6a\x04\x35\x34\x6d\x74\xed\xe5\x9b\xab\x9b\x0f\x57\xaf\x2f\x3f\x5e\xbd\x79\x45\xbe\xb4\xe3\xf0\x50\x14\x18\x91\x8f\x61\xd5\xb1\x20\xf6\xda\x8a\xf6\x7e\x26\x03\x8b\xd5\x3b\x75\x78\xbe\x9e\x2e\x94\xda\xa0\x82\x5c\x0b\xae\x5f\xfb\x6e\x31\x24\xaf\x90\xc2\x7a\x50\x99\xbe\xad\x59\x66\xc2\xb5\x4d\x24\x8e\x43\x99\x9f\x5d\x6f\x1d\x83\x36\x65\x3d\xa0\x0e\xb8\x5f\xc5\xd1\xad\x3a\xcd\xa1\xed\x4b\x50\x75\xa5\xb5\x0f\x22\xa6\xfa\x6a\xea\x2e\x55\x16\x5a\xb2\x9b\xe7\xb1\xa4\xfb\x9d\xab\x58\xe4\x6a\xee\xc8\x0a\x2b\xaa\x22\x1c\x9d\x8e\x46\xa7\x23\x60\x1b\x4e\x47\xa7\x8e\xb5\x2c\xbc\xfb\xb0\xa5\xc2\xcd\xb0\x69\x85\xe9\xda\xb7\x65\x44\xc8\x37\x2e\xa2\x1f\xd2\x14\x2f\xf9\x2a\x7b\x37\xe4\xa6\xda\x32\x26\x78\x6b\xdf\xb9\x28\xdd\x25\x68\x55\xeb\xbb\x70\xe2\xd6\xb9\x79\xc2\xe7\x36\x83\xe9\x5e\x8d\x31\xcd\x04\x13\xe1\x21\x5c\x99\x95\xb6\x3f\x7c\xbd\xdf\x99\x21\x12\x49\x9e\x97\xc5\x3d\x76\x56\x99\x9c\xcd\xb0\x80\xd6\xd4\x27\xdb\x6b\x5c\x87\x63\x11\x5f\xbc\x9c\x8f\xc5\xc4\xc6\x1d\xf7\x30\x11\xa5\xbb\x4e\x97\xe4\x7a\xff\xd8\x66\xd4\x10\x8d\x50\x05\x68\x51\x4d\x69\xc5\x14\x16\xfd\xb6\x25\x8e\xbb\x2b\x63\xae\xa5\x96\xb6\x04\xa0\x72\xd9\xc8\x2c\x65\xbc\xf0\x33\xbb\xf8\x70\x75\xf9\xe6\xdd\xd5\x68\xb6\x5d\x1b\x74\x00\x0c\xc9\x44\x5e\x4a\xde\x9d\x52\x6a\x48\x4a\xaa\xb7\x27\x7c\x8e\xc7\xa2\x7e\xd0\x43\x60\x51\xdf\xb9\x83\x61\xf7\x20\x28\x9c\x68\x13\xae\x05\x30\xa0\x65\x29\x0b\x39\x89\xca\x2c\xfc\xb8\x13\xfe\x35\x06\x1f\x0c\xe9\x30\xa6\x54\x63\x92\x14\xab\xa7\x87\x11\x60\xf5\xd4\xed\x65\xb3\x61\x5e\x54\xd3\x51\xa1\x98\xcf\x74\xcf\x9e\x8c\x99\x5f\xd9\x48\x54\xaf\x00\x2a\x72\x55\x25\x9b\x02\x89\x25\xab\x66\x1c\x83\x09\x8f\xc9\xe5\x1f\xf8\x84\xba\x19\x7c\x83\x8c\x6f\x3a\xc1\x3a\xed\x68\x5c\x9f\x6d\x6a\x50\x56\x6c\xe8\x2b\x38\x8d\x79\x01\xd1\x52\x0d\x23\x11\x10\x87\x8e\xee\x9d\x66\xd7\x29\x89\xb1\x8f\x62\xb1\xac\xe1\x6d\x98\x62\xaf\x53\xc7\xcc\xd5\xdd\x15\x3f\x7d\xb9\x56\xab\x20\xa4\x13\xac\xc0\x54\xd9\xc4\xb1\x65\xc5\xe7\xbc\x60\x13\xa8\x5d\xcd\xc5\x44\x35\x49\x00\xad\x35\xb1\x63\x00\x08\x58\x63\x0d\x39\xf4\x06\xa5\x77\x60\x1b\xf4\x79\x8d\x10\xa8\xdf\x7f\xf3\x11\xaa\xca\x83\x21\xf2\xc0\x5a\x6b\x33\x9d\x4e\x42\x74\x08\x65\xf5\xfe\x88\xdf\x41\xd1\xb4\x33\xd7\xac\x03\xdc\x48\x4d\x22\xaa\xf2\x10\xe5\x53\xa2\x16\xb3\x82\x8b\xfb\x81\xaf\x08\x36\x96\x36\x17\x2a\x23\xe6\x07\x07\xce\x15\xa3\xc5\x63\x88\xc1\xde\x81\x80\xa4\x11\x02\x7d\x20\xf3\x01\x28\xef\xcd\x5d\xfd\x37\x87\x76\x50\x65\x93\x88\xc5\x23\x0c\xd4\xcf\x6e\x5b\xf9\x8c\x4e\xf6\xea\x99\x0a\x1d\xb6\xd0\xb6\x20\xdf\xbc\xbe\xf6\x85\xfd\x42\x7d\x09\xbe\x2b\x2b\x42\x2b\xcd\xc7\x34\xd3\xe7\xa4\xac\xa1\xfc\x0a\x14\x93\xb0\x64\xd6\xde\x8e\x0d\xf6\xf3\x8e\xe9\x7c\x6c\xa4\x57\xf0\x55\x52\xb2\x98\x9b\xfe\x35\x54\x71\x06\x71\xbb\x2e\xad\xf9\x1d\x23\x36\x6d\x35\x9f\x9b\xba\x28\x6e\x64\xc1\xb3\x85\xaf\x44\x80\x5a\x9f\xdc\xa0\xa2\x4e\x5c\x74\x59\x3c\xd0\x85\x7a\x15\xce\x9c\x50\x78\x46\xa8\xd6\x6c\x56\x22\xc8\x98\xe5\x2e\x67\x24\x6e\x14\x3f\x58\x21\xd7\x55\x42\x1f\x53\x5e\xf8\xbb\x5f\xdb\x07\x9d\xb8\x7c\x48\xde\xb3\x39\xab\xda\x33\x11\xe6\x11\x74\xa2\xda\xa3\xc3\xc6\x03\x37\x53\x2b\x10\xab\xb0\xf8\xc1\xca\x41\x75\xcc\x92\x8f\x97\xba\xc5\xc2\x21\x16\x26\xba\xa7\x7c\x3d\x7e\x2f\xf5\x0d\xbe\xdd\x9e\x39\xce\x79\x43\xff\xb4\x30\xdc\xd8\xc2\x8d\x63\x0e\x33\xe7\xea\xfe\x51\x93\xf5\xa1\xb7\xe1\x96\xc7\x03\x1d\x94\xca\xad\x30\xe3\x20\x40\x9e\x1d\xcd\x40\x1f\xfc\xe6\x4a\xff\x9b\x61\x2a\x66\x63\x9e\x07\x16\x08\xc3\x18\x67\xf6\x00\x25\xd4\x75\x53\xd2\xd7\x6a\x7c\x32\x39\x63\x84\xce\x29\x2f\xe8\x5d\x01\x9e\x10\xa6\x73\xdb\x57\x84\xe0\x7f\x09\xab\x02\xc3\xa6\x74\x37\xc4\x9c\xb5\x87\x4d\x3c\x7d\x9b\x1d\x26\xbc\x36\x38\x81\x42\x66\xf7\x21\xbf\x01\x25\xa8\x94\xab\x25\x0f\x37\x99\x2e\x08\xcd\x73\xa2\xf8\x44\x40\x0d\x63\xa1\x49\x41\x35\x13\xd9\x62\x44\x6c\xce\x65\x15\x94\x78\xd6\x15\xf7\x8e\xe7\x02\x0a\xac\x37\x65\x2d\xb3\x7b\x39\x1e\x2f\x95\x84\xb6\x16\x57\x8b\x28\x70\xf5\x54\x49\x81\x83\x33\xa5\xe8\x24\x0a\x51\x2c\xd7\x78\xc1\x9d\xb7\x59\x02\x1c\x3a\x72\x29\x00\x9c\x93\x4f\xe5\x62\x37\x9b\xd8\x4c\x0f\x6d\x55\x2d\x34\x9f\xb1\xa5\xf4\x98\x04\xd4\xc6\x2b\x2e\x06\x66\x28\x9b\x3f\x14\x22\x27\x6c\x24\xa6\xab\x9d\xc2\x73\x3b\xbf\x15\x13\xf3\x32\x42\x05\xc7\xb7\x98\xf5\x06\x78\x19\x60\xd1\x2d\x11\xaa\x30\xdb\xbc\x2c\x0d\x97\x72\x06\x81\xa0\xcd\x41\x7f\xff\xdb\x1f\x46\xf3\xd0\xb4\x01\x9f\x1b\xf2\x79\x6e\x66\x36\x63\xd5\xc4\x15\x07\x99\x51\xc1\xc7\x4c\x99\x53\x5f\x18\x10\xb1\xea\x43\xa8\x1e\xf4\x60\x80\x43\x01\xf9\x5d\x5a\x48\x27\x6e\xfb\xb8\xa4\x9a\x0c\x4e\xa9\x11\xcb\xce\x2a\x79\x6e\x8b\xd7\x8b\x21\xfb\xc4\xb2\x5a\xc3\x3d\x01\xe3\x3d\x39\x13\xd2\x3c\xeb\x34\x45\xde\xd6\x77\xc8\x70\xc1\x00\x4b\xd3\x75\xa5\xb2\x74\x70\x36\x9d\xbb\xa5\xea\x3b\xd3\x61\xe7\xc8\x1f\xa7\xae\xa4\x0a\xf4\xa8\x58\x56\x57\x5c\x2f\x0c\x4a\x63\x9f\xf4\x68\xac\xa0\xd8\xc4\x6b\xc8\xa3\x60\x09\xd6\x94\x2a\x22\xa4\xf5\x7b\xc4\x6b\xd1\x00\xac\x01\xa2\xa3\x47\x7d\x96\x9e\x9a\x1e\x82\x7f\xb3\xcb\x1e\x5b\xa4\x65\xa0\xae\x01\x6d\x35\x22\x37\x52\x29\x6e\xce\xdc\x27\xdf\x89\xf2\x5c\x7d\x36\x34\xdc\xb4\xcf\x8e\x8a\x13\x90\x54\x9e\x37\x1d\xef\x5e\x41\xc8\xdf\x23\x3c\x98\x71\x5e\x41\x06\x4b\x4d\x34\x9d\x2c\xd5\xb7\x90\x55\x6b\xd1\x4d\xa2\xe4\x3d\x9b\x34\xec\x1a\x0f\x71\x9b\x3e\x38\x81\x9b\x5c\x2f\x03\x4c\xdb\xd9\xdf\xa6\xce\x89\xd9\xc6\x2f\xd8\x94\xce\xd9\x5a\xc4\x5f\xca\x7c\xb4\x06\x57\x02\xb0\xc6\x74\x6d\x18\x75\xef\x53\xef\xd3\xb8\x28\xc5\x66\x90\x3d\x62\x03\xa9\x59\x47\x37\xef\x16\xa4\x90\x12\xb2\x01\xd4\x25\x11\x32\x67\x06\xcc\xc0\x43\x82\x16\x6a\x40\x6e\x2f\xed\x8b\x65\x30\x24\x66\xf6\x02\xae\xa8\x64\xd9\x9a\x17\x0e\x20\x6b\x07\x49\xab\x91\x50\xc6\x38\xb0\xb5\x5c\xe2\xa5\x8d\xe5\x68\xea\xa6\xd8\x6a\x12\x05\x9b\x33\xb0\xf1\x8d\xf9\x84\x60\xb6\xec\x99\xcd\x9f\xe6\x1c\x96\x64\x05\x39\x88\x2b\x9e\xc7\x08\xc8\xcb\x34\xdd\x1c\xc8\x83\xac\xee\x0b\x49\xf3\x20\x79\x8c\x22\x05\xbf\x67\xe4\x0d\x2b\x0b\xb9\xb0\x49\xcf\x44\x4e\x6e\x35\xd5\x6c\x5c\x17\xb7\x51\x1b\x19\x2b\xf3\xaa\x4c\xf1\xbd\xca\xbc\xa6\xc3\x25\x99\xf7\xfa\xf6\xf5\xed\xf5\xe7\xe2\x93\xba\x49\x87\x0c\x0b\x7b\x3a\xbb\x17\xff\xa9\xcb\xa0\x3c\x24\x45\xdd\xfd\x0e\x9a\xe8\x6f\x64\xa5\x69\xb1\x27\x86\x26\x9b\xd2\xf2\xb2\xd6\xd3\x37\x5c\x41\x21\x99\x54\xbe\x66\xe5\xfb\x20\x01\x0c\x03\x05\xb1\x65\x25\x09\x77\x80\x64\xdf\x7b\xfd\x6f\x97\x37\x84\xd6\xe6\xf0\x35\xcf\x80\x08\xee\x4d\x95\x1f\xae\xec\x16\x13\x23\xee\xb8\x2e\xfb\x75\xc7\xaa\xdc\x5b\x87\x5e\xd3\x53\x85\xcc\xf6\xde\xc7\x47\xf4\x3e\x06\x64\xb5\x4f\x2e\x8b\x0b\xae\x39\xd5\xb2\x3a\x94\xdb\x66\x6b\x00\xef\xcd\x51\x2b\x2d\x67\xf6\x82\x5c\xbb\x37\x20\x1e\x26\xd2\x38\xb0\xd2\x6d\xe3\x0c\x02\x26\x4b\xd8\xa8\x6b\xa1\x59\x35\xa6\x19\x5b\x4a\xc6\x30\x00\x4d\x13\x8e\xce\xdd\x3b\x11\xe3\xfe\xd9\xfa\x41\x41\xdd\xde\xe2\x2f\xaf\xfe\x1c\x38\x32\xff\xc5\xf3\x65\x56\xbf\x15\xb2\x60\x82\x65\x31\x5a\xaa\xb4\x93\xfb\x29\x15\x6f\xf1\x9f\xc4\x92\x43\x17\x6e\xc1\xff\xab\x69\x81\x5b\x17\x77\x00\x29\x93\x6c\x1d\xc3\x41\xe0\xab\x7d\xd0\x76\x7d\xfe\x54\x31\xc6\x0a\xf0\x09\xca\x89\xc2\x2e\x5a\x57\x54\x28\x73\x90\xa9\x12\xd2\xa9\xe5\x11\x4f\xc9\x99\xce\xca\x08\xff\xee\xa4\x68\x40\x1f\x09\x68\xff\xd1\xf1\x41\x7a\x2a\xa3\xa2\x16\x21\x17\x87\x9b\xf1\x11\xc1\xe1\x6b\x9f\xca\x28\x76\x55\x07\x71\x21\x87\xdb\x75\x10\x97\x1c\xdb\xb5\x87\x92\x70\xf1\xc8\x3a\x91\xaf\xb9\xd2\x98\x5c\x01\x5f\x86\xe0\x5a\x4c\x0b\x63\x38\xde\x1b\x23\x1a\xf0\xf2\xbf\x68\x9e\x57\xaf\x90\xca\x3b\x65\x77\x15\x13\x3b\x6d\xe4\x12\xed\x4b\xda\x39\x71\xe3\x4c\x2f\x4a\x5b\x3f\xfd\xe3\xeb\x1b\xe8\x4b\x91\x3f\xfd\xf1\x05\xb0\xc0\xff\xf2\xfb\x3f\xbe\x88\x06\xb3\xcf\x32\x7f\x0c\xf9\x27\xf4\x66\x3f\x46\xfe\x83\x56\x0e\x03\xc8\xc7\x6b\x78\xd0\x5b\x0c\xf7\x37\xe4\xc9\xa2\x42\xbc\x00\x06\xd6\x3c\x59\xdd\x8d\x53\xed\x83\xf0\xfb\x20\xfc\xa6\xf5\x41\xf8\xeb\x27\x16\x48\xea\x07\xf1\xf4\x08\xfa\x87\xf4\xa7\xab\x54\x0e\x09\xdc\xcd\xe7\x48\xe0\x3a\x0f\xb4\x1b\x5d\xa4\x6d\x69\x18\x66\x16\x97\xe9\xaa\x49\x0c\xf5\xe6\xfd\xed\x7f\x7d\x7d\xf9\xc5\xd5\xd7\xb0\x4e\x1b\xb7\x66\xc0\x9a\x8b\x03\x45\x57\xef\xe9\x12\xc5\xee\xf5\x7e\x1d\xe4\xc5\x92\x6b\xbc\x20\xef\xdf\xde\x26\x7a\xc5\xef\x77\x3b\x97\xe5\x6f\x31\x8e\xd9\xb7\xe3\x7a\xfc\x99\x97\x14\xab\xf6\x97\x35\xee\xa0\x8e\x81\x41\x85\xce\x96\x16\xc7\x9c\x34\xae\xe2\x08\x6a\x94\xae\x63\x24\x9f\x89\xf3\xb6\xd9\x34\xdc\xc8\x67\xe9\xb6\x7d\x98\x23\x89\xe5\x99\xab\xf4\xd4\x87\x91\x09\xc3\xaa\x20\x3f\xa2\x41\x48\x48\x22\x2a\x43\x3c\x0d\xd9\x64\x4a\x39\x82\xf1\xb9\x42\x75\xb9\xae\xc8\xc0\x3e\x51\xfd\xda\x01\x6c\x81\x01\x57\x21\x21\xf0\x8a\x6f\xd9\x64\xbb\xcc\x49\x1b\x0a\x48\x04\x46\x52\x20\x80\x25\xcd\x76\x89\xa1\xda\xb1\x02\xcd\x72\x51\x09\x48\xc3\x7e\x74\x62\x02\xa3\xee\x31\xdd\x89\xef\xef\x10\x17\xcd\x77\xbe\x9c\x8b\x94\xa6\x1c\x31\xa1\xca\xbb\xcc\xd5\x4d\xd5\x86\xd8\xa4\xa5\x4f\x0c\x03\xe4\x19\x52\xa2\xbf\x1d\x4c\x81\xb2\x6f\xe5\x49\x39\x95\x5a\x8a\x9d\x33\x36\xad\xfb\xbc\x8d\x97\x6e\xe0\x8d\xd7\x4d\x7d\x98\xe6\x88\x31\xd5\x84\x37\x83\x2f\x79\x7b\x5b\x93\x77\xdb\xe2\x7d\x74\xd6\x32\xbf\x7e\xb3\x27\x44\xd0\x27\xec\xc5\xf6\x4c\x4b\x1e\x98\x93\x4e\x3c\x1c\xf3\x89\xdb\xf5\xeb\x37\x96\x6f\x77\x59\xd6\x94\x85\x7c\xb2\x19\xf4\xf7\xc6\x8a\xc8\x4a\x3f\xc8\x2a\x3d\xc1\x78\xfb\xc3\xa5\x28\x3b\xfb\xdb\x4a\x1a\xc3\xe7\x78\x4d\x71\x8e\x9f\xc3\x55\xbd\x85\xab\x1a\xec\xf4\xb6\x2b\xfb\x5c\x6f\xec\xd3\xde\xd4\xa3\x50\xf0\x5f\x54\x76\x68\x77\x3d\x12\x77\xcc\x7d\x66\xd5\x72\xe6\xac\x1b\xec\x46\x41\x39\x1a\x60\x88\xbd\x61\xb3\x4a\xfe\x1d\x4a\xab\xa5\x20\x32\xf7\x0d\xda\xed\xc0\x72\x43\x8b\xc2\xec\xaa\x14\x4d\x01\x04\xd5\xb8\x6b\xa2\x6f\xe3\x8c\x96\xd6\x75\x33\x97\x0f\xe2\x81\x56\x39\xb9\xbc\xb9\xde\x0f\xf6\x4a\xc8\x54\x83\xb0\x16\x57\x6e\x6c\x87\x5c\x35\x4d\xf7\x10\xa1\x60\xcb\xd5\x31\x72\xc7\xb5\x6a\x95\xbd\x0c\x94\x20\x06\xb5\x7b\x37\x0d\x88\x91\x68\x6a\xaf\x25\x71\x12\x82\xc8\x4c\xd3\xc2\x5a\x57\xee\x98\x7e\x60\x4c\x90\x17\x2f\x5e\xa0\x66\xfb\xc5\xbf\xfe\xeb\xbf\x82\x6f\x31\xc9\x59\xc6\x67\xab\x2f\xc2\x5b\xff\xeb\xe5\xcb\x98\x41\xff\xfd\xf2\xdd\xd7\x84\x66\x20\x65\x60\x89\x11\x1c\x1b\x0e\x38\xec\x5e\x0d\xc8\xff\xbd\xfd\xe6\x7d\x53\x92\xae\xfd\x2b\xc0\x8f\xdf\xa2\x28\xee\xdc\xc6\xc7\x70\x88\x60\x6a\xb4\xd7\x54\x4f\x7d\x54\x08\x05\xdb\x57\x10\x3b\x64\xef\x7e\x94\xeb\x17\x64\x37\xe7\x93\x29\x6c\x2a\x17\x00\xbf\x05\xcf\x6c\x96\x20\xb4\x27\xb8\x22\x00\x18\x42\x8e\x61\x1f\x8e\xbc\x44\x8c\x61\x16\x3c\x40\x07\x5c\x1b\x4e\xd2\xd4\x2b\xae\x98\x32\xc2\x87\x2d\xd7\x89\xc3\x35\x30\x14\x55\xd5\xf2\x70\xee\x10\xf6\x72\x1f\x44\x93\x65\xf1\x86\xe5\xf2\x0a\xae\x74\x50\x91\xcf\xa2\x1d\x50\x1a\x92\x2b\x9a\x4d\x09\x13\x1a\x32\x20\xe1\x01\x9b\xd7\x23\x06\x99\x52\x91\x9b\x1b\x06\x29\xe2\x61\xc0\x27\xf2\x65\xd8\xc5\x3a\x7c\xe3\xf7\xa0\x15\x27\xd7\x60\x64\x5a\x48\x31\x09\xc1\xb4\x61\x4c\x82\x58\xa4\xc8\xea\x96\x57\x9f\x28\x64\x68\x30\x5b\x85\x0a\x44\x65\xe3\xa2\x54\x58\x68\x28\xa6\xb3\xc4\xb2\xd8\x69\x16\x79\x42\x32\x4c\xbc\xf1\xb1\xaa\x95\xfe\xa2\x36\x07\x1c\x5b\xd6\x70\xd7\x42\x92\xaf\x57\x46\x44\x63\xb8\xb5\x00\x81\x5e\x30\xcb\x98\x42\x50\xfe\x11\xc3\x2d\x74\xf3\xf6\x8f\xb8\x91\xd1\xe3\xc9\xf1\xba\x21\x5d\xd0\x24\x17\x06\xf7\xd3\x5a\xcb\x21\x54\x32\x76\xc9\x3a\x3a\xc3\x66\x9b\x76\x59\x94\x53\x3a\x80\x62\xa0\x9e\x89\x5d\x1d\x31\x00\xc0\xb0\x7c\x68\xc2\x38\x5b\x56\x61\x10\x9e\x35\xfd\x02\x64\x35\x45\x5f\x05\x9d\x31\x08\xf4\xc1\x89\x45\x0f\xb6\x54\x30\x4b\xf1\x89\x60\x15\xea\xed\x20\xfc\x93\x14\xf4\x8e\x15\x76\x28\x59\x25\x2c\xe3\x2b\x17\x54\xc5\x2a\x83\x3d\x15\xa1\x93\x09\xd4\xb5\x9f\x33\x1b\x3f\xcb\xff\xd1\x14\xea\x9a\x32\x72\x73\xf5\xce\x45\x11\x2b\x62\x18\x5b\xcd\x62\x52\xb7\x61\xf3\x89\x03\x0d\x68\x35\xb2\xc7\x88\x90\x2b\x25\x35\x94\x9f\x32\xfd\xdb\x23\x51\xbe\x00\x2e\xf8\x1d\x0e\x21\x5c\x38\x65\xcf\x9a\x60\x10\x8c\x34\x9e\x32\x9a\xbb\x90\x4b\xc3\x52\x96\x25\xcb\x47\x84\xbc\x36\x57\x74\xcc\x33\xaa\x31\xc0\x8f\xe4\x2c\xaf\x8d\xa8\x02\x39\x1b\xa3\x07\xfc\x38\x65\x44\x56\x39\xc3\xf2\xcd\x63\x70\xef\xf0\xdd\x06\xf4\x1d\xb2\xcf\x70\x33\xd2\x1d\xd7\x15\xad\x16\x48\x31\xed\x49\x44\x0f\x67\x70\x26\x96\xc0\x86\x5e\x61\x64\x88\xae\x21\x31\x59\xcc\x5c\xdb\xa1\xce\x7f\xac\x84\xdd\xb4\x28\x6b\xab\x6b\xa9\x38\xd3\x34\x00\xff\x5b\x0b\xfd\xf1\x9f\x3d\xa6\xfe\x2e\x21\x38\x1e\x88\x0c\xab\xc8\xc0\x07\x80\xeb\x6c\x6a\xe9\x7a\xfb\x8a\x12\x82\x92\x20\x4d\xa9\xaa\x4d\x5c\x60\x2e\x77\x48\xc0\xfb\x69\x33\x3d\x32\x0c\xb4\xae\x69\x51\x2c\x86\xec\x93\x21\x25\xe6\x12\x03\x0d\x85\xc4\x88\xae\x32\x38\xd3\x29\xf5\xd6\x09\x5e\xbe\xb2\xc2\x54\x03\x8a\x9c\xe0\x9a\x84\x84\xdc\x43\x27\xd8\x2d\x94\xf9\xae\x35\x3a\x45\x0d\xd6\x7f\x92\xb6\xce\x39\xab\x16\x76\x84\x84\x0f\x77\x00\x67\xb2\x23\xcc\x11\xb8\x83\x3a\x9b\x5e\x7d\x2a\x2b\x0c\x46\x49\xfc\x7a\x09\xfc\x96\x3b\xc3\x04\x3d\x8e\x7b\x6c\x83\x8f\xbb\x84\x80\xe1\xd0\xed\x28\x7c\x02\x58\xec\xf2\xfd\x9b\x14\xf4\x85\x2d\x85\x45\x6c\xb7\x68\x86\xb1\xdd\x1e\x73\x03\xb1\x5d\x6e\xd9\x1b\x9b\xe4\xc8\xfd\x82\xe9\x70\x5d\x9d\x25\x27\xd5\x51\x72\xcf\x2c\x12\x36\x92\x27\x28\xbb\xec\xcb\x3b\x4c\xa7\x62\x10\xe1\x8b\x21\xcb\x6c\x01\xdd\xe2\x48\xa9\x67\xb1\x33\x38\xbb\x89\xa4\xe2\xe9\xa6\x0d\xcd\xd4\x77\xfa\xce\x6d\x5f\xf2\xc7\xbb\xde\x41\x6c\xf7\x2c\x42\xb5\xb7\xae\xb5\xe0\xcf\x9c\x97\x93\xda\x00\xa6\xcc\x03\x1f\x35\xe5\xc1\x88\x42\x36\x5d\x45\xb4\x4c\x3f\x52\xb2\x5b\xa1\xf3\xb0\xb9\x2d\xde\xc3\x82\x77\xba\x70\xe1\x1c\xda\xfa\xff\x7b\xb6\x38\x55\x78\x03\x0c\x06\x9b\xf2\x12\x0b\x18\x19\xf2\x60\x24\xe0\x1d\xaf\x01\xb6\xef\x20\x91\x89\x1b\x18\x71\xdc\xb5\x18\x90\xf7\x52\x9b\xff\x5d\x7d\xe2\xca\x72\x7b\x6f\x24\x53\xef\xa5\x86\x27\x4f\x72\x42\xb8\xd0\xa7\x3c\x1f\xab\x93\xe2\xe0\xee\x07\xe8\x1c\x04\x07\x58\x90\x3b\x07\x97\x4d\xc2\x9f\x25\x57\xe4\x1a\x72\x49\xe3\x96\xee\x38\x34\x78\x74\xba\x6c\x19\x66\x60\x27\x63\x43\x16\x15\xeb\x5b\xbd\x3a\xb2\x3d\x3f\x59\xb5\x8e\x6f\xef\x93\xb0\x13\x00\xdd\x18\xfe\x02\xc9\xbd\xca\x82\x66\x2c\x77\x99\x8a\xa8\xd9\x29\xaa\xd9\xa4\xd3\xeb\x78\x53\x9b\xb1\x6a\x02\xaa\xbc\x2c\x2a\x63\xde\x9a\x05\xec\x4c\x88\xb1\xed\x48\x8e\xc3\xc1\x77\x06\xff\x47\xc6\xac\x1c\xb0\x33\xe0\xb1\xbe\x36\xa8\xfd\x71\xbc\xda\x0e\xf7\x32\x18\x1a\xb9\x92\x19\x2d\xcd\x9d\xfc\x6f\xc3\x7c\x00\xa8\xfe\x0f\x29\x29\xaf\xd4\x88\x5c\xba\x0c\x4a\xe1\x6f\x56\x7a\x0c\xba\xd9\x61\x0a\x25\xf8\x88\xfe\x54\xf3\x39\x2d\x6c\x6e\x06\x2a\x08\xc3\x0c\x53\x66\x36\xcb\x4c\xe8\x80\x3c\x4c\xa5\x42\x4e\xc6\x07\x64\x9c\xdc\xb3\xc5\xc9\x20\x49\x83\xe1\x5a\x78\xe3\x4f\xae\xc5\x49\xa3\x2d\x6e\xdd\x56\xcf\xa3\x81\x9f\xe5\x09\xfc\x76\xb2\x7f\x3e\x77\x27\xce\x6a\xd7\xc2\xb6\xeb\x26\x90\x7c\xc5\x1e\x13\x21\xd1\xb4\xf8\xd8\x1f\x6c\xfb\x10\x93\x1d\x4c\xaf\x51\x9c\xdd\x2d\x5c\x2e\x31\x2b\xa8\xae\xca\xb1\x49\x43\x82\xcc\x1b\xc8\xc7\x50\x55\x3e\x54\x11\xa4\x8b\x94\x89\x07\xe5\x92\xa4\x1c\x6b\x93\x0d\x3d\xad\x6a\x36\x20\xb9\x14\xa7\xda\xaa\xbb\xc2\x7c\x7b\xcb\x19\x8e\xf2\x35\xe7\x70\x16\x55\xcc\xbf\x69\xb4\x62\x90\x72\xc9\xe5\x0f\xb4\x1a\x06\xcc\xbd\x07\x9a\x4e\x48\x33\xe2\x5c\x0c\xd7\x0d\x19\x1f\xa2\x65\x87\xb4\x81\x5a\x42\x02\xee\x82\x8c\xce\xe1\xb0\xcd\xa1\x07\x83\xb7\xb5\xa7\x49\xe3\x6d\x03\x22\xc0\xe2\x4d\xe0\x18\xaa\x45\xfe\xc1\x2a\x99\x34\xc2\x1a\xd5\x51\x3a\x74\xc6\x59\xf4\x9b\x16\x17\x8a\xd0\xb4\x16\x68\x7e\x00\xf6\x7e\x6e\x0d\x95\x90\xb2\x31\xc8\x54\x51\x49\x3c\x1a\xf0\x79\x80\x1f\xee\x60\x55\x07\xbf\x72\xcd\x51\x3d\x53\x05\x60\xa0\xb5\x4f\xa3\x56\x1d\x5a\xbd\x8f\x53\xd6\x68\xe4\xe5\xd8\x16\x8a\x46\xa3\xc3\x63\x41\xd1\x67\x5f\xa8\x05\xa6\x32\x40\xab\xf8\x2e\xea\xf1\x1d\x8e\x15\xfd\x2d\xde\xd1\x72\x27\x2b\x98\xff\xba\x55\x11\x9c\xde\xc9\x5a\xbb\x04\x12\xf6\x77\x28\x07\xab\xa5\xb3\x3f\x1e\x4e\x75\xbe\x8b\x8e\x23\x99\x91\x7f\x0c\x48\xa3\x27\x4c\xdb\x0f\x6b\x40\x18\xcd\xa6\x86\x03\x1c\xa2\x9b\x85\xe1\x52\x1d\x3b\xfa\xc6\x6c\x1d\x32\x86\x72\x99\xc4\xa4\x01\x9f\x3f\x0d\x07\x72\x81\x7f\x8e\x33\x1b\x39\xb7\x42\x65\x5d\xd7\x2c\x73\x2a\x1a\x67\xf6\xa4\x31\x9d\x7a\xce\x65\xc5\xb5\xaa\x1f\x58\x25\xc8\xa8\x4b\xb5\x8c\x8c\xec\xc1\x72\xf3\x99\xbf\x18\x49\xe3\xad\x59\x51\x93\x5f\xc5\x60\x53\xeb\x57\x54\x8b\x95\x91\x0c\xc1\x4b\x1e\x0d\x93\x2d\x9a\x85\x50\xa7\xda\x0a\xf2\xb9\x40\x9a\x60\xae\xa0\x6b\x97\xe9\xd0\x9e\xaa\x3f\x8c\x34\xf1\x3b\x38\x22\xc5\x7c\x96\x5f\x56\x55\xb2\x32\x6b\x62\x4a\x11\x0e\xbb\x3c\xa3\xd5\x3d\xcb\x3d\x97\x34\x22\x37\x66\xf1\x4e\x46\x4f\x1a\xb3\x72\xd4\xc8\x65\x0b\x0e\xcb\x62\x99\x09\x9d\x8e\x46\xa7\x36\x79\xfe\x6a\x91\xac\x64\xec\x95\x2a\x90\xef\x20\x86\xb7\xee\xef\x3b\x5a\x2a\x54\x47\x18\xf6\x06\xd4\x91\x12\xaa\xd3\xe9\xa9\xb3\x29\xd2\x84\xa0\x8b\xe5\xe5\xec\x20\x00\xed\xaa\x56\xde\x45\xa5\x9c\x64\x38\xc4\xb6\xbb\x1a\x79\x27\x15\xf2\x26\xf5\xb1\x3d\x29\x7b\xe3\x77\xd5\xfc\xef\xa4\x81\x99\x45\xb9\x04\x2e\xb7\xc7\xab\x1d\xc1\xb5\x8b\x2b\xf2\x8d\x93\x7d\xe2\x1c\x06\xf5\xd4\xd6\x5e\xde\x45\x4f\xf6\x24\x1e\x83\xcb\xed\xe9\x3c\x08\x97\xdb\xf5\x18\x53\x49\xaf\x2d\xc1\x17\xba\x74\x7a\xb6\x2e\x32\x09\xeb\x72\x3b\x86\x6b\xe1\x72\x3b\xb0\xab\xe1\x72\x4b\x73\x3d\x5c\x6e\x29\xae\x88\xcb\x2d\x55\x3a\xc3\xf6\xf8\x0b\x1c\x16\x02\xab\x5a\x42\x9e\x65\xed\x80\xe5\x02\x51\xb7\x0c\x90\xdc\x4e\xf7\xd6\x12\x6a\xbc\xba\xf4\x4e\xc9\xa2\xd6\xf1\xd5\xc6\x36\x75\x17\xd2\x7d\x98\xb8\xd3\x6c\xa6\x12\xfb\xe5\x8e\x03\xbe\x01\xb8\x36\x24\xc7\xbb\xf5\xba\x0f\xcd\xdf\xee\x5a\xf0\x63\xaa\xfe\x1e\x93\x02\x08\xdb\xb1\x13\x01\x61\x3b\x72\x3a\x20\x37\xe8\x63\x92\x02\x61\x7b\xda\xd4\x40\xd8\x76\x04\xef\x94\x34\x41\xae\x3d\x5a\xcb\xea\x73\x59\xbb\x3a\xf7\x2e\xd7\x6c\x4b\x08\x82\xd4\x3d\x5a\xa1\x34\xe6\xec\x88\xb6\x70\xc7\x81\x55\x75\x8f\x57\xf7\xbb\x18\x95\xcb\x9b\xeb\x9d\xb4\x28\xc1\xf7\x1b\xf4\x28\xe1\x1b\xbf\x60\x4d\xca\x35\xaa\x46\x42\x9f\xac\x37\xcd\xca\x6d\x34\x64\x22\x6b\xf3\x34\x32\xe5\xca\xb4\xdf\x1a\xba\x1e\x66\xaf\x0c\xce\x59\x4b\x1b\xd2\xd3\x70\x00\x96\xca\xba\x0a\x2d\xe8\xcb\x9b\xe2\x04\x4e\x9e\x46\xfe\x3c\xa2\x2c\x09\xfb\x11\x95\x59\x70\xb9\xb5\x4e\xea\xb4\x29\xa8\x80\xca\x66\x54\x7c\x05\xda\xb6\x52\xe6\xaf\xd0\x48\x4a\x85\x90\x58\x24\x48\x0d\xd0\x50\xa1\x06\xd6\x0c\x13\x24\x6d\x10\x39\xa9\x79\x8e\x1e\xd0\x2e\xa4\x62\x74\xfa\x39\x39\xa6\xc1\xf2\x6f\x52\x8f\x92\x3c\xda\xc3\x8c\x96\xfc\x3b\x56\xc5\xe5\x35\x5f\xd7\x5a\x07\x6b\x7b\x72\xa7\xa8\xb2\x29\x9b\x51\xf8\xe7\x5b\xb7\x3c\x83\x6a\xac\x7f\x3d\xa8\xe5\x58\x35\x33\xac\xc7\xa0\x15\x65\x7a\x32\x7f\x99\xe4\x1f\xdb\xb4\x47\xba\x78\xf8\x53\xd8\xc3\x66\xdc\xb4\x44\x0c\x03\xdc\xa0\x29\x00\xe3\x8a\xcb\x3d\xe2\xd5\x96\x86\xca\xcc\x71\xf7\x9e\x60\xe1\xfb\x31\xbf\x63\x7b\x2a\x3d\xcd\xae\xfa\x99\x81\xe7\x7d\xda\xda\x96\x1d\xa6\xd0\xeb\x67\x7a\xfd\xcc\x3f\xb5\x7e\x26\x20\xec\x0e\xd7\xaf\x51\xbb\x84\x39\x32\x9d\xee\xa5\xc9\x84\x3f\x42\xed\xa7\x53\xa3\x38\x1d\x4a\x53\x5d\x0e\xcd\x1f\xa7\xa3\xd1\x29\x1a\x40\x46\x5e\x5d\x5a\xeb\xf1\xf0\x4f\x84\x89\x4c\xe6\xa6\x1f\xac\x13\x57\x29\x0d\xac\x65\x23\xb1\x87\x73\x99\xb9\xb1\x42\x13\x0a\xf4\xbd\x2b\xf7\xb0\x13\x0a\x76\x51\xf9\x6f\xf7\xc3\x60\xed\x84\x40\x1b\x56\xcc\x97\xe7\xb1\x5b\xe6\x2b\x16\x59\x9e\xac\xc9\x21\x50\xf0\x19\xb7\xde\xc9\x06\xbb\x30\xa5\xd3\xdd\xf7\x08\x39\xc3\x6e\x46\x59\x59\x0f\x6c\x97\xa3\x19\x9b\xc9\x6a\x31\xf0\xdd\x9a\x1f\x5b\xe3\xd8\x37\xce\x81\xe9\xcb\xea\xaa\x62\x42\x17\x8b\x80\xfd\xfb\x9c\xb8\x3f\xb7\xa3\x47\x66\xfe\xfc\xc1\xa6\xfa\x97\x34\xad\x7d\xff\x9b\x72\x74\xa0\x90\xf3\xbb\x02\x34\xc6\x26\x36\x1b\x34\xfa\x09\xf3\x94\x89\x39\x99\xd3\x4a\xa5\xdf\x37\xf2\x78\x7e\x2f\xe7\x73\xae\xf6\x12\x72\x70\x6b\x89\x1f\xea\x99\x65\xad\xcb\x5a\x5b\x74\xec\xae\x91\x2b\x4c\xe5\xaf\xcf\x12\xd3\xfb\x32\x5e\x45\x14\xb6\x92\x6a\xcd\x2a\xf1\x8a\xfc\xe7\xd9\x7f\xfc\xee\xe7\xe1\xf9\x5f\xcf\xce\xbe\x7f\x31\xfc\xdf\x3f\xfc\xee\xec\x3f\x46\xf0\x8f\xdf\x9e\xff\xf5\xfc\x67\xf7\xc7\xef\xce\xcf\xcf\xce\xbe\xff\xea\xdd\x97\x1f\x6f\xae\x7e\xe0\xe7\x3f\x7f\x2f\xea\xd9\x3d\xfe\xf5\xf3\xd9\xf7\xec\xea\x87\xc8\x4e\xce\xcf\xff\xfa\x9b\x9d\xa6\x4b\xc5\xe2\x9b\x1d\xf0\x1b\xb6\xe1\x23\xe9\x63\xbb\x97\x7d\x79\x82\x73\xa1\x87\xb2\x1a\x62\x77\xaf\xc0\x65\x71\x87\x4e\x1d\x58\xec\xe3\x1e\x36\x74\xb8\x29\xb5\xe6\x84\x8f\x27\xb8\x68\xfb\x92\x2f\xf6\x60\x2c\xc0\xac\x37\x3b\xe9\x0c\xf1\xd3\x0d\xea\x42\xfb\xe3\x2f\x58\x53\xf8\xd9\xf8\x5c\xd9\x92\x15\xbd\xc3\xd5\x93\x3b\x5c\xe1\x49\xf4\xde\x56\xcd\xe2\x7a\x6f\x2b\x68\xbd\xb7\x55\xd8\x7a\x6f\xab\xd6\xb8\xbd\xb7\x55\xaf\xcd\xeb\xb5\x79\x4f\xaf\xcd\xeb\xbd\xad\x7a\x6f\xab\xf5\xad\xf7\xb6\xea\x6e\xbd\xb7\xd5\x3f\x9b\xb7\x15\x82\xd8\x3a\x9f\x2b\x2b\x91\x36\x0e\x57\x9f\x9d\xbf\x95\x32\x87\x9c\xb1\xcb\x2c\x93\xb5\xd0\x1f\xe5\x3d\x8b\xf6\x17\x58\xd2\xa1\xac\xf4\x03\x55\xe7\x36\xe8\x54\x56\x5f\x3e\x9a\x82\xe5\x19\xe6\x83\xa3\x75\xce\x99\x48\xd3\x10\x3e\x06\xf5\xba\xf1\xc2\x3a\xc9\x22\x67\x79\xf3\x83\xc5\xcb\xda\x1c\xcd\x88\x5c\x92\x8a\x65\xbc\xe4\x36\xe9\x02\xc5\xe7\x49\x43\xc2\xbd\xb0\xa9\xb5\x17\xe6\xb6\xb0\x62\xec\xd1\xa3\x4f\xb9\x5d\x05\xfa\x07\x4b\xa9\x97\xa6\x94\x26\xc6\x9a\x69\x22\x1f\x08\x5c\xdf\x03\x57\x8c\xa8\xa9\xac\x8b\x9c\x54\xec\xef\x8e\xe5\xb4\xab\xfc\x18\x8e\x16\x2a\xf0\x53\x87\x0d\x96\x63\xf7\x91\x96\x3c\xbe\xfe\x93\x9f\xfd\x2e\xb8\x92\x7d\x2a\x79\x05\xf7\xed\x96\x65\x52\xe4\x47\x53\x0b\xae\x0c\xdc\x30\x8b\x60\xd7\xc3\x6c\x35\x3e\x37\xe7\x9c\x16\x3c\x37\xd4\xd7\xb9\x14\x21\x4a\x48\x03\x63\xc4\x1f\x1e\x4a\x55\x73\x9a\x84\x96\x65\x25\x69\x36\x65\x2a\x98\x19\x4a\x3c\xb6\x9a\x43\x6c\x4a\xf7\xb0\x95\x45\x3d\xe1\x02\x05\x24\xe8\xdf\xf1\x1b\x52\x3b\x97\x43\xbb\x90\xe5\xc9\x7d\x0c\x06\x36\x9f\x27\x0d\x8b\x0c\xa6\xae\x16\xe0\xc3\x28\xc3\xe1\x70\xb5\x7c\x1c\xfe\xa1\x88\x2c\x72\x57\x7b\xf3\x4f\x2f\x8c\x4c\x9d\xe1\xd5\x4d\x54\xf4\x2a\xc8\xcd\x69\x46\x2c\x0c\xb7\x6f\xc8\xdc\xe6\x81\x7e\xff\x07\x32\x95\x75\xa5\x46\x61\xdd\xb8\x97\xf0\x2c\xed\x54\x45\xde\x78\xee\x68\x52\x30\xaa\x34\x79\xf9\x82\xcc\xb8\xa8\xf5\x2e\xd9\x06\xd2\xa5\xb4\x40\x3e\xfb\xe3\x1f\xa2\xbf\x7b\x54\x96\x82\xc4\xdb\x16\x4a\x63\xf0\x6f\x2f\x92\x59\xbd\x31\x96\xcb\x2c\x25\x17\x7a\x59\x40\xb3\x14\x76\x37\x6c\x0a\x9a\xe9\x83\x61\xb1\x9d\xc5\x98\x9f\x6a\x79\xb7\xd0\x29\x75\x61\xec\x17\xed\x84\x70\xff\xcf\x3e\xdc\x63\xb1\xd1\x03\x54\x82\xa9\xd8\x84\x2b\x5d\x75\xe9\x4b\x87\x31\x18\x2e\x9e\x5d\x99\x54\xb2\x8e\xc8\x6c\x90\x0e\xd5\xd0\xb1\xd3\x1c\x38\x0b\x8e\x4d\xe2\x1d\x93\x9c\xc4\x55\x0d\x03\x53\x05\xf6\xd6\xf9\xd5\x73\x2b\xc5\xb2\xae\xac\xa7\x03\x46\x97\x41\xfe\x69\x4b\x7b\xa6\x88\x27\x0e\x40\x0f\xb3\x65\xd8\x77\xfb\xe2\xda\x64\x4d\xb2\x22\xb3\xba\xd0\xbc\x2c\x9a\xed\xfb\xe0\x3e\xb0\x94\x39\x46\x5c\x6d\xb8\x50\x1a\x18\x58\x28\x16\x80\xc2\x7a\xd8\x60\xe1\x3c\xf3\xa3\x31\xa1\xa1\x30\x06\x78\xaa\xb3\x92\x56\xd4\x9f\x52\x26\x67\x33\x1a\x95\xab\x08\x4d\x6e\x14\x9c\xb5\x10\xb7\x1b\xba\x5d\xd1\xa2\x59\x75\xe0\x6f\xb3\x4f\x20\xd7\x4c\x50\x11\x61\x3d\xdf\xa1\x0e\x39\xf4\x4c\xe4\x83\x0f\xc0\x98\xf0\x39\x13\xcb\xd0\x6d\xb9\xfd\x2f\x68\x76\xcf\x44\x8c\xd8\xfc\xad\x72\xfb\x9b\x2f\x04\x9d\xd9\xb2\xe2\x65\x25\xe7\xdc\x5c\x03\x96\x2f\x8d\xa0\x06\x56\xff\x82\xd9\xa7\x5d\xae\x7d\xe4\xe8\xf6\xb9\x95\xb5\x3a\x4c\xc1\x59\xd3\xef\xe3\xb1\xa4\x42\x43\x4b\xc5\xe7\x19\x73\x2c\xaa\xe9\x79\x9f\x3b\x30\x8f\xa8\xd1\x46\xd6\x17\x62\xb2\x09\x90\xf1\xbe\x01\xcd\xf5\xbe\x02\x98\x1a\xb4\x30\x38\x6f\xe1\xcb\xf6\x2c\x41\x91\xad\x59\xb0\xb7\x52\x5c\xd5\x5d\x4a\x85\xa6\xce\x63\xac\xee\xf2\x36\xda\xfa\x40\x73\xa9\xc8\x17\x90\xfe\xec\x0d\x03\xb9\x21\x8d\xf5\xd8\xa1\x72\x2d\xfb\x44\x67\x65\xc1\xd4\xe8\xfe\x4f\xa0\xf5\xb3\xd7\xe3\xa2\xba\xcb\x2f\x3e\x5c\x5d\xbe\x79\x77\x35\x9a\x6d\xbf\x80\x07\x60\x69\xf8\x8c\x4e\xba\xb8\xd1\x21\x99\x49\xc1\xb5\xac\xb6\x63\xbe\x67\x51\x02\x6f\x6b\xb5\x4a\xcb\x8f\x3b\xba\x6e\x8e\x77\x21\x6b\xf2\x40\x31\xc3\x65\x74\x25\xcb\x8f\xbc\x7c\x45\xae\x84\xaa\x2b\xd6\x64\x7d\x5e\x1e\xcc\xa0\xbb\x3d\x56\xc9\x43\xd8\x79\x75\xb4\xea\x96\x8f\x2e\x87\x5d\xdd\x75\x53\x93\x04\xdc\x06\x80\x7a\x08\x90\x81\x8e\xbd\xce\x04\xf0\x02\x3e\x8a\x4d\xc0\xb6\xeb\x55\xff\xf5\x54\x3e\x0c\xb5\x1c\xd6\x8a\x0d\x79\xb7\x12\x35\x61\xaf\xee\xd9\x02\x1c\x27\x0f\xb0\x5b\xb6\xeb\x96\x08\xac\x25\x68\xe0\xe1\xb9\x61\x93\x3e\x7c\xf1\xe6\x5b\x15\xa7\x72\x0b\x44\x88\x0b\xa6\xb3\x8b\x8c\x95\xd3\x0b\x3b\xc6\xe7\xb9\xf7\x81\xcd\x64\x65\x45\x1d\x9f\x3a\x2c\x7b\x88\x73\x73\x7d\x23\x9d\xcf\x64\x51\xd8\xb2\x46\x72\x4c\x5e\xb3\x72\xea\x5f\x78\x76\xbb\xbe\xe7\x32\x64\xc7\x51\x8b\x10\xa8\x9c\x2b\x23\x6c\x60\xe9\x47\x69\xfa\x6d\xe3\x2b\x78\x12\x8b\xae\x82\x2b\x57\xdd\xed\x4a\x08\x9e\xcf\x25\xeb\x26\x33\x4f\xa6\x47\xd8\x63\x65\xf6\x14\x85\xc1\x91\x0f\x2c\x4e\x33\x81\xde\xdc\x51\x81\x58\x3b\x14\x52\x74\x9d\x83\x2a\x2a\x70\x6f\xa0\xb5\x9e\x32\xa1\x79\x86\xe6\x0f\xeb\x52\x1e\xd2\x28\x72\x3d\x46\xd9\x35\x8f\xb2\x19\xcb\x39\xab\x2a\x9e\x33\x45\x12\x88\x54\xa8\x27\xe3\xc5\xb3\x3b\xc0\x48\x23\x6e\x9a\x7d\x35\xde\xa1\x65\x37\x6d\xfc\x63\x9c\x58\x8e\xed\xbe\x72\x64\xc7\x95\xc7\xb9\xac\x3c\xad\xb3\x4a\xb2\xe9\x35\xc5\x41\xe5\x31\x4e\x1b\x07\x55\x2e\xb5\x88\x39\x3c\xd9\x81\x98\xd3\x7c\xc6\xa3\x52\x1d\x3c\x6b\x72\x0e\xab\xd8\xf2\xba\xca\x68\xc1\xae\xbf\x49\x50\x0e\xd9\x2f\xda\xfa\x9f\x5b\xfb\xb0\x64\x95\xe2\x0a\x62\x4c\x9c\x6a\x4f\x6b\x9a\x4d\x6d\x06\x6b\xa7\xf4\x97\x02\xca\x2e\x22\xe8\x10\x21\xf3\x2e\x73\xe8\x01\x34\x35\x13\xaa\xd9\x43\x27\x27\x3c\x6c\x88\x61\xf7\x9b\xa0\x7e\xf8\xcc\x75\x3a\x29\x7a\x1b\xef\x97\xbe\xd2\xcb\x3e\x35\x35\xa3\x0d\x3a\x9a\xb4\xeb\x0c\xdf\xee\x4d\x9f\x8a\xcd\xdf\xb2\x4f\xe3\x2e\x74\x6c\xa1\x2d\xf1\x3c\xed\x57\xee\xac\x60\x13\x69\x9e\x57\x4c\x29\x47\xac\xdd\xcd\xbb\xbc\xb9\x26\x5f\xe2\xeb\x7b\x5d\x65\x59\x49\x8d\xa2\xed\x1b\x39\xa3\x3c\xc2\xa9\x6e\xb9\xd8\x7f\xeb\x73\xb7\x94\x90\xab\x74\x4b\xb8\xf1\xef\x12\xfb\xf2\x58\x56\x41\xca\xf8\xba\x62\x39\xb1\x6a\xb1\xbd\xae\xf1\x28\x12\xcd\x8a\xe4\x41\xce\xcc\x6f\x17\x50\xb0\xe1\x7c\xd4\x48\x37\x4b\xa2\x4f\x8c\x0c\xbe\x17\xe1\xe8\x19\x8a\x1f\x81\xcd\xc4\x85\x11\x36\x22\x87\x03\x1b\x20\xf0\xde\x35\x2e\xaa\x7f\xa1\x38\xf8\x98\x04\x5e\x9d\xb6\x36\x1a\x57\x4d\xa4\x20\x4a\x31\x03\xf2\xb5\x9c\x70\x57\x9f\xd2\x00\x27\x9e\x0d\x8d\x11\x3d\x7a\x89\xa0\x97\x08\x96\x5b\x2f\x11\xac\x6d\x4a\x15\x57\x82\xde\x15\x31\x0e\xcd\x6d\x86\xd4\x7f\x48\xde\x16\x74\x42\x18\xfc\x71\x91\x73\x65\xfe\x4f\x6e\x6f\xbf\x06\xcf\x85\x5a\x38\xb5\x05\x40\x80\xa5\x95\x3e\xc3\x05\xe2\xe4\xfd\x22\x49\x24\x55\xef\xa2\x22\x15\x77\x40\x93\x4d\xf7\x84\x8b\xdc\x15\x3c\x0f\xbc\xfa\xed\x1b\x80\x2d\xa9\x8f\x59\x46\xb7\xe1\x3b\x66\x6e\x69\x76\x7f\x13\x38\x1a\xc8\xca\x3c\x13\xc1\xa3\x44\x26\x2b\xf9\xeb\xdd\xd8\xad\xa5\x61\xe2\x8e\xe1\x26\x5d\x7d\x1c\x7c\xe9\xf8\x16\x47\x74\x6e\xed\xd6\xc2\x6f\x54\x29\x99\xf1\xc6\x51\x06\x2c\x39\x0d\x33\x93\x03\x33\xb3\xd7\xcd\x40\xfe\x39\x75\x39\xc8\xa0\xaf\xe1\xc0\x1c\xa0\xd8\x37\xa8\x0a\x39\x2e\x2e\xdc\xaa\xf7\xba\x04\x04\xc7\xb8\xbc\x3e\xe9\x97\xa3\xe9\x7d\x79\xbd\xfe\x22\x2c\xbb\x60\xb8\x94\x00\xf6\x84\x23\xa4\x39\xbb\xe6\x29\x45\x85\xc1\x0a\x14\x70\xe5\x2f\x1d\xa4\x38\xd9\xdb\xfe\xc5\xe4\x08\x49\xdb\x33\xcb\x57\xb5\x7d\xd1\xf0\x99\x75\xdb\x00\xac\x51\xca\xb2\x2e\xd0\x65\xdb\x2f\x6e\x07\xd7\x8d\x14\xbb\x37\xce\x62\x3f\xda\x81\x78\x0e\x2b\x08\x23\x3e\x04\x78\x86\x51\xca\xe9\xc1\xe4\x0e\x62\x41\xea\x36\x12\xb6\xed\x2e\x49\x66\x3f\x66\x2c\xf9\xbe\x62\xc7\x63\xb4\x1b\xad\xe8\xf2\x96\xd4\xf5\xe2\x8f\x7f\xf8\x43\x14\x41\xe3\x15\x14\x1a\xe4\x50\x87\x0d\xb2\x4f\x78\xdb\x3c\xad\x18\x48\x07\x18\xe8\xed\xf4\x1b\xe8\x8a\xa7\x23\xed\x17\xc7\x08\x2b\x3f\x70\x18\x79\x5a\x40\x42\x4a\x98\x78\xa4\xe1\x79\x07\xbf\x14\x48\xf7\x73\x7d\xb4\x74\x3f\x47\x4a\xf2\x73\x9c\xd4\x3e\xc7\x48\xe8\x73\x94\x34\x3e\xc7\x4b\xde\x73\xe0\x94\x3d\x07\x71\xe6\x38\x64\x52\x9e\xc4\x08\xd7\xb4\xe8\xd6\xf8\xb4\x3b\xd1\x31\xb0\xa9\xf1\xaf\x09\x89\x75\xf6\x9b\x4e\x27\x59\xa2\x4f\x49\x9d\xb3\x6b\x6c\xd7\xf1\xd2\xe4\x3c\x61\x72\x9c\xa7\x4e\x89\x73\xe0\x44\x38\xc7\x4b\x7f\x73\x94\xa4\x37\xbb\x04\x51\xa6\x27\xb8\x49\x09\x9e\xdc\xf5\x72\x1d\x3c\x85\xcd\x5e\x12\xd7\xec\x39\x5d\xcd\xfe\x92\xd4\x1c\xcf\x65\x31\x3e\x75\xc7\xa3\x13\x76\xa4\x57\x48\x4a\xb7\xf7\x1c\x4a\x59\xd3\xf4\xbe\x56\x39\xe5\xb2\x9a\xba\xc2\x2b\xa7\x2a\xa8\xac\xa2\xa5\xc1\x6a\x47\xf0\xbf\x8f\xd0\x43\x90\x04\x0d\x0e\xf6\x2e\x3b\x98\x8b\x75\xea\xc8\x6f\x6e\x97\x7c\x2f\xfc\xe3\xa7\x71\xb9\xe8\x7d\x1a\xf6\xe7\xd3\xb0\xff\xb8\x93\xe7\x66\x06\xcf\x7b\x33\x78\xb2\x19\x5c\xb5\x52\xb7\x3b\xb5\x2c\x20\x3e\x60\x1d\xe5\x5d\x58\x17\xac\xc1\x07\x97\x37\xd7\x11\xe3\x64\x15\x83\x3c\x2f\xb4\x50\xa3\x75\x3c\xa5\x33\x90\x59\x5e\xd5\xf1\x92\x54\x6b\x36\x2b\xa3\xea\x18\xf4\x56\xf0\xde\x0a\xbe\xdc\x7a\x2b\xf8\xda\x76\x6c\xab\xd8\xb4\x9e\x51\x31\x34\x18\x18\x8c\xe5\x2d\xb7\xac\x25\xbe\x62\x44\x2c\x26\x8d\xbc\x96\x98\x43\x00\xb2\x3a\xd4\x82\xff\x54\xb3\x46\x6b\xe4\xd9\xb7\x03\x59\x14\xa1\xef\xc3\x6e\x20\x72\x9f\x4b\x98\x39\x93\x2b\x51\xb1\x76\xcd\x7e\x33\x1d\x8a\x8d\xdd\x44\x18\xa6\xa5\x08\xd5\x53\x86\xac\xf0\xcd\x12\x2b\xdc\x92\xf2\x2d\xfa\x01\x9c\x10\xab\x4b\x0e\x19\x44\x03\x08\x66\x3d\x36\x53\xd3\x1d\x23\x33\x5e\x55\xb2\xb2\xd6\xcd\x70\x49\xe8\xa6\xc7\x27\x53\xcd\x2a\x94\xaf\xd1\x51\x2a\x06\x15\xdc\x32\x6d\xa1\x0a\xa0\x52\x4b\x42\x05\xc6\xbe\x9b\x7f\xbb\xf0\x10\x58\xae\xa3\x43\x77\x6c\x4a\xe7\x5c\xd6\x51\x01\x91\xb7\x48\x29\x4f\xec\xc7\xc0\x3f\x2d\x64\xed\xed\x38\xb5\x32\x0b\xf4\x7b\xa8\x56\xcf\x2b\x62\x90\xf7\xcd\xe7\xa0\x06\xc9\xa5\x53\x52\x0f\xd9\x27\xae\xf4\xea\x8e\xb9\xa3\x72\x25\xa5\xf6\x75\x0d\xe6\xaa\x34\x58\xfc\xbb\x88\xc4\x05\xed\xa4\x05\xe1\x77\x6d\xf1\x62\x7e\x0b\x3f\x75\x09\x17\x36\x27\x18\x66\x16\x21\x33\x9a\x4d\xb9\x38\x7a\x42\x21\x9c\x63\x67\x91\xca\xe7\x25\xb1\xf4\xd2\x4a\xd3\x52\x5c\x60\x9c\x73\x4e\xc1\xb3\xc5\xf5\x9b\x5d\x5d\x7b\xf0\x6b\x47\x0e\x95\x77\xeb\x31\xcf\xc9\x17\x54\xb1\x9c\xbc\xa3\x82\x4e\x50\x65\x75\x76\x7b\xf3\xc5\xbb\x73\x03\x40\xa0\x62\xbb\x7e\xb3\xd6\xf7\xe7\x36\xec\xfc\xfd\x3e\xf3\x78\xac\x2c\x7c\x07\x4e\x61\xe5\xfb\x1d\x17\xbf\xd7\x04\x25\xc4\x13\xd7\xb8\xe2\xa6\x6b\x52\xae\xdc\x2c\xa7\x92\x43\xc7\x1c\x97\xc3\x52\x2d\x63\xb2\xf9\x2c\xbf\x7f\xdc\xf4\xb9\xe1\xad\x8b\xe2\xa6\xa0\xe2\xb2\x2c\x2b\x39\x5f\xaf\xe9\x8b\x41\x0e\xee\x7b\xb7\x00\x74\x6a\x76\x0f\x4b\x3c\x11\xf0\xe3\x13\xc8\xd2\xe3\xb0\xeb\xf7\xff\x5a\x7b\x65\xa0\x14\xc0\x90\x9c\x5c\xd6\x5a\xce\xa8\xe6\xd9\x09\x91\x15\x39\x79\x47\x45\x4d\x8b\xb5\xf1\x10\x5b\x57\xbc\x49\xdc\xda\xfa\xd1\xe6\xaa\x51\x11\x9f\x6d\x65\xe7\xb6\x7f\xaf\x69\x65\x50\xdd\xeb\xdb\xef\x92\xbe\x55\x9a\xea\x7a\x85\x32\x6c\xa1\x56\x9b\xe9\xd3\x90\x14\x54\xe9\x6f\xcb\xdc\xe0\x87\xa5\x5f\xb7\x11\xa1\x8c\x6a\x5a\xc8\xc9\xbf\x31\x5a\xac\xbf\x0c\x31\x20\xf5\x3a\xec\xc4\x69\xe1\xad\x17\x63\x7d\xe7\xbf\x3f\x55\xc4\x08\x56\x06\x4a\xb8\x56\xa4\x62\x05\x9b\x53\xa1\xdd\xe7\xb7\x58\x09\xee\xd4\x6e\xcb\x46\x80\xe3\x8d\x5d\x2f\x67\x9a\x55\x33\x2e\xda\xe3\xdc\xc2\xf7\xaf\xa5\xc8\x39\x5a\x8c\xc0\x72\x81\x5f\xb4\xc7\xda\x0c\x95\x9b\xcc\xdd\x5b\x0c\xdc\xed\x1a\x78\xc1\x7c\xda\xdb\x83\xaf\xdd\x59\x46\x7e\x8a\x0f\xc1\x5b\xb0\x35\xb7\x95\xdd\x23\xf7\xc2\xf0\xd7\x90\x12\x7a\xfd\xde\x74\xb2\x39\x5d\xec\xcd\xd0\x81\x03\x4e\x61\x73\x24\xda\xd0\xce\x7b\x93\x21\x7c\x1b\x34\x62\xeb\x66\x8c\x96\xa7\xb2\x19\x53\xb7\x36\xfe\xf5\xd2\x67\x98\x36\xc3\xfb\xd3\xa0\x67\x41\xeb\xa5\xcd\x94\x25\x8a\x6f\x8c\x63\xf1\x62\x6b\x8b\xb7\xd6\x12\x54\xc2\x4e\xd3\x0c\x45\x92\xc2\xc8\x12\xdf\x69\x2c\xe7\xb5\x0d\xa6\xa9\xac\x3c\x47\x49\xc9\x19\x26\xa3\xa6\xc2\x6e\x26\xd0\x33\x46\x73\xfb\xd0\xd0\x4d\x23\xc0\xc3\x6f\x03\xeb\xe5\x16\xc5\xa0\xa0\xaf\xa8\xb3\xfb\x51\xcc\x91\x0c\x16\xf0\x8b\x2f\xa5\xd5\x88\xd9\x94\x6f\x06\xab\x00\x77\x31\x20\xaa\xce\xa6\x84\x2a\xb3\x30\x73\x1d\x0c\xbe\x60\xa3\x19\x15\x7c\xcc\x94\x1e\xf9\x4a\xa0\xea\xfb\xdf\xff\xd0\xc5\x76\xbc\x95\x15\xb1\x31\xb8\x03\x97\xea\xd7\xae\xb1\x81\x39\xae\x70\x23\x7c\xcf\x8d\x7e\xa2\x94\xb9\x5d\xf0\x03\x2c\x45\xd3\x7b\x43\x4a\x71\x29\x35\x03\x4b\x75\x17\x8f\x72\x62\xd8\xde\x60\xda\xff\x6d\x68\xe7\xff\x9c\x90\xb3\x07\x60\x42\x4e\xcc\x9f\x27\x38\x1d\x1f\xdd\x14\xaa\x5f\x9a\x69\x61\x4a\xac\x8a\x4f\x26\xac\xea\xb4\xeb\x41\x1d\xcf\x39\x13\xfa\xdc\xa6\x39\x16\x32\xe8\xca\xf9\x96\x35\xda\x84\xe5\x69\x7e\xff\xfb\x1f\x4e\xc8\x59\x7b\x4f\x3a\x86\xe4\x22\x67\x9f\xc8\xef\xd1\x42\xc7\x95\xd9\xbd\xf3\x11\xaa\x1f\xd4\x42\x68\xfa\xc9\x8c\x98\x4d\xa5\x62\x02\xd5\x41\x5a\x92\x29\x9d\x33\xa2\xe4\x8c\x91\x07\x56\x14\x43\x6b\xb3\x24\x0f\x74\xd1\x9d\xdd\xd9\x1d\x21\xa4\xb2\x24\x25\xad\x74\x0b\x8c\xf7\x72\x09\xef\xb9\xd8\x6b\xc6\xbc\xaf\xb8\x58\x76\x23\xec\x14\xf0\xd6\xa8\x48\x27\x5c\xbb\x98\x72\x1b\xd3\xa2\x17\x17\xe6\xb0\x2a\x7e\x57\x6b\x59\xa9\x8b\x9c\xcd\x59\x71\xa1\xf8\x64\x48\xab\x6c\xca\x35\xcb\x74\x5d\xb1\x0b\x5a\xf2\x61\x26\x85\x01\x0c\xc8\xad\x3a\xcb\x7f\x6d\x76\x42\x0d\xcd\x42\xb7\xeb\x4c\x23\x77\xac\x5b\x13\x9f\xb6\x63\xbb\x68\xde\x9f\x46\xa9\x9c\xb0\x41\x11\x8a\xc9\xf4\x5d\x42\xed\xdf\x93\x6f\x15\x28\xc0\x2e\xf6\xb1\x53\xae\x24\x6c\x3a\x6d\xee\xdc\x2f\x5b\x05\x39\x5b\x1e\xc3\xe0\x24\xf4\x30\x05\x14\xd6\xa2\x12\x33\x9a\x23\x19\xa1\xa2\x33\xb6\xfa\xc0\x77\xd6\x9c\x07\x54\x12\xcf\x16\x43\xe8\x42\x16\x43\x2a\x72\xf3\x6f\xcc\xbb\x90\x6d\xf7\x82\x8c\x3c\x80\x9a\xef\x15\xf9\x7d\x7b\xfd\xe6\xe9\xc1\xf3\xe2\xd7\x35\xdf\x07\xa6\xdb\xc5\xba\x63\xf9\xf2\x48\x66\x19\x45\x12\xf4\x0a\xad\x6a\xe6\x18\x98\xb6\x20\xc2\x95\xeb\xf5\xff\x58\x3b\xba\xaf\x0c\xd2\xc5\x3a\x6f\xb7\x6d\x07\x32\x42\xe4\x7c\xbf\x6e\xbe\x08\x55\xc7\xe0\x6d\x4e\x95\xb6\xb5\x17\x5c\x5e\xcf\xd6\x32\x9c\x70\x3a\xa5\x62\xb2\x85\xb5\x89\x3a\x18\xe7\xab\x67\x26\x32\x5c\x9b\xce\x3e\xf3\xc2\x67\xa7\x4c\x1d\xc8\xa9\x20\xaa\x14\x5c\xf9\xfa\x03\x46\x6c\x55\x9a\xd0\x39\xe5\x05\x58\xcd\xe4\x9d\x62\xd5\x9c\xe2\xeb\x58\x1d\x88\x2e\xcb\xd8\x78\x6d\x35\x32\xbc\x47\x92\x70\xdd\x1a\x56\x4f\x65\xdb\x02\x40\xea\x5d\x9a\xfd\xc6\x59\xef\x45\xbe\x45\xd5\xc2\xc6\x9f\xcd\x08\x3b\x8a\xab\x06\xfe\xfe\x8d\xd1\x4a\xdf\x31\xaa\x3f\xf2\x6d\x1c\xca\x0a\x48\xb7\xbe\x73\x7a\xb9\x06\xa0\x1f\x18\x99\x48\x6d\xd8\xce\x1a\x60\x1f\xe5\x03\xcc\x09\xee\x01\xed\xd0\x10\xdd\xac\xf2\x63\x45\x21\xab\x81\x14\x89\xcb\x6c\x7f\xb8\xba\x4e\x2b\x8b\x58\x48\xd2\xf8\x36\x19\x57\x72\x06\xca\x45\x3c\x3b\x34\xdc\x6d\x4f\xc0\xb0\xd7\x25\xcf\x98\x52\x5b\x13\xd8\xb6\x43\x19\xf0\x6d\xbc\xca\x4b\x26\xef\x99\xfb\x0d\x43\xa8\x8d\x50\x91\x33\x4d\x79\xe1\xae\x32\x6e\x85\xdf\xa5\x2e\xec\xba\x75\x81\x15\xa3\x6a\x1b\x43\xd3\x9a\xf5\x07\x78\x19\x27\x2d\x05\x1b\x3e\xc8\x2a\x27\xaf\xe9\x8c\x15\xaf\xa9\x62\xb6\xaf\x30\x47\x0a\x9e\xd1\xa9\xda\xeb\x94\xd7\xab\x43\x37\x4c\x19\x95\x7c\x8d\x41\x01\xfe\x6a\x04\x5a\x9c\xe0\xc0\x69\xa5\x3f\x56\x35\x1b\x90\xb7\x86\x7a\x0d\xc8\xb7\xe2\x5e\xc8\x87\xc7\xcd\x55\x6f\x35\xd6\xb5\x66\x1a\xfa\x0b\xba\x64\xd6\x2d\xc5\x9e\x9f\xee\x8e\x33\xb2\x08\x7f\x83\xf6\xb9\x4d\x6c\xfc\xab\x6e\x46\xe6\x9f\x2b\xaa\x46\x23\x5a\x57\x72\x52\x31\xa5\x50\x8b\x93\xac\xbe\x0f\x0c\x16\x5f\x32\x61\xf3\x99\x74\x4e\xef\x7a\xdd\x57\x6e\xa6\x8e\xae\x4d\x9a\x5f\xec\x79\xdb\xc1\xca\x62\x2d\xab\xb1\xdd\x1b\x3f\x98\xe8\x06\x25\xe3\xa6\x19\xae\x57\x2e\x06\x54\x2f\x78\x17\x99\x92\x6d\x9a\x71\xb7\xba\xd7\xb7\xdf\x6d\xde\xec\x8d\xb4\xaf\x8b\x3e\x75\xab\x1f\x1f\xab\x78\xec\xbc\x33\x9d\xca\xc6\x58\x4e\xff\x38\x0a\xc6\xa7\x54\x2d\x3e\xad\x52\xf1\xe8\xea\xc4\xa3\x2a\x12\x8f\xa7\x42\xdc\x51\x79\xd8\x79\x91\xb6\x29\x0c\x63\xef\x50\x9a\x92\xf0\xc9\xd5\x83\x9d\x7b\xb2\x4d\x25\x18\xbb\x27\x69\x6a\xc0\x63\x2b\x00\xa3\xb6\x60\xab\xd2\x2f\x65\x1f\x12\x15\x7d\x47\x56\xf1\x75\xee\x45\xa4\x5a\x2f\x76\x47\x0e\xa7\xca\x7b\xb6\x4a\xbc\xce\x2d\xde\xa2\xb8\x8b\xdd\xd6\x24\x65\xdd\x91\xd5\x74\x1d\xeb\x4f\x53\xcd\x59\x1e\x93\xe5\x31\x2c\xfa\x75\xf0\x72\xc8\xa4\x5b\x06\x11\x1c\xe0\xec\x1b\xce\xe1\x2e\x64\x25\x77\xe5\xd4\x0d\xf3\xbc\xab\xff\x87\x9d\x72\x3c\x37\x6c\x59\x78\x96\x7b\x99\xb2\x6b\x09\x84\xbc\xb9\xba\xf9\x70\xf5\xfa\xf2\xe3\xd5\x9b\x65\x2e\x3c\x9d\x5d\xde\xae\x28\x1a\x06\xec\xf2\x86\x17\x0c\xb1\xda\xf0\x93\x81\xad\x0d\x3f\xd5\x35\x5f\xf7\xd5\xe3\x99\xf7\x47\xf1\x0c\x8f\x22\xae\xdd\x78\x62\x4f\x88\x02\x60\x0b\xbd\x56\x0d\x57\x39\x95\x45\xae\x9c\xb7\xff\xf5\x1b\x1f\xfc\xce\x45\x56\xd4\xb9\x61\xb9\xbe\xfd\xf6\xfa\x8d\x1a\x11\xf2\x05\xcb\x68\xad\x0c\xeb\xb6\x59\x5c\x97\xe2\x54\x93\x6f\xde\x7f\xfd\xef\x10\xe8\x04\x5f\x0e\x7c\x8a\x4e\xa8\xa1\xc6\x29\x96\x81\x83\x85\x42\xaf\xc8\xd6\xc1\x8c\x32\x5a\x1a\x0c\xbc\x59\xe5\xcf\x31\x63\x0a\x15\x39\x99\xb2\xa2\x34\xd4\xe1\x9e\x91\xa6\x0a\x95\x19\x10\x7e\xc5\x68\x06\xeb\xd5\x3d\x61\x1a\x03\xe1\xb7\x39\x6e\x6f\x3d\x80\x0e\x0d\xfb\x23\x74\xeb\x2d\x75\x81\xd5\xbe\x3c\x50\x65\x35\x94\x6b\x67\xdb\x01\x2a\xdd\xfa\xb8\xcd\x2a\xad\x0d\xca\x2c\xa4\x2c\xf0\xd7\xca\x9c\xcd\x64\x1b\xbd\x15\x3a\x87\x71\x1d\xad\x3d\xdf\xec\x09\xb8\xbe\xa4\xee\x8a\xee\x8a\x2d\x6f\x72\x6b\x60\x1f\x19\x13\x4c\x39\x6e\x2e\x50\x34\x3d\x7f\x05\xf6\x1c\xf7\x08\xbd\x6d\xdb\xcf\xea\x3b\xc7\xcc\x04\x58\xc7\x6a\xe0\xc8\x7f\xff\xcf\xaf\xfe\xff\x00\x00\x00\xff\xff\xda\x4b\x80\x9b\xdc\x78\x03\x00") func operatorsCoreosCom_subscriptionsYamlBytes() ([]byte, error) { return bindataRead( diff --git a/vendor/github.com/operator-framework/api/pkg/constraints/cel.go b/vendor/github.com/operator-framework/api/pkg/constraints/cel.go index 1fb10b5dd2..574cf0c803 100644 --- a/vendor/github.com/operator-framework/api/pkg/constraints/cel.go +++ b/vendor/github.com/operator-framework/api/pkg/constraints/cel.go @@ -29,8 +29,8 @@ func NewCelEnvironment() *CelEnvironment { decls.NewVar(PropertiesKey, decls.NewListType(decls.NewMapType(decls.String, decls.Any)))), cel.Lib(semverLib{}), ) - // If an error occurs here, it means the CEL enviroment is unable to load - // configuration for custom libraries propertly. Hence, the CEL enviroment is + // If an error occurs here, it means the CEL environment is unable to load + // configuration for custom libraries properly. Hence, the CEL environment is // unusable. Panic here will cause the program to fail immediately to prevent // cascading failures later on when this CEL env is in use. if err != nil { @@ -41,7 +41,7 @@ func NewCelEnvironment() *CelEnvironment { } } -// CelEnvironment is a struct that encapsulates CEL custom program enviroment +// CelEnvironment is a struct that encapsulates CEL custom program environment type CelEnvironment struct { env *cel.Env } diff --git a/vendor/github.com/operator-framework/operator-registry/alpha/model/model.go b/vendor/github.com/operator-framework/operator-registry/alpha/model/model.go index fe73a3c4ca..d570f93c3e 100644 --- a/vendor/github.com/operator-framework/operator-registry/alpha/model/model.go +++ b/vendor/github.com/operator-framework/operator-registry/alpha/model/model.go @@ -11,6 +11,7 @@ import ( "github.com/h2non/filetype/matchers" "github.com/h2non/filetype/types" svg "github.com/h2non/go-is-svg" + "golang.org/x/exp/maps" "k8s.io/apimachinery/pkg/util/sets" "github.com/operator-framework/operator-registry/alpha/property" @@ -86,6 +87,10 @@ func (m *Package) Validate() error { } } + if err := m.validateUniqueBundleVersions(); err != nil { + result.subErrors = append(result.subErrors, err) + } + if m.DefaultChannel != nil && !foundDefault { result.subErrors = append(result.subErrors, fmt.Errorf("default channel %q not found in channels list", m.DefaultChannel.Name)) } @@ -97,6 +102,36 @@ func (m *Package) Validate() error { return result.orNil() } +func (m *Package) validateUniqueBundleVersions() error { + versionsMap := map[string]semver.Version{} + bundlesWithVersion := map[string]sets.Set[string]{} + for _, ch := range m.Channels { + for _, b := range ch.Bundles { + versionsMap[b.Version.String()] = b.Version + if bundlesWithVersion[b.Version.String()] == nil { + bundlesWithVersion[b.Version.String()] = sets.New[string]() + } + bundlesWithVersion[b.Version.String()].Insert(b.Name) + } + } + + versionsSlice := maps.Values(versionsMap) + semver.Sort(versionsSlice) + + var errs []error + for _, v := range versionsSlice { + bundles := sets.List(bundlesWithVersion[v.String()]) + if len(bundles) > 1 { + errs = append(errs, fmt.Errorf("{%s: [%s]}", v, strings.Join(bundles, ", "))) + } + } + + if len(errs) > 0 { + return fmt.Errorf("duplicate versions found in bundles: %v", errs) + } + return nil +} + type Icon struct { Data []byte `json:"base64data"` MediaType string `json:"mediatype"` diff --git a/vendor/github.com/operator-framework/operator-registry/pkg/api/api_to_model.go b/vendor/github.com/operator-framework/operator-registry/pkg/api/api_to_model.go index b478d7af0e..5c0cb603aa 100644 --- a/vendor/github.com/operator-framework/operator-registry/pkg/api/api_to_model.go +++ b/vendor/github.com/operator-framework/operator-registry/pkg/api/api_to_model.go @@ -5,6 +5,8 @@ import ( "fmt" "sort" + "github.com/blang/semver/v4" + "github.com/operator-framework/operator-registry/alpha/model" "github.com/operator-framework/operator-registry/alpha/property" ) @@ -20,6 +22,11 @@ func ConvertAPIBundleToModelBundle(b *Bundle) (*model.Bundle, error) { return nil, fmt.Errorf("get related iamges: %v", err) } + vers, err := semver.Parse(b.Version) + if err != nil { + return nil, fmt.Errorf("parse version %q: %v", b.Version, err) + } + return &model.Bundle{ Name: b.CsvName, Image: b.BundlePath, @@ -30,6 +37,7 @@ func ConvertAPIBundleToModelBundle(b *Bundle) (*model.Bundle, error) { Objects: b.Object, Properties: bundleProps, RelatedImages: relatedImages, + Version: vers, }, nil } diff --git a/vendor/go.etcd.io/bbolt/.go-version b/vendor/go.etcd.io/bbolt/.go-version index f124bfa155..013173af5e 100644 --- a/vendor/go.etcd.io/bbolt/.go-version +++ b/vendor/go.etcd.io/bbolt/.go-version @@ -1 +1 @@ -1.21.9 +1.22.6 diff --git a/vendor/go.etcd.io/bbolt/Makefile b/vendor/go.etcd.io/bbolt/Makefile index 18154c6388..2140779741 100644 --- a/vendor/go.etcd.io/bbolt/Makefile +++ b/vendor/go.etcd.io/bbolt/Makefile @@ -41,6 +41,15 @@ coverage: TEST_FREELIST_TYPE=array go test -v -timeout 30m \ -coverprofile cover-freelist-array.out -covermode atomic +BOLT_CMD=bbolt + +build: + go build -o bin/${BOLT_CMD} ./cmd/${BOLT_CMD} + +.PHONY: clean +clean: # Clean binaries + rm -f ./bin/${BOLT_CMD} + .PHONY: gofail-enable gofail-enable: install-gofail gofail enable . @@ -61,3 +70,7 @@ test-failpoint: @echo "[failpoint] array freelist test" TEST_FREELIST_TYPE=array go test -v ${TESTFLAGS} -timeout 30m ./tests/failpoint +.PHONY: test-robustness # Running robustness tests requires root permission +test-robustness: + go test -v ${TESTFLAGS} ./tests/dmflakey -test.root + go test -v ${TESTFLAGS} ./tests/robustness -test.root diff --git a/vendor/go.etcd.io/bbolt/db.go b/vendor/go.etcd.io/bbolt/db.go index 4175bdf3dd..822798e41a 100644 --- a/vendor/go.etcd.io/bbolt/db.go +++ b/vendor/go.etcd.io/bbolt/db.go @@ -524,7 +524,7 @@ func (db *DB) munmap() error { // gofail: var unmapError string // return errors.New(unmapError) if err := munmap(db); err != nil { - return fmt.Errorf("unmap error: " + err.Error()) + return fmt.Errorf("unmap error: %v", err.Error()) } return nil @@ -571,7 +571,7 @@ func (db *DB) munlock(fileSize int) error { // gofail: var munlockError string // return errors.New(munlockError) if err := munlock(db, fileSize); err != nil { - return fmt.Errorf("munlock error: " + err.Error()) + return fmt.Errorf("munlock error: %v", err.Error()) } return nil } @@ -580,7 +580,7 @@ func (db *DB) mlock(fileSize int) error { // gofail: var mlockError string // return errors.New(mlockError) if err := mlock(db, fileSize); err != nil { - return fmt.Errorf("mlock error: " + err.Error()) + return fmt.Errorf("mlock error: %v", err.Error()) } return nil } @@ -1159,6 +1159,8 @@ func (db *DB) grow(sz int) error { // https://github.com/boltdb/bolt/issues/284 if !db.NoGrowSync && !db.readOnly { if runtime.GOOS != "windows" { + // gofail: var resizeFileError string + // return errors.New(resizeFileError) if err := db.file.Truncate(int64(sz)); err != nil { return fmt.Errorf("file resize error: %s", err) } diff --git a/vendor/go.etcd.io/bbolt/freelist.go b/vendor/go.etcd.io/bbolt/freelist.go index 61d43f81b4..dffc7bc749 100644 --- a/vendor/go.etcd.io/bbolt/freelist.go +++ b/vendor/go.etcd.io/bbolt/freelist.go @@ -252,6 +252,14 @@ func (f *freelist) rollback(txid txid) { } // Remove pages from pending list and mark as free if allocated by txid. delete(f.pending, txid) + + // Remove pgids which are allocated by this txid + for pgid, tid := range f.allocs { + if tid == txid { + delete(f.allocs, pgid) + } + } + f.mergeSpans(m) } diff --git a/vendor/go.etcd.io/bbolt/tx.go b/vendor/go.etcd.io/bbolt/tx.go index 2fac8c0a78..766395de3b 100644 --- a/vendor/go.etcd.io/bbolt/tx.go +++ b/vendor/go.etcd.io/bbolt/tx.go @@ -1,6 +1,7 @@ package bbolt import ( + "errors" "fmt" "io" "os" @@ -185,6 +186,10 @@ func (tx *Tx) Commit() error { // If the high water mark has moved up then attempt to grow the database. if tx.meta.pgid > opgid { + _ = errors.New("") + // gofail: var lackOfDiskSpace string + // tx.rollback() + // return errors.New(lackOfDiskSpace) if err := tx.db.grow(int(tx.meta.pgid+1) * tx.db.pageSize); err != nil { tx.rollback() return err @@ -470,6 +475,7 @@ func (tx *Tx) write() error { // Ignore file sync if flag is set on DB. if !tx.db.NoSync || IgnoreNoSync { + // gofail: var beforeSyncDataPages struct{} if err := fdatasync(tx.db); err != nil { return err } @@ -507,6 +513,7 @@ func (tx *Tx) writeMeta() error { return err } if !tx.db.NoSync || IgnoreNoSync { + // gofail: var beforeSyncMetaPage struct{} if err := fdatasync(tx.db); err != nil { return err } diff --git a/vendor/golang.org/x/crypto/internal/poly1305/sum_amd64.s b/vendor/golang.org/x/crypto/internal/poly1305/sum_amd64.s index e0d3c64756..133757384b 100644 --- a/vendor/golang.org/x/crypto/internal/poly1305/sum_amd64.s +++ b/vendor/golang.org/x/crypto/internal/poly1305/sum_amd64.s @@ -1,108 +1,93 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. +// Code generated by command: go run sum_amd64_asm.go -out ../sum_amd64.s -pkg poly1305. DO NOT EDIT. //go:build gc && !purego -#include "textflag.h" - -#define POLY1305_ADD(msg, h0, h1, h2) \ - ADDQ 0(msg), h0; \ - ADCQ 8(msg), h1; \ - ADCQ $1, h2; \ - LEAQ 16(msg), msg - -#define POLY1305_MUL(h0, h1, h2, r0, r1, t0, t1, t2, t3) \ - MOVQ r0, AX; \ - MULQ h0; \ - MOVQ AX, t0; \ - MOVQ DX, t1; \ - MOVQ r0, AX; \ - MULQ h1; \ - ADDQ AX, t1; \ - ADCQ $0, DX; \ - MOVQ r0, t2; \ - IMULQ h2, t2; \ - ADDQ DX, t2; \ - \ - MOVQ r1, AX; \ - MULQ h0; \ - ADDQ AX, t1; \ - ADCQ $0, DX; \ - MOVQ DX, h0; \ - MOVQ r1, t3; \ - IMULQ h2, t3; \ - MOVQ r1, AX; \ - MULQ h1; \ - ADDQ AX, t2; \ - ADCQ DX, t3; \ - ADDQ h0, t2; \ - ADCQ $0, t3; \ - \ - MOVQ t0, h0; \ - MOVQ t1, h1; \ - MOVQ t2, h2; \ - ANDQ $3, h2; \ - MOVQ t2, t0; \ - ANDQ $0xFFFFFFFFFFFFFFFC, t0; \ - ADDQ t0, h0; \ - ADCQ t3, h1; \ - ADCQ $0, h2; \ - SHRQ $2, t3, t2; \ - SHRQ $2, t3; \ - ADDQ t2, h0; \ - ADCQ t3, h1; \ - ADCQ $0, h2 - -// func update(state *[7]uint64, msg []byte) +// func update(state *macState, msg []byte) TEXT ·update(SB), $0-32 MOVQ state+0(FP), DI MOVQ msg_base+8(FP), SI MOVQ msg_len+16(FP), R15 - - MOVQ 0(DI), R8 // h0 - MOVQ 8(DI), R9 // h1 - MOVQ 16(DI), R10 // h2 - MOVQ 24(DI), R11 // r0 - MOVQ 32(DI), R12 // r1 - - CMPQ R15, $16 + MOVQ (DI), R8 + MOVQ 8(DI), R9 + MOVQ 16(DI), R10 + MOVQ 24(DI), R11 + MOVQ 32(DI), R12 + CMPQ R15, $0x10 JB bytes_between_0_and_15 loop: - POLY1305_ADD(SI, R8, R9, R10) + ADDQ (SI), R8 + ADCQ 8(SI), R9 + ADCQ $0x01, R10 + LEAQ 16(SI), SI multiply: - POLY1305_MUL(R8, R9, R10, R11, R12, BX, CX, R13, R14) - SUBQ $16, R15 - CMPQ R15, $16 - JAE loop + MOVQ R11, AX + MULQ R8 + MOVQ AX, BX + MOVQ DX, CX + MOVQ R11, AX + MULQ R9 + ADDQ AX, CX + ADCQ $0x00, DX + MOVQ R11, R13 + IMULQ R10, R13 + ADDQ DX, R13 + MOVQ R12, AX + MULQ R8 + ADDQ AX, CX + ADCQ $0x00, DX + MOVQ DX, R8 + MOVQ R12, R14 + IMULQ R10, R14 + MOVQ R12, AX + MULQ R9 + ADDQ AX, R13 + ADCQ DX, R14 + ADDQ R8, R13 + ADCQ $0x00, R14 + MOVQ BX, R8 + MOVQ CX, R9 + MOVQ R13, R10 + ANDQ $0x03, R10 + MOVQ R13, BX + ANDQ $-4, BX + ADDQ BX, R8 + ADCQ R14, R9 + ADCQ $0x00, R10 + SHRQ $0x02, R14, R13 + SHRQ $0x02, R14 + ADDQ R13, R8 + ADCQ R14, R9 + ADCQ $0x00, R10 + SUBQ $0x10, R15 + CMPQ R15, $0x10 + JAE loop bytes_between_0_and_15: TESTQ R15, R15 JZ done - MOVQ $1, BX + MOVQ $0x00000001, BX XORQ CX, CX XORQ R13, R13 ADDQ R15, SI flush_buffer: - SHLQ $8, BX, CX - SHLQ $8, BX + SHLQ $0x08, BX, CX + SHLQ $0x08, BX MOVB -1(SI), R13 XORQ R13, BX DECQ SI DECQ R15 JNZ flush_buffer - ADDQ BX, R8 ADCQ CX, R9 - ADCQ $0, R10 - MOVQ $16, R15 + ADCQ $0x00, R10 + MOVQ $0x00000010, R15 JMP multiply done: - MOVQ R8, 0(DI) + MOVQ R8, (DI) MOVQ R9, 8(DI) MOVQ R10, 16(DI) RET diff --git a/vendor/golang.org/x/crypto/salsa20/salsa/salsa20_amd64.s b/vendor/golang.org/x/crypto/salsa20/salsa/salsa20_amd64.s index fcce0234b6..3883e0ec22 100644 --- a/vendor/golang.org/x/crypto/salsa20/salsa/salsa20_amd64.s +++ b/vendor/golang.org/x/crypto/salsa20/salsa/salsa20_amd64.s @@ -1,880 +1,880 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. +// Code generated by command: go run salsa20_amd64_asm.go -out ../salsa20_amd64.s -pkg salsa. DO NOT EDIT. //go:build amd64 && !purego && gc -// This code was translated into a form compatible with 6a from the public -// domain sources in SUPERCOP: https://bench.cr.yp.to/supercop.html +// func salsa2020XORKeyStream(out *byte, in *byte, n uint64, nonce *byte, key *byte) +// Requires: SSE2 +TEXT ·salsa2020XORKeyStream(SB), $456-40 + // This needs up to 64 bytes at 360(R12); hence the non-obvious frame size. + MOVQ out+0(FP), DI + MOVQ in+8(FP), SI + MOVQ n+16(FP), DX + MOVQ nonce+24(FP), CX + MOVQ key+32(FP), R8 + MOVQ SP, R12 + ADDQ $0x1f, R12 + ANDQ $-32, R12 + MOVQ DX, R9 + MOVQ CX, DX + MOVQ R8, R10 + CMPQ R9, $0x00 + JBE DONE + MOVL 20(R10), CX + MOVL (R10), R8 + MOVL (DX), AX + MOVL 16(R10), R11 + MOVL CX, (R12) + MOVL R8, 4(R12) + MOVL AX, 8(R12) + MOVL R11, 12(R12) + MOVL 8(DX), CX + MOVL 24(R10), R8 + MOVL 4(R10), AX + MOVL 4(DX), R11 + MOVL CX, 16(R12) + MOVL R8, 20(R12) + MOVL AX, 24(R12) + MOVL R11, 28(R12) + MOVL 12(DX), CX + MOVL 12(R10), DX + MOVL 28(R10), R8 + MOVL 8(R10), AX + MOVL DX, 32(R12) + MOVL CX, 36(R12) + MOVL R8, 40(R12) + MOVL AX, 44(R12) + MOVQ $0x61707865, DX + MOVQ $0x3320646e, CX + MOVQ $0x79622d32, R8 + MOVQ $0x6b206574, AX + MOVL DX, 48(R12) + MOVL CX, 52(R12) + MOVL R8, 56(R12) + MOVL AX, 60(R12) + CMPQ R9, $0x00000100 + JB BYTESBETWEEN1AND255 + MOVOA 48(R12), X0 + PSHUFL $0x55, X0, X1 + PSHUFL $0xaa, X0, X2 + PSHUFL $0xff, X0, X3 + PSHUFL $0x00, X0, X0 + MOVOA X1, 64(R12) + MOVOA X2, 80(R12) + MOVOA X3, 96(R12) + MOVOA X0, 112(R12) + MOVOA (R12), X0 + PSHUFL $0xaa, X0, X1 + PSHUFL $0xff, X0, X2 + PSHUFL $0x00, X0, X3 + PSHUFL $0x55, X0, X0 + MOVOA X1, 128(R12) + MOVOA X2, 144(R12) + MOVOA X3, 160(R12) + MOVOA X0, 176(R12) + MOVOA 16(R12), X0 + PSHUFL $0xff, X0, X1 + PSHUFL $0x55, X0, X2 + PSHUFL $0xaa, X0, X0 + MOVOA X1, 192(R12) + MOVOA X2, 208(R12) + MOVOA X0, 224(R12) + MOVOA 32(R12), X0 + PSHUFL $0x00, X0, X1 + PSHUFL $0xaa, X0, X2 + PSHUFL $0xff, X0, X0 + MOVOA X1, 240(R12) + MOVOA X2, 256(R12) + MOVOA X0, 272(R12) -// func salsa2020XORKeyStream(out, in *byte, n uint64, nonce, key *byte) -// This needs up to 64 bytes at 360(R12); hence the non-obvious frame size. -TEXT ·salsa2020XORKeyStream(SB),0,$456-40 // frame = 424 + 32 byte alignment - MOVQ out+0(FP),DI - MOVQ in+8(FP),SI - MOVQ n+16(FP),DX - MOVQ nonce+24(FP),CX - MOVQ key+32(FP),R8 +BYTESATLEAST256: + MOVL 16(R12), DX + MOVL 36(R12), CX + MOVL DX, 288(R12) + MOVL CX, 304(R12) + SHLQ $0x20, CX + ADDQ CX, DX + ADDQ $0x01, DX + MOVQ DX, CX + SHRQ $0x20, CX + MOVL DX, 292(R12) + MOVL CX, 308(R12) + ADDQ $0x01, DX + MOVQ DX, CX + SHRQ $0x20, CX + MOVL DX, 296(R12) + MOVL CX, 312(R12) + ADDQ $0x01, DX + MOVQ DX, CX + SHRQ $0x20, CX + MOVL DX, 300(R12) + MOVL CX, 316(R12) + ADDQ $0x01, DX + MOVQ DX, CX + SHRQ $0x20, CX + MOVL DX, 16(R12) + MOVL CX, 36(R12) + MOVQ R9, 352(R12) + MOVQ $0x00000014, DX + MOVOA 64(R12), X0 + MOVOA 80(R12), X1 + MOVOA 96(R12), X2 + MOVOA 256(R12), X3 + MOVOA 272(R12), X4 + MOVOA 128(R12), X5 + MOVOA 144(R12), X6 + MOVOA 176(R12), X7 + MOVOA 192(R12), X8 + MOVOA 208(R12), X9 + MOVOA 224(R12), X10 + MOVOA 304(R12), X11 + MOVOA 112(R12), X12 + MOVOA 160(R12), X13 + MOVOA 240(R12), X14 + MOVOA 288(R12), X15 - MOVQ SP,R12 - ADDQ $31, R12 - ANDQ $~31, R12 +MAINLOOP1: + MOVOA X1, 320(R12) + MOVOA X2, 336(R12) + MOVOA X13, X1 + PADDL X12, X1 + MOVOA X1, X2 + PSLLL $0x07, X1 + PXOR X1, X14 + PSRLL $0x19, X2 + PXOR X2, X14 + MOVOA X7, X1 + PADDL X0, X1 + MOVOA X1, X2 + PSLLL $0x07, X1 + PXOR X1, X11 + PSRLL $0x19, X2 + PXOR X2, X11 + MOVOA X12, X1 + PADDL X14, X1 + MOVOA X1, X2 + PSLLL $0x09, X1 + PXOR X1, X15 + PSRLL $0x17, X2 + PXOR X2, X15 + MOVOA X0, X1 + PADDL X11, X1 + MOVOA X1, X2 + PSLLL $0x09, X1 + PXOR X1, X9 + PSRLL $0x17, X2 + PXOR X2, X9 + MOVOA X14, X1 + PADDL X15, X1 + MOVOA X1, X2 + PSLLL $0x0d, X1 + PXOR X1, X13 + PSRLL $0x13, X2 + PXOR X2, X13 + MOVOA X11, X1 + PADDL X9, X1 + MOVOA X1, X2 + PSLLL $0x0d, X1 + PXOR X1, X7 + PSRLL $0x13, X2 + PXOR X2, X7 + MOVOA X15, X1 + PADDL X13, X1 + MOVOA X1, X2 + PSLLL $0x12, X1 + PXOR X1, X12 + PSRLL $0x0e, X2 + PXOR X2, X12 + MOVOA 320(R12), X1 + MOVOA X12, 320(R12) + MOVOA X9, X2 + PADDL X7, X2 + MOVOA X2, X12 + PSLLL $0x12, X2 + PXOR X2, X0 + PSRLL $0x0e, X12 + PXOR X12, X0 + MOVOA X5, X2 + PADDL X1, X2 + MOVOA X2, X12 + PSLLL $0x07, X2 + PXOR X2, X3 + PSRLL $0x19, X12 + PXOR X12, X3 + MOVOA 336(R12), X2 + MOVOA X0, 336(R12) + MOVOA X6, X0 + PADDL X2, X0 + MOVOA X0, X12 + PSLLL $0x07, X0 + PXOR X0, X4 + PSRLL $0x19, X12 + PXOR X12, X4 + MOVOA X1, X0 + PADDL X3, X0 + MOVOA X0, X12 + PSLLL $0x09, X0 + PXOR X0, X10 + PSRLL $0x17, X12 + PXOR X12, X10 + MOVOA X2, X0 + PADDL X4, X0 + MOVOA X0, X12 + PSLLL $0x09, X0 + PXOR X0, X8 + PSRLL $0x17, X12 + PXOR X12, X8 + MOVOA X3, X0 + PADDL X10, X0 + MOVOA X0, X12 + PSLLL $0x0d, X0 + PXOR X0, X5 + PSRLL $0x13, X12 + PXOR X12, X5 + MOVOA X4, X0 + PADDL X8, X0 + MOVOA X0, X12 + PSLLL $0x0d, X0 + PXOR X0, X6 + PSRLL $0x13, X12 + PXOR X12, X6 + MOVOA X10, X0 + PADDL X5, X0 + MOVOA X0, X12 + PSLLL $0x12, X0 + PXOR X0, X1 + PSRLL $0x0e, X12 + PXOR X12, X1 + MOVOA 320(R12), X0 + MOVOA X1, 320(R12) + MOVOA X4, X1 + PADDL X0, X1 + MOVOA X1, X12 + PSLLL $0x07, X1 + PXOR X1, X7 + PSRLL $0x19, X12 + PXOR X12, X7 + MOVOA X8, X1 + PADDL X6, X1 + MOVOA X1, X12 + PSLLL $0x12, X1 + PXOR X1, X2 + PSRLL $0x0e, X12 + PXOR X12, X2 + MOVOA 336(R12), X12 + MOVOA X2, 336(R12) + MOVOA X14, X1 + PADDL X12, X1 + MOVOA X1, X2 + PSLLL $0x07, X1 + PXOR X1, X5 + PSRLL $0x19, X2 + PXOR X2, X5 + MOVOA X0, X1 + PADDL X7, X1 + MOVOA X1, X2 + PSLLL $0x09, X1 + PXOR X1, X10 + PSRLL $0x17, X2 + PXOR X2, X10 + MOVOA X12, X1 + PADDL X5, X1 + MOVOA X1, X2 + PSLLL $0x09, X1 + PXOR X1, X8 + PSRLL $0x17, X2 + PXOR X2, X8 + MOVOA X7, X1 + PADDL X10, X1 + MOVOA X1, X2 + PSLLL $0x0d, X1 + PXOR X1, X4 + PSRLL $0x13, X2 + PXOR X2, X4 + MOVOA X5, X1 + PADDL X8, X1 + MOVOA X1, X2 + PSLLL $0x0d, X1 + PXOR X1, X14 + PSRLL $0x13, X2 + PXOR X2, X14 + MOVOA X10, X1 + PADDL X4, X1 + MOVOA X1, X2 + PSLLL $0x12, X1 + PXOR X1, X0 + PSRLL $0x0e, X2 + PXOR X2, X0 + MOVOA 320(R12), X1 + MOVOA X0, 320(R12) + MOVOA X8, X0 + PADDL X14, X0 + MOVOA X0, X2 + PSLLL $0x12, X0 + PXOR X0, X12 + PSRLL $0x0e, X2 + PXOR X2, X12 + MOVOA X11, X0 + PADDL X1, X0 + MOVOA X0, X2 + PSLLL $0x07, X0 + PXOR X0, X6 + PSRLL $0x19, X2 + PXOR X2, X6 + MOVOA 336(R12), X2 + MOVOA X12, 336(R12) + MOVOA X3, X0 + PADDL X2, X0 + MOVOA X0, X12 + PSLLL $0x07, X0 + PXOR X0, X13 + PSRLL $0x19, X12 + PXOR X12, X13 + MOVOA X1, X0 + PADDL X6, X0 + MOVOA X0, X12 + PSLLL $0x09, X0 + PXOR X0, X15 + PSRLL $0x17, X12 + PXOR X12, X15 + MOVOA X2, X0 + PADDL X13, X0 + MOVOA X0, X12 + PSLLL $0x09, X0 + PXOR X0, X9 + PSRLL $0x17, X12 + PXOR X12, X9 + MOVOA X6, X0 + PADDL X15, X0 + MOVOA X0, X12 + PSLLL $0x0d, X0 + PXOR X0, X11 + PSRLL $0x13, X12 + PXOR X12, X11 + MOVOA X13, X0 + PADDL X9, X0 + MOVOA X0, X12 + PSLLL $0x0d, X0 + PXOR X0, X3 + PSRLL $0x13, X12 + PXOR X12, X3 + MOVOA X15, X0 + PADDL X11, X0 + MOVOA X0, X12 + PSLLL $0x12, X0 + PXOR X0, X1 + PSRLL $0x0e, X12 + PXOR X12, X1 + MOVOA X9, X0 + PADDL X3, X0 + MOVOA X0, X12 + PSLLL $0x12, X0 + PXOR X0, X2 + PSRLL $0x0e, X12 + PXOR X12, X2 + MOVOA 320(R12), X12 + MOVOA 336(R12), X0 + SUBQ $0x02, DX + JA MAINLOOP1 + PADDL 112(R12), X12 + PADDL 176(R12), X7 + PADDL 224(R12), X10 + PADDL 272(R12), X4 + MOVD X12, DX + MOVD X7, CX + MOVD X10, R8 + MOVD X4, R9 + PSHUFL $0x39, X12, X12 + PSHUFL $0x39, X7, X7 + PSHUFL $0x39, X10, X10 + PSHUFL $0x39, X4, X4 + XORL (SI), DX + XORL 4(SI), CX + XORL 8(SI), R8 + XORL 12(SI), R9 + MOVL DX, (DI) + MOVL CX, 4(DI) + MOVL R8, 8(DI) + MOVL R9, 12(DI) + MOVD X12, DX + MOVD X7, CX + MOVD X10, R8 + MOVD X4, R9 + PSHUFL $0x39, X12, X12 + PSHUFL $0x39, X7, X7 + PSHUFL $0x39, X10, X10 + PSHUFL $0x39, X4, X4 + XORL 64(SI), DX + XORL 68(SI), CX + XORL 72(SI), R8 + XORL 76(SI), R9 + MOVL DX, 64(DI) + MOVL CX, 68(DI) + MOVL R8, 72(DI) + MOVL R9, 76(DI) + MOVD X12, DX + MOVD X7, CX + MOVD X10, R8 + MOVD X4, R9 + PSHUFL $0x39, X12, X12 + PSHUFL $0x39, X7, X7 + PSHUFL $0x39, X10, X10 + PSHUFL $0x39, X4, X4 + XORL 128(SI), DX + XORL 132(SI), CX + XORL 136(SI), R8 + XORL 140(SI), R9 + MOVL DX, 128(DI) + MOVL CX, 132(DI) + MOVL R8, 136(DI) + MOVL R9, 140(DI) + MOVD X12, DX + MOVD X7, CX + MOVD X10, R8 + MOVD X4, R9 + XORL 192(SI), DX + XORL 196(SI), CX + XORL 200(SI), R8 + XORL 204(SI), R9 + MOVL DX, 192(DI) + MOVL CX, 196(DI) + MOVL R8, 200(DI) + MOVL R9, 204(DI) + PADDL 240(R12), X14 + PADDL 64(R12), X0 + PADDL 128(R12), X5 + PADDL 192(R12), X8 + MOVD X14, DX + MOVD X0, CX + MOVD X5, R8 + MOVD X8, R9 + PSHUFL $0x39, X14, X14 + PSHUFL $0x39, X0, X0 + PSHUFL $0x39, X5, X5 + PSHUFL $0x39, X8, X8 + XORL 16(SI), DX + XORL 20(SI), CX + XORL 24(SI), R8 + XORL 28(SI), R9 + MOVL DX, 16(DI) + MOVL CX, 20(DI) + MOVL R8, 24(DI) + MOVL R9, 28(DI) + MOVD X14, DX + MOVD X0, CX + MOVD X5, R8 + MOVD X8, R9 + PSHUFL $0x39, X14, X14 + PSHUFL $0x39, X0, X0 + PSHUFL $0x39, X5, X5 + PSHUFL $0x39, X8, X8 + XORL 80(SI), DX + XORL 84(SI), CX + XORL 88(SI), R8 + XORL 92(SI), R9 + MOVL DX, 80(DI) + MOVL CX, 84(DI) + MOVL R8, 88(DI) + MOVL R9, 92(DI) + MOVD X14, DX + MOVD X0, CX + MOVD X5, R8 + MOVD X8, R9 + PSHUFL $0x39, X14, X14 + PSHUFL $0x39, X0, X0 + PSHUFL $0x39, X5, X5 + PSHUFL $0x39, X8, X8 + XORL 144(SI), DX + XORL 148(SI), CX + XORL 152(SI), R8 + XORL 156(SI), R9 + MOVL DX, 144(DI) + MOVL CX, 148(DI) + MOVL R8, 152(DI) + MOVL R9, 156(DI) + MOVD X14, DX + MOVD X0, CX + MOVD X5, R8 + MOVD X8, R9 + XORL 208(SI), DX + XORL 212(SI), CX + XORL 216(SI), R8 + XORL 220(SI), R9 + MOVL DX, 208(DI) + MOVL CX, 212(DI) + MOVL R8, 216(DI) + MOVL R9, 220(DI) + PADDL 288(R12), X15 + PADDL 304(R12), X11 + PADDL 80(R12), X1 + PADDL 144(R12), X6 + MOVD X15, DX + MOVD X11, CX + MOVD X1, R8 + MOVD X6, R9 + PSHUFL $0x39, X15, X15 + PSHUFL $0x39, X11, X11 + PSHUFL $0x39, X1, X1 + PSHUFL $0x39, X6, X6 + XORL 32(SI), DX + XORL 36(SI), CX + XORL 40(SI), R8 + XORL 44(SI), R9 + MOVL DX, 32(DI) + MOVL CX, 36(DI) + MOVL R8, 40(DI) + MOVL R9, 44(DI) + MOVD X15, DX + MOVD X11, CX + MOVD X1, R8 + MOVD X6, R9 + PSHUFL $0x39, X15, X15 + PSHUFL $0x39, X11, X11 + PSHUFL $0x39, X1, X1 + PSHUFL $0x39, X6, X6 + XORL 96(SI), DX + XORL 100(SI), CX + XORL 104(SI), R8 + XORL 108(SI), R9 + MOVL DX, 96(DI) + MOVL CX, 100(DI) + MOVL R8, 104(DI) + MOVL R9, 108(DI) + MOVD X15, DX + MOVD X11, CX + MOVD X1, R8 + MOVD X6, R9 + PSHUFL $0x39, X15, X15 + PSHUFL $0x39, X11, X11 + PSHUFL $0x39, X1, X1 + PSHUFL $0x39, X6, X6 + XORL 160(SI), DX + XORL 164(SI), CX + XORL 168(SI), R8 + XORL 172(SI), R9 + MOVL DX, 160(DI) + MOVL CX, 164(DI) + MOVL R8, 168(DI) + MOVL R9, 172(DI) + MOVD X15, DX + MOVD X11, CX + MOVD X1, R8 + MOVD X6, R9 + XORL 224(SI), DX + XORL 228(SI), CX + XORL 232(SI), R8 + XORL 236(SI), R9 + MOVL DX, 224(DI) + MOVL CX, 228(DI) + MOVL R8, 232(DI) + MOVL R9, 236(DI) + PADDL 160(R12), X13 + PADDL 208(R12), X9 + PADDL 256(R12), X3 + PADDL 96(R12), X2 + MOVD X13, DX + MOVD X9, CX + MOVD X3, R8 + MOVD X2, R9 + PSHUFL $0x39, X13, X13 + PSHUFL $0x39, X9, X9 + PSHUFL $0x39, X3, X3 + PSHUFL $0x39, X2, X2 + XORL 48(SI), DX + XORL 52(SI), CX + XORL 56(SI), R8 + XORL 60(SI), R9 + MOVL DX, 48(DI) + MOVL CX, 52(DI) + MOVL R8, 56(DI) + MOVL R9, 60(DI) + MOVD X13, DX + MOVD X9, CX + MOVD X3, R8 + MOVD X2, R9 + PSHUFL $0x39, X13, X13 + PSHUFL $0x39, X9, X9 + PSHUFL $0x39, X3, X3 + PSHUFL $0x39, X2, X2 + XORL 112(SI), DX + XORL 116(SI), CX + XORL 120(SI), R8 + XORL 124(SI), R9 + MOVL DX, 112(DI) + MOVL CX, 116(DI) + MOVL R8, 120(DI) + MOVL R9, 124(DI) + MOVD X13, DX + MOVD X9, CX + MOVD X3, R8 + MOVD X2, R9 + PSHUFL $0x39, X13, X13 + PSHUFL $0x39, X9, X9 + PSHUFL $0x39, X3, X3 + PSHUFL $0x39, X2, X2 + XORL 176(SI), DX + XORL 180(SI), CX + XORL 184(SI), R8 + XORL 188(SI), R9 + MOVL DX, 176(DI) + MOVL CX, 180(DI) + MOVL R8, 184(DI) + MOVL R9, 188(DI) + MOVD X13, DX + MOVD X9, CX + MOVD X3, R8 + MOVD X2, R9 + XORL 240(SI), DX + XORL 244(SI), CX + XORL 248(SI), R8 + XORL 252(SI), R9 + MOVL DX, 240(DI) + MOVL CX, 244(DI) + MOVL R8, 248(DI) + MOVL R9, 252(DI) + MOVQ 352(R12), R9 + SUBQ $0x00000100, R9 + ADDQ $0x00000100, SI + ADDQ $0x00000100, DI + CMPQ R9, $0x00000100 + JAE BYTESATLEAST256 + CMPQ R9, $0x00 + JBE DONE - MOVQ DX,R9 - MOVQ CX,DX - MOVQ R8,R10 - CMPQ R9,$0 - JBE DONE - START: - MOVL 20(R10),CX - MOVL 0(R10),R8 - MOVL 0(DX),AX - MOVL 16(R10),R11 - MOVL CX,0(R12) - MOVL R8, 4 (R12) - MOVL AX, 8 (R12) - MOVL R11, 12 (R12) - MOVL 8(DX),CX - MOVL 24(R10),R8 - MOVL 4(R10),AX - MOVL 4(DX),R11 - MOVL CX,16(R12) - MOVL R8, 20 (R12) - MOVL AX, 24 (R12) - MOVL R11, 28 (R12) - MOVL 12(DX),CX - MOVL 12(R10),DX - MOVL 28(R10),R8 - MOVL 8(R10),AX - MOVL DX,32(R12) - MOVL CX, 36 (R12) - MOVL R8, 40 (R12) - MOVL AX, 44 (R12) - MOVQ $1634760805,DX - MOVQ $857760878,CX - MOVQ $2036477234,R8 - MOVQ $1797285236,AX - MOVL DX,48(R12) - MOVL CX, 52 (R12) - MOVL R8, 56 (R12) - MOVL AX, 60 (R12) - CMPQ R9,$256 - JB BYTESBETWEEN1AND255 - MOVOA 48(R12),X0 - PSHUFL $0X55,X0,X1 - PSHUFL $0XAA,X0,X2 - PSHUFL $0XFF,X0,X3 - PSHUFL $0X00,X0,X0 - MOVOA X1,64(R12) - MOVOA X2,80(R12) - MOVOA X3,96(R12) - MOVOA X0,112(R12) - MOVOA 0(R12),X0 - PSHUFL $0XAA,X0,X1 - PSHUFL $0XFF,X0,X2 - PSHUFL $0X00,X0,X3 - PSHUFL $0X55,X0,X0 - MOVOA X1,128(R12) - MOVOA X2,144(R12) - MOVOA X3,160(R12) - MOVOA X0,176(R12) - MOVOA 16(R12),X0 - PSHUFL $0XFF,X0,X1 - PSHUFL $0X55,X0,X2 - PSHUFL $0XAA,X0,X0 - MOVOA X1,192(R12) - MOVOA X2,208(R12) - MOVOA X0,224(R12) - MOVOA 32(R12),X0 - PSHUFL $0X00,X0,X1 - PSHUFL $0XAA,X0,X2 - PSHUFL $0XFF,X0,X0 - MOVOA X1,240(R12) - MOVOA X2,256(R12) - MOVOA X0,272(R12) - BYTESATLEAST256: - MOVL 16(R12),DX - MOVL 36 (R12),CX - MOVL DX,288(R12) - MOVL CX,304(R12) - SHLQ $32,CX - ADDQ CX,DX - ADDQ $1,DX - MOVQ DX,CX - SHRQ $32,CX - MOVL DX, 292 (R12) - MOVL CX, 308 (R12) - ADDQ $1,DX - MOVQ DX,CX - SHRQ $32,CX - MOVL DX, 296 (R12) - MOVL CX, 312 (R12) - ADDQ $1,DX - MOVQ DX,CX - SHRQ $32,CX - MOVL DX, 300 (R12) - MOVL CX, 316 (R12) - ADDQ $1,DX - MOVQ DX,CX - SHRQ $32,CX - MOVL DX,16(R12) - MOVL CX, 36 (R12) - MOVQ R9,352(R12) - MOVQ $20,DX - MOVOA 64(R12),X0 - MOVOA 80(R12),X1 - MOVOA 96(R12),X2 - MOVOA 256(R12),X3 - MOVOA 272(R12),X4 - MOVOA 128(R12),X5 - MOVOA 144(R12),X6 - MOVOA 176(R12),X7 - MOVOA 192(R12),X8 - MOVOA 208(R12),X9 - MOVOA 224(R12),X10 - MOVOA 304(R12),X11 - MOVOA 112(R12),X12 - MOVOA 160(R12),X13 - MOVOA 240(R12),X14 - MOVOA 288(R12),X15 - MAINLOOP1: - MOVOA X1,320(R12) - MOVOA X2,336(R12) - MOVOA X13,X1 - PADDL X12,X1 - MOVOA X1,X2 - PSLLL $7,X1 - PXOR X1,X14 - PSRLL $25,X2 - PXOR X2,X14 - MOVOA X7,X1 - PADDL X0,X1 - MOVOA X1,X2 - PSLLL $7,X1 - PXOR X1,X11 - PSRLL $25,X2 - PXOR X2,X11 - MOVOA X12,X1 - PADDL X14,X1 - MOVOA X1,X2 - PSLLL $9,X1 - PXOR X1,X15 - PSRLL $23,X2 - PXOR X2,X15 - MOVOA X0,X1 - PADDL X11,X1 - MOVOA X1,X2 - PSLLL $9,X1 - PXOR X1,X9 - PSRLL $23,X2 - PXOR X2,X9 - MOVOA X14,X1 - PADDL X15,X1 - MOVOA X1,X2 - PSLLL $13,X1 - PXOR X1,X13 - PSRLL $19,X2 - PXOR X2,X13 - MOVOA X11,X1 - PADDL X9,X1 - MOVOA X1,X2 - PSLLL $13,X1 - PXOR X1,X7 - PSRLL $19,X2 - PXOR X2,X7 - MOVOA X15,X1 - PADDL X13,X1 - MOVOA X1,X2 - PSLLL $18,X1 - PXOR X1,X12 - PSRLL $14,X2 - PXOR X2,X12 - MOVOA 320(R12),X1 - MOVOA X12,320(R12) - MOVOA X9,X2 - PADDL X7,X2 - MOVOA X2,X12 - PSLLL $18,X2 - PXOR X2,X0 - PSRLL $14,X12 - PXOR X12,X0 - MOVOA X5,X2 - PADDL X1,X2 - MOVOA X2,X12 - PSLLL $7,X2 - PXOR X2,X3 - PSRLL $25,X12 - PXOR X12,X3 - MOVOA 336(R12),X2 - MOVOA X0,336(R12) - MOVOA X6,X0 - PADDL X2,X0 - MOVOA X0,X12 - PSLLL $7,X0 - PXOR X0,X4 - PSRLL $25,X12 - PXOR X12,X4 - MOVOA X1,X0 - PADDL X3,X0 - MOVOA X0,X12 - PSLLL $9,X0 - PXOR X0,X10 - PSRLL $23,X12 - PXOR X12,X10 - MOVOA X2,X0 - PADDL X4,X0 - MOVOA X0,X12 - PSLLL $9,X0 - PXOR X0,X8 - PSRLL $23,X12 - PXOR X12,X8 - MOVOA X3,X0 - PADDL X10,X0 - MOVOA X0,X12 - PSLLL $13,X0 - PXOR X0,X5 - PSRLL $19,X12 - PXOR X12,X5 - MOVOA X4,X0 - PADDL X8,X0 - MOVOA X0,X12 - PSLLL $13,X0 - PXOR X0,X6 - PSRLL $19,X12 - PXOR X12,X6 - MOVOA X10,X0 - PADDL X5,X0 - MOVOA X0,X12 - PSLLL $18,X0 - PXOR X0,X1 - PSRLL $14,X12 - PXOR X12,X1 - MOVOA 320(R12),X0 - MOVOA X1,320(R12) - MOVOA X4,X1 - PADDL X0,X1 - MOVOA X1,X12 - PSLLL $7,X1 - PXOR X1,X7 - PSRLL $25,X12 - PXOR X12,X7 - MOVOA X8,X1 - PADDL X6,X1 - MOVOA X1,X12 - PSLLL $18,X1 - PXOR X1,X2 - PSRLL $14,X12 - PXOR X12,X2 - MOVOA 336(R12),X12 - MOVOA X2,336(R12) - MOVOA X14,X1 - PADDL X12,X1 - MOVOA X1,X2 - PSLLL $7,X1 - PXOR X1,X5 - PSRLL $25,X2 - PXOR X2,X5 - MOVOA X0,X1 - PADDL X7,X1 - MOVOA X1,X2 - PSLLL $9,X1 - PXOR X1,X10 - PSRLL $23,X2 - PXOR X2,X10 - MOVOA X12,X1 - PADDL X5,X1 - MOVOA X1,X2 - PSLLL $9,X1 - PXOR X1,X8 - PSRLL $23,X2 - PXOR X2,X8 - MOVOA X7,X1 - PADDL X10,X1 - MOVOA X1,X2 - PSLLL $13,X1 - PXOR X1,X4 - PSRLL $19,X2 - PXOR X2,X4 - MOVOA X5,X1 - PADDL X8,X1 - MOVOA X1,X2 - PSLLL $13,X1 - PXOR X1,X14 - PSRLL $19,X2 - PXOR X2,X14 - MOVOA X10,X1 - PADDL X4,X1 - MOVOA X1,X2 - PSLLL $18,X1 - PXOR X1,X0 - PSRLL $14,X2 - PXOR X2,X0 - MOVOA 320(R12),X1 - MOVOA X0,320(R12) - MOVOA X8,X0 - PADDL X14,X0 - MOVOA X0,X2 - PSLLL $18,X0 - PXOR X0,X12 - PSRLL $14,X2 - PXOR X2,X12 - MOVOA X11,X0 - PADDL X1,X0 - MOVOA X0,X2 - PSLLL $7,X0 - PXOR X0,X6 - PSRLL $25,X2 - PXOR X2,X6 - MOVOA 336(R12),X2 - MOVOA X12,336(R12) - MOVOA X3,X0 - PADDL X2,X0 - MOVOA X0,X12 - PSLLL $7,X0 - PXOR X0,X13 - PSRLL $25,X12 - PXOR X12,X13 - MOVOA X1,X0 - PADDL X6,X0 - MOVOA X0,X12 - PSLLL $9,X0 - PXOR X0,X15 - PSRLL $23,X12 - PXOR X12,X15 - MOVOA X2,X0 - PADDL X13,X0 - MOVOA X0,X12 - PSLLL $9,X0 - PXOR X0,X9 - PSRLL $23,X12 - PXOR X12,X9 - MOVOA X6,X0 - PADDL X15,X0 - MOVOA X0,X12 - PSLLL $13,X0 - PXOR X0,X11 - PSRLL $19,X12 - PXOR X12,X11 - MOVOA X13,X0 - PADDL X9,X0 - MOVOA X0,X12 - PSLLL $13,X0 - PXOR X0,X3 - PSRLL $19,X12 - PXOR X12,X3 - MOVOA X15,X0 - PADDL X11,X0 - MOVOA X0,X12 - PSLLL $18,X0 - PXOR X0,X1 - PSRLL $14,X12 - PXOR X12,X1 - MOVOA X9,X0 - PADDL X3,X0 - MOVOA X0,X12 - PSLLL $18,X0 - PXOR X0,X2 - PSRLL $14,X12 - PXOR X12,X2 - MOVOA 320(R12),X12 - MOVOA 336(R12),X0 - SUBQ $2,DX - JA MAINLOOP1 - PADDL 112(R12),X12 - PADDL 176(R12),X7 - PADDL 224(R12),X10 - PADDL 272(R12),X4 - MOVD X12,DX - MOVD X7,CX - MOVD X10,R8 - MOVD X4,R9 - PSHUFL $0X39,X12,X12 - PSHUFL $0X39,X7,X7 - PSHUFL $0X39,X10,X10 - PSHUFL $0X39,X4,X4 - XORL 0(SI),DX - XORL 4(SI),CX - XORL 8(SI),R8 - XORL 12(SI),R9 - MOVL DX,0(DI) - MOVL CX,4(DI) - MOVL R8,8(DI) - MOVL R9,12(DI) - MOVD X12,DX - MOVD X7,CX - MOVD X10,R8 - MOVD X4,R9 - PSHUFL $0X39,X12,X12 - PSHUFL $0X39,X7,X7 - PSHUFL $0X39,X10,X10 - PSHUFL $0X39,X4,X4 - XORL 64(SI),DX - XORL 68(SI),CX - XORL 72(SI),R8 - XORL 76(SI),R9 - MOVL DX,64(DI) - MOVL CX,68(DI) - MOVL R8,72(DI) - MOVL R9,76(DI) - MOVD X12,DX - MOVD X7,CX - MOVD X10,R8 - MOVD X4,R9 - PSHUFL $0X39,X12,X12 - PSHUFL $0X39,X7,X7 - PSHUFL $0X39,X10,X10 - PSHUFL $0X39,X4,X4 - XORL 128(SI),DX - XORL 132(SI),CX - XORL 136(SI),R8 - XORL 140(SI),R9 - MOVL DX,128(DI) - MOVL CX,132(DI) - MOVL R8,136(DI) - MOVL R9,140(DI) - MOVD X12,DX - MOVD X7,CX - MOVD X10,R8 - MOVD X4,R9 - XORL 192(SI),DX - XORL 196(SI),CX - XORL 200(SI),R8 - XORL 204(SI),R9 - MOVL DX,192(DI) - MOVL CX,196(DI) - MOVL R8,200(DI) - MOVL R9,204(DI) - PADDL 240(R12),X14 - PADDL 64(R12),X0 - PADDL 128(R12),X5 - PADDL 192(R12),X8 - MOVD X14,DX - MOVD X0,CX - MOVD X5,R8 - MOVD X8,R9 - PSHUFL $0X39,X14,X14 - PSHUFL $0X39,X0,X0 - PSHUFL $0X39,X5,X5 - PSHUFL $0X39,X8,X8 - XORL 16(SI),DX - XORL 20(SI),CX - XORL 24(SI),R8 - XORL 28(SI),R9 - MOVL DX,16(DI) - MOVL CX,20(DI) - MOVL R8,24(DI) - MOVL R9,28(DI) - MOVD X14,DX - MOVD X0,CX - MOVD X5,R8 - MOVD X8,R9 - PSHUFL $0X39,X14,X14 - PSHUFL $0X39,X0,X0 - PSHUFL $0X39,X5,X5 - PSHUFL $0X39,X8,X8 - XORL 80(SI),DX - XORL 84(SI),CX - XORL 88(SI),R8 - XORL 92(SI),R9 - MOVL DX,80(DI) - MOVL CX,84(DI) - MOVL R8,88(DI) - MOVL R9,92(DI) - MOVD X14,DX - MOVD X0,CX - MOVD X5,R8 - MOVD X8,R9 - PSHUFL $0X39,X14,X14 - PSHUFL $0X39,X0,X0 - PSHUFL $0X39,X5,X5 - PSHUFL $0X39,X8,X8 - XORL 144(SI),DX - XORL 148(SI),CX - XORL 152(SI),R8 - XORL 156(SI),R9 - MOVL DX,144(DI) - MOVL CX,148(DI) - MOVL R8,152(DI) - MOVL R9,156(DI) - MOVD X14,DX - MOVD X0,CX - MOVD X5,R8 - MOVD X8,R9 - XORL 208(SI),DX - XORL 212(SI),CX - XORL 216(SI),R8 - XORL 220(SI),R9 - MOVL DX,208(DI) - MOVL CX,212(DI) - MOVL R8,216(DI) - MOVL R9,220(DI) - PADDL 288(R12),X15 - PADDL 304(R12),X11 - PADDL 80(R12),X1 - PADDL 144(R12),X6 - MOVD X15,DX - MOVD X11,CX - MOVD X1,R8 - MOVD X6,R9 - PSHUFL $0X39,X15,X15 - PSHUFL $0X39,X11,X11 - PSHUFL $0X39,X1,X1 - PSHUFL $0X39,X6,X6 - XORL 32(SI),DX - XORL 36(SI),CX - XORL 40(SI),R8 - XORL 44(SI),R9 - MOVL DX,32(DI) - MOVL CX,36(DI) - MOVL R8,40(DI) - MOVL R9,44(DI) - MOVD X15,DX - MOVD X11,CX - MOVD X1,R8 - MOVD X6,R9 - PSHUFL $0X39,X15,X15 - PSHUFL $0X39,X11,X11 - PSHUFL $0X39,X1,X1 - PSHUFL $0X39,X6,X6 - XORL 96(SI),DX - XORL 100(SI),CX - XORL 104(SI),R8 - XORL 108(SI),R9 - MOVL DX,96(DI) - MOVL CX,100(DI) - MOVL R8,104(DI) - MOVL R9,108(DI) - MOVD X15,DX - MOVD X11,CX - MOVD X1,R8 - MOVD X6,R9 - PSHUFL $0X39,X15,X15 - PSHUFL $0X39,X11,X11 - PSHUFL $0X39,X1,X1 - PSHUFL $0X39,X6,X6 - XORL 160(SI),DX - XORL 164(SI),CX - XORL 168(SI),R8 - XORL 172(SI),R9 - MOVL DX,160(DI) - MOVL CX,164(DI) - MOVL R8,168(DI) - MOVL R9,172(DI) - MOVD X15,DX - MOVD X11,CX - MOVD X1,R8 - MOVD X6,R9 - XORL 224(SI),DX - XORL 228(SI),CX - XORL 232(SI),R8 - XORL 236(SI),R9 - MOVL DX,224(DI) - MOVL CX,228(DI) - MOVL R8,232(DI) - MOVL R9,236(DI) - PADDL 160(R12),X13 - PADDL 208(R12),X9 - PADDL 256(R12),X3 - PADDL 96(R12),X2 - MOVD X13,DX - MOVD X9,CX - MOVD X3,R8 - MOVD X2,R9 - PSHUFL $0X39,X13,X13 - PSHUFL $0X39,X9,X9 - PSHUFL $0X39,X3,X3 - PSHUFL $0X39,X2,X2 - XORL 48(SI),DX - XORL 52(SI),CX - XORL 56(SI),R8 - XORL 60(SI),R9 - MOVL DX,48(DI) - MOVL CX,52(DI) - MOVL R8,56(DI) - MOVL R9,60(DI) - MOVD X13,DX - MOVD X9,CX - MOVD X3,R8 - MOVD X2,R9 - PSHUFL $0X39,X13,X13 - PSHUFL $0X39,X9,X9 - PSHUFL $0X39,X3,X3 - PSHUFL $0X39,X2,X2 - XORL 112(SI),DX - XORL 116(SI),CX - XORL 120(SI),R8 - XORL 124(SI),R9 - MOVL DX,112(DI) - MOVL CX,116(DI) - MOVL R8,120(DI) - MOVL R9,124(DI) - MOVD X13,DX - MOVD X9,CX - MOVD X3,R8 - MOVD X2,R9 - PSHUFL $0X39,X13,X13 - PSHUFL $0X39,X9,X9 - PSHUFL $0X39,X3,X3 - PSHUFL $0X39,X2,X2 - XORL 176(SI),DX - XORL 180(SI),CX - XORL 184(SI),R8 - XORL 188(SI),R9 - MOVL DX,176(DI) - MOVL CX,180(DI) - MOVL R8,184(DI) - MOVL R9,188(DI) - MOVD X13,DX - MOVD X9,CX - MOVD X3,R8 - MOVD X2,R9 - XORL 240(SI),DX - XORL 244(SI),CX - XORL 248(SI),R8 - XORL 252(SI),R9 - MOVL DX,240(DI) - MOVL CX,244(DI) - MOVL R8,248(DI) - MOVL R9,252(DI) - MOVQ 352(R12),R9 - SUBQ $256,R9 - ADDQ $256,SI - ADDQ $256,DI - CMPQ R9,$256 - JAE BYTESATLEAST256 - CMPQ R9,$0 - JBE DONE - BYTESBETWEEN1AND255: - CMPQ R9,$64 - JAE NOCOPY - MOVQ DI,DX - LEAQ 360(R12),DI - MOVQ R9,CX +BYTESBETWEEN1AND255: + CMPQ R9, $0x40 + JAE NOCOPY + MOVQ DI, DX + LEAQ 360(R12), DI + MOVQ R9, CX REP; MOVSB - LEAQ 360(R12),DI - LEAQ 360(R12),SI - NOCOPY: - MOVQ R9,352(R12) - MOVOA 48(R12),X0 - MOVOA 0(R12),X1 - MOVOA 16(R12),X2 - MOVOA 32(R12),X3 - MOVOA X1,X4 - MOVQ $20,CX - MAINLOOP2: - PADDL X0,X4 - MOVOA X0,X5 - MOVOA X4,X6 - PSLLL $7,X4 - PSRLL $25,X6 - PXOR X4,X3 - PXOR X6,X3 - PADDL X3,X5 - MOVOA X3,X4 - MOVOA X5,X6 - PSLLL $9,X5 - PSRLL $23,X6 - PXOR X5,X2 - PSHUFL $0X93,X3,X3 - PXOR X6,X2 - PADDL X2,X4 - MOVOA X2,X5 - MOVOA X4,X6 - PSLLL $13,X4 - PSRLL $19,X6 - PXOR X4,X1 - PSHUFL $0X4E,X2,X2 - PXOR X6,X1 - PADDL X1,X5 - MOVOA X3,X4 - MOVOA X5,X6 - PSLLL $18,X5 - PSRLL $14,X6 - PXOR X5,X0 - PSHUFL $0X39,X1,X1 - PXOR X6,X0 - PADDL X0,X4 - MOVOA X0,X5 - MOVOA X4,X6 - PSLLL $7,X4 - PSRLL $25,X6 - PXOR X4,X1 - PXOR X6,X1 - PADDL X1,X5 - MOVOA X1,X4 - MOVOA X5,X6 - PSLLL $9,X5 - PSRLL $23,X6 - PXOR X5,X2 - PSHUFL $0X93,X1,X1 - PXOR X6,X2 - PADDL X2,X4 - MOVOA X2,X5 - MOVOA X4,X6 - PSLLL $13,X4 - PSRLL $19,X6 - PXOR X4,X3 - PSHUFL $0X4E,X2,X2 - PXOR X6,X3 - PADDL X3,X5 - MOVOA X1,X4 - MOVOA X5,X6 - PSLLL $18,X5 - PSRLL $14,X6 - PXOR X5,X0 - PSHUFL $0X39,X3,X3 - PXOR X6,X0 - PADDL X0,X4 - MOVOA X0,X5 - MOVOA X4,X6 - PSLLL $7,X4 - PSRLL $25,X6 - PXOR X4,X3 - PXOR X6,X3 - PADDL X3,X5 - MOVOA X3,X4 - MOVOA X5,X6 - PSLLL $9,X5 - PSRLL $23,X6 - PXOR X5,X2 - PSHUFL $0X93,X3,X3 - PXOR X6,X2 - PADDL X2,X4 - MOVOA X2,X5 - MOVOA X4,X6 - PSLLL $13,X4 - PSRLL $19,X6 - PXOR X4,X1 - PSHUFL $0X4E,X2,X2 - PXOR X6,X1 - PADDL X1,X5 - MOVOA X3,X4 - MOVOA X5,X6 - PSLLL $18,X5 - PSRLL $14,X6 - PXOR X5,X0 - PSHUFL $0X39,X1,X1 - PXOR X6,X0 - PADDL X0,X4 - MOVOA X0,X5 - MOVOA X4,X6 - PSLLL $7,X4 - PSRLL $25,X6 - PXOR X4,X1 - PXOR X6,X1 - PADDL X1,X5 - MOVOA X1,X4 - MOVOA X5,X6 - PSLLL $9,X5 - PSRLL $23,X6 - PXOR X5,X2 - PSHUFL $0X93,X1,X1 - PXOR X6,X2 - PADDL X2,X4 - MOVOA X2,X5 - MOVOA X4,X6 - PSLLL $13,X4 - PSRLL $19,X6 - PXOR X4,X3 - PSHUFL $0X4E,X2,X2 - PXOR X6,X3 - SUBQ $4,CX - PADDL X3,X5 - MOVOA X1,X4 - MOVOA X5,X6 - PSLLL $18,X5 - PXOR X7,X7 - PSRLL $14,X6 - PXOR X5,X0 - PSHUFL $0X39,X3,X3 - PXOR X6,X0 - JA MAINLOOP2 - PADDL 48(R12),X0 - PADDL 0(R12),X1 - PADDL 16(R12),X2 - PADDL 32(R12),X3 - MOVD X0,CX - MOVD X1,R8 - MOVD X2,R9 - MOVD X3,AX - PSHUFL $0X39,X0,X0 - PSHUFL $0X39,X1,X1 - PSHUFL $0X39,X2,X2 - PSHUFL $0X39,X3,X3 - XORL 0(SI),CX - XORL 48(SI),R8 - XORL 32(SI),R9 - XORL 16(SI),AX - MOVL CX,0(DI) - MOVL R8,48(DI) - MOVL R9,32(DI) - MOVL AX,16(DI) - MOVD X0,CX - MOVD X1,R8 - MOVD X2,R9 - MOVD X3,AX - PSHUFL $0X39,X0,X0 - PSHUFL $0X39,X1,X1 - PSHUFL $0X39,X2,X2 - PSHUFL $0X39,X3,X3 - XORL 20(SI),CX - XORL 4(SI),R8 - XORL 52(SI),R9 - XORL 36(SI),AX - MOVL CX,20(DI) - MOVL R8,4(DI) - MOVL R9,52(DI) - MOVL AX,36(DI) - MOVD X0,CX - MOVD X1,R8 - MOVD X2,R9 - MOVD X3,AX - PSHUFL $0X39,X0,X0 - PSHUFL $0X39,X1,X1 - PSHUFL $0X39,X2,X2 - PSHUFL $0X39,X3,X3 - XORL 40(SI),CX - XORL 24(SI),R8 - XORL 8(SI),R9 - XORL 56(SI),AX - MOVL CX,40(DI) - MOVL R8,24(DI) - MOVL R9,8(DI) - MOVL AX,56(DI) - MOVD X0,CX - MOVD X1,R8 - MOVD X2,R9 - MOVD X3,AX - XORL 60(SI),CX - XORL 44(SI),R8 - XORL 28(SI),R9 - XORL 12(SI),AX - MOVL CX,60(DI) - MOVL R8,44(DI) - MOVL R9,28(DI) - MOVL AX,12(DI) - MOVQ 352(R12),R9 - MOVL 16(R12),CX - MOVL 36 (R12),R8 - ADDQ $1,CX - SHLQ $32,R8 - ADDQ R8,CX - MOVQ CX,R8 - SHRQ $32,R8 - MOVL CX,16(R12) - MOVL R8, 36 (R12) - CMPQ R9,$64 - JA BYTESATLEAST65 - JAE BYTESATLEAST64 - MOVQ DI,SI - MOVQ DX,DI - MOVQ R9,CX + LEAQ 360(R12), DI + LEAQ 360(R12), SI + +NOCOPY: + MOVQ R9, 352(R12) + MOVOA 48(R12), X0 + MOVOA (R12), X1 + MOVOA 16(R12), X2 + MOVOA 32(R12), X3 + MOVOA X1, X4 + MOVQ $0x00000014, CX + +MAINLOOP2: + PADDL X0, X4 + MOVOA X0, X5 + MOVOA X4, X6 + PSLLL $0x07, X4 + PSRLL $0x19, X6 + PXOR X4, X3 + PXOR X6, X3 + PADDL X3, X5 + MOVOA X3, X4 + MOVOA X5, X6 + PSLLL $0x09, X5 + PSRLL $0x17, X6 + PXOR X5, X2 + PSHUFL $0x93, X3, X3 + PXOR X6, X2 + PADDL X2, X4 + MOVOA X2, X5 + MOVOA X4, X6 + PSLLL $0x0d, X4 + PSRLL $0x13, X6 + PXOR X4, X1 + PSHUFL $0x4e, X2, X2 + PXOR X6, X1 + PADDL X1, X5 + MOVOA X3, X4 + MOVOA X5, X6 + PSLLL $0x12, X5 + PSRLL $0x0e, X6 + PXOR X5, X0 + PSHUFL $0x39, X1, X1 + PXOR X6, X0 + PADDL X0, X4 + MOVOA X0, X5 + MOVOA X4, X6 + PSLLL $0x07, X4 + PSRLL $0x19, X6 + PXOR X4, X1 + PXOR X6, X1 + PADDL X1, X5 + MOVOA X1, X4 + MOVOA X5, X6 + PSLLL $0x09, X5 + PSRLL $0x17, X6 + PXOR X5, X2 + PSHUFL $0x93, X1, X1 + PXOR X6, X2 + PADDL X2, X4 + MOVOA X2, X5 + MOVOA X4, X6 + PSLLL $0x0d, X4 + PSRLL $0x13, X6 + PXOR X4, X3 + PSHUFL $0x4e, X2, X2 + PXOR X6, X3 + PADDL X3, X5 + MOVOA X1, X4 + MOVOA X5, X6 + PSLLL $0x12, X5 + PSRLL $0x0e, X6 + PXOR X5, X0 + PSHUFL $0x39, X3, X3 + PXOR X6, X0 + PADDL X0, X4 + MOVOA X0, X5 + MOVOA X4, X6 + PSLLL $0x07, X4 + PSRLL $0x19, X6 + PXOR X4, X3 + PXOR X6, X3 + PADDL X3, X5 + MOVOA X3, X4 + MOVOA X5, X6 + PSLLL $0x09, X5 + PSRLL $0x17, X6 + PXOR X5, X2 + PSHUFL $0x93, X3, X3 + PXOR X6, X2 + PADDL X2, X4 + MOVOA X2, X5 + MOVOA X4, X6 + PSLLL $0x0d, X4 + PSRLL $0x13, X6 + PXOR X4, X1 + PSHUFL $0x4e, X2, X2 + PXOR X6, X1 + PADDL X1, X5 + MOVOA X3, X4 + MOVOA X5, X6 + PSLLL $0x12, X5 + PSRLL $0x0e, X6 + PXOR X5, X0 + PSHUFL $0x39, X1, X1 + PXOR X6, X0 + PADDL X0, X4 + MOVOA X0, X5 + MOVOA X4, X6 + PSLLL $0x07, X4 + PSRLL $0x19, X6 + PXOR X4, X1 + PXOR X6, X1 + PADDL X1, X5 + MOVOA X1, X4 + MOVOA X5, X6 + PSLLL $0x09, X5 + PSRLL $0x17, X6 + PXOR X5, X2 + PSHUFL $0x93, X1, X1 + PXOR X6, X2 + PADDL X2, X4 + MOVOA X2, X5 + MOVOA X4, X6 + PSLLL $0x0d, X4 + PSRLL $0x13, X6 + PXOR X4, X3 + PSHUFL $0x4e, X2, X2 + PXOR X6, X3 + SUBQ $0x04, CX + PADDL X3, X5 + MOVOA X1, X4 + MOVOA X5, X6 + PSLLL $0x12, X5 + PXOR X7, X7 + PSRLL $0x0e, X6 + PXOR X5, X0 + PSHUFL $0x39, X3, X3 + PXOR X6, X0 + JA MAINLOOP2 + PADDL 48(R12), X0 + PADDL (R12), X1 + PADDL 16(R12), X2 + PADDL 32(R12), X3 + MOVD X0, CX + MOVD X1, R8 + MOVD X2, R9 + MOVD X3, AX + PSHUFL $0x39, X0, X0 + PSHUFL $0x39, X1, X1 + PSHUFL $0x39, X2, X2 + PSHUFL $0x39, X3, X3 + XORL (SI), CX + XORL 48(SI), R8 + XORL 32(SI), R9 + XORL 16(SI), AX + MOVL CX, (DI) + MOVL R8, 48(DI) + MOVL R9, 32(DI) + MOVL AX, 16(DI) + MOVD X0, CX + MOVD X1, R8 + MOVD X2, R9 + MOVD X3, AX + PSHUFL $0x39, X0, X0 + PSHUFL $0x39, X1, X1 + PSHUFL $0x39, X2, X2 + PSHUFL $0x39, X3, X3 + XORL 20(SI), CX + XORL 4(SI), R8 + XORL 52(SI), R9 + XORL 36(SI), AX + MOVL CX, 20(DI) + MOVL R8, 4(DI) + MOVL R9, 52(DI) + MOVL AX, 36(DI) + MOVD X0, CX + MOVD X1, R8 + MOVD X2, R9 + MOVD X3, AX + PSHUFL $0x39, X0, X0 + PSHUFL $0x39, X1, X1 + PSHUFL $0x39, X2, X2 + PSHUFL $0x39, X3, X3 + XORL 40(SI), CX + XORL 24(SI), R8 + XORL 8(SI), R9 + XORL 56(SI), AX + MOVL CX, 40(DI) + MOVL R8, 24(DI) + MOVL R9, 8(DI) + MOVL AX, 56(DI) + MOVD X0, CX + MOVD X1, R8 + MOVD X2, R9 + MOVD X3, AX + XORL 60(SI), CX + XORL 44(SI), R8 + XORL 28(SI), R9 + XORL 12(SI), AX + MOVL CX, 60(DI) + MOVL R8, 44(DI) + MOVL R9, 28(DI) + MOVL AX, 12(DI) + MOVQ 352(R12), R9 + MOVL 16(R12), CX + MOVL 36(R12), R8 + ADDQ $0x01, CX + SHLQ $0x20, R8 + ADDQ R8, CX + MOVQ CX, R8 + SHRQ $0x20, R8 + MOVL CX, 16(R12) + MOVL R8, 36(R12) + CMPQ R9, $0x40 + JA BYTESATLEAST65 + JAE BYTESATLEAST64 + MOVQ DI, SI + MOVQ DX, DI + MOVQ R9, CX REP; MOVSB - BYTESATLEAST64: - DONE: + +BYTESATLEAST64: +DONE: RET - BYTESATLEAST65: - SUBQ $64,R9 - ADDQ $64,DI - ADDQ $64,SI - JMP BYTESBETWEEN1AND255 + +BYTESATLEAST65: + SUBQ $0x40, R9 + ADDQ $0x40, DI + ADDQ $0x40, SI + JMP BYTESBETWEEN1AND255 diff --git a/vendor/golang.org/x/sys/cpu/cpu.go b/vendor/golang.org/x/sys/cpu/cpu.go index ec07aab057..02609d5b21 100644 --- a/vendor/golang.org/x/sys/cpu/cpu.go +++ b/vendor/golang.org/x/sys/cpu/cpu.go @@ -201,6 +201,25 @@ var S390X struct { _ CacheLinePad } +// RISCV64 contains the supported CPU features and performance characteristics for riscv64 +// platforms. The booleans in RISCV64, with the exception of HasFastMisaligned, indicate +// the presence of RISC-V extensions. +// +// It is safe to assume that all the RV64G extensions are supported and so they are omitted from +// this structure. As riscv64 Go programs require at least RV64G, the code that populates +// this structure cannot run successfully if some of the RV64G extensions are missing. +// The struct is padded to avoid false sharing. +var RISCV64 struct { + _ CacheLinePad + HasFastMisaligned bool // Fast misaligned accesses + HasC bool // Compressed instruction-set extension + HasV bool // Vector extension compatible with RVV 1.0 + HasZba bool // Address generation instructions extension + HasZbb bool // Basic bit-manipulation extension + HasZbs bool // Single-bit instructions extension + _ CacheLinePad +} + func init() { archInit() initOptions() diff --git a/vendor/golang.org/x/sys/cpu/cpu_linux_noinit.go b/vendor/golang.org/x/sys/cpu/cpu_linux_noinit.go index cd63e73355..7d902b6847 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_linux_noinit.go +++ b/vendor/golang.org/x/sys/cpu/cpu_linux_noinit.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build linux && !arm && !arm64 && !mips64 && !mips64le && !ppc64 && !ppc64le && !s390x +//go:build linux && !arm && !arm64 && !mips64 && !mips64le && !ppc64 && !ppc64le && !s390x && !riscv64 package cpu diff --git a/vendor/golang.org/x/sys/cpu/cpu_linux_riscv64.go b/vendor/golang.org/x/sys/cpu/cpu_linux_riscv64.go new file mode 100644 index 0000000000..cb4a0c5728 --- /dev/null +++ b/vendor/golang.org/x/sys/cpu/cpu_linux_riscv64.go @@ -0,0 +1,137 @@ +// Copyright 2024 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package cpu + +import ( + "syscall" + "unsafe" +) + +// RISC-V extension discovery code for Linux. The approach here is to first try the riscv_hwprobe +// syscall falling back to HWCAP to check for the C extension if riscv_hwprobe is not available. +// +// A note on detection of the Vector extension using HWCAP. +// +// Support for the Vector extension version 1.0 was added to the Linux kernel in release 6.5. +// Support for the riscv_hwprobe syscall was added in 6.4. It follows that if the riscv_hwprobe +// syscall is not available then neither is the Vector extension (which needs kernel support). +// The riscv_hwprobe syscall should then be all we need to detect the Vector extension. +// However, some RISC-V board manufacturers ship boards with an older kernel on top of which +// they have back-ported various versions of the Vector extension patches but not the riscv_hwprobe +// patches. These kernels advertise support for the Vector extension using HWCAP. Falling +// back to HWCAP to detect the Vector extension, if riscv_hwprobe is not available, or simply not +// bothering with riscv_hwprobe at all and just using HWCAP may then seem like an attractive option. +// +// Unfortunately, simply checking the 'V' bit in AT_HWCAP will not work as this bit is used by +// RISC-V board and cloud instance providers to mean different things. The Lichee Pi 4A board +// and the Scaleway RV1 cloud instances use the 'V' bit to advertise their support for the unratified +// 0.7.1 version of the Vector Specification. The Banana Pi BPI-F3 and the CanMV-K230 board use +// it to advertise support for 1.0 of the Vector extension. Versions 0.7.1 and 1.0 of the Vector +// extension are binary incompatible. HWCAP can then not be used in isolation to populate the +// HasV field as this field indicates that the underlying CPU is compatible with RVV 1.0. +// +// There is a way at runtime to distinguish between versions 0.7.1 and 1.0 of the Vector +// specification by issuing a RVV 1.0 vsetvli instruction and checking the vill bit of the vtype +// register. This check would allow us to safely detect version 1.0 of the Vector extension +// with HWCAP, if riscv_hwprobe were not available. However, the check cannot +// be added until the assembler supports the Vector instructions. +// +// Note the riscv_hwprobe syscall does not suffer from these ambiguities by design as all of the +// extensions it advertises support for are explicitly versioned. It's also worth noting that +// the riscv_hwprobe syscall is the only way to detect multi-letter RISC-V extensions, e.g., Zba. +// These cannot be detected using HWCAP and so riscv_hwprobe must be used to detect the majority +// of RISC-V extensions. +// +// Please see https://docs.kernel.org/arch/riscv/hwprobe.html for more information. + +// golang.org/x/sys/cpu is not allowed to depend on golang.org/x/sys/unix so we must +// reproduce the constants, types and functions needed to make the riscv_hwprobe syscall +// here. + +const ( + // Copied from golang.org/x/sys/unix/ztypes_linux_riscv64.go. + riscv_HWPROBE_KEY_IMA_EXT_0 = 0x4 + riscv_HWPROBE_IMA_C = 0x2 + riscv_HWPROBE_IMA_V = 0x4 + riscv_HWPROBE_EXT_ZBA = 0x8 + riscv_HWPROBE_EXT_ZBB = 0x10 + riscv_HWPROBE_EXT_ZBS = 0x20 + riscv_HWPROBE_KEY_CPUPERF_0 = 0x5 + riscv_HWPROBE_MISALIGNED_FAST = 0x3 + riscv_HWPROBE_MISALIGNED_MASK = 0x7 +) + +const ( + // sys_RISCV_HWPROBE is copied from golang.org/x/sys/unix/zsysnum_linux_riscv64.go. + sys_RISCV_HWPROBE = 258 +) + +// riscvHWProbePairs is copied from golang.org/x/sys/unix/ztypes_linux_riscv64.go. +type riscvHWProbePairs struct { + key int64 + value uint64 +} + +const ( + // CPU features + hwcap_RISCV_ISA_C = 1 << ('C' - 'A') +) + +func doinit() { + // A slice of key/value pair structures is passed to the RISCVHWProbe syscall. The key + // field should be initialised with one of the key constants defined above, e.g., + // RISCV_HWPROBE_KEY_IMA_EXT_0. The syscall will set the value field to the appropriate value. + // If the kernel does not recognise a key it will set the key field to -1 and the value field to 0. + + pairs := []riscvHWProbePairs{ + {riscv_HWPROBE_KEY_IMA_EXT_0, 0}, + {riscv_HWPROBE_KEY_CPUPERF_0, 0}, + } + + // This call only indicates that extensions are supported if they are implemented on all cores. + if riscvHWProbe(pairs, 0) { + if pairs[0].key != -1 { + v := uint(pairs[0].value) + RISCV64.HasC = isSet(v, riscv_HWPROBE_IMA_C) + RISCV64.HasV = isSet(v, riscv_HWPROBE_IMA_V) + RISCV64.HasZba = isSet(v, riscv_HWPROBE_EXT_ZBA) + RISCV64.HasZbb = isSet(v, riscv_HWPROBE_EXT_ZBB) + RISCV64.HasZbs = isSet(v, riscv_HWPROBE_EXT_ZBS) + } + if pairs[1].key != -1 { + v := pairs[1].value & riscv_HWPROBE_MISALIGNED_MASK + RISCV64.HasFastMisaligned = v == riscv_HWPROBE_MISALIGNED_FAST + } + } + + // Let's double check with HWCAP if the C extension does not appear to be supported. + // This may happen if we're running on a kernel older than 6.4. + + if !RISCV64.HasC { + RISCV64.HasC = isSet(hwCap, hwcap_RISCV_ISA_C) + } +} + +func isSet(hwc uint, value uint) bool { + return hwc&value != 0 +} + +// riscvHWProbe is a simplified version of the generated wrapper function found in +// golang.org/x/sys/unix/zsyscall_linux_riscv64.go. We simplify it by removing the +// cpuCount and cpus parameters which we do not need. We always want to pass 0 for +// these parameters here so the kernel only reports the extensions that are present +// on all cores. +func riscvHWProbe(pairs []riscvHWProbePairs, flags uint) bool { + var _zero uintptr + var p0 unsafe.Pointer + if len(pairs) > 0 { + p0 = unsafe.Pointer(&pairs[0]) + } else { + p0 = unsafe.Pointer(&_zero) + } + + _, _, e1 := syscall.Syscall6(sys_RISCV_HWPROBE, uintptr(p0), uintptr(len(pairs)), uintptr(0), uintptr(0), uintptr(flags), 0) + return e1 == 0 +} diff --git a/vendor/golang.org/x/sys/cpu/cpu_riscv64.go b/vendor/golang.org/x/sys/cpu/cpu_riscv64.go index 7f0c79c004..aca3199c91 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_riscv64.go +++ b/vendor/golang.org/x/sys/cpu/cpu_riscv64.go @@ -8,4 +8,13 @@ package cpu const cacheLineSize = 64 -func initOptions() {} +func initOptions() { + options = []option{ + {Name: "fastmisaligned", Feature: &RISCV64.HasFastMisaligned}, + {Name: "c", Feature: &RISCV64.HasC}, + {Name: "v", Feature: &RISCV64.HasV}, + {Name: "zba", Feature: &RISCV64.HasZba}, + {Name: "zbb", Feature: &RISCV64.HasZbb}, + {Name: "zbs", Feature: &RISCV64.HasZbs}, + } +} diff --git a/vendor/golang.org/x/sys/unix/mkerrors.sh b/vendor/golang.org/x/sys/unix/mkerrors.sh index d07dd09eb5..e14b766a32 100644 --- a/vendor/golang.org/x/sys/unix/mkerrors.sh +++ b/vendor/golang.org/x/sys/unix/mkerrors.sh @@ -552,6 +552,7 @@ ccflags="$@" $2 !~ /^RTC_VL_(ACCURACY|BACKUP|DATA)/ && $2 ~ /^(NETLINK|NLM|NLMSG|NLA|IFA|IFAN|RT|RTC|RTCF|RTN|RTPROT|RTNH|ARPHRD|ETH_P|NETNSA)_/ || $2 ~ /^SOCK_|SK_DIAG_|SKNLGRP_$/ || + $2 ~ /^(CONNECT|SAE)_/ || $2 ~ /^FIORDCHK$/ || $2 ~ /^SIOC/ || $2 ~ /^TIOC/ || diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin.go b/vendor/golang.org/x/sys/unix/syscall_darwin.go index 2d15200adb..099867deed 100644 --- a/vendor/golang.org/x/sys/unix/syscall_darwin.go +++ b/vendor/golang.org/x/sys/unix/syscall_darwin.go @@ -566,6 +566,43 @@ func PthreadFchdir(fd int) (err error) { return pthread_fchdir_np(fd) } +// Connectx calls connectx(2) to initiate a connection on a socket. +// +// srcIf, srcAddr, and dstAddr are filled into a [SaEndpoints] struct and passed as the endpoints argument. +// +// - srcIf is the optional source interface index. 0 means unspecified. +// - srcAddr is the optional source address. nil means unspecified. +// - dstAddr is the destination address. +// +// On success, Connectx returns the number of bytes enqueued for transmission. +func Connectx(fd int, srcIf uint32, srcAddr, dstAddr Sockaddr, associd SaeAssocID, flags uint32, iov []Iovec, connid *SaeConnID) (n uintptr, err error) { + endpoints := SaEndpoints{ + Srcif: srcIf, + } + + if srcAddr != nil { + addrp, addrlen, err := srcAddr.sockaddr() + if err != nil { + return 0, err + } + endpoints.Srcaddr = (*RawSockaddr)(addrp) + endpoints.Srcaddrlen = uint32(addrlen) + } + + if dstAddr != nil { + addrp, addrlen, err := dstAddr.sockaddr() + if err != nil { + return 0, err + } + endpoints.Dstaddr = (*RawSockaddr)(addrp) + endpoints.Dstaddrlen = uint32(addrlen) + } + + err = connectx(fd, &endpoints, associd, flags, iov, &n, connid) + return +} + +//sys connectx(fd int, endpoints *SaEndpoints, associd SaeAssocID, flags uint32, iov []Iovec, n *uintptr, connid *SaeConnID) (err error) //sys sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) //sys shmat(id int, addr uintptr, flag int) (ret uintptr, err error) diff --git a/vendor/golang.org/x/sys/unix/syscall_hurd.go b/vendor/golang.org/x/sys/unix/syscall_hurd.go index ba46651f8e..a6a2d2fc2b 100644 --- a/vendor/golang.org/x/sys/unix/syscall_hurd.go +++ b/vendor/golang.org/x/sys/unix/syscall_hurd.go @@ -11,6 +11,7 @@ package unix int ioctl(int, unsigned long int, uintptr_t); */ import "C" +import "unsafe" func ioctl(fd int, req uint, arg uintptr) (err error) { r0, er := C.ioctl(C.int(fd), C.ulong(req), C.uintptr_t(arg)) diff --git a/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go index 4308ac1772..d73c4652e6 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go @@ -237,6 +237,9 @@ const ( CLOCK_UPTIME_RAW_APPROX = 0x9 CLONE_NOFOLLOW = 0x1 CLONE_NOOWNERCOPY = 0x2 + CONNECT_DATA_AUTHENTICATED = 0x4 + CONNECT_DATA_IDEMPOTENT = 0x2 + CONNECT_RESUME_ON_READ_WRITE = 0x1 CR0 = 0x0 CR1 = 0x1000 CR2 = 0x2000 @@ -1265,6 +1268,10 @@ const ( RTV_SSTHRESH = 0x20 RUSAGE_CHILDREN = -0x1 RUSAGE_SELF = 0x0 + SAE_ASSOCID_ALL = 0xffffffff + SAE_ASSOCID_ANY = 0x0 + SAE_CONNID_ALL = 0xffffffff + SAE_CONNID_ANY = 0x0 SCM_CREDS = 0x3 SCM_RIGHTS = 0x1 SCM_TIMESTAMP = 0x2 diff --git a/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go index c8068a7a16..4a55a40058 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go +++ b/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go @@ -237,6 +237,9 @@ const ( CLOCK_UPTIME_RAW_APPROX = 0x9 CLONE_NOFOLLOW = 0x1 CLONE_NOOWNERCOPY = 0x2 + CONNECT_DATA_AUTHENTICATED = 0x4 + CONNECT_DATA_IDEMPOTENT = 0x2 + CONNECT_RESUME_ON_READ_WRITE = 0x1 CR0 = 0x0 CR1 = 0x1000 CR2 = 0x2000 @@ -1265,6 +1268,10 @@ const ( RTV_SSTHRESH = 0x20 RUSAGE_CHILDREN = -0x1 RUSAGE_SELF = 0x0 + SAE_ASSOCID_ALL = 0xffffffff + SAE_ASSOCID_ANY = 0x0 + SAE_CONNID_ALL = 0xffffffff + SAE_CONNID_ANY = 0x0 SCM_CREDS = 0x3 SCM_RIGHTS = 0x1 SCM_TIMESTAMP = 0x2 diff --git a/vendor/golang.org/x/sys/unix/zerrors_zos_s390x.go b/vendor/golang.org/x/sys/unix/zerrors_zos_s390x.go index da08b2ab3d..1ec2b1407b 100644 --- a/vendor/golang.org/x/sys/unix/zerrors_zos_s390x.go +++ b/vendor/golang.org/x/sys/unix/zerrors_zos_s390x.go @@ -581,6 +581,8 @@ const ( AT_EMPTY_PATH = 0x1000 AT_REMOVEDIR = 0x200 RENAME_NOREPLACE = 1 << 0 + ST_RDONLY = 1 + ST_NOSUID = 2 ) const ( diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go index b622533ef2..24b346e1a3 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go @@ -841,6 +841,26 @@ var libc_pthread_fchdir_np_trampoline_addr uintptr // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func connectx(fd int, endpoints *SaEndpoints, associd SaeAssocID, flags uint32, iov []Iovec, n *uintptr, connid *SaeConnID) (err error) { + var _p0 unsafe.Pointer + if len(iov) > 0 { + _p0 = unsafe.Pointer(&iov[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall9(libc_connectx_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(endpoints)), uintptr(associd), uintptr(flags), uintptr(_p0), uintptr(len(iov)), uintptr(unsafe.Pointer(n)), uintptr(unsafe.Pointer(connid)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_connectx_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_connectx connectx "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) { _, _, e1 := syscall_syscall6(libc_sendfile_trampoline_addr, uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags)) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s index cfe6646baf..ebd213100b 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s @@ -248,6 +248,11 @@ TEXT libc_pthread_fchdir_np_trampoline<>(SB),NOSPLIT,$0-0 GLOBL ·libc_pthread_fchdir_np_trampoline_addr(SB), RODATA, $8 DATA ·libc_pthread_fchdir_np_trampoline_addr(SB)/8, $libc_pthread_fchdir_np_trampoline<>(SB) +TEXT libc_connectx_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_connectx(SB) +GLOBL ·libc_connectx_trampoline_addr(SB), RODATA, $8 +DATA ·libc_connectx_trampoline_addr(SB)/8, $libc_connectx_trampoline<>(SB) + TEXT libc_sendfile_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_sendfile(SB) GLOBL ·libc_sendfile_trampoline_addr(SB), RODATA, $8 diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go index 13f624f69f..824b9c2d5e 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go @@ -841,6 +841,26 @@ var libc_pthread_fchdir_np_trampoline_addr uintptr // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func connectx(fd int, endpoints *SaEndpoints, associd SaeAssocID, flags uint32, iov []Iovec, n *uintptr, connid *SaeConnID) (err error) { + var _p0 unsafe.Pointer + if len(iov) > 0 { + _p0 = unsafe.Pointer(&iov[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall9(libc_connectx_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(endpoints)), uintptr(associd), uintptr(flags), uintptr(_p0), uintptr(len(iov)), uintptr(unsafe.Pointer(n)), uintptr(unsafe.Pointer(connid)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_connectx_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_connectx connectx "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) { _, _, e1 := syscall_syscall6(libc_sendfile_trampoline_addr, uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags)) if e1 != 0 { diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s index fe222b75df..4f178a2293 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s +++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s @@ -248,6 +248,11 @@ TEXT libc_pthread_fchdir_np_trampoline<>(SB),NOSPLIT,$0-0 GLOBL ·libc_pthread_fchdir_np_trampoline_addr(SB), RODATA, $8 DATA ·libc_pthread_fchdir_np_trampoline_addr(SB)/8, $libc_pthread_fchdir_np_trampoline<>(SB) +TEXT libc_connectx_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_connectx(SB) +GLOBL ·libc_connectx_trampoline_addr(SB), RODATA, $8 +DATA ·libc_connectx_trampoline_addr(SB)/8, $libc_connectx_trampoline<>(SB) + TEXT libc_sendfile_trampoline<>(SB),NOSPLIT,$0-0 JMP libc_sendfile(SB) GLOBL ·libc_sendfile_trampoline_addr(SB), RODATA, $8 diff --git a/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go index 091d107f3a..d003c3d437 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go @@ -306,6 +306,19 @@ type XVSockPgen struct { type _Socklen uint32 +type SaeAssocID uint32 + +type SaeConnID uint32 + +type SaEndpoints struct { + Srcif uint32 + Srcaddr *RawSockaddr + Srcaddrlen uint32 + Dstaddr *RawSockaddr + Dstaddrlen uint32 + _ [4]byte +} + type Xucred struct { Version uint32 Uid uint32 diff --git a/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go index 28ff4ef74d..0d45a941aa 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go @@ -306,6 +306,19 @@ type XVSockPgen struct { type _Socklen uint32 +type SaeAssocID uint32 + +type SaeConnID uint32 + +type SaEndpoints struct { + Srcif uint32 + Srcaddr *RawSockaddr + Srcaddrlen uint32 + Dstaddr *RawSockaddr + Dstaddrlen uint32 + _ [4]byte +} + type Xucred struct { Version uint32 Uid uint32 diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go index 6cbd094a3a..51e13eb055 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go +++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go @@ -625,6 +625,7 @@ const ( POLLRDNORM = 0x40 POLLWRBAND = 0x100 POLLWRNORM = 0x4 + POLLRDHUP = 0x4000 ) type CapRights struct { diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go index 7c03b6ee77..d002d8ef3c 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go @@ -630,6 +630,7 @@ const ( POLLRDNORM = 0x40 POLLWRBAND = 0x100 POLLWRNORM = 0x4 + POLLRDHUP = 0x4000 ) type CapRights struct { diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go index 422107ee8b..3f863d898d 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go +++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go @@ -616,6 +616,7 @@ const ( POLLRDNORM = 0x40 POLLWRBAND = 0x100 POLLWRNORM = 0x4 + POLLRDHUP = 0x4000 ) type CapRights struct { diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go index 505a12acfd..61c7293106 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go @@ -610,6 +610,7 @@ const ( POLLRDNORM = 0x40 POLLWRBAND = 0x100 POLLWRNORM = 0x4 + POLLRDHUP = 0x4000 ) type CapRights struct { diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_riscv64.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_riscv64.go index cc986c7900..b5d17414f0 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_riscv64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_riscv64.go @@ -612,6 +612,7 @@ const ( POLLRDNORM = 0x40 POLLWRBAND = 0x100 POLLWRNORM = 0x4 + POLLRDHUP = 0x4000 ) type CapRights struct { diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux.go b/vendor/golang.org/x/sys/unix/ztypes_linux.go index 7f1961b907..9f2550dc31 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux.go @@ -2486,7 +2486,7 @@ type XDPMmapOffsets struct { type XDPUmemReg struct { Addr uint64 Len uint64 - Chunk_size uint32 + Size uint32 Headroom uint32 Flags uint32 Tx_metadata_len uint32 diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go index 15adc04142..ad05b51a60 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go @@ -727,6 +727,37 @@ const ( RISCV_HWPROBE_EXT_ZBA = 0x8 RISCV_HWPROBE_EXT_ZBB = 0x10 RISCV_HWPROBE_EXT_ZBS = 0x20 + RISCV_HWPROBE_EXT_ZICBOZ = 0x40 + RISCV_HWPROBE_EXT_ZBC = 0x80 + RISCV_HWPROBE_EXT_ZBKB = 0x100 + RISCV_HWPROBE_EXT_ZBKC = 0x200 + RISCV_HWPROBE_EXT_ZBKX = 0x400 + RISCV_HWPROBE_EXT_ZKND = 0x800 + RISCV_HWPROBE_EXT_ZKNE = 0x1000 + RISCV_HWPROBE_EXT_ZKNH = 0x2000 + RISCV_HWPROBE_EXT_ZKSED = 0x4000 + RISCV_HWPROBE_EXT_ZKSH = 0x8000 + RISCV_HWPROBE_EXT_ZKT = 0x10000 + RISCV_HWPROBE_EXT_ZVBB = 0x20000 + RISCV_HWPROBE_EXT_ZVBC = 0x40000 + RISCV_HWPROBE_EXT_ZVKB = 0x80000 + RISCV_HWPROBE_EXT_ZVKG = 0x100000 + RISCV_HWPROBE_EXT_ZVKNED = 0x200000 + RISCV_HWPROBE_EXT_ZVKNHA = 0x400000 + RISCV_HWPROBE_EXT_ZVKNHB = 0x800000 + RISCV_HWPROBE_EXT_ZVKSED = 0x1000000 + RISCV_HWPROBE_EXT_ZVKSH = 0x2000000 + RISCV_HWPROBE_EXT_ZVKT = 0x4000000 + RISCV_HWPROBE_EXT_ZFH = 0x8000000 + RISCV_HWPROBE_EXT_ZFHMIN = 0x10000000 + RISCV_HWPROBE_EXT_ZIHINTNTL = 0x20000000 + RISCV_HWPROBE_EXT_ZVFH = 0x40000000 + RISCV_HWPROBE_EXT_ZVFHMIN = 0x80000000 + RISCV_HWPROBE_EXT_ZFA = 0x100000000 + RISCV_HWPROBE_EXT_ZTSO = 0x200000000 + RISCV_HWPROBE_EXT_ZACAS = 0x400000000 + RISCV_HWPROBE_EXT_ZICOND = 0x800000000 + RISCV_HWPROBE_EXT_ZIHINTPAUSE = 0x1000000000 RISCV_HWPROBE_KEY_CPUPERF_0 = 0x5 RISCV_HWPROBE_MISALIGNED_UNKNOWN = 0x0 RISCV_HWPROBE_MISALIGNED_EMULATED = 0x1 @@ -734,4 +765,6 @@ const ( RISCV_HWPROBE_MISALIGNED_FAST = 0x3 RISCV_HWPROBE_MISALIGNED_UNSUPPORTED = 0x4 RISCV_HWPROBE_MISALIGNED_MASK = 0x7 + RISCV_HWPROBE_KEY_ZICBOZ_BLOCK_SIZE = 0x6 + RISCV_HWPROBE_WHICH_CPUS = 0x1 ) diff --git a/vendor/golang.org/x/sys/windows/syscall_windows.go b/vendor/golang.org/x/sys/windows/syscall_windows.go index 1fa34fd17c..5cee9a3143 100644 --- a/vendor/golang.org/x/sys/windows/syscall_windows.go +++ b/vendor/golang.org/x/sys/windows/syscall_windows.go @@ -313,6 +313,10 @@ func NewCallbackCDecl(fn interface{}) uintptr { //sys SetConsoleMode(console Handle, mode uint32) (err error) = kernel32.SetConsoleMode //sys GetConsoleScreenBufferInfo(console Handle, info *ConsoleScreenBufferInfo) (err error) = kernel32.GetConsoleScreenBufferInfo //sys setConsoleCursorPosition(console Handle, position uint32) (err error) = kernel32.SetConsoleCursorPosition +//sys GetConsoleCP() (cp uint32, err error) = kernel32.GetConsoleCP +//sys GetConsoleOutputCP() (cp uint32, err error) = kernel32.GetConsoleOutputCP +//sys SetConsoleCP(cp uint32) (err error) = kernel32.SetConsoleCP +//sys SetConsoleOutputCP(cp uint32) (err error) = kernel32.SetConsoleOutputCP //sys WriteConsole(console Handle, buf *uint16, towrite uint32, written *uint32, reserved *byte) (err error) = kernel32.WriteConsoleW //sys ReadConsole(console Handle, buf *uint16, toread uint32, read *uint32, inputControl *byte) (err error) = kernel32.ReadConsoleW //sys resizePseudoConsole(pconsole Handle, size uint32) (hr error) = kernel32.ResizePseudoConsole diff --git a/vendor/golang.org/x/sys/windows/types_windows.go b/vendor/golang.org/x/sys/windows/types_windows.go index 3f03b3d57c..7b97a154c9 100644 --- a/vendor/golang.org/x/sys/windows/types_windows.go +++ b/vendor/golang.org/x/sys/windows/types_windows.go @@ -1060,6 +1060,7 @@ const ( SIO_GET_EXTENSION_FUNCTION_POINTER = IOC_INOUT | IOC_WS2 | 6 SIO_KEEPALIVE_VALS = IOC_IN | IOC_VENDOR | 4 SIO_UDP_CONNRESET = IOC_IN | IOC_VENDOR | 12 + SIO_UDP_NETRESET = IOC_IN | IOC_VENDOR | 15 // cf. http://support.microsoft.com/default.aspx?scid=kb;en-us;257460 diff --git a/vendor/golang.org/x/sys/windows/zsyscall_windows.go b/vendor/golang.org/x/sys/windows/zsyscall_windows.go index 9bb979a3e4..4c2e1bdc01 100644 --- a/vendor/golang.org/x/sys/windows/zsyscall_windows.go +++ b/vendor/golang.org/x/sys/windows/zsyscall_windows.go @@ -247,7 +247,9 @@ var ( procGetCommandLineW = modkernel32.NewProc("GetCommandLineW") procGetComputerNameExW = modkernel32.NewProc("GetComputerNameExW") procGetComputerNameW = modkernel32.NewProc("GetComputerNameW") + procGetConsoleCP = modkernel32.NewProc("GetConsoleCP") procGetConsoleMode = modkernel32.NewProc("GetConsoleMode") + procGetConsoleOutputCP = modkernel32.NewProc("GetConsoleOutputCP") procGetConsoleScreenBufferInfo = modkernel32.NewProc("GetConsoleScreenBufferInfo") procGetCurrentDirectoryW = modkernel32.NewProc("GetCurrentDirectoryW") procGetCurrentProcessId = modkernel32.NewProc("GetCurrentProcessId") @@ -347,8 +349,10 @@ var ( procSetCommMask = modkernel32.NewProc("SetCommMask") procSetCommState = modkernel32.NewProc("SetCommState") procSetCommTimeouts = modkernel32.NewProc("SetCommTimeouts") + procSetConsoleCP = modkernel32.NewProc("SetConsoleCP") procSetConsoleCursorPosition = modkernel32.NewProc("SetConsoleCursorPosition") procSetConsoleMode = modkernel32.NewProc("SetConsoleMode") + procSetConsoleOutputCP = modkernel32.NewProc("SetConsoleOutputCP") procSetCurrentDirectoryW = modkernel32.NewProc("SetCurrentDirectoryW") procSetDefaultDllDirectories = modkernel32.NewProc("SetDefaultDllDirectories") procSetDllDirectoryW = modkernel32.NewProc("SetDllDirectoryW") @@ -2162,6 +2166,15 @@ func GetComputerName(buf *uint16, n *uint32) (err error) { return } +func GetConsoleCP() (cp uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetConsoleCP.Addr(), 0, 0, 0, 0) + cp = uint32(r0) + if cp == 0 { + err = errnoErr(e1) + } + return +} + func GetConsoleMode(console Handle, mode *uint32) (err error) { r1, _, e1 := syscall.Syscall(procGetConsoleMode.Addr(), 2, uintptr(console), uintptr(unsafe.Pointer(mode)), 0) if r1 == 0 { @@ -2170,6 +2183,15 @@ func GetConsoleMode(console Handle, mode *uint32) (err error) { return } +func GetConsoleOutputCP() (cp uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetConsoleOutputCP.Addr(), 0, 0, 0, 0) + cp = uint32(r0) + if cp == 0 { + err = errnoErr(e1) + } + return +} + func GetConsoleScreenBufferInfo(console Handle, info *ConsoleScreenBufferInfo) (err error) { r1, _, e1 := syscall.Syscall(procGetConsoleScreenBufferInfo.Addr(), 2, uintptr(console), uintptr(unsafe.Pointer(info)), 0) if r1 == 0 { @@ -3038,6 +3060,14 @@ func SetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) { return } +func SetConsoleCP(cp uint32) (err error) { + r1, _, e1 := syscall.Syscall(procSetConsoleCP.Addr(), 1, uintptr(cp), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + func setConsoleCursorPosition(console Handle, position uint32) (err error) { r1, _, e1 := syscall.Syscall(procSetConsoleCursorPosition.Addr(), 2, uintptr(console), uintptr(position), 0) if r1 == 0 { @@ -3054,6 +3084,14 @@ func SetConsoleMode(console Handle, mode uint32) (err error) { return } +func SetConsoleOutputCP(cp uint32) (err error) { + r1, _, e1 := syscall.Syscall(procSetConsoleOutputCP.Addr(), 1, uintptr(cp), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + func SetCurrentDirectory(path *uint16) (err error) { r1, _, e1 := syscall.Syscall(procSetCurrentDirectoryW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) if r1 == 0 { diff --git a/vendor/golang.org/x/term/term_windows.go b/vendor/golang.org/x/term/term_windows.go index 465f560604..df6bf948e1 100644 --- a/vendor/golang.org/x/term/term_windows.go +++ b/vendor/golang.org/x/term/term_windows.go @@ -26,6 +26,7 @@ func makeRaw(fd int) (*State, error) { return nil, err } raw := st &^ (windows.ENABLE_ECHO_INPUT | windows.ENABLE_PROCESSED_INPUT | windows.ENABLE_LINE_INPUT | windows.ENABLE_PROCESSED_OUTPUT) + raw |= windows.ENABLE_VIRTUAL_TERMINAL_INPUT if err := windows.SetConsoleMode(windows.Handle(fd), raw); err != nil { return nil, err } diff --git a/vendor/modules.txt b/vendor/modules.txt index fdb6fd21a4..755b10a831 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -67,7 +67,7 @@ github.com/cespare/xxhash/v2 # github.com/containerd/cgroups/v3 v3.0.3 ## explicit; go 1.18 github.com/containerd/cgroups/v3/cgroup1/stats -# github.com/containerd/containerd v1.7.20 +# github.com/containerd/containerd v1.7.21 ## explicit; go 1.21 github.com/containerd/containerd/archive github.com/containerd/containerd/archive/compression @@ -91,7 +91,6 @@ github.com/containerd/containerd/namespaces github.com/containerd/containerd/pkg/cleanup github.com/containerd/containerd/pkg/epoch github.com/containerd/containerd/pkg/randutil -github.com/containerd/containerd/pkg/userns github.com/containerd/containerd/platforms github.com/containerd/containerd/protobuf github.com/containerd/containerd/protobuf/proto @@ -130,13 +129,13 @@ github.com/containerd/ttrpc # github.com/containerd/typeurl/v2 v2.1.1 ## explicit; go 1.13 github.com/containerd/typeurl/v2 -# github.com/containers/common v0.60.1 +# github.com/containers/common v0.60.2 ## explicit; go 1.21.0 github.com/containers/common/pkg/auth github.com/containers/common/pkg/capabilities github.com/containers/common/pkg/completion github.com/containers/common/pkg/password -# github.com/containers/image/v5 v5.32.1 +# github.com/containers/image/v5 v5.32.2 ## explicit; go 1.21.0 github.com/containers/image/v5/docker github.com/containers/image/v5/docker/policyconfiguration @@ -204,7 +203,7 @@ github.com/davecgh/go-spew/spew # github.com/distribution/reference v0.6.0 ## explicit; go 1.20 github.com/distribution/reference -# github.com/docker/cli v27.1.2+incompatible +# github.com/docker/cli v27.2.0+incompatible ## explicit github.com/docker/cli/cli/config github.com/docker/cli/cli/config/configfile @@ -424,7 +423,7 @@ github.com/mattn/go-colorable # github.com/mattn/go-isatty v0.0.20 ## explicit; go 1.15 github.com/mattn/go-isatty -# github.com/mattn/go-sqlite3 v1.14.22 +# github.com/mattn/go-sqlite3 v1.14.23 ## explicit; go 1.19 github.com/mattn/go-sqlite3 # github.com/maxbrunsfeld/counterfeiter/v6 v6.8.1 @@ -448,9 +447,12 @@ github.com/moby/sys/mountinfo # github.com/moby/sys/sequential v0.5.0 ## explicit; go 1.17 github.com/moby/sys/sequential -# github.com/moby/sys/user v0.2.0 -## explicit; go 1.21 +# github.com/moby/sys/user v0.3.0 +## explicit; go 1.17 github.com/moby/sys/user +# github.com/moby/sys/userns v0.1.0 +## explicit; go 1.21 +github.com/moby/sys/userns # github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd ## explicit github.com/modern-go/concurrent @@ -460,8 +462,8 @@ github.com/modern-go/reflect2 # github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 ## explicit github.com/munnerz/goautoneg -# github.com/onsi/ginkgo/v2 v2.20.1 -## explicit; go 1.20 +# github.com/onsi/ginkgo/v2 v2.20.2 +## explicit; go 1.22 github.com/onsi/ginkgo/v2 github.com/onsi/ginkgo/v2/config github.com/onsi/ginkgo/v2/formatter @@ -529,7 +531,7 @@ github.com/openshift/client-go/config/informers/externalversions/config/v1alpha1 github.com/openshift/client-go/config/informers/externalversions/internalinterfaces github.com/openshift/client-go/config/listers/config/v1 github.com/openshift/client-go/config/listers/config/v1alpha1 -# github.com/operator-framework/api v0.26.0 +# github.com/operator-framework/api v0.27.0 ## explicit; go 1.22.0 github.com/operator-framework/api/crds github.com/operator-framework/api/pkg/constraints @@ -547,7 +549,7 @@ github.com/operator-framework/api/pkg/validation github.com/operator-framework/api/pkg/validation/errors github.com/operator-framework/api/pkg/validation/interfaces github.com/operator-framework/api/pkg/validation/internal -# github.com/operator-framework/operator-registry v1.46.0 +# github.com/operator-framework/operator-registry v1.47.0 ## explicit; go 1.22.5 github.com/operator-framework/operator-registry/alpha/model github.com/operator-framework/operator-registry/alpha/property @@ -622,8 +624,8 @@ github.com/syndtr/gocapability/capability # github.com/x448/float16 v0.8.4 ## explicit; go 1.11 github.com/x448/float16 -# go.etcd.io/bbolt v1.3.10 -## explicit; go 1.21 +# go.etcd.io/bbolt v1.3.11 +## explicit; go 1.22 go.etcd.io/bbolt # go.etcd.io/etcd/api/v3 v3.5.14 ## explicit; go 1.21 @@ -731,7 +733,7 @@ go.uber.org/zap/internal/pool go.uber.org/zap/internal/stacktrace go.uber.org/zap/zapcore go.uber.org/zap/zapgrpc -# golang.org/x/crypto v0.26.0 +# golang.org/x/crypto v0.27.0 ## explicit; go 1.20 golang.org/x/crypto/cryptobyte golang.org/x/crypto/cryptobyte/asn1 @@ -745,13 +747,13 @@ golang.org/x/crypto/salsa20/salsa golang.org/x/exp/constraints golang.org/x/exp/maps golang.org/x/exp/slices -# golang.org/x/mod v0.20.0 -## explicit; go 1.18 +# golang.org/x/mod v0.21.0 +## explicit; go 1.22.0 golang.org/x/mod/internal/lazyregexp golang.org/x/mod/modfile golang.org/x/mod/module golang.org/x/mod/semver -# golang.org/x/net v0.28.0 +# golang.org/x/net v0.29.0 ## explicit; go 1.18 golang.org/x/net/context golang.org/x/net/html @@ -776,17 +778,17 @@ golang.org/x/oauth2/internal golang.org/x/sync/errgroup golang.org/x/sync/semaphore golang.org/x/sync/singleflight -# golang.org/x/sys v0.24.0 +# golang.org/x/sys v0.25.0 ## explicit; go 1.18 golang.org/x/sys/cpu golang.org/x/sys/plan9 golang.org/x/sys/unix golang.org/x/sys/windows golang.org/x/sys/windows/registry -# golang.org/x/term v0.23.0 +# golang.org/x/term v0.24.0 ## explicit; go 1.18 golang.org/x/term -# golang.org/x/text v0.17.0 +# golang.org/x/text v0.18.0 ## explicit; go 1.18 golang.org/x/text/cases golang.org/x/text/encoding @@ -853,7 +855,7 @@ gomodules.xyz/jsonpatch/v2 # google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de ## explicit; go 1.19 google.golang.org/genproto/protobuf/field_mask -# google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 +# google.golang.org/genproto/googleapis/api v0.0.0-20240604185151-ef581f913117 ## explicit; go 1.20 google.golang.org/genproto/googleapis/api google.golang.org/genproto/googleapis/api/annotations @@ -863,7 +865,7 @@ google.golang.org/genproto/googleapis/api/httpbody ## explicit; go 1.20 google.golang.org/genproto/googleapis/rpc/errdetails google.golang.org/genproto/googleapis/rpc/status -# google.golang.org/grpc v1.65.0 => google.golang.org/grpc v1.63.2 +# google.golang.org/grpc v1.66.0 => google.golang.org/grpc v1.63.2 ## explicit; go 1.19 google.golang.org/grpc google.golang.org/grpc/attributes From 6d3ea25c89ed8faccb433d23157cd03886f2431e Mon Sep 17 00:00:00 2001 From: Todd Short Date: Fri, 6 Sep 2024 14:34:22 -0400 Subject: [PATCH 2/2] Update CRDs Signed-off-by: Todd Short --- .../0000_50_olm_00-catalogsources.crd.yaml | 47 +-- ..._50_olm_00-clusterserviceversions.crd.yaml | 301 ++++++++---------- .../crds/0000_50_olm_00-installplans.crd.yaml | 5 +- .../crds/0000_50_olm_00-olmconfigs.crd.yaml | 28 +- ...0000_50_olm_00-operatorconditions.crd.yaml | 132 +------- .../0000_50_olm_00-operatorgroups.crd.yaml | 33 +- .../crds/0000_50_olm_00-operators.crd.yaml | 3 +- .../0000_50_olm_00-subscriptions.crd.yaml | 133 ++++---- 8 files changed, 232 insertions(+), 450 deletions(-) diff --git a/deploy/chart/crds/0000_50_olm_00-catalogsources.crd.yaml b/deploy/chart/crds/0000_50_olm_00-catalogsources.crd.yaml index 9b22b37416..59d316f8de 100644 --- a/deploy/chart/crds/0000_50_olm_00-catalogsources.crd.yaml +++ b/deploy/chart/crds/0000_50_olm_00-catalogsources.crd.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 + controller-gen.kubebuilder.io/version: v0.16.1 name: catalogsources.operators.coreos.com spec: group: operators.coreos.com @@ -363,7 +363,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). type: array items: type: string @@ -378,7 +378,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). type: array items: type: string @@ -535,7 +535,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). type: array items: type: string @@ -550,7 +550,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). type: array items: type: string @@ -708,7 +708,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). type: array items: type: string @@ -723,7 +723,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). type: array items: type: string @@ -880,7 +880,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). type: array items: type: string @@ -895,7 +895,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). type: array items: type: string @@ -992,13 +992,11 @@ spec: - the $GOMEMLIMIT environment variable will be set to this value in bytes - the memory request will be set to this value - This field should be set if it's desired to reduce the footprint of a catalog server as much as possible, or if a catalog being served is very large and needs more than the default allocation. If your index image has a file- system cache, determine a good approximation for this value by doubling the size of the package cache at /tmp/cache/cache/packages.json in the index image. - This field is best-effort; if unset, no default will be used and no Pod memory limit or $GOMEMLIMIT value will be set. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ anyOf: @@ -1029,7 +1027,6 @@ spec: specified. Specifying a value other than `legacy` or `restricted` result in a validation error. When using older catalog images, which can not run in `restricted` mode, the SecurityContextConfig should be set to `legacy`. - More information about PSA can be found here: https://kubernetes.io/docs/concepts/security/pod-security-admission/' type: string enum: @@ -1136,24 +1133,7 @@ spec: introduced will use conditions. type: array items: - description: |- - Condition contains details for one aspect of the current state of this API Resource. - --- - This struct is intended for direct use as an array at the field path .status.conditions. For example, - - - type FooStatus struct{ - // Represents the observations of a foo's current state. - // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" - // +patchMergeKey=type - // +patchStrategy=merge - // +listType=map - // +listMapKey=type - Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` - - - // other fields - } + description: Condition contains details for one aspect of the current state of this API Resource. type: object required: - lastTransitionTime @@ -1201,12 +1181,7 @@ spec: - "False" - Unknown type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. type: string maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ diff --git a/deploy/chart/crds/0000_50_olm_00-clusterserviceversions.crd.yaml b/deploy/chart/crds/0000_50_olm_00-clusterserviceversions.crd.yaml index a3192a66d3..9f91b0691c 100644 --- a/deploy/chart/crds/0000_50_olm_00-clusterserviceversions.crd.yaml +++ b/deploy/chart/crds/0000_50_olm_00-clusterserviceversions.crd.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 + controller-gen.kubebuilder.io/version: v0.16.1 name: clusterserviceversions.operators.coreos.com spec: group: operators.coreos.com @@ -339,7 +339,6 @@ spec: CustomResourceDefinitions declares all of the CRDs managed or required by an operator being ran by ClusterServiceVersion. - If the CRD is present in the Owned list, it is implicitly required. type: object properties: @@ -774,9 +773,6 @@ spec: description: |- Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate. - --- - TODO: Update this to follow our convention for oneOf, whatever we decide it - to be. type: object properties: maxSurge: @@ -1118,7 +1114,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). type: array items: type: string @@ -1133,7 +1129,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). type: array items: type: string @@ -1290,7 +1286,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). type: array items: type: string @@ -1305,7 +1301,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). type: array items: type: string @@ -1463,7 +1459,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). type: array items: type: string @@ -1478,7 +1474,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). type: array items: type: string @@ -1635,7 +1631,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). type: array items: type: string @@ -1650,7 +1646,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). type: array items: type: string @@ -1812,9 +1808,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" optional: @@ -1873,9 +1867,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" optional: @@ -1908,9 +1900,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" optional: @@ -1930,9 +1920,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" optional: @@ -2212,9 +2200,9 @@ spec: Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string + default: "" httpGet: description: HTTPGet specifies the http request to perform. type: object @@ -2418,9 +2406,9 @@ spec: Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string + default: "" httpGet: description: HTTPGet specifies the http request to perform. type: object @@ -2558,11 +2546,9 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. It can only be set for containers. type: array items: @@ -2577,6 +2563,12 @@ spec: the Pod where this field is used. It makes that resource available inside a container. type: string + request: + description: |- + Request is the name chosen for a request in the referenced claim. + If empty, everything from the claim is made available, otherwise + only the result of this request. + type: string x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map @@ -2694,7 +2686,7 @@ spec: procMount: description: |- procMount denotes the type of proc mount to use for the containers. - The default is DefaultProcMount which uses the container runtime defaults for + The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows. @@ -2775,7 +2767,6 @@ spec: type indicates which kind of seccomp profile will be applied. Valid options are: - Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. @@ -2858,9 +2849,9 @@ spec: Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string + default: "" httpGet: description: HTTPGet specifies the http request to perform. type: object @@ -3064,10 +3055,8 @@ spec: RecursiveReadOnly specifies whether read-only mounts should be handled recursively. - If ReadOnly is false, this field has no meaning and must be unspecified. - If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this @@ -3075,11 +3064,9 @@ spec: supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. - If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). - If this field is not specified, it is treated as an equivalent of Disabled. type: string subPath: @@ -3179,7 +3166,6 @@ spec: removed or restarted. The kubelet may evict a Pod if an ephemeral container causes the Pod to exceed its resource allocation. - To add an ephemeral container, use the ephemeralcontainers subresource of an existing Pod. Ephemeral containers may not be removed or restarted. type: object @@ -3259,9 +3245,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" optional: @@ -3320,9 +3304,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" optional: @@ -3355,9 +3337,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" optional: @@ -3377,9 +3357,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" optional: @@ -3651,9 +3629,9 @@ spec: Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string + default: "" httpGet: description: HTTPGet specifies the http request to perform. type: object @@ -3845,9 +3823,9 @@ spec: Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string + default: "" httpGet: description: HTTPGet specifies the http request to perform. type: object @@ -3984,11 +3962,9 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. It can only be set for containers. type: array items: @@ -4003,6 +3979,12 @@ spec: the Pod where this field is used. It makes that resource available inside a container. type: string + request: + description: |- + Request is the name chosen for a request in the referenced claim. + If empty, everything from the claim is made available, otherwise + only the result of this request. + type: string x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map @@ -4108,7 +4090,7 @@ spec: procMount: description: |- procMount denotes the type of proc mount to use for the containers. - The default is DefaultProcMount which uses the container runtime defaults for + The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows. @@ -4189,7 +4171,6 @@ spec: type indicates which kind of seccomp profile will be applied. Valid options are: - Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. @@ -4265,9 +4246,9 @@ spec: Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string + default: "" httpGet: description: HTTPGet specifies the http request to perform. type: object @@ -4394,7 +4375,6 @@ spec: The ephemeral container will be run in the namespaces (IPC, PID, etc) of this container. If not set then the ephemeral container uses the namespaces configured in the Pod spec. - The container runtime must implement support for this feature. If the runtime does not support namespace targeting then the result of setting this field is undefined. type: string @@ -4481,10 +4461,8 @@ spec: RecursiveReadOnly specifies whether read-only mounts should be handled recursively. - If ReadOnly is false, this field has no meaning and must be unspecified. - If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this @@ -4492,11 +4470,9 @@ spec: supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. - If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). - If this field is not specified, it is treated as an equivalent of Disabled. type: string subPath: @@ -4601,9 +4577,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" x-kubernetes-map-type: atomic @@ -4705,9 +4679,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" optional: @@ -4766,9 +4738,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" optional: @@ -4801,9 +4771,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" optional: @@ -4823,9 +4791,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" optional: @@ -5105,9 +5071,9 @@ spec: Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string + default: "" httpGet: description: HTTPGet specifies the http request to perform. type: object @@ -5311,9 +5277,9 @@ spec: Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string + default: "" httpGet: description: HTTPGet specifies the http request to perform. type: object @@ -5451,11 +5417,9 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. It can only be set for containers. type: array items: @@ -5470,6 +5434,12 @@ spec: the Pod where this field is used. It makes that resource available inside a container. type: string + request: + description: |- + Request is the name chosen for a request in the referenced claim. + If empty, everything from the claim is made available, otherwise + only the result of this request. + type: string x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map @@ -5587,7 +5557,7 @@ spec: procMount: description: |- procMount denotes the type of proc mount to use for the containers. - The default is DefaultProcMount which uses the container runtime defaults for + The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows. @@ -5668,7 +5638,6 @@ spec: type indicates which kind of seccomp profile will be applied. Valid options are: - Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. @@ -5751,9 +5720,9 @@ spec: Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - If this is not specified, the default behavior is defined by gRPC. type: string + default: "" httpGet: description: HTTPGet specifies the http request to perform. type: object @@ -5957,10 +5926,8 @@ spec: RecursiveReadOnly specifies whether read-only mounts should be handled recursively. - If ReadOnly is false, this field has no meaning and must be unspecified. - If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this @@ -5968,11 +5935,9 @@ spec: supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. - If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). - If this field is not specified, it is treated as an equivalent of Disabled. type: string subPath: @@ -6002,9 +5967,11 @@ spec: x-kubernetes-list-type: map nodeName: description: |- - NodeName is a request to schedule this pod onto a specific node. If it is non-empty, - the scheduler simply schedules this pod onto that node, assuming that it fits resource - requirements. + NodeName indicates in which node this pod is scheduled. + If empty, this pod is a candidate for scheduling by the scheduler defined in schedulerName. + Once this field is set, the kubelet for this node becomes responsible for the lifecycle of this pod. + This field should not be used to express a desire for the pod to be scheduled on a specific node. + https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodename type: string nodeSelector: description: |- @@ -6020,11 +5987,9 @@ spec: Specifies the OS of the containers in the pod. Some pod and container fields are restricted if this is set. - If the OS field is set to linux, the following fields must be unset: -securityContext.windowsOptions - If the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC @@ -6039,6 +6004,7 @@ spec: - spec.securityContext.runAsUser - spec.securityContext.runAsGroup - spec.securityContext.supplementalGroups + - spec.securityContext.supplementalGroupsPolicy - spec.containers[*].securityContext.appArmorProfile - spec.containers[*].securityContext.seLinuxOptions - spec.containers[*].securityContext.seccompProfile @@ -6124,16 +6090,17 @@ spec: will be made available to those containers which consume them by name. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. type: array items: description: |- - PodResourceClaim references exactly one ResourceClaim through a ClaimSource. + PodResourceClaim references exactly one ResourceClaim, either directly + or by naming a ResourceClaimTemplate which is then turned into a ResourceClaim + for the pod. + It adds a name to it that uniquely identifies the ResourceClaim inside the Pod. Containers that need access to the ResourceClaim reference it with this name. type: object @@ -6145,32 +6112,32 @@ spec: Name uniquely identifies this resource claim inside the pod. This must be a DNS_LABEL. type: string - source: - description: Source describes where to find the ResourceClaim. - type: object - properties: - resourceClaimName: - description: |- - ResourceClaimName is the name of a ResourceClaim object in the same - namespace as this pod. - type: string - resourceClaimTemplateName: - description: |- - ResourceClaimTemplateName is the name of a ResourceClaimTemplate - object in the same namespace as this pod. + resourceClaimName: + description: |- + ResourceClaimName is the name of a ResourceClaim object in the same + namespace as this pod. + Exactly one of ResourceClaimName and ResourceClaimTemplateName must + be set. + type: string + resourceClaimTemplateName: + description: |- + ResourceClaimTemplateName is the name of a ResourceClaimTemplate + object in the same namespace as this pod. - The template will be used to create a new ResourceClaim, which will - be bound to this pod. When this pod is deleted, the ResourceClaim - will also be deleted. The pod name and resource name, along with a - generated component, will be used to form a unique name for the - ResourceClaim, which will be recorded in pod.status.resourceClaimStatuses. + The template will be used to create a new ResourceClaim, which will + be bound to this pod. When this pod is deleted, the ResourceClaim + will also be deleted. The pod name and resource name, along with a + generated component, will be used to form a unique name for the + ResourceClaim, which will be recorded in pod.status.resourceClaimStatuses. + This field is immutable and no changes will be made to the + corresponding ResourceClaim by the control plane after creating the + ResourceClaim. - This field is immutable and no changes will be made to the - corresponding ResourceClaim by the control plane after creating the - ResourceClaim. - type: string + Exactly one of ResourceClaimName and ResourceClaimTemplateName must + be set. + type: string x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map @@ -6200,7 +6167,6 @@ spec: If schedulingGates is not empty, the pod will stay in the SchedulingGated state and the scheduler will not attempt to schedule the pod. - SchedulingGates can only be set at pod creation time, and be removed only afterwards. type: array items: @@ -6252,12 +6218,10 @@ spec: Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: - 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- - If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows. type: integer @@ -6343,25 +6307,34 @@ spec: type indicates which kind of seccomp profile will be applied. Valid options are: - Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. type: string supplementalGroups: description: |- - A list of groups applied to the first process run in each container, in addition - to the container's primary GID, the fsGroup (if specified), and group memberships - defined in the container image for the uid of the container process. If unspecified, - no additional groups are added to any container. Note that group memberships - defined in the container image for the uid of the container process are still effective, - even if they are not included in this list. + A list of groups applied to the first process run in each container, in + addition to the container's primary GID and fsGroup (if specified). If + the SupplementalGroupsPolicy feature is enabled, the + supplementalGroupsPolicy field determines whether these are in addition + to or instead of any group memberships defined in the container image. + If unspecified, no additional groups are added, though group memberships + defined in the container image may still be used, depending on the + supplementalGroupsPolicy field. Note that this field cannot be set when spec.os.name is windows. type: array items: type: integer format: int64 x-kubernetes-list-type: atomic + supplementalGroupsPolicy: + description: |- + Defines how supplemental groups of the first container processes are calculated. + Valid values are "Merge" and "Strict". If not specified, "Merge" is used. + (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled + and the container runtime must implement support for this feature. + Note that this field cannot be set when spec.os.name is windows. + type: string sysctls: description: |- Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported @@ -6568,7 +6541,6 @@ spec: Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector. - This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default). type: array items: @@ -6608,7 +6580,6 @@ spec: Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. - For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | @@ -6626,7 +6597,6 @@ spec: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. - If this value is nil, the behavior is equivalent to the Honor policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag. type: string @@ -6638,7 +6608,6 @@ spec: has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. - If this value is nil, the behavior is equivalent to the Ignore policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag. type: string @@ -6706,7 +6675,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - TODO: how do we prevent errors in the filesystem from compromising the machine type: string partition: description: |- @@ -6748,6 +6716,7 @@ spec: Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. type: string + default: ext4 kind: description: 'kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared' type: string @@ -6756,6 +6725,7 @@ spec: readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. type: boolean + default: false azureFile: description: azureFile represents an Azure File Service mount on the host and bind mount to the pod. type: object @@ -6814,9 +6784,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" x-kubernetes-map-type: atomic @@ -6858,9 +6826,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" x-kubernetes-map-type: atomic @@ -6928,9 +6894,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" optional: @@ -6969,9 +6933,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" x-kubernetes-map-type: atomic @@ -7093,7 +7055,6 @@ spec: The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. - Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity @@ -7104,17 +7065,14 @@ spec: information on the connection between this volume type and PersistentVolumeClaim). - Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. - Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. - A pod can use both types of ephemeral volumes and persistent volumes at the same time. type: object @@ -7129,7 +7087,6 @@ spec: entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). - An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until @@ -7139,11 +7096,9 @@ spec: this should not be necessary, but it may be useful when manually reconstructing a broken cluster. - This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. - Required, must not be nil. type: object required: @@ -7342,7 +7297,7 @@ spec: set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled. + (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default). type: string volumeMode: description: |- @@ -7361,7 +7316,6 @@ spec: fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. - TODO: how do we prevent errors in the filesystem from compromising the machine type: string lun: description: 'lun is Optional: FC target lun number' @@ -7428,9 +7382,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" x-kubernetes-map-type: atomic @@ -7461,7 +7413,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - TODO: how do we prevent errors in the filesystem from compromising the machine type: string partition: description: |- @@ -7538,9 +7489,6 @@ spec: used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath - --- - TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not - mount host directories as read/write. type: object required: - path @@ -7557,6 +7505,41 @@ spec: Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath type: string + image: + description: |- + image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine. + The volume is resolved at pod startup depending on which PullPolicy value is provided: + + - Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. + - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. + - IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. + + The volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation. + A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message. + The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field. + The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images. + The volume will be mounted read-only (ro) and non-executable files (noexec). + Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath). + The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type. + type: object + properties: + pullPolicy: + description: |- + Policy for pulling OCI objects. Possible values are: + Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. + Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. + IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. + Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. + type: string + reference: + description: |- + Required: Image or artifact reference to be used. + Behaves in the same way as pod.spec.containers[*].image. + Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets. + More info: https://kubernetes.io/docs/concepts/containers/images + This field is optional to allow higher level config management to default or override + container images in workload controllers like Deployments and StatefulSets. + type: string iscsi: description: |- iscsi represents an ISCSI Disk resource that is attached to a @@ -7580,7 +7563,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi - TODO: how do we prevent errors in the filesystem from compromising the machine type: string initiatorName: description: |- @@ -7596,6 +7578,7 @@ spec: iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp). type: string + default: default lun: description: lun represents iSCSI Target Lun number. type: integer @@ -7623,9 +7606,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" x-kubernetes-map-type: atomic @@ -7734,10 +7715,14 @@ spec: type: integer format: int32 sources: - description: sources is the list of volume projections + description: |- + sources is the list of volume projections. Each entry in this list + handles one source. type: array items: - description: Projection that may be projected along with other supported volume types + description: |- + Projection that may be projected along with other supported volume types. + Exactly one of these fields must be set. type: object properties: clusterTrustBundle: @@ -7745,14 +7730,11 @@ spec: ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field of ClusterTrustBundle objects in an auto-updating file. - Alpha, gated by the ClusterTrustBundleProjection feature gate. - ClusterTrustBundle objects can either be selected by name, or by the combination of signer name and a label selector. - Kubelet performs aggressive normalization of the PEM contents written into the pod filesystem. Esoteric PEM features such as inter-block comments and block headers are stripped. Certificates are deduplicated. @@ -7880,9 +7862,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" optional: @@ -7999,9 +7979,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" optional: @@ -8088,7 +8066,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd - TODO: how do we prevent errors in the filesystem from compromising the machine type: string image: description: |- @@ -8101,6 +8078,7 @@ spec: Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it type: string + default: /etc/ceph/keyring monitors: description: |- monitors is a collection of Ceph monitors. @@ -8115,6 +8093,7 @@ spec: Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it type: string + default: rbd readOnly: description: |- readOnly here will force the ReadOnly setting in VolumeMounts. @@ -8135,9 +8114,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" x-kubernetes-map-type: atomic @@ -8147,6 +8124,7 @@ spec: Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it type: string + default: admin scaleIO: description: scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. type: object @@ -8162,6 +8140,7 @@ spec: Ex. "ext4", "xfs", "ntfs". Default is "xfs". type: string + default: xfs gateway: description: gateway is the host address of the ScaleIO API Gateway. type: string @@ -8185,9 +8164,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" x-kubernetes-map-type: atomic @@ -8199,6 +8176,7 @@ spec: storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned. type: string + default: ThinProvisioned storagePool: description: storagePool is the ScaleIO Storage Pool associated with the protection domain. type: string @@ -8300,9 +8278,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" x-kubernetes-map-type: atomic @@ -8678,7 +8654,6 @@ spec: description: |- Resources is a list of resources this rule applies to. - For example: 'pods' means pods. 'pods/log' means the log subresource of pods. @@ -8687,11 +8662,9 @@ spec: '*/scale' means all scale subresources. '*/*' means all resources and their subresources. - If wildcard is present, the validation rule will ensure resources do not overlap with each other. - Depending on the enclosing object, subresources might not be allowed. Required. type: array diff --git a/deploy/chart/crds/0000_50_olm_00-installplans.crd.yaml b/deploy/chart/crds/0000_50_olm_00-installplans.crd.yaml index 97c4551e04..dfa1681535 100644 --- a/deploy/chart/crds/0000_50_olm_00-installplans.crd.yaml +++ b/deploy/chart/crds/0000_50_olm_00-installplans.crd.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 + controller-gen.kubebuilder.io/version: v0.16.1 name: installplans.operators.coreos.com spec: group: operators.coreos.com @@ -85,7 +85,6 @@ spec: InstallPlanStatus represents the information about the status of steps required to complete installation. - Status may trail the actual state of a system. type: object required: @@ -110,7 +109,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -166,7 +164,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- diff --git a/deploy/chart/crds/0000_50_olm_00-olmconfigs.crd.yaml b/deploy/chart/crds/0000_50_olm_00-olmconfigs.crd.yaml index 21a679ca25..e4290c38eb 100644 --- a/deploy/chart/crds/0000_50_olm_00-olmconfigs.crd.yaml +++ b/deploy/chart/crds/0000_50_olm_00-olmconfigs.crd.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 + controller-gen.kubebuilder.io/version: v0.16.1 name: olmconfigs.operators.coreos.com spec: group: operators.coreos.com @@ -74,24 +74,7 @@ spec: conditions: type: array items: - description: |- - Condition contains details for one aspect of the current state of this API Resource. - --- - This struct is intended for direct use as an array at the field path .status.conditions. For example, - - - type FooStatus struct{ - // Represents the observations of a foo's current state. - // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" - // +patchMergeKey=type - // +patchStrategy=merge - // +listType=map - // +listMapKey=type - Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` - - - // other fields - } + description: Condition contains details for one aspect of the current state of this API Resource. type: object required: - lastTransitionTime @@ -139,12 +122,7 @@ spec: - "False" - Unknown type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. type: string maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ diff --git a/deploy/chart/crds/0000_50_olm_00-operatorconditions.crd.yaml b/deploy/chart/crds/0000_50_olm_00-operatorconditions.crd.yaml index 571d8f8e6e..6d6ef53bee 100644 --- a/deploy/chart/crds/0000_50_olm_00-operatorconditions.crd.yaml +++ b/deploy/chart/crds/0000_50_olm_00-operatorconditions.crd.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 + controller-gen.kubebuilder.io/version: v0.16.1 name: operatorconditions.operators.coreos.com spec: group: operators.coreos.com @@ -53,24 +53,7 @@ spec: overrides: type: array items: - description: |- - Condition contains details for one aspect of the current state of this API Resource. - --- - This struct is intended for direct use as an array at the field path .status.conditions. For example, - - - type FooStatus struct{ - // Represents the observations of a foo's current state. - // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" - // +patchMergeKey=type - // +patchStrategy=merge - // +listType=map - // +listMapKey=type - Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` - - - // other fields - } + description: Condition contains details for one aspect of the current state of this API Resource. type: object required: - message @@ -117,12 +100,7 @@ spec: - "False" - Unknown type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. type: string maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ @@ -139,24 +117,7 @@ spec: conditions: type: array items: - description: |- - Condition contains details for one aspect of the current state of this API Resource. - --- - This struct is intended for direct use as an array at the field path .status.conditions. For example, - - - type FooStatus struct{ - // Represents the observations of a foo's current state. - // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" - // +patchMergeKey=type - // +patchStrategy=merge - // +listType=map - // +listMapKey=type - Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` - - - // other fields - } + description: Condition contains details for one aspect of the current state of this API Resource. type: object required: - lastTransitionTime @@ -204,12 +165,7 @@ spec: - "False" - Unknown type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. type: string maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ @@ -251,24 +207,7 @@ spec: conditions: type: array items: - description: |- - Condition contains details for one aspect of the current state of this API Resource. - --- - This struct is intended for direct use as an array at the field path .status.conditions. For example, - - - type FooStatus struct{ - // Represents the observations of a foo's current state. - // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" - // +patchMergeKey=type - // +patchStrategy=merge - // +listType=map - // +listMapKey=type - Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` - - - // other fields - } + description: Condition contains details for one aspect of the current state of this API Resource. type: object required: - lastTransitionTime @@ -316,12 +255,7 @@ spec: - "False" - Unknown type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. type: string maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ @@ -332,24 +266,7 @@ spec: overrides: type: array items: - description: |- - Condition contains details for one aspect of the current state of this API Resource. - --- - This struct is intended for direct use as an array at the field path .status.conditions. For example, - - - type FooStatus struct{ - // Represents the observations of a foo's current state. - // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" - // +patchMergeKey=type - // +patchStrategy=merge - // +listType=map - // +listMapKey=type - Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` - - - // other fields - } + description: Condition contains details for one aspect of the current state of this API Resource. type: object required: - message @@ -396,12 +313,7 @@ spec: - "False" - Unknown type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. type: string maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ @@ -416,24 +328,7 @@ spec: conditions: type: array items: - description: |- - Condition contains details for one aspect of the current state of this API Resource. - --- - This struct is intended for direct use as an array at the field path .status.conditions. For example, - - - type FooStatus struct{ - // Represents the observations of a foo's current state. - // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" - // +patchMergeKey=type - // +patchStrategy=merge - // +listType=map - // +listMapKey=type - Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` - - - // other fields - } + description: Condition contains details for one aspect of the current state of this API Resource. type: object required: - lastTransitionTime @@ -481,12 +376,7 @@ spec: - "False" - Unknown type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. type: string maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ diff --git a/deploy/chart/crds/0000_50_olm_00-operatorgroups.crd.yaml b/deploy/chart/crds/0000_50_olm_00-operatorgroups.crd.yaml index 2061eaa9aa..5e314f9c57 100644 --- a/deploy/chart/crds/0000_50_olm_00-operatorgroups.crd.yaml +++ b/deploy/chart/crds/0000_50_olm_00-operatorgroups.crd.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 + controller-gen.kubebuilder.io/version: v0.16.1 name: operatorgroups.operators.coreos.com spec: group: operators.coreos.com @@ -115,20 +115,17 @@ spec: UpgradeStrategy defines the upgrade strategy for operators in the namespace. There are currently two supported upgrade strategies: - Default: OLM will only allow clusterServiceVersions to move to the replacing phase from the succeeded phase. This effectively means that OLM will not allow operators to move to the next version if an installation or upgrade has failed. - TechPreviewUnsafeFailForward: OLM will allow clusterServiceVersions to move to the replacing phase from the succeeded phase or from the failed phase. Additionally, OLM will generate new installPlans when a subscription references a failed installPlan and the catalog has been updated with a new upgrade for the existing set of operators. - WARNING: The TechPreviewUnsafeFailForward upgrade strategy is unsafe and may result in unexpected behavior or unrecoverable data loss unless you have deep understanding of the set of operators being managed in the namespace. @@ -147,24 +144,7 @@ spec: description: Conditions is an array of the OperatorGroup's conditions. type: array items: - description: |- - Condition contains details for one aspect of the current state of this API Resource. - --- - This struct is intended for direct use as an array at the field path .status.conditions. For example, - - - type FooStatus struct{ - // Represents the observations of a foo's current state. - // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" - // +patchMergeKey=type - // +patchStrategy=merge - // +listType=map - // +listMapKey=type - Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` - - - // other fields - } + description: Condition contains details for one aspect of the current state of this API Resource. type: object required: - lastTransitionTime @@ -212,12 +192,7 @@ spec: - "False" - Unknown type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. type: string maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ @@ -247,7 +222,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -400,7 +374,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- diff --git a/deploy/chart/crds/0000_50_olm_00-operators.crd.yaml b/deploy/chart/crds/0000_50_olm_00-operators.crd.yaml index 0b570b1b2e..cf7c5312f4 100644 --- a/deploy/chart/crds/0000_50_olm_00-operators.crd.yaml +++ b/deploy/chart/crds/0000_50_olm_00-operators.crd.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 + controller-gen.kubebuilder.io/version: v0.16.1 name: operators.operators.coreos.com spec: group: operators.coreos.com @@ -144,7 +144,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- diff --git a/deploy/chart/crds/0000_50_olm_00-subscriptions.crd.yaml b/deploy/chart/crds/0000_50_olm_00-subscriptions.crd.yaml index e9eedba916..e5bf29e9de 100644 --- a/deploy/chart/crds/0000_50_olm_00-subscriptions.crd.yaml +++ b/deploy/chart/crds/0000_50_olm_00-subscriptions.crd.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.15.0 + controller-gen.kubebuilder.io/version: v0.16.1 name: subscriptions.operators.coreos.com spec: group: operators.coreos.com @@ -350,7 +350,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). type: array items: type: string @@ -365,7 +365,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). type: array items: type: string @@ -522,7 +522,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). type: array items: type: string @@ -537,7 +537,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). type: array items: type: string @@ -695,7 +695,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). type: array items: type: string @@ -710,7 +710,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). type: array items: type: string @@ -867,7 +867,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). type: array items: type: string @@ -882,7 +882,7 @@ spec: pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. - This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. + This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default). type: array items: type: string @@ -1009,9 +1009,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" optional: @@ -1070,9 +1068,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" optional: @@ -1102,9 +1098,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" optional: @@ -1124,9 +1118,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" optional: @@ -1153,11 +1145,9 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. It can only be set for containers. type: array items: @@ -1172,6 +1162,12 @@ spec: the Pod where this field is used. It makes that resource available inside a container. type: string + request: + description: |- + Request is the name chosen for a request in the referenced claim. + If empty, everything from the claim is made available, otherwise + only the result of this request. + type: string x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map @@ -1323,10 +1319,8 @@ spec: RecursiveReadOnly specifies whether read-only mounts should be handled recursively. - If ReadOnly is false, this field has no meaning and must be unspecified. - If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this @@ -1334,11 +1328,9 @@ spec: supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. - If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). - If this field is not specified, it is treated as an equivalent of Disabled. type: string subPath: @@ -1377,7 +1369,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - TODO: how do we prevent errors in the filesystem from compromising the machine type: string partition: description: |- @@ -1419,6 +1410,7 @@ spec: Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. type: string + default: ext4 kind: description: 'kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared' type: string @@ -1427,6 +1419,7 @@ spec: readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. type: boolean + default: false azureFile: description: azureFile represents an Azure File Service mount on the host and bind mount to the pod. type: object @@ -1485,9 +1478,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" x-kubernetes-map-type: atomic @@ -1529,9 +1520,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" x-kubernetes-map-type: atomic @@ -1599,9 +1588,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" optional: @@ -1640,9 +1627,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" x-kubernetes-map-type: atomic @@ -1764,7 +1749,6 @@ spec: The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. - Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity @@ -1775,17 +1759,14 @@ spec: information on the connection between this volume type and PersistentVolumeClaim). - Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. - Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. - A pod can use both types of ephemeral volumes and persistent volumes at the same time. type: object @@ -1800,7 +1781,6 @@ spec: entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). - An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until @@ -1810,11 +1790,9 @@ spec: this should not be necessary, but it may be useful when manually reconstructing a broken cluster. - This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. - Required, must not be nil. type: object required: @@ -2013,7 +1991,7 @@ spec: set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ - (Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled. + (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default). type: string volumeMode: description: |- @@ -2032,7 +2010,6 @@ spec: fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. - TODO: how do we prevent errors in the filesystem from compromising the machine type: string lun: description: 'lun is Optional: FC target lun number' @@ -2099,9 +2076,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" x-kubernetes-map-type: atomic @@ -2132,7 +2107,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - TODO: how do we prevent errors in the filesystem from compromising the machine type: string partition: description: |- @@ -2209,9 +2183,6 @@ spec: used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath - --- - TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not - mount host directories as read/write. type: object required: - path @@ -2228,6 +2199,41 @@ spec: Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath type: string + image: + description: |- + image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine. + The volume is resolved at pod startup depending on which PullPolicy value is provided: + + - Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. + - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. + - IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. + + The volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation. + A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message. + The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field. + The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images. + The volume will be mounted read-only (ro) and non-executable files (noexec). + Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath). + The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type. + type: object + properties: + pullPolicy: + description: |- + Policy for pulling OCI objects. Possible values are: + Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. + Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. + IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. + Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. + type: string + reference: + description: |- + Required: Image or artifact reference to be used. + Behaves in the same way as pod.spec.containers[*].image. + Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets. + More info: https://kubernetes.io/docs/concepts/containers/images + This field is optional to allow higher level config management to default or override + container images in workload controllers like Deployments and StatefulSets. + type: string iscsi: description: |- iscsi represents an ISCSI Disk resource that is attached to a @@ -2251,7 +2257,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi - TODO: how do we prevent errors in the filesystem from compromising the machine type: string initiatorName: description: |- @@ -2267,6 +2272,7 @@ spec: iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp). type: string + default: default lun: description: lun represents iSCSI Target Lun number. type: integer @@ -2294,9 +2300,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" x-kubernetes-map-type: atomic @@ -2405,10 +2409,14 @@ spec: type: integer format: int32 sources: - description: sources is the list of volume projections + description: |- + sources is the list of volume projections. Each entry in this list + handles one source. type: array items: - description: Projection that may be projected along with other supported volume types + description: |- + Projection that may be projected along with other supported volume types. + Exactly one of these fields must be set. type: object properties: clusterTrustBundle: @@ -2416,14 +2424,11 @@ spec: ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field of ClusterTrustBundle objects in an auto-updating file. - Alpha, gated by the ClusterTrustBundleProjection feature gate. - ClusterTrustBundle objects can either be selected by name, or by the combination of signer name and a label selector. - Kubelet performs aggressive normalization of the PEM contents written into the pod filesystem. Esoteric PEM features such as inter-block comments and block headers are stripped. Certificates are deduplicated. @@ -2551,9 +2556,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" optional: @@ -2670,9 +2673,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" optional: @@ -2759,7 +2760,6 @@ spec: Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd - TODO: how do we prevent errors in the filesystem from compromising the machine type: string image: description: |- @@ -2772,6 +2772,7 @@ spec: Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it type: string + default: /etc/ceph/keyring monitors: description: |- monitors is a collection of Ceph monitors. @@ -2786,6 +2787,7 @@ spec: Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it type: string + default: rbd readOnly: description: |- readOnly here will force the ReadOnly setting in VolumeMounts. @@ -2806,9 +2808,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" x-kubernetes-map-type: atomic @@ -2818,6 +2818,7 @@ spec: Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it type: string + default: admin scaleIO: description: scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. type: object @@ -2833,6 +2834,7 @@ spec: Ex. "ext4", "xfs", "ntfs". Default is "xfs". type: string + default: xfs gateway: description: gateway is the host address of the ScaleIO API Gateway. type: string @@ -2856,9 +2858,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" x-kubernetes-map-type: atomic @@ -2870,6 +2870,7 @@ spec: storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned. type: string + default: ThinProvisioned storagePool: description: storagePool is the ScaleIO Storage Pool associated with the protection domain. type: string @@ -2971,9 +2972,7 @@ spec: This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. - TODO: Add other useful fields. apiVersion, kind, uid? More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. type: string default: "" x-kubernetes-map-type: atomic @@ -3059,7 +3058,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |- @@ -3146,7 +3144,6 @@ spec: the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. type: string kind: description: |-