From 58cf56aa60c3682a679f1422717ffc7c70bd30e1 Mon Sep 17 00:00:00 2001 From: Todd Short Date: Thu, 10 Aug 2023 13:53:54 -0400 Subject: [PATCH 01/10] Add tmshort to reviewers (#3008) Signed-off-by: Todd Short Upstream-repository: operator-lifecycle-manager Upstream-commit: ad4ac77284454a077ecccfc6740f180bbb58e6f4 --- staging/operator-lifecycle-manager/OWNERS | 2 ++ 1 file changed, 2 insertions(+) diff --git a/staging/operator-lifecycle-manager/OWNERS b/staging/operator-lifecycle-manager/OWNERS index 8a849d2c6c..aa902778c3 100644 --- a/staging/operator-lifecycle-manager/OWNERS +++ b/staging/operator-lifecycle-manager/OWNERS @@ -10,6 +10,7 @@ approvers: - perdasilva - grokspawn - joelanford + - tmshort # review == this code is good /lgtm reviewers: - ecordell @@ -29,3 +30,4 @@ reviewers: - grokspawn - dtfranz - asmacdo + - tmshort From 164be72c74cd2dfbfca8ccf26f795fe4226a6f19 Mon Sep 17 00:00:00 2001 From: Jordan Keister Date: Tue, 15 Aug 2023 12:43:02 -0500 Subject: [PATCH 02/10] [chore] bump containerd to 1.6.22 (#1134) Signed-off-by: Jordan Keister Upstream-repository: operator-registry Upstream-commit: dba1e1052875cbf3850058120c8eb7a1c8a5d11c --- staging/operator-registry/go.mod | 22 +- staging/operator-registry/go.sum | 398 +++++++++++++++++++++++++++++-- 2 files changed, 387 insertions(+), 33 deletions(-) diff --git a/staging/operator-registry/go.mod b/staging/operator-registry/go.mod index efca010495..9e744ec472 100644 --- a/staging/operator-registry/go.mod +++ b/staging/operator-registry/go.mod @@ -5,13 +5,13 @@ go 1.19 require ( github.com/adrg/xdg v0.4.0 github.com/blang/semver/v4 v4.0.0 - github.com/containerd/containerd v1.5.18 + github.com/containerd/containerd v1.6.22 github.com/docker/cli v20.10.12+incompatible github.com/docker/distribution v2.8.2+incompatible github.com/docker/docker v20.10.24+incompatible github.com/ghodss/yaml v1.0.0 github.com/golang-migrate/migrate/v4 v4.16.1 - github.com/golang/mock v1.5.0 + github.com/golang/mock v1.6.0 github.com/google/go-cmp v0.5.9 github.com/grpc-ecosystem/grpc-health-probe v0.4.11 github.com/h2non/filetype v1.1.1 @@ -22,7 +22,7 @@ require ( github.com/onsi/ginkgo/v2 v2.9.5 github.com/onsi/gomega v1.27.7 github.com/opencontainers/go-digest v1.0.0 - github.com/opencontainers/image-spec v1.0.2 + github.com/opencontainers/image-spec v1.1.0-rc2.0.20221005185240-3a7f492d3f1b github.com/operator-framework/api v0.17.7 github.com/otiai10/copy v1.2.0 github.com/phayes/freeport v0.0.0-20180830031419-95f893ade6f2 @@ -30,7 +30,7 @@ require ( github.com/sirupsen/logrus v1.9.2 github.com/spf13/cobra v1.7.0 github.com/stretchr/testify v1.8.3 - go.etcd.io/bbolt v1.3.6 + go.etcd.io/bbolt v1.3.7 golang.org/x/mod v0.10.0 golang.org/x/net v0.10.0 golang.org/x/sync v0.2.0 @@ -55,7 +55,7 @@ require ( github.com/BurntSushi/toml v0.3.1 // indirect github.com/MakeNowJust/heredoc v1.0.0 // indirect github.com/Microsoft/go-winio v0.6.1 // indirect - github.com/Microsoft/hcsshim v0.8.25 // indirect + github.com/Microsoft/hcsshim v0.9.8 // indirect github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d // indirect github.com/alessio/shellescape v1.4.1 // indirect github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.0.0-20230305170008-8188dc5388df // indirect @@ -66,16 +66,16 @@ require ( github.com/bugsnag/panicwrap v1.2.0 // indirect github.com/cenkalti/backoff/v4 v4.1.3 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect - github.com/containerd/cgroups v1.0.3 // indirect + github.com/containerd/cgroups v1.0.4 // indirect github.com/containerd/continuity v0.3.0 // indirect - github.com/containerd/ttrpc v1.1.0 // indirect + github.com/containerd/ttrpc v1.1.2 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/docker/docker-credential-helpers v0.6.3 // indirect github.com/docker/go-connections v0.4.0 // indirect github.com/docker/go-metrics v0.0.1 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/docker/libtrust v0.0.0-20160708172513-aabc10ec26b7 // indirect - github.com/emicklei/go-restful/v3 v3.9.0 // indirect + github.com/emicklei/go-restful/v3 v3.10.1 // indirect github.com/evanphx/json-patch v4.12.0+incompatible // indirect github.com/evanphx/json-patch/v5 v5.6.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect @@ -95,7 +95,7 @@ require ( github.com/golang/protobuf v1.5.3 // indirect github.com/google/cel-go v0.15.3 // indirect github.com/google/gnostic v0.5.7-v3refs // indirect - github.com/google/gofuzz v1.1.0 // indirect + github.com/google/gofuzz v1.2.0 // indirect github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1 // indirect github.com/google/uuid v1.3.0 // indirect github.com/gorilla/handlers v1.4.2 // indirect @@ -115,13 +115,13 @@ require ( github.com/mitchellh/mapstructure v1.4.1 // indirect github.com/moby/locker v1.0.1 // indirect github.com/moby/spdystream v0.2.0 // indirect - github.com/moby/sys/mountinfo v0.4.1 // indirect + github.com/moby/sys/mountinfo v0.6.2 // indirect github.com/moby/term v0.5.0 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/morikuni/aec v1.0.0 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect - github.com/pelletier/go-toml v1.9.3 // indirect + github.com/pelletier/go-toml v1.9.5 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/prometheus/client_golang v1.15.1 // indirect github.com/prometheus/client_model v0.4.0 // indirect diff --git a/staging/operator-registry/go.sum b/staging/operator-registry/go.sum index 87549f5b3b..7c601c5dbb 100644 --- a/staging/operator-registry/go.sum +++ b/staging/operator-registry/go.sum @@ -34,24 +34,51 @@ cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RX cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/Azure/azure-sdk-for-go v16.2.1+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= +github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0= github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/Azure/go-autorest v10.8.1+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= +github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= +github.com/Azure/go-autorest/autorest v0.11.1/go.mod h1:JFgpikqFJ/MleTTxwepExTKnFUKKszPS8UavbQYUMuw= +github.com/Azure/go-autorest/autorest/adal v0.9.0/go.mod h1:/c022QCutn2P7uY+/oQWWNcK9YU+MH96NgK+jErpbcg= +github.com/Azure/go-autorest/autorest/adal v0.9.5/go.mod h1:B7KF7jKIeC9Mct5spmyCB/A8CG/sEz1vwIRGv/bbw7A= +github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSYnokU+TrmwEsOqdt8Y6sso74= +github.com/Azure/go-autorest/autorest/mocks v0.4.0/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= +github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= +github.com/Azure/go-autorest/logger v0.2.0/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= +github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/MakeNowJust/heredoc v1.0.0 h1:cXCdzVdstXyiTqTvfqk9SDHpKNjxuom+DOlyEeQ4pzQ= github.com/MakeNowJust/heredoc v1.0.0/go.mod h1:mG5amYoWBHf8vpLOuehzbGGw0EHxpZZ6lCpQ4fNJ8LE= +github.com/Microsoft/go-winio v0.4.11/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA= github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA= +github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5/go.mod h1:tTuCMEN+UleMWgg9dVx4Hu52b1bJo+59jBh3ajtinzw= +github.com/Microsoft/go-winio v0.4.16-0.20201130162521-d1ffc52c7331/go.mod h1:XB6nPKklQyQ7GC9LdcBEcBl8PF76WugXOPRXwdLnMv0= github.com/Microsoft/go-winio v0.4.16/go.mod h1:XB6nPKklQyQ7GC9LdcBEcBl8PF76WugXOPRXwdLnMv0= +github.com/Microsoft/go-winio v0.4.17-0.20210211115548-6eac466e5fa3/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= +github.com/Microsoft/go-winio v0.4.17-0.20210324224401-5516f17a5958/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= github.com/Microsoft/go-winio v0.4.17/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= -github.com/Microsoft/hcsshim v0.8.25 h1:fRMwXiwk3qDwc0P05eHnh+y2v07JdtsfQ1fuAc69m9g= -github.com/Microsoft/hcsshim v0.8.25/go.mod h1:4zegtUJth7lAvFyc6cH2gGQ5B3OFQim01nnU2M8jKDg= +github.com/Microsoft/hcsshim v0.8.6/go.mod h1:Op3hHsoHPAvb6lceZHDtd9OkTew38wNoXnJs8iY7rUg= +github.com/Microsoft/hcsshim v0.8.7-0.20190325164909-8abdbb8205e4/go.mod h1:Op3hHsoHPAvb6lceZHDtd9OkTew38wNoXnJs8iY7rUg= +github.com/Microsoft/hcsshim v0.8.7/go.mod h1:OHd7sQqRFrYd3RmSgbgji+ctCwkbq2wbEYNSzOYtcBQ= +github.com/Microsoft/hcsshim v0.8.9/go.mod h1:5692vkUqntj1idxauYlpoINNKeqCiG6Sg38RRsjT5y8= +github.com/Microsoft/hcsshim v0.8.14/go.mod h1:NtVKoYxQuTLx6gEq0L96c9Ju4JbRJ4nY2ow3VK6a9Lg= +github.com/Microsoft/hcsshim v0.8.15/go.mod h1:x38A4YbHbdxJtc0sF6oIz+RG0npwSCAvn69iY6URG00= +github.com/Microsoft/hcsshim v0.8.16/go.mod h1:o5/SZqmR7x9JNKsW3pu+nqHm0MF8vbA+VxGOoXdC600= +github.com/Microsoft/hcsshim v0.8.21/go.mod h1:+w2gRZ5ReXQhFOrvSQeNfhrYB/dg3oDwTOcER2fw4I4= +github.com/Microsoft/hcsshim v0.9.8 h1:lf7xxK2+Ikbj9sVf2QZsouGjRjEp2STj1yDHgoVtU5k= +github.com/Microsoft/hcsshim v0.9.8/go.mod h1:7pLA8lDk46WKDWlVsENo92gC0XFa8rbKfyFRBqxEbCc= +github.com/Microsoft/hcsshim/test v0.0.0-20201218223536-d3e5debf77da/go.mod h1:5hlzMzRKMLyo42nCZ9oml8AdTlq/0cvIaBv6tK1RehU= +github.com/Microsoft/hcsshim/test v0.0.0-20210227013316-43a75bb4edd3/go.mod h1:mw7qgWloBUl75W/gVH3cQszUg1+gUITj7D6NY7ywVnY= github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= +github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= +github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d h1:UrqY+r/OJnIp5u0s1SbQ8dVfLCZJsnvazdBP5hS4iRs= github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d/go.mod h1:HI8ITrYtUY+O+ZhtlqUnD8+KwNPOyugEhfP9fdUIaEQ= @@ -59,9 +86,12 @@ github.com/adrg/xdg v0.4.0 h1:RzRqFcjH4nE5C6oTAxhBtoE2IRyjBSa62SCbyPidvls= github.com/adrg/xdg v0.4.0/go.mod h1:N6ag73EX4wyxeaoeHctc1mas01KZgsj5tYiAIwqJE/E= github.com/alcortesm/tgz v0.0.0-20161220082320-9c5fe88206d7/go.mod h1:6zEj6s6u/ghQa61ZWa/C2Aw3RkjiTBOix7dkqa1VLIs= 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= +github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alessio/shellescape v1.4.1 h1:V7yhSDDn8LP4lc4jS8pFkt0zCnzVJlG5JXy9BVKJUX0= github.com/alessio/shellescape v1.4.1/go.mod h1:PZAiSCk0LJaZkiCSkPv8qIobYglO3FPpyFjDCtHLS30= +github.com/alexflint/go-filemutex v0.0.0-20171022225611-72bdc8eae2ae/go.mod h1:CgnQgUtFrFz9mxFNtED3jI5tLDjKlOM+oUF/sTk6ps0= github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.0.0-20230305170008-8188dc5388df h1:7RFfzj4SSt6nnvCPbCqijJi1nWCd+TqAT3bYCStRC18= @@ -83,12 +113,16 @@ github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6r github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/bitly/go-simplejson v0.5.0 h1:6IH+V8/tVMab511d5bn4M7EwGXZf9Hj6i2xSwkNEM+Y= github.com/bitly/go-simplejson v0.5.0/go.mod h1:cXHtHw4XUPsvGaxgjIAn8PhEWG9NfngEKAMDJEczWVA= +github.com/bits-and-blooms/bitset v1.2.0/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA= github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= +github.com/blang/semver v3.1.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= +github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= 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/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4= github.com/bshuster-repo/logrus-logstash-hook v0.4.1 h1:pgAtgj+A31JBVtEHu2uHuEx0n+2ukqUJnS2vVe5pQNA= github.com/bshuster-repo/logrus-logstash-hook v0.4.1/go.mod h1:zsTqEiSzDgAa/8GZR7E1qaXrhYNDKBYy5/dWPTIflbk= +github.com/buger/jsonparser v0.0.0-20180808090653-f4dd9f5a6b44/go.mod h1:bbYlZJ7hK1yFx9hf58LP0zeX7UjIGs20ufpu3evjr+s= github.com/bugsnag/bugsnag-go v0.0.0-20141110184014-b1d153021fcd/go.mod h1:2oa8nejYd4cQ/b0hMIopN0lCRxU0bueqREvZLWFrtK8= github.com/bugsnag/bugsnag-go v1.5.3 h1:yeRUT3mUE13jL1tGwvoQsKdVbAsQx9AJ+fqahKveP04= github.com/bugsnag/bugsnag-go v1.5.3/go.mod h1:2oa8nejYd4cQ/b0hMIopN0lCRxU0bueqREvZLWFrtK8= @@ -104,10 +138,16 @@ github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghf github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= 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/checkpoint-restore/go-criu/v4 v4.1.0/go.mod h1:xUQBLp4RLc5zJtWY++yjOoMoB5lihDt7fai+75m+rGw= +github.com/checkpoint-restore/go-criu/v5 v5.0.0/go.mod h1:cfwC0EG7HMUenopBsUf9d89JlCLQIfgVcNsNN0t6T2M= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= +github.com/cilium/ebpf v0.0.0-20200110133405-4032b1d8aae3/go.mod h1:MA5e5Lr8slmEg9bt0VpxxWqJlO4iwu3FBdHUzV7wQVg= +github.com/cilium/ebpf v0.0.0-20200702112145-1c8d4c9ef775/go.mod h1:7cR51M8ViRLIdUjrmSXlK9pkrsDlLHbO8jiB8X8JnOc= +github.com/cilium/ebpf v0.2.0/go.mod h1:To2CFviqOWL/M0gIMsvSMlqe7em/l1ALkX1PyjrX2Qs= github.com/cilium/ebpf v0.4.0/go.mod h1:4tRaxcgiL706VnOzHOdBlY8IEAIdxINsQBcU4xJJXRs= +github.com/cilium/ebpf v0.6.2/go.mod h1:4tRaxcgiL706VnOzHOdBlY8IEAIdxINsQBcU4xJJXRs= 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/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= @@ -116,37 +156,127 @@ github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWH github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= +github.com/containerd/aufs v0.0.0-20200908144142-dab0cbea06f4/go.mod h1:nukgQABAEopAHvB6j7cnP5zJ+/3aVcE7hCYqvIwAHyE= +github.com/containerd/aufs v0.0.0-20201003224125-76a6863f2989/go.mod h1:AkGGQs9NM2vtYHaUen+NljV0/baGCAPELGm2q9ZXpWU= +github.com/containerd/aufs v0.0.0-20210316121734-20793ff83c97/go.mod h1:kL5kd6KM5TzQjR79jljyi4olc1Vrx6XBlcyj3gNv2PU= +github.com/containerd/aufs v1.0.0/go.mod h1:kL5kd6KM5TzQjR79jljyi4olc1Vrx6XBlcyj3gNv2PU= +github.com/containerd/btrfs v0.0.0-20201111183144-404b9149801e/go.mod h1:jg2QkJcsabfHugurUvvPhS3E08Oxiuh5W/g1ybB4e0E= +github.com/containerd/btrfs v0.0.0-20210316141732-918d888fb676/go.mod h1:zMcX3qkXTAi9GI50+0HOeuV8LU2ryCE/V2vG/ZBiTss= +github.com/containerd/btrfs v1.0.0/go.mod h1:zMcX3qkXTAi9GI50+0HOeuV8LU2ryCE/V2vG/ZBiTss= +github.com/containerd/cgroups v0.0.0-20190717030353-c4b9ac5c7601/go.mod h1:X9rLEHIqSf/wfK8NsPqxJmeZgW4pcfzdXITDrUSJ6uI= +github.com/containerd/cgroups v0.0.0-20190919134610-bf292b21730f/go.mod h1:OApqhQ4XNSNC13gXIwDjhOQxjWa/NxkwZXJ1EvqT0ko= +github.com/containerd/cgroups v0.0.0-20200531161412-0dbf7f05ba59/go.mod h1:pA0z1pT8KYB3TCXK/ocprsh7MAkoW8bZVzPdih9snmM= +github.com/containerd/cgroups v0.0.0-20200710171044-318312a37340/go.mod h1:s5q4SojHctfxANBDvMeIaIovkq29IP48TKAxnhYRxvo= +github.com/containerd/cgroups v0.0.0-20200824123100-0b889c03f102/go.mod h1:s5q4SojHctfxANBDvMeIaIovkq29IP48TKAxnhYRxvo= +github.com/containerd/cgroups v0.0.0-20210114181951-8a68de567b68/go.mod h1:ZJeTFisyysqgcCdecO57Dj79RfL0LNeGiFUqLYQRYLE= github.com/containerd/cgroups v1.0.1/go.mod h1:0SJrPIenamHDcZhEcJMNBB85rHcUsw4f25ZfBiPYRkU= -github.com/containerd/cgroups v1.0.3 h1:ADZftAkglvCiD44c77s5YmMqaP2pzVCFZvBmAlBdAP4= -github.com/containerd/cgroups v1.0.3/go.mod h1:/ofk34relqNjSGyqPrmEULrO4Sc8LJhvJmWbUCUKqj8= +github.com/containerd/cgroups v1.0.4 h1:jN/mbWBEaz+T1pi5OFtnkQ+8qnmEbAr1Oo1FRm5B0dA= +github.com/containerd/cgroups v1.0.4/go.mod h1:nLNQtsF7Sl2HxNebu77i1R0oDlhiTG+kO4JTrUzo6IA= +github.com/containerd/console v0.0.0-20180822173158-c12b1e7919c1/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= +github.com/containerd/console v0.0.0-20181022165439-0650fd9eeb50/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= +github.com/containerd/console v0.0.0-20191206165004-02ecf6a7291e/go.mod h1:8Pf4gM6VEbTNRIT26AyyU7hxdQU3MvAvxVI0sc00XBE= github.com/containerd/console v1.0.1/go.mod h1:XUsP6YE/mKtz6bxc+I8UiKKTP04qjQL4qcS3XoQ5xkw= github.com/containerd/console v1.0.2/go.mod h1:ytZPjGgY2oeTkAONYafi2kSj0aYggsf8acV1PGKCbzQ= -github.com/containerd/containerd v1.4.9/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= -github.com/containerd/containerd v1.5.18 h1:doHr6cNxfOLTotWmZs6aZF6LrfJFcjmYFcWlRmQgYPM= -github.com/containerd/containerd v1.5.18/go.mod h1:7IN9MtIzTZH4WPEmD1gNH8bbTQXVX68yd3ZXxSHYCis= +github.com/containerd/containerd v1.2.10/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= +github.com/containerd/containerd v1.3.0-beta.2.0.20190828155532-0293cbd26c69/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= +github.com/containerd/containerd v1.3.0/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= +github.com/containerd/containerd v1.3.1-0.20191213020239-082f7e3aed57/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= +github.com/containerd/containerd v1.3.2/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= +github.com/containerd/containerd v1.4.0-beta.2.0.20200729163537-40b22ef07410/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= +github.com/containerd/containerd v1.4.1/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= +github.com/containerd/containerd v1.4.3/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= +github.com/containerd/containerd v1.5.0-beta.1/go.mod h1:5HfvG1V2FsKesEGQ17k5/T7V960Tmcumvqn8Mc+pCYQ= +github.com/containerd/containerd v1.5.0-beta.3/go.mod h1:/wr9AVtEM7x9c+n0+stptlo/uBBoBORwEx6ardVcmKU= +github.com/containerd/containerd v1.5.0-beta.4/go.mod h1:GmdgZd2zA2GYIBZ0w09ZvgqEq8EfBp/m3lcVZIvPHhI= +github.com/containerd/containerd v1.5.0-rc.0/go.mod h1:V/IXoMqNGgBlabz3tHD2TWDoTJseu1FGOKuoA4nNb2s= +github.com/containerd/containerd v1.5.1/go.mod h1:0DOxVqwDy2iZvrZp2JUx/E+hS0UNTVn7dJnIOwtYR4g= +github.com/containerd/containerd v1.5.7/go.mod h1:gyvv6+ugqY25TiXxcZC3L5yOeYgEw0QMhscqVp1AR9c= +github.com/containerd/containerd v1.6.22 h1:rGTIBxPJusM0evF6wKgIzuD+tV70nmx9eEjzHVm1JzI= +github.com/containerd/containerd v1.6.22/go.mod h1:BQAJdahvGz8xboAvxKg9hsDYIovn79Ea318anowQ1/o= +github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= +github.com/containerd/continuity v0.0.0-20190815185530-f2a389ac0a02/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= +github.com/containerd/continuity v0.0.0-20191127005431-f65d91d395eb/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= +github.com/containerd/continuity v0.0.0-20200710164510-efbc4488d8fe/go.mod h1:cECdGN1O8G9bgKTlLhuPJimka6Xb/Gg7vYzCTNVxhvo= +github.com/containerd/continuity v0.0.0-20201208142359-180525291bb7/go.mod h1:kR3BEg7bDFaEddKm54WSmrol1fKWDU1nKYkgrcgZT7Y= +github.com/containerd/continuity v0.0.0-20210208174643-50096c924a4e/go.mod h1:EXlVlkqNba9rJe3j7w3Xa924itAMLgZH4UD/Q4PExuQ= github.com/containerd/continuity v0.1.0/go.mod h1:ICJu0PwR54nI0yPEnJ6jcS+J7CZAUXrLh8lPo2knzsM= github.com/containerd/continuity v0.3.0 h1:nisirsYROK15TAMVukJOUyGJjz4BNQJBVsNvAXZJ/eg= github.com/containerd/continuity v0.3.0/go.mod h1:wJEAIwKOm/pBZuBd0JmeTvnLquTB1Ag8espWhkykbPM= +github.com/containerd/fifo v0.0.0-20180307165137-3d5202aec260/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI= +github.com/containerd/fifo v0.0.0-20190226154929-a9fb20d87448/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI= +github.com/containerd/fifo v0.0.0-20200410184934-f15a3290365b/go.mod h1:jPQ2IAeZRCYxpS/Cm1495vGFww6ecHmMk1YJH2Q5ln0= +github.com/containerd/fifo v0.0.0-20201026212402-0724c46b320c/go.mod h1:jPQ2IAeZRCYxpS/Cm1495vGFww6ecHmMk1YJH2Q5ln0= +github.com/containerd/fifo v0.0.0-20210316144830-115abcc95a1d/go.mod h1:ocF/ME1SX5b1AOlWi9r677YJmCPSwwWnQ9O123vzpE4= github.com/containerd/fifo v1.0.0/go.mod h1:ocF/ME1SX5b1AOlWi9r677YJmCPSwwWnQ9O123vzpE4= +github.com/containerd/go-cni v1.0.1/go.mod h1:+vUpYxKvAF72G9i1WoDOiPGRtQpqsNW/ZHtSlv++smU= +github.com/containerd/go-cni v1.0.2/go.mod h1:nrNABBHzu0ZwCug9Ije8hL2xBCYh/pjfMb1aZGrrohk= +github.com/containerd/go-runc v0.0.0-20180907222934-5a6d9f37cfa3/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0= +github.com/containerd/go-runc v0.0.0-20190911050354-e029b79d8cda/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0= +github.com/containerd/go-runc v0.0.0-20200220073739-7016d3ce2328/go.mod h1:PpyHrqVs8FTi9vpyHwPwiNEGaACDxT/N/pLcvMSRA9g= +github.com/containerd/go-runc v0.0.0-20201020171139-16b287bc67d0/go.mod h1:cNU0ZbCgCQVZK4lgG3P+9tn9/PaJNmoDXPpoJhDR+Ok= github.com/containerd/go-runc v1.0.0/go.mod h1:cNU0ZbCgCQVZK4lgG3P+9tn9/PaJNmoDXPpoJhDR+Ok= -github.com/containerd/ttrpc v1.1.0 h1:GbtyLRxb0gOLR0TYQWt3O6B0NvT8tMdorEHqIQo/lWI= +github.com/containerd/imgcrypt v1.0.1/go.mod h1:mdd8cEPW7TPgNG4FpuP3sGBiQ7Yi/zak9TYCG3juvb0= +github.com/containerd/imgcrypt v1.0.4-0.20210301171431-0ae5c75f59ba/go.mod h1:6TNsg0ctmizkrOgXRNQjAPFWpMYRWuiB6dSF4Pfa5SA= +github.com/containerd/imgcrypt v1.1.1-0.20210312161619-7ed62a527887/go.mod h1:5AZJNI6sLHJljKuI9IHnw1pWqo/F0nGDOuR9zgTs7ow= +github.com/containerd/imgcrypt v1.1.1/go.mod h1:xpLnwiQmEUJPvQoAapeb2SNCxz7Xr6PJrXQb0Dpc4ms= +github.com/containerd/nri v0.0.0-20201007170849-eb1350a75164/go.mod h1:+2wGSDGFYfE5+So4M5syatU0N0f0LbWpuqyMi4/BE8c= +github.com/containerd/nri v0.0.0-20210316161719-dbaa18c31c14/go.mod h1:lmxnXF6oMkbqs39FiCt1s0R2HSMhcLel9vNL3m4AaeY= +github.com/containerd/nri v0.1.0/go.mod h1:lmxnXF6oMkbqs39FiCt1s0R2HSMhcLel9vNL3m4AaeY= +github.com/containerd/stargz-snapshotter/estargz v0.4.1/go.mod h1:x7Q9dg9QYb4+ELgxmo4gBUeJB0tl5dqH1Sdz0nJU1QM= +github.com/containerd/ttrpc v0.0.0-20190828154514-0e0f228740de/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= +github.com/containerd/ttrpc v0.0.0-20190828172938-92c8520ef9f8/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= +github.com/containerd/ttrpc v0.0.0-20191028202541-4f1b8fe65a5c/go.mod h1:LPm1u0xBw8r8NOKoOdNMeVHSawSsltak+Ihv+etqsE8= +github.com/containerd/ttrpc v1.0.1/go.mod h1:UAxOpgT9ziI0gJrmKvgcZivgxOp8iFPSk8httJEt98Y= +github.com/containerd/ttrpc v1.0.2/go.mod h1:UAxOpgT9ziI0gJrmKvgcZivgxOp8iFPSk8httJEt98Y= github.com/containerd/ttrpc v1.1.0/go.mod h1:XX4ZTnoOId4HklF4edwc4DcqskFZuvXB1Evzy5KFQpQ= +github.com/containerd/ttrpc v1.1.2 h1:4jH6OQDQqjfVD2b5TJS5TxmGuLGmp5WW7KtW2TWOP7c= +github.com/containerd/ttrpc v1.1.2/go.mod h1:XX4ZTnoOId4HklF4edwc4DcqskFZuvXB1Evzy5KFQpQ= +github.com/containerd/typeurl v0.0.0-20180627222232-a93fcdb778cd/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= +github.com/containerd/typeurl v0.0.0-20190911142611-5eb25027c9fd/go.mod h1:GeKYzf2pQcqv7tJ0AoCuuhtnqhva5LNU3U+OyKxxJpk= +github.com/containerd/typeurl v1.0.1/go.mod h1:TB1hUtrpaiO88KEK56ijojHS1+NeF0izUACaJW2mdXg= github.com/containerd/typeurl v1.0.2 h1:Chlt8zIieDbzQFzXzAeBEF92KhExuE4p9p92/QmY7aY= github.com/containerd/typeurl v1.0.2/go.mod h1:9trJWW2sRlGub4wZJRTW83VtbOLS6hwcDZXTn6oPz9s= +github.com/containerd/zfs v0.0.0-20200918131355-0a33824f23a2/go.mod h1:8IgZOBdv8fAgXddBT4dBXJPtxyRsejFIpXoklgxgEjw= +github.com/containerd/zfs v0.0.0-20210301145711-11e8f1707f62/go.mod h1:A9zfAbMlQwE+/is6hi0Xw8ktpL+6glmqZYtevJgaB8Y= +github.com/containerd/zfs v0.0.0-20210315114300-dde8f0fda960/go.mod h1:m+m51S1DvAP6r3FcmYCp54bQ34pyOwTieQDNRIRHsFY= +github.com/containerd/zfs v0.0.0-20210324211415-d5c4544f0433/go.mod h1:m+m51S1DvAP6r3FcmYCp54bQ34pyOwTieQDNRIRHsFY= +github.com/containerd/zfs v1.0.0/go.mod h1:m+m51S1DvAP6r3FcmYCp54bQ34pyOwTieQDNRIRHsFY= +github.com/containernetworking/cni v0.7.1/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= +github.com/containernetworking/cni v0.8.0/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= +github.com/containernetworking/cni v0.8.1/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= +github.com/containernetworking/plugins v0.8.6/go.mod h1:qnw5mN19D8fIwkqW7oHHYDHVlzhJpcY6TQxn/fUyDDM= +github.com/containernetworking/plugins v0.9.1/go.mod h1:xP/idU2ldlzN6m4p5LmGiwRDjeJr6FLK6vuiUwoH7P8= +github.com/containers/ocicrypt v1.0.1/go.mod h1:MeJDzk1RJHv89LjsH0Sp5KTY3ZYkjXO/C+bKAeWFIrc= +github.com/containers/ocicrypt v1.1.0/go.mod h1:b8AOe0YR67uU8OqfVNcznfFpAzu3rdgUV4GP9qXPfu4= +github.com/containers/ocicrypt v1.1.1/go.mod h1:Dm55fwWm1YZAjYRaJ94z2mfZikIyIN4B0oB3dj3jFxY= github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= +github.com/coreos/go-iptables v0.4.5/go.mod h1:/mVI274lEDI2ns62jHCDnCyBF9Iwsmekav8Dbxlm1MU= +github.com/coreos/go-iptables v0.5.0/go.mod h1:/mVI274lEDI2ns62jHCDnCyBF9Iwsmekav8Dbxlm1MU= +github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/coreos/go-systemd v0.0.0-20161114122254-48702e0da86b/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= +github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= +github.com/coreos/go-systemd/v22 v22.0.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= github.com/coreos/go-systemd/v22 v22.1.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= +github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= +github.com/d2g/dhcp4 v0.0.0-20170904100407-a1d1b6c41b1c/go.mod h1:Ct2BUK8SB0YC1SMSibvLzxjeJLnrYEVLULFNiHY9YfQ= +github.com/d2g/dhcp4client v1.0.0/go.mod h1:j0hNfjhrt2SxUOw55nL0ATM/z4Yt3t2Kd1mW34z5W5s= +github.com/d2g/dhcp4server v0.0.0-20181031114812-7d4a0a7f59a5/go.mod h1:Eo87+Kg/IX2hfWJfwxMzLyuSZyxSoAug2nGa1G2QAi8= +github.com/d2g/hardwareaddr v0.0.0-20190221164911-e7d9fbe030e4/go.mod h1:bMl4RjIciD2oAxI7DmWRx6gbeqrkoLqv3MV0vzNad+I= 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= @@ -155,16 +285,20 @@ github.com/dgrijalva/jwt-go v0.0.0-20170104182250-a601269ab70c/go.mod h1:E3ru+11 github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E= +github.com/docker/cli v0.0.0-20191017083524-a8ff7f821017/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/cli v20.10.12+incompatible h1:lZlz0uzG+GH+c0plStMUdF/qk3ppmgnswpR5EbqzVGA= github.com/docker/cli v20.10.12+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/distribution v0.0.0-20191216044856-a8371794149d h1:jC8tT/S0OGx2cswpeUTn4gOIea8P08lD3VFQT0cOZ50= github.com/docker/distribution v0.0.0-20191216044856-a8371794149d/go.mod h1:0+TTO4EOBfRPhZXAeF1Vu+W3hHZ8eLp8PgKVZlcvtFY= +github.com/docker/docker v1.4.2-0.20190924003213-a8608b5b67c7/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker v20.10.24+incompatible h1:Ugvxm7a8+Gz6vqQYQQ2W7GYq5EUPaAiuPgIfVyI3dYE= github.com/docker/docker v20.10.24+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker-credential-helpers v0.6.3 h1:zI2p9+1NQYdnG6sMU26EX4aVGlqbInSQxQXLvzJ4RPQ= github.com/docker/docker-credential-helpers v0.6.3/go.mod h1:WRaJzqw3CTB9bk10avuGsjVBZsD05qeibJ1/TYlvc0Y= github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= +github.com/docker/go-events v0.0.0-20170721190031-9461782956ad/go.mod h1:Uw6UezgYA44ePAFQYUehOuCzmy5zmg/+nl2ZfMWGkpA= +github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c/go.mod h1:Uw6UezgYA44ePAFQYUehOuCzmy5zmg/+nl2ZfMWGkpA= github.com/docker/go-metrics v0.0.0-20180209012529-399ea8c73916/go.mod h1:/u0gXw0Gay3ceNrsHubL3BtdOL2fHf93USgMTe0W5dI= github.com/docker/go-metrics v0.0.1 h1:AgB/0SvBxihN0X8OR4SjsblXkbMvalQ8cjmtKQ2rQV8= github.com/docker/go-metrics v0.0.1/go.mod h1:cG1hvH2utMXtqgqqYE9plW6lDxS3/5ayHzueweSI3Vw= @@ -176,11 +310,13 @@ github.com/docker/libtrust v0.0.0-20160708172513-aabc10ec26b7 h1:UhxFibDNY/bfvqU github.com/docker/libtrust v0.0.0-20160708172513-aabc10ec26b7/go.mod h1:cyGadeNEkKy96OOhEzfZl+yxihPEzKnqJwvfuSUqbZE= github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= +github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= -github.com/emicklei/go-restful/v3 v3.9.0 h1:XwGDlfxEnQZzuopoqxwSEllNcCOM9DhhFyhFIIGKwxE= -github.com/emicklei/go-restful/v3 v3.9.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= +github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= +github.com/emicklei/go-restful/v3 v3.10.1 h1:rc42Y5YTp7Am7CS630D7JmhRjq4UlEUuEKfrDac4bSQ= +github.com/emicklei/go-restful/v3 v3.10.1/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= @@ -199,10 +335,12 @@ github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5Kwzbycv 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/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= +github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= +github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa/go.mod h1:KnogPXtdwXqoenmZCw6S+25EAm2MkxbG0deNDu4cbSA= github.com/garyburd/redigo v0.0.0-20150301180006-535138d7bcd7/go.mod h1:NR3MbYisc3/PwhQ00EMzDiPmrwpPxAn5GI05/YaO1SY= github.com/garyburd/redigo v1.6.0 h1:0VruCpn7yAIIu7pWVClQC8wxCJEcG3nyzpMSHKi1PQc= github.com/garyburd/redigo v1.6.0/go.mod h1:NR3MbYisc3/PwhQ00EMzDiPmrwpPxAn5GI05/YaO1SY= @@ -223,6 +361,7 @@ github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2 github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-ini/ini v1.25.4/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-kit/kit v0.9.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= github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= @@ -234,15 +373,19 @@ github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbV 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-logr/zapr v1.2.4 h1:QHVo+6stLbfJmYGkQ7uGHUCu5hnAFAj6mDe6Ea0SeOo= +github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0= github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE= github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs= +github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg= github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc= github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= github.com/go-openapi/jsonreference v0.20.1 h1:FBLnyygC4/IZZr893oiomc9XaghoveYTrLC1F86HID8= github.com/go-openapi/jsonreference v0.20.1/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k= +github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc= github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo= +github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I= github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= github.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g= @@ -250,12 +393,19 @@ github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+ github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls= +github.com/godbus/dbus v0.0.0-20151105175453-c7fdd8b5cd55/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= +github.com/godbus/dbus v0.0.0-20180201030542-885f9cc04c9c/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= +github.com/godbus/dbus v0.0.0-20190422162347-ade71ed3457e/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gofrs/uuid v3.3.0+incompatible h1:8K4tyRfvU1CYPgJsveYFQMhpFd/wXNM7iK6rR7UHz84= github.com/gofrs/uuid v3.3.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= +github.com/gogo/googleapis v1.2.0/go.mod h1:Njal3psf3qN6dwBtQfUmBZh2ybovJ0tlu3o/AC7HYjU= +github.com/gogo/googleapis v1.4.0/go.mod h1:5YRNX2z1oM5gXdAkurHa942MDgEJyk02w4OecKY87+c= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= +github.com/gogo/protobuf v1.3.0/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= @@ -264,6 +414,7 @@ github.com/golang-migrate/migrate/v4 v4.16.1/go.mod h1:qXiwa/3Zeqaltm1MxOCZDYysW github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/glog v1.0.0 h1:nfP3RFugxnNRyKgeWd4oI1nYvXpxrx8ck8ZrcizshdQ= github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4= +github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -277,8 +428,8 @@ github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= -github.com/golang/mock v1.5.0 h1:jlYHihg//f7RRwuPfptm04yp4s7O6Kw8EZiVYIGcH0g= -github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= +github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= +github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -317,9 +468,11 @@ github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-containerregistry v0.5.1/go.mod h1:Ct15B4yir3PLOP5jsy0GNeYVaIZs/MK/Jz5any1wFW0= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/gofuzz v1.1.0 h1:Hsa8mG0dQ46ij8Sl2AYJDUv1oA9/d6Vk+3LG99Oe02g= github.com/google/gofuzz v1.1.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/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= @@ -332,8 +485,10 @@ github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hf github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1 h1:K6RDEckDVWvDI9JAJYCmNdQXq6neHJOYx3V6jnqNEec= github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.2.0/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/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= @@ -344,13 +499,18 @@ github.com/gorilla/handlers v0.0.0-20150720190736-60c7bfde3e33/go.mod h1:Qkdc/uu github.com/gorilla/handlers v1.4.2 h1:0QniY0USkHQ1RGCLfKxeNHK9bkDHGRYGNDFBCS+YARg= github.com/gorilla/handlers v1.4.2/go.mod h1:Qkdc/uu4tH4g6mTK6auzZ766c4CA0Ng8+o/OAirnOIQ= github.com/gorilla/mux v1.7.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= +github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= 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 v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= +github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= +github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0 h1:BZHcxBETFHIdVyhyEfOvn/RdU/QGdLI4y34qQGjGWO0= github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0/go.mod h1:hgWBS7lorOAVIJEQMi4ZsPv9hVvWI6+ch50m39Pf2Ks= @@ -362,11 +522,13 @@ github.com/h2non/go-is-svg v0.0.0-20160927212452-35e8c4b0612c h1:fEE5/5VNnYUoBOj github.com/h2non/go-is-svg v0.0.0-20160927212452-35e8c4b0612c/go.mod h1:ObS/W+h8RYb1Y7fYivughjxojTmIu5iAIjSrSLCLeqE= github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= +github.com/hashicorp/errwrap v0.0.0-20141028054710-7554cd9344ce/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= +github.com/hashicorp/go-multierror v0.0.0-20161216184304-ed905158d874/go.mod h1:JMRHfdO9jKNzS/+BTlxCjKNQHg/jZAft8U7LloJvN7I= github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= @@ -385,11 +547,16 @@ github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/J github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= 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/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= +github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= +github.com/imdario/mergo v0.3.10/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= +github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= github.com/imdario/mergo v0.3.12 h1:b6R2BslTbIEToALKP7LxUvijTsNI9TAe80pLWN2g/HU= github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= 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= +github.com/j-keck/arping v0.0.0-20160618110441-2cf9dc699c56/go.mod h1:ymszkNOg6tORTn+6F6j+Jc8TOr5osrynvN6ivFWZ2GA= 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/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= @@ -419,9 +586,13 @@ github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvW 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/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/compress v1.11.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= +github.com/klauspost/compress v1.11.13/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.13.6 h1:P76CopJELS0TiO2mebmnzgWaajssP/EszplttgQxcgc= github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/konsorten/go-windows-terminal-sequences v1.0.3/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.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= @@ -433,25 +604,35 @@ github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/lib/pq v1.10.2 h1:AqzbZs4ZoCBp+GtejcpCpcxM3zlSMx29dXbUSeVtJb8= +github.com/linuxkit/virtsock v0.0.0-20201010232012-f8cee7dfc7a3/go.mod h1:3r6x7q95whyfWQpmGZTu3gk3v2YkMi05HEzl7Tf7YEo= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/marstr/guid v1.1.0/go.mod h1:74gB1z2wpxxInTG6yaqA7KrtM0NZ+RbrcqDvYHefzho= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= +github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= +github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= +github.com/mattn/go-shellwords v1.0.3/go.mod h1:3xCvwCdWdlDJUrvuMn7Wuy9eWs4pE8vqg+NOMyg4B2o= +github.com/mattn/go-shellwords v1.0.6/go.mod h1:3xCvwCdWdlDJUrvuMn7Wuy9eWs4pE8vqg+NOMyg4B2o= github.com/mattn/go-sqlite3 v1.14.16 h1:yOQRA0RpS5PFz/oikGwBEqvAWhWg5ufRz4ETLjwpU1Y= github.com/mattn/go-sqlite3 v1.14.16/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= +github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= 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= github.com/maxbrunsfeld/counterfeiter/v6 v6.2.2 h1:g+4J5sZg6osfvEfkRZxJ1em0VT95/UOZgi/l7zi1/oE= github.com/maxbrunsfeld/counterfeiter/v6 v6.2.2/go.mod h1:eD9eIE7cdwcMi9rYluz88Jz2VyhSmden33/aXg4oVIY= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= +github.com/miekg/pkcs11 v1.0.3/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs= +github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible/go.mod h1:8AuVvqP/mXw1px98n46wfvcGfQ4ci2FwoAjKYxuo3Z4= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= @@ -469,8 +650,12 @@ 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/sys/mountinfo v0.4.1 h1:1O+1cHA1aujwEwwVMa2Xm2l+gIpUHyd3+D+d7LZh1kM= +github.com/moby/sys/mountinfo v0.4.0/go.mod h1:rEr8tzG/lsIZHBtN/JjGG+LMYx9eXgW2JI+6q0qou+A= github.com/moby/sys/mountinfo v0.4.1/go.mod h1:rEr8tzG/lsIZHBtN/JjGG+LMYx9eXgW2JI+6q0qou+A= +github.com/moby/sys/mountinfo v0.6.2 h1:BzJjoreD5BMFNmD9Rus6gdd1pLuecOFPt8wC+Vygl78= +github.com/moby/sys/mountinfo v0.6.2/go.mod h1:IJb6JQeOklcdMU9F5xQ8ZALD+CUr5VlGpwtX+VE0rpI= +github.com/moby/sys/symlink v0.1.0/go.mod h1:GGDODQmbFOjFsXvfLVn3+ZRxkch54RkSiGqsZeMYowQ= +github.com/moby/term v0.0.0-20200312100748-672ec06f55cd/go.mod h1:DdlQx2hp0Ss5/fLikoLlEeIYiATotOjgB//nb973jeo= 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= @@ -482,6 +667,7 @@ 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/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= +github.com/mrunalp/fileutils v0.5.0/go.mod h1:M1WthSahJixYnrXQl/DFQuteStB1weuxD2QJNHXfbSQ= github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= 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= @@ -489,27 +675,56 @@ github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRW github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= github.com/ncw/swift v1.0.47/go.mod h1:23YIA4yWVnGwv2dQlN4bB7egfYX6YLn0Yo/S6zZO/ZM= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= +github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= +github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= +github.com/onsi/ginkgo v0.0.0-20151202141238-7f8ab55aaf3b/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.10.1/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.10.3/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.12.0/go.mod h1:oUhWkIvk5aDxtKvDDuw8gItl8pKl42LzjC9KZE0HfGg= +github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= github.com/onsi/ginkgo/v2 v2.9.5 h1:+6Hr4uxzP4XIUyAkg61dWBw8lb/gc4/X5luuxN/EC+Q= github.com/onsi/ginkgo/v2 v2.9.5/go.mod h1:tvAoo1QUJwNEU2ITftXTpR7R1RbCzoZUOs3RonqW57k= +github.com/onsi/gomega v0.0.0-20151007035656-2152b45fa28a/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= +github.com/onsi/gomega v1.9.0/go.mod h1:Ho0h+IUsWyvy1OpqCwxlQ/21gkhVunqlU8fDGcoTdcA= +github.com/onsi/gomega v1.10.3/go.mod h1:V9xEwhxec5O8UDM77eCW8vLymOMltsqPVYWrpDsH8xc= github.com/onsi/gomega v1.27.7 h1:fVih9JD6ogIiHUN6ePK7HJidyEDpWGVB5mzM7cWNXoU= github.com/onsi/gomega v1.27.7/go.mod h1:1p8OOlwo2iUUDsHnOrjE5UKYJ+e3W8eQ3qSlRahPmr4= github.com/opencontainers/go-digest v0.0.0-20170106003457-a6d0ee40d420/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= +github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= +github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= +github.com/opencontainers/go-digest v1.0.0-rc1.0.20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= 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.0.0/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= -github.com/opencontainers/image-spec v1.0.2 h1:9yCKha/T5XdGtO0q9Q9a6T5NUCsTn/DrBg0D7ufOcFM= -github.com/opencontainers/image-spec v1.0.2/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= +github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= +github.com/opencontainers/image-spec v1.1.0-rc2.0.20221005185240-3a7f492d3f1b h1:YWuSjZCQAPM8UUBLkYUk1e+rZcvWHJmFb6i6rM44Xs8= +github.com/opencontainers/image-spec v1.1.0-rc2.0.20221005185240-3a7f492d3f1b/go.mod h1:3OVijpioIKYWTqjiG0zfF6wvoJ4fAXGbjdZuI2NgsRQ= +github.com/opencontainers/runc v0.0.0-20190115041553-12f6a991201f/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= +github.com/opencontainers/runc v0.1.1/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= +github.com/opencontainers/runc v1.0.0-rc8.0.20190926000215-3e425f80a8c9/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= +github.com/opencontainers/runc v1.0.0-rc9/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= +github.com/opencontainers/runc v1.0.0-rc93/go.mod h1:3NOsor4w32B2tC0Zbl8Knk4Wg84SM2ImC1fxBuqJ/H0= +github.com/opencontainers/runc v1.0.2/go.mod h1:aTaHFFwQXuA71CiyxOdFFIorAoemI04suvGRQFzWTD0= +github.com/opencontainers/runtime-spec v0.1.2-0.20190507144316-5b71a03e2700/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= +github.com/opencontainers/runtime-spec v1.0.1/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= +github.com/opencontainers/runtime-spec v1.0.2-0.20190207185410-29686dbc5559/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/opencontainers/runtime-spec v1.0.2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/opencontainers/runtime-spec v1.0.3-0.20200929063507-e6143ca7d51d/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417 h1:3snG66yBm59tKhhSPQrQ/0bCrv1LQbKt40LnUPiUxdc= +github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= +github.com/opencontainers/runtime-tools v0.0.0-20181011054405-1d69bd0f9c39/go.mod h1:r3f7wjNzSs2extwzU3Y+6pKfobzPh+kKFJ3ofN+3nfs= +github.com/opencontainers/selinux v1.6.0/go.mod h1:VVGKuOLlE7v4PJyT6h7mNWvq1rzqiriPsEqVhc+svHE= +github.com/opencontainers/selinux v1.8.0/go.mod h1:RScLhm78qiWa2gbVCcGkC7tCGdgk3ogry1nUQF8Evvo= +github.com/opencontainers/selinux v1.8.2/go.mod h1:MUIHuUEvKB1wtJjQdOyYRgOnLD2xAPP8dBsCoU0KuF8= github.com/operator-framework/api v0.17.7 h1:NLn+Ieg+HaPrw75KbX4efllN21ofFArQzS3q8TDbQY0= github.com/operator-framework/api v0.17.7/go.mod h1:lnurXgadLnoZ7pufKMHkErr2BVOIZSpHtvEkHBcKvdk= github.com/otiai10/copy v1.2.0 h1:HvG945u96iNadPoG2/Ja2+AUJeW5YuFQMixq9yirC+k= @@ -522,28 +737,33 @@ github.com/otiai10/mint v1.3.1/go.mod h1:/yxELlJQ0ufhjUwhshSj+wFjZ78CnZ48/1wtmBH github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pelletier/go-toml v1.8.1/go.mod h1:T2/BmBdy8dvIRq1a/8aqjN41wvWlN4lrapLU/GW4pbc= -github.com/pelletier/go-toml v1.9.3 h1:zeC5b1GviRUyKYd6OJPvBU/mcVDVoL1OhT17FCt5dSQ= -github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= +github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= +github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= +github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= github.com/phayes/freeport v0.0.0-20180830031419-95f893ade6f2 h1:JhzVVoYvbOACxoUmOs6V/G4D5nPVUW73rKvXxP4XUJc= github.com/phayes/freeport v0.0.0-20180830031419-95f893ade6f2/go.mod h1:iIss55rKnNBTvrwdmkUpLnDpZoAHvWaiq5+iMmen4AE= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.8.1-0.20171018195549-f15c970de5b7/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= 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 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= +github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= github.com/prometheus/client_golang v0.0.0-20180209125602-c332b6f63c06/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= 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.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= github.com/prometheus/client_golang v1.15.1 h1:8tXpTmJbyH5lydzFPoxSIJ0J46jdh3tylbvM1xCv0LI= github.com/prometheus/client_golang v1.15.1/go.mod h1:e9yaBhRPU2pPNsZwE+JdQl0KEt1N9XgF6zxWmaC0xOk= github.com/prometheus/client_model v0.0.0-20171117100541-99fa1f4be8e5/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= 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.2.0/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/common v0.0.0-20180110214958-89604d197083/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= @@ -551,13 +771,19 @@ github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7q github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= 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.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.42.0 h1:EKsfXEYo4JpWMHH5cg+KOUWeuJSov1Id8zGR8eeI1YM= github.com/prometheus/common v0.42.0/go.mod h1:xBwqVerjNdUDjgODMpudtOMwlOwf2SaTr1yjz4b7Zbc= github.com/prometheus/procfs v0.0.0-20180125133057-cb4147076ac7/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= +github.com/prometheus/procfs v0.0.0-20190522114515-bc1a522cf7b1/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= 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.0.5/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= +github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= +github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= +github.com/prometheus/procfs v0.2.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/prometheus/procfs v0.9.0 h1:wzCHvIvM5SxWqYvwgVL7yJY8Lz3PKn49KQtpgMYJfhI= github.com/prometheus/procfs v0.9.0/go.mod h1:+pB4zwohETzFnmlpe6yd2lSc+0/46IYZRB/chUwxUZY= @@ -570,15 +796,20 @@ github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQD 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/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= +github.com/safchain/ethtool v0.0.0-20190326074333-42ed695e3de8/go.mod h1:Z0q5wiBQGYcxhMZ6gUqHn6pYNLypFAvaL3UvgZLR0U4= github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= github.com/sclevine/spec v1.2.0 h1:1Jwdf9jSfDl9NVmt8ndHqbTZ7XCCPbh1jI3hkDBHVYA= github.com/sclevine/spec v1.2.0/go.mod h1:W4J29eT/Kzv7/b9IWLB055Z+qvVC9vt0Arko24q7p+U= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= +github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= +github.com/sirupsen/logrus v1.0.4-0.20170822132746-89742aefa4b2/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= +github.com/sirupsen/logrus v1.0.6/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= +github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/sirupsen/logrus v1.9.2 h1:oxx1eChJGI6Uks2ZC4W1zpLlVgqB8ner4EuQwV4Ik1Y= @@ -589,7 +820,9 @@ github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9 github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= +github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/spf13/cobra v0.0.2-0.20171109065643-2da4a54c5cee/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= github.com/spf13/cobra v1.1.1/go.mod h1:WnodtKOvamDL/PwE2M4iKs8aMDBZ5Q5klgD3qfVJQMI= @@ -597,6 +830,8 @@ github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/pflag v1.0.1-0.20171106142849-4c012f6dcd95/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= @@ -604,13 +839,16 @@ github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/y github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= github.com/spiffe/go-spiffe/v2 v2.0.0 h1:y6N7BZAxgaFZYELyrIdxSMm2e2tWpzgQewUts9h1hfM= github.com/spiffe/go-spiffe/v2 v2.0.0/go.mod h1:TEfgrEcyFhuSuvqohJt6IxENUNeHfndWCCV1EX7UaVk= +github.com/stefanberger/go-pkcs11uri v0.0.0-20201008174630-78d3cae3a980/go.mod h1:AO3tvPzVZ/ayst6UlUKUv6rcPQInYe3IknH3jYhAKu8= github.com/stoewer/go-strcase v1.2.0 h1:Z2iHWqGXH00XYgqDmNgQbIBxf3wrNq0F3feEy0ainaU= github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8= +github.com/stretchr/objx v0.0.0-20180129172003-8a3f7159479f/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= 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.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/testify v0.0.0-20180303142811-b89eecf5ca5d/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= @@ -623,10 +861,29 @@ github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o github.com/stretchr/testify v1.8.3 h1:RP3t2pwF7cMEbC1dqtB6poj3niw/9gnV4Cjg5oW5gtY= github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= +github.com/syndtr/gocapability v0.0.0-20170704070218-db04d3cc01c8/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= +github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= +github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= +github.com/tchap/go-patricia v2.2.6+incompatible/go.mod h1:bmLyhP68RS6kStMGxByiQ23RP/odRBOTVjwp2cDyi6I= +github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= +github.com/urfave/cli v0.0.0-20171014202726-7bc6a0acffa5/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= +github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= +github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= +github.com/vishvananda/netlink v0.0.0-20181108222139-023a6dafdcdf/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk= +github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE= +github.com/vishvananda/netlink v1.1.1-0.20201029203352-d40f9887b852/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho= +github.com/vishvananda/netns v0.0.0-20180720170159-13995c7128cc/go.mod h1:ZjcWmFBXmLKZu9Nxj3WKYEafiSqer2rnvPr0en9UNpI= +github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU= +github.com/vishvananda/netns v0.0.0-20200728191858-db3c7e526aae/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0= +github.com/willf/bitset v1.1.11-0.20200630133818-d5bec3311243/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4= +github.com/willf/bitset v1.1.11/go.mod h1:83CECat5yLh5zVOf4P1ErAgKA5UDvKtgyUABdr3+MjI= github.com/xanzy/ssh-agent v0.3.0/go.mod h1:3s9xbODqPuuhK9JV1R321M/FlMZSBvE5aY6eAcqrDh0= +github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= +github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= +github.com/xeipuuv/gojsonschema v0.0.0-20180618132009-1d523034197f/go.mod h1:5yf86TLmAcydyeJq5YvxkGPE2fm/u4myDekKRoLuqhs= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/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= @@ -647,8 +904,13 @@ github.com/zeebo/errs v1.2.2/go.mod h1:sgbWHsvVuTPHcqJJGQ1WhI5KbWlHYz+2+2C/LSEtC 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.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.6 h1:/ecaJf0sk1l4l6V4awd65v2C3ILy7MSj+s/x1ADCIMU= +go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= +go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= go.etcd.io/bbolt v1.3.6/go.mod h1:qXsaaIqmgQH0T+OPdb99Bf+PKfBBQVAdyD6TY9G8XM4= +go.etcd.io/bbolt v1.3.7 h1:j+zJOnnEjF/kyHlDDgGnVL/AIqIJPq8UoB2GSNfkUfQ= +go.etcd.io/bbolt v1.3.7/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw= +go.etcd.io/etcd v0.5.0-alpha.5.0.20200910180754-dd1b699fc489/go.mod h1:yVHk9ub3CSBatqGNg7GRmsnfLWtoW60w4eDYfh7vHDg= +go.mozilla.org/pkcs7 v0.0.0-20200128120323-432b2356ecb1/go.mod h1:SNgMg+EgDFwmvSmLRTNKC5fegJjB7v23qTQ0XLGUNHk= 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= @@ -675,23 +937,28 @@ go.opentelemetry.io/otel/trace v1.10.0/go.mod h1:Sij3YYczqAdz+EhmGhE6TpTxUO5/F/A go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.opentelemetry.io/proto/otlp v0.19.0 h1:IVN6GR+mhC4s5yfcTbmzHYODqvWAp3ZedA2SJPI1Nnw= go.opentelemetry.io/proto/otlp v0.19.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= +go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw= -go.uber.org/goleak v1.1.12/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60= +golang.org/x/crypto v0.0.0-20171113213409-9f005a07e0d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20181009213950-7c1a557ab941/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190219172222-a4c6cb3142f2/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-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= 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.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.7.0 h1:AvwMYaRytfdeVt3u6mLaxYtErKYjxA2OXjJ1HHq6t3A= golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= @@ -733,6 +1000,7 @@ golang.org/x/mod v0.10.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= 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-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181011144130-49bb7cea24b1/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -750,7 +1018,9 @@ golang.org/x/net v0.0.0-20190619014844-b5b0513f8c1b/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -765,11 +1035,14 @@ golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/ golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20201006153459-a7d1128ccaa0/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= 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-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210326060303-6b1517762897/go.mod h1:uSPa2vr4CLtc/ILN5odXGNXS6mhrKVzTaCXzk9m6W3k= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= +golang.org/x/net v0.0.0-20210825183410-e898025ed96a/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -806,24 +1079,38 @@ golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190514135907-3a4b5fb9f71f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190522044717-8097e1b27ff5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190602015325-4c4f7f33c9ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190606203320-7fc4e5ec1444/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190812073006-9eafafc0a87e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191022100944-742c48ecaeb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191115151921-52ab43148777/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191210023423-ac6580df4449/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200120151820-655fe14d7479/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200217220822-9197077df867/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -832,20 +1119,32 @@ golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200728102440-3e129f6d46b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200817155316-9781c653f443/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200909081042-eff7692f9009/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200916030750-2334cc1a136f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200922070232-aee5d888a860/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200923182605-d9f96fdee20d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201117170446-d9b008d0a637/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201202213521-69691e467435/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210324051608-47abb6519492/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210426230700-d19ff857e887/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -859,15 +1158,20 @@ 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= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= 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= +golang.org/x/time v0.0.0-20200416051211-89c76fbcd5d1/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= 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-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/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-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= @@ -907,15 +1211,18 @@ golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjs golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200505023115-26f46d2f7ef8/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200616133436-c1934b75d054/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200916195026-c9a70fc28ce3/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.9.1 h1:8WMNJAz3zrtPmnYC7ISf5dEn3MT0gY7jBJfw27yrrLo= golang.org/x/tools v0.9.1/go.mod h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -954,6 +1261,7 @@ google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRn google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190522204451-c2c4e71fbf69/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= @@ -962,6 +1270,7 @@ google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvx google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200117163144-32f20d992d24/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= @@ -975,12 +1284,14 @@ google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfG google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= +google.golang.org/genproto v0.0.0-20200527145253-8367513e4ece/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200806141610-86f49bd18e98/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201110150050-8816d57aaa9a/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20211118181313-81c1377c94b1/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= google.golang.org/genproto v0.0.0-20230525154841-bd750badd5c6 h1:62QuyPXKEkZpjZesyj5K5jABl6MnSnWl+vNuT5oz90E= google.golang.org/genproto v0.0.0-20230525154841-bd750badd5c6/go.mod h1:nKE/iIaLqn2bQwXBg8f1g2Ylh6r5MN5CmZvuzZCgsCU= @@ -990,6 +1301,8 @@ google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiq google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= @@ -1023,6 +1336,7 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U= 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-20141024133853-64131543e789/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -1031,13 +1345,19 @@ gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/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/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2/go.mod h1:Xk6kEKp8OKb+X14hQBKWaSkCsqBpgog8nAV2xsGOxlo= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= +gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= +gopkg.in/square/go-jose.v2 v2.3.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/square/go-jose.v2 v2.4.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= +gopkg.in/square/go-jose.v2 v2.5.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/square/go-jose.v2 v2.6.0 h1:NGk74WTnPKBNUhNzQX7PYcTLUjoq7mzKk2OKbvwk2iI= gopkg.in/square/go-jose.v2 v2.6.0/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= @@ -1048,6 +1368,7 @@ gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= 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.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= @@ -1057,8 +1378,11 @@ gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/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= -gotest.tools/v3 v3.0.3 h1:4AuOwCGf4lLR9u3YOe2awrHygurzhO/HeQ6laiA6Sx0= +gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo= +gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= +gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk= gotest.tools/v3 v3.0.3/go.mod h1:Z7Lb0S5l+klDB31fvDQX8ss/FlKDxtlFlw3Oa8Ymbl8= +gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= @@ -1066,34 +1390,62 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= 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= +k8s.io/api v0.20.1/go.mod h1:KqwcCVogGxQY3nBlRpwt+wpAMF/KjaCc7RpywacvqUo= +k8s.io/api v0.20.4/go.mod h1:++lNL1AJMkDymriNniQsWRkMDzRaX2Y/POTUi8yvqYQ= +k8s.io/api v0.20.6/go.mod h1:X9e8Qag6JV/bL5G6bU8sdVRltWKmdHsFUGS3eVndqE8= k8s.io/api v0.27.2 h1:+H17AJpUMvl+clT+BPnKf0E3ksMAzoBBg7CntpSuADo= k8s.io/api v0.27.2/go.mod h1:ENmbocXfBT2ADujUXcBhHV55RIT31IIEvkntP6vZKS4= k8s.io/apiextensions-apiserver v0.27.2 h1:iwhyoeS4xj9Y7v8YExhUwbVuBhMr3Q4bd/laClBV6Bo= k8s.io/apiextensions-apiserver v0.27.2/go.mod h1:Oz9UdvGguL3ULgRdY9QMUzL2RZImotgxvGjdWRq6ZXQ= +k8s.io/apimachinery v0.20.1/go.mod h1:WlLqWAHZGg07AeltaI0MV5uk1Omp8xaN0JGLY6gkRpU= k8s.io/apimachinery v0.20.2/go.mod h1:WlLqWAHZGg07AeltaI0MV5uk1Omp8xaN0JGLY6gkRpU= +k8s.io/apimachinery v0.20.4/go.mod h1:WlLqWAHZGg07AeltaI0MV5uk1Omp8xaN0JGLY6gkRpU= +k8s.io/apimachinery v0.20.6/go.mod h1:ejZXtW1Ra6V1O5H8xPBGz+T3+4gfkTCeExAHKU57MAc= k8s.io/apimachinery v0.27.2 h1:vBjGaKKieaIreI+oQwELalVG4d8f3YAMNpWLzDXkxeg= k8s.io/apimachinery v0.27.2/go.mod h1:XNfZ6xklnMCOGGFNqXG7bUrQCoR04dh/E7FprV6pb+E= +k8s.io/apiserver v0.20.1/go.mod h1:ro5QHeQkgMS7ZGpvf4tSMx6bBOgPfE+f52KwvXfScaU= +k8s.io/apiserver v0.20.4/go.mod h1:Mc80thBKOyy7tbvFtB4kJv1kbdD0eIH8k8vianJcbFM= +k8s.io/apiserver v0.20.6/go.mod h1:QIJXNt6i6JB+0YQRNcS0hdRHJlMhflFmsBDeSgT1r8Q= k8s.io/apiserver v0.27.2 h1:p+tjwrcQEZDrEorCZV2/qE8osGTINPuS5ZNqWAvKm5E= k8s.io/apiserver v0.27.2/go.mod h1:EsOf39d75rMivgvvwjJ3OW/u9n1/BmUMK5otEOJrb1Y= +k8s.io/client-go v0.20.1/go.mod h1:/zcHdt1TeWSd5HoUe6elJmHSQ6uLLgp4bIJHVEuy+/Y= +k8s.io/client-go v0.20.4/go.mod h1:LiMv25ND1gLUdBeYxBIwKpkSC5IsozMMmOOeSJboP+k= +k8s.io/client-go v0.20.6/go.mod h1:nNQMnOvEUEsOzRRFIIkdmYOjAZrC8bgq0ExboWSU1I0= k8s.io/client-go v0.27.2 h1:vDLSeuYvCHKeoQRhCXjxXO45nHVv2Ip4Fe0MfioMrhE= k8s.io/client-go v0.27.2/go.mod h1:tY0gVmUsHrAmjzHX9zs7eCjxcBsf8IiNe7KQ52biTcQ= +k8s.io/code-generator v0.19.7/go.mod h1:lwEq3YnLYb/7uVXLorOJfxg+cUu2oihFhHZ0n9NIla0= +k8s.io/component-base v0.20.1/go.mod h1:guxkoJnNoh8LNrbtiQOlyp2Y2XFCZQmrcg2n/DeYNLk= +k8s.io/component-base v0.20.4/go.mod h1:t4p9EdiagbVCJKrQ1RsA5/V4rFQNDfRlevJajlGwgjI= +k8s.io/component-base v0.20.6/go.mod h1:6f1MPBAeI+mvuts3sIdtpjljHWBQ2cIy38oBIWMYnrM= k8s.io/component-base v0.27.2 h1:neju+7s/r5O4x4/txeUONNTS9r1HsPbyoPBAtHsDCpo= k8s.io/component-base v0.27.2/go.mod h1:5UPk7EjfgrfgRIuDBFtsEFAe4DAvP3U+M8RTzoSJkpo= +k8s.io/cri-api v0.17.3/go.mod h1:X1sbHmuXhwaHs9xxYffLqJogVsnI+f6cPRcgPel7ywM= +k8s.io/cri-api v0.20.1/go.mod h1:2JRbKt+BFLTjtrILYVqQK5jqhI+XNdF6UiGMgczeBCI= +k8s.io/cri-api v0.20.4/go.mod h1:2JRbKt+BFLTjtrILYVqQK5jqhI+XNdF6UiGMgczeBCI= +k8s.io/cri-api v0.20.6/go.mod h1:ew44AjNXwyn1s0U4xCKGodU7J1HzBeZ1MpGrpa5r8Yc= k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= +k8s.io/gengo v0.0.0-20200428234225-8167cfdcfc14/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= +k8s.io/gengo v0.0.0-20201113003025-83324d819ded/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= +k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/klog/v2 v2.4.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/klog/v2 v2.90.1 h1:m4bYOKall2MmOiRaR1J+We67Do7vm9KiQVlT96lnHUw= k8s.io/klog/v2 v2.90.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= +k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6/go.mod h1:UuqjUnNftUyPE5H64/qeyjQoUZhGpeFDVdxjTeEVN2o= k8s.io/kube-openapi v0.0.0-20201113171705-d219536bb9fd/go.mod h1:WOJ3KddDSol4tAGcJo0Tvi+dK12EcqSLqcWsryKMpfM= k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f h1:2kWPakN3i/k81b0gvD5C5FJ2kxm1WrQFanWchyKuqGg= k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f/go.mod h1:byini6yhqGC14c3ebc/QwanvYwhuMWF6yz2F8uwW8eg= k8s.io/kubectl v0.27.1 h1:9T5c5KdpburYiW8XKQSH0Uly1kMNE90aGSnbYUZNdcA= k8s.io/kubectl v0.27.1/go.mod h1:QsAkSmrRsKTPlAFzF8kODGDl4p35BIwQnc9XFhkcsy8= +k8s.io/kubernetes v1.13.0/go.mod h1:ocZa8+6APFNC2tX1DZASIbocyYT5jHzqFVsY5aoB7Jk= +k8s.io/utils v0.0.0-20201110183641-67b214c5f920/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20230209194617-a36077c30491 h1:r0BAOLElQnnFhE/ApUsg3iHdVYYPBjNSSOMowRZxxsY= k8s.io/utils v0.0.0-20230209194617-a36077c30491/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= 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.0.14/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg= +sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.15/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.1.2 h1:trsWhjU5jZrx6UvFu4WzQDrN7Pga4a7Qg+zcfcj64PA= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.1.2/go.mod h1:+qG7ISXqCDVVcyO8hLn12AKVYYUjM7ftlqsqmrhMZE0= sigs.k8s.io/controller-runtime v0.15.0 h1:ML+5Adt3qZnMSYxZ7gAverBLNPSMQEibtzAgp0UPojU= @@ -1102,7 +1454,9 @@ 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/kind v0.11.1 h1:pVzOkhUwMBrCB0Q/WllQDO3v14Y+o2V0tFgjTqIUjwA= sigs.k8s.io/kind v0.11.1/go.mod h1:fRpgVhtqAWrtLB9ED7zQahUimpUXuG/iHT88xYqEGIA= +sigs.k8s.io/structured-merge-diff/v4 v4.0.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= +sigs.k8s.io/structured-merge-diff/v4 v4.0.3/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= sigs.k8s.io/structured-merge-diff/v4 v4.2.3 h1:PRbqxJClWWYMNV1dhaG4NsibJbArud9kFxnAMREiWFE= sigs.k8s.io/structured-merge-diff/v4 v4.2.3/go.mod h1:qjx8mGObPmV2aSZepjQjbmb2ihdVs8cGKBraizNC69E= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= From ad5b7760dc662b590eb18338bcd419011fa0f490 Mon Sep 17 00:00:00 2001 From: Todd Short Date: Tue, 15 Aug 2023 16:52:03 -0400 Subject: [PATCH 03/10] [chore] Update github.com/emicklei/go-restful/v3 to v3.10.2 (#1136) Fixes path join issue Signed-off-by: Todd Short Upstream-repository: operator-registry Upstream-commit: 7f37952d54699439d27e0dc27c1a5778cdb101ec --- go.mod | 2 +- go.sum | 4 ++-- staging/operator-registry/go.mod | 2 +- staging/operator-registry/go.sum | 4 ++-- .../emicklei/go-restful/v3/CHANGES.md | 5 ++++ .../emicklei/go-restful/v3/README.md | 4 ++++ .../emicklei/go-restful/v3/route_builder.go | 24 +++++++++++++++++-- vendor/modules.txt | 2 +- 8 files changed, 38 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index bd4cd3fa94..e08b56d310 100644 --- a/go.mod +++ b/go.mod @@ -73,7 +73,7 @@ require ( github.com/docker/go-connections v0.4.0 // indirect github.com/docker/go-metrics v0.0.1 // indirect github.com/docker/go-units v0.5.0 // indirect - github.com/emicklei/go-restful/v3 v3.10.1 // indirect + github.com/emicklei/go-restful/v3 v3.10.2 // indirect github.com/evanphx/json-patch v5.6.0+incompatible // indirect github.com/evanphx/json-patch/v5 v5.6.0 // indirect github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d // indirect diff --git a/go.sum b/go.sum index 7bcffd9de7..6328c1e8bb 100644 --- a/go.sum +++ b/go.sum @@ -205,8 +205,8 @@ github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4 github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= -github.com/emicklei/go-restful/v3 v3.10.1 h1:rc42Y5YTp7Am7CS630D7JmhRjq4UlEUuEKfrDac4bSQ= -github.com/emicklei/go-restful/v3 v3.10.1/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= +github.com/emicklei/go-restful/v3 v3.10.2 h1:hIovbnmBTLjHXkqEBUz3HGpXZdM7ZrE9fJIZIqlJLqE= +github.com/emicklei/go-restful/v3 v3.10.2/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o= github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= diff --git a/staging/operator-registry/go.mod b/staging/operator-registry/go.mod index 9e744ec472..6c6c6b1da8 100644 --- a/staging/operator-registry/go.mod +++ b/staging/operator-registry/go.mod @@ -75,7 +75,7 @@ require ( github.com/docker/go-metrics v0.0.1 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/docker/libtrust v0.0.0-20160708172513-aabc10ec26b7 // indirect - github.com/emicklei/go-restful/v3 v3.10.1 // indirect + github.com/emicklei/go-restful/v3 v3.10.2 // indirect github.com/evanphx/json-patch v4.12.0+incompatible // indirect github.com/evanphx/json-patch/v5 v5.6.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect diff --git a/staging/operator-registry/go.sum b/staging/operator-registry/go.sum index 7c601c5dbb..5b5672e937 100644 --- a/staging/operator-registry/go.sum +++ b/staging/operator-registry/go.sum @@ -315,8 +315,8 @@ github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25Kn github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= -github.com/emicklei/go-restful/v3 v3.10.1 h1:rc42Y5YTp7Am7CS630D7JmhRjq4UlEUuEKfrDac4bSQ= -github.com/emicklei/go-restful/v3 v3.10.1/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= +github.com/emicklei/go-restful/v3 v3.10.2 h1:hIovbnmBTLjHXkqEBUz3HGpXZdM7ZrE9fJIZIqlJLqE= +github.com/emicklei/go-restful/v3 v3.10.2/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= diff --git a/vendor/github.com/emicklei/go-restful/v3/CHANGES.md b/vendor/github.com/emicklei/go-restful/v3/CHANGES.md index 02a73ccfd1..352018e703 100644 --- a/vendor/github.com/emicklei/go-restful/v3/CHANGES.md +++ b/vendor/github.com/emicklei/go-restful/v3/CHANGES.md @@ -1,5 +1,10 @@ # Change history of go-restful +## [v3.10.2] - 2023-03-09 + +- introduced MergePathStrategy to be able to revert behaviour of path concatenation to 3.9.0 + see comment in Readme how to customize this behaviour. + ## [v3.10.1] - 2022-11-19 - fix broken 3.10.0 by using path package for joining paths diff --git a/vendor/github.com/emicklei/go-restful/v3/README.md b/vendor/github.com/emicklei/go-restful/v3/README.md index 0625359dc4..85da90128e 100644 --- a/vendor/github.com/emicklei/go-restful/v3/README.md +++ b/vendor/github.com/emicklei/go-restful/v3/README.md @@ -96,6 +96,10 @@ There are several hooks to customize the behavior of the go-restful package. - Compression - Encoders for other serializers - Use [jsoniter](https://github.com/json-iterator/go) by building this package using a build tag, e.g. `go build -tags=jsoniter .` +- Use the variable `MergePathStrategy` to change the behaviour of composing the Route path given a root path and a local route path + - versions >= 3.10.1 has set the value to `PathJoinStrategy` that fixes a reported [security issue](https://github.com/advisories/GHSA-r48q-9g5r-8q2h) but may cause your services not to work correctly anymore. + - versions <= 3.9 had the behaviour that can be restored in newer versions by setting the value to `TrimSlashStrategy`. + - you can set value to a custom implementation (must implement MergePathStrategyFunc) ## Resources diff --git a/vendor/github.com/emicklei/go-restful/v3/route_builder.go b/vendor/github.com/emicklei/go-restful/v3/route_builder.go index 830ebf148e..827f471de0 100644 --- a/vendor/github.com/emicklei/go-restful/v3/route_builder.go +++ b/vendor/github.com/emicklei/go-restful/v3/route_builder.go @@ -353,8 +353,28 @@ func (b *RouteBuilder) Build() Route { return route } -func concatPath(path1, path2 string) string { - return path.Join(path1, path2) +type MergePathStrategyFunc func(rootPath, routePath string) string + +var ( + // behavior >= 3.10 + PathJoinStrategy = func(rootPath, routePath string) string { + return path.Join(rootPath, routePath) + } + + // behavior <= 3.9 + TrimSlashStrategy = func(rootPath, routePath string) string { + return strings.TrimRight(rootPath, "/") + "/" + strings.TrimLeft(routePath, "/") + } + + // MergePathStrategy is the active strategy for merging a Route path when building the routing of all WebServices. + // The value is set to PathJoinStrategy + // PathJoinStrategy is a strategy that is more strict [Security - PRISMA-2022-0227] + MergePathStrategy = PathJoinStrategy +) + +// merge two paths using the current (package global) merge path strategy. +func concatPath(rootPath, routePath string) string { + return MergePathStrategy(rootPath, routePath) } var anonymousFuncCount int32 diff --git a/vendor/modules.txt b/vendor/modules.txt index 572308f4ba..77f2111a1c 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -226,7 +226,7 @@ github.com/docker/go-metrics # github.com/docker/go-units v0.5.0 ## explicit github.com/docker/go-units -# github.com/emicklei/go-restful/v3 v3.10.1 +# github.com/emicklei/go-restful/v3 v3.10.2 ## explicit; go 1.13 github.com/emicklei/go-restful/v3 github.com/emicklei/go-restful/v3/log From 509b2d345ef85c95ba615b210c06eb844743ad36 Mon Sep 17 00:00:00 2001 From: Todd Short Date: Tue, 15 Aug 2023 17:20:30 -0400 Subject: [PATCH 04/10] [chore] Update github.com/emicklei/go-restful/v3 to v3.10.2 (#290) Fixes path join issue Signed-off-by: Todd Short Upstream-repository: api Upstream-commit: 775e6c6534b89dde01826627ceb570c16ab6768f --- staging/api/go.mod | 2 +- staging/api/go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/staging/api/go.mod b/staging/api/go.mod index 4120ad8147..c4306090a3 100644 --- a/staging/api/go.mod +++ b/staging/api/go.mod @@ -25,7 +25,7 @@ require ( github.com/cenkalti/backoff/v4 v4.1.3 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect - github.com/emicklei/go-restful/v3 v3.9.0 // indirect + github.com/emicklei/go-restful/v3 v3.10.2 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect github.com/go-logr/logr v1.2.4 // indirect github.com/go-logr/stdr v1.2.2 // indirect diff --git a/staging/api/go.sum b/staging/api/go.sum index a15d6312c8..f2515e68fb 100644 --- a/staging/api/go.sum +++ b/staging/api/go.sum @@ -67,8 +67,8 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs 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/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= -github.com/emicklei/go-restful/v3 v3.9.0 h1:XwGDlfxEnQZzuopoqxwSEllNcCOM9DhhFyhFIIGKwxE= -github.com/emicklei/go-restful/v3 v3.9.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= +github.com/emicklei/go-restful/v3 v3.10.2 h1:hIovbnmBTLjHXkqEBUz3HGpXZdM7ZrE9fJIZIqlJLqE= +github.com/emicklei/go-restful/v3 v3.10.2/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= From 69801ed53dde49262f7a2e56a7a2eb94cf174cb8 Mon Sep 17 00:00:00 2001 From: Todd Short Date: Wed, 16 Aug 2023 10:33:33 -0400 Subject: [PATCH 05/10] [chore] Update github.com/emicklei/go-restful/v3 to v3.10.2 (#3011) Fixes path join issue Signed-off-by: Todd Short Upstream-repository: operator-lifecycle-manager Upstream-commit: a827c02a0530c0b0532630662dda423773cc5ed9 --- staging/operator-lifecycle-manager/go.mod | 2 +- staging/operator-lifecycle-manager/go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/staging/operator-lifecycle-manager/go.mod b/staging/operator-lifecycle-manager/go.mod index 7aba22bb54..a9599674a6 100644 --- a/staging/operator-lifecycle-manager/go.mod +++ b/staging/operator-lifecycle-manager/go.mod @@ -95,7 +95,7 @@ require ( github.com/docker/go-connections v0.4.0 // indirect github.com/docker/go-metrics v0.0.1 // indirect github.com/docker/go-units v0.5.0 // indirect - github.com/emicklei/go-restful/v3 v3.10.1 // indirect + github.com/emicklei/go-restful/v3 v3.10.2 // indirect github.com/evanphx/json-patch v5.6.0+incompatible // indirect github.com/evanphx/json-patch/v5 v5.6.0 // indirect github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d // indirect diff --git a/staging/operator-lifecycle-manager/go.sum b/staging/operator-lifecycle-manager/go.sum index 116c4919f6..2a513444cb 100644 --- a/staging/operator-lifecycle-manager/go.sum +++ b/staging/operator-lifecycle-manager/go.sum @@ -204,8 +204,8 @@ github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5m github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= github.com/edsrzf/mmap-go v0.0.0-20170320065105-0bce6a688712/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= -github.com/emicklei/go-restful/v3 v3.10.1 h1:rc42Y5YTp7Am7CS630D7JmhRjq4UlEUuEKfrDac4bSQ= -github.com/emicklei/go-restful/v3 v3.10.1/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= +github.com/emicklei/go-restful/v3 v3.10.2 h1:hIovbnmBTLjHXkqEBUz3HGpXZdM7ZrE9fJIZIqlJLqE= +github.com/emicklei/go-restful/v3 v3.10.2/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/evanphx/json-patch v5.6.0+incompatible h1:jBYDEEiFBPxA0v50tFdvOzQQTCvpL6mnFh5mB2/l16U= From 62424e2ad8d234ab64d0bcd3b931062425fddc16 Mon Sep 17 00:00:00 2001 From: Steve Kuznetsov Date: Mon, 21 Aug 2023 11:47:30 -0400 Subject: [PATCH 06/10] CatalogSource: update GoDoc (#291) We won't be setting a memory limit, so udpate the doc. Signed-off-by: Steve Kuznetsov Upstream-repository: api Upstream-commit: 44b1863648b50fde3d71e02ffd2c1b47cc348fed --- manifests/0000_50_olm_00-catalogsources.crd.yaml | 2 +- staging/api/crds/operators.coreos.com_catalogsources.yaml | 2 +- staging/api/crds/zz_defs.go | 2 +- staging/api/pkg/operators/v1alpha1/catalogsource_types.go | 1 - .../api/crds/operators.coreos.com_catalogsources.yaml | 2 +- vendor/github.com/operator-framework/api/crds/zz_defs.go | 2 +- .../api/pkg/operators/v1alpha1/catalogsource_types.go | 1 - 7 files changed, 5 insertions(+), 7 deletions(-) diff --git a/manifests/0000_50_olm_00-catalogsources.crd.yaml b/manifests/0000_50_olm_00-catalogsources.crd.yaml index 8b6a6a6888..9f8eef3665 100644 --- a/manifests/0000_50_olm_00-catalogsources.crd.yaml +++ b/manifests/0000_50_olm_00-catalogsources.crd.yaml @@ -535,7 +535,7 @@ spec: description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed. type: string memoryTarget: - description: "MemoryTarget configures the $GOMEMLIMIT value for the gRPC catalog Pod. This is a soft memory limit for the server, which the runtime will attempt to meet but makes no guarantees that it will do so. If this value is set, the Pod will have the following modifications made to the container running the server: - the $GOMEMLIMIT environment variable will be set to this value in bytes - the memory request will be set to this value - the memory limit will be set to 200% of this value \n This field should be set if it's desired to reduce the footprint of a catalog server as much as possible, or if a catalog being served is very large and needs more than the default allocation. If your index image has a file- system cache, determine a good approximation for this value by doubling the size of the package cache at /tmp/cache/cache/packages.json in the index image. \n This field is best-effort; if unset, no default will be used and no Pod memory limit or $GOMEMLIMIT value will be set." + description: "MemoryTarget configures the $GOMEMLIMIT value for the gRPC catalog Pod. This is a soft memory limit for the server, which the runtime will attempt to meet but makes no guarantees that it will do so. If this value is set, the Pod will have the following modifications made to the container running the server: - the $GOMEMLIMIT environment variable will be set to this value in bytes - the memory request will be set to this value \n This field should be set if it's desired to reduce the footprint of a catalog server as much as possible, or if a catalog being served is very large and needs more than the default allocation. If your index image has a file- system cache, determine a good approximation for this value by doubling the size of the package cache at /tmp/cache/cache/packages.json in the index image. \n This field is best-effort; if unset, no default will be used and no Pod memory limit or $GOMEMLIMIT value will be set." pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ anyOf: - type: integer diff --git a/staging/api/crds/operators.coreos.com_catalogsources.yaml b/staging/api/crds/operators.coreos.com_catalogsources.yaml index c3e2f6ce18..c1d38a87b5 100644 --- a/staging/api/crds/operators.coreos.com_catalogsources.yaml +++ b/staging/api/crds/operators.coreos.com_catalogsources.yaml @@ -533,7 +533,7 @@ spec: description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed. type: string memoryTarget: - description: "MemoryTarget configures the $GOMEMLIMIT value for the gRPC catalog Pod. This is a soft memory limit for the server, which the runtime will attempt to meet but makes no guarantees that it will do so. If this value is set, the Pod will have the following modifications made to the container running the server: - the $GOMEMLIMIT environment variable will be set to this value in bytes - the memory request will be set to this value - the memory limit will be set to 200% of this value \n This field should be set if it's desired to reduce the footprint of a catalog server as much as possible, or if a catalog being served is very large and needs more than the default allocation. If your index image has a file- system cache, determine a good approximation for this value by doubling the size of the package cache at /tmp/cache/cache/packages.json in the index image. \n This field is best-effort; if unset, no default will be used and no Pod memory limit or $GOMEMLIMIT value will be set." + description: "MemoryTarget configures the $GOMEMLIMIT value for the gRPC catalog Pod. This is a soft memory limit for the server, which the runtime will attempt to meet but makes no guarantees that it will do so. If this value is set, the Pod will have the following modifications made to the container running the server: - the $GOMEMLIMIT environment variable will be set to this value in bytes - the memory request will be set to this value \n This field should be set if it's desired to reduce the footprint of a catalog server as much as possible, or if a catalog being served is very large and needs more than the default allocation. If your index image has a file- system cache, determine a good approximation for this value by doubling the size of the package cache at /tmp/cache/cache/packages.json in the index image. \n This field is best-effort; if unset, no default will be used and no Pod memory limit or $GOMEMLIMIT value will be set." pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ anyOf: - type: integer diff --git a/staging/api/crds/zz_defs.go b/staging/api/crds/zz_defs.go index a391fce34b..327b665f29 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\x69\x73\xdc\x36\x16\xe0\x77\xff\x8a\x57\xda\xd9\x92\x94\x74\x53\x76\x32\x95\x9d\x68\x72\x94\x46\x3e\x56\x15\x1f\x2a\x4b\xc9\xd4\x8e\xe5\xdd\xa0\xc9\xd7\xdd\x88\x48\x80\x01\x40\x49\x9d\xe3\xbf\x6f\xbd\x07\x80\x64\xdf\x87\xec\xd8\xae\x21\x3f\x24\x6a\x12\xe7\xbb\x2f\xc0\xa2\x94\x3f\xa1\xb1\x52\xab\x63\x10\xa5\xc4\x3b\x87\x8a\x7e\xd9\xe4\xfa\x1f\x36\x91\xfa\xe8\xe6\xd1\x83\x6b\xa9\xb2\x63\x38\xad\xac\xd3\xc5\x6b\xb4\xba\x32\x29\x3e\xc6\xa1\x54\xd2\x49\xad\x1e\x14\xe8\x44\x26\x9c\x38\x7e\x00\x20\x94\xd2\x4e\xd0\x6b\x4b\x3f\x01\x52\xad\x9c\xd1\x79\x8e\xa6\x3f\x42\x95\x5c\x57\x03\x1c\x54\x32\xcf\xd0\xf0\xe0\x71\xea\x9b\x87\xc9\xd7\xc9\xc3\x07\x00\xa9\x41\xee\x7e\x29\x0b\xb4\x4e\x14\xe5\x31\xa8\x2a\xcf\x1f\x00\x28\x51\xe0\x31\xa4\xc2\x89\x5c\x8f\xfc\x22\x6c\xa2\x4b\x34\xc2\x69\x63\x93\x54\x1b\xd4\xf4\xbf\xe2\x81\x2d\x31\xa5\xd9\x47\x46\x57\xe5\x31\x2c\x6c\xe3\xc7\x8b\x8b\x14\x0e\x47\xda\xc8\xf8\x1b\xa0\x0f\x3a\x2f\xf8\xef\xb0\x79\x3f\xed\x05\x4f\xcb\xef\x73\x69\xdd\x0f\xf3\xdf\x9e\x4b\xeb\xf8\x7b\x99\x57\x46\xe4\xb3\x0b\xe6\x4f\x76\xac\x8d\x7b\xd9\x4c\x4f\xd3\xa5\xc2\x59\x93\xfa\xcf\x52\x8d\xaa\x5c\x98\x99\xbe\x0f\x00\x6c\xaa\x4b\x3c\x06\xee\x5a\x8a\x14\xb3\x07\x00\x01\x84\x61\xa8\x3e\x88\x2c\x63\xb4\x88\xfc\xdc\x48\xe5\xd0\x9c\xea\xbc\x2a\x54\x3d\x15\xb5\xc9\xd0\xa6\x46\x96\x8e\x41\x7f\x39\x46\x28\x0d\x3a\x37\x61\x90\x80\x1e\x82\x1b\x63\x9c\xbb\xee\x05\xf0\x8b\xd5\xea\x5c\xb8\xf1\x31\x24\x04\xe1\x24\x93\xb6\xcc\xc5\x84\x56\xd3\x6a\xe5\xd1\xf4\xd8\x7f\x6b\xbd\x77\x13\x5a\xba\x75\x46\xaa\xd1\xaa\xa5\x50\xbb\xcd\xd7\xe0\x41\x73\x39\x29\xe7\x97\x30\xf3\x72\xd3\xf9\xcb\x6a\x90\x4b\x3b\x46\xb3\xf9\x22\xea\x2e\x73\x6b\x38\x5f\xf0\x65\xc9\x42\x5a\x83\x46\x86\x4a\xe6\x98\x61\x6e\x82\x93\xd1\xfc\x1e\x33\xe1\xe2\x4b\xdf\xe8\xe6\x91\xc8\xcb\xb1\x78\x14\x5e\xda\x74\x8c\x85\x68\xe8\x41\x97\xa8\x4e\xce\xcf\x7e\xfa\xf2\x62\xe6\x03\x4c\x43\x67\x8a\xce\x41\x5a\x10\x60\xb0\xd4\x56\x3a\x6d\x26\x04\xad\xd3\x8b\x9f\x6c\x0f\x4e\x5f\x3f\xb6\x3d\x10\x2a\xab\x19\x0f\x4a\x91\x5e\x8b\x11\xda\x64\x6e\xad\x7a\xf0\x0b\xa6\xae\xf5\xda\xe0\xaf\x95\x34\x98\xb5\x57\x41\xe0\x89\x30\x99\x79\x4d\xf0\x6f\xbd\x2a\x0d\xcd\xe9\x5a\x8c\xec\x9f\x96\x94\x9b\x7a\x3f\xb3\xc3\x7d\x02\x83\x6f\x07\x19\x09\x38\xb4\x4c\x02\x81\xc7\x30\x0b\xb0\xf3\xa4\x21\x2d\xed\xdf\xa0\x45\xe5\x45\x1e\xbd\x16\x2a\xec\x29\x81\x0b\x34\xd4\x91\xd8\xbd\xca\x33\x92\x84\x37\x68\x1c\x18\x4c\xf5\x48\xc9\xdf\xea\xd1\x2c\x38\xcd\xd3\xe4\xc2\xa1\x75\xc0\x5c\xab\x44\x0e\x37\x22\xaf\xd0\x83\xb2\x10\x13\x30\x48\xe3\x42\xa5\x5a\x23\x70\x13\x9b\xc0\x0b\x6d\x10\xa4\x1a\xea\x63\x18\x3b\x57\xda\xe3\xa3\xa3\x91\x74\x51\x86\xa7\xba\x28\x2a\x25\xdd\xe4\x88\xc5\xb1\x1c\x54\x24\x0e\x8f\x32\xbc\xc1\xfc\xc8\xca\x51\x5f\x98\x74\x2c\x1d\xa6\xae\x32\x78\x24\x4a\xd9\xe7\xc5\x2a\x96\xe3\x49\x91\xfd\x0f\x13\xa4\xbe\xdd\x9f\x01\xdf\x42\x62\x86\x28\x36\x57\xc2\x9a\x84\xa7\xa7\x22\xdf\xdd\xef\xa5\x01\x29\xbd\x22\xa8\xbc\x7e\x72\x71\x09\x71\x01\x1e\xec\x1e\xc2\x4d\x53\xdb\x00\x9b\x00\x25\xd5\x10\x8d\x6f\x39\x34\xba\xe0\x51\x50\x65\xa5\x96\xca\x79\x96\xce\x25\x2a\x07\xb6\x1a\x14\xd2\x59\xa6\x39\xb4\x8e\xf0\x90\xc0\x29\xab\x30\x18\x20\x54\x25\x71\x52\x96\xc0\x99\x82\x53\x51\x60\x7e\x2a\x2c\xbe\x77\x50\x13\x44\x6d\x9f\xc0\xb7\x39\xb0\xdb\x1a\x78\xbe\xc3\x1c\x8f\x01\x44\x0d\xb9\x51\xe3\x65\x4c\x09\x9e\x03\x17\x49\x60\x58\xc1\x8b\xf4\x88\x2c\x33\x68\x17\x7c\x98\x63\x48\xdf\xd0\xd3\xc9\x58\x5b\xc2\x9f\x70\xf0\xea\xf9\x0b\x48\x85\x82\xca\x22\x31\x4f\xaa\x95\x22\x82\x70\x1a\x04\xe9\xb2\x3e\xde\x49\xcb\x04\x64\x70\x24\xad\x33\x93\x04\x9e\x6a\x53\x08\x77\x0c\xdf\xc4\x57\x7d\x1e\x4e\x1b\x90\xe5\x77\xc7\xdf\x94\xda\xb8\xef\xe0\x95\xca\x27\x34\x68\x06\xb7\x63\x54\x70\x51\xef\x0d\xbe\x6d\xfd\x78\x66\xca\x34\x81\xb3\x91\xd2\x26\xb6\x24\xaa\x3a\x2b\xc4\x08\x61\x28\x31\x67\xba\xb6\xe8\x92\x59\x0c\xae\xc4\x22\x78\x73\x69\x28\x47\x2f\x44\xb9\x16\x34\xa7\xb1\x25\xcd\x45\xd3\xb7\x95\x77\xf3\xd1\x69\x26\x65\xda\x12\xfd\x29\xd2\x6b\x10\x61\x96\x42\x94\x7d\xcb\x6c\xd3\x02\xd3\x66\x10\x38\x8d\x03\x10\xfc\x9a\xd7\x67\x41\x72\x25\xdb\x6e\xbb\xbd\xb3\xad\xfb\x36\x66\xc8\x5a\xa0\xbd\x58\xa4\x45\x36\x98\x63\x64\xca\xf4\x5c\x67\x7e\xdb\x6b\x67\x79\xd6\x6e\x0d\x78\x57\x6a\x8b\x16\x32\x39\x1c\xa2\x21\xb9\xa3\x6f\xd0\x18\x99\xa1\x85\xa1\x36\x8c\xaf\x52\x67\xcc\x93\x35\xfe\xa6\x54\xed\xb9\xce\x36\x45\x0c\x4d\xcd\x0a\xc3\x13\x63\x20\xc3\xa5\xdb\x5d\xc8\xed\xb0\x86\x79\xe9\x11\x43\x36\xff\x27\x8b\xbf\xce\xc0\xe3\x24\x34\x8e\x94\x1a\x2c\xaa\x20\x3a\xf6\x2d\x6d\x7f\xdf\xd6\x63\x2e\x5a\xee\x06\x4b\xde\x64\xd9\xf4\x28\x9d\xe1\xc9\x9a\xe5\xcf\x6d\xe1\x31\xff\x18\xa0\xe5\xee\xf5\x52\x59\x83\x67\x55\xce\xa2\xa6\xca\xa7\x31\xba\x6c\x1f\x1b\xee\x65\xd3\xfd\xf8\x76\x38\x44\x63\x30\x7b\x5c\x11\xfd\x5e\xd4\xab\x0a\x42\xca\xbf\x7e\x72\x87\x69\xb5\x8c\xc7\x96\x6e\x9d\x8c\xe2\xb0\x4d\x34\x70\x2b\xf3\x3c\x4c\x47\x02\x25\x7e\xa0\xfd\xb2\x1d\x43\xe0\xb1\x5e\x48\x5b\xe1\xa4\x1d\x4e\x18\x1c\x35\xc0\xf0\x8e\x74\x36\x7b\x2c\x4c\xf1\x72\x28\x31\x83\xc1\x24\xa8\x6b\x12\x9e\x3d\x18\x54\x0e\xa4\x63\x5d\x9e\x8e\xb5\xb6\x08\xc2\xc3\x9d\xc7\xbd\x91\x9a\x2d\x25\xd0\x0a\x49\xfe\x14\xa4\x90\x03\xe3\xb4\x86\x4f\x78\xe5\x4d\x37\x69\xa1\x20\x89\x5f\xc3\x2a\x92\x23\x0d\x73\x2b\xdd\x98\x7f\x8c\xc8\xe4\x26\x2b\xcc\x56\x05\x0d\x7a\x8b\x72\x34\x76\xb6\x07\x32\xc1\x84\xb1\x8b\x22\x1d\xb7\x86\x2d\x10\x9d\x05\x91\xe7\x71\x09\x6d\x92\xf0\x7a\xb3\x20\x13\x05\x0e\x6a\x1b\x26\xd8\x1b\xbd\x5a\xaf\xce\x62\x6d\x21\xb8\x7a\x80\x2e\x4d\x0e\x7b\x90\xea\xa2\xac\x1c\xc1\x84\xd6\x38\x98\x80\x74\x64\x67\x7b\x7b\xc9\xe8\x6a\xe4\x77\x82\x79\x98\x38\x1a\xab\x5e\x33\x91\x70\x20\x1f\x51\x8d\x60\xcf\x6f\x6e\x2f\xda\x9f\x34\x9c\xf4\x9b\xe0\xfd\x15\xc2\xa5\xe3\x60\x02\xa7\xda\x18\xb4\xa5\x56\xdc\x93\xbf\x3c\x69\xd6\xf6\xcf\xba\xd3\x81\x3d\x6c\x80\x39\x96\xa3\x71\x84\xa5\x30\xc8\xef\xa6\x71\xb0\x8a\x47\x1a\x3e\x11\xc6\x4c\xf9\x92\x8b\x1e\xe9\xb0\x58\xc3\x25\x73\xa4\x7d\xa2\x00\x8b\xd2\x4d\x5a\x34\xd1\xc2\x9e\x43\x53\xd4\x30\x60\x04\x33\xbb\x5a\xbf\x3f\x59\x94\xb9\x4c\xa5\x0b\x14\x02\x0f\xe1\x80\x49\x44\x3a\x12\x65\xa0\x74\x5f\x97\x87\x09\x9c\x70\xf8\x62\x83\x09\x94\xae\xc7\x0f\x03\xd1\xa4\x56\x37\x63\xad\xdd\xdb\x86\x42\xc5\x3f\xcb\x6d\xba\xf9\xa7\x1f\xd6\x8f\x2a\x9d\xb5\xf2\x16\x37\xf7\x30\x59\xdb\x74\x53\xf1\x16\x5b\xc7\x35\x6c\xd2\x7a\x16\xd5\x9e\xa4\x2d\xe6\x98\x92\x4b\x4a\xb0\xef\x81\xb0\x56\xa7\x92\xac\xfc\x86\x68\xa7\x29\xdd\xef\x64\x3d\xec\x61\x5b\xf8\xc3\xd6\xfb\xa7\x67\x96\xf1\x36\xed\x37\x07\x8d\x5c\x92\xf1\x3b\x9c\x81\xca\x94\xc0\x1a\x4c\xf8\xeb\xbe\x85\x5c\x0c\x30\xb7\x9b\x01\x01\xb6\xe2\xda\xe6\xd9\x90\x7f\x97\x6e\x68\xe9\x46\x82\x8f\x59\x23\x9e\x84\x36\xf9\x66\x42\x2a\x1b\xfc\xe7\x1e\x08\xb8\xc6\x89\x77\xb5\xc9\x83\x8f\x81\x0b\x6e\x6c\xd0\xab\x1b\x22\x8e\x6b\x9c\x70\xa3\xe0\x77\x6f\xb1\xdc\xad\x89\xc3\x3f\xdb\xb0\x69\xf3\xf4\x69\xa1\x5b\xf6\x88\x9b\xde\xa2\xdb\xf6\xf4\xeb\x9f\x6b\x5c\x69\x79\x2d\x7a\xe6\x4c\x12\xa6\x49\xc6\x07\x23\x89\xf5\x57\xc4\xb1\x28\xcb\x5c\x22\xfb\xf3\x5b\x4e\xb3\xd2\x0b\x58\xf5\x44\xe8\xdd\x6b\x5f\xaf\xeb\x80\x86\x27\xc8\x7d\xeb\x89\x8f\x38\x7d\x2c\x4b\xef\xdf\x5a\x64\xc6\x8d\x91\x9f\x9f\x44\x2e\x9b\x50\x9b\x65\x3d\x7b\xa6\x7a\xf0\x52\x3b\xfa\xdf\x13\xf2\x84\x6d\x0f\x1e\x6b\xb4\x2f\xb5\xe3\x9f\x09\x3c\x73\x9e\xd6\x9f\x6f\x28\xd9\xde\x01\x80\xfc\x7a\xef\x05\x9e\x13\xe5\x65\x0a\x6d\xbf\x1d\x33\xb2\x09\x9c\x79\xb3\xa5\x66\x5c\x69\xe1\x4c\x91\x71\x18\xc0\xc0\x51\x3c\x6e\x1b\x86\x28\x2a\xcb\x41\x1e\xa5\x55\x9f\x6d\x80\x85\x63\x78\xe8\xd1\x38\x6d\xf8\xad\x18\x6e\xf9\x50\xcf\x38\xd6\xf0\x7c\x69\xe7\xb1\xb8\x61\x93\x4e\xaa\x51\x5e\x1b\x6f\x3d\xb8\x1d\xcb\x74\xec\xad\xee\x01\xfa\xd0\x60\x69\x90\x14\x96\xb0\x24\xaa\xe8\xcd\x08\x0d\x19\xbb\x32\x8e\xe7\x03\x93\xb9\x48\x31\x83\x8c\x4d\x4b\x1f\x64\x13\x0e\x47\x32\x85\x02\xcd\x08\xa1\x24\x4d\xb2\x1b\xf6\xb7\x13\xec\xfe\xd9\x5a\xbc\xb7\x27\xdc\x8a\xdc\x58\x45\x3e\x25\x5b\xf7\x2f\xd2\x8e\x6c\x57\x77\xda\xb1\xd3\x8e\x33\x4f\xa7\x1d\xeb\xa7\xd3\x8e\x6b\x9e\x4e\x3b\x76\xda\xf1\xbd\x6b\x47\xef\xcb\xee\xe0\x3c\xff\xdb\x87\x38\x66\xbd\x65\xd6\xb4\x31\x4d\x37\xed\x36\x93\xbe\xb9\x08\x02\xe7\x92\x5d\x6d\xe9\x93\x24\x46\xa8\x11\xc2\xa3\xfe\xa3\x87\x0f\xb7\x71\xaa\x03\x22\x37\xea\x31\x0c\x99\x1e\xa9\xdc\x97\x5f\xac\xec\xb1\x2c\xfe\xf6\x0e\xa2\xa6\x81\xc6\xeb\x40\xde\x94\xed\xb0\x24\xf0\xc9\xd2\x49\x69\x07\x05\x3a\x10\x6e\x2a\x54\x24\x0b\xec\xd5\xa9\x02\x26\xf8\x90\xa5\x8c\x11\xd8\x0c\xb4\x0a\x71\x3c\x02\x7e\xb2\xdb\x0a\x52\x14\x3e\xa5\x36\xc0\x7a\x15\xba\xa0\x59\xa5\x72\x91\x5d\x68\x09\x18\xa1\x02\x07\x98\x8c\x12\xc8\x2a\xee\x26\x54\x48\x9b\x1e\xfa\xd5\xda\x89\x75\x58\x70\x24\x57\x1b\xfe\x1f\x2d\xdb\x99\x09\x35\xc6\x1b\x54\xae\x12\x79\x3e\x01\xbc\x91\xa9\xab\xf7\xc7\x59\x5b\xe9\x7c\xb0\x7d\xb3\x10\xe1\x46\xa6\xc3\xe6\xe6\x42\x7f\x8e\x82\xed\x9a\x3e\xdb\x68\xfb\xb9\xb1\x37\xe1\xc9\x19\x5d\xe8\x77\x92\x2c\x35\x56\x1d\x8d\xeb\x63\xe0\xfc\x27\x13\xd7\xab\xd7\xeb\x43\xae\xb0\xb5\x24\xdb\x42\x7a\xcd\x9a\xa5\x55\x9e\x13\x61\xf8\x28\xec\xfc\x06\x16\x44\x47\xfd\x96\xa6\x88\xd9\x07\xde\x7d\x88\xf9\xe4\xe5\x63\x82\x0a\xb5\xb9\xd4\xa5\xce\xf5\x68\xd2\x86\xb4\x2f\x2f\x92\x45\x19\x83\xe3\x02\x6c\x35\x08\x46\x03\x91\xdf\xcb\x19\xd4\x74\x91\xbf\x2e\xf2\xd7\xf9\x36\x73\x4f\xe7\xdb\xd4\x4f\xe7\xdb\xac\x79\x3a\xdf\xa6\xf3\x6d\xba\xc8\x1f\x74\xda\x71\x05\x4c\x3a\xed\x08\x9d\x76\x5c\xba\xaf\x4e\x3b\xae\x04\x4f\xa7\x1d\x3b\xed\xb8\xe8\x29\x75\x76\x8f\x42\xc7\x52\x67\x2b\xea\x1c\x7d\xd4\x27\xd5\xfd\x5c\xa7\xc2\x85\xba\x7c\xea\x12\xe2\x7c\x56\x14\x3e\x10\xd5\x83\xdf\xb4\x42\x5f\xbc\x46\xb8\xe1\x70\x92\x76\x63\x34\xd4\xfc\xc0\x1e\xae\x2c\x6c\xea\xea\x24\xbb\x3a\xc9\x8f\xbe\x4e\x72\x2c\xac\xc7\xab\x17\x4a\xcb\xcb\x26\x5b\x0c\x79\x89\xa6\xf8\x44\xab\x26\x89\x5c\x02\xba\xf9\xc4\x53\x83\x52\xbf\xf3\x2c\xe4\x0b\x30\x3b\x9f\xde\x6f\xb0\x97\x79\x53\x22\xcb\x30\x83\x12\x4d\xdf\x93\x88\x86\xa1\x54\xd9\x82\xbd\x46\xf8\x7c\xd0\xea\xc7\xe9\x7d\x7c\xc0\x12\xc8\xe9\x85\xec\x10\x73\x6d\x07\x8e\xa7\x24\xfc\x47\x51\x10\xb9\xad\x55\xdf\x07\x17\x82\xbc\x3f\x6c\x68\xd7\x6f\x6f\x9a\xb3\x41\x1d\x43\xc2\xbb\xfb\x95\x6c\x96\xff\x5a\xa1\x99\xf0\xf9\x8f\xc6\x60\xad\xcf\xd6\x85\x1c\x99\xb4\x90\x0a\xeb\x35\xc5\xb6\xae\xe5\x96\x6e\xd4\x6e\x7e\xca\xee\x91\x68\x98\x85\xcb\xec\x50\xde\x27\x8d\x3e\xb8\x87\xd9\x42\x27\x7c\x41\x16\xa0\x89\xfe\x6f\xb5\x9e\x5d\x4d\xb7\x9d\x0c\xb7\x85\x44\xf1\x11\x3b\xe7\xb0\xbb\x83\x0e\x3b\x3b\xe9\xb0\x93\xa3\x0e\xbb\x3a\xeb\x70\x0f\x87\x1d\x76\x73\xda\x61\x96\x14\x08\x43\xc1\xca\x7a\x3f\xfe\x3b\xdc\xc7\x45\x85\x7b\xf8\xf1\x30\xbb\xd5\x9a\x4c\xcd\xfb\x72\xea\x99\xd6\xa7\xfc\xfa\xbf\x1a\x58\xbb\xf9\xf4\x30\x0b\xaa\xe0\x0c\x4b\x76\x68\x3f\x11\x0f\xff\x2f\x71\xb7\xe1\x5e\x2e\x37\xec\xee\x76\xc3\xee\x94\xc1\xaa\xee\x39\xa7\x53\xef\xab\x30\xfd\x28\x5e\x45\xf0\x19\xdc\x21\xfc\x4e\x9a\x80\xf1\xf2\x27\x94\x42\x1a\x4b\xf6\x5d\x88\x99\xb4\xbf\x05\xef\xbc\x3d\x4c\xe1\x8f\x10\x93\xa8\xbe\x11\x39\xe9\x1e\x5f\xc7\x11\xfc\x22\x1a\x7d\x56\x4d\xf7\xe0\x76\x4c\xde\x26\x49\xa9\xfa\xbc\xf3\xde\x35\x4e\xf6\x7a\x73\x84\xb4\x77\xa6\xf6\xbc\x8e\x9a\x23\x9d\x5a\xa1\x69\x95\x4f\x60\x8f\xbf\xed\xbd\x6b\xcd\xbe\x83\xe2\x6a\x5f\xa1\xb2\xab\x5e\xd8\x81\x4a\x54\xbc\xd6\xe5\xdd\x1b\x9b\x5e\x8b\xf8\xc4\x46\x9c\xc5\x36\x0a\x86\x4b\x2d\x5a\xca\xa5\xae\x1a\x61\x1a\xe3\xf7\x59\x74\x7e\x2b\x15\x6e\xba\x88\x67\xce\xc3\x60\x5e\x49\xcd\x97\x34\x05\xc4\x6b\x85\x96\x0d\x3b\xac\x43\x44\xad\xce\xdc\x36\xf1\xe5\x20\x8d\xb6\x53\xd9\x6c\x81\x48\xd3\x83\x6d\xc4\x02\x85\xb2\xb0\x17\x63\x4f\xfb\xb6\x69\xb1\x97\x34\xa7\xfb\xea\x11\x0f\x7e\xff\xf3\x70\xea\x44\x5f\x33\x60\x67\x69\x77\x96\x76\x67\x69\x6f\xd1\xab\xb3\xb4\x97\x3f\x9d\xa5\xbd\xc5\xd3\x59\xda\x9d\xa5\xbd\x6a\xe2\xce\xd2\xee\x2c\xed\xf5\x93\xef\x66\x69\xef\x5a\x27\xd4\xb6\x7b\x43\x72\xce\x5f\x64\x26\x9c\x4c\x9b\x1a\xa2\xd8\xca\xff\xf5\x6e\xed\xed\xb6\x2d\xbd\xd8\xda\x6e\x5b\xe4\x73\xbe\x45\xb2\xc6\xb4\xae\x8d\xef\xb9\x9e\xab\xad\xee\x8f\xab\x16\x6a\x07\xda\x68\x25\x14\x76\x24\x8e\xcb\x98\x0a\x0f\x17\xff\x0d\xb0\xc9\x93\x67\x70\x10\x33\x2e\x87\x04\x7c\xa5\xdd\xf4\x47\xe5\x64\xbf\x69\x51\xe7\x60\x38\xbd\x38\x75\xde\x66\x2a\x2d\x51\x67\xdd\xeb\x4c\x71\x83\x4f\x12\x21\x68\xa6\xd6\x20\x6d\xb8\xde\x90\xab\x25\x4c\xa5\x14\x8d\xaa\x55\x4c\x1f\x7b\x99\xe3\xef\xe3\x0b\x94\xe7\x8d\x25\x5e\x0f\x5b\x4c\x0d\x94\x5a\xf9\x4e\xe1\xfc\x15\x88\xa1\x94\x5f\xab\x90\x11\xa5\x37\x31\xeb\x1b\x89\x92\x77\x24\xeb\xd9\x13\x78\xc2\x74\xd8\x1e\x58\x5a\x86\x8f\xc8\x73\x7d\xbb\x8d\x48\xfa\xab\x8e\x45\xdd\x6e\x7d\x2c\x6a\x26\x7f\xd7\x9d\x8a\xfa\x2f\x39\x15\xc5\x1f\x3d\x0b\xbd\xf3\xe3\x51\xf0\xef\x70\x01\xa1\x41\x06\x55\x51\xe5\x4e\x96\x4d\xad\x94\xf5\x53\xe5\xde\xca\x1c\x86\xca\x93\x69\xba\xa4\xd9\x44\x3a\x9e\xa5\x4f\x1e\x8f\x6b\xab\x2c\x33\x6d\xa8\xee\x10\x79\x1e\xce\x14\x45\x93\xd4\x97\xb0\xc8\x0f\x5d\x99\xf0\x38\xdc\xd9\x5a\x7b\x33\x2c\x64\x0e\x48\x16\xe6\x84\x50\x92\x6a\x2b\x84\xa8\x77\x8a\x6e\x30\xaa\xde\x91\xbc\x41\xd5\x48\xd2\x03\x7b\x78\x18\x75\xf8\x3b\x95\xf0\xef\x45\x42\x7f\xd3\x92\xa4\xdf\x6d\x22\xa3\x79\x43\xb5\x94\x6e\xc0\xd7\xc8\xe8\x0f\x59\x82\xb1\x4d\x9e\x7f\xbb\x18\xc3\x0e\xf9\xfd\xbf\x30\xb7\xff\xe9\x9c\x2c\xfb\xc0\x11\xc6\x0f\x51\x5b\xff\xd1\x47\x15\xbb\xe2\xfa\xe6\xb9\x6f\x71\xfd\x7b\x8f\x1c\x7e\xd8\x1a\xfb\x4f\x20\x5a\xf8\x21\x6b\xec\xbb\x08\xe1\x4a\xa4\x7c\x6c\xa5\xef\xd3\xcf\x4e\x11\xc1\x2e\x1a\xb8\xb3\x16\xde\x52\xe1\xdc\x37\x0a\xb8\x25\x45\xec\x98\x67\xef\x72\xec\x7f\x4d\x8e\xbd\xb3\x78\x37\x7c\x3a\x8b\x77\x29\x50\x3a\x8b\x17\x3a\x8b\x77\xdd\xf6\x3a\x8b\x77\x25\x78\x3a\x8b\x77\x25\x52\x3a\x8b\xb7\xb3\x78\xe1\x53\xb3\x78\x77\xb9\xa5\xab\xcb\x75\xdf\x2b\xd7\xbd\xad\xb4\xd8\x4a\x46\x6c\x49\x07\x5b\xe7\xb6\xbb\xbc\xf6\xc7\x92\xd7\xde\xf8\xc0\xbf\x72\xf2\xbe\x87\xfe\xdb\xb8\x5a\x76\xf2\x5f\xdc\x68\x99\x41\x59\xb9\x70\x9e\xba\x3b\xfd\xff\x2e\x4e\xff\x4f\x41\xbe\xbb\x02\x60\xa3\x2b\x00\x96\xc1\xac\xbb\x07\xa0\xbb\x07\xe0\x1d\x27\xa1\xbb\x7b\x00\xba\x7b\x00\xba\x7b\x00\xe2\xd3\x9d\x4e\x82\xee\x74\xd2\x46\x4f\x77\x3a\x69\xf9\xd3\x9d\x4e\xfa\x68\xa3\xaf\xd0\x9d\x4e\xfa\xb8\x23\xb1\xd0\x9d\x4e\xea\xa2\xb3\x1b\x22\xea\x13\x3c\x9d\xd4\xdd\x03\xf0\xb1\xd6\x28\x40\x67\x69\x77\x96\x76\x67\x69\x77\x96\xf6\xea\xa7\xb3\xb4\xb7\x78\x3a\x4b\xbb\xb3\xb4\x57\x4d\xdc\x59\xda\x9d\xa5\xbd\x7e\xf2\xee\x1e\x80\x4f\xa8\x36\x02\xba\x7b\x00\xba\x7a\x89\xee\x1e\x80\xff\xde\x7b\x00\xa6\x72\xf7\x1f\xee\x32\x80\xed\x97\xd1\xdd\x08\xd0\xdd\x08\xd0\xdd\x08\xd0\xdd\x08\x10\x9f\xee\x46\x00\xff\x7c\x4c\xb1\xc6\xee\x7c\xd4\x52\xa0\x74\xe7\xa3\xa0\x3b\x1f\xb5\x6e\x7b\x9f\x40\xdc\xb0\x3b\x1f\xf5\x11\xc6\x0a\xbb\xf3\x51\x5d\x5c\x70\x16\x39\x9f\xc8\xf9\xa8\xee\x46\x80\x8f\x31\xdb\xde\x59\xbc\x1b\x3e\x9d\xc5\xbb\x14\x28\x9d\xc5\x0b\x9d\xc5\xbb\x6e\x7b\x9d\xc5\xbb\x12\x3c\x9d\xc5\xbb\x12\x29\x9d\xc5\xdb\x59\xbc\xf0\xa9\x59\xbc\xdd\x8d\x00\xdd\x8d\x00\xdd\x8d\x00\x9f\x62\x86\x7b\x2d\xa6\x0b\x2c\xb4\x99\x5c\x0a\x33\xc2\xa5\x59\xed\x29\x74\xee\xbd\x68\xf5\x20\x09\x39\x94\xa3\xca\x04\x03\xfc\x6f\xcf\x5e\xbd\x78\xf2\xe2\xf9\xd9\x8b\xb3\xcb\x00\xaf\xa1\xf6\x2e\xee\xe8\xf5\xf9\x29\xa4\xc2\x89\x5c\x8f\xe0\x5c\x67\x41\xe9\x7a\xeb\x5f\x0f\x5d\x58\x08\xe4\xb2\x90\xae\xee\x65\xd1\xdc\xa0\xe9\x05\xb8\x71\xf2\xbb\x52\x4e\x16\xe8\x53\xb7\xc2\x39\x62\x4d\x92\x03\x05\xa2\xe3\x73\xee\x85\xb8\x46\x02\x14\x8c\x2a\x61\x84\x72\x18\x51\x21\x9d\xef\x94\x69\xb0\x3a\x98\x0f\x32\xf8\x18\xb4\x0e\x8b\xc1\x52\x38\x8f\x99\xe1\xb1\xb8\xf1\x07\xaa\x87\x9a\x60\x4e\x44\x51\xe8\x4c\x0e\x65\xea\x8d\x3c\x28\x44\x56\x67\xfd\x82\xae\x40\x53\x13\x50\xb3\x81\x63\xe8\xcf\x81\x07\xd5\x8d\x34\x5a\xb1\x06\xbb\x11\x46\x8a\x41\x1e\x76\x35\xf0\x01\x01\x1e\xb7\x59\xa0\x82\xc1\x84\xfc\x1c\x3f\x52\x80\x56\x38\xf9\xbe\xa2\xdf\x54\x73\x0f\xdc\x99\xc6\x5f\x3c\x7c\xf8\x3f\xeb\xe3\xec\xbe\xd3\x95\xf2\xd8\xf1\x12\xb3\xe1\x5b\xea\x21\x87\x20\xdd\x3e\x71\x8c\x25\xcf\x87\x46\x30\x98\x55\x69\x84\x94\x76\xa5\x91\x5e\x2b\x8b\x1a\xe1\x1e\x0c\xc4\x5d\x45\x45\x0c\x40\x02\xc1\x5a\x39\xc8\xb1\x47\x6c\x2f\xdb\x6d\x07\x48\xc0\xe3\x1e\xcc\x9a\x37\x48\x2b\x27\x72\xf3\x12\x17\x91\x78\x5f\xf3\x59\x77\xe1\xf9\x3c\xc3\xa1\xa8\x72\xcf\x1a\x1e\x37\x8c\xdf\x89\xae\x48\x14\x64\x78\x07\xb2\x10\x23\x7f\xf6\x5e\xc0\x50\xe6\xd8\x8f\x39\xf4\x54\xa4\x63\xec\x41\x86\xa4\x5b\xa4\x42\x10\x30\xd2\x3a\x23\x15\x63\xf4\x9d\x2c\x78\xb4\x40\x8f\x35\x7c\x06\x13\xc8\x74\x35\xc8\x6b\x2c\xcb\xdf\x6a\xc9\x50\x8a\xf4\x9a\xe6\xe2\x81\x41\x38\x38\x72\x45\x79\xc4\xbf\xc2\x7f\x43\x0b\x9b\xfc\x62\xb5\x8a\xa2\xaa\xb5\xcc\x64\x06\xfe\xd2\xc2\x00\xad\xeb\xe3\x70\xa8\x8d\xfb\x27\x41\xab\x52\x4c\xad\x4a\xd7\x5b\x8f\x48\xad\x2c\x7a\x1d\xa7\x34\x13\xf2\x14\xe6\xb5\x59\xc0\xa1\x2d\x72\x48\xf6\x96\x48\x80\x92\x38\xcd\xa8\x63\xf8\xbf\x07\x57\x9f\xff\xd1\x3f\xfc\xfe\xe0\xe0\xcd\xc3\xfe\xd7\x6f\x3f\x3f\xb8\x4a\xf8\x8f\xcf\x0e\xbf\x3f\xfc\x23\xfe\xf8\xfc\xf0\xf0\xe0\xe0\xcd\x0f\x2f\x9e\x5d\x9e\x3f\x79\x2b\x0f\xff\x78\xa3\xaa\xe2\xda\xff\xfa\xe3\xe0\x0d\x3e\x79\xbb\xe1\x20\x87\x87\xdf\xff\x6d\xc9\x82\x84\x9a\xbc\x1a\x2e\x57\x46\xfd\x0d\x6b\x5e\xfa\x9b\xa8\xc2\xbb\xfe\x75\x35\x40\xa3\xd0\xa1\xed\x4b\xe5\xfa\xda\xf4\x7d\x87\x63\x70\xa6\xc2\x85\xdd\x48\xe2\xaf\x0b\x14\x4e\xc9\xd5\x97\xad\x0e\x33\x41\x91\x70\x53\x44\xf0\x59\x68\xca\x5a\x40\x92\x5e\xe5\xeb\x10\x5c\xa3\xaf\x12\xb8\x58\xd0\x93\xd5\x52\x68\xb1\x6f\xbd\x02\xb3\xb3\xe3\xcc\xd4\xc1\x78\xc1\xc9\x63\x2e\xd9\xc2\x06\x66\xec\x76\x46\xeb\x5a\x7c\x94\x46\x6a\x23\xdd\xe4\x34\x17\xd6\xbe\x14\x05\x6e\x04\xdd\xb3\x61\x63\x0c\xf4\x88\xd9\x48\x86\x07\xa5\xe5\x0d\xb4\x38\x2e\x4b\x0e\xd2\xb3\xad\xf6\x11\x42\xb1\x4d\xcd\x33\x91\xfb\xb4\x81\xdf\xd0\xe8\x70\xd1\x87\x41\xaf\xab\xe3\xe7\xd5\xc0\x5b\xb1\x57\x8b\x69\xc5\x7b\xd5\xca\xe1\x9d\x3b\x65\x65\xbb\x99\x96\xbe\x58\xd4\x15\x52\xa1\x68\xd9\x7c\xd1\xcb\x10\x7e\xce\x71\x24\xd2\xc9\xcf\xb4\xfc\x9f\x0d\xd2\x42\xc8\x16\xf9\xd9\x1b\xdb\xa7\x5e\x1e\x5f\x70\x25\xc2\x7e\xb8\xb9\xc7\x02\x4a\xbe\x98\x47\xaa\x5f\xbc\xe1\x52\xdb\x64\x86\xeb\xdb\x4a\x9d\x25\x04\xb9\x64\x66\xed\x2c\x93\xea\x8f\xb5\xb2\x7c\xf3\xd9\xdb\xb9\x96\xc1\x05\x23\x27\x8f\xd4\x6e\x9b\x3e\x4d\xc5\x02\x93\x04\x5b\xdc\x20\x9c\x64\x85\x64\xaf\x0f\x0e\xce\x2f\x4e\x0e\xa7\x76\x42\xfa\xda\xab\x98\x4c\xa3\x55\xfb\xce\x2b\xbd\x31\xda\xc6\xd3\x63\xb5\xc1\x85\x16\x9e\x5b\xb8\xd2\x22\xce\x49\x00\x63\xe7\x6f\x80\xf5\xe4\x17\x27\xf0\xf3\x40\x58\xcc\xa5\x42\x0f\xbb\xd2\xc8\x1b\x99\xe3\x88\x66\x6c\xc5\xad\xe1\xb4\x32\x06\x95\xcb\x27\xf1\x06\x98\xc5\x58\x91\x96\x04\xfa\x34\xb9\x45\xca\xaa\xad\xce\x1a\x59\xd4\xda\x62\x96\xc0\x05\xf7\x98\xf8\x10\x45\x68\xc7\xb8\x61\xbd\xb8\x0c\xb9\x60\xd0\xd2\xc0\x52\xf9\x5e\x32\xf3\x2a\x0e\x8d\x21\x97\x87\xab\xc2\x2a\xcb\x06\x70\x9e\xa1\xa9\xd5\x32\xab\x26\x1b\x4d\xb1\x94\x4d\x82\x50\x3a\x17\x00\xb3\x00\xf0\xcb\xf7\x3c\x6d\x54\x38\x5d\xaf\x97\xb5\xdf\x19\x2d\x6e\x58\xb9\xca\x20\xe9\x7f\xc6\x2e\xf3\x5c\x1b\x34\x33\x76\x4c\x7b\xfa\x5e\xbd\xec\x42\xc8\x40\x6a\x36\xce\x69\x70\x50\xc9\x9c\xbd\x40\x59\xef\xcf\x7a\x42\x16\xf5\x74\x7a\x08\xba\x2c\xc2\xf5\x4b\x55\x59\x6a\xe3\x1a\xdf\x20\x6d\xf3\x46\xb0\xdd\x17\x00\x80\x96\x55\x1a\x2c\x85\xa9\x25\xb6\x45\x48\xc7\x42\x91\xfa\xa7\x8d\xbe\xd0\x5c\x2a\xe7\xeb\x2d\x69\x5a\x31\xd0\x95\x63\x1a\x0b\xbc\x3a\xd4\x95\xca\x80\x84\xca\x31\x8c\x9d\x2b\xed\xf1\xd1\x51\xa3\x8f\x12\xa9\x8f\x32\x9d\xda\xa3\x54\xab\x14\x4b\x67\x8f\x22\x37\x1d\x95\x3a\xeb\xc7\x1f\x7d\x11\x99\xe4\x68\x7f\x99\x8e\xdf\x40\x13\x06\xc8\x1f\x83\xc7\xd5\x92\x56\xa8\xaa\x15\x97\xcd\xf4\x57\x77\xa6\x06\x0d\x18\x17\x36\x72\x3a\xe7\xab\x99\x56\x64\x60\xa6\x1d\xd0\xa6\x7d\x7d\x45\x52\x6d\x98\xb6\xa4\xdb\xbe\x6d\x0f\xbd\x5a\x68\xaf\x72\xcc\xd7\xb8\xe2\x73\xd7\x23\xb1\x6c\x23\x73\xaf\x59\x28\x1b\x00\xce\x09\xbe\x20\x89\x0c\x7a\xff\x85\xc4\x95\x9a\x00\xd1\xb3\x0b\xb7\x65\xb5\xae\x8f\x72\x86\xeb\x37\xbf\xa9\xa3\x69\x3d\x1c\x0e\x31\x75\xdf\x05\x7e\xae\xe3\x6a\xcc\xdc\x31\x02\xf6\x4d\xfc\xeb\xbb\xe5\x1e\xe5\x46\xc1\xaa\xcd\xd2\x0d\x7e\x49\xab\xc3\x08\x53\x10\x7a\xc2\x1d\x66\x54\xb6\x87\x80\x1f\x8b\xbd\x3f\x0e\xc8\x06\x9f\xd9\x07\x5f\x82\xbd\x43\x32\xa3\xd5\xd8\x06\x09\xd7\x92\xb6\xc1\x9f\x6e\x22\x7f\x08\x2f\x75\x28\x64\xc6\x1e\x9c\xf3\xdd\x52\xcd\x1b\x56\x64\x2f\xb5\x2f\x69\x5e\x6a\x17\xb5\xe1\xb6\x36\xce\xb2\x36\xe1\x32\x05\x90\x1f\x9a\xf4\x8a\xdf\xd9\x54\x7a\xa5\xa1\xe0\xa9\xe8\xd9\x2a\xc8\x5c\xe3\xa4\x09\xc9\x87\xe4\x0d\x47\xbc\x7a\x0d\x95\x44\xe3\xd3\x47\xd8\xff\x19\x6a\x12\x75\x31\x90\xca\x4f\xe6\x87\x8e\xa8\xe0\xd1\x23\x40\x55\xc6\x3f\x79\x9a\x77\x01\xae\xcd\xb2\x38\x53\x30\x7b\xb5\x45\xce\xa6\x8e\x02\x2f\xce\xd6\xb4\x52\x34\x4f\x7e\xad\x44\x9e\xc0\x63\x2f\x15\x79\xf7\xe1\x55\x68\x34\x17\xb5\xbe\x95\x79\x96\x0a\x93\xb1\x36\xf0\x3c\x0a\x56\x7b\xec\x89\xda\xe0\x88\xdc\xde\xe0\xc8\xdf\x9d\x06\xa5\x30\x4e\xa6\x55\x2e\x58\x6d\xe1\x48\x9b\xc9\x3b\x81\x68\x43\x34\x17\x98\x6a\x95\xad\x09\x24\x2e\x91\xae\xa1\x6f\x1b\xc6\x6c\x46\xa1\x91\xa1\x44\x58\x16\x38\x4b\xa4\x07\xd3\xce\x8d\x1e\x46\xae\xae\x59\xac\xe7\xad\x9a\x5b\xc9\x66\x59\xdb\x2b\x96\xfe\x8c\xc1\x61\x4b\x3c\xd6\x5c\x91\xc0\xbf\x26\x51\x5f\xf5\x40\xba\x18\x3d\x63\xbf\x39\xcc\x19\x48\x36\x00\xbb\x61\xa8\xa1\x36\x78\x83\x06\x0e\x32\xcd\x7d\xb8\x8c\xfe\x30\x81\xff\x90\x89\xef\x63\x10\x23\x5f\xf1\x1d\x48\x3c\x5a\x22\x8e\x2f\x3b\xe4\x28\xe2\x43\x38\xf0\xd5\xf7\xb2\x28\x30\x93\xc2\x61\x3e\x39\xf4\x05\x18\xb1\x7e\x7f\x13\xd4\x6d\x72\x68\xa3\x75\x58\xe3\xab\xbf\xaf\x68\xc9\x8b\xdd\x02\xb3\x3f\xc5\xc8\x58\x03\x19\x6f\x65\xce\xa0\xb0\xd6\x41\x7a\x45\x52\xae\x95\x84\x6b\xd9\x7e\x51\xcc\xd4\x08\xfe\x85\xe8\x40\x80\xc1\x11\x53\xb9\xa7\xdc\x7b\xd0\xb8\x4c\x17\x1f\x3a\x59\xa3\xd1\x56\xe7\xf5\xfb\x40\xe6\xff\x57\x7f\xcf\x84\x13\x4b\x1a\x78\x9c\x4f\xca\x45\xc1\x81\x75\x8a\xb2\x19\x7c\x19\xb2\x36\x88\xea\x86\xe9\x77\x1a\x81\x4d\xfd\x45\x3d\xa7\x5d\x6a\x0e\xa9\xf9\x3c\x6f\xc4\x77\xdf\xe0\x48\x5a\x67\x26\xad\x70\xa8\x0f\xbd\x39\x0d\x52\x59\x27\x94\x93\x2c\xd9\x20\xb6\xec\x87\xd8\x20\x99\xdf\x09\xbc\x22\x5f\x8b\x63\x58\xb7\xa4\xa6\xbd\x81\x7d\x39\x29\x11\xbe\x6d\xfd\x78\x66\xca\x94\x69\x2d\x08\x1a\x4f\x5c\x22\xcb\x0c\xda\x79\xf9\xb0\x88\x7c\x56\xee\x3f\xba\xf9\x6b\x41\xb0\x7f\x1e\x03\x02\x21\xb7\x64\xad\x1c\x91\x95\x19\x4f\x7b\xc5\xd8\xf0\x94\xb5\xe9\xbd\x02\xee\x28\x7f\x63\x6e\x2a\x6a\x25\x20\x5d\xb4\xfb\x53\xad\x6c\x55\xc4\xa2\x2d\xf2\x7a\x4a\x54\x19\xaa\x74\xc2\xc7\x03\xf2\x1b\x34\x09\xfc\x68\x09\x53\xf0\xbf\xe5\x88\xfc\xbe\x30\x69\xdb\x54\x8a\xa7\x4e\x66\x56\x20\x6d\xeb\xce\x4c\x2e\x43\x23\x1b\x28\x8e\x80\xd9\x4c\x7b\x1b\x53\xe1\xb3\x8b\xa8\x7c\xac\xf5\xb2\x3e\x95\x16\x83\xa0\x11\x2e\x9e\xe1\x69\x4b\x23\xed\x0f\x20\x95\xda\xca\x78\x5a\xa6\x96\xa3\x53\x27\xdb\xf4\xd0\x9f\x3b\xf3\xe3\x4e\x3b\xc2\x5c\x53\x31\xb3\x19\x76\xdc\x2a\xe5\x81\x8f\xed\x28\x4d\x14\x33\x0f\xfd\x50\x8b\xfa\xb9\x78\x11\xf1\xf4\x92\x1b\x99\x6e\x84\xba\xc6\x0c\x72\xbc\x93\xa9\x1e\x19\x51\x8e\x65\xca\x87\xab\x88\x4d\x39\x48\xc6\x47\xaa\x44\x81\xc9\xfe\x52\x42\x5b\x26\xc6\xcb\x6a\x90\x4b\x3b\xc6\x85\xb6\xcc\x4a\x1a\xb5\x98\x1a\x74\x0b\x25\xc8\x14\x89\x5e\xf8\x76\x8d\x52\x8e\x15\x29\x61\x80\x50\x71\xe5\x69\x8e\x19\x8f\x40\x9c\xa6\xc4\x48\x31\xad\xd1\x5c\x78\x5b\xc3\x30\x81\x33\x17\x03\xd3\xd4\xe3\x1a\xb1\xf4\x94\xc6\xa9\x51\x5b\x70\x4c\xc5\x4a\x95\xa2\x3f\x22\xe6\x8f\xda\x21\xc6\x30\xa3\x33\x12\xbd\x19\x84\x1c\xe0\x8f\xb8\x41\xe5\x16\x1b\x35\xab\xfd\xae\x15\x3e\xd7\x6a\x30\xd6\x32\x65\x3d\x24\x1b\x59\x14\x75\x22\xfd\x4d\xa0\xe4\x2f\xdb\x62\xd0\x9f\xe8\xbb\xf0\xa5\x25\xeb\x65\xcd\x8f\x53\xcd\x43\xc2\xd2\xc2\x58\xdf\x86\x91\x66\x99\x36\x44\x6c\x22\x6e\x33\x69\x53\xe2\x74\xcc\xe0\x54\x2b\x1b\x8f\xf5\x09\xe5\x4f\xea\xdd\x88\xdc\x93\x42\x1c\xb8\xd4\x39\xe7\x37\xb2\x2a\xba\x13\xbe\xfa\x0e\x8b\x01\xf2\x75\xbc\x36\x2e\x65\x89\x9a\x5b\xa3\x62\xd7\x69\xc1\xa8\x1f\xce\x75\x9e\xaf\xd6\x62\x2b\xfd\xd2\x4d\xbc\xd2\x08\x80\x8d\xaf\x42\x3f\x8b\x10\x0b\xb1\x38\xa2\xe9\x26\x83\xc4\xa4\x41\xa6\x6e\x0d\xd8\x01\xba\x5b\x44\x05\xe9\x18\xd3\x6b\xdb\xe4\x90\xf9\x62\xec\x19\xac\x85\xf8\xd3\xb4\xc4\xaa\xed\x29\xc2\x0a\x3b\x1a\x16\xd1\xa7\xcd\x14\xde\xb6\x63\x56\x0b\xd4\x0d\xa9\xe8\x1b\x21\x73\x31\xc8\xfd\x71\xd6\xfa\x57\xaf\xbd\x0e\x19\xf5\x79\x59\xe5\x79\x48\x22\x71\xd6\xd6\x19\x31\x1c\xca\x94\xd3\xe4\xd2\xf8\xa8\x6f\x50\x6c\x0b\xb7\xb0\xfe\xb2\xf6\x05\x1c\x61\x9d\x70\xd5\x1c\x8e\x56\x20\x78\x15\x62\xc9\x0f\x91\x4b\x03\x44\x33\x57\x1c\x4f\x39\x2b\xb4\x0c\xf4\xce\xd6\x54\xfc\x3b\x81\x97\xda\x85\x1b\xca\x5f\xa0\x25\xb5\xcb\x00\x7a\x8d\xc2\x6a\xd5\x92\xae\x6c\xfd\x1a\x39\x92\x4a\xe4\x61\x53\xed\xf8\x5e\xed\x7b\x08\x0e\x29\x17\x72\x64\x84\xab\x85\x62\xb3\xee\xa0\x5d\x82\x5e\xf4\x91\xd0\x04\x4e\xd4\x84\xf1\x3d\x44\xe1\x38\xe7\x2e\x95\x33\x3a\xab\x52\x0c\x19\xeb\xca\xb6\x07\x79\xa7\x62\x74\x3a\xbd\x70\x1a\x27\x69\x6a\xa4\x32\x74\x42\x86\x94\x92\x56\x08\xc2\x96\xe4\xc7\x45\x9a\xf4\xa1\xf0\x06\xc0\xac\x2c\x4e\xce\xcf\xe0\x75\x38\xec\x98\x40\xbf\xdf\xf7\x79\x4f\xeb\x4c\x95\xb2\x7e\x21\x16\x52\x59\xd0\x14\x9e\xfa\x78\x93\xa2\x55\x5e\x18\x22\x1f\xde\x04\x2b\x85\x1b\x43\xe2\x01\x9f\xb4\x40\x01\xf0\x94\x74\xcd\x9d\x28\x4a\xa2\xfb\x2b\xe5\xa5\xf7\x53\xad\x2f\x3c\x92\xfc\x9c\xbf\xc3\xd1\xd1\x2c\x4d\xe8\x01\x99\xa8\x21\x80\xc8\xa4\x31\xd4\x7a\xdf\x4e\x6f\x29\xa1\x8e\x3f\x28\x7d\xab\x16\xcd\xce\x73\x09\x83\xc7\x70\xb5\x77\x12\xb9\xef\x6a\xaf\x07\x57\x7b\xe7\x46\x8f\xb8\x6c\x4d\x8d\xae\x42\x1d\xda\xd5\xde\x63\x1c\x19\x91\x61\x76\xb5\x47\xc3\x7e\xce\xf5\x86\x2f\xd0\x8c\xf0\x07\x9c\x7c\xcb\x83\xd5\xaf\xa3\x46\xf8\xd6\x97\x26\xd2\x7b\x52\xc1\xa4\xa7\xbe\x2d\x44\x59\xbf\x78\x21\xca\xba\xf3\x69\x43\x67\x6f\xde\x16\xe8\xc4\xcd\xa3\xa4\xc1\xe8\xcf\xbf\x58\xad\x8e\xaf\xf6\x9a\xf5\xf7\x74\x21\xb9\xd2\x62\x72\xb5\x07\x53\xb3\x1e\x5f\xed\xf1\xbc\xf1\x7d\x5c\xe4\xf1\xd5\x1e\xcd\x44\xaf\x8d\x76\x7a\x50\x0d\x8f\xaf\xf6\xb8\x80\xa1\xf7\xa8\x67\xb0\xec\x91\xc1\xf4\x6d\x33\xc3\xd5\xde\xcf\x84\x93\xa3\xa3\x90\xc2\x08\x97\xbf\xff\xb9\x38\x58\xbd\x56\xee\xaf\xab\xcb\xee\x43\x2e\xac\xbb\x34\x42\x59\x9e\xff\x52\x16\x8b\xd3\xb8\xde\x97\x63\x7e\x5f\xfa\xdd\xb0\x0c\x58\xfa\xd9\x53\xc3\xd2\xcf\x4b\xb4\xe7\x26\x9a\x6b\x7e\x0f\x1b\x46\x9d\xe7\x3b\x36\x05\xdb\x64\xcf\xc5\x38\x4d\x8d\x1f\xd2\x01\xa1\x35\x86\x8b\x04\x88\xc5\x83\x7c\xe3\x72\x4c\xc6\x5b\xa8\xea\x69\x1c\xfc\xdb\x70\xc9\x00\x54\x2a\x43\x93\x73\xb2\xaa\x19\xd5\x67\x42\xb2\x04\x7c\xdc\x40\xd4\x51\x9a\x6b\x62\x24\xd6\x4e\xaa\x15\xbc\xf6\x85\x3f\x71\x44\x92\x1d\xe1\x9e\x05\x3f\x0c\x2b\xba\x34\xc5\xd2\xb1\xa6\xdb\x3d\xc5\x0c\xad\xa0\x0a\x59\x56\x7d\xb7\x9c\x3c\x02\x71\x6c\x08\xf8\xd0\xda\xe7\xf7\xc7\x55\x21\x48\x75\x88\x8c\x6b\x7f\xea\x6f\xde\x7d\xf3\xee\x96\x17\xa9\x3e\x29\xe4\x63\xfc\x11\x0f\x01\xd4\x41\x91\x88\xfa\x40\xcd\x9a\x88\xc9\x46\x9b\x2f\xc4\xdd\x73\x54\x23\x37\x3e\x86\x2f\xbf\xf8\x5f\x5f\xfd\x63\x49\x43\x2f\x18\x31\x7b\x86\x2a\xc4\x82\x36\x04\xc3\x7c\xc7\xd9\xa0\x61\x42\x52\x29\x13\x4e\x24\xa3\xa6\x4d\x1d\xe4\x6e\x28\xe8\x56\x70\xe1\x56\x50\x97\x55\x49\x70\x79\xca\x05\x80\xd6\x09\x95\x62\x8f\x8c\xa4\x85\x83\xc9\x5a\x80\xe7\x13\x78\xf4\x85\xff\x47\x52\x78\xea\x39\xf1\xfd\xe6\xee\x6d\xb2\x60\xc9\xd2\xc2\xd7\xbd\x99\xf5\x48\x0b\x84\x2a\x3d\x64\xc2\xf1\x2e\xa6\x41\xaf\x09\x63\x30\x60\x5e\x13\x62\xbd\xde\x75\x88\x5b\x17\x0f\xdc\x2c\x16\x58\x48\x25\x8b\xaa\x38\x86\x87\x4b\x9a\x78\x91\xb6\x21\x36\x7d\xe3\xc6\x10\x10\x24\xba\x46\x46\x14\x05\x97\xfa\xca\x0c\x95\x93\x43\xc9\x45\x03\x35\x69\xb3\xbb\xef\x3b\xc6\x1a\x94\x1a\x8a\x5c\x9e\x42\x72\xa8\x45\xec\xe7\xde\xce\x31\xac\x81\x43\xf6\x26\x6d\x0b\xa8\x49\x89\x9e\x1b\xbc\x03\x03\x78\x57\x7a\x53\xb5\x95\x86\x28\x50\x28\xa9\x46\xb6\xa9\xe7\x0a\xff\x40\x0e\x7d\xbc\x1d\x63\xc8\x9e\x63\x3b\x17\x94\x92\xb3\x94\xb1\xdf\x24\x9a\x9a\xc2\x8c\xc4\x8f\xb7\xd1\x67\x63\x9a\x64\x39\x16\x98\x9f\x0a\x8b\x91\x1b\xdb\xd5\x5c\xf1\xb6\x96\xfa\xf4\xc1\x3b\x63\xd5\x47\x0f\xbf\x58\x89\xf2\xba\xdd\xf2\x14\x5e\x5d\xe6\xf5\xe6\xa4\xff\x1f\xd1\xff\xed\xed\x41\xf8\xe3\x61\xff\xeb\xff\xd7\x3b\x7e\xfb\x59\xeb\xe7\xdb\xe5\xd5\x59\x8b\x8d\xf9\x25\xe4\x13\x94\x48\xb4\x13\x23\x46\x7b\xb1\x4a\xe5\xd2\x54\xd8\x83\xa7\x22\xb7\xd8\x83\x1f\x15\xab\x86\x7b\x02\x6d\x75\x86\x9a\xb4\xf2\x1e\xcd\xba\x2c\x53\x1e\x9a\xf0\x92\x56\xb7\x09\xcb\x5d\xe5\xbe\x6e\x06\xa4\x18\x6a\x68\x49\x1a\xd5\xa2\x33\x5f\xf2\x3c\xd4\x3a\x09\x16\x6e\x92\xea\xe2\xa8\xfe\xee\x4d\xeb\x17\x42\x4d\xa0\x11\x6b\xde\x28\x9d\xa5\x74\xeb\x48\x36\x89\xd4\x68\x6b\x9b\x7b\x48\x20\x97\xd7\x08\x27\x8d\xdf\x48\xc2\x72\x80\xa9\x60\x5b\xdc\x0c\xa4\x33\xc2\x07\x7d\xa3\x5d\xd9\x44\x94\x86\x55\x0e\x07\xe4\xae\x26\x5c\x48\x36\x27\x5d\xc3\x9d\x46\x62\x20\x73\xfe\xa7\x65\xc8\x95\x4e\xb5\x1a\xe6\x32\xb8\x00\x45\xa9\x8d\x13\xca\xc5\x83\x17\x23\xbc\xf3\xff\x9a\x95\x4f\x3b\x48\x0b\x07\x99\xb2\x8f\x1e\x7d\xf1\xe5\x45\x35\xc8\x74\x21\xa4\x7a\x5a\xb8\xa3\xc3\xef\x0f\x7e\xad\x44\xce\x59\xde\x97\xa2\xc0\xa7\x85\x5b\xfe\xef\x02\x6d\xad\x16\x1f\x7d\xb5\x01\x17\x1d\xbc\xf1\xbc\xf2\xf6\xe0\x4d\x3f\xfc\xf5\x59\x7c\x75\xf8\xfd\xc1\x55\xb2\xf2\xfb\xe1\x67\x47\x5c\x23\x59\xb3\xdc\xdb\x37\xfd\x86\xfd\x92\xb7\x9f\x1d\x7e\xdf\xfa\x76\xb8\x88\x19\xa7\x4a\x17\xc9\x0b\xe8\x17\xa2\xec\x5f\xe3\x64\x09\x73\x2e\x35\x47\xe7\x07\xf2\x10\x2b\x44\xb9\xc8\xfb\x1e\xca\xd1\x0b\x51\xbe\xc6\x21\x1a\x54\xe9\x42\x22\xbf\x67\x06\x86\xfc\x87\x15\x9f\xb8\x02\x6b\x87\xa8\x13\xe9\x1d\x1f\x69\x5b\x65\x4e\x6f\x40\x2d\x9b\xd9\x8f\x6a\x45\xfd\xe2\xda\x49\xea\x7d\xee\x3c\x42\xe4\xef\x9f\x7c\xfc\x68\xe7\x71\x2a\xb9\xd4\xd3\x9a\x8e\x61\x9e\x3d\xf6\xa6\x2f\x8b\x1e\x36\xe7\xc6\x9a\xfc\xbc\x4a\xc9\x5f\x2b\x84\xb3\xc7\xf5\x91\x5f\xa9\xd2\xbc\xe2\x4b\xc6\x7e\xfc\xf1\xec\x31\xf9\xef\xff\x0a\xe2\xe6\x16\x21\xd3\x6a\xdf\xc1\xab\x97\xcf\xff\x0f\x07\x03\xb8\x45\xcf\x2b\xf4\x70\xee\x30\x97\xc2\x87\xc9\x82\x02\x86\x7f\xa1\xaf\x93\xe3\x99\x53\x51\xd6\xf1\x13\x16\x77\x5c\x61\x95\x97\x96\x4f\x0f\x80\xad\x4c\x58\x1d\x0d\xec\x33\xbe\x7c\x3a\x29\xe4\x83\xe3\xc1\x87\x5c\xb8\xe5\xe7\x30\x56\x02\x2d\xd5\x4a\x61\xca\x49\x73\xb2\x02\xdf\x03\x7f\x10\x21\xbf\x0a\x36\x2b\xcf\xb1\x03\x33\x84\x84\xda\xce\x64\x41\x6b\x38\xf5\x3b\x7d\xef\x9c\x34\xb7\xdf\x9d\x66\xf4\xf1\x4c\xce\x6c\xbe\x5e\x13\x7f\x9e\x2b\xe3\x9a\x76\x9d\xa7\xa2\x87\x21\xb6\x5a\x27\x47\xc7\xc2\xc2\x00\x51\x71\x38\xd7\x47\xff\x50\x05\xaa\xc3\x26\x10\x5b\x95\x7d\xa7\xfb\xd9\x62\xe4\xad\x81\xdc\x7a\xa8\xad\xf0\x5c\x67\x4e\xef\x6f\xeb\xa8\xde\x8e\x27\x8b\x60\x60\x9b\xcb\xcc\x6a\x1b\x64\xdb\x8d\x2d\x77\x4c\x66\xa2\xba\xec\x59\x84\xa0\x46\xf0\x33\xe6\x97\x44\xde\xe3\x54\x64\xc3\x69\xce\xe6\x4d\x47\xf6\xb6\x5f\xa3\x47\xf3\x05\x9a\x1b\xb9\x93\xf2\x5b\xc7\x98\xa9\xaf\x33\x39\x79\xff\x6c\x45\xa6\xd7\xce\x93\x70\xe8\x2f\xd5\x6b\xd2\x37\x2b\xeb\xdf\x19\x82\xab\xaa\xfc\xb7\x19\x63\x5b\x65\xe9\xa5\xc9\xd4\x21\x0f\xeb\xb4\xe1\x94\x7b\xfb\x5d\x35\xa8\x0d\xe5\x66\xf4\xe0\x03\xc1\xef\x7f\x3e\xf8\xff\x01\x00\x00\xff\xff\x3e\xcb\x2d\xc0\x3f\xed\x00\x00") +var _operatorsCoreosCom_catalogsourcesYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x7d\x79\x73\xdc\x36\xf6\xe0\xff\xfe\x14\xaf\xb4\x53\x25\x29\xe9\xa6\xec\x64\x2a\x3b\xd1\xe4\x28\x8d\x7c\xac\x2a\x3e\x54\x96\x92\xa9\x1d\xcb\xbb\x41\x93\xaf\xbb\x11\x91\x00\x03\x80\x92\x3a\xc7\x77\xff\xd5\x7b\x00\x48\xf6\x7d\xc8\x8e\xed\x1a\xf2\x8f\x44\x4d\xe2\x7c\xf7\x05\x58\x94\xf2\x27\x34\x56\x6a\x75\x0c\xa2\x94\x78\xe7\x50\xd1\x2f\x9b\x5c\xff\xc3\x26\x52\x1f\xdd\x3c\x7a\x70\x2d\x55\x76\x0c\xa7\x95\x75\xba\x78\x8d\x56\x57\x26\xc5\xc7\x38\x94\x4a\x3a\xa9\xd5\x83\x02\x9d\xc8\x84\x13\xc7\x0f\x00\x84\x52\xda\x09\x7a\x6d\xe9\x27\x40\xaa\x95\x33\x3a\xcf\xd1\xf4\x47\xa8\x92\xeb\x6a\x80\x83\x4a\xe6\x19\x1a\x1e\x3c\x4e\x7d\xf3\x30\xf9\x3a\x79\xf8\x00\x20\x35\xc8\xdd\x2f\x65\x81\xd6\x89\xa2\x3c\x06\x55\xe5\xf9\x03\x00\x25\x0a\x3c\x86\x54\x38\x91\xeb\x91\x5f\x84\x4d\x74\x89\x46\x38\x6d\x6c\x92\x6a\x83\x9a\xfe\x57\x3c\xb0\x25\xa6\x34\xfb\xc8\xe8\xaa\x3c\x86\x85\x6d\xfc\x78\x71\x91\xc2\xe1\x48\x1b\x19\x7f\x03\xf4\x41\xe7\x05\xff\x1d\x36\xef\xa7\xbd\xe0\x69\xf9\x7d\x2e\xad\xfb\x61\xfe\xdb\x73\x69\x1d\x7f\x2f\xf3\xca\x88\x7c\x76\xc1\xfc\xc9\x8e\xb5\x71\x2f\x9b\xe9\x69\xba\x54\x38\x6b\x52\xff\x59\xaa\x51\x95\x0b\x33\xd3\xf7\x01\x80\x4d\x75\x89\xc7\xc0\x5d\x4b\x91\x62\xf6\x00\x20\x80\x30\x0c\xd5\x07\x91\x65\x8c\x16\x91\x9f\x1b\xa9\x1c\x9a\x53\x9d\x57\x85\xaa\xa7\xa2\x36\x19\xda\xd4\xc8\xd2\x31\xe8\x2f\xc7\x08\xa5\x41\xe7\x26\x0c\x12\xd0\x43\x70\x63\x8c\x73\xd7\xbd\x00\x7e\xb1\x5a\x9d\x0b\x37\x3e\x86\x84\x20\x9c\x64\xd2\x96\xb9\x98\xd0\x6a\x5a\xad\x3c\x9a\x1e\xfb\x6f\xad\xf7\x6e\x42\x4b\xb7\xce\x48\x35\x5a\xb5\x14\x6a\xb7\xf9\x1a\x3c\x68\x2e\x27\xe5\xfc\x12\x66\x5e\x6e\x3a\x7f\x59\x0d\x72\x69\xc7\x68\x36\x5f\x44\xdd\x65\x6e\x0d\xe7\x0b\xbe\x2c\x59\x48\x6b\xd0\xc8\x50\xc9\x1c\x33\xcc\x4d\x70\x32\x9a\xdf\x63\x26\x5c\x7c\xe9\x1b\xdd\x3c\x12\x79\x39\x16\x8f\xc2\x4b\x9b\x8e\xb1\x10\x0d\x3d\xe8\x12\xd5\xc9\xf9\xd9\x4f\x5f\x5e\xcc\x7c\x80\x69\xe8\x4c\xd1\x39\x48\x0b\x02\x0c\x96\xda\x4a\xa7\xcd\x84\xa0\x75\x7a\xf1\x93\xed\xc1\xe9\xeb\xc7\xb6\x07\x42\x65\x35\xe3\x41\x29\xd2\x6b\x31\x42\x9b\xcc\xad\x55\x0f\x7e\xc1\xd4\xb5\x5e\x1b\xfc\xb5\x92\x06\xb3\xf6\x2a\x08\x3c\x11\x26\x33\xaf\x09\xfe\xad\x57\xa5\xa1\x39\x5d\x8b\x91\xfd\xd3\x92\x72\x53\xef\x67\x76\xb8\x4f\x60\xf0\xed\x20\x23\x01\x87\x96\x49\x20\xf0\x18\x66\x01\x76\x9e\x34\xa4\xa5\xfd\x1b\xb4\xa8\xbc\xc8\xa3\xd7\x42\x85\x3d\x25\x70\x81\x86\x3a\x12\xbb\x57\x79\x46\x92\xf0\x06\x8d\x03\x83\xa9\x1e\x29\xf9\x5b\x3d\x9a\x05\xa7\x79\x9a\x5c\x38\xb4\x0e\x98\x6b\x95\xc8\xe1\x46\xe4\x15\x7a\x50\x16\x62\x02\x06\x69\x5c\xa8\x54\x6b\x04\x6e\x62\x13\x78\xa1\x0d\x82\x54\x43\x7d\x0c\x63\xe7\x4a\x7b\x7c\x74\x34\x92\x2e\xca\xf0\x54\x17\x45\xa5\xa4\x9b\x1c\xb1\x38\x96\x83\x8a\xc4\xe1\x51\x86\x37\x98\x1f\x59\x39\xea\x0b\x93\x8e\xa5\xc3\xd4\x55\x06\x8f\x44\x29\xfb\xbc\x58\xc5\x72\x3c\x29\xb2\xff\x65\x82\xd4\xb7\xfb\x33\xe0\x5b\x48\xcc\x10\xc5\xe6\x4a\x58\x93\xf0\xf4\x54\xe4\xbb\xfb\xbd\x34\x20\xa5\x57\x04\x95\xd7\x4f\x2e\x2e\x21\x2e\xc0\x83\xdd\x43\xb8\x69\x6a\x1b\x60\x13\xa0\xa4\x1a\xa2\xf1\x2d\x87\x46\x17\x3c\x0a\xaa\xac\xd4\x52\x39\xcf\xd2\xb9\x44\xe5\xc0\x56\x83\x42\x3a\xcb\x34\x87\xd6\x11\x1e\x12\x38\x65\x15\x06\x03\x84\xaa\x24\x4e\xca\x12\x38\x53\x70\x2a\x0a\xcc\x4f\x85\xc5\xf7\x0e\x6a\x82\xa8\xed\x13\xf8\x36\x07\x76\x5b\x03\xcf\x77\x98\xe3\x31\x80\xa8\x21\x37\x6a\xbc\x8c\x29\xc1\x73\xe0\x22\x09\x0c\x2b\x78\x91\x1e\x91\x65\x06\xed\x82\x0f\x73\x0c\xe9\x1b\x7a\x3a\x19\x6b\x4b\xf8\x13\x0e\x5e\x3d\x7f\x01\xa9\x50\x50\x59\x24\xe6\x49\xb5\x52\x44\x10\x4e\x83\x20\x5d\xd6\xc7\x3b\x69\x99\x80\x0c\x8e\xa4\x75\x66\x92\xc0\x53\x6d\x0a\xe1\x8e\xe1\x9b\xf8\xaa\xcf\xc3\x69\x03\xb2\xfc\xee\xf8\x9b\x52\x1b\xf7\x1d\xbc\x52\xf9\x84\x06\xcd\xe0\x76\x8c\x0a\x2e\xea\xbd\xc1\xb7\xad\x1f\xcf\x4c\x99\x26\x70\x36\x52\xda\xc4\x96\x44\x55\x67\x85\x18\x21\x0c\x25\xe6\x4c\xd7\x16\x5d\x32\x8b\xc1\x95\x58\x04\x6f\x2e\x0d\xe5\xe8\x85\x28\xd7\x82\xe6\x34\xb6\xa4\xb9\x68\xfa\xb6\xf2\x6e\x3e\x3a\xcd\xa4\x4c\x5b\xa2\x3f\x45\x7a\x0d\x22\xcc\x52\x88\xb2\x6f\x99\x6d\x5a\x60\xda\x0c\x02\xa7\x71\x00\x82\x5f\xf3\xfa\x2c\x48\xae\x64\xdb\x6d\xb7\x77\xb6\x75\xdf\xc6\x0c\x59\x0b\xb4\x17\x8b\xb4\xc8\x06\x73\x8c\x4c\x99\x9e\xeb\xcc\x6f\x7b\xed\x2c\xcf\xda\xad\x01\xef\x4a\x6d\xd1\x42\x26\x87\x43\x34\x24\x77\xf4\x0d\x1a\x23\x33\xb4\x30\xd4\x86\xf1\x55\xea\x8c\x79\xb2\xc6\xdf\x94\xaa\x3d\xd7\xd9\xa6\x88\xa1\xa9\x59\x61\x78\x62\x0c\x64\xb8\x74\xbb\x0b\xb9\x1d\xd6\x30\x2f\x3d\x62\xc8\xe6\xff\x64\xf1\xd7\x19\x78\x9c\x84\xc6\x91\x52\x83\x45\x15\x44\xc7\xbe\xa5\xed\xef\xdb\x7a\xcc\x45\xcb\xdd\x60\xc9\x9b\x2c\x9b\x1e\xa5\x33\x3c\x59\xb3\xfc\xb9\x2d\x3c\xe6\x1f\x03\xb4\xdc\xbd\x5e\x2a\x6b\xf0\xac\xca\x59\xd4\x54\xf9\x34\x46\x97\xed\x63\xc3\xbd\x6c\xba\x1f\xdf\x0e\x87\x68\x0c\x66\x8f\x2b\xa2\xdf\x8b\x7a\x55\x41\x48\xf9\xd7\x4f\xee\x30\xad\x96\xf1\xd8\xd2\xad\x93\x51\x1c\xb6\x89\x06\x6e\x65\x9e\x87\xe9\x48\xa0\xc4\x0f\xb4\x5f\xb6\x63\x08\x3c\xd6\x0b\x69\x2b\x9c\xb4\xc3\x09\x83\xa3\x06\x18\xde\x91\xce\x66\x8f\x85\x29\x5e\x0e\x25\x66\x30\x98\x04\x75\x4d\xc2\xb3\x07\x83\xca\x81\x74\xac\xcb\xd3\xb1\xd6\x16\x41\x78\xb8\xf3\xb8\x37\x52\xb3\xa5\x04\x5a\x21\xc9\x9f\x82\x14\x72\x60\x9c\xd6\xf0\x09\xaf\xbc\xe9\x26\x2d\x14\x24\xf1\x6b\x58\x45\x72\xa4\x61\x6e\xa5\x1b\xf3\x8f\x11\x99\xdc\x64\x85\xd9\xaa\xa0\x41\x6f\x51\x8e\xc6\xce\xf6\x40\x26\x98\x30\x76\x51\xa4\xe3\xd6\xb0\x05\xa2\xb3\x20\xf2\x3c\x2e\xa1\x4d\x12\x5e\x6f\x16\x64\xa2\xc0\x41\x6d\xc3\x04\x7b\xa3\x57\xeb\xd5\x59\xac\x2d\x04\x57\x0f\xd0\xa5\xc9\x61\x0f\x52\x5d\x94\x95\x23\x98\xd0\x1a\x07\x13\x90\x8e\xec\x6c\x6f\x2f\x19\x5d\x8d\xfc\x4e\x30\x0f\x13\x47\x63\xd5\x6b\x26\x12\x0e\xe4\x23\xaa\x11\xec\xf9\xcd\xed\x45\xfb\x93\x86\x93\x7e\x13\xbc\xbf\x42\xb8\x74\x1c\x4c\xe0\x54\x1b\x83\xb6\xd4\x8a\x7b\xf2\x97\x27\xcd\xda\xfe\x59\x77\x3a\xb0\x87\x0d\x30\xc7\x72\x34\x8e\xb0\x14\x06\xf9\xdd\x34\x0e\x56\xf1\x48\xc3\x27\xc2\x98\x29\x5f\x72\xd1\x23\x1d\x16\x6b\xb8\x64\x8e\xb4\x4f\x14\x60\x51\xba\x49\x8b\x26\x5a\xd8\x73\x68\x8a\x1a\x06\x8c\x60\x66\x57\xeb\xf7\x27\x8b\x32\x97\xa9\x74\x81\x42\xe0\x21\x1c\x30\x89\x48\x47\xa2\x0c\x94\xee\xeb\xf2\x30\x81\x13\x0e\x5f\x6c\x30\x81\xd2\xf5\xf8\x61\x20\x9a\xd4\xea\x66\xac\xb5\x7b\xdb\x50\xa8\xf8\x67\xb9\x4d\x37\xff\xf4\xc3\xfa\x51\xa5\xb3\x56\xde\xe2\xe6\x1e\x26\x6b\x9b\x6e\x2a\xde\x62\xeb\xb8\x86\x4d\x5a\xcf\xa2\xda\x93\xb4\xc5\x1c\x53\x72\x49\x09\xf6\x3d\x10\xd6\xea\x54\x92\x95\xdf\x10\xed\x34\xa5\xfb\x9d\xac\x87\x3d\x6c\x0b\x7f\xd8\x7a\xff\xf4\xcc\x32\xde\xa6\xfd\xe6\xa0\x91\x4b\x32\x7e\x87\x33\x50\x99\x12\x58\x83\x09\x7f\xdd\xb7\x90\x8b\x01\xe6\x76\x33\x20\xc0\x56\x5c\xdb\x3c\x1b\xf2\xef\xd2\x0d\x2d\xdd\x48\xf0\x31\x6b\xc4\x93\xd0\x26\xdf\x4c\x48\x65\x83\xff\xdc\x03\x01\xd7\x38\xf1\xae\x36\x79\xf0\x31\x70\xc1\x8d\x0d\x7a\x75\x43\xc4\x71\x8d\x13\x6e\x14\xfc\xee\x2d\x96\xbb\x35\x71\xf8\x67\x1b\x36\x6d\x9e\x3e\x2d\x74\xcb\x1e\x71\xd3\x5b\x74\xdb\x9e\x7e\xfd\x73\x8d\x2b\x2d\xaf\x45\xcf\x9c\x49\xc2\x34\xc9\xf8\x60\x24\xb1\xfe\x8a\x38\x16\x65\x99\x4b\x64\x7f\x7e\xcb\x69\x56\x7a\x01\xab\x9e\x08\xbd\x7b\xed\xeb\x75\x1d\xd0\xf0\x04\xb9\x6f\x3d\xf1\x11\xa7\x8f\x65\xe9\xfd\x5b\x8b\xcc\xb8\x31\xf2\xf3\x93\xc8\x65\x13\x6a\xb3\xac\x67\xcf\x54\x0f\x5e\x6a\x47\xff\x7b\x42\x9e\xb0\xed\xc1\x63\x8d\xf6\xa5\x76\xfc\x33\x81\x67\xce\xd3\xfa\xf3\x0d\x25\xdb\x3b\x00\x90\x5f\xef\xbd\xc0\x73\xa2\xbc\x4c\xa1\xed\xb7\x63\x46\x36\x81\x33\x6f\xb6\xd4\x8c\x2b\x2d\x9c\x29\x32\x0e\x03\x18\x38\x8a\xc7\x6d\xc3\x10\x45\x65\x39\xc8\xa3\xb4\xea\xb3\x0d\xb0\x70\x0c\x0f\x3d\x1a\xa7\x0d\xbf\x15\xc3\x2d\x1f\xea\x19\xc7\x1a\x9e\x2f\xed\x3c\x16\x37\x6c\xd2\x49\x35\xca\x6b\xe3\xad\x07\xb7\x63\x99\x8e\xbd\xd5\x3d\x40\x1f\x1a\x2c\x0d\x92\xc2\x12\x96\x44\x15\xbd\x19\xa1\x21\x63\x57\xc6\xf1\x7c\x60\x32\x17\x29\x66\x90\xb1\x69\xe9\x83\x6c\xc2\xe1\x48\xa6\x50\xa0\x19\x21\x94\xa4\x49\x76\xc3\xfe\x76\x82\xdd\x3f\x5b\x8b\xf7\xf6\x84\x5b\x91\x1b\xab\xc8\xa7\x64\xeb\xfe\x45\xda\x91\xed\xea\x4e\x3b\x76\xda\x71\xe6\xe9\xb4\x63\xfd\x74\xda\x71\xcd\xd3\x69\xc7\x4e\x3b\xbe\x77\xed\xe8\x7d\xd9\x1d\x9c\xe7\x7f\xfb\x10\xc7\xac\xb7\xcc\x9a\x36\xa6\xe9\xa6\xdd\x66\xd2\x37\x17\x41\xe0\x5c\xb2\xab\x2d\x7d\x92\xc4\x08\x35\x42\x78\xd4\x7f\xf4\xf0\xe1\x36\x4e\x75\x40\xe4\x46\x3d\x86\x21\xd3\x23\x95\xfb\xf2\x8b\x95\x3d\x96\xc5\xdf\xde\x41\xd4\x34\xd0\x78\x1d\xc8\x9b\xb2\x1d\x96\x04\x3e\x59\x3a\x29\xed\xa0\x40\x07\xc2\x4d\x85\x8a\x64\x81\xbd\x3a\x55\xc0\x04\x1f\xb2\x94\x31\x02\x9b\x81\x56\x21\x8e\x47\xc0\x4f\x76\x5b\x41\x8a\xc2\xa7\xd4\x06\x58\xaf\x42\x17\x34\xab\x54\x2e\xb2\x0b\x2d\x01\x23\x54\xe0\x00\x93\x51\x02\x59\xc5\xdd\x84\x0a\x69\xd3\x43\xbf\x5a\x3b\xb1\x0e\x0b\x8e\xe4\x6a\xc3\xff\xa3\x65\x3b\x33\xa1\xc6\x78\x83\xca\x55\x22\xcf\x27\x80\x37\x32\x75\xf5\xfe\x38\x6b\x2b\x9d\x0f\xb6\x6f\x16\x22\xdc\xc8\x74\xd8\xdc\x5c\xe8\xcf\x51\xb0\x5d\xd3\x67\x1b\x6d\x3f\x37\xf6\x26\x3c\x39\xa3\x0b\xfd\x4e\x92\xa5\xc6\xaa\xa3\x71\x7d\x0c\x9c\xff\x64\xe2\x7a\xf5\x7a\x7d\xc8\x15\xb6\x96\x64\x5b\x48\xaf\x59\xb3\xb4\xca\x73\x22\x0c\x1f\x85\x9d\xdf\xc0\x82\xe8\xa8\xdf\xd2\x14\x31\xfb\xc0\xbb\x0f\x31\x9f\xbc\x7c\x4c\x50\xa1\x36\x97\xba\xd4\xb9\x1e\x4d\xda\x90\xf6\xe5\x45\xb2\x28\x63\x70\x5c\x80\xad\x06\xc1\x68\x20\xf2\x7b\x39\x83\x9a\x2e\xf2\xd7\x45\xfe\x3a\xdf\x66\xee\xe9\x7c\x9b\xfa\xe9\x7c\x9b\x35\x4f\xe7\xdb\x74\xbe\x4d\x17\xf9\x83\x4e\x3b\xae\x80\x49\xa7\x1d\xa1\xd3\x8e\x4b\xf7\xd5\x69\xc7\x95\xe0\xe9\xb4\x63\xa7\x1d\x17\x3d\xa5\xce\xee\x51\xe8\x58\xea\x6c\x45\x9d\xa3\x8f\xfa\xa4\xba\x9f\xeb\x54\xb8\x50\x97\x4f\x5d\x42\x9c\xcf\x8a\xc2\x07\xa2\x7a\xf0\x9b\x56\xe8\x8b\xd7\x08\x37\x1c\x4e\xd2\x6e\x8c\x86\x9a\x1f\xd8\xc3\x95\x85\x4d\x5d\x9d\x64\x57\x27\xf9\xd1\xd7\x49\x8e\x85\xf5\x78\xf5\x42\x69\x79\xd9\x64\x8b\x21\x2f\xd1\x14\x9f\x68\xd5\x24\x91\x4b\x40\x37\x9f\x78\x6a\x50\xea\x77\x9e\x85\x7c\x01\x66\xe7\xd3\xfb\x0d\xf6\x32\x6f\x4a\x64\x19\x66\x50\xa2\xe9\x7b\x12\xd1\x30\x94\x2a\x5b\xb0\xd7\x08\x9f\x0f\x5a\xfd\x38\xbd\x8f\x0f\x58\x02\x39\xbd\x90\x1d\x62\xae\xed\xc0\xf1\x94\x84\xff\x28\x0a\x22\xb7\xb5\xea\xfb\xe0\x42\x90\xf7\x87\x0d\xed\xfa\xed\x4d\x73\x36\xa8\x63\x48\x78\x77\xbf\x92\xcd\xf2\x5f\x2b\x34\x13\x3e\xff\xd1\x18\xac\xf5\xd9\xba\x90\x23\x93\x16\x52\x61\xbd\xa6\xd8\xd6\xb5\xdc\xd2\x8d\xda\xcd\x4f\xd9\x3d\x12\x0d\xb3\x70\x99\x1d\xca\xfb\xa4\xd1\x07\xf7\x30\x5b\xe8\x84\x2f\xc8\x02\x34\xd1\xff\xad\xd6\xb3\xab\xe9\xb6\x93\xe1\xb6\x90\x28\x3e\x62\xe7\x1c\x76\x77\xd0\x61\x67\x27\x1d\x76\x72\xd4\x61\x57\x67\x1d\xee\xe1\xb0\xc3\x6e\x4e\x3b\xcc\x92\x02\x61\x28\x58\x59\xef\xc7\x7f\x87\xfb\xb8\xa8\x70\x0f\x3f\x1e\x66\xb7\x5a\x93\xa9\x79\x5f\x4e\x3d\xd3\xfa\x94\x5f\xff\x57\x03\x6b\x37\x9f\x1e\x66\x41\x15\x9c\x61\xc9\x0e\xed\x27\xe2\xe1\xff\x25\xee\x36\xdc\xcb\xe5\x86\xdd\xdd\x6e\xd8\x9d\x32\x58\xd5\x3d\xe7\x74\xea\x7d\x15\xa6\x1f\xc5\xab\x08\x3e\x83\x3b\x84\xdf\x49\x13\x30\x5e\xfe\x84\x52\x48\x63\xc9\xbe\x0b\x31\x93\xf6\xb7\xe0\x9d\xb7\x87\x29\xfc\x11\x62\x12\xd5\x37\x22\x27\xdd\xe3\xeb\x38\x82\x5f\x44\xa3\xcf\xaa\xe9\x1e\xdc\x8e\xc9\xdb\x24\x29\x55\x9f\x77\xde\xbb\xc6\xc9\x5e\x6f\x8e\x90\xf6\xce\xd4\x9e\xd7\x51\x73\xa4\x53\x2b\x34\xad\xf2\x09\xec\xf1\xb7\xbd\x77\xad\xd9\x77\x50\x5c\xed\x2b\x54\x76\xd5\x0b\x3b\x50\x89\x8a\xd7\xba\xbc\x7b\x63\xd3\x6b\x11\x9f\xd8\x88\xb3\xd8\x46\xc1\x70\xa9\x45\x4b\xb9\xd4\x55\x23\x4c\x63\xfc\x3e\x8b\xce\x6f\xa5\xc2\x4d\x17\xf1\xcc\x79\x18\xcc\x2b\xa9\xf9\x92\xa6\x80\x78\xad\xd0\xb2\x61\x87\x75\x88\xa8\xd5\x99\xdb\x26\xbe\x1c\xa4\xd1\x76\x2a\x9b\x2d\x10\x69\x7a\xb0\x8d\x58\xa0\x50\x16\xf6\x62\xec\x69\xdf\x36\x2d\xf6\x92\xe6\x74\x5f\x3d\xe2\xc1\xef\x7f\x1e\x4e\x9d\xe8\x6b\x06\xec\x2c\xed\xce\xd2\xee\x2c\xed\x2d\x7a\x75\x96\xf6\xf2\xa7\xb3\xb4\xb7\x78\x3a\x4b\xbb\xb3\xb4\x57\x4d\xdc\x59\xda\x9d\xa5\xbd\x7e\xf2\xdd\x2c\xed\x5d\xeb\x84\xda\x76\x6f\x48\xce\xf9\x8b\xcc\x84\x93\x69\x53\x43\x14\x5b\xf9\xbf\xde\xad\xbd\xdd\xb6\xa5\x17\x5b\xdb\x6d\x8b\x7c\xce\xb7\x48\xd6\x98\xd6\xb5\xf1\x3d\xd7\x73\xb5\xd5\xfd\x71\xd5\x42\xed\x40\x1b\xad\x84\xc2\x8e\xc4\x71\x19\x53\xe1\xe1\xe2\xbf\x01\x36\x79\xf2\x0c\x0e\x62\xc6\xe5\x90\x80\xaf\xb4\x9b\xfe\xa8\x9c\xec\x37\x2d\xea\x1c\x0c\xa7\x17\xa7\xce\xdb\x4c\xa5\x25\xea\xac\x7b\x9d\x29\x6e\xf0\x49\x22\x04\xcd\xd4\x1a\xa4\x0d\xd7\x1b\x72\xb5\x84\xa9\x94\xa2\x51\xb5\x8a\xe9\x63\x2f\x73\xfc\x7d\x7c\x81\xf2\xbc\xb1\xc4\xeb\x61\x8b\xa9\x81\x52\x2b\xdf\x29\x9c\xbf\x02\x31\x94\xf2\x6b\x15\x32\xa2\xf4\x26\x66\x7d\x23\x51\xf2\x8e\x64\x3d\x7b\x02\x4f\x98\x0e\xdb\x03\x4b\xcb\xf0\x11\x79\xae\x6f\xb7\x11\x49\x7f\xd5\xb1\xa8\xdb\xad\x8f\x45\xcd\xe4\xef\xba\x53\x51\xff\x25\xa7\xa2\xf8\xa3\x67\xa1\x77\x7e\x3c\x0a\xfe\x1d\x2e\x20\x34\xc8\xa0\x2a\xaa\xdc\xc9\xb2\xa9\x95\xb2\x7e\xaa\xdc\x5b\x99\xc3\x50\x79\x32\x4d\x97\x34\x9b\x48\xc7\xb3\xf4\xc9\xe3\x71\x6d\x95\x65\xa6\x0d\xd5\x1d\x22\xcf\xc3\x99\xa2\x68\x92\xfa\x12\x16\xf9\xa1\x2b\x13\x1e\x87\x3b\x5b\x6b\x6f\x86\x85\xcc\x01\xc9\xc2\x9c\x10\x4a\x52\x6d\x85\x10\xf5\x4e\xd1\x0d\x46\xd5\x3b\x92\x37\xa8\x1a\x49\x7a\x60\x0f\x0f\xa3\x0e\x7f\xa7\x12\xfe\xbd\x48\xe8\x6f\x5a\x92\xf4\xbb\x4d\x64\x34\x6f\xa8\x96\xd2\x0d\xf8\x1a\x19\xfd\x21\x4b\x30\xb6\xc9\xf3\x6f\x17\x63\xd8\x21\xbf\xff\x17\xe6\xf6\x3f\x9d\x93\x65\x1f\x38\xc2\xf8\x21\x6a\xeb\x3f\xfa\xa8\x62\x57\x5c\xdf\x3c\xf7\x2d\xae\x7f\xef\x91\xc3\x0f\x5b\x63\xff\x09\x44\x0b\x3f\x64\x8d\x7d\x17\x21\x5c\x89\x94\x8f\xad\xf4\x7d\xfa\xd9\x29\x22\xd8\x45\x03\x77\xd6\xc2\x5b\x2a\x9c\xfb\x46\x01\xb7\xa4\x88\x1d\xf3\xec\x5d\x8e\xfd\xaf\xc9\xb1\x77\x16\xef\x86\x4f\x67\xf1\x2e\x05\x4a\x67\xf1\x42\x67\xf1\xae\xdb\x5e\x67\xf1\xae\x04\x4f\x67\xf1\xae\x44\x4a\x67\xf1\x76\x16\x2f\x7c\x6a\x16\xef\x2e\xb7\x74\x75\xb9\xee\x7b\xe5\xba\xb7\x95\x16\x5b\xc9\x88\x2d\xe9\x60\xeb\xdc\x76\x97\xd7\xfe\x58\xf2\xda\x1b\x1f\xf8\x57\x4e\xde\xf7\xd0\x7f\x1b\x57\xcb\x4e\xfe\x8b\x1b\x2d\x33\x28\x2b\x17\xce\x53\x77\xa7\xff\xdf\xc5\xe9\xff\x29\xc8\x77\x57\x00\x6c\x74\x05\xc0\x32\x98\x75\xf7\x00\x74\xf7\x00\xbc\xe3\x24\x74\x77\x0f\x40\x77\x0f\x40\x77\x0f\x40\x7c\xba\xd3\x49\xd0\x9d\x4e\xda\xe8\xe9\x4e\x27\x2d\x7f\xba\xd3\x49\x1f\x6d\xf4\x15\xba\xd3\x49\x1f\x77\x24\x16\xba\xd3\x49\x5d\x74\x76\x43\x44\x7d\x82\xa7\x93\xba\x7b\x00\x3e\xd6\x1a\x05\xe8\x2c\xed\xce\xd2\xee\x2c\xed\xce\xd2\x5e\xfd\x74\x96\xf6\x16\x4f\x67\x69\x77\x96\xf6\xaa\x89\x3b\x4b\xbb\xb3\xb4\xd7\x4f\xde\xdd\x03\xf0\x09\xd5\x46\x40\x77\x0f\x40\x57\x2f\xd1\xdd\x03\xf0\xdf\x7b\x0f\xc0\x54\xee\xfe\xc3\x5d\x06\xb0\xfd\x32\xba\x1b\x01\xba\x1b\x01\xba\x1b\x01\xba\x1b\x01\xe2\xd3\xdd\x08\xe0\x9f\x8f\x29\xd6\xd8\x9d\x8f\x5a\x0a\x94\xee\x7c\x14\x74\xe7\xa3\xd6\x6d\xef\x13\x88\x1b\x76\xe7\xa3\x3e\xc2\x58\x61\x77\x3e\xaa\x8b\x0b\xce\x22\xe7\x13\x39\x1f\xd5\xdd\x08\xf0\x31\x66\xdb\x3b\x8b\x77\xc3\xa7\xb3\x78\x97\x02\xa5\xb3\x78\xa1\xb3\x78\xd7\x6d\xaf\xb3\x78\x57\x82\xa7\xb3\x78\x57\x22\xa5\xb3\x78\x3b\x8b\x17\x3e\x35\x8b\xb7\xbb\x11\xa0\xbb\x11\xa0\xbb\x11\xe0\x53\xcc\x70\xaf\xc5\x74\x81\x85\x36\x93\x4b\x61\x46\xb8\x34\xab\x3d\x85\xce\xbd\x17\xad\x1e\x24\x21\x87\x72\x54\x99\x60\x80\xff\xed\xd9\xab\x17\x4f\x5e\x3c\x3f\x7b\x71\x76\x19\xe0\x35\xd4\xde\xc5\x1d\xbd\x3e\x3f\x85\x54\x38\x91\xeb\x11\x9c\xeb\x2c\x28\x5d\x6f\xfd\xeb\xa1\x0b\x0b\x81\x5c\x16\xd2\xd5\xbd\x2c\x9a\x1b\x34\xbd\x00\x37\x4e\x7e\x57\xca\xc9\x02\x7d\xea\x56\x38\x47\xac\x49\x72\xa0\x40\x74\x7c\xce\xbd\x10\xd7\x48\x80\x82\x51\x25\x8c\x50\x0e\x23\x2a\xa4\xf3\x9d\x32\x0d\x56\x07\xf3\x41\x06\x1f\x83\xd6\x61\x31\x58\x0a\xe7\x31\x33\x3c\x16\x37\xfe\x40\xf5\x50\x13\xcc\x89\x28\x0a\x9d\xc9\xa1\x4c\xbd\x91\x07\x85\xc8\xea\xac\x5f\xd0\x15\x68\x6a\x02\x6a\x36\x70\x0c\xfd\x39\xf0\xa0\xba\x91\x46\x2b\xd6\x60\x37\xc2\x48\x31\xc8\xc3\xae\x06\x3e\x20\xc0\xe3\x36\x0b\x54\x30\x98\x90\x9f\xe3\x47\x0a\xd0\x0a\x27\xdf\x57\xf4\xbb\x52\x1e\xd0\x5e\xf8\x35\x2c\x48\x2d\xe5\x10\xa4\xdb\x27\xe2\xb7\xe4\xc4\x50\x4f\x83\x59\x95\xc6\x4d\x6b\x57\x1a\xe9\x15\xac\xa8\x71\xe7\x77\x44\x8c\x52\x54\x44\xcb\xc4\xdb\xd6\xca\x41\x8e\x3d\xe2\x60\xd9\x6e\x3b\x40\x82\x03\xf7\x60\x2e\xbb\x41\xc2\x30\x51\x8e\x17\x9e\x88\xc4\xc6\x9a\x8f\xad\x0b\xcf\xb2\x19\x0e\x45\x95\x7b\x2a\xf7\x60\x66\x54\x4d\x74\x45\x5c\x9d\xe1\x1d\xc8\x42\x8c\xfc\x31\x7a\x01\x43\x99\x63\x3f\xa6\xc3\x53\x91\x8e\xb1\x07\x19\x92\x9a\x90\x0a\x41\xc0\x48\xeb\x8c\xb4\x85\xd1\x77\xb2\xe0\xd1\x02\x69\xd5\xf0\x19\x4c\x20\xd3\xd5\x20\xaf\x11\x26\x7f\xab\x99\xbc\x14\xe9\x35\xcd\xc5\x03\x83\x70\x70\xe4\x8a\xf2\x88\x7f\x85\xff\x86\x16\x36\xf9\xc5\x6a\x15\xa5\x4e\x6b\x99\xc9\x0c\xfc\xa5\x85\x01\x5a\xd7\xc7\xe1\x50\x1b\xf7\x4f\x82\x56\xa5\x98\xf0\x94\xae\xb7\x1e\x91\x59\x59\xf4\xea\x4a\x69\xa6\xc9\x29\x0e\xd1\x66\x01\xb3\xb5\xc8\x20\xd9\x5b\xc2\xcc\x25\x31\x8d\x51\xc7\xf0\xff\x0e\xae\x3e\xff\xa3\x7f\xf8\xfd\xc1\xc1\x9b\x87\xfd\xaf\xdf\x7e\x7e\x70\x95\xf0\x1f\x9f\x1d\x7e\x7f\xf8\x47\xfc\xf1\xf9\xe1\xe1\xc1\xc1\x9b\x1f\x5e\x3c\xbb\x3c\x7f\xf2\x56\x1e\xfe\xf1\x46\x55\xc5\xb5\xff\xf5\xc7\xc1\x1b\x7c\xf2\x76\xc3\x41\x0e\x0f\xbf\xff\xdb\x92\x05\x09\x35\x79\x35\x5c\xae\x57\xfa\x1b\x96\xaf\xf4\x37\xd1\x6a\x77\xfd\xeb\x6a\x80\x46\xa1\x43\xdb\x97\xca\xf5\xb5\xe9\xfb\x0e\xc7\xe0\x4c\x85\x0b\xbb\x91\xf0\x5e\x17\xf3\x9b\x12\x91\x2f\x5b\x1d\x66\xe2\x1b\xe1\xd2\x87\xe0\x7e\xd0\x94\xb5\xac\x23\x15\xc9\x37\x1b\xb8\x46\xf5\x24\x70\xb1\xa0\x27\x6b\x98\xd0\x62\xdf\x7a\x5d\x64\x67\xc7\x99\x29\x69\xf1\x32\x90\xc7\x5c\xb2\x85\x0d\x2c\xd2\xed\xec\xcf\xb5\xf8\x28\x8d\xd4\x46\xba\xc9\x69\x2e\xac\x7d\x29\x0a\xdc\x08\xba\x67\xc3\x46\xaf\xf7\x88\xd9\x48\x1c\x07\xfd\xe3\x6d\xad\x38\x2e\x4b\x0e\x52\x99\xad\xf6\x11\x42\xb1\x4d\xcd\x33\x91\xfb\xb4\x81\xdf\xd0\xe8\x70\x67\x87\x41\xaf\x76\xe3\xe7\xd5\xc0\x5b\xb1\x57\x8b\x69\xc5\x7b\xd5\xca\xe1\x9d\x3b\x65\xbd\xb9\x99\xc2\xbd\x58\xd4\x15\x52\xa1\x68\xd9\x7c\x67\xcb\x10\x7e\xce\x71\x24\xd2\xc9\xcf\xb4\xfc\x9f\x0d\xd2\x42\xc8\xac\xf8\xd9\xdb\xcd\xa7\x5e\x1e\x5f\x70\x51\xc1\x7e\xb8\x84\xc7\x02\x4a\xbe\x63\x47\xaa\x5f\xbc\x0d\x52\x9b\x57\x86\x4b\xd5\x4a\x9d\x25\x04\xb9\x64\x66\xed\x2c\x93\xea\x8f\xb5\xde\x7b\xf3\xd9\xdb\xb9\x96\xc1\x9b\x22\x7f\x8d\x34\x68\x9b\x3e\x4d\xc5\x02\x93\x04\x5b\xdc\x20\x9c\x64\x85\x64\x07\x0e\x0e\xce\x2f\x4e\x0e\xa7\x76\x42\xaa\xd7\xab\x98\x4c\xa3\x55\xfb\xce\x2b\xbb\x31\xda\xc6\x69\x63\xb5\xc1\x35\x13\x9e\x5b\xb8\x68\x22\xce\x49\x00\x63\x3f\x6e\x80\xf5\xe4\x17\x27\xf0\xf3\x40\x58\xcc\xa5\x42\x0f\xbb\xd2\xc8\x1b\x99\xe3\x88\x66\x6c\x85\xa0\xe1\xb4\x32\x06\x95\xcb\x27\xf1\x32\x97\xc5\x58\x91\x96\x04\xfa\x34\xb9\x45\xca\xaa\x0d\xc8\x1a\x59\xd4\xda\x62\x96\xc0\x05\xf7\x98\xf8\x68\x43\x68\xc7\xb8\x61\xbd\xb8\x0c\xb9\x60\xd0\xd2\xc0\x52\xf9\x5e\x32\xf3\x2a\x0e\x8d\x21\xef\x85\x0b\xbc\x2a\xcb\xb6\x6c\x9e\xa1\xa9\xd5\x32\xab\x26\x1b\xad\xaa\x94\x4d\x82\x50\x05\x17\x00\xb3\x00\xf0\xcb\xf7\x3c\x6d\x54\x38\x5d\xaf\x97\xb5\xdf\x19\x2d\x6e\x58\xb9\xca\x20\xe9\x7f\xc6\x2e\xf3\x5c\x1b\x34\x33\xf6\x4b\x7b\xfa\x5e\xbd\xec\x42\xc8\x40\x6a\x36\xce\x69\x70\x50\xc9\x9c\x1d\x3a\x59\xef\xcf\x7a\x42\x16\xf5\x74\x7a\x08\xba\x2c\xc2\x4d\x4a\x55\x59\x6a\xe3\x1a\x33\x3f\x6d\xf3\x46\x30\xc3\x17\x00\x80\x96\x55\x1a\x2c\xc9\xd5\x0f\x92\xd6\x22\xa4\x63\xa1\x48\xfd\xd3\x46\x5f\x68\xae\x7a\xf3\xa5\x93\x34\xad\x18\xe8\xca\x31\x8d\x05\x5e\x1d\xea\x4a\x65\x40\x42\xe5\x18\xc6\xce\x95\xf6\xf8\xe8\xa8\xd1\x47\x89\xd4\x47\x99\x4e\xed\x51\xaa\x55\x8a\xa5\xb3\x47\x91\x9b\x8e\x4a\x9d\xf5\xe3\x8f\xbe\x88\x4c\x72\xb4\xbf\x4c\xc7\x6f\xa0\x09\x03\xe4\x8f\xc1\xe3\x6a\x49\x2b\x54\xd5\x8a\x7b\x63\xfa\xab\x3b\x53\x83\x06\x8c\x0b\x1b\x39\x9d\xf3\x2d\x4b\x2b\x92\x29\xd3\xbe\x64\xd3\xbe\xbe\xed\xa8\x36\x4c\x5b\xd2\x6d\xdf\xb6\x87\x5e\x2d\xb4\x57\xf9\xd8\x6b\xbc\xea\xb9\x9b\x8e\x58\xb6\x91\xb9\xd7\x2c\x94\x0d\x00\xe7\x04\xdf\x75\x44\xb6\xb9\xff\x42\xe2\x4a\x4d\x80\xe8\xd9\x85\x8b\xaf\x5a\x37\x41\x39\xc3\xa5\x98\xdf\xd4\x81\xb1\x1e\x0e\x87\x98\xba\xef\x02\x3f\xd7\x21\x32\x66\xee\x18\xcc\xfa\x26\xfe\xf5\xdd\x72\xe7\x70\xa3\xb8\xd3\x66\x99\x03\xbf\xa4\xd5\x11\x81\x29\x08\x3d\xe1\x0e\x33\x2a\xdb\x43\xc0\x8f\xc5\x8e\x1c\xc7\x56\x83\xfb\xeb\xe3\x28\xc1\xde\x21\x99\xd1\x6a\x6c\x83\x84\x6b\x49\xdb\xe0\x1a\x37\x41\x3c\x84\x97\x3a\xd4\x24\x63\x0f\xce\xf9\x9a\xa8\xe6\x0d\x2b\xb2\x97\xda\x57\x27\x2f\xb5\x8b\xda\x70\x5b\x1b\x32\x59\x9b\x3b\x99\x02\xc8\x0f\x4d\xa6\xc4\xef\x6c\x2a\x53\xd2\x50\xf0\x54\x20\x6c\x15\x64\xae\x71\xd2\x44\xd7\x43\x1e\x86\x83\x57\xbd\x86\x4a\xa2\xf1\xe9\x83\xe5\xff\x0c\xe5\x85\xba\x18\x48\xe5\x27\xf3\x43\x47\x54\xf0\xe8\x11\xa0\x2a\xe3\x9f\x3c\xcd\xbb\x00\xd7\x66\x09\x99\x29\x98\xbd\xda\x22\xfd\x52\x07\x74\x17\x27\x5e\x5a\xd9\x96\x27\xbf\x56\x22\x4f\xe0\xb1\x97\x8a\xbc\xfb\xf0\x2a\x34\x9a\x0b\x40\xdf\xca\x3c\x4b\x85\xc9\x58\x1b\x78\x1e\x05\xab\x3d\xf6\x44\x6d\x70\x44\x6e\x6f\x70\xe4\xaf\x41\x83\x52\x18\x27\xd3\x2a\x17\xac\xb6\x70\xa4\xcd\xe4\x9d\x40\xb4\x21\x9a\x0b\x4c\xb5\xca\xd6\xc4\x04\x97\x48\xd7\xd0\xb7\x0d\x63\x36\xa3\xd0\xc8\x50\xed\x2b\x0b\x9c\x25\xd2\x83\x69\xe7\x46\x0f\x23\x57\xd7\x2c\xd6\xf3\x56\xcd\xad\x64\xb3\xac\xed\x15\x4b\x7f\x5c\xe0\xb0\x25\x1e\x6b\xae\x48\xe0\x5f\x93\xa8\xaf\x7a\x20\x5d\x0c\x84\xb1\xdf\x1c\xe6\x0c\x24\x1b\x80\xdd\x30\xd4\x50\x1b\xbc\x41\x03\x07\x99\xe6\x3e\x5c\x11\x7f\x98\xc0\x7f\xc8\xc4\xf7\x31\x88\x91\x2f\xde\x0e\x24\x1e\x2d\x11\xc7\xf7\x16\x72\x40\xf0\x21\x1c\xf8\x42\x7a\x59\x14\x98\x49\xe1\x30\x9f\x1c\xfa\x5a\x8a\x58\x8a\xbf\x09\xea\x36\x39\x7f\xd1\x3a\x77\xf1\xd5\xdf\x57\xb4\xe4\xc5\x6e\x81\xd9\x9f\x62\x90\xab\x81\x8c\xb7\x32\x67\x50\x58\xeb\x20\xbd\x22\xbf\xd6\xca\xa7\xb5\x6c\xbf\x28\x66\x6a\x04\xff\x42\x74\x20\xc0\xe0\x88\xa9\xdc\x53\xee\x3d\x68\x5c\xa6\x8b\xcf\x8f\xac\xd1\x68\xab\x53\xf4\x7d\x20\xf3\xff\xab\xbf\x67\xc2\x89\x25\x0d\x3c\xce\x27\xe5\xa2\xe0\xc0\x3a\x45\xd9\x0c\xbe\x0c\x59\x1b\x04\x68\xc3\xf4\x3b\x8d\xc0\xa6\xfe\xa2\x9e\xd3\x2e\x35\x87\xd4\x7c\xca\x36\xe2\xbb\x6f\x70\x24\xad\x33\x93\x56\x64\xd3\x87\xde\x9c\x06\xa9\xac\x13\xca\x49\x96\x6c\x10\x5b\xf6\x43\x6c\x90\xcc\xef\x04\x5e\x91\xaf\xc5\x31\xac\x5b\x52\xd3\xde\xc0\xbe\x9c\x94\x08\xdf\xb6\x7e\x3c\x33\x65\xca\xb4\x16\x04\x8d\x27\x2e\x91\x65\x06\xed\xbc\x7c\x58\x44\x3e\x2b\xf7\x1f\xdd\xfc\xb5\x20\xd8\x3f\x8f\x01\x81\x90\x26\xb2\x56\x8e\xc8\xca\x8c\x07\xb7\x62\x98\x77\xca\xda\xf4\x5e\x01\x77\x94\xbf\x31\x37\x15\xb5\x12\x90\x2e\xda\xfd\xa9\x56\xb6\x2a\x62\xfd\x15\x79\x3d\x25\xaa\x0c\x55\x3a\xe1\x4a\xff\xfc\x06\x4d\x02\x3f\x5a\xc2\x14\xfc\x1f\x39\x22\xbf\x2f\x4c\xda\x36\x95\xe2\x01\x92\x99\x15\x48\xdb\xba\xfe\x92\x2b\xca\xc8\x06\x8a\x23\x60\x36\xd3\xde\xc6\xac\xf6\xec\x22\x2a\x1f\x6b\xbd\xac\x0f\x98\xc5\x20\x68\x84\x8b\x67\x78\xda\xd2\x48\xfb\xb3\x44\xa5\xb6\x32\x1e\x7c\xa9\xe5\xe8\xd4\x21\x35\x3d\xf4\x47\xc8\xfc\xb8\xd3\x8e\x30\x97\x47\xcc\x6c\x86\x1d\xb7\x4a\x79\xe0\x63\x3b\x4a\x13\xc5\xcc\x43\x3f\xd4\xa2\x7e\x2e\xde\x29\x3c\xbd\xe4\x46\xa6\x1b\xa1\xae\x31\x83\x1c\xef\x64\xaa\x47\x46\x94\x63\x99\xf2\x39\x29\x62\x53\x0e\x92\xf1\xe9\x28\x51\x60\xb2\xbf\x94\xd0\x96\x89\xf1\xb2\x1a\xe4\xd2\x8e\x71\xa1\x2d\xb3\x92\x46\x2d\xa6\x06\xdd\x42\x09\x32\x45\xa2\x17\xbe\x5d\xa3\x94\x63\x71\x49\x18\x20\x14\x4f\x79\x9a\x63\xc6\x23\x10\xa7\x29\x31\x52\xcc\x50\x34\x77\xd7\xd6\x30\x4c\xe0\xcc\xc5\xc0\x34\xf5\xb8\x46\x2c\x3d\xa5\x71\x96\xd3\x16\x1c\x53\xb1\x52\xa5\xe8\x4f\x7b\xf9\x53\x73\x88\x31\xcc\xe8\x8c\x44\x6f\x06\x21\x07\xf8\x23\x6e\x50\xb9\xc5\x46\xcd\x6a\xbf\x6b\x85\xcf\xb5\x1a\x8c\xb5\x4c\x59\x0f\xc9\x46\x16\x45\x9d\x48\x7f\x13\x28\xf9\xcb\xb6\x18\xf4\x87\xf3\x2e\x7c\x95\xc8\x7a\x59\xf3\xe3\x54\xf3\x90\x7b\xb4\x30\xd6\xb7\x61\xa4\x59\xa6\x0d\x11\x9b\x88\xdb\x4c\xda\x94\x38\x1d\x33\x38\xd5\xca\xc6\x13\x7a\x42\xf9\x43\x77\x37\x22\xf7\xa4\x10\x07\x2e\x75\xce\xf9\x8d\xac\x8a\xee\x84\x2f\xa4\xc3\x62\x80\x7c\xb3\xae\x8d\x4b\x59\xa2\xe6\xd6\xa8\xd8\x75\x5a\x30\xea\x87\x73\x9d\xe7\xab\xb5\xd8\x4a\xbf\x74\x13\xaf\x34\x02\x60\xe3\x5b\xcd\xcf\x22\xc4\x42\x2c\x8e\x68\xba\xc9\x20\x31\x69\x90\xa9\x5b\x03\x76\x80\xee\x16\x51\x41\x3a\xc6\xf4\xda\x36\xe9\x60\xbe\xe3\x7a\x06\x6b\x21\xfe\x34\x2d\xb1\x6a\x7b\x8a\xb0\xc2\x8e\x86\x45\xf4\x69\x33\x85\xb7\xed\x98\xd5\x02\x75\x43\x2a\xfa\x46\xc8\x5c\x0c\x72\x7f\x32\xb5\xfe\xd5\x6b\xaf\x43\x46\x7d\x5e\x56\x79\x1e\x92\x48\x9c\x80\x75\x46\x0c\x87\x32\xe5\x8c\xb7\x34\x3e\xea\x1b\x14\xdb\xc2\x2d\xac\xbf\x77\x7d\x01\x47\x58\x27\x5c\x35\x87\xa3\x15\x08\x5e\x85\x58\xf2\x43\xe4\xd2\x00\xd1\xcc\x6d\xc5\x53\xce\x0a\x2d\x03\xbd\xb3\x35\x15\xff\x4e\xe0\xa5\x76\xe1\xb2\xf1\x17\x68\x49\xed\x32\x80\x5e\xa3\xb0\x5a\xb5\xa4\x2b\x5b\xbf\x46\x8e\xa4\x12\x79\xd8\x54\x3b\xbe\x57\xfb\x1e\x82\x43\xca\x85\x1c\x19\xe1\x6a\xa1\xd8\xac\x3b\x68\x97\xa0\x17\x7d\x24\x34\x81\x13\x35\x61\x7c\x0f\x51\x38\x4e\x9f\x4b\xe5\x8c\xce\xaa\x14\x43\xf2\xb9\xb2\xed\x41\xde\xa9\x18\x9d\x4e\x2f\x9c\xc6\x49\x9a\x72\xa7\x0c\x9d\x90\x21\xa5\xa4\x15\x82\xb0\x25\xf9\x71\x91\x26\x7d\x28\xbc\x01\x30\x2b\x8b\x93\xf3\x33\x78\x1d\xce\x2d\x26\xd0\xef\xf7\x7d\xde\xd3\x3a\x53\xa5\xac\x5f\x88\x85\x54\x16\x34\x85\xa7\x3e\xde\xa4\x68\x55\x0a\x86\xc8\x87\x37\xc1\x4a\xe1\xc6\x90\x78\xc0\x27\x2d\x50\x00\x3c\x25\x5d\x73\x27\x8a\x92\xe8\xfe\x4a\x79\xe9\xfd\x54\xeb\x0b\x8f\x24\x3f\xe7\xef\x70\x74\x34\x4b\x13\x7a\x40\x26\x6a\x08\x20\x32\x69\x0c\xb5\xde\xb7\xd3\x5b\x4a\xa8\xe3\x0f\x4a\xdf\xaa\x45\xb3\xf3\x5c\xc2\xe0\x31\x5c\xed\x9d\x44\xee\xbb\xda\xeb\xc1\xd5\xde\xb9\xd1\x23\xae\x40\x53\xa3\xab\x50\x52\x76\xb5\xf7\x18\x47\x46\x64\x98\x5d\xed\xd1\xb0\x9f\x73\xe9\xe0\x0b\x34\x23\xfc\x01\x27\xdf\xf2\x60\xf5\xeb\xa8\x11\xbe\xf5\x55\x86\xf4\x9e\x54\x30\xe9\xa9\x6f\x0b\x51\xd6\x2f\x5e\x88\xb2\xee\x7c\xda\xd0\xd9\x9b\xb7\x05\x3a\x71\xf3\x28\x69\x30\xfa\xf3\x2f\x56\xab\xe3\xab\xbd\x66\xfd\x3d\x5d\x48\x2e\x9a\x98\x5c\xed\xc1\xd4\xac\xc7\x57\x7b\x3c\x6f\x7c\x1f\x17\x79\x7c\xb5\x47\x33\xd1\x6b\xa3\x9d\x1e\x54\xc3\xe3\xab\x3d\xae\x45\xe8\x3d\xea\x19\x2c\x7b\x64\x30\x7d\xdb\xcc\x70\xb5\xf7\x33\xe1\xe4\xe8\x28\xa4\x30\xc2\x3d\xee\x7f\x2e\x0e\x56\xaf\x95\xfb\xeb\x4a\xac\xfb\x90\x0b\xeb\x2e\x8d\x50\x96\xe7\xbf\x94\xc5\xe2\x34\xae\xf7\xe5\x98\xdf\x97\x7e\x37\x2c\x03\x96\x7e\xf6\xd4\xb0\xf4\xf3\x12\xed\xb9\x89\xe6\x9a\xdf\xc3\x86\x51\xe7\xf9\x8e\x4d\xed\x35\xd9\x73\x31\x4e\x53\xe3\x87\x74\x40\x68\x8d\xe1\x4e\x00\x62\xf1\x20\xdf\xb8\xb2\x92\xf1\x16\x0a\x74\x1a\x07\xff\x36\xdc\x17\x00\x95\xca\xd0\xe4\x9c\xac\x6a\x46\xf5\x99\x90\x2c\x01\x1f\x37\x10\x75\x94\xe6\x9a\x18\x89\xb5\x93\x6a\x05\xaf\x7d\x0d\x4f\x1c\x91\x64\x47\xb8\x32\xc1\x0f\xc3\x8a\x2e\x4d\xb1\x74\xac\xe9\x76\x4f\x31\x43\x2b\xa8\x42\x96\x55\xdf\x2d\x27\x8f\x40\x1c\x1b\x02\x3e\xb4\xf6\xf9\xfd\x71\x55\x08\x52\x1d\x22\xe3\x32\x9e\xfa\x9b\x77\xdf\xbc\xbb\xe5\x45\xaa\x4f\x0a\xf9\x18\x7f\xc4\x43\x00\x75\x50\x24\xa2\x3e\x1b\xb3\x26\x62\xb2\xd1\xe6\x0b\x71\xf7\x1c\xd5\xc8\x8d\x8f\xe1\xcb\x2f\xfe\xf7\x57\xff\x58\xd2\xd0\x0b\x46\xcc\x9e\xa1\x0a\xb1\xa0\x0d\xc1\x30\xdf\x71\x36\x68\x98\x90\x54\xca\x84\x13\xc9\xa8\x69\x53\x07\xb9\x1b\x0a\xba\x15\x5c\x83\x15\xd4\x65\x55\x12\x5c\x9e\x72\x2d\x9f\x75\x42\xa5\xd8\x23\x23\x69\xe1\x60\xb2\x16\xe0\xf9\x04\x1e\x7d\xe1\xff\xbd\x13\x9e\x7a\x4e\x7c\xbf\xb9\x7b\x9b\x2c\x58\xb2\xb4\xf0\x75\x6f\x66\x3d\xd2\x02\xa1\x4a\x0f\x99\x70\xbc\x8b\x69\xd0\x6b\xc2\x18\x0c\x98\xd7\x84\x58\xaf\x77\x1d\xe2\xd6\xc5\x03\x37\x8b\x05\x16\x52\xc9\xa2\x2a\x8e\xe1\xe1\x92\x26\x5e\xa4\x6d\x88\x4d\xdf\xb8\x31\x04\x04\x89\xae\x91\x11\x45\xc1\x55\xbb\x32\x43\xe5\xe4\x50\x72\xd1\x40\x4d\xda\xec\xee\xfb\x8e\xb1\x06\xa5\x86\x22\x97\xa7\x90\x1c\x6a\x11\xfb\xb9\xb7\x73\x0c\x6b\xe0\x90\xbd\x49\xdb\x02\x6a\x52\xa2\xe7\x06\xef\xc0\x00\xde\x95\xde\x54\x6d\xa5\x21\x0a\x14\x4a\xaa\x91\x6d\xea\xb9\xc2\xbf\x75\x43\x1f\x6f\xc7\x18\xb2\xe7\xd8\xce\x05\xa5\xe4\x2c\x65\xec\x37\x89\xa6\x3c\x30\x23\xf1\xe3\x6d\xf4\xd9\x98\x26\x59\x8e\x05\xe6\xa7\xc2\x62\xe4\xc6\x76\x35\x57\xbc\x78\xa5\x3e\x48\xf0\xce\x58\xf5\xd1\xc3\x2f\x56\xa2\xbc\x6e\xb7\x3c\x85\x57\x97\x79\xbd\x39\xe9\xff\x47\xf4\x7f\x7b\x7b\x10\xfe\x78\xd8\xff\xfa\xff\xf7\x8e\xdf\x7e\xd6\xfa\xf9\x76\x79\x75\xd6\x62\x63\x7e\x09\xf9\x04\x25\x12\xed\xc4\x88\xd1\x5e\xac\x52\xb9\x34\x15\xf6\xe0\xa9\xc8\x2d\xf6\xe0\x47\xc5\xaa\xe1\x9e\x40\x5b\x9d\xa1\x26\xad\xbc\x47\xb3\x2e\xcb\x94\x87\x26\xbc\xa4\xd5\x6d\xc2\x72\x57\xb9\xaf\x9b\x01\x29\x86\x1a\x5a\x92\x46\xb5\xe8\xcc\x57\x2f\x0f\xb5\x4e\x82\x85\x9b\xa4\xba\x38\xaa\xbf\x7b\xd3\xfa\x85\x50\x13\x68\xc4\x9a\x37\x4a\x67\x29\xdd\x3a\x92\x4d\x22\x35\xda\xda\xe6\x4a\x11\xc8\xe5\x35\xc2\x49\xe3\x37\x92\xb0\x1c\x60\x2a\xd8\x16\x37\x03\xe9\x8c\xf0\x41\xdf\x68\x57\x36\x11\xa5\x61\x95\xc3\x01\xb9\xab\x09\x17\x92\xcd\x49\xd7\x70\x3d\x91\x18\xc8\x9c\xff\x95\x18\x72\xa5\x53\xad\x86\xb9\x0c\x2e\x40\x51\x6a\xe3\x84\x72\xf1\x0c\xc5\x08\xef\xfc\x3f\x4c\xe5\xd3\x0e\xd2\xc2\x41\xa6\xec\xa3\x47\x5f\x7c\x79\x51\x0d\x32\x5d\x08\xa9\x9e\x16\xee\xe8\xf0\xfb\x83\x5f\x2b\x91\x73\x96\xf7\xa5\x28\xf0\x69\xe1\x96\xff\x13\x3f\x5b\xab\xc5\x47\x5f\x6d\xc0\x45\x07\x6f\x3c\xaf\xbc\x3d\x78\xd3\x0f\x7f\x7d\x16\x5f\x1d\x7e\x7f\x70\x95\xac\xfc\x7e\xf8\xd9\x11\xd7\x48\xd6\x2c\xf7\xf6\x4d\xbf\x61\xbf\xe4\xed\x67\x87\xdf\xb7\xbe\x1d\x2e\x62\xc6\xa9\xd2\x45\xf2\x02\xfa\x85\x28\xfb\xd7\x38\x59\xc2\x9c\x4b\xcd\xd1\xf9\x81\x3c\xc4\x0a\x51\x2e\xf2\xbe\x87\x72\xf4\x42\x94\xaf\x71\x88\x06\x55\xba\x90\xc8\xef\x99\x81\x21\xff\x61\xc5\x27\xae\xc0\xda\x21\xea\x44\x7a\xc7\x47\xda\x56\x99\xd3\x1b\x50\xcb\x66\xf6\xa3\x5a\x51\xbf\xb8\x76\x92\x7a\x9f\x3b\x8f\x10\xf9\xfb\x27\x1f\x3f\xda\x79\x9c\x4a\x2e\xf5\xb4\xa6\x63\x98\x67\x8f\xbd\xe9\xcb\xa2\x87\xcd\xb9\xb1\x26\x3f\xaf\x52\xf2\xd7\x0a\xe1\xec\x71\x7d\x7a\x57\xaa\x34\xaf\xf8\xbe\xb0\x1f\x7f\x3c\x7b\x4c\xfe\xfb\xbf\x82\xb8\xb9\x45\xc8\xb4\xda\x77\xf0\xea\xe5\xf3\xff\xcb\xc1\x00\x6e\xd1\xf3\x0a\x3d\x1c\x21\xcc\xa5\xf0\x61\xb2\xa0\x80\xe1\x5f\xe8\xeb\xe4\x78\xe6\x54\x94\x75\xfc\x84\xc5\x1d\x57\x58\xe5\xa5\xe5\x83\x00\x60\x2b\x13\x56\x47\x03\xfb\x8c\x2f\x1f\x34\x0a\xf9\xe0\x78\x86\x21\x17\x6e\xf9\x91\x8a\x95\x40\x4b\xb5\x52\x98\x72\xd2\x9c\xac\xc0\xf7\xc0\x1f\x44\xc8\xaf\x82\xcd\xca\x73\xec\xc0\x0c\x21\xa1\xb6\x33\x59\xd0\x1a\x4e\xfd\x4e\xdf\x3b\x27\xcd\xed\x77\xa7\x19\x7d\x3c\x93\x33\x9b\xaf\xd7\xc4\x9f\xe7\xca\xb8\xa6\x5d\xe7\xa9\xe8\x61\x88\xad\xd6\xc9\xd1\xb1\xb0\x30\x40\x54\x1c\xce\xf5\xd1\x3f\x54\x81\xea\xb0\x09\xc4\x56\x65\xdf\xe9\x7e\xb6\x18\x79\x6b\x20\xb7\x1e\x6a\x2b\x3c\xd7\x99\x83\xf8\xdb\x3a\xaa\xb7\xe3\xc9\x22\x18\xd8\xe6\x5e\xb2\xda\x06\xd9\x76\x63\xcb\x1d\x93\x99\xa8\x2e\x7b\x16\x21\xa8\x11\xfc\x8c\xf9\x25\x91\xf7\x38\x15\xd9\x70\x9a\xb3\x79\xd3\x91\xbd\xed\xd7\xe8\xd1\x7c\x81\xe6\x46\xee\xa4\xfc\xd6\x31\x66\xea\xeb\x4c\x4e\xde\x3f\x5b\x91\xe9\xb5\xf3\x24\x1c\xfa\x4b\xf5\x9a\xf4\xcd\xca\xfa\x77\x86\xe0\xaa\x2a\xff\x6d\xc6\xd8\x56\x59\x7a\x69\x32\x75\xc8\xc3\x3a\x6d\x38\xe5\xde\x7e\x57\x0d\x6a\x43\xb9\x19\x3d\xf8\x40\xf0\xfb\x9f\x0f\xfe\x27\x00\x00\xff\xff\x32\x7b\xb9\xcf\x0a\xed\x00\x00") func operatorsCoreosCom_catalogsourcesYamlBytes() ([]byte, error) { return bindataRead( diff --git a/staging/api/pkg/operators/v1alpha1/catalogsource_types.go b/staging/api/pkg/operators/v1alpha1/catalogsource_types.go index 53bd40ca40..40c432f347 100644 --- a/staging/api/pkg/operators/v1alpha1/catalogsource_types.go +++ b/staging/api/pkg/operators/v1alpha1/catalogsource_types.go @@ -152,7 +152,6 @@ type GrpcPodConfig struct { // will have the following modifications made to the container running the server: // - the $GOMEMLIMIT environment variable will be set to this value in bytes // - the memory request will be set to this value - // - the memory limit will be set to 200% of this value // // This field should be set if it's desired to reduce the footprint of a catalog server as much as possible, or if // a catalog being served is very large and needs more than the default allocation. If your index image has a file- diff --git a/vendor/github.com/operator-framework/api/crds/operators.coreos.com_catalogsources.yaml b/vendor/github.com/operator-framework/api/crds/operators.coreos.com_catalogsources.yaml index c3e2f6ce18..c1d38a87b5 100644 --- a/vendor/github.com/operator-framework/api/crds/operators.coreos.com_catalogsources.yaml +++ b/vendor/github.com/operator-framework/api/crds/operators.coreos.com_catalogsources.yaml @@ -533,7 +533,7 @@ spec: description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed. type: string memoryTarget: - description: "MemoryTarget configures the $GOMEMLIMIT value for the gRPC catalog Pod. This is a soft memory limit for the server, which the runtime will attempt to meet but makes no guarantees that it will do so. If this value is set, the Pod will have the following modifications made to the container running the server: - the $GOMEMLIMIT environment variable will be set to this value in bytes - the memory request will be set to this value - the memory limit will be set to 200% of this value \n This field should be set if it's desired to reduce the footprint of a catalog server as much as possible, or if a catalog being served is very large and needs more than the default allocation. If your index image has a file- system cache, determine a good approximation for this value by doubling the size of the package cache at /tmp/cache/cache/packages.json in the index image. \n This field is best-effort; if unset, no default will be used and no Pod memory limit or $GOMEMLIMIT value will be set." + description: "MemoryTarget configures the $GOMEMLIMIT value for the gRPC catalog Pod. This is a soft memory limit for the server, which the runtime will attempt to meet but makes no guarantees that it will do so. If this value is set, the Pod will have the following modifications made to the container running the server: - the $GOMEMLIMIT environment variable will be set to this value in bytes - the memory request will be set to this value \n This field should be set if it's desired to reduce the footprint of a catalog server as much as possible, or if a catalog being served is very large and needs more than the default allocation. If your index image has a file- system cache, determine a good approximation for this value by doubling the size of the package cache at /tmp/cache/cache/packages.json in the index image. \n This field is best-effort; if unset, no default will be used and no Pod memory limit or $GOMEMLIMIT value will be set." pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ anyOf: - type: integer diff --git a/vendor/github.com/operator-framework/api/crds/zz_defs.go b/vendor/github.com/operator-framework/api/crds/zz_defs.go index a391fce34b..327b665f29 100644 --- a/vendor/github.com/operator-framework/api/crds/zz_defs.go +++ b/vendor/github.com/operator-framework/api/crds/zz_defs.go @@ -85,7 +85,7 @@ func (fi bindataFileInfo) Sys() interface{} { return nil } -var _operatorsCoreosCom_catalogsourcesYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x7d\x69\x73\xdc\x36\x16\xe0\x77\xff\x8a\x57\xda\xd9\x92\x94\x74\x53\x76\x32\x95\x9d\x68\x72\x94\x46\x3e\x56\x15\x1f\x2a\x4b\xc9\xd4\x8e\xe5\xdd\xa0\xc9\xd7\xdd\x88\x48\x80\x01\x40\x49\x9d\xe3\xbf\x6f\xbd\x07\x80\x64\xdf\x87\xec\xd8\xae\x21\x3f\x24\x6a\x12\xe7\xbb\x2f\xc0\xa2\x94\x3f\xa1\xb1\x52\xab\x63\x10\xa5\xc4\x3b\x87\x8a\x7e\xd9\xe4\xfa\x1f\x36\x91\xfa\xe8\xe6\xd1\x83\x6b\xa9\xb2\x63\x38\xad\xac\xd3\xc5\x6b\xb4\xba\x32\x29\x3e\xc6\xa1\x54\xd2\x49\xad\x1e\x14\xe8\x44\x26\x9c\x38\x7e\x00\x20\x94\xd2\x4e\xd0\x6b\x4b\x3f\x01\x52\xad\x9c\xd1\x79\x8e\xa6\x3f\x42\x95\x5c\x57\x03\x1c\x54\x32\xcf\xd0\xf0\xe0\x71\xea\x9b\x87\xc9\xd7\xc9\xc3\x07\x00\xa9\x41\xee\x7e\x29\x0b\xb4\x4e\x14\xe5\x31\xa8\x2a\xcf\x1f\x00\x28\x51\xe0\x31\xa4\xc2\x89\x5c\x8f\xfc\x22\x6c\xa2\x4b\x34\xc2\x69\x63\x93\x54\x1b\xd4\xf4\xbf\xe2\x81\x2d\x31\xa5\xd9\x47\x46\x57\xe5\x31\x2c\x6c\xe3\xc7\x8b\x8b\x14\x0e\x47\xda\xc8\xf8\x1b\xa0\x0f\x3a\x2f\xf8\xef\xb0\x79\x3f\xed\x05\x4f\xcb\xef\x73\x69\xdd\x0f\xf3\xdf\x9e\x4b\xeb\xf8\x7b\x99\x57\x46\xe4\xb3\x0b\xe6\x4f\x76\xac\x8d\x7b\xd9\x4c\x4f\xd3\xa5\xc2\x59\x93\xfa\xcf\x52\x8d\xaa\x5c\x98\x99\xbe\x0f\x00\x6c\xaa\x4b\x3c\x06\xee\x5a\x8a\x14\xb3\x07\x00\x01\x84\x61\xa8\x3e\x88\x2c\x63\xb4\x88\xfc\xdc\x48\xe5\xd0\x9c\xea\xbc\x2a\x54\x3d\x15\xb5\xc9\xd0\xa6\x46\x96\x8e\x41\x7f\x39\x46\x28\x0d\x3a\x37\x61\x90\x80\x1e\x82\x1b\x63\x9c\xbb\xee\x05\xf0\x8b\xd5\xea\x5c\xb8\xf1\x31\x24\x04\xe1\x24\x93\xb6\xcc\xc5\x84\x56\xd3\x6a\xe5\xd1\xf4\xd8\x7f\x6b\xbd\x77\x13\x5a\xba\x75\x46\xaa\xd1\xaa\xa5\x50\xbb\xcd\xd7\xe0\x41\x73\x39\x29\xe7\x97\x30\xf3\x72\xd3\xf9\xcb\x6a\x90\x4b\x3b\x46\xb3\xf9\x22\xea\x2e\x73\x6b\x38\x5f\xf0\x65\xc9\x42\x5a\x83\x46\x86\x4a\xe6\x98\x61\x6e\x82\x93\xd1\xfc\x1e\x33\xe1\xe2\x4b\xdf\xe8\xe6\x91\xc8\xcb\xb1\x78\x14\x5e\xda\x74\x8c\x85\x68\xe8\x41\x97\xa8\x4e\xce\xcf\x7e\xfa\xf2\x62\xe6\x03\x4c\x43\x67\x8a\xce\x41\x5a\x10\x60\xb0\xd4\x56\x3a\x6d\x26\x04\xad\xd3\x8b\x9f\x6c\x0f\x4e\x5f\x3f\xb6\x3d\x10\x2a\xab\x19\x0f\x4a\x91\x5e\x8b\x11\xda\x64\x6e\xad\x7a\xf0\x0b\xa6\xae\xf5\xda\xe0\xaf\x95\x34\x98\xb5\x57\x41\xe0\x89\x30\x99\x79\x4d\xf0\x6f\xbd\x2a\x0d\xcd\xe9\x5a\x8c\xec\x9f\x96\x94\x9b\x7a\x3f\xb3\xc3\x7d\x02\x83\x6f\x07\x19\x09\x38\xb4\x4c\x02\x81\xc7\x30\x0b\xb0\xf3\xa4\x21\x2d\xed\xdf\xa0\x45\xe5\x45\x1e\xbd\x16\x2a\xec\x29\x81\x0b\x34\xd4\x91\xd8\xbd\xca\x33\x92\x84\x37\x68\x1c\x18\x4c\xf5\x48\xc9\xdf\xea\xd1\x2c\x38\xcd\xd3\xe4\xc2\xa1\x75\xc0\x5c\xab\x44\x0e\x37\x22\xaf\xd0\x83\xb2\x10\x13\x30\x48\xe3\x42\xa5\x5a\x23\x70\x13\x9b\xc0\x0b\x6d\x10\xa4\x1a\xea\x63\x18\x3b\x57\xda\xe3\xa3\xa3\x91\x74\x51\x86\xa7\xba\x28\x2a\x25\xdd\xe4\x88\xc5\xb1\x1c\x54\x24\x0e\x8f\x32\xbc\xc1\xfc\xc8\xca\x51\x5f\x98\x74\x2c\x1d\xa6\xae\x32\x78\x24\x4a\xd9\xe7\xc5\x2a\x96\xe3\x49\x91\xfd\x0f\x13\xa4\xbe\xdd\x9f\x01\xdf\x42\x62\x86\x28\x36\x57\xc2\x9a\x84\xa7\xa7\x22\xdf\xdd\xef\xa5\x01\x29\xbd\x22\xa8\xbc\x7e\x72\x71\x09\x71\x01\x1e\xec\x1e\xc2\x4d\x53\xdb\x00\x9b\x00\x25\xd5\x10\x8d\x6f\x39\x34\xba\xe0\x51\x50\x65\xa5\x96\xca\x79\x96\xce\x25\x2a\x07\xb6\x1a\x14\xd2\x59\xa6\x39\xb4\x8e\xf0\x90\xc0\x29\xab\x30\x18\x20\x54\x25\x71\x52\x96\xc0\x99\x82\x53\x51\x60\x7e\x2a\x2c\xbe\x77\x50\x13\x44\x6d\x9f\xc0\xb7\x39\xb0\xdb\x1a\x78\xbe\xc3\x1c\x8f\x01\x44\x0d\xb9\x51\xe3\x65\x4c\x09\x9e\x03\x17\x49\x60\x58\xc1\x8b\xf4\x88\x2c\x33\x68\x17\x7c\x98\x63\x48\xdf\xd0\xd3\xc9\x58\x5b\xc2\x9f\x70\xf0\xea\xf9\x0b\x48\x85\x82\xca\x22\x31\x4f\xaa\x95\x22\x82\x70\x1a\x04\xe9\xb2\x3e\xde\x49\xcb\x04\x64\x70\x24\xad\x33\x93\x04\x9e\x6a\x53\x08\x77\x0c\xdf\xc4\x57\x7d\x1e\x4e\x1b\x90\xe5\x77\xc7\xdf\x94\xda\xb8\xef\xe0\x95\xca\x27\x34\x68\x06\xb7\x63\x54\x70\x51\xef\x0d\xbe\x6d\xfd\x78\x66\xca\x34\x81\xb3\x91\xd2\x26\xb6\x24\xaa\x3a\x2b\xc4\x08\x61\x28\x31\x67\xba\xb6\xe8\x92\x59\x0c\xae\xc4\x22\x78\x73\x69\x28\x47\x2f\x44\xb9\x16\x34\xa7\xb1\x25\xcd\x45\xd3\xb7\x95\x77\xf3\xd1\x69\x26\x65\xda\x12\xfd\x29\xd2\x6b\x10\x61\x96\x42\x94\x7d\xcb\x6c\xd3\x02\xd3\x66\x10\x38\x8d\x03\x10\xfc\x9a\xd7\x67\x41\x72\x25\xdb\x6e\xbb\xbd\xb3\xad\xfb\x36\x66\xc8\x5a\xa0\xbd\x58\xa4\x45\x36\x98\x63\x64\xca\xf4\x5c\x67\x7e\xdb\x6b\x67\x79\xd6\x6e\x0d\x78\x57\x6a\x8b\x16\x32\x39\x1c\xa2\x21\xb9\xa3\x6f\xd0\x18\x99\xa1\x85\xa1\x36\x8c\xaf\x52\x67\xcc\x93\x35\xfe\xa6\x54\xed\xb9\xce\x36\x45\x0c\x4d\xcd\x0a\xc3\x13\x63\x20\xc3\xa5\xdb\x5d\xc8\xed\xb0\x86\x79\xe9\x11\x43\x36\xff\x27\x8b\xbf\xce\xc0\xe3\x24\x34\x8e\x94\x1a\x2c\xaa\x20\x3a\xf6\x2d\x6d\x7f\xdf\xd6\x63\x2e\x5a\xee\x06\x4b\xde\x64\xd9\xf4\x28\x9d\xe1\xc9\x9a\xe5\xcf\x6d\xe1\x31\xff\x18\xa0\xe5\xee\xf5\x52\x59\x83\x67\x55\xce\xa2\xa6\xca\xa7\x31\xba\x6c\x1f\x1b\xee\x65\xd3\xfd\xf8\x76\x38\x44\x63\x30\x7b\x5c\x11\xfd\x5e\xd4\xab\x0a\x42\xca\xbf\x7e\x72\x87\x69\xb5\x8c\xc7\x96\x6e\x9d\x8c\xe2\xb0\x4d\x34\x70\x2b\xf3\x3c\x4c\x47\x02\x25\x7e\xa0\xfd\xb2\x1d\x43\xe0\xb1\x5e\x48\x5b\xe1\xa4\x1d\x4e\x18\x1c\x35\xc0\xf0\x8e\x74\x36\x7b\x2c\x4c\xf1\x72\x28\x31\x83\xc1\x24\xa8\x6b\x12\x9e\x3d\x18\x54\x0e\xa4\x63\x5d\x9e\x8e\xb5\xb6\x08\xc2\xc3\x9d\xc7\xbd\x91\x9a\x2d\x25\xd0\x0a\x49\xfe\x14\xa4\x90\x03\xe3\xb4\x86\x4f\x78\xe5\x4d\x37\x69\xa1\x20\x89\x5f\xc3\x2a\x92\x23\x0d\x73\x2b\xdd\x98\x7f\x8c\xc8\xe4\x26\x2b\xcc\x56\x05\x0d\x7a\x8b\x72\x34\x76\xb6\x07\x32\xc1\x84\xb1\x8b\x22\x1d\xb7\x86\x2d\x10\x9d\x05\x91\xe7\x71\x09\x6d\x92\xf0\x7a\xb3\x20\x13\x05\x0e\x6a\x1b\x26\xd8\x1b\xbd\x5a\xaf\xce\x62\x6d\x21\xb8\x7a\x80\x2e\x4d\x0e\x7b\x90\xea\xa2\xac\x1c\xc1\x84\xd6\x38\x98\x80\x74\x64\x67\x7b\x7b\xc9\xe8\x6a\xe4\x77\x82\x79\x98\x38\x1a\xab\x5e\x33\x91\x70\x20\x1f\x51\x8d\x60\xcf\x6f\x6e\x2f\xda\x9f\x34\x9c\xf4\x9b\xe0\xfd\x15\xc2\xa5\xe3\x60\x02\xa7\xda\x18\xb4\xa5\x56\xdc\x93\xbf\x3c\x69\xd6\xf6\xcf\xba\xd3\x81\x3d\x6c\x80\x39\x96\xa3\x71\x84\xa5\x30\xc8\xef\xa6\x71\xb0\x8a\x47\x1a\x3e\x11\xc6\x4c\xf9\x92\x8b\x1e\xe9\xb0\x58\xc3\x25\x73\xa4\x7d\xa2\x00\x8b\xd2\x4d\x5a\x34\xd1\xc2\x9e\x43\x53\xd4\x30\x60\x04\x33\xbb\x5a\xbf\x3f\x59\x94\xb9\x4c\xa5\x0b\x14\x02\x0f\xe1\x80\x49\x44\x3a\x12\x65\xa0\x74\x5f\x97\x87\x09\x9c\x70\xf8\x62\x83\x09\x94\xae\xc7\x0f\x03\xd1\xa4\x56\x37\x63\xad\xdd\xdb\x86\x42\xc5\x3f\xcb\x6d\xba\xf9\xa7\x1f\xd6\x8f\x2a\x9d\xb5\xf2\x16\x37\xf7\x30\x59\xdb\x74\x53\xf1\x16\x5b\xc7\x35\x6c\xd2\x7a\x16\xd5\x9e\xa4\x2d\xe6\x98\x92\x4b\x4a\xb0\xef\x81\xb0\x56\xa7\x92\xac\xfc\x86\x68\xa7\x29\xdd\xef\x64\x3d\xec\x61\x5b\xf8\xc3\xd6\xfb\xa7\x67\x96\xf1\x36\xed\x37\x07\x8d\x5c\x92\xf1\x3b\x9c\x81\xca\x94\xc0\x1a\x4c\xf8\xeb\xbe\x85\x5c\x0c\x30\xb7\x9b\x01\x01\xb6\xe2\xda\xe6\xd9\x90\x7f\x97\x6e\x68\xe9\x46\x82\x8f\x59\x23\x9e\x84\x36\xf9\x66\x42\x2a\x1b\xfc\xe7\x1e\x08\xb8\xc6\x89\x77\xb5\xc9\x83\x8f\x81\x0b\x6e\x6c\xd0\xab\x1b\x22\x8e\x6b\x9c\x70\xa3\xe0\x77\x6f\xb1\xdc\xad\x89\xc3\x3f\xdb\xb0\x69\xf3\xf4\x69\xa1\x5b\xf6\x88\x9b\xde\xa2\xdb\xf6\xf4\xeb\x9f\x6b\x5c\x69\x79\x2d\x7a\xe6\x4c\x12\xa6\x49\xc6\x07\x23\x89\xf5\x57\xc4\xb1\x28\xcb\x5c\x22\xfb\xf3\x5b\x4e\xb3\xd2\x0b\x58\xf5\x44\xe8\xdd\x6b\x5f\xaf\xeb\x80\x86\x27\xc8\x7d\xeb\x89\x8f\x38\x7d\x2c\x4b\xef\xdf\x5a\x64\xc6\x8d\x91\x9f\x9f\x44\x2e\x9b\x50\x9b\x65\x3d\x7b\xa6\x7a\xf0\x52\x3b\xfa\xdf\x13\xf2\x84\x6d\x0f\x1e\x6b\xb4\x2f\xb5\xe3\x9f\x09\x3c\x73\x9e\xd6\x9f\x6f\x28\xd9\xde\x01\x80\xfc\x7a\xef\x05\x9e\x13\xe5\x65\x0a\x6d\xbf\x1d\x33\xb2\x09\x9c\x79\xb3\xa5\x66\x5c\x69\xe1\x4c\x91\x71\x18\xc0\xc0\x51\x3c\x6e\x1b\x86\x28\x2a\xcb\x41\x1e\xa5\x55\x9f\x6d\x80\x85\x63\x78\xe8\xd1\x38\x6d\xf8\xad\x18\x6e\xf9\x50\xcf\x38\xd6\xf0\x7c\x69\xe7\xb1\xb8\x61\x93\x4e\xaa\x51\x5e\x1b\x6f\x3d\xb8\x1d\xcb\x74\xec\xad\xee\x01\xfa\xd0\x60\x69\x90\x14\x96\xb0\x24\xaa\xe8\xcd\x08\x0d\x19\xbb\x32\x8e\xe7\x03\x93\xb9\x48\x31\x83\x8c\x4d\x4b\x1f\x64\x13\x0e\x47\x32\x85\x02\xcd\x08\xa1\x24\x4d\xb2\x1b\xf6\xb7\x13\xec\xfe\xd9\x5a\xbc\xb7\x27\xdc\x8a\xdc\x58\x45\x3e\x25\x5b\xf7\x2f\xd2\x8e\x6c\x57\x77\xda\xb1\xd3\x8e\x33\x4f\xa7\x1d\xeb\xa7\xd3\x8e\x6b\x9e\x4e\x3b\x76\xda\xf1\xbd\x6b\x47\xef\xcb\xee\xe0\x3c\xff\xdb\x87\x38\x66\xbd\x65\xd6\xb4\x31\x4d\x37\xed\x36\x93\xbe\xb9\x08\x02\xe7\x92\x5d\x6d\xe9\x93\x24\x46\xa8\x11\xc2\xa3\xfe\xa3\x87\x0f\xb7\x71\xaa\x03\x22\x37\xea\x31\x0c\x99\x1e\xa9\xdc\x97\x5f\xac\xec\xb1\x2c\xfe\xf6\x0e\xa2\xa6\x81\xc6\xeb\x40\xde\x94\xed\xb0\x24\xf0\xc9\xd2\x49\x69\x07\x05\x3a\x10\x6e\x2a\x54\x24\x0b\xec\xd5\xa9\x02\x26\xf8\x90\xa5\x8c\x11\xd8\x0c\xb4\x0a\x71\x3c\x02\x7e\xb2\xdb\x0a\x52\x14\x3e\xa5\x36\xc0\x7a\x15\xba\xa0\x59\xa5\x72\x91\x5d\x68\x09\x18\xa1\x02\x07\x98\x8c\x12\xc8\x2a\xee\x26\x54\x48\x9b\x1e\xfa\xd5\xda\x89\x75\x58\x70\x24\x57\x1b\xfe\x1f\x2d\xdb\x99\x09\x35\xc6\x1b\x54\xae\x12\x79\x3e\x01\xbc\x91\xa9\xab\xf7\xc7\x59\x5b\xe9\x7c\xb0\x7d\xb3\x10\xe1\x46\xa6\xc3\xe6\xe6\x42\x7f\x8e\x82\xed\x9a\x3e\xdb\x68\xfb\xb9\xb1\x37\xe1\xc9\x19\x5d\xe8\x77\x92\x2c\x35\x56\x1d\x8d\xeb\x63\xe0\xfc\x27\x13\xd7\xab\xd7\xeb\x43\xae\xb0\xb5\x24\xdb\x42\x7a\xcd\x9a\xa5\x55\x9e\x13\x61\xf8\x28\xec\xfc\x06\x16\x44\x47\xfd\x96\xa6\x88\xd9\x07\xde\x7d\x88\xf9\xe4\xe5\x63\x82\x0a\xb5\xb9\xd4\xa5\xce\xf5\x68\xd2\x86\xb4\x2f\x2f\x92\x45\x19\x83\xe3\x02\x6c\x35\x08\x46\x03\x91\xdf\xcb\x19\xd4\x74\x91\xbf\x2e\xf2\xd7\xf9\x36\x73\x4f\xe7\xdb\xd4\x4f\xe7\xdb\xac\x79\x3a\xdf\xa6\xf3\x6d\xba\xc8\x1f\x74\xda\x71\x05\x4c\x3a\xed\x08\x9d\x76\x5c\xba\xaf\x4e\x3b\xae\x04\x4f\xa7\x1d\x3b\xed\xb8\xe8\x29\x75\x76\x8f\x42\xc7\x52\x67\x2b\xea\x1c\x7d\xd4\x27\xd5\xfd\x5c\xa7\xc2\x85\xba\x7c\xea\x12\xe2\x7c\x56\x14\x3e\x10\xd5\x83\xdf\xb4\x42\x5f\xbc\x46\xb8\xe1\x70\x92\x76\x63\x34\xd4\xfc\xc0\x1e\xae\x2c\x6c\xea\xea\x24\xbb\x3a\xc9\x8f\xbe\x4e\x72\x2c\xac\xc7\xab\x17\x4a\xcb\xcb\x26\x5b\x0c\x79\x89\xa6\xf8\x44\xab\x26\x89\x5c\x02\xba\xf9\xc4\x53\x83\x52\xbf\xf3\x2c\xe4\x0b\x30\x3b\x9f\xde\x6f\xb0\x97\x79\x53\x22\xcb\x30\x83\x12\x4d\xdf\x93\x88\x86\xa1\x54\xd9\x82\xbd\x46\xf8\x7c\xd0\xea\xc7\xe9\x7d\x7c\xc0\x12\xc8\xe9\x85\xec\x10\x73\x6d\x07\x8e\xa7\x24\xfc\x47\x51\x10\xb9\xad\x55\xdf\x07\x17\x82\xbc\x3f\x6c\x68\xd7\x6f\x6f\x9a\xb3\x41\x1d\x43\xc2\xbb\xfb\x95\x6c\x96\xff\x5a\xa1\x99\xf0\xf9\x8f\xc6\x60\xad\xcf\xd6\x85\x1c\x99\xb4\x90\x0a\xeb\x35\xc5\xb6\xae\xe5\x96\x6e\xd4\x6e\x7e\xca\xee\x91\x68\x98\x85\xcb\xec\x50\xde\x27\x8d\x3e\xb8\x87\xd9\x42\x27\x7c\x41\x16\xa0\x89\xfe\x6f\xb5\x9e\x5d\x4d\xb7\x9d\x0c\xb7\x85\x44\xf1\x11\x3b\xe7\xb0\xbb\x83\x0e\x3b\x3b\xe9\xb0\x93\xa3\x0e\xbb\x3a\xeb\x70\x0f\x87\x1d\x76\x73\xda\x61\x96\x14\x08\x43\xc1\xca\x7a\x3f\xfe\x3b\xdc\xc7\x45\x85\x7b\xf8\xf1\x30\xbb\xd5\x9a\x4c\xcd\xfb\x72\xea\x99\xd6\xa7\xfc\xfa\xbf\x1a\x58\xbb\xf9\xf4\x30\x0b\xaa\xe0\x0c\x4b\x76\x68\x3f\x11\x0f\xff\x2f\x71\xb7\xe1\x5e\x2e\x37\xec\xee\x76\xc3\xee\x94\xc1\xaa\xee\x39\xa7\x53\xef\xab\x30\xfd\x28\x5e\x45\xf0\x19\xdc\x21\xfc\x4e\x9a\x80\xf1\xf2\x27\x94\x42\x1a\x4b\xf6\x5d\x88\x99\xb4\xbf\x05\xef\xbc\x3d\x4c\xe1\x8f\x10\x93\xa8\xbe\x11\x39\xe9\x1e\x5f\xc7\x11\xfc\x22\x1a\x7d\x56\x4d\xf7\xe0\x76\x4c\xde\x26\x49\xa9\xfa\xbc\xf3\xde\x35\x4e\xf6\x7a\x73\x84\xb4\x77\xa6\xf6\xbc\x8e\x9a\x23\x9d\x5a\xa1\x69\x95\x4f\x60\x8f\xbf\xed\xbd\x6b\xcd\xbe\x83\xe2\x6a\x5f\xa1\xb2\xab\x5e\xd8\x81\x4a\x54\xbc\xd6\xe5\xdd\x1b\x9b\x5e\x8b\xf8\xc4\x46\x9c\xc5\x36\x0a\x86\x4b\x2d\x5a\xca\xa5\xae\x1a\x61\x1a\xe3\xf7\x59\x74\x7e\x2b\x15\x6e\xba\x88\x67\xce\xc3\x60\x5e\x49\xcd\x97\x34\x05\xc4\x6b\x85\x96\x0d\x3b\xac\x43\x44\xad\xce\xdc\x36\xf1\xe5\x20\x8d\xb6\x53\xd9\x6c\x81\x48\xd3\x83\x6d\xc4\x02\x85\xb2\xb0\x17\x63\x4f\xfb\xb6\x69\xb1\x97\x34\xa7\xfb\xea\x11\x0f\x7e\xff\xf3\x70\xea\x44\x5f\x33\x60\x67\x69\x77\x96\x76\x67\x69\x6f\xd1\xab\xb3\xb4\x97\x3f\x9d\xa5\xbd\xc5\xd3\x59\xda\x9d\xa5\xbd\x6a\xe2\xce\xd2\xee\x2c\xed\xf5\x93\xef\x66\x69\xef\x5a\x27\xd4\xb6\x7b\x43\x72\xce\x5f\x64\x26\x9c\x4c\x9b\x1a\xa2\xd8\xca\xff\xf5\x6e\xed\xed\xb6\x2d\xbd\xd8\xda\x6e\x5b\xe4\x73\xbe\x45\xb2\xc6\xb4\xae\x8d\xef\xb9\x9e\xab\xad\xee\x8f\xab\x16\x6a\x07\xda\x68\x25\x14\x76\x24\x8e\xcb\x98\x0a\x0f\x17\xff\x0d\xb0\xc9\x93\x67\x70\x10\x33\x2e\x87\x04\x7c\xa5\xdd\xf4\x47\xe5\x64\xbf\x69\x51\xe7\x60\x38\xbd\x38\x75\xde\x66\x2a\x2d\x51\x67\xdd\xeb\x4c\x71\x83\x4f\x12\x21\x68\xa6\xd6\x20\x6d\xb8\xde\x90\xab\x25\x4c\xa5\x14\x8d\xaa\x55\x4c\x1f\x7b\x99\xe3\xef\xe3\x0b\x94\xe7\x8d\x25\x5e\x0f\x5b\x4c\x0d\x94\x5a\xf9\x4e\xe1\xfc\x15\x88\xa1\x94\x5f\xab\x90\x11\xa5\x37\x31\xeb\x1b\x89\x92\x77\x24\xeb\xd9\x13\x78\xc2\x74\xd8\x1e\x58\x5a\x86\x8f\xc8\x73\x7d\xbb\x8d\x48\xfa\xab\x8e\x45\xdd\x6e\x7d\x2c\x6a\x26\x7f\xd7\x9d\x8a\xfa\x2f\x39\x15\xc5\x1f\x3d\x0b\xbd\xf3\xe3\x51\xf0\xef\x70\x01\xa1\x41\x06\x55\x51\xe5\x4e\x96\x4d\xad\x94\xf5\x53\xe5\xde\xca\x1c\x86\xca\x93\x69\xba\xa4\xd9\x44\x3a\x9e\xa5\x4f\x1e\x8f\x6b\xab\x2c\x33\x6d\xa8\xee\x10\x79\x1e\xce\x14\x45\x93\xd4\x97\xb0\xc8\x0f\x5d\x99\xf0\x38\xdc\xd9\x5a\x7b\x33\x2c\x64\x0e\x48\x16\xe6\x84\x50\x92\x6a\x2b\x84\xa8\x77\x8a\x6e\x30\xaa\xde\x91\xbc\x41\xd5\x48\xd2\x03\x7b\x78\x18\x75\xf8\x3b\x95\xf0\xef\x45\x42\x7f\xd3\x92\xa4\xdf\x6d\x22\xa3\x79\x43\xb5\x94\x6e\xc0\xd7\xc8\xe8\x0f\x59\x82\xb1\x4d\x9e\x7f\xbb\x18\xc3\x0e\xf9\xfd\xbf\x30\xb7\xff\xe9\x9c\x2c\xfb\xc0\x11\xc6\x0f\x51\x5b\xff\xd1\x47\x15\xbb\xe2\xfa\xe6\xb9\x6f\x71\xfd\x7b\x8f\x1c\x7e\xd8\x1a\xfb\x4f\x20\x5a\xf8\x21\x6b\xec\xbb\x08\xe1\x4a\xa4\x7c\x6c\xa5\xef\xd3\xcf\x4e\x11\xc1\x2e\x1a\xb8\xb3\x16\xde\x52\xe1\xdc\x37\x0a\xb8\x25\x45\xec\x98\x67\xef\x72\xec\x7f\x4d\x8e\xbd\xb3\x78\x37\x7c\x3a\x8b\x77\x29\x50\x3a\x8b\x17\x3a\x8b\x77\xdd\xf6\x3a\x8b\x77\x25\x78\x3a\x8b\x77\x25\x52\x3a\x8b\xb7\xb3\x78\xe1\x53\xb3\x78\x77\xb9\xa5\xab\xcb\x75\xdf\x2b\xd7\xbd\xad\xb4\xd8\x4a\x46\x6c\x49\x07\x5b\xe7\xb6\xbb\xbc\xf6\xc7\x92\xd7\xde\xf8\xc0\xbf\x72\xf2\xbe\x87\xfe\xdb\xb8\x5a\x76\xf2\x5f\xdc\x68\x99\x41\x59\xb9\x70\x9e\xba\x3b\xfd\xff\x2e\x4e\xff\x4f\x41\xbe\xbb\x02\x60\xa3\x2b\x00\x96\xc1\xac\xbb\x07\xa0\xbb\x07\xe0\x1d\x27\xa1\xbb\x7b\x00\xba\x7b\x00\xba\x7b\x00\xe2\xd3\x9d\x4e\x82\xee\x74\xd2\x46\x4f\x77\x3a\x69\xf9\xd3\x9d\x4e\xfa\x68\xa3\xaf\xd0\x9d\x4e\xfa\xb8\x23\xb1\xd0\x9d\x4e\xea\xa2\xb3\x1b\x22\xea\x13\x3c\x9d\xd4\xdd\x03\xf0\xb1\xd6\x28\x40\x67\x69\x77\x96\x76\x67\x69\x77\x96\xf6\xea\xa7\xb3\xb4\xb7\x78\x3a\x4b\xbb\xb3\xb4\x57\x4d\xdc\x59\xda\x9d\xa5\xbd\x7e\xf2\xee\x1e\x80\x4f\xa8\x36\x02\xba\x7b\x00\xba\x7a\x89\xee\x1e\x80\xff\xde\x7b\x00\xa6\x72\xf7\x1f\xee\x32\x80\xed\x97\xd1\xdd\x08\xd0\xdd\x08\xd0\xdd\x08\xd0\xdd\x08\x10\x9f\xee\x46\x00\xff\x7c\x4c\xb1\xc6\xee\x7c\xd4\x52\xa0\x74\xe7\xa3\xa0\x3b\x1f\xb5\x6e\x7b\x9f\x40\xdc\xb0\x3b\x1f\xf5\x11\xc6\x0a\xbb\xf3\x51\x5d\x5c\x70\x16\x39\x9f\xc8\xf9\xa8\xee\x46\x80\x8f\x31\xdb\xde\x59\xbc\x1b\x3e\x9d\xc5\xbb\x14\x28\x9d\xc5\x0b\x9d\xc5\xbb\x6e\x7b\x9d\xc5\xbb\x12\x3c\x9d\xc5\xbb\x12\x29\x9d\xc5\xdb\x59\xbc\xf0\xa9\x59\xbc\xdd\x8d\x00\xdd\x8d\x00\xdd\x8d\x00\x9f\x62\x86\x7b\x2d\xa6\x0b\x2c\xb4\x99\x5c\x0a\x33\xc2\xa5\x59\xed\x29\x74\xee\xbd\x68\xf5\x20\x09\x39\x94\xa3\xca\x04\x03\xfc\x6f\xcf\x5e\xbd\x78\xf2\xe2\xf9\xd9\x8b\xb3\xcb\x00\xaf\xa1\xf6\x2e\xee\xe8\xf5\xf9\x29\xa4\xc2\x89\x5c\x8f\xe0\x5c\x67\x41\xe9\x7a\xeb\x5f\x0f\x5d\x58\x08\xe4\xb2\x90\xae\xee\x65\xd1\xdc\xa0\xe9\x05\xb8\x71\xf2\xbb\x52\x4e\x16\xe8\x53\xb7\xc2\x39\x62\x4d\x92\x03\x05\xa2\xe3\x73\xee\x85\xb8\x46\x02\x14\x8c\x2a\x61\x84\x72\x18\x51\x21\x9d\xef\x94\x69\xb0\x3a\x98\x0f\x32\xf8\x18\xb4\x0e\x8b\xc1\x52\x38\x8f\x99\xe1\xb1\xb8\xf1\x07\xaa\x87\x9a\x60\x4e\x44\x51\xe8\x4c\x0e\x65\xea\x8d\x3c\x28\x44\x56\x67\xfd\x82\xae\x40\x53\x13\x50\xb3\x81\x63\xe8\xcf\x81\x07\xd5\x8d\x34\x5a\xb1\x06\xbb\x11\x46\x8a\x41\x1e\x76\x35\xf0\x01\x01\x1e\xb7\x59\xa0\x82\xc1\x84\xfc\x1c\x3f\x52\x80\x56\x38\xf9\xbe\xa2\xdf\x54\x73\x0f\xdc\x99\xc6\x5f\x3c\x7c\xf8\x3f\xeb\xe3\xec\xbe\xd3\x95\xf2\xd8\xf1\x12\xb3\xe1\x5b\xea\x21\x87\x20\xdd\x3e\x71\x8c\x25\xcf\x87\x46\x30\x98\x55\x69\x84\x94\x76\xa5\x91\x5e\x2b\x8b\x1a\xe1\x1e\x0c\xc4\x5d\x45\x45\x0c\x40\x02\xc1\x5a\x39\xc8\xb1\x47\x6c\x2f\xdb\x6d\x07\x48\xc0\xe3\x1e\xcc\x9a\x37\x48\x2b\x27\x72\xf3\x12\x17\x91\x78\x5f\xf3\x59\x77\xe1\xf9\x3c\xc3\xa1\xa8\x72\xcf\x1a\x1e\x37\x8c\xdf\x89\xae\x48\x14\x64\x78\x07\xb2\x10\x23\x7f\xf6\x5e\xc0\x50\xe6\xd8\x8f\x39\xf4\x54\xa4\x63\xec\x41\x86\xa4\x5b\xa4\x42\x10\x30\xd2\x3a\x23\x15\x63\xf4\x9d\x2c\x78\xb4\x40\x8f\x35\x7c\x06\x13\xc8\x74\x35\xc8\x6b\x2c\xcb\xdf\x6a\xc9\x50\x8a\xf4\x9a\xe6\xe2\x81\x41\x38\x38\x72\x45\x79\xc4\xbf\xc2\x7f\x43\x0b\x9b\xfc\x62\xb5\x8a\xa2\xaa\xb5\xcc\x64\x06\xfe\xd2\xc2\x00\xad\xeb\xe3\x70\xa8\x8d\xfb\x27\x41\xab\x52\x4c\xad\x4a\xd7\x5b\x8f\x48\xad\x2c\x7a\x1d\xa7\x34\x13\xf2\x14\xe6\xb5\x59\xc0\xa1\x2d\x72\x48\xf6\x96\x48\x80\x92\x38\xcd\xa8\x63\xf8\xbf\x07\x57\x9f\xff\xd1\x3f\xfc\xfe\xe0\xe0\xcd\xc3\xfe\xd7\x6f\x3f\x3f\xb8\x4a\xf8\x8f\xcf\x0e\xbf\x3f\xfc\x23\xfe\xf8\xfc\xf0\xf0\xe0\xe0\xcd\x0f\x2f\x9e\x5d\x9e\x3f\x79\x2b\x0f\xff\x78\xa3\xaa\xe2\xda\xff\xfa\xe3\xe0\x0d\x3e\x79\xbb\xe1\x20\x87\x87\xdf\xff\x6d\xc9\x82\x84\x9a\xbc\x1a\x2e\x57\x46\xfd\x0d\x6b\x5e\xfa\x9b\xa8\xc2\xbb\xfe\x75\x35\x40\xa3\xd0\xa1\xed\x4b\xe5\xfa\xda\xf4\x7d\x87\x63\x70\xa6\xc2\x85\xdd\x48\xe2\xaf\x0b\x14\x4e\xc9\xd5\x97\xad\x0e\x33\x41\x91\x70\x53\x44\xf0\x59\x68\xca\x5a\x40\x92\x5e\xe5\xeb\x10\x5c\xa3\xaf\x12\xb8\x58\xd0\x93\xd5\x52\x68\xb1\x6f\xbd\x02\xb3\xb3\xe3\xcc\xd4\xc1\x78\xc1\xc9\x63\x2e\xd9\xc2\x06\x66\xec\x76\x46\xeb\x5a\x7c\x94\x46\x6a\x23\xdd\xe4\x34\x17\xd6\xbe\x14\x05\x6e\x04\xdd\xb3\x61\x63\x0c\xf4\x88\xd9\x48\x86\x07\xa5\xe5\x0d\xb4\x38\x2e\x4b\x0e\xd2\xb3\xad\xf6\x11\x42\xb1\x4d\xcd\x33\x91\xfb\xb4\x81\xdf\xd0\xe8\x70\xd1\x87\x41\xaf\xab\xe3\xe7\xd5\xc0\x5b\xb1\x57\x8b\x69\xc5\x7b\xd5\xca\xe1\x9d\x3b\x65\x65\xbb\x99\x96\xbe\x58\xd4\x15\x52\xa1\x68\xd9\x7c\xd1\xcb\x10\x7e\xce\x71\x24\xd2\xc9\xcf\xb4\xfc\x9f\x0d\xd2\x42\xc8\x16\xf9\xd9\x1b\xdb\xa7\x5e\x1e\x5f\x70\x25\xc2\x7e\xb8\xb9\xc7\x02\x4a\xbe\x98\x47\xaa\x5f\xbc\xe1\x52\xdb\x64\x86\xeb\xdb\x4a\x9d\x25\x04\xb9\x64\x66\xed\x2c\x93\xea\x8f\xb5\xb2\x7c\xf3\xd9\xdb\xb9\x96\xc1\x05\x23\x27\x8f\xd4\x6e\x9b\x3e\x4d\xc5\x02\x93\x04\x5b\xdc\x20\x9c\x64\x85\x64\xaf\x0f\x0e\xce\x2f\x4e\x0e\xa7\x76\x42\xfa\xda\xab\x98\x4c\xa3\x55\xfb\xce\x2b\xbd\x31\xda\xc6\xd3\x63\xb5\xc1\x85\x16\x9e\x5b\xb8\xd2\x22\xce\x49\x00\x63\xe7\x6f\x80\xf5\xe4\x17\x27\xf0\xf3\x40\x58\xcc\xa5\x42\x0f\xbb\xd2\xc8\x1b\x99\xe3\x88\x66\x6c\xc5\xad\xe1\xb4\x32\x06\x95\xcb\x27\xf1\x06\x98\xc5\x58\x91\x96\x04\xfa\x34\xb9\x45\xca\xaa\xad\xce\x1a\x59\xd4\xda\x62\x96\xc0\x05\xf7\x98\xf8\x10\x45\x68\xc7\xb8\x61\xbd\xb8\x0c\xb9\x60\xd0\xd2\xc0\x52\xf9\x5e\x32\xf3\x2a\x0e\x8d\x21\x97\x87\xab\xc2\x2a\xcb\x06\x70\x9e\xa1\xa9\xd5\x32\xab\x26\x1b\x4d\xb1\x94\x4d\x82\x50\x3a\x17\x00\xb3\x00\xf0\xcb\xf7\x3c\x6d\x54\x38\x5d\xaf\x97\xb5\xdf\x19\x2d\x6e\x58\xb9\xca\x20\xe9\x7f\xc6\x2e\xf3\x5c\x1b\x34\x33\x76\x4c\x7b\xfa\x5e\xbd\xec\x42\xc8\x40\x6a\x36\xce\x69\x70\x50\xc9\x9c\xbd\x40\x59\xef\xcf\x7a\x42\x16\xf5\x74\x7a\x08\xba\x2c\xc2\xf5\x4b\x55\x59\x6a\xe3\x1a\xdf\x20\x6d\xf3\x46\xb0\xdd\x17\x00\x80\x96\x55\x1a\x2c\x85\xa9\x25\xb6\x45\x48\xc7\x42\x91\xfa\xa7\x8d\xbe\xd0\x5c\x2a\xe7\xeb\x2d\x69\x5a\x31\xd0\x95\x63\x1a\x0b\xbc\x3a\xd4\x95\xca\x80\x84\xca\x31\x8c\x9d\x2b\xed\xf1\xd1\x51\xa3\x8f\x12\xa9\x8f\x32\x9d\xda\xa3\x54\xab\x14\x4b\x67\x8f\x22\x37\x1d\x95\x3a\xeb\xc7\x1f\x7d\x11\x99\xe4\x68\x7f\x99\x8e\xdf\x40\x13\x06\xc8\x1f\x83\xc7\xd5\x92\x56\xa8\xaa\x15\x97\xcd\xf4\x57\x77\xa6\x06\x0d\x18\x17\x36\x72\x3a\xe7\xab\x99\x56\x64\x60\xa6\x1d\xd0\xa6\x7d\x7d\x45\x52\x6d\x98\xb6\xa4\xdb\xbe\x6d\x0f\xbd\x5a\x68\xaf\x72\xcc\xd7\xb8\xe2\x73\xd7\x23\xb1\x6c\x23\x73\xaf\x59\x28\x1b\x00\xce\x09\xbe\x20\x89\x0c\x7a\xff\x85\xc4\x95\x9a\x00\xd1\xb3\x0b\xb7\x65\xb5\xae\x8f\x72\x86\xeb\x37\xbf\xa9\xa3\x69\x3d\x1c\x0e\x31\x75\xdf\x05\x7e\xae\xe3\x6a\xcc\xdc\x31\x02\xf6\x4d\xfc\xeb\xbb\xe5\x1e\xe5\x46\xc1\xaa\xcd\xd2\x0d\x7e\x49\xab\xc3\x08\x53\x10\x7a\xc2\x1d\x66\x54\xb6\x87\x80\x1f\x8b\xbd\x3f\x0e\xc8\x06\x9f\xd9\x07\x5f\x82\xbd\x43\x32\xa3\xd5\xd8\x06\x09\xd7\x92\xb6\xc1\x9f\x6e\x22\x7f\x08\x2f\x75\x28\x64\xc6\x1e\x9c\xf3\xdd\x52\xcd\x1b\x56\x64\x2f\xb5\x2f\x69\x5e\x6a\x17\xb5\xe1\xb6\x36\xce\xb2\x36\xe1\x32\x05\x90\x1f\x9a\xf4\x8a\xdf\xd9\x54\x7a\xa5\xa1\xe0\xa9\xe8\xd9\x2a\xc8\x5c\xe3\xa4\x09\xc9\x87\xe4\x0d\x47\xbc\x7a\x0d\x95\x44\xe3\xd3\x47\xd8\xff\x19\x6a\x12\x75\x31\x90\xca\x4f\xe6\x87\x8e\xa8\xe0\xd1\x23\x40\x55\xc6\x3f\x79\x9a\x77\x01\xae\xcd\xb2\x38\x53\x30\x7b\xb5\x45\xce\xa6\x8e\x02\x2f\xce\xd6\xb4\x52\x34\x4f\x7e\xad\x44\x9e\xc0\x63\x2f\x15\x79\xf7\xe1\x55\x68\x34\x17\xb5\xbe\x95\x79\x96\x0a\x93\xb1\x36\xf0\x3c\x0a\x56\x7b\xec\x89\xda\xe0\x88\xdc\xde\xe0\xc8\xdf\x9d\x06\xa5\x30\x4e\xa6\x55\x2e\x58\x6d\xe1\x48\x9b\xc9\x3b\x81\x68\x43\x34\x17\x98\x6a\x95\xad\x09\x24\x2e\x91\xae\xa1\x6f\x1b\xc6\x6c\x46\xa1\x91\xa1\x44\x58\x16\x38\x4b\xa4\x07\xd3\xce\x8d\x1e\x46\xae\xae\x59\xac\xe7\xad\x9a\x5b\xc9\x66\x59\xdb\x2b\x96\xfe\x8c\xc1\x61\x4b\x3c\xd6\x5c\x91\xc0\xbf\x26\x51\x5f\xf5\x40\xba\x18\x3d\x63\xbf\x39\xcc\x19\x48\x36\x00\xbb\x61\xa8\xa1\x36\x78\x83\x06\x0e\x32\xcd\x7d\xb8\x8c\xfe\x30\x81\xff\x90\x89\xef\x63\x10\x23\x5f\xf1\x1d\x48\x3c\x5a\x22\x8e\x2f\x3b\xe4\x28\xe2\x43\x38\xf0\xd5\xf7\xb2\x28\x30\x93\xc2\x61\x3e\x39\xf4\x05\x18\xb1\x7e\x7f\x13\xd4\x6d\x72\x68\xa3\x75\x58\xe3\xab\xbf\xaf\x68\xc9\x8b\xdd\x02\xb3\x3f\xc5\xc8\x58\x03\x19\x6f\x65\xce\xa0\xb0\xd6\x41\x7a\x45\x52\xae\x95\x84\x6b\xd9\x7e\x51\xcc\xd4\x08\xfe\x85\xe8\x40\x80\xc1\x11\x53\xb9\xa7\xdc\x7b\xd0\xb8\x4c\x17\x1f\x3a\x59\xa3\xd1\x56\xe7\xf5\xfb\x40\xe6\xff\x57\x7f\xcf\x84\x13\x4b\x1a\x78\x9c\x4f\xca\x45\xc1\x81\x75\x8a\xb2\x19\x7c\x19\xb2\x36\x88\xea\x86\xe9\x77\x1a\x81\x4d\xfd\x45\x3d\xa7\x5d\x6a\x0e\xa9\xf9\x3c\x6f\xc4\x77\xdf\xe0\x48\x5a\x67\x26\xad\x70\xa8\x0f\xbd\x39\x0d\x52\x59\x27\x94\x93\x2c\xd9\x20\xb6\xec\x87\xd8\x20\x99\xdf\x09\xbc\x22\x5f\x8b\x63\x58\xb7\xa4\xa6\xbd\x81\x7d\x39\x29\x11\xbe\x6d\xfd\x78\x66\xca\x94\x69\x2d\x08\x1a\x4f\x5c\x22\xcb\x0c\xda\x79\xf9\xb0\x88\x7c\x56\xee\x3f\xba\xf9\x6b\x41\xb0\x7f\x1e\x03\x02\x21\xb7\x64\xad\x1c\x91\x95\x19\x4f\x7b\xc5\xd8\xf0\x94\xb5\xe9\xbd\x02\xee\x28\x7f\x63\x6e\x2a\x6a\x25\x20\x5d\xb4\xfb\x53\xad\x6c\x55\xc4\xa2\x2d\xf2\x7a\x4a\x54\x19\xaa\x74\xc2\xc7\x03\xf2\x1b\x34\x09\xfc\x68\x09\x53\xf0\xbf\xe5\x88\xfc\xbe\x30\x69\xdb\x54\x8a\xa7\x4e\x66\x56\x20\x6d\xeb\xce\x4c\x2e\x43\x23\x1b\x28\x8e\x80\xd9\x4c\x7b\x1b\x53\xe1\xb3\x8b\xa8\x7c\xac\xf5\xb2\x3e\x95\x16\x83\xa0\x11\x2e\x9e\xe1\x69\x4b\x23\xed\x0f\x20\x95\xda\xca\x78\x5a\xa6\x96\xa3\x53\x27\xdb\xf4\xd0\x9f\x3b\xf3\xe3\x4e\x3b\xc2\x5c\x53\x31\xb3\x19\x76\xdc\x2a\xe5\x81\x8f\xed\x28\x4d\x14\x33\x0f\xfd\x50\x8b\xfa\xb9\x78\x11\xf1\xf4\x92\x1b\x99\x6e\x84\xba\xc6\x0c\x72\xbc\x93\xa9\x1e\x19\x51\x8e\x65\xca\x87\xab\x88\x4d\x39\x48\xc6\x47\xaa\x44\x81\xc9\xfe\x52\x42\x5b\x26\xc6\xcb\x6a\x90\x4b\x3b\xc6\x85\xb6\xcc\x4a\x1a\xb5\x98\x1a\x74\x0b\x25\xc8\x14\x89\x5e\xf8\x76\x8d\x52\x8e\x15\x29\x61\x80\x50\x71\xe5\x69\x8e\x19\x8f\x40\x9c\xa6\xc4\x48\x31\xad\xd1\x5c\x78\x5b\xc3\x30\x81\x33\x17\x03\xd3\xd4\xe3\x1a\xb1\xf4\x94\xc6\xa9\x51\x5b\x70\x4c\xc5\x4a\x95\xa2\x3f\x22\xe6\x8f\xda\x21\xc6\x30\xa3\x33\x12\xbd\x19\x84\x1c\xe0\x8f\xb8\x41\xe5\x16\x1b\x35\xab\xfd\xae\x15\x3e\xd7\x6a\x30\xd6\x32\x65\x3d\x24\x1b\x59\x14\x75\x22\xfd\x4d\xa0\xe4\x2f\xdb\x62\xd0\x9f\xe8\xbb\xf0\xa5\x25\xeb\x65\xcd\x8f\x53\xcd\x43\xc2\xd2\xc2\x58\xdf\x86\x91\x66\x99\x36\x44\x6c\x22\x6e\x33\x69\x53\xe2\x74\xcc\xe0\x54\x2b\x1b\x8f\xf5\x09\xe5\x4f\xea\xdd\x88\xdc\x93\x42\x1c\xb8\xd4\x39\xe7\x37\xb2\x2a\xba\x13\xbe\xfa\x0e\x8b\x01\xf2\x75\xbc\x36\x2e\x65\x89\x9a\x5b\xa3\x62\xd7\x69\xc1\xa8\x1f\xce\x75\x9e\xaf\xd6\x62\x2b\xfd\xd2\x4d\xbc\xd2\x08\x80\x8d\xaf\x42\x3f\x8b\x10\x0b\xb1\x38\xa2\xe9\x26\x83\xc4\xa4\x41\xa6\x6e\x0d\xd8\x01\xba\x5b\x44\x05\xe9\x18\xd3\x6b\xdb\xe4\x90\xf9\x62\xec\x19\xac\x85\xf8\xd3\xb4\xc4\xaa\xed\x29\xc2\x0a\x3b\x1a\x16\xd1\xa7\xcd\x14\xde\xb6\x63\x56\x0b\xd4\x0d\xa9\xe8\x1b\x21\x73\x31\xc8\xfd\x71\xd6\xfa\x57\xaf\xbd\x0e\x19\xf5\x79\x59\xe5\x79\x48\x22\x71\xd6\xd6\x19\x31\x1c\xca\x94\xd3\xe4\xd2\xf8\xa8\x6f\x50\x6c\x0b\xb7\xb0\xfe\xb2\xf6\x05\x1c\x61\x9d\x70\xd5\x1c\x8e\x56\x20\x78\x15\x62\xc9\x0f\x91\x4b\x03\x44\x33\x57\x1c\x4f\x39\x2b\xb4\x0c\xf4\xce\xd6\x54\xfc\x3b\x81\x97\xda\x85\x1b\xca\x5f\xa0\x25\xb5\xcb\x00\x7a\x8d\xc2\x6a\xd5\x92\xae\x6c\xfd\x1a\x39\x92\x4a\xe4\x61\x53\xed\xf8\x5e\xed\x7b\x08\x0e\x29\x17\x72\x64\x84\xab\x85\x62\xb3\xee\xa0\x5d\x82\x5e\xf4\x91\xd0\x04\x4e\xd4\x84\xf1\x3d\x44\xe1\x38\xe7\x2e\x95\x33\x3a\xab\x52\x0c\x19\xeb\xca\xb6\x07\x79\xa7\x62\x74\x3a\xbd\x70\x1a\x27\x69\x6a\xa4\x32\x74\x42\x86\x94\x92\x56\x08\xc2\x96\xe4\xc7\x45\x9a\xf4\xa1\xf0\x06\xc0\xac\x2c\x4e\xce\xcf\xe0\x75\x38\xec\x98\x40\xbf\xdf\xf7\x79\x4f\xeb\x4c\x95\xb2\x7e\x21\x16\x52\x59\xd0\x14\x9e\xfa\x78\x93\xa2\x55\x5e\x18\x22\x1f\xde\x04\x2b\x85\x1b\x43\xe2\x01\x9f\xb4\x40\x01\xf0\x94\x74\xcd\x9d\x28\x4a\xa2\xfb\x2b\xe5\xa5\xf7\x53\xad\x2f\x3c\x92\xfc\x9c\xbf\xc3\xd1\xd1\x2c\x4d\xe8\x01\x99\xa8\x21\x80\xc8\xa4\x31\xd4\x7a\xdf\x4e\x6f\x29\xa1\x8e\x3f\x28\x7d\xab\x16\xcd\xce\x73\x09\x83\xc7\x70\xb5\x77\x12\xb9\xef\x6a\xaf\x07\x57\x7b\xe7\x46\x8f\xb8\x6c\x4d\x8d\xae\x42\x1d\xda\xd5\xde\x63\x1c\x19\x91\x61\x76\xb5\x47\xc3\x7e\xce\xf5\x86\x2f\xd0\x8c\xf0\x07\x9c\x7c\xcb\x83\xd5\xaf\xa3\x46\xf8\xd6\x97\x26\xd2\x7b\x52\xc1\xa4\xa7\xbe\x2d\x44\x59\xbf\x78\x21\xca\xba\xf3\x69\x43\x67\x6f\xde\x16\xe8\xc4\xcd\xa3\xa4\xc1\xe8\xcf\xbf\x58\xad\x8e\xaf\xf6\x9a\xf5\xf7\x74\x21\xb9\xd2\x62\x72\xb5\x07\x53\xb3\x1e\x5f\xed\xf1\xbc\xf1\x7d\x5c\xe4\xf1\xd5\x1e\xcd\x44\xaf\x8d\x76\x7a\x50\x0d\x8f\xaf\xf6\xb8\x80\xa1\xf7\xa8\x67\xb0\xec\x91\xc1\xf4\x6d\x33\xc3\xd5\xde\xcf\x84\x93\xa3\xa3\x90\xc2\x08\x97\xbf\xff\xb9\x38\x58\xbd\x56\xee\xaf\xab\xcb\xee\x43\x2e\xac\xbb\x34\x42\x59\x9e\xff\x52\x16\x8b\xd3\xb8\xde\x97\x63\x7e\x5f\xfa\xdd\xb0\x0c\x58\xfa\xd9\x53\xc3\xd2\xcf\x4b\xb4\xe7\x26\x9a\x6b\x7e\x0f\x1b\x46\x9d\xe7\x3b\x36\x05\xdb\x64\xcf\xc5\x38\x4d\x8d\x1f\xd2\x01\xa1\x35\x86\x8b\x04\x88\xc5\x83\x7c\xe3\x72\x4c\xc6\x5b\xa8\xea\x69\x1c\xfc\xdb\x70\xc9\x00\x54\x2a\x43\x93\x73\xb2\xaa\x19\xd5\x67\x42\xb2\x04\x7c\xdc\x40\xd4\x51\x9a\x6b\x62\x24\xd6\x4e\xaa\x15\xbc\xf6\x85\x3f\x71\x44\x92\x1d\xe1\x9e\x05\x3f\x0c\x2b\xba\x34\xc5\xd2\xb1\xa6\xdb\x3d\xc5\x0c\xad\xa0\x0a\x59\x56\x7d\xb7\x9c\x3c\x02\x71\x6c\x08\xf8\xd0\xda\xe7\xf7\xc7\x55\x21\x48\x75\x88\x8c\x6b\x7f\xea\x6f\xde\x7d\xf3\xee\x96\x17\xa9\x3e\x29\xe4\x63\xfc\x11\x0f\x01\xd4\x41\x91\x88\xfa\x40\xcd\x9a\x88\xc9\x46\x9b\x2f\xc4\xdd\x73\x54\x23\x37\x3e\x86\x2f\xbf\xf8\x5f\x5f\xfd\x63\x49\x43\x2f\x18\x31\x7b\x86\x2a\xc4\x82\x36\x04\xc3\x7c\xc7\xd9\xa0\x61\x42\x52\x29\x13\x4e\x24\xa3\xa6\x4d\x1d\xe4\x6e\x28\xe8\x56\x70\xe1\x56\x50\x97\x55\x49\x70\x79\xca\x05\x80\xd6\x09\x95\x62\x8f\x8c\xa4\x85\x83\xc9\x5a\x80\xe7\x13\x78\xf4\x85\xff\x47\x52\x78\xea\x39\xf1\xfd\xe6\xee\x6d\xb2\x60\xc9\xd2\xc2\xd7\xbd\x99\xf5\x48\x0b\x84\x2a\x3d\x64\xc2\xf1\x2e\xa6\x41\xaf\x09\x63\x30\x60\x5e\x13\x62\xbd\xde\x75\x88\x5b\x17\x0f\xdc\x2c\x16\x58\x48\x25\x8b\xaa\x38\x86\x87\x4b\x9a\x78\x91\xb6\x21\x36\x7d\xe3\xc6\x10\x10\x24\xba\x46\x46\x14\x05\x97\xfa\xca\x0c\x95\x93\x43\xc9\x45\x03\x35\x69\xb3\xbb\xef\x3b\xc6\x1a\x94\x1a\x8a\x5c\x9e\x42\x72\xa8\x45\xec\xe7\xde\xce\x31\xac\x81\x43\xf6\x26\x6d\x0b\xa8\x49\x89\x9e\x1b\xbc\x03\x03\x78\x57\x7a\x53\xb5\x95\x86\x28\x50\x28\xa9\x46\xb6\xa9\xe7\x0a\xff\x40\x0e\x7d\xbc\x1d\x63\xc8\x9e\x63\x3b\x17\x94\x92\xb3\x94\xb1\xdf\x24\x9a\x9a\xc2\x8c\xc4\x8f\xb7\xd1\x67\x63\x9a\x64\x39\x16\x98\x9f\x0a\x8b\x91\x1b\xdb\xd5\x5c\xf1\xb6\x96\xfa\xf4\xc1\x3b\x63\xd5\x47\x0f\xbf\x58\x89\xf2\xba\xdd\xf2\x14\x5e\x5d\xe6\xf5\xe6\xa4\xff\x1f\xd1\xff\xed\xed\x41\xf8\xe3\x61\xff\xeb\xff\xd7\x3b\x7e\xfb\x59\xeb\xe7\xdb\xe5\xd5\x59\x8b\x8d\xf9\x25\xe4\x13\x94\x48\xb4\x13\x23\x46\x7b\xb1\x4a\xe5\xd2\x54\xd8\x83\xa7\x22\xb7\xd8\x83\x1f\x15\xab\x86\x7b\x02\x6d\x75\x86\x9a\xb4\xf2\x1e\xcd\xba\x2c\x53\x1e\x9a\xf0\x92\x56\xb7\x09\xcb\x5d\xe5\xbe\x6e\x06\xa4\x18\x6a\x68\x49\x1a\xd5\xa2\x33\x5f\xf2\x3c\xd4\x3a\x09\x16\x6e\x92\xea\xe2\xa8\xfe\xee\x4d\xeb\x17\x42\x4d\xa0\x11\x6b\xde\x28\x9d\xa5\x74\xeb\x48\x36\x89\xd4\x68\x6b\x9b\x7b\x48\x20\x97\xd7\x08\x27\x8d\xdf\x48\xc2\x72\x80\xa9\x60\x5b\xdc\x0c\xa4\x33\xc2\x07\x7d\xa3\x5d\xd9\x44\x94\x86\x55\x0e\x07\xe4\xae\x26\x5c\x48\x36\x27\x5d\xc3\x9d\x46\x62\x20\x73\xfe\xa7\x65\xc8\x95\x4e\xb5\x1a\xe6\x32\xb8\x00\x45\xa9\x8d\x13\xca\xc5\x83\x17\x23\xbc\xf3\xff\x9a\x95\x4f\x3b\x48\x0b\x07\x99\xb2\x8f\x1e\x7d\xf1\xe5\x45\x35\xc8\x74\x21\xa4\x7a\x5a\xb8\xa3\xc3\xef\x0f\x7e\xad\x44\xce\x59\xde\x97\xa2\xc0\xa7\x85\x5b\xfe\xef\x02\x6d\xad\x16\x1f\x7d\xb5\x01\x17\x1d\xbc\xf1\xbc\xf2\xf6\xe0\x4d\x3f\xfc\xf5\x59\x7c\x75\xf8\xfd\xc1\x55\xb2\xf2\xfb\xe1\x67\x47\x5c\x23\x59\xb3\xdc\xdb\x37\xfd\x86\xfd\x92\xb7\x9f\x1d\x7e\xdf\xfa\x76\xb8\x88\x19\xa7\x4a\x17\xc9\x0b\xe8\x17\xa2\xec\x5f\xe3\x64\x09\x73\x2e\x35\x47\xe7\x07\xf2\x10\x2b\x44\xb9\xc8\xfb\x1e\xca\xd1\x0b\x51\xbe\xc6\x21\x1a\x54\xe9\x42\x22\xbf\x67\x06\x86\xfc\x87\x15\x9f\xb8\x02\x6b\x87\xa8\x13\xe9\x1d\x1f\x69\x5b\x65\x4e\x6f\x40\x2d\x9b\xd9\x8f\x6a\x45\xfd\xe2\xda\x49\xea\x7d\xee\x3c\x42\xe4\xef\x9f\x7c\xfc\x68\xe7\x71\x2a\xb9\xd4\xd3\x9a\x8e\x61\x9e\x3d\xf6\xa6\x2f\x8b\x1e\x36\xe7\xc6\x9a\xfc\xbc\x4a\xc9\x5f\x2b\x84\xb3\xc7\xf5\x91\x5f\xa9\xd2\xbc\xe2\x4b\xc6\x7e\xfc\xf1\xec\x31\xf9\xef\xff\x0a\xe2\xe6\x16\x21\xd3\x6a\xdf\xc1\xab\x97\xcf\xff\x0f\x07\x03\xb8\x45\xcf\x2b\xf4\x70\xee\x30\x97\xc2\x87\xc9\x82\x02\x86\x7f\xa1\xaf\x93\xe3\x99\x53\x51\xd6\xf1\x13\x16\x77\x5c\x61\x95\x97\x96\x4f\x0f\x80\xad\x4c\x58\x1d\x0d\xec\x33\xbe\x7c\x3a\x29\xe4\x83\xe3\xc1\x87\x5c\xb8\xe5\xe7\x30\x56\x02\x2d\xd5\x4a\x61\xca\x49\x73\xb2\x02\xdf\x03\x7f\x10\x21\xbf\x0a\x36\x2b\xcf\xb1\x03\x33\x84\x84\xda\xce\x64\x41\x6b\x38\xf5\x3b\x7d\xef\x9c\x34\xb7\xdf\x9d\x66\xf4\xf1\x4c\xce\x6c\xbe\x5e\x13\x7f\x9e\x2b\xe3\x9a\x76\x9d\xa7\xa2\x87\x21\xb6\x5a\x27\x47\xc7\xc2\xc2\x00\x51\x71\x38\xd7\x47\xff\x50\x05\xaa\xc3\x26\x10\x5b\x95\x7d\xa7\xfb\xd9\x62\xe4\xad\x81\xdc\x7a\xa8\xad\xf0\x5c\x67\x4e\xef\x6f\xeb\xa8\xde\x8e\x27\x8b\x60\x60\x9b\xcb\xcc\x6a\x1b\x64\xdb\x8d\x2d\x77\x4c\x66\xa2\xba\xec\x59\x84\xa0\x46\xf0\x33\xe6\x97\x44\xde\xe3\x54\x64\xc3\x69\xce\xe6\x4d\x47\xf6\xb6\x5f\xa3\x47\xf3\x05\x9a\x1b\xb9\x93\xf2\x5b\xc7\x98\xa9\xaf\x33\x39\x79\xff\x6c\x45\xa6\xd7\xce\x93\x70\xe8\x2f\xd5\x6b\xd2\x37\x2b\xeb\xdf\x19\x82\xab\xaa\xfc\xb7\x19\x63\x5b\x65\xe9\xa5\xc9\xd4\x21\x0f\xeb\xb4\xe1\x94\x7b\xfb\x5d\x35\xa8\x0d\xe5\x66\xf4\xe0\x03\xc1\xef\x7f\x3e\xf8\xff\x01\x00\x00\xff\xff\x3e\xcb\x2d\xc0\x3f\xed\x00\x00") +var _operatorsCoreosCom_catalogsourcesYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x7d\x79\x73\xdc\x36\xf6\xe0\xff\xfe\x14\xaf\xb4\x53\x25\x29\xe9\xa6\xec\x64\x2a\x3b\xd1\xe4\x28\x8d\x7c\xac\x2a\x3e\x54\x96\x92\xa9\x1d\xcb\xbb\x41\x93\xaf\xbb\x11\x91\x00\x03\x80\x92\x3a\xc7\x77\xff\xd5\x7b\x00\x48\xf6\x7d\xc8\x8e\xed\x1a\xf2\x8f\x44\x4d\xe2\x7c\xf7\x05\x58\x94\xf2\x27\x34\x56\x6a\x75\x0c\xa2\x94\x78\xe7\x50\xd1\x2f\x9b\x5c\xff\xc3\x26\x52\x1f\xdd\x3c\x7a\x70\x2d\x55\x76\x0c\xa7\x95\x75\xba\x78\x8d\x56\x57\x26\xc5\xc7\x38\x94\x4a\x3a\xa9\xd5\x83\x02\x9d\xc8\x84\x13\xc7\x0f\x00\x84\x52\xda\x09\x7a\x6d\xe9\x27\x40\xaa\x95\x33\x3a\xcf\xd1\xf4\x47\xa8\x92\xeb\x6a\x80\x83\x4a\xe6\x19\x1a\x1e\x3c\x4e\x7d\xf3\x30\xf9\x3a\x79\xf8\x00\x20\x35\xc8\xdd\x2f\x65\x81\xd6\x89\xa2\x3c\x06\x55\xe5\xf9\x03\x00\x25\x0a\x3c\x86\x54\x38\x91\xeb\x91\x5f\x84\x4d\x74\x89\x46\x38\x6d\x6c\x92\x6a\x83\x9a\xfe\x57\x3c\xb0\x25\xa6\x34\xfb\xc8\xe8\xaa\x3c\x86\x85\x6d\xfc\x78\x71\x91\xc2\xe1\x48\x1b\x19\x7f\x03\xf4\x41\xe7\x05\xff\x1d\x36\xef\xa7\xbd\xe0\x69\xf9\x7d\x2e\xad\xfb\x61\xfe\xdb\x73\x69\x1d\x7f\x2f\xf3\xca\x88\x7c\x76\xc1\xfc\xc9\x8e\xb5\x71\x2f\x9b\xe9\x69\xba\x54\x38\x6b\x52\xff\x59\xaa\x51\x95\x0b\x33\xd3\xf7\x01\x80\x4d\x75\x89\xc7\xc0\x5d\x4b\x91\x62\xf6\x00\x20\x80\x30\x0c\xd5\x07\x91\x65\x8c\x16\x91\x9f\x1b\xa9\x1c\x9a\x53\x9d\x57\x85\xaa\xa7\xa2\x36\x19\xda\xd4\xc8\xd2\x31\xe8\x2f\xc7\x08\xa5\x41\xe7\x26\x0c\x12\xd0\x43\x70\x63\x8c\x73\xd7\xbd\x00\x7e\xb1\x5a\x9d\x0b\x37\x3e\x86\x84\x20\x9c\x64\xd2\x96\xb9\x98\xd0\x6a\x5a\xad\x3c\x9a\x1e\xfb\x6f\xad\xf7\x6e\x42\x4b\xb7\xce\x48\x35\x5a\xb5\x14\x6a\xb7\xf9\x1a\x3c\x68\x2e\x27\xe5\xfc\x12\x66\x5e\x6e\x3a\x7f\x59\x0d\x72\x69\xc7\x68\x36\x5f\x44\xdd\x65\x6e\x0d\xe7\x0b\xbe\x2c\x59\x48\x6b\xd0\xc8\x50\xc9\x1c\x33\xcc\x4d\x70\x32\x9a\xdf\x63\x26\x5c\x7c\xe9\x1b\xdd\x3c\x12\x79\x39\x16\x8f\xc2\x4b\x9b\x8e\xb1\x10\x0d\x3d\xe8\x12\xd5\xc9\xf9\xd9\x4f\x5f\x5e\xcc\x7c\x80\x69\xe8\x4c\xd1\x39\x48\x0b\x02\x0c\x96\xda\x4a\xa7\xcd\x84\xa0\x75\x7a\xf1\x93\xed\xc1\xe9\xeb\xc7\xb6\x07\x42\x65\x35\xe3\x41\x29\xd2\x6b\x31\x42\x9b\xcc\xad\x55\x0f\x7e\xc1\xd4\xb5\x5e\x1b\xfc\xb5\x92\x06\xb3\xf6\x2a\x08\x3c\x11\x26\x33\xaf\x09\xfe\xad\x57\xa5\xa1\x39\x5d\x8b\x91\xfd\xd3\x92\x72\x53\xef\x67\x76\xb8\x4f\x60\xf0\xed\x20\x23\x01\x87\x96\x49\x20\xf0\x18\x66\x01\x76\x9e\x34\xa4\xa5\xfd\x1b\xb4\xa8\xbc\xc8\xa3\xd7\x42\x85\x3d\x25\x70\x81\x86\x3a\x12\xbb\x57\x79\x46\x92\xf0\x06\x8d\x03\x83\xa9\x1e\x29\xf9\x5b\x3d\x9a\x05\xa7\x79\x9a\x5c\x38\xb4\x0e\x98\x6b\x95\xc8\xe1\x46\xe4\x15\x7a\x50\x16\x62\x02\x06\x69\x5c\xa8\x54\x6b\x04\x6e\x62\x13\x78\xa1\x0d\x82\x54\x43\x7d\x0c\x63\xe7\x4a\x7b\x7c\x74\x34\x92\x2e\xca\xf0\x54\x17\x45\xa5\xa4\x9b\x1c\xb1\x38\x96\x83\x8a\xc4\xe1\x51\x86\x37\x98\x1f\x59\x39\xea\x0b\x93\x8e\xa5\xc3\xd4\x55\x06\x8f\x44\x29\xfb\xbc\x58\xc5\x72\x3c\x29\xb2\xff\x65\x82\xd4\xb7\xfb\x33\xe0\x5b\x48\xcc\x10\xc5\xe6\x4a\x58\x93\xf0\xf4\x54\xe4\xbb\xfb\xbd\x34\x20\xa5\x57\x04\x95\xd7\x4f\x2e\x2e\x21\x2e\xc0\x83\xdd\x43\xb8\x69\x6a\x1b\x60\x13\xa0\xa4\x1a\xa2\xf1\x2d\x87\x46\x17\x3c\x0a\xaa\xac\xd4\x52\x39\xcf\xd2\xb9\x44\xe5\xc0\x56\x83\x42\x3a\xcb\x34\x87\xd6\x11\x1e\x12\x38\x65\x15\x06\x03\x84\xaa\x24\x4e\xca\x12\x38\x53\x70\x2a\x0a\xcc\x4f\x85\xc5\xf7\x0e\x6a\x82\xa8\xed\x13\xf8\x36\x07\x76\x5b\x03\xcf\x77\x98\xe3\x31\x80\xa8\x21\x37\x6a\xbc\x8c\x29\xc1\x73\xe0\x22\x09\x0c\x2b\x78\x91\x1e\x91\x65\x06\xed\x82\x0f\x73\x0c\xe9\x1b\x7a\x3a\x19\x6b\x4b\xf8\x13\x0e\x5e\x3d\x7f\x01\xa9\x50\x50\x59\x24\xe6\x49\xb5\x52\x44\x10\x4e\x83\x20\x5d\xd6\xc7\x3b\x69\x99\x80\x0c\x8e\xa4\x75\x66\x92\xc0\x53\x6d\x0a\xe1\x8e\xe1\x9b\xf8\xaa\xcf\xc3\x69\x03\xb2\xfc\xee\xf8\x9b\x52\x1b\xf7\x1d\xbc\x52\xf9\x84\x06\xcd\xe0\x76\x8c\x0a\x2e\xea\xbd\xc1\xb7\xad\x1f\xcf\x4c\x99\x26\x70\x36\x52\xda\xc4\x96\x44\x55\x67\x85\x18\x21\x0c\x25\xe6\x4c\xd7\x16\x5d\x32\x8b\xc1\x95\x58\x04\x6f\x2e\x0d\xe5\xe8\x85\x28\xd7\x82\xe6\x34\xb6\xa4\xb9\x68\xfa\xb6\xf2\x6e\x3e\x3a\xcd\xa4\x4c\x5b\xa2\x3f\x45\x7a\x0d\x22\xcc\x52\x88\xb2\x6f\x99\x6d\x5a\x60\xda\x0c\x02\xa7\x71\x00\x82\x5f\xf3\xfa\x2c\x48\xae\x64\xdb\x6d\xb7\x77\xb6\x75\xdf\xc6\x0c\x59\x0b\xb4\x17\x8b\xb4\xc8\x06\x73\x8c\x4c\x99\x9e\xeb\xcc\x6f\x7b\xed\x2c\xcf\xda\xad\x01\xef\x4a\x6d\xd1\x42\x26\x87\x43\x34\x24\x77\xf4\x0d\x1a\x23\x33\xb4\x30\xd4\x86\xf1\x55\xea\x8c\x79\xb2\xc6\xdf\x94\xaa\x3d\xd7\xd9\xa6\x88\xa1\xa9\x59\x61\x78\x62\x0c\x64\xb8\x74\xbb\x0b\xb9\x1d\xd6\x30\x2f\x3d\x62\xc8\xe6\xff\x64\xf1\xd7\x19\x78\x9c\x84\xc6\x91\x52\x83\x45\x15\x44\xc7\xbe\xa5\xed\xef\xdb\x7a\xcc\x45\xcb\xdd\x60\xc9\x9b\x2c\x9b\x1e\xa5\x33\x3c\x59\xb3\xfc\xb9\x2d\x3c\xe6\x1f\x03\xb4\xdc\xbd\x5e\x2a\x6b\xf0\xac\xca\x59\xd4\x54\xf9\x34\x46\x97\xed\x63\xc3\xbd\x6c\xba\x1f\xdf\x0e\x87\x68\x0c\x66\x8f\x2b\xa2\xdf\x8b\x7a\x55\x41\x48\xf9\xd7\x4f\xee\x30\xad\x96\xf1\xd8\xd2\xad\x93\x51\x1c\xb6\x89\x06\x6e\x65\x9e\x87\xe9\x48\xa0\xc4\x0f\xb4\x5f\xb6\x63\x08\x3c\xd6\x0b\x69\x2b\x9c\xb4\xc3\x09\x83\xa3\x06\x18\xde\x91\xce\x66\x8f\x85\x29\x5e\x0e\x25\x66\x30\x98\x04\x75\x4d\xc2\xb3\x07\x83\xca\x81\x74\xac\xcb\xd3\xb1\xd6\x16\x41\x78\xb8\xf3\xb8\x37\x52\xb3\xa5\x04\x5a\x21\xc9\x9f\x82\x14\x72\x60\x9c\xd6\xf0\x09\xaf\xbc\xe9\x26\x2d\x14\x24\xf1\x6b\x58\x45\x72\xa4\x61\x6e\xa5\x1b\xf3\x8f\x11\x99\xdc\x64\x85\xd9\xaa\xa0\x41\x6f\x51\x8e\xc6\xce\xf6\x40\x26\x98\x30\x76\x51\xa4\xe3\xd6\xb0\x05\xa2\xb3\x20\xf2\x3c\x2e\xa1\x4d\x12\x5e\x6f\x16\x64\xa2\xc0\x41\x6d\xc3\x04\x7b\xa3\x57\xeb\xd5\x59\xac\x2d\x04\x57\x0f\xd0\xa5\xc9\x61\x0f\x52\x5d\x94\x95\x23\x98\xd0\x1a\x07\x13\x90\x8e\xec\x6c\x6f\x2f\x19\x5d\x8d\xfc\x4e\x30\x0f\x13\x47\x63\xd5\x6b\x26\x12\x0e\xe4\x23\xaa\x11\xec\xf9\xcd\xed\x45\xfb\x93\x86\x93\x7e\x13\xbc\xbf\x42\xb8\x74\x1c\x4c\xe0\x54\x1b\x83\xb6\xd4\x8a\x7b\xf2\x97\x27\xcd\xda\xfe\x59\x77\x3a\xb0\x87\x0d\x30\xc7\x72\x34\x8e\xb0\x14\x06\xf9\xdd\x34\x0e\x56\xf1\x48\xc3\x27\xc2\x98\x29\x5f\x72\xd1\x23\x1d\x16\x6b\xb8\x64\x8e\xb4\x4f\x14\x60\x51\xba\x49\x8b\x26\x5a\xd8\x73\x68\x8a\x1a\x06\x8c\x60\x66\x57\xeb\xf7\x27\x8b\x32\x97\xa9\x74\x81\x42\xe0\x21\x1c\x30\x89\x48\x47\xa2\x0c\x94\xee\xeb\xf2\x30\x81\x13\x0e\x5f\x6c\x30\x81\xd2\xf5\xf8\x61\x20\x9a\xd4\xea\x66\xac\xb5\x7b\xdb\x50\xa8\xf8\x67\xb9\x4d\x37\xff\xf4\xc3\xfa\x51\xa5\xb3\x56\xde\xe2\xe6\x1e\x26\x6b\x9b\x6e\x2a\xde\x62\xeb\xb8\x86\x4d\x5a\xcf\xa2\xda\x93\xb4\xc5\x1c\x53\x72\x49\x09\xf6\x3d\x10\xd6\xea\x54\x92\x95\xdf\x10\xed\x34\xa5\xfb\x9d\xac\x87\x3d\x6c\x0b\x7f\xd8\x7a\xff\xf4\xcc\x32\xde\xa6\xfd\xe6\xa0\x91\x4b\x32\x7e\x87\x33\x50\x99\x12\x58\x83\x09\x7f\xdd\xb7\x90\x8b\x01\xe6\x76\x33\x20\xc0\x56\x5c\xdb\x3c\x1b\xf2\xef\xd2\x0d\x2d\xdd\x48\xf0\x31\x6b\xc4\x93\xd0\x26\xdf\x4c\x48\x65\x83\xff\xdc\x03\x01\xd7\x38\xf1\xae\x36\x79\xf0\x31\x70\xc1\x8d\x0d\x7a\x75\x43\xc4\x71\x8d\x13\x6e\x14\xfc\xee\x2d\x96\xbb\x35\x71\xf8\x67\x1b\x36\x6d\x9e\x3e\x2d\x74\xcb\x1e\x71\xd3\x5b\x74\xdb\x9e\x7e\xfd\x73\x8d\x2b\x2d\xaf\x45\xcf\x9c\x49\xc2\x34\xc9\xf8\x60\x24\xb1\xfe\x8a\x38\x16\x65\x99\x4b\x64\x7f\x7e\xcb\x69\x56\x7a\x01\xab\x9e\x08\xbd\x7b\xed\xeb\x75\x1d\xd0\xf0\x04\xb9\x6f\x3d\xf1\x11\xa7\x8f\x65\xe9\xfd\x5b\x8b\xcc\xb8\x31\xf2\xf3\x93\xc8\x65\x13\x6a\xb3\xac\x67\xcf\x54\x0f\x5e\x6a\x47\xff\x7b\x42\x9e\xb0\xed\xc1\x63\x8d\xf6\xa5\x76\xfc\x33\x81\x67\xce\xd3\xfa\xf3\x0d\x25\xdb\x3b\x00\x90\x5f\xef\xbd\xc0\x73\xa2\xbc\x4c\xa1\xed\xb7\x63\x46\x36\x81\x33\x6f\xb6\xd4\x8c\x2b\x2d\x9c\x29\x32\x0e\x03\x18\x38\x8a\xc7\x6d\xc3\x10\x45\x65\x39\xc8\xa3\xb4\xea\xb3\x0d\xb0\x70\x0c\x0f\x3d\x1a\xa7\x0d\xbf\x15\xc3\x2d\x1f\xea\x19\xc7\x1a\x9e\x2f\xed\x3c\x16\x37\x6c\xd2\x49\x35\xca\x6b\xe3\xad\x07\xb7\x63\x99\x8e\xbd\xd5\x3d\x40\x1f\x1a\x2c\x0d\x92\xc2\x12\x96\x44\x15\xbd\x19\xa1\x21\x63\x57\xc6\xf1\x7c\x60\x32\x17\x29\x66\x90\xb1\x69\xe9\x83\x6c\xc2\xe1\x48\xa6\x50\xa0\x19\x21\x94\xa4\x49\x76\xc3\xfe\x76\x82\xdd\x3f\x5b\x8b\xf7\xf6\x84\x5b\x91\x1b\xab\xc8\xa7\x64\xeb\xfe\x45\xda\x91\xed\xea\x4e\x3b\x76\xda\x71\xe6\xe9\xb4\x63\xfd\x74\xda\x71\xcd\xd3\x69\xc7\x4e\x3b\xbe\x77\xed\xe8\x7d\xd9\x1d\x9c\xe7\x7f\xfb\x10\xc7\xac\xb7\xcc\x9a\x36\xa6\xe9\xa6\xdd\x66\xd2\x37\x17\x41\xe0\x5c\xb2\xab\x2d\x7d\x92\xc4\x08\x35\x42\x78\xd4\x7f\xf4\xf0\xe1\x36\x4e\x75\x40\xe4\x46\x3d\x86\x21\xd3\x23\x95\xfb\xf2\x8b\x95\x3d\x96\xc5\xdf\xde\x41\xd4\x34\xd0\x78\x1d\xc8\x9b\xb2\x1d\x96\x04\x3e\x59\x3a\x29\xed\xa0\x40\x07\xc2\x4d\x85\x8a\x64\x81\xbd\x3a\x55\xc0\x04\x1f\xb2\x94\x31\x02\x9b\x81\x56\x21\x8e\x47\xc0\x4f\x76\x5b\x41\x8a\xc2\xa7\xd4\x06\x58\xaf\x42\x17\x34\xab\x54\x2e\xb2\x0b\x2d\x01\x23\x54\xe0\x00\x93\x51\x02\x59\xc5\xdd\x84\x0a\x69\xd3\x43\xbf\x5a\x3b\xb1\x0e\x0b\x8e\xe4\x6a\xc3\xff\xa3\x65\x3b\x33\xa1\xc6\x78\x83\xca\x55\x22\xcf\x27\x80\x37\x32\x75\xf5\xfe\x38\x6b\x2b\x9d\x0f\xb6\x6f\x16\x22\xdc\xc8\x74\xd8\xdc\x5c\xe8\xcf\x51\xb0\x5d\xd3\x67\x1b\x6d\x3f\x37\xf6\x26\x3c\x39\xa3\x0b\xfd\x4e\x92\xa5\xc6\xaa\xa3\x71\x7d\x0c\x9c\xff\x64\xe2\x7a\xf5\x7a\x7d\xc8\x15\xb6\x96\x64\x5b\x48\xaf\x59\xb3\xb4\xca\x73\x22\x0c\x1f\x85\x9d\xdf\xc0\x82\xe8\xa8\xdf\xd2\x14\x31\xfb\xc0\xbb\x0f\x31\x9f\xbc\x7c\x4c\x50\xa1\x36\x97\xba\xd4\xb9\x1e\x4d\xda\x90\xf6\xe5\x45\xb2\x28\x63\x70\x5c\x80\xad\x06\xc1\x68\x20\xf2\x7b\x39\x83\x9a\x2e\xf2\xd7\x45\xfe\x3a\xdf\x66\xee\xe9\x7c\x9b\xfa\xe9\x7c\x9b\x35\x4f\xe7\xdb\x74\xbe\x4d\x17\xf9\x83\x4e\x3b\xae\x80\x49\xa7\x1d\xa1\xd3\x8e\x4b\xf7\xd5\x69\xc7\x95\xe0\xe9\xb4\x63\xa7\x1d\x17\x3d\xa5\xce\xee\x51\xe8\x58\xea\x6c\x45\x9d\xa3\x8f\xfa\xa4\xba\x9f\xeb\x54\xb8\x50\x97\x4f\x5d\x42\x9c\xcf\x8a\xc2\x07\xa2\x7a\xf0\x9b\x56\xe8\x8b\xd7\x08\x37\x1c\x4e\xd2\x6e\x8c\x86\x9a\x1f\xd8\xc3\x95\x85\x4d\x5d\x9d\x64\x57\x27\xf9\xd1\xd7\x49\x8e\x85\xf5\x78\xf5\x42\x69\x79\xd9\x64\x8b\x21\x2f\xd1\x14\x9f\x68\xd5\x24\x91\x4b\x40\x37\x9f\x78\x6a\x50\xea\x77\x9e\x85\x7c\x01\x66\xe7\xd3\xfb\x0d\xf6\x32\x6f\x4a\x64\x19\x66\x50\xa2\xe9\x7b\x12\xd1\x30\x94\x2a\x5b\xb0\xd7\x08\x9f\x0f\x5a\xfd\x38\xbd\x8f\x0f\x58\x02\x39\xbd\x90\x1d\x62\xae\xed\xc0\xf1\x94\x84\xff\x28\x0a\x22\xb7\xb5\xea\xfb\xe0\x42\x90\xf7\x87\x0d\xed\xfa\xed\x4d\x73\x36\xa8\x63\x48\x78\x77\xbf\x92\xcd\xf2\x5f\x2b\x34\x13\x3e\xff\xd1\x18\xac\xf5\xd9\xba\x90\x23\x93\x16\x52\x61\xbd\xa6\xd8\xd6\xb5\xdc\xd2\x8d\xda\xcd\x4f\xd9\x3d\x12\x0d\xb3\x70\x99\x1d\xca\xfb\xa4\xd1\x07\xf7\x30\x5b\xe8\x84\x2f\xc8\x02\x34\xd1\xff\xad\xd6\xb3\xab\xe9\xb6\x93\xe1\xb6\x90\x28\x3e\x62\xe7\x1c\x76\x77\xd0\x61\x67\x27\x1d\x76\x72\xd4\x61\x57\x67\x1d\xee\xe1\xb0\xc3\x6e\x4e\x3b\xcc\x92\x02\x61\x28\x58\x59\xef\xc7\x7f\x87\xfb\xb8\xa8\x70\x0f\x3f\x1e\x66\xb7\x5a\x93\xa9\x79\x5f\x4e\x3d\xd3\xfa\x94\x5f\xff\x57\x03\x6b\x37\x9f\x1e\x66\x41\x15\x9c\x61\xc9\x0e\xed\x27\xe2\xe1\xff\x25\xee\x36\xdc\xcb\xe5\x86\xdd\xdd\x6e\xd8\x9d\x32\x58\xd5\x3d\xe7\x74\xea\x7d\x15\xa6\x1f\xc5\xab\x08\x3e\x83\x3b\x84\xdf\x49\x13\x30\x5e\xfe\x84\x52\x48\x63\xc9\xbe\x0b\x31\x93\xf6\xb7\xe0\x9d\xb7\x87\x29\xfc\x11\x62\x12\xd5\x37\x22\x27\xdd\xe3\xeb\x38\x82\x5f\x44\xa3\xcf\xaa\xe9\x1e\xdc\x8e\xc9\xdb\x24\x29\x55\x9f\x77\xde\xbb\xc6\xc9\x5e\x6f\x8e\x90\xf6\xce\xd4\x9e\xd7\x51\x73\xa4\x53\x2b\x34\xad\xf2\x09\xec\xf1\xb7\xbd\x77\xad\xd9\x77\x50\x5c\xed\x2b\x54\x76\xd5\x0b\x3b\x50\x89\x8a\xd7\xba\xbc\x7b\x63\xd3\x6b\x11\x9f\xd8\x88\xb3\xd8\x46\xc1\x70\xa9\x45\x4b\xb9\xd4\x55\x23\x4c\x63\xfc\x3e\x8b\xce\x6f\xa5\xc2\x4d\x17\xf1\xcc\x79\x18\xcc\x2b\xa9\xf9\x92\xa6\x80\x78\xad\xd0\xb2\x61\x87\x75\x88\xa8\xd5\x99\xdb\x26\xbe\x1c\xa4\xd1\x76\x2a\x9b\x2d\x10\x69\x7a\xb0\x8d\x58\xa0\x50\x16\xf6\x62\xec\x69\xdf\x36\x2d\xf6\x92\xe6\x74\x5f\x3d\xe2\xc1\xef\x7f\x1e\x4e\x9d\xe8\x6b\x06\xec\x2c\xed\xce\xd2\xee\x2c\xed\x2d\x7a\x75\x96\xf6\xf2\xa7\xb3\xb4\xb7\x78\x3a\x4b\xbb\xb3\xb4\x57\x4d\xdc\x59\xda\x9d\xa5\xbd\x7e\xf2\xdd\x2c\xed\x5d\xeb\x84\xda\x76\x6f\x48\xce\xf9\x8b\xcc\x84\x93\x69\x53\x43\x14\x5b\xf9\xbf\xde\xad\xbd\xdd\xb6\xa5\x17\x5b\xdb\x6d\x8b\x7c\xce\xb7\x48\xd6\x98\xd6\xb5\xf1\x3d\xd7\x73\xb5\xd5\xfd\x71\xd5\x42\xed\x40\x1b\xad\x84\xc2\x8e\xc4\x71\x19\x53\xe1\xe1\xe2\xbf\x01\x36\x79\xf2\x0c\x0e\x62\xc6\xe5\x90\x80\xaf\xb4\x9b\xfe\xa8\x9c\xec\x37\x2d\xea\x1c\x0c\xa7\x17\xa7\xce\xdb\x4c\xa5\x25\xea\xac\x7b\x9d\x29\x6e\xf0\x49\x22\x04\xcd\xd4\x1a\xa4\x0d\xd7\x1b\x72\xb5\x84\xa9\x94\xa2\x51\xb5\x8a\xe9\x63\x2f\x73\xfc\x7d\x7c\x81\xf2\xbc\xb1\xc4\xeb\x61\x8b\xa9\x81\x52\x2b\xdf\x29\x9c\xbf\x02\x31\x94\xf2\x6b\x15\x32\xa2\xf4\x26\x66\x7d\x23\x51\xf2\x8e\x64\x3d\x7b\x02\x4f\x98\x0e\xdb\x03\x4b\xcb\xf0\x11\x79\xae\x6f\xb7\x11\x49\x7f\xd5\xb1\xa8\xdb\xad\x8f\x45\xcd\xe4\xef\xba\x53\x51\xff\x25\xa7\xa2\xf8\xa3\x67\xa1\x77\x7e\x3c\x0a\xfe\x1d\x2e\x20\x34\xc8\xa0\x2a\xaa\xdc\xc9\xb2\xa9\x95\xb2\x7e\xaa\xdc\x5b\x99\xc3\x50\x79\x32\x4d\x97\x34\x9b\x48\xc7\xb3\xf4\xc9\xe3\x71\x6d\x95\x65\xa6\x0d\xd5\x1d\x22\xcf\xc3\x99\xa2\x68\x92\xfa\x12\x16\xf9\xa1\x2b\x13\x1e\x87\x3b\x5b\x6b\x6f\x86\x85\xcc\x01\xc9\xc2\x9c\x10\x4a\x52\x6d\x85\x10\xf5\x4e\xd1\x0d\x46\xd5\x3b\x92\x37\xa8\x1a\x49\x7a\x60\x0f\x0f\xa3\x0e\x7f\xa7\x12\xfe\xbd\x48\xe8\x6f\x5a\x92\xf4\xbb\x4d\x64\x34\x6f\xa8\x96\xd2\x0d\xf8\x1a\x19\xfd\x21\x4b\x30\xb6\xc9\xf3\x6f\x17\x63\xd8\x21\xbf\xff\x17\xe6\xf6\x3f\x9d\x93\x65\x1f\x38\xc2\xf8\x21\x6a\xeb\x3f\xfa\xa8\x62\x57\x5c\xdf\x3c\xf7\x2d\xae\x7f\xef\x91\xc3\x0f\x5b\x63\xff\x09\x44\x0b\x3f\x64\x8d\x7d\x17\x21\x5c\x89\x94\x8f\xad\xf4\x7d\xfa\xd9\x29\x22\xd8\x45\x03\x77\xd6\xc2\x5b\x2a\x9c\xfb\x46\x01\xb7\xa4\x88\x1d\xf3\xec\x5d\x8e\xfd\xaf\xc9\xb1\x77\x16\xef\x86\x4f\x67\xf1\x2e\x05\x4a\x67\xf1\x42\x67\xf1\xae\xdb\x5e\x67\xf1\xae\x04\x4f\x67\xf1\xae\x44\x4a\x67\xf1\x76\x16\x2f\x7c\x6a\x16\xef\x2e\xb7\x74\x75\xb9\xee\x7b\xe5\xba\xb7\x95\x16\x5b\xc9\x88\x2d\xe9\x60\xeb\xdc\x76\x97\xd7\xfe\x58\xf2\xda\x1b\x1f\xf8\x57\x4e\xde\xf7\xd0\x7f\x1b\x57\xcb\x4e\xfe\x8b\x1b\x2d\x33\x28\x2b\x17\xce\x53\x77\xa7\xff\xdf\xc5\xe9\xff\x29\xc8\x77\x57\x00\x6c\x74\x05\xc0\x32\x98\x75\xf7\x00\x74\xf7\x00\xbc\xe3\x24\x74\x77\x0f\x40\x77\x0f\x40\x77\x0f\x40\x7c\xba\xd3\x49\xd0\x9d\x4e\xda\xe8\xe9\x4e\x27\x2d\x7f\xba\xd3\x49\x1f\x6d\xf4\x15\xba\xd3\x49\x1f\x77\x24\x16\xba\xd3\x49\x5d\x74\x76\x43\x44\x7d\x82\xa7\x93\xba\x7b\x00\x3e\xd6\x1a\x05\xe8\x2c\xed\xce\xd2\xee\x2c\xed\xce\xd2\x5e\xfd\x74\x96\xf6\x16\x4f\x67\x69\x77\x96\xf6\xaa\x89\x3b\x4b\xbb\xb3\xb4\xd7\x4f\xde\xdd\x03\xf0\x09\xd5\x46\x40\x77\x0f\x40\x57\x2f\xd1\xdd\x03\xf0\xdf\x7b\x0f\xc0\x54\xee\xfe\xc3\x5d\x06\xb0\xfd\x32\xba\x1b\x01\xba\x1b\x01\xba\x1b\x01\xba\x1b\x01\xe2\xd3\xdd\x08\xe0\x9f\x8f\x29\xd6\xd8\x9d\x8f\x5a\x0a\x94\xee\x7c\x14\x74\xe7\xa3\xd6\x6d\xef\x13\x88\x1b\x76\xe7\xa3\x3e\xc2\x58\x61\x77\x3e\xaa\x8b\x0b\xce\x22\xe7\x13\x39\x1f\xd5\xdd\x08\xf0\x31\x66\xdb\x3b\x8b\x77\xc3\xa7\xb3\x78\x97\x02\xa5\xb3\x78\xa1\xb3\x78\xd7\x6d\xaf\xb3\x78\x57\x82\xa7\xb3\x78\x57\x22\xa5\xb3\x78\x3b\x8b\x17\x3e\x35\x8b\xb7\xbb\x11\xa0\xbb\x11\xa0\xbb\x11\xe0\x53\xcc\x70\xaf\xc5\x74\x81\x85\x36\x93\x4b\x61\x46\xb8\x34\xab\x3d\x85\xce\xbd\x17\xad\x1e\x24\x21\x87\x72\x54\x99\x60\x80\xff\xed\xd9\xab\x17\x4f\x5e\x3c\x3f\x7b\x71\x76\x19\xe0\x35\xd4\xde\xc5\x1d\xbd\x3e\x3f\x85\x54\x38\x91\xeb\x11\x9c\xeb\x2c\x28\x5d\x6f\xfd\xeb\xa1\x0b\x0b\x81\x5c\x16\xd2\xd5\xbd\x2c\x9a\x1b\x34\xbd\x00\x37\x4e\x7e\x57\xca\xc9\x02\x7d\xea\x56\x38\x47\xac\x49\x72\xa0\x40\x74\x7c\xce\xbd\x10\xd7\x48\x80\x82\x51\x25\x8c\x50\x0e\x23\x2a\xa4\xf3\x9d\x32\x0d\x56\x07\xf3\x41\x06\x1f\x83\xd6\x61\x31\x58\x0a\xe7\x31\x33\x3c\x16\x37\xfe\x40\xf5\x50\x13\xcc\x89\x28\x0a\x9d\xc9\xa1\x4c\xbd\x91\x07\x85\xc8\xea\xac\x5f\xd0\x15\x68\x6a\x02\x6a\x36\x70\x0c\xfd\x39\xf0\xa0\xba\x91\x46\x2b\xd6\x60\x37\xc2\x48\x31\xc8\xc3\xae\x06\x3e\x20\xc0\xe3\x36\x0b\x54\x30\x98\x90\x9f\xe3\x47\x0a\xd0\x0a\x27\xdf\x57\xf4\xbb\x52\x1e\xd0\x5e\xf8\x35\x2c\x48\x2d\xe5\x10\xa4\xdb\x27\xe2\xb7\xe4\xc4\x50\x4f\x83\x59\x95\xc6\x4d\x6b\x57\x1a\xe9\x15\xac\xa8\x71\xe7\x77\x44\x8c\x52\x54\x44\xcb\xc4\xdb\xd6\xca\x41\x8e\x3d\xe2\x60\xd9\x6e\x3b\x40\x82\x03\xf7\x60\x2e\xbb\x41\xc2\x30\x51\x8e\x17\x9e\x88\xc4\xc6\x9a\x8f\xad\x0b\xcf\xb2\x19\x0e\x45\x95\x7b\x2a\xf7\x60\x66\x54\x4d\x74\x45\x5c\x9d\xe1\x1d\xc8\x42\x8c\xfc\x31\x7a\x01\x43\x99\x63\x3f\xa6\xc3\x53\x91\x8e\xb1\x07\x19\x92\x9a\x90\x0a\x41\xc0\x48\xeb\x8c\xb4\x85\xd1\x77\xb2\xe0\xd1\x02\x69\xd5\xf0\x19\x4c\x20\xd3\xd5\x20\xaf\x11\x26\x7f\xab\x99\xbc\x14\xe9\x35\xcd\xc5\x03\x83\x70\x70\xe4\x8a\xf2\x88\x7f\x85\xff\x86\x16\x36\xf9\xc5\x6a\x15\xa5\x4e\x6b\x99\xc9\x0c\xfc\xa5\x85\x01\x5a\xd7\xc7\xe1\x50\x1b\xf7\x4f\x82\x56\xa5\x98\xf0\x94\xae\xb7\x1e\x91\x59\x59\xf4\xea\x4a\x69\xa6\xc9\x29\x0e\xd1\x66\x01\xb3\xb5\xc8\x20\xd9\x5b\xc2\xcc\x25\x31\x8d\x51\xc7\xf0\xff\x0e\xae\x3e\xff\xa3\x7f\xf8\xfd\xc1\xc1\x9b\x87\xfd\xaf\xdf\x7e\x7e\x70\x95\xf0\x1f\x9f\x1d\x7e\x7f\xf8\x47\xfc\xf1\xf9\xe1\xe1\xc1\xc1\x9b\x1f\x5e\x3c\xbb\x3c\x7f\xf2\x56\x1e\xfe\xf1\x46\x55\xc5\xb5\xff\xf5\xc7\xc1\x1b\x7c\xf2\x76\xc3\x41\x0e\x0f\xbf\xff\xdb\x92\x05\x09\x35\x79\x35\x5c\xae\x57\xfa\x1b\x96\xaf\xf4\x37\xd1\x6a\x77\xfd\xeb\x6a\x80\x46\xa1\x43\xdb\x97\xca\xf5\xb5\xe9\xfb\x0e\xc7\xe0\x4c\x85\x0b\xbb\x91\xf0\x5e\x17\xf3\x9b\x12\x91\x2f\x5b\x1d\x66\xe2\x1b\xe1\xd2\x87\xe0\x7e\xd0\x94\xb5\xac\x23\x15\xc9\x37\x1b\xb8\x46\xf5\x24\x70\xb1\xa0\x27\x6b\x98\xd0\x62\xdf\x7a\x5d\x64\x67\xc7\x99\x29\x69\xf1\x32\x90\xc7\x5c\xb2\x85\x0d\x2c\xd2\xed\xec\xcf\xb5\xf8\x28\x8d\xd4\x46\xba\xc9\x69\x2e\xac\x7d\x29\x0a\xdc\x08\xba\x67\xc3\x46\xaf\xf7\x88\xd9\x48\x1c\x07\xfd\xe3\x6d\xad\x38\x2e\x4b\x0e\x52\x99\xad\xf6\x11\x42\xb1\x4d\xcd\x33\x91\xfb\xb4\x81\xdf\xd0\xe8\x70\x67\x87\x41\xaf\x76\xe3\xe7\xd5\xc0\x5b\xb1\x57\x8b\x69\xc5\x7b\xd5\xca\xe1\x9d\x3b\x65\xbd\xb9\x99\xc2\xbd\x58\xd4\x15\x52\xa1\x68\xd9\x7c\x67\xcb\x10\x7e\xce\x71\x24\xd2\xc9\xcf\xb4\xfc\x9f\x0d\xd2\x42\xc8\xac\xf8\xd9\xdb\xcd\xa7\x5e\x1e\x5f\x70\x51\xc1\x7e\xb8\x84\xc7\x02\x4a\xbe\x63\x47\xaa\x5f\xbc\x0d\x52\x9b\x57\x86\x4b\xd5\x4a\x9d\x25\x04\xb9\x64\x66\xed\x2c\x93\xea\x8f\xb5\xde\x7b\xf3\xd9\xdb\xb9\x96\xc1\x9b\x22\x7f\x8d\x34\x68\x9b\x3e\x4d\xc5\x02\x93\x04\x5b\xdc\x20\x9c\x64\x85\x64\x07\x0e\x0e\xce\x2f\x4e\x0e\xa7\x76\x42\xaa\xd7\xab\x98\x4c\xa3\x55\xfb\xce\x2b\xbb\x31\xda\xc6\x69\x63\xb5\xc1\x35\x13\x9e\x5b\xb8\x68\x22\xce\x49\x00\x63\x3f\x6e\x80\xf5\xe4\x17\x27\xf0\xf3\x40\x58\xcc\xa5\x42\x0f\xbb\xd2\xc8\x1b\x99\xe3\x88\x66\x6c\x85\xa0\xe1\xb4\x32\x06\x95\xcb\x27\xf1\x32\x97\xc5\x58\x91\x96\x04\xfa\x34\xb9\x45\xca\xaa\x0d\xc8\x1a\x59\xd4\xda\x62\x96\xc0\x05\xf7\x98\xf8\x68\x43\x68\xc7\xb8\x61\xbd\xb8\x0c\xb9\x60\xd0\xd2\xc0\x52\xf9\x5e\x32\xf3\x2a\x0e\x8d\x21\xef\x85\x0b\xbc\x2a\xcb\xb6\x6c\x9e\xa1\xa9\xd5\x32\xab\x26\x1b\xad\xaa\x94\x4d\x82\x50\x05\x17\x00\xb3\x00\xf0\xcb\xf7\x3c\x6d\x54\x38\x5d\xaf\x97\xb5\xdf\x19\x2d\x6e\x58\xb9\xca\x20\xe9\x7f\xc6\x2e\xf3\x5c\x1b\x34\x33\xf6\x4b\x7b\xfa\x5e\xbd\xec\x42\xc8\x40\x6a\x36\xce\x69\x70\x50\xc9\x9c\x1d\x3a\x59\xef\xcf\x7a\x42\x16\xf5\x74\x7a\x08\xba\x2c\xc2\x4d\x4a\x55\x59\x6a\xe3\x1a\x33\x3f\x6d\xf3\x46\x30\xc3\x17\x00\x80\x96\x55\x1a\x2c\xc9\xd5\x0f\x92\xd6\x22\xa4\x63\xa1\x48\xfd\xd3\x46\x5f\x68\xae\x7a\xf3\xa5\x93\x34\xad\x18\xe8\xca\x31\x8d\x05\x5e\x1d\xea\x4a\x65\x40\x42\xe5\x18\xc6\xce\x95\xf6\xf8\xe8\xa8\xd1\x47\x89\xd4\x47\x99\x4e\xed\x51\xaa\x55\x8a\xa5\xb3\x47\x91\x9b\x8e\x4a\x9d\xf5\xe3\x8f\xbe\x88\x4c\x72\xb4\xbf\x4c\xc7\x6f\xa0\x09\x03\xe4\x8f\xc1\xe3\x6a\x49\x2b\x54\xd5\x8a\x7b\x63\xfa\xab\x3b\x53\x83\x06\x8c\x0b\x1b\x39\x9d\xf3\x2d\x4b\x2b\x92\x29\xd3\xbe\x64\xd3\xbe\xbe\xed\xa8\x36\x4c\x5b\xd2\x6d\xdf\xb6\x87\x5e\x2d\xb4\x57\xf9\xd8\x6b\xbc\xea\xb9\x9b\x8e\x58\xb6\x91\xb9\xd7\x2c\x94\x0d\x00\xe7\x04\xdf\x75\x44\xb6\xb9\xff\x42\xe2\x4a\x4d\x80\xe8\xd9\x85\x8b\xaf\x5a\x37\x41\x39\xc3\xa5\x98\xdf\xd4\x81\xb1\x1e\x0e\x87\x98\xba\xef\x02\x3f\xd7\x21\x32\x66\xee\x18\xcc\xfa\x26\xfe\xf5\xdd\x72\xe7\x70\xa3\xb8\xd3\x66\x99\x03\xbf\xa4\xd5\x11\x81\x29\x08\x3d\xe1\x0e\x33\x2a\xdb\x43\xc0\x8f\xc5\x8e\x1c\xc7\x56\x83\xfb\xeb\xe3\x28\xc1\xde\x21\x99\xd1\x6a\x6c\x83\x84\x6b\x49\xdb\xe0\x1a\x37\x41\x3c\x84\x97\x3a\xd4\x24\x63\x0f\xce\xf9\x9a\xa8\xe6\x0d\x2b\xb2\x97\xda\x57\x27\x2f\xb5\x8b\xda\x70\x5b\x1b\x32\x59\x9b\x3b\x99\x02\xc8\x0f\x4d\xa6\xc4\xef\x6c\x2a\x53\xd2\x50\xf0\x54\x20\x6c\x15\x64\xae\x71\xd2\x44\xd7\x43\x1e\x86\x83\x57\xbd\x86\x4a\xa2\xf1\xe9\x83\xe5\xff\x0c\xe5\x85\xba\x18\x48\xe5\x27\xf3\x43\x47\x54\xf0\xe8\x11\xa0\x2a\xe3\x9f\x3c\xcd\xbb\x00\xd7\x66\x09\x99\x29\x98\xbd\xda\x22\xfd\x52\x07\x74\x17\x27\x5e\x5a\xd9\x96\x27\xbf\x56\x22\x4f\xe0\xb1\x97\x8a\xbc\xfb\xf0\x2a\x34\x9a\x0b\x40\xdf\xca\x3c\x4b\x85\xc9\x58\x1b\x78\x1e\x05\xab\x3d\xf6\x44\x6d\x70\x44\x6e\x6f\x70\xe4\xaf\x41\x83\x52\x18\x27\xd3\x2a\x17\xac\xb6\x70\xa4\xcd\xe4\x9d\x40\xb4\x21\x9a\x0b\x4c\xb5\xca\xd6\xc4\x04\x97\x48\xd7\xd0\xb7\x0d\x63\x36\xa3\xd0\xc8\x50\xed\x2b\x0b\x9c\x25\xd2\x83\x69\xe7\x46\x0f\x23\x57\xd7\x2c\xd6\xf3\x56\xcd\xad\x64\xb3\xac\xed\x15\x4b\x7f\x5c\xe0\xb0\x25\x1e\x6b\xae\x48\xe0\x5f\x93\xa8\xaf\x7a\x20\x5d\x0c\x84\xb1\xdf\x1c\xe6\x0c\x24\x1b\x80\xdd\x30\xd4\x50\x1b\xbc\x41\x03\x07\x99\xe6\x3e\x5c\x11\x7f\x98\xc0\x7f\xc8\xc4\xf7\x31\x88\x91\x2f\xde\x0e\x24\x1e\x2d\x11\xc7\xf7\x16\x72\x40\xf0\x21\x1c\xf8\x42\x7a\x59\x14\x98\x49\xe1\x30\x9f\x1c\xfa\x5a\x8a\x58\x8a\xbf\x09\xea\x36\x39\x7f\xd1\x3a\x77\xf1\xd5\xdf\x57\xb4\xe4\xc5\x6e\x81\xd9\x9f\x62\x90\xab\x81\x8c\xb7\x32\x67\x50\x58\xeb\x20\xbd\x22\xbf\xd6\xca\xa7\xb5\x6c\xbf\x28\x66\x6a\x04\xff\x42\x74\x20\xc0\xe0\x88\xa9\xdc\x53\xee\x3d\x68\x5c\xa6\x8b\xcf\x8f\xac\xd1\x68\xab\x53\xf4\x7d\x20\xf3\xff\xab\xbf\x67\xc2\x89\x25\x0d\x3c\xce\x27\xe5\xa2\xe0\xc0\x3a\x45\xd9\x0c\xbe\x0c\x59\x1b\x04\x68\xc3\xf4\x3b\x8d\xc0\xa6\xfe\xa2\x9e\xd3\x2e\x35\x87\xd4\x7c\xca\x36\xe2\xbb\x6f\x70\x24\xad\x33\x93\x56\x64\xd3\x87\xde\x9c\x06\xa9\xac\x13\xca\x49\x96\x6c\x10\x5b\xf6\x43\x6c\x90\xcc\xef\x04\x5e\x91\xaf\xc5\x31\xac\x5b\x52\xd3\xde\xc0\xbe\x9c\x94\x08\xdf\xb6\x7e\x3c\x33\x65\xca\xb4\x16\x04\x8d\x27\x2e\x91\x65\x06\xed\xbc\x7c\x58\x44\x3e\x2b\xf7\x1f\xdd\xfc\xb5\x20\xd8\x3f\x8f\x01\x81\x90\x26\xb2\x56\x8e\xc8\xca\x8c\x07\xb7\x62\x98\x77\xca\xda\xf4\x5e\x01\x77\x94\xbf\x31\x37\x15\xb5\x12\x90\x2e\xda\xfd\xa9\x56\xb6\x2a\x62\xfd\x15\x79\x3d\x25\xaa\x0c\x55\x3a\xe1\x4a\xff\xfc\x06\x4d\x02\x3f\x5a\xc2\x14\xfc\x1f\x39\x22\xbf\x2f\x4c\xda\x36\x95\xe2\x01\x92\x99\x15\x48\xdb\xba\xfe\x92\x2b\xca\xc8\x06\x8a\x23\x60\x36\xd3\xde\xc6\xac\xf6\xec\x22\x2a\x1f\x6b\xbd\xac\x0f\x98\xc5\x20\x68\x84\x8b\x67\x78\xda\xd2\x48\xfb\xb3\x44\xa5\xb6\x32\x1e\x7c\xa9\xe5\xe8\xd4\x21\x35\x3d\xf4\x47\xc8\xfc\xb8\xd3\x8e\x30\x97\x47\xcc\x6c\x86\x1d\xb7\x4a\x79\xe0\x63\x3b\x4a\x13\xc5\xcc\x43\x3f\xd4\xa2\x7e\x2e\xde\x29\x3c\xbd\xe4\x46\xa6\x1b\xa1\xae\x31\x83\x1c\xef\x64\xaa\x47\x46\x94\x63\x99\xf2\x39\x29\x62\x53\x0e\x92\xf1\xe9\x28\x51\x60\xb2\xbf\x94\xd0\x96\x89\xf1\xb2\x1a\xe4\xd2\x8e\x71\xa1\x2d\xb3\x92\x46\x2d\xa6\x06\xdd\x42\x09\x32\x45\xa2\x17\xbe\x5d\xa3\x94\x63\x71\x49\x18\x20\x14\x4f\x79\x9a\x63\xc6\x23\x10\xa7\x29\x31\x52\xcc\x50\x34\x77\xd7\xd6\x30\x4c\xe0\xcc\xc5\xc0\x34\xf5\xb8\x46\x2c\x3d\xa5\x71\x96\xd3\x16\x1c\x53\xb1\x52\xa5\xe8\x4f\x7b\xf9\x53\x73\x88\x31\xcc\xe8\x8c\x44\x6f\x06\x21\x07\xf8\x23\x6e\x50\xb9\xc5\x46\xcd\x6a\xbf\x6b\x85\xcf\xb5\x1a\x8c\xb5\x4c\x59\x0f\xc9\x46\x16\x45\x9d\x48\x7f\x13\x28\xf9\xcb\xb6\x18\xf4\x87\xf3\x2e\x7c\x95\xc8\x7a\x59\xf3\xe3\x54\xf3\x90\x7b\xb4\x30\xd6\xb7\x61\xa4\x59\xa6\x0d\x11\x9b\x88\xdb\x4c\xda\x94\x38\x1d\x33\x38\xd5\xca\xc6\x13\x7a\x42\xf9\x43\x77\x37\x22\xf7\xa4\x10\x07\x2e\x75\xce\xf9\x8d\xac\x8a\xee\x84\x2f\xa4\xc3\x62\x80\x7c\xb3\xae\x8d\x4b\x59\xa2\xe6\xd6\xa8\xd8\x75\x5a\x30\xea\x87\x73\x9d\xe7\xab\xb5\xd8\x4a\xbf\x74\x13\xaf\x34\x02\x60\xe3\x5b\xcd\xcf\x22\xc4\x42\x2c\x8e\x68\xba\xc9\x20\x31\x69\x90\xa9\x5b\x03\x76\x80\xee\x16\x51\x41\x3a\xc6\xf4\xda\x36\xe9\x60\xbe\xe3\x7a\x06\x6b\x21\xfe\x34\x2d\xb1\x6a\x7b\x8a\xb0\xc2\x8e\x86\x45\xf4\x69\x33\x85\xb7\xed\x98\xd5\x02\x75\x43\x2a\xfa\x46\xc8\x5c\x0c\x72\x7f\x32\xb5\xfe\xd5\x6b\xaf\x43\x46\x7d\x5e\x56\x79\x1e\x92\x48\x9c\x80\x75\x46\x0c\x87\x32\xe5\x8c\xb7\x34\x3e\xea\x1b\x14\xdb\xc2\x2d\xac\xbf\x77\x7d\x01\x47\x58\x27\x5c\x35\x87\xa3\x15\x08\x5e\x85\x58\xf2\x43\xe4\xd2\x00\xd1\xcc\x6d\xc5\x53\xce\x0a\x2d\x03\xbd\xb3\x35\x15\xff\x4e\xe0\xa5\x76\xe1\xb2\xf1\x17\x68\x49\xed\x32\x80\x5e\xa3\xb0\x5a\xb5\xa4\x2b\x5b\xbf\x46\x8e\xa4\x12\x79\xd8\x54\x3b\xbe\x57\xfb\x1e\x82\x43\xca\x85\x1c\x19\xe1\x6a\xa1\xd8\xac\x3b\x68\x97\xa0\x17\x7d\x24\x34\x81\x13\x35\x61\x7c\x0f\x51\x38\x4e\x9f\x4b\xe5\x8c\xce\xaa\x14\x43\xf2\xb9\xb2\xed\x41\xde\xa9\x18\x9d\x4e\x2f\x9c\xc6\x49\x9a\x72\xa7\x0c\x9d\x90\x21\xa5\xa4\x15\x82\xb0\x25\xf9\x71\x91\x26\x7d\x28\xbc\x01\x30\x2b\x8b\x93\xf3\x33\x78\x1d\xce\x2d\x26\xd0\xef\xf7\x7d\xde\xd3\x3a\x53\xa5\xac\x5f\x88\x85\x54\x16\x34\x85\xa7\x3e\xde\xa4\x68\x55\x0a\x86\xc8\x87\x37\xc1\x4a\xe1\xc6\x90\x78\xc0\x27\x2d\x50\x00\x3c\x25\x5d\x73\x27\x8a\x92\xe8\xfe\x4a\x79\xe9\xfd\x54\xeb\x0b\x8f\x24\x3f\xe7\xef\x70\x74\x34\x4b\x13\x7a\x40\x26\x6a\x08\x20\x32\x69\x0c\xb5\xde\xb7\xd3\x5b\x4a\xa8\xe3\x0f\x4a\xdf\xaa\x45\xb3\xf3\x5c\xc2\xe0\x31\x5c\xed\x9d\x44\xee\xbb\xda\xeb\xc1\xd5\xde\xb9\xd1\x23\xae\x40\x53\xa3\xab\x50\x52\x76\xb5\xf7\x18\x47\x46\x64\x98\x5d\xed\xd1\xb0\x9f\x73\xe9\xe0\x0b\x34\x23\xfc\x01\x27\xdf\xf2\x60\xf5\xeb\xa8\x11\xbe\xf5\x55\x86\xf4\x9e\x54\x30\xe9\xa9\x6f\x0b\x51\xd6\x2f\x5e\x88\xb2\xee\x7c\xda\xd0\xd9\x9b\xb7\x05\x3a\x71\xf3\x28\x69\x30\xfa\xf3\x2f\x56\xab\xe3\xab\xbd\x66\xfd\x3d\x5d\x48\x2e\x9a\x98\x5c\xed\xc1\xd4\xac\xc7\x57\x7b\x3c\x6f\x7c\x1f\x17\x79\x7c\xb5\x47\x33\xd1\x6b\xa3\x9d\x1e\x54\xc3\xe3\xab\x3d\xae\x45\xe8\x3d\xea\x19\x2c\x7b\x64\x30\x7d\xdb\xcc\x70\xb5\xf7\x33\xe1\xe4\xe8\x28\xa4\x30\xc2\x3d\xee\x7f\x2e\x0e\x56\xaf\x95\xfb\xeb\x4a\xac\xfb\x90\x0b\xeb\x2e\x8d\x50\x96\xe7\xbf\x94\xc5\xe2\x34\xae\xf7\xe5\x98\xdf\x97\x7e\x37\x2c\x03\x96\x7e\xf6\xd4\xb0\xf4\xf3\x12\xed\xb9\x89\xe6\x9a\xdf\xc3\x86\x51\xe7\xf9\x8e\x4d\xed\x35\xd9\x73\x31\x4e\x53\xe3\x87\x74\x40\x68\x8d\xe1\x4e\x00\x62\xf1\x20\xdf\xb8\xb2\x92\xf1\x16\x0a\x74\x1a\x07\xff\x36\xdc\x17\x00\x95\xca\xd0\xe4\x9c\xac\x6a\x46\xf5\x99\x90\x2c\x01\x1f\x37\x10\x75\x94\xe6\x9a\x18\x89\xb5\x93\x6a\x05\xaf\x7d\x0d\x4f\x1c\x91\x64\x47\xb8\x32\xc1\x0f\xc3\x8a\x2e\x4d\xb1\x74\xac\xe9\x76\x4f\x31\x43\x2b\xa8\x42\x96\x55\xdf\x2d\x27\x8f\x40\x1c\x1b\x02\x3e\xb4\xf6\xf9\xfd\x71\x55\x08\x52\x1d\x22\xe3\x32\x9e\xfa\x9b\x77\xdf\xbc\xbb\xe5\x45\xaa\x4f\x0a\xf9\x18\x7f\xc4\x43\x00\x75\x50\x24\xa2\x3e\x1b\xb3\x26\x62\xb2\xd1\xe6\x0b\x71\xf7\x1c\xd5\xc8\x8d\x8f\xe1\xcb\x2f\xfe\xf7\x57\xff\x58\xd2\xd0\x0b\x46\xcc\x9e\xa1\x0a\xb1\xa0\x0d\xc1\x30\xdf\x71\x36\x68\x98\x90\x54\xca\x84\x13\xc9\xa8\x69\x53\x07\xb9\x1b\x0a\xba\x15\x5c\x83\x15\xd4\x65\x55\x12\x5c\x9e\x72\x2d\x9f\x75\x42\xa5\xd8\x23\x23\x69\xe1\x60\xb2\x16\xe0\xf9\x04\x1e\x7d\xe1\xff\xbd\x13\x9e\x7a\x4e\x7c\xbf\xb9\x7b\x9b\x2c\x58\xb2\xb4\xf0\x75\x6f\x66\x3d\xd2\x02\xa1\x4a\x0f\x99\x70\xbc\x8b\x69\xd0\x6b\xc2\x18\x0c\x98\xd7\x84\x58\xaf\x77\x1d\xe2\xd6\xc5\x03\x37\x8b\x05\x16\x52\xc9\xa2\x2a\x8e\xe1\xe1\x92\x26\x5e\xa4\x6d\x88\x4d\xdf\xb8\x31\x04\x04\x89\xae\x91\x11\x45\xc1\x55\xbb\x32\x43\xe5\xe4\x50\x72\xd1\x40\x4d\xda\xec\xee\xfb\x8e\xb1\x06\xa5\x86\x22\x97\xa7\x90\x1c\x6a\x11\xfb\xb9\xb7\x73\x0c\x6b\xe0\x90\xbd\x49\xdb\x02\x6a\x52\xa2\xe7\x06\xef\xc0\x00\xde\x95\xde\x54\x6d\xa5\x21\x0a\x14\x4a\xaa\x91\x6d\xea\xb9\xc2\xbf\x75\x43\x1f\x6f\xc7\x18\xb2\xe7\xd8\xce\x05\xa5\xe4\x2c\x65\xec\x37\x89\xa6\x3c\x30\x23\xf1\xe3\x6d\xf4\xd9\x98\x26\x59\x8e\x05\xe6\xa7\xc2\x62\xe4\xc6\x76\x35\x57\xbc\x78\xa5\x3e\x48\xf0\xce\x58\xf5\xd1\xc3\x2f\x56\xa2\xbc\x6e\xb7\x3c\x85\x57\x97\x79\xbd\x39\xe9\xff\x47\xf4\x7f\x7b\x7b\x10\xfe\x78\xd8\xff\xfa\xff\xf7\x8e\xdf\x7e\xd6\xfa\xf9\x76\x79\x75\xd6\x62\x63\x7e\x09\xf9\x04\x25\x12\xed\xc4\x88\xd1\x5e\xac\x52\xb9\x34\x15\xf6\xe0\xa9\xc8\x2d\xf6\xe0\x47\xc5\xaa\xe1\x9e\x40\x5b\x9d\xa1\x26\xad\xbc\x47\xb3\x2e\xcb\x94\x87\x26\xbc\xa4\xd5\x6d\xc2\x72\x57\xb9\xaf\x9b\x01\x29\x86\x1a\x5a\x92\x46\xb5\xe8\xcc\x57\x2f\x0f\xb5\x4e\x82\x85\x9b\xa4\xba\x38\xaa\xbf\x7b\xd3\xfa\x85\x50\x13\x68\xc4\x9a\x37\x4a\x67\x29\xdd\x3a\x92\x4d\x22\x35\xda\xda\xe6\x4a\x11\xc8\xe5\x35\xc2\x49\xe3\x37\x92\xb0\x1c\x60\x2a\xd8\x16\x37\x03\xe9\x8c\xf0\x41\xdf\x68\x57\x36\x11\xa5\x61\x95\xc3\x01\xb9\xab\x09\x17\x92\xcd\x49\xd7\x70\x3d\x91\x18\xc8\x9c\xff\x95\x18\x72\xa5\x53\xad\x86\xb9\x0c\x2e\x40\x51\x6a\xe3\x84\x72\xf1\x0c\xc5\x08\xef\xfc\x3f\x4c\xe5\xd3\x0e\xd2\xc2\x41\xa6\xec\xa3\x47\x5f\x7c\x79\x51\x0d\x32\x5d\x08\xa9\x9e\x16\xee\xe8\xf0\xfb\x83\x5f\x2b\x91\x73\x96\xf7\xa5\x28\xf0\x69\xe1\x96\xff\x13\x3f\x5b\xab\xc5\x47\x5f\x6d\xc0\x45\x07\x6f\x3c\xaf\xbc\x3d\x78\xd3\x0f\x7f\x7d\x16\x5f\x1d\x7e\x7f\x70\x95\xac\xfc\x7e\xf8\xd9\x11\xd7\x48\xd6\x2c\xf7\xf6\x4d\xbf\x61\xbf\xe4\xed\x67\x87\xdf\xb7\xbe\x1d\x2e\x62\xc6\xa9\xd2\x45\xf2\x02\xfa\x85\x28\xfb\xd7\x38\x59\xc2\x9c\x4b\xcd\xd1\xf9\x81\x3c\xc4\x0a\x51\x2e\xf2\xbe\x87\x72\xf4\x42\x94\xaf\x71\x88\x06\x55\xba\x90\xc8\xef\x99\x81\x21\xff\x61\xc5\x27\xae\xc0\xda\x21\xea\x44\x7a\xc7\x47\xda\x56\x99\xd3\x1b\x50\xcb\x66\xf6\xa3\x5a\x51\xbf\xb8\x76\x92\x7a\x9f\x3b\x8f\x10\xf9\xfb\x27\x1f\x3f\xda\x79\x9c\x4a\x2e\xf5\xb4\xa6\x63\x98\x67\x8f\xbd\xe9\xcb\xa2\x87\xcd\xb9\xb1\x26\x3f\xaf\x52\xf2\xd7\x0a\xe1\xec\x71\x7d\x7a\x57\xaa\x34\xaf\xf8\xbe\xb0\x1f\x7f\x3c\x7b\x4c\xfe\xfb\xbf\x82\xb8\xb9\x45\xc8\xb4\xda\x77\xf0\xea\xe5\xf3\xff\xcb\xc1\x00\x6e\xd1\xf3\x0a\x3d\x1c\x21\xcc\xa5\xf0\x61\xb2\xa0\x80\xe1\x5f\xe8\xeb\xe4\x78\xe6\x54\x94\x75\xfc\x84\xc5\x1d\x57\x58\xe5\xa5\xe5\x83\x00\x60\x2b\x13\x56\x47\x03\xfb\x8c\x2f\x1f\x34\x0a\xf9\xe0\x78\x86\x21\x17\x6e\xf9\x91\x8a\x95\x40\x4b\xb5\x52\x98\x72\xd2\x9c\xac\xc0\xf7\xc0\x1f\x44\xc8\xaf\x82\xcd\xca\x73\xec\xc0\x0c\x21\xa1\xb6\x33\x59\xd0\x1a\x4e\xfd\x4e\xdf\x3b\x27\xcd\xed\x77\xa7\x19\x7d\x3c\x93\x33\x9b\xaf\xd7\xc4\x9f\xe7\xca\xb8\xa6\x5d\xe7\xa9\xe8\x61\x88\xad\xd6\xc9\xd1\xb1\xb0\x30\x40\x54\x1c\xce\xf5\xd1\x3f\x54\x81\xea\xb0\x09\xc4\x56\x65\xdf\xe9\x7e\xb6\x18\x79\x6b\x20\xb7\x1e\x6a\x2b\x3c\xd7\x99\x83\xf8\xdb\x3a\xaa\xb7\xe3\xc9\x22\x18\xd8\xe6\x5e\xb2\xda\x06\xd9\x76\x63\xcb\x1d\x93\x99\xa8\x2e\x7b\x16\x21\xa8\x11\xfc\x8c\xf9\x25\x91\xf7\x38\x15\xd9\x70\x9a\xb3\x79\xd3\x91\xbd\xed\xd7\xe8\xd1\x7c\x81\xe6\x46\xee\xa4\xfc\xd6\x31\x66\xea\xeb\x4c\x4e\xde\x3f\x5b\x91\xe9\xb5\xf3\x24\x1c\xfa\x4b\xf5\x9a\xf4\xcd\xca\xfa\x77\x86\xe0\xaa\x2a\xff\x6d\xc6\xd8\x56\x59\x7a\x69\x32\x75\xc8\xc3\x3a\x6d\x38\xe5\xde\x7e\x57\x0d\x6a\x43\xb9\x19\x3d\xf8\x40\xf0\xfb\x9f\x0f\xfe\x27\x00\x00\xff\xff\x32\x7b\xb9\xcf\x0a\xed\x00\x00") func operatorsCoreosCom_catalogsourcesYamlBytes() ([]byte, error) { return bindataRead( diff --git a/vendor/github.com/operator-framework/api/pkg/operators/v1alpha1/catalogsource_types.go b/vendor/github.com/operator-framework/api/pkg/operators/v1alpha1/catalogsource_types.go index 53bd40ca40..40c432f347 100644 --- a/vendor/github.com/operator-framework/api/pkg/operators/v1alpha1/catalogsource_types.go +++ b/vendor/github.com/operator-framework/api/pkg/operators/v1alpha1/catalogsource_types.go @@ -152,7 +152,6 @@ type GrpcPodConfig struct { // will have the following modifications made to the container running the server: // - the $GOMEMLIMIT environment variable will be set to this value in bytes // - the memory request will be set to this value - // - the memory limit will be set to 200% of this value // // This field should be set if it's desired to reduce the footprint of a catalog server as much as possible, or if // a catalog being served is very large and needs more than the default allocation. If your index image has a file- From 1e3436563d4c161c4fc4f8eb30405c00b17bb7c0 Mon Sep 17 00:00:00 2001 From: Steve Kuznetsov Date: Mon, 21 Aug 2023 11:55:14 -0400 Subject: [PATCH 07/10] controller/registry: don't set memory limits for target (#3015) It's not allowed for core components to have memory limits, to ensure that that source of crash-looping pods does not occur to the core payload. Signed-off-by: Steve Kuznetsov Upstream-repository: operator-lifecycle-manager Upstream-commit: ff0baf43e041332c8d20540c8b0c7a22ca5e65bd --- .../pkg/controller/registry/reconciler/reconciler.go | 3 --- .../pkg/controller/registry/reconciler/reconciler_test.go | 6 ++---- .../pkg/controller/registry/reconciler/reconciler.go | 3 --- 3 files changed, 2 insertions(+), 10 deletions(-) diff --git a/staging/operator-lifecycle-manager/pkg/controller/registry/reconciler/reconciler.go b/staging/operator-lifecycle-manager/pkg/controller/registry/reconciler/reconciler.go index 88a421a713..4eb6a542f4 100644 --- a/staging/operator-lifecycle-manager/pkg/controller/registry/reconciler/reconciler.go +++ b/staging/operator-lifecycle-manager/pkg/controller/registry/reconciler/reconciler.go @@ -227,9 +227,6 @@ func Pod(source *operatorsv1alpha1.CatalogSource, name string, img string, saNam if pod.Spec.Containers[0].Resources.Limits == nil { pod.Spec.Containers[0].Resources.Limits = map[corev1.ResourceName]resource.Quantity{} } - double := *grpcPodConfig.MemoryTarget - double.Add(double.DeepCopy()) - pod.Spec.Containers[0].Resources.Limits[corev1.ResourceMemory] = double grpcPodConfig.MemoryTarget.Format = resource.BinarySI pod.Spec.Containers[0].Env = append(pod.Spec.Containers[0].Env, corev1.EnvVar{ diff --git a/staging/operator-lifecycle-manager/pkg/controller/registry/reconciler/reconciler_test.go b/staging/operator-lifecycle-manager/pkg/controller/registry/reconciler/reconciler_test.go index 7535107a60..fe2e256d7b 100644 --- a/staging/operator-lifecycle-manager/pkg/controller/registry/reconciler/reconciler_test.go +++ b/staging/operator-lifecycle-manager/pkg/controller/registry/reconciler/reconciler_test.go @@ -107,7 +107,7 @@ func TestPodMemoryTarget(t *testing.T) { ObjectMeta: metav1.ObjectMeta{ GenerateName: "test-", Namespace: "testns", - Labels: map[string]string{"olm.pod-spec-hash": "855b6c6cf6"}, + Labels: map[string]string{"olm.pod-spec-hash": "5c6bb6945f"}, Annotations: map[string]string{"cluster-autoscaler.kubernetes.io/safe-to-evict": "true"}, }, Spec: corev1.PodSpec{ @@ -150,9 +150,7 @@ func TestPodMemoryTarget(t *testing.T) { corev1.ResourceCPU: resource.MustParse("10m"), corev1.ResourceMemory: resource.MustParse("5Mi"), }, - Limits: corev1.ResourceList{ - corev1.ResourceMemory: resource.MustParse("10Mi"), - }, + Limits: corev1.ResourceList{}, }, SecurityContext: &corev1.SecurityContext{ ReadOnlyRootFilesystem: pointer.Bool(false), diff --git a/vendor/github.com/operator-framework/operator-lifecycle-manager/pkg/controller/registry/reconciler/reconciler.go b/vendor/github.com/operator-framework/operator-lifecycle-manager/pkg/controller/registry/reconciler/reconciler.go index 88a421a713..4eb6a542f4 100644 --- a/vendor/github.com/operator-framework/operator-lifecycle-manager/pkg/controller/registry/reconciler/reconciler.go +++ b/vendor/github.com/operator-framework/operator-lifecycle-manager/pkg/controller/registry/reconciler/reconciler.go @@ -227,9 +227,6 @@ func Pod(source *operatorsv1alpha1.CatalogSource, name string, img string, saNam if pod.Spec.Containers[0].Resources.Limits == nil { pod.Spec.Containers[0].Resources.Limits = map[corev1.ResourceName]resource.Quantity{} } - double := *grpcPodConfig.MemoryTarget - double.Add(double.DeepCopy()) - pod.Spec.Containers[0].Resources.Limits[corev1.ResourceMemory] = double grpcPodConfig.MemoryTarget.Format = resource.BinarySI pod.Spec.Containers[0].Env = append(pod.Spec.Containers[0].Env, corev1.EnvVar{ From 872e6f5a4b5168f0c76623c9f73edc1f56b07e43 Mon Sep 17 00:00:00 2001 From: Steve Kuznetsov Date: Mon, 21 Aug 2023 16:05:03 -0400 Subject: [PATCH 08/10] pkg/controller: use a metadata watch for CRDs (#3014) Using a full LIST+WATCH is an optimization, with trade-offs. Holding the state of the world for CRDs in memory when we rarely, if ever, actually need to access them is a bad use of that trade-off, especially when the sum total size of CRDs on even the most basic cluster is O(20MiB). Signed-off-by: Steve Kuznetsov Upstream-repository: operator-lifecycle-manager Upstream-commit: 12437b3dc94ae1756ac8c036261391214bf60cff --- staging/operator-lifecycle-manager/Makefile | 2 +- .../controller/operators/catalog/operator.go | 27 +- .../pkg/controller/operators/olm/operator.go | 22 +- .../controller/operators/olm/operator_test.go | 43 ++- .../controller/operators/olm/operatorgroup.go | 2 + .../operators/olm/plugins/operator_plugin.go | 4 +- .../controller/operators/olm/requirements.go | 3 +- .../customresourcedefinition.go | 28 +- .../pkg/lib/operatorlister/lister.go | 6 +- .../fake_apiextensions_v1lister.go | 34 +-- .../test/e2e/operator_groups_e2e_test.go | 2 +- .../controller/operators/catalog/operator.go | 27 +- .../pkg/controller/operators/olm/operator.go | 22 +- .../controller/operators/olm/operatorgroup.go | 2 + .../operators/olm/plugins/operator_plugin.go | 4 +- .../controller/operators/olm/requirements.go | 3 +- .../customresourcedefinition.go | 28 +- .../pkg/lib/operatorlister/lister.go | 6 +- .../apiextensions/interface.go | 54 ---- .../v1/customresourcedefinition.go | 89 ------- .../apiextensions/v1/interface.go | 45 ---- .../v1beta1/customresourcedefinition.go | 89 ------- .../apiextensions/v1beta1/interface.go | 45 ---- .../informers/externalversions/factory.go | 251 ------------------ .../informers/externalversions/generic.go | 67 ----- .../internalinterfaces/factory_interfaces.go | 40 --- .../v1/customresourcedefinition.go | 68 ----- .../apiextensions/v1/expansion_generated.go | 23 -- .../v1beta1/customresourcedefinition.go | 68 ----- .../v1beta1/expansion_generated.go | 23 -- vendor/modules.txt | 7 - 31 files changed, 181 insertions(+), 953 deletions(-) delete mode 100644 vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/interface.go delete mode 100644 vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/v1/customresourcedefinition.go delete mode 100644 vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/v1/interface.go delete mode 100644 vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/v1beta1/customresourcedefinition.go delete mode 100644 vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/v1beta1/interface.go delete mode 100644 vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/factory.go delete mode 100644 vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/generic.go delete mode 100644 vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/internalinterfaces/factory_interfaces.go delete mode 100644 vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1/customresourcedefinition.go delete mode 100644 vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1/expansion_generated.go delete mode 100644 vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1beta1/customresourcedefinition.go delete mode 100644 vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1beta1/expansion_generated.go diff --git a/staging/operator-lifecycle-manager/Makefile b/staging/operator-lifecycle-manager/Makefile index b96a246917..708bfcd3bd 100644 --- a/staging/operator-lifecycle-manager/Makefile +++ b/staging/operator-lifecycle-manager/Makefile @@ -64,7 +64,7 @@ ifeq (, $(wildcard $(KUBEBUILDER_ASSETS)/kube-apiserver)) endif cover.out: - go test $(MOD_FLAGS) -tags "json1" -v -race -coverprofile=cover.out -covermode=atomic \ + go test $(MOD_FLAGS) -tags "json1" -race -coverprofile=cover.out -covermode=atomic \ -coverpkg ./pkg/controller/... ./pkg/... coverage: cover.out 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 aa7eb9668b..8ad84dea86 100644 --- a/staging/operator-lifecycle-manager/pkg/controller/operators/catalog/operator.go +++ b/staging/operator-lifecycle-manager/pkg/controller/operators/catalog/operator.go @@ -20,7 +20,6 @@ import ( apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" apiextensionsv1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1" "k8s.io/apiextensions-apiserver/pkg/apiserver/validation" - extinf "k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions" apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" @@ -34,6 +33,9 @@ import ( "k8s.io/apimachinery/pkg/util/yaml" "k8s.io/client-go/dynamic" "k8s.io/client-go/informers" + "k8s.io/client-go/metadata" + "k8s.io/client-go/metadata/metadatainformer" + "k8s.io/client-go/metadata/metadatalister" "k8s.io/client-go/tools/cache" "k8s.io/client-go/tools/clientcmd" "k8s.io/client-go/tools/record" @@ -144,6 +146,11 @@ func NewOperator(ctx context.Context, kubeconfigPath string, clock utilclock.Clo return nil, err } + metadataClient, err := metadata.NewForConfig(config) + if err != nil { + return nil, err + } + // Create a new queueinformer-based operator. opClient, err := operatorclient.NewClientFromRestConfig(config) if err != nil { @@ -443,13 +450,23 @@ func NewOperator(ctx context.Context, kubeconfigPath string, clock utilclock.Clo return nil, err } - // Register CustomResourceDefinition QueueInformer - crdInformer := extinf.NewSharedInformerFactory(op.opClient.ApiextensionsInterface(), resyncPeriod()).Apiextensions().V1().CustomResourceDefinitions() - op.lister.APIExtensionsV1().RegisterCustomResourceDefinitionLister(crdInformer.Lister()) + // Register CustomResourceDefinition QueueInformer. Object metadata requests are used + // by this informer in order to reduce cached size. + gvr := apiextensionsv1.SchemeGroupVersion.WithResource("customresourcedefinitions") + crdInformer := metadatainformer.NewFilteredMetadataInformer( + metadataClient, + gvr, + metav1.NamespaceAll, + resyncPeriod(), + cache.Indexers{}, + nil, + ).Informer() + crdLister := metadatalister.New(crdInformer.GetIndexer(), gvr) + op.lister.APIExtensionsV1().RegisterCustomResourceDefinitionLister(crdLister) crdQueueInformer, err := queueinformer.NewQueueInformer( ctx, queueinformer.WithLogger(op.logger), - queueinformer.WithInformer(crdInformer.Informer()), + queueinformer.WithInformer(crdInformer), queueinformer.WithSyncer(queueinformer.LegacySyncHandler(op.syncObject).ToSyncerWithDelete(op.handleDeletion)), ) if err != nil { diff --git a/staging/operator-lifecycle-manager/pkg/controller/operators/olm/operator.go b/staging/operator-lifecycle-manager/pkg/controller/operators/olm/operator.go index c8aa9ea09a..114e8a6a37 100644 --- a/staging/operator-lifecycle-manager/pkg/controller/operators/olm/operator.go +++ b/staging/operator-lifecycle-manager/pkg/controller/operators/olm/operator.go @@ -13,7 +13,6 @@ import ( corev1 "k8s.io/api/core/v1" rbacv1 "k8s.io/api/rbac/v1" apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" - extinf "k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions" apierrors "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -541,14 +540,25 @@ func newOperatorWithConfig(ctx context.Context, config *operatorConfig) (*Operat return nil, err } - // Register CustomResourceDefinition QueueInformer - crdInformer := extinf.NewSharedInformerFactory(op.opClient.ApiextensionsInterface(), config.resyncPeriod()).Apiextensions().V1().CustomResourceDefinitions() + // Register CustomResourceDefinition QueueInformer. Object metadata requests are used + // by this informer in order to reduce cached size. + gvr := apiextensionsv1.SchemeGroupVersion.WithResource("customresourcedefinitions") + crdInformer := metadatainformer.NewFilteredMetadataInformer( + config.metadataClient, + gvr, + metav1.NamespaceAll, + config.resyncPeriod(), + cache.Indexers{}, + nil, + ).Informer() + crdLister := metadatalister.New(crdInformer.GetIndexer(), gvr) informersByNamespace[metav1.NamespaceAll].CRDInformer = crdInformer - op.lister.APIExtensionsV1().RegisterCustomResourceDefinitionLister(crdInformer.Lister()) + informersByNamespace[metav1.NamespaceAll].CRDLister = crdLister + op.lister.APIExtensionsV1().RegisterCustomResourceDefinitionLister(crdLister) crdQueueInformer, err := queueinformer.NewQueueInformer( ctx, queueinformer.WithLogger(op.logger), - queueinformer.WithInformer(crdInformer.Informer()), + queueinformer.WithInformer(crdInformer), queueinformer.WithSyncer(k8sSyncer), ) if err != nil { @@ -1183,7 +1193,7 @@ func (a *Operator) handleClusterServiceVersionDeletion(obj interface{}) { } for i, crdName := range desc.ConversionCRDs { - crd, err := a.lister.APIExtensionsV1().CustomResourceDefinitionLister().Get(crdName) + crd, err := a.opClient.ApiextensionsInterface().ApiextensionsV1().CustomResourceDefinitions().Get(context.TODO(), crdName, metav1.GetOptions{}) if err != nil { logger.Errorf("error getting CRD %v which was defined in CSVs spec.WebhookDefinition[%d]: %v\n", crdName, i, err) continue diff --git a/staging/operator-lifecycle-manager/pkg/controller/operators/olm/operator_test.go b/staging/operator-lifecycle-manager/pkg/controller/operators/olm/operator_test.go index 86e331c2aa..d4b0c0c3a4 100644 --- a/staging/operator-lifecycle-manager/pkg/controller/operators/olm/operator_test.go +++ b/staging/operator-lifecycle-manager/pkg/controller/operators/olm/operator_test.go @@ -298,13 +298,14 @@ func NewFakeOperator(ctx context.Context, options ...fakeOperatorOption) (*Opera *config.actionLog = append(*config.actionLog, action) return false, nil, nil })) - config.operatorClient = operatorclient.NewClient(k8sClientFake, apiextensionsfake.NewSimpleClientset(config.extObjs...), apiregistrationfake.NewSimpleClientset(config.regObjs...)) + apiextensionsFake := apiextensionsfake.NewSimpleClientset(config.extObjs...) + config.operatorClient = operatorclient.NewClient(k8sClientFake, apiextensionsFake, apiregistrationfake.NewSimpleClientset(config.regObjs...)) config.configClient = configfake.NewSimpleClientset() metadataFake := metadatafake.NewSimpleMetadataClient(scheme, config.partialMetadata...) config.metadataClient = metadataFake // It's a travesty that we need to do this, but the fakes leave us no other option. In the API server, of course // changes to objects are transparently exposed in the metadata client. In fake-land, we need to enforce that ourselves. - externalFake.PrependReactor("*", "*", func(action clienttesting.Action) (bool, runtime.Object, error) { + propagate := func(action clienttesting.Action) (bool, runtime.Object, error) { var err error switch action.GetVerb() { case "create": @@ -320,7 +321,9 @@ func NewFakeOperator(ctx context.Context, options ...fakeOperatorOption) (*Opera err = metadataFake.Resource(action.GetResource()).Delete(context.TODO(), a.GetName(), metav1.DeleteOptions{}) } return false, nil, err - }) + } + externalFake.PrependReactor("*", "*", propagate) + apiextensionsFake.PrependReactor("*", "*", propagate) for _, ns := range config.namespaces { _, err := config.operatorClient.KubernetesInterface().CoreV1().Namespaces().Create(context.TODO(), &corev1.Namespace{ObjectMeta: metav1.ObjectMeta{Name: ns}}, metav1.CreateOptions{}) @@ -4397,7 +4400,7 @@ func TestSyncOperatorGroups(t *testing.T) { operatorGroup *operatorsv1.OperatorGroup csvs []*v1alpha1.ClusterServiceVersion clientObjs []runtime.Object - crds []runtime.Object + crds []*apiextensionsv1.CustomResourceDefinition k8sObjs []runtime.Object apis []runtime.Object } @@ -4474,7 +4477,7 @@ func TestSyncOperatorGroups(t *testing.T) { role, roleBinding, }, - crds: []runtime.Object{crd}, + crds: []*apiextensionsv1.CustomResourceDefinition{crd}, }, expectedStatus: operatorsv1.OperatorGroupStatus{}, final: final{objects: map[string][]runtime.Object{ @@ -4553,7 +4556,7 @@ func TestSyncOperatorGroups(t *testing.T) { role, roleBinding, }, - crds: []runtime.Object{crd}, + crds: []*apiextensionsv1.CustomResourceDefinition{crd}, }, expectedStatus: operatorsv1.OperatorGroupStatus{ Namespaces: []string{operatorNamespace, targetNamespace}, @@ -4656,7 +4659,7 @@ func TestSyncOperatorGroups(t *testing.T) { role, roleBinding, }, - crds: []runtime.Object{crd}, + crds: []*apiextensionsv1.CustomResourceDefinition{crd}, }, expectedStatus: operatorsv1.OperatorGroupStatus{ Namespaces: []string{operatorNamespace, targetNamespace}, @@ -4762,7 +4765,7 @@ func TestSyncOperatorGroups(t *testing.T) { role, roleBinding, }, - crds: []runtime.Object{crd}, + crds: []*apiextensionsv1.CustomResourceDefinition{crd}, }, expectedStatus: operatorsv1.OperatorGroupStatus{ Namespaces: []string{corev1.NamespaceAll}, @@ -4925,7 +4928,7 @@ func TestSyncOperatorGroups(t *testing.T) { role, roleBinding, }, - crds: []runtime.Object{crd}, + crds: []*apiextensionsv1.CustomResourceDefinition{crd}, }, expectedStatus: operatorsv1.OperatorGroupStatus{ Namespaces: []string{corev1.NamespaceAll}, @@ -4982,7 +4985,7 @@ func TestSyncOperatorGroups(t *testing.T) { operatorGroup = tt.initial.operatorGroup.DeepCopy() clientObjs = copyObjs(append(tt.initial.clientObjs, operatorGroup)) k8sObjs = copyObjs(tt.initial.k8sObjs) - extObjs = copyObjs(tt.initial.crds) + extObjs []runtime.Object regObjs = copyObjs(tt.initial.apis) ) @@ -4992,11 +4995,25 @@ func TestSyncOperatorGroups(t *testing.T) { var partials []runtime.Object for _, csv := range tt.initial.csvs { - clientObjs = append(clientObjs, csv) + clientObjs = append(clientObjs, csv.DeepCopy()) partials = append(partials, &metav1.PartialObjectMetadata{ + TypeMeta: metav1.TypeMeta{ + Kind: "ClusterServiceVersion", + APIVersion: v1alpha1.SchemeGroupVersion.String(), + }, ObjectMeta: csv.ObjectMeta, }) } + for _, crd := range tt.initial.crds { + extObjs = append(extObjs, crd.DeepCopy()) + partials = append(partials, &metav1.PartialObjectMetadata{ + TypeMeta: metav1.TypeMeta{ + Kind: "CustomResourceDefinition", + APIVersion: apiextensionsv1.SchemeGroupVersion.String(), + }, + ObjectMeta: crd.ObjectMeta, + }) + } l := logrus.New() l.SetLevel(logrus.DebugLevel) l = l.WithField("test", tt.name).Logger @@ -5094,12 +5111,12 @@ func TestSyncOperatorGroups(t *testing.T) { t.Log("op.syncClusterServiceVersion") if err := op.syncClusterServiceVersion(&csv); err != nil { - return false, err + return false, fmt.Errorf("failed to syncClusterServiceVersion: %w", err) } t.Log("op.syncCopyCSV") if err := op.syncCopyCSV(&csv); err != nil && !tt.ignoreCopyError { - return false, err + return false, fmt.Errorf("failed to syncCopyCSV: %w", err) } } diff --git a/staging/operator-lifecycle-manager/pkg/controller/operators/olm/operatorgroup.go b/staging/operator-lifecycle-manager/pkg/controller/operators/olm/operatorgroup.go index 745048cbb0..9900bc3844 100644 --- a/staging/operator-lifecycle-manager/pkg/controller/operators/olm/operatorgroup.go +++ b/staging/operator-lifecycle-manager/pkg/controller/operators/olm/operatorgroup.go @@ -11,6 +11,7 @@ import ( "github.com/sirupsen/logrus" corev1 "k8s.io/api/core/v1" rbacv1 "k8s.io/api/rbac/v1" + apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" apierrors "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -422,6 +423,7 @@ func (a *Operator) ensureClusterRolesForCSV(csv *v1alpha1.ClusterServiceVersion) if err != nil { return fmt.Errorf("crd %q not found: %s", owned.Name, err.Error()) } + crd.SetGroupVersionKind(apiextensionsv1.SchemeGroupVersion.WithKind("customresourcedefinition")) nameGroupPair := strings.SplitN(owned.Name, ".", 2) // -> etcdclusters etcd.database.coreos.com if len(nameGroupPair) != 2 { return fmt.Errorf("invalid parsing of name '%v', got %v", owned.Name, nameGroupPair) diff --git a/staging/operator-lifecycle-manager/pkg/controller/operators/olm/plugins/operator_plugin.go b/staging/operator-lifecycle-manager/pkg/controller/operators/olm/plugins/operator_plugin.go index 8ab49e4d91..0f38f0543b 100644 --- a/staging/operator-lifecycle-manager/pkg/controller/operators/olm/plugins/operator_plugin.go +++ b/staging/operator-lifecycle-manager/pkg/controller/operators/olm/plugins/operator_plugin.go @@ -11,7 +11,6 @@ import ( "github.com/operator-framework/operator-lifecycle-manager/pkg/lib/operatorclient" "github.com/operator-framework/operator-lifecycle-manager/pkg/lib/queueinformer" "github.com/sirupsen/logrus" - extensionsv1informers "k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/v1" appsv1informers "k8s.io/client-go/informers/apps/v1" corev1informers "k8s.io/client-go/informers/core/v1" rbacv1informers "k8s.io/client-go/informers/rbac/v1" @@ -49,7 +48,8 @@ type Informers struct { ClusterRoleBindingInformer rbacv1informers.ClusterRoleBindingInformer NamespaceInformer corev1informers.NamespaceInformer APIServiceInformer apiregistrationv1informers.APIServiceInformer - CRDInformer extensionsv1informers.CustomResourceDefinitionInformer + CRDInformer cache.SharedIndexInformer + CRDLister metadatalister.Lister } // OperatorConfig gives access to required configuration from the host operator diff --git a/staging/operator-lifecycle-manager/pkg/controller/operators/olm/requirements.go b/staging/operator-lifecycle-manager/pkg/controller/operators/olm/requirements.go index f4d408121c..0c288b8e36 100644 --- a/staging/operator-lifecycle-manager/pkg/controller/operators/olm/requirements.go +++ b/staging/operator-lifecycle-manager/pkg/controller/operators/olm/requirements.go @@ -1,6 +1,7 @@ package olm import ( + "context" "encoding/json" "fmt" "strings" @@ -94,7 +95,7 @@ func (a *Operator) requirementStatus(strategyDetailsDeployment *v1alpha1.Strateg } // check if CRD exists - this verifies group, version, and kind, so no need for GVK check via discovery - crd, err := a.lister.APIExtensionsV1().CustomResourceDefinitionLister().Get(r.Name) + crd, err := a.opClient.ApiextensionsInterface().ApiextensionsV1().CustomResourceDefinitions().Get(context.TODO(), r.Name, metav1.GetOptions{}) if err != nil { status.Status = v1alpha1.RequirementStatusReasonNotPresent status.Message = "CRD is not present" diff --git a/staging/operator-lifecycle-manager/pkg/lib/operatorlister/customresourcedefinition.go b/staging/operator-lifecycle-manager/pkg/lib/operatorlister/customresourcedefinition.go index 07c60a9126..69cac64e34 100644 --- a/staging/operator-lifecycle-manager/pkg/lib/operatorlister/customresourcedefinition.go +++ b/staging/operator-lifecycle-manager/pkg/lib/operatorlister/customresourcedefinition.go @@ -4,20 +4,30 @@ import ( "fmt" "sync" - apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" - aextv1 "k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/metadata/metadatalister" ) // UnionCustomResourceDefinitionLister is a custom implementation of an CustomResourceDefinition lister that allows a new -// Lister to be registered on the fly. This Lister lists both v1 and v1beta1 APIVersion (at the newer version) CRDs. +// Lister to be registered on the fly. type UnionCustomResourceDefinitionLister struct { - CustomResourceDefinitionLister aextv1.CustomResourceDefinitionLister + CustomResourceDefinitionLister metadatalister.Lister CustomResourceDefinitionLock sync.RWMutex } +func (ucl *UnionCustomResourceDefinitionLister) Namespace(namespace string) metadatalister.NamespaceLister { + ucl.CustomResourceDefinitionLock.RLock() + defer ucl.CustomResourceDefinitionLock.RUnlock() + + if ucl.CustomResourceDefinitionLister == nil { + panic(fmt.Errorf("no CustomResourceDefinition lister registered")) + } + return ucl.CustomResourceDefinitionLister.Namespace(namespace) +} + // List lists all CustomResourceDefinitions in the indexer. -func (ucl *UnionCustomResourceDefinitionLister) List(selector labels.Selector) (ret []*apiextensionsv1.CustomResourceDefinition, err error) { +func (ucl *UnionCustomResourceDefinitionLister) List(selector labels.Selector) (ret []*metav1.PartialObjectMetadata, err error) { ucl.CustomResourceDefinitionLock.RLock() defer ucl.CustomResourceDefinitionLock.RUnlock() @@ -28,7 +38,7 @@ func (ucl *UnionCustomResourceDefinitionLister) List(selector labels.Selector) ( } // Get retrieves the CustomResourceDefinition with the given name -func (ucl *UnionCustomResourceDefinitionLister) Get(name string) (*apiextensionsv1.CustomResourceDefinition, error) { +func (ucl *UnionCustomResourceDefinitionLister) Get(name string) (*metav1.PartialObjectMetadata, error) { ucl.CustomResourceDefinitionLock.RLock() defer ucl.CustomResourceDefinitionLock.RUnlock() @@ -39,17 +49,17 @@ func (ucl *UnionCustomResourceDefinitionLister) Get(name string) (*apiextensions } // RegisterCustomResourceDefinitionLister registers a new CustomResourceDefinitionLister -func (ucl *UnionCustomResourceDefinitionLister) RegisterCustomResourceDefinitionLister(lister aextv1.CustomResourceDefinitionLister) { +func (ucl *UnionCustomResourceDefinitionLister) RegisterCustomResourceDefinitionLister(lister metadatalister.Lister) { ucl.CustomResourceDefinitionLock.Lock() defer ucl.CustomResourceDefinitionLock.Unlock() ucl.CustomResourceDefinitionLister = lister } -func (l *apiExtensionsV1Lister) RegisterCustomResourceDefinitionLister(lister aextv1.CustomResourceDefinitionLister) { +func (l *apiExtensionsV1Lister) RegisterCustomResourceDefinitionLister(lister metadatalister.Lister) { l.customResourceDefinitionLister.RegisterCustomResourceDefinitionLister(lister) } -func (l *apiExtensionsV1Lister) CustomResourceDefinitionLister() aextv1.CustomResourceDefinitionLister { +func (l *apiExtensionsV1Lister) CustomResourceDefinitionLister() metadatalister.Lister { return l.customResourceDefinitionLister } diff --git a/staging/operator-lifecycle-manager/pkg/lib/operatorlister/lister.go b/staging/operator-lifecycle-manager/pkg/lib/operatorlister/lister.go index 0bf77a89e4..388f38ddaf 100644 --- a/staging/operator-lifecycle-manager/pkg/lib/operatorlister/lister.go +++ b/staging/operator-lifecycle-manager/pkg/lib/operatorlister/lister.go @@ -1,10 +1,10 @@ package operatorlister import ( - aextv1 "k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1" appsv1 "k8s.io/client-go/listers/apps/v1" corev1 "k8s.io/client-go/listers/core/v1" rbacv1 "k8s.io/client-go/listers/rbac/v1" + "k8s.io/client-go/metadata/metadatalister" aregv1 "k8s.io/kube-aggregator/pkg/client/listers/apiregistration/v1" v1 "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/listers/operators/v1" @@ -88,8 +88,8 @@ type APIRegistrationV1Lister interface { //go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 . APIExtensionsV1Lister type APIExtensionsV1Lister interface { - RegisterCustomResourceDefinitionLister(lister aextv1.CustomResourceDefinitionLister) - CustomResourceDefinitionLister() aextv1.CustomResourceDefinitionLister + RegisterCustomResourceDefinitionLister(lister metadatalister.Lister) + CustomResourceDefinitionLister() metadatalister.Lister } //go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 . OperatorsV1alpha1Lister diff --git a/staging/operator-lifecycle-manager/pkg/lib/operatorlister/operatorlisterfakes/fake_apiextensions_v1lister.go b/staging/operator-lifecycle-manager/pkg/lib/operatorlister/operatorlisterfakes/fake_apiextensions_v1lister.go index ac6d23e817..31bdfcab3c 100644 --- a/staging/operator-lifecycle-manager/pkg/lib/operatorlister/operatorlisterfakes/fake_apiextensions_v1lister.go +++ b/staging/operator-lifecycle-manager/pkg/lib/operatorlister/operatorlisterfakes/fake_apiextensions_v1lister.go @@ -5,30 +5,30 @@ import ( "sync" "github.com/operator-framework/operator-lifecycle-manager/pkg/lib/operatorlister" - v1 "k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1" + "k8s.io/client-go/metadata/metadatalister" ) type FakeAPIExtensionsV1Lister struct { - CustomResourceDefinitionListerStub func() v1.CustomResourceDefinitionLister + CustomResourceDefinitionListerStub func() metadatalister.Lister customResourceDefinitionListerMutex sync.RWMutex customResourceDefinitionListerArgsForCall []struct { } customResourceDefinitionListerReturns struct { - result1 v1.CustomResourceDefinitionLister + result1 metadatalister.Lister } customResourceDefinitionListerReturnsOnCall map[int]struct { - result1 v1.CustomResourceDefinitionLister + result1 metadatalister.Lister } - RegisterCustomResourceDefinitionListerStub func(v1.CustomResourceDefinitionLister) + RegisterCustomResourceDefinitionListerStub func(metadatalister.Lister) registerCustomResourceDefinitionListerMutex sync.RWMutex registerCustomResourceDefinitionListerArgsForCall []struct { - arg1 v1.CustomResourceDefinitionLister + arg1 metadatalister.Lister } invocations map[string][][]interface{} invocationsMutex sync.RWMutex } -func (fake *FakeAPIExtensionsV1Lister) CustomResourceDefinitionLister() v1.CustomResourceDefinitionLister { +func (fake *FakeAPIExtensionsV1Lister) CustomResourceDefinitionLister() metadatalister.Lister { fake.customResourceDefinitionListerMutex.Lock() ret, specificReturn := fake.customResourceDefinitionListerReturnsOnCall[len(fake.customResourceDefinitionListerArgsForCall)] fake.customResourceDefinitionListerArgsForCall = append(fake.customResourceDefinitionListerArgsForCall, struct { @@ -51,39 +51,39 @@ func (fake *FakeAPIExtensionsV1Lister) CustomResourceDefinitionListerCallCount() return len(fake.customResourceDefinitionListerArgsForCall) } -func (fake *FakeAPIExtensionsV1Lister) CustomResourceDefinitionListerCalls(stub func() v1.CustomResourceDefinitionLister) { +func (fake *FakeAPIExtensionsV1Lister) CustomResourceDefinitionListerCalls(stub func() metadatalister.Lister) { fake.customResourceDefinitionListerMutex.Lock() defer fake.customResourceDefinitionListerMutex.Unlock() fake.CustomResourceDefinitionListerStub = stub } -func (fake *FakeAPIExtensionsV1Lister) CustomResourceDefinitionListerReturns(result1 v1.CustomResourceDefinitionLister) { +func (fake *FakeAPIExtensionsV1Lister) CustomResourceDefinitionListerReturns(result1 metadatalister.Lister) { fake.customResourceDefinitionListerMutex.Lock() defer fake.customResourceDefinitionListerMutex.Unlock() fake.CustomResourceDefinitionListerStub = nil fake.customResourceDefinitionListerReturns = struct { - result1 v1.CustomResourceDefinitionLister + result1 metadatalister.Lister }{result1} } -func (fake *FakeAPIExtensionsV1Lister) CustomResourceDefinitionListerReturnsOnCall(i int, result1 v1.CustomResourceDefinitionLister) { +func (fake *FakeAPIExtensionsV1Lister) CustomResourceDefinitionListerReturnsOnCall(i int, result1 metadatalister.Lister) { fake.customResourceDefinitionListerMutex.Lock() defer fake.customResourceDefinitionListerMutex.Unlock() fake.CustomResourceDefinitionListerStub = nil if fake.customResourceDefinitionListerReturnsOnCall == nil { fake.customResourceDefinitionListerReturnsOnCall = make(map[int]struct { - result1 v1.CustomResourceDefinitionLister + result1 metadatalister.Lister }) } fake.customResourceDefinitionListerReturnsOnCall[i] = struct { - result1 v1.CustomResourceDefinitionLister + result1 metadatalister.Lister }{result1} } -func (fake *FakeAPIExtensionsV1Lister) RegisterCustomResourceDefinitionLister(arg1 v1.CustomResourceDefinitionLister) { +func (fake *FakeAPIExtensionsV1Lister) RegisterCustomResourceDefinitionLister(arg1 metadatalister.Lister) { fake.registerCustomResourceDefinitionListerMutex.Lock() fake.registerCustomResourceDefinitionListerArgsForCall = append(fake.registerCustomResourceDefinitionListerArgsForCall, struct { - arg1 v1.CustomResourceDefinitionLister + arg1 metadatalister.Lister }{arg1}) fake.recordInvocation("RegisterCustomResourceDefinitionLister", []interface{}{arg1}) fake.registerCustomResourceDefinitionListerMutex.Unlock() @@ -98,13 +98,13 @@ func (fake *FakeAPIExtensionsV1Lister) RegisterCustomResourceDefinitionListerCal return len(fake.registerCustomResourceDefinitionListerArgsForCall) } -func (fake *FakeAPIExtensionsV1Lister) RegisterCustomResourceDefinitionListerCalls(stub func(v1.CustomResourceDefinitionLister)) { +func (fake *FakeAPIExtensionsV1Lister) RegisterCustomResourceDefinitionListerCalls(stub func(metadatalister.Lister)) { fake.registerCustomResourceDefinitionListerMutex.Lock() defer fake.registerCustomResourceDefinitionListerMutex.Unlock() fake.RegisterCustomResourceDefinitionListerStub = stub } -func (fake *FakeAPIExtensionsV1Lister) RegisterCustomResourceDefinitionListerArgsForCall(i int) v1.CustomResourceDefinitionLister { +func (fake *FakeAPIExtensionsV1Lister) RegisterCustomResourceDefinitionListerArgsForCall(i int) metadatalister.Lister { fake.registerCustomResourceDefinitionListerMutex.RLock() defer fake.registerCustomResourceDefinitionListerMutex.RUnlock() argsForCall := fake.registerCustomResourceDefinitionListerArgsForCall[i] diff --git a/staging/operator-lifecycle-manager/test/e2e/operator_groups_e2e_test.go b/staging/operator-lifecycle-manager/test/e2e/operator_groups_e2e_test.go index 743f8ff37d..a112aa5055 100644 --- a/staging/operator-lifecycle-manager/test/e2e/operator_groups_e2e_test.go +++ b/staging/operator-lifecycle-manager/test/e2e/operator_groups_e2e_test.go @@ -563,7 +563,7 @@ var _ = Describe("Operator Group", func() { if res == nil { return false, nil } - GinkgoT().Log("checking padmin for permission") + GinkgoT().Logf("checking padmin for permission: %#v", res) return res.Status.Allowed, nil }) require.NoError(GinkgoT(), err) diff --git a/vendor/github.com/operator-framework/operator-lifecycle-manager/pkg/controller/operators/catalog/operator.go b/vendor/github.com/operator-framework/operator-lifecycle-manager/pkg/controller/operators/catalog/operator.go index aa7eb9668b..8ad84dea86 100644 --- a/vendor/github.com/operator-framework/operator-lifecycle-manager/pkg/controller/operators/catalog/operator.go +++ b/vendor/github.com/operator-framework/operator-lifecycle-manager/pkg/controller/operators/catalog/operator.go @@ -20,7 +20,6 @@ import ( apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" apiextensionsv1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1" "k8s.io/apiextensions-apiserver/pkg/apiserver/validation" - extinf "k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions" apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" @@ -34,6 +33,9 @@ import ( "k8s.io/apimachinery/pkg/util/yaml" "k8s.io/client-go/dynamic" "k8s.io/client-go/informers" + "k8s.io/client-go/metadata" + "k8s.io/client-go/metadata/metadatainformer" + "k8s.io/client-go/metadata/metadatalister" "k8s.io/client-go/tools/cache" "k8s.io/client-go/tools/clientcmd" "k8s.io/client-go/tools/record" @@ -144,6 +146,11 @@ func NewOperator(ctx context.Context, kubeconfigPath string, clock utilclock.Clo return nil, err } + metadataClient, err := metadata.NewForConfig(config) + if err != nil { + return nil, err + } + // Create a new queueinformer-based operator. opClient, err := operatorclient.NewClientFromRestConfig(config) if err != nil { @@ -443,13 +450,23 @@ func NewOperator(ctx context.Context, kubeconfigPath string, clock utilclock.Clo return nil, err } - // Register CustomResourceDefinition QueueInformer - crdInformer := extinf.NewSharedInformerFactory(op.opClient.ApiextensionsInterface(), resyncPeriod()).Apiextensions().V1().CustomResourceDefinitions() - op.lister.APIExtensionsV1().RegisterCustomResourceDefinitionLister(crdInformer.Lister()) + // Register CustomResourceDefinition QueueInformer. Object metadata requests are used + // by this informer in order to reduce cached size. + gvr := apiextensionsv1.SchemeGroupVersion.WithResource("customresourcedefinitions") + crdInformer := metadatainformer.NewFilteredMetadataInformer( + metadataClient, + gvr, + metav1.NamespaceAll, + resyncPeriod(), + cache.Indexers{}, + nil, + ).Informer() + crdLister := metadatalister.New(crdInformer.GetIndexer(), gvr) + op.lister.APIExtensionsV1().RegisterCustomResourceDefinitionLister(crdLister) crdQueueInformer, err := queueinformer.NewQueueInformer( ctx, queueinformer.WithLogger(op.logger), - queueinformer.WithInformer(crdInformer.Informer()), + queueinformer.WithInformer(crdInformer), queueinformer.WithSyncer(queueinformer.LegacySyncHandler(op.syncObject).ToSyncerWithDelete(op.handleDeletion)), ) if err != nil { diff --git a/vendor/github.com/operator-framework/operator-lifecycle-manager/pkg/controller/operators/olm/operator.go b/vendor/github.com/operator-framework/operator-lifecycle-manager/pkg/controller/operators/olm/operator.go index c8aa9ea09a..114e8a6a37 100644 --- a/vendor/github.com/operator-framework/operator-lifecycle-manager/pkg/controller/operators/olm/operator.go +++ b/vendor/github.com/operator-framework/operator-lifecycle-manager/pkg/controller/operators/olm/operator.go @@ -13,7 +13,6 @@ import ( corev1 "k8s.io/api/core/v1" rbacv1 "k8s.io/api/rbac/v1" apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" - extinf "k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions" apierrors "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -541,14 +540,25 @@ func newOperatorWithConfig(ctx context.Context, config *operatorConfig) (*Operat return nil, err } - // Register CustomResourceDefinition QueueInformer - crdInformer := extinf.NewSharedInformerFactory(op.opClient.ApiextensionsInterface(), config.resyncPeriod()).Apiextensions().V1().CustomResourceDefinitions() + // Register CustomResourceDefinition QueueInformer. Object metadata requests are used + // by this informer in order to reduce cached size. + gvr := apiextensionsv1.SchemeGroupVersion.WithResource("customresourcedefinitions") + crdInformer := metadatainformer.NewFilteredMetadataInformer( + config.metadataClient, + gvr, + metav1.NamespaceAll, + config.resyncPeriod(), + cache.Indexers{}, + nil, + ).Informer() + crdLister := metadatalister.New(crdInformer.GetIndexer(), gvr) informersByNamespace[metav1.NamespaceAll].CRDInformer = crdInformer - op.lister.APIExtensionsV1().RegisterCustomResourceDefinitionLister(crdInformer.Lister()) + informersByNamespace[metav1.NamespaceAll].CRDLister = crdLister + op.lister.APIExtensionsV1().RegisterCustomResourceDefinitionLister(crdLister) crdQueueInformer, err := queueinformer.NewQueueInformer( ctx, queueinformer.WithLogger(op.logger), - queueinformer.WithInformer(crdInformer.Informer()), + queueinformer.WithInformer(crdInformer), queueinformer.WithSyncer(k8sSyncer), ) if err != nil { @@ -1183,7 +1193,7 @@ func (a *Operator) handleClusterServiceVersionDeletion(obj interface{}) { } for i, crdName := range desc.ConversionCRDs { - crd, err := a.lister.APIExtensionsV1().CustomResourceDefinitionLister().Get(crdName) + crd, err := a.opClient.ApiextensionsInterface().ApiextensionsV1().CustomResourceDefinitions().Get(context.TODO(), crdName, metav1.GetOptions{}) if err != nil { logger.Errorf("error getting CRD %v which was defined in CSVs spec.WebhookDefinition[%d]: %v\n", crdName, i, err) continue diff --git a/vendor/github.com/operator-framework/operator-lifecycle-manager/pkg/controller/operators/olm/operatorgroup.go b/vendor/github.com/operator-framework/operator-lifecycle-manager/pkg/controller/operators/olm/operatorgroup.go index 745048cbb0..9900bc3844 100644 --- a/vendor/github.com/operator-framework/operator-lifecycle-manager/pkg/controller/operators/olm/operatorgroup.go +++ b/vendor/github.com/operator-framework/operator-lifecycle-manager/pkg/controller/operators/olm/operatorgroup.go @@ -11,6 +11,7 @@ import ( "github.com/sirupsen/logrus" corev1 "k8s.io/api/core/v1" rbacv1 "k8s.io/api/rbac/v1" + apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" apierrors "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -422,6 +423,7 @@ func (a *Operator) ensureClusterRolesForCSV(csv *v1alpha1.ClusterServiceVersion) if err != nil { return fmt.Errorf("crd %q not found: %s", owned.Name, err.Error()) } + crd.SetGroupVersionKind(apiextensionsv1.SchemeGroupVersion.WithKind("customresourcedefinition")) nameGroupPair := strings.SplitN(owned.Name, ".", 2) // -> etcdclusters etcd.database.coreos.com if len(nameGroupPair) != 2 { return fmt.Errorf("invalid parsing of name '%v', got %v", owned.Name, nameGroupPair) diff --git a/vendor/github.com/operator-framework/operator-lifecycle-manager/pkg/controller/operators/olm/plugins/operator_plugin.go b/vendor/github.com/operator-framework/operator-lifecycle-manager/pkg/controller/operators/olm/plugins/operator_plugin.go index 8ab49e4d91..0f38f0543b 100644 --- a/vendor/github.com/operator-framework/operator-lifecycle-manager/pkg/controller/operators/olm/plugins/operator_plugin.go +++ b/vendor/github.com/operator-framework/operator-lifecycle-manager/pkg/controller/operators/olm/plugins/operator_plugin.go @@ -11,7 +11,6 @@ import ( "github.com/operator-framework/operator-lifecycle-manager/pkg/lib/operatorclient" "github.com/operator-framework/operator-lifecycle-manager/pkg/lib/queueinformer" "github.com/sirupsen/logrus" - extensionsv1informers "k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/v1" appsv1informers "k8s.io/client-go/informers/apps/v1" corev1informers "k8s.io/client-go/informers/core/v1" rbacv1informers "k8s.io/client-go/informers/rbac/v1" @@ -49,7 +48,8 @@ type Informers struct { ClusterRoleBindingInformer rbacv1informers.ClusterRoleBindingInformer NamespaceInformer corev1informers.NamespaceInformer APIServiceInformer apiregistrationv1informers.APIServiceInformer - CRDInformer extensionsv1informers.CustomResourceDefinitionInformer + CRDInformer cache.SharedIndexInformer + CRDLister metadatalister.Lister } // OperatorConfig gives access to required configuration from the host operator diff --git a/vendor/github.com/operator-framework/operator-lifecycle-manager/pkg/controller/operators/olm/requirements.go b/vendor/github.com/operator-framework/operator-lifecycle-manager/pkg/controller/operators/olm/requirements.go index f4d408121c..0c288b8e36 100644 --- a/vendor/github.com/operator-framework/operator-lifecycle-manager/pkg/controller/operators/olm/requirements.go +++ b/vendor/github.com/operator-framework/operator-lifecycle-manager/pkg/controller/operators/olm/requirements.go @@ -1,6 +1,7 @@ package olm import ( + "context" "encoding/json" "fmt" "strings" @@ -94,7 +95,7 @@ func (a *Operator) requirementStatus(strategyDetailsDeployment *v1alpha1.Strateg } // check if CRD exists - this verifies group, version, and kind, so no need for GVK check via discovery - crd, err := a.lister.APIExtensionsV1().CustomResourceDefinitionLister().Get(r.Name) + crd, err := a.opClient.ApiextensionsInterface().ApiextensionsV1().CustomResourceDefinitions().Get(context.TODO(), r.Name, metav1.GetOptions{}) if err != nil { status.Status = v1alpha1.RequirementStatusReasonNotPresent status.Message = "CRD is not present" diff --git a/vendor/github.com/operator-framework/operator-lifecycle-manager/pkg/lib/operatorlister/customresourcedefinition.go b/vendor/github.com/operator-framework/operator-lifecycle-manager/pkg/lib/operatorlister/customresourcedefinition.go index 07c60a9126..69cac64e34 100644 --- a/vendor/github.com/operator-framework/operator-lifecycle-manager/pkg/lib/operatorlister/customresourcedefinition.go +++ b/vendor/github.com/operator-framework/operator-lifecycle-manager/pkg/lib/operatorlister/customresourcedefinition.go @@ -4,20 +4,30 @@ import ( "fmt" "sync" - apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" - aextv1 "k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/metadata/metadatalister" ) // UnionCustomResourceDefinitionLister is a custom implementation of an CustomResourceDefinition lister that allows a new -// Lister to be registered on the fly. This Lister lists both v1 and v1beta1 APIVersion (at the newer version) CRDs. +// Lister to be registered on the fly. type UnionCustomResourceDefinitionLister struct { - CustomResourceDefinitionLister aextv1.CustomResourceDefinitionLister + CustomResourceDefinitionLister metadatalister.Lister CustomResourceDefinitionLock sync.RWMutex } +func (ucl *UnionCustomResourceDefinitionLister) Namespace(namespace string) metadatalister.NamespaceLister { + ucl.CustomResourceDefinitionLock.RLock() + defer ucl.CustomResourceDefinitionLock.RUnlock() + + if ucl.CustomResourceDefinitionLister == nil { + panic(fmt.Errorf("no CustomResourceDefinition lister registered")) + } + return ucl.CustomResourceDefinitionLister.Namespace(namespace) +} + // List lists all CustomResourceDefinitions in the indexer. -func (ucl *UnionCustomResourceDefinitionLister) List(selector labels.Selector) (ret []*apiextensionsv1.CustomResourceDefinition, err error) { +func (ucl *UnionCustomResourceDefinitionLister) List(selector labels.Selector) (ret []*metav1.PartialObjectMetadata, err error) { ucl.CustomResourceDefinitionLock.RLock() defer ucl.CustomResourceDefinitionLock.RUnlock() @@ -28,7 +38,7 @@ func (ucl *UnionCustomResourceDefinitionLister) List(selector labels.Selector) ( } // Get retrieves the CustomResourceDefinition with the given name -func (ucl *UnionCustomResourceDefinitionLister) Get(name string) (*apiextensionsv1.CustomResourceDefinition, error) { +func (ucl *UnionCustomResourceDefinitionLister) Get(name string) (*metav1.PartialObjectMetadata, error) { ucl.CustomResourceDefinitionLock.RLock() defer ucl.CustomResourceDefinitionLock.RUnlock() @@ -39,17 +49,17 @@ func (ucl *UnionCustomResourceDefinitionLister) Get(name string) (*apiextensions } // RegisterCustomResourceDefinitionLister registers a new CustomResourceDefinitionLister -func (ucl *UnionCustomResourceDefinitionLister) RegisterCustomResourceDefinitionLister(lister aextv1.CustomResourceDefinitionLister) { +func (ucl *UnionCustomResourceDefinitionLister) RegisterCustomResourceDefinitionLister(lister metadatalister.Lister) { ucl.CustomResourceDefinitionLock.Lock() defer ucl.CustomResourceDefinitionLock.Unlock() ucl.CustomResourceDefinitionLister = lister } -func (l *apiExtensionsV1Lister) RegisterCustomResourceDefinitionLister(lister aextv1.CustomResourceDefinitionLister) { +func (l *apiExtensionsV1Lister) RegisterCustomResourceDefinitionLister(lister metadatalister.Lister) { l.customResourceDefinitionLister.RegisterCustomResourceDefinitionLister(lister) } -func (l *apiExtensionsV1Lister) CustomResourceDefinitionLister() aextv1.CustomResourceDefinitionLister { +func (l *apiExtensionsV1Lister) CustomResourceDefinitionLister() metadatalister.Lister { return l.customResourceDefinitionLister } diff --git a/vendor/github.com/operator-framework/operator-lifecycle-manager/pkg/lib/operatorlister/lister.go b/vendor/github.com/operator-framework/operator-lifecycle-manager/pkg/lib/operatorlister/lister.go index 0bf77a89e4..388f38ddaf 100644 --- a/vendor/github.com/operator-framework/operator-lifecycle-manager/pkg/lib/operatorlister/lister.go +++ b/vendor/github.com/operator-framework/operator-lifecycle-manager/pkg/lib/operatorlister/lister.go @@ -1,10 +1,10 @@ package operatorlister import ( - aextv1 "k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1" appsv1 "k8s.io/client-go/listers/apps/v1" corev1 "k8s.io/client-go/listers/core/v1" rbacv1 "k8s.io/client-go/listers/rbac/v1" + "k8s.io/client-go/metadata/metadatalister" aregv1 "k8s.io/kube-aggregator/pkg/client/listers/apiregistration/v1" v1 "github.com/operator-framework/operator-lifecycle-manager/pkg/api/client/listers/operators/v1" @@ -88,8 +88,8 @@ type APIRegistrationV1Lister interface { //go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 . APIExtensionsV1Lister type APIExtensionsV1Lister interface { - RegisterCustomResourceDefinitionLister(lister aextv1.CustomResourceDefinitionLister) - CustomResourceDefinitionLister() aextv1.CustomResourceDefinitionLister + RegisterCustomResourceDefinitionLister(lister metadatalister.Lister) + CustomResourceDefinitionLister() metadatalister.Lister } //go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 . OperatorsV1alpha1Lister diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/interface.go b/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/interface.go deleted file mode 100644 index 1bdd40e26c..0000000000 --- a/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/interface.go +++ /dev/null @@ -1,54 +0,0 @@ -/* -Copyright The Kubernetes 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 informer-gen. DO NOT EDIT. - -package apiextensions - -import ( - v1 "k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/v1" - v1beta1 "k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/v1beta1" - internalinterfaces "k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/internalinterfaces" -) - -// Interface provides access to each of this group's versions. -type Interface interface { - // V1beta1 provides access to shared informers for resources in V1beta1. - V1beta1() v1beta1.Interface - // V1 provides access to shared informers for resources in V1. - V1() v1.Interface -} - -type group struct { - factory internalinterfaces.SharedInformerFactory - namespace string - tweakListOptions internalinterfaces.TweakListOptionsFunc -} - -// New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { - return &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} -} - -// V1beta1 returns a new v1beta1.Interface. -func (g *group) V1beta1() v1beta1.Interface { - return v1beta1.New(g.factory, g.namespace, g.tweakListOptions) -} - -// V1 returns a new v1.Interface. -func (g *group) V1() v1.Interface { - return v1.New(g.factory, g.namespace, g.tweakListOptions) -} diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/v1/customresourcedefinition.go b/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/v1/customresourcedefinition.go deleted file mode 100644 index 7d1b571112..0000000000 --- a/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/v1/customresourcedefinition.go +++ /dev/null @@ -1,89 +0,0 @@ -/* -Copyright The Kubernetes 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 informer-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - time "time" - - apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" - clientset "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset" - internalinterfaces "k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/internalinterfaces" - v1 "k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - runtime "k8s.io/apimachinery/pkg/runtime" - watch "k8s.io/apimachinery/pkg/watch" - cache "k8s.io/client-go/tools/cache" -) - -// CustomResourceDefinitionInformer provides access to a shared informer and lister for -// CustomResourceDefinitions. -type CustomResourceDefinitionInformer interface { - Informer() cache.SharedIndexInformer - Lister() v1.CustomResourceDefinitionLister -} - -type customResourceDefinitionInformer struct { - factory internalinterfaces.SharedInformerFactory - tweakListOptions internalinterfaces.TweakListOptionsFunc -} - -// NewCustomResourceDefinitionInformer constructs a new informer for CustomResourceDefinition type. -// Always prefer using an informer factory to get a shared informer instead of getting an independent -// one. This reduces memory footprint and number of connections to the server. -func NewCustomResourceDefinitionInformer(client clientset.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { - return NewFilteredCustomResourceDefinitionInformer(client, resyncPeriod, indexers, nil) -} - -// NewFilteredCustomResourceDefinitionInformer constructs a new informer for CustomResourceDefinition type. -// Always prefer using an informer factory to get a shared informer instead of getting an independent -// one. This reduces memory footprint and number of connections to the server. -func NewFilteredCustomResourceDefinitionInformer(client clientset.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { - return cache.NewSharedIndexInformer( - &cache.ListWatch{ - ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.ApiextensionsV1().CustomResourceDefinitions().List(context.TODO(), options) - }, - WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.ApiextensionsV1().CustomResourceDefinitions().Watch(context.TODO(), options) - }, - }, - &apiextensionsv1.CustomResourceDefinition{}, - resyncPeriod, - indexers, - ) -} - -func (f *customResourceDefinitionInformer) defaultInformer(client clientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewFilteredCustomResourceDefinitionInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) -} - -func (f *customResourceDefinitionInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&apiextensionsv1.CustomResourceDefinition{}, f.defaultInformer) -} - -func (f *customResourceDefinitionInformer) Lister() v1.CustomResourceDefinitionLister { - return v1.NewCustomResourceDefinitionLister(f.Informer().GetIndexer()) -} diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/v1/interface.go b/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/v1/interface.go deleted file mode 100644 index d96e2099ae..0000000000 --- a/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/v1/interface.go +++ /dev/null @@ -1,45 +0,0 @@ -/* -Copyright The Kubernetes 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 informer-gen. DO NOT EDIT. - -package v1 - -import ( - internalinterfaces "k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/internalinterfaces" -) - -// Interface provides access to all the informers in this group version. -type Interface interface { - // CustomResourceDefinitions returns a CustomResourceDefinitionInformer. - CustomResourceDefinitions() CustomResourceDefinitionInformer -} - -type version struct { - factory internalinterfaces.SharedInformerFactory - namespace string - tweakListOptions internalinterfaces.TweakListOptionsFunc -} - -// New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { - return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} -} - -// CustomResourceDefinitions returns a CustomResourceDefinitionInformer. -func (v *version) CustomResourceDefinitions() CustomResourceDefinitionInformer { - return &customResourceDefinitionInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} -} diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/v1beta1/customresourcedefinition.go b/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/v1beta1/customresourcedefinition.go deleted file mode 100644 index 489c87ae90..0000000000 --- a/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/v1beta1/customresourcedefinition.go +++ /dev/null @@ -1,89 +0,0 @@ -/* -Copyright The Kubernetes 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 informer-gen. DO NOT EDIT. - -package v1beta1 - -import ( - "context" - time "time" - - apiextensionsv1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1" - clientset "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset" - internalinterfaces "k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/internalinterfaces" - v1beta1 "k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1beta1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - runtime "k8s.io/apimachinery/pkg/runtime" - watch "k8s.io/apimachinery/pkg/watch" - cache "k8s.io/client-go/tools/cache" -) - -// CustomResourceDefinitionInformer provides access to a shared informer and lister for -// CustomResourceDefinitions. -type CustomResourceDefinitionInformer interface { - Informer() cache.SharedIndexInformer - Lister() v1beta1.CustomResourceDefinitionLister -} - -type customResourceDefinitionInformer struct { - factory internalinterfaces.SharedInformerFactory - tweakListOptions internalinterfaces.TweakListOptionsFunc -} - -// NewCustomResourceDefinitionInformer constructs a new informer for CustomResourceDefinition type. -// Always prefer using an informer factory to get a shared informer instead of getting an independent -// one. This reduces memory footprint and number of connections to the server. -func NewCustomResourceDefinitionInformer(client clientset.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { - return NewFilteredCustomResourceDefinitionInformer(client, resyncPeriod, indexers, nil) -} - -// NewFilteredCustomResourceDefinitionInformer constructs a new informer for CustomResourceDefinition type. -// Always prefer using an informer factory to get a shared informer instead of getting an independent -// one. This reduces memory footprint and number of connections to the server. -func NewFilteredCustomResourceDefinitionInformer(client clientset.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { - return cache.NewSharedIndexInformer( - &cache.ListWatch{ - ListFunc: func(options v1.ListOptions) (runtime.Object, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.ApiextensionsV1beta1().CustomResourceDefinitions().List(context.TODO(), options) - }, - WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.ApiextensionsV1beta1().CustomResourceDefinitions().Watch(context.TODO(), options) - }, - }, - &apiextensionsv1beta1.CustomResourceDefinition{}, - resyncPeriod, - indexers, - ) -} - -func (f *customResourceDefinitionInformer) defaultInformer(client clientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewFilteredCustomResourceDefinitionInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) -} - -func (f *customResourceDefinitionInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&apiextensionsv1beta1.CustomResourceDefinition{}, f.defaultInformer) -} - -func (f *customResourceDefinitionInformer) Lister() v1beta1.CustomResourceDefinitionLister { - return v1beta1.NewCustomResourceDefinitionLister(f.Informer().GetIndexer()) -} diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/v1beta1/interface.go b/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/v1beta1/interface.go deleted file mode 100644 index f78edbb593..0000000000 --- a/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/v1beta1/interface.go +++ /dev/null @@ -1,45 +0,0 @@ -/* -Copyright The Kubernetes 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 informer-gen. DO NOT EDIT. - -package v1beta1 - -import ( - internalinterfaces "k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/internalinterfaces" -) - -// Interface provides access to all the informers in this group version. -type Interface interface { - // CustomResourceDefinitions returns a CustomResourceDefinitionInformer. - CustomResourceDefinitions() CustomResourceDefinitionInformer -} - -type version struct { - factory internalinterfaces.SharedInformerFactory - namespace string - tweakListOptions internalinterfaces.TweakListOptionsFunc -} - -// New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { - return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} -} - -// CustomResourceDefinitions returns a CustomResourceDefinitionInformer. -func (v *version) CustomResourceDefinitions() CustomResourceDefinitionInformer { - return &customResourceDefinitionInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} -} diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/factory.go b/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/factory.go deleted file mode 100644 index e2243ef6c6..0000000000 --- a/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/factory.go +++ /dev/null @@ -1,251 +0,0 @@ -/* -Copyright The Kubernetes 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 informer-gen. DO NOT EDIT. - -package externalversions - -import ( - reflect "reflect" - sync "sync" - time "time" - - clientset "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset" - apiextensions "k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions" - internalinterfaces "k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/internalinterfaces" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - runtime "k8s.io/apimachinery/pkg/runtime" - schema "k8s.io/apimachinery/pkg/runtime/schema" - cache "k8s.io/client-go/tools/cache" -) - -// SharedInformerOption defines the functional option type for SharedInformerFactory. -type SharedInformerOption func(*sharedInformerFactory) *sharedInformerFactory - -type sharedInformerFactory struct { - client clientset.Interface - namespace string - tweakListOptions internalinterfaces.TweakListOptionsFunc - lock sync.Mutex - defaultResync time.Duration - customResync map[reflect.Type]time.Duration - - informers map[reflect.Type]cache.SharedIndexInformer - // startedInformers is used for tracking which informers have been started. - // This allows Start() to be called multiple times safely. - startedInformers map[reflect.Type]bool - // wg tracks how many goroutines were started. - wg sync.WaitGroup - // shuttingDown is true when Shutdown has been called. It may still be running - // because it needs to wait for goroutines. - shuttingDown bool -} - -// WithCustomResyncConfig sets a custom resync period for the specified informer types. -func WithCustomResyncConfig(resyncConfig map[v1.Object]time.Duration) SharedInformerOption { - return func(factory *sharedInformerFactory) *sharedInformerFactory { - for k, v := range resyncConfig { - factory.customResync[reflect.TypeOf(k)] = v - } - return factory - } -} - -// WithTweakListOptions sets a custom filter on all listers of the configured SharedInformerFactory. -func WithTweakListOptions(tweakListOptions internalinterfaces.TweakListOptionsFunc) SharedInformerOption { - return func(factory *sharedInformerFactory) *sharedInformerFactory { - factory.tweakListOptions = tweakListOptions - return factory - } -} - -// WithNamespace limits the SharedInformerFactory to the specified namespace. -func WithNamespace(namespace string) SharedInformerOption { - return func(factory *sharedInformerFactory) *sharedInformerFactory { - factory.namespace = namespace - return factory - } -} - -// NewSharedInformerFactory constructs a new instance of sharedInformerFactory for all namespaces. -func NewSharedInformerFactory(client clientset.Interface, defaultResync time.Duration) SharedInformerFactory { - return NewSharedInformerFactoryWithOptions(client, defaultResync) -} - -// NewFilteredSharedInformerFactory constructs a new instance of sharedInformerFactory. -// Listers obtained via this SharedInformerFactory will be subject to the same filters -// as specified here. -// Deprecated: Please use NewSharedInformerFactoryWithOptions instead -func NewFilteredSharedInformerFactory(client clientset.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 clientset.Interface, defaultResync time.Duration, options ...SharedInformerOption) SharedInformerFactory { - factory := &sharedInformerFactory{ - client: client, - namespace: v1.NamespaceAll, - defaultResync: defaultResync, - informers: make(map[reflect.Type]cache.SharedIndexInformer), - startedInformers: make(map[reflect.Type]bool), - customResync: make(map[reflect.Type]time.Duration), - } - - // Apply all options - for _, opt := range options { - factory = opt(factory) - } - - return factory -} - -func (f *sharedInformerFactory) Start(stopCh <-chan struct{}) { - f.lock.Lock() - defer f.lock.Unlock() - - if f.shuttingDown { - return - } - - for informerType, informer := range f.informers { - if !f.startedInformers[informerType] { - f.wg.Add(1) - // We need a new variable in each loop iteration, - // otherwise the goroutine would use the loop variable - // and that keeps changing. - informer := informer - go func() { - defer f.wg.Done() - informer.Run(stopCh) - }() - f.startedInformers[informerType] = true - } - } -} - -func (f *sharedInformerFactory) Shutdown() { - f.lock.Lock() - f.shuttingDown = true - f.lock.Unlock() - - // Will return immediately if there is nothing to wait for. - f.wg.Wait() -} - -func (f *sharedInformerFactory) WaitForCacheSync(stopCh <-chan struct{}) map[reflect.Type]bool { - informers := func() map[reflect.Type]cache.SharedIndexInformer { - f.lock.Lock() - defer f.lock.Unlock() - - informers := map[reflect.Type]cache.SharedIndexInformer{} - for informerType, informer := range f.informers { - if f.startedInformers[informerType] { - informers[informerType] = informer - } - } - return informers - }() - - res := map[reflect.Type]bool{} - for informType, informer := range informers { - res[informType] = cache.WaitForCacheSync(stopCh, informer.HasSynced) - } - return res -} - -// InternalInformerFor returns the SharedIndexInformer for obj using an internal -// client. -func (f *sharedInformerFactory) InformerFor(obj runtime.Object, newFunc internalinterfaces.NewInformerFunc) cache.SharedIndexInformer { - f.lock.Lock() - defer f.lock.Unlock() - - informerType := reflect.TypeOf(obj) - informer, exists := f.informers[informerType] - if exists { - return informer - } - - resyncPeriod, exists := f.customResync[informerType] - if !exists { - resyncPeriod = f.defaultResync - } - - informer = newFunc(f.client, resyncPeriod) - f.informers[informerType] = informer - - return informer -} - -// SharedInformerFactory provides shared informers for resources in all known -// API group versions. -// -// It is typically used like this: -// -// ctx, cancel := context.Background() -// defer cancel() -// factory := NewSharedInformerFactory(client, resyncPeriod) -// defer factory.WaitForStop() // Returns immediately if nothing was started. -// genericInformer := factory.ForResource(resource) -// typedInformer := factory.SomeAPIGroup().V1().SomeType() -// factory.Start(ctx.Done()) // Start processing these informers. -// synced := factory.WaitForCacheSync(ctx.Done()) -// for v, ok := range synced { -// if !ok { -// fmt.Fprintf(os.Stderr, "caches failed to sync: %v", v) -// return -// } -// } -// -// // Creating informers can also be created after Start, but then -// // Start must be called again: -// anotherGenericInformer := factory.ForResource(resource) -// factory.Start(ctx.Done()) -type SharedInformerFactory interface { - internalinterfaces.SharedInformerFactory - - // Start initializes all requested informers. They are handled in goroutines - // which run until the stop channel gets closed. - Start(stopCh <-chan struct{}) - - // Shutdown marks a factory as shutting down. At that point no new - // informers can be started anymore and Start will return without - // doing anything. - // - // In addition, Shutdown blocks until all goroutines have terminated. For that - // to happen, the close channel(s) that they were started with must be closed, - // either before Shutdown gets called or while it is waiting. - // - // Shutdown may be called multiple times, even concurrently. All such calls will - // block until all goroutines have terminated. - Shutdown() - - // WaitForCacheSync blocks until all started informers' caches were synced - // or the stop channel gets closed. - WaitForCacheSync(stopCh <-chan struct{}) map[reflect.Type]bool - - // ForResource gives generic access to a shared informer of the matching type. - ForResource(resource schema.GroupVersionResource) (GenericInformer, error) - - // InternalInformerFor returns the SharedIndexInformer for obj using an internal - // client. - InformerFor(obj runtime.Object, newFunc internalinterfaces.NewInformerFunc) cache.SharedIndexInformer - - Apiextensions() apiextensions.Interface -} - -func (f *sharedInformerFactory) Apiextensions() apiextensions.Interface { - return apiextensions.New(f, f.namespace, f.tweakListOptions) -} diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/generic.go b/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/generic.go deleted file mode 100644 index 86f79cd417..0000000000 --- a/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/generic.go +++ /dev/null @@ -1,67 +0,0 @@ -/* -Copyright The Kubernetes 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 informer-gen. DO NOT EDIT. - -package externalversions - -import ( - "fmt" - - v1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" - v1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1" - schema "k8s.io/apimachinery/pkg/runtime/schema" - cache "k8s.io/client-go/tools/cache" -) - -// GenericInformer is type of SharedIndexInformer which will locate and delegate to other -// sharedInformers based on type -type GenericInformer interface { - Informer() cache.SharedIndexInformer - Lister() cache.GenericLister -} - -type genericInformer struct { - informer cache.SharedIndexInformer - resource schema.GroupResource -} - -// Informer returns the SharedIndexInformer. -func (f *genericInformer) Informer() cache.SharedIndexInformer { - return f.informer -} - -// Lister returns the GenericLister. -func (f *genericInformer) Lister() cache.GenericLister { - return cache.NewGenericLister(f.Informer().GetIndexer(), f.resource) -} - -// ForResource gives generic access to a shared informer of the matching type -// TODO extend this to unknown resources with a client pool -func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource) (GenericInformer, error) { - switch resource { - // Group=apiextensions.k8s.io, Version=v1 - case v1.SchemeGroupVersion.WithResource("customresourcedefinitions"): - return &genericInformer{resource: resource.GroupResource(), informer: f.Apiextensions().V1().CustomResourceDefinitions().Informer()}, nil - - // Group=apiextensions.k8s.io, Version=v1beta1 - case v1beta1.SchemeGroupVersion.WithResource("customresourcedefinitions"): - return &genericInformer{resource: resource.GroupResource(), informer: f.Apiextensions().V1beta1().CustomResourceDefinitions().Informer()}, nil - - } - - return nil, fmt.Errorf("no informer found for %v", resource) -} diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/internalinterfaces/factory_interfaces.go b/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/internalinterfaces/factory_interfaces.go deleted file mode 100644 index da6eadaa7f..0000000000 --- a/vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/internalinterfaces/factory_interfaces.go +++ /dev/null @@ -1,40 +0,0 @@ -/* -Copyright The Kubernetes 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 informer-gen. DO NOT EDIT. - -package internalinterfaces - -import ( - time "time" - - clientset "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - runtime "k8s.io/apimachinery/pkg/runtime" - cache "k8s.io/client-go/tools/cache" -) - -// NewInformerFunc takes clientset.Interface and time.Duration to return a SharedIndexInformer. -type NewInformerFunc func(clientset.Interface, time.Duration) cache.SharedIndexInformer - -// SharedInformerFactory a small interface to allow for adding an informer without an import cycle -type SharedInformerFactory interface { - Start(stopCh <-chan struct{}) - InformerFor(obj runtime.Object, newFunc NewInformerFunc) cache.SharedIndexInformer -} - -// TweakListOptionsFunc is a function that transforms a v1.ListOptions. -type TweakListOptionsFunc func(*v1.ListOptions) diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1/customresourcedefinition.go b/vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1/customresourcedefinition.go deleted file mode 100644 index d83c58bc62..0000000000 --- a/vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1/customresourcedefinition.go +++ /dev/null @@ -1,68 +0,0 @@ -/* -Copyright The Kubernetes 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 lister-gen. DO NOT EDIT. - -package v1 - -import ( - v1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/client-go/tools/cache" -) - -// CustomResourceDefinitionLister helps list CustomResourceDefinitions. -// All objects returned here must be treated as read-only. -type CustomResourceDefinitionLister interface { - // List lists all CustomResourceDefinitions in the indexer. - // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v1.CustomResourceDefinition, err error) - // Get retrieves the CustomResourceDefinition from the index for a given name. - // Objects returned here must be treated as read-only. - Get(name string) (*v1.CustomResourceDefinition, error) - CustomResourceDefinitionListerExpansion -} - -// customResourceDefinitionLister implements the CustomResourceDefinitionLister interface. -type customResourceDefinitionLister struct { - indexer cache.Indexer -} - -// NewCustomResourceDefinitionLister returns a new CustomResourceDefinitionLister. -func NewCustomResourceDefinitionLister(indexer cache.Indexer) CustomResourceDefinitionLister { - return &customResourceDefinitionLister{indexer: indexer} -} - -// List lists all CustomResourceDefinitions in the indexer. -func (s *customResourceDefinitionLister) List(selector labels.Selector) (ret []*v1.CustomResourceDefinition, err error) { - err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*v1.CustomResourceDefinition)) - }) - return ret, err -} - -// Get retrieves the CustomResourceDefinition from the index for a given name. -func (s *customResourceDefinitionLister) Get(name string) (*v1.CustomResourceDefinition, error) { - obj, exists, err := s.indexer.GetByKey(name) - if err != nil { - return nil, err - } - if !exists { - return nil, errors.NewNotFound(v1.Resource("customresourcedefinition"), name) - } - return obj.(*v1.CustomResourceDefinition), nil -} diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1/expansion_generated.go b/vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1/expansion_generated.go deleted file mode 100644 index 609d86be39..0000000000 --- a/vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1/expansion_generated.go +++ /dev/null @@ -1,23 +0,0 @@ -/* -Copyright The Kubernetes 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 lister-gen. DO NOT EDIT. - -package v1 - -// CustomResourceDefinitionListerExpansion allows custom methods to be added to -// CustomResourceDefinitionLister. -type CustomResourceDefinitionListerExpansion interface{} diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1beta1/customresourcedefinition.go b/vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1beta1/customresourcedefinition.go deleted file mode 100644 index c57fd40d8f..0000000000 --- a/vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1beta1/customresourcedefinition.go +++ /dev/null @@ -1,68 +0,0 @@ -/* -Copyright The Kubernetes 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 lister-gen. DO NOT EDIT. - -package v1beta1 - -import ( - v1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1" - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/client-go/tools/cache" -) - -// CustomResourceDefinitionLister helps list CustomResourceDefinitions. -// All objects returned here must be treated as read-only. -type CustomResourceDefinitionLister interface { - // List lists all CustomResourceDefinitions in the indexer. - // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v1beta1.CustomResourceDefinition, err error) - // Get retrieves the CustomResourceDefinition from the index for a given name. - // Objects returned here must be treated as read-only. - Get(name string) (*v1beta1.CustomResourceDefinition, error) - CustomResourceDefinitionListerExpansion -} - -// customResourceDefinitionLister implements the CustomResourceDefinitionLister interface. -type customResourceDefinitionLister struct { - indexer cache.Indexer -} - -// NewCustomResourceDefinitionLister returns a new CustomResourceDefinitionLister. -func NewCustomResourceDefinitionLister(indexer cache.Indexer) CustomResourceDefinitionLister { - return &customResourceDefinitionLister{indexer: indexer} -} - -// List lists all CustomResourceDefinitions in the indexer. -func (s *customResourceDefinitionLister) List(selector labels.Selector) (ret []*v1beta1.CustomResourceDefinition, err error) { - err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*v1beta1.CustomResourceDefinition)) - }) - return ret, err -} - -// Get retrieves the CustomResourceDefinition from the index for a given name. -func (s *customResourceDefinitionLister) Get(name string) (*v1beta1.CustomResourceDefinition, error) { - obj, exists, err := s.indexer.GetByKey(name) - if err != nil { - return nil, err - } - if !exists { - return nil, errors.NewNotFound(v1beta1.Resource("customresourcedefinition"), name) - } - return obj.(*v1beta1.CustomResourceDefinition), nil -} diff --git a/vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1beta1/expansion_generated.go b/vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1beta1/expansion_generated.go deleted file mode 100644 index 429782deb0..0000000000 --- a/vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1beta1/expansion_generated.go +++ /dev/null @@ -1,23 +0,0 @@ -/* -Copyright The Kubernetes 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 lister-gen. DO NOT EDIT. - -package v1beta1 - -// CustomResourceDefinitionListerExpansion allows custom methods to be added to -// CustomResourceDefinitionLister. -type CustomResourceDefinitionListerExpansion interface{} diff --git a/vendor/modules.txt b/vendor/modules.txt index 77f2111a1c..8b9faeea3b 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -1424,13 +1424,6 @@ k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/scheme k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1 k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1beta1 -k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions -k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions -k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/v1 -k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/v1beta1 -k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/internalinterfaces -k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1 -k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1beta1 # k8s.io/apimachinery v0.27.2 ## explicit; go 1.20 k8s.io/apimachinery/pkg/api/equality From 6d39cbf0538fd7be95d00c05082538dea3054d55 Mon Sep 17 00:00:00 2001 From: Simon Pasquier Date: Wed, 23 Aug 2023 11:53:37 +0200 Subject: [PATCH 09/10] OCPBUGS-8993: add namespace label to InstallPlanStepAppliedWithWarnings (#3012) The alerting consistency guide [1] requires the following: `Alerts SHOULD include a namespace label indicating the alert's source.` This change updates the expression of InstallPlanStepAppliedWithWarnings to aggregate the result by namespace. [1] https://github.com/openshift/enhancements/blob/master/enhancements/monitoring/alerting-consistency.md Signed-off-by: Simon Pasquier Upstream-repository: operator-lifecycle-manager Upstream-commit: 2976198c8e22837af8b7ade704212a536fa37071 --- manifests/0000_90_olm_01-prometheus-rule.yaml | 2 +- .../deploy/chart/templates/0000_90_olm_01-prometheus-rule.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/manifests/0000_90_olm_01-prometheus-rule.yaml b/manifests/0000_90_olm_01-prometheus-rule.yaml index 89c1b354f1..a9eeeb4fe1 100644 --- a/manifests/0000_90_olm_01-prometheus-rule.yaml +++ b/manifests/0000_90_olm_01-prometheus-rule.yaml @@ -36,7 +36,7 @@ spec: - name: olm.installplan.rules rules: - alert: InstallPlanStepAppliedWithWarnings - expr: sum(increase(installplan_warnings_total[5m])) > 0 + expr: sum by(namespace) (increase(installplan_warnings_total[5m])) > 0 labels: severity: warning annotations: diff --git a/staging/operator-lifecycle-manager/deploy/chart/templates/0000_90_olm_01-prometheus-rule.yaml b/staging/operator-lifecycle-manager/deploy/chart/templates/0000_90_olm_01-prometheus-rule.yaml index c9039ae552..e5417bb75e 100644 --- a/staging/operator-lifecycle-manager/deploy/chart/templates/0000_90_olm_01-prometheus-rule.yaml +++ b/staging/operator-lifecycle-manager/deploy/chart/templates/0000_90_olm_01-prometheus-rule.yaml @@ -34,7 +34,7 @@ spec: - name: olm.installplan.rules rules: - alert: InstallPlanStepAppliedWithWarnings - expr: sum(increase(installplan_warnings_total[5m])) > 0 + expr: sum by(namespace) (increase(installplan_warnings_total[5m])) > 0 labels: severity: warning annotations: From 885481af986cf6985ab51d3716009b394f08cd55 Mon Sep 17 00:00:00 2001 From: Luis Sanchez Date: Wed, 23 Aug 2023 17:37:20 -0400 Subject: [PATCH 10/10] reconcile clusteroperator status more frequently (#3006) If status is modified, the operator must set status to proper values. This ensures that accidents cannot permanently reset status and gives a clear indication that the operator is "live". This came up as important when operators were NOT live, during cert rotations and we had no indication of problems. Signed-off-by: Luis Sanchez Upstream-repository: operator-lifecycle-manager Upstream-commit: 0dbf79d283438b09c40a08429e9c8028a1a0dfbc --- .../operator-lifecycle-manager/pkg/lib/operatorstatus/status.go | 2 +- .../operator-lifecycle-manager/pkg/lib/operatorstatus/status.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/staging/operator-lifecycle-manager/pkg/lib/operatorstatus/status.go b/staging/operator-lifecycle-manager/pkg/lib/operatorstatus/status.go index 4067392c6e..bb0b092d85 100644 --- a/staging/operator-lifecycle-manager/pkg/lib/operatorstatus/status.go +++ b/staging/operator-lifecycle-manager/pkg/lib/operatorstatus/status.go @@ -228,7 +228,7 @@ func MonitorClusterStatus(name string, syncCh <-chan error, stopCh <-chan struct // if we've reported success, we can sleep longer, otherwise we want to keep watching for // successful if successfulSyncs > 0 { - time.Sleep(5 * time.Minute) + time.Sleep(25 * time.Second) } }, 5*time.Second, stopCh) diff --git a/vendor/github.com/operator-framework/operator-lifecycle-manager/pkg/lib/operatorstatus/status.go b/vendor/github.com/operator-framework/operator-lifecycle-manager/pkg/lib/operatorstatus/status.go index 4067392c6e..bb0b092d85 100644 --- a/vendor/github.com/operator-framework/operator-lifecycle-manager/pkg/lib/operatorstatus/status.go +++ b/vendor/github.com/operator-framework/operator-lifecycle-manager/pkg/lib/operatorstatus/status.go @@ -228,7 +228,7 @@ func MonitorClusterStatus(name string, syncCh <-chan error, stopCh <-chan struct // if we've reported success, we can sleep longer, otherwise we want to keep watching for // successful if successfulSyncs > 0 { - time.Sleep(5 * time.Minute) + time.Sleep(25 * time.Second) } }, 5*time.Second, stopCh)