diff --git a/go.mod b/go.mod
index 2fbc0ec104..f3fad13a3b 100644
--- a/go.mod
+++ b/go.mod
@@ -1,8 +1,8 @@
module github.com/openshift/operator-framework-olm
-go 1.22.6
+go 1.23.0
-toolchain go1.22.7
+toolchain go1.23.4
require (
github.com/blang/semver/v4 v4.0.0
@@ -11,27 +11,27 @@ require (
github.com/golang/mock v1.6.0
github.com/googleapis/gnostic v0.5.5
github.com/grpc-ecosystem/grpc-health-probe v0.4.34
- github.com/maxbrunsfeld/counterfeiter/v6 v6.9.0
+ github.com/maxbrunsfeld/counterfeiter/v6 v6.11.2
github.com/mikefarah/yq/v3 v3.0.0-20201202084205-8846255d1c37
github.com/onsi/ginkgo/v2 v2.22.2
github.com/openshift/api v3.9.0+incompatible
- github.com/operator-framework/api v0.27.0
+ github.com/operator-framework/api v0.29.0
github.com/operator-framework/operator-lifecycle-manager v0.0.0-00010101000000-000000000000
- github.com/operator-framework/operator-registry v1.48.0
+ github.com/operator-framework/operator-registry v1.50.0
github.com/sirupsen/logrus v1.9.3
github.com/spf13/cobra v1.8.1
github.com/stretchr/testify v1.10.0
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1
- google.golang.org/protobuf v1.36.1
+ google.golang.org/protobuf v1.36.2
gopkg.in/yaml.v2 v2.4.0
- k8s.io/api v0.31.3
- k8s.io/apimachinery v0.31.3
- k8s.io/client-go v0.31.3
- k8s.io/code-generator v0.31.3
- k8s.io/kube-openapi v0.0.0-20240816214639-573285566f34
- k8s.io/utils v0.0.0-20240711033017-18e509b52bc8
- sigs.k8s.io/controller-runtime v0.19.3
- sigs.k8s.io/controller-tools v0.16.5
+ k8s.io/api v0.32.0
+ k8s.io/apimachinery v0.32.0
+ k8s.io/client-go v0.32.0
+ k8s.io/code-generator v0.32.0
+ k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f
+ k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738
+ sigs.k8s.io/controller-runtime v0.19.4
+ sigs.k8s.io/controller-tools v0.17.0
)
// latest gRPC library causes changes in the way the CatalogSource connection status behaves
@@ -41,6 +41,7 @@ require (
replace google.golang.org/grpc => google.golang.org/grpc v1.63.2
require (
+ cel.dev/expr v0.18.0 // indirect
github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 // indirect
github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 // indirect
github.com/BurntSushi/toml v1.4.0 // indirect
@@ -55,16 +56,16 @@ 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.23 // indirect
- github.com/containerd/containerd/api v1.7.19 // indirect
- github.com/containerd/continuity v0.4.2 // indirect
+ github.com/containerd/containerd v1.7.25 // indirect
+ github.com/containerd/containerd/api v1.8.0 // indirect
+ github.com/containerd/continuity v0.4.4 // indirect
github.com/containerd/errdefs v0.3.0 // indirect
github.com/containerd/errdefs/pkg v0.3.0 // indirect
github.com/containerd/log v0.1.0 // indirect
github.com/containerd/platforms v0.2.1 // indirect
github.com/containerd/ttrpc v1.2.5 // indirect
github.com/containerd/typeurl/v2 v2.2.0 // indirect
- github.com/containers/common v0.60.4 // indirect
+ github.com/containers/common v0.61.0 // indirect
github.com/containers/image/v5 v5.33.0 // indirect
github.com/containers/libtrust v0.0.0-20230121012942-c1716e8a8d01 // indirect
github.com/containers/ocicrypt v1.2.0 // indirect
@@ -73,7 +74,7 @@ require (
github.com/coreos/go-systemd/v22 v22.5.0 // indirect
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
github.com/distribution/reference v0.6.0 // indirect
- github.com/docker/cli v27.3.1+incompatible // indirect
+ github.com/docker/cli v27.4.1+incompatible // indirect
github.com/docker/distribution v2.8.3+incompatible // indirect
github.com/docker/docker v27.3.1+incompatible // indirect
github.com/docker/docker-credential-helpers v0.8.2 // indirect
@@ -88,8 +89,8 @@ require (
github.com/fxamacker/cbor/v2 v2.7.0 // indirect
github.com/go-air/gini v1.0.4 // indirect
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect
- github.com/go-git/go-billy/v5 v5.5.0 // indirect
- github.com/go-git/go-git/v5 v5.11.0 // indirect
+ github.com/go-git/go-billy/v5 v5.6.1 // indirect
+ github.com/go-git/go-git/v5 v5.13.1 // indirect
github.com/go-jose/go-jose/v4 v4.0.4 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
github.com/go-logr/zapr v1.3.0 // indirect
@@ -103,7 +104,8 @@ require (
github.com/golang-migrate/migrate/v4 v4.18.1 // indirect
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
github.com/golang/protobuf v1.5.4 // indirect
- github.com/google/cel-go v0.20.1 // indirect
+ github.com/google/btree v1.0.1 // indirect
+ github.com/google/cel-go v0.22.1 // indirect
github.com/google/gnostic-models v0.6.8 // indirect
github.com/google/go-cmp v0.6.0 // indirect
github.com/google/gofuzz v1.2.0 // indirect
@@ -113,18 +115,17 @@ require (
github.com/gorilla/websocket v1.5.0 // indirect
github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.1.0 // indirect
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 // indirect
- github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 // indirect
+ github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 // indirect
github.com/h2non/filetype v1.1.3 // indirect
github.com/h2non/go-is-svg v0.0.0-20160927212452-35e8c4b0612c // indirect
- github.com/imdario/mergo v0.3.16 // indirect
github.com/inconshreveable/mousetrap v1.1.0 // indirect
github.com/itchyny/gojq v0.12.17 // indirect
github.com/itchyny/timefmt-go v0.1.6 // indirect
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect
- github.com/joelanford/ignore v0.1.0 // indirect
+ github.com/joelanford/ignore v0.1.1 // indirect
github.com/josharian/intern v1.0.0 // indirect
github.com/json-iterator/go v1.1.12 // indirect
- github.com/kisielk/errcheck v1.7.0 // indirect
+ github.com/kisielk/errcheck v1.8.0 // indirect
github.com/klauspost/compress v1.17.11 // indirect
github.com/kylelemons/godebug v1.1.0 // indirect
github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de // indirect
@@ -136,7 +137,7 @@ require (
github.com/mitchellh/hashstructure v1.1.0 // indirect
github.com/mitchellh/mapstructure v1.5.0 // indirect
github.com/moby/locker v1.0.1 // indirect
- github.com/moby/spdystream v0.4.0 // indirect
+ github.com/moby/spdystream v0.5.0 // indirect
github.com/moby/sys/capability v0.3.0 // indirect
github.com/moby/sys/mountinfo v0.7.2 // indirect
github.com/moby/sys/sequential v0.5.0 // indirect
@@ -164,63 +165,62 @@ require (
github.com/spf13/pflag v1.0.5 // indirect
github.com/spiffe/go-spiffe/v2 v2.3.0 // indirect
github.com/stoewer/go-strcase v1.3.0 // indirect
- github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635 // indirect
github.com/tidwall/btree v1.7.0 // indirect
github.com/x448/float16 v0.8.4 // indirect
github.com/zeebo/errs v1.3.0 // 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
+ go.etcd.io/etcd/api/v3 v3.5.16 // indirect
+ go.etcd.io/etcd/client/pkg/v3 v3.5.16 // indirect
+ go.etcd.io/etcd/client/v3 v3.5.16 // indirect
go.opencensus.io v0.24.0 // indirect
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.53.0 // indirect
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0 // indirect
go.opentelemetry.io/otel v1.29.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.29.0 // indirect
- go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.27.0 // indirect
+ go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.29.0 // indirect
go.opentelemetry.io/otel/metric v1.29.0 // indirect
go.opentelemetry.io/otel/sdk v1.29.0 // indirect
go.opentelemetry.io/otel/trace v1.29.0 // indirect
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.31.0 // indirect
+ go.uber.org/zap v1.27.0 // indirect
+ golang.org/x/crypto v0.32.0 // indirect
golang.org/x/exp v0.0.0-20241009180824-f66d83c29e7c // indirect
- golang.org/x/lint v0.0.0-20210508222113-6edffad5e616 // indirect
+ golang.org/x/lint v0.0.0-20241112194109-818c5a804067 // indirect
golang.org/x/mod v0.22.0 // indirect
- golang.org/x/net v0.33.0 // indirect
+ golang.org/x/net v0.34.0 // indirect
golang.org/x/oauth2 v0.24.0 // indirect
golang.org/x/sync v0.10.0 // indirect
- golang.org/x/sys v0.28.0 // indirect
- golang.org/x/term v0.27.0 // indirect
+ golang.org/x/sys v0.29.0 // indirect
+ golang.org/x/term v0.28.0 // indirect
golang.org/x/text v0.21.0 // indirect
golang.org/x/time v0.8.0 // indirect
- golang.org/x/tools v0.28.0 // indirect
+ golang.org/x/tools v0.29.0 // indirect
golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // 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-20240814211410-ddb44dafa142 // indirect
+ google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1 // indirect
+ google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 // indirect
- google.golang.org/grpc v1.67.1 // indirect
+ google.golang.org/grpc v1.68.1 // indirect
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
gopkg.in/inf.v0 v0.9.1 // indirect
gopkg.in/natefinch/lumberjack.v2 v2.2.1 // indirect
gopkg.in/op/go-logging.v1 v1.0.0-20160211212156-b2cb9fa56473 // indirect
gopkg.in/warnings.v0 v0.1.2 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
- k8s.io/apiextensions-apiserver v0.31.3 // indirect
- k8s.io/apiserver v0.31.3 // indirect
- k8s.io/cli-runtime v0.31.0 // indirect
- k8s.io/component-base v0.31.3 // indirect
- k8s.io/gengo/v2 v2.0.0-20240812201722-3b05ca7b6e59 // indirect
+ k8s.io/apiextensions-apiserver v0.32.0 // indirect
+ k8s.io/apiserver v0.32.0 // indirect
+ k8s.io/cli-runtime v0.32.0 // indirect
+ k8s.io/component-base v0.32.0 // indirect
+ k8s.io/gengo/v2 v2.0.0-20240911193312-2b36238f13e9 // indirect
k8s.io/klog v1.0.0 // indirect
k8s.io/klog/v2 v2.130.1 // indirect
- k8s.io/kms v0.31.3 // indirect
- k8s.io/kube-aggregator v0.31.3 // indirect
- k8s.io/kubectl v0.31.0 // indirect
- sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.30.3 // indirect
- sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
- sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect
+ k8s.io/kms v0.32.0 // indirect
+ k8s.io/kube-aggregator v0.32.0 // indirect
+ k8s.io/kubectl v0.32.0 // indirect
+ sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.0 // indirect
+ sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 // indirect
+ sigs.k8s.io/structured-merge-diff/v4 v4.4.2 // indirect
sigs.k8s.io/yaml v1.4.0 // indirect
)
diff --git a/go.sum b/go.sum
index 99e8560283..40f269e64d 100644
--- a/go.sum
+++ b/go.sum
@@ -1,3 +1,5 @@
+cel.dev/expr v0.18.0 h1:CJ6drgk+Hf96lkLikr4rFf19WrU0BOWEihyZnI2TAzo=
+cel.dev/expr v0.18.0/go.mod h1:MrpN08Q+lEBs+bGYdLxxHkZoUSsCp0nSKTs0nTymJgw=
cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU=
cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU=
@@ -1409,12 +1411,12 @@ 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.23 h1:H2CClyUkmpKAGlhQp95g2WXHfLYc7whAuvZGBNYOOwQ=
-github.com/containerd/containerd v1.7.23/go.mod h1:7QUzfURqZWCZV7RLNEn1XjUCQLEf0bkaK4GjUaZehxw=
-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=
-github.com/containerd/continuity v0.4.2/go.mod h1:F6PTNCKepoxEaXLQp3wDAjygEnImnZ/7o4JzpodfroQ=
+github.com/containerd/containerd v1.7.25 h1:khEQOAXOEJalRO228yzVsuASLH42vT7DIo9Ss+9SMFQ=
+github.com/containerd/containerd v1.7.25/go.mod h1:tWfHzVI0azhw4CT2vaIjsb2CoV4LJ9PrMPaULAr21Ok=
+github.com/containerd/containerd/api v1.8.0 h1:hVTNJKR8fMc/2Tiw60ZRijntNMd1U+JVMyTRdsD2bS0=
+github.com/containerd/containerd/api v1.8.0/go.mod h1:dFv4lt6S20wTu/hMcP4350RL87qPWLVa/OHOwmmdnYc=
+github.com/containerd/continuity v0.4.4 h1:/fNVfTJ7wIl/YPMHjf+5H32uFhl63JucB34PlCpMKII=
+github.com/containerd/continuity v0.4.4/go.mod h1:/lNJvtJKUQStBzpVQ1+rasXO1LAWtUQssk28EZvJ3nE=
github.com/containerd/errdefs v0.3.0 h1:FSZgGOeK4yuT/+DnF07/Olde/q4KBoMsaamhXxIMDp4=
github.com/containerd/errdefs v0.3.0/go.mod h1:+YBYIdtsnF4Iw6nWZhJcqGSg/dwvV7tyJ/kCkyJ2k+M=
github.com/containerd/errdefs/pkg v0.3.0 h1:9IKJ06FvyNlexW690DXuQNx2KA2cUJXx151Xdx3ZPPE=
@@ -1427,8 +1429,8 @@ 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.2.0 h1:6NBDbQzr7I5LHgp34xAXYF5DOTQDn05X58lsPEmzLso=
github.com/containerd/typeurl/v2 v2.2.0/go.mod h1:8XOOxnyatxSWuG8OfsZXVnAF4iZfedjS/8UHSPJnX4g=
-github.com/containers/common v0.60.4 h1:H5+LAMHPZEqX6vVNOQ+IguVsaFl8kbO/SZ/VPXjxhy0=
-github.com/containers/common v0.60.4/go.mod h1:I0upBi1qJX3QmzGbUOBN1LVP6RvkKhd3qQpZbQT+Q54=
+github.com/containers/common v0.61.0 h1:j/84PTqZIKKYy42OEJsZmjZ4g4Kq2ERuC3tqp2yWdh4=
+github.com/containers/common v0.61.0/go.mod h1:NGRISq2vTFPSbhNqj6MLwyes4tWSlCnqbJg7R77B8xc=
github.com/containers/image/v5 v5.33.0 h1:6oPEFwTurf7pDTGw7TghqGs8K0+OvPtY/UyzU0B2DfE=
github.com/containers/image/v5 v5.33.0/go.mod h1:T7HpASmvnp2H1u4cyckMvCzLuYgpD18dSmabSw0AcHk=
github.com/containers/libtrust v0.0.0-20230121012942-c1716e8a8d01 h1:Qzk5C6cYglewc+UyGf6lc8Mj2UaPTHy/iF2De0/77CA=
@@ -1459,12 +1461,12 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZm
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78=
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc=
github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no=
-github.com/distribution/distribution/v3 v3.0.0-beta.1 h1:X+ELTxPuZ1Xe5MsD3kp2wfGUhc8I+MPfRis8dZ818Ic=
-github.com/distribution/distribution/v3 v3.0.0-beta.1/go.mod h1:O9O8uamhHzWWQVTjuQpyYUVm/ShPHPUDgvQMpHGVBDs=
+github.com/distribution/distribution/v3 v3.0.0-rc.1 h1:6M4ewmPBUhF7wtQ8URLOQ1W/PQuVKiD1u8ymwLDUGqQ=
+github.com/distribution/distribution/v3 v3.0.0-rc.1/go.mod h1:tFjaPDeHCrLg28e4feBIy27cP+qmrc/mvkl6MFIfVi4=
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.3.1+incompatible h1:qEGdFBF3Xu6SCvCYhc7CzaQTlBmqDuzxPDpigSyeKQQ=
-github.com/docker/cli v27.3.1+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
+github.com/docker/cli v27.4.1+incompatible h1:VzPiUlRJ/xh+otB75gva3r05isHMo5wXDfPRi5/b4hI=
+github.com/docker/cli v27.4.1+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.3.1+incompatible h1:KttF0XoteNTicmUtBO0L2tP+J7FGRFTjaEF4k6WdhfI=
@@ -1539,10 +1541,10 @@ github.com/go-fonts/liberation v0.2.0/go.mod h1:K6qoJYypsmfVjWg8KOVDQhLc8UDgIK2H
github.com/go-fonts/stix v0.1.0/go.mod h1:w/c1f0ldAUlJmLBvlbkvVXLAD+tAMqobIIQpmnUIzUY=
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66DAb0lQFJrpS6731Oaa12ikc+DiI=
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376/go.mod h1:an3vInlBmSxCcxctByoQdvwPiA7DTK7jaaFDBTtu0ic=
-github.com/go-git/go-billy/v5 v5.5.0 h1:yEY4yhzCDuMGSv83oGxiBotRzhwhNr8VZyphhiu+mTU=
-github.com/go-git/go-billy/v5 v5.5.0/go.mod h1:hmexnoNsr2SJU1Ju67OaNz5ASJY3+sHgFRpCtpDCKow=
-github.com/go-git/go-git/v5 v5.11.0 h1:XIZc1p+8YzypNr34itUfSvYJcv+eYdTnTvOZ2vD3cA4=
-github.com/go-git/go-git/v5 v5.11.0/go.mod h1:6GFcX2P3NM7FPBfpePbpLd21XxsgdAt+lKqXmCUiUCY=
+github.com/go-git/go-billy/v5 v5.6.1 h1:u+dcrgaguSSkbjzHwelEjc0Yj300NUevrrPphk/SoRA=
+github.com/go-git/go-billy/v5 v5.6.1/go.mod h1:0AsLr1z2+Uksi4NlElmMblP5rPcDZNRCD8ujZCRR2BE=
+github.com/go-git/go-git/v5 v5.13.1 h1:DAQ9APonnlvSWpvolXWIuV6Q6zXy2wHbN4cVlNR5Q+M=
+github.com/go-git/go-git/v5 v5.13.1/go.mod h1:qryJB4cSBoq3FRoBRf5A77joojuBcmPJ0qu3XXXVixc=
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
@@ -1659,8 +1661,8 @@ github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Z
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
github.com/google/btree v1.0.1 h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4=
github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA=
-github.com/google/cel-go v0.20.1 h1:nDx9r8S3L4pE61eDdt8igGj8rf5kjYR3ILxWIpWNi84=
-github.com/google/cel-go v0.20.1/go.mod h1:kWcIzTsPX0zmQ+H3TirHstLLf9ep5QTsZBN9u4dOYLg=
+github.com/google/cel-go v0.22.1 h1:AfVXx3chM2qwoSbM7Da8g8hX8OVSkBFwX+rz2+PcK40=
+github.com/google/cel-go v0.22.1/go.mod h1:BuznPXXfQDpXKWQ9sPW3TzlAJN5zzFe+i9tIs0yC4s8=
github.com/google/flatbuffers v2.0.8+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8=
github.com/google/flatbuffers v23.5.26+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8=
github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I=
@@ -1777,8 +1779,8 @@ github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFb
github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0/go.mod h1:hgWBS7lorOAVIJEQMi4ZsPv9hVvWI6+ch50m39Pf2Ks=
github.com/grpc-ecosystem/grpc-gateway/v2 v2.11.3/go.mod h1:o//XUCC/F+yRGJoPO/VU0GSB0f8Nhgmxx0VIRUvaC0w=
github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg=
-github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 h1:bkypFPDjIYGfCYD5mRBvpqxfYX1YCS1PXdKYWi8FsN0=
-github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0/go.mod h1:P+Lt/0by1T8bfcF3z737NnSbmxQAppXMRziHUxPOC8k=
+github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 h1:asbCHRVmodnJTuQ3qamDwqVOIjwqUPTYmYuemVOx+Ys=
+github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0/go.mod h1:ggCgvZ2r7uOoQjOyu2Y1NhHmEPPzzuhWgcza5M1Ji1I=
github.com/grpc-ecosystem/grpc-health-probe v0.4.34 h1:pX8M5wFxJMom2ISyD+kBLesRt75BWwx6Td/6ls4Rsos=
github.com/grpc-ecosystem/grpc-health-probe v0.4.34/go.mod h1:w3Kou6RFYTVSsvM8bDU4kEOYAKqyzS73tS2Fpe/eFsA=
github.com/h2non/filetype v1.1.3 h1:FKkx9QbD7HR/zjK1Ia5XiBsq9zdLi5Kf3zGyFTAFkGg=
@@ -1805,8 +1807,6 @@ github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:
github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
github.com/ianlancetaylor/demangle v0.0.0-20220319035150-800ac71e25c2/go.mod h1:aYm2/VgdVmcIU8iMfdMvDMsRAQjcfZSKFby6HOFvi/w=
github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
-github.com/imdario/mergo v0.3.16 h1:wwQJbIsHYGMUyLSPrEq1CT16AhnhNJQ51+4fdHUnCl4=
-github.com/imdario/mergo v0.3.16/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY=
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
@@ -1816,11 +1816,11 @@ github.com/itchyny/timefmt-go v0.1.6 h1:ia3s54iciXDdzWzwaVKXZPbiXzxxnv1SPGFfM/my
github.com/itchyny/timefmt-go v0.1.6/go.mod h1:RRDZYC5s9ErkjQvTvvU7keJjxUYzIISJGxm9/mAERQg=
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A=
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo=
-github.com/joelanford/ignore v0.1.0 h1:VawbTDeg5EL+PN7W8gxVzGerfGpVo3gFdR5ZAqnkYRk=
-github.com/joelanford/ignore v0.1.0/go.mod h1:Vb0PQMAQXK29fmiPjDukpO8I2NTcp1y8LbhFijD1/0o=
+github.com/joelanford/ignore v0.1.1 h1:vKky5RDoPT+WbONrbQBgOn95VV/UPh4ejlyAbbzgnQk=
+github.com/joelanford/ignore v0.1.1/go.mod h1:8eho/D8fwQ3rIXrLwE23AaeaGDNXqLE9QJ3zJ4LIPCw=
github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=
-github.com/jonboulle/clockwork v0.2.2 h1:UOGuzwb1PwsrDAObMuhUnj0p5ULPj8V/xJ7Kx9qUBdQ=
-github.com/jonboulle/clockwork v0.2.2/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8=
+github.com/jonboulle/clockwork v0.4.0 h1:p4Cf1aMWXnXAUh8lVfewRBx1zaTSYKrKMF2g3ST4RZ4=
+github.com/jonboulle/clockwork v0.4.0/go.mod h1:xgRqUGwRcjKCO1vbZUEtSLrqKoPSsUpK7fnezOII0kc=
github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
@@ -1837,8 +1837,8 @@ github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:C
github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=
github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
-github.com/kisielk/errcheck v1.7.0 h1:+SbscKmWJ5mOK/bO1zS60F5I9WwZDWOfRsC4RwfwRV0=
-github.com/kisielk/errcheck v1.7.0/go.mod h1:1kLL+jV4e+CFfueBmI1dSK2ADDyQnlrnrY/FqKluHJQ=
+github.com/kisielk/errcheck v1.8.0 h1:ZX/URYa7ilESY19ik/vBmCn6zdGQLxACwjAcWbHlYlg=
+github.com/kisielk/errcheck v1.8.0/go.mod h1:1kLL+jV4e+CFfueBmI1dSK2ADDyQnlrnrY/FqKluHJQ=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
github.com/klauspost/asmfmt v1.3.2/go.mod h1:AG8TuvYojzulgDAMCnYn50l/5QV3Bs/tp6j0HLHbNSE=
github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU=
@@ -1904,8 +1904,8 @@ github.com/mattn/go-sqlite3 v1.14.16/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S
github.com/mattn/go-sqlite3 v1.14.24 h1:tpSp2G2KyMnnQu99ngJ47EIkWVmliIizyZBfPrBWDRM=
github.com/mattn/go-sqlite3 v1.14.24/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y=
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
-github.com/maxbrunsfeld/counterfeiter/v6 v6.9.0 h1:ERhc+PJKEyqWQnKu7/K0frSVGFihYYImqNdqP5r0cN0=
-github.com/maxbrunsfeld/counterfeiter/v6 v6.9.0/go.mod h1:tU2wQdIyJ7fib/YXxFR0dgLlFz3yl4p275UfUKmDFjk=
+github.com/maxbrunsfeld/counterfeiter/v6 v6.11.2 h1:yVCLo4+ACVroOEr4iFU1iH46Ldlzz2rTuu18Ra7M8sU=
+github.com/maxbrunsfeld/counterfeiter/v6 v6.11.2/go.mod h1:VzB2VoMh1Y32/QqDfg9ZJYHj99oM4LiGtqPZydTiQSQ=
github.com/mikefarah/yq/v3 v3.0.0-20201202084205-8846255d1c37 h1:lPmsut5Sk7eK2BmDXuvNEvMbT7MkAJBu64Yxr7iJ6nk=
github.com/mikefarah/yq/v3 v3.0.0-20201202084205-8846255d1c37/go.mod h1:dYWq+UWoFCDY1TndvFUQuhBbIYmZpjreC8adEAx93zE=
github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8/go.mod h1:mC1jAcsrzbxHt8iiaC+zU4b1ylILSosueou12R++wfY=
@@ -1921,8 +1921,8 @@ github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RR
github.com/moby/locker v1.0.1 h1:fOXqR41zeveg4fFODix+1Ch4mj/gT0NE1XJbp/epuBg=
github.com/moby/locker v1.0.1/go.mod h1:S7SDdo5zpBK84bzzVlKr2V0hz+7x9hWbYC/kq7oQppc=
github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c=
-github.com/moby/spdystream v0.4.0 h1:Vy79D6mHeJJjiPdFEL2yku1kl0chZpJfZcPpb16BRl8=
-github.com/moby/spdystream v0.4.0/go.mod h1:xBAYlnt/ay+11ShkdFKNAG7LsyK/tmNBVvVOwrfMgdI=
+github.com/moby/spdystream v0.5.0 h1:7r0J1Si3QO/kjRitvSLVVFUjxMEb/YLj6S9FF62JBCU=
+github.com/moby/spdystream v0.5.0/go.mod h1:xBAYlnt/ay+11ShkdFKNAG7LsyK/tmNBVvVOwrfMgdI=
github.com/moby/sys/capability v0.3.0 h1:kEP+y6te0gEXIaeQhIi0s7vKs/w0RPoH1qPa6jROcVg=
github.com/moby/sys/capability v0.3.0/go.mod h1:4g9IK291rVkms3LKCDOoYlnV8xKwoDTpIrNEE35Wq0I=
github.com/moby/sys/mountinfo v0.7.2 h1:1shs6aH5s4o5H2zQLn796ADW1wMrIwHsyJ2v9KouLrg=
@@ -2090,8 +2090,6 @@ github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXl
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
github.com/substrait-io/substrait-go v0.4.2/go.mod h1:qhpnLmrcvAnlZsUyPXZRqldiHapPTXC3t7xFgDi3aQg=
-github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635 h1:kdXcSzyDtseVEc4yCz2qF8ZrQvIDBJLl4S1c3GCXmoI=
-github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww=
github.com/tidwall/btree v1.7.0 h1:L1fkJH/AuEh5zBnnBbmTwQ5Lt+bRJ5A8EWecslvo9iI=
github.com/tidwall/btree v1.7.0/go.mod h1:twD9XRA5jj9VUQGELzDO4HPQTNJsoWWfYEL+EUQ2cKY=
github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
@@ -2104,8 +2102,9 @@ github.com/vbatts/tar-split v0.11.6 h1:4SjTW5+PU11n6fZenf2IPoV8/tz3AaYHMWjf23env
github.com/vbatts/tar-split v0.11.6/go.mod h1:dqKNtesIOr2j2Qv3W/cHjnvk9I8+G7oAkFDFN6TCBEI=
github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM=
github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg=
-github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 h1:eY9dn8+vbi4tKz5Qo6v2eYzo7kUS51QINcR5jNpbZS8=
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
+github.com/xiang90/probing v0.0.0-20221125231312-a49e3df8f510 h1:S2dVYn90KE98chqDkyE9Z4N61UnQd+KOfgp5Iu53llk=
+github.com/xiang90/probing v0.0.0-20221125231312-a49e3df8f510/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q=
github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
@@ -2122,20 +2121,20 @@ go.einride.tech/aip v0.66.0/go.mod h1:qAhMsfT7plxBX+Oy7Huol6YUvZ0ZzdUz26yZsQwfl1
go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
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=
-go.etcd.io/etcd/client/pkg/v3 v3.5.14/go.mod h1:8uMgAokyG1czCtIdsq+AGyYQMvpIKnSvPjFMunkgeZI=
-go.etcd.io/etcd/client/v2 v2.305.13 h1:RWfV1SX5jTU0lbCvpVQe3iPQeAHETWdOTb6pxhd77C8=
-go.etcd.io/etcd/client/v2 v2.305.13/go.mod h1:iQnL7fepbiomdXMb3om1rHq96htNNGv2sJkEcZGDRRg=
-go.etcd.io/etcd/client/v3 v3.5.14 h1:CWfRs4FDaDoSz81giL7zPpZH2Z35tbOrAJkkjMqOupg=
-go.etcd.io/etcd/client/v3 v3.5.14/go.mod h1:k3XfdV/VIHy/97rqWjoUzrj9tk7GgJGH9J8L4dNXmAk=
-go.etcd.io/etcd/pkg/v3 v3.5.13 h1:st9bDWNsKkBNpP4PR1MvM/9NqUPfvYZx/YXegsYEH8M=
-go.etcd.io/etcd/pkg/v3 v3.5.13/go.mod h1:N+4PLrp7agI/Viy+dUYpX7iRtSPvKq+w8Y14d1vX+m0=
-go.etcd.io/etcd/raft/v3 v3.5.13 h1:7r/NKAOups1YnKcfro2RvGGo2PTuizF/xh26Z2CTAzA=
-go.etcd.io/etcd/raft/v3 v3.5.13/go.mod h1:uUFibGLn2Ksm2URMxN1fICGhk8Wu96EfDQyuLhAcAmw=
-go.etcd.io/etcd/server/v3 v3.5.13 h1:V6KG+yMfMSqWt+lGnhFpP5z5dRUj1BDRJ5k1fQ9DFok=
-go.etcd.io/etcd/server/v3 v3.5.13/go.mod h1:K/8nbsGupHqmr5MkgaZpLlH1QdX1pcNQLAkODy44XcQ=
+go.etcd.io/etcd/api/v3 v3.5.16 h1:WvmyJVbjWqK4R1E+B12RRHz3bRGy9XVfh++MgbN+6n0=
+go.etcd.io/etcd/api/v3 v3.5.16/go.mod h1:1P4SlIP/VwkDmGo3OlOD7faPeP8KDIFhqvciH5EfN28=
+go.etcd.io/etcd/client/pkg/v3 v3.5.16 h1:ZgY48uH6UvB+/7R9Yf4x574uCO3jIx0TRDyetSfId3Q=
+go.etcd.io/etcd/client/pkg/v3 v3.5.16/go.mod h1:V8acl8pcEK0Y2g19YlOV9m9ssUe6MgiDSobSoaBAM0E=
+go.etcd.io/etcd/client/v2 v2.305.16 h1:kQrn9o5czVNaukf2A2At43cE9ZtWauOtf9vRZuiKXow=
+go.etcd.io/etcd/client/v2 v2.305.16/go.mod h1:h9YxWCzcdvZENbfzBTFCnoNumr2ax3F19sKMqHFmXHE=
+go.etcd.io/etcd/client/v3 v3.5.16 h1:sSmVYOAHeC9doqi0gv7v86oY/BTld0SEFGaxsU9eRhE=
+go.etcd.io/etcd/client/v3 v3.5.16/go.mod h1:X+rExSGkyqxvu276cr2OwPLBaeqFu1cIl4vmRjAD/50=
+go.etcd.io/etcd/pkg/v3 v3.5.16 h1:cnavs5WSPWeK4TYwPYfmcr3Joz9BH+TZ6qoUtz6/+mc=
+go.etcd.io/etcd/pkg/v3 v3.5.16/go.mod h1:+lutCZHG5MBBFI/U4eYT5yL7sJfnexsoM20Y0t2uNuY=
+go.etcd.io/etcd/raft/v3 v3.5.16 h1:zBXA3ZUpYs1AwiLGPafYAKKl/CORn/uaxYDwlNwndAk=
+go.etcd.io/etcd/raft/v3 v3.5.16/go.mod h1:P4UP14AxofMJ/54boWilabqqWoW9eLodl6I5GdGzazI=
+go.etcd.io/etcd/server/v3 v3.5.16 h1:d0/SAdJ3vVsZvF8IFVb1k8zqMZ+heGcNfft71ul9GWE=
+go.etcd.io/etcd/server/v3 v3.5.16/go.mod h1:ynhyZZpdDp1Gq49jkUg5mfkDWZwXnn3eIqCqtJnrD/s=
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
@@ -2145,8 +2144,10 @@ go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk=
go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E=
go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0=
go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo=
-go.opentelemetry.io/contrib/exporters/autoexport v0.46.1 h1:ysCfPZB9AjUlMa1UHYup3c9dAOCMQX/6sxSfPBUoxHw=
-go.opentelemetry.io/contrib/exporters/autoexport v0.46.1/go.mod h1:ha0aiYm+DOPsLHjh0zoQ8W8sLT+LJ58J3j47lGpSLrU=
+go.opentelemetry.io/contrib/bridges/prometheus v0.54.0 h1:WWL67oxtknNVMb70lJXxXruf8UyK/a9hmIE1XO3Uedg=
+go.opentelemetry.io/contrib/bridges/prometheus v0.54.0/go.mod h1:LqNcnXmyULp8ertk4hUTVtSUvKXj4h1Mx7gUCSSr/q0=
+go.opentelemetry.io/contrib/exporters/autoexport v0.54.0 h1:dTmcmVm4J54IRPGm5oVjLci1uYat4UDea84E2tyBaAk=
+go.opentelemetry.io/contrib/exporters/autoexport v0.54.0/go.mod h1:zPp5Fwpq2Hc7xMtVttg6GhZMcfTESjVbY9ONw2o/Dc4=
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.1/go.mod h1:4UoMYEZOC0yN/sPGH76KPkkU7zgiEWYWL9vwmbnTJPE=
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.47.0/go.mod h1:r9vWsPS/3AQItv3OSlEJ/E4mbrhUbbw18meOjArPtKQ=
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.53.0 h1:9G6E0TXzGFVfTnawRzrPl83iHOAV7L8NJiR8RSGYV1g=
@@ -2160,22 +2161,28 @@ go.opentelemetry.io/otel v1.21.0/go.mod h1:QZzNPQPm1zLX4gZK4cMi+71eaorMSGT3A4znn
go.opentelemetry.io/otel v1.22.0/go.mod h1:eoV4iAi3Ea8LkAEI9+GFT44O6T/D0GWAVFyZVCC6pMI=
go.opentelemetry.io/otel v1.29.0 h1:PdomN/Al4q/lN6iBJEN3AwPvUiHPMlt93c8bqTG5Llw=
go.opentelemetry.io/otel v1.29.0/go.mod h1:N/WtXPs1CNCUEx+Agz5uouwCba+i+bJGFicT8SR4NP8=
-go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.44.0 h1:jd0+5t/YynESZqsSyPz+7PAFdEop0dlN0+PkyHYo8oI=
-go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.44.0/go.mod h1:U707O40ee1FpQGyhvqnzmCJm1Wh6OX6GGBVn0E6Uyyk=
-go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v0.44.0 h1:bflGWrfYyuulcdxf14V6n9+CoQcu5SAAdHmDPAJnlps=
-go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v0.44.0/go.mod h1:qcTO4xHAxZLaLxPd60TdE88rxtItPHgHWqOhOGRr0as=
+go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.5.0 h1:4d++HQ+Ihdl+53zSjtsCUFDmNMju2FC9qFkUlTxPLqo=
+go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.5.0/go.mod h1:mQX5dTO3Mh5ZF7bPKDkt5c/7C41u/SiDr9XgTpzXXn8=
+go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.29.0 h1:k6fQVDQexDE+3jG2SfCQjnHS7OamcP73YMoxEVq5B6k=
+go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.29.0/go.mod h1:t4BrYLHU450Zo9fnydWlIuswB1bm7rM8havDpWOJeDo=
+go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.29.0 h1:xvhQxJ/C9+RTnAj5DpTg7LSM1vbbMTiXt7e9hsfqHNw=
+go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.29.0/go.mod h1:Fcvs2Bz1jkDM+Wf5/ozBGmi3tQ/c9zPKLnsipnfhGAo=
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.29.0 h1:dIIDULZJpgdiHz5tXrTgKIMLkus6jEFa7x5SOKcyR7E=
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.29.0/go.mod h1:jlRVBe7+Z1wyxFSUs48L6OBQZ5JwH2Hg/Vbl+t9rAgI=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.27.0 h1:qFffATk0X+HD+f1Z8lswGiOQYKHRlzfmdJm0wEaVrFA=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.27.0/go.mod h1:MOiCmryaYtc+V0Ei+Tx9o5S1ZjA7kzLucuVuyzBZloQ=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.21.0 h1:digkEZCJWobwBqMwC0cwCq8/wkkRy/OowZg5OArWZrM=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.21.0/go.mod h1:/OpE/y70qVkndM0TrxT4KBoN3RsFZP0QaofcfYrj76I=
-go.opentelemetry.io/otel/exporters/prometheus v0.44.0 h1:08qeJgaPC0YEBu2PQMbqU3rogTlyzpjhCI2b58Yn00w=
-go.opentelemetry.io/otel/exporters/prometheus v0.44.0/go.mod h1:ERL2uIeBtg4TxZdojHUwzZfIFlUIjZtxubT5p4h1Gjg=
-go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v0.44.0 h1:dEZWPjVN22urgYCza3PXRUGEyCB++y1sAqm6guWFesk=
-go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v0.44.0/go.mod h1:sTt30Evb7hJB/gEk27qLb1+l9n4Tb8HvHkR0Wx3S6CU=
-go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.21.0 h1:VhlEQAPp9R1ktYfrPk5SOryw1e9LDDTZCbIPFrho0ec=
-go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.21.0/go.mod h1:kB3ufRbfU+CQ4MlUcqtW8Z7YEOBeK2DJ6CmR5rYYF3E=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.29.0 h1:nSiV3s7wiCam610XcLbYOmMfJxB9gO4uK3Xgv5gmTgg=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.29.0/go.mod h1:hKn/e/Nmd19/x1gvIHwtOwVWM+VhuITSWip3JUDghj0=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.29.0 h1:JAv0Jwtl01UFiyWZEMiJZBiTlv5A50zNs8lsthXqIio=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.29.0/go.mod h1:QNKLmUEAq2QUbPQUfvw4fmv0bgbK7UlOSFCnXyfvSNc=
+go.opentelemetry.io/otel/exporters/prometheus v0.51.0 h1:G7uexXb/K3T+T9fNLCCKncweEtNEBMTO+46hKX5EdKw=
+go.opentelemetry.io/otel/exporters/prometheus v0.51.0/go.mod h1:v0mFe5Kk7woIh938mrZBJBmENYquyA0IICrlYm4Y0t4=
+go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.5.0 h1:ThVXnEsdwNcxdBO+r96ci1xbF+PgNjwlk457VNuJODo=
+go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.5.0/go.mod h1:rHWcSmC4q2h3gje/yOq6sAOaq8+UHxN/Ru3BbmDXOfY=
+go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.29.0 h1:WDdP9acbMYjbKIyJUhTvtzj601sVJOqgWdUxSdR/Ysc=
+go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.29.0/go.mod h1:BLbf7zbNIONBLPwvFnwNHGj4zge8uTCM/UPIVW1Mq2I=
+go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.29.0 h1:X3ZjNp36/WlkSYx0ul2jw4PtbNEDDeLskw3VPsrpYM0=
+go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.29.0/go.mod h1:2uL/xnOXh0CHOBFCWXz5u1A4GXLiW+0IQIzVbeOEQ0U=
+go.opentelemetry.io/otel/log v0.5.0 h1:x1Pr6Y3gnXgl1iFBwtGy1W/mnzENoK0w0ZoaeOI3i30=
+go.opentelemetry.io/otel/log v0.5.0/go.mod h1:NU/ozXeGuOR5/mjCRXYbTC00NFJ3NYuraV/7O78F0rE=
go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8=
go.opentelemetry.io/otel/metric v1.21.0/go.mod h1:o1p3CA8nNHW8j5yuQLdc1eeqEaPfzug24uvsyIEJRWM=
go.opentelemetry.io/otel/metric v1.22.0/go.mod h1:evJGjVpZv0mQ5QBRJoBF64yMuOf4xCWdXjK8pzFvliY=
@@ -2185,8 +2192,10 @@ 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.29.0 h1:vkqKjk7gwhS8VaWb0POZKmIEDimRCMsopNYnriHyryo=
go.opentelemetry.io/otel/sdk v1.29.0/go.mod h1:pM8Dx5WKnvxLCb+8lG1PRNIDxu9g9b9g59Qr7hfAAok=
-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/sdk/log v0.5.0 h1:A+9lSjlZGxkQOr7QSBJcuyyYBw79CufQ69saiJLey7o=
+go.opentelemetry.io/otel/sdk/log v0.5.0/go.mod h1:zjxIW7sw1IHolZL2KlSAtrUi8JHttoeiQy43Yl3WuVQ=
+go.opentelemetry.io/otel/sdk/metric v1.29.0 h1:K2CfmJohnRgvZ9UAj2/FhIf/okdWcNdBwe1m8xFXiSY=
+go.opentelemetry.io/otel/sdk/metric v1.29.0/go.mod h1:6zZLdCl2fkauYoZIOn/soQIDSWFmNSRcICarHfuhNJQ=
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=
@@ -2207,8 +2216,8 @@ go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
-go.uber.org/zap v1.26.0 h1:sI7k6L95XOKS281NhVKOFCUNIvv9e0w4BF8N3u+tCRo=
-go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so=
+go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8=
+go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E=
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
@@ -2236,8 +2245,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.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U=
-golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk=
+golang.org/x/crypto v0.32.0 h1:euUpcYgM8WcP71gNpTqQCn6rC2t6ULUPiOzfWaXVVfc=
+golang.org/x/crypto v0.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc=
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=
@@ -2280,8 +2289,9 @@ golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRu
golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
-golang.org/x/lint v0.0.0-20210508222113-6edffad5e616 h1:VLliZ0d+/avPrXXH+OakdXhpJuEoBZuwh1m2j7U6Iug=
golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
+golang.org/x/lint v0.0.0-20241112194109-818c5a804067 h1:adDmSQyFTCiv19j015EGKJBoaa7ElV0Q1Wovb/4G7NA=
+golang.org/x/lint v0.0.0-20241112194109-818c5a804067/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE=
golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o=
golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc=
@@ -2383,8 +2393,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.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I=
-golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4=
+golang.org/x/net v0.34.0 h1:Mb7Mrk043xzHgnRM88suvJFwzVrRfHEHJEl5/71CKw0=
+golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k=
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=
@@ -2544,8 +2554,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.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA=
-golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
+golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU=
+golang.org/x/sys v0.29.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=
@@ -2563,8 +2573,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.27.0 h1:WP60Sv1nlK1T6SupCHbXzSaN0b9wUmsPoRS9b61A23Q=
-golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM=
+golang.org/x/term v0.28.0 h1:/Ts8HFuMR2E6IP/jlo7QVLZHggjKQbhu/7H0LJFr3Gg=
+golang.org/x/term v0.28.0/go.mod h1:Sw/lC2IAUZ92udQNf3WodGtn4k/XoLyZoh8v/8uiwek=
golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
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=
@@ -2670,8 +2680,8 @@ golang.org/x/tools v0.9.1/go.mod h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc=
golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM=
golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58=
golang.org/x/tools v0.14.0/go.mod h1:uYBEerGOWcJyEORxN+Ek8+TT266gXkNlHdJBwexUsBg=
-golang.org/x/tools v0.28.0 h1:WuB6qZ4RPCQo5aP3WdKZS7i595EdWqWR8vqJTlwTVK8=
-golang.org/x/tools v0.28.0/go.mod h1:dcIOrVd3mfQKTgrDVQHqCPMWy6lnhfhtX3hLXYVLfRw=
+golang.org/x/tools v0.29.0 h1:Xx0h3TtM9rzQpQuR4dKLrdglAmCEN5Oi+P74JdhdzXE=
+golang.org/x/tools v0.29.0/go.mod h1:KMQVMRsVxU6nHCFXrBPhDB8XncLNLM0lIy/F14RP588=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
@@ -2929,8 +2939,9 @@ google.golang.org/genproto v0.0.0-20240116215550-a9fa1716bcac/go.mod h1:+Rvu7ElI
google.golang.org/genproto v0.0.0-20240125205218-1f4bbc51befe/go.mod h1:cc8bqMqtv9gMOr0zHg2Vzff5ULhhL2IXP4sbcn32Dro=
google.golang.org/genproto v0.0.0-20240205150955-31a09d347014/go.mod h1:xEgQu1e4stdSSsxPDK8Azkrk/ECl5HvdPf6nbZrTS5M=
google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9/go.mod h1:mqHbVIp48Muh7Ywss/AD6I5kNVKZMmAa/QEW58Gxp2s=
-google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de h1:F6qOa9AZTYJXOUEr4jDysRDLrm4PHePlge4v4TGAlxY=
google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:VUhTRKeHn9wwcdrk73nvdC9gF178Tzhmt/qyaFcPLSo=
+google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1 h1:BulPr26Jqjnd4eYDVe+YvyR7Yc2vJGkO5/0UxD0/jZU=
+google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:hL97c3SYopEHblzpxRL4lSs523++l8DYxGM1FQiYmb4=
google.golang.org/genproto/googleapis/api v0.0.0-20230525234020-1aefcd67740a/go.mod h1:ts19tUU+Z0ZShN1y3aPyq2+O3d5FUNNgT6FtOzmrNn8=
google.golang.org/genproto/googleapis/api v0.0.0-20230525234035-dd9d682886f9/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig=
google.golang.org/genproto/googleapis/api v0.0.0-20230526203410-71b5a4ffd15e/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig=
@@ -2958,8 +2969,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-20240814211410-ddb44dafa142 h1:wKguEg1hsxI2/L3hUYrpo1RVi48K+uTyzKqprwLXsb8=
-google.golang.org/genproto/googleapis/api v0.0.0-20240814211410-ddb44dafa142/go.mod h1:d6be+8HhtEtucleCbxpPW9PA9XwISACu8nvpPqF0BVo=
+google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1 h1:hjSy6tcFQZ171igDaN5QHOw2n6vx40juYbC/x67CEhc=
+google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:qpvKtACPCQhAdu3PyQgV4l3LMXZEtft7y8QcarRsp9I=
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=
@@ -3020,8 +3031,8 @@ google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqw
google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
-google.golang.org/protobuf v1.36.1 h1:yBPeRvTftaleIgM3PZ/WBIZ7XM/eEYAaEyCwvyjq/gk=
-google.golang.org/protobuf v1.36.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
+google.golang.org/protobuf v1.36.2 h1:R8FeyR1/eLmkutZOM5CWghmo5itiG9z0ktFlTVLuTmU=
+google.golang.org/protobuf v1.36.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
@@ -3071,33 +3082,33 @@ honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9
honnef.co/go/tools v0.1.3/go.mod h1:NgwopIslSNH47DimFoV78dnkksY2EFtX0ajyb3K/las=
k8s.io/api v0.18.0/go.mod h1:q2HRQkfDzHMBZL9l/y9rH63PkQl4vae0xRT+8prbrK8=
k8s.io/api v0.21.0-rc.0/go.mod h1:Dkc/ZauWJrgZhjOjeBgW89xZQiTBJA2RaBKYHXPsi2Y=
-k8s.io/api v0.31.3 h1:umzm5o8lFbdN/hIXbrK9oRpOproJO62CV1zqxXrLgk8=
-k8s.io/api v0.31.3/go.mod h1:UJrkIp9pnMOI9K2nlL6vwpxRzzEX5sWgn8kGQe92kCE=
-k8s.io/apiextensions-apiserver v0.31.3 h1:+GFGj2qFiU7rGCsA5o+p/rul1OQIq6oYpQw4+u+nciE=
-k8s.io/apiextensions-apiserver v0.31.3/go.mod h1:2DSpFhUZZJmn/cr/RweH1cEVVbzFw9YBu4T+U3mf1e4=
+k8s.io/api v0.32.0 h1:OL9JpbvAU5ny9ga2fb24X8H6xQlVp+aJMFlgtQjR9CE=
+k8s.io/api v0.32.0/go.mod h1:4LEwHZEf6Q/cG96F3dqR965sYOfmPM7rq81BLgsE0p0=
+k8s.io/apiextensions-apiserver v0.32.0 h1:S0Xlqt51qzzqjKPxfgX1xh4HBZE+p8KKBq+k2SWNOE0=
+k8s.io/apiextensions-apiserver v0.32.0/go.mod h1:86hblMvN5yxMvZrZFX2OhIHAuFIMJIZ19bTvzkP+Fmw=
k8s.io/apimachinery v0.18.0/go.mod h1:9SnR/e11v5IbyPCGbvJViimtJ0SwHG4nfZFjU77ftcA=
k8s.io/apimachinery v0.21.0-rc.0/go.mod h1:jbreFvJo3ov9rj7eWT7+sYiRx+qZuCYXwWT1bcDswPY=
-k8s.io/apimachinery v0.31.3 h1:6l0WhcYgasZ/wk9ktLq5vLaoXJJr5ts6lkaQzgeYPq4=
-k8s.io/apimachinery v0.31.3/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo=
-k8s.io/apiserver v0.31.3 h1:+1oHTtCB+OheqFEz375D0IlzHZ5VeQKX1KGXnx+TTuY=
-k8s.io/apiserver v0.31.3/go.mod h1:PrxVbebxrxQPFhJk4powDISIROkNMKHibTg9lTRQ0Qg=
-k8s.io/cli-runtime v0.31.0 h1:V2Q1gj1u3/WfhD475HBQrIYsoryg/LrhhK4RwpN+DhA=
-k8s.io/cli-runtime v0.31.0/go.mod h1:vg3H94wsubuvWfSmStDbekvbla5vFGC+zLWqcf+bGDw=
+k8s.io/apimachinery v0.32.0 h1:cFSE7N3rmEEtv4ei5X6DaJPHHX0C+upp+v5lVPiEwpg=
+k8s.io/apimachinery v0.32.0/go.mod h1:GpHVgxoKlTxClKcteaeuF1Ul/lDVb74KpZcxcmLDElE=
+k8s.io/apiserver v0.32.0 h1:VJ89ZvQZ8p1sLeiWdRJpRD6oLozNZD2+qVSLi+ft5Qs=
+k8s.io/apiserver v0.32.0/go.mod h1:HFh+dM1/BE/Hm4bS4nTXHVfN6Z6tFIZPi649n83b4Ag=
+k8s.io/cli-runtime v0.32.0 h1:dP+OZqs7zHPpGQMCGAhectbHU2SNCuZtIimRKTv2T1c=
+k8s.io/cli-runtime v0.32.0/go.mod h1:Mai8ht2+esoDRK5hr861KRy6z0zHsSTYttNVJXgP3YQ=
k8s.io/client-go v0.18.0/go.mod h1:uQSYDYs4WhVZ9i6AIoEZuwUggLVEF64HOD37boKAtF8=
-k8s.io/client-go v0.31.3 h1:CAlZuM+PH2cm+86LOBemaJI/lQ5linJ6UFxKX/SoG+4=
-k8s.io/client-go v0.31.3/go.mod h1:2CgjPUTpv3fE5dNygAr2NcM8nhHzXvxB8KL5gYc3kJs=
+k8s.io/client-go v0.32.0 h1:DimtMcnN/JIKZcrSrstiwvvZvLjG0aSxy8PxN8IChp8=
+k8s.io/client-go v0.32.0/go.mod h1:boDWvdM1Drk4NJj/VddSLnx59X3OPgwrOo0vGbtq9+8=
k8s.io/code-generator v0.18.0/go.mod h1:+UHX5rSbxmR8kzS+FAv7um6dtYrZokQvjHpDSYRVkTc=
k8s.io/code-generator v0.21.0-rc.0/go.mod h1:hUlps5+9QaTrKx+jiM4rmq7YmH8wPOIko64uZCHDh6Q=
-k8s.io/code-generator v0.31.3 h1:Pj0fYOBms+ZrsulLi4DMsCEx1jG8fWKRLy44onHsLBI=
-k8s.io/code-generator v0.31.3/go.mod h1:/umCIlT84g1+Yu5ZXtP1KGSRTnGiIzzX5AzUAxsNlts=
-k8s.io/component-base v0.31.3 h1:DMCXXVx546Rfvhj+3cOm2EUxhS+EyztH423j+8sOwhQ=
-k8s.io/component-base v0.31.3/go.mod h1:xME6BHfUOafRgT0rGVBGl7TuSg8Z9/deT7qq6w7qjIU=
+k8s.io/code-generator v0.32.0 h1:s0lNN8VSWny8LBz5t5iy7MCdgwdOhdg7vAGVxvS+VWU=
+k8s.io/code-generator v0.32.0/go.mod h1:b7Q7KMZkvsYFy72A79QYjiv4aTz3GvW0f1T3UfhFq4s=
+k8s.io/component-base v0.32.0 h1:d6cWHZkCiiep41ObYQS6IcgzOUQUNpywm39KVYaUqzU=
+k8s.io/component-base v0.32.0/go.mod h1:JLG2W5TUxUu5uDyKiH2R/7NnxJo1HlPoRIIbVLkK5eM=
k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
k8s.io/gengo v0.0.0-20200114144118-36b2048a9120/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
k8s.io/gengo v0.0.0-20201214224949-b6c5ce23f027/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E=
-k8s.io/gengo/v2 v2.0.0-20240812201722-3b05ca7b6e59 h1:PfhT3P5Y7psqhl0D77Rj2B7RH77eid/wBttxlMTxXag=
-k8s.io/gengo/v2 v2.0.0-20240812201722-3b05ca7b6e59/go.mod h1:VH3AT8AaQOqiGjMF9p0/IM1Dj+82ZwjfxUP1IxaHE+8=
+k8s.io/gengo/v2 v2.0.0-20240911193312-2b36238f13e9 h1:si3PfKm8dDYxgfbeA6orqrtLkvvIeH8UqffFJDl0bz4=
+k8s.io/gengo/v2 v2.0.0-20240911193312-2b36238f13e9/go.mod h1:EJykeLsmFC60UQbYJezXkEsG2FLrt0GPNkU5iK5GWxU=
k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk=
k8s.io/klog v0.3.0/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk=
k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8=
@@ -3107,19 +3118,19 @@ k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y=
k8s.io/klog/v2 v2.8.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec=
k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk=
k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE=
-k8s.io/kms v0.31.3 h1:XCFmiJn5CCKs8xoOLpCmu42Ubm/KW85wNHybGFcSAYc=
-k8s.io/kms v0.31.3/go.mod h1:OZKwl1fan3n3N5FFxnW5C4V3ygrah/3YXeJWS3O6+94=
-k8s.io/kube-aggregator v0.31.3 h1:DqHPdTglJHgOfB884AaroyxrML/aL82ASYOh65m7MSk=
-k8s.io/kube-aggregator v0.31.3/go.mod h1:Kx59Xjnf0SnY47qf9Or++4y3XCHQ3kR0xk1Di6KFiFU=
+k8s.io/kms v0.32.0 h1:jwOfunHIrcdYl5FRcA+uUKKtg6qiqoPCwmS2T3XTYL4=
+k8s.io/kms v0.32.0/go.mod h1:Bk2evz/Yvk0oVrvm4MvZbgq8BD34Ksxs2SRHn4/UiOM=
+k8s.io/kube-aggregator v0.32.0 h1:5ZyMW3QwAbmkasQrROcpa5we3et938DQuyUYHeXSPao=
+k8s.io/kube-aggregator v0.32.0/go.mod h1:6OKivf6Ypx44qu2v1ZUMrxH8kRp/8LKFKeJU72J18lU=
k8s.io/kube-openapi v0.0.0-20200121204235-bf4fb3bd569c/go.mod h1:GRQhZsXIAJ1xR0C9bd8UpWHZ5plfAS9fzPjJuQ6JL3E=
k8s.io/kube-openapi v0.0.0-20210305001622-591a79e4bda7/go.mod h1:wXW5VT87nVfh/iLV8FpR2uDvrFyomxbtb1KivDbvPTE=
-k8s.io/kube-openapi v0.0.0-20240816214639-573285566f34 h1:/amS69DLm09mtbFtN3+LyygSFohnYGMseF8iv+2zulg=
-k8s.io/kube-openapi v0.0.0-20240816214639-573285566f34/go.mod h1:G0W3eI9gG219NHRq3h5uQaRBl4pj4ZpwzRP5ti8y770=
-k8s.io/kubectl v0.31.0 h1:kANwAAPVY02r4U4jARP/C+Q1sssCcN/1p9Nk+7BQKVg=
-k8s.io/kubectl v0.31.0/go.mod h1:pB47hhFypGsaHAPjlwrNbvhXgmuAr01ZBvAIIUaI8d4=
+k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f h1:GA7//TjRY9yWGy1poLzYYJJ4JRdzg3+O6e8I+e+8T5Y=
+k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f/go.mod h1:R/HEjbvWI0qdfb8viZUeVZm0X6IZnxAydC7YU42CMw4=
+k8s.io/kubectl v0.32.0 h1:rpxl+ng9qeG79YA4Em9tLSfX0G8W0vfaiPVrc/WR7Xw=
+k8s.io/kubectl v0.32.0/go.mod h1:qIjSX+QgPQUgdy8ps6eKsYNF+YmFOAO3WygfucIqFiE=
k8s.io/utils v0.0.0-20200324210504-a9aa75ae1b89/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew=
-k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 h1:pUdcCO1Lk/tbT5ztQWOBi5HBgbBP1J8+AsQnQCKsi8A=
-k8s.io/utils v0.0.0-20240711033017-18e509b52bc8/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
+k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 h1:M3sRQVHv7vB20Xc2ybTt7ODCeFj6JSWYFzOFnYeS6Ro=
+k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
lukechampine.com/uint128 v1.1.1/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk=
lukechampine.com/uint128 v1.2.0/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk=
lukechampine.com/uint128 v1.3.0/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk=
@@ -3184,20 +3195,20 @@ rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8
rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4=
rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
-sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.30.3 h1:2770sDpzrjjsAtVhSeUFseziht227YAWYHLGNM8QPwY=
-sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.30.3/go.mod h1:Ve9uj1L+deCXFrPOk1LpFXqTg7LCFzFso6PA48q/XZw=
-sigs.k8s.io/controller-runtime v0.19.3 h1:XO2GvC9OPftRst6xWCpTgBZO04S2cbp0Qqkj8bX1sPw=
-sigs.k8s.io/controller-runtime v0.19.3/go.mod h1:j4j87DqtsThvwTv5/Tc5NFRyyF/RF0ip4+62tbTSIUM=
-sigs.k8s.io/controller-tools v0.16.5 h1:5k9FNRqziBPwqr17AMEPPV/En39ZBplLAdOwwQHruP4=
-sigs.k8s.io/controller-tools v0.16.5/go.mod h1:8vztuRVzs8IuuJqKqbXCSlXcw+lkAv/M2sTpg55qjMY=
-sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo=
-sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0=
+sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.0 h1:CPT0ExVicCzcpeN4baWEV2ko2Z/AsiZgEdwgcfwLgMo=
+sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.0/go.mod h1:Ve9uj1L+deCXFrPOk1LpFXqTg7LCFzFso6PA48q/XZw=
+sigs.k8s.io/controller-runtime v0.19.4 h1:SUmheabttt0nx8uJtoII4oIP27BVVvAKFvdvGFwV/Qo=
+sigs.k8s.io/controller-runtime v0.19.4/go.mod h1:iRmWllt8IlaLjvTTDLhRBXIEtkCK6hwVBJJsYS9Ajf4=
+sigs.k8s.io/controller-tools v0.17.0 h1:KaEQZbhrdY6J3zLBHplt+0aKUp8PeIttlhtF2UDo6bI=
+sigs.k8s.io/controller-tools v0.17.0/go.mod h1:SKoWY8rwGWDzHtfnhmOwljn6fViG0JF7/xmnxpklgjo=
+sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 h1:/Rv+M11QRah1itp8VhT6HoVx1Ray9eB4DBr+K+/sCJ8=
+sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3/go.mod h1:18nIHnGi6636UCz6m8i4DhaJ65T6EruyzmoQqI2BVDo=
sigs.k8s.io/structured-merge-diff/v3 v3.0.0-20200116222232-67a7b8c61874/go.mod h1:PlARxl6Hbt/+BC80dRLi1qAmnMqwqDg62YvvVkZjemw=
sigs.k8s.io/structured-merge-diff/v3 v3.0.0/go.mod h1:PlARxl6Hbt/+BC80dRLi1qAmnMqwqDg62YvvVkZjemw=
sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
sigs.k8s.io/structured-merge-diff/v4 v4.1.0/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
-sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4=
-sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08=
+sigs.k8s.io/structured-merge-diff/v4 v4.4.2 h1:MdmvkGuXi/8io6ixD5wud3vOLwc1rj0aNqRlpuvjmwA=
+sigs.k8s.io/structured-merge-diff/v4 v4.4.2/go.mod h1:N8f93tFZh9U6vpxwRArLiikrE5/2tiu1w1AGfACIGE4=
sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o=
sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc=
sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E=
diff --git a/manifests/0000_50_olm_00-catalogsources.crd.yaml b/manifests/0000_50_olm_00-catalogsources.crd.yaml
index a08143818d..efc5c34201 100644
--- a/manifests/0000_50_olm_00-catalogsources.crd.yaml
+++ b/manifests/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.16.5
+ controller-gen.kubebuilder.io/version: v0.17.0
include.release.openshift.io/ibm-cloud-managed: "true"
include.release.openshift.io/self-managed-high-availability: "true"
capability.openshift.io/name: "OperatorLifecycleManager"
diff --git a/manifests/0000_50_olm_00-clusterserviceversions.crd.yaml b/manifests/0000_50_olm_00-clusterserviceversions.crd.yaml
index 99ba54fd3a..bf72be3a15 100644
--- a/manifests/0000_50_olm_00-clusterserviceversions.crd.yaml
+++ b/manifests/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.16.5
+ controller-gen.kubebuilder.io/version: v0.17.0
include.release.openshift.io/ibm-cloud-managed: "true"
include.release.openshift.io/self-managed-high-availability: "true"
capability.openshift.io/name: "OperatorLifecycleManager"
@@ -1962,7 +1962,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -1977,7 +1977,7 @@ spec:
type: string
x-kubernetes-list-type: atomic
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -2024,7 +2024,7 @@ spec:
Defaults to HTTP.
type: string
sleep:
- description: Sleep represents the duration that the container should sleep before being terminated.
+ description: Sleep represents a duration that the container should sleep.
type: object
required:
- seconds
@@ -2036,8 +2036,8 @@ spec:
tcpSocket:
description: |-
Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept
- for the backward compatibility. There are no validation of this field and
- lifecycle hooks will fail in runtime when tcp handler is specified.
+ for backward compatibility. There is no validation of this field and
+ lifecycle hooks will fail at runtime when it is specified.
type: object
required:
- port
@@ -2068,7 +2068,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -2083,7 +2083,7 @@ spec:
type: string
x-kubernetes-list-type: atomic
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -2130,7 +2130,7 @@ spec:
Defaults to HTTP.
type: string
sleep:
- description: Sleep represents the duration that the container should sleep before being terminated.
+ description: Sleep represents a duration that the container should sleep.
type: object
required:
- seconds
@@ -2142,8 +2142,8 @@ spec:
tcpSocket:
description: |-
Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept
- for the backward compatibility. There are no validation of this field and
- lifecycle hooks will fail in runtime when tcp handler is specified.
+ for backward compatibility. There is no validation of this field and
+ lifecycle hooks will fail at runtime when it is specified.
type: object
required:
- port
@@ -2169,7 +2169,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -2190,7 +2190,7 @@ spec:
type: integer
format: int32
grpc:
- description: GRPC specifies an action involving a GRPC port.
+ description: GRPC specifies a GRPC HealthCheckRequest.
type: object
required:
- port
@@ -2208,7 +2208,7 @@ spec:
type: string
default: ""
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -2273,7 +2273,7 @@ spec:
type: integer
format: int32
tcpSocket:
- description: TCPSocket specifies an action involving a TCP port.
+ description: TCPSocket specifies a connection to a TCP port.
type: object
required:
- port
@@ -2375,7 +2375,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -2396,7 +2396,7 @@ spec:
type: integer
format: int32
grpc:
- description: GRPC specifies an action involving a GRPC port.
+ description: GRPC specifies a GRPC HealthCheckRequest.
type: object
required:
- port
@@ -2414,7 +2414,7 @@ spec:
type: string
default: ""
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -2479,7 +2479,7 @@ spec:
type: integer
format: int32
tcpSocket:
- description: TCPSocket specifies an action involving a TCP port.
+ description: TCPSocket specifies a connection to a TCP port.
type: object
required:
- port
@@ -2818,7 +2818,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -2839,7 +2839,7 @@ spec:
type: integer
format: int32
grpc:
- description: GRPC specifies an action involving a GRPC port.
+ description: GRPC specifies a GRPC HealthCheckRequest.
type: object
required:
- port
@@ -2857,7 +2857,7 @@ spec:
type: string
default: ""
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -2922,7 +2922,7 @@ spec:
type: integer
format: int32
tcpSocket:
- description: TCPSocket specifies an action involving a TCP port.
+ description: TCPSocket specifies a connection to a TCP port.
type: object
required:
- port
@@ -3126,9 +3126,12 @@ spec:
type: object
properties:
name:
- description: Required.
+ description: |-
+ Name is this DNS resolver option's name.
+ Required.
type: string
value:
+ description: Value is this DNS resolver option's value.
type: string
x-kubernetes-list-type: atomic
searches:
@@ -3395,7 +3398,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -3410,7 +3413,7 @@ spec:
type: string
x-kubernetes-list-type: atomic
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -3457,7 +3460,7 @@ spec:
Defaults to HTTP.
type: string
sleep:
- description: Sleep represents the duration that the container should sleep before being terminated.
+ description: Sleep represents a duration that the container should sleep.
type: object
required:
- seconds
@@ -3469,8 +3472,8 @@ spec:
tcpSocket:
description: |-
Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept
- for the backward compatibility. There are no validation of this field and
- lifecycle hooks will fail in runtime when tcp handler is specified.
+ for backward compatibility. There is no validation of this field and
+ lifecycle hooks will fail at runtime when it is specified.
type: object
required:
- port
@@ -3501,7 +3504,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -3516,7 +3519,7 @@ spec:
type: string
x-kubernetes-list-type: atomic
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -3563,7 +3566,7 @@ spec:
Defaults to HTTP.
type: string
sleep:
- description: Sleep represents the duration that the container should sleep before being terminated.
+ description: Sleep represents a duration that the container should sleep.
type: object
required:
- seconds
@@ -3575,8 +3578,8 @@ spec:
tcpSocket:
description: |-
Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept
- for the backward compatibility. There are no validation of this field and
- lifecycle hooks will fail in runtime when tcp handler is specified.
+ for backward compatibility. There is no validation of this field and
+ lifecycle hooks will fail at runtime when it is specified.
type: object
required:
- port
@@ -3598,7 +3601,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -3619,7 +3622,7 @@ spec:
type: integer
format: int32
grpc:
- description: GRPC specifies an action involving a GRPC port.
+ description: GRPC specifies a GRPC HealthCheckRequest.
type: object
required:
- port
@@ -3637,7 +3640,7 @@ spec:
type: string
default: ""
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -3702,7 +3705,7 @@ spec:
type: integer
format: int32
tcpSocket:
- description: TCPSocket specifies an action involving a TCP port.
+ description: TCPSocket specifies a connection to a TCP port.
type: object
required:
- port
@@ -3792,7 +3795,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -3813,7 +3816,7 @@ spec:
type: integer
format: int32
grpc:
- description: GRPC specifies an action involving a GRPC port.
+ description: GRPC specifies a GRPC HealthCheckRequest.
type: object
required:
- port
@@ -3831,7 +3834,7 @@ spec:
type: string
default: ""
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -3896,7 +3899,7 @@ spec:
type: integer
format: int32
tcpSocket:
- description: TCPSocket specifies an action involving a TCP port.
+ description: TCPSocket specifies a connection to a TCP port.
type: object
required:
- port
@@ -4215,7 +4218,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -4236,7 +4239,7 @@ spec:
type: integer
format: int32
grpc:
- description: GRPC specifies an action involving a GRPC port.
+ description: GRPC specifies a GRPC HealthCheckRequest.
type: object
required:
- port
@@ -4254,7 +4257,7 @@ spec:
type: string
default: ""
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -4319,7 +4322,7 @@ spec:
type: integer
format: int32
tcpSocket:
- description: TCPSocket specifies an action involving a TCP port.
+ description: TCPSocket specifies a connection to a TCP port.
type: object
required:
- port
@@ -4832,7 +4835,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -4847,7 +4850,7 @@ spec:
type: string
x-kubernetes-list-type: atomic
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -4894,7 +4897,7 @@ spec:
Defaults to HTTP.
type: string
sleep:
- description: Sleep represents the duration that the container should sleep before being terminated.
+ description: Sleep represents a duration that the container should sleep.
type: object
required:
- seconds
@@ -4906,8 +4909,8 @@ spec:
tcpSocket:
description: |-
Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept
- for the backward compatibility. There are no validation of this field and
- lifecycle hooks will fail in runtime when tcp handler is specified.
+ for backward compatibility. There is no validation of this field and
+ lifecycle hooks will fail at runtime when it is specified.
type: object
required:
- port
@@ -4938,7 +4941,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -4953,7 +4956,7 @@ spec:
type: string
x-kubernetes-list-type: atomic
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -5000,7 +5003,7 @@ spec:
Defaults to HTTP.
type: string
sleep:
- description: Sleep represents the duration that the container should sleep before being terminated.
+ description: Sleep represents a duration that the container should sleep.
type: object
required:
- seconds
@@ -5012,8 +5015,8 @@ spec:
tcpSocket:
description: |-
Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept
- for the backward compatibility. There are no validation of this field and
- lifecycle hooks will fail in runtime when tcp handler is specified.
+ for backward compatibility. There is no validation of this field and
+ lifecycle hooks will fail at runtime when it is specified.
type: object
required:
- port
@@ -5039,7 +5042,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -5060,7 +5063,7 @@ spec:
type: integer
format: int32
grpc:
- description: GRPC specifies an action involving a GRPC port.
+ description: GRPC specifies a GRPC HealthCheckRequest.
type: object
required:
- port
@@ -5078,7 +5081,7 @@ spec:
type: string
default: ""
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -5143,7 +5146,7 @@ spec:
type: integer
format: int32
tcpSocket:
- description: TCPSocket specifies an action involving a TCP port.
+ description: TCPSocket specifies a connection to a TCP port.
type: object
required:
- port
@@ -5245,7 +5248,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -5266,7 +5269,7 @@ spec:
type: integer
format: int32
grpc:
- description: GRPC specifies an action involving a GRPC port.
+ description: GRPC specifies a GRPC HealthCheckRequest.
type: object
required:
- port
@@ -5284,7 +5287,7 @@ spec:
type: string
default: ""
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -5349,7 +5352,7 @@ spec:
type: integer
format: int32
tcpSocket:
- description: TCPSocket specifies an action involving a TCP port.
+ description: TCPSocket specifies a connection to a TCP port.
type: object
required:
- port
@@ -5688,7 +5691,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -5709,7 +5712,7 @@ spec:
type: integer
format: int32
grpc:
- description: GRPC specifies an action involving a GRPC port.
+ description: GRPC specifies a GRPC HealthCheckRequest.
type: object
required:
- port
@@ -5727,7 +5730,7 @@ spec:
type: string
default: ""
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -5792,7 +5795,7 @@ spec:
type: integer
format: int32
tcpSocket:
- description: TCPSocket specifies an action involving a TCP port.
+ description: TCPSocket specifies a connection to a TCP port.
type: object
required:
- port
@@ -6144,6 +6147,74 @@ spec:
x-kubernetes-list-map-keys:
- name
x-kubernetes-list-type: map
+ resources:
+ description: |-
+ Resources is the total amount of CPU and Memory resources required by all
+ containers in the pod. It supports specifying Requests and Limits for
+ "cpu" and "memory" resource names only. ResourceClaims are not supported.
+
+ This field enables fine-grained control over resource allocation for the
+ entire pod, allowing resource sharing among containers in a pod.
+
+ This is an alpha field and requires enabling the PodLevelResources feature
+ gate.
+ type: object
+ properties:
+ claims:
+ description: |-
+ 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:
+ description: ResourceClaim references one entry in PodSpec.ResourceClaims.
+ type: object
+ required:
+ - name
+ properties:
+ name:
+ description: |-
+ Name must match the name of one entry in pod.spec.resourceClaims of
+ 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
+ limits:
+ description: |-
+ Limits describes the maximum amount of compute resources allowed.
+ More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
+ type: object
+ additionalProperties:
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ requests:
+ description: |-
+ Requests describes the minimum amount of compute resources required.
+ If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
+ otherwise to an implementation-defined value. Requests cannot exceed Limits.
+ More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
+ type: object
+ additionalProperties:
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
restartPolicy:
description: |-
Restart policy for all containers within the pod.
@@ -6268,6 +6339,32 @@ spec:
Note that this field cannot be set when spec.os.name is windows.
type: integer
format: int64
+ seLinuxChangePolicy:
+ description: |-
+ seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod.
+ It has no effect on nodes that do not support SELinux or to volumes does not support SELinux.
+ Valid values are "MountOption" and "Recursive".
+
+ "Recursive" means relabeling of all files on all Pod volumes by the container runtime.
+ This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node.
+
+ "MountOption" mounts all eligible Pod volumes with `-o context` mount option.
+ This requires all Pods that share the same volume to use the same SELinux label.
+ It is not possible to share the same volume among privileged and unprivileged Pods.
+ Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes
+ whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their
+ CSIDriver instance. Other volumes are always re-labelled recursively.
+ "MountOption" value is allowed only when SELinuxMount feature gate is enabled.
+
+ If not specified and SELinuxMount feature gate is enabled, "MountOption" is used.
+ If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes
+ and "Recursive" for all other volumes.
+
+ This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers.
+
+ All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state.
+ Note that this field cannot be set when spec.os.name is windows.
+ type: string
seLinuxOptions:
description: |-
The SELinux context to be applied to all containers.
@@ -6667,6 +6764,8 @@ spec:
description: |-
awsElasticBlockStore represents an AWS Disk resource that is attached to a
kubelet's host machine and then exposed to the pod.
+ Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree
+ awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver.
More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
type: object
required:
@@ -6698,7 +6797,10 @@ spec:
More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
type: string
azureDisk:
- description: azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
+ description: |-
+ azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
+ Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type
+ are redirected to the disk.csi.azure.com CSI driver.
type: object
required:
- diskName
@@ -6730,7 +6832,10 @@ spec:
type: boolean
default: false
azureFile:
- description: azureFile represents an Azure File Service mount on the host and bind mount to the pod.
+ description: |-
+ azureFile represents an Azure File Service mount on the host and bind mount to the pod.
+ Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type
+ are redirected to the file.csi.azure.com CSI driver.
type: object
required:
- secretName
@@ -6748,7 +6853,9 @@ spec:
description: shareName is the azure share Name
type: string
cephfs:
- description: cephFS represents a Ceph FS mount on the host that shares a pod's lifetime
+ description: |-
+ cephFS represents a Ceph FS mount on the host that shares a pod's lifetime.
+ Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.
type: object
required:
- monitors
@@ -6799,6 +6906,8 @@ spec:
cinder:
description: |-
cinder represents a cinder volume attached and mounted on kubelets host machine.
+ Deprecated: Cinder is deprecated. All operations for the in-tree cinder type
+ are redirected to the cinder.csi.openstack.org CSI driver.
More info: https://examples.k8s.io/mysql-cinder-pd/README.md
type: object
required:
@@ -6905,7 +7014,7 @@ spec:
type: boolean
x-kubernetes-map-type: atomic
csi:
- description: csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).
+ description: csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers.
type: object
required:
- driver
@@ -7347,6 +7456,7 @@ spec:
description: |-
flexVolume represents a generic volume resource that is
provisioned/attached using an exec based plugin.
+ Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.
type: object
required:
- driver
@@ -7390,7 +7500,9 @@ spec:
default: ""
x-kubernetes-map-type: atomic
flocker:
- description: flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running
+ description: |-
+ flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running.
+ Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.
type: object
properties:
datasetName:
@@ -7405,6 +7517,8 @@ spec:
description: |-
gcePersistentDisk represents a GCE Disk resource that is attached to a
kubelet's host machine and then exposed to the pod.
+ Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree
+ gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver.
More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
type: object
required:
@@ -7440,7 +7554,7 @@ spec:
gitRepo:
description: |-
gitRepo represents a git repository at a particular revision.
- DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an
+ Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an
EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir
into the Pod's container.
type: object
@@ -7463,6 +7577,7 @@ spec:
glusterfs:
description: |-
glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.
+ Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported.
More info: https://examples.k8s.io/volumes/glusterfs/README.md
type: object
required:
@@ -7669,7 +7784,9 @@ spec:
Default false.
type: boolean
photonPersistentDisk:
- description: photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine
+ description: |-
+ photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine.
+ Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.
type: object
required:
- pdID
@@ -7684,7 +7801,11 @@ spec:
description: pdID is the ID that identifies Photon Controller persistent disk
type: string
portworxVolume:
- description: portworxVolume represents a portworx volume attached and mounted on kubelets host machine
+ description: |-
+ portworxVolume represents a portworx volume attached and mounted on kubelets host machine.
+ Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type
+ are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate
+ is on.
type: object
required:
- volumeID
@@ -8019,7 +8140,9 @@ spec:
type: string
x-kubernetes-list-type: atomic
quobyte:
- description: quobyte represents a Quobyte mount on the host that shares a pod's lifetime
+ description: |-
+ quobyte represents a Quobyte mount on the host that shares a pod's lifetime.
+ Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.
type: object
required:
- registry
@@ -8057,6 +8180,7 @@ spec:
rbd:
description: |-
rbd represents a Rados Block Device mount on the host that shares a pod's lifetime.
+ Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported.
More info: https://examples.k8s.io/volumes/rbd/README.md
type: object
required:
@@ -8129,7 +8253,9 @@ spec:
type: string
default: admin
scaleIO:
- description: scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
+ description: |-
+ scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
+ Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.
type: object
required:
- gateway
@@ -8255,7 +8381,9 @@ spec:
More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
type: string
storageos:
- description: storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.
+ description: |-
+ storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.
+ Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported.
type: object
properties:
fsType:
@@ -8300,7 +8428,10 @@ spec:
Namespaces that do not pre-exist within StorageOS will be created.
type: string
vsphereVolume:
- description: vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine
+ description: |-
+ vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine.
+ Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type
+ are redirected to the csi.vsphere.vmware.com CSI driver.
type: object
required:
- volumePath
diff --git a/manifests/0000_50_olm_00-installplans.crd.yaml b/manifests/0000_50_olm_00-installplans.crd.yaml
index 2593546c8e..45abbc70ed 100644
--- a/manifests/0000_50_olm_00-installplans.crd.yaml
+++ b/manifests/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.16.5
+ controller-gen.kubebuilder.io/version: v0.17.0
include.release.openshift.io/ibm-cloud-managed: "true"
include.release.openshift.io/self-managed-high-availability: "true"
capability.openshift.io/name: "OperatorLifecycleManager"
diff --git a/manifests/0000_50_olm_00-olmconfigs.crd.yaml b/manifests/0000_50_olm_00-olmconfigs.crd.yaml
index b2b4d1ec28..000d18961b 100644
--- a/manifests/0000_50_olm_00-olmconfigs.crd.yaml
+++ b/manifests/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.16.5
+ controller-gen.kubebuilder.io/version: v0.17.0
include.release.openshift.io/ibm-cloud-managed: "true"
include.release.openshift.io/self-managed-high-availability: "true"
capability.openshift.io/name: "OperatorLifecycleManager"
diff --git a/manifests/0000_50_olm_00-operatorconditions.crd.yaml b/manifests/0000_50_olm_00-operatorconditions.crd.yaml
index 9bac00bd90..0a07d32631 100644
--- a/manifests/0000_50_olm_00-operatorconditions.crd.yaml
+++ b/manifests/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.16.5
+ controller-gen.kubebuilder.io/version: v0.17.0
include.release.openshift.io/ibm-cloud-managed: "true"
include.release.openshift.io/self-managed-high-availability: "true"
capability.openshift.io/name: "OperatorLifecycleManager"
diff --git a/manifests/0000_50_olm_00-operatorgroups.crd.yaml b/manifests/0000_50_olm_00-operatorgroups.crd.yaml
index ca57e20b85..e6100bf0f6 100644
--- a/manifests/0000_50_olm_00-operatorgroups.crd.yaml
+++ b/manifests/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.16.5
+ controller-gen.kubebuilder.io/version: v0.17.0
include.release.openshift.io/ibm-cloud-managed: "true"
include.release.openshift.io/self-managed-high-availability: "true"
capability.openshift.io/name: "OperatorLifecycleManager"
diff --git a/manifests/0000_50_olm_00-operators.crd.yaml b/manifests/0000_50_olm_00-operators.crd.yaml
index b93e4eca8e..9ebc29f255 100644
--- a/manifests/0000_50_olm_00-operators.crd.yaml
+++ b/manifests/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.16.5
+ controller-gen.kubebuilder.io/version: v0.17.0
include.release.openshift.io/ibm-cloud-managed: "true"
include.release.openshift.io/self-managed-high-availability: "true"
capability.openshift.io/name: "OperatorLifecycleManager"
diff --git a/manifests/0000_50_olm_00-subscriptions.crd.yaml b/manifests/0000_50_olm_00-subscriptions.crd.yaml
index 28e6f23efc..65177c2bb7 100644
--- a/manifests/0000_50_olm_00-subscriptions.crd.yaml
+++ b/manifests/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.16.5
+ controller-gen.kubebuilder.io/version: v0.17.0
include.release.openshift.io/ibm-cloud-managed: "true"
include.release.openshift.io/self-managed-high-availability: "true"
capability.openshift.io/name: "OperatorLifecycleManager"
@@ -1362,6 +1362,8 @@ spec:
description: |-
awsElasticBlockStore represents an AWS Disk resource that is attached to a
kubelet's host machine and then exposed to the pod.
+ Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree
+ awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver.
More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
type: object
required:
@@ -1393,7 +1395,10 @@ spec:
More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
type: string
azureDisk:
- description: azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
+ description: |-
+ azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
+ Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type
+ are redirected to the disk.csi.azure.com CSI driver.
type: object
required:
- diskName
@@ -1425,7 +1430,10 @@ spec:
type: boolean
default: false
azureFile:
- description: azureFile represents an Azure File Service mount on the host and bind mount to the pod.
+ description: |-
+ azureFile represents an Azure File Service mount on the host and bind mount to the pod.
+ Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type
+ are redirected to the file.csi.azure.com CSI driver.
type: object
required:
- secretName
@@ -1443,7 +1451,9 @@ spec:
description: shareName is the azure share Name
type: string
cephfs:
- description: cephFS represents a Ceph FS mount on the host that shares a pod's lifetime
+ description: |-
+ cephFS represents a Ceph FS mount on the host that shares a pod's lifetime.
+ Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.
type: object
required:
- monitors
@@ -1494,6 +1504,8 @@ spec:
cinder:
description: |-
cinder represents a cinder volume attached and mounted on kubelets host machine.
+ Deprecated: Cinder is deprecated. All operations for the in-tree cinder type
+ are redirected to the cinder.csi.openstack.org CSI driver.
More info: https://examples.k8s.io/mysql-cinder-pd/README.md
type: object
required:
@@ -1600,7 +1612,7 @@ spec:
type: boolean
x-kubernetes-map-type: atomic
csi:
- description: csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).
+ description: csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers.
type: object
required:
- driver
@@ -2042,6 +2054,7 @@ spec:
description: |-
flexVolume represents a generic volume resource that is
provisioned/attached using an exec based plugin.
+ Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.
type: object
required:
- driver
@@ -2085,7 +2098,9 @@ spec:
default: ""
x-kubernetes-map-type: atomic
flocker:
- description: flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running
+ description: |-
+ flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running.
+ Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.
type: object
properties:
datasetName:
@@ -2100,6 +2115,8 @@ spec:
description: |-
gcePersistentDisk represents a GCE Disk resource that is attached to a
kubelet's host machine and then exposed to the pod.
+ Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree
+ gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver.
More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
type: object
required:
@@ -2135,7 +2152,7 @@ spec:
gitRepo:
description: |-
gitRepo represents a git repository at a particular revision.
- DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an
+ Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an
EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir
into the Pod's container.
type: object
@@ -2158,6 +2175,7 @@ spec:
glusterfs:
description: |-
glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.
+ Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported.
More info: https://examples.k8s.io/volumes/glusterfs/README.md
type: object
required:
@@ -2364,7 +2382,9 @@ spec:
Default false.
type: boolean
photonPersistentDisk:
- description: photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine
+ description: |-
+ photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine.
+ Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.
type: object
required:
- pdID
@@ -2379,7 +2399,11 @@ spec:
description: pdID is the ID that identifies Photon Controller persistent disk
type: string
portworxVolume:
- description: portworxVolume represents a portworx volume attached and mounted on kubelets host machine
+ description: |-
+ portworxVolume represents a portworx volume attached and mounted on kubelets host machine.
+ Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type
+ are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate
+ is on.
type: object
required:
- volumeID
@@ -2714,7 +2738,9 @@ spec:
type: string
x-kubernetes-list-type: atomic
quobyte:
- description: quobyte represents a Quobyte mount on the host that shares a pod's lifetime
+ description: |-
+ quobyte represents a Quobyte mount on the host that shares a pod's lifetime.
+ Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.
type: object
required:
- registry
@@ -2752,6 +2778,7 @@ spec:
rbd:
description: |-
rbd represents a Rados Block Device mount on the host that shares a pod's lifetime.
+ Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported.
More info: https://examples.k8s.io/volumes/rbd/README.md
type: object
required:
@@ -2824,7 +2851,9 @@ spec:
type: string
default: admin
scaleIO:
- description: scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
+ description: |-
+ scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
+ Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.
type: object
required:
- gateway
@@ -2950,7 +2979,9 @@ spec:
More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
type: string
storageos:
- description: storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.
+ description: |-
+ storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.
+ Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported.
type: object
properties:
fsType:
@@ -2995,7 +3026,10 @@ spec:
Namespaces that do not pre-exist within StorageOS will be created.
type: string
vsphereVolume:
- description: vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine
+ description: |-
+ vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine.
+ Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type
+ are redirected to the csi.vsphere.vmware.com CSI driver.
type: object
required:
- volumePath
diff --git a/microshift-manifests/0000_50_olm_00-catalogsources.crd.yaml b/microshift-manifests/0000_50_olm_00-catalogsources.crd.yaml
index a08143818d..efc5c34201 100644
--- a/microshift-manifests/0000_50_olm_00-catalogsources.crd.yaml
+++ b/microshift-manifests/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.16.5
+ controller-gen.kubebuilder.io/version: v0.17.0
include.release.openshift.io/ibm-cloud-managed: "true"
include.release.openshift.io/self-managed-high-availability: "true"
capability.openshift.io/name: "OperatorLifecycleManager"
diff --git a/microshift-manifests/0000_50_olm_00-clusterserviceversions.crd.yaml b/microshift-manifests/0000_50_olm_00-clusterserviceversions.crd.yaml
index 99ba54fd3a..bf72be3a15 100644
--- a/microshift-manifests/0000_50_olm_00-clusterserviceversions.crd.yaml
+++ b/microshift-manifests/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.16.5
+ controller-gen.kubebuilder.io/version: v0.17.0
include.release.openshift.io/ibm-cloud-managed: "true"
include.release.openshift.io/self-managed-high-availability: "true"
capability.openshift.io/name: "OperatorLifecycleManager"
@@ -1962,7 +1962,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -1977,7 +1977,7 @@ spec:
type: string
x-kubernetes-list-type: atomic
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -2024,7 +2024,7 @@ spec:
Defaults to HTTP.
type: string
sleep:
- description: Sleep represents the duration that the container should sleep before being terminated.
+ description: Sleep represents a duration that the container should sleep.
type: object
required:
- seconds
@@ -2036,8 +2036,8 @@ spec:
tcpSocket:
description: |-
Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept
- for the backward compatibility. There are no validation of this field and
- lifecycle hooks will fail in runtime when tcp handler is specified.
+ for backward compatibility. There is no validation of this field and
+ lifecycle hooks will fail at runtime when it is specified.
type: object
required:
- port
@@ -2068,7 +2068,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -2083,7 +2083,7 @@ spec:
type: string
x-kubernetes-list-type: atomic
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -2130,7 +2130,7 @@ spec:
Defaults to HTTP.
type: string
sleep:
- description: Sleep represents the duration that the container should sleep before being terminated.
+ description: Sleep represents a duration that the container should sleep.
type: object
required:
- seconds
@@ -2142,8 +2142,8 @@ spec:
tcpSocket:
description: |-
Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept
- for the backward compatibility. There are no validation of this field and
- lifecycle hooks will fail in runtime when tcp handler is specified.
+ for backward compatibility. There is no validation of this field and
+ lifecycle hooks will fail at runtime when it is specified.
type: object
required:
- port
@@ -2169,7 +2169,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -2190,7 +2190,7 @@ spec:
type: integer
format: int32
grpc:
- description: GRPC specifies an action involving a GRPC port.
+ description: GRPC specifies a GRPC HealthCheckRequest.
type: object
required:
- port
@@ -2208,7 +2208,7 @@ spec:
type: string
default: ""
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -2273,7 +2273,7 @@ spec:
type: integer
format: int32
tcpSocket:
- description: TCPSocket specifies an action involving a TCP port.
+ description: TCPSocket specifies a connection to a TCP port.
type: object
required:
- port
@@ -2375,7 +2375,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -2396,7 +2396,7 @@ spec:
type: integer
format: int32
grpc:
- description: GRPC specifies an action involving a GRPC port.
+ description: GRPC specifies a GRPC HealthCheckRequest.
type: object
required:
- port
@@ -2414,7 +2414,7 @@ spec:
type: string
default: ""
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -2479,7 +2479,7 @@ spec:
type: integer
format: int32
tcpSocket:
- description: TCPSocket specifies an action involving a TCP port.
+ description: TCPSocket specifies a connection to a TCP port.
type: object
required:
- port
@@ -2818,7 +2818,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -2839,7 +2839,7 @@ spec:
type: integer
format: int32
grpc:
- description: GRPC specifies an action involving a GRPC port.
+ description: GRPC specifies a GRPC HealthCheckRequest.
type: object
required:
- port
@@ -2857,7 +2857,7 @@ spec:
type: string
default: ""
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -2922,7 +2922,7 @@ spec:
type: integer
format: int32
tcpSocket:
- description: TCPSocket specifies an action involving a TCP port.
+ description: TCPSocket specifies a connection to a TCP port.
type: object
required:
- port
@@ -3126,9 +3126,12 @@ spec:
type: object
properties:
name:
- description: Required.
+ description: |-
+ Name is this DNS resolver option's name.
+ Required.
type: string
value:
+ description: Value is this DNS resolver option's value.
type: string
x-kubernetes-list-type: atomic
searches:
@@ -3395,7 +3398,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -3410,7 +3413,7 @@ spec:
type: string
x-kubernetes-list-type: atomic
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -3457,7 +3460,7 @@ spec:
Defaults to HTTP.
type: string
sleep:
- description: Sleep represents the duration that the container should sleep before being terminated.
+ description: Sleep represents a duration that the container should sleep.
type: object
required:
- seconds
@@ -3469,8 +3472,8 @@ spec:
tcpSocket:
description: |-
Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept
- for the backward compatibility. There are no validation of this field and
- lifecycle hooks will fail in runtime when tcp handler is specified.
+ for backward compatibility. There is no validation of this field and
+ lifecycle hooks will fail at runtime when it is specified.
type: object
required:
- port
@@ -3501,7 +3504,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -3516,7 +3519,7 @@ spec:
type: string
x-kubernetes-list-type: atomic
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -3563,7 +3566,7 @@ spec:
Defaults to HTTP.
type: string
sleep:
- description: Sleep represents the duration that the container should sleep before being terminated.
+ description: Sleep represents a duration that the container should sleep.
type: object
required:
- seconds
@@ -3575,8 +3578,8 @@ spec:
tcpSocket:
description: |-
Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept
- for the backward compatibility. There are no validation of this field and
- lifecycle hooks will fail in runtime when tcp handler is specified.
+ for backward compatibility. There is no validation of this field and
+ lifecycle hooks will fail at runtime when it is specified.
type: object
required:
- port
@@ -3598,7 +3601,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -3619,7 +3622,7 @@ spec:
type: integer
format: int32
grpc:
- description: GRPC specifies an action involving a GRPC port.
+ description: GRPC specifies a GRPC HealthCheckRequest.
type: object
required:
- port
@@ -3637,7 +3640,7 @@ spec:
type: string
default: ""
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -3702,7 +3705,7 @@ spec:
type: integer
format: int32
tcpSocket:
- description: TCPSocket specifies an action involving a TCP port.
+ description: TCPSocket specifies a connection to a TCP port.
type: object
required:
- port
@@ -3792,7 +3795,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -3813,7 +3816,7 @@ spec:
type: integer
format: int32
grpc:
- description: GRPC specifies an action involving a GRPC port.
+ description: GRPC specifies a GRPC HealthCheckRequest.
type: object
required:
- port
@@ -3831,7 +3834,7 @@ spec:
type: string
default: ""
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -3896,7 +3899,7 @@ spec:
type: integer
format: int32
tcpSocket:
- description: TCPSocket specifies an action involving a TCP port.
+ description: TCPSocket specifies a connection to a TCP port.
type: object
required:
- port
@@ -4215,7 +4218,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -4236,7 +4239,7 @@ spec:
type: integer
format: int32
grpc:
- description: GRPC specifies an action involving a GRPC port.
+ description: GRPC specifies a GRPC HealthCheckRequest.
type: object
required:
- port
@@ -4254,7 +4257,7 @@ spec:
type: string
default: ""
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -4319,7 +4322,7 @@ spec:
type: integer
format: int32
tcpSocket:
- description: TCPSocket specifies an action involving a TCP port.
+ description: TCPSocket specifies a connection to a TCP port.
type: object
required:
- port
@@ -4832,7 +4835,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -4847,7 +4850,7 @@ spec:
type: string
x-kubernetes-list-type: atomic
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -4894,7 +4897,7 @@ spec:
Defaults to HTTP.
type: string
sleep:
- description: Sleep represents the duration that the container should sleep before being terminated.
+ description: Sleep represents a duration that the container should sleep.
type: object
required:
- seconds
@@ -4906,8 +4909,8 @@ spec:
tcpSocket:
description: |-
Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept
- for the backward compatibility. There are no validation of this field and
- lifecycle hooks will fail in runtime when tcp handler is specified.
+ for backward compatibility. There is no validation of this field and
+ lifecycle hooks will fail at runtime when it is specified.
type: object
required:
- port
@@ -4938,7 +4941,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -4953,7 +4956,7 @@ spec:
type: string
x-kubernetes-list-type: atomic
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -5000,7 +5003,7 @@ spec:
Defaults to HTTP.
type: string
sleep:
- description: Sleep represents the duration that the container should sleep before being terminated.
+ description: Sleep represents a duration that the container should sleep.
type: object
required:
- seconds
@@ -5012,8 +5015,8 @@ spec:
tcpSocket:
description: |-
Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept
- for the backward compatibility. There are no validation of this field and
- lifecycle hooks will fail in runtime when tcp handler is specified.
+ for backward compatibility. There is no validation of this field and
+ lifecycle hooks will fail at runtime when it is specified.
type: object
required:
- port
@@ -5039,7 +5042,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -5060,7 +5063,7 @@ spec:
type: integer
format: int32
grpc:
- description: GRPC specifies an action involving a GRPC port.
+ description: GRPC specifies a GRPC HealthCheckRequest.
type: object
required:
- port
@@ -5078,7 +5081,7 @@ spec:
type: string
default: ""
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -5143,7 +5146,7 @@ spec:
type: integer
format: int32
tcpSocket:
- description: TCPSocket specifies an action involving a TCP port.
+ description: TCPSocket specifies a connection to a TCP port.
type: object
required:
- port
@@ -5245,7 +5248,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -5266,7 +5269,7 @@ spec:
type: integer
format: int32
grpc:
- description: GRPC specifies an action involving a GRPC port.
+ description: GRPC specifies a GRPC HealthCheckRequest.
type: object
required:
- port
@@ -5284,7 +5287,7 @@ spec:
type: string
default: ""
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -5349,7 +5352,7 @@ spec:
type: integer
format: int32
tcpSocket:
- description: TCPSocket specifies an action involving a TCP port.
+ description: TCPSocket specifies a connection to a TCP port.
type: object
required:
- port
@@ -5688,7 +5691,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -5709,7 +5712,7 @@ spec:
type: integer
format: int32
grpc:
- description: GRPC specifies an action involving a GRPC port.
+ description: GRPC specifies a GRPC HealthCheckRequest.
type: object
required:
- port
@@ -5727,7 +5730,7 @@ spec:
type: string
default: ""
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -5792,7 +5795,7 @@ spec:
type: integer
format: int32
tcpSocket:
- description: TCPSocket specifies an action involving a TCP port.
+ description: TCPSocket specifies a connection to a TCP port.
type: object
required:
- port
@@ -6144,6 +6147,74 @@ spec:
x-kubernetes-list-map-keys:
- name
x-kubernetes-list-type: map
+ resources:
+ description: |-
+ Resources is the total amount of CPU and Memory resources required by all
+ containers in the pod. It supports specifying Requests and Limits for
+ "cpu" and "memory" resource names only. ResourceClaims are not supported.
+
+ This field enables fine-grained control over resource allocation for the
+ entire pod, allowing resource sharing among containers in a pod.
+
+ This is an alpha field and requires enabling the PodLevelResources feature
+ gate.
+ type: object
+ properties:
+ claims:
+ description: |-
+ 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:
+ description: ResourceClaim references one entry in PodSpec.ResourceClaims.
+ type: object
+ required:
+ - name
+ properties:
+ name:
+ description: |-
+ Name must match the name of one entry in pod.spec.resourceClaims of
+ 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
+ limits:
+ description: |-
+ Limits describes the maximum amount of compute resources allowed.
+ More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
+ type: object
+ additionalProperties:
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ requests:
+ description: |-
+ Requests describes the minimum amount of compute resources required.
+ If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
+ otherwise to an implementation-defined value. Requests cannot exceed Limits.
+ More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
+ type: object
+ additionalProperties:
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
restartPolicy:
description: |-
Restart policy for all containers within the pod.
@@ -6268,6 +6339,32 @@ spec:
Note that this field cannot be set when spec.os.name is windows.
type: integer
format: int64
+ seLinuxChangePolicy:
+ description: |-
+ seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod.
+ It has no effect on nodes that do not support SELinux or to volumes does not support SELinux.
+ Valid values are "MountOption" and "Recursive".
+
+ "Recursive" means relabeling of all files on all Pod volumes by the container runtime.
+ This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node.
+
+ "MountOption" mounts all eligible Pod volumes with `-o context` mount option.
+ This requires all Pods that share the same volume to use the same SELinux label.
+ It is not possible to share the same volume among privileged and unprivileged Pods.
+ Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes
+ whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their
+ CSIDriver instance. Other volumes are always re-labelled recursively.
+ "MountOption" value is allowed only when SELinuxMount feature gate is enabled.
+
+ If not specified and SELinuxMount feature gate is enabled, "MountOption" is used.
+ If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes
+ and "Recursive" for all other volumes.
+
+ This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers.
+
+ All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state.
+ Note that this field cannot be set when spec.os.name is windows.
+ type: string
seLinuxOptions:
description: |-
The SELinux context to be applied to all containers.
@@ -6667,6 +6764,8 @@ spec:
description: |-
awsElasticBlockStore represents an AWS Disk resource that is attached to a
kubelet's host machine and then exposed to the pod.
+ Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree
+ awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver.
More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
type: object
required:
@@ -6698,7 +6797,10 @@ spec:
More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
type: string
azureDisk:
- description: azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
+ description: |-
+ azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
+ Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type
+ are redirected to the disk.csi.azure.com CSI driver.
type: object
required:
- diskName
@@ -6730,7 +6832,10 @@ spec:
type: boolean
default: false
azureFile:
- description: azureFile represents an Azure File Service mount on the host and bind mount to the pod.
+ description: |-
+ azureFile represents an Azure File Service mount on the host and bind mount to the pod.
+ Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type
+ are redirected to the file.csi.azure.com CSI driver.
type: object
required:
- secretName
@@ -6748,7 +6853,9 @@ spec:
description: shareName is the azure share Name
type: string
cephfs:
- description: cephFS represents a Ceph FS mount on the host that shares a pod's lifetime
+ description: |-
+ cephFS represents a Ceph FS mount on the host that shares a pod's lifetime.
+ Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.
type: object
required:
- monitors
@@ -6799,6 +6906,8 @@ spec:
cinder:
description: |-
cinder represents a cinder volume attached and mounted on kubelets host machine.
+ Deprecated: Cinder is deprecated. All operations for the in-tree cinder type
+ are redirected to the cinder.csi.openstack.org CSI driver.
More info: https://examples.k8s.io/mysql-cinder-pd/README.md
type: object
required:
@@ -6905,7 +7014,7 @@ spec:
type: boolean
x-kubernetes-map-type: atomic
csi:
- description: csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).
+ description: csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers.
type: object
required:
- driver
@@ -7347,6 +7456,7 @@ spec:
description: |-
flexVolume represents a generic volume resource that is
provisioned/attached using an exec based plugin.
+ Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.
type: object
required:
- driver
@@ -7390,7 +7500,9 @@ spec:
default: ""
x-kubernetes-map-type: atomic
flocker:
- description: flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running
+ description: |-
+ flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running.
+ Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.
type: object
properties:
datasetName:
@@ -7405,6 +7517,8 @@ spec:
description: |-
gcePersistentDisk represents a GCE Disk resource that is attached to a
kubelet's host machine and then exposed to the pod.
+ Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree
+ gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver.
More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
type: object
required:
@@ -7440,7 +7554,7 @@ spec:
gitRepo:
description: |-
gitRepo represents a git repository at a particular revision.
- DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an
+ Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an
EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir
into the Pod's container.
type: object
@@ -7463,6 +7577,7 @@ spec:
glusterfs:
description: |-
glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.
+ Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported.
More info: https://examples.k8s.io/volumes/glusterfs/README.md
type: object
required:
@@ -7669,7 +7784,9 @@ spec:
Default false.
type: boolean
photonPersistentDisk:
- description: photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine
+ description: |-
+ photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine.
+ Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.
type: object
required:
- pdID
@@ -7684,7 +7801,11 @@ spec:
description: pdID is the ID that identifies Photon Controller persistent disk
type: string
portworxVolume:
- description: portworxVolume represents a portworx volume attached and mounted on kubelets host machine
+ description: |-
+ portworxVolume represents a portworx volume attached and mounted on kubelets host machine.
+ Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type
+ are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate
+ is on.
type: object
required:
- volumeID
@@ -8019,7 +8140,9 @@ spec:
type: string
x-kubernetes-list-type: atomic
quobyte:
- description: quobyte represents a Quobyte mount on the host that shares a pod's lifetime
+ description: |-
+ quobyte represents a Quobyte mount on the host that shares a pod's lifetime.
+ Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.
type: object
required:
- registry
@@ -8057,6 +8180,7 @@ spec:
rbd:
description: |-
rbd represents a Rados Block Device mount on the host that shares a pod's lifetime.
+ Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported.
More info: https://examples.k8s.io/volumes/rbd/README.md
type: object
required:
@@ -8129,7 +8253,9 @@ spec:
type: string
default: admin
scaleIO:
- description: scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
+ description: |-
+ scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
+ Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.
type: object
required:
- gateway
@@ -8255,7 +8381,9 @@ spec:
More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
type: string
storageos:
- description: storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.
+ description: |-
+ storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.
+ Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported.
type: object
properties:
fsType:
@@ -8300,7 +8428,10 @@ spec:
Namespaces that do not pre-exist within StorageOS will be created.
type: string
vsphereVolume:
- description: vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine
+ description: |-
+ vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine.
+ Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type
+ are redirected to the csi.vsphere.vmware.com CSI driver.
type: object
required:
- volumePath
diff --git a/microshift-manifests/0000_50_olm_00-installplans.crd.yaml b/microshift-manifests/0000_50_olm_00-installplans.crd.yaml
index 2593546c8e..45abbc70ed 100644
--- a/microshift-manifests/0000_50_olm_00-installplans.crd.yaml
+++ b/microshift-manifests/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.16.5
+ controller-gen.kubebuilder.io/version: v0.17.0
include.release.openshift.io/ibm-cloud-managed: "true"
include.release.openshift.io/self-managed-high-availability: "true"
capability.openshift.io/name: "OperatorLifecycleManager"
diff --git a/microshift-manifests/0000_50_olm_00-olmconfigs.crd.yaml b/microshift-manifests/0000_50_olm_00-olmconfigs.crd.yaml
index b2b4d1ec28..000d18961b 100644
--- a/microshift-manifests/0000_50_olm_00-olmconfigs.crd.yaml
+++ b/microshift-manifests/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.16.5
+ controller-gen.kubebuilder.io/version: v0.17.0
include.release.openshift.io/ibm-cloud-managed: "true"
include.release.openshift.io/self-managed-high-availability: "true"
capability.openshift.io/name: "OperatorLifecycleManager"
diff --git a/microshift-manifests/0000_50_olm_00-operatorconditions.crd.yaml b/microshift-manifests/0000_50_olm_00-operatorconditions.crd.yaml
index 9bac00bd90..0a07d32631 100644
--- a/microshift-manifests/0000_50_olm_00-operatorconditions.crd.yaml
+++ b/microshift-manifests/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.16.5
+ controller-gen.kubebuilder.io/version: v0.17.0
include.release.openshift.io/ibm-cloud-managed: "true"
include.release.openshift.io/self-managed-high-availability: "true"
capability.openshift.io/name: "OperatorLifecycleManager"
diff --git a/microshift-manifests/0000_50_olm_00-operatorgroups.crd.yaml b/microshift-manifests/0000_50_olm_00-operatorgroups.crd.yaml
index ca57e20b85..e6100bf0f6 100644
--- a/microshift-manifests/0000_50_olm_00-operatorgroups.crd.yaml
+++ b/microshift-manifests/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.16.5
+ controller-gen.kubebuilder.io/version: v0.17.0
include.release.openshift.io/ibm-cloud-managed: "true"
include.release.openshift.io/self-managed-high-availability: "true"
capability.openshift.io/name: "OperatorLifecycleManager"
diff --git a/microshift-manifests/0000_50_olm_00-operators.crd.yaml b/microshift-manifests/0000_50_olm_00-operators.crd.yaml
index b93e4eca8e..9ebc29f255 100644
--- a/microshift-manifests/0000_50_olm_00-operators.crd.yaml
+++ b/microshift-manifests/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.16.5
+ controller-gen.kubebuilder.io/version: v0.17.0
include.release.openshift.io/ibm-cloud-managed: "true"
include.release.openshift.io/self-managed-high-availability: "true"
capability.openshift.io/name: "OperatorLifecycleManager"
diff --git a/microshift-manifests/0000_50_olm_00-subscriptions.crd.yaml b/microshift-manifests/0000_50_olm_00-subscriptions.crd.yaml
index 28e6f23efc..65177c2bb7 100644
--- a/microshift-manifests/0000_50_olm_00-subscriptions.crd.yaml
+++ b/microshift-manifests/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.16.5
+ controller-gen.kubebuilder.io/version: v0.17.0
include.release.openshift.io/ibm-cloud-managed: "true"
include.release.openshift.io/self-managed-high-availability: "true"
capability.openshift.io/name: "OperatorLifecycleManager"
@@ -1362,6 +1362,8 @@ spec:
description: |-
awsElasticBlockStore represents an AWS Disk resource that is attached to a
kubelet's host machine and then exposed to the pod.
+ Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree
+ awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver.
More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
type: object
required:
@@ -1393,7 +1395,10 @@ spec:
More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
type: string
azureDisk:
- description: azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
+ description: |-
+ azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
+ Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type
+ are redirected to the disk.csi.azure.com CSI driver.
type: object
required:
- diskName
@@ -1425,7 +1430,10 @@ spec:
type: boolean
default: false
azureFile:
- description: azureFile represents an Azure File Service mount on the host and bind mount to the pod.
+ description: |-
+ azureFile represents an Azure File Service mount on the host and bind mount to the pod.
+ Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type
+ are redirected to the file.csi.azure.com CSI driver.
type: object
required:
- secretName
@@ -1443,7 +1451,9 @@ spec:
description: shareName is the azure share Name
type: string
cephfs:
- description: cephFS represents a Ceph FS mount on the host that shares a pod's lifetime
+ description: |-
+ cephFS represents a Ceph FS mount on the host that shares a pod's lifetime.
+ Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.
type: object
required:
- monitors
@@ -1494,6 +1504,8 @@ spec:
cinder:
description: |-
cinder represents a cinder volume attached and mounted on kubelets host machine.
+ Deprecated: Cinder is deprecated. All operations for the in-tree cinder type
+ are redirected to the cinder.csi.openstack.org CSI driver.
More info: https://examples.k8s.io/mysql-cinder-pd/README.md
type: object
required:
@@ -1600,7 +1612,7 @@ spec:
type: boolean
x-kubernetes-map-type: atomic
csi:
- description: csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).
+ description: csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers.
type: object
required:
- driver
@@ -2042,6 +2054,7 @@ spec:
description: |-
flexVolume represents a generic volume resource that is
provisioned/attached using an exec based plugin.
+ Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.
type: object
required:
- driver
@@ -2085,7 +2098,9 @@ spec:
default: ""
x-kubernetes-map-type: atomic
flocker:
- description: flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running
+ description: |-
+ flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running.
+ Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.
type: object
properties:
datasetName:
@@ -2100,6 +2115,8 @@ spec:
description: |-
gcePersistentDisk represents a GCE Disk resource that is attached to a
kubelet's host machine and then exposed to the pod.
+ Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree
+ gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver.
More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
type: object
required:
@@ -2135,7 +2152,7 @@ spec:
gitRepo:
description: |-
gitRepo represents a git repository at a particular revision.
- DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an
+ Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an
EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir
into the Pod's container.
type: object
@@ -2158,6 +2175,7 @@ spec:
glusterfs:
description: |-
glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.
+ Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported.
More info: https://examples.k8s.io/volumes/glusterfs/README.md
type: object
required:
@@ -2364,7 +2382,9 @@ spec:
Default false.
type: boolean
photonPersistentDisk:
- description: photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine
+ description: |-
+ photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine.
+ Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.
type: object
required:
- pdID
@@ -2379,7 +2399,11 @@ spec:
description: pdID is the ID that identifies Photon Controller persistent disk
type: string
portworxVolume:
- description: portworxVolume represents a portworx volume attached and mounted on kubelets host machine
+ description: |-
+ portworxVolume represents a portworx volume attached and mounted on kubelets host machine.
+ Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type
+ are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate
+ is on.
type: object
required:
- volumeID
@@ -2714,7 +2738,9 @@ spec:
type: string
x-kubernetes-list-type: atomic
quobyte:
- description: quobyte represents a Quobyte mount on the host that shares a pod's lifetime
+ description: |-
+ quobyte represents a Quobyte mount on the host that shares a pod's lifetime.
+ Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.
type: object
required:
- registry
@@ -2752,6 +2778,7 @@ spec:
rbd:
description: |-
rbd represents a Rados Block Device mount on the host that shares a pod's lifetime.
+ Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported.
More info: https://examples.k8s.io/volumes/rbd/README.md
type: object
required:
@@ -2824,7 +2851,9 @@ spec:
type: string
default: admin
scaleIO:
- description: scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
+ description: |-
+ scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
+ Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.
type: object
required:
- gateway
@@ -2950,7 +2979,9 @@ spec:
More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
type: string
storageos:
- description: storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.
+ description: |-
+ storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.
+ Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported.
type: object
properties:
fsType:
@@ -2995,7 +3026,10 @@ spec:
Namespaces that do not pre-exist within StorageOS will be created.
type: string
vsphereVolume:
- description: vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine
+ description: |-
+ vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine.
+ Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type
+ are redirected to the csi.vsphere.vmware.com CSI driver.
type: object
required:
- volumePath
diff --git a/staging/api/.github/workflows/go.yaml b/staging/api/.github/workflows/go.yaml
index 63387e26db..5a618c5a68 100644
--- a/staging/api/.github/workflows/go.yaml
+++ b/staging/api/.github/workflows/go.yaml
@@ -31,7 +31,7 @@ jobs:
${{ runner.os }}-go-
- name: unit-test
run: go test -v ./... -coverprofile cover.out
- - uses: codecov/codecov-action@v4
+ - uses: codecov/codecov-action@v5
with:
disable_search: true
files: cover.out
diff --git a/staging/api/Makefile b/staging/api/Makefile
index 59d58080f1..c59d9cc4f3 100644
--- a/staging/api/Makefile
+++ b/staging/api/Makefile
@@ -104,7 +104,7 @@ YQ ?= $(LOCALBIN)/yq
KIND ?= $(LOCALBIN)/kind
## Tool Versions
-CONTROLLER_TOOLS_VERSION ?= v0.16.1
+CONTROLLER_TOOLS_VERSION ?= v0.17.0
YQ_VERSION ?= v4.28.1
# Not guaranteed to have patch releases available and node image tags are full versions (i.e v1.28.0 - no v1.28, v1.29, etc.)
diff --git a/staging/api/crds/operators.coreos.com_catalogsources.yaml b/staging/api/crds/operators.coreos.com_catalogsources.yaml
index 5d05b22f29..baa96b73fb 100644
--- a/staging/api/crds/operators.coreos.com_catalogsources.yaml
+++ b/staging/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.16.1
+ controller-gen.kubebuilder.io/version: v0.17.0
name: catalogsources.operators.coreos.com
spec:
group: operators.coreos.com
diff --git a/staging/api/crds/operators.coreos.com_clusterserviceversions.yaml b/staging/api/crds/operators.coreos.com_clusterserviceversions.yaml
index 9f91b0691c..8ec7c18d07 100644
--- a/staging/api/crds/operators.coreos.com_clusterserviceversions.yaml
+++ b/staging/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.16.1
+ controller-gen.kubebuilder.io/version: v0.17.0
name: clusterserviceversions.operators.coreos.com
spec:
group: operators.coreos.com
@@ -1958,7 +1958,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -1973,7 +1973,7 @@ spec:
type: string
x-kubernetes-list-type: atomic
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -2020,7 +2020,7 @@ spec:
Defaults to HTTP.
type: string
sleep:
- description: Sleep represents the duration that the container should sleep before being terminated.
+ description: Sleep represents a duration that the container should sleep.
type: object
required:
- seconds
@@ -2032,8 +2032,8 @@ spec:
tcpSocket:
description: |-
Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept
- for the backward compatibility. There are no validation of this field and
- lifecycle hooks will fail in runtime when tcp handler is specified.
+ for backward compatibility. There is no validation of this field and
+ lifecycle hooks will fail at runtime when it is specified.
type: object
required:
- port
@@ -2064,7 +2064,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -2079,7 +2079,7 @@ spec:
type: string
x-kubernetes-list-type: atomic
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -2126,7 +2126,7 @@ spec:
Defaults to HTTP.
type: string
sleep:
- description: Sleep represents the duration that the container should sleep before being terminated.
+ description: Sleep represents a duration that the container should sleep.
type: object
required:
- seconds
@@ -2138,8 +2138,8 @@ spec:
tcpSocket:
description: |-
Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept
- for the backward compatibility. There are no validation of this field and
- lifecycle hooks will fail in runtime when tcp handler is specified.
+ for backward compatibility. There is no validation of this field and
+ lifecycle hooks will fail at runtime when it is specified.
type: object
required:
- port
@@ -2165,7 +2165,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -2186,7 +2186,7 @@ spec:
type: integer
format: int32
grpc:
- description: GRPC specifies an action involving a GRPC port.
+ description: GRPC specifies a GRPC HealthCheckRequest.
type: object
required:
- port
@@ -2204,7 +2204,7 @@ spec:
type: string
default: ""
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -2269,7 +2269,7 @@ spec:
type: integer
format: int32
tcpSocket:
- description: TCPSocket specifies an action involving a TCP port.
+ description: TCPSocket specifies a connection to a TCP port.
type: object
required:
- port
@@ -2371,7 +2371,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -2392,7 +2392,7 @@ spec:
type: integer
format: int32
grpc:
- description: GRPC specifies an action involving a GRPC port.
+ description: GRPC specifies a GRPC HealthCheckRequest.
type: object
required:
- port
@@ -2410,7 +2410,7 @@ spec:
type: string
default: ""
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -2475,7 +2475,7 @@ spec:
type: integer
format: int32
tcpSocket:
- description: TCPSocket specifies an action involving a TCP port.
+ description: TCPSocket specifies a connection to a TCP port.
type: object
required:
- port
@@ -2814,7 +2814,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -2835,7 +2835,7 @@ spec:
type: integer
format: int32
grpc:
- description: GRPC specifies an action involving a GRPC port.
+ description: GRPC specifies a GRPC HealthCheckRequest.
type: object
required:
- port
@@ -2853,7 +2853,7 @@ spec:
type: string
default: ""
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -2918,7 +2918,7 @@ spec:
type: integer
format: int32
tcpSocket:
- description: TCPSocket specifies an action involving a TCP port.
+ description: TCPSocket specifies a connection to a TCP port.
type: object
required:
- port
@@ -3122,9 +3122,12 @@ spec:
type: object
properties:
name:
- description: Required.
+ description: |-
+ Name is this DNS resolver option's name.
+ Required.
type: string
value:
+ description: Value is this DNS resolver option's value.
type: string
x-kubernetes-list-type: atomic
searches:
@@ -3391,7 +3394,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -3406,7 +3409,7 @@ spec:
type: string
x-kubernetes-list-type: atomic
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -3453,7 +3456,7 @@ spec:
Defaults to HTTP.
type: string
sleep:
- description: Sleep represents the duration that the container should sleep before being terminated.
+ description: Sleep represents a duration that the container should sleep.
type: object
required:
- seconds
@@ -3465,8 +3468,8 @@ spec:
tcpSocket:
description: |-
Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept
- for the backward compatibility. There are no validation of this field and
- lifecycle hooks will fail in runtime when tcp handler is specified.
+ for backward compatibility. There is no validation of this field and
+ lifecycle hooks will fail at runtime when it is specified.
type: object
required:
- port
@@ -3497,7 +3500,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -3512,7 +3515,7 @@ spec:
type: string
x-kubernetes-list-type: atomic
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -3559,7 +3562,7 @@ spec:
Defaults to HTTP.
type: string
sleep:
- description: Sleep represents the duration that the container should sleep before being terminated.
+ description: Sleep represents a duration that the container should sleep.
type: object
required:
- seconds
@@ -3571,8 +3574,8 @@ spec:
tcpSocket:
description: |-
Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept
- for the backward compatibility. There are no validation of this field and
- lifecycle hooks will fail in runtime when tcp handler is specified.
+ for backward compatibility. There is no validation of this field and
+ lifecycle hooks will fail at runtime when it is specified.
type: object
required:
- port
@@ -3594,7 +3597,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -3615,7 +3618,7 @@ spec:
type: integer
format: int32
grpc:
- description: GRPC specifies an action involving a GRPC port.
+ description: GRPC specifies a GRPC HealthCheckRequest.
type: object
required:
- port
@@ -3633,7 +3636,7 @@ spec:
type: string
default: ""
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -3698,7 +3701,7 @@ spec:
type: integer
format: int32
tcpSocket:
- description: TCPSocket specifies an action involving a TCP port.
+ description: TCPSocket specifies a connection to a TCP port.
type: object
required:
- port
@@ -3788,7 +3791,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -3809,7 +3812,7 @@ spec:
type: integer
format: int32
grpc:
- description: GRPC specifies an action involving a GRPC port.
+ description: GRPC specifies a GRPC HealthCheckRequest.
type: object
required:
- port
@@ -3827,7 +3830,7 @@ spec:
type: string
default: ""
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -3892,7 +3895,7 @@ spec:
type: integer
format: int32
tcpSocket:
- description: TCPSocket specifies an action involving a TCP port.
+ description: TCPSocket specifies a connection to a TCP port.
type: object
required:
- port
@@ -4211,7 +4214,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -4232,7 +4235,7 @@ spec:
type: integer
format: int32
grpc:
- description: GRPC specifies an action involving a GRPC port.
+ description: GRPC specifies a GRPC HealthCheckRequest.
type: object
required:
- port
@@ -4250,7 +4253,7 @@ spec:
type: string
default: ""
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -4315,7 +4318,7 @@ spec:
type: integer
format: int32
tcpSocket:
- description: TCPSocket specifies an action involving a TCP port.
+ description: TCPSocket specifies a connection to a TCP port.
type: object
required:
- port
@@ -4829,7 +4832,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -4844,7 +4847,7 @@ spec:
type: string
x-kubernetes-list-type: atomic
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -4891,7 +4894,7 @@ spec:
Defaults to HTTP.
type: string
sleep:
- description: Sleep represents the duration that the container should sleep before being terminated.
+ description: Sleep represents a duration that the container should sleep.
type: object
required:
- seconds
@@ -4903,8 +4906,8 @@ spec:
tcpSocket:
description: |-
Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept
- for the backward compatibility. There are no validation of this field and
- lifecycle hooks will fail in runtime when tcp handler is specified.
+ for backward compatibility. There is no validation of this field and
+ lifecycle hooks will fail at runtime when it is specified.
type: object
required:
- port
@@ -4935,7 +4938,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -4950,7 +4953,7 @@ spec:
type: string
x-kubernetes-list-type: atomic
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -4997,7 +5000,7 @@ spec:
Defaults to HTTP.
type: string
sleep:
- description: Sleep represents the duration that the container should sleep before being terminated.
+ description: Sleep represents a duration that the container should sleep.
type: object
required:
- seconds
@@ -5009,8 +5012,8 @@ spec:
tcpSocket:
description: |-
Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept
- for the backward compatibility. There are no validation of this field and
- lifecycle hooks will fail in runtime when tcp handler is specified.
+ for backward compatibility. There is no validation of this field and
+ lifecycle hooks will fail at runtime when it is specified.
type: object
required:
- port
@@ -5036,7 +5039,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -5057,7 +5060,7 @@ spec:
type: integer
format: int32
grpc:
- description: GRPC specifies an action involving a GRPC port.
+ description: GRPC specifies a GRPC HealthCheckRequest.
type: object
required:
- port
@@ -5075,7 +5078,7 @@ spec:
type: string
default: ""
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -5140,7 +5143,7 @@ spec:
type: integer
format: int32
tcpSocket:
- description: TCPSocket specifies an action involving a TCP port.
+ description: TCPSocket specifies a connection to a TCP port.
type: object
required:
- port
@@ -5242,7 +5245,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -5263,7 +5266,7 @@ spec:
type: integer
format: int32
grpc:
- description: GRPC specifies an action involving a GRPC port.
+ description: GRPC specifies a GRPC HealthCheckRequest.
type: object
required:
- port
@@ -5281,7 +5284,7 @@ spec:
type: string
default: ""
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -5346,7 +5349,7 @@ spec:
type: integer
format: int32
tcpSocket:
- description: TCPSocket specifies an action involving a TCP port.
+ description: TCPSocket specifies a connection to a TCP port.
type: object
required:
- port
@@ -5685,7 +5688,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -5706,7 +5709,7 @@ spec:
type: integer
format: int32
grpc:
- description: GRPC specifies an action involving a GRPC port.
+ description: GRPC specifies a GRPC HealthCheckRequest.
type: object
required:
- port
@@ -5724,7 +5727,7 @@ spec:
type: string
default: ""
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -5789,7 +5792,7 @@ spec:
type: integer
format: int32
tcpSocket:
- description: TCPSocket specifies an action involving a TCP port.
+ description: TCPSocket specifies a connection to a TCP port.
type: object
required:
- port
@@ -6141,6 +6144,74 @@ spec:
x-kubernetes-list-map-keys:
- name
x-kubernetes-list-type: map
+ resources:
+ description: |-
+ Resources is the total amount of CPU and Memory resources required by all
+ containers in the pod. It supports specifying Requests and Limits for
+ "cpu" and "memory" resource names only. ResourceClaims are not supported.
+
+ This field enables fine-grained control over resource allocation for the
+ entire pod, allowing resource sharing among containers in a pod.
+
+ This is an alpha field and requires enabling the PodLevelResources feature
+ gate.
+ type: object
+ properties:
+ claims:
+ description: |-
+ 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:
+ description: ResourceClaim references one entry in PodSpec.ResourceClaims.
+ type: object
+ required:
+ - name
+ properties:
+ name:
+ description: |-
+ Name must match the name of one entry in pod.spec.resourceClaims of
+ 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
+ limits:
+ description: |-
+ Limits describes the maximum amount of compute resources allowed.
+ More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
+ type: object
+ additionalProperties:
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ requests:
+ description: |-
+ Requests describes the minimum amount of compute resources required.
+ If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
+ otherwise to an implementation-defined value. Requests cannot exceed Limits.
+ More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
+ type: object
+ additionalProperties:
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
restartPolicy:
description: |-
Restart policy for all containers within the pod.
@@ -6265,6 +6336,32 @@ spec:
Note that this field cannot be set when spec.os.name is windows.
type: integer
format: int64
+ seLinuxChangePolicy:
+ description: |-
+ seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod.
+ It has no effect on nodes that do not support SELinux or to volumes does not support SELinux.
+ Valid values are "MountOption" and "Recursive".
+
+ "Recursive" means relabeling of all files on all Pod volumes by the container runtime.
+ This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node.
+
+ "MountOption" mounts all eligible Pod volumes with `-o context` mount option.
+ This requires all Pods that share the same volume to use the same SELinux label.
+ It is not possible to share the same volume among privileged and unprivileged Pods.
+ Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes
+ whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their
+ CSIDriver instance. Other volumes are always re-labelled recursively.
+ "MountOption" value is allowed only when SELinuxMount feature gate is enabled.
+
+ If not specified and SELinuxMount feature gate is enabled, "MountOption" is used.
+ If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes
+ and "Recursive" for all other volumes.
+
+ This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers.
+
+ All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state.
+ Note that this field cannot be set when spec.os.name is windows.
+ type: string
seLinuxOptions:
description: |-
The SELinux context to be applied to all containers.
@@ -6664,6 +6761,8 @@ spec:
description: |-
awsElasticBlockStore represents an AWS Disk resource that is attached to a
kubelet's host machine and then exposed to the pod.
+ Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree
+ awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver.
More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
type: object
required:
@@ -6695,7 +6794,10 @@ spec:
More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
type: string
azureDisk:
- description: azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
+ description: |-
+ azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
+ Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type
+ are redirected to the disk.csi.azure.com CSI driver.
type: object
required:
- diskName
@@ -6727,7 +6829,10 @@ spec:
type: boolean
default: false
azureFile:
- description: azureFile represents an Azure File Service mount on the host and bind mount to the pod.
+ description: |-
+ azureFile represents an Azure File Service mount on the host and bind mount to the pod.
+ Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type
+ are redirected to the file.csi.azure.com CSI driver.
type: object
required:
- secretName
@@ -6745,7 +6850,9 @@ spec:
description: shareName is the azure share Name
type: string
cephfs:
- description: cephFS represents a Ceph FS mount on the host that shares a pod's lifetime
+ description: |-
+ cephFS represents a Ceph FS mount on the host that shares a pod's lifetime.
+ Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.
type: object
required:
- monitors
@@ -6796,6 +6903,8 @@ spec:
cinder:
description: |-
cinder represents a cinder volume attached and mounted on kubelets host machine.
+ Deprecated: Cinder is deprecated. All operations for the in-tree cinder type
+ are redirected to the cinder.csi.openstack.org CSI driver.
More info: https://examples.k8s.io/mysql-cinder-pd/README.md
type: object
required:
@@ -6902,7 +7011,7 @@ spec:
type: boolean
x-kubernetes-map-type: atomic
csi:
- description: csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).
+ description: csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers.
type: object
required:
- driver
@@ -7344,6 +7453,7 @@ spec:
description: |-
flexVolume represents a generic volume resource that is
provisioned/attached using an exec based plugin.
+ Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.
type: object
required:
- driver
@@ -7387,7 +7497,9 @@ spec:
default: ""
x-kubernetes-map-type: atomic
flocker:
- description: flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running
+ description: |-
+ flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running.
+ Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.
type: object
properties:
datasetName:
@@ -7402,6 +7514,8 @@ spec:
description: |-
gcePersistentDisk represents a GCE Disk resource that is attached to a
kubelet's host machine and then exposed to the pod.
+ Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree
+ gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver.
More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
type: object
required:
@@ -7437,7 +7551,7 @@ spec:
gitRepo:
description: |-
gitRepo represents a git repository at a particular revision.
- DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an
+ Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an
EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir
into the Pod's container.
type: object
@@ -7460,6 +7574,7 @@ spec:
glusterfs:
description: |-
glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.
+ Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported.
More info: https://examples.k8s.io/volumes/glusterfs/README.md
type: object
required:
@@ -7666,7 +7781,9 @@ spec:
Default false.
type: boolean
photonPersistentDisk:
- description: photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine
+ description: |-
+ photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine.
+ Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.
type: object
required:
- pdID
@@ -7681,7 +7798,11 @@ spec:
description: pdID is the ID that identifies Photon Controller persistent disk
type: string
portworxVolume:
- description: portworxVolume represents a portworx volume attached and mounted on kubelets host machine
+ description: |-
+ portworxVolume represents a portworx volume attached and mounted on kubelets host machine.
+ Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type
+ are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate
+ is on.
type: object
required:
- volumeID
@@ -8016,7 +8137,9 @@ spec:
type: string
x-kubernetes-list-type: atomic
quobyte:
- description: quobyte represents a Quobyte mount on the host that shares a pod's lifetime
+ description: |-
+ quobyte represents a Quobyte mount on the host that shares a pod's lifetime.
+ Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.
type: object
required:
- registry
@@ -8054,6 +8177,7 @@ spec:
rbd:
description: |-
rbd represents a Rados Block Device mount on the host that shares a pod's lifetime.
+ Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported.
More info: https://examples.k8s.io/volumes/rbd/README.md
type: object
required:
@@ -8126,7 +8250,9 @@ spec:
type: string
default: admin
scaleIO:
- description: scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
+ description: |-
+ scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
+ Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.
type: object
required:
- gateway
@@ -8252,7 +8378,9 @@ spec:
More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
type: string
storageos:
- description: storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.
+ description: |-
+ storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.
+ Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported.
type: object
properties:
fsType:
@@ -8297,7 +8425,10 @@ spec:
Namespaces that do not pre-exist within StorageOS will be created.
type: string
vsphereVolume:
- description: vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine
+ description: |-
+ vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine.
+ Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type
+ are redirected to the csi.vsphere.vmware.com CSI driver.
type: object
required:
- volumePath
diff --git a/staging/api/crds/operators.coreos.com_installplans.yaml b/staging/api/crds/operators.coreos.com_installplans.yaml
index dfa1681535..ac7b705a05 100644
--- a/staging/api/crds/operators.coreos.com_installplans.yaml
+++ b/staging/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.16.1
+ controller-gen.kubebuilder.io/version: v0.17.0
name: installplans.operators.coreos.com
spec:
group: operators.coreos.com
diff --git a/staging/api/crds/operators.coreos.com_olmconfigs.yaml b/staging/api/crds/operators.coreos.com_olmconfigs.yaml
index e4290c38eb..7e6b54fb6b 100644
--- a/staging/api/crds/operators.coreos.com_olmconfigs.yaml
+++ b/staging/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.16.1
+ controller-gen.kubebuilder.io/version: v0.17.0
name: olmconfigs.operators.coreos.com
spec:
group: operators.coreos.com
diff --git a/staging/api/crds/operators.coreos.com_operatorconditions.yaml b/staging/api/crds/operators.coreos.com_operatorconditions.yaml
index 6d6ef53bee..c2d7fb65ed 100644
--- a/staging/api/crds/operators.coreos.com_operatorconditions.yaml
+++ b/staging/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.16.1
+ controller-gen.kubebuilder.io/version: v0.17.0
name: operatorconditions.operators.coreos.com
spec:
group: operators.coreos.com
diff --git a/staging/api/crds/operators.coreos.com_operatorgroups.yaml b/staging/api/crds/operators.coreos.com_operatorgroups.yaml
index 5e314f9c57..aa218f8eaa 100644
--- a/staging/api/crds/operators.coreos.com_operatorgroups.yaml
+++ b/staging/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.16.1
+ controller-gen.kubebuilder.io/version: v0.17.0
name: operatorgroups.operators.coreos.com
spec:
group: operators.coreos.com
diff --git a/staging/api/crds/operators.coreos.com_operators.yaml b/staging/api/crds/operators.coreos.com_operators.yaml
index cf7c5312f4..f1c7aa997b 100644
--- a/staging/api/crds/operators.coreos.com_operators.yaml
+++ b/staging/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.16.1
+ controller-gen.kubebuilder.io/version: v0.17.0
name: operators.operators.coreos.com
spec:
group: operators.coreos.com
diff --git a/staging/api/crds/operators.coreos.com_subscriptions.yaml b/staging/api/crds/operators.coreos.com_subscriptions.yaml
index e5bf29e9de..f8d7c175c6 100644
--- a/staging/api/crds/operators.coreos.com_subscriptions.yaml
+++ b/staging/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.16.1
+ controller-gen.kubebuilder.io/version: v0.17.0
name: subscriptions.operators.coreos.com
spec:
group: operators.coreos.com
@@ -1358,6 +1358,8 @@ spec:
description: |-
awsElasticBlockStore represents an AWS Disk resource that is attached to a
kubelet's host machine and then exposed to the pod.
+ Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree
+ awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver.
More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
type: object
required:
@@ -1389,7 +1391,10 @@ spec:
More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
type: string
azureDisk:
- description: azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
+ description: |-
+ azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
+ Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type
+ are redirected to the disk.csi.azure.com CSI driver.
type: object
required:
- diskName
@@ -1421,7 +1426,10 @@ spec:
type: boolean
default: false
azureFile:
- description: azureFile represents an Azure File Service mount on the host and bind mount to the pod.
+ description: |-
+ azureFile represents an Azure File Service mount on the host and bind mount to the pod.
+ Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type
+ are redirected to the file.csi.azure.com CSI driver.
type: object
required:
- secretName
@@ -1439,7 +1447,9 @@ spec:
description: shareName is the azure share Name
type: string
cephfs:
- description: cephFS represents a Ceph FS mount on the host that shares a pod's lifetime
+ description: |-
+ cephFS represents a Ceph FS mount on the host that shares a pod's lifetime.
+ Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.
type: object
required:
- monitors
@@ -1490,6 +1500,8 @@ spec:
cinder:
description: |-
cinder represents a cinder volume attached and mounted on kubelets host machine.
+ Deprecated: Cinder is deprecated. All operations for the in-tree cinder type
+ are redirected to the cinder.csi.openstack.org CSI driver.
More info: https://examples.k8s.io/mysql-cinder-pd/README.md
type: object
required:
@@ -1596,7 +1608,7 @@ spec:
type: boolean
x-kubernetes-map-type: atomic
csi:
- description: csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).
+ description: csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers.
type: object
required:
- driver
@@ -2038,6 +2050,7 @@ spec:
description: |-
flexVolume represents a generic volume resource that is
provisioned/attached using an exec based plugin.
+ Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.
type: object
required:
- driver
@@ -2081,7 +2094,9 @@ spec:
default: ""
x-kubernetes-map-type: atomic
flocker:
- description: flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running
+ description: |-
+ flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running.
+ Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.
type: object
properties:
datasetName:
@@ -2096,6 +2111,8 @@ spec:
description: |-
gcePersistentDisk represents a GCE Disk resource that is attached to a
kubelet's host machine and then exposed to the pod.
+ Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree
+ gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver.
More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
type: object
required:
@@ -2131,7 +2148,7 @@ spec:
gitRepo:
description: |-
gitRepo represents a git repository at a particular revision.
- DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an
+ Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an
EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir
into the Pod's container.
type: object
@@ -2154,6 +2171,7 @@ spec:
glusterfs:
description: |-
glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.
+ Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported.
More info: https://examples.k8s.io/volumes/glusterfs/README.md
type: object
required:
@@ -2360,7 +2378,9 @@ spec:
Default false.
type: boolean
photonPersistentDisk:
- description: photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine
+ description: |-
+ photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine.
+ Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.
type: object
required:
- pdID
@@ -2375,7 +2395,11 @@ spec:
description: pdID is the ID that identifies Photon Controller persistent disk
type: string
portworxVolume:
- description: portworxVolume represents a portworx volume attached and mounted on kubelets host machine
+ description: |-
+ portworxVolume represents a portworx volume attached and mounted on kubelets host machine.
+ Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type
+ are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate
+ is on.
type: object
required:
- volumeID
@@ -2710,7 +2734,9 @@ spec:
type: string
x-kubernetes-list-type: atomic
quobyte:
- description: quobyte represents a Quobyte mount on the host that shares a pod's lifetime
+ description: |-
+ quobyte represents a Quobyte mount on the host that shares a pod's lifetime.
+ Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.
type: object
required:
- registry
@@ -2748,6 +2774,7 @@ spec:
rbd:
description: |-
rbd represents a Rados Block Device mount on the host that shares a pod's lifetime.
+ Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported.
More info: https://examples.k8s.io/volumes/rbd/README.md
type: object
required:
@@ -2820,7 +2847,9 @@ spec:
type: string
default: admin
scaleIO:
- description: scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
+ description: |-
+ scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
+ Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.
type: object
required:
- gateway
@@ -2946,7 +2975,9 @@ spec:
More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
type: string
storageos:
- description: storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.
+ description: |-
+ storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.
+ Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported.
type: object
properties:
fsType:
@@ -2991,7 +3022,10 @@ spec:
Namespaces that do not pre-exist within StorageOS will be created.
type: string
vsphereVolume:
- description: vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine
+ description: |-
+ vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine.
+ Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type
+ are redirected to the csi.vsphere.vmware.com CSI driver.
type: object
required:
- volumePath
diff --git a/staging/api/crds/zz_defs.go b/staging/api/crds/zz_defs.go
index 2bdb4ce915..06a234537d 100644
--- a/staging/api/crds/zz_defs.go
+++ b/staging/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\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")
+var _operatorsCoreosCom_catalogsourcesYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x7d\x6b\x73\x1c\xb7\xb1\xe8\x77\xfd\x0a\x94\xee\xa9\x12\xa9\xec\x2e\x25\xe7\x94\x93\x30\x8e\x5d\x0c\x25\xeb\xb2\xac\x07\x4b\xa4\x9d\xba\x51\x74\xaf\xb0\x33\xbd\xbb\x30\x67\x80\x31\x80\x21\xb9\x8e\xf3\xdf\x6f\xa1\x01\xcc\x63\x77\xe7\xc9\x97\xe4\x03\x7c\xb0\xc5\x9d\x19\x3c\x1a\xdd\x8d\x7e\x83\x66\xec\x27\x90\x8a\x09\x7e\x48\x68\xc6\xe0\x5a\x03\x37\x7f\xa9\xd9\xc5\x9f\xd5\x8c\x89\x83\xcb\xe7\x8f\x2e\x18\x8f\x0f\xc9\x71\xae\xb4\x48\xdf\x83\x12\xb9\x8c\xe0\x05\x2c\x18\x67\x9a\x09\xfe\x28\x05\x4d\x63\xaa\xe9\xe1\x23\x42\x28\xe7\x42\x53\xf3\xb3\x32\x7f\x12\x12\x09\xae\xa5\x48\x12\x90\xd3\x25\xf0\xd9\x45\x3e\x87\x79\xce\x92\x18\x24\x76\xee\x87\xbe\x7c\x36\x7b\xfe\xa7\xd9\xb3\x47\x84\x70\x9a\xc2\x21\x89\xa8\xa6\x89\x58\xda\xb1\xd4\x4c\x64\x20\xa9\x16\x52\xcd\x22\x21\x41\x98\xff\xa5\x8f\x54\x06\x91\x19\x64\x29\x45\x9e\x1d\x92\x9d\xef\xd8\xfe\xfc\x5c\xa8\x86\xa5\x90\xcc\xff\x4d\xc8\x94\x88\x24\xc5\x7f\xbb\x35\xda\x61\xcf\x70\x58\xfc\x3d\x61\x4a\xff\xb0\xfd\xec\x35\x53\x1a\x9f\x67\x49\x2e\x69\xb2\x39\x61\x7c\xa4\x56\x42\xea\xb7\xe5\xf0\x66\xb8\x88\x6a\x25\x23\xfb\x98\xf1\x65\x9e\x50\xb9\xf1\xed\x23\x42\x54\x24\x32\x38\x24\xf8\x69\x46\x23\x88\x1f\x11\xe2\x20\xe5\xba\x9a\x12\x1a\xc7\x08\x7d\x9a\x9c\x4a\xc6\x35\xc8\x63\x91\xe4\x29\x2f\x86\x32\xef\xc4\xa0\x22\xc9\x32\x8d\x10\x3e\x5f\x01\xc9\x24\x68\xbd\x46\x90\x10\xb1\x20\x7a\x05\x7e\xec\xe2\x2b\x42\x7e\x56\x82\x9f\x52\xbd\x3a\x24\x33\x03\xe1\x59\xcc\x54\x96\xd0\xb5\x99\x4d\xe5\x2d\xbb\x4d\x2f\xec\xb3\xca\xef\x7a\x6d\xa6\xae\xb4\x64\x7c\xd9\x36\x15\xf3\x5e\xff\x39\x58\xd0\x9c\xaf\xb3\xed\x29\x6c\xfc\xd8\x77\xfc\x2c\x9f\x27\x4c\xad\x40\xf6\x9f\x44\xf1\xc9\xd6\x1c\x4e\x77\x3c\x69\x98\x48\xa5\x53\x4f\x37\xb3\x48\x02\x92\xcc\x39\x4b\x41\x69\x9a\x66\x5b\x03\x1c\x2d\xb7\xd7\x18\x53\xed\x7f\xb4\x2f\x5d\x3e\xa7\x49\xb6\xa2\xcf\xdd\x8f\x2a\x5a\x41\x4a\x4b\x7c\x10\x19\xf0\xa3\xd3\x93\x9f\xfe\x78\xb6\xf1\x80\xd4\xa1\x53\xc3\x73\xc2\x14\xa1\x44\x42\x26\x14\xd3\x42\xae\x0d\xb4\x8e\xcf\x7e\x52\x13\x72\xfc\xfe\x85\x9a\x10\xca\xe3\x82\xf0\x48\x46\xa3\x0b\xba\x04\x35\xdb\x9a\xab\x98\xff\x0c\x91\xae\xfc\x2c\xe1\x97\x9c\x49\x88\xab\xb3\x30\xe0\xf1\x30\xd9\xf8\xd9\xc0\xbf\xf2\x53\x26\xcd\x98\xba\x42\xc8\xb6\x55\x98\x59\xed\xf7\x8d\x15\xfe\x36\xdd\x78\x4a\x88\x01\x8c\xfd\x92\xc4\x86\xb3\x81\x42\xa4\x70\x54\x07\xb1\x83\xa6\x45\x16\xa6\x0c\x44\x24\x28\xe0\x96\xd7\x99\x9f\x29\x77\xab\x9c\x6d\x75\x7e\x06\xd2\x74\x64\x18\x42\x9e\xc4\x86\x25\x5e\x82\xd4\x44\x42\x24\x96\x9c\xfd\x5a\xf4\xae\x88\x16\x38\x6c\x42\x35\x28\x4d\x90\xae\x39\x4d\xc8\x25\x4d\x72\x40\x60\x6f\xf5\x9d\xd2\x35\x91\x60\xc6\x25\x39\xaf\xf4\x88\x9f\xa8\xed\xb9\xbc\x11\x12\x08\xe3\x0b\x71\x48\x56\x5a\x67\xea\xf0\xe0\x60\xc9\xb4\x67\xf6\x91\x48\xd3\x9c\x33\xbd\x3e\x40\xbe\xcd\xe6\xb9\x61\xa8\x07\x31\x5c\x42\x72\xa0\xd8\x72\x4a\x65\xb4\x62\x1a\x22\x9d\x4b\x38\xa0\x19\x9b\xe2\x62\x38\x32\xfc\x59\x1a\xff\x2f\x09\x55\x0e\xb8\x89\x06\x1b\xd4\x40\x3c\xdf\x1d\xb8\x59\x86\x1f\x5b\xc4\xb4\x1d\xda\xc5\x96\x7b\x62\x7e\x32\x60\x7c\xff\xf2\xec\x9c\xf8\x19\xd9\x7d\xb3\x5b\x54\xbe\xba\x03\x42\x7e\xb7\x0c\x64\x19\x5f\x80\xb4\x5f\x2e\xa4\x48\xb1\x57\xe0\x71\x26\x18\xd7\x96\x6b\x24\x0c\xb8\x26\x2a\x9f\xa7\x4c\x2b\x44\x6b\x50\xda\x6c\xe4\x76\xc7\xc7\x78\x38\x92\x39\x90\x3c\x33\xc4\x1b\x6f\xbf\x72\xc2\xc9\x31\x4d\x21\x39\xa6\x0a\xee\x7d\xef\xcc\x1e\xa9\xa9\xd9\x90\xde\xbb\x57\x3d\xfa\xb7\x3f\xd8\xa2\x7a\x42\xfc\x99\xdd\xeb\xe5\x26\x36\x41\x2c\x4f\xd8\x75\x26\x90\x16\xee\x60\x1a\x8d\x63\x09\x6a\xc7\x83\x6e\xac\x33\xed\xc8\x7e\x6e\x91\x6f\x25\x94\x41\x02\xaa\xc9\xbb\xd7\x6f\x48\x44\x39\xc9\x15\x18\x12\x8e\x04\xe7\x06\xcb\xb4\x20\xd4\x9c\xb9\x53\xb8\x66\x0a\xb1\x52\xc2\x92\x29\x2d\xd7\xdb\x7b\x6b\xda\xf7\x42\xa6\x54\x1f\x92\x6f\xfc\x6b\x53\x1c\x42\x48\xc2\xb2\x6f\x0f\xbf\xc9\x84\xd4\xdf\xee\xfc\xf0\x1d\x4f\xd6\x66\xf0\x98\x5c\xad\x80\x93\xb3\x02\x32\xe4\x6f\x95\x3f\x5e\xc9\x2c\xda\x3d\xf0\xc9\x92\x0b\xe9\xbf\x36\x68\x7d\x92\xd2\x25\x90\x05\x83\x04\x09\x4d\xc1\x0e\xae\xd6\x82\x16\xc4\x0a\x7e\x0b\xb6\x7c\x43\xb3\xb1\xb0\x3e\xf6\x1d\x98\x19\x98\x49\x55\xc5\x96\xf2\xa1\x16\x48\x51\x66\xf1\xe6\x9f\x34\xba\x20\xd4\x0d\x9e\xd2\x6c\xaa\x90\x9a\x3b\x00\xdf\x0f\x7e\xc7\xbe\x53\xb3\x23\xe5\xcf\x27\x8e\x4b\x0f\x86\x50\x15\x08\x83\xbf\x2d\x85\xb2\x4e\xf8\xbe\xd9\x75\xa6\xf6\x18\x63\x29\xb3\xe8\x54\xc4\x76\xd9\x63\x77\xf1\x55\xb5\x13\x02\xd7\x99\x50\xa0\x48\xcc\x16\x0b\x90\x86\x73\x8a\x4b\x90\x92\xc5\xa0\xc8\x42\x48\xdc\xda\x4c\xc4\xc8\x26\x8a\xad\xae\xc9\x23\xa7\x62\x07\xdb\x24\x83\x68\x00\x85\x16\x8b\xe1\x5d\xb8\xbd\x93\x29\x91\x0e\x1e\x63\x1a\x5d\xa0\x7a\xb4\xde\xfd\x74\x03\x74\x47\xee\x65\x8f\xe8\x4e\x14\x75\x1c\xee\x89\x32\x20\x79\xa2\x8a\x3e\x77\xaf\xbf\x73\xca\x7d\xa6\x6d\x1a\x17\x31\x1c\x75\x4c\x7f\x6b\x09\x2f\xf0\x8f\x39\x28\xfc\xbc\x98\x2a\x0a\x36\x71\x9e\x20\xef\xcb\x93\xfa\x2e\x37\xad\xa3\xe7\x5a\xfa\xae\xc7\xbe\x07\x0b\x90\x12\xe2\x17\xb9\x41\xf5\xb3\x62\x56\x8e\xf3\xd9\x9f\x5f\x5e\x43\x94\x37\x91\x63\xe3\xd2\x1b\x10\xbf\xda\x8c\xc2\xe1\x20\x01\x92\x5c\xb1\x24\x71\x33\x32\x2c\xcb\x3f\x30\x20\x41\x09\xd0\x40\x50\xd9\x83\x45\x51\xcd\xd4\x62\xdd\x39\x80\x81\x68\x01\x73\xb8\x36\xc2\x0d\x6a\x8b\x48\x48\x6c\xc1\x20\x26\xf3\xb5\x93\x63\x0c\x53\x9f\x90\x79\xae\x09\xd3\x28\xe4\x44\x2b\x21\xd4\xe6\x21\xba\xdd\xa8\xdd\x5a\x9c\xd7\x25\x13\x28\xa3\x12\xc1\xc1\x70\xc3\xd4\x48\x26\x8e\x5e\x2b\xc3\xcf\x70\xe5\xe5\x67\x6c\x53\xb0\xd8\x6e\xa9\x39\xf1\x8a\xed\xf2\x14\x61\x86\xb9\x62\x7a\x85\x7f\x2c\x8d\xba\x64\xe4\x63\x95\xa7\x66\xd0\x2b\x60\xcb\x95\x56\x13\xc2\x66\x3b\x84\xa6\xcd\x66\x10\x10\x68\xb4\xaa\x4c\x2b\x05\xd0\x8a\xd0\x24\xf1\x4b\xa8\x62\xad\x95\x40\x52\x23\x2b\x92\x3d\x2f\x4c\x76\x8e\xe2\x04\xc1\x49\x21\xc1\x6c\x22\xde\xce\xed\x9a\x10\xd0\xd1\x6c\x7f\xd2\xd9\x7d\x24\xd2\x2c\xd7\x60\x24\xe0\x3c\x35\x5b\xcb\xb4\xd1\xc1\xac\xe0\x2b\x45\xbe\xb4\x90\x82\xc4\x4d\xdc\xab\x2d\xf6\x44\x37\xfc\x8f\xc6\xf1\x2e\x9e\xbf\xd9\x1e\x5b\xe0\x3e\xf6\x9a\x89\x19\x8e\x59\x20\x21\xfc\x52\xaa\xa3\x95\x53\x96\x22\x21\x25\xa8\x4c\x70\xd3\xb3\x7d\xf2\xb2\x5c\xdb\x5f\xcd\x3b\x9d\xe3\x99\x4e\xf7\xd4\x7e\xb9\xd9\x2b\xb6\x5c\xf9\xbd\xa6\x12\xf0\xb7\x3a\x8e\x74\x6d\xb9\x65\x25\x54\x4a\xda\x45\x47\x4c\x43\xda\xc1\x48\xc8\x08\xea\x27\xe4\x88\x13\x48\x33\xbd\xae\x20\x76\x05\xc5\x34\xc8\xb4\x00\x24\x62\x21\xb2\x3d\x65\x81\xc0\xd2\x2c\x61\x11\xd3\x0e\xcd\xc9\xb3\x1e\xe3\xed\x19\x4a\x20\x4c\x9b\x43\x83\x70\x31\x15\xd9\xfe\x8c\x1c\x11\x9e\x17\x8c\xa7\x6d\x0a\x5c\x14\x33\x70\x1d\x99\x69\x29\x51\xf6\xd5\xcd\x8f\xfa\xb1\x6f\xdb\x9a\x85\xfc\xed\x36\x75\xf3\x07\xde\x83\x08\xcd\xeb\x16\x6a\x9d\xaf\xf6\x3d\x48\xfc\xdb\x7e\x0e\x7d\xde\xde\x3c\xed\x2d\xe5\x28\x48\x20\xd2\xe6\x34\x04\x99\x4e\x08\x55\x4a\x44\xcc\x68\x85\x25\xee\xd7\x09\xca\xae\xa4\x1b\xf6\x64\x28\xfc\xc9\xe0\xf5\x13\x34\x3c\xd4\xe9\xbb\xef\x77\x5b\xd0\x48\x98\xd1\x71\x16\x1b\x50\xa9\xf1\xdd\xf9\x1a\x9f\x3e\x51\x24\xa1\x73\x48\x76\x28\xed\x4d\xad\x3f\xf1\x97\xad\x27\x1b\x68\x58\x50\x2f\x86\x50\xb6\x4d\x6c\xa8\xac\xdb\x99\x38\x0a\x3c\x31\x47\x95\x51\xed\x29\xe3\xca\xd9\x77\x26\x84\x92\x0b\x58\x5b\x3b\x1c\xe5\x85\x29\x6e\xd0\x14\xb0\x63\x09\xf6\x40\x37\x78\x77\x01\x6b\xec\xb0\xc9\x86\xd4\xd2\xd5\x50\xbc\xb3\x6d\x08\x07\x28\xdb\xd4\x4c\x74\xe0\x17\x23\x00\x34\x9c\x34\x6c\xbb\x80\x56\xf1\x79\x57\xdb\xb2\x52\x23\xba\xe3\x7e\xe0\x26\xe1\x09\xec\xf1\x81\x66\x59\xc2\x60\xb7\xa9\xa9\xbd\xb5\x6a\x7d\x6d\xcd\x43\xef\x46\xeb\x1a\x48\x20\xa6\xbd\x2f\xcc\x75\x16\xdf\x9f\x28\x8b\xaf\x86\xef\xac\x58\x66\x0d\x2d\x0a\x90\x8d\x0c\x47\x5a\xdb\x7e\xa2\x09\x2b\x6d\xd9\x0a\x85\x8d\x13\x3e\x21\x6f\x85\x36\xff\x7b\x79\xcd\x94\x91\x31\x5f\x08\x50\x6f\x85\xc6\x3f\x67\xe4\x95\xb6\xa4\xf7\xba\x27\x5f\x2e\xdb\xe8\x3d\xb0\xeb\xbb\xef\x1d\x38\xe2\x96\x89\x1a\x08\x57\x8d\xae\x6a\x46\x4e\xac\x38\x58\x78\x01\x98\x22\x27\xdc\x28\x05\x16\x72\x83\x87\x42\xbb\x3b\xf6\xed\x86\x4c\x73\x85\x56\x53\x2e\xf8\x14\xc5\xa8\x9d\x63\xda\x0d\x32\xe3\x56\xb7\xe8\x16\x87\x6f\x1e\xfa\x15\xda\xe8\x5e\xeb\x49\xe5\xe3\xc1\xe3\x56\x06\x5b\xd1\x4b\x14\xed\x19\x5f\x26\x85\x10\x3f\x21\x57\x2b\x16\xad\xac\xf6\x38\x07\xeb\x1c\xc8\x24\x18\x89\x81\x2a\xc3\xfc\xcd\x2f\x4b\x90\xc3\x51\xff\xdc\xa8\x06\x76\x7c\xeb\xda\x48\x68\x04\x31\x89\x51\x65\xb1\x56\x76\xaa\x61\xc9\x22\x92\x82\x5c\x02\xc9\xcc\xd1\x3f\x0e\xe1\x87\x9d\xc4\xb6\x0d\x3e\x8f\xab\x03\x8e\xa0\x30\x42\xae\xa7\x17\xf9\x1c\x24\x07\x0d\x6a\x6a\xe4\x93\xa9\x9b\xbd\x16\x29\x8b\x7a\x77\x76\x2b\xdd\xa0\x9c\xf5\xbd\xd1\xdb\xee\x49\xc4\x42\x1d\x31\x88\x58\x41\xc4\x0a\x22\x56\x10\xb1\x82\x88\xd5\xbb\x05\x11\xeb\xc6\xc3\x07\x11\x2b\x88\x58\xf7\x2e\x62\xd5\xba\x48\x69\x36\xb4\x07\x6b\x97\x1b\x61\x08\xfc\x87\x35\xe8\x6e\x5a\xfe\x50\xe0\xf3\x21\x2c\x75\x13\xa0\x91\x63\xce\xdc\xe1\x74\x8e\x66\x43\x66\xfd\xf5\x92\xf2\x25\x90\xe7\xd3\xe7\xcf\x9e\x0d\x31\x10\x3a\x74\xee\xf5\xc5\xc2\x05\x27\x30\xae\xff\xf8\x55\xc7\x17\x37\xd8\x95\x26\x7f\xc9\xfd\x38\xea\x1c\xe7\x29\x7c\x33\x35\x11\xb9\xc1\x97\x86\xc7\x18\x17\x9a\xa4\xa0\x09\xed\x96\xc9\xaa\x66\x77\x96\xc2\xa4\x70\x7a\x23\xdb\x71\x11\x42\xde\x29\x18\x13\xc1\x9d\xeb\xc5\x6c\x7e\xf7\xe6\x8e\x5a\x41\x04\xd4\x46\xae\xcc\xc1\xac\xa2\xdb\x15\xa8\x89\x12\xa9\x99\x35\xe3\xda\x33\x31\xb3\x04\xf0\x1b\x43\xf6\x60\xb6\x9c\x91\x38\xc7\x6e\x29\x77\x21\x4f\xfb\x76\xb5\x6a\xad\x34\xa4\xdd\xbe\x40\x73\x18\x4a\xfc\x9f\x01\x8b\x96\x6b\xd3\x19\x5c\x02\xd7\x39\x4d\x92\x35\x81\x4b\x16\xe9\x02\x7e\x18\xa1\xc5\xb4\xea\x05\xa9\x01\x62\x74\x7f\xd1\x79\xba\x45\xa1\x5d\x87\xd4\x10\xc9\x77\xab\xef\x3e\x3c\xa7\x46\x01\xef\xdd\x4a\x66\x8d\x3a\xa1\x36\xfd\x5a\xb7\x2d\xfe\x13\x91\xfb\xdd\xfb\x6e\x2f\x1b\x19\x7c\xfe\x0c\x38\x73\xc6\x89\x56\xce\xe1\x25\xa4\x73\xbe\x6d\xaf\x74\x87\xcb\xcb\xae\xbd\x46\x35\x62\xd1\x73\x40\xbd\x02\xeb\xa4\x3c\x7a\xfb\xa2\x1f\xc4\x88\x0b\x0e\x38\x17\x99\x48\xc4\x72\x5d\xdd\x5e\x1b\x22\xcd\xd2\xcc\x3b\x71\x29\x51\xf9\xdc\x89\xe0\x06\xe7\xdf\x6e\xe0\x43\x70\x0d\x05\xd7\x50\xb0\x5b\x60\x0b\x76\x8b\x60\xb7\x08\x76\x8b\x7e\x2d\xd8\x2d\x6e\x3c\x7c\xb0\x5b\x04\xbb\x45\x70\x0d\x6d\xb7\x20\x62\x75\xb7\x20\x62\xb5\xb6\x20\x62\x15\x2d\x88\x58\x41\xc4\x0a\x22\x56\x10\xb1\x82\x88\x75\x5f\xdd\xdc\xd4\x35\x74\xa3\x29\x8c\x1b\x3c\x13\xf1\x0d\x92\xb7\x32\x11\xb7\xe4\x6e\x59\x9b\x7e\x24\xa6\x89\x88\xa8\x76\x19\xd5\xe6\x13\xe7\x85\x52\x34\xb5\x6e\x8a\x09\xf9\x55\x70\xb0\xd9\x2c\x86\x3c\xd0\x59\x20\xf4\x0a\xa4\x79\x7d\x4f\xed\xb7\xa6\x10\x84\xdc\xaf\x90\xfb\x15\x72\xbf\x1a\xdb\x67\x93\xfb\xb5\xa2\xca\xe2\xad\x3d\x1a\x9b\x53\xc1\x2a\x3c\xe9\x1c\x64\xfa\x3b\xcd\x04\x33\xe8\xee\xd0\x11\xeb\x81\x94\x28\x65\x21\x13\x3b\x87\x3f\xc4\xa7\x75\x78\x38\xb5\x1a\x17\x45\xe3\x18\x62\x92\x81\x9c\x5a\x14\x15\x64\xc1\x78\xbc\x63\xad\x1e\x3e\xdd\xec\xe1\x0e\x53\xb1\xea\xeb\xe8\xf5\xcd\xdd\xe4\x63\xd5\x27\x32\xc2\xa9\x58\xf5\x8c\xd6\x0e\xc1\xcf\x22\x3b\x6b\xa8\x86\x3e\x25\xda\x39\x14\x7f\xe8\xa9\xa3\x0f\x57\xb3\x51\x39\xf6\xee\xc7\x91\xe6\xa7\x41\xaa\xd0\x91\xd3\xc7\x7f\xc9\x41\xae\xb1\x6e\x40\xa9\x76\x16\x65\x67\x5c\x44\x0c\x53\x24\xa2\xca\x1e\xab\x43\x44\xe5\x93\x85\xcd\x9a\xe4\x79\x92\x4c\x6c\x3f\x9b\xc4\xea\xd9\x1c\xe2\x01\x17\xe6\xf9\x60\x8b\xd8\x40\x13\xcd\x38\x1b\xc8\x78\x2f\x2c\xd9\xdc\xa7\xcd\xae\xac\x6d\xcc\x9b\x0e\xed\xb6\xec\xb4\x1d\xee\xf0\xa6\x0f\xf6\x8f\xdb\x36\x56\x81\x19\xa5\xbe\xdc\x58\x5f\x6f\x81\xc9\x0d\xec\x8a\xf8\xf2\xe0\xc9\xdc\x8e\x6d\x91\x8c\xb7\x2f\x92\xd1\x36\x46\x32\xca\xce\x48\xc6\xda\x1a\xc9\x0d\xec\x8d\x64\x9c\xcd\x91\x6c\x62\x9b\xd9\x21\x27\xf8\xde\x8d\xf9\x91\xdc\x4c\x39\x1f\x6f\x86\x24\xb7\x40\x58\xd5\xf1\x2b\x45\xbc\xee\xce\x2e\x49\xfa\xda\x26\x91\xac\x6a\xe6\xc9\xfb\xde\x97\x71\xa6\x49\x72\x4b\xbb\xe2\x8c\x76\x0c\x6d\x61\xf7\x65\xac\x24\x0f\x6f\xb0\x6c\x9d\x82\x1b\xbe\xb7\x85\x6f\xd4\xe8\x37\xb0\x0a\x92\x1b\x59\x06\xc9\x78\xeb\x20\xb9\x29\xb2\xdf\x9a\x95\xf0\x56\xbb\x42\x39\xe9\x35\xc6\xa1\xdd\x40\xda\x1a\x4c\x81\x95\x61\xad\x74\x81\x35\xca\x16\xe4\xdf\x46\x88\x40\xc4\xfc\x0f\xc9\x28\x93\xca\x68\x37\xce\xae\x5d\x7d\xe6\xcc\x77\x95\x6e\x06\x4f\x00\x8b\xb4\x99\x33\xfe\x92\x26\x46\xc8\xb1\x41\xbf\xce\x06\x61\xe6\xb2\x29\x42\x4e\xc8\xd5\x4a\x28\x2b\x91\x14\x75\xe6\x1e\x5f\xc0\xfa\xf1\xa4\x97\x79\xa0\xde\xaa\x94\xfd\xf8\x84\x3f\xb6\xa2\xd3\x16\x5d\x16\x72\x96\xe0\xc9\x9a\x3c\xc6\x67\x8f\x6f\x5b\x46\x1d\x21\x1f\x55\x8b\xf9\x8e\x15\x3f\x46\x91\xd3\x4d\x0d\xdc\xa4\x86\x7d\x3f\xc0\x7a\x6c\x20\xc2\x20\x9c\x7f\x53\x1b\xd1\x0b\xd4\x88\x66\x46\x77\x2f\xe4\x26\xb4\xa8\x5a\x91\xc9\xd9\xa8\xac\xb9\x8a\x25\xc9\x80\xd1\xe6\x40\x34\xbd\x00\xf4\xf0\x60\x6d\x47\xc5\x62\x34\xb8\x09\x6e\x51\x07\x47\x32\x28\xe3\x8b\x10\x26\x42\x5c\xe4\x99\x47\x3d\x5f\x38\x74\xc0\x90\x8c\x47\x22\xf5\x31\xf5\x36\xae\xd5\x50\x85\xa3\x97\xa9\x2d\x77\x6a\x7f\xc7\x81\xf1\x08\x70\xa6\x89\x4f\x35\xc5\xfc\x13\xa1\x8a\x7c\x42\xa1\x92\x93\x3d\xfc\x70\xff\xd3\x90\x90\x82\x02\x80\xd6\xfa\x2a\x72\xe4\x2c\x45\x41\xcb\x8a\xfd\xaf\x80\x6d\x1b\xc4\x06\x0c\xed\x2b\xc5\x55\x81\x61\x6b\xe1\x91\x3d\xca\x35\xdb\x2f\x0b\xe2\x11\xc4\x03\x94\x92\x63\xc1\x9f\x68\x3b\x3f\xcf\xd7\x7c\x07\x43\xa2\x0e\x0a\xb8\x97\x1e\x3f\xeb\x2d\xb0\x5b\x1e\xc3\x82\xe6\x89\x76\x85\x67\x0d\xeb\xc3\x93\x7e\xc0\x08\xe7\xde\x5f\xe2\x04\xfe\x85\x90\x73\x16\xc7\xc0\x31\xc5\xc1\x4f\x7f\x2e\x7c\x42\x50\x89\xee\x86\xb3\xd5\xf6\x78\xc8\xb0\x47\x89\x12\x93\xcd\x1e\xa3\xa2\x30\xad\xa1\x22\x2c\x9f\x58\x1b\x80\x30\x65\x80\xda\x50\x29\xb1\x79\x85\xcc\xd1\xe6\x1c\x34\xad\x98\x9f\x1d\xab\x55\x04\x38\x9d\xa3\x3d\xbc\x4e\xd0\x27\xbc\x62\x73\x21\x0b\xa0\x3a\x97\x40\x96\x54\x03\xd9\xc3\x4f\xac\x47\xc3\xed\x41\x8f\x6a\x54\xbe\xdd\x4b\x38\xd2\xcd\xf9\xf0\xe8\x70\x30\xa6\x1e\x80\x17\x6f\x0e\x1a\xd8\x71\x2f\x76\xcc\x85\x0e\x1c\xf9\x8b\xe5\xc8\x5b\x48\x7f\x1b\x4c\x79\xab\xd3\xc0\x97\x9b\xdb\x17\xc4\x97\xb9\xbf\xc7\xe3\x81\xbd\x25\xd6\x80\x68\xa3\x7d\xfd\x94\x54\x69\x5b\xc4\x84\xb8\x71\x76\x45\x9f\x2e\x88\x68\x85\x3d\xc4\xde\x69\x9c\x73\x77\x3f\x82\xaf\xe0\xed\x86\xb5\x3c\x6c\x33\x36\x61\xc0\x98\x5e\xc1\x13\x1c\x14\xba\x22\xa0\x88\x43\xa9\x0c\x83\xbd\x0e\x59\x0a\xa6\x0c\x96\x66\x56\x1e\x6f\x26\x11\x96\x7d\xa3\xff\x23\x05\xca\x15\x79\xec\x43\x61\x9e\xa8\xf2\x8d\xc7\x83\x78\x80\x2f\x11\x5a\x8c\xbd\xf7\xef\xff\xec\xd7\xca\x82\x96\x43\x07\x7f\x53\xf0\x37\x55\x5b\xf0\x37\x6d\x4f\x22\xf8\x9b\x9a\x5a\xf0\x37\x8d\x1a\x3f\xf8\x9b\xea\x2d\xf8\x9b\x82\xbf\x29\xf8\x9b\x82\xbf\x29\xf8\x9b\x82\xbf\xa9\xef\x47\xb7\xe1\x6f\x2a\xd5\xa0\xfb\xd0\xa3\xab\x2a\xab\x8b\xa7\xb7\x17\xcf\x51\xcd\xa2\x32\x7b\xd6\xbf\x65\xff\xf5\x50\x4a\x75\x55\x0d\xbe\xa9\x4a\x5d\x55\xd0\xb7\x2c\x18\x83\x35\xea\x46\xfd\xb9\xd0\xb0\xb7\xc6\xb8\x25\xd5\xfa\x77\x6e\x5c\xaa\x04\xfa\xde\x07\x39\x9c\xfb\x94\x1f\x77\x97\xe5\x1c\xca\x7c\xa0\x98\xec\x79\xfb\xef\xbe\xd9\x70\x2e\x74\xfd\x21\xd7\x6c\x5a\xbe\x51\x04\x52\xa3\x99\xda\x57\xbd\x1b\x02\x74\xaf\xb3\x94\xf6\x50\x97\x87\x54\x24\xbe\x94\xd8\x66\xf8\x3f\xc8\xda\x6c\x99\x72\x77\x7d\x62\x0a\x9f\xcc\x39\x37\xe2\x91\xe0\x2e\xdb\x65\xc0\x4c\xec\xd1\x62\x4d\xcf\x8e\x2a\xad\x32\x85\x6b\x44\x8d\xaa\xdc\xa6\x4a\xa2\x04\xd5\xf6\xe6\x50\x57\x9b\x4a\x70\x67\xb8\x37\xbf\xd8\x7e\x06\x4c\xa2\x20\x58\x84\x27\x2b\x56\x34\x84\x56\x5f\x22\x8d\x56\x27\xcb\x14\xee\x23\x4d\x12\x71\x35\xe4\x7c\x1a\x48\x11\xa3\x8b\x28\xf6\xc6\xde\xab\xc1\xd5\x16\x37\xb2\x0a\xfa\xca\xea\xa1\x24\x63\x6b\x0b\x25\x19\x3f\x8f\x92\x8c\x15\xdf\x6c\xb5\x36\x63\x37\xac\xb0\x76\xe3\x9d\xd6\x66\x24\xe4\x1f\xee\x22\x52\x09\xd6\xa1\x9a\x27\x9a\x65\x65\x36\xb6\xb2\x3b\x94\x58\x95\x7a\xe1\xb2\x26\xeb\xd4\x6b\x66\x43\xa3\x55\xe7\x50\x1b\x54\x8e\xe3\x61\x76\xb7\x42\x6e\x6a\x33\x0b\xd1\xfe\x6e\x0b\x22\x7a\x5d\xdb\xa6\x67\xb2\x87\xce\x3a\xeb\xc5\xff\x5e\xb8\x2b\xad\xab\x7e\x79\x45\xf6\xcc\xe9\x98\xac\x9d\x27\xbb\xc6\x08\x6b\xc7\x6a\x8f\x01\xac\x1d\xec\x12\xbc\x80\xba\x64\x97\xc0\xcb\xd3\x77\x4f\xed\xef\x7b\x99\x78\x53\x7e\xe8\xd1\xfb\x4d\x24\x8c\x3e\x5c\x7b\xa8\x64\xb0\x71\xde\xf7\x18\x61\x87\x44\xf0\x4d\xe5\x94\xfd\xb6\x5b\x26\xe8\x31\x88\x25\x69\x9f\xc6\x5a\xd9\xe8\x52\x16\xe8\xec\xe5\x0e\xb3\x05\x87\xa4\xa4\x0d\xb3\x8a\x8f\x48\x45\x1b\x5b\x51\xf4\x6e\x53\xd0\xee\x34\xfd\xec\xcb\x29\xfc\xf9\xc0\xee\xbf\x2f\xa0\x6a\xd5\x67\xe2\xee\x0b\x65\xab\x9a\xda\x43\x95\xad\xba\x73\x77\xde\x17\x57\xbd\xea\x5e\xdd\x77\xf7\xe3\xba\xfb\xc2\xaa\x57\x3d\x88\xab\xee\x33\xaf\x63\x75\x77\x2e\xba\x50\x24\xea\x61\xea\x70\x0e\x75\xc3\x8d\xa7\xaa\x07\x75\xbf\x3d\xa8\xeb\xed\xe1\xdd\x6e\xa3\x64\x95\x9b\xba\xdb\x06\x93\xc9\x4d\xdd\x6c\x63\xd2\x08\xc6\xe1\xf3\xfd\xa5\x72\xdd\x73\xde\xc0\xe7\x91\xc2\xf5\x40\xc9\x02\x0f\x95\x28\x70\xb7\x49\x02\x0f\x90\xb2\x75\x4f\xe9\x5a\x9f\x57\x4a\xc0\x50\x31\x64\x90\xf0\x71\x33\x5e\x3a\x46\x42\x18\x99\x96\x35\x92\x9f\xde\x67\x3a\xd6\xef\x80\xa5\x8e\x4a\xc3\x0a\x5c\xf5\x81\xb8\xea\xed\xa5\x5d\xdd\x5f\xca\x55\xe0\xad\xcd\xed\xc6\xbc\x75\x64\x6a\xd5\xad\x59\xff\xef\x26\xa5\xea\xbe\xd3\xa9\xee\x20\x95\xea\x21\xd2\xa8\xee\x20\x85\x2a\xf8\x4c\x7a\xb6\xe0\x33\xe9\xdb\x82\xcf\xa4\xa9\x05\x9f\xc9\x66\x0b\x3e\x93\xe0\x33\x09\x3e\x93\xe0\x33\xd9\x1e\x30\xf8\x4c\x82\xcf\xa4\x5f\x0b\x3e\x93\xfb\xf1\x99\x0c\x4d\x4b\x1a\x87\xcb\x0f\x93\x8e\x74\xbf\xa9\x48\xb7\x9f\x86\xf4\x80\x29\x48\xbf\x33\x83\xcb\xe0\x74\xa3\x71\x68\xfe\xb9\xa4\x19\x7d\x1e\x29\x46\x0f\x9e\x5e\x74\xd3\xd4\xa2\xdb\x49\x2b\x1a\x80\xed\x23\xf1\x3c\x13\xf1\x11\xd7\xec\xa6\x17\x68\x55\x11\xb0\xe9\x16\x2d\x7a\x29\x58\x4c\xb2\x5c\xbb\x8b\x7b\xc2\x4d\x5a\x9d\x38\x70\x3f\x37\x69\xd5\x36\x2f\x5c\xa7\xd5\xd6\x3e\x9b\xeb\xb4\x9a\xf6\x2c\xdc\xa9\x55\x6f\xe1\x4e\xad\x70\xa7\x56\xb8\x53\xcb\xb6\x70\xa7\x56\xb8\x53\x2b\xd4\x38\x0c\x35\x0e\x43\x8d\xc3\xfe\x5f\x85\x1a\x87\xcd\x2d\xd4\x38\x1c\xd2\x42\x8d\xc3\xde\xa3\x87\x1a\x87\xa1\xc6\xe1\xb0\x81\x43\x8d\x43\x12\x6a\x1c\x86\x1a\x87\x5f\x70\x8d\xc3\x70\xa7\xd6\x17\x71\x89\x4b\xb8\xc1\x65\xc0\xd8\x9f\xd7\x0d\x2e\xe1\x4e\xad\x70\x77\x4b\x8f\x16\xee\xd4\xfa\x82\xd8\x71\xb8\x53\xeb\x4b\xe6\xc8\xe1\x4e\xad\xc0\x97\xc3\x9d\x5a\x45\x0b\x77\x6a\x85\x3b\xb5\x82\xbf\x09\x5b\xf0\x37\x05\x7f\xd3\x90\x16\xfc\x4d\x5d\x2d\xf8\x9b\x82\xbf\xa9\x69\xf4\xe0\x6f\x0a\xfe\xa6\x61\x03\x07\x7f\x13\x09\xfe\xa6\xe0\x6f\xfa\x82\xfd\x4d\xe1\x4e\xad\x70\xa7\x56\xb8\x53\xab\x18\x39\xdc\xa9\x15\xee\xd4\xc2\x16\xee\xd4\xea\x31\x42\xb8\x53\xeb\x4b\xbd\x53\xab\x96\x37\xf5\xe5\x5e\xac\x35\x7c\x19\xe1\x76\xad\x70\xbb\x56\x43\x0b\xb7\x6b\x85\xdb\xb5\x76\xb5\x70\xbb\x56\xb8\x5d\xab\xa5\x85\x4a\x91\x3d\x5b\xa8\x14\xd9\xb7\x85\x4a\x91\x4d\x2d\x54\x8a\xdc\x6c\xa1\x52\x64\xa8\x14\x19\x2a\x45\x86\x4a\x91\xdb\x03\x86\x4a\x91\xa1\x52\x64\xbf\xf6\xf0\x0e\xb8\xff\x19\x95\x22\xc3\xed\x5a\x9f\xe5\x55\x30\xe1\x1e\x98\x8e\xf6\xf9\xdc\x03\x13\x6e\xd7\x0a\x37\xc0\xb8\x16\x6e\xd7\xfa\x8c\x59\x6a\xb8\x5d\xab\xbb\x7d\x3e\x5c\x35\xdc\xae\x15\x78\x6b\xad\x85\xdb\xb5\xc2\xed\x5a\x45\x0b\xb7\x6b\x05\x9f\x49\x63\x0b\x3e\x13\x12\x7c\x26\x45\x0b\x3e\x93\x5e\xe3\x06\x9f\x49\xf0\x99\x04\x9f\x49\xfb\xa4\x83\xcf\x24\xf8\x4c\x3a\x07\x0f\x3e\x93\xdf\xbd\xcf\x24\xdc\xae\x15\x6e\xd7\xda\xd1\x7e\x67\x06\x97\x70\xbb\x56\xb8\x5d\xeb\xf7\x79\xbb\x16\x5c\x6b\x49\x23\x7d\x2c\xb8\x06\xde\x98\x93\xd4\x17\x9d\x5f\xd6\x7a\x33\xa7\xeb\x82\x2d\x73\xe9\xf4\xfe\xe5\xfb\xd3\x63\x12\x51\x4d\x13\xb1\x24\xa7\x22\xb6\xa6\x6e\xfc\xa2\xf8\x39\x05\x4d\x63\xaa\x69\xe1\x25\x31\xfa\xf1\x25\x8b\x91\xa9\xc6\x70\x4d\x58\x4a\x97\x60\x98\x57\xe3\x24\x72\x05\x84\x92\x2b\x48\x92\xe9\x05\x17\x57\x9c\x5c\x82\x54\x15\x76\xfd\x49\x64\xe9\x27\xa2\x40\x5e\xda\x1b\xaa\xe0\x3a\x33\x88\xc6\xb4\x3d\xf7\xfd\x4c\xaa\xc3\x95\x41\xfc\xc7\xf6\xe9\x19\x06\x3d\xb7\x5d\xf6\x54\xac\x1d\x97\x69\xe6\xf4\xd4\x08\xf6\x4f\x0d\x51\xe7\xca\x67\x1c\x2c\x58\x02\xd3\x39\x55\x10\xfb\x71\x95\xa1\x35\x21\x63\x3b\xb7\x5c\xb3\x84\xfd\x0a\xee\x34\xb1\xc6\xf0\x26\xb4\xe9\x21\x70\x74\x1b\x42\xa6\x24\xa2\xd1\x0a\x5e\xb0\x66\x13\xc6\xd4\x4f\xb5\xf9\xa5\x3e\x36\x0d\x3f\x4e\xef\xcb\xdc\x8e\xdd\x07\xde\x6a\x11\x33\x89\xcc\x69\x4d\x94\x16\xd2\x43\x34\x93\x30\x8d\x68\x12\xe5\x09\xb2\xa2\xa3\xd3\x13\x3b\x52\xf7\x75\x6c\x1d\x24\x56\x2e\x7a\xc0\x8c\xfd\x27\xed\x73\xde\xc6\x02\x14\x4c\xd1\x4e\x79\x93\x69\xa7\x90\x0a\xb9\x3e\xa7\x72\x09\x37\x26\xed\x37\x95\xbe\x36\x09\xfb\xbf\x5e\xbd\x7b\xf3\xf2\xcd\xeb\x93\x37\x27\xe7\x8e\x5f\x7b\xa7\xdd\x26\xc9\xcf\x2a\x8e\x21\x25\x16\xda\x4d\x91\x24\x2c\x65\xba\xf8\xca\xd2\x66\xb3\x2a\x6d\xf9\x39\x26\x1e\xe6\x5c\xb3\x14\xac\x87\x8e\x6a\x6d\x44\x1d\x43\x37\x29\x80\xc6\xfb\xdf\x52\x7a\x01\x86\xe9\x92\x65\x4e\x25\xe5\x1a\xfc\x11\xc1\xb4\xfd\x28\x16\x44\x09\xa7\xe0\x33\x55\x7a\xf3\x14\x68\x9b\x6e\x75\x2a\x9a\x59\x0d\xf6\xb0\xa2\x97\xf6\x82\xae\x85\x30\x7c\xdd\x6c\x6a\x2a\x62\xb6\x60\x91\xb5\x18\x91\x94\xc6\x45\x8a\x90\x53\x38\x40\x16\xc7\x62\xb9\xe0\x36\xaa\xdc\x04\x33\xf0\x4b\x26\x05\x47\x45\xea\x92\x4a\x46\xe7\x09\x14\x7e\x4a\x05\xda\x8e\x57\x2e\x88\x93\xf9\x5a\x43\x33\xbb\xb2\x23\xb8\xdd\x70\x37\xbb\x35\xf7\xf7\xa8\xb1\x9f\xf3\x32\x97\xaf\x14\x62\xcc\xf7\xcc\x25\x79\xc4\xa0\x98\x63\x8a\x12\xe2\x3c\xf2\xa0\x13\x3a\x93\xcc\x6a\x85\xb4\xc0\x18\xc7\xa4\xa9\x22\x69\x6e\x4e\x70\x23\x1d\x29\xc5\xe6\x09\x4c\x8c\x0c\xc4\x9a\x93\x90\xca\x3e\xe6\x60\xa0\x8c\x3d\xa1\x64\x72\x09\x06\xdf\x0c\x1e\x5b\x11\x18\xc0\x08\x48\x02\x2f\x59\xa3\x56\xcc\xf1\xae\x5d\x73\x4e\x47\xce\xb1\x7f\xb2\x20\x6b\x91\xcb\xda\xb1\xb0\xa2\x06\x8f\x91\x7a\x1b\x27\xe2\x12\x07\x91\x07\x4d\x48\x0c\x46\xa1\x60\xdc\x9c\x50\x4b\x21\x62\xa3\x57\x48\x71\xcd\x52\x1c\xc5\x11\x40\xb1\x6b\xf3\x35\x89\x45\x6e\xbd\xa4\x88\x26\xe6\x28\x70\xa7\x58\x46\xa3\x0b\x33\x07\xec\xb8\x2d\xe5\xf3\x40\xa7\xd9\x01\xbe\xe5\xfe\xeb\xbe\x54\xb3\x9f\x95\xe0\xa5\x73\xbc\x58\xd6\xac\xd7\xee\x32\x45\xe6\xa0\xf4\x14\x16\x0b\x21\xf5\x5f\xcd\xfe\xe6\x1c\x89\x86\x8b\x02\x80\x1e\x81\x30\x10\x02\xa1\x8d\xa9\x3b\x75\xaa\x17\x72\x07\x03\xa9\xa0\x5e\x13\x0b\xcc\x0c\xbd\x4b\x7e\x48\xfe\xef\xde\xbf\xfe\xf0\xdb\x74\xff\xbb\xbd\xbd\x0f\xcf\xa6\x7f\xf9\xf8\x87\xbd\x7f\xcd\xf0\x1f\x4f\xf7\xbf\xdb\xff\xcd\xff\xf1\x87\xfd\xfd\xbd\xbd\x0f\x3f\xbc\x79\x75\x7e\xfa\xf2\x23\xdb\xff\xed\x03\xcf\xd3\x0b\xfb\xd7\x6f\x7b\x1f\xe0\xe5\xc7\x9e\x9d\xec\xef\x7f\xf7\x5f\x0d\x13\xa2\x7c\xfd\x6e\xd1\x4a\xc4\xbd\xb2\x9e\xa7\x7d\xce\xa3\x9a\xa8\xc7\xb8\x9e\x0a\x39\xb5\x1f\x1c\x12\x2d\xf3\xdd\x22\xae\x91\x87\xbb\x5c\xc6\x7d\xcf\x83\xb7\x95\xbe\x36\x3c\x49\xee\x8a\x44\x67\xc6\x34\xb3\x29\x38\x7b\x66\xa5\xbe\x85\xd9\x76\xaf\x0e\x34\x1f\x71\x67\x3b\x7a\x44\x39\xdf\x7d\xf9\x44\xf9\x08\x8d\x8d\xfe\x37\x92\x97\x2d\xc7\x6f\x1b\xab\x87\xec\x34\xcc\x34\xd3\xb9\x85\x99\x64\x42\x32\xbd\x3e\x4e\xa8\x52\x6f\x69\x0a\x37\xdd\x90\x93\x45\xa9\x9e\x4d\x0c\x3d\x9b\xf3\xc7\x1d\xd0\x2e\x64\xc6\x0d\xd9\x0c\xf0\x93\x05\xea\x27\x95\x7e\x3c\x50\xfd\xb7\x05\x61\x7a\x12\x17\x92\xfc\x0a\x52\xb8\xcb\x32\x25\x58\x1d\xa7\x71\x04\xf7\x59\xfb\x3e\xb4\x80\x4d\x41\x94\x23\xd8\x8c\x7c\x74\x6d\x34\x8d\x05\x5b\xde\x14\x74\x67\xbb\x3a\x25\x11\xe5\x66\xa1\x78\xfd\xeb\x82\x7c\x4a\x60\x49\xa3\xf5\x27\xb3\xe0\x4f\x12\xcc\x14\x8d\x6e\xf8\xc9\x2a\x0d\x35\xb5\xc0\x45\x27\x31\x45\x80\xe1\x8d\xc0\x8c\xff\x6c\x15\x49\xaf\x95\x37\xce\x44\x62\xdd\x86\x4c\xc4\x33\xb3\x07\xb3\x8d\xd5\x22\x0b\x2d\x1e\x16\xa2\xc4\x87\xa7\x1f\xb7\xde\x74\x56\x4e\x2d\xac\xb2\x59\x25\x0e\x99\x23\xd7\x6f\x93\x6b\x3c\x40\xc8\x51\x9c\x32\x34\xcd\x92\xbd\xd3\xb3\xa3\xfd\xda\xca\x8d\x94\x63\xcf\xe1\x58\x80\x8f\x0f\x32\x03\xa9\xd2\xc8\x8a\x67\x28\xa6\x86\x5a\x12\xc6\xdc\x50\x3f\x17\x03\x60\xb4\xbb\xb6\xa4\x43\xfb\xc9\x9e\x1d\x91\x4f\x46\x42\x4e\x18\x07\xbb\x07\x99\x64\x97\x2c\x81\xa5\x99\x49\x25\xc0\xc1\xbb\x6a\x76\xef\x29\x53\xe6\x94\xaa\xa3\x77\x8a\xb9\xcd\x16\xad\x5b\xf0\xd6\x1d\xdc\x2e\xd6\xa4\x62\xf5\x7b\xa2\x70\x7a\x5e\x26\x2e\xe5\x85\xda\x5b\x88\x0e\x7c\x21\x64\x64\x4e\xf3\x1d\x70\xd4\x2e\xf9\xdf\x80\xa6\x5d\xe0\x44\xb3\x50\xa1\x5d\x52\x65\x68\xaf\xd6\xe1\x15\xad\x54\x58\x98\x91\x77\x06\x09\xaf\x98\x82\x49\x21\xf5\xee\xec\xc2\x63\xf8\x15\x6d\x96\x13\x2b\xdd\x9e\xe1\x3f\xd7\xd6\x0b\xe5\xcc\x34\x88\xee\x28\x47\x35\xd1\x0b\x91\xa0\x0c\xdf\x60\xdc\x7e\xc5\x62\x2b\xfa\x80\x94\x42\xce\x6c\x09\x04\xab\x1f\x8b\x24\x6e\x39\x25\x0b\x35\xdd\x88\x2c\x68\x84\xb2\xf8\xc5\x91\x83\x39\xb4\xd9\x0d\xe6\x06\xdc\xa8\xcb\xab\x5a\x14\x4b\x68\x11\x88\xde\x08\xac\x9b\x60\x8b\x93\x98\x65\xd0\xb9\xc8\xb5\xc5\x07\xcb\x3e\x16\x22\xe7\x31\x31\x9c\xf1\x90\xac\xb4\xce\xd4\xe1\xc1\x41\x79\x74\xcf\x98\x38\x88\x45\xa4\x0e\x22\xc1\x23\xc8\xb4\x3a\xf0\x84\x7c\x90\x89\x78\xea\xff\x98\x52\x4f\x87\x07\x4f\xc6\x72\x4e\x42\x80\xe7\x2d\xd7\xc5\x4e\x89\x5d\x6e\xcb\x0b\x25\x34\x77\xbe\xa4\x45\xe2\x42\x3b\x1b\x0f\xc6\xfa\x25\xc2\xe5\xfb\xc5\x25\xc7\x85\xe4\x5f\xe1\xa4\x4f\x54\xb5\xeb\xf6\xa3\xa3\xcd\xe4\xdc\x61\x64\xee\x6f\xb3\x3d\xf7\xcc\xd4\x88\xc3\xe5\x2a\x50\x0c\xd2\x9a\xe2\xfd\xc7\x46\x5f\xb2\x4f\x0c\x1f\xe4\x6b\x62\x78\xb5\x76\x97\x71\x5b\x5b\x65\x9b\x6a\xbf\x32\x82\x13\x16\xff\xf8\xa6\xf0\xc7\x4d\x60\xb1\x80\x48\x7f\x5b\xb1\x1f\x15\xe5\x2b\x0a\x7f\xd7\x37\xfe\x5f\xdf\x36\x1f\xf3\xbd\x5c\x53\xfd\xe2\x52\xec\x94\xda\x8d\xe2\xc3\x8c\xe1\x2f\xb1\xc7\x0d\x01\xc6\x02\xcf\x0e\x86\xfa\x3d\x3a\xad\x9d\x85\xd5\xba\x2b\x9c\x60\x98\x24\xb5\x97\x3b\x23\x33\x90\xe1\x54\x4e\x04\x67\x9b\x2d\xdd\x84\x40\xde\x0a\x57\x07\x08\x26\xe4\x14\xef\xa4\x2e\x7f\xc1\x23\xf9\xad\xb0\x15\x81\x3a\x4a\xbc\xf4\xb4\xe4\x76\x06\xf6\x0c\x83\xe7\x0f\x65\x9c\x8f\x05\x4c\x2d\xce\xa7\x24\xac\xaa\x83\xac\x15\xb0\x17\xb0\xee\x84\xaa\x3b\xfd\x5c\x8c\x11\x3a\xa0\x26\x25\x8e\x7a\xd5\xc0\x86\x50\xfc\xd5\x95\x8d\x10\xe9\x9c\x71\x3b\x15\x3b\xb0\xdf\x67\x1c\xdb\xef\x07\x8f\xf1\xcf\xee\x49\xf4\x84\x76\xbf\x60\xa3\x61\x20\x7f\x37\x20\x90\xa8\x70\x49\x77\x81\x74\x57\xc0\x50\x25\x4a\xe8\xe5\x2f\x39\x4d\x66\xe4\x85\x95\xaf\x11\x78\xf6\xa7\x2e\x72\xb3\x5d\x6c\x39\xea\xaf\x58\x12\x47\x54\xc6\xa8\x5a\x59\xf6\x43\x94\xb0\x88\x43\xbd\xf8\xd6\xd1\xb7\x67\x80\x25\xf2\xd8\xdb\xe2\x49\x46\xa5\x66\x51\x9e\x50\x69\x18\x3e\x2c\x85\xec\x08\x9c\xef\xb9\x99\x25\x36\x9f\x41\x24\x78\xdc\xe1\x52\x1c\xb6\xab\xe7\x9b\x9d\x57\xb7\x17\x05\x37\x90\xcc\x95\xa2\x61\x29\x6c\x92\xd7\x5e\x4d\x2d\xee\x18\x4b\x2c\x3c\xb3\x2b\x78\xcb\xc4\x4a\x57\x46\x8e\xab\x56\xcc\x62\xca\xa7\x25\xec\x57\x0e\x9c\x82\xda\x67\xe4\xef\x45\xb0\x7c\x57\x6c\x12\xd3\xde\x41\x85\x76\x1c\x37\x5f\x47\x8a\x6e\x27\x4b\x36\xb2\x10\x12\x2e\x41\x92\xbd\x58\xe0\x37\x58\xf9\x6a\x7f\x46\xfe\x69\xb4\xc1\x36\xff\x8c\x6d\x1c\x96\xb6\x76\x92\x23\xec\x22\x5b\x44\x02\x1a\xee\xa9\x22\xcf\xc8\x9e\x2d\xa7\xc5\xd2\x14\x62\x46\x35\x24\xeb\x7d\x2f\x7e\x5b\xbb\x5a\x1f\xac\xe9\x53\x65\xae\x52\x5d\xee\xeb\xff\x6e\x79\x13\x27\x7b\x9b\x48\xf5\x93\xb7\x37\x97\x80\xb5\xa2\xf4\x06\xf6\x14\xee\xcd\xce\xe8\x85\xc6\x50\xb5\x49\xc9\x6b\x2a\xb2\xae\xe7\xcd\x05\x6e\xfd\x6c\x10\x94\x12\x09\x4b\xa4\x4f\x4b\x73\x37\xa0\x4e\x16\xed\xae\x93\xd7\x21\x84\xb4\xbb\xaa\xa6\xc4\x28\x83\x5f\xff\x77\x4c\x35\x6d\x78\xc1\xa2\xcc\x3a\xdb\x45\x6a\x5d\xb2\x4d\xd9\x79\xd3\x5e\xf7\xf0\xbd\xb8\xe1\x47\xf5\x80\x5a\xcd\xae\x2f\xfb\x60\xd7\x09\x1a\xa7\x6d\x10\xa5\x47\x83\xa9\x84\x25\x53\x5a\xae\x2b\x1e\x08\xe7\xdb\x14\x84\x71\xa5\x29\xd7\x0c\x59\x35\xf1\x6f\x4e\x9d\xf5\xfd\x8a\xe9\x86\xf8\xc0\x77\x46\x79\x47\xdb\x2e\xa6\x0c\x59\xeb\xc7\xf9\x3a\x03\xf2\xb7\xca\x1f\xaf\x64\x16\xed\xfe\xfe\x64\x41\x1c\x03\xb5\xb8\x49\xe3\x58\x82\xda\xe6\x6c\xbb\xbe\x6e\x05\x9f\xb7\x56\x8d\x85\xe0\xa9\xb7\x76\xb9\xbc\x25\xa5\xd8\xd2\x28\x29\xbe\xb0\xa6\x77\xe6\xd4\x94\x15\xf3\xab\x1b\xd8\xba\x6c\x21\x2d\x4e\x4c\xa6\xbd\x3e\x18\x09\xae\xf2\xb4\x34\x23\xc4\x90\x01\x8f\x81\x47\x6b\xac\xa5\x95\x5c\x42\x43\x7c\xcf\x8f\xaa\x01\x25\x08\xf9\xdf\x6c\x69\xf4\x6e\x37\xb9\xaa\xe4\xec\xdd\xd6\x1b\x33\x65\xca\x00\x7e\x01\xd2\x68\xff\x98\xd2\x63\x84\x5e\xdf\x43\xc5\x0d\xe9\x8a\x7b\xf9\x68\xd3\xcd\xc9\x62\x85\xc5\xdd\xd3\x3d\x2f\xca\x82\x7a\x87\x85\x87\xa9\xe5\x40\x06\x1c\x4b\x61\xdd\xfc\x99\x50\xcc\xd7\xd1\x2b\xce\x85\x5a\x69\x51\xb1\xb0\x85\x3f\x9b\xc7\xaa\xa7\xe3\x61\x84\xf6\xc6\xa2\xd1\xf8\x96\x73\xbb\x99\x50\x35\x69\x7a\x5e\xd8\x50\xbc\xf4\x7c\x7b\xab\x8b\xf0\x1a\xcc\xe1\xab\x2f\xad\x3c\xcb\x24\xe5\x17\x10\x93\x04\xae\x59\x24\x96\x92\x66\x2b\x16\x61\x95\x48\xeb\xeb\x35\x1a\xa3\xb6\xb1\x55\xcd\x18\xde\x74\x7a\x65\xf9\x3c\x61\x6a\xb5\xdb\x6b\xd8\x4a\x1c\x0a\x22\x09\x7a\x27\xe7\xeb\x43\x1b\x67\xf6\xf3\x52\xf8\xf1\x91\xf0\xae\x5f\x97\x48\x62\xb1\xdd\x67\xc0\xd2\x28\x32\x84\xed\x3d\xa0\xe0\x24\xc1\x0a\x11\x35\x70\x08\xed\x1d\x4d\xa6\x97\x0b\x80\xcc\xe2\x33\x46\xb0\xa9\x14\x8d\x8b\x8a\xf1\x08\xb0\xea\xa5\xab\x5e\x0a\xe0\x9d\x00\x5a\x32\xb0\x12\x2c\xa0\xdb\xcf\xef\x22\x70\xbd\x5b\xe2\x6c\x37\x22\xb4\x18\x10\xda\x21\x5e\xf0\xc2\x4e\xa0\x57\x78\xa8\x17\x0a\xcc\xbf\x0d\x78\xf1\xc9\xd0\xcd\xb6\x45\x4e\xcf\x6c\x8c\xf8\x68\x7e\xf8\x63\xad\x17\x17\xdc\xa5\xc8\x4a\x5c\xb9\x01\x36\x39\x86\x33\xcb\x79\x34\x88\x99\x8a\x0c\x9b\x69\x30\x1c\x1d\x0b\xae\x7c\x51\x53\xca\x6d\x1d\xd2\x4b\x9a\xb8\x4c\x5e\x37\x58\x26\x12\x74\x84\xc6\xb9\xd7\x57\x6d\x4e\x12\xa4\x73\x88\x63\x88\x7d\x20\xfc\x9a\x34\x1c\xfa\x1d\x02\x47\x97\x4c\xe0\x8f\xc5\x53\x91\x24\xed\x67\x7a\xab\x61\xa5\x8f\x59\xc5\x03\xa0\x77\xa0\x49\x87\x98\x79\xe2\x01\xca\x54\x41\x91\xa5\x27\x1a\x91\xcc\x28\x2c\x05\xdc\xe7\xa0\xaf\x00\x38\x89\x56\x10\x5d\xa8\x32\xf8\x4e\x1b\x3a\xdc\xd8\x68\x17\x5c\xd5\x2e\x20\x56\x39\x68\x21\x98\x9a\x0d\x75\xd9\xf8\x40\x98\x51\x0b\x39\x5c\x6d\x06\x6b\x6d\x1f\x5c\xf4\x92\xb2\x84\xce\x93\x0e\x85\xf9\x64\x51\xbe\x39\xa9\xce\x9f\x79\xe9\x28\xcb\x93\xc4\xb9\xa5\x31\x4c\x45\x4b\xba\x58\xb0\x08\xa3\x17\x31\x4c\xa7\x0c\xf7\xdd\xb9\xf4\x51\xa1\x39\x4a\x53\x9d\x6f\x6d\x7d\x0b\xde\xb4\xe1\x8b\xd1\x42\x59\xa3\xbd\xb5\x0f\x86\xbc\xaf\x6b\xb0\x66\x76\x60\x55\xf4\x9a\x47\x6b\x46\xde\x0a\xed\xc2\xe0\xde\x80\x52\x2e\x04\x8f\xbc\x07\xaa\x04\xaf\x1c\x05\xa8\x79\x48\xb6\x64\x9c\xee\x2e\xa7\x60\xd7\x5f\x35\x99\x17\x8a\x26\x5d\x63\xd5\x67\xb6\x94\x54\x17\x1c\xbc\x5c\xa2\x3b\x34\x9d\x58\xb0\xc8\x31\x14\x8e\x1c\xf1\x35\xa2\x8d\x8b\x8d\xdb\x6d\x53\x65\x5c\x4b\x11\xe7\x11\xb8\xfa\xd6\xb9\xaa\x76\x7c\xab\xe7\x40\x3d\xfe\xcb\x8f\x51\xe6\x19\xc4\xa0\x29\x73\x0e\x6b\xc1\x81\x50\x95\x19\x2d\xdf\x63\x7b\x2e\x25\x9e\xa8\x7e\x1f\xf0\xb0\x3b\x3a\x3d\x21\xef\xa1\x0d\xe9\x3a\xf9\x4e\x57\xe0\xdf\x94\x24\x54\xe9\x73\x49\xb9\xc2\x09\x9f\xb3\xb4\xc9\x44\x61\x34\x2b\xc4\x80\xc6\xe7\x12\xb1\xa2\xf1\xb1\x45\x81\xc6\xc7\x0d\xdc\xbb\x0f\xe7\xdc\x5e\xc3\x6d\x58\xfb\xb7\x7b\x2d\xf3\x26\x8d\x5c\xe2\x6d\x3d\x05\x46\x19\x4e\xe2\xde\x06\x57\x03\xdc\x6c\xb5\x43\x7d\x4c\x82\x41\x75\xbb\x8d\x81\x60\xa4\x4d\xa9\xa5\x5f\x79\xe7\x60\xce\x63\x90\x09\x3a\xdd\xca\xf1\xa2\x95\x11\x92\xe3\x99\x53\xfe\x69\x61\xc7\xc1\xf8\x57\xe7\x5a\x2c\x9d\x06\x36\x62\xce\xf7\x68\xb0\xcb\x15\x5f\xb7\xdd\x20\x93\x8d\x22\xc8\x74\x3b\x97\xed\x65\x93\xf3\x86\x15\x23\x24\x4c\x75\x33\x56\x39\x9c\xba\x8d\xfd\x72\x5d\xd9\xa0\x94\x55\x9e\x52\xc3\xa0\x68\x8c\x11\x72\xc5\x33\xab\x23\x59\x9d\xc6\x52\xa4\xf5\xdc\x59\xc7\x8b\xdf\xbe\xce\x1d\x72\x4c\x8b\x16\x39\xf8\x1d\xd6\x92\x5e\x30\x4b\xe9\xf5\x6b\xe0\x4b\xbd\x3a\x24\x7f\xfc\xea\x4f\x5f\xff\xb9\xe1\x45\x31\xb7\x41\x6d\xaf\x80\x3b\x2b\xd1\x6d\x40\x6f\xbb\xd7\x4d\x33\xe7\xcc\xc7\x68\xcf\x96\xe5\x3b\x85\x43\xa1\xc4\x4a\xf4\x42\x83\x76\x7c\x3b\xcf\xda\xc1\xf9\x3d\x66\x19\x28\x4d\x79\x04\x13\x23\x0e\xec\x1c\xc6\xa8\xb2\x96\x47\x26\x6b\xf2\xfc\xab\x09\xc6\x78\xe2\xa4\x2c\x75\xcd\x4a\xb6\xfe\xe1\xfa\xe3\x6c\xc7\x62\x98\x22\x7f\x99\x6c\xcc\x94\x29\x62\xf6\x5e\x2c\x10\x4d\x5b\x26\x89\x6a\x9f\x04\xcb\xb3\xbd\x11\x60\x9b\x67\x43\xb1\x92\x2e\x4c\xe8\xb2\x4d\xf6\xb3\x4b\xa6\x8c\xb3\x34\x4f\x0f\xc9\xb3\x86\x57\x2c\x47\xbe\x0d\xf4\xb0\x3d\x95\xe7\x19\x35\x6c\x79\x29\x69\x9a\x62\x2a\x16\x8b\x81\x6b\xb6\x60\x18\xf4\x52\x90\x18\xea\xf1\xf6\x43\x1f\xa8\x55\x00\x1f\x63\xb8\x0c\x1b\xed\x45\x74\xa7\xf6\x1c\x97\x28\x94\x3a\xaf\x5d\x54\xe5\xbc\xeb\x0c\x2c\x55\x5a\xb5\x81\xc0\x75\x66\x25\xb9\x8a\xff\x28\x05\xca\x19\x5f\xaa\x32\xdc\x12\xf9\x5f\x9b\x79\xdc\x7c\x76\xb5\x02\x17\xde\x00\x55\xef\xa0\xaf\x69\x64\x44\xc9\x32\xca\x18\x23\xcf\xdb\xd9\xc7\xb6\x2d\xd6\x48\x5d\x29\x24\xc7\x54\x41\x0f\xbb\x6b\x25\x18\xd3\xdf\x47\x51\x64\x0d\xdf\x1a\x03\x7a\xfe\xec\xab\x56\xbc\x2b\xde\x6b\x7c\xa9\x0c\xd3\xfc\x70\x34\xfd\x27\x9d\xfe\xfa\x71\xcf\xfd\xe3\xd9\xf4\x2f\xff\x6f\x72\xf8\xf1\x69\xe5\xcf\x8f\xcd\xd1\x95\xbb\x25\xe7\xb2\xd5\x70\xd8\x9d\xb5\x5e\xac\xf2\xf8\x31\xf1\xd1\x5c\xe7\x32\x87\x09\xf9\x9e\x26\x0a\x26\xe4\x47\x8e\xe7\xe4\x0d\x81\xd6\x1e\x5d\x61\x24\x9b\xc7\x66\xd4\xc7\xed\xaf\xe0\x94\xda\xdf\x71\xd3\x6d\x53\x41\xfb\x01\xc9\x5b\x16\x2a\x8c\x90\x57\x30\xd0\xa6\x7d\x2d\x84\x98\xc1\x35\x4d\xb3\x04\x66\x91\x48\x0f\x8a\xe7\xb7\x78\xc8\x3d\xff\xba\x07\xf6\xec\x7d\xb0\x38\xf2\x71\xef\xc3\xd4\xfd\xeb\xa9\xff\x69\xff\xbb\xbd\x7f\xcd\x5a\x9f\xef\x3f\x3d\xc0\xd8\xde\x02\xd5\x3e\x7e\x98\x96\x68\x37\xfb\xf8\x74\xff\xbb\xca\xb3\xfd\x5d\x48\xb8\x9d\x5d\x95\xd2\x6c\x7a\xd1\x58\xda\xae\x51\x94\x6d\x4a\xd3\x4a\x69\xb6\x4b\xc5\x5b\xb0\xe5\x1b\x9a\xbd\x87\x05\x48\xe0\x51\xb7\x09\xe9\x78\xeb\x13\xb2\x17\x9b\x23\x1c\x93\xf3\xf6\xbd\xf0\x2a\x8b\xa7\xee\x20\x2b\xbe\xf3\xdc\xbd\xb8\x29\x6a\x33\x26\xa7\x16\xea\x36\x29\x45\xc9\x1d\xca\x7a\xd9\xeb\xed\xbb\x80\x38\x6d\x10\x27\xa7\x65\xd8\xdd\x08\x43\x8f\x39\x8e\xac\xc1\xab\x4d\x83\xe8\x81\xe4\xfd\x64\x5f\xde\x12\xfb\xdb\x39\x48\xb1\xce\xd1\x3d\xf8\x0b\x3c\x7e\xb2\x76\x97\xd1\xfd\xe4\xac\x51\xb9\xec\x2b\x5d\xfc\x78\xf2\xc2\xe2\x0c\x32\x26\x94\x28\x57\x22\x89\x15\xc9\x39\xfb\x25\x07\x72\xf2\xa2\x28\x4b\xc4\x78\x94\xe4\x78\xe1\xd1\x8f\x3f\x9e\xbc\x50\x33\x42\xfe\x0e\x11\x35\x7a\xfd\x55\x4b\x0c\x27\xd6\x04\x7c\xf7\xf6\xf5\xff\x41\x0b\x00\x7e\xe9\xee\x1b\x71\x15\x47\x12\x46\xad\x45\xca\x1e\xbe\xa6\x57\x1b\xde\x88\x33\x8a\x68\xd6\x6c\x63\x20\xce\x6e\xc7\x6d\x94\xee\x0a\x92\x4c\x61\xf6\x11\x51\xb9\x74\xab\x31\x03\xda\x34\x08\xcc\x4f\x77\x8e\x73\x9f\x50\x85\x09\x6b\xa3\x02\xa3\x23\xc1\x39\x44\x18\x99\x60\x84\xd0\x3e\x1c\xa2\xfa\xfe\xa6\x80\xbf\x53\xa2\xdd\x8c\x70\x2e\xc7\xf4\xfc\xc3\x1b\x48\x6f\x9f\xd0\x0d\x45\xbe\x73\xa2\x3c\xce\x78\x04\x55\x3b\xdf\xe2\x68\xfc\x36\x73\x70\x70\xbb\x73\x96\xb0\xb5\xde\x51\x23\x5a\xa3\x25\x3a\x83\xdf\x77\xd8\xae\xeb\x61\x99\x5b\x96\x8d\x8d\xa4\x57\x34\xa0\x16\xfe\xe4\x15\x55\x64\x0e\xc0\xd1\x9e\x6b\xed\x76\xc0\x1d\xce\x43\x69\x6d\xcd\xb3\xa9\x16\xd3\x06\xfd\xaa\x03\x72\xdd\x50\x6b\x31\x1f\xd4\xd6\x76\x34\xd8\x20\x70\xb5\x5a\xef\x82\x81\x2a\xaf\x3b\xf2\xd2\xd3\x60\x2f\x75\xb3\x56\x56\x9b\xb3\x33\xb2\x16\xc7\x36\xfe\xb5\x3d\x25\xa3\x6e\xd7\x0c\x4f\x5a\xa0\x7b\xb1\x46\xcd\x23\xe6\x68\xb7\xf9\x0c\xe4\x25\xeb\x21\x7c\xbc\xaf\xbf\xdf\x8b\xb5\xbc\x7a\x7f\x7a\x8c\x09\x7a\xe6\x03\xef\x9f\x40\xec\xaf\x4a\x15\xb7\xef\xd1\x89\x6c\xa8\xd1\xd1\xdd\x13\x74\x26\xe4\xf8\x41\x32\x29\xb4\x88\x44\x87\xd3\xa9\x35\x67\x06\x41\xdb\x96\x64\x34\xa4\x8f\xa1\xf2\x86\xe5\x63\xb5\xb4\x34\xa5\x85\x34\xe4\x5a\xfb\x2d\x9f\x17\x97\x89\x95\xbd\x3b\xad\x8f\xfc\xfb\x3f\x8f\xfe\x7f\x00\x00\x00\xff\xff\xdb\x28\x1f\x9a\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\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")
+var _operatorsCoreosCom_clusterserviceversionsYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\xfd\xfd\x77\x1b\xb9\x91\x2f\x8c\xff\x9e\xbf\x02\x47\xc9\x7e\x25\x6d\x48\xca\x4e\x36\xb9\xbb\xbe\xfb\xdd\x1c\x5d\x5b\x33\xa3\x67\xc6\xb2\x8e\xa5\x38\x4f\xce\xec\xdc\x04\xec\x2e\x92\x58\x75\x03\xbd\x00\x9a\x32\x73\xe7\xfe\xef\xcf\x41\x01\xe8\x17\xbe\x58\x64\x03\x32\xdb\x9e\x46\xce\xc9\x58\x64\x13\xa8\xc6\x4b\xa1\x5e\x3e\x55\x45\x0b\xf6\x01\xa4\x62\x82\xbf\x22\xb4\x60\xf0\x51\x03\x37\x7f\xa9\xc9\xc3\xbf\xaa\x09\x13\x17\xcb\x97\xbf\x7a\x60\x3c\x7d\x45\x5e\x97\x4a\x8b\xfc\x3d\x28\x51\xca\x04\xde\xc0\x8c\x71\xa6\x99\xe0\xbf\xca\x41\xd3\x94\x6a\xfa\xea\x57\x84\x50\xce\x85\xa6\xe6\x63\x65\xfe\x24\x24\x11\x5c\x4b\x91\x65\x20\xc7\x73\xe0\x93\x87\x72\x0a\xd3\x92\x65\x29\x48\xec\xdc\x0f\xbd\x7c\x31\x79\xf9\x3f\x26\x2f\x7e\x45\x08\xa7\x39\xbc\x22\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\x5f\xa9\x02\x12\x33\xd8\x5c\x8a\xb2\x78\x45\xb6\x3e\x63\xfb\xf5\x34\x51\x0d\x73\x21\x99\xff\x9b\x90\x31\x11\x59\x8e\xff\x76\xef\x6a\x87\xbf\xb3\xc3\xbb\x09\xc2\xef\x33\xa6\xf4\xf7\xbb\x9f\xf9\x81\x29\x8d\xcf\x15\x59\x29\x69\xb6\xeb\x45\xf0\x11\xb5\x10\x52\xdf\xd4\x64\x19\x32\x12\xb5\x6c\xfe\xdb\x3d\xc8\xf8\xbc\xcc\xa8\xdc\xd1\xdb\xaf\x08\x51\x89\x28\xe0\x15\xc1\xce\x0a\x9a\x40\xfa\x2b\x42\xfc\x58\xb6\xf3\x31\xa1\x69\x8a\xeb\x45\xb3\x5b\xc9\xb8\x06\xf9\x5a\x64\x65\xce\xab\xc1\xcd\x33\x29\xa8\x44\xb2\x42\xe3\x9a\xdc\x2f\x00\x67\x8d\x88\x19\xd1\x0b\x20\xaf\xef\x3e\x54\x8f\x12\xf2\x5f\x4a\xf0\x5b\xaa\x17\xaf\xc8\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\x6a\x7c\xf7\x12\xfb\x91\xb0\x6c\xac\x53\x73\xf8\x0f\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\x82\xa0\x2d\x8f\x58\x8a\xde\x6f\x7e\xb1\x83\xa4\x66\x97\x9a\xea\x52\x4d\x8a\x05\x55\x9b\x53\x7c\xbb\xf6\xe9\x96\xee\xec\x83\xcb\x97\x34\x2b\x16\xf4\xa5\xfb\x50\x25\x0b\xc8\x69\xbd\x07\x44\x01\xfc\xf2\xf6\xfa\xc3\xef\xef\xd6\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\x5d\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\x0a\x09\x84\xf1\x99\x78\x45\x16\x5a\x17\xea\xd5\xc5\xc5\x9c\x69\x7f\x3d\x24\x22\xcf\x4b\xce\xf4\xea\x02\x39\x3d\x9b\x96\x86\xf5\x5e\xa4\xb0\x84\xec\x42\xb1\xf9\x98\xca\x64\xc1\x34\x24\xba\x94\x70\x41\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\xf7\x57\x77\xf7\xc4\x53\xe4\x8e\x3a\x2e\x51\xfd\xe8\x96\x19\xf2\xab\x65\x66\x96\xf1\x19\x48\xfb\xcb\x99\x14\x39\xf6\x0a\x3c\x2d\x04\xe3\x1a\xff\x48\x32\x06\x5c\x13\x55\x4e\x73\xa6\x15\x6e\x6b\x50\xda\x2c\xe4\x66\xc7\xaf\xf1\x3a\x25\x53\x20\x65\x91\x52\x0d\xe9\xe6\x23\xd7\x9c\xbc\xa6\x39\x64\xaf\xa9\x82\xcf\xbe\x76\x66\x8d\xd4\xd8\x2c\xc8\xde\xab\xd7\x14\x16\x36\x7f\xb0\x71\xea\x09\xf1\xb7\xfb\x21\xcb\xbd\x93\xd1\x90\x14\x92\x8c\x4a\x2b\xa0\x10\x0d\x59\x46\xde\xfd\xf0\x96\x2c\xc4\xa3\x39\x48\x8c\x2b\x4d\xb3\x0c\x0f\xa6\x13\x22\x36\xba\xc6\x3b\x20\xa1\x9c\xe4\x94\xd3\x39\x10\x5a\x14\x8a\xcc\x84\x24\x94\xcc\xd9\x12\xb8\x67\x00\xeb\x6b\xb1\xf3\xfd\x76\x71\x36\x62\x6f\xa4\xad\xb7\xaa\xff\xd6\x11\xbc\xf6\xcd\x2e\x5e\x67\xda\x86\x7c\x76\xd8\xc4\x9a\x76\x59\x77\x81\x47\x8a\x93\x92\x2b\x2d\x4b\xdc\x25\x29\x79\x80\x95\x3b\x5d\x39\x2d\x88\xd2\xc2\x7c\xf8\xc8\xf4\x82\xd0\xe6\xc9\xa2\x1a\x8f\xcb\x74\xf3\xb5\x4c\x53\xa0\xc9\x74\x45\x8c\x34\x8a\xec\x4c\x0b\x91\x21\xaf\xc3\xfe\x0c\x5b\x23\x12\xb4\x64\xb0\x04\x42\xe5\x94\x69\x49\xe5\xaa\xda\x5b\x9b\xe7\xe0\x93\xf3\x8f\xf3\xd2\x10\x8e\x76\xcf\x1e\xf9\xd4\xce\x26\xf6\x3a\x71\xb2\x59\x5a\xc9\xc7\xdd\x27\xfa\xf6\xda\xed\xe0\x5a\xd8\x56\x6e\x07\x83\x22\x66\xa7\x3a\xb1\xa8\x92\xda\x91\x00\xb7\x35\x53\x22\x64\xb5\xb7\xc8\x74\xb5\x75\x8c\xc6\x56\x27\x53\x30\x6c\x50\x52\x6e\xa6\x7e\xeb\x11\xea\x30\xb1\x9f\xda\x8c\xa6\x89\x47\xbe\x6d\xe7\x37\xfb\xa6\x52\xd2\xed\xd4\x13\xc2\x34\xe4\x3b\x7a\x26\xeb\xd3\xdc\x9c\xcf\xea\x63\x43\xe0\x92\xa5\x60\x26\x56\x53\x66\x77\x99\xe1\x09\x74\x2a\x4a\x6d\xe7\xd3\x3d\x92\x92\x25\xa3\x84\xce\xe7\x12\xe6\xb8\xff\x77\x0e\xfb\xc4\x9c\xd8\xb6\xfb\xd8\xd7\x6d\x6c\x95\x9a\x4f\x3e\x61\xd8\xef\x27\x1f\xe0\xdb\x98\x47\xf3\x81\x4d\xb9\xb9\xdd\x9e\x5a\x43\xdb\x68\x62\xe6\xc4\x4f\xad\x90\x9f\x7c\x78\x9f\xb5\xb5\xed\x89\x15\xb6\xad\xbd\xce\x6b\x84\xb8\x6f\xa7\xe6\xcc\xd4\x17\x80\xe1\x1c\xf8\x60\xcd\xd2\xa7\x40\x0a\x90\x33\x21\x73\x73\x78\x38\xa1\x24\xb1\xa2\x6c\xc5\xb7\x90\xe1\xf2\xe4\x53\xd3\x49\xf6\x5d\x7f\xdb\xf6\xd9\x05\xb6\x8d\x49\x41\xf5\xe2\x89\xc7\xf6\x5b\x2a\xdb\x9a\x93\xf6\xe4\xc3\x4f\x30\xbe\x8d\xbe\xeb\x7b\x2b\x7a\xdf\x66\x1a\xa2\x77\x8a\x57\xd6\x3e\xbd\xee\xc3\xb9\xd7\xdb\x7b\xfa\xf8\x16\x94\x32\xf2\x02\x0a\xa1\x92\x3e\x12\xe0\x89\x30\x3c\xe5\xff\xb9\x7b\x77\x63\x47\xdf\xc6\x5d\x37\xdb\xb5\x26\x2c\x2f\x32\xc8\x8d\x2c\x4a\x7e\x7c\x4b\xa5\x5a\xd0\x0c\xe4\x4f\x78\x2b\xfe\xf8\x67\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\x8a\x4c\x57\xfa\xa9\xd3\x46\xc8\xc7\x71\xba\x2f\xdb\x69\x12\xf3\x34\xf3\xb1\x6d\x2f\x16\xd4\xec\xf8\xc9\xb7\x34\xf2\x36\x65\x1c\xe4\xad\x90\x7a\x1f\x3e\x69\x14\xbb\x39\x6c\x8a\xa3\xcd\xe6\xa7\x8c\x71\xfd\xfb\xdf\x7d\xe2\xc9\x14\x8a\x4c\xac\xcc\xfe\x79\xfa\x78\xee\xf9\x3e\x7b\xb3\x92\x7d\xfb\xdb\x97\x7d\xec\xd9\x9f\x35\x0d\xc6\xe8\x69\x9b\xf6\xd9\xa9\x23\x1e\xeb\xdd\x2a\x05\xfa\x68\xf7\xed\xed\xb5\xb7\xf5\xbc\x87\x19\x48\xe0\x89\xe7\x73\xd5\x9f\x5a\x10\x4a\xbe\x2f\xa7\x20\x39\x68\x50\x0d\x4d\x60\x55\x80\x37\xac\x81\xfd\x81\x04\x49\x4a\xcd\x32\xf6\x8f\x6d\xe6\x88\x6d\x6f\x15\xfd\xa6\x7d\x42\xa6\xf2\x8f\x3d\x21\x59\xf9\xc7\x9e\x92\xaf\x6c\x3b\xe4\xea\x7e\x7a\x17\xda\xd6\x5a\x27\x34\x82\x38\x8d\xa1\x5a\x99\xb4\xbd\x14\xd1\x39\xf9\xd3\xdb\x7c\x0b\xa5\xb7\x68\x3c\x6f\x19\x9f\x77\x11\x4c\xce\x76\xf9\x25\x26\x46\xe1\x9f\xa0\x49\xfc\xc7\x9f\x26\xb6\xcb\xf3\x09\xb9\xca\x0b\xbd\xf2\x66\x20\xf6\x44\xe7\x4c\x11\x2e\xf4\xa6\x20\x18\x7d\x9a\x96\xdb\x8d\x90\x4f\xce\xd4\xe5\xed\xb5\x37\x6f\x7f\xc6\xa5\x55\x05\x24\x3d\x10\xf4\xef\x5a\x64\xb4\xc4\xfc\x19\x83\x2c\x25\xcc\xc8\xf0\x86\x58\x32\xcd\x44\xf2\xe0\x2c\xf9\xef\xdf\x10\x25\x2c\xcf\x31\x8a\x9e\x91\xfc\x13\xc1\x55\x99\x03\x61\x4f\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\xf9\xa9\x36\x30\x48\x6c\x03\x83\x1c\x18\xe4\x53\x1d\x3f\xf9\x96\x7b\x49\xba\x4f\xf6\xf5\x14\xef\x18\x3c\x07\x83\xe7\x60\xf0\x1c\xb8\x36\x5c\x9f\xae\x0d\xd7\xe7\x70\x7d\xb6\xdb\x17\x77\x7d\x0e\x9e\x83\xc1\x73\x30\x78\x0e\x06\xcf\x41\xb3\x0d\x9e\x83\xc1\x73\x30\x78\x0e\x06\xcf\xc1\x8e\x36\x48\xf6\x1d\x3b\x1d\x24\xfb\x41\xb2\xdf\xd5\x06\xcf\xc1\xe0\x39\x18\x18\xe4\xc0\x20\x07\x06\xb9\xa3\xf5\xd1\x73\x90\x64\x40\xf9\x76\x75\x7e\x2d\xb8\x11\x9f\x43\x01\x90\xcd\x98\x0b\xed\x73\xbf\x26\x53\x58\xd0\x25\x13\xa5\x24\x8f\x0b\xe0\x3e\x2e\x95\xcc\x41\x2b\xb3\x0b\x40\xc3\x36\x0d\xf0\x09\xf6\xf6\x69\x96\x36\x26\xc0\xe9\x34\xdb\xda\xf1\x53\xdc\xcb\xfd\xf2\xd3\x9e\x92\xa9\x10\xe6\xed\x36\x67\x0c\xb5\x17\xaf\x0d\x44\x08\x6a\xd9\xa5\x73\x6d\x0f\x6c\x79\xfd\xfe\xcd\xb3\x86\xb3\x6c\xed\xe4\xba\x1a\x9b\xa0\x0b\x07\xc3\xfe\xcc\x95\x67\x3e\x7d\xf7\xc8\x21\xc5\x28\xf0\x11\x61\xda\x3c\x60\x18\x0b\x4b\x98\xce\x56\x15\x79\x5f\x76\x9c\xcc\xeb\xf7\x6f\xf6\x77\x73\xf9\x55\xda\xd9\x75\x44\x8f\xd6\xe0\xaf\x1a\xfc\x55\x55\x1b\x84\xb6\x8e\x9d\x0e\x42\xdb\x20\xb4\xed\x6a\xf1\x85\xb6\xbe\xfb\x77\x06\xaf\x0c\x19\xbc\x32\xfe\xb1\xc1\x2b\xf3\xe4\xe3\x83\x57\x66\xf0\xca\x0c\x5e\x99\x4f\xb7\x41\x7e\x75\x6d\x90\x5f\x07\xf9\xb5\xdd\xbe\x38\xf9\x75\xf0\xca\x0c\x0c\x72\x60\x90\x75\x1b\x18\xe4\xc0\x20\x5b\xed\x4b\x8c\xe7\x18\x2c\xdc\x83\x85\x7b\xb0\x70\x0f\x17\xe0\x70\x01\x0e\x17\xe0\x53\x1d\x0f\x16\x6e\xdf\x06\x0b\xf7\x60\xe1\x6e\xb5\xc1\xc2\x3d\x58\xb8\x07\x0b\xf7\x60\xe1\xde\xd1\x06\xf9\xb5\x63\xa7\x83\xfc\x3a\xc8\xaf\xbb\xda\x60\xe1\x1e\x2c\xdc\x03\x83\x1c\x18\xe4\xc0\x20\x77\xb4\x3e\x5a\xb8\x9f\x38\xbc\xfb\xec\xd2\xa6\xbd\xda\x89\xcd\x1e\xe9\x3e\x21\xaf\x29\x27\x8c\x27\x59\x99\x02\x7e\x33\x03\xaa\x4b\x09\x6a\x44\x32\x96\x33\x5f\xac\x43\x48\xb3\x69\xc6\x09\x55\xa0\x5c\x1f\x5b\x87\xaa\xfa\xdd\xf2\xed\xa7\x5f\xf3\xd3\x7c\xe4\x93\xc5\xc5\x2a\xd8\x3e\xe3\xbe\x1f\xb7\xad\x0e\x26\x83\x25\x7b\x4c\xb3\x19\xdf\x3c\x88\xb5\x5b\x6c\xa1\x9f\x27\x5f\x7b\xd7\x16\xfc\xc4\x96\x7b\xf2\x72\x79\xea\x4a\x19\x93\x29\x55\xf0\xc7\x7f\xd9\x28\x71\xd5\x7c\x24\x87\x94\x51\x33\xd4\xd6\x27\x9e\xbe\x66\xea\x21\x76\x6f\xf2\x3d\x0e\x4b\x45\x46\xc7\x5e\x5c\x39\x9b\xae\x47\xc4\xec\xbb\xf4\xda\xf6\x71\xa7\x25\xd5\x30\x5f\x35\xea\x36\xe1\x36\xab\x85\x06\xbe\xa3\x84\x99\xd7\x40\xb7\x0e\xf1\xb8\x00\x69\x8f\x98\xaf\x15\xa4\xfc\x40\x4c\x55\xe1\x42\x5d\xe2\x3f\x9e\x8a\xff\xf1\xe3\x6c\xf9\xfa\xa9\xf5\xdd\x56\x41\xc9\xb7\x7d\x2f\x48\x3f\x9f\x6f\xac\x87\xec\x4d\x95\x08\x66\x7d\x82\x0b\x2a\xcd\xc5\xe4\x3d\x69\x28\x9e\xd5\x4f\xef\xec\x7f\x6d\xd9\x76\xdd\x51\x7b\xc8\x6a\x4f\xcb\x68\xe3\x46\x1e\x9b\x5d\x5e\xbd\x7d\x44\x33\x57\x8c\xf1\x16\x64\xce\x94\xda\x15\x14\xd5\x26\xfd\xa9\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\x9d\x22\x42\x93\x44\x94\x5c\x13\x0e\x90\x62\x60\xd5\xd6\xed\xbd\xc7\xdd\xb7\x87\x04\xbd\xaf\xfc\x3c\xb6\x74\x3e\xf9\x94\x7b\x87\x4b\xfb\x0a\x5b\x8b\x64\x35\xdb\xfe\xf2\x36\x0e\xff\xb4\x10\x71\x88\x64\xb2\xb7\x5c\xd2\x45\x66\xbd\x15\x19\x4b\x56\xef\xcb\x0c\xc8\x42\x64\xa9\xc2\x9a\x6f\xe6\xf2\xac\x7c\xa2\x4d\x5d\xaa\xc0\xa7\xf1\x25\x47\x64\x5a\x6a\x92\x0a\xb0\x66\x43\x97\x5d\xaa\xf9\xf3\xbd\xc6\xb7\x9e\xf2\xc7\x85\x2d\x46\x68\x3a\x26\xb4\x28\x32\x8c\x9c\x14\x46\xf0\x78\x5c\xb0\x64\x61\x6b\xb0\x16\x34\x81\x6d\x8f\xed\x2f\x97\xee\xa5\xab\x91\x83\xf4\x35\xe2\xcd\xde\xd3\xa7\x76\x1d\x39\x50\x71\x23\xb6\x2c\xd8\xb7\x52\x94\xc5\x9e\x8f\x77\xdb\x03\xc4\x96\x0c\xb3\x03\x99\xeb\x48\xaf\x89\x58\xfe\x4b\xe7\x24\xb7\x4b\xad\x9c\x05\xd6\x79\x64\x26\x18\xfe\x98\x97\x99\x66\x45\x86\x3f\xb1\x19\xb0\x14\xa1\x12\xea\x0b\x6e\x44\x28\x5f\x79\x9f\xbb\x2b\x61\x08\x29\xa1\x73\xd3\xa3\xc6\xf2\xa8\x62\xb6\x37\xd5\xb6\x46\x62\x99\x1b\xf9\xab\x61\x03\x56\xa8\xee\xf3\x55\x4d\x05\x79\x64\x59\x66\x94\x1f\x9a\x65\xe2\x11\xd2\x09\x39\x39\x59\xbf\x80\x12\x21\x1b\x74\x23\xab\x3b\xf9\xe7\xd6\x53\x86\xaf\xd5\x2f\xb6\x9f\x22\x77\xa8\x16\x42\x0e\xd3\x44\xc8\xe1\x3a\x17\x41\x55\xea\xa1\x72\x50\x8d\x33\xa6\xf4\xd8\x51\xa9\x45\xce\x92\xbd\x3a\xe1\x82\x7b\x47\xc4\x9f\xdf\xff\xf0\xec\x1b\xf4\xa6\x3d\x9c\xab\xc9\x09\xda\xec\xd1\x82\x4a\xcd\x68\x46\x4a\x99\x29\xbb\x47\xa9\x51\x58\xa4\xaf\x82\xba\xa0\x88\xf3\x48\x40\x21\xbb\x20\xe4\x9f\xed\xae\x74\x9b\xc1\xb2\x32\xc1\xb3\x15\xa1\x76\x2b\xcc\xca\x2c\x1b\x91\x19\xe3\xd4\x5c\x64\x50\xf8\x18\xde\x3d\x4c\x33\x75\xbb\x63\x3c\x01\x33\x4d\xe3\xca\x37\x81\x94\x9b\x91\x0d\xcb\xac\x78\x5a\x3a\x72\x65\x3f\xad\xa5\x4a\x39\x52\x0c\x7f\x4b\xe8\x34\x03\xd4\x34\x9c\xcc\xf9\x5e\x64\xe8\x52\xac\xfc\x1e\x58\x2b\x94\x36\xbf\xfe\x5f\x8c\xef\xab\xad\xdb\xf6\x1e\xaf\xf6\x84\x72\x02\x4c\x2f\x40\xe2\xd0\x2b\xc3\x7f\xcd\x66\xaf\x0f\xd5\x99\x2a\x93\x85\x99\xa2\x93\x42\xa4\xea\xc4\x70\xe7\x13\x05\x89\x04\xad\x4e\xce\xcd\x5f\xeb\xef\x8a\xf3\xd5\xfc\xdd\x05\x2d\xd8\xc9\xf9\x88\xe0\x84\x63\x81\x52\xa1\x17\xbf\xf0\x73\xe4\x27\xac\x55\xcf\xfb\xa9\xd6\x3a\x45\xef\x9b\x3d\xb8\xca\x9a\xa2\xb0\x45\x29\xcd\xfd\xa9\x01\xc3\xce\xcd\x49\xc1\x3d\xd7\xf0\x41\xaf\x5d\xa4\x84\x5c\x72\x02\xd6\x6b\x08\x9a\xe4\x40\xb9\x7b\x1a\x96\x20\x57\x7a\x81\x8e\x44\x55\x71\xd1\x61\xe5\xf6\x40\x23\xd4\x6d\xeb\xaa\x39\x56\xe6\x57\xa8\x3e\x6e\xb6\xf8\xf3\xfa\x0a\x9d\xfe\xf3\xe9\xfa\x95\x54\xdf\xc1\xbf\xec\xf5\x40\x21\xac\xd3\x5a\x7c\x30\xbf\x6c\xaf\x83\xfd\xc8\x5e\x26\x15\x3b\xfc\xe1\x07\x5b\xec\xd9\x4d\xf8\xf7\x8c\xa7\xaa\x4a\xac\x9a\xda\x5b\xc2\x2d\xda\xd6\x95\x42\x0a\x7f\xb1\xab\xb4\xa9\x74\xed\xab\x28\x3d\x41\x63\x43\x2b\xef\x83\x22\x8d\xf5\xa2\x5b\x52\xb2\x61\xbb\x23\xeb\x9d\x37\x62\x65\x46\xa7\x90\x29\x67\x40\x84\x06\xf9\xe4\xf2\x87\xb7\x55\xe9\x76\x09\xf4\x09\xa3\xf8\x33\xa8\xcf\x7b\xc0\x7c\x36\x4a\xe4\x6f\xb6\xfd\xd5\x1c\x9c\x8a\xc3\x9c\x58\xe4\x0e\xb4\x3d\xab\x39\x2d\xcc\x51\xb5\x7d\x58\xe7\xca\x9a\xe3\xe4\x07\x9c\xe9\xa7\x4f\xdc\x41\xea\xe1\xfe\x25\x9f\xb7\x0d\xb2\xd7\x79\xdb\x0f\x4a\x74\x40\x87\x9f\x32\xe5\xd5\xad\x35\xcd\x6b\x1b\xda\xe9\x85\x4e\x93\x4b\x68\xd3\xa1\x90\x82\xb2\xc9\x75\x6c\x82\x23\xe9\x3f\xaf\xbb\x88\xbc\x04\x87\xe8\xe7\x63\xa2\x20\x83\x64\x5b\x4d\xf6\x6d\x0f\x6b\xc8\x8b\xec\xa9\x93\x47\x0e\xd6\xe5\x73\xc6\xdf\x03\x4d\x57\x77\x90\x08\x9e\xee\xc9\xa5\xbb\x29\x4b\x6f\x19\x67\x79\x99\x13\x5e\xe6\x53\xc0\xb5\x50\x76\x50\xe4\x38\xd6\xa0\x42\x09\x87\xc7\x6c\xe5\xb8\x4c\x4a\x0a\x91\x7a\xc6\x33\x35\x5a\x3d\x4d\xf7\xbd\x74\x1e\x99\x5e\x60\xd9\x0a\xbe\x32\x43\x31\x5d\xdf\x88\x92\x24\x92\x2a\x23\x34\x8e\x70\x68\xa6\xcd\x2d\x3a\x05\x74\xb1\xb3\x14\xcc\x96\xa1\x4b\xca\x32\xa3\xe5\xec\x7b\x2d\xbe\x81\x19\x2d\x33\x8d\xf6\xa1\x17\xe4\xcc\x10\xee\x95\xfb\x6d\xdd\x1a\xbd\x43\x09\xc1\xcd\x7f\x6d\xda\x25\x7c\xb9\xf3\x03\xfc\x7c\xfb\x24\x42\xf7\x6d\xdf\x84\xe8\xbe\x15\xb4\x54\xfb\x9a\x99\x5a\xbb\xe1\x9a\xa7\xe6\x10\x36\xa5\xf9\xc6\x3d\xc2\x94\xeb\x79\xbf\x59\xfd\x74\x2a\xaf\x2d\x54\x4b\x31\x97\xa0\xd4\x1b\xa0\x69\xc6\x38\x7c\x86\x4d\x7d\xbf\x00\x92\xd3\x8f\xb8\xb1\x35\xcb\xc1\x08\x5b\xcd\x6d\x4d\x9b\xaf\xaf\x05\xc9\xe9\x03\x54\x74\x92\x29\xcc\x84\xdc\x03\xd2\xe1\x1b\x53\xcd\xcd\x64\x37\xed\x8c\xb2\x0c\xd2\x09\x52\xd2\x18\xcb\x6c\x76\x29\xb2\x0c\xa4\xdd\x87\xe6\x6f\xc6\x4b\x20\x5a\xec\x39\x58\x21\x05\x9a\x26\xec\x00\x4d\x69\x06\xa5\x05\x6a\xba\xb4\x37\x0e\x1e\x36\x42\xc9\xed\xda\xfc\x5f\x7d\x4c\xd0\x08\xbf\xe7\x80\x12\xa8\xc2\xce\xec\xb1\x51\xa5\x9c\xd1\xc4\xcb\xaf\xad\x97\xb3\x88\x99\x09\xb9\x11\xda\x41\x97\xab\x29\x35\xbf\xde\x73\x3c\xd4\xf4\x81\x80\xd2\x2c\x47\x6e\x93\x96\x08\x49\x35\x83\xe1\x5a\xd2\xed\x7b\xb7\x75\xd6\xff\xf8\xe2\xc5\x9e\xa2\xf3\xf3\x9f\x5a\x09\x68\x9b\x79\xd6\x0d\x7f\x53\x71\x6f\x7f\xbb\x16\x22\x55\x66\xfb\x31\xa7\xaa\x14\xc2\xbc\xa3\x44\x2c\x07\x53\x9a\xf1\x79\xc9\xd4\x82\x4c\x41\x3f\x02\x70\x02\x1f\x6d\x7a\xb9\x3d\xc7\xfb\x07\x48\x81\xfb\xcd\xac\x56\xed\x90\x6c\xad\xc1\xcb\xfe\x2c\xc0\x92\x29\x26\xf8\x77\x4c\x69\x21\x57\x3f\xb0\x9c\x3d\x51\xd3\xc2\xb7\xee\xdc\xa7\xbe\x4e\x45\x96\x92\xf7\x76\x0b\xdc\x81\x9d\x19\x09\xe8\xfe\xd0\xc2\xda\x46\x88\xe1\x08\x53\x9a\x3c\xec\x7b\xab\x1d\xbc\xaa\xbb\xd6\xab\xc3\x2d\xfa\xf2\x45\x5f\x96\xd5\x0b\x6a\xcf\xb9\x94\xa8\x12\x54\x23\xe1\xdd\x61\x0f\xd6\xd5\x47\x3b\xdd\xad\xa5\x7d\x5c\x08\x05\xf8\x00\xa1\xf2\x69\x99\xb0\xf9\x1a\xde\x27\xca\x54\xc5\x69\x11\xaf\xc2\x41\x11\x3a\x9b\xb5\x9f\x48\x0f\x90\x94\x6d\xbb\xd6\x24\x2f\x95\x26\x39\xd5\xc9\xc2\x5a\xa7\x45\x5a\x49\xaf\xa7\xca\x69\x99\x87\x2c\xed\xde\xee\xb1\xc3\x1d\x59\xc4\xd2\x79\xf5\xb1\x30\x97\xc7\x53\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\xbf\xbc\x79\xb3\xff\xa9\xe9\x62\x94\x39\xd8\x2c\xd3\xdd\x47\x62\xda\xe5\x27\xe6\xc0\x3b\x4d\xdc\x37\x6d\x6f\x1e\xea\xcf\x6a\x44\x28\x79\x80\xd5\xc8\x4a\x1e\x8d\xa4\xa8\xe6\xe1\x83\x08\x91\x90\x39\xf1\x14\x4c\x8f\xd8\xa1\x1d\x63\xff\xd9\xee\xb0\x31\xfd\xe0\x87\xf8\x6f\x7d\x1b\x1b\x42\x0f\xfc\x85\x9f\xa0\x03\x7e\x76\xf8\xd9\xb1\xed\x01\x56\x87\xfd\x60\x6d\x27\x99\x55\x70\x5a\xbc\xdd\x23\xe6\x83\x4a\x7b\xa8\xb6\xc5\x61\x8e\xf5\x66\xeb\x60\x50\xb4\xcd\x4f\x62\xd0\xeb\x1d\x78\x50\x9a\xe3\xb6\xec\xb4\x66\x5a\x4e\x95\xdd\xbf\x86\xc3\x2c\x58\x61\x63\xfa\x9c\xb7\xf1\xf0\x4d\x6c\xdb\x07\x9a\xb1\xb4\x1a\xd2\x72\x9f\x6b\x3e\x32\xb2\xb5\xf9\x0f\x5e\x3f\x56\xe2\x7f\x23\x40\xdd\x08\x8d\x9f\x7c\xb6\x35\xb0\xaf\xf5\xb9\x57\xc0\x8e\xea\x9c\x56\xc8\x56\xd1\x5e\x61\x43\xd6\xdc\x4c\xfb\xbc\xca\x35\xd2\x53\x91\x6b\x4e\x84\x74\x53\x77\xf0\xa0\xa6\x33\x37\xb0\x1d\x12\x2f\xd2\xa9\x75\xd6\xa2\xfb\x6b\xeb\x98\x6e\x85\x84\x6c\x2d\x50\xc4\xe1\xdd\xd0\x28\x0b\xda\x6f\xd0\x5c\x51\x64\xa8\x9d\x39\xa5\x89\x7a\x68\xd5\x9e\x5e\x91\x66\xcb\x41\xce\xd1\x8b\x9d\xec\xed\x75\xad\x88\xee\x70\xf1\xd9\x76\xf0\xf5\xd7\x1c\xb0\xc3\x46\x8e\xe2\x4b\x8a\xd6\x0d\xca\x2b\xd6\x0c\xdd\x51\xe2\x39\xe8\x54\x35\x86\x6b\xd9\xc8\xff\x8f\xb9\xd4\x71\xd3\xfd\x5f\x52\x50\x26\xd5\x84\x5c\x12\xc5\xf8\x3c\x83\xd6\x77\xce\x04\xd0\xe8\xe6\xa0\xc1\x0b\x33\xa8\xb9\x7b\x97\x34\x73\x86\x18\xca\x09\x58\x73\xbc\xa1\x63\x5d\x7c\x1b\x39\x09\xdb\x5c\x45\x15\xfe\xe1\xe4\x01\x56\x27\xa3\x9d\x30\xf3\xed\xad\x79\x52\x4f\xae\xf9\x89\x15\x61\x36\xce\x5a\x25\xef\x20\xc8\xe2\x04\xbf\x3b\x89\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\xd7\x8d\x4b\x0e\x01\xad\x05\x29\x15\x58\x35\x1a\x99\x1d\x01\xaf\x8b\xa1\xe6\x85\x56\x2f\x0e\x8f\xa8\x3b\xf5\x46\xa1\x31\x2a\x3e\xe3\xf3\x3f\x17\x29\xd5\x7b\xc5\x14\xd9\xd6\xfd\x6c\xbf\xb7\x03\x92\x12\x47\x34\x3b\x79\xc6\xe6\xa4\xa0\x92\xe6\x6a\x42\x6e\x5d\xb9\x01\xdc\xd7\x6c\xd6\x74\xdf\xb8\x79\xbe\x5f\x15\x40\xfe\xff\x87\x0f\x68\xdf\xf0\x99\xcf\x41\x37\xa1\x38\xa7\x1f\xef\x4a\x39\x3f\x60\xfa\x49\xb0\xd0\xd2\xb4\x44\xd7\x36\x21\xdc\xa8\xcd\x24\x42\x2a\x59\x40\x5a\x66\x90\x12\x3a\x15\x4b\x68\xf9\xc9\xaa\x9f\x1d\x38\x34\x1a\x2a\x0e\xfc\xcd\x07\xc3\xe1\x3c\x51\x46\xc8\x9a\x2a\x91\x95\xba\xb2\x67\x9d\xc1\xc7\x57\xe4\x0f\x88\xdf\xa2\xa4\x00\x99\x00\xd7\x74\x0e\xeb\x86\x47\xfb\xdc\xcb\x17\xff\x74\x7e\x28\x01\x28\xce\x98\xf1\x9d\x19\xf8\x85\xd9\x9d\x6f\xe9\xc7\x3f\xf3\xda\x49\xc3\x14\xd9\xd3\x08\x55\xb7\xcb\xb5\x17\xc1\x51\xb2\xa4\xcc\xd0\xc4\x8c\xb8\xb8\xc6\xeb\x4c\x57\x44\x8a\x12\x91\x71\xa4\x2c\x0e\x1d\xab\x69\x2e\xfb\xdd\x1f\xfe\xe9\xd0\x9f\x5f\x7d\xa4\x79\x91\xc1\x2b\x5f\xf7\xc5\xda\xfa\x8c\x3e\xa1\x05\xf9\xfd\x8b\x7f\x1a\x59\x94\x00\x3c\x36\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\xda\xad\x90\x0a\x5c\x4b\x40\xaf\xc3\x81\x54\xbc\xfc\xfd\x8b\x7f\xda\x34\x6a\xbf\xe3\x09\xe0\x38\xd8\x3f\xe2\x35\xa7\x00\x9c\x3c\xb0\x2c\x83\xf4\x50\x11\xfb\xa9\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\x77\xb3\x43\xc5\xeb\x71\x07\x63\xee\xe6\xaf\x3b\x08\xe7\x2d\xe9\x83\x71\x3d\x16\x72\x6c\xbb\x79\x45\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\x47\x1e\xeb\xd2\xc0\xdb\xbe\xd3\x75\xf1\x59\x58\x78\xdb\x33\xb4\xc6\x79\xcc\x3c\x98\xa7\xff\xc7\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\x4f\xb6\x4f\x47\xf8\xae\xb7\xb6\xea\x68\x74\x17\x9c\xf1\xca\x4f\x86\xc1\xeb\x53\x20\x27\xef\xc1\xa2\x98\x6c\x44\x42\x4b\x69\x39\xa9\xfc\xd7\x66\xb1\x83\xf4\x99\xbd\xa7\xcd\xbb\xe0\x9e\xd5\x1f\xed\xc6\x68\x44\xe7\x39\x0f\xa0\xbb\x82\x2a\x48\x94\xc5\x77\xed\xef\x86\x06\x17\x7d\xe2\x8e\xb0\x7f\x99\x89\x2a\x20\x99\x48\x40\xae\x62\x83\x06\xad\x5d\x05\xcd\x2d\x97\xd9\x23\x5d\xa9\x93\xde\xa8\xe6\x39\x68\xfa\xe9\xa0\xf4\xf5\xd6\x5d\x20\xb8\xd3\x94\xa7\x54\xa6\xee\x8d\x4e\x55\x35\xfa\x21\x1c\xe1\x2d\xc2\x93\xf8\x4c\xbc\x22\x0b\xad\x0b\xf5\xea\xe2\x62\xce\xf4\xe4\xe1\x5f\xd5\x84\x89\x8b\x44\xe4\x79\xc9\x99\x5e\x5d\x20\xda\x88\x4d\x4b\x2d\xa4\xba\x48\x61\x09\xd9\x85\x62\xf3\x31\x95\xc9\x82\x69\x48\x74\x29\xe1\x82\x16\x6c\x9c\x08\xbe\x04\x8e\xfe\x8b\x49\x9e\xfe\xda\x93\xf4\xbc\x3a\x7c\x8b\x4d\xa0\x43\x45\x2e\x61\x5c\xf2\x07\x2e\x1e\xf9\x18\xcd\x7b\xea\x20\x86\xb1\x1f\x6a\xd5\xb7\x80\x35\x3c\x04\xd4\x5a\x88\x03\x6c\x82\xcf\xbe\xb2\x66\x8a\xc6\x94\xa7\x63\x0b\xd5\x7a\xde\x05\xee\xe2\x56\x1d\xd7\x70\xd0\xfd\xa9\xeb\x66\x0d\xa2\x89\x66\x4b\xe8\x04\x4a\xf4\x2d\x4c\x31\x78\xe7\xa3\xae\xd2\x52\xda\xbd\xd4\x40\x29\x7a\x88\x46\x4e\x57\x28\xc3\x23\xb1\x44\x58\xe1\x8d\x8b\x14\x9c\xcb\x71\x79\x00\x74\xd0\xb7\x3b\xc3\x96\xef\x8d\xb6\xe9\x90\x8e\xe8\xd1\x5d\x29\x0d\xb9\xbd\x0a\xec\x68\xd9\x8a\x68\xb9\xb2\xf0\x48\xf9\x40\x98\xf6\x98\x43\xa3\xde\x3f\xe0\x73\x4a\x89\x84\xa1\x48\x5f\x2f\x5b\x37\x5d\xc5\x7b\xb5\x28\x29\x84\x62\xf8\x5e\x4e\x70\x39\xac\xbf\xee\x32\x4f\x03\x7e\xf4\xc7\x7f\x39\x64\x1f\xcd\x30\xb1\xe6\x81\xde\xf6\x36\x3c\x77\xd6\x8c\x79\x76\x4b\x7f\xaa\xbc\x55\xd0\x08\xa2\x89\xe0\x4a\x4b\xca\x76\xe7\x92\xd8\xde\x3a\x42\x22\xba\xe3\x0e\x08\xee\xce\xcb\x4e\x93\x42\x36\xa3\x0a\xbc\xc0\x82\x5b\xde\x4f\x75\x73\x62\x6c\xaa\x09\x1f\x1d\x73\x20\xbb\xb5\xad\xf3\x1c\x91\xa0\x79\xb2\xbf\xb6\x89\x7d\xd3\x37\xa8\x6f\xdc\x55\xef\x75\x3d\xe7\xa2\xfa\xf8\xea\x23\x24\xe5\xbe\x39\xd9\x36\x5b\xa8\xdb\xdd\x36\x23\xed\x79\x33\xb5\x43\x2f\x5b\xea\x0d\x87\xf0\x5f\x38\xa1\x52\xe0\x7a\x39\xe9\x52\x51\xcd\xd4\xec\x50\x47\xb0\x6f\x66\x55\xab\x75\x87\x06\x94\xab\x3a\x31\x15\x2c\x0e\x65\x06\x1b\x9f\xcd\x34\x72\xce\x64\x21\x84\x3a\xc4\x4c\xd4\x6c\xd4\x6e\x3a\x7c\x87\x25\x13\x16\xa0\x84\x39\x07\x24\xc9\x0d\xdb\x74\x57\x7c\x83\x28\xeb\x1a\xac\x7f\xc6\x0e\xd5\xd5\x7d\x43\x73\x5f\xb5\x39\x3c\x10\xc7\x0c\x8e\xee\x2d\xf3\xc7\x1c\x85\x75\xa5\x89\x2a\x73\x43\xca\x23\xb0\xf9\x42\xab\x11\x61\x93\x83\xed\x45\xbe\x99\x63\x04\x34\x59\x34\x5e\x21\x07\xd0\xad\x62\xd9\xcd\xb3\xd7\xf4\x81\x9e\x7d\x32\xa5\xd1\xd3\xcd\xe5\x77\x18\x55\x72\xc3\xfa\x91\xd8\xba\x0d\x46\x04\x74\x32\x39\x3f\x1c\x57\x61\x5b\x9d\xbc\xce\xcc\xe2\x74\x45\x98\x06\x73\x19\xa3\xea\x2f\x45\x39\xb7\x73\x0d\x3e\x44\x0c\xe7\xa0\x8a\xbe\x47\xd8\x5b\x9a\x1e\x6e\x92\xf0\xed\xc4\x2e\xda\x89\x39\x31\x38\xb7\x65\xee\x53\x2f\xe3\x0a\xa0\x03\x1c\xaa\x8c\x13\x12\x54\x21\xac\x99\x6c\xdd\x35\xfe\x3f\x0f\x74\x80\x37\x9b\x19\xea\x4c\x9d\xd7\x5b\x6b\xc1\xe6\x0b\xbf\xb3\xa8\x93\x0f\xda\x3b\xb2\xdb\x06\xeb\x0e\x0b\xb1\xad\x23\x38\xc4\xb6\x38\x5c\xb0\x11\xf4\x5e\x1f\xcf\xc6\x91\xd0\x20\xf3\x6a\xd9\xf0\xd4\xe0\xb5\xe2\xdc\xd2\xbe\x88\xbb\x3b\xac\xe4\x45\x67\x2a\xce\xcc\x29\x27\xcc\x68\x90\x86\x4f\x8d\x45\x71\x3e\x21\x97\x84\x97\x15\x5b\xfe\x14\x61\x5c\x54\x74\xb9\x8e\x0c\xb1\x4a\xd4\x7d\x75\xe5\xd6\x21\x57\xa9\x6d\xdd\xd0\x98\xcd\x36\x76\x33\x00\x4f\x97\x5d\xf9\x54\x27\x76\x8d\x3a\x76\x10\x26\x16\xf8\x3e\xfc\x5b\x74\xef\x63\x3d\x2d\xba\xe5\x2b\x35\xaa\x17\x64\x3e\x6a\xca\xf1\x15\x0f\x68\xb3\x1b\x3b\x17\x5d\x77\x05\x89\xb3\x33\x48\xa4\x79\x25\x41\x00\xf3\xed\x6d\x6d\x96\xab\x14\x1a\xad\xd9\x6e\xdd\x97\xd3\x15\x7e\x7b\x20\xf6\x7e\x77\x0b\x65\xae\x75\x0b\x62\xb3\x75\x8b\xc5\x70\xeb\xb6\xbe\x7b\xe3\xa0\xd5\x23\x10\x86\xc3\xc5\xc1\xb0\xef\x18\x20\xce\xe9\xb1\x2d\x9c\xc3\xd6\xed\x70\x14\xfc\xae\x7e\xa2\x2d\x47\x2c\x16\x61\x5b\x07\x1c\xfd\xf6\xb6\x01\x6e\x7b\x1e\x58\xfd\xf6\x16\x80\x8f\xdd\xd6\xba\x42\xf0\xb7\xb7\xf8\x8c\xc2\xb4\xf7\x9f\x01\xa5\xbf\xbd\xed\x85\xdd\x1f\xb5\x81\xfb\xe4\x5b\x6d\x19\xd3\x0f\x41\xb7\x6c\xdd\x22\xaf\x78\x37\xc0\xff\xf6\xf6\x3c\xeb\x7d\xf9\xf9\x42\x02\xb6\xb7\x23\x07\x0a\x1c\x48\xd4\x6e\x82\xbe\xd5\x86\x98\x1f\xf4\xa8\xf1\xe3\x48\xd4\x34\x48\xb0\x69\xf6\x3c\xaa\xdc\x29\xd8\x23\x97\x70\xc2\x3b\x24\x31\xb8\xb5\x90\x80\x59\x1f\x31\xea\xa3\x93\x51\x78\x77\xdb\x3b\x7a\x22\x24\x1a\x62\x7b\x8b\x27\xaf\xd9\x16\x49\x6a\xb3\x2d\x32\xf7\x88\x16\x65\xf1\xd9\x3b\x47\x3d\xe1\x1b\xeb\x8c\x3c\xa2\x8a\x60\xdd\xa1\x83\x8a\xf0\x64\x1b\x54\x84\x41\x45\x78\xba\x0d\x2a\xc2\x66\x1b\x54\x84\x41\x45\x08\x6a\x83\x8a\xf0\x64\x1b\x54\x84\x27\xdb\xa0\x22\xd4\x6d\x50\x11\xfa\xaf\x22\x84\x46\xc8\x6e\x6f\xd6\xdf\x12\xcd\xed\xf3\x17\xeb\x6e\x5c\xf7\xf3\xa0\x72\xe3\x61\xee\x6d\x87\x8f\x91\xa2\xef\x9c\xa8\x71\x8f\x4e\x22\x17\xec\x2d\x29\x9f\x03\x79\x39\x7e\xf9\xe2\xe0\xa0\x8a\x66\x0b\xc1\xa6\x37\xdb\xa1\x49\xa3\x36\x5b\xf4\x9d\xb1\x0b\xbf\xd0\x3f\x48\x8f\xe3\xec\x15\xae\xa2\xa5\x7c\xee\xc0\xd7\x54\x15\x09\x72\xd0\x87\x07\x44\xf8\xd6\x74\x4c\xb3\x1c\x2a\xd0\x9b\x65\xeb\x2e\x8c\xa7\x0e\x8a\x15\xdc\x01\x24\xcc\xb6\xec\xba\xed\x3a\xbd\x6d\x02\xd4\x06\x9b\x4f\xc1\xbc\x71\x57\x28\x91\x26\x4a\xe4\x60\xd3\xb5\xf9\xab\xc3\xbc\x2e\xf8\x6d\x40\xce\x60\x32\x9f\x90\xb4\x04\x97\x06\xc1\x46\x9d\x9c\x8f\x1a\xe0\xcc\xae\x58\x22\x23\xf0\x48\xfc\x8f\x99\x58\x87\xe9\x84\x25\x70\x5d\xd2\x2c\x5b\x11\x58\xb2\x44\x57\x2b\x80\xc1\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\x05\x01\xec\x0c\x4d\x76\x5a\x92\xb4\x19\xcd\x02\xd2\xf0\x9f\x78\x70\xdf\xbd\xef\x8a\xdd\x21\x91\xe4\x91\x60\x19\x24\xa6\x6a\xe0\x00\x33\x42\x3a\x48\xcf\xe6\x0c\x6e\x81\xcc\x6c\xc9\xff\x71\x70\x6c\x7e\xbb\xe9\x05\xe4\x5d\x72\x88\x6c\x6b\x86\xb6\x7b\x51\x88\x4c\xcc\x57\xcd\x8d\xe7\xea\xf6\xd7\xd9\xce\x29\x51\xe5\xd4\x29\xb7\xe6\xec\xdf\xac\xed\xd4\x01\xec\xb1\xb3\x0d\x60\x8f\x8d\x36\x58\x72\x07\x4b\xee\x01\xfd\x0c\x96\xdc\xc1\x92\x3b\x58\x72\x07\x4b\x6e\xd7\x36\x58\x72\x0f\x22\x6a\xb0\xe4\x92\xc1\x92\xbb\xb3\x0d\x96\x5c\xd7\x06\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\x0d\xec\xf1\x0c\xe4\xc6\x24\xb4\x10\x69\xf4\x74\x2e\x85\x48\x3f\x91\xcd\xc5\xfa\xc2\x13\x31\xce\x44\x42\xb1\x96\x20\xb3\x3f\x71\x18\x14\x45\x73\x0b\x05\x18\x91\x7f\x08\x0e\x36\x07\x84\xad\xdd\x99\x03\x11\x7a\x01\x58\xa6\xeb\x4c\x9d\x77\x08\x64\x1f\xb2\xc1\xec\xd3\x86\x6c\x30\x43\x36\x98\x21\x1b\xcc\xe7\xcd\x06\xb3\xa0\xca\x95\xb8\x40\xa1\x68\x77\x72\x98\x06\xc7\xbe\x07\x99\x0f\xb9\x61\x9e\x6a\x1b\xba\xb8\x3b\x3e\x66\x85\x1b\x9b\xdd\xce\x78\xea\xe0\x94\x90\xde\xb6\xe7\xd9\x19\xee\x70\x5a\x68\x9a\x42\x4a\x0a\x90\x63\x7b\x78\x04\x99\x31\x57\x61\x66\xed\x34\xbb\x19\xee\xca\x10\x7b\x92\x70\xa5\x3d\x13\x01\x3d\x1d\x3f\xeb\x4a\xfb\x55\xa2\x41\x95\x9a\x88\xad\x96\xf8\xf3\xc5\xe5\x60\x89\x63\x2f\x1c\x13\xed\x60\x4a\xdf\x07\x59\x0c\x63\x99\xf7\xd0\xfc\x76\x77\x50\x4d\xd9\xdd\x2d\xb6\x49\xc3\x17\xea\xfc\xef\x12\xe4\x8a\x88\x25\xc8\xda\x58\xe5\x6f\x5a\xe5\x30\xda\x98\x0b\xdf\xd5\xa1\x0d\x57\x4d\xaf\x67\x36\xcb\x14\x2f\xb3\x6c\x64\x7b\x5f\x67\x7b\xfe\x22\xb2\x95\x97\x84\xf9\x3e\x92\xf7\x22\x8a\x81\x3b\xa6\xfd\x37\x36\x92\x8c\xf4\xac\x62\xed\xee\x16\xd7\x3c\x11\xd1\x38\xf1\x4c\xd6\xc3\xbe\x54\xc6\xdd\xdd\x9e\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\xcf\x5e\xe9\x77\x77\x8b\x6e\x56\x8c\xed\x8a\x22\xcf\xc6\x60\xc8\xe7\xae\x28\xbc\xbb\x7d\x9e\x5a\xc3\xbb\xdb\x33\xec\x82\x98\xee\x29\xf2\xac\x7b\xe0\x28\x35\x8d\x77\xb7\x5e\x3a\xad\x3e\x49\xd8\xb3\xd7\x41\xde\xdd\xa2\xfb\x80\xc8\x33\xf8\x81\x48\x6c\x5f\x10\x79\x9e\x23\xfb\xcc\x3e\xa1\xcf\x30\x40\xa7\xea\xcd\xbb\xdb\x73\xf0\x9c\xa3\x56\x7c\xfe\x14\x59\x47\xac\x05\xbd\xbb\x1d\xbf\x4a\xf4\xee\x16\x59\x3a\x0f\xad\x2c\xfd\x14\xa1\x51\x58\xc5\xf3\xb8\x5f\x49\xeb\x5c\x7c\x0f\xab\xb8\xe0\xcf\x08\x27\xf7\x6d\x8b\x3a\xaf\x7e\x6a\x57\xc3\xae\x96\xda\xd1\xd7\x66\x05\x76\xe7\x23\x70\x15\xb1\xb3\x2c\x98\x86\x29\x10\x4d\x1f\x00\x11\x17\x02\xcb\x91\xb0\x14\x6c\xdd\x1a\xbb\xd5\x71\x7c\xb3\xc5\x4b\x05\xa9\x21\x24\x13\xe2\xa1\x2c\xfc\x51\xc1\xb0\xe2\x18\x07\x93\xf1\x44\xe4\x3e\x7e\xda\x46\xd3\x99\x13\xef\x78\xc1\xd8\xd6\x19\xb3\x9f\x23\x39\x78\x49\x3b\xa3\xea\xdf\x5b\x46\xbe\xbf\x13\xaa\xc8\xdf\x51\xfd\xe1\xe4\x0c\x7f\x78\xfe\xf7\x70\x68\x66\xb5\x04\xd6\x2f\x27\x4a\xe4\xb0\x6b\x45\xca\xdb\xab\xf3\xa9\xd9\x0d\x26\xc8\xd7\x46\x69\x4e\xdc\xa9\xf5\xa7\x9f\x51\xae\xd9\x79\x65\x8a\x9e\x10\xdc\x5f\xa8\xfb\xa5\x82\x9f\x6a\x4b\xb5\xe7\xfa\xbe\x83\x70\x44\x66\xb5\x72\x35\xb2\xc7\x7a\xb8\x27\xae\xec\xbb\xad\xc2\x57\xd5\x8c\xb3\x32\x5e\xf0\xb8\xf7\x1e\x3b\xe0\x54\xde\x99\x90\x53\x96\xa6\x80\x85\x36\xab\x57\x9d\x0a\x9f\x1a\xa3\x3e\x72\x86\xef\xb7\xf6\x4e\x38\x31\x97\x99\x12\xa3\xf5\x71\x12\xca\x7d\xf2\x03\xd0\xb6\x5a\x67\x6b\x58\xc2\x94\x59\x16\x05\x11\xd4\xaf\x7b\x57\x96\x94\x92\x29\x68\xda\x70\x62\xba\x4b\x4b\x11\xe0\x74\x8a\xbe\xd6\x36\x03\xba\xe6\x0d\x0b\x30\x99\x01\xd5\xa5\x04\x32\xa7\x1a\xc8\x19\xfe\xc4\x7a\xe1\xdd\x2a\x76\xae\x25\xe0\x5b\xef\x80\xec\xcf\x75\xa3\x45\x0e\x66\x60\xaa\xe7\xb7\xda\x3a\x81\xc3\xc5\x16\xfd\x62\xe3\x42\x0f\x77\xdb\x70\xb7\xad\xdd\x6d\x1b\x07\xef\xf9\xae\xb7\x8d\xa1\x86\x1b\x6e\xb3\x0d\x37\x5c\xa7\xc6\x69\x0e\xaa\xa0\x09\x7c\x41\x5e\x7b\xeb\x52\xb1\xb1\x80\x9e\x7c\xd5\x28\x51\x0e\x32\x8f\xea\x69\xf1\xe9\x7f\xf0\x18\x60\xbf\xa9\x87\x97\x95\xbc\x51\xbf\xb6\x41\x8c\xe5\xf0\xeb\x48\xca\x60\x4a\xbc\xe9\x44\x70\x50\xe8\xd0\x86\x0a\xcf\xdb\x18\x1c\xc7\x0a\x7f\x6d\x4c\xeb\x53\xbb\xae\x78\xba\x9e\xe8\xa7\x1e\x11\x7d\xeb\x39\x50\xae\xc8\x89\x07\x1a\x9f\xaa\xfa\x89\x3d\x0b\x55\x7f\xaa\x55\x25\xc3\x2a\x8a\xce\xfe\xcf\xff\x3d\x6f\x95\x09\xab\x09\x1a\x90\x13\x7b\xb7\x01\x39\x11\xd4\x06\xe4\xc4\x80\x9c\x88\xd1\xd7\x80\x9c\x18\x90\x13\x5b\xdb\x80\x9c\x18\x90\x13\x03\x72\x62\x40\x4e\x6c\xb6\x01\x39\x31\x20\x27\x1a\x6d\x40\x4e\x74\x27\x6b\x40\x4e\x1c\xd8\x06\xe4\x44\x4c\xe4\x44\x6d\xb8\xe8\x9b\xf5\xad\x69\xd2\x72\xd1\xc1\xa8\x7d\x6a\xaa\x59\x52\x67\xe4\xf2\x4f\xd9\x7f\xf5\xcb\x14\xd7\x34\x93\x3d\x8f\x21\xae\x69\xec\xdb\xb0\xa7\x46\xb2\xc3\xed\xb4\xba\x55\x76\xb9\x8d\x91\x9f\xd5\x20\x37\x98\xdb\xbb\x51\x59\x87\xeb\xf5\xed\xa8\xdf\xfb\x04\x11\x6a\x21\xca\x2c\x35\xc2\x6d\x95\x3d\x22\x25\x67\xde\x07\x78\x6e\xb6\x22\x17\xba\xfd\x25\xd7\x6c\x5c\x3f\x51\x05\x5f\xa2\x03\xd3\x57\x48\x09\x5f\x62\x6f\x23\xa8\xfd\x5c\x2e\x97\x45\x95\xb8\xa0\x3e\x1d\xe6\x86\x06\xd9\x7a\x07\xa6\x48\x0a\x33\xc6\x6d\xe2\x1b\x59\x72\x6e\x84\x73\xc1\x5d\x5e\x82\x60\xfa\xac\x48\x60\x9d\x92\x8e\x0f\x59\x93\x06\xce\x07\xda\x35\xea\xe5\x6f\x84\x9e\x53\x64\xa2\x94\xbb\xdc\xf9\x82\x3b\xf7\xaf\xf9\xc4\xf6\x13\x4c\x5a\xc5\xa2\x70\x45\x58\xf5\xf6\xe1\xdc\xe9\x0a\xb9\x52\xf3\xc5\x98\xc2\xfd\x41\xb3\x4c\x3c\x86\x4b\x1b\x51\xce\x75\xe4\x52\x40\x81\xa7\xed\xf1\xe0\x4a\x42\x6b\xf1\xd4\x61\x9a\xed\x50\x84\x68\xcf\x36\x14\x21\x7a\xba\x0d\x45\x88\x3e\x5d\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\x66\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\x33\x75\x7e\xee\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\x2d\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\x39\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\xe7\x01\xdb\x44\x62\x01\xcf\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\xc7\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\x3b\x7d\xc8\xb1\x53\x87\x0c\xb7\xd4\xc1\x84\xf4\xf5\x96\x8a\x9a\x22\xe4\x99\xbd\xd0\x9f\x33\x35\x48\x3f\xd2\x82\x7c\xb6\x94\x20\xfd\x49\x07\xf2\xd9\x52\x81\x0c\xde\xff\xc1\xfb\xdf\x6e\x83\xf7\x7f\xf0\xfe\x1f\xd2\xcf\xe0\xfd\x1f\xbc\xff\x83\xf7\x7f\xf0\xfe\x07\xb6\xc1\xfb\xdf\x91\xa8\xc1\xfb\xbf\xbd\x0d\xde\xff\xc1\xfb\x3f\x78\xff\x37\xda\xe0\xfd\x0f\x22\xb0\xa7\xde\xff\x38\xe9\x35\x62\x9e\xc8\x3e\xa5\xd5\xe8\x43\x4a\x8d\xcf\x95\x4e\xa3\x77\xa9\x34\x06\x13\xf4\x7e\xd4\xc5\x49\x9b\x11\xf3\x08\xf7\x3b\x5d\x46\x9f\x53\x65\xf4\x34\x4d\xc6\xf3\xa4\xc8\x78\xce\xf4\x18\xc1\x67\x36\xea\x69\x2d\x44\x7a\xc9\x35\xf3\xae\xbb\xc3\xcf\x69\xeb\x74\xbe\xc1\x3f\xa6\x60\xcf\x58\xeb\xc0\x34\x73\x0e\xc8\x32\x03\xe5\x42\xee\xe9\x52\xb0\x94\x14\xa5\xd6\x36\x8a\xd9\x9d\x4f\xbf\xf1\x69\x6e\xb3\x0e\x8c\xc8\x3f\x04\x87\x11\x01\x9d\x4c\xcc\xe6\xc6\x78\x7e\xa1\x17\x20\xcd\xe3\x67\xea\xbc\x83\x4f\x31\x48\x3e\x0b\x33\xed\x15\x12\x66\x20\xbf\x88\x2c\x15\xe8\x1f\x77\xa9\x20\xa4\x75\xcb\x5b\xea\x11\xc8\xe0\xbe\xb0\xc7\x4f\x0b\x97\x41\x00\x8f\xbd\x0d\xe1\xef\x7a\x43\x62\xae\x88\xd6\x06\x82\x86\x9b\x63\x47\xbe\x88\x11\x99\x96\x9a\x30\x8d\x49\x16\x92\x85\x10\xaa\x2b\x77\x71\x01\xdf\xf8\x22\x4b\x26\xac\x39\x5d\x70\xc0\x0c\x0e\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\x4d\x4e\xa3\x6c\x3a\x85\x8e\xc3\xce\x8c\x88\x45\x93\x45\xe3\x15\x72\x00\x6d\x5d\x73\x3e\x62\xbc\x71\x88\x9b\x3a\xd3\x99\x8f\x1f\xee\x38\xb6\xe9\x0c\x94\x1e\xed\xcc\xde\xb2\x7b\x2f\x58\x9e\x70\xde\xd5\x28\x95\x88\xbc\x28\x35\x18\x39\xbe\xcc\xcd\x6e\x62\x1a\x71\x35\xc8\x8c\xa4\x28\xe7\x76\xc2\x7d\xc2\x0c\x3b\x11\x75\x36\x16\x9e\xa2\x6e\xd6\xf9\xe2\x3f\xb1\x2b\x77\xe2\x85\x77\x43\x04\x9b\x55\xc9\x56\xc8\x82\xaa\x26\x20\xa8\xbe\x57\x9f\x48\x36\xf4\x3f\x03\x6e\x56\x33\xf0\x99\x6a\x48\x38\x0b\x36\x5f\xf8\xcd\x66\xb4\x63\xb4\x29\xb4\x36\xe9\x97\x9e\xa5\xc3\x9c\x5c\x77\x86\x50\x5c\xa9\x77\xbc\x9d\xf1\x94\xfc\x05\xbf\x85\x74\x3d\x76\x1d\xf7\x81\x35\x1a\xd0\x34\x35\x82\x08\xc8\xb1\x3d\x41\x82\xcc\x98\x53\x91\xd6\x8e\xb4\x9b\xe1\xae\xac\xb1\x1f\x99\x16\xd6\x76\x5c\x40\x4f\x76\xe6\x3b\x76\x10\xc3\xc7\xb6\xf6\x2a\xd1\xb4\x95\xf7\x6e\x9a\x27\xe4\xd2\x4a\x44\x9e\x7f\x19\xd5\x7d\xb4\x91\x4b\x6c\xf3\x54\xdb\x99\xe9\x01\x1a\x22\x8e\xa3\x36\x46\x7a\x0e\x12\xd1\xaf\x1a\x2d\x4d\x07\xf9\x3c\x35\x94\x3e\x43\xba\x0e\x72\x9c\x94\x1d\x64\xa8\xdf\xd3\x2f\x10\x0f\x19\xea\xf7\xf4\x0c\xd4\x43\x86\xfa\x3d\x43\xfd\x9e\xee\xad\x0f\xa0\x1f\x32\xd4\xef\xe9\x01\x08\x88\x0c\xf5\x7b\xf6\x69\x43\xfd\x9e\xa1\x7e\xcf\x66\x1b\xea\xf7\x0c\xf5\x7b\x1a\x6d\xa8\xdf\xd3\x9d\xac\xde\x01\x89\x48\x8f\xc1\x44\x64\xa8\xdf\x13\xb9\x7e\x4f\xbc\x20\x6e\xf2\x0c\x27\xf7\xd8\x69\x46\x48\x5f\xa2\xb9\x49\xcf\xd3\x8d\x90\xbe\x85\x74\x93\xde\x85\x75\x93\x23\x85\x76\x93\x3e\xa5\x1f\x21\xc7\x4e\x41\x42\xbe\x90\x00\x6f\xd2\xc7\x10\xc2\x2f\xa3\x50\x55\xd4\xd4\x24\xe4\x39\x6e\xb5\xe3\xa7\x28\x21\x5f\xfb\xc5\x16\x31\x55\x09\x19\xee\xb6\x7d\xda\x97\x70\xb7\x3d\x77\xea\x12\xd2\x83\xf4\x25\x64\xb8\xe1\x42\x09\xea\xfb\x0d\x17\x35\xad\x09\xf9\x3c\x5e\xfb\xcf\x99\xde\x84\xf4\x26\xc5\x09\xf9\x9c\x69\x4e\x48\xaf\x52\x9d\x90\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\x67\x38\xb5\x7d\x4a\xd1\x42\x7a\x92\xa6\x85\x7c\xc6\x54\x2d\xa4\x8f\xe9\x5a\xc8\x60\x6e\xef\x4c\x65\x9c\x14\x2e\xe4\x19\x8e\x7a\xbf\x53\xb9\x90\x9e\xa7\x73\x21\xfd\x4d\xe9\x42\x9e\x2d\xad\x0b\x79\xe6\xd4\x2e\x24\xd6\xb9\xb6\x61\xbf\x7d\x49\x9a\x64\xa9\xd9\x88\x56\xf6\xe7\xe4\xe9\x64\x04\x61\x9a\xad\x3b\x34\x92\xf2\x39\x90\x97\xe3\x97\x2f\x5e\x84\xc7\x43\x33\xae\x61\x0e\x21\xd6\xcb\x99\x90\x39\xd5\xd8\xd3\xef\x7f\xd7\xa9\x9f\xe8\x6c\x7b\x57\xee\x8c\xfe\xe5\x94\x71\x36\x91\x76\x4e\x8f\x96\xf4\xbf\x23\xc1\x0b\x6a\x05\xe6\xb4\xe6\xa0\x49\x67\xdf\x40\x23\x8b\x89\x66\x39\x8c\x3c\xef\xb7\xe8\x0d\x0f\x55\x70\xa9\x6d\x52\x22\xb8\x13\xd9\x0c\xbb\xeb\xba\xf7\xba\xbf\x72\x02\x54\x61\x36\x89\x29\x98\xd7\xee\x38\x3e\xd5\x36\x67\x52\x21\x18\xd7\xde\xd0\x63\xde\x19\xfc\x86\x70\x09\x99\xd2\x12\xac\x05\xb5\x46\x63\x95\x45\x4a\x35\x9c\x87\xa8\x8a\x6a\xa5\x34\xe4\x98\x97\xc7\x48\x7a\x14\x61\x4a\x44\xcb\x15\x42\x55\x96\xc0\x75\x49\xb3\x6c\x45\x60\xc9\x1c\xd2\xc8\x0c\x8f\x38\x2b\xa6\x55\xd0\xcc\xff\x65\x01\xc8\x41\x24\x58\x08\x55\x99\x69\x56\x64\x75\x4a\x17\xbb\xfc\x99\x35\xc9\xcd\x5c\x06\xa3\x36\x3f\x33\x34\xd2\x64\xd1\x91\x80\x35\x6e\x88\x54\x18\x06\x24\x15\xde\x71\x36\x69\x0f\x7a\x84\x8d\xaa\xa0\x2a\x5b\x9d\x4d\xa0\xc4\xbe\xfc\xec\x2a\x01\xf7\xcf\x1b\x14\x80\xda\x18\x41\x45\xce\x8c\xdc\x94\xad\x1c\x52\xae\x75\x11\xb5\x04\xae\xce\xc3\x5a\x7f\xc2\x12\xbc\xb2\x36\x67\x4b\xe0\xb5\xb4\x76\xa6\xce\xcf\xbd\xd6\xb8\x2e\x85\x76\x1e\x33\x44\x7a\xed\x7e\xc3\x1e\x2a\x75\xae\x49\x8d\x9d\xc7\xdd\x22\x6d\xfe\x7b\x43\x2a\xfb\x8f\xa7\xe5\xcd\xce\x43\x5b\xd6\xe6\x33\x5a\x35\xb6\x55\x2d\x67\x76\xec\xbb\x27\x99\x79\xc2\x93\xac\xc4\xf0\xc8\x46\x4b\xae\xf2\xcc\xd5\xa7\x3e\x43\x52\x95\x23\x24\x54\x19\xaa\x20\x0d\x55\x90\xda\x6d\xa8\x82\x34\x54\x41\x3a\xa4\x9f\xa1\x0a\xd2\x50\x05\x69\xa8\x82\x34\x54\x41\x0a\x6c\x3d\x82\xec\xf4\x12\xae\xd3\x37\xa8\xce\x50\x05\x29\xa8\x0d\x55\x90\x86\x2a\x48\x43\x15\xa4\x46\x1b\xaa\x20\x85\x1c\xcd\x78\xe1\xdc\x31\x4f\xe5\xb1\x93\x93\xf4\x22\x7e\xbb\xcf\x49\x49\x7a\x15\xb4\xdd\xaf\x80\xed\x63\x04\x6b\xf7\x26\x09\xc9\x51\x13\x90\x7c\x09\xa1\xd9\x43\x69\xaf\xbd\x5a\xd4\x44\x23\x51\x6f\xa6\xe3\x27\x18\xf9\x6a\x2f\xa7\x88\x89\x45\x86\xfb\x69\x67\xeb\xfb\xfd\xf4\xdc\x89\x44\x8e\x9d\x44\x64\xb8\xa5\x0e\x26\xa4\xaf\xb7\x54\xd4\x64\x21\xcf\xec\x85\xfe\x9c\x49\x42\xfa\x91\x20\xe4\xb3\x25\x07\xe9\x4f\x62\x90\xcf\x96\x14\x64\xf0\xfe\x0f\xde\xff\x76\x1b\xbc\xff\x83\xf7\xff\x90\x7e\x06\xef\xff\xe0\xfd\x1f\xbc\xff\x83\xf7\x3f\xb0\x0d\xde\xff\x8e\x44\x0d\xde\xff\xed\x6d\xf0\xfe\x0f\xde\xff\xc1\xfb\xbf\xd1\x06\xef\x7f\x10\x81\x3d\xf5\xfe\xc7\x49\xb4\x11\xf3\x44\xf6\x29\xc1\x46\x1f\x92\x6b\x7c\xae\xc4\x1a\xbd\x4b\xaa\x31\x98\xa0\xf7\xa3\x2e\x4e\x02\x8d\x98\x47\xb8\xdf\x89\x33\xfa\x9c\x34\xa3\xa7\x09\x33\x9e\x27\x59\xc6\x73\x26\xca\x08\x3e\xb3\xd1\x4e\x2b\x2d\xb5\xc8\x45\xc9\xf5\x1d\xc8\x25\x4b\xe0\x32\x49\xcc\x5f\xf7\xe2\x01\x0e\xcc\x90\xd0\x3a\xa2\x97\x9f\xe8\x96\x30\x9e\xb2\x04\x6d\x93\x8f\x0b\xd0\x0b\x17\x82\x88\xcf\x11\x6a\x1f\x24\x1a\x9f\xac\x4f\x28\xd2\x69\xee\x58\x8c\x92\xc7\xae\x0f\x5d\x02\x3b\x43\x53\x21\x32\xa0\x87\x38\xcc\x9d\xcc\x08\xf2\x40\x46\x1d\xc6\xb3\x7e\x70\xa2\x44\x3d\x3a\x99\x42\x26\xf8\xdc\xc5\xe3\x3b\xae\x73\xe8\x2e\x7c\x5d\x77\xe7\x1c\xca\x49\x29\x25\x70\x9d\xad\x70\x9a\xd3\x14\x52\x82\xe6\xa9\x5c\x2c\x0f\xdf\xe4\xf7\xc8\x8e\xbc\x0e\x4f\x35\xc9\x80\x9a\xf7\xe0\x50\xbf\x88\x61\x68\x94\xdc\x76\xa0\xbd\xf2\x80\xdb\x84\x0c\x9d\xd6\xff\xf0\x1b\xbb\xd3\x1d\xdd\x3e\x0d\x5e\x2f\x43\x29\x2d\x41\x23\x5f\x63\x3e\x90\x41\xae\x44\x49\x1e\xa9\x55\xa5\x64\xc9\x91\xa5\xe2\x44\x75\x58\xe4\x00\xa5\xa3\xbb\x31\x7e\x8c\xf7\xd2\x81\x3f\x0b\x31\x8e\x53\x39\xef\x24\x3a\xc5\x90\x25\x2e\xe5\xbc\xb4\x9a\xa2\x3b\x8a\xc0\xb5\x5c\x61\x6e\x91\x6e\xf7\xc2\xfd\xa2\x75\x42\x72\x3a\x87\x53\x45\x5e\xbf\x7d\x63\x6e\x1d\xc4\x49\xb1\x99\x95\xd9\xdd\x2d\x54\x48\xb1\x64\x69\xd7\x6b\xe8\x03\x95\x8c\x4e\x33\xa3\xf5\xce\x40\x02\x37\x92\xf4\x6f\xce\x3e\x5c\xbe\xff\xdb\xcd\xe5\xdb\xab\x73\xd4\x7f\xe1\x63\x41\xb9\x61\x07\xa5\xaa\xb3\x1c\x39\x0a\x4f\x15\x01\xbe\x64\x52\x70\x33\x0b\x68\x37\xa4\x64\xe9\x3a\xed\x44\x51\x0d\x6f\x91\xa0\x44\xb6\x84\xd4\xe6\x25\xa9\x08\xac\x41\x46\x45\xa9\xbd\x05\xd5\x23\x84\x4a\x9e\x2c\x28\x9f\x43\x3a\x21\x6f\x44\x69\x5e\xec\x37\xbf\xc1\x97\x90\x90\x96\x09\x74\xd3\x71\xac\x09\xde\x9e\xdc\xdf\x8c\xbc\xcc\x62\x6e\x7f\x44\x08\x11\x50\x09\x2d\xfc\xd4\x34\x67\x4f\xad\xb8\xa6\x1f\x5f\xd9\xbc\x26\x27\xbf\x69\x7c\x75\xd2\x1d\x5e\x57\x48\x61\x5e\xc5\xca\x82\xf6\xed\x33\xa6\x41\xd2\x8c\x9c\x34\x47\x98\x90\x2b\x43\x17\xa4\xcd\xb5\xb5\x89\x7d\x60\x09\x12\x6d\xab\x6e\x65\x47\x44\xc2\x9c\xca\x34\x03\xd5\xcd\x28\x24\x66\xd5\x15\x6e\x4d\x2d\x6e\x57\x41\x65\x33\xe6\x42\x4f\x42\x19\xb7\x6f\x6f\x05\x26\x8e\x99\x89\x57\x64\xa1\x75\xa1\x5e\x5d\x5c\xd4\x52\xd0\x84\x89\x8b\x54\x24\xea\x42\x53\xf5\xa0\x2e\x18\x37\xcc\x6f\x9c\x52\x4d\xc7\x0d\xae\x7b\x61\x65\xe3\x71\x22\xf2\x9c\xf2\x74\x4c\xdd\x39\x1e\x57\x3b\xfb\xe2\xd7\x4e\x7a\x1c\xd3\xea\x29\xc6\xc7\x74\xac\x16\xd0\x69\xe5\xc2\x14\xc5\x00\x05\x31\x50\xc8\x8c\xac\x10\xba\xb9\x3c\x16\xc3\xbe\xaa\xf8\xb3\x5d\x8a\x09\xb9\x11\xda\xe5\x7e\x72\xb8\x4f\xbc\x6d\x71\x95\x63\xb2\xf0\xab\x9b\xfb\xf7\x7f\xbd\x7d\x77\x7d\x73\x3f\x70\xf2\x81\x93\x63\x1b\x38\xf9\xc0\xc9\x3b\x0c\xdc\x17\x4e\x0e\x7c\x79\x2c\x2e\xee\x95\xe2\x06\xc7\xaa\xb6\xaa\x0b\x67\xa8\xc0\xe8\xd5\x3e\xe8\xb6\x45\xa3\xec\xf4\xa3\xed\x98\xd6\x64\x5f\xf1\xe5\x07\xda\x46\x9c\xf0\xad\x53\x48\xdc\x03\x56\x43\x7f\x1d\x36\x81\xc1\x9e\xaf\x50\x5c\x58\x27\x85\xd4\xb6\x70\xcc\x96\x19\xba\xbb\xc1\xbb\xb5\x7c\x37\x34\xaf\xcc\xad\xdb\x56\x6d\x42\xde\x7a\x7b\x0b\x79\xfd\xb7\xeb\x37\x57\x37\xf7\xd7\xdf\x5c\x5f\xbd\xef\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\x93\x80\xa9\x89\xc5\xc9\xbe\x91\x22\x8f\xc4\xcd\xee\x30\xc7\x62\x15\x74\xb7\xed\xa8\x9e\x3a\x8c\x78\x4b\xde\x76\x9a\x63\x15\xf6\x66\x3e\x0f\x0c\x7d\x8b\x02\x4e\x89\x83\x6f\x4e\x04\x9f\xb1\xf9\x5b\x5a\x7c\x0f\xab\xf7\x30\x0b\x73\x89\xb7\xe7\x1b\xbd\x83\x0e\x65\x8b\x7e\x48\x23\xd9\xd8\xc1\xc2\x3c\x84\xd1\xb0\x3d\xb1\x10\xf0\xe1\xe8\xf7\x78\x60\xf5\x28\x40\xf5\xd6\x42\xba\xd0\xe1\x3a\x76\x36\x56\x1c\x43\x14\xfc\x63\x98\xc0\xe7\x5b\x7c\x10\x72\x53\x7a\x74\xd7\x43\x14\x2c\xf7\x7d\x9d\xa0\x9d\x29\x02\xb3\x19\x24\x9a\x2d\x21\xab\x92\xba\xa7\x23\x32\x2d\xb5\x4f\xa7\x3e\xa5\xc9\xc3\x23\x95\xa9\x22\x89\xc8\x0b\xaa\xd9\x94\x65\x4c\xaf\x08\x8b\x51\x12\xcc\x79\xe4\x5d\x8e\x78\x0f\x65\xe6\x4a\x53\xbc\x0a\x85\xb3\xb7\x99\xd5\xb6\x50\x05\xea\xe3\xd0\x2c\x37\xf5\xb9\xd1\xa3\x90\x92\x0b\xa5\x49\x02\xd2\x08\x75\xd9\x8a\x3c\x4a\x11\xa3\x6c\xc7\xbe\x36\x93\x44\xf0\x04\x0a\xad\x2e\xc4\xd2\xc8\x82\xf0\x78\xf1\x28\xe4\x03\xe3\xf3\xb1\x79\xf1\xb1\x65\x56\xea\x02\x21\x24\x17\xbf\xc6\xff\xf4\xe9\x14\x11\x1f\x1e\xfc\x8a\x9c\x9c\x04\xf6\x25\x0a\x8b\x96\x8c\x7c\x2a\xef\x10\x87\xb3\x6a\x89\x4e\xd5\x85\x62\x44\x1f\xa6\x15\xf2\x29\xef\x05\x77\x5a\x40\xa4\x69\x3e\x1c\xbf\xb0\xd9\x9e\xab\x32\x1a\xb2\x83\xb8\xb7\x77\x30\x0f\xac\xaf\x7f\xcb\xac\x1c\x2b\x2c\x44\xfa\x8a\xa8\xb2\x28\x84\xd4\x8a\xe4\xa0\x69\x4a\x35\x9d\x98\x03\x31\x6a\xff\x89\x48\xab\x11\xf9\x7b\xf5\xa1\x4d\x4e\xf0\xe3\xe9\xbf\x7f\x7f\xf5\xd7\xff\x38\xfd\xe9\xef\xcd\xef\x50\x5c\xb3\x41\x3c\x8d\x07\x02\x5f\x41\x15\x90\x4c\xb8\x48\xe1\x06\xa9\xc3\x3f\x55\x0b\x57\xe3\xbe\xd0\x54\x97\x6a\xb2\x10\x4a\x5f\xdf\x56\x7f\x16\x22\x5d\xff\x2b\x30\x94\xa8\x87\x72\x0f\xae\xed\x2d\xd5\xdd\x93\xe2\x93\xa8\xd2\x0f\x2d\xd8\x07\x90\xaa\x73\x99\x99\x66\x6b\x9d\x07\xd7\x6b\x95\xbd\x3f\x59\x40\x4e\xf1\x9f\xdf\xf8\x29\x30\xf7\xf1\xa3\x64\x5a\x23\xd4\xca\xd5\xd4\x10\xb3\x91\x67\xad\x56\xa9\x5a\xbe\x0c\xae\x29\x17\x95\xf3\x57\x2b\x18\x79\xc2\x70\x46\xdc\x6c\x59\x0e\x50\xe7\x5e\xd9\x40\x56\x5e\xde\x5e\x93\xa5\x9d\xe1\x1e\x4d\xce\x73\xb1\x6b\x9f\xef\xff\x9b\x5e\xb3\x6d\x4f\xa5\x5f\xc4\xca\x5e\xf6\xca\x06\x71\x54\x55\x0b\x48\xc6\x72\xe6\x22\x17\x0d\x67\x01\xa5\x43\x65\x9b\x33\xdb\xe5\x24\x29\xca\x91\xeb\x7e\x92\x43\x2e\xe4\xaa\xfa\x13\x8a\x05\xe4\x20\x69\x36\x56\x5a\x48\x3a\x87\x51\x35\xb8\xfd\x59\xf5\x97\xfd\x61\x8b\xbc\xcd\x5f\x5b\x83\x64\x8d\xc9\x73\x57\x54\x68\x20\x4a\x0f\x59\xb6\x5f\xb7\x9e\x70\xec\x6a\x5b\xdd\xc4\x57\xe4\x4e\x2b\x57\x8a\x55\x13\xab\x59\x44\x2b\xd0\x52\x64\x65\x0e\x6a\x54\x09\xac\xd6\x54\xc9\x97\x64\x49\xa5\x3a\xed\x0f\x1f\x22\x24\x65\x4b\xa6\x62\x04\x58\x6f\x91\xa8\x99\xcb\x55\x20\x4a\x5d\x94\xda\xd5\x97\xab\xfc\x1e\x1f\x0b\xa1\xd0\xc0\x59\x95\x28\x69\xdd\x66\x2f\x43\x95\x05\x42\x0a\xaa\x35\x48\xfe\x8a\xfc\xef\xb3\xff\xfc\xed\xcf\xe3\xf3\x3f\x9d\x9d\xfd\xf8\x62\xfc\x6f\x3f\xfd\xf6\xec\x3f\x27\xf8\x8f\x7f\x3e\xff\xd3\xf9\xcf\xfe\x8f\xdf\x9e\x9f\x9f\x9d\xfd\xf8\xfd\xdb\x6f\xef\x6f\xaf\x7e\x62\xe7\x3f\xff\xc8\xcb\xfc\xc1\xfe\xf5\xf3\xd9\x8f\x70\xf5\xd3\x9e\x9d\x9c\x9f\xff\xe9\x37\xc1\xa4\x53\xbe\x7a\x17\xc8\xbd\x6d\x1b\x47\x2b\x0f\xb8\xde\x63\x24\xed\xb0\x75\x15\x32\xae\xc7\x42\x8e\x6d\xd7\xaf\x88\x96\x65\xa8\x06\xef\xb7\x57\xec\xf3\xff\xde\x73\xcd\xfa\x36\xab\xa4\x90\x1e\x1d\xf0\xe7\x12\x34\x14\x24\x12\xf4\xe7\xb0\xec\xda\x91\xbc\x60\xb7\x16\xef\xf5\xb5\xdd\xa0\xbf\x04\x63\x6f\x55\xa5\x0c\xd7\xb5\x16\xdd\x67\x52\xe4\x13\xd2\xf0\x7c\x2f\x31\xab\x85\x7b\xee\x01\x02\x13\x02\x92\xc1\x38\x1c\xd2\x06\xe3\xf0\x0e\x52\x06\xe3\x70\x50\xfb\x22\x8d\xc3\x77\x96\x27\xfd\x22\x2d\xc3\x9b\xd0\x43\xd3\xe9\x43\xe7\x84\xc9\x9d\x31\x5d\xbb\x30\x90\x39\x2d\xba\x00\x20\xbb\xe2\x01\x62\x82\x20\xbd\xd9\x43\x0b\x52\x88\xa2\xcc\xa8\xde\x01\xfc\x89\x84\x88\xac\x52\x37\x7b\x58\x53\x0d\x9a\xb7\x22\x6d\xbe\x1d\x86\x46\x2e\xb3\x8c\x30\x6e\x2f\x68\xd3\x41\xa7\xd1\x3d\x7a\x48\x82\xb5\x87\x10\x6a\x61\x8c\x4b\xf3\xaa\x8f\xae\xc4\x71\x13\x7f\xaf\x88\xd2\x54\x6a\xc6\xe7\x13\x5b\x02\xd9\x8a\x89\x0e\xa2\xc2\x78\x55\x08\xb9\x13\x39\x95\x1a\x5a\xa5\x18\xd9\xa8\x0f\x6f\xc3\xa3\x95\xf6\xd3\x83\x6f\xa0\xe9\x03\x42\xc4\x12\x48\x81\x27\x1d\xc1\x46\x1f\x6c\x4a\x13\xbf\x0e\xd3\x95\x99\x89\x2b\xbe\x74\xf7\x17\x49\x4b\x0b\x93\xb6\x22\x54\xbc\x71\xbf\x2e\x4c\xac\x39\xc3\x0e\x8c\xd3\x80\xc6\xa2\xb4\x59\x19\x1c\xab\x14\x6c\x95\x87\xaf\xdb\xee\x0d\xd6\x1e\xc2\x65\xf5\x0a\x61\x13\xa4\x84\x6d\x08\xe9\xb5\xeb\xb3\x2d\x9c\x7f\x0d\xa0\xa4\x70\xb1\x3d\xae\xc8\xfe\x1c\xe2\x7a\x5f\x44\xf5\x9e\x88\xe9\xcf\x23\xa2\xf7\x53\x3c\x8f\x26\x9a\xc7\x11\xcb\xe3\x88\xe4\x07\x60\x35\x62\x8a\xe1\x71\x44\xf0\xe7\x30\xc0\x15\x12\x66\xec\x63\x24\x8e\x7f\xc9\x6b\x2f\x05\x4b\x81\x6b\x36\x63\x66\x5e\x85\x19\xa6\x00\x8e\xe7\x17\x68\x62\xb3\xc1\x38\xb9\xb3\x86\x5b\xf6\x31\x52\xc1\x9a\x8c\xe2\x5e\x8a\x77\xdb\xcc\x55\xc3\x8d\x48\x86\x1b\xf1\x80\x36\xdc\x88\xc3\x8d\xf8\x59\x6e\x44\xc7\xad\xbe\xfe\xeb\x30\x72\x20\x2c\x86\xf8\x1f\xcb\x0a\xf4\xba\x9d\x69\x00\x39\xf3\x73\x06\x63\x57\x47\xb1\x4e\x48\x75\x81\x23\x77\x3b\x71\x6d\x26\x5b\xc9\x14\x5a\x58\xb6\x47\x16\x6c\x6e\xb6\x67\x06\x4b\xc8\x9c\xea\x4a\x72\xca\xe9\xdc\x66\x98\xd5\xa2\xaa\x03\x25\x24\x16\x90\x91\xac\x63\x72\xbb\xb5\x94\x0d\x68\x1a\x32\x5c\x26\x13\x34\xc5\x2f\xa5\xc8\x32\x90\x8a\x64\xec\x01\xc8\x1b\x28\x32\xb1\x72\x49\x62\x79\x4a\xee\x34\xd5\x30\x2b\xb3\x3b\xd0\x9d\x50\x95\x41\x1c\x07\x09\xbe\x2d\xb3\xec\x56\x64\x2c\xe9\xe4\x82\x8b\xb1\x15\xaf\x71\x03\x16\x65\x96\x91\x02\x09\xe9\xb6\x0f\xdf\x71\xbc\xca\x2f\xb3\x47\xba\x52\x23\x72\x03\x4b\x90\x23\x72\x3d\xbb\x11\xfa\xd6\x5a\x67\xba\xf5\xdb\x8c\x25\xb3\x9d\x13\x36\x23\xaf\xb0\x3a\x86\x26\x9a\xce\xd1\x56\xe8\x31\x80\x23\xb3\xa1\x9a\x83\x12\x61\x18\xe5\x23\x53\xc7\x34\x9a\x85\x9f\xd2\x5f\xe3\xe8\xe6\xea\xec\x7c\x6a\x83\xf6\x6a\xc6\x66\x90\xac\x92\xec\x68\x0c\xf3\x32\x41\x58\x76\x9d\x8b\xb7\xc1\x4e\xd4\x4a\x69\xc8\x7d\xba\x41\xb4\x95\x32\x4e\x24\xa8\x42\x70\x85\x52\x5e\xcd\x25\xaa\x17\xb1\xb6\xe7\x8e\x58\xea\x88\xa6\xd4\xce\x8a\x41\xa8\x4a\x50\x08\xa5\xef\x34\x95\xba\xab\x7c\x12\x4b\x17\xb8\xf5\x84\x98\x93\x9c\xd0\x2c\x83\x94\xb0\x3c\x87\x94\x51\x6d\xe4\x76\x3a\xd3\x98\x64\xb2\xe5\x1d\x48\x24\xe0\xbc\xfb\x9a\x07\x0b\xca\xd3\x0c\x24\x99\x51\x96\xa9\xee\x90\xfd\x0d\x2f\x84\x06\x99\x33\x8e\x6e\x01\x0b\xfd\x44\xb7\x84\xf9\x2b\x49\x84\x4c\x5d\x3a\x47\xa6\x95\xff\x2a\x88\x89\x9a\xf6\x0e\x25\xbb\xc6\xf6\x5e\x47\xce\x92\x69\x26\x92\x07\x45\x4a\xae\x59\x66\x5f\x5e\x88\x07\xd4\x5f\x32\x64\x27\x9d\x87\xee\xce\xa5\xaa\x7f\x8e\xab\x03\x36\x36\x54\xa9\x8b\x5f\xd7\x5f\xe1\x07\x1d\x89\x8b\xa0\x45\xc7\xd0\xa1\xe1\x23\x24\xd1\x32\x21\x5f\x7d\x84\xa4\x95\x87\xdc\xe5\xb9\xb1\x65\x2b\x31\xb7\x55\x24\xe7\x9f\x6d\x3d\x2b\xab\x16\x90\x53\xac\xd9\x62\xe3\x6a\x5e\xbb\x45\x70\x15\x95\xfc\x9a\x64\x8c\x43\x7b\x61\x14\x4b\xa1\xbd\x38\xd6\x9f\xe8\x94\x5c\x92\x32\x89\x29\xa0\x57\x3e\x5a\x3c\x98\x34\x4f\x0b\x66\x49\x16\x42\x93\xb3\xd3\x8b\xd3\xf3\x8d\x3d\x72\x6a\x64\xf3\x0c\xec\xb5\x38\x71\x99\xcd\xaa\x97\x52\x2c\x2f\xb2\x15\xbe\xc7\x69\x3a\x22\x4c\xc7\x00\xea\x98\xdb\x50\x96\xdc\xcf\x8a\xcb\xc4\x36\x22\x4a\x10\x2d\xa9\xaf\x7c\x60\x3f\x35\x0f\x69\x59\xba\x0b\xfd\xec\xf4\xe7\xd3\x11\x01\x9d\x9c\x93\x47\xac\x49\x6b\xa6\x6f\x42\xee\x05\x29\x55\xf8\x8c\x55\x84\xac\x44\x49\x38\x80\x3b\x5b\x45\xc6\x12\xa6\xb3\x15\x5e\x37\x44\x94\xda\x26\x02\xa5\x3a\x24\x83\x5c\xb3\x5d\x7d\x64\xda\x05\x6d\x19\xfe\xfd\x02\x77\x93\xbd\xb2\x08\x35\xca\xc8\x12\x2e\x16\x40\x33\xbd\xb0\x21\x05\x5c\xf0\xf1\x3f\x40\x0a\xcc\x32\xc7\xdd\x37\x5f\x5d\x15\xbf\x88\x68\xa2\x67\x4a\x78\x6f\xae\xbd\x6f\xa1\xb3\x48\x44\xd6\xf9\xd1\x77\xf7\xf7\xb7\xdf\x82\x6e\x72\x79\x8e\x1f\x92\x6f\xaf\xee\x7d\x20\x09\x1a\xe0\x41\xce\x84\xcc\x7b\xc0\xde\xe3\x20\x5c\xc7\xa4\x10\xb2\x0f\xb7\xcc\x42\xa8\xa0\xe5\x24\xcf\x70\xc5\x7c\x27\x94\x46\x93\x8f\xd3\x4d\x38\x96\x12\x17\xed\xa8\x08\x07\x81\x26\xd7\xb7\x13\xf2\x57\x51\x9a\x09\x99\xd2\x69\xb6\xaa\xf2\x4c\x2b\x08\xaf\xde\x78\x62\x48\x39\x31\x37\x88\xd9\xf9\xdf\x01\x4d\x41\x2a\x64\xd0\x40\x23\x55\xcf\x89\x70\xdc\x1b\xb4\x45\x5d\xca\xd7\xa5\xd2\x22\x27\x0b\xf7\xda\xed\x0c\x74\xee\x70\x4e\xec\x71\x75\x69\x88\x24\x14\x96\x89\xbb\xdf\x7c\x75\x2c\x7a\x83\x7b\xd9\x79\x77\x9f\x4f\xad\x98\xda\x9c\x36\xe7\xe0\xb0\x09\x6e\x1c\x6f\x33\x5b\x35\x1a\xf8\xb4\x97\x75\x4a\x3b\xe7\xa6\x5b\xef\x08\x9d\x3d\xc1\x3d\xc5\xad\x52\x1a\x07\xef\x4e\x9e\xad\x2a\xa3\x11\x68\xdd\xe6\xb3\x36\xe8\xee\xd6\xf3\x6d\x9d\x33\x55\xc1\x15\x13\xca\x05\x67\x09\xcd\xd8\x3f\x20\x25\x65\x21\xb8\x0b\x70\x43\xc9\x36\xa1\x0a\xc6\x88\xd3\xe4\xda\x95\x8a\xaa\xb3\xa4\x19\xee\xa0\x85\x40\x71\x0f\x51\x69\x86\xdd\x5b\xaa\xfb\x5b\x8c\xf3\x19\x56\x7d\x63\xb1\xe2\xec\x78\xf2\x45\x88\x93\xc4\x46\x26\x06\x47\xc5\x6f\xc6\xc4\x6b\x41\x68\x92\x60\x1e\x38\x7b\x5d\x21\xe3\x55\x20\x97\xe1\xfb\x2b\xda\xbc\x1a\x11\xb0\x6f\xb2\x97\xc5\x1c\x48\xc2\xcb\x7c\x0a\xb2\x4e\x28\x22\xf5\xe6\x9c\x46\xb1\xba\xb8\x61\xed\x70\xde\x4b\xeb\x65\x0c\xca\xe7\x40\x5e\x9a\x91\xff\xf8\x87\x3f\xfc\xfe\x0f\x11\xc6\x31\xaf\x57\x41\xb9\x39\xb9\xbe\xbc\xb9\xfc\xdb\xdd\x87\xd7\x98\xa6\x30\xb4\xfb\x48\x91\xaa\xb1\xe3\x54\xa3\x46\xa9\x3e\x6b\x8c\x2a\x26\xfc\x08\xe6\xb2\xb1\x8f\xc4\x1d\x52\x65\x36\x61\xa9\x6c\x6a\x43\xa7\x93\x34\x8a\x15\x19\x35\x2a\x7c\x77\x36\x9d\x79\x86\x61\xf5\x82\x53\xa9\x0c\xa0\x88\xa6\xf1\xdf\x99\xde\xda\xf5\xc1\xd3\x52\xda\xa2\x41\x95\xf3\xaa\xb6\xe5\x3b\xa7\x15\xd2\xf0\x15\x29\xff\x0a\x12\xc1\xd3\x10\x15\x20\x96\x48\xeb\x28\x89\x7a\xe6\xee\x6c\x9f\xde\x44\x5c\x5f\x25\x6e\x30\xd4\x24\x43\x57\x94\x54\xab\x1a\x87\x4f\xda\x94\x0c\xd8\xdb\x1f\xff\xa5\xbb\x83\x2c\x29\xee\x44\xf2\x10\xd1\x44\x16\xc8\xc0\xde\x98\x93\x96\x58\x5f\xe0\xfd\xeb\x5b\x4b\x9c\x59\x99\x9b\x77\xf7\x75\xfe\x15\x8c\x37\x22\x3f\x78\xdf\xd4\x77\xce\x5b\x48\x79\x4a\x1e\xa0\x08\xd3\x2e\x0d\xc3\xf4\x30\xc2\x36\x8a\x70\xe2\x2a\xaa\x61\xbe\x57\x1b\xe3\x6c\x19\x81\x47\xff\x59\x89\x38\x2c\x73\x74\xc3\x39\x8f\x8e\x40\xa7\x84\xcc\x28\xcb\x08\x45\xab\xbc\x66\x39\xd8\x20\x2b\x34\xf6\xd7\x68\x89\xaf\x88\xe1\x7c\xad\xd6\xc6\xd3\x77\x1e\x45\x78\xb0\xd5\x30\x34\x35\xc5\xd7\xad\x06\x38\x9e\x6d\x73\xfa\x0c\x6a\xc0\x21\x6d\x50\x03\x3a\xaa\x01\x85\x84\x3b\x2d\x3a\xcb\x9a\xd1\x00\x37\x96\x8c\x1d\x70\x9b\x29\xcc\x84\x84\x75\xbc\x4d\x03\x07\xe3\x90\xf3\x01\xc8\xe0\xcb\xdb\xeb\xca\xf7\x25\x5a\x58\x17\x1b\x10\xac\xca\x64\xe1\xdd\xa4\x1c\x94\xba\x40\x64\x4d\x59\x58\xc3\x32\x5e\x6d\xa5\x84\xee\x28\x9f\x42\x02\xe4\x38\x8f\xa3\x3a\xa5\x8f\x79\x5d\xe0\xf6\x43\xd0\x89\xf5\x9b\x7b\x58\x91\xcb\xd8\xee\xa7\x2b\xac\xea\x71\x3d\xb1\x89\xa4\x6a\x01\x98\x72\x1f\x3e\x32\xad\xec\xa0\xb7\x98\xf8\xc6\xcf\xb8\x91\x17\xe6\x92\x26\x40\x0a\x90\x4c\x18\x11\xa3\xe4\x3a\x15\x8f\x9c\x4c\x61\xce\xb8\xf2\x2b\x16\x42\x92\xdf\x12\x88\x24\x62\xaa\x2a\xad\x36\x21\xef\x5b\x15\x07\x5c\x8a\xaf\x44\xd4\x3c\xd3\x4d\xd1\x28\xd2\x94\xa0\xf0\x82\xdb\xa0\xc4\x62\xc1\xd5\xc6\xf3\x01\xeb\x7a\xf7\x0c\x75\xdf\x10\x76\x66\xcf\x4a\x8e\x2f\x9a\x42\x46\x57\x36\x34\x7b\xc6\x38\x5a\x7f\xa5\x3a\x9f\x84\x43\xb3\x3a\x13\x28\x64\xa3\xcf\x9d\x3b\x83\x29\x22\x81\x26\x8b\x10\xc9\x6e\xc0\x80\x3d\xd5\x06\x0c\xd8\x80\x01\x1b\x30\x60\x9b\x6d\xc0\x80\xb5\xdb\x80\x01\xdb\x4d\x50\x9f\x9d\x76\x03\x06\x6c\xb0\xca\x6c\xb6\x01\x03\xd6\xa9\x0d\x18\xb0\x27\x5b\xef\x58\xf4\x80\x01\xdb\xa3\x0d\x18\xb0\x3d\xdb\x80\x01\x1b\x30\x60\x03\x06\x6c\xc0\x80\x05\xb4\x01\x03\x76\xf8\xeb\x0d\xce\x9f\xee\x6d\xc0\x80\x0d\x18\xb0\x03\xdb\x80\x01\x5b\x6b\x03\x06\x6c\xc0\x80\x7d\xaa\x0d\x18\xb0\x01\x03\xe6\xda\x60\x6d\xdc\x68\x03\x06\x6c\x4b\x1b\x30\x60\x87\x8d\x33\xa8\x01\x61\x9d\x45\x57\x03\x3c\x9e\xe9\x56\x8a\xe9\xd1\x32\x69\xdd\x22\x56\x84\x25\x0e\x4c\x25\x66\xad\xec\x58\x96\xc0\x8e\x59\xb1\xda\x20\x1e\x2c\xf7\xe0\xd3\x25\x31\x77\xb8\x2a\x00\xd7\x31\x33\x6f\x1d\x8c\x72\xf1\x19\x05\xd5\x45\x21\xec\xff\xd5\x18\x97\x06\xb8\xa5\xb3\xcd\xfb\xc8\xa9\xc0\x42\x10\x2d\x47\x43\xb3\xf4\x04\x0d\x14\x01\xc1\x12\xf3\x5e\xeb\x29\x72\xa5\x9f\xa8\x95\x3e\x22\x56\x8e\x81\x56\x39\x3a\x52\x25\x8e\x0b\x34\x82\xfb\x33\x92\xf4\xf0\x0c\xae\x04\x07\x7a\xbe\x5f\x48\x50\x0b\x91\x75\x66\x38\xb1\x98\xcd\x5b\xc6\x59\x5e\xe6\xe6\xec\x2a\xc3\x53\xd8\xb2\x02\x66\x2b\xcf\x32\xdc\x75\x6f\xbd\xc3\xe6\x41\x96\x02\xd6\x4d\xa6\x2c\x33\x5b\x0b\x13\x3b\x2e\xe8\xd2\xf0\x1b\x55\x26\x09\x40\x1a\xa2\x90\x36\x2d\x8b\xbf\x9f\x54\x14\xda\x7c\xea\x4c\x91\x97\x61\x57\x4d\x98\x8c\xda\x30\xbd\xfc\xfe\x77\x9d\xfa\x98\xcb\x22\xce\x2d\xfd\xed\xfb\xdb\xd7\xad\x5b\x1a\x3f\xf8\x0e\x8f\xf1\xeb\x05\x24\x0f\xef\x1d\xec\xe1\x78\x37\x73\xb8\x49\x20\xc8\x1c\x10\x43\x30\x08\xd5\x78\xdb\xfe\x3e\xa3\x94\xb6\xdd\x55\x73\x5c\x45\x90\x4b\x96\xc0\xe4\x33\x28\x95\xb1\x14\xb5\xf0\x83\x40\xd0\xa4\x8b\x2f\xde\x17\xb1\xeb\xce\x92\x53\x59\x83\x1b\xf6\x04\x47\x29\x02\xfc\x32\x9a\x54\x6b\x33\xdf\x7e\xe8\x82\xc8\x38\x53\x00\x95\x42\x33\x67\x7a\x51\x4e\x27\x89\xc8\x2f\x0c\xeb\xb0\xff\x37\xcd\xc4\xf4\x22\xa7\x4a\x83\x34\x3a\x8e\xbb\xd6\xc7\x89\xa1\x80\xf1\xf9\x24\x4f\xcf\x27\xbf\x0a\xa2\xe1\xda\xd9\x35\x5d\xc8\x4c\x23\x35\xb7\x79\x6b\x9f\xf7\x7d\x0a\x86\xef\x0b\x8c\xac\x69\x54\xc2\x33\x93\x12\xbe\x49\x83\xef\xef\xd0\x02\x10\x81\x10\xd2\xa3\xc0\x47\x07\xae\x4d\x22\x18\x6f\x63\x32\x95\x7e\x40\x44\x9f\x0d\x1e\x1a\xe5\xac\x46\x82\x85\xf6\x08\x12\xda\x1b\x5d\xa8\x2f\x30\xd0\x1e\xd6\xee\x8f\x00\xfd\x8c\x01\xfb\x8c\x07\xf9\xec\x6b\x89\xfb\x67\x83\x79\x7e\x11\x10\xcf\x88\xbe\x8c\x48\xd0\xce\xcf\x01\xeb\xec\xaf\x0d\x86\x44\x80\x72\x7e\x3e\x18\x67\x94\x79\x8c\xaa\xc5\x06\xb2\x84\x23\xc0\x36\x3f\x87\xaf\xf6\xd9\xfc\xb4\x11\x7c\xb4\x31\xfd\xb3\xd1\x7c\xb3\xcf\x06\xcf\x0c\x87\x66\x46\xb5\x29\x7c\x16\x48\x66\x4c\x38\x66\xf0\xfa\x32\xce\x34\xa3\xd9\x1b\xc8\xe8\xea\x2e\x0c\xb4\x17\x6b\x25\x6e\x36\x80\x7d\xd6\x6c\xdd\x86\x70\x2e\xa8\x22\xde\xd5\xed\xd2\x71\x78\x5f\xba\x13\x81\x09\x45\x8f\xb3\x79\xbf\xce\x5e\x6b\xd2\x3f\xcf\x35\xe9\x8d\x79\xdc\xe6\xc0\xe8\xc9\xae\xf9\x4e\x3c\x12\x31\xd3\xc0\xc9\x19\xe3\x7e\xe7\x9c\x37\xac\x34\xb5\x7b\x24\xd8\xdf\x61\x7a\x7d\xf9\xc2\x0f\xf2\xf5\xf9\x3d\xd0\x33\xa4\x54\xaf\x3d\x5f\x8e\xc6\xa7\x5d\x5f\xee\xc1\x59\x99\xb5\xdd\x5f\xd6\x25\x16\xc7\xf7\xf5\xb2\xae\xd4\xfd\x12\xe9\xa9\x58\x11\xe5\x29\x71\xb9\x94\xbe\xbe\x7d\x12\x0c\x4b\x6e\x2b\x37\x15\x8e\xb8\x8d\x67\xb1\x37\xb0\x91\x32\x05\xa1\xe6\x29\x14\x40\x07\xa3\x6b\x6f\x8c\xae\x47\x42\xcb\x7e\x7d\xda\xd6\xe7\x47\xc7\x0e\xda\xd6\x2f\x45\xdb\x6a\xa4\x30\xfb\x56\xd2\x04\x6e\xfb\x24\xbc\x79\x06\x52\x07\x6d\xd5\x32\x5c\xc5\x2e\x38\x80\x0d\xf2\xa9\x13\xd4\x61\x2e\xb6\x59\x99\x65\x2b\x6b\x43\x6c\x65\x2b\xec\xbe\xb5\xee\x17\xb0\x91\xe6\x0d\x5d\xa9\x5b\xa8\xab\x75\x93\x42\x0a\x27\x91\xc8\x92\x73\x23\x62\xb8\xe3\x64\x88\x37\xba\x88\x02\xde\xdd\x9c\x4e\x5b\x49\xe8\x14\x9b\x9b\xe9\x42\xa0\xe7\x02\x48\x1d\x6b\xd2\x26\xc4\x8c\x3a\x13\x32\x61\xd3\x6c\x45\x16\x34\x33\xca\xd2\x23\xd3\x0b\x42\xc9\x03\xcb\x32\xd7\x4d\xf7\x89\xba\x03\x6d\x5d\xcf\x56\xa2\xc9\x04\x9f\xe3\x64\x50\x4b\x08\x7c\x2c\x20\x31\x63\x26\x19\x50\x5e\x16\x96\x4e\x23\x1f\xad\x44\x29\x3d\x9d\xdd\x87\xf7\x8e\xef\x4a\x9e\xe2\x2c\x1b\xf9\x29\x6f\xa7\x2b\xdc\xdc\xf3\xb5\x49\x59\x41\xea\x32\x0d\x3e\x32\x05\x23\xec\xb3\x33\x4d\x96\x16\x5f\x61\xdd\xee\x1b\xfb\x59\x21\xc5\x92\xa5\xd6\xeb\xee\xb7\x85\x91\x74\xba\xbf\xff\x07\xec\xd7\xb3\x56\x2e\xf8\x98\xc3\x9c\xa2\x78\xec\x18\x9a\x45\x74\xda\xf1\x2d\x7e\x90\xa7\x2c\xa1\x1a\x8c\xf2\x2c\x8a\x56\x1a\xd2\x25\xa3\x9d\x29\x31\xef\xd3\xd8\x51\xe4\x8c\x0b\x22\x30\x0a\xac\xe4\x4c\xaf\xd0\xa3\xb7\x28\x35\x49\xc5\x23\x3f\x0f\x39\x98\x16\xe6\x40\xc9\x14\x34\xad\x03\xb9\xbc\x48\xa6\x08\x70\x3a\xcd\xcc\xd9\x43\xc4\xff\xfd\xd6\x0d\x40\x66\x40\x75\x29\x81\xcc\xa9\x0e\xe0\x12\x5b\xa4\x79\xbb\x9e\x9f\xde\x76\x4c\x39\x7f\xdd\x8c\x94\x5c\x41\xa0\x20\x1b\x4d\x05\xe8\x18\x9d\x68\x4e\xb4\x28\x75\x4f\xee\x91\x5d\xa6\xa3\xc7\x05\x4b\x16\x4d\x25\x91\xe5\xa0\x88\x28\x03\x2c\x79\x2d\xf5\xcf\x0d\x17\x53\xc3\x1b\xec\x4e\x5b\x5b\x57\xb7\x69\x8c\x1d\x76\xd3\x90\xca\x1b\xb1\xe4\x1e\x6e\x65\xa3\x5d\xdf\xdc\xdc\xfd\xed\x87\xcb\xff\x75\xf5\x43\xb7\x85\xbf\xa2\xc9\xa2\x99\x07\x9a\x13\x8a\x17\x05\x32\xf9\x05\x5d\x02\xa1\xa4\xe4\xec\xbf\x4b\x07\x79\x3b\xab\xc6\xeb\xc8\x56\x23\x16\xd6\xef\x28\xf8\x9a\x5b\xa2\x13\xe7\x88\xb1\xa6\x3f\x30\x85\x49\x85\x91\x08\x07\xfc\x17\x0a\xc8\x4c\x8a\x7c\x4d\xd1\x22\x37\x15\xb8\x6e\x65\x6e\x18\x6a\x55\xb3\x05\xc8\x6e\x12\xf9\x9b\x77\x57\x77\x18\x2f\x5d\x48\x9b\x84\x1b\x83\x0b\xb0\x4f\x1c\x7d\x0a\x66\x14\x4b\x4f\x3a\x21\x97\x7c\x65\xbf\xb4\xcc\xac\xa3\x88\x92\x31\xa5\x01\x85\x53\xa7\x48\x7a\x78\xe0\xc9\x8b\x09\xfe\xef\x84\xd0\x34\x95\x46\xd3\xac\x62\x34\x92\xf5\x28\xb3\x4e\x23\x5b\xfd\x95\x4d\xb3\xc6\xe4\x72\xd0\x18\xc6\xd1\xa9\xc3\xb7\x22\x75\x2b\x81\x42\x20\xe2\x77\xac\x74\xab\xb4\xa4\x1a\xe6\x2c\x21\x39\xc8\x39\x90\x82\xea\x64\x41\x72\xba\x22\x89\x90\xb2\x2c\x6c\x3a\x88\x94\x6a\xda\x6d\xe4\x6f\x84\x24\xb9\xe7\xce\x86\x9b\x19\x91\xfc\x6e\x3b\x10\xb4\x66\xd9\xcd\x7f\x32\xa5\x4a\x50\x17\x2f\x5f\xfc\xeb\xef\xfe\xd0\x51\xbd\x8e\x78\x70\xbb\x42\x9f\x02\x20\x4f\x6d\xf8\x97\xdf\x60\x08\xba\x6e\x65\xf1\x70\x3b\xc4\xee\x7c\xe4\x86\x8a\xf1\x79\x16\x6c\x00\x09\x36\x03\x86\x1a\x01\xc7\xf5\x1b\xdc\x76\xb5\x05\x86\x5b\x02\x5b\x34\x74\x37\xa5\xc4\xb3\x82\xd5\x12\x9c\xb7\x7b\x39\x86\x2c\x78\x43\xb1\xbb\xbe\xf5\x5c\x2a\xc4\x7e\x84\xda\x44\x65\x98\xb2\x99\x22\xec\xb0\x16\xef\x30\x22\x2f\xc8\xbf\x93\x8f\xe4\xdf\xd1\x0a\xf6\xc7\xee\x43\xc5\xb1\x31\xc5\x80\xf1\x2f\x84\xd2\xd7\xb7\x91\x16\xfa\x2f\xe6\xbe\x32\x3d\x9a\xf5\xd0\x82\x4c\x99\x33\x47\xc0\x47\x0d\xd2\xa8\x81\x6e\x0d\x43\x67\x2e\xc8\xa2\x66\x08\xfc\x52\x76\x77\x28\xb8\xe0\x7a\xd6\x46\xff\x7f\xa6\xfd\x8d\x03\x7f\x27\x94\xbe\x71\xdc\xba\x99\xee\xa4\x49\x47\x8e\x17\x71\x8b\xdd\x87\x8c\xfa\xd6\xec\xbd\xba\x1e\x02\x49\x05\x06\x40\xd8\x18\xce\x05\x0b\x60\x0e\xfd\x39\xb1\x61\x38\xd1\x78\x5b\xf7\x53\x5b\x6b\xcd\xa6\x8f\x16\x19\xa7\xa4\x34\x4a\x88\x14\x22\x9d\xa0\x7e\x13\x40\x85\x99\x8d\xb4\x21\x0c\x7c\x42\x35\x9a\x58\x7d\xad\xf2\x0e\xe3\x81\x33\x1c\x2b\xa1\xbc\xab\x0c\x6b\x9b\x84\x19\x48\x69\xe3\x84\xa7\x2b\x1f\x6e\x14\xbc\xdb\x82\xb8\x5c\x21\x85\x16\x89\xc8\xfa\xb0\x55\x6e\x1d\x2d\x38\xf7\xe8\xab\xad\xbc\xe3\x7f\x7e\x73\x3b\x22\xf7\xaf\x6f\x47\x44\x48\x72\xf7\x3a\x0c\xfc\xd4\x34\xc1\x9c\xdc\xbf\xbe\x3d\x39\xea\x0a\x34\x62\x98\xee\x5f\xdf\x76\xe8\x64\x13\x3e\x9b\xd3\x62\xfc\x00\xab\x8e\xd2\x5d\x0c\x09\x73\x5c\x6d\xac\x28\x2f\x64\xa7\x39\xa7\xc5\xc1\xbd\x49\xa0\x29\xeb\x75\x26\x17\x1f\x75\x58\x51\x1a\x2f\xa5\x4b\x2e\x96\x90\x5a\xad\xd9\x8f\x02\x3c\x2d\x04\x33\x3a\xd2\x90\xe7\xe5\x53\x6d\xc8\xf3\x72\x78\x1b\xf2\xbc\x6c\x6b\x43\x9e\x97\x03\xda\x90\xe7\xc5\xb6\x21\xcf\x4b\x9b\x90\x3e\xc6\x18\x0d\x79\x5e\x9e\x6c\x43\x9e\x97\x9d\x6d\xc8\xf3\x72\x50\x1b\xf2\xbc\x6c\xb6\x21\xcf\xcb\x27\xda\x90\xe7\xa5\x6a\x43\x9e\x97\x21\xcf\xcb\x97\xcb\xb5\x87\x3c\x2f\xeb\x6d\xc8\xf3\x32\xe4\x79\x19\xf2\xbc\x34\xdb\x90\xe7\x65\x47\x1b\xf2\xbc\x0c\x79\x5e\x86\x3c\x2f\x9f\x6e\x43\x9e\x97\xce\x6d\xc8\xf3\x72\x58\x1b\x22\x0f\x0f\x6c\x43\x9e\x97\x21\xcf\xcb\x7a\x1b\xf2\xbc\x3c\xd9\xfa\x61\x1e\x1f\xf2\xbc\x0c\x79\x5e\x3e\xd9\x86\x3c\x2f\x43\x9e\x97\x4f\xb6\x21\xcf\x4b\x87\xd6\x3b\xa3\xeb\x90\xe7\x65\xc8\xf3\xf2\xa9\x31\x06\x6d\xeb\xb0\x36\xe4\x79\x19\xf2\xbc\x6c\xb4\x21\xcf\xcb\x66\x1b\xf2\xbc\x0c\x79\x5e\x86\x3c\x2f\x43\x9e\x97\xaa\x0d\x79\x5e\xbe\x76\xbb\x93\x04\xc5\xfe\x01\xb7\x22\x63\xc9\x2a\x38\xda\xe7\x3d\x28\x51\xca\xc4\xdc\xd8\xd8\x2d\x29\xb0\xdf\xca\xa2\x10\x24\x64\xf7\x2c\x85\xc2\xfb\xc6\xc4\x35\x53\x29\x48\x37\x07\xcf\x31\x05\xbd\x48\xa7\xe0\x5f\xf0\xa6\x3b\x82\x60\xec\xcb\x67\xdb\xe9\xeb\x66\x2c\x0d\xd6\xda\x9b\x2f\xd2\x87\x70\xce\x66\xda\xa3\x6a\x17\x69\x51\x31\x5b\xb6\x73\x73\xd1\xa2\xc8\x58\x48\x60\x2c\x21\x77\x25\x4a\x17\xe0\x5c\xe0\xea\x15\x49\x8a\x72\x44\x72\xc8\x85\x0c\x08\x8c\x88\xa0\xc1\xb5\xb6\x4a\x1f\xd6\xe9\xbd\x25\xc8\x4f\xbe\x16\x38\xff\x2b\xab\x2f\xd4\x59\xaa\xaa\xb5\x62\x9e\x1d\x06\x61\xcd\xae\x67\xeb\x60\x54\xa6\x5b\x56\xa0\x1b\xa1\xdf\xbb\xc3\x7d\xb4\xf5\x8a\x8c\x58\xf0\x53\x78\xb4\xac\x55\xaf\x45\x5e\x94\x1a\x5a\x17\x9b\x9d\x62\xab\x74\x30\x15\xca\xd0\x8f\x13\x0d\x9a\x08\x3e\x63\x73\xa7\x7d\x5f\xe4\x94\xd3\x39\x8c\xab\xd9\x1e\xd7\xa9\x1e\x2e\x3a\x5f\xd4\x47\x0b\x05\x4d\x32\xca\xba\x03\x07\x63\xb1\x89\xd7\x48\x05\xa6\x01\xab\x01\xf5\x18\x9b\x56\x4d\xf3\xa8\x82\x8d\x33\xcb\x37\x26\xfe\x2b\xfb\xe3\x51\x80\xf6\x48\x35\xda\x2a\x50\x31\xda\xb2\x53\xc3\x15\x46\x4e\x68\x56\x2c\x3e\xad\x32\x86\x84\x5c\xbe\x59\x71\x9a\xb3\xc4\x1f\xbc\xcb\x2c\x13\x89\x35\xd5\xb4\x95\xcd\xb0\x37\xb1\xd4\x9b\x57\xca\xf3\x52\xd3\x69\x06\x13\x72\x6d\x33\x57\x08\x9e\xad\xcc\xb1\x54\xa0\x3d\x72\xc1\x9d\x89\x30\x05\x33\x04\x16\x1b\x08\x89\xdd\x2a\xab\xe3\x5e\xb3\xa9\x36\x80\x1b\x0e\x27\x38\x10\xe0\x5a\xae\xcc\xb6\xbc\x15\xe9\x9d\xd9\x99\xad\xa7\x83\x33\x70\x04\x22\x61\x63\xa0\x60\x03\x11\xb0\x71\x70\xab\xe1\x98\xd5\xb8\x78\xd5\xda\xb3\x60\x13\x08\x35\x03\x81\x5a\xdb\xa2\x10\xe9\x64\x0b\xc7\x22\x62\x16\x48\x81\x19\xf1\x56\xa4\x46\x96\x92\x60\xd9\x56\x75\x46\xad\x5d\xf1\xda\x10\xf7\x80\x86\x40\xaa\x6b\x21\x8b\x2e\x29\xcb\xcc\x01\x0e\x24\x60\x33\x19\x63\x98\xb3\x26\x92\x0b\xc3\x61\xf6\xfb\xb4\x59\x5c\xb4\x57\x2b\x60\x2c\x59\x08\x05\x1c\xf9\x25\xad\x02\x7b\xaa\xb0\x03\xc7\x62\x52\x7b\x45\x87\x82\x8b\xaf\x67\x04\xf2\x42\xaf\x46\x04\x96\x20\x57\x7a\x81\x20\x84\x2a\x9d\x28\xb2\x35\xa6\x48\x4e\xd3\xc6\xee\x18\x11\xe1\xed\xd2\x81\xc3\xe3\xfd\xe0\x54\xb5\x32\xd3\x56\x71\x63\xaa\x8a\xae\x38\xf6\xae\x89\x9d\xe5\x86\x84\x32\xcd\x98\x59\x6a\x08\x66\x58\xcd\x59\xb7\x7c\xb6\x24\xe2\x59\xf8\x01\xa9\x68\x44\x94\x98\x2d\x91\xd3\x8f\x68\xb5\xa4\xb9\x28\xb9\xb6\xe9\x6b\xac\x22\x51\x09\x7f\x36\xee\xe6\x33\xc2\xe8\x9e\x55\xe4\x27\x71\xae\x76\x9a\xfa\x8c\x15\xb7\x31\xc2\x97\xa9\xd6\x20\xf9\x2b\xf2\xbf\xcf\xfe\xf3\xb7\x3f\x8f\xcf\xff\x74\x76\xf6\xe3\x8b\xf1\xbf\xfd\xf4\xdb\xb3\xff\x9c\xe0\x3f\xfe\xf9\xfc\x4f\xe7\x3f\xfb\x3f\x7e\x7b\x7e\x7e\x76\xf6\xe3\xf7\x6f\xbf\xbd\xbf\xbd\xfa\x89\x9d\xff\xfc\x23\x2f\xf3\x07\xfb\xd7\xcf\x67\x3f\xc2\xd5\x4f\x7b\x76\x72\x7e\xfe\xa7\xdf\x74\x77\x4a\x86\x7a\xe0\xe3\xf9\xdf\x23\x79\xdf\x9f\xc5\xf7\xee\x78\xec\xd1\x0f\xbf\xbb\x02\x37\x8e\xbf\x73\x5a\x7c\xea\xf8\xcb\x60\x53\xcd\xf5\xac\x1e\x9f\x29\x22\x72\xa6\x35\xa4\xee\xee\x6d\xa4\xc4\x59\x33\x13\x39\x86\x85\xd9\xac\x28\xde\xde\x8d\xd4\x2c\xb5\x75\xa9\x33\x59\xd5\xfd\x8a\x86\x31\x4e\x58\x5e\x64\x90\x03\xd7\xc8\x78\xc6\x5e\xe5\x45\x2b\xe3\xa4\x7e\x83\xc4\xda\x41\xe0\x63\x02\x90\x3a\x22\x07\xde\xd8\x68\x03\x6f\x1c\x78\xe3\x53\x2d\xd8\x54\x1e\x83\x31\xbe\x6f\x12\xe1\x4c\x5c\xca\x4b\xca\x68\x38\xaf\x32\x27\x88\x19\xe2\x27\x96\x2c\x2d\x69\xd6\x4c\x30\xeb\x73\x8e\x76\xe3\x00\x0d\xd3\x4e\x4e\x57\x1b\x96\x1c\xc6\x59\x33\x9b\xed\xa8\x42\xfd\xe0\x83\x4e\x2e\xab\x3d\xce\x27\x97\xd9\x23\x5d\xa9\x8e\x49\x2f\xbf\x11\x12\x81\x24\x6b\x83\x12\x21\x3d\xbe\xa8\xa9\xe2\xb6\x2d\xfc\xdd\x3c\x84\xdb\x26\xba\x9d\xa2\xc2\x29\xd9\xa7\xaa\x7a\xd0\xfb\x91\xdc\x44\xd4\x51\x21\x66\x9f\x77\x7b\xf1\x3b\xd0\xda\x19\x01\xd7\xb6\x04\xad\xe7\xb4\x72\x8b\xb6\xa7\xc7\x42\x89\x30\xd5\xac\xf9\x72\x26\xcc\x9a\x60\x91\x86\xd9\x0c\x92\x8e\x5a\xb0\x4d\xe9\xb1\x65\x1c\x0b\x6f\xd7\x8c\x97\x34\xcb\x56\x7e\x4e\x20\x25\x82\x77\x1a\x08\x3e\x32\x4d\x4a\xae\x59\x66\x36\x13\x91\x30\x2f\x33\xda\x34\x20\xba\x37\xf3\xa8\xbb\x74\x42\xde\xf1\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\x68\x95\x66\xd2\x60\x2c\x14\x73\xa2\x58\x0a\x09\x95\x27\xcd\x12\x23\x97\x99\x5e\x88\x72\xbe\xa8\x77\x45\xd8\x94\x13\xa5\x11\xad\x65\x26\x53\x79\x8b\xc7\xda\x66\x53\x46\xd6\xe1\x09\x58\x91\x4c\x80\x3d\xee\x8f\xb4\xe3\xd8\x1b\x88\x02\x0b\x11\xb7\x6b\xee\x43\xb8\x10\x12\x08\x69\x23\xde\x8e\xc3\x47\x1d\xe1\x85\x27\xe4\xda\xe6\xcf\x18\xb5\x7b\x6d\x4d\x89\x9d\x8c\x06\x24\xce\x83\x3b\x3b\xe2\x01\xd7\x06\x60\x55\xc4\x1a\xa6\x39\xb6\x9d\x53\xbe\xf2\x01\x22\x08\x59\xb3\x81\x6d\x55\xcc\x4a\xd6\xcd\xf6\x5e\x9d\xa5\xcf\x5e\xb5\x47\x41\x52\x4a\xa6\x57\xaf\x05\xd7\xf0\xb1\x13\xef\x8b\x71\xab\xdf\xb5\xc9\x68\xdd\xeb\x9e\x44\x22\x0a\x9b\x5b\x72\xad\x70\xd3\x42\x94\x59\x8a\x19\x76\x4b\x8e\x6c\xa7\xdb\x8d\x72\x3d\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\xb7\x88\x1d\x6c\xfe\xe8\x39\x7d\xae\x9a\xaa\x87\x5a\xc3\x80\x71\x21\xd2\x5a\xa1\xb8\xf0\x53\x87\x1f\xc1\x47\xfd\x05\xfa\x5b\x51\x60\xba\x95\x6c\xc9\x32\x98\xc3\x95\x4a\x68\x86\x7a\xd4\xb1\x95\xf3\xcb\x1d\x74\xe1\xce\x94\x22\x53\x46\x00\x33\xca\xaa\x11\x35\x2d\x72\x1a\x1d\x7f\x73\xca\x38\x56\x1d\x0a\x70\x0e\xb9\x41\x95\x85\x6e\x1b\x7d\xbb\xa0\xd2\xec\x42\x0f\xd1\xb6\x57\xe3\x54\x88\xcc\xa5\xa9\xcd\x56\x35\x5d\xac\xbb\x17\x05\x79\xb1\xf8\x1b\x87\xc7\xbf\x19\x2a\x14\x99\x65\x74\x5e\x5f\xcd\xa0\x37\xe2\x5d\xc2\x51\xe3\x3b\x27\x1a\x73\xb0\x96\x46\xb0\x31\x52\x45\x8d\xa7\x6f\x72\xf0\xee\x0a\xdd\xcb\x73\xe4\x27\x54\x91\x6a\xec\x6e\xa2\x83\x69\xbf\x3b\xc7\x7b\xe2\xf5\xe5\xed\xdf\xee\xfe\x7a\xf7\xb7\xcb\x37\x6f\xaf\x6f\xba\xa3\x66\x85\x06\x6b\x5d\x69\x48\xf7\x49\x05\xf4\x30\xab\x50\x61\x85\x26\x42\x4d\xd0\x75\x82\xc9\x5c\x78\x2a\x1e\x03\xfd\xcb\x66\x4f\x01\xed\x26\xb9\xd2\xa2\xb8\x94\xb9\x90\xb7\x52\xcc\x58\xd6\xd9\x35\x19\xeb\x04\xaf\x91\xe3\x3d\x4d\x97\xee\xe3\xfa\xba\xb1\xf9\x05\x36\x71\x0e\x8d\x2b\x83\x61\x14\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\xfa\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\x59\xb5\xbd\xd8\x85\x8e\xf3\x20\x42\xee\x2d\xd2\x1f\xc7\xf3\xe1\x31\x85\x84\x4a\xaa\x59\x1b\x5e\x90\xee\xd5\x06\x7d\x7b\xdb\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\xe1\x93\x48\x48\x00\xec\xa4\x27\xbb\xd3\xce\x4f\xb5\x23\x2d\x4c\xf9\x81\x99\x19\x9c\xd5\x4c\xda\x6f\x1b\x2f\x83\x58\xac\x72\xe0\x7e\xfc\x80\x25\xb6\x3c\xff\xa7\x32\x38\x2f\x58\xb5\xc4\x64\xdc\x38\x5a\x85\x84\xf1\xe6\xf1\x0a\x05\x2e\xbc\x2f\xb9\x66\x39\xf8\xdc\x17\xe3\x35\x99\x48\xda\xaf\x4f\x55\x95\x69\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\x0b\x37\x34\xe8\x41\x73\x52\x9a\x5e\xa4\x52\x14\xf6\x26\xf6\x41\xa9\xe1\xc0\xc0\x76\xf0\x53\x33\xc7\x30\x0a\xec\xb3\x36\x21\x73\x49\xb9\xae\x0d\xb9\x1b\x1b\xe7\x97\x28\x83\xc4\x10\x02\x68\x1a\xaf\x04\xca\x65\x6a\x78\x46\x73\xd9\x82\xcf\x55\xdf\xd2\xa9\xbe\xf6\x2f\xd7\x88\x7e\x22\xb7\xef\xee\xae\xff\xdf\xb5\x73\xd3\x5d\xb4\xb3\xad\xdf\xc9\x14\x0d\x3f\x88\xb6\x6d\xde\xbb\x0a\x54\xc3\xc6\xf9\xba\x37\x4e\x65\x20\x3a\x7a\x26\xa8\xf7\x25\x6f\x57\xc1\xaf\x49\x23\x79\x90\xac\x73\x5b\x25\x4d\x68\xf7\xda\xf4\xf5\x48\x20\xe6\x11\xae\x19\x7a\xde\x1a\xd6\x5a\x2d\x6c\x91\xa5\x28\xf5\x5a\x9b\xb7\xeb\x8c\x66\xea\x4b\xbd\x22\x43\x4c\x3b\x85\x14\xc9\x5b\x51\xf2\x38\xa9\xa5\x02\x76\x5c\x45\x08\x49\x81\x0b\xed\xac\x29\xa8\x4b\x88\x19\x7e\x4b\x2c\x6c\xaa\x91\x35\xb2\x25\xe7\x04\x88\x59\xf7\x0d\xd1\xaa\xf2\xef\x7b\x39\xdc\xea\x2f\xa5\x82\x75\xff\x85\x93\xab\x6a\x14\xd5\x4c\x74\x07\x8f\x48\xa0\x29\x2a\x98\x05\xd5\x0b\x9b\xce\x2c\xa7\xea\x01\x52\xfb\x41\x60\x2a\x87\x2a\x06\x07\x5d\xfc\x7e\xa6\xef\xcd\xe4\xfa\xb0\x19\x34\x08\xdb\xa4\x6e\x18\xa8\x13\xa2\x8a\x1d\xf5\x34\x04\x30\x76\xb3\x08\xef\x78\xb6\x7a\x2f\x84\xfe\xa6\xaa\xd6\x76\xec\x93\xf1\x17\xe7\x8e\x68\x1b\x31\xd1\x2e\x4d\x91\xe4\x31\x6e\x1c\xe4\x8b\x8d\x1a\x73\xa1\x6c\xd1\x2c\xc8\x2f\x95\x2b\xca\x92\x5f\xaa\x6f\xa5\x28\x3b\xcb\x70\x31\xf5\xcd\x6f\xaf\xdf\xe0\xc5\x57\xba\x6c\x3f\x5c\xcb\x15\x16\x1f\xf5\x16\xaf\x88\x4e\x9b\x3f\xbb\xbc\x4a\x4d\xce\x16\x9c\x42\x85\x90\xb7\x74\x45\x68\xa6\x44\x65\x52\xe3\xdb\xdc\xad\xde\x97\x6b\xbe\x9e\x0a\xbd\xd8\x70\xe2\x76\x45\x81\x98\xb6\x39\xde\xa8\x91\x34\xa8\x8e\xcf\x66\x7c\x63\x58\x8d\x81\x45\x85\x84\x04\x52\xe0\xc9\x97\x7a\x22\x8e\x9d\xc3\x06\x4f\xd5\x8d\xe0\x86\xbd\x1e\xfb\x5c\x5d\x57\xf6\x49\xb7\x1a\xcd\x53\x84\xa6\x6c\xe7\x44\xa4\x08\xd3\x43\xe6\x5a\xaa\x90\xa8\xaf\xeb\x19\x7a\x3d\xed\xa6\xfb\xbe\x9c\x42\x66\x16\x9b\x65\x99\xd9\x81\x2c\xa5\xda\x42\x13\x58\x4e\xe7\x40\xa8\xae\x0e\xa1\x16\x04\xb8\x2a\xa5\xdb\x37\x1d\x01\x3a\xa6\x55\xd8\x22\xf7\x6a\x7f\xbe\x7e\x43\x5e\x90\x33\xf3\x6e\xe7\x28\x71\xcc\x28\xcb\x30\x85\x14\x82\xff\xd6\x5c\xb2\x33\x0f\x4f\x0a\x9a\x02\xe4\x23\x44\x48\x7b\xb5\x8c\x08\x17\x44\x95\xc9\xc2\xcf\x01\x13\xbc\xb2\x08\xbb\x7c\xc2\x41\xb1\x30\x03\xdb\x89\x77\x1f\xfe\x59\x81\x3c\xf6\xb1\x35\xd7\xe1\x9f\x3f\xe3\x75\xd8\x54\x11\xcd\xf1\x6f\x2f\x98\x3d\xab\x39\x68\x9a\x52\x4d\xdd\x35\xe9\x1f\x18\x76\xed\x70\x59\x06\x5c\x96\x0a\x7e\x60\xbc\xfc\x68\x33\x76\xf6\xc2\xed\x71\x77\x85\x14\x91\xc4\x2f\xb4\x68\xf8\xed\xbc\x87\x22\x42\x78\xf4\x75\xeb\x18\x8d\x76\x68\xdd\x78\x4b\x50\x9b\xfe\x01\x8c\x22\x44\x79\x2a\xf2\x0d\x22\x67\x42\x12\xa0\xc9\xa2\x33\x35\x0d\xd4\xc8\x70\x30\x5d\xfb\x65\x3b\x84\x32\x58\x42\x16\xcd\xb6\xff\x83\xe9\xcd\x4c\x8e\xdf\xb9\xd8\x3d\xc9\xe8\x14\x32\x97\xb0\xc5\x66\xf1\x8a\x78\xc2\x22\xd9\xc0\xa5\x88\x08\x89\x79\x2f\x2c\x92\x8b\x56\x13\x61\xba\xff\x22\xe6\x21\x2a\xf8\xe2\xde\xa1\x4b\xea\x79\x40\x1b\xe8\x97\x30\x0f\x65\x80\x80\x48\xd6\xe7\xc1\x48\x9b\xed\x79\x40\xf9\xab\xef\xf3\xa0\x20\x49\x44\x5e\xf4\x04\x29\x79\x6f\x51\xf8\x86\xa2\x7d\x51\x91\xed\x87\x69\x10\xdc\xd9\xe5\x61\xa6\xda\xde\x83\x3e\x19\xf3\xff\xaf\x71\x9d\x23\xb7\x5b\xbf\xe3\xdd\xe8\xc1\x88\xcc\x6a\x44\xd7\xe1\x2f\xf1\xc6\x1b\x60\x98\xad\xf6\xd9\x61\x98\x8d\x5c\x6e\x14\xcd\xf3\x2d\x48\xe4\xd7\x00\xc6\x34\x4a\x00\xce\x2b\x70\x0c\x28\x2b\xa8\x5e\x8c\x88\x84\xcc\x66\x48\x77\xec\xf9\xc1\x5a\xbc\x4e\x91\xe3\x78\x82\x3c\xbb\xa9\x31\xab\x36\x99\x5b\x54\xec\xe6\x36\xbc\xa6\x7d\xe6\xe6\xdd\x7d\x33\x00\x98\xf2\x95\x4d\x53\x10\x10\xde\x6a\x5b\xff\xc4\x8a\xe7\xc4\x74\xae\xaf\xe2\x73\x43\x3a\x83\xfa\xdb\x8e\xe8\xfc\x7c\xa7\x74\x3f\x94\xe7\x3a\xc6\x33\x2a\x09\xeb\x80\xcf\xcd\x31\x22\xac\x5c\xf0\x11\x70\x57\x67\x8f\x0c\x20\x7f\xb1\x14\x79\x2d\x3b\x31\x8c\x43\x33\x3e\x57\x4d\x23\x08\xcd\xb2\x28\x98\x84\x6d\x56\x10\x7f\x0a\xaa\x6c\x66\x9b\xd6\x80\x76\xb5\x8d\x90\xd1\x9f\xb0\x60\x7c\xd9\x96\x88\xcc\x68\x14\x5f\xb8\x1d\x62\x9e\x2b\xfa\x5a\x9a\x19\xd4\x8c\x66\x77\x05\x24\x7d\xb9\x2d\xbe\x7d\x7b\x77\xd9\xa6\x0c\x65\x61\x97\xbb\x11\xf0\x7b\x42\xd3\x9c\x29\x85\x0e\x1f\x98\x2e\x84\x78\x08\x1a\xf2\xcc\x87\xda\xce\x99\x5e\x94\xd3\x49\x22\xf2\x46\xd4\xed\x58\xb1\xb9\xba\x70\x1c\x65\x6c\x26\xee\x9c\x30\x9e\x55\x91\xca\x68\x2d\xe4\x5a\x39\x0f\x42\xf0\xcb\x93\xa4\x7a\x7b\xdc\x7a\x18\x9f\x52\x41\xb3\x37\xa7\x07\x13\x6c\xe2\xe6\x3d\xba\xd4\xb1\xb9\xab\xc2\xf2\xe0\xaf\xed\xac\x1d\xef\xde\x4c\x16\xe9\xbc\x38\x5b\xe7\xd1\x2a\xaf\x47\x9f\x24\x27\xf4\x27\xa0\x82\x10\xb0\x31\xcf\xdc\x77\x35\x49\x24\x05\x9b\x44\x04\x30\x9f\x17\xdd\x19\x73\x8f\xee\xed\x53\xac\x25\xe8\x7e\x7a\x1a\x2b\xbf\xe9\x65\x96\x99\x85\xa4\x2e\xa1\x4c\x03\xdd\x89\xaa\x49\x95\xc3\x45\x99\x15\xb7\xe9\x5b\x8c\xb2\xd0\x7c\x8b\xf0\x9a\xfb\x67\x4c\xfb\xec\x39\x3e\x7d\x8f\x16\x76\x6c\x4a\x72\xf6\xd1\x50\xd8\x1c\xb1\x9d\x6f\x04\x1d\xff\xdb\xbf\x0e\x28\xad\x44\x10\x7c\x50\xa5\xed\x1a\x99\x15\x6a\x0e\xe2\x83\xa3\xb5\xb9\xb6\xcc\x17\x37\xa0\x8d\xa2\x66\xe7\xad\xe9\x7d\x30\x8a\x95\x2c\x23\x1c\x86\x10\xcf\x30\x69\x7a\x87\xa3\x72\x8a\xc0\xf3\x80\x9e\x62\x47\x93\x91\x41\xbc\xf0\xf6\xb9\x3c\xc7\x64\x4b\xf8\xce\x67\xf3\x20\x93\xfd\xbd\xc8\xcf\xe8\xab\x22\x7d\xf1\x57\x85\xa6\x5a\x69\xa4\x8d\x39\x5a\x9e\x95\x66\xea\x1a\xb6\x09\x5e\xba\x15\xe9\x46\x46\x1b\x5f\x74\xbe\x7b\x89\x11\xb3\x39\x6a\x15\x84\x0b\x67\x1e\x69\xd4\x7d\x87\x8f\x90\x94\x1a\x52\x97\xd8\xca\x99\x94\x6d\x52\x9c\x36\x35\x9d\x29\xf0\x41\xfa\xae\xe2\xa4\x1a\xd5\xd9\xc0\x9d\xae\x53\xa5\xe6\x1a\x91\xff\x42\x2e\xe9\xf2\x58\xd6\xa5\xea\x6f\xab\x9f\x77\x9d\x0a\xc4\x51\x27\x94\x7b\xdd\x0a\x2b\x9e\x5b\x0b\xb7\x4b\x60\xe5\xf2\x78\x4c\x81\x14\x54\xd2\xdc\xdc\xc1\x8a\xb8\xe5\x99\xc2\x9c\xd9\xb0\xc0\xc6\xa5\x58\x65\xc0\xea\x96\xd1\x0d\x15\x1b\xa6\x49\xce\xe6\x0b\x7b\x5a\x08\xc5\xd2\x90\xc4\xe3\xc6\x32\x41\x53\x82\x8c\x45\x48\xf2\x48\x65\x6e\x64\x01\x9a\x2c\x10\x84\x46\x39\x49\x4b\x73\x1e\x08\xe6\x6b\x5a\x8d\x95\xa6\xda\xe8\x98\x20\x03\x6c\x70\x7e\x9a\x8e\x50\xbc\xe4\xb9\x0b\xb3\x1d\x39\x9f\x8e\x39\x69\x51\xac\x20\x57\x1f\x21\x59\x2b\xfd\x9d\xe7\x98\xe2\x4f\xf8\xe3\xec\x33\x95\x05\x0b\x83\x3d\x51\x95\xdd\x1b\xf6\x45\x36\x79\xed\x26\x9c\x79\xed\xd3\xfe\x69\xf4\xd1\xf6\x22\x28\xef\xc4\x6a\xe4\xed\x35\x7f\x9a\xad\x6e\x4e\xae\xcd\x11\x24\x64\x55\x47\x2e\x88\x2c\x4f\x07\x56\xa6\x12\x42\x93\xb3\xd3\x8b\xd3\xf3\x8d\xbd\x70\xaa\x9a\x61\x06\x36\x22\xba\x7e\x21\xc5\xf2\x22\x5b\xe1\x3b\x9c\xda\x62\x54\x01\x45\x5e\x4d\xf3\x80\xd5\xaa\x02\x83\x5a\x40\x96\x8d\x88\x32\xe2\x2f\xf5\xc9\x6f\xed\xa7\xe6\x21\x2d\xcb\xc4\x9a\xc9\xce\x4e\x7f\x3e\x1d\x11\xd0\xc9\x39\x79\x14\xfc\x54\x5b\x87\x07\xb9\x47\x1d\x32\x88\xa6\x8a\x88\x95\x28\xb1\x5e\xb2\x5d\xb6\x2a\x5f\x72\x42\x8d\xfa\x53\x5a\x19\xdd\x26\xdd\x80\x2c\xa0\xfe\xaf\x69\x57\x1f\x99\x36\xa2\x88\x2e\xd1\x4c\xf1\xc2\x6a\x0a\x60\xd8\xab\xb9\xf0\xcc\x4d\x77\xb1\x00\x9a\xe9\xc5\xaa\xd2\x5e\x6c\x29\x5a\x45\x4a\xee\xbe\x09\x97\xa1\x7a\x10\x36\xda\xdf\x00\x4e\x57\x11\xfb\x7e\x21\x41\x2d\x44\x76\xf4\x30\x4e\x5f\x26\x35\x11\x5c\x19\x9e\x62\x54\x6c\x47\xa3\xaa\x22\xe8\x5c\xa9\x56\xe1\x12\x9e\x9a\x53\x26\x21\x75\xc2\x92\xcb\x9e\xb8\xa0\x4b\x94\x14\x8c\x3c\x07\x69\x88\x6a\xd2\xd4\x89\x7e\x1f\xb3\x90\xeb\xf1\x6b\xa6\x9a\x36\x97\x45\x9c\x5b\xfa\xdb\xf7\xb7\xaf\x5b\xb7\x34\x7e\xf0\x1d\x1e\xe3\xd7\x0b\x48\x1e\xde\x87\x15\x14\xe9\x09\xb4\xa0\x10\xf2\x98\x82\x81\x19\x3e\x9a\x54\x70\x2b\xa4\x26\xbc\x2a\x8d\x6c\xce\xd6\x1c\x57\x11\xe4\x92\x25\x30\xf1\x65\x93\xbd\x73\xde\x17\xc0\xa1\x7c\x0e\xe4\xa5\x39\x10\x7f\xfc\xc3\x1f\x7e\xff\x87\x70\x1e\x1d\x9e\xc9\x3c\xfc\x20\x10\x04\x43\xe1\x8b\xf7\x45\xec\xba\xb3\xe4\x6c\x33\x36\x3b\x4a\x51\xa9\xcb\x68\x52\xad\xcd\x7c\xfb\xa1\x0b\xb3\x4a\x2a\x00\xb2\xc5\x5d\x61\x58\x87\xfd\xbf\x69\x26\xa6\x17\x39\x55\x1a\xa4\xd1\x71\xdc\xb5\x3e\x4e\x0c\x05\x8c\xcf\x27\x79\x7a\x1e\x50\xe1\x8e\x34\xd4\xea\x8d\xdc\xe2\xad\x34\x33\x3b\xf2\x84\x9b\x49\x39\xba\x09\x9e\x78\x2a\x5f\x91\x93\x6e\x89\xa9\xcd\x12\x7c\x0b\x71\x22\xd1\xbe\xbb\xbf\xbf\xfd\x16\x74\x93\x61\x73\xfc\x90\x7c\x7b\x75\x5f\x55\xbc\x32\xbb\xcb\x06\x35\x0d\x5c\x3b\x84\x6b\x2f\x44\x58\xc9\xb3\xd8\x7e\x17\xcb\x4a\x30\xcd\x36\xe7\x90\x98\x85\x1e\xb5\x8a\xab\x78\x1c\xe2\xf5\xed\x84\xfc\x55\x94\x28\x72\xd1\x69\xb6\x22\x8f\xd4\x66\x34\x50\x10\xc6\x53\x4e\x0c\x19\x27\x86\x6b\x99\x5d\xfd\x1d\xd0\xd4\x96\x4b\x40\xd3\xce\xd1\xcf\x6a\x83\xa6\x68\xcb\xf6\xba\x54\x5a\xe4\x64\xe1\x5e\xd5\xce\x61\x5d\x53\xce\xca\x46\xf6\x08\xa2\xef\x47\x11\x09\x85\xd5\x96\xdc\x6f\xbe\x0a\x5d\x68\x83\x0b\xd9\x79\x6e\x54\x1e\xa2\x24\x69\x4e\x95\x13\xf4\xd1\x84\xc9\x1c\x8f\xea\x6c\x12\xab\x5b\x94\x02\x9e\x24\x52\x11\x4f\x12\x5e\xc8\xd3\x77\x12\xee\x84\x8c\x53\x12\x94\x44\x29\x0b\x4a\xa2\x57\x7b\x24\xce\xd5\xe6\x36\x97\x05\xe0\x18\x42\x43\xb3\x12\x12\x6f\x4c\xae\x6a\x71\x50\x2e\x38\x4b\xac\x3b\x83\x94\x85\xe0\x44\x94\xba\x28\x35\x9a\x82\x12\xaa\x60\xbc\xa4\x92\x19\x86\x6a\x6b\x2a\x57\x48\x28\x6e\x4e\xbb\x16\x02\xed\x24\x95\xd3\xd9\x52\x1c\x4e\x66\x24\x69\xc6\x34\xdc\x6c\x91\x57\x78\x63\x71\xc2\x77\x34\xe9\xb5\x0d\x86\xd8\x32\x56\x8b\x78\x6a\x1d\xd5\x0b\x44\xf6\xa1\x2f\xcb\x03\x43\x91\x71\x1a\xb5\xa1\x07\x81\x37\x51\xb5\xd8\x40\x96\x80\xfe\x76\x21\xd7\xf4\x60\x43\xe1\xe6\x1c\x46\xc2\x9a\x3c\xbf\x5a\xdd\x2c\x81\x3c\x05\x23\xdb\x5f\x5f\xde\x5c\xfe\xed\xee\xc3\xeb\xbf\xdd\x5c\xbe\xbd\x0a\xe9\x3a\xb8\x7c\x59\xcc\x02\x66\xd1\x4a\x98\x3d\x53\x81\x47\xd3\x54\xb2\x80\xfe\xc0\x4c\xee\x90\x9a\x66\x52\x32\xa7\x03\x34\x4a\xeb\x84\x65\xa9\x23\x6b\x46\x53\xc3\x78\x8e\xca\x71\x1c\xaa\xe0\x0d\x64\x74\x75\x07\x89\xe0\xe9\xd1\xd1\xd9\x37\x15\xb3\x51\x96\xa0\xaa\xa2\x10\xac\x65\xcc\xf2\x35\xbc\x5c\x1d\x24\x8f\x0f\x68\x42\x1a\xec\xfb\x75\xf6\x5a\x93\xfe\x79\xae\x49\x6f\xcc\xe3\x05\x48\x86\x88\xa0\x3e\xec\x9a\xef\xc4\xa3\x2b\x0e\x76\xc6\xb8\xdf\x39\xe7\x0d\x2b\x4d\xed\x1e\x09\xcf\xa6\xa6\x05\x79\xf9\xc2\x0f\xf2\xf5\xf9\x3d\x1c\xd2\xa7\xd7\x9e\x2f\x47\xe3\xd3\xae\xaf\x1a\xb6\xd4\x76\x7f\x85\xe0\x87\xc8\x1a\x1b\x7f\x39\xa9\xe2\xd4\x5e\x22\x3d\x15\x2b\xa2\x3c\xf5\x90\xb3\xaf\x6f\x9f\xe8\xa4\xb8\x13\xc9\x43\x24\xb3\xeb\xfd\xeb\x5b\xdb\xdb\x1a\x9e\xc5\xde\xc0\x46\xca\x14\x84\x9a\xa7\x50\x00\x1d\x8c\xae\xbd\x31\xba\x9e\xda\xb0\x2e\x9a\xbd\x3a\xd8\x80\x7a\x3a\x68\x5b\x75\xf3\x82\x8f\x6c\x57\x40\x19\xb4\xad\x1d\x6d\xd0\xb6\x0e\x68\xbe\x12\x2d\x13\xfc\x5b\x49\x13\xb8\xed\x93\xf0\xe6\x19\x08\x49\x5d\x7d\x76\x52\xcb\x70\x15\xbb\xe0\x00\xa9\xe5\x1f\xbe\xa8\x2e\x99\x9b\x37\xb1\xf0\x68\xb4\x21\xd6\xc0\xe2\x52\x06\x88\x79\xf7\x0b\xd7\xb5\x13\x71\xbd\x93\x79\x1b\x75\xb5\x6e\x52\x54\xc9\xd0\x7d\xd5\x10\x77\x9c\x0c\xf1\x46\x17\x51\xc0\xbb\x9b\xd3\x69\x73\x05\x89\x62\x73\x33\x5d\xbe\x96\xb3\x4d\xa2\xe5\x4b\xef\xd5\x84\x98\x51\x67\x42\x26\x6c\x9a\xad\xc8\x82\x66\x46\x59\xc2\x92\xc0\x94\x3c\x60\x29\x5b\xec\xa6\xfb\x44\xdd\x81\x8b\xd5\xb4\x12\x4d\x26\xf8\x1c\x27\x83\xba\x98\x8c\x8f\x05\x24\x66\xcc\x24\x03\xca\xcb\xc2\xd2\x69\xe4\xa3\x95\x28\x23\x84\x65\x78\xc7\x77\x25\x4f\x71\xe6\xd2\x8f\xd8\xc2\x6d\x9f\xdc\xf3\xed\xe0\x5a\xf2\x4e\x2f\x40\x3e\x32\x05\xa3\xee\xa5\x6b\x89\x37\xfb\xae\x95\x91\xb3\x9f\x55\x29\x54\x5c\xe4\xa0\xd9\x16\x18\xca\xda\x79\xac\x0f\xd8\xaf\x67\xad\x5c\xf0\x31\x87\xb9\x4d\xd4\xe0\x18\x9a\x45\x74\xda\xf1\x2d\x7e\xb0\x8a\x36\x50\x5a\x14\xad\xba\xbd\x4b\x46\x3b\x53\x82\x49\x21\xea\x1d\x45\xce\xb8\x20\xa2\x30\x57\x57\xc9\x99\x5e\xa1\x47\xcf\x97\x8c\x0e\x88\xb7\xba\x77\x30\x07\x4a\xa6\xa0\xa9\xb3\x81\x9b\x43\x50\xe5\x44\xc7\x74\xe7\xe6\xec\x61\x90\xc0\xfd\xd6\x0d\x50\xa5\x49\x9f\x53\x1d\xc0\x25\xb6\x48\xf3\x76\x3d\x3f\xbd\xed\x98\x72\xfe\xba\xc0\x3c\xcc\xfd\xc8\x6c\x68\x4e\xb4\x28\x75\x4f\xee\x91\x5d\xa6\x23\x9b\xe2\xa2\xa1\x24\xb2\x1c\x14\x11\x65\xa4\x7a\x13\x2f\xdd\x70\x31\x35\xbc\xc1\xee\xb4\xb5\x29\x9d\xb2\x4e\x55\x87\x63\x6c\xb1\x1d\xc9\xfb\x5d\x1c\x6e\x23\x7f\xe5\xb4\x9c\xcd\x40\xe2\x4d\x87\x04\x6f\xc0\xee\xab\x3a\x5e\xfe\x0e\xeb\x66\xbc\x75\x80\x2f\xd0\x23\xac\x1d\xe0\x92\x49\xec\x18\xd2\x25\xd9\xc4\x32\xbd\x12\x14\xe6\x82\xe7\xe4\xea\xdd\x37\xdd\xb6\x68\x8c\xca\x02\x61\x21\xab\xf8\x9e\xef\x78\x37\x4c\x62\xdc\xfd\xb0\x2d\xeb\x8b\xdb\x16\x49\x26\x94\x0b\x8f\xc6\x75\x49\x16\x94\x73\xf0\xc6\x28\xa6\xd1\x92\x3d\x05\xe0\x44\x14\x60\x41\x79\x9d\x88\xa1\x44\x31\x3e\xcf\x80\x50\xad\x69\xb2\x98\x18\xea\xb8\xdf\x0b\x75\x1c\xb2\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\xac\x88\x80\x19\x21\x94\x0d\x4b\xf5\x6b\x85\x61\x25\x75\xc0\xf3\xa8\xa6\xd0\xbd\xbe\x68\x16\x2b\x42\xd3\xd9\xc8\x7c\x0b\x79\xa1\x57\x55\x60\x62\x37\x1d\x68\xc6\xa4\xd2\x24\xc9\x18\x70\xed\xde\xcc\xa6\x1c\x44\x1a\x46\x5e\x9c\xe6\x6e\x46\x94\x9b\x12\x9e\xa2\xf2\x5d\x68\x65\xe3\xef\x2a\x22\x7c\x57\x29\x53\xce\xd6\xa1\xba\x45\xff\x51\x5f\x99\xc6\x6e\x1c\x3f\x23\xb8\x75\xbc\x80\x63\x29\x72\x1f\x35\x48\x68\xd4\xd9\xae\x63\x27\xc3\xf8\x0a\x96\x8f\xf1\xe7\x7a\xd4\xca\x39\x50\xeb\x16\x18\x0a\xb3\xc1\x75\x70\x43\x71\x58\x9a\x73\x00\x09\x18\x51\x94\x46\x64\x32\x9f\x9d\xc7\x34\x64\xb9\xb7\xa0\x14\x9d\xc3\x6d\x47\x38\x42\x0c\x86\x53\x1b\xda\x10\xc7\x50\x6f\x9b\x05\xd8\x44\x57\x5a\x34\x3e\x69\x06\x79\x35\x95\xc7\xdc\xbe\x48\x27\x0a\xbc\xd2\xf4\x28\x99\xd6\x80\xbb\x14\x2b\x39\x21\x00\x6d\x3d\x79\x67\x3b\xb8\xac\xd3\x78\x6e\xd2\x9b\xe3\x19\xf1\x83\xa7\x36\x4c\x6b\x0a\x64\x2a\x19\xcc\xc8\x8c\x61\xdc\x18\x46\x54\x8d\x6c\x15\x02\x8a\xb8\x5d\xaa\x14\x48\x7c\x6d\x67\x16\xf0\xaf\xdf\x8d\x9e\xbf\xb8\xf7\xd7\xb2\xe4\x09\x6d\x94\xe8\xc4\xdc\x62\x6c\x46\xe6\x18\xc5\xe5\x94\xe0\x7f\x79\xf1\x6f\x7f\x24\xd3\x95\x91\xd7\x50\x11\xd3\x42\xd3\xcc\x13\x40\x32\xe0\x73\xb3\x8a\xc8\x72\xbb\xf1\x8d\x56\x7e\xaa\x6a\x71\x32\x96\x33\x6d\x27\xe8\xe5\xef\x1e\xa6\x41\x47\x0f\xf9\xe3\x45\x0a\xcb\x8b\xc6\x16\x1a\x67\x62\xde\xad\xd7\xd7\x31\xa2\x89\x83\xec\x6c\x5b\x4e\xb4\xc8\x58\xb2\x3a\xd6\x99\xf6\xc5\x4b\xc8\x42\x3c\x5a\x63\xce\xe6\x51\x6d\xa4\x7a\x29\x44\x51\x66\x38\x71\xe4\x9b\x2a\x3f\x5f\xa9\x60\x3d\xf5\x51\xa8\x91\xb0\xc1\xed\xd0\x89\xea\x86\x5d\xbb\x73\x5c\x08\xa3\x27\x53\xb8\xc4\x13\xce\xe7\x56\xd5\x21\xe9\x6c\x8d\xfb\x86\x66\xd9\x94\x26\x0f\xf7\xe2\x07\x31\x57\xef\xf8\x95\x94\x42\xb6\xdf\x39\xa3\xe6\x4e\x5f\x94\xfc\x01\xab\xe8\xd6\xc9\x68\xc5\xdc\x61\x0a\x7d\xfe\x80\xc6\xdb\x75\x22\xc6\xbf\xa5\x4d\x0f\xea\x45\x12\x6f\x83\xab\x47\x86\x8f\xac\x36\xb4\x71\x02\x86\xe6\xae\x01\xf8\xd0\x7a\x0f\xd5\x3c\xda\xbf\x7b\xf1\x2f\xff\x6a\x99\x0b\x11\x92\xfc\xeb\x0b\x0c\x39\x56\x23\x7b\x01\xe0\x0d\x6c\x44\xad\x9c\x66\x59\x57\x2f\x41\x93\x05\x7c\xd3\xb9\x38\x75\x0f\x8e\xbc\x3e\xda\xe9\xde\x5b\x65\xbc\xbf\xff\x2b\xea\x8b\x4c\x2b\xc8\x66\x23\x9b\xed\xa5\x32\x6b\x9d\xa2\x74\x75\xea\xae\xbc\xee\x99\x82\x8e\xaf\xb4\x2d\x45\x56\xe6\xf0\x06\x96\x2c\xe9\xe6\xc0\x6c\xad\x4a\xab\x37\x6f\xa6\xcf\x98\xc2\x24\x40\xd3\x4c\x24\x0f\x24\x75\x5f\x36\xa0\xf2\xeb\x55\xb5\xbb\xcf\x42\xd7\xa0\x81\x80\x60\x81\x9d\xef\xdf\x0a\x13\xc8\x69\x51\x54\x19\x4a\x24\x7d\x6c\x4d\x06\xb2\x26\xcc\x8e\x1a\xe8\x46\x0c\x76\xa6\x87\xba\xd2\xc7\xee\x8d\xcc\x35\xd5\xb9\x8b\xce\xb1\x05\xe1\x9e\xf8\x9a\xfa\xee\x7e\xcc\xd6\x86\xa8\x3b\xf4\xa7\xa1\xc0\x7f\xdb\x7c\x0b\x1b\x99\xb1\xaa\x94\x43\xd5\xc6\xb0\x12\xa4\xd9\x3e\x78\xcb\x74\x37\x5f\x46\x70\x86\x86\xc5\x48\xb4\xe6\x85\x57\x4e\xe8\x9c\x6a\xa7\x1f\x79\x2f\x3b\x25\x05\x48\xc5\x94\x11\x9d\x3e\xe0\x81\x7a\x9d\x51\x96\x37\xdc\x77\xc7\x9a\x84\x4d\x44\x7d\x4e\x8b\xf1\x03\xac\x3a\x6e\xb8\xc0\xe3\xb2\x0b\xe0\x9f\xd3\xa2\xe3\x3d\x80\xa5\x6b\xc3\xaf\x81\x8e\x97\xf3\xad\x48\x1d\x1d\x78\x3d\xd8\x92\xc4\xcf\xa2\xc6\x46\x94\x81\x8e\x7d\xe5\x7c\xa8\x17\xae\x7d\xe3\x98\x4f\xaa\x2b\xc7\x3e\xf5\x35\x5d\x34\xf8\x7e\x5f\xea\x3d\x53\x11\x1f\x89\x9d\x06\x21\x9d\xf0\x76\x72\x3b\xa3\x7d\x1d\xb5\x0c\x5a\xf6\x64\x36\x54\x5f\x67\x68\x9a\xd8\xa2\x00\x01\x04\x98\xa3\xe8\x06\x25\xa7\xaf\x4e\x8f\x7a\xc7\xd9\x95\x91\xa2\xa0\x73\xd4\x4c\xfb\xb0\x40\xeb\x34\x35\x73\xd0\x2e\xc4\xa3\xfd\xde\xa2\x4b\x0a\xf7\x14\xa4\x75\x22\xf3\x85\x08\x5a\x1d\x8b\x1c\xf4\x3b\xc2\x69\xd7\x36\x57\xe1\x23\x5d\x11\x2a\x45\xc9\x83\xc2\xa0\xd1\x31\x52\x39\xce\xde\xae\xbd\xec\x8d\xe0\xe0\x9d\xf4\x21\xa3\xdc\xd7\x39\xcc\x99\xb2\x78\x05\xc6\xc9\xcb\xc9\xcb\x17\xc1\xb4\xbf\x87\xa4\x94\x8a\x2d\xe1\xbd\xab\x71\xde\x70\xaa\x5c\xcf\x6e\x85\x52\x6c\x9a\x61\xe0\x96\x16\xe4\xca\x16\x80\xdf\x7c\xd1\x0a\x38\x82\x6f\x2c\x64\x33\x5b\x69\x00\x85\x67\xf6\x04\x37\x01\x9f\x66\x80\x00\xd4\x47\xbf\x24\x49\x5c\xd7\x35\x49\xf2\xa6\x92\x24\xed\xbd\x77\xd4\x77\xf5\x85\xef\xfb\xc0\x49\xde\x3a\xdf\x40\x5d\xd9\x9e\xf9\xca\xc9\xf8\xd1\xa3\x64\xda\x1d\xee\x47\xa6\x80\x9c\xa1\x55\x62\x6d\x33\x06\x25\x68\x6e\xda\xb0\x02\x2b\xe0\xc7\x48\xb0\x2c\xd7\x8f\x6e\x1f\x56\x69\x93\x9f\xd4\x08\xfc\x47\x67\xc0\xaa\x57\xd0\x71\xff\xfa\x5e\x5e\x50\x9e\x66\x41\x3c\xa3\x9a\x95\x6c\x15\x94\x0b\xe7\x7a\x46\x9a\x2c\xd1\xf9\x2f\x1b\xd5\x24\x16\x54\x11\x2e\x48\x0e\x14\x01\x9a\xe6\x76\xf1\x5c\xb0\x95\xab\x39\x1e\x0d\x76\xb3\xdb\x6b\xac\x79\x21\x38\x76\xfd\x86\x29\xc7\x9e\x0d\x1f\x71\x1a\x88\x85\x75\xe4\x34\x0d\x09\xed\x6e\xcc\x69\xbd\x78\x93\x1a\x34\xb9\x4e\x49\x7d\x71\xac\xd1\xf2\x1c\x74\x8c\x5c\x09\x72\x33\x7c\x89\x38\xc1\x2d\x66\xb9\x1a\x24\x13\xe4\xcd\xb6\x6d\xfd\x75\xab\x6b\x71\xe3\x5d\xb7\x53\x5c\x11\x1c\x40\xc3\xd3\xaf\x3a\x6a\xf0\x42\x8f\x11\xb5\x2e\x75\x57\x03\xc5\x45\x3c\x86\x65\xf2\xf6\x4e\x89\xca\xdc\x33\x07\x0e\x92\x3a\xbf\x82\x87\x88\xba\xe4\x2b\x54\x09\x1e\x7a\x20\x9e\xd8\x70\x86\xdf\x3f\x2d\xa6\xd8\x9f\x05\x10\x82\x72\xce\x99\x90\x6b\xa7\xdd\x79\x4c\xb6\x49\x2c\x31\xdf\x7a\x2d\x35\x97\xdd\xfc\x8d\x9c\x9f\x66\x51\xfe\xbb\x64\x4b\x9a\x81\xcd\x61\xef\x59\xc3\x51\x85\x09\x55\x4e\xfb\xaa\x36\x3a\xfd\x10\xd5\x8e\xed\xa0\x87\x9d\x1a\x64\x24\x79\xe2\xe4\x84\x9c\xd9\x31\x4e\x6d\x92\xdd\xe3\x0a\xb9\x6e\xad\xae\x3e\x16\x01\x95\x5b\xe3\xad\xd7\xd5\xc7\x82\x22\x4e\xa3\xe8\xc5\xc2\xfd\x2f\x58\xd0\x25\x60\x4e\x63\x96\x51\x99\x21\x28\xfd\xce\x4e\x19\x99\x96\x9a\x00\x5f\x32\x29\x78\x6e\x8e\x1f\x26\x9f\x31\x9c\x49\x02\x26\x83\x4f\x40\x91\xdf\x9c\x7d\xb8\x7c\x8f\x41\x4b\xe7\x2e\x5b\xbe\x7b\xbf\x52\x61\x7e\x80\xb5\x77\x68\x74\xd7\xc7\xfd\x46\xfc\xbb\x9b\xed\x82\xf2\x89\x9f\x0b\xf3\x6e\x79\xa9\x4b\x9a\x61\xea\xe7\x24\x2b\xcd\x5d\x78\xb4\x9d\x1d\xdf\x06\x1e\x62\xc9\x8b\x69\x02\x77\x89\xbf\xdf\xb0\x4e\xc7\x35\xc6\x41\x7d\xdd\xd8\xaf\x1b\x69\xc8\x3b\xd7\x78\xd8\x92\x84\x72\x43\xd0\x39\x55\x55\x62\xca\x66\x1c\x8e\xbb\x8b\xbb\xc1\x33\xb0\x74\x82\x0d\xfe\xf6\x35\x49\x37\x2c\x8c\x58\xa3\xe5\xe8\x36\xfc\x0e\x87\x21\xde\x31\xe8\x60\x88\x8e\xb3\xeb\x53\xae\x5e\xe3\xd2\x1c\x46\x71\xd8\x46\xbf\xab\x34\x59\xb3\x11\xde\xdc\xdc\x35\x0b\x7a\x58\xe7\x9f\x38\x78\x25\x6f\xeb\x2e\xea\xaa\x37\x58\x11\xaf\x72\xa0\x82\x9c\x5b\x71\x1a\x33\xcf\x56\xf2\xf5\x9b\x9b\xbb\x03\xc7\xf2\xbb\xd9\x0a\xc3\x53\xaa\x2c\x46\xfa\xcd\xcd\x9d\xc5\xad\x1d\x46\x7b\x67\x47\x4a\x77\x1f\x04\x26\x70\xc3\xdc\x5a\x1d\x38\x76\x38\x97\xbb\xac\xf0\x20\x66\xf1\xd1\xe7\x6b\xa9\x21\xd7\xb7\x84\xa6\xa9\x44\x38\x73\x97\xb3\xdc\xca\x68\x47\x8b\xa2\x42\xa5\x62\x91\x18\xaa\xa0\xf9\xea\x8d\x3d\x80\x82\x4f\xc7\xf5\xb3\xed\x4d\x59\x64\xcc\xc2\x4f\x9b\x43\xd4\x25\x74\x72\xb1\xec\xc2\x9f\x42\x3c\x8c\x9d\xfd\x8b\x41\xf2\x41\xd4\x9c\x73\xa2\x6b\x79\xda\xd8\xbb\x54\x82\x12\xd9\xb2\x2e\x9e\x1f\xbc\x3b\x1d\x3b\x42\x48\x62\xb5\x3b\x7d\x05\xda\x67\xda\x99\xc0\xb5\x64\xb0\xb9\x2b\xc9\x7b\xf3\x76\x25\xb2\xb3\x8a\x04\xb6\x04\x0c\x59\x72\x15\x82\x3b\x8c\x8c\xc3\xf8\xb8\x5b\xa2\x17\x36\xea\x86\x6a\x3c\x99\x54\x7a\x51\x00\xdf\x3c\xe0\x15\x8f\x72\x44\xd6\x32\xd3\xa7\x6f\x6e\xee\xec\x4d\x6a\xa7\xcb\xe5\xf3\x56\x5b\xf7\x4e\xe7\x4b\x8e\x1c\xbf\x4c\x52\x88\xdb\x26\x5a\x4c\x69\x55\xd2\x94\x6d\x9d\xe0\x53\x15\x98\x22\xf5\xbd\x83\x26\x84\x05\x02\x07\x58\x0e\x82\x32\x95\xb6\xb1\x21\x3e\xec\xf5\x13\x93\x85\xa3\x1d\xe5\x5d\xa3\xde\x15\x0a\xa8\x4c\x16\x5d\x36\x76\xec\xcb\xc2\x52\x42\x52\x61\x23\xc4\x66\x42\xa2\x07\x7e\x8c\xa2\x4e\x26\xc4\x43\x59\x3c\x8f\x74\xe3\x06\x2e\xa8\x5e\x3c\xdb\x25\xd2\x1a\x63\x90\x6f\xba\xef\xd9\x94\xab\x2e\x71\x2e\x81\xca\x17\x68\xab\x72\xe1\xc8\x75\xa6\xb6\xc3\x2f\xa3\x96\x19\xec\x75\x56\x2a\x0d\xf2\x1b\x26\x95\x3e\x39\xb4\xa7\x0f\x34\x63\x2e\x71\xb2\x85\xb0\x9c\x36\xbb\xfb\x0b\xd3\x0b\x57\xa8\xf7\x74\xd4\xfe\xca\xfc\xed\xc8\x38\x25\x42\x92\xd3\x1b\xc1\xe1\x60\xf0\xd0\x9a\x06\x5a\x09\x3e\xd5\x95\xbe\x53\x66\x73\x93\xa8\x20\xb3\x49\x55\xf0\x8b\xce\xe7\xec\xde\xd5\x4e\x36\xf4\x78\x49\x41\x81\x26\x14\x8b\x4e\x62\xdf\x8b\xba\x60\xb1\x2d\x8e\x66\x0b\x3d\x0b\xa7\xf3\xae\x1a\x4b\x7b\xe0\xe0\x8d\xea\x6a\x5a\xec\x5e\x80\x2e\xaa\xed\xc1\xe7\x0c\x33\x86\x80\x2b\x27\xf3\x03\xe3\x0f\x07\x1e\xf2\xb0\x13\x72\xb5\x31\x7a\x23\x45\x8b\xf7\xbd\x33\x6e\x93\x26\x18\x51\x8f\x4e\x45\xa9\x7d\x89\x9b\xa6\x17\x9e\xf1\xff\xb2\xfb\x02\x01\xac\x98\x00\xe7\xd0\x55\xd9\x62\x00\x57\x23\x0b\x73\xf1\x16\x6e\xb5\xe2\x9a\x62\xad\xed\x37\x22\x79\x00\x49\x32\x43\xf3\xa1\x9b\xaf\x8e\x63\x6d\x55\x55\x3e\x38\xac\xa5\x2b\x22\x03\x8a\x05\xe4\x20\x69\x56\x19\x40\x3f\xeb\xa2\xff\xe0\x6e\xef\x8a\x8c\x66\x10\xa7\x2d\x8f\xe8\x0a\xe5\x8a\x74\x42\xae\xb6\x3d\x95\xd3\x95\x2f\xfc\xce\x38\xfa\x0e\x3f\x32\xa5\x0f\xbf\x61\x0a\x91\x36\x73\xa4\x96\x0a\xe4\xb8\xca\x99\x4b\xa8\x2b\xbe\xe8\xe3\x69\x53\x98\x96\xf3\x39\xe3\xf3\x89\x15\x0f\x50\x0c\xa9\x0b\xc4\xd6\xb6\xb0\xc7\x05\x1c\x8a\x90\x49\x24\x50\xc4\x0f\xa3\xb2\x62\x21\x13\xac\xd9\x7b\x2e\x52\xdb\xf9\x74\x65\x2d\xb0\x7e\x4f\x56\x89\x94\xc8\x35\x27\x42\xba\xba\x18\x34\x4d\xc9\xc1\x30\x9d\x2d\x2b\x82\x7d\xd5\xf3\x6b\x89\x2b\x6b\xff\xfc\xa9\xaa\x7f\xd5\x58\x20\x55\x4e\x8d\xec\x5b\xca\x43\x6b\x5d\x77\x95\x51\x3a\xc9\x27\xa1\xb2\xe8\x25\xaf\xb7\xe7\xeb\x66\x26\x02\x4a\x34\xe4\x85\x90\x54\xae\xd6\xc3\x4d\xcc\x4d\x62\xb6\xaf\x59\xa0\xb5\xb9\xbd\x15\xa9\x11\x12\x0e\x26\x63\xcb\xb6\x5d\x32\xa3\x76\x6e\xdb\xb9\x5b\xcf\x13\x5e\x6d\x5c\x10\xbf\x66\xa4\x03\x15\x2a\x59\x40\x5a\x62\xf6\xa9\x79\x49\x25\xe5\x1a\x0c\xff\x74\x10\xd6\x55\x0b\xc8\x51\x65\x6a\xa8\xd2\xb6\xad\x30\x6e\x14\x8b\x3b\x9b\x4f\xb0\xae\x74\x17\xb8\x89\x13\x8e\x4d\x47\x8d\x74\x10\xf7\x0b\x20\x46\x92\xcc\x40\xe3\xe4\xc3\x92\x25\xda\x0f\x32\xc3\x45\xd8\xb2\xf5\x13\x5a\xda\x54\x0f\x87\x03\x80\x6e\x85\xab\xa3\x9a\x80\xb9\x93\xb4\xaa\xa7\xd6\x45\x3d\xb2\x4e\xb8\x92\x7b\x7f\xb2\xb7\x11\x5c\x1f\xcc\x27\x8e\x24\x1a\x45\x3a\x33\x4d\x7c\xbb\x4f\x30\xe6\x6a\x8d\xb7\xac\xc4\x81\x43\x05\x18\x60\xba\x87\x3c\x74\x0a\x55\x08\xb1\xf5\x50\x39\x3f\x5a\x10\xd0\xa5\x9c\x97\x39\x06\xcd\x3b\xdd\x16\xb8\x96\xab\x42\xb0\xae\x7e\x7b\x73\xd4\xd0\xcd\x78\xaa\xc8\xeb\xb7\x6f\x9a\x09\xdf\x9a\x65\xfa\x7c\x3a\xc0\x6e\x83\x7c\x88\x0b\x50\x20\xd7\x33\x42\x2b\xa1\xaf\x13\x45\xf5\x45\xed\x6c\x3e\xce\xf5\x5b\x11\xe8\x2d\xb0\x8c\x17\x46\x82\x45\x39\xbd\x51\xd7\x27\x59\x50\x3e\x37\xac\xea\x8d\x28\xcd\x8b\xfd\xe6\x37\xf8\x12\x12\xd2\x32\xe9\x08\x2e\xc5\x84\xd1\x2e\x2b\xd2\x6f\x3c\xcc\xcb\x15\x10\x33\xba\x28\xa8\x84\x16\x7e\x6a\x9a\xb3\x67\xa5\xdc\x57\x84\x4d\x60\x42\x4e\x7e\xd3\xf8\xea\x04\x29\xee\x44\x4d\x21\x85\x79\x15\x97\x84\x09\xdf\x3e\x63\x1a\xf9\xc7\x49\x73\x84\x09\xb9\x32\x74\x21\x6a\xba\x5a\xdb\x46\x5e\x9d\x69\xbd\xb2\x23\x22\x61\x4e\x65\x9a\x41\xc7\x04\x22\x62\x56\x29\x19\x36\x51\xa5\xdb\x55\xc8\x18\x31\xaf\x00\x17\x7a\x12\xc7\xf5\xbd\x6f\x46\x3b\x4d\xd5\x83\xba\xb0\xea\xcc\x38\xa5\x9a\x8e\x69\x61\xed\x41\x4c\xf0\x0b\x6b\xea\x1e\xbb\x22\xe5\x63\xea\x4e\xef\xb8\xda\xd9\x17\xbf\x76\xe9\x57\xc7\xb4\x7a\x8a\xf1\x31\x1d\x63\xd9\xee\xce\xf6\x9b\x23\x84\xdd\x45\x07\xce\x04\x95\x63\x0a\x28\xbb\x1f\x83\x4d\x5f\x55\x5c\xd9\x2e\xc5\x84\xdc\x08\xed\xab\xeb\xa7\x75\xa0\x61\x40\x71\xf6\x26\xe3\xbe\xba\xb9\x7f\xff\xd7\xdb\x77\xd7\x37\xf7\x03\xff\x1e\xf8\x37\xb6\x81\x7f\x0f\xfc\xbb\xc3\xc0\x7d\xe1\xdf\xc0\x97\xc7\xe2\xdd\x95\xbd\x6b\x9b\x81\x71\xad\xda\x6b\x60\xa0\xf8\x57\x14\x68\x7f\xc5\x97\x1f\xa8\x51\x1d\x0b\x09\x0a\x15\x14\xa3\xb1\x6e\x03\x29\xbb\x07\xd0\x12\x58\x63\x3a\xbf\xd8\x48\xfb\x23\xc6\xc9\x47\x8c\x13\xbd\x69\xd4\xf0\xd8\xb6\x6a\x75\xc9\x20\x4a\x5e\xff\xed\xfa\xcd\xd5\xcd\xfd\xf5\x37\xd7\x57\xef\x8f\x1a\x42\x10\x58\xb4\x34\x5e\xf0\xc0\x21\xf2\x51\xc0\x30\xb5\x64\x55\x48\x58\x32\x51\xaa\x6c\x55\x55\xc7\xdf\xce\xae\x36\x93\x16\x04\xc6\x62\xad\xbc\x37\x67\xfb\x80\x6b\xb2\xdd\x36\x39\x2d\x60\xf8\x23\x4b\x78\x8e\x88\x18\x72\x5e\xc0\xf8\x5b\x24\xc4\xfd\xa5\xbd\x80\x71\x3b\xc9\x89\xbb\x64\xbe\x00\x3a\xda\xd2\x62\x40\x47\xed\x60\x95\xe3\x73\xb2\x6f\xa4\xc8\x23\x71\xb3\x3b\x6b\x37\xf6\x10\x86\x6d\x47\xb5\x02\x37\x35\xa5\x10\xa7\x39\xd6\x25\x4a\x8c\xd6\x9a\x17\xba\x63\x78\x05\x89\x55\x9e\x3d\x4e\x25\x73\x0b\x4e\x7f\x4b\x8b\xef\x61\xf5\x1e\x02\x8b\x31\xb5\xe7\x1b\x61\x0e\x8a\x50\xf2\x00\x2b\x8b\x61\x7c\xed\x07\x0b\xab\x47\xd5\xc3\xea\xf6\x0f\xd0\x2d\xe7\xbb\x6f\xf1\xca\xd2\x3f\x40\x40\x46\x02\xdf\x36\x6a\x96\x9b\x25\x44\x31\xdf\xac\x69\xaf\xaa\xb4\xf7\xb5\x0c\x7f\x53\x7a\x74\xd7\x43\x84\x89\x5b\xcf\x4a\x03\xb3\x19\x24\xda\x47\xba\xdb\xdd\x3c\xc2\x60\xc8\xb4\xb4\xa5\x34\x69\xf2\xf0\x48\x65\xaa\x48\x22\xf2\x82\x6a\x36\x65\x19\xd3\xab\xb0\x30\x78\xdf\xf0\x86\xaf\xf2\x78\x5b\xa6\x48\xae\xb9\xd2\x14\xaf\x42\xe1\xec\x6d\x66\xb5\xeb\x64\xba\x98\x73\xd7\x72\x53\x0c\xb8\xa1\x32\xbc\xfe\xbd\x21\x25\x17\x4a\x93\x04\xa4\x11\xea\xb2\x15\x79\x94\x82\x77\x4c\x71\xdd\x6e\x07\x56\x71\x11\x4b\x23\x0b\xc2\xe3\x85\x0b\xc7\x1b\x9b\x17\x1f\x5b\x66\xa5\x2e\x30\xd8\xe3\xe2\xd7\xf8\x9f\x3e\x9d\x22\xe2\x83\xf9\x5e\x91\x93\x93\xc0\xbe\x84\xc7\x06\xc5\x3d\x95\x77\x0e\xb3\xd6\x14\x9d\xaa\x0b\x85\xd8\xc4\xbb\xc8\xa7\x7c\xba\x01\xa7\x05\x44\x9a\xe6\xb0\xac\x31\xb6\xb5\x0c\x42\x39\x2d\xc2\xec\x41\x75\x43\x76\x10\xf7\xf6\x0e\xe6\x81\xf5\xf5\x6f\x99\x55\x55\x0c\x33\x7d\xe5\xd3\x68\x28\x92\x83\xa6\x29\xd5\x74\x62\x0e\xc4\xa8\xfd\xa7\x2a\x68\x02\x23\xf2\xf7\xea\xc3\x8c\x4e\x21\x53\x3f\x9e\xfe\xfb\xf7\x57\x7f\xfd\x8f\xd3\x9f\xfe\xde\xfc\x0e\xc5\x35\xb4\x4f\x36\x1f\x08\x7c\x05\x84\x24\x71\x91\xc2\x0d\x52\x87\x7f\x3a\x4d\xef\x32\x49\x44\xc9\xb5\xfb\x02\x73\xa8\x4f\x16\x42\xe9\xeb\xdb\xea\xcf\x42\xa4\xeb\x7f\x05\x54\xca\x23\xfd\x94\x7b\x70\x6d\x03\x72\x2a\xda\x16\x4f\xfa\xa1\x05\xfb\x00\x52\x05\xa5\xe1\xf3\xad\x1d\x18\x61\x7b\xf5\xdb\x58\x25\x0b\xc8\x29\xfe\xf3\x1b\x3f\x05\xe6\x3e\xae\xaa\x5c\x70\x4c\x56\x6f\xee\xc0\x76\xe9\xdc\x93\xe5\xcb\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\x79\x7b\x4d\x96\x76\x86\x7b\x34\x39\xcf\xc5\xae\x3d\x86\xe9\x9b\x5e\xb3\xed\x26\xd2\xaa\x65\x2f\x7b\x45\x30\x9d\x92\xff\xde\x95\x34\x50\x55\x19\x47\x50\x3a\x54\xb6\x39\xb3\x5d\x4e\x92\xa2\x1c\xb9\xee\x27\x39\xe4\x42\xae\xaa\x3f\x2b\x7c\xd8\x58\x69\x21\xe9\x1c\x13\xd2\xd9\xc1\xed\xcf\xaa\xbf\xec\x0f\x5b\xe4\x6d\xfe\xda\x1a\x24\x93\x52\x1a\x39\x3d\x5b\xd5\x99\x9e\xbe\x3a\x96\xed\xd7\xad\x27\x1c\xbb\xda\x56\x37\xf1\x15\xb9\xd3\x1a\xd1\x8a\x6a\x62\x35\x8b\x68\x05\x72\x89\xa3\x47\x95\xc0\x6a\x4d\x95\x7c\x49\x96\x54\xaa\x90\xc2\xe6\xb6\x45\x64\xd2\x29\x5b\x32\x25\x02\x92\x02\x55\x1d\x6d\x4a\xd4\x3e\xb3\x82\x2b\x51\x62\x03\x15\x2a\xbf\xc7\xc7\x02\xcb\x95\x55\x87\x7d\xed\x36\x7b\x19\xaa\x2c\x10\x52\x50\xad\x41\xf2\x57\xe4\x7f\x9f\xfd\xe7\x6f\x7f\x1e\x9f\xff\xe9\xec\xec\xc7\x17\xe3\x7f\xfb\xe9\xb7\x67\xff\x39\xc1\x7f\xfc\xf3\xf9\x9f\xce\x7f\xf6\x7f\xfc\xf6\xfc\xfc\xec\xec\xc7\xef\xdf\x7e\x7b\x7f\x7b\xf5\x13\x3b\xff\xf9\x47\x5e\xe6\x0f\xf6\xaf\x9f\xcf\x7e\x84\xab\x9f\xf6\xec\xe4\xfc\xfc\x4f\xbf\x09\x26\x3d\x42\xfd\x72\xdb\x62\x56\x31\x6f\xf7\x18\x49\x3b\x7c\x96\x8a\xe6\x75\xf3\xdb\x2b\xf6\xf9\xf7\x91\xb9\xaf\xea\xdb\xac\x92\x42\x7a\x74\xc0\x9f\x4b\xd0\x50\x90\x48\xd0\x9f\xc3\xb2\x6b\x47\x6a\x14\x5c\x70\x41\xd5\xa8\xc4\x7d\x6d\x37\xe8\x2f\xc1\xd8\xeb\xf5\x1c\xbb\xae\xb5\xe8\x3e\x93\x22\x77\xf9\xdb\xad\xe7\x7b\x89\xd1\x98\xee\xb9\x07\x08\xf0\x8a\xf8\x36\x18\x87\x3b\xb7\xc1\x38\xbc\x83\x94\xc1\x38\x1c\xd4\xbe\x48\xe3\xf0\x9d\xe5\x49\xbf\x48\xcb\x70\xfc\x9c\x8b\x1d\x31\x5d\x31\xd3\x2d\x02\x5f\x76\xc5\x03\xc4\x04\x41\x7a\xb3\x47\xb3\xa8\xe6\x7e\x48\xa3\xee\xa8\x76\xb3\x72\x15\xac\xa9\x86\xca\x5b\x91\x36\xdf\x0e\x43\x23\x97\x59\x46\x18\xb7\x17\xb4\xe9\xa0\xd3\xe8\x75\xca\x0e\x97\xf9\xda\x65\x3a\x5e\x9a\x57\xf5\xa1\x8f\xed\x22\xd6\x18\x29\x87\x91\x9a\x7f\xb1\x81\x90\x0f\x36\x36\x52\x69\x9c\x12\x5f\x9a\xbc\x13\x39\x95\x1a\x6a\x91\x33\xe6\xa2\xa0\x4a\x89\xc4\xc6\x8d\x56\xa9\x16\xb0\xa6\xa8\x9b\x1e\x7c\x03\x4d\x1f\x10\x22\x96\x40\x0a\xfc\xd0\x88\x5e\xdf\x3e\xd8\x9c\x13\x7e\x1d\xa6\x2b\x2c\x8d\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\x0e\x71\xbd\x2f\xa2\x7a\x4f\xc4\xf4\xe7\x11\xd1\xfb\x29\x9e\x47\x13\xcd\xe3\x88\xe5\x71\x44\xf2\x03\xb0\x1a\x31\xc5\xf0\x38\x22\xf8\x73\x18\xe0\x0a\x09\x33\xf6\x31\x12\xc7\xbf\xe4\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\xdb\x66\xae\x1a\x6e\x44\x32\xdc\x88\x07\xb4\xe1\x46\x1c\x6e\xc4\xcf\x72\x23\x3a\x6e\xf5\xf5\x5f\x87\x91\x03\x61\x31\xc4\xff\xe8\x15\x37\x2c\x19\x01\xa9\x83\x0f\x3c\x8a\x75\x8a\xa2\x0b\x1c\xb9\xcb\x89\x0b\x3a\x67\x38\xea\x6d\x99\x65\x5d\xd2\x90\xda\x16\x63\x01\xae\x71\xda\x8b\x32\xcb\x5c\xea\xca\x6e\xb3\xff\x8e\xe3\x05\x76\x99\x3d\xd2\x95\x1a\x91\x1b\x58\x82\x1c\x91\xeb\xd9\x8d\xd0\xb7\xd6\x26\xd1\xad\xdf\x66\x04\x95\xed\x9c\xb0\x19\x79\x95\x51\x0d\x4a\x13\x4d\xe7\x68\x21\xab\x8b\xab\x08\xd9\x1a\xb4\x2e\x1f\x77\x44\x53\x51\xf8\xde\xfc\xb5\xcf\xef\x37\x3e\xce\x5e\xcd\xd8\x0c\x92\x55\x92\x85\xb3\x89\x1f\x7c\x4f\x3e\xf6\xcb\x8b\x07\x08\x16\xda\x92\x40\xec\x0b\xcc\xd2\x5e\x08\xa5\xef\x34\x95\xfa\xd8\xa9\xda\x6f\x3d\x21\x66\xb2\x13\x9a\x65\x90\x12\x96\xe7\x90\x32\xaa\x8d\x20\x48\x67\x1a\x64\xb3\x18\x3d\x3e\x67\x4b\xf0\x4d\x6c\xc5\x3e\x5f\xcd\x54\x92\x19\x65\x99\xea\x8e\x01\xdf\x30\x6b\xdb\x0a\xda\xd4\x55\x6f\x6c\x24\x00\xa4\x49\x22\x64\x8a\xe1\xad\xc2\x27\xca\xc3\x97\x08\xe1\x4f\xa6\xbd\x43\x51\x21\xa7\x9c\xce\x21\x77\x45\x05\xdb\x64\x4d\x33\x91\x3c\x28\x52\x72\xcd\x32\x57\xba\x5b\x3c\xa0\x40\x9c\xe1\x49\xed\x3c\x74\x77\x06\x50\xfd\x73\x5c\x1d\xc2\xb1\xa1\x4a\x5d\xfc\xba\xfe\x0a\x3f\xe8\x48\x5c\x04\xb5\x2c\x86\x52\x06\x1f\x21\x09\x11\x10\xdb\x66\xf1\x8f\x90\x34\x6a\xf6\x52\x9f\xac\xc9\x66\x60\xc4\x14\x49\x91\xbc\x49\xb6\x45\x42\xd5\xc4\x42\xb2\x04\xa4\xa6\x6a\xb6\xd8\x40\x8d\xd7\x6e\x11\x98\x72\x33\x6f\xff\xcc\x18\x87\xf6\xc2\x28\x5b\xb1\x04\x9a\x89\x2c\xcd\x9f\x1b\x25\xd9\x7c\xf8\x71\x30\x69\x9e\x16\x43\x9b\x14\x42\x93\xb3\xd3\x8b\xd3\xf3\x8d\x3d\x72\x6a\x34\xea\x0c\xd4\x4a\x69\xc8\x6d\x12\xd1\xa4\x7e\x29\xc5\xf2\x02\x4b\x04\x42\x72\xea\x2b\x9a\x06\x53\x66\xee\x48\x9b\xd5\x18\x67\xc5\x25\xf4\x1a\x11\x25\x88\x96\x34\x65\xce\x8a\x85\x9f\x9a\x87\xb4\x2c\x5d\x92\xe2\xb3\xd3\x9f\x4f\x47\x04\x74\x72\x4e\x1e\x05\x3f\xd5\x38\x7d\x13\x72\x2f\x48\xa9\xc2\x67\xac\x22\x64\x25\x4a\xc2\x01\xdc\xd9\xaa\xf2\x98\x9b\xeb\x86\x88\x52\xdb\x2c\x92\x54\x87\x24\x22\x6b\xb6\xab\x8f\x4c\xbb\x28\x20\xc3\xbf\x5f\xac\x55\x8d\xcd\xd8\x12\x2e\x16\x40\x33\xbd\xb0\x18\x75\x2e\xf8\xf8\x1f\x20\x05\xa6\x2d\xe3\xee\x9b\x50\x32\xc2\x9c\x7f\xcd\x16\xe0\x08\xdc\x24\x28\x0a\x3c\x25\xb2\x76\xe9\x9b\xb9\xf6\xbe\x85\xce\x22\x11\x59\xe7\x47\xdf\xdd\xdf\xdf\x7e\x0b\xba\xc9\xe5\x39\x7e\x48\xbe\xbd\xba\xf7\x91\x09\x8d\x54\xde\x3d\x60\xef\x71\x20\x93\x63\x52\x08\xd9\x87\x5b\x66\x21\x54\xd0\x72\x92\x67\xb8\x62\xbe\x13\x4a\xdb\x9a\x76\x5a\x18\xb6\xcd\x21\x31\x9b\xa0\x0d\xb3\xf7\x39\xd2\xaf\x6f\x27\xe4\xaf\xa2\x34\x13\x32\xa5\xd3\x6c\x45\x1e\x29\x77\xd6\xee\x30\x6c\xac\x69\x27\x86\x94\x13\x73\x83\x98\x9d\xff\x1d\xd0\x14\xa4\x42\x06\x0d\x34\x30\x0a\x26\xe2\x71\x6f\xd0\x16\x75\x29\x5f\x97\x4a\x8b\x9c\x2c\xdc\x6b\xb7\x53\x9a\xb9\xc3\x39\xb1\xc7\xd5\xe5\xb5\x91\x50\x58\x26\xee\x7e\xf3\xd5\xb1\xe8\x0d\xee\x65\xe7\xdd\x7d\x3e\xb5\x62\x6a\x73\xda\x9c\xc5\xdc\x66\x4c\x71\xbc\xcd\x6c\xd5\x68\x68\xc6\x08\x28\x70\x12\x11\x09\x4e\xc2\x92\x9d\xad\x77\x84\xde\x83\xe0\x9e\xe2\x81\xcb\x49\x34\x00\x35\x79\x16\x10\x35\x71\xd8\x38\xb7\xf9\xac\xe7\x28\xac\x92\xdb\x7a\xe7\x8d\x02\x5a\x09\xe5\x82\xb3\x84\x66\xec\x1f\x90\x92\xb2\x10\xdc\x45\x4c\xa1\x64\x9b\x50\x05\x63\x04\xfe\x71\xcb\xce\x55\x23\xed\x96\xe1\x0e\x5a\x08\x14\xf7\x10\xe6\x64\xd8\xbd\xa5\x3a\x0e\xa9\x51\xb1\xbe\xc1\x39\xe4\x9a\x6d\xc3\x43\xdb\x5a\xac\x38\x3b\x9e\x7c\x11\xe2\x24\xb1\xa1\x6e\xc1\x61\xd6\x9b\x41\xd6\x5a\x10\x9a\x24\x98\x58\xcc\x5e\x57\xc8\x78\x6d\x49\xd9\xde\xdc\xdb\x46\x04\xec\x9b\xec\x65\x9d\xd8\x92\xf0\x32\x9f\x82\xac\x33\x54\x48\xbd\x39\xa7\x51\xac\x2e\x6e\x58\x3b\x9c\x77\xfb\x79\x19\x83\xf2\x39\x90\x97\x66\xe4\x3f\xfe\xe1\x0f\xbf\xff\x43\x84\x71\xcc\xeb\x55\xd8\x60\x4e\xae\x2f\x6f\x2e\xff\x76\xf7\xe1\x35\xe6\xbd\x0b\xed\x3e\x52\xe8\x63\xec\xc0\xc7\xa8\x61\x8f\xcf\x1a\xf4\x88\x19\x24\x82\xb9\x6c\xec\x23\x71\x87\x54\x99\x4d\x58\x2a\x9b\x2b\xcf\xe9\x24\xce\xba\x6d\x4d\xcc\x2a\x42\xb0\x52\xd3\x4f\x66\x18\x56\x2f\x38\x95\xca\x00\x8a\x68\x1a\xff\x9d\xe9\xad\x95\xfe\x97\xa4\xbe\x0c\x3c\x5a\x98\xda\xb6\x7c\x57\x09\x0e\x69\xf8\x8a\x94\x7f\x05\x89\xe0\x69\x88\x0a\x10\x4b\xa4\x75\x94\x44\x3d\x73\x77\xb6\x4f\x6f\x22\xae\xaf\x12\x37\x18\x6a\x92\xa1\x2b\x4a\xaa\x55\x8d\xc3\x27\x6d\x8c\x3f\xf6\xf6\xc7\x7f\xe9\xee\x20\x4b\x8a\x3b\x91\x3c\x44\x34\x91\x05\x32\xb0\x37\xe6\xa4\x25\xd6\x17\x78\xff\xfa\xd6\x12\x67\x56\xe6\xe6\xdd\x7d\x9d\xd0\x03\x03\x58\x6a\xb7\xee\x77\xce\x5b\x48\x79\x4a\x1e\xa0\x08\xd3\x2e\x0d\xc3\xf4\xb8\xb4\x36\x2c\x0d\x6d\xef\xd2\x39\x91\x6d\xd0\xac\x65\x04\x1e\x4e\x66\x25\xe2\xb0\x54\xc4\x0d\xbf\x37\x3a\x02\x9d\x12\x32\xa3\x2c\x23\x14\xad\xf2\x9a\xe5\x60\xa3\x76\xd0\xd8\x5f\x03\x11\xbe\x22\x86\xf3\xb5\x5a\x1b\x4f\xeb\xa2\x9b\x87\x5a\x0d\x43\x73\x1d\x7c\xdd\x6a\x80\xe3\xd9\x36\x49\xcc\xa0\x06\x1c\xd2\x06\x35\xa0\xa3\x1a\x50\x48\xb8\xd3\xa2\xb3\xac\x19\x0d\x70\x63\xc9\xd8\x01\xb7\x99\xc2\x4c\x48\x58\xc7\xdb\x34\x70\x30\x0e\x8a\x1d\x00\x35\xbd\xbc\xbd\xae\x7c\x5f\xa2\x85\x75\xb1\x11\xa6\xbe\xfc\x67\xc6\x96\xc0\x41\xa9\x0b\x44\xd6\x94\x85\x35\x2c\xe3\xd5\x56\x4a\xe8\x8e\xf2\x29\x24\x40\x8e\xf3\x38\xaa\x73\xc4\x98\xd7\x05\x6e\x3f\x04\x9d\x58\xbf\xb9\x87\x15\x39\x18\x98\x9f\xae\x59\x90\x3b\xbf\x51\xa9\x53\x52\xb5\x00\xcc\xe1\x0e\x1f\x99\x56\x76\xd0\x5b\xcc\xa4\xe2\x67\xdc\xc8\x0b\x73\x49\x13\x20\x05\x48\x26\x8c\x88\x51\x72\x9d\x8a\x47\x4e\xa6\x30\x67\x5c\xf9\x15\x0b\x21\xc9\x6f\x09\x44\x12\x31\x55\x55\xe8\x9a\x90\xf7\xad\x14\xf6\x2e\x67\x54\x22\x6a\x9e\xe9\xa6\x68\x14\x69\x4a\x50\x78\xc1\x6d\x50\xd2\x2c\x5b\xd5\x1b\xcf\x47\x40\xeb\xdd\x33\xd4\x7d\x43\xd8\x99\x3d\x2b\x39\xbe\x68\x0a\x19\x5d\xd9\x58\xdf\x19\xe3\x68\xfd\x95\xea\x7c\x12\x0e\xcd\xea\x4c\xa0\x90\x8d\x3e\x77\xee\x0c\xa6\x88\x04\x9a\x2c\x42\x24\xbb\x01\x03\xf6\x54\x1b\x30\x60\x03\x06\x6c\xc0\x80\x6d\xb6\x01\x03\xd6\x6e\x03\x06\x6c\x37\x41\x7d\x76\xda\x0d\x18\xb0\xc1\x2a\xb3\xd9\x06\x0c\x58\xa7\x36\x60\xc0\x9e\x6c\xbd\x63\xd1\x03\x06\x6c\x8f\x36\x60\xc0\xf6\x6c\x03\x06\x6c\xc0\x80\x0d\x18\xb0\x01\x03\x16\xd0\x06\x0c\xd8\xe1\xaf\x37\x38\x7f\xba\xb7\x01\x03\x36\x60\xc0\x0e\x6c\x03\x06\x6c\xad\x0d\x18\xb0\x01\x03\xf6\xa9\x36\x60\xc0\x06\x0c\x98\x6b\x83\xb5\x71\xa3\x0d\x18\xb0\x2d\x6d\xc0\x80\x1d\x36\xce\xa0\x06\x84\x75\x16\x5d\x0d\xf0\x78\xa6\x5b\x29\xa6\xe1\x49\xaa\xb0\x17\x85\x25\x0c\xbf\xd2\x14\x55\x21\x48\x8b\xa3\xa1\x2c\x7a\x82\x52\x89\x80\xac\x88\xc9\x6f\x7b\x8a\xa8\xe8\x27\x9a\xa2\x8f\x48\x8a\x63\xa0\x28\x8e\x8e\xa0\x88\xe3\x9a\x8b\xe0\x96\x8b\x74\xab\x3d\x83\x89\xdb\x81\x71\xef\x17\x12\xd4\x42\x64\x9d\x19\x4e\x2c\x66\xf3\x96\x71\x96\x97\xb9\x39\xbb\xca\xf0\x14\xb6\xac\x00\xc3\xca\xb3\x0c\x87\x23\xb6\x5e\x4b\xf3\x20\x4b\x01\x0b\xc4\x52\x96\x99\xad\x85\x09\x07\x17\xf4\xff\x63\xef\xdd\x9f\xdb\xb8\xb1\x7c\xf1\xdf\xef\x5f\x81\xf2\x4c\x5d\x49\x1b\x52\xb2\xe7\x55\x33\xa9\xad\x6f\x4a\x2b\x2b\x8e\x6a\x6c\x99\x5f\x49\xf6\xdc\xa9\x4c\x36\x0b\x76\x83\x24\xae\xba\x81\x0e\x80\xa6\xc4\xa9\xfc\xf1\xb7\x70\xf0\x68\x34\x49\xd9\x26\x00\x89\x94\xc3\xde\xaa\xd9\x98\xa4\x1a\xef\x83\xf3\xf8\x9c\xcf\x99\x6b\x79\x23\xdb\xa2\x20\xa4\x4c\x31\x94\x42\x8f\xd7\x1f\x8f\x7d\x0f\x0d\x71\x34\x95\xe8\x55\xda\x55\x93\xa6\x3b\x05\x2e\x81\x3f\xfe\x21\xea\x1d\x53\xd1\xe4\xb9\xa5\xdf\x5c\x8d\xce\x7a\xb7\x34\x7c\xf0\x03\x1c\xe3\xb3\x19\x29\x6e\xaf\x6c\x38\x7e\x7b\x37\x73\xba\xa9\x9a\x64\xa6\xe6\x50\x0c\x52\x2d\xb1\xbe\x0e\xaa\x8d\xa5\x7e\x18\x65\x0a\xab\x48\xc4\x9c\x16\xe4\xf8\x09\x8c\x9d\x5c\x06\x44\xfa\x41\x40\xe0\x6a\x84\x81\xef\x8a\xda\x75\x6d\xba\xe3\xbd\x94\x81\x9d\x6b\x7b\x0a\xc0\xb3\x0a\x17\x7e\x6d\xa6\xeb\x0f\x5d\x52\x37\x0e\x25\x21\x1e\x4e\x3e\xa5\x6a\xd6\x8e\x8f\x0b\x5e\x9f\x68\xd1\x61\xfe\x67\x5c\xf1\xf1\x49\x8d\xa5\x22\xe2\xa4\xe4\x85\xbd\xd6\x87\x85\xee\x01\x65\xd3\xe3\xba\x3c\x3a\xfe\x5f\x49\x7d\xb8\xb0\xfe\x36\x9b\xca\x11\xb0\x31\xeb\x51\x5b\xff\x09\x1a\x13\x2d\xf7\x39\x64\x7c\x04\x25\xbf\xf4\xa4\xa4\x6f\xd2\xe4\xfb\x3b\x95\xe9\x3e\x11\xda\xb8\x15\x58\xe3\x5e\x6a\xa3\x0c\x4e\xc5\x9c\x42\x65\x37\xa0\x8b\x8f\x06\x5b\xcc\x72\x56\x33\xc1\x15\x77\x08\xaa\xb8\x33\xb6\xd0\xae\xc0\x13\x77\xb0\x48\x79\x06\x48\x62\x0e\x38\x62\x3e\x28\xe2\xae\xd6\xf2\x7e\x34\xf8\xe1\xb3\x80\x1e\x66\xf4\xb1\x67\x82\x1c\x3e\x05\xdc\x70\x77\x7d\x30\x28\x03\xc4\xf0\xe9\xe0\x85\x59\xe6\x31\xab\x15\x9b\x28\x12\xb6\x00\x27\x7c\x8a\x18\xe2\xa3\xc5\x0f\x33\xc4\x0e\x73\xc6\x0d\xb3\xc5\x0c\x1f\x0d\x36\x98\x0e\x19\xcc\xea\x53\x78\x12\xa8\x60\x4e\x98\x60\xf2\xfa\x52\x46\x15\xc5\xd5\x6b\x52\xe1\xc5\x75\x1a\x98\x2c\xd7\x4a\x5c\xae\x00\xce\x8c\xdb\xba\x0f\x2d\x9c\x61\x5b\x99\x9d\x94\x8e\x26\xc2\x05\xa1\xad\x0a\x0c\xf1\x63\x33\xbe\xe8\xc2\x51\x68\x73\xde\x80\x3b\x2e\x6e\x2b\x8e\x4b\x79\xd2\x70\xf3\x3f\x1d\x6b\x40\x40\x17\x90\xa4\xa6\xef\x86\x7b\xdc\x70\x33\xec\xc8\xae\xf9\x81\xdf\x21\x3e\x51\x84\xa1\x43\xca\xdc\xce\x39\x0a\xbc\x34\x5d\x78\x24\x39\xde\xa1\xdf\xfa\xea\xa5\x6b\xe4\xeb\x8b\x7b\x40\x64\x48\xca\x9d\x8e\x7c\xd9\x3e\x7e\x3e\xf4\x65\x7f\x38\x69\xab\x7e\xf8\xcb\x84\xc4\xf2\xc4\xbe\x5e\x75\x25\x89\x5f\x41\x7f\xbc\x28\xc2\xac\x44\x96\xe3\xe7\xeb\xdb\x27\xc9\x70\xd9\xbe\x71\xe3\xf1\xad\x7d\x3c\x8b\xb9\x81\xb5\x96\xc9\x11\xd6\xbf\x02\x05\x74\xef\x74\xdd\x19\xa7\xeb\x96\x50\x9c\x5f\x9f\xb5\xf5\xf4\xa8\xcd\xbd\xb5\xf5\x5b\xb1\xb6\x02\x6a\xad\x37\x02\x17\x64\xb4\x4b\xca\x9b\x13\x20\x5d\x32\x51\xa7\xc3\x79\x71\xc1\x08\x31\xc9\x27\x1d\x71\x1a\x70\x84\x4d\xda\xaa\x5a\x18\x1f\x62\x8f\x45\x2f\x7e\x6b\xdd\xcc\xc8\x0a\xfd\x18\x84\x52\xd7\xf4\xae\xb3\x4d\x1a\xc1\xad\x46\x22\x5a\xc6\xb4\x8a\x61\x8f\x93\xee\xbc\xb6\x45\x24\x61\xf1\xee\x74\xdc\x23\x47\x93\x74\xaa\xa7\x0b\x80\x9e\x33\x82\xba\x1c\x88\x7e\x47\x74\xab\x13\x2e\x0a\x3a\xae\x16\x68\x86\x2b\x6d\x2c\x99\x1a\xef\xe8\x96\x56\x95\x7d\x4d\xfc\x44\x5d\x13\x65\x42\xcf\x46\xa3\xa9\x38\x9b\xc2\x64\x60\xd3\x11\x72\xdf\x90\x42\xb7\x59\x54\x04\xb3\xb6\x31\xfd\xd4\xfa\xd1\x82\xb7\xc2\xf5\x33\xbe\x79\x17\xf8\xf6\xfa\x14\xa3\xd5\xc0\x4d\x79\x9f\x46\x6f\x75\xcf\x77\x2e\x65\x49\x4a\xcb\x80\x77\x47\x25\x19\xc0\x3b\xa3\xfb\x64\xfa\xc2\xe7\x44\x08\x5a\x12\xb3\x6f\xcc\x67\x8d\xe0\x73\x5a\x9a\xa8\xbb\xdb\x16\x5a\xd3\x89\x1f\xff\x47\x78\xaf\x13\xad\x8c\xb3\x21\x23\x53\x0c\xea\xb1\x15\x68\x06\xd1\x69\xda\x37\xf8\x41\x56\xd2\x02\x2b\xa2\x8d\x67\xde\xf4\xe8\x31\xe7\x14\x47\xf7\x44\x8f\x27\xd8\x51\xe8\x90\x71\xc4\x21\x3b\xa9\x65\x54\x2d\x20\xa2\x37\x6b\x15\x2a\xf9\x1d\x3b\x4a\x39\x98\x06\xe6\x80\xd1\x98\x28\xdc\x25\x18\x39\x95\x4c\x22\xc2\xf0\xb8\xd2\x67\x0f\x30\xe4\x37\x6b\x37\x00\x9a\x10\xac\x5a\x41\xd0\x14\xab\x04\x29\xb1\x46\x9b\x37\xeb\xf9\xe9\x6d\x47\xa5\x8d\xd7\x4d\x50\xcb\x24\x49\x54\x64\xb3\x99\x00\x91\x59\x73\xfa\x44\xf3\x56\xed\xc8\x3d\xf2\x90\xeb\xe8\x6e\x46\x8b\x59\x68\x24\xd2\x9a\x48\xc4\xdb\x04\x4f\x5e\xcf\xfc\xb3\xcd\xe5\xb4\xf0\xf6\x7e\xa7\xb5\x4f\x6c\xd8\x34\xc7\x0e\xbb\x0c\xb4\xf2\x35\x79\x28\x1d\xf0\xca\xe4\x63\xbe\xbe\xbc\xfe\xf9\xed\xe9\x7f\x9d\xbf\x8d\xdb\x02\x20\xeb\x58\xa8\x3b\xb7\x8c\xfe\xd2\x12\x84\x6b\xce\xa6\x08\x57\x61\x0a\xcc\x00\x1c\x9d\xc1\x07\x20\x15\xf3\x26\xcb\x44\xea\xb5\xfa\x12\x88\x12\x0c\x2b\x70\xcc\xa7\xc8\x08\x8a\x45\x81\x24\xa0\x3f\xfa\x48\x18\x37\x06\xc0\x9f\xf6\x12\xed\x19\x51\xfa\x8c\x1b\x83\x90\x32\x84\x91\xa4\x6c\x5a\x25\xdb\x82\xc9\x1e\x91\x54\x7f\xc8\xb0\x1b\xc1\x28\xd6\x2d\x92\xee\x14\xe9\xf5\x21\xde\xaa\xcc\xe7\x10\xe8\x2e\x33\xe7\x02\x20\xf7\x0d\x97\xc4\xb9\x00\x8c\x8e\x7b\x31\x42\xb8\x2c\x45\x92\x1e\x6d\x85\x8d\xb7\xd1\x4d\x32\xb7\x69\xd6\x84\x7e\x07\xe8\x25\xfa\x4f\x74\x8f\xfe\x13\x1c\x02\x7f\x89\x6f\x2a\x8f\xb9\x9d\x03\xd1\x3c\xe3\x52\x5d\x8c\x32\x2d\xf4\x3f\x66\x58\xc1\x1b\xf5\x7a\x28\x8e\xc6\xd4\x5a\x66\xe4\x5e\x11\xa1\x35\x62\xbb\x86\xa9\x33\x97\xe4\x5c\xd0\x1d\x7c\x2e\xbb\x3b\x35\xce\x7a\x31\xe9\x03\xa1\x9f\x68\x7f\x43\xc3\x3f\x70\xa9\x2e\xad\xb4\x0e\x19\x09\xc2\x7e\xd4\x58\x15\xb3\xbe\xb8\x4f\x69\xf5\x9d\xde\x7b\xc1\xf5\x5f\x72\xb8\x28\x4d\x3a\xdb\x8c\x26\x08\x87\xdd\x39\xb1\x69\x90\xb9\x7c\x5b\xf7\x53\x5b\x6b\xc9\xbd\x09\x6a\x98\xd5\xdb\x02\x96\xff\x86\x97\xc7\xe8\x1c\x17\xb3\x84\x5e\xe8\xd9\x28\x03\x65\xa0\xe1\xa5\xe9\xc6\x0c\xcf\xf5\x1e\xb7\xad\x02\x7c\xcf\xa8\xae\x3e\x50\x06\x07\x4e\x4b\xac\x02\x33\x34\x4e\xc1\x8f\x09\x32\x21\x42\x98\x94\xc9\xf1\xc2\x65\x5e\x24\xef\xb6\x24\x29\xd7\x08\xae\x78\xc1\xab\x5d\xd8\x2a\x23\xdb\x17\x98\x7b\x08\x5b\xf9\x40\xe1\x87\xd7\xa3\x01\xba\x39\x1b\x0d\x10\x17\xe8\xfa\x2c\x0d\x07\x12\x5a\xa3\x2f\x6e\xce\x46\x2f\xb6\xba\x02\x41\x3a\xc7\xcd\xd9\x28\xe2\x25\xab\x48\xc2\x1a\x37\xc3\x5b\xb2\x88\xd4\xee\x72\x68\x98\x43\xbf\xb1\xb2\x0c\xc8\x4c\x73\x8d\x9b\x8d\xdf\x26\x08\x2e\xe9\x9e\x6c\xe1\xcb\x9f\x3d\xd9\xc2\x9e\x6c\x61\x4f\xb6\xb0\x27\x5b\xd8\x93\x2d\xec\x2e\xd0\x7f\x4f\xb6\xf0\xd9\x67\x4f\xb6\xf0\xe0\xb3\x27\x5b\xd8\xe8\xd9\x93\x2d\xac\x3e\x7b\xb2\x85\x4f\x3c\x7b\xb2\x05\xff\xec\xc9\x16\xf6\x64\x0b\xcf\x57\x6a\xef\xc9\x16\x96\x9f\x3d\xd9\xc2\x9e\x6c\x61\x4f\xb6\x10\x3e\x7b\xb2\x85\x07\x9e\x3d\xd9\xc2\x9e\x6c\x61\x4f\xb6\xf0\xe9\x67\x4f\xb6\x10\xfd\xec\xc9\x16\x36\x7b\xf6\xe9\x3f\x1b\x3e\x7b\xb2\x85\x3d\xd9\xc2\xf2\xb3\x27\x5b\xf8\xec\xb3\x1b\xee\xf1\x3d\xd9\xc2\x9e\x6c\xe1\x93\xcf\x9e\x6c\x61\x4f\xb6\xf0\xc9\x67\x4f\xb6\x10\xf1\xec\x9c\xd3\x75\x4f\xb6\xb0\x27\x5b\xf8\x54\x1b\x7b\x6b\x6b\xb3\x67\x4f\xb6\xb0\x27\x5b\x58\x79\xf6\x64\x0b\xab\xcf\x9e\x6c\x61\x4f\xb6\xb0\x27\x5b\xd8\x93\x2d\xf8\x67\x4f\xb6\xf0\xb5\xfb\x9d\x04\x91\xf4\xdf\x64\xc4\x2b\x5a\x2c\x92\xf3\x4c\xae\x88\xe4\xad\x28\xf4\x8d\x0d\xaf\x45\x0d\xbc\xd7\x7b\x14\x92\x94\xec\x1d\x4b\xde\xbf\x0a\x26\x2e\x4c\xe2\x17\x76\x0e\x1e\x63\x0a\x76\x22\x91\xdf\x0d\xf0\x32\x1e\x41\x00\x2f\x51\x58\x28\x33\x7d\x71\xce\xd2\x64\xab\x3d\x1c\xc8\x2e\x24\x12\x86\xdc\x23\x7e\x17\x29\xee\x85\x2d\x7d\x70\x73\xe1\xa6\xa9\x68\x4a\x4a\x26\x42\xd7\xbe\xd0\x3c\x88\x5a\xf9\x2d\x2a\x9a\x76\x80\x6a\x52\x73\x91\x90\x18\x91\xc1\x82\xeb\x6d\x95\x5d\x58\xa7\x2b\xd3\x21\x37\xf9\x8a\xc3\xfc\x2f\x8c\xbd\xd0\x11\xc4\xf8\xb5\xa2\x4e\x1c\x26\x61\xcd\x2e\x26\xcb\x60\x54\xaa\x7a\x5e\xa0\x4b\xae\xae\xec\xe1\xde\xda\x7a\x65\x46\x2c\xb8\x29\x4c\xe7\x96\x89\x5c\xf0\xee\x42\xfb\xe2\xdc\x49\x74\xbe\xe6\x53\x88\x7f\xca\x46\xbf\xc4\x8f\x29\xaa\x43\xb8\x12\x04\x97\x0b\xe8\x46\x01\x78\xbd\xce\xff\xf7\x0c\xd3\x36\x8b\x0a\xd3\x78\x90\x5f\xae\x23\x7d\x06\xbd\x40\x7a\xbf\x76\xe0\x77\xc8\x23\xf3\x8b\x35\xf0\x10\x6f\x6a\xce\xf8\xb1\xfb\xca\xfc\xf1\x20\xc1\xd2\xc3\x0a\x76\x17\x18\x31\x60\xca\x52\x19\xaa\x09\xe9\xc6\x1d\x43\xb8\x6a\x66\x9f\x36\xef\x52\xd2\x23\x5f\x2f\x18\xae\x69\xe1\x0e\xcb\xa9\xd9\x9b\x94\xb3\x25\xc3\x30\x6d\x24\xa6\xf7\x7a\x48\x75\xdd\x2a\x3c\xae\xc8\x31\xba\x30\xfc\x06\x9c\x55\x0b\x6d\xb1\x4b\xa2\x1c\xca\x20\x21\x95\x19\x65\x81\xb0\x26\xc2\x57\xd7\xea\xd5\xb0\xd7\x0c\x21\x03\x61\x5a\x2a\x71\x46\x10\x61\x4a\x2c\xf4\xb6\x1c\xf1\xf2\x5a\xef\xcc\xde\xaf\x93\x79\x1a\x12\x51\xab\x39\x10\xab\x89\x68\xd5\x3c\x18\xd3\x74\x7c\x69\x5e\x6c\x69\x17\x05\x30\x34\x33\x61\xd2\x4e\x6f\x5b\xe8\x9b\x61\x8d\xc4\x42\x7c\x92\xd8\x03\xdd\xe2\x88\x97\x5a\xef\x11\xc4\x88\x2d\x7f\x46\x8d\x0f\xf0\x42\x77\xee\x16\x9c\x76\x58\x75\x0a\x11\x9e\x63\x5a\xe9\x03\x9c\xd8\x01\x9f\xf4\x9c\x29\x78\x93\x29\xdc\x60\xf1\xf5\xbb\xb4\x59\x6c\x66\x56\x2f\xb9\xab\x98\x71\x49\x18\xc8\x4b\xec\x93\x70\x7c\x8a\x80\x15\x31\xa5\xb9\xa2\x53\x81\xc0\x17\x13\x44\xea\x46\x2d\x06\x88\xcc\x89\x58\xa8\x19\x00\x06\x04\x37\x20\x12\x68\x42\xf7\xad\xc6\x65\xb0\x3b\x06\x88\x3b\x1f\x72\x62\xf3\x70\x3f\x58\xb3\xaa\xad\x94\x31\xb2\x40\x2d\x4f\xca\x12\x35\x4f\x86\x5d\x93\x9b\x0b\x05\xa5\x0a\xcd\x9c\x5c\x26\xfa\xa9\x68\x4d\xe3\x18\x22\x51\xc6\xb3\xf0\x16\x7a\x11\x64\x7f\xe8\x2d\x51\xe3\x7b\xf0\x30\xe2\x9a\xb7\x0c\xb6\x46\xc1\xeb\xa6\x55\x81\xa6\xee\x94\xfe\x27\x73\x3d\x16\x9c\x4d\xe8\xd4\x06\xc7\x4e\x6a\xcc\xf0\x94\x0c\x7d\x77\x86\x9d\x7a\x73\xb2\x3d\xd0\x06\x2e\x1d\xbb\xc4\x28\x47\xaa\x31\x56\x8a\x08\xf6\x2d\xfa\xef\xc3\x7f\x7d\xf3\xeb\xf0\xe8\xbb\xc3\xc3\x1f\x5f\x0e\xff\xf6\xd3\x37\x87\xff\x3a\x86\xff\xf8\x8f\xa3\xef\x8e\x7e\x75\xff\xf8\xe6\xe8\xe8\xf0\xf0\xc7\xbf\xbf\x7b\x73\x33\x3a\xff\x89\x1e\xfd\xfa\x23\x6b\xeb\x5b\xf3\xaf\x5f\x0f\x7f\x24\xe7\x3f\x7d\xe1\x4b\x8e\x8e\xbe\xfb\x7d\x7c\x00\x31\x35\x5a\x9e\x2f\x56\x9e\x29\x52\xfe\x28\x71\x72\x2b\x63\xb7\x7e\xf8\xed\x15\xb8\x72\xfc\x6d\x80\xe1\x53\xc7\x5f\x24\xbb\x55\x2e\x26\x5d\xfb\x54\x22\x5e\x53\xa5\xac\x13\x01\x87\xf4\x35\x4b\x2e\x1d\x2b\xb0\xe8\xc4\x28\x50\x54\x86\x34\x2a\x9d\x27\x28\xba\x5b\xfe\x7e\x05\x27\x16\x43\xb4\x6e\x2a\x52\x13\xa6\x40\xf0\x0c\x9d\xc9\x0b\x1e\xc1\xe3\x6e\x04\x05\x66\x8c\x2b\x44\xee\x0b\x42\x4a\xdb\xc9\xbd\x6c\x0c\x9e\xbd\x6c\xdc\xcb\xc6\xcf\x3d\xc9\x6e\xed\x4c\xfe\xcd\xd0\x95\xbd\x12\xa4\xd2\x72\xc1\x1c\x31\xa7\x3e\xc3\xcf\x3d\xf5\x01\x9f\x20\x12\x4b\x71\xd9\x35\x62\x59\x33\x71\xac\x13\xd3\x71\x1b\xe3\xc5\x8a\x27\x68\x89\x32\xdd\x24\x98\x5b\xf9\x25\x1d\xd8\xc6\x58\xad\x9c\x45\x35\xbd\x13\x04\xec\x92\x14\xad\xa0\x6a\x71\xc6\x99\x22\xf7\x51\xa6\x67\x8e\xed\xd4\xe1\x56\xaf\xfb\x1d\xb2\xde\x53\x9b\x60\x6a\xbf\x43\xbc\x31\x54\x64\x0f\x92\xed\xcf\x78\x5b\x95\x7a\x39\x45\xcb\x60\x97\xc4\xed\x8e\x8b\x89\x5e\x6b\x03\x64\x82\xb5\x06\xdf\xee\x72\x17\x1d\xc4\xc8\x74\xe7\x97\x96\xce\x71\x45\x98\x0a\xfe\x62\x04\xa0\x93\xf0\x8f\x9e\xa1\xcb\x1d\x6c\x99\x91\xa0\x73\x5a\x91\x29\x39\x97\x05\xae\xe0\x2a\xdd\xb6\x7e\x76\xfa\x40\xbf\x60\x3f\x08\x5e\x49\x74\x37\x23\x5a\x5f\xd1\x72\xc2\x00\xdd\xc0\xf7\x3b\xc5\x94\xa1\x9a\x8b\x14\xff\xa0\x6d\x54\x1a\xa4\x9d\x56\xb9\x1a\x2c\xf4\xda\x3b\x44\x9d\x11\x30\x63\xce\x2b\xcb\x2a\x58\x2d\xba\x7e\xd1\x78\x47\x1a\x38\x63\xf8\xcf\x8c\xdc\xfd\xac\x7b\x21\xd1\xa4\xc2\x53\x0f\xa4\xd3\x02\x6a\x19\x9e\x9c\x0e\xf2\x7b\x70\xa2\x81\x32\xaf\x25\x08\x57\x77\x78\x21\x3b\xf8\x63\xd7\x36\x4d\xd0\x62\x5e\x1d\xc1\x29\xc6\x12\xf9\xb6\xcb\xe8\x97\xfd\xe1\x08\xf2\xd5\xce\x4e\x47\x3f\x5f\xff\xf3\xfa\xe7\xd3\xd7\xef\x2e\x2e\xe3\x41\x4e\x5c\x11\xa3\x60\x07\xb7\x81\xbd\x23\xec\x2a\xf8\xd0\xee\x31\x97\xc7\xe0\x3d\x83\xdc\x7b\x56\xf2\xbb\xc4\x10\x83\xde\x53\x04\xc7\x5d\x3d\xb8\x69\x4e\x45\xcd\xc5\x48\xf0\x09\xad\xa2\xbd\xd3\xb9\x4e\xf0\x52\x77\x9c\xb3\xf1\xd4\x7e\xdc\x89\x7b\x93\x0e\xba\x1a\xea\x0a\x04\x35\x85\xa4\x43\xfd\x9a\x78\xe3\xa6\x07\x19\x35\x00\xd6\xa5\x2e\xc6\x1f\xa2\xad\xee\x99\xad\x27\xdb\xe8\x6e\x44\xfe\x79\x8e\x60\x4c\xc5\x0b\x5c\x41\xa1\x83\xb4\x8d\x8f\x32\xfb\xd9\x97\xfb\x15\x80\x83\xb1\xdb\xce\xa8\xe2\xb8\x24\xa5\x93\xeb\x8c\x97\xc4\x91\xa0\x3a\x65\x07\x62\x27\x49\x1d\xb9\x31\xc0\x4c\x68\xcf\xa1\x99\x1b\x41\x9c\xe9\xbc\xdc\x3c\x37\xdc\xaf\x49\x4d\xbe\xeb\x47\xa2\xec\x28\x7b\x79\x37\xa9\x67\xce\x37\x63\x0f\x18\x9d\x40\x2c\x1b\x54\x7e\x3a\x81\x4d\xa9\x8f\xd8\x8b\xb7\x6e\x19\x12\x18\xd2\x33\x05\x83\xe0\x25\x3b\xb2\x3b\xcd\xfc\xf8\x1d\x69\x50\x65\xb7\x54\xcf\xe0\xa4\x13\xd2\x6e\xdb\x38\x1d\xc4\x40\xcb\x12\xf7\xe3\x47\xa8\xc5\xe1\xe4\x3f\x16\xc9\x34\x2e\x7e\x89\xd1\x30\x38\x5a\x8d\x20\xc3\xd5\xe3\x95\x1a\xbb\xba\x6a\x99\xa2\x35\x71\xa9\xca\xc3\x25\x9d\x48\x98\xaf\x0f\xa4\x27\x06\xcc\xb2\xd1\x11\xfa\xc0\xe0\xbc\x32\x52\xa2\x21\x62\xbc\x5b\x22\xc2\x26\x5c\x14\xe0\xa7\xdb\xea\x06\x2f\x70\x83\xc7\xb4\xa2\x29\xc2\x3c\xd7\x06\x07\x9e\xed\xa0\x3f\xe0\xd0\x2c\xcb\x93\x52\xf0\xc6\xdc\xc4\x2e\x87\x28\x1d\x1b\xd2\xc7\xaa\x87\x94\x90\xa0\xb0\x4f\xfa\x1d\x99\x0a\xcc\x54\x97\xa4\xb2\xb2\x71\x7e\x8b\x3a\x48\x0e\x25\x00\x97\xf9\x18\xeb\x4f\x4b\x2d\x33\xc2\x65\x4b\x3e\x57\xbb\xc6\x7e\x77\xe6\x06\x17\x80\xd5\xd1\xe8\xfd\xf5\xc5\xff\x59\x3a\x37\xf1\xaa\x9d\x79\x76\x9b\xfb\x4a\xcb\x83\x6c\xdb\xe6\x8a\xd4\x7c\xbe\xdf\x38\x5f\xfd\xc6\xf1\x0e\xa2\xad\x13\x77\x5c\xb5\x2c\x74\xc7\xb0\xa0\x6b\xa8\x4e\xd2\x75\x46\x3e\xc7\xb5\xff\xd6\xb0\xdc\xa8\x20\x48\xff\x84\x29\x8a\xab\x6a\x11\xfa\x48\x15\x37\x35\x31\xb2\x14\x76\x0b\x6f\xd7\x09\xae\xe4\x73\xbd\x22\x53\x5c\x3b\x8d\xe0\xc5\x3b\xde\xb2\x3c\x4c\x20\x09\x3b\xce\x77\x04\x95\x84\x71\x65\xbd\x29\x60\x4b\xf0\x09\x7c\x8b\x4c\xe4\x3c\x20\xf9\xea\xe9\x39\x09\x6a\xd6\x4d\xa0\x5a\xf9\x04\x40\xa7\x87\x1b\xfb\xa5\x95\x44\xae\xd7\xab\xba\x40\xfa\x84\xc7\xc7\x0f\x05\xc1\x25\x18\x98\x0d\x56\x33\xc3\x3e\x53\x63\x79\x4b\x4a\xf3\x41\x62\xe6\xad\x87\x61\x03\x94\xd2\xcd\xf4\x8d\x9e\x5c\x87\x9c\x06\x87\xb0\xe1\xe0\x01\xac\x76\x8a\x29\xb6\xd5\xd3\x90\x20\xd8\xf5\x22\xbc\x67\xd5\xe2\x8a\x73\xf5\xbd\x2f\xae\xb3\xed\x93\xf1\x0f\x1b\x8e\xe8\x3b\x31\xc1\x2f\x8d\xa1\xcb\x43\xd8\x38\x20\x17\x83\x92\x40\xa9\x62\x51\x2f\xc8\x6f\x55\x2a\x8a\x96\x9d\xca\x37\x82\xb7\xd1\x3a\x5c\x4e\x7b\xf3\xcd\xc5\x6b\xb8\xf8\x5a\x4b\xce\xc0\x94\x58\x34\x9c\x32\xe5\x3c\x5e\x19\x83\x36\x1f\x2c\x0d\x46\x28\xd9\x92\x33\xde\x11\x7a\x87\x17\x08\x57\x92\x7b\x97\x1a\x5b\x17\xe4\x74\x11\x54\xfd\xf5\x98\xab\xd9\x4a\xe8\x14\xb3\xf8\x50\xce\x6a\x7b\x83\x80\xe3\xa1\x4b\xa7\xa3\x6c\xa5\x59\x05\xd8\xf2\x46\x90\x82\x94\x84\x15\xcf\xf5\x44\x6c\x9b\x72\x00\x4e\xd5\x25\x67\x5a\xbc\x6e\xfb\x5c\x5d\x78\xff\xa4\x5d\x8d\xf0\x14\x81\x2b\xdb\x06\x11\x31\xd0\x73\x80\x70\x6d\x65\x0a\xf0\xff\x62\x02\x51\x4f\xb3\xe9\xfe\xde\x8e\x49\xa5\x17\x9b\x56\x95\xa9\x20\x8c\x95\x01\x04\xd0\x1a\x4f\x09\xc2\xca\x1f\x42\xc5\x11\x61\xb2\x15\x76\xdf\xd0\xf8\x14\x99\x92\x13\xe9\x0b\xb9\x61\x89\x3e\x5c\xbc\x46\x2f\xd1\xa1\x1e\xdb\x11\x68\x1c\x13\x4c\x2b\x60\xfc\x00\xf0\xcd\x52\x48\x76\x02\xa0\x41\x9e\x92\xfd\x7b\x61\xe5\x08\xe2\xc2\x5c\x2d\x03\xc4\x38\x92\x6d\x31\x73\x73\x40\x39\xf3\x1e\x61\x4b\xff\x98\x04\x87\xde\x8b\x9d\x7c\xf7\xe1\x07\x49\xc4\xb6\x8f\xad\xbe\x0e\x3f\x3c\xe1\x75\x18\x9a\x88\xfa\xf8\xf7\x17\xcc\x9c\xd5\x9a\x28\x5c\x62\x85\xed\x35\xe9\x7e\xb0\xdf\xb5\xfb\xcb\x32\xe1\xb2\x94\xe4\x2d\x65\xed\xbd\x41\xba\xed\x44\xd8\xe3\xfa\x1c\x7a\x04\xc7\x0b\x16\x9a\x07\x71\x3b\x17\xa1\xc8\x90\x21\x77\xd1\x3b\x46\x83\x07\xac\x6e\xb8\x25\x5c\x76\xba\x36\x84\x30\x2b\x79\xbd\xd2\x49\x48\x9f\x4f\x29\x8e\x1e\xa0\x46\xf6\x07\xd3\x3e\xbf\xed\x80\x50\x45\xe6\x24\xa1\x20\xfc\xd2\xa1\x7c\xab\xdf\xa6\x27\xc7\xed\x5c\x78\x3d\xaa\xf0\x98\x54\x36\x67\xdf\x90\xae\x64\x3c\x61\x99\x7c\xe0\x82\x67\x84\xc4\x5c\x71\x83\xe4\xc2\x7e\x22\xf4\xeb\x9f\xc5\x3c\x64\x05\x5f\xdc\x58\x74\x49\x37\x0f\xe0\x03\x7d\x0e\xf3\xd0\x26\x28\x88\x68\x79\x1e\xb4\xb6\xd9\x9f\x07\xd0\xbf\x76\x7d\x1e\x24\x29\x0a\x5e\x37\x3b\x82\x94\xbc\x31\x28\x78\xdd\xa3\x2f\x45\x45\xf6\x7f\x8c\x93\xe0\xce\x96\x36\x13\x2b\x73\x0f\x3a\xee\xcc\xff\x1d\x5c\xe7\x20\xed\x96\xef\x78\xdb\x7a\x32\x22\xd3\xb7\x68\x5f\xf8\x5b\xbc\xf1\xf6\x30\xcc\xde\xf3\xe4\x30\xcc\x80\xce\x07\x83\x7b\xbe\x07\x89\xfc\x1a\xc0\x98\xda\x08\x80\x79\x25\xac\xa4\x6c\x0a\x01\xab\x01\x12\xa4\x32\x84\xb6\x56\x3c\xdf\x1a\x8f\xd7\x01\x48\x1c\xd7\x21\x27\x6e\x3a\xcc\xaa\xe1\xf3\xc9\x8a\xdd\x5c\x87\xd7\x34\xbf\xb9\x7c\x7f\x13\xe6\x70\x61\xb6\x30\x99\xaa\xf0\x27\x5b\xbf\x4e\x9f\x0d\xa6\x73\x79\x15\x1f\x1b\xd2\x99\xf4\xbe\xf5\x88\xce\xa7\x3b\xa5\x5f\x86\xf2\x5c\xc6\x78\x66\xed\xc2\x32\xe0\x73\xb5\x8d\x0c\x2b\x97\x7c\x04\xec\xd5\xb9\x43\x0e\x90\x7f\x98\x1e\x39\x2b\xbb\xd0\x82\x43\x51\x36\x95\xa1\x13\x04\x57\xa9\x09\x9a\xe6\x59\xe7\x05\x71\xa7\xc0\x13\xda\xac\x7a\x03\xfa\xe4\xe8\x29\xad\x7f\xc6\x83\xf1\xbc\x3d\x11\x95\xb6\x28\x9e\xb9\x1f\x62\x5a\x4b\x7c\x26\xf4\x0c\x2a\x8a\xab\xeb\x86\x14\xbb\x72\x5b\xbc\x79\x77\x7d\xda\xef\x19\xe8\xc2\x96\xbe\x8b\xc0\xf7\x08\x97\x35\x95\x12\x02\x3e\x64\x3c\xe3\xfc\x36\xa9\xc9\xc3\x35\xa5\xfc\x03\x7c\x9e\xa4\x53\x79\x62\x25\xca\x50\x4f\xdc\x11\xa2\xac\xf2\x99\xc2\xe0\x2d\x64\x4a\xda\x08\x42\xf2\xe0\x51\xe1\x47\x0f\x5b\x0f\xf2\x53\x3c\x34\x7b\x75\x7a\x80\x63\x0d\x36\xef\xd6\xb5\x8e\xd5\x5d\x95\x46\x5b\xbc\xb4\xb3\x1e\x18\x7b\xc8\x17\x66\xa3\x38\x6b\xe7\xd1\x18\xaf\x5b\x9f\x24\xab\xf4\x17\x44\xe6\x2b\xa5\x9e\xa1\x02\xbe\xed\x12\x2a\x89\xa9\x64\x40\x80\xd2\x05\x3f\x98\xe9\x0e\xe1\xed\x03\x28\xfd\x64\xff\xf4\x20\x17\xc5\xdd\x69\x55\xe9\x85\xc4\xfa\x9a\x38\x90\x21\xba\x13\x4c\x93\x19\x9e\x93\xae\x08\x34\x99\x4c\x48\x01\xc6\x42\x38\x8a\xf4\x12\xc9\x87\x14\x50\x4c\x21\x9d\xae\xe2\xa6\x6d\x8c\x6a\x7a\xaf\x7b\x18\xb6\x18\x62\x50\x59\x09\x81\xff\xf5\x5f\x27\x54\xc2\x40\x00\x3e\xf0\xcc\x2d\x03\xbd\x42\x61\x23\x2e\x39\x5a\xe9\x6b\x4b\x7f\x71\x49\x94\x36\xd4\xcc\xbc\x85\xd1\x07\x6d\x58\x89\x36\xc3\x61\x48\x89\x0c\xa3\x30\x3a\x9c\x55\x52\x24\x9e\x07\x88\x14\xdb\x3e\x69\x1d\xc4\x29\x6f\x4f\x15\x39\x46\x6b\xd2\x77\x9e\x2c\x82\x8c\xbe\x3c\x8a\xfc\x88\xb1\x2a\xb4\x2b\xf1\xaa\x54\xd2\x13\x53\x06\x12\x0a\xd3\x24\x33\x9e\x8c\xba\x12\xb7\x5f\x44\xf3\x1d\xd1\xde\x96\x89\x3f\xc8\x7d\xbc\x26\xda\x9b\xaa\xf3\x7b\x52\x2c\x95\x94\xac\x6b\xa8\x9c\xc5\xa1\x91\x56\xf9\xc2\x77\xc9\xb7\xd6\x8e\xe8\xf4\x76\x84\xbb\x22\x44\xcf\xec\x84\x53\xa7\x26\x9b\x7f\x6a\xc5\xb9\xbf\x08\xd2\x79\xdb\x03\x8e\x39\xfd\x4f\x7d\x73\x51\x36\xb5\x64\x26\x5c\x78\xea\xa7\xa4\x6e\xb9\x7e\x40\xc5\x03\xce\x15\x3a\x3c\x38\x39\x38\x5a\xd9\x0b\x07\x32\xc4\x43\x9b\xd4\xcd\x6e\x40\x92\xd6\x4d\xb5\x80\x31\x1c\x98\x22\x07\x09\xc5\xc3\xf4\xe3\x90\x75\x9e\x2d\x58\xce\x48\x55\x0d\x90\xd4\xf7\x34\x76\x44\x6d\xe6\x53\xfd\x23\x25\xda\xc2\xd8\xf3\x87\x07\xbf\x1e\x0c\x10\x51\xc5\x11\xba\xe3\xec\x40\x19\xcf\x2c\xba\x01\x65\x37\xa9\x4f\xbe\x13\x0b\xde\x42\x1d\x3e\xb3\x6c\x9e\xdb\xaf\xc0\x5a\x4f\x6b\x8d\x32\x61\xd8\x01\x48\x95\x50\x57\x4e\x3f\xe7\xf7\x54\x69\x99\xa9\x5a\xb0\xa7\x5e\x1a\x95\x86\x40\x11\x01\x2c\xa1\xc2\xee\xc9\x8c\xe0\x4a\xcd\x16\x5e\xcd\x32\x25\xce\x24\x6a\x99\xfd\x26\x5d\xd8\xef\x40\x7e\xdb\xee\x66\x9a\xd9\x4a\x8b\x3b\x5d\x28\xda\xf6\xf1\xb3\x75\xa2\x4d\x3d\xe8\x7e\x8d\x68\xa8\x1d\x4d\xca\x5c\x65\xa2\xff\xf8\xf5\x95\x80\x9e\x8a\x26\xcf\x2d\xfd\xe6\x6a\x74\xd6\xbb\xa5\xe1\x83\x1f\xe0\x18\x9f\xcd\x48\x71\x7b\x95\x46\x7e\xbd\x23\x31\xd0\x2d\xd7\x7d\xce\x5a\xee\x78\xc4\x85\x42\xcc\x97\xdc\xd3\x67\x6b\x0a\xab\x48\xc4\x9c\x16\xe4\xf8\x09\xaa\x0b\xe7\x62\xdd\x4c\x3f\x08\x08\x50\x1b\x30\xf0\x5d\x51\xbb\xae\x4d\x77\xd6\x79\xc5\x6c\x4f\xf5\x1a\x34\x15\x2e\xfc\xda\x4c\xd7\x1f\xba\x34\xf7\x89\x24\x04\xad\xf1\xab\x6a\xd1\x61\xfe\x67\x5c\xf1\xf1\x49\x8d\xa5\x22\xe2\xa4\xe4\x85\xbd\xd6\x87\x85\xee\x01\x65\xd3\xe3\xba\x3c\x4a\xa8\xc6\x82\x82\x4a\xb1\xd6\x8d\xb3\x14\x10\x71\x51\x32\xcf\x13\x4a\xa5\x0f\xe5\x8d\x17\x30\x29\x5b\xf7\x15\x22\xd7\xcb\x6f\xd1\x8b\x17\x51\x6f\xd1\x4b\xf0\x26\x53\xad\xfe\x1f\x6e\x6e\x46\x6f\xfa\x95\xfa\x19\x7c\x88\xde\x9c\xdf\xf8\xea\x0c\x7a\x77\x99\xec\x8b\xbd\xd4\xde\x99\x6a\xfd\x19\x1c\xc4\x9b\x54\xf8\x07\x06\x5b\xad\x72\xe1\x71\xb5\x40\x77\xd8\xa4\x5e\x4b\x92\x26\x53\x5e\xe8\x6e\xbc\xd0\x52\x4b\xef\xea\x1f\x08\x2e\x89\x90\x60\x0d\x11\xbc\xfd\xe0\x47\xd0\xa7\x6c\xcb\x76\xd6\x4a\xc5\x6b\x34\xb3\x43\x35\x73\xd8\xd5\x3f\x31\xba\x91\x39\x82\xe0\x0c\x92\x48\x90\xc6\x58\x4b\xf6\x6f\xbe\x0a\x5b\x68\x45\x0a\x99\x79\x0e\x58\xf2\x31\x2a\xc2\xa9\xb2\x8a\xbe\x29\xb9\x6c\x65\x54\x52\x0d\x5c\xf3\x64\x29\x36\x85\x32\x15\x9c\x42\xe9\x45\xa7\xdc\x4b\xd2\xa3\x25\x79\xca\x57\xa1\x2c\x25\xac\x50\xf6\xca\x44\xc8\xc6\x04\xec\xe6\x32\x48\x01\xdd\xd1\x54\xfa\x34\xe4\x48\x16\x1c\xf2\xa2\xc0\x8c\x33\x5a\xe0\x8a\xfe\x9b\x94\xa8\x6d\x38\x43\xbc\x55\x4d\xab\xc0\x15\x54\x60\x49\x86\x73\x2c\xa8\x16\xa8\xa6\xfe\x9f\x87\x6c\x30\x7d\xda\x15\xe7\xe0\x27\xf1\xd1\x31\xd3\xe3\xf4\x6e\x66\xd2\x66\x90\xab\x95\x9f\x79\x85\x57\x16\x27\x7d\x47\xa3\x9d\xf6\xc1\x20\x53\x72\x61\x96\xcf\xac\xc3\x6a\x06\x10\xa4\x02\x22\x89\x16\xc1\x06\x82\x53\x9b\x0d\x3b\x90\x21\x90\xd5\x8a\x4d\x14\x09\xa6\x0a\xb2\x58\xb2\x83\x75\x0f\x57\xe7\x30\x53\x50\xfc\xf1\xcd\xea\xb0\x5c\xdf\x98\x68\xdd\xfe\xe2\xf4\xf2\xf4\xe7\xeb\x8f\x67\x3f\x5f\x9e\xbe\x3b\x4f\x79\x75\x72\xa9\x8d\x9c\xc5\x36\xb2\x95\xdb\x78\xa4\x62\x44\xfa\x91\xc5\x8c\xec\x4e\x3c\xfc\x1a\x7a\x13\xb2\x27\x59\x1b\x00\x8a\xb2\xf2\x0c\x74\x5a\x68\xc9\x69\xaa\x05\xcf\x56\x25\x0e\x65\x54\x51\x5c\xbd\x26\x15\x5e\x5c\x93\x82\xb3\x72\xeb\x30\xd2\x4b\x2f\x6c\xa4\xe9\x90\x75\x5b\xf7\xc1\x07\x33\x2c\x4d\xd0\x99\x94\x68\x4c\x26\x5c\x10\x88\x9a\x30\x2d\x91\x9a\x2e\x7e\x6c\xc6\xa7\x9e\xb0\x5e\xdc\x1d\x17\xb7\x15\xc7\xa5\x3c\x69\xb8\xf9\x9f\x61\x45\x27\xa4\x58\x14\x15\xf9\x9d\xef\xff\x30\x49\x4d\xdf\x0d\xf7\x78\x43\x04\x05\xe8\xc2\x2e\xec\x9a\x1f\xf8\x1d\xe2\x13\x45\x18\x3a\xa4\xcc\xed\x9c\xa3\xc0\x4b\xd3\x85\x47\xd2\x69\x9f\x14\x47\xaf\x5e\xba\x46\xbe\xbe\xb8\x07\x44\x86\xa4\xdc\xe9\xc8\x97\xed\xe3\xe7\x43\x5f\xf6\x87\x93\xb6\xea\x87\xbf\x4c\x48\x2c\x4f\xec\xeb\xd5\xb1\x4f\xa8\x79\x05\xfd\xf1\xa2\x08\xb3\xd2\x61\x63\xbe\xbe\x7d\xa2\x8a\xe6\x9a\x17\xb7\x99\xdc\xae\x37\x67\x23\xf3\xb6\x25\x3c\x8b\xb9\x81\xb5\x96\xc9\x11\xd6\xbf\x02\x05\x74\xef\x74\xdd\x19\xa7\xeb\x41\x57\x6a\x6a\x53\x07\xea\xc1\xde\xda\xea\x1e\xa7\xf8\x88\x7e\xa9\x86\xbd\xb5\xf5\xc0\xb3\xb7\xb6\x36\x78\x0c\xda\x1d\x32\x47\xdf\x08\x5c\x90\xd1\x2e\x29\x6f\x4e\x80\xa0\xd2\xd6\x12\x45\x9d\x0e\xe7\xc5\x05\x23\xa4\x34\xf2\xc3\x0e\x85\xa0\xa9\x1e\xc9\xa4\xad\xaa\x85\xf1\x21\x1a\x15\xc0\x82\x62\xd2\xb8\x6e\xe1\xd5\x56\xc5\x75\x41\xe6\x75\xbd\xeb\x6c\x93\xc6\xb3\x36\xbb\xf2\x06\xf6\x38\xe9\xce\x6b\x5b\x44\x12\x16\xef\x4e\xc7\xe1\x0a\x22\x49\xa7\x7a\xba\x00\xe8\x39\x23\xc8\xb0\xfd\xb8\x1a\x61\x5d\x47\x74\xab\x13\x2e\x0a\x3a\xae\x16\x68\x86\x2b\x6d\x2c\xdd\x51\x35\x43\x18\xdd\xd2\xaa\xb2\xaf\x89\x9f\xa8\x6b\x57\xb5\xd1\x68\x34\x15\x67\x53\x98\x0c\x6c\xc1\xe3\xf7\x0d\x29\x14\xd4\xad\x27\x98\xb5\x8d\xe9\xa7\xd6\x8f\x16\xbc\xcd\x80\x1f\x77\x81\x6f\xaf\x4f\x31\x6a\x79\x12\x4c\x85\xa9\x4f\xee\xf9\x7e\x16\x20\x7a\xef\xca\xef\x9a\x8a\x57\xd1\x7d\x32\x7d\xe9\xd7\xbb\x32\x9f\x79\xae\x07\x9b\xe2\xa4\xb7\x05\xe4\xdc\x45\xb7\xf5\x11\xde\xeb\x44\x2b\xe3\x6c\xc8\xc8\xd4\x64\x94\x5b\x81\x66\x10\x9d\xa6\x7d\x83\x1f\xf4\xf9\xc9\x52\xf1\x06\xd1\xba\x26\xa5\xb6\x8f\xab\x05\x9a\x53\x1c\xdd\x13\xc8\x5e\xef\x76\x14\x3a\x64\x1c\xf1\x46\x5f\x5d\x2d\xa3\x6a\x01\x11\xbd\x59\xab\x50\xc9\xef\x58\x42\x62\xc8\x8d\x85\x39\x60\x34\x26\x0a\x5b\x1f\xb8\x3e\x04\x9e\xbc\x19\x78\x99\xf5\xd9\x03\x0c\xf9\xcd\xda\x0d\xe0\xf9\x9c\xa7\x58\x25\x48\x89\x35\xda\xbc\x59\xcf\x4f\x6f\x3b\x2a\x6d\xbc\x2e\x91\x30\x76\x37\x28\xd8\xf4\x89\xe6\xad\xda\x91\x7b\xe4\x21\xd7\x91\xc9\xc5\x0f\x8c\x44\x5a\x13\x89\x78\x9b\x89\x18\xff\x95\x6d\x2e\xa7\x85\xb7\xf7\x3b\xad\x7d\xa4\x2a\x69\x54\x79\xd4\x1c\x5b\xec\x01\x96\x71\x9b\x30\x18\x10\xed\x8d\xdb\xc9\x84\x08\xb8\xe9\xa0\xc3\x2b\xb0\x7b\x5f\x70\xc8\xdd\x61\x71\xce\x5b\x0b\xf8\x22\x6a\x00\x24\xe7\x36\xeb\xfd\x81\x26\x2d\x1b\x20\xd4\x13\x15\x44\x02\x69\x35\x43\xe7\xef\xbf\x8f\xdb\xa2\x39\x28\xd0\xd3\x72\xeb\x60\x9c\xef\x59\x1c\x26\x31\xef\x7e\x58\x47\x4f\x61\xb7\x45\x51\x71\x69\xf3\x38\x61\x5d\x8a\x19\x66\x8c\x38\x67\x14\x55\xe0\xc9\x1e\x13\xc2\x10\x6f\x88\x01\xe5\x45\x75\x06\x23\x49\xd9\xb4\x22\x08\x2b\x85\x8b\xd9\xb1\xee\x1d\x73\x7b\xa1\x4b\x98\xb4\x9f\x48\x25\x08\xae\xcd\x9e\x10\xa4\xc6\xd4\x34\x8f\x70\x21\xb8\x94\xa8\x6e\x2b\x45\x1b\xff\xb2\x38\x2f\x22\x81\xd4\x75\x69\xf2\xe7\xdc\x5a\x41\x5a\x49\x97\x99\x39\xe8\x7a\x68\x87\xcf\xc3\xaa\x2a\xe0\x3a\x1b\xe8\x6f\x49\xdd\xa8\x05\xd2\x53\x5b\x45\xe7\xc6\x4c\xa8\x90\x0a\x15\x15\x25\x4c\xd9\x91\x19\x6e\x34\xe8\xc3\xc0\xa9\xd3\xcc\xce\x88\xb4\x53\xc2\x4a\x30\xbe\x1b\x25\x11\x64\x20\xfa\x4e\xb8\x57\x95\x54\x5a\x5f\x87\x1c\xc4\xad\x9d\x2b\xa1\x61\x36\x8e\x9b\x11\xd8\x3a\x4e\xc1\x31\x3d\xb2\x1f\x05\x5d\x08\x0a\x02\xbb\x9a\xf0\x5a\x9f\x4d\x91\x2b\x50\xe7\xc2\x9d\xeb\x41\x2f\x39\xba\xb3\x2d\x20\x15\x66\x45\xea\xc0\x86\x62\x64\xae\xcf\x01\x29\x88\x56\x45\x71\x46\x21\xf3\xe4\x32\x46\x61\x31\x25\xea\xcc\x8d\x3f\x36\x7b\x37\x87\xb4\x09\x2b\xa7\x87\x0e\xa2\x6e\x71\x60\x1d\x46\xbc\x04\x36\x89\x8e\xf1\x63\x5d\x39\x77\x33\xae\x48\xdb\xeb\xe6\x81\x1a\xf1\xce\xa2\x32\x19\x5e\xbe\xa3\xb2\xc1\x05\x91\xe8\xf0\x62\x74\x36\x40\xa3\x8b\xd7\x36\x8d\x8b\x4f\x96\xd9\xf5\x62\xa7\xc5\x5e\x82\xe6\xec\x3e\x54\xc0\xde\x57\xa7\x09\xba\x14\xd0\x6c\xd9\xfe\x8e\xbc\x51\x16\x3d\x33\xab\x37\x01\x58\x68\xb4\x6e\x2a\xa8\x13\x89\x64\x0b\x96\x91\x0d\x5c\xe8\xad\x6d\xec\x11\x7b\x68\x49\x47\x70\x64\xc9\xe8\x23\x83\x38\xa6\x15\x3f\x5c\xbb\xe6\x10\xcb\x76\x13\x65\xf5\x00\x50\x98\x95\xfd\xca\x73\xc4\x40\xae\x99\x85\x8a\xc7\xdf\xee\x91\xee\xb0\xc0\x88\x7a\x47\xa4\xc4\x53\x32\x8a\xc4\x01\xe5\x38\x7b\x9d\x87\x1b\x00\x44\x9d\xbc\x9e\x11\x43\x85\xa5\x78\xf0\x49\x98\x5d\x19\x7a\x6d\x6a\x33\x90\xa8\x1e\xb8\xb3\x75\x27\xa8\x52\x04\xae\x07\xa8\xf5\x04\x5b\x77\x99\xde\xb3\x9f\xd5\x19\xd5\x9e\x9d\xf4\xb0\x3d\xad\xf7\xb3\xd2\xe4\x47\x8e\x09\x1a\x0b\x4a\x26\x68\x42\x21\x61\x13\x52\x19\x07\xa6\x4e\x01\x06\xc0\x3c\x96\x92\x08\x18\xb6\xf5\xc7\xb9\xe1\xc7\xf5\xe7\x1f\x76\xfc\x4a\xb4\xac\xc0\x41\x11\x4f\x60\x1f\xa3\x13\x34\x85\xf4\x49\xeb\x7d\xfa\xd3\xcb\xbf\xfd\x05\x8d\x17\xda\x50\x82\x33\xa9\xb8\xc2\x95\xeb\x00\xaa\x08\x9b\xea\x55\x04\x5d\x27\xee\xc2\xee\x31\x58\xf9\xc5\xa9\x68\x4d\x95\x99\xa0\x57\x7f\xb8\x1d\x27\xdd\x79\xa0\x98\x9c\x94\x64\x7e\x12\x6c\xa1\x61\xc5\xa7\x71\x6f\x3d\xf3\x84\x4f\x6d\x53\xc6\x02\x22\x72\x9f\x68\x5e\xd1\x62\xb1\xb5\xfb\xd4\xba\xc2\xd0\x8c\xdf\x19\x2f\xea\xea\x51\x0d\xc8\x60\x1a\xde\xb4\x15\x4c\x1c\xfa\xde\x33\xf8\xb5\x92\x2c\x93\x23\xa5\x7a\xe7\x03\x69\x07\xe8\x05\xdb\xec\xd2\x55\x6f\x73\x87\x5d\x37\xb9\xa5\xa6\xb0\xc1\x6e\x5f\xa9\x24\xda\x0d\xfe\x3d\xae\xaa\x31\x2e\x6e\x6f\xf8\x5b\x3e\x95\xef\xd9\xb9\x10\x5c\xf4\xc7\x5c\x61\xad\x4c\xcf\x5a\x76\x0b\x75\x76\x3b\xba\x5a\x3e\xb5\x60\x5e\x60\x96\xec\x4f\x6c\x54\x67\xdc\x28\x0d\x81\xa8\xb3\x05\x9c\xf3\xbb\x6b\x99\xdc\xd3\xce\xc3\xcd\x10\xd1\x7d\x8e\xd7\x70\xc2\x71\xc8\xf0\x68\xff\xe1\xe5\x9f\xfe\x6a\x84\x0b\xe2\x02\xfd\xf5\x25\xe4\xfa\xcb\x81\xb9\x00\x40\xf5\xd5\x36\x4e\x8d\xab\x2a\x56\xa7\x09\x45\xc0\xf7\xd1\xe5\xab\x77\xe0\xc8\xab\xad\x9d\xee\x2f\xf6\xd5\xdc\xdc\xfc\x13\x34\x31\xaa\x24\xa9\x26\x03\xc3\x07\xe3\xfd\xc9\x07\x60\xd6\x1c\xd8\x2b\x2f\x9e\x4b\x68\xfb\xde\x92\x39\xaf\xda\x9a\xbc\x26\x73\x5a\xc4\x21\x07\x7a\xab\xd2\x7b\x9b\x8b\x8f\x55\x54\x82\x2e\x39\xae\x78\x71\x8b\x4a\xfb\x65\x90\xa3\xb2\x5c\x77\x3b\x7e\x16\x62\xb3\x75\x12\xb2\x74\x1e\x1c\x7f\x2f\x3f\xa7\xc6\x4d\xa3\xf5\x68\x20\xf6\x12\xf8\xae\x37\x19\x20\x9a\x80\x3f\x35\xd1\xe8\x49\x46\xb1\xa4\x62\x58\x86\x76\x44\xfa\x9a\x8a\x7e\x45\x74\x52\x4f\x3a\x04\xa6\xeb\x7d\x3c\x80\xa0\xb7\x21\xba\x17\xba\xd3\xd0\xc0\x7f\x1b\xa2\x93\x15\x53\xdd\x57\x54\xf3\x1b\xc3\x68\x90\x7a\xfb\xc0\x2d\x13\x1f\x37\xc8\x80\x42\x48\x4b\x4e\xea\xcd\x0b\xf3\xe8\x8f\x1a\x2b\x6b\x1f\x39\xef\x05\x46\x0d\x11\x92\x4a\xad\x3a\x7d\x84\x03\x75\x56\x61\x5a\x07\x71\xf3\x6d\x4d\xc2\x6a\x2a\x4b\x8d\x9b\xe1\x2d\x59\x44\x6e\xb8\xc4\xe3\xf2\x50\x66\x4d\x8d\x9b\xc8\x7b\x00\x8a\xdb\xa6\x5f\x03\x91\x97\xf3\x88\x97\xb6\x1f\x70\x3d\x98\xa2\xc5\x9f\x33\x63\xd1\x75\x3b\x86\x33\x05\x3f\x7f\x5c\x7a\xb0\xac\xca\xd3\xb6\xef\xaa\x8f\xdd\x8a\xf7\xaf\x2a\xfd\x89\xbf\xab\xcc\xaf\xbe\xa6\x1b\x0a\xc6\xf7\x5c\x2f\x28\xdf\xf9\x4c\x72\x38\x09\x9b\x08\xd7\x9a\xdd\x19\xfd\x7b\xac\xe7\x09\x33\x47\x3a\xb0\x99\xad\x87\xea\xd8\xd4\x1b\x48\xe8\x80\x3e\x8a\xb6\x51\x74\xf0\xed\xc1\x56\x2f\x47\xb3\x32\x82\x37\x78\x0a\x26\xed\x2e\x2c\xd0\x72\x9f\x42\x7a\xdb\x19\xbf\x0b\x45\x66\x63\x7f\xa5\x25\xa6\xe3\x48\x9f\xf1\xa4\xd5\x31\x58\x5f\xb7\x23\xac\x59\x6e\xaa\x44\xdc\xe1\x05\xc2\x82\xb7\x2c\x89\xb8\x00\x42\x99\x3e\xd4\xfd\x6e\x69\xb0\x97\x9c\x11\x07\xab\x49\x69\xe5\xa6\xe7\xfa\x06\x84\x11\x65\xe8\xd5\xf1\xab\x97\xc9\x7d\xbf\x22\x45\x2b\x24\x9d\x93\x2b\x5b\x3e\x3d\x08\x83\x5e\x4c\x46\x5c\x4a\x3a\xae\x20\xd5\x52\x71\x74\x6e\x6a\xcb\xaf\x0e\xd4\x43\xbd\x60\xc4\x5c\x84\x44\xa8\x09\x3d\x3c\x34\x27\x38\x84\x68\xeb\x06\x12\x70\x5a\xbb\xa5\x82\xc2\xba\x2e\xa9\xa0\x97\x5e\x05\x35\xf7\xde\x56\xc7\xea\x6a\xea\xef\x82\x24\x79\x67\x83\x0a\x5d\xd1\x7c\xea\x8a\x32\xc3\x47\x77\x82\x2a\x7b\xb8\xef\xa8\x24\xe8\x10\xdc\x19\x4b\x9b\x31\x89\xfb\x39\x74\x7e\x25\x16\xd7\xcf\xc1\xdd\x2c\x96\x8f\xee\x2e\xac\xd2\xaa\x3c\xe9\x72\x66\xee\xac\xe7\xab\x5b\x41\x2b\xfd\xbb\x7b\x79\x86\x59\x59\x25\xc9\x0c\x3f\x2b\xd5\x22\x89\xbd\xea\x62\x82\x42\x91\x68\x11\x07\x41\x10\x72\x86\x25\x62\x1c\xd5\x04\x03\xa4\x5a\xdf\x2e\x4e\x0a\xf6\x68\xa0\xf3\xf5\xc1\x6c\x76\x73\x8d\x85\x17\x82\x15\xd7\xaf\xa9\xb4\xe2\x59\xcb\x11\x6b\xba\x18\x20\x56\x8d\xcb\x14\x32\x86\x60\x4e\xbb\xc5\x3b\xee\x60\xce\xcb\x3d\xe9\x2e\x8e\xa5\xbe\x3c\x46\x3f\x06\xb6\xba\xb9\x6e\xde\x44\x96\xd7\xf8\xf3\x3a\x58\x5b\x12\xfe\xc4\x3c\xcb\xc3\xf5\xd7\xe2\xca\x58\xd7\xf7\xd8\x77\x38\xa1\x0f\x9f\x1f\xea\x20\x90\x85\x0e\xd5\x6d\x40\x30\xb6\xbc\x8a\xcd\x51\x4e\x23\x09\x77\xd1\x0c\xef\x27\x9a\x12\x46\x04\xb6\x01\x09\x07\xea\xb6\x21\x7d\x2c\x39\x4b\x3d\x10\x9f\xd9\x70\x5a\xde\x7f\x5e\x4d\x31\x7f\x96\xd0\x11\xd0\x73\x0e\xb9\x58\x3a\xed\x36\xd4\xb2\x4e\x63\xc9\x39\xea\x25\x32\x3d\xb3\xf9\x03\x96\x5e\xbd\x28\xbf\xb4\x74\x8e\x2b\x62\xe8\xf1\x9d\x68\xd8\xaa\x32\x21\xdb\xf1\xae\x9a\x8d\xd6\x3e\x04\xb3\x63\x3d\x5a\xe2\x41\x0b\x32\x93\x3e\xf1\xe2\x05\x3a\x34\x6d\x1c\x18\x5a\xec\xed\x2a\xb9\x76\xad\xce\xef\x9b\x84\xa2\xb0\xf9\xd6\xeb\xfc\xbe\xc1\x00\xf0\x68\x76\x62\xe1\xfe\x8b\xcc\xf0\x9c\x00\x0b\x39\xad\xb0\xa8\x20\x8d\xe4\xda\x4c\x19\x1a\xb7\x0a\x11\x36\xa7\x82\x33\x00\x55\x01\x5d\x94\x96\x4c\x82\x4c\x88\x20\xac\x20\x12\xfd\xfe\xf0\xe3\xe9\x15\xa4\x19\x1e\x81\xe9\x4b\xdc\xf8\x5a\x69\x51\x50\xbd\x31\x04\xaf\xdb\xc5\xfd\x86\xdc\xd8\xf5\x76\x01\xfd\xc4\xcd\x85\x1e\x5b\xdd\xaa\x16\x57\x40\xd6\x5e\x54\xad\xbe\x0b\xb7\xb6\xb3\xf3\x3b\xcf\x53\x3c\x79\x39\x7d\xe7\x96\xaa\xff\x35\x8d\x3a\xae\x39\x0e\xea\x59\xb0\x5f\x57\x0a\x07\xa4\x01\x28\xfb\xb4\xb1\x2b\x8a\xce\x81\xf4\x54\xb2\x61\xe6\x9c\xbd\x8b\xe3\x70\x1d\x74\x3a\x53\x96\xae\x61\x09\x87\x19\xc0\x9a\xeb\x68\xcc\xd8\x76\x01\x10\xf9\x8e\x41\x84\x23\x3a\xcf\xae\x9f\x71\xa9\x4e\x2b\x8a\xe5\xa6\x7e\xec\xb4\xad\xfe\x43\xd7\x2c\x64\xfb\x31\x5b\xd5\x11\x57\x1e\x62\xa0\x7b\x66\x60\x4e\x17\x23\x8b\x45\x77\xbb\x92\xb2\xff\x6b\xb2\x4e\x7d\x40\xc9\x64\x83\xc2\x9f\x6c\xd8\x13\x83\x38\x9a\xa0\xc8\x7a\x43\xb1\xf1\x9f\xa8\xc8\x4f\xaa\x78\xf1\xb3\x8e\x66\xbc\xb2\x79\xd7\x0e\xcd\x30\x26\xea\x8e\x10\x86\x2e\x46\x30\xe7\x7a\x2a\x0d\x2f\xe3\xfa\x99\xb7\xca\x31\x53\x62\x61\x0f\xf4\xc6\xbd\x09\xd6\x0c\x56\x61\xd3\xa3\x9b\x10\x7f\x8a\x8f\x3c\x0d\x11\xdd\xf4\x52\x49\x89\x14\xf9\x65\x48\xbe\x8d\x7e\xf0\x0b\xea\xd8\x74\xf0\x98\xcf\x09\xac\x77\x59\x8a\xc8\x2c\xed\xad\x85\x3f\xb3\x2b\x30\x49\x44\x96\xb4\x49\x5e\x9f\x6e\x1d\x1c\x94\x04\xca\x33\x83\x78\x82\x63\xf6\xe4\xd0\xbe\x78\xca\xf6\x9c\xf7\xe2\x86\xc7\x2d\xdf\xad\x78\x31\x3a\x7b\xca\x1b\xf1\x83\xf5\x2e\xe9\xa6\x0f\x24\xa2\x4d\xd1\xe5\x75\x6c\xba\xf4\x5d\x2e\x43\x40\x67\x16\xe1\x68\x8f\x75\xae\xcf\xba\x82\x8d\x4f\xad\x54\x20\x66\xda\xd5\x57\x9a\xa5\x15\xb7\xc0\x11\xf0\xfc\x34\xbc\x3c\x5e\x9e\x6a\xfb\x17\xf1\xd3\xed\xdc\x4a\x46\x85\xb1\xde\xb4\x81\xa7\xf6\x59\xba\x42\x01\x26\xe9\xfd\x67\xb1\x55\x0e\xb7\xb7\xb0\xa3\x8b\xd7\x5b\x3c\x17\x0d\x2d\x9f\xf7\xb9\xf8\x20\x37\xa6\xd5\xcf\x3a\x81\x50\x7d\x33\xef\x0c\xc6\x60\xa6\x6d\xc1\x4d\xfb\xd7\xc0\x88\xc5\x15\x6a\x04\x91\x84\xf9\xb3\x53\xae\xcb\x37\x84\x6b\xb1\x3f\x8a\x81\xfe\xf7\xa4\xad\x36\x55\xfd\xb9\x08\x28\x75\x3c\xff\x10\xf6\xec\x21\x10\x63\xc0\x73\x4c\x2b\xf0\x3b\x05\xfc\xb0\x2b\x1d\xb0\x69\x51\x1b\xf6\xa0\xe2\xb8\x84\x98\x17\xba\xd5\x77\x56\x85\x6a\x5e\xb6\x95\x81\x68\xa1\xb3\xd3\xd1\xcf\xd7\xff\xbc\xfe\xf9\xdd\xfb\xd7\x1f\xde\x6e\x4c\xa3\x65\x72\xc3\x49\xb7\xc5\x07\x08\x23\x46\xee\xa0\xe7\x0c\xac\xae\xc2\x3a\xba\x3d\xbd\xa2\x16\x8e\xd7\x36\x4b\xd0\x04\x7d\x0d\xe6\x62\xd2\x56\xfa\x47\x1b\xf6\xa0\xa6\x8a\x4e\x31\xbc\xac\xb3\xf5\xc7\x82\xe0\x5b\xde\x2a\x34\x6f\x2b\x46\x04\x1e\xd3\x8a\x6a\xd5\x18\x91\x39\x61\x06\xe8\xa7\xff\x40\x77\x32\xac\x52\x4b\x37\x6d\x3c\x2c\x62\x6c\xcb\x23\xea\x49\xd5\x2d\xe3\xc2\xfa\xd1\x2c\x4d\x24\x7c\xd9\x08\x3a\xa7\x15\x99\x12\xcf\xbf\x16\x43\x03\xdc\xc7\x97\xe0\xaa\x99\xe1\x61\x45\xe6\xc4\xf0\x38\xe9\x2b\x42\xef\xa8\x19\x67\x5c\x98\x80\x93\x61\x24\xb7\x37\x04\x30\xdb\x98\xc3\xea\x6a\xf6\x9a\x2c\xd6\x6b\x97\x4e\x6a\xb3\x48\x9f\x4c\x58\x6d\x0e\xd1\x48\x93\x55\xd7\x3e\xc4\xed\x56\x20\x4c\x83\x1e\x6d\x8c\x16\x5e\xef\xf8\xea\x0c\x4f\x78\xbb\x93\x31\xf6\xb0\x60\x64\xd0\xa8\x43\x57\x42\x09\x98\x5e\x62\xe6\x7c\x63\xbd\x1b\x1c\x61\xa3\xb6\xaa\xae\x49\x21\xc8\xa6\xe0\xdd\xb4\xa9\xbf\x58\x6a\xfb\x21\xb7\x4c\xe0\x7c\x87\x22\x2e\xf6\xc7\xac\xab\xd4\x10\xa4\x23\x77\x34\xdb\x4d\x5b\x55\x26\xba\xbf\x70\xcb\x09\xa3\x95\x41\xda\x08\x95\x2e\xb5\x3d\xe6\x36\xe9\xad\xb1\x24\xbe\x6b\x6e\x79\x1b\x2c\x65\x17\x4c\x9d\xd3\xb2\xc5\x15\x74\x0b\x3c\x90\x36\x73\x1b\x9b\x52\xa4\x56\x22\xd6\x91\x95\xf6\x37\xe4\xf5\xe9\x64\xd5\x89\x99\x93\xdf\x99\xc1\x2c\x28\x9b\x0e\xe1\x13\xdd\x4d\x3b\x9e\x21\x67\x43\x3c\xdc\x14\x38\xff\xac\xdc\x54\x6f\x79\x81\xab\xf7\xe0\xd7\xb9\x72\xbb\xcd\x09\x74\x89\x08\xe3\xed\x74\x06\xd3\x2b\x6a\xec\x68\x63\x2b\xa2\xa0\xba\xab\x4d\xfa\x8a\xf1\x47\xf9\x9d\x5d\x5a\xa7\x52\x58\xd1\xb7\xbf\xb3\x9f\xd0\x55\x95\xe2\x3d\x8a\x45\xd8\xe5\x08\x63\x5c\x06\x82\xdb\xce\x6c\x64\xcc\xad\x7f\xa9\x92\xc9\x84\x14\xca\x01\x41\x8c\x1b\x6f\x00\xb1\xc2\xb2\x35\xdc\xd0\xb8\xb8\xbd\xc3\xa2\x94\xa8\xe0\x75\x83\x15\x05\x15\x63\x11\x8b\x12\x71\xb9\x07\x26\xc7\x0d\xf2\x52\x8f\xd1\x05\x93\x0a\x83\x0c\x74\x14\x17\x7a\x85\xbb\xb4\x54\xc8\x5e\x35\x0c\x61\x33\x22\x08\xc2\x22\x0e\xad\x83\xab\x5a\x2b\x9b\x05\x11\x7a\xef\x57\x0b\x74\x27\x38\x8b\x4c\x0f\xdf\x50\x28\xf1\x39\x11\x73\x4a\xee\x4e\xac\x35\x3d\xd4\x83\x1b\x9a\x2d\x2c\x4f\xe0\x24\x9c\xfc\x0e\xfe\xdf\xf3\xf1\x4b\x2d\xb9\x87\x6a\xdc\xc4\xbb\xfd\xbe\x82\xd8\x0f\x65\xb4\xe3\xbd\x79\x52\x65\xe3\xad\x55\x26\x6c\x6d\x0a\xfa\x6f\x23\xc7\x03\xa5\x7d\x4c\x2a\xce\xa6\x41\x55\x0e\x6d\x9c\x6c\xaa\x15\x30\xaa\x7a\x86\x00\x00\x04\xa0\x58\x3b\x44\x21\xb9\x28\x81\xef\x88\x1a\x50\x76\xaf\x75\x28\x9f\x1c\x30\x2d\x61\xb6\xa9\x83\x9b\xf6\x5a\x87\x5c\x7d\xd9\x19\xb6\x26\x65\xd9\x31\xd8\x2b\xae\x8d\x11\xe2\x8b\x38\x1b\x63\xc1\x62\x38\x11\x2e\x0a\x2e\xca\xcd\x8f\x8a\x56\x75\x94\xa7\x8c\x32\x54\x0c\x86\x2c\x03\xf4\x5e\xad\xe4\x60\xb6\xdc\x4f\xb0\xc4\x45\xdd\x23\xd6\xb1\xde\xaa\x0d\x9b\x6f\x19\xfd\xa5\x25\x08\xd7\x5c\xeb\x7d\x55\x4a\xc2\xd6\xf2\x4a\xd6\x78\x01\x8a\x3d\x4c\xda\x5b\xc7\x81\xa8\x2d\x3b\xad\xbe\x0d\x00\xec\x49\x83\x42\x21\x03\xf4\xb6\x5f\x39\x64\xa0\xc7\x79\x6d\x58\xfb\xed\x47\x9b\xdb\x7a\x40\xae\xc3\x5b\x51\x90\x2b\x73\x11\xd5\x96\x20\x62\xcd\xb4\xea\xbd\xa7\xf0\x2d\x61\x26\x66\xa9\x97\x14\x92\xb5\x5a\x01\x3b\xad\x98\x91\xb2\xad\x36\x5f\xe2\xf1\x02\x4d\xb4\x3a\x6b\xb1\x2e\x33\x3a\x9d\x11\xa9\x9c\xe7\xf3\x04\x28\x0d\x4c\xda\x1c\x2e\x66\xbe\xbb\x20\x7f\x03\x32\xb4\x0e\x2c\x53\xe3\xfb\xcd\x09\x2e\xe0\x0e\xc4\xca\x11\xe3\x1a\x67\x82\x6c\x6b\x77\xfd\x2f\xef\x27\x79\x8c\xde\xea\x8e\x99\x13\x89\x9b\xa6\xa2\x4e\x31\xef\x2d\xf3\xc6\x07\x0e\x18\xf2\x00\x49\x84\x26\x58\xce\x28\x67\xa9\x1b\xad\x30\xf8\x82\xa2\x15\x5a\x7f\xa9\x16\x40\x70\x5e\x96\x5a\x45\x14\x48\x90\x9a\xcf\x37\x77\xdd\x26\x63\x16\xd2\x68\x43\xf5\x24\x0f\x03\x93\xe3\x99\xd8\x11\xa7\x9e\xfc\x50\xef\x97\x62\xe9\xc2\x30\x1b\x50\x1b\x00\xae\x44\xab\x68\x59\x97\xe9\x18\x71\x79\x6c\x29\xba\x1c\x91\x8f\x98\x62\x21\x60\x31\xdd\x5a\x8a\xf0\xa9\x98\xb6\x46\x62\xda\x2b\x1e\xc2\x9c\x0d\xa7\xf1\x86\xc2\x0a\xaa\xe8\x40\xa2\xb3\x77\xaf\x43\x46\xe6\xb0\x8e\xb6\xe3\xeb\x8e\x6b\xee\x63\x5e\x3c\x22\x68\x19\x1e\xe4\x18\xd5\xa3\xc2\x4b\x16\x2d\xe9\xab\xb9\x73\x78\xf9\x0e\x3a\x3f\x0d\x65\x4d\xab\xac\xfe\x1d\x14\xde\x2c\x66\x98\x4d\xb5\xc2\xf3\x9a\xb7\x7a\x60\xbf\xff\x3d\x0c\x42\x90\xb2\x2d\x22\x73\x49\x8c\x43\xcd\x9c\xdc\xdf\x3b\x54\xb7\xad\xf0\x0b\xf7\x92\x2c\x70\xe3\xa6\x26\x9c\x3d\xb9\x60\x0a\xdf\x7f\x8b\xe8\x31\x39\x46\x2f\x7e\x1f\x7c\xf5\x02\x7a\x1c\xd5\x9b\x46\x70\x3d\x14\xcb\x92\x0a\xa3\xaf\xa8\x82\x6c\xf2\x17\x61\x0b\xc7\xe8\x5c\xf7\x0b\x92\xa4\xfc\xda\x06\xc4\x97\xe3\x6e\x65\x07\x48\x90\x29\x16\x65\x45\x22\x89\xc6\xf8\xc4\xe7\xf3\x18\x26\x79\xbb\xab\xc8\x3d\x95\x4a\xda\xc8\xc8\x71\x1e\xa4\xdb\x97\xde\x1d\x0a\xcb\x5b\x7d\x53\x68\xe1\x37\x2c\xb1\xc2\xc3\x40\xea\x9e\x18\xc7\xe8\xb0\xe0\x75\x8d\x59\x39\xc4\xf6\x1c\x77\x97\xca\xc9\xef\x6c\x7d\x84\x21\xf6\xbf\xa2\x6c\x88\x87\x72\x46\xa2\x56\x6e\x0f\x33\x81\xc7\xce\xe5\xb6\x04\xf6\xb9\x97\xcf\x66\x29\x8e\xd1\x25\x57\x9d\x45\xe5\x6f\x5b\x58\xe5\x9c\x22\xfc\xfc\xf2\xe6\xea\x9f\xa3\xf7\x17\x97\x37\x7b\x49\xbe\x97\xe4\xf0\xec\x25\xf9\x5e\x92\x47\x34\xbc\x2b\x92\x9c\xb0\xf9\xb6\xa4\xb8\xf3\xbd\xad\x4b\xad\xb1\x31\x3d\xb5\x82\xd1\xdf\x3a\x3a\x7f\xdb\x0c\x3b\xe7\x6c\xfe\x11\x6b\x93\xdf\x42\x54\x2c\xfc\x79\x4d\x76\x92\xfd\x81\x71\x47\x9c\x3d\x7b\x8a\x9d\x2d\x12\xe4\x64\x24\x88\x08\xa3\x51\xeb\x56\xad\xab\xee\x89\xd1\xd9\xcf\x17\xaf\xcf\x2f\x6f\x2e\xbe\xbf\x38\xbf\xda\x6a\xee\x20\xf8\xd3\x76\x21\x6b\x70\x13\xfd\x28\xa1\x99\x4e\xb3\x6a\x04\x99\x53\xde\xca\x6a\x81\x1c\x0a\x63\xbd\xb8\x5a\x65\x2b\x4a\x4c\xc2\x36\x90\x1c\x5a\xac\xdf\x26\x72\x49\xb7\x5b\xa7\xa7\x25\x34\xbf\x65\x0d\xcf\x76\x22\x87\x9e\x97\xd0\xfe\x1a\x0d\xf1\xcb\xb5\xbd\x84\x76\xa3\xf4\xc4\x87\x74\xbe\x84\x7e\xf4\xb5\xc5\x84\x17\xf5\xb3\x54\xb7\x2f\xc9\xbe\x17\xbc\xce\x24\xcd\xae\x4d\x18\xc3\x01\x17\xd7\x1d\xd5\x03\x5b\x34\xb0\xa7\x6f\x5b\xcb\xb1\xab\x26\xa8\xed\x57\x08\xe9\x27\xce\x4e\x52\xb5\xe1\x3c\x05\x7f\x91\xcd\xb1\x7c\x87\x9b\xbf\x93\xc5\x15\x49\xac\x9b\xda\x9f\x6f\x52\x91\x42\xeb\x3c\xe8\x96\x2c\x0c\xa9\xd2\x99\x6b\x2c\xad\x74\x6c\x96\xe9\x43\x59\x4a\x36\x9b\x67\xa8\x87\x98\xf4\x8e\x3c\x8b\xa9\x9f\x5b\x92\x40\x45\xe4\x9e\x25\xa2\x2c\x02\x4b\x08\x6a\xbe\x5e\xd3\xb4\xd5\x43\xb9\x8a\x34\x9b\x27\x4d\xe1\x73\x4f\xce\x82\xcd\xe6\xc9\x87\x65\xea\x3f\xdb\x45\x36\xf5\x9f\xad\xe2\x9c\x96\xbb\x92\x0f\xf5\xd4\x7f\x76\x09\x03\xd5\x7f\x32\x9e\xa2\x14\x7c\xd4\xf2\xe3\xe0\xbf\x99\x4f\xa5\xc1\x79\x2f\x7a\xaa\x93\xbf\x50\x90\xa1\xea\x07\x39\xe5\xf2\xa4\xac\x15\x90\x69\x9a\xd3\xe8\xe2\xcc\x93\x0f\x49\xd6\x7f\x40\x1c\xe4\xbd\xbd\x93\x65\x60\x77\xfd\x1b\x61\xe5\xeb\xd6\x97\xdf\x3a\xfe\x2c\x89\x6a\xa2\x70\x89\x15\x3e\xd6\x07\x62\xd0\xff\xa7\x4d\x92\xf9\x1f\xff\x61\x85\xc7\xa4\x92\x3f\x1e\xfc\xe7\xdf\xcf\xff\xf9\xff\x1d\xfc\xf4\x3f\xe1\x77\xa0\xae\x19\x20\x76\xf0\x83\xc4\x21\x40\xc5\x2f\xc6\x4b\x72\x09\xbd\x83\x7f\x5a\x4b\xef\xd4\x60\x71\xec\x17\x50\x75\xe5\xd8\x24\x80\xfa\x7f\x36\xbc\x5c\xfe\x57\x42\x51\x6b\xb4\x9b\x7a\x0f\xac\x6d\x02\x99\xb2\x79\xf2\x69\x3f\xb8\xa1\x1f\x89\x90\x49\xfc\xbb\xee\xe9\xb3\x65\x9b\xb7\xba\x6d\x2c\x8b\x19\xa9\x31\xfc\xe7\xf7\x6e\x0a\xf4\x7d\xec\xeb\x62\x31\x28\x6f\xa3\xef\xc0\x41\x8f\x90\xec\xc5\xfc\x55\x92\xc5\x69\x9e\x8c\x92\xdf\xaf\x60\xe6\x09\x83\x19\xb1\xb3\x65\x24\x80\xd7\x1f\x7d\xe6\x87\x4b\xbf\x40\xa7\xa3\x0b\x34\x37\x33\xbc\x43\x93\xf3\x58\xe2\xda\x41\xea\xbe\xdf\x69\xb1\xed\x81\x7f\xcb\x55\x2a\xbe\x35\x19\x69\xee\x7b\x5b\x04\x49\xfa\x8a\xeb\x64\x73\x42\x95\xe5\xe7\xd0\xbc\xf2\xb8\x68\xda\x81\x7d\xfd\x71\x4d\x6a\x2e\x16\xfe\x9f\x9e\xd3\x7f\x28\x15\x17\x78\x0a\x4c\xb4\xa6\x71\xf3\x67\xfe\x5f\xe6\x0f\x7b\xdd\x5b\xfd\x6b\xe3\x90\xec\x30\x7b\x9e\xe2\xf1\xab\x13\xd9\x6e\xdd\x76\x44\x62\x17\xa9\x45\x54\xfb\x4f\xef\x34\x1c\xf8\x50\x8a\x31\x13\xfd\x2c\x82\x17\xc8\x96\x9a\x18\x74\xf9\x6a\xe0\xaa\x64\x73\x34\xc7\x42\x1e\xec\x8e\x1c\x42\xa8\xa4\x73\x2a\x79\x02\x1b\xa0\x7f\xd1\xaa\x46\xed\x32\x27\x6d\x51\x33\x93\x21\xe5\xe3\x1e\xf7\x0d\x54\x16\xf6\x87\x7d\xe9\x36\x7b\x95\x6a\x2c\x20\xd4\x60\xa5\x88\x60\xdf\xa2\xff\x3e\xfc\xd7\x37\xbf\x0e\x8f\xbe\x3b\x3c\xfc\xf1\xe5\xf0\x6f\x3f\x7d\x73\xf8\xaf\x63\xf8\x8f\xff\x38\xfa\xee\xe8\x57\xf7\x8f\x6f\x8e\x8e\x0e\x0f\x7f\xfc\xfb\xbb\x37\x37\xa3\xf3\x9f\xe8\xd1\xaf\x3f\xb2\xb6\xbe\x35\xff\xfa\xf5\xf0\x47\x72\xfe\xd3\x17\xbe\xe4\xe8\xe8\xbb\xdf\x27\x77\x1d\xb3\xc5\xfb\x44\xe9\x6d\x9e\x61\x96\x1a\xfa\xeb\xde\x98\xc9\x3a\xec\x5d\x85\x94\xa9\x21\x17\x43\xf3\xea\x6f\x21\x19\x3f\xb1\x01\xb7\xbd\x72\x9f\xff\x2b\x27\x35\x03\x18\xbb\xd3\x42\x76\xe8\x80\x3f\x96\xa2\x61\xd2\x3f\x9f\xc2\xb3\x6b\x5a\x0a\x4a\x34\x1d\xc8\x2e\xf3\xf1\x6b\xbb\x41\x7f\x0b\xce\x5e\x67\xe7\x98\x75\xed\x54\xf7\x89\xe0\xb5\x2d\xdc\x62\x22\xdf\x73\x5c\xd1\xd2\xfd\xee\x96\x24\x44\x45\xdc\xb3\x77\x0e\x47\x3f\x7b\xe7\xf0\x03\x5d\xd9\x3b\x87\x93\x9e\x67\xe9\x1c\x36\xa4\x14\xbf\x4d\xcf\x70\x7e\xb2\xe5\x48\x4c\x57\x4e\x9e\x65\xc2\xe6\xb1\x78\x80\x9c\x20\x48\xe7\xf6\x08\xcb\x70\x7f\x19\xd2\x28\x1e\xdf\xae\x57\xce\xc3\x9a\x3a\xd0\xbc\x51\x69\xeb\xf5\x30\x34\x74\x5a\x55\x88\x32\x73\x41\xeb\x17\x44\xb5\xee\xd9\xb4\x88\x2d\x79\x61\x59\x5c\xe7\x7a\xa8\x9e\x09\x2b\xc0\xdf\x4b\x93\x03\x4d\xd9\xf4\xd8\x10\x4a\x19\x35\xd1\x42\x54\x28\x43\x75\x5b\x29\xda\x44\xe2\x5d\xbc\x19\x6a\x90\x33\xfa\xa2\xc0\x52\xf2\x82\x62\x5f\xe3\xdb\x57\x21\xb7\xd3\x03\x23\x50\xf8\x16\x20\x62\x05\x29\x09\xdb\x9c\x8c\xc3\x3c\x1f\x75\x7b\xdd\x3a\x8c\x17\x7a\x26\xce\xd9\xdc\xde\x5f\xa8\x6c\x0d\x4c\xda\xa8\x50\xf9\xda\xfd\xba\x30\xb1\xfa\x0c\x5b\x30\x4e\x00\x8d\x05\x6d\xd3\x3b\x1c\x31\x20\x8a\xf9\xa4\x8b\xf0\xc5\xed\xde\x64\xeb\x21\x5d\x57\xf7\x08\x9b\x24\x23\x6c\x45\x49\xef\x42\x9f\x7d\xe5\xfc\x6b\x00\x25\xa5\xab\xed\x79\x55\xf6\xc7\x50\xd7\x77\x45\x55\xdf\x11\x35\xfd\x71\x54\xf4\xdd\x54\xcf\xb3\xa9\xe6\x79\xd4\xf2\x3c\x2a\xf9\x06\x58\x8d\x9c\x6a\x78\x1e\x15\xfc\x31\x1c\x70\x8d\x20\x13\x7a\x9f\x49\xe2\x9f\x06\xac\x7a\xb4\x24\x4c\xd1\x09\x25\xc0\x40\xd3\x08\xd2\x10\x06\xe7\x17\xf8\x3a\xb4\xe6\x61\xf5\xce\x0e\x6e\xb9\x8b\x99\x0a\xc6\x65\x94\xf7\x52\xbc\x5e\xe7\xae\xda\xdf\x88\x68\x7f\x23\x6e\xf0\xec\x6f\xc4\xfd\x8d\xf8\x24\x37\xa2\x95\x56\x5f\xff\x75\x98\xbb\x72\x46\x8d\xa7\x5b\xe3\xa8\x3c\xeb\x33\x0d\x80\x64\x7e\x12\x72\xc5\x15\xc6\xd7\x48\x67\x52\x28\x64\xbd\x4e\xa1\xb8\x11\x7b\x86\x0d\x4c\x20\x43\x40\x6d\x4c\x57\x54\x63\x86\xa7\x40\x54\xa6\x7f\xe7\xca\x7d\x71\x81\xb4\x74\x10\x34\xb2\xaa\xec\x12\x65\x03\xb8\x86\x1c\xed\x14\x7c\x29\x78\x55\x11\x21\x51\x45\x6f\x09\x7a\x4d\x9a\x8a\x2f\x6a\x9b\x45\x5b\xa2\x6b\x85\x15\x99\xb4\xd5\x35\x51\x09\x45\x68\x22\x25\x8e\xe7\x5c\x36\xfc\x78\xdb\xda\x8a\x40\xbf\x0c\x74\xc4\xa8\x31\x44\x7d\x51\xaf\x79\xcf\xe0\x2a\x3f\xad\xee\xf0\x42\x0e\xd0\x25\x99\x13\x31\x40\x17\x93\x4b\xae\x46\xc6\x3b\x13\xf7\xde\x30\x97\xcc\xbc\x1c\xd1\x09\xfa\xb6\xc2\x8a\x48\x85\x14\x9e\x82\xaf\xb0\xa3\x60\xe6\xa2\xd7\x68\x57\x41\x77\x8b\x4e\xb3\x0c\xbc\xcc\xd0\xba\x67\x65\x7e\x72\xe6\xd3\xca\x31\x1d\x6e\x8d\xb2\xcb\x10\x2c\x1a\xb6\x35\xc3\x17\xe8\xc5\x89\x61\x4d\x77\xf5\x41\xc1\x57\x4a\x19\x12\x44\x36\x9c\x49\xd2\x23\xd8\xec\x06\x62\x7c\xcf\x91\x58\xea\x8c\xae\xd4\x68\xc3\x20\xd5\x24\x68\xb8\x54\xc0\x43\x19\xab\x9f\xe4\xb2\x05\x46\xae\x23\x40\x4d\x8a\xab\x8a\x94\x88\xd6\x35\x29\x29\x56\x5a\x6f\xc7\x13\x45\x04\xc2\xfd\xe8\x80\xad\x20\x71\x6c\x4a\xe0\xb8\xaa\xf3\x8e\xec\x34\xde\x58\x5b\x8e\x42\x28\x22\x6a\xca\xb0\xad\xb2\xed\x18\x4d\x43\x6a\xd4\x25\xb2\xd3\x24\x21\xaa\x9f\xf7\xa0\xd9\x05\xdb\x7b\x19\x39\x8b\xc6\x15\x2f\x6e\x25\x6a\x99\xa2\x95\x2d\x57\xc0\x6f\xc1\x7e\xa9\x40\x9c\x44\x37\x1d\x2f\xa5\xfc\x7f\x0e\xfd\x01\x1b\xea\x5e\xc9\x93\xdf\x75\x5f\xc1\x07\x91\x9d\xcb\x60\x45\xe7\xb0\xa1\xc9\x3d\x29\x52\xf4\xf9\x7e\x14\xe3\x9e\x14\xfe\xea\x92\xb0\xc3\x81\xe7\x06\xbc\x30\x86\xdb\x2a\x53\xf0\xcf\x3c\x99\x40\x50\xb9\x80\x47\x09\x9c\x62\xe1\x93\x1b\x57\x73\x66\x17\x81\x4a\x3b\xf3\xe6\x9f\x15\x65\xa4\xbf\x30\x9e\xa1\xdf\x2f\x8e\x89\x27\xae\x94\xce\x75\xd9\xe2\xc9\x5d\x73\x7d\xd1\x7d\x83\xda\x31\x87\x07\x27\x07\x47\x2b\x7b\xe4\xc0\x54\xb5\x34\xd7\xe2\xb1\x65\x36\xf3\x83\x92\xb4\x6e\xa0\x94\x33\x29\x0e\x5c\xe5\xf9\xe4\x9e\xe9\xdb\xd0\x54\x4a\x82\x59\xb1\x4c\x6c\x03\x24\x39\x52\x02\x97\xd4\x1a\x08\xf0\xa9\xfe\x91\x12\xad\xbd\xd0\x0f\x0f\x7e\x3d\x18\x20\xa2\x8a\x23\x74\xc7\xd9\x81\x82\xe9\x3b\x46\x37\x50\xfe\x22\x1d\x5b\xeb\x3a\xb2\xe0\x2d\x14\x59\x32\x4b\xd8\x54\xb4\xa0\xaa\x5a\xc0\x75\x83\x78\x6b\xca\x41\x69\xd5\x22\x81\x41\x2e\x7c\xce\xef\xa9\xb2\x49\x5b\x5a\x7e\xbf\x5c\xaa\xee\x5f\xd1\x39\x39\x99\x11\x5c\xa9\x99\x49\x29\x60\x9c\x0d\xff\x4d\x04\x07\x96\x39\x66\xbf\x49\xed\x46\x5a\xac\x36\x7c\x12\xe2\xb6\xab\x1d\xca\x82\x26\xca\xec\x0c\x70\x8f\xbe\xf6\xde\x90\x68\x95\x08\xad\xd4\x3e\xbd\xb9\x19\xbd\x21\x2a\x94\xf2\x0c\x3e\x44\x6f\xce\x6f\x5c\x22\x09\x38\xe0\x89\x98\x70\x51\xef\x80\x78\xcf\x83\x70\x1d\x42\x01\xc2\x1d\xb8\x65\x66\x5c\x26\x2d\x27\x7a\x84\x2b\xc6\x94\x8b\xc4\xb5\xb3\x4d\x18\x29\xf4\x26\xe8\x67\x45\x38\xbe\xfe\x8b\xd1\x31\xfa\x27\x6f\x81\x2b\x1e\x8f\xab\x85\xe7\x99\x96\x24\x0d\xca\xac\x9f\x17\xba\x2b\x2f\xf4\x0d\xa2\x77\xfe\x0f\x04\x97\x44\x48\x10\xd0\x04\x27\x26\x2d\x65\x3c\xee\x41\xdf\xb2\x2e\xe5\x59\x2b\x15\xaf\xd1\xcc\x0e\xbb\xcf\x40\x67\x0f\xe7\xb1\x39\xae\x96\x86\x48\x90\xc6\x08\x71\xfb\x37\x5f\x9d\x88\x5e\x91\x5e\x66\xde\xed\xe7\x63\xa3\xa6\x86\xd3\x66\x03\x1c\x86\xe0\xc6\xca\x36\x53\xd6\x20\xd3\x75\x91\x01\xb4\x8f\x32\x02\xf7\x51\x1a\x37\xdd\xf2\x8b\x20\xd8\x93\xfc\xa6\x7c\xb9\x00\x28\x1b\xde\x1d\x3d\x0a\xe6\x1d\x59\x28\xa3\xdd\x7c\xc6\x07\x1d\xef\x3d\x5f\xf7\x72\xda\x55\x6e\x2b\x30\xe3\x8c\x16\xb8\xa2\xff\x26\x25\x6a\x1b\xce\x6c\x82\x1b\x68\xb6\x05\x96\x64\x08\x38\x4d\x66\xc4\xb9\x0c\x58\xd2\xb4\x74\x50\x9c\x83\xba\xe7\xcb\x78\x99\x5e\xe7\xe9\x6a\x56\x68\x76\x32\xe5\x5f\xf8\xac\x04\xd4\x7b\x8b\x95\x67\xc7\xa3\x67\xa1\x4e\x22\x93\x99\x98\x9c\x15\xbf\x9a\x13\x6f\x2a\xb9\x00\x0f\x9c\xb9\xae\x40\xf0\x9a\xa2\x9e\x3b\x73\x6f\x6b\x15\x70\xd7\x74\x2f\x83\x39\x10\x88\xb5\xf5\x98\x88\x8e\x50\x44\xa8\xd5\x39\xcd\xe2\x75\xb1\xcd\x9a\xe6\x5c\x94\xd6\xe9\x18\x98\x4d\x09\x7a\xa5\x5b\xfe\xcb\x9f\xff\xfc\xc7\x3f\x67\x68\x47\x0f\xcf\x43\xb9\x19\xba\x38\xbd\x3c\xfd\xf9\xfa\xe3\x19\xd0\x14\xa6\xbe\x3e\x53\xa6\x6a\xee\x3c\xd5\xac\x59\xaa\x8f\x9a\xa3\x0a\x84\x1f\xc9\x52\x36\xf7\x91\xb8\x86\x5e\x85\x35\x53\xad\x4d\x12\x14\x41\x8b\xa9\x49\xbc\xfa\x84\xc1\x3c\x2d\xb0\x76\x42\x52\xc9\x8a\x90\x26\x9b\xc5\x7f\xad\xdf\xd6\x63\x6b\x46\x65\x2b\x6c\xb5\x50\x17\xbc\xea\x7c\xf9\x36\x68\x05\x7d\xf8\x8a\x8c\x7f\x49\x0a\xce\xca\x14\x13\x20\x97\x4a\x6b\x7b\x92\xf5\xcc\x5d\x9b\x77\x3a\x17\x71\x77\x95\xd8\xc6\xc0\x92\x4c\x5d\x51\xe4\x57\x35\x8f\x9c\x34\x94\x0c\xf0\xb6\xbf\xfc\x29\x3e\x40\x56\x34\xd7\xbc\xb8\xcd\xe8\x22\x4b\x14\x60\xaf\xf5\x49\x2b\x4c\x2c\xf0\xe6\x6c\x64\x3a\xa7\x57\xe6\xf2\xfd\x4d\xc7\xbf\x02\xf9\x46\x5d\xbd\xbe\x1f\x6c\xb4\x10\xb3\x12\xdd\x92\x26\xcd\xba\xd4\x02\xd3\xc1\x08\xfb\x28\x42\xf0\xbd\x0b\xcb\xf7\x6a\x72\x9c\x8d\x20\x70\xe8\x3f\xa3\x11\xa7\x31\x47\x07\xc1\x79\x08\x04\x5a\x23\x64\x82\x69\x85\x30\x78\xe5\x15\xad\x89\x49\xb2\x02\x67\x7f\x87\x96\xf8\x8a\x04\xce\xd7\xea\x6d\x3c\x78\xef\x50\x84\x1b\x7b\x0d\x53\xa9\x29\xbe\x6e\x33\xc0\xca\x6c\xc3\xe9\xb3\x37\x03\x36\x79\xf6\x66\x40\xa4\x19\xd0\x08\x72\xad\x78\xb4\xae\x99\x0d\x70\x63\xba\xf1\x00\xdc\x66\x4c\x26\x5c\x90\x65\xbc\x4d\x80\x83\xb1\xc8\xf9\x04\x64\xf0\xe9\xe8\xc2\xc7\xbe\x78\x0f\xeb\x62\x12\x82\x65\x5b\xcc\x5c\x98\x94\x11\x29\x4f\x64\x58\x2f\x17\xae\xb6\x56\x90\x78\x94\x4f\x23\x08\xa9\x61\x1e\x07\x1d\xa5\x8f\x1e\x2e\x61\xe6\x43\xa2\x0a\x13\x37\x77\xb0\x22\xcb\xd8\xee\xa6\x6b\x92\x14\xce\xef\x26\xb6\x10\x58\xce\x08\x50\xee\x93\x7b\xaa\xa4\x69\x74\x04\xc4\x37\x6e\xc6\xb5\xbe\x30\x15\xb8\x20\xa8\x21\x82\x72\xad\x62\xb4\x4c\x95\xfc\x8e\xa1\x31\x99\x52\x26\xdd\x8a\xa5\x74\xc9\x6d\x09\x40\x12\x51\xe9\x4b\xab\x1d\xa3\xab\x5e\xc5\x01\x4b\xf1\x55\xf0\x4e\x66\xda\x29\x1a\x64\x9a\x12\x50\x5e\x60\x1b\xb4\xb8\xaa\x16\xdd\xc6\x73\x09\xeb\xea\xe1\x19\x8a\xdf\x10\x66\x66\x0f\x5b\x06\x03\x2d\x49\x85\x17\x26\x35\x7b\x42\x19\x78\x7f\x85\x3c\x3a\x4e\x87\x66\x45\x77\x90\x8b\xe0\x9d\x0f\xee\x0c\x2a\x91\x20\xb8\x98\xa5\x68\x76\x7b\x0c\xd8\xe7\x9e\x3d\x06\x6c\x8f\x01\xdb\x63\xc0\x56\x9f\x3d\x06\xac\xff\xec\x31\x60\x0f\x77\x68\x97\x83\x76\x7b\x0c\xd8\xde\x2b\xb3\xfa\xec\x31\x60\x51\xcf\x1e\x03\xf6\xd9\x67\xe7\x44\xf4\x1e\x03\xf6\x05\xcf\x1e\x03\xf6\x85\xcf\x1e\x03\xb6\xc7\x80\xed\x31\x60\x7b\x0c\x58\xc2\xb3\xc7\x80\x6d\x3e\xbc\x7d\xf0\x27\xfe\xd9\x63\xc0\xf6\x18\xb0\x0d\x9f\x3d\x06\x6c\xe9\xd9\x63\xc0\xf6\x18\xb0\x4f\x3d\x7b\x0c\xd8\x1e\x03\x66\x9f\xbd\xb7\x71\xe5\xd9\x63\xc0\xd6\x3c\x7b\x0c\xd8\x66\xed\xec\xcd\x80\xb4\x97\x65\x37\x03\x1c\x9e\x69\x24\xf8\x78\x6b\x4c\x5a\x23\xc0\x8a\xd0\xc2\x82\xa9\xf8\xa4\xc7\x8e\x65\x3a\x18\xc9\x8a\xd5\x07\xf1\x40\xb9\x07\x47\x97\x44\xed\xe1\xf2\x00\xae\x6d\x32\x6f\x6d\x8c\x72\x71\x8c\x82\xf2\xa4\xe1\xe6\x7f\x3a\x8c\x4b\x00\x6e\x89\xf6\x79\x6f\x99\x0a\x2c\x05\xd1\xb2\x35\x34\xcb\x8e\xa0\x81\x32\x20\x58\x72\xde\x6b\x3b\x8a\x5c\xd9\x4d\xd4\xca\x2e\x22\x56\xb6\x81\x56\xd9\x3a\x52\x25\x4f\x08\x34\x43\xf8\x33\x93\xf6\xf0\x08\xa1\x04\x0b\x7a\xbe\x99\x09\x22\x67\xbc\x8a\x16\x38\xb9\x84\xcd\x3b\xca\x68\xdd\xd6\xfa\xec\x4a\x2d\x53\xe8\xdc\x03\xb3\xa5\x13\x19\xf6\xba\x37\xd1\x61\xfd\x43\x5a\x12\xa8\x9b\x8c\x69\xa5\xb7\x16\x10\x3b\xce\xf0\x5c\xcb\x1b\xd9\x16\x05\x21\x65\x8a\x41\x1a\x7a\x16\xff\x78\xec\x7b\x68\xf8\xd4\xa9\x44\xaf\xd2\xae\x9a\x34\x1d\x35\x70\xbd\xfc\xf1\x0f\x51\xef\x98\x8a\x26\xcf\x2d\xfd\xe6\x6a\x74\xd6\xbb\xa5\xe1\x83\x1f\xe0\x18\x9f\xcd\x48\x71\x7b\x65\x61\x0f\xdb\xbb\x99\xd3\x5d\x02\x49\xee\x80\x1c\x8a\x41\xaa\xc5\xdb\x8f\xf7\x69\xa3\xb4\x1f\xae\x9a\xc2\x2a\x12\x31\xa7\x05\x39\x7e\x02\xa3\x32\x97\xa1\x96\x7e\x10\x10\xb8\x74\x61\xe0\xbb\xa2\x76\x5d\x9b\xee\x78\x6f\x70\xe0\x4f\xb0\x3d\x05\x80\x5f\x85\x0b\xbf\x36\xd3\xf5\x87\x2e\xa9\x1b\x87\x92\x10\x6f\xd0\x4c\xa9\x9a\xb5\xe3\xe3\x82\xd7\x27\x5a\x74\x98\xff\x19\x57\x7c\x7c\x52\x63\xa9\x88\xd0\x36\x8e\xbd\xd6\x87\x85\xee\x01\x65\xd3\xe3\xba\x3c\x3a\xfe\x5f\x49\x7d\xb8\xb0\x7e\x4d\x9b\x32\x13\x50\x73\xeb\x51\x3b\xde\xf7\x31\xd1\x72\x9f\x43\x66\x4d\x50\x09\x4f\x4f\x4a\xfa\x26\x4d\xbe\xbf\x53\x0b\x40\x24\x42\x48\xb7\x02\x1f\xdd\x4b\x6d\x94\xc1\x79\x9b\x53\xa8\xec\x06\x44\xf4\xd1\xe0\xa1\x59\xce\x6a\x26\x58\xe8\x0e\x41\x42\x77\xc6\x16\xda\x15\x18\xe8\x0e\xd6\xee\xcf\x00\xfd\xcc\x01\xfb\xcc\x07\xf9\xdc\xd5\x12\xf7\x8f\x06\xf3\x7c\x16\x10\xcf\x8c\xb1\x8c\x4c\xd0\xce\xa7\x80\x75\xee\xae\x0f\x06\x65\x80\x72\x3e\x1d\x8c\x33\xcb\x3c\x66\xb5\x62\x13\x45\xc2\x16\x60\x9b\x4f\x11\xab\x7d\xb4\x38\x6d\x86\x18\x6d\xce\xf8\x6c\xb6\xd8\xec\xa3\xc1\x33\xd3\xa1\x99\x59\x7d\x0a\x4f\x02\xc9\xcc\x09\xc7\x4c\x5e\x5f\xca\xa8\xa2\xb8\x7a\x4d\x2a\xbc\xb8\x4e\x03\xed\xe5\x5a\x89\xcb\x15\x60\x9f\x71\x5b\xf7\x21\x9c\x33\x2c\x91\x0b\x75\x5b\x3a\x0e\x17\x4b\xb7\x2a\x30\xc2\x10\x71\xd6\xe3\x8b\x8e\x5a\xa3\xdd\x8b\x5c\xa3\x9d\x71\x8f\x1b\x0e\x8c\x1d\xd9\x35\x3f\xf0\x3b\xc4\x27\x8a\x30\x74\x48\x99\xdb\x39\x47\x81\x97\xa6\x0b\x8f\x24\xc7\x3b\xf4\x5b\x5f\xbd\x74\x8d\x7c\x7d\x71\x0f\x88\x0c\x49\xb9\xd3\x91\x2f\xdb\xc7\xcf\x87\xbe\xec\x0f\x27\x6d\xd5\x0f\x7f\x99\x90\x58\x9e\xd8\xd7\xab\xae\x52\xf7\x2b\xe8\x8f\x17\x45\x98\x95\xc8\x72\x29\x7d\x7d\xfb\x24\x19\x96\xdc\x37\x6e\x3c\x8e\xb8\x8f\x67\x31\x37\xb0\xd6\x32\x39\xc2\xfa\x57\xa0\x80\xee\x9d\xae\x3b\xe3\x74\xdd\x12\x5a\xf6\xeb\xb3\xb6\x9e\x1e\x1d\xbb\xb7\xb6\x7e\x2b\xd6\x56\x40\x61\xf6\x46\xe0\x82\x8c\x76\x49\x79\x73\x02\xa4\x4b\xda\xea\x74\x38\x2f\x2e\x18\x21\x26\xc9\xa7\x23\xa8\x03\x2e\xb6\x49\x5b\x55\x0b\xe3\x43\xec\xb1\x15\xc6\x6f\xad\x9b\x19\x59\xa1\x79\x83\x50\xea\x9a\xde\x75\xb6\x49\x23\xb8\xd5\x48\x44\xcb\x98\x56\x31\xec\x71\xd2\x9d\xd7\xb6\x88\x24\x2c\xde\x9d\x8e\x7b\x24\x74\x92\x4e\xf5\x74\x01\xd0\x73\x46\x50\x97\x6b\xd2\xef\x88\x6e\x75\xc2\x45\x41\xc7\xd5\x02\xcd\x70\xa5\x8d\xa5\x3b\xaa\x66\x08\xa3\x5b\x5a\x55\xf6\x35\xf1\x13\x75\x4d\x94\x09\x3d\x1b\x8d\xa6\xe2\x6c\x0a\x93\x81\x4d\x47\xc8\x7d\x43\x0a\xdd\x66\x51\x11\xcc\xda\xc6\xf4\x53\xeb\x47\x0b\xde\x0a\xd7\xcf\xf8\xe6\x5d\xe0\xdb\xeb\x53\x8c\x56\x03\x37\xe5\x7d\xba\xc2\xd5\x3d\xdf\xb9\x94\x25\x29\x2d\xd3\xe0\x1d\x95\x64\x00\xef\x8c\xee\x93\xe9\x8b\xab\xb0\x6e\xf6\x8d\xf9\xac\x11\x7c\x4e\x4b\x13\x75\x77\xdb\x42\x6b\x3a\xf1\xe3\xff\x08\xef\x75\xa2\x95\x71\x36\x64\x64\x8a\x41\x3d\xb6\x02\xcd\x20\x3a\x4d\xfb\x06\x3f\xc8\x4a\x5a\x60\x45\xb4\xf1\xcc\x9b\x1e\x0d\xe9\x9c\xe2\xe8\x9e\xe8\xf1\x04\x3b\x0a\x1d\x32\x8e\x38\x64\x81\xb5\x8c\xaa\x05\x44\xf4\x66\xad\x42\x25\xbf\x63\x47\x29\x07\xd3\xc0\x1c\x30\x1a\x13\x85\xbb\x44\x2e\xa7\x92\x49\x44\x18\x1e\x57\xfa\xec\x01\xe2\xff\x66\xed\x06\x40\x13\x82\x55\x2b\x08\x9a\x62\x95\x20\x25\xd6\x68\xf3\x66\x3d\x3f\xbd\xed\xa8\xb4\xf1\xba\x09\x6a\x99\x24\x89\x8a\x6c\x36\x13\x20\x32\x3b\x51\x9f\x68\xde\xaa\x1d\xb9\x47\x1e\x72\x1d\xdd\xcd\x68\x31\x0b\x8d\x44\x5a\x13\x89\x78\x9b\xe0\xc9\xeb\x99\x7f\xb6\xb9\x9c\x16\xde\xde\xef\xb4\xf6\x89\x0d\x9b\xe6\xd8\x61\x97\x81\x56\x1e\xe4\x92\x3b\xb8\x95\xc9\x76\x7d\x7d\x79\xfd\xf3\xdb\xd3\xff\x3a\x7f\x1b\xb7\xf0\xe7\xb8\x98\x85\x3c\xd0\x0c\x61\xb8\x28\x40\xc8\xcf\xf0\x9c\x20\x8c\x5a\x46\x7f\x69\x2d\xe4\xed\xd0\xb7\x17\x29\x56\x33\x16\xd6\x8f\x54\x7c\xf5\x2d\x11\x25\x39\x72\xac\xe9\x5b\x2a\x81\x54\x18\x3a\x61\x81\xff\x5c\x12\x34\x11\xbc\x5e\x32\xb4\xd0\xa5\x07\xd7\x2d\xf4\x0d\x83\x8d\x69\x36\x23\x22\x4e\x23\x7f\xfd\xfe\xfc\x1a\xf2\xa5\x1b\x61\x48\xb8\x21\xb9\x00\xde\x09\xad\x8f\x89\x6e\xc5\xf4\xa7\x3c\x46\xa7\x6c\x61\xbe\x34\xc2\x2c\x52\x45\xa9\xa8\x54\x04\x94\x53\x6b\x48\x3a\x78\xe0\x8b\x97\xc7\xf0\x7f\x2f\x10\x2e\x4b\xa1\x2d\x4d\x9f\xa3\x51\x2c\x67\x99\x45\xb5\x6c\xec\x57\x3a\xae\x82\xc9\x65\x44\x41\x1a\x47\xd4\x0b\xdf\xf1\xd2\xae\x04\x28\x81\x80\xdf\x31\xda\xad\x54\x02\x2b\x32\xa5\x05\xaa\x89\x98\x12\xd4\x60\x55\xcc\x50\x8d\x17\xa8\xe0\x42\xb4\x8d\xa1\x83\x28\xb1\xc2\x71\x2d\x7f\xcf\x05\xaa\x9d\x74\xd6\xd2\x4c\xab\xe4\xd7\xeb\x81\xa0\x9d\xc8\x0e\xff\x93\x4a\xd9\x12\x79\xf2\xea\xe5\x5f\xff\xf0\xe7\x48\xf3\x3a\xe3\xc1\x8d\x85\x3e\x25\x40\x9e\xfa\xf0\x2f\xb7\xc1\x00\x74\xdd\x63\xf1\xb0\x3b\xc4\xec\x7c\x90\x86\x92\xb2\x69\x95\xec\x00\x49\x76\x03\xa6\x3a\x01\x87\xdd\x08\x46\xb1\xbe\xc0\x74\x4f\x60\xaf\x0f\xf1\xae\x94\x7c\x5e\xb0\x4e\x83\x73\x7e\x2f\x2b\x90\x39\x0b\x0c\xbb\x8b\x91\x93\x52\x29\xfe\x23\xb0\x26\xbc\x63\xca\x30\x45\x98\x66\x0d\xde\x61\x80\x5e\xa2\xff\x44\xf7\xe8\x3f\xc1\x0b\xf6\x97\xf8\xa6\xf2\xf8\x98\x72\xc0\xf8\x67\x5c\xaa\x8b\x51\xa6\x85\xfe\x87\xbe\xaf\xf4\x1b\xf5\x7a\x28\x8e\xc6\xd4\xba\x23\xc8\xbd\x22\x42\x9b\x81\x76\x0d\x53\x67\x2e\xc9\xa3\xa6\x3b\xf8\x5c\x76\x77\x2a\xb8\xe0\x62\xd2\x47\xff\x3f\xd1\xfe\x86\x86\x7f\xe0\x52\x5d\x5a\x69\x1d\xd2\x9d\x84\xfd\xa8\xe1\x22\xee\x89\xfb\x94\x56\xdf\xe9\xbd\xd7\xd5\x43\x40\x25\x87\x04\x08\x93\xc3\x39\xa3\x09\xc2\x61\x77\x4e\x6c\x1a\x4e\x34\xdf\xd6\xfd\xd4\xd6\x5a\xf2\xe9\x83\x47\xc6\x1a\x29\x41\x09\x91\x86\x97\xc7\x60\xdf\x24\xf4\x42\xcf\x46\x19\x28\x03\x9f\x30\x8d\x8e\x8d\xbd\xe6\xa3\xc3\x70\xe0\xb4\xc4\x2a\x30\x8b\xd5\x61\xcd\x23\xc8\x84\x08\x61\xf2\x84\xc7\x0b\x97\x6e\x94\xbc\xdb\x92\xa4\x5c\x23\xb8\xe2\x05\xaf\x76\x61\xab\x8c\x6c\x5f\x60\xee\x21\x56\xeb\xa3\xe3\x1f\x5e\x8f\x06\xe8\xe6\x6c\x34\x40\x5c\xa0\xeb\xb3\x34\xf0\x53\xe8\x82\x79\x71\x73\x36\x7a\xb1\xd5\x15\x08\x72\x98\x6e\xce\x46\x11\x2f\x59\x85\xcf\xd6\xb8\x19\xde\x92\x45\xa4\x76\x97\x43\xc3\x1c\xfa\x8d\x95\x65\x40\x66\x9a\x6b\xdc\x6c\xfc\x36\x41\x70\x49\x77\x9a\xc9\xc5\x65\x1d\xfa\x9e\xe6\xa3\x74\xa9\xf9\x9c\x94\xc6\x6a\x76\xad\x10\x56\x36\x9c\x6a\x1b\x69\xcf\xf3\xf2\xa9\x67\xcf\xf3\xb2\xf9\xb3\xe7\x79\x59\xf7\xec\x79\x5e\x36\x78\xf6\x3c\x2f\xe6\xd9\xf3\xbc\xf4\x3b\xb2\x8b\x39\x46\x7b\x9e\x97\xcf\x3e\x7b\x9e\x97\x07\x9f\x3d\xcf\xcb\x46\xcf\x9e\xe7\x65\xf5\xd9\xf3\xbc\x7c\xe2\xd9\xf3\xbc\xf8\x67\xcf\xf3\xb2\xe7\x79\x79\xbe\x52\x7b\xcf\xf3\xb2\xfc\xec\x79\x5e\xf6\x3c\x2f\x7b\x9e\x97\xf0\xd9\xf3\xbc\x3c\xf0\xec\x79\x5e\xf6\x3c\x2f\x7b\x9e\x97\x4f\x3f\x7b\x9e\x97\xe8\x67\xcf\xf3\xb2\xd9\xb3\xcf\x3c\xdc\xf0\xd9\xf3\xbc\xec\x79\x5e\x96\x9f\x3d\xcf\xcb\x67\x9f\xdd\x70\x8f\xef\x79\x5e\xf6\x3c\x2f\x9f\x7c\xf6\x3c\x2f\x7b\x9e\x97\x4f\x3e\x7b\x9e\x97\x88\x67\xe7\x9c\xae\x7b\x9e\x97\x3d\xcf\xcb\xa7\xda\xd8\x5b\x5b\x9b\x3d\x7b\x9e\x97\x3d\xcf\xcb\xca\xb3\xe7\x79\x59\x7d\xf6\x3c\x2f\x7b\x9e\x97\x3d\xcf\xcb\x9e\xe7\xc5\x3f\x7b\x9e\x97\xaf\xdd\xef\x24\x88\xa4\xff\x26\x23\x5e\xd1\x62\x91\x9c\xed\x73\x45\x24\x6f\x45\xa1\x6f\x6c\x78\x2d\x6a\xe0\xbd\xde\xa3\x90\xa4\x64\xef\x18\x85\xc2\x55\x30\x71\x21\x95\x82\xb0\x73\xf0\x18\x53\xb0\x13\x74\x0a\x6e\x80\x97\xf1\x08\x82\xa1\x2b\x9f\x6d\xa6\x2f\xce\x59\x9a\x6c\xb5\x87\x03\xd9\x85\x74\xce\x90\xf6\xc8\xef\x22\xc5\xbd\xb0\xa5\x0f\x6e\x2e\xdc\x34\x15\x4d\x49\x8c\x45\xe8\xba\x05\xed\x82\xd8\x10\xb8\xfc\x16\x15\x4d\x3b\x40\x35\xa9\xb9\x48\x48\x8c\xc8\x60\xc1\xf5\xb6\xca\x2e\xac\xd3\x95\xe9\x90\x9b\x7c\xc5\x61\xfe\x17\xc6\x5e\xe8\x58\xaa\xfc\x5a\x51\x27\x0e\x93\xb0\x66\x17\x93\x65\x30\x2a\x55\x3d\x2f\xd0\x25\x57\x57\xf6\x70\x6f\x6d\xbd\x32\x23\x16\xdc\x14\x6e\x8d\xb5\xea\x8c\xd7\x4d\xab\x48\xef\x62\x33\x53\x6c\x8c\x0e\x2a\x53\x05\xfa\x76\xb2\x41\x0b\xce\x26\x74\x6a\xad\xef\x93\x1a\x33\x3c\x25\x43\x3f\xdb\xc3\x8e\xea\xe1\x24\xfa\xa2\xde\x5a\x2a\x68\x51\x61\x1a\x0f\x1c\xcc\x25\x26\xce\xa0\x17\x40\x03\xd6\x01\xea\x21\x37\xcd\x4f\xf3\xc0\xc3\xc6\xa9\x91\x1b\xc7\xee\x2b\xf3\xc7\x83\x04\xeb\x11\x2b\xf0\x55\x80\x61\xb4\x66\xa7\xa6\x1b\x8c\x0c\xe1\xaa\x99\x7d\xda\x64\x4c\x49\xb9\x7c\xbd\x60\xb8\xa6\x85\x3b\x78\xa7\x55\xc5\x0b\xe3\xaa\xe9\x1b\x9b\x69\x23\x31\xbd\xd7\x43\xaa\xeb\x56\xe1\x71\x45\x8e\xd1\x85\x61\xae\xe0\xac\x5a\xe8\x63\x29\x89\x72\xc8\x05\x7b\x26\xd2\x0c\xcc\x14\x58\x6c\x22\x24\x76\xad\xae\x0e\x7b\xcd\x50\x6d\x10\xa6\x25\x1c\x67\x04\x11\xa6\xc4\x42\x6f\xcb\x11\x2f\xaf\xf5\xce\xec\xfd\x3a\x99\x81\x23\x11\x09\x9b\x03\x05\x9b\x88\x80\xcd\x83\x5b\x4d\xc7\xac\xe6\xc5\xab\x76\x91\x05\x43\x20\x14\x26\x02\xf5\xb6\x45\xc3\xcb\xe3\x35\x12\x0b\xf1\x49\x62\x0f\x74\x8b\x23\x5e\x6a\x5d\x4a\x10\x23\xb6\xfc\x19\x35\x7e\xc5\x0b\xdd\xb9\x5b\x70\x04\x62\xd5\x29\x59\x78\x8e\x69\xa5\x0f\x70\x62\x07\x56\xc9\x18\xd3\x82\x35\x99\x42\x18\x16\xb3\xbf\x4b\x9b\xc5\x66\x7b\xf5\x12\xc6\x8a\x19\x97\x84\x81\xbc\xc4\x3e\xb1\xc7\xa7\x1d\x58\x11\x53\x9a\x2b\x3a\x15\x5c\x7c\x31\x41\xa4\x6e\xd4\x62\x80\xc8\x9c\x88\x85\x9a\x01\x08\xc1\xd3\x89\x82\x58\xa3\x12\xd5\xb8\x0c\x76\xc7\x00\x71\xe7\x97\x4e\x6c\x1e\xee\x07\x6b\xaa\xb5\x95\x32\x86\x1b\x95\x3e\xbb\x62\xdb\xbb\x26\x37\xcb\x0d\x4a\x15\x9a\x39\x59\x6a\x10\x30\xac\xd6\x34\x8e\xcf\x16\x65\x3c\x0b\x6f\xa1\x17\x41\x46\x89\xde\x12\x35\xbe\x07\xaf\x25\xae\x79\xcb\x94\xa1\xaf\x31\x86\x84\x57\xfe\x4c\xde\xcd\x13\xc2\xe8\x1e\x55\xe5\x47\x79\xae\x76\x5c\x3a\xc6\x8a\x51\x8e\xf4\x65\xac\x14\x11\xec\x5b\xf4\xdf\x87\xff\xfa\xe6\xd7\xe1\xd1\x77\x87\x87\x3f\xbe\x1c\xfe\xed\xa7\x6f\x0e\xff\x75\x0c\xff\xf1\x1f\x47\xdf\x1d\xfd\xea\xfe\xf1\xcd\xd1\xd1\xe1\xe1\x8f\x7f\x7f\xf7\xe6\x66\x74\xfe\x13\x3d\xfa\xf5\x47\xd6\xd6\xb7\xe6\x5f\xbf\x1e\xfe\x48\xce\x7f\xfa\xc2\x97\x1c\x1d\x7d\xf7\xfb\xf8\xa0\x64\x6a\x04\x3e\x5f\xfc\x3d\x53\xf4\xfd\x51\x62\xef\x56\xc6\x6e\xfd\xf0\xdb\x2b\x70\xe5\xf8\xdb\xa0\xc5\xa7\x8e\xbf\x48\x76\xd5\x5c\x4c\xba\xf6\xa9\x44\xbc\xa6\x4a\x91\xd2\xde\xbd\x01\x25\xce\x92\x9b\xc8\x0a\x2c\x60\xb3\xc2\x70\x7b\x07\xd4\x2c\x9d\x77\x29\xba\x5b\xfe\x7e\x05\xc7\x18\x43\xb4\x6e\x2a\x52\x13\xa6\x40\xf0\x0c\x9d\xc9\x0b\x5e\xc6\xe3\x6e\x04\x85\xf1\x83\x90\xfb\x82\x90\xd2\x76\x72\x2f\x1b\x83\x67\x2f\x1b\xf7\xb2\xf1\x73\x4f\xb2\xab\x3c\x87\x60\xbc\x0a\x3b\x61\x5d\x5c\xd2\x69\xca\xe0\x38\xf7\xcc\x09\x7c\x02\xf8\x89\x39\x2d\x5b\x5c\x85\x04\xb3\x8e\x73\x34\x4e\x02\x04\xae\x9d\x1a\x2f\x56\x3c\x39\x94\xd1\x90\xcd\x76\xe0\x51\x3f\xf0\x43\xab\x97\x75\x11\xe7\x17\xa7\xd5\x1d\x5e\xc8\x48\xd2\xcb\xef\xb9\x00\x20\xc9\x52\xa3\x88\x0b\x87\x2f\x0a\x4d\xdc\xbe\x87\x3f\x2e\x42\xb8\x6e\xa2\xfb\x14\x15\xd6\xc8\x3e\x90\xfe\x87\x2e\x8e\x64\x27\xa2\xcb\x0a\xd1\xfb\x3c\x6e\xe0\xd7\x44\x29\xeb\x04\x5c\xda\x12\xb8\x9b\x53\x1f\x16\xed\x4f\x8f\x81\x12\x01\xd5\xac\xfe\x72\xc2\xf5\x9a\x40\x91\x86\xc9\x84\x14\x91\x56\xb0\xa1\xf4\x58\xd3\x8e\x81\xb7\x2b\xca\x5a\x5c\x55\x0b\x37\x27\xa4\x44\x9c\x45\x35\x44\xee\xa9\x42\x2d\x53\xb4\xd2\x9b\x09\x09\x32\x6d\x2b\x1c\x3a\x10\xed\xc8\x1c\xea\xae\x3c\x46\xef\x59\x41\xc2\x1f\xc7\x39\xbe\x97\x1a\xd0\x4a\x47\x45\x14\x29\x07\xf0\xea\xe5\x1d\x08\xb8\xb5\x9e\xc4\xf0\xcb\x12\xd5\xbc\x9b\x4b\x8f\x4b\x3a\x36\x07\xd1\x83\x26\x50\x49\x27\x13\xdd\x32\x18\xe9\x8c\x8b\x1a\xaf\xf6\x0a\xb3\x32\xaa\x75\xad\x01\x41\xb6\x4a\x48\x1a\x0c\x85\x62\x5e\x48\x5a\x92\x02\x8b\x17\x61\x89\x91\xd3\x4a\xcd\x78\x3b\x9d\x75\xbb\x22\x6d\xca\x91\x54\x80\xd6\xd2\x93\x29\x9d\xc7\x63\x69\xb3\x49\xad\xeb\xb0\x82\x18\x95\x8c\x13\x73\xdc\xef\x70\x64\xdb\x2b\x88\x02\x03\x11\x37\x6b\xee\x52\xb8\x00\x12\x48\xca\x20\xdf\x8e\x91\x7b\x95\x61\xc0\xc7\xe8\xc2\xf0\x67\x0c\xfa\x6f\xed\x4d\x89\x99\x8c\x00\x12\xe7\xc0\x9d\x91\x78\xc0\xa5\x06\xa8\xcf\x58\x03\x9a\x63\xf3\x72\xcc\x16\x2e\x41\x04\x20\x6b\x26\xb1\xcd\xe7\xac\x54\x71\xbe\x77\x7f\x96\x9e\xbc\x6a\x8f\x24\x45\x2b\xa8\x5a\x9c\x71\xa6\xc8\x7d\x94\xec\xcb\x71\xab\x5f\xf7\xbb\xd1\xbb\xd7\x5d\x17\x11\x6f\x0c\xb7\xe4\x52\xe1\xa6\x19\x6f\xab\x12\x18\x76\x5b\x06\x62\x27\xee\x46\xb9\x98\xe8\x2b\xdc\xec\x37\xb8\x31\x21\x9c\xb6\xdc\x31\x87\x14\x35\x80\xd9\x5f\x5a\x3a\xc7\x15\x61\x2a\xf8\x8b\x11\x60\x07\xc3\x3f\x7a\xcc\x98\xab\xc2\xf2\xb6\xb3\x30\xc8\xb0\xe1\x65\x67\x50\x9c\xb8\xa9\x83\x8f\xc8\xbd\x7a\x86\xf1\x56\x50\x98\x46\x82\xce\x69\x45\xa6\xe4\x5c\x16\xb8\x02\x3b\x6a\xdb\xc6\xf9\xe9\x03\xfd\x82\x9d\x29\x78\x25\xb5\x02\xa6\x8d\x55\xad\x6a\x1a\xe4\x34\x04\xfe\xa6\x98\x32\xa8\x3a\x94\x10\x1c\xb2\x8d\x4a\x03\xdd\xd6\xf6\x76\x83\x85\xde\x85\x0e\xa2\x6d\xae\xc6\x31\xe7\x95\xa5\xa9\xad\x16\x5d\xbf\x68\x7c\x14\x05\x64\x31\xff\x99\x91\xbb\x9f\x75\x2f\x24\x9a\x54\x78\xda\x5d\xcd\x44\xad\xe4\xbb\xa4\xa3\xc6\x1f\x9c\x68\xe0\x60\x6d\xb5\x62\xa3\xb5\x8a\x0e\x4f\x1f\x4a\xf0\x78\x83\xee\xd5\x11\xc8\x13\x2c\x91\x6f\x3b\x4e\x75\xd0\xcf\x1f\x8e\xe0\x9e\x38\x3b\x1d\xfd\x7c\xfd\xcf\xeb\x9f\x4f\x5f\xbf\xbb\xb8\x8c\x47\xcd\x72\x45\x8c\x77\x25\xd0\xee\x0b\x0f\xf4\xd0\xab\xe0\xb1\x42\xc7\x5c\x1e\x43\xe8\x04\xc8\x5c\x58\xc9\xef\x12\xe3\xcb\x7a\x4f\x11\x1c\xa7\xb9\xe2\xa6\x39\x15\x35\x17\x23\xc1\x27\xb4\x8a\x0e\x4d\xe6\x3a\xc1\x4b\xdd\x71\x91\xa6\x53\xfb\x71\x77\xdd\x18\x7e\x81\x55\x9c\x43\x70\x65\x50\xc8\x62\xd7\xaf\x89\xf7\x6c\xf5\x72\x10\x4c\x46\xc4\x52\x17\xe3\x0f\xd1\x56\xf7\xcc\xd6\xb3\x37\x75\x37\x22\xff\x3c\x47\x24\xbe\xe2\x05\xae\xa0\x7e\x51\xda\xc6\x47\x99\x83\xac\xcb\xfd\x0a\xb2\x4d\xb0\xdb\xce\xa8\xe2\xb8\x04\x63\xd5\x0a\xff\x92\x38\x56\x6d\xa7\x76\x41\xe0\x3c\xa9\x23\x37\x06\xe9\x0f\xed\xb9\xf4\x98\x46\x10\xaf\xd5\x2c\x35\xcf\x51\x7c\xb5\x41\xf7\xbc\xeb\xc3\x10\xec\x28\x7b\x89\x9c\xa9\x67\xce\x37\x63\x0f\x18\x9d\x80\x07\x04\xdc\x40\x74\x02\x9b\x12\x1c\x40\x6f\xdd\x32\x24\x14\x3e\xc9\x84\x04\x80\x97\xec\xc8\xee\x34\xf3\xe3\x77\xa4\x81\x29\xdf\x52\x3d\x83\x93\x4e\x48\xbb\x6d\xe3\x74\x10\x83\x55\x4e\xdc\x8f\x1f\xa1\xc4\x96\x93\xff\x58\x24\xf3\x82\xf9\x25\x46\xc3\xe0\x68\x35\x82\x0c\x57\x8f\x57\x2a\x70\xe1\xaa\x65\x8a\xd6\xc4\x71\x5f\x0c\x97\x74\x22\x61\xbe\x3e\x90\x9e\x69\x36\xcb\x46\x47\xe8\x03\x83\xf3\xca\x48\x89\x86\x88\xf1\x6e\x89\x08\x9b\x70\x51\x40\x90\x66\xab\x1b\xbc\xc0\x0d\x1e\xd3\x8a\xa6\x08\xf3\x5c\x1b\x1c\x0a\x37\x04\xfd\x01\x77\x52\x59\x9e\x94\x82\x37\xe6\x26\x76\x49\xa9\xe9\xc0\xc0\x7e\xf2\x53\xc8\x31\x0c\x0a\xfb\xa4\xdf\x91\xa9\xc0\x4c\x75\x8e\xdc\x95\x8d\xf3\x5b\xd4\x41\x72\x28\x01\xb8\xcc\x57\x02\xe5\xb4\xd4\x32\x23\x5c\xb6\xe4\x73\xb5\x6b\x74\xaa\x67\x6e\x70\x41\xf6\x13\x1a\xbd\xbf\xbe\xf8\x3f\x4b\xe7\x26\x5e\xb5\x33\xcf\x6e\x93\x29\x6a\x79\x90\x6d\xdb\x5c\xd9\x0a\x54\xfb\x8d\xf3\x75\x6f\x1c\xef\x20\xda\x3a\x13\xd4\x55\xcb\xfa\x55\xf0\xbb\xae\xa1\x3a\x49\xd7\x19\x79\xd2\x84\xfe\x5b\xc3\x58\x8f\x20\x48\xff\x84\x29\x0a\x91\xb7\xc0\x5b\xab\xb8\x29\xb2\x94\xa5\x5e\x6b\x78\xbb\x4e\x70\x25\x9f\xeb\x15\x99\xe2\xda\x69\x04\x2f\xde\xf1\x96\xe5\xa1\x96\x4a\xd8\x71\xbe\x23\xa8\x24\x8c\x2b\xeb\x4d\x01\x5b\x82\x4f\xe0\x5b\x64\x60\x53\x01\x6b\x64\x4f\xcf\x49\x50\xb3\x6e\x02\xd5\xca\xc7\xf7\x9d\x1e\x6e\xec\x97\x56\x92\xe5\xf8\x85\xd5\xab\x3a\x14\xd5\x84\xc7\x83\x47\x04\xc1\x25\x18\x98\x0d\x56\x33\x43\x67\x56\x63\x79\x4b\x4a\xf3\x41\x22\x95\x83\xcf\xc1\x81\x10\xbf\x9b\xe9\x1b\x3d\xb9\x2e\x6d\x06\x1c\xc2\x86\xd4\x0d\x12\x75\x52\x4c\xb1\xad\x9e\x86\x04\xc1\xae\x17\xe1\x3d\xab\x16\x57\x9c\xab\xef\x7d\xb5\xb6\x6d\x9f\x8c\x7f\xd8\x70\x44\xdf\x89\x09\x7e\x69\x0c\x5d\x1e\xc2\xc6\x01\xb9\x18\xd4\x98\x4b\x15\x8b\x7a\x41\x7e\xab\x52\x51\xb4\xec\x54\xbe\x11\xbc\x8d\xd6\xe1\x72\xda\x9b\x6f\x2e\x5e\xc3\xc5\xd7\x5a\xb6\x1f\xa6\xc4\x02\x8a\x8f\x3a\x8f\x57\xc6\xa0\xcd\x07\xcb\xab\x14\x4a\xb6\x64\x0a\x15\x84\xde\xe1\x05\xc2\x95\xe4\xde\xa5\xc6\xd6\x85\x5b\x5d\x2c\x57\x7f\x3d\xe6\x6a\xb6\x12\xc4\x8d\x45\x81\xe8\x67\xb5\xbd\x41\x40\x1a\xd4\xe5\x67\x53\xb6\xd2\xac\x82\xc4\xa2\x46\x90\x82\x94\x84\x15\xcf\xf5\x44\x6c\x9b\xc3\x06\x4e\xd5\x25\x67\x5a\xbc\x6e\xfb\x5c\x5d\x78\xff\xa4\x5d\x8d\xf0\x14\x81\x2b\xdb\x06\x11\x31\xc0\xf4\x40\xb8\xb6\x32\x25\xeb\xeb\x62\x02\x51\x4f\xb3\xe9\xfe\xde\x8e\x49\xa5\x17\x9b\x56\x95\xde\x81\xb4\xc4\xca\x40\x13\x68\x8d\xa7\x04\x61\xe5\x0f\xa1\xe2\x88\x30\xd9\x0a\xbb\x6f\x22\x01\x3a\xfa\xf1\xd8\x22\x3b\xb4\x0f\x17\xaf\xd1\x4b\x74\xa8\xc7\x76\x04\x1a\xc7\x04\xd3\x0a\x28\xa4\x00\xfc\xb7\x14\x92\x9d\x38\x78\x52\xd2\x14\x80\x1c\x41\x5c\x98\xab\x65\x80\x18\x47\xb2\x2d\x66\x6e\x0e\x28\x67\xde\x23\x6c\xf9\x84\x93\x72\x61\xf6\x62\x27\xdf\x7d\xf8\x41\x12\xb1\xed\x63\xab\xaf\xc3\x0f\x4f\x78\x1d\x86\x26\xa2\x3e\xfe\xfd\x05\x33\x67\xb5\x26\x0a\x97\x58\x61\x7b\x4d\xba\x1f\xec\x77\xed\xfe\xb2\x4c\xb8\x2c\x25\x79\x4b\x59\x7b\x6f\x18\x3b\x77\x22\xec\x71\x7d\x0e\x3d\x42\x85\x5b\x68\x1e\xc4\xed\x5c\x84\x22\x43\x7a\xf4\x45\xef\x18\x0d\x1e\xb0\xba\xe1\x96\xc0\x86\xfe\x81\x68\x43\x08\xb3\x92\xd7\x2b\x9d\x9c\x70\x81\x08\x2e\x66\xd1\xbd\x09\x50\x23\xfb\x83\x69\x9f\xdf\x76\x40\xa8\x22\x73\x52\x65\xf3\xed\xbf\xd5\x6f\xd3\x93\xe3\x76\x2e\xbc\x1e\x55\x78\x4c\x2a\x4b\xd8\x62\x58\xbc\x32\x9e\xb0\x4c\x3e\x70\xc1\x33\x42\x62\xae\xb8\x41\x72\x61\x3f\x11\xfa\xf5\xcf\x62\x1e\xb2\x82\x2f\x6e\x2c\xba\xa4\x9b\x07\xf0\x81\x3e\x87\x79\x68\x13\x14\x44\xb4\x3c\x0f\x5a\xdb\xec\xcf\x03\xe8\x5f\xbb\x3e\x0f\x92\x14\x05\xaf\x9b\x1d\x41\x4a\xde\x18\x14\xbe\xee\xd1\x97\xa2\x22\xfb\x3f\xc6\x49\x70\x67\xcb\xc3\x8c\x95\xb9\x07\x1d\x19\xf3\xff\x0e\xae\x73\x90\x76\xcb\x77\xbc\x6d\x3d\x19\x91\xe9\x5b\xb4\x2f\xfc\x2d\xde\x78\x7b\x18\x66\xef\x79\x72\x18\x66\xc0\xe5\x86\xc1\x3d\xdf\x83\x44\x7e\x0d\x60\x4c\x6d\x04\xc0\xbc\x12\x06\x09\x65\x0d\x56\xb3\x01\x12\xa4\x32\x0c\xe9\x56\x3c\xdf\x1a\x8f\xd7\x01\x48\x1c\xd7\x21\x27\x6e\x3a\xcc\xaa\x21\x73\xcb\x8a\xdd\x5c\x87\xd7\x34\xbf\xb9\x7c\x7f\x13\x26\x00\x63\xb6\x30\x34\x05\x09\xe9\xad\xe6\xd9\x3d\xb5\xe2\x31\x31\x9d\xcb\xab\xf8\xd8\x90\xce\xa4\xf7\xad\x47\x74\x3e\xdd\x29\xfd\x32\x94\xe7\x32\xc6\x33\x6b\x17\x96\x01\x9f\xab\x6d\x64\x58\xb9\xe4\x23\x60\xaf\xce\x1d\x72\x80\xfc\xc3\xf4\xc8\x59\xd9\x85\x16\x1c\x8a\xb2\xa9\x0c\x9d\x20\xb8\xaa\xb2\x60\x12\xd6\x79\x41\xdc\x29\xf0\x6c\x66\xab\xde\x80\x7e\xb5\x8d\x94\xd6\x3f\xe3\xc1\x78\xde\x9e\x88\x4a\x5b\x14\xcf\xdc\x0f\x31\xad\x25\x3e\x13\x7a\x06\x15\xc5\xd5\x75\x43\x8a\x5d\xb9\x2d\xde\xbc\xbb\x3e\xed\xf7\x0c\x74\x61\xcb\xdd\x48\xe0\x7b\x84\xcb\x9a\x4a\x09\x01\x1f\x32\x9e\x71\x7e\x9b\xd4\xe4\xa1\x4b\xb5\x9d\x52\x35\x6b\xc7\xc7\x05\xaf\x83\xac\xdb\xa1\xa4\x53\x79\x62\x25\xca\x50\x4f\xdc\x11\xa2\xac\xf2\x99\xca\xe0\x2d\x64\x4a\xda\x08\x42\xf2\xe0\x51\xe1\x47\x0f\x5b\x0f\xf2\x53\x3c\x34\x7b\x75\x7a\x80\x60\x13\x36\xef\xd6\xb5\x8e\xd5\x5d\x95\xc6\x83\xbf\xb4\xb3\x1e\x18\x7b\x48\x16\x69\xa3\x38\x6b\xe7\xd1\x18\xaf\x5b\x9f\x24\xab\xf4\x17\x44\x26\x21\x60\x73\x9e\xb9\x1f\xba\x2e\xa1\x92\x18\x12\x11\x02\x7c\x5e\xf8\xc1\x9c\x7b\x08\x6f\x1f\x40\x2d\x41\xfb\xa7\x07\xb9\xf8\x4d\x4f\xab\x4a\x2f\x24\xb6\x84\x32\x01\xba\x13\x4c\x13\xcf\xe1\x22\xf5\x8a\x1b\xfa\x16\x6d\x2c\x84\xa3\x48\xaf\xb9\x7f\x48\x95\x63\xcf\x71\xf4\x3d\x8a\x9b\xb6\x31\xaa\xe9\xbd\xee\x61\xd8\x62\x9f\x6f\x04\x02\xff\xeb\xbf\x4e\x28\xad\x84\x00\x7c\xe0\x69\xbb\x06\x7a\x85\xc2\x46\x5c\x72\xb4\xd2\xd7\x96\xfe\xe2\x92\x28\x6d\xa8\x99\x79\x0b\xa3\x0f\xda\xb0\x12\x6d\x86\xc3\x90\x12\x19\x46\x61\x74\x38\xab\xa4\x48\x3c\x0f\x10\x29\xb6\x7d\xd2\x3a\x88\x53\xde\x9e\x2a\x72\x8c\xd6\xa4\xef\x3c\x59\x04\x19\x7d\x79\x14\xf9\x11\x63\x55\x68\x57\xe2\x55\xa9\x54\x2b\x01\x6d\xcc\xd6\x78\x56\x42\xea\x1a\xba\x0a\x5e\x1a\xf1\x72\x85\xd1\xc6\x15\x9d\x8f\x2f\x31\xa2\x37\x47\x67\x82\x30\x6e\xdd\x23\x41\xdd\x77\x72\x4f\x8a\x56\x91\xd2\x12\x5b\x59\x97\xb2\x21\xc5\xe9\xf7\x26\xba\x07\x2e\x49\xdf\x56\x9c\x94\x83\x8e\x0d\xdc\xda\x3a\x9e\x9a\x6b\x80\xfe\x2f\x48\x49\xcb\x63\xd9\x95\xaa\x1f\xf9\x3f\x8f\x9d\x0a\xc0\x51\x17\x98\x39\xdb\x0a\x2a\x9e\x1b\x0f\xb7\x25\xb0\xb2\x3c\x1e\x63\x82\x1a\x2c\x70\xad\xef\x60\x89\xec\xf2\x8c\xc9\x94\x9a\xb4\xc0\xe0\x52\xf4\x0c\x58\x71\x8c\x6e\x60\xd8\x50\x85\x6a\x3a\x9d\x99\xd3\x82\x30\x94\x86\x44\x0e\x37\x56\x71\x5c\x22\x10\x2c\x5c\xa0\x3b\x2c\x6a\xad\x0b\xe0\x62\x06\x20\x34\xcc\x50\xd9\xea\xf3\x80\x80\xaf\x69\x31\x94\x0a\x2b\x6d\x63\x12\x91\xe0\x83\x73\xd3\xb4\x85\xe2\x25\x8f\x5d\x98\x6d\xcb\x7c\x3a\xfa\xa4\x65\xf1\x82\x9c\xdf\x93\x62\xa9\xf4\x77\x5d\x03\xc5\x1f\x77\xc7\xd9\x31\x95\x25\x2b\x83\x3b\x62\x2a\xdb\x11\xee\x8a\x6e\x72\x66\x27\x9c\x3a\xeb\xd3\xfc\x53\xdb\xa3\xfd\x45\x90\x2e\x88\x15\xf0\xf6\xea\x7f\xea\xad\xae\x4f\xae\xe1\x08\xe2\xc2\xd7\x91\x4b\xea\x96\xeb\x07\x54\xa6\xe2\x5c\xa1\xc3\x83\x93\x83\xa3\x95\xbd\x70\x20\xc3\x34\x03\x93\x11\xdd\x0d\x48\xd2\xba\xa9\x16\x30\x86\x03\x53\x8c\x2a\xa1\xc8\xab\x7e\x1c\x60\xd5\x57\x60\x90\x33\x52\x55\x03\x24\xb5\xfa\x8b\x1d\xf9\xad\xf9\x54\xff\x48\x89\xb6\x30\x6e\xb2\xc3\x83\x5f\x0f\x06\x88\xa8\xe2\x08\xdd\x71\x76\xa0\x4c\xc0\x03\xdd\x80\x0d\x99\xd4\x27\xdf\x89\x05\x6f\xa1\x5e\xb2\x59\x36\xcf\x97\x5c\x60\x6d\xfe\xb4\x46\x47\x37\xa4\x1b\xa4\x4a\xa8\xff\xab\x9f\xf3\x7b\xaa\xb4\x2a\xa2\x5a\x70\x53\xbc\x34\x96\x02\xd1\xe2\x55\x5f\x78\xfa\xa6\x3b\x99\x11\x5c\xa9\xd9\xc2\x5b\x2f\xa6\x14\xad\x44\x2d\xb3\xdf\xa4\xeb\x50\x3b\x90\x36\xba\xbb\x09\x9c\xb6\x22\xf6\xcd\x4c\x10\x39\xe3\xd5\xd6\xd3\x38\x5d\x99\xd4\x82\x33\xa9\x65\x8a\x36\xb1\x6d\x1f\xa5\xcf\xa0\xb3\xa5\x5a\xb9\x25\x3c\xd5\xa7\x4c\x90\xd2\x2a\x4b\x96\x3d\x71\x86\xe7\xa0\x29\x68\x7d\x8e\x94\x29\xa6\x49\x68\x13\xfd\x31\x67\x21\xd7\xed\xd7\x4c\xd5\xcf\x54\x34\x79\x6e\xe9\x37\x57\xa3\xb3\xde\x2d\x0d\x1f\xfc\x00\xc7\xf8\x6c\x46\x8a\xdb\xab\xb4\x82\x22\x3b\x02\x2d\x68\xb8\xd8\xa6\x62\xa0\x9b\xcf\xa6\x15\x8c\xb8\x50\x88\xf9\xd2\xc8\xfa\x6c\x4d\x61\x15\x89\x98\xd3\x82\x1c\xbb\xb2\xc9\x2e\x38\xef\x0a\xe0\x60\x36\x25\xe8\x95\x3e\x10\x7f\xf9\xf3\x9f\xff\xf8\xe7\x74\x19\x9d\xce\x64\x9e\x7e\x10\x10\x80\xa1\x60\xe0\xbb\xa2\x76\x5d\x9b\xee\xac\x73\x36\xdb\x9e\x82\x51\x57\xe1\xc2\xaf\xcd\x74\xfd\xa1\x4b\xf3\x4a\x4a\x42\xd0\x9a\x70\x85\x16\x1d\xe6\x7f\xc6\x15\x1f\x9f\xd4\x58\x2a\x22\xb4\x8d\x63\xaf\xf5\x61\xa1\x7b\x40\xd9\xf4\xb8\x2e\x8f\x12\x2a\xdc\xa1\xc0\xac\x5e\xe1\x16\xef\xd1\xcc\x3c\xc0\x13\xae\x27\x65\xeb\x2e\x78\xe4\x7a\xf9\x2d\x7a\x11\x47\x4c\xad\x97\xe0\x0d\xc9\x93\x89\xf6\xc3\xcd\xcd\xe8\x0d\x51\xa1\xc0\x66\xf0\x21\x7a\x73\x7e\xe3\x2b\x5e\xe9\xdd\x65\x92\x9a\xf6\x52\x3b\x45\x6a\xcf\x78\x5a\xc9\xb3\xdc\x71\x17\x23\x4a\x80\x66\x9b\x31\x52\xe8\x85\x1e\xf4\x8a\xab\x38\x1c\xe2\xc5\xe8\x18\xfd\x93\xb7\xa0\x72\xe1\x71\xb5\x40\x77\xd8\x30\x1a\x48\x92\x26\x53\x5e\xe8\x6e\xbc\xd0\x52\x4b\xef\xea\x1f\x08\x2e\x4d\xb9\x04\x70\xed\x6c\xfd\xac\x06\x7d\xca\xb6\x6c\x67\xad\x54\xbc\x46\x33\x3b\x54\x33\x87\x5d\x4d\x39\xa3\x1b\x99\x23\x08\xb1\x1f\x89\x04\x69\x8c\xb5\x64\xff\xe6\xab\xb0\x85\x56\xa4\x90\x99\xe7\xa0\xf2\x10\x46\x45\x38\x55\x56\xd1\x07\x17\x26\xb5\x32\x2a\xda\x25\xd6\x3d\x59\x0a\x78\xa2\x4c\x45\x3c\x51\x7a\x21\x4f\xf7\x92\xf4\x20\x64\x9e\x92\xa0\x28\x4b\x59\x50\x94\xbd\xda\x23\xb2\xa1\x36\xbb\xb9\x0c\x00\x47\x77\x34\x95\x95\x10\x39\x67\xb2\xaf\xc5\x81\x19\x67\xb4\x30\xe1\x0c\xd4\x36\x9c\x21\xde\xaa\xa6\x55\xe0\x0a\x2a\xb0\x24\xc3\x39\x16\x54\x0b\x54\x53\x53\xd9\x23\xa1\x98\x3e\xed\x8a\x73\xf0\x93\xf8\xa0\xb3\xe9\x71\x7a\x37\x33\x69\x33\xfa\x81\xcd\x96\x79\x85\x57\x16\x27\x7d\x47\xa3\x9d\xf6\xc1\x20\x53\xc6\x6a\x96\xcf\xac\xc3\x6a\x06\xc8\x3e\x88\x65\x39\x60\x28\x08\x4e\x6d\x36\xec\x40\xe2\x4d\x56\x2b\x36\x51\x24\x40\xbc\x9d\x8b\x25\x3b\x58\xf7\x70\x75\x0e\x33\x61\x4d\x1e\xdf\xac\x0e\x4b\x20\x8f\x89\xd6\xed\x2f\x4e\x2f\x4f\x7f\xbe\xfe\x78\xf6\xf3\xe5\xe9\xbb\xf3\x94\x57\x27\x97\x2f\xcb\x59\xc0\x2c\x5b\x09\xb3\x47\x2a\xf0\xa8\x1f\x59\xcc\xc8\xee\xc0\x4c\xae\xa1\x37\x21\x29\x99\xb5\x01\x82\xd2\x3a\x69\x2c\x75\x68\xc9\x69\xaa\x05\xcf\x56\x25\x8e\x45\x15\xbc\x26\x15\x5e\x5c\x93\x82\xb3\x72\xeb\xe8\xec\x4b\x2f\x6c\xa4\xe9\x90\xaf\x28\x44\x96\x18\xb3\x5c\x0d\x2f\x5b\x07\xc9\xe1\x03\x42\x48\x83\x19\x5f\x74\xd4\x1a\xed\x5e\xe4\x1a\xed\x8c\x7b\xbc\x21\x82\x02\x22\x68\x17\x76\xcd\x0f\xfc\xce\x16\x07\x3b\xa4\xcc\xed\x9c\xa3\xc0\x4b\xd3\x85\x47\xd2\xd9\xd4\x14\x47\xaf\x5e\xba\x46\xbe\xbe\xb8\x87\x45\xfa\xec\x74\xe4\xcb\xf6\xf1\xf3\xa1\xaf\x0e\xb6\xd4\x0f\x7f\xa5\xe0\x87\xd0\x92\x18\x7f\x75\xec\xf3\xd4\x5e\x41\x7f\xbc\x28\xc2\xac\x74\x90\xb3\xaf\x6f\x9f\xa8\xa2\xb9\xe6\xc5\x6d\x26\xb7\xeb\xcd\xd9\xc8\xbc\x6d\x09\xcf\x62\x6e\x60\xad\x65\x72\x84\xf5\xaf\x40\x01\xdd\x3b\x5d\x77\xc6\xe9\x7a\x60\xd2\xba\x70\xf5\xed\xc6\x0e\xd4\x83\xbd\xb5\xd5\x3d\x4e\xf1\x11\xfd\x0a\x28\x7b\x6b\xeb\x81\x67\x6f\x6d\x6d\xf0\xb8\x4a\xb4\x94\xb3\x37\x02\x17\x64\xb4\x4b\xca\x9b\x13\x20\xa8\xb4\xf5\xd9\x51\xa7\xc3\x79\x71\xc1\x08\x29\x8d\xfc\x70\x45\x75\xd1\x54\x8f\xc4\xc0\xa3\xc1\x87\xd8\x01\x8b\x5b\x91\xa0\xe6\xdd\xcc\xec\xab\xad\x8a\xeb\x82\xcc\xeb\x7a\xd7\xd9\x26\x8d\x27\x43\x77\x55\x43\xec\x71\xd2\x9d\xd7\xb6\x88\x24\x2c\xde\x9d\x8e\xc3\x15\x44\x92\x4e\xf5\x74\xb9\x5a\xce\x86\x44\xcb\x95\xde\xeb\x3a\xa2\x5b\x9d\x70\x51\xd0\x71\xb5\x40\x33\x5c\x69\x63\x09\x4a\x02\x63\x74\x0b\xa5\x6c\xe1\x35\xf1\x13\x75\x4d\x6c\xae\xa6\xd1\x68\x2a\xce\xa6\x30\x19\xd8\xe6\x64\xdc\x37\xa4\xd0\x6d\x16\x15\xc1\xac\x6d\x4c\x3f\xb5\x7e\xb4\xe0\x6d\x86\xb4\x0c\x17\xf8\xf6\xfa\x14\xa3\x96\x7e\xc4\x14\x6e\xfb\xe4\x9e\xef\x27\xd7\xa2\xf7\x6a\x46\xc4\x1d\x95\x64\x10\x5f\xba\x16\x39\xb7\xef\x52\x19\x39\xf3\x99\xa7\x50\xb1\x99\x83\x7a\x5b\x40\x2a\x6b\x74\x5b\x1f\xe1\xbd\x4e\xb4\x32\xce\x86\x8c\x4c\x0d\x51\x83\x15\x68\x06\xd1\x69\xda\x37\xf8\x41\x9f\x6d\x20\x15\x6f\x7a\x75\x7b\xe7\x14\x47\xf7\x04\x48\x21\xba\x1d\x85\x0e\x19\x47\xbc\xd1\x57\x57\xcb\xa8\x5a\x40\x44\xcf\x95\x8c\x4e\xc8\xb7\xba\xb1\x30\x07\x8c\xc6\x44\x61\xeb\x03\xd7\x87\xc0\x73\xa2\x03\xdd\xb9\x3e\x7b\x90\x24\x70\xb3\x76\x03\x78\x9a\xf4\x29\x56\x09\x52\x62\x8d\x36\x6f\xd6\xf3\xd3\xdb\x8e\x4a\x1b\xaf\x4b\xe4\x61\xde\x0d\x66\x43\x7d\xa2\x79\xab\x76\xe4\x1e\x79\xc8\x75\x64\x28\x2e\x02\x23\x91\xd6\x44\x22\xde\x66\xaa\x37\xf1\xca\x36\x97\xd3\xc2\xdb\xfb\x9d\xd6\x3e\x52\x95\x34\xaa\xea\x70\x8e\x2d\xf6\x00\x79\xbf\xcd\xc3\x0d\xf8\x2b\xc7\xed\x64\x42\x04\xdc\x74\xd0\xe1\x15\xd8\xbd\xaf\xe3\xe5\xee\xb0\x38\xe7\xad\x05\x7c\x11\x35\x80\xda\x01\x96\x4c\xe2\x81\x26\x2d\xc9\x26\x94\xe9\x15\x44\x02\x17\x3c\x43\xe7\xef\xbf\x8f\xdb\xa2\x39\x2a\x0b\xa4\xa5\xac\xc2\x38\xdf\xb3\x38\x4c\x62\xde\xfd\xb0\x8e\xf5\xc5\x6e\x8b\xa2\xe2\xd2\xa6\x47\xc3\xba\x14\x33\xcc\x18\x71\xce\x28\xaa\xc0\x93\x3d\x26\x84\x21\xde\x10\x03\xca\x8b\xea\x0c\x46\x92\xb2\x69\x45\x10\x56\x0a\x17\xb3\x63\xdd\x3b\xe6\xf6\x42\x97\x87\x6c\x3f\x91\x4a\x10\x5c\x9b\x3d\x21\x48\x8d\xa9\x69\x1e\xe1\x42\x70\x29\x51\xdd\x56\x8a\x36\xfe\x65\x71\x5e\x44\x02\x8c\x10\xd2\xa4\xa5\xba\xb5\x82\xb4\x92\x2e\xe1\x79\xd0\xf5\xd0\x0e\x9f\x87\xc5\x8a\xc0\x75\x36\xd0\xdf\x92\xba\x51\x0b\x9f\x98\x18\x67\x03\x4d\xa8\x90\x0a\x15\x15\x25\x4c\xd9\x91\x19\xca\x41\xe8\xc3\xc0\xa9\xd3\xcc\xce\x88\xb4\x53\xc2\x4a\x30\xbe\x1b\x25\x4d\xfe\x9d\xef\x84\x7b\x55\x49\xa5\xf5\x75\xc8\xb8\xec\x3f\xec\x2a\xd3\x98\x8d\xe3\x66\x04\xb6\x8e\x53\x70\x4c\x8f\xec\x47\x41\x17\x82\x3a\xdb\x5d\xee\x64\x9a\x5c\x81\xf2\x31\xee\x5c\x0f\x7a\x9c\x03\x9d\x6d\x01\xa9\x30\x2b\x52\x07\x36\x14\x23\x73\x7d\x0e\x48\x41\xb4\x2a\x8a\x33\x0a\x99\x27\x97\x31\x81\x2e\xf7\x8e\x48\x89\xa7\x64\x14\x09\x47\xc8\x21\x70\x3a\x47\x1b\xe0\x18\xba\x6d\x33\x23\x86\xe8\x4a\xf1\xe0\x93\x30\xc9\x2b\x34\x1e\x6b\x33\x90\xa8\x1e\x38\xa3\xe9\x4e\x50\xa5\x08\xec\x52\xa8\xe4\x04\x00\xb4\x65\xf2\xce\x7e\x72\x59\x54\x7b\x76\xd2\xc3\xf6\xb4\xfa\xc1\x4a\x93\xa6\x35\x26\x68\x2c\x28\x99\xa0\x09\x85\xbc\x31\xc8\xa8\x1a\x98\x2a\x04\x18\x70\xbb\x58\x4a\x22\x60\xd8\xd6\x2d\xe0\x86\x1f\xd7\x9f\x7f\xd8\xf1\x2b\xd1\xb2\x02\x07\x25\x3a\x81\x5b\x8c\x4e\xd0\x14\xb2\xb8\xac\x11\xfc\xa7\x97\x7f\xfb\x0b\x1a\x2f\xb4\xbe\x06\x86\x98\xe2\x0a\x57\xae\x03\xa8\x22\x6c\xaa\x57\x11\x44\x6e\x9c\xdc\xe8\xf1\x53\xf9\xc5\xa9\x68\x4d\x95\x99\xa0\x57\x7f\xb8\x1d\x27\x1d\x3d\x90\x8f\x27\x25\x99\x9f\x04\x5b\x68\x58\xf1\x69\xdc\x5b\xcf\x72\x64\x13\x27\xf9\xd9\xd6\x9c\x68\x5e\xd1\x62\xb1\xad\x33\xed\x8a\x97\xa0\x19\xbf\x33\xce\x9c\xd5\xa3\x1a\x50\xbd\x34\xbc\x69\x2b\x98\x38\xf4\xbd\xe7\xe7\x6b\x25\x59\xa6\x3e\x4a\x75\x12\x06\xd2\x0e\x82\xa8\xb6\xd9\xa5\x3b\xc7\xa6\x30\xba\x6e\x72\x4b\x3c\x61\x63\x6e\xbe\x0e\x49\xb4\x37\xee\x7b\x5c\x55\x63\x5c\xdc\xde\xf0\xb7\x7c\x2a\xdf\xb3\x73\x21\xb8\xe8\x8f\xb9\xc2\xfa\x4e\x9f\xb5\xec\x16\xaa\xe8\x76\x64\xb4\x7c\x6a\x31\x85\x8e\x3f\x20\x18\x5d\x54\x67\xdc\x28\x0d\x3d\xa8\x53\x49\x9c\x0f\xae\x6b\x99\xdc\xd3\xce\xd1\xc6\x10\xd1\x7d\x8e\x4d\xc0\x27\xbd\x71\xc8\xf0\x68\xff\xe1\xe5\x9f\xfe\x6a\x84\x0b\xe2\x02\xfd\xf5\x25\xa4\x1c\xcb\x81\xb9\x00\xe0\x06\xd6\xaa\x56\x8d\xab\x2a\x36\x4a\x10\x8a\x80\xef\xa3\x8b\x53\xef\xc0\x91\x57\x5b\x3b\xdd\x5f\x6c\x32\xde\xdc\xfc\x13\xec\x45\xaa\x24\xa9\x26\x03\xc3\xf6\xe2\xdd\x5a\x07\xa0\x5d\x1d\xd8\x2b\x2f\x9e\x29\x68\xfb\x46\xdb\x9c\x57\x6d\x4d\x5e\x93\x39\x2d\xe2\x02\x98\xbd\x55\xe9\xbd\xcd\xb9\xe9\x2b\x2a\x81\x04\x68\x5c\xf1\xe2\x16\x95\xf6\xcb\x00\x2a\xbf\x5c\x55\x3b\x7e\x16\x62\x93\x06\x12\x92\x05\x1e\x1c\x7f\x2f\x4d\xa0\xc6\x4d\xe3\x19\x4a\x04\xbe\xeb\x4d\x06\x88\x26\x60\x47\x4d\x0c\x23\x26\x07\xd3\x53\x43\xe9\x43\x3b\x22\x7d\x4d\x45\xbf\x22\x3a\xb7\x20\x3d\x12\xdf\xf5\x3e\x3e\x8e\xd9\xdb\x10\xdd\x0b\xdd\x69\x68\xe0\xbf\x0d\xdf\xc2\x0a\x33\x96\xa7\x1c\xf2\x1b\xc3\x68\x90\x7a\xfb\xc0\x2d\x13\xef\xbe\xcc\x10\x0c\x4d\xcb\x91\xe8\xcd\x0b\xf3\x41\xe8\x1a\x2b\x6b\x1f\xb9\x28\x3b\x46\x0d\x11\x92\x4a\xad\x3a\x7d\x84\x03\x75\x56\x61\x5a\x07\xe1\xbb\x6d\x4d\xc2\x2a\xa2\xbe\xc6\xcd\xf0\x96\x2c\x22\x37\x5c\xe2\x71\x79\x08\xe0\x5f\xe3\x26\xf2\x1e\x80\xd2\xb5\xe9\xd7\x40\xe4\xe5\x3c\xe2\xa5\xed\x07\x5c\x0f\xa6\x24\xf1\xa3\x98\xb1\x19\x75\xa0\x6d\x5f\x39\x1f\xbb\x85\xeb\xdf\x38\xfa\x13\x7f\xe5\x98\x5f\x7d\x4d\x17\x0d\x8c\xef\xb9\xde\x33\xbe\xf3\x99\xc4\x69\x12\xd2\x09\x6e\x27\xbb\x33\xfa\xd7\x51\xcf\xa1\x65\x4e\x66\x60\xfa\x5a\x47\xd3\xb1\x29\x0a\x90\xd0\x01\x7d\x14\x6d\xa3\xe8\xe0\xdb\x83\xad\xde\x71\x66\x65\x04\x6f\xf0\x14\x2c\xd3\x5d\x58\xa0\xe5\x3e\x85\x1c\xb4\x33\x7e\x67\xbe\x37\xe8\x92\xc6\xfe\x8a\x94\x1d\x91\xf9\x8c\x27\xad\x8e\x41\x0e\xba\x1d\x61\xad\x6b\xc3\x55\x78\x87\x17\x08\x0b\xde\xb2\xa4\x34\x68\x08\x8c\xf8\xc0\xd9\xbb\xa5\xc1\x5e\x72\x46\x5c\x90\x3e\xa5\x95\x9b\x8e\xc3\x9c\x4a\x83\x57\xa0\x0c\xbd\x3a\x7e\xf5\x32\xb9\xef\x57\xa4\x68\x85\xa4\x73\x72\x65\x6b\x9c\x07\x41\x95\x8b\xc9\x88\x4b\x49\xc7\x15\x24\x6e\x29\x8e\xce\x4d\x01\xf8\xd5\x81\x7a\xe0\x08\x8c\x98\x8b\x90\xad\x34\xa1\x87\x87\xe6\x04\x87\x80\x4f\xdd\x40\x02\xea\x63\xb7\x34\x49\x58\xd7\x25\x4d\xf2\xd2\x6b\x92\xe6\xde\xdb\xea\x58\x5d\xe1\xfb\x5d\x90\x24\xef\x6c\x6c\xa0\xab\x6c\x4f\x5d\xe5\x64\xf8\xe8\x4e\x50\x65\x0f\xf7\x1d\x95\x04\x1d\x82\x57\x62\x69\x33\x26\x11\x34\x87\x3e\xac\xc4\x0a\xf8\x39\x08\x96\xc5\xf2\xd1\xdd\x85\x55\x5a\x95\x27\x1d\x02\xff\xce\x3a\xb0\xba\x15\xb4\xd2\xbf\xbb\x97\x67\x98\x95\x55\x92\xcc\xf0\xb3\x52\x2d\x92\xb8\x70\x2e\x26\x28\x14\x89\x36\x7e\x19\x54\x93\x98\x61\x89\x18\x47\x35\xc1\x00\xd0\xd4\xb7\x8b\x93\x82\x3d\xae\xe6\x7c\x7d\x30\x9b\xdd\x5c\x63\xe1\x85\x60\xc5\xf5\x6b\x2a\xad\x78\xd6\x72\xc4\x5a\x20\x06\xd6\x51\xe3\x32\x25\xb5\x3b\x98\xd3\x6e\xf1\x8e\x3b\xd0\xe4\x72\x4f\xba\x8b\x63\xa9\x2f\x8f\xd1\x8f\x81\x2d\x41\xae\x9b\x6f\x01\x27\xb8\xc6\x2d\xd7\x81\x64\x92\xa2\xd9\xe6\x59\x1e\xae\xbf\x16\x57\xc6\xba\xbe\xc7\xbe\xc3\x09\x7d\xf8\xfc\x50\x07\x81\x2c\x74\x18\x51\x13\x52\xb7\x35\x50\x6c\xc6\x63\x1a\x93\xb7\x0b\x4a\x78\x77\xcf\x94\x30\x22\xb0\x8d\x2b\x38\x88\xa8\x25\x5f\xc1\x92\xb3\xd4\x03\xf1\x99\x0d\xa7\xe5\xfd\xe7\xd5\x14\xf3\x67\x09\x1d\x01\x3d\xe7\x90\x8b\xa5\xd3\x6e\x23\x26\xeb\x34\x96\x9c\xa3\x5e\xa2\xe6\x32\x9b\x3f\xe0\xfc\xd4\x8b\xf2\x4b\x4b\xe7\xb8\x22\x86\xc3\xde\x89\x86\xad\x2a\x13\xb2\x1d\xef\xaa\xd9\x68\xed\x43\x30\x3b\xd6\x83\x1e\x1e\xb4\x20\x33\xe9\x13\x2f\x5e\xa0\x43\xd3\xc6\x81\x21\xd9\xdd\xae\x92\x6b\xd7\xea\xfc\xbe\x49\xa8\xdc\x9a\x6f\xbd\xce\xef\x1b\x0c\x38\x8d\x66\x27\x16\xee\xbf\xc8\x0c\xcf\x09\x70\x1a\xd3\x0a\x8b\x0a\x40\xe9\xd7\x66\xca\xd0\xb8\x55\x88\xb0\x39\x15\x9c\xd5\xfa\xf8\x01\xf9\x8c\x96\x4c\x82\x00\x19\x7c\x41\x24\xfa\xfd\xe1\xc7\xd3\x2b\x48\x5a\x3a\xb2\x6c\xf9\x76\x7c\xad\x04\x7e\x80\xa5\x31\x04\xaf\xdb\xc5\xfd\x86\xdc\xd8\xf5\x76\x01\xfd\xc4\xcd\x85\x1e\x5b\xdd\xaa\x16\x57\x40\xfd\x5c\x54\xad\xbe\x0b\xb7\xb6\xb3\xf3\xfb\xc0\x53\x3c\x79\x39\x5d\xe0\x96\xf8\xfb\x35\x8d\x3a\xae\x39\x0e\xea\x59\xb0\x5f\x57\x68\xc8\xa3\x6b\x3c\xac\x21\xa1\x5c\x51\x74\x0e\xa4\x27\xa6\x0c\xf3\x70\xec\x5d\x1c\x07\xcf\x80\xd2\x09\x26\xf9\xdb\xd5\x24\x5d\xf1\x30\x42\x8d\x96\xad\xfb\xf0\x23\x0e\x43\xbe\x63\x10\xe1\x88\xce\xb3\xeb\x19\x2f\xc9\xe6\x55\x85\xd2\xf6\xf9\xa5\x6d\x33\x48\x7c\xa2\xcc\xde\x3a\xa6\x74\x2e\x14\x24\x31\x39\x7e\xb2\x98\x91\xb2\x8d\x50\xb9\x2e\x26\x06\x0c\x34\xe8\xbd\x0e\xa3\x02\xb3\x92\xea\xbd\x62\x52\x01\xcc\xeb\xf5\x21\xb3\xfa\xbf\x6b\x50\x84\x35\x4b\xfd\x87\x97\x11\xcc\x6b\x00\xb1\x5e\x51\xb7\x07\x61\xd5\x5e\x4b\x98\x00\x2a\x69\x49\xd0\x98\x14\xbc\x26\x80\x1d\x6e\x38\x33\xfa\xb8\xa3\x54\xf0\x09\x24\x26\x72\x6c\x86\xb6\x69\x97\x02\x47\xa8\xbd\xd0\xdd\x31\x92\x9e\x6b\x5f\x00\x5a\x4c\xaf\x35\x15\x5d\xf3\x7a\x1e\x0d\x6c\xc3\xaf\x0c\xe2\x0c\xe1\xae\x68\xa7\x1e\xc1\xa6\xfd\xf9\x92\x64\x9a\x6e\xa9\x86\x64\x4e\x81\x7e\xe0\x04\x4b\x49\xa7\x6c\xd8\xf0\x72\xa8\x9b\x3d\xf9\x9d\xfe\xdf\x8d\x8f\x52\xa4\x00\xd0\x6d\x5d\x93\x0a\x24\xf3\x53\x9f\x1f\xd7\xae\xd9\xd3\xd2\xfd\xcb\x1c\x22\x67\x9d\x41\x7e\xc1\xd2\xc2\x4d\xa8\x32\xeb\x15\xb3\x4c\xd7\x6b\xda\x31\x1e\x57\xf3\xbe\x03\x89\x2a\x3c\x26\x95\xfc\xdc\x76\x01\x8c\x43\x4c\x0f\x36\x4c\xc0\x72\xd7\x0e\x5e\xbb\x5b\x22\x36\x49\x44\xb8\xd3\x55\xa2\xc3\xd5\x28\x3a\x66\x98\xe7\x8a\xd2\xb7\x53\x24\xfd\x1f\xdf\xb0\xcb\x69\x3b\xfc\xda\xbb\x3a\xf5\x1e\x7a\x7f\xbd\x02\x92\x91\x01\x10\x64\xe3\x4d\xcc\x6b\x9b\xff\xcd\xca\x40\x0b\x01\x69\x68\x02\x68\x82\xe8\x99\x86\x2c\x69\xda\xf1\x78\x43\x5e\xe8\xe6\x97\x90\x1d\xc1\xb2\xa7\x05\x0a\xe4\x9a\x3b\x60\xc2\xab\x8a\xdf\x01\xff\x8d\xe9\x43\xe0\xfe\xdc\x9c\xc7\x65\x28\x97\x2a\xd0\xf5\xeb\x3c\xe7\x1b\x81\x7d\xef\x20\x77\xff\x4d\xc2\x2e\x54\x00\xbd\x78\x1d\xff\xc7\x17\xa3\xb3\xf8\x3f\xfe\x20\x89\xd8\xd4\xab\x68\xff\x7c\x79\xfa\x71\xd3\x9c\x8a\x9a\x8b\x91\x29\x02\x9e\xe7\xa5\x92\xbc\xd5\xfb\xc7\xad\x69\xa6\x77\x42\x95\xf9\xac\xfd\x9c\xc8\x37\x82\xb7\x9b\x9a\x61\x9f\x7e\xd9\xd9\x0c\x33\x97\x20\x90\x69\xe4\x0b\x59\xa8\x2a\x76\x1a\x67\x58\x10\x5b\x5c\x54\x6b\x87\xb2\xc1\x45\xa6\xd9\xf3\x75\x3f\x33\xbe\x2e\xe3\x7a\xc8\xb6\x69\x2a\x52\x13\xa6\x70\x05\xaf\xcd\xb5\x11\x57\xde\x9b\xb2\xd8\xdd\x9d\xf1\xe3\x7f\xfc\xf4\x38\xa7\xf3\xd3\x4d\xe4\x38\xab\x9f\x6b\x21\xfd\xe4\x7e\xba\x85\x02\x37\x78\x4c\x2b\xaa\x75\x97\xc7\x78\xbf\x8b\x8f\x5f\x71\xae\xbe\xf7\xb8\xbe\xc7\x68\xa9\x11\x74\x4e\x2b\x32\xdd\x38\x36\xfa\x65\xdb\x49\xdf\x84\x23\xd7\xc4\xb9\x2c\x70\x15\x93\xdb\xf2\x85\x23\xe1\x05\x04\x66\x1e\x65\x41\xd2\x44\xcf\x17\xbc\x7c\x73\x41\x14\xad\x81\xc7\x02\x0d\x23\xbc\x32\xf1\xb0\xc0\x38\x38\x4c\xba\xc7\xf1\xa1\xf2\xf0\xb6\x4e\x29\x9b\xa2\x5e\x21\xc2\x56\x08\xc2\x54\xb5\x08\x02\xa7\x40\xac\x61\x34\x67\xd0\x6a\x41\xb1\xb6\xda\x61\x8c\x3f\xee\xd4\x1b\x4c\x96\xb3\xa3\xc6\x0b\xad\x4e\x06\xfe\x98\x49\x0b\x64\x31\xa0\xc1\x9b\x92\xb1\x80\x97\x8a\x62\x1e\x5b\x53\x29\x88\x37\x84\x75\x5b\xf8\xc4\xfa\x47\x87\x7a\x6b\xf7\x6a\x07\x19\xf3\xf2\xb8\x2e\x7f\xd7\x54\x58\x4d\xb8\xa8\x87\xce\x0d\x32\xec\x99\x9e\x11\xdd\x3a\x83\x3c\x76\x8f\xe9\x30\xbc\x4d\xa6\xbc\x3a\x2b\x2b\x12\x98\x95\x7e\x01\x58\x69\x82\x97\xa8\x65\x82\x14\x7c\xca\x80\xc9\xdf\x7e\x0b\x06\x93\xf7\xfa\x60\xa9\x4d\x3a\xc4\xda\xaa\xda\xb8\x6f\x91\xc6\x28\x9f\x13\x31\x23\x78\xc3\x53\x98\xb6\xc1\xdf\xdb\x36\x91\x20\x8d\x20\x12\x26\xd4\x84\xd0\x25\x6f\x45\x41\x7c\xa7\x10\x96\x92\x17\xc0\x4a\x6c\x92\x04\x1d\x5f\x18\x06\x53\x71\xc2\x05\xc2\x68\x4a\xe7\x84\xa1\x2b\xb3\x1b\xce\x2a\xbc\x39\x4f\x56\xe0\x77\x73\x2e\x76\xdc\x2a\xee\x13\x48\x11\x56\x08\x97\x35\x05\x96\x06\xc3\x3c\x60\xdd\x92\x61\xab\xc1\x4f\xf4\x2e\x15\x1c\xd2\x09\xd1\xc5\xa6\x09\xa6\x5f\xf4\x5e\xc8\xaa\x74\x40\x00\x3f\x5d\x60\xe2\x39\x00\x84\x2f\x7e\x8e\x0a\x88\x9d\xbb\xf2\x30\x11\xd3\xf3\x25\x1d\xb2\x04\x19\xfa\x1a\x58\xd7\xa8\x75\x4e\xcd\xf0\xdc\xc0\x25\xba\x25\xae\xb4\x9a\xb1\xa9\x1a\xa9\xcd\x7e\x00\x10\x85\xfd\x32\x89\x83\x2e\xa2\x01\x84\xb2\xe0\x1a\xeb\xc2\x1b\x23\x5e\x5e\x37\xa4\x18\x74\x5b\xd0\x2d\xb8\x63\xda\x70\x24\x60\x1b\xf6\x27\x90\x82\xc6\x25\x22\x8c\x97\xb8\xd4\xbb\x35\xec\x64\x88\x5b\xa1\xaa\x47\x2b\x02\x86\x79\x27\x2f\x0c\xd8\xe1\xdf\x44\x6c\x9c\x5a\xb4\xc6\x1d\x37\xa5\xea\xf8\xf6\xaf\xe0\x8b\x23\x6c\x86\x59\x01\x9a\xbc\x3c\xb9\x25\x8d\x3c\x91\x74\x6a\x5c\x6f\x7f\xf9\xeb\x5f\xc1\x0f\xe7\x16\xe7\xe4\xea\xfc\xf4\xf5\xbb\xf3\xe3\x7a\x33\xb5\x6c\xab\x4e\xb9\x06\x2b\x45\x04\xfb\x16\xfd\xf7\xe1\xbf\xbe\xf9\x75\x78\xf4\xdd\xe1\xe1\x8f\x2f\x87\x7f\xfb\xe9\x9b\xc3\x7f\x1d\xc3\x7f\xfc\xc7\xd1\x77\x47\xbf\xba\x7f\x7c\x73\x74\x74\x78\xf8\xe3\xdf\xdf\xbd\xb9\x19\x9d\xff\x44\x8f\x7e\xfd\x91\xb5\xf5\xad\xf9\xd7\xaf\x87\x3f\x92\xf3\x9f\xbe\xf0\x25\x47\x47\xdf\xfd\x7e\xc3\x8e\x46\x92\x72\xa6\x12\x71\x26\x91\x6f\x66\x24\xdc\x6c\x04\x21\x35\xdc\x20\x31\xac\x02\x69\x17\xd0\x68\xa9\x6d\xa7\x69\xd9\x7f\xe9\x7b\xc5\x75\x8f\x4d\xf5\x55\x23\xcd\xf5\x53\xf1\x3b\x60\x76\xa1\x5c\x2b\xce\x9b\x47\x9c\x40\x8d\xbb\x24\x73\x22\x06\xae\x0f\x6f\xf5\x2b\x47\x91\x6f\x0c\x21\x0f\xeb\xde\x17\x49\x9d\x17\xb9\x41\xdc\xbc\x3c\xe5\x4a\xde\x00\x53\x9d\x1d\x2d\x08\xee\x63\xf4\x11\x0b\xca\x5b\x69\x35\x64\xa4\x8d\x70\xce\x40\xc9\x30\x4c\x08\xfe\xb2\x87\xc0\x8b\x49\x9b\xd8\x54\xc8\xb8\x26\x3d\xf5\x70\x69\x69\xa4\xfc\xd4\x9f\xfa\x4b\xf2\x6c\xfd\xad\x4d\x37\x35\x11\x1b\x41\xe6\x6e\x18\xc2\x71\x09\x11\x65\x6a\x6e\xf8\x51\x19\x8b\x60\xed\x15\xed\x14\x9a\x4d\x9d\x05\xc1\x94\x41\xa3\x6e\x8c\x70\xa1\xc5\xc4\x5e\xa1\x3a\x13\x9d\x3a\x46\x30\x58\x37\xe3\x75\x0f\x3e\x8d\x3b\x66\xf1\xc2\x31\x96\x6e\xaf\x59\x9e\x8d\xa7\xdc\xff\x17\x93\x1e\x54\xd2\x87\xee\x3b\x6a\x57\x3f\x8d\xe8\x85\x39\x10\x70\xd5\x0f\x0b\x41\x15\x2d\x70\xf5\x22\x02\x21\xeb\x5e\x54\x54\xad\x36\xb8\xc2\x77\x09\x82\xd4\x1d\x37\x7d\xc2\x15\xba\x25\x8b\x3b\x2e\x4a\xa7\xfd\x85\x80\xd9\x4d\x63\xd1\x7a\x63\x48\xe5\x86\x03\x80\x7b\x2d\x92\x4d\xa8\x46\xd4\x44\xa0\x31\x71\xe8\xb2\xa5\x1f\x2f\x8e\xd1\x29\x5b\x18\xc5\x2b\xc2\xfe\xf7\x91\x93\xa0\x18\x2c\x68\xb7\xc6\x12\xe9\x9d\x06\xab\xf5\xb8\xbe\x61\x15\x55\x15\x6e\x3d\x34\x48\x9b\x3c\x5e\xf0\x38\xbd\xd5\x61\x83\xb8\xb0\xb4\xb5\x20\x90\x84\x21\xf9\xdd\x14\x03\x6c\x5f\xf6\x24\xb7\x85\xd6\xfa\x29\x23\x52\xbe\xd1\x1b\x76\x7b\x67\x06\x83\x02\x6e\xfb\x02\x44\xb7\x1d\x3d\x14\xd1\x92\xc9\xa4\xec\x69\x95\x80\x97\xdd\x2f\x37\x5d\xd2\x53\x87\x75\x01\x6b\xc7\x50\x50\xeb\xa6\xa9\x92\x61\x00\xd5\x04\x3a\xf5\x2f\x4e\x2f\x37\x0d\xb3\x59\x8e\x2b\xa3\x42\xcb\x6e\x8c\x5d\x79\xd0\xfe\x28\xc1\x16\xb3\xbc\x44\xe4\x97\x16\x57\x80\x9c\xbc\x11\x2d\xd9\xb4\xb2\x70\x94\xc1\x41\xd4\x1d\x17\xb7\x27\x7f\xfe\xeb\x4b\xb0\x39\x7c\xef\x86\xd3\x8d\xaf\xa8\xd8\x7c\xef\xa8\x4c\xef\xa5\xe2\xe7\xe5\x55\xb8\x91\xdd\x5a\x3a\x87\x86\xc5\xc4\x9a\x8a\x1c\x7a\x07\xf8\x05\x8a\xc2\x1a\x44\xe5\x75\xc7\x67\x74\x0f\xbb\xee\xde\x2c\x9a\xcd\x95\xa4\xf8\x64\xec\x5e\xbb\xc9\xa0\xcf\xb3\xf0\x6d\x66\x55\xa4\x59\x12\xdf\x4e\x00\x5d\x38\x90\xc1\xc7\x40\x91\x03\xd2\x1c\x20\x35\x70\xc3\x2c\x9a\x04\x3a\xa0\x2c\x88\xc6\x48\xbc\x88\x73\xb0\x01\x6b\xc7\x93\xca\xdc\xab\x5e\xcb\xf6\x26\x75\x6a\xc1\xd2\x97\xbe\x02\x86\xe5\x7c\xda\x54\x3d\x31\x2c\xa0\x50\xa4\xd2\x57\x3c\xb3\xce\x1f\x00\x66\x55\xda\x8c\x2b\x0d\x9b\x29\x16\xca\x28\xcc\x6e\x6a\x36\xd5\x8d\x3b\x1e\x98\x92\x20\x3c\xc7\xb4\x02\x34\x3c\xb8\x92\xb8\xec\x81\x63\xcc\x60\x0b\xce\x64\x5b\x43\x8f\x36\x0d\xa5\x8d\x17\x56\x9b\x88\xf1\x6f\x52\x43\xf2\x58\x35\xb3\x4f\xd3\xc1\x6f\xae\x9a\xbd\x5e\x30\x5c\xd3\xc2\xad\xe2\xa9\x59\x36\x20\x92\xec\xd1\xc7\xc7\x7b\x65\x75\xf7\xeb\xba\x55\x7a\x6a\x63\x94\x93\x6d\xdc\x0c\x11\x61\x1f\xb8\x4c\x82\xa3\x10\xe6\x54\x90\x7b\x5c\xa8\x6a\x01\x11\x95\xde\x8f\x06\x88\x50\xc8\x3b\x35\x70\xf4\x6a\x73\xc6\x13\x2e\xec\xce\x32\xfa\x6c\xef\xed\x37\xa4\x6e\x80\xcd\xd0\x2a\xf0\xd2\xd0\xfe\xaa\x56\x30\x47\x64\xba\xf4\x17\x1b\x37\x1f\x80\x12\x23\xf2\xc8\x2e\x14\xc2\x65\x29\x11\xf6\xc5\x94\xa8\x32\x8a\x77\xcb\xe8\x2f\x2d\xa9\x16\x88\x96\x84\xa9\x0e\xb8\xd6\x9f\x62\xcb\xf7\x64\xe5\xc3\xe6\x62\xfd\xac\x3b\xdf\x46\xdd\x27\xa4\x74\x15\x88\xac\x3f\xf9\x81\x35\x35\xee\x5f\x30\x13\xb4\xae\x1e\x61\x26\x6c\x49\x27\x88\x60\x67\x49\x51\x05\x62\x19\x09\x72\xa4\x7d\x40\x18\x76\xfd\x46\x32\x24\xd2\x26\x5e\x55\x2c\x6f\xa5\x08\x00\xa4\x79\x3a\xce\x04\x7d\x01\xa2\xd7\x97\xd7\x3f\xbf\x3d\xfd\xaf\xf3\xb7\x4f\xce\x04\xd9\x53\x15\x36\xf7\x6a\x98\x27\xc7\x12\x5c\x2d\x77\x64\x39\x2c\xbe\x24\x7f\x9c\x05\x6e\xf5\x39\x19\x4b\x25\xc4\x1c\x6a\xcc\x94\x4f\x77\x88\xfe\xa8\x77\x9d\x07\xc2\x9b\x4f\xd6\x0c\x49\x5f\xc5\x6b\xe5\xae\x2f\x09\x16\xd5\xae\x89\x6b\x6d\x77\xef\x84\x23\xd9\x89\x3d\xd4\x9b\xda\x4f\xef\x25\xf7\xd3\xa8\x46\x57\xf7\x61\xd6\x3d\x05\x2c\xd9\xfe\x76\x0e\x32\xc3\x80\x16\xc8\x04\x5f\x31\x62\xe4\x6e\x59\x5d\x30\x37\xb9\xfe\x8b\xd8\x3d\x35\xe6\x2d\x2b\xcd\xed\x66\x87\x60\x7c\xdf\x61\x4a\x4f\x49\x2a\xa2\x9c\xe7\x2a\x4d\x41\x40\x4e\xcd\x06\xa6\x57\xf0\x79\xc1\xbb\x8d\xe2\x0e\x05\xcf\xdc\x19\xf2\x12\x59\x7f\x32\x40\xb8\xe2\x6c\x6a\xe9\x85\xa3\x9a\xed\xd2\xfd\x7d\x14\x61\xb0\x32\xd9\x50\x33\x17\xdb\x6b\xc2\xf4\xc5\xea\x34\xe9\x9b\x35\x5c\x2e\xdd\xa6\x20\x05\x17\xa5\xf1\xe9\xe8\x89\x37\xee\x9b\xe3\xde\x89\xbb\x86\xcf\x88\x8c\xde\x58\x6b\xf5\x6e\x98\x5f\xc6\xa1\x2a\xc7\x34\xf0\x91\x81\xe1\x63\x34\x9d\xa8\xe6\x96\x42\xe5\x3d\x51\x1e\x90\x3f\x08\x5e\xa1\xa6\xc2\x8c\xd8\x72\x20\xde\x01\x9b\x65\x9a\xf7\x72\xfd\x73\xcf\x57\x90\x55\xe9\x4d\xfc\x6d\x38\x3e\x3c\xe7\xb2\xa9\x6c\x80\x0d\x91\x0a\x9f\xa0\xb3\xd1\x07\xd8\x26\xef\x48\xcd\xc5\xa2\xeb\xa4\x57\xd1\xf5\x29\xc0\x1b\x0b\xeb\xf5\x49\x39\xda\x5c\xb2\x10\x41\xe7\x20\x5e\x98\x63\x67\x51\x3a\xba\x27\x6f\x69\x4d\x15\x24\x8b\x6d\x1a\x17\x2a\x9a\x16\xe2\x49\xe8\x45\x0d\xa3\x79\xd1\x17\xc8\x12\x19\x66\x9d\x25\x7f\x0f\x16\xc4\x84\x3b\x1c\x76\x31\xc5\x55\x60\xc2\xab\xfa\x5f\x8c\x0c\xa7\x02\x43\xc0\xc6\x09\x10\x6e\xaa\xad\xd8\x2e\xe1\xc0\x51\x11\x25\xaf\xb5\x35\x20\x60\x62\x07\xc6\xab\xa4\xa7\xd2\xbf\x5e\xce\xb0\x00\x8b\xba\xd6\x97\x50\x7f\x3d\x70\xd4\xc5\xbf\xa9\x1f\x47\x5b\xb4\x6f\xc9\x9c\x54\xdd\x26\xb4\x1e\x99\x0d\x1b\xde\xbc\xfc\x5f\xb4\x69\x1a\x6f\x29\x16\x11\x4e\x4d\x94\x45\xc1\xb4\xfb\x58\x0b\xa6\x4e\x9d\x94\xfa\x70\xfb\xd3\x3c\xe8\xe5\x2d\x37\xa4\xe8\x5f\xd9\x51\xd5\x90\xc0\xdf\xa0\x0f\x4f\x47\xd5\x1e\x52\xe7\x47\xdd\x69\x8f\xec\x2a\x44\x8f\xe7\x2e\x44\x9f\x70\x19\x6a\xb1\x57\x60\x06\xe2\xc7\x81\xfd\xf4\x91\xef\x0e\xe5\xe6\x77\x69\x0a\xc7\x70\x34\xc3\x70\x6f\xaf\x3e\xe8\x2b\xd4\xea\x08\x61\x4a\x2c\x2c\x00\xf4\x5a\xef\xb7\xbe\xd0\x8d\xd7\x1d\xa2\xa9\x85\xd3\x88\x85\xa3\x49\x81\x53\x29\x81\x53\x08\x31\xb3\x55\xeb\xfc\x04\x27\x7b\x6f\xb1\xc1\x24\x58\x95\x2e\xb1\x55\x6e\x90\x85\x23\x8f\x78\x89\xee\x00\x55\xd0\x27\x4c\x30\x05\x81\x2f\x74\xb7\x6e\xbb\x42\x67\xee\x7a\x75\xc1\x90\xe8\xa6\xad\x43\x2d\x99\x13\x3b\x03\x67\x94\x85\x31\x6f\x7b\x23\x58\x3d\xad\xe7\xb6\x28\x66\x5c\x12\x66\xc1\xf0\xc2\xfd\x80\xf5\x03\xd0\xa5\xb9\x1e\x93\x2a\x48\x5b\xe2\x0e\x32\x27\x62\xa1\x20\x12\xea\x89\x8c\xad\x03\x54\x2e\x85\xc1\x02\xb0\x73\x74\xc3\x20\xb3\x6d\x76\x00\x00\x5d\x26\xce\xf9\x0a\x23\xdd\xca\x8e\xc8\xcb\xb4\x14\x29\xda\xf2\x11\x2c\x41\xa9\xa4\xad\x68\x4e\xd6\xd4\xe8\xd8\xf1\x81\x63\x12\xdf\x43\x69\xe0\xce\x46\x2a\x78\xdd\xb4\x2a\x08\xd2\xba\x20\x6e\xcc\xea\x27\x91\x55\xd4\x98\xe1\x29\x19\xfa\x8e\x0c\x83\x84\xa4\x48\x15\x22\xf2\x42\xcd\x81\x95\x47\xcf\x09\x2f\x8f\xe2\x31\xf3\x28\x03\x6e\x1e\xa5\x62\xe7\x51\x5e\xfc\x3c\xea\x6e\xa5\xad\x1c\x5d\xef\x32\x58\x3a\xbc\xb6\xae\xf7\xa7\x0e\xaf\xd3\x04\x63\x4e\x2f\x90\x06\xdb\x96\xa9\x44\xbc\xa6\xca\xe1\xf3\x02\x3d\x01\x58\x43\x43\x9a\x52\x2b\x68\x00\x1d\x89\xe1\xfe\x24\xf7\x4d\x45\x0b\xaa\x02\x0e\xe7\x32\xc6\x0a\x0b\x68\x68\xb9\x36\x9b\x68\xed\xd2\xe4\xa1\xfe\xa3\x33\xfb\x2c\x36\xdd\xf7\xbd\x30\x1c\x69\xe4\xbe\x20\xc4\xb9\x5c\xf6\xd2\x6c\x2f\xcd\xbe\xf0\xf9\xda\xa4\x99\xad\xc7\xfc\xf4\xa9\x40\x57\xa6\x61\xd4\x74\xa9\x3f\x2b\xb5\x62\x3d\x1f\x6b\x44\x58\xdf\x26\xfd\x9c\x42\x35\xf9\x01\x7a\xcf\xbe\x37\x55\x3e\x07\x26\x0f\xe8\x18\x5d\x30\x24\x79\x6d\x2b\x92\xde\x2b\x39\x30\x1a\x2f\x46\xb2\x1d\x4b\x62\xf5\x5d\x2e\x89\xcb\x18\xb6\x69\xd7\x0d\x11\x46\xf4\x45\xe6\x0c\x69\x69\x65\x3a\xf5\xc8\x64\x5f\x77\x5c\xdc\x56\x1c\x97\xf2\xa4\xe1\xe6\x7f\x86\x9e\x2c\xef\xe4\x77\x76\xdd\x87\xcd\xe6\x5c\x22\xb1\xb8\xf3\x20\x19\xf3\xa9\xb3\x35\xae\x96\xda\xee\x41\x51\x7b\xa9\xac\xfd\xe0\x31\x70\xb2\x19\x34\x35\x9a\x0a\xde\x36\x2e\x2c\xd8\xf1\xfe\x6a\x53\x7c\x53\xf8\x10\xd7\x93\x11\x04\x71\x4d\xde\x41\xbf\x23\xde\x9c\x07\xcf\x03\xe9\xec\x4e\xb0\x28\xa5\x1c\xac\x65\x5f\x17\x2d\x8b\xc8\x79\x30\x09\xb0\x5c\x74\x14\x91\x04\xbd\xa8\xc8\x14\x17\x8b\x17\xfd\x5e\xad\x61\x42\xb5\x5e\x4b\x7d\xfd\xea\x6b\xdd\xf4\xce\x95\x96\xdd\xd4\xb1\x0f\xf5\x6a\xe1\xea\x36\x28\x60\x03\x28\x93\x76\xf8\x2e\xe7\xc2\x6e\x25\x9b\xfb\xbf\xb1\x73\x22\x3a\x4d\xf7\xcf\x7f\xfd\xf3\xd0\xb1\x1f\xc0\x30\x9f\xe2\xdc\xf4\xc8\x36\xb7\x97\xae\xd1\xdb\x6d\x63\x82\x4a\x2a\x1b\xd8\x99\xe0\x01\xef\x72\x1e\x7c\x77\xf3\xe5\xde\xac\x6f\xd2\x6d\x86\xc8\x06\xd3\x56\x83\xb2\xe9\x93\xa7\xcf\x5c\xf7\x9b\xb6\xe7\x8e\x37\xf8\x97\xb6\xab\x28\x6b\x2f\x2b\xa3\x6c\x07\x0b\x68\x27\x11\x4a\xac\x06\x2c\xaf\x91\x97\xab\xde\x1a\xab\xbd\x01\xbd\xba\x93\x20\x7e\xe9\xa4\xc2\x0b\x27\x51\xfb\x83\x28\x21\x0d\x86\xb8\x1a\x5a\x1b\xf6\xa2\xe3\xa6\xf5\x22\x50\x6b\xa1\x75\x03\x97\xac\xfb\x36\x1a\xe3\xba\x3c\xdf\xcb\x81\x0c\xac\x4c\x62\x09\x00\x22\x2c\x3f\x85\xa9\xa3\x02\x78\x91\x9a\xcf\x81\xdd\x53\xeb\x14\x13\x45\xc4\x1d\x16\xe5\x86\x77\xfe\x56\xd3\x6b\xfa\xc3\x87\xdd\xd6\x91\x82\xc0\xc5\x39\x32\x6c\xa6\xd3\x16\x8b\x12\xf2\xa9\xba\x3d\xb1\x47\xd4\xae\x7b\xb6\x8e\xa8\xb5\x59\xd3\x81\x00\xd8\x3c\xc2\xec\x9e\x73\xac\xf5\xa0\xfe\x9b\x4c\xac\x04\xf2\xdb\x96\x70\x59\x90\x21\xbd\xc7\xcd\x6c\xe4\x22\x5e\x22\x0a\x7b\xd2\xbb\xa6\xdf\x34\x9a\xf1\xaa\x04\x65\x75\x58\x91\x39\xa9\x7c\xd7\xb4\xc0\x15\x74\xdc\x2a\x4b\xb8\x54\xf0\xba\xb6\xb9\xef\xb6\x8c\xbc\xc9\x93\xdf\xd8\xd8\x31\xfc\x80\xb8\xfa\xb6\xc7\xb5\x00\xb7\xcb\xb1\xee\x1e\x81\x9d\x11\x8e\x12\x4c\x48\xa7\x14\xd8\x6b\x90\x4f\x10\xd1\xdb\x34\x62\xfb\x6d\x01\x48\xb1\xc4\xbe\xb8\x0d\xe7\xe2\x52\x17\x5c\xbc\xeb\xd4\x7e\x8c\xb8\xa1\x6d\xd4\x6b\xd1\x4a\xb2\x52\x24\xaa\xe3\xd5\x8a\x04\xe2\x5f\x72\x48\x52\x87\x92\xdf\x3e\xe0\x59\xf8\xb2\x06\xfa\xda\x85\x0c\x5e\x88\xb5\x72\x79\xcc\x2c\x96\x38\x9a\x5f\x2d\xc9\x79\x96\x12\x59\x37\x4e\xa0\x8d\xff\x30\x2d\xaa\x5e\xf1\x02\x57\xc0\x25\x1c\xbb\xc5\x50\xb6\xa0\xea\x72\x5f\x02\x12\x05\xac\x87\x09\x9f\x55\x1c\x97\x8e\x23\x9d\xb8\x72\x08\x58\x2d\xd9\xdf\xb1\xb1\x48\x43\x62\x62\x5a\x72\xb9\x1f\x8d\x20\x01\x97\x55\xaf\x61\x0e\x15\x48\x62\x1b\x7b\xd7\x87\x11\xd8\x91\x85\x1c\x83\xb6\x2b\x49\x0d\x38\x02\xb2\x09\x88\x63\x5f\xcf\x52\xcb\x4a\x2a\xd1\x8b\xb7\x6e\xd2\x5f\xa4\x54\xb9\x8e\x76\x5c\xaa\xc8\xa4\xe2\x5c\x7b\xce\xcc\x83\xdf\x67\xc6\x7f\x71\x4b\xf5\x4c\x4d\x3a\x21\xe7\xb6\x84\xe7\xa4\x6b\x9a\x8a\xc6\xef\xb2\x8f\xb8\xa2\xa5\x97\x9c\x58\x24\x94\x79\xf5\xcb\x87\x86\xc1\x21\x69\x04\x19\xae\x1e\x94\x78\xc8\x81\xf5\xf8\x38\x87\xe5\xf0\xb3\xf5\x71\x12\x37\x2e\x42\x1f\x18\x9c\x39\x46\x4a\xad\x6d\xf1\x6e\x29\x08\x9b\x70\x61\x9c\x31\x4f\xbe\x61\x2d\xc1\xf6\x36\xae\xe1\x53\x4f\xe4\x12\xb2\x3f\x1b\x17\xa4\x85\x1f\xc2\x9e\x34\x1e\xcc\xbe\xdb\xbc\x43\xb9\x6e\xde\x2e\x14\x03\xb0\xa5\xcd\xf4\xcc\xd9\x78\x3f\x6c\x80\xbf\xdb\xda\x2c\xca\xa5\x22\x18\x3a\xc1\x3b\xdd\xe8\x8c\x36\x46\x88\x61\x65\xff\x3c\x46\x38\x40\x8e\x89\x7e\xa1\xaf\x3e\xd9\xf0\xf2\xdb\x18\x3c\xe2\x2b\x93\xa2\xc2\xef\x80\xb4\xf2\xcd\xc5\x6b\x7f\x96\xf5\x5b\xbf\xbf\x8e\xa1\xfd\xd6\xcf\x1f\xcc\x7b\x25\x51\x53\x5a\xa2\xb1\x2d\x0f\x4a\x14\x3a\x64\xe4\x0e\xe9\x33\x20\x6d\x0a\x90\x27\xff\xb0\xb3\xe9\xda\xf7\xc3\xb3\x9d\x38\x8a\xe8\xc5\x1f\x6d\x02\x0e\x11\x8e\x6b\x6a\x4c\x6d\xb1\xf3\xf7\x57\x07\x8e\xb1\xf3\x6e\x28\xee\x86\xc3\xe1\x30\x66\xfe\x9c\x4f\x78\xd0\x5b\x79\xef\x65\xa9\x79\x49\x27\x8b\xa5\xf5\xd7\xf7\x4d\xd7\x25\xd0\xbd\x31\x5b\xd8\xf1\x3f\x23\x5d\x30\x36\xb2\x17\xd0\x58\xfd\xe5\x4f\x71\xa2\x26\xe4\xf2\xdf\x86\xd8\x59\xd3\x0d\xcf\x18\x31\x26\x33\x3c\xa7\xda\x04\x98\x98\xf3\xaf\x4f\xd6\x43\xab\xef\x34\x9a\x68\x59\x60\xd9\x23\x0c\xb3\x14\xb9\x6f\xb8\x84\x13\x05\xb0\xc4\x11\x87\x0c\xb4\x3e\x75\xac\xf1\xb3\x35\x0d\x14\x4d\x8c\x68\xb0\x27\xf4\x6c\x8c\xc7\xa4\x45\xb8\x59\x41\x63\xac\x3b\xe1\x87\x7c\xb8\xb4\xe1\xa3\x2a\x1d\x5e\xd8\x53\x05\x2e\x13\xc6\x11\x99\x4c\x48\x01\x25\x89\x48\x33\x23\x35\x11\xb8\xea\x77\x4d\xb6\xc5\x0c\x61\xf9\xad\xb6\xc0\x85\x3e\xa0\x46\x59\xad\xf1\xc6\xe5\x06\x90\x65\xec\x00\x9b\xba\xa4\x51\x10\x4f\xa3\xda\x04\x8c\xd7\x2f\xde\xb3\x2b\xce\xd5\x3b\x2a\x41\xd3\xb5\x49\x29\x26\xde\xf9\xe2\x78\x8d\x8f\xdf\x7d\xe7\x51\xad\xcf\x47\x50\x44\x29\x15\x1d\xd9\xfb\x36\x0e\xb8\xbe\x36\xf4\x6d\xe8\x23\x90\x16\xc2\xdc\x70\xca\xd4\x4a\x59\x21\xad\xd7\x15\x11\x94\x5b\xfa\xf9\x20\x89\xf4\x71\x3a\xa7\x27\xc6\xb1\x62\x9a\xe7\x1d\x5e\xf8\x3c\x54\x4b\xb1\xbc\xe4\xa4\x32\x71\x54\xfb\xdd\x98\xab\xd9\x8a\x17\x2b\xae\x26\xf5\x88\x97\x4b\x2f\x1a\x74\xec\x89\x7d\xb6\xaf\xe5\x06\x15\xc0\xb3\xb5\x49\x49\x4a\xc2\x36\x2e\x84\x82\x3c\x4b\x07\x56\x69\x58\xec\xdf\xd0\x5d\x0a\x27\xec\x92\x83\x1c\xda\xc6\x19\xbb\x08\xb8\x20\x61\xbe\xc3\x13\x05\x5e\x06\x7d\xf4\x30\x30\xa7\x70\x36\x14\x9c\x43\x84\x3b\x6a\x59\x2f\x26\xb6\x7a\xff\x8a\x9a\x36\xd7\x92\xd9\x95\x48\x87\x92\xa2\x08\x77\x81\x73\xc5\x11\x61\xb2\x15\x76\x4f\x6c\xcc\x88\xaa\x9f\x92\x13\x13\xf2\xb3\xc3\xf9\x70\xf1\x1a\xbd\x44\x87\x50\xf4\x17\xc4\xfe\x04\xd3\xca\x93\x3d\x2d\x17\x39\x85\x52\xf5\xfa\x15\x91\xc3\xf6\x90\x85\x09\xae\x24\x19\xe8\xbb\x13\xae\x46\x3b\x6e\xad\x83\x38\x95\xbb\x21\x02\x88\x2a\xe3\x40\xcb\x5f\x83\xd8\x89\x3d\xbe\x63\xce\x2b\xb2\x31\x88\xc3\x17\x4b\xd9\xd6\x0d\xf7\xe1\x49\x6e\xb8\x30\x2e\xa1\xcf\x6f\x7f\x49\xcc\x91\xab\x89\xc2\x25\x56\xd8\xde\x7c\xee\x07\xbf\xd9\x8d\xb8\xbf\xff\xbe\xec\x49\xb9\xff\x6c\x81\xad\x6d\xdb\x92\x6b\xba\xe1\x6d\xc9\x99\x75\x29\x85\xc5\xe8\xaf\xcf\xe1\xf7\xa6\x62\x2a\xa0\x0d\x8c\xd7\xd5\x79\xb8\x8c\x15\x24\x83\x9c\xdb\x48\xe2\x30\x30\xba\x66\x58\xf6\xcd\x2d\xc6\x4b\x77\x63\x97\x3c\xcc\x8a\xf7\x1d\xd3\xfb\x90\xfb\x6e\xf8\xdb\x6f\xe9\x67\x79\xac\x28\x28\x64\x65\x42\xa0\xd6\x84\xba\xd2\x27\x4b\xd2\x39\x79\x11\x95\xa0\x1b\xfc\x3d\xaa\x09\x66\x12\x09\x02\x33\x0d\x56\xfc\x04\x66\xd8\xb8\xaf\xb8\xa1\xc7\x1d\xf1\xd2\x8f\x75\x39\xca\xe7\xd4\x88\x98\xb1\x1a\x9e\x2d\x03\xa5\x95\x15\xbf\x83\xf3\x5d\x61\x31\x75\xce\x02\x39\x40\xe3\x56\x19\xbf\xa3\x44\x35\xbd\x87\x4a\x00\xbe\x4c\x19\xcc\x46\xcb\x82\x0f\x46\xbc\x94\x3e\xe7\xdf\x33\xfe\x58\xa3\x99\x87\x24\x40\xe0\x14\x8f\x99\xbc\xde\x72\x40\x7e\x05\x38\x46\x11\xa9\xe8\x14\xaa\x51\x87\xb3\x05\xde\xb7\xff\x19\x72\x07\x2c\xfe\x1f\x64\x33\x32\xe0\xef\xa3\xe7\xcc\x67\x81\xdb\xd5\x91\x2e\x10\x86\x2d\xcb\x66\x38\x6c\x1b\x9e\xf5\x1f\xf7\x0e\x57\xe4\x91\xb1\x00\xaf\x86\x4b\x53\x81\x5b\x6b\x76\x6b\x1b\x37\xbc\x0b\x9f\x5b\xb2\x98\x5e\x9c\xbb\xf9\x76\x73\x8d\x01\xc8\x39\x54\x82\x10\xf4\x3d\x1d\x0b\xa2\xc5\x0d\x23\x15\x34\x49\xaf\xcf\xae\x2f\xba\x5d\xa5\x3f\xd2\x73\x17\x7c\x18\xd1\x85\x3b\x80\x84\xeb\x77\x94\x82\xce\x89\x40\xfa\x0e\x69\x21\xfb\xdb\x4d\xb2\x93\x08\xe3\x85\xaf\x12\x60\x0b\x3b\xc2\xf7\xb0\x99\x0c\x4e\xdf\xfa\x88\x69\x4c\x1a\xc1\xd9\xf5\xc5\x6b\xd3\x03\xca\xa4\xc2\x5a\xcb\x43\xef\x81\x8f\x32\x9c\x1c\x0c\xde\x15\x24\xc8\x10\x96\xbe\x22\x25\x12\x4e\x12\x54\x1b\x97\xbd\x40\x2b\x87\xc1\xe8\x00\x01\xb9\x2b\xf8\xe1\xe0\x2a\xb5\xd3\x01\x3f\xef\x31\x0c\x04\xc5\x18\xa2\x8e\xe3\xb2\x13\x09\x56\xf6\x4b\x5a\x1b\x2c\x75\x3e\xc1\xe5\xb4\x79\x1f\x4a\x2a\x3f\xd5\x09\x90\x83\x57\x04\x97\xff\x10\x54\x91\xf7\xac\x20\x81\x4c\x89\xf4\xec\x85\x42\xdf\xe5\x57\xf0\x70\x8b\xa4\x72\x3d\x60\xb8\x3e\x0d\xbb\x4c\x20\x93\xc0\x99\xd9\xbf\xcf\x21\x96\x60\xf9\x52\x2d\x37\xc2\x92\xaa\xc8\xc5\x3a\x05\xd2\x5e\x4d\x21\x5f\x44\x4c\x38\xad\x27\x32\x7b\x92\xd1\xca\x2c\x8b\x27\xe8\x7d\xb5\x46\x83\x09\x8b\x48\x49\x5b\x38\xdb\x00\x43\xa7\x44\x21\xa9\xda\xe2\x56\x8f\xc2\x73\x93\x9e\x39\xb2\x2c\x80\xb9\x3e\x23\xc5\x35\xca\xb7\xd9\x2f\xed\xba\x2d\xeb\xcf\x6d\xbc\xc2\xd9\x20\x3c\x88\xe1\xaf\xc6\x4b\xe3\xfd\x0f\x7d\xa0\xfa\x8a\x76\xe4\xa8\xf3\x0c\x97\x36\xc2\x48\x60\x56\xf2\x7a\xa5\x7f\xfa\x64\x12\x5c\xcc\x22\xfa\xd1\x99\x44\x9b\xda\x87\x31\x21\x99\x07\x2c\xca\x04\xfb\x30\x26\x48\xbc\x64\x51\x3e\x6f\xfb\x30\x12\x77\x96\x08\x02\x23\x73\x52\x65\x40\xe1\x00\xc3\x95\x9e\x04\x2f\xea\xe1\x03\x23\xf0\x97\x41\x0a\xbd\x23\xb2\x15\xec\x91\xe0\x59\xf0\x6e\x57\xdc\xc0\x22\xb1\x1f\xb6\x7e\xf1\xce\x8e\x3a\x13\xe2\xea\xc6\x02\xc8\xba\x51\x03\x94\x6a\x57\x47\xdd\x46\x79\x1f\xd1\xf2\xa8\x3f\x48\x53\x3a\xac\x1b\x35\x38\xfa\x76\x71\xd4\xfd\xa2\xe7\xdb\xba\x7b\x6d\x2f\xf6\x30\xe1\xde\xb3\x87\x09\x3f\x36\x4c\x38\xe0\xf8\xc3\xe0\xc7\xea\x01\x77\x9f\x2b\x58\x18\x98\xe8\xf5\x2c\x12\xc3\xd1\xdb\x60\x35\x1b\x80\xe3\x4e\xd1\xb9\xe3\xfe\x45\xb7\x26\xec\x77\xd0\xab\xc1\xeb\x0e\x62\x87\xa3\x36\x54\x7f\x99\xb0\xc5\xeb\xf0\xc4\xe6\x37\x97\xef\x6f\x42\xa2\x3f\xec\xca\xbf\x45\x17\xef\xd9\x95\x1b\xf0\x71\x30\xc7\xcb\xeb\xf4\x78\x90\xe3\xc8\x37\xad\x47\x1c\x3f\xc5\x79\xfb\x32\x14\xf2\x32\x06\x39\x53\xe3\xcb\x80\xe4\xd5\xb7\x27\xad\x50\xca\x45\x1f\x00\x82\x01\x47\xb4\x15\x43\xfb\xd4\x27\x1c\x03\x26\xb9\x17\xad\x81\xca\x90\x54\x40\x19\x48\x88\xae\x42\x24\x96\x32\x93\x8a\x15\x52\x05\xc5\x98\xa1\x8e\xb0\x66\x45\xe5\x32\x25\x37\x6b\x2c\x16\x00\x71\x02\x04\x82\x45\xee\x1d\x86\x99\xd0\x47\x60\x07\xc7\x08\x92\x19\x41\xd7\x2b\xb3\xef\x4a\x17\x5b\x77\x5f\xe8\x6d\x8c\xa3\x69\x5d\x5d\x60\xd7\x04\x68\x39\x25\x51\x44\xd4\xb6\x88\x17\x51\xb6\x68\xab\x24\xd6\x17\xee\xe7\x27\x0e\x80\xcd\x8d\x3b\x99\xe0\xd2\xe1\x77\x0d\xe6\xbc\x26\xf5\xd8\xc0\x1e\xe5\x6a\xc9\x75\x0f\xea\xa8\xf1\x34\x4a\xc6\x2f\xfb\x53\x18\x0f\x78\x89\xfc\x0e\x13\x44\x7f\x6a\x26\x96\xb7\xd3\xd9\x6a\xd7\x62\x50\x2c\x9f\x1c\x0c\x44\xaa\xa4\xea\x91\x5e\x94\xa4\xb1\xf7\xb1\x91\x79\xd9\x97\xf8\x19\x29\xc4\x4f\xcc\xc2\x9b\x4a\xbd\x94\x12\x56\xcf\x58\x0d\x10\x7d\x62\x0b\x6c\x43\x98\xbf\x0e\xc2\xf2\xab\xf9\x26\xd2\xa1\x66\x8c\x4c\x5f\xc1\xce\xd8\x48\x53\x81\xab\x02\x8a\x5c\x47\xed\xdf\x35\x21\x70\x22\xa6\xc4\x06\xbf\xaf\x95\xa0\x85\x5a\x8f\x1f\xb6\xbf\x4b\x88\xe5\x1c\x9e\x56\xcd\x0c\x1f\xa1\x0f\xd2\x45\x90\xcd\xf1\xf1\x11\xd7\x2f\x12\xfc\x10\xe7\x31\xbe\x66\x7b\x01\x44\x46\x6d\xd6\xab\x39\x60\x71\x78\x8a\xbb\x0e\x9b\x0e\xde\x4f\xea\xf9\xe5\x9f\x91\xec\x88\xd3\x7e\x16\xb2\x50\xd5\x56\x54\x9e\x6b\xd3\x34\xa4\xc2\x23\xec\xf5\x1f\x5f\x5a\xa8\x74\x9d\xeb\xe2\x79\xbe\xfa\x03\x04\x9f\x00\x18\xd0\x32\x5f\x6d\x21\xe6\xe2\xb0\x2d\x1c\x3e\x04\xc9\x38\x42\x35\x9d\xce\x94\xc7\x5e\x56\xb8\x65\xc5\xec\x19\xed\x8a\x6d\xf2\xba\x9b\x15\xf6\x28\x25\x8c\x6e\xb5\xb4\xaf\x50\x83\x05\xae\xb5\xda\x65\xcf\xb7\x24\x51\x91\x8b\x67\xc9\xe2\xae\xff\x14\xc4\x72\xc4\xdf\xee\x0c\x03\xfc\xa5\xaf\x32\x66\xbb\xb4\x00\xf4\x4a\xd4\x32\xa2\x1c\xac\xe6\x30\xa3\x59\x86\xf6\x11\x82\x6c\xbb\x32\xb6\xac\x2a\x92\x95\x24\x5b\x0e\x27\xff\xc3\xf4\xc2\xe9\x1c\x85\x67\x34\x79\xfc\x90\xb2\xf3\xdf\x58\x22\x4c\xdc\xc7\x4b\x2e\x45\x62\x43\x66\xbe\xc8\x0e\x7c\x06\x3a\xbc\x5d\x44\x7a\xfc\x8d\x54\xc5\xe1\x32\xb7\x18\xa1\x9d\xd6\x12\x9f\x09\x02\x55\x4f\x71\x75\xdd\x90\x62\x9b\x0e\xcc\x37\xef\xae\x4f\xfb\xbd\x81\x7b\xde\x96\xa5\x20\xf0\x3d\xc2\xa5\x4b\xfd\xbc\x23\xe3\x19\xe7\xb7\x91\x8d\x1d\x06\x8c\x8c\xb3\x76\x7c\x5c\xf0\x3a\x60\x39\x1d\x4a\x3a\x95\x27\x56\x30\x0c\xf5\x34\x1d\x21\xca\x2a\xb8\xae\x9d\x3e\x44\x98\x72\x26\x4b\xc2\x80\x51\xe1\x47\x0c\x1b\xca\x52\x6f\x5a\xbd\x6b\x75\x4a\x2e\x93\x58\xae\x92\xaf\x94\xd5\x1d\x13\x5b\xf6\x73\x69\xd7\x3c\x30\xd2\xa5\xf2\x9d\x7e\x1b\x2c\xcf\x9a\x09\x00\x6e\x65\x4a\x6c\xcc\x48\x9b\xa8\xdb\x3c\x3d\x3f\x74\xdd\x08\x7d\x77\x74\x12\xca\xf3\xc0\xaf\xec\x93\xc3\x0e\xf4\x5f\x22\xfb\xa7\x07\xe9\xa5\x58\x4e\xab\xca\xe8\x09\x23\x5e\x1e\xc8\x30\x18\xdb\x91\xb6\x79\xec\x9b\x01\xc6\xd3\x39\xe9\xf5\x3f\x56\x11\xd4\xcf\x21\xf5\x10\x62\x87\x15\x55\xdc\x51\xc5\xd5\xf4\x5e\xf7\x2d\x6c\x2b\xe8\x9f\x29\x80\xc9\x86\xeb\xbf\x8e\xca\xbb\x46\x90\xa8\xe7\xbd\x8c\x03\xbd\x1e\xe1\xeb\xf5\xfe\x16\x2d\x31\x45\xd7\xf5\x17\x97\x44\xdd\x71\x71\x6b\xe6\x2a\xc4\x59\x29\x0e\xbf\x4c\xd9\xe2\x71\x69\x56\x28\x4c\xb5\xca\x74\xda\xa3\x77\x39\xa4\x5d\xd9\x7e\xe8\xfb\xdf\x69\x4d\x8f\x9f\x86\x85\x96\x52\xb1\xf4\x8b\x9f\x20\x1d\x0b\xad\x4f\xc9\x5a\x55\x91\x8e\x1f\x27\x29\x0b\x6d\x3b\x43\x10\x25\x70\xe8\x12\x31\xa7\x05\x39\x2d\x0a\x80\xc2\x6f\xd4\x74\xda\x76\x7d\x4d\xf4\x90\xb1\x22\xe5\x75\xaf\x0f\x06\xe4\x53\xfa\x6f\x11\xae\x28\x86\x4a\x9c\xa8\xff\x43\xbd\xbf\x37\x27\x7e\x77\xaf\x05\x44\xd1\xd2\xf0\xed\x89\x81\x98\xcb\xd3\x30\x18\xaf\x34\xff\xb4\xc4\x92\xab\x83\x5f\xd5\x25\x96\x56\xc7\xa5\xb3\x2c\xf1\xa6\x6f\xd8\xf4\x97\xf1\xe7\x2b\x2c\x6f\xbb\x72\x1d\x64\xd8\xf0\xb2\xab\xce\x11\x7c\x6e\xa7\x71\x88\x4d\x1f\x37\x2b\xdb\x11\xbd\x74\x4a\xdf\x45\x7a\xa6\x4e\xe5\xf7\xff\xff\xeb\xcb\x27\xa6\x03\x77\x57\xa2\x9e\xfd\x03\x09\x1a\x16\xac\x9a\xb3\x3d\x03\x00\x0a\x96\xc1\x0f\x75\x57\x07\x48\x60\x1b\xad\xc4\xe6\x42\xf8\x7f\xec\xbd\x7b\x73\x23\xb7\xb5\x20\xfe\xff\x7e\x0a\x94\xb2\x55\x92\x1c\x92\x33\x63\x3b\x8f\x9d\xcd\x2f\x29\x59\x92\x13\xad\x67\x34\xba\x92\x6c\xd7\xfd\xc5\xd9\x6b\xb0\x1b\x24\x71\xd5\x0d\xb4\x01\xb4\x24\xfa\xe6\x7e\xf7\x2d\x9c\x03\xa0\xd1\x14\x45\x51\xdd\x90\x48\x4d\x84\x54\x65\x2c\xb2\x09\x9c\x06\x0e\xce\xfb\x51\x30\x8a\xe6\x53\xb2\x17\x15\x77\x7f\x34\x3b\x3f\x11\xa4\x09\xa8\x46\x91\x60\x80\x38\x82\x89\x6e\x3e\x07\x07\x2a\x3f\xfd\xdb\xd1\xa9\x77\xf5\x05\xe8\x51\x91\x74\x98\xe7\x4c\x7e\x7b\x3e\x98\xa1\xfd\x84\x36\xaa\xce\x0c\xa9\x8d\xb6\x9f\x77\x01\xd5\x33\xc6\x35\x80\x55\x6c\xca\xb5\x51\x73\x47\xcf\xe5\x24\x02\xd9\x19\x97\xc3\x23\x57\x6c\x4e\xfe\xf6\xdd\xf1\xbf\xff\xc7\x87\x4f\x87\x07\x1f\xfe\xe3\xe3\xc1\xe1\xdf\x4e\x4e\x8f\x7f\xfa\xe9\xe2\xdf\x2f\x2e\x8f\x3f\xfe\xf4\xd3\x61\xad\x14\x13\xe6\x10\xfb\xf1\x5e\x30\xf3\xd3\x4f\xee\x8e\xe9\x9f\x7e\xba\xcc\x2a\x5e\xfd\xf4\xd3\x99\x37\x73\x02\x1f\xb5\x5b\xd5\xa1\x2c\x38\x94\x1e\x6b\xb2\x23\x41\xbe\xc3\xe3\x87\xb7\x6c\xe5\x5d\xf6\xe8\xa0\x01\x59\xff\x5d\xc8\xe5\xe3\x65\x2d\x48\x72\x73\x72\xe1\xa9\x37\xf6\x3f\x2b\xc9\x84\x2c\x3b\x4a\x34\x17\x53\xa8\xf6\x87\x22\x6a\x70\x3c\x90\x31\x33\x37\x8c\x61\xde\xe6\xa2\x68\xd5\xbd\x1e\xdc\x8f\x56\xf4\x35\xae\x2d\xad\x15\x60\x5a\xad\x59\x5c\x98\x92\x4b\x04\xbc\xe6\xec\x06\xc4\x74\xcd\xa7\x82\x16\x91\x6b\x10\x3a\x15\x62\x04\x58\xf3\xfb\x47\x42\xc2\xa3\x24\x4e\xec\xf9\xec\xdc\x64\xed\x28\x93\x3b\x11\x26\xad\xce\x18\x54\x5b\xd8\x58\x4e\xce\x4e\x8e\xc8\xbb\xc7\x6e\x06\xe8\x06\x2e\xaa\xe4\x62\x19\x42\x04\x43\x94\x15\xf1\xba\xb5\x89\xbf\x53\xf2\xf8\xb9\x11\xbd\x1e\xe7\xb2\xa4\x5c\x6c\xb6\xc9\xc4\xa4\x2e\x8a\x39\xf9\xa5\xa6\x05\x4a\xaf\x67\x32\xbf\xcb\x69\x76\xfe\xe4\x3f\xfa\xf3\xe8\x4f\x01\xf0\x3f\x8f\xfe\x64\xa9\x4f\xb8\x19\x7f\x1e\xe9\xeb\x6c\xf4\xa7\xac\xa8\xb5\x61\x8a\xb8\x87\x1e\x5d\xfa\xf4\x81\xce\x14\x81\xce\x51\xb7\x02\x40\x4a\x41\xcf\x7d\x16\x89\x0e\x8d\x0a\x10\xdf\xf9\x57\x45\x33\x76\xc6\x14\x07\xd5\x40\x8a\xfc\x59\x3b\x54\x78\x0c\x26\xb9\x6b\x74\x06\x4d\xb7\x11\x8e\xb0\x67\x82\xb1\x1c\x35\x35\x07\x36\x23\x53\x0b\x35\x9c\xfb\x08\x94\xaa\xb1\x95\x06\x32\xc5\x28\x56\x7d\x23\x39\x2b\x18\x34\xb2\xeb\xd4\x79\x14\x5d\x24\x3e\x64\x57\x48\x31\x14\x6c\x8a\x21\xb4\x2e\x94\x04\xeb\x29\x22\x9b\xfd\x95\x29\x19\x85\x6b\x6a\x23\x2b\xc2\xcb\x92\xe5\x9c\x1a\x56\xcc\xc9\x35\xa7\x8f\x5c\x1f\xc4\x0a\xe8\x83\x81\xc4\x71\x4f\x48\x22\xc1\x07\x5c\x0b\xee\xdc\x35\xb3\xda\x90\x5c\xde\x88\xc7\x8b\x14\xae\x2b\x6b\x48\xc4\x15\xbc\x18\xb4\x9a\xe5\xc0\xe6\x92\x0a\x70\xa2\xe5\x25\xe8\xa6\x75\xa0\xae\xdf\x9a\xd4\x09\xf0\xcb\x0e\x1d\x3a\x5f\xf8\xe2\xc6\x8e\x25\xa8\x5a\x40\x59\xce\xa6\xb7\x17\x44\x7c\x68\x26\x1e\x6b\x67\xa7\x31\xea\xfb\xed\xf5\xcc\x01\x73\xf0\x90\x89\xb1\x85\x60\x95\x89\x54\x19\x1f\x17\x73\x32\xa3\x85\x61\xae\x62\x26\x8d\x4f\xe9\xb1\x9b\x72\xc1\x4c\x7c\x10\x85\x14\xd3\x58\xd6\x65\xb7\x15\xcb\x0c\xf4\x6e\x62\x54\xd4\x15\x42\x67\xc5\xb8\xb9\xac\x3b\xdb\x3f\x62\xbb\xc7\x57\x6f\xfd\xa6\x77\xa1\x39\x5d\x62\xaa\xba\x46\x53\x19\x59\x30\xc4\x94\x3e\xc4\x69\x69\x77\xa2\x5d\x1d\xcf\xfe\x52\x9a\xad\x74\xb0\xba\x5d\xba\x8b\x03\x28\x77\x19\x5e\x19\xec\x18\xc6\x50\xe8\x91\x64\x49\x2c\x7e\x03\xcd\x19\xe6\xc4\x4a\x45\x06\x3d\x68\xae\xa9\xd8\xe3\x9d\x62\xf6\x62\x29\x5e\x15\x8c\xfc\xe9\x8a\xcd\x07\x80\xed\x03\x14\xe7\xff\x4c\xea\x10\x41\x05\xf3\x43\x8c\x64\x65\x01\x90\x8a\xfc\xc9\xff\xd7\x9f\x9f\xb1\x37\x4c\x1f\x37\x1c\xbe\xd4\xa6\xda\xb5\x1c\x63\x65\x1a\x1e\x15\x93\x63\xee\x00\x5d\xd1\x1a\x23\x71\x97\x47\xe4\x18\xba\xa6\xa1\x02\x89\x05\xe6\xad\x26\x10\x3f\xdc\xd1\xb2\xfa\xa3\x77\xa7\xba\x5b\xe6\x0d\xf7\x51\x9c\xde\xa9\x74\x7d\x82\xd8\x80\x9c\x41\x57\xbd\xe6\x13\x20\xc5\xa7\xf2\xf8\x96\x65\x75\xb7\xec\xf7\x5e\x2e\xa0\x2b\xd6\x21\x9a\x32\xcd\xe9\x7d\xc7\xe6\x9e\x2b\xe2\x31\x58\xfd\x3c\x94\x03\x6c\x48\x54\x94\x3f\xb8\xfa\x18\xaf\xd8\xe3\xfb\x45\xe2\x38\xf1\x76\x0d\x80\xc8\xb5\xe7\x0a\xb7\xd2\x4b\x45\xc7\xb7\x5c\x1b\xfd\xbf\x91\x9e\x64\xb2\x1c\x7b\xa6\x8a\xe0\x78\x5c\xc3\x4a\x4c\xee\xf4\x5d\x3d\x95\xae\xa0\xf5\x3a\x5b\xff\x02\x9b\x3a\xe0\x4f\x7e\x03\x15\xab\x14\xd3\xe0\x73\xa6\x76\x2b\x76\xb5\x4b\xd0\x92\x02\xea\x22\x3b\x8f\x04\x76\x21\xee\xb4\x94\xcf\xe5\xc1\x05\xf1\xd6\xe1\x71\xc1\x11\x1c\x5b\x4d\x69\xd4\x12\x05\xf0\xa3\x6e\x64\x07\x27\xb6\x98\xf2\x4b\xcd\xaf\x69\xc1\xd0\xfc\x7a\xc3\x8b\x3c\xa3\x0a\xc3\x1a\x91\xe8\x13\x2d\x5d\x0e\x2c\xb6\x41\xeb\xe4\xc0\x0a\xd2\x00\x6b\x90\x5d\xbb\x70\x26\xaa\x0c\xcf\xea\x82\x2a\x62\x29\xe0\x54\xaa\x4e\xf5\x6a\x7a\xa1\x59\x73\x53\x3b\x69\x53\x38\x52\xe0\xdb\xe5\x22\x20\x31\xe2\x99\x59\x10\xc5\xe5\x04\x25\xcb\x05\x32\xb3\x87\x59\x67\xee\xb6\x77\x82\x40\x4e\x3c\xe3\x09\x14\x3d\xae\x86\x12\x85\xe4\x70\x4d\xf8\x54\x48\xc5\xf2\xfd\x48\x00\x09\xb4\x70\x44\xbe\x09\xcd\x1b\xbb\xf4\xfd\xb6\x12\x97\xf7\x24\x43\x59\x19\xf7\x6e\x8e\x50\x39\x6c\x6a\x48\xef\x44\x2a\x76\xcd\x14\xd9\x73\x75\xdd\xd8\x35\xcf\xcc\xfe\x88\xfc\xff\x56\xd1\xeb\xea\x7c\x0b\x1a\xa4\x23\x86\xa1\xbd\x80\x2b\xfe\x4f\x35\x79\x4b\xf6\x60\xa9\x58\x7b\xdc\xf7\x01\x24\x7a\xae\x0d\x2b\xbb\xe3\xf3\xa6\x72\x20\x3a\x07\x2e\xa6\xb8\x04\x3f\x78\x1d\xb7\x39\x5c\xd4\xb6\x16\xb0\x3d\x74\xcc\x95\xbd\x58\x66\x60\x92\x5c\x3b\xba\xd8\x72\xaf\x86\x88\x0d\xcf\x53\xc3\x5d\xf8\x4f\x88\x11\x20\x8a\x4d\x81\x7a\x21\xed\xd9\x70\xf3\xbb\x8e\x71\x98\x46\x56\xb2\x90\xd3\xf9\x45\xa5\x18\xcd\x0f\xa5\xd0\x46\x01\x8d\x7e\x4e\xb3\xd2\xe5\x7d\x40\xb8\x79\xc7\x2e\x77\x85\xba\x8c\x30\x39\xc1\xba\x4c\xb2\x9e\xce\xb0\x15\x28\xfc\x90\xd0\x4c\x49\xad\xc3\x3b\x3d\x56\x65\x03\xdb\x9e\x1e\xf9\xbe\xa0\xde\xbe\x1c\xfa\x8c\xc2\x9a\x60\x6d\xbf\xa1\x73\x47\x95\xe8\x98\xe7\xad\x0a\x8a\x1e\xf4\xc7\xa2\xc3\x81\xe5\x8e\xf7\xee\x83\x95\x09\x0e\x4e\x8f\x1e\x1b\xca\xb0\x39\x95\xf7\xbe\x23\x0d\xda\x86\x2b\x12\x1a\xce\x2e\x28\x94\xb0\xcb\x58\x62\xd0\x6e\xe9\x94\x5f\x33\x11\x76\xe6\x85\xb4\x1d\x2d\xe9\xed\xc5\x15\xbb\xe9\xf0\x4b\xff\xa2\xdf\xb1\xc7\x27\x49\x0c\xc1\x1a\xf6\xbd\xd0\xd4\x70\x3d\xe1\x74\x5c\x3c\x67\xef\x53\x28\x9a\x72\xc1\x0a\x96\x6d\x50\x6c\xff\x10\x03\x11\x4a\xef\x19\x49\x26\x5c\x2c\xe0\x58\x37\xd6\xd1\x54\x99\xf3\x9d\xde\xb8\x0e\x25\xf0\xdc\xb2\x90\x2d\x27\x6b\xe1\xfa\xe8\x86\xa0\x40\x8c\x82\xa8\xcb\x31\x53\x9e\x84\x75\x13\x8f\x5c\x51\x49\x92\x49\xa5\x98\xae\x24\x66\xab\x7a\xd4\x71\x84\xac\x3b\x3f\xea\x9c\xc2\xd2\x37\x1f\x04\xb6\xf4\xf8\xd6\xca\xbd\xba\x5b\x4a\x00\x8e\x16\x26\x2d\x4e\x8a\xa1\x40\x3e\xbb\x6b\xe1\xe8\xdc\xa5\x87\xde\xf0\xe8\x34\x88\x3f\xe9\x4a\x86\x9b\xd1\x27\x07\x0a\x47\xe7\x4c\x28\x1c\x69\xa2\x01\x09\x56\x08\xb8\x77\xef\x70\x8f\xc3\x37\x71\xf9\x36\x67\x40\xd7\x03\x54\xa7\x5d\xd9\x56\xd1\x08\x63\xf6\xe1\x1e\x60\x81\x72\xee\xd4\x91\x2b\x36\x87\xe9\x71\xc5\xee\xdd\xeb\x7a\x5e\x0b\x0f\x58\x9f\xfc\x2e\x1c\x43\xfb\x4a\xbd\x7e\xef\xb7\xb9\xf3\x24\x7d\xef\x38\x8e\x8e\xa6\xbb\x66\xb4\xf0\xf8\xaa\xb1\xc6\x21\x4e\xb6\xac\x71\x0d\x5d\x6e\x6c\x71\xbd\xd6\xee\x9d\x1d\x86\xa3\x8f\x89\xab\x19\xe9\x2e\x74\x0c\xd3\x3a\x66\x2f\x0a\x41\x23\x72\xd2\xfb\x7a\xe1\x58\x66\x06\x3b\x11\x03\x72\x2a\x8d\xfd\x27\xb2\x88\x1d\x49\xa6\x4f\xa5\x81\x4f\xb6\xe2\x24\x71\x03\xb6\xe9\x1c\x9d\xd5\xc2\x92\x61\x81\xec\xc6\x45\xb7\x59\x41\xc1\x9d\xd7\x32\x35\xf8\x44\x10\xa9\xdc\x96\xf7\x04\x21\x68\xd2\xda\x01\x10\x3b\xe8\x5d\x9f\xef\x7b\x15\x71\x0b\x45\x7c\xcc\x4f\x06\x8c\x03\x04\x6a\x1e\xe3\x37\x50\x8a\xbd\x2a\x20\xe1\x3b\xaf\x61\xc3\xa8\xdd\x39\x6a\xd8\xf4\xd1\x29\x8e\x8b\xa3\x64\x6a\xca\x48\x05\x6e\x9d\x04\x98\xdb\x47\x90\xc0\xd1\x53\x9c\x88\x81\xe9\x7d\x8d\x12\xa7\x97\x3e\xe1\xa4\x20\x53\x82\xae\x91\x46\x46\xed\x71\xdf\x23\x50\x50\xea\x2a\x29\x18\x48\xfe\x2b\x78\x6f\xff\x9b\x54\x94\x2b\x3d\x22\x07\x3e\xc2\x30\xfe\xce\x05\x69\x44\xd3\xf4\x00\xa5\xba\xeb\x58\xa0\x82\x30\x57\xd3\x42\x4e\xee\x08\xe3\x03\x57\x6f\xdf\x32\xec\x60\x5c\xde\xb9\x62\xf3\x9d\xae\xd5\x95\x70\xc4\x14\x65\xe7\x44\xec\x34\x21\x85\x2d\x2a\x10\x64\x52\x28\x70\xbe\x03\xdf\xed\x3c\x9d\xdc\xdf\x4b\x82\x6c\x0a\x26\x9d\x25\x10\xc1\x7a\x5e\xd9\xd6\x9d\x2a\x69\xd5\xef\x4a\x35\xc8\xf7\x1d\x9b\x6f\xcc\x05\xf3\xb1\x05\x85\x57\x61\x8c\x53\xd5\x1b\xc9\x52\x63\xfe\x7d\x01\x3e\xfa\x99\x33\x0b\xca\x6b\xa6\xd0\x24\xd8\x69\x6d\x34\x82\x59\x5e\x13\x42\xed\x9b\x72\x3b\x80\x8f\xb0\xb0\xc5\x43\x6f\xd1\x28\xa4\xbc\xaa\x2b\x8f\xcf\x10\x86\xdb\xf5\xc6\x70\x91\xc9\xd2\xd9\x45\xf0\x3d\xc1\x12\xee\x2e\xe6\xd0\x45\x3c\x21\x8d\x09\x57\x01\x63\xaa\x5a\x56\x9f\x8e\xfe\xc1\x78\x33\x83\x81\x97\x59\xb6\x1f\xec\x81\xcd\xf6\xae\xdc\xaa\x4e\x00\xf8\x58\xfb\x78\x17\x5c\x1b\x68\x5a\x06\xc7\xfa\x44\xaa\x31\xcf\x73\xb0\x45\x22\x70\x21\xe1\x6b\x01\x71\x2c\xa5\x69\xd9\xa1\xba\x11\x8d\x85\x59\x97\xe4\xc1\x2f\x1a\xbb\xc4\xae\xe9\x12\x96\x8c\x03\x16\x71\xed\x91\xec\x44\xe1\x15\x17\xb7\xc6\x23\x82\xdd\xfd\x4e\x2b\x8d\x99\x77\x1f\x5a\x96\x24\xea\xa2\xb0\xd2\x1e\x08\x62\x68\x96\x41\x4f\x1f\x90\x64\x17\x94\x30\xb5\x44\xda\xb4\x91\xad\x53\xa3\x08\xd7\xdd\x02\xee\xf6\x98\x19\xea\xfb\x5c\x88\x85\x6a\x50\xed\xcd\x3f\x11\x67\x32\x6f\x5b\xb4\x57\x94\x85\x22\x7b\xfe\x3f\xc6\xf3\xce\x49\x2f\xa4\xb7\x8c\xd7\x43\xb2\x4b\xc9\x1c\xfa\x0b\x5c\xce\x98\xbe\x39\xb6\x00\xcb\x47\xae\x28\x0c\xbe\x9d\x2a\x86\x55\x80\x81\x2a\x01\x95\x72\x6d\xaf\x6a\xc1\xae\x99\xc5\xde\x9c\xdb\x3d\x1c\xd7\x1d\x6b\xa6\xb9\xf8\xac\x9f\xef\x58\xf5\xff\xbf\x23\x79\x2a\x8d\x77\x53\xfd\x3c\x70\x0e\x73\x94\xe3\x6e\x79\x59\x97\xd8\xb7\xda\x18\xab\xc3\xf0\xc9\x84\xa9\x8e\xcd\xf9\x48\xc8\x3d\x69\xdb\xae\xdb\xde\x1a\x47\x25\x0c\x55\x53\x48\x98\x76\x76\x68\x2f\x72\x4d\x0b\x39\xa6\x05\x29\xb9\xb0\xa0\x75\xdb\x89\xcb\x3b\xf3\x84\x37\x76\x7f\xae\x00\x0e\x64\x50\xd7\x59\x0a\x8d\xe3\xdd\x22\x24\x94\x0b\x1e\x9f\x2c\xec\xc6\xc2\xe4\x40\x5f\x0a\xa6\x35\x86\x07\x7f\xe4\xe2\xc8\xb9\x16\x3b\x2d\xfb\xad\xa5\x8e\xb7\xb4\xac\x0a\x36\x40\xf7\xe3\x57\xc3\x5f\xa5\x60\xc4\xa5\x3d\x0c\x02\x8a\xba\x3c\x1e\x23\xc9\x3b\x14\x78\xab\x50\x96\xcc\xe7\xd7\x74\x82\xa0\x45\x77\x83\xb3\x55\x93\x2f\xdf\x7c\xf9\xe6\x5d\x37\x12\x73\xe2\x52\x8f\x32\xaa\x5d\x77\xdb\xbb\xa7\xfb\xe8\x24\x1e\x1c\xff\x24\x76\x77\xde\xb9\x7f\xbf\x74\xff\x7e\x45\xfe\xd9\x71\x36\x72\x46\xce\x5a\xff\xda\x7f\x3a\xce\x36\xb4\xc8\x13\x1d\xd7\xbb\x41\x9b\xb7\x66\x54\x20\xe3\xb3\x7c\xde\xdd\x6f\x90\xf6\xf0\x15\x80\xcf\x64\xb2\x64\xb0\xf5\x5f\xfe\xef\x6e\xb2\x26\xce\x0b\x11\xfa\x86\x48\xe1\x66\x7f\xb7\x07\xdb\xb5\x4f\x6e\x20\xee\xa1\xa4\x57\xe8\xb0\x3a\xc8\x4c\x4d\x0b\x0b\xf0\xde\x57\xc3\x77\xfb\x44\x8a\xd6\xe3\x9d\x40\xb8\xe6\xd2\xca\x6b\x7e\x27\xf6\xde\x75\xac\xf1\xb0\xb8\x9d\x5f\x2e\xd9\xce\xd6\x4e\xc2\xdb\x52\x31\x87\x57\x48\x4b\x93\x3d\x39\x3e\x10\xf3\x1b\x3a\x0f\x44\xd9\x8b\xeb\x53\x7e\xcd\xc8\x8c\x4f\x67\x50\x0d\xa1\x47\xbf\x54\x82\x71\xdf\x40\x63\xb9\x6f\x69\x89\x80\xcc\x09\xef\x28\xfd\x9d\x98\x5d\x0d\x11\x2d\xe8\xa3\x70\x85\x6e\x42\x9e\x5a\x48\x3e\x79\x07\x64\xe5\xed\x42\xa1\x8f\x0d\x87\x39\x7d\xf5\xe5\xe3\x65\x8a\x40\x93\x37\x26\x56\x04\x08\x5a\x0d\x0f\xee\x72\xb3\x45\xe6\xd2\x03\x6b\x1f\xe0\x5a\xc0\x28\x02\xf3\x0c\x6c\xfc\xca\x69\xc3\x0d\x47\x6b\x76\xaf\x9b\x5d\xf6\x4c\xe6\x21\x40\x84\x38\x79\x1a\x02\xeb\x34\xd9\x69\xb3\x81\x1d\x08\xb4\x0b\xd6\x1b\x57\xc3\xd9\xe9\x7b\x5c\x0a\xfb\x1e\xfe\xf2\xf7\x6a\x03\x4e\xc8\x81\xc8\x9b\x6c\xa2\x8e\xbb\xc4\x7e\xa9\x69\x01\xc6\xeb\x29\xc4\x09\xaa\x34\xfb\x15\xe5\x1d\xdd\xe9\x6b\xdb\x50\xf3\x8e\xaf\x8d\xf7\x5e\xd7\x05\x44\x5a\x3e\xfc\xfe\x49\x31\x41\x37\xa1\x56\xa0\x75\x86\x58\xab\x52\x62\xef\x7a\xe1\xc5\x7f\x17\x79\x21\x9d\x5d\xa2\xd7\x65\x38\x99\x2c\x49\xa7\x6b\x62\xb7\xc8\x98\xcd\xe8\xb5\xbd\x8e\x50\xc6\x29\xbe\xa9\xee\x88\x41\xc4\xea\x13\xed\x1d\x25\x58\x38\x12\xa8\xdb\x28\xf3\xb6\xc7\x35\x6f\xde\x4d\x1a\x7c\xbf\x1f\x17\xb9\x55\xf0\x7f\xb4\x34\x89\x8e\x2a\x75\x17\x01\xf5\xcb\xc1\xc2\xbe\xba\xcf\x7f\xf7\x5c\x72\xeb\x97\xdd\xe4\xd6\x27\x17\x2e\xf1\xdf\xce\x3a\x52\x73\x71\x97\xde\xd7\xdf\xed\x35\xbb\xbe\x0f\x11\xfe\x77\x08\x2e\x54\xc6\x6a\x82\x9c\x3b\xde\x30\x27\xde\x6b\x6e\x6a\x8a\x05\xb8\x04\xbb\x71\x29\xd5\xd1\xb1\x2e\x1c\x51\x64\xe4\xf2\x22\x5b\x37\xba\x32\x66\x19\xad\xb5\xbd\xd4\x65\x65\xd5\x6f\xa2\x2d\xfa\x79\x83\xe1\x57\x7b\x5f\x91\x21\x79\xbb\x6f\x6f\xb7\x40\xd2\x02\x28\x18\x0b\xdc\xd0\xd8\x06\x15\x3d\x33\xb3\xaa\xbe\x3d\xe7\x8e\x54\x8e\xbb\xea\x9d\x0b\x62\xef\xcb\x13\x9b\x84\xcc\xd9\xc1\x64\xc2\x05\x37\xf3\xae\xe5\xec\xd3\x88\x4f\xa7\x77\x20\x89\xc4\xa8\x99\xbc\x21\x37\xae\x96\x00\xe0\xb2\x2b\x89\x17\x83\xff\xc6\xfe\xd1\xcb\x70\x0d\xcc\x32\xc8\x22\x4e\xe3\x08\xf2\x80\xa3\x36\x16\xef\x46\x2e\x6f\xde\x35\xea\xe9\xb2\xd6\x90\xfc\x4d\x0a\xa9\xde\xa3\x72\x88\xbd\xec\x83\x0c\x72\xef\x6b\x39\xfe\x92\x15\x75\x1e\x75\xc0\x68\xa4\xa7\x8e\xec\x73\x48\x4e\xc0\x7e\xfb\xfe\xa1\x95\x83\x95\x17\x8a\x28\xe4\x81\xe1\xad\x02\xa8\x7b\x40\xff\xd2\x24\x79\x60\xe5\x1c\x1d\x81\x6d\xc7\xa4\xfd\x16\x36\x95\x54\x80\x3f\x5d\xed\x52\xb1\x39\x79\x88\x1d\x32\xbd\x6d\xd8\x67\xe8\x47\xf6\x60\xbb\xaa\xc5\xdd\x13\xbb\x09\x9a\x4b\x81\xc8\xbb\xca\xc2\x3c\x29\xe8\xf3\x26\x17\x10\x77\xd3\x2f\x21\xf6\x7c\xf3\xf7\x3c\x86\x63\xe5\x2d\xc7\xc6\x6c\x18\x31\xbf\x78\x3b\x3b\xad\xfe\x1c\x37\x1a\x2f\x86\xe5\x8a\xb2\x36\x0e\xfa\x01\xa1\x85\x04\x0f\x97\xe5\x95\xf6\x23\x96\xbb\x07\x27\xd2\x3b\xc2\x16\x1d\x33\x9d\xc0\x98\x41\x29\xd2\x26\xb7\x66\xd0\xba\xa2\x29\xe8\x83\x3f\x90\x35\x28\xc2\x33\xdf\x7e\x84\xf2\xf5\xfa\x2f\xfb\x71\x93\x86\xb0\xb9\x8c\xc8\x00\x82\x37\xf5\x5f\x31\x90\xc9\x00\xab\xd0\x0b\x39\x82\xdd\x8c\xdb\xd2\x53\xe7\xa8\x77\x62\x26\xd7\x9d\x43\x66\xad\x22\xc2\xa1\xd8\x71\x46\x8b\x58\x63\xb3\x9a\x22\xcf\x99\x42\x41\x71\xcc\x5a\xf5\xab\xba\x66\xaa\xe0\xf8\xb1\x99\x1d\x6b\x5d\x41\x11\x06\x5c\xfc\xcf\x58\x36\x78\x67\x5c\x67\x57\xcc\xf8\x90\x16\x05\xf5\x65\xaa\xda\x90\x31\x2d\xa8\xc8\x2c\xa1\x00\x1d\xa0\x9b\x8b\x63\xe2\x9d\x26\x46\x22\x00\xb8\x5a\xe7\xb7\xc1\x5e\x1b\xa1\x72\x12\xbe\x42\x94\xf9\xcb\x85\x36\x16\x6a\x4c\x09\xee\xb7\x79\x07\x85\x96\x03\xcb\x12\xfc\xa2\x77\xdc\x3e\xb8\xbc\xfb\x6f\x8c\x3c\x72\xb2\x14\x63\xc6\x15\xdc\x8b\xc2\x7e\x64\x97\x2e\x72\xcb\xa4\x64\x57\xe1\xb8\xcd\xca\xba\xbd\x24\x1b\x4d\x21\x6e\x72\xe1\x7a\xec\xb4\x2b\x5d\xfa\xe2\x59\x3b\x03\x3c\x45\x7b\x4b\x5c\x0d\x54\x7c\x79\x50\x6d\xa8\xe9\xbb\xe3\x22\x87\xca\xca\x8b\xc0\x84\x59\xdb\x50\x59\x15\xca\x43\x04\x06\x82\xf4\x10\x2d\x37\x64\x3f\x37\xf9\xbc\xe3\x1d\xd8\x14\x11\xbd\x6b\xf8\x69\xcb\x4f\x90\x9e\x44\x0b\x5f\x1f\xc9\xca\x3b\x7c\x62\xf5\xd5\x5c\x32\x8c\x27\x41\xc7\x42\x47\xb3\x25\xf3\x42\x53\x63\x5c\xeb\x2a\x52\xb4\x0c\x55\x64\xcf\xc7\x55\x10\xc3\x8a\x02\xb9\x43\x63\x4b\x14\x12\xb3\x42\xfd\xd3\x5d\xbd\x22\x43\xd2\x76\xea\x2c\x5d\x2c\x5e\xc8\x97\xbb\x02\x9f\xf3\x3c\x34\xe5\xed\x1a\xbd\x3c\xae\x0d\x99\xf2\x6b\x2b\xdf\xdd\xf1\x1c\x2d\xf3\x02\xa1\xe7\x6e\xc6\x8a\x8a\x28\x96\xd7\x19\xeb\x11\x43\xa9\x3b\x1a\x28\x08\x39\x88\x4d\xa9\x50\x6d\x24\xb0\xcb\x9d\x16\x2e\xee\xb8\x0e\xc2\xfd\xa5\x58\x3e\x01\x0a\x0b\xca\x31\x9f\x10\x76\xcd\xd4\x9c\x54\x52\x6b\xa0\xfd\x20\x2f\x60\x79\x48\x88\x43\x9d\xf8\x94\x24\x30\x47\xc1\x9e\x39\xcb\x4c\xa7\xc5\x77\x9c\x39\x67\x07\xcc\xf1\xb2\xb7\x0c\xb0\xbd\xfe\xfe\xaf\xde\xbc\xeb\xea\xef\x4f\x6d\x37\x3d\x83\xff\x05\x67\x7c\x2f\xa7\xfc\xc9\x64\x19\x9d\x0c\x7b\xdb\xa2\x3c\xeb\xf8\xeb\xbb\x3a\x75\x61\x67\xc0\xad\xfe\xd5\x7e\xe4\xea\xff\xea\xcd\x97\x6f\xde\xed\xd9\xbd\xff\x72\xdf\x9e\x42\xe4\x90\xff\x32\x72\xc8\x87\x5f\xba\xb7\xe8\x50\xfc\x8b\x34\xe1\x4e\x7b\xef\xf6\x47\x90\x0d\x02\x95\x5d\x6f\xa4\xca\x5d\x71\x04\x5f\x6b\xd3\xbe\x79\x68\x9c\xca\x4b\x2f\x7c\x0e\x80\x68\x05\xea\xd8\xcd\xb0\x06\xae\x20\x08\x40\xe0\x86\x7c\x51\x4a\xc5\xbe\x88\x96\x78\xa9\x82\xc1\xdd\xb0\xb8\x92\x56\xc3\xab\x0e\x11\xcf\x7d\xd2\xc4\xfb\x26\x89\xdf\x17\xdc\x57\xd2\xea\x11\xf3\x5c\xcb\xa2\x2e\x1f\x1b\xbf\xde\x4f\x20\xfa\xe0\x32\x7e\xdd\xd2\x2e\x29\x15\x03\x44\x4a\x97\xad\x3d\x9e\xc7\x45\x90\xc7\xac\x90\x62\x8a\x5e\xde\xd0\xea\xf1\x91\xab\xae\x57\x93\x3e\x93\x22\x63\x95\xd1\x6f\xb4\x91\x8a\x4e\xd9\x1b\x07\xe4\xa3\x16\xdb\x5c\xb1\x87\x1f\x00\xda\x76\xce\x20\xb6\x53\xc2\xf7\x08\x25\xaa\x7d\xe6\x3c\xd0\x4b\x9a\x41\xc1\x4e\xd8\x75\x2b\x2d\x45\xad\x99\x45\xd7\xed\xde\x50\xbd\x87\x0e\xbd\x17\xfb\xe4\xd1\xd2\x1b\x7d\x5c\x50\x6d\x78\xf6\x4d\x21\xb3\xab\x0b\x23\xbb\x59\x21\x53\x68\x18\xcb\x60\x69\x61\x82\x20\x07\x3f\x5e\x90\x23\xae\xaf\x88\x62\x5a\xd6\x2a\x73\x4d\xde\x16\x4a\x59\x3e\xb6\xea\x2e\x0e\x7b\x99\x0a\x66\x5c\xb3\x02\x52\xd2\x6c\x86\xaa\xbf\x8b\x17\x61\xb7\x95\xd4\x4d\xdb\xfa\x0e\x28\x85\x23\xee\xf1\x71\xf0\xe3\xc5\xdd\x57\xe6\x3a\x6a\x2f\x82\x06\x4e\x4c\x42\x02\x33\x71\x93\x63\x30\x34\x8a\x75\x93\xca\x96\xee\xb4\x45\x78\x30\x4a\x29\x96\x73\x85\x25\x68\xdd\xbb\xb2\xb1\x1e\x65\x9a\x8f\xe8\x8d\x1e\x65\xb2\x24\x87\x17\x27\x24\x57\xfc\xba\x6b\x87\xa9\x7e\xa4\xec\x37\xf4\x46\x33\x04\x7f\x6c\xc1\xb7\x5f\x77\xd9\x87\x0d\x77\x59\xc5\xb7\x39\x39\xea\xf0\xf3\xbe\x99\xf3\x13\x7d\x69\xdf\xbd\xa3\x3e\x97\x2a\xdf\x10\xa1\xf0\x16\xd9\x09\x2f\x18\x96\x3a\x43\x4c\x74\x1e\x73\x47\xf6\xe1\x9a\xcf\x65\x4d\x6e\x28\x5a\xdd\x81\xcf\x76\x4f\x7c\xbd\xe4\xd5\x7b\x72\x2c\x74\xad\x58\x93\xde\xbf\x08\x82\x15\xdc\x7d\x07\x66\x6f\x72\x07\xda\xe0\xae\xa3\x98\xf6\x28\xce\x86\xe3\x18\xb5\x33\xfd\x9e\xec\xb0\x5b\xf3\xf5\xce\x80\xec\xdc\x4e\xb4\xfd\x47\x98\x89\xde\x19\x91\x93\xb2\x2a\x78\xc6\x8d\x55\x47\xc5\x84\xa9\xc6\x54\x8c\x3f\x48\xd4\x9f\x6a\x5b\xee\x24\x49\x91\x03\x0c\x46\x61\x40\xcf\x0d\x63\x78\x00\xc4\x23\x79\xf4\x81\x78\x4a\xf4\x3e\x99\x10\x89\x49\x1b\xed\x02\xef\x5c\x87\xc9\x2d\x42\xbb\xd5\x45\x87\x4e\x55\xcd\x68\x50\xf8\x5b\xa9\xfc\x94\x6f\x72\x76\xfd\x46\xe7\xf4\xdd\x00\x5e\x0b\xf1\x73\xbe\xb0\x07\x54\x93\x9d\x77\x8f\x6e\xb1\xd0\x8c\x0b\x5e\xf2\x82\xaa\x62\x3e\x88\xf7\xb2\x99\xdf\xb2\x4a\x0f\x08\x18\x93\xdf\xee\x90\x3d\xac\xa3\x0e\xe2\x7a\xc1\x7c\x23\xc3\xd0\x0f\x19\x72\xc7\x3a\xb7\x09\xec\x1b\x52\x43\x7a\x87\xd5\x10\x60\x4c\x34\xff\x24\x8a\xce\x65\x51\x52\x61\xbf\x87\xc3\x57\x5e\x54\xb5\x73\xb1\x4f\x24\x4a\x6e\xac\x79\xc4\x37\x33\xe2\xc2\xa9\x00\x1f\x2d\x8e\xf6\xa8\x04\xb2\x6d\xe4\xac\x7b\xe3\x46\x12\x24\x85\x4d\x1f\xa8\x87\x03\x92\x11\x04\xff\xa5\x66\xe4\xe4\xc8\x33\xea\x8a\x29\xcd\xb5\x61\xc2\x90\xbc\x25\xa1\x73\x14\xdb\xf7\x0e\x4a\xfa\xab\x14\xe4\xf8\x9b\x0b\x37\x51\xe7\x6b\xb6\x7d\xa7\xdb\x91\x59\xd1\x5f\x6b\xc5\xac\x3e\xb3\x31\x95\xcb\x03\xb0\xa8\x67\xd9\xcf\xc9\x11\x35\x14\xd5\x2d\xe4\x18\xb2\xe9\x86\x06\x6a\xd1\x18\x2a\xe1\xf9\xb6\x7b\xe9\x94\xa2\x00\xd4\xa3\x34\xa1\xe8\x65\xec\xa1\x74\xdb\x8f\xa5\xea\x8f\xc5\x67\xd4\x7f\xec\x0a\x09\x34\xa0\x0d\x6b\x1e\xf6\x7d\x4e\xbb\x5a\xf4\xf1\xe7\xdf\x9f\x9f\x6c\x40\x6f\xc9\x40\x27\x9f\x7e\x94\x79\x1a\xe5\x65\x37\x9a\xd0\x8b\x68\xd0\x4a\xf9\x10\x3f\x27\xa5\x5d\x89\x9c\x4a\xc1\x06\xe4\x9c\xd1\x9c\x58\x66\xe5\xfe\xf3\x47\xc5\x0d\x1b\xed\x6e\x4a\xc8\xf5\x87\x98\x64\x23\xfc\x64\x7e\x13\x4e\xa3\x06\x9b\xd0\x05\x17\x48\xba\x93\x59\xc7\x85\x1c\x13\x47\x52\x37\xf9\xf6\xdf\x9f\x9f\x24\x7b\xf9\xef\xcf\x4f\xfc\xbb\xdb\xff\x94\x93\xed\x7c\xed\x6d\x53\xdc\xbf\x5d\xd0\x98\xfb\x6b\x2e\x1f\x5d\x36\x09\xbd\xa3\x8d\x3f\xbd\x2a\x3e\xda\xb0\x12\x9e\xa0\xf8\x95\x53\xf4\xde\x13\x0b\x57\x37\x33\x28\x17\x9d\x0b\x4b\xb6\x89\xab\x9d\xa9\xe9\x66\x15\x45\xbd\x41\x57\xc4\xfc\x3d\x29\xeb\xc2\x40\x7f\x20\xb8\x5a\xf6\xae\x41\xea\x9d\xbf\x64\xc4\xf5\xcb\xb5\xd2\x01\x46\x9a\xe4\xef\x7d\xdd\xa9\xf0\x8b\xe5\x3f\xf8\x48\x05\x9d\xda\xc7\x81\x63\x93\x12\xff\x8c\xee\xf4\x1e\x3a\xf8\x45\xf8\x8a\x5e\x53\x5e\xd0\x31\x2f\xb8\x01\x6d\x64\x7f\xe4\xf7\x12\x8b\xf4\x00\xc8\x1b\x23\xf6\x5b\xa7\xd2\xc5\x3d\x44\xa0\xef\x24\xd9\xb3\xdf\xbd\xb9\xb1\x4c\x71\x7f\x04\x1c\x12\x1e\x9c\x31\x15\x6b\x7d\x9d\x57\xb6\x17\xfe\xfc\x89\xb4\xc5\xfe\x1a\x5a\x74\xf1\x60\x37\xba\x69\x02\x96\x9a\x6e\x54\x13\xb0\x00\x2c\xd5\x04\xe0\x0b\xd7\x05\x78\x03\xca\x00\x2c\xdf\x41\x19\x80\xdf\x25\x56\x06\x2c\x5b\xfa\x9c\x94\x01\xcd\x32\xc5\x4c\x0f\x75\x00\x48\x63\xc7\xdf\xf7\x55\x08\xb6\x8e\x2e\xe6\xaf\x74\x31\x1e\x0d\x72\x25\x39\xa1\x66\x3a\x2f\xac\x63\x53\x78\x39\x71\x5f\x2d\xd4\x07\x47\xe2\x75\xe1\xa4\x83\x03\x27\x1d\xc0\xef\x2d\xc9\xea\xd2\x19\x01\x47\x6f\x86\x1e\x2e\x4d\x9a\x7d\xf1\xb3\xf9\x6d\x41\xb1\x07\x3e\x26\x9d\xaf\x76\xcf\xd7\xcc\x58\x35\x9b\x6c\xac\x28\x86\x5d\xfd\xdb\x8b\x76\x20\xc9\x21\xab\x66\xe4\xdb\x8b\x25\x0c\x0c\x2b\x9f\xd8\xed\xd2\x18\x5e\xb2\xab\x49\xc1\x27\xcc\xf0\xae\x9e\x91\x98\x87\x1d\x22\x2c\x2d\x06\x16\x4a\x5a\x79\x86\x85\xdb\x15\x1c\x8f\x42\xfa\xc6\xb0\x41\xef\x79\x81\xcc\xa5\x94\x82\x1b\xf9\xe8\x2e\xee\x24\x45\x07\x08\xb7\xf4\xa6\x59\x83\x87\xc3\x1e\xea\xb9\xdf\x4e\xf2\x31\xfa\x94\x92\x4c\x16\x05\xcb\x7c\x15\x12\x40\xd3\x1e\x3b\x87\x63\x89\x89\xdc\x85\x02\xeb\xd1\xd5\x1f\xc1\x48\xee\xcc\xe1\x6f\x10\xf5\xde\x9c\x1f\x1f\x1c\x7d\x3c\x1e\x95\xf9\x6f\x66\xf2\x66\x68\xe4\xb0\xd6\x6c\xc8\xbb\x16\x99\xdd\x78\x7f\x8a\x04\xda\xf4\x13\xd4\x7b\xae\xa8\x99\xa5\x51\xaf\xed\x4c\x16\x7d\x7c\x27\xf5\xf7\xe4\x7b\x8d\x95\x16\xa0\x96\x9d\x8b\x43\x54\x52\x9a\x01\x51\x14\x82\x6f\x43\x8f\xe9\x49\x5d\x14\x88\x67\x96\xf6\x0c\x62\xff\xf0\x9b\x57\x25\xd7\x8b\x53\xad\xcd\xfd\xac\x34\xde\x6d\x21\x0f\xfd\x65\xcb\xae\x3a\x33\x49\x88\x30\x0d\x24\x6d\x94\xb9\x68\x7d\x8e\xb1\x0f\x66\x66\x11\xe8\x8a\xcd\x09\xf4\x03\xb0\x6a\xeb\xf7\x9a\xa9\xf6\x15\x64\x26\x83\x5d\x7f\x53\x6b\xa6\x46\x38\xfd\x0b\x3f\xe9\x3e\xb2\x32\xbc\xff\x39\x9b\x6c\xc7\x39\x9f\xb3\xc9\xb2\x63\x76\x1f\x43\x5f\xeb\x90\x55\x65\x45\xf1\xda\xcc\x30\xf3\x17\xf8\xbb\xd3\x53\x96\x9e\x3b\x76\x90\x78\xe1\x07\xdd\xab\x32\x7d\x8a\x96\x40\xa2\x87\x56\x45\x12\xb7\x4f\x89\xfd\x68\x0e\x33\x7a\xf6\x99\xb9\x6c\x35\xcf\xc5\xe2\x6d\xfc\x9a\x15\xf3\x20\xab\x63\xde\x4c\x5e\x63\x2d\x69\x9a\x5d\xdd\x50\x95\x43\xa7\xee\x8a\x1a\xee\x2c\xdc\xbc\xbb\x60\x69\x87\xef\xee\xee\xaa\x55\xbb\x16\x2c\x2e\x01\x5b\xe3\x1b\x73\xa7\xcc\x60\x42\xa8\x70\x65\xb9\x5d\xed\x39\xcb\x23\x69\xe7\xa0\x0b\x0f\x44\x69\x75\xb7\x8c\x29\xab\xed\x17\x73\x72\xa3\x64\xd7\xda\x75\x7e\x3c\x32\xb0\x44\x5e\x33\x75\xcd\xd9\xcd\x9b\x1b\xa9\xae\xb8\x98\x0e\xed\xcb\x0e\xf1\x0a\xe8\x37\x16\x13\xf5\x9b\xdf\xc0\x3f\x3d\xa0\x4a\xd4\x13\x25\x58\xa8\x77\x76\x52\x88\xc3\xbd\x5b\x35\xd8\x61\xf9\xdb\xa6\xa9\xba\x85\xc1\xde\x25\x19\xcb\xd1\xca\x73\x6c\x45\x73\xa9\xf1\x19\x7b\x8e\x2d\x7a\x4d\xf3\xb2\x63\xfd\x67\xb2\x35\xe4\xba\xab\x71\x87\x8b\xbc\xdb\xd1\x25\x31\xee\xc0\xea\x6d\xe3\x8e\xfb\xcc\x05\x81\x86\x74\x10\xea\xbd\x12\x50\xb2\xd7\x27\x79\xb4\x73\x3c\x12\x58\x78\x70\xf1\xc7\xb9\x28\x1c\xc4\x89\xfd\x13\x38\x2b\x78\x28\x64\xc5\x2c\x49\xce\xae\x46\x52\x4d\x9f\x22\x69\x63\x11\x5f\xcb\xb9\xfe\xa5\x18\x22\x04\xc3\x2a\x6f\x10\xf6\xe5\x59\xae\x5e\xb3\x33\x56\x66\x67\xbc\xec\x40\x8f\x2d\xce\xb9\x78\xca\x2b\x45\x3e\x4b\x2b\xcd\x67\xe5\x72\xdb\x20\x4e\xf4\xb7\xc5\x6c\x9b\x8a\xde\x48\x74\x95\x84\xc2\x71\xae\xd5\x28\x68\xe0\xc8\x59\xbc\xaf\x10\xaa\x30\x50\x45\x4b\x66\x98\x6a\x4a\xed\x67\x52\x88\x3e\x9d\x7a\x8d\x24\x9f\x2a\x26\x2e\x80\x09\xbf\xaa\xd5\xaf\x6a\xf5\xea\xf1\xaa\x56\xbf\xaa\xd5\x29\xd4\xea\xad\x4b\x18\xf2\xf4\x14\x8b\x20\xba\x44\xc0\xa6\xa2\x83\xd3\x59\x5e\x1e\xcf\xec\xaa\x3d\x4b\x31\xe1\xd3\x8f\xb4\xea\xad\x40\x87\x99\x16\x94\xe1\xf0\xb1\x8b\x6c\x80\xd2\x54\x95\xac\xa0\xb9\xa1\xab\x71\x0a\xdb\xff\xfc\x9a\x59\x5f\x66\xe4\x2e\x5c\xb2\x24\x90\x1e\xf8\x1d\x81\xd2\x96\x37\x4a\xfb\xc9\x98\x9b\x46\x92\xd0\xcc\x60\x27\x35\xec\x56\x4b\xa4\x20\x99\xab\x8d\x0f\xfa\x4f\xd4\xe1\x2f\x81\x4e\x25\x88\xcc\x8c\x2f\x35\x1a\x1a\xaf\xbd\x7d\xfb\xf6\x2d\x76\xdd\xf9\xc3\x1f\xfe\x40\xa4\x22\x94\xe4\x2c\xe3\xe5\xdd\x07\xe1\xa9\xdf\xbd\xeb\xd8\x98\xc2\x8e\x7f\x3f\xf8\xf8\x01\xea\xb2\x54\x46\x63\x6f\x4b\x84\xc8\x4e\xdc\x5a\x54\x0f\xc8\xff\xb9\xf8\x74\xda\x34\x4d\x6c\x7f\x0b\x56\x93\xb0\x9d\xdd\xe1\x89\xdd\xb7\x6f\x7f\xff\xf5\xd7\x3d\x66\x02\x83\x8b\x54\xdc\xd5\x5a\xf6\x25\x66\xa8\xe5\xc7\x8a\x61\x37\x23\x10\x20\xbc\x06\x8b\x05\xc0\x4c\xe7\xc6\x2a\xc4\x0b\x28\x25\x9f\xce\x8c\x2b\x13\x6b\xaf\x78\xc1\x33\x83\x82\x00\x16\xd7\x92\xae\x94\x34\x5c\x7a\x84\x21\x68\xef\x3d\x02\x58\x72\x36\x20\x05\xbf\x62\x64\xa2\xff\xaa\x64\x5d\x35\x2d\x90\xb1\xdb\x8b\xaf\x7d\x84\x40\x34\xb8\xdf\xb9\x83\xe8\xb6\x64\x52\xf7\x8a\x40\x49\x45\x64\x00\x88\x05\x93\x83\xab\x7c\xda\xb4\xd4\xad\x28\x0f\xc5\x8e\x20\x6d\x13\x65\xd9\xb6\x8c\x9c\x75\x2c\x28\x67\xc7\x61\xe0\x28\xbe\xf5\x45\xa5\xe4\x7f\x22\x92\x43\x89\xdf\x88\xa3\x43\x69\x5c\x8b\x73\xbe\x30\x6e\x13\x99\xd8\x79\xfd\x2b\x86\xa5\x6f\xad\xbe\xc6\x44\x68\x52\x09\x6f\x0f\x55\x6c\xa3\xbd\xb1\x5f\x14\x5c\x5b\xd0\xa0\x97\x92\x83\xb8\xf3\xda\x4b\xde\x34\xac\x06\xf7\x5e\xe3\x8d\xa8\xc5\x9d\x55\xb1\x07\x49\x8f\x95\x81\xa5\xc3\x0b\x52\xdf\x3f\xb8\x59\x1b\xab\xb7\xbb\xf6\x3c\xee\x59\x8f\x05\xe1\xc0\xba\x96\x0c\x25\xf1\x91\x6a\x66\x6a\x77\xf4\x4c\x29\xa9\xec\xbb\x32\xad\x5d\x67\xba\x92\xaa\x2b\x96\x07\xfe\x37\x22\x67\x76\x53\x7c\x67\xa0\x1e\x26\x9e\x82\x5a\x2d\x0c\x8d\xf8\x74\x0e\xaf\xe9\x14\x76\x00\x6e\x77\x34\xda\x45\xc2\x2b\x15\xd1\x86\x2a\x47\x0d\xed\xe7\xfd\x28\xcf\x06\xe3\xd6\x5a\x74\xe3\x23\xad\xa0\x79\x38\xc8\x99\x80\x00\x60\xc3\x80\x77\x76\xcc\x87\xba\x33\xea\xce\x5b\x12\x58\x18\xfa\x1a\xdc\x71\x0c\x3b\x57\x58\xf7\xbf\xb7\x1b\xd3\xe7\x9e\xf7\x36\x93\x00\xa5\xea\xf3\xf3\x05\x04\xb8\x6a\xd7\xac\x37\xd2\x53\xa3\x7e\x0a\x79\x22\xe5\xb7\xec\x21\x84\xe3\x48\x69\x16\x42\x78\xda\xc1\x39\x6b\x49\xe2\x06\xad\x3f\x45\x8f\x3b\x84\x63\x8b\x04\x70\x1c\xdb\x26\x86\xe3\x38\x99\x00\x29\x5f\x60\xd9\x8e\xd5\xc4\x4a\x95\x97\x35\xec\xd9\xf5\x5d\x74\x73\x12\x34\x8e\x8d\xc8\xd1\x38\x52\x48\xd3\x38\xfa\xcb\xd4\x38\xfa\x84\x41\xe3\x48\x4b\x38\x7c\x30\x35\x1e\x86\x13\x3b\x50\xb2\x98\x04\x04\x00\xaf\x27\xd8\x54\x3c\x31\xee\x4d\x2f\x9c\x50\x83\x24\x83\x8e\xb5\x2c\x6a\x83\x0b\xa7\x9a\x3a\x96\x97\xe0\x85\x58\x01\x3d\x29\x7a\x09\x49\x8b\x8b\x44\xb2\x17\x48\xc7\x28\xae\xf4\x5f\x61\x3b\x63\xf8\xfb\xb8\x42\x52\xa1\x6d\x5a\x17\xc8\xe6\xdd\x1f\x1b\x77\x7d\xa4\x76\x7b\x6c\x9b\xcb\x23\x65\x71\x89\x8e\xae\x8e\x60\x1f\x4d\x71\x77\xfc\x64\xa1\xb6\xe0\xcd\x8c\xb9\x24\x97\x48\xf9\xb5\x42\x96\x65\xa1\xa0\x91\xfb\x4e\xb5\xd8\xd4\x67\x53\xde\xf2\xb4\xee\x9e\x4c\xf3\xfe\x4e\x04\xcd\xc9\xde\x61\xa8\x99\xed\xf3\x65\x4f\x84\x61\x6a\x42\x33\xb6\x1f\x3b\x17\x58\x35\x63\x25\x53\x76\xe3\xdd\x73\xbe\x04\xf3\x8c\x8a\xdc\x35\x27\x73\xb7\x88\xb0\x5b\xc3\x94\x3d\xa4\x26\xf8\xac\x93\xf0\xb8\xe9\x82\x59\x00\xf9\x26\x7c\x1d\xb0\xf0\xa6\x79\x0d\x42\xe1\xc5\x23\x11\x71\x9e\xe6\x58\x7d\xdf\x34\x8b\x02\x3a\x76\x30\x75\xa7\xa0\x87\x52\x80\x54\x0c\xe4\x7e\x2e\x6b\x85\x01\xb7\x21\x8e\x32\x93\x4a\x59\xf9\x1c\x00\xa2\x9a\x28\x36\xe5\xda\x40\x77\x18\xdf\x0f\x14\x3b\x4c\x6c\xac\x1e\xcf\x56\x45\xf2\x85\x90\xbd\x15\x95\x8e\x3a\xaf\xe1\x34\xba\x4a\xc9\x6b\x9e\x7b\x85\x2e\xe6\xcf\x5c\x93\x8a\xea\xa8\x7e\x3a\xd5\x5a\x66\x1c\x1c\x60\x0d\x16\x75\x5e\x1f\x2d\xa1\xa0\x2e\xe6\xcc\x58\xed\x5e\xb0\x56\xe5\xdb\x38\xc8\x50\x12\x5a\x55\x45\xe7\x4c\x9b\xde\x68\x21\x64\xce\xce\xea\x71\xc1\xf5\xec\x62\x5b\x02\xa7\x96\xc1\x84\xc9\xc9\x77\x32\x9a\xee\x0b\xa0\xea\x11\xb4\x25\x34\x07\x8d\xcb\xca\x4b\x56\xc1\xe4\x52\x80\xa9\x8b\x6a\xed\x57\x8d\x49\x8d\x04\xb9\xb3\x60\x86\xf9\xaf\xba\xcb\xd1\xcd\x7b\xbb\xde\x13\x56\x27\xb7\x9f\x7e\x2f\xaa\xd6\xe7\x19\x2d\x8a\x1e\x96\x8f\xb6\x88\xed\xa5\x17\x34\x01\xf8\x3e\x16\x78\x61\xb8\xbd\x4b\x7e\x97\x21\xa5\x0c\xb9\xd7\x08\xdb\x93\x76\x17\x71\x97\x1e\x9c\x26\xa5\xc4\x22\xe8\x82\x48\xe1\x4f\x77\x60\x05\x72\xff\x83\x80\x01\x58\xbe\x0b\xef\xf1\x6b\x38\xdb\x6b\x38\xdb\x03\x63\xe3\x3a\x1d\x79\x0d\x67\x7b\xec\xd8\xc6\x70\xb6\xad\x0b\x39\xf7\x86\x6b\x64\x8f\x34\x1f\x42\x35\x41\x0c\xba\xaa\x31\xdd\x27\x48\xa9\x7d\xa5\xe0\x07\xea\x0e\x6c\x2c\xe4\x1b\xdf\xeb\xc0\x18\xc5\xc7\xb5\xe9\x4e\x8a\xd3\xc6\x1a\x36\xf0\x80\x7a\xca\xb4\x93\x19\x86\xee\xc8\xb2\x88\x79\x38\x23\x7f\xe0\x68\x91\xa4\xd1\x53\x55\x1a\x05\xdd\x05\xd4\x16\xfc\x70\x57\x93\x5c\x66\x75\xc9\x84\x69\x30\xa4\xc9\x75\x41\x3f\xcb\x06\xb9\x2a\xcd\x73\x8e\x42\xc9\x59\x02\xfe\xda\x8b\x1c\xe5\xf2\x46\x58\x7e\x74\x70\xd6\xa9\xc2\x6f\xbb\xba\x6f\x33\x57\x6c\xc6\xf0\x1f\x13\xfb\x39\x1d\x43\xc3\x7c\xd7\x72\xf5\x35\x64\x72\xe9\x14\x69\xae\xe9\x32\xcf\xac\x91\xa4\xd6\x6c\x65\x48\x64\xe3\x59\x4d\xba\xf2\x6b\x74\xe6\x76\xb8\x85\x5f\xa3\x33\xbb\xae\xfc\x1a\x9d\xd9\x6d\xf9\x16\x3d\x3b\xc1\x10\x4b\x2b\xce\x15\xae\xb7\x67\x8b\x3f\xb8\xc8\x84\x1e\x07\xb5\x5d\x51\x65\x47\x0d\x4f\x44\xe3\xc6\x62\xe1\xdf\x05\x3b\x0c\xd2\xc2\xc6\x0f\x1e\x25\xcd\x79\xa6\x09\xca\xe6\xe7\x10\x81\xb6\x05\x11\x64\xb0\x97\x3d\x6c\x82\x38\xda\xd5\xe2\x9a\xd2\x83\xd8\x8d\x1b\x43\x74\xa3\x18\xe1\x4a\xe6\xef\xb1\x01\x35\x15\x42\xa2\x88\xaa\x07\xd8\xc0\x5b\x0f\x5c\xf1\x0b\x50\x52\x2b\x9a\xa1\x95\xac\xe6\x39\xd0\xd4\xa6\x42\x65\xd7\xda\x71\x38\x92\x60\x01\x49\x84\x09\x04\xb0\x01\xb6\xe8\xac\x0f\x4a\x90\x64\x68\x61\x07\xad\xf8\x0f\x4c\xe9\x1e\xbd\xed\x9a\xd1\x6e\xbc\x8b\xb3\x7a\x6c\xd0\xd9\x8c\x95\x14\xfe\xf3\x5b\xbf\x05\x96\x40\x5a\xad\xd3\x30\x6c\x5f\xc7\x54\xa9\x89\x9c\x0c\x5a\x19\xd8\x3b\xd7\x7d\x3a\xba\xf9\x91\xc8\x98\x41\xfc\x65\x3a\xeb\x1d\x6e\x44\x16\x37\xec\xac\x15\x1c\x64\x2f\x12\xc8\x91\xf6\x6e\x79\xf7\x53\x13\xa8\x0d\x4c\x04\x77\x78\x8b\x36\x27\xbd\xa5\x06\xc7\xb6\x45\x85\x76\x8d\x06\x1d\x84\x88\x81\xb6\xc8\xde\x13\x9c\xd7\x68\xd0\xf6\x78\x8d\x06\x7d\x8d\x06\x4d\x1a\x0d\x1a\x09\x3b\x9e\x6f\x2d\x09\xec\x8c\xe3\x18\x7c\x74\xe7\x98\x79\xbd\xdf\x59\x1c\x7c\x70\xa6\x8f\xcc\x94\xaa\x9d\x80\xb2\x3b\x1a\xed\x62\x0a\x4a\x63\xa2\xa8\xcd\x64\xf8\x47\xc2\x44\x26\x73\x3b\xcf\x25\xcc\xaf\xb4\x01\x11\xbe\xf1\xf3\xc4\xb0\x94\x7e\xad\x38\x89\x05\xe6\x4e\x21\x51\xf5\x66\x15\xbe\x97\xe3\xb7\xe9\x05\xd3\xde\xc4\xbd\x11\x67\x43\xc7\x49\xb7\xc5\x99\x8f\x68\x72\x72\xad\xff\x5e\x93\x82\x97\x1c\xda\x9b\xe4\x40\xe1\x98\x36\xfd\x1c\x5d\x84\xec\xe1\x94\xa3\xac\xaa\x07\x6e\xfa\x51\xc9\x4a\xa9\xe6\x83\xb0\x84\xfd\xb2\xb5\xa6\x7b\x62\x1f\x84\xe8\xac\x56\x8a\x09\x53\xcc\xfb\x15\x7c\x6f\xc6\x16\x4a\xd3\xfe\x04\xb6\x44\x98\x0e\x08\xd2\xa7\x11\x43\x33\xda\x34\xa8\x89\xa7\x03\x57\x73\xd8\x45\xe0\x9d\xae\xb0\xdf\xa0\x89\x62\xb4\x9f\x32\x71\x4d\xae\xa9\xd2\xfd\xee\x3c\x49\x2b\x3f\xe7\xfc\x9a\x6b\xd9\x39\x06\x2d\x9a\x28\xde\x9e\x8b\xe0\x41\xb3\x37\x55\xd6\xa6\xaa\x8d\x63\x27\xfe\xfa\xb2\xdb\x4a\x5a\x21\x2d\x5c\xdb\x05\x45\xe3\x5d\x57\x07\x65\x33\x2a\x6a\x0c\x53\xe2\x3d\xf9\xbf\x7b\x3f\xfd\xf6\x9f\xc3\xfd\xbf\xec\xed\xfd\xfd\xed\xf0\x7f\xfd\xe3\xb7\x7b\x3f\x8d\xe0\x3f\xbe\xd8\xff\xcb\xfe\x3f\xfd\x1f\xbf\xdd\xdf\xdf\xdb\xfb\xfb\x77\x1f\xff\x7a\x79\x76\xfc\x0f\xbe\xff\xcf\xbf\x8b\xba\xbc\xc2\xbf\xfe\xb9\xf7\x77\x76\xfc\x8f\x35\x27\xd9\xdf\xff\xcb\xff\xec\x0d\x3a\x15\xf3\x4f\x3d\xe9\x30\x8e\x61\x42\x79\xa0\x3d\x63\x12\xf4\x5b\xd0\x52\xb8\x30\x43\xa9\x86\x38\xf5\x7b\xe8\x29\xdd\x73\x01\x8f\x5e\xa9\xef\x7f\x23\x83\x04\xbe\x14\x14\xc4\x2d\xba\xe0\x4f\xa1\x03\x26\x4e\xb9\x80\x90\x90\x23\xbe\xb1\x6a\xa3\x7e\xfd\x76\x89\x15\xc3\xca\x4a\x2a\xaa\xe6\x24\x77\x2e\x87\xf9\x13\xb4\x91\xe9\xd9\xe8\x1a\x40\xcf\x79\x97\x5b\xbd\x61\x97\x65\xc9\x72\x5e\x97\x9b\xf6\x56\x22\x14\xf1\xc1\xdf\xd8\x23\x86\x88\x25\x39\x09\x11\xf0\xee\x31\xe7\x33\x1e\xd3\xec\x0a\x8d\x08\x01\x33\xfa\x78\x96\x58\x5c\x72\x78\x67\xc7\x85\xba\x96\x8c\x8a\xe0\x39\x85\xb0\x6c\x99\xb3\x5d\x1d\x9e\x45\x90\x92\x38\x2b\x31\x24\xcb\xe5\x74\xed\xb9\x05\xf6\xad\x2a\xf4\x11\xe4\xd7\x8d\xb5\x71\xef\x81\xdd\x24\x49\x63\x02\xfe\x2b\xfb\x60\x65\xfd\x4d\xa3\x69\x00\xc4\xc7\xe8\x1b\x09\x66\x1d\xd7\xe8\x6a\x42\x0a\x99\x45\x09\x1b\x2d\x51\x14\x10\xf5\xd8\x93\xb8\xbe\xd1\x4a\x16\x5d\x2d\x34\xa8\x03\x81\x4b\xad\xd0\x18\x6f\xcd\x33\x3a\x2e\x18\x9a\x8e\x00\x6f\x7a\xe3\xa8\x5d\xac\xa4\xb7\xbc\xac\x4b\x52\x6b\xfb\x66\x52\xb4\xe7\x6e\x5e\xec\x06\xaf\x26\xde\x95\x92\x0b\xf8\x51\xcb\xcc\xd6\xdd\x79\x35\x63\xe4\x22\x9c\x40\x63\xf4\xc5\xf0\x45\x67\xd3\xd1\x35\xa8\xfe\x0e\x3a\xa7\x80\xca\x09\x84\xd9\x06\x3d\x44\x13\xa8\xe7\xd0\xb9\x71\x26\xb9\x4b\x30\x04\x2f\xda\x14\x03\xe8\xd7\x2c\x3a\xa0\x5a\xb8\x7c\xa8\x97\x7a\x8f\x5f\x9c\x14\xdf\x53\x76\x4f\x25\xb1\x27\x91\xd3\x93\x4b\xe7\x21\xbf\x6c\x63\xe2\x5e\x48\x70\x6b\xc9\x7b\xce\x1e\xbd\x24\xd9\x8d\xfa\x3c\xa3\x40\x60\xfb\x94\x59\xbf\x0c\xb6\x6f\x27\x3c\x66\xf3\xcc\x35\x10\xe2\x4d\x8c\x62\x88\x53\xc3\xbb\x0b\x85\x78\x86\xf6\xff\xbc\x8d\xdc\x87\x2f\x8d\xd9\x04\xc3\xfb\xf1\x37\x60\x5f\xd4\xdd\x4a\x02\xa1\x97\xa0\x60\x06\x2a\x0f\x31\x11\x26\x85\x1c\x85\x52\x5e\x5b\x12\xd2\x69\xe6\xef\xb5\x0b\xb0\xe3\x1d\xaf\x05\xdd\x6f\x55\x94\xd4\x68\xf0\x13\x8c\xe5\x58\x25\xa9\x68\x76\x40\xd5\xa2\xe3\xfb\x8f\xf7\xc9\x84\x51\x53\x2b\x8c\x5d\x17\x52\x81\x47\x04\x89\x18\x9a\xf2\x15\xb3\x28\x00\x8d\x9d\x94\x2c\x89\x16\xb4\xd2\x33\x69\xc0\x6c\x4c\x2b\x9a\x71\xd3\xb9\xbc\x8d\x51\x34\xbb\xb2\x33\x43\x14\x13\xbc\x59\xb7\xd7\xc8\xf6\x5d\x8e\x7e\x8c\xab\xed\xba\x52\x66\xa6\x64\x3d\x9d\x41\xe1\x21\x7c\x2a\x2b\xa8\xc6\x2a\x57\xdd\x02\x10\x97\xae\xe9\x0c\x9d\x9a\xe4\x73\x41\x4b\x9e\xf9\xf3\x83\x2c\x32\xcd\xa5\x0b\x30\x01\x58\xba\x6e\x1b\x25\x67\x4c\x69\xae\x0d\x13\x06\x63\x5d\x0e\x0b\xca\x4b\xb2\xa7\x19\x23\xc7\xfe\xaa\xe3\x37\x17\xa8\xa6\xa3\x73\xab\x7b\xda\x41\x1c\x3c\xe3\x9a\x8c\xba\x3a\xd2\xf6\x13\xef\xd4\x8b\x02\x4a\xbb\xb7\x80\x70\xb7\x72\xe9\x2b\xee\xf7\xb8\x8c\xcb\xf7\x4c\x2a\xc8\x10\x72\xf6\xb9\x6b\x26\x72\xd9\x04\x56\x77\x5a\xeb\xe0\xec\x44\xc7\x06\x51\xa4\x69\x15\xae\x0e\x5f\xb8\x26\xa8\xa1\x73\x61\xa0\x88\x9d\xd6\xb3\x02\x97\x20\x5c\xe4\xfc\x9a\xe7\x35\x2d\x50\xd4\xea\xbc\x4d\x87\x17\x27\x08\x24\x9f\xce\xcc\xf0\x86\x81\x3b\x11\x65\xed\x86\x8b\xf8\x57\xe3\x77\x52\x66\xb9\x06\xa1\xcc\x10\x23\xbb\x11\x24\xe6\xdc\xd8\x76\xd3\x6e\xe8\x1c\xba\x79\xbb\xb4\xc7\x56\xa4\xb9\x3b\x31\xb7\xec\x44\x76\x93\x19\x4a\x2f\xe5\x39\xe4\xee\xb8\x71\x07\x40\x86\x33\x2a\x40\x75\x05\x2f\xb4\xc5\x7f\xa0\xa9\x77\x77\xad\x2b\xc5\xa9\x02\x06\x37\x53\xa1\xe0\xab\xa9\xbd\x71\x1d\x2d\x32\x1b\xb6\x8a\x5c\x37\xb7\xf1\x92\x95\x55\x41\xcd\xc6\x03\xba\x7f\x8c\x9c\xf2\x51\xac\xa0\x65\x1d\x54\xe4\x43\x5a\x58\x92\x71\xf6\xc3\xa1\x2b\x5d\x86\x84\x3d\x49\x66\xcc\xa5\x17\x3f\x84\xd3\x70\x50\x95\x5d\x4a\xd3\xa1\xbb\xde\x98\xe5\x20\x0f\x38\x88\xfb\xa4\x52\xca\x1b\xc1\x94\xbf\x57\x67\x3f\x1c\x0e\x08\x1f\xb1\x91\xff\x2b\x2c\xe1\xc5\x25\x23\xa7\x58\x9c\xc2\x97\xc8\xe9\x1e\x61\x28\xf3\x11\xbe\x7a\xec\xbf\x8e\xd7\xfc\xf9\x4f\x76\x53\xec\xb7\x7f\x1e\xfe\xc9\x31\x18\xf8\xeb\x67\x2b\xb5\xf5\xc8\xa6\xfb\x79\x61\xb6\xb8\x1e\x00\x88\x3b\xf6\xaf\x9f\xcf\x64\x7e\x51\xb1\x6c\x84\xdb\xaf\x7f\xee\x15\xf4\x4a\x08\x13\x46\xcd\x47\xe4\x4c\x42\x86\x0c\xcf\x91\xa0\xc1\xbb\x2a\xf6\x9f\x3e\x20\x03\xd0\x20\x78\x7d\x33\x6a\x98\x00\xe9\x57\x74\xef\x7d\x4e\x7c\x5d\x4d\x58\x16\xc8\x3c\x85\x7d\xde\x03\x57\x1d\x96\x17\x1f\x10\x23\xb1\x51\x77\x57\x6e\x6b\xc7\x81\x20\xec\x96\x6b\xe8\x23\x82\x27\x09\x48\x42\x5d\x69\x03\xaf\x72\x58\x60\x2c\xde\x85\xbe\x38\x95\xec\x1e\x71\x0b\x3b\xf8\x85\x90\xe6\x8b\x70\x79\x7d\xc6\x1a\xe8\x16\x92\xd0\x6b\xc9\x73\x52\x6b\x90\x39\x05\xa9\x05\x84\x2c\xf4\x28\x21\xeb\xb0\x67\x3c\x27\x25\xd7\x86\x5e\xb1\x11\xb9\xb0\xea\x48\x1c\x46\x8c\x38\x25\xc8\xb8\x90\xd9\x15\xcb\x49\x2d\x0c\x2f\x7a\x59\x66\x02\xdc\xb0\xb5\x91\xaa\x02\x45\x63\xeb\xcc\x4a\xb9\x95\x62\x43\xaf\x30\xe1\x53\x3d\x2c\xc6\xc8\xd0\xc3\xae\x36\x67\x35\x08\x57\x75\x46\xd1\x74\x5b\xe5\xb0\xa4\xcb\x7d\xed\x49\x8c\xee\xe4\xe9\xdb\xfd\x94\xf0\xb7\xfb\x03\x90\x4c\x8f\xc8\x29\x68\x2e\x45\xf7\x4b\x89\x49\x13\x68\xed\x76\x11\x32\x82\x65\x4c\x6b\xaa\xe6\x98\x58\xcc\x8d\xcf\x69\xaf\x35\x9b\xd4\x05\x28\x8c\xdd\x37\x95\x8a\xda\x02\x4c\x14\xcb\xa4\xd0\x46\xd5\x19\x60\x0d\x25\x63\x25\xaf\x98\x68\x0a\x7d\xf4\x60\x26\x71\xc6\x74\x93\xd4\x69\xc5\x6b\x21\x49\x36\xa3\x62\xca\x42\x29\x61\x52\xd2\x1c\x30\xf9\xbb\x60\xfc\xe8\xbe\x99\x32\xe0\x05\x9d\x18\x2b\x16\x1a\x40\x90\xb1\xd5\x12\x7c\x34\x52\xf7\x17\x3b\x0f\x09\xdf\x65\x14\xd0\x24\x78\xb1\xc1\x54\xc3\xfe\x11\x25\x43\xd0\x56\xbb\x1a\x0c\x13\x44\x90\x94\xcc\xd0\x9c\x1a\xba\x2d\x35\x04\x3e\xd2\x79\x88\x4c\xc3\x98\x7d\x40\xdd\x28\x96\xdf\xa9\x09\xde\x3e\x24\x2b\x1e\x17\xb4\x3e\xfb\xe1\xb0\xd7\xfa\x60\x10\x02\x6c\x85\x6e\x58\xc6\x52\x19\x17\xba\x08\xb7\x0a\x4b\x47\xf8\x8a\x00\x16\x34\x0f\x09\xb2\x71\x96\x93\xbc\xee\xed\xcd\x6e\x44\x84\x3e\xb1\x53\x49\x22\xa7\x2c\x7e\x6e\x0b\x72\x5c\x36\xc1\xe8\x59\x3b\x3b\x7d\xa9\xa2\x8f\x31\x8b\x4c\x18\xae\x58\x54\x70\xbd\x17\x08\x0e\xdf\x6a\x81\x94\xb4\x8d\x79\x88\x9a\x53\x66\x74\x93\x76\x89\x02\x65\xcf\x55\x8d\x53\x92\xf0\x8d\x40\xf3\xf3\xd8\xe8\x7c\x2d\x4b\x37\xa0\xd7\x9a\x88\xe7\x5a\x3a\xc1\xd1\x8a\xdc\x1b\x47\xc6\x74\x51\x73\x34\xb3\x7c\xfe\xa3\xcc\xfb\x87\xdf\xa5\x8d\x03\x6d\x81\xd6\x14\xb7\xc1\x1a\x50\x1a\xdc\x9d\xf8\x00\x84\x52\xeb\x56\x71\x7b\x94\x64\x66\xf4\xba\x77\x01\xe8\xce\xbe\xb0\xc6\x5e\x31\xf4\x6e\x31\x04\x77\x08\xe0\x0e\xdf\xf5\x04\xac\x7f\x02\xa2\x1f\x3d\x13\x11\xdb\x00\x25\x89\x11\x7b\x82\x12\xaf\x7e\x58\x16\x7f\x91\x24\x3e\x2c\x35\xb6\x37\x90\x39\xb1\xd5\xa5\x0b\x84\xc4\x16\x57\x16\x93\x71\xcb\x84\xfb\x9f\xd7\x17\x2d\x35\xd5\x19\x57\x82\x7f\x03\x4b\x4a\xed\x79\x87\xc7\xc8\xa1\xb5\xef\xbe\xd5\x7e\x7c\x3f\x31\x30\xa0\x95\x2f\xb7\x81\xf7\x5e\xe9\xc4\x65\x47\x7a\xcb\x15\x53\x90\xa9\x13\x95\xb6\xb4\xa4\x46\xc9\xa2\x60\x0a\x8e\xc0\x39\x35\x16\x12\xc0\xec\x69\x11\x0c\x03\xec\xde\x8f\xc3\x0f\xef\xe6\x0b\xa6\x36\xc1\x6e\x82\x76\x4d\x35\x76\xba\xf6\x11\xf0\xe0\xbe\xf4\x59\x7d\xcb\xe0\xe9\x4f\xf2\x7e\xf4\xce\xc0\x03\x31\xc7\xcd\x3f\x8a\x90\x13\x5d\x66\x64\x6a\x41\xe5\x9a\x30\x41\xc7\x85\x55\x47\x22\x04\x0e\x70\x2e\x48\xa7\x46\x46\x4f\x9d\xb3\x49\xff\xad\x03\x1f\x66\x3c\xe5\x7a\x6b\xa3\x78\xdb\xfa\xe1\xa8\xc9\x85\x75\xb6\x99\x04\x0d\x81\xfd\x70\x58\xd7\x5a\xa2\x9d\x1f\xb5\x00\x4d\xdc\x6d\x66\xe9\x1b\xf4\x85\x29\x59\x36\x41\xba\x7c\x02\xe8\x17\xc2\x3b\xfa\x07\xda\xd3\xf4\xb2\x13\xe2\x48\x97\x96\x00\x59\xbe\x90\x12\x96\x22\xbe\x3b\x35\xdf\x21\xe8\xb6\x03\xf8\xbc\x09\x78\x0a\x7f\x78\x9d\x22\xc4\x3b\x8f\x99\xa5\xce\x4d\xf3\xa9\xfe\xf7\x82\xe0\xdd\x88\xd7\x5f\x92\x3a\xd8\x90\xb9\xef\xb8\xc8\x43\x12\xa7\x2f\x0a\x6b\x05\xb4\x83\xb3\x13\x84\x3a\x0d\x4c\xdf\x02\x4f\x98\x3b\x85\xd7\xcc\xb8\xca\x87\x15\x55\x66\x8e\xae\xad\x41\x0b\xe2\x50\xcf\x31\xc1\xd2\x49\x23\xed\xed\x65\x4a\x8e\x72\x70\x04\x3e\x2c\xd1\xc5\xcd\xde\x8b\x21\xdb\xb6\x23\x7d\xab\x44\xfa\xd1\xda\x91\xd3\xa6\x1d\x5a\x70\xe2\xbc\x90\x1d\x79\xaa\x8c\x71\xd2\xe6\x66\xdb\x2b\x6b\x5b\x56\xab\xdb\xb9\x4b\x28\xfa\x82\xbd\xc2\xb9\x21\x65\x5c\x36\x2c\x68\x99\x60\xe5\xb7\x33\x0d\x08\x9f\x58\xa1\x4d\x8a\x21\x44\x3e\xf6\x06\xaf\x09\x7b\x72\x9a\xee\xc8\xa5\x37\xa3\x05\x1e\x08\x53\x04\x65\xb4\x74\x43\x07\xc9\x9e\x90\xdd\x0d\xf4\x7e\x00\x6d\xc5\xb5\xf6\x31\xa3\xfd\x9e\x48\x92\x71\xff\x16\x56\xa4\x91\x3c\x63\xd3\x7d\xc4\x0b\xbc\x48\xcc\x45\x6e\x2f\x15\x88\x48\x60\xd4\xd7\x75\x96\x31\x16\x5c\x86\x8e\x2c\xf5\x57\x69\x5b\xbc\xc7\x6d\x79\x49\x4d\x36\x63\x9a\x68\x09\xbd\x8e\xb5\xa1\x45\xc1\xf2\x10\xea\x84\x88\x22\x41\xab\x70\x61\x50\xbd\xe1\x88\x94\x95\xfe\x5b\x1c\x39\x46\x9c\xd7\xb5\x2a\xa8\x73\x2a\x4d\x6a\x91\x61\xfe\x22\x37\xf3\x10\x65\xb2\xa8\x98\x82\x1d\x5a\x83\xaf\xad\xbf\xea\x33\xc1\x88\x91\xc8\xa6\x1c\x90\x19\x98\xff\x1c\xd9\xfd\x8c\x5e\xb3\x26\xda\xc3\x75\x89\xb4\x5c\x3a\x94\xba\x4d\x80\xeb\x51\xa9\xdc\x01\x6a\x08\xb1\xc0\x2e\x76\xe3\x60\x70\x2e\x52\xab\x32\xf1\x3e\xec\x45\x9b\x7e\x47\xc5\xd9\x0f\xaa\x8d\x66\x26\x14\xf1\xee\x2f\xf1\x12\x17\x3f\x4f\x6b\x23\x4b\x6a\x78\x06\x2e\x3a\x3e\x89\x82\xc4\x4a\x0c\xbc\xb0\x94\xc6\x07\xc2\xa3\x88\x04\x82\x9b\x3b\xb7\x44\x64\x60\xb9\xb2\xf4\x04\x1b\x1f\xed\xb5\x3b\xe5\xf6\xb6\xfa\x6d\x89\x44\xcf\x44\xef\x79\xe9\x2b\x22\x13\x33\x53\x8c\x11\x5e\x56\x52\x19\x2a\x0c\xc9\xf9\x24\xd4\xe8\xf6\x11\x86\xab\x70\x22\x85\x3d\xe8\x47\x88\xab\x8d\x56\x41\x87\x69\x51\xc8\x1b\x4d\xcc\x8d\x0c\x2e\x87\x26\xbe\xcb\xd5\x3c\x1e\xb4\x81\x49\x20\xe3\xb8\x55\x2d\xab\xb3\x78\x15\xf1\xa1\x81\xa5\x3d\x37\xac\x28\xec\xbf\xab\xb8\x51\xef\x3a\x26\x4b\xf7\x84\x4f\x05\x96\xa1\xe5\xda\x3b\xbf\x5c\x0d\x95\xbd\x5c\xc9\xaa\x72\xc1\x0f\xe5\x7e\xfa\x3d\x81\xe0\x75\x75\xcd\x34\x24\x99\xf8\xba\x2e\x16\x15\xa6\x4c\x30\x45\x0d\x84\xd7\xb9\x7e\xae\x20\x92\x2c\x02\xd9\xd7\xe9\x83\x23\xa1\x5d\xe4\x01\xa4\xc3\xd0\xcb\xe5\x48\xe6\x9f\x71\xdf\x26\x78\x2f\x2e\x10\xdf\x3c\xdd\x49\x80\x40\x7b\xdf\x30\x43\xf7\xc9\xf7\x1a\xd1\x22\x70\xde\x50\x87\x67\x2d\x2b\x9b\xab\xb7\x8e\x86\xb6\x04\x40\x1d\x14\xd5\x2c\x82\x2a\xb6\x4b\x85\x12\x72\xed\xbd\x6e\xc1\x7b\xa8\xa4\xd6\xa7\xfe\x27\xcf\x08\xfa\xab\xcd\xea\x81\xf1\x6a\xb3\x7a\xb5\x59\xbd\xda\xac\x60\xbc\xda\xac\x16\xc7\xe7\x62\xb3\x22\x0d\xbb\xda\x56\xda\x74\x1a\xab\x2e\x6d\x06\xfb\xc4\xfb\x4c\xc8\xa9\x34\x2e\xc4\x18\x34\x58\x7a\xaf\xd3\x89\x02\x87\xbe\xa1\xf3\x91\x60\xc6\x75\x32\xf1\xfe\xdd\x73\x0f\xd3\x5f\x95\xd5\x46\x9c\xe9\x23\xa2\x1b\x9e\x90\xf9\xf6\x36\xd1\x2a\x46\xa2\x68\xd6\x44\x3c\xc3\xe7\xbb\xda\xc5\xb5\xda\xef\xa1\x64\x61\x3c\x41\xc6\x46\xe4\xc2\xe5\xba\x2c\x2c\x7e\xb7\xc9\x42\xce\x0c\xe5\x7d\x7a\x37\xc5\xc3\x4b\x43\x97\xf7\x48\x67\x1b\x93\x76\x48\xca\x6b\x13\x8a\x2e\x6d\x9b\x29\xb6\x29\xe2\x16\x65\xe7\xc6\x39\xfd\xcd\x03\x4f\x15\xe1\x73\x32\x21\xe7\x2c\x93\xd7\x4c\xe1\xe9\x1e\xdf\x56\x54\x68\x2e\xc5\xb7\x94\x17\xf6\x6c\xfd\x19\x37\xde\x6e\x52\x6b\xa6\xda\x21\x90\x51\x88\x46\xb8\xe0\x0e\x91\x2c\xf6\xf6\x57\x50\x42\x77\x13\xbb\x9e\xcb\xa0\xab\x14\xbb\xe6\xb2\xd6\xbe\xf2\x41\x6d\x50\xd2\xd0\xc6\x59\x88\x66\x7c\x3a\xf3\x0f\xfb\x8c\x55\x88\xba\x56\x79\xb8\xc4\xbd\x21\xd3\x86\x9a\x5a\xb7\xcb\x4f\x67\x10\x78\xb8\x45\xd1\x57\x01\x8f\xb6\x47\x09\x49\x29\xae\x63\x05\x8a\x6d\x65\x88\x1f\xb0\x3e\x06\x4e\x3d\x76\x77\xd9\x97\xfa\x68\xca\x9a\x64\xb2\xac\x6a\xc3\xa2\x3b\xef\x6e\x57\x1a\x52\xff\x48\x64\x6a\xf5\x7f\x7a\x53\x52\x41\xa7\x6c\x18\x40\x1b\x36\x55\x3e\xde\x24\xa3\xf4\x49\xd0\x8a\x24\x6f\xfe\x13\x8f\x17\x57\x9d\xa3\x3d\x92\xd5\xd9\x23\x4f\x52\x6b\x8f\xa4\xaf\xb7\x47\x9e\xbe\xe6\x1e\x09\x25\x50\xb7\x95\x00\x9d\x3b\xf8\x16\x49\x90\x13\x32\x56\x91\xa0\x94\xaa\xb2\x13\x36\x1c\x2c\x5c\x13\x59\x72\x63\x98\x4f\x47\x0c\x24\x65\x40\xb8\x69\x55\xc7\x74\x04\x14\x1c\x9c\x98\x3d\xc8\x6e\xab\x82\x67\xdc\x44\xed\xeb\x3a\x16\x90\x58\x1c\x60\x40\xb8\xe1\x1a\x45\x79\x41\x78\x59\x15\x2c\x48\xe0\x43\x57\x5d\xc8\x3b\xe1\xc2\xdb\x64\x90\x9b\x42\xd8\x2d\xb8\x62\x11\xe0\x57\xba\xfd\xc8\xf1\x4a\xb7\xef\x19\xaf\x74\x3b\x39\xdd\xc6\xda\xa5\xfd\x4b\x01\xb7\xe8\xb5\x9f\xd4\x75\x5f\xa2\x63\x56\x90\x5f\x6a\xa6\xe6\xc4\x2a\x58\x4d\x5d\x10\x69\x89\x9d\xe6\x39\xd6\xaf\xf0\x31\x1d\x5b\xe4\x21\x48\x29\x9c\x43\xcc\xc8\xf1\xad\xd5\x6f\xa1\x2b\x45\x72\x2e\xb9\xb8\x40\xbb\xf7\x15\x9e\x42\x38\x99\x58\x2b\xc5\x44\xaa\xf8\x13\x50\x31\x0f\x4e\x8f\x52\x1a\x30\x52\xa4\xa9\x90\x74\xa9\x2a\xe4\x89\x84\x0c\x42\x0e\x56\xec\x35\x9e\x49\xf8\x06\xf8\x78\x48\x6b\x0a\xde\x5c\x72\xc5\xe6\x03\x97\xea\x49\x2c\x06\x52\xff\x70\x22\x10\x31\x7b\x1e\xc5\x9f\x2b\x86\x71\x1c\xfd\x7a\x95\xb6\x47\x62\x86\x98\xd2\x55\x87\x63\x68\x5f\x3b\xd9\x5c\xfe\x88\xd2\xf0\xe8\xc4\x3c\x9f\xd8\x57\x4d\x35\xd5\xc2\x9d\xb1\xb8\xe3\xac\xdb\x88\xf3\xf6\x83\x50\x8d\x32\xa0\x39\x54\x0a\x05\x82\x9f\x06\xbd\x48\x6a\x67\x02\x0e\x7f\x8c\x4f\xb4\x59\xc9\x08\x0c\x89\x60\x6d\xd7\x33\xbc\x62\xf3\x5d\xed\xda\x90\x48\xa1\x67\xbc\x02\xf1\x1d\x82\x99\xe4\x24\xe9\x15\xc7\xf1\x03\xa4\xc3\x7a\x60\x90\x6f\x9c\x88\x01\x39\x95\xc6\xfe\x73\x0c\xc5\x29\x80\xbc\x1c\x49\xa6\x4f\xa5\x81\x4f\xb6\x1a\x0b\x70\x93\x5e\x02\x0e\xb8\x98\x23\x0e\x11\x3f\xc0\x5e\xb1\x7e\x35\xd4\x2a\x74\x67\xed\xb3\x8e\x02\xbe\x70\x4d\x4e\x04\x91\xca\x1d\x51\x42\x70\xc0\x34\x8f\x20\x21\x30\xde\xdf\xdd\x04\x05\x2e\x83\xc6\xe1\x88\x54\x2d\x14\x79\x16\xc0\x1c\x50\xe0\xf5\xc1\x6f\xc0\xbb\x05\xb1\xb0\xbe\x74\x01\x14\xbd\x52\xd4\xb0\x69\x82\x20\xde\x66\x94\x4c\x4d\xa1\x4f\x50\x36\x4b\x7d\x1b\x52\x09\x5a\x38\x12\x8a\x5b\x38\x9e\xe0\xca\x3e\x69\xb6\xf0\xb3\x2c\x00\xb2\xfb\x07\x28\xf1\xb1\xad\xd6\xb3\x08\x44\x94\x62\x4b\x5a\x59\x7a\xf3\x5f\x56\x58\x85\xeb\xf5\xdf\xa4\xa2\x5c\xe9\x11\x39\x20\x9a\x8b\x69\xc1\x5a\xdf\x39\x67\x71\x34\x4d\x22\xb0\x20\x96\xc5\xca\x87\xd7\xb4\x60\x58\xa7\x89\x0a\xc2\xd0\x5c\x05\xf5\xb9\x17\x14\xa3\x01\xb9\x99\x49\x8d\x92\x6f\x48\x31\xd8\xb9\x62\xf3\x9d\x41\x12\x57\x18\x89\xf9\xb3\x9d\xfa\x44\xec\x34\x8d\xe0\x5a\x94\x28\xc8\xfe\x10\xf1\xb8\x03\xdf\xed\x3c\x8f\x3e\xf6\x02\xcc\x55\x2f\x22\xc9\xc9\xb9\x1b\x0f\x0b\x8a\x21\x02\xdb\xe6\x5c\x5f\x84\x6f\x31\xe2\x07\x2a\xdd\x47\xcf\x34\xe1\x1d\xae\xca\xd9\xd6\x79\x71\xa1\x6e\x71\xa2\xe2\x19\x09\x90\x0b\xc1\x3a\x30\x46\xf1\x71\x6d\x98\xde\x5a\x4c\xb8\x17\xd0\xa8\xac\x5b\xe8\x9f\x6a\x4f\xfe\x87\x65\x3f\x88\x2a\xe0\x71\x9d\x0a\x39\x4e\x26\x8b\xb1\x93\x51\x49\xdd\xb8\x2e\x82\x54\xae\xc2\xde\x9d\x2c\x3c\xfb\x37\x0d\xa0\xba\x1a\xea\xfd\xc3\xa9\x9a\x60\x4d\xc5\x74\x25\x31\xeb\x6c\xe9\xc6\x38\x41\x72\x46\x35\x44\xdd\x4f\x5c\x50\x54\x55\xab\x4a\x42\x2d\x74\x2a\xee\x5c\xc6\x24\x75\x23\x5c\x91\x10\x5f\x84\x09\x0b\xce\x85\x9b\x6b\xef\x7b\xe8\x7f\x79\xb0\xd0\xf9\x05\x43\x46\xa2\x2e\x12\x42\x2e\x7f\xb9\xde\x70\xfa\x74\x25\xb4\x05\x84\x9a\xf7\x08\x22\x56\x17\xdc\xc5\x20\xda\x28\x98\xc6\x6a\xb6\x26\x8e\x99\x37\xb2\x0d\x3f\x94\x42\xc4\x96\x17\xbd\x5b\xa8\x12\xc4\xc3\x5a\x34\x61\xbb\x9e\x67\x2f\x4f\x31\x81\x3e\x1b\x63\x59\x0b\x87\xb2\xbe\x43\xc7\xd3\x6e\xa0\xdd\x11\x5f\x7f\x32\x80\xe5\x2e\x42\x54\xb6\x84\x4f\xec\xbe\xb8\xea\x90\x29\xf6\xa5\x15\x51\x0d\x11\x7b\x0a\x0f\x69\x3c\x5f\x4e\x59\x48\x2e\x19\x9e\x28\x40\x31\xc0\x73\x5c\xbe\x95\xee\xe5\xfa\x33\x3b\xcc\xda\xa2\xe4\x8c\xe1\x4d\xd5\x86\x1a\x06\xe9\x42\x8a\x4d\x0a\xac\x49\xe7\x76\xaf\x94\x39\x9f\xb8\xac\x8b\x8b\x28\x7a\x69\x80\x05\x4a\x5d\x1d\xd1\xb8\x09\x69\x6f\xf0\x52\x1d\x47\xaf\xde\x2c\xc3\x86\x4a\x0e\x81\x95\xb2\x04\x4e\xd0\xb5\x92\x5c\x96\xf3\x93\xfb\xa3\x27\xc9\x9e\x9c\x4c\xec\x71\xf9\xfe\x54\x69\x5c\x43\xc9\x78\xfe\xc7\xde\x3d\xd1\x9f\x8a\xc9\x43\x6b\x6d\xdf\x46\xa4\xd5\xde\xac\xc9\x2b\x7f\x22\x39\xef\x07\x60\x29\x72\x42\xbe\xe5\x05\xd3\x73\x6d\x30\x61\x94\x97\x48\xf7\x31\xa5\x56\x1a\xc2\x45\x56\xd4\x2e\x00\x11\xb9\x80\xa5\xbb\x5b\x76\xc2\xc9\xc5\xb8\x66\x5a\x2f\x87\xfb\x4c\xf6\x3b\xa5\x7e\x17\x29\x25\xa4\x39\x87\xeb\x95\xe4\xb4\x7a\xed\xd6\xa4\x53\x29\xcc\xd6\x6e\x4c\xb2\xb6\xfd\xfa\x5b\x3e\x56\x8c\x1c\xce\xa8\x10\xac\x88\x7a\x6c\xba\x70\x17\x6a\x0c\xcd\x66\xc8\x75\x28\xb1\x14\xaf\x60\x56\x6a\x98\x49\x6d\x48\x49\xb3\x19\x17\xa1\x39\x97\x08\xbd\x66\x9b\xca\xc9\x2f\xb0\x39\xc0\x44\x5f\x5a\x00\x3a\x9e\x73\x2a\xe2\x82\x50\x78\x8c\x9d\x34\x17\x1b\xa8\x8a\x91\x04\x42\xa7\x12\x34\x26\xbc\x33\x77\xe8\x9b\xed\xa9\x14\x9c\x35\x5a\x57\x80\xbf\xc3\xb3\xdd\x57\x3e\xbe\x1d\x91\x1d\x76\x6b\xbe\xde\x19\x90\x9d\xdb\x89\xb6\xff\x08\x33\xd1\x3b\x23\x72\x52\x86\xe0\x2a\x2e\x22\x71\x87\xb9\x1f\x58\x11\x2b\x12\x16\xfb\x95\x5e\xee\x41\xb1\x8a\x5a\x24\xc1\x8f\xdd\xa2\x16\xf6\x88\x3f\xb9\xf6\xd5\xef\xc9\xb7\x87\xc4\x50\x35\x65\xc6\xae\x41\x44\x5d\x8e\x99\xea\xda\xe6\x36\x45\xb0\x0d\x76\x29\x81\x59\xbe\xfa\xb2\xd3\x1c\x8a\xd1\xfc\x93\x28\x3a\xfb\x43\x53\x5d\x28\x0f\x47\x7b\xbf\x8f\xa2\x60\xbf\x09\x2d\x34\x23\x7b\xf6\xc1\x37\x37\x8a\x1b\xb6\x3f\x22\xe7\xfe\x57\x50\x32\x00\x64\xe6\x89\xec\x23\x97\x62\xa6\x8d\x9b\x54\x33\x83\x75\x9e\x85\x13\xd4\x3e\xda\x4b\xdd\x59\x5a\xc5\x03\x1f\x4b\x59\xb0\x8e\x65\xf0\x11\xf7\x7e\xfc\xf1\xb4\xb3\x39\xb1\x8d\xdf\xcd\x7c\xf7\xa1\xf9\x8d\x54\x45\x7e\xc3\x73\x97\xac\x45\xf6\xec\xc3\xfb\xfd\x50\xbe\x8f\x3b\xa6\xa7\xf3\x25\x75\x2b\xc0\x34\x7e\x8f\x9b\x1b\x9e\xa7\x39\xd1\x1e\x17\x10\x80\x68\xe3\x80\x37\x26\x59\x1c\x20\x80\x04\x3c\x67\xc2\x58\xe2\xae\x34\xd9\x83\x5f\x74\xaf\x3d\x7a\xcc\xb1\x57\x0c\xac\x2b\x15\xc9\x64\x39\xe6\xa2\x69\xe5\xd4\xe0\xa6\x15\x60\x2c\xbd\xf5\x5e\x4a\xcd\x0c\xf6\x5f\x80\x4a\x90\xd2\xcc\x88\xe6\x65\x5d\x18\x2a\x98\xac\x75\xd1\xb9\x04\xc9\x2b\x7a\xde\x19\x93\x82\xdd\x22\xed\xdb\x54\xa3\xca\x06\x82\xb6\x64\x0c\xd5\x3d\x9a\x6e\x7a\x8b\xa2\x71\xa7\xb5\x9a\x92\x52\xf9\x9b\x20\x5a\x87\xde\x30\xec\x96\x65\xae\xf2\x6c\x55\xd4\x53\xde\xb1\xfa\xfe\x91\x7d\x8b\x8c\x1a\x96\xbf\x27\xdf\x36\x2f\x07\x75\xcd\xfc\x37\x23\x72\xe8\xe3\x40\xdd\xf2\xe4\xf0\xe2\xe4\xc8\x35\x54\x13\xda\x30\xba\x09\xd9\xbd\x5f\xd0\xd9\xd0\x99\xaf\x37\xa0\x34\xe0\xc2\x49\x48\x6c\xd3\xd5\x6e\xd1\x67\xe4\xbe\x71\xdd\xca\x43\xd7\xe9\x7e\x0d\xc0\x7a\x93\x84\x57\x7d\x69\x63\xfa\x52\xdc\xa4\x3a\x02\x2b\x67\x15\x13\x96\xe7\x89\xf8\xfe\xe3\x3e\x6f\x0c\x4d\x24\x9c\x71\x22\xb9\xd2\x4d\xd6\x16\x2a\x23\x1b\xe8\x4c\x16\xb9\x26\xec\xd6\x28\x6a\xd9\x7e\x69\x19\x7c\xf8\xcd\x84\x50\x31\x1f\xf5\x13\x31\x7b\xb9\xf2\xd3\xba\xef\x7b\x9f\xcc\x76\x6b\x68\xf9\xab\x86\x16\x0f\xcd\x32\xc5\x4c\x8f\xd2\x73\xa9\x4e\x2b\x00\xd2\x3e\xae\xd6\xc7\x77\x0c\xac\xf8\xad\x2f\x6c\xe1\x42\x71\xfa\xd8\x8d\x35\x13\x9a\x1b\x7e\xdd\xea\xa8\x0a\xa5\x63\xa9\xd6\xc1\x0e\x09\xc2\x94\x23\x80\xba\x55\xd5\xb5\xf3\xc2\xe8\x13\xe5\x13\x22\xe4\xc2\x5b\xc5\xe5\x3e\x42\xf8\x65\xeb\x91\xce\x8b\x86\xd8\xa5\x12\x9b\x91\x53\x01\x45\x22\x71\xf2\x01\xd4\xa7\xc3\xff\xc6\xf0\x25\xbb\x07\x91\x35\x16\x76\xa1\xfb\x4e\xbb\xdd\xdb\x1c\xd9\x4c\x11\xa6\xdf\xb7\xaa\x4f\x4a\xdf\xd1\x69\x24\xda\xf9\x82\x2e\xfd\xdc\x0b\xed\xee\x7b\x6c\x32\x61\x99\xbd\x1b\xd0\xf1\xcf\xb7\xaf\xb3\x6a\x6d\x5e\xa3\xdb\xcf\x17\x71\x6d\x17\x61\xed\x5b\xae\x30\x8a\x26\x68\x22\x7e\x4f\x84\x36\x14\xea\x6a\xc2\x1b\x5b\x39\xcd\x0a\x4f\xae\x67\xa3\xbb\x4e\x18\x1b\xe1\xab\x73\xf6\x04\xa2\xb4\x62\x58\xc6\x94\xbd\x31\xc5\x9c\xdc\x28\xd9\x37\xd1\xed\x91\x3e\x60\x79\xcd\xd4\x35\x67\x37\x6f\x5c\x95\x9f\xa1\x7d\xd9\xa1\x2b\x9c\xf8\x06\xcc\x5d\x6f\x7e\x03\xff\xf4\x80\x2a\x91\xf7\xcd\x71\xd9\xf7\x64\x67\x27\x85\x5d\xa0\x77\xb8\xdf\x04\x1a\x97\x76\x52\xa8\xd2\xd8\x04\x60\xf9\x05\x57\x99\xfb\xd0\x19\x04\xd6\x71\x8d\x39\x5e\x13\x09\xe4\xf6\xb2\xfb\x89\x5c\xec\x08\xd1\x16\x4f\x9a\xc2\x54\xb5\x10\x9d\x73\x32\xdb\xba\x3f\x2e\xd3\x52\xfc\x43\x80\x0d\x17\x43\xa3\x18\x0b\xaf\x6a\x9c\xfa\x24\xa4\x6f\x16\x1f\x14\x9b\x17\xe8\xc4\xcb\xa9\xa1\x9a\x99\x3e\xce\xe4\x54\xa4\x3e\x02\xc5\xee\x6f\x4c\xf5\xdd\x57\x10\xa3\xc6\xa0\xba\xb7\xef\x87\x49\x86\x7f\x76\xaa\xbf\x68\x3d\x69\x95\x7e\x77\xae\xdd\x39\x39\x56\x71\x82\x0e\x37\x68\x03\xc2\xb5\x1b\x24\xd9\x94\x8e\xe8\xde\xf2\xfb\xef\x4f\x8e\xd2\x98\x52\x9a\xf9\xbc\x65\x00\xfe\xbb\xbd\xfd\xee\x92\x42\x6c\x19\xff\xa5\x8e\x8d\xd0\xf6\xc9\xe6\xe2\xbb\xe7\x37\xb1\x3b\xd3\x8c\x35\xc1\x09\x47\x5c\x5f\x6d\x8a\x32\xde\x01\xa4\x4d\x23\xff\x7a\x78\x4c\xdc\xa7\xab\x22\x09\x3a\x2d\xfd\x3c\xd1\x07\x6d\x1a\xfa\xd7\xc3\xe3\x85\xd7\x5d\x30\xa3\x1e\x14\x85\xb7\xf5\x48\xa1\x43\x21\x54\x47\x5d\x13\x6d\x31\xd0\x66\x2b\xd1\x2b\x96\x73\x85\x21\x75\xfe\x2d\xf3\x51\xa6\x79\x68\x14\x37\xbd\x62\x23\x2e\xa3\x50\xde\x6e\x5b\xd0\x2b\xda\x4d\xff\x66\x9a\xb1\x26\x50\x32\xe7\xfa\xea\xe5\x59\x92\xab\xfc\xb4\x5b\x61\xe0\xcf\x2d\xfc\x64\xd1\xdc\xe9\x68\xa7\x13\x82\xe0\x76\xcf\x65\x4d\x6e\x5c\xbf\xf6\x9e\x66\xd6\x4b\x5e\xbd\x27\xc7\x42\xd7\x8a\x35\x59\xcd\x8b\x20\x58\x0d\xfb\xc9\x8d\xae\xb4\xac\x0a\xa6\xdf\x6f\x38\x54\x65\x2b\xae\x22\x49\xc1\xdb\x2b\xaa\x0c\x58\x3d\x37\x8d\xda\x01\x10\x2f\x12\x44\x1f\x88\xa7\xc4\xed\x93\x89\xaf\x3b\xd5\x0e\x5e\xe7\x3a\x4c\xde\x44\x76\x83\xf4\x97\x02\x7f\xbf\x95\x41\x63\x79\x93\xb3\xeb\x37\x3a\xa7\xef\x06\xf0\x5a\xbe\x6e\x66\x7b\x0f\xa8\x26\x3b\xef\x76\xba\xaf\x7c\xc1\x4b\x5e\x50\x55\x60\x1f\x99\xd0\xa0\x27\xcc\x6f\x39\xa4\x07\x04\x52\xf5\xde\xee\x90\x3d\xa9\x00\xa2\x8c\x0a\x52\x30\xdf\x73\xc6\x51\xd2\x39\x1a\x07\x7a\x44\x22\x6f\xd5\x15\xda\x74\x3c\x16\x32\xb6\x8d\x5f\xc2\xdc\xeb\x43\x4e\xe6\x8e\xfd\x9c\x67\x47\x8d\xf8\xc8\x85\x95\xc1\x46\xe4\x7b\x27\xd9\x39\xd9\x1c\xb1\x36\x07\x81\x0c\x9f\xf8\x3c\xb0\xe3\x73\x72\xe3\x2c\x38\x64\x9e\xd4\xb1\x42\xee\x46\xf2\x7d\x26\x18\xd1\xd5\x59\x34\xe5\xe6\x9c\x55\x72\x63\x7a\x22\x2e\xbf\x10\x52\xc3\x8d\xfd\x40\x6a\x6e\xa4\x9a\x13\x6a\x08\x45\xce\x90\xd5\x05\x55\x44\x31\x0c\x8e\x49\xa0\xb6\xb9\xd5\x17\x94\xb5\x4b\xd9\x44\xe0\xc4\x75\x1f\x9d\x19\x3a\xc0\x37\x70\xdc\xb8\xa3\x8f\xee\xd8\xf2\xab\x23\xae\x2c\x95\x86\xcc\xf8\x13\xc1\xcd\x61\x58\x0c\x4b\x50\x15\x52\xb8\x1c\x1d\xbb\xa2\x8b\xc2\x99\x72\xe3\xda\x12\x23\x00\xf6\x6b\x3f\x5b\x27\x50\x00\x02\xa0\xa9\x32\xdf\xd5\xcd\x1b\xbf\xc0\xd8\x9e\x06\x71\x36\x61\x4f\x04\xb5\x5b\xaa\x8d\x53\xd7\x00\x48\x68\xac\x81\x71\xb4\xcd\xe7\xfd\x04\x47\x88\x73\x11\x32\x38\x67\x89\x54\x44\x1b\xaa\x0c\xde\x91\xdd\xd1\x68\x77\x04\xa2\xec\xee\x68\xd7\x2b\x62\x45\x48\x21\x76\xd2\x5e\x03\x8c\x4f\xa1\xec\x53\xe4\xa1\x4d\x35\x46\x84\x7c\xf2\x95\x52\xa1\x05\xe8\x42\x16\x73\x48\x50\x2e\x8a\xf0\x0e\xd0\xa8\xa6\x4d\x7b\x7a\x78\x42\xc1\x9f\x5b\x8f\xe3\x97\x74\xc9\xd0\x53\x7e\xed\x3a\xe8\x6d\x2c\xcc\xa6\x79\xc5\x24\x98\x1a\xef\x98\x33\xa0\x9e\x7f\xd8\xdc\xbb\x21\xe9\x4e\xf4\x66\x8e\x0f\xb8\xf7\xca\x64\x59\x72\x43\x66\x54\xcf\x82\x15\xaf\x49\x4b\xee\xc7\x9a\xfa\x1a\x7f\x8b\x5a\x1b\xa6\x26\x9d\x68\x57\x12\x66\xee\x01\x58\x30\xf6\x86\x8f\x5d\x1d\x67\xd1\x98\x62\x80\xc9\xe9\x19\x55\xcc\x3e\x59\x01\xf7\x29\xf8\x84\x19\xde\xf5\x72\xb4\xf8\x7b\x58\x79\xb5\x73\xab\x01\x3c\xb1\x7b\x6b\xa9\x90\xc8\x9c\xd2\xed\xdb\xb9\x38\x81\xf0\x4d\x80\xe2\xcd\xf9\xf1\xc1\xd1\xc7\xe3\x51\xd9\xc5\xc3\xb2\x61\xf6\xcb\x44\x5e\x49\xde\xb5\xa3\xc6\x90\x54\xd4\x74\xe9\x5b\xdb\x97\x71\x07\xb0\x37\xcd\xb8\x03\x20\x9e\xe0\xf8\x0f\x50\xf5\x85\xfb\xe2\x3a\xec\x44\xe8\x6d\x64\x25\x0b\x39\xed\xd1\xf4\xb4\x1f\x9e\xfe\x06\xeb\x58\x0c\xe9\xb0\x92\x1b\x73\x0b\x5a\xd4\xd9\xf4\xf1\x59\x18\xfc\xc9\x35\xc7\x13\xac\x5b\xa6\x47\x4d\xb9\xcf\xe0\x84\x5e\x84\xed\xe1\xce\xb1\xa1\xbd\x1e\x78\x17\xcb\x51\x8a\xb3\x13\x0c\xa1\x32\x58\xc5\x54\xc9\xb1\x7a\xd9\xb6\x1a\x25\x36\x82\x25\x5d\xed\x11\x56\x2a\x38\xeb\x78\x91\x53\xa0\x87\x5f\xbf\x2d\xc2\x54\x8a\x0d\xa1\x44\x88\xd5\xbe\x27\xbc\x80\x72\x47\x8d\x64\x1f\x49\x34\x9d\x16\xf5\x3e\x6a\xef\x04\xc7\x99\x8b\xf9\xa2\xaf\xba\xd1\xcb\x43\x2c\x02\x36\x17\x2e\x8a\x6e\x99\x62\x50\x31\xca\x8a\xb1\xce\x6f\x46\xa7\xf0\xc2\x52\xb9\x3e\x95\x95\xe2\xd7\xbc\x60\x53\x0b\xc2\x8c\x8b\xa9\x6e\xfa\x5c\xb9\xf0\xbd\x4e\xcb\x42\x25\x2b\xd6\x48\x81\x21\x0c\xea\x23\x04\xe3\x85\x16\x10\x78\x35\x4f\x3f\x5d\x12\xc1\x10\x84\x8e\x97\xac\xa7\xa9\xce\x02\xd9\x51\x30\xd9\xb4\x7f\x7a\x33\xe2\xd4\xd6\xb0\x62\x1f\xc2\xb3\xec\xaa\xf6\x72\xd1\xa1\x37\x0c\x99\x3d\x25\x7a\x5e\x16\x5c\x5c\x41\x63\x18\xc7\x4e\x5c\x93\x45\x46\xec\x17\xfe\x02\x2b\x46\x8b\xf4\x62\xc0\x33\xa1\x32\x49\x21\x02\x98\x2d\x88\x5a\x00\x25\xcf\x52\xbd\xbf\x79\x62\x8f\xbe\x85\x24\xfc\xbb\x73\x64\xec\x8b\x3e\x5a\x5e\xd2\xe9\xc6\x52\x73\x61\xf1\x16\xc3\x16\xe4\xd3\xe1\x89\xcf\xb4\xd8\x8b\x4d\xf8\xf8\xac\x54\x84\x2a\xc3\x27\x34\x33\xfb\xa4\xaa\x8b\xc2\x19\x05\xbc\x90\xe7\xa8\xc4\x3d\xd1\xba\x9d\x80\xbc\x6c\x8c\x8e\x90\xf2\xa2\x65\x71\x6d\x57\x35\xa4\x92\x39\xda\x4e\xeb\xca\x85\x00\x63\x01\x3d\x72\x33\xe3\xd9\x8c\x9c\xd5\x45\x71\x26\x0b\x9e\xf9\xc0\x77\xae\xd1\x3d\x91\x5b\xb6\xd0\x91\x2f\x1c\x14\x37\x74\xae\xdf\xc7\x6f\x49\x28\x7c\x46\xa8\x31\xac\xac\x10\x99\xed\xd6\x2c\x36\x82\x6d\x3c\x14\x20\x2c\x72\x0b\x28\x90\x3c\xca\x8b\x40\x19\x6b\xf7\x41\x47\x7e\x3d\x24\xa7\xec\x9a\xa9\x36\x7c\xc2\x7e\x04\x53\xeb\x36\x4c\x70\x74\x20\x8d\xd7\x1a\xec\x48\x85\xcc\x68\x71\xf7\xa8\x1f\x80\x9d\x4f\x16\xa6\xe5\x5a\xec\x1a\xe2\xb0\xaa\xeb\x8b\x9c\x4c\x4e\xa5\x39\xc3\x39\xda\xef\x83\x6f\x72\xcf\xaa\xb4\xb0\x3a\xc6\xdc\xaf\x6e\xd1\x21\xe7\xfa\xaa\xd7\x2b\x04\xbb\x57\x7c\x3c\x7d\x91\x79\xca\x8c\x45\xe7\x61\xc0\x68\x07\x83\xc5\x6a\xf8\x2e\xb7\x2f\xeb\xee\x97\x62\xae\xe0\xe5\xc0\x21\x77\x5c\xe0\x92\xdd\x10\xc5\x4a\x69\x50\xce\xb5\xf0\x3a\xb7\x40\x26\x4b\x46\xe8\x35\xe5\x05\x1d\x17\x10\xeb\x6c\x27\x77\x73\x75\xb6\xb6\x1e\xc0\x0e\x40\x04\x99\xf4\xf7\xd1\x62\x4b\xc0\x79\xc4\x1f\x57\x6c\x3e\xbe\xa4\x08\x56\x21\xb3\xab\x58\x56\x9d\x28\x59\xe2\x23\x98\xa7\x9f\x43\xee\x18\xcd\x73\xa2\xf9\x54\xf0\x09\xcf\xa8\x30\xa4\xa0\x86\x89\x6c\x3e\x22\xae\x7d\xad\x0e\xbe\x0f\xc5\x8c\xe2\x21\xcf\x5f\x48\x55\xd2\xc2\x6f\xf2\x98\x66\x57\x72\x32\x81\x59\x9b\xe7\x5d\x68\x9b\x23\x56\xb8\x27\x54\x4b\x81\x8b\x33\xad\xe9\xb4\x07\xb1\x82\xbe\xf4\x56\x80\x72\xa9\x28\x78\x4a\xae\x20\xad\x27\x94\xbe\xda\xac\x4f\x76\x50\xbe\xb8\x5d\x53\xbc\x2e\xe0\xab\xaa\x85\xe1\x96\xfc\xb5\x3a\xd6\x11\xf0\xb1\xde\x09\xd5\xb5\x4b\xb9\xf6\x7f\x50\x6e\xc3\x15\xa5\x83\xe4\xb5\x6b\xe8\x6d\x81\xf0\xdd\x89\xf0\x5b\x24\xf5\x90\xe7\xd4\x7d\x17\x22\x3e\x02\xd8\xec\x5f\x9c\x5b\xa8\x5d\x31\xf5\x46\xba\xdc\x83\x4a\x79\x0d\x52\xfc\xfd\x8b\x7f\x8c\xae\xe3\xb8\x05\xf8\xb9\x15\x39\xf6\x2d\xbc\x25\x53\x53\xac\x1b\xc7\x48\x49\x05\x9f\x30\x6d\x31\x64\x6e\xd1\xc9\xf9\xa3\x34\x2d\x19\xb9\xb1\x88\x84\x51\xc3\x0b\xaf\xd7\x91\xbe\x5e\x2e\x78\xc0\xa2\x13\x6d\x4c\x1b\x7b\x4a\xee\xc3\x59\x40\x9b\x88\x5b\x96\xd5\x06\xee\x1f\xc4\x59\x92\x3d\x21\xed\x67\x1d\xe3\xad\x2e\xea\x31\x8a\xcf\xb0\xec\xc2\xab\x61\x5a\xa2\x90\x26\x3a\xdd\x07\x77\x56\xd7\x63\x3b\x61\x47\x78\x2e\x67\x0e\x53\xb0\xd6\xa1\x66\x59\xad\xb8\x99\x5b\x62\xcb\x6e\xcd\x68\xa2\xff\xaa\x64\x5d\x1d\x42\x21\x5f\xc7\x8c\x67\x14\xdc\x04\x98\x3e\x87\x97\xb0\xb9\x08\x16\x39\x5f\x60\x3e\x4c\x15\x64\x8d\x4d\xcb\xe8\x6e\x93\x27\x8e\x20\xdb\x5b\xd2\x5c\x45\x3d\x22\x67\x52\x6b\x6e\xb1\x31\x54\xed\xef\x91\xb0\xb9\xe5\xd2\x90\x1d\x9f\x89\x3c\x44\x40\x7b\xde\x6e\x89\xa8\xeb\x7b\xc5\x5a\x20\x62\x94\x5d\xfd\x3d\x34\x74\x33\xc4\xd0\x69\x2b\xe7\x7b\x60\x4f\x22\xde\x8a\xa6\xb3\xeb\x06\xa3\x02\xdc\x2e\x6d\xfa\xf6\x9f\x7b\xb3\x17\x39\x59\x44\xda\x76\xb5\x00\x57\x1b\xbf\xfb\xa1\x7d\xc3\x66\xf4\x9a\x2d\x65\xb7\x95\xcc\x47\x4b\xb8\x0e\x5c\xa3\xee\x0b\x5a\x75\x2e\xa4\xdf\x87\xda\xeb\x5a\xb3\x12\x0a\x2b\xdf\xc3\xf6\x97\x49\x36\xe3\x39\x29\xa4\x84\xc2\xb3\x75\x45\x84\xcc\x99\xbd\x00\x10\xf8\x4a\x0b\x3d\x20\x17\x07\xee\xc1\x2a\x5a\x12\xdb\x9d\x80\x34\x5b\xb1\x6c\xc9\x03\xcf\x66\x99\x8a\x3a\xfd\xa2\x28\xd3\x3d\x1b\xa4\x95\xcf\x2e\x5d\x91\x09\xc8\x20\x03\x2b\xdc\x8c\x4f\x67\x4c\x91\x82\x5d\x33\x08\xf6\x99\xf0\x29\xc1\xc6\xc3\xa5\x6b\x4b\xe3\x63\xec\xa5\x82\x46\xa8\x8a\xe7\xdd\x8d\x41\x8b\x12\x9a\x3d\xd2\x1b\xa9\xae\x0a\x49\xf3\xa8\x0e\xbc\x26\x05\xbf\x62\xe4\x88\x55\x85\x9c\xbb\x5e\x32\x22\x27\x17\x86\x1a\x36\xa9\x8b\x8b\x1e\x47\xd1\xcf\x92\xa3\x33\xcd\x37\x66\xc9\xb1\x8b\x2f\x58\x72\x4e\x2e\x0e\x2f\x4e\x5e\x7c\xb6\xe0\x23\xfc\x72\xb0\x09\x2f\x39\x06\x84\xff\xd2\x2d\x6a\x6e\x48\x8a\xba\xeb\x2f\x31\xbe\xf1\x4c\x2a\x43\x8b\x0d\x08\xce\xd9\x8c\x56\x07\xb5\x99\x1d\x71\x9d\x59\x0a\x92\x46\x7e\xbe\x33\x6b\x54\x39\x9e\x81\x83\xce\x29\x48\x84\xfb\x4b\xe2\x9e\x3b\xfc\xdb\xc1\x19\xa1\xb5\x45\x61\xc3\x33\x10\x8a\x36\xe2\xce\x25\xd1\xde\x5c\x60\x97\xaf\xa4\x3b\xe3\xe6\x7c\x60\x5f\xfc\x53\xdb\xb4\x2b\xdb\x96\xc0\xb9\x2c\x83\xf2\x35\x89\xf3\x45\x25\x71\x02\xe3\xd8\x94\xee\xc0\x05\x37\x9c\x1a\xa9\xb6\x21\x6f\xac\x05\x4c\x08\xdd\xad\xb5\x91\xa5\x23\x09\x27\xfe\x09\xa8\xb4\xd1\xcb\x15\x7c\x67\xb1\x26\x1e\x18\x82\x85\xe0\x58\x4e\x84\x61\x6a\x42\x33\xb6\x50\x23\x78\x00\x76\x6f\x84\x89\xfb\x67\x3a\x43\xf3\x27\x17\xe6\x5f\x01\x1f\xfc\xf3\xfb\x3f\x45\x59\xa2\x7f\x0e\xda\x86\xb3\xc1\xc7\x8a\x85\x60\x59\x77\x4b\x7a\x0a\xec\xf9\x25\x0d\x5f\xe0\xbf\x88\x85\x8c\x07\xdc\xda\x7f\xab\x69\x81\x47\xd2\xe7\xb8\xfb\xbf\x66\x0b\x15\x36\x7e\x4b\xda\x88\xe9\xf6\x2d\x60\x21\xd6\xa0\x01\xca\x8c\x76\x24\xe1\x36\xd3\x28\x2a\xb4\x45\xb1\x34\xb6\x92\x5d\xa7\x7d\xed\x92\x3d\x93\x55\x9d\x13\x78\x13\x94\xb8\x0a\xe5\xad\xdc\x7f\x74\x9a\x26\x55\xd7\x87\xa2\x16\xb1\x26\x84\x5b\x7f\x89\x48\xfd\x21\x74\x7d\xe8\xb7\x5b\x1b\xcf\x32\x06\x3a\xb5\xf1\xa0\x6b\x07\x46\xb8\x01\xf1\x56\xa3\x4a\x41\x3e\x70\x6d\xb0\x92\x2e\x3e\x0c\x95\xf3\xb0\x72\xbc\xd5\x51\xcf\x88\x54\x84\x57\xff\x41\xf3\x5c\xbd\x47\xc9\xd3\xbb\x41\x55\xf7\x42\x8e\x5c\xbb\x38\x3c\xa8\xe1\xe8\x8d\x14\x7b\x66\x5e\xf1\x8c\x16\xc5\x9c\x5c\x1e\x9e\xc1\x0a\x9a\xfc\xf1\xf7\x6f\x41\x69\xfd\xea\xcb\xdf\xbf\xed\x79\x85\x5e\x0b\xcf\x2f\x8c\x17\x11\xb6\xfc\x02\x52\xa6\xb7\xad\xac\x6d\xab\x08\x2d\xb4\x36\xb5\xfa\xe1\x05\xd6\x60\xb5\xc2\x91\x63\x77\x48\x08\xec\xed\x0a\xa2\x5e\x4a\x2d\xf2\xb5\xda\x69\x34\x5e\xab\x9d\xbe\x56\x3b\x7d\xad\x76\x7a\xff\x88\xed\x9c\x9b\xe6\x47\x31\x2c\xd0\x49\xf2\xae\xdc\x84\x22\xd3\xd9\xe7\x2e\x32\x75\x44\xb5\xae\x84\x37\xc5\x01\xc6\x95\x74\xfa\xb4\x06\x69\x3a\x5e\x1c\x9d\x5e\xfc\xc7\x87\x83\x6f\x8e\x3f\xc0\xae\xba\x82\x3d\xf6\x7a\x73\x91\xdc\x77\xb2\x31\x12\xd3\xef\xbc\x37\x97\x9b\x2d\x16\xb2\xb2\x05\x39\xfd\xf6\xe2\x91\x09\xd9\xcf\x71\x78\x8b\x36\x4d\x31\xe9\x7e\x4a\x2f\x2d\xeb\xc6\xfe\x54\x33\xb5\x99\xd6\x44\x5b\x93\xb2\xe3\x7d\xbb\xec\xb6\x6d\xf5\xb7\xf8\x8a\xbb\xb3\x31\x03\x7b\x37\x64\x24\xff\x32\xa9\xb3\xf6\x88\xf0\xd8\x5e\x7c\xd2\xec\x73\xa2\x45\x3f\x8d\x58\xa5\xea\x28\xd6\xab\xcb\x8b\x8a\x9a\x91\x59\x46\x82\xe2\x85\xb2\x62\x9e\x15\xf0\x98\xd6\x5e\xd8\xf8\xd7\xbd\xc7\xd5\x42\xdf\xf0\xc3\x82\xf2\x72\x53\x02\xc1\x52\x60\xf0\x3f\x2f\x30\xc8\xa6\x95\x01\xdd\x8a\xba\xeb\x16\x6a\xb3\xd8\x36\x1d\x56\x6c\x05\xbc\x81\x50\x56\xd1\xac\xab\x28\xda\x0d\x2b\x9a\x9d\x18\x7a\x04\x69\x3e\xc2\x4f\xa0\xa7\xfb\x0b\x14\x44\x00\xee\x0d\x55\xa8\x0e\x6b\x6f\x9a\x38\x05\x40\x16\x9b\x25\xd2\xc7\xa0\x24\xa1\x3a\xa4\xd9\x60\x8a\x4e\x82\xae\x8a\x5b\x89\xb3\xe4\xb3\x94\x57\x7e\x7c\x66\x73\xf9\x26\x4d\xe5\xd5\x4c\x1a\x29\xb6\xa3\x13\xc4\x32\x58\xda\xac\xe5\x0c\x9e\x38\x0c\x91\xb1\x11\x6b\xc2\xd2\xbd\x21\xca\x73\x21\x45\xd7\xc5\x6e\xa6\xc8\xce\x8d\xab\x86\x9d\x2d\x83\x78\x75\x01\xb1\xa5\x2f\xb9\x5d\xad\x72\xfa\x77\x3a\x38\x39\xda\x00\x17\x79\x09\x61\x72\x9f\x69\xdb\xd8\x67\x0a\x7b\xeb\x5f\xf7\x2b\x4f\xd4\x07\xc8\x4e\xe4\xcf\xf8\xe4\xc8\x19\x22\x7c\x93\x1f\xed\xe8\x02\xb9\x9f\x50\x6d\x44\xa7\x90\xca\xdc\x48\xb5\xe1\xe6\xe8\x6d\x28\x16\x6a\x27\xb9\xef\xee\x34\x44\x7b\x26\x6a\xde\x06\xed\x51\x7d\x79\x16\xdf\xcb\x9e\x54\x27\x80\xee\x69\xca\x73\x9b\x8f\xfc\x0a\xa3\x4c\x96\x51\x3f\x1e\x72\x33\x63\x28\x85\x1e\x5e\x9c\x7c\xe4\x53\x04\xd0\xbf\x0b\x99\x30\x6a\x6a\xc5\x86\x53\x6a\xba\x01\xc4\x35\xe9\x16\xed\xb7\x61\x2e\x84\x38\xf4\xaf\xcc\x89\x2e\x80\x13\x45\x37\x6c\x15\x47\xfa\x1c\x18\xd2\xcb\x61\x44\x5b\xa7\xf3\xbc\x36\xc5\x6e\x0d\x4f\x3c\x92\x9c\x8f\x9f\xcc\x39\x3a\x2d\x6e\x36\xa2\x02\x0d\x6c\xc7\x3d\xb7\x11\xd1\x40\xc9\xff\x04\x7e\xd3\x5b\x2a\x08\x33\x61\x7c\x1f\xb0\x49\x5a\x14\xf6\x64\xa5\x60\x21\x2d\x4f\x37\x49\xa6\x98\x65\x59\xd2\xca\x25\x9c\xe6\xf2\x46\xdc\x50\x95\x93\x83\xb3\x93\xe7\xe7\x3a\xbd\xcb\xfa\xe3\x3d\xfa\x28\xf3\x8d\xd3\xff\x08\x14\x90\x2a\xa0\x74\x88\xfd\x63\xcc\x8d\xc6\x7a\x8e\x50\x5d\xd1\xc4\x4e\x16\x2b\x5e\x85\xa0\x7f\xa8\xde\x31\x0e\xc4\x21\x81\xd2\x22\x88\xcc\x0c\x2d\x5c\xa4\xd2\x98\x99\x1b\xc6\x04\x79\xfb\xf6\x2d\xc6\x57\xbc\xfd\xc3\x1f\xfe\x00\x19\xdc\x24\x67\x19\x2f\xef\x3e\x08\x4f\xfd\xee\xdd\xbb\xee\xa0\xfc\xfb\xc1\xc7\x0f\x84\x66\x60\x23\x23\x63\x69\x66\x0e\x22\x40\xbd\x78\x51\x3d\x20\xff\xe7\xe2\xd3\xa9\x97\x43\xf4\xc2\xb7\x80\xd9\x61\x3b\x7b\xd8\x80\x5c\x45\x18\x0e\xf5\x7d\x9a\x08\x08\x6a\x66\xa1\xb6\x09\x85\x48\xb4\xa8\x86\x8e\xa3\x97\x3d\x12\xaa\xa0\x61\x3d\x9f\xce\xe0\x58\xb8\x80\x5b\x58\xf0\xcc\x35\x65\xc0\xb8\x18\x4c\x8f\xf6\x85\x3c\xb1\x78\x89\x17\x21\x3a\xaf\x6c\xb7\x6c\x80\x09\xcd\xae\x54\xca\x20\xd8\x48\x14\xd3\x75\x61\xa0\x69\xd7\x98\x39\x20\x1a\x8c\xd5\xac\x33\x06\x6e\x47\x08\xbb\x23\x7d\x9b\xa6\x0b\x9e\x02\x3b\xf5\xb5\xe0\x56\x28\x9b\x84\xca\xd3\x48\xc0\xc1\xe1\x4a\x8e\x69\x36\x23\x4c\x18\x68\x6f\x81\xa8\x67\x1f\xef\xbc\xf4\x8c\x8a\xdc\xd2\x14\xcb\x0a\x10\x8c\x17\x1b\x7f\x9e\x2e\x92\xf5\x2c\xec\x78\xab\x6e\x56\xc3\x49\x69\x21\xc5\x34\xbe\x98\x8d\x60\x1d\xd5\x10\xea\x41\x83\x20\xb1\x11\xaa\x08\xdb\x83\x41\xe7\xab\x76\x55\x8e\x34\x16\xd5\x1a\xb3\x3e\xf7\x2f\x49\xfc\x72\x9a\x08\x66\x42\x32\x2c\x66\x7d\xa9\x6a\x6d\xbe\xa9\x2d\x42\xf6\x99\x2d\x6d\x4c\x33\x21\x87\x77\xa0\xc3\x80\x60\x17\x63\x05\x3e\xd5\x2c\x63\x1a\x2f\xef\xcf\x58\x76\xc4\x34\x4f\xff\x8c\xc7\xd6\x13\x0a\x39\x59\x06\x88\x2f\xef\xc6\x85\xe5\xe4\xb4\x36\x72\x58\x57\x39\x0d\xa5\xae\x3b\x96\x08\x6c\xc6\x41\x51\xcd\xe8\x80\x4c\x69\xa4\x34\xde\x85\x23\xba\x30\xce\xba\x01\xbf\xe8\xbd\xfa\x8a\x37\xb6\x2c\xc9\x05\xa4\xc2\x4d\x28\x02\x3f\x16\xb4\x64\x50\xa0\x07\xc1\xed\x09\x42\x26\xcb\x31\x17\xae\xda\xdd\x04\xca\x01\x32\x85\x5e\x48\x28\x75\x47\x0a\x3a\x66\x85\x03\x40\xaa\xde\xaf\xfc\x9d\x2f\xa7\xc4\x94\xe5\x6f\x9a\xd0\xe9\x54\x31\xad\xf9\x35\x73\x75\x05\xf9\xaf\x01\x1a\xe8\xfa\x75\xfc\xd1\xd7\x5c\xd4\xc4\x2a\x87\x86\x75\xef\x7b\x84\x23\x74\x14\xb3\xe8\xdd\xd8\x10\x46\x84\x1c\x6b\x69\x98\xe2\x19\xac\xea\x8e\x5a\x13\x5d\x67\x33\x42\x35\x66\x1f\x0e\xa1\xb8\x62\xff\x5d\x6f\xca\xaa\x60\xb5\xc6\x19\xa3\xb9\x2f\x2f\x67\x95\xaa\xaa\x62\xf9\x88\x90\x43\x4b\x7e\x26\x3c\xa3\x06\x0b\x89\x91\x9c\xe5\x75\x55\x70\xb4\x11\xf6\x04\xe3\x72\xc6\x88\x54\x39\x83\x2a\x92\x72\x02\xc1\xf7\x61\xb1\x48\x36\x84\xaa\xf2\xdc\xae\x3f\xe6\x46\x51\x35\x47\x09\xca\x9d\x65\x4f\x20\x2c\xf7\xc9\xa0\x78\x1d\xac\x05\xf0\x40\xa5\x1b\xd2\xbd\xd1\x8e\x1f\x49\x98\x00\xe9\x6d\x1b\x6c\x46\x8f\xf8\x4b\x3f\xd2\xf0\x24\x3b\xe0\x6a\x5f\xb8\x9b\xdd\x77\xb2\xd4\x6c\xc9\x0e\x84\x0d\xd4\xf9\xbb\xa4\x32\x14\xfd\x34\xd9\xcc\x49\x8a\x6d\x52\x45\x08\xda\x8f\x68\xbf\xec\x18\x1c\xae\x94\x22\xf7\x24\x32\xe4\xd3\x33\x33\xb2\xea\xa6\xa9\x69\x51\xcc\x87\xec\xd6\x32\x7b\x4b\xcc\x40\x7a\x82\x3e\x6a\x90\x88\x5f\x0b\xcd\xcc\x20\x01\x20\x40\x84\x2a\x85\x65\x6b\x35\xd9\xc1\xf7\x17\x12\x7a\x20\xec\xe0\x62\x56\xc5\x1e\xd7\x06\x93\x74\x06\xcb\x7f\x92\x62\x4f\xae\x99\x9a\xbb\x75\x7b\x4f\x97\xec\xaa\x92\xa4\x77\x84\x00\x85\x32\xd9\xec\xf8\xb6\x52\x58\xaa\x25\xc9\x9c\x0b\xd7\x65\x71\x09\x2c\xdd\xef\x35\xa5\x36\x62\x7b\x62\x04\x1c\x04\x93\x58\xe2\x4f\x80\x4b\x1c\x9c\x1e\xf5\x67\x0f\x38\xfa\x2b\x3e\xed\xd1\x53\x0d\x6a\x8f\xf4\x34\x07\xc7\xc1\x8a\x3d\x77\x6d\x15\xfc\x37\xd8\x0b\x15\x0b\xab\xe9\x60\xc9\xa1\xe4\x8a\x39\x36\x49\x85\x73\x41\xb8\x87\x93\x01\xa9\x18\xd4\x6f\xc4\x32\x95\x6c\x0e\x8b\xe1\xfa\x69\x4e\x3e\xf1\xa5\xc4\x91\x8a\x93\x36\x63\x68\x5f\x3e\xe1\x6c\xfe\xb0\x12\x4d\x99\x96\x16\xe1\xb8\x62\x9d\x1d\x39\xcb\x46\xeb\x16\x59\x4c\xf2\x96\x1a\xb8\x03\xf6\x83\x50\x03\x29\xa0\x3d\x85\xa6\xa9\x9a\x18\x99\x0a\xd9\x48\xba\xec\xc8\xf6\xf0\x07\xfa\x64\x5b\x96\x90\xf0\x90\x08\xde\x76\xac\xc2\x15\x9b\xef\x6a\xbc\xf3\x96\x43\xcc\x78\x05\xaa\x39\x30\x7b\x39\x49\x7c\xf1\x71\xfc\x00\xc5\xcc\x3d\x38\xc8\x59\x4e\xc4\x80\x9c\x4a\x63\xff\x39\xbe\xe5\xda\xe9\x30\x47\x92\xe9\x53\x69\xe0\x93\xad\xc7\x07\xdc\xaa\x97\x82\x0d\xce\xfa\xcf\x21\x31\x0e\xd8\x30\x28\xea\xb0\x25\xfe\xd4\x7d\x35\xe7\x80\x39\x5c\x93\x13\x68\x7c\x8c\x47\x95\x14\x20\xc8\xca\xf4\x95\xad\x2d\x38\xde\x5e\x07\xb5\xd8\x5d\xf6\xf8\x5d\x78\x1c\xb6\x48\xd5\x42\x96\x67\x02\xcd\x81\x05\x5e\x08\xfc\x06\x1a\x9d\x54\x05\xcd\x58\xee\xfb\x28\x50\xbb\xab\xd4\xb0\x69\xc7\xfc\xe7\xfb\x46\xc9\xd4\x14\x1c\x2c\x59\x8f\xde\x4a\x77\x47\x6a\xc1\x0c\x47\x52\xf1\x0c\xc7\x93\x5c\xe2\x27\xa9\xa6\xf2\xec\x4b\x80\xdc\xff\xc1\xb2\xd9\xa7\xd0\x2a\x92\x51\xa2\x08\x4c\x94\x7e\x4b\x5a\x59\x2a\xf4\x5f\x56\xc8\x85\x0b\xf7\xdf\xa4\xa2\x5c\xe9\x11\x39\xf0\x9d\x27\xe2\xef\x9c\x1d\x29\x9a\x26\x19\x60\x15\xe4\x63\xfe\x52\xf3\x6b\x5a\xb8\x8a\xc9\x54\x10\x86\x5d\x3c\x2c\x8c\x8b\xaa\xd5\x80\xdc\xcc\xa4\x46\x89\x39\x94\xde\xd8\xb9\x62\xf3\x9d\x41\x02\x7b\xaa\x1f\x31\xe5\xdb\x39\x11\x3b\x8d\xcf\xb1\x45\x9f\x82\xde\x00\xb9\x87\x3b\xf0\xdd\xce\x73\xe9\x74\x09\xe5\x7a\x9a\xe7\x1c\x4b\x5b\x9f\x25\x17\x77\x93\x92\x8f\xf4\x55\x2f\x9a\xd1\xb7\x56\x0d\x8e\xa7\x33\xa3\xf9\x9b\xb9\xc4\xed\x30\x9e\xfb\x4e\x32\xce\x64\x75\xd7\xa2\x95\x00\x10\xb0\x89\x45\xf6\x33\x7b\x25\x5a\x46\xc8\x54\x66\xa4\x24\xc8\xe2\x8b\xb5\x6f\xe3\x91\x5a\xf9\x4a\xd5\x6c\x40\x72\x29\x76\x8d\x73\x21\xc4\x7d\xa0\x16\x7b\x4b\xe4\x4b\x4e\x7d\x4f\xef\x27\x00\x85\x2a\x06\x2d\x30\x7c\x0f\x2c\x67\xef\xc4\x4e\x51\xe0\xab\x32\x3e\x5e\xd8\xfe\xb9\x0c\x90\xbe\x05\x8c\x1c\x20\xae\x8c\x91\x90\xc0\x05\xa0\x27\x6e\x0c\x4c\x83\x78\x11\x48\x6d\xff\x57\x02\x28\x56\xa1\x37\xf0\xce\xa6\xd8\x12\x9a\x6e\x7f\x65\x4a\x26\x58\x77\x89\x81\x3c\xd5\x6d\xea\x13\xd7\xd8\x8c\x3e\x45\x1c\x9a\xd1\xba\x4a\xe7\xa0\x0c\x5f\xbb\xe0\x25\x68\x72\x16\xd5\x84\x56\x12\x11\x01\x22\x4a\xe1\x8b\x31\xec\xcb\x56\x11\x99\x06\x5d\xb6\x91\xcc\x3c\xd2\x01\x13\x79\x8f\x53\xc8\x29\x0f\x78\x55\x2e\x67\xac\xf1\x0c\xcb\x09\x40\xe9\x1d\xe5\x4f\x73\xa1\x42\x95\xe2\x5a\x60\xc1\x5e\x8c\xe1\x4b\xe7\x90\x4d\x86\x5a\x18\xe3\xfa\x91\x56\x09\x23\x4d\xc2\x9c\x90\x13\xac\x4a\x24\x9a\x74\x2c\x6b\xe3\x4b\x35\xbb\xef\x73\x6a\x28\x34\xa5\xc2\xb8\x89\xed\x70\xe1\xa6\xb3\xc3\x26\x52\x91\xd3\x5f\x57\x8c\x80\x6e\x67\x1c\x0c\x08\xa3\xd9\xcc\x6a\x3b\x43\x0c\x6d\xb5\x7a\x9a\x57\xc8\x8e\xec\x41\xa1\x12\x24\x17\x05\x86\x14\x57\x28\x60\x84\xbf\x38\x51\xb4\xb6\x0f\xc2\xf0\xa9\x57\xda\x25\x74\x38\xf5\x4c\x34\x49\xf1\x09\x20\xf1\xee\x11\xdf\xbd\xd3\x19\xb8\x61\x47\xc0\x5a\x15\xed\x97\x8f\x51\x64\xb9\xfd\x59\xb8\xf4\x09\xa0\x58\xf2\xf6\x4d\x3d\x76\xcb\xc3\x5c\x44\x7a\x2d\xee\xac\x6f\x85\x9a\x44\x30\x60\x8b\x34\xfb\xd2\xd4\x1b\xfb\xa3\xaa\xf0\xd0\xfa\x14\x32\x83\x9b\x4e\x64\x0e\x5b\xc2\x71\xa6\x30\xda\x45\x47\xaf\x59\xe8\x5c\xca\x94\x92\xca\xbe\x3f\xd3\x9a\x70\x38\xa7\x92\xaa\x2b\x96\x07\x69\x7c\x44\xce\xec\x46\x79\xcb\x5e\x02\x48\x94\x97\x22\x7c\x5f\x54\xfb\xea\x4e\x31\x07\x30\x77\x47\xa3\x5d\xd7\xb2\x5d\xa1\x80\x8d\x7c\xc8\x7e\x9e\x8a\xe2\xa7\x31\xe3\x25\x33\xde\xb5\x68\xd3\x47\x5a\x69\x34\x8e\x5a\x31\x1a\xdc\x41\x92\x50\xdc\x11\x17\x25\x44\x7b\x17\x9b\x68\x46\x62\xe3\x44\x5a\x87\x63\x3a\x67\x63\x82\x50\x20\x1c\xa9\x1d\x8c\x09\x9d\x8b\xf7\x39\x16\x1d\x0e\x39\x7a\x98\xd6\x5b\x9d\xd0\xce\x5c\xf6\x48\xaa\x59\x1c\x4f\xe5\x22\x82\x74\x05\xae\xc9\x27\x6f\xad\x58\x2f\xe5\xc6\x60\xe5\xe1\x14\xda\x90\x1f\x5b\x94\x73\xb3\x38\xb6\x2d\x07\x67\x71\x9c\x4c\xb0\xa5\x70\x5b\x08\x71\xec\x31\x4e\xab\x0a\x0a\x48\xaf\xc6\x92\x8b\x63\x73\xc9\x39\x8b\x63\x23\xc9\x3a\x8b\x23\x45\xf2\xce\xe2\xe8\x9f\xcc\xb3\x38\xd2\xd8\x53\x70\x3c\x15\x71\x02\x11\x81\xfb\x16\xc0\xb1\xb1\xc6\xa9\x1b\x20\xf0\x83\x29\xac\x8a\x18\x43\x42\x9a\xe4\xc4\x39\x24\x4b\x74\xac\x65\x51\x1b\x04\x21\xfd\x22\xb1\xcc\x08\x2f\xe9\xbd\x50\x69\x04\xc5\xc5\xe5\x22\x49\x14\x34\x09\x14\xcf\x52\xae\xf5\x74\x9e\x97\xd4\xbe\xd4\x6d\x75\xbd\xa4\x6f\x19\x80\x63\x3b\x1a\x07\xe0\xd8\x8a\xf6\x01\x1e\x94\xf4\x4d\x04\x70\x6c\x53\x9d\xef\xf6\x48\x7a\x49\xfb\xb7\x15\xf0\xe3\x89\xbc\x67\xa1\x83\x32\xca\x4a\xf3\xd0\x55\xb3\x65\xa0\x80\xf2\xfd\x46\xa3\xfd\xc4\xc7\x00\x61\x1f\xce\xfe\x76\xad\x74\x4e\x91\xa7\x72\x46\xfb\x8a\x06\x07\x67\x27\x09\xed\xbf\xd1\xac\xf7\x58\x80\xe3\x27\x5e\x6d\xc0\xeb\x8c\xd6\x06\x9f\xa0\xf9\x36\x8e\xfc\x3f\x6a\x76\xd4\xd5\x79\x4a\x22\x6e\x6f\xbf\xcd\xe9\xce\x8b\x7f\x6b\x25\xc5\xb8\xe7\x5c\x84\x81\x46\xba\x12\x12\x8d\x4c\xe9\x64\x31\xac\x85\xea\x33\xfd\xfa\xa7\xa9\x92\xed\xb7\x4f\x6d\xa9\x55\x09\x76\xbf\x47\x77\xac\xc5\xd1\xc2\x96\xdd\x73\xbf\x89\xce\x65\x89\xce\x84\xc8\xaf\x51\xc9\xfc\x3d\x06\x59\x51\x21\xa4\xc1\x18\xea\x01\xba\xe7\xf5\xc0\x05\x2a\x44\x05\x75\x45\x4e\x6a\x9e\x63\x36\x66\xa8\x8c\xb9\xfb\xaf\x95\x56\x01\x1b\x78\x96\x06\x9d\xc8\x13\x65\x42\xd0\x8a\xff\xc0\x54\x9f\xde\xdd\xcb\x46\x0b\xb9\xdc\xfc\x1e\x93\x74\x36\x63\x25\x85\xff\xfc\xd6\x6f\x90\x25\xda\x2e\x37\x19\x9c\x25\x4c\x95\x56\xf0\x1d\xb4\xaa\x5c\xed\x5c\xbf\x4b\x90\x27\xd7\x8c\x27\x09\xab\x0d\x67\xfe\x64\xdb\x79\xd6\x52\xff\xed\x15\x05\x0b\x25\x04\x1a\xf8\xea\xd6\xc1\x1d\x65\x25\x89\x6b\xdc\xff\x2d\xdf\xba\xa7\x0c\x2c\xc4\xf1\x12\xac\xd1\x5d\xad\xd0\x83\x20\xa5\xb7\xad\xc7\xc9\x00\x7b\xb5\x42\x3f\x3c\x5e\xad\xd0\x6e\xbc\x5a\xa1\xd7\x1e\x4f\x66\x85\x8e\x44\x3a\xcf\x61\x97\x98\x91\xe3\x4e\x71\xde\x96\xdc\x74\x91\x1f\xa1\x4f\xca\x1b\x80\xbd\xf5\x57\xaa\xb6\x7b\x7f\x77\x34\xda\x45\x07\xff\x28\x38\xb1\x6a\x33\x19\xfe\x91\x30\x91\xc9\xdc\xce\x73\x09\xf3\x2b\x6d\x40\xdd\x69\x2c\x7a\x31\x2c\xa5\x5f\x2b\x0e\x11\x80\xb9\xd3\xca\x8d\x09\xd9\x96\xaf\x8e\xf8\xed\x53\x0a\xe7\x09\xd9\x4b\x23\xdc\x7b\xc8\xfd\x51\xb8\x03\x65\xca\x49\xf9\x4d\xdd\xc7\x82\x97\xdc\x65\x29\x5a\x7a\xca\xb4\x49\x95\x7c\x42\xc8\x1e\x4e\x3e\xca\xaa\x7a\xe0\x16\x1a\x95\xac\x94\x6a\x3e\x08\x8b\xd9\x2f\x5b\xab\xbb\x27\xf6\x41\xb9\xc8\x6a\xa5\x98\x30\xc5\xbc\x5f\x01\xfe\x65\xe3\x85\x68\x19\xfe\xa4\xb6\x58\xc9\x08\xc8\x95\x26\x4e\xb7\x19\x6d\x8a\x77\xe8\x97\x41\x77\x46\xd8\x6d\xe0\xf7\xae\x95\xca\xa0\xb1\x80\xda\x4f\x99\xb8\x26\xd7\x54\xe9\x54\x14\x86\x3c\x95\x5e\x91\xf3\x6b\xae\x9f\x30\x05\xfb\xc2\x09\x2d\xe8\x6b\x94\xb5\xa9\x6a\xe3\xd8\x9d\x27\x11\xec\xb6\x92\x56\x14\x0d\xa4\x61\x41\x3d\x7b\xd7\xd7\xe4\x1d\x8f\x8a\x1a\xc3\x94\x78\x4f\xfe\xef\xde\x4f\xbf\xfd\xe7\x70\xff\x2f\x7b\x7b\x7f\x7f\x3b\xfc\x5f\xff\xf8\xed\xde\x4f\x23\xf8\x8f\x2f\xf6\xff\xb2\xff\x4f\xff\xc7\x6f\xf7\xf7\xf7\xf6\xfe\xfe\xdd\xc7\xbf\x5e\x9e\x1d\xff\x83\xef\xff\xf3\xef\xa2\x2e\xaf\xf0\xaf\x7f\xee\xfd\x9d\x1d\xff\x63\xcd\x49\xf6\xf7\xff\xf2\x3f\x13\xbe\x04\x15\xf3\x4f\xc9\x78\x02\x8e\xe1\x93\xc8\x35\xed\xb9\x9f\x36\xd3\x94\x0b\x33\x94\x6a\x88\x8b\xbc\x87\x34\x9c\x64\x4b\x79\xd4\x7c\x3a\x1a\xd3\x48\x55\x81\x83\x06\xf5\x7b\xcb\x89\xc8\xd3\x6a\xd8\x4f\xe6\x9e\xc6\xba\xd3\x09\xfd\x30\x38\xe1\x3d\x2e\x18\xf7\xe5\xab\xf7\x65\x9d\xf1\xf9\x47\xe0\x5f\x20\x3a\xbc\x86\xdf\x93\x97\x1f\x7e\x8f\x67\xf9\x1a\x7b\xff\x1a\x7b\xff\x1a\x7b\xdf\x7b\xa6\x2d\xf5\x92\xbe\xc6\xde\xfb\xf1\x12\xbc\x1d\xaf\xb1\xf7\x6b\x8c\x57\xaf\xc7\xca\xf1\xea\xf5\x68\x8d\x7f\x71\xaf\xc7\x6b\xec\x7d\xc7\x45\x5e\x63\xef\x57\x8d\xd7\xd8\xfb\xd7\xd8\xfb\xd7\xd8\xfb\xd7\xd8\xfb\x0e\x30\x2d\x8b\xbd\x47\xe4\x5f\x16\x81\xef\xec\x4d\x4d\xf8\xfd\xbf\x60\xf4\xbd\xb6\xe8\x97\xb1\x83\x2c\x93\xb5\x30\x97\xf2\x8a\xf5\x8c\x4d\x5c\xb0\xfe\xde\x99\xdd\x92\xa1\xfb\xac\xc1\x77\x1f\xde\x4a\xd3\xf0\x67\xd9\x5f\x83\xd6\x39\x67\x22\x85\x37\x27\x3d\x73\xf4\xb0\x79\x09\xd1\x4a\xdc\x22\x67\x79\xf3\x85\xe3\x9c\xc6\x22\xcd\x88\x1c\x10\xc5\x32\x5e\x71\x57\x54\x93\xe2\xe7\x09\x00\x01\xfa\xe0\xda\x93\xce\x2d\xd5\x60\xc5\x24\xb0\xaa\xd0\xb6\x54\x45\x36\x52\x27\xe5\x2d\x00\x9a\xc2\xf8\x65\x5f\x09\x75\x1e\xd0\x70\x6e\xb8\x66\x44\xcf\x64\x5d\xe4\x44\xb1\xff\xf4\x4a\x97\xdb\x91\xcb\x18\x86\xd8\x91\x9c\x06\x98\xe8\xd5\xdd\x49\xd0\x8a\xdb\xfb\xcc\xb6\xab\x4a\x22\xbb\xad\x38\x76\x00\xbf\x60\x99\x14\xf9\x56\xba\x65\xee\x00\xd9\x28\x46\x10\x93\x83\x35\xa0\x43\xdf\xa9\x6b\x5a\xf0\xdc\xca\x68\x3e\xe4\x1b\xc9\x68\x8a\x6b\x87\x94\x38\xdc\x2a\xdd\x60\x14\xa1\x55\xa5\x24\xcd\x66\x4c\x47\xf0\xa2\x35\xc2\xf5\x9f\xef\xd7\xb0\x37\x1e\x55\x51\x4f\xb9\x40\x93\x06\xac\xea\x25\x58\x69\x7c\x1a\x8d\x7b\xe9\x45\x90\x2f\x23\x70\xec\xcf\x13\x00\x83\xca\x94\x51\x73\xc8\xd6\x91\x31\x10\xb8\x33\x7c\x12\xff\xa1\x89\x2c\x72\x90\x37\xa8\x20\x7f\x7c\x4b\x2a\xa6\x32\x24\x4b\x49\x1c\x78\x1a\xfa\x4e\x59\x38\x0a\xab\x31\x5b\x51\xe6\xfe\xe5\xbf\xfc\x9a\xcc\x64\xad\xf4\xe8\x28\x22\x00\xef\xe0\xb3\x14\xd8\x22\xf2\x26\x2e\xda\x90\x82\x51\x6d\xc8\xbb\xb7\xa4\xe4\xa2\x36\xe9\xea\x3b\xa6\xb2\xb6\x44\x76\x96\xdf\x7f\xdd\x73\xb6\x27\xa8\x16\x99\x84\x92\xc4\x56\x15\xf8\xef\x60\x5a\x71\x1e\x45\xe8\x6d\x4f\x2a\xc9\x85\x59\x34\xb4\x38\x89\x2b\x25\xb7\x02\x4f\xe6\x56\xf0\x83\xc4\x26\x86\x5f\x6a\x39\x9e\x9b\x4e\xa2\x53\x8a\x43\x77\xcb\xb7\x3b\x70\xfc\x9b\xfb\x10\x8f\x58\xa2\x18\x32\xb3\x4a\x2f\xd8\x65\xf5\x8c\x2a\xe6\xba\x66\xee\x6a\x52\xf0\x09\xeb\xde\xc1\xee\xc8\x2e\x0c\x35\x25\xdf\x87\x75\xb9\x26\x79\xf8\x38\x98\x66\xb9\x18\x1a\xc5\x58\x00\x19\x74\x7d\xf0\x20\x93\x42\x8a\x69\xdc\xbd\xb5\x0b\x28\x3d\x45\xfc\x7e\x82\xfd\x90\x28\x36\xe5\xda\xa8\x6e\x6e\xbf\x61\x77\x86\xd9\x57\x0b\x98\x2a\x59\x77\x2e\xbe\x99\x8a\x6c\x01\x10\xde\xc4\xeb\x03\x3d\x5c\x2f\xd7\xee\x35\x87\x1d\xab\x73\x38\x06\x6b\x74\x9c\xab\x37\xd9\x51\x8c\xe6\x9f\x44\xd1\xd9\x67\x9a\x6a\xa3\x3d\x1c\x68\x4f\x03\xa9\x6a\x22\x21\xb6\x6e\xc6\xc2\xf5\xf5\xad\x93\xc1\x54\x07\x34\x84\xe5\xa8\xe9\xd8\x9f\x0f\x21\x6c\x3d\xf2\x14\xf6\xe8\xf0\x1e\xc9\x22\x13\x5a\xe8\x9e\x3d\xaf\xfb\xd8\x5a\xfc\xf5\xdd\xfc\x01\x21\x1c\x6d\x82\xee\xea\xe1\x4b\x45\xca\xba\x30\xbc\x2a\x9a\xc3\x3a\xf7\x3f\x70\x62\x70\x77\x5b\x61\xa3\xb8\xd2\x28\x92\x83\x6a\xe0\x1c\xef\x2d\x61\xc6\x80\xb0\xbd\x00\x03\x13\x06\xba\xf3\x43\xf2\x31\xab\xa8\xa2\x01\x53\x32\x59\x96\xb4\x47\xd9\x76\x8c\x2f\xa2\x90\x43\x81\x42\x8c\x15\x9d\x15\x2d\x9a\x1d\x8a\x82\xcd\x37\x75\xad\x0d\x13\x54\x74\x0e\x99\x4c\x85\x33\x08\x05\x91\x37\xa1\x8a\xc0\x94\x5f\x33\xb1\x78\x9f\x9d\x39\xe2\x1b\x9a\x5d\x31\xd1\xdd\xbe\xf9\xbd\xf6\x67\x9c\xcf\x05\x2d\x79\x46\x0b\x4b\x0f\x94\xbc\xe6\x96\x1c\xb0\x7c\x61\x5d\x3d\x70\x26\x7c\x6c\x42\xea\x9b\x57\xa3\x62\xb7\xa9\x83\xab\x35\xeb\x1c\xe2\x9f\xea\xd8\x2c\x0c\x4f\xc5\xf3\x34\x46\x74\x28\x7e\x9d\x31\xaf\x17\xdb\xf5\x36\xb5\xdf\xf8\x7e\x49\x76\xdc\x63\x73\x44\xa3\x40\xaa\x0d\xe1\xa8\xd8\x7f\xac\xb0\xbc\x6a\xee\x13\xec\x16\xef\x82\x6b\x4f\xde\x8f\xdf\x74\xdc\x0f\x35\xee\x24\x64\xa6\x40\x3b\x35\xce\xdb\x8c\xe5\x9c\xe6\x52\x93\x6f\xa0\x2b\xc7\x11\x03\x33\xca\x73\x2b\x0d\xe7\xdf\x1c\x3d\xa0\x30\x58\xa8\x13\x2b\x0b\x4b\x7d\x75\xec\x96\x96\x55\xc1\xf4\xe8\xea\x8f\xe0\xad\x73\xf4\xeb\x8d\x1a\xe7\x6f\xce\x8f\x0f\x8e\x3e\x1e\x8f\xca\x2e\x74\x73\xc3\x9a\x09\x2f\xe9\xb4\x9b\x1e\x3f\x24\xa5\x14\xdc\x48\xd5\x85\xc1\xf6\x55\x4c\x26\xfa\xd2\xee\xdb\x86\x89\x34\x42\xe1\x0d\x29\x4d\x0f\x7e\x44\x48\x67\x37\xf1\x02\xb3\xbd\x27\x73\x59\x93\x1b\x8a\xfd\xbd\xe0\x2a\x75\x17\x8f\x2f\x79\xf5\x9e\x1c\x0b\x5d\x2b\xd6\xf4\x35\x5d\x04\xc1\x72\x55\x7f\x13\x3c\x6f\x85\x5b\x8b\x8d\xbd\xa0\x9f\x0c\x3c\xde\x1d\x8e\x63\x77\x2f\xde\x93\x1d\x76\x6b\xbe\xde\x19\x90\x9d\xdb\x89\xb6\xff\x08\x33\xd1\x3b\x23\x72\x52\x56\x05\xcf\xb8\x29\xe6\xf6\x46\x31\xa5\x82\xa3\x1f\x7f\xb0\x90\x67\xd0\x1d\x92\x47\x3a\xd8\xb5\x91\x8a\x4e\x99\xbf\xc8\xbf\x51\xe3\xae\x62\x4f\x6f\x06\x08\x97\x70\xd3\xc8\x0c\x40\x04\x8f\x02\x90\x7e\xfc\xa8\x5f\x23\x94\xae\xa4\xf4\x37\x33\x79\x33\x34\x72\x58\x6b\x36\xe4\x5d\xdd\xb2\xbd\x4f\xe6\x8a\xcd\x21\x41\x6e\xc3\x67\xe3\xc0\x68\x99\x6c\x8d\x84\xc8\x04\xf8\xdc\x6a\x3b\xe7\xdf\x1c\x7d\xaf\xfb\xb8\xd5\x22\x8b\xc8\x1b\x66\xb2\x37\x19\xab\x66\x6f\xdc\xca\xff\xaa\xe7\x1f\xc5\xb3\xdc\xd9\x93\x4e\x13\x7a\x9e\xb9\x69\x8c\xf2\x70\xa0\xa8\x9c\xc9\xa2\x60\x99\x77\x1c\x1e\xb2\x6a\x16\x1e\x78\xd1\x27\xdf\x27\x27\xa6\x67\x26\xcc\xf6\x39\x23\xec\xa8\xa4\xec\x1c\x4f\x95\x0a\xf5\x2c\x0c\x6d\x3e\x03\x9f\xf4\x63\x33\x11\xf1\x52\xe3\xb4\x42\xc4\xcb\x24\x57\x5d\xc5\x99\x17\x61\x8c\x3e\xf7\x5f\x6a\x66\x40\x8a\xe5\x82\x60\x81\xcd\x8f\x56\xaa\xde\x06\xab\xf3\x56\xa0\x52\x1f\xa3\x37\xe6\x60\xf7\x28\xa7\x93\x0a\x13\x02\x20\xa0\xe2\x47\xe1\xd0\xb4\x36\x33\x26\x0c\xcf\x30\xe4\xc5\x25\x8d\xc7\xb2\x10\x39\x99\xa0\xf1\x31\xef\x11\xb3\x29\xaf\x99\x52\x3c\x67\x9a\xf4\x16\x86\x62\xa7\x13\x2f\x5e\x34\x6a\xf5\x0a\x97\x4c\x11\x9d\xd8\x37\x60\x3f\x65\x54\x45\xfa\x20\xfd\xed\x08\xcf\xdf\x8a\xc0\xfc\xa7\x08\xc9\xdf\xc6\x60\xfc\x44\xe1\x8c\xfd\x03\xf0\xd3\x87\x94\x6f\x8d\x47\xa5\x25\x76\xc2\x27\xc9\xc4\x4e\x9a\x97\xbc\x47\x79\xd7\x2d\x20\xe9\x69\x04\x4f\xd8\x87\x47\x4f\xa2\x33\x5a\xb0\x93\x4f\x9b\xf2\x7d\xb8\xe5\xdb\xfe\x8f\x0b\xf7\x61\xc5\x94\xe6\x1a\x4a\x7e\x78\x57\x9c\x31\x34\x9b\x39\x6f\x84\x0f\x82\x90\x82\x7c\x17\xee\x0d\x11\x32\xef\x1a\xdb\x18\x3b\x40\x3c\x0c\xab\x9d\x20\x1e\xfc\xcf\x2b\x6a\x6a\x4a\x0d\xbb\xe9\xa8\xbf\x0f\x1b\xb1\xb1\xeb\xef\xc1\x30\xfe\xea\xdb\x58\xea\x58\xe8\xef\xbf\x08\xb9\xfe\x77\xe6\x7e\x7a\x8f\xc5\xe8\x1e\x5f\x45\x0a\x36\x00\x33\x6e\xc4\x75\x8c\x23\xd0\xe1\xdb\x49\x37\x61\xc4\xdd\xba\x24\xf8\xe7\xe6\xf2\x58\x04\x07\x49\xf3\x5c\x31\xad\xbd\xb8\xec\x09\xdc\xc1\xd9\x09\xf9\x2b\x3e\xbe\xb1\xdd\xab\x94\x34\x68\x06\x3d\x92\x25\xe5\x9d\x13\xde\x5a\x7b\xb0\x38\xa9\xdf\x8c\x58\x93\xf5\x9b\x70\x16\x9e\x25\xee\x61\xab\xcd\x36\x6d\xc9\x6b\xc5\x72\xe2\x1c\x57\x1b\xdb\xa5\xad\xb3\x10\xdd\xb1\xd9\x90\x3d\xfb\xdd\x9b\x1b\xc5\x0d\xdb\x1f\x35\xd6\xa2\x05\x53\x52\x77\xdb\xee\x13\x9a\xa0\x3e\x4b\xc3\x4d\x14\x7e\xe3\x4b\x96\x35\xc6\x1a\x8f\xfc\x20\x8e\x87\xb4\xb5\x1e\xab\x0a\xcd\x21\x97\x21\xca\x26\x05\x4b\x10\xe8\xaa\xa1\x2a\x19\x5a\x85\x06\xe4\x83\x9c\x72\xe1\xd9\x8b\x74\xd9\x44\x13\xda\xdd\x3c\xf3\x6a\x1f\xb9\x33\x5e\xed\x23\xaf\xf6\x91\x57\xfb\xc8\xfd\x43\xeb\xe2\x58\xd0\x71\xd1\x3d\x75\xbc\x9d\x5d\x1f\xa6\x23\xdf\x16\x74\x4a\x18\xfc\xf1\x26\xe7\xda\xfe\x4b\x2e\x2e\x3e\x40\x08\x76\x2d\xbc\xe9\x1c\x70\xd3\x49\x5f\xa1\x9e\x34\xf2\xd2\xcd\xb1\x31\x14\x73\x3e\xf6\xa8\xa0\x96\x8c\x91\x35\xa0\x10\x2e\x72\xbb\x6b\x4c\xb7\x2a\x46\xb8\x27\x80\x9f\xd1\x50\x95\x12\x93\xae\xc7\xcc\x52\xab\xec\xea\x2c\x8a\x82\x96\xca\x7e\x26\xa2\x8f\x92\x28\x1f\x89\xe6\x4c\xa9\x86\x2c\x80\xd4\x07\x15\xce\x52\x39\xaf\xa3\xf9\xbc\x34\xee\x85\x90\x0b\x77\x90\xf0\x1d\xd5\x5a\x66\xbc\xc9\x5b\x80\xd8\x9b\x46\x44\xcf\x41\x44\xdf\xd8\x26\xa3\x1e\x9c\x66\x43\x50\xfd\x5e\xa2\x99\x78\xc4\x76\x4f\x50\x1d\x6b\x22\x5c\xf8\x7d\xdb\xd8\x26\xe0\x55\xeb\xd3\xd1\x20\x15\x91\x68\x20\x59\xdc\xc7\x40\x10\x16\xe3\xce\x7d\x49\x5c\x87\x7b\x9d\x2d\x4e\x38\x20\x0a\x94\xeb\x25\x58\xcb\x75\x20\x49\x50\x2c\x7d\x23\xa7\xd5\xbd\x82\x78\x12\x03\x2f\xea\x1b\xed\xc4\x29\xfc\xcc\x45\xb0\x03\xad\xae\x64\x55\x17\x98\xb6\x1f\x36\x2d\x59\x08\xf9\x63\xa2\x51\x11\xb6\xe7\xb7\xd9\xf6\xd5\x3c\xa2\x52\x93\x9b\xbe\x90\x71\xd5\xcb\xc7\x97\x37\xf5\x77\x14\xac\x93\x64\x3c\xf7\xd3\x25\xb0\x78\x6e\xbe\xba\x69\xaa\x6a\xa6\xdd\xad\xcb\xad\x2a\xa8\x2d\x0b\xce\xdb\xdf\x7f\xfd\x75\x0f\x61\x88\x2b\x96\x19\x09\x99\x87\xae\xb2\x74\x88\x98\xa5\x8a\x81\xee\x8f\xa5\x47\xbd\x7d\x19\x33\xcf\x4c\xaf\xb8\x8e\xcd\x95\x3f\xdd\x48\xb9\xd3\x14\x05\x37\xfa\x97\x33\xed\x15\xa0\x99\x2c\x6a\x1e\x5a\x25\x9c\x6c\xb8\x55\xc2\x46\x1b\x24\x6c\xb2\x2d\xc2\xe6\x9a\x21\x6c\xb0\x05\xc2\xa6\x1b\x1f\x6c\xa4\xdd\xc1\xc6\x03\xba\x9f\xbf\xa1\x41\x92\xba\x84\x29\x6a\x12\xf6\x6d\x59\xd0\xb3\x9e\x61\x9a\x5a\x86\xbd\x9b\x12\x3c\x47\x2b\x82\x44\x36\xce\xfe\x6d\x07\xd2\xd6\x9c\xda\x74\x8b\x81\x2d\x12\xbd\x71\x6c\x67\x3b\x81\x8d\x34\x11\xd8\x74\xeb\x80\x0d\x36\x0c\x48\x57\xb8\x2e\x55\x73\x80\xfe\x05\xeb\xd2\x12\x8e\x0d\x95\xff\x7f\xc2\xa2\xff\xcf\x52\xea\xff\xa9\x0b\xfc\x6f\x67\x72\x5b\xdf\x82\xe1\xbd\xcb\x84\xeb\x44\x75\xc2\x53\xc5\x80\x6c\x83\x59\xbc\x81\x64\xa9\x7b\xc1\x77\x81\xc4\x7b\x00\xd5\x43\xc0\x4f\x5c\x51\xec\xe9\x59\x27\xce\xc0\x7a\x16\x1b\x2c\xe9\x6d\x2b\x47\x48\x64\x27\x81\x37\x89\xb9\x1c\x01\xf8\x74\xb1\x10\x11\x1d\x3e\x7e\xfe\x40\xe8\xb0\xf4\x03\xa1\xd0\x7e\xeb\xb6\x2c\x18\xfa\x35\x2a\x78\x9d\xb1\x8d\x51\xc1\xcf\x55\xc1\xe4\xf3\x0b\xcc\xcc\x5f\x03\x33\xe3\xb1\x85\x81\x99\xba\xd5\x70\xde\x3b\x44\x81\xed\x82\x6a\x29\xc7\x56\x48\xf5\x95\x03\x1b\x1a\x7c\x70\x76\xd2\x79\xf5\x4c\x31\xe8\x0a\x40\x0b\x3d\x5a\xa6\x73\xfa\xf0\x23\xa7\xe1\x7a\x5d\x93\x1a\xc3\xca\xaa\x73\x49\xaf\xd7\xb8\xcc\x25\xe3\x35\x2e\xf3\x35\x2e\xf3\x35\x2e\xf3\xfe\xb1\xcd\xd1\x45\xb3\xba\xa4\x62\x68\xf9\x29\x04\x75\xb6\xd2\x49\x16\xc4\xf4\x11\x71\x1c\xb0\x17\xd1\xc2\x52\xbe\x50\xe0\xb9\x16\xfc\x97\x9a\x35\x9e\x8e\xa0\xb2\x6d\x41\x1c\x18\xc0\xb1\x3d\xc7\x85\x9a\xec\x02\x9f\xcd\xe4\x9d\xfa\x80\x6e\x2f\xc3\xd1\x79\xd6\xd8\xef\xc8\x60\xf1\x96\x63\xd2\xcc\x18\x2a\xdb\x67\x0b\xca\x76\xcb\xa6\xeb\x08\x39\xd0\xd1\x7e\xde\xe1\x58\x13\xb4\x28\x6a\xdf\xdd\x75\x48\x19\x33\x52\x72\xa5\xa4\x72\x91\x6a\xf1\xeb\x63\xe2\x13\x9f\xce\x0c\x53\x68\x21\xc5\xf4\x8c\xee\xe4\xf3\x82\x19\x77\x0b\xe0\x16\x19\x49\xa8\xc0\x42\xaf\xf6\xbf\x7d\x91\x0f\xd8\x1a\x2f\x81\x8c\xd9\x8c\x5e\x73\x59\xf7\x28\xaa\x76\x81\xf2\xd4\x8e\x9b\x12\x74\x85\xb9\xac\x43\x2c\x4a\xad\xed\x66\x84\x53\xd0\x77\xf1\xa0\xf3\xd2\xa7\xcd\xa4\x60\x36\xcf\xa5\x77\x46\x0f\xd9\x2d\xd7\xe6\xee\x9e\x7b\x14\x70\xb1\x4f\x1b\xb9\xcc\xd7\xba\xb2\xdc\xf7\x87\xce\x35\x81\x53\x5c\xe1\x16\x10\x6d\x13\xc8\xf5\x05\x7c\xf5\x90\x01\xc4\x35\x17\xc2\xfa\xe8\xa4\xa4\xd9\x8c\x8b\x04\xf5\x70\x7f\x68\x01\xd6\xb2\x84\x8c\xc8\x41\x51\x34\x79\x4c\x3a\xa4\x0e\x7a\xcb\x48\xfb\xa5\xec\x21\x75\x02\xc7\x62\xae\x62\x39\xc4\x59\xa1\x88\x05\xf9\x89\x9a\x8f\xdc\x02\xa3\xeb\xf2\x86\x2a\x36\xca\x64\x49\x0e\x2f\x4e\x48\xae\x78\xc7\x76\x5f\x1b\xce\x3f\xc7\x23\x3e\xeb\xe6\xba\xfe\xdc\xec\x3d\xaf\xb6\x9e\xad\xb2\xf5\x84\x14\x86\x82\x67\xf3\x93\xa3\xb4\x69\x11\x38\xa7\x17\x34\x75\x48\x89\xb0\x9f\x93\x6f\xa8\x66\x39\xf9\x48\x05\x9d\xa2\xc3\x6a\xef\xe2\xec\x9b\x8f\xfb\x16\xe1\xc1\x19\x77\x72\xb4\x34\x6f\xe2\x22\x9e\xfc\x74\x53\xe5\xd5\xc9\xe2\xd6\x25\x93\xed\xef\xcc\xda\x71\xfb\x36\x56\x79\x9e\x04\xb1\xf5\xac\x87\x13\x78\x49\x35\xfe\xb3\xc5\x66\x63\x98\xa8\xe0\x3b\x43\xea\x45\x96\x7a\x5d\xe6\x57\xcf\xbd\x01\x77\xbd\x91\x56\x7f\xbc\x62\xf3\x47\x53\xef\x21\x9c\x60\xcf\xc5\xf1\x3d\x4a\x7a\x7f\x4b\xa2\x28\x52\x66\x15\x84\xeb\x45\xcd\xad\x11\x19\xd7\x3a\xd7\x0b\xa3\xa8\x61\xd3\xf9\x11\xab\x0a\x39\xb7\x58\x7c\x16\x05\xee\xe0\xa3\x63\x14\xa5\xd5\x98\x66\x44\xd5\x05\x34\x5e\xc8\xef\xb4\x63\x14\x8c\xe5\x0d\x99\xe7\x42\x1b\x5a\x14\xf6\x00\x61\xfe\x95\x10\xad\x2d\x1c\xac\x2b\x06\x0c\x11\xce\x07\x9f\x6a\xb7\x23\x3e\x7d\xe8\xb4\xd7\x17\x04\x60\xf9\x87\xf1\xed\x31\x91\x90\x6b\xc7\x3c\x76\x11\x18\x90\xa2\x9d\xd7\x85\x65\xd0\x45\xde\x6e\xdf\x8c\x2a\x87\x43\x05\x6c\x0d\x01\xf4\xcf\xbe\xa4\x33\x01\x4a\xa6\x5b\xa1\x10\xd1\xcf\xd7\x5a\x1f\x3b\x44\xdf\xcc\x50\x02\xb5\x13\x13\x5a\x55\x05\xc7\x2a\x03\x52\xb9\x20\xdc\xc8\x9f\x7c\xf7\xb1\x75\x48\xed\x23\xc5\xd0\xc7\x89\x9d\x43\x72\xcd\xd4\x78\x1d\xfb\xdb\x63\x25\x4a\x5a\x71\x08\x67\x5a\x9b\x84\x75\x15\x1a\x0f\xce\x4e\x70\xa1\x65\x1e\x7e\xff\x25\x22\x84\x3b\x6a\x1f\xd0\x83\xe9\x68\xce\x0d\x10\x3a\x47\x1d\x9c\x9d\x60\x43\x36\xd7\x3c\xaa\x71\x0d\x58\x8d\x9d\x62\xf2\x65\xd3\xf3\x96\x4e\xed\x8c\x86\x48\xc1\x1e\xd3\x3d\xd5\x42\xc0\x44\x5d\x32\x6c\x4c\x15\x80\x21\x5c\xc0\x3a\x01\x8a\xc6\x03\x81\x56\xe5\x11\xd9\xd9\x89\x75\x42\x2c\xcf\xa2\x22\xb8\x81\xd4\xed\x7c\xd1\x7a\xca\xd2\xb5\xe6\xc5\xd6\xe5\xf0\x8f\x8f\x7a\x7e\x64\x94\x73\x07\x8e\x99\x20\x72\x47\x48\x71\xee\xf6\xfb\xfb\xf3\x0f\x4f\x8e\xa0\xa7\xed\xe5\x5c\x7b\x20\x06\xad\x4d\x2b\xaa\x0c\xa7\x05\xa9\x55\xe1\xc3\x0b\xb1\x12\x89\xcb\x08\x9c\xd1\xeb\xa8\xf5\xd2\x88\x90\x2f\x10\x2b\x1d\x32\x20\x29\x03\xa3\xa8\x6b\x45\x36\xa9\x8b\x62\x40\x26\x5c\x50\xcb\xc8\x58\x45\xa2\x20\xaf\xb5\x21\xbe\xe0\x22\x63\x76\x9b\x86\x1e\x2f\x09\x40\xee\xcd\x46\x81\xa6\x41\x8c\x66\xec\x72\x41\x50\x2c\x7d\xcb\xc0\x2e\x3c\x91\x8a\x1c\x16\xb5\x36\x4c\x9d\x4b\xcb\x86\x9b\x74\x13\x32\x51\xb2\x24\x34\xfe\xfa\x1b\x2e\xf2\x47\x65\x42\x9d\x03\x6b\xcf\xa8\x20\x8c\x43\x60\x94\x5d\x1a\xe2\xa1\x2d\xb2\x37\x97\x6a\x4f\xd7\xd9\xcc\x6e\xd1\x4e\x25\x73\xbd\x63\xa9\xf3\x0e\xba\x1b\xf5\xce\xbe\xfd\x6b\xf1\x5d\x31\x7b\x23\xfa\xdd\x1b\x5a\xf1\x9d\xfd\x01\x81\x0d\x87\xe0\x3c\xb9\x7e\x34\xde\x67\x7a\x8f\xfc\x86\x81\xa9\xaf\xd3\x2d\x3a\x8f\x67\x80\x8b\x21\x9a\xd0\xb7\x9b\x19\x37\x98\xaf\x63\x6f\x0a\xfa\x00\x42\xaf\x99\x45\x46\x4a\xc8\x81\x77\xa2\xd9\xab\x55\x32\xea\xe3\x75\xd9\x35\x53\x73\x33\x73\x0d\x2c\x3c\x15\x7d\x3d\x39\xb8\x19\xbd\x4e\xcd\x91\x32\x7f\x42\xcd\x75\x03\x9a\x70\xe7\x84\x76\xbf\xd8\x5d\x64\x49\x0d\x0f\xfe\xd7\x3e\x0f\x10\xc2\x3a\x9d\xc5\x0f\xf6\x97\xed\x73\xc0\x8f\x90\x99\x04\x72\xf8\xe1\x83\x0b\x4f\xc1\x0d\xff\x8e\x0b\xf0\x7a\x83\x3c\xe4\x6b\x01\xb8\x43\x5b\x7a\x52\x00\xe1\xbf\xec\x29\xdd\x55\xba\xd6\x55\x94\x56\xc0\xe8\xf5\xcc\xfb\xa6\x5a\x39\x81\x53\x56\x3f\xca\x7c\xf9\x25\x6e\x21\xc9\x49\xf4\x70\x88\x25\x6e\xcc\x9c\x6e\x2e\xa7\x39\xcd\xab\xa5\x5a\xe8\xea\x33\x5d\x71\x7e\xf7\x41\xd2\xd8\xe9\x80\xec\x47\xdf\x5c\x36\x81\x11\x64\x52\xd0\x69\x83\x8b\x40\xc4\x51\xb2\x3f\xbc\xf8\xc1\xbf\x82\x26\xf7\x94\x1e\x7e\x50\x75\x7a\x48\x59\x1a\x36\xbb\x74\xef\x13\xf7\xba\x32\x1e\xd6\x98\xc2\xe4\xf7\x63\xd3\x3a\x71\x5f\x66\xa5\xa9\xfe\xbe\xfd\xf7\xa6\x75\x1a\x61\x82\xef\x1c\xe7\x4d\x21\x90\x6d\x02\x32\xdc\xc5\x0f\x2d\x34\x79\x00\xde\x7b\x90\xf6\x8a\xcd\x6f\xa4\xca\x1f\x46\xd8\x83\x40\xcc\xfc\x4f\xbc\x32\xef\x83\xc1\xd0\x1c\x2f\x97\x3a\x76\x3a\xa3\xea\x4a\xe0\x0b\x3a\x66\xc5\xc3\xa0\xdf\xa3\x18\x7c\xa4\x95\x7d\x9d\x26\x65\x13\x2d\x52\x2e\xca\x0c\xb5\x53\xcc\xf3\xf1\x19\x69\x52\x4d\xa9\xe0\xbf\x62\x9e\x6b\x66\x29\x85\x54\xfc\xd7\xe5\xa8\xb6\x87\x3e\x7d\xb4\x71\x15\x2c\x33\xfb\x0e\xeb\x97\x92\xec\x07\xae\x05\xcd\x73\x8e\x22\xd8\xd9\x03\x18\xbc\x7a\xbf\xb8\xb8\x7a\xcc\x49\xc3\xf3\x98\x66\xd3\x38\xf6\x9e\xf0\x98\x57\x90\x85\x87\x6f\xee\xea\x30\xba\x35\xd8\x53\xad\x56\x24\x8a\xac\xfc\x7d\x49\x39\x72\xed\xe5\x6d\xbc\xee\xd9\x5d\x87\x4d\xd4\xc9\xd6\x96\x96\xda\xf7\x0b\xb3\x3d\xc3\xbd\xea\xb5\xe1\xac\xa4\xbc\xeb\x8e\xe1\xe8\x71\x64\x25\x35\xb5\xe2\x66\x29\xa7\x5e\xfd\x43\x2e\xbe\xab\xc7\xec\x07\xa6\xb4\x3d\x8f\xc7\xfe\x5c\x40\xc6\xd9\xc1\xd9\xc9\xd2\x6d\x49\xc3\x91\xef\x35\x64\x80\xdd\xcc\x41\x6e\xc5\x45\x52\x0b\x5a\x8e\xf9\xb4\x96\xb5\x2e\xe6\xb1\x07\x85\x92\x2b\x2e\xf2\x11\x21\x27\x68\x56\x15\xbb\x86\x50\x21\xc5\xbc\x74\x8f\x8a\xac\xa8\x73\xd6\x9a\xf1\x3e\x56\x26\x09\xbd\x96\x3c\x27\xb4\x36\xb2\xa4\x86\x67\x24\x93\x4c\x65\x50\x44\x35\x9e\xbf\xd6\x8c\xd0\xd6\x8c\xcd\x6f\xb3\x5a\x1b\x59\x92\x92\x2a\x3d\xa3\x45\x71\x1f\x4a\x24\x90\x0e\xc0\x9c\x76\xef\xb7\x76\x57\xee\xfd\xf2\x7a\xc5\x3e\x3c\x7c\x1d\x60\xe1\x5e\xd7\xc1\x02\xd7\x6b\x82\xeb\xfb\x91\x7a\x8d\x39\x5c\x05\xdc\xa5\x7d\x39\x5a\xf8\x79\x39\x63\xa4\xaa\xc7\x05\xd7\xa0\xc2\x03\xe1\x9a\x93\x31\x9b\x71\x97\x7a\xf3\x30\xc5\xba\xf7\x88\x1f\xda\xe7\x55\x24\xe3\xc1\x1d\x5a\x41\xe1\x57\xfe\xd6\x71\xc0\x93\x92\x4e\xd7\x10\xed\xef\xb9\xbe\x1f\x2c\xd9\xa7\x62\x1e\xf8\x29\x34\x53\xd5\x03\x22\x95\x4b\x24\xf6\xba\x9f\x72\x5f\x85\x16\xc1\x8a\x7c\x72\x3b\xea\xf2\xa2\xdd\x35\x80\x2a\x03\x4c\x4d\xa4\x2a\xed\xbe\x73\x45\x26\xb5\x00\x6b\xf8\x3d\x7a\x21\xc4\xf0\x01\xff\x71\xc6\x4c\x5a\x68\x19\x88\x01\x1c\x9b\xf0\x80\x11\xaa\xc9\x0d\x2b\x0a\x0c\x23\xc2\xce\xaf\x51\xd9\xe6\xa6\x96\x65\x13\x4a\x38\x5e\xae\x5b\xe6\x7c\xca\xb4\x21\x7b\x17\x7f\x3b\xd8\x07\x81\x08\x8c\x75\x73\x62\xe8\x74\xb4\x10\x1f\x8e\xc1\xa4\x56\xdc\xca\x6b\x10\xcb\x32\x6a\x68\x21\xa7\x18\x81\x66\x49\x8a\xfd\x7d\x55\xd0\x39\xa4\x71\x55\x54\x41\xae\x60\x86\x06\x4b\xa2\x6a\x71\x5f\x9b\xf1\xa7\xe3\x94\x0f\xd3\xa4\x55\x3d\xb5\x57\xb8\x87\x1f\xa6\x39\x0f\xf4\x09\x7e\x5a\x16\xac\x58\x55\xd0\x7b\x0c\x56\x77\xe8\x45\x53\xfa\xd0\xea\x2d\x60\xd8\x90\x82\x85\x39\x46\xe4\x02\xf1\xa9\xa4\x26\xc3\xf8\x90\x9f\x4b\x66\x68\x4e\x0d\x1d\x59\xe5\xfe\xe7\x76\x89\x24\x59\xe4\x76\xa2\xfb\x0f\xfa\x1e\x98\x51\x14\x97\x0f\xd3\xb8\x0f\x56\xb5\x08\x8f\x83\xc2\xe5\xef\xed\x4a\x0b\x59\x4f\xf2\x06\xaf\x7f\x7c\x6b\x75\xeb\x95\xae\xfc\x16\xac\x8b\x3f\x6a\xdb\x9e\x8a\xf6\x9b\x38\x6c\x2d\x99\x30\x7a\x04\x47\x13\x7f\x02\xfe\x84\x83\xd3\xa3\xfb\xcd\xb1\x0f\x1b\x92\x1e\x30\x1c\xad\xef\xb3\x39\x58\x01\xbb\x77\xd9\xb8\x6f\xda\xbe\x44\x5f\x28\x03\xca\x30\x61\xf1\x06\x2a\x02\x57\x82\x87\x57\x2c\x8b\xe7\xdc\x94\x72\x69\x94\xc2\xfb\x8d\x6d\x6b\x79\x84\xd7\xf1\x03\x3f\x54\x59\x67\x18\x5e\xe3\xde\x87\xd6\x73\x0b\x3f\x58\xfd\xe6\xbe\xea\x36\x78\x26\x50\x56\xc1\x5b\xfe\xc3\x31\xac\xeb\x46\x5f\xd3\x58\xe8\x5f\xf5\x11\x80\x3e\xe8\x04\x0c\x58\xd0\x0a\xe2\xbd\x62\xf3\x5d\xa7\xe9\xda\x1b\x34\xe3\x15\xd6\x6f\x72\x3e\xc1\x87\x8e\x1f\xc7\x0f\xb4\xe0\x79\x58\x00\xef\xd2\x89\x18\x90\x53\x69\xec\x3f\xc7\xb7\x5c\x1b\xb4\x31\x1c\x49\xa6\x4f\xa5\x81\x4f\x92\xec\x14\x02\x98\x72\x9f\x9c\x19\x04\x1d\x40\x70\xdd\x23\x63\x89\xdb\x0f\xec\xa1\xd0\xc8\x7b\xf6\xe9\x13\x61\x05\x1a\x7c\xe5\x07\x96\x08\x45\xe1\xb4\x5b\xc0\x17\x4b\x10\x52\x0c\x7d\x8e\xd6\xdd\x15\xdc\x3e\x4a\xd5\xda\xc6\xce\x8b\xb9\x85\x30\xbd\x01\xbe\xe1\xda\xf3\xa5\x20\x86\x50\x6f\x1a\x7e\xd0\x2e\x5d\x32\x35\x05\xdf\x6e\xf6\x80\x2f\x72\x5d\x8b\xfc\x5a\x76\xf8\xb5\xad\xef\x9d\x6c\xee\x1d\x7e\x04\x3c\xe9\xc3\xbd\xf6\x39\xf2\x08\x7c\x8c\xa6\x42\xaa\x5f\xa2\xe1\xee\xbf\x2c\x71\x87\x23\xfd\x6f\x28\xa8\xa8\x47\xe4\x80\x68\x2e\xa6\x05\x6b\x7d\xe7\xdc\xed\xd1\x34\x2b\x96\xaa\x20\x4b\xf1\x97\x9a\x5f\xd3\xc2\xb2\x19\xc8\x0a\x09\xa5\x58\xe4\xe4\x0e\xb3\x1d\xb8\xc2\x89\x96\x20\x06\x31\x76\xe7\x8a\xcd\x77\x06\x2b\xd3\x64\x62\x8c\xde\x39\x11\x3b\x4d\x8d\xa1\x16\x96\x06\x9e\x06\x92\xf1\x0e\x7c\xb7\xd3\x9d\x6f\xaf\xe4\x50\xeb\x5b\x19\xc9\xc3\x28\xf7\xb8\xdc\x3b\x7d\xc5\x97\x87\x25\xad\x83\x24\x5e\xbe\xdc\xd3\xfb\x60\x57\x13\x8c\x40\x11\x2c\x05\x2e\x09\xfb\x69\x5c\xd1\xd9\x6a\x2c\x57\xbc\xaa\x9a\x72\xdb\x75\x35\x55\x34\x67\x64\xaa\x68\x75\xcf\xa5\x7d\x9c\x74\x8a\x22\xee\xb2\x25\x57\xa8\x65\xdb\xaf\x03\xdd\x73\xd6\x2b\xac\x0e\x2b\x7f\x77\xc3\xc6\x33\x29\xaf\xa0\x32\x0e\xe0\xdd\x13\x9a\xd4\x7e\xc4\xb5\x8e\x9a\xcf\xbc\xb9\x43\x93\x9c\x19\xca\x0b\x08\x11\xfc\xf4\xe1\xa3\x0b\x22\xf4\xb2\x9a\x87\x72\x39\xcd\x48\xa0\x1b\xd2\xdc\xc5\xc9\x9e\xb3\x6b\xce\x6e\x9c\xe5\xec\x3e\x12\x35\x24\x53\x26\x20\x40\x6d\x45\x98\xe9\x90\x68\x9e\xb3\x63\x48\xb5\xbe\x7f\xa2\x1e\x4e\xb2\x7b\x60\x7e\x88\x56\xac\xe6\x75\x0f\xf2\xb9\x35\x78\x5c\xb0\xa0\x9c\x49\xb5\xa2\xb2\xfc\x7a\x65\xd6\xd6\x2b\xa1\x16\xb2\x94\xbf\xfe\xfa\xab\x15\x7c\xe5\x96\x97\x75\xf9\x9e\xfc\xfe\x77\xbf\xfb\xea\x77\xf7\x3f\xc6\x05\x3e\xf6\xee\xfe\xf7\x73\xb7\xed\xf0\xfc\x68\x0b\xf6\x3b\x0f\xf1\xde\xab\x1d\xf0\x6b\x4c\x35\xa1\xbc\xa8\x95\x4b\x97\x58\x53\x7b\xfc\x36\xfe\x0d\x38\x4f\x9b\xb4\x5a\xea\x67\xf4\x71\xc6\x2e\xfe\x78\xc2\x05\xd3\x64\x26\x6f\x48\x2d\x14\xcb\xe4\x54\xf0\x5f\x59\x8e\xc5\x72\x35\x06\xc0\x41\x2b\x79\x8f\xe2\x84\x89\xbc\x92\x5c\x18\x60\xb1\x33\x2a\xf2\x62\x55\xac\xd2\x1a\x6f\x1a\xdf\xe0\x5e\x5b\x06\xdc\xe8\x51\x1b\xf6\xb1\xf9\xc5\xc2\x76\xd9\x77\xf6\xae\x66\xe4\x72\xb8\x6d\xbd\xde\x14\x09\xe3\xc5\x0a\x9b\xcb\x12\x18\x1f\x67\x12\x40\x53\x07\x7c\xf6\x4b\xcd\xd4\x1c\xf2\x76\x1b\xc5\x2d\x8a\x28\xbe\x6c\xca\x37\xfa\x77\x74\x42\x25\xbd\xd7\x27\x40\x96\x98\x64\x22\x51\xab\x09\x70\x5b\x80\x0a\x7e\xc3\x30\x4c\xc7\x7b\x7d\xc9\x01\x11\x75\x51\xac\x58\xe9\x9e\x49\x84\x5c\xe5\x39\xc6\xb1\x96\xfd\x61\x3d\xc3\xc0\xba\x26\x28\x1c\x9b\x33\x44\xc5\x2f\x9e\x48\x8b\x7a\x6c\x38\xf1\x86\x0c\x54\x38\xba\x98\xa9\x70\x3c\x22\x7d\x61\xfd\xd4\x85\xf5\x4a\x42\xaf\x61\xbe\xc2\xf1\x98\xdc\x86\x35\x0b\x39\x3f\xa5\x41\x0b\xc7\xa3\x62\xe0\xd6\x33\x6e\x2d\x01\x7d\xcd\x38\xf7\x27\x34\x74\xe1\x78\x0a\x73\x17\x8e\x47\xed\xe3\x3a\xa6\x2f\x1c\x5d\x76\xf1\x19\xcc\x60\xee\x9d\x9f\xd3\x18\xf6\xc0\x92\x89\x4d\x62\x38\xd6\x36\x8c\x39\xe0\x1e\x15\xb0\xfa\x88\x60\xd5\x47\x06\xaa\xf6\x08\x52\xed\xfc\xd3\x35\x8c\x67\x38\x1e\x87\xd1\xcf\x68\x48\xf3\x0b\x3e\x9b\x39\x0d\xc7\x73\x1b\xd5\x70\xac\xcd\x4f\x1f\x67\x60\x8b\x27\x7f\x00\x5d\xbb\x14\xba\x52\x8c\x8b\x6b\x89\xfd\x3e\x1f\xa5\x44\x9c\xdf\xf9\xe1\x82\x2e\x71\x03\x6c\xd4\x29\x13\x41\xfb\x8a\x75\xaa\x99\x94\x57\xa4\xd6\x0f\x7b\xd4\x56\xbe\xf7\x03\xe9\xb1\x49\x94\xe0\xc7\xdc\xb0\xf3\xba\x60\x3f\x72\x33\xfb\xd4\x94\x5c\x81\x6b\x66\xea\xaa\x80\xbd\x88\xbe\xb0\x78\x79\xde\x28\x27\x27\x06\x49\x6c\x26\xcb\x92\x89\x1c\xa3\x2d\x4b\x7a\xb5\x1a\xe1\xb5\x55\x6f\x31\xab\xa0\x28\x50\x85\x83\xa5\xd8\x6d\x45\x45\xa3\xac\x5c\x5b\x46\xbd\x0a\x85\xd7\x44\xe0\x75\x65\xb2\xb5\xf3\x4c\x1f\x2d\x6f\x2f\xe6\x95\x46\x89\xa1\xad\xfc\x51\x32\x66\x85\x84\x9a\x52\x98\x39\x81\x59\x46\x6b\xa7\x5a\x9e\x4c\xfc\xaf\x9c\xe4\xe4\xfa\x14\x31\x31\x6d\x0a\xcd\xeb\x82\x67\x2c\xb0\x4c\xb9\x4e\x31\x9f\x73\x27\x4d\xaf\x27\xa0\xaf\xc3\xfb\xd6\xe4\x7b\x8f\xe0\x79\x3d\xf8\x1d\xad\xf8\xc3\xa6\x40\x1c\x1d\x4e\xde\x4f\x1d\x9f\xfd\xb5\xff\x6c\x9d\xd3\xf7\x0f\xbf\x9e\xff\xaa\xd1\xe3\xfc\x9b\x52\x53\xa9\x8f\xbf\x4d\x51\x1b\x19\x38\x9c\xfd\x02\x6b\xc9\xa8\xb2\xcc\x1e\x2c\xf9\x43\x72\x78\x7e\x7c\x70\x79\x3c\x20\xdf\x9f\x1d\xc1\xbf\x47\xc7\x1f\x8e\xed\xbf\x87\x9f\x4e\x4f\x8f\x0f\x2f\xad\xf0\xfc\xc5\x83\x20\x40\x23\xe7\xa2\xc0\xd3\xb7\x12\x8a\x6c\x13\x73\x2a\xe6\x64\x52\x1b\x4b\x91\x1b\x60\x5a\x50\x52\x34\x21\xd2\x3c\x5f\x27\xd9\xf1\xb3\xc3\xc1\xd6\x99\x87\x03\x5d\xb4\xda\x46\x7b\xe6\x7a\x67\xbb\xbc\xfe\x87\xdf\xec\x79\x90\x7c\xed\x3c\xcd\xc7\xe2\x78\xb7\x14\xce\xff\xf1\xe0\xbc\xdf\x4a\x45\xd8\x2d\x2d\xab\x62\x8d\x0c\xb9\xdd\x4a\xe6\x7a\xd7\xe5\xea\xda\xff\x7e\x78\xdb\xe1\x27\x6f\x0a\x39\xdd\x0d\x29\xbe\x8c\x14\x72\x4a\x74\x3d\x0e\xf9\xdb\x20\x08\xae\x35\xdb\x17\x7e\x9a\x56\x32\xea\x20\x24\x79\x47\xb3\xae\x0d\x5c\x6b\xce\x78\x82\xc7\xc0\xf5\x46\x67\xb4\x60\xad\x99\xec\x07\x8f\x05\xe8\x8b\x37\xcb\xdf\xd0\x6b\x2a\x5c\x2d\xcc\xb8\x0e\xa5\xb8\xe1\x45\x9e\x51\x95\xdf\x21\x17\x20\xfa\xe1\x6d\x02\xcc\xc1\xc6\x80\x02\x04\xc7\x66\x69\x2c\x04\xf9\xb0\xc5\xea\x9a\xa9\x82\x56\x98\x07\x08\x1d\x2d\x21\x6e\x79\x0d\x10\x8f\x58\xc5\xa0\x8e\x00\x36\xf1\x62\x84\x89\xac\x90\x50\xe9\x12\xa5\xce\x41\xfb\x58\x30\xca\xd9\x37\xdc\x59\x37\x3f\xfc\x33\x67\xaf\x90\x50\x96\x9a\xea\x60\x96\xda\xbd\xd5\x68\x7d\xfe\xf1\x83\xf3\xa0\x31\x30\x68\xd9\x8c\xec\xb8\x22\x12\x3b\x03\xb2\x13\x0a\x8f\xe6\x4e\x23\xdf\xf9\xe2\xe1\x92\xce\x61\x82\xb8\x72\x00\x28\xec\x2e\xd2\x61\x08\x70\xc6\x85\x5a\x00\xbb\x7d\x8c\xc6\xda\xa0\x37\x45\x79\xad\x48\xe9\x5c\x2d\xf0\x0e\xed\x85\x1e\x9e\x29\x7e\xd1\x3b\x50\x37\x15\x3a\x7a\x43\xbc\xf3\x45\x6b\x7a\xe3\xab\x93\x13\x21\xdd\xe1\x29\x66\xb1\x71\x55\x2a\x40\x3c\x2e\x5a\x77\x2f\xc4\xb8\xc4\x55\x89\xb9\x22\x15\x55\x4c\x98\x00\xfc\xc3\xd3\xba\x26\xce\x60\x8c\xf9\x62\x67\xbd\x5b\xb9\xf2\x12\x45\x61\x0d\x6b\xda\x2a\x2e\xc2\x2f\x0e\x0b\xaa\xf5\x12\x87\x27\xf0\x00\x3b\xb1\xab\x4d\x6f\x79\xaf\x8b\xf9\x80\x56\xa6\x33\x7a\xbd\xe2\x55\xd7\x00\xda\x50\x35\x65\x66\x75\x40\x02\x15\xf3\x4f\x2b\x9b\x40\x0c\xd7\x6e\x0d\x37\xec\x60\x31\xe2\xc2\x0c\xa5\x1a\xe2\x4f\xde\x13\xa3\xea\xfb\xec\x0e\x86\x97\x4c\xd6\xe6\x82\x65\x52\x2c\x4f\x1a\x76\xcf\x25\x8b\xb0\x78\x44\x26\xb5\x0b\xf2\x39\xf0\xe2\x77\xdc\x99\xc6\x9b\xa3\x1a\xd9\xdc\x07\xf6\xb4\x8b\x8b\x7e\xfa\xf0\xb1\xcf\x61\x13\xa8\x20\xb5\xfa\x24\x7f\x70\x3c\x59\x4c\x03\xa4\x0e\xf2\x95\x3f\xfb\x58\x9b\xc7\xff\xe8\x30\x04\x8c\xac\x7e\xda\x6d\xc6\xea\x42\x8f\xf7\xbe\xbf\x36\xd4\xd4\x77\xb0\xe1\x21\x56\xe4\xe8\xfb\x05\x16\x72\x70\xea\xfd\x05\x4c\x15\xfb\xac\xe2\x1a\x72\xa8\xd1\x61\x11\x4d\x78\xce\x67\x94\x8c\x88\xfb\xa1\xbd\xb2\x46\x51\x8e\xe6\x30\x9a\x99\x9a\xde\x75\xb9\xdb\x1f\xbb\x6c\x94\xe5\x95\x63\x57\x18\xc4\x56\x19\xc1\x32\xa6\x8c\xfe\x40\xb5\xf9\xbe\xca\xe9\x3d\x35\x04\x16\xb2\x4c\xb4\x81\x3b\x85\x3a\xed\x8d\x60\xb9\x65\x42\x6e\x4b\x70\x3e\x72\x63\xa9\x7b\x8d\x33\x2e\x99\xf0\x01\xac\xf4\x77\xcc\xfe\x7c\x68\x97\x5a\x0e\xf5\xb9\xb4\x7b\x72\xb0\x94\x46\xb5\x93\x79\x1e\x82\xd6\x72\x34\x05\xb3\x11\xc1\x6e\x97\x49\x95\xfd\x21\x2e\x18\x15\xcb\x93\x2d\x5b\xb0\x1e\xe2\x73\x8f\xc7\x29\xb7\x00\xb9\x99\x71\xab\x6e\x61\xad\x05\x4d\xbc\x10\x9b\xb3\x82\xdd\x53\x72\xa1\x67\xfe\x8f\x5b\xe1\xc8\x2d\xd0\x37\x74\xfa\xac\x3d\x5d\xf0\x78\x3b\xdd\xd2\x65\xe5\x36\x5a\x9a\x93\x7d\x82\xad\x62\xf1\x85\x41\x78\x1b\x17\x32\xbb\xc2\xa2\xe6\x50\xd4\x8c\xff\xca\xd4\x0a\x21\x03\xbc\x88\x5c\xe4\x3c\x0b\xe1\x0a\x95\x92\x53\xc5\x74\x6b\xab\xb1\x06\xac\xc6\xd9\xed\x9a\x76\xcf\xc3\xba\x52\x35\xbe\x9d\x5a\xb8\xb2\x17\xcf\x93\xa2\xe4\xf5\x72\xc8\xdf\x6c\xf9\xd2\xef\xaa\xe8\x58\x5f\x12\xba\x62\x38\x03\x0d\x2d\x5d\x92\xf5\x9b\xef\xee\x4f\x3d\x4e\x9a\x3f\xb4\x2a\x01\x1a\x9f\xe0\xbe\xef\xcd\xca\xa7\x56\xa4\x4a\xaf\xeb\x0a\x78\x20\x25\x9a\xac\xaf\x3a\x05\x90\xd7\x99\x2d\x69\x4e\x45\xf2\x30\x99\x35\xaa\x01\x3f\x26\xf8\x65\xdd\xee\x51\x8f\x72\x7b\x8b\xc7\xb4\x4d\x69\xdd\x96\x46\x99\x72\xb5\x53\x30\x3e\x6e\x22\xd5\xbd\x6a\x5b\x3a\xe0\x57\x27\xd0\x3f\x38\x91\x95\x69\xef\x0f\x44\x6f\x33\x6e\x4f\x41\xc3\x4f\x06\x84\x92\x19\xd7\x46\x2a\x17\x21\x62\x19\xa0\x51\x54\x68\xfc\xfe\x5e\x5e\xd1\x37\xb4\xfd\x30\x80\x40\x68\x55\x31\xaa\xbc\x9f\xde\xb1\x33\xaa\xc1\x88\x9a\x49\x95\x2f\x05\xcc\x9b\x64\x96\x8a\x63\x4b\x97\x4f\x50\x3b\xa4\xa0\xda\x5c\x06\x18\xac\x4c\xb1\x26\x35\x6e\x4b\x4c\xee\x15\x9b\xb7\xf1\x35\x2c\xa5\x68\xbe\x94\x84\x0a\x67\xa8\xba\x6f\x89\xb5\xf0\xeb\x61\xb9\xa4\x79\x37\x14\x00\x3b\xbd\xd7\x4d\x10\xf6\xa2\x57\x7c\x1e\xc8\x4b\xa6\xf5\xca\x84\xf2\x85\x4a\x36\xd0\x71\x8a\x84\x8e\x53\xee\xe7\x9e\xd9\xa3\xe0\x80\xb9\x15\xbe\x32\xf3\xfc\x7e\x54\x23\x20\x26\xa0\x19\x24\x5c\xab\x5e\x47\x56\xcd\xa8\x5e\xf7\x65\xc2\x2d\x0a\x39\x3c\x6b\x5f\x87\x35\xa1\x51\x8c\xea\x55\xb5\x39\x1e\x13\x04\x3d\x56\x9c\x4d\xc8\x21\x2d\x59\x71\x48\x75\xca\x9d\x07\xf2\xb0\xca\x54\xc3\x46\xd3\x11\xd9\x3d\x8f\xc2\x64\x4e\xa5\xf9\xc8\xcc\x6e\xb7\xbd\x59\x8f\x10\x3c\x29\x09\xe8\xad\x8e\x3c\x7c\xe1\x7b\x5e\xf5\xde\x10\xae\xb8\xd8\x5b\x71\xa5\x57\xd7\xa5\xb9\xef\x1a\xb7\x2f\x70\xad\xc0\x3c\x99\x75\xbd\xc8\x0f\xd4\xba\xb8\xef\xf2\xae\x73\x6d\x37\x74\x61\x1f\x73\x55\x1f\x78\xfb\x30\xc5\xc5\x52\x53\xcf\x9d\x8d\xb8\x6c\xa9\xd3\xe0\x2b\x8a\x63\xe3\xb1\x13\x15\xd7\x56\xc9\x4b\x29\x18\x6d\xb6\x7e\x94\x3b\xd4\x7b\xbf\x5f\x21\xf9\x0f\x57\xf3\xf9\xbe\xb5\xa9\x72\xf0\xbf\x59\x0c\x78\xce\x70\xb9\x23\xbf\xaa\x33\xc0\x84\xfe\x37\xf0\x17\x7a\xf7\x03\x64\x2d\xfc\xd8\x33\x92\x54\x8a\x5d\x43\x1e\x85\x80\xfc\x50\x46\x04\xd3\xf6\xa2\xec\xaf\x58\x7e\x4d\x95\x6d\x3d\x75\xed\x61\x55\xfa\x41\x35\x99\x3c\x7c\xb4\xfe\xa1\x55\x07\x8c\x63\x5d\xad\x70\x0d\xad\xfb\x11\xea\xe0\xc3\x3a\xd5\x23\x26\x7b\x50\xc0\x7c\xe4\x7c\xcb\x0d\xcf\x8b\x63\xa1\x55\x8d\xfd\xc9\x39\xd0\x73\x8c\xb4\xc8\x2c\x55\xce\xa0\x0b\x13\x92\xf9\xd0\x28\x2f\x36\x32\x9f\x2f\xd2\x40\x88\xb9\x6f\x63\x78\xaa\xd7\xaa\x6b\x9e\x6e\xcf\x1f\x2c\x0a\xb7\xf6\x7c\x5b\x50\xe1\xee\x41\x04\x7a\xda\x92\x57\x38\x1e\xc2\xba\xcd\xe3\xdb\x3a\xd5\x4e\x57\xe2\xd8\x13\x15\x1b\xd4\x4c\x5d\xb3\xbc\xe5\x61\x74\xdd\xd0\xda\x9f\x45\xfe\xe8\x66\x7e\xb7\xed\xe4\xbf\xfe\xfb\x7f\xfc\xbf\x00\x00\x00\xff\xff\x56\xa9\xfb\x73\x0f\xcb\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\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")
+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\xff\xf0\x4f\xe9\xa6\xc8\x71\x4a\x89\xed\xa8\x96\xeb\xbd\xb8\x7c\x68\xce\x34\x49\x58\x18\x00\xc6\x83\x14\xe3\xf8\xbb\xa7\x1a\x98\x19\x0e\xc9\x79\x91\xab\x95\x82\x8b\xc4\x19\xa0\xd1\x0f\x74\xf7\xaf\x01\x0c\x1a\xf1\x91\xac\x13\x5a\xdd\x02\x1a\x41\xcf\x9e\x14\xff\x72\xd3\xa7\xbf\xb8\xa9\xd0\xb3\xcd\xbb\xab\x27\xa1\xf2\x5b\xb8\x0f\xce\xeb\xe2\x3d\x39\x1d\x6c\x46\xdf\xd1\x52\x28\xe1\x85\x56\x57\x05\x79\xcc\xd1\xe3\xed\x15\x00\x2a\xa5\x3d\xf2\x63\xc7\x3f\x01\x32\xad\xbc\xd5\x52\x92\x9d\xac\x48\x4d\x9f\xc2\x82\x16\x41\xc8\x9c\x6c\x24\x5e\x4d\xbd\xf9\x66\xfa\xee\xff\xa7\xdf\x5c\x01\x28\x2c\xe8\x16\x84\x72\x1e\xa5\x34\x12\x95\x9b\x6a\x43\x16\xbd\xb6\x6e\x9a\x69\x4b\x9a\xff\x14\x57\xce\x50\xc6\x53\xac\xac\x0e\xe6\x16\x5a\xfb\x24\x6a\x15\x27\xe8\x69\xa5\xad\xa8\x7e\x03\x4c\x40\xcb\x22\xfe\x9f\x24\x7c\x48\x93\x3e\x4a\x54\xf1\xa9\x14\xce\xff\xf3\xf8\xcd\x0f\xc2\xf9\xf8\xd6\xc8\x60\x51\x1e\xb2\x1a\x5f\xb8\xb5\xb6\xfe\xa7\xfd\xc4\x3c\x91\x30\xe9\x95\x50\xab\x20\xd1\x1e\x8c\xba\x02\x70\x99\x36\x74\x0b\x71\x90\xc1\x8c\xf2\x2b\x80\x52\x37\x25\x91\x09\x60\x9e\x47\x7d\xa3\x7c\xb4\x42\x79\xb2\xf7\x5a\x86\x42\xd5\x93\x70\x9f\x9c\x5c\x66\x85\xf1\x51\xa7\x1f\xd6\x04\x4b\x61\x9d\x87\xfb\xf9\x47\x10\x0a\xfc\x9a\xa2\x4c\xa0\x97\x90\xc9\xe0\x3c\xd9\x39\xd9\x8d\xc8\xa8\x5c\x02\x71\xfe\x9a\x1c\xc0\x6f\x4e\xab\x47\xf4\xeb\x5b\x98\xb2\xba\xa7\xdd\x83\x7e\xf9\xe6\xd7\xc6\xb8\x64\xc3\xfb\xf9\xc7\xc6\x33\xbf\x63\x09\x9d\xb7\x42\xad\xfa\x38\x46\x63\xac\xde\xa0\x84\x42\xe7\xd4\xc3\x4b\xd5\xef\x64\xda\xbb\xd3\x17\x1d\x73\xb7\x93\x8c\xca\x6f\x23\x79\xf0\x22\x91\x5c\x68\x2d\xa9\x5c\x2d\x55\xe7\xcd\x3b\x94\x66\x8d\xef\xca\x87\x2e\x5b\x53\x81\x7b\x23\x69\x43\xea\xee\xf1\xe1\xe3\xff\xcd\x8f\x5e\xc0\xa1\x2e\x1a\x4b\x0e\x72\x76\x36\x72\xd1\x80\xe5\xc2\x89\x3e\xc6\x86\x44\x70\x14\x2d\xba\xf7\x80\x13\x36\xf5\xe2\x37\xca\x7c\xe3\xb1\xa5\xdf\x83\xb0\x94\x37\x67\x67\x8d\x54\xae\x7c\xf4\x98\xb5\xd3\x78\x64\x2c\xcf\xe5\x1b\x9e\x94\x5a\x23\x96\x1c\x3c\x3f\x92\xec\x3f\x93\xa3\xb7\x00\xac\x90\x34\xf2\x40\xd6\xd2\x05\x28\x2f\xb5\xc8\x62\xfa\xb5\x70\x60\xc9\x58\x72\xa4\xfc\x5e\x0d\xaa\x94\x72\x7a\x42\x9c\x97\x2b\x59\xc7\x7e\x19\x64\xce\x11\x69\x43\xd6\x83\xa5\x4c\xaf\x94\xf8\x77\x4d\xdd\x81\xd7\xc9\x47\xd0\x93\xf3\x10\x9d\x4c\xa1\x84\x0d\xca\x40\x37\x80\x2a\x3f\xa1\x5d\xe0\x0e\x2c\xf1\xbc\x10\x54\x83\x62\x1c\xe2\x4e\x79\xf9\x51\x5b\x36\xe1\x52\xdf\xc2\xda\x7b\xe3\x6e\x67\xb3\x95\xf0\x55\xac\xcd\x74\x51\x04\x25\xfc\x6e\x16\xc3\xa6\x58\x04\xb6\xe7\x2c\xa7\x0d\xc9\x99\x13\xab\x09\xda\x6c\x2d\x3c\x65\x3e\x58\x9a\xa1\x11\x93\x28\x8c\x8a\xf1\x76\x5a\xe4\x5f\xd8\x32\x3a\xbb\xa3\x89\x5b\x1d\x00\xaa\xc0\x77\xa6\xb1\x38\x24\x82\x70\xbc\xf2\x22\xc1\x24\xec\xde\x26\xfc\x88\xd5\xf8\xfe\x6f\xf3\x0f\x50\x71\x94\xec\x96\x4c\xb4\xef\xda\xa2\xa1\xca\x5a\xac\x59\xa1\x96\x64\xd3\xc8\xa5\xd5\x45\xa4\x4a\x2a\x37\x5a\x28\x1f\x7f\x64\x52\x90\xf2\xe0\xc2\xa2\x10\xde\xc5\x65\x4d\xce\xb3\x21\x4f\x09\xdf\xc7\xdc\x04\x0b\x82\x60\x72\xf4\x94\x9f\x76\x79\x50\x70\x8f\x05\xc9\x7b\x74\xf4\xea\xb6\x63\x1b\xb9\x09\x1b\x64\xb4\xf5\x9a\x99\xf7\x74\xc0\x89\xd7\x03\x54\x49\xb3\xd3\xdc\x8d\xa8\x33\x37\x94\xd5\xde\x58\x47\x99\x3b\x63\xa4\xc8\x92\xdb\xd5\xab\x8d\x1d\x67\x51\x87\x26\x3a\x76\x93\x4e\x76\xba\x02\x11\xa4\x84\x77\x1a\xc8\x0f\x5f\x9d\x4c\xc4\xaf\x46\x25\x36\xe8\x89\x62\x10\x23\x59\x9a\xfa\xf4\xcd\xb0\x7b\x70\xab\x72\x10\xbb\x09\xaf\xd3\xe0\xc8\xee\x33\x9b\xd1\x52\x64\x3b\x58\x6a\xcb\x61\xab\xa1\xf2\xd3\x35\xc7\xed\xc1\x43\x11\x5c\x5c\xb9\x5a\x11\x1b\xe1\xfa\x2e\x78\x5d\xa0\x17\xd9\x35\x68\x0b\xd7\x3f\xa2\x0a\x28\xaf\xdb\x86\x77\xae\x9d\xbd\x98\x6d\xda\x6f\x4f\x70\xfb\xd6\xad\xe5\x6e\x5a\x68\x2d\xee\x5a\xde\x0a\x4f\x45\xeb\xb0\x01\xee\x57\xa4\x38\xe3\xb5\xa4\x9b\xfd\x50\x8e\xe1\x2b\xb2\x27\xef\xd3\xc2\xed\x1e\xd7\x31\x65\x1a\x56\xc3\xb4\xb3\xc6\x3b\x8f\x3e\x9c\xc8\x39\xb4\x9a\x9a\x0e\x19\x09\x34\x82\x67\x89\x07\x96\xda\x16\xc9\x21\x71\xa1\x43\x0a\x8c\x69\x32\xd0\xcb\x53\x11\x3c\x19\x57\xfb\x1d\x7b\x6e\xa6\x0b\x23\xc9\x1f\x42\x8b\xe9\xd5\x69\x64\x4e\x34\x39\x30\x7b\x8b\x42\xc6\x89\x30\xf3\x01\x65\x9c\x8f\x4a\x38\xb2\x73\x9e\x8a\xe3\xb5\x78\x61\x0c\xc8\xd0\xa3\xd4\xab\x79\x6b\x56\xe3\x0e\x66\x8d\x8e\xce\xf1\x6c\xef\x49\x05\x0e\xff\xe5\xda\xbd\xcb\x32\x1d\x94\x7f\x4f\xcb\x8b\x9d\xbd\x9b\x24\x58\x5a\x92\x25\x95\x95\x80\xc6\xa5\x0e\x80\xa9\x07\xf8\x35\x7a\x8e\x11\xc1\xb5\xc4\xb2\xa8\x36\x0d\xb9\x4e\xe5\x41\x5e\x23\xbc\xca\x50\xdd\xfe\xde\xaa\xe7\x21\xd5\x40\x2f\x84\x6b\xd5\xc8\xdd\xe3\x43\x05\xd2\x12\x36\xa3\x4a\xe2\x16\x1c\xd6\x64\xb0\xc3\xbf\xb8\x2d\x05\xc9\x3c\xc2\xf2\x31\x1c\x74\xd8\x84\xdb\x43\xa9\xfe\x88\x51\xbc\x06\x04\x23\x28\xa3\x03\xb4\x18\x55\x49\x98\x97\x0f\x39\x1d\x5b\x2a\xdf\xdd\x24\xe4\xd1\xc3\x2a\xa4\x6a\xaf\x44\x95\x1e\x85\x02\x64\x34\x24\x72\xf8\xc7\xfc\x5f\x3f\xcd\xfe\xae\x93\x34\x6c\x6f\x72\x2e\x79\x49\x41\xca\xdf\x80\x0b\xd9\x1a\xd0\xb1\x30\xbc\xf6\xd9\xb7\x68\x5a\xa0\x12\x4b\x72\x7e\x5a\x52\x23\xeb\x7e\xf9\xf6\xd7\x2e\x4d\x02\x7c\xaf\x2d\xd0\x33\xb2\xfb\xde\x80\x48\xfa\xaf\x21\x56\xb9\xf0\x62\x0a\x62\xe1\x6b\x9a\xb0\x15\x7e\x1d\x59\x35\x3a\x2f\x85\xdc\x46\x21\x3c\x3e\x71\x8e\x49\x42\x04\x2e\x16\x9f\x5a\x63\x5c\x6a\xd7\xa9\x26\xac\x59\xfd\x83\xeb\x9f\x3f\xaf\xe1\xab\xed\x9a\x2c\xc1\x35\xff\xbc\x4e\x8c\xd4\xd0\x9a\x9f\x55\x2b\x65\xcf\x50\x74\x03\x6f\xc5\x6a\x45\xb6\xc3\x11\xb8\x45\xf8\xc7\x90\xe9\x6b\xce\x7a\x62\x09\x4a\x37\x88\x44\xd2\x6c\x2f\x43\x99\x58\x0a\xca\x4f\x18\xfc\xe5\xdb\x5f\xaf\xe1\xab\x43\x3d\x74\x4e\x26\x54\x4e\xcf\xf0\x6d\xaa\x9b\x85\x63\x5d\x7d\x3d\x85\x0f\x71\x45\xec\x94\xc7\x67\x9e\x2b\x5b\x6b\x47\x0a\xb4\x92\x3b\x96\x70\x8d\x1b\x02\xa7\x0b\x82\x2d\x49\x39\x49\xe0\x29\x87\x2d\xee\xda\x22\x71\xd5\x2a\x53\xf1\x32\x45\x30\x68\xfd\x40\x41\x53\x6a\x63\xc8\x91\xda\xb0\x7d\xd5\xc6\xfa\x50\xc4\xfa\x23\x3d\xfb\x0d\x11\xf2\x68\x9d\xc4\x12\xfd\x13\x75\xf2\x53\x63\x0d\x5f\xa4\x93\xa7\xb0\x20\xab\xc8\x53\x54\x4b\xae\x33\xc7\x1a\xc9\xc8\x78\x37\xd3\x1b\x4e\x11\xb4\x9d\x6d\xb5\x7d\x12\x6a\x35\xe1\x45\x3a\x49\x2b\xc1\xcd\xe2\x76\xd6\xec\x0b\xd5\x02\x67\xcf\x52\x41\x27\x7a\x39\x57\x0f\x91\xd0\x5b\x2a\x83\xe7\x77\xb3\x4b\x75\x51\x55\x30\xe7\xe4\xbc\x1e\x8d\xcc\x53\xe8\xc9\x8e\xe9\x72\x6c\xd8\xae\x45\xb6\xae\x76\x2f\x1a\xb1\xb9\xc0\x3c\x05\x6f\x54\xbb\x37\xf3\x2c\xd6\x78\xb0\xcc\xd3\x6e\x52\xee\xd8\x4e\x50\xe5\xfc\xbf\x13\xce\xf3\xf3\x4b\x55\x1c\xc4\x27\x07\xa1\x9f\x1f\xbe\x7b\x5b\x7f\x0b\xe2\xd2\x88\xf3\x3c\xd9\x4f\x3e\x29\xd0\x4c\xca\x52\xc8\xeb\x42\x64\x27\xfd\x17\x41\xe5\x92\x7e\xd0\xfa\x29\x98\x56\x80\x76\xa0\xb1\xbf\x36\x7b\x57\x95\x66\x59\xa6\x0b\x35\x31\x56\xaf\x2c\xa3\x8e\xc6\xae\x08\x98\x20\x25\xa0\xca\x21\x28\x83\xd9\x13\xae\xa8\x9c\x34\x26\x52\x62\x48\xaa\xcb\x9d\x95\x58\xe0\x75\x43\xcc\x0b\xaa\xb9\x4e\xee\xd3\x6e\x52\xc9\x67\x07\x9b\x15\x62\x60\x1e\x63\x9d\x51\xf2\x3d\xcc\xef\x20\x28\xee\x2b\x41\x52\x3b\x2a\x44\xde\x53\x57\x36\x9f\x80\xc8\xd9\xaf\x96\xa2\xa5\xe8\xac\xba\x18\xec\xc4\x1d\x13\x2e\xef\x24\xb6\xd5\x3a\x30\x02\xbe\xc3\x09\x9f\xdd\xf0\xed\xc0\x1a\xf7\x47\xc3\x2a\x8b\x54\x81\xaa\xd4\xf2\x41\xb7\xf8\xa4\xb4\x02\x8b\x04\x5b\x74\x31\xf2\xc9\x0d\xe5\x71\xc3\xae\xdb\x4b\x07\x2d\x32\x4e\x5a\x18\x55\xb2\xb4\xc8\x7b\x41\xe1\xd2\x64\x7c\xa0\x26\x18\x51\xc4\xb4\xf0\xd4\x13\x01\x53\x7b\x9d\x82\x26\xb5\xb7\x2c\x6b\x52\x7b\xdb\xe2\x26\xb5\x57\x2f\x71\x52\x7b\xd5\x42\x27\xb5\xd7\x2b\x77\x52\xbb\xb0\xe8\x29\xf5\x33\xce\x09\xfb\x0a\xa0\xd4\xce\xf3\xbf\xf3\x8a\xa1\xd4\xde\xbc\x24\x3a\x4b\x63\x7d\xe5\xd1\x25\x1a\x3b\xaf\x54\xea\xd4\xd8\x67\x2d\x98\xce\x56\x50\x6f\xf1\x74\xa9\x96\xce\x2c\xa4\x3e\x97\xaa\x7a\xcb\xa9\xb3\x34\x35\xb2\xb4\xba\x44\x5f\x9f\xaf\xcc\xea\x54\xeb\xff\x46\xb1\x75\x96\x01\x7a\x0a\xaf\x4b\x94\x7e\x56\x11\xd6\xa9\xc7\xcf\x59\x8a\x9d\xa1\x9d\xf3\xca\xb2\xd4\x32\xad\xd2\x05\x9c\x1e\x34\x7a\x88\xa9\xeb\x01\xc7\x67\x36\x2c\x29\xca\x83\x53\x93\x66\x39\x34\x04\x9b\xbb\x4a\xaf\xd4\x7a\x0a\xb0\x26\x91\x01\xec\x3d\x5c\x13\xa5\x36\x29\x8f\x9a\x06\x3a\xf1\x9c\x3d\x5d\xc6\x21\x7d\x00\x89\xce\x7f\xb0\xa8\x5c\xd4\xeb\x07\x31\x94\xad\x8e\x2c\xf2\x03\x72\x79\x29\x8a\xba\x9a\x4c\xf6\x01\x5f\x93\x2c\x0b\x97\x78\xd0\x5a\x9e\xa1\x31\xbe\x54\xda\xaf\xbb\x8a\xcb\x7d\x1b\xe9\x98\xdc\xd2\x99\xdd\x2d\xe4\xe8\x69\xc2\x1c\x0d\x8a\xfd\x73\xbc\xb4\xf0\x62\x22\x73\xad\x66\xac\x5e\xb4\x5d\x83\x78\x25\xa9\x0a\x72\x0e\x57\xe7\x89\x73\x07\xeb\x50\xa0\x02\x4b\x98\xe3\x42\x52\x45\x84\xf1\x6b\xbc\x96\xa0\x56\x90\x93\x47\x21\x5d\xe3\x34\x74\x6f\xdf\x17\x13\xd6\x12\xba\xa1\xac\x06\xa7\xb7\xdb\xd2\xb0\x78\xf4\x7f\x60\x8f\x2f\x5d\x34\xf2\xe7\xe0\xb4\xfd\xdc\xb9\x97\xd3\x79\x75\x7a\x7c\xc8\xe4\x4d\x75\xff\xe0\x83\x0d\x74\x03\xdf\xa3\x74\x74\x03\x3f\xab\x27\xa5\xb7\x2f\xc7\x6f\xec\x78\x96\x5e\x77\x26\x72\x55\xf3\xf9\x02\xac\xec\x77\x71\x46\x06\xfb\x87\x7a\x40\xb5\x13\x57\xee\xc4\x4c\x82\x12\xbf\x87\xc3\xb2\xb0\x3e\xc8\xfd\xea\xb8\x60\xbc\x9f\x7f\x8c\x8b\x23\x6d\xab\xb8\x54\x36\x56\x45\xf8\xfd\xfc\xa3\xfb\x7a\x20\x37\xf4\x4a\x65\x7a\x37\x24\xc6\xe3\x81\x47\xf4\xeb\xa3\xaa\x57\xea\xac\x71\x25\x71\xbf\x37\x67\x42\xfb\x39\x75\xd5\x1e\xfc\x97\x8e\x59\x17\x19\x4a\xb9\xe3\x02\x50\x14\xec\xcf\x35\x78\x1b\x4a\x86\xfd\x02\x8f\xc8\x2b\x27\x3e\x4a\xcb\x25\x65\x5e\x6c\xa8\x31\xbc\xb2\x4f\xda\x8f\xa4\xbc\x94\xf0\x93\x98\xab\x76\xfa\x46\xb2\xf6\xbe\xec\x5e\xad\xaf\xe6\xb2\xd9\xeb\xbb\x24\x1a\x4b\xfe\xb4\xd6\x14\xc1\x52\x07\x95\x03\xfa\x68\xb8\x0b\x79\x3e\xbc\x89\xf1\x7a\xb7\x7c\xfa\x61\xd7\xcb\xec\x45\x77\x2e\xf6\xc6\xed\x9b\x1a\xcd\xf5\x81\xb9\x7d\xd0\xa4\x67\xca\x42\xe9\x10\x1d\xc4\xc7\xdc\xfd\x1a\xc4\x6a\xc3\x2b\xfc\x1c\xcc\x34\x2a\x48\x8f\xcd\xf2\x63\x51\xcb\x8b\x4e\x3a\x08\x2a\x46\x39\x66\x7f\x6e\x6f\x47\xf9\xef\x53\x6a\x8f\x1b\xe7\x19\x16\x24\x33\x74\x94\x1f\x67\xfc\x04\xf9\xc7\xa4\xf9\x11\x8c\x0e\xa5\xf6\x11\x24\xfa\xb3\x6d\xd7\xdd\xd0\x5a\xe8\x98\x7b\x53\xaf\x45\x75\xc7\xa9\x2e\x6a\x0e\xd6\x37\x87\x1f\x84\x8c\x6c\x4c\x65\xe9\x0a\x2f\xb2\xae\xb6\x6b\x7d\x71\x20\xed\xb1\xf6\x18\x07\xff\xb1\x02\x8f\xcc\x47\x04\x96\x93\x13\x60\x59\x26\xdf\x3d\xb0\xec\xd8\xbd\x6d\xde\xc3\x8b\x59\xbb\xc0\x5d\xbc\x14\x5b\x18\x6d\x3d\xa6\x93\xb5\xa0\x72\xb2\xce\xa3\xca\x99\xde\x76\xbd\x63\x8d\xb5\xfb\x35\xab\x6c\x8d\x0e\x84\x77\x90\xb6\x0b\x7c\x69\xef\xb3\xaf\x79\xc6\x3b\x72\x83\x3a\x6a\xd8\xea\x91\x07\xd4\x38\xe6\x60\xf2\x94\xdf\x0f\xec\xda\x6b\xc4\x7e\xc6\x24\xf6\xdc\xdd\xfc\xd4\xa8\x3e\xf7\x64\x8e\x83\x75\x43\x08\x15\x6b\x86\x8d\xc8\xd3\xfd\x45\x32\x20\xd4\xcb\xc4\xe4\xe1\xd3\xc4\x74\x4a\xd6\xed\x95\x93\x7a\x6b\xab\xb3\x43\x4f\xd9\x3d\x9c\x13\xb4\x49\x5f\x12\x0d\x85\x8e\xae\xeb\xbf\xa9\xd5\x52\x7c\x62\xb4\xed\xbe\x8c\x9b\xda\x78\x60\xca\x26\xaf\xbe\x50\xeb\x31\x7d\xe3\xab\x84\x78\x71\xdd\xdb\x12\xd4\x31\x00\xed\x03\xab\x43\x4b\x03\xc6\x6e\xaf\x8c\xd9\x5c\x99\xa4\x6f\xdb\x7a\x7b\x3c\x89\x96\x8f\x52\x9a\x1d\x18\x25\xf6\x76\xd8\x5f\x69\x1e\xd9\x2d\xee\x11\xf7\xf6\x2d\x0f\x56\x3b\xfb\x8c\xdb\xed\x49\x1f\xf6\xbd\xc4\x4e\xe8\xf0\x39\xd0\x48\x42\xd5\x41\xe6\x8b\x10\x1b\x3e\x6b\x19\x49\x68\x6f\x9a\x17\x26\x37\xe2\xa0\x63\x24\xcd\xcd\x98\x43\x80\x17\x00\x3c\xe7\x45\x8a\x72\x9b\xa3\x27\xcf\x19\xb4\x5e\x64\x41\xa2\xdd\x87\x8c\x98\x38\xc6\x05\x89\xcb\xc2\xa2\xf3\x68\x7d\x17\x64\x1e\x23\xe1\xbc\x22\x50\x89\x16\xf7\xff\xb6\x6b\x52\xf5\xa1\x74\xfa\x24\x17\x16\xb4\xe2\x0c\x6e\x8c\xdc\x75\x29\x3d\x6d\xf8\x57\x1f\xfa\x48\xe1\x3c\xe5\xd5\xc7\xa4\x11\xa4\x8c\xbd\x30\xd4\x69\xd8\x2e\x68\xef\xc8\x6e\x28\xbf\x05\x6f\x43\xfd\xc8\x6b\xcb\x78\xef\xe0\x59\x58\xd4\xfc\xed\x35\x56\xae\x14\xf8\xe3\xcf\xab\xff\x06\x00\x00\xff\xff\x1d\xac\xd8\x67\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\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")
+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\x51\xf6\x5d\x91\xbb\xa8\x1f\x8c\x40\xd7\x1c\x8c\x26\x48\x10\xbb\x29\x50\xd7\x2d\x46\xe4\x90\xdc\x7a\xb9\xcb\xee\x8b\x6d\x5d\xd3\xff\x5e\xcc\x2e\xdf\x64\x89\xb2\x0f\x49\xcb\x2f\x12\xf7\x65\x76\x66\x9e\x99\x67\x66\x89\xb5\xf8\x44\xc6\x0a\xad\x56\x80\xb5\xa0\x07\x47\x8a\xdf\x6c\x72\xfb\x93\x4d\x84\x5e\xde\x9d\x9d\xdc\x0a\x95\xad\x60\xed\xad\xd3\xd5\x47\xb2\xda\x9b\x94\x7e\xa6\x5c\x28\xe1\x84\x56\x27\x15\x39\xcc\xd0\xe1\xea\x04\x00\x95\xd2\x0e\x79\xd8\xf2\x2b\x40\xaa\x95\x33\x5a\x4a\x32\x8b\x82\x54\x72\xeb\x37\xb4\xf1\x42\x66\x64\x82\xf0\xf6\xe8\xbb\xd3\xe4\xec\xc7\xe4\xf4\x04\x40\x61\x45\x2b\xd0\xb2\x4a\xb5\xca\x45\x61\x13\x5d\x93\x41\xa7\x8d\x4d\x52\x6d\x48\xf3\x4f\x75\x62\x6b\x4a\xf9\x80\xc2\x68\x5f\xaf\xe0\xe0\x9a\x28\xab\xd5\x03\x1d\x15\xda\x88\xf6\x1d\x60\xc1\x87\x84\xff\xd1\xbe\xf7\x6f\xdf\xad\xc3\x91\x61\x4c\x0a\xeb\xfe\xb4\x3b\xfe\x56\x58\x17\xe6\x6a\xe9\x0d\xca\xa1\x92\x61\xd8\x0a\x55\x78\x89\x66\x30\x71\x02\x60\x53\x5d\xd3\x0a\xd6\xd2\x5b\x47\xe6\x04\xa0\xb1\xb9\xd1\x63\xd1\x18\x7c\x77\xd6\xa8\x65\xd3\x92\x2a\x6c\x95\x04\x36\x4d\xbd\xfe\x70\xf1\xe9\x87\xcb\x47\x13\x00\x19\xd9\xd4\x88\xda\x05\x0f\x76\x6a\x82\xb0\x80\x60\x1a\x9c\xf8\x4f\xad\x95\x15\x1b\x49\x90\x6b\x03\x51\x31\x6f\x84\x2a\x78\x4f\x32\x90\xe7\xb6\xac\xa9\xde\xfc\x93\x52\x37\x18\x36\xf4\x2f\x2f\x0c\x65\xc3\xa3\x59\xf1\x16\xf7\xc1\x70\x6d\x18\x09\x37\xf0\x72\x7c\x06\x51\xb6\x33\xfe\xc8\x86\xcf\x8b\x47\xb3\x00\x6c\x7a\xdc\x09\x19\x87\x1c\x59\x70\x25\xb5\x4e\xa4\xac\xf1\x17\xe8\x1c\x5c\x29\x2c\x18\xaa\x0d\x59\x52\x31\x08\x79\x18\x55\x63\x52\xb2\x27\xfc\x92\x0c\x0b\x02\x5b\x6a\x2f\x33\x76\xcd\x1d\x19\x07\x86\x52\x5d\x28\xf1\x6b\x27\xdd\x82\xd3\xe1\x58\x89\x8e\xac\x03\xa1\x1c\x19\x85\x12\xee\x50\x7a\x9a\x03\xaa\x6c\x4f\x76\x85\x5b\x30\xc4\xe7\x82\x57\x03\x89\x61\x8b\xdd\xd7\xe5\x9d\x36\x04\x42\xe5\x7a\x05\xa5\x73\xb5\x5d\x2d\x97\x85\x70\x6d\x16\xa6\xba\xaa\xbc\x12\x6e\xbb\x0c\x09\x25\x36\x9e\xa3\x7d\x99\xd1\x1d\xc9\xa5\x15\xc5\x02\x4d\x5a\x0a\x47\xa9\xf3\x86\x96\x58\x8b\x45\x30\x46\x85\x4c\x4c\xaa\xec\x77\x6d\x3c\xd8\x47\x07\x47\xcc\xad\xe3\x78\xd8\x99\x0a\x49\xf1\x1b\xc1\xe2\x84\x89\xe1\x17\x05\x46\x63\x7b\x4c\x78\x88\xdd\xf8\xf1\x8f\x97\x57\x7d\x84\x06\xdc\x22\x44\xfd\xd2\x03\x1e\x6a\xd1\x62\xcf\x0a\x95\x93\x89\x3b\x73\xa3\xab\x20\x95\x54\x56\x6b\xa1\x5c\x78\x49\xa5\x20\xe5\xc0\xfa\x4d\x25\x9c\x0d\x31\x4c\xd6\x31\x90\xfb\x82\xd7\x81\xb5\x60\x43\xe0\xeb\x0c\x1d\x65\xfb\x4b\x2e\x14\xac\xb1\x22\xb9\x46\x4b\xff\x77\xec\x18\x23\xbb\x60\x40\x9e\x8d\xde\x90\x93\xf7\x37\xec\xa5\x38\x40\x4b\xa8\xa3\x70\x77\xfc\x72\x59\x53\xca\x20\xb3\x97\x79\x57\x60\x15\x54\x03\x02\x6a\x91\x7d\xec\xa8\xd1\xc3\xc7\x89\x83\x9f\x9c\x90\x3d\x73\x60\xe6\x91\x8a\x6f\x9a\x85\xa1\xe8\xa0\x50\x51\x47\x66\x72\xe6\x81\x96\xf8\x90\x99\xf0\xfd\xdb\x77\x9d\xdc\x7d\x3c\x8f\xaa\xfa\x94\xba\x41\x2d\x61\xf9\x98\xb5\xae\x05\x65\xeb\xcb\x4f\x23\xcb\x9e\xce\xa8\xf6\xf9\xf9\xb1\x40\x46\xc0\x5b\xca\x98\x99\x9a\xd3\xd8\xa8\x6f\x2d\x4c\xe2\x22\x58\x5f\x7e\x9a\xb4\x36\x8e\xca\x65\xec\xba\xe2\x09\x42\x59\x87\x52\x52\x06\xd8\x66\x51\xa8\x5a\xb1\x88\xcd\xe1\xbe\x24\x43\x80\xed\xf0\xa8\xd4\xb0\x3c\xeb\x04\xb3\xae\x5a\x71\xa2\xa3\x83\x12\x2d\x6c\x88\xd4\xe0\x30\xa1\x00\xd5\xa8\xb0\xf7\x8d\x94\x5f\xb8\xd4\x47\x19\x0e\x4d\x41\xce\x02\x4a\x19\x6b\x7c\x8d\xe9\x61\x1c\xe3\xf3\x97\x92\x14\x18\x22\xc5\x6e\xca\xe6\x01\xfd\x7b\x21\x25\x33\xbd\x21\x74\x14\x8c\x1d\x38\xce\x4e\x82\x67\x08\xd3\x72\x54\xe8\x8e\x6f\x7a\x63\xc7\xb4\x88\x11\xb5\xd1\x5a\xd2\x88\xb1\x35\xa6\xb7\x58\x50\xa4\xb9\xcb\xad\x4a\x2f\xb8\xcc\xdc\xa1\xfc\xd2\xe0\xf9\x30\x26\x78\x27\x88\x42\x75\x8d\x59\xbd\x55\x69\xac\x71\xbc\x26\xd7\xe3\x40\x37\x2a\x1b\x1b\x44\x43\xad\x33\x9b\xb4\xc7\x0d\xc6\xa0\x26\x23\x74\x26\x52\x94\x72\x0b\x69\x49\xe9\x2d\x1f\x34\x1e\x3f\x0e\x9d\xb7\x9c\xb4\x6b\x74\x28\x75\x71\x19\x6b\xd7\x1f\x22\xe3\x33\xeb\x88\x5c\x34\xad\x40\x94\x0d\x9e\xdb\x2f\xc8\xbc\x09\x85\xff\x58\xc0\x57\xe8\x60\x4a\x49\x91\xc0\xe4\xe5\x69\x35\x99\x25\xf0\x46\x37\xb5\xa4\x46\x83\x15\x39\x32\x73\xd0\x4a\x6e\xa1\xd4\xde\x58\x98\x4e\xca\xc9\x6c\x0e\x95\x50\xde\xed\x15\xd0\xfe\x99\x4e\x2a\x5e\x86\x2a\x03\x4b\xa9\x56\x19\xef\xb4\x93\x59\x28\x58\x1b\xea\xd4\xce\x92\x18\x90\x5c\x73\xba\xb1\xf9\x51\x87\x34\x36\x66\x94\xa3\x97\xae\x6b\x47\x62\x79\xed\x64\xc0\xbd\x70\xa5\x50\xd1\x2b\x43\x10\x8e\xc7\xe4\x81\xf2\x31\x44\xd8\x71\xaf\xb3\x82\xbf\x4f\xaf\x4f\x17\xaf\x6e\xbe\x9b\xfe\x2d\x89\x7f\x66\xe7\x53\xfb\xb9\xfa\x5c\xce\x66\xdf\x7d\x73\xb2\x8f\xde\x33\x8b\x49\x44\xba\x2d\x27\xf1\xed\x7f\x5d\x50\x18\x1b\x31\xb8\xa3\x1c\x12\x8a\xc6\xe0\xf6\xc0\xac\x70\x54\x8d\x91\xfe\xd0\xc2\x75\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\x0e\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\x72\x98\x1a\x9f\xa8\xb7\x70\xc0\x86\xb1\x95\xcf\xe7\xcd\x43\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\x86\xb8\xe8\xc6\x94\xf6\x2a\x23\x23\xb7\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\x0a\xb8\xa5\x5e\xb8\xf1\xa8\x6a\x62\xea\x6b\xe0\xd5\x88\x8a\x77\x90\xd2\x57\xc8\x65\x1f\xb3\xd0\x1d\x75\x73\x8a\x0b\x51\xb8\x8b\xb4\x19\x89\x1b\xed\x63\xc3\xd3\xc3\xf7\x24\x42\x0d\xab\xa3\x02\xaa\x6a\xb7\x6d\xbc\xf1\x85\x3e\xab\xf0\xe1\x2d\xa9\xc2\x95\x2b\xf8\xe1\xfb\x1f\x5f\xfe\x34\xb2\x50\x6f\x02\xb1\x67\xbf\x90\xa2\x58\xf0\xbe\x86\xf7\xf6\xa5\x0e\xee\x63\xc1\x3d\x49\x7b\xaf\x48\x8a\x7e\x4d\x6c\xc9\x76\xb2\xe0\x1e\x2d\x58\x72\xb0\x41\xee\x2e\x7c\x7d\xdc\x9d\x5c\x7e\x43\x37\xa8\x52\x9a\x83\xc8\x0f\x1f\x23\x6c\xcb\x91\x72\x0b\x67\xdf\xcf\x61\xd3\x60\x96\xc4\xec\x4a\x7a\x5a\xbf\x7e\xb8\x49\x0e\x18\x23\x2c\xbc\x9a\x3f\xd2\x94\x5b\x53\x1f\x48\x98\xc3\xf4\x88\x92\x5c\x5b\xc3\xc7\x14\xe6\xec\xa6\xfe\x1e\xe0\x6c\xea\x2c\x79\x2a\x12\xb8\xc1\x2a\x8e\x34\xd1\x6d\xfa\x08\xe5\x5e\xfe\x7e\x3c\x60\x84\x12\x95\xaf\x56\x70\x3a\xb2\x24\x32\xf2\xd7\x08\x8f\x28\xa9\xaf\x67\xc8\xb4\x5c\x18\xac\x2a\x74\x22\x05\x91\xf1\x95\x35\x17\x64\x86\x29\xc6\x1e\x69\x36\xe6\xa1\xcb\x1a\x38\xff\x5b\xdb\xd0\xe8\xb3\x92\xee\x83\xd1\x99\x4f\xc9\x84\xbe\xb0\xe9\x79\xd2\x21\xf3\xf2\x2d\x39\x64\x65\xd3\xca\xd2\x03\x63\xd5\x7d\x72\x09\x8d\x59\x45\xa8\x84\x2a\x6c\xa3\x8c\xb0\x91\xff\xe6\x47\xce\xe5\x6d\xf7\x25\x31\x6b\xf7\x4d\x97\x05\x34\xc1\x12\x2b\x32\x32\x7c\x61\x82\xc2\xa3\x41\xe5\x88\x32\xe6\xd5\xe3\xf4\xd1\xb5\x6e\x1d\xcb\x63\xff\x7d\xe1\x49\x26\x69\x08\x28\x32\x37\x1b\xdc\x7c\xbd\x08\x3c\xf4\xf5\x08\xe8\xec\xf4\xfb\xa3\x71\xd7\xad\x3b\x72\x3d\x68\x9b\xc7\xeb\xd7\x8b\xbf\xe2\xe2\xd7\x9b\x69\xf3\xe7\x74\xf1\xea\x1f\xf3\xd5\xcd\x8b\xc1\xeb\xcd\xec\xfc\x9b\x11\x49\x87\x3b\xca\xfe\xd9\x89\xe1\xfe\xf2\xb0\x13\x6c\xf3\x50\x88\x75\x0e\x57\xc6\xd3\x1c\xde\xa0\xb4\x34\x87\x3f\xab\x50\x27\xbf\xd0\x69\xa4\x7c\x35\xae\x1d\x77\x36\x13\x3e\x75\x72\x7c\x49\x50\xe9\xf8\x9a\x46\xdd\x63\xed\xfc\xf3\x9c\xc4\x4b\x9b\x8f\x22\x2d\x11\x0e\xbe\x70\x41\x20\x64\xc8\xb5\x4e\xe8\x01\xab\x5a\x52\x92\xea\x6a\x79\xe4\x0b\xd8\x8e\x0a\xbf\xa5\xc8\x9d\xbd\x7c\x46\xf4\x4c\xaf\x63\x8c\xdc\x4c\xaf\x17\xcd\xbf\x17\xed\xd0\xec\x9c\x6f\x24\xc7\xe6\x67\x2f\x96\xb3\xf3\xe9\x20\xf2\x6e\xae\x17\x7d\xd8\x25\x37\x2f\x66\xe7\x83\xb9\x59\x1b\x84\xb1\x7c\xac\xc0\x19\xdf\xd6\x05\xeb\xb4\xe1\x4e\x65\x67\xcc\x6f\xba\x6f\xab\xbd\xf3\x9b\x88\x85\x7f\xff\xe7\xe4\xbf\x01\x00\x00\xff\xff\x49\x99\x03\x02\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\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")
+var _operatorsCoreosCom_operatorconditionsYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x5a\x5f\x73\xdb\xb8\x11\x7f\xd7\xa7\xd8\xb9\x76\xa6\x76\x46\xa2\xec\x5c\x27\x77\xa7\x97\x4c\xc6\xed\x75\x32\x4d\x9a\xcc\xc5\xbd\x87\xba\x6e\x6f\x49\xae\x24\x34\x24\xc0\xe2\x8f\x6c\x5d\xdb\xef\xde\x59\x80\x14\x29\x91\x94\x9c\xc6\x93\xde\x78\xc0\x17\x5b\x04\xb0\x58\xec\x9f\xdf\xe2\x07\x02\x2b\xf1\x23\x69\x23\x94\x5c\x00\x56\x82\xee\x2d\x49\xfe\x65\x92\x8f\xdf\x9a\x44\xa8\xf9\xe6\x72\xf2\x51\xc8\x7c\x01\x57\xce\x58\x55\xfe\x40\x46\x39\x9d\xd1\xef\x68\x29\xa4\xb0\x42\xc9\x49\x49\x16\x73\xb4\xb8\x98\x00\xa0\x94\xca\x22\xbf\x36\xfc\x13\x20\x53\xd2\x6a\x55\x14\xa4\x67\x2b\x92\xc9\x47\x97\x52\xea\x44\x91\x93\xf6\xc2\x9b\xa9\x37\x17\xc9\xe5\x37\xc9\xc5\x04\x40\x62\x49\x0b\x50\x15\x69\xb4\x4a\x67\x4a\xe6\x7e\x16\x93\x34\xaf\x4c\x92\x29\x4d\x8a\xff\x94\x13\x53\x51\xc6\x13\xad\xb4\x72\x55\x3b\x6c\xaf\x4f\x90\xd9\xe8\x83\x96\x56\x4a\x8b\xe6\x37\xc0\x0c\x54\x51\xfa\xff\xc3\x3a\xdf\xd5\x32\xae\x9a\xa9\x7d\x5b\x21\x8c\xfd\xe3\x70\xfb\x1b\x61\xac\xef\x53\x15\x4e\x63\x31\xa4\xbc\x6f\x36\x6b\xa5\xed\x9f\x5a\x55\x78\xea\x6c\x6f\x12\x23\xe4\xca\x15\xa8\x07\x44\x4c\x00\x4c\xa6\x2a\x5a\x80\x97\x50\x61\x46\xf9\x04\xa0\x36\x60\x2d\x71\x56\x5b\x6f\x73\x59\x4f\x60\xb2\x35\x95\xd8\x4c\x07\x2c\x56\xbe\x7a\xff\xfa\xc7\xaf\x3f\x1c\x34\x00\xe4\x64\x32\x2d\x2a\xeb\xdd\xd1\x5b\x23\x08\x03\x58\x87\x00\x34\x31\x00\x6a\x09\x76\x5b\x11\xfc\xd4\xeb\xff\x13\xdc\xad\x45\xb6\xe6\x61\xce\x50\x0e\x56\xf1\x52\x37\xb4\x05\x21\x97\x4a\x97\x3e\x44\xf8\xed\xbb\x37\x6f\x01\x53\xe5\x2c\xd8\x35\x81\xb1\x68\xbd\x58\x94\x3b\x13\x24\x1d\x25\x79\xb6\x05\xa8\xf4\x1f\x94\xd9\xce\x6b\x4d\xff\x74\x42\x53\xde\x5d\x0f\x5b\xa3\x89\xcc\xce\xeb\x4a\xb3\x5c\xdb\xf1\x7f\x78\x3a\x79\xb0\xf7\xfe\xc0\x30\xff\x9e\x1d\xb4\x02\xb0\x3d\xc3\x48\xc8\x39\x29\xc8\xf8\xa5\xd4\x9e\xa1\xbc\x76\x82\x37\xd6\x5a\x18\xd0\x54\x69\x32\x24\x43\x9a\x34\x8b\xf5\x4b\x4a\x7a\xc2\x3f\x90\x66\x41\x1c\x3b\xae\xc8\x83\x0d\xb5\x05\x4d\x99\x5a\x49\xf1\xf3\x4e\xba\x61\x5b\xf2\xb4\x05\x5a\x32\x16\x84\xb4\xa4\x25\x16\xb0\xc1\xc2\xd1\x14\x50\xe6\x3d\xd9\x25\x6e\x41\x13\xcf\x0b\x4e\x76\x24\xfa\x21\xa6\xaf\xcb\x5b\xa5\xc9\xbb\x6f\x01\x6b\x6b\x2b\xb3\x98\xcf\x57\xc2\x36\x38\x91\xa9\xb2\x74\x52\xd8\xed\xdc\xa7\xbc\x48\x1d\xe7\xe1\x3c\xa7\x0d\x15\x73\x23\x56\x33\xd4\xd9\x5a\x58\xca\xac\xd3\x34\xc7\x4a\xcc\xfc\x62\x64\x48\xee\x32\xff\x95\xae\xa3\xca\x1c\x4c\x1c\x7c\x6e\xac\x16\x72\xb5\xd7\xe4\xd3\xf5\x13\x9d\xc5\x29\x1c\x62\x39\x08\x0c\x8b\x6d\x7d\xc2\xaf\xd8\x8c\x3f\xfc\xfe\xc3\x35\x34\x1a\x05\xbf\x05\x17\xb5\x5d\x07\x2c\xd4\x78\x8b\x2d\x2b\xe4\x92\x74\x18\xb9\xd4\xaa\xf4\x52\x49\xe6\x95\x12\x32\xc4\x7a\x56\x08\x92\x16\x8c\x4b\x4b\x61\x8d\x8f\x61\x32\x96\x1d\xd9\x17\x7c\xe5\x71\x15\x52\x02\x57\xe5\x68\x29\xef\x77\x79\x2d\xe1\x0a\x4b\x2a\xae\xd0\xd0\x17\xf7\x1d\xfb\xc8\xcc\xd8\x21\x0f\xf6\x5e\xb7\x6a\xf4\x07\xf4\x52\x1c\xa0\x81\xfa\x51\x77\xf7\x40\xe8\x43\x45\x19\x60\x51\xa8\x3b\x76\x78\x56\x38\x63\x49\x03\xe6\xa5\x90\x23\x80\x74\x1c\x89\x6a\xbc\x9a\x42\xa5\x2c\x2f\x1e\x8b\x62\x0b\x6a\x43\x5a\x8b\x9c\x03\x27\x8c\xd1\x54\x29\x6d\x29\x87\x74\xeb\x25\x0d\xe1\xd8\xd1\x85\x8e\x83\x54\x58\x72\x55\xa8\x6d\xc9\x01\xd8\x6f\x6c\xa4\xa2\xd6\xb8\x1d\x68\x15\x96\xca\xc1\x61\x47\x1c\xc5\x4f\xbd\xc8\x21\x7d\x3e\x63\xca\x3d\xef\xb5\xa5\x86\x63\x10\x85\x34\x90\x93\x45\x51\x18\x58\x2a\x0d\x4a\x12\x20\x87\x80\x0d\x40\x4a\x90\x39\xad\x7d\x02\x35\x9e\xf2\xb9\xf6\xea\xfd\xeb\x5d\x7d\xea\xa7\x01\x1c\xb7\x7b\x78\x86\xab\x49\xfb\x70\x5d\x31\x06\x57\x34\xda\xae\x09\x4d\x5d\xd2\x87\x9a\x59\x63\x77\x98\x28\x6d\x33\x2b\x38\xd8\x78\x2c\x2c\xc2\x53\xa0\xb1\xd7\x1a\xa5\xf1\x96\xbc\x16\x25\x8d\xf5\x3c\x0d\x95\xc7\xa4\x32\x84\x86\x6a\x63\x2c\x58\x7e\xe1\x3d\xb2\x73\xa1\xdd\xf5\xa6\x3c\xc0\x1f\xfb\x2f\xac\x9b\xb3\x08\xa5\xb2\x6b\xea\xa5\x44\xf7\xb9\x66\x6f\xd6\x65\x2f\x25\xb8\x5b\x93\xf4\x93\x38\x99\x93\x2e\xb6\x9c\x6f\xed\x7c\xd9\x1a\xe5\x8a\xf2\x04\xe0\x35\xc7\x01\x5a\x56\x90\x11\xf3\xa3\x54\x77\x72\xca\x03\x25\x38\xd3\xa0\xbb\xd7\x78\x27\x91\x43\x66\x29\x88\xcb\x6b\x10\xe3\x0b\x44\x96\x51\x65\x31\x2d\x46\xa2\x08\x4e\xa5\x4c\xf3\x04\x70\x59\x00\xc3\xf6\x8c\x27\x1e\xe9\x59\xc7\xd4\x63\xf8\xab\x16\x15\xea\xdc\xda\x95\x28\x39\x22\x73\x5e\x4c\xdb\x26\x73\x91\xa1\xaf\x77\x4d\x9a\xb5\xe0\xd7\xba\xef\xa4\x87\xb8\xd4\xa5\xc4\x28\x49\x65\x65\xb7\xb5\x35\x3e\xd3\x66\x25\xde\xbf\x21\xb9\xb2\xeb\x05\x7c\xfd\xfc\x9b\x17\xdf\x8e\x74\x54\xa9\xe1\x82\x9b\xff\x81\x24\x43\xec\xc0\xde\xed\x7f\xb1\x5e\x5f\x6a\xa7\xe6\x7b\xf3\x24\x4d\xed\x4a\x56\x6d\x1f\x1f\x75\xfb\x59\x70\x87\x06\x0c\x59\x48\x91\xb7\xc0\xae\x3a\x6e\xce\xef\x95\x06\x21\x8d\x45\x99\xd1\x14\xc4\x72\x78\x1a\x61\x1a\xe0\x2b\xb6\x70\xf9\x7c\x0a\x69\xed\xb3\x24\x64\x57\xd2\x92\x8e\x9b\xfb\xdb\x64\x60\x31\xc2\xc0\x77\xd3\x03\x4d\x79\x7b\xe3\x3c\xb2\x72\x98\x1e\x51\xf2\x4e\xd8\x35\xef\x8b\x3c\x10\xd7\x5b\xce\x01\x20\xa6\xdd\x4a\x4e\x45\x02\x6f\x54\x57\xa4\x4f\xa6\x8f\x90\xf6\xc5\x6f\xc7\x03\x46\x48\x51\xba\x72\x01\x17\x23\x5d\x02\x22\x3f\x46\x78\x04\x49\x6d\x91\x42\x86\xe5\x95\xc6\x92\xb7\x10\x19\x88\x9c\x77\x06\x4b\x41\xba\x9b\x62\x6c\x91\x7a\x20\x17\xb3\x3d\xe3\xff\xc6\xd4\x30\xfa\xa0\xa4\x7b\xaf\x55\xee\x32\xde\x64\xaa\xa5\xdf\x12\x89\xa5\xc8\xba\xc8\xcb\x3b\x31\x9f\x95\x81\x8c\x00\xdd\xb3\xaf\x76\xdb\x7a\x66\x02\x50\x12\x4a\x21\x57\xa6\x56\x86\xb7\xa8\x8c\x7f\xd3\x23\xf3\xf2\xb0\xbb\x35\x31\x6a\x07\x7a\x53\x4b\xd3\x7e\x25\x46\xe4\xa4\x29\x07\x84\x95\x43\x8d\xd2\x12\xe5\x8c\xab\xc7\xe1\xa3\x96\xd2\x41\x79\x6c\xf7\xb0\x27\x91\xa4\x06\xa0\x80\xdc\xbc\xe0\x7a\x87\xec\x71\xe8\xf1\x00\xe8\xf2\xe2\xf9\xd1\xb8\xdb\xf5\x1b\xed\x54\xa1\x65\x32\xb6\x80\xbf\xdd\xbc\x9a\xfd\x05\x67\x3f\xdf\x9e\xd5\xff\x5c\xcc\xbe\xfb\xfb\x74\x71\xfb\xac\xf3\xf3\xf6\xfc\xe5\xaf\x47\x24\x85\x04\x7f\x60\x0c\xd7\xb5\xb6\xd9\x2b\x35\xf1\x31\xf5\x85\x58\x2d\xe1\x5a\x33\x2d\xfc\x1e\x0b\x43\x53\xf8\xb3\xf4\x75\xf2\x33\x8d\x46\xd2\x95\xe3\xda\xf1\xce\xe6\x2b\x9e\xf5\xab\xe3\x5d\xbc\x4a\xc7\xfb\xd4\xea\x8e\xf4\xf1\xba\x3e\xcc\x48\xfe\xf0\x42\x2d\xbb\x40\xd8\x61\x51\xe0\x01\x19\x96\x4a\x25\x74\x8f\x65\x55\x50\x92\xa9\x72\x7e\x84\x65\xed\xa9\xf0\x29\x45\xee\xf2\xc5\x03\xa2\xe7\xec\x26\xc4\xc8\xed\xd9\xcd\xac\xfe\xef\x59\xf3\xea\xfc\xe5\xd9\x5f\x93\xa3\xed\xe7\xcf\xe6\xe7\x2f\xcf\x3a\x91\x77\x7b\x33\x6b\xc3\x2e\xb9\x7d\x76\xfe\xb2\xd3\x76\xde\x0f\x42\x2e\x24\x22\xa3\x57\x59\xa6\xdc\x17\x23\x1f\xc3\x31\x7f\x0a\xad\xfb\x4c\x30\x64\x43\xc3\x05\xf7\x29\xdd\x00\x0f\x64\x42\x1e\xca\x59\xa0\x7c\x89\x47\xab\x3a\xa7\x18\x6b\xac\x46\x51\xf8\xd4\xc2\xcc\x3a\x2c\xfa\xd6\xda\xf1\x47\x30\x5b\x63\xa9\x7c\x24\xfa\xd7\x96\xf7\x48\xc5\x18\x0b\xfa\xdc\x24\xb2\xb6\x31\xa9\x91\xb5\x41\x64\x6d\x91\xb5\x45\xd6\x16\x59\x5b\x64\x6d\x91\xb5\x45\xd6\x06\x91\xb5\x1d\xaa\xf0\x34\x58\x5b\x28\x1f\x0b\xb0\xda\x35\x75\xc1\x58\xa5\x79\xa7\x02\x4b\x76\x55\xf3\xd2\xa5\xbb\xcf\xae\xad\xf5\xeb\x90\x85\x7f\xfd\x67\x02\xdd\x5b\x05\xcf\x9b\x51\xf1\x56\x41\xbc\x55\x10\x6f\x15\xb4\x4f\xbc\x55\xf0\x74\x6f\x15\x3c\xe8\x78\xa9\x7b\xd1\x60\xff\x70\x29\xdc\x06\xd8\x3b\x4c\xf2\xbb\xb2\x4a\xab\x8d\xc8\x7b\x61\x09\x07\xd7\x14\xfc\xce\xdd\x1f\x33\xa5\xa2\x10\x76\xcb\x22\x4a\x94\xae\x7b\xf5\x80\xbe\xcc\xc5\x83\x78\xf2\xd4\x7d\xe2\xc9\xd3\x58\xbf\x78\xf2\x34\xa6\x62\x3c\x79\x8a\x27\x4f\xf1\xe4\x29\x9e\x3c\xc5\x93\xa7\x78\xf2\x14\x4f\x9e\xe2\xc9\xd3\xbe\x0a\x4f\xe3\xe4\xa9\x6b\xb9\x78\x51\xf9\xff\xcd\x51\x22\xf1\x88\xc4\x23\x12\x8f\x48\x3c\x22\xf1\x88\xc4\x23\x12\x8f\x48\x3c\x22\xf1\x80\x48\x3c\x0e\x55\x78\x6a\xc4\xe3\x97\x7a\x51\xf9\xc4\xad\xe4\x77\x6f\xde\x76\x3e\x68\x87\x0f\xdd\x6d\x8d\x84\x35\x6e\x08\x52\x22\xb9\xab\xfb\xf1\xbb\xce\x98\xba\xf1\xbb\x4e\xa4\x57\x91\x5e\x45\x7a\xf5\x59\xd6\x8b\xf4\x2a\xd2\xab\x48\xaf\x0e\x9f\x48\xaf\x06\xfb\x45\x7a\xd5\x3e\x91\x5e\xed\xa9\xf0\x34\xe8\xd5\xb1\x1b\xc5\xdd\x77\xa7\x2e\x14\xff\x37\x00\x00\xff\xff\x60\xe2\x0c\x02\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\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")
+var _operatorsCoreosCom_operatorgroupsYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x3b\x6d\x6f\x1b\x37\x93\xdf\xf3\x2b\x06\xee\x01\xb5\x03\xbd\x24\xe9\xa1\x2f\xfa\x12\x18\x49\x13\xf8\x2e\x75\x8d\xd8\xe9\x01\x97\xf3\x1d\xa8\xdd\x91\x96\xe7\x5d\x72\x8f\xe4\x4a\x56\x7b\xfd\xef\x0f\x66\xc8\x5d\xed\x4a\xfb\x22\x3b\x6e\xfb\x3c\x0f\xc4\x2f\xb6\x96\xe4\x70\x38\xef\x33\x24\x45\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\x14\xd6\xe9\xec\x23\x5a\x5d\x98\x08\xdf\xe2\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\x77\x93\x17\xcf\x00\x94\xc8\x70\x06\x3a\x47\x23\x9c\x36\x4b\xa3\x8b\xdc\x4e\xca\x9f\x76\x12\x69\x83\x9a\xfe\x64\xcf\x6c\x8e\x11\x2d\xc2\x63\xb6\x53\x1a\x63\x3c\xbc\x12\x17\xe1\x70\xa9\x8d\x2c\x7f\x03\x8c\x41\xa7\x19\xff\xef\xf7\xf8\x73\x80\xf1\x9e\x40\xf2\xf7\x54\x5a\xf7\xef\xfb\x7d\x1f\xa4\x75\xdc\x9f\xa7\x85\x11\xe9\x2e\xc2\xdc\x65\x13\x6d\xdc\xe5\x76\x79\x5e\x6e\xe9\xbb\xa4\x5a\x16\xa9\x30\x3b\xf3\x9e\x01\xd8\x48\xe7\x38\x03\x9e\x96\x8b\x08\xe3\x67\x00\x81\x4a\x01\xcc\x38\x90\x68\xf5\x32\x40\xb5\x51\x82\x99\x28\xd7\x00\x02\xa9\xce\xaf\x2e\x7e\xf9\xe6\x7a\xa7\x03\x20\x46\x1b\x19\x99\x3b\xa6\xf9\xff\x8f\x6b\x3d\xd0\xdc\x1f\x48\x0b\x2e\x41\x28\x94\x74\xa0\x17\x90\x15\xa9\x93\x0e\x95\x50\xd1\x06\x16\xda\xc0\xcf\x1f\x7e\x82\x4c\x28\xb1\xc4\xb8\x46\xf9\x06\xc0\x0b\x47\xdc\xb7\xce\x08\xa9\x3c\x34\xa9\xac\x13\x69\xca\xf2\x41\x50\xab\x89\x20\x15\x48\x67\x3d\xb3\x68\xdb\xe0\x34\x08\x20\x0e\xcb\x85\xc4\x18\x2c\x32\x1a\x4e\x98\x25\xba\xed\xb0\xc6\x8a\x6e\x43\x94\xd3\xf3\xff\xc5\xc8\xd5\x3e\x1b\xfc\xbf\x42\x1a\x8c\x67\x0d\xe4\xc6\x50\x8a\x6d\xed\x73\x6e\x08\x23\x57\x13\x10\xdf\x6a\x4a\xd2\xf8\xde\x4f\x50\x6a\xc4\x07\x3f\x13\x62\xd2\x18\xf4\x84\x08\x1c\xa5\x8d\x31\x8f\x78\x6f\x89\xb4\x60\x30\x37\x68\x51\xb9\x8a\x46\x42\x85\x2d\x4d\xf6\x80\x5f\xa3\x21\x40\x24\x68\x45\x1a\x13\xb1\x57\x68\x1c\x18\x8c\xf4\x52\xc9\x5f\x2b\xe8\x96\xa8\x49\xcb\xa6\xc2\xa1\x75\x20\x95\x43\xa3\x44\x0a\x2b\x91\x16\x38\x02\xa1\xe2\x3d\xd8\x99\xd8\x80\x41\x5a\x17\x0a\x55\x83\xc8\x53\xec\x3e\x2e\x3f\x69\x43\xfc\x5d\xe8\x19\x24\xce\xe5\x76\x36\x9d\x2e\xa5\x2b\x8d\x48\xa4\xb3\x8c\x44\x69\x33\x65\x7b\x20\xe7\x05\x71\x7d\x1a\xe3\x0a\xd3\xa9\x95\xcb\xb1\x30\x51\x22\x1d\x46\xae\x30\x38\x15\xb9\x1c\xf3\x66\x14\x1b\x92\x49\x16\x7f\x65\x82\xd9\xb1\x3b\x0b\x7b\x9e\x5b\x67\xa4\x5a\x36\xba\x58\x9f\x1f\xc8\x2c\xd2\x73\x12\x7c\x11\x00\xfa\xcd\x6e\x79\x42\x9f\x88\x8c\x1f\x7f\xbc\xbe\x81\x12\x23\xcf\x37\xcf\xa2\xed\xd0\x16\x0a\x95\xdc\x22\xca\x4a\xb5\x40\xe3\x67\x2e\x8c\xce\x18\x2a\xaa\x38\xd7\x52\x39\xfe\x11\xa5\x12\x95\x03\x5b\xcc\x33\xd2\x0b\x92\x61\xb4\x8e\x18\xb9\x0f\xf8\x0d\x1b\x5d\x98\x23\x14\x79\x2c\x1c\xc6\xfb\x43\x2e\x14\xbc\x11\x19\xa6\x6f\x84\xc5\x3f\x9d\x77\xc4\x23\x3b\x26\x86\x1c\xcc\xbd\xba\x4b\xd9\x9f\xb0\xa7\xe2\x00\xa5\x2f\xe8\x64\x77\xc3\xba\x5d\xe7\x18\x95\x16\x8e\x66\xb2\x45\x13\x6a\xc7\x04\x96\x1c\xde\x25\x58\x27\x12\xb4\xe4\x42\x14\xa9\xdb\xc5\x04\xa0\xc8\x97\x46\xc4\x78\xed\x0c\xf9\xa0\xcd\x0c\xde\xfa\x91\x3b\x03\xbb\x0c\x10\x6f\x11\x53\x8c\x9c\x36\xfb\x3d\x3b\x5b\xbd\x0e\x03\xc3\x0c\xbf\xcd\xc6\xd6\xbe\xb6\xfd\x96\xf4\x80\x9d\x0e\x61\x0b\x6c\x43\x5c\x94\xfc\x78\x4f\x2a\x51\xf3\x5f\x03\xd8\xef\x4e\xf2\x0a\x49\x6e\x98\xac\x61\x2a\xe6\x98\x56\xa4\x28\x6d\x7b\xc6\x1a\x07\x37\x09\x36\xbe\x80\x30\x08\xe7\x97\x6f\xdb\x34\xa2\xbe\x41\x61\x8c\xd8\x74\x8c\x90\x0e\xb3\x4e\xc4\x87\x4d\xca\xb6\x9d\xf7\xe0\x1e\x8c\x4e\xd9\xe3\x12\xc1\xae\xd3\xb1\xe3\xf4\x16\x77\x04\x02\xee\x70\xc3\xc6\x9a\x7d\x42\xe0\x27\x0f\xee\x59\xd6\x20\x1b\x7d\x96\x81\x3b\xdc\xf0\xf4\x2e\x1b\xde\xa4\x4a\x27\xdb\x4b\xc0\x6d\x6e\xb5\xd9\xc6\xb4\x64\x6f\x7f\xb9\x8d\xce\x41\x43\x32\xe6\xdb\x1d\x6e\xfa\xba\x77\xf8\x44\x74\x08\xda\xef\x79\x42\x1f\x98\xe8\x6c\x10\x4a\x36\x88\x3c\x4f\x25\xb6\xdb\xdc\x7a\xeb\xb4\x62\xcd\x56\x6e\xf5\x01\x88\xf6\x0a\x54\x1d\x66\xcd\xf1\x78\x39\xf9\xda\x7a\xce\x93\x06\x25\x32\x0f\xe1\x94\x0f\xa2\x86\xd8\xef\xdb\x2f\x22\x95\xb5\xd0\x8e\x75\xe9\x42\x8d\xe0\x52\x3b\xfa\xf3\xe3\xbd\x24\x7f\x44\xe2\xf4\x56\xa3\xbd\xd4\x8e\xbf\x3c\x09\xa5\x3c\x82\x4f\x49\x27\x0f\x91\xd5\x4c\x79\x75\x27\x42\xd4\xbd\xbc\x9d\xc0\xc5\x82\xf9\x5f\xd1\x54\x5a\xf2\x9b\xda\x84\x2d\x0f\x2c\xc1\x61\x9d\x5f\xc6\x2f\x90\x15\x96\x9d\xb2\xd2\x6a\x8c\x59\xee\x36\xad\x2b\x04\x3a\x6a\xd3\x20\xe3\xa3\x17\x0b\x0b\xdd\x50\x64\xe1\x7b\x7c\x50\x99\x52\x2a\x01\x71\xc1\x1b\xe6\xf8\x86\xfc\x90\x8c\x06\xd6\xc9\xd0\x2c\x11\x72\x32\xc9\x87\x70\xb6\xcf\x90\xfa\x36\x60\x4e\xeb\xc0\x06\xc5\x04\xe0\x7e\x4c\xf9\xa4\x51\xe8\xd0\x8e\xc9\x45\x8c\x03\x1e\x4e\x67\x9d\x7b\x7b\xc4\x24\xf6\x49\x1f\xc8\x54\x1c\xe6\xc3\x7a\xe4\xb1\x06\xca\x5b\xfd\x4c\xe4\x24\x8b\xbf\x91\x71\x67\x96\xfe\x0e\xb9\x90\xc6\x4e\xe0\x9c\xd3\xc4\x14\x1b\x7d\x52\x31\xf3\x6b\x60\x7a\x96\xe2\x34\x8e\xec\xf4\x4a\xa4\xe4\x66\xc8\x0a\x28\xc0\xd4\x3b\x1d\x4a\xeb\x76\x9c\xed\x08\xd6\x89\xb6\xde\x53\x2c\x24\xa6\x1c\x0e\x9f\xdc\xe1\xe6\x64\x44\xcb\x76\x2e\x55\x97\xe8\x93\x0b\x75\xe2\xdd\xd4\x9e\x94\x56\x3e\x4d\xab\x74\x03\x27\xdc\x77\xf2\x78\xbf\xdd\xeb\xa1\x44\x1c\x73\x79\x42\xa4\x57\x07\xb8\x90\x01\x91\x6b\xc8\x4c\x26\xf2\x7e\x91\xb1\x68\x56\x32\xc2\xf3\x28\xd2\x85\xe2\x0a\xc0\x60\xcc\xd6\x21\x31\xd7\x7b\x90\x4a\xc7\x25\xe2\x4c\xaa\x46\x82\xcc\x23\x41\xf8\xa1\xb0\x4e\x64\x94\xc0\x5a\xa6\x29\xcc\xdb\xf9\x56\x58\x8c\x49\x22\x62\xcc\x53\xbd\xa9\x58\x78\x6a\xcf\xbc\x90\x51\x56\x53\xb2\x95\xab\x13\xdd\x11\x62\x07\xdd\x2c\x65\xb1\xd1\x95\xd1\x2b\x19\x63\x7c\x7e\x75\xd1\xca\x80\x66\xec\xca\x53\xc0\x61\x9a\x5a\xae\x31\x50\x66\xe3\x74\xc8\x6c\x5a\x23\xd9\xbc\x06\xbf\x56\x7f\xea\x44\x76\xae\x75\x8a\x62\xbf\xdf\x47\xc4\x55\xe1\x65\x18\xd7\x0e\x9e\xdd\xec\xc0\x09\x5e\x07\xef\xf3\x54\x46\xd2\x95\x5e\x78\x1b\x79\x73\x76\xce\x93\xda\xc5\xfd\x62\x01\x92\x43\x44\x8b\x6e\xb4\x8d\xee\xa5\x05\xb9\x54\xda\xb4\x6b\x49\xbf\x41\xee\x31\xc3\x0f\xd1\x84\x9a\xf5\xb4\xb8\xaf\x88\xbb\x49\xcf\x23\x09\xfa\xa9\x09\xa6\x51\x48\x09\x4b\x94\x0e\xcd\xd7\xa6\x1a\x65\x25\x1a\x55\xd1\xba\x9d\xc0\x37\x09\x1a\x64\xa3\x13\x15\xc6\xa0\x72\xe9\x06\xdc\x5a\x83\x2d\xf2\x5c\x1b\x87\xf1\xee\x32\x6c\x4a\x5a\x41\x85\xb4\x6e\xc6\xb2\xcb\xda\xc7\xa6\x4e\xa4\xa9\x5e\x43\x94\x16\xd6\xa1\x09\x4a\x1d\xea\x42\xcc\xfe\x4c\xaf\xb0\x2c\xd2\x78\x6f\xdd\xe5\xfa\xf2\x44\x58\xdc\x16\x0d\x6c\x11\x45\x88\x31\xc6\xbe\x23\x78\x7e\x5c\x2c\x30\x72\x72\x85\xe9\x06\x32\x14\x5c\x7d\x13\x6e\x8b\x93\xd2\xed\x56\xd3\xa3\xb9\x25\xdf\x0e\x66\x0a\xef\x5d\x59\xba\x02\xc9\xa5\xa9\x66\x45\xcf\x94\x84\x6a\x85\x9e\x08\x0b\x0b\x21\x53\x12\xd8\x76\x3e\x60\x94\x5c\x19\x5c\x49\x5c\x7f\x52\x56\x2c\xf0\x9d\x90\xe9\x3b\x6d\xd6\xc2\xc4\x35\x8a\x3e\x80\x98\xad\xcb\x54\x04\x1e\x20\x26\xed\xa7\xea\xf3\x88\x07\x2a\xb7\x82\x3d\xaf\x1c\x4e\xba\x19\x6d\xb1\x5d\xa2\x22\x72\x12\xf5\xd6\x25\xb9\xae\x52\xe2\xc9\x3a\x41\x45\xb1\x58\x31\xaf\x74\x00\x0c\x2e\xd0\xa0\xda\x2f\x74\x05\x06\x95\x78\xd4\x00\x55\xae\x36\x12\x4e\xa4\x7a\xc9\x74\x9e\x23\xaa\xb2\x1c\x04\x6b\xe9\x12\x10\x8c\x40\x29\xc8\x8b\x8e\x94\x8b\x0b\x51\x14\x81\x12\x79\x82\xa5\xaa\x95\x77\x5b\xe7\xfc\xc7\xf9\xc7\xcb\x8b\xcb\xf7\x33\xf6\xe3\x7d\x3c\xdc\xd7\x56\x69\xa1\xe0\x51\xbc\x09\x5f\x73\xb4\xfb\x65\x11\xdf\xa4\x82\x42\xe1\x7d\x8e\x11\x6d\x6a\x8e\x89\x58\x49\xd2\x76\x13\x2a\x94\x2b\x34\x62\x9e\x22\xc4\xc2\x09\x48\xb5\x25\xd8\x29\x5a\x0b\x1b\x5d\x40\x22\x56\x08\x31\x62\xde\xee\x0b\x55\x8c\xc6\x3a\xa1\x62\xda\xb7\x5e\x84\x44\xb0\xb9\x7d\x98\x23\xf5\x96\x55\xef\x43\x6c\xcb\x80\x31\x2d\xcb\x45\x1d\xd5\x20\x6a\xa8\x8a\xac\xdd\x50\x8f\x7b\x66\x51\x6f\x1f\x27\x9a\xb5\x33\x27\x5c\xb1\xe7\x0d\x7a\xaa\x67\x3c\xbe\xaa\x9f\xf9\x5f\x6d\x15\xb4\x8f\x0f\x2f\xa0\x75\x57\x15\xc6\x90\x0a\xeb\x3e\x79\x91\x7e\x40\xd9\x2c\xd2\xca\xeb\xe5\xb0\x43\x7f\x53\x0d\xdd\xcd\x14\xdb\xe2\x8e\x2d\xe0\x27\xf5\xbf\xed\x18\x6d\x43\xe7\x18\x9d\x90\xa9\x27\xb8\x56\x08\x82\x62\x40\x57\x22\x19\x1c\x18\x73\x05\xab\x53\x85\xf3\xab\x0b\xe8\x62\xc6\x20\x4b\x7c\x1b\x2a\xf7\x78\xf6\xdc\x18\xa1\x2c\x23\x7c\x23\xb3\xae\x74\x61\x0c\x19\x5a\x2b\x96\xdd\xfd\x06\x85\x6d\x8d\xe0\x7c\xb7\x17\xb9\xce\x6e\xda\x4b\xbb\xef\x1c\x4c\x04\xf6\xf7\xf0\x14\xa5\xbf\x7d\xa8\xdb\xf2\x93\x75\xe0\xe8\x03\x33\xaf\xe2\xb6\xab\x46\x63\xec\x7d\x10\xb1\x3a\xa8\x1a\x67\x71\xda\x25\x68\xfa\x72\x72\x0e\x04\xc2\xc9\xd0\x1c\xbd\xb3\xf1\x27\x7a\x31\x9a\x74\x43\x96\x6c\xbb\x5e\x94\x08\xb5\xc4\x78\x02\xbe\x44\x21\x38\xdc\xa4\xd0\xfb\x4e\xe9\xb5\xe2\xdc\x4f\x41\x61\xcb\x03\x10\xc6\xb8\x82\x48\xd2\xe5\x93\xc5\x00\x86\xb5\x27\x8a\x30\x77\x64\x8f\x87\xea\x8c\x03\x79\xfe\x42\x9b\x4c\xb8\x19\x59\x75\x1c\xbb\x6e\xa9\x0a\x32\xf5\x14\xfc\x0a\xa0\x7c\x7e\x9e\x14\x99\x20\xbf\x2c\x62\x76\x2e\x55\x9f\x8a\x65\x24\xd8\x4d\x96\x1a\x29\xe6\xba\xf0\x25\xc4\x2d\xfb\x06\x39\x44\x3e\x6f\x8e\x9c\x20\x64\xb9\xdb\x04\x6a\x7c\x21\xcd\x32\x71\xff\x01\xd5\xd2\x25\x33\xf8\xe6\xd5\x77\xdf\x7e\xdf\x31\x50\xcf\x29\x6b\xc4\xf8\xbd\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\x28\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\xf3\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\xdf\xfe\x6b\xb7\xc0\x48\x25\xb3\x22\x9b\xc1\x8b\x8e\x21\xde\x22\x3f\x85\x78\x78\x48\x5b\x7f\x26\xc8\x2c\x2f\x8d\xc8\x32\xce\xfc\x65\x8c\xca\xc9\x85\x44\x53\x57\x31\x9f\x17\xf1\xc4\x05\x9f\x79\xd4\x88\xff\xb5\x0d\x66\xf4\x20\xa5\xbb\x32\x3a\x2e\x22\x34\x96\x0b\xc0\xbe\x7c\x12\xd5\x2d\xef\x26\x47\xaf\x95\x3e\xcd\x84\x2a\xe0\x2c\x2b\x59\x14\xa8\xa2\x50\x52\x2d\x6d\x40\x46\x5a\x6f\xff\xfa\xaa\xb6\x34\x6d\x9d\x20\x59\xed\x66\x5d\x8c\x77\x62\x65\x8c\x06\x63\x10\xb0\x2c\x84\x11\xca\x21\xc6\x64\x57\xfb\xcd\x47\x80\x52\xb3\xf2\x62\x7b\xcc\x3b\x68\x49\x82\x01\xf2\x96\x9b\x36\x1c\x0e\x91\x7d\x09\xf9\xc9\x0c\xd0\xcb\x17\xaf\x7a\xe5\xae\x1a\xd7\x7d\x04\x24\x9c\x43\xa3\x66\xf0\xdf\x9f\xcf\xc7\xff\x29\xc6\xbf\xde\x9e\x86\x7f\x5e\x8c\x7f\xf8\x9f\xd1\xec\xf6\x79\xed\xe7\xed\xd9\xeb\x7f\xe9\x80\xd4\x1e\xe7\x6e\x5b\x43\x86\x83\xaf\x2d\xc3\xaa\x52\x3e\x46\xec\x88\xf5\x02\x6e\x4c\x81\x23\x78\x27\x52\x8b\x23\xf8\xa4\xd8\x4f\x7e\x21\xd1\xba\x43\x7d\xdf\xc6\x70\x42\xab\x9e\xf4\x0f\x61\x94\xfa\xc7\x04\x74\xfb\x6a\xab\x87\x11\x89\x86\x12\x31\x6a\x86\xb0\x76\xd1\x00\xd8\x20\xc3\x42\xeb\x09\xde\x8b\x2c\x4f\x71\x12\xe9\x6c\xda\x73\x11\xa1\x81\xc2\x43\x9c\xdc\xcb\x6f\x0f\x90\x9e\xd3\xcf\x5e\x46\x6e\x4f\x3f\x8f\xc3\x7f\xcf\xcb\x4f\x67\xaf\x4f\xff\x6b\xd2\xdb\x7f\xf6\x7c\x7a\xf6\xfa\xb4\x26\x79\xb7\x9f\xc7\x5b\xb1\x9b\xdc\x3e\x3f\x7b\x5d\xeb\x3b\xdb\x17\xc2\x5a\xfa\x32\x98\x89\x7c\xd8\x8e\xf5\x51\x08\x05\x3e\xd6\x89\x2c\x2f\x25\xb2\x19\x39\xee\xe6\x26\x41\x7a\xc9\x81\x7e\xea\xba\x13\x32\x48\xe6\xe1\xc8\x4b\x1d\x5e\x2c\x6d\xd6\x43\x6b\xe9\xf5\xde\x45\x84\xca\xc2\x37\x36\xf5\xf7\x5a\xe3\x6c\xd6\xfa\x3f\xe2\xe2\x80\xeb\x19\x3b\x33\x6a\x45\x9f\x40\x98\x66\x29\x3f\xdc\x2d\xaa\x6a\xfd\x7f\xc0\x4d\x8d\xee\x0b\x6e\xad\x5b\xa0\x88\xbf\xac\x03\x06\x79\x0c\x7b\xe8\x3c\x00\x1e\x54\x69\xf6\x43\x57\xc2\x25\x5f\x7a\xc2\x76\x11\x08\xca\x47\x9d\x7c\xee\x9d\x4b\x8c\xb0\x71\x97\x8e\xc3\x2b\x14\x71\xf8\x48\x21\x87\xc1\xd0\x37\xf2\x1e\x7d\xc0\xfa\x6c\xef\xdc\x51\x18\x03\x82\x5c\xb1\x8c\xe1\xdf\xae\x7f\xbe\x9c\xbe\xd7\xc1\xab\x52\x12\x64\xbd\x36\xf2\xc9\xd6\x08\x6c\x11\x25\x20\x28\x8b\xb7\x94\x4d\x5f\x53\xcf\x24\x13\x4a\x2e\xd0\xba\x49\x80\x86\xc6\x7e\x7e\x75\xdb\x6d\x1e\x29\xd2\x0d\x16\x95\x03\x5d\x3e\x53\x2e\x2f\xa0\x05\x51\x62\x2d\xa3\xcd\x57\x30\x39\xf6\x64\x54\x73\x1d\x87\x4d\xae\x79\x13\x4e\xdc\x21\xe8\xb0\x89\x02\x21\x95\x77\x3d\x1e\xe0\x84\x04\xb1\x86\xea\x6f\xa4\xba\xbf\x9f\xc0\xe9\x9a\xcb\xe8\x27\xf4\xf3\xc4\x23\x52\x5d\x3c\xa4\x6f\x35\x5f\x1a\x10\xf2\x21\xbf\x91\xcb\x25\x05\x3f\xdd\xde\x20\x41\xc0\x15\x2a\x77\xc6\x1e\x65\x01\x4a\xd7\x80\xa8\x70\x28\xb6\x3d\x0a\xdb\x45\xf0\xf3\xab\xdb\x13\x38\x6d\xd2\xa1\x73\x31\xa9\x62\xbc\x87\x57\xd5\x11\x58\xae\xe3\xb3\x50\x55\xb7\x1b\xe5\xc4\x3d\x67\x10\x89\xb6\xa8\x7c\x69\xdf\x69\x5f\x5b\xb4\x9a\x72\x62\x4c\xd3\xb1\x0f\x1c\x63\x58\x73\xed\xa8\x73\xa5\x92\x55\xfe\x44\x3e\x17\xc6\x0d\x5c\xf7\x0c\xd4\x18\x52\xa4\xb6\x9b\x8f\x65\x3b\x54\x87\xf8\x26\xe4\x81\x9a\xfd\x17\xde\x1f\x3c\x98\x26\xaa\xe3\x0c\xf6\x21\x34\xb9\xac\xc9\xf0\xa3\x68\xb2\x75\x2a\x44\x96\x58\x47\x96\x28\x12\x61\xee\xec\x54\xaf\xc8\xe8\xe3\x7a\xba\xd6\xe6\x4e\xaa\xe5\x98\x84\x74\xec\x25\xc1\x4e\xd9\x39\x4e\xbf\xe2\x3f\x5f\x42\x02\x76\xb0\x4f\x41\x07\x7f\x47\xfb\x2f\x24\x06\x47\x0a\xd3\xc7\xd2\xa2\xbc\xd9\xf9\x10\x9f\xd7\x43\x91\xeb\x32\x8d\xdc\x81\x4b\xb6\xc1\x9f\xc3\x87\xbb\xdd\x35\xdb\x9c\x89\xd8\x1b\x6f\xa1\x7a\x92\xad\x3f\x58\xb3\x88\xe2\x5c\x7c\x88\x36\xe3\xf0\x50\x63\x2c\x54\x3c\xe6\x8c\xd4\x3a\xfa\xfe\x58\x12\x17\xf2\x8b\x8d\xd0\xa7\x8b\xb7\x7f\xad\xbe\x15\xf2\xb1\x16\xe7\x90\xfb\x22\xbe\xb0\x34\x03\x67\x8a\x32\xb2\xb6\x4e\x1b\xb1\xc4\xe6\xb7\x62\x5e\x5d\x7e\xdf\x52\x34\xe4\xb2\xf0\xdb\xef\xfc\x69\xfb\x26\x44\xa4\x79\x22\x5e\x95\x73\x8f\x2f\x43\x6a\xdc\x3a\xbe\x0c\x39\xbe\x0c\x39\xbe\x0c\xd9\x69\xc7\x97\x21\x7f\xce\xcb\x90\xe3\xcb\x8e\xe3\xcb\x8e\xe3\xcb\x8e\x7a\x3b\xbe\xec\xe8\x6b\xc7\x97\x1d\xc7\x97\x1d\xc7\x97\x1d\xc7\x97\x1d\x1d\x4b\x1d\x5f\x76\x1c\x5f\x76\x1c\x5f\x76\xec\x20\x7b\x7c\xd9\xf1\xb8\x53\xcf\x7f\xee\x0b\xc0\xc7\x73\xf7\x7f\x8c\x73\xf7\xe3\x49\xfa\xf1\x24\xfd\x78\x92\x7e\x3c\x49\x3f\x9e\xa4\x1f\x4f\xd2\x07\x68\x72\x3c\x49\x3f\x9e\xa4\x1f\x4f\xd2\x8f\x27\xe9\x61\x7c\xdf\x49\xfa\x42\xa4\xf6\xe0\xa3\xf4\xbf\x05\x00\x00\xff\xff\xfa\x66\xf8\xbe\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\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")
+var _operatorsCoreosCom_operatorsYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xc4\x1a\xcb\x92\xdb\xb8\xf1\x3e\x5f\xd1\x25\x1f\xbc\x5b\x25\x4a\x6b\xe7\x90\xd4\xdc\xa6\xc6\xde\xd4\x24\x9b\x59\x97\x67\xec\xcb\xd6\x1e\x5a\x64\x4b\x44\x44\x02\x5c\x34\x28\x8d\xe2\xf8\xdf\x53\x0d\x80\x12\xa9\x17\x39\x6b\x39\x83\x8b\x24\x3c\xfa\xfd\x04\x84\x95\xfa\x4c\x96\x95\xd1\xd7\x80\x95\xa2\x27\x47\x5a\x7e\xf1\x64\xf9\x37\x9e\x28\x33\x5d\xbd\xb9\x5a\x2a\x9d\x5d\xc3\x6d\xcd\xce\x94\x1f\x89\x4d\x6d\x53\x7a\x47\x73\xa5\x95\x53\x46\x5f\x95\xe4\x30\x43\x87\xd7\x57\x00\xa8\xb5\x71\x28\xd3\x2c\x3f\x01\x52\xa3\x9d\x35\x45\x41\x36\x59\x90\x9e\x2c\xeb\x19\xcd\x6a\x55\x64\x64\x3d\xf0\x06\xf5\xea\xa7\xc9\x9b\xbf\x4e\x7e\xba\x02\xd0\x58\xd2\x35\x98\x8a\x2c\x3a\x63\x79\xb2\xfb\x96\x1a\x4b\x46\x3e\xca\x2b\xae\x28\x15\xf8\x0b\x6b\xea\xaa\xbd\xbb\xb5\x27\x80\x6a\xc8\x40\x47\x0b\x63\x55\xf3\x1b\x20\x01\x53\x94\xfe\x7b\x60\xef\xd7\x08\xc3\x4f\x15\x8a\xdd\x3f\x3b\xd3\xbf\x28\x76\x7e\xa9\x2a\x6a\x8b\x45\x0b\xa7\x9f\x65\xa5\x17\x75\x81\x76\x37\x7f\x05\xc0\xa9\xa9\xe8\x1a\x6e\x8b\x9a\x1d\xc9\x44\x64\x37\xd2\x90\x44\x5e\x57\x6f\x22\x49\x9c\xe6\x54\x62\x43\x20\x08\x28\x7d\xf3\xe1\xee\xf3\x5f\x1e\xf6\x16\x00\x32\xe2\xd4\xaa\xca\x79\xe1\x35\x34\x82\xa5\xca\x12\x93\x76\x0c\x08\x69\x40\xbb\x25\x68\xd2\x3a\xee\x36\x42\x98\x99\xfd\x9b\x52\xd7\x9a\xae\xac\x6c\x76\x2d\x29\x85\xd1\x32\x92\xce\xfc\x1e\x1d\xff\x4d\xf6\x56\x01\x84\xfc\x70\x12\x32\xb1\x18\x62\x70\x39\x35\x82\xa0\x2c\xf2\x0c\x66\x0e\x2e\x57\xbc\xe3\xc0\xdb\x90\x4c\xa3\x8e\x74\x4e\x0e\x80\x3f\x90\x15\x40\xc0\xb9\xa9\x8b\x4c\x4c\x6d\x45\xd6\x81\xa5\xd4\x2c\xb4\xfa\xcf\x16\x3a\x83\x33\x1e\x6d\x81\x8e\xd8\x81\xd2\x8e\xac\xc6\x02\x56\x58\xd4\x34\x06\xd4\xd9\x01\xec\x12\x37\x60\x49\xf0\x42\xad\x5b\x10\xfd\x11\x3e\xa4\xe5\x5f\xc6\x12\x28\x3d\x37\xd7\x90\x3b\x57\xf1\xf5\x74\xba\x50\xae\x71\xa2\xd4\x94\x65\xad\x95\xdb\x4c\xbd\x3f\xa8\x59\x2d\x96\x33\xcd\x68\x45\xc5\x94\xd5\x22\x41\x9b\xe6\xca\x51\xea\x6a\x4b\x53\xac\x54\xe2\x99\xd1\xde\x91\x26\x65\xf6\xca\x46\xb7\xe3\x3d\xc4\x41\x91\xec\xac\xd2\x8b\xce\x92\x37\xea\x67\x2a\x4b\x2c\x1e\x94\xd8\x4e\x00\x18\x98\xdd\xe9\x44\xa6\x44\x8c\x1f\xdf\x3f\x3c\x42\x43\x51\xd0\x5b\x50\x51\xcb\x00\x4f\x6b\x4b\x24\xab\xf4\x9c\x6c\x38\x39\xb7\xa6\xf4\x50\x49\x67\x95\x51\xda\xf9\x1f\x69\xa1\x48\x3b\xe0\x7a\x56\x2a\x27\x66\xf1\x47\x4d\xec\x44\x91\x87\x80\x6f\x7d\xd0\x81\x19\x41\x5d\x65\xe8\x28\x3b\xdc\x72\xa7\xe1\x16\x4b\x2a\x6e\x91\xe9\xff\xae\x3b\xd1\x11\x27\xa2\x90\xc1\xda\x6b\x87\xd4\xc3\x03\x07\x7e\x0b\xd0\x04\xc4\x93\xea\x6e\x62\xc4\x43\x45\x69\xc7\x15\x33\x62\x65\xc5\x55\x1c\x3a\x12\x87\xeb\x04\xc2\x21\xa8\x1d\xba\x9a\x87\x21\xf7\x5b\x3b\xe8\xcd\x8c\xc5\x2e\x5a\xf8\x51\xef\x02\x1a\x8a\x41\x3a\x86\xd4\x94\x95\xd1\x62\x57\x43\xa9\x3a\x1d\xcc\xc0\x67\xa5\x06\xde\xe1\xda\x1e\xed\xb7\xdb\xad\x71\x7e\x46\xbc\x35\x7e\xe1\x01\x5d\x00\xc7\x14\x18\x3a\x12\x6e\x07\x50\x2b\x43\xac\x5c\x74\x71\x8c\x26\x49\x17\x05\xce\xa8\x78\xa0\x82\xd2\x43\xf5\xf4\x71\x2c\xa3\x73\xfe\xf8\x96\x3d\xe6\x7f\x69\x9f\x08\xa1\xc1\x03\x81\x3f\x6a\xb2\x1b\x30\x2b\xb2\x12\x2d\xc8\x89\xe2\x76\x42\xa9\x99\x32\x89\xb9\xec\x4f\x76\xc4\xf2\xfa\x8c\x32\x07\x8a\x69\x08\xab\xe0\x43\xb8\x4b\xf3\xf7\x4f\x12\x91\x5a\x59\x77\x00\xd7\xfb\x07\x23\xe3\x8a\x3d\x9b\x41\x00\xdc\x08\x25\x2a\xad\xf4\x41\x0f\x1e\x73\xea\xcc\x00\x5a\x82\x9b\xfb\x77\xc7\x82\xd2\x3e\xc3\x68\x2d\x6e\xce\xec\x52\x8e\xca\xb3\x4c\xf4\x47\xf8\xee\xb8\x39\xc3\x4b\xcc\x03\xcd\x4a\x34\x73\xed\x50\x69\x8e\x49\x70\x0c\x08\x4b\xda\xf8\xfc\xe9\xd3\x74\xe3\xb5\xb2\xb9\x07\xb5\x25\x9f\x8b\xbd\x69\x2c\x69\xe3\x41\x9c\x4a\xad\x87\x92\x3a\x6b\x1a\x0d\x82\x73\xbe\xb4\x1b\x89\xa0\xef\xdd\x63\x8e\xc7\xc4\xee\x18\x62\x93\x61\x2c\x69\xd3\xb7\x65\x4f\x97\x22\x23\xc5\xb1\x88\x11\x9d\xc9\x84\x57\x8a\x4c\x6d\xd5\x84\x55\x55\x28\x3a\x9e\x26\xf7\xc7\xc9\xe4\x73\x38\x1a\xf6\x9f\x49\x74\xaf\x01\xb6\x61\x77\x8b\xd7\x25\x6d\x5e\x73\xb0\x12\xf1\xc0\x5c\x55\x12\x4f\xb6\xa1\x66\x88\xa9\x84\xf1\x19\x0b\x95\xed\x8a\x75\xef\x8f\x77\x7a\x0c\xf7\xc6\xc9\xc7\xfb\x27\x25\x65\x85\x98\xdf\x3b\x43\x7c\x6f\x9c\x9f\xb9\xa8\xf4\x02\xb1\xdf\x43\x76\x01\xb2\x77\x55\x1d\xc2\x87\x08\xa7\x5d\xbc\xf1\x04\xee\xe6\x9d\x00\x2c\xbb\xef\x34\x18\x1b\x45\x30\x00\x8d\xaf\xd8\x03\xaa\x80\xa4\xac\xd9\xd7\x5b\xda\xe8\x84\xca\xca\x6d\x8e\x62\x89\xb2\x35\xb6\x23\xda\x6f\x42\x18\x91\x3d\x4a\xe1\x18\x56\x42\xcf\x50\x60\x4a\x19\x64\xb5\x67\xdc\x97\xaf\xd2\xef\xa9\x74\x00\xae\x92\xec\x82\xa0\x92\x90\x3f\x54\xeb\x7d\x81\x3a\x8c\x01\xe1\xba\x0d\x74\x90\x29\x01\x3c\x25\xd2\x42\x5b\x4d\x8e\x38\x91\x94\x94\x44\x9a\x9c\x29\xcf\xf2\xfb\x27\x0f\xfa\x5c\xe8\xcb\x80\xe1\xf9\xb3\xc7\x76\x5b\x20\x43\x96\x29\xb1\x12\xbb\xfd\x22\xc9\xc4\xab\xfd\x2b\x54\xa8\x2c\x4f\xe0\xc6\x37\xd6\x05\x75\xd6\x94\xf6\x06\xd2\x02\xd3\x83\xae\x12\x34\x92\x0f\x56\x58\x48\x6a\x93\x48\xa2\x81\x8a\x90\xe8\xcc\xfc\x20\xe1\x8f\x61\x9d\x4b\x3d\x27\x41\x76\xae\xa8\xf0\x5d\xd1\x68\x49\x9b\xd1\x58\x50\x9f\x45\xd7\xf6\x80\xd1\x9d\x1e\x85\xf4\x78\x60\xd1\xdb\x5c\x6a\x74\xb1\x81\x91\x5f\x1b\x7d\x5b\xfd\xd0\x9b\x15\x31\xcb\xfc\x8d\x0d\x16\x1f\x06\xa6\xaa\x01\xa6\xd9\xb1\xab\x12\xab\x7e\xb3\xb2\x34\x3f\x89\xb6\x63\x47\x1f\x69\x1e\x04\xd0\x2a\x31\xe7\x64\x49\xfb\xc2\xdb\x9c\xac\x2b\x77\x95\xe8\x38\xa6\x46\xca\x60\xad\x5c\xde\xad\x67\x4f\x49\xb4\xdf\xc9\x7b\x5c\xbb\xcb\x84\x4a\xf3\x8f\x0d\xd9\xc1\xde\xb7\x5c\x84\x9c\xd6\x50\x3b\x06\xd2\x56\xa5\x79\x43\xac\x34\x3e\xa1\xb9\x12\x6b\x09\xaa\x3b\x93\xf3\x06\x19\xc1\xb0\x1a\xe5\xf4\x7d\xcf\x19\x46\x6f\x3e\xdc\x35\xf7\x3a\xe1\x3a\x87\x1a\x46\x7b\xd2\xe9\xc0\xf8\xb7\x93\xc1\x33\x88\xba\xdd\x1e\x6a\xd7\x17\xad\xbb\xa0\x6d\xdb\xe9\x6f\x1d\x1a\x0b\x1a\x42\x70\x7f\x16\x18\x94\x01\x8e\x93\xbb\xa3\xb6\x4d\x2c\xae\x50\x15\x38\x2b\x9a\xb6\x39\x14\x47\xb1\x69\xde\x12\xff\x3a\x98\xcd\x91\x8b\x8e\x63\x6c\x0c\xa8\xa5\x87\x57\xd3\x52\x2b\x07\x93\x1d\xb0\x51\xf0\xf7\x6c\x1b\x5e\x52\x4b\x77\xcb\xee\xd1\xa2\x66\x2f\xc0\x47\x55\xd2\x90\xe4\xbb\xd7\xee\xb2\x03\xa7\x4a\x8a\xd6\xd0\x28\xc3\x6d\xc1\x52\x16\x2e\xac\x8c\xa6\xc6\x37\x7d\x36\x31\x2e\xa7\x93\x01\xa5\x3d\x9e\x95\xec\x01\xe6\xc6\x96\xe8\xae\x21\x43\x47\x89\x50\x36\x48\x0c\x9f\xfc\x3d\xd8\x45\x45\xb0\x46\x16\x6d\xcc\xe8\xf0\xaa\xf4\x05\x98\x2c\x89\x19\x17\xcf\xe7\xee\x06\xf2\xba\x44\xf1\x2e\xcc\xbc\x1f\x45\x40\xa0\x74\xa6\x52\xf4\x37\x9c\x19\x39\x54\x05\x03\xce\x4c\x1d\xbc\x6f\xa7\xfe\x8b\x6b\xd8\x12\x72\x5f\x94\x3d\xc2\x47\x28\x13\xe4\xa8\x08\xaf\xab\xaa\xd7\xec\x6d\xe0\x7b\x52\x7d\xfc\xca\xaf\x97\xea\x78\xfd\xb7\x0d\xb6\x91\xe0\xb1\xf7\x26\x33\x87\x47\x5b\xd3\x18\x7e\xc6\x82\x69\x0c\x9f\xf4\x52\x9b\xf5\xe5\x69\xf7\x9b\x9f\x2d\xef\x4d\xe5\x29\xdc\xd2\x7c\x41\xb2\x7c\x81\xf9\x01\x5d\x7e\xc9\xab\x9d\xbb\x58\x2b\xf9\x86\xc8\x57\x19\x95\xa2\x94\x3a\x0f\x2a\xa0\x34\x3b\xc2\x2c\x4e\x92\x76\xca\x52\x5c\x1b\x87\xcb\xf9\x41\x32\xdd\x3d\xbf\x48\x45\x0b\x28\x85\xae\xca\xe0\x1f\x0f\xbf\xde\x4f\xff\x6e\x62\x01\x8d\x69\x4a\x1c\x13\x93\x54\xb6\x63\xe0\x3a\xcd\x01\xb9\xb9\x80\x7e\xf0\x29\xab\x44\xad\xe6\xc4\x6e\x12\xa1\x91\xe5\xdf\xde\xfe\xde\x27\xed\x9f\x8d\x05\x7a\xc2\xb2\x2a\x68\x0c\x2a\x76\xa2\xcd\x8b\x44\xab\xf4\xf2\x82\xd8\x42\xf6\x55\x96\x27\xb8\x32\x59\x64\x78\xed\x59\x71\xb8\x24\x30\x91\x95\x9a\xa0\x50\xcb\x5e\x9b\x19\x71\x45\x69\x8b\xec\x2f\x1a\x4b\xfa\x3a\x82\x1f\xd6\x39\x59\x82\x91\xfc\x1c\x05\x72\xb6\xc5\xab\xcc\xb5\xdc\x21\x92\x15\xae\x75\xac\x5a\x2c\xc8\xf6\x86\x5b\xff\x72\xb2\x22\xed\x7e\x94\x46\x5b\xcd\x41\x9b\x16\x28\x8f\x40\xf4\x58\x51\xaa\xe6\x8a\xb2\x03\x32\x7f\x7b\xfb\xfb\x08\x7e\xe8\xca\xa4\x07\xa5\xd2\x19\x3d\xc1\xdb\xd0\x87\x29\x16\xe9\xfd\x18\x7b\x72\xde\x68\x87\x4f\x82\x31\x95\x06\x4a\x87\xee\xc6\x19\xc8\x71\x45\xc0\xa6\x24\x58\x53\x51\x24\xe1\x05\x20\x83\xb5\xbf\xb1\xe8\x2d\x3e\x82\x0a\x43\x6f\x5f\xa1\x75\x3d\xef\x82\x1d\xf9\x0c\x73\xc2\x63\xcf\x65\xdd\xf1\x3c\xff\xf3\x4f\x69\xcf\xaa\x82\x5f\xf0\x19\xea\x4f\x49\xcc\xbf\x5d\x5f\x50\x62\xf7\x2d\x5f\xf8\x06\x89\xed\x9a\x51\x11\x5a\x66\x52\x16\x79\xa5\x54\x39\x9e\x9a\x15\xd9\x95\xa2\xf5\x74\x6d\xec\x52\xe9\x45\x22\xc6\x9e\x04\x2b\xe2\xa9\xff\xb7\xc0\xf4\x95\xff\xb8\x94\x80\xb8\xc2\xf4\xe2\x52\xf2\x40\x5f\x5e\x54\x42\x05\x4f\x2f\x21\xa9\xa6\x01\x7e\x7e\xcf\xd9\x2b\xaf\x87\x10\xf8\xd2\x7d\x1c\x12\x93\xd6\xb9\x4a\xf3\xe6\x6f\x07\xad\x2c\x51\x62\x16\xd2\x08\xea\xcd\x0b\xfb\xac\xe8\xa3\xb6\x42\xd9\x26\x89\xff\xa4\x49\x50\x67\xf2\x9d\x15\x3b\x99\xbf\x84\x02\x6a\x75\xd1\xe0\xf7\xe9\xee\xdd\xcb\x9b\xe7\xf4\x55\xad\x2e\x11\xe9\x86\xdc\x6f\x85\x27\xec\x6b\x70\xb6\x6e\x7a\x17\x76\xc6\x4a\x87\xd2\x99\xab\x67\xdb\x9b\xa9\x9d\xbc\x63\x31\x0d\x5f\xbe\x5e\xfd\x2f\x00\x00\xff\xff\xdb\x45\xab\x97\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\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")
+var _operatorsCoreosCom_subscriptionsYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\xfd\xfb\x73\x23\xb7\x95\x28\x8e\xff\x9e\xbf\x02\xa5\xa4\x4a\x52\x42\x72\xc6\xd9\x7c\x36\xb9\x73\x53\x49\xc9\x92\x26\xab\x6b\xcf\x58\x77\x34\x76\x6a\xbf\x5e\xdf\x35\xd4\x0d\x92\x88\x9a\x40\xbb\x81\xa6\x86\x59\xef\xff\xfe\x2d\x9c\x03\xa0\xd1\x7c\x35\x40\x91\x94\xc6\xdb\xf8\xc1\x1e\x35\xbb\xf1\x3c\x38\xef\x07\x2d\xf9\x77\xac\x52\x5c\x8a\x37\x84\x96\x9c\x7d\xd2\x4c\x98\xbf\xd4\xe8\xe1\x4f\x6a\xc4\xe5\xab\xf9\x17\xbf\x7a\xe0\x22\x7f\x43\x2e\x6b\xa5\xe5\xec\x03\x53\xb2\xae\x32\x76\xc5\xc6\x5c\x70\xcd\xa5\xf8\xd5\x8c\x69\x9a\x53\x4d\xdf\xfc\x8a\x10\x2a\x84\xd4\xd4\x3c\x56\xe6\x4f\x42\x32\x29\x74\x25\x8b\x82\x55\xc3\x09\x13\xa3\x87\xfa\x9e\xdd\xd7\xbc\xc8\x59\x05\x9d\xbb\xa1\xe7\xaf\x47\x5f\xfc\x71\xf4\xfa\x57\x84\x08\x3a\x63\x6f\x88\xaa\xef\x55\x56\xf1\x12\x7a\x1a\xc9\x92\x55\x54\xcb\x4a\x8d\x32\x59\x31\x69\xfe\x37\xfb\x95\x2a\x59\x66\xc6\x98\x54\xb2\x2e\xdf\x90\xb5\xef\x60\x77\x6e\x2a\x54\xb3\x89\xac\xb8\xfb\x9b\x90\x21\x91\xc5\x0c\xfe\x8d\x4b\xbc\x0b\x46\x85\xc7\x05\x57\xfa\xab\x95\x9f\xbe\xe6\x4a\xc3\xcf\x65\x51\x57\xb4\x58\x9a\x2d\xfc\xa2\xa6\xb2\xd2\xef\x9b\xb1\xcd\x58\xaa\xbe\x0f\xff\x6d\x5f\xe4\x62\x52\x17\xb4\x6a\x77\xf2\x2b\x42\x54\x26\x4b\xf6\x86\x40\x1f\x25\xcd\x58\xfe\x2b\x42\xec\x76\xd9\x3e\x87\x84\xe6\x39\x1c\x01\x2d\x6e\x2b\x2e\x34\xab\x2e\x65\x51\xcf\x84\x1f\xd3\xbc\x93\x33\xdf\xeb\x1b\xf2\x71\xca\x48\x49\xb3\x07\x3a\x61\x6e\xbc\x7b\x96\x13\x2d\xfd\x07\x84\xfc\x43\x49\x71\x4b\xf5\xf4\x0d\x19\x99\x2d\x1e\x99\x1d\x0c\x7e\xc6\xf3\xb9\xc5\x4e\x82\xe7\x7a\x61\xa6\xab\x74\xc5\xc5\x64\xdb\xf0\x19\xd5\xb4\x90\x13\x82\x60\x44\xc6\xb2\x22\x7a\xca\x88\x19\x8a\x8f\x39\xcb\xdd\xfc\xb6\xcc\x08\x3f\x5d\x99\xd3\xdd\xf2\xe3\xe8\x29\x4d\xa9\x10\xac\x20\x72\x4c\xea\x32\xa7\x9a\x29\xa2\x65\xb3\x3f\xdb\xb7\xc7\x7e\xbc\x32\x9b\xcb\x95\xe7\x6b\xa6\x83\xaf\xce\xbf\xa0\x45\x39\xa5\x5f\xd8\x87\x2a\x9b\xb2\x19\x6d\xce\x50\x96\x4c\x5c\xdc\xde\x7c\xf7\x2f\x77\x4b\x3f\x90\xf6\x52\x42\x10\x25\x0f\x8c\x95\xaa\xb9\x14\xa4\x2e\xcd\x9a\xcc\xe2\xc8\xfd\x82\xe8\x8a\x66\x0f\x5c\x4c\x60\xe9\x13\x5c\xef\x25\x1e\x8c\x1a\xad\x4c\x59\xde\xff\x83\x65\x3a\x78\x5c\xb1\x9f\x6a\x5e\xb1\x3c\x9c\x8a\xd9\x59\x87\x09\x96\x1e\x9b\x7d\x0a\x1e\x95\x95\x99\x96\x0e\xee\x21\xb6\x00\x15\xb5\x9e\x2f\x2d\xf3\xe7\xe1\xd2\xaf\x84\x98\xdd\xc1\x2f\x49\x6e\xf0\x92\x59\xd0\x94\xb9\xeb\xc2\x72\xbb\xa5\xe6\x80\xf5\x94\x2b\x52\xb1\xb2\x62\x8a\x09\xc4\x54\xe6\x31\x15\x76\x95\xa3\x95\xce\xef\x58\x65\x3a\x32\x57\xba\x2e\x72\x83\xd0\xe6\xac\xd2\xa4\x62\x99\x9c\x08\xfe\x4f\xdf\x3b\x6c\xa2\x19\xb6\x30\x10\xa4\x09\x5c\x48\x41\x0b\x32\xa7\x45\xcd\x06\x84\x8a\x7c\xa5\xef\x19\x5d\x90\x8a\x99\x71\x49\x2d\x82\x1e\xe1\x13\xb5\x3a\x97\x77\xb2\x62\x84\x8b\xb1\x7c\x43\xa6\x5a\x97\xea\xcd\xab\x57\x13\xae\x1d\xaa\xce\xe4\x6c\x56\x0b\xae\x17\xaf\x00\xeb\xf2\xfb\xda\x1c\xfd\xab\x9c\xcd\x59\xf1\x4a\xf1\xc9\x90\x56\xd9\x94\x6b\x96\xe9\xba\x62\xaf\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\xd7\x77\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\x97\x40\xda\xc8\x3d\xb3\x38\x22\x5f\x7d\xe5\x46\x90\x4b\x3a\x63\xc5\x25\x55\xec\xe8\x67\x67\xce\x48\x0d\xcd\x81\x44\x9f\x5e\x48\xb8\x57\x3f\x58\xb9\xf5\x84\x38\x92\xbb\xf1\xb8\x43\x14\x74\x57\xb2\xcc\x5f\x47\x2a\xc8\x45\x59\x16\x3c\xc3\x1b\xa7\xa7\x54\x93\x8c\x0a\xb3\x9d\x5c\x28\x4d\x8b\x82\x2d\xdf\x8e\x8d\xb3\xd8\x84\x7f\x08\x20\x9b\x25\x72\xe5\x1e\xaf\xd0\x8c\xf6\x0f\x9e\xcc\x2e\xbd\xb1\x09\x57\x99\x66\x31\xff\xea\x0f\x5b\xb6\x9c\x20\x4b\x34\xe6\x93\x75\x9f\x6d\xdc\xcb\x4b\xf8\x04\x98\x29\xca\x85\xb2\x5d\xd4\x15\xee\x66\x43\x3b\x0d\x35\xa5\x2d\x4e\x62\x15\x0e\xb7\xee\x6c\xd7\x9a\x4d\xa3\x63\x60\xfd\x16\xeb\x7f\xed\x46\x00\xae\xdd\x8c\x9b\x99\x0f\x88\x9c\xb3\xaa\xe2\xb9\x45\xdd\xa5\xcc\x4f\x15\x20\xd6\xbc\x2e\x80\x50\x49\xa1\x74\x45\xf9\xda\x4b\xef\x9a\xe0\x85\x59\xfc\x90\x6a\xbc\x41\x4c\x91\x47\x5e\x14\xe4\xb7\x42\xea\xdf\xfa\x11\x60\x00\x59\xf1\x09\xf7\xd8\x59\x11\x2e\xdc\xb8\x40\xd6\x2d\x5f\x22\x15\x5b\xea\x70\xf3\xe0\xdf\x2a\x46\xd8\xac\xd4\x0b\x87\xa6\xce\xfe\xeb\xbf\xcf\x0d\x4d\x60\x15\x55\xc1\x80\xad\xfe\x36\x62\x7a\x6c\x1d\x27\x45\x22\x4e\x0b\xf6\x45\xe6\xec\xa2\xe3\xd4\xc8\xf2\xc9\x5d\x31\x64\x7f\x14\x7c\xee\x4f\x3d\x3c\x94\xaa\x2e\x98\xf2\x2c\x9c\xd9\xbb\x2d\x9d\x47\xac\x25\x76\x3d\xf8\x1e\x1b\xb3\xaa\x62\xf9\x55\x6d\x6e\xd9\x9d\x9f\xd5\xcd\x44\x48\xff\xf8\xfa\x13\xcb\x6a\xbd\x86\xa5\xd8\xba\xf4\x2d\x40\xeb\x9a\xe1\x1b\xed\x4e\xb0\x0a\xa1\x0c\x67\x04\xac\xa3\xfd\xc1\x6c\x09\xb0\x05\x66\x07\x15\x62\x3d\x45\x35\x57\xe3\x45\xe7\x00\x66\x47\xfd\x9e\xb3\x4f\x86\xe2\x01\xef\x1f\xdc\x76\xc3\xc8\x01\x71\xe3\xac\xc8\x07\xe4\xbe\xd6\x84\x6b\xa0\x7c\xd9\x54\x4a\xb5\x8a\xed\x96\x1b\xc5\xa3\x85\x79\xcd\xb9\x04\xc6\x85\x48\x61\x80\x95\xcc\x0c\xb9\x02\x86\x89\x85\xc3\x8f\x60\xe5\xcd\x67\x7c\x99\xda\xac\xb6\x99\x54\xba\x39\x2e\x43\xfa\xe1\x02\x0a\x46\x1e\xb9\x9e\xc2\x1f\x93\x8a\x21\xd3\xa4\xea\x99\x19\xf4\x91\xf1\xc9\x54\xab\x01\xe1\xa3\x35\x94\x74\xb9\x19\x00\x64\x34\x9b\x06\xd3\x9a\x31\xa6\x15\xa1\x45\xe1\x96\x10\x42\x2d\x52\x8f\x99\x61\x20\xc8\x99\xe3\x30\x3a\x47\xb1\xdc\xc1\xc0\x53\x9f\x65\xc0\x5b\x7b\x5c\x03\xc2\x74\x36\x3a\x1f\x74\x76\x9f\xc9\x59\x69\x10\x02\x85\x3d\xb8\x5f\x10\xae\x0d\xef\x8e\xdc\x50\x25\xeb\x09\xee\x14\x2b\xec\xc4\x1d\x2f\x0b\x87\x6f\x98\x4b\x90\x06\xd7\x90\x9b\xe5\x76\x82\x9b\x7b\xe2\xd8\x55\x33\x1c\xc7\x4d\x82\xfd\x9b\x51\x9d\x4d\x2d\x1a\xce\x64\x55\x31\x55\x4a\x61\x7a\xc6\x5f\xae\x9b\xb5\xfd\x6f\xf3\x4e\xe7\x78\xa6\xd3\x33\x75\xde\x1c\xf6\x94\x4f\xa6\xee\xac\x69\x85\xe8\xb8\x0d\x23\x5d\x47\x8e\xa8\x84\x56\x15\xed\xba\x47\x5c\xb3\x59\x07\x22\x21\x3b\xdc\x7e\x42\x2e\x84\x45\xf6\x0d\x60\x07\x20\xa6\x59\x35\xf3\x1b\x09\x50\x08\x68\x4f\xe1\x26\xf0\x99\xe1\x84\xb8\xb6\x60\x4e\x5e\x47\x8c\x77\x66\x6e\x02\xe1\xfa\x54\xc1\xad\x1d\xca\xf2\x7c\x44\x2e\x88\xa8\x3d\xe2\xd9\x36\x05\x21\xfd\x0c\x6c\x47\x66\x5a\x4a\x36\x7d\x75\xe3\xa3\x38\xf4\x8d\x6d\x33\x83\xb6\xda\x86\x76\xfe\x4c\x44\x5c\x42\xf3\x3a\xee\x5a\xe7\xab\xb1\x84\xc4\xbd\xed\xe6\x10\xf3\xf6\x12\xc4\x5c\xe0\xcd\x51\xac\x60\x99\x36\xd4\x90\x55\xb3\x01\xa1\x4a\xc9\x8c\x1b\x51\xa1\x81\xfd\xf6\x85\xc2\x95\x74\xef\x3d\x49\xdd\x7f\x92\xbc\x7e\x02\xd2\x68\xfb\x7e\xc7\x7e\xb7\xb2\x1b\x05\x57\xda\x20\xa8\xf6\xae\xb4\xf0\xee\xfd\x02\x7e\x3d\x55\xa4\xa0\xf7\xac\xd8\xc2\x57\x2d\xb7\xf8\xcb\xdf\xb4\x48\x34\xb0\x61\x41\x51\x08\xa1\x69\xcb\xd0\x10\xac\xdb\xca\xbd\x1e\x4e\x40\x0c\x72\x4c\x3d\xb2\x82\x03\x42\xc9\x03\x5b\x0c\x10\xa5\x0b\xaf\xc2\x49\x9a\x02\x74\x5c\x31\x24\xe8\x06\xee\x1e\xd8\x02\x3a\xdc\xce\x6e\xae\xed\x2a\x15\xee\xb0\xa5\x60\x80\xa6\x0d\xcd\x44\x13\xbf\xd8\x61\x83\xd2\xaf\x06\xb6\x07\xb6\x95\x7d\x5e\xd7\x56\x94\x8d\x00\xee\x70\x1e\x70\x48\x40\x81\x1d\x3c\x50\x23\x22\xb3\xf5\xfa\x87\xed\x6d\xab\xc0\xb9\xad\xb9\xdd\x7b\xd2\xba\x12\x2f\x88\x69\x1f\xbc\x0e\x07\xe1\xfd\x54\x21\xbc\x1a\xbc\x33\xe5\xa0\xac\x34\x17\x05\xd0\x48\x3a\xd0\x62\xfb\x8e\x16\x3c\x0f\x74\xa0\x86\xd9\xb8\x11\x03\xf2\x5e\x6a\xf3\xbf\xeb\x4f\x5c\x19\x1e\xf3\x4a\x32\xf5\x5e\x6a\xf8\x73\x44\xfe\xa6\xf1\xea\x7d\x1d\x89\x97\x9b\xb6\xf3\x19\xe0\xfa\x8e\x7d\x02\x17\x02\x91\xa8\xd9\xe1\x50\x13\xa7\x46\x46\x32\x07\x16\xdd\xee\x9c\xc1\x5a\x37\xc2\x08\x05\xb8\x73\xc9\x43\x81\x32\x16\xe5\x6c\x1c\x72\x56\x2b\x50\xa5\x09\x29\x86\xc0\x46\xad\x1d\x13\x0f\xc8\x8c\x1b\x1e\xd1\x1e\x87\xdf\x3c\xf4\xdf\xb4\x19\xf6\x6b\x3d\x08\x3e\x4e\x1e\x37\x18\x6c\x4a\xe7\xc0\xda\x73\x31\x29\x3c\x13\x3f\x20\x8f\x53\x9e\x4d\x51\x7a\x04\x4d\x98\x66\x55\x59\x31\xc3\x31\x50\xd0\x99\x99\x27\x13\x56\xa5\x83\xfe\x47\x23\x1a\xe0\xf8\xa8\xef\x2e\x68\xc6\x72\x92\x83\xc8\x82\xaa\x57\xaa\xd9\x84\x67\x64\xc6\xaa\x09\x23\xa5\x21\xfd\xbb\x01\x7c\x1a\x25\xc6\x96\x4c\x8f\xc3\x01\x77\xb8\x61\x84\x7c\x1a\x3e\xd4\xf7\xac\x12\x4c\x33\x35\x34\xfc\xc9\xd0\xce\x5e\xcb\x19\xcf\xa2\x3b\xdb\x4b\x37\xc0\x67\xbd\x35\x72\xdb\x91\x58\x2c\x90\x11\x7b\x16\xab\x67\xb1\x7a\x16\xab\x67\xb1\x7a\x16\x2b\xba\xf5\x2c\xd6\x93\x87\xef\x59\xac\x9e\xc5\x3a\x3a\x8b\xd5\xea\x62\x46\xcb\xd4\x1e\x50\x2f\xb7\x83\x22\xf0\xef\xa8\xd0\x5d\xd6\xfc\x01\xc3\xe7\xfc\x1a\xda\x2a\x40\xc3\xc7\xdc\x59\xe2\xf4\x11\xd4\x86\xd6\x12\x59\x51\x31\x61\xe4\x8b\xe1\x17\xaf\x5f\xa7\x28\x08\x2d\x38\x47\x7d\x31\x96\xd5\x8c\x6a\xf8\xe6\x5f\x7e\xdf\xf1\xc5\x13\x4e\x65\x93\xbd\xe4\x38\x86\x3a\x8b\x79\xbc\x6d\xa6\xc5\x22\x6f\xb0\xa5\x01\x19\x13\x52\x93\x19\xd3\x84\x76\xf3\x64\xa1\xda\x9d\xcf\xd8\xc0\x99\x43\x11\xed\x58\xb7\x11\x67\x14\xcc\x89\x14\xd6\xf4\x62\x0e\xbf\xfb\x70\x77\x5a\x41\xc6\xa8\x62\x86\xc4\xdf\x33\xb3\x8a\x6e\x53\xa0\x26\x4a\xce\xcc\xac\xb9\xd0\x0e\x89\x99\x25\x30\x77\x30\xe4\x8c\x8d\x26\x23\x92\xd7\xd0\x2d\x15\xd6\x0f\xe6\x1c\x57\xab\x16\x4a\xb3\x59\xb7\x2d\xd0\x10\xc3\x0a\xfe\x67\xb6\x45\x57\x0b\xb0\x90\xcf\x99\xd0\x35\x2d\x8a\x05\x61\x73\x9e\x69\xbf\x7f\xe0\xb6\xc3\xb5\x8a\xda\xa9\x04\x36\x3a\x9e\x75\x1e\xae\xdc\xd0\x2e\x22\x95\xc2\xf9\xae\xf4\x1d\x83\x73\x5a\x37\xe0\x83\x5d\xc9\x68\xa3\x4c\xa8\x4d\xbf\x68\xb6\x85\x7f\x02\x70\x7f\xf3\xa1\xdb\xca\x46\x92\xe9\x4f\x02\xcd\xd9\x8d\xb5\xb2\x06\x2f\x59\x59\xe3\xdb\xea\x4a\xd7\x98\xbc\x70\xed\xad\x5b\x23\xc7\x91\x03\xea\x29\x43\x23\xe5\xc5\xfb\xab\xb8\x1d\x23\xd6\x39\xe0\xa3\x2c\x65\x21\x27\x8b\xf0\x78\x61\x3b\xc1\xfc\x67\xe7\x81\xbe\x3a\xc8\x82\x1b\x98\x7f\xbf\x04\x0f\xbd\x69\xa8\x37\x0d\xf5\x7a\x0b\x68\xbd\xde\xa2\xd7\x5b\xf4\x7a\x8b\xb8\xd6\xeb\x2d\x9e\x3c\x7c\xaf\xb7\xe8\xf5\x16\xbd\x69\x68\xb5\xf5\x2c\x56\x77\xeb\x59\xac\xad\xad\x67\xb1\x7c\xeb\x59\xac\x9e\xc5\xea\x59\xac\x9e\xc5\xea\x59\xac\x63\x75\xf3\x54\xd3\xd0\x93\xa6\xb0\xdb\xe0\xa5\xcc\x9f\x10\xbc\x55\xca\x7c\x4b\xec\x16\xea\xf4\x33\x39\x2c\x64\x46\xb5\x0d\xb3\x35\x9f\x58\x2b\x94\xa2\x33\x34\x53\x0c\xc8\x3f\xa5\x60\x18\xcd\x62\xae\x07\x18\x0b\xa4\x9e\xb2\xca\xbc\x7e\xa6\xce\xb7\x86\x10\xf4\xb1\x5f\x7d\xec\x57\x1f\xfb\xb5\xb1\xbd\x98\xd8\xaf\x29\x55\x08\xb7\x48\x1a\x37\x87\x82\x05\x38\xe9\x23\xab\x66\xbf\xd0\x48\x30\x03\xee\x16\x1c\x21\x49\x44\x03\x52\xb8\x33\xb9\x35\xf8\xb3\xfc\xb6\xbd\x1f\x56\xac\x86\x45\xd1\x3c\x67\x39\x29\x59\x35\x44\x10\x95\x64\xcc\x45\xbe\x66\xad\x6e\x7f\xba\xd1\xc3\x01\x43\xb1\xda\xeb\x88\xfa\xe6\x30\xf1\x58\xed\x89\xec\x60\x54\x0c\x2d\xa3\x2d\x22\xf8\x22\xa2\xb3\x52\x25\xf4\x21\xd1\xd6\xa0\xf8\x55\xa4\x8c\x9e\x2e\x66\x83\x70\xec\xcc\x8f\x3b\xaa\x9f\x92\x44\xa1\x0b\x2b\x8f\xff\x54\xb3\x6a\x01\xf1\xf9\x8d\xd8\xe9\x73\x91\x58\x8f\x18\xae\x48\x46\x15\x92\xd5\x14\x56\xf9\x66\x8c\x51\x93\xa2\x2e\x8a\x01\xf6\xb3\x7c\x59\x1d\x9a\x03\x38\x10\xd2\xfc\x9e\xac\x11\x4b\x54\xd1\xec\xa6\x03\xd9\xdd\x0a\x4b\x96\xcf\x69\xb9\x2b\xd4\x8d\x39\xd5\x21\x1e\xcb\x5a\xdd\xe1\x1a\x6b\x7a\xb2\x7d\x1c\xdb\xae\x02\xcc\x4e\xe2\xcb\x93\xe5\xf5\x2d\x7b\xf2\x04\xbd\x22\xbc\x9c\x3c\x99\xfd\xe8\x16\xc9\xee\xfa\x45\xb2\xb3\x8e\x91\xec\xa4\x67\x24\xbb\xea\x1a\xc9\x13\xf4\x8d\x64\x37\x9d\x23\x59\x86\x36\x73\x42\x96\xf1\x3d\x8c\xfa\x91\x3c\x4d\x38\xdf\x5d\x0d\x49\xf6\x70\xb1\xc2\xf1\x83\xcc\x4e\x87\xd3\x4b\x92\x58\xdd\x24\x5c\xab\x96\x7a\xf2\xd8\xe7\xb2\x9b\x6a\x92\xec\xe9\x54\x5c\x66\x1c\xd0\x85\x1d\x4b\x59\x49\x9e\x5f\x61\xb9\x75\x0a\x76\xf8\x68\x0d\xdf\x4e\xa3\x3f\x41\x2b\x48\x9e\xa4\x19\x24\xbb\x6b\x07\xc9\x53\x81\x7d\x6f\x5a\xc2\xbd\x76\x05\x7c\xd2\xd7\xe0\x87\xf6\x04\x6e\x2b\xf9\x06\x06\xc3\x22\x77\x31\xa3\xa5\xb9\x7d\xff\x65\x98\x08\x00\xcc\xff\x26\x25\xe5\x95\x32\xd2\x8d\xd5\x6b\x87\xbf\x59\xf5\x5d\xd0\x4d\xf2\x04\x4a\x33\xb0\xa1\xf1\x73\x5a\x18\x26\x07\x9d\x7e\xad\x0e\xc2\xcc\x65\x99\x85\x1c\x90\x47\x48\x98\x65\xc8\x1b\x6a\x26\xb8\x22\x27\x0f\x6c\x71\x32\x88\x52\x0f\xb4\x5b\x78\xb3\x4f\x6e\xc4\x09\xb2\x4e\x2b\xf7\xd2\xf3\x59\x52\x14\x0b\x72\x02\xbf\x9d\xec\x9b\x47\xdd\x81\x3f\x0a\x53\xb3\xee\xca\x7e\xec\x74\x9d\x9e\xaa\xe0\x26\x2d\xe8\xfb\x8a\x2d\x76\x75\x44\x48\x82\xf9\x77\xad\x11\x1d\x43\x0d\x60\x66\x64\x77\xcf\x37\x61\x66\x56\x60\x99\xac\x8e\x0a\xd5\x55\xbc\x28\x12\x46\xbb\x67\x44\xd3\x07\x06\x16\x1e\x09\xa9\xe5\x78\xce\x30\x99\x1e\x82\x0e\x8c\x64\x40\xa6\x56\x90\x1e\x97\x14\x52\x3e\xd4\xa5\x03\x3d\x97\x4d\x32\x61\x48\x2e\x32\x39\x73\x3e\xf5\xe8\xd7\x3a\xb0\x09\xe6\x1e\xd8\x62\x88\x39\x30\xf1\x39\x0c\x0c\x24\xc0\xaa\x26\x7e\x6c\x09\xe6\x3f\x12\xaa\xc8\x8f\xc0\x54\x0a\x72\x06\x1f\x9e\xff\x98\xe2\x52\xe0\x37\x10\xb5\xaf\xb2\x06\xcc\xc2\x0c\xb1\xb4\x13\x54\xcb\x7b\xbb\x6d\xc7\x12\x86\x76\x99\xe2\xc2\xcd\x38\x45\x7b\xc3\x19\x15\x9a\x9f\x7b\x25\xcd\x88\x00\x1c\x00\x97\x9c\x4b\x71\xaa\x71\x7e\x0e\xaf\xb9\x0e\x52\xbc\x0e\xfc\xbe\x37\x16\x3f\xb4\x16\xe0\x91\xe7\x6c\x4c\xeb\x42\xdb\x6c\xa4\x06\xf5\x01\xa5\x4f\x18\xe1\xa3\xb3\x97\x58\x86\x7f\x2c\xab\x7b\x9e\xe7\x4c\x40\x88\x83\x9b\xfe\xbd\x74\x01\x41\x0d\xb8\x1b\xcc\xd6\x3a\xe3\x94\x61\x2f\x0a\x25\x07\xcb\x3d\x66\x3e\x5b\xa9\xb9\x45\x8f\x53\x26\xda\x03\x10\xae\xcc\xa6\x2a\x96\xc4\xd4\x02\xd7\x03\x77\xf3\x9e\x69\x1a\xa8\x9f\x2d\xaa\x55\x84\x09\x7a\x0f\xfa\xf0\xf6\x85\xbe\x11\x81\xce\x85\x8c\x19\xd5\x75\xc5\xc8\x84\x6a\x46\xce\xe0\x13\xb4\x68\xd8\x33\x88\xc8\x46\xe5\xda\x51\xdc\x91\x9e\x8e\x87\x77\x76\x07\xe3\xea\x19\x70\xf1\xf2\xa0\x3d\x3a\x8e\x42\xc7\x42\xea\x1e\x23\x7f\xb6\x18\x79\x05\xe8\xf7\x81\x94\x57\x3a\xed\xf1\xf2\xe6\xf6\x19\xe1\x65\xe1\xd2\x45\x3f\xb3\xb5\x04\x15\x88\xe8\xed\xeb\xa6\xa4\x1a\xdd\x22\x04\xc4\xed\xa6\x57\x74\xe1\x82\x00\x56\xd0\x43\xee\x8c\xc6\xb5\xb0\x49\xf3\xc1\x6c\xdc\x0c\x8b\x38\x6c\xd9\x37\x21\x61\x4c\x27\xe0\x49\xc1\x14\x98\x22\x98\xf7\x43\x09\x86\x81\x5e\x53\x96\x02\x21\x83\x8d\x9a\x55\xe4\xcb\x41\x84\x4d\xdf\x60\xff\x98\x31\x2a\x14\x39\x71\xae\x30\xa7\xaa\x79\xe3\x24\x09\x07\xb8\x14\xa1\x7e\x6c\xc8\x08\x1d\xa6\x05\x6d\x86\xee\xed\x4d\xbd\xbd\x29\x6c\xbd\xbd\x69\x75\x12\xbd\xbd\x69\x53\xeb\xed\x4d\x3b\x8d\xdf\xdb\x9b\xda\xad\xb7\x37\xf5\xf6\xa6\xde\xde\xd4\xdb\x9b\x7a\x7b\x53\x6f\x6f\x8a\xfd\x68\x1f\xf6\xa6\x46\x0c\x3a\x86\x1c\x1d\x8a\xac\xd6\x9f\x1e\xab\x91\x51\xcd\xb3\x26\x7a\xd6\xbd\x85\xff\x7a\x2e\xa1\x3a\x14\x83\x9f\x2a\x52\x87\x02\xfa\x8a\x06\x23\x59\xa2\xde\x28\x3f\x7b\x09\x7b\x65\x8c\x3d\x89\xd6\xbf\x70\xe5\x52\xe0\xe8\x7b\x8c\xeb\xf0\xd1\x85\xfc\xd8\x02\x87\xf7\xac\x89\x07\xca\xc9\x99\xd3\xff\x9e\x9b\x03\x17\x52\xb7\x7f\x14\x9a\x0f\x9b\x37\xbc\x23\x35\xa8\xa9\x5d\xd6\xbb\x94\x4d\x77\x32\x4b\xa3\x0f\x15\x4b\xe5\x41\x1b\x68\x33\xf8\x9f\x55\xad\xd9\x72\x65\x2b\xce\x41\x08\x5f\x55\x0b\x61\xd8\x23\x29\x6c\xb4\x4b\xc2\x4c\x90\xb4\xa0\xea\xd9\xde\x4a\x14\xa6\x60\x8d\x20\x51\x35\xc7\x14\x04\x4a\x50\x8d\xe5\x24\x6d\x6e\x2a\x29\xac\xe2\xde\x3c\xc1\x7e\x12\x26\xe1\x2f\x2c\xec\x27\xf7\x2b\x4a\xb9\xab\xd7\x70\x47\xc3\xc9\x72\x05\xe7\x48\x8b\x42\x3e\xa6\xd0\xa7\xc4\x1b\xb1\x73\x12\xc5\x68\xe8\x7d\x4c\xce\xb6\xb8\x14\x55\x10\xcb\xab\xf7\x29\x19\xb7\xb6\x3e\x25\xe3\xcb\x48\xc9\x18\xd8\x66\xc3\xdc\x8c\xdd\x7b\x05\xb9\x1b\x0f\x9a\x9b\x91\x90\xbf\x4f\x19\xdc\xa2\x8a\xa1\x41\xb5\x2e\x34\x2f\x9b\x68\x6c\x85\x27\x54\xa0\x48\x3d\xb6\x51\x93\xed\xdb\x6b\x66\x43\xb3\x69\xe7\x50\x4b\xb7\x1c\xc6\x83\xe8\x6e\x05\xd8\x14\x23\x0b\x41\xff\x8e\x09\x11\x9d\xac\x8d\xe1\x99\xfc\xb9\xa3\xce\xa2\xf0\xdf\x95\x2b\xac\x1a\xd8\xe5\x15\x39\x33\xd4\xb1\x58\x58\x4b\x76\x0b\x11\xb6\xc8\x6a\xc4\x00\xa8\x07\x9b\x33\xc7\xa0\x4e\xf8\x9c\x89\x86\xfa\x9e\xa9\xf3\x73\xc7\x13\x2f\xf3\x0f\x11\xbd\x3f\x85\xc3\x88\xc1\xda\xa9\x9c\xc1\x12\xbd\x8f\x18\x61\x0d\x47\xf0\xe7\x80\xca\xfe\xa5\x9b\x27\x88\x18\x04\xaf\xb4\x0b\x63\x0d\x0e\xba\xe1\x05\x3a\x7b\x39\x60\xb4\x60\x4a\x48\x5a\x9a\x56\x7c\x87\x50\xb4\x5d\x33\x8a\x1e\x36\x04\xed\xa0\xe1\x67\x9f\x4f\xe2\xcf\x67\x36\xff\x7d\x06\x59\xab\x5e\x88\xb9\xaf\x4f\x5b\xb5\xa9\x3d\x57\xda\xaa\x83\x9b\xf3\x3e\xbb\xec\x55\x47\x35\xdf\x1d\xc7\x74\xf7\x99\x65\xaf\x7a\x16\x53\xdd\x0b\xcf\x63\x75\x38\x13\x5d\x9f\x24\xea\x79\xf2\x70\xa6\x9a\xe1\x76\xbf\x55\xcf\x6a\x7e\x7b\x56\xd3\xdb\xf3\x9b\xdd\x76\xe2\x55\x9e\x6a\x6e\x4b\xbe\x26\x4f\x35\xb3\xed\x12\x46\xb0\x1b\x3c\x1f\x2f\x94\xeb\xc8\x71\x03\x2f\x23\x84\xeb\x99\x82\x05\x9e\x2b\x50\xe0\xb0\x41\x02\xcf\x10\xb2\x75\xa4\x70\xad\x97\x15\x12\x90\xca\x86\x24\x31\x1f\x4f\xc3\xa5\xbb\x70\x08\x3b\x86\x65\xed\x88\x4f\x8f\x19\x8e\xf5\x0b\x40\xa9\x3b\x85\x61\xf5\x58\xf5\x99\xb0\xea\xfe\xc2\xae\x8e\x17\x72\xd5\xe3\xd6\xcd\xed\xc9\xb8\x75\xc7\xd0\xaa\xbd\x69\xff\x0f\x13\x52\x75\xec\x70\xaa\x03\x84\x52\x3d\x47\x18\xd5\x01\x42\xa8\x7a\x9b\x49\x64\xeb\x6d\x26\xb1\xad\xb7\x99\x6c\x6a\xbd\xcd\x64\xb9\xf5\x36\x93\xde\x66\xd2\xdb\x4c\x7a\x9b\xc9\xea\x80\xbd\xcd\xa4\xb7\x99\xc4\xb5\xde\x66\x72\x1c\x9b\x49\x6a\x58\xd2\x6e\xb0\xfc\x3c\xe1\x48\xc7\x0d\x45\xda\x7f\x18\xd2\x33\x86\x20\xfd\xc2\x14\x2e\xc9\xe1\x46\xbb\x81\xf9\x4b\x09\x33\x7a\x19\x21\x46\xcf\x1e\x5e\xf4\xd4\xd0\xa2\xfd\x84\x15\x25\x40\xfb\x8e\x70\x5e\xca\xfc\x42\x68\xfe\xd4\x02\x5a\x21\x00\x6e\xaa\xa2\x45\xe7\x92\xe7\xa4\xac\xb5\x2d\xdc\xd3\x57\xd2\xea\x84\x81\xe3\x54\xd2\x6a\x1d\x5e\x5f\x4e\x6b\x5b\x7b\x31\xe5\xb4\x36\x9d\x59\x5f\x53\xab\xdd\xfa\x9a\x5a\x7d\x4d\xad\xbe\xa6\x16\xb6\xbe\xa6\x56\x5f\x53\xab\xcf\x71\xd8\xe7\x38\xec\x73\x1c\xc6\x7f\xd5\xe7\x38\xdc\xdc\xfa\x1c\x87\x29\xad\xcf\x71\x18\x3d\x7a\x9f\xe3\xb0\xcf\x71\x98\x36\x70\x9f\xe3\x90\xf4\x39\x0e\xfb\x1c\x87\x9f\x71\x8e\xc3\xbe\xa6\xd6\x67\x51\xc4\xa5\xaf\xe0\x92\x30\xf6\xcb\xaa\xe0\xd2\xd7\xd4\xea\x6b\xb7\x44\xb4\xbe\xa6\xd6\x67\x84\x8e\xfb\x9a\x5a\x9f\x33\x46\xee\x6b\x6a\xf5\x78\xb9\xaf\xa9\xe5\x5b\x5f\x53\xab\xaf\xa9\xd5\xdb\x9b\xa0\xf5\xf6\xa6\xde\xde\x94\xd2\x7a\x7b\x53\x57\xeb\xed\x4d\xbd\xbd\x69\xd3\xe8\xbd\xbd\xa9\xb7\x37\xa5\x0d\xdc\xdb\x9b\x48\x6f\x6f\xea\xed\x4d\x9f\xb1\xbd\xa9\xaf\xa9\xd5\xd7\xd4\xea\x6b\x6a\xf9\x91\xfb\x9a\x5a\x7d\x4d\x2d\x68\x7d\x4d\xad\x88\x11\xfa\x9a\x5a\x9f\x6b\x4d\xad\x56\xdc\xd4\xe7\x5b\x58\x2b\x7d\x19\x7d\x75\xad\xbe\xba\xd6\x86\xd6\x57\xd7\xea\xab\x6b\xad\x6b\x7d\x75\xad\xbe\xba\xd6\x96\xd6\x67\x8a\x8c\x6c\x7d\xa6\xc8\xd8\xd6\x67\x8a\xdc\xd4\xfa\x4c\x91\xcb\xad\xcf\x14\xd9\x67\x8a\xec\x33\x45\xf6\x99\x22\x57\x07\xec\x33\x45\xf6\x99\x22\xe3\xda\xf3\x1b\xe0\xfe\x67\x64\x8a\xec\xab\x6b\xbd\xc8\x52\x30\x7d\x1d\x98\x8e\xf6\x72\xea\xc0\xf4\xd5\xb5\xfa\x0a\x30\xb6\xf5\xd5\xb5\x5e\x30\x4a\xed\xab\x6b\x75\xb7\x97\x83\x55\xfb\xea\x5a\x3d\x6e\x6d\xb5\xbe\xba\x56\x5f\x5d\xcb\xb7\xbe\xba\x56\x6f\x33\xd9\xd8\x7a\x9b\x09\xe9\x6d\x26\xbe\xf5\x36\x93\xa8\x71\x7b\x9b\x49\x6f\x33\xe9\x6d\x26\xdb\x27\xdd\xdb\x4c\x7a\x9b\x49\xe7\xe0\xbd\xcd\xe4\x17\x6f\x33\xe9\xab\x6b\xf5\xd5\xb5\xd6\xb4\x5f\x98\xc2\xa5\xaf\xae\xd5\x57\xd7\xfa\x65\x56\xd7\x02\xc5\x2f\x4a\x36\x9b\x20\x3b\x16\x96\x2f\x9a\xae\x2c\x07\x5f\x0b\xa5\xab\x3a\xd3\x75\xc5\x72\x38\x30\x3c\x4c\xc3\x18\x28\x2d\x2b\x67\xa5\x80\x52\x45\x57\xac\x2c\xe4\xc2\x50\xdb\x01\xb9\x95\xf9\x80\x5c\xdc\xde\xdc\xb1\x6a\xce\x33\xe6\xa0\xef\x1b\x4b\xd3\x37\xef\xdb\xc7\x45\xc9\x33\x5a\x14\xa0\xb1\x68\x66\x33\xa3\x0b\xa7\xdb\xbe\x5f\x10\xf6\x49\xb3\x4a\xd0\x82\x68\x29\x0b\x34\x07\x99\xc9\x58\xed\xb4\xae\x38\x9b\x33\x42\xab\x7b\xae\x2b\x5a\x2d\xc8\x8c\x69\x9a\x53\x4d\x37\x8f\xfa\xad\x62\x61\x0c\x8b\x96\xa4\xac\xd8\x10\x6f\x40\x6b\x1e\x00\x9b\xdf\x7c\xfd\xce\xdd\x6f\x9a\xe7\x2e\x60\xc3\x41\xf8\x5d\x7d\xef\x77\xfb\x74\x33\xb7\x95\xfb\xdd\x52\x03\x00\x4f\xab\xa2\x29\xb9\xc2\x3d\xdb\x28\x91\x46\xb0\x25\x69\x4c\x48\x27\x7c\x32\x31\x7f\x2a\x68\x5d\x8b\x79\x5b\xb3\xc7\xc4\x9c\x57\x52\x00\x1f\x39\xa7\x15\xa7\xf7\x05\xb3\x96\x3d\x6f\xef\xb1\xbc\x1d\xdb\x02\x2f\x97\xde\xee\x81\xc1\x40\x1b\xaf\x64\x37\x3d\xeb\xa0\x60\xad\x95\x5e\x8b\xf9\x77\xb4\xad\x66\x10\x6b\x97\x44\xec\x0b\x66\x49\x94\x5c\x76\x2f\x28\x8a\xe9\x8c\x51\x87\x0d\x01\xc3\x6f\x7c\x21\x4e\x69\x65\xba\xd8\x4e\x2f\x5b\xdb\xf2\x9e\xce\x9a\x0a\x6b\x6b\x76\x63\x44\xde\x59\xd1\x98\x92\xcb\xff\xbc\xb9\xba\x7e\xff\xf1\xe6\xed\xcd\xf5\x87\xed\x78\x34\x12\x7f\x02\x6a\x4a\x98\x6c\x27\x51\xff\xce\x9d\x21\x54\xb1\x62\xc2\x30\x5e\xbf\x39\xfb\xee\xe2\xc3\x7f\xbe\xbf\x78\x77\x7d\x0e\x22\x05\xfb\x54\x52\x91\xb3\x2e\x16\xb1\x56\x2e\x42\xa9\xac\xd8\x9c\xcb\x5a\x15\x0b\x4f\x61\xd7\x5f\x85\xe5\x3b\x60\xd0\x43\xc7\x28\x86\x3e\x5a\xec\xb1\xbe\x53\x50\x83\xd0\x06\x38\x1b\xab\x61\xc5\x94\x2c\xe6\x2c\xef\xd2\x7e\x40\xac\xa8\xdb\x8e\xc6\x2e\x5b\xd6\xda\x29\x79\x9c\xa9\xb5\x16\xd9\x94\x8a\x09\xcb\x47\xe4\x4a\xd6\x66\xb4\xdf\xfc\x06\xb6\xac\x62\x79\x9d\x75\xee\x18\x6a\xe8\x50\xa0\xfd\xcd\xc0\x31\x00\x86\xec\x2a\xac\x8e\xa7\x32\x5a\xba\x4d\x0d\x4f\x45\x2d\x84\xa6\x9f\xde\xc4\xd4\xd9\x3b\xf9\x4d\xf0\xe1\x89\xab\x7b\x28\xcd\xf4\x90\x59\xc2\x15\x15\x50\xb2\xae\x20\x27\xe1\xdb\x5d\x7d\x5f\x9b\xf9\xb1\x3c\x84\x1d\x8c\xcc\x64\x73\x56\x81\x72\xc8\x42\xce\x80\x54\x6c\x42\xab\xbc\x60\x0a\x62\x02\x1f\xa7\x0c\x8a\x50\xa2\xa4\x8b\x07\xd5\x31\x16\xf3\x8a\x2c\x21\x3b\x15\x8c\x57\x68\x77\x05\x5c\x7b\xd2\xb1\x8c\x94\x9b\xf7\xb6\x92\x1d\xa5\xcc\x5a\xb7\xef\x0e\x82\x8e\xbc\x6f\xc0\x3a\x70\x3d\xb5\x46\x8c\x51\x88\xe5\x95\xe1\x4e\xc7\x8d\xcd\xde\x3c\x8f\xb0\xdb\x47\xcb\xf2\xf1\xca\xfc\x4c\x8a\x31\x9f\xbc\xa3\xe5\x57\x6c\xf1\x81\x8d\x13\xe3\x1f\x91\x31\xb7\xea\x69\x60\x77\x0d\x75\xc0\x0e\xbb\xd9\xca\x03\x86\xbb\xc5\x98\x4c\xd2\x2c\x1e\xd1\x76\x8e\x95\x02\x85\x28\x22\x58\x36\x7e\xef\xcc\x36\x89\x22\x70\x6b\x27\x17\x2d\x10\x86\x14\xd1\xa2\x82\x34\x0f\x0c\xaf\x44\x63\xe3\x31\xcb\x34\x9f\xb3\xc2\x47\x62\xdb\x0a\xa9\x36\x32\xfa\x9e\x66\x0f\x8f\xb4\xca\x15\xd4\xdc\xa4\x9a\xdf\xf3\x82\xeb\x45\x4c\x3d\x53\x6c\x56\xa8\xb1\xc1\xdb\x4e\x6f\x2e\x94\xa6\x80\xbe\x5c\x65\x4e\xb3\xc3\xc8\xf6\x53\x67\xb8\xc6\xdb\xe8\xc2\x9e\xa3\x87\x83\x1a\x91\x19\xab\x0c\x81\x2b\x16\xe4\xb1\x92\xf1\xa2\xd9\x3b\x09\xf1\xce\x63\xf9\x86\x4c\xb5\x2e\xd5\x9b\x57\xaf\x1a\xd1\x69\xc4\xe5\xab\x5c\x66\xea\x55\x26\x45\xc6\x4a\xad\x5e\xc9\xb9\xa1\x8b\xec\xf1\xd5\xa3\xac\x1e\xb8\x98\x0c\xcd\x02\x86\x78\x81\xd4\x2b\x90\x85\x5f\xfd\x1a\xfe\x77\x08\x28\x23\xce\xdb\xe5\x0d\x39\x39\x89\x78\x5f\x96\xc8\xbd\xef\x00\x99\x77\x20\xe0\x2f\x5a\x64\xc4\x23\x16\x43\x22\xb8\x56\x70\xaf\x9c\x91\xc2\x72\x21\x09\xcb\xbe\x97\xb2\x60\xb4\xdb\xfb\xeb\x29\x9a\x49\x00\xfb\x74\xac\x1a\x75\x2f\x1b\xd4\x8b\x97\xcb\x5e\xcf\x52\xe6\x6f\x88\xaa\xcb\x52\x56\x5a\x35\x42\xa3\x01\x8a\x41\xfb\x4f\x50\x9b\x0c\xc8\x8f\xfe\x21\x7a\x99\x7d\x7f\xfa\xe7\xaf\xae\xff\xfd\x2f\xa7\x3f\xfc\x18\xfe\x16\x88\x8f\xc1\x0b\x11\xd3\x54\x25\xcb\x46\x42\xe6\xec\x3d\xcc\x00\xfe\xb4\xdc\xdd\x45\x96\xc9\x5a\x68\xfb\x83\xa6\xba\x56\xa3\xa9\x54\xfa\xe6\xd6\xff\x59\xca\x7c\xf9\xaf\x08\x1b\xe7\x01\xe9\x0a\xec\xf5\x2d\xd5\x11\x99\x0d\x92\xa8\x0b\x2d\xf9\x77\xac\x52\x11\xb9\x3c\xb0\xb5\xe0\xc5\x7e\x19\x96\x54\x9e\x51\xf8\xe7\x5b\x37\x5d\x83\x7b\x1f\x2b\xae\x35\xb8\x40\xda\x64\x0a\x72\x3c\x70\x57\x1a\x19\xa9\xf9\x17\x49\x7a\xd5\x68\xcc\xe1\x77\x6d\x87\xc5\xc1\xec\xed\xca\xbc\x62\xc3\x3a\x80\xae\xa8\x03\x2f\x6e\x6f\xc8\x1c\x77\xe3\x00\x0b\x79\x0a\x2a\x70\x01\xea\x6f\x8f\x82\x12\xdc\x68\x6e\xe3\xbc\xfc\xf5\x06\x2d\x4c\x3e\x5c\x9e\x14\x7c\xc6\xad\x81\xdf\x16\xd2\x8e\xa1\x1d\x67\xf8\xd9\x28\x2b\xeb\x81\xed\x62\x34\x63\x33\x59\x2d\xfc\x9f\xac\x9c\xb2\x99\x91\x38\x86\x4a\xcb\x8a\x4e\xd8\xc0\x0f\x80\x9f\xf9\xbf\xf0\xc3\xd6\x14\x56\xbf\x46\x41\x35\xab\x2b\xc3\x7b\x14\x0b\x87\xe2\x62\xb4\x97\x07\x44\x07\xd1\x45\xca\xd3\xb0\x81\x3f\xae\xf7\xbb\x31\x76\xa7\x5e\x45\x83\xac\xa1\x5f\x15\x48\x2a\x73\x59\xd4\x33\xa6\x06\x9e\x40\xa3\x28\x2a\xe6\x46\x66\x51\xa7\x87\x40\x00\x39\x9f\x73\xb5\x93\x7f\xe8\x9d\xb7\xb3\x81\x51\xaa\xd6\x46\x48\xc7\x24\x4c\x41\x15\x7c\xa9\x40\x48\xf5\x39\x20\x5a\x58\xed\x8b\x18\x66\x85\x90\x92\x6a\xcd\x2a\xf1\x86\xfc\xbf\xb3\xff\xf8\xdd\xcf\xc3\xf3\xbf\x9e\x9d\x7d\xff\x7a\xf8\xbf\x7e\xf8\xdd\xd9\x7f\x8c\xe0\x1f\xbf\x3d\xff\xeb\xf9\xcf\xee\x8f\xdf\x9d\x9f\x9f\x9d\x7d\xff\xd5\xbb\xbf\x7d\xbc\xbd\xfe\x81\x9f\xff\xfc\xbd\xa8\x67\x0f\xf8\xd7\xcf\x67\xdf\xb3\xeb\x1f\x22\x3b\x39\x3f\xff\xeb\x6f\xa2\xa6\x47\xc5\xe2\x9b\x08\xac\x81\x6d\xb8\x43\x66\xab\xe6\xab\x5d\x4d\x5a\x5c\xe8\xa1\xac\x86\xf8\xf9\x1b\xa2\xab\x3a\x86\x8b\x76\xc7\xb6\x0b\x9c\xbb\x12\xe2\x6f\x1a\x8c\xe7\xa9\xc3\x01\x00\xf9\x29\x04\x40\xb1\xac\x62\x7a\x5f\x52\x36\xf6\xe6\x08\xe0\x92\x71\xb4\x17\xbc\x1b\xc1\xdb\x27\xe4\x81\xfd\x6a\x58\x87\x71\x25\x67\x23\x12\x68\x72\xe7\xe0\x08\x67\xdf\x7b\x60\x91\x11\x14\xbd\xa0\xde\x0b\xea\xbd\xa0\xde\x16\xd4\xef\xf0\x0e\xbd\x70\x29\x9d\x89\xf9\x36\x65\x6f\x82\x49\xf0\x2d\x64\xd7\x0b\xcd\x82\x8e\xb9\xd6\x92\x94\xb2\xac\x0b\xaa\x37\x98\x32\x12\x6c\x84\x3e\xa2\xcf\x19\x5c\x0c\x48\x81\x3d\xce\x12\xbe\xd9\x7a\xa3\x14\xb9\x28\x0a\xc2\x05\xa2\x37\xd3\xc1\xc6\x11\x9c\xcd\xa3\x62\xc8\x59\x13\x8a\x06\xc1\xb9\x99\xf2\xa3\xcd\x09\x18\x98\x72\xb8\x32\x82\x79\xa5\xb9\x98\x8c\x30\x67\x20\x12\x28\xab\xc8\xe7\xc2\x67\x0e\xdc\x38\xa4\x67\xd8\xbc\x47\xdc\x4a\xb2\x50\xf4\xb7\x50\xda\x2d\x13\x66\xa9\xe9\x03\x18\xa1\x32\x96\x33\x91\x6d\x31\x91\x7c\x87\x5e\x76\x6e\xcf\xee\x8d\x98\x01\x66\x5c\xc4\x28\x24\xaf\xcb\x82\x67\xe6\x7c\xcc\xcc\xd3\xfa\xbe\x99\xcd\x6a\x0d\x06\xc1\x63\x59\x6b\x0d\xa4\x59\x93\x43\x60\xb4\x05\xfa\xe6\xc5\x3d\xef\x11\xee\xf5\x65\x9b\x4f\x3c\x8a\x0f\x88\xa3\xd6\xde\x8e\xd0\xc9\xde\xac\x90\xe9\x46\xb1\xd7\x26\xcf\xc7\x36\x85\xc4\x11\xe7\x74\xc2\xbc\x2b\x51\x3e\x26\x41\x3e\x22\x31\xde\x9d\x10\x3f\x1f\x11\x4e\x22\xc0\xf1\xc4\x37\x9e\xf0\x26\x68\xc7\x53\x89\x6d\x3c\xa1\xdd\x55\xfc\x29\x2b\x36\xe6\x9f\x12\xb0\xc2\x85\x68\x74\x13\x3c\x67\x42\xf3\x31\x37\xeb\x04\x8f\xa6\x92\x89\xc6\x5d\xc9\x26\xe6\x68\xed\xc0\x41\xfd\x33\x50\x40\x48\x47\x72\x77\xeb\x04\x90\x1e\xc3\xf5\x18\xae\xd5\x7a\x0c\xd7\x29\x56\xbc\x24\xf4\x26\x64\xde\x19\xfb\x1e\x7b\x9b\xde\x07\x7d\x2d\x85\xc4\xa2\xdb\x90\x5b\xb8\xae\xea\xc6\xe3\xa4\x94\x00\xd1\x63\xae\x1b\xbf\xe6\xcd\x80\x76\xb7\xa6\x47\x70\x58\xb6\x5f\x9e\x2a\x97\x6a\x62\xa9\xff\xa5\x2c\xec\xe8\x41\xba\x7d\xac\x44\x50\x46\xfe\xb1\xc6\x94\x1c\xaf\xa8\x52\x7c\x22\x86\xa5\xcc\x87\x66\x94\x57\x5b\x19\xec\x63\x3a\x91\x7a\x1d\xf3\x53\x8f\xfb\x83\xb7\xc0\x04\x9c\xbc\x41\x6b\xb5\x66\x81\x79\xc6\x2b\xee\x5d\x66\x81\x08\x49\xb1\x53\x2e\x79\xe2\xe1\xcc\xa8\xa0\x13\x36\xb4\x93\x1d\xfa\xc9\x0e\xfd\xdc\x9e\x70\x5e\x31\xc4\x2c\x2b\x28\xdf\x1e\xa6\x91\x42\xc2\x2e\xa1\x37\x9b\xce\xde\xc7\xd1\x2c\x25\x95\x76\x02\x24\x17\x68\xc2\x76\x3f\xe1\xc7\xdb\x0d\xe1\x70\x59\x7c\x1e\x9e\x35\x07\xb9\xf5\x6b\x9f\xc1\x44\x10\x5a\x94\xd3\xed\x39\x4c\xba\x82\x0a\xae\x16\x82\xce\x78\xe6\x80\xef\xa2\x80\x50\x09\x2e\x45\x2b\xc3\x49\xcc\x8c\x3c\xd5\xe6\x1e\xda\xc8\x8d\x26\x19\x15\x68\x61\xb4\x7e\xee\x06\x8f\xf8\x95\x6e\x35\xdd\xc7\x85\xea\x44\x04\xe8\xb4\xce\xfe\x43\x78\x4e\xa1\x1b\xa3\x14\x8c\x30\xa1\x2b\x60\x1f\x6f\x65\x6e\x28\xce\xa8\xf5\x76\x87\xa3\x41\x34\x7b\x16\xab\x3f\xef\x70\x75\x26\x2f\x87\xd3\x0b\xe8\x86\xbb\x2f\xe6\xba\xb4\xb6\xb4\x94\xf9\x68\xcd\x4d\x89\x4f\xd8\x7f\x2b\x73\x1b\xd1\xa3\x5b\xf0\x66\x2e\x11\x80\xda\x8c\x3e\xb8\x38\x1b\x6f\xfc\xa1\x73\xca\x8b\x08\x5f\x53\x02\x09\xad\x14\xcf\x8d\x8c\x10\x81\x52\xfd\xc4\xe2\xb9\x24\x6b\xca\x3e\xc4\x21\x7c\xc0\xae\x5d\xda\x04\xd8\xff\x6c\x2a\x15\x13\x70\xdf\xa8\x1b\xdb\x97\xc5\x71\x60\x9f\x23\xea\x8c\xe1\x44\x6f\xc6\xc8\xfd\x0e\x08\x9b\xb3\x6a\xa1\xa1\x38\x85\x4b\x19\x86\xdd\x98\xf1\x67\x34\x0f\x76\x7d\x40\xa4\x61\xd7\x1e\xb9\x8a\x39\x00\xc0\x13\x38\x3f\x55\x17\xda\xb3\xe0\x76\xf6\x7b\x3b\x8d\xd5\x70\x24\xc3\xdc\x3d\x74\xe6\x82\xeb\xbc\x90\x9b\xe2\x9c\x66\xb4\xdc\xf8\x15\x7a\x47\xec\x8b\x76\x7d\x8d\xde\x1b\xf8\xc9\xbd\x35\x92\xcf\xe8\x27\x3e\xab\x67\x84\xce\x64\x8d\xf1\xcd\xab\x7c\x45\x54\xe8\xd7\x3e\xb8\x84\x35\xdc\x81\xda\xc4\x1e\x90\x78\xb4\x9a\x1e\xa0\xfc\x42\xcd\xfb\x51\x66\xfd\x34\x73\x7e\x82\x19\x7f\x67\xf3\xbd\x73\xd4\xd9\x17\x20\x5b\x94\xb6\x02\xca\x5c\x74\x82\xb2\xa3\xaf\xdb\x61\xf9\x66\xdc\x8c\xc1\x15\x91\x33\xae\xb5\xf5\x87\x09\x28\xc0\x80\x70\xdd\x72\x1e\xb1\x17\x8c\x8f\x91\xd0\x70\x45\xd8\xa7\xb2\xe0\x19\x07\x1f\x24\xe7\x77\xb6\x9d\xff\xf3\x38\xd1\x26\x1e\xe0\xb3\x12\x53\x0f\xc0\x45\x19\x3a\xd6\xd2\x46\x09\xf8\x59\xda\xb0\x16\xf6\x29\x63\x2c\xb7\x13\xe9\xef\x6b\x7f\x5f\x93\xef\xab\xda\x93\x86\x22\xd4\x4e\x34\x51\xd0\x5e\x4b\x61\xae\x12\x44\x28\xa3\xbe\xc0\x41\xd7\xb6\x8b\x79\xed\x72\x76\x7e\x60\x60\x86\xbb\x63\x5a\xd9\x78\x6b\xe8\x69\x9b\xba\x6d\x25\xe7\x9e\xcf\xf3\xe9\x92\x17\x50\xd0\x27\x06\x6f\x34\xd1\xaa\x5b\x84\x67\xbd\xcc\xde\x82\x0a\x84\xcd\xca\x82\xea\x46\x41\xf2\x84\xb0\xd6\x18\x26\x3e\x25\x2d\xdd\xf3\x26\xa2\x3b\x8c\xd8\xd6\xc9\x06\x3f\x63\x42\xb9\x5d\x53\xc8\x1d\x40\x60\xec\x76\xb6\x8a\x4c\x05\x17\x2f\x58\x46\x79\x63\x1d\x3a\xc1\x5b\x82\x18\x16\x9f\xc4\x2d\x5d\x0e\x3b\x70\xa2\xb6\x43\xa5\x66\x4b\xd8\xbd\xd8\xf4\x6b\xe9\x7b\x77\xa4\x14\x6b\x47\x4f\xaa\x76\xcc\x34\x6a\x49\x89\xd3\x52\x52\xe1\x44\xa7\xc1\xd9\xdd\x7b\x36\x25\xfd\xcd\x8e\x1f\x46\x26\x39\x4b\x81\xdd\x23\x27\x32\x3b\x72\xea\xb2\xe7\x48\x56\x76\x30\xf9\x21\x02\x34\xd3\x0d\x7e\x5a\x16\x36\x6b\x7c\x9c\x01\xe8\x63\xf3\x3e\x6c\x47\xe3\xac\x1d\xf4\x74\x1c\xf7\xb1\xad\x90\xfd\xd1\xf1\xb9\x06\x3b\x35\x93\x06\x18\xd7\x9a\x66\x53\x9b\x72\x0c\x7f\x31\x90\x20\x16\xc4\x00\x81\x46\x4a\x6e\xb3\x1e\x6d\x3b\xe7\x29\x23\xba\x82\x32\xc2\x7f\xf6\x17\x62\x80\x26\xff\xbf\x04\x99\x25\x7c\x21\x5c\x0f\x8c\x7f\x76\xff\xfa\xcb\x13\xf3\x8d\xc4\x31\x39\x38\xa5\x7d\xf2\xaa\xd7\xd0\x23\xe1\x22\x07\x4f\x43\x64\x85\x70\xf3\x70\x30\xb3\xb5\xb0\xee\x91\xcd\xd5\x84\x89\xcf\xac\x65\x16\x5c\x12\x9b\x97\x3b\x59\x07\xf0\xc4\x6c\x54\x13\xde\xf1\xc1\xdf\x61\x46\xde\x4b\x5b\x51\x9c\x0d\xc8\x2d\x68\x87\x9b\x27\x70\xe7\xdf\x4b\xac\x2d\xde\x91\x7c\x22\x12\xfd\x77\xf2\x8c\x69\xfb\xf9\x55\xc3\x50\xe2\xc6\xb4\x18\xca\xe6\x62\x85\x2c\xe5\xd6\x8d\x7d\x60\x8b\xce\x5d\xb5\x4c\x82\x65\x66\xad\x6a\xdc\xc3\xa8\x23\xf2\xc8\x37\xfc\x6f\x67\xe1\x9b\xdd\x73\x81\x53\xc1\x81\xdd\x39\xc3\xd8\xee\x3c\x8c\x04\x52\x14\x11\x93\x88\xdc\xed\x38\x8e\x37\x6d\xcb\xbf\x49\xe0\x74\x3d\xbd\xe8\xda\xd2\x75\xfc\x6d\xc0\xd4\x5e\xff\x54\xd3\x62\xd4\xca\xf4\x81\x8f\xba\xae\x9b\x75\x3f\x5e\xa6\x9b\x8f\xbc\xc8\x33\x5a\xd9\x18\x38\x40\x3f\x44\x49\x6b\x9d\x05\xec\x97\x75\x3a\x9a\x3b\x04\xd8\x00\x8f\x42\x9f\xdb\x92\x56\x9a\x67\x75\x41\x2b\x62\xee\xf8\x44\x56\x51\xa9\x3c\x3a\x0f\xb3\x81\xe6\x3b\x96\x49\x91\xef\x55\x88\xfe\xb8\xdc\xf9\xb2\x57\x71\xc9\x2a\x6e\x8b\x5a\xf3\x19\x5b\xbe\x5e\x67\x2d\xbf\x94\x2e\x39\x6c\xec\x90\x9d\xc7\x2d\x83\x50\x33\xda\xb6\x29\x63\x81\x93\xf3\x80\xe0\xf8\xdb\x3e\x22\x5f\xfa\xb2\x1b\x5d\x0c\x39\xd7\x2e\xb9\x8a\x62\xda\xa5\xdf\x71\x57\xd1\x9e\x64\x83\x46\xc6\xb2\x82\xb4\x36\x67\xb9\xc4\x84\x2c\x73\x9e\xe9\xf3\x11\xf9\xff\xb1\x4a\x46\xe4\x2d\x12\x6c\x82\x55\xd8\xed\xc5\xf6\xfa\xa8\x8a\x51\xeb\x4d\xff\x9a\x9c\x61\x61\x7e\x3e\x9b\xb1\x9c\x53\xcd\x8a\xc5\x39\xaa\xa7\x98\x2d\xed\x1f\x03\x35\x31\x6a\x45\x0c\x91\x84\x77\xff\xf5\x0f\x5b\xde\x3c\x40\xbe\x29\x9b\xd3\xa6\xd9\x58\x74\xa0\x5b\x82\x1e\x9f\x28\xb1\x53\xde\xdf\x28\x9f\x85\x61\x03\x4d\xaa\x4a\x87\x9b\x3d\x6c\xfd\xc3\x00\x28\x25\x15\x9b\xc0\xfd\xc4\x3b\xf7\xc4\xdb\x89\x31\xb4\xef\x64\x2d\x36\xdb\x40\x5a\xfb\xf6\xb5\x55\xc1\x7d\x17\x7c\x98\x9a\x28\x6e\xbf\x0c\x61\x30\x93\xc0\xea\x42\x09\x98\x5a\x80\x03\x33\x88\x0d\xdf\x6a\x82\x4d\x22\x8c\xe5\x7b\x4c\xfe\x06\x73\xe9\x48\xb7\xb0\x97\x14\x71\x7e\xa0\x7d\x5e\x05\x48\x5d\x60\x77\x6e\x29\x0b\x9a\x2b\xfa\x05\x00\x8c\x5b\xdc\x40\x30\x4c\x86\xe5\x36\x3c\xb1\x0b\xed\x48\xaf\xdd\x24\xa7\x6f\x4e\xf7\x42\x75\x70\x37\x2a\x59\xd2\x09\x5c\xd6\x7d\x6e\xca\x72\xdf\x24\x67\x9a\x55\x33\x2e\x98\x22\x53\xf9\x88\xbf\x23\x33\x50\xda\xb7\x58\xde\x78\x1e\x4c\x65\xe7\x8e\x60\x81\xaf\x26\xdf\x1c\x62\x0f\xf0\x23\x7d\xa4\x0b\x42\x2b\x59\x8b\xce\xb4\x01\xc0\x45\x7b\xca\xf1\x6e\x69\xd2\xef\xa5\x60\xde\x19\xa5\x8b\xca\xb6\x48\x1b\x94\xa1\xe2\x82\x7c\x31\xfa\xe2\x75\xd4\x1c\x3e\xb0\xac\xae\x14\x9f\xb3\x0f\x8c\xe6\xdf\x18\x89\x9b\x2b\xc0\x1a\x5a\x92\x9b\xf1\xad\x54\x8a\xdf\x17\x8c\x48\x70\x8f\xbf\xc6\xca\x54\xab\x13\xf6\x1c\x2a\xcc\x5c\x56\xa4\x16\x5e\x44\xe8\x98\x85\x25\xf3\xa1\x55\xd4\x74\xd2\x51\xf2\x2a\x12\xd2\x12\x53\x33\xc2\x5e\x2e\xd9\x67\x9c\xf3\xb9\xc3\x55\x7b\x99\x57\x65\x37\x7b\x9f\x90\xff\x0e\xaf\x35\xf4\x3d\x04\xdd\x09\x1f\x83\xd5\x6e\x80\x8f\x1e\x2b\xae\x59\x40\xb7\xce\xc6\xb4\x50\xcb\x87\xd5\x59\x69\x2c\xe4\x97\xa1\x83\x98\xfd\xe8\x76\x8f\xae\x96\xc1\x70\x9f\x3b\xb3\x0a\xe3\x4d\x7a\x75\xe7\x02\xde\xec\x9a\xc5\x10\x0d\xbe\x9c\x52\x91\x17\x9d\x70\xec\x57\x50\x2c\x3a\x1c\x1c\xad\xb7\x40\x73\xdd\x60\x1f\x07\x21\x93\x3a\xa5\x86\xaf\x04\x5e\x12\xf4\xb6\x22\xf7\x37\x2c\x38\xac\xd4\x71\x10\x18\x10\x65\x85\x48\xc3\x5e\xf7\x2b\xae\xec\xf5\x06\x4d\x09\x50\x6e\xcb\xdf\xce\x68\x67\x3e\xeb\x60\xfd\xcd\x66\x8e\x2c\x7b\xb5\x66\xb4\x06\xb9\x2c\x8d\xb7\xeb\x58\x03\x03\xef\xc8\x92\xfb\xec\x2d\x8e\xf9\x6d\x10\x76\x65\xb8\x8f\x19\x6b\x26\xd6\x31\xd4\xf2\xb4\x3d\x0a\x5c\x99\xf3\xfa\x59\xf9\x49\x75\x8c\xd3\x3d\xe5\xb6\x3c\x83\x0a\x35\xcc\x96\x69\x6b\x1a\x6a\x8a\x61\xb5\x11\x29\x50\x09\xab\x2a\x59\x79\x19\x62\xc2\x04\x48\x2b\xa0\x85\x73\x8a\x24\xeb\x3b\x47\x95\x14\x31\x80\xd6\x71\xc8\x06\xcf\x74\x93\x0f\xfc\xac\x63\x30\xa0\x31\x67\xb2\x5a\xba\x0d\x4e\x00\x5b\x43\x49\x52\x67\x0f\x84\xb9\xe9\x17\x81\x2a\x10\xb4\xcc\x06\x36\xc2\xbf\x1c\xfb\xab\xb3\x9f\x18\xb0\xfa\xfe\xd0\xac\xa2\xe5\x09\x81\xed\x69\x38\x45\x0f\x72\xa7\x6a\x33\xd7\x98\x40\x1f\x4e\x4e\xc8\x19\xf6\x73\xaa\x48\x25\x65\x57\x1d\xcb\xb4\xfd\xb9\xfe\x54\xee\x55\x09\x75\x6d\x73\xcd\x92\xf2\x68\x9b\xf5\x25\x9b\xd2\x39\x53\x44\xf1\x19\x2f\x68\x55\x40\x22\xcf\x3b\x5c\x1e\x44\xa6\xad\xcd\x96\x1d\x91\x69\x39\xd0\x78\x87\xf3\x0c\xba\x3b\xe4\x39\x12\xb7\x06\x73\x44\x40\x6f\xdc\x9a\xa0\x72\x6f\xad\x6b\x5a\x14\x0b\xc2\x3e\x65\x45\x6d\xf0\xe5\x5e\x84\xe5\x5d\xe4\xe4\x65\x11\xb9\xb4\x8e\xfa\x47\x14\x90\xdb\x2a\x4f\xc3\xaf\xe6\x0e\x9c\x40\x20\x46\xb3\x09\xd8\x40\x20\xea\x81\x66\x19\x53\xca\xe5\x1a\x58\x84\xf9\x12\xfc\x1a\x3e\x97\xc4\xe9\xf4\x51\x5d\x17\x54\x69\x9e\x7d\x59\xc8\xec\xe1\x4e\xcb\x6a\xaf\xba\xa2\x75\xfd\x2f\xa5\xa3\xbf\xf8\xfb\x9d\x41\xde\x0f\x41\x82\x27\xeb\x88\x19\x1a\xa6\x68\xc7\x40\x0f\xf5\x3d\x2b\x98\x3e\x55\x20\x3f\x92\x19\xcd\xa6\x58\x14\x01\x84\x43\xe1\x53\x88\x59\xf5\xf5\xd6\x23\xc2\x76\x65\x66\x09\x65\x46\xde\x98\x39\xae\x2e\x03\xfd\xcd\xec\x3b\x98\x85\x03\x35\x58\x60\x0c\x6c\xaa\x49\x0f\x75\xc5\xba\xd8\xa9\xb5\xfb\x04\x91\xaa\x36\x15\x39\xaf\xd0\xd3\xcd\xce\x9f\xdd\xab\x51\xa6\xf8\x88\x3e\xaa\x51\x26\x67\xe4\xf2\xee\x86\xe4\x15\x9f\x77\x87\x38\x24\xba\x90\xda\xe4\x7c\xaf\xec\x0d\xff\x35\x7d\x54\x0c\x27\x7a\x6f\x26\x0a\x05\x2d\x22\x70\xc7\x5e\x9d\xa2\x70\x2e\x37\x57\x5b\x5f\x8c\x77\x78\x1a\xab\x8f\x66\x8e\x1d\x6f\xed\xe2\x02\x83\x3d\x3b\x55\xe9\x98\x17\x0c\x55\xc0\x78\xb2\x36\x9c\xda\xa2\x1a\x00\xfa\x85\xac\xc9\x23\x45\x6b\x06\x10\xb0\xa8\x18\x6b\x5e\xbe\x21\xd7\x42\xd5\x15\x6b\x8c\x64\xcb\x83\xad\x63\xc9\xe1\xa6\x58\x90\x15\x93\x28\xf5\x34\xb6\xeb\x4f\x74\x56\x16\x4c\xbd\x21\x27\xec\x93\xfe\xc3\xc9\x80\x9c\x7c\x1a\x2b\xf3\x3f\xa1\xc7\xea\x64\x44\x6e\x66\xde\x85\x9a\x8b\x31\xab\x2a\x1f\x96\x8d\x1f\x18\x96\xbc\x25\x45\x75\x8f\x79\x6c\xb8\x25\x69\xce\x2f\x60\x1e\xea\xd6\xa4\x91\x9d\xe0\xc8\x77\xee\x40\x29\x78\x20\xf6\x03\x44\x37\x63\xe7\x31\x8f\x72\x95\x2b\x3a\xcf\x95\xef\xc6\x80\x8d\x1d\xc7\x50\x9e\x34\x40\x79\xeb\xd3\x52\x92\x57\x39\x9b\xbf\x52\x39\xfd\x62\x00\x53\x55\x36\x12\xbc\xbd\x2e\xaa\xc8\x49\x5c\xae\xda\x3b\xc7\xb9\x0d\xc2\x9d\x68\x7a\x32\x88\xd8\x0d\x09\x7e\x2f\xaf\x4f\x40\x74\x31\x63\x67\x54\x90\x82\xd1\xb9\x15\xe7\x10\x65\x2c\xd0\xc0\x10\x51\xf1\x3d\x2d\x05\x63\x60\xb0\xf9\x97\xdf\x77\x8a\xd7\x31\x3a\x18\xb2\x13\x34\xb9\xbe\x9d\xd5\xa6\xaa\x6d\xce\xa5\xb1\xac\x32\x2f\x73\x5a\x2d\x0d\xd3\x80\x1b\xb8\x68\xd9\x35\x5e\xf6\x85\x8d\x4b\x29\xe6\xa8\xc8\x41\x7c\x1f\x6d\xdf\xa0\x41\x16\xfc\xa7\x9a\x91\x9b\x2b\x9f\xc0\x9b\x55\x8a\x2b\x6d\x04\x8a\xbc\xc5\xf7\x70\x64\x86\xce\x2e\x66\xf4\x9f\x52\x90\xeb\x2f\xef\x6c\x47\x11\xa0\xf8\xa2\x11\x24\xfd\x67\x5d\x31\xc3\xe3\xed\x95\xb5\x74\x9d\x2e\xf3\x93\xe6\x39\xb9\xa2\x9a\x22\x5b\x69\x03\x8b\x44\x43\xf2\x0c\x53\x78\xcf\x45\x6e\x7f\xda\x91\x25\xf4\xc3\x27\xf1\x81\xc1\xb4\xcd\xe6\x75\xad\x71\x2d\xf3\x67\xa0\x06\xb9\x3f\xd3\x57\x12\xff\x77\x00\x6e\xcc\xcc\xe6\x7d\x57\x5c\xb3\x7b\xf1\xdb\x0f\x37\x7b\xe2\xda\x32\xe0\xf0\x27\xef\x64\x9e\xca\xba\x9d\x06\x9f\x3a\x82\xfa\x6f\x06\x2e\x2e\xf1\x39\x99\x99\x3e\x41\x71\x35\x00\xe5\x2d\xf9\x06\x74\x9b\xf0\xcf\xbf\x57\x5c\xb3\x51\x77\xe6\xd9\x04\xd6\xc1\x6d\x60\xe2\x32\xdc\x67\x6e\x09\x61\x8a\x9e\xdc\x40\x3f\x20\x17\xcb\x1f\xdc\x17\xf2\x9e\xd8\x2b\xbf\xef\xb9\x7f\xfb\xe1\x66\x87\xa9\x7f\xfb\xe1\xc6\xcd\xdc\xfc\x53\x8e\x8f\x37\xe9\x63\x30\xfc\x6f\x97\xf8\xef\x14\x5e\xac\x49\x6e\xb5\xcc\xc5\xef\x93\x85\x1f\x1d\x8d\x79\xdf\x2d\xf3\x90\x19\xab\x4b\xe8\xe7\x22\x22\x69\x71\xfb\xf2\x9b\x6f\x08\xfb\x54\x22\x46\x0d\x5c\x26\xef\xa6\x14\xf2\x4c\xbb\x94\x96\x08\x7e\x06\x1e\x95\x21\xd9\x0e\x10\x09\xc5\xa2\x16\x86\x1a\xa0\x96\x3e\x7f\xe3\x1c\xc1\xfd\x17\xeb\x3f\x78\x07\x01\x98\xf9\x1b\xa4\x01\x04\xe3\x31\xf3\x00\xee\xcf\xd0\x5c\x21\xfc\x4f\x36\xee\x1e\x93\x60\x29\xa6\xcf\x47\x2d\xdd\xba\x82\x29\xef\x15\x19\x1d\x85\xf1\x5c\xb1\x60\x92\x33\xf3\xdb\x2b\xb0\x8f\x9e\x8f\x1a\x8b\x19\x64\x87\x68\x78\xd3\x88\x31\xcc\xa5\xf8\xf0\x64\xee\x35\x2d\x35\xad\x07\x59\x58\x4b\x17\x1f\x64\x30\xc3\xde\xf9\x20\xd3\xe9\x5a\x3e\x08\x7e\x70\xe5\x4d\x0f\xc9\x0a\xc1\x40\x3b\xb0\x42\xf0\xdd\xce\xac\x90\x41\x90\x2f\x87\x15\xc2\xd4\x81\x51\xcc\x10\x5c\xdd\xce\x37\xe3\xd9\xa1\xa3\xdc\xdb\xfc\x97\x74\x6f\x9b\xc3\x4a\xdc\xb3\xe6\x43\xc7\xc0\xf8\x04\x39\x2e\x09\x7d\x2b\x20\x15\x2f\xe2\x9d\xa5\x06\xb6\x26\x12\xb2\x6b\xe6\xfa\x7d\x15\x91\x4f\x3f\x01\x81\x7b\xc0\x4a\x5d\x95\xfb\xce\x2d\x0a\x89\x14\x3c\x26\x11\x20\x1d\x3d\xc9\x8c\x95\xd3\xf1\x5e\xbd\x9c\x4d\x8f\x6f\xef\xda\x66\x9c\x4b\x56\x4e\xc9\xdb\xbb\x35\x28\x0f\x0e\x07\x96\xa5\xd0\xb8\x73\xaa\x48\xc1\xc7\x0c\x7c\x12\x12\xb0\xde\x25\x8e\xda\x42\x79\xde\x19\xcd\xa1\x38\x5c\xac\x57\xc1\x0a\x49\x0a\x29\x26\x86\x39\x88\xab\x6e\x73\x00\x24\x35\x93\x82\x6b\x59\x6d\xf7\x86\x88\x47\x3c\xae\xbb\x43\x20\x1e\xd7\xb7\xd9\xba\xa6\x10\xc8\xbb\xe0\x29\x25\x99\x2c\x0a\x96\x69\x5b\x1d\x0b\x8e\x3d\x6a\x85\xd8\xd6\x28\x4d\x98\xd5\x59\x8e\x1e\xfe\x04\x6a\x13\xab\x20\x79\x85\x47\xf9\xea\xc3\xf5\xc5\xd5\xbb\xeb\xd1\x2c\xff\xf5\x54\x3e\x0e\xb5\x1c\xd6\x8a\x0d\x79\x77\x91\x8d\xcf\x38\x3a\x93\x60\xb2\x8e\x88\xda\x5e\x6d\x56\xbb\xb4\x65\xc9\xbe\x71\x29\x42\xc9\xb7\x0a\xbd\x37\xbc\xe7\x0e\xcb\xc1\x9a\x3d\x20\x15\xb5\x69\x40\x29\x5e\xd5\x71\x5d\x14\x78\x9a\xe6\x1e\x0d\x42\x7d\xf4\xab\xcf\x8f\xe1\x6d\x6d\xc2\x8b\xe7\x7e\x8f\x7f\x2d\x52\x28\x76\x37\xff\x4c\x76\x3a\xac\xa6\xf7\xf6\x71\xdd\xb5\x9e\xa3\x95\x42\x4f\xcd\xe1\x3d\xb0\x05\x81\xa0\x6e\xc3\xd8\x7e\xab\x58\xd5\x06\x53\xa6\x33\xd8\x9d\x57\xb5\x62\xd5\x08\xbb\x7f\x81\x7b\x1f\xc7\x55\xc4\x25\xc5\x26\x4f\xd8\xf9\x0f\x6c\xbc\x6e\xe3\xed\xe3\xa6\x98\xb7\xe5\xfc\x69\xad\xa7\x4c\x68\x6e\xb3\x5b\x5a\xce\x6b\xed\x49\x44\xd4\x5d\xc6\x76\xec\xad\x8f\xac\xcf\x94\x56\x4d\xa9\xaf\x40\xd4\xb4\xbe\x02\xd1\xcb\xa8\x40\xf4\x94\xb2\x6a\x06\x7b\x1e\x02\xeb\x98\x7e\x21\x51\x5c\xc8\x9d\xf8\xd4\x57\x15\xcd\xa5\xc2\x77\xb0\xb2\x6e\x80\x4f\x68\x3e\xe3\xdd\x5a\xa1\x17\x88\xc9\x33\x2e\xf2\xae\xcd\x4c\x14\xbd\xa0\xc7\xb6\xe8\x65\x9f\x59\x43\xbc\x77\xe2\xa2\x4e\xcb\x84\x09\xc6\xad\xc3\x56\xdb\x5f\x2b\x49\xfe\xc2\x61\xd2\x54\x4e\x76\x6e\x3b\xeb\x9b\xf0\x7b\xd0\x38\xc9\x92\x19\x44\x92\x3d\x8c\x64\x35\x79\x9a\x03\xd6\x32\x54\xcc\x16\xea\xa7\x62\x88\x63\x0d\xcb\xbc\x01\x8b\x63\xcb\x8a\xbf\x10\x4f\xab\x97\x67\x7c\x79\x11\xfe\x53\xfb\x01\x3b\xf2\x02\xe5\xad\x17\xaf\xa8\x3c\xca\x79\xa4\x48\x55\xc7\x60\xed\x1b\x4a\x5b\x4a\x6e\xa3\xa3\x7d\xa1\x53\xc4\x5b\x4e\x6b\x6a\x36\xb5\xa4\x15\x9d\x31\xcd\x2a\x8c\xc2\xb4\x51\x9f\x22\x86\x63\x86\x10\xd1\x6f\x4a\x26\xee\x00\x41\xf7\xec\xf8\xfa\xd6\xb3\xe3\x5b\x5a\xcf\x8e\xaf\x6d\x47\x71\x9b\x73\xf7\xdd\x96\x06\x5b\x84\x9e\x9d\x5c\x38\x2e\xec\x65\x60\xd9\x6e\xae\xdb\x95\x2d\x4b\x60\xbc\xfd\x37\x4b\xac\x75\x53\x48\x11\xad\x18\x10\xed\xe4\x2b\x90\xc2\xed\xc1\x6d\xda\x0f\xa7\x18\x8f\xea\x2c\xf8\xed\xe0\x8e\x15\x05\x19\x41\xf7\x6d\x4a\x32\x33\x4f\xee\xb9\x6e\x68\x84\x62\x9a\x94\xac\x9a\x71\x9b\x1f\x57\x0a\x92\xd9\xb8\x41\xe0\xe8\x0c\xf7\x66\xbb\x4b\xe2\x07\x05\x91\x99\xa6\x36\xab\x13\xb9\x67\xfa\x91\x31\x41\x5e\xbf\x7e\xfd\x1a\x44\x9b\xd7\x7f\xfc\xe3\x1f\x09\xe4\x1a\xcf\x59\xc6\x67\xab\x2f\xc2\x5b\xff\xdf\x17\x5f\xc4\x0c\xfa\xef\x17\xef\xbe\x86\x38\xa3\x52\x2b\x72\x2f\xf5\xd4\x8e\x6d\xba\x68\x75\xaf\x06\xe4\xff\xdc\x7d\xf3\xbe\x29\x14\xd3\xfe\x15\xe4\x1f\xbf\x45\x31\x23\x87\xca\xe9\xd7\xff\xfa\x87\x3f\x44\x7d\x03\x42\x92\xac\x20\x98\xbb\x09\xda\x2b\x5d\xb8\x99\x90\x7a\x35\x55\xb3\x65\x9d\xa2\x8b\xc8\xcd\xf8\x64\x0a\x07\x61\xee\xbf\x14\xe3\x82\x67\x1a\x89\x04\x26\x7e\x40\x90\xb0\xe5\x42\xa8\xcd\xba\x66\x65\x81\x28\x53\x53\xce\x06\xa4\xe0\x0f\x8c\x8c\xd5\xdf\x2a\x59\x97\x4d\x6e\x44\x5b\xbd\x22\xa3\xc2\x8c\x8f\xc3\x35\x70\xa7\x58\x74\x46\xd6\x43\x78\x8a\x47\xda\x8a\xd2\xaf\x1c\x74\xbc\x24\x68\x0c\x7c\x4d\xc6\x21\x42\x77\x49\xb9\x0f\x7b\x03\x97\x5b\xe4\x26\xda\xfc\x48\x16\x55\x10\xba\xa9\x6f\xe9\x62\xa2\xcb\x4a\xfe\x03\x81\x86\x0b\x97\x76\xcc\x2a\x15\x94\x95\xcf\x6c\x2e\x4c\xd1\xd8\xad\x23\x46\x72\x39\x9d\x0d\xaf\x69\xb3\x49\x37\x29\xcd\xc8\xcd\x38\x0c\x3c\x86\xa4\xc6\x5c\x99\x49\x40\x6d\x66\x3b\xb7\x88\x51\xd6\xcc\xde\xf7\x0b\x77\x43\x21\x84\xd5\x62\xa5\x7f\x0c\x27\x8f\x1a\x03\x48\x03\x4c\x9a\xba\xd4\x75\xcd\x28\x18\x2a\x6b\xa3\xa9\xed\xbb\x2b\xc5\x34\xa3\x73\xde\xda\x08\x5b\xa6\x6b\x7b\x44\x18\xc1\x5e\x8b\x82\x29\x65\x23\xb4\x67\xb4\x7a\x60\xb9\xc7\xcf\x23\x08\x7b\x56\x91\x19\xc4\x88\xcb\xbd\xcd\xe7\xe8\x1a\x31\xa3\x8b\x56\xf6\x1b\x33\x8d\xd3\xd1\xe8\x14\x51\x8b\xac\x30\xe0\x1e\xb1\x80\x79\xfe\x4c\x39\x72\x5b\x77\xeb\x1d\x2d\x15\x66\xf9\x35\x32\x0c\x24\x2e\x94\x90\x3e\xae\x89\x68\xa6\x76\x2f\x63\x70\x5f\x92\x64\x12\xaf\xda\xc1\x16\x93\x5f\xdc\xbd\x59\x6e\xcf\xd1\xe4\x5a\x9a\x70\x14\x99\x6d\x1c\xdb\xa6\x9c\xe3\x76\x8f\xed\x7d\x8b\x65\xef\x93\x19\xec\x59\x14\x6b\xb3\x66\xaa\xd1\xa2\x1c\x8e\xd1\x36\x82\x45\xf1\x37\x36\x75\xc2\xb6\x7a\x80\xcb\xed\x59\xd8\x1a\x6c\xcf\xc7\xdc\x60\xbb\x19\x2f\x67\x97\x08\xd0\x5b\xc8\x68\x3a\x3a\x14\x93\x03\xaa\x69\xc7\xe0\x56\xb0\x1d\x98\x67\xc1\x96\xc6\xb9\x60\x4b\xe1\x5f\xb0\xc5\xb9\x97\x60\xdb\xf5\x72\x39\x77\x14\xdc\x1e\x4b\x66\x90\x92\x8c\xfd\xe6\x63\x06\xd7\x32\x40\x2c\x09\x77\xca\x92\x2b\xbc\x56\xf4\x5e\xc9\xa2\xd6\x38\x44\x7a\x27\x21\xcd\x83\x49\xba\x94\xe0\x71\x84\x6e\xb9\xbb\x80\x52\x02\x27\x82\xe4\x29\xa5\xaf\xe3\xf9\x1a\xf5\x45\xac\xfb\x22\xd6\x1b\xda\xcb\x2a\x62\xed\x4b\xd8\xab\xad\xf5\xfa\x65\x45\x0c\xd2\x05\xfe\xfe\x25\x15\xb7\xc6\x96\x29\x9e\xa2\x98\x52\x9c\x9c\x5d\xfa\x8c\x27\xce\xab\xf9\x46\x68\x56\x8d\x69\xc6\xce\x43\x85\x15\x2b\xa7\x6c\xc6\x2a\xb3\x41\xf6\x3d\x97\xda\xc3\x26\x74\x23\xf7\x0b\x07\x7f\x84\x7d\xd2\xac\x32\x9b\xd9\x98\x52\x8f\x5f\x6f\x07\xc7\xdd\x97\x4e\x0c\x3a\x3b\x88\x3a\x0c\x7a\x6e\x95\x07\xb5\x78\xad\xd9\x3c\xdc\x6b\xdc\x68\x15\xaa\x06\x63\x6e\xf8\xa5\x14\xc0\x3f\x00\x8a\x59\xc8\xba\x42\xa7\x07\x6f\x4f\xcf\x64\x55\x19\x9e\x05\x86\xa6\x8a\x54\x6c\x62\x84\xd8\x0a\x0b\x28\xc3\x1b\x45\x6d\x1e\xec\x35\x3a\xec\xe0\xf6\x63\x6f\x28\xde\x12\x1f\x17\xd1\x9b\xe5\x30\xcb\x4a\xce\x79\xee\x18\xcc\x10\x4b\x73\x45\x4a\xaa\x82\x7c\x34\x54\x29\x99\x71\x50\x52\x36\x27\x18\x31\x12\x4a\xf8\xc0\xa8\xfa\x2c\xab\xad\xfc\x0d\xa1\x11\x5b\x42\xbe\xfc\x08\x4f\xb8\x84\x23\x11\x32\x67\xb7\xf5\x7d\xc1\xd5\xf4\xee\x90\x86\xc4\x75\xe3\xa0\x03\xf8\x8a\x67\xe0\x26\x83\x62\x94\xb9\x52\x28\x0e\x7c\xa1\xa1\x6e\x86\x89\xe5\x46\xbc\x92\x70\x5a\xae\xff\xf0\x8a\x49\xa0\xf1\x05\xb3\xb9\xfa\x2e\xef\xb6\x87\x37\x63\x7b\xdf\xac\xc5\x66\xa0\xc2\x8a\x0c\x39\xfb\x56\x94\xad\xe7\x19\x2d\x36\x57\xa2\x0b\x5b\x9b\x45\x71\x74\x09\xc5\x01\x97\xb7\x0a\x01\x90\x1b\xd8\x74\x7b\xc4\x83\xe2\x9a\x36\x0b\x77\xb4\x51\x77\x69\x83\x15\x99\x49\x4c\x40\x23\xa0\x4e\x34\xbe\x04\xc5\x29\xdc\x07\x41\xd6\x34\x48\xfe\x0b\x37\xa0\x37\xce\x6e\x68\xbd\x71\x76\x4b\xeb\x8d\xb3\x6b\xdb\x51\x9c\x6b\x9a\xcc\xbd\x34\x48\xb2\xda\xaa\x35\xeb\xf9\x84\x78\x8e\xa3\x23\x2a\x62\xaf\x2e\x2f\x38\xab\x0b\xad\x2b\x7e\x5f\xeb\x03\x95\xbf\x5b\x1a\x03\x58\x60\xa6\x2c\xe5\x18\xda\x4d\xcc\x02\x84\x65\x95\x41\x1e\x33\x06\xf4\x26\x9a\x25\x1c\x79\xce\x0d\x98\x36\x7c\x78\xaa\x48\x2e\xb3\xda\x17\x24\x86\xd3\x69\xbc\xd9\x62\xeb\x15\x26\xe1\xe1\xf4\x72\x5e\xe1\x20\x9d\x57\x2b\x97\x8f\xc2\x60\xbb\x8b\xdb\x8e\xdc\x13\xed\xbc\x13\xcd\x57\xa1\x98\xe2\x1e\x13\xf3\x9c\xde\xcb\x5a\xfb\xec\xbe\xff\xc3\xcc\xec\xeb\xf4\xce\x5a\x92\x5a\xb1\xad\x66\xf4\x46\x9b\xbc\xe3\x18\xbd\xed\xbe\xb7\xdd\xf7\xb6\xfb\x4d\xad\x75\x8f\x6f\xd0\x2c\x1f\x16\x7d\x6e\xe1\x2f\x97\x2a\x39\x66\xeb\x0e\x6f\x0d\xbd\x6a\x30\x2e\x8a\x34\xcb\x89\x2a\x96\xe4\x2c\xbc\xed\x8d\x36\x3e\x70\x07\x75\x28\x19\x58\xe2\xe7\xb7\x9c\x1e\xc8\x1e\x0a\xab\x8b\x92\xa1\xb1\xb5\x23\x6e\x9b\x20\x69\x2c\xe5\x8e\x6e\x12\x81\x47\x46\x29\xf3\x37\x58\xd5\x93\x0a\x21\x91\x1d\x50\x03\x5b\xf2\x7c\x60\x43\x5d\x80\x11\x2e\x69\x86\x72\x69\xcd\x73\xc0\x04\x4d\xc4\x7a\x77\xfc\x2d\xb6\xc4\x13\x20\xc9\xa7\x40\xe0\x24\x60\x81\x1d\x25\x84\xc2\x96\x7a\x24\xa6\xd1\x92\x7f\xc7\x2a\x15\x95\xdf\xb3\x69\xed\x64\xd3\xf8\xbd\x3b\x09\x95\x4d\xd9\x8c\xc2\x3f\xdf\xba\x05\x98\x6b\x6d\xf8\x5d\xcd\x30\xb1\x27\xab\x66\x46\xf0\x1a\xb4\xfc\xd9\x4f\xe6\x71\x79\x31\x5d\x4b\x16\x56\x88\x03\xc3\xee\x14\xf8\x5b\x96\x7b\xdb\x32\xac\x19\x10\x04\xfa\x5e\x60\xa1\xcc\x25\x77\x18\x40\x5c\xb8\x3f\x07\x5e\xda\x53\xa4\x2b\x6c\xc7\xf0\x03\xd8\xd5\xfe\x3f\xf0\xf6\x85\x36\xcb\x13\x3d\x70\x6f\xff\xef\xed\xff\xed\xf6\xc2\xed\xff\x01\xc9\x73\x18\x74\x8d\x81\x3f\xb4\x90\x38\x2b\xff\x3d\x73\xb2\x85\x95\x5f\x9c\xe9\xde\xd9\xed\x65\xd5\x76\x3c\x3b\x1d\x8d\x4e\xd1\xf5\xac\x11\x78\x6a\x3d\x1e\xfe\x89\x30\x91\xc9\xdc\xf4\xf3\x11\xfa\xaf\x94\x06\x76\xa9\xd1\xfc\x85\x73\x99\xb9\xb1\x42\xe7\x35\xe8\x3b\x8d\xae\x26\xa0\x3d\x97\x61\xf6\xed\x53\x98\x8b\x04\xf4\xd5\x30\x1f\x3e\xb7\xad\xdd\x0a\x5f\x2b\xc1\x72\x21\xee\x77\x45\x0a\x3e\xe3\xb6\x2e\xac\xb9\xef\x4c\xe9\x58\xc5\x25\x21\x67\xf8\xf1\x28\x2b\xeb\x81\xed\x68\x34\x63\x33\x59\x2d\x06\xbe\x33\xf3\x63\xab\x77\xfb\x06\x56\xed\xc8\xea\xaa\x62\x42\x17\x8b\xd8\xc4\x3c\x4d\x3b\x12\x97\xe3\x76\xea\x80\x4c\x8e\x3f\x9c\xb8\xf4\x51\x4d\x6b\xdf\xc8\xc6\x3a\x0c\xea\x75\xbf\x5a\x2c\xcb\x8b\x01\xcf\x83\xc6\x76\x6e\x9e\x32\x31\x27\x73\x5a\xa9\xd8\x1b\x40\x76\xe5\x6b\x72\x3e\xe7\xaa\xab\x72\xf2\x96\xc5\xdd\x79\xdd\x27\x94\x1c\xac\x75\x59\x6b\x8b\xee\x1c\x88\xbb\x4a\x13\x1e\xb4\x97\xd8\xb7\x2f\xba\x55\xc0\x4d\x2b\xa9\xd6\xac\x12\x6f\xc8\xff\x3b\xfb\x8f\xdf\xfd\x3c\x3c\xff\xeb\xd9\xd9\xf7\xaf\x87\xff\xeb\x87\xdf\x9d\xfd\xc7\x08\xfe\xf1\xdb\xf3\xbf\x9e\xff\xec\xfe\xf8\xdd\xf9\xf9\xd9\xd9\xf7\x5f\xbd\xfb\xdb\xc7\xdb\xeb\x1f\xf8\xf9\xcf\xdf\x8b\x7a\xf6\x80\x7f\xfd\x7c\xf6\x3d\xbb\xfe\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\x6f\x20\x0b\x7a\x74\x57\xee\x68\x77\xbf\x23\x0d\xd5\x6a\xaa\x9e\x38\xf6\xf8\xc0\x97\xe0\x69\x1c\xf0\xce\x8e\x5d\x60\x2a\xba\xe2\x7b\xcd\x3e\xe0\xfa\x6c\x07\x49\x69\x36\x2b\x65\x45\xab\x05\xc9\xad\x72\x6b\xf1\xa4\xa4\x6f\x4f\x4c\xac\x0e\x93\xcc\xf9\x76\x18\x3f\x80\xaa\x78\xc6\x72\x5e\xcf\x0e\x92\x96\x0d\x7a\x0e\x37\xfd\x11\xca\x8e\xd8\xa2\x26\xce\xd7\xc7\xbe\xe6\x4a\x72\xd1\xec\x01\x05\x15\x7f\x2a\x71\xfa\xc3\x56\x2d\x8a\x93\x93\xa5\x1a\xdf\xa0\x9b\x06\x27\x18\x99\xb3\x53\xe5\xdf\xc5\xc1\x13\x95\xc4\x68\xce\xb4\xbe\x91\x67\xb6\xab\x73\xc3\x08\xbe\x03\x5e\xe1\x08\x69\xf8\xa3\xa0\x85\x24\x26\x6f\xe2\xff\x64\x5f\x1b\xae\xe8\x20\x11\xde\xae\x73\x5f\x11\x5c\x82\x30\x67\x13\x2f\x8e\x49\x21\xb3\xc0\x01\xac\xc5\x0c\x00\x38\x5c\xbb\x4b\x1c\x6f\x2b\x34\x40\x61\xc6\x45\x5e\x0f\x94\xa1\x85\x42\xef\x16\x9e\x41\x81\x36\x10\x0d\xe1\xcc\x12\x20\xc1\x74\x3b\xa3\x9f\xf8\xac\x9e\x91\x5a\x99\xd9\x4a\xd1\xee\xa5\x99\xec\xa3\xab\x33\x07\xa9\xec\xb8\x80\x8f\x5a\xa2\x71\x8c\x8a\x72\xca\xc8\x9d\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\x52\x65\x3b\x5c\x2a\xc1\x8b\xf6\xad\x72\x45\x84\xfc\xf6\xd6\xc2\xfa\x2b\xbe\xa4\x1b\xf0\x82\x79\xa3\x68\x8e\x28\x9d\x0f\x4a\xe4\x7e\x9e\xc0\xf3\x78\xef\xcd\xbd\x92\x6c\xef\x12\xda\xa2\xd9\x61\xfd\xa2\xb6\x7b\x28\x75\x9e\x84\x1e\x85\xc4\xa5\xd9\xf9\xe8\x75\x3a\x96\xd4\x67\x8b\xcc\xa6\xf0\xe3\xad\x3a\x70\x38\x28\xc2\x37\x84\xb1\x0d\xcd\x7f\x9c\xee\xc7\x99\x1f\xef\xd9\x18\xdd\x9b\xf0\x1b\x90\xdd\x55\x57\xe8\x1c\x6a\xb4\x0a\xa6\x21\x16\x8f\xf9\xea\x80\xe8\x77\x35\x93\xf3\x88\x02\xc2\xdf\x2a\x6b\x70\xe6\x9d\x00\x45\xcf\x5b\x71\xf2\x0a\x45\x6c\xc1\x58\x8e\xb1\x80\x45\x33\xff\xaa\x16\x9d\xb3\xbf\x3f\x27\x63\x46\x75\x5d\xa1\xf7\x8f\x30\x52\x4e\xe1\x04\x38\x54\x3b\x55\xcc\x1c\x0a\xa4\x40\xac\xe4\x8c\x28\x41\x4b\x35\x95\x1a\x54\x27\xb4\xa4\x19\xd7\x11\xe1\x65\xba\xa2\xd9\x03\xd4\x58\xae\x98\x9d\x6d\xd7\xd4\xb2\x73\x1b\xc5\x10\x42\x44\x3b\xf6\x51\x4f\x2b\x59\x4f\xa6\x10\x8a\x87\x6f\x65\x05\x55\x18\x73\xd9\x65\x64\x5f\xdb\xbb\x55\x0c\x28\x92\x2f\x04\x9d\xf1\xcc\x57\x9a\xaa\xe4\x9c\x2b\x2e\xad\x91\x0a\x46\xed\x5e\x34\x25\xb7\xbe\x0c\x10\x5a\xc6\x2e\x0b\xca\x67\xe4\x4c\x31\x46\xae\xdd\x25\xc1\x5f\xee\x50\x40\x40\x75\x67\x8c\x83\x55\x68\x54\xb3\xa9\x8f\x6d\xe6\x14\xf3\xc4\xa9\x6e\x03\x37\x86\x98\x84\x58\x16\x9e\xd7\x4e\xbb\xbb\xc0\xaf\x01\xe3\xf5\x2b\x96\x15\xf8\x0b\xba\x6a\x78\x4c\xe4\xb2\x71\x8f\xe9\xe8\xf5\xe2\xf6\x46\x85\x6a\x05\xbc\xcb\xb6\xc0\x12\xfc\x60\xd3\x2d\xfb\xbc\xb2\x1e\x13\x74\xf4\x6c\x08\xac\x80\x42\xcc\x73\x9e\xd7\xb4\x40\xd2\x1a\xb1\xc8\xcb\xbb\x1b\x1c\x98\x4f\xa6\x7a\xf8\xc8\x40\x11\x8c\x3c\x50\x83\xfb\xdc\x74\xf9\x8a\xd3\x36\x57\x40\x84\x23\x6a\x30\x5b\xc5\x34\x2e\xf9\x91\x2e\x20\xff\xbc\x75\xfe\x6d\x79\xfb\xb8\x9a\x30\x38\xc0\x58\x76\x51\x99\x99\xa3\xdf\x16\x84\x3a\x97\x7d\x01\x28\x25\xa3\x02\x98\x71\xd0\xe8\x1b\x78\x02\xac\xb1\xba\xe6\xee\xfb\x17\x14\xc8\xf2\x1f\x21\x43\xa2\xa8\x81\xd5\x4e\x99\xed\x00\xd2\xd4\xbc\x81\xd8\x8f\x6c\x56\x16\x54\x1f\xc4\x01\xe7\xef\x81\xc9\x21\xb0\x87\x1b\x24\x46\x45\x3e\xa4\x85\xb9\x2a\xb7\xdf\x5d\xda\x80\x57\x44\x3c\x89\x9e\x76\x1f\x1d\x11\x12\xbe\x96\xb2\x61\xc3\xd7\xe2\x1c\xc8\x9e\x7a\xcf\x72\xa0\x20\x76\x6e\x71\x4e\xc2\xf2\x51\xb0\xca\xc1\xde\xed\x77\x97\x03\xc2\x47\x6c\xe4\xfe\xf2\x9d\x39\xf2\xa8\xe5\x04\x43\x67\x5c\x88\x5a\x8c\x6d\x5d\xe6\x23\x5c\x4e\xa8\xdf\x0f\x7b\xff\xf1\xcf\x66\xa1\xe6\xd7\xbf\x0c\xff\x1c\xd4\x2e\xfc\xcb\x8f\x86\x1e\x47\xf9\xaa\xfe\xb8\xf4\x5d\x18\x73\x01\x44\xcf\xfc\xf5\xe3\xad\x2d\x5b\x6c\x8b\x1a\xff\x18\xe9\x54\x41\x08\x13\xba\x5a\x8c\xc8\xad\x04\x3f\x3c\x9e\xe3\x95\x85\xf9\x57\xec\x1f\xce\x2c\x04\xc7\xe5\x35\xe8\x19\xd5\x4c\x00\x57\xb2\xb5\x02\x70\xd3\x6c\x06\x00\x18\x00\x90\x13\x85\x5d\x3a\x03\xd5\x2b\xa6\xc3\x19\x10\x2d\x31\x39\x7d\x37\x2e\x37\xed\x42\x10\xf6\x89\x2b\xc8\x7e\x86\x3b\x0e\xc7\x46\x6d\x48\x88\x63\xe4\xcc\xb0\x06\x12\x7c\xce\xbc\x52\xc6\xf8\x6e\xc0\xfa\x7f\x2b\xa4\xfe\xad\xbf\x0c\xce\xa3\x14\x38\x36\x49\xe8\x5c\x72\x57\x63\xdb\x20\x1e\x01\x46\x96\xa8\x44\x13\xf6\x3c\xef\x17\x64\xc6\x95\xa6\x0f\x6c\x44\xee\x0c\x3b\x17\x3a\x99\xe0\x29\x0b\x02\xb5\xf0\x58\x4e\x6a\xa1\x79\x11\x29\xd1\xf9\xb9\xc0\xc6\x04\xac\x1e\xa4\x96\xa8\x33\xc3\x93\x94\x15\x1b\x3a\xd6\x12\xdf\x8a\xd2\xbb\xd8\xaa\x9e\x6e\x4f\x9a\x3d\x1d\x78\xd0\x9f\x52\x54\x8b\x94\x39\x74\x6e\x3d\xb5\xa3\x2f\xec\x4a\x34\x85\xd9\x0d\x29\xb2\x86\x75\x84\x63\x57\x23\xf2\x1e\xf8\xc1\x22\x06\xc8\xd1\x69\x0c\xf5\x40\xd6\xca\x26\x58\xc6\x94\xa2\xd5\x02\x9d\xd8\xb9\xaf\xae\x5d\x2b\x36\xae\x0b\x60\x97\x63\xb6\x84\x0a\xac\x64\x5e\xb1\x4c\x0a\xa5\xab\x3a\x83\x73\xa4\xe4\xbe\x92\x0f\x4c\x34\x61\x48\x51\x88\x31\xf4\xb8\x6f\x5c\x9b\x0d\xdb\x23\x24\xc9\xa6\x54\x4c\x98\x4f\x01\x42\x66\x34\x07\x28\xfa\xca\x0b\x58\x31\x5b\x21\xfd\x49\xd1\xb1\x91\x6a\xb8\x86\x23\xbb\x37\x1c\x99\xb3\x47\xc6\x4c\xf6\x83\x0f\x02\x98\x05\xc6\x4b\xc1\x8b\x3d\x3b\xf2\xa6\xd8\xaa\x86\xc0\x7f\x77\x0b\xee\x49\xb6\xa9\x19\xd3\x34\xa7\x9a\x1e\x32\x4e\xe3\x1d\xf5\x65\xdc\xad\x2f\x14\x1c\x7a\xe0\x23\x65\xd9\x2c\x27\x15\xca\x92\x87\x89\x5d\x6e\xbf\xbb\x8c\x1c\x09\xc4\x40\x38\x67\xc8\x1b\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\xf4\x3e\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\x4c\x33\x83\xed\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\xe4\x46\x48\xa3\xa6\x74\x9e\x90\x4a\x65\x67\x8d\x67\x23\xe7\x0c\x7d\x15\x5e\x98\xd8\x10\x26\x36\xfc\x22\x7a\x0a\x29\x8e\xbc\xae\x45\x3b\xf4\xb6\x07\x49\xb4\xba\x3e\x29\x11\x84\x6b\x06\xfd\xdf\x25\x5a\x5c\x77\x87\x9e\x66\x34\xcb\x0c\x58\x27\x2a\xef\x80\x67\x83\xfd\x19\x37\x68\x3b\x65\x07\x7f\xdb\x62\x9b\xad\xa0\xe5\x75\x66\x18\x4e\x79\xe6\x94\x68\x23\x0b\x26\x2e\x4f\x65\xfb\xf5\xf3\x9d\x87\x05\xce\x7f\xbd\x16\x27\xa1\xcf\x1b\xeb\x4f\xec\x64\x50\x23\xeb\x55\x60\x43\x73\x61\xfc\xe6\xe2\x55\xb2\x28\x58\x05\x1b\x68\xd5\x67\x4b\x8e\x9f\x50\xfb\x12\x0d\xe0\x31\x79\xc8\x5c\x73\x0a\x5a\x2f\x1e\x0b\xf6\xe8\xf9\x7a\xaa\x30\xc3\xbc\xf3\x37\x02\x15\xb3\xf3\xba\x5d\x37\x72\xca\x55\xff\xbb\x53\xe3\x5e\x88\x05\x6e\xdd\x55\x00\x2e\xa8\x2e\x25\x13\x33\x29\x23\x3a\x0b\x7a\x5f\x18\x16\x2d\x00\x29\x3f\xa3\x25\x5e\x42\xcb\xe0\xad\x0f\x6c\x9c\xb2\x1d\xa0\x67\x0e\x3f\x8e\x1b\x05\x99\x91\xd6\x87\xa3\xc6\xf7\xdb\x4a\x6f\x49\x49\xc6\x5d\xb3\xd0\xd1\xea\xac\xed\x6f\xb9\x34\x6e\x98\xf7\x6e\xed\x5c\xe3\x47\xdf\xc1\x1f\x6b\x17\x8f\x2c\xc8\x9e\xc6\x3b\x75\x59\xed\x0f\x22\xe5\x75\x6c\xbb\xb8\x70\x81\xa7\x3a\xb8\x82\xa6\xf9\xe3\xec\x8e\x2d\x09\xaa\x61\x61\x4c\xa7\x1c\x99\xc0\x1f\x8e\x53\xf3\x1e\x2e\xf7\xcc\xe0\x9f\x26\x29\x64\x0a\x44\x11\x84\xaa\x70\xa4\x35\x4e\xbc\xcd\xf5\xfe\x0a\x8a\x9a\x5a\xd3\xbe\x4b\x49\x61\xc8\xf4\xc5\xed\x0d\xce\x2f\x75\xf4\xb7\x80\xdf\x16\x96\x59\xd7\x53\x5e\xe5\xc3\x92\x56\x7a\x81\xca\xce\x41\x6b\x6e\x3e\xaa\x3e\x69\x90\x1d\xfd\x9a\xe2\xca\x20\x87\xad\x75\xdc\xb0\x55\xce\x78\x6f\x7d\x38\x36\x9e\xd9\x31\xd6\x13\x1f\x95\xbf\x76\x3d\x61\x11\x4b\xa7\x18\x7c\xc6\xf5\x3c\x3d\xe2\x80\xb4\x71\xe5\x71\x79\x20\x83\x9c\x55\xdb\xeb\x11\x19\x15\x90\x7e\xac\x02\x59\x86\xc1\xb1\x9e\x9b\x06\xdd\x93\xe9\x69\x40\xf8\xd8\x10\x69\x29\x86\x60\xdd\x4f\x98\x48\x63\xcc\xb4\xbc\xfb\xc8\x3a\xd8\xa3\xb6\x08\x2e\x64\x30\x9f\x60\x90\xe6\xa6\x93\x33\x21\x63\x94\x49\xae\x01\x9e\xc0\x5e\xcf\x31\xf6\x61\x83\xe5\xea\x3e\x25\xe1\x24\x69\xb8\x87\x50\xcd\x14\x60\x30\xc7\xc0\x70\x91\x1b\x20\x05\x92\x08\x0a\x28\x55\x67\x19\x63\x5e\x05\x6c\x2f\x69\x0a\xeb\xde\xc2\x8d\x76\xc3\x66\x54\x67\x53\xa6\x88\x92\x90\x55\x5d\x69\x5a\x14\x2c\xf7\x66\x4d\x3c\x50\x09\x7c\x9d\x35\x79\x26\x8c\x18\x30\x86\x29\x1b\x14\xa8\xe0\xac\x0e\xbc\x2c\xa8\x55\x3e\x8e\x6b\x91\xa1\xcf\x30\xd7\x0b\x6f\xd5\x5a\x66\xd6\x41\x6f\xa3\x40\xcf\x9a\xc2\x50\x8e\xd1\x6e\x15\xe8\x60\x3c\x20\x01\x69\x59\x20\x31\x31\x92\x61\x63\x89\xb2\x19\x83\x0d\x65\xf0\xe9\x37\x92\xe0\x2c\x48\xd4\x31\x40\x6e\x2c\x64\x99\xc4\x69\xe8\x14\xc4\xc5\xee\x0c\x62\xb8\xb6\xb3\x60\xcb\x56\x18\xc7\x73\xcf\x30\x2a\xe6\xcb\x81\xab\x14\xae\x85\x58\x2f\x28\x5a\x6b\x39\xa3\x9a\x67\xa0\x9e\xe5\xe3\xc0\xc8\x3b\xf3\x45\xf9\xbc\x93\x13\x12\x55\x20\xea\x76\xd7\x93\xaf\xd5\x7a\x66\xf3\x49\xdb\x16\xec\x94\x3d\x8d\xf6\xa6\xb8\xa5\x06\xac\x46\xf2\xdc\x3f\xba\xbc\x29\x44\x4f\x2b\xc6\x08\x9f\x19\x31\x89\x0a\x4d\x72\x3e\xf6\xf9\x72\x9c\xcd\x7e\xdb\xd9\xa5\x49\xa2\x7f\x07\x7f\x90\xa0\x3f\x54\x75\x17\x85\x7c\x54\x44\x3f\x4a\xaf\x76\x6b\x6c\xb9\x36\x5f\xca\xa0\x3d\x6c\x12\x05\xb5\xfd\x1b\xb4\x6d\x4e\x3a\xc0\xb4\x03\x73\x6b\x1f\x59\x51\x98\xff\x6f\xc3\xb7\x09\x91\x5e\x6b\xd7\xc9\x27\x02\x13\x71\x70\xe5\xd4\xac\x36\x9e\xec\x2c\xaf\x64\x59\x5a\x33\xd0\xec\xfc\x29\xeb\x04\xd7\xa6\x6a\xce\x14\xb8\xe9\xb9\x68\x36\x73\x64\x13\x26\x58\x45\x35\x18\xc2\x6d\x06\x6d\x20\x8e\xcb\xd3\x89\x57\x5b\x62\xdb\x49\x4e\xeb\x00\x03\x74\x5b\x58\x7f\xec\xee\x1d\xfb\x6b\xd2\x5c\xb9\x40\x08\x70\x37\x36\xe9\x48\xcf\xbe\x64\x9a\x9e\x93\x6f\x15\x1e\x94\xa7\x17\x3e\x4a\x30\x4a\x3a\xb7\x59\x8e\x50\x40\x4f\x1a\xfe\xa2\x28\xa7\xc1\xf8\xa1\x94\xeb\x43\xad\xdb\x3b\xd5\x9a\xd9\x65\x25\x95\x7a\xef\x3e\x39\xc8\x24\x7b\x09\xb8\x97\x80\x7b\x09\x78\x7b\xeb\x25\xe0\x63\xaf\x07\xf0\xdd\x31\xef\xe4\xfb\x90\x21\x6c\x23\xea\xbd\xed\x07\x21\xef\xa5\xb6\xee\x2e\xc0\xbf\xd3\x8d\x4a\x4f\x0a\x38\xfd\x91\x2e\x46\x82\x69\x9b\x87\xce\xe9\xf6\x3f\xb8\xd1\xff\x56\x19\xce\xcf\x0a\x68\xc1\x2d\x72\x17\xd8\x25\x11\x0c\x46\xd1\x12\x49\x71\xe3\x7d\x03\xcf\x4f\x95\xf5\xe8\x30\xbf\x43\xb0\x3d\x69\x95\x64\x19\x91\x3b\xeb\x2d\xb8\x34\xf8\x6a\xaa\xb0\x9c\x69\xca\xe3\xf2\x50\x86\xcd\x51\xca\x8f\x1b\x68\xf4\x11\x28\x21\xd9\x0d\x64\x7d\xe8\xe6\x31\x54\x2d\x4d\x08\x74\xe0\x11\x1f\x46\x95\x34\x2f\x3c\xdd\x52\x79\x33\x26\x1f\x58\x26\xe7\xac\xc2\xfd\xbe\xfe\x54\x52\x61\xc4\xf4\xb7\x94\x17\x66\xb7\xdd\xae\x37\xd6\x0b\x28\x82\xdc\x76\x4b\x08\x8c\x60\xfe\x1a\xd9\xa3\x35\x90\x93\xc2\x0c\xfa\x9c\x77\xa6\x67\xeb\xa7\x5b\x56\x6c\xce\x65\xad\x5c\x3c\x4d\xad\x91\x8e\x29\x6d\x65\xd3\x29\x9f\x4c\xdd\xcb\xce\xcf\x1c\x3c\x80\xaa\xdc\x5f\x95\x84\x39\x28\x4d\x75\xad\xda\x89\x72\x32\x70\x27\x78\x16\x1b\xb0\x3f\xef\xc3\x32\x7c\xbb\x31\x57\x18\x7f\x74\x4c\x34\xfe\x35\x46\x3c\x61\x27\xf7\xf6\x16\xb8\x30\xad\x26\xcc\x2c\x93\xb3\xb2\xd6\x2c\xb8\x2d\x16\x5a\x53\xd1\x56\xe2\x41\xb6\xf2\x5e\xbe\x9a\x51\x41\x27\x6c\xe8\x27\x31\x6c\x22\xb4\x5e\xed\x80\xb5\x12\x8f\x94\x3c\x21\xf1\x62\xd8\x5e\x70\x64\xd5\xd2\x62\xd3\x23\xcf\xc9\x13\xa3\xcf\xc9\x53\x22\xd0\xc9\x3e\xa3\xd0\x89\x4f\x65\x71\xcc\xeb\xf8\xc1\x8e\xb9\x7c\x21\x2d\xb1\xda\x76\x21\x77\x13\x09\x2c\xd1\xb2\xa3\x72\x45\xe4\x8c\x6b\xcd\x9c\x23\xb3\xbf\x60\x03\xc2\x75\x2b\xd3\x82\x45\x1c\xa0\x34\x47\x6f\x64\xf6\xc9\x97\xd5\x6e\x18\xb3\xc4\xc9\x80\xf0\xf3\xc8\x15\x32\x5e\x82\xf0\x59\x89\x85\x59\x00\x01\x0c\x6d\x9c\xa4\x53\x0d\xfb\x79\x67\xe0\x4b\x48\xd8\x27\x50\xe4\xe3\xd4\x7a\xcc\xd4\x63\xa6\xa5\xf6\x4b\xc0\x4c\x98\xc5\x22\x25\xc9\x4a\x0b\x23\xb9\xcf\x6d\x8e\x4b\x7a\xcf\x0a\xf2\x53\xcd\xaa\x05\x31\x6c\x6b\x13\xe9\x05\xd5\xc0\x15\xcf\x31\xa6\xc9\x59\xcd\x0e\xac\x25\xdb\x8d\x69\x02\x4b\xdb\xf5\x27\xc3\xdd\x43\xce\xb6\x27\xe0\xeb\xe5\xae\xda\x99\x40\x71\xb7\xfc\x0e\x86\x3c\x39\x3a\x9d\x86\x4f\x80\xed\xbe\x78\x7f\xb5\x9b\x40\x95\xe6\x6c\x48\x76\x71\x38\x5c\x59\x7c\x32\xb1\x22\xe4\x62\xcb\x9e\xe0\xde\xf9\x5f\x80\x4a\x78\x77\x51\xaf\xb3\x27\x0f\x6c\x31\xb0\xee\xe0\xc4\x9c\x3e\x75\x2f\x27\x4f\x06\xe3\x42\x9a\xaa\x85\xa6\xd3\xd8\xec\xdb\xed\xb6\x33\x12\xde\x4d\xd1\x8b\x2d\xbe\x5c\x64\xfb\x2b\xb7\x69\xa9\xb8\x7e\x67\x2a\x91\x54\x56\x32\x6c\x9b\x4a\x4c\x22\x0c\x41\x3d\x38\x97\x1b\xc1\x83\x0d\x64\x9d\x00\x84\x94\x7a\x88\x64\x77\x85\x1a\x36\xb7\xb1\x4f\x5e\xea\x0e\x17\x2b\x1c\xbf\x1d\xcb\xff\xc0\x16\xa7\xca\x26\xbd\x93\x42\x4d\x79\x89\x25\x50\x15\x03\x1c\xb5\x1b\xc0\x63\xfb\x0e\x5c\xdb\xdd\xb0\x88\xc1\x6e\xc4\x80\xbc\x97\xda\xfc\xef\x1a\x42\x93\xe0\x5a\x5d\x49\xa6\xde\x4b\x0d\x4f\x8e\x7e\x2e\xb8\xc4\xe7\x3a\x15\x6b\xcd\xe4\x60\x61\x04\x34\x8d\x59\x79\x20\x4e\xdf\xee\xbe\xf3\xd0\xf4\x27\xc8\x15\xb9\x11\x44\x56\x76\x2b\x77\x1a\x58\xbb\x22\xca\xca\x0e\xeb\xac\x0f\x8d\x51\x7f\xdd\xb8\xf6\xd4\x64\xd5\x3a\xb4\x3d\x4f\xc1\x0e\x0f\xba\x48\xfc\x05\xb4\xab\xe0\x5d\xe2\x42\x6a\xb0\x6c\x2f\xd5\x6c\x92\xe4\xea\xd2\xb4\x19\xab\x26\x90\xe5\x31\x4b\x28\xf8\x18\x4c\x7e\x47\xc2\x8a\x6d\x27\xf2\x1a\x0e\xbc\x23\xb0\xef\xc9\xc7\x7f\xcf\x5d\x01\x9f\xf4\x35\x84\x72\x1d\x53\x3a\x0e\x86\x45\xee\x62\x46\x4b\x73\xfb\xfe\xcb\x30\x11\x00\x98\xff\x0d\x35\xd3\xd5\x88\x5c\x10\xc5\xc5\xa4\x60\xad\xdf\xac\x9a\x3f\xe8\x26\x79\x02\x60\x7d\x33\x34\x7e\x4e\x0b\x86\xf1\xa2\x54\xf8\xea\xa1\x72\xbc\xc2\x42\x0e\x6c\x11\x75\x43\xde\xbc\x5b\xda\xc9\x03\x5b\x9c\x0c\x12\x15\xa9\x24\xa4\x09\xa6\x93\x1b\x71\xd2\xa4\xa4\x6d\xdd\x4b\xcf\x67\x81\xbf\xc1\x09\xfc\x76\xb2\x6f\x1e\xf5\x99\x84\xd4\x67\x73\x13\xb5\x4a\xe5\xcb\x82\xa2\x61\xe5\x18\xe6\x8b\xe5\x31\xd7\x15\x25\xbc\x0b\xde\x69\x4c\x5a\x36\x7a\xf9\x19\x35\xed\x90\x11\x26\x39\xcc\x2a\xe9\x60\x97\xcb\x00\x1d\xf5\x6c\x36\x0e\x1e\x04\x5b\xfb\x9c\xe2\xe6\x2c\xbe\x5b\xf7\x41\x10\x6b\xce\x55\xfa\x71\xdd\x8c\x97\x7d\x14\x82\x74\x27\x61\x14\x8f\xac\x6c\xd4\xfa\x8a\x0f\x31\x54\x48\x6c\x2a\x29\xc5\xd6\x4e\x6d\x5a\xe3\xfe\x50\x31\x55\x4a\xf4\xaf\x5d\xbb\x58\xcb\x22\x4c\xa9\x02\x9f\xac\xb1\x35\xb7\x96\x75\x55\x4a\x65\xcb\xdb\x2d\x83\x7c\x62\xe4\x92\x0d\x27\x73\x41\xa6\x18\x06\xee\x6f\x82\xb9\x3f\x3e\x2f\xf5\xc5\x52\x4e\x42\x34\x88\x05\x59\xda\x84\x5c\xbf\x8c\x84\x19\x39\x87\x4f\x94\x63\x7c\x66\x2c\x9c\x0c\xc6\xe6\x9f\xa2\xab\x49\x60\xfe\x33\xdc\xbe\x0e\xbd\xaf\xb4\x6c\xcf\x14\x52\x06\x60\xf2\xb8\x84\x64\xe3\x04\xe1\xa5\x16\x8d\x1b\x8b\xa3\x1e\xeb\x5d\x02\x21\x37\xdd\xbd\xac\x85\x05\x2d\x97\xd5\x6e\x5f\x9b\x62\x56\xe9\xb2\x2c\xf8\x09\x58\xd0\x0c\x02\xdc\xf8\xd8\xac\xd5\x66\x46\x48\x5b\x6b\xcb\x3f\x08\xac\xf3\x95\x2d\xc2\xb7\x58\x7f\x7f\x49\x2e\x19\x9e\x07\x8c\x37\xc0\x53\x58\xbf\x3d\x76\x19\x29\xe8\x1c\x3d\x5c\x29\xb9\x65\x78\x4b\x94\xa6\x9a\x0d\xb0\xc6\xeb\xb8\x08\xea\x00\x31\x32\x93\x39\x1f\x5b\x3f\xbb\xbb\xc0\x86\x3a\xc0\x74\x19\x36\xd7\x45\x98\x06\x3c\x61\x22\xe9\x9b\xf9\xa4\xbc\x83\xc3\x06\xbf\x0c\x81\x2c\xb0\x24\xb5\x78\x94\x53\xe2\x7a\xec\xba\xd9\xcf\x81\x9c\xc9\xf1\x38\x28\x79\x15\x51\x05\xcf\xb5\x9d\x29\x55\x5c\x65\x31\xd7\x9e\x4a\x9a\xa0\xcc\x82\x4b\xbd\xd7\x4a\x22\xdb\xc4\x7d\x3c\x99\x5f\xf8\x0e\x90\xa6\x1c\x93\xb7\x4d\x2d\x5c\xae\xc0\x70\xc3\x5d\x62\x3e\x73\x9d\xb8\xc8\x8a\xda\x3a\x10\x20\xf6\x33\x58\xe8\x08\x7b\xfe\x04\x76\xa0\xe9\xc0\xf1\x5d\x2e\x7a\x64\x25\x91\xcb\x32\x86\x80\x90\x05\x0f\xae\x89\xbb\x1a\xb9\xd6\x71\x47\x72\x88\xd6\x5a\xc6\x59\x5b\x8f\xf4\x96\xdf\x57\x8c\x5c\x4e\xa9\x10\xac\x08\xf2\x64\x5b\x63\x1e\xd5\x9a\x66\x53\xc4\x95\x94\x98\x9b\x5e\x30\x43\xa9\xa6\x52\x69\x32\xa3\xd9\x94\x0b\x9f\x44\x55\xf8\xac\xec\x4d\x56\x9b\xa3\xa7\x10\x3b\x78\xf5\x6a\x0b\x01\x61\xc9\xe7\x56\x51\xeb\x88\x9e\x7c\x32\xe4\x95\x5e\x9a\x7a\x91\xf6\x1e\xc2\x3e\xa3\xb4\x07\x74\x02\xde\x8d\x19\x63\x73\x69\x6d\x72\x33\xf3\x06\x5a\x2e\x02\x52\xc8\xec\x07\x86\xd0\x06\xcc\xc1\x5e\x2b\x59\x17\x75\x44\x6d\xa7\x76\x16\xf7\xa2\x16\x66\xd3\x9b\x6a\x3d\x6f\x2f\x89\xa6\xd5\x84\x69\xd3\x1b\x11\xf5\xec\x9e\x55\xdd\xe9\xdc\x0f\x57\x60\xee\x28\xf5\x60\x5b\x3b\xd0\x51\xc6\x95\x7c\x70\x5f\x41\xd8\x0b\xf0\x27\x63\x19\xc7\x19\xa0\xaf\xa2\x2b\x42\x8b\x25\x08\x0d\xae\xfe\xce\x92\x92\x5a\xc4\xf0\x0b\x29\x75\x62\xf1\x2c\xff\xfe\xf7\xf7\xa9\x45\xfa\x4e\x9b\x2f\x37\x01\xc8\xa3\xac\x8a\xfc\x91\xe7\xd6\x2d\x95\x9c\x99\x97\xcf\x63\x81\x65\xcf\x35\xfb\x76\x4f\x29\x9c\xaa\xa3\x7b\x7c\xe4\xf9\x41\xea\xed\x42\xc7\xed\x9d\x76\x22\xa4\xd9\x69\x02\x5b\xcd\x73\x26\xb4\x41\x1d\x95\x22\x67\xf0\x45\x4c\xce\x8b\x6b\x8e\x99\x09\x61\x04\xa8\x0a\x34\xbb\xe7\xa2\x49\xae\xd9\x9c\xb5\x21\x37\xe6\xe6\x3b\xad\xb3\x62\x1a\xf3\x9b\x41\x66\x03\xa9\xa7\x44\xf1\x59\x5d\x68\x2a\x98\xac\x55\x7c\x29\xfe\xcf\xf2\xb8\xc7\x05\xfb\x84\x77\x73\x9f\x09\xa4\x9b\x5e\xdb\xdc\x02\xc4\x55\x35\x59\x79\x97\xd9\x85\x8e\x5e\x9b\x70\xd5\xfc\x95\x67\x2c\x7c\x76\x41\xf6\x89\x65\x36\xaf\x48\x59\xd4\x13\xde\x99\x4b\xeb\xca\xcc\x2c\x33\x32\xfc\x1b\xf2\xb6\x99\x30\x44\x31\xbb\x5f\xb0\x54\x33\xf8\x2f\xd8\x81\xc8\xe5\xdd\xcd\x95\x4d\x03\x2b\x94\x66\x74\x5f\x3c\x4a\xac\xc9\x77\x68\xd5\x32\x7b\x62\x78\xb0\xb3\xc4\xcb\xde\xe4\xc1\x5d\xd6\x22\xda\x5f\x6c\xcd\x07\x5f\x3f\x20\x36\xf1\x69\x02\xd0\xf7\x9c\x1a\xb6\x2d\x9c\x5a\x58\x42\x20\x98\x40\xce\x4a\x26\x72\x28\x4a\x18\xc0\x3d\xee\xd2\x5e\x8f\xc8\x16\xd0\x4b\xa5\xcb\xae\xee\x5e\x8b\x28\x07\xf2\xfa\x54\x16\xb9\x22\xec\x93\xae\xa8\x41\xf3\x33\x83\xd0\xfd\x37\x63\x42\xc5\x22\xa2\xfa\xe9\x4b\x2a\x94\x4e\x9e\x85\x0b\xcc\x7f\x49\x5c\xa0\x62\x59\xc5\x74\x54\x80\xf5\x0e\xe5\x53\x5c\xe7\xed\x0d\x6c\x3d\x5e\x11\xe5\xf1\x57\x17\x26\xd4\xd4\x48\x8e\x1a\x4f\x28\x0e\xc5\x08\x97\x2a\x2f\x97\x54\x29\x2f\x1d\x03\x91\xb3\xd7\x56\xb5\x32\x6e\x44\x0c\x81\x7a\x60\x3e\x26\x42\x2e\xcd\x34\x0c\x88\xf2\xae\x00\xad\x57\x22\xba\xf7\x96\xc3\x19\x16\x64\xa0\x02\x52\x0b\x60\x37\x03\x88\xb7\xc6\x7f\xa3\xf1\xd0\xac\x2b\x90\xfb\x61\x65\x31\xfb\x64\xd7\xbe\xdf\xcb\x9e\xe6\xd2\x14\x1f\x05\xb8\x9b\x1e\xee\x7d\x40\x5c\x5d\x60\x59\xac\x0a\xa8\x9d\x2b\x97\x41\x05\x53\x3e\x67\x90\x89\xd7\x25\xa6\x35\x8c\x6f\x5e\xa3\x52\xd3\xa5\xc7\x68\x27\xbd\x88\x0f\x72\x0f\x6c\x0f\x8d\x37\xc7\x8d\x50\x9a\x42\x7e\x04\x58\x85\xa1\xaa\x86\x00\xda\x9c\xc7\x16\x10\xd1\x66\xe2\xb2\x2c\x44\x0f\x37\x33\x44\x33\x63\x95\x81\xb5\x62\x41\x1e\x2b\x19\xef\x5c\x9a\xa8\x89\x96\x73\x56\xcd\x39\x7b\x7c\x65\xa3\x02\x87\x66\x01\x43\x1b\x58\xff\x0a\xc4\xc3\x57\xbf\x86\xff\x45\x8d\x9f\xac\x87\xb4\xd8\xfa\x0d\x39\xe9\x2e\x4d\xb8\xab\x99\x7a\x0c\x89\xb4\xf7\x5a\xfd\xcd\x76\xb9\xa4\x34\xb4\x0f\xad\x18\x10\xa3\x24\xb4\xf8\x2d\x60\x5d\xcc\x85\x70\x1d\x59\x2b\x0f\x51\xe6\x8c\x9a\x70\xd1\x5a\x88\x08\x6f\xe3\xb6\x1c\x80\x1d\xb6\x84\x00\x6f\xde\xe2\x62\xa8\x2b\xc6\xfc\xa2\xb4\x65\x13\x85\x74\x25\x2c\x22\x0b\x93\x1e\x40\x71\x99\x53\x4d\x15\xd3\x71\x6a\xea\x74\x54\x14\x74\x6f\x56\x1c\x62\x25\xfb\x13\x58\x5c\x19\xe4\xf5\x71\xd9\xa0\xc9\xf0\x2f\x56\x38\x10\xad\x37\x8d\x58\x60\x77\x3a\x06\xcb\x4f\x5d\x19\x2f\xe7\x4b\x8e\xa3\x34\x07\xb4\x4f\x9e\xd5\xce\xf1\xdb\x6f\x6f\xae\x52\x85\xa2\xe6\x4b\x27\x3b\xc0\xbf\xdb\xdb\x64\x01\x19\x6c\xa2\xfc\xa7\x3a\x54\x77\x40\x3d\x13\x0f\x82\xf6\xfd\x7d\xad\x6d\x92\xb1\xc6\xb8\x70\xc5\xd5\xc3\x3e\x6f\xf9\x4a\xe7\xed\xfb\xfe\xb7\xcb\x6b\x62\x9f\x6e\xb3\x0f\x74\x0c\xb2\x6f\xeb\x41\xfb\xe6\xff\xed\xf2\x7a\x69\x09\x4b\x8a\x80\x8b\xa2\x70\xf2\x99\x11\x34\x5c\xda\x08\x8b\x13\x92\x37\x08\x70\x87\xe1\x7d\x2a\x86\xb5\x16\x83\x99\xe7\xa3\x4c\x71\x9f\x5a\x76\xf2\xc0\x46\x5c\x06\x0e\x19\x07\xae\x85\x39\xc9\x58\x63\x46\xcf\xb9\x7a\x38\xb6\x7e\xa3\xcc\xdf\x77\x25\x20\x79\x59\x06\x9d\x65\xe1\xde\x95\x49\x0a\xea\xa5\x2d\x64\x4d\x1e\x6d\x65\x88\x68\xf5\xc1\x47\x5e\xbe\x21\xd7\x42\xd5\x15\x6b\x7c\xda\x97\x07\x33\xfc\xfa\x1e\x95\x09\x50\x68\x44\xbd\x39\x9a\xf1\xe7\xc8\xe0\x4a\xd2\xa8\x41\x49\x2b\x0d\x92\xff\x21\x00\xc8\x77\xee\xc8\x45\xf0\x40\xec\x07\x82\x6e\xc6\x2e\x12\xb3\xed\x7a\xc3\x95\xef\xa6\xf1\x61\x01\x5a\x9d\x06\x25\x6f\x7d\x59\x2f\xf2\x2a\x67\xf3\x57\x2a\xa7\x5f\x0c\x60\xaa\x2e\xf7\x40\x7b\x5d\x54\x91\x93\x2f\x4e\x62\xc6\xb8\xe3\x33\x5e\xd0\xaa\xc0\xcc\x7e\x3e\xe1\xa1\xef\xc9\xe0\x5f\x37\x24\xb8\xb1\xbe\x3e\x21\x67\xb2\x82\xb1\x33\x2a\x48\xc1\x5c\x16\x40\x8b\x2b\x16\x28\x6a\x44\xf9\x67\x3c\x13\x48\x1e\xc2\xba\x88\xc8\xf4\x20\xe0\x9b\x3b\x6e\xd0\x72\x32\xad\x02\x4f\x57\x0d\xb1\xe7\xc2\x50\xd7\x11\xf9\xd6\x52\x67\xcb\xf1\x20\x6c\xe4\x40\x6a\xf1\x8d\x97\x7b\x32\x2f\x47\x85\xb7\xa4\x8c\xdb\x93\xaa\x8d\xac\xda\x84\x5f\xf0\x69\x74\xab\x04\x27\x5c\x7f\x60\xa5\xdc\x2b\x8f\x8b\x5d\x2e\x19\xb4\xb8\x36\x0f\xa4\xe2\x50\xc1\x9c\x6a\x42\x11\x47\x65\x75\x41\x8d\xd4\x8b\x06\xab\x24\x46\xd4\x8e\xb3\xc4\x7e\x7e\x0c\x6b\xc9\x05\x11\xf5\x56\x91\xe2\x67\x32\xb0\x58\xbd\x53\x63\xea\xab\x24\x43\x01\x15\x2a\xc8\x8d\xe0\xfa\xd2\x77\x8b\x81\x96\x85\x14\xd6\x2f\xce\xf4\x6d\x6d\x60\x13\xae\x6d\x7a\x78\x1c\xca\xfc\xec\x7a\xeb\x18\xb4\x29\xd6\x02\xd5\xdd\xfd\x2a\x8e\x6e\x43\x6b\x0e\x6d\x5f\xf2\xb7\x2b\x98\x7e\x10\xe9\xdb\xd7\xc8\x77\x09\xd0\xd0\x3f\xa1\x79\x1e\x4b\xba\xdf\xb9\x3a\x54\xae\x92\x92\xac\xb0\x4e\x2e\xc2\xd1\xe9\x68\x74\x3a\x02\xb6\xe1\x74\x74\xea\x58\xcb\xc2\x3b\x85\x5b\x2a\xdc\x0c\x9b\x56\x6e\xb0\x7d\x5b\x46\x84\x7c\xe3\xf2\x34\x40\xf2\xe9\x25\x0f\x74\xef\x5c\xde\xd4\xd0\xc6\xb4\x7d\xed\x3b\x17\xa5\x29\x06\x1d\x76\x7d\x1f\x4e\xdc\xba\xac\x4f\xf8\xdc\xe6\xa5\xdd\xab\xe9\xab\x99\x60\x22\x3c\x84\x2b\xb3\x4a\x84\x0f\x5f\xef\x77\x66\x88\x44\x92\xe7\x65\x71\x8f\x9d\x55\x26\x67\x33\x2c\x8b\x36\xf5\xb2\x70\xe3\x10\x1e\x8b\xf8\xe2\xd5\x17\x58\x22\x6e\xdc\x71\x0f\x13\x51\xba\xeb\x74\x49\x5d\xe1\x1f\xdb\x3c\x29\xa2\x11\xaa\x00\x2d\xaa\x29\xad\x98\xc2\x52\xee\xb6\x70\x75\x77\xbd\xd3\x25\x2c\xef\xc7\xd8\xae\x6a\x6c\xa6\xb8\xb3\xb2\x71\x2d\x99\xb6\x15\x25\x95\x4b\x6e\x67\x49\xf2\x2b\x3f\xde\xab\x0f\xd7\x17\x57\xef\xae\x47\xb3\xed\xda\xb5\x03\xa0\x66\x26\xf2\x52\xf2\xee\x0c\x65\x43\x52\x52\xbd\x3d\x7f\x78\x3c\xfa\xf6\x83\x1e\x02\x7d\xfb\xce\xdd\xe5\x71\x0f\x82\x3a\x9c\x36\x7f\x5f\x00\x18\x5a\x96\xb2\x90\x93\xa8\x44\xd5\x4f\x3b\xe1\x5f\x63\x2c\xcb\x90\x0e\x63\x2a\x7f\x26\x89\xcf\x7a\x7a\x18\xc9\x59\x4f\xdd\x5e\x36\x1b\xe6\x65\x44\x1d\x15\xd9\xfb\x42\xf7\xec\xd9\xa4\x88\x95\x8d\x44\xbd\x0e\xe0\x40\x57\xa4\xb4\xa9\xb7\x59\xb2\x6a\xc6\x31\x36\xf5\x98\xe2\xc5\x81\x4f\xa8\x5b\xb2\x30\x54\xe0\xb6\x13\xac\xd3\x8e\xc6\xf5\xd9\x26\x43\x65\xc5\x86\xbe\x20\xd8\x98\x17\x10\x7c\xd7\x70\x30\x01\x55\xea\xe8\xde\x69\xca\x9d\xd2\x1d\xfb\x28\x16\xcb\x1a\xf3\x86\x1b\xf7\x36\x0a\x4c\x84\xde\x5d\x40\xd6\x57\xff\xb5\x9a\x49\x3a\xc1\x82\x5e\x95\xcd\x43\x5c\x56\x7c\xce\x0b\x36\x81\x52\xe8\x5c\x4c\x54\x93\x53\xd2\x1a\x8d\x3b\x06\x80\xf8\x47\xd6\xd0\x61\x6f\x16\x7c\x07\x26\x60\x9f\x26\x0b\x81\xfa\xfd\x37\x1f\x89\x60\x38\x58\x27\x78\x3e\x51\x88\x35\xd3\xe9\x24\x44\x87\xd0\x92\xef\x8f\xf8\x1d\x14\x4d\x3b\xf3\xd7\x3a\xc0\x8d\x54\x61\xa2\x0e\x11\x51\x3e\x25\x6a\x31\x2b\xb8\x78\x18\xf8\x02\x73\x63\x69\x53\xeb\x32\x62\x7e\x70\xe0\x5c\x31\x5a\x3c\x85\x18\xec\x1d\x08\x48\x1a\x21\xd0\x07\xb2\x5b\x00\x23\x69\xee\xea\xbf\x39\xb4\x83\xba\xa2\x44\x2c\x1e\xe1\x87\xf0\xe2\xb6\x95\xcf\xe8\x64\xaf\x8e\xce\xd0\x61\x0b\x6d\x0b\xf2\xcd\xe5\x8d\xaf\x13\x19\x2a\x6a\xf0\x5d\x59\x11\x5a\x69\x3e\xa6\x99\x3e\x27\x65\x0d\xd5\x7c\xa0\x36\x89\x25\xb3\xf6\x76\x6c\xf0\x82\xe8\x98\xce\xc7\x46\x6c\x06\x97\x34\x25\x8b\xb9\xe9\x5f\x43\x51\x70\x90\xf3\xeb\xd2\x3a\x51\x60\x00\xb0\x2d\x0e\x75\x5b\x17\xc5\xad\x2c\x78\xb6\xf0\x85\x2d\x50\xdd\x94\x1b\x54\xd4\x89\x8b\x2e\x8a\x47\xba\x50\x6f\xc2\x99\x13\x0a\xcf\x08\xd5\x9a\xcd\x4a\x04\x19\xb3\xdc\xe5\x04\xd7\x8d\xc6\x09\x0b\x2e\xbb\xc2\xfa\x63\xca\x0b\x7f\xf7\x6b\xfb\xa0\x13\x97\x0f\xc9\x7b\x36\x67\x55\x7b\x26\xc2\x3c\x82\x4e\x54\x7b\x74\xd8\x78\xe0\x66\x6a\x05\xf2\x1c\xd6\xd2\x58\x39\xa8\x8e\x59\xf2\xf1\x52\xb7\x58\x87\xc6\xc2\x44\xf7\x94\x6f\xc6\xef\xa5\xbe\xc5\xb7\xdb\x33\xc7\x39\x6f\xe8\x9f\x16\x86\x1b\x5b\xb8\x71\xcc\x61\xe6\x5c\x3d\x3c\x69\xb2\x5e\xfe\x0c\xb7\x3c\x1e\xe8\xa0\xf2\x72\x85\x09\x2c\x01\xf2\xec\x68\x06\xfa\xe0\xb7\xdc\x2c\xcb\x42\x7c\xc5\x6c\x08\xfd\xc0\x02\x61\x18\x32\xcf\x1e\xa1\x22\xbf\x6e\x2a\x44\x5b\x55\x53\x26\x67\x8c\xd0\x39\xe5\x05\xbd\x2f\xc0\xb3\xc4\x74\x6e\xfb\x8a\xd0\x38\x5c\xc0\xaa\xc0\xa2\x2a\xdd\x0d\x31\x67\xed\x61\x13\x4f\xdf\x26\x1b\x0a\xaf\x0d\x4e\xa0\x90\xd9\x43\xc8\x6f\x40\x45\x33\x78\x05\xe3\x10\x72\xf0\xc1\xa4\x79\x4e\x14\x9f\x08\x28\x89\x2d\x34\x29\xa8\x66\x22\x5b\x8c\x88\x4d\xe1\xad\x82\x8a\xe1\xba\xe2\x3e\x8e\x41\x40\xbd\xfe\xa6\x4a\x6a\xf6\x20\xc7\xe3\xa5\x0a\xe3\xd6\xd4\x6b\x11\x05\xae\x9e\x2a\x29\x70\x70\xa6\x14\x9d\x44\x21\x8a\xe5\x92\x41\xb8\xf3\x36\xe9\x84\x43\x47\x2e\xa3\x84\x73\xd5\xaa\x5c\x28\x70\x13\xea\xeb\xa1\xad\xaa\x85\xe6\x33\xb6\x94\x6d\x95\x80\xbe\x7a\xc5\x65\xc3\x0c\x65\xd3\xd1\x42\x20\x8e\x0d\xec\x75\xa5\x78\x78\x6e\xe7\xb7\x62\xdb\x5e\x46\xa8\xe0\xdf\x18\xb3\xde\x00\x2f\x03\x2c\xba\x25\x42\x51\x6f\x9b\xe6\xa7\xe1\x52\xce\x20\xae\xb8\x39\xe8\xef\x7f\xfb\xc3\x68\x1e\xda\x54\xe0\x73\x43\x3e\xcf\xcd\xcc\x66\xac\x9a\xb8\x5a\x33\x33\x2a\xf8\x98\x29\x73\xea\x0b\x03\x22\x56\x6f\x09\xc5\xa8\x1e\x0d\x70\xa0\xf7\xc8\xd2\x42\x3a\x71\xdb\xc7\x25\x9d\x68\x70\x4a\x8d\x58\x76\x56\xc9\x73\xd8\x5f\x48\xe7\xf5\x89\x65\xb5\x86\x7b\x02\x5e\x03\xe4\x4c\x48\xf3\xac\xd3\x06\x7a\x57\xdf\x23\xc3\x05\x03\x2c\x4d\xd7\x55\x5e\xd3\xc1\xd9\x74\xee\x96\xaa\xef\x4d\x87\x9d\x23\x7f\x9c\xba\x0a\x3d\xd0\xa3\x62\x59\x5d\x71\xbd\x30\x28\x8d\x7d\xd2\xa3\xb1\x82\xda\x25\x97\x90\x96\xc3\x12\xac\x29\x05\xa5\x18\xba\xb7\xe2\xb5\x68\x00\xd6\x00\xd1\xd1\x7d\xf1\x4a\x4f\x4d\x0f\xc1\xbf\xd9\x65\x8f\x2d\xd2\x32\x50\xd7\x80\xb6\x1a\x91\x5b\xa9\x14\x37\x67\xee\x73\x39\x45\x39\x28\xbf\x18\x1a\x6e\xda\x67\x47\xc5\x09\x48\x2a\x2f\x9b\x8e\x77\xaf\x20\xe4\xef\x11\x1e\xcc\x38\x6f\x20\x21\xaa\x26\x9a\x4e\x96\xca\xa5\xc8\xaa\xb5\xe8\x26\xef\xf6\x9e\x6d\x29\x76\x8d\x87\xb8\x4d\x1f\x9c\xc0\x4d\x6e\x96\x01\xa6\x1d\xd3\x61\x33\x31\xc5\x6c\xe3\x97\x6c\x4a\xe7\x6c\x2d\xe2\x2f\x65\x3e\x5a\x83\x2b\x01\x58\x63\xba\x36\x8c\xba\x0f\x9d\xf0\x59\x81\x94\x62\x33\x48\x46\xb2\x81\xd4\xac\xa3\x9b\xf7\x0b\x52\x48\x09\xc9\x25\xea\x92\x08\x99\x33\x03\x66\xe0\x9a\x41\x0b\x35\x20\x77\x17\xf6\xc5\x32\x18\x12\x13\xc5\x01\x57\x54\xb2\x6c\xcd\x0b\x07\x90\xb5\x83\x1c\xe8\x48\x28\x63\x3c\xe7\x5a\x91\x0f\xd2\x86\xec\x34\x65\x78\x6c\x71\x92\x82\xcd\x19\x18\x17\xc7\x7c\x42\x30\xf9\xfa\xcc\xa6\xe3\x73\x9e\x52\xb2\x82\x94\xd6\x15\xcf\x63\x04\xe4\x65\x9a\x6e\x0e\xe4\x51\x56\x0f\x85\xa4\x79\x90\x8b\x48\x91\x82\x3f\x30\x72\xc5\xca\x42\x2e\x6c\x0e\x3d\x91\x93\x3b\x4d\x35\x1b\xd7\xc5\x5d\xd4\x46\xc6\xca\xbc\x2a\x53\x7c\xaf\x32\xaf\xe9\x70\x49\xe6\xbd\xb9\xbb\xbc\xbb\x79\x91\x3e\xbe\x09\x3a\x64\x58\xd8\xf3\xd9\xbd\xf8\x4f\x5d\x96\xec\x21\x29\xea\xee\x77\xd0\x37\xe0\x56\x56\x9a\x16\x7b\x62\x68\xb2\x29\x2d\x2f\x6a\x3d\xbd\xe2\x0a\xea\x12\xa5\xf2\x35\x2b\xdf\x07\xf9\x84\x18\x28\x88\x2d\x2b\x49\xb8\x03\x24\xfb\xde\xe5\xbf\x5d\xdc\x12\x5a\x9b\xc3\xd7\x3c\x03\x22\xb8\x37\x55\x7e\xb8\xb2\x3b\xcc\xb3\xb9\xe3\xba\xec\xd7\x1d\xab\x72\x6f\x1d\x7a\x4d\xcf\x15\x19\xdd\xbb\x3d\x1f\xd1\xed\x19\x90\xd5\x3e\xb9\x2c\x2e\xb8\xe6\x54\xcb\xea\x50\xfe\xa2\xad\x01\xbc\x1b\x49\xad\xb4\x9c\xd9\x0b\x72\xe3\xde\x80\xf8\xa2\x48\xe3\xc0\x4a\xb7\x8d\x17\x0a\x98\x2c\x61\xa3\x6e\x84\x66\xd5\x98\x66\x6c\x29\xb7\xc7\x00\x34\x4d\x38\x3a\x77\xef\x44\x8c\xfb\x67\xeb\x80\x05\x65\xa0\x8b\xbf\xbc\xf9\x73\xe0\x41\xfd\x17\xcf\x97\x59\xfd\x56\xc8\x82\x09\x96\xc5\x68\xa9\xd2\x4e\xee\xa7\x54\xbc\xc5\x7f\x12\x4b\x9e\x64\xb8\x05\xff\xb7\xa6\x05\x6e\x5d\xdc\x01\xa4\x4c\xb2\x75\x0c\x07\x81\xaf\xf6\x41\xdb\xf5\xf9\x53\xc5\x98\x35\xc0\x27\x28\x27\x0a\xbb\x68\x5d\x51\xa1\xcc\x41\xa6\x4a\x48\xa7\x96\x47\x3c\x25\x67\x3a\x2b\x23\x1c\xcb\x93\x82\x3e\x7d\xc0\xa7\xfd\x47\xc7\x07\xe9\x99\xb1\x8a\x5a\x84\x5c\x1c\x6e\xc6\x47\x04\x87\xaf\x7d\x66\xac\xd8\x55\x1d\xc4\x77\x1d\x6e\xd7\x41\x5c\x72\x6c\xd7\x1e\x4a\xc2\xc5\x23\xeb\x44\xbe\xe6\x4a\x63\x0e\x0d\x7c\x19\x62\xa8\x31\xcb\x90\xe1\x78\x6f\x8d\x68\xc0\xcb\xff\xa4\x79\x5e\xbd\x41\x2a\xef\x94\xdd\x55\x4c\x88\xbc\x91\x4b\xb4\xaf\x90\xe8\xc4\x8d\x33\xbd\x28\x6d\x39\xfe\x8f\x97\xb7\xd0\x97\x22\x7f\xfa\xd7\xd7\xc0\x02\xff\xcb\xef\xff\xf5\x75\x34\x98\x7d\x96\xe9\x88\xc8\xff\x40\x37\xfa\x63\xa4\xb9\x68\xa5\xaa\x80\xf4\xce\x86\x07\xbd\xc3\xac\x0e\x86\x3c\x59\x54\x88\x17\xc0\xc0\x9a\x27\xab\xbb\x71\xaa\x7d\xae\x85\x3e\xd7\x42\xd3\xfa\x5c\x0b\xeb\x27\x16\x48\xea\x07\xf1\xf4\x08\xfa\x87\x6c\xba\xab\x54\x0e\x09\xdc\xed\xe7\x48\xe0\x3a\x0f\xb4\x1b\x5d\xa4\x6d\x69\x18\xdf\x16\x97\xd0\xac\xc9\xff\x75\xf5\xfe\xee\x3f\xbf\xbe\xf8\xf2\xfa\x6b\x58\xa7\x0d\x98\x33\x60\xcd\xc5\x13\x34\x59\x47\xb8\x44\xb1\x7b\xbd\x5f\xcf\x7c\xb1\xe4\x93\x2f\xc8\xfb\xb7\x77\x89\xee\xf8\xfb\xdd\xce\x65\xf9\x5b\x8c\x63\xf6\xed\xb8\x1e\x7f\xe6\x25\xc5\xaa\xfd\x25\x07\x3c\xa8\x63\x60\x50\xf0\xb5\xa5\xc5\x31\x27\x8d\xab\x38\x82\x1a\xa5\xeb\x18\xc9\x67\xe2\xbc\x6d\x36\x0d\x37\xf2\x45\xba\x6d\x1f\xe6\x48\x62\x79\xe6\x2a\x3d\xc3\x65\x64\x5e\xb8\x2a\x48\x83\x69\x10\x12\x92\x88\xca\x10\x4f\x43\x36\x99\x52\x8e\x60\x7c\xae\x50\x5d\xae\xab\x59\xb1\x4f\x54\xbf\x76\x00\x5b\xaf\xc2\x15\xdc\x08\xbc\xe2\x5b\x36\xd9\x2e\x73\xd2\x86\x7a\x24\x81\x91\x14\x08\x60\x49\xb3\x6e\x52\xbe\xb7\x82\x46\xcb\x35\x4a\x20\xab\xff\xd1\x89\x09\x8c\xba\xc7\x3c\x2b\xbe\xbf\x43\x5c\x34\xdf\xf9\x72\xca\x59\x9a\x72\xc4\x84\x2a\xef\x32\x57\x37\x45\x40\x62\x73\xd3\x3e\x33\x0c\x90\x17\x48\x89\xfe\x7e\x30\x05\xca\xbe\x95\x27\xe5\x54\x6a\x29\x0e\x97\x01\x6b\x5d\xff\x6d\xc4\x75\x0b\x6f\x5c\x36\xf5\x88\x1a\x18\xc0\x24\x18\xde\x4e\xbe\xe4\x0e\x6e\x6d\xe2\x69\x9e\xe0\x61\xac\xe9\xed\xba\xb9\x6d\x0f\x3b\x5d\xbb\x9c\xc3\xa7\xbb\x4b\xc9\x11\x75\x73\xb5\x27\xcc\xd5\x27\x92\xc6\xf6\x42\x4b\x7e\x98\x93\x4e\x3c\x1c\xf3\x89\xdb\xf5\x9b\x2b\x2b\x68\xb8\x34\x7b\xca\xde\x07\xb2\xf9\x2a\xee\x8d\x77\x92\x95\x7e\x94\xd5\x01\x12\xec\xb7\x7b\x5e\x8a\x1b\xb4\xbf\xad\xa4\xd7\xdc\x3b\x5e\x69\x4f\x22\x29\x5f\xde\xf2\x0a\xcc\x8e\x76\x0c\xbd\x21\x59\xde\xa7\x7c\xe4\xfa\x1a\x65\x72\xd6\x2a\x5c\x38\x65\xc8\x07\x5c\xde\xdd\xbc\xe3\x13\x9c\x8a\x9b\xb5\xab\xe9\x35\x9c\x50\xdd\x35\x34\x57\xa4\xcb\x66\x7b\x00\x1c\x87\xe7\xf7\x39\xe0\xb9\x3b\xc0\x73\x01\x14\x6e\xc3\x77\x2f\x15\xdd\x3d\x2f\x9a\x3b\x0a\xbf\xf6\x8b\x4a\xf9\xee\xae\x47\xe2\x8e\xb9\xcf\xac\x12\xd6\x9c\x75\x43\x1a\xa8\x47\x6a\xf6\xbd\xbd\x91\x82\x4a\xfe\x03\xf0\x56\x02\x15\xf0\xdf\xa0\x95\x16\x50\x28\x2d\x0a\xb3\xab\x52\x34\xd5\x53\x54\xe3\x9c\x8b\x9e\xac\x33\x5a\x5a\x47\xdd\x5c\x3e\x8a\x47\x5a\xe5\xe4\xe2\xf6\x66\x3f\xd8\x2b\x21\x21\x12\xc2\x5a\x5c\xad\xc2\x1d\x52\x22\x35\xdd\x03\x65\xd0\x58\xeb\x92\x91\x7b\xae\x55\xab\x66\x6e\xa0\xf2\x32\x64\xcf\x3b\xe5\x40\x44\x4c\x53\xb8\x31\x89\x0d\x13\x44\x66\x9a\x16\xd6\x96\x76\xcf\xf4\x23\x63\x82\xbc\x7e\xfd\x1a\xed\x18\xaf\xff\xf8\xc7\x3f\x82\x27\x39\xc9\x59\xc6\x67\xab\x2f\xc2\x5b\xff\xdf\x17\x5f\xc4\x0c\xfa\xef\x17\xef\xbe\x26\x34\x03\x99\x12\xeb\x13\xe1\xd8\x70\xc0\x61\xf7\x6a\x40\xfe\xcf\xdd\x37\xef\x9b\x7a\x96\xed\x5f\x01\x7e\xfc\x16\x45\xc9\x62\x36\x1a\x8a\x43\xbc\x5a\x63\xab\xa0\x7a\xea\x63\x80\x28\x58\x3a\x83\x48\x31\x7b\xf7\xa3\x1c\xfd\xa0\x64\x01\x9f\x4c\x61\x53\xb9\x00\xf8\x2d\x78\x66\x93\x51\xa1\xf5\xc8\x55\xf6\xc0\x84\x01\x18\xe4\xe3\xc8\x4b\xc4\x18\x66\xc1\x03\x74\xb7\xb6\xc1\x43\x4d\xb1\xf3\x8a\x29\x23\x6a\xda\x5a\xbf\x38\x5c\x03\x43\x51\x25\x71\x0f\xe7\xfc\x62\x2f\xf7\x41\xf4\x96\x16\x6f\x58\x16\xb9\xe0\x4a\x07\xe5\x3c\x2d\xda\x01\x15\x31\xb9\xa6\xd9\x94\x30\xa1\x21\xd1\x16\x1e\xb0\x79\x3d\x62\x90\x29\x15\xb9\xb9\x61\x50\xf7\x01\x06\x7c\x26\xcf\x95\x5d\x7c\x01\x6e\xfd\x1e\xb4\xa2\x22\x1b\x8c\x4c\x8d\x04\x1c\x82\x69\xc3\x98\x04\x91\x67\x91\xa5\x71\xaf\x3f\x51\xc8\xc7\x61\xb6\x0a\xd5\xc5\xca\x46\xc1\xa9\xb0\x4a\x59\x4c\x67\x89\x35\xf5\xd3\xfc\x2f\x08\xc9\x30\xcd\xca\xc7\xaa\x56\xfa\xcb\xda\x1c\x70\x6c\x4d\xd4\x5d\xab\xd0\x5e\xae\x8c\x88\xae\x0f\xd6\xde\x07\x5a\xe0\x2c\x63\x0a\x41\xf9\x47\x0c\xae\xd1\xcd\xdb\x3f\xe2\x46\x46\x8f\x27\xc7\xeb\x86\x74\x21\xb2\x5c\x18\xdc\x4f\x6b\x2d\x87\x50\x06\xdd\xa5\x66\xe9\x0c\x92\x6e\xda\x45\x51\x4e\xe9\x00\x2a\x09\x7b\x26\x76\x75\xc4\x00\x00\xc3\xda\xc3\x09\xe3\x6c\x59\x85\x41\x78\xd6\xd0\x0f\x90\xd5\x54\x8c\x16\x74\xc6\x20\xac\x0b\x27\x16\x3d\xd8\x52\xb5\x3d\xc5\x27\x82\x55\xa8\xa5\x85\x60\x5f\x52\xd0\x7b\x56\xd8\xa1\x64\x95\xb0\x8c\xaf\x5c\x08\x1d\xab\x0c\xf6\x54\x84\x4e\x26\x15\x53\x8a\xcf\x99\x8d\x96\xe6\xff\x6c\xaa\xfc\x4d\x19\xb9\xbd\x7e\xe7\x62\xc6\x15\x31\x8c\xad\x66\x31\x19\x02\xb1\xf9\xfc\x94\x06\xb4\x1a\xd9\x63\x44\xc8\xb5\x92\x1a\x6a\xd7\x99\xfe\xed\x91\x28\x5f\x3d\x1b\xbc\x4c\x87\x10\x1c\x9e\xb2\x67\x4d\xe8\x0f\xc6\x95\x4f\x19\xcd\x5d\x80\xad\x61\x29\xcb\xd2\x48\xd2\xe4\xd2\x5c\xd1\x31\x37\x82\xb5\xb2\x21\xd8\x79\x6d\x44\x15\x1a\x91\xfc\xad\x69\x1f\xa7\x8c\xc8\x2a\x67\x58\xfb\x7d\x0c\xce\x3c\xbe\xdb\x80\xbe\x43\xae\x21\x6e\x46\xba\xe7\xba\xa2\xd5\x02\x29\xa6\x3d\x89\xe8\xe1\x0c\xce\xc4\xfa\xf9\xd0\x2b\x8c\x0c\xb1\x54\x24\x26\x59\x9e\x6b\x89\x08\x8d\x24\x48\xd8\x4d\x8b\xb2\xad\xbb\x96\x8a\x33\x4d\x03\xf0\xbf\xb3\xd0\x1f\xff\xd9\x53\x8a\x77\x13\x82\xe3\x81\xc8\xb0\x8a\x0c\x7c\xb8\xbf\xce\xa6\x96\xae\xb7\xaf\x28\x21\x28\x09\xd2\x94\x92\xfc\xc4\x85\x61\x73\x87\x04\xbc\x57\x3e\xd3\x23\xc3\x40\xeb\x9a\x16\xc5\x62\xc8\x3e\x19\x52\x62\x2e\x31\xd0\x50\xc8\xbf\x09\xee\xfc\xb5\x50\x4c\x0f\x92\x86\x84\xcb\x57\x56\x98\x58\x42\x91\x13\x5c\x93\x90\x90\x69\xea\x04\xbb\x35\x82\xc0\x7d\xad\xd1\x05\x6e\xb0\xfe\x93\xb4\x75\xce\x59\xb5\xb0\x23\x24\x7c\xb8\x03\x38\x93\x1d\x61\x8e\xc0\x1d\xd4\xd9\xf4\xfa\x53\x59\x61\xe8\x51\xe2\xd7\x4b\xe0\xb7\xdc\x19\xa6\x63\x72\xdc\x63\x1b\x7c\xdc\x25\x04\x0c\x87\x4e\x66\xe1\x13\xc0\x62\x17\xef\xaf\x52\xd0\x17\xb6\x14\x16\xb1\xdd\xa2\x19\xc6\x76\x7b\xca\x0d\xc4\x76\xb1\x65\x6f\x6c\x4a\x2b\xf7\x0b\x66\x5d\x76\xc5\xd3\x9c\x54\x47\xc9\x03\xb3\x48\xd8\x48\x9e\xa0\xec\xb2\x2f\xef\x30\x9d\x8a\x41\x3c\x37\x06\xa8\xb3\x05\x74\x8b\x23\xa5\x9e\xc5\xce\xe0\xec\x26\x92\x8a\xa7\x9b\x36\x34\x53\xdf\xe9\x3b\xb7\x7d\xc9\x1f\xef\x7a\x07\xb1\x3d\xb0\x08\xd5\xde\xba\xd6\x82\x3f\x73\x5e\x4e\x6a\x03\x98\x32\x0f\x7c\x8c\x9c\x07\x23\x0a\x49\x9b\x15\xd1\x32\xfd\x48\xc9\x2e\x1e\xb3\xed\xe6\xb6\x78\x0f\x0b\xde\xe9\xc2\x85\x73\x68\xdb\x46\x1e\xd8\xe2\x54\xe1\x0d\x30\x18\x6c\xca\x4b\x2c\x3a\x66\xc8\x83\x91\x80\x77\xbc\x06\xd8\xbe\x83\xb4\x35\x6e\x60\xc4\x71\x37\x62\x40\xde\x4b\x6d\xfe\x77\xfd\x89\x2b\xcb\xed\x5d\x49\xa6\xde\x4b\x0d\x4f\x9e\xe5\x84\x70\xa1\xcf\x79\x3e\x56\x27\xc5\xc1\xb9\x13\xd0\x39\x08\x0e\xb0\x20\x77\x0e\x2e\x77\x88\x3f\x4b\xae\xc8\x0d\xa4\x2c\xc7\x2d\xdd\x71\x68\xf0\xdf\x75\xb9\x51\xcc\xc0\x4e\xc6\x86\x9c\x39\xd6\x93\x7e\x75\x64\x7b\x7e\xb2\x6a\x1d\xdf\xde\x27\x61\x27\x00\xba\x31\xfc\x05\x52\xb9\x95\x05\xcd\x58\xee\xf2\x52\x51\xb3\x53\x54\xb3\x49\xa7\x8f\xf9\xa6\x36\x63\xd5\x04\x54\x79\x59\x54\x7e\xc4\x35\x0b\xd8\x99\x10\x63\xdb\x91\x1c\x87\x83\xef\x0c\xfe\x4f\x8c\x50\x3a\x60\x67\xc0\x63\x7d\x6d\x50\xfb\xd3\x78\xb5\x1d\xee\x65\x30\x34\x72\x25\x33\x5a\x9a\x3b\xf9\x5f\x86\xf9\x00\x50\xfd\x6f\x52\x52\x5e\xa9\x11\xb9\x70\xf9\xb2\xc2\xdf\xac\xf4\x18\x74\xb3\xc3\x14\x4a\xf0\x08\xfe\xa9\xe6\x73\x5a\xd8\x4c\x1c\x54\x10\x86\xf9\xc4\xcc\x6c\x96\x99\xd0\x01\x79\x9c\x4a\x85\x9c\x8c\x0f\xbf\x39\x79\x60\x8b\x93\x41\x92\x06\xc3\xb5\xf0\xc6\x9f\xdc\x88\x93\x46\x5b\xdc\xba\xad\x9e\x47\x03\xaf\xda\x13\xf8\xed\x64\xff\x7c\xee\x4e\x9c\xd5\xae\xd5\xaa\xd7\x4d\x20\xf9\x8a\x3d\x25\x1e\xa6\x69\xf1\x91\x5e\xd8\xf6\x21\x26\x3b\x98\x5e\xa3\x38\xbb\x5f\xb8\xcc\x71\x56\x50\x5d\x95\x63\x93\x86\x04\x99\x37\x90\x8f\x0d\x88\xb5\x54\x04\xe9\x22\x65\xe2\x41\xb9\x94\x38\xc7\xda\x64\x43\x4f\xab\x9a\x0d\x48\x2e\xc5\xa9\xb6\xea\xae\x30\xbb\xe2\x72\x3e\xab\x7c\xcd\x39\x9c\xa9\xf3\xa4\x41\x69\xc5\x20\xc1\x96\xcb\x16\x69\x35\x0c\x98\x69\x11\x34\x9d\xda\x79\x88\x98\x3f\xd7\x0d\x19\x1f\x90\x67\x87\xb4\x61\x79\x42\x02\xee\x82\xfc\xdd\xe1\xb0\xcd\xa1\x07\x83\xb7\xb5\xa7\x49\xe3\x6d\x03\x22\xc0\xe2\x4d\x98\x20\xaa\x45\xfe\xc9\x2a\x99\x34\xc2\x1a\xd5\x51\x3a\x74\xc6\x59\xf4\x9b\x16\x17\x78\xd2\xb4\x16\x68\x7e\x00\xf6\x7e\x6e\x0d\x95\x90\xa0\x33\xc8\x4b\x52\x49\x3c\x1a\xf0\x79\x80\x1f\xee\x61\x55\x07\xbf\x72\xcd\x51\xbd\x50\x05\x60\xa0\xb5\x4f\xa3\x56\x1d\x5a\xbd\x8f\x53\xd6\x68\xe4\xe5\xd8\x56\x7f\x47\xa3\xc3\x53\x41\xd1\xe7\xda\xa8\x05\x26\xae\x40\xab\xf8\x2e\xea\xf1\x1d\x8e\x15\xfd\x2d\xde\xd1\x72\x27\x2b\x98\xff\xba\x55\xe6\x9f\xde\xcb\x5a\xbb\x74\x21\xf6\x77\x28\xa6\xac\xa5\xb3\x3f\x1e\x4e\x75\xbe\x8b\x8e\x23\x99\x91\x7f\x0a\x48\xa3\x27\x4c\xdb\x0f\x6b\x40\x18\xcd\xa6\x86\x03\x1c\xa2\x9b\x85\xe1\x52\x1d\x3b\x7a\x65\xb6\x0e\x19\x43\xb9\x4c\x62\xd2\x80\xcf\x9f\x86\x03\xb9\xc0\x3f\xc7\x99\x8d\x9c\xcb\xa5\xb2\xae\x6b\x96\x39\x15\x4d\xe8\x42\xd2\x98\x4e\x3d\xe7\x72\x20\x5b\xd5\x0f\xac\x12\x64\xd4\xa5\x92\x59\x46\xf6\x60\xb9\xf9\xcc\x5f\x8c\xa4\xf1\xd6\xac\xa8\xc9\xa6\x63\xb0\xa9\xf5\x2b\xaa\xc5\xca\x48\x86\xe0\x25\x8f\x86\xa9\x35\xcd\x42\xa8\x53\x6d\x05\xd9\x7b\x20\x29\x34\xf8\x9b\x37\x79\x2d\xed\xa9\xfa\xc3\x48\x13\xbf\x83\x23\x52\xcc\xe7\x74\x66\x55\x25\x2b\xb3\x26\xa6\x14\xe1\xb0\xcb\x33\x5a\x3d\xb0\xdc\x73\x49\x23\x72\x6b\x16\xef\x64\xf4\xa4\x31\x2b\x47\x8d\x5c\x6e\xe8\xb0\xfa\x9a\x99\xd0\xe9\x68\x74\x6a\x4b\x25\xac\xd6\x62\x4b\xc6\x5e\xa9\x02\xf9\x0e\x62\x78\xeb\xfe\xbe\xa3\xa5\x42\x75\x84\x61\x6f\x40\x1d\x29\xa1\x08\xa2\x9e\x3a\x9b\x22\x4d\x08\xb1\x59\x5e\xce\x0e\x02\xd0\xae\x6a\xe5\x5d\x54\xca\x49\x86\x43\x6c\xbb\xab\x91\x77\x52\x21\x6f\x52\x1f\xdb\x93\xb2\x37\x7e\x57\xcd\xff\x4e\x1a\x98\x59\x94\x4b\xe0\x72\x7b\xba\xda\x11\x5c\xbb\xb8\x22\xdf\x38\xd9\x27\xce\x61\x50\x4f\x6d\x89\xef\x5d\xf4\x64\xcf\xe2\x31\xb8\xdc\x9e\xcf\x83\x70\xb9\xdd\x8c\x31\x71\xf8\xda\x4a\x8f\xa1\x4b\xa7\x67\xeb\x22\x53\xee\x2e\xb7\x63\xb8\x16\x2e\xb7\x03\xbb\x1a\x2e\xb7\x34\xd7\xc3\xe5\x96\xe2\x8a\xb8\xdc\x52\xa5\x33\x6c\x4f\xbf\xc0\x61\xd9\xb7\xaa\x25\xe4\x59\xd6\x0e\x58\x2e\x10\x75\xcb\x00\xc9\xed\x74\x6f\x2d\xa1\xc6\xab\x4b\xef\x95\x2c\x6a\x1d\x5f\x5b\x6e\x53\x77\x21\xdd\x87\x89\x3b\xcd\x66\x2a\xb1\x5f\xee\x38\xe0\x1b\x80\x6b\x43\x72\xbc\x5b\xaf\xfb\xd0\xfc\xed\xae\x05\x3f\xa6\xea\xef\x29\x09\x9f\xb0\x1d\x3b\xed\x13\xb6\x23\x27\x7f\x72\x83\x3e\x25\x05\x14\xb6\xe7\x4d\x04\x85\x6d\x47\xf0\x4e\x49\x0a\xe5\xda\x93\xb5\xac\x3e\x73\x39\x52\xcc\x85\xcf\x2c\xdc\x12\x82\x20\x51\x93\x56\x28\x8d\x39\x3b\xa2\x2d\xd3\x72\x60\x55\xdd\xd3\xd5\xfd\x2e\x46\xe5\xe2\xf6\x66\x27\x2d\x4a\xf0\xfd\x06\x3d\x4a\xf8\xc6\x2f\x58\x93\x72\x83\xaa\x91\xd0\x27\xeb\xaa\x59\xb9\x8d\xb3\x4c\x64\x6d\x9e\x47\xa6\x5c\x99\xf6\x5b\x43\xd7\xc3\x5c\xa5\xc1\x39\x6b\x69\x43\x7a\x1a\x0e\xc0\x52\x59\x57\x8f\x07\x7d\x79\x53\x9c\xc0\xc9\xf3\xc8\x9f\x47\x94\x25\x61\x3f\xa2\xf2\x48\x2e\xb7\xd6\x49\x9d\x36\xe5\x33\x50\xd9\x8c\x8a\xaf\x40\xdb\x56\xca\xfc\x0d\x1a\x49\xa9\x10\x12\x4b\x42\xa9\x01\x1a\x2a\xd4\xc0\x9a\x61\x82\x14\x1d\x22\x27\x35\xcf\xd1\x03\xda\x67\x17\x38\xfd\x9c\x1c\xd3\x60\xf9\xb7\xa9\x47\x49\x9e\xec\x61\x46\x4b\xfe\x1d\xab\xe2\xb2\xd8\xaf\x6b\xad\x83\xb5\x3d\xb9\x53\x54\xd9\x94\xcd\x28\xfc\xf3\xad\x5b\x9e\x41\x35\xd6\xbf\x1e\xd4\x72\xac\x9a\x19\xd6\x63\xd0\x8a\x32\x3d\x99\x7f\x91\xe4\x1f\xdb\xb4\x27\xba\x78\xf8\x53\xd8\xc3\x66\xdc\xb6\x44\x0c\x03\xdc\xa0\x29\x00\xe3\x8a\xcb\x34\xe3\xd5\x96\x86\xca\xcc\x71\xf7\x9e\x61\xe1\xfb\x31\xbf\x63\x7b\x2e\x3d\xcd\xae\xfa\x99\x81\xe7\x7d\xda\xda\x96\x1d\xa6\xd0\xeb\x67\x7a\xfd\xcc\xff\x68\xfd\x4c\x40\xd8\x1d\xae\x5f\xa3\x76\x09\x33\xa2\x3a\xdd\x4b\x53\xf7\x60\x84\xda\x4f\xa7\x46\x71\x3a\x94\xa6\x96\x20\x9a\x3f\x4e\x47\xa3\x53\x34\x80\x8c\xbc\xba\xb4\xd6\xe3\xe1\x9f\x08\x13\x99\xcc\x4d\x3f\x58\x15\xb0\x52\x1a\x58\xcb\x46\x62\x0f\xe7\x32\x73\x63\x85\x26\x14\xe8\x7b\x57\xee\x61\x27\x14\xec\xa2\xf2\xdf\xee\x87\xc1\xda\x09\x81\x36\xac\x98\x2f\xc6\x64\xb7\xcc\xd7\xa7\xb2\x3c\x59\x93\x43\xa0\xe0\x33\x6e\xbd\x93\x0d\x76\x61\x4a\xa7\xbb\xef\x11\x72\x86\xdd\x8c\xb2\xb2\x1e\xd8\x2e\x47\x33\x36\x93\xd5\x62\xe0\xbb\x35\x3f\xb6\xc6\xb1\x6f\x9c\x03\xd3\x97\xd5\x55\xc5\x84\x2e\x16\xb1\xc9\xa5\xd6\xb5\x67\xe4\xfe\xdc\x8e\x1e\x99\xf9\xf3\x07\x9b\xea\x5f\xd2\xb4\xf6\xfd\x6f\x8a\x0f\x82\x42\xce\xef\x0a\xd0\x18\x9b\xc6\x6e\xd0\xe8\x27\xcc\x53\x26\xe6\x64\x4e\x2b\x95\x7e\xdf\xc8\xd3\xf9\xbd\x9c\xcf\xb9\xda\x4b\xc8\xc1\x9d\x25\x7e\xa8\x67\x96\xb5\x2e\x6b\x6d\xd1\xb1\xbb\x46\xae\x0c\x99\xbf\x3e\x4b\x4c\xef\x17\xf1\x2a\xa2\xb0\x95\x54\x6b\x56\x89\x37\xe4\xff\x9d\xfd\xc7\xef\x7e\x1e\x9e\xff\xf5\xec\xec\xfb\xd7\xc3\xff\xf5\xc3\xef\xce\xfe\x63\x04\xff\xf8\xed\xf9\x5f\xcf\x7f\x76\x7f\xfc\xee\xfc\xfc\xec\xec\xfb\xaf\xde\xfd\xed\xe3\xed\xf5\x0f\xfc\xfc\xe7\xef\x45\x3d\x7b\xc0\xbf\x7e\x3e\xfb\x9e\x5d\xff\x10\xd9\xc9\xf9\xf9\x5f\x7f\xb3\xd3\x74\xa9\x58\x7c\xb3\x03\x7e\xc3\x36\x7c\x22\x7d\x6c\xf7\xb2\x2f\x4f\x70\x2e\xf4\x50\x56\x43\xec\xee\x0d\xb8\x2c\xee\xd0\xa9\x03\x8b\x7d\xdc\xc3\x86\x0e\x37\x85\xf5\x9c\xf0\xf1\x0c\x17\x6d\x5f\xf2\xc5\x1e\x8c\x05\x98\xf5\x66\x27\x9d\x21\x7e\xba\x41\x5d\x68\x7f\xfc\x05\x6b\x0a\x3f\x1b\x9f\x2b\x5b\xa0\xa4\x77\xb8\x7a\x76\x87\x2b\x3c\x89\xde\xdb\xaa\x59\x5c\xef\x6d\x05\xad\xf7\xb6\x0a\x5b\xef\x6d\xd5\x1a\xb7\xf7\xb6\xea\xb5\x79\xbd\x36\xef\xf9\xb5\x79\xbd\xb7\x55\xef\x6d\xb5\xbe\xf5\xde\x56\xdd\xad\xf7\xb6\xfa\x9f\xe6\x6d\x85\x20\xb6\xce\xe7\xca\x4a\xa4\x8d\xc3\xd5\x67\xe7\x6f\xa5\xcc\x21\x67\xec\x22\xcb\x64\x2d\xf4\x47\xf9\xc0\xa2\xfd\x05\x96\x74\x28\x2b\xfd\x40\x8d\xc1\x0d\x3a\x95\xd5\x97\x8f\xa6\x60\x79\x81\xf9\xe0\x68\x9d\x73\x26\xd2\x34\x84\x4f\x41\xbd\x6e\xbc\xb0\x2a\xb6\xc8\x59\xde\xfc\x60\xf1\xb2\x36\x47\x33\x22\x17\xa4\x62\x19\x2f\xb9\x4d\xba\x40\xf1\x79\xd2\x90\x70\x2f\x6c\x6a\xed\x85\xb9\x2d\xac\x18\x7b\xf4\xe8\x53\x6e\x57\x81\xfe\xc1\x52\xea\xa5\x29\xa5\x89\xb1\x66\x9a\xc8\x07\x02\xd7\xf7\xc8\x15\x23\x6a\x2a\xeb\x22\x27\x15\xfb\x87\x63\x39\xed\x2a\x3f\x86\xa3\x85\x0a\xfc\xd4\x61\x83\xe5\xd8\x7d\xa4\x25\x8f\xaf\xf6\xe5\x67\xbf\x0b\xae\x64\x9f\x4a\x8e\x95\x0d\xee\x58\x26\x45\x7e\x34\xb5\xe0\xca\xc0\x0d\xb3\x08\x76\x3d\xcc\x56\xe3\x73\x73\xce\x69\xc1\x73\x43\x7d\x9d\x4b\x11\xa2\x84\x34\x30\x46\xfc\xe1\xa1\x54\x35\xa7\x49\x68\x59\x56\x92\x66\x53\xa6\x82\x99\xa1\xc4\x63\x2b\x5d\xc4\xa6\x74\x0f\x5b\x59\xd4\x13\x2e\x50\x40\x82\xfe\x1d\xbf\x21\xb5\x73\x39\xb4\x0b\x59\x9e\xdc\xc7\x60\x60\xf3\x79\xd2\xb0\xc8\x60\xea\x6a\x01\x3e\x8c\x32\x1c\x0e\x57\xcb\xc7\xe1\x1f\x8a\xc8\x22\x77\x95\x56\xff\xf4\xda\xc8\xd4\x19\x5e\xdd\x44\x45\xaf\x82\xdc\x9c\x66\xc4\xc2\x70\xfb\x86\xcc\x6d\x1e\xe8\xf7\x7f\x20\x53\x59\x57\x6a\x14\x56\x09\xfc\x02\x9e\xa5\x9d\xaa\xc8\x1b\xcf\x1d\x4d\x0a\x46\x95\x26\x5f\xbc\x26\x33\x2e\x6a\xbd\x4b\xb6\x81\x74\x29\x2d\x90\xcf\xfe\xf5\x0f\xd1\xdf\x3d\x29\x4b\x41\xe2\x6d\x0b\xa5\x31\xf8\xb7\x17\xc9\xac\xde\x18\x8b\xa3\x96\x92\x0b\xbd\x2c\xa0\x59\x0a\xbb\x1b\x36\x05\xcd\xf4\xc1\xb0\xd8\xce\x62\xcc\x4f\xb5\xbc\x5f\xe8\xbd\x16\xd5\xb1\x5d\xb6\x33\xc6\xfd\x5f\xfb\x30\xad\xf6\x6c\x4a\x19\x1d\x37\xc2\xf6\x8a\x5c\x6e\x72\x2f\xa9\x08\x57\xc5\x26\x5c\xe9\xaa\x4b\x8d\x3b\x8c\x41\xbc\xf1\x5c\xd4\xa4\x92\x75\x44\xc2\x85\xf4\xcb\x06\x1d\x3b\x85\x86\x33\x2c\xd9\xdc\xe2\x31\x39\x53\x5c\xe9\x3a\x3c\x1d\xe8\xad\xf3\xab\x97\x56\x21\x66\x5d\x6d\x59\x07\xa0\x2e\xb1\xfd\xf3\xd6\x97\x4d\x91\x9a\x1c\x80\x1e\x66\xcb\xb0\xef\x36\xba\xb0\x39\xa4\x64\x45\x66\x75\xa1\x79\x59\x34\xdb\xf7\xc1\x7d\x60\x19\x86\x18\x29\xba\x61\x8e\x69\x60\xf7\xa1\x58\xb3\x0b\x8b\xb2\x83\xe1\xf5\xcc\x8f\xc6\x84\x86\x7a\x1d\xe0\x40\xcf\x4a\x5a\x51\x7f\x4a\x99\x9c\xcd\x68\x54\x0a\x25\xb4\x04\x52\xf0\x21\x43\x92\x63\xd8\x89\x8a\x16\xcd\xaa\x03\x37\xa0\x7d\x02\xb9\x66\x82\x8a\x08\xa3\xfe\x0e\xc5\xf0\xa1\x67\x22\x1f\x7d\x5c\xc8\x84\xcf\x99\x58\x86\x6e\x2b\x84\x7c\x49\xb3\x07\x26\x62\xa4\xf9\x6f\x95\xdb\xdf\x7c\x21\xe8\xcc\xd6\xb6\x2f\x2b\x39\xe7\xe6\x1a\xb0\x7c\x69\x04\x35\xb0\x6a\x21\x4c\x8a\xed\x4a\x00\x20\xa3\xb9\xcf\xad\xac\xd5\x61\xaa\x1e\x9b\x7e\x9f\x8e\x25\x15\xda\x7f\x2a\x3e\xcf\x98\xe3\x9c\x4d\xcf\xfb\xdc\x81\x79\x44\xdd\x3d\xb2\xbe\x3e\x94\xcd\xcb\x8c\xf7\x0d\x28\xbd\x77\x61\xc0\x8c\xa5\x85\xc1\x79\x0b\x5f\x4d\x68\x09\x8a\x6c\x29\x85\xbd\x55\x08\xab\xee\x53\x0a\x47\x75\x1e\x63\x75\x9f\xb7\xd1\xd6\x07\x9a\x4b\x45\xbe\x84\xac\x6c\x57\x0c\xc4\x99\xc3\x31\x3c\x1f\xbe\xbc\xea\x60\x76\xcc\xfc\x76\x66\x74\xd6\xea\x3d\xd9\x27\x3a\x2b\x0b\xa6\x46\x0f\x7f\x02\xcd\xa7\xbd\x8b\xaf\xaa\xfb\xfc\xd5\x87\xeb\x8b\xab\x77\xd7\xa3\xd9\xf6\xdb\x7e\x00\xfe\x89\xcf\xe8\xa4\x8b\x23\x1f\x92\x99\x14\x5c\xcb\x6a\x3b\x9a\x7d\x11\x65\x00\xb7\x96\x3b\xb5\x32\x89\x63\x22\x0c\x2c\x2d\x64\x4d\x1e\x29\x66\xf9\x8c\x2e\x85\xfa\x91\x97\x6f\xc8\xb5\x50\x75\xc5\x9a\xcc\xd7\xcb\x83\x19\xdc\xba\xc7\x4a\x81\x08\x3b\x6f\x8e\x56\x1e\xf5\xc9\x05\xe0\xab\xfb\x6e\xd2\x95\x80\x48\x01\x50\x0f\x01\x32\xd0\xb1\xd7\x1b\x01\x12\xc2\x47\xb1\x49\xe8\x76\xbd\xea\xbf\x9e\xca\xc7\xa1\x96\xc3\x5a\xb1\x21\xef\x56\x24\x27\xec\xd5\x03\x5b\x80\xf3\xe8\x01\x76\xcb\x76\xdd\x52\x03\x68\x09\x56\x08\x78\x6e\x78\xb2\x0f\x5f\x5e\x7d\xab\xe2\xd4\x8e\x81\xbc\xf2\x8a\xe9\xec\x55\xc6\xca\xe9\x2b\x3b\xc6\xe7\xb9\xf7\x81\xdd\x68\x65\x45\x1d\x9f\x3a\x2c\x7b\x88\x73\x73\x7d\x23\x53\x91\xc9\xa2\xb0\xa5\x9d\xe4\x98\x5c\xb2\x72\xea\x5f\x78\x71\xbb\xbe\xe7\x52\x6c\xc7\x51\x0d\x11\x28\x90\x2c\x23\xec\x80\xe9\x47\x69\xfa\x6d\xe3\x2b\x78\x12\x8b\xae\x82\x2b\x57\xdd\xef\x4a\x08\x5e\xce\x25\xeb\x26\x33\xcf\xa6\xb4\x78\x7a\x2d\xda\x9d\xb4\x13\x47\x3e\xb0\x38\x35\x08\x7a\xb4\x47\x05\xa3\xed\x50\x4c\xd2\x75\x0e\xcc\x7a\xe0\xe2\x41\x6b\x3d\x65\x42\xf3\x0c\x4d\x40\xd6\xad\x3e\xa4\x51\xe4\x66\x8c\x82\x72\x1e\x65\x37\x97\x73\x56\x55\x3c\x67\x8a\x24\x10\xa9\x50\x29\xc7\x8b\x17\x77\x80\x91\x86\xec\x34\x1b\x73\xbc\x53\xcf\x6e\x16\x89\xa7\x38\xf2\x1c\xdb\x85\xe7\xc8\xce\x3b\x4f\x73\xdb\x79\x5e\x87\x9d\x64\xf3\x73\x8a\x93\xce\x53\x1c\x57\x0e\xaa\xc9\x6a\x11\x73\x78\xb2\x03\x31\xa7\xf9\x8c\x47\xa5\x7b\x78\xd1\xe4\x1c\x56\xb1\xe5\x75\x95\xd1\x82\xdd\x7c\xb3\x4f\x4d\x94\xed\xb2\xad\x8d\xba\xb3\x0f\x4b\x56\x29\xae\x20\x10\xc7\x29\x1a\xb5\xa6\xd9\xd4\x6a\x8c\x9c\x09\x42\x0a\xa8\x4d\x89\xb0\x45\x84\xcc\xbb\x6d\xc6\xa1\x3a\xca\x8d\xb6\x5d\x25\xe5\x26\xfa\x92\xec\x6f\x13\xaa\xd9\x63\x27\x7f\x3e\x6c\x48\x74\xf7\x9b\xa0\x14\xf9\xcc\x35\x4d\x29\xda\x24\x1f\x31\xb0\xd2\xcb\x3e\xf5\x47\xa3\x0d\x9a\xa3\x34\x24\x03\xdf\xee\x4d\xa5\x8c\xcd\xdf\xfd\x4f\xe3\x2e\x22\x61\xa1\x2d\xf1\x3c\xed\x57\xee\xac\x60\x13\x69\x9e\x57\x4c\x29\xc7\x42\xb8\x0b\x78\x71\x7b\x43\xfe\x86\xaf\xef\x75\x95\x65\x25\x35\x0a\xdc\x57\x72\x46\x79\x84\xbb\x63\x6b\x05\xcb\x9f\xbb\xa5\x84\xbc\xae\x5b\xc2\xad\x7f\x97\xd8\x97\xc7\xb2\x0a\x92\xf9\xd7\x15\xcb\x89\x55\xd6\xed\x75\x8d\x47\x91\xb3\x56\xe4\x21\x72\x66\x7e\x7b\x05\xa5\x34\xce\x47\x8d\xcc\xb5\x24\x90\xc5\x68\x06\xf6\x22\xb2\xbd\x40\xa1\x28\x30\x1b\xb9\x00\xcf\x46\x10\x72\x60\x03\x6c\x87\x77\x5a\x8c\xea\x5f\x28\x0e\xde\x3f\x81\xbf\xad\xad\x5a\xc7\x55\x13\xc3\x89\xb2\xd5\x80\x7c\x2d\x27\xdc\x55\x0e\x35\xc0\x89\x67\x43\x63\x04\xa2\x5e\x4e\xe9\xe5\x94\xe5\xd6\xcb\x29\x6b\x9b\x52\xc5\xb5\xa0\xf7\x45\x8c\xab\x79\xdb\x97\xde\x7f\x48\xde\x16\x74\x42\x18\xfc\xf1\x2a\xe7\xca\xfc\x9f\xdc\xdd\x7d\x0d\xce\x1b\xb5\x70\xca\x14\x80\x00\x4b\x2b\x7d\xee\x11\xc4\xc9\xfb\x45\x92\x48\xaa\xde\x45\xc5\x90\xee\x80\x26\x9b\xee\x09\x17\xb9\x2b\x45\x1f\xc4\x5b\xd8\x37\x00\x5b\x52\x1f\x4d\x8e\x0e\xdd\xf7\xcc\xdc\xd2\xec\xe1\x36\xf0\xb5\x90\x95\x79\x26\x82\x47\x89\x4c\x56\xf2\xd7\xbb\xb1\x5b\x4b\xc3\xc4\x1d\xc3\x6d\xba\x52\x3b\xf8\xd2\xf1\x2d\x8e\xe8\xdc\xd9\xad\x85\xdf\xa8\x52\x32\xe3\x8d\xaf\x10\xd8\x97\x1a\x66\x26\x07\x66\x66\xaf\x9b\x81\xfc\x73\xea\x72\x90\x41\x5f\xc3\x81\x39\x40\xb1\x6f\x50\x15\x72\x5c\x5c\xb8\x55\xef\x75\x09\x08\x8e\x71\x19\x97\xd2\x2f\x47\xd3\xfb\xf2\x7a\xfd\x45\x58\xf6\x42\x71\xc9\x1a\xec\x09\x47\x48\x73\x76\xcd\x53\x8a\x6a\x8c\x15\x28\xe0\xca\x5f\x3a\x48\x3e\xb3\xb7\xfd\x8b\xc9\xde\x92\xa8\x4a\x40\xbe\xaa\xed\x8e\x87\xcf\xac\xe7\x0a\x60\x8d\x52\x96\x75\x81\xce\xf4\x7e\x71\x3b\x38\x94\xa4\x58\xe3\x71\x16\xfb\xd1\x0e\xc4\x73\x58\x41\x80\xf7\x21\xc0\x33\x8c\x1f\x4f\x0f\xf3\x77\x10\x0b\x52\xb7\x91\xb0\x6d\x77\x49\x32\xfb\x31\xa3\xfc\xf7\x15\xd5\x1f\xa3\xdd\x68\xc5\xfd\xb7\xa4\xae\xd7\xff\xfa\x87\x3f\x44\x11\x34\x5e\x41\x09\x48\x0e\x15\xf2\x20\x2f\x88\xf7\x18\xa0\x15\x03\xe9\x00\x43\xf0\x9d\x7e\x03\xbd\x11\x75\xa4\x55\xe5\x18\x01\xff\x07\x0e\xf0\x4f\x0b\x15\x49\x09\xe0\x8f\x34\x87\xef\xe0\x2d\x03\x89\x98\x6e\x8e\x96\x88\xe9\x48\xe9\x97\x8e\x93\x74\xe9\x18\xa9\x96\x8e\x92\x60\xe9\x78\x69\x95\x0e\x9c\x4c\xe9\x20\x2e\x26\x87\x4c\x97\x94\x18\x7b\x9c\x16\x77\x1c\x9f\x10\x29\x3a\x3a\x39\x35\x32\x39\x21\xe5\xd1\x7e\x13\x1d\x25\x4b\xf4\x29\x49\x8d\x76\x8d\xba\x3b\x5e\x02\xa3\x67\x4c\x5b\xf4\xdc\xc9\x8a\x0e\x9c\xa2\xe8\x78\x89\x89\x8e\x92\x8e\x68\x97\xf0\xd6\xf4\xd4\x43\x29\x61\xad\xbb\x5e\xae\x83\x27\x17\xda\x4b\x4a\xa1\x3d\x27\x12\xda\x5f\xfa\xa0\xe3\x39\x52\xc6\x27\x55\x79\x72\x2a\x95\xf4\xda\x55\xe9\xf6\x9e\x43\x29\x6b\x9a\xde\xd7\x2a\xa7\x5c\xbe\x59\x57\x12\xe7\x54\x05\x35\x6f\xb4\x34\x58\xed\x08\x51\x01\x11\x7a\x08\x92\xa0\xc1\xc1\xde\x65\x07\x73\x91\xa8\xc4\xc1\x4e\xbf\xb9\x5b\xf2\x08\xf1\x8f\x0f\xe9\x08\xe2\x07\xe9\x70\x05\x71\x0b\x3f\x82\x33\x48\xef\x6d\xb1\x3f\x6f\x8b\xfd\xc7\xe9\xbc\x34\x03\x7d\xde\x1b\xe8\x93\x0d\xf4\xaa\x95\xee\xdf\x29\x8c\x01\x25\x03\x53\x2b\xef\xc3\x5a\x72\x0d\x8e\xb8\xb8\xbd\x89\x18\x27\xab\x18\xe4\x06\xa2\x85\x1a\xad\xe3\x76\x9d\xe9\xce\x72\xd1\x8e\xcb\xa5\x5a\xb3\x59\x19\x55\xfb\xa2\xb7\xcf\xf7\xf6\xf9\xe5\xd6\xdb\xe7\xd7\xb6\x63\xdb\xeb\xa6\xf5\x8c\x8a\xa1\xc1\xc0\x60\xc6\x6f\x39\x8c\x2d\x31\x34\x23\x62\x31\x69\xe4\xb5\xc4\x04\x0f\x90\x72\xa3\x16\xfc\xa7\x9a\x35\xfa\x2c\xcf\x58\x1e\xc8\xd6\x09\x7d\x1f\x76\x03\x91\x2f\x5e\xc2\xcc\x99\x5c\x89\x22\xb6\x6b\xf6\x9b\xe9\x50\x6c\xec\x26\xc2\x30\x2d\x15\xad\x9e\x32\x64\xd2\x6f\x97\x98\xf4\x96\xfe\xc1\xa2\x1f\xc0\x09\xb1\x5a\xee\x90\x33\x35\x80\x60\xd6\x63\xb3\x7b\xdd\x33\x32\xe3\x55\x25\x2b\x6b\x77\x0d\x97\x84\x0e\x84\x7c\x32\xd5\xac\x42\xc9\x1f\x5d\xb8\x62\x50\xc1\x1d\xd3\x16\xaa\x00\x2a\xb5\x24\x54\x60\x62\x02\xf3\x6f\x17\x4e\x03\xcb\x75\x74\xe8\x9e\x4d\xe9\x9c\xcb\x3a\x2a\x80\xf4\x0e\x29\xe5\x89\xfd\x18\xf8\xa7\x85\xac\xbd\x85\xa9\x56\x66\x81\x7e\x0f\xd5\xea\x79\x45\x0c\xf2\xbe\xf9\x1c\x14\x34\xb9\x74\xea\xf3\x21\xfb\xc4\x95\x5e\xdd\x31\x77\x54\xae\x0c\xd9\xbe\xae\xc1\x5c\x95\x06\x8b\x7f\x17\x91\x55\x22\x0d\xf8\x5b\x1d\xb7\x05\x9f\xf9\x1d\xfc\xd4\x25\xf6\xd8\x44\x73\x98\x17\x86\xcc\x68\x36\xe5\x22\x29\x27\xc3\x77\xad\x29\xb4\xe4\x9f\x11\xb9\x28\x8a\xc6\x77\x50\x79\x97\x56\x27\x0f\xb5\xa7\x6f\x36\xb3\x63\x60\x03\x1f\x15\xcb\xc1\x46\x89\x24\x15\x3c\x64\x15\x1f\xd9\xae\x46\xf3\xd9\x23\xad\xd8\x28\x93\x33\x72\x79\x77\x43\xf2\x8a\x77\xa6\x52\x3c\x80\x7f\x3d\x6e\x7a\x67\x29\xd7\x97\x25\xa3\xf5\xf2\x59\xd3\x52\xdc\x91\x9c\xa3\x54\xc1\xb3\xc5\xcd\xd5\xae\x6e\x56\xf8\xb5\x63\x00\x94\x77\xb1\x32\xcf\xc9\x97\x54\xb1\x9c\xbc\xa3\x82\x4e\x50\x7d\x78\x76\x77\xfb\xe5\xbb\x73\x03\x40\xa0\xee\xbc\xb9\x5a\xeb\x87\x75\x17\x76\xfe\x7e\x9f\x69\x65\x56\x16\xbe\x03\x6f\xb4\xf2\xfd\x8e\x8b\xdf\x6b\xbe\x1c\xe2\xd9\x89\xb8\x12\xc0\x6b\x32\x00\xdd\x2e\x27\x5c\x44\x27\x29\x97\xe9\x55\x2d\xa3\xe6\xf9\x2c\x7f\x78\xda\xf4\xb9\x91\x26\x8a\xe2\xb6\xa0\xe2\xa2\x2c\x2b\x39\x5f\xaf\x75\x8d\x41\x0e\xee\x7b\xb7\x00\x74\x30\x77\x0f\x4b\x3c\x11\xf0\xa9\x14\x28\xc4\xe0\xb0\xeb\xf7\xff\x46\x7b\xc5\xac\x14\xc0\x82\x9d\x5c\xd4\x5a\xce\xa8\xe6\xd9\x09\x91\x15\x39\x79\x47\x45\x4d\x8b\xb5\xb1\x29\x5b\x57\xbc\x49\xc0\xdc\xfa\xd1\xe6\xda\x6a\x11\x9f\x6d\x65\x60\xb7\x7f\xaf\x69\x65\x50\xdd\xe5\xdd\x77\x49\xdf\x2a\x4d\x75\xbd\x42\x19\xb6\x50\xab\xcd\xf4\x69\x48\x0a\xaa\xf4\xb7\x65\x6e\xf0\xc3\xd2\xaf\xdb\x88\x50\x46\x35\x2d\xe4\xe4\xdf\x18\x2d\xd6\x5f\x86\x18\x90\xba\x0c\x3b\x71\x16\x11\xeb\x51\x5a\xdf\xfb\xef\x4f\x15\x31\xa2\xa4\x81\x12\xae\x15\xa9\x58\xc1\xe6\x54\x68\xf7\xf9\x1d\xd6\x4b\x3c\xb5\xdb\xb2\x11\xe0\x78\x63\x63\xcd\x99\x66\xd5\x8c\x8b\xf6\x38\x77\xf0\xfd\xa5\x14\x39\x47\xae\x04\xac\x48\xf8\x45\x7b\xac\xcd\x50\xb9\xc9\xf5\x60\x8b\xb3\x41\xbb\x52\x64\x30\x9f\xf6\xf6\xe0\x6b\xf7\x56\x74\x99\xe2\x43\xf0\xdc\x6c\xcd\x6d\x65\xf7\xc8\x83\x30\x12\x05\x24\x4e\x5f\xbf\x37\x9d\x6c\x4e\x17\x7b\x33\x74\xe0\x80\x53\xd8\x1c\x15\x38\xb4\xf3\xde\xe4\x94\xb0\x0d\x1a\xb1\x75\x33\x46\xcb\x53\xd9\x8c\xa9\x5b\x1b\x7f\xb9\xf4\x19\x26\x56\xf1\xbe\x4d\xe8\xe5\xd1\x7a\x69\x33\x65\x89\xe2\x1b\xe3\x58\xbc\xd8\x0a\xfc\xad\xb5\x04\xf5\xe2\xd3\x74\x61\x91\xa4\x30\xb2\x10\x7e\x1a\xcb\x79\x63\x03\x9b\x2a\x2b\xc1\x52\x52\x72\x86\x29\xdb\xa9\xb0\x9b\x09\xf4\x8c\xd1\xdc\x3e\x34\x74\xb3\x62\xf6\xb7\x81\xf5\x38\x8c\x62\x50\xd0\x6f\xd7\xd9\x60\x29\x66\x12\x07\x6f\x84\x57\x7f\x93\x56\x07\x68\x33\x10\x1a\xac\x02\xdc\xc5\x80\xa8\x3a\x9b\x12\x6a\x04\x19\x65\xae\x83\xc1\x17\x6c\x34\xa3\x82\x8f\x99\xd2\x23\x5f\x2f\x57\x7d\xff\xfb\x1f\xba\xd8\x8e\xb7\xb2\x22\x36\x4a\x7b\xe0\x12\x62\xdb\x35\x36\x30\xc7\x15\x6e\x84\xef\xb9\xd1\xc8\x94\x32\xb7\x0b\x7e\x84\xa5\x68\xfa\x60\x48\x29\x2e\xa5\x66\xe0\x35\xd0\xc5\xa3\x9c\x18\xb6\x37\x98\xf6\x7f\x19\xda\xf9\xdf\x27\xe4\xec\x11\x98\x90\x13\xf3\xe7\x09\x4e\xc7\x47\x9a\x85\x0a\xa7\x66\x5a\x98\x34\xad\xe2\x93\x09\xab\x3a\x6d\xac\xe6\x53\x36\x67\x42\x9f\xdb\x64\xe0\x42\x06\x5d\x39\x3f\xbf\x46\x7f\xb2\x3c\xcd\xef\x7f\xff\xc3\x09\x39\x6b\xef\x49\xc7\x90\x5c\xe4\xec\x13\xf9\x3d\x5a\x4b\xb9\x32\xbb\x77\x3e\x42\x85\x8b\x5a\x08\x4d\x3f\x99\x11\xb3\xa9\x54\x4c\xa0\x02\x4c\x4b\x32\xa5\x73\x46\x94\x9c\x31\xf2\xc8\x8a\x62\x68\xed\xc7\xe4\x91\x2e\xba\x73\xa0\xbb\x23\x84\xcc\xaa\xa4\xa4\x95\x6e\x81\xf1\x5e\x2e\xe1\x03\x17\x7b\x4d\xe0\xf8\x15\x17\xcb\x2e\x9d\x9d\x02\xde\x1a\xa5\xf0\x84\x6b\x97\x75\xc0\xc6\x17\xe9\xc5\x2b\x73\x58\x15\xbf\xaf\xb5\xac\xd4\xab\x9c\xcd\x59\xf1\x4a\xf1\xc9\x90\x56\xd9\x94\x6b\x96\xe9\xba\x62\xaf\x68\xc9\x87\x99\x14\x06\x30\x20\xd5\xef\x2c\xff\xb5\xd9\x09\x35\x34\x0b\xdd\xae\x25\x8e\xdc\xb1\x6e\xdb\x43\xda\x8e\xed\x62\x6b\x78\x1e\x35\x7a\xc2\x06\x45\xa8\x62\xd3\x77\x09\xf5\x9d\xcf\xbe\x55\xa0\xf2\x7b\xb5\x8f\x9d\x72\x85\x93\xd3\x69\x73\xe7\x7e\xd9\x5a\xe1\xd9\xf2\x18\x06\x27\xa1\xb7\x2f\xa0\xb0\x16\x95\x98\xd1\x1c\xc9\x08\x15\x9d\x71\xee\x07\xbe\xb3\xe6\x3c\xa0\xde\x7e\xb6\x18\x42\x17\xb2\x18\x52\x91\x9b\x7f\x63\xe2\x8d\x6c\xbb\x47\x6a\xe4\x01\xd4\x7c\xaf\xc8\xef\xdb\x9b\xab\xe7\x07\xcf\x57\xbf\xae\xf9\x3e\x30\xdd\x2e\xf6\x2c\xcb\x97\x47\x32\xcb\x28\x92\xa0\x87\x6e\x55\x33\xc7\xc0\xb4\x05\x11\xae\x5c\xaf\xff\xdb\x7a\x0e\xf8\xfa\x39\x5d\xac\xf3\x76\x6b\x7e\x20\x23\x44\xce\xf7\xeb\xe6\x8b\x50\x17\x0e\x9e\xff\x54\x69\x5b\xa1\xc4\x65\x7e\x6d\x2d\xc3\x09\xa7\x53\x2a\x26\x5b\x58\x9b\xa8\x83\x71\x7e\x93\x66\x22\x43\x33\xe6\xaa\x58\xed\x85\xcf\x4e\x99\x3a\x90\x53\x41\x54\x29\xb8\xf2\x55\x3a\x8c\xd8\xaa\x34\xa1\x73\xca\x0b\xb0\x13\xca\x7b\xc5\xaa\xb9\x55\xb6\x63\x0d\x2d\xba\x2c\x63\xe3\xb5\xd5\xc8\xf0\x1e\x49\xc2\x75\x6b\x58\x3d\x95\x6d\x0b\x00\xa9\x77\x69\xf6\x1b\x67\xbd\x17\xf9\x16\x55\x0b\x1b\x7f\xde\x68\xa0\xe8\x16\xf2\x0c\xfc\xfd\x1b\xa3\x95\xbe\x67\x54\x7f\xe4\xdb\x38\x94\x15\x90\x6e\x7d\xe7\xf4\x72\x0d\x40\x3f\x32\x32\x91\xda\xb0\x9d\x35\xc0\x3e\xca\x07\x98\xa2\xde\x03\xda\xa1\x21\xba\x59\xe5\xc7\x8a\x42\x86\x09\x29\x12\x97\xd9\xfe\x70\x75\x9d\x56\x16\xb1\x90\xa4\xf1\x6d\x32\xae\xe4\x0c\x94\x8b\x78\x76\x68\xaa\xdc\x9e\x0c\x63\xaf\x4b\x9e\x31\xa5\xb6\xa6\x38\x6e\x87\x95\xe0\xdb\x78\x95\x97\x8c\xfc\x33\xf7\x1b\x86\xb3\x1b\xa1\x22\x67\x9a\xf2\xc2\x5d\x65\xdc\x0a\xbf\x4b\x5d\xd8\x75\xeb\x02\x2b\x46\xd5\x36\x86\xa6\x35\xeb\x0f\xf0\x32\x4e\x5a\x0a\x36\x7c\x94\x55\x4e\x2e\xe9\x8c\x15\x97\x54\x31\xdb\x57\x98\xaf\x06\xcf\xe8\x54\xed\x75\xca\xeb\xd5\xa1\x1b\xa6\x8c\x4a\xbe\xc6\xa0\x00\x7f\x35\x02\x2d\x4e\x70\xe0\xb4\xd2\x1f\xab\x9a\x0d\xc8\x5b\x43\xbd\x06\xe4\x5b\xf1\x20\xe4\xe3\xd3\xe6\xaa\xb7\x1a\xeb\x5a\x33\x0d\x3d\x24\x5d\xba\xf3\x96\x62\xcf\x4f\x77\xc7\x19\x59\x84\xbf\x41\xfb\xdc\x26\x36\xfe\x55\x37\x23\xf3\xcf\x15\x55\xa3\x11\xad\x2b\x39\xa9\x98\x52\xa8\xc5\x49\x56\xdf\x07\x06\x8b\xbf\x31\x61\xed\xc3\x9d\xd3\xbb\x59\xf7\x95\x9b\xa9\xa3\x6b\x93\xe6\x17\x7b\xde\x76\xb0\xb2\x58\xcb\x6a\x6c\x8f\x8c\x08\x26\xba\x41\xc9\xb8\x69\x86\xeb\x95\x8b\x01\xd5\x0b\xde\x45\xa6\x64\x9b\x66\xdc\xad\xee\xf2\xee\xbb\xcd\x9b\xbd\x91\xf6\x75\xd1\xa7\x6e\xf5\xe3\x53\x15\x8f\x9d\x77\xa6\x53\xd9\x18\xcb\xe9\x1f\x47\xc1\xf8\x9c\xaa\xc5\xe7\x55\x2a\x1e\x5d\x9d\x78\x54\x45\xe2\xf1\x54\x88\x3b\x2a\x0f\x3b\x2f\xd2\x36\x85\x61\xec\x1d\x4a\x53\x12\x3e\xbb\x7a\xb0\x73\x4f\xb6\xa9\x04\x63\xf7\x24\x4d\x0d\x78\x6c\x05\x60\xd4\x16\x6c\x55\xfa\xa5\xec\x43\xa2\xa2\xef\xc8\x2a\xbe\xce\xbd\x88\x54\xeb\xc5\xee\xc8\xe1\x54\x79\x2f\x56\x89\xd7\xb9\xc5\x5b\x14\x77\xb1\xdb\x9a\xa4\xac\x3b\xb2\x9a\xae\x63\xfd\x69\xaa\x39\xcb\x63\xb2\x3c\x86\x45\xbf\x09\x5e\x0e\x99\x74\xcb\x20\x82\x03\x9c\x7d\xc3\x39\xdc\x85\xac\xe4\xae\x9c\xba\x61\x9e\x77\xf5\xff\xb0\x53\x8e\xe7\x86\x2d\x0b\xcf\x72\x2f\x53\x76\x2d\x81\x90\xab\xeb\xdb\x0f\xd7\x97\x17\x1f\xaf\xaf\x96\xb9\xf0\x74\x76\x79\xbb\xa2\x68\x18\xb0\xcb\x1b\x5e\x30\xc4\x6a\xc3\x4f\x06\xb6\x36\xfc\x54\xd7\x7c\xdd\x57\x4f\x67\xde\x9f\xc4\x33\x3c\x89\xb8\x76\xe3\x89\x3d\x21\x0a\x80\x2d\xf4\x5a\x35\x5c\xe5\x54\x16\xb9\x72\xf1\x0d\x37\x57\x3e\x11\x01\x17\x59\x51\xe7\x86\xe5\xfa\xf6\xdb\x9b\x2b\x35\x22\xe4\x4b\x96\xd1\x5a\x19\xd6\x6d\xb3\xb8\x2e\xc5\xa9\x26\xdf\xbc\xff\xfa\xdf\x21\xb4\x0b\xbe\x1c\xf8\x74\xa9\x50\xd2\x8f\x53\xac\x4a\x08\x0b\x85\x5e\x91\xad\x83\x19\x65\xb4\x34\x18\x78\xb3\xca\x9f\x63\xf6\x1a\x2a\x72\x32\x65\x45\x69\xa8\xc3\x03\x23\x4d\x9d\x32\x33\x20\xfc\x8a\xf1\x1b\xd6\x8f\x7d\xc2\x34\x26\x25\xd8\xe6\xaa\xbe\xf5\x00\x3a\x34\xec\x4f\xd0\xad\xb7\xd4\x05\x56\xfb\xf2\x48\x95\xd5\x50\xae\x9d\x6d\x07\xa8\x74\xeb\xe3\x36\xab\xb4\x36\x28\xb3\x90\xb2\xc0\x5f\x2b\x73\x36\x93\x6d\xf4\x56\xe8\x1c\xc6\x75\xb4\xf6\x7c\xb3\x27\xe0\xfa\xc2\xd3\x2b\xba\x2b\xb6\xbc\xc9\xad\x81\x7d\x2c\x50\x30\xe5\xb8\xb9\x28\x56\xcd\x59\xfe\x06\xec\x39\xee\x11\x7a\xdb\xb6\x9f\xd5\xf7\x8e\x99\x09\xb0\x8e\xd5\xc0\x91\xff\xfa\xef\x5f\xfd\xff\x03\x00\x00\xff\xff\x52\xe7\xe2\x2a\x2a\x84\x03\x00")
func operatorsCoreosCom_subscriptionsYamlBytes() ([]byte, error) {
return bindataRead(
diff --git a/staging/api/go.mod b/staging/api/go.mod
index 6b114a52c1..c20abd69c7 100644
--- a/staging/api/go.mod
+++ b/staging/api/go.mod
@@ -1,26 +1,27 @@
module github.com/operator-framework/api
-go 1.22.0
+go 1.23.0
-toolchain go1.22.2
+toolchain go1.23.4
require (
github.com/blang/semver/v4 v4.0.0
github.com/go-bindata/go-bindata/v3 v3.1.3
- github.com/google/cel-go v0.20.1
+ github.com/google/cel-go v0.22.1
github.com/sirupsen/logrus v1.9.3
github.com/spf13/cobra v1.8.1
- github.com/stretchr/testify v1.9.0
- google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157
- k8s.io/api v0.31.0
- k8s.io/apiextensions-apiserver v0.31.0
- k8s.io/apimachinery v0.31.0
- k8s.io/client-go v0.31.0
- sigs.k8s.io/controller-runtime v0.19.0
+ github.com/stretchr/testify v1.10.0
+ google.golang.org/genproto/googleapis/api v0.0.0-20240826202546-f6391c0de4c7
+ k8s.io/api v0.32.0
+ k8s.io/apiextensions-apiserver v0.32.0
+ k8s.io/apimachinery v0.32.0
+ k8s.io/client-go v0.32.0
+ sigs.k8s.io/controller-runtime v0.19.4
sigs.k8s.io/yaml v1.4.0
)
require (
+ cel.dev/expr v0.18.0 // indirect
github.com/antlr4-go/antlr/v4 v4.13.0 // indirect
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect
github.com/beorn7/perks v1.0.1 // indirect
@@ -32,22 +33,19 @@ require (
github.com/fxamacker/cbor/v2 v2.7.0 // indirect
github.com/go-logr/logr v1.4.2 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
- github.com/go-openapi/jsonpointer v0.20.2 // indirect
+ github.com/go-openapi/jsonpointer v0.21.0 // indirect
github.com/go-openapi/jsonreference v0.20.4 // indirect
- github.com/go-openapi/swag v0.22.9 // indirect
+ github.com/go-openapi/swag v0.23.0 // indirect
github.com/gogo/protobuf v1.3.2 // indirect
- github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
github.com/golang/protobuf v1.5.4 // indirect
github.com/google/gnostic-models v0.6.8 // indirect
- github.com/google/go-cmp v0.6.0 // indirect
github.com/google/gofuzz v1.2.0 // indirect
github.com/google/uuid v1.6.0 // indirect
github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 // indirect
- github.com/imdario/mergo v0.3.16 // indirect
github.com/inconshreveable/mousetrap v1.1.0 // indirect
github.com/josharian/intern v1.0.0 // indirect
github.com/json-iterator/go v1.1.12 // indirect
- github.com/kisielk/errcheck v1.5.0 // indirect
+ github.com/kisielk/errcheck v1.8.0 // indirect
github.com/mailru/easyjson v0.7.7 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.2 // indirect
@@ -68,29 +66,28 @@ require (
go.opentelemetry.io/otel/sdk v1.28.0 // indirect
go.opentelemetry.io/otel/trace v1.28.0 // indirect
go.opentelemetry.io/proto/otlp v1.3.1 // indirect
- golang.org/x/exp v0.0.0-20240213143201-ec583247a57a // indirect
- golang.org/x/lint v0.0.0-20200302205851-738671d3881b // indirect
- golang.org/x/mod v0.17.0 // indirect
- golang.org/x/net v0.26.0 // indirect
- golang.org/x/oauth2 v0.21.0 // indirect
- golang.org/x/sync v0.7.0 // indirect
- golang.org/x/sys v0.21.0 // indirect
- golang.org/x/term v0.21.0 // indirect
- golang.org/x/text v0.16.0 // indirect
- golang.org/x/time v0.5.0 // indirect
- golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect
- google.golang.org/genproto/googleapis/rpc v0.0.0-20240701130421-f6361c86f094 // indirect
+ golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 // indirect
+ golang.org/x/lint v0.0.0-20241112194109-818c5a804067 // indirect
+ golang.org/x/mod v0.22.0 // indirect
+ golang.org/x/net v0.34.0 // indirect
+ golang.org/x/oauth2 v0.23.0 // indirect
+ golang.org/x/sync v0.10.0 // indirect
+ golang.org/x/sys v0.29.0 // indirect
+ golang.org/x/term v0.28.0 // indirect
+ golang.org/x/text v0.21.0 // indirect
+ golang.org/x/time v0.7.0 // indirect
+ golang.org/x/tools v0.29.0 // indirect
+ google.golang.org/genproto/googleapis/rpc v0.0.0-20240826202546-f6391c0de4c7 // indirect
google.golang.org/grpc v1.65.0 // indirect
- google.golang.org/protobuf v1.34.2 // indirect
+ google.golang.org/protobuf v1.35.1 // indirect
gopkg.in/inf.v0 v0.9.1 // indirect
- gopkg.in/yaml.v2 v2.4.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
- k8s.io/apiserver v0.31.0 // indirect
- k8s.io/component-base v0.31.0 // indirect
+ k8s.io/apiserver v0.32.0 // indirect
+ k8s.io/component-base v0.32.0 // indirect
k8s.io/klog/v2 v2.130.1 // indirect
- k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 // indirect
- k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 // indirect
- sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.30.3 // indirect
- sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
- sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect
+ k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f // indirect
+ k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 // indirect
+ sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.0 // indirect
+ sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 // indirect
+ sigs.k8s.io/structured-merge-diff/v4 v4.4.2 // indirect
)
diff --git a/staging/api/go.sum b/staging/api/go.sum
index bb69b75264..3d238b5550 100644
--- a/staging/api/go.sum
+++ b/staging/api/go.sum
@@ -1,3 +1,5 @@
+cel.dev/expr v0.18.0 h1:CJ6drgk+Hf96lkLikr4rFf19WrU0BOWEihyZnI2TAzo=
+cel.dev/expr v0.18.0/go.mod h1:MrpN08Q+lEBs+bGYdLxxHkZoUSsCp0nSKTs0nTymJgw=
github.com/antlr4-go/antlr/v4 v4.13.0 h1:lxCg3LAv+EUK6t1i0y1V6/SLeUi0eKEKdhQAlS8TVTI=
github.com/antlr4-go/antlr/v4 v4.13.0/go.mod h1:pfChB/xh/Unjila75QW7+VU4TSnWnnk9UTnmpPaOR2g=
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 h1:DklsrG3dyBCFEj5IhUbnKptjxatkF07cF2ak3yi77so=
@@ -32,22 +34,22 @@ github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=
github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
-github.com/go-openapi/jsonpointer v0.20.2 h1:mQc3nmndL8ZBzStEo3JYF8wzmeWffDH4VbXz58sAx6Q=
-github.com/go-openapi/jsonpointer v0.20.2/go.mod h1:bHen+N0u1KEO3YlmqOjTT9Adn1RfD91Ar825/PuiRVs=
+github.com/go-openapi/jsonpointer v0.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ=
+github.com/go-openapi/jsonpointer v0.21.0/go.mod h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY=
github.com/go-openapi/jsonreference v0.20.4 h1:bKlDxQxQJgwpUSgOENiMPzCTBVuc7vTdXSSgNeAhojU=
github.com/go-openapi/jsonreference v0.20.4/go.mod h1:5pZJyJP2MnYCpoeoMAql78cCHauHj0V9Lhc506VOpw4=
-github.com/go-openapi/swag v0.22.9 h1:XX2DssF+mQKM2DHsbgZK74y/zj4mo9I99+89xUmuZCE=
-github.com/go-openapi/swag v0.22.9/go.mod h1:3/OXnFfnMAwBD099SwYRk7GD3xOrr1iL7d/XNLXVVwE=
+github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE=
+github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ=
github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI=
github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8=
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
-github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE=
-github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
-github.com/google/cel-go v0.20.1 h1:nDx9r8S3L4pE61eDdt8igGj8rf5kjYR3ILxWIpWNi84=
-github.com/google/cel-go v0.20.1/go.mod h1:kWcIzTsPX0zmQ+H3TirHstLLf9ep5QTsZBN9u4dOYLg=
+github.com/google/btree v1.0.1 h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4=
+github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA=
+github.com/google/cel-go v0.22.1 h1:AfVXx3chM2qwoSbM7Da8g8hX8OVSkBFwX+rz2+PcK40=
+github.com/google/cel-go v0.22.1/go.mod h1:BuznPXXfQDpXKWQ9sPW3TzlAJN5zzFe+i9tIs0yC4s8=
github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I=
github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U=
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
@@ -56,16 +58,14 @@ github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0=
github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
-github.com/google/pprof v0.0.0-20240525223248-4bfdf5a9a2af h1:kmjWCqn2qkEml422C2Rrd27c3VGxi6a/6HNq8QmHRKM=
-github.com/google/pprof v0.0.0-20240525223248-4bfdf5a9a2af/go.mod h1:K1liHPHnj73Fdn/EKuT8nrFqBihUSKXoLYU0BuatOYo=
+github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db h1:097atOisP2aRj7vFgYQBbFN4U4JNXUNYpxael3UzMyo=
+github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144=
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 h1:Ovs26xHkKqVztRpIrF/92BcuyuQ/YW4NSIpoGtfXNho=
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=
github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 h1:bkypFPDjIYGfCYD5mRBvpqxfYX1YCS1PXdKYWi8FsN0=
github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0/go.mod h1:P+Lt/0by1T8bfcF3z737NnSbmxQAppXMRziHUxPOC8k=
-github.com/imdario/mergo v0.3.16 h1:wwQJbIsHYGMUyLSPrEq1CT16AhnhNJQ51+4fdHUnCl4=
-github.com/imdario/mergo v0.3.16/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY=
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
@@ -73,8 +73,9 @@ github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFF
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
-github.com/kisielk/errcheck v1.5.0 h1:e8esj/e4R+SAOwFwN+n3zr0nYeCyeweozKfO23MvHzY=
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
+github.com/kisielk/errcheck v1.8.0 h1:ZX/URYa7ilESY19ik/vBmCn6zdGQLxACwjAcWbHlYlg=
+github.com/kisielk/errcheck v1.8.0/go.mod h1:1kLL+jV4e+CFfueBmI1dSK2ADDyQnlrnrY/FqKluHJQ=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
@@ -89,10 +90,12 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
-github.com/onsi/ginkgo/v2 v2.19.0 h1:9Cnnf7UHo57Hy3k6/m5k3dRfGTMXGvxhHFvkDTCTpvA=
-github.com/onsi/ginkgo/v2 v2.19.0/go.mod h1:rlwLi9PilAFJ8jCg9UE1QP6VBpd6/xj3SRC0d6TU0To=
-github.com/onsi/gomega v1.33.1 h1:dsYjIxxSR755MDmKVsaFQTE22ChNBcuuTWgkUDSubOk=
-github.com/onsi/gomega v1.33.1/go.mod h1:U4R44UsT+9eLIaYRB2a5qajjtQYn0hauxvRm16AVYg0=
+github.com/onsi/ginkgo/v2 v2.21.0 h1:7rg/4f3rB88pb5obDgNZrNHrQ4e6WpjonchcpuBRnZM=
+github.com/onsi/ginkgo/v2 v2.21.0/go.mod h1:7Du3c42kxCUegi0IImZ1wUQzMBVecgIHjR1C+NkhLQo=
+github.com/onsi/gomega v1.35.1 h1:Cwbd75ZBPxFSuZ6T+rN/WCb/gOc6YgFBXLlZLhC7Ds4=
+github.com/onsi/gomega v1.35.1/go.mod h1:PvZbdDc8J6XJEpDK4HCuRBm8a6Fzp9/DmhC9C7yFlog=
+github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
+github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
@@ -123,18 +126,18 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
-github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
-github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
+github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
+github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM=
github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg=
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
-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=
-go.etcd.io/etcd/client/pkg/v3 v3.5.14/go.mod h1:8uMgAokyG1czCtIdsq+AGyYQMvpIKnSvPjFMunkgeZI=
-go.etcd.io/etcd/client/v3 v3.5.14 h1:CWfRs4FDaDoSz81giL7zPpZH2Z35tbOrAJkkjMqOupg=
-go.etcd.io/etcd/client/v3 v3.5.14/go.mod h1:k3XfdV/VIHy/97rqWjoUzrj9tk7GgJGH9J8L4dNXmAk=
+go.etcd.io/etcd/api/v3 v3.5.16 h1:WvmyJVbjWqK4R1E+B12RRHz3bRGy9XVfh++MgbN+6n0=
+go.etcd.io/etcd/api/v3 v3.5.16/go.mod h1:1P4SlIP/VwkDmGo3OlOD7faPeP8KDIFhqvciH5EfN28=
+go.etcd.io/etcd/client/pkg/v3 v3.5.16 h1:ZgY48uH6UvB+/7R9Yf4x574uCO3jIx0TRDyetSfId3Q=
+go.etcd.io/etcd/client/pkg/v3 v3.5.16/go.mod h1:V8acl8pcEK0Y2g19YlOV9m9ssUe6MgiDSobSoaBAM0E=
+go.etcd.io/etcd/client/v3 v3.5.16 h1:sSmVYOAHeC9doqi0gv7v86oY/BTld0SEFGaxsU9eRhE=
+go.etcd.io/etcd/client/v3 v3.5.16/go.mod h1:X+rExSGkyqxvu276cr2OwPLBaeqFu1cIl4vmRjAD/50=
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.53.0 h1:9G6E0TXzGFVfTnawRzrPl83iHOAV7L8NJiR8RSGYV1g=
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.53.0/go.mod h1:azvtTADFQJA8mX80jIH/akaE7h+dbm/sVuaHqN13w74=
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.53.0 h1:4K4tsIXefpVJtvA/8srF4V4y0akAoPHkIslgAkjixJA=
@@ -157,48 +160,48 @@ go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
-go.uber.org/zap v1.26.0 h1:sI7k6L95XOKS281NhVKOFCUNIvv9e0w4BF8N3u+tCRo=
-go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so=
+go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8=
+go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/exp v0.0.0-20240213143201-ec583247a57a h1:HinSgX1tJRX3KsL//Gxynpw5CTOAIPhgL4W8PNiIpVE=
-golang.org/x/exp v0.0.0-20240213143201-ec583247a57a/go.mod h1:CxmFvTBINI24O/j8iY7H1xHzx2i4OsyguNBmN/uPtqc=
+golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 h1:2dVuKD2vS7b0QIHQbpyTISPd0LeHDbnYEryqj5Q1ug8=
+golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY=
golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs=
-golang.org/x/lint v0.0.0-20200302205851-738671d3881b h1:Wh+f8QHJXR411sJR8/vRBTZ7YapZaRvUcLFFJhusH0k=
-golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
+golang.org/x/lint v0.0.0-20241112194109-818c5a804067 h1:adDmSQyFTCiv19j015EGKJBoaa7ElV0Q1Wovb/4G7NA=
+golang.org/x/lint v0.0.0-20241112194109-818c5a804067/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
-golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA=
-golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
+golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4=
+golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
-golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ=
-golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE=
-golang.org/x/oauth2 v0.21.0 h1:tsimM75w1tF/uws5rbeHzIWxEqElMehnc+iW793zsZs=
-golang.org/x/oauth2 v0.21.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=
+golang.org/x/net v0.34.0 h1:Mb7Mrk043xzHgnRM88suvJFwzVrRfHEHJEl5/71CKw0=
+golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k=
+golang.org/x/oauth2 v0.23.0 h1:PbgcYx2W7i4LvjJWEbf0ngHV6qJYr86PkAV3bXdLEbs=
+golang.org/x/oauth2 v0.23.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M=
-golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
+golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ=
+golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws=
-golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
-golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA=
-golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0=
+golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU=
+golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
+golang.org/x/term v0.28.0 h1:/Ts8HFuMR2E6IP/jlo7QVLZHggjKQbhu/7H0LJFr3Gg=
+golang.org/x/term v0.28.0/go.mod h1:Sw/lC2IAUZ92udQNf3WodGtn4k/XoLyZoh8v/8uiwek=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
-golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4=
-golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI=
-golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk=
-golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
+golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=
+golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
+golang.org/x/time v0.7.0 h1:ntUhktv3OPE6TgYxXWv9vKvUSJyIFJlyohwbkEwPrKQ=
+golang.org/x/time v0.7.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
@@ -206,56 +209,55 @@ golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtn
golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
-golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d h1:vU5i/LfpvrRCpgM/VPfJLg5KjxD3E+hfT1SH+d9zLwg=
-golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk=
+golang.org/x/tools v0.29.0 h1:Xx0h3TtM9rzQpQuR4dKLrdglAmCEN5Oi+P74JdhdzXE=
+golang.org/x/tools v0.29.0/go.mod h1:KMQVMRsVxU6nHCFXrBPhDB8XncLNLM0lIy/F14RP588=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-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/rpc v0.0.0-20240701130421-f6361c86f094 h1:BwIjyKYGsK9dMCBOorzRri8MQwmi7mT9rGHsCEinZkA=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20240701130421-f6361c86f094/go.mod h1:Ue6ibwXGpU+dqIcODieyLOcgj7z8+IcskoNIgZxtrFY=
+google.golang.org/genproto/googleapis/api v0.0.0-20240826202546-f6391c0de4c7 h1:YcyjlL1PRr2Q17/I0dPk2JmYS5CDXfcdb2Z3YRioEbw=
+google.golang.org/genproto/googleapis/api v0.0.0-20240826202546-f6391c0de4c7/go.mod h1:OCdP9MfskevB/rbYvHTsXTtKC+3bHWajPdoKgjcYkfo=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20240826202546-f6391c0de4c7 h1:2035KHhUv+EpyB+hWgJnaWKJOdX1E95w2S8Rr4uWKTs=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20240826202546-f6391c0de4c7/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU=
google.golang.org/grpc v1.65.0 h1:bs/cUb4lp1G5iImFFd3u5ixQzweKizoZJAwBNLR42lc=
google.golang.org/grpc v1.65.0/go.mod h1:WgYC2ypjlB0EiQi6wdKixMqukr6lBc0Vo+oOgjrM5ZQ=
-google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg=
-google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw=
+google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA=
+google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
+gopkg.in/evanphx/json-patch.v4 v4.12.0 h1:n6jtcsulIzXPJaxegRbvFNNrZDjbij7ny3gmSPG+6V4=
+gopkg.in/evanphx/json-patch.v4 v4.12.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M=
gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
-gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
-gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
-k8s.io/api v0.31.0 h1:b9LiSjR2ym/SzTOlfMHm1tr7/21aD7fSkqgD/CVJBCo=
-k8s.io/api v0.31.0/go.mod h1:0YiFF+JfFxMM6+1hQei8FY8M7s1Mth+z/q7eF1aJkTE=
-k8s.io/apiextensions-apiserver v0.31.0 h1:fZgCVhGwsclj3qCw1buVXCV6khjRzKC5eCFt24kyLSk=
-k8s.io/apiextensions-apiserver v0.31.0/go.mod h1:b9aMDEYaEe5sdK+1T0KU78ApR/5ZVp4i56VacZYEHxk=
-k8s.io/apimachinery v0.31.0 h1:m9jOiSr3FoSSL5WO9bjm1n6B9KROYYgNZOb4tyZ1lBc=
-k8s.io/apimachinery v0.31.0/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo=
-k8s.io/apiserver v0.31.0 h1:p+2dgJjy+bk+B1Csz+mc2wl5gHwvNkC9QJV+w55LVrY=
-k8s.io/apiserver v0.31.0/go.mod h1:KI9ox5Yu902iBnnyMmy7ajonhKnkeZYJhTZ/YI+WEMk=
-k8s.io/client-go v0.31.0 h1:QqEJzNjbN2Yv1H79SsS+SWnXkBgVu4Pj3CJQgbx0gI8=
-k8s.io/client-go v0.31.0/go.mod h1:Y9wvC76g4fLjmU0BA+rV+h2cncoadjvjjkkIGoTLcGU=
-k8s.io/component-base v0.31.0 h1:/KIzGM5EvPNQcYgwq5NwoQBaOlVFrghoVGr8lG6vNRs=
-k8s.io/component-base v0.31.0/go.mod h1:TYVuzI1QmN4L5ItVdMSXKvH7/DtvIuas5/mm8YT3rTo=
+k8s.io/api v0.32.0 h1:OL9JpbvAU5ny9ga2fb24X8H6xQlVp+aJMFlgtQjR9CE=
+k8s.io/api v0.32.0/go.mod h1:4LEwHZEf6Q/cG96F3dqR965sYOfmPM7rq81BLgsE0p0=
+k8s.io/apiextensions-apiserver v0.32.0 h1:S0Xlqt51qzzqjKPxfgX1xh4HBZE+p8KKBq+k2SWNOE0=
+k8s.io/apiextensions-apiserver v0.32.0/go.mod h1:86hblMvN5yxMvZrZFX2OhIHAuFIMJIZ19bTvzkP+Fmw=
+k8s.io/apimachinery v0.32.0 h1:cFSE7N3rmEEtv4ei5X6DaJPHHX0C+upp+v5lVPiEwpg=
+k8s.io/apimachinery v0.32.0/go.mod h1:GpHVgxoKlTxClKcteaeuF1Ul/lDVb74KpZcxcmLDElE=
+k8s.io/apiserver v0.32.0 h1:VJ89ZvQZ8p1sLeiWdRJpRD6oLozNZD2+qVSLi+ft5Qs=
+k8s.io/apiserver v0.32.0/go.mod h1:HFh+dM1/BE/Hm4bS4nTXHVfN6Z6tFIZPi649n83b4Ag=
+k8s.io/client-go v0.32.0 h1:DimtMcnN/JIKZcrSrstiwvvZvLjG0aSxy8PxN8IChp8=
+k8s.io/client-go v0.32.0/go.mod h1:boDWvdM1Drk4NJj/VddSLnx59X3OPgwrOo0vGbtq9+8=
+k8s.io/component-base v0.32.0 h1:d6cWHZkCiiep41ObYQS6IcgzOUQUNpywm39KVYaUqzU=
+k8s.io/component-base v0.32.0/go.mod h1:JLG2W5TUxUu5uDyKiH2R/7NnxJo1HlPoRIIbVLkK5eM=
k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk=
k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE=
-k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 h1:BZqlfIlq5YbRMFko6/PM7FjZpUb45WallggurYhKGag=
-k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340/go.mod h1:yD4MZYeKMBwQKVht279WycxKyM84kkAx2DPrTXaeb98=
-k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 h1:pUdcCO1Lk/tbT5ztQWOBi5HBgbBP1J8+AsQnQCKsi8A=
-k8s.io/utils v0.0.0-20240711033017-18e509b52bc8/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
-sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.30.3 h1:2770sDpzrjjsAtVhSeUFseziht227YAWYHLGNM8QPwY=
-sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.30.3/go.mod h1:Ve9uj1L+deCXFrPOk1LpFXqTg7LCFzFso6PA48q/XZw=
-sigs.k8s.io/controller-runtime v0.19.0 h1:nWVM7aq+Il2ABxwiCizrVDSlmDcshi9llbaFbC0ji/Q=
-sigs.k8s.io/controller-runtime v0.19.0/go.mod h1:iRmWllt8IlaLjvTTDLhRBXIEtkCK6hwVBJJsYS9Ajf4=
-sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo=
-sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0=
-sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4=
-sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08=
+k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f h1:GA7//TjRY9yWGy1poLzYYJJ4JRdzg3+O6e8I+e+8T5Y=
+k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f/go.mod h1:R/HEjbvWI0qdfb8viZUeVZm0X6IZnxAydC7YU42CMw4=
+k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 h1:M3sRQVHv7vB20Xc2ybTt7ODCeFj6JSWYFzOFnYeS6Ro=
+k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
+sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.0 h1:CPT0ExVicCzcpeN4baWEV2ko2Z/AsiZgEdwgcfwLgMo=
+sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.0/go.mod h1:Ve9uj1L+deCXFrPOk1LpFXqTg7LCFzFso6PA48q/XZw=
+sigs.k8s.io/controller-runtime v0.19.4 h1:SUmheabttt0nx8uJtoII4oIP27BVVvAKFvdvGFwV/Qo=
+sigs.k8s.io/controller-runtime v0.19.4/go.mod h1:iRmWllt8IlaLjvTTDLhRBXIEtkCK6hwVBJJsYS9Ajf4=
+sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 h1:/Rv+M11QRah1itp8VhT6HoVx1Ray9eB4DBr+K+/sCJ8=
+sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3/go.mod h1:18nIHnGi6636UCz6m8i4DhaJ65T6EruyzmoQqI2BVDo=
+sigs.k8s.io/structured-merge-diff/v4 v4.4.2 h1:MdmvkGuXi/8io6ixD5wud3vOLwc1rj0aNqRlpuvjmwA=
+sigs.k8s.io/structured-merge-diff/v4 v4.4.2/go.mod h1:N8f93tFZh9U6vpxwRArLiikrE5/2tiu1w1AGfACIGE4=
sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E=
sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY=
diff --git a/staging/api/pkg/operators/v1alpha1/installplan_types.go b/staging/api/pkg/operators/v1alpha1/installplan_types.go
index 09deba525b..3b1b0feedf 100644
--- a/staging/api/pkg/operators/v1alpha1/installplan_types.go
+++ b/staging/api/pkg/operators/v1alpha1/installplan_types.go
@@ -277,6 +277,8 @@ type BundleLookup struct {
CatalogSourceRef *corev1.ObjectReference `json:"catalogSourceRef"`
// Conditions represents the overall state of a BundleLookup.
// +optional
+ // +patchMergeKey=type
+ // +patchStrategy=merge
Conditions []BundleLookupCondition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"`
// The effective properties of the unpacked bundle.
// +optional
diff --git a/staging/api/pkg/operators/v1alpha1/subscription_types.go b/staging/api/pkg/operators/v1alpha1/subscription_types.go
index 292fedf9b9..7aa854f596 100644
--- a/staging/api/pkg/operators/v1alpha1/subscription_types.go
+++ b/staging/api/pkg/operators/v1alpha1/subscription_types.go
@@ -232,6 +232,8 @@ type SubscriptionStatus struct {
// CatalogHealth contains the Subscription's view of its relevant CatalogSources' status.
// It is used to determine SubscriptionStatusConditions related to CatalogSources.
// +optional
+ // +patchMergeKey=
+ // +patchStrategy=merge
CatalogHealth []SubscriptionCatalogHealth `json:"catalogHealth,omitempty"`
// Conditions is a list of the latest available observations about a Subscription's current state.
diff --git a/staging/operator-lifecycle-manager/.bingo/Variables.mk b/staging/operator-lifecycle-manager/.bingo/Variables.mk
index 1ae78a8ee0..25fb171744 100644
--- a/staging/operator-lifecycle-manager/.bingo/Variables.mk
+++ b/staging/operator-lifecycle-manager/.bingo/Variables.mk
@@ -23,29 +23,29 @@ $(BINGO): $(BINGO_DIR)/bingo.mod
@echo "(re)installing $(GOBIN)/bingo-v0.9.0"
@cd $(BINGO_DIR) && GOWORK=off $(GO) build -mod=mod -modfile=bingo.mod -o=$(GOBIN)/bingo-v0.9.0 "github.com/bwplotka/bingo"
-GOLANGCI_LINT := $(GOBIN)/golangci-lint-v1.60.3
+GOLANGCI_LINT := $(GOBIN)/golangci-lint-v1.63.4
$(GOLANGCI_LINT): $(BINGO_DIR)/golangci-lint.mod
@# Install binary/ries using Go 1.14+ build command. This is using bwplotka/bingo-controlled, separate go module with pinned dependencies.
- @echo "(re)installing $(GOBIN)/golangci-lint-v1.60.3"
- @cd $(BINGO_DIR) && GOWORK=off $(GO) build -mod=mod -modfile=golangci-lint.mod -o=$(GOBIN)/golangci-lint-v1.60.3 "github.com/golangci/golangci-lint/cmd/golangci-lint"
+ @echo "(re)installing $(GOBIN)/golangci-lint-v1.63.4"
+ @cd $(BINGO_DIR) && GOWORK=off $(GO) build -mod=mod -modfile=golangci-lint.mod -o=$(GOBIN)/golangci-lint-v1.63.4 "github.com/golangci/golangci-lint/cmd/golangci-lint"
-HELM := $(GOBIN)/helm-v3.15.4
+HELM := $(GOBIN)/helm-v3.16.4
$(HELM): $(BINGO_DIR)/helm.mod
@# Install binary/ries using Go 1.14+ build command. This is using bwplotka/bingo-controlled, separate go module with pinned dependencies.
- @echo "(re)installing $(GOBIN)/helm-v3.15.4"
- @cd $(BINGO_DIR) && GOWORK=off $(GO) build -mod=mod -modfile=helm.mod -o=$(GOBIN)/helm-v3.15.4 "helm.sh/helm/v3/cmd/helm"
+ @echo "(re)installing $(GOBIN)/helm-v3.16.4"
+ @cd $(BINGO_DIR) && GOWORK=off $(GO) build -mod=mod -modfile=helm.mod -o=$(GOBIN)/helm-v3.16.4 "helm.sh/helm/v3/cmd/helm"
-KIND := $(GOBIN)/kind-v0.24.0
+KIND := $(GOBIN)/kind-v0.26.0
$(KIND): $(BINGO_DIR)/kind.mod
@# Install binary/ries using Go 1.14+ build command. This is using bwplotka/bingo-controlled, separate go module with pinned dependencies.
- @echo "(re)installing $(GOBIN)/kind-v0.24.0"
- @cd $(BINGO_DIR) && GOWORK=off $(GO) build -mod=mod -modfile=kind.mod -o=$(GOBIN)/kind-v0.24.0 "sigs.k8s.io/kind"
+ @echo "(re)installing $(GOBIN)/kind-v0.26.0"
+ @cd $(BINGO_DIR) && GOWORK=off $(GO) build -mod=mod -modfile=kind.mod -o=$(GOBIN)/kind-v0.26.0 "sigs.k8s.io/kind"
-SETUP_ENVTEST := $(GOBIN)/setup-envtest-v0.0.0-20240820183333-e6c3d139d2b6
+SETUP_ENVTEST := $(GOBIN)/setup-envtest-v0.0.0-20250109154033-1de5a3e8bae9
$(SETUP_ENVTEST): $(BINGO_DIR)/setup-envtest.mod
@# Install binary/ries using Go 1.14+ build command. This is using bwplotka/bingo-controlled, separate go module with pinned dependencies.
- @echo "(re)installing $(GOBIN)/setup-envtest-v0.0.0-20240820183333-e6c3d139d2b6"
- @cd $(BINGO_DIR) && GOWORK=off $(GO) build -mod=mod -modfile=setup-envtest.mod -o=$(GOBIN)/setup-envtest-v0.0.0-20240820183333-e6c3d139d2b6 "sigs.k8s.io/controller-runtime/tools/setup-envtest"
+ @echo "(re)installing $(GOBIN)/setup-envtest-v0.0.0-20250109154033-1de5a3e8bae9"
+ @cd $(BINGO_DIR) && GOWORK=off $(GO) build -mod=mod -modfile=setup-envtest.mod -o=$(GOBIN)/setup-envtest-v0.0.0-20250109154033-1de5a3e8bae9 "sigs.k8s.io/controller-runtime/tools/setup-envtest"
YQ := $(GOBIN)/yq-v3.0.0-20201202084205-8846255d1c37
$(YQ): $(BINGO_DIR)/yq.mod
diff --git a/staging/operator-lifecycle-manager/.bingo/golangci-lint.mod b/staging/operator-lifecycle-manager/.bingo/golangci-lint.mod
index a834d72961..ce61b4ce0c 100644
--- a/staging/operator-lifecycle-manager/.bingo/golangci-lint.mod
+++ b/staging/operator-lifecycle-manager/.bingo/golangci-lint.mod
@@ -4,4 +4,4 @@ go 1.22.1
toolchain go1.23.0
-require github.com/golangci/golangci-lint v1.60.3 // cmd/golangci-lint
+require github.com/golangci/golangci-lint v1.63.4 // cmd/golangci-lint
diff --git a/staging/operator-lifecycle-manager/.bingo/golangci-lint.sum b/staging/operator-lifecycle-manager/.bingo/golangci-lint.sum
index 69c4f53789..86ca2fb3ce 100644
--- a/staging/operator-lifecycle-manager/.bingo/golangci-lint.sum
+++ b/staging/operator-lifecycle-manager/.bingo/golangci-lint.sum
@@ -37,16 +37,26 @@ cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
github.com/4meepo/tagalign v1.3.4 h1:P51VcvBnf04YkHzjfclN6BbsopfJR5rxs1n+5zHt+w8=
github.com/4meepo/tagalign v1.3.4/go.mod h1:M+pnkHH2vG8+qhE5bVc/zeP7HS/j910Fwa9TUSyZVI0=
+github.com/4meepo/tagalign v1.4.1 h1:GYTu2FaPGOGb/xJalcqHeD4il5BiCywyEYZOA55P6J4=
+github.com/4meepo/tagalign v1.4.1/go.mod h1:2H9Yu6sZ67hmuraFgfZkNcg5Py9Ch/Om9l2K/2W1qS4=
github.com/Abirdcfly/dupword v0.0.14 h1:3U4ulkc8EUo+CaT105/GJ1BQwtgyj6+VaBVbAX11Ba8=
github.com/Abirdcfly/dupword v0.0.14/go.mod h1:VKDAbxdY8YbKUByLGg8EETzYSuC4crm9WwI6Y3S0cLI=
+github.com/Abirdcfly/dupword v0.1.3 h1:9Pa1NuAsZvpFPi9Pqkd93I7LIYRURj+A//dFd5tgBeE=
+github.com/Abirdcfly/dupword v0.1.3/go.mod h1:8VbB2t7e10KRNdwTVoxdBaxla6avbhGzb8sCTygUMhw=
github.com/Antonboom/errname v0.1.13 h1:JHICqsewj/fNckzrfVSe+T33svwQxmjC+1ntDsHOVvM=
github.com/Antonboom/errname v0.1.13/go.mod h1:uWyefRYRN54lBg6HseYCFhs6Qjcy41Y3Jl/dVhA87Ns=
+github.com/Antonboom/errname v1.0.0 h1:oJOOWR07vS1kRusl6YRSlat7HFnb3mSfMl6sDMRoTBA=
+github.com/Antonboom/errname v1.0.0/go.mod h1:gMOBFzK/vrTiXN9Oh+HFs+e6Ndl0eTFbtsRTSRdXyGI=
github.com/Antonboom/nilnil v0.1.9 h1:eKFMejSxPSA9eLSensFmjW2XTgTwJMjZ8hUHtV4s/SQ=
github.com/Antonboom/nilnil v0.1.9/go.mod h1:iGe2rYwCq5/Me1khrysB4nwI7swQvjclR8/YRPl5ihQ=
+github.com/Antonboom/nilnil v1.0.1 h1:C3Tkm0KUxgfO4Duk3PM+ztPncTFlOf0b2qadmS0s4xs=
+github.com/Antonboom/nilnil v1.0.1/go.mod h1:CH7pW2JsRNFgEh8B2UaPZTEPhCMuFowP/e8Udp9Nnb0=
github.com/Antonboom/testifylint v1.3.0 h1:UiqrddKs1W3YK8R0TUuWwrVKlVAnS07DTUVWWs9c+y4=
github.com/Antonboom/testifylint v1.3.0/go.mod h1:NV0hTlteCkViPW9mSR4wEMfwp+Hs1T3dY60bkvSfhpM=
github.com/Antonboom/testifylint v1.4.3 h1:ohMt6AHuHgttaQ1xb6SSnxCeK4/rnK7KKzbvs7DmEck=
github.com/Antonboom/testifylint v1.4.3/go.mod h1:+8Q9+AOLsz5ZiQiiYujJKs9mNz398+M6UgslP4qgJLA=
+github.com/Antonboom/testifylint v1.5.2 h1:4s3Xhuv5AvdIgbd8wOOEeo0uZG7PbDKQyKY5lGoQazk=
+github.com/Antonboom/testifylint v1.5.2/go.mod h1:vxy8VJ0bc6NavlYqjZfmp6EfqXMtBgQ4+mhCojwC1P8=
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0=
github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho=
@@ -57,6 +67,8 @@ github.com/Crocmagnon/fatcontext v0.2.2 h1:OrFlsDdOj9hW/oBEJBNSuH7QWf+E9WPVHw+x5
github.com/Crocmagnon/fatcontext v0.2.2/go.mod h1:WSn/c/+MMNiD8Pri0ahRj0o9jVpeowzavOQplBJw6u0=
github.com/Crocmagnon/fatcontext v0.4.0 h1:4ykozu23YHA0JB6+thiuEv7iT6xq995qS1vcuWZq0tg=
github.com/Crocmagnon/fatcontext v0.4.0/go.mod h1:ZtWrXkgyfsYPzS6K3O88va6t2GEglG93vnII/F94WC0=
+github.com/Crocmagnon/fatcontext v0.5.3 h1:zCh/wjc9oyeF+Gmp+V60wetm8ph2tlsxocgg/J0hOps=
+github.com/Crocmagnon/fatcontext v0.5.3/go.mod h1:XoCQYY1J+XTfyv74qLXvNw4xFunr3L1wkopIIKG7wGM=
github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 h1:sHglBQTwgx+rWPdisA5ynNEsoARbiCBOyGcJM4/OzsM=
github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24/go.mod h1:4UJr5HIiMZrwgkSPdsjy2uOQExX/WEILpIrO9UPGuXs=
github.com/GaijinEntertainment/go-exhaustruct/v3 v3.2.0 h1:sATXp1x6/axKxz2Gjxv8MALP0bXaNRfQinEwyfMcx8c=
@@ -65,10 +77,14 @@ github.com/GaijinEntertainment/go-exhaustruct/v3 v3.3.0 h1:/fTUt5vmbkAcMBt4YQiuC
github.com/GaijinEntertainment/go-exhaustruct/v3 v3.3.0/go.mod h1:ONJg5sxcbsdQQ4pOW8TGdTidT2TMAUy/2Xhr8mrYaao=
github.com/Masterminds/semver/v3 v3.2.1 h1:RN9w6+7QoMeJVGyfmbcgs28Br8cvmnucEXnY0rYXWg0=
github.com/Masterminds/semver/v3 v3.2.1/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ=
+github.com/Masterminds/semver/v3 v3.3.0 h1:B8LGeaivUe71a5qox1ICM/JLl0NqZSW5CHyL+hmvYS0=
+github.com/Masterminds/semver/v3 v3.3.0/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM=
github.com/OpenPeeDeeP/depguard/v2 v2.2.0 h1:vDfG60vDtIuf0MEOhmLlLLSzqaRM8EMcgJPdp74zmpA=
github.com/OpenPeeDeeP/depguard/v2 v2.2.0/go.mod h1:CIzddKRvLBC4Au5aYP/i3nyaWQ+ClszLIuVocRiCYFQ=
github.com/alecthomas/go-check-sumtype v0.1.4 h1:WCvlB3l5Vq5dZQTFmodqL2g68uHiSwwlWcT5a2FGK0c=
github.com/alecthomas/go-check-sumtype v0.1.4/go.mod h1:WyYPfhfkdhyrdaligV6svFopZV8Lqdzn5pyVBaV6jhQ=
+github.com/alecthomas/go-check-sumtype v0.3.1 h1:u9aUvbGINJxLVXiFvHUlPEaD7VDULsrxJb4Aq31NLkU=
+github.com/alecthomas/go-check-sumtype v0.3.1/go.mod h1:A8TSiN3UPRw3laIgWEUOHHLPa6/r9MtoigdlP5h3K/E=
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
@@ -76,34 +92,52 @@ github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRF
github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho=
github.com/alexkohler/nakedret/v2 v2.0.4 h1:yZuKmjqGi0pSmjGpOC016LtPJysIL0WEUiaXW5SUnNg=
github.com/alexkohler/nakedret/v2 v2.0.4/go.mod h1:bF5i0zF2Wo2o4X4USt9ntUWve6JbFv02Ff4vlkmS/VU=
+github.com/alexkohler/nakedret/v2 v2.0.5 h1:fP5qLgtwbx9EJE8dGEERT02YwS8En4r9nnZ71RK+EVU=
+github.com/alexkohler/nakedret/v2 v2.0.5/go.mod h1:bF5i0zF2Wo2o4X4USt9ntUWve6JbFv02Ff4vlkmS/VU=
github.com/alexkohler/prealloc v1.0.0 h1:Hbq0/3fJPQhNkN0dR95AVrr6R7tou91y0uHG5pOcUuw=
github.com/alexkohler/prealloc v1.0.0/go.mod h1:VetnK3dIgFBBKmg0YnD9F9x6Icjd+9cvfHR56wJVlKE=
github.com/alingse/asasalint v0.0.11 h1:SFwnQXJ49Kx/1GghOFz1XGqHYKp21Kq1nHad/0WQRnw=
github.com/alingse/asasalint v0.0.11/go.mod h1:nCaoMhw7a9kSJObvQyVzNTPBDbNpdocqrSP7t/cW5+I=
+github.com/alingse/nilnesserr v0.1.1 h1:7cYuJewpy9jFNMEA72Q1+3Nm3zKHzg+Q28D5f2bBFUA=
+github.com/alingse/nilnesserr v0.1.1/go.mod h1:1xJPrXonEtX7wyTq8Dytns5P2hNzoWymVUIaKm4HNFg=
github.com/ashanbrown/forbidigo v1.6.0 h1:D3aewfM37Yb3pxHujIPSpTf6oQk9sc9WZi8gerOIVIY=
github.com/ashanbrown/forbidigo v1.6.0/go.mod h1:Y8j9jy9ZYAEHXdu723cUlraTqbzjKF1MUyfOKL+AjcU=
github.com/ashanbrown/makezero v1.1.1 h1:iCQ87C0V0vSyO+M9E/FZYbu65auqH0lnsOkf5FcB28s=
github.com/ashanbrown/makezero v1.1.1/go.mod h1:i1bJLCRSCHOcOa9Y6MyF2FTfMZMFdHvxKHxgO5Z1axI=
+github.com/ashanbrown/makezero v1.2.0 h1:/2Lp1bypdmK9wDIq7uWBlDF1iMUpIIS4A+pF6C9IEUU=
+github.com/ashanbrown/makezero v1.2.0/go.mod h1:dxlPhHbDMC6N6xICzFBSK+4njQDdK8euNO0qjQMtGY4=
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
github.com/bkielbasa/cyclop v1.2.1 h1:AeF71HZDob1P2/pRm1so9cd1alZnrpyc4q2uP2l0gJY=
github.com/bkielbasa/cyclop v1.2.1/go.mod h1:K/dT/M0FPAiYjBgQGau7tz+3TMh4FWAEqlMhzFWCrgM=
+github.com/bkielbasa/cyclop v1.2.3 h1:faIVMIGDIANuGPWH031CZJTi2ymOQBULs9H21HSMa5w=
+github.com/bkielbasa/cyclop v1.2.3/go.mod h1:kHTwA9Q0uZqOADdupvcFJQtp/ksSnytRMe8ztxG8Fuo=
github.com/blizzy78/varnamelen v0.8.0 h1:oqSblyuQvFsW1hbBHh1zfwrKe3kcSj0rnXkKzsQ089M=
github.com/blizzy78/varnamelen v0.8.0/go.mod h1:V9TzQZ4fLJ1DSrjVDfl89H7aMnTvKkApdHeyESmyR7k=
github.com/bombsimon/wsl/v4 v4.2.1 h1:Cxg6u+XDWff75SIFFmNsqnIOgob+Q9hG6y/ioKbRFiM=
github.com/bombsimon/wsl/v4 v4.2.1/go.mod h1:Xu/kDxGZTofQcDGCtQe9KCzhHphIe0fDuyWTxER9Feo=
github.com/bombsimon/wsl/v4 v4.4.1 h1:jfUaCkN+aUpobrMO24zwyAMwMAV5eSziCkOKEauOLdw=
github.com/bombsimon/wsl/v4 v4.4.1/go.mod h1:Xu/kDxGZTofQcDGCtQe9KCzhHphIe0fDuyWTxER9Feo=
+github.com/bombsimon/wsl/v4 v4.5.0 h1:iZRsEvDdyhd2La0FVi5k6tYehpOR/R7qIUjmKk7N74A=
+github.com/bombsimon/wsl/v4 v4.5.0/go.mod h1:NOQ3aLF4nD7N5YPXMruR6ZXDOAqLoM0GEpLwTdvmOSc=
github.com/breml/bidichk v0.2.7 h1:dAkKQPLl/Qrk7hnP6P+E0xOodrq8Us7+U0o4UBOAlQY=
github.com/breml/bidichk v0.2.7/go.mod h1:YodjipAGI9fGcYM7II6wFvGhdMYsC5pHDlGzqvEW3tQ=
+github.com/breml/bidichk v0.3.2 h1:xV4flJ9V5xWTqxL+/PMFF6dtJPvZLPsyixAoPe8BGJs=
+github.com/breml/bidichk v0.3.2/go.mod h1:VzFLBxuYtT23z5+iVkamXO386OB+/sVwZOpIj6zXGos=
github.com/breml/errchkjson v0.3.6 h1:VLhVkqSBH96AvXEyclMR37rZslRrY2kcyq+31HCsVrA=
github.com/breml/errchkjson v0.3.6/go.mod h1:jhSDoFheAF2RSDOlCfhHO9KqhZgAYLyvHe7bRCX8f/U=
+github.com/breml/errchkjson v0.4.0 h1:gftf6uWZMtIa/Is3XJgibewBm2ksAQSY/kABDNFTAdk=
+github.com/breml/errchkjson v0.4.0/go.mod h1:AuBOSTHyLSaaAFlWsRSuRBIroCh3eh7ZHh5YeelDIk8=
github.com/butuzov/ireturn v0.3.0 h1:hTjMqWw3y5JC3kpnC5vXmFJAWI/m31jaCYQqzkS6PL0=
github.com/butuzov/ireturn v0.3.0/go.mod h1:A09nIiwiqzN/IoVo9ogpa0Hzi9fex1kd9PSD6edP5ZA=
+github.com/butuzov/ireturn v0.3.1 h1:mFgbEI6m+9W8oP/oDdfA34dLisRFCj2G6o/yiI1yZrY=
+github.com/butuzov/ireturn v0.3.1/go.mod h1:ZfRp+E7eJLC0NQmk1Nrm1LOrn/gQlOykv+cVPdiXH5M=
github.com/butuzov/mirror v1.2.0 h1:9YVK1qIjNspaqWutSv8gsge2e/Xpq1eqEkslEUHy5cs=
github.com/butuzov/mirror v1.2.0/go.mod h1:DqZZDtzm42wIAIyHXeN8W/qb1EPlb9Qn/if9icBOpdQ=
+github.com/butuzov/mirror v1.3.0 h1:HdWCXzmwlQHdVhwvsfBb2Au0r3HyINry3bDWLYXiKoc=
+github.com/butuzov/mirror v1.3.0/go.mod h1:AEij0Z8YMALaq4yQj9CPPVYOyJQyiexpQEQgihajRfI=
github.com/catenacyber/perfsprint v0.7.1 h1:PGW5G/Kxn+YrN04cRAZKC+ZuvlVwolYMrIyyTJ/rMmc=
github.com/catenacyber/perfsprint v0.7.1/go.mod h1:/wclWYompEyjUD2FuIIDVKNkqz7IgBIWXIH3V0Zol50=
github.com/ccojocar/zxcvbn-go v1.0.2 h1:na/czXU8RrhXO4EZme6eQJLR4PzcGsahsBOAwU6I3Vg=
@@ -121,14 +155,20 @@ github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5P
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
github.com/ckaznocha/intrange v0.1.2 h1:3Y4JAxcMntgb/wABQ6e8Q8leMd26JbX2790lIss9MTI=
github.com/ckaznocha/intrange v0.1.2/go.mod h1:RWffCw/vKBwHeOEwWdCikAtY0q4gGt8VhJZEEA5n+RE=
+github.com/ckaznocha/intrange v0.3.0 h1:VqnxtK32pxgkhJgYQEeOArVidIPg+ahLP7WBOXZd5ZY=
+github.com/ckaznocha/intrange v0.3.0/go.mod h1:+I/o2d2A1FBHgGELbGxzIcyd3/9l9DuwjM8FsbSS3Lo=
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
github.com/curioswitch/go-reassign v0.2.0 h1:G9UZyOcpk/d7Gd6mqYgd8XYWFMw/znxwGDUstnC9DIo=
github.com/curioswitch/go-reassign v0.2.0/go.mod h1:x6OpXuWvgfQaMGks2BZybTngWjT84hqJfKoO8Tt/Roc=
+github.com/curioswitch/go-reassign v0.3.0 h1:dh3kpQHuADL3cobV/sSGETA8DOv457dwl+fbBAhrQPs=
+github.com/curioswitch/go-reassign v0.3.0/go.mod h1:nApPCCTtqLJN/s8HfItCcKV0jIPwluBOvZP+dsJGA88=
github.com/daixiang0/gci v0.13.4 h1:61UGkmpoAcxHM2hhNkZEf5SzwQtWJXTSws7jaPyqwlw=
github.com/daixiang0/gci v0.13.4/go.mod h1:12etP2OniiIdP4q+kjUGrC/rUagga7ODbqsom5Eo5Yk=
+github.com/daixiang0/gci v0.13.5 h1:kThgmH1yBmZSBCh1EJVxQ7JsHpm5Oms0AMed/0LaH4c=
+github.com/daixiang0/gci v0.13.5/go.mod h1:12etP2OniiIdP4q+kjUGrC/rUagga7ODbqsom5Eo5Yk=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
@@ -142,6 +182,8 @@ github.com/ettle/strcase v0.2.0 h1:fGNiVF21fHXpX1niBgk0aROov1LagYsOwV/xqKDKR/Q=
github.com/ettle/strcase v0.2.0/go.mod h1:DajmHElDSaX76ITe3/VHVyMin4LWSJN5Z909Wp+ED1A=
github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4=
github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI=
+github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM=
+github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU=
github.com/fatih/structtag v1.2.0 h1:/OdNE99OxoI/PqaW/SuSK9uxxT3f/tcSZgon/ssNSx4=
github.com/fatih/structtag v1.2.0/go.mod h1:mBJUNpUnHmRKrKlQQlmCrh5PuhftFbNv8Ys4/aAZl94=
github.com/firefart/nonamedreturns v1.0.5 h1:tM+Me2ZaXs8tfdDw3X6DOX++wMCOqzYUho6tUTYIdRA=
@@ -152,8 +194,12 @@ github.com/fzipp/gocyclo v0.6.0 h1:lsblElZG7d3ALtGMx9fmxeTKZaLLpU8mET09yN4BBLo=
github.com/fzipp/gocyclo v0.6.0/go.mod h1:rXPyn8fnlpa0R2csP/31uerbiVBugk5whMdlyaLkLoA=
github.com/ghostiam/protogetter v0.3.6 h1:R7qEWaSgFCsy20yYHNIJsU9ZOb8TziSRRxuAOTVKeOk=
github.com/ghostiam/protogetter v0.3.6/go.mod h1:7lpeDnEJ1ZjL/YtyoN99ljO4z0pd3H0d18/t2dPBxHw=
+github.com/ghostiam/protogetter v0.3.8 h1:LYcXbYvybUyTIxN2Mj9h6rHrDZBDwZloPoKctWrFyJY=
+github.com/ghostiam/protogetter v0.3.8/go.mod h1:WZ0nw9pfzsgxuRsPOFQomgDVSWtDLJRfQJEhsGbmQMA=
github.com/go-critic/go-critic v0.11.4 h1:O7kGOCx0NDIni4czrkRIXTnit0mkyKOCePh3My6OyEU=
github.com/go-critic/go-critic v0.11.4/go.mod h1:2QAdo4iuLik5S9YG0rT4wcZ8QxwHYkrr6/2MWAiv/vc=
+github.com/go-critic/go-critic v0.11.5 h1:TkDTOn5v7EEngMxu8KbuFqFR43USaaH8XRJLz1jhVYA=
+github.com/go-critic/go-critic v0.11.5/go.mod h1:wu6U7ny9PiaHaZHcvMDmdysMqvDem162Rh3zWTrqk8M=
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
@@ -185,8 +231,12 @@ github.com/go-viper/mapstructure/v2 v2.0.0-alpha.1 h1:TQcrn6Wq+sKGkpyPvppOz99zsM
github.com/go-viper/mapstructure/v2 v2.0.0-alpha.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM=
github.com/go-viper/mapstructure/v2 v2.0.0 h1:dhn8MZ1gZ0mzeodTG3jt5Vj/o87xZKuNAprG2mQfMfc=
github.com/go-viper/mapstructure/v2 v2.0.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM=
+github.com/go-viper/mapstructure/v2 v2.2.1 h1:ZAaOCxANMuZx5RCeg0mBdEZk7DZasvvZIxtHqx8aGss=
+github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM=
github.com/go-xmlfmt/xmlfmt v1.1.2 h1:Nea7b4icn8s57fTx1M5AI4qQT5HEM3rVUO8MuE6g80U=
github.com/go-xmlfmt/xmlfmt v1.1.2/go.mod h1:aUCEOzzezBEjDBbFBoSiya/gduyIiWYRP6CnSFIV8AM=
+github.com/go-xmlfmt/xmlfmt v1.1.3 h1:t8Ey3Uy7jDSEisW2K3somuMKIpzktkWptA0iFCnRUWY=
+github.com/go-xmlfmt/xmlfmt v1.1.3/go.mod h1:aUCEOzzezBEjDBbFBoSiya/gduyIiWYRP6CnSFIV8AM=
github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y=
github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8=
github.com/gofrs/flock v0.8.1 h1:+gYjHKf32LDeiEEFhQaotPbLuUXjY5ZqxKgXy7n59aw=
@@ -225,14 +275,20 @@ github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg
github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a h1:w8hkcTqaFpzKqonE9uMCefW1WDie15eSP/4MssdenaM=
github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a/go.mod h1:ryS0uhF+x9jgbj/N71xsEqODy9BN81/GonCZiOzirOk=
+github.com/golangci/go-printf-func-name v0.1.0 h1:dVokQP+NMTO7jwO4bwsRwLWeudOVUPPyAKJuzv8pEJU=
+github.com/golangci/go-printf-func-name v0.1.0/go.mod h1:wqhWFH5mUdJQhweRnldEywnR5021wTdZSNgwYceV14s=
github.com/golangci/gofmt v0.0.0-20231018234816-f50ced29576e h1:ULcKCDV1LOZPFxGZaA6TlQbiM3J2GCPnkx/bGF6sX/g=
github.com/golangci/gofmt v0.0.0-20231018234816-f50ced29576e/go.mod h1:Pm5KhLPA8gSnQwrQ6ukebRcapGb/BG9iUkdaiCcGHJM=
github.com/golangci/gofmt v0.0.0-20240816233607-d8596aa466a9 h1:/1322Qns6BtQxUZDTAT4SdcoxknUki7IAoK4SAXr8ME=
github.com/golangci/gofmt v0.0.0-20240816233607-d8596aa466a9/go.mod h1:Oesb/0uFAyWoaw1U1qS5zyjCg5NP9C9iwjnI4tIsXEE=
+github.com/golangci/gofmt v0.0.0-20241223200906-057b0627d9b9 h1:t5wybL6RtO83VwoMOb7U/Peqe3gGKQlPIC66wXmnkvM=
+github.com/golangci/gofmt v0.0.0-20241223200906-057b0627d9b9/go.mod h1:Ag3L7sh7E28qAp/5xnpMMTuGYqxLZoSaEHZDkZB1RgU=
github.com/golangci/golangci-lint v1.59.0 h1:st69YDnAH/v2QXDcgUaZ0seQajHScPALBVkyitYLXEk=
github.com/golangci/golangci-lint v1.59.0/go.mod h1:QNA32UWdUdHXnu+Ap5/ZU4WVwyp2tL94UxEXrSErjg0=
github.com/golangci/golangci-lint v1.60.3 h1:l38A5de24ZeDlcFF+EB7m3W5joPD99/hS5SIHJPyZa0=
github.com/golangci/golangci-lint v1.60.3/go.mod h1:J4vOpcjzRI+lDL2DKNGBZVB3EQSBfCBCMpaydWLtJNo=
+github.com/golangci/golangci-lint v1.63.4 h1:bJQFQ3hSfUto597dkL7ipDzOxsGEpiWdLiZ359OWOBI=
+github.com/golangci/golangci-lint v1.63.4/go.mod h1:Hx0B7Lg5/NXbaOHem8+KU+ZUIzMI6zNj/7tFwdnn10I=
github.com/golangci/misspell v0.5.1 h1:/SjR1clj5uDjNLwYzCahHwIOPmQgoH04AyQIiWGbhCM=
github.com/golangci/misspell v0.5.1/go.mod h1:keMNyY6R9isGaSAu+4Q8NMBwMPkh15Gtc8UCVoDtAWo=
github.com/golangci/misspell v0.6.0 h1:JCle2HUTNWirNlDIAUO44hUsKhOFqGPoC4LZxlaSXDs=
@@ -286,11 +342,15 @@ github.com/gostaticanalysis/forcetypeassert v0.1.0/go.mod h1:qZEedyP/sY1lTGV1uJ3
github.com/gostaticanalysis/nilerr v0.1.1 h1:ThE+hJP0fEp4zWLkWHWcRyI2Od0p7DlgYG3Uqrmrcpk=
github.com/gostaticanalysis/nilerr v0.1.1/go.mod h1:wZYb6YI5YAxxq0i1+VJbY0s2YONW0HU0GPE3+5PWN4A=
github.com/gostaticanalysis/testutil v0.3.1-0.20210208050101-bfb5c8eec0e4/go.mod h1:D+FIZ+7OahH3ePw/izIEeH5I06eKs1IKI4Xr64/Am3M=
+github.com/hashicorp/go-immutable-radix/v2 v2.1.0 h1:CUW5RYIcysz+D3B+l1mDeXrQ7fUvGGCwJfdASSzbrfo=
+github.com/hashicorp/go-immutable-radix/v2 v2.1.0/go.mod h1:hgdqLXA4f6NIjRVisM1TJ9aOJVNRqKZj+xDGF6m7PBw=
github.com/hashicorp/go-version v1.2.1/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA=
github.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKeRZfjY=
github.com/hashicorp/go-version v1.7.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA=
github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
+github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k=
+github.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM=
github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
github.com/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUqJM=
@@ -308,6 +368,8 @@ github.com/jjti/go-spancheck v0.6.1 h1:ZK/wE5Kyi1VX3PJpUO2oEgeoI4FWOUm7Shb2Gbv5o
github.com/jjti/go-spancheck v0.6.1/go.mod h1:vF1QkOO159prdo6mHRxak2CpzDpHAfKiPUDP/NeRnX8=
github.com/jjti/go-spancheck v0.6.2 h1:iYtoxqPMzHUPp7St+5yA8+cONdyXD3ug6KK15n7Pklk=
github.com/jjti/go-spancheck v0.6.2/go.mod h1:+X7lvIrR5ZdUTkxFYqzJ0abr8Sb5LOo80uOhWNqIrYA=
+github.com/jjti/go-spancheck v0.6.4 h1:Tl7gQpYf4/TMU7AT84MN83/6PutY21Nb9fuQjFTpRRc=
+github.com/jjti/go-spancheck v0.6.4/go.mod h1:yAEYdKJ2lRkDA8g7X+oKUHXOWVAXSBJRv04OhF+QUjk=
github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4=
github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
@@ -319,10 +381,14 @@ github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7V
github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM=
github.com/julz/importas v0.1.0 h1:F78HnrsjY3cR7j0etXy5+TU1Zuy7Xt08X/1aJnH5xXY=
github.com/julz/importas v0.1.0/go.mod h1:oSFU2R4XK/P7kNBrnL/FEQlDGN1/6WoxXEjSSXO0DV0=
+github.com/julz/importas v0.2.0 h1:y+MJN/UdL63QbFJHws9BVC5RpA2iq0kpjrFajTGivjQ=
+github.com/julz/importas v0.2.0/go.mod h1:pThlt589EnCYtMnmhmRYY/qn9lCf/frPOK+WMx3xiJY=
github.com/karamaru-alpha/copyloopvar v1.1.0 h1:x7gNyKcC2vRBO1H2Mks5u1VxQtYvFiym7fCjIP8RPos=
github.com/karamaru-alpha/copyloopvar v1.1.0/go.mod h1:u7CIfztblY0jZLOQZgH3oYsJzpC2A7S6u/lfgSXHy0k=
github.com/kisielk/errcheck v1.7.0 h1:+SbscKmWJ5mOK/bO1zS60F5I9WwZDWOfRsC4RwfwRV0=
github.com/kisielk/errcheck v1.7.0/go.mod h1:1kLL+jV4e+CFfueBmI1dSK2ADDyQnlrnrY/FqKluHJQ=
+github.com/kisielk/errcheck v1.8.0 h1:ZX/URYa7ilESY19ik/vBmCn6zdGQLxACwjAcWbHlYlg=
+github.com/kisielk/errcheck v1.8.0/go.mod h1:1kLL+jV4e+CFfueBmI1dSK2ADDyQnlrnrY/FqKluHJQ=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
github.com/kkHAIKE/contextcheck v1.1.5 h1:CdnJh63tcDe53vG+RebdpdXJTc9atMgGqdx8LXxiilg=
github.com/kkHAIKE/contextcheck v1.1.5/go.mod h1:O930cpht4xb1YQpK+1+AgoM3mFsvxr7uyFptcnWTYUA=
@@ -340,10 +406,22 @@ github.com/kyoh86/exportloopref v0.1.11 h1:1Z0bcmTypkL3Q4k+IDHMWTcnCliEZcaPiIe0/
github.com/kyoh86/exportloopref v0.1.11/go.mod h1:qkV4UF1zGl6EkF1ox8L5t9SwyeBAZ3qLMd6up458uqA=
github.com/lasiar/canonicalheader v1.1.1 h1:wC+dY9ZfiqiPwAexUApFush/csSPXeIi4QqyxXmng8I=
github.com/lasiar/canonicalheader v1.1.1/go.mod h1:cXkb3Dlk6XXy+8MVQnF23CYKWlyA7kfQhSw2CcZtZb0=
+github.com/lasiar/canonicalheader v1.1.2 h1:vZ5uqwvDbyJCnMhmFYimgMZnJMjwljN5VGY0VKbMXb4=
+github.com/lasiar/canonicalheader v1.1.2/go.mod h1:qJCeLFS0G/QlLQ506T+Fk/fWMa2VmBUiEI2cuMK4djI=
+github.com/ldez/exptostd v0.3.1 h1:90yWWoAKMFHeovTK8uzBms9Ppp8Du/xQ20DRO26Ymrw=
+github.com/ldez/exptostd v0.3.1/go.mod h1:iZBRYaUmcW5jwCR3KROEZ1KivQQp6PHXbDPk9hqJKCQ=
github.com/ldez/gomoddirectives v0.2.4 h1:j3YjBIjEBbqZ0NKtBNzr8rtMHTOrLPeiwTkfUJZ3alg=
github.com/ldez/gomoddirectives v0.2.4/go.mod h1:oWu9i62VcQDYp9EQ0ONTfqLNh+mDLWWDO+SO0qSQw5g=
+github.com/ldez/gomoddirectives v0.6.0 h1:Jyf1ZdTeiIB4dd+2n4qw+g4aI9IJ6JyfOZ8BityWvnA=
+github.com/ldez/gomoddirectives v0.6.0/go.mod h1:TuwOGYoPAoENDWQpe8DMqEm5nIfjrxZXmxX/CExWyZ4=
+github.com/ldez/grignotin v0.7.0 h1:vh0dI32WhHaq6LLPZ38g7WxXuZ1+RzyrJ7iPG9JMa8c=
+github.com/ldez/grignotin v0.7.0/go.mod h1:uaVTr0SoZ1KBii33c47O1M8Jp3OP3YDwhZCmzT9GHEk=
github.com/ldez/tagliatelle v0.5.0 h1:epgfuYt9v0CG3fms0pEgIMNPuFf/LpPIfjk4kyqSioo=
github.com/ldez/tagliatelle v0.5.0/go.mod h1:rj1HmWiL1MiKQuOONhd09iySTEkUuE/8+5jtPYz9xa4=
+github.com/ldez/tagliatelle v0.7.1 h1:bTgKjjc2sQcsgPiT902+aadvMjCeMHrY7ly2XKFORIk=
+github.com/ldez/tagliatelle v0.7.1/go.mod h1:3zjxUpsNB2aEZScWiZTHrAXOl1x25t3cRmzfK1mlo2I=
+github.com/ldez/usetesting v0.4.2 h1:J2WwbrFGk3wx4cZwSMiCQQ00kjGR0+tuuyW0Lqm4lwA=
+github.com/ldez/usetesting v0.4.2/go.mod h1:eEs46T3PpQ+9RgN9VjpY6qWdiw2/QmfiDeWmdZdrjIQ=
github.com/leonklingele/grouper v1.1.2 h1:o1ARBDLOmmasUaNDesWqWCIFH3u7hoFlM84YrjT3mIY=
github.com/leonklingele/grouper v1.1.2/go.mod h1:6D0M/HVkhs2yRKRFZUoGjeDy7EZTfFBE9gl4kjmIGkA=
github.com/lufeee/execinquery v1.2.1 h1:hf0Ems4SHcUGBxpGN7Jz78z1ppVkP/837ZlETPCEtOM=
@@ -366,12 +444,16 @@ github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWE
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0=
github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
+github.com/mattn/go-runewidth v0.0.16 h1:E5ScNMtiwvlvB5paMFdw9p4kSQzbXFikJ5SQO6TULQc=
+github.com/mattn/go-runewidth v0.0.16/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU=
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
github.com/mgechev/revive v1.3.7 h1:502QY0vQGe9KtYJ9FpxMz9rL+Fc/P13CI5POL4uHCcE=
github.com/mgechev/revive v1.3.7/go.mod h1:RJ16jUbF0OWC3co/+XTxmFNgEpUPwnnA0BRllX2aDNA=
github.com/mgechev/revive v1.3.9 h1:18Y3R4a2USSBF+QZKFQwVkBROUda7uoBlkEuBD+YD1A=
github.com/mgechev/revive v1.3.9/go.mod h1:+uxEIr5UH0TjXWHTno3xh4u7eg6jDpXKzQccA9UGhHU=
+github.com/mgechev/revive v1.5.1 h1:hE+QPeq0/wIzJwOphdVyUJ82njdd8Khp4fUIHGZHW3M=
+github.com/mgechev/revive v1.5.1/go.mod h1:lC9AhkJIBs5zwx8wkudyHrU+IJkrEKmpCmGMnIJPk4o=
github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y=
github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
@@ -395,6 +477,8 @@ github.com/nishanths/predeclared v0.2.2 h1:V2EPdZPliZymNAn79T8RkNApBjMmVKh5XRpLm
github.com/nishanths/predeclared v0.2.2/go.mod h1:RROzoN6TnGQupbC+lqggsOlcgysk3LMK/HI84Mp280c=
github.com/nunnatsa/ginkgolinter v0.16.2 h1:8iLqHIZvN4fTLDC0Ke9tbSZVcyVHoBs0HIbnVSxfHJk=
github.com/nunnatsa/ginkgolinter v0.16.2/go.mod h1:4tWRinDN1FeJgU+iJANW/kz7xKN5nYRAOfJDQUS9dOQ=
+github.com/nunnatsa/ginkgolinter v0.18.4 h1:zmX4KUR+6fk/vhUFt8DOP6KwznekhkmVSzzVJve2vyM=
+github.com/nunnatsa/ginkgolinter v0.18.4/go.mod h1:AMEane4QQ6JwFz5GgjI5xLUM9S/CylO+UyM97fN2iBI=
github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec=
github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY=
github.com/otiai10/copy v1.2.0/go.mod h1:rrF5dJ5F0t/EWSYODDu4j9/vEeYHMkc8jt0zJChqQWw=
@@ -406,6 +490,8 @@ github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3v
github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c=
github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6Wq+LM=
github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs=
+github.com/pelletier/go-toml/v2 v2.2.3 h1:YmeHyLY8mFWbdkNWwpr+qIL2bEqT0o95WSdkNHvL12M=
+github.com/pelletier/go-toml/v2 v2.2.3/go.mod h1:MfCQTFTvCcUyyvvwm1+G6H/jORL20Xlb6rzQu9GuUkc=
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
@@ -415,6 +501,8 @@ github.com/polyfloyd/go-errorlint v1.5.1 h1:5gHxDjLyyWij7fhfrjYNNlHsUNQeyx0LFQKU
github.com/polyfloyd/go-errorlint v1.5.1/go.mod h1:sH1QC1pxxi0fFecsVIzBmxtrgd9IF/SkJpA6wqyKAJs=
github.com/polyfloyd/go-errorlint v1.6.0 h1:tftWV9DE7txiFzPpztTAwyoRLKNj9gpVm2cg8/OwcYY=
github.com/polyfloyd/go-errorlint v1.6.0/go.mod h1:HR7u8wuP1kb1NeN1zqTd1ZMlqUKPPHF+Id4vIPvDqVw=
+github.com/polyfloyd/go-errorlint v1.7.0 h1:Zp6lzCK4hpBDj8y8a237YK4EPrMXQWvOe3nGoH4pFrU=
+github.com/polyfloyd/go-errorlint v1.7.0/go.mod h1:dGWKu85mGHnegQ2SWpEybFityCg3j7ZbwsVUxAOk9gY=
github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=
github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M=
@@ -439,6 +527,8 @@ github.com/prometheus/procfs v0.7.3 h1:4jVXhlkAyzOScmCkXBTOLRLTz8EeU+eyjrwB/EPq0
github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
github.com/quasilyte/go-ruleguard v0.4.2 h1:htXcXDK6/rO12kiTHKfHuqR4kr3Y4M0J0rOL6CH/BYs=
github.com/quasilyte/go-ruleguard v0.4.2/go.mod h1:GJLgqsLeo4qgavUoL8JeGFNS7qcisx3awV/w9eWTmNI=
+github.com/quasilyte/go-ruleguard v0.4.3-0.20240823090925-0fe6f58b47b1 h1:+Wl/0aFp0hpuHM3H//KMft64WQ1yX9LdJY64Qm/gFCo=
+github.com/quasilyte/go-ruleguard v0.4.3-0.20240823090925-0fe6f58b47b1/go.mod h1:GJLgqsLeo4qgavUoL8JeGFNS7qcisx3awV/w9eWTmNI=
github.com/quasilyte/go-ruleguard/dsl v0.3.22 h1:wd8zkOhSNr+I+8Qeciml08ivDt1pSXe60+5DqOpCjPE=
github.com/quasilyte/go-ruleguard/dsl v0.3.22/go.mod h1:KeCP03KrjuSO0H1kTuZQCWlQPulDV6YMIXmpQss17rU=
github.com/quasilyte/gogrep v0.5.0 h1:eTKODPXbI8ffJMN+W2aE0+oL0z/nh8/5eNdiO34SOAo=
@@ -447,28 +537,45 @@ github.com/quasilyte/regex/syntax v0.0.0-20210819130434-b3f0c404a727 h1:TCg2WBOl
github.com/quasilyte/regex/syntax v0.0.0-20210819130434-b3f0c404a727/go.mod h1:rlzQ04UMyJXu/aOvhd8qT+hvDrFpiwqp8MRXDY9szc0=
github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567 h1:M8mH9eK4OUR4lu7Gd+PU1fV2/qnDNfzT635KRSObncs=
github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567/go.mod h1:DWNGW8A4Y+GyBgPuaQJuWiy0XYftx4Xm/y5Jqk9I6VQ=
+github.com/raeperd/recvcheck v0.2.0 h1:GnU+NsbiCqdC2XX5+vMZzP+jAJC5fht7rcVTAhX74UI=
+github.com/raeperd/recvcheck v0.2.0/go.mod h1:n04eYkwIR0JbgD73wT8wL4JjPC3wm0nFtzBnWNocnYU=
+github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
+github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ=
+github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
+github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII=
+github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o=
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/ryancurrah/gomodguard v1.3.2 h1:CuG27ulzEB1Gu5Dk5gP8PFxSOZ3ptSdP5iI/3IXxM18=
github.com/ryancurrah/gomodguard v1.3.2/go.mod h1:LqdemiFomEjcxOqirbQCb3JFvSxH2JUYMerTFd3sF2o=
github.com/ryancurrah/gomodguard v1.3.3 h1:eiSQdJVNr9KTNxY2Niij8UReSwR8Xrte3exBrAZfqpg=
github.com/ryancurrah/gomodguard v1.3.3/go.mod h1:rsKQjj4l3LXe8N344Ow7agAy5p9yjsWOtRzUMYmA0QY=
+github.com/ryancurrah/gomodguard v1.3.5 h1:cShyguSwUEeC0jS7ylOiG/idnd1TpJ1LfHGpV3oJmPU=
+github.com/ryancurrah/gomodguard v1.3.5/go.mod h1:MXlEPQRxgfPQa62O8wzK3Ozbkv9Rkqr+wKjSxTdsNJE=
github.com/ryanrolds/sqlclosecheck v0.5.1 h1:dibWW826u0P8jNLsLN+En7+RqWWTYrjCB9fJfSfdyCU=
github.com/ryanrolds/sqlclosecheck v0.5.1/go.mod h1:2g3dUjoS6AL4huFdv6wn55WpLIDjY7ZgUR4J8HOO/XQ=
github.com/sanposhiho/wastedassign/v2 v2.0.7 h1:J+6nrY4VW+gC9xFzUc+XjPD3g3wF3je/NsJFwFK7Uxc=
github.com/sanposhiho/wastedassign/v2 v2.0.7/go.mod h1:KyZ0MWTwxxBmfwn33zh3k1dmsbF2ud9pAAGfoLfjhtI=
+github.com/sanposhiho/wastedassign/v2 v2.1.0 h1:crurBF7fJKIORrV85u9UUpePDYGWnwvv3+A96WvwXT0=
+github.com/sanposhiho/wastedassign/v2 v2.1.0/go.mod h1:+oSmSC+9bQ+VUAxA66nBb0Z7N8CK7mscKTDYC6aIek4=
github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 h1:lZUw3E0/J3roVtGQ+SCrUrg3ON6NgVqpn3+iol9aGu4=
github.com/santhosh-tekuri/jsonschema/v5 v5.3.1/go.mod h1:uToXkOrWAZ6/Oc07xWQrPOhJotwFIyu2bBVN41fcDUY=
+github.com/santhosh-tekuri/jsonschema/v6 v6.0.1 h1:PKK9DyHxif4LZo+uQSgXNqs0jj5+xZwwfKHgph2lxBw=
+github.com/santhosh-tekuri/jsonschema/v6 v6.0.1/go.mod h1:JXeL+ps8p7/KNMjDQk3TCwPpBy0wYklyWTfbkIzdIFU=
github.com/sashamelentyev/interfacebloat v1.1.0 h1:xdRdJp0irL086OyW1H/RTZTr1h/tMEOsumirXcOJqAw=
github.com/sashamelentyev/interfacebloat v1.1.0/go.mod h1:+Y9yU5YdTkrNvoX0xHc84dxiN1iBi9+G8zZIhPVoNjQ=
github.com/sashamelentyev/usestdlibvars v1.25.0 h1:IK8SI2QyFzy/2OD2PYnhy84dpfNo9qADrRt6LH8vSzU=
github.com/sashamelentyev/usestdlibvars v1.25.0/go.mod h1:9nl0jgOfHKWNFS43Ojw0i7aRoS4j6EBye3YBhmAIRF8=
github.com/sashamelentyev/usestdlibvars v1.27.0 h1:t/3jZpSXtRPRf2xr0m63i32ZrusyurIGT9E5wAvXQnI=
github.com/sashamelentyev/usestdlibvars v1.27.0/go.mod h1:9nl0jgOfHKWNFS43Ojw0i7aRoS4j6EBye3YBhmAIRF8=
+github.com/sashamelentyev/usestdlibvars v1.28.0 h1:jZnudE2zKCtYlGzLVreNp5pmCdOxXUzwsMDBkR21cyQ=
+github.com/sashamelentyev/usestdlibvars v1.28.0/go.mod h1:9nl0jgOfHKWNFS43Ojw0i7aRoS4j6EBye3YBhmAIRF8=
github.com/securego/gosec/v2 v2.20.1-0.20240525090044-5f0084eb01a9 h1:rnO6Zp1YMQwv8AyxzuwsVohljJgp4L0ZqiCgtACsPsc=
github.com/securego/gosec/v2 v2.20.1-0.20240525090044-5f0084eb01a9/go.mod h1:dg7lPlu/xK/Ut9SedURCoZbVCR4yC7fM65DtH9/CDHs=
github.com/securego/gosec/v2 v2.20.1-0.20240822074752-ab3f6c1c83a0 h1:VqD4JMoqwuuCz8GZlBDsIDyE6K4YUsWJpbNtuOWHoFk=
github.com/securego/gosec/v2 v2.20.1-0.20240822074752-ab3f6c1c83a0/go.mod h1:iyeMMRw8QEmueUSZ2VqmkQMiDyDcobfPnG00CV/NWdE=
+github.com/securego/gosec/v2 v2.21.4 h1:Le8MSj0PDmOnHJgUATjD96PaXRvCpKC+DGJvwyy0Mlk=
+github.com/securego/gosec/v2 v2.21.4/go.mod h1:Jtb/MwRQfRxCXyCm1rfM1BEiiiTfUOdyzzAhlr6lUTA=
github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c h1:W65qqJCIOVP4jpqPQ0YvHYKwcMEMVWIzWC5iNQQfBTU=
github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c/go.mod h1:/PevMnwAxekIXwN8qQyfc5gl2NlkB3CQlkizAbOkeBs=
github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk=
@@ -484,8 +591,12 @@ github.com/sivchari/tenv v1.7.1 h1:PSpuD4bu6fSmtWMxSGWcvqUUgIn7k3yOJhOIzVWn8Ak=
github.com/sivchari/tenv v1.7.1/go.mod h1:64yStXKSOxDfX47NlhVwND4dHwfZDdbp2Lyl018Icvg=
github.com/sivchari/tenv v1.10.0 h1:g/hzMA+dBCKqGXgW8AV/1xIWhAvDrx0zFKNR48NFMg0=
github.com/sivchari/tenv v1.10.0/go.mod h1:tdY24masnVoZFxYrHv/nD6Tc8FbkEtAQEEziXpyMgqY=
+github.com/sivchari/tenv v1.12.1 h1:+E0QzjktdnExv/wwsnnyk4oqZBUfuh89YMQT1cyuvSY=
+github.com/sivchari/tenv v1.12.1/go.mod h1:1LjSOUCc25snIr5n3DtGGrENhX3LuWefcplwVGC24mw=
github.com/sonatard/noctx v0.0.2 h1:L7Dz4De2zDQhW8S0t+KUjY0MAQJd6SgVwhzNIc4ok00=
github.com/sonatard/noctx v0.0.2/go.mod h1:kzFz+CzWSjQ2OzIm46uJZoXuBpa2+0y3T36U18dWqIo=
+github.com/sonatard/noctx v0.1.0 h1:JjqOc2WN16ISWAjAk8M5ej0RfExEXtkEyExl2hLW+OM=
+github.com/sonatard/noctx v0.1.0/go.mod h1:0RvBxqY8D4j9cTTTWE8ylt2vqj2EPI8fHmrxHdsaZ2c=
github.com/sourcegraph/go-diff v0.7.0 h1:9uLlrd5T46OXs5qpp8L/MTltk0zikUGi0sNNyCpA8G0=
github.com/sourcegraph/go-diff v0.7.0/go.mod h1:iBszgVvyxdc8SFZ7gm69go2KDdt3ag071iBaWPF6cjs=
github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8=
@@ -506,6 +617,8 @@ github.com/ssgreg/nlreturn/v2 v2.2.1 h1:X4XDI7jstt3ySqGU86YGAURbxw3oTDPK9sPEi6YE
github.com/ssgreg/nlreturn/v2 v2.2.1/go.mod h1:E/iiPB78hV7Szg2YfRgyIrk1AD6JVMTRkkxBiELzh2I=
github.com/stbenjam/no-sprintf-host-port v0.1.1 h1:tYugd/yrm1O0dV+ThCbaKZh195Dfm07ysF0U6JQXczc=
github.com/stbenjam/no-sprintf-host-port v0.1.1/go.mod h1:TLhvtIvONRzdmkFiio4O8LHsN9N74I+PhRquPsxpL0I=
+github.com/stbenjam/no-sprintf-host-port v0.2.0 h1:i8pxvGrt1+4G0czLr/WnmyH7zbZ8Bg8etvARQ1rpyl4=
+github.com/stbenjam/no-sprintf-host-port v0.2.0/go.mod h1:eL0bQ9PasS0hsyTyfTjjG+E80QIyPnBVQbYZyv20Jfk=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
@@ -522,34 +635,54 @@ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
+github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
+github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
github.com/subosito/gotenv v1.4.1 h1:jyEFiXpy21Wm81FBN71l9VoMMV8H8jG+qIK3GCpY6Qs=
github.com/subosito/gotenv v1.4.1/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0=
github.com/t-yuki/gocover-cobertura v0.0.0-20180217150009-aaee18c8195c h1:+aPplBwWcHBo6q9xrfWdMrT9o4kltkmmvpemgIjep/8=
github.com/t-yuki/gocover-cobertura v0.0.0-20180217150009-aaee18c8195c/go.mod h1:SbErYREK7xXdsRiigaQiQkI9McGRzYMvlKYaP3Nimdk=
github.com/tdakkota/asciicheck v0.2.0 h1:o8jvnUANo0qXtnslk2d3nMKTFNlOnJjRrNcj0j9qkHM=
github.com/tdakkota/asciicheck v0.2.0/go.mod h1:Qb7Y9EgjCLJGup51gDHFzbI08/gbGhL/UVhYIPWG2rg=
+github.com/tdakkota/asciicheck v0.3.0 h1:LqDGgZdholxZMaJgpM6b0U9CFIjDCbFdUF00bDnBKOQ=
+github.com/tdakkota/asciicheck v0.3.0/go.mod h1:KoJKXuX/Z/lt6XzLo8WMBfQGzak0SrAKZlvRr4tg8Ac=
github.com/tenntenn/modver v1.0.1/go.mod h1:bePIyQPb7UeioSRkw3Q0XeMhYZSMx9B8ePqg6SAMGH0=
github.com/tenntenn/text/transform v0.0.0-20200319021203-7eef512accb3/go.mod h1:ON8b8w4BN/kE1EOhwT0o+d62W65a6aPw1nouo9LMgyY=
github.com/tetafro/godot v1.4.16 h1:4ChfhveiNLk4NveAZ9Pu2AN8QZ2nkUGFuadM9lrr5D0=
github.com/tetafro/godot v1.4.16/go.mod h1:2oVxTBSftRTh4+MVfUaUXR6bn2GDXCaMcOG4Dk3rfio=
+github.com/tetafro/godot v1.4.20 h1:z/p8Ek55UdNvzt4TFn2zx2KscpW4rWqcnUrdmvWJj7E=
+github.com/tetafro/godot v1.4.20/go.mod h1:2oVxTBSftRTh4+MVfUaUXR6bn2GDXCaMcOG4Dk3rfio=
github.com/timakin/bodyclose v0.0.0-20230421092635-574207250966 h1:quvGphlmUVU+nhpFa4gg4yJyTRJ13reZMDHrKwYw53M=
github.com/timakin/bodyclose v0.0.0-20230421092635-574207250966/go.mod h1:27bSVNWSBOHm+qRp1T9qzaIpsWEP6TbUnei/43HK+PQ=
+github.com/timakin/bodyclose v0.0.0-20241017074812-ed6a65f985e3 h1:y4mJRFlM6fUyPhoXuFg/Yu02fg/nIPFMOY8tOqppoFg=
+github.com/timakin/bodyclose v0.0.0-20241017074812-ed6a65f985e3/go.mod h1:mkjARE7Yr8qU23YcGMSALbIxTQ9r9QBVahQOBRfU460=
github.com/timonwong/loggercheck v0.9.4 h1:HKKhqrjcVj8sxL7K77beXh0adEm6DLjV/QOGeMXEVi4=
github.com/timonwong/loggercheck v0.9.4/go.mod h1:caz4zlPcgvpEkXgVnAJGowHAMW2NwHaNlpS8xDbVhTg=
+github.com/timonwong/loggercheck v0.10.1 h1:uVZYClxQFpw55eh+PIoqM7uAOHMrhVcDoWDery9R8Lg=
+github.com/timonwong/loggercheck v0.10.1/go.mod h1:HEAWU8djynujaAVX7QI65Myb8qgfcZ1uKbdpg3ZzKl8=
github.com/tomarrell/wrapcheck/v2 v2.8.3 h1:5ov+Cbhlgi7s/a42BprYoxsr73CbdMUTzE3bRDFASUs=
github.com/tomarrell/wrapcheck/v2 v2.8.3/go.mod h1:g9vNIyhb5/9TQgumxQyOEqDHsmGYcGsVMOx/xGkqdMo=
github.com/tomarrell/wrapcheck/v2 v2.9.0 h1:801U2YCAjLhdN8zhZ/7tdjB3EnAoRlJHt/s+9hijLQ4=
github.com/tomarrell/wrapcheck/v2 v2.9.0/go.mod h1:g9vNIyhb5/9TQgumxQyOEqDHsmGYcGsVMOx/xGkqdMo=
+github.com/tomarrell/wrapcheck/v2 v2.10.0 h1:SzRCryzy4IrAH7bVGG4cK40tNUhmVmMDuJujy4XwYDg=
+github.com/tomarrell/wrapcheck/v2 v2.10.0/go.mod h1:g9vNIyhb5/9TQgumxQyOEqDHsmGYcGsVMOx/xGkqdMo=
github.com/tommy-muehle/go-mnd/v2 v2.5.1 h1:NowYhSdyE/1zwK9QCLeRb6USWdoif80Ie+v+yU8u1Zw=
github.com/tommy-muehle/go-mnd/v2 v2.5.1/go.mod h1:WsUAkMJMYww6l/ufffCD3m+P7LEvr8TnZn9lwVDlgzw=
github.com/ultraware/funlen v0.1.0 h1:BuqclbkY6pO+cvxoq7OsktIXZpgBSkYTQtmwhAK81vI=
github.com/ultraware/funlen v0.1.0/go.mod h1:XJqmOQja6DpxarLj6Jj1U7JuoS8PvL4nEqDaQhy22p4=
+github.com/ultraware/funlen v0.2.0 h1:gCHmCn+d2/1SemTdYMiKLAHFYxTYz7z9VIDRaTGyLkI=
+github.com/ultraware/funlen v0.2.0/go.mod h1:ZE0q4TsJ8T1SQcjmkhN/w+MceuatI6pBFSxxyteHIJA=
github.com/ultraware/whitespace v0.1.1 h1:bTPOGejYFulW3PkcrqkeQwOd6NKOOXvmGD9bo/Gk8VQ=
github.com/ultraware/whitespace v0.1.1/go.mod h1:XcP1RLD81eV4BW8UhQlpaR+SDc2givTvyI8a586WjW8=
+github.com/ultraware/whitespace v0.2.0 h1:TYowo2m9Nfj1baEQBjuHzvMRbp19i+RCcRYrSWoFa+g=
+github.com/ultraware/whitespace v0.2.0/go.mod h1:XcP1RLD81eV4BW8UhQlpaR+SDc2givTvyI8a586WjW8=
github.com/uudashr/gocognit v1.1.2 h1:l6BAEKJqQH2UpKAPKdMfZf5kE4W/2xk8pfU1OVLvniI=
github.com/uudashr/gocognit v1.1.2/go.mod h1:aAVdLURqcanke8h3vg35BC++eseDm66Z7KmchI5et4k=
github.com/uudashr/gocognit v1.1.3 h1:l+a111VcDbKfynh+airAy/DJQKaXh2m9vkoysMPSZyM=
github.com/uudashr/gocognit v1.1.3/go.mod h1:aKH8/e8xbTRBwjbCkwZ8qt4l2EpKXl31KMHgSS+lZ2U=
+github.com/uudashr/gocognit v1.2.0 h1:3BU9aMr1xbhPlvJLSydKwdLN3tEUUrzPSSM8S4hDYRA=
+github.com/uudashr/gocognit v1.2.0/go.mod h1:k/DdKPI6XBZO1q7HgoV2juESI2/Ofj9AcHPZhBBdrTU=
+github.com/uudashr/iface v1.3.0 h1:zwPch0fs9tdh9BmL5kcgSpvnObV+yHjO4JjVBl8IA10=
+github.com/uudashr/iface v1.3.0/go.mod h1:4QvspiRd3JLPAEXBQ9AiZpLbJlrWWgRChOKDJEuQTdg=
github.com/xen0n/gosmopolitan v1.2.2 h1:/p2KTnMzwRexIW8GlKawsTWOxn7UHA+jCMF/V8HHtvU=
github.com/xen0n/gosmopolitan v1.2.2/go.mod h1:7XX7Mj61uLYrj0qmeN0zi7XDon9JRAEhYQqAPLVNTeg=
github.com/yagipy/maintidx v1.0.0 h1:h5NvIsCz+nRDapQ0exNv4aJ0yXSI0420omVANTv3GJM=
@@ -569,6 +702,8 @@ gitlab.com/bosi/decorder v0.4.2 h1:qbQaV3zgwnBZ4zPMhGLW4KZe7A7NwxEhJx39R3shffo=
gitlab.com/bosi/decorder v0.4.2/go.mod h1:muuhHoaJkA9QLcYHq4Mj8FJUwDZ+EirSHRiaTcTf6T8=
go-simpler.org/musttag v0.12.2 h1:J7lRc2ysXOq7eM8rwaTYnNrHd5JwjppzB6mScysB2Cs=
go-simpler.org/musttag v0.12.2/go.mod h1:uN1DVIasMTQKk6XSik7yrJoEysGtR2GRqvWnI9S7TYM=
+go-simpler.org/musttag v0.13.0 h1:Q/YAW0AHvaoaIbsPj3bvEI5/QFP7w696IMUpnKXQfCE=
+go-simpler.org/musttag v0.13.0/go.mod h1:FTzIGeK6OkKlUDVpj0iQUXZLUO1Js9+mvykDQy9C5yM=
go-simpler.org/sloglint v0.7.0 h1:rMZRxD9MbaGoRFobIOicMxZzum7AXNFDlez6xxJs5V4=
go-simpler.org/sloglint v0.7.0/go.mod h1:g9SXiSWY0JJh4LS39/Q0GxzP/QX2cVcbTOYhDpXrJEs=
go-simpler.org/sloglint v0.7.2 h1:Wc9Em/Zeuu7JYpl+oKoYOsQSy2X560aVueCW/m6IijY=
@@ -582,6 +717,8 @@ go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw=
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
go.uber.org/automaxprocs v1.5.3 h1:kWazyxZUrS3Gs4qUpbwo5kEIMGe/DAvi5Z4tl2NW4j8=
go.uber.org/automaxprocs v1.5.3/go.mod h1:eRbA25aqJrxAbsLO0xy5jVwPt7FQnRgjW+efnwa1WM0=
+go.uber.org/automaxprocs v1.6.0 h1:O3y2/QNTOdbF+e/dpXNNW7Rx2hZ4sTIPyybbxyNqTUs=
+go.uber.org/automaxprocs v1.6.0/go.mod h1:ifeIMSnPZuznNm6jmdzmU3/bfk01Fe2fotchwEFJ8r8=
go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4=
go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60=
@@ -594,6 +731,8 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw=
+golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc=
+golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
@@ -608,10 +747,14 @@ golang.org/x/exp v0.0.0-20240103183307-be819d1f06fc h1:ao2WRsKSzW6KuUY9IWPwWahcH
golang.org/x/exp v0.0.0-20240103183307-be819d1f06fc/go.mod h1:iRJReGqOEeBhDZGkGbynYwcHlctCvnjTYIamk7uXpHI=
golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 h1:2dVuKD2vS7b0QIHQbpyTISPd0LeHDbnYEryqj5Q1ug8=
golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY=
+golang.org/x/exp v0.0.0-20240909161429-701f63a606c0 h1:e66Fs6Z+fZTbFBAxKfP3PALWBtpfqks2bwGcexMxgtk=
+golang.org/x/exp v0.0.0-20240909161429-701f63a606c0/go.mod h1:2TbTHSBQa924w8M6Xs1QcRcFwyucIwBGpK1p2f1YFFY=
golang.org/x/exp/typeparams v0.0.0-20220428152302-39d4317da171/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk=
golang.org/x/exp/typeparams v0.0.0-20230203172020-98cc5a0785f9/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk=
golang.org/x/exp/typeparams v0.0.0-20240314144324-c7f7c6466f7f h1:phY1HzDcf18Aq9A8KkmRtY9WvOFIxN8wgfvy6Zm1DV8=
golang.org/x/exp/typeparams v0.0.0-20240314144324-c7f7c6466f7f/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk=
+golang.org/x/exp/typeparams v0.0.0-20241108190413-2d47ceb2692f h1:WTyX8eCCyfdqiPYkRGm0MqElSfYFH3yR1+rl/mct9sA=
+golang.org/x/exp/typeparams v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk=
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
@@ -640,10 +783,15 @@ golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91
golang.org/x/mod v0.6.0/go.mod h1:4mET923SAdbXp2ki8ey+zGs1SLqsuM2Y0uvdZR/fUNI=
golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
+golang.org/x/mod v0.9.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.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA=
golang.org/x/mod v0.17.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.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4=
+golang.org/x/mod v0.22.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-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -682,6 +830,10 @@ golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco=
golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY=
golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws=
golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
+golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc=
+golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
+golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk=
+golang.org/x/net v0.16.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@@ -701,10 +853,14 @@ golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJ
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
+golang.org/x/sync v0.4.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M=
golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ=
golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
+golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ=
+golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -759,16 +915,25 @@ golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y=
golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.23.0 h1:YfKFowiIMvtgl1UERQoTPPToxltDeZfbj4H7dVUCwmM=
golang.org/x/sys v0.23.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
+golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA=
+golang.org/x/sys v0.28.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=
golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc=
golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ=
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
+golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U=
+golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo=
+golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU=
+golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U=
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=
@@ -779,10 +944,15 @@ golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
+golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
+golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
+golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk=
golang.org/x/text v0.15.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.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug=
+golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4=
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=
@@ -847,10 +1017,15 @@ golang.org/x/tools v0.2.0/go.mod h1:y4OqIKeOV/fWJetJ8bXPU1sEVniLMIyDAZWeHdV+NTA=
golang.org/x/tools v0.3.0/go.mod h1:/rWhSS2+zyEVwoJf8YAX6L2f0ntZ7Kn/mGgAWcipA5k=
golang.org/x/tools v0.5.0/go.mod h1:N+Kgy78s5I24c24dU8OfWNEotWjutIs8SnJvn5IDq+k=
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
+golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s=
+golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58=
+golang.org/x/tools v0.14.0/go.mod h1:uYBEerGOWcJyEORxN+Ek8+TT266gXkNlHdJBwexUsBg=
golang.org/x/tools v0.21.0 h1:qc0xYgIbsSDt9EyWz05J5wfa7LOVW0YTLOXrqdLAWIw=
golang.org/x/tools v0.21.0/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk=
golang.org/x/tools v0.24.0 h1:J1shsA93PJUEVaUSaay7UXAyE8aimq3GW0pjlolpa24=
golang.org/x/tools v0.24.0/go.mod h1:YhNqVBIfWHdzvTLs0d8LCuMhkKUgSUKldakyV7W/WDQ=
+golang.org/x/tools v0.28.0 h1:WuB6qZ4RPCQo5aP3WdKZS7i595EdWqWR8vqJTlwTVK8=
+golang.org/x/tools v0.28.0/go.mod h1:dcIOrVd3mfQKTgrDVQHqCPMWy6lnhfhtX3hLXYVLfRw=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
diff --git a/staging/operator-lifecycle-manager/.bingo/helm.mod b/staging/operator-lifecycle-manager/.bingo/helm.mod
index ab1009c855..de5bde35dc 100644
--- a/staging/operator-lifecycle-manager/.bingo/helm.mod
+++ b/staging/operator-lifecycle-manager/.bingo/helm.mod
@@ -4,4 +4,4 @@ go 1.22.0
toolchain go1.22.3
-require helm.sh/helm/v3 v3.15.4 // cmd/helm
+require helm.sh/helm/v3 v3.16.4 // cmd/helm
diff --git a/staging/operator-lifecycle-manager/.bingo/helm.sum b/staging/operator-lifecycle-manager/.bingo/helm.sum
index bf13196493..a04c1108ac 100644
--- a/staging/operator-lifecycle-manager/.bingo/helm.sum
+++ b/staging/operator-lifecycle-manager/.bingo/helm.sum
@@ -1,4 +1,7 @@
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
+dario.cat/mergo v1.0.1 h1:Ra4+bf83h2ztPIQYNP99R6m+Y7KfnARDfID+a+vLl4s=
+dario.cat/mergo v1.0.1/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk=
+filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4=
github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU=
github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8=
github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8=
@@ -13,8 +16,12 @@ github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy86
github.com/Masterminds/semver/v3 v3.2.0/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ=
github.com/Masterminds/semver/v3 v3.2.1 h1:RN9w6+7QoMeJVGyfmbcgs28Br8cvmnucEXnY0rYXWg0=
github.com/Masterminds/semver/v3 v3.2.1/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ=
+github.com/Masterminds/semver/v3 v3.3.0 h1:B8LGeaivUe71a5qox1ICM/JLl0NqZSW5CHyL+hmvYS0=
+github.com/Masterminds/semver/v3 v3.3.0/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM=
github.com/Masterminds/sprig/v3 v3.2.3 h1:eL2fZNezLomi0uOLqjQoN6BfsDD+fyLtgbJMAj9n6YA=
github.com/Masterminds/sprig/v3 v3.2.3/go.mod h1:rXcFaZ2zZbLRJv/xSysmlgIM1u11eBaRMhvYXJNkGuM=
+github.com/Masterminds/sprig/v3 v3.3.0 h1:mQh0Yrg1XPo6vjYXgtf5OtijNAKJRNcTdOOGZe3tPhs=
+github.com/Masterminds/sprig/v3 v3.3.0/go.mod h1:Zy1iXRYNqNLUolqCpL4uhk6SHUMAOSCzdgBfDb35Lz0=
github.com/Masterminds/squirrel v1.5.4 h1:uUcX/aBc8O7Fg9kaISIUsHXdKuqehiXAMQTYX8afzqM=
github.com/Masterminds/squirrel v1.5.4/go.mod h1:NNaOrjSoIDfDA40n7sr2tPNZRfjzjA400rg+riTZj10=
github.com/Masterminds/vcs v1.13.3 h1:IIA2aBdXvfbIM+yl/eTnL4hb1XwdpvuQLglAix1gweE=
@@ -25,13 +32,19 @@ github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuy
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
github.com/asaskevich/govalidator v0.0.0-20200428143746-21a406dcc535 h1:4daAzAu0S6Vi7/lbWECcX0j45yZReDZ56BQsrVBOEEY=
github.com/asaskevich/govalidator v0.0.0-20200428143746-21a406dcc535/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg=
+github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 h1:DklsrG3dyBCFEj5IhUbnKptjxatkF07cF2ak3yi77so=
+github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw=
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
+github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM=
+github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ=
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44=
github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
+github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
+github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/chai2010/gettext-go v1.0.2 h1:1Lwwip6Q2QGsAdl/ZKPCwTe9fe0CjlUbqj5bFNSjIRk=
github.com/chai2010/gettext-go v1.0.2/go.mod h1:y+wnP2cHYaVj19NZhYKAwEMH2CI1gNHeQQ+5AjwawxA=
github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
@@ -40,18 +53,32 @@ github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMn
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
github.com/containerd/containerd v1.7.12 h1:+KQsnv4VnzyxWcfO9mlxxELaoztsDEjOuCMPAuPqgU0=
github.com/containerd/containerd v1.7.12/go.mod h1:/5OMpE1p0ylxtEUGY8kuCYkDRzJm9NO1TFMWjUpdevk=
+github.com/containerd/containerd v1.7.23 h1:H2CClyUkmpKAGlhQp95g2WXHfLYc7whAuvZGBNYOOwQ=
+github.com/containerd/containerd v1.7.23/go.mod h1:7QUzfURqZWCZV7RLNEn1XjUCQLEf0bkaK4GjUaZehxw=
+github.com/containerd/errdefs v0.3.0 h1:FSZgGOeK4yuT/+DnF07/Olde/q4KBoMsaamhXxIMDp4=
+github.com/containerd/errdefs v0.3.0/go.mod h1:+YBYIdtsnF4Iw6nWZhJcqGSg/dwvV7tyJ/kCkyJ2k+M=
github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I=
github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo=
+github.com/containerd/platforms v0.2.1 h1:zvwtM3rz2YHPQsF2CHYM8+KtB5dvhISiXh5ZpSBQv6A=
+github.com/containerd/platforms v0.2.1/go.mod h1:XHCb+2/hzowdiut9rkudds9bE5yJ7npe7dG/wG+uFPw=
github.com/cpuguy83/go-md2man/v2 v2.0.3 h1:qMCsGGgs+MAzDFyp9LpAe1Lqy/fY/qCovCm0qnXZOBM=
github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
+github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4=
+github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg=
github.com/cyphar/filepath-securejoin v0.2.4/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4=
+github.com/cyphar/filepath-securejoin v0.3.4 h1:VBWugsJh2ZxJmLFSM06/0qzQyiQX2Qs0ViKrUAcqdZ8=
+github.com/cyphar/filepath-securejoin v0.3.4/go.mod h1:8s/MCNJREmFK0H02MF6Ihv1nakJe4L/w3WZLHNkvlYM=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
+github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0=
github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E=
+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 v24.0.6+incompatible h1:fF+XCQCgJjjQNIMjzaSmiKJSCcfcXb3TWTcc7GAneOY=
github.com/docker/cli v24.0.6+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
github.com/docker/cli v25.0.1+incompatible h1:mFpqnrS6Hsm3v1k7Wa/BO23oz0k121MTbTO1lpcGSkU=
@@ -80,14 +107,20 @@ github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.m
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
github.com/evanphx/json-patch v5.7.0+incompatible h1:vgGkfT/9f8zE6tvSCe74nfpAVDQ2tG6yudJd8LBksgI=
github.com/evanphx/json-patch v5.7.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
+github.com/evanphx/json-patch v5.9.0+incompatible h1:fBXyNpNMuTTDdquAq/uisOr2lShz4oaXpDTX2bLe7ls=
+github.com/evanphx/json-patch v5.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d h1:105gxyaGwCFad8crR9dcMQWvV9Hvulu6hwUh4tWPJnM=
github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZMPRZwes7CROmyNKgQzC3XPs6L/G2EJLHddWejkmf4=
github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w=
github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk=
github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk=
github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
+github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg=
+github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
github.com/fvbommel/sortorder v1.1.0 h1:fUmoe+HLsBTctBDoaBwpQo5N+nrCp8g/BjKb/6ZQmYw=
github.com/fvbommel/sortorder v1.1.0/go.mod h1:uk88iVf1ovNn1iLfgUVU2F9o5eO30ui720w+kxuqRs0=
+github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E=
+github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ=
github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA=
github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og=
github.com/go-gorp/gorp/v3 v3.1.0 h1:ItKF/Vbuj31dmV4jxA1qblpSwkl9g1typ24xoe70IGs=
@@ -98,6 +131,8 @@ github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ=
github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
+github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=
+github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE=
@@ -106,7 +141,10 @@ github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2Kv
github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k=
github.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g=
github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14=
+github.com/go-openapi/swag v0.22.4 h1:QLMzNJnMGPRNDCbySlcj1x01tzU8/9LTTL9hZZZogBU=
+github.com/go-openapi/swag v0.22.4/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14=
github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
+github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg=
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y=
github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8=
@@ -149,6 +187,8 @@ github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
+github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
+github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI=
github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So=
github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
@@ -166,13 +206,19 @@ github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9
github.com/huandu/xstrings v1.3.3/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE=
github.com/huandu/xstrings v1.4.0 h1:D17IlohoQq4UcpqD7fDk80P7l+lwAmlFaBHgOipl2FU=
github.com/huandu/xstrings v1.4.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE=
+github.com/huandu/xstrings v1.5.0 h1:2ag3IFq9ZDANvthTwTiqSSZLjDc+BedvHPAp5tJy2TI=
+github.com/huandu/xstrings v1.5.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE=
github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA=
github.com/imdario/mergo v0.3.13 h1:lFzP57bqS/wsqKssCGmtLAb8A0wKjLGrve2q3PPVcBk=
github.com/imdario/mergo v0.3.13/go.mod h1:4lJ1jqUDcsbIECGy0RUJAXNIhg+6ocWgb1ALK2O4oXg=
+github.com/imdario/mergo v0.3.16 h1:wwQJbIsHYGMUyLSPrEq1CT16AhnhNJQ51+4fdHUnCl4=
+github.com/imdario/mergo v0.3.16/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY=
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
github.com/jmoiron/sqlx v1.3.5 h1:vFFPA71p1o5gAeqtEAwLU4dnX2napprKtHr7PYIcN3g=
github.com/jmoiron/sqlx v1.3.5/go.mod h1:nRVWtLre0KfCLJvgxzCsLVMogSvQ1zNJtpYr2Ccp0mQ=
+github.com/jmoiron/sqlx v1.4.0 h1:1PLqN7S1UYp5t4SrVVnt4nUVNemrDAtxlulVe+Qgm3o=
+github.com/jmoiron/sqlx v1.4.0/go.mod h1:ZrZ7UsYB/weZdl2Bxg6jCRO9c3YHl8r3ahlKmRT4JLY=
github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
@@ -184,6 +230,8 @@ github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4=
github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
+github.com/klauspost/compress v1.16.7 h1:2mk3MPGNzKyxErAw8YaohYh69+pa4sIQSC0fPGCFR9I=
+github.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
@@ -212,6 +260,7 @@ github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/
github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0=
github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
github.com/mattn/go-sqlite3 v1.14.6/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU=
+github.com/mattn/go-sqlite3 v1.14.22/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y=
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo=
github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4=
@@ -227,6 +276,8 @@ github.com/moby/locker v1.0.1 h1:fOXqR41zeveg4fFODix+1Ch4mj/gT0NE1XJbp/epuBg=
github.com/moby/locker v1.0.1/go.mod h1:S7SDdo5zpBK84bzzVlKr2V0hz+7x9hWbYC/kq7oQppc=
github.com/moby/spdystream v0.2.0 h1:cjW1zVyyoiM0T7b6UoySUFqzXMoqRckQtXwGPiBhOM8=
github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c=
+github.com/moby/spdystream v0.4.0 h1:Vy79D6mHeJJjiPdFEL2yku1kl0chZpJfZcPpb16BRl8=
+github.com/moby/spdystream v0.4.0/go.mod h1:xBAYlnt/ay+11ShkdFKNAG7LsyK/tmNBVvVOwrfMgdI=
github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0=
github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y=
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
@@ -251,6 +302,8 @@ github.com/opencontainers/image-spec v1.1.0-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/
github.com/opencontainers/image-spec v1.1.0-rc5/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8=
github.com/opencontainers/image-spec v1.1.0-rc6 h1:XDqvyKsJEbRtATzkgItUqBA7QHk58yxX1Ov9HERHNqU=
github.com/opencontainers/image-spec v1.1.0-rc6/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM=
+github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug=
+github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM=
github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI=
github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
@@ -262,35 +315,51 @@ github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5Fsn
github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g=
github.com/prometheus/client_golang v1.16.0 h1:yk/hx9hDbrGHovbci4BY+pRMfSuuat626eFsHb7tmT8=
github.com/prometheus/client_golang v1.16.0/go.mod h1:Zsulrv/L9oM40tJ7T815tM89lFEugiJ9HzIqaAx4LKc=
+github.com/prometheus/client_golang v1.19.1 h1:wZWJDwK+NameRJuPGDhlnFgx8e8HN3XHQeLaYJFJBOE=
+github.com/prometheus/client_golang v1.19.1/go.mod h1:mP78NwGzrVks5S2H6ab8+ZZGJLZUq1hoULYBAYBw1Ho=
github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
github.com/prometheus/client_model v0.4.0 h1:5lQXD3cAg1OXBf4Wq03gTrXHeaV0TQvGfUooCfx1yqY=
github.com/prometheus/client_model v0.4.0/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU=
+github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E=
+github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY=
github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc=
github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY=
github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY=
+github.com/prometheus/common v0.55.0 h1:KEi6DK7lXW/m7Ig5i47x0vRzuBsHuvJdi5ee6Y3G1dc=
+github.com/prometheus/common v0.55.0/go.mod h1:2SECS4xJG1kd8XF9IcM1gMX6510RAEL65zxzNImwdc8=
github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ=
github.com/prometheus/procfs v0.10.1 h1:kYK1Va/YMlutzCGazswoHKo//tZVlFpKYh+PymziUAg=
github.com/prometheus/procfs v0.10.1/go.mod h1:nwNm2aOCAYw8uTR/9bWRREkZFxAUcWzPHWJq+XBB/FM=
+github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc=
+github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk=
github.com/rubenv/sql-migrate v1.5.2 h1:bMDqOnrJVV/6JQgQ/MxOpU+AdO8uzYYA/TxFUBzFtS0=
github.com/rubenv/sql-migrate v1.5.2/go.mod h1:H38GW8Vqf8F0Su5XignRyaRcbXbJunSWxs+kmzlg0Is=
+github.com/rubenv/sql-migrate v1.7.0 h1:HtQq1xyTN2ISmQDggnh0c9U3JlP8apWh8YO2jzlXpTI=
+github.com/rubenv/sql-migrate v1.7.0/go.mod h1:S4wtDEG1CKn+0ShpTtzWhFpHHI5PvCUtiGI+C+Z2THE=
github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk=
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o=
github.com/shopspring/decimal v1.3.1 h1:2Usl1nmF/WZucqkFZhnfFYxxxu8LG21F6nPQBE5gKV8=
github.com/shopspring/decimal v1.3.1/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o=
+github.com/shopspring/decimal v1.4.0 h1:bxl37RwXBklmTi0C79JfXCEBD1cqqHt0bbgBAGFp81k=
+github.com/shopspring/decimal v1.4.0/go.mod h1:gawqmDU56v4yIKSwfBSFip1HdCCXN8/+DMd9qYNcwME=
github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w=
github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU=
+github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w=
+github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo=
github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0=
github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho=
+github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM=
+github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y=
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
@@ -304,6 +373,8 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
+github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM=
+github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg=
github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU=
github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb h1:zGWFAtiMcyryUHoUjUJX0/lt1H2+i2Ka2n+D3DImSNo=
github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU=
@@ -318,12 +389,20 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0 h1:x8Z78aZx8cOF0+Kkazoc7lwUNMGy0LrzEMxTm4BbTxg=
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0/go.mod h1:62CPTSry9QZtOaSsE3tOzhx6LzDhHnXJ6xHeMNNiM6Q=
+go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.53.0 h1:4K4tsIXefpVJtvA/8srF4V4y0akAoPHkIslgAkjixJA=
+go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.53.0/go.mod h1:jjdQuTGVsXV4vSs+CJ2qYDeDPf9yIJV23qlIzBm73Vg=
go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs=
go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY=
+go.opentelemetry.io/otel v1.28.0 h1:/SqNcYk+idO0CxKEUOtKQClMK/MimZihKYMruSMViUo=
+go.opentelemetry.io/otel v1.28.0/go.mod h1:q68ijF8Fc8CnMHKyzqL6akLO46ePnjkgfIMIjUIX9z4=
go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE=
go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8=
+go.opentelemetry.io/otel/metric v1.28.0 h1:f0HGvSl1KRAU1DLgLGFjrwVyismPlnuU6JD6bOeuA5Q=
+go.opentelemetry.io/otel/metric v1.28.0/go.mod h1:Fb1eVBFZmLVTMb6PPohq3TO9IIhUisDsbJoL/+uQW4s=
go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg=
go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo=
+go.opentelemetry.io/otel/trace v1.28.0 h1:GhQ9cUuQGmNDd5BTCP2dAvv75RdMxEfTmYejp+lkx9g=
+go.opentelemetry.io/otel/trace v1.28.0/go.mod h1:jPyXzNPg6da9+38HEwElrQiHlVMTnVfM3/yv2OlIHaI=
go.starlark.net v0.0.0-20230525235612-a134d8f9ddca h1:VdD38733bfYv5tUZwEIskMM93VanwNIi5bIKnDrJdEY=
go.starlark.net v0.0.0-20230525235612-a134d8f9ddca/go.mod h1:jxU+3+j+71eXOW14274+SmmuW82qJzl6iZSeqEtTGds=
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
@@ -336,6 +415,8 @@ golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA=
golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs=
golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30=
golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M=
+golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U=
+golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
@@ -359,9 +440,13 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug
golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY=
golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs=
golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg=
+golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ=
+golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.10.0 h1:zHCpF2Khkwy4mMB4bv0U37YtJdTGW8jI0glAApi0Kh8=
golang.org/x/oauth2 v0.10.0/go.mod h1:kTpgurOux7LqtuxjuyZa4Gj2gdezIt/jQtGnNFfypQI=
+golang.org/x/oauth2 v0.21.0 h1:tsimM75w1tF/uws5rbeHzIWxEqElMehnc+iW793zsZs=
+golang.org/x/oauth2 v0.21.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -373,6 +458,8 @@ golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ=
golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M=
golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
+golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ=
+golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -395,6 +482,8 @@ golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4=
golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI=
golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
+golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA=
+golang.org/x/sys v0.28.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.0.0-20220526004731-065cf7ba2467/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
@@ -403,6 +492,8 @@ golang.org/x/term v0.18.0 h1:FcHjZXDMxI8mM3nwhX9HlKop4C0YQvCVCdwYl2wOtE8=
golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58=
golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk=
golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4=
+golang.org/x/term v0.27.0 h1:WP60Sv1nlK1T6SupCHbXzSaN0b9wUmsPoRS9b61A23Q=
+golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
@@ -412,6 +503,8 @@ golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4=
golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI=
+golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=
+golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4=
golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
@@ -436,11 +529,15 @@ google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d h1:uvYuEyMHKNt+lT4K3bN6fGswmK8qSvcreM3BwjDh+y4=
google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d/go.mod h1:+Bk1OCOj40wS2hwAMA+aCW9ypzm63QTBBHp6lQ3p+9M=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20240701130421-f6361c86f094 h1:BwIjyKYGsK9dMCBOorzRri8MQwmi7mT9rGHsCEinZkA=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20240701130421-f6361c86f094/go.mod h1:Ue6ibwXGpU+dqIcODieyLOcgj7z8+IcskoNIgZxtrFY=
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ=
google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0=
+google.golang.org/grpc v1.65.0 h1:bs/cUb4lp1G5iImFFd3u5ixQzweKizoZJAwBNLR42lc=
+google.golang.org/grpc v1.65.0/go.mod h1:WgYC2ypjlB0EiQi6wdKixMqukr6lBc0Vo+oOgjrM5ZQ=
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
@@ -451,9 +548,13 @@ google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpAD
google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI=
google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
+google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg=
+google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw=
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
+gopkg.in/evanphx/json-patch.v4 v4.12.0 h1:n6jtcsulIzXPJaxegRbvFNNrZDjbij7ny3gmSPG+6V4=
+gopkg.in/evanphx/json-patch.v4 v4.12.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M=
gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
@@ -470,46 +571,68 @@ helm.sh/helm/v3 v3.15.1 h1:22ztacHz4gMqhXNqCQ9NAg6BFWoRUryNLvnkz6OVyw0=
helm.sh/helm/v3 v3.15.1/go.mod h1:fvfoRcB8UKRUV5jrIfOTaN/pG1TPhuqSb56fjYdTKXg=
helm.sh/helm/v3 v3.15.4 h1:UFHd6oZ1IN3FsUZ7XNhOQDyQ2QYknBNWRHH57e9cbHY=
helm.sh/helm/v3 v3.15.4/go.mod h1:phOwlxqGSgppCY/ysWBNRhG3MtnpsttOzxaTK+Mt40E=
+helm.sh/helm/v3 v3.16.4 h1:rBn/h9MACw+QlhxQTjpl8Ifx+VTWaYsw3rguGBYBzr0=
+helm.sh/helm/v3 v3.16.4/go.mod h1:k8QPotUt57wWbi90w3LNmg3/MWcLPigVv+0/X4B8BzA=
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
k8s.io/api v0.30.0 h1:siWhRq7cNjy2iHssOB9SCGNCl2spiF1dO3dABqZ8niA=
k8s.io/api v0.30.0/go.mod h1:OPlaYhoHs8EQ1ql0R/TsUgaRPhpKNxIMrKQfWUp8QSE=
k8s.io/api v0.30.3 h1:ImHwK9DCsPA9uoU3rVh4QHAHHK5dTSv1nxJUapx8hoQ=
k8s.io/api v0.30.3/go.mod h1:GPc8jlzoe5JG3pb0KJCSLX5oAFIW3/qNJITlDj8BH04=
+k8s.io/api v0.31.3 h1:umzm5o8lFbdN/hIXbrK9oRpOproJO62CV1zqxXrLgk8=
+k8s.io/api v0.31.3/go.mod h1:UJrkIp9pnMOI9K2nlL6vwpxRzzEX5sWgn8kGQe92kCE=
k8s.io/apiextensions-apiserver v0.30.0 h1:jcZFKMqnICJfRxTgnC4E+Hpcq8UEhT8B2lhBcQ+6uAs=
k8s.io/apiextensions-apiserver v0.30.0/go.mod h1:N9ogQFGcrbWqAY9p2mUAL5mGxsLqwgtUce127VtRX5Y=
k8s.io/apiextensions-apiserver v0.30.3 h1:oChu5li2vsZHx2IvnGP3ah8Nj3KyqG3kRSaKmijhB9U=
k8s.io/apiextensions-apiserver v0.30.3/go.mod h1:uhXxYDkMAvl6CJw4lrDN4CPbONkF3+XL9cacCT44kV4=
+k8s.io/apiextensions-apiserver v0.31.3 h1:+GFGj2qFiU7rGCsA5o+p/rul1OQIq6oYpQw4+u+nciE=
+k8s.io/apiextensions-apiserver v0.31.3/go.mod h1:2DSpFhUZZJmn/cr/RweH1cEVVbzFw9YBu4T+U3mf1e4=
k8s.io/apimachinery v0.30.0 h1:qxVPsyDM5XS96NIh9Oj6LavoVFYff/Pon9cZeDIkHHA=
k8s.io/apimachinery v0.30.0/go.mod h1:iexa2somDaxdnj7bha06bhb43Zpa6eWH8N8dbqVjTUc=
k8s.io/apimachinery v0.30.3 h1:q1laaWCmrszyQuSQCfNB8cFgCuDAoPszKY4ucAjDwHc=
k8s.io/apimachinery v0.30.3/go.mod h1:iexa2somDaxdnj7bha06bhb43Zpa6eWH8N8dbqVjTUc=
+k8s.io/apimachinery v0.31.3 h1:6l0WhcYgasZ/wk9ktLq5vLaoXJJr5ts6lkaQzgeYPq4=
+k8s.io/apimachinery v0.31.3/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo=
k8s.io/apiserver v0.30.0 h1:QCec+U72tMQ+9tR6A0sMBB5Vh6ImCEkoKkTDRABWq6M=
k8s.io/apiserver v0.30.0/go.mod h1:smOIBq8t0MbKZi7O7SyIpjPsiKJ8qa+llcFCluKyqiY=
k8s.io/apiserver v0.30.3 h1:QZJndA9k2MjFqpnyYv/PH+9PE0SHhx3hBho4X0vE65g=
k8s.io/apiserver v0.30.3/go.mod h1:6Oa88y1CZqnzetd2JdepO0UXzQX4ZnOekx2/PtEjrOg=
+k8s.io/apiserver v0.31.3 h1:+1oHTtCB+OheqFEz375D0IlzHZ5VeQKX1KGXnx+TTuY=
+k8s.io/apiserver v0.31.3/go.mod h1:PrxVbebxrxQPFhJk4powDISIROkNMKHibTg9lTRQ0Qg=
k8s.io/cli-runtime v0.30.0 h1:0vn6/XhOvn1RJ2KJOC6IRR2CGqrpT6QQF4+8pYpWQ48=
k8s.io/cli-runtime v0.30.0/go.mod h1:vATpDMATVTMA79sZ0YUCzlMelf6rUjoBzlp+RnoM+cg=
k8s.io/cli-runtime v0.30.3 h1:aG69oRzJuP2Q4o8dm+f5WJIX4ZBEwrvdID0+MXyUY6k=
k8s.io/cli-runtime v0.30.3/go.mod h1:hwrrRdd9P84CXSKzhHxrOivAR9BRnkMt0OeP5mj7X30=
+k8s.io/cli-runtime v0.31.3 h1:fEQD9Xokir78y7pVK/fCJN090/iYNrLHpFbGU4ul9TI=
+k8s.io/cli-runtime v0.31.3/go.mod h1:Q2jkyTpl+f6AtodQvgDI8io3jrfr+Z0LyQBPJJ2Btq8=
k8s.io/client-go v0.30.0 h1:sB1AGGlhY/o7KCyCEQ0bPWzYDL0pwOZO4vAtTSh/gJQ=
k8s.io/client-go v0.30.0/go.mod h1:g7li5O5256qe6TYdAMyX/otJqMhIiGgTapdLchhmOaY=
k8s.io/client-go v0.30.3 h1:bHrJu3xQZNXIi8/MoxYtZBBWQQXwy16zqJwloXXfD3k=
k8s.io/client-go v0.30.3/go.mod h1:8d4pf8vYu665/kUbsxWAQ/JDBNWqfFeZnvFiVdmx89U=
+k8s.io/client-go v0.31.3 h1:CAlZuM+PH2cm+86LOBemaJI/lQ5linJ6UFxKX/SoG+4=
+k8s.io/client-go v0.31.3/go.mod h1:2CgjPUTpv3fE5dNygAr2NcM8nhHzXvxB8KL5gYc3kJs=
k8s.io/component-base v0.30.0 h1:cj6bp38g0ainlfYtaOQuRELh5KSYjhKxM+io7AUIk4o=
k8s.io/component-base v0.30.0/go.mod h1:V9x/0ePFNaKeKYA3bOvIbrNoluTSG+fSJKjLdjOoeXQ=
k8s.io/component-base v0.30.3 h1:Ci0UqKWf4oiwy8hr1+E3dsnliKnkMLZMVbWzeorlk7s=
k8s.io/component-base v0.30.3/go.mod h1:C1SshT3rGPCuNtBs14RmVD2xW0EhRSeLvBh7AGk1quA=
+k8s.io/component-base v0.31.3 h1:DMCXXVx546Rfvhj+3cOm2EUxhS+EyztH423j+8sOwhQ=
+k8s.io/component-base v0.31.3/go.mod h1:xME6BHfUOafRgT0rGVBGl7TuSg8Z9/deT7qq6w7qjIU=
k8s.io/klog/v2 v2.120.1 h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw=
k8s.io/klog/v2 v2.120.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE=
+k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk=
+k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE=
k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 h1:BZqlfIlq5YbRMFko6/PM7FjZpUb45WallggurYhKGag=
k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340/go.mod h1:yD4MZYeKMBwQKVht279WycxKyM84kkAx2DPrTXaeb98=
k8s.io/kubectl v0.30.0 h1:xbPvzagbJ6RNYVMVuiHArC1grrV5vSmmIcSZuCdzRyk=
k8s.io/kubectl v0.30.0/go.mod h1:zgolRw2MQXLPwmic2l/+iHs239L49fhSeICuMhQQXTI=
k8s.io/kubectl v0.30.3 h1:YIBBvMdTW0xcDpmrOBzcpUVsn+zOgjMYIu7kAq+yqiI=
k8s.io/kubectl v0.30.3/go.mod h1:IcR0I9RN2+zzTRUa1BzZCm4oM0NLOawE6RzlDvd1Fpo=
+k8s.io/kubectl v0.31.3 h1:3r111pCjPsvnR98oLLxDMwAeM6OPGmPty6gSKaLTQes=
+k8s.io/kubectl v0.31.3/go.mod h1:lhMECDCbJN8He12qcKqs2QfmVo9Pue30geovBVpH5fs=
k8s.io/utils v0.0.0-20230726121419-3b25d923346b h1:sgn3ZU783SCgtaSJjpcVVlRqd6GSnlTLKgpAAttJvpI=
k8s.io/utils v0.0.0-20230726121419-3b25d923346b/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
+k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 h1:pUdcCO1Lk/tbT5ztQWOBi5HBgbBP1J8+AsQnQCKsi8A=
+k8s.io/utils v0.0.0-20240711033017-18e509b52bc8/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
oras.land/oras-go v1.2.4 h1:djpBY2/2Cs1PV87GSJlxv4voajVOMZxqqtq9AB8YNvY=
oras.land/oras-go v1.2.4/go.mod h1:DYcGfb3YF1nKjcezfX2SNlDAeQFKSXmf+qrFmrh4324=
oras.land/oras-go v1.2.5 h1:XpYuAwAb0DfQsunIyMfeET92emK8km3W4yEzZvUbsTo=
@@ -518,8 +641,12 @@ sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMm
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0=
sigs.k8s.io/kustomize/api v0.13.5-0.20230601165947-6ce0bf390ce3 h1:XX3Ajgzov2RKUdc5jW3t5jwY7Bo7dcRm+tFxT+NfgY0=
sigs.k8s.io/kustomize/api v0.13.5-0.20230601165947-6ce0bf390ce3/go.mod h1:9n16EZKMhXBNSiUC5kSdFQJkdH3zbxS/JoO619G1VAY=
+sigs.k8s.io/kustomize/api v0.17.2 h1:E7/Fjk7V5fboiuijoZHgs4aHuexi5Y2loXlVOAVAG5g=
+sigs.k8s.io/kustomize/api v0.17.2/go.mod h1:UWTz9Ct+MvoeQsHcJ5e+vziRRkwimm3HytpZgIYqye0=
sigs.k8s.io/kustomize/kyaml v0.14.3-0.20230601165947-6ce0bf390ce3 h1:W6cLQc5pnqM7vh3b7HvGNfXrJ/xL6BDMS0v1V/HHg5U=
sigs.k8s.io/kustomize/kyaml v0.14.3-0.20230601165947-6ce0bf390ce3/go.mod h1:JWP1Fj0VWGHyw3YUPjXSQnRnrwezrZSrApfX5S0nIag=
+sigs.k8s.io/kustomize/kyaml v0.17.1 h1:TnxYQxFXzbmNG6gOINgGWQt09GghzgTP6mIurOgrLCQ=
+sigs.k8s.io/kustomize/kyaml v0.17.1/go.mod h1:9V0mCjIEYjlXuCdYsSXvyoy2BTsLESH7TlGV81S282U=
sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4=
sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08=
sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E=
diff --git a/staging/operator-lifecycle-manager/.bingo/kind.mod b/staging/operator-lifecycle-manager/.bingo/kind.mod
index faac8331ef..a3e62cc295 100644
--- a/staging/operator-lifecycle-manager/.bingo/kind.mod
+++ b/staging/operator-lifecycle-manager/.bingo/kind.mod
@@ -4,4 +4,4 @@ go 1.22.0
toolchain go1.22.3
-require sigs.k8s.io/kind v0.24.0
+require sigs.k8s.io/kind v0.26.0
diff --git a/staging/operator-lifecycle-manager/.bingo/kind.sum b/staging/operator-lifecycle-manager/.bingo/kind.sum
index 77a7874820..015afab7ec 100644
--- a/staging/operator-lifecycle-manager/.bingo/kind.sum
+++ b/staging/operator-lifecycle-manager/.bingo/kind.sum
@@ -50,6 +50,8 @@ sigs.k8s.io/kind v0.23.0 h1:8fyDGWbWTeCcCTwA04v4Nfr45KKxbSPH1WO9K+jVrBg=
sigs.k8s.io/kind v0.23.0/go.mod h1:ZQ1iZuJLh3T+O8fzhdi3VWcFTzsdXtNv2ppsHc8JQ7s=
sigs.k8s.io/kind v0.24.0 h1:g4y4eu0qa+SCeKESLpESgMmVFBebL0BDa6f777OIWrg=
sigs.k8s.io/kind v0.24.0/go.mod h1:t7ueEpzPYJvHA8aeLtI52rtFftNgUYUaCwvxjk7phfw=
+sigs.k8s.io/kind v0.26.0 h1:8fS6I0Q5WGlmLprSpH0DarlOSdcsv0txnwc93J2BP7M=
+sigs.k8s.io/kind v0.26.0/go.mod h1:t7ueEpzPYJvHA8aeLtI52rtFftNgUYUaCwvxjk7phfw=
sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo=
sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8=
sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E=
diff --git a/staging/operator-lifecycle-manager/.bingo/setup-envtest.mod b/staging/operator-lifecycle-manager/.bingo/setup-envtest.mod
index adf5c446ad..b3b672541a 100644
--- a/staging/operator-lifecycle-manager/.bingo/setup-envtest.mod
+++ b/staging/operator-lifecycle-manager/.bingo/setup-envtest.mod
@@ -1,7 +1,7 @@
module _ // Auto generated by https://github.com/bwplotka/bingo. DO NOT EDIT
-go 1.22.0
+go 1.23.0
-toolchain go1.22.3
+toolchain go1.23.4
-require sigs.k8s.io/controller-runtime/tools/setup-envtest v0.0.0-20240820183333-e6c3d139d2b6
+require sigs.k8s.io/controller-runtime/tools/setup-envtest v0.0.0-20250109154033-1de5a3e8bae9
diff --git a/staging/operator-lifecycle-manager/.bingo/setup-envtest.sum b/staging/operator-lifecycle-manager/.bingo/setup-envtest.sum
index 7758835bfe..b7455d4515 100644
--- a/staging/operator-lifecycle-manager/.bingo/setup-envtest.sum
+++ b/staging/operator-lifecycle-manager/.bingo/setup-envtest.sum
@@ -32,6 +32,8 @@ golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4=
golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI=
+golang.org/x/text v0.19.0 h1:kTxAhCbGbxhK0IwgSKiMO5awPoDQ0RpfiVYBfK860YM=
+golang.org/x/text v0.19.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
@@ -43,6 +45,8 @@ sigs.k8s.io/controller-runtime/tools/setup-envtest v0.0.0-20240813183042-b901db1
sigs.k8s.io/controller-runtime/tools/setup-envtest v0.0.0-20240813183042-b901db121e1f/go.mod h1:IaDsO8xSPRxRG1/rm9CP7+jPmj0nMNAuNi/yiHnLX8k=
sigs.k8s.io/controller-runtime/tools/setup-envtest v0.0.0-20240820183333-e6c3d139d2b6 h1:Wzx3QswG7gfzqPDw7Ec6/xvJGyoxAKUEoaxWLrk1V/I=
sigs.k8s.io/controller-runtime/tools/setup-envtest v0.0.0-20240820183333-e6c3d139d2b6/go.mod h1:IaDsO8xSPRxRG1/rm9CP7+jPmj0nMNAuNi/yiHnLX8k=
+sigs.k8s.io/controller-runtime/tools/setup-envtest v0.0.0-20250109154033-1de5a3e8bae9 h1:/yKChasubF1bwvq94vBp7Aw2QnLMnVsb8fCXV2/djUw=
+sigs.k8s.io/controller-runtime/tools/setup-envtest v0.0.0-20250109154033-1de5a3e8bae9/go.mod h1:Is2SwCWbWAoyGVoVBA627n1SWhWaEwUhaIYSEbtzHT4=
sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo=
sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8=
sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E=
diff --git a/staging/operator-lifecycle-manager/.bingo/variables.env b/staging/operator-lifecycle-manager/.bingo/variables.env
index b5db2687d0..32a804bed0 100644
--- a/staging/operator-lifecycle-manager/.bingo/variables.env
+++ b/staging/operator-lifecycle-manager/.bingo/variables.env
@@ -10,13 +10,13 @@ fi
BINGO="${GOBIN}/bingo-v0.9.0"
-GOLANGCI_LINT="${GOBIN}/golangci-lint-v1.60.3"
+GOLANGCI_LINT="${GOBIN}/golangci-lint-v1.63.4"
-HELM="${GOBIN}/helm-v3.15.4"
+HELM="${GOBIN}/helm-v3.16.4"
-KIND="${GOBIN}/kind-v0.24.0"
+KIND="${GOBIN}/kind-v0.26.0"
-SETUP_ENVTEST="${GOBIN}/setup-envtest-v0.0.0-20240820183333-e6c3d139d2b6"
+SETUP_ENVTEST="${GOBIN}/setup-envtest-v0.0.0-20250109154033-1de5a3e8bae9"
YQ="${GOBIN}/yq-v3.0.0-20201202084205-8846255d1c37"
diff --git a/staging/operator-lifecycle-manager/Makefile b/staging/operator-lifecycle-manager/Makefile
index 042f299ed1..7ef00ffafc 100644
--- a/staging/operator-lifecycle-manager/Makefile
+++ b/staging/operator-lifecycle-manager/Makefile
@@ -185,6 +185,13 @@ vendor: #HELP Update vendored dependencies
go mod tidy
go mod vendor
+.PHONY: bingo-upgrade
+bingo-upgrade: $(BINGO) #EXHELP Upgrade tools
+ @for pkg in $$($(BINGO) list | awk '{ print $$3 }' | tail -n +3 | sed 's/@.*//'); do \
+ echo -e "Upgrading \033[35m$$pkg\033[0m to latest..."; \
+ $(BINGO) get "$$pkg@latest"; \
+ done
+
#SECTION Testing
# Note: We want to use TESTCMD = because we need it to be re-evaluated every time it is used
diff --git a/staging/operator-lifecycle-manager/cmd/catalog/main.go b/staging/operator-lifecycle-manager/cmd/catalog/main.go
index d282dfebb3..b82f1689cb 100644
--- a/staging/operator-lifecycle-manager/cmd/catalog/main.go
+++ b/staging/operator-lifecycle-manager/cmd/catalog/main.go
@@ -7,6 +7,9 @@ import (
"os"
"time"
+ apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
+ apiregistrationv1 "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1"
+
configv1client "github.com/openshift/client-go/config/clientset/versioned/typed/config/v1"
"github.com/sirupsen/logrus"
k8sscheme "k8s.io/client-go/kubernetes/scheme"
@@ -88,6 +91,14 @@ func (o *options) run(ctx context.Context, logger *logrus.Logger) error {
if o.setWorkloadUserID {
workloadUserID = defaultWorkLoadUserID
}
+
+ // the scheme is used by the catalog operator to create
+ // a validatingroundtripper that ensures that all created
+ // resources are appropriately labeled
+ scheme := k8sscheme.Scheme
+ _ = apiextensionsv1.AddToScheme(scheme) // required by opClient
+ _ = apiregistrationv1.AddToScheme(scheme) // required by opClient
+
// TODO(tflannag): Use options pattern for catalog operator
// Create a new instance of the operator.
op, err := catalog.NewOperator(
@@ -100,7 +111,7 @@ func (o *options) run(ctx context.Context, logger *logrus.Logger) error {
o.opmImage,
o.utilImage,
o.catalogNamespace,
- k8sscheme.Scheme,
+ scheme,
o.installPlanTimeout,
o.bundleUnpackTimeout,
workloadUserID,
diff --git a/staging/operator-lifecycle-manager/cmd/olm/main.go b/staging/operator-lifecycle-manager/cmd/olm/main.go
index 58570fa590..ff6e7354e6 100644
--- a/staging/operator-lifecycle-manager/cmd/olm/main.go
+++ b/staging/operator-lifecycle-manager/cmd/olm/main.go
@@ -141,7 +141,7 @@ func main() {
config := mgr.GetConfig()
// create a config that validates we're creating objects with labels
- validatingConfig := validatingroundtripper.Wrap(config)
+ validatingConfig := validatingroundtripper.Wrap(config, mgr.GetScheme())
versionedConfigClient, err := configclientset.NewForConfig(config)
if err != nil {
diff --git a/staging/operator-lifecycle-manager/deploy/chart/crds/0000_50_olm_00-catalogsources.crd.yaml b/staging/operator-lifecycle-manager/deploy/chart/crds/0000_50_olm_00-catalogsources.crd.yaml
index 59d316f8de..6de11b99ba 100644
--- a/staging/operator-lifecycle-manager/deploy/chart/crds/0000_50_olm_00-catalogsources.crd.yaml
+++ b/staging/operator-lifecycle-manager/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.16.1
+ controller-gen.kubebuilder.io/version: v0.17.0
name: catalogsources.operators.coreos.com
spec:
group: operators.coreos.com
diff --git a/staging/operator-lifecycle-manager/deploy/chart/crds/0000_50_olm_00-clusterserviceversions.crd.yaml b/staging/operator-lifecycle-manager/deploy/chart/crds/0000_50_olm_00-clusterserviceversions.crd.yaml
index 9f91b0691c..8ec7c18d07 100644
--- a/staging/operator-lifecycle-manager/deploy/chart/crds/0000_50_olm_00-clusterserviceversions.crd.yaml
+++ b/staging/operator-lifecycle-manager/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.16.1
+ controller-gen.kubebuilder.io/version: v0.17.0
name: clusterserviceversions.operators.coreos.com
spec:
group: operators.coreos.com
@@ -1958,7 +1958,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -1973,7 +1973,7 @@ spec:
type: string
x-kubernetes-list-type: atomic
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -2020,7 +2020,7 @@ spec:
Defaults to HTTP.
type: string
sleep:
- description: Sleep represents the duration that the container should sleep before being terminated.
+ description: Sleep represents a duration that the container should sleep.
type: object
required:
- seconds
@@ -2032,8 +2032,8 @@ spec:
tcpSocket:
description: |-
Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept
- for the backward compatibility. There are no validation of this field and
- lifecycle hooks will fail in runtime when tcp handler is specified.
+ for backward compatibility. There is no validation of this field and
+ lifecycle hooks will fail at runtime when it is specified.
type: object
required:
- port
@@ -2064,7 +2064,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -2079,7 +2079,7 @@ spec:
type: string
x-kubernetes-list-type: atomic
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -2126,7 +2126,7 @@ spec:
Defaults to HTTP.
type: string
sleep:
- description: Sleep represents the duration that the container should sleep before being terminated.
+ description: Sleep represents a duration that the container should sleep.
type: object
required:
- seconds
@@ -2138,8 +2138,8 @@ spec:
tcpSocket:
description: |-
Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept
- for the backward compatibility. There are no validation of this field and
- lifecycle hooks will fail in runtime when tcp handler is specified.
+ for backward compatibility. There is no validation of this field and
+ lifecycle hooks will fail at runtime when it is specified.
type: object
required:
- port
@@ -2165,7 +2165,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -2186,7 +2186,7 @@ spec:
type: integer
format: int32
grpc:
- description: GRPC specifies an action involving a GRPC port.
+ description: GRPC specifies a GRPC HealthCheckRequest.
type: object
required:
- port
@@ -2204,7 +2204,7 @@ spec:
type: string
default: ""
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -2269,7 +2269,7 @@ spec:
type: integer
format: int32
tcpSocket:
- description: TCPSocket specifies an action involving a TCP port.
+ description: TCPSocket specifies a connection to a TCP port.
type: object
required:
- port
@@ -2371,7 +2371,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -2392,7 +2392,7 @@ spec:
type: integer
format: int32
grpc:
- description: GRPC specifies an action involving a GRPC port.
+ description: GRPC specifies a GRPC HealthCheckRequest.
type: object
required:
- port
@@ -2410,7 +2410,7 @@ spec:
type: string
default: ""
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -2475,7 +2475,7 @@ spec:
type: integer
format: int32
tcpSocket:
- description: TCPSocket specifies an action involving a TCP port.
+ description: TCPSocket specifies a connection to a TCP port.
type: object
required:
- port
@@ -2814,7 +2814,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -2835,7 +2835,7 @@ spec:
type: integer
format: int32
grpc:
- description: GRPC specifies an action involving a GRPC port.
+ description: GRPC specifies a GRPC HealthCheckRequest.
type: object
required:
- port
@@ -2853,7 +2853,7 @@ spec:
type: string
default: ""
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -2918,7 +2918,7 @@ spec:
type: integer
format: int32
tcpSocket:
- description: TCPSocket specifies an action involving a TCP port.
+ description: TCPSocket specifies a connection to a TCP port.
type: object
required:
- port
@@ -3122,9 +3122,12 @@ spec:
type: object
properties:
name:
- description: Required.
+ description: |-
+ Name is this DNS resolver option's name.
+ Required.
type: string
value:
+ description: Value is this DNS resolver option's value.
type: string
x-kubernetes-list-type: atomic
searches:
@@ -3391,7 +3394,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -3406,7 +3409,7 @@ spec:
type: string
x-kubernetes-list-type: atomic
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -3453,7 +3456,7 @@ spec:
Defaults to HTTP.
type: string
sleep:
- description: Sleep represents the duration that the container should sleep before being terminated.
+ description: Sleep represents a duration that the container should sleep.
type: object
required:
- seconds
@@ -3465,8 +3468,8 @@ spec:
tcpSocket:
description: |-
Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept
- for the backward compatibility. There are no validation of this field and
- lifecycle hooks will fail in runtime when tcp handler is specified.
+ for backward compatibility. There is no validation of this field and
+ lifecycle hooks will fail at runtime when it is specified.
type: object
required:
- port
@@ -3497,7 +3500,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -3512,7 +3515,7 @@ spec:
type: string
x-kubernetes-list-type: atomic
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -3559,7 +3562,7 @@ spec:
Defaults to HTTP.
type: string
sleep:
- description: Sleep represents the duration that the container should sleep before being terminated.
+ description: Sleep represents a duration that the container should sleep.
type: object
required:
- seconds
@@ -3571,8 +3574,8 @@ spec:
tcpSocket:
description: |-
Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept
- for the backward compatibility. There are no validation of this field and
- lifecycle hooks will fail in runtime when tcp handler is specified.
+ for backward compatibility. There is no validation of this field and
+ lifecycle hooks will fail at runtime when it is specified.
type: object
required:
- port
@@ -3594,7 +3597,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -3615,7 +3618,7 @@ spec:
type: integer
format: int32
grpc:
- description: GRPC specifies an action involving a GRPC port.
+ description: GRPC specifies a GRPC HealthCheckRequest.
type: object
required:
- port
@@ -3633,7 +3636,7 @@ spec:
type: string
default: ""
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -3698,7 +3701,7 @@ spec:
type: integer
format: int32
tcpSocket:
- description: TCPSocket specifies an action involving a TCP port.
+ description: TCPSocket specifies a connection to a TCP port.
type: object
required:
- port
@@ -3788,7 +3791,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -3809,7 +3812,7 @@ spec:
type: integer
format: int32
grpc:
- description: GRPC specifies an action involving a GRPC port.
+ description: GRPC specifies a GRPC HealthCheckRequest.
type: object
required:
- port
@@ -3827,7 +3830,7 @@ spec:
type: string
default: ""
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -3892,7 +3895,7 @@ spec:
type: integer
format: int32
tcpSocket:
- description: TCPSocket specifies an action involving a TCP port.
+ description: TCPSocket specifies a connection to a TCP port.
type: object
required:
- port
@@ -4211,7 +4214,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -4232,7 +4235,7 @@ spec:
type: integer
format: int32
grpc:
- description: GRPC specifies an action involving a GRPC port.
+ description: GRPC specifies a GRPC HealthCheckRequest.
type: object
required:
- port
@@ -4250,7 +4253,7 @@ spec:
type: string
default: ""
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -4315,7 +4318,7 @@ spec:
type: integer
format: int32
tcpSocket:
- description: TCPSocket specifies an action involving a TCP port.
+ description: TCPSocket specifies a connection to a TCP port.
type: object
required:
- port
@@ -4829,7 +4832,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -4844,7 +4847,7 @@ spec:
type: string
x-kubernetes-list-type: atomic
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -4891,7 +4894,7 @@ spec:
Defaults to HTTP.
type: string
sleep:
- description: Sleep represents the duration that the container should sleep before being terminated.
+ description: Sleep represents a duration that the container should sleep.
type: object
required:
- seconds
@@ -4903,8 +4906,8 @@ spec:
tcpSocket:
description: |-
Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept
- for the backward compatibility. There are no validation of this field and
- lifecycle hooks will fail in runtime when tcp handler is specified.
+ for backward compatibility. There is no validation of this field and
+ lifecycle hooks will fail at runtime when it is specified.
type: object
required:
- port
@@ -4935,7 +4938,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -4950,7 +4953,7 @@ spec:
type: string
x-kubernetes-list-type: atomic
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -4997,7 +5000,7 @@ spec:
Defaults to HTTP.
type: string
sleep:
- description: Sleep represents the duration that the container should sleep before being terminated.
+ description: Sleep represents a duration that the container should sleep.
type: object
required:
- seconds
@@ -5009,8 +5012,8 @@ spec:
tcpSocket:
description: |-
Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept
- for the backward compatibility. There are no validation of this field and
- lifecycle hooks will fail in runtime when tcp handler is specified.
+ for backward compatibility. There is no validation of this field and
+ lifecycle hooks will fail at runtime when it is specified.
type: object
required:
- port
@@ -5036,7 +5039,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -5057,7 +5060,7 @@ spec:
type: integer
format: int32
grpc:
- description: GRPC specifies an action involving a GRPC port.
+ description: GRPC specifies a GRPC HealthCheckRequest.
type: object
required:
- port
@@ -5075,7 +5078,7 @@ spec:
type: string
default: ""
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -5140,7 +5143,7 @@ spec:
type: integer
format: int32
tcpSocket:
- description: TCPSocket specifies an action involving a TCP port.
+ description: TCPSocket specifies a connection to a TCP port.
type: object
required:
- port
@@ -5242,7 +5245,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -5263,7 +5266,7 @@ spec:
type: integer
format: int32
grpc:
- description: GRPC specifies an action involving a GRPC port.
+ description: GRPC specifies a GRPC HealthCheckRequest.
type: object
required:
- port
@@ -5281,7 +5284,7 @@ spec:
type: string
default: ""
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -5346,7 +5349,7 @@ spec:
type: integer
format: int32
tcpSocket:
- description: TCPSocket specifies an action involving a TCP port.
+ description: TCPSocket specifies a connection to a TCP port.
type: object
required:
- port
@@ -5685,7 +5688,7 @@ spec:
type: object
properties:
exec:
- description: Exec specifies the action to take.
+ description: Exec specifies a command to execute in the container.
type: object
properties:
command:
@@ -5706,7 +5709,7 @@ spec:
type: integer
format: int32
grpc:
- description: GRPC specifies an action involving a GRPC port.
+ description: GRPC specifies a GRPC HealthCheckRequest.
type: object
required:
- port
@@ -5724,7 +5727,7 @@ spec:
type: string
default: ""
httpGet:
- description: HTTPGet specifies the http request to perform.
+ description: HTTPGet specifies an HTTP GET request to perform.
type: object
required:
- port
@@ -5789,7 +5792,7 @@ spec:
type: integer
format: int32
tcpSocket:
- description: TCPSocket specifies an action involving a TCP port.
+ description: TCPSocket specifies a connection to a TCP port.
type: object
required:
- port
@@ -6141,6 +6144,74 @@ spec:
x-kubernetes-list-map-keys:
- name
x-kubernetes-list-type: map
+ resources:
+ description: |-
+ Resources is the total amount of CPU and Memory resources required by all
+ containers in the pod. It supports specifying Requests and Limits for
+ "cpu" and "memory" resource names only. ResourceClaims are not supported.
+
+ This field enables fine-grained control over resource allocation for the
+ entire pod, allowing resource sharing among containers in a pod.
+
+ This is an alpha field and requires enabling the PodLevelResources feature
+ gate.
+ type: object
+ properties:
+ claims:
+ description: |-
+ 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:
+ description: ResourceClaim references one entry in PodSpec.ResourceClaims.
+ type: object
+ required:
+ - name
+ properties:
+ name:
+ description: |-
+ Name must match the name of one entry in pod.spec.resourceClaims of
+ 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
+ limits:
+ description: |-
+ Limits describes the maximum amount of compute resources allowed.
+ More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
+ type: object
+ additionalProperties:
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ requests:
+ description: |-
+ Requests describes the minimum amount of compute resources required.
+ If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
+ otherwise to an implementation-defined value. Requests cannot exceed Limits.
+ More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
+ type: object
+ additionalProperties:
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
restartPolicy:
description: |-
Restart policy for all containers within the pod.
@@ -6265,6 +6336,32 @@ spec:
Note that this field cannot be set when spec.os.name is windows.
type: integer
format: int64
+ seLinuxChangePolicy:
+ description: |-
+ seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod.
+ It has no effect on nodes that do not support SELinux or to volumes does not support SELinux.
+ Valid values are "MountOption" and "Recursive".
+
+ "Recursive" means relabeling of all files on all Pod volumes by the container runtime.
+ This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node.
+
+ "MountOption" mounts all eligible Pod volumes with `-o context` mount option.
+ This requires all Pods that share the same volume to use the same SELinux label.
+ It is not possible to share the same volume among privileged and unprivileged Pods.
+ Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes
+ whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their
+ CSIDriver instance. Other volumes are always re-labelled recursively.
+ "MountOption" value is allowed only when SELinuxMount feature gate is enabled.
+
+ If not specified and SELinuxMount feature gate is enabled, "MountOption" is used.
+ If not specified and SELinuxMount feature gate is disabled, "MountOption" is used for ReadWriteOncePod volumes
+ and "Recursive" for all other volumes.
+
+ This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers.
+
+ All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state.
+ Note that this field cannot be set when spec.os.name is windows.
+ type: string
seLinuxOptions:
description: |-
The SELinux context to be applied to all containers.
@@ -6664,6 +6761,8 @@ spec:
description: |-
awsElasticBlockStore represents an AWS Disk resource that is attached to a
kubelet's host machine and then exposed to the pod.
+ Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree
+ awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver.
More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
type: object
required:
@@ -6695,7 +6794,10 @@ spec:
More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
type: string
azureDisk:
- description: azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
+ description: |-
+ azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
+ Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type
+ are redirected to the disk.csi.azure.com CSI driver.
type: object
required:
- diskName
@@ -6727,7 +6829,10 @@ spec:
type: boolean
default: false
azureFile:
- description: azureFile represents an Azure File Service mount on the host and bind mount to the pod.
+ description: |-
+ azureFile represents an Azure File Service mount on the host and bind mount to the pod.
+ Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type
+ are redirected to the file.csi.azure.com CSI driver.
type: object
required:
- secretName
@@ -6745,7 +6850,9 @@ spec:
description: shareName is the azure share Name
type: string
cephfs:
- description: cephFS represents a Ceph FS mount on the host that shares a pod's lifetime
+ description: |-
+ cephFS represents a Ceph FS mount on the host that shares a pod's lifetime.
+ Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.
type: object
required:
- monitors
@@ -6796,6 +6903,8 @@ spec:
cinder:
description: |-
cinder represents a cinder volume attached and mounted on kubelets host machine.
+ Deprecated: Cinder is deprecated. All operations for the in-tree cinder type
+ are redirected to the cinder.csi.openstack.org CSI driver.
More info: https://examples.k8s.io/mysql-cinder-pd/README.md
type: object
required:
@@ -6902,7 +7011,7 @@ spec:
type: boolean
x-kubernetes-map-type: atomic
csi:
- description: csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).
+ description: csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers.
type: object
required:
- driver
@@ -7344,6 +7453,7 @@ spec:
description: |-
flexVolume represents a generic volume resource that is
provisioned/attached using an exec based plugin.
+ Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.
type: object
required:
- driver
@@ -7387,7 +7497,9 @@ spec:
default: ""
x-kubernetes-map-type: atomic
flocker:
- description: flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running
+ description: |-
+ flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running.
+ Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.
type: object
properties:
datasetName:
@@ -7402,6 +7514,8 @@ spec:
description: |-
gcePersistentDisk represents a GCE Disk resource that is attached to a
kubelet's host machine and then exposed to the pod.
+ Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree
+ gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver.
More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
type: object
required:
@@ -7437,7 +7551,7 @@ spec:
gitRepo:
description: |-
gitRepo represents a git repository at a particular revision.
- DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an
+ Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an
EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir
into the Pod's container.
type: object
@@ -7460,6 +7574,7 @@ spec:
glusterfs:
description: |-
glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.
+ Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported.
More info: https://examples.k8s.io/volumes/glusterfs/README.md
type: object
required:
@@ -7666,7 +7781,9 @@ spec:
Default false.
type: boolean
photonPersistentDisk:
- description: photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine
+ description: |-
+ photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine.
+ Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.
type: object
required:
- pdID
@@ -7681,7 +7798,11 @@ spec:
description: pdID is the ID that identifies Photon Controller persistent disk
type: string
portworxVolume:
- description: portworxVolume represents a portworx volume attached and mounted on kubelets host machine
+ description: |-
+ portworxVolume represents a portworx volume attached and mounted on kubelets host machine.
+ Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type
+ are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate
+ is on.
type: object
required:
- volumeID
@@ -8016,7 +8137,9 @@ spec:
type: string
x-kubernetes-list-type: atomic
quobyte:
- description: quobyte represents a Quobyte mount on the host that shares a pod's lifetime
+ description: |-
+ quobyte represents a Quobyte mount on the host that shares a pod's lifetime.
+ Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.
type: object
required:
- registry
@@ -8054,6 +8177,7 @@ spec:
rbd:
description: |-
rbd represents a Rados Block Device mount on the host that shares a pod's lifetime.
+ Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported.
More info: https://examples.k8s.io/volumes/rbd/README.md
type: object
required:
@@ -8126,7 +8250,9 @@ spec:
type: string
default: admin
scaleIO:
- description: scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
+ description: |-
+ scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
+ Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.
type: object
required:
- gateway
@@ -8252,7 +8378,9 @@ spec:
More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
type: string
storageos:
- description: storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.
+ description: |-
+ storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.
+ Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported.
type: object
properties:
fsType:
@@ -8297,7 +8425,10 @@ spec:
Namespaces that do not pre-exist within StorageOS will be created.
type: string
vsphereVolume:
- description: vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine
+ description: |-
+ vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine.
+ Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type
+ are redirected to the csi.vsphere.vmware.com CSI driver.
type: object
required:
- volumePath
diff --git a/staging/operator-lifecycle-manager/deploy/chart/crds/0000_50_olm_00-installplans.crd.yaml b/staging/operator-lifecycle-manager/deploy/chart/crds/0000_50_olm_00-installplans.crd.yaml
index dfa1681535..ac7b705a05 100644
--- a/staging/operator-lifecycle-manager/deploy/chart/crds/0000_50_olm_00-installplans.crd.yaml
+++ b/staging/operator-lifecycle-manager/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.16.1
+ controller-gen.kubebuilder.io/version: v0.17.0
name: installplans.operators.coreos.com
spec:
group: operators.coreos.com
diff --git a/staging/operator-lifecycle-manager/deploy/chart/crds/0000_50_olm_00-olmconfigs.crd.yaml b/staging/operator-lifecycle-manager/deploy/chart/crds/0000_50_olm_00-olmconfigs.crd.yaml
index e4290c38eb..7e6b54fb6b 100644
--- a/staging/operator-lifecycle-manager/deploy/chart/crds/0000_50_olm_00-olmconfigs.crd.yaml
+++ b/staging/operator-lifecycle-manager/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.16.1
+ controller-gen.kubebuilder.io/version: v0.17.0
name: olmconfigs.operators.coreos.com
spec:
group: operators.coreos.com
diff --git a/staging/operator-lifecycle-manager/deploy/chart/crds/0000_50_olm_00-operatorconditions.crd.yaml b/staging/operator-lifecycle-manager/deploy/chart/crds/0000_50_olm_00-operatorconditions.crd.yaml
index 6d6ef53bee..c2d7fb65ed 100644
--- a/staging/operator-lifecycle-manager/deploy/chart/crds/0000_50_olm_00-operatorconditions.crd.yaml
+++ b/staging/operator-lifecycle-manager/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.16.1
+ controller-gen.kubebuilder.io/version: v0.17.0
name: operatorconditions.operators.coreos.com
spec:
group: operators.coreos.com
diff --git a/staging/operator-lifecycle-manager/deploy/chart/crds/0000_50_olm_00-operatorgroups.crd.yaml b/staging/operator-lifecycle-manager/deploy/chart/crds/0000_50_olm_00-operatorgroups.crd.yaml
index 5e314f9c57..aa218f8eaa 100644
--- a/staging/operator-lifecycle-manager/deploy/chart/crds/0000_50_olm_00-operatorgroups.crd.yaml
+++ b/staging/operator-lifecycle-manager/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.16.1
+ controller-gen.kubebuilder.io/version: v0.17.0
name: operatorgroups.operators.coreos.com
spec:
group: operators.coreos.com
diff --git a/staging/operator-lifecycle-manager/deploy/chart/crds/0000_50_olm_00-operators.crd.yaml b/staging/operator-lifecycle-manager/deploy/chart/crds/0000_50_olm_00-operators.crd.yaml
index cf7c5312f4..f1c7aa997b 100644
--- a/staging/operator-lifecycle-manager/deploy/chart/crds/0000_50_olm_00-operators.crd.yaml
+++ b/staging/operator-lifecycle-manager/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.16.1
+ controller-gen.kubebuilder.io/version: v0.17.0
name: operators.operators.coreos.com
spec:
group: operators.coreos.com
diff --git a/staging/operator-lifecycle-manager/deploy/chart/crds/0000_50_olm_00-subscriptions.crd.yaml b/staging/operator-lifecycle-manager/deploy/chart/crds/0000_50_olm_00-subscriptions.crd.yaml
index e5bf29e9de..f8d7c175c6 100644
--- a/staging/operator-lifecycle-manager/deploy/chart/crds/0000_50_olm_00-subscriptions.crd.yaml
+++ b/staging/operator-lifecycle-manager/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.16.1
+ controller-gen.kubebuilder.io/version: v0.17.0
name: subscriptions.operators.coreos.com
spec:
group: operators.coreos.com
@@ -1358,6 +1358,8 @@ spec:
description: |-
awsElasticBlockStore represents an AWS Disk resource that is attached to a
kubelet's host machine and then exposed to the pod.
+ Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree
+ awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver.
More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
type: object
required:
@@ -1389,7 +1391,10 @@ spec:
More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
type: string
azureDisk:
- description: azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
+ description: |-
+ azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
+ Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type
+ are redirected to the disk.csi.azure.com CSI driver.
type: object
required:
- diskName
@@ -1421,7 +1426,10 @@ spec:
type: boolean
default: false
azureFile:
- description: azureFile represents an Azure File Service mount on the host and bind mount to the pod.
+ description: |-
+ azureFile represents an Azure File Service mount on the host and bind mount to the pod.
+ Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type
+ are redirected to the file.csi.azure.com CSI driver.
type: object
required:
- secretName
@@ -1439,7 +1447,9 @@ spec:
description: shareName is the azure share Name
type: string
cephfs:
- description: cephFS represents a Ceph FS mount on the host that shares a pod's lifetime
+ description: |-
+ cephFS represents a Ceph FS mount on the host that shares a pod's lifetime.
+ Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.
type: object
required:
- monitors
@@ -1490,6 +1500,8 @@ spec:
cinder:
description: |-
cinder represents a cinder volume attached and mounted on kubelets host machine.
+ Deprecated: Cinder is deprecated. All operations for the in-tree cinder type
+ are redirected to the cinder.csi.openstack.org CSI driver.
More info: https://examples.k8s.io/mysql-cinder-pd/README.md
type: object
required:
@@ -1596,7 +1608,7 @@ spec:
type: boolean
x-kubernetes-map-type: atomic
csi:
- description: csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).
+ description: csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers.
type: object
required:
- driver
@@ -2038,6 +2050,7 @@ spec:
description: |-
flexVolume represents a generic volume resource that is
provisioned/attached using an exec based plugin.
+ Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.
type: object
required:
- driver
@@ -2081,7 +2094,9 @@ spec:
default: ""
x-kubernetes-map-type: atomic
flocker:
- description: flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running
+ description: |-
+ flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running.
+ Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.
type: object
properties:
datasetName:
@@ -2096,6 +2111,8 @@ spec:
description: |-
gcePersistentDisk represents a GCE Disk resource that is attached to a
kubelet's host machine and then exposed to the pod.
+ Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree
+ gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver.
More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
type: object
required:
@@ -2131,7 +2148,7 @@ spec:
gitRepo:
description: |-
gitRepo represents a git repository at a particular revision.
- DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an
+ Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an
EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir
into the Pod's container.
type: object
@@ -2154,6 +2171,7 @@ spec:
glusterfs:
description: |-
glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.
+ Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported.
More info: https://examples.k8s.io/volumes/glusterfs/README.md
type: object
required:
@@ -2360,7 +2378,9 @@ spec:
Default false.
type: boolean
photonPersistentDisk:
- description: photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine
+ description: |-
+ photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine.
+ Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.
type: object
required:
- pdID
@@ -2375,7 +2395,11 @@ spec:
description: pdID is the ID that identifies Photon Controller persistent disk
type: string
portworxVolume:
- description: portworxVolume represents a portworx volume attached and mounted on kubelets host machine
+ description: |-
+ portworxVolume represents a portworx volume attached and mounted on kubelets host machine.
+ Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type
+ are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate
+ is on.
type: object
required:
- volumeID
@@ -2710,7 +2734,9 @@ spec:
type: string
x-kubernetes-list-type: atomic
quobyte:
- description: quobyte represents a Quobyte mount on the host that shares a pod's lifetime
+ description: |-
+ quobyte represents a Quobyte mount on the host that shares a pod's lifetime.
+ Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.
type: object
required:
- registry
@@ -2748,6 +2774,7 @@ spec:
rbd:
description: |-
rbd represents a Rados Block Device mount on the host that shares a pod's lifetime.
+ Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported.
More info: https://examples.k8s.io/volumes/rbd/README.md
type: object
required:
@@ -2820,7 +2847,9 @@ spec:
type: string
default: admin
scaleIO:
- description: scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
+ description: |-
+ scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
+ Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.
type: object
required:
- gateway
@@ -2946,7 +2975,9 @@ spec:
More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
type: string
storageos:
- description: storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.
+ description: |-
+ storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.
+ Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported.
type: object
properties:
fsType:
@@ -2991,7 +3022,10 @@ spec:
Namespaces that do not pre-exist within StorageOS will be created.
type: string
vsphereVolume:
- description: vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine
+ description: |-
+ vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine.
+ Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type
+ are redirected to the csi.vsphere.vmware.com CSI driver.
type: object
required:
- volumePath
diff --git a/staging/operator-lifecycle-manager/deploy/upstream/quickstart/olm.yaml b/staging/operator-lifecycle-manager/deploy/upstream/quickstart/olm.yaml
index d011cbf1ee..718ff64d55 100644
--- a/staging/operator-lifecycle-manager/deploy/upstream/quickstart/olm.yaml
+++ b/staging/operator-lifecycle-manager/deploy/upstream/quickstart/olm.yaml
@@ -72,6 +72,7 @@ spec:
imagePullPolicy: IfNotPresent
ports:
- containerPort: 8080
+ protocol: TCP
- containerPort: 8081
name: metrics
protocol: TCP
@@ -132,6 +133,7 @@ spec:
imagePullPolicy: IfNotPresent
ports:
- containerPort: 8080
+ protocol: TCP
- containerPort: 8081
name: metrics
protocol: TCP
@@ -295,6 +297,7 @@ spec:
imagePullPolicy: Always
ports:
- containerPort: 5443
+ protocol: TCP
livenessProbe:
httpGet:
scheme: HTTPS
diff --git a/staging/operator-lifecycle-manager/go.mod b/staging/operator-lifecycle-manager/go.mod
index f18ba9d828..f32e4c0389 100644
--- a/staging/operator-lifecycle-manager/go.mod
+++ b/staging/operator-lifecycle-manager/go.mod
@@ -1,8 +1,8 @@
module github.com/operator-framework/operator-lifecycle-manager
-go 1.22.6
+go 1.23.0
-toolchain go1.22.9
+toolchain go1.23.4
require (
github.com/blang/semver/v4 v4.0.0
@@ -17,15 +17,15 @@ require (
github.com/golang/mock v1.6.0
github.com/google/go-cmp v0.6.0
github.com/itchyny/gojq v0.12.17
- github.com/maxbrunsfeld/counterfeiter/v6 v6.9.0
+ github.com/maxbrunsfeld/counterfeiter/v6 v6.11.2
github.com/mitchellh/hashstructure v1.1.0
github.com/mitchellh/mapstructure v1.5.0
github.com/onsi/ginkgo/v2 v2.22.2
github.com/onsi/gomega v1.36.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.27.0
- github.com/operator-framework/operator-registry v1.48.0
+ github.com/operator-framework/api v0.29.0
+ github.com/operator-framework/operator-registry v1.50.0
github.com/otiai10/copy v1.14.0
github.com/pkg/errors v0.9.1
github.com/prometheus/client_golang v1.20.5
@@ -35,28 +35,29 @@ require (
github.com/spf13/cobra v1.8.1
github.com/spf13/pflag v1.0.5
github.com/stretchr/testify v1.10.0
- golang.org/x/net v0.33.0
+ golang.org/x/net v0.34.0
golang.org/x/sync v0.10.0
golang.org/x/time v0.8.0
- google.golang.org/grpc v1.67.1
+ google.golang.org/grpc v1.68.1
gopkg.in/yaml.v2 v2.4.0
- k8s.io/api v0.31.3
- k8s.io/apiextensions-apiserver v0.31.3
- k8s.io/apimachinery v0.31.3
- k8s.io/apiserver v0.31.3
- k8s.io/client-go v0.31.3
- k8s.io/code-generator v0.31.3
- k8s.io/component-base v0.31.3
+ k8s.io/api v0.32.0
+ k8s.io/apiextensions-apiserver v0.32.0
+ k8s.io/apimachinery v0.32.0
+ k8s.io/apiserver v0.32.0
+ k8s.io/client-go v0.32.0
+ k8s.io/code-generator v0.32.0
+ k8s.io/component-base v0.32.0
k8s.io/klog v1.0.0
k8s.io/klog/v2 v2.130.1
- k8s.io/kube-aggregator v0.31.3
- k8s.io/kube-openapi v0.0.0-20240816214639-573285566f34
- k8s.io/utils v0.0.0-20240711033017-18e509b52bc8
- sigs.k8s.io/controller-runtime v0.19.3
- sigs.k8s.io/controller-tools v0.16.5
+ k8s.io/kube-aggregator v0.32.0
+ k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f
+ k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738
+ sigs.k8s.io/controller-runtime v0.19.4
+ sigs.k8s.io/controller-tools v0.17.0
)
require (
+ cel.dev/expr v0.18.0 // indirect
github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 // indirect
github.com/BurntSushi/toml v1.4.0 // indirect
github.com/Microsoft/go-winio v0.6.2 // indirect
@@ -68,22 +69,22 @@ 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.23 // indirect
- github.com/containerd/containerd/api v1.7.19 // indirect
- github.com/containerd/continuity v0.4.2 // indirect
+ github.com/containerd/containerd v1.7.25 // indirect
+ github.com/containerd/containerd/api v1.8.0 // indirect
+ github.com/containerd/continuity v0.4.4 // indirect
github.com/containerd/errdefs v0.3.0 // indirect
github.com/containerd/errdefs/pkg v0.3.0 // indirect
github.com/containerd/log v0.1.0 // indirect
github.com/containerd/platforms v0.2.1 // indirect
github.com/containerd/ttrpc v1.2.5 // indirect
github.com/containerd/typeurl/v2 v2.2.0 // indirect
- github.com/containers/common v0.60.4 // indirect
+ github.com/containers/common v0.61.0 // indirect
github.com/containers/libtrust v0.0.0-20230121012942-c1716e8a8d01 // indirect
github.com/containers/ocicrypt v1.2.0 // indirect
github.com/containers/storage v1.56.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.3.1+incompatible // indirect
+ github.com/docker/cli v27.4.1+incompatible // indirect
github.com/docker/distribution v2.8.3+incompatible // indirect
github.com/docker/docker v27.3.1+incompatible // indirect
github.com/docker/docker-credential-helpers v0.8.2 // indirect
@@ -105,17 +106,17 @@ require (
github.com/golang-migrate/migrate/v4 v4.18.1 // indirect
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
github.com/golang/protobuf v1.5.4 // indirect
- github.com/google/cel-go v0.20.1 // indirect
+ github.com/google/btree v1.0.1 // indirect
+ github.com/google/cel-go v0.22.1 // indirect
github.com/google/gnostic-models v0.6.8 // indirect
github.com/google/gofuzz v1.2.0 // indirect
github.com/google/pprof v0.0.0-20241210010833-40e02aabc2ad // indirect
github.com/google/uuid v1.6.0 // indirect
github.com/gorilla/mux v1.8.1 // indirect
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 // indirect
- github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 // indirect
+ github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 // indirect
github.com/h2non/filetype v1.1.3 // indirect
github.com/h2non/go-is-svg v0.0.0-20160927212452-35e8c4b0612c // indirect
- github.com/imdario/mergo v0.3.16 // indirect
github.com/inconshreveable/mousetrap v1.1.0 // indirect
github.com/itchyny/timefmt-go v0.1.6 // indirect
github.com/josharian/intern v1.0.0 // indirect
@@ -141,46 +142,45 @@ require (
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
github.com/prometheus/procfs v0.15.1 // indirect
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.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
+ go.etcd.io/etcd/api/v3 v3.5.16 // indirect
+ go.etcd.io/etcd/client/pkg/v3 v3.5.16 // indirect
+ go.etcd.io/etcd/client/v3 v3.5.16 // indirect
go.opencensus.io v0.24.0 // indirect
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.53.0 // indirect
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0 // indirect
go.opentelemetry.io/otel v1.29.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.29.0 // indirect
- go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.27.0 // indirect
+ go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.29.0 // indirect
go.opentelemetry.io/otel/metric v1.29.0 // indirect
go.opentelemetry.io/otel/sdk v1.29.0 // indirect
go.opentelemetry.io/otel/trace v1.29.0 // indirect
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.31.0 // indirect
+ go.uber.org/zap v1.27.0 // indirect
+ golang.org/x/crypto v0.32.0 // indirect
golang.org/x/exp v0.0.0-20241009180824-f66d83c29e7c // indirect
golang.org/x/mod v0.22.0 // indirect
golang.org/x/oauth2 v0.24.0 // indirect
- golang.org/x/sys v0.28.0 // indirect
- golang.org/x/term v0.27.0 // indirect
+ golang.org/x/sys v0.29.0 // indirect
+ golang.org/x/term v0.28.0 // indirect
golang.org/x/text v0.21.0 // indirect
- golang.org/x/tools v0.28.0 // indirect
+ golang.org/x/tools v0.29.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-20240814211410-ddb44dafa142 // indirect
+ google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1 // indirect
+ google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 // indirect
- google.golang.org/protobuf v1.36.1 // indirect
+ google.golang.org/protobuf v1.36.2 // indirect
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
gopkg.in/inf.v0 v0.9.1 // indirect
gopkg.in/natefinch/lumberjack.v2 v2.2.1 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
- k8s.io/gengo/v2 v2.0.0-20240812201722-3b05ca7b6e59 // indirect
- k8s.io/kms v0.31.3 // indirect
- sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.30.3 // indirect
- sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
- sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect
+ k8s.io/gengo/v2 v2.0.0-20240911193312-2b36238f13e9 // indirect
+ k8s.io/kms v0.32.0 // indirect
+ sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.0 // indirect
+ sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 // indirect
+ sigs.k8s.io/structured-merge-diff/v4 v4.4.2 // indirect
sigs.k8s.io/yaml v1.4.0 // indirect
)
diff --git a/staging/operator-lifecycle-manager/go.sum b/staging/operator-lifecycle-manager/go.sum
index 84d68721f4..5f77f43c60 100644
--- a/staging/operator-lifecycle-manager/go.sum
+++ b/staging/operator-lifecycle-manager/go.sum
@@ -1,3 +1,5 @@
+cel.dev/expr v0.18.0 h1:CJ6drgk+Hf96lkLikr4rFf19WrU0BOWEihyZnI2TAzo=
+cel.dev/expr v0.18.0/go.mod h1:MrpN08Q+lEBs+bGYdLxxHkZoUSsCp0nSKTs0nTymJgw=
cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU=
cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU=
@@ -1383,12 +1385,12 @@ 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.23 h1:H2CClyUkmpKAGlhQp95g2WXHfLYc7whAuvZGBNYOOwQ=
-github.com/containerd/containerd v1.7.23/go.mod h1:7QUzfURqZWCZV7RLNEn1XjUCQLEf0bkaK4GjUaZehxw=
-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=
-github.com/containerd/continuity v0.4.2/go.mod h1:F6PTNCKepoxEaXLQp3wDAjygEnImnZ/7o4JzpodfroQ=
+github.com/containerd/containerd v1.7.25 h1:khEQOAXOEJalRO228yzVsuASLH42vT7DIo9Ss+9SMFQ=
+github.com/containerd/containerd v1.7.25/go.mod h1:tWfHzVI0azhw4CT2vaIjsb2CoV4LJ9PrMPaULAr21Ok=
+github.com/containerd/containerd/api v1.8.0 h1:hVTNJKR8fMc/2Tiw60ZRijntNMd1U+JVMyTRdsD2bS0=
+github.com/containerd/containerd/api v1.8.0/go.mod h1:dFv4lt6S20wTu/hMcP4350RL87qPWLVa/OHOwmmdnYc=
+github.com/containerd/continuity v0.4.4 h1:/fNVfTJ7wIl/YPMHjf+5H32uFhl63JucB34PlCpMKII=
+github.com/containerd/continuity v0.4.4/go.mod h1:/lNJvtJKUQStBzpVQ1+rasXO1LAWtUQssk28EZvJ3nE=
github.com/containerd/errdefs v0.3.0 h1:FSZgGOeK4yuT/+DnF07/Olde/q4KBoMsaamhXxIMDp4=
github.com/containerd/errdefs v0.3.0/go.mod h1:+YBYIdtsnF4Iw6nWZhJcqGSg/dwvV7tyJ/kCkyJ2k+M=
github.com/containerd/errdefs/pkg v0.3.0 h1:9IKJ06FvyNlexW690DXuQNx2KA2cUJXx151Xdx3ZPPE=
@@ -1401,8 +1403,8 @@ 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.2.0 h1:6NBDbQzr7I5LHgp34xAXYF5DOTQDn05X58lsPEmzLso=
github.com/containerd/typeurl/v2 v2.2.0/go.mod h1:8XOOxnyatxSWuG8OfsZXVnAF4iZfedjS/8UHSPJnX4g=
-github.com/containers/common v0.60.4 h1:H5+LAMHPZEqX6vVNOQ+IguVsaFl8kbO/SZ/VPXjxhy0=
-github.com/containers/common v0.60.4/go.mod h1:I0upBi1qJX3QmzGbUOBN1LVP6RvkKhd3qQpZbQT+Q54=
+github.com/containers/common v0.61.0 h1:j/84PTqZIKKYy42OEJsZmjZ4g4Kq2ERuC3tqp2yWdh4=
+github.com/containers/common v0.61.0/go.mod h1:NGRISq2vTFPSbhNqj6MLwyes4tWSlCnqbJg7R77B8xc=
github.com/containers/image/v5 v5.33.0 h1:6oPEFwTurf7pDTGw7TghqGs8K0+OvPtY/UyzU0B2DfE=
github.com/containers/image/v5 v5.33.0/go.mod h1:T7HpASmvnp2H1u4cyckMvCzLuYgpD18dSmabSw0AcHk=
github.com/containers/libtrust v0.0.0-20230121012942-c1716e8a8d01 h1:Qzk5C6cYglewc+UyGf6lc8Mj2UaPTHy/iF2De0/77CA=
@@ -1423,12 +1425,12 @@ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78=
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc=
-github.com/distribution/distribution/v3 v3.0.0-beta.1 h1:X+ELTxPuZ1Xe5MsD3kp2wfGUhc8I+MPfRis8dZ818Ic=
-github.com/distribution/distribution/v3 v3.0.0-beta.1/go.mod h1:O9O8uamhHzWWQVTjuQpyYUVm/ShPHPUDgvQMpHGVBDs=
+github.com/distribution/distribution/v3 v3.0.0-rc.1 h1:6M4ewmPBUhF7wtQ8URLOQ1W/PQuVKiD1u8ymwLDUGqQ=
+github.com/distribution/distribution/v3 v3.0.0-rc.1/go.mod h1:tFjaPDeHCrLg28e4feBIy27cP+qmrc/mvkl6MFIfVi4=
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.3.1+incompatible h1:qEGdFBF3Xu6SCvCYhc7CzaQTlBmqDuzxPDpigSyeKQQ=
-github.com/docker/cli v27.3.1+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
+github.com/docker/cli v27.4.1+incompatible h1:VzPiUlRJ/xh+otB75gva3r05isHMo5wXDfPRi5/b4hI=
+github.com/docker/cli v27.4.1+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.3.1+incompatible h1:KttF0XoteNTicmUtBO0L2tP+J7FGRFTjaEF4k6WdhfI=
@@ -1491,10 +1493,10 @@ github.com/go-fonts/liberation v0.2.0/go.mod h1:K6qoJYypsmfVjWg8KOVDQhLc8UDgIK2H
github.com/go-fonts/stix v0.1.0/go.mod h1:w/c1f0ldAUlJmLBvlbkvVXLAD+tAMqobIIQpmnUIzUY=
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66DAb0lQFJrpS6731Oaa12ikc+DiI=
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376/go.mod h1:an3vInlBmSxCcxctByoQdvwPiA7DTK7jaaFDBTtu0ic=
-github.com/go-git/go-billy/v5 v5.5.0 h1:yEY4yhzCDuMGSv83oGxiBotRzhwhNr8VZyphhiu+mTU=
-github.com/go-git/go-billy/v5 v5.5.0/go.mod h1:hmexnoNsr2SJU1Ju67OaNz5ASJY3+sHgFRpCtpDCKow=
-github.com/go-git/go-git/v5 v5.11.0 h1:XIZc1p+8YzypNr34itUfSvYJcv+eYdTnTvOZ2vD3cA4=
-github.com/go-git/go-git/v5 v5.11.0/go.mod h1:6GFcX2P3NM7FPBfpePbpLd21XxsgdAt+lKqXmCUiUCY=
+github.com/go-git/go-billy/v5 v5.6.1 h1:u+dcrgaguSSkbjzHwelEjc0Yj300NUevrrPphk/SoRA=
+github.com/go-git/go-billy/v5 v5.6.1/go.mod h1:0AsLr1z2+Uksi4NlElmMblP5rPcDZNRCD8ujZCRR2BE=
+github.com/go-git/go-git/v5 v5.13.1 h1:DAQ9APonnlvSWpvolXWIuV6Q6zXy2wHbN4cVlNR5Q+M=
+github.com/go-git/go-git/v5 v5.13.1/go.mod h1:qryJB4cSBoq3FRoBRf5A77joojuBcmPJ0qu3XXXVixc=
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
@@ -1583,8 +1585,8 @@ github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Z
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
github.com/google/btree v1.0.1 h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4=
github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA=
-github.com/google/cel-go v0.20.1 h1:nDx9r8S3L4pE61eDdt8igGj8rf5kjYR3ILxWIpWNi84=
-github.com/google/cel-go v0.20.1/go.mod h1:kWcIzTsPX0zmQ+H3TirHstLLf9ep5QTsZBN9u4dOYLg=
+github.com/google/cel-go v0.22.1 h1:AfVXx3chM2qwoSbM7Da8g8hX8OVSkBFwX+rz2+PcK40=
+github.com/google/cel-go v0.22.1/go.mod h1:BuznPXXfQDpXKWQ9sPW3TzlAJN5zzFe+i9tIs0yC4s8=
github.com/google/flatbuffers v2.0.8+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8=
github.com/google/flatbuffers v23.5.26+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8=
github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I=
@@ -1686,8 +1688,8 @@ github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFb
github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0/go.mod h1:hgWBS7lorOAVIJEQMi4ZsPv9hVvWI6+ch50m39Pf2Ks=
github.com/grpc-ecosystem/grpc-gateway/v2 v2.11.3/go.mod h1:o//XUCC/F+yRGJoPO/VU0GSB0f8Nhgmxx0VIRUvaC0w=
github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg=
-github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 h1:bkypFPDjIYGfCYD5mRBvpqxfYX1YCS1PXdKYWi8FsN0=
-github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0/go.mod h1:P+Lt/0by1T8bfcF3z737NnSbmxQAppXMRziHUxPOC8k=
+github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 h1:asbCHRVmodnJTuQ3qamDwqVOIjwqUPTYmYuemVOx+Ys=
+github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0/go.mod h1:ggCgvZ2r7uOoQjOyu2Y1NhHmEPPzzuhWgcza5M1Ji1I=
github.com/h2non/filetype v1.1.3 h1:FKkx9QbD7HR/zjK1Ia5XiBsq9zdLi5Kf3zGyFTAFkGg=
github.com/h2non/filetype v1.1.3/go.mod h1:319b3zT68BvV+WRj7cwy856M2ehB3HqNOt6sy1HndBY=
github.com/h2non/go-is-svg v0.0.0-20160927212452-35e8c4b0612c h1:fEE5/5VNnYUoBOj2I9TP8Jc+a7lge3QWn9DKE7NCwfc=
@@ -1709,8 +1711,6 @@ github.com/iancoleman/strcase v0.3.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47
github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
github.com/ianlancetaylor/demangle v0.0.0-20220319035150-800ac71e25c2/go.mod h1:aYm2/VgdVmcIU8iMfdMvDMsRAQjcfZSKFby6HOFvi/w=
-github.com/imdario/mergo v0.3.16 h1:wwQJbIsHYGMUyLSPrEq1CT16AhnhNJQ51+4fdHUnCl4=
-github.com/imdario/mergo v0.3.16/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY=
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
github.com/itchyny/gojq v0.12.17 h1:8av8eGduDb5+rvEdaOO+zQUjA04MS0m3Ps8HiD+fceg=
@@ -1719,10 +1719,10 @@ github.com/itchyny/timefmt-go v0.1.6 h1:ia3s54iciXDdzWzwaVKXZPbiXzxxnv1SPGFfM/my
github.com/itchyny/timefmt-go v0.1.6/go.mod h1:RRDZYC5s9ErkjQvTvvU7keJjxUYzIISJGxm9/mAERQg=
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A=
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo=
-github.com/joelanford/ignore v0.1.0 h1:VawbTDeg5EL+PN7W8gxVzGerfGpVo3gFdR5ZAqnkYRk=
-github.com/joelanford/ignore v0.1.0/go.mod h1:Vb0PQMAQXK29fmiPjDukpO8I2NTcp1y8LbhFijD1/0o=
-github.com/jonboulle/clockwork v0.2.2 h1:UOGuzwb1PwsrDAObMuhUnj0p5ULPj8V/xJ7Kx9qUBdQ=
-github.com/jonboulle/clockwork v0.2.2/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8=
+github.com/joelanford/ignore v0.1.1 h1:vKky5RDoPT+WbONrbQBgOn95VV/UPh4ejlyAbbzgnQk=
+github.com/joelanford/ignore v0.1.1/go.mod h1:8eho/D8fwQ3rIXrLwE23AaeaGDNXqLE9QJ3zJ4LIPCw=
+github.com/jonboulle/clockwork v0.4.0 h1:p4Cf1aMWXnXAUh8lVfewRBx1zaTSYKrKMF2g3ST4RZ4=
+github.com/jonboulle/clockwork v0.4.0/go.mod h1:xgRqUGwRcjKCO1vbZUEtSLrqKoPSsUpK7fnezOII0kc=
github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
@@ -1781,8 +1781,8 @@ github.com/mattn/go-sqlite3 v1.14.15/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S
github.com/mattn/go-sqlite3 v1.14.16/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg=
github.com/mattn/go-sqlite3 v1.14.24 h1:tpSp2G2KyMnnQu99ngJ47EIkWVmliIizyZBfPrBWDRM=
github.com/mattn/go-sqlite3 v1.14.24/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y=
-github.com/maxbrunsfeld/counterfeiter/v6 v6.9.0 h1:ERhc+PJKEyqWQnKu7/K0frSVGFihYYImqNdqP5r0cN0=
-github.com/maxbrunsfeld/counterfeiter/v6 v6.9.0/go.mod h1:tU2wQdIyJ7fib/YXxFR0dgLlFz3yl4p275UfUKmDFjk=
+github.com/maxbrunsfeld/counterfeiter/v6 v6.11.2 h1:yVCLo4+ACVroOEr4iFU1iH46Ldlzz2rTuu18Ra7M8sU=
+github.com/maxbrunsfeld/counterfeiter/v6 v6.11.2/go.mod h1:VzB2VoMh1Y32/QqDfg9ZJYHj99oM4LiGtqPZydTiQSQ=
github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8/go.mod h1:mC1jAcsrzbxHt8iiaC+zU4b1ylILSosueou12R++wfY=
github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3/go.mod h1:RagcQ7I8IeTMnF8JTXieKnO4Z6JCsikNEzj0DwauVzE=
github.com/mitchellh/hashstructure v1.1.0 h1:P6P1hdjqAAknpY/M1CGipelZgp+4y9ja9kmUZPXP+H0=
@@ -1826,10 +1826,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.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.48.0 h1:OBTITNJdJuDz+OQVtwHCDP+cAsVeujJH/26HZ6o+zxQ=
-github.com/operator-framework/operator-registry v1.48.0/go.mod h1:viEvcrj16nyauX78J38+BEELSaF+uY7GOu6TJdiOSqU=
+github.com/operator-framework/api v0.29.0 h1:TxAR8RCO+I4FjRrY4PSMgnlmbxNWeD8pzHXp7xwHNmw=
+github.com/operator-framework/api v0.29.0/go.mod h1:0whQE4mpMDd2zyHkQe+bFa3DLoRs6oGWCbu8dY/3pyc=
+github.com/operator-framework/operator-registry v1.50.0 h1:kMAwsKAEDjuSx5dGchMX+CD3SMHWwOAC/xyK3LQweB4=
+github.com/operator-framework/operator-registry v1.50.0/go.mod h1:713Z/XzA5jViFMGIsXmfAcpA6h5uUKqUl3fO1t4taa0=
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=
@@ -1913,8 +1913,6 @@ github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXl
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
github.com/substrait-io/substrait-go v0.4.2/go.mod h1:qhpnLmrcvAnlZsUyPXZRqldiHapPTXC3t7xFgDi3aQg=
-github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635 h1:kdXcSzyDtseVEc4yCz2qF8ZrQvIDBJLl4S1c3GCXmoI=
-github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww=
github.com/tidwall/btree v1.7.0 h1:L1fkJH/AuEh5zBnnBbmTwQ5Lt+bRJ5A8EWecslvo9iI=
github.com/tidwall/btree v1.7.0/go.mod h1:twD9XRA5jj9VUQGELzDO4HPQTNJsoWWfYEL+EUQ2cKY=
github.com/tmc/grpc-websocket-proxy v0.0.0-20220101234140-673ab2c3ae75 h1:6fotK7otjonDflCTK0BCfls4SPy3NcCVb5dqqmbRknE=
@@ -1925,8 +1923,8 @@ github.com/vbatts/tar-split v0.11.6 h1:4SjTW5+PU11n6fZenf2IPoV8/tz3AaYHMWjf23env
github.com/vbatts/tar-split v0.11.6/go.mod h1:dqKNtesIOr2j2Qv3W/cHjnvk9I8+G7oAkFDFN6TCBEI=
github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM=
github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg=
-github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 h1:eY9dn8+vbi4tKz5Qo6v2eYzo7kUS51QINcR5jNpbZS8=
-github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
+github.com/xiang90/probing v0.0.0-20221125231312-a49e3df8f510 h1:S2dVYn90KE98chqDkyE9Z4N61UnQd+KOfgp5Iu53llk=
+github.com/xiang90/probing v0.0.0-20221125231312-a49e3df8f510/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
@@ -1939,20 +1937,20 @@ github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaD
go.einride.tech/aip v0.66.0/go.mod h1:qAhMsfT7plxBX+Oy7Huol6YUvZ0ZzdUz26yZsQwfl1M=
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=
-go.etcd.io/etcd/client/pkg/v3 v3.5.14/go.mod h1:8uMgAokyG1czCtIdsq+AGyYQMvpIKnSvPjFMunkgeZI=
-go.etcd.io/etcd/client/v2 v2.305.13 h1:RWfV1SX5jTU0lbCvpVQe3iPQeAHETWdOTb6pxhd77C8=
-go.etcd.io/etcd/client/v2 v2.305.13/go.mod h1:iQnL7fepbiomdXMb3om1rHq96htNNGv2sJkEcZGDRRg=
-go.etcd.io/etcd/client/v3 v3.5.14 h1:CWfRs4FDaDoSz81giL7zPpZH2Z35tbOrAJkkjMqOupg=
-go.etcd.io/etcd/client/v3 v3.5.14/go.mod h1:k3XfdV/VIHy/97rqWjoUzrj9tk7GgJGH9J8L4dNXmAk=
-go.etcd.io/etcd/pkg/v3 v3.5.13 h1:st9bDWNsKkBNpP4PR1MvM/9NqUPfvYZx/YXegsYEH8M=
-go.etcd.io/etcd/pkg/v3 v3.5.13/go.mod h1:N+4PLrp7agI/Viy+dUYpX7iRtSPvKq+w8Y14d1vX+m0=
-go.etcd.io/etcd/raft/v3 v3.5.13 h1:7r/NKAOups1YnKcfro2RvGGo2PTuizF/xh26Z2CTAzA=
-go.etcd.io/etcd/raft/v3 v3.5.13/go.mod h1:uUFibGLn2Ksm2URMxN1fICGhk8Wu96EfDQyuLhAcAmw=
-go.etcd.io/etcd/server/v3 v3.5.13 h1:V6KG+yMfMSqWt+lGnhFpP5z5dRUj1BDRJ5k1fQ9DFok=
-go.etcd.io/etcd/server/v3 v3.5.13/go.mod h1:K/8nbsGupHqmr5MkgaZpLlH1QdX1pcNQLAkODy44XcQ=
+go.etcd.io/etcd/api/v3 v3.5.16 h1:WvmyJVbjWqK4R1E+B12RRHz3bRGy9XVfh++MgbN+6n0=
+go.etcd.io/etcd/api/v3 v3.5.16/go.mod h1:1P4SlIP/VwkDmGo3OlOD7faPeP8KDIFhqvciH5EfN28=
+go.etcd.io/etcd/client/pkg/v3 v3.5.16 h1:ZgY48uH6UvB+/7R9Yf4x574uCO3jIx0TRDyetSfId3Q=
+go.etcd.io/etcd/client/pkg/v3 v3.5.16/go.mod h1:V8acl8pcEK0Y2g19YlOV9m9ssUe6MgiDSobSoaBAM0E=
+go.etcd.io/etcd/client/v2 v2.305.16 h1:kQrn9o5czVNaukf2A2At43cE9ZtWauOtf9vRZuiKXow=
+go.etcd.io/etcd/client/v2 v2.305.16/go.mod h1:h9YxWCzcdvZENbfzBTFCnoNumr2ax3F19sKMqHFmXHE=
+go.etcd.io/etcd/client/v3 v3.5.16 h1:sSmVYOAHeC9doqi0gv7v86oY/BTld0SEFGaxsU9eRhE=
+go.etcd.io/etcd/client/v3 v3.5.16/go.mod h1:X+rExSGkyqxvu276cr2OwPLBaeqFu1cIl4vmRjAD/50=
+go.etcd.io/etcd/pkg/v3 v3.5.16 h1:cnavs5WSPWeK4TYwPYfmcr3Joz9BH+TZ6qoUtz6/+mc=
+go.etcd.io/etcd/pkg/v3 v3.5.16/go.mod h1:+lutCZHG5MBBFI/U4eYT5yL7sJfnexsoM20Y0t2uNuY=
+go.etcd.io/etcd/raft/v3 v3.5.16 h1:zBXA3ZUpYs1AwiLGPafYAKKl/CORn/uaxYDwlNwndAk=
+go.etcd.io/etcd/raft/v3 v3.5.16/go.mod h1:P4UP14AxofMJ/54boWilabqqWoW9eLodl6I5GdGzazI=
+go.etcd.io/etcd/server/v3 v3.5.16 h1:d0/SAdJ3vVsZvF8IFVb1k8zqMZ+heGcNfft71ul9GWE=
+go.etcd.io/etcd/server/v3 v3.5.16/go.mod h1:ynhyZZpdDp1Gq49jkUg5mfkDWZwXnn3eIqCqtJnrD/s=
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
@@ -1962,8 +1960,10 @@ go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk=
go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E=
go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0=
go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo=
-go.opentelemetry.io/contrib/exporters/autoexport v0.46.1 h1:ysCfPZB9AjUlMa1UHYup3c9dAOCMQX/6sxSfPBUoxHw=
-go.opentelemetry.io/contrib/exporters/autoexport v0.46.1/go.mod h1:ha0aiYm+DOPsLHjh0zoQ8W8sLT+LJ58J3j47lGpSLrU=
+go.opentelemetry.io/contrib/bridges/prometheus v0.54.0 h1:WWL67oxtknNVMb70lJXxXruf8UyK/a9hmIE1XO3Uedg=
+go.opentelemetry.io/contrib/bridges/prometheus v0.54.0/go.mod h1:LqNcnXmyULp8ertk4hUTVtSUvKXj4h1Mx7gUCSSr/q0=
+go.opentelemetry.io/contrib/exporters/autoexport v0.54.0 h1:dTmcmVm4J54IRPGm5oVjLci1uYat4UDea84E2tyBaAk=
+go.opentelemetry.io/contrib/exporters/autoexport v0.54.0/go.mod h1:zPp5Fwpq2Hc7xMtVttg6GhZMcfTESjVbY9ONw2o/Dc4=
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.1/go.mod h1:4UoMYEZOC0yN/sPGH76KPkkU7zgiEWYWL9vwmbnTJPE=
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.47.0/go.mod h1:r9vWsPS/3AQItv3OSlEJ/E4mbrhUbbw18meOjArPtKQ=
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.53.0 h1:9G6E0TXzGFVfTnawRzrPl83iHOAV7L8NJiR8RSGYV1g=
@@ -1977,22 +1977,28 @@ go.opentelemetry.io/otel v1.21.0/go.mod h1:QZzNPQPm1zLX4gZK4cMi+71eaorMSGT3A4znn
go.opentelemetry.io/otel v1.22.0/go.mod h1:eoV4iAi3Ea8LkAEI9+GFT44O6T/D0GWAVFyZVCC6pMI=
go.opentelemetry.io/otel v1.29.0 h1:PdomN/Al4q/lN6iBJEN3AwPvUiHPMlt93c8bqTG5Llw=
go.opentelemetry.io/otel v1.29.0/go.mod h1:N/WtXPs1CNCUEx+Agz5uouwCba+i+bJGFicT8SR4NP8=
-go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.44.0 h1:jd0+5t/YynESZqsSyPz+7PAFdEop0dlN0+PkyHYo8oI=
-go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.44.0/go.mod h1:U707O40ee1FpQGyhvqnzmCJm1Wh6OX6GGBVn0E6Uyyk=
-go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v0.44.0 h1:bflGWrfYyuulcdxf14V6n9+CoQcu5SAAdHmDPAJnlps=
-go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v0.44.0/go.mod h1:qcTO4xHAxZLaLxPd60TdE88rxtItPHgHWqOhOGRr0as=
+go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.5.0 h1:4d++HQ+Ihdl+53zSjtsCUFDmNMju2FC9qFkUlTxPLqo=
+go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.5.0/go.mod h1:mQX5dTO3Mh5ZF7bPKDkt5c/7C41u/SiDr9XgTpzXXn8=
+go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.29.0 h1:k6fQVDQexDE+3jG2SfCQjnHS7OamcP73YMoxEVq5B6k=
+go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.29.0/go.mod h1:t4BrYLHU450Zo9fnydWlIuswB1bm7rM8havDpWOJeDo=
+go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.29.0 h1:xvhQxJ/C9+RTnAj5DpTg7LSM1vbbMTiXt7e9hsfqHNw=
+go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.29.0/go.mod h1:Fcvs2Bz1jkDM+Wf5/ozBGmi3tQ/c9zPKLnsipnfhGAo=
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.29.0 h1:dIIDULZJpgdiHz5tXrTgKIMLkus6jEFa7x5SOKcyR7E=
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.29.0/go.mod h1:jlRVBe7+Z1wyxFSUs48L6OBQZ5JwH2Hg/Vbl+t9rAgI=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.27.0 h1:qFffATk0X+HD+f1Z8lswGiOQYKHRlzfmdJm0wEaVrFA=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.27.0/go.mod h1:MOiCmryaYtc+V0Ei+Tx9o5S1ZjA7kzLucuVuyzBZloQ=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.21.0 h1:digkEZCJWobwBqMwC0cwCq8/wkkRy/OowZg5OArWZrM=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.21.0/go.mod h1:/OpE/y70qVkndM0TrxT4KBoN3RsFZP0QaofcfYrj76I=
-go.opentelemetry.io/otel/exporters/prometheus v0.44.0 h1:08qeJgaPC0YEBu2PQMbqU3rogTlyzpjhCI2b58Yn00w=
-go.opentelemetry.io/otel/exporters/prometheus v0.44.0/go.mod h1:ERL2uIeBtg4TxZdojHUwzZfIFlUIjZtxubT5p4h1Gjg=
-go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v0.44.0 h1:dEZWPjVN22urgYCza3PXRUGEyCB++y1sAqm6guWFesk=
-go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v0.44.0/go.mod h1:sTt30Evb7hJB/gEk27qLb1+l9n4Tb8HvHkR0Wx3S6CU=
-go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.21.0 h1:VhlEQAPp9R1ktYfrPk5SOryw1e9LDDTZCbIPFrho0ec=
-go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.21.0/go.mod h1:kB3ufRbfU+CQ4MlUcqtW8Z7YEOBeK2DJ6CmR5rYYF3E=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.29.0 h1:nSiV3s7wiCam610XcLbYOmMfJxB9gO4uK3Xgv5gmTgg=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.29.0/go.mod h1:hKn/e/Nmd19/x1gvIHwtOwVWM+VhuITSWip3JUDghj0=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.29.0 h1:JAv0Jwtl01UFiyWZEMiJZBiTlv5A50zNs8lsthXqIio=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.29.0/go.mod h1:QNKLmUEAq2QUbPQUfvw4fmv0bgbK7UlOSFCnXyfvSNc=
+go.opentelemetry.io/otel/exporters/prometheus v0.51.0 h1:G7uexXb/K3T+T9fNLCCKncweEtNEBMTO+46hKX5EdKw=
+go.opentelemetry.io/otel/exporters/prometheus v0.51.0/go.mod h1:v0mFe5Kk7woIh938mrZBJBmENYquyA0IICrlYm4Y0t4=
+go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.5.0 h1:ThVXnEsdwNcxdBO+r96ci1xbF+PgNjwlk457VNuJODo=
+go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.5.0/go.mod h1:rHWcSmC4q2h3gje/yOq6sAOaq8+UHxN/Ru3BbmDXOfY=
+go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.29.0 h1:WDdP9acbMYjbKIyJUhTvtzj601sVJOqgWdUxSdR/Ysc=
+go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.29.0/go.mod h1:BLbf7zbNIONBLPwvFnwNHGj4zge8uTCM/UPIVW1Mq2I=
+go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.29.0 h1:X3ZjNp36/WlkSYx0ul2jw4PtbNEDDeLskw3VPsrpYM0=
+go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.29.0/go.mod h1:2uL/xnOXh0CHOBFCWXz5u1A4GXLiW+0IQIzVbeOEQ0U=
+go.opentelemetry.io/otel/log v0.5.0 h1:x1Pr6Y3gnXgl1iFBwtGy1W/mnzENoK0w0ZoaeOI3i30=
+go.opentelemetry.io/otel/log v0.5.0/go.mod h1:NU/ozXeGuOR5/mjCRXYbTC00NFJ3NYuraV/7O78F0rE=
go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8=
go.opentelemetry.io/otel/metric v1.21.0/go.mod h1:o1p3CA8nNHW8j5yuQLdc1eeqEaPfzug24uvsyIEJRWM=
go.opentelemetry.io/otel/metric v1.22.0/go.mod h1:evJGjVpZv0mQ5QBRJoBF64yMuOf4xCWdXjK8pzFvliY=
@@ -2002,8 +2008,10 @@ 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.29.0 h1:vkqKjk7gwhS8VaWb0POZKmIEDimRCMsopNYnriHyryo=
go.opentelemetry.io/otel/sdk v1.29.0/go.mod h1:pM8Dx5WKnvxLCb+8lG1PRNIDxu9g9b9g59Qr7hfAAok=
-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/sdk/log v0.5.0 h1:A+9lSjlZGxkQOr7QSBJcuyyYBw79CufQ69saiJLey7o=
+go.opentelemetry.io/otel/sdk/log v0.5.0/go.mod h1:zjxIW7sw1IHolZL2KlSAtrUi8JHttoeiQy43Yl3WuVQ=
+go.opentelemetry.io/otel/sdk/metric v1.29.0 h1:K2CfmJohnRgvZ9UAj2/FhIf/okdWcNdBwe1m8xFXiSY=
+go.opentelemetry.io/otel/sdk/metric v1.29.0/go.mod h1:6zZLdCl2fkauYoZIOn/soQIDSWFmNSRcICarHfuhNJQ=
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=
@@ -2021,8 +2029,8 @@ go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
-go.uber.org/zap v1.26.0 h1:sI7k6L95XOKS281NhVKOFCUNIvv9e0w4BF8N3u+tCRo=
-go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so=
+go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8=
+go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
@@ -2046,8 +2054,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.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U=
-golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk=
+golang.org/x/crypto v0.32.0 h1:euUpcYgM8WcP71gNpTqQCn6rC2t6ULUPiOzfWaXVVfc=
+golang.org/x/crypto v0.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc=
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=
@@ -2182,8 +2190,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.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I=
-golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4=
+golang.org/x/net v0.34.0 h1:Mb7Mrk043xzHgnRM88suvJFwzVrRfHEHJEl5/71CKw0=
+golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k=
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=
@@ -2330,8 +2338,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.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA=
-golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
+golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU=
+golang.org/x/sys v0.29.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=
@@ -2349,8 +2357,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.27.0 h1:WP60Sv1nlK1T6SupCHbXzSaN0b9wUmsPoRS9b61A23Q=
-golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM=
+golang.org/x/term v0.28.0 h1:/Ts8HFuMR2E6IP/jlo7QVLZHggjKQbhu/7H0LJFr3Gg=
+golang.org/x/term v0.28.0/go.mod h1:Sw/lC2IAUZ92udQNf3WodGtn4k/XoLyZoh8v/8uiwek=
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=
@@ -2449,8 +2457,8 @@ golang.org/x/tools v0.9.1/go.mod h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc=
golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM=
golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58=
golang.org/x/tools v0.14.0/go.mod h1:uYBEerGOWcJyEORxN+Ek8+TT266gXkNlHdJBwexUsBg=
-golang.org/x/tools v0.28.0 h1:WuB6qZ4RPCQo5aP3WdKZS7i595EdWqWR8vqJTlwTVK8=
-golang.org/x/tools v0.28.0/go.mod h1:dcIOrVd3mfQKTgrDVQHqCPMWy6lnhfhtX3hLXYVLfRw=
+golang.org/x/tools v0.29.0 h1:Xx0h3TtM9rzQpQuR4dKLrdglAmCEN5Oi+P74JdhdzXE=
+golang.org/x/tools v0.29.0/go.mod h1:KMQVMRsVxU6nHCFXrBPhDB8XncLNLM0lIy/F14RP588=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
@@ -2705,8 +2713,9 @@ google.golang.org/genproto v0.0.0-20240116215550-a9fa1716bcac/go.mod h1:+Rvu7ElI
google.golang.org/genproto v0.0.0-20240125205218-1f4bbc51befe/go.mod h1:cc8bqMqtv9gMOr0zHg2Vzff5ULhhL2IXP4sbcn32Dro=
google.golang.org/genproto v0.0.0-20240205150955-31a09d347014/go.mod h1:xEgQu1e4stdSSsxPDK8Azkrk/ECl5HvdPf6nbZrTS5M=
google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9/go.mod h1:mqHbVIp48Muh7Ywss/AD6I5kNVKZMmAa/QEW58Gxp2s=
-google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de h1:F6qOa9AZTYJXOUEr4jDysRDLrm4PHePlge4v4TGAlxY=
google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:VUhTRKeHn9wwcdrk73nvdC9gF178Tzhmt/qyaFcPLSo=
+google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1 h1:BulPr26Jqjnd4eYDVe+YvyR7Yc2vJGkO5/0UxD0/jZU=
+google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:hL97c3SYopEHblzpxRL4lSs523++l8DYxGM1FQiYmb4=
google.golang.org/genproto/googleapis/api v0.0.0-20230525234020-1aefcd67740a/go.mod h1:ts19tUU+Z0ZShN1y3aPyq2+O3d5FUNNgT6FtOzmrNn8=
google.golang.org/genproto/googleapis/api v0.0.0-20230525234035-dd9d682886f9/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig=
google.golang.org/genproto/googleapis/api v0.0.0-20230526203410-71b5a4ffd15e/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig=
@@ -2734,8 +2743,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-20240814211410-ddb44dafa142 h1:wKguEg1hsxI2/L3hUYrpo1RVi48K+uTyzKqprwLXsb8=
-google.golang.org/genproto/googleapis/api v0.0.0-20240814211410-ddb44dafa142/go.mod h1:d6be+8HhtEtucleCbxpPW9PA9XwISACu8nvpPqF0BVo=
+google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1 h1:hjSy6tcFQZ171igDaN5QHOw2n6vx40juYbC/x67CEhc=
+google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:qpvKtACPCQhAdu3PyQgV4l3LMXZEtft7y8QcarRsp9I=
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=
@@ -2794,8 +2803,8 @@ google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqw
google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
-google.golang.org/protobuf v1.36.1 h1:yBPeRvTftaleIgM3PZ/WBIZ7XM/eEYAaEyCwvyjq/gk=
-google.golang.org/protobuf v1.36.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
+google.golang.org/protobuf v1.36.2 h1:R8FeyR1/eLmkutZOM5CWghmo5itiG9z0ktFlTVLuTmU=
+google.golang.org/protobuf v1.36.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
@@ -2813,7 +2822,6 @@ gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME=
gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI=
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
@@ -2830,34 +2838,34 @@ honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt
honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
honnef.co/go/tools v0.1.3/go.mod h1:NgwopIslSNH47DimFoV78dnkksY2EFtX0ajyb3K/las=
-k8s.io/api v0.31.3 h1:umzm5o8lFbdN/hIXbrK9oRpOproJO62CV1zqxXrLgk8=
-k8s.io/api v0.31.3/go.mod h1:UJrkIp9pnMOI9K2nlL6vwpxRzzEX5sWgn8kGQe92kCE=
-k8s.io/apiextensions-apiserver v0.31.3 h1:+GFGj2qFiU7rGCsA5o+p/rul1OQIq6oYpQw4+u+nciE=
-k8s.io/apiextensions-apiserver v0.31.3/go.mod h1:2DSpFhUZZJmn/cr/RweH1cEVVbzFw9YBu4T+U3mf1e4=
-k8s.io/apimachinery v0.31.3 h1:6l0WhcYgasZ/wk9ktLq5vLaoXJJr5ts6lkaQzgeYPq4=
-k8s.io/apimachinery v0.31.3/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo=
-k8s.io/apiserver v0.31.3 h1:+1oHTtCB+OheqFEz375D0IlzHZ5VeQKX1KGXnx+TTuY=
-k8s.io/apiserver v0.31.3/go.mod h1:PrxVbebxrxQPFhJk4powDISIROkNMKHibTg9lTRQ0Qg=
-k8s.io/client-go v0.31.3 h1:CAlZuM+PH2cm+86LOBemaJI/lQ5linJ6UFxKX/SoG+4=
-k8s.io/client-go v0.31.3/go.mod h1:2CgjPUTpv3fE5dNygAr2NcM8nhHzXvxB8KL5gYc3kJs=
-k8s.io/code-generator v0.31.3 h1:Pj0fYOBms+ZrsulLi4DMsCEx1jG8fWKRLy44onHsLBI=
-k8s.io/code-generator v0.31.3/go.mod h1:/umCIlT84g1+Yu5ZXtP1KGSRTnGiIzzX5AzUAxsNlts=
-k8s.io/component-base v0.31.3 h1:DMCXXVx546Rfvhj+3cOm2EUxhS+EyztH423j+8sOwhQ=
-k8s.io/component-base v0.31.3/go.mod h1:xME6BHfUOafRgT0rGVBGl7TuSg8Z9/deT7qq6w7qjIU=
-k8s.io/gengo/v2 v2.0.0-20240812201722-3b05ca7b6e59 h1:PfhT3P5Y7psqhl0D77Rj2B7RH77eid/wBttxlMTxXag=
-k8s.io/gengo/v2 v2.0.0-20240812201722-3b05ca7b6e59/go.mod h1:VH3AT8AaQOqiGjMF9p0/IM1Dj+82ZwjfxUP1IxaHE+8=
+k8s.io/api v0.32.0 h1:OL9JpbvAU5ny9ga2fb24X8H6xQlVp+aJMFlgtQjR9CE=
+k8s.io/api v0.32.0/go.mod h1:4LEwHZEf6Q/cG96F3dqR965sYOfmPM7rq81BLgsE0p0=
+k8s.io/apiextensions-apiserver v0.32.0 h1:S0Xlqt51qzzqjKPxfgX1xh4HBZE+p8KKBq+k2SWNOE0=
+k8s.io/apiextensions-apiserver v0.32.0/go.mod h1:86hblMvN5yxMvZrZFX2OhIHAuFIMJIZ19bTvzkP+Fmw=
+k8s.io/apimachinery v0.32.0 h1:cFSE7N3rmEEtv4ei5X6DaJPHHX0C+upp+v5lVPiEwpg=
+k8s.io/apimachinery v0.32.0/go.mod h1:GpHVgxoKlTxClKcteaeuF1Ul/lDVb74KpZcxcmLDElE=
+k8s.io/apiserver v0.32.0 h1:VJ89ZvQZ8p1sLeiWdRJpRD6oLozNZD2+qVSLi+ft5Qs=
+k8s.io/apiserver v0.32.0/go.mod h1:HFh+dM1/BE/Hm4bS4nTXHVfN6Z6tFIZPi649n83b4Ag=
+k8s.io/client-go v0.32.0 h1:DimtMcnN/JIKZcrSrstiwvvZvLjG0aSxy8PxN8IChp8=
+k8s.io/client-go v0.32.0/go.mod h1:boDWvdM1Drk4NJj/VddSLnx59X3OPgwrOo0vGbtq9+8=
+k8s.io/code-generator v0.32.0 h1:s0lNN8VSWny8LBz5t5iy7MCdgwdOhdg7vAGVxvS+VWU=
+k8s.io/code-generator v0.32.0/go.mod h1:b7Q7KMZkvsYFy72A79QYjiv4aTz3GvW0f1T3UfhFq4s=
+k8s.io/component-base v0.32.0 h1:d6cWHZkCiiep41ObYQS6IcgzOUQUNpywm39KVYaUqzU=
+k8s.io/component-base v0.32.0/go.mod h1:JLG2W5TUxUu5uDyKiH2R/7NnxJo1HlPoRIIbVLkK5eM=
+k8s.io/gengo/v2 v2.0.0-20240911193312-2b36238f13e9 h1:si3PfKm8dDYxgfbeA6orqrtLkvvIeH8UqffFJDl0bz4=
+k8s.io/gengo/v2 v2.0.0-20240911193312-2b36238f13e9/go.mod h1:EJykeLsmFC60UQbYJezXkEsG2FLrt0GPNkU5iK5GWxU=
k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8=
k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I=
k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk=
k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE=
-k8s.io/kms v0.31.3 h1:XCFmiJn5CCKs8xoOLpCmu42Ubm/KW85wNHybGFcSAYc=
-k8s.io/kms v0.31.3/go.mod h1:OZKwl1fan3n3N5FFxnW5C4V3ygrah/3YXeJWS3O6+94=
-k8s.io/kube-aggregator v0.31.3 h1:DqHPdTglJHgOfB884AaroyxrML/aL82ASYOh65m7MSk=
-k8s.io/kube-aggregator v0.31.3/go.mod h1:Kx59Xjnf0SnY47qf9Or++4y3XCHQ3kR0xk1Di6KFiFU=
-k8s.io/kube-openapi v0.0.0-20240816214639-573285566f34 h1:/amS69DLm09mtbFtN3+LyygSFohnYGMseF8iv+2zulg=
-k8s.io/kube-openapi v0.0.0-20240816214639-573285566f34/go.mod h1:G0W3eI9gG219NHRq3h5uQaRBl4pj4ZpwzRP5ti8y770=
-k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 h1:pUdcCO1Lk/tbT5ztQWOBi5HBgbBP1J8+AsQnQCKsi8A=
-k8s.io/utils v0.0.0-20240711033017-18e509b52bc8/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
+k8s.io/kms v0.32.0 h1:jwOfunHIrcdYl5FRcA+uUKKtg6qiqoPCwmS2T3XTYL4=
+k8s.io/kms v0.32.0/go.mod h1:Bk2evz/Yvk0oVrvm4MvZbgq8BD34Ksxs2SRHn4/UiOM=
+k8s.io/kube-aggregator v0.32.0 h1:5ZyMW3QwAbmkasQrROcpa5we3et938DQuyUYHeXSPao=
+k8s.io/kube-aggregator v0.32.0/go.mod h1:6OKivf6Ypx44qu2v1ZUMrxH8kRp/8LKFKeJU72J18lU=
+k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f h1:GA7//TjRY9yWGy1poLzYYJJ4JRdzg3+O6e8I+e+8T5Y=
+k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f/go.mod h1:R/HEjbvWI0qdfb8viZUeVZm0X6IZnxAydC7YU42CMw4=
+k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 h1:M3sRQVHv7vB20Xc2ybTt7ODCeFj6JSWYFzOFnYeS6Ro=
+k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
lukechampine.com/uint128 v1.1.1/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk=
lukechampine.com/uint128 v1.2.0/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk=
lukechampine.com/uint128 v1.3.0/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk=
@@ -2922,15 +2930,15 @@ rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8
rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4=
rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
-sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.30.3 h1:2770sDpzrjjsAtVhSeUFseziht227YAWYHLGNM8QPwY=
-sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.30.3/go.mod h1:Ve9uj1L+deCXFrPOk1LpFXqTg7LCFzFso6PA48q/XZw=
-sigs.k8s.io/controller-runtime v0.19.3 h1:XO2GvC9OPftRst6xWCpTgBZO04S2cbp0Qqkj8bX1sPw=
-sigs.k8s.io/controller-runtime v0.19.3/go.mod h1:j4j87DqtsThvwTv5/Tc5NFRyyF/RF0ip4+62tbTSIUM=
-sigs.k8s.io/controller-tools v0.16.5 h1:5k9FNRqziBPwqr17AMEPPV/En39ZBplLAdOwwQHruP4=
-sigs.k8s.io/controller-tools v0.16.5/go.mod h1:8vztuRVzs8IuuJqKqbXCSlXcw+lkAv/M2sTpg55qjMY=
-sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo=
-sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0=
-sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4=
-sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08=
+sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.0 h1:CPT0ExVicCzcpeN4baWEV2ko2Z/AsiZgEdwgcfwLgMo=
+sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.0/go.mod h1:Ve9uj1L+deCXFrPOk1LpFXqTg7LCFzFso6PA48q/XZw=
+sigs.k8s.io/controller-runtime v0.19.4 h1:SUmheabttt0nx8uJtoII4oIP27BVVvAKFvdvGFwV/Qo=
+sigs.k8s.io/controller-runtime v0.19.4/go.mod h1:iRmWllt8IlaLjvTTDLhRBXIEtkCK6hwVBJJsYS9Ajf4=
+sigs.k8s.io/controller-tools v0.17.0 h1:KaEQZbhrdY6J3zLBHplt+0aKUp8PeIttlhtF2UDo6bI=
+sigs.k8s.io/controller-tools v0.17.0/go.mod h1:SKoWY8rwGWDzHtfnhmOwljn6fViG0JF7/xmnxpklgjo=
+sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 h1:/Rv+M11QRah1itp8VhT6HoVx1Ray9eB4DBr+K+/sCJ8=
+sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3/go.mod h1:18nIHnGi6636UCz6m8i4DhaJ65T6EruyzmoQqI2BVDo=
+sigs.k8s.io/structured-merge-diff/v4 v4.4.2 h1:MdmvkGuXi/8io6ixD5wud3vOLwc1rj0aNqRlpuvjmwA=
+sigs.k8s.io/structured-merge-diff/v4 v4.4.2/go.mod h1:N8f93tFZh9U6vpxwRArLiikrE5/2tiu1w1AGfACIGE4=
sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E=
sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY=
diff --git a/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/clientset.go b/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/clientset.go
index c0f4617e37..64ec71bbd6 100644
--- a/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/clientset.go
+++ b/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/clientset.go
@@ -19,8 +19,8 @@ limitations under the License.
package versioned
import (
- "fmt"
- "net/http"
+ fmt "fmt"
+ http "net/http"
operatorsv1 "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1"
operatorsv1alpha1 "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha1"
diff --git a/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1/fake/fake_olmconfig.go b/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1/fake/fake_olmconfig.go
index ff80ddbdd3..6db26088b8 100644
--- a/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1/fake/fake_olmconfig.go
+++ b/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1/fake/fake_olmconfig.go
@@ -19,120 +19,30 @@ limitations under the License.
package fake
import (
- "context"
-
v1 "github.com/operator-framework/api/pkg/operators/v1"
- metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
- labels "k8s.io/apimachinery/pkg/labels"
- types "k8s.io/apimachinery/pkg/types"
- watch "k8s.io/apimachinery/pkg/watch"
- testing "k8s.io/client-go/testing"
+ operatorsv1 "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1"
+ gentype "k8s.io/client-go/gentype"
)
-// FakeOLMConfigs implements OLMConfigInterface
-type FakeOLMConfigs struct {
+// fakeOLMConfigs implements OLMConfigInterface
+type fakeOLMConfigs struct {
+ *gentype.FakeClientWithList[*v1.OLMConfig, *v1.OLMConfigList]
Fake *FakeOperatorsV1
}
-var olmconfigsResource = v1.SchemeGroupVersion.WithResource("olmconfigs")
-
-var olmconfigsKind = v1.SchemeGroupVersion.WithKind("OLMConfig")
-
-// Get takes name of the oLMConfig, and returns the corresponding oLMConfig object, and an error if there is any.
-func (c *FakeOLMConfigs) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.OLMConfig, err error) {
- emptyResult := &v1.OLMConfig{}
- obj, err := c.Fake.
- Invokes(testing.NewRootGetActionWithOptions(olmconfigsResource, name, options), emptyResult)
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v1.OLMConfig), err
-}
-
-// List takes label and field selectors, and returns the list of OLMConfigs that match those selectors.
-func (c *FakeOLMConfigs) List(ctx context.Context, opts metav1.ListOptions) (result *v1.OLMConfigList, err error) {
- emptyResult := &v1.OLMConfigList{}
- obj, err := c.Fake.
- Invokes(testing.NewRootListActionWithOptions(olmconfigsResource, olmconfigsKind, opts), emptyResult)
- if obj == nil {
- return emptyResult, err
- }
-
- label, _, _ := testing.ExtractFromListOptions(opts)
- if label == nil {
- label = labels.Everything()
- }
- list := &v1.OLMConfigList{ListMeta: obj.(*v1.OLMConfigList).ListMeta}
- for _, item := range obj.(*v1.OLMConfigList).Items {
- if label.Matches(labels.Set(item.Labels)) {
- list.Items = append(list.Items, item)
- }
- }
- return list, err
-}
-
-// Watch returns a watch.Interface that watches the requested oLMConfigs.
-func (c *FakeOLMConfigs) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {
- return c.Fake.
- InvokesWatch(testing.NewRootWatchActionWithOptions(olmconfigsResource, opts))
-}
-
-// Create takes the representation of a oLMConfig and creates it. Returns the server's representation of the oLMConfig, and an error, if there is any.
-func (c *FakeOLMConfigs) Create(ctx context.Context, oLMConfig *v1.OLMConfig, opts metav1.CreateOptions) (result *v1.OLMConfig, err error) {
- emptyResult := &v1.OLMConfig{}
- obj, err := c.Fake.
- Invokes(testing.NewRootCreateActionWithOptions(olmconfigsResource, oLMConfig, opts), emptyResult)
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v1.OLMConfig), err
-}
-
-// Update takes the representation of a oLMConfig and updates it. Returns the server's representation of the oLMConfig, and an error, if there is any.
-func (c *FakeOLMConfigs) Update(ctx context.Context, oLMConfig *v1.OLMConfig, opts metav1.UpdateOptions) (result *v1.OLMConfig, err error) {
- emptyResult := &v1.OLMConfig{}
- obj, err := c.Fake.
- Invokes(testing.NewRootUpdateActionWithOptions(olmconfigsResource, oLMConfig, opts), emptyResult)
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v1.OLMConfig), err
-}
-
-// UpdateStatus was generated because the type contains a Status member.
-// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
-func (c *FakeOLMConfigs) UpdateStatus(ctx context.Context, oLMConfig *v1.OLMConfig, opts metav1.UpdateOptions) (result *v1.OLMConfig, err error) {
- emptyResult := &v1.OLMConfig{}
- obj, err := c.Fake.
- Invokes(testing.NewRootUpdateSubresourceActionWithOptions(olmconfigsResource, "status", oLMConfig, opts), emptyResult)
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v1.OLMConfig), err
-}
-
-// Delete takes name of the oLMConfig and deletes it. Returns an error if one occurs.
-func (c *FakeOLMConfigs) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {
- _, err := c.Fake.
- Invokes(testing.NewRootDeleteActionWithOptions(olmconfigsResource, name, opts), &v1.OLMConfig{})
- return err
-}
-
-// DeleteCollection deletes a collection of objects.
-func (c *FakeOLMConfigs) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {
- action := testing.NewRootDeleteCollectionActionWithOptions(olmconfigsResource, opts, listOpts)
-
- _, err := c.Fake.Invokes(action, &v1.OLMConfigList{})
- return err
-}
-
-// Patch applies the patch and returns the patched oLMConfig.
-func (c *FakeOLMConfigs) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.OLMConfig, err error) {
- emptyResult := &v1.OLMConfig{}
- obj, err := c.Fake.
- Invokes(testing.NewRootPatchSubresourceActionWithOptions(olmconfigsResource, name, pt, data, opts, subresources...), emptyResult)
- if obj == nil {
- return emptyResult, err
+func newFakeOLMConfigs(fake *FakeOperatorsV1) operatorsv1.OLMConfigInterface {
+ return &fakeOLMConfigs{
+ gentype.NewFakeClientWithList[*v1.OLMConfig, *v1.OLMConfigList](
+ fake.Fake,
+ "",
+ v1.SchemeGroupVersion.WithResource("olmconfigs"),
+ v1.SchemeGroupVersion.WithKind("OLMConfig"),
+ func() *v1.OLMConfig { return &v1.OLMConfig{} },
+ func() *v1.OLMConfigList { return &v1.OLMConfigList{} },
+ func(dst, src *v1.OLMConfigList) { dst.ListMeta = src.ListMeta },
+ func(list *v1.OLMConfigList) []*v1.OLMConfig { return gentype.ToPointerSlice(list.Items) },
+ func(list *v1.OLMConfigList, items []*v1.OLMConfig) { list.Items = gentype.FromPointerSlice(items) },
+ ),
+ fake,
}
- return obj.(*v1.OLMConfig), err
}
diff --git a/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1/fake/fake_operator.go b/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1/fake/fake_operator.go
index c0c59b12a1..bd320e7753 100644
--- a/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1/fake/fake_operator.go
+++ b/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1/fake/fake_operator.go
@@ -19,120 +19,30 @@ limitations under the License.
package fake
import (
- "context"
-
v1 "github.com/operator-framework/api/pkg/operators/v1"
- metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
- labels "k8s.io/apimachinery/pkg/labels"
- types "k8s.io/apimachinery/pkg/types"
- watch "k8s.io/apimachinery/pkg/watch"
- testing "k8s.io/client-go/testing"
+ operatorsv1 "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1"
+ gentype "k8s.io/client-go/gentype"
)
-// FakeOperators implements OperatorInterface
-type FakeOperators struct {
+// fakeOperators implements OperatorInterface
+type fakeOperators struct {
+ *gentype.FakeClientWithList[*v1.Operator, *v1.OperatorList]
Fake *FakeOperatorsV1
}
-var operatorsResource = v1.SchemeGroupVersion.WithResource("operators")
-
-var operatorsKind = v1.SchemeGroupVersion.WithKind("Operator")
-
-// Get takes name of the operator, and returns the corresponding operator object, and an error if there is any.
-func (c *FakeOperators) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.Operator, err error) {
- emptyResult := &v1.Operator{}
- obj, err := c.Fake.
- Invokes(testing.NewRootGetActionWithOptions(operatorsResource, name, options), emptyResult)
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v1.Operator), err
-}
-
-// List takes label and field selectors, and returns the list of Operators that match those selectors.
-func (c *FakeOperators) List(ctx context.Context, opts metav1.ListOptions) (result *v1.OperatorList, err error) {
- emptyResult := &v1.OperatorList{}
- obj, err := c.Fake.
- Invokes(testing.NewRootListActionWithOptions(operatorsResource, operatorsKind, opts), emptyResult)
- if obj == nil {
- return emptyResult, err
- }
-
- label, _, _ := testing.ExtractFromListOptions(opts)
- if label == nil {
- label = labels.Everything()
- }
- list := &v1.OperatorList{ListMeta: obj.(*v1.OperatorList).ListMeta}
- for _, item := range obj.(*v1.OperatorList).Items {
- if label.Matches(labels.Set(item.Labels)) {
- list.Items = append(list.Items, item)
- }
- }
- return list, err
-}
-
-// Watch returns a watch.Interface that watches the requested operators.
-func (c *FakeOperators) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {
- return c.Fake.
- InvokesWatch(testing.NewRootWatchActionWithOptions(operatorsResource, opts))
-}
-
-// Create takes the representation of a operator and creates it. Returns the server's representation of the operator, and an error, if there is any.
-func (c *FakeOperators) Create(ctx context.Context, operator *v1.Operator, opts metav1.CreateOptions) (result *v1.Operator, err error) {
- emptyResult := &v1.Operator{}
- obj, err := c.Fake.
- Invokes(testing.NewRootCreateActionWithOptions(operatorsResource, operator, opts), emptyResult)
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v1.Operator), err
-}
-
-// Update takes the representation of a operator and updates it. Returns the server's representation of the operator, and an error, if there is any.
-func (c *FakeOperators) Update(ctx context.Context, operator *v1.Operator, opts metav1.UpdateOptions) (result *v1.Operator, err error) {
- emptyResult := &v1.Operator{}
- obj, err := c.Fake.
- Invokes(testing.NewRootUpdateActionWithOptions(operatorsResource, operator, opts), emptyResult)
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v1.Operator), err
-}
-
-// UpdateStatus was generated because the type contains a Status member.
-// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
-func (c *FakeOperators) UpdateStatus(ctx context.Context, operator *v1.Operator, opts metav1.UpdateOptions) (result *v1.Operator, err error) {
- emptyResult := &v1.Operator{}
- obj, err := c.Fake.
- Invokes(testing.NewRootUpdateSubresourceActionWithOptions(operatorsResource, "status", operator, opts), emptyResult)
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v1.Operator), err
-}
-
-// Delete takes name of the operator and deletes it. Returns an error if one occurs.
-func (c *FakeOperators) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {
- _, err := c.Fake.
- Invokes(testing.NewRootDeleteActionWithOptions(operatorsResource, name, opts), &v1.Operator{})
- return err
-}
-
-// DeleteCollection deletes a collection of objects.
-func (c *FakeOperators) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {
- action := testing.NewRootDeleteCollectionActionWithOptions(operatorsResource, opts, listOpts)
-
- _, err := c.Fake.Invokes(action, &v1.OperatorList{})
- return err
-}
-
-// Patch applies the patch and returns the patched operator.
-func (c *FakeOperators) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Operator, err error) {
- emptyResult := &v1.Operator{}
- obj, err := c.Fake.
- Invokes(testing.NewRootPatchSubresourceActionWithOptions(operatorsResource, name, pt, data, opts, subresources...), emptyResult)
- if obj == nil {
- return emptyResult, err
+func newFakeOperators(fake *FakeOperatorsV1) operatorsv1.OperatorInterface {
+ return &fakeOperators{
+ gentype.NewFakeClientWithList[*v1.Operator, *v1.OperatorList](
+ fake.Fake,
+ "",
+ v1.SchemeGroupVersion.WithResource("operators"),
+ v1.SchemeGroupVersion.WithKind("Operator"),
+ func() *v1.Operator { return &v1.Operator{} },
+ func() *v1.OperatorList { return &v1.OperatorList{} },
+ func(dst, src *v1.OperatorList) { dst.ListMeta = src.ListMeta },
+ func(list *v1.OperatorList) []*v1.Operator { return gentype.ToPointerSlice(list.Items) },
+ func(list *v1.OperatorList, items []*v1.Operator) { list.Items = gentype.FromPointerSlice(items) },
+ ),
+ fake,
}
- return obj.(*v1.Operator), err
}
diff --git a/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1/fake/fake_operatorcondition.go b/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1/fake/fake_operatorcondition.go
index f55c1bcb88..5bf9562826 100644
--- a/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1/fake/fake_operatorcondition.go
+++ b/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1/fake/fake_operatorcondition.go
@@ -19,129 +19,34 @@ limitations under the License.
package fake
import (
- "context"
-
v1 "github.com/operator-framework/api/pkg/operators/v1"
- metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
- labels "k8s.io/apimachinery/pkg/labels"
- types "k8s.io/apimachinery/pkg/types"
- watch "k8s.io/apimachinery/pkg/watch"
- testing "k8s.io/client-go/testing"
+ operatorsv1 "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1"
+ gentype "k8s.io/client-go/gentype"
)
-// FakeOperatorConditions implements OperatorConditionInterface
-type FakeOperatorConditions struct {
+// fakeOperatorConditions implements OperatorConditionInterface
+type fakeOperatorConditions struct {
+ *gentype.FakeClientWithList[*v1.OperatorCondition, *v1.OperatorConditionList]
Fake *FakeOperatorsV1
- ns string
-}
-
-var operatorconditionsResource = v1.SchemeGroupVersion.WithResource("operatorconditions")
-
-var operatorconditionsKind = v1.SchemeGroupVersion.WithKind("OperatorCondition")
-
-// Get takes name of the operatorCondition, and returns the corresponding operatorCondition object, and an error if there is any.
-func (c *FakeOperatorConditions) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.OperatorCondition, err error) {
- emptyResult := &v1.OperatorCondition{}
- obj, err := c.Fake.
- Invokes(testing.NewGetActionWithOptions(operatorconditionsResource, c.ns, name, options), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v1.OperatorCondition), err
-}
-
-// List takes label and field selectors, and returns the list of OperatorConditions that match those selectors.
-func (c *FakeOperatorConditions) List(ctx context.Context, opts metav1.ListOptions) (result *v1.OperatorConditionList, err error) {
- emptyResult := &v1.OperatorConditionList{}
- obj, err := c.Fake.
- Invokes(testing.NewListActionWithOptions(operatorconditionsResource, operatorconditionsKind, c.ns, opts), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
-
- label, _, _ := testing.ExtractFromListOptions(opts)
- if label == nil {
- label = labels.Everything()
- }
- list := &v1.OperatorConditionList{ListMeta: obj.(*v1.OperatorConditionList).ListMeta}
- for _, item := range obj.(*v1.OperatorConditionList).Items {
- if label.Matches(labels.Set(item.Labels)) {
- list.Items = append(list.Items, item)
- }
- }
- return list, err
-}
-
-// Watch returns a watch.Interface that watches the requested operatorConditions.
-func (c *FakeOperatorConditions) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {
- return c.Fake.
- InvokesWatch(testing.NewWatchActionWithOptions(operatorconditionsResource, c.ns, opts))
-
-}
-
-// Create takes the representation of a operatorCondition and creates it. Returns the server's representation of the operatorCondition, and an error, if there is any.
-func (c *FakeOperatorConditions) Create(ctx context.Context, operatorCondition *v1.OperatorCondition, opts metav1.CreateOptions) (result *v1.OperatorCondition, err error) {
- emptyResult := &v1.OperatorCondition{}
- obj, err := c.Fake.
- Invokes(testing.NewCreateActionWithOptions(operatorconditionsResource, c.ns, operatorCondition, opts), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v1.OperatorCondition), err
-}
-
-// Update takes the representation of a operatorCondition and updates it. Returns the server's representation of the operatorCondition, and an error, if there is any.
-func (c *FakeOperatorConditions) Update(ctx context.Context, operatorCondition *v1.OperatorCondition, opts metav1.UpdateOptions) (result *v1.OperatorCondition, err error) {
- emptyResult := &v1.OperatorCondition{}
- obj, err := c.Fake.
- Invokes(testing.NewUpdateActionWithOptions(operatorconditionsResource, c.ns, operatorCondition, opts), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v1.OperatorCondition), err
-}
-
-// UpdateStatus was generated because the type contains a Status member.
-// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
-func (c *FakeOperatorConditions) UpdateStatus(ctx context.Context, operatorCondition *v1.OperatorCondition, opts metav1.UpdateOptions) (result *v1.OperatorCondition, err error) {
- emptyResult := &v1.OperatorCondition{}
- obj, err := c.Fake.
- Invokes(testing.NewUpdateSubresourceActionWithOptions(operatorconditionsResource, "status", c.ns, operatorCondition, opts), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v1.OperatorCondition), err
-}
-
-// Delete takes name of the operatorCondition and deletes it. Returns an error if one occurs.
-func (c *FakeOperatorConditions) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {
- _, err := c.Fake.
- Invokes(testing.NewDeleteActionWithOptions(operatorconditionsResource, c.ns, name, opts), &v1.OperatorCondition{})
-
- return err
}
-// DeleteCollection deletes a collection of objects.
-func (c *FakeOperatorConditions) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {
- action := testing.NewDeleteCollectionActionWithOptions(operatorconditionsResource, c.ns, opts, listOpts)
-
- _, err := c.Fake.Invokes(action, &v1.OperatorConditionList{})
- return err
-}
-
-// Patch applies the patch and returns the patched operatorCondition.
-func (c *FakeOperatorConditions) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.OperatorCondition, err error) {
- emptyResult := &v1.OperatorCondition{}
- obj, err := c.Fake.
- Invokes(testing.NewPatchSubresourceActionWithOptions(operatorconditionsResource, c.ns, name, pt, data, opts, subresources...), emptyResult)
-
- if obj == nil {
- return emptyResult, err
+func newFakeOperatorConditions(fake *FakeOperatorsV1, namespace string) operatorsv1.OperatorConditionInterface {
+ return &fakeOperatorConditions{
+ gentype.NewFakeClientWithList[*v1.OperatorCondition, *v1.OperatorConditionList](
+ fake.Fake,
+ namespace,
+ v1.SchemeGroupVersion.WithResource("operatorconditions"),
+ v1.SchemeGroupVersion.WithKind("OperatorCondition"),
+ func() *v1.OperatorCondition { return &v1.OperatorCondition{} },
+ func() *v1.OperatorConditionList { return &v1.OperatorConditionList{} },
+ func(dst, src *v1.OperatorConditionList) { dst.ListMeta = src.ListMeta },
+ func(list *v1.OperatorConditionList) []*v1.OperatorCondition {
+ return gentype.ToPointerSlice(list.Items)
+ },
+ func(list *v1.OperatorConditionList, items []*v1.OperatorCondition) {
+ list.Items = gentype.FromPointerSlice(items)
+ },
+ ),
+ fake,
}
- return obj.(*v1.OperatorCondition), err
}
diff --git a/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1/fake/fake_operatorgroup.go b/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1/fake/fake_operatorgroup.go
index ea54959295..faa40e2824 100644
--- a/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1/fake/fake_operatorgroup.go
+++ b/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1/fake/fake_operatorgroup.go
@@ -19,129 +19,32 @@ limitations under the License.
package fake
import (
- "context"
-
v1 "github.com/operator-framework/api/pkg/operators/v1"
- metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
- labels "k8s.io/apimachinery/pkg/labels"
- types "k8s.io/apimachinery/pkg/types"
- watch "k8s.io/apimachinery/pkg/watch"
- testing "k8s.io/client-go/testing"
+ operatorsv1 "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1"
+ gentype "k8s.io/client-go/gentype"
)
-// FakeOperatorGroups implements OperatorGroupInterface
-type FakeOperatorGroups struct {
+// fakeOperatorGroups implements OperatorGroupInterface
+type fakeOperatorGroups struct {
+ *gentype.FakeClientWithList[*v1.OperatorGroup, *v1.OperatorGroupList]
Fake *FakeOperatorsV1
- ns string
-}
-
-var operatorgroupsResource = v1.SchemeGroupVersion.WithResource("operatorgroups")
-
-var operatorgroupsKind = v1.SchemeGroupVersion.WithKind("OperatorGroup")
-
-// Get takes name of the operatorGroup, and returns the corresponding operatorGroup object, and an error if there is any.
-func (c *FakeOperatorGroups) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.OperatorGroup, err error) {
- emptyResult := &v1.OperatorGroup{}
- obj, err := c.Fake.
- Invokes(testing.NewGetActionWithOptions(operatorgroupsResource, c.ns, name, options), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v1.OperatorGroup), err
-}
-
-// List takes label and field selectors, and returns the list of OperatorGroups that match those selectors.
-func (c *FakeOperatorGroups) List(ctx context.Context, opts metav1.ListOptions) (result *v1.OperatorGroupList, err error) {
- emptyResult := &v1.OperatorGroupList{}
- obj, err := c.Fake.
- Invokes(testing.NewListActionWithOptions(operatorgroupsResource, operatorgroupsKind, c.ns, opts), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
-
- label, _, _ := testing.ExtractFromListOptions(opts)
- if label == nil {
- label = labels.Everything()
- }
- list := &v1.OperatorGroupList{ListMeta: obj.(*v1.OperatorGroupList).ListMeta}
- for _, item := range obj.(*v1.OperatorGroupList).Items {
- if label.Matches(labels.Set(item.Labels)) {
- list.Items = append(list.Items, item)
- }
- }
- return list, err
-}
-
-// Watch returns a watch.Interface that watches the requested operatorGroups.
-func (c *FakeOperatorGroups) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {
- return c.Fake.
- InvokesWatch(testing.NewWatchActionWithOptions(operatorgroupsResource, c.ns, opts))
-
-}
-
-// Create takes the representation of a operatorGroup and creates it. Returns the server's representation of the operatorGroup, and an error, if there is any.
-func (c *FakeOperatorGroups) Create(ctx context.Context, operatorGroup *v1.OperatorGroup, opts metav1.CreateOptions) (result *v1.OperatorGroup, err error) {
- emptyResult := &v1.OperatorGroup{}
- obj, err := c.Fake.
- Invokes(testing.NewCreateActionWithOptions(operatorgroupsResource, c.ns, operatorGroup, opts), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v1.OperatorGroup), err
-}
-
-// Update takes the representation of a operatorGroup and updates it. Returns the server's representation of the operatorGroup, and an error, if there is any.
-func (c *FakeOperatorGroups) Update(ctx context.Context, operatorGroup *v1.OperatorGroup, opts metav1.UpdateOptions) (result *v1.OperatorGroup, err error) {
- emptyResult := &v1.OperatorGroup{}
- obj, err := c.Fake.
- Invokes(testing.NewUpdateActionWithOptions(operatorgroupsResource, c.ns, operatorGroup, opts), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v1.OperatorGroup), err
-}
-
-// UpdateStatus was generated because the type contains a Status member.
-// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
-func (c *FakeOperatorGroups) UpdateStatus(ctx context.Context, operatorGroup *v1.OperatorGroup, opts metav1.UpdateOptions) (result *v1.OperatorGroup, err error) {
- emptyResult := &v1.OperatorGroup{}
- obj, err := c.Fake.
- Invokes(testing.NewUpdateSubresourceActionWithOptions(operatorgroupsResource, "status", c.ns, operatorGroup, opts), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v1.OperatorGroup), err
-}
-
-// Delete takes name of the operatorGroup and deletes it. Returns an error if one occurs.
-func (c *FakeOperatorGroups) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {
- _, err := c.Fake.
- Invokes(testing.NewDeleteActionWithOptions(operatorgroupsResource, c.ns, name, opts), &v1.OperatorGroup{})
-
- return err
}
-// DeleteCollection deletes a collection of objects.
-func (c *FakeOperatorGroups) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {
- action := testing.NewDeleteCollectionActionWithOptions(operatorgroupsResource, c.ns, opts, listOpts)
-
- _, err := c.Fake.Invokes(action, &v1.OperatorGroupList{})
- return err
-}
-
-// Patch applies the patch and returns the patched operatorGroup.
-func (c *FakeOperatorGroups) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.OperatorGroup, err error) {
- emptyResult := &v1.OperatorGroup{}
- obj, err := c.Fake.
- Invokes(testing.NewPatchSubresourceActionWithOptions(operatorgroupsResource, c.ns, name, pt, data, opts, subresources...), emptyResult)
-
- if obj == nil {
- return emptyResult, err
+func newFakeOperatorGroups(fake *FakeOperatorsV1, namespace string) operatorsv1.OperatorGroupInterface {
+ return &fakeOperatorGroups{
+ gentype.NewFakeClientWithList[*v1.OperatorGroup, *v1.OperatorGroupList](
+ fake.Fake,
+ namespace,
+ v1.SchemeGroupVersion.WithResource("operatorgroups"),
+ v1.SchemeGroupVersion.WithKind("OperatorGroup"),
+ func() *v1.OperatorGroup { return &v1.OperatorGroup{} },
+ func() *v1.OperatorGroupList { return &v1.OperatorGroupList{} },
+ func(dst, src *v1.OperatorGroupList) { dst.ListMeta = src.ListMeta },
+ func(list *v1.OperatorGroupList) []*v1.OperatorGroup { return gentype.ToPointerSlice(list.Items) },
+ func(list *v1.OperatorGroupList, items []*v1.OperatorGroup) {
+ list.Items = gentype.FromPointerSlice(items)
+ },
+ ),
+ fake,
}
- return obj.(*v1.OperatorGroup), err
}
diff --git a/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1/fake/fake_operators_client.go b/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1/fake/fake_operators_client.go
index a97b869390..f0ac70db53 100644
--- a/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1/fake/fake_operators_client.go
+++ b/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1/fake/fake_operators_client.go
@@ -29,19 +29,19 @@ type FakeOperatorsV1 struct {
}
func (c *FakeOperatorsV1) OLMConfigs() v1.OLMConfigInterface {
- return &FakeOLMConfigs{c}
+ return newFakeOLMConfigs(c)
}
func (c *FakeOperatorsV1) Operators() v1.OperatorInterface {
- return &FakeOperators{c}
+ return newFakeOperators(c)
}
func (c *FakeOperatorsV1) OperatorConditions(namespace string) v1.OperatorConditionInterface {
- return &FakeOperatorConditions{c, namespace}
+ return newFakeOperatorConditions(c, namespace)
}
func (c *FakeOperatorsV1) OperatorGroups(namespace string) v1.OperatorGroupInterface {
- return &FakeOperatorGroups{c, namespace}
+ return newFakeOperatorGroups(c, namespace)
}
// RESTClient returns a RESTClient that is used to communicate
diff --git a/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1/olmconfig.go b/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1/olmconfig.go
index 7d25b1d5cf..804cfd5681 100644
--- a/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1/olmconfig.go
+++ b/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1/olmconfig.go
@@ -19,9 +19,9 @@ limitations under the License.
package v1
import (
- "context"
+ context "context"
- v1 "github.com/operator-framework/api/pkg/operators/v1"
+ operatorsv1 "github.com/operator-framework/api/pkg/operators/v1"
scheme "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/clientset/versioned/scheme"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
types "k8s.io/apimachinery/pkg/types"
@@ -37,33 +37,34 @@ type OLMConfigsGetter interface {
// OLMConfigInterface has methods to work with OLMConfig resources.
type OLMConfigInterface interface {
- Create(ctx context.Context, oLMConfig *v1.OLMConfig, opts metav1.CreateOptions) (*v1.OLMConfig, error)
- Update(ctx context.Context, oLMConfig *v1.OLMConfig, opts metav1.UpdateOptions) (*v1.OLMConfig, error)
+ Create(ctx context.Context, oLMConfig *operatorsv1.OLMConfig, opts metav1.CreateOptions) (*operatorsv1.OLMConfig, error)
+ Update(ctx context.Context, oLMConfig *operatorsv1.OLMConfig, opts metav1.UpdateOptions) (*operatorsv1.OLMConfig, error)
// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
- UpdateStatus(ctx context.Context, oLMConfig *v1.OLMConfig, opts metav1.UpdateOptions) (*v1.OLMConfig, error)
+ UpdateStatus(ctx context.Context, oLMConfig *operatorsv1.OLMConfig, opts metav1.UpdateOptions) (*operatorsv1.OLMConfig, error)
Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error
DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error
- Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.OLMConfig, error)
- List(ctx context.Context, opts metav1.ListOptions) (*v1.OLMConfigList, error)
+ Get(ctx context.Context, name string, opts metav1.GetOptions) (*operatorsv1.OLMConfig, error)
+ List(ctx context.Context, opts metav1.ListOptions) (*operatorsv1.OLMConfigList, error)
Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)
- Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.OLMConfig, err error)
+ Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *operatorsv1.OLMConfig, err error)
OLMConfigExpansion
}
// oLMConfigs implements OLMConfigInterface
type oLMConfigs struct {
- *gentype.ClientWithList[*v1.OLMConfig, *v1.OLMConfigList]
+ *gentype.ClientWithList[*operatorsv1.OLMConfig, *operatorsv1.OLMConfigList]
}
// newOLMConfigs returns a OLMConfigs
func newOLMConfigs(c *OperatorsV1Client) *oLMConfigs {
return &oLMConfigs{
- gentype.NewClientWithList[*v1.OLMConfig, *v1.OLMConfigList](
+ gentype.NewClientWithList[*operatorsv1.OLMConfig, *operatorsv1.OLMConfigList](
"olmconfigs",
c.RESTClient(),
scheme.ParameterCodec,
"",
- func() *v1.OLMConfig { return &v1.OLMConfig{} },
- func() *v1.OLMConfigList { return &v1.OLMConfigList{} }),
+ func() *operatorsv1.OLMConfig { return &operatorsv1.OLMConfig{} },
+ func() *operatorsv1.OLMConfigList { return &operatorsv1.OLMConfigList{} },
+ ),
}
}
diff --git a/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1/operator.go b/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1/operator.go
index e7eb7a51f6..9d71766701 100644
--- a/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1/operator.go
+++ b/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1/operator.go
@@ -19,9 +19,9 @@ limitations under the License.
package v1
import (
- "context"
+ context "context"
- v1 "github.com/operator-framework/api/pkg/operators/v1"
+ operatorsv1 "github.com/operator-framework/api/pkg/operators/v1"
scheme "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/clientset/versioned/scheme"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
types "k8s.io/apimachinery/pkg/types"
@@ -37,33 +37,34 @@ type OperatorsGetter interface {
// OperatorInterface has methods to work with Operator resources.
type OperatorInterface interface {
- Create(ctx context.Context, operator *v1.Operator, opts metav1.CreateOptions) (*v1.Operator, error)
- Update(ctx context.Context, operator *v1.Operator, opts metav1.UpdateOptions) (*v1.Operator, error)
+ Create(ctx context.Context, operator *operatorsv1.Operator, opts metav1.CreateOptions) (*operatorsv1.Operator, error)
+ Update(ctx context.Context, operator *operatorsv1.Operator, opts metav1.UpdateOptions) (*operatorsv1.Operator, error)
// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
- UpdateStatus(ctx context.Context, operator *v1.Operator, opts metav1.UpdateOptions) (*v1.Operator, error)
+ UpdateStatus(ctx context.Context, operator *operatorsv1.Operator, opts metav1.UpdateOptions) (*operatorsv1.Operator, error)
Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error
DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error
- Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.Operator, error)
- List(ctx context.Context, opts metav1.ListOptions) (*v1.OperatorList, error)
+ Get(ctx context.Context, name string, opts metav1.GetOptions) (*operatorsv1.Operator, error)
+ List(ctx context.Context, opts metav1.ListOptions) (*operatorsv1.OperatorList, error)
Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)
- Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.Operator, err error)
+ Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *operatorsv1.Operator, err error)
OperatorExpansion
}
// operators implements OperatorInterface
type operators struct {
- *gentype.ClientWithList[*v1.Operator, *v1.OperatorList]
+ *gentype.ClientWithList[*operatorsv1.Operator, *operatorsv1.OperatorList]
}
// newOperators returns a Operators
func newOperators(c *OperatorsV1Client) *operators {
return &operators{
- gentype.NewClientWithList[*v1.Operator, *v1.OperatorList](
+ gentype.NewClientWithList[*operatorsv1.Operator, *operatorsv1.OperatorList](
"operators",
c.RESTClient(),
scheme.ParameterCodec,
"",
- func() *v1.Operator { return &v1.Operator{} },
- func() *v1.OperatorList { return &v1.OperatorList{} }),
+ func() *operatorsv1.Operator { return &operatorsv1.Operator{} },
+ func() *operatorsv1.OperatorList { return &operatorsv1.OperatorList{} },
+ ),
}
}
diff --git a/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1/operatorcondition.go b/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1/operatorcondition.go
index 497a426eb0..9d11723fb5 100644
--- a/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1/operatorcondition.go
+++ b/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1/operatorcondition.go
@@ -19,9 +19,9 @@ limitations under the License.
package v1
import (
- "context"
+ context "context"
- v1 "github.com/operator-framework/api/pkg/operators/v1"
+ operatorsv1 "github.com/operator-framework/api/pkg/operators/v1"
scheme "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/clientset/versioned/scheme"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
types "k8s.io/apimachinery/pkg/types"
@@ -37,33 +37,34 @@ type OperatorConditionsGetter interface {
// OperatorConditionInterface has methods to work with OperatorCondition resources.
type OperatorConditionInterface interface {
- Create(ctx context.Context, operatorCondition *v1.OperatorCondition, opts metav1.CreateOptions) (*v1.OperatorCondition, error)
- Update(ctx context.Context, operatorCondition *v1.OperatorCondition, opts metav1.UpdateOptions) (*v1.OperatorCondition, error)
+ Create(ctx context.Context, operatorCondition *operatorsv1.OperatorCondition, opts metav1.CreateOptions) (*operatorsv1.OperatorCondition, error)
+ Update(ctx context.Context, operatorCondition *operatorsv1.OperatorCondition, opts metav1.UpdateOptions) (*operatorsv1.OperatorCondition, error)
// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
- UpdateStatus(ctx context.Context, operatorCondition *v1.OperatorCondition, opts metav1.UpdateOptions) (*v1.OperatorCondition, error)
+ UpdateStatus(ctx context.Context, operatorCondition *operatorsv1.OperatorCondition, opts metav1.UpdateOptions) (*operatorsv1.OperatorCondition, error)
Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error
DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error
- Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.OperatorCondition, error)
- List(ctx context.Context, opts metav1.ListOptions) (*v1.OperatorConditionList, error)
+ Get(ctx context.Context, name string, opts metav1.GetOptions) (*operatorsv1.OperatorCondition, error)
+ List(ctx context.Context, opts metav1.ListOptions) (*operatorsv1.OperatorConditionList, error)
Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)
- Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.OperatorCondition, err error)
+ Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *operatorsv1.OperatorCondition, err error)
OperatorConditionExpansion
}
// operatorConditions implements OperatorConditionInterface
type operatorConditions struct {
- *gentype.ClientWithList[*v1.OperatorCondition, *v1.OperatorConditionList]
+ *gentype.ClientWithList[*operatorsv1.OperatorCondition, *operatorsv1.OperatorConditionList]
}
// newOperatorConditions returns a OperatorConditions
func newOperatorConditions(c *OperatorsV1Client, namespace string) *operatorConditions {
return &operatorConditions{
- gentype.NewClientWithList[*v1.OperatorCondition, *v1.OperatorConditionList](
+ gentype.NewClientWithList[*operatorsv1.OperatorCondition, *operatorsv1.OperatorConditionList](
"operatorconditions",
c.RESTClient(),
scheme.ParameterCodec,
namespace,
- func() *v1.OperatorCondition { return &v1.OperatorCondition{} },
- func() *v1.OperatorConditionList { return &v1.OperatorConditionList{} }),
+ func() *operatorsv1.OperatorCondition { return &operatorsv1.OperatorCondition{} },
+ func() *operatorsv1.OperatorConditionList { return &operatorsv1.OperatorConditionList{} },
+ ),
}
}
diff --git a/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1/operatorgroup.go b/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1/operatorgroup.go
index d95e15d967..7df6bc50ad 100644
--- a/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1/operatorgroup.go
+++ b/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1/operatorgroup.go
@@ -19,9 +19,9 @@ limitations under the License.
package v1
import (
- "context"
+ context "context"
- v1 "github.com/operator-framework/api/pkg/operators/v1"
+ operatorsv1 "github.com/operator-framework/api/pkg/operators/v1"
scheme "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/clientset/versioned/scheme"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
types "k8s.io/apimachinery/pkg/types"
@@ -37,33 +37,34 @@ type OperatorGroupsGetter interface {
// OperatorGroupInterface has methods to work with OperatorGroup resources.
type OperatorGroupInterface interface {
- Create(ctx context.Context, operatorGroup *v1.OperatorGroup, opts metav1.CreateOptions) (*v1.OperatorGroup, error)
- Update(ctx context.Context, operatorGroup *v1.OperatorGroup, opts metav1.UpdateOptions) (*v1.OperatorGroup, error)
+ Create(ctx context.Context, operatorGroup *operatorsv1.OperatorGroup, opts metav1.CreateOptions) (*operatorsv1.OperatorGroup, error)
+ Update(ctx context.Context, operatorGroup *operatorsv1.OperatorGroup, opts metav1.UpdateOptions) (*operatorsv1.OperatorGroup, error)
// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
- UpdateStatus(ctx context.Context, operatorGroup *v1.OperatorGroup, opts metav1.UpdateOptions) (*v1.OperatorGroup, error)
+ UpdateStatus(ctx context.Context, operatorGroup *operatorsv1.OperatorGroup, opts metav1.UpdateOptions) (*operatorsv1.OperatorGroup, error)
Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error
DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error
- Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.OperatorGroup, error)
- List(ctx context.Context, opts metav1.ListOptions) (*v1.OperatorGroupList, error)
+ Get(ctx context.Context, name string, opts metav1.GetOptions) (*operatorsv1.OperatorGroup, error)
+ List(ctx context.Context, opts metav1.ListOptions) (*operatorsv1.OperatorGroupList, error)
Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)
- Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.OperatorGroup, err error)
+ Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *operatorsv1.OperatorGroup, err error)
OperatorGroupExpansion
}
// operatorGroups implements OperatorGroupInterface
type operatorGroups struct {
- *gentype.ClientWithList[*v1.OperatorGroup, *v1.OperatorGroupList]
+ *gentype.ClientWithList[*operatorsv1.OperatorGroup, *operatorsv1.OperatorGroupList]
}
// newOperatorGroups returns a OperatorGroups
func newOperatorGroups(c *OperatorsV1Client, namespace string) *operatorGroups {
return &operatorGroups{
- gentype.NewClientWithList[*v1.OperatorGroup, *v1.OperatorGroupList](
+ gentype.NewClientWithList[*operatorsv1.OperatorGroup, *operatorsv1.OperatorGroupList](
"operatorgroups",
c.RESTClient(),
scheme.ParameterCodec,
namespace,
- func() *v1.OperatorGroup { return &v1.OperatorGroup{} },
- func() *v1.OperatorGroupList { return &v1.OperatorGroupList{} }),
+ func() *operatorsv1.OperatorGroup { return &operatorsv1.OperatorGroup{} },
+ func() *operatorsv1.OperatorGroupList { return &operatorsv1.OperatorGroupList{} },
+ ),
}
}
diff --git a/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1/operators_client.go b/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1/operators_client.go
index 436cd1ac5c..d355cd9412 100644
--- a/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1/operators_client.go
+++ b/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1/operators_client.go
@@ -19,10 +19,10 @@ limitations under the License.
package v1
import (
- "net/http"
+ http "net/http"
- v1 "github.com/operator-framework/api/pkg/operators/v1"
- "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/clientset/versioned/scheme"
+ operatorsv1 "github.com/operator-framework/api/pkg/operators/v1"
+ scheme "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/clientset/versioned/scheme"
rest "k8s.io/client-go/rest"
)
@@ -100,10 +100,10 @@ func New(c rest.Interface) *OperatorsV1Client {
}
func setConfigDefaults(config *rest.Config) error {
- gv := v1.SchemeGroupVersion
+ gv := operatorsv1.SchemeGroupVersion
config.GroupVersion = &gv
config.APIPath = "/apis"
- config.NegotiatedSerializer = scheme.Codecs.WithoutConversion()
+ config.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()
if config.UserAgent == "" {
config.UserAgent = rest.DefaultKubernetesUserAgent()
diff --git a/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha1/catalogsource.go b/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha1/catalogsource.go
index 0311fabdde..36ff0d1a8b 100644
--- a/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha1/catalogsource.go
+++ b/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha1/catalogsource.go
@@ -19,9 +19,9 @@ limitations under the License.
package v1alpha1
import (
- "context"
+ context "context"
- v1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1"
+ operatorsv1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1"
scheme "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/clientset/versioned/scheme"
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
types "k8s.io/apimachinery/pkg/types"
@@ -37,33 +37,34 @@ type CatalogSourcesGetter interface {
// CatalogSourceInterface has methods to work with CatalogSource resources.
type CatalogSourceInterface interface {
- Create(ctx context.Context, catalogSource *v1alpha1.CatalogSource, opts v1.CreateOptions) (*v1alpha1.CatalogSource, error)
- Update(ctx context.Context, catalogSource *v1alpha1.CatalogSource, opts v1.UpdateOptions) (*v1alpha1.CatalogSource, error)
+ Create(ctx context.Context, catalogSource *operatorsv1alpha1.CatalogSource, opts v1.CreateOptions) (*operatorsv1alpha1.CatalogSource, error)
+ Update(ctx context.Context, catalogSource *operatorsv1alpha1.CatalogSource, opts v1.UpdateOptions) (*operatorsv1alpha1.CatalogSource, error)
// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
- UpdateStatus(ctx context.Context, catalogSource *v1alpha1.CatalogSource, opts v1.UpdateOptions) (*v1alpha1.CatalogSource, error)
+ UpdateStatus(ctx context.Context, catalogSource *operatorsv1alpha1.CatalogSource, opts v1.UpdateOptions) (*operatorsv1alpha1.CatalogSource, error)
Delete(ctx context.Context, name string, opts v1.DeleteOptions) error
DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error
- Get(ctx context.Context, name string, opts v1.GetOptions) (*v1alpha1.CatalogSource, error)
- List(ctx context.Context, opts v1.ListOptions) (*v1alpha1.CatalogSourceList, error)
+ Get(ctx context.Context, name string, opts v1.GetOptions) (*operatorsv1alpha1.CatalogSource, error)
+ List(ctx context.Context, opts v1.ListOptions) (*operatorsv1alpha1.CatalogSourceList, error)
Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)
- Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.CatalogSource, err error)
+ Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *operatorsv1alpha1.CatalogSource, err error)
CatalogSourceExpansion
}
// catalogSources implements CatalogSourceInterface
type catalogSources struct {
- *gentype.ClientWithList[*v1alpha1.CatalogSource, *v1alpha1.CatalogSourceList]
+ *gentype.ClientWithList[*operatorsv1alpha1.CatalogSource, *operatorsv1alpha1.CatalogSourceList]
}
// newCatalogSources returns a CatalogSources
func newCatalogSources(c *OperatorsV1alpha1Client, namespace string) *catalogSources {
return &catalogSources{
- gentype.NewClientWithList[*v1alpha1.CatalogSource, *v1alpha1.CatalogSourceList](
+ gentype.NewClientWithList[*operatorsv1alpha1.CatalogSource, *operatorsv1alpha1.CatalogSourceList](
"catalogsources",
c.RESTClient(),
scheme.ParameterCodec,
namespace,
- func() *v1alpha1.CatalogSource { return &v1alpha1.CatalogSource{} },
- func() *v1alpha1.CatalogSourceList { return &v1alpha1.CatalogSourceList{} }),
+ func() *operatorsv1alpha1.CatalogSource { return &operatorsv1alpha1.CatalogSource{} },
+ func() *operatorsv1alpha1.CatalogSourceList { return &operatorsv1alpha1.CatalogSourceList{} },
+ ),
}
}
diff --git a/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha1/clusterserviceversion.go b/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha1/clusterserviceversion.go
index 6fefdb5d15..2e2bbe6190 100644
--- a/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha1/clusterserviceversion.go
+++ b/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha1/clusterserviceversion.go
@@ -19,9 +19,9 @@ limitations under the License.
package v1alpha1
import (
- "context"
+ context "context"
- v1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1"
+ operatorsv1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1"
scheme "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/clientset/versioned/scheme"
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
types "k8s.io/apimachinery/pkg/types"
@@ -37,33 +37,36 @@ type ClusterServiceVersionsGetter interface {
// ClusterServiceVersionInterface has methods to work with ClusterServiceVersion resources.
type ClusterServiceVersionInterface interface {
- Create(ctx context.Context, clusterServiceVersion *v1alpha1.ClusterServiceVersion, opts v1.CreateOptions) (*v1alpha1.ClusterServiceVersion, error)
- Update(ctx context.Context, clusterServiceVersion *v1alpha1.ClusterServiceVersion, opts v1.UpdateOptions) (*v1alpha1.ClusterServiceVersion, error)
+ Create(ctx context.Context, clusterServiceVersion *operatorsv1alpha1.ClusterServiceVersion, opts v1.CreateOptions) (*operatorsv1alpha1.ClusterServiceVersion, error)
+ Update(ctx context.Context, clusterServiceVersion *operatorsv1alpha1.ClusterServiceVersion, opts v1.UpdateOptions) (*operatorsv1alpha1.ClusterServiceVersion, error)
// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
- UpdateStatus(ctx context.Context, clusterServiceVersion *v1alpha1.ClusterServiceVersion, opts v1.UpdateOptions) (*v1alpha1.ClusterServiceVersion, error)
+ UpdateStatus(ctx context.Context, clusterServiceVersion *operatorsv1alpha1.ClusterServiceVersion, opts v1.UpdateOptions) (*operatorsv1alpha1.ClusterServiceVersion, error)
Delete(ctx context.Context, name string, opts v1.DeleteOptions) error
DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error
- Get(ctx context.Context, name string, opts v1.GetOptions) (*v1alpha1.ClusterServiceVersion, error)
- List(ctx context.Context, opts v1.ListOptions) (*v1alpha1.ClusterServiceVersionList, error)
+ Get(ctx context.Context, name string, opts v1.GetOptions) (*operatorsv1alpha1.ClusterServiceVersion, error)
+ List(ctx context.Context, opts v1.ListOptions) (*operatorsv1alpha1.ClusterServiceVersionList, error)
Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)
- Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.ClusterServiceVersion, err error)
+ Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *operatorsv1alpha1.ClusterServiceVersion, err error)
ClusterServiceVersionExpansion
}
// clusterServiceVersions implements ClusterServiceVersionInterface
type clusterServiceVersions struct {
- *gentype.ClientWithList[*v1alpha1.ClusterServiceVersion, *v1alpha1.ClusterServiceVersionList]
+ *gentype.ClientWithList[*operatorsv1alpha1.ClusterServiceVersion, *operatorsv1alpha1.ClusterServiceVersionList]
}
// newClusterServiceVersions returns a ClusterServiceVersions
func newClusterServiceVersions(c *OperatorsV1alpha1Client, namespace string) *clusterServiceVersions {
return &clusterServiceVersions{
- gentype.NewClientWithList[*v1alpha1.ClusterServiceVersion, *v1alpha1.ClusterServiceVersionList](
+ gentype.NewClientWithList[*operatorsv1alpha1.ClusterServiceVersion, *operatorsv1alpha1.ClusterServiceVersionList](
"clusterserviceversions",
c.RESTClient(),
scheme.ParameterCodec,
namespace,
- func() *v1alpha1.ClusterServiceVersion { return &v1alpha1.ClusterServiceVersion{} },
- func() *v1alpha1.ClusterServiceVersionList { return &v1alpha1.ClusterServiceVersionList{} }),
+ func() *operatorsv1alpha1.ClusterServiceVersion { return &operatorsv1alpha1.ClusterServiceVersion{} },
+ func() *operatorsv1alpha1.ClusterServiceVersionList {
+ return &operatorsv1alpha1.ClusterServiceVersionList{}
+ },
+ ),
}
}
diff --git a/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha1/fake/fake_catalogsource.go b/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha1/fake/fake_catalogsource.go
index 1ee529d96d..e0442bd561 100644
--- a/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha1/fake/fake_catalogsource.go
+++ b/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha1/fake/fake_catalogsource.go
@@ -19,129 +19,34 @@ limitations under the License.
package fake
import (
- "context"
-
v1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1"
- v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
- labels "k8s.io/apimachinery/pkg/labels"
- types "k8s.io/apimachinery/pkg/types"
- watch "k8s.io/apimachinery/pkg/watch"
- testing "k8s.io/client-go/testing"
+ operatorsv1alpha1 "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha1"
+ gentype "k8s.io/client-go/gentype"
)
-// FakeCatalogSources implements CatalogSourceInterface
-type FakeCatalogSources struct {
+// fakeCatalogSources implements CatalogSourceInterface
+type fakeCatalogSources struct {
+ *gentype.FakeClientWithList[*v1alpha1.CatalogSource, *v1alpha1.CatalogSourceList]
Fake *FakeOperatorsV1alpha1
- ns string
-}
-
-var catalogsourcesResource = v1alpha1.SchemeGroupVersion.WithResource("catalogsources")
-
-var catalogsourcesKind = v1alpha1.SchemeGroupVersion.WithKind("CatalogSource")
-
-// Get takes name of the catalogSource, and returns the corresponding catalogSource object, and an error if there is any.
-func (c *FakeCatalogSources) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.CatalogSource, err error) {
- emptyResult := &v1alpha1.CatalogSource{}
- obj, err := c.Fake.
- Invokes(testing.NewGetActionWithOptions(catalogsourcesResource, c.ns, name, options), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v1alpha1.CatalogSource), err
-}
-
-// List takes label and field selectors, and returns the list of CatalogSources that match those selectors.
-func (c *FakeCatalogSources) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.CatalogSourceList, err error) {
- emptyResult := &v1alpha1.CatalogSourceList{}
- obj, err := c.Fake.
- Invokes(testing.NewListActionWithOptions(catalogsourcesResource, catalogsourcesKind, c.ns, opts), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
-
- label, _, _ := testing.ExtractFromListOptions(opts)
- if label == nil {
- label = labels.Everything()
- }
- list := &v1alpha1.CatalogSourceList{ListMeta: obj.(*v1alpha1.CatalogSourceList).ListMeta}
- for _, item := range obj.(*v1alpha1.CatalogSourceList).Items {
- if label.Matches(labels.Set(item.Labels)) {
- list.Items = append(list.Items, item)
- }
- }
- return list, err
-}
-
-// Watch returns a watch.Interface that watches the requested catalogSources.
-func (c *FakeCatalogSources) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {
- return c.Fake.
- InvokesWatch(testing.NewWatchActionWithOptions(catalogsourcesResource, c.ns, opts))
-
-}
-
-// Create takes the representation of a catalogSource and creates it. Returns the server's representation of the catalogSource, and an error, if there is any.
-func (c *FakeCatalogSources) Create(ctx context.Context, catalogSource *v1alpha1.CatalogSource, opts v1.CreateOptions) (result *v1alpha1.CatalogSource, err error) {
- emptyResult := &v1alpha1.CatalogSource{}
- obj, err := c.Fake.
- Invokes(testing.NewCreateActionWithOptions(catalogsourcesResource, c.ns, catalogSource, opts), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v1alpha1.CatalogSource), err
-}
-
-// Update takes the representation of a catalogSource and updates it. Returns the server's representation of the catalogSource, and an error, if there is any.
-func (c *FakeCatalogSources) Update(ctx context.Context, catalogSource *v1alpha1.CatalogSource, opts v1.UpdateOptions) (result *v1alpha1.CatalogSource, err error) {
- emptyResult := &v1alpha1.CatalogSource{}
- obj, err := c.Fake.
- Invokes(testing.NewUpdateActionWithOptions(catalogsourcesResource, c.ns, catalogSource, opts), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v1alpha1.CatalogSource), err
-}
-
-// UpdateStatus was generated because the type contains a Status member.
-// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
-func (c *FakeCatalogSources) UpdateStatus(ctx context.Context, catalogSource *v1alpha1.CatalogSource, opts v1.UpdateOptions) (result *v1alpha1.CatalogSource, err error) {
- emptyResult := &v1alpha1.CatalogSource{}
- obj, err := c.Fake.
- Invokes(testing.NewUpdateSubresourceActionWithOptions(catalogsourcesResource, "status", c.ns, catalogSource, opts), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v1alpha1.CatalogSource), err
-}
-
-// Delete takes name of the catalogSource and deletes it. Returns an error if one occurs.
-func (c *FakeCatalogSources) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {
- _, err := c.Fake.
- Invokes(testing.NewDeleteActionWithOptions(catalogsourcesResource, c.ns, name, opts), &v1alpha1.CatalogSource{})
-
- return err
}
-// DeleteCollection deletes a collection of objects.
-func (c *FakeCatalogSources) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {
- action := testing.NewDeleteCollectionActionWithOptions(catalogsourcesResource, c.ns, opts, listOpts)
-
- _, err := c.Fake.Invokes(action, &v1alpha1.CatalogSourceList{})
- return err
-}
-
-// Patch applies the patch and returns the patched catalogSource.
-func (c *FakeCatalogSources) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.CatalogSource, err error) {
- emptyResult := &v1alpha1.CatalogSource{}
- obj, err := c.Fake.
- Invokes(testing.NewPatchSubresourceActionWithOptions(catalogsourcesResource, c.ns, name, pt, data, opts, subresources...), emptyResult)
-
- if obj == nil {
- return emptyResult, err
+func newFakeCatalogSources(fake *FakeOperatorsV1alpha1, namespace string) operatorsv1alpha1.CatalogSourceInterface {
+ return &fakeCatalogSources{
+ gentype.NewFakeClientWithList[*v1alpha1.CatalogSource, *v1alpha1.CatalogSourceList](
+ fake.Fake,
+ namespace,
+ v1alpha1.SchemeGroupVersion.WithResource("catalogsources"),
+ v1alpha1.SchemeGroupVersion.WithKind("CatalogSource"),
+ func() *v1alpha1.CatalogSource { return &v1alpha1.CatalogSource{} },
+ func() *v1alpha1.CatalogSourceList { return &v1alpha1.CatalogSourceList{} },
+ func(dst, src *v1alpha1.CatalogSourceList) { dst.ListMeta = src.ListMeta },
+ func(list *v1alpha1.CatalogSourceList) []*v1alpha1.CatalogSource {
+ return gentype.ToPointerSlice(list.Items)
+ },
+ func(list *v1alpha1.CatalogSourceList, items []*v1alpha1.CatalogSource) {
+ list.Items = gentype.FromPointerSlice(items)
+ },
+ ),
+ fake,
}
- return obj.(*v1alpha1.CatalogSource), err
}
diff --git a/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha1/fake/fake_clusterserviceversion.go b/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha1/fake/fake_clusterserviceversion.go
index d351258af7..ac0372b582 100644
--- a/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha1/fake/fake_clusterserviceversion.go
+++ b/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha1/fake/fake_clusterserviceversion.go
@@ -19,129 +19,34 @@ limitations under the License.
package fake
import (
- "context"
-
v1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1"
- v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
- labels "k8s.io/apimachinery/pkg/labels"
- types "k8s.io/apimachinery/pkg/types"
- watch "k8s.io/apimachinery/pkg/watch"
- testing "k8s.io/client-go/testing"
+ operatorsv1alpha1 "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha1"
+ gentype "k8s.io/client-go/gentype"
)
-// FakeClusterServiceVersions implements ClusterServiceVersionInterface
-type FakeClusterServiceVersions struct {
+// fakeClusterServiceVersions implements ClusterServiceVersionInterface
+type fakeClusterServiceVersions struct {
+ *gentype.FakeClientWithList[*v1alpha1.ClusterServiceVersion, *v1alpha1.ClusterServiceVersionList]
Fake *FakeOperatorsV1alpha1
- ns string
-}
-
-var clusterserviceversionsResource = v1alpha1.SchemeGroupVersion.WithResource("clusterserviceversions")
-
-var clusterserviceversionsKind = v1alpha1.SchemeGroupVersion.WithKind("ClusterServiceVersion")
-
-// Get takes name of the clusterServiceVersion, and returns the corresponding clusterServiceVersion object, and an error if there is any.
-func (c *FakeClusterServiceVersions) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.ClusterServiceVersion, err error) {
- emptyResult := &v1alpha1.ClusterServiceVersion{}
- obj, err := c.Fake.
- Invokes(testing.NewGetActionWithOptions(clusterserviceversionsResource, c.ns, name, options), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v1alpha1.ClusterServiceVersion), err
-}
-
-// List takes label and field selectors, and returns the list of ClusterServiceVersions that match those selectors.
-func (c *FakeClusterServiceVersions) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.ClusterServiceVersionList, err error) {
- emptyResult := &v1alpha1.ClusterServiceVersionList{}
- obj, err := c.Fake.
- Invokes(testing.NewListActionWithOptions(clusterserviceversionsResource, clusterserviceversionsKind, c.ns, opts), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
-
- label, _, _ := testing.ExtractFromListOptions(opts)
- if label == nil {
- label = labels.Everything()
- }
- list := &v1alpha1.ClusterServiceVersionList{ListMeta: obj.(*v1alpha1.ClusterServiceVersionList).ListMeta}
- for _, item := range obj.(*v1alpha1.ClusterServiceVersionList).Items {
- if label.Matches(labels.Set(item.Labels)) {
- list.Items = append(list.Items, item)
- }
- }
- return list, err
-}
-
-// Watch returns a watch.Interface that watches the requested clusterServiceVersions.
-func (c *FakeClusterServiceVersions) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {
- return c.Fake.
- InvokesWatch(testing.NewWatchActionWithOptions(clusterserviceversionsResource, c.ns, opts))
-
-}
-
-// Create takes the representation of a clusterServiceVersion and creates it. Returns the server's representation of the clusterServiceVersion, and an error, if there is any.
-func (c *FakeClusterServiceVersions) Create(ctx context.Context, clusterServiceVersion *v1alpha1.ClusterServiceVersion, opts v1.CreateOptions) (result *v1alpha1.ClusterServiceVersion, err error) {
- emptyResult := &v1alpha1.ClusterServiceVersion{}
- obj, err := c.Fake.
- Invokes(testing.NewCreateActionWithOptions(clusterserviceversionsResource, c.ns, clusterServiceVersion, opts), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v1alpha1.ClusterServiceVersion), err
-}
-
-// Update takes the representation of a clusterServiceVersion and updates it. Returns the server's representation of the clusterServiceVersion, and an error, if there is any.
-func (c *FakeClusterServiceVersions) Update(ctx context.Context, clusterServiceVersion *v1alpha1.ClusterServiceVersion, opts v1.UpdateOptions) (result *v1alpha1.ClusterServiceVersion, err error) {
- emptyResult := &v1alpha1.ClusterServiceVersion{}
- obj, err := c.Fake.
- Invokes(testing.NewUpdateActionWithOptions(clusterserviceversionsResource, c.ns, clusterServiceVersion, opts), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v1alpha1.ClusterServiceVersion), err
-}
-
-// UpdateStatus was generated because the type contains a Status member.
-// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
-func (c *FakeClusterServiceVersions) UpdateStatus(ctx context.Context, clusterServiceVersion *v1alpha1.ClusterServiceVersion, opts v1.UpdateOptions) (result *v1alpha1.ClusterServiceVersion, err error) {
- emptyResult := &v1alpha1.ClusterServiceVersion{}
- obj, err := c.Fake.
- Invokes(testing.NewUpdateSubresourceActionWithOptions(clusterserviceversionsResource, "status", c.ns, clusterServiceVersion, opts), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v1alpha1.ClusterServiceVersion), err
-}
-
-// Delete takes name of the clusterServiceVersion and deletes it. Returns an error if one occurs.
-func (c *FakeClusterServiceVersions) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {
- _, err := c.Fake.
- Invokes(testing.NewDeleteActionWithOptions(clusterserviceversionsResource, c.ns, name, opts), &v1alpha1.ClusterServiceVersion{})
-
- return err
}
-// DeleteCollection deletes a collection of objects.
-func (c *FakeClusterServiceVersions) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {
- action := testing.NewDeleteCollectionActionWithOptions(clusterserviceversionsResource, c.ns, opts, listOpts)
-
- _, err := c.Fake.Invokes(action, &v1alpha1.ClusterServiceVersionList{})
- return err
-}
-
-// Patch applies the patch and returns the patched clusterServiceVersion.
-func (c *FakeClusterServiceVersions) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.ClusterServiceVersion, err error) {
- emptyResult := &v1alpha1.ClusterServiceVersion{}
- obj, err := c.Fake.
- Invokes(testing.NewPatchSubresourceActionWithOptions(clusterserviceversionsResource, c.ns, name, pt, data, opts, subresources...), emptyResult)
-
- if obj == nil {
- return emptyResult, err
+func newFakeClusterServiceVersions(fake *FakeOperatorsV1alpha1, namespace string) operatorsv1alpha1.ClusterServiceVersionInterface {
+ return &fakeClusterServiceVersions{
+ gentype.NewFakeClientWithList[*v1alpha1.ClusterServiceVersion, *v1alpha1.ClusterServiceVersionList](
+ fake.Fake,
+ namespace,
+ v1alpha1.SchemeGroupVersion.WithResource("clusterserviceversions"),
+ v1alpha1.SchemeGroupVersion.WithKind("ClusterServiceVersion"),
+ func() *v1alpha1.ClusterServiceVersion { return &v1alpha1.ClusterServiceVersion{} },
+ func() *v1alpha1.ClusterServiceVersionList { return &v1alpha1.ClusterServiceVersionList{} },
+ func(dst, src *v1alpha1.ClusterServiceVersionList) { dst.ListMeta = src.ListMeta },
+ func(list *v1alpha1.ClusterServiceVersionList) []*v1alpha1.ClusterServiceVersion {
+ return gentype.ToPointerSlice(list.Items)
+ },
+ func(list *v1alpha1.ClusterServiceVersionList, items []*v1alpha1.ClusterServiceVersion) {
+ list.Items = gentype.FromPointerSlice(items)
+ },
+ ),
+ fake,
}
- return obj.(*v1alpha1.ClusterServiceVersion), err
}
diff --git a/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha1/fake/fake_installplan.go b/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha1/fake/fake_installplan.go
index 08ededec89..6225936360 100644
--- a/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha1/fake/fake_installplan.go
+++ b/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha1/fake/fake_installplan.go
@@ -19,129 +19,34 @@ limitations under the License.
package fake
import (
- "context"
-
v1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1"
- v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
- labels "k8s.io/apimachinery/pkg/labels"
- types "k8s.io/apimachinery/pkg/types"
- watch "k8s.io/apimachinery/pkg/watch"
- testing "k8s.io/client-go/testing"
+ operatorsv1alpha1 "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha1"
+ gentype "k8s.io/client-go/gentype"
)
-// FakeInstallPlans implements InstallPlanInterface
-type FakeInstallPlans struct {
+// fakeInstallPlans implements InstallPlanInterface
+type fakeInstallPlans struct {
+ *gentype.FakeClientWithList[*v1alpha1.InstallPlan, *v1alpha1.InstallPlanList]
Fake *FakeOperatorsV1alpha1
- ns string
-}
-
-var installplansResource = v1alpha1.SchemeGroupVersion.WithResource("installplans")
-
-var installplansKind = v1alpha1.SchemeGroupVersion.WithKind("InstallPlan")
-
-// Get takes name of the installPlan, and returns the corresponding installPlan object, and an error if there is any.
-func (c *FakeInstallPlans) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.InstallPlan, err error) {
- emptyResult := &v1alpha1.InstallPlan{}
- obj, err := c.Fake.
- Invokes(testing.NewGetActionWithOptions(installplansResource, c.ns, name, options), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v1alpha1.InstallPlan), err
-}
-
-// List takes label and field selectors, and returns the list of InstallPlans that match those selectors.
-func (c *FakeInstallPlans) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.InstallPlanList, err error) {
- emptyResult := &v1alpha1.InstallPlanList{}
- obj, err := c.Fake.
- Invokes(testing.NewListActionWithOptions(installplansResource, installplansKind, c.ns, opts), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
-
- label, _, _ := testing.ExtractFromListOptions(opts)
- if label == nil {
- label = labels.Everything()
- }
- list := &v1alpha1.InstallPlanList{ListMeta: obj.(*v1alpha1.InstallPlanList).ListMeta}
- for _, item := range obj.(*v1alpha1.InstallPlanList).Items {
- if label.Matches(labels.Set(item.Labels)) {
- list.Items = append(list.Items, item)
- }
- }
- return list, err
-}
-
-// Watch returns a watch.Interface that watches the requested installPlans.
-func (c *FakeInstallPlans) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {
- return c.Fake.
- InvokesWatch(testing.NewWatchActionWithOptions(installplansResource, c.ns, opts))
-
-}
-
-// Create takes the representation of a installPlan and creates it. Returns the server's representation of the installPlan, and an error, if there is any.
-func (c *FakeInstallPlans) Create(ctx context.Context, installPlan *v1alpha1.InstallPlan, opts v1.CreateOptions) (result *v1alpha1.InstallPlan, err error) {
- emptyResult := &v1alpha1.InstallPlan{}
- obj, err := c.Fake.
- Invokes(testing.NewCreateActionWithOptions(installplansResource, c.ns, installPlan, opts), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v1alpha1.InstallPlan), err
-}
-
-// Update takes the representation of a installPlan and updates it. Returns the server's representation of the installPlan, and an error, if there is any.
-func (c *FakeInstallPlans) Update(ctx context.Context, installPlan *v1alpha1.InstallPlan, opts v1.UpdateOptions) (result *v1alpha1.InstallPlan, err error) {
- emptyResult := &v1alpha1.InstallPlan{}
- obj, err := c.Fake.
- Invokes(testing.NewUpdateActionWithOptions(installplansResource, c.ns, installPlan, opts), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v1alpha1.InstallPlan), err
-}
-
-// UpdateStatus was generated because the type contains a Status member.
-// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
-func (c *FakeInstallPlans) UpdateStatus(ctx context.Context, installPlan *v1alpha1.InstallPlan, opts v1.UpdateOptions) (result *v1alpha1.InstallPlan, err error) {
- emptyResult := &v1alpha1.InstallPlan{}
- obj, err := c.Fake.
- Invokes(testing.NewUpdateSubresourceActionWithOptions(installplansResource, "status", c.ns, installPlan, opts), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v1alpha1.InstallPlan), err
-}
-
-// Delete takes name of the installPlan and deletes it. Returns an error if one occurs.
-func (c *FakeInstallPlans) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {
- _, err := c.Fake.
- Invokes(testing.NewDeleteActionWithOptions(installplansResource, c.ns, name, opts), &v1alpha1.InstallPlan{})
-
- return err
}
-// DeleteCollection deletes a collection of objects.
-func (c *FakeInstallPlans) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {
- action := testing.NewDeleteCollectionActionWithOptions(installplansResource, c.ns, opts, listOpts)
-
- _, err := c.Fake.Invokes(action, &v1alpha1.InstallPlanList{})
- return err
-}
-
-// Patch applies the patch and returns the patched installPlan.
-func (c *FakeInstallPlans) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.InstallPlan, err error) {
- emptyResult := &v1alpha1.InstallPlan{}
- obj, err := c.Fake.
- Invokes(testing.NewPatchSubresourceActionWithOptions(installplansResource, c.ns, name, pt, data, opts, subresources...), emptyResult)
-
- if obj == nil {
- return emptyResult, err
+func newFakeInstallPlans(fake *FakeOperatorsV1alpha1, namespace string) operatorsv1alpha1.InstallPlanInterface {
+ return &fakeInstallPlans{
+ gentype.NewFakeClientWithList[*v1alpha1.InstallPlan, *v1alpha1.InstallPlanList](
+ fake.Fake,
+ namespace,
+ v1alpha1.SchemeGroupVersion.WithResource("installplans"),
+ v1alpha1.SchemeGroupVersion.WithKind("InstallPlan"),
+ func() *v1alpha1.InstallPlan { return &v1alpha1.InstallPlan{} },
+ func() *v1alpha1.InstallPlanList { return &v1alpha1.InstallPlanList{} },
+ func(dst, src *v1alpha1.InstallPlanList) { dst.ListMeta = src.ListMeta },
+ func(list *v1alpha1.InstallPlanList) []*v1alpha1.InstallPlan {
+ return gentype.ToPointerSlice(list.Items)
+ },
+ func(list *v1alpha1.InstallPlanList, items []*v1alpha1.InstallPlan) {
+ list.Items = gentype.FromPointerSlice(items)
+ },
+ ),
+ fake,
}
- return obj.(*v1alpha1.InstallPlan), err
}
diff --git a/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha1/fake/fake_operators_client.go b/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha1/fake/fake_operators_client.go
index 69ee2357a0..78fe2dcf04 100644
--- a/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha1/fake/fake_operators_client.go
+++ b/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha1/fake/fake_operators_client.go
@@ -29,19 +29,19 @@ type FakeOperatorsV1alpha1 struct {
}
func (c *FakeOperatorsV1alpha1) CatalogSources(namespace string) v1alpha1.CatalogSourceInterface {
- return &FakeCatalogSources{c, namespace}
+ return newFakeCatalogSources(c, namespace)
}
func (c *FakeOperatorsV1alpha1) ClusterServiceVersions(namespace string) v1alpha1.ClusterServiceVersionInterface {
- return &FakeClusterServiceVersions{c, namespace}
+ return newFakeClusterServiceVersions(c, namespace)
}
func (c *FakeOperatorsV1alpha1) InstallPlans(namespace string) v1alpha1.InstallPlanInterface {
- return &FakeInstallPlans{c, namespace}
+ return newFakeInstallPlans(c, namespace)
}
func (c *FakeOperatorsV1alpha1) Subscriptions(namespace string) v1alpha1.SubscriptionInterface {
- return &FakeSubscriptions{c, namespace}
+ return newFakeSubscriptions(c, namespace)
}
// RESTClient returns a RESTClient that is used to communicate
diff --git a/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha1/fake/fake_subscription.go b/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha1/fake/fake_subscription.go
index 1770600348..e8c73bc247 100644
--- a/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha1/fake/fake_subscription.go
+++ b/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha1/fake/fake_subscription.go
@@ -19,129 +19,34 @@ limitations under the License.
package fake
import (
- "context"
-
v1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1"
- v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
- labels "k8s.io/apimachinery/pkg/labels"
- types "k8s.io/apimachinery/pkg/types"
- watch "k8s.io/apimachinery/pkg/watch"
- testing "k8s.io/client-go/testing"
+ operatorsv1alpha1 "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha1"
+ gentype "k8s.io/client-go/gentype"
)
-// FakeSubscriptions implements SubscriptionInterface
-type FakeSubscriptions struct {
+// fakeSubscriptions implements SubscriptionInterface
+type fakeSubscriptions struct {
+ *gentype.FakeClientWithList[*v1alpha1.Subscription, *v1alpha1.SubscriptionList]
Fake *FakeOperatorsV1alpha1
- ns string
-}
-
-var subscriptionsResource = v1alpha1.SchemeGroupVersion.WithResource("subscriptions")
-
-var subscriptionsKind = v1alpha1.SchemeGroupVersion.WithKind("Subscription")
-
-// Get takes name of the subscription, and returns the corresponding subscription object, and an error if there is any.
-func (c *FakeSubscriptions) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.Subscription, err error) {
- emptyResult := &v1alpha1.Subscription{}
- obj, err := c.Fake.
- Invokes(testing.NewGetActionWithOptions(subscriptionsResource, c.ns, name, options), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v1alpha1.Subscription), err
-}
-
-// List takes label and field selectors, and returns the list of Subscriptions that match those selectors.
-func (c *FakeSubscriptions) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.SubscriptionList, err error) {
- emptyResult := &v1alpha1.SubscriptionList{}
- obj, err := c.Fake.
- Invokes(testing.NewListActionWithOptions(subscriptionsResource, subscriptionsKind, c.ns, opts), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
-
- label, _, _ := testing.ExtractFromListOptions(opts)
- if label == nil {
- label = labels.Everything()
- }
- list := &v1alpha1.SubscriptionList{ListMeta: obj.(*v1alpha1.SubscriptionList).ListMeta}
- for _, item := range obj.(*v1alpha1.SubscriptionList).Items {
- if label.Matches(labels.Set(item.Labels)) {
- list.Items = append(list.Items, item)
- }
- }
- return list, err
-}
-
-// Watch returns a watch.Interface that watches the requested subscriptions.
-func (c *FakeSubscriptions) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {
- return c.Fake.
- InvokesWatch(testing.NewWatchActionWithOptions(subscriptionsResource, c.ns, opts))
-
-}
-
-// Create takes the representation of a subscription and creates it. Returns the server's representation of the subscription, and an error, if there is any.
-func (c *FakeSubscriptions) Create(ctx context.Context, subscription *v1alpha1.Subscription, opts v1.CreateOptions) (result *v1alpha1.Subscription, err error) {
- emptyResult := &v1alpha1.Subscription{}
- obj, err := c.Fake.
- Invokes(testing.NewCreateActionWithOptions(subscriptionsResource, c.ns, subscription, opts), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v1alpha1.Subscription), err
-}
-
-// Update takes the representation of a subscription and updates it. Returns the server's representation of the subscription, and an error, if there is any.
-func (c *FakeSubscriptions) Update(ctx context.Context, subscription *v1alpha1.Subscription, opts v1.UpdateOptions) (result *v1alpha1.Subscription, err error) {
- emptyResult := &v1alpha1.Subscription{}
- obj, err := c.Fake.
- Invokes(testing.NewUpdateActionWithOptions(subscriptionsResource, c.ns, subscription, opts), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v1alpha1.Subscription), err
-}
-
-// UpdateStatus was generated because the type contains a Status member.
-// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
-func (c *FakeSubscriptions) UpdateStatus(ctx context.Context, subscription *v1alpha1.Subscription, opts v1.UpdateOptions) (result *v1alpha1.Subscription, err error) {
- emptyResult := &v1alpha1.Subscription{}
- obj, err := c.Fake.
- Invokes(testing.NewUpdateSubresourceActionWithOptions(subscriptionsResource, "status", c.ns, subscription, opts), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v1alpha1.Subscription), err
-}
-
-// Delete takes name of the subscription and deletes it. Returns an error if one occurs.
-func (c *FakeSubscriptions) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {
- _, err := c.Fake.
- Invokes(testing.NewDeleteActionWithOptions(subscriptionsResource, c.ns, name, opts), &v1alpha1.Subscription{})
-
- return err
}
-// DeleteCollection deletes a collection of objects.
-func (c *FakeSubscriptions) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {
- action := testing.NewDeleteCollectionActionWithOptions(subscriptionsResource, c.ns, opts, listOpts)
-
- _, err := c.Fake.Invokes(action, &v1alpha1.SubscriptionList{})
- return err
-}
-
-// Patch applies the patch and returns the patched subscription.
-func (c *FakeSubscriptions) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.Subscription, err error) {
- emptyResult := &v1alpha1.Subscription{}
- obj, err := c.Fake.
- Invokes(testing.NewPatchSubresourceActionWithOptions(subscriptionsResource, c.ns, name, pt, data, opts, subresources...), emptyResult)
-
- if obj == nil {
- return emptyResult, err
+func newFakeSubscriptions(fake *FakeOperatorsV1alpha1, namespace string) operatorsv1alpha1.SubscriptionInterface {
+ return &fakeSubscriptions{
+ gentype.NewFakeClientWithList[*v1alpha1.Subscription, *v1alpha1.SubscriptionList](
+ fake.Fake,
+ namespace,
+ v1alpha1.SchemeGroupVersion.WithResource("subscriptions"),
+ v1alpha1.SchemeGroupVersion.WithKind("Subscription"),
+ func() *v1alpha1.Subscription { return &v1alpha1.Subscription{} },
+ func() *v1alpha1.SubscriptionList { return &v1alpha1.SubscriptionList{} },
+ func(dst, src *v1alpha1.SubscriptionList) { dst.ListMeta = src.ListMeta },
+ func(list *v1alpha1.SubscriptionList) []*v1alpha1.Subscription {
+ return gentype.ToPointerSlice(list.Items)
+ },
+ func(list *v1alpha1.SubscriptionList, items []*v1alpha1.Subscription) {
+ list.Items = gentype.FromPointerSlice(items)
+ },
+ ),
+ fake,
}
- return obj.(*v1alpha1.Subscription), err
}
diff --git a/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha1/installplan.go b/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha1/installplan.go
index de410cb0d3..2e005b40ec 100644
--- a/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha1/installplan.go
+++ b/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha1/installplan.go
@@ -19,9 +19,9 @@ limitations under the License.
package v1alpha1
import (
- "context"
+ context "context"
- v1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1"
+ operatorsv1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1"
scheme "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/clientset/versioned/scheme"
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
types "k8s.io/apimachinery/pkg/types"
@@ -37,33 +37,34 @@ type InstallPlansGetter interface {
// InstallPlanInterface has methods to work with InstallPlan resources.
type InstallPlanInterface interface {
- Create(ctx context.Context, installPlan *v1alpha1.InstallPlan, opts v1.CreateOptions) (*v1alpha1.InstallPlan, error)
- Update(ctx context.Context, installPlan *v1alpha1.InstallPlan, opts v1.UpdateOptions) (*v1alpha1.InstallPlan, error)
+ Create(ctx context.Context, installPlan *operatorsv1alpha1.InstallPlan, opts v1.CreateOptions) (*operatorsv1alpha1.InstallPlan, error)
+ Update(ctx context.Context, installPlan *operatorsv1alpha1.InstallPlan, opts v1.UpdateOptions) (*operatorsv1alpha1.InstallPlan, error)
// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
- UpdateStatus(ctx context.Context, installPlan *v1alpha1.InstallPlan, opts v1.UpdateOptions) (*v1alpha1.InstallPlan, error)
+ UpdateStatus(ctx context.Context, installPlan *operatorsv1alpha1.InstallPlan, opts v1.UpdateOptions) (*operatorsv1alpha1.InstallPlan, error)
Delete(ctx context.Context, name string, opts v1.DeleteOptions) error
DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error
- Get(ctx context.Context, name string, opts v1.GetOptions) (*v1alpha1.InstallPlan, error)
- List(ctx context.Context, opts v1.ListOptions) (*v1alpha1.InstallPlanList, error)
+ Get(ctx context.Context, name string, opts v1.GetOptions) (*operatorsv1alpha1.InstallPlan, error)
+ List(ctx context.Context, opts v1.ListOptions) (*operatorsv1alpha1.InstallPlanList, error)
Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)
- Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.InstallPlan, err error)
+ Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *operatorsv1alpha1.InstallPlan, err error)
InstallPlanExpansion
}
// installPlans implements InstallPlanInterface
type installPlans struct {
- *gentype.ClientWithList[*v1alpha1.InstallPlan, *v1alpha1.InstallPlanList]
+ *gentype.ClientWithList[*operatorsv1alpha1.InstallPlan, *operatorsv1alpha1.InstallPlanList]
}
// newInstallPlans returns a InstallPlans
func newInstallPlans(c *OperatorsV1alpha1Client, namespace string) *installPlans {
return &installPlans{
- gentype.NewClientWithList[*v1alpha1.InstallPlan, *v1alpha1.InstallPlanList](
+ gentype.NewClientWithList[*operatorsv1alpha1.InstallPlan, *operatorsv1alpha1.InstallPlanList](
"installplans",
c.RESTClient(),
scheme.ParameterCodec,
namespace,
- func() *v1alpha1.InstallPlan { return &v1alpha1.InstallPlan{} },
- func() *v1alpha1.InstallPlanList { return &v1alpha1.InstallPlanList{} }),
+ func() *operatorsv1alpha1.InstallPlan { return &operatorsv1alpha1.InstallPlan{} },
+ func() *operatorsv1alpha1.InstallPlanList { return &operatorsv1alpha1.InstallPlanList{} },
+ ),
}
}
diff --git a/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha1/operators_client.go b/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha1/operators_client.go
index 0e28266405..0271b69d3e 100644
--- a/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha1/operators_client.go
+++ b/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha1/operators_client.go
@@ -19,10 +19,10 @@ limitations under the License.
package v1alpha1
import (
- "net/http"
+ http "net/http"
- v1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1"
- "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/clientset/versioned/scheme"
+ operatorsv1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1"
+ scheme "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/clientset/versioned/scheme"
rest "k8s.io/client-go/rest"
)
@@ -100,10 +100,10 @@ func New(c rest.Interface) *OperatorsV1alpha1Client {
}
func setConfigDefaults(config *rest.Config) error {
- gv := v1alpha1.SchemeGroupVersion
+ gv := operatorsv1alpha1.SchemeGroupVersion
config.GroupVersion = &gv
config.APIPath = "/apis"
- config.NegotiatedSerializer = scheme.Codecs.WithoutConversion()
+ config.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()
if config.UserAgent == "" {
config.UserAgent = rest.DefaultKubernetesUserAgent()
diff --git a/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha1/subscription.go b/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha1/subscription.go
index 55f48f6dc2..55e308fa88 100644
--- a/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha1/subscription.go
+++ b/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha1/subscription.go
@@ -19,9 +19,9 @@ limitations under the License.
package v1alpha1
import (
- "context"
+ context "context"
- v1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1"
+ operatorsv1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1"
scheme "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/clientset/versioned/scheme"
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
types "k8s.io/apimachinery/pkg/types"
@@ -37,33 +37,34 @@ type SubscriptionsGetter interface {
// SubscriptionInterface has methods to work with Subscription resources.
type SubscriptionInterface interface {
- Create(ctx context.Context, subscription *v1alpha1.Subscription, opts v1.CreateOptions) (*v1alpha1.Subscription, error)
- Update(ctx context.Context, subscription *v1alpha1.Subscription, opts v1.UpdateOptions) (*v1alpha1.Subscription, error)
+ Create(ctx context.Context, subscription *operatorsv1alpha1.Subscription, opts v1.CreateOptions) (*operatorsv1alpha1.Subscription, error)
+ Update(ctx context.Context, subscription *operatorsv1alpha1.Subscription, opts v1.UpdateOptions) (*operatorsv1alpha1.Subscription, error)
// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
- UpdateStatus(ctx context.Context, subscription *v1alpha1.Subscription, opts v1.UpdateOptions) (*v1alpha1.Subscription, error)
+ UpdateStatus(ctx context.Context, subscription *operatorsv1alpha1.Subscription, opts v1.UpdateOptions) (*operatorsv1alpha1.Subscription, error)
Delete(ctx context.Context, name string, opts v1.DeleteOptions) error
DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error
- Get(ctx context.Context, name string, opts v1.GetOptions) (*v1alpha1.Subscription, error)
- List(ctx context.Context, opts v1.ListOptions) (*v1alpha1.SubscriptionList, error)
+ Get(ctx context.Context, name string, opts v1.GetOptions) (*operatorsv1alpha1.Subscription, error)
+ List(ctx context.Context, opts v1.ListOptions) (*operatorsv1alpha1.SubscriptionList, error)
Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)
- Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.Subscription, err error)
+ Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *operatorsv1alpha1.Subscription, err error)
SubscriptionExpansion
}
// subscriptions implements SubscriptionInterface
type subscriptions struct {
- *gentype.ClientWithList[*v1alpha1.Subscription, *v1alpha1.SubscriptionList]
+ *gentype.ClientWithList[*operatorsv1alpha1.Subscription, *operatorsv1alpha1.SubscriptionList]
}
// newSubscriptions returns a Subscriptions
func newSubscriptions(c *OperatorsV1alpha1Client, namespace string) *subscriptions {
return &subscriptions{
- gentype.NewClientWithList[*v1alpha1.Subscription, *v1alpha1.SubscriptionList](
+ gentype.NewClientWithList[*operatorsv1alpha1.Subscription, *operatorsv1alpha1.SubscriptionList](
"subscriptions",
c.RESTClient(),
scheme.ParameterCodec,
namespace,
- func() *v1alpha1.Subscription { return &v1alpha1.Subscription{} },
- func() *v1alpha1.SubscriptionList { return &v1alpha1.SubscriptionList{} }),
+ func() *operatorsv1alpha1.Subscription { return &operatorsv1alpha1.Subscription{} },
+ func() *operatorsv1alpha1.SubscriptionList { return &operatorsv1alpha1.SubscriptionList{} },
+ ),
}
}
diff --git a/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha2/fake/fake_operatorgroup.go b/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha2/fake/fake_operatorgroup.go
index b9045fa384..437ffcaf64 100644
--- a/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha2/fake/fake_operatorgroup.go
+++ b/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha2/fake/fake_operatorgroup.go
@@ -19,129 +19,34 @@ limitations under the License.
package fake
import (
- "context"
-
v1alpha2 "github.com/operator-framework/api/pkg/operators/v1alpha2"
- v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
- labels "k8s.io/apimachinery/pkg/labels"
- types "k8s.io/apimachinery/pkg/types"
- watch "k8s.io/apimachinery/pkg/watch"
- testing "k8s.io/client-go/testing"
+ operatorsv1alpha2 "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha2"
+ gentype "k8s.io/client-go/gentype"
)
-// FakeOperatorGroups implements OperatorGroupInterface
-type FakeOperatorGroups struct {
+// fakeOperatorGroups implements OperatorGroupInterface
+type fakeOperatorGroups struct {
+ *gentype.FakeClientWithList[*v1alpha2.OperatorGroup, *v1alpha2.OperatorGroupList]
Fake *FakeOperatorsV1alpha2
- ns string
-}
-
-var operatorgroupsResource = v1alpha2.SchemeGroupVersion.WithResource("operatorgroups")
-
-var operatorgroupsKind = v1alpha2.SchemeGroupVersion.WithKind("OperatorGroup")
-
-// Get takes name of the operatorGroup, and returns the corresponding operatorGroup object, and an error if there is any.
-func (c *FakeOperatorGroups) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha2.OperatorGroup, err error) {
- emptyResult := &v1alpha2.OperatorGroup{}
- obj, err := c.Fake.
- Invokes(testing.NewGetActionWithOptions(operatorgroupsResource, c.ns, name, options), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v1alpha2.OperatorGroup), err
-}
-
-// List takes label and field selectors, and returns the list of OperatorGroups that match those selectors.
-func (c *FakeOperatorGroups) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha2.OperatorGroupList, err error) {
- emptyResult := &v1alpha2.OperatorGroupList{}
- obj, err := c.Fake.
- Invokes(testing.NewListActionWithOptions(operatorgroupsResource, operatorgroupsKind, c.ns, opts), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
-
- label, _, _ := testing.ExtractFromListOptions(opts)
- if label == nil {
- label = labels.Everything()
- }
- list := &v1alpha2.OperatorGroupList{ListMeta: obj.(*v1alpha2.OperatorGroupList).ListMeta}
- for _, item := range obj.(*v1alpha2.OperatorGroupList).Items {
- if label.Matches(labels.Set(item.Labels)) {
- list.Items = append(list.Items, item)
- }
- }
- return list, err
-}
-
-// Watch returns a watch.Interface that watches the requested operatorGroups.
-func (c *FakeOperatorGroups) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {
- return c.Fake.
- InvokesWatch(testing.NewWatchActionWithOptions(operatorgroupsResource, c.ns, opts))
-
-}
-
-// Create takes the representation of a operatorGroup and creates it. Returns the server's representation of the operatorGroup, and an error, if there is any.
-func (c *FakeOperatorGroups) Create(ctx context.Context, operatorGroup *v1alpha2.OperatorGroup, opts v1.CreateOptions) (result *v1alpha2.OperatorGroup, err error) {
- emptyResult := &v1alpha2.OperatorGroup{}
- obj, err := c.Fake.
- Invokes(testing.NewCreateActionWithOptions(operatorgroupsResource, c.ns, operatorGroup, opts), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v1alpha2.OperatorGroup), err
-}
-
-// Update takes the representation of a operatorGroup and updates it. Returns the server's representation of the operatorGroup, and an error, if there is any.
-func (c *FakeOperatorGroups) Update(ctx context.Context, operatorGroup *v1alpha2.OperatorGroup, opts v1.UpdateOptions) (result *v1alpha2.OperatorGroup, err error) {
- emptyResult := &v1alpha2.OperatorGroup{}
- obj, err := c.Fake.
- Invokes(testing.NewUpdateActionWithOptions(operatorgroupsResource, c.ns, operatorGroup, opts), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v1alpha2.OperatorGroup), err
-}
-
-// UpdateStatus was generated because the type contains a Status member.
-// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
-func (c *FakeOperatorGroups) UpdateStatus(ctx context.Context, operatorGroup *v1alpha2.OperatorGroup, opts v1.UpdateOptions) (result *v1alpha2.OperatorGroup, err error) {
- emptyResult := &v1alpha2.OperatorGroup{}
- obj, err := c.Fake.
- Invokes(testing.NewUpdateSubresourceActionWithOptions(operatorgroupsResource, "status", c.ns, operatorGroup, opts), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v1alpha2.OperatorGroup), err
-}
-
-// Delete takes name of the operatorGroup and deletes it. Returns an error if one occurs.
-func (c *FakeOperatorGroups) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {
- _, err := c.Fake.
- Invokes(testing.NewDeleteActionWithOptions(operatorgroupsResource, c.ns, name, opts), &v1alpha2.OperatorGroup{})
-
- return err
}
-// DeleteCollection deletes a collection of objects.
-func (c *FakeOperatorGroups) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {
- action := testing.NewDeleteCollectionActionWithOptions(operatorgroupsResource, c.ns, opts, listOpts)
-
- _, err := c.Fake.Invokes(action, &v1alpha2.OperatorGroupList{})
- return err
-}
-
-// Patch applies the patch and returns the patched operatorGroup.
-func (c *FakeOperatorGroups) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha2.OperatorGroup, err error) {
- emptyResult := &v1alpha2.OperatorGroup{}
- obj, err := c.Fake.
- Invokes(testing.NewPatchSubresourceActionWithOptions(operatorgroupsResource, c.ns, name, pt, data, opts, subresources...), emptyResult)
-
- if obj == nil {
- return emptyResult, err
+func newFakeOperatorGroups(fake *FakeOperatorsV1alpha2, namespace string) operatorsv1alpha2.OperatorGroupInterface {
+ return &fakeOperatorGroups{
+ gentype.NewFakeClientWithList[*v1alpha2.OperatorGroup, *v1alpha2.OperatorGroupList](
+ fake.Fake,
+ namespace,
+ v1alpha2.SchemeGroupVersion.WithResource("operatorgroups"),
+ v1alpha2.SchemeGroupVersion.WithKind("OperatorGroup"),
+ func() *v1alpha2.OperatorGroup { return &v1alpha2.OperatorGroup{} },
+ func() *v1alpha2.OperatorGroupList { return &v1alpha2.OperatorGroupList{} },
+ func(dst, src *v1alpha2.OperatorGroupList) { dst.ListMeta = src.ListMeta },
+ func(list *v1alpha2.OperatorGroupList) []*v1alpha2.OperatorGroup {
+ return gentype.ToPointerSlice(list.Items)
+ },
+ func(list *v1alpha2.OperatorGroupList, items []*v1alpha2.OperatorGroup) {
+ list.Items = gentype.FromPointerSlice(items)
+ },
+ ),
+ fake,
}
- return obj.(*v1alpha2.OperatorGroup), err
}
diff --git a/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha2/fake/fake_operators_client.go b/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha2/fake/fake_operators_client.go
index cc6c23f6b3..660c9731a6 100644
--- a/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha2/fake/fake_operators_client.go
+++ b/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha2/fake/fake_operators_client.go
@@ -29,7 +29,7 @@ type FakeOperatorsV1alpha2 struct {
}
func (c *FakeOperatorsV1alpha2) OperatorGroups(namespace string) v1alpha2.OperatorGroupInterface {
- return &FakeOperatorGroups{c, namespace}
+ return newFakeOperatorGroups(c, namespace)
}
// RESTClient returns a RESTClient that is used to communicate
diff --git a/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha2/operatorgroup.go b/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha2/operatorgroup.go
index d84fbbc630..e29fe99f2f 100644
--- a/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha2/operatorgroup.go
+++ b/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha2/operatorgroup.go
@@ -19,9 +19,9 @@ limitations under the License.
package v1alpha2
import (
- "context"
+ context "context"
- v1alpha2 "github.com/operator-framework/api/pkg/operators/v1alpha2"
+ operatorsv1alpha2 "github.com/operator-framework/api/pkg/operators/v1alpha2"
scheme "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/clientset/versioned/scheme"
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
types "k8s.io/apimachinery/pkg/types"
@@ -37,33 +37,34 @@ type OperatorGroupsGetter interface {
// OperatorGroupInterface has methods to work with OperatorGroup resources.
type OperatorGroupInterface interface {
- Create(ctx context.Context, operatorGroup *v1alpha2.OperatorGroup, opts v1.CreateOptions) (*v1alpha2.OperatorGroup, error)
- Update(ctx context.Context, operatorGroup *v1alpha2.OperatorGroup, opts v1.UpdateOptions) (*v1alpha2.OperatorGroup, error)
+ Create(ctx context.Context, operatorGroup *operatorsv1alpha2.OperatorGroup, opts v1.CreateOptions) (*operatorsv1alpha2.OperatorGroup, error)
+ Update(ctx context.Context, operatorGroup *operatorsv1alpha2.OperatorGroup, opts v1.UpdateOptions) (*operatorsv1alpha2.OperatorGroup, error)
// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
- UpdateStatus(ctx context.Context, operatorGroup *v1alpha2.OperatorGroup, opts v1.UpdateOptions) (*v1alpha2.OperatorGroup, error)
+ UpdateStatus(ctx context.Context, operatorGroup *operatorsv1alpha2.OperatorGroup, opts v1.UpdateOptions) (*operatorsv1alpha2.OperatorGroup, error)
Delete(ctx context.Context, name string, opts v1.DeleteOptions) error
DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error
- Get(ctx context.Context, name string, opts v1.GetOptions) (*v1alpha2.OperatorGroup, error)
- List(ctx context.Context, opts v1.ListOptions) (*v1alpha2.OperatorGroupList, error)
+ Get(ctx context.Context, name string, opts v1.GetOptions) (*operatorsv1alpha2.OperatorGroup, error)
+ List(ctx context.Context, opts v1.ListOptions) (*operatorsv1alpha2.OperatorGroupList, error)
Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)
- Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha2.OperatorGroup, err error)
+ Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *operatorsv1alpha2.OperatorGroup, err error)
OperatorGroupExpansion
}
// operatorGroups implements OperatorGroupInterface
type operatorGroups struct {
- *gentype.ClientWithList[*v1alpha2.OperatorGroup, *v1alpha2.OperatorGroupList]
+ *gentype.ClientWithList[*operatorsv1alpha2.OperatorGroup, *operatorsv1alpha2.OperatorGroupList]
}
// newOperatorGroups returns a OperatorGroups
func newOperatorGroups(c *OperatorsV1alpha2Client, namespace string) *operatorGroups {
return &operatorGroups{
- gentype.NewClientWithList[*v1alpha2.OperatorGroup, *v1alpha2.OperatorGroupList](
+ gentype.NewClientWithList[*operatorsv1alpha2.OperatorGroup, *operatorsv1alpha2.OperatorGroupList](
"operatorgroups",
c.RESTClient(),
scheme.ParameterCodec,
namespace,
- func() *v1alpha2.OperatorGroup { return &v1alpha2.OperatorGroup{} },
- func() *v1alpha2.OperatorGroupList { return &v1alpha2.OperatorGroupList{} }),
+ func() *operatorsv1alpha2.OperatorGroup { return &operatorsv1alpha2.OperatorGroup{} },
+ func() *operatorsv1alpha2.OperatorGroupList { return &operatorsv1alpha2.OperatorGroupList{} },
+ ),
}
}
diff --git a/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha2/operators_client.go b/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha2/operators_client.go
index 2985602607..d42e3c85bc 100644
--- a/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha2/operators_client.go
+++ b/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v1alpha2/operators_client.go
@@ -19,10 +19,10 @@ limitations under the License.
package v1alpha2
import (
- "net/http"
+ http "net/http"
- v1alpha2 "github.com/operator-framework/api/pkg/operators/v1alpha2"
- "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/clientset/versioned/scheme"
+ operatorsv1alpha2 "github.com/operator-framework/api/pkg/operators/v1alpha2"
+ scheme "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/clientset/versioned/scheme"
rest "k8s.io/client-go/rest"
)
@@ -85,10 +85,10 @@ func New(c rest.Interface) *OperatorsV1alpha2Client {
}
func setConfigDefaults(config *rest.Config) error {
- gv := v1alpha2.SchemeGroupVersion
+ gv := operatorsv1alpha2.SchemeGroupVersion
config.GroupVersion = &gv
config.APIPath = "/apis"
- config.NegotiatedSerializer = scheme.Codecs.WithoutConversion()
+ config.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()
if config.UserAgent == "" {
config.UserAgent = rest.DefaultKubernetesUserAgent()
diff --git a/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v2/fake/fake_operatorcondition.go b/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v2/fake/fake_operatorcondition.go
index 02ea3c9941..24d2657d11 100644
--- a/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v2/fake/fake_operatorcondition.go
+++ b/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v2/fake/fake_operatorcondition.go
@@ -19,129 +19,34 @@ limitations under the License.
package fake
import (
- "context"
-
v2 "github.com/operator-framework/api/pkg/operators/v2"
- v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
- labels "k8s.io/apimachinery/pkg/labels"
- types "k8s.io/apimachinery/pkg/types"
- watch "k8s.io/apimachinery/pkg/watch"
- testing "k8s.io/client-go/testing"
+ operatorsv2 "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v2"
+ gentype "k8s.io/client-go/gentype"
)
-// FakeOperatorConditions implements OperatorConditionInterface
-type FakeOperatorConditions struct {
+// fakeOperatorConditions implements OperatorConditionInterface
+type fakeOperatorConditions struct {
+ *gentype.FakeClientWithList[*v2.OperatorCondition, *v2.OperatorConditionList]
Fake *FakeOperatorsV2
- ns string
-}
-
-var operatorconditionsResource = v2.SchemeGroupVersion.WithResource("operatorconditions")
-
-var operatorconditionsKind = v2.SchemeGroupVersion.WithKind("OperatorCondition")
-
-// Get takes name of the operatorCondition, and returns the corresponding operatorCondition object, and an error if there is any.
-func (c *FakeOperatorConditions) Get(ctx context.Context, name string, options v1.GetOptions) (result *v2.OperatorCondition, err error) {
- emptyResult := &v2.OperatorCondition{}
- obj, err := c.Fake.
- Invokes(testing.NewGetActionWithOptions(operatorconditionsResource, c.ns, name, options), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v2.OperatorCondition), err
-}
-
-// List takes label and field selectors, and returns the list of OperatorConditions that match those selectors.
-func (c *FakeOperatorConditions) List(ctx context.Context, opts v1.ListOptions) (result *v2.OperatorConditionList, err error) {
- emptyResult := &v2.OperatorConditionList{}
- obj, err := c.Fake.
- Invokes(testing.NewListActionWithOptions(operatorconditionsResource, operatorconditionsKind, c.ns, opts), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
-
- label, _, _ := testing.ExtractFromListOptions(opts)
- if label == nil {
- label = labels.Everything()
- }
- list := &v2.OperatorConditionList{ListMeta: obj.(*v2.OperatorConditionList).ListMeta}
- for _, item := range obj.(*v2.OperatorConditionList).Items {
- if label.Matches(labels.Set(item.Labels)) {
- list.Items = append(list.Items, item)
- }
- }
- return list, err
-}
-
-// Watch returns a watch.Interface that watches the requested operatorConditions.
-func (c *FakeOperatorConditions) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {
- return c.Fake.
- InvokesWatch(testing.NewWatchActionWithOptions(operatorconditionsResource, c.ns, opts))
-
-}
-
-// Create takes the representation of a operatorCondition and creates it. Returns the server's representation of the operatorCondition, and an error, if there is any.
-func (c *FakeOperatorConditions) Create(ctx context.Context, operatorCondition *v2.OperatorCondition, opts v1.CreateOptions) (result *v2.OperatorCondition, err error) {
- emptyResult := &v2.OperatorCondition{}
- obj, err := c.Fake.
- Invokes(testing.NewCreateActionWithOptions(operatorconditionsResource, c.ns, operatorCondition, opts), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v2.OperatorCondition), err
-}
-
-// Update takes the representation of a operatorCondition and updates it. Returns the server's representation of the operatorCondition, and an error, if there is any.
-func (c *FakeOperatorConditions) Update(ctx context.Context, operatorCondition *v2.OperatorCondition, opts v1.UpdateOptions) (result *v2.OperatorCondition, err error) {
- emptyResult := &v2.OperatorCondition{}
- obj, err := c.Fake.
- Invokes(testing.NewUpdateActionWithOptions(operatorconditionsResource, c.ns, operatorCondition, opts), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v2.OperatorCondition), err
-}
-
-// UpdateStatus was generated because the type contains a Status member.
-// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
-func (c *FakeOperatorConditions) UpdateStatus(ctx context.Context, operatorCondition *v2.OperatorCondition, opts v1.UpdateOptions) (result *v2.OperatorCondition, err error) {
- emptyResult := &v2.OperatorCondition{}
- obj, err := c.Fake.
- Invokes(testing.NewUpdateSubresourceActionWithOptions(operatorconditionsResource, "status", c.ns, operatorCondition, opts), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v2.OperatorCondition), err
-}
-
-// Delete takes name of the operatorCondition and deletes it. Returns an error if one occurs.
-func (c *FakeOperatorConditions) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {
- _, err := c.Fake.
- Invokes(testing.NewDeleteActionWithOptions(operatorconditionsResource, c.ns, name, opts), &v2.OperatorCondition{})
-
- return err
}
-// DeleteCollection deletes a collection of objects.
-func (c *FakeOperatorConditions) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {
- action := testing.NewDeleteCollectionActionWithOptions(operatorconditionsResource, c.ns, opts, listOpts)
-
- _, err := c.Fake.Invokes(action, &v2.OperatorConditionList{})
- return err
-}
-
-// Patch applies the patch and returns the patched operatorCondition.
-func (c *FakeOperatorConditions) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v2.OperatorCondition, err error) {
- emptyResult := &v2.OperatorCondition{}
- obj, err := c.Fake.
- Invokes(testing.NewPatchSubresourceActionWithOptions(operatorconditionsResource, c.ns, name, pt, data, opts, subresources...), emptyResult)
-
- if obj == nil {
- return emptyResult, err
+func newFakeOperatorConditions(fake *FakeOperatorsV2, namespace string) operatorsv2.OperatorConditionInterface {
+ return &fakeOperatorConditions{
+ gentype.NewFakeClientWithList[*v2.OperatorCondition, *v2.OperatorConditionList](
+ fake.Fake,
+ namespace,
+ v2.SchemeGroupVersion.WithResource("operatorconditions"),
+ v2.SchemeGroupVersion.WithKind("OperatorCondition"),
+ func() *v2.OperatorCondition { return &v2.OperatorCondition{} },
+ func() *v2.OperatorConditionList { return &v2.OperatorConditionList{} },
+ func(dst, src *v2.OperatorConditionList) { dst.ListMeta = src.ListMeta },
+ func(list *v2.OperatorConditionList) []*v2.OperatorCondition {
+ return gentype.ToPointerSlice(list.Items)
+ },
+ func(list *v2.OperatorConditionList, items []*v2.OperatorCondition) {
+ list.Items = gentype.FromPointerSlice(items)
+ },
+ ),
+ fake,
}
- return obj.(*v2.OperatorCondition), err
}
diff --git a/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v2/fake/fake_operators_client.go b/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v2/fake/fake_operators_client.go
index 2ccf0edd3e..57e8085c36 100644
--- a/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v2/fake/fake_operators_client.go
+++ b/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v2/fake/fake_operators_client.go
@@ -29,7 +29,7 @@ type FakeOperatorsV2 struct {
}
func (c *FakeOperatorsV2) OperatorConditions(namespace string) v2.OperatorConditionInterface {
- return &FakeOperatorConditions{c, namespace}
+ return newFakeOperatorConditions(c, namespace)
}
// RESTClient returns a RESTClient that is used to communicate
diff --git a/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v2/operatorcondition.go b/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v2/operatorcondition.go
index f22df319c9..c58d50976a 100644
--- a/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v2/operatorcondition.go
+++ b/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v2/operatorcondition.go
@@ -19,9 +19,9 @@ limitations under the License.
package v2
import (
- "context"
+ context "context"
- v2 "github.com/operator-framework/api/pkg/operators/v2"
+ operatorsv2 "github.com/operator-framework/api/pkg/operators/v2"
scheme "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/clientset/versioned/scheme"
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
types "k8s.io/apimachinery/pkg/types"
@@ -37,33 +37,34 @@ type OperatorConditionsGetter interface {
// OperatorConditionInterface has methods to work with OperatorCondition resources.
type OperatorConditionInterface interface {
- Create(ctx context.Context, operatorCondition *v2.OperatorCondition, opts v1.CreateOptions) (*v2.OperatorCondition, error)
- Update(ctx context.Context, operatorCondition *v2.OperatorCondition, opts v1.UpdateOptions) (*v2.OperatorCondition, error)
+ Create(ctx context.Context, operatorCondition *operatorsv2.OperatorCondition, opts v1.CreateOptions) (*operatorsv2.OperatorCondition, error)
+ Update(ctx context.Context, operatorCondition *operatorsv2.OperatorCondition, opts v1.UpdateOptions) (*operatorsv2.OperatorCondition, error)
// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
- UpdateStatus(ctx context.Context, operatorCondition *v2.OperatorCondition, opts v1.UpdateOptions) (*v2.OperatorCondition, error)
+ UpdateStatus(ctx context.Context, operatorCondition *operatorsv2.OperatorCondition, opts v1.UpdateOptions) (*operatorsv2.OperatorCondition, error)
Delete(ctx context.Context, name string, opts v1.DeleteOptions) error
DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error
- Get(ctx context.Context, name string, opts v1.GetOptions) (*v2.OperatorCondition, error)
- List(ctx context.Context, opts v1.ListOptions) (*v2.OperatorConditionList, error)
+ Get(ctx context.Context, name string, opts v1.GetOptions) (*operatorsv2.OperatorCondition, error)
+ List(ctx context.Context, opts v1.ListOptions) (*operatorsv2.OperatorConditionList, error)
Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)
- Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v2.OperatorCondition, err error)
+ Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *operatorsv2.OperatorCondition, err error)
OperatorConditionExpansion
}
// operatorConditions implements OperatorConditionInterface
type operatorConditions struct {
- *gentype.ClientWithList[*v2.OperatorCondition, *v2.OperatorConditionList]
+ *gentype.ClientWithList[*operatorsv2.OperatorCondition, *operatorsv2.OperatorConditionList]
}
// newOperatorConditions returns a OperatorConditions
func newOperatorConditions(c *OperatorsV2Client, namespace string) *operatorConditions {
return &operatorConditions{
- gentype.NewClientWithList[*v2.OperatorCondition, *v2.OperatorConditionList](
+ gentype.NewClientWithList[*operatorsv2.OperatorCondition, *operatorsv2.OperatorConditionList](
"operatorconditions",
c.RESTClient(),
scheme.ParameterCodec,
namespace,
- func() *v2.OperatorCondition { return &v2.OperatorCondition{} },
- func() *v2.OperatorConditionList { return &v2.OperatorConditionList{} }),
+ func() *operatorsv2.OperatorCondition { return &operatorsv2.OperatorCondition{} },
+ func() *operatorsv2.OperatorConditionList { return &operatorsv2.OperatorConditionList{} },
+ ),
}
}
diff --git a/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v2/operators_client.go b/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v2/operators_client.go
index a09d46f08a..382a9e4802 100644
--- a/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v2/operators_client.go
+++ b/staging/operator-lifecycle-manager/pkg/api/client/clientset/versioned/typed/operators/v2/operators_client.go
@@ -19,10 +19,10 @@ limitations under the License.
package v2
import (
- "net/http"
+ http "net/http"
- v2 "github.com/operator-framework/api/pkg/operators/v2"
- "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/clientset/versioned/scheme"
+ operatorsv2 "github.com/operator-framework/api/pkg/operators/v2"
+ scheme "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/clientset/versioned/scheme"
rest "k8s.io/client-go/rest"
)
@@ -85,10 +85,10 @@ func New(c rest.Interface) *OperatorsV2Client {
}
func setConfigDefaults(config *rest.Config) error {
- gv := v2.SchemeGroupVersion
+ gv := operatorsv2.SchemeGroupVersion
config.GroupVersion = &gv
config.APIPath = "/apis"
- config.NegotiatedSerializer = scheme.Codecs.WithoutConversion()
+ config.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()
if config.UserAgent == "" {
config.UserAgent = rest.DefaultKubernetesUserAgent()
diff --git a/staging/operator-lifecycle-manager/pkg/api/client/informers/externalversions/generic.go b/staging/operator-lifecycle-manager/pkg/api/client/informers/externalversions/generic.go
index 9d76ead655..ca604c530a 100644
--- a/staging/operator-lifecycle-manager/pkg/api/client/informers/externalversions/generic.go
+++ b/staging/operator-lifecycle-manager/pkg/api/client/informers/externalversions/generic.go
@@ -19,7 +19,7 @@ limitations under the License.
package externalversions
import (
- "fmt"
+ fmt "fmt"
v1 "github.com/operator-framework/api/pkg/operators/v1"
v1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1"
diff --git a/staging/operator-lifecycle-manager/pkg/api/client/informers/externalversions/operators/v1/olmconfig.go b/staging/operator-lifecycle-manager/pkg/api/client/informers/externalversions/operators/v1/olmconfig.go
index ad7ab7d194..ff06234f8d 100644
--- a/staging/operator-lifecycle-manager/pkg/api/client/informers/externalversions/operators/v1/olmconfig.go
+++ b/staging/operator-lifecycle-manager/pkg/api/client/informers/externalversions/operators/v1/olmconfig.go
@@ -19,13 +19,13 @@ limitations under the License.
package v1
import (
- "context"
+ context "context"
time "time"
- operatorsv1 "github.com/operator-framework/api/pkg/operators/v1"
+ pkgoperatorsv1 "github.com/operator-framework/api/pkg/operators/v1"
versioned "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/clientset/versioned"
internalinterfaces "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/informers/externalversions/internalinterfaces"
- v1 "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/listers/operators/v1"
+ operatorsv1 "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/listers/operators/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
runtime "k8s.io/apimachinery/pkg/runtime"
watch "k8s.io/apimachinery/pkg/watch"
@@ -36,7 +36,7 @@ import (
// OLMConfigs.
type OLMConfigInformer interface {
Informer() cache.SharedIndexInformer
- Lister() v1.OLMConfigLister
+ Lister() operatorsv1.OLMConfigLister
}
type oLMConfigInformer struct {
@@ -70,7 +70,7 @@ func NewFilteredOLMConfigInformer(client versioned.Interface, resyncPeriod time.
return client.OperatorsV1().OLMConfigs().Watch(context.TODO(), options)
},
},
- &operatorsv1.OLMConfig{},
+ &pkgoperatorsv1.OLMConfig{},
resyncPeriod,
indexers,
)
@@ -81,9 +81,9 @@ func (f *oLMConfigInformer) defaultInformer(client versioned.Interface, resyncPe
}
func (f *oLMConfigInformer) Informer() cache.SharedIndexInformer {
- return f.factory.InformerFor(&operatorsv1.OLMConfig{}, f.defaultInformer)
+ return f.factory.InformerFor(&pkgoperatorsv1.OLMConfig{}, f.defaultInformer)
}
-func (f *oLMConfigInformer) Lister() v1.OLMConfigLister {
- return v1.NewOLMConfigLister(f.Informer().GetIndexer())
+func (f *oLMConfigInformer) Lister() operatorsv1.OLMConfigLister {
+ return operatorsv1.NewOLMConfigLister(f.Informer().GetIndexer())
}
diff --git a/staging/operator-lifecycle-manager/pkg/api/client/informers/externalversions/operators/v1/operator.go b/staging/operator-lifecycle-manager/pkg/api/client/informers/externalversions/operators/v1/operator.go
index 2732db26b0..00dd5ef430 100644
--- a/staging/operator-lifecycle-manager/pkg/api/client/informers/externalversions/operators/v1/operator.go
+++ b/staging/operator-lifecycle-manager/pkg/api/client/informers/externalversions/operators/v1/operator.go
@@ -19,13 +19,13 @@ limitations under the License.
package v1
import (
- "context"
+ context "context"
time "time"
- operatorsv1 "github.com/operator-framework/api/pkg/operators/v1"
+ pkgoperatorsv1 "github.com/operator-framework/api/pkg/operators/v1"
versioned "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/clientset/versioned"
internalinterfaces "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/informers/externalversions/internalinterfaces"
- v1 "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/listers/operators/v1"
+ operatorsv1 "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/listers/operators/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
runtime "k8s.io/apimachinery/pkg/runtime"
watch "k8s.io/apimachinery/pkg/watch"
@@ -36,7 +36,7 @@ import (
// Operators.
type OperatorInformer interface {
Informer() cache.SharedIndexInformer
- Lister() v1.OperatorLister
+ Lister() operatorsv1.OperatorLister
}
type operatorInformer struct {
@@ -70,7 +70,7 @@ func NewFilteredOperatorInformer(client versioned.Interface, resyncPeriod time.D
return client.OperatorsV1().Operators().Watch(context.TODO(), options)
},
},
- &operatorsv1.Operator{},
+ &pkgoperatorsv1.Operator{},
resyncPeriod,
indexers,
)
@@ -81,9 +81,9 @@ func (f *operatorInformer) defaultInformer(client versioned.Interface, resyncPer
}
func (f *operatorInformer) Informer() cache.SharedIndexInformer {
- return f.factory.InformerFor(&operatorsv1.Operator{}, f.defaultInformer)
+ return f.factory.InformerFor(&pkgoperatorsv1.Operator{}, f.defaultInformer)
}
-func (f *operatorInformer) Lister() v1.OperatorLister {
- return v1.NewOperatorLister(f.Informer().GetIndexer())
+func (f *operatorInformer) Lister() operatorsv1.OperatorLister {
+ return operatorsv1.NewOperatorLister(f.Informer().GetIndexer())
}
diff --git a/staging/operator-lifecycle-manager/pkg/api/client/informers/externalversions/operators/v1/operatorcondition.go b/staging/operator-lifecycle-manager/pkg/api/client/informers/externalversions/operators/v1/operatorcondition.go
index 629cd00f60..106e8d7984 100644
--- a/staging/operator-lifecycle-manager/pkg/api/client/informers/externalversions/operators/v1/operatorcondition.go
+++ b/staging/operator-lifecycle-manager/pkg/api/client/informers/externalversions/operators/v1/operatorcondition.go
@@ -19,13 +19,13 @@ limitations under the License.
package v1
import (
- "context"
+ context "context"
time "time"
- operatorsv1 "github.com/operator-framework/api/pkg/operators/v1"
+ pkgoperatorsv1 "github.com/operator-framework/api/pkg/operators/v1"
versioned "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/clientset/versioned"
internalinterfaces "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/informers/externalversions/internalinterfaces"
- v1 "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/listers/operators/v1"
+ operatorsv1 "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/listers/operators/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
runtime "k8s.io/apimachinery/pkg/runtime"
watch "k8s.io/apimachinery/pkg/watch"
@@ -36,7 +36,7 @@ import (
// OperatorConditions.
type OperatorConditionInformer interface {
Informer() cache.SharedIndexInformer
- Lister() v1.OperatorConditionLister
+ Lister() operatorsv1.OperatorConditionLister
}
type operatorConditionInformer struct {
@@ -71,7 +71,7 @@ func NewFilteredOperatorConditionInformer(client versioned.Interface, namespace
return client.OperatorsV1().OperatorConditions(namespace).Watch(context.TODO(), options)
},
},
- &operatorsv1.OperatorCondition{},
+ &pkgoperatorsv1.OperatorCondition{},
resyncPeriod,
indexers,
)
@@ -82,9 +82,9 @@ func (f *operatorConditionInformer) defaultInformer(client versioned.Interface,
}
func (f *operatorConditionInformer) Informer() cache.SharedIndexInformer {
- return f.factory.InformerFor(&operatorsv1.OperatorCondition{}, f.defaultInformer)
+ return f.factory.InformerFor(&pkgoperatorsv1.OperatorCondition{}, f.defaultInformer)
}
-func (f *operatorConditionInformer) Lister() v1.OperatorConditionLister {
- return v1.NewOperatorConditionLister(f.Informer().GetIndexer())
+func (f *operatorConditionInformer) Lister() operatorsv1.OperatorConditionLister {
+ return operatorsv1.NewOperatorConditionLister(f.Informer().GetIndexer())
}
diff --git a/staging/operator-lifecycle-manager/pkg/api/client/informers/externalversions/operators/v1/operatorgroup.go b/staging/operator-lifecycle-manager/pkg/api/client/informers/externalversions/operators/v1/operatorgroup.go
index 8cd0b45048..31243b75a3 100644
--- a/staging/operator-lifecycle-manager/pkg/api/client/informers/externalversions/operators/v1/operatorgroup.go
+++ b/staging/operator-lifecycle-manager/pkg/api/client/informers/externalversions/operators/v1/operatorgroup.go
@@ -19,13 +19,13 @@ limitations under the License.
package v1
import (
- "context"
+ context "context"
time "time"
- operatorsv1 "github.com/operator-framework/api/pkg/operators/v1"
+ pkgoperatorsv1 "github.com/operator-framework/api/pkg/operators/v1"
versioned "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/clientset/versioned"
internalinterfaces "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/informers/externalversions/internalinterfaces"
- v1 "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/listers/operators/v1"
+ operatorsv1 "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/listers/operators/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
runtime "k8s.io/apimachinery/pkg/runtime"
watch "k8s.io/apimachinery/pkg/watch"
@@ -36,7 +36,7 @@ import (
// OperatorGroups.
type OperatorGroupInformer interface {
Informer() cache.SharedIndexInformer
- Lister() v1.OperatorGroupLister
+ Lister() operatorsv1.OperatorGroupLister
}
type operatorGroupInformer struct {
@@ -71,7 +71,7 @@ func NewFilteredOperatorGroupInformer(client versioned.Interface, namespace stri
return client.OperatorsV1().OperatorGroups(namespace).Watch(context.TODO(), options)
},
},
- &operatorsv1.OperatorGroup{},
+ &pkgoperatorsv1.OperatorGroup{},
resyncPeriod,
indexers,
)
@@ -82,9 +82,9 @@ func (f *operatorGroupInformer) defaultInformer(client versioned.Interface, resy
}
func (f *operatorGroupInformer) Informer() cache.SharedIndexInformer {
- return f.factory.InformerFor(&operatorsv1.OperatorGroup{}, f.defaultInformer)
+ return f.factory.InformerFor(&pkgoperatorsv1.OperatorGroup{}, f.defaultInformer)
}
-func (f *operatorGroupInformer) Lister() v1.OperatorGroupLister {
- return v1.NewOperatorGroupLister(f.Informer().GetIndexer())
+func (f *operatorGroupInformer) Lister() operatorsv1.OperatorGroupLister {
+ return operatorsv1.NewOperatorGroupLister(f.Informer().GetIndexer())
}
diff --git a/staging/operator-lifecycle-manager/pkg/api/client/informers/externalversions/operators/v1alpha1/catalogsource.go b/staging/operator-lifecycle-manager/pkg/api/client/informers/externalversions/operators/v1alpha1/catalogsource.go
index 9811741374..23b6211692 100644
--- a/staging/operator-lifecycle-manager/pkg/api/client/informers/externalversions/operators/v1alpha1/catalogsource.go
+++ b/staging/operator-lifecycle-manager/pkg/api/client/informers/externalversions/operators/v1alpha1/catalogsource.go
@@ -19,13 +19,13 @@ limitations under the License.
package v1alpha1
import (
- "context"
+ context "context"
time "time"
- operatorsv1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1"
+ pkgoperatorsv1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1"
versioned "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/clientset/versioned"
internalinterfaces "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/informers/externalversions/internalinterfaces"
- v1alpha1 "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/listers/operators/v1alpha1"
+ operatorsv1alpha1 "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/listers/operators/v1alpha1"
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
runtime "k8s.io/apimachinery/pkg/runtime"
watch "k8s.io/apimachinery/pkg/watch"
@@ -36,7 +36,7 @@ import (
// CatalogSources.
type CatalogSourceInformer interface {
Informer() cache.SharedIndexInformer
- Lister() v1alpha1.CatalogSourceLister
+ Lister() operatorsv1alpha1.CatalogSourceLister
}
type catalogSourceInformer struct {
@@ -71,7 +71,7 @@ func NewFilteredCatalogSourceInformer(client versioned.Interface, namespace stri
return client.OperatorsV1alpha1().CatalogSources(namespace).Watch(context.TODO(), options)
},
},
- &operatorsv1alpha1.CatalogSource{},
+ &pkgoperatorsv1alpha1.CatalogSource{},
resyncPeriod,
indexers,
)
@@ -82,9 +82,9 @@ func (f *catalogSourceInformer) defaultInformer(client versioned.Interface, resy
}
func (f *catalogSourceInformer) Informer() cache.SharedIndexInformer {
- return f.factory.InformerFor(&operatorsv1alpha1.CatalogSource{}, f.defaultInformer)
+ return f.factory.InformerFor(&pkgoperatorsv1alpha1.CatalogSource{}, f.defaultInformer)
}
-func (f *catalogSourceInformer) Lister() v1alpha1.CatalogSourceLister {
- return v1alpha1.NewCatalogSourceLister(f.Informer().GetIndexer())
+func (f *catalogSourceInformer) Lister() operatorsv1alpha1.CatalogSourceLister {
+ return operatorsv1alpha1.NewCatalogSourceLister(f.Informer().GetIndexer())
}
diff --git a/staging/operator-lifecycle-manager/pkg/api/client/informers/externalversions/operators/v1alpha1/clusterserviceversion.go b/staging/operator-lifecycle-manager/pkg/api/client/informers/externalversions/operators/v1alpha1/clusterserviceversion.go
index 6416f2ea3b..0e9b1de32d 100644
--- a/staging/operator-lifecycle-manager/pkg/api/client/informers/externalversions/operators/v1alpha1/clusterserviceversion.go
+++ b/staging/operator-lifecycle-manager/pkg/api/client/informers/externalversions/operators/v1alpha1/clusterserviceversion.go
@@ -19,13 +19,13 @@ limitations under the License.
package v1alpha1
import (
- "context"
+ context "context"
time "time"
- operatorsv1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1"
+ pkgoperatorsv1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1"
versioned "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/clientset/versioned"
internalinterfaces "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/informers/externalversions/internalinterfaces"
- v1alpha1 "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/listers/operators/v1alpha1"
+ operatorsv1alpha1 "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/listers/operators/v1alpha1"
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
runtime "k8s.io/apimachinery/pkg/runtime"
watch "k8s.io/apimachinery/pkg/watch"
@@ -36,7 +36,7 @@ import (
// ClusterServiceVersions.
type ClusterServiceVersionInformer interface {
Informer() cache.SharedIndexInformer
- Lister() v1alpha1.ClusterServiceVersionLister
+ Lister() operatorsv1alpha1.ClusterServiceVersionLister
}
type clusterServiceVersionInformer struct {
@@ -71,7 +71,7 @@ func NewFilteredClusterServiceVersionInformer(client versioned.Interface, namesp
return client.OperatorsV1alpha1().ClusterServiceVersions(namespace).Watch(context.TODO(), options)
},
},
- &operatorsv1alpha1.ClusterServiceVersion{},
+ &pkgoperatorsv1alpha1.ClusterServiceVersion{},
resyncPeriod,
indexers,
)
@@ -82,9 +82,9 @@ func (f *clusterServiceVersionInformer) defaultInformer(client versioned.Interfa
}
func (f *clusterServiceVersionInformer) Informer() cache.SharedIndexInformer {
- return f.factory.InformerFor(&operatorsv1alpha1.ClusterServiceVersion{}, f.defaultInformer)
+ return f.factory.InformerFor(&pkgoperatorsv1alpha1.ClusterServiceVersion{}, f.defaultInformer)
}
-func (f *clusterServiceVersionInformer) Lister() v1alpha1.ClusterServiceVersionLister {
- return v1alpha1.NewClusterServiceVersionLister(f.Informer().GetIndexer())
+func (f *clusterServiceVersionInformer) Lister() operatorsv1alpha1.ClusterServiceVersionLister {
+ return operatorsv1alpha1.NewClusterServiceVersionLister(f.Informer().GetIndexer())
}
diff --git a/staging/operator-lifecycle-manager/pkg/api/client/informers/externalversions/operators/v1alpha1/installplan.go b/staging/operator-lifecycle-manager/pkg/api/client/informers/externalversions/operators/v1alpha1/installplan.go
index 26c6f26ad8..abb464bb62 100644
--- a/staging/operator-lifecycle-manager/pkg/api/client/informers/externalversions/operators/v1alpha1/installplan.go
+++ b/staging/operator-lifecycle-manager/pkg/api/client/informers/externalversions/operators/v1alpha1/installplan.go
@@ -19,13 +19,13 @@ limitations under the License.
package v1alpha1
import (
- "context"
+ context "context"
time "time"
- operatorsv1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1"
+ pkgoperatorsv1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1"
versioned "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/clientset/versioned"
internalinterfaces "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/informers/externalversions/internalinterfaces"
- v1alpha1 "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/listers/operators/v1alpha1"
+ operatorsv1alpha1 "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/listers/operators/v1alpha1"
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
runtime "k8s.io/apimachinery/pkg/runtime"
watch "k8s.io/apimachinery/pkg/watch"
@@ -36,7 +36,7 @@ import (
// InstallPlans.
type InstallPlanInformer interface {
Informer() cache.SharedIndexInformer
- Lister() v1alpha1.InstallPlanLister
+ Lister() operatorsv1alpha1.InstallPlanLister
}
type installPlanInformer struct {
@@ -71,7 +71,7 @@ func NewFilteredInstallPlanInformer(client versioned.Interface, namespace string
return client.OperatorsV1alpha1().InstallPlans(namespace).Watch(context.TODO(), options)
},
},
- &operatorsv1alpha1.InstallPlan{},
+ &pkgoperatorsv1alpha1.InstallPlan{},
resyncPeriod,
indexers,
)
@@ -82,9 +82,9 @@ func (f *installPlanInformer) defaultInformer(client versioned.Interface, resync
}
func (f *installPlanInformer) Informer() cache.SharedIndexInformer {
- return f.factory.InformerFor(&operatorsv1alpha1.InstallPlan{}, f.defaultInformer)
+ return f.factory.InformerFor(&pkgoperatorsv1alpha1.InstallPlan{}, f.defaultInformer)
}
-func (f *installPlanInformer) Lister() v1alpha1.InstallPlanLister {
- return v1alpha1.NewInstallPlanLister(f.Informer().GetIndexer())
+func (f *installPlanInformer) Lister() operatorsv1alpha1.InstallPlanLister {
+ return operatorsv1alpha1.NewInstallPlanLister(f.Informer().GetIndexer())
}
diff --git a/staging/operator-lifecycle-manager/pkg/api/client/informers/externalversions/operators/v1alpha1/subscription.go b/staging/operator-lifecycle-manager/pkg/api/client/informers/externalversions/operators/v1alpha1/subscription.go
index bd8864eef3..c8d0077709 100644
--- a/staging/operator-lifecycle-manager/pkg/api/client/informers/externalversions/operators/v1alpha1/subscription.go
+++ b/staging/operator-lifecycle-manager/pkg/api/client/informers/externalversions/operators/v1alpha1/subscription.go
@@ -19,13 +19,13 @@ limitations under the License.
package v1alpha1
import (
- "context"
+ context "context"
time "time"
- operatorsv1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1"
+ pkgoperatorsv1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1"
versioned "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/clientset/versioned"
internalinterfaces "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/informers/externalversions/internalinterfaces"
- v1alpha1 "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/listers/operators/v1alpha1"
+ operatorsv1alpha1 "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/listers/operators/v1alpha1"
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
runtime "k8s.io/apimachinery/pkg/runtime"
watch "k8s.io/apimachinery/pkg/watch"
@@ -36,7 +36,7 @@ import (
// Subscriptions.
type SubscriptionInformer interface {
Informer() cache.SharedIndexInformer
- Lister() v1alpha1.SubscriptionLister
+ Lister() operatorsv1alpha1.SubscriptionLister
}
type subscriptionInformer struct {
@@ -71,7 +71,7 @@ func NewFilteredSubscriptionInformer(client versioned.Interface, namespace strin
return client.OperatorsV1alpha1().Subscriptions(namespace).Watch(context.TODO(), options)
},
},
- &operatorsv1alpha1.Subscription{},
+ &pkgoperatorsv1alpha1.Subscription{},
resyncPeriod,
indexers,
)
@@ -82,9 +82,9 @@ func (f *subscriptionInformer) defaultInformer(client versioned.Interface, resyn
}
func (f *subscriptionInformer) Informer() cache.SharedIndexInformer {
- return f.factory.InformerFor(&operatorsv1alpha1.Subscription{}, f.defaultInformer)
+ return f.factory.InformerFor(&pkgoperatorsv1alpha1.Subscription{}, f.defaultInformer)
}
-func (f *subscriptionInformer) Lister() v1alpha1.SubscriptionLister {
- return v1alpha1.NewSubscriptionLister(f.Informer().GetIndexer())
+func (f *subscriptionInformer) Lister() operatorsv1alpha1.SubscriptionLister {
+ return operatorsv1alpha1.NewSubscriptionLister(f.Informer().GetIndexer())
}
diff --git a/staging/operator-lifecycle-manager/pkg/api/client/informers/externalversions/operators/v1alpha2/operatorgroup.go b/staging/operator-lifecycle-manager/pkg/api/client/informers/externalversions/operators/v1alpha2/operatorgroup.go
index 1bad85e048..e46d766480 100644
--- a/staging/operator-lifecycle-manager/pkg/api/client/informers/externalversions/operators/v1alpha2/operatorgroup.go
+++ b/staging/operator-lifecycle-manager/pkg/api/client/informers/externalversions/operators/v1alpha2/operatorgroup.go
@@ -19,13 +19,13 @@ limitations under the License.
package v1alpha2
import (
- "context"
+ context "context"
time "time"
- operatorsv1alpha2 "github.com/operator-framework/api/pkg/operators/v1alpha2"
+ pkgoperatorsv1alpha2 "github.com/operator-framework/api/pkg/operators/v1alpha2"
versioned "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/clientset/versioned"
internalinterfaces "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/informers/externalversions/internalinterfaces"
- v1alpha2 "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/listers/operators/v1alpha2"
+ operatorsv1alpha2 "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/listers/operators/v1alpha2"
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
runtime "k8s.io/apimachinery/pkg/runtime"
watch "k8s.io/apimachinery/pkg/watch"
@@ -36,7 +36,7 @@ import (
// OperatorGroups.
type OperatorGroupInformer interface {
Informer() cache.SharedIndexInformer
- Lister() v1alpha2.OperatorGroupLister
+ Lister() operatorsv1alpha2.OperatorGroupLister
}
type operatorGroupInformer struct {
@@ -71,7 +71,7 @@ func NewFilteredOperatorGroupInformer(client versioned.Interface, namespace stri
return client.OperatorsV1alpha2().OperatorGroups(namespace).Watch(context.TODO(), options)
},
},
- &operatorsv1alpha2.OperatorGroup{},
+ &pkgoperatorsv1alpha2.OperatorGroup{},
resyncPeriod,
indexers,
)
@@ -82,9 +82,9 @@ func (f *operatorGroupInformer) defaultInformer(client versioned.Interface, resy
}
func (f *operatorGroupInformer) Informer() cache.SharedIndexInformer {
- return f.factory.InformerFor(&operatorsv1alpha2.OperatorGroup{}, f.defaultInformer)
+ return f.factory.InformerFor(&pkgoperatorsv1alpha2.OperatorGroup{}, f.defaultInformer)
}
-func (f *operatorGroupInformer) Lister() v1alpha2.OperatorGroupLister {
- return v1alpha2.NewOperatorGroupLister(f.Informer().GetIndexer())
+func (f *operatorGroupInformer) Lister() operatorsv1alpha2.OperatorGroupLister {
+ return operatorsv1alpha2.NewOperatorGroupLister(f.Informer().GetIndexer())
}
diff --git a/staging/operator-lifecycle-manager/pkg/api/client/informers/externalversions/operators/v2/operatorcondition.go b/staging/operator-lifecycle-manager/pkg/api/client/informers/externalversions/operators/v2/operatorcondition.go
index 61aacaf5ad..989a034c63 100644
--- a/staging/operator-lifecycle-manager/pkg/api/client/informers/externalversions/operators/v2/operatorcondition.go
+++ b/staging/operator-lifecycle-manager/pkg/api/client/informers/externalversions/operators/v2/operatorcondition.go
@@ -19,13 +19,13 @@ limitations under the License.
package v2
import (
- "context"
+ context "context"
time "time"
- operatorsv2 "github.com/operator-framework/api/pkg/operators/v2"
+ pkgoperatorsv2 "github.com/operator-framework/api/pkg/operators/v2"
versioned "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/clientset/versioned"
internalinterfaces "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/informers/externalversions/internalinterfaces"
- v2 "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/listers/operators/v2"
+ operatorsv2 "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/listers/operators/v2"
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
runtime "k8s.io/apimachinery/pkg/runtime"
watch "k8s.io/apimachinery/pkg/watch"
@@ -36,7 +36,7 @@ import (
// OperatorConditions.
type OperatorConditionInformer interface {
Informer() cache.SharedIndexInformer
- Lister() v2.OperatorConditionLister
+ Lister() operatorsv2.OperatorConditionLister
}
type operatorConditionInformer struct {
@@ -71,7 +71,7 @@ func NewFilteredOperatorConditionInformer(client versioned.Interface, namespace
return client.OperatorsV2().OperatorConditions(namespace).Watch(context.TODO(), options)
},
},
- &operatorsv2.OperatorCondition{},
+ &pkgoperatorsv2.OperatorCondition{},
resyncPeriod,
indexers,
)
@@ -82,9 +82,9 @@ func (f *operatorConditionInformer) defaultInformer(client versioned.Interface,
}
func (f *operatorConditionInformer) Informer() cache.SharedIndexInformer {
- return f.factory.InformerFor(&operatorsv2.OperatorCondition{}, f.defaultInformer)
+ return f.factory.InformerFor(&pkgoperatorsv2.OperatorCondition{}, f.defaultInformer)
}
-func (f *operatorConditionInformer) Lister() v2.OperatorConditionLister {
- return v2.NewOperatorConditionLister(f.Informer().GetIndexer())
+func (f *operatorConditionInformer) Lister() operatorsv2.OperatorConditionLister {
+ return operatorsv2.NewOperatorConditionLister(f.Informer().GetIndexer())
}
diff --git a/staging/operator-lifecycle-manager/pkg/api/client/listers/operators/v1/olmconfig.go b/staging/operator-lifecycle-manager/pkg/api/client/listers/operators/v1/olmconfig.go
index a8686a0f58..f8e40b205f 100644
--- a/staging/operator-lifecycle-manager/pkg/api/client/listers/operators/v1/olmconfig.go
+++ b/staging/operator-lifecycle-manager/pkg/api/client/listers/operators/v1/olmconfig.go
@@ -19,10 +19,10 @@ limitations under the License.
package v1
import (
- v1 "github.com/operator-framework/api/pkg/operators/v1"
- "k8s.io/apimachinery/pkg/labels"
- "k8s.io/client-go/listers"
- "k8s.io/client-go/tools/cache"
+ operatorsv1 "github.com/operator-framework/api/pkg/operators/v1"
+ labels "k8s.io/apimachinery/pkg/labels"
+ listers "k8s.io/client-go/listers"
+ cache "k8s.io/client-go/tools/cache"
)
// OLMConfigLister helps list OLMConfigs.
@@ -30,19 +30,19 @@ import (
type OLMConfigLister interface {
// List lists all OLMConfigs in the indexer.
// Objects returned here must be treated as read-only.
- List(selector labels.Selector) (ret []*v1.OLMConfig, err error)
+ List(selector labels.Selector) (ret []*operatorsv1.OLMConfig, err error)
// Get retrieves the OLMConfig from the index for a given name.
// Objects returned here must be treated as read-only.
- Get(name string) (*v1.OLMConfig, error)
+ Get(name string) (*operatorsv1.OLMConfig, error)
OLMConfigListerExpansion
}
// oLMConfigLister implements the OLMConfigLister interface.
type oLMConfigLister struct {
- listers.ResourceIndexer[*v1.OLMConfig]
+ listers.ResourceIndexer[*operatorsv1.OLMConfig]
}
// NewOLMConfigLister returns a new OLMConfigLister.
func NewOLMConfigLister(indexer cache.Indexer) OLMConfigLister {
- return &oLMConfigLister{listers.New[*v1.OLMConfig](indexer, v1.Resource("olmconfig"))}
+ return &oLMConfigLister{listers.New[*operatorsv1.OLMConfig](indexer, operatorsv1.Resource("olmconfig"))}
}
diff --git a/staging/operator-lifecycle-manager/pkg/api/client/listers/operators/v1/operator.go b/staging/operator-lifecycle-manager/pkg/api/client/listers/operators/v1/operator.go
index 08bb81df34..4bd73d57de 100644
--- a/staging/operator-lifecycle-manager/pkg/api/client/listers/operators/v1/operator.go
+++ b/staging/operator-lifecycle-manager/pkg/api/client/listers/operators/v1/operator.go
@@ -19,10 +19,10 @@ limitations under the License.
package v1
import (
- v1 "github.com/operator-framework/api/pkg/operators/v1"
- "k8s.io/apimachinery/pkg/labels"
- "k8s.io/client-go/listers"
- "k8s.io/client-go/tools/cache"
+ operatorsv1 "github.com/operator-framework/api/pkg/operators/v1"
+ labels "k8s.io/apimachinery/pkg/labels"
+ listers "k8s.io/client-go/listers"
+ cache "k8s.io/client-go/tools/cache"
)
// OperatorLister helps list Operators.
@@ -30,19 +30,19 @@ import (
type OperatorLister interface {
// List lists all Operators in the indexer.
// Objects returned here must be treated as read-only.
- List(selector labels.Selector) (ret []*v1.Operator, err error)
+ List(selector labels.Selector) (ret []*operatorsv1.Operator, err error)
// Get retrieves the Operator from the index for a given name.
// Objects returned here must be treated as read-only.
- Get(name string) (*v1.Operator, error)
+ Get(name string) (*operatorsv1.Operator, error)
OperatorListerExpansion
}
// operatorLister implements the OperatorLister interface.
type operatorLister struct {
- listers.ResourceIndexer[*v1.Operator]
+ listers.ResourceIndexer[*operatorsv1.Operator]
}
// NewOperatorLister returns a new OperatorLister.
func NewOperatorLister(indexer cache.Indexer) OperatorLister {
- return &operatorLister{listers.New[*v1.Operator](indexer, v1.Resource("operator"))}
+ return &operatorLister{listers.New[*operatorsv1.Operator](indexer, operatorsv1.Resource("operator"))}
}
diff --git a/staging/operator-lifecycle-manager/pkg/api/client/listers/operators/v1/operatorcondition.go b/staging/operator-lifecycle-manager/pkg/api/client/listers/operators/v1/operatorcondition.go
index 33e76bffd1..f814264b4b 100644
--- a/staging/operator-lifecycle-manager/pkg/api/client/listers/operators/v1/operatorcondition.go
+++ b/staging/operator-lifecycle-manager/pkg/api/client/listers/operators/v1/operatorcondition.go
@@ -19,10 +19,10 @@ limitations under the License.
package v1
import (
- v1 "github.com/operator-framework/api/pkg/operators/v1"
- "k8s.io/apimachinery/pkg/labels"
- "k8s.io/client-go/listers"
- "k8s.io/client-go/tools/cache"
+ operatorsv1 "github.com/operator-framework/api/pkg/operators/v1"
+ labels "k8s.io/apimachinery/pkg/labels"
+ listers "k8s.io/client-go/listers"
+ cache "k8s.io/client-go/tools/cache"
)
// OperatorConditionLister helps list OperatorConditions.
@@ -30,7 +30,7 @@ import (
type OperatorConditionLister interface {
// List lists all OperatorConditions in the indexer.
// Objects returned here must be treated as read-only.
- List(selector labels.Selector) (ret []*v1.OperatorCondition, err error)
+ List(selector labels.Selector) (ret []*operatorsv1.OperatorCondition, err error)
// OperatorConditions returns an object that can list and get OperatorConditions.
OperatorConditions(namespace string) OperatorConditionNamespaceLister
OperatorConditionListerExpansion
@@ -38,17 +38,17 @@ type OperatorConditionLister interface {
// operatorConditionLister implements the OperatorConditionLister interface.
type operatorConditionLister struct {
- listers.ResourceIndexer[*v1.OperatorCondition]
+ listers.ResourceIndexer[*operatorsv1.OperatorCondition]
}
// NewOperatorConditionLister returns a new OperatorConditionLister.
func NewOperatorConditionLister(indexer cache.Indexer) OperatorConditionLister {
- return &operatorConditionLister{listers.New[*v1.OperatorCondition](indexer, v1.Resource("operatorcondition"))}
+ return &operatorConditionLister{listers.New[*operatorsv1.OperatorCondition](indexer, operatorsv1.Resource("operatorcondition"))}
}
// OperatorConditions returns an object that can list and get OperatorConditions.
func (s *operatorConditionLister) OperatorConditions(namespace string) OperatorConditionNamespaceLister {
- return operatorConditionNamespaceLister{listers.NewNamespaced[*v1.OperatorCondition](s.ResourceIndexer, namespace)}
+ return operatorConditionNamespaceLister{listers.NewNamespaced[*operatorsv1.OperatorCondition](s.ResourceIndexer, namespace)}
}
// OperatorConditionNamespaceLister helps list and get OperatorConditions.
@@ -56,15 +56,15 @@ func (s *operatorConditionLister) OperatorConditions(namespace string) OperatorC
type OperatorConditionNamespaceLister interface {
// List lists all OperatorConditions in the indexer for a given namespace.
// Objects returned here must be treated as read-only.
- List(selector labels.Selector) (ret []*v1.OperatorCondition, err error)
+ List(selector labels.Selector) (ret []*operatorsv1.OperatorCondition, err error)
// Get retrieves the OperatorCondition from the indexer for a given namespace and name.
// Objects returned here must be treated as read-only.
- Get(name string) (*v1.OperatorCondition, error)
+ Get(name string) (*operatorsv1.OperatorCondition, error)
OperatorConditionNamespaceListerExpansion
}
// operatorConditionNamespaceLister implements the OperatorConditionNamespaceLister
// interface.
type operatorConditionNamespaceLister struct {
- listers.ResourceIndexer[*v1.OperatorCondition]
+ listers.ResourceIndexer[*operatorsv1.OperatorCondition]
}
diff --git a/staging/operator-lifecycle-manager/pkg/api/client/listers/operators/v1/operatorgroup.go b/staging/operator-lifecycle-manager/pkg/api/client/listers/operators/v1/operatorgroup.go
index 7bf34f7bbb..898a2dd74c 100644
--- a/staging/operator-lifecycle-manager/pkg/api/client/listers/operators/v1/operatorgroup.go
+++ b/staging/operator-lifecycle-manager/pkg/api/client/listers/operators/v1/operatorgroup.go
@@ -19,10 +19,10 @@ limitations under the License.
package v1
import (
- v1 "github.com/operator-framework/api/pkg/operators/v1"
- "k8s.io/apimachinery/pkg/labels"
- "k8s.io/client-go/listers"
- "k8s.io/client-go/tools/cache"
+ operatorsv1 "github.com/operator-framework/api/pkg/operators/v1"
+ labels "k8s.io/apimachinery/pkg/labels"
+ listers "k8s.io/client-go/listers"
+ cache "k8s.io/client-go/tools/cache"
)
// OperatorGroupLister helps list OperatorGroups.
@@ -30,7 +30,7 @@ import (
type OperatorGroupLister interface {
// List lists all OperatorGroups in the indexer.
// Objects returned here must be treated as read-only.
- List(selector labels.Selector) (ret []*v1.OperatorGroup, err error)
+ List(selector labels.Selector) (ret []*operatorsv1.OperatorGroup, err error)
// OperatorGroups returns an object that can list and get OperatorGroups.
OperatorGroups(namespace string) OperatorGroupNamespaceLister
OperatorGroupListerExpansion
@@ -38,17 +38,17 @@ type OperatorGroupLister interface {
// operatorGroupLister implements the OperatorGroupLister interface.
type operatorGroupLister struct {
- listers.ResourceIndexer[*v1.OperatorGroup]
+ listers.ResourceIndexer[*operatorsv1.OperatorGroup]
}
// NewOperatorGroupLister returns a new OperatorGroupLister.
func NewOperatorGroupLister(indexer cache.Indexer) OperatorGroupLister {
- return &operatorGroupLister{listers.New[*v1.OperatorGroup](indexer, v1.Resource("operatorgroup"))}
+ return &operatorGroupLister{listers.New[*operatorsv1.OperatorGroup](indexer, operatorsv1.Resource("operatorgroup"))}
}
// OperatorGroups returns an object that can list and get OperatorGroups.
func (s *operatorGroupLister) OperatorGroups(namespace string) OperatorGroupNamespaceLister {
- return operatorGroupNamespaceLister{listers.NewNamespaced[*v1.OperatorGroup](s.ResourceIndexer, namespace)}
+ return operatorGroupNamespaceLister{listers.NewNamespaced[*operatorsv1.OperatorGroup](s.ResourceIndexer, namespace)}
}
// OperatorGroupNamespaceLister helps list and get OperatorGroups.
@@ -56,15 +56,15 @@ func (s *operatorGroupLister) OperatorGroups(namespace string) OperatorGroupName
type OperatorGroupNamespaceLister interface {
// List lists all OperatorGroups in the indexer for a given namespace.
// Objects returned here must be treated as read-only.
- List(selector labels.Selector) (ret []*v1.OperatorGroup, err error)
+ List(selector labels.Selector) (ret []*operatorsv1.OperatorGroup, err error)
// Get retrieves the OperatorGroup from the indexer for a given namespace and name.
// Objects returned here must be treated as read-only.
- Get(name string) (*v1.OperatorGroup, error)
+ Get(name string) (*operatorsv1.OperatorGroup, error)
OperatorGroupNamespaceListerExpansion
}
// operatorGroupNamespaceLister implements the OperatorGroupNamespaceLister
// interface.
type operatorGroupNamespaceLister struct {
- listers.ResourceIndexer[*v1.OperatorGroup]
+ listers.ResourceIndexer[*operatorsv1.OperatorGroup]
}
diff --git a/staging/operator-lifecycle-manager/pkg/api/client/listers/operators/v1alpha1/catalogsource.go b/staging/operator-lifecycle-manager/pkg/api/client/listers/operators/v1alpha1/catalogsource.go
index 2467671dc1..aec5597906 100644
--- a/staging/operator-lifecycle-manager/pkg/api/client/listers/operators/v1alpha1/catalogsource.go
+++ b/staging/operator-lifecycle-manager/pkg/api/client/listers/operators/v1alpha1/catalogsource.go
@@ -19,10 +19,10 @@ limitations under the License.
package v1alpha1
import (
- v1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1"
- "k8s.io/apimachinery/pkg/labels"
- "k8s.io/client-go/listers"
- "k8s.io/client-go/tools/cache"
+ operatorsv1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1"
+ labels "k8s.io/apimachinery/pkg/labels"
+ listers "k8s.io/client-go/listers"
+ cache "k8s.io/client-go/tools/cache"
)
// CatalogSourceLister helps list CatalogSources.
@@ -30,7 +30,7 @@ import (
type CatalogSourceLister interface {
// List lists all CatalogSources in the indexer.
// Objects returned here must be treated as read-only.
- List(selector labels.Selector) (ret []*v1alpha1.CatalogSource, err error)
+ List(selector labels.Selector) (ret []*operatorsv1alpha1.CatalogSource, err error)
// CatalogSources returns an object that can list and get CatalogSources.
CatalogSources(namespace string) CatalogSourceNamespaceLister
CatalogSourceListerExpansion
@@ -38,17 +38,17 @@ type CatalogSourceLister interface {
// catalogSourceLister implements the CatalogSourceLister interface.
type catalogSourceLister struct {
- listers.ResourceIndexer[*v1alpha1.CatalogSource]
+ listers.ResourceIndexer[*operatorsv1alpha1.CatalogSource]
}
// NewCatalogSourceLister returns a new CatalogSourceLister.
func NewCatalogSourceLister(indexer cache.Indexer) CatalogSourceLister {
- return &catalogSourceLister{listers.New[*v1alpha1.CatalogSource](indexer, v1alpha1.Resource("catalogsource"))}
+ return &catalogSourceLister{listers.New[*operatorsv1alpha1.CatalogSource](indexer, operatorsv1alpha1.Resource("catalogsource"))}
}
// CatalogSources returns an object that can list and get CatalogSources.
func (s *catalogSourceLister) CatalogSources(namespace string) CatalogSourceNamespaceLister {
- return catalogSourceNamespaceLister{listers.NewNamespaced[*v1alpha1.CatalogSource](s.ResourceIndexer, namespace)}
+ return catalogSourceNamespaceLister{listers.NewNamespaced[*operatorsv1alpha1.CatalogSource](s.ResourceIndexer, namespace)}
}
// CatalogSourceNamespaceLister helps list and get CatalogSources.
@@ -56,15 +56,15 @@ func (s *catalogSourceLister) CatalogSources(namespace string) CatalogSourceName
type CatalogSourceNamespaceLister interface {
// List lists all CatalogSources in the indexer for a given namespace.
// Objects returned here must be treated as read-only.
- List(selector labels.Selector) (ret []*v1alpha1.CatalogSource, err error)
+ List(selector labels.Selector) (ret []*operatorsv1alpha1.CatalogSource, err error)
// Get retrieves the CatalogSource from the indexer for a given namespace and name.
// Objects returned here must be treated as read-only.
- Get(name string) (*v1alpha1.CatalogSource, error)
+ Get(name string) (*operatorsv1alpha1.CatalogSource, error)
CatalogSourceNamespaceListerExpansion
}
// catalogSourceNamespaceLister implements the CatalogSourceNamespaceLister
// interface.
type catalogSourceNamespaceLister struct {
- listers.ResourceIndexer[*v1alpha1.CatalogSource]
+ listers.ResourceIndexer[*operatorsv1alpha1.CatalogSource]
}
diff --git a/staging/operator-lifecycle-manager/pkg/api/client/listers/operators/v1alpha1/clusterserviceversion.go b/staging/operator-lifecycle-manager/pkg/api/client/listers/operators/v1alpha1/clusterserviceversion.go
index 00c8827784..434ea83797 100644
--- a/staging/operator-lifecycle-manager/pkg/api/client/listers/operators/v1alpha1/clusterserviceversion.go
+++ b/staging/operator-lifecycle-manager/pkg/api/client/listers/operators/v1alpha1/clusterserviceversion.go
@@ -19,10 +19,10 @@ limitations under the License.
package v1alpha1
import (
- v1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1"
- "k8s.io/apimachinery/pkg/labels"
- "k8s.io/client-go/listers"
- "k8s.io/client-go/tools/cache"
+ operatorsv1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1"
+ labels "k8s.io/apimachinery/pkg/labels"
+ listers "k8s.io/client-go/listers"
+ cache "k8s.io/client-go/tools/cache"
)
// ClusterServiceVersionLister helps list ClusterServiceVersions.
@@ -30,7 +30,7 @@ import (
type ClusterServiceVersionLister interface {
// List lists all ClusterServiceVersions in the indexer.
// Objects returned here must be treated as read-only.
- List(selector labels.Selector) (ret []*v1alpha1.ClusterServiceVersion, err error)
+ List(selector labels.Selector) (ret []*operatorsv1alpha1.ClusterServiceVersion, err error)
// ClusterServiceVersions returns an object that can list and get ClusterServiceVersions.
ClusterServiceVersions(namespace string) ClusterServiceVersionNamespaceLister
ClusterServiceVersionListerExpansion
@@ -38,17 +38,17 @@ type ClusterServiceVersionLister interface {
// clusterServiceVersionLister implements the ClusterServiceVersionLister interface.
type clusterServiceVersionLister struct {
- listers.ResourceIndexer[*v1alpha1.ClusterServiceVersion]
+ listers.ResourceIndexer[*operatorsv1alpha1.ClusterServiceVersion]
}
// NewClusterServiceVersionLister returns a new ClusterServiceVersionLister.
func NewClusterServiceVersionLister(indexer cache.Indexer) ClusterServiceVersionLister {
- return &clusterServiceVersionLister{listers.New[*v1alpha1.ClusterServiceVersion](indexer, v1alpha1.Resource("clusterserviceversion"))}
+ return &clusterServiceVersionLister{listers.New[*operatorsv1alpha1.ClusterServiceVersion](indexer, operatorsv1alpha1.Resource("clusterserviceversion"))}
}
// ClusterServiceVersions returns an object that can list and get ClusterServiceVersions.
func (s *clusterServiceVersionLister) ClusterServiceVersions(namespace string) ClusterServiceVersionNamespaceLister {
- return clusterServiceVersionNamespaceLister{listers.NewNamespaced[*v1alpha1.ClusterServiceVersion](s.ResourceIndexer, namespace)}
+ return clusterServiceVersionNamespaceLister{listers.NewNamespaced[*operatorsv1alpha1.ClusterServiceVersion](s.ResourceIndexer, namespace)}
}
// ClusterServiceVersionNamespaceLister helps list and get ClusterServiceVersions.
@@ -56,15 +56,15 @@ func (s *clusterServiceVersionLister) ClusterServiceVersions(namespace string) C
type ClusterServiceVersionNamespaceLister interface {
// List lists all ClusterServiceVersions in the indexer for a given namespace.
// Objects returned here must be treated as read-only.
- List(selector labels.Selector) (ret []*v1alpha1.ClusterServiceVersion, err error)
+ List(selector labels.Selector) (ret []*operatorsv1alpha1.ClusterServiceVersion, err error)
// Get retrieves the ClusterServiceVersion from the indexer for a given namespace and name.
// Objects returned here must be treated as read-only.
- Get(name string) (*v1alpha1.ClusterServiceVersion, error)
+ Get(name string) (*operatorsv1alpha1.ClusterServiceVersion, error)
ClusterServiceVersionNamespaceListerExpansion
}
// clusterServiceVersionNamespaceLister implements the ClusterServiceVersionNamespaceLister
// interface.
type clusterServiceVersionNamespaceLister struct {
- listers.ResourceIndexer[*v1alpha1.ClusterServiceVersion]
+ listers.ResourceIndexer[*operatorsv1alpha1.ClusterServiceVersion]
}
diff --git a/staging/operator-lifecycle-manager/pkg/api/client/listers/operators/v1alpha1/installplan.go b/staging/operator-lifecycle-manager/pkg/api/client/listers/operators/v1alpha1/installplan.go
index 2c2eaf4397..1f586e1a9a 100644
--- a/staging/operator-lifecycle-manager/pkg/api/client/listers/operators/v1alpha1/installplan.go
+++ b/staging/operator-lifecycle-manager/pkg/api/client/listers/operators/v1alpha1/installplan.go
@@ -19,10 +19,10 @@ limitations under the License.
package v1alpha1
import (
- v1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1"
- "k8s.io/apimachinery/pkg/labels"
- "k8s.io/client-go/listers"
- "k8s.io/client-go/tools/cache"
+ operatorsv1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1"
+ labels "k8s.io/apimachinery/pkg/labels"
+ listers "k8s.io/client-go/listers"
+ cache "k8s.io/client-go/tools/cache"
)
// InstallPlanLister helps list InstallPlans.
@@ -30,7 +30,7 @@ import (
type InstallPlanLister interface {
// List lists all InstallPlans in the indexer.
// Objects returned here must be treated as read-only.
- List(selector labels.Selector) (ret []*v1alpha1.InstallPlan, err error)
+ List(selector labels.Selector) (ret []*operatorsv1alpha1.InstallPlan, err error)
// InstallPlans returns an object that can list and get InstallPlans.
InstallPlans(namespace string) InstallPlanNamespaceLister
InstallPlanListerExpansion
@@ -38,17 +38,17 @@ type InstallPlanLister interface {
// installPlanLister implements the InstallPlanLister interface.
type installPlanLister struct {
- listers.ResourceIndexer[*v1alpha1.InstallPlan]
+ listers.ResourceIndexer[*operatorsv1alpha1.InstallPlan]
}
// NewInstallPlanLister returns a new InstallPlanLister.
func NewInstallPlanLister(indexer cache.Indexer) InstallPlanLister {
- return &installPlanLister{listers.New[*v1alpha1.InstallPlan](indexer, v1alpha1.Resource("installplan"))}
+ return &installPlanLister{listers.New[*operatorsv1alpha1.InstallPlan](indexer, operatorsv1alpha1.Resource("installplan"))}
}
// InstallPlans returns an object that can list and get InstallPlans.
func (s *installPlanLister) InstallPlans(namespace string) InstallPlanNamespaceLister {
- return installPlanNamespaceLister{listers.NewNamespaced[*v1alpha1.InstallPlan](s.ResourceIndexer, namespace)}
+ return installPlanNamespaceLister{listers.NewNamespaced[*operatorsv1alpha1.InstallPlan](s.ResourceIndexer, namespace)}
}
// InstallPlanNamespaceLister helps list and get InstallPlans.
@@ -56,15 +56,15 @@ func (s *installPlanLister) InstallPlans(namespace string) InstallPlanNamespaceL
type InstallPlanNamespaceLister interface {
// List lists all InstallPlans in the indexer for a given namespace.
// Objects returned here must be treated as read-only.
- List(selector labels.Selector) (ret []*v1alpha1.InstallPlan, err error)
+ List(selector labels.Selector) (ret []*operatorsv1alpha1.InstallPlan, err error)
// Get retrieves the InstallPlan from the indexer for a given namespace and name.
// Objects returned here must be treated as read-only.
- Get(name string) (*v1alpha1.InstallPlan, error)
+ Get(name string) (*operatorsv1alpha1.InstallPlan, error)
InstallPlanNamespaceListerExpansion
}
// installPlanNamespaceLister implements the InstallPlanNamespaceLister
// interface.
type installPlanNamespaceLister struct {
- listers.ResourceIndexer[*v1alpha1.InstallPlan]
+ listers.ResourceIndexer[*operatorsv1alpha1.InstallPlan]
}
diff --git a/staging/operator-lifecycle-manager/pkg/api/client/listers/operators/v1alpha1/subscription.go b/staging/operator-lifecycle-manager/pkg/api/client/listers/operators/v1alpha1/subscription.go
index 5a7f100d06..98ee800f82 100644
--- a/staging/operator-lifecycle-manager/pkg/api/client/listers/operators/v1alpha1/subscription.go
+++ b/staging/operator-lifecycle-manager/pkg/api/client/listers/operators/v1alpha1/subscription.go
@@ -19,10 +19,10 @@ limitations under the License.
package v1alpha1
import (
- v1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1"
- "k8s.io/apimachinery/pkg/labels"
- "k8s.io/client-go/listers"
- "k8s.io/client-go/tools/cache"
+ operatorsv1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1"
+ labels "k8s.io/apimachinery/pkg/labels"
+ listers "k8s.io/client-go/listers"
+ cache "k8s.io/client-go/tools/cache"
)
// SubscriptionLister helps list Subscriptions.
@@ -30,7 +30,7 @@ import (
type SubscriptionLister interface {
// List lists all Subscriptions in the indexer.
// Objects returned here must be treated as read-only.
- List(selector labels.Selector) (ret []*v1alpha1.Subscription, err error)
+ List(selector labels.Selector) (ret []*operatorsv1alpha1.Subscription, err error)
// Subscriptions returns an object that can list and get Subscriptions.
Subscriptions(namespace string) SubscriptionNamespaceLister
SubscriptionListerExpansion
@@ -38,17 +38,17 @@ type SubscriptionLister interface {
// subscriptionLister implements the SubscriptionLister interface.
type subscriptionLister struct {
- listers.ResourceIndexer[*v1alpha1.Subscription]
+ listers.ResourceIndexer[*operatorsv1alpha1.Subscription]
}
// NewSubscriptionLister returns a new SubscriptionLister.
func NewSubscriptionLister(indexer cache.Indexer) SubscriptionLister {
- return &subscriptionLister{listers.New[*v1alpha1.Subscription](indexer, v1alpha1.Resource("subscription"))}
+ return &subscriptionLister{listers.New[*operatorsv1alpha1.Subscription](indexer, operatorsv1alpha1.Resource("subscription"))}
}
// Subscriptions returns an object that can list and get Subscriptions.
func (s *subscriptionLister) Subscriptions(namespace string) SubscriptionNamespaceLister {
- return subscriptionNamespaceLister{listers.NewNamespaced[*v1alpha1.Subscription](s.ResourceIndexer, namespace)}
+ return subscriptionNamespaceLister{listers.NewNamespaced[*operatorsv1alpha1.Subscription](s.ResourceIndexer, namespace)}
}
// SubscriptionNamespaceLister helps list and get Subscriptions.
@@ -56,15 +56,15 @@ func (s *subscriptionLister) Subscriptions(namespace string) SubscriptionNamespa
type SubscriptionNamespaceLister interface {
// List lists all Subscriptions in the indexer for a given namespace.
// Objects returned here must be treated as read-only.
- List(selector labels.Selector) (ret []*v1alpha1.Subscription, err error)
+ List(selector labels.Selector) (ret []*operatorsv1alpha1.Subscription, err error)
// Get retrieves the Subscription from the indexer for a given namespace and name.
// Objects returned here must be treated as read-only.
- Get(name string) (*v1alpha1.Subscription, error)
+ Get(name string) (*operatorsv1alpha1.Subscription, error)
SubscriptionNamespaceListerExpansion
}
// subscriptionNamespaceLister implements the SubscriptionNamespaceLister
// interface.
type subscriptionNamespaceLister struct {
- listers.ResourceIndexer[*v1alpha1.Subscription]
+ listers.ResourceIndexer[*operatorsv1alpha1.Subscription]
}
diff --git a/staging/operator-lifecycle-manager/pkg/api/client/listers/operators/v1alpha2/operatorgroup.go b/staging/operator-lifecycle-manager/pkg/api/client/listers/operators/v1alpha2/operatorgroup.go
index 8030cf607a..e96a771f45 100644
--- a/staging/operator-lifecycle-manager/pkg/api/client/listers/operators/v1alpha2/operatorgroup.go
+++ b/staging/operator-lifecycle-manager/pkg/api/client/listers/operators/v1alpha2/operatorgroup.go
@@ -19,10 +19,10 @@ limitations under the License.
package v1alpha2
import (
- v1alpha2 "github.com/operator-framework/api/pkg/operators/v1alpha2"
- "k8s.io/apimachinery/pkg/labels"
- "k8s.io/client-go/listers"
- "k8s.io/client-go/tools/cache"
+ operatorsv1alpha2 "github.com/operator-framework/api/pkg/operators/v1alpha2"
+ labels "k8s.io/apimachinery/pkg/labels"
+ listers "k8s.io/client-go/listers"
+ cache "k8s.io/client-go/tools/cache"
)
// OperatorGroupLister helps list OperatorGroups.
@@ -30,7 +30,7 @@ import (
type OperatorGroupLister interface {
// List lists all OperatorGroups in the indexer.
// Objects returned here must be treated as read-only.
- List(selector labels.Selector) (ret []*v1alpha2.OperatorGroup, err error)
+ List(selector labels.Selector) (ret []*operatorsv1alpha2.OperatorGroup, err error)
// OperatorGroups returns an object that can list and get OperatorGroups.
OperatorGroups(namespace string) OperatorGroupNamespaceLister
OperatorGroupListerExpansion
@@ -38,17 +38,17 @@ type OperatorGroupLister interface {
// operatorGroupLister implements the OperatorGroupLister interface.
type operatorGroupLister struct {
- listers.ResourceIndexer[*v1alpha2.OperatorGroup]
+ listers.ResourceIndexer[*operatorsv1alpha2.OperatorGroup]
}
// NewOperatorGroupLister returns a new OperatorGroupLister.
func NewOperatorGroupLister(indexer cache.Indexer) OperatorGroupLister {
- return &operatorGroupLister{listers.New[*v1alpha2.OperatorGroup](indexer, v1alpha2.Resource("operatorgroup"))}
+ return &operatorGroupLister{listers.New[*operatorsv1alpha2.OperatorGroup](indexer, operatorsv1alpha2.Resource("operatorgroup"))}
}
// OperatorGroups returns an object that can list and get OperatorGroups.
func (s *operatorGroupLister) OperatorGroups(namespace string) OperatorGroupNamespaceLister {
- return operatorGroupNamespaceLister{listers.NewNamespaced[*v1alpha2.OperatorGroup](s.ResourceIndexer, namespace)}
+ return operatorGroupNamespaceLister{listers.NewNamespaced[*operatorsv1alpha2.OperatorGroup](s.ResourceIndexer, namespace)}
}
// OperatorGroupNamespaceLister helps list and get OperatorGroups.
@@ -56,15 +56,15 @@ func (s *operatorGroupLister) OperatorGroups(namespace string) OperatorGroupName
type OperatorGroupNamespaceLister interface {
// List lists all OperatorGroups in the indexer for a given namespace.
// Objects returned here must be treated as read-only.
- List(selector labels.Selector) (ret []*v1alpha2.OperatorGroup, err error)
+ List(selector labels.Selector) (ret []*operatorsv1alpha2.OperatorGroup, err error)
// Get retrieves the OperatorGroup from the indexer for a given namespace and name.
// Objects returned here must be treated as read-only.
- Get(name string) (*v1alpha2.OperatorGroup, error)
+ Get(name string) (*operatorsv1alpha2.OperatorGroup, error)
OperatorGroupNamespaceListerExpansion
}
// operatorGroupNamespaceLister implements the OperatorGroupNamespaceLister
// interface.
type operatorGroupNamespaceLister struct {
- listers.ResourceIndexer[*v1alpha2.OperatorGroup]
+ listers.ResourceIndexer[*operatorsv1alpha2.OperatorGroup]
}
diff --git a/staging/operator-lifecycle-manager/pkg/api/client/listers/operators/v2/operatorcondition.go b/staging/operator-lifecycle-manager/pkg/api/client/listers/operators/v2/operatorcondition.go
index af02255e26..64985ea6ba 100644
--- a/staging/operator-lifecycle-manager/pkg/api/client/listers/operators/v2/operatorcondition.go
+++ b/staging/operator-lifecycle-manager/pkg/api/client/listers/operators/v2/operatorcondition.go
@@ -19,10 +19,10 @@ limitations under the License.
package v2
import (
- v2 "github.com/operator-framework/api/pkg/operators/v2"
- "k8s.io/apimachinery/pkg/labels"
- "k8s.io/client-go/listers"
- "k8s.io/client-go/tools/cache"
+ operatorsv2 "github.com/operator-framework/api/pkg/operators/v2"
+ labels "k8s.io/apimachinery/pkg/labels"
+ listers "k8s.io/client-go/listers"
+ cache "k8s.io/client-go/tools/cache"
)
// OperatorConditionLister helps list OperatorConditions.
@@ -30,7 +30,7 @@ import (
type OperatorConditionLister interface {
// List lists all OperatorConditions in the indexer.
// Objects returned here must be treated as read-only.
- List(selector labels.Selector) (ret []*v2.OperatorCondition, err error)
+ List(selector labels.Selector) (ret []*operatorsv2.OperatorCondition, err error)
// OperatorConditions returns an object that can list and get OperatorConditions.
OperatorConditions(namespace string) OperatorConditionNamespaceLister
OperatorConditionListerExpansion
@@ -38,17 +38,17 @@ type OperatorConditionLister interface {
// operatorConditionLister implements the OperatorConditionLister interface.
type operatorConditionLister struct {
- listers.ResourceIndexer[*v2.OperatorCondition]
+ listers.ResourceIndexer[*operatorsv2.OperatorCondition]
}
// NewOperatorConditionLister returns a new OperatorConditionLister.
func NewOperatorConditionLister(indexer cache.Indexer) OperatorConditionLister {
- return &operatorConditionLister{listers.New[*v2.OperatorCondition](indexer, v2.Resource("operatorcondition"))}
+ return &operatorConditionLister{listers.New[*operatorsv2.OperatorCondition](indexer, operatorsv2.Resource("operatorcondition"))}
}
// OperatorConditions returns an object that can list and get OperatorConditions.
func (s *operatorConditionLister) OperatorConditions(namespace string) OperatorConditionNamespaceLister {
- return operatorConditionNamespaceLister{listers.NewNamespaced[*v2.OperatorCondition](s.ResourceIndexer, namespace)}
+ return operatorConditionNamespaceLister{listers.NewNamespaced[*operatorsv2.OperatorCondition](s.ResourceIndexer, namespace)}
}
// OperatorConditionNamespaceLister helps list and get OperatorConditions.
@@ -56,15 +56,15 @@ func (s *operatorConditionLister) OperatorConditions(namespace string) OperatorC
type OperatorConditionNamespaceLister interface {
// List lists all OperatorConditions in the indexer for a given namespace.
// Objects returned here must be treated as read-only.
- List(selector labels.Selector) (ret []*v2.OperatorCondition, err error)
+ List(selector labels.Selector) (ret []*operatorsv2.OperatorCondition, err error)
// Get retrieves the OperatorCondition from the indexer for a given namespace and name.
// Objects returned here must be treated as read-only.
- Get(name string) (*v2.OperatorCondition, error)
+ Get(name string) (*operatorsv2.OperatorCondition, error)
OperatorConditionNamespaceListerExpansion
}
// operatorConditionNamespaceLister implements the OperatorConditionNamespaceLister
// interface.
type operatorConditionNamespaceLister struct {
- listers.ResourceIndexer[*v2.OperatorCondition]
+ listers.ResourceIndexer[*operatorsv2.OperatorCondition]
}
diff --git a/staging/operator-lifecycle-manager/pkg/controller/operators/catalog/operator.go b/staging/operator-lifecycle-manager/pkg/controller/operators/catalog/operator.go
index ebdd6313a4..09c28a7319 100644
--- a/staging/operator-lifecycle-manager/pkg/controller/operators/catalog/operator.go
+++ b/staging/operator-lifecycle-manager/pkg/controller/operators/catalog/operator.go
@@ -149,7 +149,7 @@ func NewOperator(ctx context.Context, kubeconfigPath string, clock utilclock.Clo
}
// create a config that validates we're creating objects with labels
- validatingConfig := validatingroundtripper.Wrap(config)
+ validatingConfig := validatingroundtripper.Wrap(config, scheme)
// Create a new client for dynamic types (CRs)
dynamicClient, err := dynamic.NewForConfig(validatingConfig)
diff --git a/staging/operator-lifecycle-manager/pkg/controller/operators/validatingroundtripper/validating_round_tripper.go b/staging/operator-lifecycle-manager/pkg/controller/operators/validatingroundtripper/validating_round_tripper.go
index c9c1cbd395..333bc7740e 100644
--- a/staging/operator-lifecycle-manager/pkg/controller/operators/validatingroundtripper/validating_round_tripper.go
+++ b/staging/operator-lifecycle-manager/pkg/controller/operators/validatingroundtripper/validating_round_tripper.go
@@ -2,9 +2,13 @@ package validatingroundtripper
import (
"fmt"
+ "io"
"net/http"
"os"
+ "k8s.io/apimachinery/pkg/runtime"
+ "k8s.io/apimachinery/pkg/runtime/serializer"
+
"github.com/operator-framework/operator-lifecycle-manager/pkg/controller/install"
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
"k8s.io/apimachinery/pkg/util/yaml"
@@ -13,23 +17,69 @@ import (
type validatingRoundTripper struct {
delegate http.RoundTripper
+ codecs serializer.CodecFactory
+}
+
+func (rt *validatingRoundTripper) decodeYAMLOrJSON(body io.Reader) (*unstructured.Unstructured, error) {
+ dec := yaml.NewYAMLOrJSONDecoder(body, 10)
+ unstructuredObject := &unstructured.Unstructured{}
+ if err := dec.Decode(unstructuredObject); err != nil {
+ return nil, fmt.Errorf("error decoding yaml/json object to an unstructured object: %w", err)
+ }
+ return unstructuredObject, nil
+}
+
+func (rt *validatingRoundTripper) decodeProtobuf(body io.Reader) (*unstructured.Unstructured, error) {
+ data, err := io.ReadAll(body)
+ if err != nil {
+ return nil, fmt.Errorf("failed to read request body: %w", err)
+ }
+
+ decoder := rt.codecs.UniversalDeserializer()
+ obj, _, err := decoder.Decode(data, nil, nil)
+ if err != nil {
+ return nil, fmt.Errorf("failed to decode protobuf data: %w", err)
+ }
+
+ unstructuredObj, err := runtime.DefaultUnstructuredConverter.ToUnstructured(obj)
+ if err != nil {
+ return nil, fmt.Errorf("failed to convert object to unstructured: %w", err)
+ }
+
+ return &unstructured.Unstructured{Object: unstructuredObj}, nil
+}
+
+func (rt *validatingRoundTripper) decodeRequestBody(req *http.Request) (*unstructured.Unstructured, error) {
+ b, err := req.GetBody()
+ if err != nil {
+ panic(fmt.Errorf("failed to get request body: %w", err))
+ }
+ defer b.Close()
+
+ switch req.Header.Get("Content-Type") {
+ case "application/vnd.kubernetes.protobuf":
+ return rt.decodeProtobuf(b)
+ default:
+ return rt.decodeYAMLOrJSON(b)
+ }
}
func (rt *validatingRoundTripper) RoundTrip(req *http.Request) (*http.Response, error) {
if req.Method == "POST" {
- b, err := req.GetBody()
+ unstructuredObject, err := rt.decodeRequestBody(req)
+
if err != nil {
- panic(err)
- }
- dec := yaml.NewYAMLOrJSONDecoder(b, 10)
- unstructuredObject := &unstructured.Unstructured{}
- if err := dec.Decode(unstructuredObject); err != nil {
- panic(fmt.Errorf("error decoding object to an unstructured object: %w", err))
+ return nil, err
}
+
gvk := unstructuredObject.GroupVersionKind()
if gvk.Kind != "Event" {
- if labels := unstructuredObject.GetLabels(); labels[install.OLMManagedLabelKey] != install.OLMManagedLabelValue {
- panic(fmt.Errorf("%s.%s/%v %s/%s does not have labels[%s]=%s", gvk.Kind, gvk.Group, gvk.Version, unstructuredObject.GetNamespace(), unstructuredObject.GetName(), install.OLMManagedLabelKey, install.OLMManagedLabelValue))
+ labels := unstructuredObject.GetLabels()
+ if labels[install.OLMManagedLabelKey] != install.OLMManagedLabelValue {
+ panic(fmt.Errorf("%s.%s/%v %s/%s does not have labels[%s]=%s",
+ gvk.Kind, gvk.Group, gvk.Version,
+ unstructuredObject.GetNamespace(), unstructuredObject.GetName(),
+ install.OLMManagedLabelKey, install.OLMManagedLabelValue))
}
}
}
@@ -40,14 +90,17 @@ var _ http.RoundTripper = (*validatingRoundTripper)(nil)
// Wrap is meant to be used in developer environments and CI to make it easy to find places
// where we accidentally create Kubernetes objects without our management label.
-func Wrap(cfg *rest.Config) *rest.Config {
+func Wrap(cfg *rest.Config, scheme *runtime.Scheme) *rest.Config {
if _, set := os.LookupEnv("CI"); !set {
return cfg
}
cfgCopy := *cfg
cfgCopy.Wrap(func(rt http.RoundTripper) http.RoundTripper {
- return &validatingRoundTripper{delegate: rt}
+ return &validatingRoundTripper{
+ delegate: rt,
+ codecs: serializer.NewCodecFactory(scheme),
+ }
})
return &cfgCopy
}
diff --git a/staging/operator-lifecycle-manager/pkg/lib/operatorclient/client.go b/staging/operator-lifecycle-manager/pkg/lib/operatorclient/client.go
index cc89369fb7..b53d2da7d4 100644
--- a/staging/operator-lifecycle-manager/pkg/lib/operatorclient/client.go
+++ b/staging/operator-lifecycle-manager/pkg/lib/operatorclient/client.go
@@ -172,25 +172,25 @@ func NewClientFromConfig(kubeconfig string, logger *logrus.Logger) ClientInterfa
}
func NewClientFromRestConfig(config *rest.Config) (client ClientInterface, err error) {
- kubernetes, err := kubernetes.NewForConfig(config)
+ k8s, err := kubernetes.NewForConfig(config)
if err != nil {
return
}
- apiextensions, err := apiextensions.NewForConfig(config)
+ apiext, err := apiextensions.NewForConfig(config)
if err != nil {
return
}
- apiregistration, err := apiregistration.NewForConfig(config)
+ apireg, err := apiregistration.NewForConfig(config)
if err != nil {
return
}
client = &Client{
- kubernetes,
- apiextensions,
- apiregistration,
+ k8s,
+ apiext,
+ apireg,
}
return
diff --git a/staging/operator-lifecycle-manager/pkg/package-server/apiserver/config.go b/staging/operator-lifecycle-manager/pkg/package-server/apiserver/config.go
index 00f9457cce..05dd106ab9 100644
--- a/staging/operator-lifecycle-manager/pkg/package-server/apiserver/config.go
+++ b/staging/operator-lifecycle-manager/pkg/package-server/apiserver/config.go
@@ -19,8 +19,8 @@ import (
openapinamer "k8s.io/apiserver/pkg/endpoints/openapi"
genericapiserver "k8s.io/apiserver/pkg/server"
- utilversion "k8s.io/apiserver/pkg/util/version"
"k8s.io/client-go/informers"
+ utilversion "k8s.io/component-base/version"
"github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/apiserver/generic"
generatedopenapi "github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/client/openapi"
diff --git a/staging/operator-lifecycle-manager/pkg/package-server/client/clientset/internalversion/clientset.go b/staging/operator-lifecycle-manager/pkg/package-server/client/clientset/internalversion/clientset.go
index c356d5f132..940c81f4ae 100644
--- a/staging/operator-lifecycle-manager/pkg/package-server/client/clientset/internalversion/clientset.go
+++ b/staging/operator-lifecycle-manager/pkg/package-server/client/clientset/internalversion/clientset.go
@@ -19,8 +19,8 @@ limitations under the License.
package internalversion
import (
- "fmt"
- "net/http"
+ fmt "fmt"
+ http "net/http"
packagesinternalversion "github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/client/clientset/internalversion/typed/operators/internalversion"
discovery "k8s.io/client-go/discovery"
diff --git a/staging/operator-lifecycle-manager/pkg/package-server/client/clientset/internalversion/typed/operators/internalversion/fake/fake_operators_client.go b/staging/operator-lifecycle-manager/pkg/package-server/client/clientset/internalversion/typed/operators/internalversion/fake/fake_operators_client.go
index 0da3d0a1c2..76f0cb06bd 100644
--- a/staging/operator-lifecycle-manager/pkg/package-server/client/clientset/internalversion/typed/operators/internalversion/fake/fake_operators_client.go
+++ b/staging/operator-lifecycle-manager/pkg/package-server/client/clientset/internalversion/typed/operators/internalversion/fake/fake_operators_client.go
@@ -29,7 +29,7 @@ type FakePackages struct {
}
func (c *FakePackages) PackageManifests(namespace string) internalversion.PackageManifestInterface {
- return &FakePackageManifests{c, namespace}
+ return newFakePackageManifests(c, namespace)
}
// RESTClient returns a RESTClient that is used to communicate
diff --git a/staging/operator-lifecycle-manager/pkg/package-server/client/clientset/internalversion/typed/operators/internalversion/fake/fake_packagemanifest.go b/staging/operator-lifecycle-manager/pkg/package-server/client/clientset/internalversion/typed/operators/internalversion/fake/fake_packagemanifest.go
index fe93b29d41..7409b79e98 100644
--- a/staging/operator-lifecycle-manager/pkg/package-server/client/clientset/internalversion/typed/operators/internalversion/fake/fake_packagemanifest.go
+++ b/staging/operator-lifecycle-manager/pkg/package-server/client/clientset/internalversion/typed/operators/internalversion/fake/fake_packagemanifest.go
@@ -19,129 +19,34 @@ limitations under the License.
package fake
import (
- "context"
-
operators "github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/apis/operators"
- v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
- labels "k8s.io/apimachinery/pkg/labels"
- types "k8s.io/apimachinery/pkg/types"
- watch "k8s.io/apimachinery/pkg/watch"
- testing "k8s.io/client-go/testing"
+ internalversion "github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/client/clientset/internalversion/typed/operators/internalversion"
+ gentype "k8s.io/client-go/gentype"
)
-// FakePackageManifests implements PackageManifestInterface
-type FakePackageManifests struct {
+// fakePackageManifests implements PackageManifestInterface
+type fakePackageManifests struct {
+ *gentype.FakeClientWithList[*operators.PackageManifest, *operators.PackageManifestList]
Fake *FakePackages
- ns string
-}
-
-var packagemanifestsResource = operators.SchemeGroupVersion.WithResource("packagemanifests")
-
-var packagemanifestsKind = operators.SchemeGroupVersion.WithKind("PackageManifest")
-
-// Get takes name of the packageManifest, and returns the corresponding packageManifest object, and an error if there is any.
-func (c *FakePackageManifests) Get(ctx context.Context, name string, options v1.GetOptions) (result *operators.PackageManifest, err error) {
- emptyResult := &operators.PackageManifest{}
- obj, err := c.Fake.
- Invokes(testing.NewGetActionWithOptions(packagemanifestsResource, c.ns, name, options), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*operators.PackageManifest), err
-}
-
-// List takes label and field selectors, and returns the list of PackageManifests that match those selectors.
-func (c *FakePackageManifests) List(ctx context.Context, opts v1.ListOptions) (result *operators.PackageManifestList, err error) {
- emptyResult := &operators.PackageManifestList{}
- obj, err := c.Fake.
- Invokes(testing.NewListActionWithOptions(packagemanifestsResource, packagemanifestsKind, c.ns, opts), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
-
- label, _, _ := testing.ExtractFromListOptions(opts)
- if label == nil {
- label = labels.Everything()
- }
- list := &operators.PackageManifestList{ListMeta: obj.(*operators.PackageManifestList).ListMeta}
- for _, item := range obj.(*operators.PackageManifestList).Items {
- if label.Matches(labels.Set(item.Labels)) {
- list.Items = append(list.Items, item)
- }
- }
- return list, err
-}
-
-// Watch returns a watch.Interface that watches the requested packageManifests.
-func (c *FakePackageManifests) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {
- return c.Fake.
- InvokesWatch(testing.NewWatchActionWithOptions(packagemanifestsResource, c.ns, opts))
-
-}
-
-// Create takes the representation of a packageManifest and creates it. Returns the server's representation of the packageManifest, and an error, if there is any.
-func (c *FakePackageManifests) Create(ctx context.Context, packageManifest *operators.PackageManifest, opts v1.CreateOptions) (result *operators.PackageManifest, err error) {
- emptyResult := &operators.PackageManifest{}
- obj, err := c.Fake.
- Invokes(testing.NewCreateActionWithOptions(packagemanifestsResource, c.ns, packageManifest, opts), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*operators.PackageManifest), err
-}
-
-// Update takes the representation of a packageManifest and updates it. Returns the server's representation of the packageManifest, and an error, if there is any.
-func (c *FakePackageManifests) Update(ctx context.Context, packageManifest *operators.PackageManifest, opts v1.UpdateOptions) (result *operators.PackageManifest, err error) {
- emptyResult := &operators.PackageManifest{}
- obj, err := c.Fake.
- Invokes(testing.NewUpdateActionWithOptions(packagemanifestsResource, c.ns, packageManifest, opts), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*operators.PackageManifest), err
-}
-
-// UpdateStatus was generated because the type contains a Status member.
-// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
-func (c *FakePackageManifests) UpdateStatus(ctx context.Context, packageManifest *operators.PackageManifest, opts v1.UpdateOptions) (result *operators.PackageManifest, err error) {
- emptyResult := &operators.PackageManifest{}
- obj, err := c.Fake.
- Invokes(testing.NewUpdateSubresourceActionWithOptions(packagemanifestsResource, "status", c.ns, packageManifest, opts), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*operators.PackageManifest), err
-}
-
-// Delete takes name of the packageManifest and deletes it. Returns an error if one occurs.
-func (c *FakePackageManifests) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {
- _, err := c.Fake.
- Invokes(testing.NewDeleteActionWithOptions(packagemanifestsResource, c.ns, name, opts), &operators.PackageManifest{})
-
- return err
}
-// DeleteCollection deletes a collection of objects.
-func (c *FakePackageManifests) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {
- action := testing.NewDeleteCollectionActionWithOptions(packagemanifestsResource, c.ns, opts, listOpts)
-
- _, err := c.Fake.Invokes(action, &operators.PackageManifestList{})
- return err
-}
-
-// Patch applies the patch and returns the patched packageManifest.
-func (c *FakePackageManifests) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *operators.PackageManifest, err error) {
- emptyResult := &operators.PackageManifest{}
- obj, err := c.Fake.
- Invokes(testing.NewPatchSubresourceActionWithOptions(packagemanifestsResource, c.ns, name, pt, data, opts, subresources...), emptyResult)
-
- if obj == nil {
- return emptyResult, err
+func newFakePackageManifests(fake *FakePackages, namespace string) internalversion.PackageManifestInterface {
+ return &fakePackageManifests{
+ gentype.NewFakeClientWithList[*operators.PackageManifest, *operators.PackageManifestList](
+ fake.Fake,
+ namespace,
+ operators.SchemeGroupVersion.WithResource("packagemanifests"),
+ operators.SchemeGroupVersion.WithKind("PackageManifest"),
+ func() *operators.PackageManifest { return &operators.PackageManifest{} },
+ func() *operators.PackageManifestList { return &operators.PackageManifestList{} },
+ func(dst, src *operators.PackageManifestList) { dst.ListMeta = src.ListMeta },
+ func(list *operators.PackageManifestList) []*operators.PackageManifest {
+ return gentype.ToPointerSlice(list.Items)
+ },
+ func(list *operators.PackageManifestList, items []*operators.PackageManifest) {
+ list.Items = gentype.FromPointerSlice(items)
+ },
+ ),
+ fake,
}
- return obj.(*operators.PackageManifest), err
}
diff --git a/staging/operator-lifecycle-manager/pkg/package-server/client/clientset/internalversion/typed/operators/internalversion/operators_client.go b/staging/operator-lifecycle-manager/pkg/package-server/client/clientset/internalversion/typed/operators/internalversion/operators_client.go
index 18aa110cce..addee5d7c2 100644
--- a/staging/operator-lifecycle-manager/pkg/package-server/client/clientset/internalversion/typed/operators/internalversion/operators_client.go
+++ b/staging/operator-lifecycle-manager/pkg/package-server/client/clientset/internalversion/typed/operators/internalversion/operators_client.go
@@ -19,9 +19,9 @@ limitations under the License.
package internalversion
import (
- "net/http"
+ http "net/http"
- "github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/client/clientset/internalversion/scheme"
+ scheme "github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/client/clientset/internalversion/scheme"
rest "k8s.io/client-go/rest"
)
@@ -92,7 +92,7 @@ func setConfigDefaults(config *rest.Config) error {
gv := scheme.Scheme.PrioritizedVersionsForGroup("packages.operators.coreos.com")[0]
config.GroupVersion = &gv
}
- config.NegotiatedSerializer = scheme.Codecs
+ config.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs)
if config.QPS == 0 {
config.QPS = 5
diff --git a/staging/operator-lifecycle-manager/pkg/package-server/client/clientset/internalversion/typed/operators/internalversion/packagemanifest.go b/staging/operator-lifecycle-manager/pkg/package-server/client/clientset/internalversion/typed/operators/internalversion/packagemanifest.go
index 18aaf7ab12..ef6aad79c3 100644
--- a/staging/operator-lifecycle-manager/pkg/package-server/client/clientset/internalversion/typed/operators/internalversion/packagemanifest.go
+++ b/staging/operator-lifecycle-manager/pkg/package-server/client/clientset/internalversion/typed/operators/internalversion/packagemanifest.go
@@ -19,7 +19,7 @@ limitations under the License.
package internalversion
import (
- "context"
+ context "context"
operators "github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/apis/operators"
scheme "github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/client/clientset/internalversion/scheme"
@@ -64,6 +64,7 @@ func newPackageManifests(c *PackagesClient, namespace string) *packageManifests
scheme.ParameterCodec,
namespace,
func() *operators.PackageManifest { return &operators.PackageManifest{} },
- func() *operators.PackageManifestList { return &operators.PackageManifestList{} }),
+ func() *operators.PackageManifestList { return &operators.PackageManifestList{} },
+ ),
}
}
diff --git a/staging/operator-lifecycle-manager/pkg/package-server/client/clientset/versioned/clientset.go b/staging/operator-lifecycle-manager/pkg/package-server/client/clientset/versioned/clientset.go
index 91adfb826d..c2d66bba5d 100644
--- a/staging/operator-lifecycle-manager/pkg/package-server/client/clientset/versioned/clientset.go
+++ b/staging/operator-lifecycle-manager/pkg/package-server/client/clientset/versioned/clientset.go
@@ -19,8 +19,8 @@ limitations under the License.
package versioned
import (
- "fmt"
- "net/http"
+ fmt "fmt"
+ http "net/http"
packagesv1 "github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/client/clientset/versioned/typed/operators/v1"
discovery "k8s.io/client-go/discovery"
diff --git a/staging/operator-lifecycle-manager/pkg/package-server/client/clientset/versioned/typed/operators/v1/fake/fake_operators_client.go b/staging/operator-lifecycle-manager/pkg/package-server/client/clientset/versioned/typed/operators/v1/fake/fake_operators_client.go
index ada09dd240..f02155fa57 100644
--- a/staging/operator-lifecycle-manager/pkg/package-server/client/clientset/versioned/typed/operators/v1/fake/fake_operators_client.go
+++ b/staging/operator-lifecycle-manager/pkg/package-server/client/clientset/versioned/typed/operators/v1/fake/fake_operators_client.go
@@ -29,7 +29,7 @@ type FakePackagesV1 struct {
}
func (c *FakePackagesV1) PackageManifests(namespace string) v1.PackageManifestInterface {
- return &FakePackageManifests{c, namespace}
+ return newFakePackageManifests(c, namespace)
}
// RESTClient returns a RESTClient that is used to communicate
diff --git a/staging/operator-lifecycle-manager/pkg/package-server/client/clientset/versioned/typed/operators/v1/fake/fake_packagemanifest.go b/staging/operator-lifecycle-manager/pkg/package-server/client/clientset/versioned/typed/operators/v1/fake/fake_packagemanifest.go
index 3563d58bb8..e797965686 100644
--- a/staging/operator-lifecycle-manager/pkg/package-server/client/clientset/versioned/typed/operators/v1/fake/fake_packagemanifest.go
+++ b/staging/operator-lifecycle-manager/pkg/package-server/client/clientset/versioned/typed/operators/v1/fake/fake_packagemanifest.go
@@ -19,129 +19,32 @@ limitations under the License.
package fake
import (
- "context"
-
v1 "github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/apis/operators/v1"
- metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
- labels "k8s.io/apimachinery/pkg/labels"
- types "k8s.io/apimachinery/pkg/types"
- watch "k8s.io/apimachinery/pkg/watch"
- testing "k8s.io/client-go/testing"
+ operatorsv1 "github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/client/clientset/versioned/typed/operators/v1"
+ gentype "k8s.io/client-go/gentype"
)
-// FakePackageManifests implements PackageManifestInterface
-type FakePackageManifests struct {
+// fakePackageManifests implements PackageManifestInterface
+type fakePackageManifests struct {
+ *gentype.FakeClientWithList[*v1.PackageManifest, *v1.PackageManifestList]
Fake *FakePackagesV1
- ns string
-}
-
-var packagemanifestsResource = v1.SchemeGroupVersion.WithResource("packagemanifests")
-
-var packagemanifestsKind = v1.SchemeGroupVersion.WithKind("PackageManifest")
-
-// Get takes name of the packageManifest, and returns the corresponding packageManifest object, and an error if there is any.
-func (c *FakePackageManifests) Get(ctx context.Context, name string, options metav1.GetOptions) (result *v1.PackageManifest, err error) {
- emptyResult := &v1.PackageManifest{}
- obj, err := c.Fake.
- Invokes(testing.NewGetActionWithOptions(packagemanifestsResource, c.ns, name, options), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v1.PackageManifest), err
-}
-
-// List takes label and field selectors, and returns the list of PackageManifests that match those selectors.
-func (c *FakePackageManifests) List(ctx context.Context, opts metav1.ListOptions) (result *v1.PackageManifestList, err error) {
- emptyResult := &v1.PackageManifestList{}
- obj, err := c.Fake.
- Invokes(testing.NewListActionWithOptions(packagemanifestsResource, packagemanifestsKind, c.ns, opts), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
-
- label, _, _ := testing.ExtractFromListOptions(opts)
- if label == nil {
- label = labels.Everything()
- }
- list := &v1.PackageManifestList{ListMeta: obj.(*v1.PackageManifestList).ListMeta}
- for _, item := range obj.(*v1.PackageManifestList).Items {
- if label.Matches(labels.Set(item.Labels)) {
- list.Items = append(list.Items, item)
- }
- }
- return list, err
-}
-
-// Watch returns a watch.Interface that watches the requested packageManifests.
-func (c *FakePackageManifests) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {
- return c.Fake.
- InvokesWatch(testing.NewWatchActionWithOptions(packagemanifestsResource, c.ns, opts))
-
-}
-
-// Create takes the representation of a packageManifest and creates it. Returns the server's representation of the packageManifest, and an error, if there is any.
-func (c *FakePackageManifests) Create(ctx context.Context, packageManifest *v1.PackageManifest, opts metav1.CreateOptions) (result *v1.PackageManifest, err error) {
- emptyResult := &v1.PackageManifest{}
- obj, err := c.Fake.
- Invokes(testing.NewCreateActionWithOptions(packagemanifestsResource, c.ns, packageManifest, opts), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v1.PackageManifest), err
-}
-
-// Update takes the representation of a packageManifest and updates it. Returns the server's representation of the packageManifest, and an error, if there is any.
-func (c *FakePackageManifests) Update(ctx context.Context, packageManifest *v1.PackageManifest, opts metav1.UpdateOptions) (result *v1.PackageManifest, err error) {
- emptyResult := &v1.PackageManifest{}
- obj, err := c.Fake.
- Invokes(testing.NewUpdateActionWithOptions(packagemanifestsResource, c.ns, packageManifest, opts), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v1.PackageManifest), err
-}
-
-// UpdateStatus was generated because the type contains a Status member.
-// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
-func (c *FakePackageManifests) UpdateStatus(ctx context.Context, packageManifest *v1.PackageManifest, opts metav1.UpdateOptions) (result *v1.PackageManifest, err error) {
- emptyResult := &v1.PackageManifest{}
- obj, err := c.Fake.
- Invokes(testing.NewUpdateSubresourceActionWithOptions(packagemanifestsResource, "status", c.ns, packageManifest, opts), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v1.PackageManifest), err
-}
-
-// Delete takes name of the packageManifest and deletes it. Returns an error if one occurs.
-func (c *FakePackageManifests) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {
- _, err := c.Fake.
- Invokes(testing.NewDeleteActionWithOptions(packagemanifestsResource, c.ns, name, opts), &v1.PackageManifest{})
-
- return err
}
-// DeleteCollection deletes a collection of objects.
-func (c *FakePackageManifests) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {
- action := testing.NewDeleteCollectionActionWithOptions(packagemanifestsResource, c.ns, opts, listOpts)
-
- _, err := c.Fake.Invokes(action, &v1.PackageManifestList{})
- return err
-}
-
-// Patch applies the patch and returns the patched packageManifest.
-func (c *FakePackageManifests) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.PackageManifest, err error) {
- emptyResult := &v1.PackageManifest{}
- obj, err := c.Fake.
- Invokes(testing.NewPatchSubresourceActionWithOptions(packagemanifestsResource, c.ns, name, pt, data, opts, subresources...), emptyResult)
-
- if obj == nil {
- return emptyResult, err
+func newFakePackageManifests(fake *FakePackagesV1, namespace string) operatorsv1.PackageManifestInterface {
+ return &fakePackageManifests{
+ gentype.NewFakeClientWithList[*v1.PackageManifest, *v1.PackageManifestList](
+ fake.Fake,
+ namespace,
+ v1.SchemeGroupVersion.WithResource("packagemanifests"),
+ v1.SchemeGroupVersion.WithKind("PackageManifest"),
+ func() *v1.PackageManifest { return &v1.PackageManifest{} },
+ func() *v1.PackageManifestList { return &v1.PackageManifestList{} },
+ func(dst, src *v1.PackageManifestList) { dst.ListMeta = src.ListMeta },
+ func(list *v1.PackageManifestList) []*v1.PackageManifest { return gentype.ToPointerSlice(list.Items) },
+ func(list *v1.PackageManifestList, items []*v1.PackageManifest) {
+ list.Items = gentype.FromPointerSlice(items)
+ },
+ ),
+ fake,
}
- return obj.(*v1.PackageManifest), err
}
diff --git a/staging/operator-lifecycle-manager/pkg/package-server/client/clientset/versioned/typed/operators/v1/operators_client.go b/staging/operator-lifecycle-manager/pkg/package-server/client/clientset/versioned/typed/operators/v1/operators_client.go
index 684d00551b..e0fc8b7b79 100644
--- a/staging/operator-lifecycle-manager/pkg/package-server/client/clientset/versioned/typed/operators/v1/operators_client.go
+++ b/staging/operator-lifecycle-manager/pkg/package-server/client/clientset/versioned/typed/operators/v1/operators_client.go
@@ -19,10 +19,10 @@ limitations under the License.
package v1
import (
- "net/http"
+ http "net/http"
- v1 "github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/apis/operators/v1"
- "github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/client/clientset/versioned/scheme"
+ operatorsv1 "github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/apis/operators/v1"
+ scheme "github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/client/clientset/versioned/scheme"
rest "k8s.io/client-go/rest"
)
@@ -85,10 +85,10 @@ func New(c rest.Interface) *PackagesV1Client {
}
func setConfigDefaults(config *rest.Config) error {
- gv := v1.SchemeGroupVersion
+ gv := operatorsv1.SchemeGroupVersion
config.GroupVersion = &gv
config.APIPath = "/apis"
- config.NegotiatedSerializer = scheme.Codecs.WithoutConversion()
+ config.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()
if config.UserAgent == "" {
config.UserAgent = rest.DefaultKubernetesUserAgent()
diff --git a/staging/operator-lifecycle-manager/pkg/package-server/client/clientset/versioned/typed/operators/v1/packagemanifest.go b/staging/operator-lifecycle-manager/pkg/package-server/client/clientset/versioned/typed/operators/v1/packagemanifest.go
index d58f1d68bf..b17985580d 100644
--- a/staging/operator-lifecycle-manager/pkg/package-server/client/clientset/versioned/typed/operators/v1/packagemanifest.go
+++ b/staging/operator-lifecycle-manager/pkg/package-server/client/clientset/versioned/typed/operators/v1/packagemanifest.go
@@ -19,9 +19,9 @@ limitations under the License.
package v1
import (
- "context"
+ context "context"
- v1 "github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/apis/operators/v1"
+ operatorsv1 "github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/apis/operators/v1"
scheme "github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/client/clientset/versioned/scheme"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
types "k8s.io/apimachinery/pkg/types"
@@ -37,33 +37,34 @@ type PackageManifestsGetter interface {
// PackageManifestInterface has methods to work with PackageManifest resources.
type PackageManifestInterface interface {
- Create(ctx context.Context, packageManifest *v1.PackageManifest, opts metav1.CreateOptions) (*v1.PackageManifest, error)
- Update(ctx context.Context, packageManifest *v1.PackageManifest, opts metav1.UpdateOptions) (*v1.PackageManifest, error)
+ Create(ctx context.Context, packageManifest *operatorsv1.PackageManifest, opts metav1.CreateOptions) (*operatorsv1.PackageManifest, error)
+ Update(ctx context.Context, packageManifest *operatorsv1.PackageManifest, opts metav1.UpdateOptions) (*operatorsv1.PackageManifest, error)
// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
- UpdateStatus(ctx context.Context, packageManifest *v1.PackageManifest, opts metav1.UpdateOptions) (*v1.PackageManifest, error)
+ UpdateStatus(ctx context.Context, packageManifest *operatorsv1.PackageManifest, opts metav1.UpdateOptions) (*operatorsv1.PackageManifest, error)
Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error
DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error
- Get(ctx context.Context, name string, opts metav1.GetOptions) (*v1.PackageManifest, error)
- List(ctx context.Context, opts metav1.ListOptions) (*v1.PackageManifestList, error)
+ Get(ctx context.Context, name string, opts metav1.GetOptions) (*operatorsv1.PackageManifest, error)
+ List(ctx context.Context, opts metav1.ListOptions) (*operatorsv1.PackageManifestList, error)
Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)
- Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *v1.PackageManifest, err error)
+ Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *operatorsv1.PackageManifest, err error)
PackageManifestExpansion
}
// packageManifests implements PackageManifestInterface
type packageManifests struct {
- *gentype.ClientWithList[*v1.PackageManifest, *v1.PackageManifestList]
+ *gentype.ClientWithList[*operatorsv1.PackageManifest, *operatorsv1.PackageManifestList]
}
// newPackageManifests returns a PackageManifests
func newPackageManifests(c *PackagesV1Client, namespace string) *packageManifests {
return &packageManifests{
- gentype.NewClientWithList[*v1.PackageManifest, *v1.PackageManifestList](
+ gentype.NewClientWithList[*operatorsv1.PackageManifest, *operatorsv1.PackageManifestList](
"packagemanifests",
c.RESTClient(),
scheme.ParameterCodec,
namespace,
- func() *v1.PackageManifest { return &v1.PackageManifest{} },
- func() *v1.PackageManifestList { return &v1.PackageManifestList{} }),
+ func() *operatorsv1.PackageManifest { return &operatorsv1.PackageManifest{} },
+ func() *operatorsv1.PackageManifestList { return &operatorsv1.PackageManifestList{} },
+ ),
}
}
diff --git a/staging/operator-lifecycle-manager/pkg/package-server/client/informers/externalversions/generic.go b/staging/operator-lifecycle-manager/pkg/package-server/client/informers/externalversions/generic.go
index 618523def0..a7de186cc2 100644
--- a/staging/operator-lifecycle-manager/pkg/package-server/client/informers/externalversions/generic.go
+++ b/staging/operator-lifecycle-manager/pkg/package-server/client/informers/externalversions/generic.go
@@ -19,7 +19,7 @@ limitations under the License.
package externalversions
import (
- "fmt"
+ fmt "fmt"
v1 "github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/apis/operators/v1"
schema "k8s.io/apimachinery/pkg/runtime/schema"
diff --git a/staging/operator-lifecycle-manager/pkg/package-server/client/informers/externalversions/operators/v1/packagemanifest.go b/staging/operator-lifecycle-manager/pkg/package-server/client/informers/externalversions/operators/v1/packagemanifest.go
index cca008313a..780bff8cb6 100644
--- a/staging/operator-lifecycle-manager/pkg/package-server/client/informers/externalversions/operators/v1/packagemanifest.go
+++ b/staging/operator-lifecycle-manager/pkg/package-server/client/informers/externalversions/operators/v1/packagemanifest.go
@@ -19,13 +19,13 @@ limitations under the License.
package v1
import (
- "context"
+ context "context"
time "time"
- operatorsv1 "github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/apis/operators/v1"
+ apisoperatorsv1 "github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/apis/operators/v1"
versioned "github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/client/clientset/versioned"
internalinterfaces "github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/client/informers/externalversions/internalinterfaces"
- v1 "github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/client/listers/operators/v1"
+ operatorsv1 "github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/client/listers/operators/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
runtime "k8s.io/apimachinery/pkg/runtime"
watch "k8s.io/apimachinery/pkg/watch"
@@ -36,7 +36,7 @@ import (
// PackageManifests.
type PackageManifestInformer interface {
Informer() cache.SharedIndexInformer
- Lister() v1.PackageManifestLister
+ Lister() operatorsv1.PackageManifestLister
}
type packageManifestInformer struct {
@@ -71,7 +71,7 @@ func NewFilteredPackageManifestInformer(client versioned.Interface, namespace st
return client.PackagesV1().PackageManifests(namespace).Watch(context.TODO(), options)
},
},
- &operatorsv1.PackageManifest{},
+ &apisoperatorsv1.PackageManifest{},
resyncPeriod,
indexers,
)
@@ -82,9 +82,9 @@ func (f *packageManifestInformer) defaultInformer(client versioned.Interface, re
}
func (f *packageManifestInformer) Informer() cache.SharedIndexInformer {
- return f.factory.InformerFor(&operatorsv1.PackageManifest{}, f.defaultInformer)
+ return f.factory.InformerFor(&apisoperatorsv1.PackageManifest{}, f.defaultInformer)
}
-func (f *packageManifestInformer) Lister() v1.PackageManifestLister {
- return v1.NewPackageManifestLister(f.Informer().GetIndexer())
+func (f *packageManifestInformer) Lister() operatorsv1.PackageManifestLister {
+ return operatorsv1.NewPackageManifestLister(f.Informer().GetIndexer())
}
diff --git a/staging/operator-lifecycle-manager/pkg/package-server/client/informers/internalversion/factory.go b/staging/operator-lifecycle-manager/pkg/package-server/client/informers/internalversion/factory.go
index b1966f3e24..da5e4ad37c 100644
--- a/staging/operator-lifecycle-manager/pkg/package-server/client/informers/internalversion/factory.go
+++ b/staging/operator-lifecycle-manager/pkg/package-server/client/informers/internalversion/factory.go
@@ -23,7 +23,7 @@ import (
sync "sync"
time "time"
- internalversion "github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/client/clientset/internalversion"
+ clientsetinternalversion "github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/client/clientset/internalversion"
internalinterfaces "github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/client/informers/internalversion/internalinterfaces"
operators "github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/client/informers/internalversion/operators"
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -36,7 +36,7 @@ import (
type SharedInformerOption func(*sharedInformerFactory) *sharedInformerFactory
type sharedInformerFactory struct {
- client internalversion.Interface
+ client clientsetinternalversion.Interface
namespace string
tweakListOptions internalinterfaces.TweakListOptionsFunc
lock sync.Mutex
@@ -90,7 +90,7 @@ func WithTransform(transform cache.TransformFunc) SharedInformerOption {
}
// NewSharedInformerFactory constructs a new instance of sharedInformerFactory for all namespaces.
-func NewSharedInformerFactory(client internalversion.Interface, defaultResync time.Duration) SharedInformerFactory {
+func NewSharedInformerFactory(client clientsetinternalversion.Interface, defaultResync time.Duration) SharedInformerFactory {
return NewSharedInformerFactoryWithOptions(client, defaultResync)
}
@@ -98,12 +98,12 @@ func NewSharedInformerFactory(client internalversion.Interface, defaultResync ti
// Listers obtained via this SharedInformerFactory will be subject to the same filters
// as specified here.
// Deprecated: Please use NewSharedInformerFactoryWithOptions instead
-func NewFilteredSharedInformerFactory(client internalversion.Interface, defaultResync time.Duration, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) SharedInformerFactory {
+func NewFilteredSharedInformerFactory(client clientsetinternalversion.Interface, defaultResync time.Duration, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) SharedInformerFactory {
return NewSharedInformerFactoryWithOptions(client, defaultResync, WithNamespace(namespace), WithTweakListOptions(tweakListOptions))
}
// NewSharedInformerFactoryWithOptions constructs a new instance of a SharedInformerFactory with additional options.
-func NewSharedInformerFactoryWithOptions(client internalversion.Interface, defaultResync time.Duration, options ...SharedInformerOption) SharedInformerFactory {
+func NewSharedInformerFactoryWithOptions(client clientsetinternalversion.Interface, defaultResync time.Duration, options ...SharedInformerOption) SharedInformerFactory {
factory := &sharedInformerFactory{
client: client,
namespace: v1.NamespaceAll,
diff --git a/staging/operator-lifecycle-manager/pkg/package-server/client/informers/internalversion/generic.go b/staging/operator-lifecycle-manager/pkg/package-server/client/informers/internalversion/generic.go
index 1dcd9ed598..5045aa1184 100644
--- a/staging/operator-lifecycle-manager/pkg/package-server/client/informers/internalversion/generic.go
+++ b/staging/operator-lifecycle-manager/pkg/package-server/client/informers/internalversion/generic.go
@@ -19,7 +19,7 @@ limitations under the License.
package internalversion
import (
- "fmt"
+ fmt "fmt"
operators "github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/apis/operators"
schema "k8s.io/apimachinery/pkg/runtime/schema"
diff --git a/staging/operator-lifecycle-manager/pkg/package-server/client/informers/internalversion/operators/internalversion/packagemanifest.go b/staging/operator-lifecycle-manager/pkg/package-server/client/informers/internalversion/operators/internalversion/packagemanifest.go
index 0ffe4db86a..df9fdd33c3 100644
--- a/staging/operator-lifecycle-manager/pkg/package-server/client/informers/internalversion/operators/internalversion/packagemanifest.go
+++ b/staging/operator-lifecycle-manager/pkg/package-server/client/informers/internalversion/operators/internalversion/packagemanifest.go
@@ -19,13 +19,13 @@ limitations under the License.
package internalversion
import (
- "context"
+ context "context"
time "time"
operators "github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/apis/operators"
clientsetinternalversion "github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/client/clientset/internalversion"
internalinterfaces "github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/client/informers/internalversion/internalinterfaces"
- internalversion "github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/client/listers/operators/internalversion"
+ operatorsinternalversion "github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/client/listers/operators/internalversion"
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
runtime "k8s.io/apimachinery/pkg/runtime"
watch "k8s.io/apimachinery/pkg/watch"
@@ -36,7 +36,7 @@ import (
// PackageManifests.
type PackageManifestInformer interface {
Informer() cache.SharedIndexInformer
- Lister() internalversion.PackageManifestLister
+ Lister() operatorsinternalversion.PackageManifestLister
}
type packageManifestInformer struct {
@@ -85,6 +85,6 @@ func (f *packageManifestInformer) Informer() cache.SharedIndexInformer {
return f.factory.InformerFor(&operators.PackageManifest{}, f.defaultInformer)
}
-func (f *packageManifestInformer) Lister() internalversion.PackageManifestLister {
- return internalversion.NewPackageManifestLister(f.Informer().GetIndexer())
+func (f *packageManifestInformer) Lister() operatorsinternalversion.PackageManifestLister {
+ return operatorsinternalversion.NewPackageManifestLister(f.Informer().GetIndexer())
}
diff --git a/staging/operator-lifecycle-manager/pkg/package-server/client/listers/operators/internalversion/packagemanifest.go b/staging/operator-lifecycle-manager/pkg/package-server/client/listers/operators/internalversion/packagemanifest.go
index 9b21aeaa1b..41a8d68d39 100644
--- a/staging/operator-lifecycle-manager/pkg/package-server/client/listers/operators/internalversion/packagemanifest.go
+++ b/staging/operator-lifecycle-manager/pkg/package-server/client/listers/operators/internalversion/packagemanifest.go
@@ -20,9 +20,9 @@ package internalversion
import (
operators "github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/apis/operators"
- "k8s.io/apimachinery/pkg/labels"
- "k8s.io/client-go/listers"
- "k8s.io/client-go/tools/cache"
+ labels "k8s.io/apimachinery/pkg/labels"
+ listers "k8s.io/client-go/listers"
+ cache "k8s.io/client-go/tools/cache"
)
// PackageManifestLister helps list PackageManifests.
diff --git a/staging/operator-lifecycle-manager/pkg/package-server/client/listers/operators/v1/packagemanifest.go b/staging/operator-lifecycle-manager/pkg/package-server/client/listers/operators/v1/packagemanifest.go
index 2659ad3d42..dc77c4a22f 100644
--- a/staging/operator-lifecycle-manager/pkg/package-server/client/listers/operators/v1/packagemanifest.go
+++ b/staging/operator-lifecycle-manager/pkg/package-server/client/listers/operators/v1/packagemanifest.go
@@ -19,10 +19,10 @@ limitations under the License.
package v1
import (
- v1 "github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/apis/operators/v1"
- "k8s.io/apimachinery/pkg/labels"
- "k8s.io/client-go/listers"
- "k8s.io/client-go/tools/cache"
+ operatorsv1 "github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/apis/operators/v1"
+ labels "k8s.io/apimachinery/pkg/labels"
+ listers "k8s.io/client-go/listers"
+ cache "k8s.io/client-go/tools/cache"
)
// PackageManifestLister helps list PackageManifests.
@@ -30,7 +30,7 @@ import (
type PackageManifestLister interface {
// List lists all PackageManifests in the indexer.
// Objects returned here must be treated as read-only.
- List(selector labels.Selector) (ret []*v1.PackageManifest, err error)
+ List(selector labels.Selector) (ret []*operatorsv1.PackageManifest, err error)
// PackageManifests returns an object that can list and get PackageManifests.
PackageManifests(namespace string) PackageManifestNamespaceLister
PackageManifestListerExpansion
@@ -38,17 +38,17 @@ type PackageManifestLister interface {
// packageManifestLister implements the PackageManifestLister interface.
type packageManifestLister struct {
- listers.ResourceIndexer[*v1.PackageManifest]
+ listers.ResourceIndexer[*operatorsv1.PackageManifest]
}
// NewPackageManifestLister returns a new PackageManifestLister.
func NewPackageManifestLister(indexer cache.Indexer) PackageManifestLister {
- return &packageManifestLister{listers.New[*v1.PackageManifest](indexer, v1.Resource("packagemanifest"))}
+ return &packageManifestLister{listers.New[*operatorsv1.PackageManifest](indexer, operatorsv1.Resource("packagemanifest"))}
}
// PackageManifests returns an object that can list and get PackageManifests.
func (s *packageManifestLister) PackageManifests(namespace string) PackageManifestNamespaceLister {
- return packageManifestNamespaceLister{listers.NewNamespaced[*v1.PackageManifest](s.ResourceIndexer, namespace)}
+ return packageManifestNamespaceLister{listers.NewNamespaced[*operatorsv1.PackageManifest](s.ResourceIndexer, namespace)}
}
// PackageManifestNamespaceLister helps list and get PackageManifests.
@@ -56,15 +56,15 @@ func (s *packageManifestLister) PackageManifests(namespace string) PackageManife
type PackageManifestNamespaceLister interface {
// List lists all PackageManifests in the indexer for a given namespace.
// Objects returned here must be treated as read-only.
- List(selector labels.Selector) (ret []*v1.PackageManifest, err error)
+ List(selector labels.Selector) (ret []*operatorsv1.PackageManifest, err error)
// Get retrieves the PackageManifest from the indexer for a given namespace and name.
// Objects returned here must be treated as read-only.
- Get(name string) (*v1.PackageManifest, error)
+ Get(name string) (*operatorsv1.PackageManifest, error)
PackageManifestNamespaceListerExpansion
}
// packageManifestNamespaceLister implements the PackageManifestNamespaceLister
// interface.
type packageManifestNamespaceLister struct {
- listers.ResourceIndexer[*v1.PackageManifest]
+ listers.ResourceIndexer[*operatorsv1.PackageManifest]
}
diff --git a/staging/operator-lifecycle-manager/pkg/package-server/client/openapi/zz_generated.openapi.go b/staging/operator-lifecycle-manager/pkg/package-server/client/openapi/zz_generated.openapi.go
index 2a86d4772d..919bd722fb 100644
--- a/staging/operator-lifecycle-manager/pkg/package-server/client/openapi/zz_generated.openapi.go
+++ b/staging/operator-lifecycle-manager/pkg/package-server/client/openapi/zz_generated.openapi.go
@@ -2944,6 +2944,13 @@ func schema_pkg_apis_meta_v1_DeleteOptions(ref common.ReferenceCallback) common.
},
},
},
+ "ignoreStoreReadErrorWithClusterBreakingPotential": {
+ SchemaProps: spec.SchemaProps{
+ Description: "if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
},
},
},
diff --git a/staging/operator-registry/.bingo/Variables.mk b/staging/operator-registry/.bingo/Variables.mk
index 292a3c01da..1d179a2df5 100644
--- a/staging/operator-registry/.bingo/Variables.mk
+++ b/staging/operator-registry/.bingo/Variables.mk
@@ -23,11 +23,11 @@ $(BINGO): $(BINGO_DIR)/bingo.mod
@echo "(re)installing $(GOBIN)/bingo-v0.9.0"
@cd $(BINGO_DIR) && GOWORK=off $(GO) build -mod=mod -modfile=bingo.mod -o=$(GOBIN)/bingo-v0.9.0 "github.com/bwplotka/bingo"
-GINKGO := $(GOBIN)/ginkgo-v2.20.2
+GINKGO := $(GOBIN)/ginkgo-v2.22.2
$(GINKGO): $(BINGO_DIR)/ginkgo.mod
@# Install binary/ries using Go 1.14+ build command. This is using bwplotka/bingo-controlled, separate go module with pinned dependencies.
- @echo "(re)installing $(GOBIN)/ginkgo-v2.20.2"
- @cd $(BINGO_DIR) && GOWORK=off $(GO) build -mod=mod -modfile=ginkgo.mod -o=$(GOBIN)/ginkgo-v2.20.2 "github.com/onsi/ginkgo/v2/ginkgo"
+ @echo "(re)installing $(GOBIN)/ginkgo-v2.22.2"
+ @cd $(BINGO_DIR) && GOWORK=off $(GO) build -mod=mod -modfile=ginkgo.mod -o=$(GOBIN)/ginkgo-v2.22.2 "github.com/onsi/ginkgo/v2/ginkgo"
GORELEASER := $(GOBIN)/goreleaser-v1.26.2
$(GORELEASER): $(BINGO_DIR)/goreleaser.mod
diff --git a/staging/operator-registry/.bingo/ginkgo.mod b/staging/operator-registry/.bingo/ginkgo.mod
index 885d99791e..c1e0852df9 100644
--- a/staging/operator-registry/.bingo/ginkgo.mod
+++ b/staging/operator-registry/.bingo/ginkgo.mod
@@ -2,4 +2,4 @@ module _ // Auto generated by https://github.com/bwplotka/bingo. DO NOT EDIT
go 1.22.2
-require github.com/onsi/ginkgo/v2 v2.20.2 // ginkgo
+require github.com/onsi/ginkgo/v2 v2.22.2 // ginkgo
diff --git a/staging/operator-registry/.bingo/ginkgo.sum b/staging/operator-registry/.bingo/ginkgo.sum
index 281f027325..e2123cdc64 100644
--- a/staging/operator-registry/.bingo/ginkgo.sum
+++ b/staging/operator-registry/.bingo/ginkgo.sum
@@ -26,6 +26,8 @@ github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38 h1:yAJXTCF9TqKcTiHJAE
github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
github.com/google/pprof v0.0.0-20240827171923-fa2c70bbbfe5 h1:5iH8iuqE5apketRbSFBy+X1V0o+l+8NF1avt4HWl7cA=
github.com/google/pprof v0.0.0-20240827171923-fa2c70bbbfe5/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144=
+github.com/google/pprof v0.0.0-20241210010833-40e02aabc2ad h1:a6HEuzUHeKH6hwfN/ZoQgRgVIWFJljSWa/zetS2WTvg=
+github.com/google/pprof v0.0.0-20241210010833-40e02aabc2ad/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144=
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
@@ -37,6 +39,8 @@ github.com/onsi/ginkgo/v2 v2.1.3 h1:e/3Cwtogj0HA+25nMP1jCMDIf8RtRYbGwGGuBIFztkc=
github.com/onsi/ginkgo/v2 v2.1.3/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c=
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/ginkgo/v2 v2.22.2 h1:/3X8Panh8/WwhU/3Ssa6rCKqPLuAkVY2I0RoyDLySlU=
+github.com/onsi/ginkgo/v2 v2.22.2/go.mod h1:oeMosUL+8LtarXBHu/c0bx2D/K9zyQ6uX3cTyztHwsk=
github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY=
@@ -79,6 +83,8 @@ golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e h1:4nW4NLDYnU28ojHaHO8OVxF
golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.24.0 h1:J1shsA93PJUEVaUSaay7UXAyE8aimq3GW0pjlolpa24=
golang.org/x/tools v0.24.0/go.mod h1:YhNqVBIfWHdzvTLs0d8LCuMhkKUgSUKldakyV7W/WDQ=
+golang.org/x/tools v0.28.0 h1:WuB6qZ4RPCQo5aP3WdKZS7i595EdWqWR8vqJTlwTVK8=
+golang.org/x/tools v0.28.0/go.mod h1:dcIOrVd3mfQKTgrDVQHqCPMWy6lnhfhtX3hLXYVLfRw=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
diff --git a/staging/operator-registry/.bingo/variables.env b/staging/operator-registry/.bingo/variables.env
index d09a89baea..8b1c16cdf3 100644
--- a/staging/operator-registry/.bingo/variables.env
+++ b/staging/operator-registry/.bingo/variables.env
@@ -10,7 +10,7 @@ fi
BINGO="${GOBIN}/bingo-v0.9.0"
-GINKGO="${GOBIN}/ginkgo-v2.20.2"
+GINKGO="${GOBIN}/ginkgo-v2.22.2"
GORELEASER="${GOBIN}/goreleaser-v1.26.2"
diff --git a/staging/operator-registry/.github/workflows/unit.yaml b/staging/operator-registry/.github/workflows/unit.yaml
index dcb9d0c957..26634c6a25 100644
--- a/staging/operator-registry/.github/workflows/unit.yaml
+++ b/staging/operator-registry/.github/workflows/unit.yaml
@@ -20,7 +20,7 @@ jobs:
go-version-file: "go.mod"
- run: make unit
- run: sed -i'' "s:^github.com/$GITHUB_REPOSITORY/::" coverage.out
- - uses: codecov/codecov-action@v4
+ - uses: codecov/codecov-action@v5
with:
disable_search: true
files: coverage.out
diff --git a/staging/operator-registry/cmd/opm/alpha/bundle/build.go b/staging/operator-registry/cmd/opm/alpha/bundle/build.go
index c35ce80c92..bb392ada24 100644
--- a/staging/operator-registry/cmd/opm/alpha/bundle/build.go
+++ b/staging/operator-registry/cmd/opm/alpha/bundle/build.go
@@ -15,6 +15,7 @@ var (
defaultChannel string
outputDir string
overwrite bool
+ baseImage string
)
// newBundleBuildCmd returns a command that will build operator bundle image.
@@ -76,6 +77,9 @@ Note:
bundleBuildCmd.Flags().StringVarP(&outputDir, "output-dir", "u", "",
"Optional output directory for operator manifests")
+ bundleBuildCmd.Flags().StringVar(&baseImage, "base-image", "scratch",
+ "Use a custom image pullspec as the base bundle image")
+
return bundleBuildCmd
}
@@ -89,5 +93,6 @@ func buildFunc(cmd *cobra.Command, _ []string) error {
channels,
defaultChannel,
overwrite,
+ baseImage,
)
}
diff --git a/staging/operator-registry/cmd/opm/alpha/bundle/generate.go b/staging/operator-registry/cmd/opm/alpha/bundle/generate.go
index 417a22c379..3a65f2ae31 100644
--- a/staging/operator-registry/cmd/opm/alpha/bundle/generate.go
+++ b/staging/operator-registry/cmd/opm/alpha/bundle/generate.go
@@ -45,6 +45,7 @@ Note:
bundleGenerateCmd.Flags().StringVarP(&outputDir, "output-dir", "u", "",
"Optional output directory for operator manifests")
+ bundleGenerateCmd.Flags().StringVar(&baseImage, "base-image", "scratch", "Use a custom image pullspec as the base bundle image")
return bundleGenerateCmd
}
@@ -56,5 +57,6 @@ func generateFunc(cmd *cobra.Command, _ []string) error {
channels,
defaultChannel,
true,
+ baseImage,
)
}
diff --git a/staging/operator-registry/fbc-dir/file-based-catalog/operator.yaml b/staging/operator-registry/fbc-dir/file-based-catalog/operator.yaml
index a514934797..184318d044 100644
--- a/staging/operator-registry/fbc-dir/file-based-catalog/operator.yaml
+++ b/staging/operator-registry/fbc-dir/file-based-catalog/operator.yaml
@@ -31,8 +31,6 @@ properties:
value:
data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjFiZXRhMSIsImtpbmQiOiJDdXN0b21SZXNvdXJjZURlZmluaXRpb24iLCJtZXRhZGF0YSI6eyJhbm5vdGF0aW9ucyI6eyJjb250cm9sbGVyLWdlbi5rdWJlYnVpbGRlci5pby92ZXJzaW9uIjoidjAuMy4wIn0sImNyZWF0aW9uVGltZXN0YW1wIjpudWxsLCJuYW1lIjoid2ViaG9va3Rlc3RzLndlYmhvb2sub3BlcmF0b3JzLmNvcmVvcy5pbyJ9LCJzcGVjIjp7Imdyb3VwIjoid2ViaG9vay5vcGVyYXRvcnMuY29yZW9zLmlvIiwibmFtZXMiOnsia2luZCI6IldlYmhvb2tUZXN0IiwibGlzdEtpbmQiOiJXZWJob29rVGVzdExpc3QiLCJwbHVyYWwiOiJ3ZWJob29rdGVzdHMiLCJzaW5ndWxhciI6IndlYmhvb2t0ZXN0In0sInByZXNlcnZlVW5rbm93bkZpZWxkcyI6ZmFsc2UsInNjb3BlIjoiTmFtZXNwYWNlZCIsInZlcnNpb24iOiJ2MSIsInZlcnNpb25zIjpbeyJuYW1lIjoidjEiLCJzY2hlbWEiOnsib3BlbkFQSVYzU2NoZW1hIjp7ImRlc2NyaXB0aW9uIjoiV2ViaG9va1Rlc3QgaXMgdGhlIFNjaGVtYSBmb3IgdGhlIHdlYmhvb2t0ZXN0cyBBUEkiLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJBUElWZXJzaW9uIGRlZmluZXMgdGhlIHZlcnNpb25lZCBzY2hlbWEgb2YgdGhpcyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuIFNlcnZlcnMgc2hvdWxkIGNvbnZlcnQgcmVjb2duaXplZCBzY2hlbWFzIHRvIHRoZSBsYXRlc3QgaW50ZXJuYWwgdmFsdWUsIGFuZCBtYXkgcmVqZWN0IHVucmVjb2duaXplZCB2YWx1ZXMuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjcmVzb3VyY2VzIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyBhIHN0cmluZyB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIFJFU1QgcmVzb3VyY2UgdGhpcyBvYmplY3QgcmVwcmVzZW50cy4gU2VydmVycyBtYXkgaW5mZXIgdGhpcyBmcm9tIHRoZSBlbmRwb2ludCB0aGUgY2xpZW50IHN1Ym1pdHMgcmVxdWVzdHMgdG8uIENhbm5vdCBiZSB1cGRhdGVkLiBJbiBDYW1lbENhc2UuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjdHlwZXMta2luZHMiLCJ0eXBlIjoic3RyaW5nIn0sIm1ldGFkYXRhIjp7InR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IldlYmhvb2tUZXN0U3BlYyBkZWZpbmVzIHRoZSBkZXNpcmVkIHN0YXRlIG9mIFdlYmhvb2tUZXN0IiwicHJvcGVydGllcyI6eyJtdXRhdGUiOnsiZGVzY3JpcHRpb24iOiJNdXRhdGUgaXMgYSBmaWVsZCB0aGF0IHdpbGwgYmUgc2V0IHRvIHRydWUgYnkgdGhlIG11dGF0aW5nIHdlYmhvb2suIiwidHlwZSI6ImJvb2xlYW4ifSwidmFsaWQiOnsiZGVzY3JpcHRpb24iOiJWYWxpZCBtdXN0IGJlIHNldCB0byB0cnVlIG9yIHRoZSB2YWxpZGF0aW9uIHdlYmhvb2sgd2lsbCByZWplY3QgdGhlIHJlc291cmNlLiIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJ2YWxpZCJdLCJ0eXBlIjoib2JqZWN0In0sInN0YXR1cyI6eyJkZXNjcmlwdGlvbiI6IldlYmhvb2tUZXN0U3RhdHVzIGRlZmluZXMgdGhlIG9ic2VydmVkIHN0YXRlIG9mIFdlYmhvb2tUZXN0IiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9fSwic2VydmVkIjp0cnVlLCJzdG9yYWdlIjp0cnVlfSx7Im5hbWUiOiJ2MiIsInNjaGVtYSI6eyJvcGVuQVBJVjNTY2hlbWEiOnsiZGVzY3JpcHRpb24iOiJXZWJob29rVGVzdCBpcyB0aGUgU2NoZW1hIGZvciB0aGUgd2ViaG9va3Rlc3RzIEFQSSIsInByb3BlcnRpZXMiOnsiYXBpVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkFQSVZlcnNpb24gZGVmaW5lcyB0aGUgdmVyc2lvbmVkIHNjaGVtYSBvZiB0aGlzIHJlcHJlc2VudGF0aW9uIG9mIGFuIG9iamVjdC4gU2VydmVycyBzaG91bGQgY29udmVydCByZWNvZ25pemVkIHNjaGVtYXMgdG8gdGhlIGxhdGVzdCBpbnRlcm5hbCB2YWx1ZSwgYW5kIG1heSByZWplY3QgdW5yZWNvZ25pemVkIHZhbHVlcy4gTW9yZSBpbmZvOiBodHRwczovL2dpdC5rOHMuaW8vY29tbXVuaXR5L2NvbnRyaWJ1dG9ycy9kZXZlbC9zaWctYXJjaGl0ZWN0dXJlL2FwaS1jb252ZW50aW9ucy5tZCNyZXNvdXJjZXMiLCJ0eXBlIjoic3RyaW5nIn0sImtpbmQiOnsiZGVzY3JpcHRpb24iOiJLaW5kIGlzIGEgc3RyaW5nIHZhbHVlIHJlcHJlc2VudGluZyB0aGUgUkVTVCByZXNvdXJjZSB0aGlzIG9iamVjdCByZXByZXNlbnRzLiBTZXJ2ZXJzIG1heSBpbmZlciB0aGlzIGZyb20gdGhlIGVuZHBvaW50IHRoZSBjbGllbnQgc3VibWl0cyByZXF1ZXN0cyB0by4gQ2Fubm90IGJlIHVwZGF0ZWQuIEluIENhbWVsQ2FzZS4gTW9yZSBpbmZvOiBodHRwczovL2dpdC5rOHMuaW8vY29tbXVuaXR5L2NvbnRyaWJ1dG9ycy9kZXZlbC9zaWctYXJjaGl0ZWN0dXJlL2FwaS1jb252ZW50aW9ucy5tZCN0eXBlcy1raW5kcyIsInR5cGUiOiJzdHJpbmcifSwibWV0YWRhdGEiOnsidHlwZSI6Im9iamVjdCJ9LCJzcGVjIjp7ImRlc2NyaXB0aW9uIjoiV2ViaG9va1Rlc3RTcGVjIGRlZmluZXMgdGhlIGRlc2lyZWQgc3RhdGUgb2YgV2ViaG9va1Rlc3QiLCJwcm9wZXJ0aWVzIjp7ImNvbnZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJDb252ZXJzaW9uIGlzIGFuIGV4YW1wbGUgZmllbGQgb2YgV2ViaG9va1Rlc3QuIEVkaXQgV2ViaG9va1Rlc3RfdHlwZXMuZ28gdG8gcmVtb3ZlL3VwZGF0ZSIsInByb3BlcnRpZXMiOnsibXV0YXRlIjp7ImRlc2NyaXB0aW9uIjoiTXV0YXRlIGlzIGEgZmllbGQgdGhhdCB3aWxsIGJlIHNldCB0byB0cnVlIGJ5IHRoZSBtdXRhdGluZyB3ZWJob29rLiIsInR5cGUiOiJib29sZWFuIn0sInZhbGlkIjp7ImRlc2NyaXB0aW9uIjoiVmFsaWQgbXVzdCBiZSBzZXQgdG8gdHJ1ZSBvciB0aGUgdmFsaWRhdGlvbiB3ZWJob29rIHdpbGwgcmVqZWN0IHRoZSByZXNvdXJjZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwicmVxdWlyZWQiOlsidmFsaWQiXSwidHlwZSI6Im9iamVjdCJ9fSwicmVxdWlyZWQiOlsiY29udmVyc2lvbiJdLCJ0eXBlIjoib2JqZWN0In0sInN0YXR1cyI6eyJkZXNjcmlwdGlvbiI6IldlYmhvb2tUZXN0U3RhdHVzIGRlZmluZXMgdGhlIG9ic2VydmVkIHN0YXRlIG9mIFdlYmhvb2tUZXN0IiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9fSwic2VydmVkIjp0cnVlLCJzdG9yYWdlIjpmYWxzZX1dfSwic3RhdHVzIjp7ImFjY2VwdGVkTmFtZXMiOnsia2luZCI6IiIsInBsdXJhbCI6IiJ9LCJjb25kaXRpb25zIjpbXSwic3RvcmVkVmVyc2lvbnMiOltdfX0=
relatedImages:
-- image: gcr.io/kubebuilder/kube-rbac-proxy:v0.5.0
- name: ""
- image: quay.io/olmtest/webhook-operator-bundle:0.0.3
name: ""
- image: quay.io/olmtest/webhook-operator:0.0.3
diff --git a/staging/operator-registry/go.mod b/staging/operator-registry/go.mod
index 809df65459..0dbfb579d8 100644
--- a/staging/operator-registry/go.mod
+++ b/staging/operator-registry/go.mod
@@ -1,16 +1,18 @@
module github.com/operator-framework/operator-registry
-go 1.22.5
+go 1.23.0
+
+toolchain go1.23.4
require (
github.com/akrylysov/pogreb v0.10.2
github.com/blang/semver/v4 v4.0.0
- github.com/containerd/containerd v1.7.22
- github.com/containers/common v0.60.4
- github.com/containers/image/v5 v5.32.2
- github.com/distribution/distribution/v3 v3.0.0-beta.1
+ github.com/containerd/containerd v1.7.25
+ github.com/containers/common v0.61.0
+ github.com/containers/image/v5 v5.33.0
+ github.com/distribution/distribution/v3 v3.0.0-rc.1
github.com/distribution/reference v0.6.0
- github.com/docker/cli v27.3.1+incompatible
+ github.com/docker/cli v27.4.1+incompatible
github.com/golang-migrate/migrate/v4 v4.18.1
github.com/golang/mock v1.6.0
github.com/golang/protobuf v1.5.4
@@ -19,50 +21,51 @@ require (
github.com/grpc-ecosystem/grpc-health-probe v0.4.34
github.com/h2non/filetype v1.1.3
github.com/h2non/go-is-svg v0.0.0-20160927212452-35e8c4b0612c
- github.com/joelanford/ignore v0.1.0
+ github.com/joelanford/ignore v0.1.1
github.com/mattn/go-sqlite3 v1.14.24
- github.com/maxbrunsfeld/counterfeiter/v6 v6.9.0
- github.com/onsi/ginkgo/v2 v2.20.2
- github.com/onsi/gomega v1.34.2
+ github.com/maxbrunsfeld/counterfeiter/v6 v6.11.2
+ github.com/onsi/ginkgo/v2 v2.22.2
+ github.com/onsi/gomega v1.36.2
github.com/opencontainers/go-digest v1.0.0
github.com/opencontainers/image-spec v1.1.0
- github.com/operator-framework/api v0.27.0
+ github.com/operator-framework/api v0.29.0
github.com/otiai10/copy v1.14.0
github.com/phayes/freeport v0.0.0-20180830031419-95f893ade6f2
github.com/pkg/errors v0.9.1
github.com/sirupsen/logrus v1.9.3
github.com/spf13/cobra v1.8.1
github.com/spf13/pflag v1.0.5
- github.com/stretchr/testify v1.9.0
+ github.com/stretchr/testify v1.10.0
github.com/tidwall/btree v1.7.0
go.etcd.io/bbolt v1.3.11
- golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56
- golang.org/x/mod v0.21.0
- golang.org/x/net v0.30.0
- golang.org/x/sync v0.8.0
- golang.org/x/sys v0.26.0
- golang.org/x/text v0.19.0
- google.golang.org/grpc v1.67.1
+ golang.org/x/exp v0.0.0-20241009180824-f66d83c29e7c
+ golang.org/x/mod v0.22.0
+ golang.org/x/net v0.34.0
+ golang.org/x/sync v0.10.0
+ golang.org/x/sys v0.29.0
+ golang.org/x/text v0.21.0
+ google.golang.org/grpc v1.68.1
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1
- google.golang.org/protobuf v1.35.1
+ google.golang.org/protobuf v1.36.2
gopkg.in/yaml.v2 v2.4.0
- k8s.io/api v0.31.1
- k8s.io/apiextensions-apiserver v0.31.1
- k8s.io/apimachinery v0.31.1
- k8s.io/client-go v0.31.1
- k8s.io/kubectl v0.31.0
- sigs.k8s.io/controller-runtime v0.19.0
- sigs.k8s.io/kind v0.24.0
+ k8s.io/api v0.32.0
+ k8s.io/apiextensions-apiserver v0.32.0
+ k8s.io/apimachinery v0.32.0
+ k8s.io/client-go v0.32.0
+ k8s.io/kubectl v0.32.0
+ sigs.k8s.io/controller-runtime v0.19.4
+ sigs.k8s.io/kind v0.26.0
sigs.k8s.io/yaml v1.4.0
)
require (
+ cel.dev/expr v0.18.0 // indirect
github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 // indirect
github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 // indirect
github.com/BurntSushi/toml v1.4.0 // indirect
github.com/MakeNowJust/heredoc v1.0.0 // indirect
github.com/Microsoft/go-winio v0.6.2 // indirect
- github.com/Microsoft/hcsshim v0.12.5 // indirect
+ github.com/Microsoft/hcsshim v0.12.9 // indirect
github.com/alessio/shellescape v1.4.2 // indirect
github.com/antlr4-go/antlr/v4 v4.13.0 // indirect
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect
@@ -71,21 +74,22 @@ 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/api v1.7.19 // indirect
- github.com/containerd/continuity v0.4.2 // indirect
- github.com/containerd/errdefs v0.1.0 // indirect
+ github.com/containerd/containerd/api v1.8.0 // indirect
+ github.com/containerd/continuity v0.4.4 // indirect
+ github.com/containerd/errdefs v0.3.0 // indirect
+ github.com/containerd/errdefs/pkg v0.3.0 // indirect
github.com/containerd/log v0.1.0 // indirect
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/containerd/typeurl/v2 v2.2.0 // 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/containers/storage v1.56.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/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
github.com/docker/distribution v2.8.3+incompatible // indirect
- github.com/docker/docker v27.2.0+incompatible // indirect
+ github.com/docker/docker v27.3.1+incompatible // indirect
github.com/docker/docker-credential-helpers v0.8.2 // indirect
github.com/docker/go-connections v0.5.0 // indirect
github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c // indirect
@@ -96,9 +100,9 @@ require (
github.com/felixge/httpsnoop v1.0.4 // indirect
github.com/fxamacker/cbor/v2 v2.7.0 // indirect
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect
- github.com/go-git/go-billy/v5 v5.5.0 // indirect
- github.com/go-git/go-git/v5 v5.11.0 // indirect
- github.com/go-jose/go-jose/v4 v4.0.2 // indirect
+ github.com/go-git/go-billy/v5 v5.6.1 // indirect
+ github.com/go-git/go-git/v5 v5.13.1 // indirect
+ github.com/go-jose/go-jose/v4 v4.0.4 // indirect
github.com/go-logr/logr v1.4.2 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
github.com/go-openapi/jsonpointer v0.21.0 // indirect
@@ -107,30 +111,30 @@ require (
github.com/go-task/slim-sprig/v3 v3.0.0 // indirect
github.com/gogo/protobuf v1.3.2 // indirect
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
- github.com/google/cel-go v0.20.1 // indirect
+ github.com/google/cel-go v0.22.1 // indirect
github.com/google/gnostic-models v0.6.8 // indirect
github.com/google/gofuzz v1.2.0 // indirect
- github.com/google/pprof v0.0.0-20240827171923-fa2c70bbbfe5 // indirect
+ github.com/google/pprof v0.0.0-20241210010833-40e02aabc2ad // indirect
github.com/google/safetext v0.0.0-20220905092116-b49f7bc46da2 // indirect
github.com/google/uuid v1.6.0 // indirect
github.com/gorilla/handlers v1.5.2 // indirect
github.com/gorilla/mux v1.8.1 // indirect
github.com/gorilla/websocket v1.5.0 // indirect
- github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 // indirect
+ github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 // indirect
github.com/hashicorp/golang-lru/arc/v2 v2.0.5 // indirect
github.com/hashicorp/golang-lru/v2 v2.0.5 // indirect
- github.com/imdario/mergo v0.3.16 // indirect
github.com/inconshreveable/mousetrap v1.1.0 // indirect
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect
github.com/josharian/intern v1.0.0 // indirect
github.com/json-iterator/go v1.1.12 // indirect
- github.com/klauspost/compress v1.17.9 // indirect
+ github.com/klauspost/compress v1.17.11 // indirect
github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de // indirect
github.com/mailru/easyjson v0.7.7 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect
github.com/mitchellh/go-wordwrap v1.0.1 // indirect
github.com/moby/locker v1.0.1 // indirect
- github.com/moby/spdystream v0.4.0 // indirect
+ github.com/moby/spdystream v0.5.0 // indirect
+ github.com/moby/sys/capability v0.3.0 // 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.3.0 // indirect
@@ -143,9 +147,9 @@ require (
github.com/opencontainers/runtime-spec v1.2.0 // indirect
github.com/pelletier/go-toml v1.9.5 // indirect
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
- github.com/prometheus/client_golang v1.19.1 // indirect
+ github.com/prometheus/client_golang v1.20.2 // indirect
github.com/prometheus/client_model v0.6.1 // indirect
- github.com/prometheus/common v0.55.0 // indirect
+ github.com/prometheus/common v0.57.0 // indirect
github.com/prometheus/procfs v0.15.1 // indirect
github.com/redis/go-redis/extra/rediscmd/v9 v9.0.5 // indirect
github.com/redis/go-redis/extra/redisotel/v9 v9.0.5 // indirect
@@ -153,45 +157,49 @@ require (
github.com/russross/blackfriday/v2 v2.1.0 // indirect
github.com/spiffe/go-spiffe/v2 v2.3.0 // indirect
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
github.com/zeebo/errs v1.3.0 // indirect
go.opencensus.io v0.24.0 // indirect
- go.opentelemetry.io/contrib/exporters/autoexport v0.46.1 // indirect
+ go.opentelemetry.io/contrib/bridges/prometheus v0.54.0 // indirect
+ go.opentelemetry.io/contrib/exporters/autoexport v0.54.0 // indirect
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0 // indirect
go.opentelemetry.io/otel v1.29.0 // indirect
- go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.44.0 // indirect
- go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v0.44.0 // indirect
+ go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.5.0 // indirect
+ go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.29.0 // indirect
+ go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.29.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.29.0 // indirect
- go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.27.0 // indirect
- go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.21.0 // indirect
- go.opentelemetry.io/otel/exporters/prometheus v0.44.0 // indirect
- go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v0.44.0 // indirect
- go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.21.0 // indirect
+ go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.29.0 // indirect
+ go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.29.0 // indirect
+ go.opentelemetry.io/otel/exporters/prometheus v0.51.0 // indirect
+ go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.5.0 // indirect
+ go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.29.0 // indirect
+ go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.29.0 // indirect
+ go.opentelemetry.io/otel/log v0.5.0 // indirect
go.opentelemetry.io/otel/metric v1.29.0 // indirect
go.opentelemetry.io/otel/sdk v1.29.0 // indirect
- go.opentelemetry.io/otel/sdk/metric v1.28.0 // indirect
+ go.opentelemetry.io/otel/sdk/log v0.5.0 // indirect
+ go.opentelemetry.io/otel/sdk/metric v1.29.0 // indirect
go.opentelemetry.io/otel/trace v1.29.0 // indirect
go.opentelemetry.io/proto/otlp v1.3.1 // indirect
- golang.org/x/crypto v0.28.0 // indirect
- golang.org/x/oauth2 v0.22.0 // indirect
- golang.org/x/term v0.25.0 // indirect
- golang.org/x/time v0.5.0 // indirect
- golang.org/x/tools v0.25.0 // indirect
- google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect
- google.golang.org/genproto/googleapis/api v0.0.0-20240814211410-ddb44dafa142 // indirect
- google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142 // indirect
+ golang.org/x/crypto v0.32.0 // indirect
+ golang.org/x/oauth2 v0.23.0 // indirect
+ golang.org/x/term v0.28.0 // indirect
+ golang.org/x/time v0.7.0 // indirect
+ golang.org/x/tools v0.29.0 // indirect
+ google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1 // indirect
+ google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1 // indirect
+ google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 // indirect
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
gopkg.in/inf.v0 v0.9.1 // indirect
gopkg.in/warnings.v0 v0.1.2 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
- k8s.io/apiserver v0.31.1 // indirect
- k8s.io/cli-runtime v0.31.0 // indirect
- k8s.io/component-base v0.31.1 // indirect
+ k8s.io/apiserver v0.32.0 // indirect
+ k8s.io/cli-runtime v0.32.0 // indirect
+ k8s.io/component-base v0.32.0 // indirect
k8s.io/klog/v2 v2.130.1 // indirect
- k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 // indirect
- k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 // indirect
- sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.30.3 // indirect
- sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
- sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect
+ k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f // indirect
+ k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 // indirect
+ sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.0 // indirect
+ sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 // indirect
+ sigs.k8s.io/structured-merge-diff/v4 v4.4.2 // indirect
)
diff --git a/staging/operator-registry/go.sum b/staging/operator-registry/go.sum
index e8ad4f6274..88eebd276c 100644
--- a/staging/operator-registry/go.sum
+++ b/staging/operator-registry/go.sum
@@ -1,3 +1,5 @@
+cel.dev/expr v0.18.0 h1:CJ6drgk+Hf96lkLikr4rFf19WrU0BOWEihyZnI2TAzo=
+cel.dev/expr v0.18.0/go.mod h1:MrpN08Q+lEBs+bGYdLxxHkZoUSsCp0nSKTs0nTymJgw=
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU=
github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8=
@@ -10,8 +12,8 @@ github.com/MakeNowJust/heredoc v1.0.0 h1:cXCdzVdstXyiTqTvfqk9SDHpKNjxuom+DOlyEeQ
github.com/MakeNowJust/heredoc v1.0.0/go.mod h1:mG5amYoWBHf8vpLOuehzbGGw0EHxpZZ6lCpQ4fNJ8LE=
github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY=
github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU=
-github.com/Microsoft/hcsshim v0.12.5 h1:bpTInLlDy/nDRWFVcefDZZ1+U8tS+rz3MxjKgu9boo0=
-github.com/Microsoft/hcsshim v0.12.5/go.mod h1:tIUGego4G1EN5Hb6KC90aDYiUI2dqLSTTOCjVNpOgZ8=
+github.com/Microsoft/hcsshim v0.12.9 h1:2zJy5KA+l0loz1HzEGqyNnjd3fyZA31ZBCGKacp6lLg=
+github.com/Microsoft/hcsshim v0.12.9/go.mod h1:fJ0gkFAna6ukt0bLdKB8djt4XIJhF/vEPuoIWYVvZ8Y=
github.com/akrylysov/pogreb v0.10.2 h1:e6PxmeyEhWyi2AKOBIJzAEi4HkiC+lKyCocRGlnDi78=
github.com/akrylysov/pogreb v0.10.2/go.mod h1:pNs6QmpQ1UlTJKDezuRWmaqkgUE2TuU0YTWyqJZ7+lI=
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
@@ -47,32 +49,34 @@ github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDk
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
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.22 h1:nZuNnNRA6T6jB975rx2RRNqqH2k6ELYKDZfqTHqwyy0=
-github.com/containerd/containerd v1.7.22/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=
-github.com/containerd/continuity v0.4.2/go.mod h1:F6PTNCKepoxEaXLQp3wDAjygEnImnZ/7o4JzpodfroQ=
-github.com/containerd/errdefs v0.1.0 h1:m0wCRBiu1WJT/Fr+iOoQHMQS/eP5myQ8lCv4Dz5ZURM=
-github.com/containerd/errdefs v0.1.0/go.mod h1:YgWiiHtLmSeBrvpw+UfPijzbLaB77mEG1WwJTDETIV0=
+github.com/containerd/containerd v1.7.25 h1:khEQOAXOEJalRO228yzVsuASLH42vT7DIo9Ss+9SMFQ=
+github.com/containerd/containerd v1.7.25/go.mod h1:tWfHzVI0azhw4CT2vaIjsb2CoV4LJ9PrMPaULAr21Ok=
+github.com/containerd/containerd/api v1.8.0 h1:hVTNJKR8fMc/2Tiw60ZRijntNMd1U+JVMyTRdsD2bS0=
+github.com/containerd/containerd/api v1.8.0/go.mod h1:dFv4lt6S20wTu/hMcP4350RL87qPWLVa/OHOwmmdnYc=
+github.com/containerd/continuity v0.4.4 h1:/fNVfTJ7wIl/YPMHjf+5H32uFhl63JucB34PlCpMKII=
+github.com/containerd/continuity v0.4.4/go.mod h1:/lNJvtJKUQStBzpVQ1+rasXO1LAWtUQssk28EZvJ3nE=
+github.com/containerd/errdefs v0.3.0 h1:FSZgGOeK4yuT/+DnF07/Olde/q4KBoMsaamhXxIMDp4=
+github.com/containerd/errdefs v0.3.0/go.mod h1:+YBYIdtsnF4Iw6nWZhJcqGSg/dwvV7tyJ/kCkyJ2k+M=
+github.com/containerd/errdefs/pkg v0.3.0 h1:9IKJ06FvyNlexW690DXuQNx2KA2cUJXx151Xdx3ZPPE=
+github.com/containerd/errdefs/pkg v0.3.0/go.mod h1:NJw6s9HwNuRhnjJhM7pylWwMyAkmCQvQ4GpJHEqRLVk=
github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I=
github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo=
github.com/containerd/platforms v0.2.1 h1:zvwtM3rz2YHPQsF2CHYM8+KtB5dvhISiXh5ZpSBQv6A=
github.com/containerd/platforms v0.2.1/go.mod h1:XHCb+2/hzowdiut9rkudds9bE5yJ7npe7dG/wG+uFPw=
github.com/containerd/ttrpc v1.2.5 h1:IFckT1EFQoFBMG4c3sMdT8EP3/aKfumK1msY+Ze4oLU=
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.4 h1:H5+LAMHPZEqX6vVNOQ+IguVsaFl8kbO/SZ/VPXjxhy0=
-github.com/containers/common v0.60.4/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/containerd/typeurl/v2 v2.2.0 h1:6NBDbQzr7I5LHgp34xAXYF5DOTQDn05X58lsPEmzLso=
+github.com/containerd/typeurl/v2 v2.2.0/go.mod h1:8XOOxnyatxSWuG8OfsZXVnAF4iZfedjS/8UHSPJnX4g=
+github.com/containers/common v0.61.0 h1:j/84PTqZIKKYy42OEJsZmjZ4g4Kq2ERuC3tqp2yWdh4=
+github.com/containers/common v0.61.0/go.mod h1:NGRISq2vTFPSbhNqj6MLwyes4tWSlCnqbJg7R77B8xc=
+github.com/containers/image/v5 v5.33.0 h1:6oPEFwTurf7pDTGw7TghqGs8K0+OvPtY/UyzU0B2DfE=
+github.com/containers/image/v5 v5.33.0/go.mod h1:T7HpASmvnp2H1u4cyckMvCzLuYgpD18dSmabSw0AcHk=
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=
github.com/containers/ocicrypt v1.2.0/go.mod h1:ZNviigQajtdlxIZGibvblVuIFBKIuUI2M0QM12SD31U=
-github.com/containers/storage v1.55.0 h1:wTWZ3YpcQf1F+dSP4KxG9iqDfpQY1otaUXjPpffuhgg=
-github.com/containers/storage v1.55.0/go.mod h1:28cB81IDk+y7ok60Of6u52RbCeBRucbFOeLunhER1RQ=
+github.com/containers/storage v1.56.0 h1:DZ9KSkj6M2tvj/4bBoaJu3QDHRl35BwsZ4kmLJS97ZI=
+github.com/containers/storage v1.56.0/go.mod h1:c6WKowcAlED/DkWGNuL9bvGYqIWCVy7isRMdCSKWNjk=
github.com/coreos/go-semver v0.3.1 h1:yi21YpKnrx1gt5R+la8n5WgS0kCrsPp33dmEyHReZr4=
github.com/coreos/go-semver v0.3.1/go.mod h1:irMmmIw/7yzSRPWryHsK7EYSg09caPQL03VsM8rvUec=
github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs=
@@ -86,16 +90,16 @@ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78=
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc=
-github.com/distribution/distribution/v3 v3.0.0-beta.1 h1:X+ELTxPuZ1Xe5MsD3kp2wfGUhc8I+MPfRis8dZ818Ic=
-github.com/distribution/distribution/v3 v3.0.0-beta.1/go.mod h1:O9O8uamhHzWWQVTjuQpyYUVm/ShPHPUDgvQMpHGVBDs=
+github.com/distribution/distribution/v3 v3.0.0-rc.1 h1:6M4ewmPBUhF7wtQ8URLOQ1W/PQuVKiD1u8ymwLDUGqQ=
+github.com/distribution/distribution/v3 v3.0.0-rc.1/go.mod h1:tFjaPDeHCrLg28e4feBIy27cP+qmrc/mvkl6MFIfVi4=
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.3.1+incompatible h1:qEGdFBF3Xu6SCvCYhc7CzaQTlBmqDuzxPDpigSyeKQQ=
-github.com/docker/cli v27.3.1+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
+github.com/docker/cli v27.4.1+incompatible h1:VzPiUlRJ/xh+otB75gva3r05isHMo5wXDfPRi5/b4hI=
+github.com/docker/cli v27.4.1+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.2.0+incompatible h1:Rk9nIVdfH3+Vz4cyI/uhbINhEZ/oLmc+CBXmH6fbNk4=
-github.com/docker/docker v27.2.0+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
+github.com/docker/docker v27.3.1+incompatible h1:KttF0XoteNTicmUtBO0L2tP+J7FGRFTjaEF4k6WdhfI=
+github.com/docker/docker v27.3.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
github.com/docker/docker-credential-helpers v0.8.2 h1:bX3YxiGzFP5sOXWc3bTPEXdEaZSeVMrFgOr3T+zrFAo=
github.com/docker/docker-credential-helpers v0.8.2/go.mod h1:P3ci7E3lwkZg6XiHdRKft1KckHiO9a2rNtyFbZ/ry9M=
github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c=
@@ -120,12 +124,12 @@ github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv
github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ=
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66DAb0lQFJrpS6731Oaa12ikc+DiI=
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376/go.mod h1:an3vInlBmSxCcxctByoQdvwPiA7DTK7jaaFDBTtu0ic=
-github.com/go-git/go-billy/v5 v5.5.0 h1:yEY4yhzCDuMGSv83oGxiBotRzhwhNr8VZyphhiu+mTU=
-github.com/go-git/go-billy/v5 v5.5.0/go.mod h1:hmexnoNsr2SJU1Ju67OaNz5ASJY3+sHgFRpCtpDCKow=
-github.com/go-git/go-git/v5 v5.11.0 h1:XIZc1p+8YzypNr34itUfSvYJcv+eYdTnTvOZ2vD3cA4=
-github.com/go-git/go-git/v5 v5.11.0/go.mod h1:6GFcX2P3NM7FPBfpePbpLd21XxsgdAt+lKqXmCUiUCY=
-github.com/go-jose/go-jose/v4 v4.0.2 h1:R3l3kkBds16bO7ZFAEEcofK0MkrAJt3jlJznWZG0nvk=
-github.com/go-jose/go-jose/v4 v4.0.2/go.mod h1:WVf9LFMHh/QVrmqrOfqun0C45tMe3RoiKJMPvgWwLfY=
+github.com/go-git/go-billy/v5 v5.6.1 h1:u+dcrgaguSSkbjzHwelEjc0Yj300NUevrrPphk/SoRA=
+github.com/go-git/go-billy/v5 v5.6.1/go.mod h1:0AsLr1z2+Uksi4NlElmMblP5rPcDZNRCD8ujZCRR2BE=
+github.com/go-git/go-git/v5 v5.13.1 h1:DAQ9APonnlvSWpvolXWIuV6Q6zXy2wHbN4cVlNR5Q+M=
+github.com/go-git/go-git/v5 v5.13.1/go.mod h1:qryJB4cSBoq3FRoBRf5A77joojuBcmPJ0qu3XXXVixc=
+github.com/go-jose/go-jose/v4 v4.0.4 h1:VsjPI33J0SB9vQM6PLmNjoHqMQNGPiZ0rHL7Ni7Q6/E=
+github.com/go-jose/go-jose/v4 v4.0.4/go.mod h1:NKb5HO1EZccyMpiZNbdUw/14tiXNyUJh188dfnMCAfc=
github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
@@ -168,11 +172,12 @@ github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:W
github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
-github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
-github.com/google/cel-go v0.20.1 h1:nDx9r8S3L4pE61eDdt8igGj8rf5kjYR3ILxWIpWNi84=
-github.com/google/cel-go v0.20.1/go.mod h1:kWcIzTsPX0zmQ+H3TirHstLLf9ep5QTsZBN9u4dOYLg=
+github.com/google/btree v1.0.1 h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4=
+github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA=
+github.com/google/cel-go v0.22.1 h1:AfVXx3chM2qwoSbM7Da8g8hX8OVSkBFwX+rz2+PcK40=
+github.com/google/cel-go v0.22.1/go.mod h1:BuznPXXfQDpXKWQ9sPW3TzlAJN5zzFe+i9tIs0yC4s8=
github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I=
github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U=
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
@@ -181,15 +186,14 @@ github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMyw
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0=
github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
-github.com/google/pprof v0.0.0-20240827171923-fa2c70bbbfe5 h1:5iH8iuqE5apketRbSFBy+X1V0o+l+8NF1avt4HWl7cA=
-github.com/google/pprof v0.0.0-20240827171923-fa2c70bbbfe5/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144=
+github.com/google/pprof v0.0.0-20241210010833-40e02aabc2ad h1:a6HEuzUHeKH6hwfN/ZoQgRgVIWFJljSWa/zetS2WTvg=
+github.com/google/pprof v0.0.0-20241210010833-40e02aabc2ad/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144=
github.com/google/safetext v0.0.0-20220905092116-b49f7bc46da2 h1:SJ+NtwL6QaZ21U+IrK7d0gGgpjGGvd2kz+FzTHVzdqI=
github.com/google/safetext v0.0.0-20220905092116-b49f7bc46da2/go.mod h1:Tv1PlzqC9t8wNnpPdctvtSUOPUUg4SHeE6vR1Ir2hmg=
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
@@ -205,8 +209,8 @@ github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.1.0 h1:pRhl55Yx1eC7BZ1N+BBWwn
github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.1.0/go.mod h1:XKMd7iuf/RGPSMJ/U4HP0zS2Z9Fh8Ps9a+6X26m/tmI=
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 h1:Ovs26xHkKqVztRpIrF/92BcuyuQ/YW4NSIpoGtfXNho=
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=
-github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 h1:bkypFPDjIYGfCYD5mRBvpqxfYX1YCS1PXdKYWi8FsN0=
-github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0/go.mod h1:P+Lt/0by1T8bfcF3z737NnSbmxQAppXMRziHUxPOC8k=
+github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 h1:asbCHRVmodnJTuQ3qamDwqVOIjwqUPTYmYuemVOx+Ys=
+github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0/go.mod h1:ggCgvZ2r7uOoQjOyu2Y1NhHmEPPzzuhWgcza5M1Ji1I=
github.com/grpc-ecosystem/grpc-health-probe v0.4.34 h1:pX8M5wFxJMom2ISyD+kBLesRt75BWwx6Td/6ls4Rsos=
github.com/grpc-ecosystem/grpc-health-probe v0.4.34/go.mod h1:w3Kou6RFYTVSsvM8bDU4kEOYAKqyzS73tS2Fpe/eFsA=
github.com/h2non/filetype v1.1.3 h1:FKkx9QbD7HR/zjK1Ia5XiBsq9zdLi5Kf3zGyFTAFkGg=
@@ -221,14 +225,12 @@ github.com/hashicorp/golang-lru/arc/v2 v2.0.5 h1:l2zaLDubNhW4XO3LnliVj0GXO3+/CGN
github.com/hashicorp/golang-lru/arc/v2 v2.0.5/go.mod h1:ny6zBSQZi2JxIeYcv7kt2sH2PXJtirBN7RDhRpxPkxU=
github.com/hashicorp/golang-lru/v2 v2.0.5 h1:wW7h1TG88eUIJ2i69gaE3uNVtEPIagzhGvHgwfx2Vm4=
github.com/hashicorp/golang-lru/v2 v2.0.5/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM=
-github.com/imdario/mergo v0.3.16 h1:wwQJbIsHYGMUyLSPrEq1CT16AhnhNJQ51+4fdHUnCl4=
-github.com/imdario/mergo v0.3.16/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY=
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A=
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo=
-github.com/joelanford/ignore v0.1.0 h1:VawbTDeg5EL+PN7W8gxVzGerfGpVo3gFdR5ZAqnkYRk=
-github.com/joelanford/ignore v0.1.0/go.mod h1:Vb0PQMAQXK29fmiPjDukpO8I2NTcp1y8LbhFijD1/0o=
+github.com/joelanford/ignore v0.1.1 h1:vKky5RDoPT+WbONrbQBgOn95VV/UPh4ejlyAbbzgnQk=
+github.com/joelanford/ignore v0.1.1/go.mod h1:8eho/D8fwQ3rIXrLwE23AaeaGDNXqLE9QJ3zJ4LIPCw=
github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
@@ -238,8 +240,8 @@ github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHm
github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
-github.com/klauspost/compress v1.17.9 h1:6KIumPrER1LHsvBVuDa0r5xaG0Es51mhhB9BQB2qeMA=
-github.com/klauspost/compress v1.17.9/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw=
+github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc=
+github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0=
github.com/klauspost/pgzip v1.2.6 h1:8RXeL5crjEUFnR2/Sn6GJNWtSQ3Dk8pq4CL3jvdDyjU=
github.com/klauspost/pgzip v1.2.6/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs=
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
@@ -248,6 +250,8 @@ github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
+github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
+github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw=
github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de h1:9TO3cAIGXtEhnIaL+V+BEER86oLrvS+kWobKpbJuye0=
@@ -259,14 +263,16 @@ github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D
github.com/mattn/go-sqlite3 v1.14.24 h1:tpSp2G2KyMnnQu99ngJ47EIkWVmliIizyZBfPrBWDRM=
github.com/mattn/go-sqlite3 v1.14.24/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y=
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
-github.com/maxbrunsfeld/counterfeiter/v6 v6.9.0 h1:ERhc+PJKEyqWQnKu7/K0frSVGFihYYImqNdqP5r0cN0=
-github.com/maxbrunsfeld/counterfeiter/v6 v6.9.0/go.mod h1:tU2wQdIyJ7fib/YXxFR0dgLlFz3yl4p275UfUKmDFjk=
+github.com/maxbrunsfeld/counterfeiter/v6 v6.11.2 h1:yVCLo4+ACVroOEr4iFU1iH46Ldlzz2rTuu18Ra7M8sU=
+github.com/maxbrunsfeld/counterfeiter/v6 v6.11.2/go.mod h1:VzB2VoMh1Y32/QqDfg9ZJYHj99oM4LiGtqPZydTiQSQ=
github.com/mitchellh/go-wordwrap v1.0.1 h1:TLuKupo69TCn6TQSyGxwI1EblZZEsQ0vMlAFQflz0v0=
github.com/mitchellh/go-wordwrap v1.0.1/go.mod h1:R62XHJLzvMFRBbcrT7m7WgmE1eOyTSsCt+hzestvNj0=
github.com/moby/locker v1.0.1 h1:fOXqR41zeveg4fFODix+1Ch4mj/gT0NE1XJbp/epuBg=
github.com/moby/locker v1.0.1/go.mod h1:S7SDdo5zpBK84bzzVlKr2V0hz+7x9hWbYC/kq7oQppc=
-github.com/moby/spdystream v0.4.0 h1:Vy79D6mHeJJjiPdFEL2yku1kl0chZpJfZcPpb16BRl8=
-github.com/moby/spdystream v0.4.0/go.mod h1:xBAYlnt/ay+11ShkdFKNAG7LsyK/tmNBVvVOwrfMgdI=
+github.com/moby/spdystream v0.5.0 h1:7r0J1Si3QO/kjRitvSLVVFUjxMEb/YLj6S9FF62JBCU=
+github.com/moby/spdystream v0.5.0/go.mod h1:xBAYlnt/ay+11ShkdFKNAG7LsyK/tmNBVvVOwrfMgdI=
+github.com/moby/sys/capability v0.3.0 h1:kEP+y6te0gEXIaeQhIi0s7vKs/w0RPoH1qPa6jROcVg=
+github.com/moby/sys/capability v0.3.0/go.mod h1:4g9IK291rVkms3LKCDOoYlnV8xKwoDTpIrNEE35Wq0I=
github.com/moby/sys/mountinfo v0.7.2 h1:1shs6aH5s4o5H2zQLn796ADW1wMrIwHsyJ2v9KouLrg=
github.com/moby/sys/mountinfo v0.7.2/go.mod h1:1YOa8w8Ih7uW0wALDUgT1dTTSBrZ+HiBLGws92L2RU4=
github.com/moby/sys/sequential v0.5.0 h1:OPvI35Lzn9K04PBbCLW0g4LcFAJgHsvXsRyewg5lXtc=
@@ -289,18 +295,18 @@ github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8m
github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f h1:y5//uYreIhSUg3J1GEMiLbxo1LJaP8RfCpH6pymGZus=
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw=
-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/onsi/ginkgo/v2 v2.22.2 h1:/3X8Panh8/WwhU/3Ssa6rCKqPLuAkVY2I0RoyDLySlU=
+github.com/onsi/ginkgo/v2 v2.22.2/go.mod h1:oeMosUL+8LtarXBHu/c0bx2D/K9zyQ6uX3cTyztHwsk=
+github.com/onsi/gomega v1.36.2 h1:koNYke6TVk6ZmnyHrCXba/T/MoLBXFjeC1PtvYgw0A8=
+github.com/onsi/gomega v1.36.2/go.mod h1:DdwyADRjrc825LhMEkD76cHR5+pUnjhUN8GlHlRPHzY=
github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U=
github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM=
github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug=
github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM=
github.com/opencontainers/runtime-spec v1.2.0 h1:z97+pHb3uELt/yiAWD691HNHQIF07bE7dzrbT927iTk=
github.com/opencontainers/runtime-spec v1.2.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
-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/api v0.29.0 h1:TxAR8RCO+I4FjRrY4PSMgnlmbxNWeD8pzHXp7xwHNmw=
+github.com/operator-framework/api v0.29.0/go.mod h1:0whQE4mpMDd2zyHkQe+bFa3DLoRs6oGWCbu8dY/3pyc=
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=
@@ -318,8 +324,8 @@ github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH
github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=
github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g=
-github.com/prometheus/client_golang v1.19.1 h1:wZWJDwK+NameRJuPGDhlnFgx8e8HN3XHQeLaYJFJBOE=
-github.com/prometheus/client_golang v1.19.1/go.mod h1:mP78NwGzrVks5S2H6ab8+ZZGJLZUq1hoULYBAYBw1Ho=
+github.com/prometheus/client_golang v1.20.2 h1:5ctymQzZlyOON1666svgwn3s6IKWgfbjsejTMiXIyjg=
+github.com/prometheus/client_golang v1.20.2/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE=
github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
@@ -327,8 +333,8 @@ github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p
github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY=
github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc=
-github.com/prometheus/common v0.55.0 h1:KEi6DK7lXW/m7Ig5i47x0vRzuBsHuvJdi5ee6Y3G1dc=
-github.com/prometheus/common v0.55.0/go.mod h1:2SECS4xJG1kd8XF9IcM1gMX6510RAEL65zxzNImwdc8=
+github.com/prometheus/common v0.57.0 h1:Ro/rKjwdq9mZn1K5QPctzh+MA4Lp0BuYk5ZZEVhoNcY=
+github.com/prometheus/common v0.57.0/go.mod h1:7uRPFSUTbfZWsJ7MHY56sqt7hLQu3bxXHDnNhl8E9qI=
github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ=
@@ -368,16 +374,14 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
-github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
-github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
-github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635 h1:kdXcSzyDtseVEc4yCz2qF8ZrQvIDBJLl4S1c3GCXmoI=
-github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww=
+github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
+github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
github.com/tidwall/btree v1.7.0 h1:L1fkJH/AuEh5zBnnBbmTwQ5Lt+bRJ5A8EWecslvo9iI=
github.com/tidwall/btree v1.7.0/go.mod h1:twD9XRA5jj9VUQGELzDO4HPQTNJsoWWfYEL+EUQ2cKY=
github.com/ulikunitz/xz v0.5.12 h1:37Nm15o69RwBkXM0J6A5OlE67RZTfzUxTj8fB3dfcsc=
github.com/ulikunitz/xz v0.5.12/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14=
-github.com/vbatts/tar-split v0.11.5 h1:3bHCTIheBm1qFTcgh9oPu+nNBtX+XJIupG/vacinCts=
-github.com/vbatts/tar-split v0.11.5/go.mod h1:yZbwRsSeGjusneWgA781EKej9HF8vme8okylkAeNKLk=
+github.com/vbatts/tar-split v0.11.6 h1:4SjTW5+PU11n6fZenf2IPoV8/tz3AaYHMWjf23envGs=
+github.com/vbatts/tar-split v0.11.6/go.mod h1:dqKNtesIOr2j2Qv3W/cHjnvk9I8+G7oAkFDFN6TCBEI=
github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM=
github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg=
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
@@ -387,44 +391,54 @@ github.com/zeebo/errs v1.3.0 h1:hmiaKqgYZzcVgRL1Vkc1Mn2914BbzB0IBxs+ebeutGs=
github.com/zeebo/errs v1.3.0/go.mod h1:sgbWHsvVuTPHcqJJGQ1WhI5KbWlHYz+2+2C/LSEtCw4=
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=
-go.etcd.io/etcd/client/pkg/v3 v3.5.14/go.mod h1:8uMgAokyG1czCtIdsq+AGyYQMvpIKnSvPjFMunkgeZI=
-go.etcd.io/etcd/client/v3 v3.5.14 h1:CWfRs4FDaDoSz81giL7zPpZH2Z35tbOrAJkkjMqOupg=
-go.etcd.io/etcd/client/v3 v3.5.14/go.mod h1:k3XfdV/VIHy/97rqWjoUzrj9tk7GgJGH9J8L4dNXmAk=
+go.etcd.io/etcd/api/v3 v3.5.16 h1:WvmyJVbjWqK4R1E+B12RRHz3bRGy9XVfh++MgbN+6n0=
+go.etcd.io/etcd/api/v3 v3.5.16/go.mod h1:1P4SlIP/VwkDmGo3OlOD7faPeP8KDIFhqvciH5EfN28=
+go.etcd.io/etcd/client/pkg/v3 v3.5.16 h1:ZgY48uH6UvB+/7R9Yf4x574uCO3jIx0TRDyetSfId3Q=
+go.etcd.io/etcd/client/pkg/v3 v3.5.16/go.mod h1:V8acl8pcEK0Y2g19YlOV9m9ssUe6MgiDSobSoaBAM0E=
+go.etcd.io/etcd/client/v3 v3.5.16 h1:sSmVYOAHeC9doqi0gv7v86oY/BTld0SEFGaxsU9eRhE=
+go.etcd.io/etcd/client/v3 v3.5.16/go.mod h1:X+rExSGkyqxvu276cr2OwPLBaeqFu1cIl4vmRjAD/50=
go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0=
go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo=
-go.opentelemetry.io/contrib/exporters/autoexport v0.46.1 h1:ysCfPZB9AjUlMa1UHYup3c9dAOCMQX/6sxSfPBUoxHw=
-go.opentelemetry.io/contrib/exporters/autoexport v0.46.1/go.mod h1:ha0aiYm+DOPsLHjh0zoQ8W8sLT+LJ58J3j47lGpSLrU=
-go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.53.0 h1:9G6E0TXzGFVfTnawRzrPl83iHOAV7L8NJiR8RSGYV1g=
-go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.53.0/go.mod h1:azvtTADFQJA8mX80jIH/akaE7h+dbm/sVuaHqN13w74=
+go.opentelemetry.io/contrib/bridges/prometheus v0.54.0 h1:WWL67oxtknNVMb70lJXxXruf8UyK/a9hmIE1XO3Uedg=
+go.opentelemetry.io/contrib/bridges/prometheus v0.54.0/go.mod h1:LqNcnXmyULp8ertk4hUTVtSUvKXj4h1Mx7gUCSSr/q0=
+go.opentelemetry.io/contrib/exporters/autoexport v0.54.0 h1:dTmcmVm4J54IRPGm5oVjLci1uYat4UDea84E2tyBaAk=
+go.opentelemetry.io/contrib/exporters/autoexport v0.54.0/go.mod h1:zPp5Fwpq2Hc7xMtVttg6GhZMcfTESjVbY9ONw2o/Dc4=
+go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.54.0 h1:r6I7RJCN86bpD/FQwedZ0vSixDpwuWREjW9oRMsmqDc=
+go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.54.0/go.mod h1:B9yO6b04uB80CzjedvewuqDhxJxi11s7/GtiGa8bAjI=
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0 h1:TT4fX+nBOA/+LUkobKGW1ydGcn+G3vRw9+g5HwCphpk=
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0/go.mod h1:L7UH0GbB0p47T4Rri3uHjbpCFYrVrwc1I25QhNPiGK8=
go.opentelemetry.io/otel v1.29.0 h1:PdomN/Al4q/lN6iBJEN3AwPvUiHPMlt93c8bqTG5Llw=
go.opentelemetry.io/otel v1.29.0/go.mod h1:N/WtXPs1CNCUEx+Agz5uouwCba+i+bJGFicT8SR4NP8=
-go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.44.0 h1:jd0+5t/YynESZqsSyPz+7PAFdEop0dlN0+PkyHYo8oI=
-go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.44.0/go.mod h1:U707O40ee1FpQGyhvqnzmCJm1Wh6OX6GGBVn0E6Uyyk=
-go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v0.44.0 h1:bflGWrfYyuulcdxf14V6n9+CoQcu5SAAdHmDPAJnlps=
-go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v0.44.0/go.mod h1:qcTO4xHAxZLaLxPd60TdE88rxtItPHgHWqOhOGRr0as=
+go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.5.0 h1:4d++HQ+Ihdl+53zSjtsCUFDmNMju2FC9qFkUlTxPLqo=
+go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.5.0/go.mod h1:mQX5dTO3Mh5ZF7bPKDkt5c/7C41u/SiDr9XgTpzXXn8=
+go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.29.0 h1:k6fQVDQexDE+3jG2SfCQjnHS7OamcP73YMoxEVq5B6k=
+go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.29.0/go.mod h1:t4BrYLHU450Zo9fnydWlIuswB1bm7rM8havDpWOJeDo=
+go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.29.0 h1:xvhQxJ/C9+RTnAj5DpTg7LSM1vbbMTiXt7e9hsfqHNw=
+go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.29.0/go.mod h1:Fcvs2Bz1jkDM+Wf5/ozBGmi3tQ/c9zPKLnsipnfhGAo=
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.29.0 h1:dIIDULZJpgdiHz5tXrTgKIMLkus6jEFa7x5SOKcyR7E=
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.29.0/go.mod h1:jlRVBe7+Z1wyxFSUs48L6OBQZ5JwH2Hg/Vbl+t9rAgI=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.27.0 h1:qFffATk0X+HD+f1Z8lswGiOQYKHRlzfmdJm0wEaVrFA=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.27.0/go.mod h1:MOiCmryaYtc+V0Ei+Tx9o5S1ZjA7kzLucuVuyzBZloQ=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.21.0 h1:digkEZCJWobwBqMwC0cwCq8/wkkRy/OowZg5OArWZrM=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.21.0/go.mod h1:/OpE/y70qVkndM0TrxT4KBoN3RsFZP0QaofcfYrj76I=
-go.opentelemetry.io/otel/exporters/prometheus v0.44.0 h1:08qeJgaPC0YEBu2PQMbqU3rogTlyzpjhCI2b58Yn00w=
-go.opentelemetry.io/otel/exporters/prometheus v0.44.0/go.mod h1:ERL2uIeBtg4TxZdojHUwzZfIFlUIjZtxubT5p4h1Gjg=
-go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v0.44.0 h1:dEZWPjVN22urgYCza3PXRUGEyCB++y1sAqm6guWFesk=
-go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v0.44.0/go.mod h1:sTt30Evb7hJB/gEk27qLb1+l9n4Tb8HvHkR0Wx3S6CU=
-go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.21.0 h1:VhlEQAPp9R1ktYfrPk5SOryw1e9LDDTZCbIPFrho0ec=
-go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.21.0/go.mod h1:kB3ufRbfU+CQ4MlUcqtW8Z7YEOBeK2DJ6CmR5rYYF3E=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.29.0 h1:nSiV3s7wiCam610XcLbYOmMfJxB9gO4uK3Xgv5gmTgg=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.29.0/go.mod h1:hKn/e/Nmd19/x1gvIHwtOwVWM+VhuITSWip3JUDghj0=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.29.0 h1:JAv0Jwtl01UFiyWZEMiJZBiTlv5A50zNs8lsthXqIio=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.29.0/go.mod h1:QNKLmUEAq2QUbPQUfvw4fmv0bgbK7UlOSFCnXyfvSNc=
+go.opentelemetry.io/otel/exporters/prometheus v0.51.0 h1:G7uexXb/K3T+T9fNLCCKncweEtNEBMTO+46hKX5EdKw=
+go.opentelemetry.io/otel/exporters/prometheus v0.51.0/go.mod h1:v0mFe5Kk7woIh938mrZBJBmENYquyA0IICrlYm4Y0t4=
+go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.5.0 h1:ThVXnEsdwNcxdBO+r96ci1xbF+PgNjwlk457VNuJODo=
+go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.5.0/go.mod h1:rHWcSmC4q2h3gje/yOq6sAOaq8+UHxN/Ru3BbmDXOfY=
+go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.29.0 h1:WDdP9acbMYjbKIyJUhTvtzj601sVJOqgWdUxSdR/Ysc=
+go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.29.0/go.mod h1:BLbf7zbNIONBLPwvFnwNHGj4zge8uTCM/UPIVW1Mq2I=
+go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.29.0 h1:X3ZjNp36/WlkSYx0ul2jw4PtbNEDDeLskw3VPsrpYM0=
+go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.29.0/go.mod h1:2uL/xnOXh0CHOBFCWXz5u1A4GXLiW+0IQIzVbeOEQ0U=
+go.opentelemetry.io/otel/log v0.5.0 h1:x1Pr6Y3gnXgl1iFBwtGy1W/mnzENoK0w0ZoaeOI3i30=
+go.opentelemetry.io/otel/log v0.5.0/go.mod h1:NU/ozXeGuOR5/mjCRXYbTC00NFJ3NYuraV/7O78F0rE=
go.opentelemetry.io/otel/metric v1.29.0 h1:vPf/HFWTNkPu1aYeIsc98l4ktOQaL6LeSoeV2g+8YLc=
go.opentelemetry.io/otel/metric v1.29.0/go.mod h1:auu/QWieFVWx+DmQOUMgj0F8LHWdgalxXqvp7BII/W8=
go.opentelemetry.io/otel/sdk v1.29.0 h1:vkqKjk7gwhS8VaWb0POZKmIEDimRCMsopNYnriHyryo=
go.opentelemetry.io/otel/sdk v1.29.0/go.mod h1:pM8Dx5WKnvxLCb+8lG1PRNIDxu9g9b9g59Qr7hfAAok=
-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/sdk/log v0.5.0 h1:A+9lSjlZGxkQOr7QSBJcuyyYBw79CufQ69saiJLey7o=
+go.opentelemetry.io/otel/sdk/log v0.5.0/go.mod h1:zjxIW7sw1IHolZL2KlSAtrUi8JHttoeiQy43Yl3WuVQ=
+go.opentelemetry.io/otel/sdk/metric v1.29.0 h1:K2CfmJohnRgvZ9UAj2/FhIf/okdWcNdBwe1m8xFXiSY=
+go.opentelemetry.io/otel/sdk/metric v1.29.0/go.mod h1:6zZLdCl2fkauYoZIOn/soQIDSWFmNSRcICarHfuhNJQ=
go.opentelemetry.io/otel/trace v1.29.0 h1:J/8ZNK4XgR7a21DZUAsbF8pZ5Jcw1VhACmnYt39JTi4=
go.opentelemetry.io/otel/trace v1.29.0/go.mod h1:eHl3w0sp3paPkYstJOmAimxhiFXPg+MMTlEh3nsQgWQ=
go.opentelemetry.io/proto/otlp v1.3.1 h1:TrMUixzpM0yuc/znrFTP9MMRh8trP93mkCiDVeXrui0=
@@ -435,25 +449,25 @@ go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
-go.uber.org/zap v1.26.0 h1:sI7k6L95XOKS281NhVKOFCUNIvv9e0w4BF8N3u+tCRo=
-go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so=
+go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8=
+go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E=
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/crypto v0.28.0 h1:GBDwsMXVQi34v5CCYUm2jkJvu4cbtru2U4TN2PSyQnw=
-golang.org/x/crypto v0.28.0/go.mod h1:rmgy+3RHxRZMyY0jjAJShp2zgEdOqj2AO7U0pYmeQ7U=
+golang.org/x/crypto v0.32.0 h1:euUpcYgM8WcP71gNpTqQCn6rC2t6ULUPiOzfWaXVVfc=
+golang.org/x/crypto v0.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
-golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 h1:2dVuKD2vS7b0QIHQbpyTISPd0LeHDbnYEryqj5Q1ug8=
-golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY=
+golang.org/x/exp v0.0.0-20241009180824-f66d83c29e7c h1:7dEasQXItcW1xKJ2+gg5VOiBnqWrJc+rq0DPKyvvdbY=
+golang.org/x/exp v0.0.0-20241009180824-f66d83c29e7c/go.mod h1:NQtJDoLvd6faHhE7m4T/1IY708gDefGGjR/iUW8yQQ8=
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
-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/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4=
+golang.org/x/mod v0.22.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-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -466,11 +480,11 @@ golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLL
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
-golang.org/x/net v0.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4=
-golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU=
+golang.org/x/net v0.34.0 h1:Mb7Mrk043xzHgnRM88suvJFwzVrRfHEHJEl5/71CKw0=
+golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
-golang.org/x/oauth2 v0.22.0 h1:BzDx2FehcG7jJwgWLELCdmLuxk2i+x9UDpSiss2u0ZA=
-golang.org/x/oauth2 v0.22.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=
+golang.org/x/oauth2 v0.23.0 h1:PbgcYx2W7i4LvjJWEbf0ngHV6qJYr86PkAV3bXdLEbs=
+golang.org/x/oauth2 v0.23.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -478,8 +492,8 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJ
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ=
-golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
+golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ=
+golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -493,17 +507,17 @@ golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.26.0 h1:KHjCJyddX0LoSTb3J+vWpupP9p0oznkqVk/IfjymZbo=
-golang.org/x/sys v0.26.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
+golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU=
+golang.org/x/sys v0.29.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.25.0 h1:WtHI/ltw4NvSUig5KARz9h521QvRC8RmF/cuYqifU24=
-golang.org/x/term v0.25.0/go.mod h1:RPyXicDX+6vLxogjjRxjgD2TKtmAO6NZBsBRfrOLu7M=
+golang.org/x/term v0.28.0 h1:/Ts8HFuMR2E6IP/jlo7QVLZHggjKQbhu/7H0LJFr3Gg=
+golang.org/x/term v0.28.0/go.mod h1:Sw/lC2IAUZ92udQNf3WodGtn4k/XoLyZoh8v/8uiwek=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
-golang.org/x/text v0.19.0 h1:kTxAhCbGbxhK0IwgSKiMO5awPoDQ0RpfiVYBfK860YM=
-golang.org/x/text v0.19.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY=
-golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk=
-golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
+golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=
+golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
+golang.org/x/time v0.7.0 h1:ntUhktv3OPE6TgYxXWv9vKvUSJyIFJlyohwbkEwPrKQ=
+golang.org/x/time v0.7.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
@@ -513,8 +527,8 @@ golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtn
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
-golang.org/x/tools v0.25.0 h1:oFU9pkj/iJgs+0DT+VMHrx+oBKs/LJMV+Uvg78sl+fE=
-golang.org/x/tools v0.25.0/go.mod h1:/vtpO8WL1N9cQC3FN5zPqb//fRXskFHbLKk4OW1Q7rg=
+golang.org/x/tools v0.29.0 h1:Xx0h3TtM9rzQpQuR4dKLrdglAmCEN5Oi+P74JdhdzXE=
+golang.org/x/tools v0.29.0/go.mod h1:KMQVMRsVxU6nHCFXrBPhDB8XncLNLM0lIy/F14RP588=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
@@ -524,19 +538,19 @@ google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
-google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de h1:F6qOa9AZTYJXOUEr4jDysRDLrm4PHePlge4v4TGAlxY=
-google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:VUhTRKeHn9wwcdrk73nvdC9gF178Tzhmt/qyaFcPLSo=
-google.golang.org/genproto/googleapis/api v0.0.0-20240814211410-ddb44dafa142 h1:wKguEg1hsxI2/L3hUYrpo1RVi48K+uTyzKqprwLXsb8=
-google.golang.org/genproto/googleapis/api v0.0.0-20240814211410-ddb44dafa142/go.mod h1:d6be+8HhtEtucleCbxpPW9PA9XwISACu8nvpPqF0BVo=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142 h1:e7S5W7MGGLaSu8j3YjdezkZ+m1/Nm0uRVRMEMGk26Xs=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU=
+google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1 h1:BulPr26Jqjnd4eYDVe+YvyR7Yc2vJGkO5/0UxD0/jZU=
+google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:hL97c3SYopEHblzpxRL4lSs523++l8DYxGM1FQiYmb4=
+google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1 h1:hjSy6tcFQZ171igDaN5QHOw2n6vx40juYbC/x67CEhc=
+google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:qpvKtACPCQhAdu3PyQgV4l3LMXZEtft7y8QcarRsp9I=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 h1:pPJltXNxVzT4pK9yD8vR9X75DaWYYmLGMsEvBfFQZzQ=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU=
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
-google.golang.org/grpc v1.67.1 h1:zWnc1Vrcno+lHZCOofnIMvycFcc0QRGIzm9dhnDX68E=
-google.golang.org/grpc v1.67.1/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA=
+google.golang.org/grpc v1.68.1 h1:oI5oTa11+ng8r8XMMN7jAOmWfPZWbYpCFaMUTACxkM0=
+google.golang.org/grpc v1.68.1/go.mod h1:+q1XYFJjShcqn0QZHvCyeR4CXPA+llXIeUIfIe00waw=
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 h1:F29+wU6Ee6qgu9TddPgooOdaqsxTMunOoj8KA5yuS5A=
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1/go.mod h1:5KF+wpkbTSbGcR9zteSqZV6fqFOWBl4Yde8En8MryZA=
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
@@ -548,10 +562,8 @@ google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2
google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
-google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
-google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
-google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA=
-google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
+google.golang.org/protobuf v1.36.2 h1:R8FeyR1/eLmkutZOM5CWghmo5itiG9z0ktFlTVLuTmU=
+google.golang.org/protobuf v1.36.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
@@ -563,7 +575,6 @@ gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME=
gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI=
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
@@ -574,37 +585,37 @@ gotest.tools/v3 v3.5.1 h1:EENdUnS3pdur5nybKYIh2Vfgc8IUNBjxDPSjtiJcOzU=
gotest.tools/v3 v3.5.1/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU=
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
-k8s.io/api v0.31.1 h1:Xe1hX/fPW3PXYYv8BlozYqw63ytA92snr96zMW9gWTU=
-k8s.io/api v0.31.1/go.mod h1:sbN1g6eY6XVLeqNsZGLnI5FwVseTrZX7Fv3O26rhAaI=
-k8s.io/apiextensions-apiserver v0.31.1 h1:L+hwULvXx+nvTYX/MKM3kKMZyei+UiSXQWciX/N6E40=
-k8s.io/apiextensions-apiserver v0.31.1/go.mod h1:tWMPR3sgW+jsl2xm9v7lAyRF1rYEK71i9G5dRtkknoQ=
-k8s.io/apimachinery v0.31.1 h1:mhcUBbj7KUjaVhyXILglcVjuS4nYXiwC+KKFBgIVy7U=
-k8s.io/apimachinery v0.31.1/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo=
-k8s.io/apiserver v0.31.1 h1:Sars5ejQDCRBY5f7R3QFHdqN3s61nhkpaX8/k1iEw1c=
-k8s.io/apiserver v0.31.1/go.mod h1:lzDhpeToamVZJmmFlaLwdYZwd7zB+WYRYIboqA1kGxM=
-k8s.io/cli-runtime v0.31.0 h1:V2Q1gj1u3/WfhD475HBQrIYsoryg/LrhhK4RwpN+DhA=
-k8s.io/cli-runtime v0.31.0/go.mod h1:vg3H94wsubuvWfSmStDbekvbla5vFGC+zLWqcf+bGDw=
-k8s.io/client-go v0.31.1 h1:f0ugtWSbWpxHR7sjVpQwuvw9a3ZKLXX0u0itkFXufb0=
-k8s.io/client-go v0.31.1/go.mod h1:sKI8871MJN2OyeqRlmA4W4KM9KBdBUpDLu/43eGemCg=
-k8s.io/component-base v0.31.1 h1:UpOepcrX3rQ3ab5NB6g5iP0tvsgJWzxTyAo20sgYSy8=
-k8s.io/component-base v0.31.1/go.mod h1:WGeaw7t/kTsqpVTaCoVEtillbqAhF2/JgvO0LDOMa0w=
+k8s.io/api v0.32.0 h1:OL9JpbvAU5ny9ga2fb24X8H6xQlVp+aJMFlgtQjR9CE=
+k8s.io/api v0.32.0/go.mod h1:4LEwHZEf6Q/cG96F3dqR965sYOfmPM7rq81BLgsE0p0=
+k8s.io/apiextensions-apiserver v0.32.0 h1:S0Xlqt51qzzqjKPxfgX1xh4HBZE+p8KKBq+k2SWNOE0=
+k8s.io/apiextensions-apiserver v0.32.0/go.mod h1:86hblMvN5yxMvZrZFX2OhIHAuFIMJIZ19bTvzkP+Fmw=
+k8s.io/apimachinery v0.32.0 h1:cFSE7N3rmEEtv4ei5X6DaJPHHX0C+upp+v5lVPiEwpg=
+k8s.io/apimachinery v0.32.0/go.mod h1:GpHVgxoKlTxClKcteaeuF1Ul/lDVb74KpZcxcmLDElE=
+k8s.io/apiserver v0.32.0 h1:VJ89ZvQZ8p1sLeiWdRJpRD6oLozNZD2+qVSLi+ft5Qs=
+k8s.io/apiserver v0.32.0/go.mod h1:HFh+dM1/BE/Hm4bS4nTXHVfN6Z6tFIZPi649n83b4Ag=
+k8s.io/cli-runtime v0.32.0 h1:dP+OZqs7zHPpGQMCGAhectbHU2SNCuZtIimRKTv2T1c=
+k8s.io/cli-runtime v0.32.0/go.mod h1:Mai8ht2+esoDRK5hr861KRy6z0zHsSTYttNVJXgP3YQ=
+k8s.io/client-go v0.32.0 h1:DimtMcnN/JIKZcrSrstiwvvZvLjG0aSxy8PxN8IChp8=
+k8s.io/client-go v0.32.0/go.mod h1:boDWvdM1Drk4NJj/VddSLnx59X3OPgwrOo0vGbtq9+8=
+k8s.io/component-base v0.32.0 h1:d6cWHZkCiiep41ObYQS6IcgzOUQUNpywm39KVYaUqzU=
+k8s.io/component-base v0.32.0/go.mod h1:JLG2W5TUxUu5uDyKiH2R/7NnxJo1HlPoRIIbVLkK5eM=
k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk=
k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE=
-k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 h1:BZqlfIlq5YbRMFko6/PM7FjZpUb45WallggurYhKGag=
-k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340/go.mod h1:yD4MZYeKMBwQKVht279WycxKyM84kkAx2DPrTXaeb98=
-k8s.io/kubectl v0.31.0 h1:kANwAAPVY02r4U4jARP/C+Q1sssCcN/1p9Nk+7BQKVg=
-k8s.io/kubectl v0.31.0/go.mod h1:pB47hhFypGsaHAPjlwrNbvhXgmuAr01ZBvAIIUaI8d4=
-k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 h1:pUdcCO1Lk/tbT5ztQWOBi5HBgbBP1J8+AsQnQCKsi8A=
-k8s.io/utils v0.0.0-20240711033017-18e509b52bc8/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
-sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.30.3 h1:2770sDpzrjjsAtVhSeUFseziht227YAWYHLGNM8QPwY=
-sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.30.3/go.mod h1:Ve9uj1L+deCXFrPOk1LpFXqTg7LCFzFso6PA48q/XZw=
-sigs.k8s.io/controller-runtime v0.19.0 h1:nWVM7aq+Il2ABxwiCizrVDSlmDcshi9llbaFbC0ji/Q=
-sigs.k8s.io/controller-runtime v0.19.0/go.mod h1:iRmWllt8IlaLjvTTDLhRBXIEtkCK6hwVBJJsYS9Ajf4=
-sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo=
-sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0=
-sigs.k8s.io/kind v0.24.0 h1:g4y4eu0qa+SCeKESLpESgMmVFBebL0BDa6f777OIWrg=
-sigs.k8s.io/kind v0.24.0/go.mod h1:t7ueEpzPYJvHA8aeLtI52rtFftNgUYUaCwvxjk7phfw=
-sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4=
-sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08=
+k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f h1:GA7//TjRY9yWGy1poLzYYJJ4JRdzg3+O6e8I+e+8T5Y=
+k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f/go.mod h1:R/HEjbvWI0qdfb8viZUeVZm0X6IZnxAydC7YU42CMw4=
+k8s.io/kubectl v0.32.0 h1:rpxl+ng9qeG79YA4Em9tLSfX0G8W0vfaiPVrc/WR7Xw=
+k8s.io/kubectl v0.32.0/go.mod h1:qIjSX+QgPQUgdy8ps6eKsYNF+YmFOAO3WygfucIqFiE=
+k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 h1:M3sRQVHv7vB20Xc2ybTt7ODCeFj6JSWYFzOFnYeS6Ro=
+k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
+sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.0 h1:CPT0ExVicCzcpeN4baWEV2ko2Z/AsiZgEdwgcfwLgMo=
+sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.0/go.mod h1:Ve9uj1L+deCXFrPOk1LpFXqTg7LCFzFso6PA48q/XZw=
+sigs.k8s.io/controller-runtime v0.19.4 h1:SUmheabttt0nx8uJtoII4oIP27BVVvAKFvdvGFwV/Qo=
+sigs.k8s.io/controller-runtime v0.19.4/go.mod h1:iRmWllt8IlaLjvTTDLhRBXIEtkCK6hwVBJJsYS9Ajf4=
+sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 h1:/Rv+M11QRah1itp8VhT6HoVx1Ray9eB4DBr+K+/sCJ8=
+sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3/go.mod h1:18nIHnGi6636UCz6m8i4DhaJ65T6EruyzmoQqI2BVDo=
+sigs.k8s.io/kind v0.26.0 h1:8fS6I0Q5WGlmLprSpH0DarlOSdcsv0txnwc93J2BP7M=
+sigs.k8s.io/kind v0.26.0/go.mod h1:t7ueEpzPYJvHA8aeLtI52rtFftNgUYUaCwvxjk7phfw=
+sigs.k8s.io/structured-merge-diff/v4 v4.4.2 h1:MdmvkGuXi/8io6ixD5wud3vOLwc1rj0aNqRlpuvjmwA=
+sigs.k8s.io/structured-merge-diff/v4 v4.4.2/go.mod h1:N8f93tFZh9U6vpxwRArLiikrE5/2tiu1w1AGfACIGE4=
sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E=
sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY=
diff --git a/staging/operator-registry/pkg/containertools/containertoolsfakes/fake_command_runner.go b/staging/operator-registry/pkg/containertools/containertoolsfakes/fake_command_runner.go
index 40ae4ddf99..4dd5f69b7c 100644
--- a/staging/operator-registry/pkg/containertools/containertoolsfakes/fake_command_runner.go
+++ b/staging/operator-registry/pkg/containertools/containertoolsfakes/fake_command_runner.go
@@ -65,15 +65,16 @@ func (fake *FakeCommandRunner) Build(arg1 string, arg2 string) error {
arg1 string
arg2 string
}{arg1, arg2})
+ stub := fake.BuildStub
+ fakeReturns := fake.buildReturns
fake.recordInvocation("Build", []interface{}{arg1, arg2})
fake.buildMutex.Unlock()
- if fake.BuildStub != nil {
- return fake.BuildStub(arg1, arg2)
+ if stub != nil {
+ return stub(arg1, arg2)
}
if specificReturn {
return ret.result1
}
- fakeReturns := fake.buildReturns
return fakeReturns.result1
}
@@ -124,15 +125,16 @@ func (fake *FakeCommandRunner) GetToolName() string {
ret, specificReturn := fake.getToolNameReturnsOnCall[len(fake.getToolNameArgsForCall)]
fake.getToolNameArgsForCall = append(fake.getToolNameArgsForCall, struct {
}{})
+ stub := fake.GetToolNameStub
+ fakeReturns := fake.getToolNameReturns
fake.recordInvocation("GetToolName", []interface{}{})
fake.getToolNameMutex.Unlock()
- if fake.GetToolNameStub != nil {
- return fake.GetToolNameStub()
+ if stub != nil {
+ return stub()
}
if specificReturn {
return ret.result1
}
- fakeReturns := fake.getToolNameReturns
return fakeReturns.result1
}
@@ -177,15 +179,16 @@ func (fake *FakeCommandRunner) Inspect(arg1 string) ([]byte, error) {
fake.inspectArgsForCall = append(fake.inspectArgsForCall, struct {
arg1 string
}{arg1})
+ stub := fake.InspectStub
+ fakeReturns := fake.inspectReturns
fake.recordInvocation("Inspect", []interface{}{arg1})
fake.inspectMutex.Unlock()
- if fake.InspectStub != nil {
- return fake.InspectStub(arg1)
+ if stub != nil {
+ return stub(arg1)
}
if specificReturn {
return ret.result1, ret.result2
}
- fakeReturns := fake.inspectReturns
return fakeReturns.result1, fakeReturns.result2
}
@@ -240,15 +243,16 @@ func (fake *FakeCommandRunner) Pull(arg1 string) error {
fake.pullArgsForCall = append(fake.pullArgsForCall, struct {
arg1 string
}{arg1})
+ stub := fake.PullStub
+ fakeReturns := fake.pullReturns
fake.recordInvocation("Pull", []interface{}{arg1})
fake.pullMutex.Unlock()
- if fake.PullStub != nil {
- return fake.PullStub(arg1)
+ if stub != nil {
+ return stub(arg1)
}
if specificReturn {
return ret.result1
}
- fakeReturns := fake.pullReturns
return fakeReturns.result1
}
diff --git a/staging/operator-registry/pkg/containertools/containertoolsfakes/fake_dockerfile_generator.go b/staging/operator-registry/pkg/containertools/containertoolsfakes/fake_dockerfile_generator.go
index 7f0aca60f1..572bd97d97 100644
--- a/staging/operator-registry/pkg/containertools/containertoolsfakes/fake_dockerfile_generator.go
+++ b/staging/operator-registry/pkg/containertools/containertoolsfakes/fake_dockerfile_generator.go
@@ -31,15 +31,16 @@ func (fake *FakeDockerfileGenerator) GenerateIndexDockerfile(arg1 string, arg2 s
arg1 string
arg2 string
}{arg1, arg2})
+ stub := fake.GenerateIndexDockerfileStub
+ fakeReturns := fake.generateIndexDockerfileReturns
fake.recordInvocation("GenerateIndexDockerfile", []interface{}{arg1, arg2})
fake.generateIndexDockerfileMutex.Unlock()
- if fake.GenerateIndexDockerfileStub != nil {
- return fake.GenerateIndexDockerfileStub(arg1, arg2)
+ if stub != nil {
+ return stub(arg1, arg2)
}
if specificReturn {
return ret.result1
}
- fakeReturns := fake.generateIndexDockerfileReturns
return fakeReturns.result1
}
diff --git a/staging/operator-registry/pkg/containertools/containertoolsfakes/fake_label_reader.go b/staging/operator-registry/pkg/containertools/containertoolsfakes/fake_label_reader.go
index 07dfa00486..6a424a66e0 100644
--- a/staging/operator-registry/pkg/containertools/containertoolsfakes/fake_label_reader.go
+++ b/staging/operator-registry/pkg/containertools/containertoolsfakes/fake_label_reader.go
@@ -31,15 +31,16 @@ func (fake *FakeLabelReader) GetLabelsFromImage(arg1 string) (map[string]string,
fake.getLabelsFromImageArgsForCall = append(fake.getLabelsFromImageArgsForCall, struct {
arg1 string
}{arg1})
+ stub := fake.GetLabelsFromImageStub
+ fakeReturns := fake.getLabelsFromImageReturns
fake.recordInvocation("GetLabelsFromImage", []interface{}{arg1})
fake.getLabelsFromImageMutex.Unlock()
- if fake.GetLabelsFromImageStub != nil {
- return fake.GetLabelsFromImageStub(arg1)
+ if stub != nil {
+ return stub(arg1)
}
if specificReturn {
return ret.result1, ret.result2
}
- fakeReturns := fake.getLabelsFromImageReturns
return fakeReturns.result1, fakeReturns.result2
}
diff --git a/staging/operator-registry/pkg/lib/bundle/build.go b/staging/operator-registry/pkg/lib/bundle/build.go
index ca2b2d7767..08b0fa808f 100644
--- a/staging/operator-registry/pkg/lib/bundle/build.go
+++ b/staging/operator-registry/pkg/lib/bundle/build.go
@@ -51,14 +51,14 @@ func ExecuteCommand(cmd *exec.Cmd) error {
// @channelDefault: The default channel for the bundle image
// @overwrite: Boolean flag to enable overwriting annotations.yaml locally if existed
func BuildFunc(directory, outputDir, imageTag, imageBuilder, packageName, channels, channelDefault string,
- overwrite bool) error {
+ overwrite bool, baseImage string) error {
_, err := os.Stat(directory)
if os.IsNotExist(err) {
return err
}
// Generate annotations.yaml and Dockerfile
- err = GenerateFunc(directory, outputDir, packageName, channels, channelDefault, overwrite)
+ err = GenerateFunc(directory, outputDir, packageName, channels, channelDefault, overwrite, baseImage)
if err != nil {
return err
}
diff --git a/staging/operator-registry/pkg/lib/bundle/generate.go b/staging/operator-registry/pkg/lib/bundle/generate.go
index 5b9d82153d..7f20e42888 100644
--- a/staging/operator-registry/pkg/lib/bundle/generate.go
+++ b/staging/operator-registry/pkg/lib/bundle/generate.go
@@ -46,7 +46,7 @@ type AnnotationMetadata struct {
// @channels: The list of channels that bundle image belongs to
// @channelDefault: The default channel for the bundle image
// @overwrite: Boolean flag to enable overwriting annotations.yaml locally if existed
-func GenerateFunc(directory, outputDir, packageName, channels, channelDefault string, overwrite bool) error {
+func GenerateFunc(directory, outputDir, packageName, channels, channelDefault string, overwrite bool, baseImage string) error {
// clean the input so that we know the absolute paths of input directories
directory, err := filepath.Abs(directory)
if err != nil {
@@ -132,7 +132,7 @@ func GenerateFunc(directory, outputDir, packageName, channels, channelDefault st
log.Info("Building Dockerfile")
// Generate Dockerfile
- content, err = GenerateDockerfile(mediaType, ManifestsDir, MetadataDir, outManifestDir, outMetadataDir, workingDir, packageName, channels, channelDefault)
+ content, err = GenerateDockerfile(mediaType, ManifestsDir, MetadataDir, outManifestDir, outMetadataDir, workingDir, packageName, channels, channelDefault, baseImage)
if err != nil {
return err
}
@@ -319,7 +319,7 @@ func GenerateAnnotations(mediaType, manifests, metadata, packageName, channels,
// GenerateDockerfile builds Dockerfile with mediatype, manifests &
// metadata directories in bundle image, package name, channels and default
// channels information in LABEL section.
-func GenerateDockerfile(mediaType, manifests, metadata, copyManifestDir, copyMetadataDir, workingDir, packageName, channels, channelDefault string) ([]byte, error) {
+func GenerateDockerfile(mediaType, manifests, metadata, copyManifestDir, copyMetadataDir, workingDir, packageName, channels, channelDefault string, baseImage string) ([]byte, error) {
var fileContent string
relativeManifestDirectory, err := filepath.Rel(workingDir, copyManifestDir)
@@ -335,7 +335,7 @@ func GenerateDockerfile(mediaType, manifests, metadata, copyManifestDir, copyMet
relativeMetadataDirectory = filepath.ToSlash(relativeMetadataDirectory)
// FROM
- fileContent += "FROM scratch\n\n"
+ fileContent += fmt.Sprintf("FROM %s\n\n", baseImage)
// LABEL
fileContent += fmt.Sprintf("LABEL %s=%s\n", MediatypeLabel, mediaType)
diff --git a/staging/operator-registry/pkg/lib/bundle/generate_test.go b/staging/operator-registry/pkg/lib/bundle/generate_test.go
index 2727855a2e..6130fe1fd7 100644
--- a/staging/operator-registry/pkg/lib/bundle/generate_test.go
+++ b/staging/operator-registry/pkg/lib/bundle/generate_test.go
@@ -163,7 +163,7 @@ func TestGenerateAnnotationsFunc(t *testing.T) {
}
func TestGenerateDockerfile(t *testing.T) {
- expected := `FROM scratch
+ expected := `FROM %s
LABEL operators.operatorframework.io.bundle.mediatype.v1=test1
LABEL operators.operatorframework.io.bundle.manifests.v1=test2
@@ -174,9 +174,20 @@ COPY a/b/c /manifests/
COPY x/y/z /metadata/
`
- actual, err := GenerateDockerfile("test1", "test2", "metadata/", filepath.Join("a", "b", "c"), filepath.Join("x", "y", "z"), "./", "test4", "test5", "")
- require.NoError(t, err)
- require.Equal(t, expected, string(actual))
+ type DockerfileTest struct {
+ baseImage string
+ }
+ tests := []DockerfileTest{
+ {baseImage: "scratch"},
+ {baseImage: "registry/group/image@tag"},
+ }
+
+ for _, tt := range tests {
+ tt_expected := fmt.Sprintf(expected, tt.baseImage)
+ actual, err := GenerateDockerfile("test1", "test2", "metadata/", filepath.Join("a", "b", "c"), filepath.Join("x", "y", "z"), "./", "test4", "test5", "", tt.baseImage)
+ require.NoError(t, err)
+ require.Equal(t, tt_expected, string(actual))
+ }
}
func TestCopyYamlOutput(t *testing.T) {
@@ -248,7 +259,7 @@ func TestGenerateFunc(t *testing.T) {
etcdPkgPath := "./testdata/etcd"
outputPath := "./testdata/tmp_output"
defer os.RemoveAll(outputPath)
- err := GenerateFunc(filepath.Join(etcdPkgPath, "0.6.1"), outputPath, "", "", "", true)
+ err := GenerateFunc(filepath.Join(etcdPkgPath, "0.6.1"), outputPath, "", "", "", true, "scratch")
require.NoError(t, err)
os.Remove(filepath.Join("./", DockerFile))
diff --git a/staging/operator-registry/pkg/lib/indexer/indexerfakes/fake_index_adder.go b/staging/operator-registry/pkg/lib/indexer/indexerfakes/fake_index_adder.go
index eff58d0e50..8e9a3b1a77 100644
--- a/staging/operator-registry/pkg/lib/indexer/indexerfakes/fake_index_adder.go
+++ b/staging/operator-registry/pkg/lib/indexer/indexerfakes/fake_index_adder.go
@@ -29,15 +29,16 @@ func (fake *FakeIndexAdder) AddToIndex(arg1 indexer.AddToIndexRequest) error {
fake.addToIndexArgsForCall = append(fake.addToIndexArgsForCall, struct {
arg1 indexer.AddToIndexRequest
}{arg1})
+ stub := fake.AddToIndexStub
+ fakeReturns := fake.addToIndexReturns
fake.recordInvocation("AddToIndex", []interface{}{arg1})
fake.addToIndexMutex.Unlock()
- if fake.AddToIndexStub != nil {
- return fake.AddToIndexStub(arg1)
+ if stub != nil {
+ return stub(arg1)
}
if specificReturn {
return ret.result1
}
- fakeReturns := fake.addToIndexReturns
return fakeReturns.result1
}
diff --git a/staging/operator-registry/pkg/lib/indexer/indexerfakes/fake_index_deleter.go b/staging/operator-registry/pkg/lib/indexer/indexerfakes/fake_index_deleter.go
index 7daaa618f9..5d70b904d3 100644
--- a/staging/operator-registry/pkg/lib/indexer/indexerfakes/fake_index_deleter.go
+++ b/staging/operator-registry/pkg/lib/indexer/indexerfakes/fake_index_deleter.go
@@ -29,15 +29,16 @@ func (fake *FakeIndexDeleter) DeleteFromIndex(arg1 indexer.DeleteFromIndexReques
fake.deleteFromIndexArgsForCall = append(fake.deleteFromIndexArgsForCall, struct {
arg1 indexer.DeleteFromIndexRequest
}{arg1})
+ stub := fake.DeleteFromIndexStub
+ fakeReturns := fake.deleteFromIndexReturns
fake.recordInvocation("DeleteFromIndex", []interface{}{arg1})
fake.deleteFromIndexMutex.Unlock()
- if fake.DeleteFromIndexStub != nil {
- return fake.DeleteFromIndexStub(arg1)
+ if stub != nil {
+ return stub(arg1)
}
if specificReturn {
return ret.result1
}
- fakeReturns := fake.deleteFromIndexReturns
return fakeReturns.result1
}
diff --git a/staging/operator-registry/pkg/lib/indexer/indexerfakes/fake_index_exporter.go b/staging/operator-registry/pkg/lib/indexer/indexerfakes/fake_index_exporter.go
index e58b65b7a0..ce1a3af8c9 100644
--- a/staging/operator-registry/pkg/lib/indexer/indexerfakes/fake_index_exporter.go
+++ b/staging/operator-registry/pkg/lib/indexer/indexerfakes/fake_index_exporter.go
@@ -29,15 +29,16 @@ func (fake *FakeIndexExporter) ExportFromIndex(arg1 indexer.ExportFromIndexReque
fake.exportFromIndexArgsForCall = append(fake.exportFromIndexArgsForCall, struct {
arg1 indexer.ExportFromIndexRequest
}{arg1})
+ stub := fake.ExportFromIndexStub
+ fakeReturns := fake.exportFromIndexReturns
fake.recordInvocation("ExportFromIndex", []interface{}{arg1})
fake.exportFromIndexMutex.Unlock()
- if fake.ExportFromIndexStub != nil {
- return fake.ExportFromIndexStub(arg1)
+ if stub != nil {
+ return stub(arg1)
}
if specificReturn {
return ret.result1
}
- fakeReturns := fake.exportFromIndexReturns
return fakeReturns.result1
}
diff --git a/staging/operator-registry/pkg/lib/registry/registryfakes/fake_registry_adder.go b/staging/operator-registry/pkg/lib/registry/registryfakes/fake_registry_adder.go
index 14a0df3590..5c166adb72 100644
--- a/staging/operator-registry/pkg/lib/registry/registryfakes/fake_registry_adder.go
+++ b/staging/operator-registry/pkg/lib/registry/registryfakes/fake_registry_adder.go
@@ -29,15 +29,16 @@ func (fake *FakeRegistryAdder) AddToRegistry(arg1 registry.AddToRegistryRequest)
fake.addToRegistryArgsForCall = append(fake.addToRegistryArgsForCall, struct {
arg1 registry.AddToRegistryRequest
}{arg1})
+ stub := fake.AddToRegistryStub
+ fakeReturns := fake.addToRegistryReturns
fake.recordInvocation("AddToRegistry", []interface{}{arg1})
fake.addToRegistryMutex.Unlock()
- if fake.AddToRegistryStub != nil {
- return fake.AddToRegistryStub(arg1)
+ if stub != nil {
+ return stub(arg1)
}
if specificReturn {
return ret.result1
}
- fakeReturns := fake.addToRegistryReturns
return fakeReturns.result1
}
diff --git a/staging/operator-registry/pkg/lib/registry/registryfakes/fake_registry_deleter.go b/staging/operator-registry/pkg/lib/registry/registryfakes/fake_registry_deleter.go
index 554d11dd6a..340346a0ff 100644
--- a/staging/operator-registry/pkg/lib/registry/registryfakes/fake_registry_deleter.go
+++ b/staging/operator-registry/pkg/lib/registry/registryfakes/fake_registry_deleter.go
@@ -29,15 +29,16 @@ func (fake *FakeRegistryDeleter) DeleteFromRegistry(arg1 registry.DeleteFromRegi
fake.deleteFromRegistryArgsForCall = append(fake.deleteFromRegistryArgsForCall, struct {
arg1 registry.DeleteFromRegistryRequest
}{arg1})
+ stub := fake.DeleteFromRegistryStub
+ fakeReturns := fake.deleteFromRegistryReturns
fake.recordInvocation("DeleteFromRegistry", []interface{}{arg1})
fake.deleteFromRegistryMutex.Unlock()
- if fake.DeleteFromRegistryStub != nil {
- return fake.DeleteFromRegistryStub(arg1)
+ if stub != nil {
+ return stub(arg1)
}
if specificReturn {
return ret.result1
}
- fakeReturns := fake.deleteFromRegistryReturns
return fakeReturns.result1
}
diff --git a/staging/operator-registry/pkg/registry/registryfakes/fake_graph_loader.go b/staging/operator-registry/pkg/registry/registryfakes/fake_graph_loader.go
index d76d4f37cc..b11ccbb325 100644
--- a/staging/operator-registry/pkg/registry/registryfakes/fake_graph_loader.go
+++ b/staging/operator-registry/pkg/registry/registryfakes/fake_graph_loader.go
@@ -31,15 +31,16 @@ func (fake *FakeGraphLoader) Generate(arg1 string) (*registry.Package, error) {
fake.generateArgsForCall = append(fake.generateArgsForCall, struct {
arg1 string
}{arg1})
+ stub := fake.GenerateStub
+ fakeReturns := fake.generateReturns
fake.recordInvocation("Generate", []interface{}{arg1})
fake.generateMutex.Unlock()
- if fake.GenerateStub != nil {
- return fake.GenerateStub(arg1)
+ if stub != nil {
+ return stub(arg1)
}
if specificReturn {
return ret.result1, ret.result2
}
- fakeReturns := fake.generateReturns
return fakeReturns.result1, fakeReturns.result2
}
diff --git a/staging/operator-registry/pkg/server/server_test.go b/staging/operator-registry/pkg/server/server_test.go
index a5ae864fa0..1fd4d47459 100644
--- a/staging/operator-registry/pkg/server/server_test.go
+++ b/staging/operator-registry/pkg/server/server_test.go
@@ -961,10 +961,6 @@ var (
}
],
"relatedImages": [
- {
- "image": "gcr.io/kubebuilder/kube-rbac-proxy:v0.5.0",
- "name": ""
- },
{
"image": "quay.io/helmoperators/cockroachdb:v5.0.3",
"name": ""
@@ -998,10 +994,6 @@ var (
}
],
"relatedImages": [
- {
- "image": "gcr.io/kubebuilder/kube-rbac-proxy:v0.5.0",
- "name": ""
- },
{
"image": "quay.io/helmoperators/cockroachdb:v5.0.4",
"name": ""
@@ -1035,10 +1027,6 @@ var (
}
],
"relatedImages": [
- {
- "image": "gcr.io/kubebuilder/kube-rbac-proxy:v0.5.0",
- "name": ""
- },
{
"image": "quay.io/cockroachdb/cockroach-helm-operator:6.0.0",
"name": ""
diff --git a/staging/operator-registry/pkg/sqlite/sqlitefakes/fake_querier.go b/staging/operator-registry/pkg/sqlite/sqlitefakes/fake_querier.go
index 8d5ebca063..aff65723c1 100644
--- a/staging/operator-registry/pkg/sqlite/sqlitefakes/fake_querier.go
+++ b/staging/operator-registry/pkg/sqlite/sqlitefakes/fake_querier.go
@@ -36,15 +36,16 @@ func (fake *FakeQuerier) QueryContext(arg1 context.Context, arg2 string, arg3 ..
arg2 string
arg3 []interface{}
}{arg1, arg2, arg3})
+ stub := fake.QueryContextStub
+ fakeReturns := fake.queryContextReturns
fake.recordInvocation("QueryContext", []interface{}{arg1, arg2, arg3})
fake.queryContextMutex.Unlock()
- if fake.QueryContextStub != nil {
- return fake.QueryContextStub(arg1, arg2, arg3...)
+ if stub != nil {
+ return stub(arg1, arg2, arg3...)
}
if specificReturn {
return ret.result1, ret.result2
}
- fakeReturns := fake.queryContextReturns
return fakeReturns.result1, fakeReturns.result2
}
diff --git a/staging/operator-registry/pkg/sqlite/sqlitefakes/fake_rowscanner.go b/staging/operator-registry/pkg/sqlite/sqlitefakes/fake_rowscanner.go
index 3d0cb5b11f..b5ffcc8dc2 100644
--- a/staging/operator-registry/pkg/sqlite/sqlitefakes/fake_rowscanner.go
+++ b/staging/operator-registry/pkg/sqlite/sqlitefakes/fake_rowscanner.go
@@ -48,15 +48,16 @@ func (fake *FakeRowScanner) Close() error {
ret, specificReturn := fake.closeReturnsOnCall[len(fake.closeArgsForCall)]
fake.closeArgsForCall = append(fake.closeArgsForCall, struct {
}{})
+ stub := fake.CloseStub
+ fakeReturns := fake.closeReturns
fake.recordInvocation("Close", []interface{}{})
fake.closeMutex.Unlock()
- if fake.CloseStub != nil {
- return fake.CloseStub()
+ if stub != nil {
+ return stub()
}
if specificReturn {
return ret.result1
}
- fakeReturns := fake.closeReturns
return fakeReturns.result1
}
@@ -100,15 +101,16 @@ func (fake *FakeRowScanner) Next() bool {
ret, specificReturn := fake.nextReturnsOnCall[len(fake.nextArgsForCall)]
fake.nextArgsForCall = append(fake.nextArgsForCall, struct {
}{})
+ stub := fake.NextStub
+ fakeReturns := fake.nextReturns
fake.recordInvocation("Next", []interface{}{})
fake.nextMutex.Unlock()
- if fake.NextStub != nil {
- return fake.NextStub()
+ if stub != nil {
+ return stub()
}
if specificReturn {
return ret.result1
}
- fakeReturns := fake.nextReturns
return fakeReturns.result1
}
@@ -153,15 +155,16 @@ func (fake *FakeRowScanner) Scan(arg1 ...interface{}) error {
fake.scanArgsForCall = append(fake.scanArgsForCall, struct {
arg1 []interface{}
}{arg1})
+ stub := fake.ScanStub
+ fakeReturns := fake.scanReturns
fake.recordInvocation("Scan", []interface{}{arg1})
fake.scanMutex.Unlock()
- if fake.ScanStub != nil {
- return fake.ScanStub(arg1...)
+ if stub != nil {
+ return stub(arg1...)
}
if specificReturn {
return ret.result1
}
- fakeReturns := fake.scanReturns
return fakeReturns.result1
}
diff --git a/staging/operator-registry/test/e2e/opm_test.go b/staging/operator-registry/test/e2e/opm_test.go
index 7a1dcf548c..b9bd16e300 100644
--- a/staging/operator-registry/test/e2e/opm_test.go
+++ b/staging/operator-registry/test/e2e/opm_test.go
@@ -284,7 +284,7 @@ var _ = Describe("opm", func() {
By("building bundle")
img := bundleImage + ":" + bundleTag3
err := inTemporaryBuildContext(func() error {
- return bundle.BuildFunc(bundlePath3, "", img, containerTool, packageName, channels, defaultChannel, false)
+ return bundle.BuildFunc(bundlePath3, "", img, containerTool, packageName, channels, defaultChannel, false, "scratch")
}, "../../manifests", "manifests")
Expect(err).NotTo(HaveOccurred())
@@ -329,7 +329,7 @@ var _ = Describe("opm", func() {
var err error
for _, b := range bundles {
err = inTemporaryBuildContext(func() error {
- return bundle.BuildFunc(b.path, "", b.image, containerTool, packageName, channels, defaultChannel, false)
+ return bundle.BuildFunc(b.path, "", b.image, containerTool, packageName, channels, defaultChannel, false, "scratch")
}, "../../manifests", "manifests")
Expect(err).NotTo(HaveOccurred())
}
@@ -423,7 +423,7 @@ var _ = Describe("opm", func() {
Expect(err).NotTo(HaveOccurred())
defer os.RemoveAll(td)
- err = bundle.BuildFunc(b.path, td, b.image, containerTool, "", "", "", true)
+ err = bundle.BuildFunc(b.path, td, b.image, containerTool, "", "", "", true, "scratch")
Expect(err).NotTo(HaveOccurred())
}
@@ -459,7 +459,7 @@ var _ = Describe("opm", func() {
Expect(err).NotTo(HaveOccurred())
defer os.RemoveAll(td)
- err = bundle.BuildFunc(b.path, td, b.image, containerTool, "", "", "", true)
+ err = bundle.BuildFunc(b.path, td, b.image, containerTool, "", "", "", true, "scratch")
Expect(err).NotTo(HaveOccurred())
}
diff --git a/vendor/cel.dev/expr/.bazelversion b/vendor/cel.dev/expr/.bazelversion
new file mode 100644
index 0000000000..26bc914a3b
--- /dev/null
+++ b/vendor/cel.dev/expr/.bazelversion
@@ -0,0 +1,2 @@
+7.0.1
+# Keep this pinned version in parity with cel-go
diff --git a/vendor/cel.dev/expr/.gitattributes b/vendor/cel.dev/expr/.gitattributes
new file mode 100644
index 0000000000..3de1ec213a
--- /dev/null
+++ b/vendor/cel.dev/expr/.gitattributes
@@ -0,0 +1,2 @@
+*.pb.go linguist-generated=true
+*.pb.go -diff -merge
diff --git a/vendor/cel.dev/expr/.gitignore b/vendor/cel.dev/expr/.gitignore
new file mode 100644
index 0000000000..0d4fed27c9
--- /dev/null
+++ b/vendor/cel.dev/expr/.gitignore
@@ -0,0 +1,2 @@
+bazel-*
+MODULE.bazel.lock
diff --git a/vendor/cel.dev/expr/BUILD.bazel b/vendor/cel.dev/expr/BUILD.bazel
new file mode 100644
index 0000000000..37d8adc950
--- /dev/null
+++ b/vendor/cel.dev/expr/BUILD.bazel
@@ -0,0 +1,34 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
+
+package(default_visibility = ["//visibility:public"])
+
+licenses(["notice"]) # Apache 2.0
+
+go_library(
+ name = "expr",
+ srcs = [
+ "checked.pb.go",
+ "eval.pb.go",
+ "explain.pb.go",
+ "syntax.pb.go",
+ "value.pb.go",
+ ],
+ importpath = "cel.dev/expr",
+ visibility = ["//visibility:public"],
+ deps = [
+ "@org_golang_google_genproto_googleapis_rpc//status:go_default_library",
+ "@org_golang_google_protobuf//reflect/protoreflect",
+ "@org_golang_google_protobuf//runtime/protoimpl",
+ "@org_golang_google_protobuf//types/known/anypb",
+ "@org_golang_google_protobuf//types/known/durationpb",
+ "@org_golang_google_protobuf//types/known/emptypb",
+ "@org_golang_google_protobuf//types/known/structpb",
+ "@org_golang_google_protobuf//types/known/timestamppb",
+ ],
+)
+
+alias(
+ name = "go_default_library",
+ actual = ":expr",
+ visibility = ["//visibility:public"],
+)
diff --git a/vendor/cel.dev/expr/CODE_OF_CONDUCT.md b/vendor/cel.dev/expr/CODE_OF_CONDUCT.md
new file mode 100644
index 0000000000..59908e2d8e
--- /dev/null
+++ b/vendor/cel.dev/expr/CODE_OF_CONDUCT.md
@@ -0,0 +1,25 @@
+# Contributor Code of Conduct
+## Version 0.1.1 (adapted from 0.3b-angular)
+
+As contributors and maintainers of the Common Expression Language
+(CEL) project, we pledge to respect everyone who contributes by
+posting issues, updating documentation, submitting pull requests,
+providing feedback in comments, and any other activities.
+
+Communication through any of CEL's channels (GitHub, Gitter, IRC,
+mailing lists, Google+, Twitter, etc.) must be constructive and never
+resort to personal attacks, trolling, public or private harassment,
+insults, or other unprofessional conduct.
+
+We promise to extend courtesy and respect to everyone involved in this
+project regardless of gender, gender identity, sexual orientation,
+disability, age, race, ethnicity, religion, or level of experience. We
+expect anyone contributing to the project to do the same.
+
+If any member of the community violates this code of conduct, the
+maintainers of the CEL project may take action, removing issues,
+comments, and PRs or blocking accounts as deemed appropriate.
+
+If you are subject to or witness unacceptable behavior, or have any
+other concerns, please email us at
+[cel-conduct@google.com](mailto:cel-conduct@google.com).
diff --git a/vendor/cel.dev/expr/CONTRIBUTING.md b/vendor/cel.dev/expr/CONTRIBUTING.md
new file mode 100644
index 0000000000..8f5fd5c31f
--- /dev/null
+++ b/vendor/cel.dev/expr/CONTRIBUTING.md
@@ -0,0 +1,32 @@
+# How to Contribute
+
+We'd love to accept your patches and contributions to this project. There are a
+few guidelines you need to follow.
+
+## Contributor License Agreement
+
+Contributions to this project must be accompanied by a Contributor License
+Agreement. You (or your employer) retain the copyright to your contribution,
+this simply gives us permission to use and redistribute your contributions as
+part of the project. Head over to to see
+your current agreements on file or to sign a new one.
+
+You generally only need to submit a CLA once, so if you've already submitted one
+(even if it was for a different project), you probably don't need to do it
+again.
+
+## Code reviews
+
+All submissions, including submissions by project members, require review. We
+use GitHub pull requests for this purpose. Consult
+[GitHub Help](https://help.github.com/articles/about-pull-requests/) for more
+information on using pull requests.
+
+## What to expect from maintainers
+
+Expect maintainers to respond to new issues or pull requests within a week.
+For outstanding and ongoing issues and particularly for long-running
+pull requests, expect the maintainers to review within a week of a
+contributor asking for a new review. There is no commitment to resolution --
+merging or closing a pull request, or fixing or closing an issue -- because some
+issues will require more discussion than others.
diff --git a/vendor/cel.dev/expr/GOVERNANCE.md b/vendor/cel.dev/expr/GOVERNANCE.md
new file mode 100644
index 0000000000..0a525bc17d
--- /dev/null
+++ b/vendor/cel.dev/expr/GOVERNANCE.md
@@ -0,0 +1,43 @@
+# Project Governance
+
+This document defines the governance process for the CEL language. CEL is
+Google-developed, but openly governed. Major contributors to the CEL
+specification and its corresponding implementations constitute the CEL
+Language Council. New members may be added by a unanimous vote of the
+Council.
+
+The MAINTAINERS.md file lists the members of the CEL Language Council, and
+unofficially indicates the "areas of expertise" of each member with respect
+to the publicly available CEL repos.
+
+## Code Changes
+
+Code changes must follow the standard pull request (PR) model documented in the
+CONTRIBUTING.md for each CEL repo. All fixes and features must be reviewed by a
+maintainer. The maintainer reserves the right to request that any feature
+request (FR) or PR be reviewed by the language council.
+
+## Syntax and Semantic Changes
+
+Syntactic and semantic changes must be reviewed by the CEL Language Council.
+Maintainers may also request language council review at their discretion.
+
+The review process is as follows:
+
+- Create a Feature Request in the CEL-Spec repo. The feature description will
+ serve as an abstract for the detailed design document.
+- Co-develop a design document with the Language Council.
+- Once the proposer gives the design document approval, the document will be
+ linked to the FR in the CEL-Spec repo and opened for comments to members of
+ the cel-lang-discuss@googlegroups.com.
+- The Language Council will review the design doc at the next council meeting
+ (once every three weeks) and the council decision included in the document.
+
+If the proposal is approved, the spec will be updated by a maintainer (if
+applicable) and a rationale will be included in the CEL-Spec wiki to ensure
+future developers may follow CEL's growth and direction over time.
+
+Approved proposals may be implemented by the proposer or by the maintainers as
+the parties see fit. At the discretion of the maintainer, changes from the
+approved design are permitted during implementation if they improve the user
+experience and clarity of the feature.
diff --git a/vendor/cel.dev/expr/LICENSE b/vendor/cel.dev/expr/LICENSE
new file mode 100644
index 0000000000..d645695673
--- /dev/null
+++ b/vendor/cel.dev/expr/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/cel.dev/expr/MAINTAINERS.md b/vendor/cel.dev/expr/MAINTAINERS.md
new file mode 100644
index 0000000000..1ed2eb8ab3
--- /dev/null
+++ b/vendor/cel.dev/expr/MAINTAINERS.md
@@ -0,0 +1,13 @@
+# CEL Language Council
+
+| Name | Company | Area of Expertise |
+|-----------------|--------------|-------------------|
+| Alfred Fuller | Facebook | cel-cpp, cel-spec |
+| Jim Larson | Google | cel-go, cel-spec |
+| Matthais Blume | Google | cel-spec |
+| Tristan Swadell | Google | cel-go, cel-spec |
+
+## Emeritus
+
+* Sanjay Ghemawat (Google)
+* Wolfgang Grieskamp (Facebook)
diff --git a/vendor/cel.dev/expr/MODULE.bazel b/vendor/cel.dev/expr/MODULE.bazel
new file mode 100644
index 0000000000..9794266f56
--- /dev/null
+++ b/vendor/cel.dev/expr/MODULE.bazel
@@ -0,0 +1,70 @@
+module(
+ name = "cel-spec",
+)
+
+bazel_dep(
+ name = "bazel_skylib",
+ version = "1.7.1",
+)
+bazel_dep(
+ name = "gazelle",
+ version = "0.36.0",
+ repo_name = "bazel_gazelle",
+)
+bazel_dep(
+ name = "googleapis",
+ version = "0.0.0-20240819-fe8ba054a",
+ repo_name = "com_google_googleapis",
+)
+bazel_dep(
+ name = "protobuf",
+ version = "26.0",
+ repo_name = "com_google_protobuf",
+)
+bazel_dep(
+ name = "rules_cc",
+ version = "0.0.9",
+)
+bazel_dep(
+ name = "rules_go",
+ version = "0.49.0",
+ repo_name = "io_bazel_rules_go",
+)
+bazel_dep(
+ name = "rules_java",
+ version = "7.6.5",
+)
+bazel_dep(
+ name = "rules_proto",
+ version = "6.0.0",
+)
+bazel_dep(
+ name = "rules_python",
+ version = "0.35.0",
+)
+
+### PYTHON ###
+python = use_extension("@rules_python//python/extensions:python.bzl", "python")
+python.toolchain(
+ ignore_root_user_error = True,
+ python_version = "3.11",
+)
+
+switched_rules = use_extension("@com_google_googleapis//:extensions.bzl", "switched_rules")
+switched_rules.use_languages(
+ cc = True,
+ go = True,
+ java = True,
+)
+use_repo(switched_rules, "com_google_googleapis_imports")
+
+go_sdk = use_extension("@io_bazel_rules_go//go:extensions.bzl", "go_sdk")
+go_sdk.download(version = "1.21.1")
+
+go_deps = use_extension("@bazel_gazelle//:extensions.bzl", "go_deps")
+go_deps.from_file(go_mod = "//:go.mod")
+use_repo(
+ go_deps,
+ "org_golang_google_genproto_googleapis_rpc",
+ "org_golang_google_protobuf",
+)
diff --git a/vendor/cel.dev/expr/README.md b/vendor/cel.dev/expr/README.md
new file mode 100644
index 0000000000..7930c0b755
--- /dev/null
+++ b/vendor/cel.dev/expr/README.md
@@ -0,0 +1,73 @@
+# Common Expression Language
+
+The Common Expression Language (CEL) implements common semantics for expression
+evaluation, enabling different applications to more easily interoperate.
+
+Key Applications
+
+* Security policy: organizations have complex infrastructure and need common
+ tooling to reason about the system as a whole
+* Protocols: expressions are a useful data type and require interoperability
+ across programming languages and platforms.
+
+
+Guiding philosophy:
+
+1. Keep it small & fast.
+ * CEL evaluates in linear time, is mutation free, and not Turing-complete.
+ This limitation is a feature of the language design, which allows the
+ implementation to evaluate orders of magnitude faster than equivalently
+ sandboxed JavaScript.
+2. Make it extensible.
+ * CEL is designed to be embedded in applications, and allows for
+ extensibility via its context which allows for functions and data to be
+ provided by the software that embeds it.
+3. Developer-friendly.
+ * The language is approachable to developers. The initial spec was based
+ on the experience of developing Firebase Rules and usability testing
+ many prior iterations.
+ * The library itself and accompanying toolings should be easy to adopt by
+ teams that seek to integrate CEL into their platforms.
+
+The required components of a system that supports CEL are:
+
+* The textual representation of an expression as written by a developer. It is
+ of similar syntax to expressions in C/C++/Java/JavaScript
+* A representation of the program's abstract syntax tree (AST).
+* A compiler library that converts the textual representation to the binary
+ representation. This can be done ahead of time (in the control plane) or
+ just before evaluation (in the data plane).
+* A context containing one or more typed variables, often protobuf messages.
+ Most use-cases will use `attribute_context.proto`
+* An evaluator library that takes the binary format in the context and
+ produces a result, usually a Boolean.
+
+For use cases which require persistence or cross-process communcation, it is
+highly recommended to serialize the type-checked expression as a protocol
+buffer. The CEL team will maintains canonical protocol buffers for ASTs and
+will keep these versions identical and wire-compatible in perpetuity:
+
+* [CEL canonical](https://github.com/google/cel-spec/tree/master/proto/cel/expr)
+* [CEL v1alpha1](https://github.com/googleapis/googleapis/tree/master/google/api/expr/v1alpha1)
+
+
+Example of boolean conditions and object construction:
+
+``` c
+// Condition
+account.balance >= transaction.withdrawal
+ || (account.overdraftProtection
+ && account.overdraftLimit >= transaction.withdrawal - account.balance)
+
+// Object construction
+common.GeoPoint{ latitude: 10.0, longitude: -5.5 }
+```
+
+For more detail, see:
+
+* [Introduction](doc/intro.md)
+* [Language Definition](doc/langdef.md)
+
+Released under the [Apache License](LICENSE).
+
+Disclaimer: This is not an official Google product.
diff --git a/vendor/cel.dev/expr/WORKSPACE b/vendor/cel.dev/expr/WORKSPACE
new file mode 100644
index 0000000000..b6dc9ed673
--- /dev/null
+++ b/vendor/cel.dev/expr/WORKSPACE
@@ -0,0 +1,145 @@
+load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
+
+http_archive(
+ name = "io_bazel_rules_go",
+ sha256 = "099a9fb96a376ccbbb7d291ed4ecbdfd42f6bc822ab77ae6f1b5cb9e914e94fa",
+ urls = [
+ "https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.35.0/rules_go-v0.35.0.zip",
+ "https://github.com/bazelbuild/rules_go/releases/download/v0.35.0/rules_go-v0.35.0.zip",
+ ],
+)
+
+http_archive(
+ name = "bazel_gazelle",
+ sha256 = "ecba0f04f96b4960a5b250c8e8eeec42281035970aa8852dda73098274d14a1d",
+ urls = [
+ "https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/v0.29.0/bazel-gazelle-v0.29.0.tar.gz",
+ "https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.29.0/bazel-gazelle-v0.29.0.tar.gz",
+ ],
+)
+
+http_archive(
+ name = "rules_proto",
+ sha256 = "e017528fd1c91c5a33f15493e3a398181a9e821a804eb7ff5acdd1d2d6c2b18d",
+ strip_prefix = "rules_proto-4.0.0-3.20.0",
+ urls = [
+ "https://github.com/bazelbuild/rules_proto/archive/refs/tags/4.0.0-3.20.0.tar.gz",
+ ],
+)
+
+# googleapis as of 09/16/2024
+http_archive(
+ name = "com_google_googleapis",
+ strip_prefix = "googleapis-4082d5e51e8481f6ccc384cacd896f4e78f19dee",
+ sha256 = "57319889d47578b3c89bf1b3f34888d796a8913d63b32d750a4cd12ed303c4e8",
+ urls = [
+ "https://github.com/googleapis/googleapis/archive/4082d5e51e8481f6ccc384cacd896f4e78f19dee.tar.gz",
+ ],
+)
+
+# protobuf
+http_archive(
+ name = "com_google_protobuf",
+ sha256 = "8242327e5df8c80ba49e4165250b8f79a76bd11765facefaaecfca7747dc8da2",
+ strip_prefix = "protobuf-3.21.5",
+ urls = ["https://github.com/protocolbuffers/protobuf/archive/v3.21.5.zip"],
+)
+
+# googletest
+http_archive(
+ name = "com_google_googletest",
+ urls = ["https://github.com/google/googletest/archive/master.zip"],
+ strip_prefix = "googletest-master",
+)
+
+# gflags
+http_archive(
+ name = "com_github_gflags_gflags",
+ sha256 = "6e16c8bc91b1310a44f3965e616383dbda48f83e8c1eaa2370a215057b00cabe",
+ strip_prefix = "gflags-77592648e3f3be87d6c7123eb81cbad75f9aef5a",
+ urls = [
+ "https://mirror.bazel.build/github.com/gflags/gflags/archive/77592648e3f3be87d6c7123eb81cbad75f9aef5a.tar.gz",
+ "https://github.com/gflags/gflags/archive/77592648e3f3be87d6c7123eb81cbad75f9aef5a.tar.gz",
+ ],
+)
+
+# glog
+http_archive(
+ name = "com_google_glog",
+ sha256 = "1ee310e5d0a19b9d584a855000434bb724aa744745d5b8ab1855c85bff8a8e21",
+ strip_prefix = "glog-028d37889a1e80e8a07da1b8945ac706259e5fd8",
+ urls = [
+ "https://mirror.bazel.build/github.com/google/glog/archive/028d37889a1e80e8a07da1b8945ac706259e5fd8.tar.gz",
+ "https://github.com/google/glog/archive/028d37889a1e80e8a07da1b8945ac706259e5fd8.tar.gz",
+ ],
+)
+
+# absl
+http_archive(
+ name = "com_google_absl",
+ strip_prefix = "abseil-cpp-master",
+ urls = ["https://github.com/abseil/abseil-cpp/archive/master.zip"],
+)
+
+load("@io_bazel_rules_go//go:deps.bzl", "go_rules_dependencies", "go_register_toolchains")
+load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies", "go_repository")
+load("@com_google_googleapis//:repository_rules.bzl", "switched_rules_by_language")
+load("@rules_proto//proto:repositories.bzl", "rules_proto_dependencies", "rules_proto_toolchains")
+load("@com_google_protobuf//:protobuf_deps.bzl", "protobuf_deps")
+
+switched_rules_by_language(
+ name = "com_google_googleapis_imports",
+ cc = True,
+)
+
+# Do *not* call *_dependencies(), etc, yet. See comment at the end.
+
+# Generated Google APIs protos for Golang
+# Generated Google APIs protos for Golang 08/26/2024
+go_repository(
+ name = "org_golang_google_genproto_googleapis_api",
+ build_file_proto_mode = "disable_global",
+ importpath = "google.golang.org/genproto/googleapis/api",
+ sum = "h1:YcyjlL1PRr2Q17/I0dPk2JmYS5CDXfcdb2Z3YRioEbw=",
+ version = "v0.0.0-20240826202546-f6391c0de4c7",
+)
+
+# Generated Google APIs protos for Golang 08/26/2024
+go_repository(
+ name = "org_golang_google_genproto_googleapis_rpc",
+ build_file_proto_mode = "disable_global",
+ importpath = "google.golang.org/genproto/googleapis/rpc",
+ sum = "h1:2035KHhUv+EpyB+hWgJnaWKJOdX1E95w2S8Rr4uWKTs=",
+ version = "v0.0.0-20240826202546-f6391c0de4c7",
+)
+
+# gRPC deps
+go_repository(
+ name = "org_golang_google_grpc",
+ build_file_proto_mode = "disable_global",
+ importpath = "google.golang.org/grpc",
+ tag = "v1.49.0",
+)
+
+go_repository(
+ name = "org_golang_x_net",
+ importpath = "golang.org/x/net",
+ sum = "h1:oWX7TPOiFAMXLq8o0ikBYfCJVlRHBcsciT5bXOrH628=",
+ version = "v0.0.0-20190311183353-d8887717615a",
+)
+
+go_repository(
+ name = "org_golang_x_text",
+ importpath = "golang.org/x/text",
+ sum = "h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs=",
+ version = "v0.3.2",
+)
+
+# Run the dependencies at the end. These will silently try to import some
+# of the above repositories but at different versions, so ours must come first.
+go_rules_dependencies()
+go_register_toolchains(version = "1.19.1")
+gazelle_dependencies()
+rules_proto_dependencies()
+rules_proto_toolchains()
+protobuf_deps()
diff --git a/vendor/cel.dev/expr/WORKSPACE.bzlmod b/vendor/cel.dev/expr/WORKSPACE.bzlmod
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/vendor/cel.dev/expr/checked.pb.go b/vendor/cel.dev/expr/checked.pb.go
new file mode 100644
index 0000000000..bb225c8ab3
--- /dev/null
+++ b/vendor/cel.dev/expr/checked.pb.go
@@ -0,0 +1,1432 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.28.1
+// protoc v3.21.5
+// source: cel/expr/checked.proto
+
+package expr
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ emptypb "google.golang.org/protobuf/types/known/emptypb"
+ structpb "google.golang.org/protobuf/types/known/structpb"
+ reflect "reflect"
+ sync "sync"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+type Type_PrimitiveType int32
+
+const (
+ Type_PRIMITIVE_TYPE_UNSPECIFIED Type_PrimitiveType = 0
+ Type_BOOL Type_PrimitiveType = 1
+ Type_INT64 Type_PrimitiveType = 2
+ Type_UINT64 Type_PrimitiveType = 3
+ Type_DOUBLE Type_PrimitiveType = 4
+ Type_STRING Type_PrimitiveType = 5
+ Type_BYTES Type_PrimitiveType = 6
+)
+
+// Enum value maps for Type_PrimitiveType.
+var (
+ Type_PrimitiveType_name = map[int32]string{
+ 0: "PRIMITIVE_TYPE_UNSPECIFIED",
+ 1: "BOOL",
+ 2: "INT64",
+ 3: "UINT64",
+ 4: "DOUBLE",
+ 5: "STRING",
+ 6: "BYTES",
+ }
+ Type_PrimitiveType_value = map[string]int32{
+ "PRIMITIVE_TYPE_UNSPECIFIED": 0,
+ "BOOL": 1,
+ "INT64": 2,
+ "UINT64": 3,
+ "DOUBLE": 4,
+ "STRING": 5,
+ "BYTES": 6,
+ }
+)
+
+func (x Type_PrimitiveType) Enum() *Type_PrimitiveType {
+ p := new(Type_PrimitiveType)
+ *p = x
+ return p
+}
+
+func (x Type_PrimitiveType) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (Type_PrimitiveType) Descriptor() protoreflect.EnumDescriptor {
+ return file_cel_expr_checked_proto_enumTypes[0].Descriptor()
+}
+
+func (Type_PrimitiveType) Type() protoreflect.EnumType {
+ return &file_cel_expr_checked_proto_enumTypes[0]
+}
+
+func (x Type_PrimitiveType) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use Type_PrimitiveType.Descriptor instead.
+func (Type_PrimitiveType) EnumDescriptor() ([]byte, []int) {
+ return file_cel_expr_checked_proto_rawDescGZIP(), []int{1, 0}
+}
+
+type Type_WellKnownType int32
+
+const (
+ Type_WELL_KNOWN_TYPE_UNSPECIFIED Type_WellKnownType = 0
+ Type_ANY Type_WellKnownType = 1
+ Type_TIMESTAMP Type_WellKnownType = 2
+ Type_DURATION Type_WellKnownType = 3
+)
+
+// Enum value maps for Type_WellKnownType.
+var (
+ Type_WellKnownType_name = map[int32]string{
+ 0: "WELL_KNOWN_TYPE_UNSPECIFIED",
+ 1: "ANY",
+ 2: "TIMESTAMP",
+ 3: "DURATION",
+ }
+ Type_WellKnownType_value = map[string]int32{
+ "WELL_KNOWN_TYPE_UNSPECIFIED": 0,
+ "ANY": 1,
+ "TIMESTAMP": 2,
+ "DURATION": 3,
+ }
+)
+
+func (x Type_WellKnownType) Enum() *Type_WellKnownType {
+ p := new(Type_WellKnownType)
+ *p = x
+ return p
+}
+
+func (x Type_WellKnownType) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (Type_WellKnownType) Descriptor() protoreflect.EnumDescriptor {
+ return file_cel_expr_checked_proto_enumTypes[1].Descriptor()
+}
+
+func (Type_WellKnownType) Type() protoreflect.EnumType {
+ return &file_cel_expr_checked_proto_enumTypes[1]
+}
+
+func (x Type_WellKnownType) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use Type_WellKnownType.Descriptor instead.
+func (Type_WellKnownType) EnumDescriptor() ([]byte, []int) {
+ return file_cel_expr_checked_proto_rawDescGZIP(), []int{1, 1}
+}
+
+type CheckedExpr struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ ReferenceMap map[int64]*Reference `protobuf:"bytes,2,rep,name=reference_map,json=referenceMap,proto3" json:"reference_map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+ TypeMap map[int64]*Type `protobuf:"bytes,3,rep,name=type_map,json=typeMap,proto3" json:"type_map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+ SourceInfo *SourceInfo `protobuf:"bytes,5,opt,name=source_info,json=sourceInfo,proto3" json:"source_info,omitempty"`
+ ExprVersion string `protobuf:"bytes,6,opt,name=expr_version,json=exprVersion,proto3" json:"expr_version,omitempty"`
+ Expr *Expr `protobuf:"bytes,4,opt,name=expr,proto3" json:"expr,omitempty"`
+}
+
+func (x *CheckedExpr) Reset() {
+ *x = CheckedExpr{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_cel_expr_checked_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CheckedExpr) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CheckedExpr) ProtoMessage() {}
+
+func (x *CheckedExpr) ProtoReflect() protoreflect.Message {
+ mi := &file_cel_expr_checked_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CheckedExpr.ProtoReflect.Descriptor instead.
+func (*CheckedExpr) Descriptor() ([]byte, []int) {
+ return file_cel_expr_checked_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *CheckedExpr) GetReferenceMap() map[int64]*Reference {
+ if x != nil {
+ return x.ReferenceMap
+ }
+ return nil
+}
+
+func (x *CheckedExpr) GetTypeMap() map[int64]*Type {
+ if x != nil {
+ return x.TypeMap
+ }
+ return nil
+}
+
+func (x *CheckedExpr) GetSourceInfo() *SourceInfo {
+ if x != nil {
+ return x.SourceInfo
+ }
+ return nil
+}
+
+func (x *CheckedExpr) GetExprVersion() string {
+ if x != nil {
+ return x.ExprVersion
+ }
+ return ""
+}
+
+func (x *CheckedExpr) GetExpr() *Expr {
+ if x != nil {
+ return x.Expr
+ }
+ return nil
+}
+
+type Type struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Types that are assignable to TypeKind:
+ //
+ // *Type_Dyn
+ // *Type_Null
+ // *Type_Primitive
+ // *Type_Wrapper
+ // *Type_WellKnown
+ // *Type_ListType_
+ // *Type_MapType_
+ // *Type_Function
+ // *Type_MessageType
+ // *Type_TypeParam
+ // *Type_Type
+ // *Type_Error
+ // *Type_AbstractType_
+ TypeKind isType_TypeKind `protobuf_oneof:"type_kind"`
+}
+
+func (x *Type) Reset() {
+ *x = Type{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_cel_expr_checked_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Type) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Type) ProtoMessage() {}
+
+func (x *Type) ProtoReflect() protoreflect.Message {
+ mi := &file_cel_expr_checked_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Type.ProtoReflect.Descriptor instead.
+func (*Type) Descriptor() ([]byte, []int) {
+ return file_cel_expr_checked_proto_rawDescGZIP(), []int{1}
+}
+
+func (m *Type) GetTypeKind() isType_TypeKind {
+ if m != nil {
+ return m.TypeKind
+ }
+ return nil
+}
+
+func (x *Type) GetDyn() *emptypb.Empty {
+ if x, ok := x.GetTypeKind().(*Type_Dyn); ok {
+ return x.Dyn
+ }
+ return nil
+}
+
+func (x *Type) GetNull() structpb.NullValue {
+ if x, ok := x.GetTypeKind().(*Type_Null); ok {
+ return x.Null
+ }
+ return structpb.NullValue(0)
+}
+
+func (x *Type) GetPrimitive() Type_PrimitiveType {
+ if x, ok := x.GetTypeKind().(*Type_Primitive); ok {
+ return x.Primitive
+ }
+ return Type_PRIMITIVE_TYPE_UNSPECIFIED
+}
+
+func (x *Type) GetWrapper() Type_PrimitiveType {
+ if x, ok := x.GetTypeKind().(*Type_Wrapper); ok {
+ return x.Wrapper
+ }
+ return Type_PRIMITIVE_TYPE_UNSPECIFIED
+}
+
+func (x *Type) GetWellKnown() Type_WellKnownType {
+ if x, ok := x.GetTypeKind().(*Type_WellKnown); ok {
+ return x.WellKnown
+ }
+ return Type_WELL_KNOWN_TYPE_UNSPECIFIED
+}
+
+func (x *Type) GetListType() *Type_ListType {
+ if x, ok := x.GetTypeKind().(*Type_ListType_); ok {
+ return x.ListType
+ }
+ return nil
+}
+
+func (x *Type) GetMapType() *Type_MapType {
+ if x, ok := x.GetTypeKind().(*Type_MapType_); ok {
+ return x.MapType
+ }
+ return nil
+}
+
+func (x *Type) GetFunction() *Type_FunctionType {
+ if x, ok := x.GetTypeKind().(*Type_Function); ok {
+ return x.Function
+ }
+ return nil
+}
+
+func (x *Type) GetMessageType() string {
+ if x, ok := x.GetTypeKind().(*Type_MessageType); ok {
+ return x.MessageType
+ }
+ return ""
+}
+
+func (x *Type) GetTypeParam() string {
+ if x, ok := x.GetTypeKind().(*Type_TypeParam); ok {
+ return x.TypeParam
+ }
+ return ""
+}
+
+func (x *Type) GetType() *Type {
+ if x, ok := x.GetTypeKind().(*Type_Type); ok {
+ return x.Type
+ }
+ return nil
+}
+
+func (x *Type) GetError() *emptypb.Empty {
+ if x, ok := x.GetTypeKind().(*Type_Error); ok {
+ return x.Error
+ }
+ return nil
+}
+
+func (x *Type) GetAbstractType() *Type_AbstractType {
+ if x, ok := x.GetTypeKind().(*Type_AbstractType_); ok {
+ return x.AbstractType
+ }
+ return nil
+}
+
+type isType_TypeKind interface {
+ isType_TypeKind()
+}
+
+type Type_Dyn struct {
+ Dyn *emptypb.Empty `protobuf:"bytes,1,opt,name=dyn,proto3,oneof"`
+}
+
+type Type_Null struct {
+ Null structpb.NullValue `protobuf:"varint,2,opt,name=null,proto3,enum=google.protobuf.NullValue,oneof"`
+}
+
+type Type_Primitive struct {
+ Primitive Type_PrimitiveType `protobuf:"varint,3,opt,name=primitive,proto3,enum=cel.expr.Type_PrimitiveType,oneof"`
+}
+
+type Type_Wrapper struct {
+ Wrapper Type_PrimitiveType `protobuf:"varint,4,opt,name=wrapper,proto3,enum=cel.expr.Type_PrimitiveType,oneof"`
+}
+
+type Type_WellKnown struct {
+ WellKnown Type_WellKnownType `protobuf:"varint,5,opt,name=well_known,json=wellKnown,proto3,enum=cel.expr.Type_WellKnownType,oneof"`
+}
+
+type Type_ListType_ struct {
+ ListType *Type_ListType `protobuf:"bytes,6,opt,name=list_type,json=listType,proto3,oneof"`
+}
+
+type Type_MapType_ struct {
+ MapType *Type_MapType `protobuf:"bytes,7,opt,name=map_type,json=mapType,proto3,oneof"`
+}
+
+type Type_Function struct {
+ Function *Type_FunctionType `protobuf:"bytes,8,opt,name=function,proto3,oneof"`
+}
+
+type Type_MessageType struct {
+ MessageType string `protobuf:"bytes,9,opt,name=message_type,json=messageType,proto3,oneof"`
+}
+
+type Type_TypeParam struct {
+ TypeParam string `protobuf:"bytes,10,opt,name=type_param,json=typeParam,proto3,oneof"`
+}
+
+type Type_Type struct {
+ Type *Type `protobuf:"bytes,11,opt,name=type,proto3,oneof"`
+}
+
+type Type_Error struct {
+ Error *emptypb.Empty `protobuf:"bytes,12,opt,name=error,proto3,oneof"`
+}
+
+type Type_AbstractType_ struct {
+ AbstractType *Type_AbstractType `protobuf:"bytes,14,opt,name=abstract_type,json=abstractType,proto3,oneof"`
+}
+
+func (*Type_Dyn) isType_TypeKind() {}
+
+func (*Type_Null) isType_TypeKind() {}
+
+func (*Type_Primitive) isType_TypeKind() {}
+
+func (*Type_Wrapper) isType_TypeKind() {}
+
+func (*Type_WellKnown) isType_TypeKind() {}
+
+func (*Type_ListType_) isType_TypeKind() {}
+
+func (*Type_MapType_) isType_TypeKind() {}
+
+func (*Type_Function) isType_TypeKind() {}
+
+func (*Type_MessageType) isType_TypeKind() {}
+
+func (*Type_TypeParam) isType_TypeKind() {}
+
+func (*Type_Type) isType_TypeKind() {}
+
+func (*Type_Error) isType_TypeKind() {}
+
+func (*Type_AbstractType_) isType_TypeKind() {}
+
+type Decl struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+ // Types that are assignable to DeclKind:
+ //
+ // *Decl_Ident
+ // *Decl_Function
+ DeclKind isDecl_DeclKind `protobuf_oneof:"decl_kind"`
+}
+
+func (x *Decl) Reset() {
+ *x = Decl{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_cel_expr_checked_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Decl) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Decl) ProtoMessage() {}
+
+func (x *Decl) ProtoReflect() protoreflect.Message {
+ mi := &file_cel_expr_checked_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Decl.ProtoReflect.Descriptor instead.
+func (*Decl) Descriptor() ([]byte, []int) {
+ return file_cel_expr_checked_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *Decl) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (m *Decl) GetDeclKind() isDecl_DeclKind {
+ if m != nil {
+ return m.DeclKind
+ }
+ return nil
+}
+
+func (x *Decl) GetIdent() *Decl_IdentDecl {
+ if x, ok := x.GetDeclKind().(*Decl_Ident); ok {
+ return x.Ident
+ }
+ return nil
+}
+
+func (x *Decl) GetFunction() *Decl_FunctionDecl {
+ if x, ok := x.GetDeclKind().(*Decl_Function); ok {
+ return x.Function
+ }
+ return nil
+}
+
+type isDecl_DeclKind interface {
+ isDecl_DeclKind()
+}
+
+type Decl_Ident struct {
+ Ident *Decl_IdentDecl `protobuf:"bytes,2,opt,name=ident,proto3,oneof"`
+}
+
+type Decl_Function struct {
+ Function *Decl_FunctionDecl `protobuf:"bytes,3,opt,name=function,proto3,oneof"`
+}
+
+func (*Decl_Ident) isDecl_DeclKind() {}
+
+func (*Decl_Function) isDecl_DeclKind() {}
+
+type Reference struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+ OverloadId []string `protobuf:"bytes,3,rep,name=overload_id,json=overloadId,proto3" json:"overload_id,omitempty"`
+ Value *Constant `protobuf:"bytes,4,opt,name=value,proto3" json:"value,omitempty"`
+}
+
+func (x *Reference) Reset() {
+ *x = Reference{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_cel_expr_checked_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Reference) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Reference) ProtoMessage() {}
+
+func (x *Reference) ProtoReflect() protoreflect.Message {
+ mi := &file_cel_expr_checked_proto_msgTypes[3]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Reference.ProtoReflect.Descriptor instead.
+func (*Reference) Descriptor() ([]byte, []int) {
+ return file_cel_expr_checked_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *Reference) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *Reference) GetOverloadId() []string {
+ if x != nil {
+ return x.OverloadId
+ }
+ return nil
+}
+
+func (x *Reference) GetValue() *Constant {
+ if x != nil {
+ return x.Value
+ }
+ return nil
+}
+
+type Type_ListType struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ ElemType *Type `protobuf:"bytes,1,opt,name=elem_type,json=elemType,proto3" json:"elem_type,omitempty"`
+}
+
+func (x *Type_ListType) Reset() {
+ *x = Type_ListType{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_cel_expr_checked_proto_msgTypes[6]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Type_ListType) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Type_ListType) ProtoMessage() {}
+
+func (x *Type_ListType) ProtoReflect() protoreflect.Message {
+ mi := &file_cel_expr_checked_proto_msgTypes[6]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Type_ListType.ProtoReflect.Descriptor instead.
+func (*Type_ListType) Descriptor() ([]byte, []int) {
+ return file_cel_expr_checked_proto_rawDescGZIP(), []int{1, 0}
+}
+
+func (x *Type_ListType) GetElemType() *Type {
+ if x != nil {
+ return x.ElemType
+ }
+ return nil
+}
+
+type Type_MapType struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ KeyType *Type `protobuf:"bytes,1,opt,name=key_type,json=keyType,proto3" json:"key_type,omitempty"`
+ ValueType *Type `protobuf:"bytes,2,opt,name=value_type,json=valueType,proto3" json:"value_type,omitempty"`
+}
+
+func (x *Type_MapType) Reset() {
+ *x = Type_MapType{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_cel_expr_checked_proto_msgTypes[7]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Type_MapType) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Type_MapType) ProtoMessage() {}
+
+func (x *Type_MapType) ProtoReflect() protoreflect.Message {
+ mi := &file_cel_expr_checked_proto_msgTypes[7]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Type_MapType.ProtoReflect.Descriptor instead.
+func (*Type_MapType) Descriptor() ([]byte, []int) {
+ return file_cel_expr_checked_proto_rawDescGZIP(), []int{1, 1}
+}
+
+func (x *Type_MapType) GetKeyType() *Type {
+ if x != nil {
+ return x.KeyType
+ }
+ return nil
+}
+
+func (x *Type_MapType) GetValueType() *Type {
+ if x != nil {
+ return x.ValueType
+ }
+ return nil
+}
+
+type Type_FunctionType struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ ResultType *Type `protobuf:"bytes,1,opt,name=result_type,json=resultType,proto3" json:"result_type,omitempty"`
+ ArgTypes []*Type `protobuf:"bytes,2,rep,name=arg_types,json=argTypes,proto3" json:"arg_types,omitempty"`
+}
+
+func (x *Type_FunctionType) Reset() {
+ *x = Type_FunctionType{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_cel_expr_checked_proto_msgTypes[8]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Type_FunctionType) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Type_FunctionType) ProtoMessage() {}
+
+func (x *Type_FunctionType) ProtoReflect() protoreflect.Message {
+ mi := &file_cel_expr_checked_proto_msgTypes[8]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Type_FunctionType.ProtoReflect.Descriptor instead.
+func (*Type_FunctionType) Descriptor() ([]byte, []int) {
+ return file_cel_expr_checked_proto_rawDescGZIP(), []int{1, 2}
+}
+
+func (x *Type_FunctionType) GetResultType() *Type {
+ if x != nil {
+ return x.ResultType
+ }
+ return nil
+}
+
+func (x *Type_FunctionType) GetArgTypes() []*Type {
+ if x != nil {
+ return x.ArgTypes
+ }
+ return nil
+}
+
+type Type_AbstractType struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+ ParameterTypes []*Type `protobuf:"bytes,2,rep,name=parameter_types,json=parameterTypes,proto3" json:"parameter_types,omitempty"`
+}
+
+func (x *Type_AbstractType) Reset() {
+ *x = Type_AbstractType{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_cel_expr_checked_proto_msgTypes[9]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Type_AbstractType) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Type_AbstractType) ProtoMessage() {}
+
+func (x *Type_AbstractType) ProtoReflect() protoreflect.Message {
+ mi := &file_cel_expr_checked_proto_msgTypes[9]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Type_AbstractType.ProtoReflect.Descriptor instead.
+func (*Type_AbstractType) Descriptor() ([]byte, []int) {
+ return file_cel_expr_checked_proto_rawDescGZIP(), []int{1, 3}
+}
+
+func (x *Type_AbstractType) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *Type_AbstractType) GetParameterTypes() []*Type {
+ if x != nil {
+ return x.ParameterTypes
+ }
+ return nil
+}
+
+type Decl_IdentDecl struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Type *Type `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
+ Value *Constant `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
+ Doc string `protobuf:"bytes,3,opt,name=doc,proto3" json:"doc,omitempty"`
+}
+
+func (x *Decl_IdentDecl) Reset() {
+ *x = Decl_IdentDecl{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_cel_expr_checked_proto_msgTypes[10]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Decl_IdentDecl) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Decl_IdentDecl) ProtoMessage() {}
+
+func (x *Decl_IdentDecl) ProtoReflect() protoreflect.Message {
+ mi := &file_cel_expr_checked_proto_msgTypes[10]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Decl_IdentDecl.ProtoReflect.Descriptor instead.
+func (*Decl_IdentDecl) Descriptor() ([]byte, []int) {
+ return file_cel_expr_checked_proto_rawDescGZIP(), []int{2, 0}
+}
+
+func (x *Decl_IdentDecl) GetType() *Type {
+ if x != nil {
+ return x.Type
+ }
+ return nil
+}
+
+func (x *Decl_IdentDecl) GetValue() *Constant {
+ if x != nil {
+ return x.Value
+ }
+ return nil
+}
+
+func (x *Decl_IdentDecl) GetDoc() string {
+ if x != nil {
+ return x.Doc
+ }
+ return ""
+}
+
+type Decl_FunctionDecl struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Overloads []*Decl_FunctionDecl_Overload `protobuf:"bytes,1,rep,name=overloads,proto3" json:"overloads,omitempty"`
+}
+
+func (x *Decl_FunctionDecl) Reset() {
+ *x = Decl_FunctionDecl{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_cel_expr_checked_proto_msgTypes[11]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Decl_FunctionDecl) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Decl_FunctionDecl) ProtoMessage() {}
+
+func (x *Decl_FunctionDecl) ProtoReflect() protoreflect.Message {
+ mi := &file_cel_expr_checked_proto_msgTypes[11]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Decl_FunctionDecl.ProtoReflect.Descriptor instead.
+func (*Decl_FunctionDecl) Descriptor() ([]byte, []int) {
+ return file_cel_expr_checked_proto_rawDescGZIP(), []int{2, 1}
+}
+
+func (x *Decl_FunctionDecl) GetOverloads() []*Decl_FunctionDecl_Overload {
+ if x != nil {
+ return x.Overloads
+ }
+ return nil
+}
+
+type Decl_FunctionDecl_Overload struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ OverloadId string `protobuf:"bytes,1,opt,name=overload_id,json=overloadId,proto3" json:"overload_id,omitempty"`
+ Params []*Type `protobuf:"bytes,2,rep,name=params,proto3" json:"params,omitempty"`
+ TypeParams []string `protobuf:"bytes,3,rep,name=type_params,json=typeParams,proto3" json:"type_params,omitempty"`
+ ResultType *Type `protobuf:"bytes,4,opt,name=result_type,json=resultType,proto3" json:"result_type,omitempty"`
+ IsInstanceFunction bool `protobuf:"varint,5,opt,name=is_instance_function,json=isInstanceFunction,proto3" json:"is_instance_function,omitempty"`
+ Doc string `protobuf:"bytes,6,opt,name=doc,proto3" json:"doc,omitempty"`
+}
+
+func (x *Decl_FunctionDecl_Overload) Reset() {
+ *x = Decl_FunctionDecl_Overload{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_cel_expr_checked_proto_msgTypes[12]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Decl_FunctionDecl_Overload) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Decl_FunctionDecl_Overload) ProtoMessage() {}
+
+func (x *Decl_FunctionDecl_Overload) ProtoReflect() protoreflect.Message {
+ mi := &file_cel_expr_checked_proto_msgTypes[12]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Decl_FunctionDecl_Overload.ProtoReflect.Descriptor instead.
+func (*Decl_FunctionDecl_Overload) Descriptor() ([]byte, []int) {
+ return file_cel_expr_checked_proto_rawDescGZIP(), []int{2, 1, 0}
+}
+
+func (x *Decl_FunctionDecl_Overload) GetOverloadId() string {
+ if x != nil {
+ return x.OverloadId
+ }
+ return ""
+}
+
+func (x *Decl_FunctionDecl_Overload) GetParams() []*Type {
+ if x != nil {
+ return x.Params
+ }
+ return nil
+}
+
+func (x *Decl_FunctionDecl_Overload) GetTypeParams() []string {
+ if x != nil {
+ return x.TypeParams
+ }
+ return nil
+}
+
+func (x *Decl_FunctionDecl_Overload) GetResultType() *Type {
+ if x != nil {
+ return x.ResultType
+ }
+ return nil
+}
+
+func (x *Decl_FunctionDecl_Overload) GetIsInstanceFunction() bool {
+ if x != nil {
+ return x.IsInstanceFunction
+ }
+ return false
+}
+
+func (x *Decl_FunctionDecl_Overload) GetDoc() string {
+ if x != nil {
+ return x.Doc
+ }
+ return ""
+}
+
+var File_cel_expr_checked_proto protoreflect.FileDescriptor
+
+var file_cel_expr_checked_proto_rawDesc = []byte{
+ 0x0a, 0x16, 0x63, 0x65, 0x6c, 0x2f, 0x65, 0x78, 0x70, 0x72, 0x2f, 0x63, 0x68, 0x65, 0x63, 0x6b,
+ 0x65, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78,
+ 0x70, 0x72, 0x1a, 0x15, 0x63, 0x65, 0x6c, 0x2f, 0x65, 0x78, 0x70, 0x72, 0x2f, 0x73, 0x79, 0x6e,
+ 0x74, 0x61, 0x78, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xba, 0x03, 0x0a, 0x0b, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64,
+ 0x45, 0x78, 0x70, 0x72, 0x12, 0x4c, 0x0a, 0x0d, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63,
+ 0x65, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x65,
+ 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78,
+ 0x70, 0x72, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x4d, 0x61, 0x70, 0x45,
+ 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x4d,
+ 0x61, 0x70, 0x12, 0x3d, 0x0a, 0x08, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x03,
+ 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e,
+ 0x43, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x70, 0x72, 0x2e, 0x54, 0x79, 0x70, 0x65,
+ 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x74, 0x79, 0x70, 0x65, 0x4d, 0x61,
+ 0x70, 0x12, 0x35, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f,
+ 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70,
+ 0x72, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x73, 0x6f,
+ 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x78, 0x70, 0x72,
+ 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b,
+ 0x65, 0x78, 0x70, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x04, 0x65,
+ 0x78, 0x70, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x65, 0x6c, 0x2e,
+ 0x65, 0x78, 0x70, 0x72, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x52, 0x04, 0x65, 0x78, 0x70, 0x72, 0x1a,
+ 0x54, 0x0a, 0x11, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x4d, 0x61, 0x70, 0x45,
+ 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x29, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72,
+ 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
+ 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x4a, 0x0a, 0x0c, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x61, 0x70,
+ 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70,
+ 0x72, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
+ 0x01, 0x22, 0xe6, 0x09, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x03, 0x64, 0x79,
+ 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48,
+ 0x00, 0x52, 0x03, 0x64, 0x79, 0x6e, 0x12, 0x30, 0x0a, 0x04, 0x6e, 0x75, 0x6c, 0x6c, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65,
+ 0x48, 0x00, 0x52, 0x04, 0x6e, 0x75, 0x6c, 0x6c, 0x12, 0x3c, 0x0a, 0x09, 0x70, 0x72, 0x69, 0x6d,
+ 0x69, 0x74, 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x63, 0x65,
+ 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x50, 0x72, 0x69, 0x6d,
+ 0x69, 0x74, 0x69, 0x76, 0x65, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x09, 0x70, 0x72, 0x69,
+ 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, 0x12, 0x38, 0x0a, 0x07, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65,
+ 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78,
+ 0x70, 0x72, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x50, 0x72, 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76,
+ 0x65, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x07, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72,
+ 0x12, 0x3d, 0x0a, 0x0a, 0x77, 0x65, 0x6c, 0x6c, 0x5f, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x18, 0x05,
+ 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e,
+ 0x54, 0x79, 0x70, 0x65, 0x2e, 0x57, 0x65, 0x6c, 0x6c, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x54, 0x79,
+ 0x70, 0x65, 0x48, 0x00, 0x52, 0x09, 0x77, 0x65, 0x6c, 0x6c, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x12,
+ 0x36, 0x0a, 0x09, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x54, 0x79,
+ 0x70, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x08, 0x6c,
+ 0x69, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x33, 0x0a, 0x08, 0x6d, 0x61, 0x70, 0x5f, 0x74,
+ 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x65, 0x6c, 0x2e,
+ 0x65, 0x78, 0x70, 0x72, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4d, 0x61, 0x70, 0x54, 0x79, 0x70,
+ 0x65, 0x48, 0x00, 0x52, 0x07, 0x6d, 0x61, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x39, 0x0a, 0x08,
+ 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b,
+ 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x46,
+ 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x08, 0x66,
+ 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61,
+ 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52,
+ 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0a,
+ 0x74, 0x79, 0x70, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09,
+ 0x48, 0x00, 0x52, 0x09, 0x74, 0x79, 0x70, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x24, 0x0a,
+ 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x65,
+ 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x04, 0x74,
+ 0x79, 0x70, 0x65, 0x12, 0x2e, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x0c, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72,
+ 0x72, 0x6f, 0x72, 0x12, 0x42, 0x0a, 0x0d, 0x61, 0x62, 0x73, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f,
+ 0x74, 0x79, 0x70, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x65, 0x6c,
+ 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x41, 0x62, 0x73, 0x74, 0x72,
+ 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x62, 0x73, 0x74, 0x72,
+ 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x1a, 0x37, 0x0a, 0x08, 0x4c, 0x69, 0x73, 0x74, 0x54,
+ 0x79, 0x70, 0x65, 0x12, 0x2b, 0x0a, 0x09, 0x65, 0x6c, 0x65, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70,
+ 0x72, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x65, 0x6c, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65,
+ 0x1a, 0x63, 0x0a, 0x07, 0x4d, 0x61, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x29, 0x0a, 0x08, 0x6b,
+ 0x65, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e,
+ 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x6b,
+ 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2d, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f,
+ 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x65, 0x6c,
+ 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x76, 0x61, 0x6c, 0x75,
+ 0x65, 0x54, 0x79, 0x70, 0x65, 0x1a, 0x6c, 0x0a, 0x0c, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f,
+ 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2f, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f,
+ 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x65, 0x6c,
+ 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x75,
+ 0x6c, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2b, 0x0a, 0x09, 0x61, 0x72, 0x67, 0x5f, 0x74, 0x79,
+ 0x70, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x65, 0x6c, 0x2e,
+ 0x65, 0x78, 0x70, 0x72, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x61, 0x72, 0x67, 0x54, 0x79,
+ 0x70, 0x65, 0x73, 0x1a, 0x5b, 0x0a, 0x0c, 0x41, 0x62, 0x73, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54,
+ 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x0f, 0x70, 0x61, 0x72, 0x61, 0x6d,
+ 0x65, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b,
+ 0x32, 0x0e, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x54, 0x79, 0x70, 0x65,
+ 0x52, 0x0e, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x73,
+ 0x22, 0x73, 0x0a, 0x0d, 0x50, 0x72, 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, 0x54, 0x79, 0x70,
+ 0x65, 0x12, 0x1e, 0x0a, 0x1a, 0x50, 0x52, 0x49, 0x4d, 0x49, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x54,
+ 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10,
+ 0x00, 0x12, 0x08, 0x0a, 0x04, 0x42, 0x4f, 0x4f, 0x4c, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x49,
+ 0x4e, 0x54, 0x36, 0x34, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x55, 0x49, 0x4e, 0x54, 0x36, 0x34,
+ 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x4f, 0x55, 0x42, 0x4c, 0x45, 0x10, 0x04, 0x12, 0x0a,
+ 0x0a, 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x05, 0x12, 0x09, 0x0a, 0x05, 0x42, 0x59,
+ 0x54, 0x45, 0x53, 0x10, 0x06, 0x22, 0x56, 0x0a, 0x0d, 0x57, 0x65, 0x6c, 0x6c, 0x4b, 0x6e, 0x6f,
+ 0x77, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x1b, 0x57, 0x45, 0x4c, 0x4c, 0x5f, 0x4b,
+ 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43,
+ 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x4e, 0x59, 0x10, 0x01,
+ 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x49, 0x4d, 0x45, 0x53, 0x54, 0x41, 0x4d, 0x50, 0x10, 0x02, 0x12,
+ 0x0c, 0x0a, 0x08, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x03, 0x42, 0x0b, 0x0a,
+ 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x22, 0xc2, 0x04, 0x0a, 0x04, 0x44,
+ 0x65, 0x63, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x05, 0x69, 0x64, 0x65, 0x6e, 0x74,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70,
+ 0x72, 0x2e, 0x44, 0x65, 0x63, 0x6c, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x63, 0x6c,
+ 0x48, 0x00, 0x52, 0x05, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x08, 0x66, 0x75, 0x6e,
+ 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x65,
+ 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x44, 0x65, 0x63, 0x6c, 0x2e, 0x46, 0x75, 0x6e, 0x63,
+ 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x63, 0x6c, 0x48, 0x00, 0x52, 0x08, 0x66, 0x75, 0x6e, 0x63,
+ 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x6b, 0x0a, 0x09, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x63,
+ 0x6c, 0x12, 0x22, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x0e, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52,
+ 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e,
+ 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12,
+ 0x10, 0x0a, 0x03, 0x64, 0x6f, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x6f,
+ 0x63, 0x1a, 0xbe, 0x02, 0x0a, 0x0c, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65,
+ 0x63, 0x6c, 0x12, 0x42, 0x0a, 0x09, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x18,
+ 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72,
+ 0x2e, 0x44, 0x65, 0x63, 0x6c, 0x2e, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65,
+ 0x63, 0x6c, 0x2e, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x09, 0x6f, 0x76, 0x65,
+ 0x72, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x1a, 0xe9, 0x01, 0x0a, 0x08, 0x4f, 0x76, 0x65, 0x72, 0x6c,
+ 0x6f, 0x61, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x6f, 0x61, 0x64, 0x5f,
+ 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x6f,
+ 0x61, 0x64, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02,
+ 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e,
+ 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1f, 0x0a, 0x0b,
+ 0x74, 0x79, 0x70, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28,
+ 0x09, 0x52, 0x0a, 0x74, 0x79, 0x70, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2f, 0x0a,
+ 0x0b, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x54, 0x79,
+ 0x70, 0x65, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x30,
+ 0x0a, 0x14, 0x69, 0x73, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x66, 0x75,
+ 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x69, 0x73,
+ 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e,
+ 0x12, 0x10, 0x0a, 0x03, 0x64, 0x6f, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64,
+ 0x6f, 0x63, 0x42, 0x0b, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x6c, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x22,
+ 0x6a, 0x0a, 0x09, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04,
+ 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65,
+ 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x69, 0x64, 0x18,
+ 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x6f, 0x61, 0x64, 0x49,
+ 0x64, 0x12, 0x28, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x12, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x73,
+ 0x74, 0x61, 0x6e, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x2c, 0x0a, 0x0c, 0x64,
+ 0x65, 0x76, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x42, 0x09, 0x44, 0x65, 0x63,
+ 0x6c, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x0c, 0x63, 0x65, 0x6c, 0x2e, 0x64, 0x65,
+ 0x76, 0x2f, 0x65, 0x78, 0x70, 0x72, 0xf8, 0x01, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x33,
+}
+
+var (
+ file_cel_expr_checked_proto_rawDescOnce sync.Once
+ file_cel_expr_checked_proto_rawDescData = file_cel_expr_checked_proto_rawDesc
+)
+
+func file_cel_expr_checked_proto_rawDescGZIP() []byte {
+ file_cel_expr_checked_proto_rawDescOnce.Do(func() {
+ file_cel_expr_checked_proto_rawDescData = protoimpl.X.CompressGZIP(file_cel_expr_checked_proto_rawDescData)
+ })
+ return file_cel_expr_checked_proto_rawDescData
+}
+
+var file_cel_expr_checked_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
+var file_cel_expr_checked_proto_msgTypes = make([]protoimpl.MessageInfo, 13)
+var file_cel_expr_checked_proto_goTypes = []interface{}{
+ (Type_PrimitiveType)(0), // 0: cel.expr.Type.PrimitiveType
+ (Type_WellKnownType)(0), // 1: cel.expr.Type.WellKnownType
+ (*CheckedExpr)(nil), // 2: cel.expr.CheckedExpr
+ (*Type)(nil), // 3: cel.expr.Type
+ (*Decl)(nil), // 4: cel.expr.Decl
+ (*Reference)(nil), // 5: cel.expr.Reference
+ nil, // 6: cel.expr.CheckedExpr.ReferenceMapEntry
+ nil, // 7: cel.expr.CheckedExpr.TypeMapEntry
+ (*Type_ListType)(nil), // 8: cel.expr.Type.ListType
+ (*Type_MapType)(nil), // 9: cel.expr.Type.MapType
+ (*Type_FunctionType)(nil), // 10: cel.expr.Type.FunctionType
+ (*Type_AbstractType)(nil), // 11: cel.expr.Type.AbstractType
+ (*Decl_IdentDecl)(nil), // 12: cel.expr.Decl.IdentDecl
+ (*Decl_FunctionDecl)(nil), // 13: cel.expr.Decl.FunctionDecl
+ (*Decl_FunctionDecl_Overload)(nil), // 14: cel.expr.Decl.FunctionDecl.Overload
+ (*SourceInfo)(nil), // 15: cel.expr.SourceInfo
+ (*Expr)(nil), // 16: cel.expr.Expr
+ (*emptypb.Empty)(nil), // 17: google.protobuf.Empty
+ (structpb.NullValue)(0), // 18: google.protobuf.NullValue
+ (*Constant)(nil), // 19: cel.expr.Constant
+}
+var file_cel_expr_checked_proto_depIdxs = []int32{
+ 6, // 0: cel.expr.CheckedExpr.reference_map:type_name -> cel.expr.CheckedExpr.ReferenceMapEntry
+ 7, // 1: cel.expr.CheckedExpr.type_map:type_name -> cel.expr.CheckedExpr.TypeMapEntry
+ 15, // 2: cel.expr.CheckedExpr.source_info:type_name -> cel.expr.SourceInfo
+ 16, // 3: cel.expr.CheckedExpr.expr:type_name -> cel.expr.Expr
+ 17, // 4: cel.expr.Type.dyn:type_name -> google.protobuf.Empty
+ 18, // 5: cel.expr.Type.null:type_name -> google.protobuf.NullValue
+ 0, // 6: cel.expr.Type.primitive:type_name -> cel.expr.Type.PrimitiveType
+ 0, // 7: cel.expr.Type.wrapper:type_name -> cel.expr.Type.PrimitiveType
+ 1, // 8: cel.expr.Type.well_known:type_name -> cel.expr.Type.WellKnownType
+ 8, // 9: cel.expr.Type.list_type:type_name -> cel.expr.Type.ListType
+ 9, // 10: cel.expr.Type.map_type:type_name -> cel.expr.Type.MapType
+ 10, // 11: cel.expr.Type.function:type_name -> cel.expr.Type.FunctionType
+ 3, // 12: cel.expr.Type.type:type_name -> cel.expr.Type
+ 17, // 13: cel.expr.Type.error:type_name -> google.protobuf.Empty
+ 11, // 14: cel.expr.Type.abstract_type:type_name -> cel.expr.Type.AbstractType
+ 12, // 15: cel.expr.Decl.ident:type_name -> cel.expr.Decl.IdentDecl
+ 13, // 16: cel.expr.Decl.function:type_name -> cel.expr.Decl.FunctionDecl
+ 19, // 17: cel.expr.Reference.value:type_name -> cel.expr.Constant
+ 5, // 18: cel.expr.CheckedExpr.ReferenceMapEntry.value:type_name -> cel.expr.Reference
+ 3, // 19: cel.expr.CheckedExpr.TypeMapEntry.value:type_name -> cel.expr.Type
+ 3, // 20: cel.expr.Type.ListType.elem_type:type_name -> cel.expr.Type
+ 3, // 21: cel.expr.Type.MapType.key_type:type_name -> cel.expr.Type
+ 3, // 22: cel.expr.Type.MapType.value_type:type_name -> cel.expr.Type
+ 3, // 23: cel.expr.Type.FunctionType.result_type:type_name -> cel.expr.Type
+ 3, // 24: cel.expr.Type.FunctionType.arg_types:type_name -> cel.expr.Type
+ 3, // 25: cel.expr.Type.AbstractType.parameter_types:type_name -> cel.expr.Type
+ 3, // 26: cel.expr.Decl.IdentDecl.type:type_name -> cel.expr.Type
+ 19, // 27: cel.expr.Decl.IdentDecl.value:type_name -> cel.expr.Constant
+ 14, // 28: cel.expr.Decl.FunctionDecl.overloads:type_name -> cel.expr.Decl.FunctionDecl.Overload
+ 3, // 29: cel.expr.Decl.FunctionDecl.Overload.params:type_name -> cel.expr.Type
+ 3, // 30: cel.expr.Decl.FunctionDecl.Overload.result_type:type_name -> cel.expr.Type
+ 31, // [31:31] is the sub-list for method output_type
+ 31, // [31:31] is the sub-list for method input_type
+ 31, // [31:31] is the sub-list for extension type_name
+ 31, // [31:31] is the sub-list for extension extendee
+ 0, // [0:31] is the sub-list for field type_name
+}
+
+func init() { file_cel_expr_checked_proto_init() }
+func file_cel_expr_checked_proto_init() {
+ if File_cel_expr_checked_proto != nil {
+ return
+ }
+ file_cel_expr_syntax_proto_init()
+ if !protoimpl.UnsafeEnabled {
+ file_cel_expr_checked_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CheckedExpr); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_cel_expr_checked_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Type); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_cel_expr_checked_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Decl); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_cel_expr_checked_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Reference); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_cel_expr_checked_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Type_ListType); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_cel_expr_checked_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Type_MapType); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_cel_expr_checked_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Type_FunctionType); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_cel_expr_checked_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Type_AbstractType); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_cel_expr_checked_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Decl_IdentDecl); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_cel_expr_checked_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Decl_FunctionDecl); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_cel_expr_checked_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Decl_FunctionDecl_Overload); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ file_cel_expr_checked_proto_msgTypes[1].OneofWrappers = []interface{}{
+ (*Type_Dyn)(nil),
+ (*Type_Null)(nil),
+ (*Type_Primitive)(nil),
+ (*Type_Wrapper)(nil),
+ (*Type_WellKnown)(nil),
+ (*Type_ListType_)(nil),
+ (*Type_MapType_)(nil),
+ (*Type_Function)(nil),
+ (*Type_MessageType)(nil),
+ (*Type_TypeParam)(nil),
+ (*Type_Type)(nil),
+ (*Type_Error)(nil),
+ (*Type_AbstractType_)(nil),
+ }
+ file_cel_expr_checked_proto_msgTypes[2].OneofWrappers = []interface{}{
+ (*Decl_Ident)(nil),
+ (*Decl_Function)(nil),
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_cel_expr_checked_proto_rawDesc,
+ NumEnums: 2,
+ NumMessages: 13,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_cel_expr_checked_proto_goTypes,
+ DependencyIndexes: file_cel_expr_checked_proto_depIdxs,
+ EnumInfos: file_cel_expr_checked_proto_enumTypes,
+ MessageInfos: file_cel_expr_checked_proto_msgTypes,
+ }.Build()
+ File_cel_expr_checked_proto = out.File
+ file_cel_expr_checked_proto_rawDesc = nil
+ file_cel_expr_checked_proto_goTypes = nil
+ file_cel_expr_checked_proto_depIdxs = nil
+}
diff --git a/vendor/cel.dev/expr/cloudbuild.yaml b/vendor/cel.dev/expr/cloudbuild.yaml
new file mode 100644
index 0000000000..c40881f122
--- /dev/null
+++ b/vendor/cel.dev/expr/cloudbuild.yaml
@@ -0,0 +1,9 @@
+steps:
+- name: 'gcr.io/cloud-builders/bazel:7.0.1'
+ entrypoint: bazel
+ args: ['build', '...']
+ id: bazel-build
+ waitFor: ['-']
+timeout: 15m
+options:
+ machineType: 'N1_HIGHCPU_32'
diff --git a/vendor/cel.dev/expr/eval.pb.go b/vendor/cel.dev/expr/eval.pb.go
new file mode 100644
index 0000000000..8f651f9cc6
--- /dev/null
+++ b/vendor/cel.dev/expr/eval.pb.go
@@ -0,0 +1,490 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.28.1
+// protoc v3.21.5
+// source: cel/expr/eval.proto
+
+package expr
+
+import (
+ status "google.golang.org/genproto/googleapis/rpc/status"
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ reflect "reflect"
+ sync "sync"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+type EvalState struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Values []*ExprValue `protobuf:"bytes,1,rep,name=values,proto3" json:"values,omitempty"`
+ Results []*EvalState_Result `protobuf:"bytes,3,rep,name=results,proto3" json:"results,omitempty"`
+}
+
+func (x *EvalState) Reset() {
+ *x = EvalState{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_cel_expr_eval_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *EvalState) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*EvalState) ProtoMessage() {}
+
+func (x *EvalState) ProtoReflect() protoreflect.Message {
+ mi := &file_cel_expr_eval_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use EvalState.ProtoReflect.Descriptor instead.
+func (*EvalState) Descriptor() ([]byte, []int) {
+ return file_cel_expr_eval_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *EvalState) GetValues() []*ExprValue {
+ if x != nil {
+ return x.Values
+ }
+ return nil
+}
+
+func (x *EvalState) GetResults() []*EvalState_Result {
+ if x != nil {
+ return x.Results
+ }
+ return nil
+}
+
+type ExprValue struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Types that are assignable to Kind:
+ //
+ // *ExprValue_Value
+ // *ExprValue_Error
+ // *ExprValue_Unknown
+ Kind isExprValue_Kind `protobuf_oneof:"kind"`
+}
+
+func (x *ExprValue) Reset() {
+ *x = ExprValue{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_cel_expr_eval_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ExprValue) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ExprValue) ProtoMessage() {}
+
+func (x *ExprValue) ProtoReflect() protoreflect.Message {
+ mi := &file_cel_expr_eval_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ExprValue.ProtoReflect.Descriptor instead.
+func (*ExprValue) Descriptor() ([]byte, []int) {
+ return file_cel_expr_eval_proto_rawDescGZIP(), []int{1}
+}
+
+func (m *ExprValue) GetKind() isExprValue_Kind {
+ if m != nil {
+ return m.Kind
+ }
+ return nil
+}
+
+func (x *ExprValue) GetValue() *Value {
+ if x, ok := x.GetKind().(*ExprValue_Value); ok {
+ return x.Value
+ }
+ return nil
+}
+
+func (x *ExprValue) GetError() *ErrorSet {
+ if x, ok := x.GetKind().(*ExprValue_Error); ok {
+ return x.Error
+ }
+ return nil
+}
+
+func (x *ExprValue) GetUnknown() *UnknownSet {
+ if x, ok := x.GetKind().(*ExprValue_Unknown); ok {
+ return x.Unknown
+ }
+ return nil
+}
+
+type isExprValue_Kind interface {
+ isExprValue_Kind()
+}
+
+type ExprValue_Value struct {
+ Value *Value `protobuf:"bytes,1,opt,name=value,proto3,oneof"`
+}
+
+type ExprValue_Error struct {
+ Error *ErrorSet `protobuf:"bytes,2,opt,name=error,proto3,oneof"`
+}
+
+type ExprValue_Unknown struct {
+ Unknown *UnknownSet `protobuf:"bytes,3,opt,name=unknown,proto3,oneof"`
+}
+
+func (*ExprValue_Value) isExprValue_Kind() {}
+
+func (*ExprValue_Error) isExprValue_Kind() {}
+
+func (*ExprValue_Unknown) isExprValue_Kind() {}
+
+type ErrorSet struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Errors []*status.Status `protobuf:"bytes,1,rep,name=errors,proto3" json:"errors,omitempty"`
+}
+
+func (x *ErrorSet) Reset() {
+ *x = ErrorSet{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_cel_expr_eval_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ErrorSet) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ErrorSet) ProtoMessage() {}
+
+func (x *ErrorSet) ProtoReflect() protoreflect.Message {
+ mi := &file_cel_expr_eval_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ErrorSet.ProtoReflect.Descriptor instead.
+func (*ErrorSet) Descriptor() ([]byte, []int) {
+ return file_cel_expr_eval_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *ErrorSet) GetErrors() []*status.Status {
+ if x != nil {
+ return x.Errors
+ }
+ return nil
+}
+
+type UnknownSet struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Exprs []int64 `protobuf:"varint,1,rep,packed,name=exprs,proto3" json:"exprs,omitempty"`
+}
+
+func (x *UnknownSet) Reset() {
+ *x = UnknownSet{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_cel_expr_eval_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UnknownSet) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UnknownSet) ProtoMessage() {}
+
+func (x *UnknownSet) ProtoReflect() protoreflect.Message {
+ mi := &file_cel_expr_eval_proto_msgTypes[3]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UnknownSet.ProtoReflect.Descriptor instead.
+func (*UnknownSet) Descriptor() ([]byte, []int) {
+ return file_cel_expr_eval_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *UnknownSet) GetExprs() []int64 {
+ if x != nil {
+ return x.Exprs
+ }
+ return nil
+}
+
+type EvalState_Result struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Expr int64 `protobuf:"varint,1,opt,name=expr,proto3" json:"expr,omitempty"`
+ Value int64 `protobuf:"varint,2,opt,name=value,proto3" json:"value,omitempty"`
+}
+
+func (x *EvalState_Result) Reset() {
+ *x = EvalState_Result{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_cel_expr_eval_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *EvalState_Result) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*EvalState_Result) ProtoMessage() {}
+
+func (x *EvalState_Result) ProtoReflect() protoreflect.Message {
+ mi := &file_cel_expr_eval_proto_msgTypes[4]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use EvalState_Result.ProtoReflect.Descriptor instead.
+func (*EvalState_Result) Descriptor() ([]byte, []int) {
+ return file_cel_expr_eval_proto_rawDescGZIP(), []int{0, 0}
+}
+
+func (x *EvalState_Result) GetExpr() int64 {
+ if x != nil {
+ return x.Expr
+ }
+ return 0
+}
+
+func (x *EvalState_Result) GetValue() int64 {
+ if x != nil {
+ return x.Value
+ }
+ return 0
+}
+
+var File_cel_expr_eval_proto protoreflect.FileDescriptor
+
+var file_cel_expr_eval_proto_rawDesc = []byte{
+ 0x0a, 0x13, 0x63, 0x65, 0x6c, 0x2f, 0x65, 0x78, 0x70, 0x72, 0x2f, 0x65, 0x76, 0x61, 0x6c, 0x2e,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x1a,
+ 0x14, 0x63, 0x65, 0x6c, 0x2f, 0x65, 0x78, 0x70, 0x72, 0x2f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2e,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x72, 0x70,
+ 0x63, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa2,
+ 0x01, 0x0a, 0x09, 0x45, 0x76, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2b, 0x0a, 0x06,
+ 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63,
+ 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x56, 0x61, 0x6c, 0x75,
+ 0x65, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x34, 0x0a, 0x07, 0x72, 0x65, 0x73,
+ 0x75, 0x6c, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x65, 0x6c,
+ 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e,
+ 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x1a,
+ 0x32, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x65, 0x78, 0x70,
+ 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x65, 0x78, 0x70, 0x72, 0x12, 0x14, 0x0a,
+ 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61,
+ 0x6c, 0x75, 0x65, 0x22, 0x9a, 0x01, 0x0a, 0x09, 0x45, 0x78, 0x70, 0x72, 0x56, 0x61, 0x6c, 0x75,
+ 0x65, 0x12, 0x27, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x0f, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x56, 0x61, 0x6c, 0x75,
+ 0x65, 0x48, 0x00, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2a, 0x0a, 0x05, 0x65, 0x72,
+ 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x65, 0x6c, 0x2e,
+ 0x65, 0x78, 0x70, 0x72, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x74, 0x48, 0x00, 0x52,
+ 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x30, 0x0a, 0x07, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77,
+ 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78,
+ 0x70, 0x72, 0x2e, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x53, 0x65, 0x74, 0x48, 0x00, 0x52,
+ 0x07, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64,
+ 0x22, 0x36, 0x0a, 0x08, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x53, 0x65, 0x74, 0x12, 0x2a, 0x0a, 0x06,
+ 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
+ 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x22, 0x22, 0x0a, 0x0a, 0x55, 0x6e, 0x6b, 0x6e,
+ 0x6f, 0x77, 0x6e, 0x53, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x78, 0x70, 0x72, 0x73, 0x18,
+ 0x01, 0x20, 0x03, 0x28, 0x03, 0x52, 0x05, 0x65, 0x78, 0x70, 0x72, 0x73, 0x42, 0x2c, 0x0a, 0x0c,
+ 0x64, 0x65, 0x76, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x42, 0x09, 0x45, 0x76,
+ 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x0c, 0x63, 0x65, 0x6c, 0x2e, 0x64,
+ 0x65, 0x76, 0x2f, 0x65, 0x78, 0x70, 0x72, 0xf8, 0x01, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x33,
+}
+
+var (
+ file_cel_expr_eval_proto_rawDescOnce sync.Once
+ file_cel_expr_eval_proto_rawDescData = file_cel_expr_eval_proto_rawDesc
+)
+
+func file_cel_expr_eval_proto_rawDescGZIP() []byte {
+ file_cel_expr_eval_proto_rawDescOnce.Do(func() {
+ file_cel_expr_eval_proto_rawDescData = protoimpl.X.CompressGZIP(file_cel_expr_eval_proto_rawDescData)
+ })
+ return file_cel_expr_eval_proto_rawDescData
+}
+
+var file_cel_expr_eval_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
+var file_cel_expr_eval_proto_goTypes = []interface{}{
+ (*EvalState)(nil), // 0: cel.expr.EvalState
+ (*ExprValue)(nil), // 1: cel.expr.ExprValue
+ (*ErrorSet)(nil), // 2: cel.expr.ErrorSet
+ (*UnknownSet)(nil), // 3: cel.expr.UnknownSet
+ (*EvalState_Result)(nil), // 4: cel.expr.EvalState.Result
+ (*Value)(nil), // 5: cel.expr.Value
+ (*status.Status)(nil), // 6: google.rpc.Status
+}
+var file_cel_expr_eval_proto_depIdxs = []int32{
+ 1, // 0: cel.expr.EvalState.values:type_name -> cel.expr.ExprValue
+ 4, // 1: cel.expr.EvalState.results:type_name -> cel.expr.EvalState.Result
+ 5, // 2: cel.expr.ExprValue.value:type_name -> cel.expr.Value
+ 2, // 3: cel.expr.ExprValue.error:type_name -> cel.expr.ErrorSet
+ 3, // 4: cel.expr.ExprValue.unknown:type_name -> cel.expr.UnknownSet
+ 6, // 5: cel.expr.ErrorSet.errors:type_name -> google.rpc.Status
+ 6, // [6:6] is the sub-list for method output_type
+ 6, // [6:6] is the sub-list for method input_type
+ 6, // [6:6] is the sub-list for extension type_name
+ 6, // [6:6] is the sub-list for extension extendee
+ 0, // [0:6] is the sub-list for field type_name
+}
+
+func init() { file_cel_expr_eval_proto_init() }
+func file_cel_expr_eval_proto_init() {
+ if File_cel_expr_eval_proto != nil {
+ return
+ }
+ file_cel_expr_value_proto_init()
+ if !protoimpl.UnsafeEnabled {
+ file_cel_expr_eval_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*EvalState); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_cel_expr_eval_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ExprValue); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_cel_expr_eval_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ErrorSet); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_cel_expr_eval_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UnknownSet); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_cel_expr_eval_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*EvalState_Result); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ file_cel_expr_eval_proto_msgTypes[1].OneofWrappers = []interface{}{
+ (*ExprValue_Value)(nil),
+ (*ExprValue_Error)(nil),
+ (*ExprValue_Unknown)(nil),
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_cel_expr_eval_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 5,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_cel_expr_eval_proto_goTypes,
+ DependencyIndexes: file_cel_expr_eval_proto_depIdxs,
+ MessageInfos: file_cel_expr_eval_proto_msgTypes,
+ }.Build()
+ File_cel_expr_eval_proto = out.File
+ file_cel_expr_eval_proto_rawDesc = nil
+ file_cel_expr_eval_proto_goTypes = nil
+ file_cel_expr_eval_proto_depIdxs = nil
+}
diff --git a/vendor/cel.dev/expr/explain.pb.go b/vendor/cel.dev/expr/explain.pb.go
new file mode 100644
index 0000000000..79fd5443b9
--- /dev/null
+++ b/vendor/cel.dev/expr/explain.pb.go
@@ -0,0 +1,236 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.28.1
+// protoc v3.21.5
+// source: cel/expr/explain.proto
+
+package expr
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ reflect "reflect"
+ sync "sync"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+// Deprecated: Do not use.
+type Explain struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Values []*Value `protobuf:"bytes,1,rep,name=values,proto3" json:"values,omitempty"`
+ ExprSteps []*Explain_ExprStep `protobuf:"bytes,2,rep,name=expr_steps,json=exprSteps,proto3" json:"expr_steps,omitempty"`
+}
+
+func (x *Explain) Reset() {
+ *x = Explain{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_cel_expr_explain_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Explain) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Explain) ProtoMessage() {}
+
+func (x *Explain) ProtoReflect() protoreflect.Message {
+ mi := &file_cel_expr_explain_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Explain.ProtoReflect.Descriptor instead.
+func (*Explain) Descriptor() ([]byte, []int) {
+ return file_cel_expr_explain_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *Explain) GetValues() []*Value {
+ if x != nil {
+ return x.Values
+ }
+ return nil
+}
+
+func (x *Explain) GetExprSteps() []*Explain_ExprStep {
+ if x != nil {
+ return x.ExprSteps
+ }
+ return nil
+}
+
+type Explain_ExprStep struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
+ ValueIndex int32 `protobuf:"varint,2,opt,name=value_index,json=valueIndex,proto3" json:"value_index,omitempty"`
+}
+
+func (x *Explain_ExprStep) Reset() {
+ *x = Explain_ExprStep{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_cel_expr_explain_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Explain_ExprStep) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Explain_ExprStep) ProtoMessage() {}
+
+func (x *Explain_ExprStep) ProtoReflect() protoreflect.Message {
+ mi := &file_cel_expr_explain_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Explain_ExprStep.ProtoReflect.Descriptor instead.
+func (*Explain_ExprStep) Descriptor() ([]byte, []int) {
+ return file_cel_expr_explain_proto_rawDescGZIP(), []int{0, 0}
+}
+
+func (x *Explain_ExprStep) GetId() int64 {
+ if x != nil {
+ return x.Id
+ }
+ return 0
+}
+
+func (x *Explain_ExprStep) GetValueIndex() int32 {
+ if x != nil {
+ return x.ValueIndex
+ }
+ return 0
+}
+
+var File_cel_expr_explain_proto protoreflect.FileDescriptor
+
+var file_cel_expr_explain_proto_rawDesc = []byte{
+ 0x0a, 0x16, 0x63, 0x65, 0x6c, 0x2f, 0x65, 0x78, 0x70, 0x72, 0x2f, 0x65, 0x78, 0x70, 0x6c, 0x61,
+ 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78,
+ 0x70, 0x72, 0x1a, 0x14, 0x63, 0x65, 0x6c, 0x2f, 0x65, 0x78, 0x70, 0x72, 0x2f, 0x76, 0x61, 0x6c,
+ 0x75, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xae, 0x01, 0x0a, 0x07, 0x45, 0x78, 0x70,
+ 0x6c, 0x61, 0x69, 0x6e, 0x12, 0x27, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01,
+ 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e,
+ 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x39, 0x0a,
+ 0x0a, 0x65, 0x78, 0x70, 0x72, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28,
+ 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x45, 0x78, 0x70,
+ 0x6c, 0x61, 0x69, 0x6e, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x53, 0x74, 0x65, 0x70, 0x52, 0x09, 0x65,
+ 0x78, 0x70, 0x72, 0x53, 0x74, 0x65, 0x70, 0x73, 0x1a, 0x3b, 0x0a, 0x08, 0x45, 0x78, 0x70, 0x72,
+ 0x53, 0x74, 0x65, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03,
+ 0x52, 0x02, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x69, 0x6e,
+ 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x76, 0x61, 0x6c, 0x75, 0x65,
+ 0x49, 0x6e, 0x64, 0x65, 0x78, 0x3a, 0x02, 0x18, 0x01, 0x42, 0x2f, 0x0a, 0x0c, 0x64, 0x65, 0x76,
+ 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x42, 0x0c, 0x45, 0x78, 0x70, 0x6c, 0x61,
+ 0x69, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x0c, 0x63, 0x65, 0x6c, 0x2e, 0x64,
+ 0x65, 0x76, 0x2f, 0x65, 0x78, 0x70, 0x72, 0xf8, 0x01, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x33,
+}
+
+var (
+ file_cel_expr_explain_proto_rawDescOnce sync.Once
+ file_cel_expr_explain_proto_rawDescData = file_cel_expr_explain_proto_rawDesc
+)
+
+func file_cel_expr_explain_proto_rawDescGZIP() []byte {
+ file_cel_expr_explain_proto_rawDescOnce.Do(func() {
+ file_cel_expr_explain_proto_rawDescData = protoimpl.X.CompressGZIP(file_cel_expr_explain_proto_rawDescData)
+ })
+ return file_cel_expr_explain_proto_rawDescData
+}
+
+var file_cel_expr_explain_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
+var file_cel_expr_explain_proto_goTypes = []interface{}{
+ (*Explain)(nil), // 0: cel.expr.Explain
+ (*Explain_ExprStep)(nil), // 1: cel.expr.Explain.ExprStep
+ (*Value)(nil), // 2: cel.expr.Value
+}
+var file_cel_expr_explain_proto_depIdxs = []int32{
+ 2, // 0: cel.expr.Explain.values:type_name -> cel.expr.Value
+ 1, // 1: cel.expr.Explain.expr_steps:type_name -> cel.expr.Explain.ExprStep
+ 2, // [2:2] is the sub-list for method output_type
+ 2, // [2:2] is the sub-list for method input_type
+ 2, // [2:2] is the sub-list for extension type_name
+ 2, // [2:2] is the sub-list for extension extendee
+ 0, // [0:2] is the sub-list for field type_name
+}
+
+func init() { file_cel_expr_explain_proto_init() }
+func file_cel_expr_explain_proto_init() {
+ if File_cel_expr_explain_proto != nil {
+ return
+ }
+ file_cel_expr_value_proto_init()
+ if !protoimpl.UnsafeEnabled {
+ file_cel_expr_explain_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Explain); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_cel_expr_explain_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Explain_ExprStep); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_cel_expr_explain_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 2,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_cel_expr_explain_proto_goTypes,
+ DependencyIndexes: file_cel_expr_explain_proto_depIdxs,
+ MessageInfos: file_cel_expr_explain_proto_msgTypes,
+ }.Build()
+ File_cel_expr_explain_proto = out.File
+ file_cel_expr_explain_proto_rawDesc = nil
+ file_cel_expr_explain_proto_goTypes = nil
+ file_cel_expr_explain_proto_depIdxs = nil
+}
diff --git a/vendor/cel.dev/expr/regen_go_proto.sh b/vendor/cel.dev/expr/regen_go_proto.sh
new file mode 100644
index 0000000000..fdcbb3ce25
--- /dev/null
+++ b/vendor/cel.dev/expr/regen_go_proto.sh
@@ -0,0 +1,9 @@
+#!/bin/sh
+bazel build //proto/cel/expr/conformance/...
+files=($(bazel aquery 'kind(proto, //proto/cel/expr/conformance/...)' | grep Outputs | grep "[.]pb[.]go" | sed 's/Outputs: \[//' | sed 's/\]//' | tr "," "\n"))
+for src in ${files[@]};
+do
+ dst=$(echo $src | sed 's/\(.*\/cel.dev\/expr\/\(.*\)\)/\2/')
+ echo "copying $dst"
+ $(cp $src $dst)
+done
diff --git a/vendor/cel.dev/expr/regen_go_proto_canonical_protos.sh b/vendor/cel.dev/expr/regen_go_proto_canonical_protos.sh
new file mode 100644
index 0000000000..9a13479e40
--- /dev/null
+++ b/vendor/cel.dev/expr/regen_go_proto_canonical_protos.sh
@@ -0,0 +1,10 @@
+#!/usr/bin/env bash
+bazel build //proto/cel/expr:all
+
+rm -vf ./*.pb.go
+
+files=( $(bazel cquery //proto/cel/expr:expr_go_proto --output=starlark --starlark:expr="'\n'.join([f.path for f in target.output_groups.go_generated_srcs.to_list()])") )
+for src in "${files[@]}";
+do
+ cp -v "${src}" ./
+done
diff --git a/vendor/cel.dev/expr/syntax.pb.go b/vendor/cel.dev/expr/syntax.pb.go
new file mode 100644
index 0000000000..48a952872e
--- /dev/null
+++ b/vendor/cel.dev/expr/syntax.pb.go
@@ -0,0 +1,1633 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.28.1
+// protoc v3.21.5
+// source: cel/expr/syntax.proto
+
+package expr
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ durationpb "google.golang.org/protobuf/types/known/durationpb"
+ structpb "google.golang.org/protobuf/types/known/structpb"
+ timestamppb "google.golang.org/protobuf/types/known/timestamppb"
+ reflect "reflect"
+ sync "sync"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+type SourceInfo_Extension_Component int32
+
+const (
+ SourceInfo_Extension_COMPONENT_UNSPECIFIED SourceInfo_Extension_Component = 0
+ SourceInfo_Extension_COMPONENT_PARSER SourceInfo_Extension_Component = 1
+ SourceInfo_Extension_COMPONENT_TYPE_CHECKER SourceInfo_Extension_Component = 2
+ SourceInfo_Extension_COMPONENT_RUNTIME SourceInfo_Extension_Component = 3
+)
+
+// Enum value maps for SourceInfo_Extension_Component.
+var (
+ SourceInfo_Extension_Component_name = map[int32]string{
+ 0: "COMPONENT_UNSPECIFIED",
+ 1: "COMPONENT_PARSER",
+ 2: "COMPONENT_TYPE_CHECKER",
+ 3: "COMPONENT_RUNTIME",
+ }
+ SourceInfo_Extension_Component_value = map[string]int32{
+ "COMPONENT_UNSPECIFIED": 0,
+ "COMPONENT_PARSER": 1,
+ "COMPONENT_TYPE_CHECKER": 2,
+ "COMPONENT_RUNTIME": 3,
+ }
+)
+
+func (x SourceInfo_Extension_Component) Enum() *SourceInfo_Extension_Component {
+ p := new(SourceInfo_Extension_Component)
+ *p = x
+ return p
+}
+
+func (x SourceInfo_Extension_Component) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (SourceInfo_Extension_Component) Descriptor() protoreflect.EnumDescriptor {
+ return file_cel_expr_syntax_proto_enumTypes[0].Descriptor()
+}
+
+func (SourceInfo_Extension_Component) Type() protoreflect.EnumType {
+ return &file_cel_expr_syntax_proto_enumTypes[0]
+}
+
+func (x SourceInfo_Extension_Component) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use SourceInfo_Extension_Component.Descriptor instead.
+func (SourceInfo_Extension_Component) EnumDescriptor() ([]byte, []int) {
+ return file_cel_expr_syntax_proto_rawDescGZIP(), []int{3, 2, 0}
+}
+
+type ParsedExpr struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Expr *Expr `protobuf:"bytes,2,opt,name=expr,proto3" json:"expr,omitempty"`
+ SourceInfo *SourceInfo `protobuf:"bytes,3,opt,name=source_info,json=sourceInfo,proto3" json:"source_info,omitempty"`
+}
+
+func (x *ParsedExpr) Reset() {
+ *x = ParsedExpr{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_cel_expr_syntax_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ParsedExpr) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ParsedExpr) ProtoMessage() {}
+
+func (x *ParsedExpr) ProtoReflect() protoreflect.Message {
+ mi := &file_cel_expr_syntax_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ParsedExpr.ProtoReflect.Descriptor instead.
+func (*ParsedExpr) Descriptor() ([]byte, []int) {
+ return file_cel_expr_syntax_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *ParsedExpr) GetExpr() *Expr {
+ if x != nil {
+ return x.Expr
+ }
+ return nil
+}
+
+func (x *ParsedExpr) GetSourceInfo() *SourceInfo {
+ if x != nil {
+ return x.SourceInfo
+ }
+ return nil
+}
+
+type Expr struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Id int64 `protobuf:"varint,2,opt,name=id,proto3" json:"id,omitempty"`
+ // Types that are assignable to ExprKind:
+ //
+ // *Expr_ConstExpr
+ // *Expr_IdentExpr
+ // *Expr_SelectExpr
+ // *Expr_CallExpr
+ // *Expr_ListExpr
+ // *Expr_StructExpr
+ // *Expr_ComprehensionExpr
+ ExprKind isExpr_ExprKind `protobuf_oneof:"expr_kind"`
+}
+
+func (x *Expr) Reset() {
+ *x = Expr{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_cel_expr_syntax_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Expr) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Expr) ProtoMessage() {}
+
+func (x *Expr) ProtoReflect() protoreflect.Message {
+ mi := &file_cel_expr_syntax_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Expr.ProtoReflect.Descriptor instead.
+func (*Expr) Descriptor() ([]byte, []int) {
+ return file_cel_expr_syntax_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *Expr) GetId() int64 {
+ if x != nil {
+ return x.Id
+ }
+ return 0
+}
+
+func (m *Expr) GetExprKind() isExpr_ExprKind {
+ if m != nil {
+ return m.ExprKind
+ }
+ return nil
+}
+
+func (x *Expr) GetConstExpr() *Constant {
+ if x, ok := x.GetExprKind().(*Expr_ConstExpr); ok {
+ return x.ConstExpr
+ }
+ return nil
+}
+
+func (x *Expr) GetIdentExpr() *Expr_Ident {
+ if x, ok := x.GetExprKind().(*Expr_IdentExpr); ok {
+ return x.IdentExpr
+ }
+ return nil
+}
+
+func (x *Expr) GetSelectExpr() *Expr_Select {
+ if x, ok := x.GetExprKind().(*Expr_SelectExpr); ok {
+ return x.SelectExpr
+ }
+ return nil
+}
+
+func (x *Expr) GetCallExpr() *Expr_Call {
+ if x, ok := x.GetExprKind().(*Expr_CallExpr); ok {
+ return x.CallExpr
+ }
+ return nil
+}
+
+func (x *Expr) GetListExpr() *Expr_CreateList {
+ if x, ok := x.GetExprKind().(*Expr_ListExpr); ok {
+ return x.ListExpr
+ }
+ return nil
+}
+
+func (x *Expr) GetStructExpr() *Expr_CreateStruct {
+ if x, ok := x.GetExprKind().(*Expr_StructExpr); ok {
+ return x.StructExpr
+ }
+ return nil
+}
+
+func (x *Expr) GetComprehensionExpr() *Expr_Comprehension {
+ if x, ok := x.GetExprKind().(*Expr_ComprehensionExpr); ok {
+ return x.ComprehensionExpr
+ }
+ return nil
+}
+
+type isExpr_ExprKind interface {
+ isExpr_ExprKind()
+}
+
+type Expr_ConstExpr struct {
+ ConstExpr *Constant `protobuf:"bytes,3,opt,name=const_expr,json=constExpr,proto3,oneof"`
+}
+
+type Expr_IdentExpr struct {
+ IdentExpr *Expr_Ident `protobuf:"bytes,4,opt,name=ident_expr,json=identExpr,proto3,oneof"`
+}
+
+type Expr_SelectExpr struct {
+ SelectExpr *Expr_Select `protobuf:"bytes,5,opt,name=select_expr,json=selectExpr,proto3,oneof"`
+}
+
+type Expr_CallExpr struct {
+ CallExpr *Expr_Call `protobuf:"bytes,6,opt,name=call_expr,json=callExpr,proto3,oneof"`
+}
+
+type Expr_ListExpr struct {
+ ListExpr *Expr_CreateList `protobuf:"bytes,7,opt,name=list_expr,json=listExpr,proto3,oneof"`
+}
+
+type Expr_StructExpr struct {
+ StructExpr *Expr_CreateStruct `protobuf:"bytes,8,opt,name=struct_expr,json=structExpr,proto3,oneof"`
+}
+
+type Expr_ComprehensionExpr struct {
+ ComprehensionExpr *Expr_Comprehension `protobuf:"bytes,9,opt,name=comprehension_expr,json=comprehensionExpr,proto3,oneof"`
+}
+
+func (*Expr_ConstExpr) isExpr_ExprKind() {}
+
+func (*Expr_IdentExpr) isExpr_ExprKind() {}
+
+func (*Expr_SelectExpr) isExpr_ExprKind() {}
+
+func (*Expr_CallExpr) isExpr_ExprKind() {}
+
+func (*Expr_ListExpr) isExpr_ExprKind() {}
+
+func (*Expr_StructExpr) isExpr_ExprKind() {}
+
+func (*Expr_ComprehensionExpr) isExpr_ExprKind() {}
+
+type Constant struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Types that are assignable to ConstantKind:
+ //
+ // *Constant_NullValue
+ // *Constant_BoolValue
+ // *Constant_Int64Value
+ // *Constant_Uint64Value
+ // *Constant_DoubleValue
+ // *Constant_StringValue
+ // *Constant_BytesValue
+ // *Constant_DurationValue
+ // *Constant_TimestampValue
+ ConstantKind isConstant_ConstantKind `protobuf_oneof:"constant_kind"`
+}
+
+func (x *Constant) Reset() {
+ *x = Constant{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_cel_expr_syntax_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Constant) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Constant) ProtoMessage() {}
+
+func (x *Constant) ProtoReflect() protoreflect.Message {
+ mi := &file_cel_expr_syntax_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Constant.ProtoReflect.Descriptor instead.
+func (*Constant) Descriptor() ([]byte, []int) {
+ return file_cel_expr_syntax_proto_rawDescGZIP(), []int{2}
+}
+
+func (m *Constant) GetConstantKind() isConstant_ConstantKind {
+ if m != nil {
+ return m.ConstantKind
+ }
+ return nil
+}
+
+func (x *Constant) GetNullValue() structpb.NullValue {
+ if x, ok := x.GetConstantKind().(*Constant_NullValue); ok {
+ return x.NullValue
+ }
+ return structpb.NullValue(0)
+}
+
+func (x *Constant) GetBoolValue() bool {
+ if x, ok := x.GetConstantKind().(*Constant_BoolValue); ok {
+ return x.BoolValue
+ }
+ return false
+}
+
+func (x *Constant) GetInt64Value() int64 {
+ if x, ok := x.GetConstantKind().(*Constant_Int64Value); ok {
+ return x.Int64Value
+ }
+ return 0
+}
+
+func (x *Constant) GetUint64Value() uint64 {
+ if x, ok := x.GetConstantKind().(*Constant_Uint64Value); ok {
+ return x.Uint64Value
+ }
+ return 0
+}
+
+func (x *Constant) GetDoubleValue() float64 {
+ if x, ok := x.GetConstantKind().(*Constant_DoubleValue); ok {
+ return x.DoubleValue
+ }
+ return 0
+}
+
+func (x *Constant) GetStringValue() string {
+ if x, ok := x.GetConstantKind().(*Constant_StringValue); ok {
+ return x.StringValue
+ }
+ return ""
+}
+
+func (x *Constant) GetBytesValue() []byte {
+ if x, ok := x.GetConstantKind().(*Constant_BytesValue); ok {
+ return x.BytesValue
+ }
+ return nil
+}
+
+// Deprecated: Do not use.
+func (x *Constant) GetDurationValue() *durationpb.Duration {
+ if x, ok := x.GetConstantKind().(*Constant_DurationValue); ok {
+ return x.DurationValue
+ }
+ return nil
+}
+
+// Deprecated: Do not use.
+func (x *Constant) GetTimestampValue() *timestamppb.Timestamp {
+ if x, ok := x.GetConstantKind().(*Constant_TimestampValue); ok {
+ return x.TimestampValue
+ }
+ return nil
+}
+
+type isConstant_ConstantKind interface {
+ isConstant_ConstantKind()
+}
+
+type Constant_NullValue struct {
+ NullValue structpb.NullValue `protobuf:"varint,1,opt,name=null_value,json=nullValue,proto3,enum=google.protobuf.NullValue,oneof"`
+}
+
+type Constant_BoolValue struct {
+ BoolValue bool `protobuf:"varint,2,opt,name=bool_value,json=boolValue,proto3,oneof"`
+}
+
+type Constant_Int64Value struct {
+ Int64Value int64 `protobuf:"varint,3,opt,name=int64_value,json=int64Value,proto3,oneof"`
+}
+
+type Constant_Uint64Value struct {
+ Uint64Value uint64 `protobuf:"varint,4,opt,name=uint64_value,json=uint64Value,proto3,oneof"`
+}
+
+type Constant_DoubleValue struct {
+ DoubleValue float64 `protobuf:"fixed64,5,opt,name=double_value,json=doubleValue,proto3,oneof"`
+}
+
+type Constant_StringValue struct {
+ StringValue string `protobuf:"bytes,6,opt,name=string_value,json=stringValue,proto3,oneof"`
+}
+
+type Constant_BytesValue struct {
+ BytesValue []byte `protobuf:"bytes,7,opt,name=bytes_value,json=bytesValue,proto3,oneof"`
+}
+
+type Constant_DurationValue struct {
+ // Deprecated: Do not use.
+ DurationValue *durationpb.Duration `protobuf:"bytes,8,opt,name=duration_value,json=durationValue,proto3,oneof"`
+}
+
+type Constant_TimestampValue struct {
+ // Deprecated: Do not use.
+ TimestampValue *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=timestamp_value,json=timestampValue,proto3,oneof"`
+}
+
+func (*Constant_NullValue) isConstant_ConstantKind() {}
+
+func (*Constant_BoolValue) isConstant_ConstantKind() {}
+
+func (*Constant_Int64Value) isConstant_ConstantKind() {}
+
+func (*Constant_Uint64Value) isConstant_ConstantKind() {}
+
+func (*Constant_DoubleValue) isConstant_ConstantKind() {}
+
+func (*Constant_StringValue) isConstant_ConstantKind() {}
+
+func (*Constant_BytesValue) isConstant_ConstantKind() {}
+
+func (*Constant_DurationValue) isConstant_ConstantKind() {}
+
+func (*Constant_TimestampValue) isConstant_ConstantKind() {}
+
+type SourceInfo struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ SyntaxVersion string `protobuf:"bytes,1,opt,name=syntax_version,json=syntaxVersion,proto3" json:"syntax_version,omitempty"`
+ Location string `protobuf:"bytes,2,opt,name=location,proto3" json:"location,omitempty"`
+ LineOffsets []int32 `protobuf:"varint,3,rep,packed,name=line_offsets,json=lineOffsets,proto3" json:"line_offsets,omitempty"`
+ Positions map[int64]int32 `protobuf:"bytes,4,rep,name=positions,proto3" json:"positions,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
+ MacroCalls map[int64]*Expr `protobuf:"bytes,5,rep,name=macro_calls,json=macroCalls,proto3" json:"macro_calls,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+ Extensions []*SourceInfo_Extension `protobuf:"bytes,6,rep,name=extensions,proto3" json:"extensions,omitempty"`
+}
+
+func (x *SourceInfo) Reset() {
+ *x = SourceInfo{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_cel_expr_syntax_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *SourceInfo) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SourceInfo) ProtoMessage() {}
+
+func (x *SourceInfo) ProtoReflect() protoreflect.Message {
+ mi := &file_cel_expr_syntax_proto_msgTypes[3]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use SourceInfo.ProtoReflect.Descriptor instead.
+func (*SourceInfo) Descriptor() ([]byte, []int) {
+ return file_cel_expr_syntax_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *SourceInfo) GetSyntaxVersion() string {
+ if x != nil {
+ return x.SyntaxVersion
+ }
+ return ""
+}
+
+func (x *SourceInfo) GetLocation() string {
+ if x != nil {
+ return x.Location
+ }
+ return ""
+}
+
+func (x *SourceInfo) GetLineOffsets() []int32 {
+ if x != nil {
+ return x.LineOffsets
+ }
+ return nil
+}
+
+func (x *SourceInfo) GetPositions() map[int64]int32 {
+ if x != nil {
+ return x.Positions
+ }
+ return nil
+}
+
+func (x *SourceInfo) GetMacroCalls() map[int64]*Expr {
+ if x != nil {
+ return x.MacroCalls
+ }
+ return nil
+}
+
+func (x *SourceInfo) GetExtensions() []*SourceInfo_Extension {
+ if x != nil {
+ return x.Extensions
+ }
+ return nil
+}
+
+type Expr_Ident struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+}
+
+func (x *Expr_Ident) Reset() {
+ *x = Expr_Ident{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_cel_expr_syntax_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Expr_Ident) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Expr_Ident) ProtoMessage() {}
+
+func (x *Expr_Ident) ProtoReflect() protoreflect.Message {
+ mi := &file_cel_expr_syntax_proto_msgTypes[4]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Expr_Ident.ProtoReflect.Descriptor instead.
+func (*Expr_Ident) Descriptor() ([]byte, []int) {
+ return file_cel_expr_syntax_proto_rawDescGZIP(), []int{1, 0}
+}
+
+func (x *Expr_Ident) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+type Expr_Select struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Operand *Expr `protobuf:"bytes,1,opt,name=operand,proto3" json:"operand,omitempty"`
+ Field string `protobuf:"bytes,2,opt,name=field,proto3" json:"field,omitempty"`
+ TestOnly bool `protobuf:"varint,3,opt,name=test_only,json=testOnly,proto3" json:"test_only,omitempty"`
+}
+
+func (x *Expr_Select) Reset() {
+ *x = Expr_Select{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_cel_expr_syntax_proto_msgTypes[5]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Expr_Select) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Expr_Select) ProtoMessage() {}
+
+func (x *Expr_Select) ProtoReflect() protoreflect.Message {
+ mi := &file_cel_expr_syntax_proto_msgTypes[5]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Expr_Select.ProtoReflect.Descriptor instead.
+func (*Expr_Select) Descriptor() ([]byte, []int) {
+ return file_cel_expr_syntax_proto_rawDescGZIP(), []int{1, 1}
+}
+
+func (x *Expr_Select) GetOperand() *Expr {
+ if x != nil {
+ return x.Operand
+ }
+ return nil
+}
+
+func (x *Expr_Select) GetField() string {
+ if x != nil {
+ return x.Field
+ }
+ return ""
+}
+
+func (x *Expr_Select) GetTestOnly() bool {
+ if x != nil {
+ return x.TestOnly
+ }
+ return false
+}
+
+type Expr_Call struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Target *Expr `protobuf:"bytes,1,opt,name=target,proto3" json:"target,omitempty"`
+ Function string `protobuf:"bytes,2,opt,name=function,proto3" json:"function,omitempty"`
+ Args []*Expr `protobuf:"bytes,3,rep,name=args,proto3" json:"args,omitempty"`
+}
+
+func (x *Expr_Call) Reset() {
+ *x = Expr_Call{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_cel_expr_syntax_proto_msgTypes[6]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Expr_Call) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Expr_Call) ProtoMessage() {}
+
+func (x *Expr_Call) ProtoReflect() protoreflect.Message {
+ mi := &file_cel_expr_syntax_proto_msgTypes[6]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Expr_Call.ProtoReflect.Descriptor instead.
+func (*Expr_Call) Descriptor() ([]byte, []int) {
+ return file_cel_expr_syntax_proto_rawDescGZIP(), []int{1, 2}
+}
+
+func (x *Expr_Call) GetTarget() *Expr {
+ if x != nil {
+ return x.Target
+ }
+ return nil
+}
+
+func (x *Expr_Call) GetFunction() string {
+ if x != nil {
+ return x.Function
+ }
+ return ""
+}
+
+func (x *Expr_Call) GetArgs() []*Expr {
+ if x != nil {
+ return x.Args
+ }
+ return nil
+}
+
+type Expr_CreateList struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Elements []*Expr `protobuf:"bytes,1,rep,name=elements,proto3" json:"elements,omitempty"`
+ OptionalIndices []int32 `protobuf:"varint,2,rep,packed,name=optional_indices,json=optionalIndices,proto3" json:"optional_indices,omitempty"`
+}
+
+func (x *Expr_CreateList) Reset() {
+ *x = Expr_CreateList{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_cel_expr_syntax_proto_msgTypes[7]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Expr_CreateList) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Expr_CreateList) ProtoMessage() {}
+
+func (x *Expr_CreateList) ProtoReflect() protoreflect.Message {
+ mi := &file_cel_expr_syntax_proto_msgTypes[7]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Expr_CreateList.ProtoReflect.Descriptor instead.
+func (*Expr_CreateList) Descriptor() ([]byte, []int) {
+ return file_cel_expr_syntax_proto_rawDescGZIP(), []int{1, 3}
+}
+
+func (x *Expr_CreateList) GetElements() []*Expr {
+ if x != nil {
+ return x.Elements
+ }
+ return nil
+}
+
+func (x *Expr_CreateList) GetOptionalIndices() []int32 {
+ if x != nil {
+ return x.OptionalIndices
+ }
+ return nil
+}
+
+type Expr_CreateStruct struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ MessageName string `protobuf:"bytes,1,opt,name=message_name,json=messageName,proto3" json:"message_name,omitempty"`
+ Entries []*Expr_CreateStruct_Entry `protobuf:"bytes,2,rep,name=entries,proto3" json:"entries,omitempty"`
+}
+
+func (x *Expr_CreateStruct) Reset() {
+ *x = Expr_CreateStruct{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_cel_expr_syntax_proto_msgTypes[8]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Expr_CreateStruct) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Expr_CreateStruct) ProtoMessage() {}
+
+func (x *Expr_CreateStruct) ProtoReflect() protoreflect.Message {
+ mi := &file_cel_expr_syntax_proto_msgTypes[8]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Expr_CreateStruct.ProtoReflect.Descriptor instead.
+func (*Expr_CreateStruct) Descriptor() ([]byte, []int) {
+ return file_cel_expr_syntax_proto_rawDescGZIP(), []int{1, 4}
+}
+
+func (x *Expr_CreateStruct) GetMessageName() string {
+ if x != nil {
+ return x.MessageName
+ }
+ return ""
+}
+
+func (x *Expr_CreateStruct) GetEntries() []*Expr_CreateStruct_Entry {
+ if x != nil {
+ return x.Entries
+ }
+ return nil
+}
+
+type Expr_Comprehension struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ IterVar string `protobuf:"bytes,1,opt,name=iter_var,json=iterVar,proto3" json:"iter_var,omitempty"`
+ IterRange *Expr `protobuf:"bytes,2,opt,name=iter_range,json=iterRange,proto3" json:"iter_range,omitempty"`
+ AccuVar string `protobuf:"bytes,3,opt,name=accu_var,json=accuVar,proto3" json:"accu_var,omitempty"`
+ AccuInit *Expr `protobuf:"bytes,4,opt,name=accu_init,json=accuInit,proto3" json:"accu_init,omitempty"`
+ LoopCondition *Expr `protobuf:"bytes,5,opt,name=loop_condition,json=loopCondition,proto3" json:"loop_condition,omitempty"`
+ LoopStep *Expr `protobuf:"bytes,6,opt,name=loop_step,json=loopStep,proto3" json:"loop_step,omitempty"`
+ Result *Expr `protobuf:"bytes,7,opt,name=result,proto3" json:"result,omitempty"`
+}
+
+func (x *Expr_Comprehension) Reset() {
+ *x = Expr_Comprehension{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_cel_expr_syntax_proto_msgTypes[9]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Expr_Comprehension) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Expr_Comprehension) ProtoMessage() {}
+
+func (x *Expr_Comprehension) ProtoReflect() protoreflect.Message {
+ mi := &file_cel_expr_syntax_proto_msgTypes[9]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Expr_Comprehension.ProtoReflect.Descriptor instead.
+func (*Expr_Comprehension) Descriptor() ([]byte, []int) {
+ return file_cel_expr_syntax_proto_rawDescGZIP(), []int{1, 5}
+}
+
+func (x *Expr_Comprehension) GetIterVar() string {
+ if x != nil {
+ return x.IterVar
+ }
+ return ""
+}
+
+func (x *Expr_Comprehension) GetIterRange() *Expr {
+ if x != nil {
+ return x.IterRange
+ }
+ return nil
+}
+
+func (x *Expr_Comprehension) GetAccuVar() string {
+ if x != nil {
+ return x.AccuVar
+ }
+ return ""
+}
+
+func (x *Expr_Comprehension) GetAccuInit() *Expr {
+ if x != nil {
+ return x.AccuInit
+ }
+ return nil
+}
+
+func (x *Expr_Comprehension) GetLoopCondition() *Expr {
+ if x != nil {
+ return x.LoopCondition
+ }
+ return nil
+}
+
+func (x *Expr_Comprehension) GetLoopStep() *Expr {
+ if x != nil {
+ return x.LoopStep
+ }
+ return nil
+}
+
+func (x *Expr_Comprehension) GetResult() *Expr {
+ if x != nil {
+ return x.Result
+ }
+ return nil
+}
+
+type Expr_CreateStruct_Entry struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
+ // Types that are assignable to KeyKind:
+ //
+ // *Expr_CreateStruct_Entry_FieldKey
+ // *Expr_CreateStruct_Entry_MapKey
+ KeyKind isExpr_CreateStruct_Entry_KeyKind `protobuf_oneof:"key_kind"`
+ Value *Expr `protobuf:"bytes,4,opt,name=value,proto3" json:"value,omitempty"`
+ OptionalEntry bool `protobuf:"varint,5,opt,name=optional_entry,json=optionalEntry,proto3" json:"optional_entry,omitempty"`
+}
+
+func (x *Expr_CreateStruct_Entry) Reset() {
+ *x = Expr_CreateStruct_Entry{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_cel_expr_syntax_proto_msgTypes[10]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Expr_CreateStruct_Entry) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Expr_CreateStruct_Entry) ProtoMessage() {}
+
+func (x *Expr_CreateStruct_Entry) ProtoReflect() protoreflect.Message {
+ mi := &file_cel_expr_syntax_proto_msgTypes[10]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Expr_CreateStruct_Entry.ProtoReflect.Descriptor instead.
+func (*Expr_CreateStruct_Entry) Descriptor() ([]byte, []int) {
+ return file_cel_expr_syntax_proto_rawDescGZIP(), []int{1, 4, 0}
+}
+
+func (x *Expr_CreateStruct_Entry) GetId() int64 {
+ if x != nil {
+ return x.Id
+ }
+ return 0
+}
+
+func (m *Expr_CreateStruct_Entry) GetKeyKind() isExpr_CreateStruct_Entry_KeyKind {
+ if m != nil {
+ return m.KeyKind
+ }
+ return nil
+}
+
+func (x *Expr_CreateStruct_Entry) GetFieldKey() string {
+ if x, ok := x.GetKeyKind().(*Expr_CreateStruct_Entry_FieldKey); ok {
+ return x.FieldKey
+ }
+ return ""
+}
+
+func (x *Expr_CreateStruct_Entry) GetMapKey() *Expr {
+ if x, ok := x.GetKeyKind().(*Expr_CreateStruct_Entry_MapKey); ok {
+ return x.MapKey
+ }
+ return nil
+}
+
+func (x *Expr_CreateStruct_Entry) GetValue() *Expr {
+ if x != nil {
+ return x.Value
+ }
+ return nil
+}
+
+func (x *Expr_CreateStruct_Entry) GetOptionalEntry() bool {
+ if x != nil {
+ return x.OptionalEntry
+ }
+ return false
+}
+
+type isExpr_CreateStruct_Entry_KeyKind interface {
+ isExpr_CreateStruct_Entry_KeyKind()
+}
+
+type Expr_CreateStruct_Entry_FieldKey struct {
+ FieldKey string `protobuf:"bytes,2,opt,name=field_key,json=fieldKey,proto3,oneof"`
+}
+
+type Expr_CreateStruct_Entry_MapKey struct {
+ MapKey *Expr `protobuf:"bytes,3,opt,name=map_key,json=mapKey,proto3,oneof"`
+}
+
+func (*Expr_CreateStruct_Entry_FieldKey) isExpr_CreateStruct_Entry_KeyKind() {}
+
+func (*Expr_CreateStruct_Entry_MapKey) isExpr_CreateStruct_Entry_KeyKind() {}
+
+type SourceInfo_Extension struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+ AffectedComponents []SourceInfo_Extension_Component `protobuf:"varint,2,rep,packed,name=affected_components,json=affectedComponents,proto3,enum=cel.expr.SourceInfo_Extension_Component" json:"affected_components,omitempty"`
+ Version *SourceInfo_Extension_Version `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"`
+}
+
+func (x *SourceInfo_Extension) Reset() {
+ *x = SourceInfo_Extension{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_cel_expr_syntax_proto_msgTypes[13]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *SourceInfo_Extension) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SourceInfo_Extension) ProtoMessage() {}
+
+func (x *SourceInfo_Extension) ProtoReflect() protoreflect.Message {
+ mi := &file_cel_expr_syntax_proto_msgTypes[13]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use SourceInfo_Extension.ProtoReflect.Descriptor instead.
+func (*SourceInfo_Extension) Descriptor() ([]byte, []int) {
+ return file_cel_expr_syntax_proto_rawDescGZIP(), []int{3, 2}
+}
+
+func (x *SourceInfo_Extension) GetId() string {
+ if x != nil {
+ return x.Id
+ }
+ return ""
+}
+
+func (x *SourceInfo_Extension) GetAffectedComponents() []SourceInfo_Extension_Component {
+ if x != nil {
+ return x.AffectedComponents
+ }
+ return nil
+}
+
+func (x *SourceInfo_Extension) GetVersion() *SourceInfo_Extension_Version {
+ if x != nil {
+ return x.Version
+ }
+ return nil
+}
+
+type SourceInfo_Extension_Version struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Major int64 `protobuf:"varint,1,opt,name=major,proto3" json:"major,omitempty"`
+ Minor int64 `protobuf:"varint,2,opt,name=minor,proto3" json:"minor,omitempty"`
+}
+
+func (x *SourceInfo_Extension_Version) Reset() {
+ *x = SourceInfo_Extension_Version{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_cel_expr_syntax_proto_msgTypes[14]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *SourceInfo_Extension_Version) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SourceInfo_Extension_Version) ProtoMessage() {}
+
+func (x *SourceInfo_Extension_Version) ProtoReflect() protoreflect.Message {
+ mi := &file_cel_expr_syntax_proto_msgTypes[14]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use SourceInfo_Extension_Version.ProtoReflect.Descriptor instead.
+func (*SourceInfo_Extension_Version) Descriptor() ([]byte, []int) {
+ return file_cel_expr_syntax_proto_rawDescGZIP(), []int{3, 2, 0}
+}
+
+func (x *SourceInfo_Extension_Version) GetMajor() int64 {
+ if x != nil {
+ return x.Major
+ }
+ return 0
+}
+
+func (x *SourceInfo_Extension_Version) GetMinor() int64 {
+ if x != nil {
+ return x.Minor
+ }
+ return 0
+}
+
+var File_cel_expr_syntax_proto protoreflect.FileDescriptor
+
+var file_cel_expr_syntax_proto_rawDesc = []byte{
+ 0x0a, 0x15, 0x63, 0x65, 0x6c, 0x2f, 0x65, 0x78, 0x70, 0x72, 0x2f, 0x73, 0x79, 0x6e, 0x74, 0x61,
+ 0x78, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70,
+ 0x72, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
+ 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
+ 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
+ 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
+ 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x22, 0x67, 0x0a, 0x0a, 0x50, 0x61, 0x72, 0x73, 0x65, 0x64, 0x45, 0x78, 0x70, 0x72, 0x12, 0x22,
+ 0x0a, 0x04, 0x65, 0x78, 0x70, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63,
+ 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x52, 0x04, 0x65, 0x78,
+ 0x70, 0x72, 0x12, 0x35, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66,
+ 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78,
+ 0x70, 0x72, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x73,
+ 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xfd, 0x0a, 0x0a, 0x04, 0x45, 0x78,
+ 0x70, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02,
+ 0x69, 0x64, 0x12, 0x33, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x72,
+ 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70,
+ 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x09, 0x63, 0x6f,
+ 0x6e, 0x73, 0x74, 0x45, 0x78, 0x70, 0x72, 0x12, 0x35, 0x0a, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74,
+ 0x5f, 0x65, 0x78, 0x70, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x65,
+ 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x2e, 0x49, 0x64, 0x65, 0x6e,
+ 0x74, 0x48, 0x00, 0x52, 0x09, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x70, 0x72, 0x12, 0x38,
+ 0x0a, 0x0b, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x18, 0x05, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x45,
+ 0x78, 0x70, 0x72, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x48, 0x00, 0x52, 0x0a, 0x73, 0x65,
+ 0x6c, 0x65, 0x63, 0x74, 0x45, 0x78, 0x70, 0x72, 0x12, 0x32, 0x0a, 0x09, 0x63, 0x61, 0x6c, 0x6c,
+ 0x5f, 0x65, 0x78, 0x70, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x65,
+ 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x2e, 0x43, 0x61, 0x6c, 0x6c,
+ 0x48, 0x00, 0x52, 0x08, 0x63, 0x61, 0x6c, 0x6c, 0x45, 0x78, 0x70, 0x72, 0x12, 0x38, 0x0a, 0x09,
+ 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x19, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x2e,
+ 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x08, 0x6c, 0x69,
+ 0x73, 0x74, 0x45, 0x78, 0x70, 0x72, 0x12, 0x3e, 0x0a, 0x0b, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74,
+ 0x5f, 0x65, 0x78, 0x70, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x65,
+ 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x2e, 0x43, 0x72, 0x65, 0x61,
+ 0x74, 0x65, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x48, 0x00, 0x52, 0x0a, 0x73, 0x74, 0x72, 0x75,
+ 0x63, 0x74, 0x45, 0x78, 0x70, 0x72, 0x12, 0x4d, 0x0a, 0x12, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65,
+ 0x68, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x18, 0x09, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x45, 0x78,
+ 0x70, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x68, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,
+ 0x48, 0x00, 0x52, 0x11, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x68, 0x65, 0x6e, 0x73, 0x69, 0x6f,
+ 0x6e, 0x45, 0x78, 0x70, 0x72, 0x1a, 0x1b, 0x0a, 0x05, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x12, 0x12,
+ 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61,
+ 0x6d, 0x65, 0x1a, 0x65, 0x0a, 0x06, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x28, 0x0a, 0x07,
+ 0x6f, 0x70, 0x65, 0x72, 0x61, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e,
+ 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x52, 0x07, 0x6f,
+ 0x70, 0x65, 0x72, 0x61, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x1b, 0x0a, 0x09,
+ 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52,
+ 0x08, 0x74, 0x65, 0x73, 0x74, 0x4f, 0x6e, 0x6c, 0x79, 0x1a, 0x6e, 0x0a, 0x04, 0x43, 0x61, 0x6c,
+ 0x6c, 0x12, 0x26, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x45, 0x78, 0x70,
+ 0x72, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x75, 0x6e,
+ 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x75, 0x6e,
+ 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x03, 0x20,
+ 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x45,
+ 0x78, 0x70, 0x72, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x1a, 0x63, 0x0a, 0x0a, 0x43, 0x72, 0x65,
+ 0x61, 0x74, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x08, 0x65, 0x6c, 0x65, 0x6d, 0x65,
+ 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x65, 0x6c, 0x2e,
+ 0x65, 0x78, 0x70, 0x72, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x52, 0x08, 0x65, 0x6c, 0x65, 0x6d, 0x65,
+ 0x6e, 0x74, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f,
+ 0x69, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0f, 0x6f,
+ 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x64, 0x69, 0x63, 0x65, 0x73, 0x1a, 0xab,
+ 0x02, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x12,
+ 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4e, 0x61,
+ 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20,
+ 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x45,
+ 0x78, 0x70, 0x72, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74,
+ 0x2e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x1a,
+ 0xba, 0x01, 0x0a, 0x05, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x09, 0x66, 0x69, 0x65,
+ 0x6c, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08,
+ 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4b, 0x65, 0x79, 0x12, 0x29, 0x0a, 0x07, 0x6d, 0x61, 0x70, 0x5f,
+ 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x65, 0x6c, 0x2e,
+ 0x65, 0x78, 0x70, 0x72, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x48, 0x00, 0x52, 0x06, 0x6d, 0x61, 0x70,
+ 0x4b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x45, 0x78,
+ 0x70, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x74,
+ 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28,
+ 0x08, 0x52, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79,
+ 0x42, 0x0a, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x1a, 0xad, 0x02, 0x0a,
+ 0x0d, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x68, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x19,
+ 0x0a, 0x08, 0x69, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x07, 0x69, 0x74, 0x65, 0x72, 0x56, 0x61, 0x72, 0x12, 0x2d, 0x0a, 0x0a, 0x69, 0x74, 0x65,
+ 0x72, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e,
+ 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x52, 0x09, 0x69,
+ 0x74, 0x65, 0x72, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x63, 0x63, 0x75,
+ 0x5f, 0x76, 0x61, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, 0x75,
+ 0x56, 0x61, 0x72, 0x12, 0x2b, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x75, 0x5f, 0x69, 0x6e, 0x69, 0x74,
+ 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70,
+ 0x72, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x52, 0x08, 0x61, 0x63, 0x63, 0x75, 0x49, 0x6e, 0x69, 0x74,
+ 0x12, 0x35, 0x0a, 0x0e, 0x6c, 0x6f, 0x6f, 0x70, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69,
+ 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65,
+ 0x78, 0x70, 0x72, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x52, 0x0d, 0x6c, 0x6f, 0x6f, 0x70, 0x43, 0x6f,
+ 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x09, 0x6c, 0x6f, 0x6f, 0x70, 0x5f,
+ 0x73, 0x74, 0x65, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x65, 0x6c,
+ 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x52, 0x08, 0x6c, 0x6f, 0x6f, 0x70,
+ 0x53, 0x74, 0x65, 0x70, 0x12, 0x26, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x07,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e,
+ 0x45, 0x78, 0x70, 0x72, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x0b, 0x0a, 0x09,
+ 0x65, 0x78, 0x70, 0x72, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x22, 0xc1, 0x03, 0x0a, 0x08, 0x43, 0x6f,
+ 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x12, 0x3b, 0x0a, 0x0a, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x76,
+ 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4e, 0x75, 0x6c,
+ 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x09, 0x6e, 0x75, 0x6c, 0x6c, 0x56, 0x61,
+ 0x6c, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x0a, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75,
+ 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x62, 0x6f, 0x6f, 0x6c, 0x56,
+ 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, 0x0b, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x76, 0x61,
+ 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x0a, 0x69, 0x6e, 0x74,
+ 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x75, 0x69, 0x6e, 0x74, 0x36,
+ 0x34, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52,
+ 0x0b, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0c,
+ 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01,
+ 0x28, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75,
+ 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75,
+ 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e,
+ 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f,
+ 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0a, 0x62,
+ 0x79, 0x74, 0x65, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x46, 0x0a, 0x0e, 0x64, 0x75, 0x72,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x02, 0x18, 0x01,
+ 0x48, 0x00, 0x52, 0x0d, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75,
+ 0x65, 0x12, 0x49, 0x0a, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x76,
+ 0x61, 0x6c, 0x75, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d,
+ 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0e, 0x74, 0x69,
+ 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0f, 0x0a, 0x0d,
+ 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x22, 0xac, 0x06,
+ 0x0a, 0x0a, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x25, 0x0a, 0x0e,
+ 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x56, 0x65, 0x72, 0x73,
+ 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12,
+ 0x21, 0x0a, 0x0c, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x73, 0x18,
+ 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0b, 0x6c, 0x69, 0x6e, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65,
+ 0x74, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18,
+ 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72,
+ 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x50, 0x6f, 0x73, 0x69,
+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x70, 0x6f, 0x73, 0x69,
+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x61, 0x63, 0x72, 0x6f, 0x5f, 0x63,
+ 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x65, 0x6c,
+ 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f,
+ 0x2e, 0x4d, 0x61, 0x63, 0x72, 0x6f, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79,
+ 0x52, 0x0a, 0x6d, 0x61, 0x63, 0x72, 0x6f, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x12, 0x3e, 0x0a, 0x0a,
+ 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b,
+ 0x32, 0x1e, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x53, 0x6f, 0x75, 0x72,
+ 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,
+ 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x3c, 0x0a, 0x0e,
+ 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10,
+ 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79,
+ 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52,
+ 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x4d, 0x0a, 0x0f, 0x4d, 0x61,
+ 0x63, 0x72, 0x6f, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a,
+ 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12,
+ 0x24, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e,
+ 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x52, 0x05,
+ 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0xe0, 0x02, 0x0a, 0x09, 0x45, 0x78,
+ 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x59, 0x0a, 0x13, 0x61, 0x66, 0x66, 0x65, 0x63,
+ 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02,
+ 0x20, 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e,
+ 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e,
+ 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x52, 0x12,
+ 0x61, 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e,
+ 0x74, 0x73, 0x12, 0x40, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x53,
+ 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73,
+ 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x76, 0x65, 0x72,
+ 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x35, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12,
+ 0x14, 0x0a, 0x05, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05,
+ 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x69, 0x6e, 0x6f, 0x72, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6d, 0x69, 0x6e, 0x6f, 0x72, 0x22, 0x6f, 0x0a, 0x09, 0x43,
+ 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x15, 0x43, 0x4f, 0x4d, 0x50,
+ 0x4f, 0x4e, 0x45, 0x4e, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45,
+ 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x4f, 0x4d, 0x50, 0x4f, 0x4e, 0x45, 0x4e, 0x54,
+ 0x5f, 0x50, 0x41, 0x52, 0x53, 0x45, 0x52, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x4f, 0x4d,
+ 0x50, 0x4f, 0x4e, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x48, 0x45, 0x43,
+ 0x4b, 0x45, 0x52, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x4f, 0x4d, 0x50, 0x4f, 0x4e, 0x45,
+ 0x4e, 0x54, 0x5f, 0x52, 0x55, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x03, 0x42, 0x2e, 0x0a, 0x0c,
+ 0x64, 0x65, 0x76, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x42, 0x0b, 0x53, 0x79,
+ 0x6e, 0x74, 0x61, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x0c, 0x63, 0x65, 0x6c,
+ 0x2e, 0x64, 0x65, 0x76, 0x2f, 0x65, 0x78, 0x70, 0x72, 0xf8, 0x01, 0x01, 0x62, 0x06, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_cel_expr_syntax_proto_rawDescOnce sync.Once
+ file_cel_expr_syntax_proto_rawDescData = file_cel_expr_syntax_proto_rawDesc
+)
+
+func file_cel_expr_syntax_proto_rawDescGZIP() []byte {
+ file_cel_expr_syntax_proto_rawDescOnce.Do(func() {
+ file_cel_expr_syntax_proto_rawDescData = protoimpl.X.CompressGZIP(file_cel_expr_syntax_proto_rawDescData)
+ })
+ return file_cel_expr_syntax_proto_rawDescData
+}
+
+var file_cel_expr_syntax_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
+var file_cel_expr_syntax_proto_msgTypes = make([]protoimpl.MessageInfo, 15)
+var file_cel_expr_syntax_proto_goTypes = []interface{}{
+ (SourceInfo_Extension_Component)(0), // 0: cel.expr.SourceInfo.Extension.Component
+ (*ParsedExpr)(nil), // 1: cel.expr.ParsedExpr
+ (*Expr)(nil), // 2: cel.expr.Expr
+ (*Constant)(nil), // 3: cel.expr.Constant
+ (*SourceInfo)(nil), // 4: cel.expr.SourceInfo
+ (*Expr_Ident)(nil), // 5: cel.expr.Expr.Ident
+ (*Expr_Select)(nil), // 6: cel.expr.Expr.Select
+ (*Expr_Call)(nil), // 7: cel.expr.Expr.Call
+ (*Expr_CreateList)(nil), // 8: cel.expr.Expr.CreateList
+ (*Expr_CreateStruct)(nil), // 9: cel.expr.Expr.CreateStruct
+ (*Expr_Comprehension)(nil), // 10: cel.expr.Expr.Comprehension
+ (*Expr_CreateStruct_Entry)(nil), // 11: cel.expr.Expr.CreateStruct.Entry
+ nil, // 12: cel.expr.SourceInfo.PositionsEntry
+ nil, // 13: cel.expr.SourceInfo.MacroCallsEntry
+ (*SourceInfo_Extension)(nil), // 14: cel.expr.SourceInfo.Extension
+ (*SourceInfo_Extension_Version)(nil), // 15: cel.expr.SourceInfo.Extension.Version
+ (structpb.NullValue)(0), // 16: google.protobuf.NullValue
+ (*durationpb.Duration)(nil), // 17: google.protobuf.Duration
+ (*timestamppb.Timestamp)(nil), // 18: google.protobuf.Timestamp
+}
+var file_cel_expr_syntax_proto_depIdxs = []int32{
+ 2, // 0: cel.expr.ParsedExpr.expr:type_name -> cel.expr.Expr
+ 4, // 1: cel.expr.ParsedExpr.source_info:type_name -> cel.expr.SourceInfo
+ 3, // 2: cel.expr.Expr.const_expr:type_name -> cel.expr.Constant
+ 5, // 3: cel.expr.Expr.ident_expr:type_name -> cel.expr.Expr.Ident
+ 6, // 4: cel.expr.Expr.select_expr:type_name -> cel.expr.Expr.Select
+ 7, // 5: cel.expr.Expr.call_expr:type_name -> cel.expr.Expr.Call
+ 8, // 6: cel.expr.Expr.list_expr:type_name -> cel.expr.Expr.CreateList
+ 9, // 7: cel.expr.Expr.struct_expr:type_name -> cel.expr.Expr.CreateStruct
+ 10, // 8: cel.expr.Expr.comprehension_expr:type_name -> cel.expr.Expr.Comprehension
+ 16, // 9: cel.expr.Constant.null_value:type_name -> google.protobuf.NullValue
+ 17, // 10: cel.expr.Constant.duration_value:type_name -> google.protobuf.Duration
+ 18, // 11: cel.expr.Constant.timestamp_value:type_name -> google.protobuf.Timestamp
+ 12, // 12: cel.expr.SourceInfo.positions:type_name -> cel.expr.SourceInfo.PositionsEntry
+ 13, // 13: cel.expr.SourceInfo.macro_calls:type_name -> cel.expr.SourceInfo.MacroCallsEntry
+ 14, // 14: cel.expr.SourceInfo.extensions:type_name -> cel.expr.SourceInfo.Extension
+ 2, // 15: cel.expr.Expr.Select.operand:type_name -> cel.expr.Expr
+ 2, // 16: cel.expr.Expr.Call.target:type_name -> cel.expr.Expr
+ 2, // 17: cel.expr.Expr.Call.args:type_name -> cel.expr.Expr
+ 2, // 18: cel.expr.Expr.CreateList.elements:type_name -> cel.expr.Expr
+ 11, // 19: cel.expr.Expr.CreateStruct.entries:type_name -> cel.expr.Expr.CreateStruct.Entry
+ 2, // 20: cel.expr.Expr.Comprehension.iter_range:type_name -> cel.expr.Expr
+ 2, // 21: cel.expr.Expr.Comprehension.accu_init:type_name -> cel.expr.Expr
+ 2, // 22: cel.expr.Expr.Comprehension.loop_condition:type_name -> cel.expr.Expr
+ 2, // 23: cel.expr.Expr.Comprehension.loop_step:type_name -> cel.expr.Expr
+ 2, // 24: cel.expr.Expr.Comprehension.result:type_name -> cel.expr.Expr
+ 2, // 25: cel.expr.Expr.CreateStruct.Entry.map_key:type_name -> cel.expr.Expr
+ 2, // 26: cel.expr.Expr.CreateStruct.Entry.value:type_name -> cel.expr.Expr
+ 2, // 27: cel.expr.SourceInfo.MacroCallsEntry.value:type_name -> cel.expr.Expr
+ 0, // 28: cel.expr.SourceInfo.Extension.affected_components:type_name -> cel.expr.SourceInfo.Extension.Component
+ 15, // 29: cel.expr.SourceInfo.Extension.version:type_name -> cel.expr.SourceInfo.Extension.Version
+ 30, // [30:30] is the sub-list for method output_type
+ 30, // [30:30] is the sub-list for method input_type
+ 30, // [30:30] is the sub-list for extension type_name
+ 30, // [30:30] is the sub-list for extension extendee
+ 0, // [0:30] is the sub-list for field type_name
+}
+
+func init() { file_cel_expr_syntax_proto_init() }
+func file_cel_expr_syntax_proto_init() {
+ if File_cel_expr_syntax_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_cel_expr_syntax_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ParsedExpr); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_cel_expr_syntax_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Expr); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_cel_expr_syntax_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Constant); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_cel_expr_syntax_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*SourceInfo); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_cel_expr_syntax_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Expr_Ident); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_cel_expr_syntax_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Expr_Select); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_cel_expr_syntax_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Expr_Call); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_cel_expr_syntax_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Expr_CreateList); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_cel_expr_syntax_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Expr_CreateStruct); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_cel_expr_syntax_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Expr_Comprehension); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_cel_expr_syntax_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Expr_CreateStruct_Entry); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_cel_expr_syntax_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*SourceInfo_Extension); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_cel_expr_syntax_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*SourceInfo_Extension_Version); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ file_cel_expr_syntax_proto_msgTypes[1].OneofWrappers = []interface{}{
+ (*Expr_ConstExpr)(nil),
+ (*Expr_IdentExpr)(nil),
+ (*Expr_SelectExpr)(nil),
+ (*Expr_CallExpr)(nil),
+ (*Expr_ListExpr)(nil),
+ (*Expr_StructExpr)(nil),
+ (*Expr_ComprehensionExpr)(nil),
+ }
+ file_cel_expr_syntax_proto_msgTypes[2].OneofWrappers = []interface{}{
+ (*Constant_NullValue)(nil),
+ (*Constant_BoolValue)(nil),
+ (*Constant_Int64Value)(nil),
+ (*Constant_Uint64Value)(nil),
+ (*Constant_DoubleValue)(nil),
+ (*Constant_StringValue)(nil),
+ (*Constant_BytesValue)(nil),
+ (*Constant_DurationValue)(nil),
+ (*Constant_TimestampValue)(nil),
+ }
+ file_cel_expr_syntax_proto_msgTypes[10].OneofWrappers = []interface{}{
+ (*Expr_CreateStruct_Entry_FieldKey)(nil),
+ (*Expr_CreateStruct_Entry_MapKey)(nil),
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_cel_expr_syntax_proto_rawDesc,
+ NumEnums: 1,
+ NumMessages: 15,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_cel_expr_syntax_proto_goTypes,
+ DependencyIndexes: file_cel_expr_syntax_proto_depIdxs,
+ EnumInfos: file_cel_expr_syntax_proto_enumTypes,
+ MessageInfos: file_cel_expr_syntax_proto_msgTypes,
+ }.Build()
+ File_cel_expr_syntax_proto = out.File
+ file_cel_expr_syntax_proto_rawDesc = nil
+ file_cel_expr_syntax_proto_goTypes = nil
+ file_cel_expr_syntax_proto_depIdxs = nil
+}
diff --git a/vendor/cel.dev/expr/value.pb.go b/vendor/cel.dev/expr/value.pb.go
new file mode 100644
index 0000000000..e5e29228c2
--- /dev/null
+++ b/vendor/cel.dev/expr/value.pb.go
@@ -0,0 +1,653 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.28.1
+// protoc v3.21.5
+// source: cel/expr/value.proto
+
+package expr
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ anypb "google.golang.org/protobuf/types/known/anypb"
+ structpb "google.golang.org/protobuf/types/known/structpb"
+ reflect "reflect"
+ sync "sync"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+type Value struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Types that are assignable to Kind:
+ //
+ // *Value_NullValue
+ // *Value_BoolValue
+ // *Value_Int64Value
+ // *Value_Uint64Value
+ // *Value_DoubleValue
+ // *Value_StringValue
+ // *Value_BytesValue
+ // *Value_EnumValue
+ // *Value_ObjectValue
+ // *Value_MapValue
+ // *Value_ListValue
+ // *Value_TypeValue
+ Kind isValue_Kind `protobuf_oneof:"kind"`
+}
+
+func (x *Value) Reset() {
+ *x = Value{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_cel_expr_value_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Value) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Value) ProtoMessage() {}
+
+func (x *Value) ProtoReflect() protoreflect.Message {
+ mi := &file_cel_expr_value_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Value.ProtoReflect.Descriptor instead.
+func (*Value) Descriptor() ([]byte, []int) {
+ return file_cel_expr_value_proto_rawDescGZIP(), []int{0}
+}
+
+func (m *Value) GetKind() isValue_Kind {
+ if m != nil {
+ return m.Kind
+ }
+ return nil
+}
+
+func (x *Value) GetNullValue() structpb.NullValue {
+ if x, ok := x.GetKind().(*Value_NullValue); ok {
+ return x.NullValue
+ }
+ return structpb.NullValue(0)
+}
+
+func (x *Value) GetBoolValue() bool {
+ if x, ok := x.GetKind().(*Value_BoolValue); ok {
+ return x.BoolValue
+ }
+ return false
+}
+
+func (x *Value) GetInt64Value() int64 {
+ if x, ok := x.GetKind().(*Value_Int64Value); ok {
+ return x.Int64Value
+ }
+ return 0
+}
+
+func (x *Value) GetUint64Value() uint64 {
+ if x, ok := x.GetKind().(*Value_Uint64Value); ok {
+ return x.Uint64Value
+ }
+ return 0
+}
+
+func (x *Value) GetDoubleValue() float64 {
+ if x, ok := x.GetKind().(*Value_DoubleValue); ok {
+ return x.DoubleValue
+ }
+ return 0
+}
+
+func (x *Value) GetStringValue() string {
+ if x, ok := x.GetKind().(*Value_StringValue); ok {
+ return x.StringValue
+ }
+ return ""
+}
+
+func (x *Value) GetBytesValue() []byte {
+ if x, ok := x.GetKind().(*Value_BytesValue); ok {
+ return x.BytesValue
+ }
+ return nil
+}
+
+func (x *Value) GetEnumValue() *EnumValue {
+ if x, ok := x.GetKind().(*Value_EnumValue); ok {
+ return x.EnumValue
+ }
+ return nil
+}
+
+func (x *Value) GetObjectValue() *anypb.Any {
+ if x, ok := x.GetKind().(*Value_ObjectValue); ok {
+ return x.ObjectValue
+ }
+ return nil
+}
+
+func (x *Value) GetMapValue() *MapValue {
+ if x, ok := x.GetKind().(*Value_MapValue); ok {
+ return x.MapValue
+ }
+ return nil
+}
+
+func (x *Value) GetListValue() *ListValue {
+ if x, ok := x.GetKind().(*Value_ListValue); ok {
+ return x.ListValue
+ }
+ return nil
+}
+
+func (x *Value) GetTypeValue() string {
+ if x, ok := x.GetKind().(*Value_TypeValue); ok {
+ return x.TypeValue
+ }
+ return ""
+}
+
+type isValue_Kind interface {
+ isValue_Kind()
+}
+
+type Value_NullValue struct {
+ NullValue structpb.NullValue `protobuf:"varint,1,opt,name=null_value,json=nullValue,proto3,enum=google.protobuf.NullValue,oneof"`
+}
+
+type Value_BoolValue struct {
+ BoolValue bool `protobuf:"varint,2,opt,name=bool_value,json=boolValue,proto3,oneof"`
+}
+
+type Value_Int64Value struct {
+ Int64Value int64 `protobuf:"varint,3,opt,name=int64_value,json=int64Value,proto3,oneof"`
+}
+
+type Value_Uint64Value struct {
+ Uint64Value uint64 `protobuf:"varint,4,opt,name=uint64_value,json=uint64Value,proto3,oneof"`
+}
+
+type Value_DoubleValue struct {
+ DoubleValue float64 `protobuf:"fixed64,5,opt,name=double_value,json=doubleValue,proto3,oneof"`
+}
+
+type Value_StringValue struct {
+ StringValue string `protobuf:"bytes,6,opt,name=string_value,json=stringValue,proto3,oneof"`
+}
+
+type Value_BytesValue struct {
+ BytesValue []byte `protobuf:"bytes,7,opt,name=bytes_value,json=bytesValue,proto3,oneof"`
+}
+
+type Value_EnumValue struct {
+ EnumValue *EnumValue `protobuf:"bytes,9,opt,name=enum_value,json=enumValue,proto3,oneof"`
+}
+
+type Value_ObjectValue struct {
+ ObjectValue *anypb.Any `protobuf:"bytes,10,opt,name=object_value,json=objectValue,proto3,oneof"`
+}
+
+type Value_MapValue struct {
+ MapValue *MapValue `protobuf:"bytes,11,opt,name=map_value,json=mapValue,proto3,oneof"`
+}
+
+type Value_ListValue struct {
+ ListValue *ListValue `protobuf:"bytes,12,opt,name=list_value,json=listValue,proto3,oneof"`
+}
+
+type Value_TypeValue struct {
+ TypeValue string `protobuf:"bytes,15,opt,name=type_value,json=typeValue,proto3,oneof"`
+}
+
+func (*Value_NullValue) isValue_Kind() {}
+
+func (*Value_BoolValue) isValue_Kind() {}
+
+func (*Value_Int64Value) isValue_Kind() {}
+
+func (*Value_Uint64Value) isValue_Kind() {}
+
+func (*Value_DoubleValue) isValue_Kind() {}
+
+func (*Value_StringValue) isValue_Kind() {}
+
+func (*Value_BytesValue) isValue_Kind() {}
+
+func (*Value_EnumValue) isValue_Kind() {}
+
+func (*Value_ObjectValue) isValue_Kind() {}
+
+func (*Value_MapValue) isValue_Kind() {}
+
+func (*Value_ListValue) isValue_Kind() {}
+
+func (*Value_TypeValue) isValue_Kind() {}
+
+type EnumValue struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
+ Value int32 `protobuf:"varint,2,opt,name=value,proto3" json:"value,omitempty"`
+}
+
+func (x *EnumValue) Reset() {
+ *x = EnumValue{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_cel_expr_value_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *EnumValue) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*EnumValue) ProtoMessage() {}
+
+func (x *EnumValue) ProtoReflect() protoreflect.Message {
+ mi := &file_cel_expr_value_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use EnumValue.ProtoReflect.Descriptor instead.
+func (*EnumValue) Descriptor() ([]byte, []int) {
+ return file_cel_expr_value_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *EnumValue) GetType() string {
+ if x != nil {
+ return x.Type
+ }
+ return ""
+}
+
+func (x *EnumValue) GetValue() int32 {
+ if x != nil {
+ return x.Value
+ }
+ return 0
+}
+
+type ListValue struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Values []*Value `protobuf:"bytes,1,rep,name=values,proto3" json:"values,omitempty"`
+}
+
+func (x *ListValue) Reset() {
+ *x = ListValue{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_cel_expr_value_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListValue) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListValue) ProtoMessage() {}
+
+func (x *ListValue) ProtoReflect() protoreflect.Message {
+ mi := &file_cel_expr_value_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListValue.ProtoReflect.Descriptor instead.
+func (*ListValue) Descriptor() ([]byte, []int) {
+ return file_cel_expr_value_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *ListValue) GetValues() []*Value {
+ if x != nil {
+ return x.Values
+ }
+ return nil
+}
+
+type MapValue struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Entries []*MapValue_Entry `protobuf:"bytes,1,rep,name=entries,proto3" json:"entries,omitempty"`
+}
+
+func (x *MapValue) Reset() {
+ *x = MapValue{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_cel_expr_value_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *MapValue) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*MapValue) ProtoMessage() {}
+
+func (x *MapValue) ProtoReflect() protoreflect.Message {
+ mi := &file_cel_expr_value_proto_msgTypes[3]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use MapValue.ProtoReflect.Descriptor instead.
+func (*MapValue) Descriptor() ([]byte, []int) {
+ return file_cel_expr_value_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *MapValue) GetEntries() []*MapValue_Entry {
+ if x != nil {
+ return x.Entries
+ }
+ return nil
+}
+
+type MapValue_Entry struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Key *Value `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
+ Value *Value `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
+}
+
+func (x *MapValue_Entry) Reset() {
+ *x = MapValue_Entry{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_cel_expr_value_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *MapValue_Entry) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*MapValue_Entry) ProtoMessage() {}
+
+func (x *MapValue_Entry) ProtoReflect() protoreflect.Message {
+ mi := &file_cel_expr_value_proto_msgTypes[4]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use MapValue_Entry.ProtoReflect.Descriptor instead.
+func (*MapValue_Entry) Descriptor() ([]byte, []int) {
+ return file_cel_expr_value_proto_rawDescGZIP(), []int{3, 0}
+}
+
+func (x *MapValue_Entry) GetKey() *Value {
+ if x != nil {
+ return x.Key
+ }
+ return nil
+}
+
+func (x *MapValue_Entry) GetValue() *Value {
+ if x != nil {
+ return x.Value
+ }
+ return nil
+}
+
+var File_cel_expr_value_proto protoreflect.FileDescriptor
+
+var file_cel_expr_value_proto_rawDesc = []byte{
+ 0x0a, 0x14, 0x63, 0x65, 0x6c, 0x2f, 0x65, 0x78, 0x70, 0x72, 0x2f, 0x76, 0x61, 0x6c, 0x75, 0x65,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72,
+ 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
+ 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72,
+ 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x9d, 0x04, 0x0a, 0x05, 0x56, 0x61,
+ 0x6c, 0x75, 0x65, 0x12, 0x3b, 0x0a, 0x0a, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75,
+ 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x61,
+ 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x09, 0x6e, 0x75, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65,
+ 0x12, 0x1f, 0x0a, 0x0a, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x62, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75,
+ 0x65, 0x12, 0x21, 0x0a, 0x0b, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65,
+ 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x0a, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x56,
+ 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x76,
+ 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x0b, 0x75, 0x69,
+ 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x64, 0x6f, 0x75,
+ 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x48,
+ 0x00, 0x52, 0x0b, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23,
+ 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06,
+ 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61,
+ 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x76, 0x61, 0x6c,
+ 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0a, 0x62, 0x79, 0x74, 0x65,
+ 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x34, 0x0a, 0x0a, 0x65, 0x6e, 0x75, 0x6d, 0x5f, 0x76,
+ 0x61, 0x6c, 0x75, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x65, 0x6c,
+ 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48,
+ 0x00, 0x52, 0x09, 0x65, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x39, 0x0a, 0x0c,
+ 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0a, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x48, 0x00, 0x52, 0x0b, 0x6f, 0x62, 0x6a, 0x65,
+ 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x31, 0x0a, 0x09, 0x6d, 0x61, 0x70, 0x5f, 0x76,
+ 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x65, 0x6c,
+ 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x4d, 0x61, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00,
+ 0x52, 0x08, 0x6d, 0x61, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x34, 0x0a, 0x0a, 0x6c, 0x69,
+ 0x73, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13,
+ 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61,
+ 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x09, 0x6c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65,
+ 0x12, 0x1f, 0x0a, 0x0a, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0f,
+ 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x74, 0x79, 0x70, 0x65, 0x56, 0x61, 0x6c, 0x75,
+ 0x65, 0x42, 0x06, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x22, 0x35, 0x0a, 0x09, 0x45, 0x6e, 0x75,
+ 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61,
+ 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
+ 0x22, 0x34, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x27, 0x0a,
+ 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e,
+ 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06,
+ 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x91, 0x01, 0x0a, 0x08, 0x4d, 0x61, 0x70, 0x56, 0x61,
+ 0x6c, 0x75, 0x65, 0x12, 0x32, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01,
+ 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e,
+ 0x4d, 0x61, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07,
+ 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x1a, 0x51, 0x0a, 0x05, 0x45, 0x6e, 0x74, 0x72, 0x79,
+ 0x12, 0x21, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e,
+ 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x03,
+ 0x6b, 0x65, 0x79, 0x12, 0x25, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x56, 0x61,
+ 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x2d, 0x0a, 0x0c, 0x64, 0x65,
+ 0x76, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x42, 0x0a, 0x56, 0x61, 0x6c, 0x75,
+ 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x0c, 0x63, 0x65, 0x6c, 0x2e, 0x64, 0x65,
+ 0x76, 0x2f, 0x65, 0x78, 0x70, 0x72, 0xf8, 0x01, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x33,
+}
+
+var (
+ file_cel_expr_value_proto_rawDescOnce sync.Once
+ file_cel_expr_value_proto_rawDescData = file_cel_expr_value_proto_rawDesc
+)
+
+func file_cel_expr_value_proto_rawDescGZIP() []byte {
+ file_cel_expr_value_proto_rawDescOnce.Do(func() {
+ file_cel_expr_value_proto_rawDescData = protoimpl.X.CompressGZIP(file_cel_expr_value_proto_rawDescData)
+ })
+ return file_cel_expr_value_proto_rawDescData
+}
+
+var file_cel_expr_value_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
+var file_cel_expr_value_proto_goTypes = []interface{}{
+ (*Value)(nil), // 0: cel.expr.Value
+ (*EnumValue)(nil), // 1: cel.expr.EnumValue
+ (*ListValue)(nil), // 2: cel.expr.ListValue
+ (*MapValue)(nil), // 3: cel.expr.MapValue
+ (*MapValue_Entry)(nil), // 4: cel.expr.MapValue.Entry
+ (structpb.NullValue)(0), // 5: google.protobuf.NullValue
+ (*anypb.Any)(nil), // 6: google.protobuf.Any
+}
+var file_cel_expr_value_proto_depIdxs = []int32{
+ 5, // 0: cel.expr.Value.null_value:type_name -> google.protobuf.NullValue
+ 1, // 1: cel.expr.Value.enum_value:type_name -> cel.expr.EnumValue
+ 6, // 2: cel.expr.Value.object_value:type_name -> google.protobuf.Any
+ 3, // 3: cel.expr.Value.map_value:type_name -> cel.expr.MapValue
+ 2, // 4: cel.expr.Value.list_value:type_name -> cel.expr.ListValue
+ 0, // 5: cel.expr.ListValue.values:type_name -> cel.expr.Value
+ 4, // 6: cel.expr.MapValue.entries:type_name -> cel.expr.MapValue.Entry
+ 0, // 7: cel.expr.MapValue.Entry.key:type_name -> cel.expr.Value
+ 0, // 8: cel.expr.MapValue.Entry.value:type_name -> cel.expr.Value
+ 9, // [9:9] is the sub-list for method output_type
+ 9, // [9:9] is the sub-list for method input_type
+ 9, // [9:9] is the sub-list for extension type_name
+ 9, // [9:9] is the sub-list for extension extendee
+ 0, // [0:9] is the sub-list for field type_name
+}
+
+func init() { file_cel_expr_value_proto_init() }
+func file_cel_expr_value_proto_init() {
+ if File_cel_expr_value_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_cel_expr_value_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Value); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_cel_expr_value_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*EnumValue); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_cel_expr_value_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListValue); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_cel_expr_value_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*MapValue); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_cel_expr_value_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*MapValue_Entry); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ file_cel_expr_value_proto_msgTypes[0].OneofWrappers = []interface{}{
+ (*Value_NullValue)(nil),
+ (*Value_BoolValue)(nil),
+ (*Value_Int64Value)(nil),
+ (*Value_Uint64Value)(nil),
+ (*Value_DoubleValue)(nil),
+ (*Value_StringValue)(nil),
+ (*Value_BytesValue)(nil),
+ (*Value_EnumValue)(nil),
+ (*Value_ObjectValue)(nil),
+ (*Value_MapValue)(nil),
+ (*Value_ListValue)(nil),
+ (*Value_TypeValue)(nil),
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_cel_expr_value_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 5,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_cel_expr_value_proto_goTypes,
+ DependencyIndexes: file_cel_expr_value_proto_depIdxs,
+ MessageInfos: file_cel_expr_value_proto_msgTypes,
+ }.Build()
+ File_cel_expr_value_proto = out.File
+ file_cel_expr_value_proto_rawDesc = nil
+ file_cel_expr_value_proto_goTypes = nil
+ file_cel_expr_value_proto_depIdxs = nil
+}
diff --git a/vendor/github.com/containerd/containerd/api/runtime/sandbox/v1/doc.go b/vendor/github.com/containerd/containerd/api/runtime/sandbox/v1/doc.go
index eef9ab6aef..f960350c16 100644
--- a/vendor/github.com/containerd/containerd/api/runtime/sandbox/v1/doc.go
+++ b/vendor/github.com/containerd/containerd/api/runtime/sandbox/v1/doc.go
@@ -15,9 +15,3 @@
*/
package sandbox
-
-// Not implemented types introduced in later versions and included for API compatibility
-// Use of these types should only use not implemented errors
-
-type SandboxMetricsRequest struct{}
-type SandboxMetricsResponse struct{}
diff --git a/vendor/github.com/containerd/containerd/api/runtime/sandbox/v1/sandbox.pb.go b/vendor/github.com/containerd/containerd/api/runtime/sandbox/v1/sandbox.pb.go
index 5b3d4aa786..8701fbae5c 100644
--- a/vendor/github.com/containerd/containerd/api/runtime/sandbox/v1/sandbox.pb.go
+++ b/vendor/github.com/containerd/containerd/api/runtime/sandbox/v1/sandbox.pb.go
@@ -43,11 +43,12 @@ type CreateSandboxRequest struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
- SandboxID string `protobuf:"bytes,1,opt,name=sandbox_id,json=sandboxId,proto3" json:"sandbox_id,omitempty"`
- BundlePath string `protobuf:"bytes,2,opt,name=bundle_path,json=bundlePath,proto3" json:"bundle_path,omitempty"`
- Rootfs []*types.Mount `protobuf:"bytes,3,rep,name=rootfs,proto3" json:"rootfs,omitempty"`
- Options *anypb.Any `protobuf:"bytes,4,opt,name=options,proto3" json:"options,omitempty"`
- NetnsPath string `protobuf:"bytes,5,opt,name=netns_path,json=netnsPath,proto3" json:"netns_path,omitempty"`
+ SandboxID string `protobuf:"bytes,1,opt,name=sandbox_id,json=sandboxId,proto3" json:"sandbox_id,omitempty"`
+ BundlePath string `protobuf:"bytes,2,opt,name=bundle_path,json=bundlePath,proto3" json:"bundle_path,omitempty"`
+ Rootfs []*types.Mount `protobuf:"bytes,3,rep,name=rootfs,proto3" json:"rootfs,omitempty"`
+ Options *anypb.Any `protobuf:"bytes,4,opt,name=options,proto3" json:"options,omitempty"`
+ NetnsPath string `protobuf:"bytes,5,opt,name=netns_path,json=netnsPath,proto3" json:"netns_path,omitempty"`
+ Annotations map[string]string `protobuf:"bytes,6,rep,name=annotations,proto3" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}
func (x *CreateSandboxRequest) Reset() {
@@ -117,6 +118,13 @@ func (x *CreateSandboxRequest) GetNetnsPath() string {
return ""
}
+func (x *CreateSandboxRequest) GetAnnotations() map[string]string {
+ if x != nil {
+ return x.Annotations
+ }
+ return nil
+}
+
type CreateSandboxResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -967,6 +975,100 @@ func (*ShutdownSandboxResponse) Descriptor() ([]byte, []int) {
return file_github.com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_rawDescGZIP(), []int{17}
}
+type SandboxMetricsRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ SandboxID string `protobuf:"bytes,1,opt,name=sandbox_id,json=sandboxId,proto3" json:"sandbox_id,omitempty"`
+}
+
+func (x *SandboxMetricsRequest) Reset() {
+ *x = SandboxMetricsRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_github.com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[18]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *SandboxMetricsRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SandboxMetricsRequest) ProtoMessage() {}
+
+func (x *SandboxMetricsRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_github.com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[18]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use SandboxMetricsRequest.ProtoReflect.Descriptor instead.
+func (*SandboxMetricsRequest) Descriptor() ([]byte, []int) {
+ return file_github.com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_rawDescGZIP(), []int{18}
+}
+
+func (x *SandboxMetricsRequest) GetSandboxID() string {
+ if x != nil {
+ return x.SandboxID
+ }
+ return ""
+}
+
+type SandboxMetricsResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Metrics *types.Metric `protobuf:"bytes,1,opt,name=metrics,proto3" json:"metrics,omitempty"`
+}
+
+func (x *SandboxMetricsResponse) Reset() {
+ *x = SandboxMetricsResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_github.com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[19]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *SandboxMetricsResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SandboxMetricsResponse) ProtoMessage() {}
+
+func (x *SandboxMetricsResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_github.com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[19]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use SandboxMetricsResponse.ProtoReflect.Descriptor instead.
+func (*SandboxMetricsResponse) Descriptor() ([]byte, []int) {
+ return file_github.com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_rawDescGZIP(), []int{19}
+}
+
+func (x *SandboxMetricsResponse) GetMetrics() *types.Metric {
+ if x != nil {
+ return x.Metrics
+ }
+ return nil
+}
+
var File_github.com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto protoreflect.FileDescriptor
var file_github.com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_rawDesc = []byte{
@@ -987,179 +1089,210 @@ var file_github.com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_r
0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72,
0x64, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x61, 0x70, 0x69,
0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e,
- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd6, 0x01, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
- 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d,
- 0x0a, 0x0a, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x09, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x49, 0x64, 0x12, 0x1f, 0x0a,
- 0x0b, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x2f,
- 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x74, 0x66, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17,
- 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x74, 0x79, 0x70, 0x65,
- 0x73, 0x2e, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x74, 0x66, 0x73, 0x12,
- 0x2e, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
- 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12,
- 0x1d, 0x0a, 0x0a, 0x6e, 0x65, 0x74, 0x6e, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x05, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x65, 0x74, 0x6e, 0x73, 0x50, 0x61, 0x74, 0x68, 0x22, 0x17,
- 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x34, 0x0a, 0x13, 0x53, 0x74, 0x61, 0x72, 0x74,
- 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d,
- 0x0a, 0x0a, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x09, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x49, 0x64, 0x22, 0x63, 0x0a,
- 0x14, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x0d, 0x52, 0x03, 0x70, 0x69, 0x64, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74,
- 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f,
- 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69,
- 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64,
- 0x41, 0x74, 0x22, 0x30, 0x0a, 0x0f, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78,
- 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x61, 0x6e, 0x64, 0x62,
- 0x6f, 0x78, 0x49, 0x64, 0x22, 0x4a, 0x0a, 0x10, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d,
- 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74,
- 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x6e,
- 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x50, 0x6c,
- 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d,
- 0x22, 0x56, 0x0a, 0x12, 0x53, 0x74, 0x6f, 0x70, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f,
- 0x78, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x61, 0x6e, 0x64,
- 0x62, 0x6f, 0x78, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74,
- 0x5f, 0x73, 0x65, 0x63, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x74, 0x69, 0x6d,
- 0x65, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x63, 0x73, 0x22, 0x15, 0x0a, 0x13, 0x53, 0x74, 0x6f, 0x70,
- 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
- 0x91, 0x02, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f,
+ 0x6d, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x63, 0x6f, 0x6e,
+ 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x74, 0x79, 0x70, 0x65,
+ 0x73, 0x2f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22,
+ 0xfe, 0x02, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f,
0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x61, 0x6e, 0x64,
0x62, 0x6f, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x61,
- 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75,
- 0x72, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f,
+ 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x75, 0x6e, 0x64, 0x6c,
+ 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75,
+ 0x6e, 0x64, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x2f, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x74,
+ 0x66, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61,
+ 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x6f, 0x75, 0x6e,
+ 0x74, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x74, 0x66, 0x73, 0x12, 0x2e, 0x0a, 0x07, 0x6f, 0x70, 0x74,
+ 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f,
0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79,
- 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x66, 0x0a, 0x0b, 0x61,
- 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b,
- 0x32, 0x44, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75,
- 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31,
- 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e,
- 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69,
- 0x6f, 0x6e, 0x73, 0x1a, 0x3e, 0x0a, 0x10, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f,
- 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
+ 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x65, 0x74,
+ 0x6e, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e,
+ 0x65, 0x74, 0x6e, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, 0x66, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f,
+ 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x44, 0x2e,
+ 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69,
+ 0x6d, 0x65, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72,
+ 0x65, 0x61, 0x74, 0x65, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e,
+ 0x74, 0x72, 0x79, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73,
+ 0x1a, 0x3e, 0x0a, 0x10, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45,
+ 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01,
+ 0x22, 0x17, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f,
+ 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x34, 0x0a, 0x13, 0x53, 0x74, 0x61,
+ 0x72, 0x74, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x49, 0x64, 0x22,
+ 0x63, 0x0a, 0x14, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x70, 0x69, 0x64, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65,
+ 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
+ 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74,
+ 0x65, 0x64, 0x41, 0x74, 0x22, 0x30, 0x0a, 0x0f, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x61, 0x6e, 0x64, 0x62,
+ 0x6f, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x61, 0x6e,
+ 0x64, 0x62, 0x6f, 0x78, 0x49, 0x64, 0x22, 0x4a, 0x0a, 0x10, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f,
+ 0x72, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x08, 0x70, 0x6c,
+ 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63,
+ 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
+ 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f,
+ 0x72, 0x6d, 0x22, 0x56, 0x0a, 0x12, 0x53, 0x74, 0x6f, 0x70, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f,
+ 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x61, 0x6e, 0x64,
+ 0x62, 0x6f, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x61,
+ 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x6f,
+ 0x75, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x74,
+ 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x63, 0x73, 0x22, 0x15, 0x0a, 0x13, 0x53, 0x74,
+ 0x6f, 0x70, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x22, 0x91, 0x02, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x61, 0x6e, 0x64,
+ 0x62, 0x6f, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x61,
+ 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
+ 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x09, 0x72, 0x65, 0x73,
+ 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41,
+ 0x6e, 0x79, 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x66, 0x0a,
+ 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03,
+ 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e,
+ 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e,
+ 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x3e, 0x0a, 0x10, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76,
+ 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
+ 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x33, 0x0a, 0x12, 0x57, 0x61, 0x69, 0x74, 0x53, 0x61, 0x6e,
+ 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73,
+ 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x09, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x49, 0x64, 0x22, 0x6f, 0x0a, 0x13, 0x57, 0x61,
+ 0x69, 0x74, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x65, 0x78, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74,
+ 0x75, 0x73, 0x12, 0x37, 0x0a, 0x09, 0x65, 0x78, 0x69, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
+ 0x70, 0x52, 0x08, 0x65, 0x78, 0x69, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x17, 0x0a, 0x15, 0x55,
+ 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4f, 0x0a, 0x14, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x53,
+ 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a,
+ 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x09, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76,
+ 0x65, 0x72, 0x62, 0x6f, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x76, 0x65,
+ 0x72, 0x62, 0x6f, 0x73, 0x65, 0x22, 0x8b, 0x03, 0x0a, 0x15, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f,
+ 0x78, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
+ 0x1d, 0x0a, 0x0a, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x49, 0x64, 0x12, 0x10,
+ 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x70, 0x69, 0x64,
+ 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x52, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x04,
+ 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72,
+ 0x64, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f,
+ 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x53, 0x74, 0x61, 0x74,
+ 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x45,
+ 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72,
+ 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a,
+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
+ 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61,
+ 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x37, 0x0a, 0x09, 0x65, 0x78, 0x69, 0x74, 0x65, 0x64, 0x5f,
+ 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73,
+ 0x74, 0x61, 0x6d, 0x70, 0x52, 0x08, 0x65, 0x78, 0x69, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x2a,
+ 0x0a, 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e,
+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
+ 0x41, 0x6e, 0x79, 0x52, 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x1a, 0x37, 0x0a, 0x09, 0x49, 0x6e,
+ 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c,
0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
- 0x02, 0x38, 0x01, 0x22, 0x33, 0x0a, 0x12, 0x57, 0x61, 0x69, 0x74, 0x53, 0x61, 0x6e, 0x64, 0x62,
- 0x6f, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x61, 0x6e,
- 0x64, 0x62, 0x6f, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73,
- 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x49, 0x64, 0x22, 0x6f, 0x0a, 0x13, 0x57, 0x61, 0x69, 0x74,
+ 0x02, 0x38, 0x01, 0x22, 0x2c, 0x0a, 0x0b, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x5f, 0x69, 0x64,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x49,
+ 0x64, 0x22, 0x0e, 0x0a, 0x0c, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x22, 0x37, 0x0a, 0x16, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x53, 0x61, 0x6e,
+ 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73,
+ 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x09, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x49, 0x64, 0x22, 0x19, 0x0a, 0x17, 0x53, 0x68,
+ 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x36, 0x0a, 0x15, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78,
+ 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d,
+ 0x0a, 0x0a, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x09, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x49, 0x64, 0x22, 0x4c, 0x0a,
+ 0x16, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69,
+ 0x63, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61,
+ 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x65, 0x74, 0x72,
+ 0x69, 0x63, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x32, 0xbd, 0x08, 0x0a, 0x07,
+ 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x12, 0x7a, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74,
+ 0x65, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x12, 0x33, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61,
+ 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73, 0x61,
+ 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53,
+ 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e,
+ 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69,
+ 0x6d, 0x65, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72,
+ 0x65, 0x61, 0x74, 0x65, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x0c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x61, 0x6e, 0x64,
+ 0x62, 0x6f, 0x78, 0x12, 0x32, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64,
+ 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78,
+ 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69,
+ 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73, 0x61, 0x6e,
+ 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x61, 0x6e,
+ 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, 0x0a, 0x08,
+ 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x2e, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61,
+ 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73, 0x61,
+ 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72,
+ 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61,
+ 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73, 0x61,
+ 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72,
+ 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x74, 0x0a, 0x0b, 0x53, 0x74, 0x6f,
+ 0x70, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x12, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61,
+ 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73, 0x61,
+ 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x53, 0x61, 0x6e,
+ 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x63, 0x6f,
+ 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65,
+ 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x6f, 0x70,
0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
- 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x65, 0x78, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
- 0x12, 0x37, 0x0a, 0x09, 0x65, 0x78, 0x69, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
- 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52,
- 0x08, 0x65, 0x78, 0x69, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x17, 0x0a, 0x15, 0x55, 0x70, 0x64,
- 0x61, 0x74, 0x65, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x22, 0x4f, 0x0a, 0x14, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x53, 0x74, 0x61,
- 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x61,
- 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
- 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72,
- 0x62, 0x6f, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x76, 0x65, 0x72, 0x62,
- 0x6f, 0x73, 0x65, 0x22, 0x8b, 0x03, 0x0a, 0x15, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x53,
- 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a,
- 0x0a, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x09, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03,
- 0x70, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x70, 0x69, 0x64, 0x12, 0x14,
- 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73,
- 0x74, 0x61, 0x74, 0x65, 0x12, 0x52, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x03,
- 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e,
- 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e,
- 0x76, 0x31, 0x2e, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
- 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74,
- 0x72, 0x79, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61,
- 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67,
- 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54,
- 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65,
- 0x64, 0x41, 0x74, 0x12, 0x37, 0x0a, 0x09, 0x65, 0x78, 0x69, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74,
- 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
- 0x6d, 0x70, 0x52, 0x08, 0x65, 0x78, 0x69, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x2a, 0x0a, 0x05,
- 0x65, 0x78, 0x74, 0x72, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f,
- 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e,
- 0x79, 0x52, 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x1a, 0x37, 0x0a, 0x09, 0x49, 0x6e, 0x66, 0x6f,
- 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
- 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
- 0x01, 0x22, 0x2c, 0x0a, 0x0b, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x49, 0x64, 0x22,
- 0x0e, 0x0a, 0x0c, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
- 0x37, 0x0a, 0x16, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x53, 0x61, 0x6e, 0x64, 0x62,
- 0x6f, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x61, 0x6e,
- 0x64, 0x62, 0x6f, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73,
- 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x49, 0x64, 0x22, 0x19, 0x0a, 0x17, 0x53, 0x68, 0x75, 0x74,
- 0x64, 0x6f, 0x77, 0x6e, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x32, 0xbe, 0x07, 0x0a, 0x07, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x12,
- 0x7a, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78,
- 0x12, 0x33, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75,
- 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31,
- 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
- 0x72, 0x64, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62,
- 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x61, 0x6e, 0x64,
- 0x62, 0x6f, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x0c, 0x53,
- 0x74, 0x61, 0x72, 0x74, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x12, 0x32, 0x2e, 0x63, 0x6f,
+ 0x74, 0x0a, 0x0b, 0x57, 0x61, 0x69, 0x74, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x12, 0x31,
+ 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75, 0x6e, 0x74,
+ 0x69, 0x6d, 0x65, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x57,
+ 0x61, 0x69, 0x74, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x1a, 0x32, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x72,
+ 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76,
+ 0x31, 0x2e, 0x57, 0x61, 0x69, 0x74, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7a, 0x0a, 0x0d, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78,
+ 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x33, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e,
+ 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73, 0x61, 0x6e, 0x64,
+ 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x53, 0x74,
+ 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x63, 0x6f,
0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65,
- 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x72,
- 0x74, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
- 0x33, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75, 0x6e,
- 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e,
- 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d,
- 0x12, 0x2e, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75,
- 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31,
- 0x2e, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x1a, 0x2f, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75,
+ 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x61, 0x6e, 0x64,
+ 0x62, 0x6f, 0x78, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x12, 0x66, 0x0a, 0x0b, 0x50, 0x69, 0x6e, 0x67, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78,
+ 0x12, 0x2a, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75,
0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31,
- 0x2e, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
- 0x65, 0x12, 0x74, 0x0a, 0x0b, 0x53, 0x74, 0x6f, 0x70, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78,
- 0x12, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75,
- 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31,
- 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x71, 0x75,
- 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64,
- 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78,
- 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x74, 0x0a, 0x0b, 0x57, 0x61, 0x69, 0x74, 0x53,
- 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x12, 0x31, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e,
- 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73, 0x61, 0x6e, 0x64,
- 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x61, 0x69, 0x74, 0x53, 0x61, 0x6e, 0x64, 0x62,
- 0x6f, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x63, 0x6f, 0x6e, 0x74,
- 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73,
- 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x61, 0x69, 0x74, 0x53, 0x61,
- 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7a, 0x0a,
- 0x0d, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x33,
+ 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x63,
+ 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d,
+ 0x65, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, 0x6e,
+ 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x80, 0x01, 0x0a, 0x0f, 0x53, 0x68,
+ 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x12, 0x35, 0x2e,
+ 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69,
+ 0x6d, 0x65, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x68,
+ 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72,
+ 0x64, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f,
+ 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x53, 0x61, 0x6e,
+ 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7d, 0x0a, 0x0e,
+ 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x34,
0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75, 0x6e, 0x74,
0x69, 0x6d, 0x65, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x53,
- 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75,
- 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64,
- 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78,
- 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x53, 0x74, 0x61, 0x74, 0x75,
- 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x66, 0x0a, 0x0b, 0x50, 0x69, 0x6e,
- 0x67, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x12, 0x2a, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61,
- 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73, 0x61,
- 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72,
+ 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72,
0x64, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f,
- 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
- 0x65, 0x12, 0x80, 0x01, 0x0a, 0x0f, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x53, 0x61,
- 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x12, 0x35, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
- 0x72, 0x64, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62,
- 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x53, 0x61,
- 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x63,
- 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d,
- 0x65, 0x2e, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x68, 0x75,
- 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x41, 0x5a, 0x3f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63,
- 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x63, 0x6f,
- 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x75, 0x6e,
- 0x74, 0x69, 0x6d, 0x65, 0x2f, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2f, 0x76, 0x31, 0x3b,
- 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x78, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x4d, 0x65, 0x74, 0x72,
+ 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x41, 0x5a, 0x3f, 0x67,
+ 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69,
+ 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f,
+ 0x61, 0x70, 0x69, 0x2f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2f, 0x73, 0x61, 0x6e, 0x64,
+ 0x62, 0x6f, 0x78, 0x2f, 0x76, 0x31, 0x3b, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x62, 0x06,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@@ -1174,7 +1307,7 @@ func file_github.com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_
return file_github.com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_rawDescData
}
-var file_github.com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes = make([]protoimpl.MessageInfo, 20)
+var file_github.com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes = make([]protoimpl.MessageInfo, 23)
var file_github.com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_goTypes = []interface{}{
(*CreateSandboxRequest)(nil), // 0: containerd.runtime.sandbox.v1.CreateSandboxRequest
(*CreateSandboxResponse)(nil), // 1: containerd.runtime.sandbox.v1.CreateSandboxResponse
@@ -1194,46 +1327,54 @@ var file_github.com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_g
(*PingResponse)(nil), // 15: containerd.runtime.sandbox.v1.PingResponse
(*ShutdownSandboxRequest)(nil), // 16: containerd.runtime.sandbox.v1.ShutdownSandboxRequest
(*ShutdownSandboxResponse)(nil), // 17: containerd.runtime.sandbox.v1.ShutdownSandboxResponse
- nil, // 18: containerd.runtime.sandbox.v1.UpdateSandboxRequest.AnnotationsEntry
- nil, // 19: containerd.runtime.sandbox.v1.SandboxStatusResponse.InfoEntry
- (*types.Mount)(nil), // 20: containerd.types.Mount
- (*anypb.Any)(nil), // 21: google.protobuf.Any
- (*timestamppb.Timestamp)(nil), // 22: google.protobuf.Timestamp
- (*types.Platform)(nil), // 23: containerd.types.Platform
+ (*SandboxMetricsRequest)(nil), // 18: containerd.runtime.sandbox.v1.SandboxMetricsRequest
+ (*SandboxMetricsResponse)(nil), // 19: containerd.runtime.sandbox.v1.SandboxMetricsResponse
+ nil, // 20: containerd.runtime.sandbox.v1.CreateSandboxRequest.AnnotationsEntry
+ nil, // 21: containerd.runtime.sandbox.v1.UpdateSandboxRequest.AnnotationsEntry
+ nil, // 22: containerd.runtime.sandbox.v1.SandboxStatusResponse.InfoEntry
+ (*types.Mount)(nil), // 23: containerd.types.Mount
+ (*anypb.Any)(nil), // 24: google.protobuf.Any
+ (*timestamppb.Timestamp)(nil), // 25: google.protobuf.Timestamp
+ (*types.Platform)(nil), // 26: containerd.types.Platform
+ (*types.Metric)(nil), // 27: containerd.types.Metric
}
var file_github.com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_depIdxs = []int32{
- 20, // 0: containerd.runtime.sandbox.v1.CreateSandboxRequest.rootfs:type_name -> containerd.types.Mount
- 21, // 1: containerd.runtime.sandbox.v1.CreateSandboxRequest.options:type_name -> google.protobuf.Any
- 22, // 2: containerd.runtime.sandbox.v1.StartSandboxResponse.created_at:type_name -> google.protobuf.Timestamp
- 23, // 3: containerd.runtime.sandbox.v1.PlatformResponse.platform:type_name -> containerd.types.Platform
- 21, // 4: containerd.runtime.sandbox.v1.UpdateSandboxRequest.resources:type_name -> google.protobuf.Any
- 18, // 5: containerd.runtime.sandbox.v1.UpdateSandboxRequest.annotations:type_name -> containerd.runtime.sandbox.v1.UpdateSandboxRequest.AnnotationsEntry
- 22, // 6: containerd.runtime.sandbox.v1.WaitSandboxResponse.exited_at:type_name -> google.protobuf.Timestamp
- 19, // 7: containerd.runtime.sandbox.v1.SandboxStatusResponse.info:type_name -> containerd.runtime.sandbox.v1.SandboxStatusResponse.InfoEntry
- 22, // 8: containerd.runtime.sandbox.v1.SandboxStatusResponse.created_at:type_name -> google.protobuf.Timestamp
- 22, // 9: containerd.runtime.sandbox.v1.SandboxStatusResponse.exited_at:type_name -> google.protobuf.Timestamp
- 21, // 10: containerd.runtime.sandbox.v1.SandboxStatusResponse.extra:type_name -> google.protobuf.Any
- 0, // 11: containerd.runtime.sandbox.v1.Sandbox.CreateSandbox:input_type -> containerd.runtime.sandbox.v1.CreateSandboxRequest
- 2, // 12: containerd.runtime.sandbox.v1.Sandbox.StartSandbox:input_type -> containerd.runtime.sandbox.v1.StartSandboxRequest
- 4, // 13: containerd.runtime.sandbox.v1.Sandbox.Platform:input_type -> containerd.runtime.sandbox.v1.PlatformRequest
- 6, // 14: containerd.runtime.sandbox.v1.Sandbox.StopSandbox:input_type -> containerd.runtime.sandbox.v1.StopSandboxRequest
- 9, // 15: containerd.runtime.sandbox.v1.Sandbox.WaitSandbox:input_type -> containerd.runtime.sandbox.v1.WaitSandboxRequest
- 12, // 16: containerd.runtime.sandbox.v1.Sandbox.SandboxStatus:input_type -> containerd.runtime.sandbox.v1.SandboxStatusRequest
- 14, // 17: containerd.runtime.sandbox.v1.Sandbox.PingSandbox:input_type -> containerd.runtime.sandbox.v1.PingRequest
- 16, // 18: containerd.runtime.sandbox.v1.Sandbox.ShutdownSandbox:input_type -> containerd.runtime.sandbox.v1.ShutdownSandboxRequest
- 1, // 19: containerd.runtime.sandbox.v1.Sandbox.CreateSandbox:output_type -> containerd.runtime.sandbox.v1.CreateSandboxResponse
- 3, // 20: containerd.runtime.sandbox.v1.Sandbox.StartSandbox:output_type -> containerd.runtime.sandbox.v1.StartSandboxResponse
- 5, // 21: containerd.runtime.sandbox.v1.Sandbox.Platform:output_type -> containerd.runtime.sandbox.v1.PlatformResponse
- 7, // 22: containerd.runtime.sandbox.v1.Sandbox.StopSandbox:output_type -> containerd.runtime.sandbox.v1.StopSandboxResponse
- 10, // 23: containerd.runtime.sandbox.v1.Sandbox.WaitSandbox:output_type -> containerd.runtime.sandbox.v1.WaitSandboxResponse
- 13, // 24: containerd.runtime.sandbox.v1.Sandbox.SandboxStatus:output_type -> containerd.runtime.sandbox.v1.SandboxStatusResponse
- 15, // 25: containerd.runtime.sandbox.v1.Sandbox.PingSandbox:output_type -> containerd.runtime.sandbox.v1.PingResponse
- 17, // 26: containerd.runtime.sandbox.v1.Sandbox.ShutdownSandbox:output_type -> containerd.runtime.sandbox.v1.ShutdownSandboxResponse
- 19, // [19:27] is the sub-list for method output_type
- 11, // [11:19] is the sub-list for method input_type
- 11, // [11:11] is the sub-list for extension type_name
- 11, // [11:11] is the sub-list for extension extendee
- 0, // [0:11] is the sub-list for field type_name
+ 23, // 0: containerd.runtime.sandbox.v1.CreateSandboxRequest.rootfs:type_name -> containerd.types.Mount
+ 24, // 1: containerd.runtime.sandbox.v1.CreateSandboxRequest.options:type_name -> google.protobuf.Any
+ 20, // 2: containerd.runtime.sandbox.v1.CreateSandboxRequest.annotations:type_name -> containerd.runtime.sandbox.v1.CreateSandboxRequest.AnnotationsEntry
+ 25, // 3: containerd.runtime.sandbox.v1.StartSandboxResponse.created_at:type_name -> google.protobuf.Timestamp
+ 26, // 4: containerd.runtime.sandbox.v1.PlatformResponse.platform:type_name -> containerd.types.Platform
+ 24, // 5: containerd.runtime.sandbox.v1.UpdateSandboxRequest.resources:type_name -> google.protobuf.Any
+ 21, // 6: containerd.runtime.sandbox.v1.UpdateSandboxRequest.annotations:type_name -> containerd.runtime.sandbox.v1.UpdateSandboxRequest.AnnotationsEntry
+ 25, // 7: containerd.runtime.sandbox.v1.WaitSandboxResponse.exited_at:type_name -> google.protobuf.Timestamp
+ 22, // 8: containerd.runtime.sandbox.v1.SandboxStatusResponse.info:type_name -> containerd.runtime.sandbox.v1.SandboxStatusResponse.InfoEntry
+ 25, // 9: containerd.runtime.sandbox.v1.SandboxStatusResponse.created_at:type_name -> google.protobuf.Timestamp
+ 25, // 10: containerd.runtime.sandbox.v1.SandboxStatusResponse.exited_at:type_name -> google.protobuf.Timestamp
+ 24, // 11: containerd.runtime.sandbox.v1.SandboxStatusResponse.extra:type_name -> google.protobuf.Any
+ 27, // 12: containerd.runtime.sandbox.v1.SandboxMetricsResponse.metrics:type_name -> containerd.types.Metric
+ 0, // 13: containerd.runtime.sandbox.v1.Sandbox.CreateSandbox:input_type -> containerd.runtime.sandbox.v1.CreateSandboxRequest
+ 2, // 14: containerd.runtime.sandbox.v1.Sandbox.StartSandbox:input_type -> containerd.runtime.sandbox.v1.StartSandboxRequest
+ 4, // 15: containerd.runtime.sandbox.v1.Sandbox.Platform:input_type -> containerd.runtime.sandbox.v1.PlatformRequest
+ 6, // 16: containerd.runtime.sandbox.v1.Sandbox.StopSandbox:input_type -> containerd.runtime.sandbox.v1.StopSandboxRequest
+ 9, // 17: containerd.runtime.sandbox.v1.Sandbox.WaitSandbox:input_type -> containerd.runtime.sandbox.v1.WaitSandboxRequest
+ 12, // 18: containerd.runtime.sandbox.v1.Sandbox.SandboxStatus:input_type -> containerd.runtime.sandbox.v1.SandboxStatusRequest
+ 14, // 19: containerd.runtime.sandbox.v1.Sandbox.PingSandbox:input_type -> containerd.runtime.sandbox.v1.PingRequest
+ 16, // 20: containerd.runtime.sandbox.v1.Sandbox.ShutdownSandbox:input_type -> containerd.runtime.sandbox.v1.ShutdownSandboxRequest
+ 18, // 21: containerd.runtime.sandbox.v1.Sandbox.SandboxMetrics:input_type -> containerd.runtime.sandbox.v1.SandboxMetricsRequest
+ 1, // 22: containerd.runtime.sandbox.v1.Sandbox.CreateSandbox:output_type -> containerd.runtime.sandbox.v1.CreateSandboxResponse
+ 3, // 23: containerd.runtime.sandbox.v1.Sandbox.StartSandbox:output_type -> containerd.runtime.sandbox.v1.StartSandboxResponse
+ 5, // 24: containerd.runtime.sandbox.v1.Sandbox.Platform:output_type -> containerd.runtime.sandbox.v1.PlatformResponse
+ 7, // 25: containerd.runtime.sandbox.v1.Sandbox.StopSandbox:output_type -> containerd.runtime.sandbox.v1.StopSandboxResponse
+ 10, // 26: containerd.runtime.sandbox.v1.Sandbox.WaitSandbox:output_type -> containerd.runtime.sandbox.v1.WaitSandboxResponse
+ 13, // 27: containerd.runtime.sandbox.v1.Sandbox.SandboxStatus:output_type -> containerd.runtime.sandbox.v1.SandboxStatusResponse
+ 15, // 28: containerd.runtime.sandbox.v1.Sandbox.PingSandbox:output_type -> containerd.runtime.sandbox.v1.PingResponse
+ 17, // 29: containerd.runtime.sandbox.v1.Sandbox.ShutdownSandbox:output_type -> containerd.runtime.sandbox.v1.ShutdownSandboxResponse
+ 19, // 30: containerd.runtime.sandbox.v1.Sandbox.SandboxMetrics:output_type -> containerd.runtime.sandbox.v1.SandboxMetricsResponse
+ 22, // [22:31] is the sub-list for method output_type
+ 13, // [13:22] is the sub-list for method input_type
+ 13, // [13:13] is the sub-list for extension type_name
+ 13, // [13:13] is the sub-list for extension extendee
+ 0, // [0:13] is the sub-list for field type_name
}
func init() { file_github.com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_init() }
@@ -1458,6 +1599,30 @@ func file_github.com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_
return nil
}
}
+ file_github.com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*SandboxMetricsRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_github.com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*SandboxMetricsResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
}
type x struct{}
out := protoimpl.TypeBuilder{
@@ -1465,7 +1630,7 @@ func file_github.com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_github.com_containerd_containerd_api_runtime_sandbox_v1_sandbox_proto_rawDesc,
NumEnums: 0,
- NumMessages: 20,
+ NumMessages: 23,
NumExtensions: 0,
NumServices: 1,
},
diff --git a/vendor/github.com/containerd/containerd/api/runtime/sandbox/v1/sandbox.proto b/vendor/github.com/containerd/containerd/api/runtime/sandbox/v1/sandbox.proto
index a051f3ea35..0cf801c909 100644
--- a/vendor/github.com/containerd/containerd/api/runtime/sandbox/v1/sandbox.proto
+++ b/vendor/github.com/containerd/containerd/api/runtime/sandbox/v1/sandbox.proto
@@ -23,6 +23,7 @@ import "google/protobuf/timestamp.proto";
import "github.com/containerd/containerd/api/types/mount.proto";
import "github.com/containerd/containerd/api/types/platform.proto";
+import "github.com/containerd/containerd/api/types/metrics.proto";
option go_package = "github.com/containerd/containerd/api/runtime/sandbox/v1;sandbox";
@@ -34,7 +35,7 @@ service Sandbox {
// It is a good place to initialize sandbox environment.
rpc CreateSandbox(CreateSandboxRequest) returns (CreateSandboxResponse);
- // StartSandbox will start previsouly created sandbox.
+ // StartSandbox will start a previously created sandbox.
rpc StartSandbox(StartSandboxRequest) returns (StartSandboxResponse);
// Platform queries the platform the sandbox is going to run containers on.
@@ -44,7 +45,7 @@ service Sandbox {
// StopSandbox will stop existing sandbox instance
rpc StopSandbox(StopSandboxRequest) returns (StopSandboxResponse);
- // WaitSandbox blocks until sanbox exits.
+ // WaitSandbox blocks until sandbox exits.
rpc WaitSandbox(WaitSandboxRequest) returns (WaitSandboxResponse);
// SandboxStatus will return current status of the running sandbox instance
@@ -55,6 +56,9 @@ service Sandbox {
// ShutdownSandbox must shutdown shim instance.
rpc ShutdownSandbox(ShutdownSandboxRequest) returns (ShutdownSandboxResponse);
+
+ // SandboxMetrics retrieves metrics about a sandbox instance.
+ rpc SandboxMetrics(SandboxMetricsRequest) returns (SandboxMetricsResponse);
}
message CreateSandboxRequest {
@@ -63,6 +67,7 @@ message CreateSandboxRequest {
repeated containerd.types.Mount rootfs = 3;
google.protobuf.Any options = 4;
string netns_path = 5;
+ map annotations = 6;
}
message CreateSandboxResponse {}
@@ -134,3 +139,11 @@ message ShutdownSandboxRequest {
}
message ShutdownSandboxResponse {}
+
+message SandboxMetricsRequest {
+ string sandbox_id = 1;
+}
+
+message SandboxMetricsResponse {
+ containerd.types.Metric metrics = 1;
+}
diff --git a/vendor/github.com/containerd/containerd/api/runtime/sandbox/v1/sandbox_grpc.pb.go b/vendor/github.com/containerd/containerd/api/runtime/sandbox/v1/sandbox_grpc.pb.go
index f794249861..ae5b9a1e9e 100644
--- a/vendor/github.com/containerd/containerd/api/runtime/sandbox/v1/sandbox_grpc.pb.go
+++ b/vendor/github.com/containerd/containerd/api/runtime/sandbox/v1/sandbox_grpc.pb.go
@@ -1,3 +1,5 @@
+//go:build !no_grpc
+
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
// versions:
// - protoc-gen-go-grpc v1.2.0
@@ -25,14 +27,14 @@ type SandboxClient interface {
// CreateSandbox will be called right after sandbox shim instance launched.
// It is a good place to initialize sandbox environment.
CreateSandbox(ctx context.Context, in *CreateSandboxRequest, opts ...grpc.CallOption) (*CreateSandboxResponse, error)
- // StartSandbox will start previsouly created sandbox.
+ // StartSandbox will start a previously created sandbox.
StartSandbox(ctx context.Context, in *StartSandboxRequest, opts ...grpc.CallOption) (*StartSandboxResponse, error)
// Platform queries the platform the sandbox is going to run containers on.
// containerd will use this to generate a proper OCI spec.
Platform(ctx context.Context, in *PlatformRequest, opts ...grpc.CallOption) (*PlatformResponse, error)
// StopSandbox will stop existing sandbox instance
StopSandbox(ctx context.Context, in *StopSandboxRequest, opts ...grpc.CallOption) (*StopSandboxResponse, error)
- // WaitSandbox blocks until sanbox exits.
+ // WaitSandbox blocks until sandbox exits.
WaitSandbox(ctx context.Context, in *WaitSandboxRequest, opts ...grpc.CallOption) (*WaitSandboxResponse, error)
// SandboxStatus will return current status of the running sandbox instance
SandboxStatus(ctx context.Context, in *SandboxStatusRequest, opts ...grpc.CallOption) (*SandboxStatusResponse, error)
@@ -40,6 +42,8 @@ type SandboxClient interface {
PingSandbox(ctx context.Context, in *PingRequest, opts ...grpc.CallOption) (*PingResponse, error)
// ShutdownSandbox must shutdown shim instance.
ShutdownSandbox(ctx context.Context, in *ShutdownSandboxRequest, opts ...grpc.CallOption) (*ShutdownSandboxResponse, error)
+ // SandboxMetrics retrieves metrics about a sandbox instance.
+ SandboxMetrics(ctx context.Context, in *SandboxMetricsRequest, opts ...grpc.CallOption) (*SandboxMetricsResponse, error)
}
type sandboxClient struct {
@@ -122,6 +126,15 @@ func (c *sandboxClient) ShutdownSandbox(ctx context.Context, in *ShutdownSandbox
return out, nil
}
+func (c *sandboxClient) SandboxMetrics(ctx context.Context, in *SandboxMetricsRequest, opts ...grpc.CallOption) (*SandboxMetricsResponse, error) {
+ out := new(SandboxMetricsResponse)
+ err := c.cc.Invoke(ctx, "/containerd.runtime.sandbox.v1.Sandbox/SandboxMetrics", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
// SandboxServer is the server API for Sandbox service.
// All implementations must embed UnimplementedSandboxServer
// for forward compatibility
@@ -129,14 +142,14 @@ type SandboxServer interface {
// CreateSandbox will be called right after sandbox shim instance launched.
// It is a good place to initialize sandbox environment.
CreateSandbox(context.Context, *CreateSandboxRequest) (*CreateSandboxResponse, error)
- // StartSandbox will start previsouly created sandbox.
+ // StartSandbox will start a previously created sandbox.
StartSandbox(context.Context, *StartSandboxRequest) (*StartSandboxResponse, error)
// Platform queries the platform the sandbox is going to run containers on.
// containerd will use this to generate a proper OCI spec.
Platform(context.Context, *PlatformRequest) (*PlatformResponse, error)
// StopSandbox will stop existing sandbox instance
StopSandbox(context.Context, *StopSandboxRequest) (*StopSandboxResponse, error)
- // WaitSandbox blocks until sanbox exits.
+ // WaitSandbox blocks until sandbox exits.
WaitSandbox(context.Context, *WaitSandboxRequest) (*WaitSandboxResponse, error)
// SandboxStatus will return current status of the running sandbox instance
SandboxStatus(context.Context, *SandboxStatusRequest) (*SandboxStatusResponse, error)
@@ -144,6 +157,8 @@ type SandboxServer interface {
PingSandbox(context.Context, *PingRequest) (*PingResponse, error)
// ShutdownSandbox must shutdown shim instance.
ShutdownSandbox(context.Context, *ShutdownSandboxRequest) (*ShutdownSandboxResponse, error)
+ // SandboxMetrics retrieves metrics about a sandbox instance.
+ SandboxMetrics(context.Context, *SandboxMetricsRequest) (*SandboxMetricsResponse, error)
mustEmbedUnimplementedSandboxServer()
}
@@ -175,6 +190,9 @@ func (UnimplementedSandboxServer) PingSandbox(context.Context, *PingRequest) (*P
func (UnimplementedSandboxServer) ShutdownSandbox(context.Context, *ShutdownSandboxRequest) (*ShutdownSandboxResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method ShutdownSandbox not implemented")
}
+func (UnimplementedSandboxServer) SandboxMetrics(context.Context, *SandboxMetricsRequest) (*SandboxMetricsResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method SandboxMetrics not implemented")
+}
func (UnimplementedSandboxServer) mustEmbedUnimplementedSandboxServer() {}
// UnsafeSandboxServer may be embedded to opt out of forward compatibility for this service.
@@ -332,6 +350,24 @@ func _Sandbox_ShutdownSandbox_Handler(srv interface{}, ctx context.Context, dec
return interceptor(ctx, in, info, handler)
}
+func _Sandbox_SandboxMetrics_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(SandboxMetricsRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(SandboxServer).SandboxMetrics(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/containerd.runtime.sandbox.v1.Sandbox/SandboxMetrics",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(SandboxServer).SandboxMetrics(ctx, req.(*SandboxMetricsRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
// Sandbox_ServiceDesc is the grpc.ServiceDesc for Sandbox service.
// It's only intended for direct use with grpc.RegisterService,
// and not to be introspected or modified (even as a copy)
@@ -371,6 +407,10 @@ var Sandbox_ServiceDesc = grpc.ServiceDesc{
MethodName: "ShutdownSandbox",
Handler: _Sandbox_ShutdownSandbox_Handler,
},
+ {
+ MethodName: "SandboxMetrics",
+ Handler: _Sandbox_SandboxMetrics_Handler,
+ },
},
Streams: []grpc.StreamDesc{},
Metadata: "github.com/containerd/containerd/api/runtime/sandbox/v1/sandbox.proto",
diff --git a/vendor/github.com/containerd/containerd/api/runtime/sandbox/v1/sandbox_ttrpc.pb.go b/vendor/github.com/containerd/containerd/api/runtime/sandbox/v1/sandbox_ttrpc.pb.go
index d935fe611f..65bab2dfcc 100644
--- a/vendor/github.com/containerd/containerd/api/runtime/sandbox/v1/sandbox_ttrpc.pb.go
+++ b/vendor/github.com/containerd/containerd/api/runtime/sandbox/v1/sandbox_ttrpc.pb.go
@@ -16,6 +16,7 @@ type TTRPCSandboxService interface {
SandboxStatus(context.Context, *SandboxStatusRequest) (*SandboxStatusResponse, error)
PingSandbox(context.Context, *PingRequest) (*PingResponse, error)
ShutdownSandbox(context.Context, *ShutdownSandboxRequest) (*ShutdownSandboxResponse, error)
+ SandboxMetrics(context.Context, *SandboxMetricsRequest) (*SandboxMetricsResponse, error)
}
func RegisterTTRPCSandboxService(srv *ttrpc.Server, svc TTRPCSandboxService) {
@@ -77,6 +78,13 @@ func RegisterTTRPCSandboxService(srv *ttrpc.Server, svc TTRPCSandboxService) {
}
return svc.ShutdownSandbox(ctx, &req)
},
+ "SandboxMetrics": func(ctx context.Context, unmarshal func(interface{}) error) (interface{}, error) {
+ var req SandboxMetricsRequest
+ if err := unmarshal(&req); err != nil {
+ return nil, err
+ }
+ return svc.SandboxMetrics(ctx, &req)
+ },
},
})
}
@@ -154,3 +162,11 @@ func (c *ttrpcsandboxClient) ShutdownSandbox(ctx context.Context, req *ShutdownS
}
return &resp, nil
}
+
+func (c *ttrpcsandboxClient) SandboxMetrics(ctx context.Context, req *SandboxMetricsRequest) (*SandboxMetricsResponse, error) {
+ var resp SandboxMetricsResponse
+ if err := c.client.Call(ctx, "containerd.runtime.sandbox.v1.Sandbox", "SandboxMetrics", req, &resp); err != nil {
+ return nil, err
+ }
+ return &resp, nil
+}
diff --git a/vendor/github.com/containerd/containerd/api/types/event.pb.go b/vendor/github.com/containerd/containerd/api/types/event.pb.go
new file mode 100644
index 0000000000..6ebe1e26dd
--- /dev/null
+++ b/vendor/github.com/containerd/containerd/api/types/event.pb.go
@@ -0,0 +1,209 @@
+//
+//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.
+
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.28.1
+// protoc v3.20.1
+// source: github.com/containerd/containerd/api/types/event.proto
+
+package types
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ anypb "google.golang.org/protobuf/types/known/anypb"
+ timestamppb "google.golang.org/protobuf/types/known/timestamppb"
+ reflect "reflect"
+ sync "sync"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+type Envelope struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Timestamp *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
+ Namespace string `protobuf:"bytes,2,opt,name=namespace,proto3" json:"namespace,omitempty"`
+ Topic string `protobuf:"bytes,3,opt,name=topic,proto3" json:"topic,omitempty"`
+ Event *anypb.Any `protobuf:"bytes,4,opt,name=event,proto3" json:"event,omitempty"`
+}
+
+func (x *Envelope) Reset() {
+ *x = Envelope{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_github.com_containerd_containerd_api_types_event_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Envelope) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Envelope) ProtoMessage() {}
+
+func (x *Envelope) ProtoReflect() protoreflect.Message {
+ mi := &file_github.com_containerd_containerd_api_types_event_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Envelope.ProtoReflect.Descriptor instead.
+func (*Envelope) Descriptor() ([]byte, []int) {
+ return file_github.com_containerd_containerd_api_types_event_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *Envelope) GetTimestamp() *timestamppb.Timestamp {
+ if x != nil {
+ return x.Timestamp
+ }
+ return nil
+}
+
+func (x *Envelope) GetNamespace() string {
+ if x != nil {
+ return x.Namespace
+ }
+ return ""
+}
+
+func (x *Envelope) GetTopic() string {
+ if x != nil {
+ return x.Topic
+ }
+ return ""
+}
+
+func (x *Envelope) GetEvent() *anypb.Any {
+ if x != nil {
+ return x.Event
+ }
+ return nil
+}
+
+var File_github.com_containerd_containerd_api_types_event_proto protoreflect.FileDescriptor
+
+var file_github.com_containerd_containerd_api_types_event_proto_rawDesc = []byte{
+ 0x0a, 0x36, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x6e,
+ 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
+ 0x72, 0x64, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x65, 0x76, 0x65,
+ 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69,
+ 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x1a, 0x3a, 0x67, 0x69, 0x74, 0x68,
+ 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72,
+ 0x64, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x61, 0x70, 0x69,
+ 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x70, 0x61, 0x74, 0x68,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
+ 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x22, 0xaa, 0x01, 0x0a, 0x08, 0x45, 0x6e, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x12,
+ 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09,
+ 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d,
+ 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61,
+ 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63,
+ 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x2a, 0x0a,
+ 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41,
+ 0x6e, 0x79, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x3a, 0x04, 0x80, 0xb9, 0x1f, 0x01, 0x42,
+ 0x32, 0x5a, 0x30, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f,
+ 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e,
+ 0x65, 0x72, 0x64, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x3b, 0x74, 0x79,
+ 0x70, 0x65, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_github.com_containerd_containerd_api_types_event_proto_rawDescOnce sync.Once
+ file_github.com_containerd_containerd_api_types_event_proto_rawDescData = file_github.com_containerd_containerd_api_types_event_proto_rawDesc
+)
+
+func file_github.com_containerd_containerd_api_types_event_proto_rawDescGZIP() []byte {
+ file_github.com_containerd_containerd_api_types_event_proto_rawDescOnce.Do(func() {
+ file_github.com_containerd_containerd_api_types_event_proto_rawDescData = protoimpl.X.CompressGZIP(file_github.com_containerd_containerd_api_types_event_proto_rawDescData)
+ })
+ return file_github.com_containerd_containerd_api_types_event_proto_rawDescData
+}
+
+var file_github.com_containerd_containerd_api_types_event_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
+var file_github.com_containerd_containerd_api_types_event_proto_goTypes = []interface{}{
+ (*Envelope)(nil), // 0: containerd.types.Envelope
+ (*timestamppb.Timestamp)(nil), // 1: google.protobuf.Timestamp
+ (*anypb.Any)(nil), // 2: google.protobuf.Any
+}
+var file_github.com_containerd_containerd_api_types_event_proto_depIdxs = []int32{
+ 1, // 0: containerd.types.Envelope.timestamp:type_name -> google.protobuf.Timestamp
+ 2, // 1: containerd.types.Envelope.event:type_name -> google.protobuf.Any
+ 2, // [2:2] is the sub-list for method output_type
+ 2, // [2:2] is the sub-list for method input_type
+ 2, // [2:2] is the sub-list for extension type_name
+ 2, // [2:2] is the sub-list for extension extendee
+ 0, // [0:2] is the sub-list for field type_name
+}
+
+func init() { file_github.com_containerd_containerd_api_types_event_proto_init() }
+func file_github.com_containerd_containerd_api_types_event_proto_init() {
+ if File_github.com_containerd_containerd_api_types_event_proto != nil {
+ return
+ }
+ file_github.com_containerd_containerd_api_types_fieldpath_proto_init()
+ if !protoimpl.UnsafeEnabled {
+ file_github.com_containerd_containerd_api_types_event_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Envelope); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_github.com_containerd_containerd_api_types_event_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 1,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_github.com_containerd_containerd_api_types_event_proto_goTypes,
+ DependencyIndexes: file_github.com_containerd_containerd_api_types_event_proto_depIdxs,
+ MessageInfos: file_github.com_containerd_containerd_api_types_event_proto_msgTypes,
+ }.Build()
+ File_github.com_containerd_containerd_api_types_event_proto = out.File
+ file_github.com_containerd_containerd_api_types_event_proto_rawDesc = nil
+ file_github.com_containerd_containerd_api_types_event_proto_goTypes = nil
+ file_github.com_containerd_containerd_api_types_event_proto_depIdxs = nil
+}
diff --git a/vendor/github.com/containerd/containerd/api/types/event.proto b/vendor/github.com/containerd/containerd/api/types/event.proto
new file mode 100644
index 0000000000..a73bc9d450
--- /dev/null
+++ b/vendor/github.com/containerd/containerd/api/types/event.proto
@@ -0,0 +1,33 @@
+/*
+ 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.
+*/
+
+syntax = "proto3";
+
+package containerd.types;
+
+import "github.com/containerd/containerd/api/types/fieldpath.proto";
+import "google/protobuf/any.proto";
+import "google/protobuf/timestamp.proto";
+
+option go_package = "github.com/containerd/containerd/api/types;types";
+
+message Envelope {
+ option (containerd.types.fieldpath) = true;
+ google.protobuf.Timestamp timestamp = 1;
+ string namespace = 2;
+ string topic = 3;
+ google.protobuf.Any event = 4;
+}
diff --git a/vendor/github.com/containerd/containerd/api/types/introspection.pb.go b/vendor/github.com/containerd/containerd/api/types/introspection.pb.go
new file mode 100644
index 0000000000..2f9c2ac449
--- /dev/null
+++ b/vendor/github.com/containerd/containerd/api/types/introspection.pb.go
@@ -0,0 +1,375 @@
+//
+//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.
+
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.28.1
+// protoc v3.20.1
+// source: github.com/containerd/containerd/api/types/introspection.proto
+
+package types
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ anypb "google.golang.org/protobuf/types/known/anypb"
+ reflect "reflect"
+ sync "sync"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+type RuntimeRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ RuntimePath string `protobuf:"bytes,1,opt,name=runtime_path,json=runtimePath,proto3" json:"runtime_path,omitempty"`
+ // Options correspond to CreateTaskRequest.options.
+ // This is needed to pass the runc binary path, etc.
+ Options *anypb.Any `protobuf:"bytes,2,opt,name=options,proto3" json:"options,omitempty"`
+}
+
+func (x *RuntimeRequest) Reset() {
+ *x = RuntimeRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_github.com_containerd_containerd_api_types_introspection_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *RuntimeRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*RuntimeRequest) ProtoMessage() {}
+
+func (x *RuntimeRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_github.com_containerd_containerd_api_types_introspection_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use RuntimeRequest.ProtoReflect.Descriptor instead.
+func (*RuntimeRequest) Descriptor() ([]byte, []int) {
+ return file_github.com_containerd_containerd_api_types_introspection_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *RuntimeRequest) GetRuntimePath() string {
+ if x != nil {
+ return x.RuntimePath
+ }
+ return ""
+}
+
+func (x *RuntimeRequest) GetOptions() *anypb.Any {
+ if x != nil {
+ return x.Options
+ }
+ return nil
+}
+
+type RuntimeVersion struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
+ Revision string `protobuf:"bytes,2,opt,name=revision,proto3" json:"revision,omitempty"`
+}
+
+func (x *RuntimeVersion) Reset() {
+ *x = RuntimeVersion{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_github.com_containerd_containerd_api_types_introspection_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *RuntimeVersion) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*RuntimeVersion) ProtoMessage() {}
+
+func (x *RuntimeVersion) ProtoReflect() protoreflect.Message {
+ mi := &file_github.com_containerd_containerd_api_types_introspection_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use RuntimeVersion.ProtoReflect.Descriptor instead.
+func (*RuntimeVersion) Descriptor() ([]byte, []int) {
+ return file_github.com_containerd_containerd_api_types_introspection_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *RuntimeVersion) GetVersion() string {
+ if x != nil {
+ return x.Version
+ }
+ return ""
+}
+
+func (x *RuntimeVersion) GetRevision() string {
+ if x != nil {
+ return x.Revision
+ }
+ return ""
+}
+
+type RuntimeInfo struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+ Version *RuntimeVersion `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
+ // Options correspond to RuntimeInfoRequest.Options (contains runc binary path, etc.)
+ Options *anypb.Any `protobuf:"bytes,3,opt,name=options,proto3" json:"options,omitempty"`
+ // OCI-compatible runtimes should use https://github.com/opencontainers/runtime-spec/blob/main/features.md
+ Features *anypb.Any `protobuf:"bytes,4,opt,name=features,proto3" json:"features,omitempty"`
+ // Annotations of the shim. Irrelevant to features.Annotations.
+ Annotations map[string]string `protobuf:"bytes,5,rep,name=annotations,proto3" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+}
+
+func (x *RuntimeInfo) Reset() {
+ *x = RuntimeInfo{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_github.com_containerd_containerd_api_types_introspection_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *RuntimeInfo) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*RuntimeInfo) ProtoMessage() {}
+
+func (x *RuntimeInfo) ProtoReflect() protoreflect.Message {
+ mi := &file_github.com_containerd_containerd_api_types_introspection_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use RuntimeInfo.ProtoReflect.Descriptor instead.
+func (*RuntimeInfo) Descriptor() ([]byte, []int) {
+ return file_github.com_containerd_containerd_api_types_introspection_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *RuntimeInfo) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *RuntimeInfo) GetVersion() *RuntimeVersion {
+ if x != nil {
+ return x.Version
+ }
+ return nil
+}
+
+func (x *RuntimeInfo) GetOptions() *anypb.Any {
+ if x != nil {
+ return x.Options
+ }
+ return nil
+}
+
+func (x *RuntimeInfo) GetFeatures() *anypb.Any {
+ if x != nil {
+ return x.Features
+ }
+ return nil
+}
+
+func (x *RuntimeInfo) GetAnnotations() map[string]string {
+ if x != nil {
+ return x.Annotations
+ }
+ return nil
+}
+
+var File_github.com_containerd_containerd_api_types_introspection_proto protoreflect.FileDescriptor
+
+var file_github.com_containerd_containerd_api_types_introspection_proto_rawDesc = []byte{
+ 0x0a, 0x3e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x6e,
+ 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
+ 0x72, 0x64, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74,
+ 0x72, 0x6f, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x12, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x74, 0x79, 0x70,
+ 0x65, 0x73, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x63, 0x0a,
+ 0x0e, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
+ 0x21, 0x0a, 0x0c, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x50, 0x61,
+ 0x74, 0x68, 0x12, 0x2e, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f,
+ 0x6e, 0x73, 0x22, 0x46, 0x0a, 0x0e, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x56, 0x65, 0x72,
+ 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1a,
+ 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xd1, 0x02, 0x0a, 0x0b, 0x52,
+ 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
+ 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3a,
+ 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x74, 0x79, 0x70,
+ 0x65, 0x73, 0x2e, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f,
+ 0x6e, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x07, 0x6f, 0x70,
+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f,
+ 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e,
+ 0x79, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x08, 0x66, 0x65,
+ 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41,
+ 0x6e, 0x79, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x50, 0x0a, 0x0b,
+ 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28,
+ 0x0b, 0x32, 0x2e, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x74,
+ 0x79, 0x70, 0x65, 0x73, 0x2e, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f,
+ 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72,
+ 0x79, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x3e,
+ 0x0a, 0x10, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74,
+ 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x32,
+ 0x5a, 0x30, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x6e,
+ 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
+ 0x72, 0x64, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x3b, 0x74, 0x79, 0x70,
+ 0x65, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_github.com_containerd_containerd_api_types_introspection_proto_rawDescOnce sync.Once
+ file_github.com_containerd_containerd_api_types_introspection_proto_rawDescData = file_github.com_containerd_containerd_api_types_introspection_proto_rawDesc
+)
+
+func file_github.com_containerd_containerd_api_types_introspection_proto_rawDescGZIP() []byte {
+ file_github.com_containerd_containerd_api_types_introspection_proto_rawDescOnce.Do(func() {
+ file_github.com_containerd_containerd_api_types_introspection_proto_rawDescData = protoimpl.X.CompressGZIP(file_github.com_containerd_containerd_api_types_introspection_proto_rawDescData)
+ })
+ return file_github.com_containerd_containerd_api_types_introspection_proto_rawDescData
+}
+
+var file_github.com_containerd_containerd_api_types_introspection_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
+var file_github.com_containerd_containerd_api_types_introspection_proto_goTypes = []interface{}{
+ (*RuntimeRequest)(nil), // 0: containerd.types.RuntimeRequest
+ (*RuntimeVersion)(nil), // 1: containerd.types.RuntimeVersion
+ (*RuntimeInfo)(nil), // 2: containerd.types.RuntimeInfo
+ nil, // 3: containerd.types.RuntimeInfo.AnnotationsEntry
+ (*anypb.Any)(nil), // 4: google.protobuf.Any
+}
+var file_github.com_containerd_containerd_api_types_introspection_proto_depIdxs = []int32{
+ 4, // 0: containerd.types.RuntimeRequest.options:type_name -> google.protobuf.Any
+ 1, // 1: containerd.types.RuntimeInfo.version:type_name -> containerd.types.RuntimeVersion
+ 4, // 2: containerd.types.RuntimeInfo.options:type_name -> google.protobuf.Any
+ 4, // 3: containerd.types.RuntimeInfo.features:type_name -> google.protobuf.Any
+ 3, // 4: containerd.types.RuntimeInfo.annotations:type_name -> containerd.types.RuntimeInfo.AnnotationsEntry
+ 5, // [5:5] is the sub-list for method output_type
+ 5, // [5:5] is the sub-list for method input_type
+ 5, // [5:5] is the sub-list for extension type_name
+ 5, // [5:5] is the sub-list for extension extendee
+ 0, // [0:5] is the sub-list for field type_name
+}
+
+func init() { file_github.com_containerd_containerd_api_types_introspection_proto_init() }
+func file_github.com_containerd_containerd_api_types_introspection_proto_init() {
+ if File_github.com_containerd_containerd_api_types_introspection_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_github.com_containerd_containerd_api_types_introspection_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*RuntimeRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_github.com_containerd_containerd_api_types_introspection_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*RuntimeVersion); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_github.com_containerd_containerd_api_types_introspection_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*RuntimeInfo); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_github.com_containerd_containerd_api_types_introspection_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 4,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_github.com_containerd_containerd_api_types_introspection_proto_goTypes,
+ DependencyIndexes: file_github.com_containerd_containerd_api_types_introspection_proto_depIdxs,
+ MessageInfos: file_github.com_containerd_containerd_api_types_introspection_proto_msgTypes,
+ }.Build()
+ File_github.com_containerd_containerd_api_types_introspection_proto = out.File
+ file_github.com_containerd_containerd_api_types_introspection_proto_rawDesc = nil
+ file_github.com_containerd_containerd_api_types_introspection_proto_goTypes = nil
+ file_github.com_containerd_containerd_api_types_introspection_proto_depIdxs = nil
+}
diff --git a/vendor/github.com/containerd/containerd/api/types/introspection.proto b/vendor/github.com/containerd/containerd/api/types/introspection.proto
new file mode 100644
index 0000000000..8f3fcb5a48
--- /dev/null
+++ b/vendor/github.com/containerd/containerd/api/types/introspection.proto
@@ -0,0 +1,46 @@
+/*
+ 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.
+*/
+
+syntax = "proto3";
+
+package containerd.types;
+
+import "google/protobuf/any.proto";
+
+option go_package = "github.com/containerd/containerd/api/types;types";
+
+message RuntimeRequest {
+ string runtime_path = 1;
+ // Options correspond to CreateTaskRequest.options.
+ // This is needed to pass the runc binary path, etc.
+ google.protobuf.Any options = 2;
+}
+
+message RuntimeVersion {
+ string version = 1;
+ string revision = 2;
+}
+
+message RuntimeInfo {
+ string name = 1;
+ RuntimeVersion version = 2;
+ // Options correspond to RuntimeInfoRequest.Options (contains runc binary path, etc.)
+ google.protobuf.Any options = 3;
+ // OCI-compatible runtimes should use https://github.com/opencontainers/runtime-spec/blob/main/features.md
+ google.protobuf.Any features = 4;
+ // Annotations of the shim. Irrelevant to features.Annotations.
+ map annotations = 5;
+}
diff --git a/vendor/github.com/containerd/containerd/api/types/platform.pb.go b/vendor/github.com/containerd/containerd/api/types/platform.pb.go
index 3e206cbafb..daa62b834e 100644
--- a/vendor/github.com/containerd/containerd/api/types/platform.pb.go
+++ b/vendor/github.com/containerd/containerd/api/types/platform.pb.go
@@ -45,6 +45,7 @@ type Platform struct {
OS string `protobuf:"bytes,1,opt,name=os,proto3" json:"os,omitempty"`
Architecture string `protobuf:"bytes,2,opt,name=architecture,proto3" json:"architecture,omitempty"`
Variant string `protobuf:"bytes,3,opt,name=variant,proto3" json:"variant,omitempty"`
+ OSVersion string `protobuf:"bytes,4,opt,name=os_version,json=osVersion,proto3" json:"os_version,omitempty"`
}
func (x *Platform) Reset() {
@@ -100,6 +101,13 @@ func (x *Platform) GetVariant() string {
return ""
}
+func (x *Platform) GetOsVersion() string {
+ if x != nil {
+ return x.OSVersion
+ }
+ return ""
+}
+
var File_github.com_containerd_containerd_api_types_platform_proto protoreflect.FileDescriptor
var file_github.com_containerd_containerd_api_types_platform_proto_rawDesc = []byte{
@@ -107,17 +115,19 @@ var file_github.com_containerd_containerd_api_types_platform_proto_rawDesc = []b
0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
0x72, 0x64, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x70, 0x6c, 0x61,
0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x10, 0x63, 0x6f, 0x6e,
- 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x22, 0x58, 0x0a,
+ 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x22, 0x77, 0x0a,
0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x73, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x6f, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x72, 0x63,
0x68, 0x69, 0x74, 0x65, 0x63, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
0x0c, 0x61, 0x72, 0x63, 0x68, 0x69, 0x74, 0x65, 0x63, 0x74, 0x75, 0x72, 0x65, 0x12, 0x18, 0x0a,
0x07, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
- 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x42, 0x32, 0x5a, 0x30, 0x67, 0x69, 0x74, 0x68, 0x75,
- 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64,
- 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x61, 0x70, 0x69, 0x2f,
- 0x74, 0x79, 0x70, 0x65, 0x73, 0x3b, 0x74, 0x79, 0x70, 0x65, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f,
- 0x74, 0x6f, 0x33,
+ 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x73, 0x5f, 0x76, 0x65,
+ 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x73, 0x56,
+ 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x32, 0x5a, 0x30, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62,
+ 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f,
+ 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x74,
+ 0x79, 0x70, 0x65, 0x73, 0x3b, 0x74, 0x79, 0x70, 0x65, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x33,
}
var (
diff --git a/vendor/github.com/containerd/containerd/api/types/platform.proto b/vendor/github.com/containerd/containerd/api/types/platform.proto
index b6088251f0..0b9180016d 100644
--- a/vendor/github.com/containerd/containerd/api/types/platform.proto
+++ b/vendor/github.com/containerd/containerd/api/types/platform.proto
@@ -26,4 +26,5 @@ message Platform {
string os = 1;
string architecture = 2;
string variant = 3;
+ string os_version = 4;
}
diff --git a/vendor/github.com/containerd/containerd/api/types/platform_helpers.go b/vendor/github.com/containerd/containerd/api/types/platform_helpers.go
new file mode 100644
index 0000000000..d8c1a68770
--- /dev/null
+++ b/vendor/github.com/containerd/containerd/api/types/platform_helpers.go
@@ -0,0 +1,49 @@
+/*
+ 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 types
+
+import oci "github.com/opencontainers/image-spec/specs-go/v1"
+
+// OCIPlatformToProto converts from a slice of OCI [specs.Platform] to a
+// slice of the protobuf definition [Platform].
+func OCIPlatformToProto(platforms []oci.Platform) []*Platform {
+ ap := make([]*Platform, len(platforms))
+ for i := range platforms {
+ ap[i] = &Platform{
+ OS: platforms[i].OS,
+ OSVersion: platforms[i].OSVersion,
+ Architecture: platforms[i].Architecture,
+ Variant: platforms[i].Variant,
+ }
+ }
+ return ap
+}
+
+// OCIPlatformFromProto converts a slice of the protobuf definition [Platform]
+// to a slice of OCI [specs.Platform].
+func OCIPlatformFromProto(platforms []*Platform) []oci.Platform {
+ op := make([]oci.Platform, len(platforms))
+ for i := range platforms {
+ op[i] = oci.Platform{
+ OS: platforms[i].OS,
+ OSVersion: platforms[i].OSVersion,
+ Architecture: platforms[i].Architecture,
+ Variant: platforms[i].Variant,
+ }
+ }
+ return op
+}
diff --git a/vendor/github.com/containerd/containerd/api/types/sandbox.pb.go b/vendor/github.com/containerd/containerd/api/types/sandbox.pb.go
index 67594f416c..77888bf332 100644
--- a/vendor/github.com/containerd/containerd/api/types/sandbox.pb.go
+++ b/vendor/github.com/containerd/containerd/api/types/sandbox.pb.go
@@ -59,6 +59,8 @@ type Sandbox struct {
UpdatedAt *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
// Extensions allow clients to provide optional blobs that can be handled by runtime.
Extensions map[string]*anypb.Any `protobuf:"bytes,7,rep,name=extensions,proto3" json:"extensions,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+ // Sandboxer is the name of the sandbox controller who manages the sandbox.
+ Sandboxer string `protobuf:"bytes,10,opt,name=sandboxer,proto3" json:"sandboxer,omitempty"`
}
func (x *Sandbox) Reset() {
@@ -142,6 +144,13 @@ func (x *Sandbox) GetExtensions() map[string]*anypb.Any {
return nil
}
+func (x *Sandbox) GetSandboxer() string {
+ if x != nil {
+ return x.Sandboxer
+ }
+ return ""
+}
+
type Sandbox_Runtime struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -211,7 +220,7 @@ var file_github.com_containerd_containerd_api_types_sandbox_proto_rawDesc = []by
0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e,
0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
- 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xee, 0x04, 0x0a, 0x07, 0x53, 0x61, 0x6e,
+ 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x8c, 0x05, 0x0a, 0x07, 0x53, 0x61, 0x6e,
0x64, 0x62, 0x6f, 0x78, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x5f,
0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x61, 0x6e, 0x64, 0x62, 0x6f,
0x78, 0x49, 0x64, 0x12, 0x3b, 0x0a, 0x07, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02,
@@ -236,25 +245,27 @@ var file_github.com_containerd_containerd_api_types_sandbox_proto_rawDesc = []by
0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64,
0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x53, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x2e, 0x45,
0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a,
- 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x4d, 0x0a, 0x07, 0x52, 0x75,
- 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x07, 0x6f, 0x70, 0x74,
- 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f,
- 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79,
- 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62,
- 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61,
- 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
- 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x53, 0x0a, 0x0f, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,
- 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2a, 0x0a, 0x05, 0x76, 0x61, 0x6c,
- 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
- 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x05,
- 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x32, 0x5a, 0x30, 0x67, 0x69, 0x74,
- 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
- 0x72, 0x64, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x61, 0x70,
- 0x69, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x3b, 0x74, 0x79, 0x70, 0x65, 0x73, 0x62, 0x06, 0x70,
- 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x61,
+ 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73,
+ 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x78, 0x65, 0x72, 0x1a, 0x4d, 0x0a, 0x07, 0x52, 0x75, 0x6e, 0x74,
+ 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f,
+ 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x07,
+ 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c,
+ 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
+ 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02,
+ 0x38, 0x01, 0x1a, 0x53, 0x0a, 0x0f, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73,
+ 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x05, 0x76, 0x61,
+ 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x32, 0x5a, 0x30, 0x67, 0x69, 0x74, 0x68, 0x75,
+ 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64,
+ 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f, 0x61, 0x70, 0x69, 0x2f,
+ 0x74, 0x79, 0x70, 0x65, 0x73, 0x3b, 0x74, 0x79, 0x70, 0x65, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x33,
}
var (
diff --git a/vendor/github.com/containerd/containerd/api/types/sandbox.proto b/vendor/github.com/containerd/containerd/api/types/sandbox.proto
index b607706194..b0bf233b95 100644
--- a/vendor/github.com/containerd/containerd/api/types/sandbox.proto
+++ b/vendor/github.com/containerd/containerd/api/types/sandbox.proto
@@ -41,11 +41,14 @@ message Sandbox {
// bundle directory (similary to OCI spec).
google.protobuf.Any spec = 3;
// Labels provides an area to include arbitrary data on containers.
- map labels = 4;
+ map labels = 4;
// CreatedAt is the time the container was first created.
google.protobuf.Timestamp created_at = 5;
// UpdatedAt is the last time the container was mutated.
google.protobuf.Timestamp updated_at = 6;
// Extensions allow clients to provide optional blobs that can be handled by runtime.
map extensions = 7;
+ // Sandboxer is the name of the sandbox controller who manages the sandbox.
+ string sandboxer = 10;
+
}
diff --git a/vendor/github.com/containerd/containerd/archive/tar.go b/vendor/github.com/containerd/containerd/archive/tar.go
index c61f89ec8d..21ab7f8114 100644
--- a/vendor/github.com/containerd/containerd/archive/tar.go
+++ b/vendor/github.com/containerd/containerd/archive/tar.go
@@ -343,7 +343,7 @@ func createTarFile(ctx context.Context, path, extractDir string, hdr *tar.Header
}
}
- //nolint:staticcheck // TypeRegA is deprecated but we may still receive an external tar with TypeRegA
+ //nolint:staticcheck // Ignore SA1019. TypeRegA is deprecated but we may still receive an external tar with TypeRegA
case tar.TypeReg, tar.TypeRegA:
file, err := openFile(path, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, hdrInfo.Mode())
if err != nil {
diff --git a/vendor/github.com/containerd/containerd/content/local/store.go b/vendor/github.com/containerd/containerd/content/local/store.go
index e1baee4c27..efe886014c 100644
--- a/vendor/github.com/containerd/containerd/content/local/store.go
+++ b/vendor/github.com/containerd/containerd/content/local/store.go
@@ -67,6 +67,8 @@ type LabelStore interface {
type store struct {
root string
ls LabelStore
+
+ ensureIngestRootOnce func() error
}
// NewStore returns a local content store
@@ -80,14 +82,13 @@ func NewStore(root string) (content.Store, error) {
// require labels and should use `NewStore`. `NewLabeledStore` is primarily
// useful for tests or standalone implementations.
func NewLabeledStore(root string, ls LabelStore) (content.Store, error) {
- if err := os.MkdirAll(filepath.Join(root, "ingest"), 0777); err != nil {
- return nil, err
- }
-
- return &store{
+ s := &store{
root: root,
ls: ls,
- }, nil
+ }
+
+ s.ensureIngestRootOnce = sync.OnceValue(s.ensureIngestRoot)
+ return s, nil
}
func (s *store) Info(ctx context.Context, dgst digest.Digest) (content.Info, error) {
@@ -294,6 +295,9 @@ func (s *store) Status(ctx context.Context, ref string) (content.Status, error)
func (s *store) ListStatuses(ctx context.Context, fs ...string) ([]content.Status, error) {
fp, err := os.Open(filepath.Join(s.root, "ingest"))
if err != nil {
+ if os.IsNotExist(err) {
+ return nil, nil
+ }
return nil, err
}
@@ -344,6 +348,9 @@ func (s *store) ListStatuses(ctx context.Context, fs ...string) ([]content.Statu
func (s *store) WalkStatusRefs(ctx context.Context, fn func(string) error) error {
fp, err := os.Open(filepath.Join(s.root, "ingest"))
if err != nil {
+ if os.IsNotExist(err) {
+ return nil
+ }
return err
}
@@ -545,6 +552,11 @@ func (s *store) writer(ctx context.Context, ref string, total int64, expected di
)
foundValidIngest := false
+
+ if err := s.ensureIngestRootOnce(); err != nil {
+ return nil, err
+ }
+
// ensure that the ingest path has been created.
if err := os.Mkdir(path, 0755); err != nil {
if !os.IsExist(err) {
@@ -655,6 +667,10 @@ func (s *store) ingestPaths(ref string) (string, string, string) {
return fp, rp, dp
}
+func (s *store) ensureIngestRoot() error {
+ return os.MkdirAll(filepath.Join(s.root, "ingest"), 0777)
+}
+
func readFileString(path string) (string, error) {
p, err := os.ReadFile(path)
return string(p), err
diff --git a/vendor/github.com/containerd/containerd/errdefs/grpc.go b/vendor/github.com/containerd/containerd/errdefs/grpc.go
index 7a9b33e05a..11091b1db0 100644
--- a/vendor/github.com/containerd/containerd/errdefs/grpc.go
+++ b/vendor/github.com/containerd/containerd/errdefs/grpc.go
@@ -45,21 +45,21 @@ func ToGRPC(err error) error {
switch {
case IsInvalidArgument(err):
- return status.Errorf(codes.InvalidArgument, err.Error())
+ return status.Error(codes.InvalidArgument, err.Error())
case IsNotFound(err):
- return status.Errorf(codes.NotFound, err.Error())
+ return status.Error(codes.NotFound, err.Error())
case IsAlreadyExists(err):
- return status.Errorf(codes.AlreadyExists, err.Error())
+ return status.Error(codes.AlreadyExists, err.Error())
case IsFailedPrecondition(err):
- return status.Errorf(codes.FailedPrecondition, err.Error())
+ return status.Error(codes.FailedPrecondition, err.Error())
case IsUnavailable(err):
- return status.Errorf(codes.Unavailable, err.Error())
+ return status.Error(codes.Unavailable, err.Error())
case IsNotImplemented(err):
- return status.Errorf(codes.Unimplemented, err.Error())
+ return status.Error(codes.Unimplemented, err.Error())
case IsCanceled(err):
- return status.Errorf(codes.Canceled, err.Error())
+ return status.Error(codes.Canceled, err.Error())
case IsDeadlineExceeded(err):
- return status.Errorf(codes.DeadlineExceeded, err.Error())
+ return status.Error(codes.DeadlineExceeded, err.Error())
}
return err
diff --git a/vendor/github.com/containerd/containerd/filters/parser.go b/vendor/github.com/containerd/containerd/filters/parser.go
index 32767909b1..790597aaf2 100644
--- a/vendor/github.com/containerd/containerd/filters/parser.go
+++ b/vendor/github.com/containerd/containerd/filters/parser.go
@@ -121,7 +121,7 @@ loop:
case tokenEOF:
break loop
default:
- return nil, p.mkerr(p.scanner.ppos, "unexpected input: %v", string(tok))
+ return nil, p.mkerrf(p.scanner.ppos, "unexpected input: %v", string(tok))
}
}
@@ -226,7 +226,7 @@ func (p *parser) operator() (operator, error) {
case "~=":
return operatorMatches, nil
default:
- return 0, p.mkerr(pos, "unsupported operator %q", s)
+ return 0, p.mkerrf(pos, "unsupported operator %q", s)
}
case tokenIllegal:
return 0, p.mkerr(pos, p.scanner.err)
@@ -257,7 +257,7 @@ func (p *parser) unquote(pos int, s string, allowAlts bool) (string, error) {
uq, err := unquote(s)
if err != nil {
- return "", p.mkerr(pos, "unquoting failed: %v", err)
+ return "", p.mkerrf(pos, "unquoting failed: %v", err)
}
return uq, nil
@@ -281,10 +281,14 @@ func (pe parseError) Error() string {
return fmt.Sprintf("[%s]: %v", pe.input, pe.msg)
}
-func (p *parser) mkerr(pos int, format string, args ...interface{}) error {
+func (p *parser) mkerrf(pos int, format string, args ...interface{}) error {
+ return p.mkerr(pos, fmt.Sprintf(format, args...))
+}
+
+func (p *parser) mkerr(pos int, msg string) error {
return fmt.Errorf("parse error: %w", parseError{
input: p.input,
pos: pos,
- msg: fmt.Sprintf(format, args...),
+ msg: msg,
})
}
diff --git a/vendor/github.com/containerd/containerd/remotes/docker/resolver.go b/vendor/github.com/containerd/containerd/remotes/docker/resolver.go
index 4ca2b921eb..8ce4cccc01 100644
--- a/vendor/github.com/containerd/containerd/remotes/docker/resolver.go
+++ b/vendor/github.com/containerd/containerd/remotes/docker/resolver.go
@@ -25,8 +25,10 @@ import (
"net"
"net/http"
"net/url"
+ "os"
"path"
"strings"
+ "sync"
"github.com/containerd/log"
"github.com/opencontainers/go-digest"
@@ -717,13 +719,18 @@ func NewHTTPFallback(transport http.RoundTripper) http.RoundTripper {
type httpFallback struct {
super http.RoundTripper
host string
+ mu sync.Mutex
}
func (f *httpFallback) RoundTrip(r *http.Request) (*http.Response, error) {
+ f.mu.Lock()
+ fallback := f.host == r.URL.Host
+ f.mu.Unlock()
+
// only fall back if the same host had previously fell back
- if f.host != r.URL.Host {
+ if !fallback {
resp, err := f.super.RoundTrip(r)
- if !isTLSError(err) {
+ if !isTLSError(err) && !isPortError(err, r.URL.Host) {
return resp, err
}
}
@@ -734,8 +741,12 @@ func (f *httpFallback) RoundTrip(r *http.Request) (*http.Response, error) {
plainHTTPRequest := *r
plainHTTPRequest.URL = &plainHTTPUrl
- if f.host != r.URL.Host {
- f.host = r.URL.Host
+ if !fallback {
+ f.mu.Lock()
+ if f.host != r.URL.Host {
+ f.host = r.URL.Host
+ }
+ f.mu.Unlock()
// update body on the second attempt
if r.Body != nil && r.GetBody != nil {
@@ -765,6 +776,18 @@ func isTLSError(err error) bool {
return false
}
+func isPortError(err error, host string) bool {
+ if isConnError(err) || os.IsTimeout(err) {
+ if _, port, _ := net.SplitHostPort(host); port != "" {
+ // Port is specified, will not retry on different port with scheme change
+ return false
+ }
+ return true
+ }
+
+ return false
+}
+
// HTTPFallback is an http.RoundTripper which allows fallback from https to http
// for registry endpoints with configurations for both http and TLS, such as
// defaulted localhost endpoints.
diff --git a/vendor/github.com/containerd/containerd/remotes/docker/resolver_unix.go b/vendor/github.com/containerd/containerd/remotes/docker/resolver_unix.go
new file mode 100644
index 0000000000..4ef0e0062a
--- /dev/null
+++ b/vendor/github.com/containerd/containerd/remotes/docker/resolver_unix.go
@@ -0,0 +1,28 @@
+//go:build !windows
+
+/*
+ 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 docker
+
+import (
+ "errors"
+ "syscall"
+)
+
+func isConnError(err error) bool {
+ return errors.Is(err, syscall.ECONNREFUSED)
+}
diff --git a/vendor/github.com/containerd/containerd/remotes/docker/resolver_windows.go b/vendor/github.com/containerd/containerd/remotes/docker/resolver_windows.go
new file mode 100644
index 0000000000..9c98df04bb
--- /dev/null
+++ b/vendor/github.com/containerd/containerd/remotes/docker/resolver_windows.go
@@ -0,0 +1,30 @@
+//go:build windows
+
+/*
+ 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 docker
+
+import (
+ "errors"
+ "syscall"
+
+ "golang.org/x/sys/windows"
+)
+
+func isConnError(err error) bool {
+ return errors.Is(err, syscall.ECONNREFUSED) || errors.Is(err, windows.WSAECONNREFUSED)
+}
diff --git a/vendor/github.com/containerd/containerd/version/version.go b/vendor/github.com/containerd/containerd/version/version.go
index c61791188d..2439eabf9e 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.23+unknown"
+ Version = "1.7.25+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/containerd/continuity/devices/devices.go b/vendor/github.com/containerd/continuity/devices/devices.go
new file mode 100644
index 0000000000..e4d4a03704
--- /dev/null
+++ b/vendor/github.com/containerd/continuity/devices/devices.go
@@ -0,0 +1,21 @@
+/*
+ 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 devices
+
+import "fmt"
+
+var ErrNotSupported = fmt.Errorf("not supported")
diff --git a/vendor/github.com/containerd/continuity/devices/devices_unix.go b/vendor/github.com/containerd/continuity/devices/devices_unix.go
new file mode 100644
index 0000000000..451979b7ef
--- /dev/null
+++ b/vendor/github.com/containerd/continuity/devices/devices_unix.go
@@ -0,0 +1,75 @@
+//go:build !windows
+
+/*
+ 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 devices
+
+import (
+ "fmt"
+ "os"
+ "syscall"
+
+ "golang.org/x/sys/unix"
+)
+
+func DeviceInfo(fi os.FileInfo) (uint64, uint64, error) {
+ sys, ok := fi.Sys().(*syscall.Stat_t)
+ if !ok {
+ return 0, 0, fmt.Errorf("cannot extract device from os.FileInfo")
+ }
+
+ //nolint:unconvert
+ dev := uint64(sys.Rdev)
+ return uint64(unix.Major(dev)), uint64(unix.Minor(dev)), nil
+}
+
+// mknod provides a shortcut for syscall.Mknod
+func Mknod(p string, mode os.FileMode, maj, min int) error {
+ var (
+ m = syscallMode(mode.Perm())
+ dev uint64
+ )
+
+ if mode&os.ModeDevice != 0 {
+ dev = unix.Mkdev(uint32(maj), uint32(min))
+
+ if mode&os.ModeCharDevice != 0 {
+ m |= unix.S_IFCHR
+ } else {
+ m |= unix.S_IFBLK
+ }
+ } else if mode&os.ModeNamedPipe != 0 {
+ m |= unix.S_IFIFO
+ }
+
+ return mknod(p, m, dev)
+}
+
+// syscallMode returns the syscall-specific mode bits from Go's portable mode bits.
+func syscallMode(i os.FileMode) (o uint32) {
+ o |= uint32(i.Perm())
+ if i&os.ModeSetuid != 0 {
+ o |= unix.S_ISUID
+ }
+ if i&os.ModeSetgid != 0 {
+ o |= unix.S_ISGID
+ }
+ if i&os.ModeSticky != 0 {
+ o |= unix.S_ISVTX
+ }
+ return
+}
diff --git a/vendor/github.com/containerd/continuity/devices/devices_windows.go b/vendor/github.com/containerd/continuity/devices/devices_windows.go
new file mode 100644
index 0000000000..cd551f53e5
--- /dev/null
+++ b/vendor/github.com/containerd/continuity/devices/devices_windows.go
@@ -0,0 +1,26 @@
+/*
+ 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 devices
+
+import (
+ "fmt"
+ "os"
+)
+
+func DeviceInfo(fi os.FileInfo) (uint64, uint64, error) {
+ return 0, 0, fmt.Errorf("cannot get device info on windows: %w", ErrNotSupported)
+}
diff --git a/vendor/github.com/containerd/continuity/devices/mknod_freebsd.go b/vendor/github.com/containerd/continuity/devices/mknod_freebsd.go
new file mode 100644
index 0000000000..9a058ba7ad
--- /dev/null
+++ b/vendor/github.com/containerd/continuity/devices/mknod_freebsd.go
@@ -0,0 +1,25 @@
+//go:build freebsd || dragonfly
+
+/*
+ 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 devices
+
+import "golang.org/x/sys/unix"
+
+func mknod(path string, mode uint32, dev uint64) (err error) {
+ return unix.Mknod(path, mode, dev)
+}
diff --git a/vendor/github.com/containerd/continuity/devices/mknod_unix.go b/vendor/github.com/containerd/continuity/devices/mknod_unix.go
new file mode 100644
index 0000000000..6f6304324c
--- /dev/null
+++ b/vendor/github.com/containerd/continuity/devices/mknod_unix.go
@@ -0,0 +1,25 @@
+//go:build !(freebsd || windows)
+
+/*
+ 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 devices
+
+import "golang.org/x/sys/unix"
+
+func mknod(path string, mode uint32, dev uint64) (err error) {
+ return unix.Mknod(path, mode, int(dev))
+}
diff --git a/vendor/github.com/containerd/continuity/fs/copy.go b/vendor/github.com/containerd/continuity/fs/copy.go
index af3abdd4c4..ad5c835102 100644
--- a/vendor/github.com/containerd/continuity/fs/copy.go
+++ b/vendor/github.com/containerd/continuity/fs/copy.go
@@ -22,7 +22,7 @@ import (
"os"
"path/filepath"
- "github.com/sirupsen/logrus"
+ "github.com/containerd/log"
)
// XAttrErrorHandler transform a non-nil xattr error.
@@ -103,11 +103,6 @@ func copyDirectory(dst, src string, inodes map[uint64]string, o *copyDirOpts) er
}
}
- entries, err := os.ReadDir(src)
- if err != nil {
- return fmt.Errorf("failed to read %s: %w", src, err)
- }
-
if err := copyFileInfo(stat, src, dst); err != nil {
return fmt.Errorf("failed to copy file info for %s: %w", dst, err)
}
@@ -116,7 +111,15 @@ func copyDirectory(dst, src string, inodes map[uint64]string, o *copyDirOpts) er
return fmt.Errorf("failed to copy xattrs: %w", err)
}
- for _, entry := range entries {
+ f, err := os.Open(src)
+ if err != nil {
+ return err
+ }
+ defer f.Close()
+
+ dr := &dirReader{f: f}
+
+ handleEntry := func(entry os.DirEntry) error {
source := filepath.Join(src, entry.Name())
target := filepath.Join(dst, entry.Name())
@@ -130,7 +133,7 @@ func copyDirectory(dst, src string, inodes map[uint64]string, o *copyDirOpts) er
if err := copyDirectory(target, source, inodes, o); err != nil {
return err
}
- continue
+ return nil
case (fileInfo.Mode() & os.ModeType) == 0:
link, err := getLinkSource(target, fileInfo, inodes)
if err != nil {
@@ -158,8 +161,8 @@ func copyDirectory(dst, src string, inodes map[uint64]string, o *copyDirOpts) er
return fmt.Errorf("failed to create irregular file: %w", err)
}
default:
- logrus.Warnf("unsupported mode: %s: %s", source, fileInfo.Mode())
- continue
+ log.L.Warnf("unsupported mode: %s: %s", source, fileInfo.Mode())
+ return nil
}
if err := copyFileInfo(fileInfo, source, target); err != nil {
@@ -169,9 +172,20 @@ func copyDirectory(dst, src string, inodes map[uint64]string, o *copyDirOpts) er
if err := copyXAttrs(target, source, o.xex, o.xeh); err != nil {
return fmt.Errorf("failed to copy xattrs: %w", err)
}
+ return nil
}
- return nil
+ for {
+ entry := dr.Next()
+ if entry == nil {
+ break
+ }
+
+ if err := handleEntry(entry); err != nil {
+ return err
+ }
+ }
+ return dr.Err()
}
// CopyFile copies the source file to the target.
diff --git a/vendor/github.com/containerd/continuity/fs/copy_irregular_unix.go b/vendor/github.com/containerd/continuity/fs/copy_irregular_unix.go
index 99fc8a9651..0478f70699 100644
--- a/vendor/github.com/containerd/continuity/fs/copy_irregular_unix.go
+++ b/vendor/github.com/containerd/continuity/fs/copy_irregular_unix.go
@@ -1,5 +1,4 @@
//go:build !windows && !freebsd
-// +build !windows,!freebsd
/*
Copyright The containerd Authors.
diff --git a/vendor/github.com/containerd/continuity/fs/copy_linux.go b/vendor/github.com/containerd/continuity/fs/copy_linux.go
index 48ac3fbd37..739461cb3a 100644
--- a/vendor/github.com/containerd/continuity/fs/copy_linux.go
+++ b/vendor/github.com/containerd/continuity/fs/copy_linux.go
@@ -17,6 +17,7 @@
package fs
import (
+ "errors"
"fmt"
"os"
"syscall"
@@ -64,6 +65,9 @@ func copyFileInfo(fi os.FileInfo, src, name string) error {
func copyXAttrs(dst, src string, excludes map[string]struct{}, errorHandler XAttrErrorHandler) error {
xattrKeys, err := sysx.LListxattr(src)
if err != nil {
+ if errors.Is(err, unix.ENOTSUP) {
+ return nil
+ }
e := fmt.Errorf("failed to list xattrs on %s: %w", src, err)
if errorHandler != nil {
e = errorHandler(dst, src, "", e)
diff --git a/vendor/github.com/containerd/continuity/fs/copy_nondarwin.go b/vendor/github.com/containerd/continuity/fs/copy_nondarwin.go
index 275b64c04d..5f893d2302 100644
--- a/vendor/github.com/containerd/continuity/fs/copy_nondarwin.go
+++ b/vendor/github.com/containerd/continuity/fs/copy_nondarwin.go
@@ -1,5 +1,4 @@
//go:build !darwin
-// +build !darwin
/*
Copyright The containerd Authors.
diff --git a/vendor/github.com/containerd/continuity/fs/copy_unix.go b/vendor/github.com/containerd/continuity/fs/copy_unix.go
index 2e25914d39..c9199edd68 100644
--- a/vendor/github.com/containerd/continuity/fs/copy_unix.go
+++ b/vendor/github.com/containerd/continuity/fs/copy_unix.go
@@ -1,5 +1,4 @@
//go:build darwin || freebsd || openbsd || netbsd || dragonfly || solaris
-// +build darwin freebsd openbsd netbsd dragonfly solaris
/*
Copyright The containerd Authors.
@@ -20,12 +19,14 @@
package fs
import (
+ "errors"
"fmt"
"os"
"runtime"
"syscall"
"github.com/containerd/continuity/sysx"
+ "golang.org/x/sys/unix"
)
func copyFileInfo(fi os.FileInfo, src, name string) error {
@@ -67,6 +68,9 @@ func copyXAttrs(dst, src string, excludes map[string]struct{}, errorHandler XAtt
// On darwin, character devices do not permit listing xattrs
return nil
}
+ if errors.Is(err, unix.ENOTSUP) {
+ return nil
+ }
e := fmt.Errorf("failed to list xattrs on %s: %w", src, err)
if errorHandler != nil {
e = errorHandler(dst, src, "", e)
diff --git a/vendor/github.com/containerd/continuity/fs/diff.go b/vendor/github.com/containerd/continuity/fs/diff.go
index d2c3c568e0..ea170705bf 100644
--- a/vendor/github.com/containerd/continuity/fs/diff.go
+++ b/vendor/github.com/containerd/continuity/fs/diff.go
@@ -18,11 +18,12 @@ package fs
import (
"context"
+ "errors"
"os"
"path/filepath"
"strings"
- "github.com/sirupsen/logrus"
+ "github.com/containerd/log"
"golang.org/x/sync/errgroup"
)
@@ -100,14 +101,11 @@ type ChangeFunc func(ChangeKind, string, os.FileInfo, error) error
// is to account for timestamp truncation during archiving.
func Changes(ctx context.Context, a, b string, changeFn ChangeFunc) error {
if a == "" {
- logrus.Debugf("Using single walk diff for %s", b)
+ log.G(ctx).Debugf("Using single walk diff for %s", b)
return addDirChanges(ctx, changeFn, b)
- } else if diffOptions := detectDirDiff(b, a); diffOptions != nil {
- logrus.Debugf("Using single walk diff for %s from %s", diffOptions.diffDir, a)
- return diffDirChanges(ctx, changeFn, a, diffOptions)
}
- logrus.Debugf("Using double walk diff for %s from %s", b, a)
+ log.G(ctx).Debugf("Using double walk diff for %s from %s", b, a)
return doubleWalkDiff(ctx, changeFn, a, b)
}
@@ -134,24 +132,53 @@ func addDirChanges(ctx context.Context, changeFn ChangeFunc, root string) error
})
}
+// DiffChangeSource is the source of diff directory.
+type DiffSource int
+
+const (
+ // DiffSourceOverlayFS indicates that a diff directory is from
+ // OverlayFS.
+ DiffSourceOverlayFS DiffSource = iota
+)
+
// diffDirOptions is used when the diff can be directly calculated from
// a diff directory to its base, without walking both trees.
type diffDirOptions struct {
- diffDir string
- skipChange func(string) (bool, error)
- deleteChange func(string, string, os.FileInfo) (string, error)
+ skipChange func(string, os.FileInfo) (bool, error)
+ deleteChange func(string, string, os.FileInfo, ChangeFunc) (bool, error)
}
-// diffDirChanges walks the diff directory and compares changes against the base.
-func diffDirChanges(ctx context.Context, changeFn ChangeFunc, base string, o *diffDirOptions) error {
+// DiffDirChanges walks the diff directory and compares changes against the base.
+//
+// NOTE: If all the children of a dir are removed, or that dir are recreated
+// after remove, we will mark non-existing `.wh..opq` file as deleted. It's
+// unlikely to create explicit whiteout files for all the children and all
+// descendants. And based on OCI spec, it's not possible to create a file or
+// dir with a name beginning with `.wh.`. So, after `.wh..opq` file has been
+// deleted, the ChangeFunc, the receiver will add whiteout prefix to create a
+// opaque whiteout `.wh..wh..opq`.
+//
+// REF: https://github.com/opencontainers/image-spec/blob/v1.0/layer.md#whiteouts
+func DiffDirChanges(ctx context.Context, baseDir, diffDir string, source DiffSource, changeFn ChangeFunc) error {
+ var o *diffDirOptions
+
+ switch source {
+ case DiffSourceOverlayFS:
+ o = &diffDirOptions{
+ deleteChange: overlayFSWhiteoutConvert,
+ }
+ default:
+ return errors.New("unknown diff change source")
+ }
+
changedDirs := make(map[string]struct{})
- return filepath.Walk(o.diffDir, func(path string, f os.FileInfo, err error) error {
+ return filepath.Walk(diffDir, func(path string, f os.FileInfo, err error) error {
if err != nil {
return err
}
// Rebase path
- path, err = filepath.Rel(o.diffDir, path)
+ path, err = filepath.Rel(diffDir, path)
if err != nil {
return err
}
@@ -163,38 +190,45 @@ func diffDirChanges(ctx context.Context, changeFn ChangeFunc, base string, o *di
return nil
}
- // TODO: handle opaqueness, start new double walker at this
- // location to get deletes, and skip tree in single walker
-
if o.skipChange != nil {
- if skip, err := o.skipChange(path); skip {
+ if skip, err := o.skipChange(path, f); skip {
return err
}
}
var kind ChangeKind
- deletedFile, err := o.deleteChange(o.diffDir, path, f)
- if err != nil {
- return err
+ deletedFile := false
+
+ if o.deleteChange != nil {
+ deletedFile, err = o.deleteChange(diffDir, path, f, changeFn)
+ if err != nil {
+ return err
+ }
+
+ _, err = os.Stat(filepath.Join(baseDir, path))
+ if err != nil {
+ if !os.IsNotExist(err) {
+ return err
+ }
+ deletedFile = false
+ }
}
// Find out what kind of modification happened
- if deletedFile != "" {
- path = deletedFile
+ if deletedFile {
kind = ChangeKindDelete
- f = nil
} else {
// Otherwise, the file was added
kind = ChangeKindAdd
- // ...Unless it already existed in a base, in which case, it's a modification
- stat, err := os.Stat(filepath.Join(base, path))
+ // ...Unless it already existed in a baseDir, in which case, it's a modification
+ stat, err := os.Stat(filepath.Join(baseDir, path))
if err != nil && !os.IsNotExist(err) {
return err
}
if err == nil {
- // The file existed in the base, so that's a modification
+ // The file existed in the baseDir, so that's a modification
// However, if it's a directory, maybe it wasn't actually modified.
// If you modify /foo/bar/baz, then /foo will be part of the changed files only because it's the parent of bar
@@ -215,10 +249,12 @@ func diffDirChanges(ctx context.Context, changeFn ChangeFunc, base string, o *di
if f.IsDir() {
changedDirs[path] = struct{}{}
}
+
if kind == ChangeKindAdd || kind == ChangeKindDelete {
parent := filepath.Dir(path)
+
if _, ok := changedDirs[parent]; !ok && parent != "/" {
- pi, err := os.Stat(filepath.Join(o.diffDir, parent))
+ pi, err := os.Stat(filepath.Join(diffDir, parent))
if err := changeFn(ChangeKindModify, parent, pi, err); err != nil {
return err
}
@@ -226,6 +262,9 @@ func diffDirChanges(ctx context.Context, changeFn ChangeFunc, base string, o *di
}
}
+ if kind == ChangeKindDelete {
+ f = nil
+ }
return changeFn(kind, path, f, nil)
})
}
diff --git a/vendor/github.com/containerd/continuity/fs/diff_linux.go b/vendor/github.com/containerd/continuity/fs/diff_linux.go
new file mode 100644
index 0000000000..376f13c2bd
--- /dev/null
+++ b/vendor/github.com/containerd/continuity/fs/diff_linux.go
@@ -0,0 +1,101 @@
+/*
+ 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 fs
+
+import (
+ "errors"
+ "fmt"
+ "os"
+ "path/filepath"
+ "syscall"
+
+ "github.com/containerd/continuity/devices"
+ "github.com/containerd/continuity/sysx"
+
+ "golang.org/x/sys/unix"
+)
+
+const (
+ // whiteoutPrefix prefix means file is a whiteout. If this is followed
+ // by a filename this means that file has been removed from the base
+ // layer.
+ //
+ // See https://github.com/opencontainers/image-spec/blob/master/layer.md#whiteouts
+ whiteoutPrefix = ".wh."
+)
+
+// overlayFSWhiteoutConvert detects whiteouts and opaque directories.
+//
+// It returns deleted indicator if the file is a character device with 0/0
+// device number. And call changeFn with ChangeKindDelete for opaque
+// directories.
+//
+// Check: https://www.kernel.org/doc/Documentation/filesystems/overlayfs.txt
+func overlayFSWhiteoutConvert(diffDir, path string, f os.FileInfo, changeFn ChangeFunc) (deleted bool, _ error) {
+ if f.Mode()&os.ModeCharDevice != 0 {
+ if _, ok := f.Sys().(*syscall.Stat_t); !ok {
+ return false, nil
+ }
+
+ maj, min, err := devices.DeviceInfo(f)
+ if err != nil {
+ return false, err
+ }
+ return (maj == 0 && min == 0), nil
+ }
+
+ if f.IsDir() {
+ originalPath := filepath.Join(diffDir, path)
+ opaque, err := getOpaqueValue(originalPath)
+ if err != nil {
+ if errors.Is(err, unix.ENODATA) {
+ return false, nil
+ }
+ return false, err
+ }
+
+ if len(opaque) == 1 && opaque[0] == 'y' {
+ opaqueDirPath := filepath.Join(path, whiteoutPrefix+".opq")
+ return false, changeFn(ChangeKindDelete, opaqueDirPath, nil, nil)
+ }
+ }
+ return false, nil
+}
+
+// getOpaqueValue returns opaque value for a given file.
+func getOpaqueValue(filePath string) ([]byte, error) {
+ for _, xattr := range []string{
+ "trusted.overlay.opaque",
+ // TODO(fuweid):
+ //
+ // user.overlay.* is available since 5.11. We should check
+ // kernel version before read.
+ //
+ // REF: https://github.com/torvalds/linux/commit/2d2f2d7322ff43e0fe92bf8cccdc0b09449bf2e1
+ "user.overlay.opaque",
+ } {
+ opaque, err := sysx.LGetxattr(filePath, xattr)
+ if err != nil {
+ if errors.Is(err, unix.ENODATA) || errors.Is(err, unix.ENOTSUP) {
+ continue
+ }
+ return nil, fmt.Errorf("failed to retrieve %s attr: %w", xattr, err)
+ }
+ return opaque, nil
+ }
+ return nil, unix.ENODATA
+}
diff --git a/vendor/github.com/containerd/continuity/fs/diff_nonlinux.go b/vendor/github.com/containerd/continuity/fs/diff_nonlinux.go
new file mode 100644
index 0000000000..4402ce96c6
--- /dev/null
+++ b/vendor/github.com/containerd/continuity/fs/diff_nonlinux.go
@@ -0,0 +1,28 @@
+//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 fs
+
+import (
+ "errors"
+ "os"
+)
+
+func overlayFSWhiteoutConvert(string, string, os.FileInfo, ChangeFunc) (bool, error) {
+ return false, errors.New("unsupported")
+}
diff --git a/vendor/github.com/containerd/continuity/fs/diff_unix.go b/vendor/github.com/containerd/continuity/fs/diff_unix.go
index 5de9b6b48f..fe1b35dc68 100644
--- a/vendor/github.com/containerd/continuity/fs/diff_unix.go
+++ b/vendor/github.com/containerd/continuity/fs/diff_unix.go
@@ -1,5 +1,4 @@
//go:build !windows
-// +build !windows
/*
Copyright The containerd Authors.
@@ -28,16 +27,6 @@ import (
"github.com/containerd/continuity/sysx"
)
-// detectDirDiff returns diff dir options if a directory could
-// be found in the mount info for upper which is the direct
-// diff with the provided lower directory
-func detectDirDiff(upper, lower string) *diffDirOptions {
- // TODO: get mount options for upper
- // TODO: detect AUFS
- // TODO: detect overlay
- return nil
-}
-
// compareSysStat returns whether the stats are equivalent,
// whether the files are considered the same file, and
// an error
diff --git a/vendor/github.com/containerd/continuity/fs/diff_windows.go b/vendor/github.com/containerd/continuity/fs/diff_windows.go
index 4bfa72d3a1..63580c2398 100644
--- a/vendor/github.com/containerd/continuity/fs/diff_windows.go
+++ b/vendor/github.com/containerd/continuity/fs/diff_windows.go
@@ -22,10 +22,6 @@ import (
"golang.org/x/sys/windows"
)
-func detectDirDiff(upper, lower string) *diffDirOptions {
- return nil
-}
-
func compareSysStat(s1, s2 interface{}) (bool, error) {
f1, ok := s1.(windows.Win32FileAttributeData)
if !ok {
diff --git a/vendor/github.com/containerd/continuity/fs/dir.go b/vendor/github.com/containerd/continuity/fs/dir.go
new file mode 100644
index 0000000000..6c7e32e95d
--- /dev/null
+++ b/vendor/github.com/containerd/continuity/fs/dir.go
@@ -0,0 +1,53 @@
+/*
+ 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 fs
+
+import (
+ "io"
+ "os"
+)
+
+type dirReader struct {
+ buf []os.DirEntry
+ f *os.File
+ err error
+}
+
+func (r *dirReader) Next() os.DirEntry {
+ if len(r.buf) == 0 {
+ infos, err := r.f.ReadDir(32)
+ if err != nil {
+ if err != io.EOF {
+ r.err = err
+ }
+ return nil
+ }
+ r.buf = infos
+ }
+
+ if len(r.buf) == 0 {
+ return nil
+ }
+ out := r.buf[0]
+ r.buf[0] = nil
+ r.buf = r.buf[1:]
+ return out
+}
+
+func (r *dirReader) Err() error {
+ return r.err
+}
diff --git a/vendor/github.com/containerd/continuity/fs/dtype_linux.go b/vendor/github.com/containerd/continuity/fs/dtype_linux.go
index 9f55e79804..f38a91d179 100644
--- a/vendor/github.com/containerd/continuity/fs/dtype_linux.go
+++ b/vendor/github.com/containerd/continuity/fs/dtype_linux.go
@@ -1,5 +1,4 @@
//go:build linux
-// +build linux
/*
Copyright The containerd Authors.
diff --git a/vendor/github.com/containerd/continuity/fs/du_unix.go b/vendor/github.com/containerd/continuity/fs/du_unix.go
index 51a08a1d7f..fbd4a002aa 100644
--- a/vendor/github.com/containerd/continuity/fs/du_unix.go
+++ b/vendor/github.com/containerd/continuity/fs/du_unix.go
@@ -1,5 +1,4 @@
//go:build !windows
-// +build !windows
/*
Copyright The containerd Authors.
diff --git a/vendor/github.com/containerd/continuity/fs/du_windows.go b/vendor/github.com/containerd/continuity/fs/du_windows.go
index ea721f8265..48494e2cac 100644
--- a/vendor/github.com/containerd/continuity/fs/du_windows.go
+++ b/vendor/github.com/containerd/continuity/fs/du_windows.go
@@ -1,5 +1,4 @@
//go:build windows
-// +build windows
/*
Copyright The containerd Authors.
diff --git a/vendor/github.com/containerd/continuity/fs/hardlink_unix.go b/vendor/github.com/containerd/continuity/fs/hardlink_unix.go
index cce8902f3b..e0e22f62a0 100644
--- a/vendor/github.com/containerd/continuity/fs/hardlink_unix.go
+++ b/vendor/github.com/containerd/continuity/fs/hardlink_unix.go
@@ -1,5 +1,4 @@
//go:build !windows
-// +build !windows
/*
Copyright The containerd Authors.
diff --git a/vendor/github.com/containerd/continuity/fs/magic_linux.go b/vendor/github.com/containerd/continuity/fs/magic_linux.go
new file mode 100644
index 0000000000..3976463de8
--- /dev/null
+++ b/vendor/github.com/containerd/continuity/fs/magic_linux.go
@@ -0,0 +1,123 @@
+/*
+ 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.
+*/
+
+/*
+Copyright 2013-2018 Docker, Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ https://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.
+*/
+
+// Original source: https://github.com/moby/moby/blob/v26.0.0/daemon/graphdriver/driver_linux.go
+
+package fs
+
+import (
+ "path/filepath"
+ "syscall"
+)
+
+// Magic unsigned id of the filesystem in use.
+type Magic uint32
+
+const (
+ // MagicUnsupported is a predefined constant value other than a valid filesystem id.
+ MagicUnsupported = Magic(0x00000000)
+)
+
+const (
+ // MagicAufs filesystem id for Aufs
+ MagicAufs = Magic(0x61756673)
+ // MagicBtrfs filesystem id for Btrfs
+ MagicBtrfs = Magic(0x9123683E)
+ // MagicCramfs filesystem id for Cramfs
+ MagicCramfs = Magic(0x28cd3d45)
+ // MagicEcryptfs filesystem id for eCryptfs
+ MagicEcryptfs = Magic(0xf15f)
+ // MagicExtfs filesystem id for Extfs
+ MagicExtfs = Magic(0x0000EF53)
+ // MagicF2fs filesystem id for F2fs
+ MagicF2fs = Magic(0xF2F52010)
+ // MagicGPFS filesystem id for GPFS
+ MagicGPFS = Magic(0x47504653)
+ // MagicJffs2Fs filesystem if for Jffs2Fs
+ MagicJffs2Fs = Magic(0x000072b6)
+ // MagicJfs filesystem id for Jfs
+ MagicJfs = Magic(0x3153464a)
+ // MagicNfsFs filesystem id for NfsFs
+ MagicNfsFs = Magic(0x00006969)
+ // MagicRAMFs filesystem id for RamFs
+ MagicRAMFs = Magic(0x858458f6)
+ // MagicReiserFs filesystem id for ReiserFs
+ MagicReiserFs = Magic(0x52654973)
+ // MagicSmbFs filesystem id for SmbFs
+ MagicSmbFs = Magic(0x0000517B)
+ // MagicSquashFs filesystem id for SquashFs
+ MagicSquashFs = Magic(0x73717368)
+ // MagicTmpFs filesystem id for TmpFs
+ MagicTmpFs = Magic(0x01021994)
+ // MagicVxFS filesystem id for VxFs
+ MagicVxFS = Magic(0xa501fcf5)
+ // MagicXfs filesystem id for Xfs
+ MagicXfs = Magic(0x58465342)
+ // MagicZfs filesystem id for Zfs
+ MagicZfs = Magic(0x2fc12fc1)
+ // MagicOverlay filesystem id for overlay
+ MagicOverlay = Magic(0x794C7630)
+)
+
+var (
+ // FsNames maps filesystem id to name of the filesystem.
+ FsNames = map[Magic]string{
+ MagicAufs: "aufs",
+ MagicBtrfs: "btrfs",
+ MagicCramfs: "cramfs",
+ MagicExtfs: "extfs",
+ MagicF2fs: "f2fs",
+ MagicGPFS: "gpfs",
+ MagicJffs2Fs: "jffs2",
+ MagicJfs: "jfs",
+ MagicNfsFs: "nfs",
+ MagicOverlay: "overlayfs",
+ MagicRAMFs: "ramfs",
+ MagicReiserFs: "reiserfs",
+ MagicSmbFs: "smb",
+ MagicSquashFs: "squashfs",
+ MagicTmpFs: "tmpfs",
+ MagicUnsupported: "unsupported",
+ MagicVxFS: "vxfs",
+ MagicXfs: "xfs",
+ MagicZfs: "zfs",
+ }
+)
+
+// GetMagic returns the filesystem id given the path.
+func GetMagic(rootpath string) (Magic, error) {
+ var buf syscall.Statfs_t
+ if err := syscall.Statfs(filepath.Dir(rootpath), &buf); err != nil {
+ return 0, err
+ }
+ return Magic(buf.Type), nil
+}
diff --git a/vendor/github.com/containerd/continuity/fs/stat_darwinbsd.go b/vendor/github.com/containerd/continuity/fs/stat_darwinbsd.go
index dbdb90ec83..7a34eda3ca 100644
--- a/vendor/github.com/containerd/continuity/fs/stat_darwinbsd.go
+++ b/vendor/github.com/containerd/continuity/fs/stat_darwinbsd.go
@@ -1,5 +1,4 @@
//go:build darwin || freebsd || netbsd
-// +build darwin freebsd netbsd
/*
Copyright The containerd Authors.
diff --git a/vendor/github.com/containerd/continuity/fs/stat_atim.go b/vendor/github.com/containerd/continuity/fs/stat_unix.go
similarity index 60%
rename from vendor/github.com/containerd/continuity/fs/stat_atim.go
rename to vendor/github.com/containerd/continuity/fs/stat_unix.go
index ade7bec6c9..0edebdf1d7 100644
--- a/vendor/github.com/containerd/continuity/fs/stat_atim.go
+++ b/vendor/github.com/containerd/continuity/fs/stat_unix.go
@@ -1,5 +1,4 @@
//go:build linux || openbsd || dragonfly || solaris
-// +build linux openbsd dragonfly solaris
/*
Copyright The containerd Authors.
@@ -20,10 +19,36 @@
package fs
import (
+ "fmt"
+ "io/fs"
"syscall"
"time"
)
+func Atime(st fs.FileInfo) (time.Time, error) {
+ stSys, ok := st.Sys().(*syscall.Stat_t)
+ if !ok {
+ return time.Time{}, fmt.Errorf("expected st.Sys() to be *syscall.Stat_t, got %T", st.Sys())
+ }
+ return StatATimeAsTime(stSys), nil
+}
+
+func Ctime(st fs.FileInfo) (time.Time, error) {
+ stSys, ok := st.Sys().(*syscall.Stat_t)
+ if !ok {
+ return time.Time{}, fmt.Errorf("expected st.Sys() to be *syscall.Stat_t, got %T", st.Sys())
+ }
+ return time.Unix(stSys.Atim.Unix()), nil
+}
+
+func Mtime(st fs.FileInfo) (time.Time, error) {
+ stSys, ok := st.Sys().(*syscall.Stat_t)
+ if !ok {
+ return time.Time{}, fmt.Errorf("expected st.Sys() to be *syscall.Stat_t, got %T", st.Sys())
+ }
+ return time.Unix(stSys.Mtim.Unix()), nil
+}
+
// StatAtime returns the Atim
func StatAtime(st *syscall.Stat_t) syscall.Timespec {
return st.Atim
diff --git a/vendor/github.com/containerd/continuity/fs/stat_windows.go b/vendor/github.com/containerd/continuity/fs/stat_windows.go
new file mode 100644
index 0000000000..193340f25d
--- /dev/null
+++ b/vendor/github.com/containerd/continuity/fs/stat_windows.go
@@ -0,0 +1,33 @@
+/*
+ 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 fs
+
+import (
+ "fmt"
+ "io/fs"
+ "syscall"
+ "time"
+)
+
+func Atime(st fs.FileInfo) (time.Time, error) {
+ stSys, ok := st.Sys().(*syscall.Win32FileAttributeData)
+ if !ok {
+ return time.Time{}, fmt.Errorf("expected st.Sys() to be *syscall.Win32FileAttributeData, got %T", st.Sys())
+ }
+ // ref: https://github.com/golang/go/blob/go1.19.2/src/os/types_windows.go#L230
+ return time.Unix(0, stSys.LastAccessTime.Nanoseconds()), nil
+}
diff --git a/vendor/github.com/containerd/continuity/fs/utimesnanoat.go b/vendor/github.com/containerd/continuity/fs/utimesnanoat.go
index 5435398d48..cc66a5353e 100644
--- a/vendor/github.com/containerd/continuity/fs/utimesnanoat.go
+++ b/vendor/github.com/containerd/continuity/fs/utimesnanoat.go
@@ -1,5 +1,4 @@
//go:build !(windows || linux)
-// +build !windows,!linux
/*
Copyright The containerd Authors.
diff --git a/vendor/github.com/containerd/continuity/sysx/nodata_unix.go b/vendor/github.com/containerd/continuity/sysx/nodata_unix.go
index e78f77f6a1..b5720ac92d 100644
--- a/vendor/github.com/containerd/continuity/sysx/nodata_unix.go
+++ b/vendor/github.com/containerd/continuity/sysx/nodata_unix.go
@@ -1,5 +1,4 @@
//go:build !(linux || solaris || windows)
-// +build !linux,!solaris,!windows
/*
Copyright The containerd Authors.
diff --git a/vendor/github.com/containerd/continuity/sysx/xattr.go b/vendor/github.com/containerd/continuity/sysx/xattr.go
index 1497398553..eb1bbd9850 100644
--- a/vendor/github.com/containerd/continuity/sysx/xattr.go
+++ b/vendor/github.com/containerd/continuity/sysx/xattr.go
@@ -1,5 +1,4 @@
//go:build linux || darwin
-// +build linux darwin
/*
Copyright The containerd Authors.
diff --git a/vendor/github.com/containerd/continuity/sysx/xattr_unsupported.go b/vendor/github.com/containerd/continuity/sysx/xattr_unsupported.go
index da1e940d62..9e0963bf25 100644
--- a/vendor/github.com/containerd/continuity/sysx/xattr_unsupported.go
+++ b/vendor/github.com/containerd/continuity/sysx/xattr_unsupported.go
@@ -1,5 +1,4 @@
//go:build !linux && !darwin
-// +build !linux,!darwin
/*
Copyright The containerd Authors.
diff --git a/vendor/github.com/containers/common/pkg/capabilities/capabilities.go b/vendor/github.com/containers/common/pkg/capabilities/capabilities.go
index 43fd2c1b58..371fbba9a1 100644
--- a/vendor/github.com/containers/common/pkg/capabilities/capabilities.go
+++ b/vendor/github.com/containers/common/pkg/capabilities/capabilities.go
@@ -9,20 +9,13 @@ import (
"errors"
"fmt"
"slices"
- "sort"
"strings"
"sync"
- "github.com/syndtr/gocapability/capability"
+ "github.com/moby/sys/capability"
)
var (
- // Used internally and populated during init().
- capabilityList []string
-
- // Used internally and populated during init().
- capsList []capability.Cap
-
// ErrUnknownCapability is thrown when an unknown capability is processed.
ErrUnknownCapability = errors.New("unknown capability")
@@ -35,67 +28,67 @@ var (
// Useful on the CLI for `--cap-add=all` etc.
const All = "ALL"
-func getCapName(c capability.Cap) string {
+func capName(c capability.Cap) string {
return "CAP_" + strings.ToUpper(c.String())
}
-func init() {
- last := capability.CAP_LAST_CAP
- // hack for RHEL6 which has no /proc/sys/kernel/cap_last_cap
- if last == capability.Cap(63) {
- last = capability.CAP_BLOCK_SUSPEND
+// capStrList returns all capabilities supported by the currently running kernel,
+// or an error if the list can not be obtained.
+var capStrList = sync.OnceValues(func() ([]string, error) {
+ list, err := capability.ListSupported()
+ if err != nil {
+ return nil, err
}
- for _, cap := range capability.List() {
- if cap > last {
- continue
- }
- capsList = append(capsList, cap)
- capabilityList = append(capabilityList, getCapName(cap))
- sort.Strings(capabilityList)
+ caps := make([]string, len(list))
+ for i, c := range list {
+ caps[i] = capName(c)
}
-}
-
-var (
- boundingSetOnce sync.Once
- boundingSetRet []string
- boundingSetErr error
-)
+ slices.Sort(caps)
+ return caps, nil
+})
-// BoundingSet returns the capabilities in the current bounding set
+// BoundingSet returns the capabilities in the current bounding set.
func BoundingSet() ([]string, error) {
- boundingSetOnce.Do(func() {
- currentCaps, err := capability.NewPid2(0)
- if err != nil {
- boundingSetErr = err
- return
- }
- err = currentCaps.Load()
- if err != nil {
- boundingSetErr = err
- return
- }
- var r []string
- for _, c := range capsList {
- if !currentCaps.Get(capability.BOUNDING, c) {
- continue
- }
- r = append(r, getCapName(c))
- }
- boundingSetRet = r
- sort.Strings(boundingSetRet)
- boundingSetErr = err
- })
- return boundingSetRet, boundingSetErr
+ return boundingSet()
}
-// AllCapabilities returns all known capabilities.
+var boundingSet = sync.OnceValues(func() ([]string, error) {
+ currentCaps, err := capability.NewPid2(0)
+ if err != nil {
+ return nil, err
+ }
+ err = currentCaps.Load()
+ if err != nil {
+ return nil, err
+ }
+ list, err := capability.ListSupported()
+ if err != nil {
+ return nil, err
+ }
+ var r []string
+ for _, c := range list {
+ if !currentCaps.Get(capability.BOUNDING, c) {
+ continue
+ }
+ r = append(r, capName(c))
+ }
+ slices.Sort(r)
+ return r, nil
+})
+
+// AllCapabilities returns all capabilities supported by the running kernel.
func AllCapabilities() []string {
- return capabilityList
+ list, _ := capStrList()
+ return list
}
// NormalizeCapabilities normalizes caps by adding a "CAP_" prefix (if not yet
// present).
func NormalizeCapabilities(caps []string) ([]string, error) {
+ all, err := capStrList()
+ if err != nil {
+ return nil, err
+ }
normalized := make([]string, 0, len(caps))
for _, c := range caps {
c = strings.ToUpper(c)
@@ -106,19 +99,23 @@ func NormalizeCapabilities(caps []string) ([]string, error) {
if !strings.HasPrefix(c, "CAP_") {
c = "CAP_" + c
}
- if !slices.Contains(capabilityList, c) {
+ if !slices.Contains(all, c) {
return nil, fmt.Errorf("%q: %w", c, ErrUnknownCapability)
}
normalized = append(normalized, c)
}
- sort.Strings(normalized)
+ slices.Sort(normalized)
return normalized, nil
}
// ValidateCapabilities validates if caps only contains valid capabilities.
func ValidateCapabilities(caps []string) error {
+ all, err := capStrList()
+ if err != nil {
+ return err
+ }
for _, c := range caps {
- if !slices.Contains(capabilityList, c) {
+ if !slices.Contains(all, c) {
return fmt.Errorf("%q: %w", c, ErrUnknownCapability)
}
}
@@ -155,7 +152,7 @@ func MergeCapabilities(base, adds, drops []string) ([]string, error) {
return nil, errors.New("adding all caps and removing all caps not allowed")
}
// "Drop" all capabilities; return what's in capAdd instead
- sort.Strings(capAdd)
+ slices.Sort(capAdd)
return capAdd, nil
}
@@ -195,6 +192,6 @@ func MergeCapabilities(base, adds, drops []string) ([]string, error) {
}
caps = append(caps, cap)
}
- sort.Strings(caps)
+ slices.Sort(caps)
return caps, nil
}
diff --git a/vendor/github.com/docker/cli/cli/config/credentials/file_store.go b/vendor/github.com/docker/cli/cli/config/credentials/file_store.go
index 3b8955994d..9540628150 100644
--- a/vendor/github.com/docker/cli/cli/config/credentials/file_store.go
+++ b/vendor/github.com/docker/cli/cli/config/credentials/file_store.go
@@ -25,8 +25,13 @@ func NewFileStore(file store) Store {
return &fileStore{file: file}
}
-// Erase removes the given credentials from the file store.
+// Erase removes the given credentials from the file store.This function is
+// idempotent and does not update the file if credentials did not change.
func (c *fileStore) Erase(serverAddress string) error {
+ if _, exists := c.file.GetAuthConfigs()[serverAddress]; !exists {
+ // nothing to do; no credentials found for the given serverAddress
+ return nil
+ }
delete(c.file.GetAuthConfigs(), serverAddress)
return c.file.Save()
}
@@ -52,9 +57,14 @@ func (c *fileStore) GetAll() (map[string]types.AuthConfig, error) {
return c.file.GetAuthConfigs(), nil
}
-// Store saves the given credentials in the file store.
+// Store saves the given credentials in the file store. This function is
+// idempotent and does not update the file if credentials did not change.
func (c *fileStore) Store(authConfig types.AuthConfig) error {
authConfigs := c.file.GetAuthConfigs()
+ if oldAuthConfig, ok := authConfigs[authConfig.ServerAddress]; ok && oldAuthConfig == authConfig {
+ // Credentials didn't change, so skip updating the configuration file.
+ return nil
+ }
authConfigs[authConfig.ServerAddress] = authConfig
return c.file.Save()
}
diff --git a/vendor/github.com/go-git/go-billy/v5/Makefile b/vendor/github.com/go-git/go-billy/v5/Makefile
index 74dad8b491..3c95ddeaac 100644
--- a/vendor/github.com/go-git/go-billy/v5/Makefile
+++ b/vendor/github.com/go-git/go-billy/v5/Makefile
@@ -1,6 +1,7 @@
# Go parameters
GOCMD = go
GOTEST = $(GOCMD) test
+WASIRUN_WRAPPER := $(CURDIR)/scripts/wasirun-wrapper
.PHONY: test
test:
@@ -9,3 +10,9 @@ test:
test-coverage:
echo "" > $(COVERAGE_REPORT); \
$(GOTEST) -coverprofile=$(COVERAGE_REPORT) -coverpkg=./... -covermode=$(COVERAGE_MODE) ./...
+
+.PHONY: wasitest
+wasitest: export GOARCH=wasm
+wasitest: export GOOS=wasip1
+wasitest:
+ $(GOTEST) -exec $(WASIRUN_WRAPPER) ./...
diff --git a/vendor/github.com/go-git/go-billy/v5/fs.go b/vendor/github.com/go-git/go-billy/v5/fs.go
index a9efccdeb2..d86f9d8236 100644
--- a/vendor/github.com/go-git/go-billy/v5/fs.go
+++ b/vendor/github.com/go-git/go-billy/v5/fs.go
@@ -164,6 +164,8 @@ type File interface {
// Name returns the name of the file as presented to Open.
Name() string
io.Writer
+ // TODO: Add io.WriterAt for v6
+ // io.WriterAt
io.Reader
io.ReaderAt
io.Seeker
diff --git a/vendor/github.com/go-git/go-git/v5/plumbing/format/gitignore/dir.go b/vendor/github.com/go-git/go-git/v5/plumbing/format/gitignore/dir.go
index d8fb30c166..92df5a3de7 100644
--- a/vendor/github.com/go-git/go-git/v5/plumbing/format/gitignore/dir.go
+++ b/vendor/github.com/go-git/go-git/v5/plumbing/format/gitignore/dir.go
@@ -64,6 +64,10 @@ func ReadPatterns(fs billy.Filesystem, path []string) (ps []Pattern, err error)
for _, fi := range fis {
if fi.IsDir() && fi.Name() != gitDir {
+ if NewMatcher(ps).Match(append(path, fi.Name()), true) {
+ continue
+ }
+
var subps []Pattern
subps, err = ReadPatterns(fs, append(path, fi.Name()))
if err != nil {
@@ -116,7 +120,7 @@ func loadPatterns(fs billy.Filesystem, path string) (ps []Pattern, err error) {
return
}
-// LoadGlobalPatterns loads gitignore patterns from from the gitignore file
+// LoadGlobalPatterns loads gitignore patterns from the gitignore file
// declared in a user's ~/.gitconfig file. If the ~/.gitconfig file does not
// exist the function will return nil. If the core.excludesfile property
// is not declared, the function will return nil. If the file pointed to by
@@ -132,7 +136,7 @@ func LoadGlobalPatterns(fs billy.Filesystem) (ps []Pattern, err error) {
return loadPatterns(fs, fs.Join(home, gitconfigFile))
}
-// LoadSystemPatterns loads gitignore patterns from from the gitignore file
+// LoadSystemPatterns loads gitignore patterns from the gitignore file
// declared in a system's /etc/gitconfig file. If the /etc/gitconfig file does
// not exist the function will return nil. If the core.excludesfile property
// is not declared, the function will return nil. If the file pointed to by
diff --git a/vendor/github.com/google/btree/.travis.yml b/vendor/github.com/google/btree/.travis.yml
new file mode 100644
index 0000000000..4f2ee4d973
--- /dev/null
+++ b/vendor/github.com/google/btree/.travis.yml
@@ -0,0 +1 @@
+language: go
diff --git a/vendor/github.com/google/btree/LICENSE b/vendor/github.com/google/btree/LICENSE
new file mode 100644
index 0000000000..d645695673
--- /dev/null
+++ b/vendor/github.com/google/btree/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/google/btree/README.md b/vendor/github.com/google/btree/README.md
new file mode 100644
index 0000000000..6062a4dacd
--- /dev/null
+++ b/vendor/github.com/google/btree/README.md
@@ -0,0 +1,12 @@
+# BTree implementation for Go
+
+
+
+This package provides an in-memory B-Tree implementation for Go, useful as
+an ordered, mutable data structure.
+
+The API is based off of the wonderful
+http://godoc.org/github.com/petar/GoLLRB/llrb, and is meant to allow btree to
+act as a drop-in replacement for gollrb trees.
+
+See http://godoc.org/github.com/google/btree for documentation.
diff --git a/vendor/github.com/google/btree/btree.go b/vendor/github.com/google/btree/btree.go
new file mode 100644
index 0000000000..b83acdbc6d
--- /dev/null
+++ b/vendor/github.com/google/btree/btree.go
@@ -0,0 +1,890 @@
+// Copyright 2014 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Package btree implements in-memory B-Trees of arbitrary degree.
+//
+// btree implements an in-memory B-Tree for use as an ordered data structure.
+// It is not meant for persistent storage solutions.
+//
+// It has a flatter structure than an equivalent red-black or other binary tree,
+// which in some cases yields better memory usage and/or performance.
+// See some discussion on the matter here:
+// http://google-opensource.blogspot.com/2013/01/c-containers-that-save-memory-and-time.html
+// Note, though, that this project is in no way related to the C++ B-Tree
+// implementation written about there.
+//
+// Within this tree, each node contains a slice of items and a (possibly nil)
+// slice of children. For basic numeric values or raw structs, this can cause
+// efficiency differences when compared to equivalent C++ template code that
+// stores values in arrays within the node:
+// * Due to the overhead of storing values as interfaces (each
+// value needs to be stored as the value itself, then 2 words for the
+// interface pointing to that value and its type), resulting in higher
+// memory use.
+// * Since interfaces can point to values anywhere in memory, values are
+// most likely not stored in contiguous blocks, resulting in a higher
+// number of cache misses.
+// These issues don't tend to matter, though, when working with strings or other
+// heap-allocated structures, since C++-equivalent structures also must store
+// pointers and also distribute their values across the heap.
+//
+// This implementation is designed to be a drop-in replacement to gollrb.LLRB
+// trees, (http://github.com/petar/gollrb), an excellent and probably the most
+// widely used ordered tree implementation in the Go ecosystem currently.
+// Its functions, therefore, exactly mirror those of
+// llrb.LLRB where possible. Unlike gollrb, though, we currently don't
+// support storing multiple equivalent values.
+package btree
+
+import (
+ "fmt"
+ "io"
+ "sort"
+ "strings"
+ "sync"
+)
+
+// Item represents a single object in the tree.
+type Item interface {
+ // Less tests whether the current item is less than the given argument.
+ //
+ // This must provide a strict weak ordering.
+ // If !a.Less(b) && !b.Less(a), we treat this to mean a == b (i.e. we can only
+ // hold one of either a or b in the tree).
+ Less(than Item) bool
+}
+
+const (
+ DefaultFreeListSize = 32
+)
+
+var (
+ nilItems = make(items, 16)
+ nilChildren = make(children, 16)
+)
+
+// FreeList represents a free list of btree nodes. By default each
+// BTree has its own FreeList, but multiple BTrees can share the same
+// FreeList.
+// Two Btrees using the same freelist are safe for concurrent write access.
+type FreeList struct {
+ mu sync.Mutex
+ freelist []*node
+}
+
+// NewFreeList creates a new free list.
+// size is the maximum size of the returned free list.
+func NewFreeList(size int) *FreeList {
+ return &FreeList{freelist: make([]*node, 0, size)}
+}
+
+func (f *FreeList) newNode() (n *node) {
+ f.mu.Lock()
+ index := len(f.freelist) - 1
+ if index < 0 {
+ f.mu.Unlock()
+ return new(node)
+ }
+ n = f.freelist[index]
+ f.freelist[index] = nil
+ f.freelist = f.freelist[:index]
+ f.mu.Unlock()
+ return
+}
+
+// freeNode adds the given node to the list, returning true if it was added
+// and false if it was discarded.
+func (f *FreeList) freeNode(n *node) (out bool) {
+ f.mu.Lock()
+ if len(f.freelist) < cap(f.freelist) {
+ f.freelist = append(f.freelist, n)
+ out = true
+ }
+ f.mu.Unlock()
+ return
+}
+
+// ItemIterator allows callers of Ascend* to iterate in-order over portions of
+// the tree. When this function returns false, iteration will stop and the
+// associated Ascend* function will immediately return.
+type ItemIterator func(i Item) bool
+
+// New creates a new B-Tree with the given degree.
+//
+// New(2), for example, will create a 2-3-4 tree (each node contains 1-3 items
+// and 2-4 children).
+func New(degree int) *BTree {
+ return NewWithFreeList(degree, NewFreeList(DefaultFreeListSize))
+}
+
+// NewWithFreeList creates a new B-Tree that uses the given node free list.
+func NewWithFreeList(degree int, f *FreeList) *BTree {
+ if degree <= 1 {
+ panic("bad degree")
+ }
+ return &BTree{
+ degree: degree,
+ cow: ©OnWriteContext{freelist: f},
+ }
+}
+
+// items stores items in a node.
+type items []Item
+
+// insertAt inserts a value into the given index, pushing all subsequent values
+// forward.
+func (s *items) insertAt(index int, item Item) {
+ *s = append(*s, nil)
+ if index < len(*s) {
+ copy((*s)[index+1:], (*s)[index:])
+ }
+ (*s)[index] = item
+}
+
+// removeAt removes a value at a given index, pulling all subsequent values
+// back.
+func (s *items) removeAt(index int) Item {
+ item := (*s)[index]
+ copy((*s)[index:], (*s)[index+1:])
+ (*s)[len(*s)-1] = nil
+ *s = (*s)[:len(*s)-1]
+ return item
+}
+
+// pop removes and returns the last element in the list.
+func (s *items) pop() (out Item) {
+ index := len(*s) - 1
+ out = (*s)[index]
+ (*s)[index] = nil
+ *s = (*s)[:index]
+ return
+}
+
+// truncate truncates this instance at index so that it contains only the
+// first index items. index must be less than or equal to length.
+func (s *items) truncate(index int) {
+ var toClear items
+ *s, toClear = (*s)[:index], (*s)[index:]
+ for len(toClear) > 0 {
+ toClear = toClear[copy(toClear, nilItems):]
+ }
+}
+
+// find returns the index where the given item should be inserted into this
+// list. 'found' is true if the item already exists in the list at the given
+// index.
+func (s items) find(item Item) (index int, found bool) {
+ i := sort.Search(len(s), func(i int) bool {
+ return item.Less(s[i])
+ })
+ if i > 0 && !s[i-1].Less(item) {
+ return i - 1, true
+ }
+ return i, false
+}
+
+// children stores child nodes in a node.
+type children []*node
+
+// insertAt inserts a value into the given index, pushing all subsequent values
+// forward.
+func (s *children) insertAt(index int, n *node) {
+ *s = append(*s, nil)
+ if index < len(*s) {
+ copy((*s)[index+1:], (*s)[index:])
+ }
+ (*s)[index] = n
+}
+
+// removeAt removes a value at a given index, pulling all subsequent values
+// back.
+func (s *children) removeAt(index int) *node {
+ n := (*s)[index]
+ copy((*s)[index:], (*s)[index+1:])
+ (*s)[len(*s)-1] = nil
+ *s = (*s)[:len(*s)-1]
+ return n
+}
+
+// pop removes and returns the last element in the list.
+func (s *children) pop() (out *node) {
+ index := len(*s) - 1
+ out = (*s)[index]
+ (*s)[index] = nil
+ *s = (*s)[:index]
+ return
+}
+
+// truncate truncates this instance at index so that it contains only the
+// first index children. index must be less than or equal to length.
+func (s *children) truncate(index int) {
+ var toClear children
+ *s, toClear = (*s)[:index], (*s)[index:]
+ for len(toClear) > 0 {
+ toClear = toClear[copy(toClear, nilChildren):]
+ }
+}
+
+// node is an internal node in a tree.
+//
+// It must at all times maintain the invariant that either
+// * len(children) == 0, len(items) unconstrained
+// * len(children) == len(items) + 1
+type node struct {
+ items items
+ children children
+ cow *copyOnWriteContext
+}
+
+func (n *node) mutableFor(cow *copyOnWriteContext) *node {
+ if n.cow == cow {
+ return n
+ }
+ out := cow.newNode()
+ if cap(out.items) >= len(n.items) {
+ out.items = out.items[:len(n.items)]
+ } else {
+ out.items = make(items, len(n.items), cap(n.items))
+ }
+ copy(out.items, n.items)
+ // Copy children
+ if cap(out.children) >= len(n.children) {
+ out.children = out.children[:len(n.children)]
+ } else {
+ out.children = make(children, len(n.children), cap(n.children))
+ }
+ copy(out.children, n.children)
+ return out
+}
+
+func (n *node) mutableChild(i int) *node {
+ c := n.children[i].mutableFor(n.cow)
+ n.children[i] = c
+ return c
+}
+
+// split splits the given node at the given index. The current node shrinks,
+// and this function returns the item that existed at that index and a new node
+// containing all items/children after it.
+func (n *node) split(i int) (Item, *node) {
+ item := n.items[i]
+ next := n.cow.newNode()
+ next.items = append(next.items, n.items[i+1:]...)
+ n.items.truncate(i)
+ if len(n.children) > 0 {
+ next.children = append(next.children, n.children[i+1:]...)
+ n.children.truncate(i + 1)
+ }
+ return item, next
+}
+
+// maybeSplitChild checks if a child should be split, and if so splits it.
+// Returns whether or not a split occurred.
+func (n *node) maybeSplitChild(i, maxItems int) bool {
+ if len(n.children[i].items) < maxItems {
+ return false
+ }
+ first := n.mutableChild(i)
+ item, second := first.split(maxItems / 2)
+ n.items.insertAt(i, item)
+ n.children.insertAt(i+1, second)
+ return true
+}
+
+// insert inserts an item into the subtree rooted at this node, making sure
+// no nodes in the subtree exceed maxItems items. Should an equivalent item be
+// be found/replaced by insert, it will be returned.
+func (n *node) insert(item Item, maxItems int) Item {
+ i, found := n.items.find(item)
+ if found {
+ out := n.items[i]
+ n.items[i] = item
+ return out
+ }
+ if len(n.children) == 0 {
+ n.items.insertAt(i, item)
+ return nil
+ }
+ if n.maybeSplitChild(i, maxItems) {
+ inTree := n.items[i]
+ switch {
+ case item.Less(inTree):
+ // no change, we want first split node
+ case inTree.Less(item):
+ i++ // we want second split node
+ default:
+ out := n.items[i]
+ n.items[i] = item
+ return out
+ }
+ }
+ return n.mutableChild(i).insert(item, maxItems)
+}
+
+// get finds the given key in the subtree and returns it.
+func (n *node) get(key Item) Item {
+ i, found := n.items.find(key)
+ if found {
+ return n.items[i]
+ } else if len(n.children) > 0 {
+ return n.children[i].get(key)
+ }
+ return nil
+}
+
+// min returns the first item in the subtree.
+func min(n *node) Item {
+ if n == nil {
+ return nil
+ }
+ for len(n.children) > 0 {
+ n = n.children[0]
+ }
+ if len(n.items) == 0 {
+ return nil
+ }
+ return n.items[0]
+}
+
+// max returns the last item in the subtree.
+func max(n *node) Item {
+ if n == nil {
+ return nil
+ }
+ for len(n.children) > 0 {
+ n = n.children[len(n.children)-1]
+ }
+ if len(n.items) == 0 {
+ return nil
+ }
+ return n.items[len(n.items)-1]
+}
+
+// toRemove details what item to remove in a node.remove call.
+type toRemove int
+
+const (
+ removeItem toRemove = iota // removes the given item
+ removeMin // removes smallest item in the subtree
+ removeMax // removes largest item in the subtree
+)
+
+// remove removes an item from the subtree rooted at this node.
+func (n *node) remove(item Item, minItems int, typ toRemove) Item {
+ var i int
+ var found bool
+ switch typ {
+ case removeMax:
+ if len(n.children) == 0 {
+ return n.items.pop()
+ }
+ i = len(n.items)
+ case removeMin:
+ if len(n.children) == 0 {
+ return n.items.removeAt(0)
+ }
+ i = 0
+ case removeItem:
+ i, found = n.items.find(item)
+ if len(n.children) == 0 {
+ if found {
+ return n.items.removeAt(i)
+ }
+ return nil
+ }
+ default:
+ panic("invalid type")
+ }
+ // If we get to here, we have children.
+ if len(n.children[i].items) <= minItems {
+ return n.growChildAndRemove(i, item, minItems, typ)
+ }
+ child := n.mutableChild(i)
+ // Either we had enough items to begin with, or we've done some
+ // merging/stealing, because we've got enough now and we're ready to return
+ // stuff.
+ if found {
+ // The item exists at index 'i', and the child we've selected can give us a
+ // predecessor, since if we've gotten here it's got > minItems items in it.
+ out := n.items[i]
+ // We use our special-case 'remove' call with typ=maxItem to pull the
+ // predecessor of item i (the rightmost leaf of our immediate left child)
+ // and set it into where we pulled the item from.
+ n.items[i] = child.remove(nil, minItems, removeMax)
+ return out
+ }
+ // Final recursive call. Once we're here, we know that the item isn't in this
+ // node and that the child is big enough to remove from.
+ return child.remove(item, minItems, typ)
+}
+
+// growChildAndRemove grows child 'i' to make sure it's possible to remove an
+// item from it while keeping it at minItems, then calls remove to actually
+// remove it.
+//
+// Most documentation says we have to do two sets of special casing:
+// 1) item is in this node
+// 2) item is in child
+// In both cases, we need to handle the two subcases:
+// A) node has enough values that it can spare one
+// B) node doesn't have enough values
+// For the latter, we have to check:
+// a) left sibling has node to spare
+// b) right sibling has node to spare
+// c) we must merge
+// To simplify our code here, we handle cases #1 and #2 the same:
+// If a node doesn't have enough items, we make sure it does (using a,b,c).
+// We then simply redo our remove call, and the second time (regardless of
+// whether we're in case 1 or 2), we'll have enough items and can guarantee
+// that we hit case A.
+func (n *node) growChildAndRemove(i int, item Item, minItems int, typ toRemove) Item {
+ if i > 0 && len(n.children[i-1].items) > minItems {
+ // Steal from left child
+ child := n.mutableChild(i)
+ stealFrom := n.mutableChild(i - 1)
+ stolenItem := stealFrom.items.pop()
+ child.items.insertAt(0, n.items[i-1])
+ n.items[i-1] = stolenItem
+ if len(stealFrom.children) > 0 {
+ child.children.insertAt(0, stealFrom.children.pop())
+ }
+ } else if i < len(n.items) && len(n.children[i+1].items) > minItems {
+ // steal from right child
+ child := n.mutableChild(i)
+ stealFrom := n.mutableChild(i + 1)
+ stolenItem := stealFrom.items.removeAt(0)
+ child.items = append(child.items, n.items[i])
+ n.items[i] = stolenItem
+ if len(stealFrom.children) > 0 {
+ child.children = append(child.children, stealFrom.children.removeAt(0))
+ }
+ } else {
+ if i >= len(n.items) {
+ i--
+ }
+ child := n.mutableChild(i)
+ // merge with right child
+ mergeItem := n.items.removeAt(i)
+ mergeChild := n.children.removeAt(i + 1)
+ child.items = append(child.items, mergeItem)
+ child.items = append(child.items, mergeChild.items...)
+ child.children = append(child.children, mergeChild.children...)
+ n.cow.freeNode(mergeChild)
+ }
+ return n.remove(item, minItems, typ)
+}
+
+type direction int
+
+const (
+ descend = direction(-1)
+ ascend = direction(+1)
+)
+
+// iterate provides a simple method for iterating over elements in the tree.
+//
+// When ascending, the 'start' should be less than 'stop' and when descending,
+// the 'start' should be greater than 'stop'. Setting 'includeStart' to true
+// will force the iterator to include the first item when it equals 'start',
+// thus creating a "greaterOrEqual" or "lessThanEqual" rather than just a
+// "greaterThan" or "lessThan" queries.
+func (n *node) iterate(dir direction, start, stop Item, includeStart bool, hit bool, iter ItemIterator) (bool, bool) {
+ var ok, found bool
+ var index int
+ switch dir {
+ case ascend:
+ if start != nil {
+ index, _ = n.items.find(start)
+ }
+ for i := index; i < len(n.items); i++ {
+ if len(n.children) > 0 {
+ if hit, ok = n.children[i].iterate(dir, start, stop, includeStart, hit, iter); !ok {
+ return hit, false
+ }
+ }
+ if !includeStart && !hit && start != nil && !start.Less(n.items[i]) {
+ hit = true
+ continue
+ }
+ hit = true
+ if stop != nil && !n.items[i].Less(stop) {
+ return hit, false
+ }
+ if !iter(n.items[i]) {
+ return hit, false
+ }
+ }
+ if len(n.children) > 0 {
+ if hit, ok = n.children[len(n.children)-1].iterate(dir, start, stop, includeStart, hit, iter); !ok {
+ return hit, false
+ }
+ }
+ case descend:
+ if start != nil {
+ index, found = n.items.find(start)
+ if !found {
+ index = index - 1
+ }
+ } else {
+ index = len(n.items) - 1
+ }
+ for i := index; i >= 0; i-- {
+ if start != nil && !n.items[i].Less(start) {
+ if !includeStart || hit || start.Less(n.items[i]) {
+ continue
+ }
+ }
+ if len(n.children) > 0 {
+ if hit, ok = n.children[i+1].iterate(dir, start, stop, includeStart, hit, iter); !ok {
+ return hit, false
+ }
+ }
+ if stop != nil && !stop.Less(n.items[i]) {
+ return hit, false // continue
+ }
+ hit = true
+ if !iter(n.items[i]) {
+ return hit, false
+ }
+ }
+ if len(n.children) > 0 {
+ if hit, ok = n.children[0].iterate(dir, start, stop, includeStart, hit, iter); !ok {
+ return hit, false
+ }
+ }
+ }
+ return hit, true
+}
+
+// Used for testing/debugging purposes.
+func (n *node) print(w io.Writer, level int) {
+ fmt.Fprintf(w, "%sNODE:%v\n", strings.Repeat(" ", level), n.items)
+ for _, c := range n.children {
+ c.print(w, level+1)
+ }
+}
+
+// BTree is an implementation of a B-Tree.
+//
+// BTree stores Item instances in an ordered structure, allowing easy insertion,
+// removal, and iteration.
+//
+// Write operations are not safe for concurrent mutation by multiple
+// goroutines, but Read operations are.
+type BTree struct {
+ degree int
+ length int
+ root *node
+ cow *copyOnWriteContext
+}
+
+// copyOnWriteContext pointers determine node ownership... a tree with a write
+// context equivalent to a node's write context is allowed to modify that node.
+// A tree whose write context does not match a node's is not allowed to modify
+// it, and must create a new, writable copy (IE: it's a Clone).
+//
+// When doing any write operation, we maintain the invariant that the current
+// node's context is equal to the context of the tree that requested the write.
+// We do this by, before we descend into any node, creating a copy with the
+// correct context if the contexts don't match.
+//
+// Since the node we're currently visiting on any write has the requesting
+// tree's context, that node is modifiable in place. Children of that node may
+// not share context, but before we descend into them, we'll make a mutable
+// copy.
+type copyOnWriteContext struct {
+ freelist *FreeList
+}
+
+// Clone clones the btree, lazily. Clone should not be called concurrently,
+// but the original tree (t) and the new tree (t2) can be used concurrently
+// once the Clone call completes.
+//
+// The internal tree structure of b is marked read-only and shared between t and
+// t2. Writes to both t and t2 use copy-on-write logic, creating new nodes
+// whenever one of b's original nodes would have been modified. Read operations
+// should have no performance degredation. Write operations for both t and t2
+// will initially experience minor slow-downs caused by additional allocs and
+// copies due to the aforementioned copy-on-write logic, but should converge to
+// the original performance characteristics of the original tree.
+func (t *BTree) Clone() (t2 *BTree) {
+ // Create two entirely new copy-on-write contexts.
+ // This operation effectively creates three trees:
+ // the original, shared nodes (old b.cow)
+ // the new b.cow nodes
+ // the new out.cow nodes
+ cow1, cow2 := *t.cow, *t.cow
+ out := *t
+ t.cow = &cow1
+ out.cow = &cow2
+ return &out
+}
+
+// maxItems returns the max number of items to allow per node.
+func (t *BTree) maxItems() int {
+ return t.degree*2 - 1
+}
+
+// minItems returns the min number of items to allow per node (ignored for the
+// root node).
+func (t *BTree) minItems() int {
+ return t.degree - 1
+}
+
+func (c *copyOnWriteContext) newNode() (n *node) {
+ n = c.freelist.newNode()
+ n.cow = c
+ return
+}
+
+type freeType int
+
+const (
+ ftFreelistFull freeType = iota // node was freed (available for GC, not stored in freelist)
+ ftStored // node was stored in the freelist for later use
+ ftNotOwned // node was ignored by COW, since it's owned by another one
+)
+
+// freeNode frees a node within a given COW context, if it's owned by that
+// context. It returns what happened to the node (see freeType const
+// documentation).
+func (c *copyOnWriteContext) freeNode(n *node) freeType {
+ if n.cow == c {
+ // clear to allow GC
+ n.items.truncate(0)
+ n.children.truncate(0)
+ n.cow = nil
+ if c.freelist.freeNode(n) {
+ return ftStored
+ } else {
+ return ftFreelistFull
+ }
+ } else {
+ return ftNotOwned
+ }
+}
+
+// ReplaceOrInsert adds the given item to the tree. If an item in the tree
+// already equals the given one, it is removed from the tree and returned.
+// Otherwise, nil is returned.
+//
+// nil cannot be added to the tree (will panic).
+func (t *BTree) ReplaceOrInsert(item Item) Item {
+ if item == nil {
+ panic("nil item being added to BTree")
+ }
+ if t.root == nil {
+ t.root = t.cow.newNode()
+ t.root.items = append(t.root.items, item)
+ t.length++
+ return nil
+ } else {
+ t.root = t.root.mutableFor(t.cow)
+ if len(t.root.items) >= t.maxItems() {
+ item2, second := t.root.split(t.maxItems() / 2)
+ oldroot := t.root
+ t.root = t.cow.newNode()
+ t.root.items = append(t.root.items, item2)
+ t.root.children = append(t.root.children, oldroot, second)
+ }
+ }
+ out := t.root.insert(item, t.maxItems())
+ if out == nil {
+ t.length++
+ }
+ return out
+}
+
+// Delete removes an item equal to the passed in item from the tree, returning
+// it. If no such item exists, returns nil.
+func (t *BTree) Delete(item Item) Item {
+ return t.deleteItem(item, removeItem)
+}
+
+// DeleteMin removes the smallest item in the tree and returns it.
+// If no such item exists, returns nil.
+func (t *BTree) DeleteMin() Item {
+ return t.deleteItem(nil, removeMin)
+}
+
+// DeleteMax removes the largest item in the tree and returns it.
+// If no such item exists, returns nil.
+func (t *BTree) DeleteMax() Item {
+ return t.deleteItem(nil, removeMax)
+}
+
+func (t *BTree) deleteItem(item Item, typ toRemove) Item {
+ if t.root == nil || len(t.root.items) == 0 {
+ return nil
+ }
+ t.root = t.root.mutableFor(t.cow)
+ out := t.root.remove(item, t.minItems(), typ)
+ if len(t.root.items) == 0 && len(t.root.children) > 0 {
+ oldroot := t.root
+ t.root = t.root.children[0]
+ t.cow.freeNode(oldroot)
+ }
+ if out != nil {
+ t.length--
+ }
+ return out
+}
+
+// AscendRange calls the iterator for every value in the tree within the range
+// [greaterOrEqual, lessThan), until iterator returns false.
+func (t *BTree) AscendRange(greaterOrEqual, lessThan Item, iterator ItemIterator) {
+ if t.root == nil {
+ return
+ }
+ t.root.iterate(ascend, greaterOrEqual, lessThan, true, false, iterator)
+}
+
+// AscendLessThan calls the iterator for every value in the tree within the range
+// [first, pivot), until iterator returns false.
+func (t *BTree) AscendLessThan(pivot Item, iterator ItemIterator) {
+ if t.root == nil {
+ return
+ }
+ t.root.iterate(ascend, nil, pivot, false, false, iterator)
+}
+
+// AscendGreaterOrEqual calls the iterator for every value in the tree within
+// the range [pivot, last], until iterator returns false.
+func (t *BTree) AscendGreaterOrEqual(pivot Item, iterator ItemIterator) {
+ if t.root == nil {
+ return
+ }
+ t.root.iterate(ascend, pivot, nil, true, false, iterator)
+}
+
+// Ascend calls the iterator for every value in the tree within the range
+// [first, last], until iterator returns false.
+func (t *BTree) Ascend(iterator ItemIterator) {
+ if t.root == nil {
+ return
+ }
+ t.root.iterate(ascend, nil, nil, false, false, iterator)
+}
+
+// DescendRange calls the iterator for every value in the tree within the range
+// [lessOrEqual, greaterThan), until iterator returns false.
+func (t *BTree) DescendRange(lessOrEqual, greaterThan Item, iterator ItemIterator) {
+ if t.root == nil {
+ return
+ }
+ t.root.iterate(descend, lessOrEqual, greaterThan, true, false, iterator)
+}
+
+// DescendLessOrEqual calls the iterator for every value in the tree within the range
+// [pivot, first], until iterator returns false.
+func (t *BTree) DescendLessOrEqual(pivot Item, iterator ItemIterator) {
+ if t.root == nil {
+ return
+ }
+ t.root.iterate(descend, pivot, nil, true, false, iterator)
+}
+
+// DescendGreaterThan calls the iterator for every value in the tree within
+// the range [last, pivot), until iterator returns false.
+func (t *BTree) DescendGreaterThan(pivot Item, iterator ItemIterator) {
+ if t.root == nil {
+ return
+ }
+ t.root.iterate(descend, nil, pivot, false, false, iterator)
+}
+
+// Descend calls the iterator for every value in the tree within the range
+// [last, first], until iterator returns false.
+func (t *BTree) Descend(iterator ItemIterator) {
+ if t.root == nil {
+ return
+ }
+ t.root.iterate(descend, nil, nil, false, false, iterator)
+}
+
+// Get looks for the key item in the tree, returning it. It returns nil if
+// unable to find that item.
+func (t *BTree) Get(key Item) Item {
+ if t.root == nil {
+ return nil
+ }
+ return t.root.get(key)
+}
+
+// Min returns the smallest item in the tree, or nil if the tree is empty.
+func (t *BTree) Min() Item {
+ return min(t.root)
+}
+
+// Max returns the largest item in the tree, or nil if the tree is empty.
+func (t *BTree) Max() Item {
+ return max(t.root)
+}
+
+// Has returns true if the given key is in the tree.
+func (t *BTree) Has(key Item) bool {
+ return t.Get(key) != nil
+}
+
+// Len returns the number of items currently in the tree.
+func (t *BTree) Len() int {
+ return t.length
+}
+
+// Clear removes all items from the btree. If addNodesToFreelist is true,
+// t's nodes are added to its freelist as part of this call, until the freelist
+// is full. Otherwise, the root node is simply dereferenced and the subtree
+// left to Go's normal GC processes.
+//
+// This can be much faster
+// than calling Delete on all elements, because that requires finding/removing
+// each element in the tree and updating the tree accordingly. It also is
+// somewhat faster than creating a new tree to replace the old one, because
+// nodes from the old tree are reclaimed into the freelist for use by the new
+// one, instead of being lost to the garbage collector.
+//
+// This call takes:
+// O(1): when addNodesToFreelist is false, this is a single operation.
+// O(1): when the freelist is already full, it breaks out immediately
+// O(freelist size): when the freelist is empty and the nodes are all owned
+// by this tree, nodes are added to the freelist until full.
+// O(tree size): when all nodes are owned by another tree, all nodes are
+// iterated over looking for nodes to add to the freelist, and due to
+// ownership, none are.
+func (t *BTree) Clear(addNodesToFreelist bool) {
+ if t.root != nil && addNodesToFreelist {
+ t.root.reset(t.cow)
+ }
+ t.root, t.length = nil, 0
+}
+
+// reset returns a subtree to the freelist. It breaks out immediately if the
+// freelist is full, since the only benefit of iterating is to fill that
+// freelist up. Returns true if parent reset call should continue.
+func (n *node) reset(c *copyOnWriteContext) bool {
+ for _, child := range n.children {
+ if !child.reset(c) {
+ return false
+ }
+ }
+ return c.freeNode(n) != ftFreelistFull
+}
+
+// Int implements the Item interface for integers.
+type Int int
+
+// Less returns true if int(a) < int(b).
+func (a Int) Less(b Item) bool {
+ return a < b.(Int)
+}
diff --git a/vendor/github.com/google/cel-go/cel/BUILD.bazel b/vendor/github.com/google/cel-go/cel/BUILD.bazel
index 6e2fc073d4..81549fb4c5 100644
--- a/vendor/github.com/google/cel-go/cel/BUILD.bazel
+++ b/vendor/github.com/google/cel-go/cel/BUILD.bazel
@@ -39,6 +39,7 @@ go_library(
"//common/types/traits:go_default_library",
"//interpreter:go_default_library",
"//parser:go_default_library",
+ "@dev_cel_expr//:expr",
"@org_golang_google_genproto_googleapis_api//expr/v1alpha1:go_default_library",
"@org_golang_google_protobuf//proto:go_default_library",
"@org_golang_google_protobuf//reflect/protodesc:go_default_library",
@@ -81,7 +82,6 @@ go_test(
"//test:go_default_library",
"//test/proto2pb:go_default_library",
"//test/proto3pb:go_default_library",
- "@io_bazel_rules_go//proto/wkt:descriptor_go_proto",
"@org_golang_google_genproto_googleapis_api//expr/v1alpha1:go_default_library",
"@org_golang_google_protobuf//proto:go_default_library",
"@org_golang_google_protobuf//encoding/prototext:go_default_library",
diff --git a/vendor/github.com/google/cel-go/cel/decls.go b/vendor/github.com/google/cel-go/cel/decls.go
index b59e3708de..4188060210 100644
--- a/vendor/github.com/google/cel-go/cel/decls.go
+++ b/vendor/github.com/google/cel-go/cel/decls.go
@@ -23,6 +23,7 @@ import (
"github.com/google/cel-go/common/types"
"github.com/google/cel-go/common/types/ref"
+ celpb "cel.dev/expr"
exprpb "google.golang.org/genproto/googleapis/api/expr/v1alpha1"
)
@@ -312,20 +313,34 @@ func ExprTypeToType(t *exprpb.Type) (*Type, error) {
// ExprDeclToDeclaration converts a protobuf CEL declaration to a CEL-native declaration, either a Variable or Function.
func ExprDeclToDeclaration(d *exprpb.Decl) (EnvOption, error) {
+ return AlphaProtoAsDeclaration(d)
+}
+
+// AlphaProtoAsDeclaration converts a v1alpha1.Decl value describing a variable or function into an EnvOption.
+func AlphaProtoAsDeclaration(d *exprpb.Decl) (EnvOption, error) {
+ canonical := &celpb.Decl{}
+ if err := convertProto(d, canonical); err != nil {
+ return nil, err
+ }
+ return ProtoAsDeclaration(canonical)
+}
+
+// ProtoAsDeclaration converts a canonical celpb.Decl value describing a variable or function into an EnvOption.
+func ProtoAsDeclaration(d *celpb.Decl) (EnvOption, error) {
switch d.GetDeclKind().(type) {
- case *exprpb.Decl_Function:
+ case *celpb.Decl_Function:
overloads := d.GetFunction().GetOverloads()
opts := make([]FunctionOpt, len(overloads))
for i, o := range overloads {
args := make([]*Type, len(o.GetParams()))
for j, p := range o.GetParams() {
- a, err := types.ExprTypeToType(p)
+ a, err := types.ProtoAsType(p)
if err != nil {
return nil, err
}
args[j] = a
}
- res, err := types.ExprTypeToType(o.GetResultType())
+ res, err := types.ProtoAsType(o.GetResultType())
if err != nil {
return nil, err
}
@@ -336,15 +351,15 @@ func ExprDeclToDeclaration(d *exprpb.Decl) (EnvOption, error) {
}
}
return Function(d.GetName(), opts...), nil
- case *exprpb.Decl_Ident:
- t, err := types.ExprTypeToType(d.GetIdent().GetType())
+ case *celpb.Decl_Ident:
+ t, err := types.ProtoAsType(d.GetIdent().GetType())
if err != nil {
return nil, err
}
if d.GetIdent().GetValue() == nil {
return Variable(d.GetName(), t), nil
}
- val, err := ast.ConstantToVal(d.GetIdent().GetValue())
+ val, err := ast.ProtoConstantAsVal(d.GetIdent().GetValue())
if err != nil {
return nil, err
}
diff --git a/vendor/github.com/google/cel-go/cel/env.go b/vendor/github.com/google/cel-go/cel/env.go
index 6568a8b809..caee8e8c15 100644
--- a/vendor/github.com/google/cel-go/cel/env.go
+++ b/vendor/github.com/google/cel-go/cel/env.go
@@ -44,6 +44,9 @@ type Ast struct {
// NativeRep converts the AST to a Go-native representation.
func (ast *Ast) NativeRep() *celast.AST {
+ if ast == nil {
+ return nil
+ }
return ast.impl
}
@@ -55,16 +58,13 @@ func (ast *Ast) Expr() *exprpb.Expr {
if ast == nil {
return nil
}
- pbExpr, _ := celast.ExprToProto(ast.impl.Expr())
+ pbExpr, _ := celast.ExprToProto(ast.NativeRep().Expr())
return pbExpr
}
// IsChecked returns whether the Ast value has been successfully type-checked.
func (ast *Ast) IsChecked() bool {
- if ast == nil {
- return false
- }
- return ast.impl.IsChecked()
+ return ast.NativeRep().IsChecked()
}
// SourceInfo returns character offset and newline position information about expression elements.
@@ -72,7 +72,7 @@ func (ast *Ast) SourceInfo() *exprpb.SourceInfo {
if ast == nil {
return nil
}
- pbInfo, _ := celast.SourceInfoToProto(ast.impl.SourceInfo())
+ pbInfo, _ := celast.SourceInfoToProto(ast.NativeRep().SourceInfo())
return pbInfo
}
@@ -95,7 +95,7 @@ func (ast *Ast) OutputType() *Type {
if ast == nil {
return types.ErrorType
}
- return ast.impl.GetType(ast.impl.Expr().ID())
+ return ast.NativeRep().GetType(ast.NativeRep().Expr().ID())
}
// Source returns a view of the input used to create the Ast. This source may be complete or
@@ -218,12 +218,12 @@ func (e *Env) Check(ast *Ast) (*Ast, *Issues) {
if err != nil {
errs := common.NewErrors(ast.Source())
errs.ReportError(common.NoLocation, err.Error())
- return nil, NewIssuesWithSourceInfo(errs, ast.impl.SourceInfo())
+ return nil, NewIssuesWithSourceInfo(errs, ast.NativeRep().SourceInfo())
}
- checked, errs := checker.Check(ast.impl, ast.Source(), chk)
+ checked, errs := checker.Check(ast.NativeRep(), ast.Source(), chk)
if len(errs.GetErrors()) > 0 {
- return nil, NewIssuesWithSourceInfo(errs, ast.impl.SourceInfo())
+ return nil, NewIssuesWithSourceInfo(errs, ast.NativeRep().SourceInfo())
}
// Manually create the Ast to ensure that the Ast source information (which may be more
// detailed than the information provided by Check), is returned to the caller.
@@ -244,7 +244,7 @@ func (e *Env) Check(ast *Ast) (*Ast, *Issues) {
}
}
// Apply additional validators on the type-checked result.
- iss := NewIssuesWithSourceInfo(errs, ast.impl.SourceInfo())
+ iss := NewIssuesWithSourceInfo(errs, ast.NativeRep().SourceInfo())
for _, v := range e.validators {
v.Validate(e, vConfig, checked, iss)
}
@@ -309,17 +309,13 @@ func (e *Env) Extend(opts ...EnvOption) (*Env, error) {
copy(chkOptsCopy, e.chkOpts)
// Copy the declarations if needed.
- varsCopy := []*decls.VariableDecl{}
if chk != nil {
// If the type-checker has already been instantiated, then the e.declarations have been
// validated within the chk instance.
chkOptsCopy = append(chkOptsCopy, checker.ValidatedDeclarations(chk))
- } else {
- // If the type-checker has not been instantiated, ensure the unvalidated declarations are
- // provided to the extended Env instance.
- varsCopy = make([]*decls.VariableDecl, len(e.variables))
- copy(varsCopy, e.variables)
}
+ varsCopy := make([]*decls.VariableDecl, len(e.variables))
+ copy(varsCopy, e.variables)
// Copy macros and program options
macsCopy := make([]parser.Macro, len(e.macros))
@@ -416,6 +412,17 @@ func (e *Env) Libraries() []string {
return libraries
}
+// HasFunction returns whether a specific function has been configured in the environment
+func (e *Env) HasFunction(functionName string) bool {
+ _, ok := e.functions[functionName]
+ return ok
+}
+
+// Functions returns map of Functions, keyed by function name, that have been configured in the environment.
+func (e *Env) Functions() map[string]*decls.FunctionDecl {
+ return e.functions
+}
+
// HasValidator returns whether a specific ASTValidator has been configured in the environment.
func (e *Env) HasValidator(name string) bool {
for _, v := range e.validators {
@@ -452,6 +459,12 @@ func (e *Env) ParseSource(src Source) (*Ast, *Issues) {
// Program generates an evaluable instance of the Ast within the environment (Env).
func (e *Env) Program(ast *Ast, opts ...ProgramOption) (Program, error) {
+ return e.PlanProgram(ast.NativeRep(), opts...)
+}
+
+// PlanProgram generates an evaluable instance of the AST in the go-native representation within
+// the environment (Env).
+func (e *Env) PlanProgram(a *celast.AST, opts ...ProgramOption) (Program, error) {
optSet := e.progOpts
if len(opts) != 0 {
mergedOpts := []ProgramOption{}
@@ -459,7 +472,7 @@ func (e *Env) Program(ast *Ast, opts ...ProgramOption) (Program, error) {
mergedOpts = append(mergedOpts, opts...)
optSet = mergedOpts
}
- return newProgram(e, ast, optSet)
+ return newProgram(e, a, optSet)
}
// CELTypeAdapter returns the `types.Adapter` configured for the environment.
@@ -543,7 +556,8 @@ func (e *Env) PartialVars(vars any) (interpreter.PartialActivation, error) {
// TODO: Consider adding an option to generate a Program.Residual to avoid round-tripping to an
// Ast format and then Program again.
func (e *Env) ResidualAst(a *Ast, details *EvalDetails) (*Ast, error) {
- pruned := interpreter.PruneAst(a.impl.Expr(), a.impl.SourceInfo().MacroCalls(), details.State())
+ ast := a.NativeRep()
+ pruned := interpreter.PruneAst(ast.Expr(), ast.SourceInfo().MacroCalls(), details.State())
newAST := &Ast{source: a.Source(), impl: pruned}
expr, err := AstToString(newAST)
if err != nil {
@@ -569,7 +583,7 @@ func (e *Env) EstimateCost(ast *Ast, estimator checker.CostEstimator, opts ...ch
extendedOpts := make([]checker.CostOption, 0, len(e.costOptions))
extendedOpts = append(extendedOpts, opts...)
extendedOpts = append(extendedOpts, e.costOptions...)
- return checker.Cost(ast.impl, estimator, extendedOpts...)
+ return checker.Cost(ast.NativeRep(), estimator, extendedOpts...)
}
// configure applies a series of EnvOptions to the current environment.
@@ -753,10 +767,10 @@ func (i *Issues) Append(other *Issues) *Issues {
if i == nil {
return other
}
- if other == nil {
+ if other == nil || i == other {
return i
}
- return NewIssues(i.errs.Append(other.errs.GetErrors()))
+ return NewIssuesWithSourceInfo(i.errs.Append(other.errs.GetErrors()), i.info)
}
// String converts the issues to a suitable display string.
@@ -790,7 +804,7 @@ type interopCELTypeProvider struct {
// FindStructType returns a types.Type instance for the given fully-qualified typeName if one exists.
//
-// This method proxies to the underyling ref.TypeProvider's FindType method and converts protobuf type
+// This method proxies to the underlying ref.TypeProvider's FindType method and converts protobuf type
// into a native type representation. If the conversion fails, the type is listed as not found.
func (p *interopCELTypeProvider) FindStructType(typeName string) (*types.Type, bool) {
if et, found := p.FindType(typeName); found {
@@ -813,7 +827,7 @@ func (p *interopCELTypeProvider) FindStructFieldNames(typeName string) ([]string
// FindStructFieldType returns a types.FieldType instance for the given fully-qualified typeName and field
// name, if one exists.
//
-// This method proxies to the underyling ref.TypeProvider's FindFieldType method and converts protobuf type
+// This method proxies to the underlying ref.TypeProvider's FindFieldType method and converts protobuf type
// into a native type representation. If the conversion fails, the type is listed as not found.
func (p *interopCELTypeProvider) FindStructFieldType(structType, fieldName string) (*types.FieldType, bool) {
if ft, found := p.FindFieldType(structType, fieldName); found {
diff --git a/vendor/github.com/google/cel-go/cel/inlining.go b/vendor/github.com/google/cel-go/cel/inlining.go
index 78d5bea65b..a4530e19e7 100644
--- a/vendor/github.com/google/cel-go/cel/inlining.go
+++ b/vendor/github.com/google/cel-go/cel/inlining.go
@@ -60,7 +60,7 @@ func NewInlineVariable(name string, definition *Ast) *InlineVariable {
// If the variable occurs more than once, the provided alias will be used to replace the expressions
// where the variable name occurs.
func NewInlineVariableWithAlias(name, alias string, definition *Ast) *InlineVariable {
- return &InlineVariable{name: name, alias: alias, def: definition.impl}
+ return &InlineVariable{name: name, alias: alias, def: definition.NativeRep()}
}
// NewInliningOptimizer creates and optimizer which replaces variables with expression definitions.
diff --git a/vendor/github.com/google/cel-go/cel/io.go b/vendor/github.com/google/cel-go/cel/io.go
index 3133fb9d7d..a327c9672d 100644
--- a/vendor/github.com/google/cel-go/cel/io.go
+++ b/vendor/github.com/google/cel-go/cel/io.go
@@ -28,6 +28,7 @@ import (
"github.com/google/cel-go/common/types/traits"
"github.com/google/cel-go/parser"
+ celpb "cel.dev/expr"
exprpb "google.golang.org/genproto/googleapis/api/expr/v1alpha1"
anypb "google.golang.org/protobuf/types/known/anypb"
)
@@ -61,7 +62,7 @@ func AstToCheckedExpr(a *Ast) (*exprpb.CheckedExpr, error) {
if !a.IsChecked() {
return nil, fmt.Errorf("cannot convert unchecked ast")
}
- return ast.ToProto(a.impl)
+ return ast.ToProto(a.NativeRep())
}
// ParsedExprToAst converts a parsed expression proto message to an Ast.
@@ -98,78 +99,96 @@ func AstToParsedExpr(a *Ast) (*exprpb.ParsedExpr, error) {
// Note, the conversion may not be an exact replica of the original expression, but will produce
// a string that is semantically equivalent and whose textual representation is stable.
func AstToString(a *Ast) (string, error) {
- return parser.Unparse(a.impl.Expr(), a.impl.SourceInfo())
+ return parser.Unparse(a.NativeRep().Expr(), a.NativeRep().SourceInfo())
}
-// RefValueToValue converts between ref.Val and api.expr.Value.
+// RefValueToValue converts between ref.Val and google.api.expr.v1alpha1.Value.
// The result Value is the serialized proto form. The ref.Val must not be error or unknown.
func RefValueToValue(res ref.Val) (*exprpb.Value, error) {
+ return ValueAsAlphaProto(res)
+}
+
+// ValueAsAlphaProto converts between ref.Val and google.api.expr.v1alpha1.Value.
+// The result Value is the serialized proto form. The ref.Val must not be error or unknown.
+func ValueAsAlphaProto(res ref.Val) (*exprpb.Value, error) {
+ canonical, err := ValueAsProto(res)
+ if err != nil {
+ return nil, err
+ }
+ alpha := &exprpb.Value{}
+ err = convertProto(canonical, alpha)
+ return alpha, err
+}
+
+// ValueAsProto converts between ref.Val and cel.expr.Value.
+// The result Value is the serialized proto form. The ref.Val must not be error or unknown.
+func ValueAsProto(res ref.Val) (*celpb.Value, error) {
switch res.Type() {
case types.BoolType:
- return &exprpb.Value{
- Kind: &exprpb.Value_BoolValue{BoolValue: res.Value().(bool)}}, nil
+ return &celpb.Value{
+ Kind: &celpb.Value_BoolValue{BoolValue: res.Value().(bool)}}, nil
case types.BytesType:
- return &exprpb.Value{
- Kind: &exprpb.Value_BytesValue{BytesValue: res.Value().([]byte)}}, nil
+ return &celpb.Value{
+ Kind: &celpb.Value_BytesValue{BytesValue: res.Value().([]byte)}}, nil
case types.DoubleType:
- return &exprpb.Value{
- Kind: &exprpb.Value_DoubleValue{DoubleValue: res.Value().(float64)}}, nil
+ return &celpb.Value{
+ Kind: &celpb.Value_DoubleValue{DoubleValue: res.Value().(float64)}}, nil
case types.IntType:
- return &exprpb.Value{
- Kind: &exprpb.Value_Int64Value{Int64Value: res.Value().(int64)}}, nil
+ return &celpb.Value{
+ Kind: &celpb.Value_Int64Value{Int64Value: res.Value().(int64)}}, nil
case types.ListType:
l := res.(traits.Lister)
sz := l.Size().(types.Int)
- elts := make([]*exprpb.Value, 0, int64(sz))
+ elts := make([]*celpb.Value, 0, int64(sz))
for i := types.Int(0); i < sz; i++ {
- v, err := RefValueToValue(l.Get(i))
+ v, err := ValueAsProto(l.Get(i))
if err != nil {
return nil, err
}
elts = append(elts, v)
}
- return &exprpb.Value{
- Kind: &exprpb.Value_ListValue{
- ListValue: &exprpb.ListValue{Values: elts}}}, nil
+ return &celpb.Value{
+ Kind: &celpb.Value_ListValue{
+ ListValue: &celpb.ListValue{Values: elts}}}, nil
case types.MapType:
mapper := res.(traits.Mapper)
sz := mapper.Size().(types.Int)
- entries := make([]*exprpb.MapValue_Entry, 0, int64(sz))
+ entries := make([]*celpb.MapValue_Entry, 0, int64(sz))
for it := mapper.Iterator(); it.HasNext().(types.Bool); {
k := it.Next()
v := mapper.Get(k)
- kv, err := RefValueToValue(k)
+ kv, err := ValueAsProto(k)
if err != nil {
return nil, err
}
- vv, err := RefValueToValue(v)
+ vv, err := ValueAsProto(v)
if err != nil {
return nil, err
}
- entries = append(entries, &exprpb.MapValue_Entry{Key: kv, Value: vv})
+ entries = append(entries, &celpb.MapValue_Entry{Key: kv, Value: vv})
}
- return &exprpb.Value{
- Kind: &exprpb.Value_MapValue{
- MapValue: &exprpb.MapValue{Entries: entries}}}, nil
+ return &celpb.Value{
+ Kind: &celpb.Value_MapValue{
+ MapValue: &celpb.MapValue{Entries: entries}}}, nil
case types.NullType:
- return &exprpb.Value{
- Kind: &exprpb.Value_NullValue{}}, nil
+ return &celpb.Value{
+ Kind: &celpb.Value_NullValue{}}, nil
case types.StringType:
- return &exprpb.Value{
- Kind: &exprpb.Value_StringValue{StringValue: res.Value().(string)}}, nil
+ return &celpb.Value{
+ Kind: &celpb.Value_StringValue{StringValue: res.Value().(string)}}, nil
case types.TypeType:
typeName := res.(ref.Type).TypeName()
- return &exprpb.Value{Kind: &exprpb.Value_TypeValue{TypeValue: typeName}}, nil
+ return &celpb.Value{Kind: &celpb.Value_TypeValue{TypeValue: typeName}}, nil
case types.UintType:
- return &exprpb.Value{
- Kind: &exprpb.Value_Uint64Value{Uint64Value: res.Value().(uint64)}}, nil
+ return &celpb.Value{
+ Kind: &celpb.Value_Uint64Value{Uint64Value: res.Value().(uint64)}}, nil
default:
any, err := res.ConvertToNative(anyPbType)
if err != nil {
return nil, err
}
- return &exprpb.Value{
- Kind: &exprpb.Value_ObjectValue{ObjectValue: any.(*anypb.Any)}}, nil
+ return &celpb.Value{
+ Kind: &celpb.Value_ObjectValue{ObjectValue: any.(*anypb.Any)}}, nil
}
}
@@ -190,57 +209,71 @@ var (
anyPbType = reflect.TypeOf(&anypb.Any{})
)
-// ValueToRefValue converts between exprpb.Value and ref.Val.
+// ValueToRefValue converts between google.api.expr.v1alpha1.Value and ref.Val.
func ValueToRefValue(adapter types.Adapter, v *exprpb.Value) (ref.Val, error) {
+ return AlphaProtoAsValue(adapter, v)
+}
+
+// AlphaProtoAsValue converts between google.api.expr.v1alpha1.Value and ref.Val.
+func AlphaProtoAsValue(adapter types.Adapter, v *exprpb.Value) (ref.Val, error) {
+ canonical := &celpb.Value{}
+ if err := convertProto(v, canonical); err != nil {
+ return nil, err
+ }
+ return ProtoAsValue(adapter, canonical)
+}
+
+// ProtoAsValue converts between cel.expr.Value and ref.Val.
+func ProtoAsValue(adapter types.Adapter, v *celpb.Value) (ref.Val, error) {
switch v.Kind.(type) {
- case *exprpb.Value_NullValue:
+ case *celpb.Value_NullValue:
return types.NullValue, nil
- case *exprpb.Value_BoolValue:
+ case *celpb.Value_BoolValue:
return types.Bool(v.GetBoolValue()), nil
- case *exprpb.Value_Int64Value:
+ case *celpb.Value_Int64Value:
return types.Int(v.GetInt64Value()), nil
- case *exprpb.Value_Uint64Value:
+ case *celpb.Value_Uint64Value:
return types.Uint(v.GetUint64Value()), nil
- case *exprpb.Value_DoubleValue:
+ case *celpb.Value_DoubleValue:
return types.Double(v.GetDoubleValue()), nil
- case *exprpb.Value_StringValue:
+ case *celpb.Value_StringValue:
return types.String(v.GetStringValue()), nil
- case *exprpb.Value_BytesValue:
+ case *celpb.Value_BytesValue:
return types.Bytes(v.GetBytesValue()), nil
- case *exprpb.Value_ObjectValue:
+ case *celpb.Value_ObjectValue:
any := v.GetObjectValue()
msg, err := anypb.UnmarshalNew(any, proto.UnmarshalOptions{DiscardUnknown: true})
if err != nil {
return nil, err
}
return adapter.NativeToValue(msg), nil
- case *exprpb.Value_MapValue:
+ case *celpb.Value_MapValue:
m := v.GetMapValue()
entries := make(map[ref.Val]ref.Val)
for _, entry := range m.Entries {
- key, err := ValueToRefValue(adapter, entry.Key)
+ key, err := ProtoAsValue(adapter, entry.Key)
if err != nil {
return nil, err
}
- pb, err := ValueToRefValue(adapter, entry.Value)
+ pb, err := ProtoAsValue(adapter, entry.Value)
if err != nil {
return nil, err
}
entries[key] = pb
}
return adapter.NativeToValue(entries), nil
- case *exprpb.Value_ListValue:
+ case *celpb.Value_ListValue:
l := v.GetListValue()
elts := make([]ref.Val, len(l.Values))
for i, e := range l.Values {
- rv, err := ValueToRefValue(adapter, e)
+ rv, err := ProtoAsValue(adapter, e)
if err != nil {
return nil, err
}
elts[i] = rv
}
return adapter.NativeToValue(elts), nil
- case *exprpb.Value_TypeValue:
+ case *celpb.Value_TypeValue:
typeName := v.GetTypeValue()
tv, ok := typeNameToTypeValue[typeName]
if ok {
@@ -250,3 +283,12 @@ func ValueToRefValue(adapter types.Adapter, v *exprpb.Value) (ref.Val, error) {
}
return nil, errors.New("unknown value")
}
+
+func convertProto(src, dst proto.Message) error {
+ pb, err := proto.Marshal(src)
+ if err != nil {
+ return err
+ }
+ err = proto.Unmarshal(pb, dst)
+ return err
+}
diff --git a/vendor/github.com/google/cel-go/cel/library.go b/vendor/github.com/google/cel-go/cel/library.go
index deddc14e59..be59f1b028 100644
--- a/vendor/github.com/google/cel-go/cel/library.go
+++ b/vendor/github.com/google/cel-go/cel/library.go
@@ -403,7 +403,7 @@ func optMap(meh MacroExprFactory, target ast.Expr, args []ast.Expr) (ast.Expr, *
meh.NewList(),
unusedIterVar,
varName,
- meh.NewMemberCall(valueFunc, target),
+ meh.NewMemberCall(valueFunc, meh.Copy(target)),
meh.NewLiteral(types.False),
meh.NewIdent(varName),
mapExpr,
@@ -430,7 +430,7 @@ func optFlatMap(meh MacroExprFactory, target ast.Expr, args []ast.Expr) (ast.Exp
meh.NewList(),
unusedIterVar,
varName,
- meh.NewMemberCall(valueFunc, target),
+ meh.NewMemberCall(valueFunc, meh.Copy(target)),
meh.NewLiteral(types.False),
meh.NewIdent(varName),
mapExpr,
@@ -446,6 +446,12 @@ func enableOptionalSyntax() EnvOption {
}
}
+// EnableErrorOnBadPresenceTest enables error generation when a presence test or optional field
+// selection is performed on a primitive type.
+func EnableErrorOnBadPresenceTest(value bool) EnvOption {
+ return features(featureEnableErrorOnBadPresenceTest, value)
+}
+
func decorateOptionalOr(i interpreter.Interpretable) (interpreter.Interpretable, error) {
call, ok := i.(interpreter.InterpretableCall)
if !ok {
diff --git a/vendor/github.com/google/cel-go/cel/optimizer.go b/vendor/github.com/google/cel-go/cel/optimizer.go
index f26df46234..9a2a97a647 100644
--- a/vendor/github.com/google/cel-go/cel/optimizer.go
+++ b/vendor/github.com/google/cel-go/cel/optimizer.go
@@ -15,6 +15,8 @@
package cel
import (
+ "sort"
+
"github.com/google/cel-go/common"
"github.com/google/cel-go/common/ast"
"github.com/google/cel-go/common/types"
@@ -46,8 +48,8 @@ func NewStaticOptimizer(optimizers ...ASTOptimizer) *StaticOptimizer {
// If issues are encountered, the Issues.Err() return value will be non-nil.
func (opt *StaticOptimizer) Optimize(env *Env, a *Ast) (*Ast, *Issues) {
// Make a copy of the AST to be optimized.
- optimized := ast.Copy(a.impl)
- ids := newIDGenerator(ast.MaxID(a.impl))
+ optimized := ast.Copy(a.NativeRep())
+ ids := newIDGenerator(ast.MaxID(a.NativeRep()))
// Create the optimizer context, could be pooled in the future.
issues := NewIssues(common.NewErrors(a.Source()))
@@ -84,7 +86,7 @@ func (opt *StaticOptimizer) Optimize(env *Env, a *Ast) (*Ast, *Issues) {
if iss.Err() != nil {
return nil, iss
}
- optimized = checked.impl
+ optimized = checked.NativeRep()
}
// Return the optimized result.
@@ -98,14 +100,21 @@ func (opt *StaticOptimizer) Optimize(env *Env, a *Ast) (*Ast, *Issues) {
// that the ids within the expression correspond to the ids within macros.
func normalizeIDs(idGen ast.IDGenerator, optimized ast.Expr, info *ast.SourceInfo) {
optimized.RenumberIDs(idGen)
-
if len(info.MacroCalls()) == 0 {
return
}
+ // Sort the macro ids to make sure that the renumbering of macro-specific variables
+ // is stable across normalization calls.
+ sortedMacroIDs := []int64{}
+ for id := range info.MacroCalls() {
+ sortedMacroIDs = append(sortedMacroIDs, id)
+ }
+ sort.Slice(sortedMacroIDs, func(i, j int) bool { return sortedMacroIDs[i] < sortedMacroIDs[j] })
+
// First, update the macro call ids themselves.
callIDMap := map[int64]int64{}
- for id := range info.MacroCalls() {
+ for _, id := range sortedMacroIDs {
callIDMap[id] = idGen(id)
}
// Then update the macro call definitions which refer to these ids, but
@@ -116,7 +125,8 @@ func normalizeIDs(idGen ast.IDGenerator, optimized ast.Expr, info *ast.SourceInf
call ast.Expr
}
macroUpdates := []macroUpdate{}
- for oldID, newID := range callIDMap {
+ for _, oldID := range sortedMacroIDs {
+ newID := callIDMap[oldID]
call, found := info.GetMacroCall(oldID)
if !found {
continue
@@ -134,6 +144,7 @@ func cleanupMacroRefs(expr ast.Expr, info *ast.SourceInfo) {
if len(info.MacroCalls()) == 0 {
return
}
+
// Sanitize the macro call references once the optimized expression has been computed
// and the ids normalized between the expression and the macros.
exprRefMap := make(map[int64]struct{})
@@ -200,6 +211,16 @@ type OptimizerContext struct {
*Issues
}
+// ExtendEnv auguments the context's environment with the additional options.
+func (opt *OptimizerContext) ExtendEnv(opts ...EnvOption) error {
+ e, err := opt.Env.Extend(opts...)
+ if err != nil {
+ return err
+ }
+ opt.Env = e
+ return nil
+}
+
// ASTOptimizer applies an optimization over an AST and returns the optimized result.
type ASTOptimizer interface {
// Optimize optimizes a type-checked AST within an Environment and accumulates any issues.
@@ -253,6 +274,11 @@ func (opt *optimizerExprFactory) SetMacroCall(id int64, expr ast.Expr) {
opt.sourceInfo.SetMacroCall(id, expr)
}
+// MacroCalls returns the map of macro calls currently in the context.
+func (opt *optimizerExprFactory) MacroCalls() map[int64]ast.Expr {
+ return opt.sourceInfo.MacroCalls()
+}
+
// NewBindMacro creates an AST expression representing the expanded bind() macro, and a macro expression
// representing the unexpanded call signature to be inserted into the source info macro call metadata.
func (opt *optimizerExprFactory) NewBindMacro(macroID int64, varName string, varInit, remaining ast.Expr) (astExpr, macroExpr ast.Expr) {
diff --git a/vendor/github.com/google/cel-go/cel/options.go b/vendor/github.com/google/cel-go/cel/options.go
index 3c53e21afa..69c6942634 100644
--- a/vendor/github.com/google/cel-go/cel/options.go
+++ b/vendor/github.com/google/cel-go/cel/options.go
@@ -61,6 +61,10 @@ const (
// compressing the logic graph to a single call when multiple like-operator
// expressions occur: e.g. a && b && c && d -> call(_&&_, [a, b, c, d])
featureVariadicLogicalASTs
+
+ // Enable error generation when a presence test or optional field selection is
+ // performed on a primitive type.
+ featureEnableErrorOnBadPresenceTest
)
// EnvOption is a functional interface for configuring the environment.
@@ -243,6 +247,13 @@ func Abbrevs(qualifiedNames ...string) EnvOption {
}
}
+// customTypeRegistry is an internal-only interface containing the minimum methods required to support
+// custom types. It is a subset of methods from ref.TypeRegistry.
+type customTypeRegistry interface {
+ RegisterDescriptor(protoreflect.FileDescriptor) error
+ RegisterType(...ref.Type) error
+}
+
// Types adds one or more type declarations to the environment, allowing for construction of
// type-literals whose definitions are included in the common expression built-in set.
//
@@ -255,12 +266,7 @@ func Abbrevs(qualifiedNames ...string) EnvOption {
// Note: This option must be specified after the CustomTypeProvider option when used together.
func Types(addTypes ...any) EnvOption {
return func(e *Env) (*Env, error) {
- var reg ref.TypeRegistry
- var isReg bool
- reg, isReg = e.provider.(*types.Registry)
- if !isReg {
- reg, isReg = e.provider.(ref.TypeRegistry)
- }
+ reg, isReg := e.provider.(customTypeRegistry)
if !isReg {
return nil, fmt.Errorf("custom types not supported by provider: %T", e.provider)
}
@@ -297,7 +303,7 @@ func Types(addTypes ...any) EnvOption {
// extension or by re-using the same EnvOption with another NewEnv() call.
func TypeDescs(descs ...any) EnvOption {
return func(e *Env) (*Env, error) {
- reg, isReg := e.provider.(ref.TypeRegistry)
+ reg, isReg := e.provider.(customTypeRegistry)
if !isReg {
return nil, fmt.Errorf("custom types not supported by provider: %T", e.provider)
}
@@ -345,7 +351,7 @@ func TypeDescs(descs ...any) EnvOption {
}
}
-func registerFileSet(reg ref.TypeRegistry, fileSet *descpb.FileDescriptorSet) error {
+func registerFileSet(reg customTypeRegistry, fileSet *descpb.FileDescriptorSet) error {
files, err := protodesc.NewFiles(fileSet)
if err != nil {
return fmt.Errorf("protodesc.NewFiles(%v) failed: %v", fileSet, err)
@@ -353,7 +359,7 @@ func registerFileSet(reg ref.TypeRegistry, fileSet *descpb.FileDescriptorSet) er
return registerFiles(reg, files)
}
-func registerFiles(reg ref.TypeRegistry, files *protoregistry.Files) error {
+func registerFiles(reg customTypeRegistry, files *protoregistry.Files) error {
var err error
files.RangeFiles(func(fd protoreflect.FileDescriptor) bool {
err = reg.RegisterDescriptor(fd)
diff --git a/vendor/github.com/google/cel-go/cel/program.go b/vendor/github.com/google/cel-go/cel/program.go
index ece9fbdafa..49bd537838 100644
--- a/vendor/github.com/google/cel-go/cel/program.go
+++ b/vendor/github.com/google/cel-go/cel/program.go
@@ -19,6 +19,7 @@ import (
"fmt"
"sync"
+ "github.com/google/cel-go/common/ast"
"github.com/google/cel-go/common/types"
"github.com/google/cel-go/common/types/ref"
"github.com/google/cel-go/interpreter"
@@ -99,6 +100,9 @@ type EvalDetails struct {
// State of the evaluation, non-nil if the OptTrackState or OptExhaustiveEval is specified
// within EvalOptions.
func (ed *EvalDetails) State() interpreter.EvalState {
+ if ed == nil {
+ return interpreter.NewEvalState()
+ }
return ed.state
}
@@ -151,7 +155,7 @@ func (p *prog) clone() *prog {
// ProgramOption values.
//
// If the program cannot be configured the prog will be nil, with a non-nil error response.
-func newProgram(e *Env, a *Ast, opts []ProgramOption) (Program, error) {
+func newProgram(e *Env, a *ast.AST, opts []ProgramOption) (Program, error) {
// Build the dispatcher, interpreter, and default program value.
disp := interpreter.NewDispatcher()
@@ -187,10 +191,13 @@ func newProgram(e *Env, a *Ast, opts []ProgramOption) (Program, error) {
// Set the attribute factory after the options have been set.
var attrFactory interpreter.AttributeFactory
+ attrFactorOpts := []interpreter.AttrFactoryOption{
+ interpreter.EnableErrorOnBadPresenceTest(p.HasFeature(featureEnableErrorOnBadPresenceTest)),
+ }
if p.evalOpts&OptPartialEval == OptPartialEval {
- attrFactory = interpreter.NewPartialAttributeFactory(e.Container, e.adapter, e.provider)
+ attrFactory = interpreter.NewPartialAttributeFactory(e.Container, e.adapter, e.provider, attrFactorOpts...)
} else {
- attrFactory = interpreter.NewAttributeFactory(e.Container, e.adapter, e.provider)
+ attrFactory = interpreter.NewAttributeFactory(e.Container, e.adapter, e.provider, attrFactorOpts...)
}
interp := interpreter.NewInterpreter(disp, e.Container, e.provider, e.adapter, attrFactory)
p.interpreter = interp
@@ -252,9 +259,9 @@ func newProgram(e *Env, a *Ast, opts []ProgramOption) (Program, error) {
return p.initInterpretable(a, decorators)
}
-func (p *prog) initInterpretable(a *Ast, decs []interpreter.InterpretableDecorator) (*prog, error) {
+func (p *prog) initInterpretable(a *ast.AST, decs []interpreter.InterpretableDecorator) (*prog, error) {
// When the AST has been exprAST it contains metadata that can be used to speed up program execution.
- interpretable, err := p.interpreter.NewInterpretable(a.impl, decs...)
+ interpretable, err := p.interpreter.NewInterpretable(a, decs...)
if err != nil {
return nil, err
}
diff --git a/vendor/github.com/google/cel-go/checker/BUILD.bazel b/vendor/github.com/google/cel-go/checker/BUILD.bazel
index 997fa91d15..678b412a95 100644
--- a/vendor/github.com/google/cel-go/checker/BUILD.bazel
+++ b/vendor/github.com/google/cel-go/checker/BUILD.bazel
@@ -16,7 +16,6 @@ go_library(
"options.go",
"printer.go",
"scopes.go",
- "standard.go",
"types.go",
],
importpath = "github.com/google/cel-go/checker",
diff --git a/vendor/github.com/google/cel-go/checker/checker.go b/vendor/github.com/google/cel-go/checker/checker.go
index 57fb3ce5ea..6824af7a54 100644
--- a/vendor/github.com/google/cel-go/checker/checker.go
+++ b/vendor/github.com/google/cel-go/checker/checker.go
@@ -496,16 +496,32 @@ func (c *checker) checkComprehension(e ast.Expr) {
comp := e.AsComprehension()
c.check(comp.IterRange())
c.check(comp.AccuInit())
- accuType := c.getType(comp.AccuInit())
rangeType := substitute(c.mappings, c.getType(comp.IterRange()), false)
- var varType *types.Type
+ // Create a scope for the comprehension since it has a local accumulation variable.
+ // This scope will contain the accumulation variable used to compute the result.
+ accuType := c.getType(comp.AccuInit())
+ c.env = c.env.enterScope()
+ c.env.AddIdents(decls.NewVariable(comp.AccuVar(), accuType))
+
+ var varType, var2Type *types.Type
switch rangeType.Kind() {
case types.ListKind:
+ // varType represents the list element type for one-variable comprehensions.
varType = rangeType.Parameters()[0]
+ if comp.HasIterVar2() {
+ // varType represents the list index (int) for two-variable comprehensions,
+ // and var2Type represents the list element type.
+ var2Type = varType
+ varType = types.IntType
+ }
case types.MapKind:
- // Ranges over the keys.
+ // varType represents the map entry key for all comprehension types.
varType = rangeType.Parameters()[0]
+ if comp.HasIterVar2() {
+ // var2Type represents the map entry value for two-variable comprehensions.
+ var2Type = rangeType.Parameters()[1]
+ }
case types.DynKind, types.ErrorKind, types.TypeParamKind:
// Set the range type to DYN to prevent assignment to a potentially incorrect type
// at a later point in type-checking. The isAssignable call will update the type
@@ -513,18 +529,23 @@ func (c *checker) checkComprehension(e ast.Expr) {
c.isAssignable(types.DynType, rangeType)
// Set the range iteration variable to type DYN as well.
varType = types.DynType
+ if comp.HasIterVar2() {
+ var2Type = types.DynType
+ }
default:
c.errors.notAComprehensionRange(comp.IterRange().ID(), c.location(comp.IterRange()), rangeType)
varType = types.ErrorType
+ if comp.HasIterVar2() {
+ var2Type = types.ErrorType
+ }
}
- // Create a scope for the comprehension since it has a local accumulation variable.
- // This scope will contain the accumulation variable used to compute the result.
- c.env = c.env.enterScope()
- c.env.AddIdents(decls.NewVariable(comp.AccuVar(), accuType))
// Create a block scope for the loop.
c.env = c.env.enterScope()
c.env.AddIdents(decls.NewVariable(comp.IterVar(), varType))
+ if comp.HasIterVar2() {
+ c.env.AddIdents(decls.NewVariable(comp.IterVar2(), var2Type))
+ }
// Check the variable references in the condition and step.
c.check(comp.LoopCondition())
c.assertType(comp.LoopCondition(), types.BoolType)
diff --git a/vendor/github.com/google/cel-go/checker/standard.go b/vendor/github.com/google/cel-go/checker/standard.go
deleted file mode 100644
index 11b35b80ee..0000000000
--- a/vendor/github.com/google/cel-go/checker/standard.go
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright 2018 Google LLC
-//
-// 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 checker
-
-import (
- "github.com/google/cel-go/common/stdlib"
-
- exprpb "google.golang.org/genproto/googleapis/api/expr/v1alpha1"
-)
-
-// StandardFunctions returns the Decls for all functions in the evaluator.
-//
-// Deprecated: prefer stdlib.FunctionExprDecls()
-func StandardFunctions() []*exprpb.Decl {
- return stdlib.FunctionExprDecls()
-}
-
-// StandardTypes returns the set of type identifiers for standard library types.
-//
-// Deprecated: prefer stdlib.TypeExprDecls()
-func StandardTypes() []*exprpb.Decl {
- return stdlib.TypeExprDecls()
-}
diff --git a/vendor/github.com/google/cel-go/common/BUILD.bazel b/vendor/github.com/google/cel-go/common/BUILD.bazel
index d6165b13af..eef7f281be 100644
--- a/vendor/github.com/google/cel-go/common/BUILD.bazel
+++ b/vendor/github.com/google/cel-go/common/BUILD.bazel
@@ -18,7 +18,6 @@ go_library(
deps = [
"//common/runes:go_default_library",
"@org_golang_google_genproto_googleapis_api//expr/v1alpha1:go_default_library",
- "@org_golang_x_text//width:go_default_library",
],
)
diff --git a/vendor/github.com/google/cel-go/common/ast/BUILD.bazel b/vendor/github.com/google/cel-go/common/ast/BUILD.bazel
index 5c40c37813..9824f57a9f 100644
--- a/vendor/github.com/google/cel-go/common/ast/BUILD.bazel
+++ b/vendor/github.com/google/cel-go/common/ast/BUILD.bazel
@@ -15,11 +15,13 @@ go_library(
"navigable.go",
],
importpath = "github.com/google/cel-go/common/ast",
- deps = [
+ deps = [
"//common:go_default_library",
"//common/types:go_default_library",
"//common/types/ref:go_default_library",
+ "@dev_cel_expr//:expr",
"@org_golang_google_genproto_googleapis_api//expr/v1alpha1:go_default_library",
+ "@org_golang_google_protobuf//proto:go_default_library",
"@org_golang_google_protobuf//types/known/structpb:go_default_library",
],
)
@@ -35,12 +37,13 @@ go_test(
embed = [
":go_default_library",
],
- deps = [
+ deps = [
"//checker:go_default_library",
"//checker/decls:go_default_library",
"//common:go_default_library",
"//common/containers:go_default_library",
"//common/decls:go_default_library",
+ "//common/operators:go_default_library",
"//common/overloads:go_default_library",
"//common/stdlib:go_default_library",
"//common/types:go_default_library",
diff --git a/vendor/github.com/google/cel-go/common/ast/ast.go b/vendor/github.com/google/cel-go/common/ast/ast.go
index 355ddd49a2..b807669d49 100644
--- a/vendor/github.com/google/cel-go/common/ast/ast.go
+++ b/vendor/github.com/google/cel-go/common/ast/ast.go
@@ -310,21 +310,18 @@ func (s *SourceInfo) SetOffsetRange(id int64, o OffsetRange) {
s.offsetRanges[id] = o
}
+// ClearOffsetRange removes the OffsetRange for the given expression id.
+func (s *SourceInfo) ClearOffsetRange(id int64) {
+ if s != nil {
+ delete(s.offsetRanges, id)
+ }
+}
+
// GetStartLocation calculates the human-readable 1-based line and 0-based column of the first character
// of the expression node at the id.
func (s *SourceInfo) GetStartLocation(id int64) common.Location {
if o, found := s.GetOffsetRange(id); found {
- line := 1
- col := int(o.Start)
- for _, lineOffset := range s.LineOffsets() {
- if lineOffset < o.Start {
- line++
- col = int(o.Start - lineOffset)
- } else {
- break
- }
- }
- return common.NewLocation(line, col)
+ return s.GetLocationByOffset(o.Start)
}
return common.NoLocation
}
@@ -336,21 +333,25 @@ func (s *SourceInfo) GetStartLocation(id int64) common.Location {
// be identical to the start location for the expression.
func (s *SourceInfo) GetStopLocation(id int64) common.Location {
if o, found := s.GetOffsetRange(id); found {
- line := 1
- col := int(o.Stop)
- for _, lineOffset := range s.LineOffsets() {
- if lineOffset < o.Stop {
- line++
- col = int(o.Stop - lineOffset)
- } else {
- break
- }
- }
- return common.NewLocation(line, col)
+ return s.GetLocationByOffset(o.Stop)
}
return common.NoLocation
}
+// GetLocationByOffset returns the line and column information for a given character offset.
+func (s *SourceInfo) GetLocationByOffset(offset int32) common.Location {
+ line := 1
+ col := int(offset)
+ for _, lineOffset := range s.LineOffsets() {
+ if lineOffset > offset {
+ break
+ }
+ line++
+ col = int(offset - lineOffset)
+ }
+ return common.NewLocation(line, col)
+}
+
// ComputeOffset calculates the 0-based character offset from a 1-based line and 0-based column.
func (s *SourceInfo) ComputeOffset(line, col int32) int32 {
if s != nil {
diff --git a/vendor/github.com/google/cel-go/common/ast/conversion.go b/vendor/github.com/google/cel-go/common/ast/conversion.go
index 8f2c4bd1e6..435d8f6547 100644
--- a/vendor/github.com/google/cel-go/common/ast/conversion.go
+++ b/vendor/github.com/google/cel-go/common/ast/conversion.go
@@ -17,12 +17,14 @@ package ast
import (
"fmt"
+ "google.golang.org/protobuf/proto"
+
"github.com/google/cel-go/common/types"
"github.com/google/cel-go/common/types/ref"
- structpb "google.golang.org/protobuf/types/known/structpb"
-
+ celpb "cel.dev/expr"
exprpb "google.golang.org/genproto/googleapis/api/expr/v1alpha1"
+ structpb "google.golang.org/protobuf/types/known/structpb"
)
// ToProto converts an AST to a CheckedExpr protobouf.
@@ -173,9 +175,10 @@ func exprComprehension(factory ExprFactory, id int64, comp *exprpb.Expr_Comprehe
if err != nil {
return nil, err
}
- return factory.NewComprehension(id,
+ return factory.NewComprehensionTwoVar(id,
iterRange,
comp.GetIterVar(),
+ comp.GetIterVar2(),
comp.GetAccuVar(),
accuInit,
loopCond,
@@ -363,6 +366,7 @@ func protoComprehension(id int64, comp ComprehensionExpr) (*exprpb.Expr, error)
ExprKind: &exprpb.Expr_ComprehensionExpr{
ComprehensionExpr: &exprpb.Expr_Comprehension{
IterVar: comp.IterVar(),
+ IterVar2: comp.IterVar2(),
IterRange: iterRange,
AccuVar: comp.AccuVar(),
AccuInit: accuInit,
@@ -609,24 +613,47 @@ func ValToConstant(v ref.Val) (*exprpb.Constant, error) {
// ConstantToVal converts a protobuf Constant to a CEL-native ref.Val.
func ConstantToVal(c *exprpb.Constant) (ref.Val, error) {
+ return AlphaProtoConstantAsVal(c)
+}
+
+// AlphaProtoConstantAsVal converts a v1alpha1.Constant protobuf to a CEL-native ref.Val.
+func AlphaProtoConstantAsVal(c *exprpb.Constant) (ref.Val, error) {
if c == nil {
return nil, nil
}
+ canonical := &celpb.Constant{}
+ if err := convertProto(c, canonical); err != nil {
+ return nil, err
+ }
+ return ProtoConstantAsVal(canonical)
+}
+
+// ProtoConstantAsVal converts a canonical celpb.Constant protobuf to a CEL-native ref.Val.
+func ProtoConstantAsVal(c *celpb.Constant) (ref.Val, error) {
switch c.GetConstantKind().(type) {
- case *exprpb.Constant_BoolValue:
+ case *celpb.Constant_BoolValue:
return types.Bool(c.GetBoolValue()), nil
- case *exprpb.Constant_BytesValue:
+ case *celpb.Constant_BytesValue:
return types.Bytes(c.GetBytesValue()), nil
- case *exprpb.Constant_DoubleValue:
+ case *celpb.Constant_DoubleValue:
return types.Double(c.GetDoubleValue()), nil
- case *exprpb.Constant_Int64Value:
+ case *celpb.Constant_Int64Value:
return types.Int(c.GetInt64Value()), nil
- case *exprpb.Constant_NullValue:
+ case *celpb.Constant_NullValue:
return types.NullValue, nil
- case *exprpb.Constant_StringValue:
+ case *celpb.Constant_StringValue:
return types.String(c.GetStringValue()), nil
- case *exprpb.Constant_Uint64Value:
+ case *celpb.Constant_Uint64Value:
return types.Uint(c.GetUint64Value()), nil
}
return nil, fmt.Errorf("unsupported constant kind: %v", c.GetConstantKind())
}
+
+func convertProto(src, dst proto.Message) error {
+ pb, err := proto.Marshal(src)
+ if err != nil {
+ return err
+ }
+ err = proto.Unmarshal(pb, dst)
+ return err
+}
diff --git a/vendor/github.com/google/cel-go/common/ast/expr.go b/vendor/github.com/google/cel-go/common/ast/expr.go
index c9d88bbaab..9f55cb3b9f 100644
--- a/vendor/github.com/google/cel-go/common/ast/expr.go
+++ b/vendor/github.com/google/cel-go/common/ast/expr.go
@@ -158,7 +158,7 @@ type EntryExpr interface {
// IDGenerator produces unique ids suitable for tagging expression nodes
type IDGenerator func(originalID int64) int64
-// CallExpr defines an interface for inspecting a function call and its arugments.
+// CallExpr defines an interface for inspecting a function call and its arguments.
type CallExpr interface {
// FunctionName returns the name of the function.
FunctionName() string
@@ -269,8 +269,22 @@ type ComprehensionExpr interface {
IterRange() Expr
// IterVar returns the iteration variable name.
+ //
+ // For one-variable comprehensions, the iter var refers to the element value
+ // when iterating over a list, or the map key when iterating over a map.
+ //
+ // For two-variable comprehneions, the iter var refers to the list index or the
+ // map key.
IterVar() string
+ // IterVar2 returns the second iteration variable name.
+ //
+ // When the value is non-empty, the comprehension is a two-variable comprehension.
+ IterVar2() string
+
+ // HasIterVar2 returns true if the second iteration variable is non-empty.
+ HasIterVar2() bool
+
// AccuVar returns the accumulation variable name.
AccuVar() string
@@ -397,6 +411,7 @@ func (e *expr) SetKindCase(other Expr) {
e.exprKindCase = &baseComprehensionExpr{
iterRange: c.IterRange(),
iterVar: c.IterVar(),
+ iterVar2: c.IterVar2(),
accuVar: c.AccuVar(),
accuInit: c.AccuInit(),
loopCond: c.LoopCondition(),
@@ -505,6 +520,7 @@ var _ ComprehensionExpr = &baseComprehensionExpr{}
type baseComprehensionExpr struct {
iterRange Expr
iterVar string
+ iterVar2 string
accuVar string
accuInit Expr
loopCond Expr
@@ -527,6 +543,14 @@ func (e *baseComprehensionExpr) IterVar() string {
return e.iterVar
}
+func (e *baseComprehensionExpr) IterVar2() string {
+ return e.iterVar2
+}
+
+func (e *baseComprehensionExpr) HasIterVar2() bool {
+ return e.iterVar2 != ""
+}
+
func (e *baseComprehensionExpr) AccuVar() string {
return e.accuVar
}
diff --git a/vendor/github.com/google/cel-go/common/ast/factory.go b/vendor/github.com/google/cel-go/common/ast/factory.go
index b7f36e72a4..994806b793 100644
--- a/vendor/github.com/google/cel-go/common/ast/factory.go
+++ b/vendor/github.com/google/cel-go/common/ast/factory.go
@@ -27,9 +27,12 @@ type ExprFactory interface {
// NewCall creates an Expr value representing a global function call.
NewCall(id int64, function string, args ...Expr) Expr
- // NewComprehension creates an Expr value representing a comprehension over a value range.
+ // NewComprehension creates an Expr value representing a one-variable comprehension over a value range.
NewComprehension(id int64, iterRange Expr, iterVar, accuVar string, accuInit, loopCondition, loopStep, result Expr) Expr
+ // NewComprehensionTwoVar creates an Expr value representing a two-variable comprehension over a value range.
+ NewComprehensionTwoVar(id int64, iterRange Expr, iterVar, iterVar2, accuVar string, accuInit, loopCondition, loopStep, result Expr) Expr
+
// NewMemberCall creates an Expr value representing a member function call.
NewMemberCall(id int64, function string, receiver Expr, args ...Expr) Expr
@@ -111,11 +114,17 @@ func (fac *baseExprFactory) NewMemberCall(id int64, function string, target Expr
}
func (fac *baseExprFactory) NewComprehension(id int64, iterRange Expr, iterVar, accuVar string, accuInit, loopCond, loopStep, result Expr) Expr {
+ // Set the iter_var2 to empty string to indicate the second variable is omitted
+ return fac.NewComprehensionTwoVar(id, iterRange, iterVar, "", accuVar, accuInit, loopCond, loopStep, result)
+}
+
+func (fac *baseExprFactory) NewComprehensionTwoVar(id int64, iterRange Expr, iterVar, iterVar2, accuVar string, accuInit, loopCond, loopStep, result Expr) Expr {
return fac.newExpr(
id,
&baseComprehensionExpr{
iterRange: iterRange,
iterVar: iterVar,
+ iterVar2: iterVar2,
accuVar: accuVar,
accuInit: accuInit,
loopCond: loopCond,
@@ -223,9 +232,10 @@ func (fac *baseExprFactory) CopyExpr(e Expr) Expr {
return fac.NewMemberCall(e.ID(), c.FunctionName(), fac.CopyExpr(c.Target()), argsCopy...)
case ComprehensionKind:
compre := e.AsComprehension()
- return fac.NewComprehension(e.ID(),
+ return fac.NewComprehensionTwoVar(e.ID(),
fac.CopyExpr(compre.IterRange()),
compre.IterVar(),
+ compre.IterVar2(),
compre.AccuVar(),
fac.CopyExpr(compre.AccuInit()),
fac.CopyExpr(compre.LoopCondition()),
diff --git a/vendor/github.com/google/cel-go/common/ast/navigable.go b/vendor/github.com/google/cel-go/common/ast/navigable.go
index f5ddf6aac6..d7a90fb7c3 100644
--- a/vendor/github.com/google/cel-go/common/ast/navigable.go
+++ b/vendor/github.com/google/cel-go/common/ast/navigable.go
@@ -390,6 +390,14 @@ func (comp navigableComprehensionImpl) IterVar() string {
return comp.Expr.AsComprehension().IterVar()
}
+func (comp navigableComprehensionImpl) IterVar2() string {
+ return comp.Expr.AsComprehension().IterVar2()
+}
+
+func (comp navigableComprehensionImpl) HasIterVar2() bool {
+ return comp.Expr.AsComprehension().HasIterVar2()
+}
+
func (comp navigableComprehensionImpl) AccuVar() string {
return comp.Expr.AsComprehension().AccuVar()
}
diff --git a/vendor/github.com/google/cel-go/common/containers/container.go b/vendor/github.com/google/cel-go/common/containers/container.go
index 52153d4cd1..3097a3f785 100644
--- a/vendor/github.com/google/cel-go/common/containers/container.go
+++ b/vendor/github.com/google/cel-go/common/containers/container.go
@@ -19,6 +19,7 @@ package containers
import (
"fmt"
"strings"
+ "unicode"
"github.com/google/cel-go/common/ast"
)
@@ -212,6 +213,13 @@ type ContainerOption func(*Container) (*Container, error)
func Abbrevs(qualifiedNames ...string) ContainerOption {
return func(c *Container) (*Container, error) {
for _, qn := range qualifiedNames {
+ qn = strings.TrimSpace(qn)
+ for _, r := range qn {
+ if !isIdentifierChar(r) {
+ return nil, fmt.Errorf(
+ "invalid qualified name: %s, wanted name of the form 'qualified.name'", qn)
+ }
+ }
ind := strings.LastIndex(qn, ".")
if ind <= 0 || ind >= len(qn)-1 {
return nil, fmt.Errorf(
@@ -278,6 +286,10 @@ func aliasAs(kind, qualifiedName, alias string) ContainerOption {
}
}
+func isIdentifierChar(r rune) bool {
+ return r <= unicode.MaxASCII && (r == '.' || r == '_' || unicode.IsLetter(r) || unicode.IsNumber(r))
+}
+
// Name sets the fully-qualified name of the Container.
func Name(name string) ContainerOption {
return func(c *Container) (*Container, error) {
diff --git a/vendor/github.com/google/cel-go/common/debug/debug.go b/vendor/github.com/google/cel-go/common/debug/debug.go
index e4c01ac6ed..25d2e3d71c 100644
--- a/vendor/github.com/google/cel-go/common/debug/debug.go
+++ b/vendor/github.com/google/cel-go/common/debug/debug.go
@@ -215,6 +215,11 @@ func (w *debugWriter) appendComprehension(comprehension ast.ComprehensionExpr) {
w.append(comprehension.IterVar())
w.append(",")
w.appendLine()
+ if comprehension.HasIterVar2() {
+ w.append(comprehension.IterVar2())
+ w.append(",")
+ w.appendLine()
+ }
w.append("// Target")
w.appendLine()
w.Buffer(comprehension.IterRange())
diff --git a/vendor/github.com/google/cel-go/common/decls/decls.go b/vendor/github.com/google/cel-go/common/decls/decls.go
index 734ebe57e5..bfeb52c515 100644
--- a/vendor/github.com/google/cel-go/common/decls/decls.go
+++ b/vendor/github.com/google/cel-go/common/decls/decls.go
@@ -162,7 +162,9 @@ func (f *FunctionDecl) AddOverload(overload *OverloadDecl) error {
if oID == overload.ID() {
if o.SignatureEquals(overload) && o.IsNonStrict() == overload.IsNonStrict() {
// Allow redefinition of an overload implementation so long as the signatures match.
- f.overloads[oID] = overload
+ if overload.hasBinding() {
+ f.overloads[oID] = overload
+ }
return nil
}
return fmt.Errorf("overload redefinition in function. %s: %s has multiple definitions", f.Name(), oID)
@@ -249,15 +251,15 @@ func (f *FunctionDecl) Bindings() ([]*functions.Overload, error) {
// are preserved in order to assist with the function resolution step.
switch len(args) {
case 1:
- if o.unaryOp != nil && o.matchesRuntimeSignature( /* disableTypeGuards=*/ false, args...) {
+ if o.unaryOp != nil && o.matchesRuntimeSignature(f.disableTypeGuards, args...) {
return o.unaryOp(args[0])
}
case 2:
- if o.binaryOp != nil && o.matchesRuntimeSignature( /* disableTypeGuards=*/ false, args...) {
+ if o.binaryOp != nil && o.matchesRuntimeSignature(f.disableTypeGuards, args...) {
return o.binaryOp(args[0], args[1])
}
}
- if o.functionOp != nil && o.matchesRuntimeSignature( /* disableTypeGuards=*/ false, args...) {
+ if o.functionOp != nil && o.matchesRuntimeSignature(f.disableTypeGuards, args...) {
return o.functionOp(args...)
}
// eventually this will fall through to the noSuchOverload below.
@@ -775,8 +777,18 @@ func (v *VariableDecl) DeclarationIsEquivalent(other *VariableDecl) bool {
return v.Name() == other.Name() && v.Type().IsEquivalentType(other.Type())
}
+// TypeVariable creates a new type identifier for use within a types.Provider
+func TypeVariable(t *types.Type) *VariableDecl {
+ return NewVariable(t.TypeName(), types.NewTypeTypeWithParam(t))
+}
+
// VariableDeclToExprDecl converts a go-native variable declaration into a protobuf-type variable declaration.
func VariableDeclToExprDecl(v *VariableDecl) (*exprpb.Decl, error) {
+ return variableDeclToExprDecl(v)
+}
+
+// variableDeclToExprDecl converts a go-native variable declaration into a protobuf-type variable declaration.
+func variableDeclToExprDecl(v *VariableDecl) (*exprpb.Decl, error) {
varType, err := types.TypeToExprType(v.Type())
if err != nil {
return nil, err
@@ -784,13 +796,13 @@ func VariableDeclToExprDecl(v *VariableDecl) (*exprpb.Decl, error) {
return chkdecls.NewVar(v.Name(), varType), nil
}
-// TypeVariable creates a new type identifier for use within a types.Provider
-func TypeVariable(t *types.Type) *VariableDecl {
- return NewVariable(t.TypeName(), types.NewTypeTypeWithParam(t))
-}
-
// FunctionDeclToExprDecl converts a go-native function declaration into a protobuf-typed function declaration.
func FunctionDeclToExprDecl(f *FunctionDecl) (*exprpb.Decl, error) {
+ return functionDeclToExprDecl(f)
+}
+
+// functionDeclToExprDecl converts a go-native function declaration into a protobuf-typed function declaration.
+func functionDeclToExprDecl(f *FunctionDecl) (*exprpb.Decl, error) {
overloads := make([]*exprpb.Decl_FunctionDecl_Overload, len(f.overloads))
for i, oID := range f.overloadOrdinals {
o := f.overloads[oID]
diff --git a/vendor/github.com/google/cel-go/common/error.go b/vendor/github.com/google/cel-go/common/error.go
index 774dcb5b48..0cf21345e6 100644
--- a/vendor/github.com/google/cel-go/common/error.go
+++ b/vendor/github.com/google/cel-go/common/error.go
@@ -18,8 +18,6 @@ import (
"fmt"
"strings"
"unicode/utf8"
-
- "golang.org/x/text/width"
)
// NewError creates an error associated with an expression id with the given message at the given location.
@@ -35,18 +33,15 @@ type Error struct {
}
const (
- dot = "."
- ind = "^"
+ dot = "."
+ ind = "^"
+ wideDot = "\uff0e"
+ wideInd = "\uff3e"
// maxSnippetLength is the largest number of characters which can be rendered in an error message snippet.
maxSnippetLength = 16384
)
-var (
- wideDot = width.Widen.String(dot)
- wideInd = width.Widen.String(ind)
-)
-
// ToDisplayString decorates the error message with the source location.
func (e *Error) ToDisplayString(source Source) string {
var result = fmt.Sprintf("ERROR: %s:%d:%d: %s",
diff --git a/vendor/github.com/google/cel-go/common/errors.go b/vendor/github.com/google/cel-go/common/errors.go
index 25adc73d8e..895706833f 100644
--- a/vendor/github.com/google/cel-go/common/errors.go
+++ b/vendor/github.com/google/cel-go/common/errors.go
@@ -30,9 +30,13 @@ type Errors struct {
// NewErrors creates a new instance of the Errors type.
func NewErrors(source Source) *Errors {
+ src := source
+ if src == nil {
+ src = NewTextSource("")
+ }
return &Errors{
errors: []*Error{},
- source: source,
+ source: src,
maxErrorsToReport: 100,
}
}
diff --git a/vendor/github.com/google/cel-go/common/runes/buffer.go b/vendor/github.com/google/cel-go/common/runes/buffer.go
index 50aac0b273..021198224d 100644
--- a/vendor/github.com/google/cel-go/common/runes/buffer.go
+++ b/vendor/github.com/google/cel-go/common/runes/buffer.go
@@ -127,20 +127,48 @@ var nilBuffer = &emptyBuffer{}
// elements of the byte or uint16 array, and continue. The underlying storage is an rune array
// containing any Unicode character.
func NewBuffer(data string) Buffer {
+ buf, _ := newBuffer(data, false)
+ return buf
+}
+
+// NewBufferAndLineOffsets returns an efficient implementation of Buffer for the given text based on
+// the ranges of the encoded code points contained within, as well as returning the line offsets.
+//
+// Code points are represented as an array of byte, uint16, or rune. This approach ensures that
+// each index represents a code point by itself without needing to use an array of rune. At first
+// we assume all code points are less than or equal to '\u007f'. If this holds true, the
+// underlying storage is a byte array containing only ASCII characters. If we encountered a code
+// point above this range but less than or equal to '\uffff' we allocate a uint16 array, copy the
+// elements of previous byte array to the uint16 array, and continue. If this holds true, the
+// underlying storage is a uint16 array containing only Unicode characters in the Basic Multilingual
+// Plane. If we encounter a code point above '\uffff' we allocate an rune array, copy the previous
+// elements of the byte or uint16 array, and continue. The underlying storage is an rune array
+// containing any Unicode character.
+func NewBufferAndLineOffsets(data string) (Buffer, []int32) {
+ return newBuffer(data, true)
+}
+
+func newBuffer(data string, lines bool) (Buffer, []int32) {
if len(data) == 0 {
- return nilBuffer
+ return nilBuffer, []int32{0}
}
var (
- idx = 0
- buf8 = make([]byte, 0, len(data))
+ idx = 0
+ off int32 = 0
+ buf8 = make([]byte, 0, len(data))
buf16 []uint16
buf32 []rune
+ offs []int32
)
for idx < len(data) {
r, s := utf8.DecodeRuneInString(data[idx:])
idx += s
+ if lines && r == '\n' {
+ offs = append(offs, off+1)
+ }
if r < utf8.RuneSelf {
buf8 = append(buf8, byte(r))
+ off++
continue
}
if r <= 0xffff {
@@ -150,6 +178,7 @@ func NewBuffer(data string) Buffer {
}
buf8 = nil
buf16 = append(buf16, uint16(r))
+ off++
goto copy16
}
buf32 = make([]rune, len(buf8), len(data))
@@ -158,17 +187,25 @@ func NewBuffer(data string) Buffer {
}
buf8 = nil
buf32 = append(buf32, r)
+ off++
goto copy32
}
+ if lines {
+ offs = append(offs, off+1)
+ }
return &asciiBuffer{
arr: buf8,
- }
+ }, offs
copy16:
for idx < len(data) {
r, s := utf8.DecodeRuneInString(data[idx:])
idx += s
+ if lines && r == '\n' {
+ offs = append(offs, off+1)
+ }
if r <= 0xffff {
buf16 = append(buf16, uint16(r))
+ off++
continue
}
buf32 = make([]rune, len(buf16), len(data))
@@ -177,18 +214,29 @@ copy16:
}
buf16 = nil
buf32 = append(buf32, r)
+ off++
goto copy32
}
+ if lines {
+ offs = append(offs, off+1)
+ }
return &basicBuffer{
arr: buf16,
- }
+ }, offs
copy32:
for idx < len(data) {
r, s := utf8.DecodeRuneInString(data[idx:])
idx += s
+ if lines && r == '\n' {
+ offs = append(offs, off+1)
+ }
buf32 = append(buf32, r)
+ off++
+ }
+ if lines {
+ offs = append(offs, off+1)
}
return &supplementalBuffer{
arr: buf32,
- }
+ }, offs
}
diff --git a/vendor/github.com/google/cel-go/common/source.go b/vendor/github.com/google/cel-go/common/source.go
index acf22bdf15..ec79cb5454 100644
--- a/vendor/github.com/google/cel-go/common/source.go
+++ b/vendor/github.com/google/cel-go/common/source.go
@@ -15,9 +15,6 @@
package common
import (
- "strings"
- "unicode/utf8"
-
"github.com/google/cel-go/common/runes"
exprpb "google.golang.org/genproto/googleapis/api/expr/v1alpha1"
@@ -80,17 +77,11 @@ func NewTextSource(text string) Source {
// NewStringSource creates a new Source from the given contents and description.
func NewStringSource(contents string, description string) Source {
// Compute line offsets up front as they are referred to frequently.
- lines := strings.Split(contents, "\n")
- offsets := make([]int32, len(lines))
- var offset int32
- for i, line := range lines {
- offset = offset + int32(utf8.RuneCountInString(line)) + 1
- offsets[int32(i)] = offset
- }
+ buf, offs := runes.NewBufferAndLineOffsets(contents)
return &sourceImpl{
- Buffer: runes.NewBuffer(contents),
+ Buffer: buf,
description: description,
- lineOffsets: offsets,
+ lineOffsets: offs,
}
}
@@ -172,9 +163,8 @@ func (s *sourceImpl) findLine(characterOffset int32) (int32, int32) {
for _, lineOffset := range s.lineOffsets {
if lineOffset > characterOffset {
break
- } else {
- line++
}
+ line++
}
if line == 1 {
return line, 0
diff --git a/vendor/github.com/google/cel-go/common/stdlib/BUILD.bazel b/vendor/github.com/google/cel-go/common/stdlib/BUILD.bazel
index c130a93f63..b55f452156 100644
--- a/vendor/github.com/google/cel-go/common/stdlib/BUILD.bazel
+++ b/vendor/github.com/google/cel-go/common/stdlib/BUILD.bazel
@@ -12,7 +12,6 @@ go_library(
],
importpath = "github.com/google/cel-go/common/stdlib",
deps = [
- "//checker/decls:go_default_library",
"//common/decls:go_default_library",
"//common/functions:go_default_library",
"//common/operators:go_default_library",
@@ -20,6 +19,5 @@ go_library(
"//common/types:go_default_library",
"//common/types/ref:go_default_library",
"//common/types/traits:go_default_library",
- "@org_golang_google_genproto_googleapis_api//expr/v1alpha1:go_default_library",
],
)
\ No newline at end of file
diff --git a/vendor/github.com/google/cel-go/common/stdlib/standard.go b/vendor/github.com/google/cel-go/common/stdlib/standard.go
index d02cb64bf1..1550c17863 100644
--- a/vendor/github.com/google/cel-go/common/stdlib/standard.go
+++ b/vendor/github.com/google/cel-go/common/stdlib/standard.go
@@ -23,15 +23,11 @@ import (
"github.com/google/cel-go/common/types"
"github.com/google/cel-go/common/types/ref"
"github.com/google/cel-go/common/types/traits"
-
- exprpb "google.golang.org/genproto/googleapis/api/expr/v1alpha1"
)
var (
stdFunctions []*decls.FunctionDecl
- stdFnDecls []*exprpb.Decl
stdTypes []*decls.VariableDecl
- stdTypeDecls []*exprpb.Decl
)
func init() {
@@ -55,15 +51,6 @@ func init() {
decls.TypeVariable(types.UintType),
}
- stdTypeDecls = make([]*exprpb.Decl, 0, len(stdTypes))
- for _, stdType := range stdTypes {
- typeVar, err := decls.VariableDeclToExprDecl(stdType)
- if err != nil {
- panic(err)
- }
- stdTypeDecls = append(stdTypeDecls, typeVar)
- }
-
stdFunctions = []*decls.FunctionDecl{
// Logical operators. Special-cased within the interpreter.
// Note, the singleton binding prevents extensions from overriding the operator behavior.
@@ -576,18 +563,6 @@ func init() {
decls.MemberOverload(overloads.DurationToMilliseconds,
argTypes(types.DurationType), types.IntType)),
}
-
- stdFnDecls = make([]*exprpb.Decl, 0, len(stdFunctions))
- for _, fn := range stdFunctions {
- if fn.IsDeclarationDisabled() {
- continue
- }
- ed, err := decls.FunctionDeclToExprDecl(fn)
- if err != nil {
- panic(err)
- }
- stdFnDecls = append(stdFnDecls, ed)
- }
}
// Functions returns the set of standard library function declarations and definitions for CEL.
@@ -595,27 +570,11 @@ func Functions() []*decls.FunctionDecl {
return stdFunctions
}
-// FunctionExprDecls returns the legacy style protobuf-typed declarations for all functions and overloads
-// in the CEL standard environment.
-//
-// Deprecated: use Functions
-func FunctionExprDecls() []*exprpb.Decl {
- return stdFnDecls
-}
-
// Types returns the set of standard library types for CEL.
func Types() []*decls.VariableDecl {
return stdTypes
}
-// TypeExprDecls returns the legacy style protobuf-typed declarations for all types in the CEL
-// standard environment.
-//
-// Deprecated: use Types
-func TypeExprDecls() []*exprpb.Decl {
- return stdTypeDecls
-}
-
func notStrictlyFalse(value ref.Val) ref.Val {
if types.IsBool(value) {
return value
diff --git a/vendor/github.com/google/cel-go/common/types/BUILD.bazel b/vendor/github.com/google/cel-go/common/types/BUILD.bazel
index b5e44ffbf1..8f010fae44 100644
--- a/vendor/github.com/google/cel-go/common/types/BUILD.bazel
+++ b/vendor/github.com/google/cel-go/common/types/BUILD.bazel
@@ -40,10 +40,12 @@ go_library(
"//common/types/ref:go_default_library",
"//common/types/traits:go_default_library",
"@com_github_stoewer_go_strcase//:go_default_library",
+ "@dev_cel_expr//:expr",
"@org_golang_google_genproto_googleapis_api//expr/v1alpha1:go_default_library",
"@org_golang_google_protobuf//encoding/protojson:go_default_library",
"@org_golang_google_protobuf//proto:go_default_library",
"@org_golang_google_protobuf//reflect/protoreflect:go_default_library",
+ "@org_golang_google_protobuf//types/dynamicpb:go_default_library",
"@org_golang_google_protobuf//types/known/anypb:go_default_library",
"@org_golang_google_protobuf//types/known/durationpb:go_default_library",
"@org_golang_google_protobuf//types/known/structpb:go_default_library",
diff --git a/vendor/github.com/google/cel-go/common/types/bytes.go b/vendor/github.com/google/cel-go/common/types/bytes.go
index 5838755f8b..7e813e291b 100644
--- a/vendor/github.com/google/cel-go/common/types/bytes.go
+++ b/vendor/github.com/google/cel-go/common/types/bytes.go
@@ -58,7 +58,17 @@ func (b Bytes) Compare(other ref.Val) ref.Val {
// ConvertToNative implements the ref.Val interface method.
func (b Bytes) ConvertToNative(typeDesc reflect.Type) (any, error) {
switch typeDesc.Kind() {
- case reflect.Array, reflect.Slice:
+ case reflect.Array:
+ if len(b) != typeDesc.Len() {
+ return nil, fmt.Errorf("[%d]byte not assignable to [%d]byte array", len(b), typeDesc.Len())
+ }
+ refArrPtr := reflect.New(reflect.ArrayOf(len(b), typeDesc.Elem()))
+ refArr := refArrPtr.Elem()
+ for i, byt := range b {
+ refArr.Index(i).Set(reflect.ValueOf(byt).Convert(typeDesc.Elem()))
+ }
+ return refArr.Interface(), nil
+ case reflect.Slice:
return reflect.ValueOf(b).Convert(typeDesc).Interface(), nil
case reflect.Ptr:
switch typeDesc {
diff --git a/vendor/github.com/google/cel-go/common/types/list.go b/vendor/github.com/google/cel-go/common/types/list.go
index 06f48dde75..ca47d39fec 100644
--- a/vendor/github.com/google/cel-go/common/types/list.go
+++ b/vendor/github.com/google/cel-go/common/types/list.go
@@ -256,6 +256,15 @@ func (l *baseList) IsZeroValue() bool {
return l.size == 0
}
+// Fold calls the FoldEntry method for each (index, value) pair in the list.
+func (l *baseList) Fold(f traits.Folder) {
+ for i := 0; i < l.size; i++ {
+ if !f.FoldEntry(i, l.get(i)) {
+ break
+ }
+ }
+}
+
// Iterator implements the traits.Iterable interface method.
func (l *baseList) Iterator() traits.Iterator {
return newListIterator(l)
@@ -433,6 +442,15 @@ func (l *concatList) IsZeroValue() bool {
return l.Size().(Int) == 0
}
+// Fold calls the FoldEntry method for each (index, value) pair in the list.
+func (l *concatList) Fold(f traits.Folder) {
+ for i := Int(0); i < l.Size().(Int); i++ {
+ if !f.FoldEntry(i, l.Get(i)) {
+ break
+ }
+ }
+}
+
// Iterator implements the traits.Iterable interface method.
func (l *concatList) Iterator() traits.Iterator {
return newListIterator(l)
@@ -527,3 +545,30 @@ func IndexOrError(index ref.Val) (int, error) {
return -1, fmt.Errorf("unsupported index type '%s' in list", index.Type())
}
}
+
+// ToFoldableList will create a Foldable version of a list suitable for key-value pair iteration.
+//
+// For values which are already Foldable, this call is a no-op. For all other values, the fold is
+// driven via the Size() and Get() calls which means that the folding will function, but take a
+// performance hit.
+func ToFoldableList(l traits.Lister) traits.Foldable {
+ if f, ok := l.(traits.Foldable); ok {
+ return f
+ }
+ return interopFoldableList{Lister: l}
+}
+
+type interopFoldableList struct {
+ traits.Lister
+}
+
+// Fold implements the traits.Foldable interface method and performs an iteration over the
+// range of elements of the list.
+func (l interopFoldableList) Fold(f traits.Folder) {
+ sz := l.Size().(Int)
+ for i := Int(0); i < sz; i++ {
+ if !f.FoldEntry(i, l.Get(i)) {
+ break
+ }
+ }
+}
diff --git a/vendor/github.com/google/cel-go/common/types/map.go b/vendor/github.com/google/cel-go/common/types/map.go
index 739b7aab00..cb6cce78b0 100644
--- a/vendor/github.com/google/cel-go/common/types/map.go
+++ b/vendor/github.com/google/cel-go/common/types/map.go
@@ -94,6 +94,24 @@ func NewProtoMap(adapter Adapter, value *pb.Map) traits.Mapper {
}
}
+// NewMutableMap constructs a mutable map from an adapter and a set of map values.
+func NewMutableMap(adapter Adapter, mutableValues map[ref.Val]ref.Val) traits.MutableMapper {
+ mutableCopy := make(map[ref.Val]ref.Val, len(mutableValues))
+ for k, v := range mutableValues {
+ mutableCopy[k] = v
+ }
+ m := &mutableMap{
+ baseMap: &baseMap{
+ Adapter: adapter,
+ mapAccessor: newRefValMapAccessor(mutableCopy),
+ value: mutableCopy,
+ size: len(mutableCopy),
+ },
+ mutableValues: mutableCopy,
+ }
+ return m
+}
+
// mapAccessor is a private interface for finding values within a map and iterating over the keys.
// This interface implements portions of the API surface area required by the traits.Mapper
// interface.
@@ -105,6 +123,9 @@ type mapAccessor interface {
// Iterator returns an Iterator over the map key set.
Iterator() traits.Iterator
+
+ // Fold calls the FoldEntry method for each (key, value) pair in the map.
+ Fold(traits.Folder)
}
// baseMap is a reflection based map implementation designed to handle a variety of map-like types.
@@ -307,6 +328,28 @@ func (m *baseMap) Value() any {
return m.value
}
+// mutableMap holds onto a set of mutable values which are used for intermediate computations.
+type mutableMap struct {
+ *baseMap
+ mutableValues map[ref.Val]ref.Val
+}
+
+// Insert implements the traits.MutableMapper interface method, returning true if the key insertion
+// succeeds.
+func (m *mutableMap) Insert(k, v ref.Val) ref.Val {
+ if _, found := m.Find(k); found {
+ return NewErr("insert failed: key %v already exists", k)
+ }
+ m.mutableValues[k] = v
+ return m
+}
+
+// ToImmutableMap implements the traits.MutableMapper interface method, converting a mutable map
+// an immutable map implementation.
+func (m *mutableMap) ToImmutableMap() traits.Mapper {
+ return NewRefValMap(m.Adapter, m.mutableValues)
+}
+
func newJSONStructAccessor(adapter Adapter, st map[string]*structpb.Value) mapAccessor {
return &jsonStructAccessor{
Adapter: adapter,
@@ -350,6 +393,15 @@ func (a *jsonStructAccessor) Iterator() traits.Iterator {
}
}
+// Fold calls the FoldEntry method for each (key, value) pair in the map.
+func (a *jsonStructAccessor) Fold(f traits.Folder) {
+ for k, v := range a.st {
+ if !f.FoldEntry(k, v) {
+ break
+ }
+ }
+}
+
func newReflectMapAccessor(adapter Adapter, value reflect.Value) mapAccessor {
keyType := value.Type().Key()
return &reflectMapAccessor{
@@ -424,6 +476,16 @@ func (m *reflectMapAccessor) Iterator() traits.Iterator {
}
}
+// Fold calls the FoldEntry method for each (key, value) pair in the map.
+func (m *reflectMapAccessor) Fold(f traits.Folder) {
+ mapRange := m.refValue.MapRange()
+ for mapRange.Next() {
+ if !f.FoldEntry(mapRange.Key().Interface(), mapRange.Value().Interface()) {
+ break
+ }
+ }
+}
+
func newRefValMapAccessor(mapVal map[ref.Val]ref.Val) mapAccessor {
return &refValMapAccessor{mapVal: mapVal}
}
@@ -477,6 +539,15 @@ func (a *refValMapAccessor) Iterator() traits.Iterator {
}
}
+// Fold calls the FoldEntry method for each (key, value) pair in the map.
+func (a *refValMapAccessor) Fold(f traits.Folder) {
+ for k, v := range a.mapVal {
+ if !f.FoldEntry(k, v) {
+ break
+ }
+ }
+}
+
func newStringMapAccessor(strMap map[string]string) mapAccessor {
return &stringMapAccessor{mapVal: strMap}
}
@@ -515,6 +586,15 @@ func (a *stringMapAccessor) Iterator() traits.Iterator {
}
}
+// Fold calls the FoldEntry method for each (key, value) pair in the map.
+func (a *stringMapAccessor) Fold(f traits.Folder) {
+ for k, v := range a.mapVal {
+ if !f.FoldEntry(k, v) {
+ break
+ }
+ }
+}
+
func newStringIfaceMapAccessor(adapter Adapter, mapVal map[string]any) mapAccessor {
return &stringIfaceMapAccessor{
Adapter: adapter,
@@ -557,6 +637,15 @@ func (a *stringIfaceMapAccessor) Iterator() traits.Iterator {
}
}
+// Fold calls the FoldEntry method for each (key, value) pair in the map.
+func (a *stringIfaceMapAccessor) Fold(f traits.Folder) {
+ for k, v := range a.mapVal {
+ if !f.FoldEntry(k, v) {
+ break
+ }
+ }
+}
+
// protoMap is a specialized, separate implementation of the traits.Mapper interfaces tailored to
// accessing protoreflect.Map values.
type protoMap struct {
@@ -769,6 +858,13 @@ func (m *protoMap) Iterator() traits.Iterator {
}
}
+// Fold calls the FoldEntry method for each (key, value) pair in the map.
+func (m *protoMap) Fold(f traits.Folder) {
+ m.value.Range(func(k protoreflect.MapKey, v protoreflect.Value) bool {
+ return f.FoldEntry(k.Interface(), v.Interface())
+ })
+}
+
// Size returns the number of entries in the protoreflect.Map.
func (m *protoMap) Size() ref.Val {
return Int(m.value.Len())
@@ -852,3 +948,55 @@ func (it *stringKeyIterator) Next() ref.Val {
}
return nil
}
+
+// ToFoldableMap will create a Foldable version of a map suitable for key-value pair iteration.
+//
+// For values which are already Foldable, this call is a no-op. For all other values, the fold
+// is driven via the Iterator HasNext() and Next() calls as well as the map's Get() method
+// which means that the folding will function, but take a performance hit.
+func ToFoldableMap(m traits.Mapper) traits.Foldable {
+ if f, ok := m.(traits.Foldable); ok {
+ return f
+ }
+ return interopFoldableMap{Mapper: m}
+}
+
+type interopFoldableMap struct {
+ traits.Mapper
+}
+
+func (m interopFoldableMap) Fold(f traits.Folder) {
+ it := m.Iterator()
+ for it.HasNext() == True {
+ k := it.Next()
+ if !f.FoldEntry(k, m.Get(k)) {
+ break
+ }
+ }
+}
+
+// InsertMapKeyValue inserts a key, value pair into the target map if the target map does not
+// already contain the given key.
+//
+// If the map is mutable, it is modified in-place per the MutableMapper contract.
+// If the map is not mutable, a copy containing the new key, value pair is made.
+func InsertMapKeyValue(m traits.Mapper, k, v ref.Val) ref.Val {
+ if mutable, ok := m.(traits.MutableMapper); ok {
+ return mutable.Insert(k, v)
+ }
+
+ // Otherwise perform the slow version of the insertion which makes a copy of the incoming map.
+ if _, found := m.Find(k); !found {
+ size := m.Size().(Int)
+ copy := make(map[ref.Val]ref.Val, size+1)
+ copy[k] = v
+ it := m.Iterator()
+ for it.HasNext() == True {
+ nextK := it.Next()
+ nextV := m.Get(nextK)
+ copy[nextK] = nextV
+ }
+ return DefaultTypeAdapter.NativeToValue(copy)
+ }
+ return NewErr("insert failed: key %v already exists", k)
+}
diff --git a/vendor/github.com/google/cel-go/common/types/null.go b/vendor/github.com/google/cel-go/common/types/null.go
index 926ca3dc98..36514ff200 100644
--- a/vendor/github.com/google/cel-go/common/types/null.go
+++ b/vendor/github.com/google/cel-go/common/types/null.go
@@ -35,6 +35,8 @@ var (
// golang reflect type for Null values.
nullReflectType = reflect.TypeOf(NullValue)
+
+ protoIfaceType = reflect.TypeOf((*proto.Message)(nil)).Elem()
)
// ConvertToNative implements ref.Val.ConvertToNative.
@@ -61,8 +63,14 @@ func (n Null) ConvertToNative(typeDesc reflect.Type) (any, error) {
return structpb.NewNullValue(), nil
case boolWrapperType, byteWrapperType, doubleWrapperType, floatWrapperType,
int32WrapperType, int64WrapperType, stringWrapperType, uint32WrapperType,
- uint64WrapperType:
+ uint64WrapperType, durationValueType, timestampValueType, protoIfaceType:
return nil, nil
+ case jsonListValueType, jsonStructType:
+ // skip handling
+ default:
+ if typeDesc.Implements(protoIfaceType) {
+ return nil, nil
+ }
}
case reflect.Interface:
nv := n.Value()
diff --git a/vendor/github.com/google/cel-go/common/types/pb/type.go b/vendor/github.com/google/cel-go/common/types/pb/type.go
index 6cc95c276d..bdd474c95a 100644
--- a/vendor/github.com/google/cel-go/common/types/pb/type.go
+++ b/vendor/github.com/google/cel-go/common/types/pb/type.go
@@ -427,22 +427,49 @@ func unwrap(desc description, msg proto.Message) (any, bool, error) {
return structpb.NullValue_NULL_VALUE, true, nil
}
case *wrapperspb.BoolValue:
+ if v == nil {
+ return nil, true, nil
+ }
return v.GetValue(), true, nil
case *wrapperspb.BytesValue:
+ if v == nil {
+ return nil, true, nil
+ }
return v.GetValue(), true, nil
case *wrapperspb.DoubleValue:
+ if v == nil {
+ return nil, true, nil
+ }
return v.GetValue(), true, nil
case *wrapperspb.FloatValue:
+ if v == nil {
+ return nil, true, nil
+ }
return float64(v.GetValue()), true, nil
case *wrapperspb.Int32Value:
+ if v == nil {
+ return nil, true, nil
+ }
return int64(v.GetValue()), true, nil
case *wrapperspb.Int64Value:
+ if v == nil {
+ return nil, true, nil
+ }
return v.GetValue(), true, nil
case *wrapperspb.StringValue:
+ if v == nil {
+ return nil, true, nil
+ }
return v.GetValue(), true, nil
case *wrapperspb.UInt32Value:
+ if v == nil {
+ return nil, true, nil
+ }
return uint64(v.GetValue()), true, nil
case *wrapperspb.UInt64Value:
+ if v == nil {
+ return nil, true, nil
+ }
return v.GetValue(), true, nil
}
return msg, false, nil
diff --git a/vendor/github.com/google/cel-go/common/types/provider.go b/vendor/github.com/google/cel-go/common/types/provider.go
index c5ff05fdb9..936a4e28b2 100644
--- a/vendor/github.com/google/cel-go/common/types/provider.go
+++ b/vendor/github.com/google/cel-go/common/types/provider.go
@@ -585,6 +585,14 @@ func nativeToValue(a Adapter, value any) (ref.Val, bool) {
refKind := refValue.Kind()
switch refKind {
case reflect.Array, reflect.Slice:
+ if refValue.Type().Elem() == reflect.TypeOf(byte(0)) {
+ if refValue.CanAddr() {
+ return Bytes(refValue.Bytes()), true
+ }
+ tmp := reflect.New(refValue.Type())
+ tmp.Elem().Set(refValue)
+ return Bytes(tmp.Elem().Bytes()), true
+ }
return NewDynamicList(a, v), true
case reflect.Map:
return NewDynamicMap(a, v), true
diff --git a/vendor/github.com/google/cel-go/common/types/traits/iterator.go b/vendor/github.com/google/cel-go/common/types/traits/iterator.go
index 42dd371aa4..91c10f08fc 100644
--- a/vendor/github.com/google/cel-go/common/types/traits/iterator.go
+++ b/vendor/github.com/google/cel-go/common/types/traits/iterator.go
@@ -34,3 +34,16 @@ type Iterator interface {
// Next returns the next element.
Next() ref.Val
}
+
+// Foldable aggregate types support iteration over (key, value) or (index, value) pairs.
+type Foldable interface {
+ // Fold invokes the Folder.FoldEntry for all entries in the type
+ Fold(Folder)
+}
+
+// Folder performs a fold on a given entry and indicates whether to continue folding.
+type Folder interface {
+ // FoldEntry indicates the key, value pair associated with the entry.
+ // If the output is true, continue folding. Otherwise, terminate the fold.
+ FoldEntry(key, val any) bool
+}
diff --git a/vendor/github.com/google/cel-go/common/types/traits/lister.go b/vendor/github.com/google/cel-go/common/types/traits/lister.go
index 5cf2593f3b..e54781a602 100644
--- a/vendor/github.com/google/cel-go/common/types/traits/lister.go
+++ b/vendor/github.com/google/cel-go/common/types/traits/lister.go
@@ -27,6 +27,9 @@ type Lister interface {
}
// MutableLister interface which emits an immutable result after an intermediate computation.
+//
+// Note, this interface is intended only to be used within Comprehensions where the mutable
+// value is not directly observable within the user-authored CEL expression.
type MutableLister interface {
Lister
ToImmutableList() Lister
diff --git a/vendor/github.com/google/cel-go/common/types/traits/mapper.go b/vendor/github.com/google/cel-go/common/types/traits/mapper.go
index 2f7c919a8b..d13333f3f6 100644
--- a/vendor/github.com/google/cel-go/common/types/traits/mapper.go
+++ b/vendor/github.com/google/cel-go/common/types/traits/mapper.go
@@ -31,3 +31,18 @@ type Mapper interface {
// (Unknown|Err, false).
Find(key ref.Val) (ref.Val, bool)
}
+
+// MutableMapper interface which emits an immutable result after an intermediate computation.
+//
+// Note, this interface is intended only to be used within Comprehensions where the mutable
+// value is not directly observable within the user-authored CEL expression.
+type MutableMapper interface {
+ Mapper
+
+ // Insert a key, value pair into the map, returning the map if the insert is successful
+ // and an error if key already exists in the mutable map.
+ Insert(k, v ref.Val) ref.Val
+
+ // ToImmutableMap converts a mutable map into an immutable map.
+ ToImmutableMap() Mapper
+}
diff --git a/vendor/github.com/google/cel-go/common/types/traits/traits.go b/vendor/github.com/google/cel-go/common/types/traits/traits.go
index 6da3e6a3e1..51a09df564 100644
--- a/vendor/github.com/google/cel-go/common/types/traits/traits.go
+++ b/vendor/github.com/google/cel-go/common/types/traits/traits.go
@@ -59,6 +59,21 @@ const (
// SizerType types support the size() method.
SizerType
- // SubtractorType type support '-' operations.
+ // SubtractorType types support '-' operations.
SubtractorType
+
+ // FoldableType types support comprehensions v2 macros which iterate over (key, value) pairs.
+ FoldableType
+)
+
+const (
+ // ListerType supports a set of traits necessary for list operations.
+ //
+ // The ListerType is syntactic sugar and not intended to be a perfect reflection of all List operators.
+ ListerType = AdderType | ContainerType | IndexerType | IterableType | SizerType
+
+ // MapperType supports a set of traits necessary for map operations.
+ //
+ // The MapperType is syntactic sugar and not intended to be a perfect reflection of all Map operators.
+ MapperType = ContainerType | IndexerType | IterableType | SizerType
)
diff --git a/vendor/github.com/google/cel-go/common/types/types.go b/vendor/github.com/google/cel-go/common/types/types.go
index 6c3d5f719b..1c5b6c40c3 100644
--- a/vendor/github.com/google/cel-go/common/types/types.go
+++ b/vendor/github.com/google/cel-go/common/types/types.go
@@ -19,10 +19,13 @@ import (
"reflect"
"strings"
+ "google.golang.org/protobuf/proto"
+
chkdecls "github.com/google/cel-go/checker/decls"
"github.com/google/cel-go/common/types/ref"
"github.com/google/cel-go/common/types/traits"
+ celpb "cel.dev/expr"
exprpb "google.golang.org/genproto/googleapis/api/expr/v1alpha1"
)
@@ -666,85 +669,99 @@ func TypeToExprType(t *Type) (*exprpb.Type, error) {
// ExprTypeToType converts a protobuf CEL type representation to a CEL-native type representation.
func ExprTypeToType(t *exprpb.Type) (*Type, error) {
+ return AlphaProtoAsType(t)
+}
+
+// AlphaProtoAsType converts a CEL v1alpha1.Type protobuf type to a CEL-native type representation.
+func AlphaProtoAsType(t *exprpb.Type) (*Type, error) {
+ canonical := &celpb.Type{}
+ if err := convertProto(t, canonical); err != nil {
+ return nil, err
+ }
+ return ProtoAsType(canonical)
+}
+
+// ProtoAsType converts a canonical CEL celpb.Type protobuf type to a CEL-native type representation.
+func ProtoAsType(t *celpb.Type) (*Type, error) {
switch t.GetTypeKind().(type) {
- case *exprpb.Type_Dyn:
+ case *celpb.Type_Dyn:
return DynType, nil
- case *exprpb.Type_AbstractType_:
+ case *celpb.Type_AbstractType_:
paramTypes := make([]*Type, len(t.GetAbstractType().GetParameterTypes()))
for i, p := range t.GetAbstractType().GetParameterTypes() {
- pt, err := ExprTypeToType(p)
+ pt, err := ProtoAsType(p)
if err != nil {
return nil, err
}
paramTypes[i] = pt
}
return NewOpaqueType(t.GetAbstractType().GetName(), paramTypes...), nil
- case *exprpb.Type_ListType_:
- et, err := ExprTypeToType(t.GetListType().GetElemType())
+ case *celpb.Type_ListType_:
+ et, err := ProtoAsType(t.GetListType().GetElemType())
if err != nil {
return nil, err
}
return NewListType(et), nil
- case *exprpb.Type_MapType_:
- kt, err := ExprTypeToType(t.GetMapType().GetKeyType())
+ case *celpb.Type_MapType_:
+ kt, err := ProtoAsType(t.GetMapType().GetKeyType())
if err != nil {
return nil, err
}
- vt, err := ExprTypeToType(t.GetMapType().GetValueType())
+ vt, err := ProtoAsType(t.GetMapType().GetValueType())
if err != nil {
return nil, err
}
return NewMapType(kt, vt), nil
- case *exprpb.Type_MessageType:
+ case *celpb.Type_MessageType:
return NewObjectType(t.GetMessageType()), nil
- case *exprpb.Type_Null:
+ case *celpb.Type_Null:
return NullType, nil
- case *exprpb.Type_Primitive:
+ case *celpb.Type_Primitive:
switch t.GetPrimitive() {
- case exprpb.Type_BOOL:
+ case celpb.Type_BOOL:
return BoolType, nil
- case exprpb.Type_BYTES:
+ case celpb.Type_BYTES:
return BytesType, nil
- case exprpb.Type_DOUBLE:
+ case celpb.Type_DOUBLE:
return DoubleType, nil
- case exprpb.Type_INT64:
+ case celpb.Type_INT64:
return IntType, nil
- case exprpb.Type_STRING:
+ case celpb.Type_STRING:
return StringType, nil
- case exprpb.Type_UINT64:
+ case celpb.Type_UINT64:
return UintType, nil
default:
return nil, fmt.Errorf("unsupported primitive type: %v", t)
}
- case *exprpb.Type_TypeParam:
+ case *celpb.Type_TypeParam:
return NewTypeParamType(t.GetTypeParam()), nil
- case *exprpb.Type_Type:
+ case *celpb.Type_Type:
if t.GetType().GetTypeKind() != nil {
- p, err := ExprTypeToType(t.GetType())
+ p, err := ProtoAsType(t.GetType())
if err != nil {
return nil, err
}
return NewTypeTypeWithParam(p), nil
}
return TypeType, nil
- case *exprpb.Type_WellKnown:
+ case *celpb.Type_WellKnown:
switch t.GetWellKnown() {
- case exprpb.Type_ANY:
+ case celpb.Type_ANY:
return AnyType, nil
- case exprpb.Type_DURATION:
+ case celpb.Type_DURATION:
return DurationType, nil
- case exprpb.Type_TIMESTAMP:
+ case celpb.Type_TIMESTAMP:
return TimestampType, nil
default:
return nil, fmt.Errorf("unsupported well-known type: %v", t)
}
- case *exprpb.Type_Wrapper:
- t, err := ExprTypeToType(&exprpb.Type{TypeKind: &exprpb.Type_Primitive{Primitive: t.GetWrapper()}})
+ case *celpb.Type_Wrapper:
+ t, err := ProtoAsType(&celpb.Type{TypeKind: &celpb.Type_Primitive{Primitive: t.GetWrapper()}})
if err != nil {
return nil, err
}
return NewNullableType(t), nil
- case *exprpb.Type_Error:
+ case *celpb.Type_Error:
return ErrorType, nil
default:
return nil, fmt.Errorf("unsupported type: %v", t)
@@ -776,6 +793,23 @@ func maybeForeignType(t ref.Type) *Type {
return NewObjectType(t.TypeName(), traitMask)
}
+func convertProto(src, dst proto.Message) error {
+ pb, err := proto.Marshal(src)
+ if err != nil {
+ return err
+ }
+ err = proto.Unmarshal(pb, dst)
+ return err
+}
+
+func primitiveType(primitive celpb.Type_PrimitiveType) *celpb.Type {
+ return &celpb.Type{
+ TypeKind: &celpb.Type_Primitive{
+ Primitive: primitive,
+ },
+ }
+}
+
var (
checkedWellKnowns = map[string]*Type{
// Wrapper types.
@@ -820,4 +854,11 @@ var (
}
structTypeTraitMask = traits.FieldTesterType | traits.IndexerType
+
+ boolType = primitiveType(celpb.Type_BOOL)
+ bytesType = primitiveType(celpb.Type_BYTES)
+ doubleType = primitiveType(celpb.Type_DOUBLE)
+ intType = primitiveType(celpb.Type_INT64)
+ stringType = primitiveType(celpb.Type_STRING)
+ uintType = primitiveType(celpb.Type_UINT64)
)
diff --git a/vendor/github.com/google/cel-go/ext/BUILD.bazel b/vendor/github.com/google/cel-go/ext/BUILD.bazel
index db223da2f7..b764fa1f5c 100644
--- a/vendor/github.com/google/cel-go/ext/BUILD.bazel
+++ b/vendor/github.com/google/cel-go/ext/BUILD.bazel
@@ -8,6 +8,7 @@ go_library(
name = "go_default_library",
srcs = [
"bindings.go",
+ "comprehensions.go",
"encoders.go",
"formatting.go",
"guards.go",
@@ -24,6 +25,7 @@ go_library(
"//cel:go_default_library",
"//checker:go_default_library",
"//common/ast:go_default_library",
+ "//common/decls:go_default_library",
"//common/overloads:go_default_library",
"//common/operators:go_default_library",
"//common/types:go_default_library",
@@ -31,6 +33,7 @@ go_library(
"//common/types/ref:go_default_library",
"//common/types/traits:go_default_library",
"//interpreter:go_default_library",
+ "//parser:go_default_library",
"@org_golang_google_protobuf//proto:go_default_library",
"@org_golang_google_protobuf//reflect/protoreflect:go_default_library",
"@org_golang_google_protobuf//types/known/structpb",
@@ -43,7 +46,9 @@ go_test(
name = "go_default_test",
size = "small",
srcs = [
- "encoders_test.go",
+ "bindings_test.go",
+ "comprehensions_test.go",
+ "encoders_test.go",
"lists_test.go",
"math_test.go",
"native_test.go",
@@ -61,8 +66,8 @@ go_test(
"//common/types/ref:go_default_library",
"//common/types/traits:go_default_library",
"//test:go_default_library",
- "//test/proto2pb:go_default_library",
- "//test/proto3pb:go_default_library",
+ "//test/proto2pb:go_default_library",
+ "//test/proto3pb:go_default_library",
"@org_golang_google_protobuf//proto:go_default_library",
"@org_golang_google_protobuf//types/known/wrapperspb:go_default_library",
"@org_golang_google_protobuf//encoding/protojson:go_default_library",
diff --git a/vendor/github.com/google/cel-go/ext/README.md b/vendor/github.com/google/cel-go/ext/README.md
index 2fac0cb22b..07e544d0dc 100644
--- a/vendor/github.com/google/cel-go/ext/README.md
+++ b/vendor/github.com/google/cel-go/ext/README.md
@@ -3,12 +3,12 @@
CEL extensions are a related set of constants, functions, macros, or other
features which may not be covered by the core CEL spec.
-## Bindings
+## Bindings
Returns a cel.EnvOption to configure support for local variable bindings
in expressions.
-# Cel.Bind
+### Cel.Bind
Binds a simple identifier to an initialization expression which may be used
in a subsequenct result expression. Bindings may also be nested within each
@@ -19,11 +19,11 @@ other.
Examples:
cel.bind(a, 'hello',
- cel.bind(b, 'world', a + b + b + a)) // "helloworldworldhello"
+ cel.bind(b, 'world', a + b + b + a)) // "helloworldworldhello"
// Avoid a list allocation within the exists comprehension.
cel.bind(valid_values, [a, b, c],
- [d, e, f].exists(elem, elem in valid_values))
+ [d, e, f].exists(elem, elem in valid_values))
Local bindings are not guaranteed to be evaluated before use.
@@ -100,7 +100,8 @@ argument. Simple numeric and list literals are supported as valid argument
types; however, other literals will be flagged as errors during macro
expansion. If the argument expression does not resolve to a numeric or
list(numeric) type during type-checking, or during runtime then an error
-will be produced. If a list argument is empty, this too will produce an error.
+will be produced. If a list argument is empty, this too will produce an
+error.
math.least(, ...) ->
@@ -117,6 +118,244 @@ Examples:
math.least(a, b) // check-time error if a or b is non-numeric
math.least(dyn('string')) // runtime error
+### Math.BitOr
+
+Introduced at version: 1
+
+Performs a bitwise-OR operation over two int or uint values.
+
+ math.bitOr(, ) ->
+ math.bitOr(, ) ->
+
+Examples:
+
+ math.bitOr(1u, 2u) // returns 3u
+ math.bitOr(-2, -4) // returns -2
+
+### Math.BitAnd
+
+Introduced at version: 1
+
+Performs a bitwise-AND operation over two int or uint values.
+
+ math.bitAnd(, ) ->
+ math.bitAnd(, ) ->
+
+Examples:
+
+ math.bitAnd(3u, 2u) // return 2u
+ math.bitAnd(3, 5) // returns 3
+ math.bitAnd(-3, -5) // returns -7
+
+### Math.BitXor
+
+Introduced at version: 1
+
+ math.bitXor(, ) ->
+ math.bitXor(, ) ->
+
+Performs a bitwise-XOR operation over two int or uint values.
+
+Examples:
+
+ math.bitXor(3u, 5u) // returns 6u
+ math.bitXor(1, 3) // returns 2
+
+### Math.BitNot
+
+Introduced at version: 1
+
+Function which accepts a single int or uint and performs a bitwise-NOT
+ones-complement of the given binary value.
+
+ math.bitNot() ->
+ math.bitNot() ->
+
+Examples
+
+ math.bitNot(1) // returns -1
+ math.bitNot(-1) // return 0
+ math.bitNot(0u) // returns 18446744073709551615u
+
+### Math.BitShiftLeft
+
+Introduced at version: 1
+
+Perform a left shift of bits on the first parameter, by the amount of bits
+specified in the second parameter. The first parameter is either a uint or
+an int. The second parameter must be an int.
+
+When the second parameter is 64 or greater, 0 will be always be returned
+since the number of bits shifted is greater than or equal to the total bit
+length of the number being shifted. Negative valued bit shifts will result
+in a runtime error.
+
+ math.bitShiftLeft(, ) ->
+ math.bitShiftLeft(, ) ->
+
+Examples
+
+ math.bitShiftLeft(1, 2) // returns 4
+ math.bitShiftLeft(-1, 2) // returns -4
+ math.bitShiftLeft(1u, 2) // return 4u
+ math.bitShiftLeft(1u, 200) // returns 0u
+
+### Math.BitShiftRight
+
+Introduced at version: 1
+
+Perform a right shift of bits on the first parameter, by the amount of bits
+specified in the second parameter. The first parameter is either a uint or
+an int. The second parameter must be an int.
+
+When the second parameter is 64 or greater, 0 will always be returned since
+the number of bits shifted is greater than or equal to the total bit length
+of the number being shifted. Negative valued bit shifts will result in a
+runtime error.
+
+The sign bit extension will not be preserved for this operation: vacant bits
+on the left are filled with 0.
+
+ math.bitShiftRight(, ) ->
+ math.bitShiftRight(, ) ->
+
+Examples
+
+ math.bitShiftRight(1024, 2) // returns 256
+ math.bitShiftRight(1024u, 2) // returns 256u
+ math.bitShiftRight(1024u, 64) // returns 0u
+
+### Math.Ceil
+
+Introduced at version: 1
+
+Compute the ceiling of a double value.
+
+ math.ceil() ->
+
+Examples:
+
+ math.ceil(1.2) // returns 2.0
+ math.ceil(-1.2) // returns -1.0
+
+### Math.Floor
+
+Introduced at version: 1
+
+Compute the floor of a double value.
+
+ math.floor() ->
+
+Examples:
+
+ math.floor(1.2) // returns 1.0
+ math.floor(-1.2) // returns -2.0
+
+### Math.Round
+
+Introduced at version: 1
+
+Rounds the double value to the nearest whole number with ties rounding away
+from zero, e.g. 1.5 -> 2.0, -1.5 -> -2.0.
+
+ math.round() ->
+
+Examples:
+
+ math.round(1.2) // returns 1.0
+ math.round(1.5) // returns 2.0
+ math.round(-1.5) // returns -2.0
+
+### Math.Trunc
+
+Introduced at version: 1
+
+Truncates the fractional portion of the double value.
+
+ math.trunc() ->
+
+Examples:
+
+ math.trunc(-1.3) // returns -1.0
+ math.trunc(1.3) // returns 1.0
+
+### Math.Abs
+
+Introduced at version: 1
+
+Returns the absolute value of the numeric type provided as input. If the
+value is NaN, the output is NaN. If the input is int64 min, the function
+will result in an overflow error.
+
+ math.abs() ->
+ math.abs() ->
+ math.abs() ->
+
+Examples:
+
+ math.abs(-1) // returns 1
+ math.abs(1) // returns 1
+ math.abs(-9223372036854775808) // overlflow error
+
+### Math.Sign
+
+Introduced at version: 1
+
+Returns the sign of the numeric type, either -1, 0, 1 as an int, double, or
+uint depending on the overload. For floating point values, if NaN is
+provided as input, the output is also NaN. The implementation does not
+differentiate between positive and negative zero.
+
+ math.sign() ->
+ math.sign() ->
+ math.sign() ->
+
+Examples:
+
+ math.sign(-42) // returns -1
+ math.sign(0) // returns 0
+ math.sign(42) // returns 1
+
+### Math.IsInf
+
+Introduced at version: 1
+
+Returns true if the input double value is -Inf or +Inf.
+
+ math.isInf() ->
+
+Examples:
+
+ math.isInf(1.0/0.0) // returns true
+ math.isInf(1.2) // returns false
+
+### Math.IsNaN
+
+Introduced at version: 1
+
+Returns true if the input double value is NaN, false otherwise.
+
+ math.isNaN() ->
+
+Examples:
+
+ math.isNaN(0.0/0.0) // returns true
+ math.isNaN(1.2) // returns false
+
+### Math.IsFinite
+
+Introduced at version: 1
+
+Returns true if the value is a finite number. Equivalent in behavior to:
+!math.isNaN(double) && !math.isInf(double)
+
+ math.isFinite() ->
+
+Examples:
+
+ math.isFinite(0.0/0.0) // returns false
+ math.isFinite(1.2) // returns true
+
## Protos
Protos configure extended macros and functions for proto manipulation.
@@ -154,6 +393,65 @@ Example:
Extended functions for list manipulation. As a general note, all indices are
zero-based.
+### Distinct
+
+**Introduced in version 2**
+
+Returns the distinct elements of a list.
+
+ .distinct() ->
+
+Examples:
+
+ [1, 2, 2, 3, 3, 3].distinct() // return [1, 2, 3]
+ ["b", "b", "c", "a", "c"].distinct() // return ["b", "c", "a"]
+ [1, "b", 2, "b"].distinct() // return [1, "b", 2]
+
+### Flatten
+
+**Introduced in version 1**
+
+Flattens a list recursively.
+If an optional depth is provided, the list is flattened to a the specificied level.
+A negative depth value will result in an error.
+
+ .flatten() ->
+ .flatten(, ) ->
+
+Examples:
+
+ [1,[2,3],[4]].flatten() // return [1, 2, 3, 4]
+ [1,[2,[3,4]]].flatten() // return [1, 2, [3, 4]]
+ [1,2,[],[],[3,4]].flatten() // return [1, 2, 3, 4]
+ [1,[2,[3,[4]]]].flatten(2) // return [1, 2, 3, [4]]
+ [1,[2,[3,[4]]]].flatten(-1) // error
+
+### Range
+
+**Introduced in version 2**
+
+Returns a list of integers from 0 to n-1.
+
+ lists.range() ->
+
+Examples:
+
+ lists.range(5) -> [0, 1, 2, 3, 4]
+
+
+### Reverse
+
+**Introduced in version 2**
+
+Returns the elements of a list in reverse order.
+
+ .reverse() ->
+
+Examples:
+
+ [5, 3, 1, 2].reverse() // return [2, 1, 3, 5]
+
+
### Slice
@@ -164,7 +462,43 @@ Returns a new sub-list using the indexes provided.
Examples:
[1,2,3,4].slice(1, 3) // return [2, 3]
- [1,2,3,4].slice(2, 4) // return [3 ,4]
+ [1,2,3,4].slice(2, 4) // return [3, 4]
+
+### Sort
+
+**Introduced in version 2**
+
+Sorts a list with comparable elements. If the element type is not comparable
+or the element types are not the same, the function will produce an error.
+
+ .sort() ->
+ T in {int, uint, double, bool, duration, timestamp, string, bytes}
+
+Examples:
+
+ [3, 2, 1].sort() // return [1, 2, 3]
+ ["b", "c", "a"].sort() // return ["a", "b", "c"]
+ [1, "b"].sort() // error
+ [[1, 2, 3]].sort() // error
+
+### SortBy
+
+**Introduced in version 2**
+
+Sorts a list by a key value, i.e., the order is determined by the result of
+an expression applied to each element of the list.
+
+ .sortBy(, ) ->
+ keyExpr returns a value in {int, uint, double, bool, duration, timestamp, string, bytes}
+
+Examples:
+
+ [
+ Player { name: "foo", score: 0 },
+ Player { name: "bar", score: -10 },
+ Player { name: "baz", score: 1000 },
+ ].sortBy(e, e.score).map(e, e.name)
+ == ["bar", "foo", "baz"]
## Sets
@@ -259,7 +593,8 @@ Examples:
'hello mellow'.indexOf('jello') // returns -1
'hello mellow'.indexOf('', 2) // returns 2
'hello mellow'.indexOf('ello', 2) // returns 7
- 'hello mellow'.indexOf('ello', 20) // error
+ 'hello mellow'.indexOf('ello', 20) // returns -1
+ 'hello mellow'.indexOf('ello', -1) // error
### Join
@@ -273,10 +608,10 @@ elements in the resulting string.
Examples:
- ['hello', 'mellow'].join() // returns 'hellomellow'
- ['hello', 'mellow'].join(' ') // returns 'hello mellow'
- [].join() // returns ''
- [].join('/') // returns ''
+ ['hello', 'mellow'].join() // returns 'hellomellow'
+ ['hello', 'mellow'].join(' ') // returns 'hello mellow'
+ [].join() // returns ''
+ [].join('/') // returns ''
### LastIndexOf
@@ -297,6 +632,7 @@ Examples:
'hello mellow'.lastIndexOf('ello') // returns 7
'hello mellow'.lastIndexOf('jello') // returns -1
'hello mellow'.lastIndexOf('ello', 6) // returns 1
+ 'hello mellow'.lastIndexOf('ello', 20) // returns -1
'hello mellow'.lastIndexOf('ello', -1) // error
### LowerAscii
@@ -427,4 +763,137 @@ It can be located in Version 3 of strings.
Examples:
'gums'.reverse() // returns 'smug'
- 'John Smith'.reverse() // returns 'htimS nhoJ'
\ No newline at end of file
+ 'John Smith'.reverse() // returns 'htimS nhoJ'
+
+## TwoVarComprehensions
+
+TwoVarComprehensions introduces support for two-variable comprehensions.
+
+The two-variable form of comprehensions looks similar to the one-variable
+counterparts. Where possible, the same macro names were used and additional
+macro signatures added. The notable distinction for two-variable comprehensions
+is the introduction of `transformList`, `transformMap`, and `transformMapEntry`
+support for list and map types rather than the more traditional `map` and
+`filter` macros.
+
+### All
+
+Comprehension which tests whether all elements in the list or map satisfy a
+given predicate. The `all` macro evaluates in a manner consistent with logical
+AND and will short-circuit when encountering a `false` value.
+
+ .all(indexVar, valueVar, ) -> bool
+