diff --git a/go.mod b/go.mod index 54542cbed908..0923af98deaa 100644 --- a/go.mod +++ b/go.mod @@ -79,35 +79,35 @@ replace ( github.com/openshift/apiserver-library-go => github.com/openshift/apiserver-library-go v0.0.0-20201214145556-6f1013f42f98 github.com/openshift/client-go => github.com/openshift/client-go v0.0.0-20201214125552-e615e336eb49 github.com/openshift/library-go => github.com/openshift/library-go v0.0.0-20201214135256-d265f469e75b - k8s.io/api => github.com/openshift/kubernetes/staging/src/k8s.io/api v0.0.0-20210107082038-74cd459bbb9c - k8s.io/apiextensions-apiserver => github.com/openshift/kubernetes/staging/src/k8s.io/apiextensions-apiserver v0.0.0-20210107082038-74cd459bbb9c - k8s.io/apimachinery => github.com/openshift/kubernetes/staging/src/k8s.io/apimachinery v0.0.0-20210107082038-74cd459bbb9c - k8s.io/apiserver => github.com/openshift/kubernetes/staging/src/k8s.io/apiserver v0.0.0-20210107082038-74cd459bbb9c - k8s.io/cli-runtime => github.com/openshift/kubernetes/staging/src/k8s.io/cli-runtime v0.0.0-20210107082038-74cd459bbb9c - k8s.io/client-go => github.com/openshift/kubernetes/staging/src/k8s.io/client-go v0.0.0-20210107082038-74cd459bbb9c - k8s.io/cloud-provider => github.com/openshift/kubernetes/staging/src/k8s.io/cloud-provider v0.0.0-20210107082038-74cd459bbb9c - k8s.io/cluster-bootstrap => github.com/openshift/kubernetes/staging/src/k8s.io/cluster-bootstrap v0.0.0-20210107082038-74cd459bbb9c - k8s.io/code-generator => github.com/openshift/kubernetes/staging/src/k8s.io/code-generator v0.0.0-20210107082038-74cd459bbb9c - k8s.io/component-base => github.com/openshift/kubernetes/staging/src/k8s.io/component-base v0.0.0-20210107082038-74cd459bbb9c - k8s.io/component-helpers => github.com/openshift/kubernetes/staging/src/k8s.io/component-helpers v0.0.0-20210107082038-74cd459bbb9c - k8s.io/controller-manager => github.com/openshift/kubernetes/staging/src/k8s.io/controller-manager v0.0.0-20210107082038-74cd459bbb9c - k8s.io/cri-api => github.com/openshift/kubernetes/staging/src/k8s.io/cri-api v0.0.0-20210107082038-74cd459bbb9c - k8s.io/csi-translation-lib => github.com/openshift/kubernetes/staging/src/k8s.io/csi-translation-lib v0.0.0-20210107082038-74cd459bbb9c + k8s.io/api => github.com/openshift/kubernetes/staging/src/k8s.io/api v0.0.0-20210203062721-e761892b6e0f + k8s.io/apiextensions-apiserver => github.com/openshift/kubernetes/staging/src/k8s.io/apiextensions-apiserver v0.0.0-20210203062721-e761892b6e0f + k8s.io/apimachinery => github.com/openshift/kubernetes/staging/src/k8s.io/apimachinery v0.0.0-20210203062721-e761892b6e0f + k8s.io/apiserver => github.com/openshift/kubernetes/staging/src/k8s.io/apiserver v0.0.0-20210203062721-e761892b6e0f + k8s.io/cli-runtime => github.com/openshift/kubernetes/staging/src/k8s.io/cli-runtime v0.0.0-20210203062721-e761892b6e0f + k8s.io/client-go => github.com/openshift/kubernetes/staging/src/k8s.io/client-go v0.0.0-20210203062721-e761892b6e0f + k8s.io/cloud-provider => github.com/openshift/kubernetes/staging/src/k8s.io/cloud-provider v0.0.0-20210203062721-e761892b6e0f + k8s.io/cluster-bootstrap => github.com/openshift/kubernetes/staging/src/k8s.io/cluster-bootstrap v0.0.0-20210203062721-e761892b6e0f + k8s.io/code-generator => github.com/openshift/kubernetes/staging/src/k8s.io/code-generator v0.0.0-20210203062721-e761892b6e0f + k8s.io/component-base => github.com/openshift/kubernetes/staging/src/k8s.io/component-base v0.0.0-20210203062721-e761892b6e0f + k8s.io/component-helpers => github.com/openshift/kubernetes/staging/src/k8s.io/component-helpers v0.0.0-20210203062721-e761892b6e0f + k8s.io/controller-manager => github.com/openshift/kubernetes/staging/src/k8s.io/controller-manager v0.0.0-20210203062721-e761892b6e0f + k8s.io/cri-api => github.com/openshift/kubernetes/staging/src/k8s.io/cri-api v0.0.0-20210203062721-e761892b6e0f + k8s.io/csi-translation-lib => github.com/openshift/kubernetes/staging/src/k8s.io/csi-translation-lib v0.0.0-20210203062721-e761892b6e0f k8s.io/gengo => k8s.io/gengo v0.0.0-20200114144118-36b2048a9120 k8s.io/heapster => k8s.io/heapster v1.2.0-beta.1 k8s.io/klog => k8s.io/klog v1.0.0 - k8s.io/kube-aggregator => github.com/openshift/kubernetes/staging/src/k8s.io/kube-aggregator v0.0.0-20210107082038-74cd459bbb9c - k8s.io/kube-controller-manager => github.com/openshift/kubernetes/staging/src/k8s.io/kube-controller-manager v0.0.0-20210107082038-74cd459bbb9c - k8s.io/kube-proxy => github.com/openshift/kubernetes/staging/src/k8s.io/kube-proxy v0.0.0-20210107082038-74cd459bbb9c - k8s.io/kube-scheduler => github.com/openshift/kubernetes/staging/src/k8s.io/kube-scheduler v0.0.0-20210107082038-74cd459bbb9c - k8s.io/kubectl => github.com/openshift/kubernetes/staging/src/k8s.io/kubectl v0.0.0-20210107082038-74cd459bbb9c - k8s.io/kubelet => github.com/openshift/kubernetes/staging/src/k8s.io/kubelet v0.0.0-20210107082038-74cd459bbb9c - k8s.io/kubernetes => github.com/openshift/kubernetes v1.20.1-0.20210122163130-70dd98e24b4d - k8s.io/legacy-cloud-providers => github.com/openshift/kubernetes/staging/src/k8s.io/legacy-cloud-providers v0.0.0-20210107082038-74cd459bbb9c - k8s.io/metrics => github.com/openshift/kubernetes/staging/src/k8s.io/metrics v0.0.0-20210107082038-74cd459bbb9c - k8s.io/mount-utils => github.com/openshift/kubernetes/staging/src/k8s.io/mount-utils v0.0.0-20210107082038-74cd459bbb9c - k8s.io/sample-apiserver => github.com/openshift/kubernetes/staging/src/k8s.io/sample-apiserver v0.0.0-20210107082038-74cd459bbb9c - k8s.io/sample-cli-plugin => github.com/openshift/kubernetes/staging/src/k8s.io/sample-cli-plugin v0.0.0-20210107082038-74cd459bbb9c - k8s.io/sample-controller => github.com/openshift/kubernetes/staging/src/k8s.io/sample-controller v0.0.0-20210107082038-74cd459bbb9c + k8s.io/kube-aggregator => github.com/openshift/kubernetes/staging/src/k8s.io/kube-aggregator v0.0.0-20210203062721-e761892b6e0f + k8s.io/kube-controller-manager => github.com/openshift/kubernetes/staging/src/k8s.io/kube-controller-manager v0.0.0-20210203062721-e761892b6e0f + k8s.io/kube-proxy => github.com/openshift/kubernetes/staging/src/k8s.io/kube-proxy v0.0.0-20210203062721-e761892b6e0f + k8s.io/kube-scheduler => github.com/openshift/kubernetes/staging/src/k8s.io/kube-scheduler v0.0.0-20210203062721-e761892b6e0f + k8s.io/kubectl => github.com/openshift/kubernetes/staging/src/k8s.io/kubectl v0.0.0-20210203062721-e761892b6e0f + k8s.io/kubelet => github.com/openshift/kubernetes/staging/src/k8s.io/kubelet v0.0.0-20210203062721-e761892b6e0f + k8s.io/kubernetes => github.com/openshift/kubernetes v1.20.1-0.20210203062721-e761892b6e0f + k8s.io/legacy-cloud-providers => github.com/openshift/kubernetes/staging/src/k8s.io/legacy-cloud-providers v0.0.0-20210203062721-e761892b6e0f + k8s.io/metrics => github.com/openshift/kubernetes/staging/src/k8s.io/metrics v0.0.0-20210203062721-e761892b6e0f + k8s.io/mount-utils => github.com/openshift/kubernetes/staging/src/k8s.io/mount-utils v0.0.0-20210203062721-e761892b6e0f + k8s.io/sample-apiserver => github.com/openshift/kubernetes/staging/src/k8s.io/sample-apiserver v0.0.0-20210203062721-e761892b6e0f + k8s.io/sample-cli-plugin => github.com/openshift/kubernetes/staging/src/k8s.io/sample-cli-plugin v0.0.0-20210203062721-e761892b6e0f + k8s.io/sample-controller => github.com/openshift/kubernetes/staging/src/k8s.io/sample-controller v0.0.0-20210203062721-e761892b6e0f k8s.io/system-validators => k8s.io/system-validators v1.0.4 ) diff --git a/go.sum b/go.sum index f0fa091be0fc..930dad047ece 100644 --- a/go.sum +++ b/go.sum @@ -629,54 +629,54 @@ github.com/openshift/build-machinery-go v0.0.0-20200917070002-f171684f77ab h1:lB github.com/openshift/build-machinery-go v0.0.0-20200917070002-f171684f77ab/go.mod h1:b1BuldmJlbA/xYtdZvKi+7j5YGB44qJUJDZ9zwiNCfE= github.com/openshift/client-go v0.0.0-20201214125552-e615e336eb49 h1:7NmjUkJtGHpMTE/n8ia6itbCdZ7eYuTCXKc/zsA7OSM= github.com/openshift/client-go v0.0.0-20201214125552-e615e336eb49/go.mod h1:9/jG4I6sh+5QublJpZZ4Zs/P4/QCXMsQQ/K/058bSB8= -github.com/openshift/kubernetes v1.20.1-0.20210122163130-70dd98e24b4d h1:n3t4F05/J03kZvf2ObeDDdIYbRQvSgpGV6b0n7Rejq4= -github.com/openshift/kubernetes v1.20.1-0.20210122163130-70dd98e24b4d/go.mod h1:WYL8/qQDpjRt1Rh9DNGRWe3V2ovnZnRJMffzC0gC1uc= -github.com/openshift/kubernetes/staging/src/k8s.io/api v0.0.0-20210107082038-74cd459bbb9c h1:C9T0/uZK5AdSkUTFAZDB1489HRqZg1oVEmvFJ60Yr/o= -github.com/openshift/kubernetes/staging/src/k8s.io/api v0.0.0-20210107082038-74cd459bbb9c/go.mod h1:12gqmOZJjmP0ciWfqR5ANIxYgDdTchaRCQx+nTGBtm4= -github.com/openshift/kubernetes/staging/src/k8s.io/apiextensions-apiserver v0.0.0-20210107082038-74cd459bbb9c h1:VWfGa7/NJlArl+ZhUCrU3R6yV0HTcQSY2SRaJ0h8duo= -github.com/openshift/kubernetes/staging/src/k8s.io/apiextensions-apiserver v0.0.0-20210107082038-74cd459bbb9c/go.mod h1:Tcd087AOtnbniuSkrQXpXxuN3y5UwtbXXTmLFiJca8s= -github.com/openshift/kubernetes/staging/src/k8s.io/apimachinery v0.0.0-20210107082038-74cd459bbb9c h1:vNokI2Id0ZtcqIxDk8PYxqy5Yl1tI33tXzorViy/W80= -github.com/openshift/kubernetes/staging/src/k8s.io/apimachinery v0.0.0-20210107082038-74cd459bbb9c/go.mod h1:3axNrcLyqkBWxqU7Xl8RrLVDvPZOq5XMUHZ7mEFAQTM= -github.com/openshift/kubernetes/staging/src/k8s.io/apiserver v0.0.0-20210107082038-74cd459bbb9c h1:nmZWdO7Q/I1TkggQVZHxvatKHg3D8LsmpuRuFI8+tkE= -github.com/openshift/kubernetes/staging/src/k8s.io/apiserver v0.0.0-20210107082038-74cd459bbb9c/go.mod h1:ED6HfkyjucTiWY56MfTsOW48qtYewvR5IODc4JRMc6k= -github.com/openshift/kubernetes/staging/src/k8s.io/cli-runtime v0.0.0-20210107082038-74cd459bbb9c h1:fVHOekL729/vHTFjJg0VvaB4K/My6KHX2gtPZe7dapY= -github.com/openshift/kubernetes/staging/src/k8s.io/cli-runtime v0.0.0-20210107082038-74cd459bbb9c/go.mod h1:2PkJ8J+3tJgD3gqH85mPwUZ0Z4gjOtdgrauOUoCndO0= -github.com/openshift/kubernetes/staging/src/k8s.io/client-go v0.0.0-20210107082038-74cd459bbb9c h1:/VV0I9/D8oHC3gW65OT2FHNl8NyNfRpoyjL/y2uVJc0= -github.com/openshift/kubernetes/staging/src/k8s.io/client-go v0.0.0-20210107082038-74cd459bbb9c/go.mod h1:MfFvfPRc3qZnRjJYRnD8KZGtlN0XC+zUZu5wu5yfUz0= -github.com/openshift/kubernetes/staging/src/k8s.io/cloud-provider v0.0.0-20210107082038-74cd459bbb9c h1:7SN0FSMD2vuB1oxc8bUy0BkFsF4KqrzbE0UJsyKiqOY= -github.com/openshift/kubernetes/staging/src/k8s.io/cloud-provider v0.0.0-20210107082038-74cd459bbb9c/go.mod h1:UbIReMP6onJAgmEZQmjsi9PwQZnuy6mN6cA+NX63KtI= -github.com/openshift/kubernetes/staging/src/k8s.io/cluster-bootstrap v0.0.0-20210107082038-74cd459bbb9c h1:f6EYn17r9IeXBmS21Pp6GwdM0s3aLy3AL48PaYfRajY= -github.com/openshift/kubernetes/staging/src/k8s.io/cluster-bootstrap v0.0.0-20210107082038-74cd459bbb9c/go.mod h1:DwF2HdGOWvyoCRRAYTArqotIiLrKDWnOFYNGSXYv5kc= -github.com/openshift/kubernetes/staging/src/k8s.io/code-generator v0.0.0-20210107082038-74cd459bbb9c/go.mod h1:IdL3q169r16+fn077pRij9q//URx7OmYa+Wthx/j8KA= -github.com/openshift/kubernetes/staging/src/k8s.io/component-base v0.0.0-20210107082038-74cd459bbb9c h1:TdbOwfWYMKh9/K1oVqDxChQiu1pgmK3VWaI5btQ6/jE= -github.com/openshift/kubernetes/staging/src/k8s.io/component-base v0.0.0-20210107082038-74cd459bbb9c/go.mod h1:+m5WoP0r8VlXaFWELe3Us7JCRVtcZPrgUJ82zGtICDw= -github.com/openshift/kubernetes/staging/src/k8s.io/component-helpers v0.0.0-20210107082038-74cd459bbb9c h1:KhZrsFlo4/DFmXdFMY486lshXcpNNTP9EYjGdrCQN20= -github.com/openshift/kubernetes/staging/src/k8s.io/component-helpers v0.0.0-20210107082038-74cd459bbb9c/go.mod h1:aYiAP0jm/mzzaAPEbSnjAzpIvB32BWs83YlyYN7vNtc= -github.com/openshift/kubernetes/staging/src/k8s.io/controller-manager v0.0.0-20210107082038-74cd459bbb9c h1:94iYOEY9GDk5w2GzRzr3QKomJkO/zK1em6bb/5HBiQE= -github.com/openshift/kubernetes/staging/src/k8s.io/controller-manager v0.0.0-20210107082038-74cd459bbb9c/go.mod h1:C4aXxyoP3zkEJSMu98FCHF7lNDSNcBxMe13/JNk3WX8= -github.com/openshift/kubernetes/staging/src/k8s.io/cri-api v0.0.0-20210107082038-74cd459bbb9c h1:SatZN7O4/1ipKV7FRIy5Tlshku/iLVwh0BBNkvAzkCU= -github.com/openshift/kubernetes/staging/src/k8s.io/cri-api v0.0.0-20210107082038-74cd459bbb9c/go.mod h1:4xhnGOFiv9lkvENieScdSfcQHzXH9DR6QZRrCH0amMo= -github.com/openshift/kubernetes/staging/src/k8s.io/csi-translation-lib v0.0.0-20210107082038-74cd459bbb9c h1:XtRNdWFTUlcOAZvE4SMUUk6TXXsUnGVPZO84kx4eG5Q= -github.com/openshift/kubernetes/staging/src/k8s.io/csi-translation-lib v0.0.0-20210107082038-74cd459bbb9c/go.mod h1:yvSgp4ik96yUXtiMdgyHzrZRI0XNlq8Wfs2Q54+pICU= -github.com/openshift/kubernetes/staging/src/k8s.io/kube-aggregator v0.0.0-20210107082038-74cd459bbb9c h1:rFg47mzNtb18lNJAPBGFj5NMZRYwzzavNAf91SAqtGk= -github.com/openshift/kubernetes/staging/src/k8s.io/kube-aggregator v0.0.0-20210107082038-74cd459bbb9c/go.mod h1:1q1yp9zAz75t3BOwP11lXWu9bKOEVr2D+Uuq/0tgaTc= -github.com/openshift/kubernetes/staging/src/k8s.io/kube-controller-manager v0.0.0-20210107082038-74cd459bbb9c/go.mod h1:G43SCvMMH8h7lJxYjXgy4Ik5i/xLkA5MQm1PHsuKQxc= -github.com/openshift/kubernetes/staging/src/k8s.io/kube-proxy v0.0.0-20210107082038-74cd459bbb9c h1:wNn9EMQfCXK33U+vadmy8GsulVmmEPU+IDcZEpj9nOU= -github.com/openshift/kubernetes/staging/src/k8s.io/kube-proxy v0.0.0-20210107082038-74cd459bbb9c/go.mod h1:T53q06WyCndb2KNmm3lm6MT37ES+AIMi9msiFacQgiM= -github.com/openshift/kubernetes/staging/src/k8s.io/kube-scheduler v0.0.0-20210107082038-74cd459bbb9c h1:KBbhyMOwV3UEYyWrRc/0xqec8y3OxSnvvQ4SAI2oL1s= -github.com/openshift/kubernetes/staging/src/k8s.io/kube-scheduler v0.0.0-20210107082038-74cd459bbb9c/go.mod h1:1eeLynEfXxcPS3rGxwkUpSbjJ/6LhqhBK6E8tIaNNFs= -github.com/openshift/kubernetes/staging/src/k8s.io/kubectl v0.0.0-20210107082038-74cd459bbb9c h1:E5Sfgi//FswkpAl/xzeErBb3pEWUDqbSLEbFivQASIc= -github.com/openshift/kubernetes/staging/src/k8s.io/kubectl v0.0.0-20210107082038-74cd459bbb9c/go.mod h1:OpQzy3zR3K/YFh6yaTqUJjNzDLsV4F0mEOITBpXpJv0= -github.com/openshift/kubernetes/staging/src/k8s.io/kubelet v0.0.0-20210107082038-74cd459bbb9c h1:BJdoR49sWakA/tuOKEKb519iAiQ/pjanBxwnYDAtnK0= -github.com/openshift/kubernetes/staging/src/k8s.io/kubelet v0.0.0-20210107082038-74cd459bbb9c/go.mod h1:ry4feXn7kqXZhCrz+qGy576zyIpYATh0QTINIibRzRk= -github.com/openshift/kubernetes/staging/src/k8s.io/legacy-cloud-providers v0.0.0-20210107082038-74cd459bbb9c h1:CSQAjVpQR0qMH2h0n3X+zO3YsotABwSZQMwuXQfAsD0= -github.com/openshift/kubernetes/staging/src/k8s.io/legacy-cloud-providers v0.0.0-20210107082038-74cd459bbb9c/go.mod h1:SZzO0CnWBCwbiYLkYwThH9vvD4d0Q1plgf0r2WY1S+w= -github.com/openshift/kubernetes/staging/src/k8s.io/metrics v0.0.0-20210107082038-74cd459bbb9c h1:0AY6Ry0/81w/+BlSFw0lBUzQk6ZMbBWs1mzBKvIhbMk= -github.com/openshift/kubernetes/staging/src/k8s.io/metrics v0.0.0-20210107082038-74cd459bbb9c/go.mod h1:5UY8SSbdbpx1XBR5HUbS/QkW4poh3AJTQvW3443qQmg= -github.com/openshift/kubernetes/staging/src/k8s.io/mount-utils v0.0.0-20210107082038-74cd459bbb9c h1:i+ZC7IA26Yx/F0E9HurIr3ljRJrNku7O+uBsfIJFv9Y= -github.com/openshift/kubernetes/staging/src/k8s.io/mount-utils v0.0.0-20210107082038-74cd459bbb9c/go.mod h1:mFeSjsWvLj55xUpwltalvolz49izW7J0N5RfoIHrKKY= -github.com/openshift/kubernetes/staging/src/k8s.io/sample-apiserver v0.0.0-20210107082038-74cd459bbb9c h1:ILX7NnwCfNWHckuDrYfOm30acz6chOIIqwLNkgbOPnI= -github.com/openshift/kubernetes/staging/src/k8s.io/sample-apiserver v0.0.0-20210107082038-74cd459bbb9c/go.mod h1:WtXfFgTtCy2EaR3FvGYUsA+wulDHkF664sjyQrFMPQw= +github.com/openshift/kubernetes v1.20.1-0.20210203062721-e761892b6e0f h1:g+z3ZULx+/Lk3YOYrLM6lvvTvTi4/F2ZW7xsIhhPfA4= +github.com/openshift/kubernetes v1.20.1-0.20210203062721-e761892b6e0f/go.mod h1:WYL8/qQDpjRt1Rh9DNGRWe3V2ovnZnRJMffzC0gC1uc= +github.com/openshift/kubernetes/staging/src/k8s.io/api v0.0.0-20210203062721-e761892b6e0f h1:yBiKjXq0asSTKdf/Qn0poyYrLvHO/xwFRQ4LfA4QdFY= +github.com/openshift/kubernetes/staging/src/k8s.io/api v0.0.0-20210203062721-e761892b6e0f/go.mod h1:12gqmOZJjmP0ciWfqR5ANIxYgDdTchaRCQx+nTGBtm4= +github.com/openshift/kubernetes/staging/src/k8s.io/apiextensions-apiserver v0.0.0-20210203062721-e761892b6e0f h1:+Z7jAqBlVdSQCuSxG+Fv6nUUWX4DvqGN5JOCYhSFh84= +github.com/openshift/kubernetes/staging/src/k8s.io/apiextensions-apiserver v0.0.0-20210203062721-e761892b6e0f/go.mod h1:Tcd087AOtnbniuSkrQXpXxuN3y5UwtbXXTmLFiJca8s= +github.com/openshift/kubernetes/staging/src/k8s.io/apimachinery v0.0.0-20210203062721-e761892b6e0f h1:bmU33dqnCGESdCis5tb7EvbumXGqMzYx2tBVcW9Sz+g= +github.com/openshift/kubernetes/staging/src/k8s.io/apimachinery v0.0.0-20210203062721-e761892b6e0f/go.mod h1:3axNrcLyqkBWxqU7Xl8RrLVDvPZOq5XMUHZ7mEFAQTM= +github.com/openshift/kubernetes/staging/src/k8s.io/apiserver v0.0.0-20210203062721-e761892b6e0f h1:lfPgf3zb3C1I6DeBMoxuqkFZU14GNKXK0L0nuGQWb8k= +github.com/openshift/kubernetes/staging/src/k8s.io/apiserver v0.0.0-20210203062721-e761892b6e0f/go.mod h1:ED6HfkyjucTiWY56MfTsOW48qtYewvR5IODc4JRMc6k= +github.com/openshift/kubernetes/staging/src/k8s.io/cli-runtime v0.0.0-20210203062721-e761892b6e0f h1:t7tovUxzcPC8nXlXw3AFiokMs6lLBrqtOhjXqp/E+6s= +github.com/openshift/kubernetes/staging/src/k8s.io/cli-runtime v0.0.0-20210203062721-e761892b6e0f/go.mod h1:2PkJ8J+3tJgD3gqH85mPwUZ0Z4gjOtdgrauOUoCndO0= +github.com/openshift/kubernetes/staging/src/k8s.io/client-go v0.0.0-20210203062721-e761892b6e0f h1:hs/E+ZshD6OKWzekevc5/zJZjYRr5v3Je+2ZT8842MA= +github.com/openshift/kubernetes/staging/src/k8s.io/client-go v0.0.0-20210203062721-e761892b6e0f/go.mod h1:MfFvfPRc3qZnRjJYRnD8KZGtlN0XC+zUZu5wu5yfUz0= +github.com/openshift/kubernetes/staging/src/k8s.io/cloud-provider v0.0.0-20210203062721-e761892b6e0f h1:5EO1bD5/P+/I/cLOggt6ABvnsQW6Upz5fma4RzkCDUU= +github.com/openshift/kubernetes/staging/src/k8s.io/cloud-provider v0.0.0-20210203062721-e761892b6e0f/go.mod h1:UbIReMP6onJAgmEZQmjsi9PwQZnuy6mN6cA+NX63KtI= +github.com/openshift/kubernetes/staging/src/k8s.io/cluster-bootstrap v0.0.0-20210203062721-e761892b6e0f h1:Csx7Rj33rRjfpRwjN4SuOb2t3CQHsBfj4/XqiVggPa4= +github.com/openshift/kubernetes/staging/src/k8s.io/cluster-bootstrap v0.0.0-20210203062721-e761892b6e0f/go.mod h1:DwF2HdGOWvyoCRRAYTArqotIiLrKDWnOFYNGSXYv5kc= +github.com/openshift/kubernetes/staging/src/k8s.io/code-generator v0.0.0-20210203062721-e761892b6e0f/go.mod h1:IdL3q169r16+fn077pRij9q//URx7OmYa+Wthx/j8KA= +github.com/openshift/kubernetes/staging/src/k8s.io/component-base v0.0.0-20210203062721-e761892b6e0f h1:TQ9Zr7YXCo3XUQF7UNjhTqS/hd9M1hivkyB81oemfEs= +github.com/openshift/kubernetes/staging/src/k8s.io/component-base v0.0.0-20210203062721-e761892b6e0f/go.mod h1:+m5WoP0r8VlXaFWELe3Us7JCRVtcZPrgUJ82zGtICDw= +github.com/openshift/kubernetes/staging/src/k8s.io/component-helpers v0.0.0-20210203062721-e761892b6e0f h1:WJDVbHczbin00TSp1a4uuZ9dyeHu0k9D7WIFWJrjDig= +github.com/openshift/kubernetes/staging/src/k8s.io/component-helpers v0.0.0-20210203062721-e761892b6e0f/go.mod h1:aYiAP0jm/mzzaAPEbSnjAzpIvB32BWs83YlyYN7vNtc= +github.com/openshift/kubernetes/staging/src/k8s.io/controller-manager v0.0.0-20210203062721-e761892b6e0f h1:ngY8hbAGMfr8XaPegcZMLzLvhB5yQPoCTH3yzBtQ2cg= +github.com/openshift/kubernetes/staging/src/k8s.io/controller-manager v0.0.0-20210203062721-e761892b6e0f/go.mod h1:C4aXxyoP3zkEJSMu98FCHF7lNDSNcBxMe13/JNk3WX8= +github.com/openshift/kubernetes/staging/src/k8s.io/cri-api v0.0.0-20210203062721-e761892b6e0f h1:sKLuWfSb4iEA/jF5rp/v6nxgLOjedDGr39KvYknAkYk= +github.com/openshift/kubernetes/staging/src/k8s.io/cri-api v0.0.0-20210203062721-e761892b6e0f/go.mod h1:4xhnGOFiv9lkvENieScdSfcQHzXH9DR6QZRrCH0amMo= +github.com/openshift/kubernetes/staging/src/k8s.io/csi-translation-lib v0.0.0-20210203062721-e761892b6e0f h1:ieP1khxlAf0J5KJKBWIrwe7yzJTaS2Nis2y8bXWcyhE= +github.com/openshift/kubernetes/staging/src/k8s.io/csi-translation-lib v0.0.0-20210203062721-e761892b6e0f/go.mod h1:yvSgp4ik96yUXtiMdgyHzrZRI0XNlq8Wfs2Q54+pICU= +github.com/openshift/kubernetes/staging/src/k8s.io/kube-aggregator v0.0.0-20210203062721-e761892b6e0f h1:jyf9M6x6Env1IVlP8BNvkyozBwjP+Ag2HF/oMLJ+s0I= +github.com/openshift/kubernetes/staging/src/k8s.io/kube-aggregator v0.0.0-20210203062721-e761892b6e0f/go.mod h1:1q1yp9zAz75t3BOwP11lXWu9bKOEVr2D+Uuq/0tgaTc= +github.com/openshift/kubernetes/staging/src/k8s.io/kube-controller-manager v0.0.0-20210203062721-e761892b6e0f/go.mod h1:G43SCvMMH8h7lJxYjXgy4Ik5i/xLkA5MQm1PHsuKQxc= +github.com/openshift/kubernetes/staging/src/k8s.io/kube-proxy v0.0.0-20210203062721-e761892b6e0f h1:8dVB7JGtwLxB0f3aGvCpxjY+QUc/x1NWXtJX8klN5Yw= +github.com/openshift/kubernetes/staging/src/k8s.io/kube-proxy v0.0.0-20210203062721-e761892b6e0f/go.mod h1:T53q06WyCndb2KNmm3lm6MT37ES+AIMi9msiFacQgiM= +github.com/openshift/kubernetes/staging/src/k8s.io/kube-scheduler v0.0.0-20210203062721-e761892b6e0f h1:QlhD61J4KEXn2fxiTmxqi//mCsQsQ9Q3dsD+OeN52lo= +github.com/openshift/kubernetes/staging/src/k8s.io/kube-scheduler v0.0.0-20210203062721-e761892b6e0f/go.mod h1:1eeLynEfXxcPS3rGxwkUpSbjJ/6LhqhBK6E8tIaNNFs= +github.com/openshift/kubernetes/staging/src/k8s.io/kubectl v0.0.0-20210203062721-e761892b6e0f h1:8zKRgjVGKYbGnZu3tKzxd6qxq6AvwHsf21gJjVvee6A= +github.com/openshift/kubernetes/staging/src/k8s.io/kubectl v0.0.0-20210203062721-e761892b6e0f/go.mod h1:OpQzy3zR3K/YFh6yaTqUJjNzDLsV4F0mEOITBpXpJv0= +github.com/openshift/kubernetes/staging/src/k8s.io/kubelet v0.0.0-20210203062721-e761892b6e0f h1:biyWVL3mXnBpS4BlwZrRQKVmh2z0x+iXi4qzbfQyRFo= +github.com/openshift/kubernetes/staging/src/k8s.io/kubelet v0.0.0-20210203062721-e761892b6e0f/go.mod h1:ry4feXn7kqXZhCrz+qGy576zyIpYATh0QTINIibRzRk= +github.com/openshift/kubernetes/staging/src/k8s.io/legacy-cloud-providers v0.0.0-20210203062721-e761892b6e0f h1:/6wPkwulB0g8d3k2XCLLZ964PE3MsNuKu+nRPu9J/8M= +github.com/openshift/kubernetes/staging/src/k8s.io/legacy-cloud-providers v0.0.0-20210203062721-e761892b6e0f/go.mod h1:SZzO0CnWBCwbiYLkYwThH9vvD4d0Q1plgf0r2WY1S+w= +github.com/openshift/kubernetes/staging/src/k8s.io/metrics v0.0.0-20210203062721-e761892b6e0f h1:yVSphmTPDERRV2th7g/cz0BC/j3gFFGDL6iUQ8PjK2E= +github.com/openshift/kubernetes/staging/src/k8s.io/metrics v0.0.0-20210203062721-e761892b6e0f/go.mod h1:5UY8SSbdbpx1XBR5HUbS/QkW4poh3AJTQvW3443qQmg= +github.com/openshift/kubernetes/staging/src/k8s.io/mount-utils v0.0.0-20210203062721-e761892b6e0f h1:W3qovgJWvHOKyrKa9BdCj5+bDXuwFxZvqk9+Tx0QQF8= +github.com/openshift/kubernetes/staging/src/k8s.io/mount-utils v0.0.0-20210203062721-e761892b6e0f/go.mod h1:mFeSjsWvLj55xUpwltalvolz49izW7J0N5RfoIHrKKY= +github.com/openshift/kubernetes/staging/src/k8s.io/sample-apiserver v0.0.0-20210203062721-e761892b6e0f h1:MLS6jYtunlSxXWOBkINz90pCEqy62IO4vfjAQPP+h90= +github.com/openshift/kubernetes/staging/src/k8s.io/sample-apiserver v0.0.0-20210203062721-e761892b6e0f/go.mod h1:WtXfFgTtCy2EaR3FvGYUsA+wulDHkF664sjyQrFMPQw= github.com/openshift/library-go v0.0.0-20201214135256-d265f469e75b h1:zKZCcZgL3jf02/jf/ldUg8TvudOFcPGIdf8kFkWh5MI= github.com/openshift/library-go v0.0.0-20201214135256-d265f469e75b/go.mod h1:udseDnqxn5ON8i+NBjDp00fBTK0JRu1/6Y6tf6EivDE= github.com/openshift/onsi-ginkgo v4.5.0-origin.1+incompatible h1:GtzyDU5vBFU40hz4GWd1qU5FJByNljWdgkM2LtdelGk= diff --git a/test/extended/util/annotate/generated/zz_generated.annotations.go b/test/extended/util/annotate/generated/zz_generated.annotations.go index d75c01d462c3..0eeaac2ba5bf 100644 --- a/test/extended/util/annotate/generated/zz_generated.annotations.go +++ b/test/extended/util/annotate/generated/zz_generated.annotations.go @@ -2449,7 +2449,7 @@ var annotations = map[string]string{ "[Top Level] [sig-scheduling] Multi-AZ Cluster Volumes [sig-storage] should schedule pods in the same zones as statically provisioned PVs": "should schedule pods in the same zones as statically provisioned PVs [Suite:openshift/conformance/parallel] [Suite:k8s]", - "[Top Level] [sig-scheduling] Multi-AZ Clusters should spread the pods of a replication controller across zones": "should spread the pods of a replication controller across zones [Disabled:Broken] [Suite:k8s]", + "[Top Level] [sig-scheduling] Multi-AZ Clusters should spread the pods of a replication controller across zones": "should spread the pods of a replication controller across zones [Suite:openshift/conformance/parallel] [Suite:k8s]", "[Top Level] [sig-scheduling] Multi-AZ Clusters should spread the pods of a service across zones": "should spread the pods of a service across zones [Serial] [Suite:openshift/conformance/serial] [Suite:k8s]", diff --git a/vendor/k8s.io/apimachinery/pkg/api/errors/OWNERS b/vendor/k8s.io/apimachinery/pkg/api/errors/OWNERS new file mode 100644 index 000000000000..d18a17885b60 --- /dev/null +++ b/vendor/k8s.io/apimachinery/pkg/api/errors/OWNERS @@ -0,0 +1,23 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: +- thockin +- lavalamp +- smarterclayton +- wojtek-t +- deads2k +- brendandburns +- derekwaynecarr +- caesarxuchao +- mikedanese +- liggitt +- nikhiljindal +- gmarek +- erictune +- saad-ali +- janetkuo +- tallclair +- dims +- hongchaodeng +- krousey +- cjcullen diff --git a/vendor/k8s.io/apimachinery/pkg/api/meta/OWNERS b/vendor/k8s.io/apimachinery/pkg/api/meta/OWNERS new file mode 100644 index 000000000000..68b8d353ca90 --- /dev/null +++ b/vendor/k8s.io/apimachinery/pkg/api/meta/OWNERS @@ -0,0 +1,21 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: +- thockin +- smarterclayton +- wojtek-t +- deads2k +- brendandburns +- derekwaynecarr +- caesarxuchao +- mikedanese +- liggitt +- nikhiljindal +- gmarek +- janetkuo +- ncdc +- dims +- krousey +- resouer +- mfojtik +- jianhuiz diff --git a/vendor/k8s.io/apimachinery/pkg/api/resource/OWNERS b/vendor/k8s.io/apimachinery/pkg/api/resource/OWNERS new file mode 100644 index 000000000000..7ac0fe11a1fa --- /dev/null +++ b/vendor/k8s.io/apimachinery/pkg/api/resource/OWNERS @@ -0,0 +1,13 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: +- thockin +- lavalamp +- smarterclayton +- wojtek-t +- derekwaynecarr +- mikedanese +- saad-ali +- janetkuo +- xiang90 +- mbohlool diff --git a/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/OWNERS b/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/OWNERS new file mode 100644 index 000000000000..40018601c08a --- /dev/null +++ b/vendor/k8s.io/apimachinery/pkg/apis/meta/v1/OWNERS @@ -0,0 +1,30 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: +- thockin +- smarterclayton +- wojtek-t +- deads2k +- brendandburns +- caesarxuchao +- liggitt +- nikhiljindal +- gmarek +- erictune +- davidopp +- sttts +- quinton-hoole +- luxas +- janetkuo +- justinsb +- ncdc +- soltysh +- dims +- madhusudancs +- hongchaodeng +- krousey +- mml +- mbohlool +- therc +- kevin-wangzefeng +- jianhuiz diff --git a/vendor/k8s.io/apimachinery/pkg/util/mergepatch/OWNERS b/vendor/k8s.io/apimachinery/pkg/util/mergepatch/OWNERS new file mode 100644 index 000000000000..3f72c69ba396 --- /dev/null +++ b/vendor/k8s.io/apimachinery/pkg/util/mergepatch/OWNERS @@ -0,0 +1,7 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- pwittrock +reviewers: +- mengqiy +- apelisse diff --git a/vendor/k8s.io/apimachinery/pkg/util/strategicpatch/OWNERS b/vendor/k8s.io/apimachinery/pkg/util/strategicpatch/OWNERS new file mode 100644 index 000000000000..cfee199fa08d --- /dev/null +++ b/vendor/k8s.io/apimachinery/pkg/util/strategicpatch/OWNERS @@ -0,0 +1,8 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- pwittrock +- mengqiy +reviewers: +- mengqiy +- apelisse diff --git a/vendor/k8s.io/apimachinery/third_party/forked/golang/json/OWNERS b/vendor/k8s.io/apimachinery/third_party/forked/golang/json/OWNERS new file mode 100644 index 000000000000..3f72c69ba396 --- /dev/null +++ b/vendor/k8s.io/apimachinery/third_party/forked/golang/json/OWNERS @@ -0,0 +1,7 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- pwittrock +reviewers: +- mengqiy +- apelisse diff --git a/vendor/k8s.io/apiserver/pkg/admission/plugin/resourcequota/apis/resourcequota/OWNERS b/vendor/k8s.io/apiserver/pkg/admission/plugin/resourcequota/apis/resourcequota/OWNERS new file mode 100644 index 000000000000..cc22b22270e7 --- /dev/null +++ b/vendor/k8s.io/apiserver/pkg/admission/plugin/resourcequota/apis/resourcequota/OWNERS @@ -0,0 +1,9 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: +- deads2k +- derekwaynecarr +approvers: +- deads2k +- derekwaynecarr +- smarterclayton \ No newline at end of file diff --git a/vendor/k8s.io/apiserver/pkg/apis/audit/OWNERS b/vendor/k8s.io/apiserver/pkg/apis/audit/OWNERS new file mode 100644 index 000000000000..7a21104f6dfb --- /dev/null +++ b/vendor/k8s.io/apiserver/pkg/apis/audit/OWNERS @@ -0,0 +1,9 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +# approval on api packages bubbles to api-approvers +reviewers: +- sig-auth-audit-approvers +- sig-auth-audit-reviewers +labels: +- sig/auth + diff --git a/vendor/k8s.io/apiserver/pkg/audit/OWNERS b/vendor/k8s.io/apiserver/pkg/audit/OWNERS new file mode 100644 index 000000000000..c3486ad5ded0 --- /dev/null +++ b/vendor/k8s.io/apiserver/pkg/audit/OWNERS @@ -0,0 +1,9 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- sig-auth-audit-approvers +reviewers: +- sig-auth-audit-reviewers +labels: +- sig/auth + diff --git a/vendor/k8s.io/apiserver/pkg/authentication/request/x509/OWNERS b/vendor/k8s.io/apiserver/pkg/authentication/request/x509/OWNERS new file mode 100644 index 000000000000..3cf03643835a --- /dev/null +++ b/vendor/k8s.io/apiserver/pkg/authentication/request/x509/OWNERS @@ -0,0 +1,9 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- sig-auth-certificates-approvers +reviewers: +- sig-auth-certificates-reviewers +labels: +- sig/auth + diff --git a/vendor/k8s.io/apiserver/pkg/authorization/authorizerfactory/OWNERS b/vendor/k8s.io/apiserver/pkg/authorization/authorizerfactory/OWNERS new file mode 100644 index 000000000000..a5ccdcbd1b0c --- /dev/null +++ b/vendor/k8s.io/apiserver/pkg/authorization/authorizerfactory/OWNERS @@ -0,0 +1,5 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: +- deads2k +- dims diff --git a/vendor/k8s.io/apiserver/pkg/endpoints/filters/OWNERS b/vendor/k8s.io/apiserver/pkg/endpoints/filters/OWNERS new file mode 100644 index 000000000000..05259ce35382 --- /dev/null +++ b/vendor/k8s.io/apiserver/pkg/endpoints/filters/OWNERS @@ -0,0 +1,6 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: +- deads2k +- sttts +- soltysh diff --git a/vendor/k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/OWNERS b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/OWNERS new file mode 100644 index 000000000000..a7470137b87d --- /dev/null +++ b/vendor/k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager/OWNERS @@ -0,0 +1,5 @@ +approvers: +- jennybuckley +- apelisse +reviewers: +- kwiesmueller diff --git a/vendor/k8s.io/apiserver/pkg/endpoints/metrics/OWNERS b/vendor/k8s.io/apiserver/pkg/endpoints/metrics/OWNERS new file mode 100644 index 000000000000..33c780d7a6d7 --- /dev/null +++ b/vendor/k8s.io/apiserver/pkg/endpoints/metrics/OWNERS @@ -0,0 +1,5 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: +- wojtek-t +- jimmidyson diff --git a/vendor/k8s.io/apiserver/pkg/endpoints/openapi/OWNERS b/vendor/k8s.io/apiserver/pkg/endpoints/openapi/OWNERS new file mode 100644 index 000000000000..006f0125e186 --- /dev/null +++ b/vendor/k8s.io/apiserver/pkg/endpoints/openapi/OWNERS @@ -0,0 +1,4 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: +- mbohlool diff --git a/vendor/k8s.io/apiserver/pkg/endpoints/request/OWNERS b/vendor/k8s.io/apiserver/pkg/endpoints/request/OWNERS new file mode 100644 index 000000000000..4da107c8c38e --- /dev/null +++ b/vendor/k8s.io/apiserver/pkg/endpoints/request/OWNERS @@ -0,0 +1,4 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: +- sttts diff --git a/vendor/k8s.io/apiserver/pkg/features/OWNERS b/vendor/k8s.io/apiserver/pkg/features/OWNERS new file mode 100644 index 000000000000..05b08249aed3 --- /dev/null +++ b/vendor/k8s.io/apiserver/pkg/features/OWNERS @@ -0,0 +1,4 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- feature-approvers diff --git a/vendor/k8s.io/apiserver/pkg/quota/v1/OWNERS b/vendor/k8s.io/apiserver/pkg/quota/v1/OWNERS new file mode 100644 index 000000000000..d812b5d3ee63 --- /dev/null +++ b/vendor/k8s.io/apiserver/pkg/quota/v1/OWNERS @@ -0,0 +1,13 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- deads2k +- derekwaynecarr +- vishh +reviewers: +- deads2k +- derekwaynecarr +- smarterclayton +- vishh +labels: +- sig/api-machinery diff --git a/vendor/k8s.io/apiserver/pkg/quota/v1/generic/OWNERS b/vendor/k8s.io/apiserver/pkg/quota/v1/generic/OWNERS new file mode 100644 index 000000000000..4d4f90e4d155 --- /dev/null +++ b/vendor/k8s.io/apiserver/pkg/quota/v1/generic/OWNERS @@ -0,0 +1,5 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: +- smarterclayton +- derekwaynecarr diff --git a/vendor/k8s.io/apiserver/pkg/registry/generic/OWNERS b/vendor/k8s.io/apiserver/pkg/registry/generic/OWNERS new file mode 100644 index 000000000000..3ac0d161dc51 --- /dev/null +++ b/vendor/k8s.io/apiserver/pkg/registry/generic/OWNERS @@ -0,0 +1,28 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: +- thockin +- lavalamp +- smarterclayton +- wojtek-t +- deads2k +- yujuhong +- derekwaynecarr +- caesarxuchao +- mikedanese +- liggitt +- nikhiljindal +- gmarek +- davidopp +- saad-ali +- janetkuo +- pwittrock +- ncdc +- piosz +- dims +- hongchaodeng +- krousey +- xiang90 +- resouer +- sdminonne +- enj diff --git a/vendor/k8s.io/apiserver/pkg/registry/rest/OWNERS b/vendor/k8s.io/apiserver/pkg/registry/rest/OWNERS new file mode 100644 index 000000000000..55e6178184c0 --- /dev/null +++ b/vendor/k8s.io/apiserver/pkg/registry/rest/OWNERS @@ -0,0 +1,23 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: +- thockin +- smarterclayton +- wojtek-t +- deads2k +- brendandburns +- derekwaynecarr +- caesarxuchao +- mikedanese +- liggitt +- nikhiljindal +- gmarek +- justinsb +- ncdc +- dims +- hongchaodeng +- krousey +- ingvagabund +- jianhuiz +- sdminonne +- enj diff --git a/vendor/k8s.io/apiserver/pkg/server/filters/OWNERS b/vendor/k8s.io/apiserver/pkg/server/filters/OWNERS new file mode 100644 index 000000000000..c5f73991a315 --- /dev/null +++ b/vendor/k8s.io/apiserver/pkg/server/filters/OWNERS @@ -0,0 +1,5 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: +- sttts +- dims diff --git a/vendor/k8s.io/apiserver/pkg/server/healthz/healthz.go b/vendor/k8s.io/apiserver/pkg/server/healthz/healthz.go index f5eae360fbb3..033727ba24e0 100644 --- a/vendor/k8s.io/apiserver/pkg/server/healthz/healthz.go +++ b/vendor/k8s.io/apiserver/pkg/server/healthz/healthz.go @@ -140,10 +140,11 @@ func InstallReadyzHandler(mux mux, checks ...HealthChecker) { InstallPathHandler(mux, "/readyz", checks...) } -// InstallReadyzHandlerWithHealthyFunc is like InstallReadyzHandler, but in addition call firstTimeReady -// the first time /readyz succeeds. +// InstallReadyzHandlerWithHealthyFunc is like InstallReadyzHandler but allows for small customization +// - calls firstTimeHealthy the first time /readyz succeeds. +// - disables putting a stacktrace for httplog so that it doesn't log stack trace when HTTP 500 response is returned func InstallReadyzHandlerWithHealthyFunc(mux mux, firstTimeReady func(), checks ...HealthChecker) { - InstallPathHandlerWithHealthyFunc(mux, "/readyz", firstTimeReady, checks...) + InstallPathHandlerWithHealthyFunc(mux, "/readyz", firstTimeReady, true, checks...) } // InstallLivezHandler registers handlers for liveness checking on the path @@ -160,12 +161,13 @@ func InstallLivezHandler(mux mux, checks ...HealthChecker) { // InstallPathHandler more than once for the same path and mux will // result in a panic. func InstallPathHandler(mux mux, path string, checks ...HealthChecker) { - InstallPathHandlerWithHealthyFunc(mux, path, nil, checks...) + InstallPathHandlerWithHealthyFunc(mux, path, nil, false, checks...) } -// InstallPathHandlerWithHealthyFunc is like InstallPathHandler, but calls firstTimeHealthy exactly once -// when the handler succeeds for the first time. -func InstallPathHandlerWithHealthyFunc(mux mux, path string, firstTimeHealthy func(), checks ...HealthChecker) { +// InstallPathHandlerWithHealthyFunc is like InstallPathHandler but: +// - calls firstTimeHealthy exactly once when the handler succeeds for the first time +// - allows for disabling putting a stacktrace for httplog for the current request so that the output is condensed +func InstallPathHandlerWithHealthyFunc(mux mux, path string, firstTimeHealthy func(), disableStacktraceForHttpLog bool, checks ...HealthChecker) { if len(checks) == 0 { klog.V(5).Info("No default health checks specified. Installing the ping handler.") checks = []HealthChecker{PingHealthz} @@ -184,9 +186,9 @@ func InstallPathHandlerWithHealthyFunc(mux mux, path string, firstTimeHealthy fu /* component = */ "", /* deprecated */ false, /* removedRelease */ "", - handleRootHealth(name, firstTimeHealthy, checks...))) + handleRootHealth(name, firstTimeHealthy, disableStacktraceForHttpLog, checks...))) for _, check := range checks { - mux.Handle(fmt.Sprintf("%s/%v", path, check.Name()), adaptCheckToHandler(check.Check)) + mux.Handle(fmt.Sprintf("%s/%v", path, check.Name()), adaptCheckToHandler(check.Check, disableStacktraceForHttpLog)) } } @@ -221,7 +223,7 @@ func getExcludedChecks(r *http.Request) sets.String { } // handleRootHealth returns an http.HandlerFunc that serves the provided checks. -func handleRootHealth(name string, firstTimeHealthy func(), checks ...HealthChecker) http.HandlerFunc { +func handleRootHealth(name string, firstTimeHealthy func(), disableStacktraceForHttpLog bool, checks ...HealthChecker) http.HandlerFunc { var notifyOnce sync.Once return func(w http.ResponseWriter, r *http.Request) { @@ -255,8 +257,14 @@ func handleRootHealth(name string, firstTimeHealthy func(), checks ...HealthChec } // always be verbose on failure if len(failedChecks) > 0 { + // update the stacktrace predicate so that httplog's output is condensed + // this handler is used for health checking on the paths like /healthz or /readyz + // for some (/readyz) the StatusInternalServerError is considered as a "normal" response code to signal the other end + if disableStacktraceForHttpLog { + httplog.DisableStackTraceForRequest(r) + } klog.V(2).Infof("%s check failed: %s\n%v", strings.Join(failedChecks, ","), name, failedVerboseLogOutput.String()) - http.Error(httplog.Unlogged(r, w), fmt.Sprintf("%s%s check failed", individualCheckOutput.String(), name), http.StatusInternalServerError) + http.Error(w, fmt.Sprintf("%s%s check failed", individualCheckOutput.String(), name), http.StatusInternalServerError) return } @@ -279,10 +287,13 @@ func handleRootHealth(name string, firstTimeHealthy func(), checks ...HealthChec } // adaptCheckToHandler returns an http.HandlerFunc that serves the provided checks. -func adaptCheckToHandler(c func(r *http.Request) error) http.HandlerFunc { +func adaptCheckToHandler(c func(r *http.Request) error, disableStacktraceForHttpLog bool) http.HandlerFunc { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { err := c(r) if err != nil { + if disableStacktraceForHttpLog { + httplog.DisableStackTraceForRequest(r) + } http.Error(w, fmt.Sprintf("internal server error: %v", err), http.StatusInternalServerError) } else { fmt.Fprint(w, "ok") diff --git a/vendor/k8s.io/apiserver/pkg/server/httplog/httplog.go b/vendor/k8s.io/apiserver/pkg/server/httplog/httplog.go index f991fd3835c9..0ab4dcb78f61 100644 --- a/vendor/k8s.io/apiserver/pkg/server/httplog/httplog.go +++ b/vendor/k8s.io/apiserver/pkg/server/httplog/httplog.go @@ -135,6 +135,15 @@ func Unlogged(req *http.Request, w http.ResponseWriter) http.ResponseWriter { return w } +// DisableStackTraceForRequest stops putting a stacktrace into the log. +func DisableStackTraceForRequest(req *http.Request) { + rl := respLoggerFromContext(req) + if rl == nil { + return + } + rl.StacktraceWhen(func(int) bool { return false }) +} + // StacktraceWhen sets the stacktrace logging predicate, which decides when to log a stacktrace. // There's a default, so you don't need to call this unless you don't like the default. func (rl *respLogger) StacktraceWhen(pred StacktracePred) *respLogger { diff --git a/vendor/k8s.io/apiserver/pkg/server/mux/OWNERS b/vendor/k8s.io/apiserver/pkg/server/mux/OWNERS new file mode 100644 index 000000000000..4da107c8c38e --- /dev/null +++ b/vendor/k8s.io/apiserver/pkg/server/mux/OWNERS @@ -0,0 +1,4 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: +- sttts diff --git a/vendor/k8s.io/apiserver/pkg/server/options/OWNERS b/vendor/k8s.io/apiserver/pkg/server/options/OWNERS new file mode 100644 index 000000000000..0e84109d7d44 --- /dev/null +++ b/vendor/k8s.io/apiserver/pkg/server/options/OWNERS @@ -0,0 +1,16 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: +- smarterclayton +- wojtek-t +- deads2k +- liggitt +- nikhiljindal +- sttts +- jlowdermilk +- soltysh +- dims +- cjcullen +- ping035627 +- xiangpengzhao +- enj diff --git a/vendor/k8s.io/apiserver/pkg/server/options/encryptionconfig/OWNERS b/vendor/k8s.io/apiserver/pkg/server/options/encryptionconfig/OWNERS new file mode 100644 index 000000000000..71edc3ecdcc3 --- /dev/null +++ b/vendor/k8s.io/apiserver/pkg/server/options/encryptionconfig/OWNERS @@ -0,0 +1,9 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- sig-auth-encryption-at-rest-approvers +reviewers: +- sig-auth-encryption-at-rest-reviewers +labels: +- sig/auth + diff --git a/vendor/k8s.io/apiserver/pkg/server/routes/OWNERS b/vendor/k8s.io/apiserver/pkg/server/routes/OWNERS new file mode 100644 index 000000000000..4da107c8c38e --- /dev/null +++ b/vendor/k8s.io/apiserver/pkg/server/routes/OWNERS @@ -0,0 +1,4 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: +- sttts diff --git a/vendor/k8s.io/apiserver/pkg/storage/OWNERS b/vendor/k8s.io/apiserver/pkg/storage/OWNERS new file mode 100644 index 000000000000..167792c32773 --- /dev/null +++ b/vendor/k8s.io/apiserver/pkg/storage/OWNERS @@ -0,0 +1,26 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- lavalamp +- liggitt +- timothysc +- wojtek-t +- xiang90 +reviewers: +- lavalamp +- smarterclayton +- wojtek-t +- deads2k +- caesarxuchao +- mikedanese +- liggitt +- ncdc +- timothysc +- hongchaodeng +- krousey +- xiang90 +- mml +- ingvagabund +- resouer +- mbohlool +- enj diff --git a/vendor/k8s.io/apiserver/pkg/storage/etcd3/OWNERS b/vendor/k8s.io/apiserver/pkg/storage/etcd3/OWNERS new file mode 100644 index 000000000000..84666835da67 --- /dev/null +++ b/vendor/k8s.io/apiserver/pkg/storage/etcd3/OWNERS @@ -0,0 +1,7 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: +- wojtek-t +- timothysc +- madhusudancs +- hongchaodeng diff --git a/vendor/k8s.io/apiserver/pkg/storage/etcd3/metrics/metrics.go b/vendor/k8s.io/apiserver/pkg/storage/etcd3/metrics/metrics.go index 1f001406a71c..53be9ae5fcff 100644 --- a/vendor/k8s.io/apiserver/pkg/storage/etcd3/metrics/metrics.go +++ b/vendor/k8s.io/apiserver/pkg/storage/etcd3/metrics/metrics.go @@ -37,10 +37,8 @@ var ( &compbasemetrics.HistogramOpts{ Name: "etcd_request_duration_seconds", Help: "Etcd request latency in seconds for each operation and object type.", - // Keeping it similar to the buckets used by the apiserver_request_duration_seconds metric so that - // api latency and etcd latency can be more comparable side by side. - Buckets: []float64{.005, .01, .025, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.6, 0.7, - 0.8, 0.9, 1.0, 1.25, 1.5, 1.75, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30, 40, 50, 60}, + // Etcd request latency in seconds for each operation and object type. + Buckets: []float64{0.005, 0.025, 0.1, 0.25, 0.5, 1.0, 2.0, 4.0, 15.0, 30.0, 60.0}, StabilityLevel: compbasemetrics.ALPHA, }, []string{"operation", "type"}, diff --git a/vendor/k8s.io/apiserver/pkg/storage/storagebackend/OWNERS b/vendor/k8s.io/apiserver/pkg/storage/storagebackend/OWNERS new file mode 100644 index 000000000000..dbef228c1a7f --- /dev/null +++ b/vendor/k8s.io/apiserver/pkg/storage/storagebackend/OWNERS @@ -0,0 +1,8 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: +- lavalamp +- smarterclayton +- wojtek-t +- timothysc +- hongchaodeng diff --git a/vendor/k8s.io/apiserver/pkg/storageversion/OWNERS b/vendor/k8s.io/apiserver/pkg/storageversion/OWNERS new file mode 100644 index 000000000000..ca9aa135841b --- /dev/null +++ b/vendor/k8s.io/apiserver/pkg/storageversion/OWNERS @@ -0,0 +1,5 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- caesarxuchao +- roycaihw diff --git a/vendor/k8s.io/apiserver/pkg/util/flowcontrol/metrics/sample_and_watermark.go b/vendor/k8s.io/apiserver/pkg/util/flowcontrol/metrics/sample_and_watermark.go index aade70093a7d..43bd13adb06a 100644 --- a/vendor/k8s.io/apiserver/pkg/util/flowcontrol/metrics/sample_and_watermark.go +++ b/vendor/k8s.io/apiserver/pkg/util/flowcontrol/metrics/sample_and_watermark.go @@ -160,17 +160,14 @@ func (saw *sampleAndWaterMarkHistograms) SetX1(x1 float64) { } func (saw *sampleAndWaterMarkHistograms) innerSet(updateXOrX1 func()) { - var when time.Time - var whenInt int64 - var acc sampleAndWaterMarkAccumulator - var wellOrdered bool - func() { + when, whenInt, acc, wellOrdered := func() (time.Time, int64, sampleAndWaterMarkAccumulator, bool) { saw.Lock() defer saw.Unlock() - when = saw.clock.Now() - whenInt = saw.quantize(when) - acc = saw.sampleAndWaterMarkAccumulator - wellOrdered = !when.Before(acc.lastSet) + // Moved these variables here to tiptoe around https://github.com/golang/go/issues/43570 for #97685 + when := saw.clock.Now() + whenInt := saw.quantize(when) + acc := saw.sampleAndWaterMarkAccumulator + wellOrdered := !when.Before(acc.lastSet) updateXOrX1() saw.relX = saw.x / saw.x1 if wellOrdered { @@ -195,6 +192,7 @@ func (saw *sampleAndWaterMarkHistograms) innerSet(updateXOrX1 func()) { } else if saw.relX > saw.hiRelX { saw.hiRelX = saw.relX } + return when, whenInt, acc, wellOrdered }() if !wellOrdered { lastSetS := acc.lastSet.String() diff --git a/vendor/k8s.io/apiserver/plugin/pkg/authenticator/token/oidc/OWNERS b/vendor/k8s.io/apiserver/plugin/pkg/authenticator/token/oidc/OWNERS new file mode 100644 index 000000000000..03fb44ea24bc --- /dev/null +++ b/vendor/k8s.io/apiserver/plugin/pkg/authenticator/token/oidc/OWNERS @@ -0,0 +1,7 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- ericchiang +reviewers: +- ericchiang +- rithujohn191 diff --git a/vendor/k8s.io/apiserver/plugin/pkg/authenticator/token/webhook/webhook.go b/vendor/k8s.io/apiserver/plugin/pkg/authenticator/token/webhook/webhook.go index d4bf1b45a916..5bedf4e5985f 100644 --- a/vendor/k8s.io/apiserver/plugin/pkg/authenticator/token/webhook/webhook.go +++ b/vendor/k8s.io/apiserver/plugin/pkg/authenticator/token/webhook/webhook.go @@ -104,14 +104,14 @@ func (w *WebhookTokenAuthenticator) AuthenticateToken(ctx context.Context, token } var ( result *authenticationv1.TokenReview - err error auds authenticator.Audiences ) - webhook.WithExponentialBackoff(ctx, w.retryBackoff, func() error { - result, err = w.tokenReview.Create(ctx, r, metav1.CreateOptions{}) - return err - }, webhook.DefaultShouldRetry) - if err != nil { + // WithExponentialBackoff will return tokenreview create error (tokenReviewErr) if any. + if err := webhook.WithExponentialBackoff(ctx, w.retryBackoff, func() error { + var tokenReviewErr error + result, tokenReviewErr = w.tokenReview.Create(ctx, r, metav1.CreateOptions{}) + return tokenReviewErr + }, webhook.DefaultShouldRetry); err != nil { // An error here indicates bad configuration or an outage. Log for debugging. klog.Errorf("Failed to make webhook authenticator request: %v", err) return nil, false, err diff --git a/vendor/k8s.io/apiserver/plugin/pkg/authorizer/webhook/webhook.go b/vendor/k8s.io/apiserver/plugin/pkg/authorizer/webhook/webhook.go index 5c9f28ad40c1..c31bd4a504e5 100644 --- a/vendor/k8s.io/apiserver/plugin/pkg/authorizer/webhook/webhook.go +++ b/vendor/k8s.io/apiserver/plugin/pkg/authorizer/webhook/webhook.go @@ -192,19 +192,17 @@ func (w *WebhookAuthorizer) Authorize(ctx context.Context, attr authorizer.Attri if entry, ok := w.responseCache.Get(string(key)); ok { r.Status = entry.(authorizationv1.SubjectAccessReviewStatus) } else { - var ( - result *authorizationv1.SubjectAccessReview - err error - ) - webhook.WithExponentialBackoff(ctx, w.retryBackoff, func() error { - result, err = w.subjectAccessReview.Create(ctx, r, metav1.CreateOptions{}) - return err - }, webhook.DefaultShouldRetry) - if err != nil { - // An error here indicates bad configuration or an outage. Log for debugging. + var result *authorizationv1.SubjectAccessReview + // WithExponentialBackoff will return SAR create error (sarErr) if any. + if err := webhook.WithExponentialBackoff(ctx, w.retryBackoff, func() error { + var sarErr error + result, sarErr = w.subjectAccessReview.Create(ctx, r, metav1.CreateOptions{}) + return sarErr + }, webhook.DefaultShouldRetry); err != nil { klog.Errorf("Failed to make webhook authorizer request: %v", err) return w.decisionOnError, "", err } + r.Status = result.Status if shouldCache(attr) { if r.Status.Allowed { diff --git a/vendor/k8s.io/client-go/pkg/apis/clientauthentication/OWNERS b/vendor/k8s.io/client-go/pkg/apis/clientauthentication/OWNERS new file mode 100644 index 000000000000..e0ec62deb2bb --- /dev/null +++ b/vendor/k8s.io/client-go/pkg/apis/clientauthentication/OWNERS @@ -0,0 +1,9 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +# approval on api packages bubbles to api-approvers +reviewers: +- sig-auth-authenticators-approvers +- sig-auth-authenticators-reviewers +labels: +- sig/auth + diff --git a/vendor/k8s.io/client-go/plugin/pkg/client/auth/OWNERS b/vendor/k8s.io/client-go/plugin/pkg/client/auth/OWNERS new file mode 100644 index 000000000000..3e05d309be52 --- /dev/null +++ b/vendor/k8s.io/client-go/plugin/pkg/client/auth/OWNERS @@ -0,0 +1,9 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- sig-auth-authenticators-approvers +reviewers: +- sig-auth-authenticators-reviewers +labels: +- sig/auth + diff --git a/vendor/k8s.io/client-go/plugin/pkg/client/auth/gcp/OWNERS b/vendor/k8s.io/client-go/plugin/pkg/client/auth/gcp/OWNERS new file mode 100644 index 000000000000..97fcd3dd3025 --- /dev/null +++ b/vendor/k8s.io/client-go/plugin/pkg/client/auth/gcp/OWNERS @@ -0,0 +1,8 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- cjcullen +- jlowdermilk +reviewers: +- cjcullen +- jlowdermilk diff --git a/vendor/k8s.io/client-go/plugin/pkg/client/auth/oidc/OWNERS b/vendor/k8s.io/client-go/plugin/pkg/client/auth/oidc/OWNERS new file mode 100644 index 000000000000..03fb44ea24bc --- /dev/null +++ b/vendor/k8s.io/client-go/plugin/pkg/client/auth/oidc/OWNERS @@ -0,0 +1,7 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- ericchiang +reviewers: +- ericchiang +- rithujohn191 diff --git a/vendor/k8s.io/client-go/rest/OWNERS b/vendor/k8s.io/client-go/rest/OWNERS new file mode 100644 index 000000000000..c02ec6a250f0 --- /dev/null +++ b/vendor/k8s.io/client-go/rest/OWNERS @@ -0,0 +1,25 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: +- thockin +- smarterclayton +- caesarxuchao +- wojtek-t +- deads2k +- brendandburns +- liggitt +- nikhiljindal +- gmarek +- erictune +- sttts +- luxas +- dims +- errordeveloper +- hongchaodeng +- krousey +- resouer +- cjcullen +- rmmh +- asalkeld +- juanvallejo +- lojies diff --git a/vendor/k8s.io/client-go/tools/auth/OWNERS b/vendor/k8s.io/client-go/tools/auth/OWNERS new file mode 100644 index 000000000000..3e05d309be52 --- /dev/null +++ b/vendor/k8s.io/client-go/tools/auth/OWNERS @@ -0,0 +1,9 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- sig-auth-authenticators-approvers +reviewers: +- sig-auth-authenticators-reviewers +labels: +- sig/auth + diff --git a/vendor/k8s.io/client-go/tools/cache/OWNERS b/vendor/k8s.io/client-go/tools/cache/OWNERS new file mode 100644 index 000000000000..9d0a18771ece --- /dev/null +++ b/vendor/k8s.io/client-go/tools/cache/OWNERS @@ -0,0 +1,42 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- thockin +- lavalamp +- smarterclayton +- wojtek-t +- deads2k +- caesarxuchao +- liggitt +- ncdc +reviewers: +- thockin +- lavalamp +- smarterclayton +- wojtek-t +- deads2k +- brendandburns +- derekwaynecarr +- caesarxuchao +- mikedanese +- liggitt +- nikhiljindal +- erictune +- davidopp +- pmorie +- janetkuo +- justinsb +- soltysh +- jsafrane +- dims +- madhusudancs +- hongchaodeng +- krousey +- xiang90 +- mml +- ingvagabund +- resouer +- jessfraz +- mfojtik +- sdminonne +- ncdc diff --git a/vendor/k8s.io/client-go/tools/events/OWNERS b/vendor/k8s.io/client-go/tools/events/OWNERS new file mode 100644 index 000000000000..fbd0a6a013d7 --- /dev/null +++ b/vendor/k8s.io/client-go/tools/events/OWNERS @@ -0,0 +1,8 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- yastij +- wojtek-t +reviewers: +- yastij +- wojtek-t diff --git a/vendor/k8s.io/client-go/tools/leaderelection/OWNERS b/vendor/k8s.io/client-go/tools/leaderelection/OWNERS new file mode 100644 index 000000000000..9ece5e1ea4b7 --- /dev/null +++ b/vendor/k8s.io/client-go/tools/leaderelection/OWNERS @@ -0,0 +1,13 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- mikedanese +- timothysc +reviewers: +- wojtek-t +- deads2k +- mikedanese +- gmarek +- timothysc +- ingvagabund +- resouer diff --git a/vendor/k8s.io/client-go/tools/metrics/OWNERS b/vendor/k8s.io/client-go/tools/metrics/OWNERS new file mode 100644 index 000000000000..77bcb5090cef --- /dev/null +++ b/vendor/k8s.io/client-go/tools/metrics/OWNERS @@ -0,0 +1,6 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: +- wojtek-t +- krousey +- jayunit100 diff --git a/vendor/k8s.io/client-go/tools/record/OWNERS b/vendor/k8s.io/client-go/tools/record/OWNERS new file mode 100644 index 000000000000..792f356b0db1 --- /dev/null +++ b/vendor/k8s.io/client-go/tools/record/OWNERS @@ -0,0 +1,28 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: +- lavalamp +- smarterclayton +- wojtek-t +- deads2k +- derekwaynecarr +- caesarxuchao +- vishh +- mikedanese +- liggitt +- nikhiljindal +- erictune +- pmorie +- dchen1107 +- saad-ali +- luxas +- yifan-gu +- mwielgus +- timothysc +- jsafrane +- dims +- krousey +- a-robinson +- aveshagarwal +- resouer +- cjcullen diff --git a/vendor/k8s.io/client-go/transport/OWNERS b/vendor/k8s.io/client-go/transport/OWNERS new file mode 100644 index 000000000000..a52176903c00 --- /dev/null +++ b/vendor/k8s.io/client-go/transport/OWNERS @@ -0,0 +1,9 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: +- smarterclayton +- wojtek-t +- deads2k +- liggitt +- krousey +- caesarxuchao diff --git a/vendor/k8s.io/client-go/util/cert/OWNERS b/vendor/k8s.io/client-go/util/cert/OWNERS new file mode 100644 index 000000000000..3cf03643835a --- /dev/null +++ b/vendor/k8s.io/client-go/util/cert/OWNERS @@ -0,0 +1,9 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- sig-auth-certificates-approvers +reviewers: +- sig-auth-certificates-reviewers +labels: +- sig/auth + diff --git a/vendor/k8s.io/client-go/util/certificate/OWNERS b/vendor/k8s.io/client-go/util/certificate/OWNERS new file mode 100644 index 000000000000..3cf03643835a --- /dev/null +++ b/vendor/k8s.io/client-go/util/certificate/OWNERS @@ -0,0 +1,9 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- sig-auth-certificates-approvers +reviewers: +- sig-auth-certificates-reviewers +labels: +- sig/auth + diff --git a/vendor/k8s.io/client-go/util/keyutil/OWNERS b/vendor/k8s.io/client-go/util/keyutil/OWNERS new file mode 100644 index 000000000000..470b7a1c92d1 --- /dev/null +++ b/vendor/k8s.io/client-go/util/keyutil/OWNERS @@ -0,0 +1,7 @@ +approvers: +- sig-auth-certificates-approvers +reviewers: +- sig-auth-certificates-reviewers +labels: +- sig/auth + diff --git a/vendor/k8s.io/client-go/util/retry/OWNERS b/vendor/k8s.io/client-go/util/retry/OWNERS new file mode 100644 index 000000000000..dec3e88d6318 --- /dev/null +++ b/vendor/k8s.io/client-go/util/retry/OWNERS @@ -0,0 +1,4 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: +- caesarxuchao diff --git a/vendor/k8s.io/cloud-provider/OWNERS b/vendor/k8s.io/cloud-provider/OWNERS new file mode 100644 index 000000000000..b5c5205c9d84 --- /dev/null +++ b/vendor/k8s.io/cloud-provider/OWNERS @@ -0,0 +1,38 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- mikedanese +- dims +- wlan0 +- andrewsykim +- cheftako +reviewers: +- wojtek-t +- deads2k +- derekwaynecarr +- vishh +- mikedanese +- liggitt +- gmarek +- davidopp +- pmorie +- sttts +- quinton-hoole +- dchen1107 +- saad-ali +- luxas +- justinsb +- piosz +- jsafrane +- dims +- krousey +- rootfs +- freehan +- jingxu97 +- wlan0 +- cheftako +- andrewsykim +- mcrute +labels: +- sig/cloud-provider +- area/cloudprovider diff --git a/vendor/k8s.io/component-base/config/OWNERS b/vendor/k8s.io/component-base/config/OWNERS new file mode 100644 index 000000000000..11d499d75d91 --- /dev/null +++ b/vendor/k8s.io/component-base/config/OWNERS @@ -0,0 +1,14 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +# Disable inheritance as this is an api owners file +options: + no_parent_owners: true +approvers: +- api-approvers +reviewers: +- api-reviewers +- luxas +- mtaufen +- sttts +labels: +- kind/api-change diff --git a/vendor/k8s.io/component-base/logs/OWNERS b/vendor/k8s.io/component-base/logs/OWNERS new file mode 100644 index 000000000000..58b1a4d7b4d0 --- /dev/null +++ b/vendor/k8s.io/component-base/logs/OWNERS @@ -0,0 +1,8 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- sig-instrumentation-approvers +reviewers: +- sig-instrumentation-reviewers +labels: +- sig/instrumentation diff --git a/vendor/k8s.io/component-base/metrics/OWNERS b/vendor/k8s.io/component-base/metrics/OWNERS new file mode 100644 index 000000000000..a9c3172f3989 --- /dev/null +++ b/vendor/k8s.io/component-base/metrics/OWNERS @@ -0,0 +1,10 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- sig-instrumentation-approvers +- logicalhan +- RainbowMango +reviewers: +- sig-instrumentation-reviewers +labels: +- sig/instrumentation diff --git a/vendor/k8s.io/component-base/metrics/prometheus/ratelimiter/OWNERS b/vendor/k8s.io/component-base/metrics/prometheus/ratelimiter/OWNERS new file mode 100644 index 000000000000..676675f33a12 --- /dev/null +++ b/vendor/k8s.io/component-base/metrics/prometheus/ratelimiter/OWNERS @@ -0,0 +1,9 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- sig-instrumentation-approvers +- logicalhan +reviewers: +- sig-instrumentation-reviewers +labels: +- sig/instrumentation \ No newline at end of file diff --git a/vendor/k8s.io/csi-translation-lib/OWNERS b/vendor/k8s.io/csi-translation-lib/OWNERS new file mode 100644 index 000000000000..84dffb0952ed --- /dev/null +++ b/vendor/k8s.io/csi-translation-lib/OWNERS @@ -0,0 +1,14 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: + - davidz627 + - saad-ali + - msau42 + - ddebroy + - leakingtapan + - andyzhangx + +approvers: + - davidz627 + - saad-ali + - msau42 diff --git a/vendor/k8s.io/kubectl/pkg/util/openapi/OWNERS b/vendor/k8s.io/kubectl/pkg/util/openapi/OWNERS new file mode 100644 index 000000000000..99dabed0834c --- /dev/null +++ b/vendor/k8s.io/kubectl/pkg/util/openapi/OWNERS @@ -0,0 +1,6 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- apelisse +reviewers: +- apelisse diff --git a/vendor/k8s.io/kubelet/pkg/apis/credentialprovider/OWNERS b/vendor/k8s.io/kubelet/pkg/apis/credentialprovider/OWNERS new file mode 100644 index 000000000000..b74b7dda04aa --- /dev/null +++ b/vendor/k8s.io/kubelet/pkg/apis/credentialprovider/OWNERS @@ -0,0 +1,10 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +# Disable inheritance as this is an api owners file +options: + no_parent_owners: true +approvers: +- api-approvers +reviewers: +- sig-node-api-reviewers +- sig-auth-api-reviewers diff --git a/vendor/k8s.io/kubernetes/cmd/kubelet/app/OWNERS b/vendor/k8s.io/kubernetes/cmd/kubelet/app/OWNERS new file mode 100644 index 000000000000..d7211290337b --- /dev/null +++ b/vendor/k8s.io/kubernetes/cmd/kubelet/app/OWNERS @@ -0,0 +1,4 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: +- sig-node-reviewers diff --git a/vendor/k8s.io/kubernetes/openshift-hack/e2e/annotate/rules.go b/vendor/k8s.io/kubernetes/openshift-hack/e2e/annotate/rules.go index 797218ae9cd6..9704f2c30284 100644 --- a/vendor/k8s.io/kubernetes/openshift-hack/e2e/annotate/rules.go +++ b/vendor/k8s.io/kubernetes/openshift-hack/e2e/annotate/rules.go @@ -77,9 +77,6 @@ var ( "should reject a Pod requesting a RuntimeClass with conflicting node selector", "should run a Pod requesting a RuntimeClass with scheduling", - // A fix is in progress: https://github.com/openshift/origin/pull/24709 - `Multi-AZ Clusters should spread the pods of a replication controller across zones`, - // NFS umount is broken in kernels 5.7+ // https://bugzilla.redhat.com/show_bug.cgi?id=1854379 `\[sig-storage\].*\[Driver: nfs\] \[Testpattern: Dynamic PV \(default fs\)\].*subPath should be able to unmount after the subpath directory is deleted`, diff --git a/vendor/k8s.io/kubernetes/pkg/api/persistentvolume/OWNERS b/vendor/k8s.io/kubernetes/pkg/api/persistentvolume/OWNERS new file mode 100644 index 000000000000..28be348c3caa --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/api/persistentvolume/OWNERS @@ -0,0 +1,5 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: +- smarterclayton +- jsafrane diff --git a/vendor/k8s.io/kubernetes/pkg/api/persistentvolumeclaim/OWNERS b/vendor/k8s.io/kubernetes/pkg/api/persistentvolumeclaim/OWNERS new file mode 100644 index 000000000000..28be348c3caa --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/api/persistentvolumeclaim/OWNERS @@ -0,0 +1,5 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: +- smarterclayton +- jsafrane diff --git a/vendor/k8s.io/kubernetes/pkg/api/pod/OWNERS b/vendor/k8s.io/kubernetes/pkg/api/pod/OWNERS new file mode 100644 index 000000000000..8048dbb3a81e --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/api/pod/OWNERS @@ -0,0 +1,5 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: +- smarterclayton +- thockin diff --git a/vendor/k8s.io/kubernetes/pkg/api/podsecuritypolicy/OWNERS b/vendor/k8s.io/kubernetes/pkg/api/podsecuritypolicy/OWNERS new file mode 100644 index 000000000000..cb59b2cfa314 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/api/podsecuritypolicy/OWNERS @@ -0,0 +1,5 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: +- smarterclayton +- jessfraz diff --git a/vendor/k8s.io/kubernetes/pkg/api/service/OWNERS b/vendor/k8s.io/kubernetes/pkg/api/service/OWNERS new file mode 100644 index 000000000000..0abbe713952d --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/api/service/OWNERS @@ -0,0 +1,5 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: +- justinsb +- freehan diff --git a/vendor/k8s.io/kubernetes/pkg/apis/abac/OWNERS b/vendor/k8s.io/kubernetes/pkg/apis/abac/OWNERS new file mode 100644 index 000000000000..42148e6acd6f --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/apis/abac/OWNERS @@ -0,0 +1,8 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: +- lavalamp +- smarterclayton +- deads2k +- liggitt +- mbohlool diff --git a/vendor/k8s.io/kubernetes/pkg/apis/apps/OWNERS b/vendor/k8s.io/kubernetes/pkg/apis/apps/OWNERS new file mode 100644 index 000000000000..13db28cb0c00 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/apis/apps/OWNERS @@ -0,0 +1,21 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: +- thockin +- lavalamp +- smarterclayton +- deads2k +- caesarxuchao +- pmorie +- sttts +- saad-ali +- ncdc +- dims +- errordeveloper +- mml +- m1093782566 +- mbohlool +- kevin-wangzefeng +- jianhuiz +labels: +- sig/apps diff --git a/vendor/k8s.io/kubernetes/pkg/apis/authentication/OWNERS b/vendor/k8s.io/kubernetes/pkg/apis/authentication/OWNERS new file mode 100644 index 000000000000..e0ec62deb2bb --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/apis/authentication/OWNERS @@ -0,0 +1,9 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +# approval on api packages bubbles to api-approvers +reviewers: +- sig-auth-authenticators-approvers +- sig-auth-authenticators-reviewers +labels: +- sig/auth + diff --git a/vendor/k8s.io/kubernetes/pkg/apis/authorization/OWNERS b/vendor/k8s.io/kubernetes/pkg/apis/authorization/OWNERS new file mode 100644 index 000000000000..dbc9a28c6f2c --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/apis/authorization/OWNERS @@ -0,0 +1,9 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +# approval on api packages bubbles to api-approvers +reviewers: +- sig-auth-authorizers-approvers +- sig-auth-authorizers-reviewers +labels: +- sig/auth + diff --git a/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/OWNERS b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/OWNERS new file mode 100644 index 000000000000..08814e0eb3e8 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/apis/autoscaling/OWNERS @@ -0,0 +1,19 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: +- thockin +- lavalamp +- smarterclayton +- wojtek-t +- deads2k +- caesarxuchao +- erictune +- sttts +- ncdc +- piosz +- dims +- errordeveloper +- madhusudancs +- mml +- mbohlool +- jianhuiz diff --git a/vendor/k8s.io/kubernetes/pkg/apis/batch/OWNERS b/vendor/k8s.io/kubernetes/pkg/apis/batch/OWNERS new file mode 100644 index 000000000000..ea5e31b74d09 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/apis/batch/OWNERS @@ -0,0 +1,21 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: +- thockin +- lavalamp +- smarterclayton +- wojtek-t +- deads2k +- caesarxuchao +- erictune +- sttts +- saad-ali +- ncdc +- soltysh +- dims +- errordeveloper +- mml +- mbohlool +- jianhuiz +labels: +- sig/apps diff --git a/vendor/k8s.io/kubernetes/pkg/apis/certificates/OWNERS b/vendor/k8s.io/kubernetes/pkg/apis/certificates/OWNERS new file mode 100644 index 000000000000..9e866a52dcca --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/apis/certificates/OWNERS @@ -0,0 +1,9 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +# approval on api packages bubbles to api-approvers +reviewers: +- sig-auth-certificates-approvers +- sig-auth-certificates-reviewers +labels: +- sig/auth + diff --git a/vendor/k8s.io/kubernetes/pkg/apis/core/OWNERS b/vendor/k8s.io/kubernetes/pkg/apis/core/OWNERS new file mode 100644 index 000000000000..a689545f7bfe --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/apis/core/OWNERS @@ -0,0 +1,42 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- erictune +- lavalamp +- smarterclayton +- thockin +- liggitt +reviewers: +- thockin +- lavalamp +- smarterclayton +- wojtek-t +- deads2k +- yujuhong +- brendandburns +- derekwaynecarr +- caesarxuchao +- vishh +- mikedanese +- liggitt +- nikhiljindal +- gmarek +- erictune +- davidopp +- pmorie +- sttts +- dchen1107 +- saad-ali +- luxas +- janetkuo +- justinsb +- pwittrock +- ncdc +- tallclair +- yifan-gu +- mwielgus +- soltysh +- piosz +- jsafrane +labels: +- sig/apps diff --git a/vendor/k8s.io/kubernetes/pkg/apis/core/install/OWNERS b/vendor/k8s.io/kubernetes/pkg/apis/core/install/OWNERS new file mode 100644 index 000000000000..dfbbe68a5165 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/apis/core/install/OWNERS @@ -0,0 +1,10 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: +- lavalamp +- smarterclayton +- deads2k +- caesarxuchao +- liggitt +- nikhiljindal +- dims diff --git a/vendor/k8s.io/kubernetes/pkg/apis/core/v1/OWNERS b/vendor/k8s.io/kubernetes/pkg/apis/core/v1/OWNERS new file mode 100644 index 000000000000..66ba3983fad3 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/apis/core/v1/OWNERS @@ -0,0 +1,36 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: +- thockin +- lavalamp +- smarterclayton +- wojtek-t +- deads2k +- yujuhong +- brendandburns +- derekwaynecarr +- caesarxuchao +- vishh +- mikedanese +- liggitt +- nikhiljindal +- gmarek +- erictune +- davidopp +- pmorie +- sttts +- dchen1107 +- saad-ali +- luxas +- janetkuo +- justinsb +- ncdc +- tallclair +- piosz +- jsafrane +- dims +- errordeveloper +- madhusudancs +- krousey +- jayunit100 +- rootfs diff --git a/vendor/k8s.io/kubernetes/pkg/apis/core/validation/OWNERS b/vendor/k8s.io/kubernetes/pkg/apis/core/validation/OWNERS new file mode 100644 index 000000000000..861d1efdce89 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/apis/core/validation/OWNERS @@ -0,0 +1,34 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: +- thockin +- lavalamp +- smarterclayton +- wojtek-t +- deads2k +- yujuhong +- brendandburns +- derekwaynecarr +- caesarxuchao +- vishh +- mikedanese +- liggitt +- nikhiljindal +- gmarek +- erictune +- davidopp +- pmorie +- sttts +- quinton-hoole +- dchen1107 +- janetkuo +- justinsb +- pwittrock +- tallclair +- soltysh +- piosz +- jsafrane +- dims +- fejta +- krousey +- rootfs diff --git a/vendor/k8s.io/kubernetes/pkg/apis/extensions/OWNERS b/vendor/k8s.io/kubernetes/pkg/apis/extensions/OWNERS new file mode 100644 index 000000000000..aa353a9c67df --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/apis/extensions/OWNERS @@ -0,0 +1,38 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: +- thockin +- lavalamp +- smarterclayton +- wojtek-t +- deads2k +- brendandburns +- derekwaynecarr +- caesarxuchao +- mikedanese +- liggitt +- nikhiljindal +- erictune +- pmorie +- sttts +- saad-ali +- janetkuo +- justinsb +- ncdc +- tallclair +- mwielgus +- soltysh +- piosz +- dims +- errordeveloper +- madhusudancs +- rootfs +- mml +- resouer +- mbohlool +- therc +- pweil- +- lukaszo +- jianhuiz +labels: +- sig/apps diff --git a/vendor/k8s.io/kubernetes/pkg/apis/imagepolicy/OWNERS b/vendor/k8s.io/kubernetes/pkg/apis/imagepolicy/OWNERS new file mode 100644 index 000000000000..be41e934eb38 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/apis/imagepolicy/OWNERS @@ -0,0 +1,9 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +# approval on api packages bubbles to api-approvers +reviewers: +- sig-auth-policy-approvers +- sig-auth-policy-reviewers +labels: +- sig/auth + diff --git a/vendor/k8s.io/kubernetes/pkg/apis/networking/OWNERS b/vendor/k8s.io/kubernetes/pkg/apis/networking/OWNERS new file mode 100644 index 000000000000..1356fe5df43e --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/apis/networking/OWNERS @@ -0,0 +1,8 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- sig-network-api-approvers +reviewers: +- sig-network-api-reviewers +labels: +- sig/network diff --git a/vendor/k8s.io/kubernetes/pkg/apis/policy/OWNERS b/vendor/k8s.io/kubernetes/pkg/apis/policy/OWNERS new file mode 100644 index 000000000000..31a0a7358d6f --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/apis/policy/OWNERS @@ -0,0 +1,10 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +# approval on api packages bubbles to api-approvers +reviewers: +- sig-apps-api-approvers +- sig-auth-policy-approvers +- sig-auth-policy-reviewers +labels: +- sig/auth + diff --git a/vendor/k8s.io/kubernetes/pkg/apis/rbac/OWNERS b/vendor/k8s.io/kubernetes/pkg/apis/rbac/OWNERS new file mode 100644 index 000000000000..dbc9a28c6f2c --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/apis/rbac/OWNERS @@ -0,0 +1,9 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +# approval on api packages bubbles to api-approvers +reviewers: +- sig-auth-authorizers-approvers +- sig-auth-authorizers-reviewers +labels: +- sig/auth + diff --git a/vendor/k8s.io/kubernetes/pkg/apis/storage/OWNERS b/vendor/k8s.io/kubernetes/pkg/apis/storage/OWNERS new file mode 100644 index 000000000000..ec9af6c5dd0e --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/apis/storage/OWNERS @@ -0,0 +1,8 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- sig-storage-api-approvers +reviewers: +- sig-storage-api-reviewers +labels: +- sig/storage diff --git a/vendor/k8s.io/kubernetes/pkg/controller/OWNERS b/vendor/k8s.io/kubernetes/pkg/controller/OWNERS new file mode 100644 index 000000000000..a4f3bf7ea3a6 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/controller/OWNERS @@ -0,0 +1,15 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- deads2k +- derekwaynecarr +- mikedanese +- janetkuo +- cheftako +- sig-apps-approvers +reviewers: +- deads2k +- cheftako +- sig-apps-reviewers +labels: +- sig/apps diff --git a/vendor/k8s.io/kubernetes/pkg/controller/daemon/OWNERS b/vendor/k8s.io/kubernetes/pkg/controller/daemon/OWNERS new file mode 100644 index 000000000000..938e26b5eed6 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/controller/daemon/OWNERS @@ -0,0 +1,8 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- sig-apps-approvers +reviewers: +- sig-apps-reviewers +labels: +- sig/apps diff --git a/vendor/k8s.io/kubernetes/pkg/controller/job/OWNERS b/vendor/k8s.io/kubernetes/pkg/controller/job/OWNERS new file mode 100644 index 000000000000..938e26b5eed6 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/controller/job/OWNERS @@ -0,0 +1,8 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- sig-apps-approvers +reviewers: +- sig-apps-reviewers +labels: +- sig/apps diff --git a/vendor/k8s.io/kubernetes/pkg/controller/nodelifecycle/OWNERS b/vendor/k8s.io/kubernetes/pkg/controller/nodelifecycle/OWNERS new file mode 100644 index 000000000000..b1dae75b5c6f --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/controller/nodelifecycle/OWNERS @@ -0,0 +1,12 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- gmarek +- bowei +- k82cn +reviewers: +- gmarek +- smarterclayton +- ingvagabund +- aveshagarwal +- k82cn diff --git a/vendor/k8s.io/kubernetes/pkg/controller/replicaset/OWNERS b/vendor/k8s.io/kubernetes/pkg/controller/replicaset/OWNERS new file mode 100644 index 000000000000..938e26b5eed6 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/controller/replicaset/OWNERS @@ -0,0 +1,8 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- sig-apps-approvers +reviewers: +- sig-apps-reviewers +labels: +- sig/apps diff --git a/vendor/k8s.io/kubernetes/pkg/controller/replication/OWNERS b/vendor/k8s.io/kubernetes/pkg/controller/replication/OWNERS new file mode 100644 index 000000000000..938e26b5eed6 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/controller/replication/OWNERS @@ -0,0 +1,8 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- sig-apps-approvers +reviewers: +- sig-apps-reviewers +labels: +- sig/apps diff --git a/vendor/k8s.io/kubernetes/pkg/controller/serviceaccount/OWNERS b/vendor/k8s.io/kubernetes/pkg/controller/serviceaccount/OWNERS new file mode 100644 index 000000000000..c6c376de4e1e --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/controller/serviceaccount/OWNERS @@ -0,0 +1,9 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- sig-auth-serviceaccounts-approvers +reviewers: +- sig-auth-serviceaccounts-reviewers +labels: +- sig/auth + diff --git a/vendor/k8s.io/kubernetes/pkg/controller/volume/scheduling/OWNERS b/vendor/k8s.io/kubernetes/pkg/controller/volume/scheduling/OWNERS new file mode 100644 index 000000000000..227f06d80ea1 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/controller/volume/scheduling/OWNERS @@ -0,0 +1,9 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- msau42 +- cofyc +reviewers: +- msau42 +- cofyc +- lichuqiang diff --git a/vendor/k8s.io/kubernetes/pkg/controlplane/OWNERS b/vendor/k8s.io/kubernetes/pkg/controlplane/OWNERS new file mode 100644 index 000000000000..77950e3559ad --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/controlplane/OWNERS @@ -0,0 +1,42 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- deads2k +- derekwaynecarr +- lavalamp +- mikedanese +- nikhiljindal +- sttts +- wojtek-t +reviewers: +- thockin +- lavalamp +- smarterclayton +- wojtek-t +- deads2k +- yujuhong +- derekwaynecarr +- caesarxuchao +- mikedanese +- liggitt +- nikhiljindal +- gmarek +- erictune +- davidopp +- pmorie +- sttts +- dchen1107 +- saad-ali +- luxas +- janetkuo +- justinsb +- ncdc +- mwielgus +- timothysc +- soltysh +- piosz +- madhusudancs +- hongchaodeng +- enj +labels: +- sig/api-machinery diff --git a/vendor/k8s.io/kubernetes/pkg/credentialprovider/OWNERS b/vendor/k8s.io/kubernetes/pkg/credentialprovider/OWNERS new file mode 100644 index 000000000000..d96f6e41e727 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/credentialprovider/OWNERS @@ -0,0 +1,26 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- deads2k +- erictune +- liggitt +reviewers: +- thockin +- smarterclayton +- yujuhong +- brendandburns +- derekwaynecarr +- vishh +- mikedanese +- davidopp +- pmorie +- dchen1107 +- justinsb +- dims +- resouer +- mbohlool +- mfojtik +- therc +- andrewsykim +- mcrute +- andyzhangx diff --git a/vendor/k8s.io/kubernetes/pkg/credentialprovider/aws/OWNERS b/vendor/k8s.io/kubernetes/pkg/credentialprovider/aws/OWNERS new file mode 100644 index 000000000000..b581d7c8b4ad --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/credentialprovider/aws/OWNERS @@ -0,0 +1,6 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: +- justinsb +- therc +- chrislovecnm diff --git a/vendor/k8s.io/kubernetes/pkg/credentialprovider/azure/OWNERS b/vendor/k8s.io/kubernetes/pkg/credentialprovider/azure/OWNERS new file mode 100644 index 000000000000..957a7271e163 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/credentialprovider/azure/OWNERS @@ -0,0 +1,14 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- andyzhangx +- brendandburns +- feiskyer +- karataliu +- khenidak +reviewers: +- andyzhangx +- brendandburns +- feiskyer +- karataliu +- khenidak diff --git a/vendor/k8s.io/kubernetes/pkg/credentialprovider/gcp/OWNERS b/vendor/k8s.io/kubernetes/pkg/credentialprovider/gcp/OWNERS new file mode 100644 index 000000000000..d42107bcc36b --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/credentialprovider/gcp/OWNERS @@ -0,0 +1,12 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: +- thockin +- deads2k +- yujuhong +- derekwaynecarr +- vishh +- mikedanese +- davidopp +- dims +- therc diff --git a/vendor/k8s.io/kubernetes/pkg/features/OWNERS b/vendor/k8s.io/kubernetes/pkg/features/OWNERS new file mode 100644 index 000000000000..05b08249aed3 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/features/OWNERS @@ -0,0 +1,4 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- feature-approvers diff --git a/vendor/k8s.io/kubernetes/pkg/generated/openapi/OWNERS b/vendor/k8s.io/kubernetes/pkg/generated/openapi/OWNERS new file mode 100644 index 000000000000..8728c4f51578 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/generated/openapi/OWNERS @@ -0,0 +1,11 @@ +approvers: +- sttts +- roycaihw +- liggitt +reviewers: +- sttts +- roycaihw +- liggitt +labels: +- sig/api-machinery +- area/code-generation diff --git a/vendor/k8s.io/kubernetes/pkg/kubeapiserver/OWNERS b/vendor/k8s.io/kubernetes/pkg/kubeapiserver/OWNERS new file mode 100644 index 000000000000..0a877d78796c --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubeapiserver/OWNERS @@ -0,0 +1,17 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- deads2k +- lavalamp +- liggitt +- sttts +reviewers: +- deads2k +- lavalamp +- liggitt +- sttts +- cheftako +- logicalhan +labels: +- sig/api-machinery +- area/apiserver diff --git a/vendor/k8s.io/kubernetes/pkg/kubeapiserver/authenticator/OWNERS b/vendor/k8s.io/kubernetes/pkg/kubeapiserver/authenticator/OWNERS new file mode 100644 index 000000000000..3e05d309be52 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubeapiserver/authenticator/OWNERS @@ -0,0 +1,9 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- sig-auth-authenticators-approvers +reviewers: +- sig-auth-authenticators-reviewers +labels: +- sig/auth + diff --git a/vendor/k8s.io/kubernetes/pkg/kubeapiserver/authorizer/OWNERS b/vendor/k8s.io/kubernetes/pkg/kubeapiserver/authorizer/OWNERS new file mode 100644 index 000000000000..7b3130fdcbcc --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubeapiserver/authorizer/OWNERS @@ -0,0 +1,9 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- sig-auth-authorizers-approvers +reviewers: +- sig-auth-authorizers-reviewers +labels: +- sig/auth + diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/DOWNSTREAM_OWNERS b/vendor/k8s.io/kubernetes/pkg/kubelet/DOWNSTREAM_OWNERS new file mode 100644 index 000000000000..d484fa4fc246 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/DOWNSTREAM_OWNERS @@ -0,0 +1,17 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +# Downstream reviewers, don't have to match those in OWNERS +reviewers: + - rphillips + - sjenning + - mrunalp + +# Sub-package approvers from upstream with permission to approve downstream backports following these rules: +# - they MUST be approvers upstream (here compare https://github.com/kubernetes/kubernetes/blob/17bb2fc050ec786b60db7d8d6d4d3ac8eeac205b/pkg/kubelet/OWNERS#L10-L11) +# - they may approve "UPSTREAM: : ..." changes that merged upstream. +# - carry patches for "UPSTREAM: : ..." and any unmerged PRs of the previous kind will have to be approved by the top-level approvers. +approvers: + - sjenning + - mrunalp + +component: node diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/OWNERS b/vendor/k8s.io/kubernetes/pkg/kubelet/OWNERS index 7497e0cba964..f59c6982714d 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/OWNERS +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/OWNERS @@ -1,16 +1,22 @@ # See the OWNERS docs at https://go.k8s.io/owners -reviewers: - - rphillips - - sjenning - - mrunalp - -# adding mrunalp and sjenning from the upstream Kubelet OWNERS file: -# https://github.com/kubernetes/kubernetes/blob/17bb2fc050ec786b60db7d8d6d4d3ac8eeac205b/pkg/kubelet/OWNERS#L10-L11 -# sub-package approvers for "UPSTREAM: : ..." changes that merged upstream -# carry patches for "UPSTREAM: : ..." will be approved by the root level approvers +# same list as in https://github.com/kubernetes/kubernetes/blob/master/OWNERS_ALIASES#LC220:~:text=sig%2Dnode%2Dapprovers approvers: - - sjenning - - mrunalp +- Random-Liu +- dchen1107 +- derekwaynecarr +- vishh +- yujuhong +- sjenning +- mrunalp + +emeritus_approvers: +- dashpole + +reviewers: +- sig-node-reviewers # see https://github.com/kubernetes/kubernetes/blob/master/OWNERS_ALIASES#LC220:~:text=sig%2Dnode%2Dreviewers +- tallclair -component: node +labels: +- area/kubelet +- sig/node diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/apis/config/OWNERS b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/config/OWNERS new file mode 100644 index 000000000000..70b1183c89d3 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/config/OWNERS @@ -0,0 +1,9 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +# Disable inheritance as this is an api owners file +options: + no_parent_owners: true +approvers: +- api-approvers +reviewers: +- sig-node-api-reviewers diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/certificate/OWNERS b/vendor/k8s.io/kubernetes/pkg/kubelet/certificate/OWNERS new file mode 100644 index 000000000000..3cf03643835a --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/certificate/OWNERS @@ -0,0 +1,9 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- sig-auth-certificates-approvers +reviewers: +- sig-auth-certificates-reviewers +labels: +- sig/auth + diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/BUILD b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/BUILD index 6935ba92d09e..197486517c84 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/BUILD +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/BUILD @@ -15,6 +15,9 @@ go_library( "helpers_linux.go", "helpers_unsupported.go", "internal_container_lifecycle.go", + "internal_container_lifecycle_linux.go", + "internal_container_lifecycle_unsupported.go", + "internal_container_lifecycle_windows.go", "node_container_manager_linux.go", "pod_container_manager_linux.go", "pod_container_manager_stub.go", @@ -42,6 +45,7 @@ go_library( "//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library", "//staging/src/k8s.io/cri-api/pkg/apis:go_default_library", + "//staging/src/k8s.io/cri-api/pkg/apis/runtime/v1alpha2:go_default_library", "//staging/src/k8s.io/kubelet/pkg/apis/podresources/v1:go_default_library", "//vendor/k8s.io/klog/v2:go_default_library", ] + select({ diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/OWNERS b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/OWNERS new file mode 100644 index 000000000000..94a3d54d2bd9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/OWNERS @@ -0,0 +1,12 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- Random-Liu +- dchen1107 +- derekwaynecarr +- vishh +- yujuhong +- ConnorDoyle +- klueska +reviewers: +- sig-node-reviewers diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/container_manager_linux.go b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/container_manager_linux.go index eeea6a8b7e4e..fd732430d1ae 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/container_manager_linux.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/container_manager_linux.go @@ -1029,7 +1029,7 @@ func (cm *containerManagerImpl) GetDevices(podUID, containerName string) []*podr } func (cm *containerManagerImpl) GetCPUs(podUID, containerName string) []int64 { - return cm.cpuManager.GetCPUs(podUID, containerName) + return cm.cpuManager.GetCPUs(podUID, containerName).ToSliceNoSortInt64() } func (cm *containerManagerImpl) ShouldResetExtendedResourceCapacity() bool { diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/OWNERS b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/OWNERS new file mode 100644 index 000000000000..951ab1b6383b --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/OWNERS @@ -0,0 +1,9 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- derekwaynecarr +- vishh +- ConnorDoyle +- balajismaniam +reviewers: +- klueska diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/cpu_manager.go b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/cpu_manager.go index cab52ccaf77d..b4a17eb2053d 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/cpu_manager.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/cpu_manager.go @@ -60,10 +60,9 @@ type Manager interface { // e.g. at pod admission time. Allocate(pod *v1.Pod, container *v1.Container) error - // AddContainer is called between container create and container start - // so that initial CPU affinity settings can be written through to the - // container runtime before the first process begins to execute. - AddContainer(p *v1.Pod, c *v1.Container, containerID string) error + // AddContainer adds the mapping between container ID to pod UID and the container name + // The mapping used to remove the CPU allocation during the container removal + AddContainer(p *v1.Pod, c *v1.Container, containerID string) // RemoveContainer is called after Kubelet decides to kill or delete a // container. After this call, the CPU manager stops trying to reconcile @@ -80,7 +79,7 @@ type Manager interface { // GetCPUs implements the podresources.CPUsProvider interface to provide allocated // cpus for the container - GetCPUs(podUID, containerName string) []int64 + GetCPUs(podUID, containerName string) cpuset.CPUSet // GetPodTopologyHints implements the topologymanager.HintProvider Interface // and is consulted to achieve NUMA aware resource alignment per Pod @@ -237,29 +236,10 @@ func (m *manager) Allocate(p *v1.Pod, c *v1.Container) error { return nil } -func (m *manager) AddContainer(p *v1.Pod, c *v1.Container, containerID string) error { +func (m *manager) AddContainer(pod *v1.Pod, container *v1.Container, containerID string) { m.Lock() - // Get the CPUs assigned to the container during Allocate() - // (or fall back to the default CPUSet if none were assigned). - cpus := m.state.GetCPUSetOrDefault(string(p.UID), c.Name) - m.Unlock() - - if !cpus.IsEmpty() { - err := m.updateContainerCPUSet(containerID, cpus) - if err != nil { - klog.Errorf("[cpumanager] AddContainer error: error updating CPUSet for container (pod: %s, container: %s, container id: %s, err: %v)", p.Name, c.Name, containerID, err) - m.Lock() - err := m.policyRemoveContainerByRef(string(p.UID), c.Name) - if err != nil { - klog.Errorf("[cpumanager] AddContainer rollback state error: %v", err) - } - m.Unlock() - } - return err - } - - klog.V(5).Infof("[cpumanager] update container resources is skipped due to cpu set is empty") - return nil + defer m.Unlock() + m.containerMap.Add(string(pod.UID), container.Name, containerID) } func (m *manager) RemoveContainer(containerID string) error { @@ -478,11 +458,6 @@ func (m *manager) updateContainerCPUSet(containerID string, cpus cpuset.CPUSet) }) } -func (m *manager) GetCPUs(podUID, containerName string) []int64 { - cpus := m.state.GetCPUSetOrDefault(string(podUID), containerName) - result := []int64{} - for _, cpu := range cpus.ToSliceNoSort() { - result = append(result, int64(cpu)) - } - return result +func (m *manager) GetCPUs(podUID, containerName string) cpuset.CPUSet { + return m.state.GetCPUSetOrDefault(podUID, containerName) } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/fake_cpu_manager.go b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/fake_cpu_manager.go index 437a6af040c3..478534b1c1c0 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/fake_cpu_manager.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/fake_cpu_manager.go @@ -21,6 +21,7 @@ import ( "k8s.io/klog/v2" "k8s.io/kubernetes/pkg/kubelet/cm/containermap" "k8s.io/kubernetes/pkg/kubelet/cm/cpumanager/state" + "k8s.io/kubernetes/pkg/kubelet/cm/cpuset" "k8s.io/kubernetes/pkg/kubelet/cm/topologymanager" "k8s.io/kubernetes/pkg/kubelet/config" "k8s.io/kubernetes/pkg/kubelet/status" @@ -45,9 +46,8 @@ func (m *fakeManager) Allocate(pod *v1.Pod, container *v1.Container) error { return nil } -func (m *fakeManager) AddContainer(pod *v1.Pod, container *v1.Container, containerID string) error { +func (m *fakeManager) AddContainer(pod *v1.Pod, container *v1.Container, containerID string) { klog.Infof("[fake cpumanager] AddContainer (pod: %s, container: %s, container id: %s)", pod.Name, container.Name, containerID) - return nil } func (m *fakeManager) RemoveContainer(containerID string) error { @@ -69,9 +69,9 @@ func (m *fakeManager) State() state.Reader { return m.state } -func (m *fakeManager) GetCPUs(podUID, containerName string) []int64 { +func (m *fakeManager) GetCPUs(podUID, containerName string) cpuset.CPUSet { klog.Infof("[fake cpumanager] GetCPUs(podUID: %s, containerName: %s)", podUID, containerName) - return nil + return cpuset.CPUSet{} } // NewFakeManager creates empty/fake cpu manager diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpuset/OWNERS b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpuset/OWNERS new file mode 100644 index 000000000000..fe38ab54ee93 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpuset/OWNERS @@ -0,0 +1,6 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- derekwaynecarr +- vishh +- ConnorDoyle diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpuset/cpuset.go b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpuset/cpuset.go index ae2062bd8a8a..ad7ea27afa43 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpuset/cpuset.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/cpuset/cpuset.go @@ -19,11 +19,12 @@ package cpuset import ( "bytes" "fmt" - "k8s.io/klog/v2" "reflect" "sort" "strconv" "strings" + + "k8s.io/klog/v2" ) // Builder is a mutable builder for CPUSet. Functions that mutate instances @@ -198,6 +199,27 @@ func (s CPUSet) ToSliceNoSort() []int { return result } +// ToSliceInt64 returns an ordered slice of int64 that contains all elements from +// this set +func (s CPUSet) ToSliceInt64() []int64 { + var result []int64 + for cpu := range s.elems { + result = append(result, int64(cpu)) + } + sort.Slice(result, func(i, j int) bool { return result[i] < result[j] }) + return result +} + +// ToSliceNoSortInt64 returns a slice of int64 that contains all elements from +// this set. +func (s CPUSet) ToSliceNoSortInt64() []int64 { + var result []int64 + for cpu := range s.elems { + result = append(result, int64(cpu)) + } + return result +} + // String returns a new string representation of the elements in this CPU set // in canonical linux CPU list format. // diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/devicemanager/OWNERS b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/devicemanager/OWNERS new file mode 100644 index 000000000000..47978ec20b97 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/devicemanager/OWNERS @@ -0,0 +1,10 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- jiayingz +- vishh +reviewers: +- klueska +- mindprince +- RenaudWasTaken +- vikaschoudhary16 diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/fake_internal_container_lifecycle.go b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/fake_internal_container_lifecycle.go index 4709a9040206..153f3377d9aa 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/fake_internal_container_lifecycle.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/fake_internal_container_lifecycle.go @@ -18,6 +18,7 @@ package cm import ( "k8s.io/api/core/v1" + runtimeapi "k8s.io/cri-api/pkg/apis/runtime/v1alpha2" ) func NewFakeInternalContainerLifecycle() *fakeInternalContainerLifecycle { @@ -26,6 +27,10 @@ func NewFakeInternalContainerLifecycle() *fakeInternalContainerLifecycle { type fakeInternalContainerLifecycle struct{} +func (f *fakeInternalContainerLifecycle) PreCreateContainer(pod *v1.Pod, container *v1.Container, containerConfig *runtimeapi.ContainerConfig) error { + return nil +} + func (f *fakeInternalContainerLifecycle) PreStartContainer(pod *v1.Pod, container *v1.Container, containerID string) error { return nil } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/internal_container_lifecycle.go b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/internal_container_lifecycle.go index 690718e4e68a..0635ea0ed4f4 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/internal_container_lifecycle.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/internal_container_lifecycle.go @@ -18,14 +18,15 @@ package cm import ( "k8s.io/api/core/v1" - utilfeature "k8s.io/apiserver/pkg/util/feature" + runtimeapi "k8s.io/cri-api/pkg/apis/runtime/v1alpha2" kubefeatures "k8s.io/kubernetes/pkg/features" "k8s.io/kubernetes/pkg/kubelet/cm/cpumanager" "k8s.io/kubernetes/pkg/kubelet/cm/topologymanager" ) type InternalContainerLifecycle interface { + PreCreateContainer(pod *v1.Pod, container *v1.Container, containerConfig *runtimeapi.ContainerConfig) error PreStartContainer(pod *v1.Pod, container *v1.Container, containerID string) error PreStopContainer(containerID string) error PostStopContainer(containerID string) error @@ -39,11 +40,9 @@ type internalContainerLifecycleImpl struct { func (i *internalContainerLifecycleImpl) PreStartContainer(pod *v1.Pod, container *v1.Container, containerID string) error { if i.cpuManager != nil { - err := i.cpuManager.AddContainer(pod, container, containerID) - if err != nil { - return err - } + i.cpuManager.AddContainer(pod, container, containerID) } + if utilfeature.DefaultFeatureGate.Enabled(kubefeatures.TopologyManager) { err := i.topologyManager.AddContainer(pod, containerID) if err != nil { diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/internal_container_lifecycle_linux.go b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/internal_container_lifecycle_linux.go new file mode 100644 index 000000000000..dd0a37f086a1 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/internal_container_lifecycle_linux.go @@ -0,0 +1,35 @@ +// +build linux + +/* +Copyright 2021 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. +*/ + +package cm + +import ( + "k8s.io/api/core/v1" + runtimeapi "k8s.io/cri-api/pkg/apis/runtime/v1alpha2" +) + +func (i *internalContainerLifecycleImpl) PreCreateContainer(pod *v1.Pod, container *v1.Container, containerConfig *runtimeapi.ContainerConfig) error { + if i.cpuManager != nil { + allocatedCPUs := i.cpuManager.GetCPUs(string(pod.UID), container.Name) + if !allocatedCPUs.IsEmpty() { + containerConfig.Linux.Resources.CpusetCpus = allocatedCPUs.String() + } + } + + return nil +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/internal_container_lifecycle_unsupported.go b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/internal_container_lifecycle_unsupported.go new file mode 100644 index 000000000000..676bf9c4c1d7 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/internal_container_lifecycle_unsupported.go @@ -0,0 +1,28 @@ +// +build !linux,!windows + +/* +Copyright 2020 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. +*/ + +package cm + +import ( + "k8s.io/api/core/v1" + runtimeapi "k8s.io/cri-api/pkg/apis/runtime/v1alpha2" +) + +func (i *internalContainerLifecycleImpl) PreCreateContainer(pod *v1.Pod, container *v1.Container, containerConfig *runtimeapi.ContainerConfig) error { + return nil +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/internal_container_lifecycle_windows.go b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/internal_container_lifecycle_windows.go new file mode 100644 index 000000000000..0384d4d2ef42 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/internal_container_lifecycle_windows.go @@ -0,0 +1,28 @@ +// +build windows + +/* +Copyright 2020 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. +*/ + +package cm + +import ( + "k8s.io/api/core/v1" + runtimeapi "k8s.io/cri-api/pkg/apis/runtime/v1alpha2" +) + +func (i *internalContainerLifecycleImpl) PreCreateContainer(pod *v1.Pod, container *v1.Container, containerConfig *runtimeapi.ContainerConfig) error { + return nil +} diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/cm/topologymanager/OWNERS b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/topologymanager/OWNERS new file mode 100644 index 000000000000..453f9465dcb2 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/cm/topologymanager/OWNERS @@ -0,0 +1,10 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- ConnorDoyle +- derekwaynecarr +- klueska +- lmdaly + +reviewers: +- nolancon diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/cri/remote/OWNERS b/vendor/k8s.io/kubernetes/pkg/kubelet/cri/remote/OWNERS new file mode 100644 index 000000000000..b1e7523c7fcc --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/cri/remote/OWNERS @@ -0,0 +1,4 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- feiskyer diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/helpers_linux.go b/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/helpers_linux.go index 9ba71fd5b560..dfc09da575ef 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/helpers_linux.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/helpers_linux.go @@ -118,6 +118,7 @@ func (ds *dockerService) updateCreateConfig( CPUShares: rOpts.CpuShares, CPUQuota: rOpts.CpuQuota, CPUPeriod: rOpts.CpuPeriod, + CpusetCpus: rOpts.CpusetCpus, } createConfig.HostConfig.OomScoreAdj = int(rOpts.OomScoreAdj) } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/network/OWNERS b/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/network/OWNERS new file mode 100644 index 000000000000..e9845a747292 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/dockershim/network/OWNERS @@ -0,0 +1,10 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- sig-network-driver-approvers +emeritus_approvers: +- matchstick +reviewers: +- sig-network-reviewers +labels: +- sig/network diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet.go b/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet.go index d6e76281c73b..0c2491c90f59 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet.go @@ -124,6 +124,9 @@ const ( // Max amount of time to wait for the container runtime to come up. maxWaitForContainerRuntime = 30 * time.Second + // Max amount of time to wait for node list/watch to initially sync + maxWaitForAPIServerSync = 10 * time.Second + // nodeStatusUpdateRetry specifies how many times kubelet retries when posting node status failed. nodeStatusUpdateRetry = 5 @@ -431,14 +434,30 @@ func NewMainKubelet(kubeCfg *kubeletconfiginternal.KubeletConfiguration, serviceHasSynced = func() bool { return true } } - nodeIndexer := cache.NewIndexer(cache.MetaNamespaceKeyFunc, cache.Indexers{}) + var nodeHasSynced cache.InformerSynced + var nodeLister corelisters.NodeLister + if kubeDeps.KubeClient != nil { - fieldSelector := fields.Set{api.ObjectNameField: string(nodeName)}.AsSelector() - nodeLW := cache.NewListWatchFromClient(kubeDeps.KubeClient.CoreV1().RESTClient(), "nodes", metav1.NamespaceAll, fieldSelector) - r := cache.NewReflector(nodeLW, &v1.Node{}, nodeIndexer, 0) - go r.Run(wait.NeverStop) + kubeInformers := informers.NewSharedInformerFactoryWithOptions(kubeDeps.KubeClient, 0, informers.WithTweakListOptions(func(options *metav1.ListOptions) { + options.FieldSelector = fields.Set{api.ObjectNameField: string(nodeName)}.String() + })) + nodeLister = kubeInformers.Core().V1().Nodes().Lister() + nodeHasSynced = func() bool { + if kubeInformers.Core().V1().Nodes().Informer().HasSynced() { + return true + } + klog.Infof("kubelet nodes not sync") + return false + } + kubeInformers.Start(wait.NeverStop) + klog.Info("Kubelet client is not nil") + } else { + // we dont have a client to sync! + nodeIndexer := cache.NewIndexer(cache.MetaNamespaceKeyFunc, cache.Indexers{}) + nodeLister = corelisters.NewNodeLister(nodeIndexer) + nodeHasSynced = func() bool { return true } + klog.Info("Kubelet client is nil") } - nodeLister := corelisters.NewNodeLister(nodeIndexer) // construct a node reference used for events nodeRef := &v1.ObjectReference{ @@ -481,6 +500,7 @@ func NewMainKubelet(kubeCfg *kubeletconfiginternal.KubeletConfiguration, serviceLister: serviceLister, serviceHasSynced: serviceHasSynced, nodeLister: nodeLister, + nodeHasSynced: nodeHasSynced, masterServiceNamespace: masterServiceNamespace, streamingConnectionIdleTimeout: kubeCfg.StreamingConnectionIdleTimeout.Duration, recorder: kubeDeps.Recorder, @@ -881,7 +901,9 @@ type Kubelet struct { serviceHasSynced cache.InformerSynced // nodeLister knows how to list nodes nodeLister corelisters.NodeLister - + // nodeHasSynced indicates whether nodes have been sync'd at least once. + // Check this before trusting a response from the node lister. + nodeHasSynced cache.InformerSynced // a list of node labels to register nodeLabels map[string]string diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_getters.go b/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_getters.go index f786a6921b21..e8e2146d7444 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_getters.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/kubelet_getters.go @@ -22,6 +22,7 @@ import ( "io/ioutil" "net" "path/filepath" + "time" cadvisorapiv1 "github.com/google/cadvisor/info/v1" cadvisorv2 "github.com/google/cadvisor/info/v2" @@ -32,6 +33,7 @@ import ( v1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/types" + "k8s.io/apimachinery/pkg/util/wait" "k8s.io/kubernetes/pkg/kubelet/cm" "k8s.io/kubernetes/pkg/kubelet/config" kubecontainer "k8s.io/kubernetes/pkg/kubelet/container" @@ -235,6 +237,15 @@ func (kl *Kubelet) GetNode() (*v1.Node, error) { if kl.kubeClient == nil { return kl.initialNode(context.TODO()) } + // if we have a valid kube client, we wait for initial lister to sync + if !kl.nodeHasSynced() { + err := wait.PollImmediate(time.Second, maxWaitForAPIServerSync, func() (bool, error) { + return kl.nodeHasSynced(), nil + }) + if err != nil { + return nil, fmt.Errorf("nodes have not yet been read at least once, cannot construct node object") + } + } return kl.nodeLister.Get(string(kl.nodeName)) } @@ -245,7 +256,7 @@ func (kl *Kubelet) GetNode() (*v1.Node, error) { // zero capacity, and the default labels. func (kl *Kubelet) getNodeAnyWay() (*v1.Node, error) { if kl.kubeClient != nil { - if n, err := kl.nodeLister.Get(string(kl.nodeName)); err == nil { + if n, err := kl.GetNode(); err == nil { return n, nil } } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/OWNERS b/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/OWNERS new file mode 100644 index 000000000000..22935e940523 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/kubeletconfig/OWNERS @@ -0,0 +1,7 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- mtaufen +- dchen1107 +reviewers: +- sig-node-reviewers diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/kuberuntime_container.go b/vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/kuberuntime_container.go index 3f96ad7624fb..c28a66bec941 100644 --- a/vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/kuberuntime_container.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/kuberuntime/kuberuntime_container.go @@ -57,6 +57,8 @@ import ( var ( // ErrCreateContainerConfig - failed to create container config ErrCreateContainerConfig = errors.New("CreateContainerConfigError") + // ErrPreCreateHook - failed to execute PreCreateHook + ErrPreCreateHook = errors.New("PreCreateHookError") // ErrCreateContainer - failed to create container ErrCreateContainer = errors.New("CreateContainerError") // ErrPreStartHook - failed to execute PreStartHook @@ -168,6 +170,13 @@ func (m *kubeGenericRuntimeManager) startContainer(podSandboxID string, podSandb return s.Message(), ErrCreateContainerConfig } + err = m.internalLifecycle.PreCreateContainer(pod, container, containerConfig) + if err != nil { + s, _ := grpcstatus.FromError(err) + m.recordContainerEvent(pod, container, "", v1.EventTypeWarning, events.FailedToCreateContainer, "Internal PreCreateContainer hook failed: %v", s.Message()) + return s.Message(), ErrPreCreateHook + } + containerID, err := m.runtimeService.CreateContainer(podSandboxID, containerConfig, podSandboxConfig) if err != nil { s, _ := grpcstatus.FromError(err) diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/metrics/OWNERS b/vendor/k8s.io/kubernetes/pkg/kubelet/metrics/OWNERS new file mode 100644 index 000000000000..aaf2a60392da --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/metrics/OWNERS @@ -0,0 +1,3 @@ +# See the OWNERS docs at https://go.k8s.io/owners +approvers: +- dashpole diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/network/dns/OWNERS b/vendor/k8s.io/kubernetes/pkg/kubelet/network/dns/OWNERS new file mode 100644 index 000000000000..a055e4d7024f --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/network/dns/OWNERS @@ -0,0 +1,6 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- sig-network-approvers +reviewers: +- sig-network-reviewers diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/pluginmanager/OWNERS b/vendor/k8s.io/kubernetes/pkg/kubelet/pluginmanager/OWNERS new file mode 100644 index 000000000000..d3f62b2cf10e --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/pluginmanager/OWNERS @@ -0,0 +1,5 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- saad-ali +- taragu diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/prober/OWNERS b/vendor/k8s.io/kubernetes/pkg/kubelet/prober/OWNERS new file mode 100644 index 000000000000..9faddd8e7eb4 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/prober/OWNERS @@ -0,0 +1,5 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- tallclair +- sig-node-approvers diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/server/OWNERS b/vendor/k8s.io/kubernetes/pkg/kubelet/server/OWNERS new file mode 100644 index 000000000000..99f049723cc3 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/server/OWNERS @@ -0,0 +1,5 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- tallclair +- cheftako diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/stats/OWNERS b/vendor/k8s.io/kubernetes/pkg/kubelet/stats/OWNERS new file mode 100644 index 000000000000..aaf2a60392da --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/stats/OWNERS @@ -0,0 +1,3 @@ +# See the OWNERS docs at https://go.k8s.io/owners +approvers: +- dashpole diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/token/OWNERS b/vendor/k8s.io/kubernetes/pkg/kubelet/token/OWNERS new file mode 100644 index 000000000000..c6c376de4e1e --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/token/OWNERS @@ -0,0 +1,9 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- sig-auth-serviceaccounts-approvers +reviewers: +- sig-auth-serviceaccounts-reviewers +labels: +- sig/auth + diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/volumemanager/OWNERS b/vendor/k8s.io/kubernetes/pkg/kubelet/volumemanager/OWNERS new file mode 100644 index 000000000000..26531173539e --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/volumemanager/OWNERS @@ -0,0 +1,14 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- saad-ali +- jsafrane +- msau42 +reviewers: +- jsafrane +- gnufied +- rootfs +- jingxu97 +- msau42 +- verult +- davidz627 diff --git a/vendor/k8s.io/kubernetes/pkg/kubemark/OWNERS b/vendor/k8s.io/kubernetes/pkg/kubemark/OWNERS new file mode 100644 index 000000000000..f9874e1757c9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubemark/OWNERS @@ -0,0 +1,12 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: + - gmarek + - shyamjvs + - sig-scalability-reviewers + - wojtek-t +approvers: + - gmarek + - shyamjvs + - sig-scalability-approvers + - wojtek-t diff --git a/vendor/k8s.io/kubernetes/pkg/printers/OWNERS b/vendor/k8s.io/kubernetes/pkg/printers/OWNERS new file mode 100644 index 000000000000..a26581944e90 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/printers/OWNERS @@ -0,0 +1,8 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- smarterclayton +- sig-cli-maintainers +reviewers: +- smarterclayton +- sig-cli diff --git a/vendor/k8s.io/kubernetes/pkg/probe/OWNERS b/vendor/k8s.io/kubernetes/pkg/probe/OWNERS new file mode 100644 index 000000000000..997fa9156da3 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/probe/OWNERS @@ -0,0 +1,11 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: + - Random-Liu + - dchen1107 + - derekwaynecarr + - tallclair + - vishh + - yujuhong +reviewers: + - sig-node-reviewers diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/OWNERS b/vendor/k8s.io/kubernetes/pkg/proxy/OWNERS new file mode 100644 index 000000000000..c0d7663ba60b --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/proxy/OWNERS @@ -0,0 +1,8 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- sig-network-approvers +reviewers: +- sig-network-reviewers +labels: +- sig/network diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/apis/config/OWNERS b/vendor/k8s.io/kubernetes/pkg/proxy/apis/config/OWNERS new file mode 100644 index 000000000000..8b0c7feef3fb --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/proxy/apis/config/OWNERS @@ -0,0 +1,8 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- thockin +reviewers: +- sig-network-reviewers +labels: +- sig/network diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/config/OWNERS b/vendor/k8s.io/kubernetes/pkg/proxy/config/OWNERS new file mode 100644 index 000000000000..1a00bfbfb6db --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/proxy/config/OWNERS @@ -0,0 +1,9 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: +- sig-network-reviewers +- lavalamp +- smarterclayton +- brendandburns +labels: +- sig/network diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/iptables/OWNERS b/vendor/k8s.io/kubernetes/pkg/proxy/iptables/OWNERS new file mode 100644 index 000000000000..5cda5bc17c8b --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/proxy/iptables/OWNERS @@ -0,0 +1,8 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: +- sig-network-reviewers +- smarterclayton +- justinsb +labels: +- sig/network diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/OWNERS b/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/OWNERS new file mode 100644 index 000000000000..436971313b50 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/proxy/ipvs/OWNERS @@ -0,0 +1,17 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: +- sig-network-reviewers +- brendandburns +- Lion-Wei +- andrewsykim +- lbernail +approvers: +- sig-network-approvers +- brendandburns +- m1093782566 +- andrewsykim +- lbernail +labels: +- sig/network +- area/ipvs diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/userspace/OWNERS b/vendor/k8s.io/kubernetes/pkg/proxy/userspace/OWNERS new file mode 100644 index 000000000000..7fb99c84d84b --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/proxy/userspace/OWNERS @@ -0,0 +1,10 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- sig-network-approvers +reviewers: +- sig-network-reviewers +- lavalamp +- smarterclayton +labels: +- sig/network diff --git a/vendor/k8s.io/kubernetes/pkg/proxy/winkernel/OWNERS b/vendor/k8s.io/kubernetes/pkg/proxy/winkernel/OWNERS new file mode 100644 index 000000000000..1db8f37753cb --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/proxy/winkernel/OWNERS @@ -0,0 +1,20 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- dineshgovindasamy +- madhanrm +- feiskyer +- ksubrmnn +- kumarvin123 +- elweb9858 +- sbangari +reviewers: +- dineshgovindasamy +- madhanrm +- feiskyer +- ksubrmnn +- kumarvin123 +- elweb9858 +- sbangari +labels: +- sig/network diff --git a/vendor/k8s.io/kubernetes/pkg/quota/v1/install/OWNERS b/vendor/k8s.io/kubernetes/pkg/quota/v1/install/OWNERS new file mode 100644 index 000000000000..622ac58d3ee5 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/quota/v1/install/OWNERS @@ -0,0 +1,4 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: +- derekwaynecarr diff --git a/vendor/k8s.io/kubernetes/pkg/registry/core/serviceaccount/OWNERS b/vendor/k8s.io/kubernetes/pkg/registry/core/serviceaccount/OWNERS new file mode 100644 index 000000000000..d41c6a96bd19 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/registry/core/serviceaccount/OWNERS @@ -0,0 +1,8 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: +- mikedanese +- liggitt +approvers: +- mikedanese +- liggitt diff --git a/vendor/k8s.io/kubernetes/pkg/registry/rbac/OWNERS b/vendor/k8s.io/kubernetes/pkg/registry/rbac/OWNERS new file mode 100644 index 000000000000..7b3130fdcbcc --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/registry/rbac/OWNERS @@ -0,0 +1,9 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- sig-auth-authorizers-approvers +reviewers: +- sig-auth-authorizers-reviewers +labels: +- sig/auth + diff --git a/vendor/k8s.io/kubernetes/pkg/registry/registrytest/OWNERS b/vendor/k8s.io/kubernetes/pkg/registry/registrytest/OWNERS new file mode 100644 index 000000000000..350d4e212f1c --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/registry/registrytest/OWNERS @@ -0,0 +1,23 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: +- thockin +- lavalamp +- smarterclayton +- wojtek-t +- deads2k +- brendandburns +- derekwaynecarr +- caesarxuchao +- mikedanese +- liggitt +- nikhiljindal +- gmarek +- erictune +- pmorie +- timothysc +- dims +- hongchaodeng +- a-robinson +- sdminonne +- enj diff --git a/vendor/k8s.io/kubernetes/pkg/routes/OWNERS b/vendor/k8s.io/kubernetes/pkg/routes/OWNERS new file mode 100644 index 000000000000..42704a64ed6a --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/routes/OWNERS @@ -0,0 +1,11 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: +- deads2k +- lavalamp +- sttts +- caesarxuchao +approvers: +- deads2k +- lavalamp +- sttts diff --git a/vendor/k8s.io/kubernetes/pkg/scheduler/apis/config/OWNERS b/vendor/k8s.io/kubernetes/pkg/scheduler/apis/config/OWNERS new file mode 100644 index 000000000000..17b616c71cc6 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/scheduler/apis/config/OWNERS @@ -0,0 +1,13 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- api-approvers +- sig-scheduling-maintainers +- sttts +- luxas +reviewers: +- sig-scheduling +- api-reviewers +- dixudx +- luxas +- sttts diff --git a/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/OWNERS b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/OWNERS new file mode 100644 index 000000000000..f558c884f128 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/security/podsecuritypolicy/OWNERS @@ -0,0 +1,9 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- sig-auth-policy-approvers +reviewers: +- sig-auth-policy-reviewers +labels: +- sig/auth + diff --git a/vendor/k8s.io/kubernetes/pkg/serviceaccount/OWNERS b/vendor/k8s.io/kubernetes/pkg/serviceaccount/OWNERS new file mode 100644 index 000000000000..c6c376de4e1e --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/serviceaccount/OWNERS @@ -0,0 +1,9 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- sig-auth-serviceaccounts-approvers +reviewers: +- sig-auth-serviceaccounts-reviewers +labels: +- sig/auth + diff --git a/vendor/k8s.io/kubernetes/pkg/util/bandwidth/OWNERS b/vendor/k8s.io/kubernetes/pkg/util/bandwidth/OWNERS new file mode 100644 index 000000000000..37bfd526680a --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/util/bandwidth/OWNERS @@ -0,0 +1,8 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: +- sig-network-reviewers +approvers: +- sig-network-approvers +labels: +- sig/network diff --git a/vendor/k8s.io/kubernetes/pkg/util/goroutinemap/OWNERS b/vendor/k8s.io/kubernetes/pkg/util/goroutinemap/OWNERS new file mode 100644 index 000000000000..1bbf5cf2efa7 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/util/goroutinemap/OWNERS @@ -0,0 +1,6 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- saad-ali +reviewers: +- saad-ali diff --git a/vendor/k8s.io/kubernetes/pkg/util/ipset/OWNERS b/vendor/k8s.io/kubernetes/pkg/util/ipset/OWNERS new file mode 100644 index 000000000000..bda6c6ad919d --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/util/ipset/OWNERS @@ -0,0 +1,13 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: + - thockin + - brendandburns + - m1093782566 + - islinwb +approvers: + - thockin + - brendandburns + - m1093782566 +labels: +- sig/network diff --git a/vendor/k8s.io/kubernetes/pkg/util/iptables/OWNERS b/vendor/k8s.io/kubernetes/pkg/util/iptables/OWNERS new file mode 100644 index 000000000000..cc5f832961ad --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/util/iptables/OWNERS @@ -0,0 +1,14 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: + - dcbw + - thockin + - danwinship +approvers: + - dcbw + - thockin + - danwinship +emeritus_approvers: + - eparis +labels: +- sig/network diff --git a/vendor/k8s.io/kubernetes/pkg/util/ipvs/OWNERS b/vendor/k8s.io/kubernetes/pkg/util/ipvs/OWNERS new file mode 100644 index 000000000000..578fb06dba09 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/util/ipvs/OWNERS @@ -0,0 +1,15 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: + - thockin + - m1093782566 + - andrewsykim + - lbernail +approvers: + - thockin + - m1093782566 + - andrewsykim + - lbernail +labels: +- sig/network +- area/ipvs diff --git a/vendor/k8s.io/kubernetes/pkg/util/netsh/OWNERS b/vendor/k8s.io/kubernetes/pkg/util/netsh/OWNERS new file mode 100644 index 000000000000..37bfd526680a --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/util/netsh/OWNERS @@ -0,0 +1,8 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: +- sig-network-reviewers +approvers: +- sig-network-approvers +labels: +- sig/network diff --git a/vendor/k8s.io/kubernetes/pkg/volume/OWNERS b/vendor/k8s.io/kubernetes/pkg/volume/OWNERS new file mode 100644 index 000000000000..6b5f6ba5041c --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/volume/OWNERS @@ -0,0 +1,8 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- sig-storage-approvers +reviewers: +- sig-storage-reviewers +labels: +- sig/storage diff --git a/vendor/k8s.io/kubernetes/pkg/volume/awsebs/OWNERS b/vendor/k8s.io/kubernetes/pkg/volume/awsebs/OWNERS new file mode 100644 index 000000000000..002a3cb5c1cb --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/volume/awsebs/OWNERS @@ -0,0 +1,15 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- gnufied +- jingxu97 +- jsafrane +- justinsb +reviewers: +- chrislovecnm +- gnufied +- jingxu97 +- justinsb +- jsafrane +- rootfs +- saad-ali diff --git a/vendor/k8s.io/kubernetes/pkg/volume/azure_file/OWNERS b/vendor/k8s.io/kubernetes/pkg/volume/azure_file/OWNERS new file mode 100644 index 000000000000..f31baacd7f27 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/volume/azure_file/OWNERS @@ -0,0 +1,20 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- andyzhangx +- brendandburns +- feiskyer +- karataliu +- khenidak +- rootfs +reviewers: +- andyzhangx +- brendandburns +- feiskyer +- jsafrane +- jingxu97 +- karataliu +- khenidak +- msau42 +- rootfs +- saad-ali diff --git a/vendor/k8s.io/kubernetes/pkg/volume/azuredd/OWNERS b/vendor/k8s.io/kubernetes/pkg/volume/azuredd/OWNERS new file mode 100644 index 000000000000..c19d21c8842b --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/volume/azuredd/OWNERS @@ -0,0 +1,22 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- andyzhangx +- brendandburns +- feiskyer +- karataliu +- khenidak +- rootfs +reviewers: +- andyzhangx +- aramase +- brendandburns +- feiskyer +- jingxu97 +- jsafrane +- msau42 +- karataliu +- khenidak +- ritazh +- rootfs +- saad-ali diff --git a/vendor/k8s.io/kubernetes/pkg/volume/cephfs/OWNERS b/vendor/k8s.io/kubernetes/pkg/volume/cephfs/OWNERS new file mode 100644 index 000000000000..7f2065bec2e0 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/volume/cephfs/OWNERS @@ -0,0 +1,13 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- rootfs +- jsafrane +- saad-ali +reviewers: +- rootfs +- saad-ali +- jsafrane +- jingxu97 +- msau42 +- cofyc diff --git a/vendor/k8s.io/kubernetes/pkg/volume/cinder/OWNERS b/vendor/k8s.io/kubernetes/pkg/volume/cinder/OWNERS new file mode 100644 index 000000000000..0e41158224ce --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/volume/cinder/OWNERS @@ -0,0 +1,15 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- jsafrane +- anguslees +- dims +- FengyunPan2 +reviewers: +- anguslees +- rootfs +- saad-ali +- jsafrane +- jingxu97 +- msau42 +- FengyunPan2 diff --git a/vendor/k8s.io/kubernetes/pkg/volume/configmap/OWNERS b/vendor/k8s.io/kubernetes/pkg/volume/configmap/OWNERS new file mode 100644 index 000000000000..8ef14a0c2a02 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/volume/configmap/OWNERS @@ -0,0 +1,17 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- pmorie +- saad-ali +- thockin +emeritus_approvers: +- matchstick +reviewers: +- ivan4th +- rata +- sjenning +- saad-ali +- jsafrane +- rootfs +- jingxu97 +- msau42 diff --git a/vendor/k8s.io/kubernetes/pkg/volume/csi/OWNERS b/vendor/k8s.io/kubernetes/pkg/volume/csi/OWNERS new file mode 100644 index 000000000000..a8fbd4583663 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/volume/csi/OWNERS @@ -0,0 +1,7 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- jsafrane +- saad-ali +- vladimirvivien +- davidz627 diff --git a/vendor/k8s.io/kubernetes/pkg/volume/downwardapi/OWNERS b/vendor/k8s.io/kubernetes/pkg/volume/downwardapi/OWNERS new file mode 100644 index 000000000000..8ef14a0c2a02 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/volume/downwardapi/OWNERS @@ -0,0 +1,17 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- pmorie +- saad-ali +- thockin +emeritus_approvers: +- matchstick +reviewers: +- ivan4th +- rata +- sjenning +- saad-ali +- jsafrane +- rootfs +- jingxu97 +- msau42 diff --git a/vendor/k8s.io/kubernetes/pkg/volume/emptydir/OWNERS b/vendor/k8s.io/kubernetes/pkg/volume/emptydir/OWNERS new file mode 100644 index 000000000000..8ef14a0c2a02 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/volume/emptydir/OWNERS @@ -0,0 +1,17 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- pmorie +- saad-ali +- thockin +emeritus_approvers: +- matchstick +reviewers: +- ivan4th +- rata +- sjenning +- saad-ali +- jsafrane +- rootfs +- jingxu97 +- msau42 diff --git a/vendor/k8s.io/kubernetes/pkg/volume/fc/OWNERS b/vendor/k8s.io/kubernetes/pkg/volume/fc/OWNERS new file mode 100644 index 000000000000..3dc7358f01c9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/volume/fc/OWNERS @@ -0,0 +1,12 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- rootfs +- saad-ali +reviewers: +- saad-ali +- jsafrane +- rootfs +- jingxu97 +- msau42 +- mtanino diff --git a/vendor/k8s.io/kubernetes/pkg/volume/flexvolume/OWNERS b/vendor/k8s.io/kubernetes/pkg/volume/flexvolume/OWNERS new file mode 100644 index 000000000000..549173db0760 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/volume/flexvolume/OWNERS @@ -0,0 +1,17 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- chakri-nelluri +- saad-ali +emeritus_approvers: +- MikaelCluseau +reviewers: +- ivan4th +- rata +- sjenning +- saad-ali +- jsafrane +- rootfs +- jingxu97 +- msau42 +- chakri-nelluri diff --git a/vendor/k8s.io/kubernetes/pkg/volume/flocker/OWNERS b/vendor/k8s.io/kubernetes/pkg/volume/flocker/OWNERS new file mode 100644 index 000000000000..e5d361af51a2 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/volume/flocker/OWNERS @@ -0,0 +1,12 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- rootfs +- saad-ali +reviewers: +- simonswine +- saad-ali +- jsafrane +- rootfs +- jingxu97 +- msau42 diff --git a/vendor/k8s.io/kubernetes/pkg/volume/gcepd/OWNERS b/vendor/k8s.io/kubernetes/pkg/volume/gcepd/OWNERS new file mode 100644 index 000000000000..3076f706348e --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/volume/gcepd/OWNERS @@ -0,0 +1,14 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- saad-ali +- thockin +- davidz627 +reviewers: +- saad-ali +- jsafrane +- jingxu97 +- gnufied +- msau42 +- verult +- davidz627 diff --git a/vendor/k8s.io/kubernetes/pkg/volume/git_repo/OWNERS b/vendor/k8s.io/kubernetes/pkg/volume/git_repo/OWNERS new file mode 100644 index 000000000000..5604dadfc908 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/volume/git_repo/OWNERS @@ -0,0 +1,11 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- thockin +- saad-ali +reviewers: +- saad-ali +- jsafrane +- rootfs +- jingxu97 +- msau42 diff --git a/vendor/k8s.io/kubernetes/pkg/volume/glusterfs/OWNERS b/vendor/k8s.io/kubernetes/pkg/volume/glusterfs/OWNERS new file mode 100644 index 000000000000..d4b7ff4f26cd --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/volume/glusterfs/OWNERS @@ -0,0 +1,14 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- rootfs +- saad-ali +- jingxu97 +- humblec +reviewers: +- saad-ali +- jsafrane +- rootfs +- humblec +- jingxu97 +- msau42 diff --git a/vendor/k8s.io/kubernetes/pkg/volume/hostpath/OWNERS b/vendor/k8s.io/kubernetes/pkg/volume/hostpath/OWNERS new file mode 100644 index 000000000000..5ffca544da91 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/volume/hostpath/OWNERS @@ -0,0 +1,13 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- pmorie +- saad-ali +- thockin +reviewers: +- saad-ali +- jsafrane +- rootfs +- jingxu97 +- msau42 +- dixudx diff --git a/vendor/k8s.io/kubernetes/pkg/volume/iscsi/OWNERS b/vendor/k8s.io/kubernetes/pkg/volume/iscsi/OWNERS new file mode 100644 index 000000000000..8ad6701be3c9 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/volume/iscsi/OWNERS @@ -0,0 +1,15 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- pmorie +- saad-ali +- rootfs +- humblec +reviewers: +- saad-ali +- jsafrane +- rootfs +- humblec +- jingxu97 +- msau42 +- mtanino diff --git a/vendor/k8s.io/kubernetes/pkg/volume/local/OWNERS b/vendor/k8s.io/kubernetes/pkg/volume/local/OWNERS new file mode 100644 index 000000000000..f99cf7657a30 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/volume/local/OWNERS @@ -0,0 +1,18 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- saad-ali +- thockin +- vishh +- msau42 +- jingxu97 +- jsafrane +- cofyc +reviewers: +- saad-ali +- jsafrane +- rootfs +- jingxu97 +- msau42 +- vishh +- cofyc diff --git a/vendor/k8s.io/kubernetes/pkg/volume/nfs/OWNERS b/vendor/k8s.io/kubernetes/pkg/volume/nfs/OWNERS new file mode 100644 index 000000000000..c5f0087b7606 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/volume/nfs/OWNERS @@ -0,0 +1,13 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- rootfs +- saad-ali +- jingxu97 +reviewers: +- sjenning +- saad-ali +- jsafrane +- rootfs +- jingxu97 +- msau42 diff --git a/vendor/k8s.io/kubernetes/pkg/volume/portworx/OWNERS b/vendor/k8s.io/kubernetes/pkg/volume/portworx/OWNERS new file mode 100644 index 000000000000..de6991b111f2 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/volume/portworx/OWNERS @@ -0,0 +1,10 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- lpabon +- saad-ali +- rootfs +reviewers: +- lpabon +- saad-ali +- rootfs diff --git a/vendor/k8s.io/kubernetes/pkg/volume/quobyte/OWNERS b/vendor/k8s.io/kubernetes/pkg/volume/quobyte/OWNERS new file mode 100644 index 000000000000..5f264f221050 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/volume/quobyte/OWNERS @@ -0,0 +1,12 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- rootfs +- saad-ali +reviewers: +- johscheuer +- saad-ali +- jsafrane +- rootfs +- jingxu97 +- msau42 diff --git a/vendor/k8s.io/kubernetes/pkg/volume/rbd/OWNERS b/vendor/k8s.io/kubernetes/pkg/volume/rbd/OWNERS new file mode 100644 index 000000000000..659b0638de7f --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/volume/rbd/OWNERS @@ -0,0 +1,13 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- rootfs +- jsafrane +reviewers: +- sjenning +- saad-ali +- jsafrane +- rootfs +- jingxu97 +- msau42 +- cofyc diff --git a/vendor/k8s.io/kubernetes/pkg/volume/secret/OWNERS b/vendor/k8s.io/kubernetes/pkg/volume/secret/OWNERS new file mode 100644 index 000000000000..8ef14a0c2a02 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/volume/secret/OWNERS @@ -0,0 +1,17 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- pmorie +- saad-ali +- thockin +emeritus_approvers: +- matchstick +reviewers: +- ivan4th +- rata +- sjenning +- saad-ali +- jsafrane +- rootfs +- jingxu97 +- msau42 diff --git a/vendor/k8s.io/kubernetes/pkg/volume/util/OWNERS b/vendor/k8s.io/kubernetes/pkg/volume/util/OWNERS new file mode 100644 index 000000000000..937adb56c50c --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/volume/util/OWNERS @@ -0,0 +1,8 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- saad-ali +reviewers: +- saad-ali +- rootfs +- jingxu97 diff --git a/vendor/k8s.io/kubernetes/pkg/volume/util/nestedpendingoperations/OWNERS b/vendor/k8s.io/kubernetes/pkg/volume/util/nestedpendingoperations/OWNERS new file mode 100644 index 000000000000..8bfe4a88f49d --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/volume/util/nestedpendingoperations/OWNERS @@ -0,0 +1,4 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- saad-ali diff --git a/vendor/k8s.io/kubernetes/pkg/volume/util/operationexecutor/OWNERS b/vendor/k8s.io/kubernetes/pkg/volume/util/operationexecutor/OWNERS new file mode 100644 index 000000000000..415b19e5e288 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/volume/util/operationexecutor/OWNERS @@ -0,0 +1,5 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- saad-ali +- jingxu97 diff --git a/vendor/k8s.io/kubernetes/pkg/volume/util/subpath/OWNERS b/vendor/k8s.io/kubernetes/pkg/volume/util/subpath/OWNERS new file mode 100644 index 000000000000..c8821ce73541 --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/volume/util/subpath/OWNERS @@ -0,0 +1,13 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: + - jingxu97 + - saad-ali + - jsafrane + - msau42 + - andyzhangx +approvers: + - jingxu97 + - saad-ali + - jsafrane + diff --git a/vendor/k8s.io/kubernetes/pkg/volume/vsphere_volume/OWNERS b/vendor/k8s.io/kubernetes/pkg/volume/vsphere_volume/OWNERS new file mode 100644 index 000000000000..18bf03c6c07a --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/volume/vsphere_volume/OWNERS @@ -0,0 +1,22 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- pmorie +- saad-ali +- thockin +- SandeepPissay +- divyenpatel +- BaluDontu +emeritus_approvers: +- matchstick +- abrarshivani +reviewers: +- saad-ali +- justinsb +- jsafrane +- rootfs +- jingxu97 +- msau42 +- SandeepPissay +- divyenpatel +- BaluDontu diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/certificates/OWNERS b/vendor/k8s.io/kubernetes/plugin/pkg/admission/certificates/OWNERS new file mode 100644 index 000000000000..9013cc311a03 --- /dev/null +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/certificates/OWNERS @@ -0,0 +1,8 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- sig-auth-certificates-approvers +reviewers: +- sig-auth-certificates-approvers +labels: +- sig/auth diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/eventratelimit/apis/eventratelimit/OWNERS b/vendor/k8s.io/kubernetes/plugin/pkg/admission/eventratelimit/apis/eventratelimit/OWNERS new file mode 100644 index 000000000000..cc22b22270e7 --- /dev/null +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/eventratelimit/apis/eventratelimit/OWNERS @@ -0,0 +1,9 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: +- deads2k +- derekwaynecarr +approvers: +- deads2k +- derekwaynecarr +- smarterclayton \ No newline at end of file diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/noderestriction/OWNERS b/vendor/k8s.io/kubernetes/plugin/pkg/admission/noderestriction/OWNERS new file mode 100644 index 000000000000..8ce6a83f6bdc --- /dev/null +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/noderestriction/OWNERS @@ -0,0 +1,9 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- sig-auth-node-isolation-approvers +reviewers: +- sig-auth-node-isolation-reviewers +labels: +- sig/auth + diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/OWNERS b/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/OWNERS new file mode 100644 index 000000000000..477188cc1d39 --- /dev/null +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/OWNERS @@ -0,0 +1,4 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: +approvers: diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/runtimeclass/OWNERS b/vendor/k8s.io/kubernetes/plugin/pkg/admission/runtimeclass/OWNERS new file mode 100644 index 000000000000..55bb284de2fe --- /dev/null +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/runtimeclass/OWNERS @@ -0,0 +1,7 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- tallclair +reviewers: +- egernst +- yastij diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/security/podsecuritypolicy/OWNERS b/vendor/k8s.io/kubernetes/plugin/pkg/admission/security/podsecuritypolicy/OWNERS new file mode 100644 index 000000000000..f558c884f128 --- /dev/null +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/security/podsecuritypolicy/OWNERS @@ -0,0 +1,9 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- sig-auth-policy-approvers +reviewers: +- sig-auth-policy-reviewers +labels: +- sig/auth + diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/serviceaccount/OWNERS b/vendor/k8s.io/kubernetes/plugin/pkg/admission/serviceaccount/OWNERS new file mode 100644 index 000000000000..c6c376de4e1e --- /dev/null +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/serviceaccount/OWNERS @@ -0,0 +1,9 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- sig-auth-serviceaccounts-approvers +reviewers: +- sig-auth-serviceaccounts-reviewers +labels: +- sig/auth + diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/admission/storage/persistentvolume/label/OWNERS b/vendor/k8s.io/kubernetes/plugin/pkg/admission/storage/persistentvolume/label/OWNERS new file mode 100644 index 000000000000..8debd4060f2e --- /dev/null +++ b/vendor/k8s.io/kubernetes/plugin/pkg/admission/storage/persistentvolume/label/OWNERS @@ -0,0 +1,10 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: + - andrewsykim + - dims + - msau42 +approvers: + - andrewsykim + - dims + - msau42 diff --git a/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/node/OWNERS b/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/node/OWNERS new file mode 100644 index 000000000000..8ce6a83f6bdc --- /dev/null +++ b/vendor/k8s.io/kubernetes/plugin/pkg/auth/authorizer/node/OWNERS @@ -0,0 +1,9 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- sig-auth-node-isolation-approvers +reviewers: +- sig-auth-node-isolation-reviewers +labels: +- sig/auth + diff --git a/vendor/k8s.io/kubernetes/test/e2e/apimachinery/OWNERS b/vendor/k8s.io/kubernetes/test/e2e/apimachinery/OWNERS new file mode 100644 index 000000000000..5ef61ab7cd0b --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/e2e/apimachinery/OWNERS @@ -0,0 +1,26 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- lavalamp +- smarterclayton +- deads2k +- sttts +- liggitt +- caesarxuchao +reviewers: +- thockin +- lavalamp +- smarterclayton +- wojtek-t +- deads2k +- derekwaynecarr +- caesarxuchao +- cheftako +- mikedanese +- liggitt +- gmarek +- sttts +- ncdc +- logicalhan +labels: +- sig/api-machinery diff --git a/vendor/k8s.io/kubernetes/test/e2e/apps/OWNERS b/vendor/k8s.io/kubernetes/test/e2e/apps/OWNERS new file mode 100644 index 000000000000..938e26b5eed6 --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/e2e/apps/OWNERS @@ -0,0 +1,8 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- sig-apps-approvers +reviewers: +- sig-apps-reviewers +labels: +- sig/apps diff --git a/vendor/k8s.io/kubernetes/test/e2e/auth/OWNERS b/vendor/k8s.io/kubernetes/test/e2e/auth/OWNERS new file mode 100644 index 000000000000..ea3cc14f4082 --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/e2e/auth/OWNERS @@ -0,0 +1,16 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: + - liggitt + - mikedanese + - smarterclayton + - sttts + - tallclair +approvers: + - liggitt + - mikedanese + - smarterclayton + - sttts + - tallclair +labels: +- sig/auth diff --git a/vendor/k8s.io/kubernetes/test/e2e/autoscaling/OWNERS b/vendor/k8s.io/kubernetes/test/e2e/autoscaling/OWNERS new file mode 100644 index 000000000000..846fd2da6a65 --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/e2e/autoscaling/OWNERS @@ -0,0 +1,11 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: + - sig-autoscaling-maintainers +approvers: + - sig-autoscaling-maintainers +emeritus_approvers: + - jszczepkowski + - wasylkowski +labels: +- sig/autoscaling \ No newline at end of file diff --git a/vendor/k8s.io/kubernetes/test/e2e/common/OWNERS b/vendor/k8s.io/kubernetes/test/e2e/common/OWNERS new file mode 100644 index 000000000000..542db766c92a --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/e2e/common/OWNERS @@ -0,0 +1,12 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- Random-Liu +- derekwaynecarr +- tallclair +- yujuhong +emeritus_approvers: +- vishh +- dchen1107 +reviewers: +- sig-node-reviewers diff --git a/vendor/k8s.io/kubernetes/test/e2e/framework/OWNERS b/vendor/k8s.io/kubernetes/test/e2e/framework/OWNERS new file mode 100644 index 000000000000..b37e6bf25d67 --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/e2e/framework/OWNERS @@ -0,0 +1,23 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- sig-testing-approvers +- timothysc +- andrewsykim +- fabriziopandini +- pohly +- oomichi +- neolit123 +- SataQiu +reviewers: +- sig-testing-reviewers +- timothysc +- andrewsykim +- fabriziopandini +- pohly +- oomichi +- neolit123 +- SataQiu +- alejandrox1 +labels: +- area/e2e-test-framework diff --git a/vendor/k8s.io/kubernetes/test/e2e/framework/providers/vsphere/OWNERS b/vendor/k8s.io/kubernetes/test/e2e/framework/providers/vsphere/OWNERS new file mode 100644 index 000000000000..d1a359724ddd --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/e2e/framework/providers/vsphere/OWNERS @@ -0,0 +1,30 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- pmorie +- saad-ali +- thockin +- SandeepPissay +- divyenpatel +- BaluDontu +- imkin +- frapposelli +- dougm +- sandeeppsunny +emeritus_approvers: +- matchstick +- abrarshivani +reviewers: +- saad-ali +- justinsb +- jsafrane +- rootfs +- jingxu97 +- msau42 +- SandeepPissay +- divyenpatel +- BaluDontu +- imkin +- frapposelli +- dougm +- sandeeppsunny diff --git a/vendor/k8s.io/kubernetes/test/e2e/framework/volume/OWNERS b/vendor/k8s.io/kubernetes/test/e2e/framework/volume/OWNERS new file mode 100644 index 000000000000..de9e20906568 --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/e2e/framework/volume/OWNERS @@ -0,0 +1,20 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- saad-ali +- rootfs +- gnufied +- jingxu97 +- jsafrane +- msau42 +reviewers: +- saad-ali +- rootfs +- gnufied +- jingxu97 +- jsafrane +- msau42 +- jeffvance +- copejon +- verult +- davidz627 diff --git a/vendor/k8s.io/kubernetes/test/e2e/generated/bindata.go b/vendor/k8s.io/kubernetes/test/e2e/generated/bindata.go index d34682ef3236..1fedf34aef63 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/generated/bindata.go +++ b/vendor/k8s.io/kubernetes/test/e2e/generated/bindata.go @@ -1,5 +1,6 @@ // Package generated Code generated by go-bindata. (@generated) DO NOT EDIT. // sources: +// test/conformance/testdata/OWNERS // test/conformance/testdata/conformance.yaml // test/e2e/testing-manifests/flexvolume/attachable-with-long-mount // test/e2e/testing-manifests/flexvolume/dummy @@ -89,6 +90,7 @@ // test/e2e/testing-manifests/statefulset/redis/statefulset.yaml // test/e2e/testing-manifests/statefulset/zookeeper/service.yaml // test/e2e/testing-manifests/statefulset/zookeeper/statefulset.yaml +// test/e2e/testing-manifests/storage-csi/OWNERS // test/e2e/testing-manifests/storage-csi/controller-role.yaml // test/e2e/testing-manifests/storage-csi/external-attacher/rbac.yaml // test/e2e/testing-manifests/storage-csi/external-provisioner/rbac.yaml @@ -116,11 +118,13 @@ // test/e2e_node/testing-manifests/sriovdp-ds.yaml // test/e2e_node/testing-manifests/sriovdp-sa.yaml // test/images/Makefile +// test/images/OWNERS // test/images/agnhost/.gitignore // test/images/agnhost/BASEIMAGE // test/images/agnhost/Dockerfile // test/images/agnhost/Dockerfile_windows // test/images/agnhost/Makefile +// test/images/agnhost/OWNERS // test/images/agnhost/VERSION // test/images/agnhost/agnhost.go // test/images/agnhost/audit-proxy/main.go @@ -176,6 +180,7 @@ // test/images/apparmor-loader/BASEIMAGE // test/images/apparmor-loader/Dockerfile // test/images/apparmor-loader/Makefile +// test/images/apparmor-loader/OWNERS // test/images/apparmor-loader/VERSION // test/images/apparmor-loader/example-configmap.yaml // test/images/apparmor-loader/example-daemon.yaml @@ -185,15 +190,18 @@ // test/images/busybox/BASEIMAGE // test/images/busybox/Dockerfile_windows // test/images/busybox/Makefile +// test/images/busybox/OWNERS // test/images/busybox/VERSION // test/images/busybox/hostname.go // test/images/cloudbuild.yaml // test/images/cuda-vector-add/BASEIMAGE // test/images/cuda-vector-add/Dockerfile +// test/images/cuda-vector-add/OWNERS // test/images/cuda-vector-add/VERSION // test/images/echoserver/BASEIMAGE // test/images/echoserver/Dockerfile // test/images/echoserver/Dockerfile_windows +// test/images/echoserver/OWNERS // test/images/echoserver/VERSION // test/images/echoserver/install-deps.sh // test/images/echoserver/nginx.conf @@ -206,18 +214,22 @@ // test/images/jessie-dnsutils/BASEIMAGE // test/images/jessie-dnsutils/Dockerfile // test/images/jessie-dnsutils/Dockerfile_windows +// test/images/jessie-dnsutils/OWNERS // test/images/jessie-dnsutils/VERSION // test/images/jessie-dnsutils/fixup-apt-list.sh // test/images/kitten/BASEIMAGE // test/images/kitten/Dockerfile +// test/images/kitten/OWNERS // test/images/kitten/VERSION // test/images/kitten/html/data.json // test/images/metadata-concealment/Dockerfile // test/images/metadata-concealment/Makefile +// test/images/metadata-concealment/OWNERS // test/images/metadata-concealment/VERSION // test/images/metadata-concealment/check_metadata_concealment.go // test/images/nautilus/BASEIMAGE // test/images/nautilus/Dockerfile +// test/images/nautilus/OWNERS // test/images/nautilus/VERSION // test/images/nautilus/html/data.json // test/images/node-perf/npb-ep/BASEIMAGE @@ -233,11 +245,13 @@ // test/images/nonewprivs/BASEIMAGE // test/images/nonewprivs/Dockerfile // test/images/nonewprivs/Makefile +// test/images/nonewprivs/OWNERS // test/images/nonewprivs/VERSION // test/images/nonewprivs/nnp.go // test/images/nonroot/BASEIMAGE // test/images/nonroot/Dockerfile // test/images/nonroot/Dockerfile_windows +// test/images/nonroot/OWNERS // test/images/nonroot/VERSION // test/images/pets/peer-finder/BASEIMAGE // test/images/pets/peer-finder/Dockerfile @@ -259,11 +273,13 @@ // test/images/redis/BASEIMAGE // test/images/redis/Dockerfile // test/images/redis/Dockerfile_windows +// test/images/redis/OWNERS // test/images/redis/VERSION // test/images/redis/redis.conf // test/images/regression-issue-74839/.gitignore // test/images/regression-issue-74839/Dockerfile // test/images/regression-issue-74839/Makefile +// test/images/regression-issue-74839/OWNERS // test/images/regression-issue-74839/VERSION // test/images/regression-issue-74839/main.go // test/images/regression-issue-74839/tcp.go @@ -282,12 +298,14 @@ // test/images/sample-apiserver/Dockerfile // test/images/sample-apiserver/Dockerfile_windows // test/images/sample-apiserver/Makefile +// test/images/sample-apiserver/OWNERS // test/images/sample-apiserver/VERSION // test/images/sample-device-plugin/BASEIMAGE // test/images/sample-device-plugin/Dockerfile // test/images/sample-device-plugin/Makefile // test/images/sample-device-plugin/VERSION // test/images/sample-device-plugin/sampledeviceplugin.go +// test/images/volume/OWNERS // test/images/volume/gluster/BASEIMAGE // test/images/volume/gluster/Dockerfile // test/images/volume/gluster/VERSION @@ -362,6 +380,7 @@ // test/fixtures/doc-yaml/user-guide/update-demo/kitten-rc.yaml.in // test/fixtures/doc-yaml/user-guide/update-demo/nautilus-rc.yaml.in // test/fixtures/doc-yaml/user-guide/walkthrough/podtemplate.json +// test/fixtures/pkg/kubectl/OWNERS // test/fixtures/pkg/kubectl/plugins/bar/kubectl-bar // test/fixtures/pkg/kubectl/plugins/foo/kubectl-foo // test/fixtures/pkg/kubectl/plugins/kubectl-foo @@ -442,6 +461,26 @@ func (fi bindataFileInfo) Sys() interface{} { return nil } +var _testConformanceTestdataOwners = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x4c\x8f\xc1\x6a\xc3\x30\x0c\x86\xef\x7e\x0a\x41\xcf\x89\xaf\x23\xf7\x5d\x37\x58\x07\x3b\x16\xd9\x51\x62\x6d\xb1\x65\x64\x35\x5d\xde\x7e\x34\x19\xa5\xb7\xff\x13\x9f\x24\xfe\x13\x9c\x89\xc0\x12\xc1\xfb\xd7\xdb\xeb\xc7\x19\x46\x89\x0d\xd0\x20\x99\xd5\x36\x78\x3f\x4b\xff\xf3\xd2\x7a\x16\x2f\xb7\x42\xda\x9c\x3b\xc1\xa7\x40\x20\xb8\xf3\x08\x61\x83\xc6\x73\x87\x1a\x13\x1b\x45\xbb\x2a\xf5\x4e\xaa\xb1\x94\x36\x38\x80\x22\x97\x8a\x4a\xc5\x2e\xc7\xfe\x00\xa6\x57\x72\x4a\x2b\xd3\xed\xce\x0e\xa0\x83\x96\x51\x8d\x34\x2e\xb8\x99\x94\x63\x54\x79\x9a\x7e\xeb\x9e\x8d\xb3\x58\xda\x5a\xdc\x69\xe4\xdc\xf6\xf0\x2d\xa9\x04\x5a\x30\xa3\x72\x74\x58\xab\xca\xfa\x38\x19\xa5\x4c\xa2\x19\x4b\xa4\x2e\x50\xc2\x95\x45\xbb\x87\xe3\x16\x0c\xb4\xfc\xab\xa8\x84\xfe\xc9\x3f\xfe\xf3\xec\x9f\x5b\xb9\xbf\x00\x00\x00\xff\xff\xbd\x28\x57\xaf\x2b\x01\x00\x00") + +func testConformanceTestdataOwnersBytes() ([]byte, error) { + return bindataRead( + _testConformanceTestdataOwners, + "test/conformance/testdata/OWNERS", + ) +} + +func testConformanceTestdataOwners() (*asset, error) { + bytes, err := testConformanceTestdataOwnersBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "test/conformance/testdata/OWNERS", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + var _testConformanceTestdataConformanceYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\xbd\x5b\x73\x1c\x37\x92\x28\xfc\xbe\xbf\x02\xe1\x17\x8e\x4f\x34\x5b\x94\x7c\x1d\xcf\xe7\x2f\x42\xa6\x64\x8f\x76\x6d\x89\x23\xca\xf6\x83\xd7\xa1\x83\xae\x42\xb3\x31\xac\x2e\xd4\x14\x50\xa4\x7a\x4f\x9c\xff\x7e\x02\x99\x89\x5b\x5d\xba\xab\xaf\xa4\x3c\xde\x9d\x98\x11\xbb\xaa\x12\x89\xcc\x44\x22\x91\xc8\xcb\x39\x33\x42\x9b\x92\x2f\xc5\x37\xec\x4a\xe5\xec\x47\x39\x17\xd9\x2a\x2b\xc4\x84\x55\x4a\x1b\xa6\x0d\xaf\x0d\x13\x1f\x44\xc6\x16\x4a\xdd\xfe\x07\x63\x99\xca\x05\xbe\x7f\xf6\xdb\xed\xd7\x7a\x2a\xd5\xef\xec\x52\x95\x86\xcb\x52\xd4\xe1\x7b\xf6\x77\xa5\x6e\xd9\xfd\x42\x94\x2c\xab\x05\x37\x82\x71\x56\xa9\x9c\xdd\x4b\xb3\x60\x85\x7f\x8b\x80\x32\xa6\x17\xaa\x29\x72\x18\xa9\x31\x02\x06\x6f\x8d\xcd\xaa\x5a\x55\xa2\x2e\x56\xec\xb7\xd7\x2a\x17\x97\xaa\x9c\xab\x7a\xc9\xcb\x4c\xfc\xce\x7e\x8b\xff\x3a\xfb\x0f\xc6\x72\xa1\xb3\x5a\x56\x46\xaa\xf2\x1b\xf6\xab\xc5\x82\xc7\x13\x5a\xf0\x32\x2f\x44\xcd\xa4\x66\xba\x12\x99\x9c\x4b\x91\x33\x59\x32\xb3\x10\x2c\xf3\x93\x09\x68\x36\x5a\x96\x37\x80\x27\x67\x67\x2f\x3f\x88\xec\x8c\xf1\xcc\x02\x9f\xd8\x4f\xf0\x3b\x07\xf3\xa7\x9f\xaf\xdf\xb1\x99\x60\xb2\xbc\x53\xb7\x22\x67\x7c\x6e\x44\x0d\x6f\xe0\xd8\x6a\x9e\x0e\x33\x05\xb8\xcf\x99\x16\xf5\x9d\xa8\x81\x48\x52\x13\xd1\x72\x66\x16\xdc\xb0\x7b\x59\x14\xf8\x9c\x2d\x8c\xa9\x58\x2d\xfe\xd5\x08\x6d\xf4\x24\xd0\x56\x8b\x4c\x95\xb9\x27\x31\xe1\xda\x37\x17\x9c\xf0\x4a\x96\x37\x29\x4d\x60\x24\x44\x5a\x23\xba\x01\xa1\x30\x7f\x3b\xf9\xe7\x30\x75\x66\x14\xbb\xe3\x85\xcc\x2d\x02\xf0\xb1\xfd\x28\x02\x28\xb5\x63\x67\x6e\xe7\x58\x8b\x42\x70\x2d\xbe\x61\x77\x4f\xa7\x7f\xfd\x0f\xc6\xe6\xb2\x10\xdf\x80\xf8\x3d\x11\xcf\xc4\x93\x4c\x2d\x97\xaa\x7c\xe2\xf1\x7c\x6f\x79\x3e\xbd\x51\xff\x31\x4e\x44\x81\x2e\x0f\x24\xa2\x7e\xec\xc7\x22\xa2\x7f\x37\xa6\xfa\x41\x98\x7f\x2f\x19\x8d\xc4\x11\x20\x3f\x90\x48\xd6\x42\x1b\x55\x3d\x84\xca\x6c\x8f\xbc\xbf\x34\xd6\xe2\x1c\x40\x9e\x52\x5d\xce\xc4\x5c\xd5\xa2\x05\x5a\x6a\x66\x44\xbd\x94\x25\x27\xce\x3d\x9c\x30\x3a\x9a\x1c\x48\x5d\x3a\x70\xa7\x93\xcc\x07\xd0\x94\xed\x91\x1f\x89\x64\x92\x9a\xfc\x37\x13\xce\x61\x3d\x79\x44\x59\x0c\x42\xf5\xb6\x29\x8d\x5c\x8a\x09\x7b\x47\x34\x93\xaa\xfc\x49\x68\xcd\x6f\xc4\x84\xcd\x6b\xb5\x64\x85\xba\x61\xaa\x31\x55\x03\xfb\x90\x6e\xb2\x4c\x88\xdc\x4e\xd0\xcf\x7f\xa3\xe4\xd2\x20\x6c\x56\xf0\xec\x76\xa6\x3e\x00\x26\xcc\x2e\x42\xcf\xa8\x88\x9a\x28\xae\x40\x8c\x5a\x54\xca\xee\x33\x01\x37\xb6\x44\xe4\xd8\x6f\x3f\xca\xb2\xf9\xf0\xa6\x2c\x56\xbf\x33\xae\x99\x58\x56\x66\x85\x6b\xc2\x52\x95\xd0\xd4\x8c\x97\x79\xcf\xd4\xae\x54\x21\xb3\x15\x0c\xf1\x3d\x2f\x8a\x19\xcf\x6e\xdf\xa9\x1f\xd5\x8d\x7e\x53\xbe\xac\x6b\x85\x02\x2c\xcc\xd6\xeb\xe1\xec\xb2\xb3\x1e\x79\x19\xed\xdb\x81\x26\x67\x67\xda\x51\x55\x6a\x56\x8b\x4c\xd5\x39\xac\x15\x40\xca\xd2\xdc\x62\x1e\x88\x22\x3e\x48\xa3\x71\x5a\x5a\xcf\x9b\xa2\x58\x01\x78\xd5\x18\x3b\x82\xb0\x48\x4f\x71\x39\x0e\xac\x84\x09\x4a\x57\x87\x14\xb8\xa8\x16\xfc\x4e\xb0\x52\xc1\xc7\xa2\x34\x96\xa2\x11\x43\x90\x98\xd3\x98\xe6\xdf\xb0\x4b\x5e\x96\xca\x00\xd4\xa5\x6a\x4a\x03\x82\xa8\xed\x6a\xff\x55\x96\xb9\xba\xd7\x61\xb2\x7a\x7a\xd6\x12\xdc\xa7\x5f\x0c\x4a\x6e\x8d\xc2\xb2\x8f\xc8\x5a\xc0\x8f\x56\x58\x03\x86\x7f\x14\x69\xe5\x38\x1d\x8b\x7c\xaa\x8a\x77\x13\xda\x44\x50\x45\x3e\x19\x14\xda\x25\x37\xd9\x02\xf1\x76\xe3\x5a\xd9\xf5\x04\x4e\x05\x16\xc0\xa2\xd0\x3e\x3a\x81\xf5\xd3\x3f\xd3\xa9\xbe\x05\xa4\xe7\x5c\x16\x8f\x50\x86\x23\x44\xe5\xfc\x23\x14\xdb\x21\x25\xeb\x20\x8e\x51\xaa\x31\xa5\x50\x15\x76\x05\xd4\xca\xa6\xf8\x50\x89\xcc\x52\x9d\xd0\xf1\xb8\xb4\xd8\x8f\xfc\xff\x08\x04\xf7\x8a\x9b\xc5\x84\x95\xaa\x3c\xaf\x95\x32\xac\xd1\xa2\x06\x62\xda\x5f\x72\x31\xe7\x4d\x81\x5b\x43\xc5\xc1\x5e\x7a\x58\x71\xed\x17\x4f\x6e\x16\x4e\x04\xb9\xf6\x53\x01\xb8\x7e\x3a\xdc\x30\x1e\xcf\x09\xe6\x73\x10\x89\x8d\x26\x64\x14\xab\x9b\x92\x49\xc0\x83\xb7\x88\x8a\x6f\x03\x56\x59\xa3\x8d\x5a\x0e\x4d\x45\x0b\x33\x85\x43\x46\x2d\x72\x59\x8b\xcc\xa0\xa9\x49\x02\x67\x14\x19\x95\xea\x4e\x5a\xb9\x23\xbe\xb0\x44\x3b\x93\xb0\xaf\xb1\xa7\xc1\x28\xef\xa5\x77\x10\x78\x32\x63\xbb\x42\x5f\xa8\x9b\x9b\x70\x1e\xf0\xa8\xd0\xb4\x2c\x46\x2d\x13\xe3\x1d\x87\x0f\xfc\x4f\x00\x39\x6f\x84\x9d\x4d\xa3\x61\x8b\x3f\x3b\x6b\x64\x7e\x76\x06\xcc\x6a\x4a\x3e\x2b\xe0\xe1\x03\x2d\x93\xb7\x02\xfd\x1a\xa8\xf9\x26\xc0\x8d\xab\x05\xd7\x42\xef\xb8\x04\xc0\x42\x00\x98\x78\xa2\x88\x64\x66\xc1\x51\x54\x69\x8f\xc5\x23\x9e\x15\x23\xbf\x1f\x7a\xf2\x6b\xc3\x4d\xa3\xb7\x96\xda\x57\xe8\x75\xaa\x69\x52\x15\x4c\xca\xad\x18\xa3\xd8\xd9\xf3\xe2\x9e\xaf\xf4\x19\xce\xd3\x9d\xcd\xe8\x75\x91\x03\xf2\x9d\xbd\xfc\xd5\xbc\x07\xe0\xd9\x9b\xf2\x7b\x2e\x8b\xa6\x16\x2d\x60\x0e\x94\x2a\x8b\x95\x5d\xc5\xd2\x74\xed\x03\x9c\xb0\x5d\x34\xff\x23\x6a\x05\xf4\x00\x5a\x4f\x87\x27\x70\xf6\x5a\xdc\x89\x3a\x1a\x0b\x40\x96\xf6\xc7\x64\x0a\x53\xf6\xbc\x28\x2c\x0c\x6d\x0f\x99\xb5\x10\xc8\x95\xcc\x72\x14\x71\xbc\x13\xb5\x9c\xaf\x92\x61\x32\x2b\x7b\x88\x24\xcf\xac\x96\x97\xe5\x4d\xb1\x6a\x9f\xdc\x9e\x7e\xb6\xad\xbc\xbd\x50\xd9\xad\xa8\x83\x08\xe8\x09\xe9\x86\xfa\xa6\x59\x0a\x1c\xb2\x4f\xc6\xe8\xbb\x20\xfb\x4e\x58\x66\x82\xb9\xf5\xa2\xee\x44\x5d\xcb\x1c\x8f\xd2\x72\xc9\x6f\x84\xdd\x89\x62\x3d\xee\x47\x61\x7f\xc9\x09\x91\x65\xfe\xe9\xd6\x32\xf5\x82\xd4\xa8\x9d\x2a\xe8\xd7\x32\x67\xb8\x07\xda\x91\x09\x32\x20\xc0\x44\x69\xea\x55\xa5\x64\x69\xbc\x38\x34\x5a\xa0\xde\x87\x75\x61\x99\x97\x2b\x61\x55\xb7\x71\x07\xef\x96\xee\x72\xc3\xcc\x1a\x3c\x53\x87\x59\xc0\x98\x16\x82\xfd\x10\x60\xc2\x20\x9e\x10\xb8\xf2\x9c\x0f\x63\xfc\xb9\x1b\xa7\xf0\x3e\x70\x69\x2c\x1b\x09\xd5\xa3\x32\xd1\x91\xc3\xb1\x30\x90\x78\x7f\x4e\x8e\x63\xe2\xeb\x37\x9e\x91\x41\x3f\x38\x36\x58\x52\xeb\x7e\x0e\x4e\x19\xbb\x8c\x07\x72\x9f\xb4\xb8\x66\x16\x22\x99\x28\x6d\x35\x80\xcb\xe9\x78\x88\x96\xc3\x49\x96\x65\xef\x88\x07\x59\x95\xad\xa5\xb2\x89\xb3\x80\x4d\x9b\xbb\x63\x38\x9b\x0e\x16\xf1\x19\x17\x03\x1b\x5a\xb3\x5d\xce\x0f\xa0\x7f\x5a\x19\xb0\x67\xdb\x83\x88\x41\xa3\x23\xb6\x3b\x9e\x6b\xbb\x09\x66\x5d\x02\x69\xc6\x6b\xb0\x1d\xca\xdb\x07\x63\x7e\x87\xf1\xe3\x74\xf3\xe1\x38\x22\x4b\x69\xce\xfd\xe3\x73\xd8\x8d\xf5\x39\xaf\xaa\x73\xda\x9a\x39\xd8\x2b\xe7\x95\x1a\xd2\xb2\xaf\x4a\x69\x82\x49\xd6\x25\x24\xb1\x06\x3d\xb9\x30\x5e\xc4\x7f\x20\x82\x2a\x19\x77\x66\x20\x9a\x47\x60\xf2\xaf\xe7\xc0\xcb\x52\x37\x35\xdd\x42\xf0\xa2\x48\xd1\x40\xd6\x3a\x43\x08\x98\x53\x14\xd1\xb0\x56\xbe\x71\x46\x2c\x7d\xcb\x30\x4b\x55\x7b\x8c\x6a\x59\xf3\xda\xc8\xa2\xb0\xa6\x62\x69\x8d\x4a\x3c\x87\x07\x9b\xdc\x1e\x06\xac\x61\x3d\x13\xce\x35\x9f\x5a\x74\xc0\xda\x05\xd7\x6d\xb3\x8a\xeb\x74\xde\x1d\x83\xe7\xd9\x20\x67\x2d\x21\x03\x5f\xb7\x66\x2b\xd8\x6d\x27\xe3\x2a\x98\x8e\xa7\x64\xaa\x7d\xf3\x4e\x15\x4d\x69\x78\x2d\x8b\x55\xc7\xf2\x05\x83\x97\x4c\xfc\x8b\x89\xf7\xc2\xe9\x95\x36\x62\x69\x79\x6b\x97\xe0\x8d\xb2\xbc\x36\x2a\x66\x28\xe3\xe5\x8a\xae\x96\xb5\x88\x07\x1f\xc7\x66\x20\xc4\xb1\xb8\x3c\xe7\xb2\xd0\x70\xfd\x71\x0c\x56\x83\x52\x42\x12\x54\x55\x9b\xd9\x60\x63\x70\x59\xd0\x65\x75\x0e\xe7\x8e\x54\x28\xf0\xf9\xde\x52\x11\x8f\xed\x18\x95\x2c\xb5\x64\x0d\x27\x73\xf3\x7e\x41\x6d\xed\x04\xc7\xce\xfc\x71\x72\xed\x50\x7a\x77\x2d\xdb\xc6\x70\x69\x37\x8d\xbc\x99\x4d\xdd\xe5\x6d\x87\xa6\xb3\xca\x3a\xfe\x88\x9c\xcd\x55\xcd\xe6\xe2\x9e\xa9\x2c\x6b\xea\x5a\x94\x99\xc0\x6b\x80\xaa\x97\x93\x28\xa1\xc7\x52\xb5\xff\xd5\xcc\x44\x21\xcc\x84\x2d\x94\x36\xcf\x0b\xb9\xc6\x73\x41\xaf\xd2\x39\x29\x5b\x88\xbc\x29\xd0\x47\x31\x6b\xf4\x6a\xa6\x3e\xc0\x54\x41\x41\x45\xc0\x62\xdf\xdd\x7d\x2d\x0d\x5a\x12\x60\x1b\x2a\xf6\x44\x98\xec\x89\x7d\x59\x27\xce\xbb\x6d\xed\x19\xef\x6b\xeb\x45\x00\x74\x6d\xc4\xcf\xc4\x6e\xb7\x26\x37\xb8\xaa\x00\xc1\x08\x1f\xc2\x12\xfc\x6b\xe8\xa2\xd5\xd1\xbd\x19\x78\xbd\xec\xe4\xdd\x64\xd4\x3c\xba\xfe\x4e\x69\xc9\x9c\x27\x2e\x5c\xa9\xf6\x8d\x63\xc9\x5b\x97\xc2\x08\x8d\xbe\x2c\x34\x9e\xa3\x37\xe1\xc6\x45\x96\xa4\xd1\xa5\xd1\x89\x25\xba\x50\xf7\x76\x9d\x4f\xf0\x63\x8b\x9a\x2c\x73\x79\x27\xf3\x86\x17\xce\x2d\x46\x82\xdc\x54\x95\x22\x1f\x8b\xf3\x93\xa1\xc3\x39\xd8\x59\xec\x7b\x55\x33\xb3\x00\x17\x3a\xd7\x78\x33\x0f\x5e\x41\x0d\x7e\xf5\x25\xaf\x6f\x63\x2f\xdd\x16\xae\x8e\x5b\x94\xa2\x41\x39\x0c\x57\x0c\x93\xe8\xd8\xb3\x9b\x3c\x46\x67\x42\xf4\xc3\x92\x56\xa9\x6a\x59\x1a\xef\xb3\x0c\xee\x52\x60\xf2\xb6\xc2\xf7\xdd\xca\xe1\x49\xe1\x5b\x39\x5e\x76\xe5\xf6\x9f\xa2\xae\x83\x3d\xed\x4c\x2d\xb0\xb3\xfc\x05\x7f\xb8\x52\xab\x62\x37\x98\x28\x83\x07\xd7\x4b\xe0\x01\xe9\x8c\xea\xca\xc2\xb6\x74\x2e\x04\xc4\x22\xec\x47\x66\x32\x7c\x40\xe1\xc2\xbe\x80\x82\xda\x22\xfe\x0c\xe2\xc1\xb4\xa4\x03\x2f\x8e\x7d\x80\x25\x1f\x19\x49\xd6\x34\x12\x53\xf6\x6e\x91\x38\xb2\x13\xfa\xda\xf3\xb6\x5b\x9b\x33\x41\x58\x74\x9c\x3e\x07\xa2\x6f\x84\x03\x2e\xa7\x13\x91\x1a\x54\x15\x2f\xbb\xe3\x1f\x85\xdc\xde\x8b\x0b\xc3\x82\xff\x36\x39\x88\x4c\x53\x25\x13\x85\xf6\x74\x80\xc1\xf2\x09\xb0\xfa\xa6\x70\x40\x56\xf9\x1b\x9a\x5a\x70\x72\x3c\xc3\x65\x0c\x28\x5c\x34\xaa\xb7\x66\x58\x00\x15\x58\xd7\x73\x9b\x65\xf5\x31\xee\x8a\x46\x85\x41\xc9\x90\x3f\xec\x96\xa8\x45\xd6\xd4\xd2\xac\xf0\xd2\xfc\x83\x01\x9f\x3e\x3c\x79\x2b\x78\x6e\x47\x79\xab\x94\xf9\x5e\x16\xe2\xda\x4d\x99\x39\xbf\xbf\xa9\x1b\x58\x4f\x02\xc0\x61\x90\x96\xdb\xc3\x3d\xfa\xb0\x5d\x61\x1c\x06\x1e\x2d\xed\x7c\x26\xf4\x5c\x55\xa2\x0e\x57\xa6\xf4\x76\x7b\xc2\xc0\x71\x30\xe1\xb8\xf6\x77\x19\x7e\x1d\xf7\x6f\x3d\x4c\xcb\x32\xc3\xa5\xec\xee\x7c\x82\x17\x02\x77\x3a\x8c\xea\x4a\xae\xd3\x75\x60\xf8\x39\x70\x89\xc3\x95\xd8\x01\x85\x6a\xc9\x4b\x7e\x23\x72\x26\x4c\x06\xf6\xc0\x06\xab\xea\x27\x7c\xfd\xa5\xc9\xfe\x0e\x9b\x3d\xad\x60\x98\x35\x0d\xe5\x41\x06\x9b\x00\xcf\x04\x96\xe4\x87\x95\x95\x36\x9d\xec\x60\xaf\x85\xb9\x57\xf5\xad\x13\x89\x39\x2f\xb4\x98\xc0\x0a\xa7\x98\x85\xc4\xd7\xb3\xd6\x88\xb1\xa8\x60\x94\x9f\xd2\x66\x1a\xc6\xa7\xa0\xbb\xab\x38\xe8\xae\x67\x68\x94\xc6\xa7\x41\x20\xdb\x38\x7e\x0b\xc8\x45\x0a\xa4\x45\x31\x35\x4f\x10\x25\xb2\xce\xd0\x5d\x45\x0c\x99\xb2\x67\x1b\x07\xa0\x3b\x06\x72\xcb\xba\xe5\x4d\x13\xef\x4c\xda\x99\x01\x38\xe9\x77\x3d\x74\x01\x84\xad\xe0\xce\x10\xe6\x10\x66\x9f\xad\xc1\xcc\x12\x87\x4d\x7a\x41\x7b\x8d\x33\x13\x83\xa0\x47\xac\x35\xbf\xce\xb2\x76\x38\x58\xd7\xe2\x2c\x63\xa3\x72\xb4\xdf\x8f\x04\xfe\xbd\x30\xd9\x7b\x98\x43\x7b\x95\x01\x10\xf6\xfc\xea\x55\xec\x41\xbf\xe3\xb2\xa0\x6d\xbd\x6f\xa1\xfd\x08\xdf\xac\xfd\x72\xc3\x3a\xf9\x84\x04\x15\x21\xa9\xd9\x3f\x45\x66\xd0\xfb\x72\x23\x0c\x93\xe6\x6f\x3e\x7c\x94\x7e\xf2\xc6\x9c\xbf\x70\xf7\xee\x86\xeb\x4a\x64\x2e\xc8\x1f\xf6\x0a\x04\x1a\xc5\x90\xb8\x37\x54\x2d\x6f\x64\xc9\x0b\x7c\x63\xca\x7e\xae\x28\x80\x99\x10\xf1\x20\x1d\x12\x0d\xbe\x30\x8c\xc4\x7f\x9b\x0d\x18\x90\xf0\xc5\x58\x20\xd0\xdc\x21\x71\xe5\xc3\x5c\xf0\xab\x78\xfc\x0a\x9e\xb5\x86\x6f\x05\x1e\x6c\x49\x03\x00\x19\x46\x47\x3e\x90\xd5\x4c\x4a\x03\xbf\xc5\x78\x68\x3e\x13\x05\x9e\xfb\x0a\xa9\x0d\x3e\xd2\x09\x77\xe0\xf7\x35\xec\x09\xcf\x6b\x61\x9a\xba\x64\x33\x65\x01\x03\xa0\x29\x7b\x81\x36\xab\xc5\x9b\xc6\x42\xb1\xba\x93\xdc\xd9\xb3\x99\x2a\x0a\x01\x41\xcd\x7f\xf3\xca\x91\x1e\x75\x87\x0d\xe6\x0e\xbd\x02\x5b\x52\x1b\xfc\x94\xfd\x68\xb1\x42\x24\x10\xea\xc0\x34\x02\x3c\xc2\xfe\x9f\x8d\x36\x44\xe6\x25\x97\xe0\x04\x26\x90\xf1\x54\xec\x2f\x08\x77\x10\xd3\x29\xfb\x41\x98\xe8\xed\xc0\x62\x1a\xc9\xaa\x97\xb9\x6a\xca\x9c\x62\xa9\x3e\x69\xef\xa8\x5f\x0d\xc7\x2f\x03\x46\xdd\x10\x7a\x3d\x61\xcf\x33\x23\xef\xc4\x0b\xc1\xf3\x42\x96\xe2\x1a\x38\x3e\xb4\xa1\xda\x2f\xdc\xe2\xe6\x45\xa1\xee\x21\xb8\xbc\xf3\x35\x19\xfe\x4e\xae\x3b\x7b\x26\xd0\x61\xdb\x7d\x93\xb3\xa6\x94\xff\x6a\x88\x6f\x53\xf6\x8f\x46\xd4\x2b\xf0\xf7\x98\x58\x5f\x7b\xce\x3a\xdf\x8e\x16\x56\x58\x54\xdd\x4b\x71\xa7\xea\xa5\xf6\xd8\x02\x94\x21\xa2\xa0\xd5\x46\x36\x98\xbb\x3b\x8b\xcc\x73\x6f\x4a\xbb\xb5\x17\x1c\x17\x10\x8f\x22\x0a\x5e\x59\x31\x1f\xad\xae\x2b\x95\x77\x34\x34\xf2\xcd\x87\xa4\x8f\xe0\x15\xcc\x7a\xb6\x94\xc6\xf9\xc7\x6b\xb1\x54\x77\x7d\xac\xd9\xc0\x96\xe7\x8e\x5a\x2e\xe6\xbf\x97\x35\x71\xcc\x09\x1a\x7f\x70\x22\x05\x4b\xfe\x5f\x8d\xa8\x25\xf9\xf2\x20\x5f\x21\x70\x2c\xb0\xaa\xa9\x14\x25\x63\x48\x55\x4e\xd9\xf3\x3c\x67\x9c\xdd\x5b\x45\x35\x61\xd9\x42\x64\xb7\x4c\xce\x3d\x0b\xa4\x76\xb7\x2f\x53\x7f\xff\x0d\x66\x34\x1d\x3c\x27\xc0\x65\x7b\x10\x81\x1f\x20\x5b\x45\x2e\x85\x36\x7c\x09\xd9\x00\x6a\x06\xf9\x03\x39\x4a\x03\x8c\x12\x2f\x3b\xaf\x62\x3c\x04\x6b\x79\xde\x89\xd2\x38\x19\xf4\x72\xe7\xb7\x13\x3f\x91\x58\x3c\xdb\x30\x31\xc6\xde\xaa\x99\x43\x88\x03\x8a\xef\x38\x59\x18\x5c\x98\x8f\x63\x51\x46\xbb\x30\xa5\x74\x64\x0b\x5e\xde\xe0\x2f\x77\xbc\x68\xfc\xea\xfa\x11\x46\x05\xa0\x6b\x46\x2e\xc5\x3d\x7d\xe6\x1e\xa3\xb8\xf5\x8c\x7d\x00\x46\x58\x61\x92\x99\x60\xa2\xbc\x93\xb5\x2a\x97\xa2\x34\xec\x8e\xd7\xd2\x1a\x41\x63\xf4\x2a\x19\xbb\xfd\xdf\xc3\x0c\x68\x84\x1e\x77\xda\x36\x8a\x95\x92\x66\x2c\xa5\xac\x0c\x0a\xbc\xbe\x2c\x19\x9c\xea\xfe\xfa\xd9\x57\x5f\x4e\xd9\x73\x76\x4d\x93\xc9\x78\x51\x80\x77\x5d\xd1\xe0\xe8\x13\x09\x7a\xc0\x51\x76\x2d\xd4\xaf\xbf\xfa\xf2\x0b\x66\x78\x7d\x23\xe0\xc4\x88\xbf\x5d\x7c\x7d\x01\xb1\x65\x9c\xa2\xc6\xee\xdb\x2a\xc6\x25\x3c\x15\x8d\xa6\x3c\xce\x32\x5d\x53\x70\x0c\xb1\xbf\x04\xf4\x62\xea\x01\xdc\x40\xc1\x60\x91\xd2\xa9\x41\x6a\x37\x2a\x6a\x00\xfb\x07\x99\x33\xe9\x10\xc3\x30\x75\x63\xad\x32\xcd\xbe\x7f\xf3\xe6\xfa\xe5\xdb\x5f\x5e\x5d\xbe\x7c\xef\xfe\xf7\xef\x6f\xae\xdf\x4d\xfa\x1e\x5c\xbd\x79\x9b\x3e\x80\x1f\x30\xbe\x3b\xfd\xf1\xbd\xa5\xdb\xfb\x77\x97\x57\xfd\xdf\x44\x8f\xdf\xbe\x79\xf7\x66\xf8\xb9\xb7\xc0\x06\x01\x3c\x7f\xf1\xe2\x2d\xf9\xbf\x6a\xbb\xf8\xaa\xa6\x08\x5a\x1e\xd3\xda\x70\x25\x1d\x64\x07\x23\x4b\x88\x47\x06\xdd\x88\xf5\xd1\xf3\x15\x98\xb1\xf6\x95\x4d\x9b\x17\x6c\xde\xf4\x6e\x77\x13\x6b\x6d\x42\xf7\x0b\xe9\x76\x82\x99\x40\xc3\x2b\x44\xcb\x81\x70\x93\xc0\xb4\xa0\xba\x3d\xc2\x1b\x8a\xaf\xdf\xbc\xb3\xc8\xdf\xb3\xa6\x8a\x3f\xb6\xe7\x43\x49\xa7\xe6\x74\xe8\x8e\xab\x64\x17\xea\x72\xad\xe5\x4d\x49\x37\x26\xb2\x1a\x41\x59\x6b\x6f\x72\x78\x9d\xbd\xba\xda\x6b\x73\x40\x13\x80\x6e\xd1\x63\x13\x36\x49\x5e\x89\xb2\x05\x34\xe3\x98\xb7\x07\xd4\x78\x75\xc5\x78\x9e\xd7\x3d\x4e\xa3\x5d\x08\x91\xa9\x65\x55\xc0\xdd\x0f\xa8\x7e\x9f\x5c\xa8\xe6\xb4\x93\xb9\x3b\xfe\x2b\x95\x5f\x03\xca\x23\x68\x55\x37\x56\x09\xd5\xaa\xb9\x59\x74\xc1\xc2\x8b\x74\x3f\xe9\x21\x6e\x52\xcc\x43\xa6\x95\xa5\xa2\xcc\x48\x42\x22\x99\xf4\x69\x64\xaf\x4c\xf2\x43\x90\xd1\xca\x5d\xa4\x85\x2d\xcf\x4d\x15\x6c\x19\x6e\xb8\xcb\xc7\xb0\x36\x15\x38\x57\xc1\x36\xac\x0a\x9e\xb9\xef\xd2\x29\x48\xb3\x7e\x70\x1c\x18\xed\xac\x00\xa0\xcd\xc5\x67\x17\x3b\xb0\xd1\x9a\xac\x26\x44\xa5\xe1\x15\x0f\x2c\x7e\xbb\xe1\xdc\x8b\x99\x56\xd9\xad\x18\xba\xd0\x8a\x79\xe7\x5c\x97\x23\x21\x12\xf3\xf6\xb4\x94\xa7\xec\x57\x07\x30\xc9\x99\x55\x76\x69\xd4\x52\xd8\xfd\xe5\x83\xc8\x3c\x36\xd1\xcd\x69\xd8\xa7\x2a\xbb\xb4\x5c\xd2\x96\xfb\x2e\x47\x9f\x5f\x00\xdf\xce\xe6\xf2\x91\xeb\x76\x80\x24\xce\x11\x07\xd9\xc2\x33\xbb\xe6\x38\xa2\x6e\x28\xbc\x2d\x21\xdc\x78\x5e\xc0\x64\xe0\xf4\xec\x21\xa5\x11\x6e\x96\x2b\x28\xdc\x7e\x80\x53\x70\x05\x2e\x4d\xe7\xf1\x2d\xf7\x41\x98\x12\xe7\xa8\x1d\x8a\x0d\xac\x90\x77\xa2\x14\x5a\xdb\xbd\x7a\x26\x26\x74\xc0\x82\x3c\x6c\x51\xe6\x10\x61\x88\xb7\x67\x4d\x3d\x78\x54\xa8\xd5\x2c\x71\xe7\x3b\x4e\xfd\xaf\x52\x99\xff\xd5\x4a\x49\x40\x0d\xf5\x64\x21\x78\x61\x16\xff\x83\x3e\x65\x3b\x58\x8a\xc7\x81\x4e\x99\x2d\xa0\xaa\x4c\x27\xc6\xce\x9e\x9c\x4d\xd9\x8f\xf4\x12\x66\x4b\xb9\x17\x81\x4f\xfe\x45\x48\x51\x07\x67\x0a\x97\x05\x69\xc0\x16\x70\x7f\xcd\xe1\x42\x97\x4a\xef\x8c\x4e\x12\x13\xdc\xe6\xb6\xb4\x16\xfb\xff\x88\x5a\x8d\xdf\xb0\x3c\x81\xdf\xc3\x90\xe3\xd9\x59\xa8\x8c\x9c\xc0\x13\x56\x2a\x87\xcf\xe1\xd8\x09\x6a\xe8\x93\x8c\x12\x62\x9e\x98\x65\x45\x0c\xfe\x64\x5f\xbe\x8e\xe0\x2a\x18\x9f\x8d\x16\x9a\x9d\x09\x28\xad\x11\x05\x93\x04\x94\x84\xc7\x89\x32\x53\x7f\x4c\xa1\x78\x67\x3f\xb2\x4f\x91\xd3\x80\x3e\x71\x9b\x60\xa0\x1c\x23\x6e\xba\xcd\x1d\xf9\x79\x71\x02\x66\x9a\xac\x62\xa8\x21\x8e\xc3\x4c\x93\x55\xdf\xd8\x23\x16\xb9\x34\x4f\xb2\x2c\xc3\x9c\xe8\x74\x67\x8d\x64\x2c\x8f\x81\x95\x27\x5c\x14\xa8\x3f\x00\xe2\x92\x24\x1b\x11\x57\x75\x5d\xab\x5a\x53\xe9\x9e\xa7\x17\xe4\x89\xd6\x13\x9f\x7b\x42\x03\xd0\x87\x96\x5f\x08\xb5\x12\xe5\x7e\xe2\x90\x88\x02\xad\xf8\x7e\x71\x78\xfa\xf5\xe1\xe5\xa1\xa5\xab\x77\x94\x87\x75\x5a\x3a\xd5\xd0\x91\x9e\x3c\x8d\x96\x76\x68\x80\x54\x84\x1d\xc3\xd5\x24\x21\xd7\xaa\x47\x36\x16\x0c\x1e\x89\x46\x47\x32\xe8\xfe\xcc\x69\x69\x42\xcd\x67\x9e\xc1\xdd\x1b\x29\x6b\xdd\x14\x86\xc9\x48\xe7\xa3\x38\xd0\xbe\x18\x9c\xc2\x24\x36\xf7\xee\x8a\xe5\x56\x82\x13\x04\x6d\x64\x47\x5d\x59\x66\xb5\x58\x0a\x0c\x0b\x4b\x45\xc8\x28\xf6\xf4\xc4\xfb\xc1\x01\xe5\xc5\x6f\x03\xc9\x16\x70\x08\x3d\xd2\x75\x23\x0e\x6e\x02\x51\x85\x21\x27\x21\xeb\x37\x02\xcb\xbb\x10\x06\x83\x47\x71\x3c\xf8\xc1\x55\x6d\xf2\x45\x4b\x84\xa8\xa4\x47\x2d\x6f\x6e\x44\x0d\x84\x6d\x61\xa5\xc8\x60\xe8\x91\x8f\xcd\xb2\xd1\x63\x3b\x9c\x48\x3e\x5a\x2a\x65\xd9\x14\x46\x56\x85\xe7\xb8\x66\x7f\xd1\x85\xba\xff\x74\x5b\x99\xc1\x58\x4d\x55\x2a\xa3\x4a\x99\x71\x7b\xa0\x87\xf9\x72\x1d\xad\x84\x68\x6f\xfd\x53\xbd\x1c\x43\xbd\x00\xb4\x16\x51\x96\x8d\x36\x3e\xa2\x9d\xf1\x1b\xbb\x79\xe1\x7c\x1c\x00\x45\x73\x49\x89\x33\x57\x75\xa0\x8c\x28\x2d\x41\xf3\xe8\xae\x8b\x24\xd8\xd2\x4a\x33\x5e\xae\xa5\x96\x3f\xbe\xc1\x78\x53\x9f\xca\x8d\xd9\xbc\x38\x75\x3f\x35\xbc\x0d\xb9\x13\xf5\x0a\xee\xc8\x68\x75\x06\xaa\xe9\x09\x5b\x0a\x0e\x21\xe4\x4d\x65\x14\xfb\xc2\xcd\xe3\xa0\x8b\xa7\x16\x3c\x97\xf1\xea\x01\x79\x93\xa5\x34\x92\x17\x56\x93\xf0\xd5\xe8\x25\xe2\x03\xa0\x22\x80\x71\xd8\xfd\x0c\x2f\xe5\x57\x54\x72\x8b\x02\x0c\xa3\x91\xb0\xf8\x03\x64\x41\x38\x9e\xed\xa5\x65\xb1\x64\x16\x44\x35\xcf\xe5\x4d\x53\x07\x35\x9f\x0e\x1b\xdd\x6e\x7a\xf4\x83\x89\x30\x65\x97\xc0\x14\xe7\x7d\xbf\xc6\xb2\x85\x96\x69\x56\x2b\xab\x65\xc5\x6b\x1f\xae\x96\x00\x4e\xa5\xde\x25\xb8\x21\x0d\x30\x46\x2c\xd4\x68\x8c\x2a\x9d\xc5\x10\x8e\xca\xeb\x6d\xcf\xc4\xbd\x0c\x06\x22\x63\x16\x89\xe3\xb5\x70\x3e\x0b\x3f\xdb\x03\x33\x96\xb8\xb8\x06\x95\x4c\x95\x1a\x6e\x62\x4c\x54\x91\x82\xd2\xfe\x53\x0d\x3b\xe9\xb9\x5b\x89\xb2\xf8\x79\xbe\x9a\x44\x7f\x53\xc2\x5b\xa4\xae\x22\x65\xef\xbc\xe6\x07\x3d\x12\x5f\xbb\x28\xcb\x4b\x8c\xb2\x9c\x58\x24\x9e\xeb\x9f\xb5\xa8\xbf\xfd\xf2\x8b\x2f\x3e\xfb\x7c\x80\x7d\xed\xef\xc8\xe7\xe9\x02\x17\x3b\xf9\x0b\x1e\x6a\x72\x08\x68\xda\x95\x3c\xe0\xdd\x46\xe6\x0c\xc6\xde\x2b\x4a\xf0\xec\x32\xce\x88\x49\x36\xbc\x80\x8c\x82\x97\xd9\x6c\xc5\x2a\xae\x61\x93\x0d\x83\xbb\x54\xb4\xa6\x64\x5c\xb3\xa6\xac\x6a\x79\x27\x0b\x91\xdf\x08\x48\x7d\xad\xd3\x3b\x79\x59\xb2\x6b\xf4\xd7\x8a\x9c\x55\x0b\x08\x56\x49\x2b\x85\xb8\x48\x35\x77\xcd\x47\xd1\x6a\x5c\x0f\x06\xac\x75\x02\x43\xbd\x80\x68\xf6\xf3\xab\x17\xec\x09\xfb\xe1\xd5\x8b\x6d\xea\x84\xb8\x98\xda\xf7\x14\x53\xbb\x59\x1a\x68\xd2\x37\x22\xc7\x18\xc2\xe9\xae\xf2\xe0\x83\x96\x03\xc4\xf5\xa2\x10\xd3\xfc\xc6\x79\xc1\x31\x8e\x71\x3f\xb1\x70\x4b\xbd\x5b\xdd\xa6\x4c\x47\x5c\xaa\x5c\x58\xd1\xd0\xc2\xd0\xdd\x6a\x7e\x76\xa6\xfd\x54\x69\xa6\xb8\xe8\xc3\x57\x24\x52\x5c\x23\xb2\x3b\x48\x09\x55\x0f\x49\x62\x1a\x7b\xa4\x44\x82\x3c\x68\xc6\xf1\xc9\x39\x29\x79\xef\xee\x3e\xae\x60\xd4\xad\x20\x6c\x0c\x89\x3e\x94\x90\xf4\x43\xc7\x60\xa1\xf8\xb2\xa8\xa3\x3b\xee\x6b\x69\xe0\x22\xba\x56\xca\xcc\x29\x51\x74\x1d\xae\x3b\x5d\x44\xa4\xaa\x25\xec\xff\x24\x48\x6b\xa6\xe0\x43\x91\x31\xc2\xe2\xd7\x34\xd8\x3c\x44\xf8\x14\x85\xba\x27\xc3\x75\x50\x7e\x30\x8f\xe1\x98\x4c\x06\x34\xbc\x6c\xbf\xd4\x19\x2f\x00\xcf\x2d\xd9\x7c\x9f\xb0\xb9\x1d\xac\xfd\x7c\x60\x90\x98\xdb\x56\x09\x62\x70\x9c\x5f\x9f\x4c\xf8\x37\x47\xeb\x86\x11\x57\x86\x76\xdb\x00\x76\xba\xbb\xb6\x21\x1a\x44\x41\xe5\x5e\x4f\xc3\xbb\x21\xb8\xa9\x0f\x55\xcf\xeb\x29\x7b\x9e\x26\x6d\x76\xec\xc8\xb5\xc4\xf7\x81\x07\x9c\xdd\xd8\xa3\x0a\x6c\x5c\x7f\x79\x7a\x71\x71\xf1\x29\xdd\x68\x52\xfa\xdc\xc5\x50\xc9\xac\xba\x29\x27\x49\x5d\x37\x74\xf6\x61\x76\xd9\xe0\x7d\x17\x3d\xc7\xaa\x42\xa9\x01\x57\x73\x12\x7d\x8f\x10\x6e\x75\x53\x31\xb5\x7f\x7c\x6b\x91\x1b\xda\x14\x47\x84\x6f\x3b\x2a\x53\x68\xee\xf0\x8e\x38\x61\xaa\xee\x25\xfe\x21\x35\xe2\xcb\xbe\x50\xa2\x89\xa5\x13\x2f\xf5\x70\xd4\xc5\x2f\xf4\x2a\x7b\xe9\x5e\x4c\x63\x3f\xad\xc1\xaf\x34\x66\x6a\xde\x59\xc0\x1a\x52\x28\x59\x29\x50\xae\xfc\xaf\xfb\x5b\xb8\xbd\xc1\x50\xd3\xfe\x89\xb1\x5c\xcc\x65\x99\x84\x18\x56\xb5\xb8\x93\xaa\xd1\xc5\xca\x3d\x1c\x08\xaf\x02\x51\x02\xba\x80\x82\xdc\x31\xe4\xc5\x13\x76\x24\x23\x7c\xad\x10\xaa\x13\xb2\x37\x67\x74\x33\xd3\x46\x9a\x06\x74\x18\x62\x8f\x09\x6c\x9d\x25\x04\xd5\x4e\x8e\xc4\x9f\x56\x39\xc8\xf6\x2c\x75\x1a\x03\xba\x8c\x2a\x4d\x76\xdf\x8d\x62\x45\xd7\xb3\x10\x80\x3e\x2c\x1b\x4f\xc7\x3d\x37\xe2\x69\x19\x18\xca\x8c\x0f\xb1\x6d\x2c\xb3\x5a\x8c\x72\x9e\x86\x83\x32\xeb\x17\x55\x34\x4b\x71\xdd\xcc\x2a\x6e\x16\x2f\xcb\x3b\x4f\xf4\x89\x25\x34\x14\xa0\x3c\x1a\xc3\xee\x60\x6c\xda\x04\x70\xac\xdf\xb4\xbc\x39\xd7\x46\xd5\xfc\x66\x23\x9b\x7e\xe2\xb7\x82\x81\xdf\x8b\x27\xf1\x02\x0e\x56\xc6\x4b\xcc\x67\x36\x44\x71\x5e\x86\xb9\x30\x35\x1f\x8e\x58\xdc\x22\xc2\x6c\x1f\xc2\xa2\x6d\x30\xd3\xaa\x80\x4a\xf9\xc3\xc5\x4b\x87\x29\x0c\x3e\xcc\x6d\x08\xdc\x1d\x33\xa5\xf9\x6f\xd7\x85\xba\x3f\x04\xe5\xc9\x91\x37\x48\x7d\xb7\x07\xf6\x88\x3d\xd6\xb9\x48\x70\x94\x1a\xec\x84\xa2\xa7\x3c\xde\x31\x99\x33\xe3\xd9\xad\x91\xd9\xed\x50\xac\xce\xa1\x19\xe3\xc7\x7b\xa4\x4c\x09\xf8\x41\x49\xa1\xd3\x72\x04\x8b\x94\xda\x63\xd6\xf6\xec\x70\x01\x78\xb2\x04\x08\x76\xea\x04\x16\x38\x92\x06\x2f\x6d\x4f\xfb\x4f\x7e\x71\xa5\x39\xa1\x86\x6f\x47\x73\x3a\x5d\x04\x35\xcb\x7c\xe6\xb2\xcb\x54\x34\xca\x23\x83\x67\xc9\xa7\xd3\xff\x36\x10\xef\xe9\x7e\x17\x1f\xaa\x9a\xd1\x7d\x54\xec\xee\x70\x36\xf3\xb3\xe9\x7f\x1b\x20\xcf\x5c\xd5\x2c\xf9\x32\x10\x8c\xb1\xcf\xa6\xff\x6d\xa2\x54\xad\x44\x17\x82\x6f\x39\x1a\x4c\xea\xf2\xcc\x40\x7b\x0a\x59\x53\x00\x3b\x0a\x2d\xcb\x0a\xc1\xcb\xa6\xea\xa4\x57\x1d\x87\xe9\xe8\x16\xc6\x2a\xeb\x58\xd7\x00\xce\xca\x5b\x0b\xc0\x5d\xc2\x20\x57\xe4\xbc\x6f\x8b\x63\x8e\x59\x4b\x95\xa3\xa7\x3d\x0f\x47\xc8\x56\x7c\x6c\xe0\xc4\xf6\x32\xf3\xcb\x38\x8c\xd6\x60\x43\xb7\xcd\xfd\x18\x1d\x62\x51\x5a\xfb\x07\x72\x79\xf4\xc4\x11\x10\xfe\x44\x7e\x5c\x63\xd5\x01\x2a\x5e\x4d\x79\xbc\x03\x8c\x01\xf2\x94\x2a\x17\xbf\xb3\x97\x00\x30\xce\xbd\xb2\x10\x67\x2b\x97\x6c\xae\x43\x55\x31\x37\x00\xda\xe2\x33\xd5\x18\x0c\x23\x8f\xeb\x1d\x94\xb9\x5f\x05\x5b\x98\x75\x13\xb6\xf4\xea\xd2\x37\x41\xb1\xd3\x25\x6a\x53\x1e\x56\x94\x21\x0e\x13\xa7\x1c\xb7\x56\xfa\xd2\xad\x2c\xf3\x6f\xe3\x50\x69\xad\x9a\x3a\x13\x50\xcc\x7a\x21\x02\x9d\x28\x8d\x92\x56\x1b\x12\x36\x18\xe4\x33\x91\x94\xe0\x6a\x0f\x9d\x0e\xbb\x7e\x48\x00\xea\x13\xab\xbb\x83\x0e\x0c\xf8\x9d\x32\x8b\x7e\xae\x86\x7b\x29\x2d\x4a\x27\x13\xdd\xda\x13\x11\x2f\x78\x5f\x64\x73\x8f\x08\x5a\x99\x78\x82\xf0\xfa\xa4\xef\xe5\x9d\xa4\xfe\x3c\xef\x54\xe1\x5c\x6b\x85\x5c\xca\xc1\xf0\xd9\x48\xd2\x5e\xab\x97\x58\xe9\xe6\x1d\x97\x25\xd5\x39\xa8\xd9\x4f\xee\x86\x1f\x02\x6d\x7f\xbb\x16\xb5\xe4\xc5\xef\x4c\xd8\x91\xe8\x36\xcf\x3e\x80\xfd\x78\x29\xcb\x30\xae\x4b\xdf\xfc\xed\x85\xd4\x75\x53\x19\x79\xb7\xb9\xaa\xb5\xdd\xec\x21\xa4\xe0\x9c\x04\x57\x94\xbc\x96\x8a\xb2\xaf\xda\xa0\x27\x2e\xfa\x3c\x70\x08\xd0\xa2\xd3\x3a\xd7\xac\xa2\x6b\xc0\xf0\x29\x5e\x30\x02\x49\x3a\x4b\xfe\xcb\x01\x7a\x5b\x0d\xd1\xa5\x37\x50\x69\x92\x90\x1d\x6e\x3b\xed\xcf\x98\x12\xc9\x8b\x5d\x89\x7e\x2d\xcb\x1b\x24\x79\xa0\x38\x80\xf4\x67\x25\x18\x25\xb3\x64\x2c\x34\xce\xda\x8e\xbf\x05\xad\x93\xba\x04\x2d\xfa\x58\xcd\xe1\xb4\x49\x8e\x55\xda\x60\x40\x91\x33\x7b\x36\xf4\x21\x70\xee\x32\x92\xa8\xee\xf2\x28\x11\x39\x28\x49\x85\x89\xa1\xae\x17\x54\x8b\x0b\xa2\xcc\xbb\x67\x87\xed\x98\x80\xe1\xe2\xff\x78\x73\xbd\x99\xd2\x20\xbf\x2f\x3f\x18\x51\xe6\x22\x67\x69\xfc\xf8\xb5\x30\x16\x08\xbb\x2c\xb8\x4e\x0a\xa1\x91\xf5\xa7\x4a\x7c\x0f\xa5\xdc\x65\x42\xd4\x82\xd4\x88\x6b\x4b\x45\x19\xe9\x76\xb9\x81\xda\x59\x8a\xa5\xaa\x29\x35\xa5\x6a\xb6\x3e\x46\x5f\x5e\xfd\x8c\x79\x3f\x08\x86\x46\x89\x06\xe9\x64\xc6\x60\x8c\x0a\xbf\x13\x76\x36\x34\x19\x2c\xc5\x71\xa5\xf2\x7f\xbc\xb9\xfe\xa1\xe1\x35\x2f\x8d\x18\x55\x35\x1b\xc8\x3e\x1c\xa3\xef\x5b\x95\x0d\xf7\x47\x8b\xa9\x5f\x8b\x6b\xfb\xb6\xcb\x4b\xe4\x45\xe1\x21\x80\x62\xbc\x95\x45\x11\xee\x42\xb6\xcc\x3b\xac\xe2\xcb\x6b\x6d\xe2\x30\x6e\x30\xe8\xce\x70\xd7\xc2\xcc\x4f\x4d\xf7\x07\x6f\x45\x26\xe4\x1d\x29\x8b\xb9\x14\x45\xbc\x7f\x45\xd7\xe1\xad\x0e\x6a\x08\x0a\x5a\x5a\xfa\x62\x3a\xae\x5e\x1e\x8d\xaa\x42\x9e\x6f\x48\x61\x9c\x26\x26\x4c\x92\x57\x1a\x46\x50\xea\x36\x4e\x41\x8e\xb2\xfe\xfd\x15\xbb\xcf\x44\x4d\xbe\x9a\xb2\xef\x42\xc3\x35\xba\x89\xf7\x29\xcb\x9d\x1e\x70\x71\xad\x07\xca\xc6\xbc\xa7\x56\x2a\xe4\x89\xef\xc7\xb6\x95\x90\xc6\x91\x8f\xe0\x14\x4b\x84\x01\xae\x79\xc1\x04\x92\x98\x9a\xe6\x73\x82\x28\x8c\xc7\x0a\x6c\x4d\xf4\x77\x31\x22\x11\xa9\xc6\x0a\x67\x2d\xde\xdb\x61\xdb\x02\xfa\x3c\x5f\x4a\x0d\xd6\xe0\xbd\x98\x59\x94\x26\x58\x80\x61\xd9\x18\xbc\x89\xa1\x9f\xdb\x9b\xa2\x15\x57\x5e\xc9\xf3\x25\xb7\x0b\x5c\xd4\xab\xdf\x03\xa8\x5f\xf1\x13\xf6\x5b\xb8\xf1\xfc\xe6\x12\xb3\x48\xed\x3b\xe5\xef\x30\x84\xd3\xcf\x9d\x91\x9c\xe0\x43\x79\x9c\x51\xc2\xfd\xf4\xa2\x03\xc5\xf3\x07\x94\xa8\x86\x6b\xaa\x24\xdf\x70\xca\x9e\x1b\x23\x96\x15\xd5\xcc\x53\x38\x6d\x4b\xdc\x7e\x08\x41\x97\xf9\xac\xae\xbf\x01\x50\xb8\x33\x71\x91\x03\xf8\xa9\x2b\x9e\x13\x7f\xee\xb6\x5d\xcb\x7e\xc8\x61\xa7\xe1\x21\x82\xc7\x15\xf1\xa0\x02\x2c\x7f\xc3\xac\x76\xf8\x77\x22\x80\x30\x4b\x68\xe8\x10\x3e\xc6\x9d\x63\x3b\xcc\x43\x29\x22\x94\xd1\xa8\xb2\x07\x12\xaa\x1f\x90\x9b\x83\xab\x2c\xd7\x9d\x03\xdd\x38\x0d\xce\x83\x4a\xab\xbb\x79\x8c\xd8\xd1\x78\x25\xbd\x8c\x3d\x21\xbc\xc6\x0a\x31\x75\x24\x3c\x89\x18\xf7\x8c\xb5\x93\x20\x77\xe1\xfc\x01\x44\x99\x7e\x8d\x45\x39\x17\xa5\x3c\x94\x24\x77\xa5\x18\xe5\x70\x1f\x49\xee\x9f\x42\x38\x54\x91\x24\xd3\x34\x8e\x27\xc8\x54\xf9\xa8\xad\xdf\x0e\x2a\xc7\x2e\x61\xf5\x09\x0c\x16\x7a\x99\x76\x94\xea\x78\x81\x7e\x2b\x6e\x24\x94\x0d\x88\xa0\xf0\xf6\xec\x52\xae\x24\x05\x28\x62\xf1\x33\x0a\x2f\xce\xab\xaa\x58\x39\x3b\x82\x98\x14\xa2\x22\xb0\x58\xfc\x06\x26\xc6\x50\x3d\x17\x51\x19\x45\xaa\x2a\x2e\x05\xe5\x30\x35\x6a\xfd\xf8\x48\x31\x0c\xf9\xdd\x02\x13\xba\x43\xef\x60\x70\x74\x79\xea\xaa\x99\x93\x48\x54\x8f\x76\xdb\x49\xa6\x22\x38\x8f\x54\xaa\x72\x51\xae\x22\x98\xbb\xc8\x14\xca\x53\x08\xe2\xd8\x4a\xa6\xda\xe3\x1f\x4f\xa2\x60\x24\x6e\x0c\xcf\xda\xb7\x4c\xfb\xc9\x50\x7a\xb6\xe4\xbe\xb6\xae\x1f\x8d\xe2\xed\x46\x4b\x4d\xb9\x49\x56\xd0\x82\x07\x95\x0e\xa1\x36\xa5\xdd\x4d\x9c\x1b\x41\xe1\x79\xeb\x4c\xd3\xe8\x4c\x37\xb3\x73\x77\xae\xf5\x1b\x08\x1c\x74\xe8\x85\xb0\xc9\x1c\x79\x8f\x00\x9a\x50\xff\x39\x7f\xd2\x8e\x2a\xc3\xf5\xd6\x42\x3e\x1a\x73\x7a\x11\x01\x4f\x5b\x54\xc5\xcf\x97\x84\x3a\x12\xf3\x5a\x63\xfa\x45\xe4\xc7\x55\xf3\x36\xa2\x3a\x65\x22\xd2\xaf\x8b\xb4\xa0\xef\x5c\x62\x11\x7e\x7b\x6a\x66\x3b\x6b\xe4\x24\x1c\xad\xc8\x1d\x8c\xf4\x5e\xf2\xca\xd3\xf7\xd0\xec\xb3\x2f\x19\xdd\x1d\x90\x1a\xa0\x77\xd8\x03\x0d\xf3\xa0\xd0\x88\xe4\x25\xf9\xf0\x93\x0f\x35\x04\x7a\x21\x0f\x9f\x60\x15\x47\xff\x7a\x70\xc9\xa6\x9f\x50\x19\xbd\x14\x74\x8b\xbf\xec\x79\xd9\xa7\x90\x1d\x48\x72\xa2\x70\x48\xa6\xe3\xb1\xc6\x5f\xf0\xf2\xa6\x9d\xb1\x14\xbd\x40\x2e\x45\x48\xef\x99\xf8\xde\x48\xae\x74\x88\x27\xfb\x38\x6c\x5a\x53\xf0\x33\xa4\xbc\x17\x3b\xee\x42\x1a\x41\x65\x71\xac\x18\xe9\x8a\x67\x82\xcd\xb8\x0e\xbe\x06\x87\x5a\x78\xdc\x29\x22\x46\x91\xa8\xa7\xd6\x70\x10\xe2\x22\x7b\xca\x17\x1d\x6c\x21\xd0\x5a\xcb\xb7\x97\xf7\xc0\xd1\x58\x2b\x0d\x4e\xc0\x5b\x09\xad\x93\x9c\xe7\xe4\xf0\xa7\xc9\x09\xcb\x39\x3e\x4f\xa6\x8d\x16\xaa\x54\xb5\x13\xdb\x63\xb1\x21\x19\x64\x03\x0b\x7e\xc6\xe8\x83\x94\xfe\xf7\xdc\x6a\x95\x2f\x7c\x9a\x1c\x79\xd9\x41\xdb\x80\x11\x89\x66\x14\xc4\x92\x91\x5b\xcf\xaf\x3b\x07\xc8\xb5\xd8\x98\x51\xcb\x58\xe8\x8f\x41\x38\x69\xdf\x6e\xa7\x81\xfa\x5d\xd0\xad\x86\x22\xa9\xa2\xa3\x25\x1e\xa6\xa3\xdc\x82\xb9\xbc\x61\x56\x9d\x62\x28\x18\xcf\x92\x01\xa6\xec\xad\x73\x96\x63\x8d\x4b\x9a\x3f\x5d\x1d\x04\x07\xa4\x2b\xce\x92\x68\x10\xa9\x59\x21\xb4\xb6\xf3\x2f\xa3\x99\xf7\xe0\x29\x35\xe5\xd7\xfa\xe1\x7c\x22\xa3\x35\x90\x5b\xc3\x76\x3f\x96\x37\xa5\xaa\x45\x1b\x5b\x6b\x03\x47\x9f\x6e\xc6\x36\xca\x62\xfc\xcb\xb2\xc9\x16\xac\x50\xe5\x0d\xb6\x88\x4d\x15\x91\x65\x26\xcb\x69\xdb\xf8\xf4\x98\x4a\x47\xea\x4c\xdd\x89\x7a\xc5\x72\x95\x35\x14\xcc\x75\x14\x01\x97\x65\x56\x34\x79\x98\x62\x30\x2b\x64\xd9\x83\xc6\xa6\x82\x6b\xef\x16\x22\x6c\xb7\x35\xe8\x24\x3a\x0c\xe1\x75\x03\xd4\x8a\xbe\xa9\x55\x53\xb9\x40\x40\xa9\x43\x8b\x41\x4b\x2e\xbc\xae\xec\x8e\x3c\xdd\x08\xfb\xc9\xdd\xd3\x00\xfe\xc9\x9d\xa8\xb5\xdb\xaf\x30\x04\xa8\x3b\xd4\xe0\x30\xce\x71\x40\x54\x69\xb9\x70\xdc\xde\x18\x8e\x82\xfd\xef\xb5\x4c\x34\x40\x20\x19\xff\xc9\x86\xe9\x0c\x91\xe2\x78\x82\xa7\xea\x5c\xd4\x22\x27\x02\x1c\x6f\x7b\x23\xbf\x43\x30\xeb\xb6\xf7\xe9\xf4\xdb\x72\x78\xf1\x72\xaf\x82\x2b\x34\x58\x77\x91\x47\x91\xec\xb3\xd2\xb5\xa8\xca\xad\x82\x82\xfa\x68\xec\x56\xac\x52\x45\x67\xd1\xe3\x05\x06\xed\x2c\xa0\xc1\xb8\xcf\x65\xba\x15\xab\x49\x38\x25\x97\xca\x2c\xa8\xb3\xb4\x83\x18\x01\xb3\xff\xe4\x79\x1e\xaa\xc4\xcf\x65\xad\x8d\x9f\x86\xd4\xde\xab\x19\x5b\x9c\xe9\x56\xec\xf5\xf6\xdf\xb0\x84\xf6\xad\x58\x45\x81\x0f\x00\xdc\x9d\xe8\xfd\xab\x47\x94\x16\xc7\xc5\xd4\x42\x38\xb6\xcc\xb4\xec\x91\xdd\xec\x22\x04\xa6\xbb\xf6\xcd\xd0\xd5\x42\x7b\xd8\xc4\x43\xdb\x7a\xe6\x38\x72\xfc\xcb\x86\x01\x9a\xa0\x6b\x5a\xce\xe7\xa2\x86\x30\x1b\xa3\xec\xa2\x26\x95\x78\x62\xfe\xac\xc5\x65\x4f\xee\xb5\xcf\xd1\xcc\xdb\xb3\xd8\xcf\x1e\x0e\x5f\xb8\x9e\x22\x50\x6b\x8c\x61\x8c\x20\xbd\x7b\x0a\x15\x8b\x13\x4c\xa3\x6b\xe7\x9e\x53\x78\xec\x64\x5b\x03\x9e\xda\xee\xdf\x3d\xb3\xf0\xf1\x96\x35\x19\xa3\xbd\xf2\xab\x41\xa0\x74\x0b\x53\x8a\x7b\xbc\x15\x87\xf9\x82\xdd\x87\x22\x59\xf9\xa2\xd6\xfe\x5c\x8d\x81\xad\x49\x41\xce\x07\x92\xcc\xaa\x6e\x4a\xf4\x6e\x9d\x5c\x10\x69\xe8\xb1\x72\xd7\xbd\x22\x0e\xda\x1d\xe8\x8e\x1e\x01\x1c\x89\x4c\xf9\xa9\xff\x9c\x5c\xcf\x6b\x04\xc2\x55\xfc\xcc\x16\x62\xc9\xa9\x66\x03\x5a\x64\x3a\xf4\x7c\xa2\x38\x37\xbb\x3b\x61\xd9\x10\xab\xf5\x93\xad\xc4\x61\x97\x28\xaf\xce\xc0\x7f\xa3\x6d\x07\xd0\xa6\x61\x9c\x15\xe8\x83\x13\x97\xbc\x7d\xcb\x86\x96\x3b\x08\x99\xb5\xca\xdd\x87\x7d\x1f\xe1\xd5\x14\x25\x75\xf8\xcd\xec\x98\x12\xe6\x89\x48\x5d\xe3\x8e\x2f\x56\xce\x43\x84\x0e\x74\xdf\x57\x1a\xcb\x59\x78\x9c\x76\xb7\x67\x22\xf3\xa1\x6c\x35\xf6\xb4\x1a\x41\xe5\x7a\xf8\xac\x5e\xa9\x1c\x99\x9c\x7e\xd7\xb2\x10\x16\x82\xbd\xa3\xae\x05\x52\x95\x54\xc7\xf2\x2a\xb4\xc7\x0c\x47\x78\x98\xdb\x51\x37\xb0\xe0\x9b\xcb\x54\x69\x6a\x55\x84\x4c\x55\x74\x04\xf5\x9a\x79\x98\x0b\x8a\xcb\xed\x58\xec\xa6\xbc\x02\xe7\x8e\x24\xee\x43\xee\x26\x06\xaf\xc6\x0e\xdd\x7e\x63\x94\x30\x1c\x2b\x0c\xa9\x8e\xa1\x01\xd1\xfb\x5b\xae\x36\x0f\x17\x13\xa5\xff\x5a\x39\x2a\xa5\xbd\x0e\x61\x32\x2e\xfd\x6d\x50\x2b\xa0\x37\x4a\xfe\x1e\xbc\x30\x5f\x13\x7a\x91\x2a\xac\xe3\x49\x16\x64\xab\x64\x85\xd2\xa2\xdd\x35\xf7\x60\x22\xd2\x94\x99\x2a\x73\xd0\xe4\x50\x0d\xab\x16\x30\xe9\x40\x38\x2b\xc0\x11\x1e\x9e\x56\x5b\x5b\x3d\xb4\x4f\xc4\xb0\x5c\x67\xe2\x32\xf7\x7d\xf3\x2f\x9f\xb3\x59\x53\xe6\xd4\x8b\x51\x2b\xda\x50\x0c\xf5\x96\xb2\x4c\xc0\x40\xb2\x20\x1e\x11\xae\xf0\x32\x65\x47\x60\x6e\x79\x9b\xa8\x21\xb8\xe1\x38\x5e\x3e\x7e\x73\x53\x8b\x1b\x6e\x54\x7d\x4e\x19\xd4\xfa\xdc\x2c\xc4\xb9\xe6\xcb\xaa\x10\x96\x67\x18\x7e\x36\x82\x9f\x1e\x12\xbb\x0e\x9d\xa9\x68\x29\xbb\xec\x6c\x3b\xc7\xa7\xd3\xa7\x5f\xb1\x6b\x80\x8f\xc6\xd7\xd5\x2b\x68\x81\x20\xea\x28\xa5\x11\x1b\x0b\x9b\x18\xea\xf8\xf6\xc7\xb0\x47\xb6\x26\x00\xe8\x63\xc6\x01\x20\x80\xb7\x00\xcb\x0a\x92\x41\xe0\xee\x95\xdc\x60\xf0\x14\x4a\x96\xc1\x2d\x35\x39\xc6\xbb\xf8\x3c\x79\x7e\xf5\xea\x1c\xf1\xee\x30\xa3\xa7\x47\x50\xc2\x8c\x40\xf5\x36\x3f\x2e\xd1\x7e\x78\xeb\x0c\x97\x17\xc1\x70\xb9\x54\xa5\x33\xe1\x7f\x75\x2b\x2e\x83\xdf\x0c\x5b\xca\x0f\x91\x85\x5f\x48\x3d\xc2\x7b\x85\x43\xb9\x91\x02\xf4\x8d\xeb\x31\xae\xc3\x10\xf1\xd8\xe1\x02\x37\x11\x6c\xa1\x96\xea\x46\x94\x42\x35\x1a\x43\x94\xd4\x9c\x5d\xbe\x1d\xad\x98\x39\x81\x4b\xee\x90\x28\xb6\x72\xd0\xb6\x6b\x35\xd6\x6a\xbf\x48\x96\x3f\x37\x96\x47\xec\x32\xb4\x3b\x59\x63\x2d\x52\x2e\x8e\xdb\xf6\xef\x9e\x75\x0e\x25\xbd\xf0\x9f\x25\xbb\x81\x0f\xd1\x6a\x1f\x9e\x10\x51\xfb\xfe\xdf\x28\x2f\x48\x1b\x77\x55\x04\xeb\xdd\xf5\x29\x81\xdd\xa1\x73\xf4\xc2\x91\xb6\xd5\x04\x59\x9d\xbf\x0f\xc4\x7d\x3f\xa0\x18\x76\x12\x44\xb4\x2a\xb6\xf5\x4d\x1c\x4b\x10\x61\xb1\x5f\xbe\xb5\x67\x4b\xa3\xe0\x1f\xcf\x4e\x29\x7e\x77\x4f\x07\x1d\x1d\x1a\x23\xe0\x78\x6e\x77\x0a\xe0\x62\x5a\xf1\xff\xd4\x2c\x9d\x60\x47\xa6\x6d\x59\x15\xc9\xc4\xaf\x70\xf8\x5d\xcf\xa9\x0d\x1f\x63\x53\xa8\xae\x00\xc5\xcb\x71\x9c\x79\xe7\x57\xe8\xf0\x8c\x93\xf5\x89\x23\x4b\x17\x59\x43\xa4\x20\xfb\x8b\x3a\x57\xf9\x10\x01\xc8\xa0\x5b\xc5\xa6\x1d\xe5\x1d\xed\xc2\x34\x18\x6b\x1b\x3e\x8d\x8d\x05\x18\xa4\x75\xd0\x1e\xeb\x99\x75\x2d\xed\xfe\x39\x0c\xc7\x55\xef\x79\xe2\xfb\x50\x6c\x66\x1b\xde\x06\xa9\xfa\x56\x8f\x4e\x64\xb0\xc6\x81\xf8\x60\x04\x25\x31\x16\xd2\x9d\x8e\xb1\xe4\x01\xe3\xac\xe6\x65\xae\x96\xeb\x96\x25\x0a\x1f\x42\xdc\xa0\xee\xc9\xc2\x76\x6d\xcd\x98\xa4\xdb\x09\x7f\x25\x1c\x87\x95\x24\x36\xfa\x56\xfd\xad\x52\x39\x00\x74\xde\x3b\x74\xde\x47\x98\x6f\x21\x18\x94\x3c\x10\xc7\x29\x3d\x02\x29\xb9\xc1\x4a\x69\x3e\x32\xf0\x89\x6f\x97\xb2\xf6\x7e\x9f\xf5\x4d\x67\x4b\xc9\x59\xa7\xa7\x93\x38\x64\x9e\x27\x71\x3f\x95\x5f\xfe\xd2\xe8\x3e\x3c\x30\x7c\xda\x3b\x11\x12\x14\x23\xdb\xde\x09\xc6\x9d\x84\xc6\x7c\xce\x82\xd0\xcd\x4c\x8b\x7f\x35\x02\x92\xe1\xf8\xb8\x44\xaf\x23\x88\xcb\x2e\x26\xe2\x11\xe4\x83\x82\xea\xc7\xa8\xfc\xfd\xf5\xc6\xc4\x29\x8d\xa7\x17\x18\x4f\x2e\xf2\x35\x03\x6b\x7f\xcb\xe4\xcc\xb7\xa5\xab\x76\xd0\xea\x24\xb5\xc1\x76\x4b\x7b\xa1\x92\xfb\x6f\xcd\xb8\xdd\xf6\xac\xeb\xf1\x64\x77\x92\x47\xe9\x1d\x71\xe7\x56\x74\x62\xee\xd8\xb5\x75\x04\xa6\x0f\x23\xbb\xdb\xf8\x1d\xf7\x96\xe0\x9e\xe9\xd3\xe0\x90\xca\x98\xa4\x38\x82\xc1\x49\x27\x86\x83\x69\x2b\xef\x6a\xa0\x91\xfd\x01\xe4\xf2\x2d\x34\xed\x24\xd6\xc3\x33\x2a\x14\xcb\x73\x6b\xed\x36\xa5\xc1\xb6\x2a\xfe\xa9\xd4\xee\x4a\x22\x9c\x62\xe8\x06\xd5\x02\x7b\x8b\x29\x19\xf4\x36\xdd\xb2\xe6\xb9\xff\xdc\xce\xd7\xbd\x1f\x6e\x40\xd2\xe1\xc2\xed\x08\xe4\xc4\x91\x37\x13\x3b\x4a\xa8\x22\x45\x56\x1b\xbe\xea\xca\xd0\xa6\xb3\xf3\x81\x64\xc8\x5d\xf1\x9f\x40\x84\xe8\x84\xe2\xe2\x3e\xd6\xb0\x7a\xcf\x50\x90\xef\x85\xb5\x63\x21\xce\x61\xe2\xc2\x1d\x2a\xe9\xd5\xa0\xa6\x30\x07\x6c\xf9\x3d\xfc\x7c\x38\x0c\x42\xe3\xa7\xc2\xf9\x5a\xc4\x0a\x5a\xa6\x67\x20\x8e\x43\x64\x5a\x37\x44\x74\x96\xad\xa3\x3e\xe6\x27\x54\x2c\x6f\x2a\x51\xda\xcd\xe2\xaa\x99\x15\x52\x2f\xac\x21\xa5\x2a\xec\xfe\x59\xde\x8c\xbf\xbf\x4d\x67\x4f\xc0\x1c\xec\xf5\xe2\x81\x99\x50\x3a\x96\x03\x54\x24\x95\xc8\x30\xfd\x54\x95\xc2\xfb\x76\x6e\x84\xd1\x94\xb0\x9b\xbb\xb4\x86\x19\x25\x89\x8e\x8f\x8e\xdf\x78\x41\xe6\x1b\x18\xd0\xb8\x7a\xea\x28\xe5\x96\xb0\xdf\x7e\xfc\xdd\x15\x4e\x9a\xca\xbc\xac\xdd\xe0\xa2\x2c\x8d\x9e\x9b\xdd\xd6\xf5\x2d\xd4\x3b\x86\x23\x58\x74\x33\xd7\x41\xab\x83\x92\xbb\x84\x75\x7d\x78\x09\x92\xdb\x95\x23\x20\xbe\x70\x7b\xa9\x5c\x1c\x1a\x35\x2b\xde\xe5\x48\x47\x64\x78\xaf\x2a\x51\xf2\x4a\x6e\x2d\x7f\x0e\xa9\x1a\xc4\xed\xa8\x92\x87\xa4\xc1\x6b\xf1\xc0\xbd\x35\x72\x87\x38\x1d\x53\xcc\xfe\x76\x48\x31\x7b\x0b\xe8\x46\x62\x83\x31\x64\x34\x94\x13\xa5\x35\x38\xde\x49\xce\x38\x9e\x08\xfe\xb6\x5e\xd0\xe8\x00\x01\x07\x8a\xb9\x35\xbf\xa8\xbc\xbf\x45\xe0\x41\xc4\x08\xc8\xfb\xe1\x1c\xee\x84\xeb\x3b\x71\xde\x94\xb7\xa5\xba\x2f\xcf\xe9\x2e\x9a\x1b\x28\x88\x7c\x54\xf1\x42\x0b\xc8\x72\xe9\xf2\xed\x0b\x46\x98\x40\x49\x75\xc4\x85\x05\x5c\xa2\x5b\x6d\x8b\xd6\xe1\x04\x6c\x90\x02\x3d\x97\xf0\x76\xe4\xa1\x5b\x3c\xbc\x7a\xe6\xae\x49\x76\x67\xe0\x89\xb7\xc2\x6f\x9b\x99\xc8\x4c\xf1\x37\x3a\x74\x9c\x6b\x99\x87\x0c\x3c\x17\xcd\xcf\xb3\x4c\x54\xc6\x13\x02\xcb\x31\x1a\x19\x47\x10\x13\x1c\x0a\xa4\xac\x0a\x2e\xc9\x9e\x8f\x0b\xf2\x42\xc7\xdb\x3e\x21\xfe\xaf\x57\xaf\x5f\x3c\x46\xb9\x93\x25\x13\xcb\x99\xc8\x5d\x18\x04\x9e\xee\x1e\x85\x18\x42\x36\xa7\xc7\xce\x5d\xa7\x9e\x4e\x12\xbb\x83\xef\x2c\x8c\xa8\xe7\x24\x7f\x10\x61\xe4\xa6\x6f\xae\x01\xaa\xdd\x69\x9b\x90\x73\x82\x37\xff\x02\xb2\x52\xb0\xda\xc8\x83\x89\x6d\x44\x18\x54\x09\x27\x94\xcb\x7e\x04\x0e\x27\x7e\x49\x1a\x2d\x01\xa7\xae\x25\x2e\xeb\x51\xcd\x43\x6a\x04\xaf\x6b\xbe\xc2\x53\x6d\x55\xcb\xa5\x34\xf2\x4e\x0c\x86\x38\x0c\xc8\x63\x6a\xd4\x51\x9c\x1f\x54\x15\x0c\xc2\x30\x19\x2f\xa6\x15\xd7\x3a\x0d\xd7\x6b\xc5\x4c\x50\xb3\x90\x8e\x18\x27\x17\xf6\xbe\x16\x61\x78\x8e\x77\xec\xeb\x86\xa6\x28\x03\x10\x78\x3f\x5c\x67\x75\x24\x2b\x03\x29\x1a\xad\x0e\x7a\xd8\xab\xad\xd7\x2c\x39\xff\x9d\xab\x2a\x38\xf8\x69\x77\x41\xc6\x43\xd2\x0a\xeb\x5e\xce\xb1\x78\xf4\xc7\xb9\x63\x9c\x7c\x93\x70\xc2\x72\xc4\xf5\x38\xca\x30\xb1\x47\xd1\x42\xdc\x89\xe2\xe3\xdc\x10\xdc\x59\x8b\x74\x0f\x7b\xf1\xf2\xfa\xf2\xed\xab\xab\x77\xaf\xde\xbc\x66\xda\xf0\xf2\x7f\xf8\xc3\x9c\xb0\x78\x0d\x8d\x0a\x20\x6b\x65\x44\x30\xdb\x41\xc4\xca\x9f\x74\x2e\xdf\xbe\x80\xa3\x47\x88\xcf\x46\x3c\xc6\xc7\xc7\x12\xa0\x75\x2e\x61\x5d\x71\x2c\xa0\xd8\x1e\xc5\x3b\xb5\x3b\x07\xae\x3d\x0f\x5b\x0f\xc9\xc8\x5b\x59\xe6\x0f\xc6\x47\x6d\x8f\x98\x98\x5f\x15\xd1\x15\x1c\x9e\x81\xf8\x80\xe1\x41\x39\xec\x8e\x2e\xc9\xe8\xf1\xf9\x16\x30\xe8\x91\x03\x40\x65\x0b\xae\x1f\xfe\x12\xe0\x80\x9c\x77\x52\xfc\x08\x98\x9f\x32\xdc\x3b\x19\x3e\x0e\x57\xc9\x11\x78\xf8\xc2\x79\x8f\x29\xcf\xb6\xc6\x5e\x95\x57\xb5\x98\x8b\xba\x16\xf9\x2f\x24\xa6\x16\x35\xc8\x86\xe5\x95\x44\x52\x6e\x66\xa6\x87\xed\xeb\x32\xe3\x0e\xb6\x06\xbc\x0b\x35\xfc\x01\x98\x35\x3e\x96\x90\xfb\xe8\x35\x48\x5f\x84\xea\x9d\xa6\x96\xe2\x4e\xe4\x53\xf6\x32\xc1\x9b\xcd\x55\x53\x46\xcd\x17\x7d\xcb\x53\xdc\xfd\x3a\xa8\x35\x25\x25\xed\x3a\x11\xd2\xcd\x7c\x2e\x3f\xd8\x31\xc4\x07\x08\x5f\x9c\x66\x6a\x39\xa6\x02\x73\xc2\x1b\xef\xb6\xef\x74\xd4\xb8\xa3\x4b\x50\x0a\x48\x0e\x17\x85\x9b\x29\x9e\x96\x5b\xee\x01\x01\x9d\x10\xee\x46\x5c\x52\x3c\xc7\xca\xa1\xfe\xed\x76\x2f\xbe\xf6\xed\x2a\x35\x2f\x72\x32\x0d\x34\xc6\x65\xb9\x10\x78\x81\x8c\xbd\x61\x45\x17\x6e\x5c\x93\xd1\x87\x45\xc3\x29\xb5\xa9\xe2\xcf\xd9\x6c\xe5\x2f\xfc\xd3\xc1\xdb\xc4\x7f\x76\xb1\x81\xf8\xfd\x35\x88\x81\x7a\x61\xe5\xf9\x62\xdb\xdb\xd2\x5d\xc4\x82\x59\x52\x45\x67\xaa\x35\x3d\x17\x26\x5b\x08\x6a\xb0\x0c\x2e\x4b\x91\x4f\x42\xad\x4b\x77\x91\xbd\xd1\x7b\xeb\x2f\x06\x11\xfc\x24\x14\x7c\x8e\x72\x6a\x91\xe0\xf8\xab\xd4\x6e\x38\x62\x20\x9d\xe8\xef\xd9\x12\xf3\x1c\x10\x04\xb6\x9a\x05\x10\x50\x89\xd5\xfe\xe6\xea\x9d\xe1\x7b\x2d\xa0\x11\xf7\xd2\x6a\x4b\x1d\x0e\xc2\xa5\x7c\x51\x0c\x04\x62\xed\xc8\xb3\x1f\x78\x3d\xe3\x37\x82\x5d\xa2\x88\xab\xda\xaf\x9c\x5c\x54\x85\x5a\x2d\x81\x38\x60\x1c\xf3\x1b\x34\x9e\x29\x3e\x7c\xc6\xb3\x5b\xbb\xa0\xcb\x11\x51\xf0\x6e\x94\xcc\x8d\xd2\x5a\x62\x6f\xaf\xfd\xea\x98\xad\xa2\x91\xc3\x0a\x28\x95\x61\xaa\xae\x16\x7c\x44\x92\x95\xbf\x6e\x0e\x80\x42\x7d\xd8\xaa\x90\x19\xd7\xc2\x4c\xd9\x9b\x12\x8a\xf7\xba\x1f\xe2\x25\x3a\x89\x23\x0d\xf0\x6e\xd9\x43\x8a\xcb\xf3\xbd\xa9\x70\x63\xb9\x0a\xe4\xc1\x74\x17\x57\x78\xf7\x3b\x4f\x24\x3c\xd3\xbf\x70\x61\x64\x2d\xa0\x71\x7c\x02\xba\xd4\x3d\x5a\x11\x61\x5a\x1f\x39\x91\xe1\x85\x56\xae\x48\x2b\x45\xdb\xcf\x44\xa1\xec\x28\xaa\xf5\x4d\xb7\x4c\xe0\x96\x61\x5c\x37\xc8\xc9\xf7\x9e\x93\xe3\x05\x8a\xe6\x64\xa2\x9c\x9c\x42\xd4\x93\x63\xcb\x16\x54\xc3\x89\x88\x58\x67\x7b\x4a\x55\xff\x3c\x50\x2c\x9e\x01\x0f\x48\xb6\xde\x5e\xc6\x32\x15\x17\xbe\xc1\x0c\xed\x76\xcb\x5c\xb7\x18\x2e\xb7\x11\x31\x80\x19\x89\x59\x2a\x62\x6f\x23\x5c\x2f\x03\xae\x78\x6e\xe5\x8d\xee\x92\xc7\x8a\x0f\xe6\xb5\x5e\x52\xd1\xa0\xc7\x23\x29\x98\x0a\xa7\xee\x4b\xc8\x52\x19\x73\x18\x1a\x14\x8e\x5b\x21\x2a\x5c\x69\x19\xe3\x40\x39\x0c\xed\xf0\x89\x28\x54\xb3\x09\xaf\xec\x9d\x92\xa6\x8c\xfb\x84\x33\x4c\xf3\x95\x66\x5a\x1d\x42\x7c\x96\xfc\x83\x5c\x36\x4b\x48\x85\xca\x38\x76\xf4\x84\x45\x3d\x13\xe6\x5e\x08\xf4\x8d\x3d\xbd\x80\x6d\xee\xe9\xc5\x85\x57\x13\x43\x02\x87\xd9\x36\x45\x81\x40\xec\x4c\xba\xc2\x86\xab\x61\x0b\x9d\xf6\xbd\xaa\xc5\x26\x61\xc3\x60\xd4\xd1\x02\xd7\x11\x36\x5f\x34\x7e\xe1\x66\x75\x52\x29\xac\x44\x99\x8b\x32\x5b\xb1\x91\xf6\xcb\xa0\x98\x51\xdc\xc2\xac\x50\xd9\xad\xdf\xdc\x08\x38\x1e\x39\x65\x9d\x15\x9b\x6a\x0d\xf8\xa8\xde\x5a\x20\xfd\x26\x21\x81\x7b\x89\xbc\x7b\x73\x0f\x2d\x6e\x04\x1c\xcc\x32\xa1\x99\x6e\xe0\x39\x14\x2b\xcf\x31\x0c\x65\xc1\x41\xa4\x3f\x9b\xd8\xff\x7e\xe6\xfe\x7c\x8a\xee\x6f\x95\x7f\xe6\x7e\x81\x24\x72\xd5\x06\x58\x0b\x5d\x59\x23\xf8\x4e\x14\x2b\x17\xbc\x87\x56\x98\x85\x11\x6f\x60\x50\xdd\x1d\xd4\xe0\x3b\xdc\x7c\x12\x6a\xfa\xfe\x01\x48\x15\x3c\x18\xa4\xf4\xa3\x70\xe6\x63\xf3\xd9\x9f\x35\x61\xae\xfb\x68\x13\x3b\x9b\x60\x36\xc1\x74\x8d\x0e\xaa\x14\x2c\x41\x70\xe3\xe3\x19\x09\x69\x6b\xc9\x8e\xff\xb2\x2f\x9e\x9d\x69\x28\x03\xe4\x42\xee\x62\x38\xc9\xca\xd8\x4f\xcd\xbc\xbd\x7c\x3a\x59\xaf\x6b\x28\xa2\x04\xf4\x4d\xbf\xae\xa1\x31\xb0\xb4\xd1\xf0\x40\xcf\xe0\x53\x2d\xdc\x76\x12\x89\x95\x9d\xe0\x82\x17\x73\x0c\x4e\x50\x5a\x74\x35\xd9\xd3\x75\xaa\x0c\xb5\x74\xaf\x3a\x7b\xba\xab\x2e\x03\x98\x7f\xf7\x48\xc5\xd6\x94\x5d\x17\x09\xfe\x41\x84\x23\x8d\xd5\x18\x64\x34\x4f\x43\xe7\x8d\x5c\x0a\x6d\xf8\xb2\xda\x62\x6b\x8e\xe4\x29\x60\x61\xe7\x0b\x7b\x1f\x72\x68\x15\xe4\xb7\x9f\x05\x63\x3a\x1e\x1e\x6a\xc7\x8e\x0f\x0b\x3d\xf6\x1c\xda\x58\x7b\x2c\x30\x04\x30\xe2\x9c\xb0\x89\xef\x52\xb3\x37\x08\xeb\xa3\x39\x43\x20\xbe\x41\x7a\xbc\x15\xd9\x3e\x3f\xe0\xfe\x3a\xfa\xf8\x80\x6a\x05\x29\xeb\x4e\xd4\xe9\x51\x62\xf0\xdb\x70\x8c\x70\x9f\x3f\x02\xeb\xf0\x88\x72\x37\x70\x86\x90\x73\x1f\x53\x1e\x6c\xc1\x7f\x27\x53\xb0\x2d\x9a\x6b\x14\x5b\x70\x6e\x8c\x31\x03\x8f\x26\x56\xbe\xe4\xe7\xb9\x53\xd2\xe7\x14\x99\x7a\x3e\xee\x44\xf1\xda\x01\x88\xda\x61\xf5\xf9\xad\xc8\x06\xb2\x94\x8e\xe2\x5f\xa9\xd3\x0a\x8f\x4a\x8f\x46\x3e\xa0\xf1\xfe\x5a\x39\x1f\x82\x01\x79\x5d\xf1\xe8\x7e\xe4\x79\x4d\xc1\x0a\x00\xc1\x7f\xdc\xf1\xbc\x3e\xdd\x40\xe3\xf0\xe5\x78\xda\x42\x30\x52\xd6\xe9\x45\xb9\x1f\x7d\x23\xa0\x2c\x99\xe9\xc9\x68\xec\x30\x88\x47\x07\x6c\x20\xb4\xf9\x58\x74\xf6\x24\xf2\x35\xe9\xf7\x22\x2b\x1e\x25\x78\x04\x76\x93\x6b\xfb\x75\x4c\x14\x5a\xc3\x68\xec\x27\x4f\xc8\x5f\xda\x7e\x92\x78\x3a\x4b\x75\xef\x53\x06\x30\x80\xe3\x9e\xfd\x08\x1d\x40\xda\xe4\xfa\x7a\x57\x72\xb9\xdb\xb0\x7f\x34\xca\xf0\x9e\xe2\xd7\x9b\x89\x97\x40\xe8\x49\xc5\xee\x03\xc9\xd2\xaf\xa6\x63\xf7\x84\x74\x2c\x08\xd5\x48\x1b\x81\xfd\x0b\x1e\xb8\x16\x60\x97\x71\xf9\x64\x17\x0c\x1e\x65\x69\xb2\x5f\xad\xac\xa6\x40\xa5\x8e\xc3\xc5\x29\xd3\x77\xcd\x28\x93\x38\xf6\x37\xce\xe0\xa6\x50\x24\x82\x45\x3d\x7b\x7b\x50\x76\xc8\x76\x71\xc1\x6d\x34\x6a\x56\x25\x4d\x62\x5c\xfb\x5c\x09\x77\x13\x3c\xbc\x9c\x36\x5d\xe6\xf9\xac\x09\x98\xda\x06\x21\xa1\xb0\xc8\x4c\x35\xa5\x41\x5a\x4c\x92\x5a\xd3\xbb\x08\x4c\xd6\xcf\x62\x28\xd1\xc1\x2b\x13\x17\xe8\x2d\xe4\x3c\xb4\x28\x9d\xcb\x9b\x9f\x78\xb5\x9b\x00\xb5\x04\xa4\x27\x33\x4e\x1a\x9d\x7e\x72\x0d\xb9\xa0\x61\x85\x2e\xd1\xd3\xa0\x98\xf8\x60\xcf\xff\x22\xc7\xb0\x46\x6c\xb3\x6e\x78\xe1\xeb\xf6\xf8\x8b\x1f\x94\x1d\xa4\x9d\x95\x10\x59\xa6\x6c\x63\x51\xea\x7a\x98\xde\x2b\xa3\xbb\xc5\xc0\x5b\xc8\x46\x61\x76\x68\xae\xd9\x21\xe2\xb2\x26\x96\x78\x1e\x66\xab\xdd\x94\xa3\x32\x14\x18\xeb\x99\xb2\x3b\xf7\xa5\x04\x0c\x6e\x7b\x91\x42\x77\x56\x8f\xc3\xd6\xad\x89\x4d\x78\xfa\xb0\xb9\x41\x3c\x49\xac\x29\xd3\x6e\x1b\x4c\x4f\xbb\x20\x2a\x35\xc2\x3d\x7f\xb8\xa5\x50\xa9\xfc\x8f\xb9\x08\x7c\x5f\xbf\x76\x4b\x49\xfa\x9c\x34\xea\x84\xd4\xe9\x84\xbd\xac\x16\x62\x29\x6a\x5e\x5c\x53\x16\xa6\xdb\x52\x5d\x83\x4b\x37\x17\xbb\xe9\x62\x9b\xc8\x11\x2b\x8b\xbc\x7b\x69\xd4\x64\x2c\xc0\x7b\xad\xa3\xa4\x6a\x08\xa5\x57\x0e\x4f\x5c\x7c\xb0\x6b\x09\xdb\x6c\x2e\xb9\x84\xeb\x19\x14\xd3\xee\x6c\xd0\xe0\xe2\xb2\x70\xb5\x2f\x53\x20\x2d\xce\xfa\xcd\x28\xca\xce\x8a\x2b\x57\x3a\x7b\xc6\xb9\x36\xcf\x74\xb7\xd3\x27\x7d\xec\xc9\xe9\x06\xe7\xbe\x2b\x32\x38\x70\x56\x25\x5f\xca\x0c\x0a\x78\x45\x2d\x3b\xa4\x69\x41\x94\xb5\x80\x33\x75\x92\x11\xdd\x87\x12\xf6\x91\xb4\x43\x24\x9a\xc7\xef\xfa\x59\x5b\xa8\x5d\x58\x2f\x28\x05\x77\x00\xb4\xa7\xc9\x58\x50\x81\xb7\x7a\x50\xd7\xb8\x98\xe9\x47\xa0\x6f\xe8\x88\x7b\xdd\x69\x9c\x7d\x54\xb5\x43\xa3\x32\xf0\xf7\xfc\x11\xd5\xcf\x5b\x4f\xd6\xdd\x37\x61\x5c\xd6\x61\x83\x8b\x80\x1e\x65\x17\x8e\x71\xde\x6d\x1b\xf6\x9c\x1e\xc6\xf4\x63\xd9\x87\x23\x37\x52\xe2\x6f\x39\xf5\x12\x69\xf9\xb1\xfe\xd0\xab\x25\x25\xf6\x2e\x0b\x07\xaf\xff\xda\x96\x61\x3f\xfc\x2d\xd7\xd0\xb0\xce\xee\x59\x43\xed\x99\xf4\x2e\x27\x1f\x50\xbd\xc9\xb2\x1d\x87\xbf\x5b\x59\xc1\x57\xf2\x78\x57\x97\x16\x59\x7d\xda\x1d\x07\x47\xfc\x63\x2e\x9f\x6b\x9a\xdb\xc1\x4e\x7b\x08\xd0\x71\x2e\xfe\x0c\x49\x7d\x8c\x95\xe3\x26\x31\x76\xe7\x19\x58\xea\x29\xea\xdb\xee\x3a\x3d\x3e\xa6\x07\x58\x1b\xe0\xff\x3c\xed\xe2\x80\x21\xff\xa8\xab\x83\x26\x77\xc0\xe5\x01\x10\x4f\xbd\x3e\x68\x1a\x7b\x2f\x90\x04\xf9\x6d\x56\x48\x64\xde\x3d\xb0\x6d\x86\xaf\xc0\x9f\x23\xae\x3f\xb6\x5d\x28\x78\x27\xe2\x0f\x96\x54\xc8\x0d\x7a\xbe\xa8\x65\x65\xec\xe1\x91\x17\x59\x53\xa0\x8b\xfe\x0f\xb3\x66\x8e\xc7\x44\x1c\x59\x67\xaa\x12\x13\xf6\x9d\xd0\xe6\xe5\x7c\xae\x6a\x5c\x39\xaf\x95\x89\x7e\x81\x77\x76\xe4\xe8\x9d\xa8\xe5\x7c\xd5\x7a\x06\xae\x90\x99\xa0\xd5\x2b\xa2\x51\x46\x72\xce\xdc\xab\x14\x24\xb5\x22\x02\xc0\x67\x01\xf5\x33\x84\x1a\x37\x17\x0a\x57\xbf\x67\xc9\x2c\xcf\x1c\x02\x9b\x84\xc0\x2c\x84\xac\x1f\x50\x75\x26\xd3\xbb\x52\x70\xa7\x5c\x2a\x03\x69\x9b\x32\x93\x76\x25\x60\x77\xa5\x15\x7a\x95\x7c\x92\x02\x74\xe7\x44\x95\x44\xde\x1d\x00\x3c\xc6\x69\xb6\x83\x73\xcc\x29\xd0\x2e\x37\xf2\x96\x34\xcc\x9a\xa8\xca\xbd\x2c\xfb\xf9\x92\x6f\x38\x27\x7b\x8f\x51\x3e\xa8\x89\xed\xd3\xde\xad\x24\x6e\x6d\x3f\xca\x28\xd9\x38\xa7\x56\xe9\xe0\xf6\x8c\x88\x6b\x3b\x70\xcc\x7e\x8a\x7b\xc8\x11\x39\x36\x82\xfe\x5d\xa6\x3d\x72\x8e\x8d\x94\xa9\x13\xa9\x5b\xdf\x3c\xa4\xbc\x71\xfa\x36\xfe\xe9\x38\x0a\xd7\x84\x11\x80\x70\x30\x8a\x3e\x88\xc6\x8d\x90\x1f\x52\xb9\x67\xe9\x1c\xbd\xba\xa5\xce\x93\x3e\x72\x07\xa4\xde\xfb\x6a\xbb\x57\xac\xad\x62\xeb\x35\xe6\x89\xd9\x17\x87\x5c\xf1\x8f\x58\x97\xfb\x7b\x01\xea\x87\x27\xf2\xf6\x74\x1d\x6e\x6f\x23\xff\x39\x9b\xf3\xa2\x70\xa0\xff\xe5\x6f\x97\x9d\xbf\xff\xd8\x0a\xbd\x97\x91\x1b\xf5\x43\xcf\x27\x7d\xc1\x03\xfb\x2a\x88\xc8\xc0\xde\xea\x9c\x39\x6a\x56\x2d\xee\x55\x5d\xee\x71\xb8\x59\x7a\x21\x78\x5e\xc8\x52\x5c\x47\x8d\x5b\xeb\x5e\x46\x52\x3e\x76\x8b\xe9\x1d\xfe\x6e\xcf\xdb\x1e\x3a\x8c\xf0\x47\xf7\x71\xa9\x27\x8e\xa1\x6f\xc7\xde\x4c\xbc\xb5\xbc\x0d\x0b\x6e\x9b\x0d\x60\x33\x6f\xbd\xd4\x8e\x62\xee\x01\xd5\x3f\xfa\x3c\x34\x5c\x1e\x33\x51\xde\xc9\x5a\x95\x10\x8d\x0a\x65\x41\x36\x2b\x77\xfa\x3e\x0a\xc2\xc9\x54\xa9\x9b\x25\xc4\x88\xc0\x6c\x21\xee\x4d\x96\x16\x38\xbb\xe3\x35\x4e\xf5\xb7\xd7\x2a\x17\xb1\x42\x1f\x7b\x14\x72\xbe\xb8\xae\x6e\x8a\xba\x67\x61\x3f\xec\xac\xe0\x35\x34\x7e\x8c\xa6\x85\xa5\x0a\x78\x2d\x01\x3f\xcc\xf1\x8d\x72\x2a\xe0\xa6\x0f\xbd\x40\xee\x8e\x0f\x54\xaa\xa9\xb9\x3d\xac\x43\x6b\x4f\x08\xab\x71\x01\x65\xee\xf5\x60\xa3\xa6\xa9\xa6\x31\x45\xfd\xb0\xd8\xb8\x1d\xd1\xd5\x54\xe7\xc4\x81\xa5\x0d\xe2\x56\x60\x3a\x0a\x25\x0c\x86\x41\x36\x04\x5f\x66\x6a\xb9\x54\xe5\x13\x7c\xbf\x93\x5c\x3a\xcc\x6c\xa8\xfc\xe9\x6e\x99\xf7\x61\xf9\x9d\xe4\xed\x89\x3f\x22\x86\x63\x35\xa8\xb3\x97\xe5\xdd\xf7\xb5\x5a\x9e\xed\x24\x00\x04\xb1\x4f\x08\xf6\x11\x80\x18\x6c\x10\x82\x63\x09\x00\x76\x03\x5f\x56\x66\x75\x8e\x53\xda\x8e\xe7\x70\xc1\x1e\x8a\x01\x11\xc5\xf2\x06\xa2\xef\x00\x2c\x9a\x6e\xf8\xbb\x9d\xc7\x86\x10\xc6\x9e\x1e\xb8\xe4\x8d\xc5\x20\xff\x12\xa1\x5a\x50\xad\xd6\x08\xfe\xc2\xbf\xa3\x18\xbf\xd8\x8d\x3a\x5b\x04\x71\xb6\xa8\xe2\x02\x37\x69\xda\x9b\xa2\x36\x69\xb8\x38\x64\xf3\xc7\x28\xad\xdc\x01\xa7\x98\x01\x2c\xea\xe0\xe8\x50\x48\x4d\x3a\xe7\x07\x79\x27\x30\x14\xcf\x37\x39\x80\xa2\xe0\x82\xfe\x20\xe7\x20\x42\x9b\xb0\xa8\x31\x24\xe6\xd5\xff\xab\xe1\x85\x8f\xf4\xa4\x7e\xf2\x00\xf8\x5d\xf0\x88\x47\xa1\xb6\xb3\x15\x93\xe6\x0c\x1d\x5b\x32\xa3\xd0\x50\x8f\xab\xb5\x73\x29\xdd\x7f\x2e\xa1\x55\xda\xc4\x57\xa9\x4f\xb3\xe9\xe3\x18\x53\x55\xcb\x1b\x7c\xdb\x2f\xba\xeb\x5e\x79\xef\x8b\x39\x5d\xcf\xd2\xe7\x57\xaf\xd8\x52\x18\x0e\x0d\x9f\xff\xfe\xee\xdd\x15\x51\x72\x0c\x6f\xeb\x3b\x51\x53\x75\x37\xd7\x48\xcc\xae\xcc\x77\xb8\x84\x6b\x5e\x6a\xe0\x2e\xd6\xe9\x0a\xbd\xe2\x7c\xfd\x8d\xcf\x2f\xbe\xc4\xe2\xe5\x90\x3e\x2d\xca\x9c\xd4\x4d\xae\x84\xc6\x06\x9b\xcb\xaa\x00\x0b\x2b\xa0\xb8\x5e\x66\x5e\x69\xdd\xd8\xa5\x41\x13\xc1\x13\x09\x69\x88\xe7\x57\xaf\xa6\xe9\x83\x44\x70\xf0\x91\x0e\xc6\x06\x34\x26\x53\x73\x8b\xe5\xd6\x26\x05\x64\x3f\x44\xad\x7f\xda\x54\x87\xfe\x32\xe7\xa1\x01\xf7\x39\x76\xb2\x3b\xe7\x65\x7e\x5e\x0b\x6d\x78\x6d\xc6\xf4\xea\x83\x06\x3d\x96\x07\xdd\x08\x5f\x82\x82\x23\x41\x8a\x5e\x08\xa6\x17\xac\xe0\x3a\xaa\x7b\xe1\x2a\x13\x51\x4b\x1d\x9f\x3e\x53\xd5\xe2\x4e\xaa\x46\x53\x23\x9e\x6d\x8a\xb3\xe0\x17\x54\x02\xa3\x16\xaa\x12\xa5\x33\xee\x06\xc7\x47\x13\x6f\x2d\x0e\x13\x17\x27\x04\x8d\xe0\xec\x06\x21\xcb\x06\x32\xda\xa4\x3d\x2f\x97\x37\x56\x6c\xe4\x9c\xae\x73\x75\x2b\xb2\xbd\x52\xb2\xc4\xb6\xf3\xb2\xa7\xfa\xef\xa6\xe8\xf6\xde\x9e\x40\x1d\x46\xda\xd1\x7c\xdf\x91\xf3\xd1\x75\xca\xd7\x70\xb2\x87\x8f\x54\xcb\xc3\x37\x5f\xef\x70\x72\x67\x56\xc5\x8c\xe2\xac\xe2\xb5\x91\x59\x53\xf0\xba\x9f\x59\xd2\xe9\x55\x3a\xf7\x43\xa3\x8a\x84\x03\x6c\xc1\xab\x4a\x40\x34\x1c\xe6\xc2\x53\x6b\xc5\x16\xbe\x90\x29\x38\x1b\xa8\xee\x7d\x18\xc6\x58\x35\x75\xee\x12\x10\xcf\xef\x89\xde\xdb\x73\xc6\xf5\x9d\xe2\xb9\xef\x4f\x33\x89\xbb\x4e\x85\x36\x55\x29\x21\x30\xd2\x84\xb0\xd9\x82\x41\x3e\x67\xd2\xa1\x8c\x25\xf9\xfd\x32\xcf\x84\xbc\xc3\x3c\xa9\x18\x23\x1f\xfe\x40\x58\xad\xc3\x05\x87\xa1\xad\xb9\x55\xe4\x07\x40\x40\x85\x76\x52\xdd\x38\x5c\x0a\x0e\xaa\x58\x05\x78\x4e\x89\x83\x0a\x27\xb7\x8b\x1d\x62\x7d\x09\x9f\x03\xb1\x19\x06\x39\xa7\x42\xfc\x7b\x70\xd7\xf7\x6d\xf5\x4e\x0b\x39\x67\x12\xa9\xa0\x8d\xaa\x34\x5b\x8a\x90\x41\x16\x47\x45\x3a\x83\xc2\xd3\x70\xeb\xc5\x18\xaa\x1c\x6f\x1e\x89\x3e\x39\xd3\x64\x4f\xba\xd4\x43\xdf\x31\x0d\x55\xa5\x9f\x17\x09\xc4\x84\x8a\xaf\x16\xd8\x65\xd8\x3d\xee\xd1\x9e\x8a\xd6\x2c\x61\x84\xed\x44\xa4\x01\xa4\x74\x32\x51\x08\x3c\x8d\xb0\x83\x8b\xd1\x03\xb3\x59\x5b\xdb\x09\x4b\x11\x6c\xc9\x59\x27\xba\x54\x86\x0a\x97\x80\x6b\x1f\x8a\x64\xf7\x35\x3e\xa1\x7c\x9c\xaa\x73\xb1\x0d\xf3\xba\xe0\x30\x69\xd1\x21\x4d\x96\x3a\xd4\x54\xc3\x68\x62\x6b\x2a\x96\xd2\xc8\xe0\xca\xe5\xa5\x5d\xc5\xd4\x46\x97\xf8\x07\x95\xd2\x10\x69\x9a\x43\xb4\x91\x62\x5d\x16\xda\x1b\x09\x18\xf6\xba\x74\x01\x17\xdd\x5d\x7e\x1e\x4a\x47\xa1\x18\x40\x09\x28\x14\x30\x4a\x54\x6b\x7f\x84\xa2\x56\x50\x5d\x51\x44\x06\x56\xf6\xd4\x55\xc2\xb2\x53\xad\x6a\x95\x37\x99\x43\xef\xbe\x96\x06\x7a\xb7\x93\x7d\x87\x59\xeb\xec\x46\xd5\xaa\x31\xb2\xec\x6e\xc0\x3d\xc7\x91\xcd\x92\x71\x49\x35\xec\x30\xce\x42\xd4\xe3\x5b\x83\xa4\xef\xfb\x83\x9b\x24\xff\x75\xeb\xf1\x16\x8b\xb8\x04\xa3\xba\xf5\xbd\x37\x85\x7c\x91\xba\xef\x94\x81\x7a\x18\x6c\xc9\xff\x49\xee\x43\xcb\x8c\xa5\x2c\x55\x1d\xe8\x8e\xbd\x0e\xed\xbe\x3a\x03\xad\x24\x4b\x23\x6e\x7a\x5a\xdb\x6e\xca\x33\x45\x74\xde\x0f\xd8\xa3\x2f\xb8\x58\xaa\xf2\x5a\x98\xf3\xef\xb9\x2c\x44\x7e\xa5\x72\xe7\x72\xef\x25\x64\xa5\x7f\xa7\x6f\xc0\x6b\xdf\x4e\xd0\xb3\xb3\x5c\xf9\x56\x84\x70\xf8\x14\x39\xcb\xf1\x83\xca\x95\x43\xd8\x74\xfc\xcb\xdc\x63\xc3\xfe\xab\x99\x89\xba\x14\x56\x9e\x72\xa9\x4d\x2d\x67\x4d\x38\xdb\xd2\x81\xd8\x1e\xcf\xfc\x3c\x42\xd1\x05\x48\xad\x84\x96\x38\xbd\x67\xe0\xde\x22\x64\x95\x7e\x82\xc8\xbe\xd7\xc2\x0c\xd3\xea\xad\x2a\x0a\x2b\xd9\x3b\x91\x88\xbe\xf5\x35\x8d\x9b\xb2\x14\x99\xd0\x9a\xe3\xdd\x88\x35\xfa\x0e\x4b\x26\x77\x44\xe3\x8d\x51\x4b\xcc\xa3\x5e\xca\x52\x2e\xed\xb1\x12\x33\xff\xa5\xae\x9b\x0a\x33\x2a\x1c\x76\x6a\x1e\xba\x91\x28\xc6\xc3\xe4\x0f\x4a\xc8\xd7\x2a\x17\xd7\x62\x5d\xd1\xc3\x4d\xd4\x6c\xb0\x05\x24\x34\x09\xca\x94\x3d\x36\x7e\x70\xf2\x76\x68\xfa\x25\x32\xc6\x4a\x95\x8b\x68\xeb\x75\xdd\x49\x52\x5b\xa7\x5b\xc8\x73\x1f\x6a\xed\xb5\x32\x63\x42\x69\xec\x02\x78\x24\x3a\x99\xd8\x09\xa5\xe6\x61\x02\xe4\x3e\xf9\x15\x73\x9e\x53\x72\xc6\x99\x95\x16\x40\x78\x9a\xb5\x6b\x33\xc5\x35\x09\x78\x26\xbc\x2f\xf3\x4a\x75\x8f\x10\xfb\xae\x72\x59\xde\xfc\xec\x12\x62\xb6\xa6\x39\xe5\xa1\xc2\x2d\x93\x9d\x33\x36\xf2\xe1\x3e\xa7\xd5\xab\x7e\x7a\x51\x9b\x9a\x1b\x71\x03\xa5\x3f\x92\xc1\x8f\x28\xca\xc9\x38\x07\x11\xd7\x50\xb6\xe3\xad\x58\xd3\x1d\x17\x68\xd7\x7d\x37\xfa\x29\x2d\x8e\xa7\x8a\x9c\x0a\x05\x94\x79\xe8\xba\x8b\x75\x2d\x55\x29\x36\x57\x39\xdd\x45\x8c\x5f\xa4\x25\x55\xe8\xbe\xd3\xf9\x76\x89\x5d\x1d\xa2\x3d\x1b\x22\x9a\x87\xb6\x8e\x68\xe3\xa4\x6e\xe0\x83\x8d\xe4\xf3\x32\x17\x6d\x9e\xa7\x25\x5f\x22\xd8\x47\xa2\xa1\xb8\x93\xd6\xda\xf9\xbb\xd4\x46\xd5\xab\x1f\xe5\x52\xf6\x87\xc5\xb7\x48\x99\xaf\xa3\x5e\x94\x5d\x75\x38\x6a\x65\x85\xe0\x25\x6b\xaa\x08\x8b\x33\x1d\x25\xfa\x50\x8d\x2b\x1e\xda\xb3\xa4\x6f\xfe\xef\xa9\x55\x2a\xd3\xba\x67\xc2\xff\xfb\xb0\x34\xbd\xaa\x95\xe5\x2b\x1e\x50\xae\x33\x5e\x0c\xdd\x03\x6c\xa4\xa9\x93\x90\x2a\x86\xa8\x3d\xc4\xc3\x1b\x3e\x11\x36\xf1\x98\x14\x43\x03\xe3\x4e\x98\x9c\x8a\x69\xf2\xb8\x58\xc1\x43\xbb\xd3\x0c\x31\xc7\x95\xef\x78\x91\x96\x77\x92\x1a\xbf\xec\x6e\x47\x7b\x6b\x06\x75\x37\x90\x2f\x35\x9a\xea\x35\x41\x39\x26\x95\xdd\x18\xe8\x8d\x02\xca\x42\x90\x0d\xe3\xf5\x4c\x9a\xda\x5a\xba\x65\xb3\x9c\x89\xda\x9a\x07\xe8\xb2\x01\x33\x33\x17\x1a\x5a\xc1\x68\x63\x75\x43\xde\x80\x63\xb7\x46\x85\x11\x27\xa6\x46\x25\x17\x61\xa8\xc6\xd8\xe3\x9b\xd4\x8b\x9e\x1d\x6c\x1f\x92\x4f\xc8\xa4\x74\x3d\xf9\x7c\x9d\x68\x74\xc0\x24\x6c\xdf\xc8\x92\xc8\x10\x5b\x0b\x6b\x03\x63\x7e\x6d\x8b\x5c\x5c\x3d\xc9\x25\xd2\x26\x55\x2f\x22\xef\x51\x4e\x74\x77\x41\x15\xa1\x14\xd3\xab\xf6\x97\x74\x7a\x6a\x0d\xe4\x0b\xa5\x00\x1a\xb4\x78\xbc\xcb\x21\x4f\xde\x8d\xe1\xd1\x07\xfe\xee\xcd\x37\xf6\x76\xee\xad\x30\x0c\x05\xb3\x48\xd3\x89\x28\x19\xc0\x32\x8f\x4b\x3a\x05\x38\xe3\xca\x4e\xaf\x95\x84\xff\x54\x33\x3d\x89\x2b\x6b\x4d\x58\x2d\xce\x79\x8e\x35\xb4\x06\x99\xfe\x9f\x6a\xe6\xb8\x0d\xef\xa2\xc7\x04\xae\x1c\x01\x94\x8b\x27\xc2\x64\xe7\x52\x95\xe7\xcb\x70\xb1\xca\xd0\xca\x19\x19\x03\x50\xf1\x9a\x17\x85\x28\xd8\x3f\xd5\x0c\xaf\x7f\xc3\xc2\x82\xf2\x59\xad\xab\x4c\x6a\x5e\x33\xf7\x1f\x4a\xbd\x44\xab\x9c\x6a\xcd\x71\x17\xdb\x8a\xc5\x56\x2c\xd2\xd2\x74\x6a\x6c\xe2\x50\x76\x9e\x74\x95\x86\x44\xa1\x3b\x4b\xaa\x64\xc6\xb0\x0e\xc2\x4f\x58\xb5\xc5\xb8\x36\xd6\xe0\x52\x8a\x3a\x87\xfe\xa7\x9a\x9d\x69\x2a\x46\xdc\x82\x1a\xb2\xc1\xfb\x6c\xfb\xde\xbb\xb8\x4a\x3f\xb1\xa4\xe8\x65\x24\xc6\x76\x11\x23\x6f\x6a\x9e\x89\x79\x53\x84\xa8\xca\x71\x1c\xf5\xa5\xf6\xff\xa9\x66\x63\xb9\x04\xcc\xf1\xae\x22\x11\x23\xe2\xdb\x53\x02\x43\x44\x61\x19\xd2\xa9\x20\xd3\x76\xea\xdb\x87\x00\xd3\xd3\x2a\xaa\xee\x18\xe7\xe3\x8f\x73\xb5\xad\xa3\x19\x29\x40\xb8\xab\xc1\x7b\x1c\xae\x6f\xc1\xa3\x82\xc9\x1c\x1b\xe9\x05\x07\x4f\x20\x96\x51\x31\x34\x54\x30\x5c\xdf\x6a\xa6\xd5\x52\x40\xed\x49\x80\xeb\x27\x0b\x57\xe6\x0a\xab\x12\xf8\xbb\xd1\x4d\xfe\xb8\x10\x91\x1d\x6a\x0c\xe2\x28\x46\x61\x70\x86\x2a\x33\x41\x1e\x53\x4b\x21\xf6\x1c\xa6\x45\x03\x58\x53\xc0\x5f\x96\x7a\xea\x8a\x0f\x22\x6b\xb0\x9b\x68\x98\xc1\x3e\xf2\x48\x36\x04\xbb\x16\x66\xd2\xd6\x11\xfe\x90\x13\x29\x88\xf4\xe9\x20\xd9\xa3\x04\xf1\x7e\xfd\x03\xb0\x55\x19\x8e\xe7\xd1\x38\x74\x75\xe5\x3a\xee\xa6\xdf\x6c\x32\x16\xda\x05\xc2\xb1\xee\x58\x3c\x4f\xf6\x97\xb7\xd7\x9f\xb2\x7b\x28\xa1\xda\x6e\x28\x21\xc9\xc1\xec\xee\x8c\x28\xbc\xd0\x6a\x83\xb7\xd7\xc4\x02\x09\x9e\xf3\xa0\x66\xec\x88\x50\x7c\x16\x97\x23\x95\x77\x85\x7a\x5e\xd1\x69\x83\xc3\x01\x07\xa0\xfd\xea\x76\x34\xa7\x85\xca\x58\x0b\x81\xb2\xc4\x7a\xdd\x74\x01\xfd\xf6\xda\xb5\xef\x82\x4e\xc5\x44\x97\x16\x9e\x6f\xaf\xcf\xda\x2d\x2a\x26\xee\xeb\x3e\x25\x16\x1f\xf7\xe9\x27\xba\xc1\x69\x57\x31\x6e\x4b\xd7\x67\x03\xd2\x45\x5b\x78\xdf\x51\x3c\x91\x32\xbb\x0e\x67\x5c\xcb\x8c\xc9\x25\x86\x97\x8e\x95\x21\x77\x81\x14\x7d\x6d\x89\x07\xf7\x19\xee\x50\x14\x11\x1c\xda\xd0\xb8\xf7\xc6\xe7\x71\xf9\x51\xa9\x76\xa9\x23\x16\x67\x5a\x96\x37\x85\x08\x41\x6d\x53\xf6\x13\xbf\x15\xcc\x3b\xde\xfd\x7a\x25\x21\xac\x1b\x68\xb1\x84\x31\x67\xd7\x7f\x7f\xf3\xf3\x8f\x2f\x98\x16\x00\x0a\x8b\x1a\xd7\x42\x57\xaa\xd4\x02\x75\xd0\xbf\x1a\x51\xcb\x91\xf5\x1b\x47\xd1\xbb\x55\x4e\xb2\x77\x81\x6f\x22\x7f\x2b\x29\x7d\xdc\x6a\x1e\x73\x78\x2a\x51\xd0\xa0\xd1\xcd\xfa\x45\xdb\x9a\x06\xfb\xcb\xdb\xcb\x4f\x99\xd4\x21\x79\x05\xec\xaf\x81\xe5\xdc\xbb\x94\x2f\xfb\x97\xb2\x0f\x10\x5d\xbb\x9c\xc3\x52\x1e\xbd\x32\xb2\xb1\x0c\x72\x8b\x74\x77\xce\x04\x5d\xdd\xab\x3f\x47\x1d\x6b\xd7\xd3\x3d\xb0\xc9\x25\x32\xb6\xcb\xa3\x46\xde\xd5\xf5\x6a\xae\x47\xad\xc5\x2a\xed\xb2\xab\xd2\x42\x8e\xea\xe5\x78\xb5\xd6\x51\x69\x9d\x1d\xf3\x00\x9c\xdb\x4e\xab\xf5\x33\x6f\x84\x82\x0b\x49\x87\xdb\x29\xb8\xb5\x5d\x2d\x3a\x71\xbb\xdf\x01\x02\xaf\x96\x54\x28\x2b\xea\x5c\x45\x87\x46\x4a\x29\x0f\xe7\xba\xaa\x56\x77\x32\xb7\x27\xbf\x25\x34\xec\xc1\x6f\x9d\x49\x68\x84\x76\x05\xa8\x25\x9e\xd4\x64\x49\x7d\x38\x62\x68\x10\x97\x58\xe2\x09\xaa\x56\xcd\xcd\x82\xbd\xbb\xbc\x9a\xb0\x9f\x5f\x5c\x01\x16\x7f\x7f\xf7\xee\x6a\xb4\x76\x1c\xcd\x39\x6c\x3f\x34\x57\x35\x93\x5a\x37\x42\xb3\x42\xde\x8a\xa8\x9a\x56\xa8\xff\xe4\x12\x64\x76\xe1\x6c\x53\xcf\xa1\x90\xa7\xb3\x58\x59\xa6\x4a\xbc\x66\x77\xfd\x5b\x39\xc3\x38\x49\x44\x23\xc6\xc2\x0d\xbd\x43\x84\xee\x00\xdb\x81\x6d\xa0\xb5\xc3\x3c\x7d\xc7\x65\x5f\x75\x94\xaa\x87\xf5\xc7\xf2\x8e\x35\xe8\xc7\x33\x62\x7d\xf3\xab\x8d\x24\x36\x82\x52\xe0\x5b\x0e\x8d\xde\x8f\x0e\xaa\x07\x6b\xc1\xf3\x49\xe8\xac\x15\xce\x47\x79\x58\xad\x90\x4c\x47\xc0\x46\x3b\x04\xba\xb4\xbb\x36\xdc\xd8\xc3\x22\x58\x52\xdf\x35\xb5\x36\x1b\x5d\xa0\xd1\x27\xec\xb7\xdb\xaf\xf5\x54\xaa\xdf\x69\x81\xc7\x8f\xe6\x4d\x99\xa1\xbf\x51\x9a\x15\xfb\x2d\x7a\x04\xef\x62\xc3\x43\x1c\xd1\x79\x5b\x62\x47\x52\x72\xa4\x12\x77\xa2\x74\x3d\x97\x17\x82\x17\x66\xb1\x22\xeb\xfd\xba\x50\xf7\x9b\xf2\x0a\x62\xac\x3a\x9e\xfc\x2b\xe7\x67\xb8\x52\xf9\x4f\xbc\xe4\x37\x70\xed\x46\x25\xb6\xed\x22\x9e\x59\x14\x63\x8f\xaa\x15\x60\xa9\x51\x3c\x7c\x5c\x2f\xb6\x8a\xc0\xd0\x90\xaa\x16\xd0\xba\x0c\xba\x61\x8a\x39\x6f\x0a\xc3\xa8\x4a\xe0\x65\xc1\xb5\xb6\xe6\x00\xea\x5d\x2a\x4f\x87\xca\x4e\x4b\x55\x76\xc3\x20\x86\xf4\x91\xa6\x49\xf5\x58\x6b\x09\x4f\x4f\xc9\xcd\xeb\x94\x8f\x18\x28\x69\xcf\xfc\x55\x2d\x72\x99\x61\x01\x75\x0c\x42\xb2\x32\xbd\xe0\x05\x56\x78\x2e\x57\xcc\x4d\x07\xee\x14\xa5\x0e\x7c\xc6\x85\xb5\x13\x9b\x49\x69\x5d\x51\x32\x12\xd7\x99\x28\x73\x74\x56\xe5\x18\xab\xa4\xea\x5c\x96\xbc\x60\xb2\xcc\xc5\x07\x30\x9a\x63\x46\xb3\xa6\x4a\xe2\x20\x1d\x20\x3b\x6a\x02\xe9\x3e\x76\x19\xe6\xea\xbe\x9c\x7a\x52\x40\x8f\x49\x06\x06\xa0\xba\xf7\xed\xc5\xed\xf9\x9d\x26\x4e\xf5\xe4\xad\xb1\x22\x43\xb7\xb0\x78\x2e\xd6\x10\xf2\xe4\x40\xe1\xc3\x8d\x6e\x3f\x01\x3c\x85\xf0\xf9\x1b\x45\x8c\xc1\x21\x1b\xf7\x04\x82\xe8\x03\xe4\x70\x78\x71\x27\x21\x3f\x36\xc2\x7b\x5b\x61\x4a\xec\xf7\x44\xb2\x8c\x35\x07\x29\xe6\xf4\x46\x81\x21\xc2\x38\xcd\x98\x82\x2b\x21\xa2\x16\xba\x01\x71\x1d\x85\xef\x60\xc5\xf2\x7f\x62\xee\x2e\xc4\xc4\x21\x9a\xb3\x15\xe3\xec\xb5\xca\x45\x9f\xaa\x71\xfe\xe8\xc7\xc6\xed\x10\x61\xe7\x4e\xe7\xfa\x84\xaa\xc7\xab\x1c\xb0\x77\xef\x55\x7d\x8b\xd9\xea\xbc\xb0\xe7\xe9\x99\xc7\x6d\xe4\xa9\xbd\x6f\x5e\x53\xf6\x5a\xdc\xc7\xf9\x2a\x7d\x73\xf7\x86\x2d\x61\x82\x18\xa0\x5f\x78\xca\xbe\xab\x9d\x37\xdf\xff\xde\x5e\xed\x21\xa7\xb4\x02\x65\x70\xaf\xa6\xf1\x73\xaf\x9f\x82\x2d\xcc\x0d\xa4\xc0\xfb\x1b\x8f\xb1\xde\xbb\xd1\x8b\x98\xae\xa9\xe8\x62\x1b\xb6\xe1\x2b\x5e\x1b\xb9\xd6\xb1\x7c\x04\xe6\x56\xa2\xb6\xac\x63\x19\x2f\x79\xbd\xf2\x51\x5c\x70\xe3\xb2\x80\x8b\xe4\xf4\x46\x0d\xe3\x96\xc5\xb2\x2a\xa0\xf5\xa7\xca\x5b\x81\xc0\xa3\x35\xc0\x59\x3b\x6a\xc5\xc7\xb3\xf4\x99\x13\x48\x18\x70\x7b\x2f\x85\x21\xd3\x10\x02\xca\x2d\xde\xb2\x8b\xb1\x6a\x8c\x9e\xb2\x57\x73\x3a\x30\x45\x99\x57\xf7\x0b\x09\xd7\xb4\xe9\xbc\x9c\xaf\x02\x36\x56\x75\x53\x0b\xad\x27\x5d\x85\x55\x0b\x6d\xdc\x5d\xa2\x3b\x87\xa9\xc6\xb0\x3b\xa9\x0a\xee\x6f\x95\x3c\xbe\x2e\x01\x6c\x7f\xcb\xe6\x24\x1b\x4b\x22\x93\x0f\x21\x84\x6d\x51\x83\x8d\x41\x15\x05\x04\x06\xaf\x91\xbc\x7d\x6c\xd5\x01\x21\xb4\xfb\x0d\x46\x40\x62\xa5\x63\x0a\x92\x46\x27\x13\xba\x7f\x4b\x50\x13\x1c\xd2\x84\xc2\x0d\xa8\x15\x0b\x8f\x25\xdd\x56\xe3\xf1\x2c\x15\x7e\xdd\x2a\x3c\x21\xcb\xdc\x4e\x87\x8a\xb1\x63\x84\xb8\x8b\x4c\x01\x42\x20\x86\xee\x27\x90\x6d\xb8\xae\x70\x63\x49\xe7\xaa\xc9\x5d\xc6\xb3\x4b\xd6\xa8\x6a\xa9\x6a\xe6\xa2\x3e\x7a\xc4\x3a\x17\x46\x64\x96\x1c\x52\x63\xb9\x67\x1f\xd8\x29\x4b\x6d\x04\xcf\xdd\x0d\xb0\x8f\xd5\x45\xf7\x5a\xed\x91\xd9\x5e\xc6\xd1\xa6\x38\x91\x9c\x5f\x8a\x9a\x32\x16\xc4\xb5\xbc\x29\x65\x79\xe3\xea\x90\x60\x03\xf6\x8e\xa4\x37\x66\xf1\x7b\xfc\x95\x66\x6b\x1b\xcd\xb7\xc2\x26\xb0\xc8\xc3\xf5\x5b\xf8\x48\x55\xa2\x1e\x25\xa6\x67\x78\x88\x8f\x06\x9d\xe2\xf2\x02\x30\xd8\x63\xfc\x27\xdf\xc3\x59\xbb\x7b\xbf\x27\xd0\xd9\xdc\xb7\x0d\x47\x53\x46\x65\x0d\x5c\x51\x0f\x81\x7c\x72\xf7\x34\x40\x7d\xe2\xa2\xcf\x03\xf4\x04\xf8\x93\x1e\x00\x2e\x14\x98\x1a\xb9\x0f\x0f\x88\xe4\x76\x15\x8d\x26\x6b\x9e\x59\x2e\xd6\xea\x8e\x17\x21\x2d\x69\xcd\xcb\x54\x11\xce\xd7\x87\xd9\x06\xf9\x27\x77\x4f\x77\xc4\x3f\x98\x12\xcb\xc6\x1e\xb2\x49\x91\xa0\xf9\x82\x78\xdf\x58\x5d\x5a\x48\x6d\x26\x2e\xe1\xc2\xa5\x7f\x55\xf8\x67\x9c\x5a\x83\xff\x8e\xda\x43\x6e\x18\xdf\xd3\x28\x4d\xda\x48\x90\x01\x04\x92\x31\x37\x42\x8d\x94\xd1\x68\x98\x67\x63\x72\x0b\x1a\xb3\x48\x19\xd0\x49\x15\x47\xa7\x22\xcf\xb0\xd0\x87\x51\xb7\xa2\xd4\xa0\x7a\xd9\x12\x7e\xc1\xe8\x09\x52\xc1\xfd\xeb\x94\x80\x3c\xcf\xa8\x8c\x90\xbb\xff\x80\x20\x22\xfb\xbd\x3d\x54\x36\xd0\x5d\xde\xca\x3c\x8c\x81\xda\x1d\x46\xd8\x22\x69\xc3\xa1\x4b\x43\xb1\x5b\xb1\x42\xa7\x3a\x40\x82\x5a\x2b\x46\x85\x0b\xc7\xb2\x58\x85\x03\xf0\xf3\xc6\xa8\x9f\xec\x6b\x04\xe4\x1d\xa0\x21\x51\x59\x52\xdf\xb1\x39\x2f\xb4\x98\xb2\x5f\x45\x70\x94\xcd\xad\x31\x73\x8f\x86\xb7\xb0\xb6\x8e\xd2\x6c\x21\x6a\x2a\x2d\xf4\xd4\x17\x74\xb8\x52\xf9\x04\xef\xb0\x2a\x91\x41\x67\xc7\xe7\x6e\x86\x29\x7d\x70\x5c\x1a\xb0\x94\x05\xe3\x9f\xba\x79\x21\x9e\x59\xa8\x65\xe4\x0d\x12\x48\x68\x9f\xb0\xd9\xa7\x1d\x12\xd8\x2d\xc3\xe5\x09\x42\xb9\x99\x75\xc3\x52\x08\x3c\x26\x5b\xd7\x16\x62\x76\x40\x88\x40\x3d\xf6\x6c\x4f\x92\x58\xbc\x50\x01\x75\x51\x1b\x4f\x93\x08\x7d\xf8\xe8\x10\x54\xd9\x15\x26\xd2\xe5\xb3\x3d\xe9\x02\x50\xfe\x88\x84\x79\xb7\x88\xae\x8b\xfd\x85\x30\x6d\x22\xae\xa3\x1f\xec\x2e\x54\x6c\x0d\x54\x41\x54\xc7\x15\xe0\xfe\xa2\x8a\x66\x49\x8d\x83\xb9\x59\x80\x14\x7b\x2d\x26\x22\x65\xb0\x05\xe5\x49\x33\x38\x7b\x0e\xd1\xb5\xdb\x46\xfa\xb2\x4b\xba\x1c\x0b\xcf\x75\x57\x07\x78\x13\x34\xfb\x7c\x1d\x09\x68\xcf\xc2\xb5\xd0\xec\x29\x9f\x3c\x9d\x4d\x9e\xf1\xc9\xb3\x19\x0c\xfa\x2c\x9b\xb2\x57\x25\x19\x9d\xe1\xad\x6c\xf2\x19\x9f\x7c\x36\xf3\x7b\xf6\x67\xd9\x00\x6d\xd2\x06\x58\x11\x6d\xc6\x18\x78\x76\x23\xa1\x1b\xa8\xf7\xb4\x59\x0c\x6e\x26\x8e\x2c\xef\x70\x33\xf9\xc9\x6e\x64\x5e\xfb\x6e\xbb\x8b\xe0\x1e\x41\xd9\x7a\xb8\x75\x80\x92\x07\xa9\x38\xca\xd6\x11\x85\x2e\xf8\xf2\x8f\xae\xc6\x0d\xb6\xca\xce\x82\xb4\xc2\xb5\x23\xdc\xa1\xd7\x82\xe7\x9d\x51\x00\xe1\x09\xab\x95\x32\xec\xf2\x39\x99\x1c\xc1\xfe\x0e\xd7\x48\x71\x17\xec\x90\x37\xea\x56\xb4\x9d\x3b\x8a\x10\xd0\x10\x24\x7c\xca\x9e\x17\x05\x2d\x11\x40\x0b\x65\x4a\x16\xa9\x2d\xe6\x0a\xfd\xb5\x31\x5b\x7a\x40\xc1\xe9\x12\xaf\x17\x24\x06\x5a\xd2\x9e\x20\x07\x12\x14\x98\x0a\x9d\x00\xae\x6a\xf5\x4f\xca\xc8\x4a\x39\x6e\x8f\x20\xe4\x46\xbc\x43\xf9\xc5\x7b\x54\x20\x03\x14\x40\xc2\xd3\x7d\x04\x0b\x8a\x87\xec\x26\x60\x61\x30\xdd\x67\x12\x8d\xf0\xad\xc4\xc2\xb6\x01\x9a\x55\x4e\x03\x6b\xaf\xf7\x9a\x6b\x8b\xc5\xe7\xd8\x1b\xee\xf7\x0c\x16\xfe\xdd\x8a\x26\x78\x83\x8d\xb7\xcb\x3d\xb7\x85\xe9\x57\x23\x68\x83\x1b\x9f\xee\x7c\xea\x2e\xe9\xe3\x2a\x3c\x41\x1c\xf3\x5c\xe4\xf6\x3c\xac\x17\xea\xde\x57\xb2\xc0\x6c\x6b\x48\x6e\x9e\xb2\xab\x38\x28\xb9\x05\x3a\x2e\x1b\x03\xa5\x7e\xec\x89\x19\x6b\x54\x99\x95\x2f\x51\xe4\xaf\xd7\xdb\x94\x88\x3f\xf7\x2a\xb7\x0f\x7b\x80\x4d\xf7\x9a\x49\xe1\xa1\xce\xcb\x45\x11\x47\x7e\xba\x90\x01\xcc\x65\xe6\xc1\x3f\x16\x4d\x70\xac\x89\xbf\x49\x38\xfe\xab\x99\x89\xcc\x14\x13\x76\x63\x97\xc9\x4c\xa9\x5b\xc6\x2b\x7f\x6f\xdb\x23\x1d\x59\x21\x7f\x77\x5f\xb1\xac\x90\xa2\x34\xec\x87\xbe\x6f\xdb\xa5\xc4\x29\x69\x91\x2e\xeb\x9d\xcf\x3a\xfe\x60\x9c\xbb\xba\x7f\xb0\xb4\xe0\x18\x2f\x19\xbf\x29\x17\x4a\xdb\x05\x27\x97\xbc\x5e\x51\x3a\x37\x1e\x04\x9f\xf9\xa7\xce\x8d\x3c\xb1\x9a\xb5\x34\x10\x5d\x16\xa0\x46\xbf\xfa\xd5\x6a\xdf\x48\x41\x93\xdd\xd2\x7d\x1e\x32\x8d\xa8\x38\xfd\xcf\x9a\x0a\xc0\x24\x30\x27\x41\x8a\x40\x12\x20\xef\xde\x55\x13\x10\xa5\xa9\x57\x61\x07\xea\xe5\x12\x15\xec\x80\x8f\x83\x17\xb4\xf5\x25\x55\x68\x42\xb8\x84\x20\xbc\x3c\x65\xcf\x23\x50\x73\x7b\x32\x03\xe1\xb3\x1c\xb2\x6b\xcc\x97\x5b\x75\xfb\x05\x94\x71\xb2\x48\x1a\x91\xb6\x03\x0b\xad\x33\xa1\xb0\x09\x1f\x63\x3e\xdc\xa2\x24\xb9\xff\x1d\x14\x4f\x0c\x33\x71\xee\x10\xf0\x12\x8c\x91\x4c\xf7\x27\xaf\xe4\xb9\x4f\xc9\x77\x82\x09\x20\xe5\x9c\xdd\x41\xe7\x7f\x49\x71\x24\x7e\x12\xbc\x92\x21\x8d\x7f\x53\x7c\x50\x53\x32\x9a\x82\x9d\xfc\x8d\x30\xc9\xe7\x13\x7b\xca\xad\x5c\xb1\x4e\x12\x53\xd2\x21\x22\xf7\xaf\x85\x78\x87\xb3\xbb\xa7\x67\x54\x67\xec\x90\x44\x44\xcf\x18\x93\xe5\x5c\x6d\x49\x40\xfa\xf4\xdc\x7e\xda\x21\x60\xc8\x2b\xf2\x36\x51\xad\x0a\x56\x15\xbc\x14\xa1\x63\x71\xb0\x65\xa1\xf2\x69\x02\x71\xd3\xd2\xe7\x45\xd1\xa6\x6f\xfc\x7d\x3f\x7d\xe3\x37\xc8\x83\x42\x04\xb7\xa2\x1c\x25\x43\xa5\x08\x53\xa8\xe9\x4c\xf8\x08\xd4\xc3\x71\x00\x67\x35\xc3\x64\x62\x55\x63\x5b\xf7\x6d\xf8\xe0\x01\xb4\x79\x70\xdb\x7a\x01\xcf\x3b\xb5\xc4\xb2\x23\x85\xb8\xe3\x50\x3a\x2b\x14\x74\x9b\xc3\xf0\x78\x3b\x33\xc2\x62\xc6\x84\x9c\x58\xb3\x46\x09\xdd\x58\x63\x3a\xe8\x15\xa7\xf0\xda\x58\x87\xbc\x18\x22\x72\xb4\x8d\x5a\x0a\x4c\x82\xdd\x3b\xa1\xc0\xc7\x09\x65\x91\x41\x79\x2a\x08\x38\x8d\x27\xc1\x51\xe2\x9c\x8e\xea\x8e\xc8\x54\xc9\xea\x6c\x12\x74\x6d\xa9\x72\x04\x16\x2c\x6c\xc2\x85\x17\x5a\x85\xe2\x79\xcc\x95\x2d\x8d\x86\x3b\xa4\x20\xc8\xf9\x7c\x7d\xe2\xd9\x5a\x29\xb0\x5f\x0f\x4a\x80\x7d\x68\x4d\x07\x4a\x12\x86\x1f\x30\x74\x13\x98\x1e\x46\x1d\x9d\x9e\xd4\x4a\x00\x66\x0b\x63\x2a\x1f\xab\xf8\x02\xcb\x92\xe2\x45\x2f\x5f\xf6\xa7\x0b\x07\x2c\x0c\x7e\x37\x61\xb3\x46\xaf\x66\xea\xc3\x94\xbd\xb0\x08\xab\x39\x2b\xe4\x5d\xe7\x63\x57\xf4\x34\x8f\x1f\xf8\x4d\x27\xae\xb1\x18\xcd\x72\x26\xcc\xbd\x10\x25\x02\xc4\x93\x15\x01\x41\x94\x47\x18\x4f\xa3\x55\xaa\xab\x0f\x4a\xe2\xd5\xdf\x98\x6e\x4b\xf6\x8a\x0f\x95\xd2\xa2\x65\x40\x79\x3d\x4a\x0b\x77\x2c\xef\xa0\x74\x33\x79\x4e\xdc\x02\x8d\x22\x45\xed\x79\xb9\x36\xec\xcb\xcf\xbe\xfa\xab\x33\x50\x68\xce\x6e\x65\x29\xd7\xc9\xb3\x65\x51\xf5\x4f\x55\x33\x28\xd4\x57\x1b\xf6\xf4\xd9\x67\x9f\x4f\xd9\x2f\xbc\x90\x14\x4f\x1c\x85\xf8\xf7\x7f\x6b\xb7\x88\x80\x1a\x94\x9a\x21\x38\xde\xf8\x30\xbc\xb6\xca\x1f\x1e\x48\x1d\xfb\x60\xec\x0c\x26\x8c\x6e\x0f\xb9\xe9\xa0\x1b\xc3\x6e\xcd\xb4\x67\x96\x4e\x7d\xc2\xa7\x70\xf3\xe6\x2d\x3c\x1a\xfd\xd9\x67\x9f\x7f\x81\xee\x7b\xf7\xc4\x1d\x4f\xba\x53\xb0\xef\x7a\x37\x4c\xff\x34\xb6\x9e\xc2\xe1\x74\x11\x06\x89\x37\x43\x97\xcb\xeb\x24\x95\xe2\xcb\x93\x3a\x19\x3e\x68\x1d\x6f\x18\xfd\xb5\xc5\xb8\x84\xd8\x34\xf9\x23\x34\xcf\xa7\x23\x20\xd5\x37\xbe\x8d\xc7\x3f\x83\xd0\x5f\x5e\xe6\xa1\xac\x6b\x91\x9c\x17\x7d\x5a\x6d\x19\x32\x19\x9e\x07\x20\xc8\x89\xfc\x0c\x15\xce\x79\x41\x37\x1b\x94\xa8\x1f\xbb\x79\x5c\xc8\x77\xdb\xdd\x88\xc3\xf9\x12\x51\x3c\x07\x73\xdb\x4a\x99\x68\xe1\x8a\xff\x7d\x7e\xe6\xa4\xb6\x16\x4b\x75\x17\xd1\x6c\xba\x19\x2d\xda\xae\x4a\x85\xeb\x98\xdc\x41\x21\x60\x16\xc7\xa1\xce\xc4\xf8\x87\x25\x28\x0c\x74\x48\x6b\xb2\x50\x37\x7d\x59\x16\x6b\xc5\x45\xdd\xf4\xd7\x3a\xc5\xa2\x5a\xbe\xab\xf4\x5c\x16\xd6\x4e\x85\xd7\x77\x11\x1b\x4c\x81\x71\x59\xd4\x37\xa2\x14\xb5\x15\x22\x0b\x0f\xe2\x8b\x6a\xba\x2a\xb7\x5f\x45\x85\x6d\x29\x8a\xc9\x9f\x78\x0a\x75\xc3\x0a\x59\xda\x23\x92\xb5\x0d\xec\x9f\x24\x69\xc4\x0b\xbd\xe6\xa8\xe4\x2c\x90\x9c\x8e\x47\x85\xba\x8f\x98\x0b\x53\x3b\x37\x5c\x16\xdf\x3e\x3d\x73\x24\xf1\x88\x72\x67\xcf\x52\x8a\xad\x45\x62\x12\x0a\xaf\xda\x3f\x9d\xd7\x03\x7e\x54\x37\x11\xe8\xf3\x73\x68\x52\x70\x3e\x5b\x19\xa1\xfb\xa1\x53\x2a\x96\x7d\x83\x46\x0a\xdf\x03\xe0\x73\x42\xcd\xfe\x43\x2e\x85\x36\x7c\x59\x75\xe0\x38\xcc\xc8\xfd\xe6\xdf\x93\x25\x7b\xfb\xfd\xe5\x67\x9f\x7d\xf6\x57\x86\xa6\x13\x80\x8c\xf0\xd3\xb2\xcc\xc4\xb7\x4f\xb5\x47\x8d\x66\x0b\x44\x41\xcd\x57\x0b\xf4\xcb\x3f\x65\x1a\x7a\x37\x30\x55\xe4\xa2\x46\xff\x67\xa9\xee\xfb\x21\x3e\xfb\x7c\x31\x0a\x64\xce\x57\x5d\x78\x07\x5a\x15\x95\x6b\x53\xc2\xcb\x52\x99\xed\x35\x2a\x7e\xef\x13\xc5\x72\x07\xc7\x17\xea\xf4\x79\x48\xf6\x04\xb9\xd1\x0c\x00\x61\xef\xec\xff\x98\x90\x37\xd4\x44\xd7\xa7\x1e\x61\x74\xb2\xcb\x5c\x21\x7d\x9c\x2a\x60\x40\xd7\x2b\xe0\x36\xc2\xb8\x3f\x86\x1f\x92\x7e\x41\xe8\xc5\xb3\xcb\x9f\xb0\xf3\x19\xb3\xe1\x04\x16\x7b\x13\x9c\xdb\x2f\xa6\x87\x65\x1f\x16\x64\x9c\xc7\xe9\x83\x41\x11\x34\x65\x2e\xea\x35\x26\xc7\x01\xf5\x21\xc5\x20\x6d\xc9\x6f\x17\xb9\x94\xee\xa1\x6e\x89\x9e\xfb\x8d\xc7\x1d\x9d\xce\xce\xf4\xc8\x9c\x4c\x62\x89\x67\x15\x8d\x74\x86\xdb\xb2\x8f\xfa\xf1\x59\x4b\x18\x39\x04\xc5\xad\x80\x4d\x51\xa1\x0e\x4b\x3f\xca\xa7\xc2\xd8\xa6\xb0\x1f\xa6\x97\x72\x6e\x6f\x3d\x9f\xbb\xdd\xca\xa8\x2e\x06\xe8\x04\x45\x26\xcf\x95\xb5\x0d\x80\xc5\xe7\x64\xe9\x22\xb7\x5c\x18\xea\x3b\xaa\xdc\x1e\x65\x81\xfa\xde\x03\x29\x75\x60\x16\xf6\xd5\x90\x18\xe7\x11\x3f\x24\x9f\x1b\x28\x22\xb1\x2d\x9f\xf1\xab\x4e\x83\x45\xfb\x1b\x56\x6b\x26\x47\x36\x90\x19\xae\x23\x5d\x09\x70\xa9\xd9\x6b\x71\x27\xea\xed\x39\xde\x94\x67\xad\x1c\xb5\x4a\xe5\x13\x57\xee\x06\x87\xb2\x13\x00\x1b\xd4\xf5\xce\x89\x77\x16\x8b\xb5\x33\xae\x28\xc3\xbe\xf5\xb3\xfd\xbb\x8e\x9d\x26\x38\x25\x50\xb9\x34\x57\x10\xb5\xc0\x21\xbb\x6d\x74\xe5\x07\x4e\x8f\xbe\x7d\xcf\xa1\x79\x86\xde\xdf\x73\x2d\x73\xc1\xf2\x7a\x75\x6e\x27\xd0\x1f\x9e\xbf\x8e\x87\x7d\x50\x5a\xa7\x70\x98\xa6\xa3\xbf\x35\x08\xdd\x7b\xb4\xb0\xaf\x36\x67\xe1\x43\x44\x50\x2f\x2b\x21\xf0\x27\xeb\x74\x3d\xea\x21\x9d\xbf\x43\x24\xae\x4d\x68\xb9\xb4\xa0\xe2\x66\x63\x01\x9d\x57\xec\xff\x4c\xa7\xd3\xff\xcb\xce\xcf\x09\xe3\x6f\x71\xb6\x67\xb1\x81\x94\xa6\x86\x86\xd1\xed\xa2\x8b\xa4\x89\x93\x73\xbb\x4d\x2b\x51\x5a\x7d\x4e\x69\xc4\x29\x9e\x38\x37\x6b\xd3\xe2\xe2\x3d\xe4\x19\x7d\xb8\xa2\xec\x3a\x66\xb7\xea\xca\x12\x83\x35\x94\xd7\x05\x17\x38\xed\x8c\xe0\x63\x13\xf9\xa6\xc5\xd9\xcb\x55\x1a\xe3\xac\x73\xa7\x04\x25\x65\x27\xad\x5a\xb2\x13\xc6\x7e\x90\xc6\xae\x72\x69\xf0\x22\x43\x98\xcc\x69\xe4\x4b\xc4\x3e\xbe\xd4\x75\xd5\xda\xed\xdf\x6e\xc4\x34\x26\x03\xf2\xce\xca\x12\x42\x4c\xd5\x01\x97\x5b\x55\xab\x0f\x2b\xa6\x55\x76\xdb\xdb\xc7\xbc\x8f\xec\x57\xf8\x09\xa2\xdd\xaa\x75\x75\x7e\xde\x94\xf2\xc3\x39\xc2\xfb\xf6\x09\x5c\x4d\x8f\xb2\x7b\xb8\xc3\x04\xc1\xaa\x92\xcd\x56\x5e\xe3\x84\x55\x60\xdf\x71\xc7\xac\x64\xa8\xff\x4f\xab\x28\x72\xe4\xff\x9f\xa2\x23\x9a\x12\x76\x03\x5c\x0b\x14\xef\x99\xf1\x4a\x2b\xba\x37\x00\xd5\x0e\xfe\xb2\x6f\x9e\x3c\x29\x54\xc6\xad\xfd\xf5\xcd\xc5\x13\x5e\xc9\x70\x5a\x4d\x80\x61\xd2\x14\xe6\x03\x33\x6e\x98\x65\x88\x01\xa5\xe9\x25\xd2\xd4\x78\x3f\x79\x50\x6e\x01\xa5\xff\x47\xd4\x63\x6f\x06\xd6\x31\x0c\x21\x12\x41\x7d\xdc\xed\xc5\xae\x4c\xf3\xa8\x8d\x60\x9f\x7d\xf7\xdb\x0b\x6a\x10\xb7\x13\xb7\xac\x00\x90\xec\x4e\x3b\xec\x09\x61\xe1\x23\x58\x74\x60\xe3\x72\x67\xbf\x22\x85\xd0\xbf\x10\x4b\x35\x70\x2b\x9b\x9e\x06\xe2\x5b\x9c\x62\x84\xdd\x11\xbb\x1a\xf1\x68\x11\xf6\x77\x32\x2d\x6f\xa0\x89\x0f\x79\x8c\x2f\x9d\x06\x5a\x37\x28\x1e\x0c\xd8\xb3\xa8\xb8\x59\x5a\x17\x2b\x58\x9e\xda\x70\xe8\x6d\x15\x8a\x23\x04\x17\x71\xd4\xfe\x27\x7c\x49\x10\xc1\xef\x46\xe5\x18\x07\x3c\x92\x78\xb5\x2a\x35\x7b\x76\x48\x6b\x04\x32\x9a\x0e\xcd\x52\x57\xe5\x70\x60\x26\x7f\x32\xd1\x32\x31\xe4\xd0\x24\x8e\x68\x72\xc0\x3e\x9d\xb2\xd7\xe3\x51\xb3\xd6\xee\xd3\x0d\x10\x9f\x6d\x0d\xf1\x00\x82\xf6\x5a\xdc\x63\x59\xff\xb8\x87\x31\xc5\xe9\x4c\xe0\x3d\x74\x7f\x81\xfb\x50\xcd\xa9\x21\x40\x8f\xe4\x59\x44\x6b\x08\xbf\x07\x9a\xfe\xee\x9a\x05\x40\x7d\xfc\x56\x1d\xb5\x10\x2a\x9f\x80\x1c\x2d\x77\x29\x32\x68\xb0\x52\xa7\x82\x10\xb4\x86\xe2\x23\x42\xcb\x82\xd8\xf1\xe9\xe3\x66\x5e\xbf\x79\x07\xa1\x41\xac\xa9\xf0\xac\x53\x44\x5d\xc7\xf0\xe3\x31\xf6\x65\x6b\xf6\x4f\xe8\xcb\x1d\x89\x4d\x3e\x37\x00\xb2\x1b\xa9\x45\xda\xa4\x00\x20\x39\xa7\x33\x54\x64\x14\xf9\xc4\x19\x2b\x58\x4b\xc1\x97\xe2\xb6\xa4\xa1\xb6\x65\xe3\xd8\x51\xba\xfe\x12\x9e\x0d\xfd\x5c\x88\x8a\x49\x92\x96\x40\x93\x5e\xdc\x5b\x63\x9e\x9c\x96\x68\x3b\xa7\x6d\x03\xe9\x28\x61\x5f\x6a\x81\xa3\xaa\xda\x91\x53\xc2\x45\xd8\x48\xa1\x37\x02\xc4\xd7\x5a\x20\x3b\x91\x55\xaf\xdf\xbc\x73\x69\x6e\xa7\x91\x92\x17\xaf\xaf\x7d\xfc\x45\x0f\xf7\x4b\x61\xee\x55\x7d\xfb\xbb\x7d\xcf\xe7\xde\x91\x81\xf1\x44\x98\xec\x89\x35\x1b\x35\xc4\xf4\x48\xba\x02\x04\x3a\x50\x40\xc7\x6f\x3f\xca\xb2\xf9\xf0\xa6\x2c\x56\xbf\x8f\x58\x72\xa9\xcb\x3c\x2e\x1b\x05\x47\x41\x1f\x65\x17\x3a\x91\xa9\xe2\x2e\x0c\x96\x53\xa0\x8a\x43\xc6\x65\x7a\xdf\xfa\x80\x8a\xa9\x8f\x37\x97\x3c\x42\xbf\x43\xcd\xcf\xbb\xd4\x24\x42\x3c\xc9\xcb\x7e\x12\xda\x99\xbf\xfc\x60\x44\x5d\xf2\xe2\xb5\x3d\x37\x52\x2c\x5d\x9f\xf6\x5a\x47\x54\xfb\x53\x07\x96\xbf\x62\x1d\xdd\xb9\x33\x2a\xe3\x23\x22\x48\xd3\x44\xa3\xb7\x09\xe9\x2e\x95\x78\x9e\xd7\x42\x3b\x6e\xc2\x35\x20\xc2\xb3\x64\xbb\x7c\xfd\xfc\xa7\x97\xe4\x8b\x8d\x41\xe3\x96\x11\xbd\x1c\xb2\x0b\x71\xf1\xfb\x91\xfd\x70\x0a\x5b\x6b\xbc\xbe\xa6\x98\x30\x27\x3d\x3e\x4c\xe3\x92\xfc\x65\xd1\x5d\xa6\x59\x55\x22\xb4\x9c\x4b\x10\x30\x8a\x51\x8a\xdd\xab\xab\x49\x77\x38\x3b\x8e\xef\xe9\x89\xc0\x66\x68\x3d\xdb\xb5\xf5\x9c\xd5\x22\x53\x75\xde\x15\x86\x9e\x0a\x38\x9b\x84\x21\x22\x28\xb3\x12\x66\x1f\xed\x28\x07\xe0\x7b\xb6\xff\xf8\x3b\xc1\xd9\x72\x4d\x79\x99\x58\x08\x9e\x43\x55\xb6\x44\x38\xe8\x6e\xaf\xdb\xe2\x15\xef\xe7\x5c\x4a\x68\x1c\x4a\xe8\xaa\x77\x51\x2b\x53\x37\x3f\x57\x4c\xaf\x99\xe5\x6a\xc9\x5d\xaf\x23\x1e\xc6\x2b\x13\xf9\xf3\xb1\x79\x2d\x19\x94\x46\x33\x28\x2d\xca\xac\x69\x85\x9e\x23\x02\x58\x12\xc0\x7b\x51\xc0\x35\xa2\x1f\x39\xb0\xd1\x45\x27\x3a\x6e\x62\xbf\x22\x6e\x70\xf0\x03\x73\xd6\x4f\x75\x5f\xd6\x5e\x7b\x9a\xfd\xdb\xf2\x32\x0c\x75\x42\x66\xea\xfd\x54\xb4\xd7\xca\xe3\xb6\xb5\x0e\xd3\xda\x7b\x5c\x3b\x5c\xa3\x45\x4e\x24\x07\x39\x0e\x7c\xbd\x6d\xf7\x91\x28\x73\xe8\x42\xa9\xa3\x6b\xb2\xbe\x81\x78\xb9\xc2\xeb\xb3\x10\x43\x00\xcc\x0d\x51\x67\xe0\xf0\xec\xdf\x1d\x62\xc5\x69\x31\x71\x1d\xbf\xdc\xf5\xf2\x8b\xd7\xd7\x21\x49\x64\xc4\x71\x61\x13\x83\x76\xb3\x4b\x1c\x7f\x62\x43\xe4\x51\x59\x1e\x2f\x5e\x5f\x1f\x80\x38\x57\xff\x78\xf1\x3a\x91\xc3\x91\x64\x8a\xf7\x43\x2c\xd4\x6d\x24\x2f\xa2\x25\x0a\xdc\x6b\x43\x66\xf1\xbe\xb3\x29\x2d\x7d\x58\x51\x41\x80\xa3\xfd\xb0\x08\xbb\xbc\xef\x57\xe6\x17\xd4\x3a\xa5\xd2\xc5\xd7\x19\x10\xd2\x9f\x5b\x65\xdd\x5d\x17\x6c\x16\x05\xc4\xc7\x1b\x3e\xde\xec\xbe\xfd\xc5\x1b\x00\xf1\x4c\xbf\x61\xcf\x35\xfb\x55\x96\xb9\xba\xd7\x8c\xba\xf0\x15\xab\xb4\x0a\x90\xef\x7c\x00\x18\xc2\xd5\xe5\x3f\x5e\xbc\xd6\xdd\x74\xe7\xaf\x76\x58\x01\x8d\x36\x6a\x69\x05\x0c\xdd\x1a\x23\x79\xec\xb3\xcc\xc9\x17\x02\x44\xb4\x92\x6c\xdf\x01\xfe\x52\x8f\xe5\x2d\x7c\x2f\xb0\x43\xbc\x78\x7d\x4d\x45\xd9\xb8\x66\xaf\xa1\xa0\x45\x99\x3b\x2c\x2d\x70\x3f\x22\xe6\x29\xe0\xf5\xcf\xca\x69\xf3\x78\x68\xbc\x8c\xe1\x75\xb6\xc0\x9c\x2e\x62\x21\x6e\x2b\x69\x61\xc2\x99\x88\xaa\x8e\x63\x64\x30\xd5\xa5\x04\xa8\x9d\x71\x43\x80\x55\xb8\x52\x88\xee\x81\xf7\xe3\xcb\xab\x12\x6a\xbd\x0c\xd4\x81\xf0\xdc\x88\x5e\xeb\x70\xc5\xd5\xc4\x88\xdf\x09\x45\x1f\x46\x58\x75\x67\x74\xfb\x6c\x28\x5d\x65\x5d\xd9\x87\xf1\x55\x1f\x3a\xf0\xb6\xab\xf9\xd0\xf9\x7c\x6d\xc5\x04\x89\x73\x17\x63\x0a\x32\xf4\x21\xb6\x25\xf0\xde\xea\x0b\xdd\xca\x0b\xd1\x6d\xe2\x16\xd5\x17\xfc\x70\xed\x1a\x13\x30\x6a\xa2\x24\x5c\x1c\x85\xeb\x4f\x31\xa6\x26\x82\x13\x46\x1a\x66\x40\x20\xb1\x24\xca\x38\xa9\xf4\xef\xb2\x4d\xb2\x09\x6f\x62\x96\xff\x76\x95\x49\xce\x0f\x2e\xa2\x03\x10\x8f\x25\xa4\xe7\x31\x6b\x33\x4b\x86\x58\x9c\x0e\x22\xaa\xdd\x21\x46\xcb\x2b\x86\x2d\x6c\x5f\x2d\x64\x07\x79\x03\xc4\xba\xde\x45\x37\xcf\x09\x93\xa5\xa9\xf1\xda\x7f\x61\x4c\xb5\x4e\xfc\xc2\x57\xec\x87\x9a\x97\xd0\x00\xfc\x72\x21\xb2\x5b\xfd\x0d\x46\x20\xb8\x66\xa9\x54\x0a\x0a\xeb\xf7\x5a\xf0\xe7\x95\x4f\x6c\x5e\x2e\x9b\x92\x9c\xe9\xdf\xc0\x88\xec\xb7\xd7\x2a\x17\xb1\x3c\x8e\x3e\x48\x29\x6d\xc4\x07\x91\x85\xd0\x10\x6b\xfe\xf1\x0a\x4b\x64\xce\xed\x8e\x5f\xa0\x9f\xc2\x64\x90\xc7\x07\xf7\xe4\xda\x1d\xb2\x28\x83\x00\x52\xe4\xae\x1c\x04\x48\x77\xe3\x99\xc1\xe8\xec\x7b\x31\xa3\xeb\x3d\x48\xaf\xb3\xf6\x08\x46\x75\x63\x60\x59\x6d\x34\xfb\xfa\xe2\xeb\x0b\x34\x58\xb3\xca\xfb\x8b\xbf\xbe\xf8\xfa\x29\xfc\xd8\xe4\x95\xd7\xce\xee\x52\x93\x6c\x9b\xaa\x56\x1f\xa4\x48\x6a\x74\x33\x55\x46\x21\x17\x69\x33\x9e\x52\xe5\xce\x01\x19\xe2\xcb\x45\xe6\xee\x28\x02\xa6\xad\xa0\xe2\x1a\x02\xd9\x38\x92\x1a\xc4\x91\xee\x53\xc0\xf6\xc7\x20\xb7\x04\xa7\x55\x64\x75\xd1\xe2\x70\x96\xb2\x0b\x03\xa0\x8b\xce\x9e\xed\x7d\x9a\x26\x70\x23\x39\x5d\x83\x0c\xe0\x87\x0f\xf0\x51\x84\x5a\x7c\x32\x01\xfc\xac\xa9\x22\xcb\x56\xe4\xd0\x92\x7f\xa0\xfe\xb1\x10\x86\x1a\x7c\xae\xb5\xd0\xd6\x32\x87\xc4\x37\xe8\xce\x05\xe1\x79\xf2\x5f\x4d\x70\xde\x74\x0f\x33\x13\x58\x3c\x5f\x77\x17\x0f\x56\x7b\x8e\xf5\xc0\xa8\x95\xd3\xe4\x27\x5e\x38\x4d\xfe\xe7\xba\x39\xcd\xba\xb1\x94\xfe\x73\xd9\x1c\x67\xd9\x58\x9d\x34\x71\xd1\xd2\xf9\x5a\x27\xeb\x4e\x4b\xc8\x02\x5d\xbf\xf5\xc4\xa7\xe2\x3f\x97\xd3\x47\xb2\x0d\x61\xb0\xb8\x87\xa5\xcd\x5f\xaa\x5a\x19\x95\xa9\xe2\x5b\x93\x55\x9f\x32\x9f\xf0\xb1\x61\xd1\x6d\xbd\xe0\x92\x9c\xfc\xde\x45\xb7\xcb\x82\xc3\x24\x11\xbf\xe8\xa2\xda\x8a\x52\xb3\x25\xaf\x6f\x45\xce\xbc\x9c\x32\xc8\x49\x80\xfb\x04\x5a\x12\xbe\xa4\x18\x5a\x9b\xc0\x3e\xe4\x16\xe4\xb5\x56\x05\x37\x56\x88\xa9\x85\x02\x79\x43\x46\x78\xb0\x3e\xc2\x35\x0d\xbb\xe2\x9f\x4b\xfa\x8f\xb5\xa4\x9b\xfc\xcf\x25\x7d\xaa\x25\x0d\xd1\x97\x13\x4a\xa8\x6b\xf9\x60\xd7\xad\x64\x8c\xda\x0c\x75\x34\x22\xa7\xfe\x87\x95\xaf\xec\xc3\xd3\x7a\x26\xb0\xb8\x36\xc5\x6e\x42\x8f\x21\xb8\xf7\x80\x14\xfb\x96\xd8\x18\xc5\x64\x79\xa7\x6e\x05\x63\x4f\x00\x69\x87\x2c\x23\x89\x72\x1c\x7e\x02\x42\xfe\x84\x62\x2e\xa3\x5a\xe6\xbe\xf4\x95\x15\xfd\x82\x92\x67\x89\x61\x1e\x98\x13\x34\x90\x1a\xab\x03\xb6\xb8\x00\x80\x21\x87\x2a\x97\xf9\x11\x0a\x6e\x44\x99\xad\x26\x50\x59\x4b\x2f\x54\xd1\xdb\x6a\xca\xd3\xbb\xfd\xbd\x76\x00\x1c\xe1\xa9\xea\x1a\x78\x2c\x16\xf2\x66\x63\x60\xf3\xdb\xa6\x64\x4f\x2f\x2e\x98\x34\xde\x45\xe4\xca\xff\xf6\xf4\x15\x8a\x93\xbf\xe1\x96\x85\x37\x54\x2a\x90\x92\xf0\x97\x82\xfb\x76\x96\x50\x2e\x59\x1a\x66\xf8\x2d\x5d\x4c\x78\x2f\x55\x6c\xc3\x3a\x23\xd9\x93\xc4\x27\xf9\xc7\x6f\xb9\xb4\x12\x5f\x4f\x05\xf4\x96\x86\x76\xc0\x84\x37\x68\x3d\x5e\x19\xf0\x1b\xdb\xe1\xd2\x79\xf9\x6e\x55\x28\x49\xe9\x77\x1a\x57\x1b\x35\x4e\xb1\x8a\xe3\x8b\x0b\xb3\x98\xb0\xbf\x5e\x98\x05\x60\xf8\xd7\xbf\x9a\x05\xab\x44\x9d\x89\xd2\x48\x1a\x9d\x62\xb0\xbc\x26\x11\xb5\xe7\x86\xaf\x80\x87\x1d\x7d\x58\x21\x67\xa2\xc6\xe6\xd1\xc2\x44\xbc\xb6\xc4\x7e\x76\x81\xd4\xb1\x23\x46\x43\x78\xcd\xff\xc5\x45\x88\xd0\xf9\x6b\xfa\xce\x16\xe2\xe8\x2a\x37\x11\x86\x03\x82\x39\xf1\xc9\x4e\xab\x4a\x4c\x42\x60\x86\xa5\x4c\x1c\xdb\x32\x42\x46\xfb\x32\x73\xb3\x10\x19\xe2\x23\x42\xc2\x20\x2e\x89\x39\x09\xa2\xd9\x32\x76\x46\xcd\x11\xb2\x07\x3a\xf5\x6b\x66\xcd\xe5\x04\xde\x5a\xad\x18\xd7\x54\x30\x37\x9d\x79\x12\xdd\xf2\xb3\x0f\x0c\x4b\x23\x5b\xd6\x12\x8b\xe1\x05\xb9\x01\xe9\x87\x58\x1c\x0a\x9e\x81\x34\xdf\x38\xd2\xc7\x61\x4b\x1e\xe7\xfe\x8b\x94\x64\xf3\xf2\xb2\xb6\xb0\x06\x86\xd6\x2a\x93\xb0\xf3\xf7\x90\x60\x30\x84\x08\xfd\xa9\xaf\xae\x7c\x10\x11\x44\xb5\x9b\xa6\x2e\xd3\x4b\x37\x88\x19\x84\x1a\xb5\xe1\x92\x1a\x56\xad\x2b\xfe\xe0\x1a\x8f\x25\x93\x1a\xd1\x54\xa1\x25\xa6\xe3\xc4\xf3\xe5\x50\x1c\xd1\x21\xc5\xb3\xc3\xc9\x78\xa0\x5d\xc5\x33\x06\x3a\x49\x28\xe8\x08\x07\xd7\xcd\xad\xb5\x91\xd4\xd5\x04\x51\xf5\xf5\x13\x3b\xf2\x19\x2b\xcf\xce\x3c\xda\xc4\x62\xc8\xef\xa5\x82\x7b\xd0\xe4\x4d\x10\xd3\x49\xb4\x32\xc0\x56\xfa\xfa\x22\x8e\x2b\x81\x9f\xac\xaa\x7a\x77\x79\x65\x7f\x77\x26\x5c\x52\x9e\x6e\x8d\x44\x8f\x5a\x79\xd4\xe0\x30\x10\x22\xde\x97\x99\x8a\xec\xe0\xd7\x2e\x16\x26\x80\x52\x65\x10\xcd\x18\xeb\x93\x89\xa6\x3d\x90\x5c\x61\xe6\xca\x51\x25\xd3\x8d\xf3\x11\x0b\xa6\x9b\x02\x55\x87\x1f\x23\x78\x93\x8e\xe4\xf9\x57\x52\xa9\xa3\x4b\xbd\x58\xf2\xfc\xe1\xcb\x93\x02\x82\x95\x6b\x34\x3c\xcf\x34\x43\xf1\xa1\x7e\x05\xb0\x87\xfb\x29\x46\x5c\x65\x88\x47\x10\x39\xaf\x6b\x23\x7a\xd4\xaa\x89\xb6\x0e\x57\x95\xbd\xab\x9f\xbd\x5c\xa3\xf1\xdf\x27\xdb\x98\xa4\x17\xc9\x37\xbd\x70\x05\x66\x6c\x02\x10\x2a\x51\xf5\x43\x4d\xa6\xe8\x66\x73\xb4\x45\xe1\x85\xf3\x88\xd6\x44\xc2\x92\x03\x19\x13\x9e\x30\xdb\xd8\x12\x87\x90\xab\x96\x4c\x25\xba\x6f\x8c\x5c\xf5\x2c\xb9\x91\x94\xda\xcf\x5c\x69\x2f\x33\x98\x46\x62\xa7\x04\xd1\x8d\x2c\x96\x90\x7e\x1c\x54\xfe\x24\xb4\xfc\x04\xa8\x9e\x34\x61\xad\x80\xa4\xe6\x63\xac\x9c\x21\x0b\x07\x6f\xca\x1f\x8f\x95\xe3\x27\x19\xea\xf5\xef\xb4\x40\x9c\x40\x3b\x47\x9a\xc5\x3f\x61\xbb\x9b\xe0\xc8\x85\x61\xb5\xac\xc7\xcd\x17\x29\x03\x75\x24\xa0\x42\x29\x28\x18\x09\x9d\x80\xb0\x0a\x01\x25\x98\xb9\x50\x72\x6a\x50\x41\x29\x9f\x3d\x31\x7a\x1c\x64\x06\x84\xa0\x3d\x90\x8f\x31\xa5\xe3\xa0\x3f\x20\x39\xa7\x00\x2e\xa8\xf6\xfd\x08\xe2\xa7\x4a\x74\x77\x9d\x31\x59\xd2\x3e\xc6\xcb\xc0\x40\xf6\xea\x4a\xc7\x5e\xac\x63\xa8\xc2\xa0\xfd\x40\x19\x6a\xa1\xb1\xe5\xcf\x7c\x2e\x4b\x4b\x30\xd8\xfa\xca\x5d\x79\xad\xef\x25\x54\x7a\x69\x43\x9d\xab\x3a\x5d\x37\x9e\xe5\x3b\x04\x06\xb6\x15\xe3\x27\x0e\xea\x27\x71\x78\x57\xd7\x2e\xec\x35\x08\xcf\xce\xb4\x43\xf7\xb9\xc3\x36\x14\x2f\xfb\x04\x33\xd0\x5f\x5d\x7d\xb2\xe3\x09\x8e\x5b\x10\xa4\x64\x3e\xe9\xb3\x25\x49\xaf\xc4\x6b\x02\x6a\x99\x50\xac\x2e\x7a\x47\xf1\x7e\x6e\x43\x03\x5f\x6b\x1d\x45\xc9\x54\x9f\x51\xe9\x99\x5a\x84\x4a\x39\x76\xbc\xda\x15\x6a\x73\x45\x9c\x56\xa9\x66\x56\xd4\x72\xda\xc7\x73\x53\xa0\x2e\x54\x66\xc0\x0a\x1e\xd4\x9c\x06\x5c\x16\xa2\x34\x6d\x1b\x2b\xc1\xb6\x24\xa7\xa1\xca\x31\x88\xfc\x36\xec\x0c\x23\x6c\xb3\x1e\xee\xb8\x8d\xe2\x13\x2b\xa6\x9f\x8c\x38\xaa\x4e\x5d\x84\x6e\x82\xf8\x92\xe7\x22\xae\xfa\x1e\xed\x8f\xb0\x33\xe2\xd6\x68\x29\xe6\x2d\xc1\xfe\x20\x6b\xa4\x56\x9c\xad\x11\x52\x4c\x5c\xc0\x34\x91\x90\xb2\x28\x09\xa1\xa1\x29\x16\xab\x38\x61\x0c\xfa\x62\x25\x92\x38\xe9\x9e\xbb\x07\x70\x40\x4a\xda\xbf\xba\x48\x80\x33\xc7\x4a\x59\xa6\x4a\x2d\xb2\xc6\x48\x8a\x12\x1f\x61\x0f\xee\x60\x0b\x26\x67\xb0\x7e\x7b\x30\xb2\x05\xbb\xc6\x60\x1a\x57\x4b\x3e\x67\x8a\xf1\x12\x89\xbb\xba\xa3\x7c\xb6\x0a\x5b\xda\xa4\x3e\xa3\x73\xe1\x43\xe8\xcf\xd4\x17\x6a\x95\x5f\x16\x9c\x00\x87\x50\xa5\x41\x59\x4d\xd7\x6b\x48\x42\x67\x17\x2d\x99\x6a\xc8\x68\x48\xb7\xb4\xd3\x3c\xae\x7d\xd5\x9e\xdf\xa1\x63\xd5\xb7\x9f\xda\xa3\xc9\x77\x55\xdf\x1e\x6a\xaf\xed\x6c\xee\x23\xfb\xf6\x6a\x8f\xee\x02\x87\x54\x5f\x30\x9f\xa4\x19\xa5\xd6\xac\x4a\xc3\x74\xdc\x3f\xd5\x9a\x53\x6b\x7d\xaa\xe9\x34\x6a\xe9\x7b\x99\xd6\xfc\x76\x53\x83\x0e\xd7\x98\x33\xf2\xda\xe5\xe6\x6c\xa3\x91\xa8\x47\x43\xe2\x20\x89\x13\x89\x7d\xc2\xcf\x98\x78\xf3\x1f\xa1\x2f\x4b\x51\x84\x51\x24\xda\x37\x1e\x35\x0d\xb9\x71\x95\xe5\x98\xeb\x4e\x89\x25\x90\x79\xd2\x2a\xcc\x8e\x9a\x4c\xd7\x9f\xd4\x3c\x24\x2b\x0d\x34\xf3\x8e\xd1\xdc\x13\x38\x74\x40\xa3\xd9\xc9\x71\xa8\x1b\xa9\x9a\xad\xfc\x6c\x90\xf3\xdd\x85\x8c\x80\xb0\x1a\xe7\xc7\x6f\x45\x53\xe2\xc6\xc0\x24\xc3\xae\xb2\xc3\x3e\xd2\xb1\xb4\x75\x24\x3a\x1b\x2c\x6d\x8a\x41\x18\xbd\xd5\x90\xae\x1e\x67\x65\x8f\xdd\x6a\xbc\x5a\x1d\x67\x65\x8f\xd9\x6a\x7a\x36\xd4\x35\x06\x6e\x4b\x35\xae\x33\x6c\xb7\xd4\xc0\x61\x36\x4d\x69\x64\xe1\x18\x4e\x75\xdc\x10\x22\xfe\x34\x09\xaf\x7a\x86\x5b\x3c\xa8\x9e\x60\xa8\xb7\x0e\x64\x6f\x6f\x40\x31\xfe\x2e\x07\x6c\x1f\xf5\xde\xb5\x58\x07\xa0\x6e\x63\xb5\x76\xb6\x06\x12\xfa\x07\xb6\x5a\x4f\xa9\xc0\x1e\xbb\x19\xbb\x49\x4d\xad\x57\x51\x3d\xee\xfd\x5e\x73\x77\x5b\x53\xd7\xad\xe6\x2d\x4f\xf9\x1b\xf5\x8f\x8b\xc4\xda\xee\x94\xbf\xa3\xfe\x19\xa7\x64\xd6\x29\x18\x00\x3a\x5e\xc9\x30\xf1\xa1\x92\xb5\x55\xef\x54\xea\xb3\x57\xd1\xb8\x75\xbd\xa3\xb2\x59\xaf\x68\xfc\x16\xb4\x5e\xd9\x6c\x65\x47\x22\xcc\x63\x28\x8b\x2d\x8c\x9d\xfd\xd5\x83\x53\x0b\x03\x0e\xe1\x8f\xc5\xae\x39\x94\x77\x70\xa4\x67\x30\xb1\x57\xe8\x88\x77\x30\xaf\xa0\x4b\x76\xde\xee\x78\xcc\x8f\xe6\x17\x5c\x67\xb1\x74\xdd\x4a\x1f\xc9\x99\xf1\xdf\xc4\x15\x76\x04\x45\x11\x9b\xf5\x8f\xd5\x7e\xf8\xd3\x0d\xb6\x83\x1b\x2c\x3e\xea\x1f\x72\x29\x87\x65\xdc\x5d\x79\xfb\x9e\x0f\xe2\xa5\x08\xd0\x4f\xea\xfe\xe9\x7a\x7e\xb6\x59\x67\x61\x27\xcc\x1a\xf0\x0a\xc2\xf5\xa5\x93\x84\x0d\x6b\xe7\xbb\x95\xf7\x30\x91\xfa\xbf\x8d\x5a\xcf\xb9\x96\x7c\x49\xef\x92\x3a\xba\x38\xc1\x42\xb7\xf8\xfa\x59\xb2\xe5\xb7\x4a\xef\x13\xa8\xed\x43\x4c\x07\xd5\x96\x0f\x5a\xde\x86\x56\x28\x8a\x9c\xcd\xb8\x96\x59\x08\x12\x06\x71\x1c\xd3\x68\xae\xbf\xba\x1a\x4f\xc3\x8d\xad\xb1\xca\xcb\x15\x24\x9f\x74\xab\xfa\xe0\x8e\xd4\x94\x78\x36\x59\xa8\x7b\x26\x96\x95\x59\xc5\xc5\x7b\x9e\xe7\x2e\xae\xbd\xe7\xa2\xb1\x53\x25\xe8\x8e\x9a\x58\x39\x75\x03\x30\xdd\xbd\x63\x08\xed\x76\x41\xbf\x98\x15\x82\x4d\xa5\xbc\xde\xc0\xce\x08\xd0\x1f\x03\x57\x3a\xe6\x9b\x88\x70\x87\xed\x2a\x60\x5a\xc0\x57\x6d\x10\x33\x15\x42\xba\xc3\x81\x1f\x10\x03\x9c\x61\x2b\xc8\x54\x8d\xde\xc1\xdc\x69\x31\x37\x0d\x87\xe4\x94\xbd\x29\x33\x77\x6f\x08\x8d\x55\xa8\x18\x8f\x2b\x91\x68\x16\xd4\x58\x5e\xcd\x3b\x61\xf5\x00\xd1\xd1\x22\xf7\x84\x80\xae\x2a\x38\x67\xaf\x74\xe6\xb2\xd6\x26\xca\x43\xf1\x2d\x58\x68\x4a\x84\x87\x9d\x95\x73\xe6\x24\x05\x3d\xdb\x94\xf5\xca\xac\xa5\x92\x80\xb1\xc7\x10\x79\x14\xbb\x65\x53\x18\x59\x15\xc4\xd2\xed\x97\x01\x7e\x6f\x95\x5a\x6b\x2e\xbb\xaf\x04\x73\xaf\x88\xd8\xb3\xc6\xb0\x52\xa1\x40\x58\xd2\xf9\x86\x2a\x11\xa1\x80\xb8\x2b\x7b\x04\xef\xb6\x2a\xeb\x59\x21\x2d\xc6\xfb\x85\x72\x15\x16\x0a\x70\x96\x78\xd6\xb9\xe9\x45\x11\x2e\xa3\xe4\x00\xb7\x26\x2c\x04\xd7\xa7\x17\x33\x37\x5a\x6b\x21\xdd\xca\x41\x34\x87\x06\xf0\x6b\x21\xc2\xf3\x05\xd6\xa1\x0d\xb2\xe7\x40\xf6\x2e\x68\xc2\xb3\x58\xa5\x99\x0c\xe9\xf0\xb0\x62\x23\xb8\xf8\xb3\x8b\x8c\xe9\x00\xa6\x0e\x06\xf7\xb8\x14\x07\xe8\xb9\xb7\xa4\xbe\x74\xb8\x76\xab\xcd\x6e\x23\x9e\x10\xfe\x63\x3a\x0d\xbc\xcb\x00\x7f\x74\x9d\x58\xfa\x60\x92\x92\xb2\x53\x2d\xd6\x3d\x08\x37\x5b\xc1\x2e\xc5\xd6\x33\x54\x22\x8f\x53\x79\x57\xee\xdb\x8d\xc4\x17\x77\x70\xdf\x02\xdb\x1d\x04\x13\xea\x14\x3a\xa6\xb6\x68\xd4\x62\x69\x5d\x5a\x18\xe2\xd5\xd5\xdd\xe7\x3e\xa0\x8c\x7b\x11\xeb\x0e\x89\x9d\x31\xfc\x66\x32\x38\x60\xac\x3a\x67\x2b\x6c\xf9\xed\xe7\x81\x0d\xbb\xb1\x65\x5f\xd8\x1d\xe2\x92\xc5\x5b\xb6\xf4\xde\x20\x1b\x58\xbb\xea\x27\xee\xd2\x3a\x45\x79\x27\x6b\x55\x42\xcf\xcc\xb9\x14\x45\x5f\xbf\x13\x7b\x72\xfa\x3d\x7c\x19\x5d\xb4\x5b\xbb\xb0\x59\x82\xb9\x77\x27\x79\x02\xec\x8e\xd7\x12\x1e\x74\xf2\x36\x47\x5c\x72\x75\xab\x5d\x81\x14\xf5\x40\x87\x9e\xe9\xb0\x86\x5c\xd6\x21\xfe\xe2\x7d\xeb\x1e\xed\x29\x7b\x1e\xcd\x01\xdf\xf2\x16\x14\x9c\x22\xa4\x05\xe8\x2c\x25\xbf\x2d\x45\xc3\x8e\xcf\xca\xc3\x6a\x57\x4b\x5e\x6d\x43\x7f\x37\xa9\xde\x4d\x64\x2c\x0f\x70\x85\x05\xa0\x07\x22\x7f\x02\x33\x4e\xb7\x8b\xe9\x5b\x14\xe1\x4f\x67\x08\x34\x22\x98\x22\x51\xe3\x6c\xdd\x3f\xf3\x0e\xf9\x0f\x4b\x72\xac\xc2\x6b\xd5\xee\xf9\xad\x58\x8d\x27\xf3\x9c\xcb\x22\x0a\xbe\x0c\xcf\x03\x40\x76\x2b\x56\x1b\xc8\xfa\xdc\x18\xfb\x6a\x12\xc5\xd9\x02\x65\xc5\xdc\x41\xa3\xb8\xca\xf8\xc8\x8b\xce\x5a\x2e\x8b\x31\x75\x92\x47\xd3\x65\xfd\xf6\xd0\x4f\x11\x6b\x18\x84\x54\xd0\x1e\x50\xfb\xd0\x62\xca\xae\xb0\x45\xde\x22\xe4\x3c\x47\x0f\xbf\x17\x26\x5b\x38\xeb\x15\x4e\x94\x7e\x78\x4a\xe5\x9d\x43\xa2\xa9\xd7\xc6\xdf\xad\xb0\xf8\xb9\xbb\x70\x4f\xbe\xd1\xb0\x6c\xa8\x79\x28\x19\xc4\xf6\x73\x55\xfb\x28\x0e\xbf\xa1\x84\x81\x9c\x22\xd7\x86\x1b\x99\xb9\x86\x9a\x65\xee\x43\x32\x40\xf4\x81\x85\xa9\x1a\xf2\x45\x3d\xa3\x2d\xe1\x32\x14\x85\x1a\xa1\xe1\x37\xf1\xf5\x85\xba\x2f\xef\x79\x9d\x3f\xbf\x7a\x35\x49\xf5\xbb\xaa\xd9\xe5\xd5\xcf\x80\xe6\x52\x2c\x95\x4b\x82\xc6\x6d\x2e\xba\x65\xe8\x97\x01\x07\x37\xae\xa3\xe7\x4e\xbd\x7e\xbd\x9e\xd9\xcd\x0d\x80\x4e\xb3\xaa\x79\x82\xc3\x78\x23\xcb\xfb\x0e\xc2\x33\x52\x05\x56\x05\xe8\xad\x73\xfc\x13\x94\xc8\x9c\x80\x36\xbd\x76\x9a\x2e\xb3\x1c\x52\xbc\x71\x2c\xf7\x13\x25\x6c\x5a\xe9\x05\xdc\xfa\x75\x11\x87\xae\x88\x98\xf2\xba\xb3\x5a\xca\x09\xc5\xf7\xbc\x92\x5b\x71\xca\x39\x04\x8e\xc4\x31\x07\xbe\xc3\xac\xb0\x75\x62\x1f\x74\xf4\x9b\xf7\x6f\xe5\x07\x66\x0f\xcd\xed\x63\xe0\x0e\xf4\xc8\x94\xbd\x85\xa2\x36\x92\x1e\xbe\x85\x2c\x09\x32\x6b\xec\xac\x76\xda\xa8\x07\x09\xec\x0e\x1f\xa1\x82\x02\x18\x77\x7a\x70\xe3\x25\x6f\x1e\xd6\x08\x8d\x31\xec\xb5\xba\x42\x05\x4f\xf8\x04\x8e\x96\x77\x12\x0d\xa8\xc0\x17\xb4\xb4\x4f\xcf\x1b\x8b\xd6\xcf\xaf\x5e\xec\xc4\x9b\x0a\xbf\x5d\xaf\x95\xf6\xe5\x8c\x1d\x20\x12\xf2\x41\x23\x90\x3d\xb0\x90\x97\x90\x30\x18\xea\x51\x43\xb6\xe6\x6e\x32\x6f\xe9\xda\x07\x2e\x24\xef\x50\x66\xe0\x11\x36\x83\x3d\x17\x83\xfd\xfc\xf5\x00\xea\xe3\xd7\x07\xda\xc3\x9d\x35\x72\x24\xb6\x5e\xa9\xfc\x9d\x58\x56\x05\x14\xa3\xec\xe9\xbf\x33\xc8\xc3\xe8\x43\xbd\xa1\x7f\x0f\x78\x46\xfd\xbb\x1b\xcc\x3d\xe7\xe6\xb0\x24\x09\x03\x84\x0a\xdf\xee\x98\x41\xdd\xe2\x9d\x05\x86\x6d\x99\xe2\x90\x82\xb9\x6a\xca\x3c\x34\x63\x71\xad\x22\x87\xc0\xf7\xb5\x75\x71\x2d\x5d\xf0\x78\x1d\x20\xa1\x51\xa7\x5b\x38\x6c\x61\x92\x55\x2a\xf7\x04\x59\xc3\x91\x11\xf6\x76\x1f\x1b\xd0\xe4\x6e\xb9\x63\x92\x17\xb7\x37\xb9\xa3\xcf\xfb\x8c\xee\xe4\x71\xc7\xec\x8e\xa7\x34\xde\xf0\x4e\x30\x1e\x6f\x7a\xc7\x83\x8d\x34\xbe\x01\xe2\xbb\xd6\xb7\x2d\xf3\xfb\x40\xdc\x7d\x8b\xab\x79\x6d\xe1\x5f\x60\x6c\xf2\x62\xbb\xe2\x6f\xfc\x50\xec\x5e\x8b\x5a\xe5\x62\x87\x12\xbf\xa1\x18\xae\xa7\x5b\x04\x69\xbb\xd2\xbe\xcb\x08\x85\x75\x65\xae\x49\x09\x8e\x2f\xe9\x9b\x22\xb4\x0b\xe8\x71\xc5\xa7\x5d\x21\x5f\x74\x62\xef\x50\xcc\xf7\xd9\xc5\xa0\x1c\xc5\x98\xb5\xe5\xe8\x47\x6b\x01\xbf\xb5\xab\x67\x12\x8a\x71\xf7\x08\x93\xce\x16\x22\x6f\x0a\x59\xde\xfc\x1e\x7d\xd3\xe9\x1c\x1d\x3d\x02\xfd\x4a\x46\xbf\xf6\x07\x32\xba\xe4\x86\x5a\x6f\x5c\x33\xb3\xb0\xfb\xa5\x7b\x8b\xf1\xaa\x2a\xa4\xd5\xb0\x23\xdc\x45\xe8\x7c\x83\x01\x6b\x18\xd0\x82\xbf\x13\x35\x96\x9c\x0f\x5a\x85\x36\x8f\xf0\x22\xd1\x3a\x56\x2c\x6d\x28\x78\x9d\xe4\xc0\x84\xa7\xd3\x30\x34\xdc\x70\xc0\x1c\x43\x0d\x73\x57\x54\xc5\x5d\x47\xf9\xab\xf7\xe8\x95\x5a\xb8\x59\x3a\xcf\x7e\x00\x3f\x22\xe4\x3d\xf0\xe1\x09\x1c\x5e\xde\x23\x5e\xed\xab\x23\x7c\x4b\xd4\x93\xd8\x25\x6f\xcf\x3a\x1b\x58\xeb\x3f\xbc\xaa\x45\x2e\x33\x54\xf2\xd7\xa2\x96\xbc\xf8\xdd\x4f\x4b\xf7\x00\x65\xb4\x41\xeb\x70\xab\x66\x0f\x72\xf7\xbe\x9b\xfe\xc6\x5a\x5d\x1e\x8b\xe8\x36\x11\xdc\x60\xd2\x85\x08\xd0\x98\x3e\x02\x81\xca\x22\xfd\xc4\xad\xbe\x87\xb2\x4d\x3c\x93\xa3\x6e\xde\x22\x2a\x56\x7e\xa2\x6b\x88\x08\x07\x53\xbf\x55\x40\x2b\x1d\x14\x9f\x03\xd0\x12\xe8\x65\x2d\xcf\x6b\x82\xef\xee\x0b\x6a\xa1\xa9\xb7\x8a\x9c\xfb\x31\x37\x6a\xe4\xd0\xbb\x10\x36\x29\xca\x65\x86\x09\xfc\x9f\xdb\x6f\xd8\xdd\xff\x05\x6d\x55\x26\x3b\xb2\xb3\x85\x3a\x58\x50\x64\x8c\xfb\x10\xca\x2b\x62\x90\x89\x70\x6c\xa1\xab\x5a\x9a\xb8\x5d\xbb\xbe\x07\x4d\x0c\x0e\x27\x40\x87\x0c\xb8\x09\x89\x13\xb7\xfd\xd7\xfe\x3a\x0e\x14\x6f\x5b\xc7\x1d\x9c\x93\xa5\x32\x0f\xc2\xcd\x78\xdc\x5d\x7c\xe3\x09\x65\x89\x49\xee\x22\x02\x30\xf0\xf1\x2b\xa1\xed\x13\xef\xab\x81\x37\x65\xd7\x92\xee\xde\xed\x8a\xad\xad\xa4\x60\x78\x62\xc0\x0f\x35\xa9\x34\x76\xae\x8e\xe5\x21\xca\x87\x0a\xb6\x04\xfe\x1f\x96\x67\x50\x1f\xf4\xef\x4a\x1b\x57\xc9\x82\x5d\x51\xa0\x27\x22\x88\x0f\x5f\x5d\xe9\x28\xdc\x77\xd6\xe0\x7d\x2f\x85\x77\x39\xc7\x13\xbe\xc8\xfe\x72\x31\x85\xff\xff\xf4\x80\x0c\x47\xf2\x81\xfd\x80\x63\x66\xaa\x9c\x17\x32\xb3\xa4\x31\xf7\x42\x94\xa8\x1a\x81\x7b\x10\xfa\xb4\x88\x67\xe4\x42\x57\x3d\xe2\x78\xb3\x44\x78\xc2\xbb\x54\xb6\x63\xbd\xa4\x84\x2d\xc9\x87\x58\xf5\x52\x6e\x02\x03\x05\x7a\x11\x05\x27\xe1\xd8\x03\x67\x16\x9a\xbf\xbf\x80\x86\x56\x51\x20\x42\x73\xc0\x12\x42\xb7\xec\xf6\x6d\xa9\x8f\xf7\x9b\x6d\x5a\xab\xb9\x9b\x05\x35\x2d\x80\xd3\x55\x2d\xaa\x5a\x68\x6c\x97\x5a\xb8\xaa\x09\x3e\x50\x6c\x4c\xb5\x84\xdd\x25\xc8\x4b\xb5\x25\x08\x61\x99\x48\x55\xa9\xcc\xf9\x11\x54\x02\x4a\x08\x49\x64\xa9\xc6\x0b\x48\xca\xaa\x45\xc0\xd8\x49\xcd\x9e\x82\xd1\xba\x97\xa4\x44\xe6\x44\x27\xc7\x69\xf6\xb1\x10\x58\x60\x8e\xd1\x75\xa0\xa0\x8c\xd6\xe2\xc1\x98\x69\x95\x5f\x55\x0b\x7b\x9e\x84\x22\xa1\xd6\xce\x0b\xfd\x9d\xc7\x72\xc9\x7d\xee\xb9\x14\x7e\x7b\x09\xb5\x5e\xa5\x2a\xaf\x38\x85\xff\xd4\x4d\xa9\x5d\xb8\xe6\xb5\xc0\x88\x47\xb4\x2f\x63\x4c\x5c\xc0\x1b\xf4\x31\x5a\xcf\x86\xef\x55\x53\xb3\x42\xdc\x89\x42\xd3\x49\x1a\xae\x1f\xe3\x21\xd0\x68\xf6\xec\x8e\x5e\xae\xa5\xaa\xa5\x59\x4d\x28\xb2\x59\x9b\x5a\x66\xe4\x42\xc0\x16\xd8\x97\x57\x3f\x3b\x7f\x36\x86\x93\xf0\xa6\xcc\x16\x53\xff\x25\x7b\xca\xce\xd9\x67\x91\x71\xa5\x2b\x7e\x5f\x46\xa1\x33\x73\x45\x06\xdb\x6c\x15\x3e\xfa\x3c\x14\x5c\xe9\xe0\xf9\xd6\x75\xbb\x06\x70\xe4\x50\xc2\xfb\x60\xea\x0a\x87\xd2\xee\x7b\x4d\xbb\x0f\xc6\x9c\x81\x53\xa9\x20\x6a\xaf\xd9\xd8\x7f\x41\xce\x38\xc4\xf1\xbc\xbb\x2e\x58\x70\x0b\x19\x19\x02\xc9\x9c\x3c\x0c\xbc\xe2\x1a\x21\xe3\x99\xda\xf9\x9c\x22\xc5\xfb\xee\xdd\x15\x5b\x0a\xb3\xb0\x3c\x59\x2f\x3b\x34\x3d\xd0\x25\x1b\x46\x73\x5e\x2a\x2c\x9b\x51\xae\xd8\xb2\x31\xbe\x60\x17\x38\x22\xed\x12\x15\x12\x43\x7b\x29\x1e\x45\xd5\xde\x97\xe1\x3c\x21\x10\xea\x9c\x00\x92\x4b\x02\xe5\xc1\xe0\x75\xc9\x46\x50\x7d\x37\xc8\x7d\x07\xd6\x6d\x99\xfe\x1d\xc4\x73\x06\xa6\xed\xc3\xe6\xa0\xb0\x31\x4a\xb4\x8a\xa1\x32\x08\x60\xdf\xc4\x24\xd7\xed\x51\xde\x00\x3d\xdc\x1a\xaa\x92\xd6\x82\xd4\x07\x0f\xb5\x28\x5e\xe7\x97\xe0\x94\x8f\x8f\xdf\x60\x32\x82\xe7\x91\x22\x49\x1d\xe6\x48\x4f\xc2\xcd\x5a\xf9\xea\xbe\x3d\x14\x84\xcf\xf9\xcd\xdb\xee\xaa\x92\xee\xb5\xe2\xd7\x8e\xb1\x06\x23\xb2\x62\xa5\x5e\x69\x64\xc6\x0b\x86\x05\xd7\x0f\xc0\x99\x74\xb6\x3e\xe3\x36\x52\xc7\xb3\x55\x32\xec\x38\x86\x25\x5f\x6c\xc3\x29\xb7\x02\x76\xe4\x94\x3d\x49\xc5\x8c\x72\x78\xb8\x89\x1d\x8c\x47\x21\x18\xe0\x17\x55\x34\x4b\xe8\x01\xff\xc1\xb0\x9c\x1b\x3e\x61\x33\x59\xf2\x7a\x05\x7f\xf4\x71\xc9\xa8\x9a\xdf\x24\x11\x19\xd1\x07\x51\x58\x10\xf9\x62\xb1\xdd\xde\x1d\x0c\xb3\xd3\x45\xd6\xbb\x24\xec\xc1\x97\xcf\x8f\xbd\xf6\x1e\x79\xe0\x50\x8c\x4e\x1c\x14\x1c\xc5\x58\x61\xcd\xf6\x3c\x84\xec\x96\xe2\xbe\x58\xc5\x5e\xe7\x50\xf1\xdb\xe1\xbe\x54\x4d\x69\xfc\xf8\x4b\x5e\x55\xc2\xc7\x83\x52\xd3\x43\xd8\xf3\xa3\xe6\x82\x01\xef\x33\xbd\x19\x49\x32\x62\x42\x1d\x27\x8b\xa2\x3f\x70\xa9\xd2\x08\x17\xa2\x6e\x7f\x00\x74\x44\x0e\xec\xd7\xeb\x3a\x1a\x3e\xdb\x1c\xc0\xf1\x1e\xa7\xb8\x59\x4a\x9c\xbb\x32\xea\x5c\x87\x8e\xc8\x71\x82\xa2\x80\xa5\xbc\xa0\xef\xf5\x7a\x69\x41\xd9\xd8\xf2\x0e\x6e\xbd\xb4\xf4\x84\xdb\xf5\x8b\x02\x1e\xda\xb6\x15\x87\x75\xa2\xf0\x6b\x1c\x45\x8f\x94\xb7\x5f\xc5\x45\x54\x42\x00\xa7\x3b\x63\x45\xef\xb5\x85\x24\x12\x90\x18\xec\xb0\x90\x24\xd8\x3c\x2f\xb4\xc2\x9b\x27\xfb\x93\x34\x62\xf9\x17\xfb\xce\xa7\xd1\x8d\x15\x2a\x32\x0f\xc9\x51\xb3\xd5\xab\x80\x33\x51\xd7\xaa\x8e\x64\xd5\x12\xc4\xc3\xdb\x21\x7a\x6e\xb4\x30\xba\x1c\x0b\x4b\xfb\x81\xc3\x59\x57\x04\x7b\xc3\x16\x43\xb4\xfb\x7e\xaa\xea\xb2\x13\x48\x36\x49\xfd\x6a\x40\x1d\x60\x8a\x66\xdc\x8d\x84\x21\xbe\x55\x03\xf7\x3a\x9e\x97\xf4\x10\x2d\x44\xd0\xac\x46\x45\xbd\x4b\xa3\x68\xb4\xcd\x22\xef\xae\x2e\x0f\xa1\x01\x71\x3c\xda\x1c\x98\x17\x39\xca\xdb\x02\x41\x8b\x52\xb1\x72\x0c\xb6\x74\x9e\x78\x49\x9b\x28\xbc\xb6\x04\xb7\x12\xbc\x4c\x6e\x02\xa7\x4e\x2f\x3e\x7c\xf9\xf9\xe7\x27\x14\x9d\x09\x2b\x55\x79\x5e\x2b\x65\x58\xa3\x7b\x7b\x4c\xef\x23\x49\x5c\x7b\xf0\x3b\xa9\xb4\x87\x91\x2a\xf2\xe3\x42\xfe\x85\x06\x67\x61\x44\xa1\xd0\x4e\xa1\x91\xf9\xb7\x4f\x2f\x2e\x2e\xc6\x88\xe1\x21\x35\x2f\x8e\x07\x72\x44\xbe\x22\x7a\x0a\x03\x41\x76\x83\x17\xb2\xd8\x75\xed\x7b\x6f\x83\x9b\x43\xcd\x1f\x40\xd6\xfc\x34\xc0\xf3\xdc\x57\x93\x63\x1f\x69\xf3\x9c\xa1\x99\xfe\x44\xc3\x1c\xa6\x95\xd1\x49\x45\xf0\x7b\xc7\x40\x10\x24\xd8\x18\x73\xf4\x6c\xe3\x26\x1b\x22\xbc\x2d\x23\xcf\x2e\x3e\x7c\x7e\x71\x71\xb6\xa7\x20\x7a\x34\xb7\xd7\x87\x83\xba\xd0\xa9\xdf\xf1\xfa\x70\x26\x9c\xbc\xc2\xb6\x8e\x26\x45\x7b\xa6\x74\x4b\xbe\xb9\x17\xd0\x9a\x24\x56\x2c\xc6\x4c\xdd\x89\x32\xf2\x08\x14\x82\x55\xa2\x5e\x4a\xc8\x70\xdd\xa2\x13\xd0\x6e\x6b\xe3\x48\xfb\xb7\x5f\x07\x04\x7e\xfb\x70\xae\x87\x13\x7a\x57\xd7\xcf\xd9\x94\x3c\x36\x27\x51\xea\x91\xc0\x0f\xa2\x74\xd7\xca\x7a\x2c\xe7\xfe\x92\x7f\xcc\xde\x7f\xb2\x7d\xff\xe4\x8a\xd8\x0b\x20\xc4\xec\x19\xb1\xf4\x23\x7e\xa4\x3a\x79\xbc\x78\x6e\xd2\xe0\xa3\xb4\xb7\x73\x7f\x6d\x2d\xd5\x6b\x25\x1a\x59\xb3\x83\x54\xaf\x93\xe8\x70\x0d\x3a\x4a\x83\x8f\xd1\xde\x9b\xca\x10\xa4\x1a\xfc\xc1\xb4\xf7\x71\x4d\xe8\x9e\xb5\x14\x8c\xea\x3f\xe4\xca\xd9\x6c\x7e\x8f\x35\xbd\x13\x99\x3c\xc8\x09\xd0\x87\xe7\x8d\x33\xbf\x1f\xce\xf4\xf6\x99\xf1\x0e\x7d\x5e\xf5\xde\xfc\x8c\x94\x4c\x59\xb6\x21\xea\x98\x75\xbe\x86\xc9\x47\xe7\xb3\x0a\x15\x04\xb8\x59\xb4\x9d\x89\xc8\x6a\xa7\x19\x7b\xb0\xc1\x3a\xc2\x14\x5c\x4b\x40\xe3\x01\x8f\xaa\x83\x1a\x57\x6c\x79\x04\x53\x47\x79\x1d\x8f\xe0\xa3\x7e\x2c\x5e\xc7\x80\xe1\x83\x38\x1d\x0f\x26\x05\x51\xca\x08\xd1\x65\x12\xdd\x76\xaf\x93\x85\x24\x43\x83\x48\xba\x2e\x91\x30\xab\x1a\x84\xba\x93\xe3\xe6\xb9\xd3\xe2\x38\x21\x68\x21\x09\x9a\x3b\x9a\x00\xca\xf1\x35\x46\x32\xda\x2d\xa6\xf3\x0c\xf6\x0d\xef\x6b\xe3\xb2\xb4\xdb\x81\xb4\x66\xa4\x4b\xd6\x0f\x73\x9f\xfa\xb5\x8a\x69\x26\x2e\xc7\xa3\xbf\x21\x0a\xe6\x85\x86\x30\x81\x50\xc0\xc4\x77\xab\x05\x81\x22\x0d\xef\xf8\x4a\x4c\xd9\x3a\x4d\x84\x57\x72\x4b\x86\x52\x64\xe7\xa1\x39\x1a\xc0\x3e\x6e\x9e\x12\x9e\x3b\x32\xd5\xa5\x37\x3e\x2a\xae\x26\x39\xa4\x87\xe4\x6b\x94\xe7\x8b\x7d\x95\x1f\x2b\x63\x13\x0a\xec\xc0\xda\x34\x0b\xf7\x31\x32\xf7\x08\xab\x36\xe2\xae\x13\xeb\x47\xce\xdf\xed\xd6\x6e\x74\x3f\xdd\x02\xf0\xb8\x38\xec\x37\x8b\x89\xb7\xe6\xdb\x39\xda\x7b\xb2\xbd\x93\xf2\xfd\x97\xac\x6a\x3e\x75\xa9\x99\x6e\x50\xbf\x2f\xbb\xb0\x43\xfa\x83\x0e\xc7\xe2\xf1\x8a\x47\xbc\x57\x47\x5b\xaf\xc3\xdc\xf3\xd8\xbd\x9f\xa4\x65\xb2\xad\xd4\xc5\x88\xad\x1d\x13\x35\xfa\x24\xc9\x57\x8e\x4a\xe3\x41\x87\xb8\x7e\xca\x7d\xe3\x84\xb2\x87\xc3\x76\xc4\x2f\xc6\xe6\xa3\x93\xc0\xd6\x06\x94\xee\x27\x43\x72\x18\x43\x14\xf5\x76\xdb\xd6\xc0\x96\x85\x67\xe6\x11\x4a\xed\x91\x89\xa2\x4b\x24\xdf\x53\xd8\x2a\x95\x63\x41\xd6\xb2\x58\xed\x74\xe6\x3c\x95\xbc\x5c\xd1\x7c\x77\xb0\x55\xdc\xa7\x8f\x6b\x13\x8b\xdd\xfe\x17\x9f\x5f\x5c\xec\xc8\x48\xbb\xc6\x5f\x44\x77\xac\xaa\xa4\x58\xac\xc8\xa9\x7f\x9a\x23\x86\x8f\xe4\x27\xa7\x14\xfc\x4a\xfe\xed\xe0\x7e\x3b\xaf\xcf\xe9\xff\xd6\x48\xc2\x3a\x29\xc0\xe0\xed\xad\x25\x61\x9d\x14\xb8\xec\xd6\x21\x49\xd8\xe9\x7a\x13\x15\xcb\xe1\x1d\xe4\xbb\x49\x5b\x70\x83\xee\x29\x6b\x4b\x12\x32\x64\x8b\x85\x7a\x72\x41\xdb\x53\x83\x04\x41\xed\xf8\x86\x83\x70\xb6\x84\xcb\x65\x5e\xec\x28\x60\x7d\xc2\xd5\xba\x40\x7d\x3c\xf7\xe7\xbb\x09\x98\x8f\xc5\x2c\x95\xf1\x89\xfa\xbb\x08\x59\x17\x90\x25\xdc\x52\xe5\x71\x66\xcd\x23\x92\x32\x57\x8a\xd8\xca\x1a\x56\xae\x14\x3c\x5b\xb8\xbb\x3b\xac\xb9\xe2\xa7\x32\xa0\xb3\xd2\xcb\x91\xae\x58\xc5\xc4\xd8\x41\xba\xa2\x0e\xa8\x31\xa4\xd9\x8a\xf1\x3c\xc7\x84\xf5\x52\xdc\x47\xcf\x9c\x0f\xd6\x65\x11\x25\x3e\xf8\xd6\xab\xdd\xa2\x86\x1d\x17\xec\x69\x36\x54\x12\x9c\x82\x8a\x68\xec\x21\x7b\x00\xe2\xa3\x17\x3b\x9c\xc5\xba\x5d\xd2\x07\x64\x76\x25\x8e\x48\xb0\x9d\xc5\xd4\xee\x39\x49\x40\xda\x72\x86\x29\xe0\x3d\x22\xe6\xc5\x0b\xdf\xe8\x48\x56\x2b\x16\xf8\x68\xd2\xf5\x72\x59\x99\xd5\x0b\x59\x4f\xd8\xf5\x82\xd7\x7e\x08\xed\xb3\x22\x3d\x39\xd7\x2a\x39\x07\xc6\x7f\x6e\x6d\xf6\x56\xa9\x13\xdd\x3b\x40\x7a\xce\xd9\x5c\x54\xc8\x72\x2c\x2d\x20\x54\xb2\x33\x41\xc3\x9f\xf9\x5b\x2a\x37\xf6\x02\xea\x94\xf5\x0c\x99\x1c\xf5\x43\x3c\x7f\xe5\x78\x63\xee\x15\x9b\x35\x7a\x35\x53\x1f\x98\x5c\xf2\x1b\x11\x23\x69\xa1\x3b\xe0\x91\x19\x18\x22\x1c\x42\x6d\x09\x0f\x70\xc9\x65\x44\x4d\x02\x71\xcf\xa5\x71\xdd\x96\xac\xe8\x35\xb3\xe8\x95\xbc\x56\x15\xd5\xed\x00\xfe\x62\x1d\x92\x16\x1c\xee\x1b\xad\x13\x7d\x73\x6e\x78\x27\x25\xe1\x8b\x41\x11\x01\xd2\xbd\xcf\x65\x3d\x2c\x19\x4b\x91\xcb\x66\xe9\x8e\x7f\x2d\x73\xfe\xcb\xcf\x3f\xdf\x4a\x30\x5a\x42\xf1\x17\x77\xcd\x3e\xb1\x90\x26\x34\x06\x9e\xff\xf7\x89\xd5\x19\x2d\x28\xc9\x55\x5f\x30\x8f\x2e\xe8\xa2\x9c\xd1\x8b\x60\xac\x10\x67\x65\x19\xee\xed\x88\x0b\xf7\x90\x5c\x1c\xfe\x1e\x0c\x24\x08\x7b\x4b\xe7\xfa\x1e\x86\x3f\xaf\xef\xad\x65\x56\xd3\x99\x81\x6e\x1f\x57\x55\x08\x6e\x59\x56\x73\xed\x0f\xe8\x74\x15\x98\x86\xc1\xb8\xb8\x99\xfd\x6c\x2d\x17\xc3\xbb\xde\x98\x9f\x30\x55\x87\x46\x48\x1a\xea\xdc\x3d\x61\x3f\xbc\x7a\x31\x5e\x49\x8d\x97\x40\x74\x6b\x74\x05\x70\x8b\x50\x98\x2d\xe5\x11\xa8\xfd\xe9\x81\xec\xfe\x8d\xd2\x08\x6c\x3d\xc3\xc9\x9e\x59\x6a\x9e\x61\x95\xcc\xb3\x49\x2b\x5a\xa5\x2b\xaa\x3b\x89\xa9\xaf\x8c\xd1\x2f\xaa\xbb\x88\x69\x1c\xf9\xdd\x2f\xaa\xdb\x8a\x29\x42\xdc\xee\x58\xb0\x49\x4c\x01\xa6\x17\x55\x78\x88\x8e\x3a\x10\xb3\x6f\x3d\xdd\x8f\x21\xc4\x03\x6a\xf4\xcb\x2f\x0f\x25\xb6\x5f\x7e\xf9\x98\xd4\xe8\x97\x5f\x3e\x98\x1a\x85\xff\xfc\xa9\x46\x47\xaa\xd1\x2f\xbf\x9c\x1c\x49\x8f\x7e\xf9\xe5\x47\xa2\x47\xbf\xfc\xf2\x41\xf4\x68\x9f\x9c\xfe\xa9\x47\x77\xd3\xa3\x5f\x7d\xf5\xd5\x81\xc4\xf6\xab\xaf\xbe\x7a\x44\x7a\xf4\xab\xaf\xbe\x7a\x20\x3d\xfa\x01\xff\xf3\xa7\x1e\x1d\xa7\x47\xad\xd8\x1c\x45\x8d\x5a\xc0\x1f\x85\x1a\xb5\xa2\x7a\x7a\x35\xda\x2f\xa6\x7f\xaa\xd1\x87\x39\xd5\x77\x4f\xf4\xa7\x12\xda\x11\x27\xfa\x3f\x4f\xdf\x07\x3d\x7d\x1f\x48\x50\x3e\x0a\xdd\x06\x47\xed\x1d\xe5\xc7\xe5\xda\x1f\x46\x0f\x1d\x24\x57\xa9\x47\x7e\x00\xe2\xe3\xd1\x43\x7b\x1e\x8b\xbb\x47\xe2\x47\xa0\x87\xdc\x91\xf8\xcf\xe3\xeb\x41\x8f\xaf\x07\x12\x94\x8f\x43\x0f\xd9\xa3\xea\x8e\xf2\xf3\xa7\x1e\x3a\xfd\xb1\xb2\x7b\xa4\x7c\x78\x3d\x04\x76\xba\xef\x56\xd6\x2f\x48\xf6\x5d\xae\xff\x3c\x06\xee\x72\x0c\x3c\x90\xc0\x7c\x14\xfa\xc8\xcb\xd2\xf6\x72\x84\xea\x68\xa3\x2c\xfd\x79\x4e\xeb\xd1\x4b\xa1\x8a\xd3\x78\x49\xa3\xef\x55\x19\x05\x57\xc3\x08\x24\x82\xc0\xb4\x10\x80\x5c\xd7\x22\xa3\x50\xb8\x53\x3b\xc0\x52\x19\xf2\x47\xf9\xd1\xfa\xe8\x14\x3b\xd7\xa9\x14\xca\x7e\x9c\xc6\x25\xd5\x62\xb0\x63\x6e\x88\x5b\x3d\x01\x83\xc7\xeb\x97\x7d\x76\xa2\x88\xf3\xce\xa9\xb4\x6f\xa4\x61\x57\x37\x60\x2a\xc7\xf1\x55\x00\xfb\xb5\xe6\x55\x25\x6a\xbf\x44\x42\x56\x31\x71\x7a\xc2\x4a\xc5\x6a\x9e\xad\x8d\x90\xf7\xe0\xee\x09\x5c\x6b\xeb\xb1\x93\xcf\x78\xa3\x05\x40\xb2\x7a\x37\x97\xa1\xf6\xee\x42\x94\xac\xd1\x94\x9e\xe0\xd3\x85\xa3\x6a\xeb\xa3\x0a\x40\x7c\x71\x11\x37\x61\xfd\x85\x10\xb0\x8c\xfc\x82\xd5\xae\x96\x35\xf5\x19\x73\xa1\xab\x3a\x4a\xa3\xee\x89\xb3\x99\x86\x36\x16\xaf\xdf\x50\xbf\x92\x7b\x2e\x81\x77\x16\x57\x1a\xa4\x13\x11\xf3\x59\x4f\x21\x57\x24\x55\xe0\xc8\x7b\x22\xd5\x68\xce\x5c\x8b\xac\x16\xc6\x75\x9e\xeb\x61\x92\x2b\x3a\xbf\x37\xa3\x5c\xf1\xfa\x0d\x2d\x5d\x10\x9f\x28\xab\xa3\x8d\x56\xa7\xb2\x2b\x84\x0f\xc5\xad\x41\x30\x00\x89\xc2\xe6\xb4\xe1\xb5\xc1\x17\xd7\xcd\x75\x8d\xd3\xf7\xa0\x8c\xb8\xaa\xd5\x3f\xb1\x9a\x40\xa7\x00\x45\x85\x8f\x36\x45\xe7\x06\x08\x99\x5a\xce\x64\x29\xf2\x28\x6d\xc4\x3e\x81\x3a\x0b\x99\x5a\x56\xaa\x04\x33\x04\x2b\x95\xf0\x5b\xa4\x4b\x53\x61\x90\x97\x1f\x0c\x22\x2d\x7f\xbb\xf2\x7f\xff\xbe\x7b\x14\x65\xda\x25\xaf\xf2\x88\xba\x38\x4e\xea\xc8\x0d\xfd\x47\x2c\x2b\xf4\x84\x16\xa6\x6b\xc5\x0d\xc5\x62\xa3\xe8\x51\x80\x14\xba\x32\x66\x55\x33\xd0\x65\xb6\xf5\xc4\xb7\xf0\xf5\x29\x26\xed\xf8\x5d\xa8\xac\x00\x31\x68\x1d\x4c\x5c\x43\x70\x6f\xcf\x25\xb0\x43\xfa\x30\x14\x98\xb9\x17\x45\x61\xff\x77\x00\x81\x6e\x40\x64\x7f\xf8\xe8\x78\xe5\xeb\xa9\xfa\xde\xb1\x7f\xb3\x88\x75\x6a\xd8\x6c\x59\x9d\x37\x16\xb9\x6d\xea\xf4\xe2\x4e\x36\x5c\x35\x63\xeb\x2e\x36\x66\x51\x8b\x24\xac\x11\x7e\x8d\x14\xb4\x45\xbf\x58\x41\x79\x6e\xe1\x5b\xa3\x75\xe6\x1a\x67\xa9\x5d\xfa\x6e\xe9\xe1\x8a\xa7\x44\xad\xe1\xca\x72\x58\xf5\x05\xdb\xba\x9f\xfd\x46\xb8\xc1\xf8\x6f\x2d\x8a\xcb\x56\x73\x7f\x6b\x4f\xc0\xbf\xce\x9f\x9e\xa1\xb4\xfa\x59\x07\x5a\xbb\xfe\x3b\xf8\xc4\x0f\x32\xf1\xd1\xc4\x83\xd2\x9d\x2e\x2f\x2f\x8c\x6d\x48\x49\x14\x7a\x67\x5c\x9a\x67\x34\xae\x1b\xb3\x1d\xa3\xec\xc7\x75\x95\x43\x5a\x8b\x6a\xca\x5e\x20\xa1\x7a\xc7\xf1\x82\x98\xa4\x11\xfa\xf9\xb9\xfe\xf6\xdd\xc9\x85\x89\x75\xf8\xbb\xd3\xba\x1a\xe8\x59\xbe\x76\x61\x6d\x69\xfa\xf6\x2d\xa9\xb1\xa5\xae\xf6\x8c\x75\x8f\x05\x72\x48\x47\x9f\x85\xaa\xe4\xb8\x89\x2a\x6a\x0e\x1b\x8b\x65\xdc\xad\x2f\xb2\x33\x81\x06\xd3\x8d\x72\x69\xcf\xc8\x68\x90\xce\x5b\x95\x67\xa0\x89\x84\xd6\xf3\xa6\xb0\x4b\x99\xb4\xb0\x4b\x6d\x6a\x9f\xb6\x66\xf1\x1d\xc6\xe9\xd8\x3d\xfa\xbe\x7c\x6f\x46\xef\x53\xc5\xec\x08\x4c\x8f\xd1\x49\xea\x8c\x31\xac\x33\xf6\xc7\x66\xfb\x36\x79\xa1\x7b\x73\x3e\x5e\x5f\x07\x29\xd1\x7b\x2c\x1d\xd0\x5a\xfb\xde\xc7\xf6\xf9\xa9\x05\x22\x4e\x10\xa4\x36\x1b\x87\xca\xdb\x03\x81\xc2\x5c\xd4\x5d\x7c\x29\xfb\x0a\x9e\xef\x25\x71\x64\x71\xdb\xb9\x12\xee\xc9\xf7\x97\x77\xed\x6a\x65\xbc\xd0\x2a\xa9\x9b\x18\x55\x80\xae\xb8\x59\x8c\x13\xc5\xae\x18\x06\xab\x09\x0b\xa8\x41\x15\x01\xe7\x66\xf8\x18\x94\x16\xd2\xe4\x21\x94\xd7\x91\xca\xda\x3e\x88\x1e\xdb\x20\x6f\x0e\x62\x28\xb2\xb7\xaf\xbc\xa1\x21\x9c\xca\xdc\x4e\x3a\x91\xe4\xed\x0f\xaa\x13\x4f\x69\x8b\xb5\x84\xfa\xe3\xb2\xcc\x36\x2a\xcc\x58\xe0\x0e\xa8\x30\xd1\x63\x72\x00\x01\x3e\x9d\x60\xb5\x6a\xc2\x42\xc9\xd3\x83\x08\x56\x4f\x79\x58\xe7\x24\x31\xae\xcd\xe6\x2e\xe5\x61\xb7\xf5\xc1\x8d\x11\x28\x9f\x9c\x1c\x24\x26\x08\x8b\xb9\x57\x51\x53\x42\xbf\xb3\x40\x29\xd7\xcd\xee\x81\x96\xe8\x64\xfd\x26\x9f\x97\x23\x3b\x58\xb4\x0a\xb7\xad\x18\xbb\xaf\x38\x6c\xae\x1f\xdb\xc7\xff\xe3\xf5\xaf\x3a\x86\xee\x28\x73\xab\xc3\xed\x98\xda\x7b\xcf\xe0\x57\x72\xfe\x18\x05\xb9\xdf\xe4\xc5\xe9\xd1\x0b\xa8\x3c\xf0\xbb\x94\xa7\x80\x1d\xf9\xb8\xfa\x55\x4a\x13\x9c\x4f\xe8\x15\x8b\x2a\x26\x5b\x38\x37\x12\x4a\xe6\x2a\x82\xf2\xec\xc8\xac\x8f\x5c\xb4\x63\x8b\xc6\x06\x20\xb1\xfb\xfa\x14\x65\x63\xc7\xfb\xdc\xdb\x8e\x75\xdc\xb8\xf7\x70\xae\x77\x78\xe9\xe2\xb4\xc2\x3a\x77\x93\x3c\xaa\x23\x3c\xaa\x19\xb0\x03\x73\x47\x94\xa2\xdc\x8d\xbb\x87\x29\x21\xfb\xe8\xf9\xdb\x29\x42\xf9\x98\x18\x3c\xba\x96\xec\xf6\x2c\x3e\x60\x35\xd9\x47\xcd\xe3\x81\x62\xb2\x8f\x90\xcb\x47\x59\xc9\x07\x2d\x2b\xfb\x31\x30\xfa\x51\xaf\xe7\xa8\xb8\xec\x36\x85\x3d\x47\xb1\xfd\xe1\xcb\xca\x3e\xa4\x78\xe0\xf1\xf0\xea\xe7\xf6\x55\x77\xe8\x5b\x3c\x87\x16\x9e\x74\xaf\x6d\xdf\x72\x60\x6b\x01\x81\x2c\xeb\x0a\xd3\x6e\x3e\x12\x74\xe8\xfb\xb8\x75\xcd\xe9\x84\xf0\x61\xea\xcb\xfe\x29\x8a\xe6\x63\xd8\xf9\xc6\x14\x9a\x1d\x25\x77\x07\x2c\x35\xfb\xa8\x37\xb9\xaa\x53\x07\xf2\x31\xb1\x73\x37\x0f\x7d\x0f\x5b\x4f\x50\x78\xf6\x21\xd9\xfc\x2e\x5e\xa5\x2e\xd2\xda\x2d\xf5\xd8\x19\x65\x31\x1d\x7f\x1b\x99\x08\x07\x8a\xce\x46\x01\x09\x95\xa7\x23\xde\x2d\x1b\x6d\x3e\x9e\x1b\xc9\x47\x22\xaf\xc7\x2c\x5e\xfb\xa7\xb0\xfe\x29\xac\x9d\xda\xb5\x3b\x4b\xeb\xd1\xab\xe0\x3e\x9c\xb8\xc2\x6f\x51\x01\x59\xa8\x60\x3a\x22\x8c\xb6\xb7\x08\xee\xe6\xad\x95\xb1\xe7\xd1\x87\x54\x9c\xb2\x74\xe1\x83\x1b\x56\x80\x0b\x32\xa4\x78\xdd\xb9\xaa\xfd\x32\x88\xa0\x3e\x88\x90\x61\x71\xd5\x7d\x05\xec\x28\xa5\x6e\x1f\x58\xb6\xb0\x7a\x2c\x8a\x95\xaf\x18\x3f\xc8\xe2\x76\xa5\xdb\x0d\x12\xc5\x7e\x74\x74\x67\xfb\x0b\x13\xfc\x8c\x00\x8f\x2e\x43\xd7\x3e\x0a\x3d\x8d\xcf\xde\x26\x36\x1b\x23\xd9\x47\x05\x66\x33\x59\xc6\x89\x4b\xc7\x0a\xcc\xa6\xd8\xfa\x4e\x54\x76\xb8\x51\x63\xfb\x44\x65\x63\x50\x36\xa7\x61\x36\x42\x1d\x8c\xc9\x26\xc2\xd1\xdd\x96\x9f\x1c\xfd\x2c\xa3\xea\xbb\xdb\x07\x60\x13\x90\x56\xe4\x75\x3b\xc6\x39\x8a\xbe\xf6\xa3\x6e\x08\xbd\x6e\x8f\xe6\x91\x74\x82\x9c\xce\x2a\x8a\xbb\x4e\x47\xe8\xd2\x3e\x39\x1f\x77\x82\xae\xdb\x13\x3a\x44\xc4\x35\xc2\xdc\x62\x95\xec\x1c\x6c\x4d\xd8\x3f\x40\xa4\xf5\x9a\xbb\x78\x44\x2a\xdc\xce\x52\x24\x06\xe1\xea\x84\xd4\xbb\x34\x6e\xc5\x6a\xfb\xd0\x6b\x72\xa0\xf4\xdf\xbf\x5b\x88\xc3\x71\x19\xdd\xd0\x35\x36\x5b\xb9\xc1\x0f\xce\xee\x2e\xb3\x7d\x41\x31\x17\x9b\x32\xd7\x3f\xd4\xaa\xa9\x8e\xc7\xf1\x38\x92\xa6\x13\x84\x0b\xdd\xbc\x11\x83\x23\x05\xb2\x1d\x54\x54\x92\xa2\x1b\x0b\xae\x87\x83\xdc\x3e\xbf\x98\xb0\xb9\xbe\x21\xd2\xfa\x22\x64\x4f\x2f\x2e\x9e\x62\x24\x80\x16\xb5\xfb\x31\x04\x1a\xc9\xdc\x4a\xd1\xe6\xd8\x6f\xaf\xf2\x76\x90\xbb\x73\x3a\x9a\xa4\xe9\xd1\x18\x0b\x72\xb4\x24\xd9\xfd\x8a\x31\x1c\x48\xb9\x8d\x3f\x54\xef\x22\xe7\x27\x0a\x30\x3f\x82\xea\x1b\x12\xe2\x0f\x9f\x5f\x5c\xb8\x40\x32\x68\x5a\xb0\xd1\xc2\xdc\x45\x24\x01\x62\xfb\xb8\xbc\xef\x51\x19\x27\xbe\x7f\xd6\xfe\x1e\x92\xb7\x4d\x90\xf9\xce\xf2\x76\xe0\x08\xf3\x53\xee\xab\xef\x22\xeb\x29\x09\x9f\x74\x6e\xe6\x3d\xe2\x7f\xdb\x82\xe7\xcd\xd8\x5e\x7d\x88\xff\xe7\x1a\x7d\xc4\xfd\xd4\x4f\x28\x28\x27\x57\x55\xdd\x70\xf2\x3f\x86\xd6\xf2\xf1\xe5\xa9\x70\xd1\x06\x17\x12\x1a\xbc\x76\xc0\x0e\x6b\xc7\x16\x2f\xd6\x2b\x5f\x27\x28\x62\x73\x52\x19\x0e\xf9\xf7\xe3\xa3\x7c\xd7\x49\xf0\x9a\x10\x5f\x7e\x9a\xd8\xde\x5d\x8d\xc4\x20\x7d\xe3\xe2\x7c\x37\x7b\x05\x37\x6d\xae\xeb\x23\x7c\x77\x92\xcf\x03\x0a\x0f\x89\x8a\x17\x9d\x9d\x72\xe7\x1d\x90\x91\x6e\x99\x7d\x0e\x9e\xdb\xba\x65\x12\xb1\x71\x5e\x1a\x17\x1a\x3c\x34\xd7\xed\x73\xe7\x01\x22\xb8\x6a\x52\x47\xcd\x1e\x4e\x9a\x34\x51\x3e\x75\x68\xec\xec\xa4\xd9\x22\x45\x7e\xac\x93\x66\x63\x7e\xfc\xae\x4e\x9a\x74\xe9\x1d\xd1\x49\x43\xb2\x32\xd0\x8b\xab\xbd\x42\x7a\xfc\x32\x93\x44\xef\x40\x82\x03\xdc\x5a\xc9\x32\xe8\x15\x98\x8d\xfd\x55\x57\x1b\x4a\x02\xb9\x01\xc3\xe2\x71\xa4\xa5\x1b\x34\xab\x64\x09\x8b\x5a\xdc\xf0\x3a\x2f\x5c\xa3\x59\x35\x67\x3c\x52\x65\x84\x95\xf8\x20\x35\x6c\x46\x6b\xd0\x0b\xa8\xed\x14\x19\xd1\x96\xd3\xee\x48\x56\xfb\xf9\x31\xf4\xb4\xbb\x90\x63\xfd\x9d\x2a\xfb\xa8\x73\x5d\x4f\xe5\x9a\xcd\x27\x72\xa7\x0b\x06\x1a\xb7\x45\xeb\xa1\xd3\xa4\xce\x2e\x5f\x08\x17\x71\x30\xee\x17\x32\x5b\x78\xdf\x3b\xd7\x5a\x65\x32\x2c\xe1\x40\x44\x2c\xa2\x5e\x25\x9b\x1a\xee\x40\xa1\xe7\x27\xed\x18\xd1\xca\xdc\xca\x0d\xf5\xf4\xd9\x81\x24\x7a\x84\x77\xb1\x2b\x93\xeb\xed\xd9\x43\x08\x51\x8f\x8c\x6c\x92\x0f\x32\x42\xb6\x93\x91\x8e\x26\x49\xc5\xa3\xa5\x32\x7b\x45\xc4\x0c\xf3\xb5\x87\xa7\xa8\x31\x77\x70\x2f\xee\xae\xa8\x9c\xe7\x0b\x5d\x7a\xc1\xdd\x45\x89\x73\x07\x65\x7d\xe4\x59\xec\xf7\xc0\x1c\xd2\xbb\x78\x34\x99\xc1\x6f\x3b\x0d\x7a\x2f\x3e\x7c\xfe\xf9\x45\x4f\x1f\x84\x34\x11\xd1\x9f\x3c\xdc\x34\xf1\xf7\x81\xd4\xa0\x93\x0b\xa2\xf3\x35\xce\xd0\x12\x72\x72\x78\x02\x17\xcf\x01\x4a\xc0\xee\xb3\x08\x0e\x2c\xe9\x6d\xc9\xf6\x2e\xe5\x8f\x4c\xa2\x37\xc6\xe1\xf4\x19\x8f\xdb\x6d\xa2\x6b\x04\xb3\xb5\xf3\xf9\x93\x4f\xa4\x21\xb7\x96\x4c\xb4\xb6\x8e\x73\x1e\xdf\x4e\x00\xc9\x9f\x73\x78\xb9\x73\x8e\xa2\xfd\x8e\x51\xc7\x11\xb2\x6d\x7c\x84\x91\xd2\xeb\x44\x78\xb5\x65\x2b\x1c\xe8\x13\xf8\x07\x35\xab\x0e\xcc\xf8\x53\xa8\xa0\x44\x14\x0e\xeb\x37\x3c\xa5\xa0\xe0\x8e\xb9\x59\x3f\xe1\x34\xb7\xdb\x3c\x37\xc9\x10\xc0\x5c\x23\x47\x83\xc5\x26\x1e\x8b\x97\x70\x27\xe1\xdc\xbe\x0a\xc0\x5a\x01\xed\x71\x0b\x7a\x97\xe0\xb1\xd4\x94\x3d\x57\xf6\x49\xa0\x1e\x21\x82\xb2\xec\xba\xff\x22\xa1\xe8\x89\xb5\xef\x44\xa2\xb4\xa5\x6e\xa6\xb0\x3e\x6e\x4b\xfc\x74\xea\x06\xec\x95\xc1\x83\x31\xfb\xec\xba\x99\x5d\x71\xb3\xf8\x86\xbd\x15\x1c\xda\x9e\x3b\x1f\x25\x20\xc1\x43\xa5\x60\xe7\xef\x3e\x5b\xcb\xf2\x66\x06\xab\xf3\xb9\x51\x4b\x99\xb1\xfb\x5a\x9a\x6e\xf9\x5b\x2f\xd1\xf8\xb2\x0e\x47\xfa\x30\x18\x38\x86\x63\x5d\xb4\x9e\xf7\xc1\x5d\xe6\xdd\xca\x19\x2f\x71\xc1\x0f\x4e\xa8\xc7\x64\x86\x23\x3b\xbb\xe7\xdd\x16\xf8\xdc\xa1\xbb\x95\x81\x81\xb3\x82\x60\x50\xef\x91\xc9\xe5\x9d\xcc\x1b\x5e\x50\x06\x82\x2c\x23\xf4\xc7\x9c\xdb\x5d\x6d\x5d\x87\xcf\x47\xc4\x51\xdc\x81\x2c\x1d\xae\xa0\x31\xff\x3c\xf8\x9b\xda\x01\xee\x8f\x88\xe3\x18\x03\x5c\x68\xc5\x1a\x0d\x67\x11\x84\x03\x8f\xa0\x98\xb0\xd4\xd1\x65\x14\x5a\xbe\x72\xdb\x36\x19\x6b\x85\xc4\x5d\x98\x9c\x56\x50\xe2\x78\xd7\x13\x88\x8a\x1b\xee\x88\x6b\x3f\x9e\xd1\xbf\xe9\xea\x6f\xdf\x92\x1d\x95\xa5\x61\xb0\xe3\xf1\x34\x8c\xf1\x6f\xca\xd1\xc4\xa2\x39\x2a\x3b\x69\xa4\xe3\xf1\x92\x06\x68\x99\xe3\xc1\x8f\x7e\x38\x46\x12\x13\xc3\xed\xea\x71\x18\xf9\x1f\xff\x2f\x00\x00\xff\xff\xd3\xc8\x0d\x6b\xee\xa9\x02\x00") func testConformanceTestdataConformanceYamlBytes() ([]byte, error) { @@ -2222,6 +2261,26 @@ func testE2eTestingManifestsStatefulsetZookeeperStatefulsetYaml() (*asset, error return a, nil } +var _testE2eTestingManifestsStorageCsiOwners = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xac\x8d\x3d\x4e\x04\x31\x0c\x46\x7b\x9f\xc2\x12\xb5\x77\xa4\x15\xe2\x67\x7b\x5a\x90\xd8\x82\xda\x9a\x38\xd9\x0c\x83\x1d\xc5\x49\x66\xe0\xf4\x68\x0e\x40\x47\xf7\xe9\x7b\xd2\x7b\x77\x78\x15\xc1\x76\x13\x7c\xfb\x78\x7d\x79\xbf\x62\xb0\xd9\x91\x1b\xde\x5a\x2b\x7e\x99\xa6\x64\xa7\xcf\x27\x3f\x65\x9b\x6c\x53\xa9\x0e\xc0\xa5\x54\x1b\x52\xfd\x02\x84\xce\x1c\x88\xd7\x0c\x84\xd5\xac\x45\x07\xc2\xa4\x3d\x66\x09\x40\xb8\x64\x4d\x7b\x7f\x7e\x3c\xa6\x73\xac\xac\x02\x84\x5f\xce\xfd\xfe\x0c\x84\x81\x47\x0e\x3f\x0f\xe7\x83\xef\x59\x13\x7d\xb3\x26\xa8\x32\xb2\x6c\xff\xe1\x5f\x24\xc6\xc1\x3a\x1f\xe7\x6c\x45\x16\x53\x20\x1c\x52\xfb\xda\xfe\xcc\xff\x06\x00\x00\xff\xff\x17\x10\x88\x37\x12\x01\x00\x00") + +func testE2eTestingManifestsStorageCsiOwnersBytes() ([]byte, error) { + return bindataRead( + _testE2eTestingManifestsStorageCsiOwners, + "test/e2e/testing-manifests/storage-csi/OWNERS", + ) +} + +func testE2eTestingManifestsStorageCsiOwners() (*asset, error) { + bytes, err := testE2eTestingManifestsStorageCsiOwnersBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "test/e2e/testing-manifests/storage-csi/OWNERS", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + var _testE2eTestingManifestsStorageCsiControllerRoleYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xb4\x8f\xb1\x0e\xc2\x30\x0c\x44\x77\xbe\xc2\x52\x57\x5a\xef\xfd\x0c\xfe\xc0\x49\x0c\x89\x48\xe3\xc8\x76\x2b\xfa\xf7\x8c\xad\xc4\x02\x03\xeb\x9d\xee\xde\xdd\x00\x37\xee\x95\x22\x27\x08\x3b\x94\x96\xca\x56\xd2\x4a\x15\x54\x2a\x1b\xdc\x45\x81\x5f\xce\xda\xa8\x8e\xe4\x4e\x31\xb3\x5e\x0f\xa9\xab\x6c\xc5\x8a\x34\x56\xa0\x96\x0e\xc3\x1a\x75\xcb\xe2\xce\x3a\x5f\x06\x18\x21\xbb\x77\x9b\x11\x1f\xc5\xf3\x1a\xa6\x28\x0b\x3e\xd7\xc0\xda\xd8\xd9\xc6\x68\x05\x3f\x38\x18\xaa\x04\x5c\xc8\x9c\x15\x13\xf7\x2a\xfb\x29\x83\x1a\x28\x4e\x3b\x2d\xf5\xd7\xfe\xd3\xe8\x7f\x21\x4e\xf7\xbf\x45\xbc\x03\x00\x00\xff\xff\x7b\xf7\xef\xf6\x8a\x01\x00\x00") func testE2eTestingManifestsStorageCsiControllerRoleYamlBytes() ([]byte, error) { @@ -2762,6 +2821,26 @@ func testImagesMakefile() (*asset, error) { return a, nil } +var _testImagesOwners = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x6c\xcb\xb1\xae\xc2\x30\x0c\x85\xe1\x3d\x4f\x61\xe9\xce\xb7\x59\x51\x77\x56\x90\xe8\xc0\x88\x2c\x6a\xa5\xa1\x84\x44\x39\x76\x1b\xde\x1e\xa9\xdd\x10\xe3\x39\xfa\xfe\x3f\x1a\x44\x48\x27\xa1\xf3\xf5\x74\xbc\x0c\x34\xe6\x3b\x88\x95\x26\xd5\x82\xde\xfb\x90\xbb\xf9\x80\x2e\x66\x9f\xd7\x97\x54\x38\x57\x65\x89\xb2\x4a\x45\xef\x88\xfe\x29\xcd\x96\x58\x39\x6c\xe3\x61\x50\xb6\x60\x50\xc3\x76\x3c\x23\xb4\x39\x2e\xa5\xe6\xe5\x77\xb2\x0b\x49\x52\xa3\x1a\x6e\x5f\x34\xb6\xf1\xbd\x33\x6b\x0c\xf7\x09\x00\x00\xff\xff\x43\x1a\x75\x2a\xaf\x00\x00\x00") + +func testImagesOwnersBytes() ([]byte, error) { + return bindataRead( + _testImagesOwners, + "test/images/OWNERS", + ) +} + +func testImagesOwners() (*asset, error) { + bytes, err := testImagesOwnersBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "test/images/OWNERS", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + var _testImagesAgnhostGitignore = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x4a\x4c\xcf\xcb\xc8\x2f\x2e\xe1\x02\x04\x00\x00\xff\xff\x31\x3b\xba\x32\x08\x00\x00\x00") func testImagesAgnhostGitignoreBytes() ([]byte, error) { @@ -2862,6 +2941,26 @@ func testImagesAgnhostMakefile() (*asset, error) { return a, nil } +var _testImagesAgnhostOwners = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x4a\x2c\x28\x28\xca\x2f\x4b\x2d\x2a\xb6\xe2\x52\x50\xd0\x55\x48\xce\x49\x2c\x4d\xc9\x2c\x4d\x4a\xcd\x29\xe5\x02\x04\x00\x00\xff\xff\x9b\x12\xb6\xf7\x1b\x00\x00\x00") + +func testImagesAgnhostOwnersBytes() ([]byte, error) { + return bindataRead( + _testImagesAgnhostOwners, + "test/images/agnhost/OWNERS", + ) +} + +func testImagesAgnhostOwners() (*asset, error) { + bytes, err := testImagesAgnhostOwnersBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "test/images/agnhost/OWNERS", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + var _testImagesAgnhostVersion = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x32\xd2\x33\x32\xe5\x02\x04\x00\x00\xff\xff\xa0\xde\x25\x38\x05\x00\x00\x00") func testImagesAgnhostVersionBytes() ([]byte, error) { @@ -3962,6 +4061,26 @@ func testImagesApparmorLoaderMakefile() (*asset, error) { return a, nil } +var _testImagesApparmorLoaderOwners = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x4a\x2c\x28\x28\xca\x2f\x4b\x2d\x2a\xb6\xe2\x52\x50\xd0\x55\x48\xc9\xcc\x2d\xe6\x02\x04\x00\x00\xff\xff\xe2\x68\x65\xd7\x14\x00\x00\x00") + +func testImagesApparmorLoaderOwnersBytes() ([]byte, error) { + return bindataRead( + _testImagesApparmorLoaderOwners, + "test/images/apparmor-loader/OWNERS", + ) +} + +func testImagesApparmorLoaderOwners() (*asset, error) { + bytes, err := testImagesApparmorLoaderOwnersBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "test/images/apparmor-loader/OWNERS", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + var _testImagesApparmorLoaderVersion = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x32\xd4\x33\xe4\x02\x04\x00\x00\xff\xff\x9e\xc5\x88\x7d\x04\x00\x00\x00") func testImagesApparmorLoaderVersionBytes() ([]byte, error) { @@ -4142,6 +4261,26 @@ func testImagesBusyboxMakefile() (*asset, error) { return a, nil } +var _testImagesBusyboxOwners = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x4a\x2c\x28\x28\xca\x2f\x4b\x2d\x2a\xb6\xe2\x52\x50\xd0\x55\x48\xce\x49\x2c\x4d\xc9\x2c\x4d\x4a\xcd\x29\xe5\x02\x04\x00\x00\xff\xff\x9b\x12\xb6\xf7\x1b\x00\x00\x00") + +func testImagesBusyboxOwnersBytes() ([]byte, error) { + return bindataRead( + _testImagesBusyboxOwners, + "test/images/busybox/OWNERS", + ) +} + +func testImagesBusyboxOwners() (*asset, error) { + bytes, err := testImagesBusyboxOwnersBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "test/images/busybox/OWNERS", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + var _testImagesBusyboxVersion = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x32\xd4\x33\xb2\xe4\x02\x04\x00\x00\xff\xff\x7c\xeb\x30\xd3\x05\x00\x00\x00") func testImagesBusyboxVersionBytes() ([]byte, error) { @@ -4242,6 +4381,26 @@ func testImagesCudaVectorAddDockerfile() (*asset, error) { return a, nil } +var _testImagesCudaVectorAddOwners = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x4a\x2c\x28\x28\xca\x2f\x4b\x2d\x2a\xb6\xe2\x52\x50\xd0\x55\xc8\xca\x4c\xac\xcc\xcc\x4b\xaf\x02\x73\x72\xb3\x4b\x73\x13\x4b\x12\xd3\xb9\x00\x01\x00\x00\xff\xff\xa1\xc6\xdb\x43\x25\x00\x00\x00") + +func testImagesCudaVectorAddOwnersBytes() ([]byte, error) { + return bindataRead( + _testImagesCudaVectorAddOwners, + "test/images/cuda-vector-add/OWNERS", + ) +} + +func testImagesCudaVectorAddOwners() (*asset, error) { + bytes, err := testImagesCudaVectorAddOwnersBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "test/images/cuda-vector-add/OWNERS", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + var _testImagesCudaVectorAddVersion = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x32\xd2\x33\xe4\x02\x04\x00\x00\xff\xff\x70\x6a\x3d\x6f\x04\x00\x00\x00") func testImagesCudaVectorAddVersionBytes() ([]byte, error) { @@ -4322,6 +4481,26 @@ func testImagesEchoserverDockerfile_windows() (*asset, error) { return a, nil } +var _testImagesEchoserverOwners = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x4a\x2c\x28\x28\xca\x2f\x4b\x2d\x2a\xb6\xe2\x52\x50\xd0\x55\x48\xc9\xcc\x2d\xe6\x02\x04\x00\x00\xff\xff\xe2\x68\x65\xd7\x14\x00\x00\x00") + +func testImagesEchoserverOwnersBytes() ([]byte, error) { + return bindataRead( + _testImagesEchoserverOwners, + "test/images/echoserver/OWNERS", + ) +} + +func testImagesEchoserverOwners() (*asset, error) { + bytes, err := testImagesEchoserverOwnersBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "test/images/echoserver/OWNERS", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + var _testImagesEchoserverVersion = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x32\xd2\x33\xe6\x02\x04\x00\x00\xff\xff\xf2\x08\x0b\x5d\x04\x00\x00\x00") func testImagesEchoserverVersionBytes() ([]byte, error) { @@ -4562,6 +4741,26 @@ func testImagesJessieDnsutilsDockerfile_windows() (*asset, error) { return a, nil } +var _testImagesJessieDnsutilsOwners = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x4a\x2c\x28\x28\xca\x2f\x4b\x2d\x2a\xb6\xe2\x52\x50\xd0\x55\x48\xc9\xcc\x2d\x06\x33\x72\xb3\x4b\x73\x13\x4b\x12\xd3\xb9\x00\x01\x00\x00\xff\xff\x78\x0c\x5f\x33\x21\x00\x00\x00") + +func testImagesJessieDnsutilsOwnersBytes() ([]byte, error) { + return bindataRead( + _testImagesJessieDnsutilsOwners, + "test/images/jessie-dnsutils/OWNERS", + ) +} + +func testImagesJessieDnsutilsOwners() (*asset, error) { + bytes, err := testImagesJessieDnsutilsOwnersBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "test/images/jessie-dnsutils/OWNERS", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + var _testImagesJessieDnsutilsVersion = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x32\xd4\x33\xe6\x02\x04\x00\x00\xff\xff\x1c\xa7\xbe\x4f\x04\x00\x00\x00") func testImagesJessieDnsutilsVersionBytes() ([]byte, error) { @@ -4642,6 +4841,26 @@ func testImagesKittenDockerfile() (*asset, error) { return a, nil } +var _testImagesKittenOwners = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x4a\x2c\x28\x28\xca\x2f\x4b\x2d\x2a\xb6\xe2\x52\x50\xd0\x55\x48\xce\x49\x2c\x4d\xc9\x2c\x4d\x4a\xcd\x29\x05\xf3\x73\xb3\x4b\x73\x13\x4b\x12\xd3\xb9\x00\x01\x00\x00\xff\xff\xeb\x9e\xa3\x19\x28\x00\x00\x00") + +func testImagesKittenOwnersBytes() ([]byte, error) { + return bindataRead( + _testImagesKittenOwners, + "test/images/kitten/OWNERS", + ) +} + +func testImagesKittenOwners() (*asset, error) { + bytes, err := testImagesKittenOwnersBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "test/images/kitten/OWNERS", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + var _testImagesKittenVersion = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x32\xd4\x33\xe1\x02\x04\x00\x00\xff\xff\xdb\x31\xff\x00\x04\x00\x00\x00") func testImagesKittenVersionBytes() ([]byte, error) { @@ -4722,6 +4941,26 @@ func testImagesMetadataConcealmentMakefile() (*asset, error) { return a, nil } +var _testImagesMetadataConcealmentOwners = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x4a\x2c\x28\x28\xca\x2f\x4b\x2d\x2a\xb6\xe2\x52\x50\xd0\x55\x48\xc9\xcc\x2d\xe6\x02\x04\x00\x00\xff\xff\xe2\x68\x65\xd7\x14\x00\x00\x00") + +func testImagesMetadataConcealmentOwnersBytes() ([]byte, error) { + return bindataRead( + _testImagesMetadataConcealmentOwners, + "test/images/metadata-concealment/OWNERS", + ) +} + +func testImagesMetadataConcealmentOwners() (*asset, error) { + bytes, err := testImagesMetadataConcealmentOwnersBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "test/images/metadata-concealment/OWNERS", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + var _testImagesMetadataConcealmentVersion = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x32\xd4\x33\xe6\x02\x04\x00\x00\xff\xff\x1c\xa7\xbe\x4f\x04\x00\x00\x00") func testImagesMetadataConcealmentVersionBytes() ([]byte, error) { @@ -4802,6 +5041,26 @@ func testImagesNautilusDockerfile() (*asset, error) { return a, nil } +var _testImagesNautilusOwners = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x4a\x2c\x28\x28\xca\x2f\x4b\x2d\x2a\xb6\xe2\x52\x50\xd0\x55\x48\xce\x49\x2c\x4d\xc9\x2c\x4d\x4a\xcd\x29\x05\xf3\x73\xb3\x4b\x73\x13\x4b\x12\xd3\xb9\x00\x01\x00\x00\xff\xff\xeb\x9e\xa3\x19\x28\x00\x00\x00") + +func testImagesNautilusOwnersBytes() ([]byte, error) { + return bindataRead( + _testImagesNautilusOwners, + "test/images/nautilus/OWNERS", + ) +} + +func testImagesNautilusOwners() (*asset, error) { + bytes, err := testImagesNautilusOwnersBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "test/images/nautilus/OWNERS", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + var _testImagesNautilusVersion = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x32\xd4\x33\xe1\x02\x04\x00\x00\xff\xff\xdb\x31\xff\x00\x04\x00\x00\x00") func testImagesNautilusVersionBytes() ([]byte, error) { @@ -5102,6 +5361,26 @@ func testImagesNonewprivsMakefile() (*asset, error) { return a, nil } +var _testImagesNonewprivsOwners = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x4a\x2c\x28\x28\xca\x2f\x4b\x2d\x2a\xb6\xe2\x52\x50\xd0\x55\xc8\x4a\x2d\x2e\x4e\x2b\x4a\xac\x02\x73\x72\xb3\x4b\x73\x13\x4b\x12\xd3\xb9\x00\x01\x00\x00\xff\xff\x11\x31\x6a\x04\x25\x00\x00\x00") + +func testImagesNonewprivsOwnersBytes() ([]byte, error) { + return bindataRead( + _testImagesNonewprivsOwners, + "test/images/nonewprivs/OWNERS", + ) +} + +func testImagesNonewprivsOwners() (*asset, error) { + bytes, err := testImagesNonewprivsOwnersBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "test/images/nonewprivs/OWNERS", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + var _testImagesNonewprivsVersion = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x32\xd4\x33\xe2\x02\x04\x00\x00\xff\xff\x5d\x96\xa5\x56\x04\x00\x00\x00") func testImagesNonewprivsVersionBytes() ([]byte, error) { @@ -5202,6 +5481,26 @@ func testImagesNonrootDockerfile_windows() (*asset, error) { return a, nil } +var _testImagesNonrootOwners = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x4a\x2c\x28\x28\xca\x2f\x4b\x2d\x2a\xb6\xe2\x52\x50\xd0\x55\x28\x49\xcc\xc9\x49\xce\x49\xcc\x2c\xe2\x02\x04\x00\x00\xff\xff\x69\x7f\xf2\x61\x19\x00\x00\x00") + +func testImagesNonrootOwnersBytes() ([]byte, error) { + return bindataRead( + _testImagesNonrootOwners, + "test/images/nonroot/OWNERS", + ) +} + +func testImagesNonrootOwners() (*asset, error) { + bytes, err := testImagesNonrootOwnersBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "test/images/nonroot/OWNERS", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + var _testImagesNonrootVersion = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x32\xd4\x33\xe4\x02\x04\x00\x00\xff\xff\x9e\xc5\x88\x7d\x04\x00\x00\x00") func testImagesNonrootVersionBytes() ([]byte, error) { @@ -5622,6 +5921,26 @@ func testImagesRedisDockerfile_windows() (*asset, error) { return a, nil } +var _testImagesRedisOwners = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x4a\x2c\x28\x28\xca\x2f\x4b\x2d\x2a\xb6\xe2\x52\x50\xd0\x55\xc8\xcd\x2e\xcd\x4d\x2c\x49\x4c\xe7\x4a\xcd\x4d\x2d\xca\x2c\x29\x2d\x8e\x47\x53\x50\x94\x9b\x9b\x01\x08\x00\x00\xff\xff\x64\x89\x71\xde\x34\x00\x00\x00") + +func testImagesRedisOwnersBytes() ([]byte, error) { + return bindataRead( + _testImagesRedisOwners, + "test/images/redis/OWNERS", + ) +} + +func testImagesRedisOwners() (*asset, error) { + bytes, err := testImagesRedisOwnersBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "test/images/redis/OWNERS", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + var _testImagesRedisVersion = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x32\xd5\x33\xd0\x33\xd5\x4d\xcc\x29\xc8\xcc\x4b\xe5\x02\x04\x00\x00\xff\xff\xdd\xda\x14\xcc\x0d\x00\x00\x00") func testImagesRedisVersionBytes() ([]byte, error) { @@ -5722,6 +6041,26 @@ func testImagesRegressionIssue74839Makefile() (*asset, error) { return a, nil } +var _testImagesRegressionIssue74839Owners = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x4a\x2c\x28\x28\xca\x2f\x4b\x2d\x2a\xb6\xe2\x52\x50\xd0\x55\x48\xcc\x4b\x4b\x2d\xca\x4b\x4d\x85\x70\xf2\xb3\x52\x13\xb9\x00\x01\x00\x00\xff\xff\x00\x4e\x8b\xd3\x22\x00\x00\x00") + +func testImagesRegressionIssue74839OwnersBytes() ([]byte, error) { + return bindataRead( + _testImagesRegressionIssue74839Owners, + "test/images/regression-issue-74839/OWNERS", + ) +} + +func testImagesRegressionIssue74839Owners() (*asset, error) { + bytes, err := testImagesRegressionIssue74839OwnersBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "test/images/regression-issue-74839/OWNERS", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + var _testImagesRegressionIssue74839Version = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x32\xd4\x33\xe2\x02\x04\x00\x00\xff\xff\x5d\x96\xa5\x56\x04\x00\x00\x00") func testImagesRegressionIssue74839VersionBytes() ([]byte, error) { @@ -6082,6 +6421,26 @@ func testImagesSampleApiserverMakefile() (*asset, error) { return a, nil } +var _testImagesSampleApiserverOwners = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x4a\x2c\x28\x28\xca\x2f\x4b\x2d\x2a\xb6\xe2\x52\x50\xd0\x55\x48\xc9\xcc\x2d\xe6\x02\x04\x00\x00\xff\xff\xe2\x68\x65\xd7\x14\x00\x00\x00") + +func testImagesSampleApiserverOwnersBytes() ([]byte, error) { + return bindataRead( + _testImagesSampleApiserverOwners, + "test/images/sample-apiserver/OWNERS", + ) +} + +func testImagesSampleApiserverOwners() (*asset, error) { + bytes, err := testImagesSampleApiserverOwnersBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "test/images/sample-apiserver/OWNERS", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + var _testImagesSampleApiserverVersion = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x32\xd4\x33\x34\xd7\x33\xe6\x02\x04\x00\x00\xff\xff\x34\xa3\x0e\x79\x07\x00\x00\x00") func testImagesSampleApiserverVersionBytes() ([]byte, error) { @@ -6202,6 +6561,26 @@ func testImagesSampleDevicePluginSampledevicepluginGo() (*asset, error) { return a, nil } +var _testImagesVolumeOwners = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x4a\x2c\x28\x28\xca\x2f\x4b\x2d\x2a\xb6\xe2\x52\x50\xd0\x55\xc8\x2a\x4e\x4c\x2b\x4a\xcc\x4b\x05\x73\x72\xb3\x4b\x73\x13\x4b\x12\xd3\xb9\x00\x01\x00\x00\xff\xff\x2d\x3f\xb3\x41\x25\x00\x00\x00") + +func testImagesVolumeOwnersBytes() ([]byte, error) { + return bindataRead( + _testImagesVolumeOwners, + "test/images/volume/OWNERS", + ) +} + +func testImagesVolumeOwners() (*asset, error) { + bytes, err := testImagesVolumeOwnersBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "test/images/volume/OWNERS", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + var _testImagesVolumeGlusterBaseimage = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xca\xc9\xcc\x2b\xad\xd0\x4f\xcc\x4d\x31\x33\xb1\x4d\x4b\x4d\xc9\x2f\x4a\xb4\x32\xb2\xe0\x82\x8a\x16\xe5\x9a\x99\xd8\x82\xc9\x32\x0b\x7d\x74\xd9\x82\x82\x64\x33\x93\x9c\x54\x5b\x28\x8d\x24\x0f\x08\x00\x00\xff\xff\xc6\xfc\xc2\x5e\x54\x00\x00\x00") func testImagesVolumeGlusterBaseimageBytes() ([]byte, error) { @@ -7682,6 +8061,26 @@ func testFixturesDocYamlUserGuideWalkthroughPodtemplateJson() (*asset, error) { return a, nil } +var _testFixturesPkgKubectlOwners = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x54\xca\xb1\x0a\x02\x31\x0c\x00\xd0\x3d\x5f\x11\x70\xee\x75\x95\xdb\x5d\x15\xbc\xc1\x39\xd4\xd0\x06\xb5\x29\x49\x68\x7f\x5f\x70\x73\x7f\x27\x3c\x98\x31\x1a\xe3\xed\x71\xbd\xdc\x0f\x7c\x6a\x71\xa4\xc0\x16\x31\x7c\xcf\xb9\xea\xf6\x3a\xfb\x26\x9a\x75\x75\x36\x07\xa0\x31\x4c\x27\x9b\xef\x90\xd0\xa5\xa6\xf2\x96\xf4\x21\xe9\x41\xf2\x13\xc6\x53\x78\xfd\x03\xf8\x06\x00\x00\xff\xff\xf3\x7b\xef\xed\x69\x00\x00\x00") + +func testFixturesPkgKubectlOwnersBytes() ([]byte, error) { + return bindataRead( + _testFixturesPkgKubectlOwners, + "test/fixtures/pkg/kubectl/OWNERS", + ) +} + +func testFixturesPkgKubectlOwners() (*asset, error) { + bytes, err := testFixturesPkgKubectlOwnersBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "test/fixtures/pkg/kubectl/OWNERS", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + var _testFixturesPkgKubectlPluginsBarKubectlBar = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x52\x56\xd4\x4f\xca\xcc\xd3\x4f\x4a\x2c\xce\xe0\xe2\x4a\x4d\xce\xc8\x57\x50\xf2\x54\x48\xcc\x55\x28\xc8\x29\x4d\xcf\xcc\x53\x48\x4a\x2c\x52\x48\x4e\xcc\xc9\x49\x4d\x51\x28\xcf\x2c\xc9\x50\x48\x2c\x4a\x2f\x56\x50\x31\x50\x50\x71\x50\xe2\x02\x04\x00\x00\xff\xff\xb1\x1b\x02\xcf\x3b\x00\x00\x00") func testFixturesPkgKubectlPluginsBarKubectlBarBytes() ([]byte, error) { @@ -7814,6 +8213,7 @@ func AssetNames() []string { // _bindata is a table, holding each asset generator, mapped to its name. var _bindata = map[string]func() (*asset, error){ + "test/conformance/testdata/OWNERS": testConformanceTestdataOwners, "test/conformance/testdata/conformance.yaml": testConformanceTestdataConformanceYaml, "test/e2e/testing-manifests/flexvolume/attachable-with-long-mount": testE2eTestingManifestsFlexvolumeAttachableWithLongMount, "test/e2e/testing-manifests/flexvolume/dummy": testE2eTestingManifestsFlexvolumeDummy, @@ -7903,6 +8303,7 @@ var _bindata = map[string]func() (*asset, error){ "test/e2e/testing-manifests/statefulset/redis/statefulset.yaml": testE2eTestingManifestsStatefulsetRedisStatefulsetYaml, "test/e2e/testing-manifests/statefulset/zookeeper/service.yaml": testE2eTestingManifestsStatefulsetZookeeperServiceYaml, "test/e2e/testing-manifests/statefulset/zookeeper/statefulset.yaml": testE2eTestingManifestsStatefulsetZookeeperStatefulsetYaml, + "test/e2e/testing-manifests/storage-csi/OWNERS": testE2eTestingManifestsStorageCsiOwners, "test/e2e/testing-manifests/storage-csi/controller-role.yaml": testE2eTestingManifestsStorageCsiControllerRoleYaml, "test/e2e/testing-manifests/storage-csi/external-attacher/rbac.yaml": testE2eTestingManifestsStorageCsiExternalAttacherRbacYaml, "test/e2e/testing-manifests/storage-csi/external-provisioner/rbac.yaml": testE2eTestingManifestsStorageCsiExternalProvisionerRbacYaml, @@ -7930,11 +8331,13 @@ var _bindata = map[string]func() (*asset, error){ "test/e2e_node/testing-manifests/sriovdp-ds.yaml": testE2e_nodeTestingManifestsSriovdpDsYaml, "test/e2e_node/testing-manifests/sriovdp-sa.yaml": testE2e_nodeTestingManifestsSriovdpSaYaml, "test/images/Makefile": testImagesMakefile, + "test/images/OWNERS": testImagesOwners, "test/images/agnhost/.gitignore": testImagesAgnhostGitignore, "test/images/agnhost/BASEIMAGE": testImagesAgnhostBaseimage, "test/images/agnhost/Dockerfile": testImagesAgnhostDockerfile, "test/images/agnhost/Dockerfile_windows": testImagesAgnhostDockerfile_windows, "test/images/agnhost/Makefile": testImagesAgnhostMakefile, + "test/images/agnhost/OWNERS": testImagesAgnhostOwners, "test/images/agnhost/VERSION": testImagesAgnhostVersion, "test/images/agnhost/agnhost.go": testImagesAgnhostAgnhostGo, "test/images/agnhost/audit-proxy/main.go": testImagesAgnhostAuditProxyMainGo, @@ -7990,6 +8393,7 @@ var _bindata = map[string]func() (*asset, error){ "test/images/apparmor-loader/BASEIMAGE": testImagesApparmorLoaderBaseimage, "test/images/apparmor-loader/Dockerfile": testImagesApparmorLoaderDockerfile, "test/images/apparmor-loader/Makefile": testImagesApparmorLoaderMakefile, + "test/images/apparmor-loader/OWNERS": testImagesApparmorLoaderOwners, "test/images/apparmor-loader/VERSION": testImagesApparmorLoaderVersion, "test/images/apparmor-loader/example-configmap.yaml": testImagesApparmorLoaderExampleConfigmapYaml, "test/images/apparmor-loader/example-daemon.yaml": testImagesApparmorLoaderExampleDaemonYaml, @@ -7999,15 +8403,18 @@ var _bindata = map[string]func() (*asset, error){ "test/images/busybox/BASEIMAGE": testImagesBusyboxBaseimage, "test/images/busybox/Dockerfile_windows": testImagesBusyboxDockerfile_windows, "test/images/busybox/Makefile": testImagesBusyboxMakefile, + "test/images/busybox/OWNERS": testImagesBusyboxOwners, "test/images/busybox/VERSION": testImagesBusyboxVersion, "test/images/busybox/hostname.go": testImagesBusyboxHostnameGo, "test/images/cloudbuild.yaml": testImagesCloudbuildYaml, "test/images/cuda-vector-add/BASEIMAGE": testImagesCudaVectorAddBaseimage, "test/images/cuda-vector-add/Dockerfile": testImagesCudaVectorAddDockerfile, + "test/images/cuda-vector-add/OWNERS": testImagesCudaVectorAddOwners, "test/images/cuda-vector-add/VERSION": testImagesCudaVectorAddVersion, "test/images/echoserver/BASEIMAGE": testImagesEchoserverBaseimage, "test/images/echoserver/Dockerfile": testImagesEchoserverDockerfile, "test/images/echoserver/Dockerfile_windows": testImagesEchoserverDockerfile_windows, + "test/images/echoserver/OWNERS": testImagesEchoserverOwners, "test/images/echoserver/VERSION": testImagesEchoserverVersion, "test/images/echoserver/install-deps.sh": testImagesEchoserverInstallDepsSh, "test/images/echoserver/nginx.conf": testImagesEchoserverNginxConf, @@ -8020,18 +8427,22 @@ var _bindata = map[string]func() (*asset, error){ "test/images/jessie-dnsutils/BASEIMAGE": testImagesJessieDnsutilsBaseimage, "test/images/jessie-dnsutils/Dockerfile": testImagesJessieDnsutilsDockerfile, "test/images/jessie-dnsutils/Dockerfile_windows": testImagesJessieDnsutilsDockerfile_windows, + "test/images/jessie-dnsutils/OWNERS": testImagesJessieDnsutilsOwners, "test/images/jessie-dnsutils/VERSION": testImagesJessieDnsutilsVersion, "test/images/jessie-dnsutils/fixup-apt-list.sh": testImagesJessieDnsutilsFixupAptListSh, "test/images/kitten/BASEIMAGE": testImagesKittenBaseimage, "test/images/kitten/Dockerfile": testImagesKittenDockerfile, + "test/images/kitten/OWNERS": testImagesKittenOwners, "test/images/kitten/VERSION": testImagesKittenVersion, "test/images/kitten/html/data.json": testImagesKittenHtmlDataJson, "test/images/metadata-concealment/Dockerfile": testImagesMetadataConcealmentDockerfile, "test/images/metadata-concealment/Makefile": testImagesMetadataConcealmentMakefile, + "test/images/metadata-concealment/OWNERS": testImagesMetadataConcealmentOwners, "test/images/metadata-concealment/VERSION": testImagesMetadataConcealmentVersion, "test/images/metadata-concealment/check_metadata_concealment.go": testImagesMetadataConcealmentCheck_metadata_concealmentGo, "test/images/nautilus/BASEIMAGE": testImagesNautilusBaseimage, "test/images/nautilus/Dockerfile": testImagesNautilusDockerfile, + "test/images/nautilus/OWNERS": testImagesNautilusOwners, "test/images/nautilus/VERSION": testImagesNautilusVersion, "test/images/nautilus/html/data.json": testImagesNautilusHtmlDataJson, "test/images/node-perf/npb-ep/BASEIMAGE": testImagesNodePerfNpbEpBaseimage, @@ -8047,11 +8458,13 @@ var _bindata = map[string]func() (*asset, error){ "test/images/nonewprivs/BASEIMAGE": testImagesNonewprivsBaseimage, "test/images/nonewprivs/Dockerfile": testImagesNonewprivsDockerfile, "test/images/nonewprivs/Makefile": testImagesNonewprivsMakefile, + "test/images/nonewprivs/OWNERS": testImagesNonewprivsOwners, "test/images/nonewprivs/VERSION": testImagesNonewprivsVersion, "test/images/nonewprivs/nnp.go": testImagesNonewprivsNnpGo, "test/images/nonroot/BASEIMAGE": testImagesNonrootBaseimage, "test/images/nonroot/Dockerfile": testImagesNonrootDockerfile, "test/images/nonroot/Dockerfile_windows": testImagesNonrootDockerfile_windows, + "test/images/nonroot/OWNERS": testImagesNonrootOwners, "test/images/nonroot/VERSION": testImagesNonrootVersion, "test/images/pets/peer-finder/BASEIMAGE": testImagesPetsPeerFinderBaseimage, "test/images/pets/peer-finder/Dockerfile": testImagesPetsPeerFinderDockerfile, @@ -8073,11 +8486,13 @@ var _bindata = map[string]func() (*asset, error){ "test/images/redis/BASEIMAGE": testImagesRedisBaseimage, "test/images/redis/Dockerfile": testImagesRedisDockerfile, "test/images/redis/Dockerfile_windows": testImagesRedisDockerfile_windows, + "test/images/redis/OWNERS": testImagesRedisOwners, "test/images/redis/VERSION": testImagesRedisVersion, "test/images/redis/redis.conf": testImagesRedisRedisConf, "test/images/regression-issue-74839/.gitignore": testImagesRegressionIssue74839Gitignore, "test/images/regression-issue-74839/Dockerfile": testImagesRegressionIssue74839Dockerfile, "test/images/regression-issue-74839/Makefile": testImagesRegressionIssue74839Makefile, + "test/images/regression-issue-74839/OWNERS": testImagesRegressionIssue74839Owners, "test/images/regression-issue-74839/VERSION": testImagesRegressionIssue74839Version, "test/images/regression-issue-74839/main.go": testImagesRegressionIssue74839MainGo, "test/images/regression-issue-74839/tcp.go": testImagesRegressionIssue74839TcpGo, @@ -8096,12 +8511,14 @@ var _bindata = map[string]func() (*asset, error){ "test/images/sample-apiserver/Dockerfile": testImagesSampleApiserverDockerfile, "test/images/sample-apiserver/Dockerfile_windows": testImagesSampleApiserverDockerfile_windows, "test/images/sample-apiserver/Makefile": testImagesSampleApiserverMakefile, + "test/images/sample-apiserver/OWNERS": testImagesSampleApiserverOwners, "test/images/sample-apiserver/VERSION": testImagesSampleApiserverVersion, "test/images/sample-device-plugin/BASEIMAGE": testImagesSampleDevicePluginBaseimage, "test/images/sample-device-plugin/Dockerfile": testImagesSampleDevicePluginDockerfile, "test/images/sample-device-plugin/Makefile": testImagesSampleDevicePluginMakefile, "test/images/sample-device-plugin/VERSION": testImagesSampleDevicePluginVersion, "test/images/sample-device-plugin/sampledeviceplugin.go": testImagesSampleDevicePluginSampledevicepluginGo, + "test/images/volume/OWNERS": testImagesVolumeOwners, "test/images/volume/gluster/BASEIMAGE": testImagesVolumeGlusterBaseimage, "test/images/volume/gluster/Dockerfile": testImagesVolumeGlusterDockerfile, "test/images/volume/gluster/VERSION": testImagesVolumeGlusterVersion, @@ -8176,6 +8593,7 @@ var _bindata = map[string]func() (*asset, error){ "test/fixtures/doc-yaml/user-guide/update-demo/kitten-rc.yaml.in": testFixturesDocYamlUserGuideUpdateDemoKittenRcYamlIn, "test/fixtures/doc-yaml/user-guide/update-demo/nautilus-rc.yaml.in": testFixturesDocYamlUserGuideUpdateDemoNautilusRcYamlIn, "test/fixtures/doc-yaml/user-guide/walkthrough/podtemplate.json": testFixturesDocYamlUserGuideWalkthroughPodtemplateJson, + "test/fixtures/pkg/kubectl/OWNERS": testFixturesPkgKubectlOwners, "test/fixtures/pkg/kubectl/plugins/bar/kubectl-bar": testFixturesPkgKubectlPluginsBarKubectlBar, "test/fixtures/pkg/kubectl/plugins/foo/kubectl-foo": testFixturesPkgKubectlPluginsFooKubectlFoo, "test/fixtures/pkg/kubectl/plugins/kubectl-foo": testFixturesPkgKubectlPluginsKubectlFoo, @@ -8226,6 +8644,7 @@ var _bintree = &bintree{nil, map[string]*bintree{ "test": {nil, map[string]*bintree{ "conformance": {nil, map[string]*bintree{ "testdata": {nil, map[string]*bintree{ + "OWNERS": {testConformanceTestdataOwners, map[string]*bintree{}}, "conformance.yaml": {testConformanceTestdataConformanceYaml, map[string]*bintree{}}, }}, }}, @@ -8374,6 +8793,7 @@ var _bintree = &bintree{nil, map[string]*bintree{ }}, }}, "storage-csi": {nil, map[string]*bintree{ + "OWNERS": {testE2eTestingManifestsStorageCsiOwners, map[string]*bintree{}}, "controller-role.yaml": {testE2eTestingManifestsStorageCsiControllerRoleYaml, map[string]*bintree{}}, "external-attacher": {nil, map[string]*bintree{ "rbac.yaml": {testE2eTestingManifestsStorageCsiExternalAttacherRbacYaml, map[string]*bintree{}}, @@ -8511,6 +8931,7 @@ var _bintree = &bintree{nil, map[string]*bintree{ }}, "pkg": {nil, map[string]*bintree{ "kubectl": {nil, map[string]*bintree{ + "OWNERS": {testFixturesPkgKubectlOwners, map[string]*bintree{}}, "plugins": {nil, map[string]*bintree{ "bar": {nil, map[string]*bintree{ "kubectl-bar": {testFixturesPkgKubectlPluginsBarKubectlBar, map[string]*bintree{}}, @@ -8528,12 +8949,14 @@ var _bintree = &bintree{nil, map[string]*bintree{ }}, "images": {nil, map[string]*bintree{ "Makefile": {testImagesMakefile, map[string]*bintree{}}, + "OWNERS": {testImagesOwners, map[string]*bintree{}}, "agnhost": {nil, map[string]*bintree{ ".gitignore": {testImagesAgnhostGitignore, map[string]*bintree{}}, "BASEIMAGE": {testImagesAgnhostBaseimage, map[string]*bintree{}}, "Dockerfile": {testImagesAgnhostDockerfile, map[string]*bintree{}}, "Dockerfile_windows": {testImagesAgnhostDockerfile_windows, map[string]*bintree{}}, "Makefile": {testImagesAgnhostMakefile, map[string]*bintree{}}, + "OWNERS": {testImagesAgnhostOwners, map[string]*bintree{}}, "VERSION": {testImagesAgnhostVersion, map[string]*bintree{}}, "agnhost.go": {testImagesAgnhostAgnhostGo, map[string]*bintree{}}, "audit-proxy": {nil, map[string]*bintree{ @@ -8645,6 +9068,7 @@ var _bintree = &bintree{nil, map[string]*bintree{ "BASEIMAGE": {testImagesApparmorLoaderBaseimage, map[string]*bintree{}}, "Dockerfile": {testImagesApparmorLoaderDockerfile, map[string]*bintree{}}, "Makefile": {testImagesApparmorLoaderMakefile, map[string]*bintree{}}, + "OWNERS": {testImagesApparmorLoaderOwners, map[string]*bintree{}}, "VERSION": {testImagesApparmorLoaderVersion, map[string]*bintree{}}, "example-configmap.yaml": {testImagesApparmorLoaderExampleConfigmapYaml, map[string]*bintree{}}, "example-daemon.yaml": {testImagesApparmorLoaderExampleDaemonYaml, map[string]*bintree{}}, @@ -8656,6 +9080,7 @@ var _bintree = &bintree{nil, map[string]*bintree{ "BASEIMAGE": {testImagesBusyboxBaseimage, map[string]*bintree{}}, "Dockerfile_windows": {testImagesBusyboxDockerfile_windows, map[string]*bintree{}}, "Makefile": {testImagesBusyboxMakefile, map[string]*bintree{}}, + "OWNERS": {testImagesBusyboxOwners, map[string]*bintree{}}, "VERSION": {testImagesBusyboxVersion, map[string]*bintree{}}, "hostname.go": {testImagesBusyboxHostnameGo, map[string]*bintree{}}, }}, @@ -8663,12 +9088,14 @@ var _bintree = &bintree{nil, map[string]*bintree{ "cuda-vector-add": {nil, map[string]*bintree{ "BASEIMAGE": {testImagesCudaVectorAddBaseimage, map[string]*bintree{}}, "Dockerfile": {testImagesCudaVectorAddDockerfile, map[string]*bintree{}}, + "OWNERS": {testImagesCudaVectorAddOwners, map[string]*bintree{}}, "VERSION": {testImagesCudaVectorAddVersion, map[string]*bintree{}}, }}, "echoserver": {nil, map[string]*bintree{ "BASEIMAGE": {testImagesEchoserverBaseimage, map[string]*bintree{}}, "Dockerfile": {testImagesEchoserverDockerfile, map[string]*bintree{}}, "Dockerfile_windows": {testImagesEchoserverDockerfile_windows, map[string]*bintree{}}, + "OWNERS": {testImagesEchoserverOwners, map[string]*bintree{}}, "VERSION": {testImagesEchoserverVersion, map[string]*bintree{}}, "install-deps.sh": {testImagesEchoserverInstallDepsSh, map[string]*bintree{}}, "nginx.conf": {testImagesEchoserverNginxConf, map[string]*bintree{}}, @@ -8685,12 +9112,14 @@ var _bintree = &bintree{nil, map[string]*bintree{ "BASEIMAGE": {testImagesJessieDnsutilsBaseimage, map[string]*bintree{}}, "Dockerfile": {testImagesJessieDnsutilsDockerfile, map[string]*bintree{}}, "Dockerfile_windows": {testImagesJessieDnsutilsDockerfile_windows, map[string]*bintree{}}, + "OWNERS": {testImagesJessieDnsutilsOwners, map[string]*bintree{}}, "VERSION": {testImagesJessieDnsutilsVersion, map[string]*bintree{}}, "fixup-apt-list.sh": {testImagesJessieDnsutilsFixupAptListSh, map[string]*bintree{}}, }}, "kitten": {nil, map[string]*bintree{ "BASEIMAGE": {testImagesKittenBaseimage, map[string]*bintree{}}, "Dockerfile": {testImagesKittenDockerfile, map[string]*bintree{}}, + "OWNERS": {testImagesKittenOwners, map[string]*bintree{}}, "VERSION": {testImagesKittenVersion, map[string]*bintree{}}, "html": {nil, map[string]*bintree{ "data.json": {testImagesKittenHtmlDataJson, map[string]*bintree{}}, @@ -8699,12 +9128,14 @@ var _bintree = &bintree{nil, map[string]*bintree{ "metadata-concealment": {nil, map[string]*bintree{ "Dockerfile": {testImagesMetadataConcealmentDockerfile, map[string]*bintree{}}, "Makefile": {testImagesMetadataConcealmentMakefile, map[string]*bintree{}}, + "OWNERS": {testImagesMetadataConcealmentOwners, map[string]*bintree{}}, "VERSION": {testImagesMetadataConcealmentVersion, map[string]*bintree{}}, "check_metadata_concealment.go": {testImagesMetadataConcealmentCheck_metadata_concealmentGo, map[string]*bintree{}}, }}, "nautilus": {nil, map[string]*bintree{ "BASEIMAGE": {testImagesNautilusBaseimage, map[string]*bintree{}}, "Dockerfile": {testImagesNautilusDockerfile, map[string]*bintree{}}, + "OWNERS": {testImagesNautilusOwners, map[string]*bintree{}}, "VERSION": {testImagesNautilusVersion, map[string]*bintree{}}, "html": {nil, map[string]*bintree{ "data.json": {testImagesNautilusHtmlDataJson, map[string]*bintree{}}, @@ -8732,6 +9163,7 @@ var _bintree = &bintree{nil, map[string]*bintree{ "BASEIMAGE": {testImagesNonewprivsBaseimage, map[string]*bintree{}}, "Dockerfile": {testImagesNonewprivsDockerfile, map[string]*bintree{}}, "Makefile": {testImagesNonewprivsMakefile, map[string]*bintree{}}, + "OWNERS": {testImagesNonewprivsOwners, map[string]*bintree{}}, "VERSION": {testImagesNonewprivsVersion, map[string]*bintree{}}, "nnp.go": {testImagesNonewprivsNnpGo, map[string]*bintree{}}, }}, @@ -8739,6 +9171,7 @@ var _bintree = &bintree{nil, map[string]*bintree{ "BASEIMAGE": {testImagesNonrootBaseimage, map[string]*bintree{}}, "Dockerfile": {testImagesNonrootDockerfile, map[string]*bintree{}}, "Dockerfile_windows": {testImagesNonrootDockerfile_windows, map[string]*bintree{}}, + "OWNERS": {testImagesNonrootOwners, map[string]*bintree{}}, "VERSION": {testImagesNonrootVersion, map[string]*bintree{}}, }}, "pets": {nil, map[string]*bintree{ @@ -8770,6 +9203,7 @@ var _bintree = &bintree{nil, map[string]*bintree{ "BASEIMAGE": {testImagesRedisBaseimage, map[string]*bintree{}}, "Dockerfile": {testImagesRedisDockerfile, map[string]*bintree{}}, "Dockerfile_windows": {testImagesRedisDockerfile_windows, map[string]*bintree{}}, + "OWNERS": {testImagesRedisOwners, map[string]*bintree{}}, "VERSION": {testImagesRedisVersion, map[string]*bintree{}}, "redis.conf": {testImagesRedisRedisConf, map[string]*bintree{}}, }}, @@ -8777,6 +9211,7 @@ var _bintree = &bintree{nil, map[string]*bintree{ ".gitignore": {testImagesRegressionIssue74839Gitignore, map[string]*bintree{}}, "Dockerfile": {testImagesRegressionIssue74839Dockerfile, map[string]*bintree{}}, "Makefile": {testImagesRegressionIssue74839Makefile, map[string]*bintree{}}, + "OWNERS": {testImagesRegressionIssue74839Owners, map[string]*bintree{}}, "VERSION": {testImagesRegressionIssue74839Version, map[string]*bintree{}}, "main.go": {testImagesRegressionIssue74839MainGo, map[string]*bintree{}}, "tcp.go": {testImagesRegressionIssue74839TcpGo, map[string]*bintree{}}, @@ -8803,6 +9238,7 @@ var _bintree = &bintree{nil, map[string]*bintree{ "Dockerfile": {testImagesSampleApiserverDockerfile, map[string]*bintree{}}, "Dockerfile_windows": {testImagesSampleApiserverDockerfile_windows, map[string]*bintree{}}, "Makefile": {testImagesSampleApiserverMakefile, map[string]*bintree{}}, + "OWNERS": {testImagesSampleApiserverOwners, map[string]*bintree{}}, "VERSION": {testImagesSampleApiserverVersion, map[string]*bintree{}}, }}, "sample-device-plugin": {nil, map[string]*bintree{ @@ -8813,6 +9249,7 @@ var _bintree = &bintree{nil, map[string]*bintree{ "sampledeviceplugin.go": {testImagesSampleDevicePluginSampledevicepluginGo, map[string]*bintree{}}, }}, "volume": {nil, map[string]*bintree{ + "OWNERS": {testImagesVolumeOwners, map[string]*bintree{}}, "gluster": {nil, map[string]*bintree{ "BASEIMAGE": {testImagesVolumeGlusterBaseimage, map[string]*bintree{}}, "Dockerfile": {testImagesVolumeGlusterDockerfile, map[string]*bintree{}}, diff --git a/vendor/k8s.io/kubernetes/test/e2e/instrumentation/OWNERS b/vendor/k8s.io/kubernetes/test/e2e/instrumentation/OWNERS new file mode 100644 index 000000000000..58bbcca63f8b --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/e2e/instrumentation/OWNERS @@ -0,0 +1,14 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- fabxc +- sig-instrumentation-approvers +- x13n +- kawych +emeritus_approvers: +- piosz +- fgrzadkowski +reviewers: +- sig-instrumentation-reviewers +labels: +- sig/instrumentation diff --git a/vendor/k8s.io/kubernetes/test/e2e/instrumentation/logging/OWNERS b/vendor/k8s.io/kubernetes/test/e2e/instrumentation/logging/OWNERS new file mode 100644 index 000000000000..26ba09f7f230 --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/e2e/instrumentation/logging/OWNERS @@ -0,0 +1,10 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- coffeepac +- monotek +- sig-instrumentation-approvers +reviewers: +- sig-instrumentation-reviewers +labels: +- sig/instrumentation diff --git a/vendor/k8s.io/kubernetes/test/e2e/kubectl/OWNERS b/vendor/k8s.io/kubernetes/test/e2e/kubectl/OWNERS new file mode 100644 index 000000000000..a00fbf29eebc --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/e2e/kubectl/OWNERS @@ -0,0 +1,8 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- sig-cli-maintainers +reviewers: +- sig-cli +labels: +- sig/cli diff --git a/vendor/k8s.io/kubernetes/test/e2e/lifecycle/OWNERS b/vendor/k8s.io/kubernetes/test/e2e/lifecycle/OWNERS new file mode 100644 index 000000000000..ee0b4ac89cdb --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/e2e/lifecycle/OWNERS @@ -0,0 +1,24 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- luxas +- timothysc +- fabriziopandini +- neolit123 +- rosti +- ereslibre +reviewers: +- luxas +- timothysc +- fabriziopandini +- neolit123 +- kad +- detiber +- dixudx +- rosti +- yagonobre +- ereslibre +- SataQiu +- yastij +labels: +- sig/cluster-lifecycle diff --git a/vendor/k8s.io/kubernetes/test/e2e/network/OWNERS b/vendor/k8s.io/kubernetes/test/e2e/network/OWNERS new file mode 100644 index 000000000000..b60b6256bb98 --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/e2e/network/OWNERS @@ -0,0 +1,8 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: + - sig-network-reviewers +approvers: + - sig-network-approvers +labels: + - sig/network diff --git a/vendor/k8s.io/kubernetes/test/e2e/node/OWNERS b/vendor/k8s.io/kubernetes/test/e2e/node/OWNERS new file mode 100644 index 000000000000..b894efe2ce45 --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/e2e/node/OWNERS @@ -0,0 +1,17 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- Random-Liu +- derekwaynecarr +- tallclair +- yujuhong +- sjenning +- mrunalp +emeritus_approvers: +- vishh +- dchen1107 +- dashpole +reviewers: +- sig-node-reviewers +labels: +- sig/node \ No newline at end of file diff --git a/vendor/k8s.io/kubernetes/test/e2e/scheduling/OWNERS b/vendor/k8s.io/kubernetes/test/e2e/scheduling/OWNERS new file mode 100644 index 000000000000..485eb202d988 --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/e2e/scheduling/OWNERS @@ -0,0 +1,8 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- sig-scheduling-maintainers +reviewers: +- sig-scheduling +labels: +- sig/scheduling diff --git a/vendor/k8s.io/kubernetes/test/e2e/storage/OWNERS b/vendor/k8s.io/kubernetes/test/e2e/storage/OWNERS new file mode 100644 index 000000000000..fa0acb53e350 --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/e2e/storage/OWNERS @@ -0,0 +1,25 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- saad-ali +- rootfs +- gnufied +- jingxu97 +- jsafrane +- msau42 +- davidz627 +- xing-yang +reviewers: +- saad-ali +- rootfs +- gnufied +- jingxu97 +- jsafrane +- msau42 +- jeffvance +- copejon +- verult +- davidz627 +- xing-yang +labels: +- sig/storage diff --git a/vendor/k8s.io/kubernetes/test/e2e/storage/pd.go b/vendor/k8s.io/kubernetes/test/e2e/storage/pd.go index f5b6060a834b..5f684680195f 100644 --- a/vendor/k8s.io/kubernetes/test/e2e/storage/pd.go +++ b/vendor/k8s.io/kubernetes/test/e2e/storage/pd.go @@ -29,7 +29,6 @@ import ( "github.com/aws/aws-sdk-go/aws/session" "github.com/aws/aws-sdk-go/service/ec2" "github.com/onsi/ginkgo" - "github.com/onsi/gomega" v1 "k8s.io/api/core/v1" policyv1beta1 "k8s.io/api/policy/v1beta1" "k8s.io/apimachinery/pkg/api/resource" @@ -84,7 +83,9 @@ var _ = utils.SIGDescribe("Pod Disks", func() { var err error nodes, err = e2enode.GetReadySchedulableNodes(cs) framework.ExpectNoError(err) - gomega.Expect(len(nodes.Items)).To(gomega.BeNumerically(">=", minNodes), fmt.Sprintf("Requires at least %d nodes", minNodes)) + if len(nodes.Items) < minNodes { + e2eskipper.Skipf("The test requires %d schedulable nodes, got only %d", minNodes, len(nodes.Items)) + } host0Name = types.NodeName(nodes.Items[0].ObjectMeta.Name) host1Name = types.NodeName(nodes.Items[1].ObjectMeta.Name) }) diff --git a/vendor/k8s.io/kubernetes/test/e2e/upgrades/apps/OWNERS b/vendor/k8s.io/kubernetes/test/e2e/upgrades/apps/OWNERS new file mode 100644 index 000000000000..938e26b5eed6 --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/e2e/upgrades/apps/OWNERS @@ -0,0 +1,8 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- sig-apps-approvers +reviewers: +- sig-apps-reviewers +labels: +- sig/apps diff --git a/vendor/k8s.io/kubernetes/test/integration/etcd/OWNERS b/vendor/k8s.io/kubernetes/test/integration/etcd/OWNERS new file mode 100644 index 000000000000..d92d32ac6596 --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/integration/etcd/OWNERS @@ -0,0 +1,8 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- enj +reviewers: +- deads2k +- liggitt +- enj diff --git a/vendor/k8s.io/kubernetes/test/utils/image/OWNERS b/vendor/k8s.io/kubernetes/test/utils/image/OWNERS new file mode 100644 index 000000000000..6f2c11b955b0 --- /dev/null +++ b/vendor/k8s.io/kubernetes/test/utils/image/OWNERS @@ -0,0 +1,13 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: + - justaugustus + - luxas + - mkumatag + - listx +approvers: + - luxas + - mkumatag + - listx +emeritus_approvers: + - ixdy diff --git a/vendor/k8s.io/legacy-cloud-providers/aws/OWNERS b/vendor/k8s.io/legacy-cloud-providers/aws/OWNERS new file mode 100644 index 000000000000..091c62914c32 --- /dev/null +++ b/vendor/k8s.io/legacy-cloud-providers/aws/OWNERS @@ -0,0 +1,19 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- justinsb +- gnufied +- jsafrane +- micahhausler +- m00nf1sh +reviewers: +- gnufied +- jsafrane +- justinsb +- chrislovecnm +- nckturner +- micahhausler +- m00nf1sh +emeritus_approvers: +- zmerlynn +- mcrute diff --git a/vendor/k8s.io/legacy-cloud-providers/azure/OWNERS b/vendor/k8s.io/legacy-cloud-providers/azure/OWNERS new file mode 100644 index 000000000000..7ec0f8ac2434 --- /dev/null +++ b/vendor/k8s.io/legacy-cloud-providers/azure/OWNERS @@ -0,0 +1,19 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- andyzhangx +- brendandburns +- feiskyer +- karataliu +- khenidak +- nilo19 +reviewers: +- andyzhangx +- aramase +- brendandburns +- feiskyer +- justaugustus +- karataliu +- khenidak +- ritazh +- nilo19 diff --git a/vendor/k8s.io/legacy-cloud-providers/gce/OWNERS b/vendor/k8s.io/legacy-cloud-providers/gce/OWNERS new file mode 100644 index 000000000000..b1c2f63c96b4 --- /dev/null +++ b/vendor/k8s.io/legacy-cloud-providers/gce/OWNERS @@ -0,0 +1,9 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- saad-ali +- jingxu97 +- bowei +- freehan +- mrhohn +- cheftako diff --git a/vendor/k8s.io/legacy-cloud-providers/openstack/OWNERS b/vendor/k8s.io/legacy-cloud-providers/openstack/OWNERS new file mode 100644 index 000000000000..e8856d16e94e --- /dev/null +++ b/vendor/k8s.io/legacy-cloud-providers/openstack/OWNERS @@ -0,0 +1,12 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- anguslees +- NickrenREN +- dims +- FengyunPan2 +reviewers: +- anguslees +- NickrenREN +- dims +- FengyunPan2 diff --git a/vendor/k8s.io/legacy-cloud-providers/vsphere/OWNERS b/vendor/k8s.io/legacy-cloud-providers/vsphere/OWNERS new file mode 100644 index 000000000000..0d7fc1af3026 --- /dev/null +++ b/vendor/k8s.io/legacy-cloud-providers/vsphere/OWNERS @@ -0,0 +1,17 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: +- baludontu +- divyenpatel +- frapposelli +- dougm +- SandeepPissay +reviewers: +- baludontu +- divyenpatel +- frapposelli +- dougm +- SandeepPissay +emeritus_approvers: +- imkin +- abrarshivani diff --git a/vendor/k8s.io/legacy-cloud-providers/vsphere/nodemanager.go b/vendor/k8s.io/legacy-cloud-providers/vsphere/nodemanager.go index 42c87c8f9b35..04c49a1aba37 100644 --- a/vendor/k8s.io/legacy-cloud-providers/vsphere/nodemanager.go +++ b/vendor/k8s.io/legacy-cloud-providers/vsphere/nodemanager.go @@ -311,6 +311,17 @@ func (nm *NodeManager) GetNodeDetails() ([]NodeDetails, error) { return nodeDetails, nil } +// GetNodeNames returns list of nodes that are known to vsphere cloudprovider. +// These are typically nodes that make up k8s cluster. +func (nm *NodeManager) GetNodeNames() []k8stypes.NodeName { + nodes := nm.getNodes() + var nodeNameList []k8stypes.NodeName + for _, node := range nodes { + nodeNameList = append(nodeNameList, k8stypes.NodeName(node.Name)) + } + return nodeNameList +} + func (nm *NodeManager) refreshNodes() (errList []error) { for nodeName := range nm.getNodes() { nodeInfo, err := nm.getRefreshedNodeInfo(convertToK8sType(nodeName)) diff --git a/vendor/k8s.io/legacy-cloud-providers/vsphere/vsphere.go b/vendor/k8s.io/legacy-cloud-providers/vsphere/vsphere.go index f1b81844398a..83337adc7c20 100644 --- a/vendor/k8s.io/legacy-cloud-providers/vsphere/vsphere.go +++ b/vendor/k8s.io/legacy-cloud-providers/vsphere/vsphere.go @@ -1221,9 +1221,15 @@ func (vs *VSphere) DisksAreAttached(nodeVolumes map[k8stypes.NodeName][]string) } } + klog.V(4).Infof("DisksAreAttached successfully executed. result: %+v", attached) + // There could be nodes in cluster which do not have any pods with vsphere volumes running on them + // such nodes won't be part of nodeVolumes map because attach-detach controller does not keep track + // such nodes. But such nodes may still have dangling volumes on them and hence we need to scan all the + // remaining nodes which weren't scanned by code previously. + vs.BuildMissingVolumeNodeMap(ctx) // any volume which we could not verify will be removed from the map. vs.vsphereVolumeMap.RemoveUnverified() - klog.V(4).Infof("DisksAreAttach successfully executed. result: %+v", attached) + klog.V(4).Infof("current node volume map is: %+v", vs.vsphereVolumeMap.volumeNodeMap) return disksAttached, nil } requestTime := time.Now() diff --git a/vendor/k8s.io/legacy-cloud-providers/vsphere/vsphere_util.go b/vendor/k8s.io/legacy-cloud-providers/vsphere/vsphere_util.go index b297113771d8..c0d474ab5577 100644 --- a/vendor/k8s.io/legacy-cloud-providers/vsphere/vsphere_util.go +++ b/vendor/k8s.io/legacy-cloud-providers/vsphere/vsphere_util.go @@ -26,6 +26,7 @@ import ( "os" "path/filepath" "strings" + "sync" "time" "github.com/vmware/govmomi/find" @@ -608,6 +609,123 @@ func (vs *VSphere) checkDiskAttached(ctx context.Context, nodes []k8stypes.NodeN return nodesToRetry, nil } +// BuildMissingVolumeNodeMap builds a map of volumes and nodes which are not known to attach detach controller. +// There could be nodes in cluster which do not have any pods with vsphere volumes running on them +// such nodes won't be part of disk verification check because attach-detach controller does not keep track +// such nodes. But such nodes may still have dangling volumes on them and hence we need to scan all the +// remaining nodes which weren't scanned by code previously. +func (vs *VSphere) BuildMissingVolumeNodeMap(ctx context.Context) { + nodeNames := vs.nodeManager.GetNodeNames() + // Segregate nodes according to VC-DC + dcNodes := make(map[string][]k8stypes.NodeName) + + for _, nodeName := range nodeNames { + // if given node is not in node volume map + if !vs.vsphereVolumeMap.CheckForNode(nodeName) { + nodeInfo, err := vs.nodeManager.GetNodeInfo(nodeName) + if err != nil { + klog.V(4).Infof("Failed to get node info: %+v. err: %+v", nodeInfo.vm, err) + continue + } + vcDC := nodeInfo.vcServer + nodeInfo.dataCenter.String() + dcNodes[vcDC] = append(dcNodes[vcDC], nodeName) + } + } + + var wg sync.WaitGroup + + for _, nodeNames := range dcNodes { + // Start go routines per VC-DC to check disks are attached + wg.Add(1) + go func(nodes []k8stypes.NodeName) { + err := vs.checkNodeDisks(ctx, nodeNames) + if err != nil { + klog.Errorf("Failed to check disk attached for nodes: %+v. err: %+v", nodes, err) + } + wg.Done() + }(nodeNames) + } + wg.Wait() +} + +func (vs *VSphere) checkNodeDisks(ctx context.Context, nodeNames []k8stypes.NodeName) error { + var vmList []*vclib.VirtualMachine + var nodeInfo NodeInfo + var err error + + for _, nodeName := range nodeNames { + nodeInfo, err = vs.nodeManager.GetNodeInfo(nodeName) + if err != nil { + return err + } + vmList = append(vmList, nodeInfo.vm) + } + + // Making sure session is valid + _, err = vs.getVSphereInstanceForServer(nodeInfo.vcServer, ctx) + if err != nil { + return err + } + + // If any of the nodes are not present property collector query will fail for entire operation + vmMoList, err := nodeInfo.dataCenter.GetVMMoList(ctx, vmList, []string{"config.hardware.device", "name", "config.uuid"}) + if err != nil { + if vclib.IsManagedObjectNotFoundError(err) { + klog.V(4).Infof("checkNodeDisks: ManagedObjectNotFound for property collector query for nodes: %+v vms: %+v", nodeNames, vmList) + // Property Collector Query failed + // VerifyVolumePaths per VM + for _, nodeName := range nodeNames { + nodeInfo, err := vs.nodeManager.GetNodeInfo(nodeName) + if err != nil { + return err + } + devices, err := nodeInfo.vm.VirtualMachine.Device(ctx) + if err != nil { + if vclib.IsManagedObjectNotFoundError(err) { + klog.V(4).Infof("checkNodeDisks: ManagedObjectNotFound for Kubernetes node: %s with vSphere Virtual Machine reference: %v", nodeName, nodeInfo.vm) + continue + } + return err + } + klog.V(4).Infof("Verifying Volume Paths by devices for node %s and VM %s", nodeName, nodeInfo.vm) + vs.vsphereVolumeMap.Add(nodeName, devices) + } + return nil + } + return err + } + + vmMoMap := make(map[string]mo.VirtualMachine) + for _, vmMo := range vmMoList { + if vmMo.Config == nil { + klog.Errorf("Config is not available for VM: %q", vmMo.Name) + continue + } + klog.V(9).Infof("vmMoMap vmname: %q vmuuid: %s", vmMo.Name, strings.ToLower(vmMo.Config.Uuid)) + vmMoMap[strings.ToLower(vmMo.Config.Uuid)] = vmMo + } + + klog.V(9).Infof("vmMoMap: +%v", vmMoMap) + + for _, nodeName := range nodeNames { + node, err := vs.nodeManager.GetNode(nodeName) + if err != nil { + return err + } + nodeUUID, err := GetNodeUUID(&node) + if err != nil { + klog.Errorf("Node Discovery failed to get node uuid for node %s with error: %v", node.Name, err) + return err + } + nodeUUID = strings.ToLower(nodeUUID) + klog.V(9).Infof("Verifying volume for node %s with nodeuuid %q: %v", nodeName, nodeUUID, vmMoMap) + vmMo := vmMoMap[nodeUUID] + vmDevices := object.VirtualDeviceList(vmMo.Config.Hardware.Device) + vs.vsphereVolumeMap.Add(nodeName, vmDevices) + } + return nil +} + func (vs *VSphere) GetNodeNameFromProviderID(providerID string) (string, error) { var nodeName string nodes, err := vs.nodeManager.GetNodeDetails() diff --git a/vendor/k8s.io/legacy-cloud-providers/vsphere/vsphere_volume_map.go b/vendor/k8s.io/legacy-cloud-providers/vsphere/vsphere_volume_map.go index 737e5a0d2487..6895bf902804 100644 --- a/vendor/k8s.io/legacy-cloud-providers/vsphere/vsphere_volume_map.go +++ b/vendor/k8s.io/legacy-cloud-providers/vsphere/vsphere_volume_map.go @@ -36,12 +36,14 @@ type nodeVolumeStatus struct { // VsphereVolumeMap stores last known state of node and volume mapping type VsphereVolumeMap struct { volumeNodeMap map[volumePath]nodeVolumeStatus + nodeMap map[k8stypes.NodeName]bool lock sync.RWMutex } func NewVsphereVolumeMap() *VsphereVolumeMap { return &VsphereVolumeMap{ volumeNodeMap: map[volumePath]nodeVolumeStatus{}, + nodeMap: map[k8stypes.NodeName]bool{}, } } @@ -54,6 +56,9 @@ func (vsphereVolume *VsphereVolumeMap) StartDiskVerification() { v.verified = false vsphereVolume.volumeNodeMap[k] = v } + // reset nodeMap to empty so that any node we could not verify via usual verification process + // can still be verified. + vsphereVolume.nodeMap = map[k8stypes.NodeName]bool{} } // CheckForVolume verifies if disk is attached to some node in the cluster. @@ -69,6 +74,16 @@ func (vsphereVolume *VsphereVolumeMap) CheckForVolume(path string) (k8stypes.Nod return "", false } +// CheckForNode returns true if given node has already been processed by volume +// verification mechanism. This is used to skip verifying attached disks on nodes +// which were previously verified. +func (vsphereVolume *VsphereVolumeMap) CheckForNode(nodeName k8stypes.NodeName) bool { + vsphereVolume.lock.RLock() + defer vsphereVolume.lock.RUnlock() + _, ok := vsphereVolume.nodeMap[nodeName] + return ok +} + // Add all devices found on a node to the device map func (vsphereVolume *VsphereVolumeMap) Add(node k8stypes.NodeName, vmDevices object.VirtualDeviceList) { vsphereVolume.lock.Lock() @@ -79,6 +94,7 @@ func (vsphereVolume *VsphereVolumeMap) Add(node k8stypes.NodeName, vmDevices obj if backing, ok := virtualDevice.Backing.(*types.VirtualDiskFlatVer2BackingInfo); ok { filename := volumePath(backing.FileName) vsphereVolume.volumeNodeMap[filename] = nodeVolumeStatus{node, true} + vsphereVolume.nodeMap[node] = true } } } @@ -91,6 +107,7 @@ func (vsphereVolume *VsphereVolumeMap) RemoveUnverified() { for k, v := range vsphereVolume.volumeNodeMap { if !v.verified { delete(vsphereVolume.volumeNodeMap, k) + delete(vsphereVolume.nodeMap, v.nodeName) } } } diff --git a/vendor/k8s.io/mount-utils/OWNERS b/vendor/k8s.io/mount-utils/OWNERS new file mode 100644 index 000000000000..5fa5cc24c378 --- /dev/null +++ b/vendor/k8s.io/mount-utils/OWNERS @@ -0,0 +1,14 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: + - jingxu97 + - saad-ali + - jsafrane + - msau42 + - andyzhangx + - gnufied +approvers: + - jingxu97 + - saad-ali + - jsafrane + diff --git a/vendor/modules.txt b/vendor/modules.txt index 62089f2acb58..8764e0ea3305 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -1378,7 +1378,7 @@ gopkg.in/warnings.v0 gopkg.in/yaml.v2 # gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c gopkg.in/yaml.v3 -# k8s.io/api v0.20.0 => github.com/openshift/kubernetes/staging/src/k8s.io/api v0.0.0-20210107082038-74cd459bbb9c +# k8s.io/api v0.20.0 => github.com/openshift/kubernetes/staging/src/k8s.io/api v0.0.0-20210203062721-e761892b6e0f ## explicit k8s.io/api/admission/v1 k8s.io/api/admission/v1beta1 @@ -1426,7 +1426,7 @@ k8s.io/api/scheduling/v1beta1 k8s.io/api/storage/v1 k8s.io/api/storage/v1alpha1 k8s.io/api/storage/v1beta1 -# k8s.io/apiextensions-apiserver v0.20.0 => github.com/openshift/kubernetes/staging/src/k8s.io/apiextensions-apiserver v0.0.0-20210107082038-74cd459bbb9c +# k8s.io/apiextensions-apiserver v0.20.0 => github.com/openshift/kubernetes/staging/src/k8s.io/apiextensions-apiserver v0.0.0-20210203062721-e761892b6e0f ## explicit k8s.io/apiextensions-apiserver/pkg/apihelpers k8s.io/apiextensions-apiserver/pkg/apis/apiextensions @@ -1470,7 +1470,7 @@ k8s.io/apiextensions-apiserver/pkg/registry/customresource/tableconvertor k8s.io/apiextensions-apiserver/pkg/registry/customresourcedefinition k8s.io/apiextensions-apiserver/test/integration k8s.io/apiextensions-apiserver/test/integration/fixtures -# k8s.io/apimachinery v0.20.0 => github.com/openshift/kubernetes/staging/src/k8s.io/apimachinery v0.0.0-20210107082038-74cd459bbb9c +# k8s.io/apimachinery v0.20.0 => github.com/openshift/kubernetes/staging/src/k8s.io/apimachinery v0.0.0-20210203062721-e761892b6e0f ## explicit k8s.io/apimachinery/pkg/api/apitesting k8s.io/apimachinery/pkg/api/equality @@ -1534,7 +1534,7 @@ k8s.io/apimachinery/pkg/watch k8s.io/apimachinery/third_party/forked/golang/json k8s.io/apimachinery/third_party/forked/golang/netutil k8s.io/apimachinery/third_party/forked/golang/reflect -# k8s.io/apiserver v0.20.0 => github.com/openshift/kubernetes/staging/src/k8s.io/apiserver v0.0.0-20210107082038-74cd459bbb9c +# k8s.io/apiserver v0.20.0 => github.com/openshift/kubernetes/staging/src/k8s.io/apiserver v0.0.0-20210203062721-e761892b6e0f ## explicit k8s.io/apiserver/pkg/admission k8s.io/apiserver/pkg/admission/configuration @@ -1675,7 +1675,7 @@ k8s.io/apiserver/plugin/pkg/audit/webhook k8s.io/apiserver/plugin/pkg/authenticator/token/oidc k8s.io/apiserver/plugin/pkg/authenticator/token/webhook k8s.io/apiserver/plugin/pkg/authorizer/webhook -# k8s.io/cli-runtime v0.20.0 => github.com/openshift/kubernetes/staging/src/k8s.io/cli-runtime v0.0.0-20210107082038-74cd459bbb9c +# k8s.io/cli-runtime v0.20.0 => github.com/openshift/kubernetes/staging/src/k8s.io/cli-runtime v0.0.0-20210203062721-e761892b6e0f ## explicit k8s.io/cli-runtime/pkg/genericclioptions k8s.io/cli-runtime/pkg/kustomize @@ -1689,7 +1689,7 @@ k8s.io/cli-runtime/pkg/kustomize/k8sdeps/transformer/patch k8s.io/cli-runtime/pkg/kustomize/k8sdeps/validator k8s.io/cli-runtime/pkg/printers k8s.io/cli-runtime/pkg/resource -# k8s.io/client-go v0.20.0 => github.com/openshift/kubernetes/staging/src/k8s.io/client-go v0.0.0-20210107082038-74cd459bbb9c +# k8s.io/client-go v0.20.0 => github.com/openshift/kubernetes/staging/src/k8s.io/client-go v0.0.0-20210203062721-e761892b6e0f ## explicit k8s.io/client-go/discovery k8s.io/client-go/discovery/cached @@ -1940,7 +1940,7 @@ k8s.io/client-go/util/jsonpath k8s.io/client-go/util/keyutil k8s.io/client-go/util/retry k8s.io/client-go/util/workqueue -# k8s.io/cloud-provider v0.0.0 => github.com/openshift/kubernetes/staging/src/k8s.io/cloud-provider v0.0.0-20210107082038-74cd459bbb9c +# k8s.io/cloud-provider v0.0.0 => github.com/openshift/kubernetes/staging/src/k8s.io/cloud-provider v0.0.0-20210203062721-e761892b6e0f k8s.io/cloud-provider k8s.io/cloud-provider/api k8s.io/cloud-provider/node/helpers @@ -1948,12 +1948,12 @@ k8s.io/cloud-provider/service/helpers k8s.io/cloud-provider/volume k8s.io/cloud-provider/volume/errors k8s.io/cloud-provider/volume/helpers -# k8s.io/cluster-bootstrap v0.0.0 => github.com/openshift/kubernetes/staging/src/k8s.io/cluster-bootstrap v0.0.0-20210107082038-74cd459bbb9c +# k8s.io/cluster-bootstrap v0.0.0 => github.com/openshift/kubernetes/staging/src/k8s.io/cluster-bootstrap v0.0.0-20210203062721-e761892b6e0f k8s.io/cluster-bootstrap/token/api k8s.io/cluster-bootstrap/token/util k8s.io/cluster-bootstrap/util/secrets k8s.io/cluster-bootstrap/util/tokens -# k8s.io/component-base v0.20.0 => github.com/openshift/kubernetes/staging/src/k8s.io/component-base v0.0.0-20210107082038-74cd459bbb9c +# k8s.io/component-base v0.20.0 => github.com/openshift/kubernetes/staging/src/k8s.io/component-base v0.0.0-20210203062721-e761892b6e0f ## explicit k8s.io/component-base/cli/flag k8s.io/component-base/cli/globalflag @@ -1976,25 +1976,25 @@ k8s.io/component-base/metrics/testutil k8s.io/component-base/term k8s.io/component-base/version k8s.io/component-base/version/verflag -# k8s.io/component-helpers v0.0.0 => github.com/openshift/kubernetes/staging/src/k8s.io/component-helpers v0.0.0-20210107082038-74cd459bbb9c +# k8s.io/component-helpers v0.0.0 => github.com/openshift/kubernetes/staging/src/k8s.io/component-helpers v0.0.0-20210203062721-e761892b6e0f ## explicit k8s.io/component-helpers/apimachinery/lease k8s.io/component-helpers/auth/rbac/reconciliation k8s.io/component-helpers/auth/rbac/validation k8s.io/component-helpers/scheduling/corev1 k8s.io/component-helpers/scheduling/corev1/nodeaffinity -# k8s.io/controller-manager v0.0.0 => github.com/openshift/kubernetes/staging/src/k8s.io/controller-manager v0.0.0-20210107082038-74cd459bbb9c +# k8s.io/controller-manager v0.0.0 => github.com/openshift/kubernetes/staging/src/k8s.io/controller-manager v0.0.0-20210203062721-e761892b6e0f k8s.io/controller-manager/pkg/clientbuilder -# k8s.io/cri-api v0.0.0 => github.com/openshift/kubernetes/staging/src/k8s.io/cri-api v0.0.0-20210107082038-74cd459bbb9c +# k8s.io/cri-api v0.0.0 => github.com/openshift/kubernetes/staging/src/k8s.io/cri-api v0.0.0-20210203062721-e761892b6e0f k8s.io/cri-api/pkg/apis k8s.io/cri-api/pkg/apis/runtime/v1alpha2 -# k8s.io/csi-translation-lib v0.0.0 => github.com/openshift/kubernetes/staging/src/k8s.io/csi-translation-lib v0.0.0-20210107082038-74cd459bbb9c +# k8s.io/csi-translation-lib v0.0.0 => github.com/openshift/kubernetes/staging/src/k8s.io/csi-translation-lib v0.0.0-20210203062721-e761892b6e0f k8s.io/csi-translation-lib k8s.io/csi-translation-lib/plugins # k8s.io/klog/v2 v2.4.0 ## explicit k8s.io/klog/v2 -# k8s.io/kube-aggregator v0.20.0 => github.com/openshift/kubernetes/staging/src/k8s.io/kube-aggregator v0.0.0-20210107082038-74cd459bbb9c +# k8s.io/kube-aggregator v0.20.0 => github.com/openshift/kubernetes/staging/src/k8s.io/kube-aggregator v0.0.0-20210203062721-e761892b6e0f k8s.io/kube-aggregator/pkg/apis/apiregistration k8s.io/kube-aggregator/pkg/apis/apiregistration/install k8s.io/kube-aggregator/pkg/apis/apiregistration/v1 @@ -2038,11 +2038,11 @@ k8s.io/kube-openapi/pkg/validation/spec k8s.io/kube-openapi/pkg/validation/strfmt k8s.io/kube-openapi/pkg/validation/strfmt/bson k8s.io/kube-openapi/pkg/validation/validate -# k8s.io/kube-proxy v0.0.0 => github.com/openshift/kubernetes/staging/src/k8s.io/kube-proxy v0.0.0-20210107082038-74cd459bbb9c +# k8s.io/kube-proxy v0.0.0 => github.com/openshift/kubernetes/staging/src/k8s.io/kube-proxy v0.0.0-20210203062721-e761892b6e0f k8s.io/kube-proxy/config/v1alpha1 -# k8s.io/kube-scheduler v0.0.0 => github.com/openshift/kubernetes/staging/src/k8s.io/kube-scheduler v0.0.0-20210107082038-74cd459bbb9c +# k8s.io/kube-scheduler v0.0.0 => github.com/openshift/kubernetes/staging/src/k8s.io/kube-scheduler v0.0.0-20210203062721-e761892b6e0f k8s.io/kube-scheduler/extender/v1 -# k8s.io/kubectl v0.20.0 => github.com/openshift/kubernetes/staging/src/k8s.io/kubectl v0.0.0-20210107082038-74cd459bbb9c +# k8s.io/kubectl v0.20.0 => github.com/openshift/kubernetes/staging/src/k8s.io/kubectl v0.0.0-20210203062721-e761892b6e0f ## explicit k8s.io/kubectl/pkg/apps k8s.io/kubectl/pkg/cmd/util @@ -2066,7 +2066,7 @@ k8s.io/kubectl/pkg/util/storage k8s.io/kubectl/pkg/util/templates k8s.io/kubectl/pkg/util/term k8s.io/kubectl/pkg/validation -# k8s.io/kubelet v0.20.0 => github.com/openshift/kubernetes/staging/src/k8s.io/kubelet v0.0.0-20210107082038-74cd459bbb9c +# k8s.io/kubelet v0.20.0 => github.com/openshift/kubernetes/staging/src/k8s.io/kubelet v0.0.0-20210203062721-e761892b6e0f ## explicit k8s.io/kubelet/config/v1alpha1 k8s.io/kubelet/config/v1beta1 @@ -2078,7 +2078,7 @@ k8s.io/kubelet/pkg/apis/pluginregistration/v1 k8s.io/kubelet/pkg/apis/podresources/v1 k8s.io/kubelet/pkg/apis/podresources/v1alpha1 k8s.io/kubelet/pkg/apis/stats/v1alpha1 -# k8s.io/kubernetes v1.20.0 => github.com/openshift/kubernetes v1.20.1-0.20210122163130-70dd98e24b4d +# k8s.io/kubernetes v1.20.0 => github.com/openshift/kubernetes v1.20.1-0.20210203062721-e761892b6e0f ## explicit k8s.io/kubernetes/cmd/kube-apiserver/app k8s.io/kubernetes/cmd/kube-apiserver/app/options @@ -2816,7 +2816,7 @@ k8s.io/kubernetes/third_party/forked/gonum/graph k8s.io/kubernetes/third_party/forked/gonum/graph/internal/linear k8s.io/kubernetes/third_party/forked/gonum/graph/simple k8s.io/kubernetes/third_party/forked/gonum/graph/traverse -# k8s.io/legacy-cloud-providers v0.20.0 => github.com/openshift/kubernetes/staging/src/k8s.io/legacy-cloud-providers v0.0.0-20210107082038-74cd459bbb9c +# k8s.io/legacy-cloud-providers v0.20.0 => github.com/openshift/kubernetes/staging/src/k8s.io/legacy-cloud-providers v0.0.0-20210203062721-e761892b6e0f ## explicit k8s.io/legacy-cloud-providers/aws k8s.io/legacy-cloud-providers/azure @@ -2859,7 +2859,7 @@ k8s.io/legacy-cloud-providers/openstack k8s.io/legacy-cloud-providers/vsphere k8s.io/legacy-cloud-providers/vsphere/vclib k8s.io/legacy-cloud-providers/vsphere/vclib/diskmanagers -# k8s.io/metrics v0.0.0 => github.com/openshift/kubernetes/staging/src/k8s.io/metrics v0.0.0-20210107082038-74cd459bbb9c +# k8s.io/metrics v0.0.0 => github.com/openshift/kubernetes/staging/src/k8s.io/metrics v0.0.0-20210203062721-e761892b6e0f k8s.io/metrics/pkg/apis/custom_metrics k8s.io/metrics/pkg/apis/custom_metrics/v1beta1 k8s.io/metrics/pkg/apis/custom_metrics/v1beta2 @@ -2868,9 +2868,9 @@ k8s.io/metrics/pkg/apis/external_metrics/v1beta1 k8s.io/metrics/pkg/client/custom_metrics k8s.io/metrics/pkg/client/custom_metrics/scheme k8s.io/metrics/pkg/client/external_metrics -# k8s.io/mount-utils v0.0.0 => github.com/openshift/kubernetes/staging/src/k8s.io/mount-utils v0.0.0-20210107082038-74cd459bbb9c +# k8s.io/mount-utils v0.0.0 => github.com/openshift/kubernetes/staging/src/k8s.io/mount-utils v0.0.0-20210203062721-e761892b6e0f k8s.io/mount-utils -# k8s.io/sample-apiserver v0.0.0 => github.com/openshift/kubernetes/staging/src/k8s.io/sample-apiserver v0.0.0-20210107082038-74cd459bbb9c +# k8s.io/sample-apiserver v0.0.0 => github.com/openshift/kubernetes/staging/src/k8s.io/sample-apiserver v0.0.0-20210203062721-e761892b6e0f k8s.io/sample-apiserver/pkg/apis/wardle k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1 # k8s.io/utils v0.0.0-20201110183641-67b214c5f920 @@ -2928,34 +2928,34 @@ sigs.k8s.io/yaml # github.com/openshift/apiserver-library-go => github.com/openshift/apiserver-library-go v0.0.0-20201214145556-6f1013f42f98 # github.com/openshift/client-go => github.com/openshift/client-go v0.0.0-20201214125552-e615e336eb49 # github.com/openshift/library-go => github.com/openshift/library-go v0.0.0-20201214135256-d265f469e75b -# k8s.io/api => github.com/openshift/kubernetes/staging/src/k8s.io/api v0.0.0-20210107082038-74cd459bbb9c -# k8s.io/apiextensions-apiserver => github.com/openshift/kubernetes/staging/src/k8s.io/apiextensions-apiserver v0.0.0-20210107082038-74cd459bbb9c -# k8s.io/apimachinery => github.com/openshift/kubernetes/staging/src/k8s.io/apimachinery v0.0.0-20210107082038-74cd459bbb9c -# k8s.io/apiserver => github.com/openshift/kubernetes/staging/src/k8s.io/apiserver v0.0.0-20210107082038-74cd459bbb9c -# k8s.io/cli-runtime => github.com/openshift/kubernetes/staging/src/k8s.io/cli-runtime v0.0.0-20210107082038-74cd459bbb9c -# k8s.io/client-go => github.com/openshift/kubernetes/staging/src/k8s.io/client-go v0.0.0-20210107082038-74cd459bbb9c -# k8s.io/cloud-provider => github.com/openshift/kubernetes/staging/src/k8s.io/cloud-provider v0.0.0-20210107082038-74cd459bbb9c -# k8s.io/cluster-bootstrap => github.com/openshift/kubernetes/staging/src/k8s.io/cluster-bootstrap v0.0.0-20210107082038-74cd459bbb9c -# k8s.io/code-generator => github.com/openshift/kubernetes/staging/src/k8s.io/code-generator v0.0.0-20210107082038-74cd459bbb9c -# k8s.io/component-base => github.com/openshift/kubernetes/staging/src/k8s.io/component-base v0.0.0-20210107082038-74cd459bbb9c -# k8s.io/component-helpers => github.com/openshift/kubernetes/staging/src/k8s.io/component-helpers v0.0.0-20210107082038-74cd459bbb9c -# k8s.io/controller-manager => github.com/openshift/kubernetes/staging/src/k8s.io/controller-manager v0.0.0-20210107082038-74cd459bbb9c -# k8s.io/cri-api => github.com/openshift/kubernetes/staging/src/k8s.io/cri-api v0.0.0-20210107082038-74cd459bbb9c -# k8s.io/csi-translation-lib => github.com/openshift/kubernetes/staging/src/k8s.io/csi-translation-lib v0.0.0-20210107082038-74cd459bbb9c +# k8s.io/api => github.com/openshift/kubernetes/staging/src/k8s.io/api v0.0.0-20210203062721-e761892b6e0f +# k8s.io/apiextensions-apiserver => github.com/openshift/kubernetes/staging/src/k8s.io/apiextensions-apiserver v0.0.0-20210203062721-e761892b6e0f +# k8s.io/apimachinery => github.com/openshift/kubernetes/staging/src/k8s.io/apimachinery v0.0.0-20210203062721-e761892b6e0f +# k8s.io/apiserver => github.com/openshift/kubernetes/staging/src/k8s.io/apiserver v0.0.0-20210203062721-e761892b6e0f +# k8s.io/cli-runtime => github.com/openshift/kubernetes/staging/src/k8s.io/cli-runtime v0.0.0-20210203062721-e761892b6e0f +# k8s.io/client-go => github.com/openshift/kubernetes/staging/src/k8s.io/client-go v0.0.0-20210203062721-e761892b6e0f +# k8s.io/cloud-provider => github.com/openshift/kubernetes/staging/src/k8s.io/cloud-provider v0.0.0-20210203062721-e761892b6e0f +# k8s.io/cluster-bootstrap => github.com/openshift/kubernetes/staging/src/k8s.io/cluster-bootstrap v0.0.0-20210203062721-e761892b6e0f +# k8s.io/code-generator => github.com/openshift/kubernetes/staging/src/k8s.io/code-generator v0.0.0-20210203062721-e761892b6e0f +# k8s.io/component-base => github.com/openshift/kubernetes/staging/src/k8s.io/component-base v0.0.0-20210203062721-e761892b6e0f +# k8s.io/component-helpers => github.com/openshift/kubernetes/staging/src/k8s.io/component-helpers v0.0.0-20210203062721-e761892b6e0f +# k8s.io/controller-manager => github.com/openshift/kubernetes/staging/src/k8s.io/controller-manager v0.0.0-20210203062721-e761892b6e0f +# k8s.io/cri-api => github.com/openshift/kubernetes/staging/src/k8s.io/cri-api v0.0.0-20210203062721-e761892b6e0f +# k8s.io/csi-translation-lib => github.com/openshift/kubernetes/staging/src/k8s.io/csi-translation-lib v0.0.0-20210203062721-e761892b6e0f # k8s.io/gengo => k8s.io/gengo v0.0.0-20200114144118-36b2048a9120 # k8s.io/heapster => k8s.io/heapster v1.2.0-beta.1 # k8s.io/klog => k8s.io/klog v1.0.0 -# k8s.io/kube-aggregator => github.com/openshift/kubernetes/staging/src/k8s.io/kube-aggregator v0.0.0-20210107082038-74cd459bbb9c -# k8s.io/kube-controller-manager => github.com/openshift/kubernetes/staging/src/k8s.io/kube-controller-manager v0.0.0-20210107082038-74cd459bbb9c -# k8s.io/kube-proxy => github.com/openshift/kubernetes/staging/src/k8s.io/kube-proxy v0.0.0-20210107082038-74cd459bbb9c -# k8s.io/kube-scheduler => github.com/openshift/kubernetes/staging/src/k8s.io/kube-scheduler v0.0.0-20210107082038-74cd459bbb9c -# k8s.io/kubectl => github.com/openshift/kubernetes/staging/src/k8s.io/kubectl v0.0.0-20210107082038-74cd459bbb9c -# k8s.io/kubelet => github.com/openshift/kubernetes/staging/src/k8s.io/kubelet v0.0.0-20210107082038-74cd459bbb9c -# k8s.io/kubernetes => github.com/openshift/kubernetes v1.20.1-0.20210122163130-70dd98e24b4d -# k8s.io/legacy-cloud-providers => github.com/openshift/kubernetes/staging/src/k8s.io/legacy-cloud-providers v0.0.0-20210107082038-74cd459bbb9c -# k8s.io/metrics => github.com/openshift/kubernetes/staging/src/k8s.io/metrics v0.0.0-20210107082038-74cd459bbb9c -# k8s.io/mount-utils => github.com/openshift/kubernetes/staging/src/k8s.io/mount-utils v0.0.0-20210107082038-74cd459bbb9c -# k8s.io/sample-apiserver => github.com/openshift/kubernetes/staging/src/k8s.io/sample-apiserver v0.0.0-20210107082038-74cd459bbb9c -# k8s.io/sample-cli-plugin => github.com/openshift/kubernetes/staging/src/k8s.io/sample-cli-plugin v0.0.0-20210107082038-74cd459bbb9c -# k8s.io/sample-controller => github.com/openshift/kubernetes/staging/src/k8s.io/sample-controller v0.0.0-20210107082038-74cd459bbb9c +# k8s.io/kube-aggregator => github.com/openshift/kubernetes/staging/src/k8s.io/kube-aggregator v0.0.0-20210203062721-e761892b6e0f +# k8s.io/kube-controller-manager => github.com/openshift/kubernetes/staging/src/k8s.io/kube-controller-manager v0.0.0-20210203062721-e761892b6e0f +# k8s.io/kube-proxy => github.com/openshift/kubernetes/staging/src/k8s.io/kube-proxy v0.0.0-20210203062721-e761892b6e0f +# k8s.io/kube-scheduler => github.com/openshift/kubernetes/staging/src/k8s.io/kube-scheduler v0.0.0-20210203062721-e761892b6e0f +# k8s.io/kubectl => github.com/openshift/kubernetes/staging/src/k8s.io/kubectl v0.0.0-20210203062721-e761892b6e0f +# k8s.io/kubelet => github.com/openshift/kubernetes/staging/src/k8s.io/kubelet v0.0.0-20210203062721-e761892b6e0f +# k8s.io/kubernetes => github.com/openshift/kubernetes v1.20.1-0.20210203062721-e761892b6e0f +# k8s.io/legacy-cloud-providers => github.com/openshift/kubernetes/staging/src/k8s.io/legacy-cloud-providers v0.0.0-20210203062721-e761892b6e0f +# k8s.io/metrics => github.com/openshift/kubernetes/staging/src/k8s.io/metrics v0.0.0-20210203062721-e761892b6e0f +# k8s.io/mount-utils => github.com/openshift/kubernetes/staging/src/k8s.io/mount-utils v0.0.0-20210203062721-e761892b6e0f +# k8s.io/sample-apiserver => github.com/openshift/kubernetes/staging/src/k8s.io/sample-apiserver v0.0.0-20210203062721-e761892b6e0f +# k8s.io/sample-cli-plugin => github.com/openshift/kubernetes/staging/src/k8s.io/sample-cli-plugin v0.0.0-20210203062721-e761892b6e0f +# k8s.io/sample-controller => github.com/openshift/kubernetes/staging/src/k8s.io/sample-controller v0.0.0-20210203062721-e761892b6e0f # k8s.io/system-validators => k8s.io/system-validators v1.0.4