mirror of
https://github.com/argoproj/argo-cd.git
synced 2026-02-20 09:38:49 +01:00
Compare commits
31 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3d1f37b0c5 | ||
|
|
1582ca665a | ||
|
|
345b77ecda | ||
|
|
9d1d605e56 | ||
|
|
47507930da | ||
|
|
a066c97fd9 | ||
|
|
0d8f996b85 | ||
|
|
159674ee84 | ||
|
|
73d176bda3 | ||
|
|
bc5ad35238 | ||
|
|
cbc0b2fcd2 | ||
|
|
18628acae9 | ||
|
|
c10ae246ab | ||
|
|
41e72d1247 | ||
|
|
6393d925bf | ||
|
|
faffea357e | ||
|
|
623b4757f4 | ||
|
|
a68f483fa3 | ||
|
|
a17217d9e8 | ||
|
|
a7c776d356 | ||
|
|
247879b424 | ||
|
|
2058cb6374 | ||
|
|
f5bcc1dbcc | ||
|
|
4d7e6945bd | ||
|
|
df65d017a2 | ||
|
|
283645e63e | ||
|
|
0e016a368d | ||
|
|
26d711a6db | ||
|
|
1f12aac601 | ||
|
|
b39e93a4d2 | ||
|
|
97aa28a687 |
289
.github/workflows/release.yaml
vendored
Normal file
289
.github/workflows/release.yaml
vendored
Normal file
@@ -0,0 +1,289 @@
|
||||
name: Create ArgoCD release
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- 'release-v*'
|
||||
- '!release-v1.5*'
|
||||
- '!release-v1.4*'
|
||||
- '!release-v1.3*'
|
||||
- '!release-v1.2*'
|
||||
- '!release-v1.1*'
|
||||
- '!release-v1.0*'
|
||||
- '!release-v0*'
|
||||
jobs:
|
||||
prepare-release:
|
||||
name: Perform automatic release on trigger ${{ github.ref }}
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
# The name of the tag as supplied by the GitHub event
|
||||
SOURCE_TAG: ${{ github.ref }}
|
||||
# The image namespace where Docker image will be published to
|
||||
IMAGE_NAMESPACE: argoproj
|
||||
# Whether to create & push image and release assets
|
||||
DRY_RUN: false
|
||||
# Whether a draft release should be created, instead of public one
|
||||
DRAFT_RELEASE: false
|
||||
# The name of the repository containing tap formulae
|
||||
TAP_REPOSITORY: argoproj/homebrew-tap
|
||||
# Whether to update homebrew with this release as well
|
||||
# Set RELEASE_HOMEBREW_TOKEN secret in repository for this to work - needs
|
||||
# access to public repositories (or homebrew-tap repo specifically)
|
||||
UPDATE_HOMEBREW: false
|
||||
# Name of the GitHub user for Git config
|
||||
GIT_USERNAME: argo-bot
|
||||
# E-Mail of the GitHub user for Git config
|
||||
GIT_EMAIL: argoproj@gmail.com
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Check if the published tag is well formed and setup vars
|
||||
run: |
|
||||
set -xue
|
||||
# Target version must match major.minor.patch and optional -rcX suffix
|
||||
# where X must be a number.
|
||||
TARGET_VERSION=${SOURCE_TAG#*release-v}
|
||||
if ! echo ${TARGET_VERSION} | egrep '^[0-9]+\.[0-9]+\.[0-9]+(-rc[0-9]+)*$'; then
|
||||
echo "::error::Target version '${TARGET_VERSION}' is malformed, refusing to continue." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Target branch is the release branch we're going to operate on
|
||||
# Its name is 'release-<major>.<minor>'
|
||||
TARGET_BRANCH="release-${TARGET_VERSION%\.[0-9]*}"
|
||||
|
||||
# The release tag is the source tag, minus the release- prefix
|
||||
RELEASE_TAG="${SOURCE_TAG#*release-}"
|
||||
|
||||
# Whether this is a pre-release (indicated by -rc suffix)
|
||||
PRE_RELEASE=false
|
||||
if echo "${RELEASE_TAG}" | egrep -- '-rc[0-9]+$'; then
|
||||
PRE_RELEASE=true
|
||||
fi
|
||||
|
||||
# We must not have a release trigger within the same release branch,
|
||||
# because that means a release for this branch is already running.
|
||||
if git tag -l | grep "release-v${TARGET_VERSION%\.[0-9]*}" | grep -v "release-v${TARGET_VERSION}"; then
|
||||
echo "::error::Another release for branch ${TARGET_BRANCH} is currently in progress."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Ensure that release do not yet exist
|
||||
if git rev-parse ${RELEASE_TAG}; then
|
||||
echo "::error::Release tag ${RELEASE_TAG} already exists in repository. Refusing to continue."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Make the variables available in follow-up steps
|
||||
echo "::set-env name=TARGET_VERSION::${TARGET_VERSION}"
|
||||
echo "::set-env name=TARGET_BRANCH::${TARGET_BRANCH}"
|
||||
echo "::set-env name=RELEASE_TAG::${RELEASE_TAG}"
|
||||
echo "::set-env name=PRE_RELEASE::${PRE_RELEASE}"
|
||||
|
||||
- name: Check if our release tag has a correct annotation
|
||||
run: |
|
||||
set -ue
|
||||
# Fetch all tag information as well
|
||||
git fetch --prune --tags --force
|
||||
|
||||
echo "=========== BEGIN COMMIT MESSAGE ============="
|
||||
git show ${SOURCE_TAG}
|
||||
echo "============ END COMMIT MESSAGE =============="
|
||||
|
||||
# Quite dirty hack to get the release notes from the annotated tag
|
||||
# into a temporary file.
|
||||
RELEASE_NOTES=$(mktemp -p /tmp release-notes.XXXXXX)
|
||||
|
||||
prefix=true
|
||||
begin=false
|
||||
git show ${SOURCE_TAG} | while read line; do
|
||||
# Whatever is in commit history for the tag, we only want that
|
||||
# annotation from our tag. We discard everything else.
|
||||
if test "$begin" = "false"; then
|
||||
if echo $line | grep -q "tag ${SOURCE_TAG#refs/tags/}"; then begin="true"; fi
|
||||
continue
|
||||
fi
|
||||
if test "$prefix" = "true"; then
|
||||
if test -z "$line"; then prefix=false; fi
|
||||
else
|
||||
if echo $line | egrep -q '^commit [0-9a-f]+'; then
|
||||
break
|
||||
fi
|
||||
echo $line >> ${RELEASE_NOTES}
|
||||
fi
|
||||
done
|
||||
|
||||
# For debug purposes
|
||||
echo "============BEGIN RELEASE NOTES================="
|
||||
cat ${RELEASE_NOTES}
|
||||
echo "=============END RELEASE NOTES=================="
|
||||
|
||||
# Too short release notes are suspicious. We need at least 100 bytes.
|
||||
relNoteLen=$(stat -c '%s' $RELEASE_NOTES)
|
||||
if test $relNoteLen -lt 100; then
|
||||
echo "::error::No release notes provided in tag annotation (or tag is not annotated)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check for magic string '## Quick Start' in head of release notes
|
||||
if ! head -2 ${RELEASE_NOTES} | grep -iq '## Quick Start'; then
|
||||
echo "::error::Release notes seem invalid, quick start section not found."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# We store path to temporary release notes file for later reading, we
|
||||
# need it when creating release.
|
||||
echo "::set-env name=RELEASE_NOTES::$RELEASE_NOTES"
|
||||
|
||||
- name: Setup Golang
|
||||
uses: actions/setup-go@v1
|
||||
with:
|
||||
go-version: '1.14.2'
|
||||
|
||||
- name: Setup Git author information
|
||||
run: |
|
||||
set -ue
|
||||
git config --global user.email "${GIT_EMAIL}"
|
||||
git config --global user.name "${GIT_USERNAME}"
|
||||
|
||||
- name: Checkout corresponding release branch
|
||||
run: |
|
||||
set -ue
|
||||
echo "Switching to release branch '${TARGET_BRANCH}'"
|
||||
if ! git checkout ${TARGET_BRANCH}; then
|
||||
echo "::error::Checking out release branch '${TARGET_BRANCH}' for target version '${TARGET_VERSION}' (tagged '${RELEASE_TAG}') failed. Does it exist in repo?"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
- name: Create VERSION information
|
||||
run: |
|
||||
set -ue
|
||||
echo "Bumping version from $(cat VERSION) to ${TARGET_VERSION}"
|
||||
echo "${TARGET_VERSION}" > VERSION
|
||||
git commit -m "Bump version to ${TARGET_VERSION}" VERSION
|
||||
|
||||
- name: Generate new set of manifests
|
||||
run: |
|
||||
set -ue
|
||||
make install-codegen-tools-local
|
||||
helm2 init --client-only
|
||||
make manifests-local VERSION=${TARGET_VERSION}
|
||||
git diff
|
||||
git commit manifests/ -m "Bump version to ${TARGET_VERSION}"
|
||||
|
||||
- name: Create the release tag
|
||||
run: |
|
||||
set -ue
|
||||
echo "Creating release ${RELEASE_TAG}"
|
||||
git tag ${RELEASE_TAG}
|
||||
|
||||
- name: Build Docker image for release
|
||||
run: |
|
||||
set -ue
|
||||
git clean -fd
|
||||
mkdir -p dist/
|
||||
make image IMAGE_TAG="${TARGET_VERSION}" DOCKER_PUSH=false
|
||||
make release-cli
|
||||
chmod +x ./dist/argocd-linux-amd64
|
||||
./dist/argocd-linux-amd64 version --client
|
||||
if: ${{ env.DRY_RUN != 'true' }}
|
||||
|
||||
- name: Push docker image to repository
|
||||
env:
|
||||
DOCKER_USERNAME: ${{ secrets.RELEASE_DOCKERHUB_USERNAME }}
|
||||
DOCKER_TOKEN: ${{ secrets.RELEASE_DOCKERHUB_TOKEN }}
|
||||
run: |
|
||||
set -ue
|
||||
docker login --username "${DOCKER_USERNAME}" --password "${DOCKER_TOKEN}"
|
||||
docker push ${IMAGE_NAMESPACE}/argocd:v${TARGET_VERSION}
|
||||
if: ${{ env.DRY_RUN != 'true' }}
|
||||
|
||||
- name: Read release notes file
|
||||
id: release-notes
|
||||
uses: juliangruber/read-file-action@v1
|
||||
with:
|
||||
path: ${{ env.RELEASE_NOTES }}
|
||||
|
||||
- name: Push changes to release branch
|
||||
run: |
|
||||
set -ue
|
||||
git push origin ${TARGET_BRANCH}
|
||||
git push origin ${RELEASE_TAG}
|
||||
|
||||
- name: Create GitHub release
|
||||
uses: actions/create-release@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
id: create_release
|
||||
with:
|
||||
tag_name: ${{ env.RELEASE_TAG }}
|
||||
release_name: ${{ env.RELEASE_TAG }}
|
||||
draft: ${{ env.DRAFT_RELEASE }}
|
||||
prerelease: ${{ env.PRE_RELEASE }}
|
||||
body: ${{ steps.release-notes.outputs.content }}
|
||||
|
||||
- name: Upload argocd-linux-amd64 binary to release assets
|
||||
uses: actions/upload-release-asset@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
||||
asset_path: ./dist/argocd-linux-amd64
|
||||
asset_name: argocd-linux-amd64
|
||||
asset_content_type: application/octet-stream
|
||||
if: ${{ env.DRY_RUN != 'true' }}
|
||||
|
||||
- name: Upload argocd-darwin-amd64 binary to release assets
|
||||
uses: actions/upload-release-asset@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
||||
asset_path: ./dist/argocd-darwin-amd64
|
||||
asset_name: argocd-darwin-amd64
|
||||
asset_content_type: application/octet-stream
|
||||
if: ${{ env.DRY_RUN != 'true' }}
|
||||
|
||||
- name: Upload argocd-windows-amd64 binary to release assets
|
||||
uses: actions/upload-release-asset@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
||||
asset_path: ./dist/argocd-windows-amd64.exe
|
||||
asset_name: argocd-windows-amd64.exe
|
||||
asset_content_type: application/octet-stream
|
||||
if: ${{ env.DRY_RUN != 'true' }}
|
||||
|
||||
- name: Check out homebrew tap repository
|
||||
uses: actions/checkout@v2
|
||||
env:
|
||||
HOMEBREW_TOKEN: ${{ secrets.RELEASE_HOMEBREW_TOKEN }}
|
||||
with:
|
||||
repository: ${{ env.TAP_REPOSITORY }}
|
||||
path: homebrew-tap
|
||||
fetch-depth: 0
|
||||
token: ${{ env.HOMEBREW_TOKEN }}
|
||||
if: ${{ env.HOMEBREW_TOKEN != '' && env.UPDATE_HOMEBREW == 'true' && env.PRE_RELEASE != 'true' }}
|
||||
|
||||
- name: Update homebrew tap formula
|
||||
env:
|
||||
HOMEBREW_TOKEN: ${{ secrets.RELEASE_HOMEBREW_TOKEN }}
|
||||
run: |
|
||||
set -ue
|
||||
cd homebrew-tap
|
||||
./update.sh argocd ${TARGET_VERSION}
|
||||
git commit -am "Update argocd to ${TARGET_VERSION}"
|
||||
git push
|
||||
cd ..
|
||||
rm -rf homebrew-tap
|
||||
if: ${{ env.HOMEBREW_TOKEN != '' && env.UPDATE_HOMEBREW == 'true' && env.PRE_RELEASE != 'true' }}
|
||||
|
||||
- name: Delete original request tag from repository
|
||||
run: |
|
||||
set -ue
|
||||
git push --delete origin ${SOURCE_TAG}
|
||||
if: ${{ always() }}
|
||||
@@ -50,9 +50,9 @@ RUN groupadd -g 999 argocd && \
|
||||
chmod g=u /home/argocd && \
|
||||
chmod g=u /etc/passwd && \
|
||||
apt-get update && \
|
||||
apt-get install -y git git-lfs python3-pip && \
|
||||
apt-get install -y git git-lfs python3-pip tini && \
|
||||
apt-get clean && \
|
||||
pip3 install awscli==1.17.7 && \
|
||||
pip3 install awscli==1.18.80 && \
|
||||
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||
|
||||
COPY hack/git-ask-pass.sh /usr/local/bin/git-ask-pass.sh
|
||||
@@ -75,7 +75,7 @@ RUN mkdir -p /app/config/tls
|
||||
# workaround ksonnet issue https://github.com/ksonnet/ksonnet/issues/298
|
||||
ENV USER=argocd
|
||||
|
||||
USER argocd
|
||||
USER 999
|
||||
WORKDIR /home/argocd
|
||||
|
||||
####################################################################################################
|
||||
|
||||
@@ -11,4 +11,4 @@ g = _, _
|
||||
e = some(where (p.eft == allow)) && !some(where (p.eft == deny))
|
||||
|
||||
[matchers]
|
||||
m = g(r.sub, p.sub) && keyMatch(r.res, p.res) && keyMatch(r.act, p.act) && keyMatch(r.obj, p.obj)
|
||||
m = g(r.sub, p.sub) && globMatch(r.res, p.res) && globMatch(r.act, p.act) && globMatch(r.obj, p.obj)
|
||||
|
||||
@@ -2174,6 +2174,12 @@
|
||||
"type": "boolean",
|
||||
"format": "boolean"
|
||||
},
|
||||
"infos": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/v1alpha1Info"
|
||||
}
|
||||
},
|
||||
"manifests": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
@@ -3902,6 +3908,12 @@
|
||||
"description": "Operation contains requested operation parameters.",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"info": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/v1alpha1Info"
|
||||
}
|
||||
},
|
||||
"initiatedBy": {
|
||||
"$ref": "#/definitions/v1alpha1OperationInitiator"
|
||||
},
|
||||
|
||||
@@ -178,6 +178,7 @@ func NewApplicationCreateCommand(clientOpts *argocdclient.ClientOptions) *cobra.
|
||||
appCreateRequest := applicationpkg.ApplicationCreateRequest{
|
||||
Application: app,
|
||||
Upsert: &upsert,
|
||||
Validate: &appOpts.validate,
|
||||
}
|
||||
created, err := appIf.Create(context.Background(), &appCreateRequest)
|
||||
errors.CheckError(err)
|
||||
@@ -203,6 +204,18 @@ func setLabels(app *argoappv1.Application, labels []string) {
|
||||
app.SetLabels(mapLabels)
|
||||
}
|
||||
|
||||
func getInfos(infos []string) []*argoappv1.Info {
|
||||
mapInfos, err := label.Parse(infos)
|
||||
errors.CheckError(err)
|
||||
sliceInfos := make([]*argoappv1.Info, len(mapInfos))
|
||||
i := 0
|
||||
for key, element := range mapInfos {
|
||||
sliceInfos[i] = &argoappv1.Info{Name: key, Value: element}
|
||||
i++
|
||||
}
|
||||
return sliceInfos
|
||||
}
|
||||
|
||||
func getRefreshType(refresh bool, hardRefresh bool) *string {
|
||||
if hardRefresh {
|
||||
refreshType := string(argoappv1.RefreshTypeHard)
|
||||
@@ -463,8 +476,9 @@ func NewApplicationSetCommand(clientOpts *argocdclient.ClientOptions) *cobra.Com
|
||||
}
|
||||
setParameterOverrides(app, appOpts.parameters)
|
||||
_, err = appIf.UpdateSpec(ctx, &applicationpkg.ApplicationUpdateSpecRequest{
|
||||
Name: &app.Name,
|
||||
Spec: app.Spec,
|
||||
Name: &app.Name,
|
||||
Spec: app.Spec,
|
||||
Validate: &appOpts.validate,
|
||||
})
|
||||
errors.CheckError(err)
|
||||
},
|
||||
@@ -721,6 +735,7 @@ type appOptions struct {
|
||||
jsonnetExtVarCode []string
|
||||
kustomizeImages []string
|
||||
kustomizeVersion string
|
||||
validate bool
|
||||
}
|
||||
|
||||
func addAppFlags(command *cobra.Command, opts *appOptions) {
|
||||
@@ -754,6 +769,7 @@ func addAppFlags(command *cobra.Command, opts *appOptions) {
|
||||
command.Flags().StringArrayVar(&opts.jsonnetExtVarStr, "jsonnet-ext-var-str", []string{}, "Jsonnet string ext var")
|
||||
command.Flags().StringArrayVar(&opts.jsonnetExtVarCode, "jsonnet-ext-var-code", []string{}, "Jsonnet ext var")
|
||||
command.Flags().StringArrayVar(&opts.kustomizeImages, "kustomize-image", []string{}, "Kustomize images (e.g. --kustomize-image node:8.15.0 --kustomize-image mysql=mariadb,alpine@sha256:24a0c4b4a4c0eb97a1aabb8e29f18e917d05abfe1b7a7c07857230879ce7d3d)")
|
||||
command.Flags().BoolVar(&opts.validate, "validate", true, "Validation of repo and cluster")
|
||||
}
|
||||
|
||||
// NewApplicationUnsetCommand returns a new instance of an `argocd app unset` command
|
||||
@@ -766,6 +782,7 @@ func NewApplicationUnsetCommand(clientOpts *argocdclient.ClientOptions) *cobra.C
|
||||
namePrefix bool
|
||||
kustomizeVersion bool
|
||||
kustomizeImages []string
|
||||
appOpts appOptions
|
||||
)
|
||||
var command = &cobra.Command{
|
||||
Use: "unset APPNAME parameters",
|
||||
@@ -875,9 +892,11 @@ func NewApplicationUnsetCommand(clientOpts *argocdclient.ClientOptions) *cobra.C
|
||||
}
|
||||
}
|
||||
|
||||
setAppSpecOptions(c.Flags(), &app.Spec, &appOpts)
|
||||
_, err = appIf.UpdateSpec(context.Background(), &applicationpkg.ApplicationUpdateSpecRequest{
|
||||
Name: &app.Name,
|
||||
Spec: app.Spec,
|
||||
Name: &app.Name,
|
||||
Spec: app.Spec,
|
||||
Validate: &appOpts.validate,
|
||||
})
|
||||
errors.CheckError(err)
|
||||
},
|
||||
@@ -1388,6 +1407,7 @@ func NewApplicationSyncCommand(clientOpts *argocdclient.ClientOptions) *cobra.Co
|
||||
force bool
|
||||
async bool
|
||||
local string
|
||||
infos []string
|
||||
)
|
||||
var command = &cobra.Command{
|
||||
Use: "sync [APPNAME... | -l selector]",
|
||||
@@ -1495,6 +1515,7 @@ func NewApplicationSyncCommand(clientOpts *argocdclient.ClientOptions) *cobra.Co
|
||||
Resources: selectedResources,
|
||||
Prune: prune,
|
||||
Manifests: localObjsStrings,
|
||||
Infos: getInfos(infos),
|
||||
}
|
||||
switch strategy {
|
||||
case "apply":
|
||||
@@ -1540,6 +1561,7 @@ func NewApplicationSyncCommand(clientOpts *argocdclient.ClientOptions) *cobra.Co
|
||||
command.Flags().BoolVar(&force, "force", false, "Use a force apply")
|
||||
command.Flags().BoolVar(&async, "async", false, "Do not wait for application to sync before continuing")
|
||||
command.Flags().StringVar(&local, "local", "", "Path to a local directory. When this flag is present no git queries will be made")
|
||||
command.Flags().StringArrayVar(&infos, "info", []string{}, "A list of key-value pairs during sync process. These infos will be persisted in app.")
|
||||
return command
|
||||
}
|
||||
|
||||
@@ -2094,7 +2116,10 @@ func NewApplicationEditCommand(clientOpts *argocdclient.ClientOptions) *cobra.Co
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
_, err = appIf.UpdateSpec(context.Background(), &applicationpkg.ApplicationUpdateSpecRequest{Name: &app.Name, Spec: updatedSpec})
|
||||
|
||||
var appOpts appOptions
|
||||
setAppSpecOptions(c.Flags(), &app.Spec, &appOpts)
|
||||
_, err = appIf.UpdateSpec(context.Background(), &applicationpkg.ApplicationUpdateSpecRequest{Name: &app.Name, Spec: updatedSpec, Validate: &appOpts.validate})
|
||||
if err != nil {
|
||||
return fmt.Errorf("Failed to update application spec:\n%v", err)
|
||||
}
|
||||
|
||||
@@ -395,11 +395,6 @@ func (ctrl *ApplicationController) managedResources(comparisonResult *comparison
|
||||
} else {
|
||||
item.TargetState = "null"
|
||||
}
|
||||
jsonDiff, err := resDiff.JSONFormat()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
item.Diff = jsonDiff
|
||||
item.PredictedLiveState = string(resDiff.PredictedLive)
|
||||
item.NormalizedLiveState = string(resDiff.NormalizedLive)
|
||||
|
||||
@@ -419,6 +414,8 @@ func (ctrl *ApplicationController) Run(ctx context.Context, statusProcessors int
|
||||
go ctrl.appInformer.Run(ctx.Done())
|
||||
go ctrl.projInformer.Run(ctx.Done())
|
||||
|
||||
errors.CheckError(ctrl.stateCache.Init())
|
||||
|
||||
if !cache.WaitForCacheSync(ctx.Done(), ctrl.appInformer.HasSynced, ctrl.projInformer.HasSynced) {
|
||||
log.Error("Timed out waiting for caches to sync")
|
||||
return
|
||||
|
||||
74
controller/cache/cache.go
vendored
74
controller/cache/cache.go
vendored
@@ -40,6 +40,8 @@ type LiveStateCache interface {
|
||||
Run(ctx context.Context) error
|
||||
// Returns information about monitored clusters
|
||||
GetClustersInfo() []clustercache.ClusterInfo
|
||||
// Init must be executed before cache can be used
|
||||
Init() error
|
||||
}
|
||||
|
||||
type ObjectUpdatedHandler = func(managedByApp map[string]bool, ref v1.ObjectReference)
|
||||
@@ -72,33 +74,42 @@ func NewLiveStateCache(
|
||||
}
|
||||
}
|
||||
|
||||
type liveStateCache struct {
|
||||
db db.ArgoDB
|
||||
clusters map[string]clustercache.ClusterCache
|
||||
lock sync.RWMutex
|
||||
appInformer cache.SharedIndexInformer
|
||||
onObjectUpdated ObjectUpdatedHandler
|
||||
kubectl kube.Kubectl
|
||||
settingsMgr *settings.SettingsManager
|
||||
metricsServer *metrics.MetricsServer
|
||||
cacheSettings clustercache.Settings
|
||||
type cacheSettings struct {
|
||||
clusterSettings clustercache.Settings
|
||||
appInstanceLabelKey string
|
||||
}
|
||||
|
||||
func (c *liveStateCache) loadCacheSettings() (*clustercache.Settings, string, error) {
|
||||
type liveStateCache struct {
|
||||
db db.ArgoDB
|
||||
appInformer cache.SharedIndexInformer
|
||||
onObjectUpdated ObjectUpdatedHandler
|
||||
kubectl kube.Kubectl
|
||||
settingsMgr *settings.SettingsManager
|
||||
metricsServer *metrics.MetricsServer
|
||||
|
||||
clusters map[string]clustercache.ClusterCache
|
||||
cacheSettings cacheSettings
|
||||
lock sync.RWMutex
|
||||
}
|
||||
|
||||
func (c *liveStateCache) loadCacheSettings() (*cacheSettings, error) {
|
||||
appInstanceLabelKey, err := c.settingsMgr.GetAppInstanceLabelKey()
|
||||
if err != nil {
|
||||
return nil, "", err
|
||||
return nil, err
|
||||
}
|
||||
resourcesFilter, err := c.settingsMgr.GetResourcesFilter()
|
||||
if err != nil {
|
||||
return nil, "", err
|
||||
return nil, err
|
||||
}
|
||||
resourceOverrides, err := c.settingsMgr.GetResourceOverrides()
|
||||
if err != nil {
|
||||
return nil, "", err
|
||||
return nil, err
|
||||
}
|
||||
return &clustercache.Settings{ResourceHealthOverride: lua.ResourceHealthOverrides(resourceOverrides), ResourcesFilter: resourcesFilter}, appInstanceLabelKey, nil
|
||||
clusterSettings := clustercache.Settings{
|
||||
ResourceHealthOverride: lua.ResourceHealthOverrides(resourceOverrides),
|
||||
ResourcesFilter: resourcesFilter,
|
||||
}
|
||||
return &cacheSettings{clusterSettings, appInstanceLabelKey}, nil
|
||||
}
|
||||
|
||||
func asResourceNode(r *clustercache.Resource) appv1.ResourceNode {
|
||||
@@ -197,6 +208,7 @@ func skipAppRequeuing(key kube.ResourceKey) bool {
|
||||
func (c *liveStateCache) getCluster(server string) (clustercache.ClusterCache, error) {
|
||||
c.lock.RLock()
|
||||
clusterCache, ok := c.clusters[server]
|
||||
cacheSettings := c.cacheSettings
|
||||
c.lock.RUnlock()
|
||||
|
||||
if ok {
|
||||
@@ -217,13 +229,13 @@ func (c *liveStateCache) getCluster(server string) (clustercache.ClusterCache, e
|
||||
}
|
||||
|
||||
clusterCache = clustercache.NewClusterCache(cluster.RESTConfig(),
|
||||
clustercache.SetSettings(c.cacheSettings),
|
||||
clustercache.SetSettings(cacheSettings.clusterSettings),
|
||||
clustercache.SetNamespaces(cluster.Namespaces),
|
||||
clustercache.SetPopulateResourceInfoHandler(func(un *unstructured.Unstructured, isRoot bool) (interface{}, bool) {
|
||||
res := &ResourceInfo{}
|
||||
populateNodeInfo(un, res)
|
||||
res.Health, _ = health.GetResourceHealth(un, c.cacheSettings.ResourceHealthOverride)
|
||||
appName := kube.GetAppInstanceLabel(un, c.appInstanceLabelKey)
|
||||
res.Health, _ = health.GetResourceHealth(un, cacheSettings.clusterSettings.ResourceHealthOverride)
|
||||
appName := kube.GetAppInstanceLabel(un, cacheSettings.appInstanceLabelKey)
|
||||
if isRoot && appName != "" {
|
||||
res.AppName = appName
|
||||
}
|
||||
@@ -277,14 +289,14 @@ func (c *liveStateCache) getSyncedCluster(server string) (clustercache.ClusterCa
|
||||
return clusterCache, nil
|
||||
}
|
||||
|
||||
func (c *liveStateCache) invalidate(settings clustercache.Settings, appInstanceLabelKey string) {
|
||||
func (c *liveStateCache) invalidate(cacheSettings cacheSettings) {
|
||||
log.Info("invalidating live state cache")
|
||||
c.lock.RLock()
|
||||
defer c.lock.RUnlock()
|
||||
c.lock.Lock()
|
||||
defer c.lock.Unlock()
|
||||
|
||||
c.appInstanceLabelKey = appInstanceLabelKey
|
||||
c.cacheSettings = cacheSettings
|
||||
for _, clust := range c.clusters {
|
||||
clust.Invalidate(clustercache.SetSettings(settings))
|
||||
clust.Invalidate(clustercache.SetSettings(cacheSettings.clusterSettings))
|
||||
}
|
||||
log.Info("live state cache invalidated")
|
||||
}
|
||||
@@ -356,7 +368,7 @@ func (c *liveStateCache) watchSettings(ctx context.Context) {
|
||||
for !done {
|
||||
select {
|
||||
case <-updateCh:
|
||||
nextCacheSettings, appInstanceLabelKey, err := c.loadCacheSettings()
|
||||
nextCacheSettings, err := c.loadCacheSettings()
|
||||
if err != nil {
|
||||
log.Warnf("Failed to read updated settings: %v", err)
|
||||
continue
|
||||
@@ -370,7 +382,7 @@ func (c *liveStateCache) watchSettings(ctx context.Context) {
|
||||
}
|
||||
c.lock.Unlock()
|
||||
if needInvalidate {
|
||||
c.invalidate(*nextCacheSettings, appInstanceLabelKey)
|
||||
c.invalidate(*nextCacheSettings)
|
||||
}
|
||||
case <-ctx.Done():
|
||||
done = true
|
||||
@@ -381,15 +393,17 @@ func (c *liveStateCache) watchSettings(ctx context.Context) {
|
||||
close(updateCh)
|
||||
}
|
||||
|
||||
// Run watches for resource changes annotated with application label on all registered clusters and schedule corresponding app refresh.
|
||||
func (c *liveStateCache) Run(ctx context.Context) error {
|
||||
cacheSettings, appInstanceLabelKey, err := c.loadCacheSettings()
|
||||
func (c *liveStateCache) Init() error {
|
||||
cacheSettings, err := c.loadCacheSettings()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
c.cacheSettings = *cacheSettings
|
||||
c.appInstanceLabelKey = appInstanceLabelKey
|
||||
return nil
|
||||
}
|
||||
|
||||
// Run watches for resource changes annotated with application label on all registered clusters and schedule corresponding app refresh.
|
||||
func (c *liveStateCache) Run(ctx context.Context) error {
|
||||
go c.watchSettings(ctx)
|
||||
|
||||
kube.RetryUntilSucceed(func() error {
|
||||
@@ -420,7 +434,7 @@ func (c *liveStateCache) Run(ctx context.Context) error {
|
||||
}, "watch clusters", ctx, clustercache.ClusterRetryTimeout)
|
||||
|
||||
<-ctx.Done()
|
||||
c.invalidate(c.cacheSettings, c.appInstanceLabelKey)
|
||||
c.invalidate(c.cacheSettings)
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
14
controller/cache/mocks/LiveStateCache.go
vendored
14
controller/cache/mocks/LiveStateCache.go
vendored
@@ -140,6 +140,20 @@ func (_m *LiveStateCache) GetVersionsInfo(serverURL string) (string, []v1.APIGro
|
||||
return r0, r1, r2
|
||||
}
|
||||
|
||||
// Init provides a mock function with given fields:
|
||||
func (_m *LiveStateCache) Init() error {
|
||||
ret := _m.Called()
|
||||
|
||||
var r0 error
|
||||
if rf, ok := ret.Get(0).(func() error); ok {
|
||||
r0 = rf()
|
||||
} else {
|
||||
r0 = ret.Error(0)
|
||||
}
|
||||
|
||||
return r0
|
||||
}
|
||||
|
||||
// IsNamespaced provides a mock function with given fields: server, gk
|
||||
func (_m *LiveStateCache) IsNamespaced(server string, gk schema.GroupKind) (bool, error) {
|
||||
ret := _m.Called(server, gk)
|
||||
|
||||
@@ -15,7 +15,6 @@ import (
|
||||
"github.com/argoproj/gitops-engine/pkg/utils/io"
|
||||
kubeutil "github.com/argoproj/gitops-engine/pkg/utils/kube"
|
||||
log "github.com/sirupsen/logrus"
|
||||
"github.com/yudai/gojsondiff"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
|
||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||
@@ -194,6 +193,9 @@ func DeduplicateTargetObjects(
|
||||
targetByKey := make(map[kubeutil.ResourceKey][]*unstructured.Unstructured)
|
||||
for i := range objs {
|
||||
obj := objs[i]
|
||||
if obj == nil {
|
||||
continue
|
||||
}
|
||||
isNamespaced := kubeutil.IsNamespacedOrUnknown(infoProvider, obj.GroupVersionKind().GroupKind())
|
||||
if !isNamespaced {
|
||||
obj.SetNamespace("")
|
||||
@@ -201,6 +203,9 @@ func DeduplicateTargetObjects(
|
||||
obj.SetNamespace(namespace)
|
||||
}
|
||||
key := kubeutil.GetResourceKey(obj)
|
||||
if key.Name == "" && obj.GetGenerateName() != "" {
|
||||
key.Name = fmt.Sprintf("%s%d", obj.GetGenerateName(), i)
|
||||
}
|
||||
targetByKey[key] = append(targetByKey[key], obj)
|
||||
}
|
||||
conditions := make([]v1alpha1.ApplicationCondition, 0)
|
||||
@@ -387,12 +392,7 @@ func (m *appStateManager) CompareAppState(app *v1alpha1.Application, project *ap
|
||||
if i < len(diffResults.Diffs) {
|
||||
diffResult = diffResults.Diffs[i]
|
||||
} else {
|
||||
diffResult = diff.DiffResult{
|
||||
Diff: gojsondiff.New().CompareObjects(map[string]interface{}{}, map[string]interface{}{}),
|
||||
Modified: false,
|
||||
NormalizedLive: []byte("{}"),
|
||||
PredictedLive: []byte("{}"),
|
||||
}
|
||||
diffResult = diff.DiffResult{Modified: false, NormalizedLive: []byte("{}"), PredictedLive: []byte("{}")}
|
||||
}
|
||||
if resState.Hook || ignore.Ignore(obj) {
|
||||
// For resource hooks, don't store sync status, and do not affect overall sync status
|
||||
|
||||
@@ -185,11 +185,17 @@ func TestCompareAppStateDuplicatedNamespacedResources(t *testing.T) {
|
||||
obj2 := NewPod()
|
||||
obj3 := NewPod()
|
||||
obj3.SetNamespace("kube-system")
|
||||
obj4 := NewPod()
|
||||
obj4.SetGenerateName("my-pod")
|
||||
obj4.SetName("")
|
||||
obj5 := NewPod()
|
||||
obj5.SetName("")
|
||||
obj5.SetGenerateName("my-pod")
|
||||
|
||||
app := newFakeApp()
|
||||
data := fakeData{
|
||||
manifestResponse: &apiclient.ManifestResponse{
|
||||
Manifests: []string{toJSON(t, obj1), toJSON(t, obj2), toJSON(t, obj3)},
|
||||
Manifests: []string{toJSON(t, obj1), toJSON(t, obj2), toJSON(t, obj3), toJSON(t, obj4), toJSON(t, obj5)},
|
||||
Namespace: test.FakeDestNamespace,
|
||||
Server: test.FakeClusterURL,
|
||||
Revision: "abc123",
|
||||
@@ -207,7 +213,7 @@ func TestCompareAppStateDuplicatedNamespacedResources(t *testing.T) {
|
||||
assert.NotNil(t, app.Status.Conditions[0].LastTransitionTime)
|
||||
assert.Equal(t, argoappv1.ApplicationConditionRepeatedResourceWarning, app.Status.Conditions[0].Type)
|
||||
assert.Equal(t, "Resource /Pod/fake-dest-ns/my-pod appeared 2 times among application resources.", app.Status.Conditions[0].Message)
|
||||
assert.Equal(t, 2, len(compRes.resources))
|
||||
assert.Equal(t, 4, len(compRes.resources))
|
||||
}
|
||||
|
||||
var defaultProj = argoappv1.AppProject{
|
||||
|
||||
@@ -1,5 +1,155 @@
|
||||
# Releasing
|
||||
|
||||
## Automated release procedure
|
||||
|
||||
Starting from `release-1.6` branch, ArgoCD can be released in automatic fashion
|
||||
using GitHub actions. The release process takes about 20 minutes, sometimes a
|
||||
little less, depending on the performance of GitHub actions runners.
|
||||
|
||||
The target release branch must already exist in GitHub repository. If you for
|
||||
example want to create a release `v1.7.0`, the corresponding release branch
|
||||
`release-1.7` needs to exist, otherwise the release cannot be build. Also,
|
||||
the trigger tag should always be created in the release branch, checked out
|
||||
in your local repository clone.
|
||||
|
||||
Before triggering the release automation, the `CHANGELOG.md` should be updated
|
||||
with the latest information, and this change should be commited and pushed to
|
||||
the GitHub repository to the release branch. Afterwards, the automation can be
|
||||
triggered.
|
||||
|
||||
**Manual steps before release creation:**
|
||||
|
||||
* Update `CHANGELOG.md` with changes for this release
|
||||
* Commit & push changes to `CHANGELOG.md`
|
||||
* Prepare release notes (save to some file, or copy from Changelog)
|
||||
|
||||
**The automation will perform the following steps:**
|
||||
|
||||
* Update `VERSION` file in release branch
|
||||
* Update manifests with image tags of new version in release branch
|
||||
* Build the Docker image and push to Docker Hub
|
||||
* Create release tag in the GitHub repository
|
||||
* Create GitHub release and attach the required assets to it (CLI binaries, ...)
|
||||
|
||||
Finally, it will the remove trigger tag from repository again.
|
||||
|
||||
Automation supports both, GA and pre-releases. The automation is triggered by
|
||||
pushing a tag to the repository. The tag must be in one of the following formats
|
||||
to trigger the GH workflow:
|
||||
|
||||
* GA: `release-v<MAJOR>.<MINOR>.<PATCH>`
|
||||
* Pre-release: `release-v<MAJOR>.<MINOR>.<PATCH>-rc<RC#>`
|
||||
|
||||
The tag must be an annotated tag, and it must contain the release notes in the
|
||||
commit message. Please note that Markdown uses `#` character for formatting, but
|
||||
Git uses it as comment char. To solve this, temporarily switch Git comment char
|
||||
to something else, the `;` character is recommended.
|
||||
|
||||
For example, considering you have configured the Git remote for repository to
|
||||
`github.com/argoproj/argo-cd` to be named `upstream` and are in your locally
|
||||
checked out repo:
|
||||
|
||||
```shell
|
||||
git config core.commentChar ';'
|
||||
git tag -a -F /path/to/release-notes.txt release-v1.6.0-rc2
|
||||
git push upstream release-v1.6.0-rc2
|
||||
git tag -d release-v1.6.0-rc2
|
||||
git config core.commentChar '#'
|
||||
|
||||
```
|
||||
|
||||
For convenience, there is a shell script in the tree that ensures all the
|
||||
pre-requisites are met and that the trigger is well-formed before pushing
|
||||
it to the GitHub repo.
|
||||
|
||||
In summary, the modifications it does are:
|
||||
|
||||
* Create annotated trigger tag in your local repository
|
||||
* Push tag to GitHub repository to trigger workflow
|
||||
* Remove trigger tag from your local repository
|
||||
|
||||
The script can be found at `hacks/trigger-release.sh` and is used as follows:
|
||||
|
||||
```shell
|
||||
./hacks/trigger-release.sh <version> <remote name> [<release notes path>]
|
||||
```
|
||||
|
||||
The `<version>` identifier needs to be specified **without** the `release-`
|
||||
prefix, so just specify it as `v1.6.0-rc2` for example. The `<remote name>`
|
||||
specifies the name of the remote used to push to the GitHub repository.
|
||||
|
||||
If you omit the `<release notes path>`, an editor will pop-up asking you to
|
||||
enter the tag's annotation so you can paste the release notes, save and exit.
|
||||
It will also take care of temporarily configuring the `core.commentChar` and
|
||||
setting it back to its original state.
|
||||
|
||||
!!!note
|
||||
It is strongly recommended to use this script to trigger the workflow
|
||||
instead of manually pushing a tag to the repository.
|
||||
|
||||
Once the trigger tag is pushed to the repo, the GitHub workflow will start
|
||||
execution. You can follow its progress under `Actions` tab, the name of the
|
||||
action is `Create release`. Don't get confused by the name of the running
|
||||
workflow, it will be the commit message of the latest commit to `master`
|
||||
branch, this is a limitation of GH actions.
|
||||
|
||||
The workflow performs necessary checks so that the release can be sucessfully
|
||||
build before the build actually starts. It will error when one of the
|
||||
prerequisites is not met, or if the release cannot be build (i.e. already
|
||||
exists, release notes invalid, etc etc). You can see a summary of what has
|
||||
failed in the job's overview page, and more detailed errors in the output
|
||||
of the step that has failed.
|
||||
|
||||
!!!note
|
||||
You cannot perform more than one release on the same release branch at the
|
||||
same time. For example, both `v1.6.0` and `v1.6.1` would operate on the
|
||||
`release-1.6` branch. If you submit `v1.6.1` while `v1.6.0` is still
|
||||
executing, the release automation will not execute. You have to either
|
||||
cancel `v1.6.0` before submitting `v1.6.1` or wait until it has finished.
|
||||
You can execute releases on different release branches simultaneously, for
|
||||
example `v1.6.0` and `v1.7.0-rc1`, without problems.
|
||||
|
||||
### Verifying automated release
|
||||
|
||||
After the automatic release creation has finished, you should perform manual
|
||||
checks to see if the release came out correctly:
|
||||
|
||||
* Check status & output of the GitHub action
|
||||
* Check [https://github.com/argoproj/argo-cd/releases](https://github.com/argoproj/argo-cd/releases)
|
||||
to see if release has been correctly created, and if all required assets
|
||||
are attached.
|
||||
* Check whether the image has been published on DockerHub correctly
|
||||
|
||||
### If something went wrong
|
||||
|
||||
If something went wrong, damage should be limited. Depending on the steps that
|
||||
have been performed, you will need to manually clean up.
|
||||
|
||||
* Delete release tag (i.e. `v1.6.0-rc2`) created on GitHub repository. This
|
||||
will immediately set release (if created) to `draft` status, invisible for
|
||||
general public.
|
||||
* Delete the draft release (if created) from `Releases` page on GitHub
|
||||
* If Docker image has been pushed to DockerHub, delete it
|
||||
* If commits have been performed to the release branch, revert them. Paths that could have been commited to are:
|
||||
* `VERSION`
|
||||
* `manifests/*`
|
||||
|
||||
### Post-process manual steps
|
||||
|
||||
For now, the only manual steps left are to
|
||||
|
||||
* update brew formulae for ArgoCD CLI on Mac if release is GA
|
||||
* update stable tag in GitHub repository to point to new release (if appropriate)
|
||||
|
||||
These will be automated as well in the future.
|
||||
|
||||
## Manual releasing
|
||||
|
||||
Automatic release process does not interfere with manual release process, since
|
||||
the trigger tag does not match a normal release tag. If you prefer to perform,
|
||||
manual release or if automatic release is for some reason broken, these are the
|
||||
steps:
|
||||
|
||||
Make sure you are logged into Docker Hub:
|
||||
|
||||
```bash
|
||||
@@ -42,18 +192,14 @@ git push $REPO $BRANCH
|
||||
git push $REPO $VERSION
|
||||
```
|
||||
|
||||
If GA, update `stable` tag:
|
||||
|
||||
```bash
|
||||
git tag stable --force && git push $REPO stable --force
|
||||
```
|
||||
|
||||
Update [Github releases](https://github.com/argoproj/argo-cd/releases) with:
|
||||
|
||||
* Getting started (copy from previous release)
|
||||
* Changelog
|
||||
* Binaries (e.g. `dist/argocd-darwin-amd64`).
|
||||
|
||||
## Update brew formulae (manual)
|
||||
|
||||
If GA, update Brew formula:
|
||||
|
||||
```bash
|
||||
@@ -64,7 +210,15 @@ git commit -am "Update argocd to $VERSION"
|
||||
git push
|
||||
```
|
||||
|
||||
### Verify
|
||||
## Update stable tag (manual)
|
||||
|
||||
If GA, update `stable` tag:
|
||||
|
||||
```bash
|
||||
git tag stable --force && git push $REPO stable --force
|
||||
```
|
||||
|
||||
## Verify release
|
||||
|
||||
Locally:
|
||||
|
||||
|
||||
4
go.mod
4
go.mod
@@ -8,7 +8,7 @@ require (
|
||||
github.com/TomOnTime/utfutil v0.0.0-20180511104225-09c41003ee1d
|
||||
github.com/alicebob/gopher-json v0.0.0-20180125190556-5a6b3ba71ee6 // indirect
|
||||
github.com/alicebob/miniredis v2.5.0+incompatible
|
||||
github.com/argoproj/gitops-engine v0.0.0-00010101000000-000000000000
|
||||
github.com/argoproj/gitops-engine v0.1.3
|
||||
github.com/argoproj/pkg v0.0.0-20200319004004-f46beff7cd54
|
||||
github.com/bsm/redislock v0.4.3
|
||||
github.com/casbin/casbin v1.9.1
|
||||
@@ -57,7 +57,6 @@ require (
|
||||
github.com/spf13/pflag v1.0.5
|
||||
github.com/stretchr/testify v1.5.1
|
||||
github.com/vmihailenco/msgpack v3.3.1+incompatible
|
||||
github.com/yudai/gojsondiff v1.0.1-0.20180504020246-0525c875b75c
|
||||
github.com/yuin/gopher-lua v0.0.0-20190115140932-732aa6820ec4
|
||||
golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586
|
||||
golang.org/x/net v0.0.0-20191004110552-13f9640d40b9
|
||||
@@ -83,7 +82,6 @@ require (
|
||||
)
|
||||
|
||||
replace (
|
||||
github.com/argoproj/gitops-engine => github.com/argoproj/gitops-engine v0.1.1-0.20200601171118-4bd4f29670ee
|
||||
github.com/golang/protobuf => github.com/golang/protobuf v1.2.0
|
||||
github.com/grpc-ecosystem/grpc-gateway => github.com/grpc-ecosystem/grpc-gateway v1.3.1
|
||||
github.com/improbable-eng/grpc-web => github.com/improbable-eng/grpc-web v0.0.0-20181111100011-16092bd1d58a
|
||||
|
||||
4
go.sum
4
go.sum
@@ -50,8 +50,8 @@ github.com/alicebob/miniredis v2.5.0+incompatible h1:yBHoLpsyjupjz3NL3MhKMVkR41j
|
||||
github.com/alicebob/miniredis v2.5.0+incompatible/go.mod h1:8HZjEj4yU0dwhYHky+DxYx+6BMjkBbe5ONFIF1MXffk=
|
||||
github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239 h1:kFOfPq6dUM1hTo4JG6LR5AXSUEsOjtdm0kw0FtQtMJA=
|
||||
github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c=
|
||||
github.com/argoproj/gitops-engine v0.1.1-0.20200601171118-4bd4f29670ee h1:oCQxH/zplZhggoIhXpBNJyx4F45CcSL6Hiyz4N2uJQU=
|
||||
github.com/argoproj/gitops-engine v0.1.1-0.20200601171118-4bd4f29670ee/go.mod h1:UmBGlQLT/MPNiMmbnouZRWhkk3slPuozMsENdXMkIMs=
|
||||
github.com/argoproj/gitops-engine v0.1.3 h1:eQp1bfqaeaATcu4XErlxNb6aVsN4rC7suL/Fqx/9E+k=
|
||||
github.com/argoproj/gitops-engine v0.1.3/go.mod h1:UmBGlQLT/MPNiMmbnouZRWhkk3slPuozMsENdXMkIMs=
|
||||
github.com/argoproj/pkg v0.0.0-20200102163130-2dd1f3f6b4de/go.mod h1:2EZ44RG/CcgtPTwrRR0apOc7oU6UIw8GjCUJWZ8X3bM=
|
||||
github.com/argoproj/pkg v0.0.0-20200319004004-f46beff7cd54 h1:hDn02iEkh5EUl4TJfOo6AI9uSgh0vt/qh66ODuQl/YE=
|
||||
github.com/argoproj/pkg v0.0.0-20200319004004-f46beff7cd54/go.mod h1:2EZ44RG/CcgtPTwrRR0apOc7oU6UIw8GjCUJWZ8X3bM=
|
||||
|
||||
108
hack/trigger-release.sh
Executable file
108
hack/trigger-release.sh
Executable file
@@ -0,0 +1,108 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# This script requires bash shell - sorry.
|
||||
|
||||
NEW_TAG="${1}"
|
||||
GIT_REMOTE="${2}"
|
||||
COMMIT_MSG="${3}"
|
||||
origToken=""
|
||||
|
||||
set -ue
|
||||
|
||||
restoreToken() {
|
||||
if test "$origToken" != ""; then
|
||||
echo ">> Restoring original Git comment char"
|
||||
git config core.commentChar "$origToken"
|
||||
fi
|
||||
}
|
||||
|
||||
cleanLocalTriggerTag() {
|
||||
if test "$TRIGGER_TAG" != ""; then
|
||||
echo ">> Remove trigger tag '${TRIGGER_TAG}' from local repository."
|
||||
git tag -d $TRIGGER_TAG
|
||||
fi
|
||||
}
|
||||
|
||||
cleanup() {
|
||||
restoreToken
|
||||
cleanLocalTriggerTag
|
||||
}
|
||||
|
||||
if test "${NEW_TAG}" = "" -o "${GIT_REMOTE}" = ""; then
|
||||
echo "!! Usage: $0 <release tag> <remote> [path to release notes file]" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Target (version) tag must match version scheme vMAJOR.MINOR.PATCH with an
|
||||
# optional pre-release tag.
|
||||
if ! echo "${NEW_TAG}" | egrep -q '^v[0-9]+\.[0-9]+\.[0-9]+(-rc[0-9]+)*$'; then
|
||||
echo "!! Malformed version tag: '${NEW_TAG}', must match 'vMAJOR.MINOR.PATCH(-rcX)'" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
TRIGGER_TAG="release-${NEW_TAG}"
|
||||
|
||||
# Check whether we are in correct branch of local repository
|
||||
RELEASE_BRANCH="${NEW_TAG%\.[0-9]*}"
|
||||
RELEASE_BRANCH="release-${RELEASE_BRANCH#*v}"
|
||||
|
||||
currentBranch=$(git branch --show-current)
|
||||
if test "$currentBranch" != "${RELEASE_BRANCH}"; then
|
||||
echo "!! Please checkout branch '${RELEASE_BRANCH}' (currently in branch: '${currentBranch}')" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo ">> Working in release branch '${RELEASE_BRANCH}'"
|
||||
|
||||
# Check for trigger tag existing in local repo
|
||||
if git tag -l | grep -q -E "^${TRIGGER_TAG}$"; then
|
||||
echo "!! Release tag '${TRIGGER_TAG}' already exists in local repository" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check for trigger tag existing in remote repo
|
||||
if git ls-remote ${GIT_REMOTE} refs/tags/${TRIGGER_TAG} | grep -q -E "^${NEW_TAG}$"; then
|
||||
echo "!! Target trigger tag '${TRIGGER_TAG}' already exists in remote '${GIT_REMOTE}'" >&2
|
||||
echo "!! Another operation currently in progress?" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check for target (version) tag in local repo
|
||||
if git tag -l | grep -q -E "^${NEW_TAG}$"; then
|
||||
echo "!! Target version tag '${NEW_TAG}' already exists in local repository" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check for target (version) tag in remote repo
|
||||
if git ls-remote ${GIT_REMOTE} refs/tags/${NEW_TAG} | grep -q -E "^${NEW_TAG}$"; then
|
||||
echo "!! Target version tag '${NEW_TAG}' already exists in remote '${GIT_REMOTE}'" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo ">> Creating new release '${NEW_TAG}' by pushing '${TRIGGER_TAG}' to '${GIT_REMOTE}'"
|
||||
|
||||
GIT_ARGS=""
|
||||
if test "${COMMIT_MSG}" != ""; then
|
||||
if ! test -f "${COMMIT_MSG}"; then
|
||||
echo "!! Release notes at '${COMMIT_MSG}' do not exist or are not readable." >&2
|
||||
exit 1
|
||||
fi
|
||||
GIT_ARGS="-F ${COMMIT_MSG}"
|
||||
fi
|
||||
|
||||
# We need different git comment char than '#', because markdown makes extensive
|
||||
# use of '#' - we chose ';' for our operation.
|
||||
origToken=$(git config core.commentChar || echo '#')
|
||||
echo ">> Saving original Git comment char '${origToken}' and setting it to ';' for this run"
|
||||
if ! git config core.commentChar ';'; then
|
||||
echo "!! Could not set git config commentChar ';'" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
trap cleanup SIGINT EXIT
|
||||
|
||||
# Create trigger tag in local repository
|
||||
git tag -a ${GIT_ARGS} ${TRIGGER_TAG}
|
||||
|
||||
# Push the trigger tag to remote repository
|
||||
git push ${GIT_REMOTE} ${TRIGGER_TAG}
|
||||
@@ -12,4 +12,4 @@ bases:
|
||||
images:
|
||||
- name: argoproj/argocd
|
||||
newName: argoproj/argocd
|
||||
newTag: latest
|
||||
newTag: v1.6.2
|
||||
|
||||
@@ -35,6 +35,18 @@ spec:
|
||||
operation:
|
||||
description: Operation contains requested operation parameters.
|
||||
properties:
|
||||
info:
|
||||
items:
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
value:
|
||||
type: string
|
||||
required:
|
||||
- name
|
||||
- value
|
||||
type: object
|
||||
type: array
|
||||
initiatedBy:
|
||||
description: OperationInitiator holds information about the operation
|
||||
initiator
|
||||
@@ -847,6 +859,18 @@ spec:
|
||||
operation:
|
||||
description: Operation is the original requested operation
|
||||
properties:
|
||||
info:
|
||||
items:
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
value:
|
||||
type: string
|
||||
required:
|
||||
- name
|
||||
- value
|
||||
type: object
|
||||
type: array
|
||||
initiatedBy:
|
||||
description: OperationInitiator holds information about the
|
||||
operation initiator
|
||||
|
||||
@@ -18,4 +18,4 @@ bases:
|
||||
images:
|
||||
- name: argoproj/argocd
|
||||
newName: argoproj/argocd
|
||||
newTag: latest
|
||||
newTag: v1.6.2
|
||||
|
||||
@@ -647,7 +647,7 @@ spec:
|
||||
serviceAccountName: argocd-redis-ha
|
||||
initContainers:
|
||||
- name: config-init
|
||||
image: redis:5.0.6-alpine
|
||||
image: redis:5.0.8-alpine
|
||||
imagePullPolicy: IfNotPresent
|
||||
resources:
|
||||
{}
|
||||
@@ -674,7 +674,7 @@ spec:
|
||||
mountPath: /data
|
||||
containers:
|
||||
- name: redis
|
||||
image: redis:5.0.6-alpine
|
||||
image: redis:5.0.8-alpine
|
||||
imagePullPolicy: IfNotPresent
|
||||
command:
|
||||
- redis-server
|
||||
@@ -694,7 +694,7 @@ spec:
|
||||
- mountPath: /data
|
||||
name: data
|
||||
- name: sentinel
|
||||
image: redis:5.0.6-alpine
|
||||
image: redis:5.0.8-alpine
|
||||
imagePullPolicy: IfNotPresent
|
||||
command:
|
||||
- redis-sentinel
|
||||
|
||||
@@ -7,3 +7,5 @@ redis-ha:
|
||||
save: "\"\""
|
||||
haproxy:
|
||||
enabled: true
|
||||
image:
|
||||
tag: 5.0.8-alpine
|
||||
@@ -36,6 +36,18 @@ spec:
|
||||
operation:
|
||||
description: Operation contains requested operation parameters.
|
||||
properties:
|
||||
info:
|
||||
items:
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
value:
|
||||
type: string
|
||||
required:
|
||||
- name
|
||||
- value
|
||||
type: object
|
||||
type: array
|
||||
initiatedBy:
|
||||
description: OperationInitiator holds information about the operation
|
||||
initiator
|
||||
@@ -848,6 +860,18 @@ spec:
|
||||
operation:
|
||||
description: Operation is the original requested operation
|
||||
properties:
|
||||
info:
|
||||
items:
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
value:
|
||||
type: string
|
||||
required:
|
||||
- name
|
||||
- value
|
||||
type: object
|
||||
type: array
|
||||
initiatedBy:
|
||||
description: OperationInitiator holds information about the
|
||||
operation initiator
|
||||
@@ -2871,7 +2895,7 @@ spec:
|
||||
- "10"
|
||||
- --redis
|
||||
- argocd-redis-ha-haproxy:6379
|
||||
image: argoproj/argocd:latest
|
||||
image: argoproj/argocd:v1.6.2
|
||||
imagePullPolicy: Always
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
@@ -2927,7 +2951,7 @@ spec:
|
||||
- -n
|
||||
- /usr/local/bin/argocd-util
|
||||
- /shared
|
||||
image: argoproj/argocd:latest
|
||||
image: argoproj/argocd:v1.6.2
|
||||
imagePullPolicy: Always
|
||||
name: copyutil
|
||||
volumeMounts:
|
||||
@@ -2977,7 +3001,7 @@ spec:
|
||||
- argocd-repo-server
|
||||
- --redis
|
||||
- argocd-redis-ha-haproxy:6379
|
||||
image: argoproj/argocd:latest
|
||||
image: argoproj/argocd:v1.6.2
|
||||
imagePullPolicy: Always
|
||||
livenessProbe:
|
||||
initialDelaySeconds: 5
|
||||
@@ -3045,7 +3069,7 @@ spec:
|
||||
- /shared/app
|
||||
- --redis
|
||||
- argocd-redis-ha-haproxy:6379
|
||||
image: argoproj/argocd:latest
|
||||
image: argoproj/argocd:v1.6.2
|
||||
imagePullPolicy: Always
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
@@ -3120,7 +3144,7 @@ spec:
|
||||
- /data/conf/redis.conf
|
||||
command:
|
||||
- redis-server
|
||||
image: redis:5.0.6-alpine
|
||||
image: redis:5.0.8-alpine
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
initialDelaySeconds: 15
|
||||
@@ -3138,7 +3162,7 @@ spec:
|
||||
- /data/conf/sentinel.conf
|
||||
command:
|
||||
- redis-sentinel
|
||||
image: redis:5.0.6-alpine
|
||||
image: redis:5.0.8-alpine
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
initialDelaySeconds: 15
|
||||
@@ -3164,7 +3188,7 @@ spec:
|
||||
value: 896627000a81c7bdad8dbdcffd39728c9c17b309
|
||||
- name: SENTINEL_ID_2
|
||||
value: 3acbca861108bc47379b71b1d87d1c137dce591f
|
||||
image: redis:5.0.6-alpine
|
||||
image: redis:5.0.8-alpine
|
||||
imagePullPolicy: IfNotPresent
|
||||
name: config-init
|
||||
resources: {}
|
||||
|
||||
@@ -36,6 +36,18 @@ spec:
|
||||
operation:
|
||||
description: Operation contains requested operation parameters.
|
||||
properties:
|
||||
info:
|
||||
items:
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
value:
|
||||
type: string
|
||||
required:
|
||||
- name
|
||||
- value
|
||||
type: object
|
||||
type: array
|
||||
initiatedBy:
|
||||
description: OperationInitiator holds information about the operation
|
||||
initiator
|
||||
@@ -848,6 +860,18 @@ spec:
|
||||
operation:
|
||||
description: Operation is the original requested operation
|
||||
properties:
|
||||
info:
|
||||
items:
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
value:
|
||||
type: string
|
||||
required:
|
||||
- name
|
||||
- value
|
||||
type: object
|
||||
type: array
|
||||
initiatedBy:
|
||||
description: OperationInitiator holds information about the
|
||||
operation initiator
|
||||
@@ -2786,7 +2810,7 @@ spec:
|
||||
- "10"
|
||||
- --redis
|
||||
- argocd-redis-ha-haproxy:6379
|
||||
image: argoproj/argocd:latest
|
||||
image: argoproj/argocd:v1.6.2
|
||||
imagePullPolicy: Always
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
@@ -2842,7 +2866,7 @@ spec:
|
||||
- -n
|
||||
- /usr/local/bin/argocd-util
|
||||
- /shared
|
||||
image: argoproj/argocd:latest
|
||||
image: argoproj/argocd:v1.6.2
|
||||
imagePullPolicy: Always
|
||||
name: copyutil
|
||||
volumeMounts:
|
||||
@@ -2892,7 +2916,7 @@ spec:
|
||||
- argocd-repo-server
|
||||
- --redis
|
||||
- argocd-redis-ha-haproxy:6379
|
||||
image: argoproj/argocd:latest
|
||||
image: argoproj/argocd:v1.6.2
|
||||
imagePullPolicy: Always
|
||||
livenessProbe:
|
||||
initialDelaySeconds: 5
|
||||
@@ -2960,7 +2984,7 @@ spec:
|
||||
- /shared/app
|
||||
- --redis
|
||||
- argocd-redis-ha-haproxy:6379
|
||||
image: argoproj/argocd:latest
|
||||
image: argoproj/argocd:v1.6.2
|
||||
imagePullPolicy: Always
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
@@ -3035,7 +3059,7 @@ spec:
|
||||
- /data/conf/redis.conf
|
||||
command:
|
||||
- redis-server
|
||||
image: redis:5.0.6-alpine
|
||||
image: redis:5.0.8-alpine
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
initialDelaySeconds: 15
|
||||
@@ -3053,7 +3077,7 @@ spec:
|
||||
- /data/conf/sentinel.conf
|
||||
command:
|
||||
- redis-sentinel
|
||||
image: redis:5.0.6-alpine
|
||||
image: redis:5.0.8-alpine
|
||||
imagePullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
initialDelaySeconds: 15
|
||||
@@ -3079,7 +3103,7 @@ spec:
|
||||
value: 896627000a81c7bdad8dbdcffd39728c9c17b309
|
||||
- name: SENTINEL_ID_2
|
||||
value: 3acbca861108bc47379b71b1d87d1c137dce591f
|
||||
image: redis:5.0.6-alpine
|
||||
image: redis:5.0.8-alpine
|
||||
imagePullPolicy: IfNotPresent
|
||||
name: config-init
|
||||
resources: {}
|
||||
|
||||
@@ -36,6 +36,18 @@ spec:
|
||||
operation:
|
||||
description: Operation contains requested operation parameters.
|
||||
properties:
|
||||
info:
|
||||
items:
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
value:
|
||||
type: string
|
||||
required:
|
||||
- name
|
||||
- value
|
||||
type: object
|
||||
type: array
|
||||
initiatedBy:
|
||||
description: OperationInitiator holds information about the operation
|
||||
initiator
|
||||
@@ -848,6 +860,18 @@ spec:
|
||||
operation:
|
||||
description: Operation is the original requested operation
|
||||
properties:
|
||||
info:
|
||||
items:
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
value:
|
||||
type: string
|
||||
required:
|
||||
- name
|
||||
- value
|
||||
type: object
|
||||
type: array
|
||||
initiatedBy:
|
||||
description: OperationInitiator holds information about the
|
||||
operation initiator
|
||||
@@ -2371,7 +2395,7 @@ spec:
|
||||
- "20"
|
||||
- --operation-processors
|
||||
- "10"
|
||||
image: argoproj/argocd:latest
|
||||
image: argoproj/argocd:v1.6.2
|
||||
imagePullPolicy: Always
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
@@ -2427,7 +2451,7 @@ spec:
|
||||
- -n
|
||||
- /usr/local/bin/argocd-util
|
||||
- /shared
|
||||
image: argoproj/argocd:latest
|
||||
image: argoproj/argocd:v1.6.2
|
||||
imagePullPolicy: Always
|
||||
name: copyutil
|
||||
volumeMounts:
|
||||
@@ -2491,7 +2515,7 @@ spec:
|
||||
- argocd-repo-server
|
||||
- --redis
|
||||
- argocd-redis:6379
|
||||
image: argoproj/argocd:latest
|
||||
image: argoproj/argocd:v1.6.2
|
||||
imagePullPolicy: Always
|
||||
livenessProbe:
|
||||
initialDelaySeconds: 5
|
||||
@@ -2542,7 +2566,7 @@ spec:
|
||||
- argocd-server
|
||||
- --staticassets
|
||||
- /shared/app
|
||||
image: argoproj/argocd:latest
|
||||
image: argoproj/argocd:v1.6.2
|
||||
imagePullPolicy: Always
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
|
||||
@@ -36,6 +36,18 @@ spec:
|
||||
operation:
|
||||
description: Operation contains requested operation parameters.
|
||||
properties:
|
||||
info:
|
||||
items:
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
value:
|
||||
type: string
|
||||
required:
|
||||
- name
|
||||
- value
|
||||
type: object
|
||||
type: array
|
||||
initiatedBy:
|
||||
description: OperationInitiator holds information about the operation
|
||||
initiator
|
||||
@@ -848,6 +860,18 @@ spec:
|
||||
operation:
|
||||
description: Operation is the original requested operation
|
||||
properties:
|
||||
info:
|
||||
items:
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
value:
|
||||
type: string
|
||||
required:
|
||||
- name
|
||||
- value
|
||||
type: object
|
||||
type: array
|
||||
initiatedBy:
|
||||
description: OperationInitiator holds information about the
|
||||
operation initiator
|
||||
@@ -2286,7 +2310,7 @@ spec:
|
||||
- "20"
|
||||
- --operation-processors
|
||||
- "10"
|
||||
image: argoproj/argocd:latest
|
||||
image: argoproj/argocd:v1.6.2
|
||||
imagePullPolicy: Always
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
@@ -2342,7 +2366,7 @@ spec:
|
||||
- -n
|
||||
- /usr/local/bin/argocd-util
|
||||
- /shared
|
||||
image: argoproj/argocd:latest
|
||||
image: argoproj/argocd:v1.6.2
|
||||
imagePullPolicy: Always
|
||||
name: copyutil
|
||||
volumeMounts:
|
||||
@@ -2406,7 +2430,7 @@ spec:
|
||||
- argocd-repo-server
|
||||
- --redis
|
||||
- argocd-redis:6379
|
||||
image: argoproj/argocd:latest
|
||||
image: argoproj/argocd:v1.6.2
|
||||
imagePullPolicy: Always
|
||||
livenessProbe:
|
||||
initialDelaySeconds: 5
|
||||
@@ -2457,7 +2481,7 @@ spec:
|
||||
- argocd-server
|
||||
- --staticassets
|
||||
- /shared/app
|
||||
image: argoproj/argocd:latest
|
||||
image: argoproj/argocd:v1.6.2
|
||||
imagePullPolicy: Always
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
|
||||
@@ -349,6 +349,7 @@ var xxx_messageInfo_ApplicationResponse proto.InternalMessageInfo
|
||||
type ApplicationCreateRequest struct {
|
||||
Application v1alpha1.Application `protobuf:"bytes,1,req,name=application" json:"application"`
|
||||
Upsert *bool `protobuf:"varint,2,opt,name=upsert" json:"upsert,omitempty"`
|
||||
Validate *bool `protobuf:"varint,3,opt,name=validate" json:"validate,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
@@ -401,8 +402,16 @@ func (m *ApplicationCreateRequest) GetUpsert() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
func (m *ApplicationCreateRequest) GetValidate() bool {
|
||||
if m != nil && m.Validate != nil {
|
||||
return *m.Validate
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
type ApplicationUpdateRequest struct {
|
||||
Application *v1alpha1.Application `protobuf:"bytes,1,req,name=application" json:"application,omitempty"`
|
||||
Validate *bool `protobuf:"varint,2,opt,name=validate" json:"validate,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
@@ -448,6 +457,13 @@ func (m *ApplicationUpdateRequest) GetApplication() *v1alpha1.Application {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *ApplicationUpdateRequest) GetValidate() bool {
|
||||
if m != nil && m.Validate != nil {
|
||||
return *m.Validate
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
type ApplicationDeleteRequest struct {
|
||||
Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"`
|
||||
Cascade *bool `protobuf:"varint,2,opt,name=cascade" json:"cascade,omitempty"`
|
||||
@@ -512,6 +528,7 @@ type ApplicationSyncRequest struct {
|
||||
Strategy *v1alpha1.SyncStrategy `protobuf:"bytes,5,opt,name=strategy" json:"strategy,omitempty"`
|
||||
Resources []v1alpha1.SyncOperationResource `protobuf:"bytes,7,rep,name=resources" json:"resources"`
|
||||
Manifests []string `protobuf:"bytes,8,rep,name=manifests" json:"manifests,omitempty"`
|
||||
Infos []*v1alpha1.Info `protobuf:"bytes,9,rep,name=infos" json:"infos,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
@@ -599,10 +616,18 @@ func (m *ApplicationSyncRequest) GetManifests() []string {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *ApplicationSyncRequest) GetInfos() []*v1alpha1.Info {
|
||||
if m != nil {
|
||||
return m.Infos
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// ApplicationUpdateSpecRequest is a request to update application spec
|
||||
type ApplicationUpdateSpecRequest struct {
|
||||
Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"`
|
||||
Spec v1alpha1.ApplicationSpec `protobuf:"bytes,2,req,name=spec" json:"spec"`
|
||||
Validate *bool `protobuf:"varint,3,opt,name=validate" json:"validate,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
@@ -655,6 +680,13 @@ func (m *ApplicationUpdateSpecRequest) GetSpec() v1alpha1.ApplicationSpec {
|
||||
return v1alpha1.ApplicationSpec{}
|
||||
}
|
||||
|
||||
func (m *ApplicationUpdateSpecRequest) GetValidate() bool {
|
||||
if m != nil && m.Validate != nil {
|
||||
return *m.Validate
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
// ApplicationPatchRequest is a request to patch an application
|
||||
type ApplicationPatchRequest struct {
|
||||
Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"`
|
||||
@@ -1858,136 +1890,139 @@ func init() {
|
||||
}
|
||||
|
||||
var fileDescriptor_df6e82b174b5eaec = []byte{
|
||||
// 2059 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x59, 0xcd, 0x8f, 0x1c, 0x47,
|
||||
0x15, 0xa7, 0x66, 0x76, 0x77, 0x66, 0xdf, 0x3a, 0xb1, 0x53, 0x89, 0x4d, 0xa7, 0x3d, 0x5e, 0x8f,
|
||||
0xca, 0x5f, 0xeb, 0xb5, 0xb7, 0xc7, 0xbb, 0x18, 0x08, 0x0b, 0x52, 0xf0, 0xc6, 0x66, 0x6d, 0x58,
|
||||
0x9b, 0x65, 0xd6, 0x21, 0x12, 0x12, 0x42, 0x9d, 0xee, 0xda, 0xd9, 0x66, 0x67, 0xba, 0x9b, 0xee,
|
||||
0x9e, 0xb1, 0x06, 0xcb, 0x87, 0x04, 0x84, 0x38, 0x20, 0x10, 0x82, 0x43, 0x40, 0x7c, 0x29, 0x5c,
|
||||
0xb9, 0x21, 0x2e, 0x1c, 0xb8, 0x81, 0x72, 0x44, 0x24, 0x67, 0x0b, 0xad, 0xf8, 0x03, 0x38, 0x71,
|
||||
0x46, 0x55, 0x5d, 0xd5, 0x5d, 0x35, 0xee, 0xe9, 0x19, 0xc7, 0x93, 0x83, 0x6f, 0x53, 0xaf, 0xaa,
|
||||
0xdf, 0xfb, 0xbd, 0x8f, 0xfa, 0x55, 0xd5, 0x1b, 0x38, 0x1f, 0xd3, 0x68, 0x40, 0xa3, 0x96, 0x1d,
|
||||
0x86, 0x5d, 0xcf, 0xb1, 0x13, 0x2f, 0xf0, 0xd5, 0xdf, 0x56, 0x18, 0x05, 0x49, 0x80, 0x97, 0x14,
|
||||
0x91, 0xf9, 0x4a, 0x27, 0xe8, 0x04, 0x5c, 0xde, 0x62, 0xbf, 0xd2, 0x25, 0x66, 0xa3, 0x13, 0x04,
|
||||
0x9d, 0x2e, 0x6d, 0xd9, 0xa1, 0xd7, 0xb2, 0x7d, 0x3f, 0x48, 0xf8, 0xe2, 0x58, 0xcc, 0x92, 0xc3,
|
||||
0xd7, 0x62, 0xcb, 0x0b, 0xf8, 0xac, 0x13, 0x44, 0xb4, 0x35, 0x58, 0x6f, 0x75, 0xa8, 0x4f, 0x23,
|
||||
0x3b, 0xa1, 0xae, 0x58, 0x73, 0x3d, 0x5f, 0xd3, 0xb3, 0x9d, 0x03, 0xcf, 0xa7, 0xd1, 0xb0, 0x15,
|
||||
0x1e, 0x76, 0x98, 0x20, 0x6e, 0xf5, 0x68, 0x62, 0x17, 0x7d, 0x75, 0xa7, 0xe3, 0x25, 0x07, 0xfd,
|
||||
0xb7, 0x2d, 0x27, 0xe8, 0xb5, 0xec, 0x88, 0x03, 0xfb, 0x2e, 0xff, 0xb1, 0xe6, 0xb8, 0xf9, 0xd7,
|
||||
0xaa, 0x7b, 0x83, 0x75, 0xbb, 0x1b, 0x1e, 0xd8, 0x4f, 0xaa, 0xda, 0x2a, 0x53, 0x15, 0xd1, 0x30,
|
||||
0x10, 0xb1, 0xe2, 0x3f, 0xbd, 0x24, 0x88, 0x86, 0xca, 0xcf, 0x54, 0x07, 0xf9, 0x2b, 0x82, 0x13,
|
||||
0x37, 0x72, 0x63, 0xdf, 0xe8, 0xd3, 0x68, 0x88, 0x31, 0xcc, 0xf9, 0x76, 0x8f, 0x1a, 0xa8, 0x89,
|
||||
0x56, 0x16, 0xdb, 0xfc, 0x37, 0x36, 0xa0, 0x16, 0xd1, 0xfd, 0x88, 0xc6, 0x07, 0x46, 0x85, 0x8b,
|
||||
0xe5, 0x10, 0x5f, 0x84, 0x1a, 0xb3, 0x4c, 0x9d, 0xc4, 0xa8, 0x36, 0xab, 0x2b, 0x8b, 0x5b, 0xc7,
|
||||
0x8e, 0x1e, 0x9f, 0xad, 0xef, 0xa6, 0xa2, 0xb8, 0x2d, 0x27, 0xb1, 0x05, 0xc7, 0x23, 0x1a, 0x07,
|
||||
0xfd, 0xc8, 0xa1, 0xdf, 0xa4, 0x51, 0xec, 0x05, 0xbe, 0x31, 0xc7, 0x34, 0x6d, 0xcd, 0x7d, 0xf0,
|
||||
0xf8, 0xec, 0xa7, 0xda, 0xa3, 0x93, 0xb8, 0x09, 0xf5, 0x98, 0x76, 0xa9, 0x93, 0x04, 0x91, 0x31,
|
||||
0xaf, 0x2c, 0xcc, 0xa4, 0x64, 0x1b, 0x4e, 0xb6, 0xe9, 0xc0, 0x63, 0xab, 0xef, 0xd2, 0xc4, 0x76,
|
||||
0xed, 0xc4, 0x1e, 0x75, 0xa0, 0x92, 0x39, 0x60, 0x42, 0x3d, 0x12, 0x8b, 0x8d, 0x0a, 0x97, 0x67,
|
||||
0x63, 0x16, 0x85, 0x65, 0x25, 0x0a, 0x6d, 0x81, 0xe4, 0xd6, 0x80, 0xfa, 0x49, 0x3c, 0x5e, 0xe5,
|
||||
0x06, 0xbc, 0x24, 0x41, 0xdf, 0xb3, 0x7b, 0x34, 0x0e, 0x6d, 0x87, 0xa6, 0xba, 0x05, 0xd4, 0x27,
|
||||
0xa7, 0xf1, 0x0a, 0x1c, 0x53, 0x85, 0x46, 0x55, 0x59, 0xae, 0xcd, 0xe0, 0x8b, 0xb0, 0x24, 0xc7,
|
||||
0x6f, 0xde, 0xb9, 0x69, 0xcc, 0x29, 0x0b, 0xd5, 0x09, 0xb2, 0x0b, 0x86, 0x82, 0xfd, 0xae, 0xed,
|
||||
0x7b, 0xfb, 0x34, 0x4e, 0xc6, 0xa3, 0x6e, 0x6a, 0x81, 0x50, 0xe2, 0x9a, 0x85, 0xe3, 0x24, 0xbc,
|
||||
0xac, 0x47, 0x23, 0x0c, 0xfc, 0x98, 0x92, 0xf7, 0x91, 0x66, 0xe9, 0x8d, 0x88, 0xda, 0x09, 0x6d,
|
||||
0xd3, 0xef, 0xf5, 0x69, 0x9c, 0x60, 0x1f, 0xd4, 0x4d, 0xc7, 0x0d, 0x2e, 0x6d, 0x7c, 0xc5, 0xca,
|
||||
0x4b, 0xd4, 0x92, 0x25, 0xca, 0x7f, 0x7c, 0xc7, 0x71, 0xad, 0xf0, 0xb0, 0x63, 0xb1, 0x6a, 0xb7,
|
||||
0xd4, 0x0d, 0x2c, 0xab, 0xdd, 0x52, 0x2c, 0x49, 0xaf, 0x95, 0x75, 0xf8, 0x14, 0x2c, 0xf4, 0xc3,
|
||||
0x98, 0x46, 0x09, 0xf7, 0xa1, 0xde, 0x16, 0x23, 0xf2, 0x43, 0x1d, 0xe4, 0x9b, 0xa1, 0xab, 0x80,
|
||||
0x3c, 0xf8, 0x04, 0x41, 0x6a, 0xf0, 0xc8, 0x6d, 0x0d, 0xc5, 0x4d, 0xda, 0xa5, 0x39, 0x8a, 0xa2,
|
||||
0xa4, 0x18, 0x50, 0x73, 0xec, 0xd8, 0xb1, 0x5d, 0x2a, 0xfc, 0x91, 0x43, 0xf2, 0x4e, 0x15, 0x4e,
|
||||
0x29, 0xaa, 0xf6, 0x86, 0xbe, 0x53, 0xa6, 0x68, 0x62, 0x76, 0x71, 0x03, 0x16, 0xdc, 0x68, 0xd8,
|
||||
0xee, 0xfb, 0x46, 0x95, 0x59, 0x12, 0xf3, 0x42, 0x86, 0x4d, 0x98, 0x0f, 0xa3, 0xbe, 0x4f, 0xf9,
|
||||
0xde, 0x94, 0x93, 0xa9, 0x08, 0x3b, 0x50, 0x8f, 0x13, 0xc6, 0x40, 0x9d, 0x21, 0xdf, 0x91, 0x4b,
|
||||
0x1b, 0xdb, 0xcf, 0x10, 0x3b, 0xe6, 0xc9, 0x9e, 0x50, 0xd7, 0xce, 0x14, 0xe3, 0x04, 0x16, 0x65,
|
||||
0x75, 0xc7, 0x46, 0xad, 0x59, 0x5d, 0x59, 0xda, 0xd8, 0x7d, 0x46, 0x2b, 0x5f, 0x0f, 0x19, 0x6f,
|
||||
0x2a, 0x1b, 0x5b, 0xb8, 0x95, 0x1b, 0xc2, 0x0d, 0x58, 0xec, 0x89, 0x9d, 0x13, 0x1b, 0x75, 0x46,
|
||||
0x63, 0xed, 0x5c, 0x40, 0xde, 0x43, 0xd0, 0x78, 0xa2, 0xa8, 0xf6, 0x42, 0x5a, 0x9a, 0x09, 0x17,
|
||||
0xe6, 0xe2, 0x90, 0x3a, 0x9c, 0x10, 0x96, 0x36, 0xbe, 0x3a, 0x9b, 0x2a, 0x63, 0x46, 0x05, 0x7a,
|
||||
0xae, 0x9d, 0xf4, 0xe0, 0xd3, 0xca, 0xf4, 0xae, 0x9d, 0x38, 0x07, 0x65, 0xa0, 0x58, 0x7a, 0xd9,
|
||||
0x1a, 0x8d, 0xa6, 0x52, 0x11, 0x26, 0xb0, 0xc8, 0x7f, 0xdc, 0x1f, 0x86, 0x3a, 0x2f, 0xe5, 0x62,
|
||||
0xf2, 0x23, 0x04, 0xa6, 0x5a, 0xf4, 0x41, 0xb7, 0xfb, 0xb6, 0xed, 0x1c, 0x96, 0x9b, 0xac, 0x78,
|
||||
0x2e, 0xb7, 0x57, 0xdd, 0x02, 0xa6, 0xef, 0xe8, 0xf1, 0xd9, 0xca, 0x9d, 0x9b, 0xed, 0x8a, 0xe7,
|
||||
0x7e, 0xfc, 0x5a, 0x24, 0x1f, 0x8d, 0x00, 0x11, 0x99, 0x2c, 0x03, 0x42, 0x60, 0xd1, 0x2f, 0xa4,
|
||||
0xe9, 0x5c, 0xfc, 0x14, 0xf4, 0xbc, 0x0c, 0xb5, 0x41, 0x76, 0x8c, 0xe5, 0x8b, 0xa4, 0x90, 0x81,
|
||||
0xef, 0x44, 0x41, 0x3f, 0x34, 0xe6, 0xd5, 0x48, 0x73, 0x11, 0x36, 0x60, 0xee, 0xd0, 0xf3, 0x5d,
|
||||
0x63, 0x41, 0x99, 0xe2, 0x12, 0xf2, 0xab, 0x0a, 0x9c, 0x2d, 0x70, 0x6b, 0x62, 0x5e, 0x9f, 0x03,
|
||||
0xdf, 0xf2, 0xda, 0xab, 0x4d, 0xa8, 0xbd, 0x7a, 0x71, 0xed, 0xfd, 0x0f, 0x41, 0xb3, 0x20, 0x36,
|
||||
0x93, 0xc9, 0xf5, 0x39, 0x09, 0xce, 0x7e, 0x10, 0x39, 0xd4, 0xa8, 0x65, 0xb5, 0x8e, 0xda, 0xa9,
|
||||
0x88, 0xfc, 0x17, 0x81, 0x21, 0xbd, 0xbd, 0xe1, 0x70, 0xdf, 0xfb, 0xfe, 0xf3, 0xee, 0x70, 0x03,
|
||||
0x16, 0x6c, 0xee, 0x8b, 0x56, 0x0e, 0x42, 0x46, 0x7e, 0x8c, 0xe0, 0xb4, 0xee, 0x72, 0xbc, 0xe3,
|
||||
0xc5, 0x89, 0xbc, 0x8b, 0x60, 0x0f, 0x6a, 0xe9, 0xca, 0xd8, 0x40, 0xfc, 0x8c, 0xb8, 0xf3, 0x0c,
|
||||
0xfc, 0xaa, 0x1b, 0x92, 0xee, 0x09, 0xfd, 0xe4, 0x75, 0x38, 0x5d, 0x48, 0x34, 0x02, 0x49, 0x13,
|
||||
0xea, 0xf2, 0xa0, 0x48, 0x73, 0x20, 0x0f, 0x5c, 0x29, 0x25, 0x7f, 0xaf, 0xe8, 0x1c, 0x1d, 0xb8,
|
||||
0x3b, 0x41, 0xa7, 0xe4, 0x5a, 0x39, 0x4d, 0xf6, 0x0c, 0xa8, 0x85, 0x81, 0x9b, 0x27, 0xae, 0x2d,
|
||||
0x87, 0xec, 0x6b, 0x27, 0xf0, 0x13, 0x9b, 0xbd, 0x47, 0xb4, 0x7c, 0xe5, 0x62, 0x96, 0xfb, 0xd8,
|
||||
0xf3, 0x1d, 0xba, 0x47, 0x9d, 0xc0, 0x77, 0x63, 0x9e, 0xb8, 0xaa, 0xcc, 0xbd, 0x3a, 0x83, 0x6f,
|
||||
0xc3, 0x22, 0x1f, 0xdf, 0xf7, 0x7a, 0xd4, 0x58, 0xe0, 0x67, 0xfe, 0xaa, 0x95, 0x3e, 0x7c, 0x2c,
|
||||
0xf5, 0xe1, 0x93, 0x47, 0x98, 0x3d, 0x7c, 0xac, 0xc1, 0xba, 0xc5, 0xbe, 0x68, 0xe7, 0x1f, 0x33,
|
||||
0x5c, 0x89, 0xed, 0x75, 0x77, 0x3c, 0x9f, 0x9f, 0xeb, 0xb9, 0xc1, 0x5c, 0xcc, 0x6a, 0x62, 0x3f,
|
||||
0xe8, 0x76, 0x83, 0x07, 0x9c, 0x02, 0xb2, 0xe3, 0x20, 0x95, 0x91, 0xef, 0x43, 0x7d, 0x27, 0xe8,
|
||||
0xdc, 0xf2, 0x93, 0x68, 0xc8, 0x6a, 0x92, 0xb9, 0x43, 0x7d, 0x3d, 0xe8, 0x52, 0x88, 0xef, 0xc1,
|
||||
0x62, 0xe2, 0xf5, 0xe8, 0x5e, 0x62, 0xf7, 0x42, 0x71, 0x02, 0x3f, 0x05, 0xee, 0x0c, 0x99, 0x54,
|
||||
0x41, 0x5a, 0xf0, 0x6a, 0x76, 0x8b, 0xb8, 0x4f, 0xa3, 0x9e, 0xe7, 0xdb, 0xa5, 0x9c, 0x43, 0xd6,
|
||||
0xb5, 0xaa, 0x61, 0xb7, 0x90, 0xb7, 0x3c, 0xdf, 0x0d, 0x1e, 0x8c, 0xcf, 0x3b, 0xf9, 0x97, 0xfe,
|
||||
0x0a, 0x51, 0xbe, 0xc9, 0x8a, 0xed, 0x36, 0xbc, 0xc0, 0xca, 0x72, 0x40, 0xc5, 0x84, 0x28, 0x7e,
|
||||
0xa2, 0xd5, 0x75, 0xa1, 0x8e, 0xb6, 0xfe, 0x21, 0xde, 0x81, 0xe3, 0x76, 0x1c, 0x7b, 0x1d, 0x9f,
|
||||
0xba, 0x52, 0x57, 0x65, 0x6a, 0x5d, 0xa3, 0x9f, 0xa6, 0xd7, 0x57, 0xbe, 0x82, 0x97, 0x23, 0xbf,
|
||||
0xbe, 0xf2, 0x21, 0xf9, 0x01, 0x82, 0x93, 0x85, 0x4a, 0x58, 0x08, 0x38, 0x35, 0x88, 0x10, 0x08,
|
||||
0x16, 0xac, 0xc7, 0xce, 0x01, 0x75, 0xfb, 0x5d, 0x2a, 0x1f, 0x69, 0x72, 0xcc, 0xe6, 0xdc, 0x7e,
|
||||
0x9a, 0x01, 0x51, 0xf3, 0xd9, 0x18, 0x2f, 0x03, 0xf4, 0x6c, 0xbf, 0x6f, 0x77, 0x39, 0x84, 0x39,
|
||||
0x0e, 0x41, 0x91, 0x90, 0x06, 0x98, 0x45, 0xe9, 0x13, 0x0f, 0x9b, 0x8f, 0x10, 0xbc, 0x28, 0xf7,
|
||||
0xb5, 0xc8, 0x8f, 0x05, 0xc7, 0x95, 0x30, 0xdc, 0xcb, 0x52, 0x25, 0x88, 0x79, 0x74, 0x72, 0x74,
|
||||
0xcf, 0xa2, 0xe2, 0x3d, 0x9b, 0xe6, 0xbc, 0xaa, 0x4c, 0xa7, 0x3b, 0x5e, 0x63, 0x58, 0x54, 0xca,
|
||||
0xb0, 0x68, 0x3c, 0xc3, 0xa2, 0x91, 0xbb, 0xc4, 0x10, 0x8c, 0xbb, 0xb6, 0x6f, 0x77, 0xa8, 0x9b,
|
||||
0x39, 0x97, 0x15, 0xd2, 0xb7, 0x61, 0xde, 0x4b, 0x68, 0x4f, 0x16, 0xd0, 0xf6, 0x0c, 0xd8, 0xf3,
|
||||
0xa6, 0xb7, 0xbf, 0xdf, 0x4e, 0xb5, 0x6e, 0x7c, 0xd8, 0x00, 0xac, 0x66, 0x9d, 0x46, 0x03, 0xcf,
|
||||
0xa1, 0xf8, 0x67, 0x08, 0xe6, 0x18, 0x8d, 0xe3, 0x33, 0xe3, 0x8a, 0x8c, 0x47, 0xdf, 0x9c, 0xd1,
|
||||
0x65, 0x99, 0x99, 0x22, 0x8d, 0x77, 0x3f, 0xfc, 0xcf, 0x2f, 0x2a, 0xa7, 0xf0, 0x2b, 0xbc, 0x99,
|
||||
0x33, 0x58, 0x57, 0x7b, 0x2b, 0x31, 0xfe, 0x09, 0x02, 0x2c, 0x0e, 0x16, 0xe5, 0xc9, 0x8f, 0xaf,
|
||||
0x8c, 0xc3, 0x57, 0xd0, 0x1a, 0x30, 0xcf, 0x28, 0xc4, 0x62, 0x39, 0x41, 0x44, 0x19, 0x8d, 0xf0,
|
||||
0x05, 0x1c, 0xc0, 0x2a, 0x07, 0x70, 0x1e, 0x93, 0x22, 0x00, 0xad, 0x87, 0xac, 0x00, 0x1e, 0xb5,
|
||||
0x68, 0x6a, 0xf7, 0xf7, 0x08, 0xe6, 0xdf, 0xe2, 0x17, 0xa2, 0x09, 0x11, 0xda, 0x9d, 0x4d, 0x84,
|
||||
0xb8, 0x2d, 0x0e, 0x95, 0x9c, 0xe3, 0x30, 0xcf, 0xe0, 0xd3, 0x12, 0x66, 0x9c, 0x44, 0xd4, 0xee,
|
||||
0x69, 0x68, 0xaf, 0x21, 0xfc, 0x3e, 0x82, 0x85, 0xf4, 0xe5, 0x8f, 0x2f, 0x8c, 0x83, 0xa8, 0x75,
|
||||
0x06, 0xcc, 0x19, 0xbd, 0xaf, 0xc9, 0x65, 0x0e, 0xf0, 0x1c, 0x29, 0x4c, 0xe4, 0xa6, 0xd6, 0x1c,
|
||||
0xf8, 0x39, 0x82, 0xea, 0x36, 0x9d, 0x58, 0x66, 0xb3, 0x42, 0xf6, 0x44, 0xe8, 0x0a, 0x32, 0x8c,
|
||||
0xff, 0x88, 0xe0, 0xd5, 0x6d, 0x9a, 0x14, 0x13, 0x3c, 0x5e, 0x99, 0xcc, 0xba, 0xa2, 0xda, 0xae,
|
||||
0x4c, 0xb1, 0x32, 0x63, 0xb6, 0x16, 0x47, 0x76, 0x19, 0x5f, 0x2a, 0xab, 0xbd, 0x78, 0xe8, 0x3b,
|
||||
0x0f, 0x04, 0x8e, 0x7f, 0x20, 0x38, 0x31, 0xda, 0x53, 0xc3, 0xfa, 0x91, 0x50, 0xd8, 0x72, 0x33,
|
||||
0xbf, 0xf6, 0x4c, 0x0c, 0xa2, 0x6b, 0x24, 0x37, 0x38, 0xec, 0x2f, 0xe2, 0x2f, 0x94, 0xc1, 0x96,
|
||||
0x0d, 0x8d, 0xb8, 0xf5, 0x50, 0xfe, 0x7c, 0xc4, 0xdb, 0xae, 0x1c, 0xf3, 0xbb, 0x08, 0x8e, 0x6d,
|
||||
0xd3, 0x44, 0xb6, 0xc3, 0xe2, 0xf1, 0xd5, 0xaa, 0x75, 0xcc, 0xcc, 0x86, 0xa5, 0xf4, 0x48, 0xe5,
|
||||
0x54, 0x16, 0xcf, 0x35, 0x0e, 0xec, 0x12, 0xbe, 0x50, 0x06, 0x2c, 0xeb, 0x1b, 0xe0, 0xbf, 0x21,
|
||||
0x58, 0x48, 0x9b, 0x05, 0xe3, 0xcd, 0x6b, 0x1d, 0xaa, 0x99, 0x95, 0xe4, 0x2d, 0x0e, 0xf4, 0x75,
|
||||
0xf3, 0x5a, 0x31, 0x50, 0xf5, 0x7b, 0x19, 0x32, 0x8b, 0xa3, 0xd7, 0x37, 0xd2, 0x9f, 0x11, 0x40,
|
||||
0xde, 0xed, 0xc0, 0x97, 0xcb, 0x9d, 0x50, 0x3a, 0x22, 0xe6, 0x0c, 0xfb, 0x1d, 0xc4, 0xe2, 0xce,
|
||||
0xac, 0x98, 0xcd, 0xd2, 0x2a, 0x0e, 0xa9, 0xb3, 0xc9, 0x7b, 0x22, 0xf8, 0xb7, 0x08, 0xe6, 0xf9,
|
||||
0x8b, 0x19, 0x9f, 0x1f, 0x07, 0x58, 0x7d, 0x50, 0xcf, 0x2c, 0xe8, 0x17, 0x39, 0xce, 0xe6, 0x46,
|
||||
0x19, 0x0f, 0x6c, 0xa2, 0x55, 0x3c, 0x80, 0x85, 0xf4, 0xd1, 0x3a, 0xbe, 0x2a, 0xb4, 0x47, 0xad,
|
||||
0xd9, 0x2c, 0x39, 0x8e, 0xd2, 0xc2, 0x14, 0x14, 0xb4, 0x5a, 0x4a, 0x41, 0x7f, 0x40, 0x30, 0xc7,
|
||||
0x58, 0x02, 0x9f, 0x2b, 0xe3, 0x90, 0x59, 0x47, 0xe5, 0x0a, 0x87, 0x76, 0x81, 0x34, 0x27, 0x71,
|
||||
0x10, 0x0b, 0xcd, 0x7b, 0x08, 0x4e, 0x8c, 0x5e, 0x5a, 0xf0, 0xe9, 0x11, 0xfe, 0x51, 0x6f, 0x6a,
|
||||
0xa6, 0x1e, 0xc2, 0x71, 0x17, 0x1e, 0xf2, 0x65, 0x8e, 0x62, 0x13, 0xbf, 0x36, 0x71, 0x43, 0xdc,
|
||||
0x93, 0x9b, 0x98, 0x29, 0x5a, 0xcb, 0x5b, 0x84, 0x7f, 0x41, 0x70, 0x4c, 0xea, 0xbd, 0x1f, 0x51,
|
||||
0x5a, 0x0e, 0x6b, 0x46, 0xf5, 0xcf, 0x0c, 0x91, 0x2f, 0x71, 0xec, 0x9f, 0xc3, 0xd7, 0xa7, 0xc4,
|
||||
0x2e, 0x31, 0xaf, 0x25, 0x0c, 0xe6, 0x9f, 0x10, 0xd4, 0x65, 0x9f, 0x0e, 0x5f, 0x1a, 0x5b, 0x49,
|
||||
0x7a, 0x27, 0x6f, 0x66, 0xd9, 0x17, 0x27, 0x10, 0x39, 0x5f, 0x4a, 0xe5, 0xc2, 0x38, 0xab, 0x80,
|
||||
0x5f, 0x22, 0xc0, 0xd9, 0x15, 0x3d, 0xbb, 0xb4, 0xe3, 0x8b, 0x9a, 0xa9, 0xb1, 0x6f, 0x31, 0xf3,
|
||||
0xd2, 0xc4, 0x75, 0x3a, 0x95, 0xaf, 0x96, 0x52, 0x79, 0x90, 0xd9, 0xff, 0x29, 0x82, 0xa5, 0x6d,
|
||||
0x9a, 0xdd, 0x13, 0x4b, 0x02, 0xa9, 0x77, 0x22, 0xcd, 0x95, 0xc9, 0x0b, 0x05, 0xa2, 0xab, 0x1c,
|
||||
0xd1, 0x45, 0x5c, 0x1e, 0x2a, 0x09, 0xe0, 0x37, 0x08, 0x5e, 0x10, 0x2c, 0x26, 0x24, 0x57, 0x27,
|
||||
0x59, 0xd2, 0x48, 0x6f, 0x7a, 0x5c, 0x9f, 0xe1, 0xb8, 0xd6, 0xc8, 0x54, 0xb8, 0x36, 0x45, 0x43,
|
||||
0xef, 0x77, 0x08, 0x5e, 0x56, 0x2f, 0xd6, 0xa2, 0x89, 0xf3, 0x71, 0xe3, 0x56, 0xd2, 0x0b, 0x22,
|
||||
0xd7, 0x39, 0x3e, 0x0b, 0x5f, 0x9d, 0x06, 0x5f, 0x4b, 0xb4, 0x75, 0xf0, 0xaf, 0x11, 0xbc, 0xc4,
|
||||
0xdb, 0x68, 0xaa, 0xe2, 0x11, 0x42, 0x1e, 0xd7, 0x74, 0x9b, 0x82, 0x90, 0xc5, 0x9e, 0x25, 0x4f,
|
||||
0x05, 0x6a, 0x53, 0xb4, 0xbf, 0xd8, 0x43, 0xe9, 0x45, 0x79, 0x04, 0x88, 0xec, 0xae, 0x4d, 0x0a,
|
||||
0xdc, 0xd3, 0x1e, 0x19, 0xa2, 0xdc, 0x56, 0xa7, 0x2b, 0xb7, 0x77, 0x10, 0xd4, 0x44, 0xe7, 0xaa,
|
||||
0xe4, 0x54, 0x55, 0x5a, 0x5b, 0xe6, 0x49, 0x6d, 0x95, 0xec, 0xdc, 0x90, 0xcf, 0x73, 0xb3, 0xeb,
|
||||
0xb8, 0x55, 0x66, 0x36, 0x0c, 0xdc, 0xb8, 0xf5, 0x50, 0xb4, 0xb4, 0x1e, 0xb5, 0xba, 0x41, 0x27,
|
||||
0xbe, 0x86, 0xb6, 0xde, 0xf8, 0xe0, 0x68, 0x19, 0xfd, 0xf3, 0x68, 0x19, 0xfd, 0xfb, 0x68, 0x19,
|
||||
0x7d, 0xeb, 0xb3, 0x53, 0xfc, 0x93, 0xee, 0x74, 0x3d, 0xea, 0x27, 0xaa, 0x89, 0xff, 0x07, 0x00,
|
||||
0x00, 0xff, 0xff, 0xd2, 0x0f, 0x21, 0x57, 0x42, 0x20, 0x00, 0x00,
|
||||
// 2100 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x59, 0xcd, 0x6f, 0x1c, 0x49,
|
||||
0x15, 0xa7, 0xc6, 0x1f, 0x33, 0x7e, 0xce, 0x6e, 0xb2, 0xb5, 0x9b, 0xd0, 0xdb, 0x71, 0x9c, 0x51,
|
||||
0x25, 0x71, 0x1c, 0x27, 0xee, 0x89, 0x4d, 0x80, 0xc5, 0x20, 0x85, 0x78, 0x13, 0x1c, 0x83, 0x13,
|
||||
0xcc, 0x38, 0x61, 0x25, 0x24, 0x84, 0x7a, 0xbb, 0xcb, 0xe3, 0xc6, 0x33, 0xdd, 0x4d, 0x77, 0xcf,
|
||||
0x44, 0x43, 0x94, 0x03, 0x8b, 0x84, 0x38, 0x20, 0x10, 0x82, 0x03, 0x20, 0x3e, 0x56, 0x70, 0xe5,
|
||||
0x06, 0x5c, 0x38, 0xec, 0x0d, 0xb4, 0x47, 0xc4, 0xee, 0x81, 0x53, 0x84, 0x2c, 0xfe, 0x00, 0x4e,
|
||||
0x9c, 0x51, 0x55, 0x57, 0x75, 0x57, 0x4d, 0x7a, 0x7a, 0x26, 0xeb, 0xd9, 0x43, 0x6e, 0x53, 0xaf,
|
||||
0xaa, 0xdf, 0xfb, 0xbd, 0x8f, 0xfa, 0x55, 0xd5, 0x1b, 0xb8, 0x18, 0xd3, 0xa8, 0x47, 0xa3, 0x86,
|
||||
0x1d, 0x86, 0x6d, 0xcf, 0xb1, 0x13, 0x2f, 0xf0, 0xd5, 0xdf, 0x56, 0x18, 0x05, 0x49, 0x80, 0xe7,
|
||||
0x15, 0x91, 0xf9, 0x5a, 0x2b, 0x68, 0x05, 0x5c, 0xde, 0x60, 0xbf, 0xd2, 0x25, 0xe6, 0x42, 0x2b,
|
||||
0x08, 0x5a, 0x6d, 0xda, 0xb0, 0x43, 0xaf, 0x61, 0xfb, 0x7e, 0x90, 0xf0, 0xc5, 0xb1, 0x98, 0x25,
|
||||
0x87, 0x6f, 0xc4, 0x96, 0x17, 0xf0, 0x59, 0x27, 0x88, 0x68, 0xa3, 0xb7, 0xd6, 0x68, 0x51, 0x9f,
|
||||
0x46, 0x76, 0x42, 0x5d, 0xb1, 0xe6, 0x46, 0xbe, 0xa6, 0x63, 0x3b, 0x07, 0x9e, 0x4f, 0xa3, 0x7e,
|
||||
0x23, 0x3c, 0x6c, 0x31, 0x41, 0xdc, 0xe8, 0xd0, 0xc4, 0x2e, 0xfa, 0x6a, 0xbb, 0xe5, 0x25, 0x07,
|
||||
0xdd, 0xb7, 0x2d, 0x27, 0xe8, 0x34, 0xec, 0x88, 0x03, 0xfb, 0x36, 0xff, 0xb1, 0xea, 0xb8, 0xf9,
|
||||
0xd7, 0xaa, 0x7b, 0xbd, 0x35, 0xbb, 0x1d, 0x1e, 0xd8, 0xcf, 0xaa, 0xda, 0x2c, 0x53, 0x15, 0xd1,
|
||||
0x30, 0x10, 0xb1, 0xe2, 0x3f, 0xbd, 0x24, 0x88, 0xfa, 0xca, 0xcf, 0x54, 0x07, 0xf9, 0x2b, 0x82,
|
||||
0x53, 0xb7, 0x72, 0x63, 0x5f, 0xeb, 0xd2, 0xa8, 0x8f, 0x31, 0x4c, 0xfb, 0x76, 0x87, 0x1a, 0xa8,
|
||||
0x8e, 0x96, 0xe7, 0x9a, 0xfc, 0x37, 0x36, 0xa0, 0x1a, 0xd1, 0xfd, 0x88, 0xc6, 0x07, 0x46, 0x85,
|
||||
0x8b, 0xe5, 0x10, 0x2f, 0x41, 0x95, 0x59, 0xa6, 0x4e, 0x62, 0x4c, 0xd5, 0xa7, 0x96, 0xe7, 0x36,
|
||||
0x4f, 0x1c, 0x3d, 0x3d, 0x5f, 0xdb, 0x4d, 0x45, 0x71, 0x53, 0x4e, 0x62, 0x0b, 0x4e, 0x46, 0x34,
|
||||
0x0e, 0xba, 0x91, 0x43, 0xbf, 0x4e, 0xa3, 0xd8, 0x0b, 0x7c, 0x63, 0x9a, 0x69, 0xda, 0x9c, 0x7e,
|
||||
0xff, 0xe9, 0xf9, 0x4f, 0x34, 0x07, 0x27, 0x71, 0x1d, 0x6a, 0x31, 0x6d, 0x53, 0x27, 0x09, 0x22,
|
||||
0x63, 0x46, 0x59, 0x98, 0x49, 0xc9, 0x16, 0x9c, 0x6e, 0xd2, 0x9e, 0xc7, 0x56, 0xdf, 0xa3, 0x89,
|
||||
0xed, 0xda, 0x89, 0x3d, 0xe8, 0x40, 0x25, 0x73, 0xc0, 0x84, 0x5a, 0x24, 0x16, 0x1b, 0x15, 0x2e,
|
||||
0xcf, 0xc6, 0x2c, 0x0a, 0x8b, 0x4a, 0x14, 0x9a, 0x02, 0xc9, 0x9d, 0x1e, 0xf5, 0x93, 0x78, 0xb8,
|
||||
0xca, 0x75, 0x78, 0x45, 0x82, 0xbe, 0x6f, 0x77, 0x68, 0x1c, 0xda, 0x0e, 0x4d, 0x75, 0x0b, 0xa8,
|
||||
0xcf, 0x4e, 0xe3, 0x65, 0x38, 0xa1, 0x0a, 0x8d, 0x29, 0x65, 0xb9, 0x36, 0x83, 0x97, 0x60, 0x5e,
|
||||
0x8e, 0x1f, 0x6e, 0xdf, 0x36, 0xa6, 0x95, 0x85, 0xea, 0x04, 0xd9, 0x05, 0x43, 0xc1, 0x7e, 0xcf,
|
||||
0xf6, 0xbd, 0x7d, 0x1a, 0x27, 0xc3, 0x51, 0xd7, 0xb5, 0x40, 0x28, 0x71, 0xcd, 0xc2, 0x71, 0x1a,
|
||||
0x5e, 0xd5, 0xa3, 0x11, 0x06, 0x7e, 0x4c, 0xc9, 0x7b, 0x48, 0xb3, 0xf4, 0x66, 0x44, 0xed, 0x84,
|
||||
0x36, 0xe9, 0x77, 0xba, 0x34, 0x4e, 0xb0, 0x0f, 0xea, 0xa6, 0xe3, 0x06, 0xe7, 0xd7, 0xbf, 0x64,
|
||||
0xe5, 0x25, 0x6a, 0xc9, 0x12, 0xe5, 0x3f, 0xbe, 0xe5, 0xb8, 0x56, 0x78, 0xd8, 0xb2, 0x58, 0xb5,
|
||||
0x5b, 0xea, 0x06, 0x96, 0xd5, 0x6e, 0x29, 0x96, 0xa4, 0xd7, 0xca, 0x3a, 0x7c, 0x06, 0x66, 0xbb,
|
||||
0x61, 0x4c, 0xa3, 0x84, 0xfb, 0x50, 0x6b, 0x8a, 0x11, 0x4b, 0x73, 0xcf, 0x6e, 0x7b, 0xae, 0x9d,
|
||||
0xb0, 0xd8, 0xb2, 0x99, 0x6c, 0x4c, 0xde, 0xd5, 0x1d, 0x78, 0x18, 0xba, 0x8a, 0x03, 0x07, 0x1f,
|
||||
0xa3, 0x03, 0x3a, 0x74, 0x15, 0x62, 0x65, 0x00, 0xe2, 0x5d, 0x0d, 0xe1, 0x6d, 0xda, 0xa6, 0x39,
|
||||
0xc2, 0xa2, 0x64, 0x1a, 0x50, 0x75, 0xec, 0xd8, 0xb1, 0x5d, 0xa9, 0x4a, 0x0e, 0xc9, 0xbf, 0xa6,
|
||||
0xe0, 0x8c, 0xa2, 0x6a, 0xaf, 0xef, 0x3b, 0x65, 0x8a, 0x46, 0x56, 0x05, 0x5e, 0x80, 0x59, 0x37,
|
||||
0xea, 0x37, 0xbb, 0x7e, 0x1a, 0x57, 0x31, 0x2f, 0x64, 0xd8, 0x84, 0x99, 0x30, 0xea, 0xfa, 0x94,
|
||||
0xef, 0x69, 0x39, 0x99, 0x8a, 0xb0, 0x03, 0xb5, 0x38, 0x61, 0xcc, 0xd5, 0xea, 0xf3, 0x9d, 0x3c,
|
||||
0xbf, 0xbe, 0x75, 0x8c, 0xb8, 0x32, 0x4f, 0xf6, 0x84, 0xba, 0x66, 0xa6, 0x18, 0x27, 0x30, 0x27,
|
||||
0x77, 0x45, 0x6c, 0x54, 0xeb, 0x53, 0xcb, 0xf3, 0xeb, 0xbb, 0xc7, 0xb4, 0xf2, 0xd5, 0x90, 0xf1,
|
||||
0xad, 0x42, 0x08, 0xc2, 0xad, 0xdc, 0x10, 0x5e, 0x80, 0xb9, 0x8e, 0xd8, 0x71, 0xb1, 0x51, 0x63,
|
||||
0xf4, 0xd7, 0xcc, 0x05, 0xf8, 0x21, 0xcc, 0x78, 0xfe, 0x7e, 0x10, 0x1b, 0x73, 0x1c, 0xcf, 0xcd,
|
||||
0x63, 0xe0, 0xd9, 0xf6, 0xf7, 0x83, 0x66, 0xaa, 0x8d, 0xfc, 0x19, 0xc1, 0xc2, 0x33, 0x75, 0xbc,
|
||||
0x17, 0xd2, 0xd2, 0x04, 0xbb, 0x30, 0x1d, 0x87, 0xd4, 0xe1, 0xfc, 0x34, 0xbf, 0xfe, 0xe5, 0xc9,
|
||||
0x14, 0x36, 0x33, 0x2a, 0x82, 0xc2, 0xb5, 0x97, 0x6e, 0xbf, 0x0e, 0x7c, 0x52, 0xf9, 0x74, 0xd7,
|
||||
0x4e, 0x9c, 0x83, 0x32, 0xc0, 0xac, 0xa2, 0xd8, 0x1a, 0x8d, 0x51, 0x53, 0x11, 0x26, 0x30, 0xc7,
|
||||
0x7f, 0x3c, 0xe8, 0x87, 0x3a, 0x85, 0xe6, 0x62, 0xf2, 0x03, 0x04, 0xa6, 0xba, 0x07, 0x83, 0x76,
|
||||
0xfb, 0x6d, 0xdb, 0x39, 0x2c, 0x37, 0x59, 0xf1, 0x5c, 0x6e, 0x6f, 0x6a, 0x13, 0x98, 0xbe, 0xa3,
|
||||
0xa7, 0xe7, 0x2b, 0xdb, 0xb7, 0x9b, 0x15, 0xcf, 0xfd, 0xe8, 0xe5, 0x4f, 0x3e, 0x1c, 0x00, 0x22,
|
||||
0x8a, 0xa7, 0x0c, 0x08, 0x81, 0x39, 0xbf, 0xf0, 0x44, 0xc9, 0xc5, 0xcf, 0x71, 0x92, 0x2c, 0x42,
|
||||
0xb5, 0x97, 0x9d, 0xb8, 0xf9, 0x22, 0x29, 0x64, 0xe0, 0x5b, 0x51, 0xd0, 0x0d, 0x8d, 0x19, 0x35,
|
||||
0xd2, 0x5c, 0x84, 0x0d, 0x98, 0x3e, 0xf4, 0x7c, 0xd7, 0x98, 0x55, 0xa6, 0xb8, 0x84, 0xfc, 0xb2,
|
||||
0x02, 0xe7, 0x0b, 0xdc, 0x1a, 0x99, 0xd7, 0x17, 0xc0, 0xb7, 0xbc, 0xf6, 0xaa, 0x23, 0x6a, 0xaf,
|
||||
0x56, 0x5c, 0x7b, 0xff, 0x43, 0x50, 0x2f, 0x88, 0xcd, 0x68, 0x3e, 0x7f, 0x41, 0x82, 0xb3, 0x1f,
|
||||
0x44, 0x0e, 0x35, 0xaa, 0x59, 0xad, 0xa3, 0x66, 0x2a, 0x22, 0xff, 0x45, 0x60, 0x48, 0x6f, 0x6f,
|
||||
0x39, 0xdc, 0xf7, 0xae, 0xff, 0xa2, 0x3b, 0xbc, 0x00, 0xb3, 0x36, 0xf7, 0x45, 0x2b, 0x07, 0x21,
|
||||
0x23, 0x3f, 0x44, 0x70, 0x56, 0x77, 0x39, 0xde, 0xf1, 0xe2, 0x44, 0x5e, 0x9b, 0xb0, 0x07, 0xd5,
|
||||
0x74, 0x65, 0x6c, 0x20, 0x7e, 0x0c, 0x6c, 0x1f, 0x83, 0x7b, 0x75, 0x43, 0xd2, 0x3d, 0xa1, 0x9f,
|
||||
0xdc, 0x84, 0xb3, 0x85, 0x44, 0x23, 0x90, 0xd4, 0xa1, 0x26, 0xcf, 0xa6, 0x34, 0x07, 0xf2, 0x8c,
|
||||
0x97, 0x52, 0xf2, 0xb7, 0x8a, 0xce, 0xd1, 0x81, 0xbb, 0x13, 0xb4, 0x4a, 0x6e, 0xc0, 0xe3, 0x64,
|
||||
0xcf, 0x80, 0x6a, 0x18, 0xb8, 0x79, 0xe2, 0x9a, 0x72, 0xc8, 0xbe, 0x76, 0x02, 0x3f, 0xb1, 0xd9,
|
||||
0xd3, 0x49, 0xcb, 0x57, 0x2e, 0x66, 0xb9, 0x8f, 0x3d, 0xdf, 0xa1, 0x7b, 0xd4, 0x09, 0x7c, 0x37,
|
||||
0xe6, 0x89, 0x9b, 0x92, 0xb9, 0x57, 0x67, 0xf0, 0x5d, 0x98, 0xe3, 0xe3, 0x07, 0x5e, 0x87, 0x1a,
|
||||
0xb3, 0xfc, 0x9a, 0xb1, 0x62, 0xa5, 0x6f, 0x34, 0x4b, 0x7d, 0xa3, 0xe5, 0x11, 0x66, 0x6f, 0x34,
|
||||
0xab, 0xb7, 0x66, 0xb1, 0x2f, 0x9a, 0xf9, 0xc7, 0x0c, 0x57, 0x62, 0x7b, 0xed, 0x1d, 0xcf, 0xe7,
|
||||
0x57, 0x89, 0xdc, 0x60, 0x2e, 0x66, 0x35, 0xb1, 0x1f, 0xb4, 0xdb, 0xc1, 0x23, 0x4e, 0x01, 0xd9,
|
||||
0x71, 0x90, 0xca, 0xc8, 0x77, 0xa1, 0xb6, 0x13, 0xb4, 0xee, 0xf8, 0x49, 0xd4, 0x67, 0x35, 0xc9,
|
||||
0xdc, 0xa1, 0xbe, 0x1e, 0x74, 0x29, 0xc4, 0xf7, 0x61, 0x2e, 0xf1, 0x3a, 0x74, 0x2f, 0xb1, 0x3b,
|
||||
0xa1, 0x38, 0x9d, 0x9f, 0x03, 0x77, 0x86, 0x4c, 0xaa, 0x20, 0x0d, 0x78, 0x3d, 0xbb, 0xb8, 0x3c,
|
||||
0xa0, 0x51, 0xc7, 0xf3, 0xed, 0x52, 0xce, 0x21, 0x6b, 0x5a, 0xd5, 0xb0, 0x8b, 0xcf, 0x5b, 0x9e,
|
||||
0xef, 0x06, 0x8f, 0x86, 0xe7, 0x9d, 0xfc, 0x53, 0x7f, 0x30, 0x29, 0xdf, 0x64, 0xc5, 0x76, 0x17,
|
||||
0x5e, 0x62, 0x65, 0xd9, 0xa3, 0x62, 0x42, 0x14, 0x3f, 0xd1, 0xea, 0xba, 0x50, 0x47, 0x53, 0xff,
|
||||
0x10, 0xef, 0xc0, 0x49, 0x3b, 0x8e, 0xbd, 0x96, 0x4f, 0x5d, 0xa9, 0xab, 0x32, 0xb6, 0xae, 0xc1,
|
||||
0x4f, 0xd3, 0x1b, 0x33, 0x5f, 0xc1, 0xcb, 0x91, 0xdf, 0x98, 0xf9, 0x90, 0x7c, 0x1f, 0xc1, 0xe9,
|
||||
0x42, 0x25, 0x2c, 0x04, 0x9c, 0x1a, 0x44, 0x08, 0x04, 0x0b, 0xd6, 0x62, 0xe7, 0x80, 0xba, 0xdd,
|
||||
0x36, 0x95, 0xef, 0x49, 0x39, 0x66, 0x73, 0x6e, 0x37, 0xcd, 0x80, 0xa8, 0xf9, 0x6c, 0x8c, 0x17,
|
||||
0x01, 0x3a, 0xb6, 0xdf, 0xb5, 0xdb, 0x1c, 0xc2, 0x34, 0x87, 0xa0, 0x48, 0xc8, 0x02, 0x98, 0x45,
|
||||
0xe9, 0x13, 0x6f, 0xb0, 0x0f, 0x11, 0xbc, 0x2c, 0xf7, 0xb5, 0xc8, 0x8f, 0x05, 0x27, 0x95, 0x30,
|
||||
0xdc, 0xcf, 0x52, 0x25, 0x88, 0x79, 0x70, 0x72, 0x70, 0xcf, 0xa2, 0xe2, 0x3d, 0x9b, 0xe6, 0x7c,
|
||||
0x4a, 0x99, 0x4e, 0x77, 0xbc, 0xc6, 0xb0, 0xa8, 0x94, 0x61, 0xd1, 0x70, 0x86, 0x45, 0x03, 0x77,
|
||||
0x89, 0x3e, 0x18, 0xf7, 0x6c, 0xdf, 0x6e, 0x51, 0x37, 0x73, 0x2e, 0x2b, 0xa4, 0x6f, 0xc2, 0x8c,
|
||||
0x97, 0xd0, 0x8e, 0x2c, 0xa0, 0xad, 0x09, 0xb0, 0xe7, 0x6d, 0x6f, 0x7f, 0xbf, 0x99, 0x6a, 0x5d,
|
||||
0xff, 0x60, 0x01, 0xb0, 0x9a, 0x75, 0x1a, 0xf5, 0x3c, 0x87, 0xe2, 0x9f, 0x20, 0x98, 0x66, 0x34,
|
||||
0x8e, 0xcf, 0x0d, 0x2b, 0x32, 0x1e, 0x7d, 0x73, 0x42, 0x17, 0x69, 0x66, 0x8a, 0x2c, 0xbc, 0xf3,
|
||||
0xc1, 0x7f, 0x7e, 0x56, 0x39, 0x83, 0x5f, 0xe3, 0x7d, 0xa7, 0xde, 0x9a, 0xda, 0x06, 0x8a, 0xf1,
|
||||
0x8f, 0x10, 0x60, 0x71, 0xb0, 0x28, 0xdd, 0x09, 0x7c, 0x75, 0x18, 0xbe, 0x82, 0x2e, 0x86, 0x79,
|
||||
0x4e, 0x21, 0x16, 0xcb, 0x09, 0x22, 0xca, 0x68, 0x84, 0x2f, 0xe0, 0x00, 0x56, 0x38, 0x80, 0x8b,
|
||||
0x98, 0x14, 0x01, 0x68, 0x3c, 0x66, 0x05, 0xf0, 0xa4, 0x41, 0x53, 0xbb, 0xbf, 0x43, 0x30, 0xf3,
|
||||
0x16, 0xbf, 0x10, 0x8d, 0x88, 0xd0, 0xee, 0x64, 0x22, 0xc4, 0x6d, 0x71, 0xa8, 0xe4, 0x02, 0x87,
|
||||
0x79, 0x0e, 0x9f, 0x95, 0x30, 0xe3, 0x24, 0xa2, 0x76, 0x47, 0x43, 0x7b, 0x1d, 0xe1, 0xdf, 0x23,
|
||||
0x98, 0x4d, 0x9b, 0x14, 0xf8, 0xd2, 0x30, 0x88, 0x5a, 0x13, 0xc3, 0x9c, 0xd0, 0x73, 0x9f, 0x5c,
|
||||
0xe1, 0x00, 0x2f, 0x90, 0xc2, 0x44, 0x6e, 0x68, 0xcd, 0x80, 0x9f, 0x22, 0x98, 0xda, 0xa2, 0x23,
|
||||
0xcb, 0x6c, 0x52, 0xc8, 0x9e, 0x09, 0x5d, 0x41, 0x86, 0xf1, 0x1f, 0x10, 0xbc, 0xbe, 0x45, 0x93,
|
||||
0x62, 0x82, 0xc7, 0xcb, 0xa3, 0x59, 0x57, 0x54, 0xdb, 0xd5, 0x31, 0x56, 0x66, 0xcc, 0xd6, 0xe0,
|
||||
0xc8, 0xae, 0xe0, 0xcb, 0x65, 0xb5, 0x17, 0xf7, 0x7d, 0xe7, 0x91, 0xc0, 0xf1, 0x77, 0x04, 0xa7,
|
||||
0x06, 0xdb, 0x7f, 0x58, 0x3f, 0x12, 0x0a, 0xbb, 0x83, 0xe6, 0x57, 0x8e, 0xc5, 0x20, 0xba, 0x46,
|
||||
0x72, 0x8b, 0xc3, 0xfe, 0x3c, 0xfe, 0x5c, 0x19, 0x6c, 0xd9, 0x43, 0x89, 0x1b, 0x8f, 0xe5, 0xcf,
|
||||
0x27, 0xbc, 0x43, 0xcc, 0x31, 0xbf, 0x83, 0xe0, 0xc4, 0x16, 0x4d, 0xee, 0x65, 0x6d, 0x83, 0xa1,
|
||||
0xd5, 0xaa, 0x35, 0xf7, 0xcc, 0x05, 0x4b, 0x69, 0xe7, 0xca, 0xa9, 0x2c, 0x9e, 0xab, 0x1c, 0xd8,
|
||||
0x65, 0x7c, 0xa9, 0x0c, 0x58, 0xde, 0xaa, 0x78, 0x0f, 0xc1, 0x6c, 0xda, 0x48, 0x18, 0x6e, 0x5e,
|
||||
0x6b, 0x98, 0x4d, 0xac, 0x24, 0xef, 0x70, 0xa0, 0x37, 0xcd, 0xeb, 0xc5, 0x40, 0xd5, 0xef, 0x65,
|
||||
0xc8, 0x2c, 0x8e, 0x5e, 0xdf, 0x48, 0x7f, 0x42, 0x00, 0x79, 0x27, 0x04, 0x5f, 0x29, 0x77, 0x42,
|
||||
0xe9, 0x96, 0x98, 0x13, 0xec, 0x85, 0x10, 0x8b, 0x3b, 0xb3, 0x6c, 0xd6, 0x4b, 0xab, 0x38, 0xa4,
|
||||
0xce, 0x46, 0xda, 0x2f, 0xf9, 0x0d, 0x82, 0x19, 0xfe, 0x62, 0xc6, 0x17, 0x87, 0x01, 0x56, 0x1f,
|
||||
0xd4, 0x13, 0x0b, 0xfa, 0x12, 0xc7, 0x59, 0x5f, 0x2f, 0xe3, 0x81, 0x0d, 0xb4, 0x82, 0x7b, 0x30,
|
||||
0x9b, 0x3e, 0x5a, 0x87, 0x57, 0x85, 0xf6, 0xa8, 0x35, 0xeb, 0x25, 0xc7, 0x51, 0x5a, 0x98, 0x82,
|
||||
0x82, 0x56, 0x4a, 0x29, 0xe8, 0x5d, 0x04, 0xd3, 0x8c, 0x25, 0xf0, 0x85, 0x32, 0x0e, 0x99, 0x74,
|
||||
0x54, 0xae, 0x72, 0x68, 0x97, 0x48, 0x7d, 0x14, 0x07, 0xb1, 0xd0, 0xfc, 0x02, 0xc1, 0xa9, 0xc1,
|
||||
0x4b, 0x0b, 0x3e, 0x3b, 0xc0, 0x3f, 0xea, 0x4d, 0xcd, 0xd4, 0x43, 0x38, 0xec, 0xc2, 0x43, 0xbe,
|
||||
0xc8, 0x51, 0x6c, 0xe0, 0x37, 0x46, 0x6e, 0x88, 0xfb, 0x72, 0x13, 0x33, 0x45, 0xab, 0x79, 0x57,
|
||||
0xf2, 0x2f, 0x08, 0x4e, 0x48, 0xbd, 0x0f, 0x22, 0x4a, 0xcb, 0x61, 0x4d, 0xa8, 0xfe, 0x99, 0x21,
|
||||
0xf2, 0x05, 0x8e, 0xfd, 0x33, 0xf8, 0xc6, 0x98, 0xd8, 0x25, 0xe6, 0xd5, 0x84, 0xc1, 0xfc, 0x23,
|
||||
0x82, 0x9a, 0xec, 0xd3, 0xe1, 0xcb, 0x43, 0x2b, 0x49, 0xef, 0xe4, 0x4d, 0x2c, 0xfb, 0xe2, 0x04,
|
||||
0x22, 0x17, 0x4b, 0xa9, 0x5c, 0x18, 0x67, 0x15, 0xf0, 0x73, 0x04, 0x38, 0xbb, 0xa2, 0x67, 0x97,
|
||||
0x76, 0xbc, 0xa4, 0x99, 0x1a, 0xfa, 0x16, 0x33, 0x2f, 0x8f, 0x5c, 0xa7, 0x53, 0xf9, 0x4a, 0x29,
|
||||
0x95, 0x07, 0x99, 0xfd, 0x1f, 0x23, 0x98, 0xdf, 0xa2, 0xd9, 0x3d, 0xb1, 0x24, 0x90, 0x7a, 0x27,
|
||||
0xd2, 0x5c, 0x1e, 0xbd, 0x50, 0x20, 0xba, 0xc6, 0x11, 0x2d, 0xe1, 0xf2, 0x50, 0x49, 0x00, 0xbf,
|
||||
0x46, 0xf0, 0x92, 0x60, 0x31, 0x21, 0xb9, 0x36, 0xca, 0x92, 0x46, 0x7a, 0xe3, 0xe3, 0xfa, 0x14,
|
||||
0xc7, 0xb5, 0x4a, 0xc6, 0xc2, 0xb5, 0x21, 0x1a, 0x7a, 0xbf, 0x45, 0xf0, 0xaa, 0x7a, 0xb1, 0x16,
|
||||
0x4d, 0x9c, 0x8f, 0x1a, 0xb7, 0x92, 0x5e, 0x10, 0xb9, 0xc1, 0xf1, 0x59, 0xf8, 0xda, 0x38, 0xf8,
|
||||
0x1a, 0xa2, 0xad, 0x83, 0x7f, 0x85, 0xe0, 0x15, 0xde, 0x46, 0x53, 0x15, 0x0f, 0x10, 0xf2, 0xb0,
|
||||
0xa6, 0xdb, 0x18, 0x84, 0x2c, 0xf6, 0x2c, 0x79, 0x2e, 0x50, 0x1b, 0xa2, 0xfd, 0xc5, 0x1e, 0x4a,
|
||||
0x2f, 0xcb, 0x23, 0x40, 0x64, 0x77, 0x75, 0x54, 0xe0, 0x9e, 0xf7, 0xc8, 0x10, 0xe5, 0xb6, 0x32,
|
||||
0x5e, 0xb9, 0x7d, 0x0f, 0x41, 0x55, 0x74, 0xae, 0x4a, 0x4e, 0x55, 0xa5, 0xb5, 0x65, 0x9e, 0xd6,
|
||||
0x56, 0xc9, 0xce, 0x0d, 0xf9, 0x2c, 0x37, 0xbb, 0x86, 0x1b, 0x65, 0x66, 0xc3, 0xc0, 0x8d, 0x1b,
|
||||
0x8f, 0x45, 0x4b, 0xeb, 0x49, 0xa3, 0x1d, 0xb4, 0xe2, 0xeb, 0x68, 0xf3, 0xcd, 0xf7, 0x8f, 0x16,
|
||||
0xd1, 0x3f, 0x8e, 0x16, 0xd1, 0xbf, 0x8f, 0x16, 0xd1, 0x37, 0x3e, 0x3d, 0xc6, 0x9f, 0xfe, 0x4e,
|
||||
0xdb, 0xa3, 0x7e, 0xa2, 0x9a, 0xf8, 0x7f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x8f, 0xf3, 0x22, 0xba,
|
||||
0xed, 0x20, 0x00, 0x00,
|
||||
}
|
||||
|
||||
// Reference imports to suppress errors if they are not otherwise used.
|
||||
@@ -3203,6 +3238,16 @@ func (m *ApplicationCreateRequest) MarshalToSizedBuffer(dAtA []byte) (int, error
|
||||
i -= len(m.XXX_unrecognized)
|
||||
copy(dAtA[i:], m.XXX_unrecognized)
|
||||
}
|
||||
if m.Validate != nil {
|
||||
i--
|
||||
if *m.Validate {
|
||||
dAtA[i] = 1
|
||||
} else {
|
||||
dAtA[i] = 0
|
||||
}
|
||||
i--
|
||||
dAtA[i] = 0x18
|
||||
}
|
||||
if m.Upsert != nil {
|
||||
i--
|
||||
if *m.Upsert {
|
||||
@@ -3250,6 +3295,16 @@ func (m *ApplicationUpdateRequest) MarshalToSizedBuffer(dAtA []byte) (int, error
|
||||
i -= len(m.XXX_unrecognized)
|
||||
copy(dAtA[i:], m.XXX_unrecognized)
|
||||
}
|
||||
if m.Validate != nil {
|
||||
i--
|
||||
if *m.Validate {
|
||||
dAtA[i] = 1
|
||||
} else {
|
||||
dAtA[i] = 0
|
||||
}
|
||||
i--
|
||||
dAtA[i] = 0x10
|
||||
}
|
||||
if m.Application == nil {
|
||||
return 0, github_com_gogo_protobuf_proto.NewRequiredNotSetError("application")
|
||||
} else {
|
||||
@@ -3337,6 +3392,20 @@ func (m *ApplicationSyncRequest) MarshalToSizedBuffer(dAtA []byte) (int, error)
|
||||
i -= len(m.XXX_unrecognized)
|
||||
copy(dAtA[i:], m.XXX_unrecognized)
|
||||
}
|
||||
if len(m.Infos) > 0 {
|
||||
for iNdEx := len(m.Infos) - 1; iNdEx >= 0; iNdEx-- {
|
||||
{
|
||||
size, err := m.Infos[iNdEx].MarshalToSizedBuffer(dAtA[:i])
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
i -= size
|
||||
i = encodeVarintApplication(dAtA, i, uint64(size))
|
||||
}
|
||||
i--
|
||||
dAtA[i] = 0x4a
|
||||
}
|
||||
}
|
||||
if len(m.Manifests) > 0 {
|
||||
for iNdEx := len(m.Manifests) - 1; iNdEx >= 0; iNdEx-- {
|
||||
i -= len(m.Manifests[iNdEx])
|
||||
@@ -3429,6 +3498,16 @@ func (m *ApplicationUpdateSpecRequest) MarshalToSizedBuffer(dAtA []byte) (int, e
|
||||
i -= len(m.XXX_unrecognized)
|
||||
copy(dAtA[i:], m.XXX_unrecognized)
|
||||
}
|
||||
if m.Validate != nil {
|
||||
i--
|
||||
if *m.Validate {
|
||||
dAtA[i] = 1
|
||||
} else {
|
||||
dAtA[i] = 0
|
||||
}
|
||||
i--
|
||||
dAtA[i] = 0x18
|
||||
}
|
||||
{
|
||||
size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])
|
||||
if err != nil {
|
||||
@@ -4475,6 +4554,9 @@ func (m *ApplicationCreateRequest) Size() (n int) {
|
||||
if m.Upsert != nil {
|
||||
n += 2
|
||||
}
|
||||
if m.Validate != nil {
|
||||
n += 2
|
||||
}
|
||||
if m.XXX_unrecognized != nil {
|
||||
n += len(m.XXX_unrecognized)
|
||||
}
|
||||
@@ -4491,6 +4573,9 @@ func (m *ApplicationUpdateRequest) Size() (n int) {
|
||||
l = m.Application.Size()
|
||||
n += 1 + l + sovApplication(uint64(l))
|
||||
}
|
||||
if m.Validate != nil {
|
||||
n += 2
|
||||
}
|
||||
if m.XXX_unrecognized != nil {
|
||||
n += len(m.XXX_unrecognized)
|
||||
}
|
||||
@@ -4546,6 +4631,12 @@ func (m *ApplicationSyncRequest) Size() (n int) {
|
||||
n += 1 + l + sovApplication(uint64(l))
|
||||
}
|
||||
}
|
||||
if len(m.Infos) > 0 {
|
||||
for _, e := range m.Infos {
|
||||
l = e.Size()
|
||||
n += 1 + l + sovApplication(uint64(l))
|
||||
}
|
||||
}
|
||||
if m.XXX_unrecognized != nil {
|
||||
n += len(m.XXX_unrecognized)
|
||||
}
|
||||
@@ -4564,6 +4655,9 @@ func (m *ApplicationUpdateSpecRequest) Size() (n int) {
|
||||
}
|
||||
l = m.Spec.Size()
|
||||
n += 1 + l + sovApplication(uint64(l))
|
||||
if m.Validate != nil {
|
||||
n += 2
|
||||
}
|
||||
if m.XXX_unrecognized != nil {
|
||||
n += len(m.XXX_unrecognized)
|
||||
}
|
||||
@@ -5757,6 +5851,27 @@ func (m *ApplicationCreateRequest) Unmarshal(dAtA []byte) error {
|
||||
}
|
||||
b := bool(v != 0)
|
||||
m.Upsert = &b
|
||||
case 3:
|
||||
if wireType != 0 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field Validate", wireType)
|
||||
}
|
||||
var v int
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return ErrIntOverflowApplication
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
v |= int(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
b := bool(v != 0)
|
||||
m.Validate = &b
|
||||
default:
|
||||
iNdEx = preIndex
|
||||
skippy, err := skipApplication(dAtA[iNdEx:])
|
||||
@@ -5852,6 +5967,27 @@ func (m *ApplicationUpdateRequest) Unmarshal(dAtA []byte) error {
|
||||
}
|
||||
iNdEx = postIndex
|
||||
hasFields[0] |= uint64(0x00000001)
|
||||
case 2:
|
||||
if wireType != 0 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field Validate", wireType)
|
||||
}
|
||||
var v int
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return ErrIntOverflowApplication
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
v |= int(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
b := bool(v != 0)
|
||||
m.Validate = &b
|
||||
default:
|
||||
iNdEx = preIndex
|
||||
skippy, err := skipApplication(dAtA[iNdEx:])
|
||||
@@ -6231,6 +6367,40 @@ func (m *ApplicationSyncRequest) Unmarshal(dAtA []byte) error {
|
||||
}
|
||||
m.Manifests = append(m.Manifests, string(dAtA[iNdEx:postIndex]))
|
||||
iNdEx = postIndex
|
||||
case 9:
|
||||
if wireType != 2 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field Infos", wireType)
|
||||
}
|
||||
var msglen int
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return ErrIntOverflowApplication
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
msglen |= int(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
if msglen < 0 {
|
||||
return ErrInvalidLengthApplication
|
||||
}
|
||||
postIndex := iNdEx + msglen
|
||||
if postIndex < 0 {
|
||||
return ErrInvalidLengthApplication
|
||||
}
|
||||
if postIndex > l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
m.Infos = append(m.Infos, &v1alpha1.Info{})
|
||||
if err := m.Infos[len(m.Infos)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
|
||||
return err
|
||||
}
|
||||
iNdEx = postIndex
|
||||
default:
|
||||
iNdEx = preIndex
|
||||
skippy, err := skipApplication(dAtA[iNdEx:])
|
||||
@@ -6357,6 +6527,27 @@ func (m *ApplicationUpdateSpecRequest) Unmarshal(dAtA []byte) error {
|
||||
}
|
||||
iNdEx = postIndex
|
||||
hasFields[0] |= uint64(0x00000002)
|
||||
case 3:
|
||||
if wireType != 0 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field Validate", wireType)
|
||||
}
|
||||
var v int
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return ErrIntOverflowApplication
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
v |= int(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
b := bool(v != 0)
|
||||
m.Validate = &b
|
||||
default:
|
||||
iNdEx = preIndex
|
||||
skippy, err := skipApplication(dAtA[iNdEx:])
|
||||
|
||||
@@ -261,6 +261,10 @@ func request_ApplicationService_GetManifests_0(ctx context.Context, marshaler ru
|
||||
|
||||
}
|
||||
|
||||
var (
|
||||
filter_ApplicationService_Update_0 = &utilities.DoubleArray{Encoding: map[string]int{"application": 0, "metadata": 1, "name": 2}, Base: []int{1, 2, 1, 1, 0, 0}, Check: []int{0, 1, 2, 3, 4, 2}}
|
||||
)
|
||||
|
||||
func request_ApplicationService_Update_0(ctx context.Context, marshaler runtime.Marshaler, client ApplicationServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
|
||||
var protoReq ApplicationUpdateRequest
|
||||
var metadata runtime.ServerMetadata
|
||||
@@ -287,11 +291,19 @@ func request_ApplicationService_Update_0(ctx context.Context, marshaler runtime.
|
||||
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "application.metadata.name", err)
|
||||
}
|
||||
|
||||
if err := runtime.PopulateQueryParameters(&protoReq, req.URL.Query(), filter_ApplicationService_Update_0); err != nil {
|
||||
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
|
||||
}
|
||||
|
||||
msg, err := client.Update(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
|
||||
return msg, metadata, err
|
||||
|
||||
}
|
||||
|
||||
var (
|
||||
filter_ApplicationService_UpdateSpec_0 = &utilities.DoubleArray{Encoding: map[string]int{"spec": 0, "name": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}}
|
||||
)
|
||||
|
||||
func request_ApplicationService_UpdateSpec_0(ctx context.Context, marshaler runtime.Marshaler, client ApplicationServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
|
||||
var protoReq ApplicationUpdateSpecRequest
|
||||
var metadata runtime.ServerMetadata
|
||||
@@ -318,6 +330,10 @@ func request_ApplicationService_UpdateSpec_0(ctx context.Context, marshaler runt
|
||||
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err)
|
||||
}
|
||||
|
||||
if err := runtime.PopulateQueryParameters(&protoReq, req.URL.Query(), filter_ApplicationService_UpdateSpec_0); err != nil {
|
||||
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
|
||||
}
|
||||
|
||||
msg, err := client.UpdateSpec(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
|
||||
return msg, metadata, err
|
||||
|
||||
|
||||
@@ -24,6 +24,7 @@ API rule violation: list_type_missing,github.com/argoproj/argo-cd/pkg/apis/appli
|
||||
API rule violation: list_type_missing,github.com/argoproj/argo-cd/pkg/apis/application/v1alpha1,ClusterList,Items
|
||||
API rule violation: list_type_missing,github.com/argoproj/argo-cd/pkg/apis/application/v1alpha1,Command,Args
|
||||
API rule violation: list_type_missing,github.com/argoproj/argo-cd/pkg/apis/application/v1alpha1,Command,Command
|
||||
API rule violation: list_type_missing,github.com/argoproj/argo-cd/pkg/apis/application/v1alpha1,Operation,Info
|
||||
API rule violation: list_type_missing,github.com/argoproj/argo-cd/pkg/apis/application/v1alpha1,ProjectRole,Groups
|
||||
API rule violation: list_type_missing,github.com/argoproj/argo-cd/pkg/apis/application/v1alpha1,ProjectRole,JWTTokens
|
||||
API rule violation: list_type_missing,github.com/argoproj/argo-cd/pkg/apis/application/v1alpha1,ProjectRole,Policies
|
||||
|
||||
@@ -2221,331 +2221,332 @@ func init() {
|
||||
}
|
||||
|
||||
var fileDescriptor_e7dc23c2911a1a00 = []byte{
|
||||
// 5173 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x3c, 0x6d, 0x8c, 0x24, 0xc7,
|
||||
0x55, 0xee, 0x99, 0xdd, 0xd9, 0x99, 0xb7, 0x1f, 0x77, 0x5b, 0xf6, 0x39, 0x9b, 0x23, 0xb9, 0x3d,
|
||||
0xb5, 0x95, 0xc4, 0x10, 0x7b, 0x16, 0x9f, 0x0c, 0x5c, 0x62, 0x88, 0xb3, 0xb3, 0x7b, 0x1f, 0x7b,
|
||||
0xb7, 0xbb, 0xb7, 0xae, 0xd9, 0xf3, 0x49, 0x4e, 0x08, 0xee, 0xeb, 0xae, 0x99, 0xe9, 0xdb, 0x99,
|
||||
0xee, 0x76, 0x77, 0xcf, 0xde, 0xad, 0x21, 0xc1, 0x81, 0x18, 0x45, 0xc1, 0x46, 0x48, 0x88, 0x5f,
|
||||
0x28, 0x08, 0xf8, 0x47, 0xfe, 0xa1, 0x48, 0x48, 0x48, 0xfc, 0xf2, 0x8f, 0x60, 0xf1, 0x23, 0x0a,
|
||||
0x91, 0x05, 0x16, 0xa0, 0x05, 0x6f, 0xfe, 0x20, 0xf8, 0x11, 0x10, 0xe2, 0xcf, 0xfd, 0x42, 0xf5,
|
||||
0x5d, 0xdd, 0x33, 0x73, 0x3b, 0x7b, 0xd3, 0x77, 0x41, 0xe1, 0xdf, 0xf4, 0x7b, 0xaf, 0xde, 0x7b,
|
||||
0x55, 0xf5, 0xaa, 0xea, 0xbd, 0x57, 0xaf, 0x06, 0x36, 0xda, 0x7e, 0xda, 0xe9, 0xdf, 0xae, 0xbb,
|
||||
0x61, 0x6f, 0xc5, 0x89, 0xdb, 0x61, 0x14, 0x87, 0x77, 0xd8, 0x8f, 0xe7, 0x5d, 0x6f, 0x25, 0xda,
|
||||
0x6b, 0xaf, 0x38, 0x91, 0x9f, 0xac, 0x38, 0x51, 0xd4, 0xf5, 0x5d, 0x27, 0xf5, 0xc3, 0x60, 0x65,
|
||||
0xff, 0x05, 0xa7, 0x1b, 0x75, 0x9c, 0x17, 0x56, 0xda, 0x24, 0x20, 0xb1, 0x93, 0x12, 0xaf, 0x1e,
|
||||
0xc5, 0x61, 0x1a, 0xa2, 0xcf, 0x69, 0x56, 0x75, 0xc9, 0x8a, 0xfd, 0xf8, 0x35, 0xd7, 0xab, 0x47,
|
||||
0x7b, 0xed, 0x3a, 0x65, 0x55, 0x37, 0x58, 0xd5, 0x25, 0xab, 0xb3, 0xcf, 0x1b, 0x5a, 0xb4, 0xc3,
|
||||
0x76, 0xb8, 0xc2, 0x38, 0xde, 0xee, 0xb7, 0xd8, 0x17, 0xfb, 0x60, 0xbf, 0xb8, 0xa4, 0xb3, 0xf6,
|
||||
0xde, 0xc5, 0xa4, 0xee, 0x87, 0x54, 0xb7, 0x15, 0x37, 0x8c, 0xc9, 0xca, 0xfe, 0x80, 0x36, 0x67,
|
||||
0x5f, 0xd4, 0x34, 0x3d, 0xc7, 0xed, 0xf8, 0x01, 0x89, 0x0f, 0x74, 0x87, 0x7a, 0x24, 0x75, 0x86,
|
||||
0xb5, 0x5a, 0x19, 0xd5, 0x2a, 0xee, 0x07, 0xa9, 0xdf, 0x23, 0x03, 0x0d, 0x7e, 0xf1, 0xb8, 0x06,
|
||||
0x89, 0xdb, 0x21, 0x3d, 0x27, 0xdf, 0xce, 0x7e, 0x03, 0xe6, 0x57, 0x6f, 0x35, 0x57, 0xfb, 0x69,
|
||||
0x67, 0x2d, 0x0c, 0x5a, 0x7e, 0x1b, 0xfd, 0x02, 0xcc, 0xba, 0xdd, 0x7e, 0x92, 0x92, 0x78, 0xdb,
|
||||
0xe9, 0x91, 0x25, 0xeb, 0xbc, 0xf5, 0x6c, 0xad, 0xf1, 0xe4, 0xfb, 0x87, 0xcb, 0x4f, 0x1c, 0x1d,
|
||||
0x2e, 0xcf, 0xae, 0x69, 0x14, 0x36, 0xe9, 0xd0, 0xcf, 0xc2, 0x4c, 0x1c, 0x76, 0xc9, 0x2a, 0xde,
|
||||
0x5e, 0x2a, 0xb1, 0x26, 0xa7, 0x44, 0x93, 0x19, 0xcc, 0xc1, 0x58, 0xe2, 0xed, 0x7f, 0xb2, 0x00,
|
||||
0x56, 0xa3, 0x68, 0x27, 0x0e, 0xef, 0x10, 0x37, 0x45, 0xaf, 0x43, 0x95, 0x8e, 0x82, 0xe7, 0xa4,
|
||||
0x0e, 0x93, 0x36, 0x7b, 0xe1, 0xe7, 0xeb, 0xbc, 0x33, 0x75, 0xb3, 0x33, 0x7a, 0xe6, 0x28, 0x75,
|
||||
0x7d, 0xff, 0x85, 0xfa, 0x8d, 0xdb, 0xb4, 0xfd, 0x16, 0x49, 0x9d, 0x06, 0x12, 0xc2, 0x40, 0xc3,
|
||||
0xb0, 0xe2, 0x8a, 0xf6, 0x60, 0x2a, 0x89, 0x88, 0xcb, 0x14, 0x9b, 0xbd, 0xb0, 0x51, 0x7f, 0x68,
|
||||
0xfb, 0xa8, 0x6b, 0xb5, 0x9b, 0x11, 0x71, 0x1b, 0x73, 0x42, 0xec, 0x14, 0xfd, 0xc2, 0x4c, 0x88,
|
||||
0xfd, 0x8f, 0x16, 0x2c, 0x68, 0xb2, 0x4d, 0x3f, 0x49, 0xd1, 0x97, 0x07, 0x7a, 0x58, 0x1f, 0xaf,
|
||||
0x87, 0xb4, 0x35, 0xeb, 0xdf, 0x69, 0x21, 0xa8, 0x2a, 0x21, 0x46, 0xef, 0xee, 0xc0, 0xb4, 0x9f,
|
||||
0x92, 0x5e, 0xb2, 0x54, 0x3a, 0x5f, 0x7e, 0x76, 0xf6, 0xc2, 0xa5, 0x42, 0xba, 0xd7, 0x98, 0x17,
|
||||
0x12, 0xa7, 0x37, 0x28, 0x6f, 0xcc, 0x45, 0xd8, 0xdf, 0xaf, 0x9a, 0x9d, 0xa3, 0xbd, 0x46, 0x2f,
|
||||
0xc0, 0x6c, 0x12, 0xf6, 0x63, 0x97, 0x60, 0x12, 0x85, 0xc9, 0x92, 0x75, 0xbe, 0x4c, 0x27, 0x9f,
|
||||
0xda, 0x4a, 0x53, 0x83, 0xb1, 0x49, 0x83, 0x7e, 0xd7, 0x82, 0x39, 0x8f, 0x24, 0xa9, 0x1f, 0x30,
|
||||
0xf9, 0x52, 0xf3, 0x57, 0x26, 0xd3, 0x5c, 0x02, 0xd7, 0x35, 0xe7, 0xc6, 0x53, 0xa2, 0x17, 0x73,
|
||||
0x06, 0x30, 0xc1, 0x19, 0xe1, 0xd4, 0xe0, 0x3d, 0x92, 0xb8, 0xb1, 0x1f, 0xd1, 0xef, 0xa5, 0x72,
|
||||
0xd6, 0xe0, 0xd7, 0x35, 0x0a, 0x9b, 0x74, 0x68, 0x0f, 0xa6, 0xa9, 0x41, 0x27, 0x4b, 0x53, 0x4c,
|
||||
0xf9, 0xcb, 0x13, 0x28, 0x2f, 0x86, 0x93, 0x2e, 0x14, 0x3d, 0xee, 0xf4, 0x2b, 0xc1, 0x5c, 0x06,
|
||||
0x7a, 0xd7, 0x82, 0x25, 0xb1, 0xda, 0x30, 0xe1, 0x43, 0x79, 0xab, 0xe3, 0xa7, 0xa4, 0xeb, 0x27,
|
||||
0xe9, 0xd2, 0x34, 0x53, 0x60, 0x65, 0x3c, 0x93, 0xba, 0x12, 0x87, 0xfd, 0xe8, 0xba, 0x1f, 0x78,
|
||||
0x8d, 0xf3, 0x42, 0xd2, 0xd2, 0xda, 0x08, 0xc6, 0x78, 0xa4, 0x48, 0xf4, 0x07, 0x16, 0x9c, 0x0d,
|
||||
0x9c, 0x1e, 0x49, 0x22, 0x87, 0x4e, 0x2a, 0x47, 0x37, 0xba, 0x8e, 0xbb, 0xc7, 0x34, 0xaa, 0x3c,
|
||||
0x9c, 0x46, 0xb6, 0xd0, 0xe8, 0xec, 0xf6, 0x48, 0xd6, 0xf8, 0x01, 0x62, 0xd1, 0x9f, 0x58, 0xb0,
|
||||
0x18, 0xc6, 0x51, 0xc7, 0x09, 0x88, 0x27, 0xb1, 0xc9, 0xd2, 0x0c, 0x5b, 0x71, 0x5f, 0x9a, 0x60,
|
||||
0x7e, 0x6e, 0xe4, 0x79, 0x6e, 0x85, 0x81, 0x9f, 0x86, 0x71, 0x93, 0xa4, 0xa9, 0x1f, 0xb4, 0x93,
|
||||
0xc6, 0x99, 0xa3, 0xc3, 0xe5, 0xc5, 0x01, 0x2a, 0x3c, 0xa8, 0x0c, 0xba, 0x07, 0xb3, 0xc9, 0x41,
|
||||
0xe0, 0xde, 0xf2, 0x03, 0x2f, 0xbc, 0x9b, 0x2c, 0x55, 0x27, 0x5e, 0xb2, 0x4d, 0xc5, 0x4d, 0x2c,
|
||||
0x3a, 0xcd, 0x1d, 0x9b, 0xa2, 0x86, 0x4f, 0x99, 0x36, 0xa2, 0x5a, 0xd1, 0x53, 0xa6, 0xcd, 0xe8,
|
||||
0x01, 0x62, 0xed, 0xef, 0x95, 0x61, 0xd6, 0x58, 0xbb, 0x8f, 0xe1, 0x30, 0xe8, 0x66, 0x0e, 0x83,
|
||||
0x6b, 0xc5, 0xec, 0x39, 0xa3, 0x4e, 0x03, 0x94, 0x42, 0x25, 0x49, 0x9d, 0xb4, 0x9f, 0xb0, 0x7d,
|
||||
0x65, 0xf6, 0xc2, 0x66, 0x41, 0xf2, 0x18, 0xcf, 0xc6, 0x82, 0x90, 0x58, 0xe1, 0xdf, 0x58, 0xc8,
|
||||
0x42, 0x6f, 0x40, 0x2d, 0x8c, 0xe8, 0x31, 0x4f, 0x37, 0xb4, 0x29, 0x26, 0x78, 0x7d, 0x12, 0xfb,
|
||||
0x97, 0xbc, 0x1a, 0xf3, 0x47, 0x87, 0xcb, 0x35, 0xf5, 0x89, 0xb5, 0x14, 0xfb, 0x1f, 0x2c, 0x78,
|
||||
0xca, 0x50, 0x70, 0x2d, 0x0c, 0x3c, 0x9f, 0xcd, 0xe8, 0x79, 0x98, 0x4a, 0x0f, 0x22, 0xe9, 0x48,
|
||||
0xa8, 0x31, 0xda, 0x3d, 0x88, 0x08, 0x66, 0x18, 0xea, 0x3a, 0xf4, 0x48, 0x92, 0x38, 0x6d, 0x92,
|
||||
0x77, 0x1d, 0xb6, 0x38, 0x18, 0x4b, 0x3c, 0x8a, 0x01, 0x75, 0x9d, 0x24, 0xdd, 0x8d, 0x9d, 0x20,
|
||||
0x61, 0xec, 0x77, 0xfd, 0x1e, 0x11, 0x43, 0xfb, 0x73, 0xe3, 0x19, 0x0a, 0x6d, 0xd1, 0x78, 0xfa,
|
||||
0xe8, 0x70, 0x19, 0x6d, 0x0e, 0x70, 0xc2, 0x43, 0xb8, 0xdb, 0x6f, 0xc0, 0xd3, 0xc3, 0x4f, 0x17,
|
||||
0xf4, 0x69, 0xa8, 0x24, 0x24, 0xde, 0x27, 0xb1, 0xe8, 0x9c, 0x9e, 0x0e, 0x06, 0xc5, 0x02, 0x8b,
|
||||
0x56, 0xa0, 0xa6, 0x96, 0x80, 0xe8, 0xe2, 0xa2, 0x20, 0xad, 0xe9, 0x75, 0xa3, 0x69, 0xec, 0x7f,
|
||||
0xb6, 0xe0, 0x94, 0x21, 0xf3, 0x31, 0x38, 0x11, 0x7b, 0x59, 0x27, 0xe2, 0x72, 0x31, 0x66, 0x3a,
|
||||
0xc2, 0x8b, 0xf8, 0x6e, 0x05, 0x16, 0x4d, 0x63, 0x66, 0x7b, 0x02, 0xf3, 0x20, 0x49, 0x14, 0xde,
|
||||
0xc4, 0x9b, 0x62, 0x38, 0xb5, 0x07, 0xc9, 0xc1, 0x58, 0xe2, 0xa9, 0x4d, 0x45, 0x4e, 0xda, 0x11,
|
||||
0x63, 0xa9, 0x6c, 0x6a, 0xc7, 0x49, 0x3b, 0x98, 0x61, 0xd0, 0x17, 0x60, 0x21, 0x75, 0xe2, 0x36,
|
||||
0x49, 0x31, 0xd9, 0xf7, 0x13, 0xb9, 0x0c, 0x6a, 0x8d, 0xa7, 0x05, 0xed, 0xc2, 0x6e, 0x06, 0x8b,
|
||||
0x73, 0xd4, 0x28, 0x80, 0xa9, 0x0e, 0xe9, 0xf6, 0xc4, 0xe1, 0xb1, 0x53, 0xd0, 0xaa, 0x65, 0x1d,
|
||||
0xbd, 0x4a, 0xba, 0xbd, 0x46, 0x95, 0xea, 0x4b, 0x7f, 0x61, 0x26, 0x07, 0xfd, 0x96, 0x05, 0xb5,
|
||||
0xbd, 0x7e, 0x92, 0x86, 0x3d, 0xff, 0x4d, 0xb2, 0x54, 0x65, 0x52, 0x6f, 0x16, 0x29, 0xf5, 0xba,
|
||||
0x64, 0xce, 0xd7, 0xb0, 0xfa, 0xc4, 0x5a, 0x2c, 0x7a, 0x13, 0x66, 0xf6, 0x92, 0x30, 0x08, 0x08,
|
||||
0x3d, 0x0e, 0xa8, 0x06, 0xcd, 0x42, 0x35, 0xe0, 0xac, 0x1b, 0xb3, 0x74, 0x4a, 0xc5, 0x07, 0x96,
|
||||
0x02, 0xd9, 0x00, 0x78, 0x7e, 0x4c, 0xdc, 0x34, 0x8c, 0x0f, 0x96, 0xa0, 0xf8, 0x01, 0x58, 0x97,
|
||||
0xcc, 0xf9, 0x00, 0xa8, 0x4f, 0xac, 0xc5, 0xa2, 0x7d, 0xa8, 0x44, 0xdd, 0x7e, 0xdb, 0x0f, 0x96,
|
||||
0x66, 0x99, 0x02, 0xb8, 0x48, 0x05, 0x76, 0x18, 0xe7, 0x06, 0xd0, 0x0d, 0x82, 0xff, 0xc6, 0x42,
|
||||
0x1a, 0x7a, 0x06, 0xa6, 0xdd, 0x8e, 0x13, 0xa7, 0x4b, 0x73, 0xcc, 0x48, 0xd5, 0xaa, 0x59, 0xa3,
|
||||
0x40, 0xcc, 0x71, 0xf6, 0xdf, 0x58, 0x70, 0x76, 0x74, 0xaf, 0xf8, 0xf2, 0x71, 0xfb, 0x71, 0xc2,
|
||||
0xb7, 0xda, 0xaa, 0xb9, 0x7c, 0x18, 0x18, 0x4b, 0x3c, 0xfa, 0x1a, 0xcc, 0xdc, 0x11, 0xf3, 0x5c,
|
||||
0x2a, 0x7e, 0x9e, 0xaf, 0x89, 0x79, 0x56, 0xf2, 0xaf, 0xc9, 0xb9, 0x16, 0x42, 0xed, 0xef, 0x96,
|
||||
0xe1, 0xcc, 0xd0, 0x65, 0x81, 0xea, 0x00, 0xfb, 0x4e, 0xb7, 0x4f, 0x2e, 0xfb, 0xd4, 0xb3, 0xe6,
|
||||
0xb1, 0xc4, 0x02, 0x3d, 0xca, 0x5f, 0x55, 0x50, 0x6c, 0x50, 0xa0, 0xdf, 0x00, 0x88, 0x9c, 0xd8,
|
||||
0xe9, 0x91, 0x94, 0xc4, 0x72, 0xef, 0xba, 0x3a, 0x41, 0x67, 0xa8, 0x12, 0x3b, 0x92, 0xa1, 0x76,
|
||||
0x24, 0x14, 0x28, 0xc1, 0x86, 0x3c, 0x1a, 0x39, 0xc4, 0xa4, 0x4b, 0x9c, 0x84, 0xb0, 0x50, 0x39,
|
||||
0x17, 0x39, 0x60, 0x8d, 0xc2, 0x26, 0x1d, 0x3d, 0x36, 0x58, 0x17, 0x12, 0xb1, 0x27, 0xa9, 0x63,
|
||||
0x83, 0x75, 0x32, 0xc1, 0x02, 0x8b, 0xde, 0xb1, 0x60, 0xa1, 0xe5, 0x77, 0x89, 0x96, 0x2e, 0x5c,
|
||||
0xfd, 0xcd, 0x09, 0x7b, 0x78, 0xd9, 0x64, 0xaa, 0xb7, 0xc4, 0x0c, 0x38, 0xc1, 0x39, 0xd9, 0xf6,
|
||||
0xff, 0x58, 0xb0, 0x34, 0x6a, 0xb2, 0x51, 0x04, 0x33, 0xe4, 0x5e, 0xfa, 0xaa, 0x13, 0xf3, 0x59,
|
||||
0x9b, 0xcc, 0xa7, 0x15, 0x4c, 0x5f, 0x75, 0x62, 0x6d, 0x44, 0x97, 0x38, 0x77, 0x2c, 0xc5, 0xa0,
|
||||
0x36, 0x4c, 0xa5, 0x5d, 0xa7, 0x88, 0xa8, 0xd7, 0x10, 0xa7, 0xdd, 0x93, 0xcd, 0xd5, 0x04, 0x33,
|
||||
0x01, 0xf6, 0x0f, 0x87, 0xf5, 0x5b, 0xec, 0x5f, 0xd4, 0x04, 0x48, 0xb0, 0xef, 0xc7, 0x61, 0xd0,
|
||||
0x23, 0x41, 0x9a, 0xcf, 0x96, 0x5c, 0xd2, 0x28, 0x6c, 0xd2, 0xa1, 0xdf, 0x1c, 0x62, 0xb7, 0xd7,
|
||||
0x27, 0xe8, 0x82, 0x50, 0x67, 0x6c, 0xd3, 0xb5, 0xff, 0xb6, 0x3c, 0x64, 0x33, 0x51, 0x87, 0x02,
|
||||
0xba, 0x00, 0x40, 0xbd, 0x91, 0x9d, 0x98, 0xb4, 0xfc, 0x7b, 0xa2, 0x57, 0x8a, 0xe5, 0xb6, 0xc2,
|
||||
0x60, 0x83, 0x4a, 0xb6, 0x69, 0xf6, 0x5b, 0xb4, 0x4d, 0x69, 0xb0, 0x0d, 0xc7, 0x60, 0x83, 0x0a,
|
||||
0xbd, 0x08, 0x15, 0xbf, 0xe7, 0xb4, 0x09, 0x75, 0x8f, 0xe9, 0x5a, 0xff, 0x04, 0x5d, 0x06, 0x1b,
|
||||
0x0c, 0x72, 0xff, 0x70, 0x79, 0x41, 0x29, 0xc4, 0x40, 0x58, 0xd0, 0xa2, 0x3f, 0xb5, 0x60, 0xce,
|
||||
0x0d, 0x7b, 0xbd, 0x30, 0xd8, 0x74, 0x6e, 0x93, 0xae, 0x0c, 0xc1, 0xdb, 0x8f, 0xe4, 0xbc, 0xac,
|
||||
0xaf, 0x19, 0x92, 0x2e, 0x05, 0x69, 0x7c, 0xa0, 0xb3, 0x0a, 0x26, 0x0a, 0x67, 0x54, 0xa2, 0xdb,
|
||||
0xf1, 0x3e, 0x89, 0x99, 0xe7, 0x31, 0x9d, 0xf5, 0x66, 0x5e, 0xe5, 0x60, 0x2c, 0xf1, 0x67, 0x5f,
|
||||
0x86, 0xc5, 0x01, 0x19, 0xe8, 0x34, 0x94, 0xf7, 0xc8, 0x01, 0x1f, 0x7a, 0x4c, 0x7f, 0xa2, 0xa7,
|
||||
0x60, 0x9a, 0x6d, 0x0c, 0x7c, 0x68, 0x31, 0xff, 0xf8, 0x7c, 0xe9, 0xa2, 0x65, 0xff, 0x91, 0x05,
|
||||
0x1f, 0x1b, 0x71, 0xdc, 0x50, 0x57, 0x29, 0xd0, 0x79, 0x3c, 0x65, 0xdf, 0x6c, 0x57, 0x62, 0x18,
|
||||
0xf4, 0x15, 0x28, 0x93, 0x60, 0x5f, 0x18, 0xe1, 0xda, 0x04, 0x63, 0x78, 0x29, 0xd8, 0xe7, 0xe3,
|
||||
0x33, 0x73, 0x74, 0xb8, 0x5c, 0xbe, 0x14, 0xec, 0x63, 0xca, 0xd8, 0x7e, 0xbb, 0x92, 0x71, 0x66,
|
||||
0x9b, 0x32, 0x2c, 0x62, 0x5a, 0x0a, 0x57, 0x76, 0xb3, 0xc8, 0xa9, 0x33, 0xfc, 0x70, 0x9e, 0x74,
|
||||
0x12, 0xb2, 0xd0, 0x37, 0x2d, 0x96, 0xea, 0x91, 0xfe, 0xbb, 0x38, 0xfc, 0x1e, 0x41, 0xda, 0xc9,
|
||||
0xcc, 0x1e, 0x49, 0x20, 0x36, 0x45, 0x53, 0xf3, 0x88, 0x78, 0xd6, 0x47, 0x1c, 0x1b, 0xca, 0x3c,
|
||||
0x64, 0x32, 0x48, 0xe2, 0x51, 0x1f, 0x80, 0xc6, 0xf1, 0x3b, 0x61, 0xd7, 0x77, 0x0f, 0x44, 0x34,
|
||||
0x37, 0x69, 0xc6, 0x80, 0x33, 0xe3, 0x47, 0xab, 0xfe, 0xc6, 0x86, 0x20, 0xf4, 0x6d, 0x0b, 0x16,
|
||||
0xfd, 0x76, 0x10, 0xc6, 0x64, 0xdd, 0x6f, 0xb5, 0x48, 0x4c, 0x02, 0x97, 0xc8, 0x03, 0x68, 0x77,
|
||||
0x02, 0xf1, 0x32, 0x07, 0xb0, 0x91, 0xe7, 0xdd, 0xf8, 0xb8, 0x18, 0x82, 0xc5, 0x01, 0x14, 0x1e,
|
||||
0xd4, 0x04, 0x39, 0x30, 0xe5, 0x07, 0xad, 0x50, 0xe4, 0x9a, 0x5e, 0x9e, 0x40, 0xa3, 0x8d, 0xa0,
|
||||
0x15, 0xea, 0x95, 0x41, 0xbf, 0x30, 0x63, 0x8d, 0x36, 0xe1, 0xa9, 0x58, 0x04, 0x04, 0x57, 0xfd,
|
||||
0x84, 0x7a, 0x59, 0x9b, 0x7e, 0xcf, 0x4f, 0x59, 0x50, 0x50, 0x6e, 0x2c, 0x1d, 0x1d, 0x2e, 0x3f,
|
||||
0x85, 0x87, 0xe0, 0xf1, 0xd0, 0x56, 0xf6, 0x7f, 0x57, 0xb3, 0x51, 0x0f, 0x0f, 0xd5, 0xdf, 0x84,
|
||||
0x5a, 0xac, 0x52, 0x55, 0xfc, 0xe8, 0xdc, 0x28, 0x60, 0x74, 0x45, 0x82, 0x40, 0x85, 0x99, 0x3a,
|
||||
0x29, 0xa5, 0xc5, 0xd1, 0x23, 0x94, 0x4e, 0xb8, 0x58, 0x07, 0x93, 0xda, 0x94, 0x10, 0xa9, 0xb3,
|
||||
0x20, 0x07, 0x81, 0x8b, 0x99, 0x00, 0x14, 0x42, 0xa5, 0x43, 0x9c, 0x6e, 0xda, 0x11, 0xa1, 0xfa,
|
||||
0x95, 0x89, 0x1c, 0x18, 0xca, 0x28, 0x9f, 0x00, 0xe1, 0x50, 0x2c, 0xc4, 0xa0, 0x3e, 0xcc, 0x74,
|
||||
0xf8, 0xd8, 0x8b, 0xb3, 0xe1, 0xda, 0x44, 0x63, 0x9a, 0x99, 0x4d, 0xbd, 0x54, 0x05, 0x00, 0x4b,
|
||||
0x59, 0xe8, 0xb7, 0x2d, 0x00, 0x57, 0x66, 0x3e, 0xe4, 0x62, 0xb9, 0x51, 0xcc, 0xfe, 0xa2, 0x32,
|
||||
0x2a, 0xfa, 0x50, 0x55, 0xa0, 0x04, 0x1b, 0x62, 0xd1, 0xeb, 0x30, 0x17, 0x13, 0x37, 0x0c, 0x5c,
|
||||
0xbf, 0x4b, 0xbc, 0xd5, 0x74, 0xa9, 0x72, 0xe2, 0xf4, 0xc8, 0x69, 0x7a, 0xb8, 0x61, 0x83, 0x07,
|
||||
0xce, 0x70, 0x44, 0x6f, 0x5b, 0xb0, 0xa0, 0x52, 0x3f, 0x74, 0x2a, 0x88, 0x08, 0x94, 0x37, 0x8a,
|
||||
0xc8, 0x32, 0x31, 0x86, 0x0d, 0x44, 0x5d, 0xd2, 0x2c, 0x0c, 0xe7, 0x84, 0xa2, 0xd7, 0x00, 0xc2,
|
||||
0xdb, 0x2c, 0xc9, 0x42, 0xfb, 0x59, 0x3d, 0x71, 0x3f, 0x17, 0x78, 0x96, 0x50, 0x72, 0xc0, 0x06,
|
||||
0x37, 0x74, 0x1d, 0x80, 0xaf, 0x93, 0xdd, 0x83, 0x88, 0xb0, 0x78, 0xb8, 0xd6, 0xf8, 0xac, 0x1c,
|
||||
0xf9, 0xa6, 0xc2, 0xdc, 0x3f, 0x5c, 0x1e, 0x8c, 0x65, 0x58, 0x72, 0xcb, 0x68, 0x8e, 0xee, 0xc1,
|
||||
0x4c, 0xd2, 0xef, 0xf5, 0x1c, 0x15, 0xda, 0x6e, 0x15, 0x74, 0xe0, 0x71, 0xa6, 0xda, 0x24, 0x05,
|
||||
0x00, 0x4b, 0x71, 0x76, 0x00, 0x68, 0x90, 0x1e, 0xbd, 0x08, 0x73, 0xe4, 0x5e, 0x4a, 0xe2, 0xc0,
|
||||
0xe9, 0xde, 0xc4, 0x9b, 0x32, 0xd2, 0x62, 0xd3, 0x7e, 0xc9, 0x80, 0xe3, 0x0c, 0x15, 0xb2, 0x95,
|
||||
0xb7, 0x56, 0x62, 0xf4, 0xa0, 0xbd, 0x35, 0xe9, 0x9b, 0xd9, 0xbf, 0x53, 0xca, 0x9c, 0xf6, 0xbb,
|
||||
0x31, 0x21, 0xa8, 0x0b, 0xd3, 0x41, 0xe8, 0xa9, 0xfd, 0xed, 0x4a, 0x01, 0xfb, 0xdb, 0x76, 0xe8,
|
||||
0x19, 0x77, 0x25, 0xf4, 0x2b, 0xc1, 0x5c, 0x08, 0xfa, 0x86, 0x05, 0xf3, 0x32, 0xf1, 0xce, 0x10,
|
||||
0xc2, 0xb5, 0x29, 0x4c, 0xec, 0x19, 0x21, 0x76, 0xfe, 0x86, 0x29, 0x05, 0x67, 0x85, 0xda, 0x3f,
|
||||
0xb2, 0x32, 0x41, 0xee, 0x2d, 0x27, 0x75, 0x3b, 0x97, 0xf6, 0xa9, 0xf3, 0x7f, 0x3d, 0x93, 0x11,
|
||||
0xfd, 0x25, 0x33, 0x23, 0x7a, 0xff, 0x70, 0xf9, 0x33, 0xa3, 0x2e, 0x72, 0xef, 0x52, 0x0e, 0x75,
|
||||
0xc6, 0xc2, 0x48, 0x9e, 0x7e, 0x15, 0x66, 0x0d, 0x8d, 0xc5, 0x56, 0x5e, 0x54, 0xfa, 0x4e, 0xf9,
|
||||
0x31, 0x06, 0x10, 0x9b, 0xf2, 0xec, 0xf7, 0xca, 0x30, 0x23, 0xee, 0x8f, 0xc6, 0x4e, 0x87, 0x4a,
|
||||
0x97, 0xb4, 0x34, 0xd2, 0x25, 0x8d, 0xa0, 0xe2, 0xb2, 0xdb, 0x68, 0x71, 0x5e, 0x4c, 0x12, 0xd2,
|
||||
0x0b, 0xed, 0xf8, 0xed, 0xb6, 0xd6, 0x89, 0x7f, 0x63, 0x21, 0x07, 0xbd, 0x6b, 0xc1, 0x29, 0x97,
|
||||
0xc6, 0x50, 0xae, 0xde, 0xd2, 0xa6, 0x26, 0xbe, 0x21, 0x58, 0xcb, 0x72, 0x6c, 0x7c, 0x4c, 0x48,
|
||||
0x3f, 0x95, 0x43, 0xe0, 0xbc, 0x6c, 0xf4, 0x12, 0xcc, 0xf3, 0xd1, 0x7a, 0x35, 0x13, 0x44, 0x28,
|
||||
0xd3, 0x6b, 0x9a, 0x48, 0x9c, 0xa5, 0x45, 0x75, 0x1e, 0x89, 0xb1, 0x5c, 0x72, 0xc2, 0x1c, 0x24,
|
||||
0x91, 0x45, 0x51, 0xc9, 0xe6, 0x04, 0x1b, 0x14, 0xf6, 0x5f, 0x96, 0x61, 0x3e, 0x33, 0x4c, 0xe8,
|
||||
0x39, 0xa8, 0xf6, 0x13, 0xba, 0xf0, 0x55, 0xe4, 0xa0, 0x92, 0xc7, 0x37, 0x05, 0x1c, 0x2b, 0x0a,
|
||||
0x4a, 0x1d, 0x39, 0x49, 0x72, 0x37, 0x8c, 0x3d, 0x31, 0xa9, 0x8a, 0x7a, 0x47, 0xc0, 0xb1, 0xa2,
|
||||
0xa0, 0x21, 0xf3, 0x6d, 0xe2, 0xc4, 0x24, 0xde, 0x0d, 0xf7, 0xc8, 0xc0, 0x7d, 0x6b, 0x43, 0xa3,
|
||||
0xb0, 0x49, 0xc7, 0x66, 0x28, 0xed, 0x26, 0x6b, 0x5d, 0x9f, 0x04, 0x29, 0x57, 0xb3, 0x80, 0x19,
|
||||
0xda, 0xdd, 0x6c, 0x9a, 0x1c, 0xf5, 0x0c, 0xe5, 0x10, 0x38, 0x2f, 0x1b, 0x7d, 0xdd, 0x82, 0x79,
|
||||
0xe7, 0x6e, 0xa2, 0x2b, 0x27, 0xd8, 0x14, 0x4d, 0x66, 0xab, 0x99, 0x4a, 0x8c, 0xc6, 0x22, 0x9d,
|
||||
0xe8, 0x0c, 0x08, 0x67, 0x25, 0xda, 0x1f, 0x58, 0x20, 0x2b, 0x32, 0x1e, 0xc3, 0x1d, 0x41, 0x3b,
|
||||
0x7b, 0x47, 0xd0, 0x98, 0x7c, 0x51, 0x8e, 0xb8, 0x1f, 0xd8, 0x86, 0x19, 0x1a, 0x10, 0x3b, 0x81,
|
||||
0x87, 0x3e, 0x05, 0x33, 0x2e, 0xff, 0x29, 0xce, 0x28, 0x96, 0x3d, 0x16, 0x58, 0x2c, 0x71, 0xe8,
|
||||
0x13, 0x30, 0xe5, 0xc4, 0x6d, 0x79, 0x2e, 0xb1, 0xe4, 0xfa, 0x6a, 0xdc, 0x4e, 0x30, 0x83, 0xda,
|
||||
0xef, 0x96, 0x00, 0xd6, 0xc2, 0x5e, 0xe4, 0xc4, 0xc4, 0xdb, 0x0d, 0xff, 0xdf, 0x07, 0x9f, 0xf6,
|
||||
0x3b, 0x16, 0x20, 0x3a, 0x1e, 0x61, 0x40, 0x02, 0x9d, 0x33, 0x42, 0x2b, 0x50, 0x73, 0x25, 0x54,
|
||||
0xac, 0x7a, 0x15, 0x3f, 0x28, 0x72, 0xac, 0x69, 0xc6, 0xd8, 0xc8, 0x9f, 0x91, 0x39, 0x8b, 0x72,
|
||||
0x36, 0xb1, 0xcd, 0x32, 0x9d, 0x22, 0x85, 0x61, 0xff, 0x5e, 0x09, 0x9e, 0xe6, 0x06, 0xbd, 0xe5,
|
||||
0x04, 0x4e, 0x9b, 0xf4, 0xa8, 0x56, 0xe3, 0x66, 0x2f, 0x5e, 0xa7, 0x61, 0xa0, 0x2f, 0x13, 0xd9,
|
||||
0x13, 0xd9, 0x24, 0xb7, 0x25, 0x6e, 0x3d, 0x1b, 0x81, 0x9f, 0x62, 0xc6, 0x19, 0x45, 0x50, 0x95,
|
||||
0x45, 0x53, 0xe2, 0x38, 0x2a, 0x42, 0x8a, 0x5a, 0x68, 0x57, 0x04, 0x6f, 0xac, 0xa4, 0xd8, 0xef,
|
||||
0x59, 0x90, 0x3f, 0x21, 0xd8, 0xe1, 0xca, 0x2f, 0x92, 0xf3, 0x87, 0x6b, 0xf6, 0xea, 0xf7, 0x04,
|
||||
0x97, 0xa9, 0x5f, 0x86, 0x59, 0x27, 0x4d, 0x49, 0x2f, 0x4a, 0x99, 0xfb, 0x5c, 0x7e, 0x38, 0xf7,
|
||||
0x79, 0x2b, 0xf4, 0xfc, 0x96, 0xcf, 0xdc, 0x67, 0x93, 0x9d, 0xfd, 0x0a, 0x54, 0x65, 0x42, 0x68,
|
||||
0x8c, 0x69, 0x7c, 0x26, 0x93, 0xdc, 0x1a, 0x61, 0x28, 0x7f, 0x66, 0xc1, 0x9c, 0x19, 0xfe, 0xa1,
|
||||
0x76, 0x6e, 0x50, 0x6e, 0x64, 0x07, 0xe5, 0xfe, 0xe1, 0xf2, 0xaf, 0x0c, 0x2b, 0x2b, 0x6c, 0xfb,
|
||||
0x69, 0x18, 0x25, 0xcf, 0x93, 0xa0, 0xed, 0x07, 0x84, 0xf9, 0x56, 0x3c, 0x6c, 0xcc, 0xc4, 0x96,
|
||||
0x6b, 0xa1, 0x47, 0x1e, 0x62, 0x54, 0xed, 0x5b, 0xb0, 0x38, 0x90, 0x63, 0x1f, 0x63, 0x00, 0x8e,
|
||||
0xbd, 0xd2, 0xb4, 0xdf, 0xb5, 0x60, 0x3e, 0x73, 0x3f, 0x51, 0xd0, 0xb0, 0xd2, 0x03, 0xb9, 0x15,
|
||||
0xb2, 0x9c, 0x41, 0xec, 0x07, 0xdc, 0xe5, 0xaa, 0xea, 0x5d, 0xe4, 0xb2, 0x46, 0x61, 0x93, 0xce,
|
||||
0xde, 0x02, 0x96, 0x2b, 0x29, 0x6a, 0x72, 0x5f, 0x81, 0x2a, 0x65, 0x47, 0x0f, 0x82, 0xa2, 0x58,
|
||||
0x86, 0x50, 0xbd, 0x76, 0x6b, 0x97, 0xbb, 0x0f, 0x36, 0x94, 0x7d, 0x87, 0x6f, 0x6b, 0x65, 0xbd,
|
||||
0xf8, 0x36, 0x92, 0xa4, 0xcf, 0x4c, 0x97, 0x22, 0xd1, 0x33, 0x50, 0x26, 0xf7, 0x22, 0xc6, 0xb2,
|
||||
0xac, 0xb7, 0xbe, 0x4b, 0xf7, 0x22, 0x3f, 0x26, 0x09, 0x25, 0x22, 0xf7, 0x22, 0x74, 0x16, 0x4a,
|
||||
0xbe, 0x27, 0xf6, 0x33, 0x10, 0x34, 0xa5, 0x8d, 0x75, 0x5c, 0xf2, 0x3d, 0xbb, 0x0f, 0xa0, 0x2f,
|
||||
0x13, 0x8a, 0x9a, 0x9e, 0xf3, 0x30, 0xe5, 0x86, 0x1e, 0x11, 0xf3, 0xa2, 0xd8, 0x30, 0xfb, 0x64,
|
||||
0x18, 0xfb, 0x16, 0x2c, 0x5c, 0x0f, 0xc2, 0xbb, 0x01, 0x0d, 0x0b, 0x2e, 0xfb, 0xa4, 0xeb, 0x51,
|
||||
0xc6, 0x2d, 0xfa, 0x43, 0xc8, 0x56, 0x8c, 0x19, 0x16, 0x73, 0x9c, 0xaa, 0xcc, 0x28, 0x8d, 0xaa,
|
||||
0xcc, 0xb0, 0xbf, 0x65, 0xc1, 0xe9, 0xfc, 0xd5, 0xc2, 0x4f, 0xec, 0x98, 0x78, 0x8b, 0x2a, 0x23,
|
||||
0xb3, 0xf2, 0x37, 0x22, 0x9e, 0xeb, 0xb8, 0x08, 0x73, 0xb7, 0xfb, 0x7e, 0xd7, 0x13, 0xdf, 0x42,
|
||||
0x1f, 0x95, 0xa0, 0x6f, 0x18, 0x38, 0x9c, 0xa1, 0x44, 0x17, 0x00, 0x6e, 0xfb, 0x81, 0x13, 0x1f,
|
||||
0xec, 0xe8, 0x65, 0xa7, 0x32, 0x2b, 0x0d, 0x85, 0xc1, 0x06, 0x95, 0x7d, 0xdf, 0x02, 0x5d, 0xfd,
|
||||
0x82, 0x5a, 0x22, 0x7d, 0x66, 0x4d, 0xec, 0xf7, 0x35, 0x0f, 0x02, 0x57, 0x17, 0xd9, 0x54, 0x73,
|
||||
0xd9, 0xb3, 0x6f, 0x58, 0x30, 0x4b, 0x4f, 0x22, 0xdf, 0x49, 0x89, 0xd7, 0x38, 0x10, 0x47, 0xdd,
|
||||
0x56, 0x11, 0xa9, 0x96, 0x0d, 0xce, 0x36, 0x8c, 0xf5, 0x7a, 0xdf, 0xd0, 0x92, 0xb0, 0x29, 0xd6,
|
||||
0x4e, 0x00, 0x0d, 0xb6, 0x3b, 0x61, 0xa4, 0xb0, 0x02, 0x35, 0xa7, 0x9f, 0x86, 0x3d, 0xca, 0x92,
|
||||
0xf5, 0xa3, 0xaa, 0x6d, 0x67, 0x55, 0x22, 0xb0, 0xa6, 0xb1, 0x3f, 0x98, 0x82, 0x5c, 0x12, 0x08,
|
||||
0xf5, 0xcd, 0xe2, 0x26, 0xab, 0xc0, 0xe2, 0x26, 0xa5, 0xc9, 0xb0, 0x02, 0x27, 0xea, 0xfd, 0x46,
|
||||
0x1d, 0x27, 0x91, 0x66, 0xfc, 0x8a, 0xb4, 0xd1, 0x1d, 0x0a, 0xbc, 0x7f, 0xb8, 0xfc, 0xc5, 0xf1,
|
||||
0x4e, 0x1a, 0x3a, 0xa3, 0x2b, 0xfc, 0xa6, 0x48, 0x8b, 0x66, 0x3c, 0x30, 0xe7, 0x6f, 0x9e, 0x35,
|
||||
0xe5, 0x63, 0x4e, 0xf0, 0xaf, 0xf1, 0xab, 0x01, 0x4c, 0x92, 0x7e, 0x37, 0x15, 0xd1, 0xd0, 0x76,
|
||||
0x51, 0x76, 0xc8, 0xb9, 0xea, 0x3b, 0x02, 0xfe, 0x8d, 0x0d, 0x89, 0xe8, 0x4b, 0x50, 0x4b, 0x52,
|
||||
0x27, 0x4e, 0x1f, 0x32, 0xcd, 0xa8, 0x06, 0xbc, 0x29, 0x99, 0x60, 0xcd, 0x0f, 0xbd, 0x06, 0xd0,
|
||||
0xf2, 0x03, 0x3f, 0xe9, 0x30, 0xee, 0x33, 0x0f, 0xe7, 0x9d, 0x5c, 0x56, 0x1c, 0xb0, 0xc1, 0xcd,
|
||||
0xfe, 0x22, 0x9c, 0x3f, 0xae, 0xa8, 0x93, 0xc6, 0x14, 0x77, 0x9d, 0x38, 0x10, 0xd5, 0x14, 0x6c,
|
||||
0x51, 0xde, 0x72, 0xe2, 0x00, 0x33, 0xa8, 0xfd, 0x9d, 0x12, 0xcc, 0x1a, 0x75, 0xbb, 0x63, 0x6c,
|
||||
0xf6, 0xb9, 0x3a, 0xe3, 0xd2, 0x98, 0x75, 0xc6, 0xcf, 0x42, 0x35, 0x0a, 0xbb, 0xbe, 0xeb, 0xab,
|
||||
0x4b, 0xd2, 0x39, 0x16, 0x58, 0x0b, 0x18, 0x56, 0x58, 0x94, 0x42, 0xed, 0xce, 0xdd, 0x94, 0x1d,
|
||||
0x77, 0xf2, 0x4a, 0x74, 0x92, 0xeb, 0x3c, 0x79, 0x74, 0xea, 0x69, 0x92, 0x90, 0x04, 0x6b, 0x41,
|
||||
0xc8, 0x86, 0x4a, 0x3b, 0x0e, 0xfb, 0x11, 0x4f, 0x77, 0x8b, 0xa4, 0x20, 0x2b, 0x10, 0x4d, 0xb0,
|
||||
0xc0, 0xd8, 0x3f, 0x2c, 0x41, 0x0d, 0x93, 0x28, 0x5c, 0x8b, 0x89, 0x97, 0xa0, 0x4f, 0x42, 0xb9,
|
||||
0x1f, 0x77, 0xc5, 0x48, 0xcd, 0x0a, 0xe6, 0xe5, 0x9b, 0x78, 0x13, 0x53, 0x78, 0x66, 0x47, 0x29,
|
||||
0x9d, 0x28, 0xf7, 0x50, 0x3e, 0x36, 0xf7, 0xf0, 0x12, 0xcc, 0x27, 0x49, 0x67, 0x27, 0xf6, 0xf7,
|
||||
0x9d, 0x94, 0x5c, 0x27, 0x07, 0xa2, 0x02, 0x43, 0xa7, 0x55, 0x9a, 0x57, 0x35, 0x12, 0x67, 0x69,
|
||||
0xd1, 0x15, 0x58, 0xd4, 0x49, 0x00, 0x12, 0xa7, 0xeb, 0x34, 0xcc, 0xe6, 0x79, 0x19, 0x75, 0x75,
|
||||
0xa5, 0xd3, 0x06, 0x82, 0x00, 0x0f, 0xb6, 0x41, 0xeb, 0x70, 0x3a, 0x03, 0xa4, 0x8a, 0x54, 0x18,
|
||||
0x9f, 0x25, 0xc1, 0xe7, 0x74, 0x86, 0x0f, 0xd5, 0x65, 0xa0, 0x85, 0xfd, 0xa1, 0x05, 0xf3, 0x6a,
|
||||
0x50, 0x1f, 0x43, 0xf8, 0xef, 0x67, 0xc3, 0xff, 0xf5, 0x89, 0xd2, 0xa9, 0x42, 0xed, 0x11, 0x09,
|
||||
0x80, 0x3f, 0xae, 0x00, 0xb0, 0xa7, 0x02, 0x3e, 0xbb, 0x56, 0x39, 0x0f, 0x53, 0x31, 0x89, 0xc2,
|
||||
0xfc, 0xda, 0xa2, 0x14, 0x98, 0x61, 0xfe, 0xef, 0xda, 0xcc, 0xb0, 0xbc, 0xe2, 0xf4, 0x4f, 0x30,
|
||||
0xaf, 0xd8, 0x84, 0x33, 0x7e, 0x90, 0x10, 0xb7, 0x1f, 0x8b, 0x0b, 0xd8, 0xab, 0x61, 0xa2, 0xec,
|
||||
0xaf, 0xda, 0xf8, 0xa4, 0x60, 0x74, 0x66, 0x63, 0x18, 0x11, 0x1e, 0xde, 0x96, 0x8e, 0xa7, 0x44,
|
||||
0xb0, 0x7d, 0xba, 0x6a, 0x38, 0xd8, 0x02, 0x8e, 0x15, 0x05, 0xf5, 0x01, 0x48, 0xe0, 0xdc, 0xee,
|
||||
0x92, 0xcd, 0x56, 0xc2, 0xee, 0x6c, 0x0c, 0x1f, 0xe0, 0x12, 0x47, 0x5c, 0x6e, 0x62, 0x4d, 0x33,
|
||||
0x7c, 0xdd, 0xd5, 0x0a, 0x5a, 0x77, 0x70, 0xd2, 0x75, 0xa7, 0xdc, 0xe6, 0xd9, 0x91, 0x05, 0xcd,
|
||||
0xf2, 0x2c, 0x98, 0x1b, 0x79, 0x16, 0x7c, 0x01, 0x16, 0xfc, 0xa0, 0x43, 0x62, 0x3f, 0x25, 0x1e,
|
||||
0x5b, 0x08, 0x4b, 0xf3, 0x6c, 0x20, 0x54, 0x2d, 0xd6, 0x46, 0x06, 0x8b, 0x73, 0xd4, 0xf6, 0x37,
|
||||
0x4b, 0x70, 0x46, 0x2f, 0x10, 0xaa, 0x99, 0xdf, 0xa2, 0x56, 0xc2, 0x2a, 0x77, 0x78, 0x32, 0xd8,
|
||||
0x78, 0xbd, 0xa5, 0xdc, 0xda, 0xa6, 0xc2, 0x60, 0x83, 0x8a, 0xce, 0x9f, 0x4b, 0x62, 0x76, 0xab,
|
||||
0x90, 0x5f, 0x3d, 0x6b, 0x02, 0x8e, 0x15, 0x05, 0x7b, 0x20, 0x46, 0xe2, 0xb4, 0xd9, 0xbf, 0xcd,
|
||||
0x1a, 0xe4, 0xf2, 0xb7, 0x6b, 0x1a, 0x85, 0x4d, 0x3a, 0x7a, 0x8e, 0xb9, 0x72, 0xf2, 0xe8, 0x0a,
|
||||
0x9a, 0xe3, 0xe7, 0x98, 0x9a, 0x2f, 0x85, 0x95, 0xea, 0xd0, 0x68, 0x50, 0x6c, 0xaf, 0x19, 0x75,
|
||||
0xd8, 0x05, 0xbd, 0xa2, 0xb0, 0xff, 0xd3, 0x82, 0x8f, 0x0f, 0x1d, 0x8a, 0xc7, 0xb0, 0x25, 0xf6,
|
||||
0xb3, 0x5b, 0xe2, 0xce, 0x84, 0x5b, 0xe2, 0x40, 0x17, 0x46, 0x6c, 0x8f, 0x7f, 0x6f, 0xc1, 0x82,
|
||||
0xa6, 0x7f, 0x0c, 0xfd, 0x6c, 0x15, 0xf7, 0xc4, 0x4c, 0xeb, 0xdd, 0xa8, 0x0d, 0x74, 0xec, 0x43,
|
||||
0xd6, 0x31, 0xee, 0x8f, 0xad, 0xba, 0xf2, 0xf9, 0xc0, 0x31, 0x7e, 0xd5, 0x3e, 0x54, 0x58, 0x61,
|
||||
0x9b, 0xd4, 0x6e, 0xbb, 0x80, 0x7b, 0x3e, 0x2e, 0x9c, 0xc5, 0xbc, 0x3a, 0xd3, 0xc6, 0x3e, 0x13,
|
||||
0x2c, 0xa4, 0x51, 0x33, 0xf5, 0xfc, 0x84, 0x6e, 0x52, 0x9e, 0x88, 0xcd, 0xd5, 0x10, 0xae, 0x0b,
|
||||
0x38, 0x56, 0x14, 0x76, 0x0f, 0x96, 0xb2, 0xcc, 0xd7, 0x49, 0x8b, 0x45, 0x57, 0x63, 0xf5, 0x91,
|
||||
0xc6, 0x4d, 0xac, 0xd5, 0x66, 0xdf, 0xc9, 0xbf, 0x20, 0x58, 0x95, 0x08, 0xac, 0x69, 0xec, 0x3f,
|
||||
0xb7, 0xe0, 0xc9, 0x21, 0x9d, 0x29, 0x30, 0x27, 0x91, 0xea, 0xc5, 0x3f, 0xe2, 0x51, 0x87, 0x47,
|
||||
0x5a, 0x8e, 0x8c, 0x4b, 0x8c, 0x28, 0x66, 0x9d, 0x83, 0xb1, 0xc4, 0xdb, 0xff, 0x6e, 0xc1, 0xa9,
|
||||
0xac, 0xae, 0x09, 0xba, 0x06, 0x88, 0x77, 0x66, 0xdd, 0x4f, 0xdc, 0x70, 0x9f, 0xc4, 0x07, 0xb4,
|
||||
0xe7, 0x5c, 0xeb, 0xb3, 0x82, 0x13, 0x5a, 0x1d, 0xa0, 0xc0, 0x43, 0x5a, 0xa1, 0x6f, 0xb1, 0xcc,
|
||||
0xbb, 0x1c, 0x6d, 0x69, 0x26, 0xcd, 0xc2, 0xcc, 0x44, 0xcf, 0xa4, 0xe9, 0xce, 0x2b, 0x79, 0xd8,
|
||||
0x14, 0x6e, 0xff, 0xb8, 0x0c, 0x73, 0xb2, 0xf9, 0xba, 0xdf, 0x6a, 0xd1, 0xf1, 0x66, 0x5e, 0x72,
|
||||
0x3e, 0x55, 0xc3, 0x5c, 0x68, 0xcc, 0x71, 0x74, 0xbc, 0xf7, 0xfc, 0xc0, 0xcb, 0xa7, 0x50, 0xae,
|
||||
0xfb, 0x81, 0x87, 0x19, 0x26, 0xfb, 0xc6, 0xa4, 0x7c, 0xfc, 0x1b, 0x13, 0x65, 0x09, 0x53, 0x0f,
|
||||
0x0a, 0x58, 0xf8, 0xab, 0x08, 0xed, 0xb6, 0x18, 0x1b, 0xfd, 0xae, 0x46, 0x61, 0x93, 0x8e, 0x6a,
|
||||
0xd2, 0xf5, 0xf7, 0x09, 0x6f, 0x54, 0xc9, 0x6a, 0xb2, 0x29, 0x11, 0x58, 0xd3, 0x50, 0x4d, 0x3c,
|
||||
0xbf, 0xd5, 0x62, 0xae, 0x83, 0xa1, 0x09, 0x1d, 0x1d, 0xcc, 0x30, 0x94, 0xa2, 0x13, 0x86, 0x7b,
|
||||
0xc2, 0x5b, 0x50, 0x14, 0x57, 0xc3, 0x70, 0x0f, 0x33, 0x0c, 0xda, 0x82, 0x27, 0x83, 0x30, 0xee,
|
||||
0x39, 0x5d, 0xff, 0x4d, 0xe2, 0x29, 0x29, 0xc2, 0x4b, 0xf8, 0x19, 0xd1, 0xe0, 0xc9, 0xed, 0x41,
|
||||
0x12, 0x3c, 0xac, 0x1d, 0x35, 0xbf, 0x28, 0x26, 0x9e, 0xef, 0xa6, 0x26, 0x37, 0xc8, 0x9a, 0xdf,
|
||||
0xce, 0x00, 0x05, 0x1e, 0xd2, 0xca, 0xfe, 0x0f, 0x76, 0x40, 0x8d, 0x28, 0x7a, 0x2b, 0x6a, 0xfa,
|
||||
0xe5, 0x6c, 0x96, 0x1f, 0xb4, 0x85, 0x68, 0x03, 0x99, 0x1a, 0xc3, 0x40, 0x5e, 0x84, 0xb9, 0x3b,
|
||||
0x49, 0x18, 0xec, 0x84, 0x7e, 0xa0, 0x6a, 0xcf, 0x45, 0x8d, 0xc8, 0xb5, 0xe6, 0x8d, 0x6d, 0x09,
|
||||
0xc7, 0x19, 0x2a, 0xfb, 0xbd, 0x69, 0x78, 0x5a, 0x55, 0x4b, 0x90, 0xf4, 0x6e, 0x18, 0xef, 0xf9,
|
||||
0x41, 0x9b, 0x25, 0x8a, 0xbf, 0x6d, 0xc1, 0x1c, 0x37, 0x14, 0x51, 0xb6, 0xcb, 0xcb, 0x41, 0xdc,
|
||||
0x22, 0xea, 0x32, 0x32, 0x92, 0xea, 0xbb, 0x86, 0x94, 0x5c, 0xc9, 0xae, 0x89, 0xc2, 0x19, 0x75,
|
||||
0xd0, 0x9b, 0x00, 0xf2, 0x15, 0x50, 0xab, 0x88, 0x87, 0x50, 0x52, 0x39, 0x4c, 0x5a, 0xda, 0x05,
|
||||
0xdb, 0x55, 0x12, 0xb0, 0x21, 0x0d, 0xbd, 0x6d, 0x41, 0xa5, 0xcb, 0x47, 0xa5, 0xcc, 0x04, 0xff,
|
||||
0x6a, 0xf1, 0xa3, 0x62, 0x8e, 0x87, 0x3a, 0xd4, 0xc4, 0x48, 0x08, 0xe1, 0x08, 0xc3, 0x8c, 0x1f,
|
||||
0xb4, 0x63, 0x92, 0xc8, 0x0c, 0xc2, 0x67, 0x0c, 0x37, 0xa2, 0xee, 0x86, 0x31, 0x61, 0x4e, 0x43,
|
||||
0xe8, 0x78, 0x0d, 0xa7, 0xeb, 0x04, 0x2e, 0x89, 0x37, 0x38, 0xb9, 0xde, 0xdf, 0x05, 0x00, 0x4b,
|
||||
0x46, 0x03, 0xc5, 0x46, 0xd3, 0xe3, 0x14, 0x1b, 0x9d, 0x7d, 0x19, 0x16, 0x07, 0xa6, 0xf1, 0x24,
|
||||
0x55, 0xd1, 0x67, 0x3f, 0x07, 0xb3, 0x0f, 0x5b, 0x50, 0xfd, 0xc1, 0xb4, 0xde, 0xa4, 0xb7, 0x43,
|
||||
0x8f, 0x55, 0xd9, 0xc4, 0x7a, 0x36, 0x85, 0x87, 0x55, 0x94, 0x6d, 0x18, 0x2f, 0x46, 0x14, 0x10,
|
||||
0x9b, 0xf2, 0xa8, 0x65, 0x46, 0x4e, 0x4c, 0x82, 0x47, 0x6a, 0x99, 0x3b, 0x4a, 0x02, 0x36, 0xa4,
|
||||
0x21, 0x22, 0xea, 0x6c, 0xcb, 0x13, 0x27, 0x94, 0xe4, 0xf5, 0xce, 0xd0, 0x5a, 0xdb, 0x77, 0x2d,
|
||||
0x58, 0x08, 0x32, 0xf6, 0x2a, 0xf2, 0x99, 0xaf, 0x14, 0xbe, 0x10, 0x78, 0x69, 0x61, 0x16, 0x86,
|
||||
0x73, 0xc2, 0xd1, 0x2a, 0x9c, 0x92, 0x33, 0x90, 0x2d, 0xc1, 0x51, 0xb1, 0x36, 0xce, 0xa2, 0x71,
|
||||
0x9e, 0xde, 0x28, 0x97, 0xab, 0x8c, 0x2a, 0x97, 0x43, 0x7b, 0xaa, 0x32, 0x76, 0xa6, 0xd8, 0xca,
|
||||
0x58, 0x18, 0xac, 0x8a, 0xb5, 0xbf, 0x57, 0x82, 0xd3, 0x52, 0xeb, 0x1b, 0xfb, 0x24, 0x8e, 0x7d,
|
||||
0x8f, 0x9d, 0x0b, 0x1c, 0xad, 0x1d, 0x2c, 0x75, 0x2e, 0x5c, 0x95, 0x08, 0xac, 0x69, 0xa8, 0x67,
|
||||
0xc7, 0x9d, 0xac, 0x24, 0x9f, 0x9f, 0x16, 0xce, 0x1b, 0x96, 0x78, 0x1a, 0xb9, 0x0f, 0x96, 0x90,
|
||||
0x97, 0xb2, 0x91, 0xfb, 0x58, 0xc5, 0xde, 0xef, 0x58, 0x70, 0x6a, 0x2f, 0x73, 0xc5, 0x25, 0xf7,
|
||||
0xa7, 0x49, 0x2a, 0x4e, 0xb3, 0x97, 0x66, 0x7a, 0x66, 0xb3, 0xf0, 0x04, 0xe7, 0x45, 0xdb, 0xff,
|
||||
0x65, 0x81, 0xb9, 0x58, 0xc7, 0x3b, 0xc4, 0x8d, 0x17, 0x21, 0xa5, 0x07, 0xbf, 0x08, 0x51, 0xe7,
|
||||
0x7d, 0x79, 0x3c, 0x77, 0x6f, 0xea, 0x04, 0xee, 0xde, 0xf4, 0x48, 0x07, 0xe1, 0x93, 0x50, 0xee,
|
||||
0xfb, 0x9e, 0xf0, 0xd8, 0x74, 0x5a, 0x76, 0x63, 0x1d, 0x53, 0xb8, 0xfd, 0x57, 0xd3, 0x3a, 0x36,
|
||||
0x13, 0xe9, 0xff, 0x9f, 0x8a, 0x6e, 0xb7, 0x54, 0x0d, 0x01, 0xef, 0xf9, 0xf6, 0x40, 0x0d, 0xc1,
|
||||
0x2f, 0x9f, 0xfc, 0x66, 0x87, 0x0f, 0xd0, 0xa8, 0x12, 0x82, 0x99, 0x63, 0xae, 0x75, 0xee, 0x40,
|
||||
0x95, 0x3a, 0xb5, 0x2c, 0xbd, 0x52, 0xcd, 0x28, 0x55, 0xbd, 0x2a, 0xe0, 0xf7, 0x0f, 0x97, 0x3f,
|
||||
0x7f, 0x72, 0xb5, 0x64, 0x6b, 0xac, 0xf8, 0xa3, 0x04, 0x6a, 0xf4, 0x37, 0xbb, 0x81, 0x12, 0xee,
|
||||
0xf2, 0x4d, 0xb5, 0xfc, 0x25, 0xa2, 0x90, 0xeb, 0x2d, 0x2d, 0x07, 0x05, 0x50, 0x63, 0x2f, 0x4d,
|
||||
0x98, 0x50, 0xee, 0x55, 0xef, 0xa8, 0xbb, 0x20, 0x89, 0xb8, 0x7f, 0xb8, 0xfc, 0xd2, 0xc9, 0x85,
|
||||
0xaa, 0xe6, 0x58, 0x8b, 0xb0, 0x3f, 0x2a, 0x6b, 0xdb, 0x15, 0xa5, 0x23, 0x3f, 0x15, 0xb6, 0x7b,
|
||||
0x31, 0x67, 0xbb, 0xe7, 0x07, 0x6c, 0x77, 0x41, 0xbf, 0xcc, 0xc8, 0x58, 0xe3, 0xe3, 0x3c, 0x77,
|
||||
0xc6, 0x08, 0xdf, 0xd8, 0x69, 0xfb, 0x46, 0xdf, 0x8f, 0x49, 0xb2, 0x13, 0xf7, 0x03, 0x3f, 0x68,
|
||||
0x33, 0x5b, 0xac, 0x9a, 0xa7, 0x6d, 0x06, 0x8d, 0xf3, 0xf4, 0xf6, 0x5f, 0x94, 0xe0, 0x54, 0xee,
|
||||
0xa5, 0x06, 0x7a, 0x0e, 0xaa, 0xf2, 0x29, 0x4e, 0x3e, 0xb1, 0xa9, 0x5e, 0xfe, 0x2b, 0x0a, 0xf4,
|
||||
0x15, 0x00, 0x8f, 0x44, 0xdd, 0xf0, 0x80, 0x5d, 0x38, 0x4e, 0x9d, 0xf8, 0xc2, 0x51, 0x79, 0x52,
|
||||
0xeb, 0x8a, 0x0b, 0x36, 0x38, 0x8a, 0xca, 0x91, 0x69, 0x56, 0x5d, 0x92, 0xab, 0x1c, 0x31, 0x6a,
|
||||
0x12, 0x2b, 0x8f, 0xaf, 0x26, 0xd1, 0xfe, 0x3b, 0x8b, 0x3a, 0x04, 0xbc, 0xfb, 0x5b, 0x32, 0xd9,
|
||||
0xf7, 0x69, 0xa8, 0x38, 0xfd, 0xb4, 0x13, 0x0e, 0x94, 0x71, 0xaf, 0x32, 0x28, 0x16, 0x58, 0xb4,
|
||||
0x09, 0x53, 0x1e, 0x8d, 0x8a, 0x4b, 0x27, 0x1e, 0x28, 0x1d, 0xe2, 0xd3, 0x98, 0x99, 0x71, 0x41,
|
||||
0x9f, 0x80, 0xa9, 0xd4, 0x69, 0xcb, 0x2b, 0x4e, 0x76, 0xdb, 0xba, 0xeb, 0xb4, 0x13, 0xcc, 0xa0,
|
||||
0xe6, 0xe6, 0x39, 0x75, 0x4c, 0xfd, 0xd5, 0xbf, 0x4c, 0xc1, 0x7c, 0xe6, 0x1e, 0x3b, 0x63, 0x05,
|
||||
0xd6, 0xb1, 0x56, 0xf0, 0x0c, 0x4c, 0x47, 0x71, 0x3f, 0x20, 0xa2, 0x3c, 0x41, 0x6d, 0x0c, 0xd4,
|
||||
0xce, 0x08, 0xe6, 0x38, 0x3a, 0x46, 0x5e, 0x7c, 0x80, 0xfb, 0x81, 0xc8, 0xfc, 0xa9, 0x31, 0x5a,
|
||||
0x67, 0x50, 0x2c, 0xb0, 0xe8, 0xab, 0x30, 0x97, 0xb0, 0x05, 0x18, 0x3b, 0x29, 0x69, 0xcb, 0xd7,
|
||||
0x7b, 0x57, 0x26, 0x7e, 0x69, 0xc5, 0xd9, 0xf1, 0x18, 0xca, 0x84, 0xe0, 0x8c, 0x38, 0xf4, 0x75,
|
||||
0xcb, 0x7c, 0x5d, 0x56, 0x99, 0x38, 0x49, 0x9d, 0xaf, 0x0f, 0xe0, 0xd6, 0xf5, 0xe0, 0x47, 0x66,
|
||||
0x91, 0xb2, 0xec, 0x99, 0x47, 0x60, 0xd9, 0x30, 0xa4, 0xd2, 0xf6, 0xb3, 0x50, 0xeb, 0x39, 0x81,
|
||||
0xdf, 0x22, 0x49, 0xca, 0xff, 0x61, 0xa9, 0xc6, 0xff, 0xf2, 0x61, 0x4b, 0x02, 0xb1, 0xc6, 0xb3,
|
||||
0xbf, 0x2f, 0x63, 0xbd, 0xe2, 0x1e, 0x6d, 0xcd, 0xf8, 0xfb, 0x32, 0x0d, 0xc6, 0x26, 0x8d, 0xfd,
|
||||
0x96, 0x05, 0x67, 0x86, 0x8e, 0xc4, 0x63, 0x4b, 0xe6, 0xd0, 0xcd, 0xee, 0xc9, 0x21, 0xc5, 0x1a,
|
||||
0x68, 0xff, 0xd1, 0xbc, 0x26, 0x14, 0xa5, 0x20, 0xf3, 0x23, 0x27, 0xf9, 0x64, 0x1b, 0xad, 0xde,
|
||||
0xec, 0xca, 0x8f, 0x71, 0xb3, 0xfb, 0x6b, 0x0b, 0x8c, 0xb7, 0xae, 0xe8, 0xd7, 0xcd, 0x52, 0x24,
|
||||
0xab, 0x90, 0xd2, 0x19, 0xce, 0x59, 0xd5, 0x31, 0xf1, 0xf1, 0x1a, 0x56, 0xd6, 0x94, 0xb7, 0xba,
|
||||
0xd2, 0x18, 0x56, 0xd7, 0xe1, 0x33, 0x9e, 0x93, 0xa1, 0xb7, 0x2b, 0xeb, 0x01, 0xdb, 0xd5, 0x73,
|
||||
0x50, 0x4d, 0x48, 0xb7, 0x45, 0x8f, 0x65, 0xb1, 0xad, 0xa9, 0xe9, 0x69, 0x0a, 0x38, 0x56, 0x14,
|
||||
0xf6, 0x8f, 0xc5, 0x40, 0x09, 0x4f, 0xe9, 0x62, 0xae, 0xc8, 0x76, 0x7c, 0x27, 0xe3, 0x00, 0xc0,
|
||||
0x55, 0x65, 0xf7, 0x05, 0xbc, 0x32, 0xd5, 0x35, 0xfc, 0xe6, 0x1b, 0x48, 0x09, 0xc3, 0x86, 0xb0,
|
||||
0x8c, 0x41, 0x96, 0x8f, 0x33, 0x48, 0xfb, 0xdf, 0x2c, 0xc8, 0x6c, 0xa3, 0xa8, 0x07, 0xd3, 0x54,
|
||||
0x83, 0x83, 0x02, 0x5e, 0x08, 0x98, 0x7c, 0xa9, 0xb1, 0x8a, 0x7b, 0x2f, 0xf6, 0x13, 0x73, 0x29,
|
||||
0xc8, 0x17, 0x0e, 0x12, 0x1f, 0xa2, 0xeb, 0x05, 0x49, 0xa3, 0xfe, 0x95, 0xf8, 0xa3, 0x21, 0xe5,
|
||||
0x69, 0xd9, 0x17, 0x61, 0x71, 0x40, 0x23, 0x56, 0x2e, 0x1a, 0xca, 0x07, 0x11, 0x86, 0x11, 0xb1,
|
||||
0xda, 0x5f, 0xcc, 0x71, 0xf6, 0x77, 0x2c, 0x38, 0x9d, 0x67, 0x8f, 0xfe, 0xd0, 0x82, 0xc5, 0x24,
|
||||
0xcf, 0xef, 0x91, 0x8c, 0x9a, 0x4a, 0x18, 0x0c, 0xa0, 0xf0, 0xa0, 0x06, 0xf6, 0xf7, 0x4b, 0xdc,
|
||||
0x86, 0xf9, 0xbf, 0xdf, 0xa9, 0x3d, 0xd7, 0x1a, 0xb9, 0xe7, 0xd2, 0x25, 0xe2, 0x76, 0x88, 0xd7,
|
||||
0xef, 0x0e, 0xdc, 0x81, 0x37, 0x05, 0x1c, 0x2b, 0x0a, 0x76, 0xf7, 0xd7, 0x17, 0x25, 0x88, 0x39,
|
||||
0xf3, 0x5a, 0x17, 0x70, 0xac, 0x28, 0xd0, 0x8b, 0x30, 0x67, 0x74, 0x92, 0x67, 0x2e, 0x44, 0x02,
|
||||
0xd4, 0xd8, 0xbe, 0x12, 0x9c, 0xa1, 0xca, 0xbd, 0xe2, 0x9a, 0x3e, 0xee, 0x15, 0x17, 0xbb, 0x60,
|
||||
0xe7, 0xcf, 0x6a, 0x64, 0xc2, 0x89, 0x5f, 0xb0, 0x0b, 0x18, 0x56, 0x58, 0x74, 0x01, 0xa0, 0xe7,
|
||||
0x04, 0x7d, 0xa7, 0x4b, 0x47, 0x48, 0x54, 0x6c, 0xa8, 0x05, 0xb5, 0xa5, 0x30, 0xd8, 0xa0, 0xa2,
|
||||
0x4b, 0x24, 0xff, 0x26, 0x2a, 0x53, 0xf7, 0x61, 0x1d, 0x5b, 0xf7, 0x91, 0xad, 0x4c, 0x28, 0x8d,
|
||||
0x55, 0x99, 0x60, 0x16, 0x0d, 0x94, 0x1f, 0x58, 0x34, 0xf0, 0x29, 0x98, 0xd9, 0x23, 0x07, 0x46,
|
||||
0x75, 0x01, 0xff, 0x9b, 0x29, 0x0e, 0xc2, 0x12, 0x87, 0x6c, 0xa8, 0xb8, 0x8e, 0x2a, 0xdc, 0x9a,
|
||||
0xe3, 0xfe, 0xc3, 0xda, 0x2a, 0x23, 0x12, 0x98, 0x46, 0xfd, 0xfd, 0x8f, 0xce, 0x3d, 0xf1, 0x83,
|
||||
0x8f, 0xce, 0x3d, 0xf1, 0xe1, 0x47, 0xe7, 0x9e, 0x78, 0xeb, 0xe8, 0x9c, 0xf5, 0xfe, 0xd1, 0x39,
|
||||
0xeb, 0x07, 0x47, 0xe7, 0xac, 0x0f, 0x8f, 0xce, 0x59, 0xff, 0x7a, 0x74, 0xce, 0xfa, 0xfd, 0x1f,
|
||||
0x9d, 0x7b, 0xe2, 0xb5, 0xaa, 0xb4, 0xd5, 0xff, 0x0d, 0x00, 0x00, 0xff, 0xff, 0xed, 0x21, 0xaa,
|
||||
0x05, 0xbb, 0x58, 0x00, 0x00,
|
||||
// 5187 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x3c, 0x5b, 0x6c, 0x24, 0xc7,
|
||||
0x71, 0x9a, 0x5d, 0x72, 0xb9, 0x5b, 0x7c, 0xdc, 0xb1, 0xa5, 0x93, 0xe9, 0x8b, 0x7d, 0x3c, 0x8c,
|
||||
0xe0, 0x47, 0x62, 0x69, 0x19, 0x1d, 0x94, 0xe4, 0x6c, 0x25, 0x96, 0xb9, 0xe4, 0x3d, 0x78, 0x47,
|
||||
0xf2, 0xa8, 0x5e, 0x9e, 0x0e, 0x90, 0x1f, 0xd1, 0xdc, 0x4c, 0xef, 0xee, 0x1c, 0x77, 0x67, 0x46,
|
||||
0x33, 0xb3, 0xbc, 0xa3, 0x12, 0x3b, 0x72, 0x62, 0x05, 0x86, 0x23, 0x05, 0x01, 0x82, 0x7c, 0x05,
|
||||
0x0e, 0x92, 0xfc, 0xc5, 0x7f, 0x81, 0x81, 0x00, 0x01, 0xf2, 0xa5, 0x0f, 0x47, 0xc8, 0x87, 0xe1,
|
||||
0x18, 0x42, 0xa2, 0x3c, 0xc0, 0x44, 0xf4, 0x4f, 0x90, 0x7c, 0x38, 0x41, 0x90, 0x9f, 0xfb, 0x0a,
|
||||
0xfa, 0xdd, 0x33, 0xbb, 0x7b, 0x5c, 0xde, 0xce, 0x9d, 0x03, 0xe7, 0x6f, 0xa7, 0xaa, 0xba, 0xaa,
|
||||
0xba, 0xbb, 0xba, 0xbb, 0xaa, 0xba, 0x7a, 0x61, 0xa3, 0xed, 0xa7, 0x9d, 0xfe, 0xed, 0xba, 0x1b,
|
||||
0xf6, 0x56, 0x9c, 0xb8, 0x1d, 0x46, 0x71, 0x78, 0x87, 0xfd, 0x78, 0xce, 0xf5, 0x56, 0xa2, 0xbd,
|
||||
0xf6, 0x8a, 0x13, 0xf9, 0xc9, 0x8a, 0x13, 0x45, 0x5d, 0xdf, 0x75, 0x52, 0x3f, 0x0c, 0x56, 0xf6,
|
||||
0x9f, 0x77, 0xba, 0x51, 0xc7, 0x79, 0x7e, 0xa5, 0x4d, 0x02, 0x12, 0x3b, 0x29, 0xf1, 0xea, 0x51,
|
||||
0x1c, 0xa6, 0x21, 0xfa, 0xac, 0x66, 0x55, 0x97, 0xac, 0xd8, 0x8f, 0x5f, 0x75, 0xbd, 0x7a, 0xb4,
|
||||
0xd7, 0xae, 0x53, 0x56, 0x75, 0x83, 0x55, 0x5d, 0xb2, 0x3a, 0xfb, 0x9c, 0xa1, 0x45, 0x3b, 0x6c,
|
||||
0x87, 0x2b, 0x8c, 0xe3, 0xed, 0x7e, 0x8b, 0x7d, 0xb1, 0x0f, 0xf6, 0x8b, 0x4b, 0x3a, 0x6b, 0xef,
|
||||
0x5d, 0x4c, 0xea, 0x7e, 0x48, 0x75, 0x5b, 0x71, 0xc3, 0x98, 0xac, 0xec, 0x0f, 0x68, 0x73, 0xf6,
|
||||
0x05, 0x4d, 0xd3, 0x73, 0xdc, 0x8e, 0x1f, 0x90, 0xf8, 0x40, 0x77, 0xa8, 0x47, 0x52, 0x67, 0x58,
|
||||
0xab, 0x95, 0x51, 0xad, 0xe2, 0x7e, 0x90, 0xfa, 0x3d, 0x32, 0xd0, 0xe0, 0x17, 0x8f, 0x6b, 0x90,
|
||||
0xb8, 0x1d, 0xd2, 0x73, 0xf2, 0xed, 0xec, 0xd7, 0x61, 0x7e, 0xf5, 0x56, 0x73, 0xb5, 0x9f, 0x76,
|
||||
0xd6, 0xc2, 0xa0, 0xe5, 0xb7, 0xd1, 0x2f, 0xc0, 0xac, 0xdb, 0xed, 0x27, 0x29, 0x89, 0xb7, 0x9d,
|
||||
0x1e, 0x59, 0xb2, 0xce, 0x5b, 0x9f, 0xae, 0x35, 0x9e, 0x7c, 0xef, 0x70, 0xf9, 0x89, 0xa3, 0xc3,
|
||||
0xe5, 0xd9, 0x35, 0x8d, 0xc2, 0x26, 0x1d, 0xfa, 0x59, 0x98, 0x89, 0xc3, 0x2e, 0x59, 0xc5, 0xdb,
|
||||
0x4b, 0x25, 0xd6, 0xe4, 0x94, 0x68, 0x32, 0x83, 0x39, 0x18, 0x4b, 0xbc, 0xfd, 0x4f, 0x16, 0xc0,
|
||||
0x6a, 0x14, 0xed, 0xc4, 0xe1, 0x1d, 0xe2, 0xa6, 0xe8, 0x35, 0xa8, 0xd2, 0x51, 0xf0, 0x9c, 0xd4,
|
||||
0x61, 0xd2, 0x66, 0x2f, 0xfc, 0x7c, 0x9d, 0x77, 0xa6, 0x6e, 0x76, 0x46, 0xcf, 0x1c, 0xa5, 0xae,
|
||||
0xef, 0x3f, 0x5f, 0xbf, 0x71, 0x9b, 0xb6, 0xdf, 0x22, 0xa9, 0xd3, 0x40, 0x42, 0x18, 0x68, 0x18,
|
||||
0x56, 0x5c, 0xd1, 0x1e, 0x4c, 0x25, 0x11, 0x71, 0x99, 0x62, 0xb3, 0x17, 0x36, 0xea, 0x0f, 0x6d,
|
||||
0x1f, 0x75, 0xad, 0x76, 0x33, 0x22, 0x6e, 0x63, 0x4e, 0x88, 0x9d, 0xa2, 0x5f, 0x98, 0x09, 0xb1,
|
||||
0xff, 0xd1, 0x82, 0x05, 0x4d, 0xb6, 0xe9, 0x27, 0x29, 0xfa, 0xd2, 0x40, 0x0f, 0xeb, 0xe3, 0xf5,
|
||||
0x90, 0xb6, 0x66, 0xfd, 0x3b, 0x2d, 0x04, 0x55, 0x25, 0xc4, 0xe8, 0xdd, 0x1d, 0x98, 0xf6, 0x53,
|
||||
0xd2, 0x4b, 0x96, 0x4a, 0xe7, 0xcb, 0x9f, 0x9e, 0xbd, 0x70, 0xa9, 0x90, 0xee, 0x35, 0xe6, 0x85,
|
||||
0xc4, 0xe9, 0x0d, 0xca, 0x1b, 0x73, 0x11, 0xf6, 0xf7, 0xab, 0x66, 0xe7, 0x68, 0xaf, 0xd1, 0xf3,
|
||||
0x30, 0x9b, 0x84, 0xfd, 0xd8, 0x25, 0x98, 0x44, 0x61, 0xb2, 0x64, 0x9d, 0x2f, 0xd3, 0xc9, 0xa7,
|
||||
0xb6, 0xd2, 0xd4, 0x60, 0x6c, 0xd2, 0xa0, 0xdf, 0xb1, 0x60, 0xce, 0x23, 0x49, 0xea, 0x07, 0x4c,
|
||||
0xbe, 0xd4, 0xfc, 0xe5, 0xc9, 0x34, 0x97, 0xc0, 0x75, 0xcd, 0xb9, 0xf1, 0x94, 0xe8, 0xc5, 0x9c,
|
||||
0x01, 0x4c, 0x70, 0x46, 0x38, 0x35, 0x78, 0x8f, 0x24, 0x6e, 0xec, 0x47, 0xf4, 0x7b, 0xa9, 0x9c,
|
||||
0x35, 0xf8, 0x75, 0x8d, 0xc2, 0x26, 0x1d, 0xda, 0x83, 0x69, 0x6a, 0xd0, 0xc9, 0xd2, 0x14, 0x53,
|
||||
0xfe, 0xf2, 0x04, 0xca, 0x8b, 0xe1, 0xa4, 0x0b, 0x45, 0x8f, 0x3b, 0xfd, 0x4a, 0x30, 0x97, 0x81,
|
||||
0xde, 0xb1, 0x60, 0x49, 0xac, 0x36, 0x4c, 0xf8, 0x50, 0xde, 0xea, 0xf8, 0x29, 0xe9, 0xfa, 0x49,
|
||||
0xba, 0x34, 0xcd, 0x14, 0x58, 0x19, 0xcf, 0xa4, 0xae, 0xc4, 0x61, 0x3f, 0xba, 0xee, 0x07, 0x5e,
|
||||
0xe3, 0xbc, 0x90, 0xb4, 0xb4, 0x36, 0x82, 0x31, 0x1e, 0x29, 0x12, 0xfd, 0xbe, 0x05, 0x67, 0x03,
|
||||
0xa7, 0x47, 0x92, 0xc8, 0xa1, 0x93, 0xca, 0xd1, 0x8d, 0xae, 0xe3, 0xee, 0x31, 0x8d, 0x2a, 0x0f,
|
||||
0xa7, 0x91, 0x2d, 0x34, 0x3a, 0xbb, 0x3d, 0x92, 0x35, 0x7e, 0x80, 0x58, 0xf4, 0xc7, 0x16, 0x2c,
|
||||
0x86, 0x71, 0xd4, 0x71, 0x02, 0xe2, 0x49, 0x6c, 0xb2, 0x34, 0xc3, 0x56, 0xdc, 0x17, 0x27, 0x98,
|
||||
0x9f, 0x1b, 0x79, 0x9e, 0x5b, 0x61, 0xe0, 0xa7, 0x61, 0xdc, 0x24, 0x69, 0xea, 0x07, 0xed, 0xa4,
|
||||
0x71, 0xe6, 0xe8, 0x70, 0x79, 0x71, 0x80, 0x0a, 0x0f, 0x2a, 0x83, 0xee, 0xc1, 0x6c, 0x72, 0x10,
|
||||
0xb8, 0xb7, 0xfc, 0xc0, 0x0b, 0xef, 0x26, 0x4b, 0xd5, 0x89, 0x97, 0x6c, 0x53, 0x71, 0x13, 0x8b,
|
||||
0x4e, 0x73, 0xc7, 0xa6, 0xa8, 0xe1, 0x53, 0xa6, 0x8d, 0xa8, 0x56, 0xf4, 0x94, 0x69, 0x33, 0x7a,
|
||||
0x80, 0x58, 0xfb, 0x7b, 0x65, 0x98, 0x35, 0xd6, 0xee, 0x63, 0x38, 0x0c, 0xba, 0x99, 0xc3, 0xe0,
|
||||
0x5a, 0x31, 0x7b, 0xce, 0xa8, 0xd3, 0x00, 0xa5, 0x50, 0x49, 0x52, 0x27, 0xed, 0x27, 0x6c, 0x5f,
|
||||
0x99, 0xbd, 0xb0, 0x59, 0x90, 0x3c, 0xc6, 0xb3, 0xb1, 0x20, 0x24, 0x56, 0xf8, 0x37, 0x16, 0xb2,
|
||||
0xd0, 0xeb, 0x50, 0x0b, 0x23, 0x7a, 0xcc, 0xd3, 0x0d, 0x6d, 0x8a, 0x09, 0x5e, 0x9f, 0xc4, 0xfe,
|
||||
0x25, 0xaf, 0xc6, 0xfc, 0xd1, 0xe1, 0x72, 0x4d, 0x7d, 0x62, 0x2d, 0xc5, 0xfe, 0x7b, 0x0b, 0x9e,
|
||||
0x32, 0x14, 0x5c, 0x0b, 0x03, 0xcf, 0x67, 0x33, 0x7a, 0x1e, 0xa6, 0xd2, 0x83, 0x48, 0x3a, 0x12,
|
||||
0x6a, 0x8c, 0x76, 0x0f, 0x22, 0x82, 0x19, 0x86, 0xba, 0x0e, 0x3d, 0x92, 0x24, 0x4e, 0x9b, 0xe4,
|
||||
0x5d, 0x87, 0x2d, 0x0e, 0xc6, 0x12, 0x8f, 0x62, 0x40, 0x5d, 0x27, 0x49, 0x77, 0x63, 0x27, 0x48,
|
||||
0x18, 0xfb, 0x5d, 0xbf, 0x47, 0xc4, 0xd0, 0xfe, 0xdc, 0x78, 0x86, 0x42, 0x5b, 0x34, 0x9e, 0x3e,
|
||||
0x3a, 0x5c, 0x46, 0x9b, 0x03, 0x9c, 0xf0, 0x10, 0xee, 0xf6, 0xeb, 0xf0, 0xf4, 0xf0, 0xd3, 0x05,
|
||||
0x7d, 0x12, 0x2a, 0x09, 0x89, 0xf7, 0x49, 0x2c, 0x3a, 0xa7, 0xa7, 0x83, 0x41, 0xb1, 0xc0, 0xa2,
|
||||
0x15, 0xa8, 0xa9, 0x25, 0x20, 0xba, 0xb8, 0x28, 0x48, 0x6b, 0x7a, 0xdd, 0x68, 0x1a, 0xfb, 0x9f,
|
||||
0x2d, 0x38, 0x65, 0xc8, 0x7c, 0x0c, 0x4e, 0xc4, 0x5e, 0xd6, 0x89, 0xb8, 0x5c, 0x8c, 0x99, 0x8e,
|
||||
0xf0, 0x22, 0xbe, 0x5b, 0x81, 0x45, 0xd3, 0x98, 0xd9, 0x9e, 0xc0, 0x3c, 0x48, 0x12, 0x85, 0x37,
|
||||
0xf1, 0xa6, 0x18, 0x4e, 0xed, 0x41, 0x72, 0x30, 0x96, 0x78, 0x6a, 0x53, 0x91, 0x93, 0x76, 0xc4,
|
||||
0x58, 0x2a, 0x9b, 0xda, 0x71, 0xd2, 0x0e, 0x66, 0x18, 0xf4, 0x79, 0x58, 0x48, 0x9d, 0xb8, 0x4d,
|
||||
0x52, 0x4c, 0xf6, 0xfd, 0x44, 0x2e, 0x83, 0x5a, 0xe3, 0x69, 0x41, 0xbb, 0xb0, 0x9b, 0xc1, 0xe2,
|
||||
0x1c, 0x35, 0x0a, 0x60, 0xaa, 0x43, 0xba, 0x3d, 0x71, 0x78, 0xec, 0x14, 0xb4, 0x6a, 0x59, 0x47,
|
||||
0xaf, 0x92, 0x6e, 0xaf, 0x51, 0xa5, 0xfa, 0xd2, 0x5f, 0x98, 0xc9, 0x41, 0xbf, 0x69, 0x41, 0x6d,
|
||||
0xaf, 0x9f, 0xa4, 0x61, 0xcf, 0x7f, 0x83, 0x2c, 0x55, 0x99, 0xd4, 0x9b, 0x45, 0x4a, 0xbd, 0x2e,
|
||||
0x99, 0xf3, 0x35, 0xac, 0x3e, 0xb1, 0x16, 0x8b, 0xde, 0x80, 0x99, 0xbd, 0x24, 0x0c, 0x02, 0x42,
|
||||
0x8f, 0x03, 0xaa, 0x41, 0xb3, 0x50, 0x0d, 0x38, 0xeb, 0xc6, 0x2c, 0x9d, 0x52, 0xf1, 0x81, 0xa5,
|
||||
0x40, 0x36, 0x00, 0x9e, 0x1f, 0x13, 0x37, 0x0d, 0xe3, 0x83, 0x25, 0x28, 0x7e, 0x00, 0xd6, 0x25,
|
||||
0x73, 0x3e, 0x00, 0xea, 0x13, 0x6b, 0xb1, 0x68, 0x1f, 0x2a, 0x51, 0xb7, 0xdf, 0xf6, 0x83, 0xa5,
|
||||
0x59, 0xa6, 0x00, 0x2e, 0x52, 0x81, 0x1d, 0xc6, 0xb9, 0x01, 0x74, 0x83, 0xe0, 0xbf, 0xb1, 0x90,
|
||||
0x86, 0x9e, 0x81, 0x69, 0xb7, 0xe3, 0xc4, 0xe9, 0xd2, 0x1c, 0x33, 0x52, 0xb5, 0x6a, 0xd6, 0x28,
|
||||
0x10, 0x73, 0x9c, 0xfd, 0xd7, 0x16, 0x9c, 0x1d, 0xdd, 0x2b, 0xbe, 0x7c, 0xdc, 0x7e, 0x9c, 0xf0,
|
||||
0xad, 0xb6, 0x6a, 0x2e, 0x1f, 0x06, 0xc6, 0x12, 0x8f, 0xbe, 0x06, 0x33, 0x77, 0xc4, 0x3c, 0x97,
|
||||
0x8a, 0x9f, 0xe7, 0x6b, 0x62, 0x9e, 0x95, 0xfc, 0x6b, 0x72, 0xae, 0x85, 0x50, 0xfb, 0xbb, 0x65,
|
||||
0x38, 0x33, 0x74, 0x59, 0xa0, 0x3a, 0xc0, 0xbe, 0xd3, 0xed, 0x93, 0xcb, 0x3e, 0xf5, 0xac, 0x79,
|
||||
0x2c, 0xb1, 0x40, 0x8f, 0xf2, 0x57, 0x14, 0x14, 0x1b, 0x14, 0xe8, 0xd7, 0x01, 0x22, 0x27, 0x76,
|
||||
0x7a, 0x24, 0x25, 0xb1, 0xdc, 0xbb, 0xae, 0x4e, 0xd0, 0x19, 0xaa, 0xc4, 0x8e, 0x64, 0xa8, 0x1d,
|
||||
0x09, 0x05, 0x4a, 0xb0, 0x21, 0x8f, 0x46, 0x0e, 0x31, 0xe9, 0x12, 0x27, 0x21, 0x2c, 0x54, 0xce,
|
||||
0x45, 0x0e, 0x58, 0xa3, 0xb0, 0x49, 0x47, 0x8f, 0x0d, 0xd6, 0x85, 0x44, 0xec, 0x49, 0xea, 0xd8,
|
||||
0x60, 0x9d, 0x4c, 0xb0, 0xc0, 0xa2, 0xb7, 0x2d, 0x58, 0x68, 0xf9, 0x5d, 0xa2, 0xa5, 0x0b, 0x57,
|
||||
0x7f, 0x73, 0xc2, 0x1e, 0x5e, 0x36, 0x99, 0xea, 0x2d, 0x31, 0x03, 0x4e, 0x70, 0x4e, 0xb6, 0xfd,
|
||||
0x3f, 0x16, 0x2c, 0x8d, 0x9a, 0x6c, 0x14, 0xc1, 0x0c, 0xb9, 0x97, 0xbe, 0xe2, 0xc4, 0x7c, 0xd6,
|
||||
0x26, 0xf3, 0x69, 0x05, 0xd3, 0x57, 0x9c, 0x58, 0x1b, 0xd1, 0x25, 0xce, 0x1d, 0x4b, 0x31, 0xa8,
|
||||
0x0d, 0x53, 0x69, 0xd7, 0x29, 0x22, 0xea, 0x35, 0xc4, 0x69, 0xf7, 0x64, 0x73, 0x35, 0xc1, 0x4c,
|
||||
0x80, 0xfd, 0xc3, 0x61, 0xfd, 0x16, 0xfb, 0x17, 0x35, 0x01, 0x12, 0xec, 0xfb, 0x71, 0x18, 0xf4,
|
||||
0x48, 0x90, 0xe6, 0xb3, 0x25, 0x97, 0x34, 0x0a, 0x9b, 0x74, 0xe8, 0x37, 0x86, 0xd8, 0xed, 0xf5,
|
||||
0x09, 0xba, 0x20, 0xd4, 0x19, 0xdb, 0x74, 0xed, 0xbf, 0x29, 0x0f, 0xd9, 0x4c, 0xd4, 0xa1, 0x80,
|
||||
0x2e, 0x00, 0x50, 0x6f, 0x64, 0x27, 0x26, 0x2d, 0xff, 0x9e, 0xe8, 0x95, 0x62, 0xb9, 0xad, 0x30,
|
||||
0xd8, 0xa0, 0x92, 0x6d, 0x9a, 0xfd, 0x16, 0x6d, 0x53, 0x1a, 0x6c, 0xc3, 0x31, 0xd8, 0xa0, 0x42,
|
||||
0x2f, 0x40, 0xc5, 0xef, 0x39, 0x6d, 0x42, 0xdd, 0x63, 0xba, 0xd6, 0x3f, 0x46, 0x97, 0xc1, 0x06,
|
||||
0x83, 0xdc, 0x3f, 0x5c, 0x5e, 0x50, 0x0a, 0x31, 0x10, 0x16, 0xb4, 0xe8, 0x4f, 0x2c, 0x98, 0x73,
|
||||
0xc3, 0x5e, 0x2f, 0x0c, 0x36, 0x9d, 0xdb, 0xa4, 0x2b, 0x43, 0xf0, 0xf6, 0x23, 0x39, 0x2f, 0xeb,
|
||||
0x6b, 0x86, 0xa4, 0x4b, 0x41, 0x1a, 0x1f, 0xe8, 0xac, 0x82, 0x89, 0xc2, 0x19, 0x95, 0xe8, 0x76,
|
||||
0xbc, 0x4f, 0x62, 0xe6, 0x79, 0x4c, 0x67, 0xbd, 0x99, 0x57, 0x38, 0x18, 0x4b, 0xfc, 0xd9, 0x97,
|
||||
0x60, 0x71, 0x40, 0x06, 0x3a, 0x0d, 0xe5, 0x3d, 0x72, 0xc0, 0x87, 0x1e, 0xd3, 0x9f, 0xe8, 0x29,
|
||||
0x98, 0x66, 0x1b, 0x03, 0x1f, 0x5a, 0xcc, 0x3f, 0x3e, 0x57, 0xba, 0x68, 0xd9, 0x7f, 0x68, 0xc1,
|
||||
0x47, 0x46, 0x1c, 0x37, 0xd4, 0x55, 0x0a, 0x74, 0x1e, 0x4f, 0xd9, 0x37, 0xdb, 0x95, 0x18, 0x06,
|
||||
0x7d, 0x05, 0xca, 0x24, 0xd8, 0x17, 0x46, 0xb8, 0x36, 0xc1, 0x18, 0x5e, 0x0a, 0xf6, 0xf9, 0xf8,
|
||||
0xcc, 0x1c, 0x1d, 0x2e, 0x97, 0x2f, 0x05, 0xfb, 0x98, 0x32, 0xb6, 0xdf, 0xaa, 0x64, 0x9c, 0xd9,
|
||||
0xa6, 0x0c, 0x8b, 0x98, 0x96, 0xc2, 0x95, 0xdd, 0x2c, 0x72, 0xea, 0x0c, 0x3f, 0x9c, 0x27, 0x9d,
|
||||
0x84, 0x2c, 0xf4, 0x4d, 0x8b, 0xa5, 0x7a, 0xa4, 0xff, 0x2e, 0x0e, 0xbf, 0x47, 0x90, 0x76, 0x32,
|
||||
0xb3, 0x47, 0x12, 0x88, 0x4d, 0xd1, 0xd4, 0x3c, 0x22, 0x9e, 0xf5, 0x11, 0xc7, 0x86, 0x32, 0x0f,
|
||||
0x99, 0x0c, 0x92, 0x78, 0xd4, 0x07, 0xa0, 0x71, 0xfc, 0x4e, 0xd8, 0xf5, 0xdd, 0x03, 0x11, 0xcd,
|
||||
0x4d, 0x9a, 0x31, 0xe0, 0xcc, 0xf8, 0xd1, 0xaa, 0xbf, 0xb1, 0x21, 0x08, 0x7d, 0xdb, 0x82, 0x45,
|
||||
0xbf, 0x1d, 0x84, 0x31, 0x59, 0xf7, 0x5b, 0x2d, 0x12, 0x93, 0xc0, 0x25, 0xf2, 0x00, 0xda, 0x9d,
|
||||
0x40, 0xbc, 0xcc, 0x01, 0x6c, 0xe4, 0x79, 0x37, 0x3e, 0x2a, 0x86, 0x60, 0x71, 0x00, 0x85, 0x07,
|
||||
0x35, 0x41, 0x0e, 0x4c, 0xf9, 0x41, 0x2b, 0x14, 0xb9, 0xa6, 0x97, 0x26, 0xd0, 0x68, 0x23, 0x68,
|
||||
0x85, 0x7a, 0x65, 0xd0, 0x2f, 0xcc, 0x58, 0xa3, 0x4d, 0x78, 0x2a, 0x16, 0x01, 0xc1, 0x55, 0x3f,
|
||||
0xa1, 0x5e, 0xd6, 0xa6, 0xdf, 0xf3, 0x53, 0x16, 0x14, 0x94, 0x1b, 0x4b, 0x47, 0x87, 0xcb, 0x4f,
|
||||
0xe1, 0x21, 0x78, 0x3c, 0xb4, 0x95, 0xfd, 0xdf, 0xd5, 0x6c, 0xd4, 0xc3, 0x43, 0xf5, 0x37, 0xa0,
|
||||
0x16, 0xab, 0x54, 0x15, 0x3f, 0x3a, 0x37, 0x0a, 0x18, 0x5d, 0x91, 0x20, 0x50, 0x61, 0xa6, 0x4e,
|
||||
0x4a, 0x69, 0x71, 0xf4, 0x08, 0xa5, 0x13, 0x2e, 0xd6, 0xc1, 0xa4, 0x36, 0x25, 0x44, 0xea, 0x2c,
|
||||
0xc8, 0x41, 0xe0, 0x62, 0x26, 0x00, 0x85, 0x50, 0xe9, 0x10, 0xa7, 0x9b, 0x76, 0x44, 0xa8, 0x7e,
|
||||
0x65, 0x22, 0x07, 0x86, 0x32, 0xca, 0x27, 0x40, 0x38, 0x14, 0x0b, 0x31, 0xa8, 0x0f, 0x33, 0x1d,
|
||||
0x3e, 0xf6, 0xe2, 0x6c, 0xb8, 0x36, 0xd1, 0x98, 0x66, 0x66, 0x53, 0x2f, 0x55, 0x01, 0xc0, 0x52,
|
||||
0x16, 0xfa, 0x2d, 0x0b, 0xc0, 0x95, 0x99, 0x0f, 0xb9, 0x58, 0x6e, 0x14, 0xb3, 0xbf, 0xa8, 0x8c,
|
||||
0x8a, 0x3e, 0x54, 0x15, 0x28, 0xc1, 0x86, 0x58, 0xf4, 0x1a, 0xcc, 0xc5, 0xc4, 0x0d, 0x03, 0xd7,
|
||||
0xef, 0x12, 0x6f, 0x35, 0x5d, 0xaa, 0x9c, 0x38, 0x3d, 0x72, 0x9a, 0x1e, 0x6e, 0xd8, 0xe0, 0x81,
|
||||
0x33, 0x1c, 0xd1, 0x5b, 0x16, 0x2c, 0xa8, 0xd4, 0x0f, 0x9d, 0x0a, 0x22, 0x02, 0xe5, 0x8d, 0x22,
|
||||
0xb2, 0x4c, 0x8c, 0x61, 0x03, 0x51, 0x97, 0x34, 0x0b, 0xc3, 0x39, 0xa1, 0xe8, 0x55, 0x80, 0xf0,
|
||||
0x36, 0x4b, 0xb2, 0xd0, 0x7e, 0x56, 0x4f, 0xdc, 0xcf, 0x05, 0x9e, 0x25, 0x94, 0x1c, 0xb0, 0xc1,
|
||||
0x0d, 0x5d, 0x07, 0xe0, 0xeb, 0x64, 0xf7, 0x20, 0x22, 0x2c, 0x1e, 0xae, 0x35, 0x3e, 0x23, 0x47,
|
||||
0xbe, 0xa9, 0x30, 0xf7, 0x0f, 0x97, 0x07, 0x63, 0x19, 0x96, 0xdc, 0x32, 0x9a, 0xa3, 0x7b, 0x30,
|
||||
0x93, 0xf4, 0x7b, 0x3d, 0x47, 0x85, 0xb6, 0x5b, 0x05, 0x1d, 0x78, 0x9c, 0xa9, 0x36, 0x49, 0x01,
|
||||
0xc0, 0x52, 0x9c, 0x1d, 0x00, 0x1a, 0xa4, 0x47, 0x2f, 0xc0, 0x1c, 0xb9, 0x97, 0x92, 0x38, 0x70,
|
||||
0xba, 0x37, 0xf1, 0xa6, 0x8c, 0xb4, 0xd8, 0xb4, 0x5f, 0x32, 0xe0, 0x38, 0x43, 0x85, 0x6c, 0xe5,
|
||||
0xad, 0x95, 0x18, 0x3d, 0x68, 0x6f, 0x4d, 0xfa, 0x66, 0xf6, 0x6f, 0x97, 0x32, 0xa7, 0xfd, 0x6e,
|
||||
0x4c, 0x08, 0xea, 0xc2, 0x74, 0x10, 0x7a, 0x6a, 0x7f, 0xbb, 0x52, 0xc0, 0xfe, 0xb6, 0x1d, 0x7a,
|
||||
0xc6, 0x5d, 0x09, 0xfd, 0x4a, 0x30, 0x17, 0x82, 0xbe, 0x61, 0xc1, 0xbc, 0x4c, 0xbc, 0x33, 0x84,
|
||||
0x70, 0x6d, 0x0a, 0x13, 0x7b, 0x46, 0x88, 0x9d, 0xbf, 0x61, 0x4a, 0xc1, 0x59, 0xa1, 0xf6, 0x8f,
|
||||
0xac, 0x4c, 0x90, 0x7b, 0xcb, 0x49, 0xdd, 0xce, 0xa5, 0x7d, 0xea, 0xfc, 0x5f, 0xcf, 0x64, 0x44,
|
||||
0x7f, 0xc9, 0xcc, 0x88, 0xde, 0x3f, 0x5c, 0xfe, 0xd4, 0xa8, 0x8b, 0xdc, 0xbb, 0x94, 0x43, 0x9d,
|
||||
0xb1, 0x30, 0x92, 0xa7, 0x5f, 0x85, 0x59, 0x43, 0x63, 0xb1, 0x95, 0x17, 0x95, 0xbe, 0x53, 0x7e,
|
||||
0x8c, 0x01, 0xc4, 0xa6, 0x3c, 0xfb, 0xdd, 0x32, 0xcc, 0x88, 0xfb, 0xa3, 0xb1, 0xd3, 0xa1, 0xd2,
|
||||
0x25, 0x2d, 0x8d, 0x74, 0x49, 0x23, 0xa8, 0xb8, 0xec, 0x36, 0x5a, 0x9c, 0x17, 0x93, 0x84, 0xf4,
|
||||
0x42, 0x3b, 0x7e, 0xbb, 0xad, 0x75, 0xe2, 0xdf, 0x58, 0xc8, 0x41, 0xef, 0x58, 0x70, 0xca, 0xa5,
|
||||
0x31, 0x94, 0xab, 0xb7, 0xb4, 0xa9, 0x89, 0x6f, 0x08, 0xd6, 0xb2, 0x1c, 0x1b, 0x1f, 0x11, 0xd2,
|
||||
0x4f, 0xe5, 0x10, 0x38, 0x2f, 0x1b, 0xbd, 0x08, 0xf3, 0x7c, 0xb4, 0x5e, 0xc9, 0x04, 0x11, 0xca,
|
||||
0xf4, 0x9a, 0x26, 0x12, 0x67, 0x69, 0x51, 0x9d, 0x47, 0x62, 0x2c, 0x97, 0x9c, 0x30, 0x07, 0x49,
|
||||
0x64, 0x51, 0x54, 0xb2, 0x39, 0xc1, 0x06, 0x85, 0xfd, 0x17, 0x65, 0x98, 0xcf, 0x0c, 0x13, 0x7a,
|
||||
0x16, 0xaa, 0xfd, 0x84, 0x2e, 0x7c, 0x15, 0x39, 0xa8, 0xe4, 0xf1, 0x4d, 0x01, 0xc7, 0x8a, 0x82,
|
||||
0x52, 0x47, 0x4e, 0x92, 0xdc, 0x0d, 0x63, 0x4f, 0x4c, 0xaa, 0xa2, 0xde, 0x11, 0x70, 0xac, 0x28,
|
||||
0x68, 0xc8, 0x7c, 0x9b, 0x38, 0x31, 0x89, 0x77, 0xc3, 0x3d, 0x32, 0x70, 0xdf, 0xda, 0xd0, 0x28,
|
||||
0x6c, 0xd2, 0xb1, 0x19, 0x4a, 0xbb, 0xc9, 0x5a, 0xd7, 0x27, 0x41, 0xca, 0xd5, 0x2c, 0x60, 0x86,
|
||||
0x76, 0x37, 0x9b, 0x26, 0x47, 0x3d, 0x43, 0x39, 0x04, 0xce, 0xcb, 0x46, 0x5f, 0xb7, 0x60, 0xde,
|
||||
0xb9, 0x9b, 0xe8, 0xca, 0x09, 0x36, 0x45, 0x93, 0xd9, 0x6a, 0xa6, 0x12, 0xa3, 0xb1, 0x48, 0x27,
|
||||
0x3a, 0x03, 0xc2, 0x59, 0x89, 0xf6, 0xfb, 0x16, 0xc8, 0x8a, 0x8c, 0xc7, 0x70, 0x47, 0xd0, 0xce,
|
||||
0xde, 0x11, 0x34, 0x26, 0x5f, 0x94, 0x23, 0xee, 0x07, 0xb6, 0x61, 0x86, 0x06, 0xc4, 0x4e, 0xe0,
|
||||
0xa1, 0x4f, 0xc0, 0x8c, 0xcb, 0x7f, 0x8a, 0x33, 0x8a, 0x65, 0x8f, 0x05, 0x16, 0x4b, 0x1c, 0xfa,
|
||||
0x18, 0x4c, 0x39, 0x71, 0x5b, 0x9e, 0x4b, 0x2c, 0xb9, 0xbe, 0x1a, 0xb7, 0x13, 0xcc, 0xa0, 0xf6,
|
||||
0x3b, 0x25, 0x80, 0xb5, 0xb0, 0x17, 0x39, 0x31, 0xf1, 0x76, 0xc3, 0xff, 0xf7, 0xc1, 0xa7, 0xfd,
|
||||
0xb6, 0x05, 0x88, 0x8e, 0x47, 0x18, 0x90, 0x40, 0xe7, 0x8c, 0xd0, 0x0a, 0xd4, 0x5c, 0x09, 0x15,
|
||||
0xab, 0x5e, 0xc5, 0x0f, 0x8a, 0x1c, 0x6b, 0x9a, 0x31, 0x36, 0xf2, 0x67, 0x64, 0xce, 0xa2, 0x9c,
|
||||
0x4d, 0x6c, 0xb3, 0x4c, 0xa7, 0x48, 0x61, 0xd8, 0xbf, 0x5b, 0x82, 0xa7, 0xb9, 0x41, 0x6f, 0x39,
|
||||
0x81, 0xd3, 0x26, 0x3d, 0xaa, 0xd5, 0xb8, 0xd9, 0x8b, 0xd7, 0x68, 0x18, 0xe8, 0xcb, 0x44, 0xf6,
|
||||
0x44, 0x36, 0xc9, 0x6d, 0x89, 0x5b, 0xcf, 0x46, 0xe0, 0xa7, 0x98, 0x71, 0x46, 0x11, 0x54, 0x65,
|
||||
0xd1, 0x94, 0x38, 0x8e, 0x8a, 0x90, 0xa2, 0x16, 0xda, 0x15, 0xc1, 0x1b, 0x2b, 0x29, 0xf6, 0xbb,
|
||||
0x16, 0xe4, 0x4f, 0x08, 0x76, 0xb8, 0xf2, 0x8b, 0xe4, 0xfc, 0xe1, 0x9a, 0xbd, 0xfa, 0x3d, 0xc1,
|
||||
0x65, 0xea, 0x97, 0x60, 0xd6, 0x49, 0x53, 0xd2, 0x8b, 0x52, 0xe6, 0x3e, 0x97, 0x1f, 0xce, 0x7d,
|
||||
0xde, 0x0a, 0x3d, 0xbf, 0xe5, 0x33, 0xf7, 0xd9, 0x64, 0x67, 0xbf, 0x0c, 0x55, 0x99, 0x10, 0x1a,
|
||||
0x63, 0x1a, 0x9f, 0xc9, 0x24, 0xb7, 0x46, 0x18, 0xca, 0x9f, 0x5a, 0x30, 0x67, 0x86, 0x7f, 0xa8,
|
||||
0x9d, 0x1b, 0x94, 0x1b, 0xd9, 0x41, 0xb9, 0x7f, 0xb8, 0xfc, 0x2b, 0xc3, 0xca, 0x0a, 0xdb, 0x7e,
|
||||
0x1a, 0x46, 0xc9, 0x73, 0x24, 0x68, 0xfb, 0x01, 0x61, 0xbe, 0x15, 0x0f, 0x1b, 0x33, 0xb1, 0xe5,
|
||||
0x5a, 0xe8, 0x91, 0x87, 0x18, 0x55, 0xfb, 0x16, 0x2c, 0x0e, 0xe4, 0xd8, 0xc7, 0x18, 0x80, 0x63,
|
||||
0xaf, 0x34, 0xed, 0x77, 0x2c, 0x98, 0xcf, 0xdc, 0x4f, 0x14, 0x34, 0xac, 0xf4, 0x40, 0x6e, 0x85,
|
||||
0x2c, 0x67, 0x10, 0xfb, 0x01, 0x77, 0xb9, 0xaa, 0x7a, 0x17, 0xb9, 0xac, 0x51, 0xd8, 0xa4, 0xb3,
|
||||
0xb7, 0x80, 0xe5, 0x4a, 0x8a, 0x9a, 0xdc, 0x97, 0xa1, 0x4a, 0xd9, 0xd1, 0x83, 0xa0, 0x28, 0x96,
|
||||
0x21, 0x54, 0xaf, 0xdd, 0xda, 0xe5, 0xee, 0x83, 0x0d, 0x65, 0xdf, 0xe1, 0xdb, 0x5a, 0x59, 0x2f,
|
||||
0xbe, 0x8d, 0x24, 0xe9, 0x33, 0xd3, 0xa5, 0x48, 0xf4, 0x0c, 0x94, 0xc9, 0xbd, 0x88, 0xb1, 0x2c,
|
||||
0xeb, 0xad, 0xef, 0xd2, 0xbd, 0xc8, 0x8f, 0x49, 0x42, 0x89, 0xc8, 0xbd, 0x08, 0x9d, 0x85, 0x92,
|
||||
0xef, 0x89, 0xfd, 0x0c, 0x04, 0x4d, 0x69, 0x63, 0x1d, 0x97, 0x7c, 0xcf, 0xee, 0x03, 0xe8, 0xcb,
|
||||
0x84, 0xa2, 0xa6, 0xe7, 0x3c, 0x4c, 0xb9, 0xa1, 0x47, 0xc4, 0xbc, 0x28, 0x36, 0xcc, 0x3e, 0x19,
|
||||
0xc6, 0xbe, 0x05, 0x0b, 0xd7, 0x83, 0xf0, 0x6e, 0x40, 0xc3, 0x82, 0xcb, 0x3e, 0xe9, 0x7a, 0x94,
|
||||
0x71, 0x8b, 0xfe, 0x10, 0xb2, 0x15, 0x63, 0x86, 0xc5, 0x1c, 0xa7, 0x2a, 0x33, 0x4a, 0xa3, 0x2a,
|
||||
0x33, 0xec, 0x6f, 0x59, 0x70, 0x3a, 0x7f, 0xb5, 0xf0, 0x13, 0x3b, 0x26, 0xde, 0xa4, 0xca, 0xc8,
|
||||
0xac, 0xfc, 0x8d, 0x88, 0xe7, 0x3a, 0x2e, 0xc2, 0xdc, 0xed, 0xbe, 0xdf, 0xf5, 0xc4, 0xb7, 0xd0,
|
||||
0x47, 0x25, 0xe8, 0x1b, 0x06, 0x0e, 0x67, 0x28, 0xd1, 0x05, 0x80, 0xdb, 0x7e, 0xe0, 0xc4, 0x07,
|
||||
0x3b, 0x7a, 0xd9, 0xa9, 0xcc, 0x4a, 0x43, 0x61, 0xb0, 0x41, 0x65, 0xff, 0x43, 0x09, 0x74, 0xf5,
|
||||
0x0b, 0x6a, 0x89, 0xf4, 0x99, 0x35, 0xb1, 0xdf, 0xd7, 0x3c, 0x08, 0x5c, 0x5d, 0x64, 0x53, 0xcd,
|
||||
0x65, 0xcf, 0xbe, 0x61, 0xc1, 0x2c, 0x3d, 0x89, 0x7c, 0x27, 0x25, 0x5e, 0xe3, 0x40, 0x1c, 0x75,
|
||||
0x5b, 0x45, 0xa4, 0x5a, 0x36, 0x38, 0xdb, 0x30, 0xd6, 0xeb, 0x7d, 0x43, 0x4b, 0xc2, 0xa6, 0x58,
|
||||
0xf4, 0x65, 0x91, 0x70, 0x2d, 0x17, 0x93, 0x70, 0xad, 0x66, 0x93, 0xad, 0x76, 0x02, 0x68, 0x50,
|
||||
0xad, 0x13, 0x06, 0x22, 0x2b, 0x50, 0x73, 0xfa, 0x69, 0xd8, 0xa3, 0x1a, 0xb3, 0x61, 0xaa, 0x6a,
|
||||
0xd3, 0x5c, 0x95, 0x08, 0xac, 0x69, 0xec, 0xf7, 0xa7, 0x20, 0x97, 0x63, 0x42, 0x7d, 0xb3, 0x76,
|
||||
0xca, 0x2a, 0xb0, 0x76, 0x4a, 0x69, 0x32, 0xac, 0x7e, 0x8a, 0x3a, 0xd7, 0x51, 0xc7, 0x49, 0xe4,
|
||||
0x2a, 0x79, 0x59, 0x2e, 0x81, 0x1d, 0x0a, 0xbc, 0x7f, 0xb8, 0xfc, 0x85, 0xf1, 0x0e, 0x32, 0x6a,
|
||||
0x30, 0x2b, 0xfc, 0x22, 0x4a, 0x8b, 0x66, 0x3c, 0x30, 0xe7, 0x6f, 0x1e, 0x65, 0xe5, 0x63, 0x1c,
|
||||
0x84, 0xaf, 0xf1, 0x9b, 0x07, 0x4c, 0x92, 0x7e, 0x37, 0x15, 0xc1, 0xd6, 0x76, 0x51, 0x66, 0xce,
|
||||
0xb9, 0xea, 0x2b, 0x08, 0xfe, 0x8d, 0x0d, 0x89, 0xe8, 0x8b, 0x50, 0x4b, 0x52, 0x27, 0x4e, 0x1f,
|
||||
0x32, 0x8b, 0xa9, 0x06, 0xbc, 0x29, 0x99, 0x60, 0xcd, 0x0f, 0xbd, 0x0a, 0xd0, 0xf2, 0x03, 0x3f,
|
||||
0xe9, 0x30, 0xee, 0x33, 0x0f, 0xe7, 0xfc, 0x5c, 0x56, 0x1c, 0xb0, 0xc1, 0xcd, 0xfe, 0x02, 0x9c,
|
||||
0x3f, 0xae, 0x66, 0x94, 0x86, 0x2c, 0x77, 0x9d, 0x38, 0x10, 0xc5, 0x1a, 0x6c, 0x35, 0xdc, 0x72,
|
||||
0xe2, 0x00, 0x33, 0xa8, 0xfd, 0x9d, 0x12, 0xcc, 0x1a, 0x65, 0xc1, 0x63, 0x9c, 0x25, 0xb9, 0x32,
|
||||
0xe6, 0xd2, 0x98, 0x65, 0xcc, 0x9f, 0x86, 0x6a, 0x14, 0x76, 0x7d, 0xd7, 0x57, 0x77, 0xb0, 0x73,
|
||||
0x2c, 0x6e, 0x17, 0x30, 0xac, 0xb0, 0x28, 0x85, 0xda, 0x9d, 0xbb, 0x29, 0x3b, 0x4d, 0xe5, 0x8d,
|
||||
0xeb, 0x24, 0xb7, 0x85, 0xf2, 0x64, 0xd6, 0xd3, 0x24, 0x21, 0x09, 0xd6, 0x82, 0x90, 0x0d, 0x95,
|
||||
0x76, 0x1c, 0xf6, 0x23, 0x9e, 0x4d, 0x17, 0x39, 0x47, 0x56, 0x7f, 0x9a, 0x60, 0x81, 0xb1, 0x7f,
|
||||
0x58, 0x82, 0x1a, 0x26, 0x51, 0xb8, 0x16, 0x13, 0x2f, 0x41, 0x1f, 0x87, 0x72, 0x3f, 0xee, 0x8a,
|
||||
0x91, 0x9a, 0x15, 0xcc, 0xcb, 0x37, 0xf1, 0x26, 0xa6, 0xf0, 0xcc, 0x8e, 0x52, 0x3a, 0x51, 0x6a,
|
||||
0xa3, 0x7c, 0x6c, 0x6a, 0xe3, 0x45, 0x98, 0x4f, 0x92, 0xce, 0x4e, 0xec, 0xef, 0x3b, 0x29, 0xb9,
|
||||
0x4e, 0x0e, 0x44, 0x81, 0x87, 0xce, 0xda, 0x34, 0xaf, 0x6a, 0x24, 0xce, 0xd2, 0xa2, 0x2b, 0xb0,
|
||||
0xa8, 0x73, 0x0c, 0x24, 0x4e, 0xd7, 0x69, 0x14, 0xcf, 0xd3, 0x3e, 0xea, 0x66, 0x4c, 0x67, 0x25,
|
||||
0x04, 0x01, 0x1e, 0x6c, 0x83, 0xd6, 0xe1, 0x74, 0x06, 0x48, 0x15, 0xa9, 0x30, 0x3e, 0x4b, 0x82,
|
||||
0xcf, 0xe9, 0x0c, 0x1f, 0xaa, 0xcb, 0x40, 0x0b, 0xfb, 0x03, 0x0b, 0xe6, 0xd5, 0xa0, 0x3e, 0x86,
|
||||
0xec, 0x82, 0x9f, 0xcd, 0x2e, 0xac, 0x4f, 0x94, 0xad, 0x15, 0x6a, 0x8f, 0xc8, 0x2f, 0xfc, 0x51,
|
||||
0x05, 0x80, 0xbd, 0x44, 0xf0, 0xd9, 0xad, 0xcd, 0x79, 0x98, 0x8a, 0x49, 0x14, 0xe6, 0xd7, 0x16,
|
||||
0xa5, 0xc0, 0x0c, 0xf3, 0x7f, 0xd7, 0x66, 0x86, 0xa5, 0x2d, 0xa7, 0x7f, 0x82, 0x69, 0xcb, 0x26,
|
||||
0x9c, 0xf1, 0x83, 0x84, 0xb8, 0xfd, 0x58, 0xdc, 0xef, 0x5e, 0x0d, 0x13, 0x65, 0x7f, 0xd5, 0xc6,
|
||||
0xc7, 0x05, 0xa3, 0x33, 0x1b, 0xc3, 0x88, 0xf0, 0xf0, 0xb6, 0x74, 0x3c, 0x25, 0x82, 0xed, 0xd3,
|
||||
0x55, 0xc3, 0x7f, 0x17, 0x70, 0xac, 0x28, 0xa8, 0x0f, 0x40, 0x02, 0xe7, 0x76, 0x97, 0x6c, 0xb6,
|
||||
0x12, 0x76, 0x25, 0x64, 0xf8, 0x00, 0x97, 0x38, 0xe2, 0x72, 0x13, 0x6b, 0x9a, 0xe1, 0xeb, 0xae,
|
||||
0x56, 0xd0, 0xba, 0x83, 0x93, 0xae, 0x3b, 0xe5, 0x95, 0xcf, 0x8e, 0xac, 0x97, 0x96, 0x67, 0xc1,
|
||||
0xdc, 0xc8, 0xb3, 0xe0, 0xf3, 0xb0, 0xe0, 0x07, 0x1d, 0x12, 0xfb, 0x29, 0xf1, 0xd8, 0x42, 0x58,
|
||||
0x9a, 0x67, 0x03, 0xa1, 0x4a, 0xbd, 0x36, 0x32, 0x58, 0x9c, 0xa3, 0xb6, 0xbf, 0x59, 0x82, 0x33,
|
||||
0x7a, 0x81, 0x50, 0xcd, 0xfc, 0x16, 0xb5, 0x12, 0x56, 0x18, 0xc4, 0x73, 0xcd, 0xc6, 0xe3, 0x30,
|
||||
0xe5, 0x35, 0x37, 0x15, 0x06, 0x1b, 0x54, 0x74, 0xfe, 0x5c, 0x12, 0xb3, 0x4b, 0x8b, 0xfc, 0xea,
|
||||
0x59, 0x13, 0x70, 0xac, 0x28, 0xd8, 0xfb, 0x33, 0x12, 0xa7, 0xcd, 0xfe, 0x6d, 0xd6, 0x20, 0x97,
|
||||
0x1e, 0x5e, 0xd3, 0x28, 0x6c, 0xd2, 0xd1, 0x73, 0xcc, 0x95, 0x93, 0x47, 0x57, 0xd0, 0x1c, 0x3f,
|
||||
0xc7, 0xd4, 0x7c, 0x29, 0xac, 0x54, 0x87, 0xba, 0x9e, 0x62, 0x7b, 0xcd, 0xa8, 0xc3, 0x5c, 0x52,
|
||||
0x45, 0x61, 0xff, 0xa7, 0x05, 0x1f, 0x1d, 0x3a, 0x14, 0x8f, 0x61, 0x4b, 0xec, 0x67, 0xb7, 0xc4,
|
||||
0x9d, 0x09, 0xb7, 0xc4, 0x81, 0x2e, 0x8c, 0xd8, 0x1e, 0xff, 0xce, 0x82, 0x05, 0x4d, 0xff, 0x18,
|
||||
0xfa, 0xd9, 0x2a, 0xee, 0x05, 0x9b, 0xd6, 0xbb, 0x51, 0x1b, 0xe8, 0xd8, 0x07, 0xac, 0x63, 0xdc,
|
||||
0x1f, 0x5b, 0x75, 0xe5, 0xeb, 0x84, 0x63, 0xfc, 0xaa, 0x7d, 0xa8, 0xb0, 0xba, 0x39, 0xa9, 0xdd,
|
||||
0x76, 0x01, 0xd7, 0x88, 0x5c, 0x38, 0x0b, 0xa9, 0x75, 0x22, 0x8f, 0x7d, 0x26, 0x58, 0x48, 0xa3,
|
||||
0x66, 0xea, 0xf9, 0x09, 0xdd, 0xa4, 0x3c, 0x11, 0xfa, 0xab, 0x21, 0x5c, 0x17, 0x70, 0xac, 0x28,
|
||||
0xec, 0x1e, 0x2c, 0x65, 0x99, 0xaf, 0x93, 0x16, 0x0b, 0xde, 0xc6, 0xea, 0x23, 0x8d, 0x9b, 0x58,
|
||||
0xab, 0xcd, 0xbe, 0x93, 0x7f, 0xa0, 0xb0, 0x2a, 0x11, 0x58, 0xd3, 0xd8, 0x7f, 0x66, 0xc1, 0x93,
|
||||
0x43, 0x3a, 0x53, 0x60, 0xca, 0x23, 0xd5, 0x8b, 0x7f, 0xc4, 0x9b, 0x11, 0x8f, 0xb4, 0x1c, 0x19,
|
||||
0x97, 0x18, 0x51, 0xcc, 0x3a, 0x07, 0x63, 0x89, 0xb7, 0xff, 0xdd, 0x82, 0x53, 0x59, 0x5d, 0x13,
|
||||
0x74, 0x0d, 0x10, 0xef, 0xcc, 0xba, 0x9f, 0xb8, 0xe1, 0x3e, 0x89, 0x0f, 0x68, 0xcf, 0xb9, 0xd6,
|
||||
0x67, 0x05, 0x27, 0xb4, 0x3a, 0x40, 0x81, 0x87, 0xb4, 0x42, 0xdf, 0x62, 0x89, 0x7d, 0x39, 0xda,
|
||||
0xd2, 0x4c, 0x9a, 0x85, 0x99, 0x89, 0x9e, 0x49, 0xd3, 0x9d, 0x57, 0xf2, 0xb0, 0x29, 0xdc, 0xfe,
|
||||
0x71, 0x19, 0xe6, 0x64, 0xf3, 0x75, 0xbf, 0xd5, 0xa2, 0xe3, 0xcd, 0xbc, 0xe4, 0x7c, 0x26, 0x88,
|
||||
0xb9, 0xd0, 0x98, 0xe3, 0xe8, 0x78, 0xef, 0xf9, 0x81, 0x97, 0xcf, 0xd0, 0x5c, 0xf7, 0x03, 0x0f,
|
||||
0x33, 0x4c, 0xf6, 0x09, 0x4b, 0xf9, 0xf8, 0x27, 0x2c, 0xca, 0x12, 0xa6, 0x1e, 0x14, 0xb0, 0xf0,
|
||||
0x47, 0x17, 0xda, 0x6d, 0x31, 0x36, 0xfa, 0x5d, 0x8d, 0xc2, 0x26, 0x1d, 0xd5, 0xa4, 0xeb, 0xef,
|
||||
0x13, 0xde, 0xa8, 0x92, 0xd5, 0x64, 0x53, 0x22, 0xb0, 0xa6, 0xa1, 0x9a, 0x78, 0x7e, 0xab, 0xc5,
|
||||
0x5c, 0x07, 0x43, 0x13, 0x3a, 0x3a, 0x98, 0x61, 0x28, 0x45, 0x27, 0x0c, 0xf7, 0x84, 0xb7, 0xa0,
|
||||
0x28, 0xae, 0x86, 0xe1, 0x1e, 0x66, 0x18, 0xb4, 0x05, 0x4f, 0x06, 0x61, 0xdc, 0x73, 0xba, 0xfe,
|
||||
0x1b, 0xc4, 0x53, 0x52, 0x84, 0x97, 0xf0, 0x33, 0xa2, 0xc1, 0x93, 0xdb, 0x83, 0x24, 0x78, 0x58,
|
||||
0x3b, 0x6a, 0x7e, 0x51, 0x4c, 0x3c, 0xdf, 0x4d, 0x4d, 0x6e, 0x90, 0x35, 0xbf, 0x9d, 0x01, 0x0a,
|
||||
0x3c, 0xa4, 0x95, 0xfd, 0x1f, 0xec, 0x80, 0x1a, 0x51, 0x53, 0x57, 0xd4, 0xf4, 0xcb, 0xd9, 0x2c,
|
||||
0x3f, 0x68, 0x0b, 0xd1, 0x06, 0x32, 0x35, 0x86, 0x81, 0xbc, 0x00, 0x73, 0x77, 0x92, 0x30, 0xd8,
|
||||
0x09, 0xfd, 0x40, 0x95, 0xb6, 0x8b, 0x12, 0x94, 0x6b, 0xcd, 0x1b, 0xdb, 0x12, 0x8e, 0x33, 0x54,
|
||||
0xf6, 0xbb, 0xd3, 0xf0, 0xb4, 0x2a, 0xc6, 0x20, 0xe9, 0xdd, 0x30, 0xde, 0xf3, 0x83, 0x36, 0xcb,
|
||||
0x43, 0x7f, 0xdb, 0x82, 0x39, 0x6e, 0x28, 0xa2, 0x2a, 0x98, 0x57, 0x9b, 0xb8, 0x45, 0x94, 0x7d,
|
||||
0x64, 0x24, 0xd5, 0x77, 0x0d, 0x29, 0xb9, 0x8a, 0x60, 0x13, 0x85, 0x33, 0xea, 0xa0, 0x37, 0x00,
|
||||
0xe4, 0x23, 0xa3, 0x56, 0x11, 0xef, 0xac, 0xa4, 0x72, 0x98, 0xb4, 0xb4, 0x0b, 0xb6, 0xab, 0x24,
|
||||
0x60, 0x43, 0x1a, 0x7a, 0xcb, 0x82, 0x4a, 0x97, 0x8f, 0x0a, 0x4f, 0xdf, 0x7d, 0xb9, 0xf8, 0x51,
|
||||
0x31, 0xc7, 0x43, 0x1d, 0x6a, 0x62, 0x24, 0x84, 0x70, 0x84, 0x61, 0xc6, 0x0f, 0xda, 0x31, 0x49,
|
||||
0x64, 0x06, 0xe1, 0x53, 0x86, 0x1b, 0x51, 0x77, 0xc3, 0x98, 0x30, 0xa7, 0x21, 0x74, 0xbc, 0x86,
|
||||
0xd3, 0x75, 0x02, 0x97, 0xc4, 0x1b, 0x9c, 0x5c, 0xef, 0xef, 0x02, 0x80, 0x25, 0xa3, 0x81, 0x5a,
|
||||
0xa6, 0xe9, 0x71, 0x6a, 0x99, 0xce, 0xbe, 0x04, 0x8b, 0x03, 0xd3, 0x78, 0x92, 0xa2, 0xeb, 0xb3,
|
||||
0x9f, 0x85, 0xd9, 0x87, 0xad, 0xd7, 0x7e, 0x7f, 0x5a, 0x6f, 0xd2, 0xdb, 0xa1, 0xc7, 0x8a, 0x78,
|
||||
0x62, 0x3d, 0x9b, 0xc2, 0xc3, 0x2a, 0xca, 0x36, 0x8c, 0x07, 0x29, 0x0a, 0x88, 0x4d, 0x79, 0xd4,
|
||||
0x32, 0x23, 0x27, 0x26, 0xc1, 0x23, 0xb5, 0xcc, 0x1d, 0x25, 0x01, 0x1b, 0xd2, 0x10, 0xc9, 0x64,
|
||||
0x95, 0xd7, 0x26, 0xcc, 0x2a, 0x53, 0x77, 0x6f, 0x68, 0x29, 0xef, 0x3b, 0x16, 0x2c, 0x04, 0x19,
|
||||
0x7b, 0x15, 0xf9, 0xcc, 0x97, 0x0b, 0x5f, 0x08, 0xbc, 0x72, 0x31, 0x0b, 0xc3, 0x39, 0xe1, 0x68,
|
||||
0x15, 0x4e, 0xc9, 0x19, 0xc8, 0x56, 0xf8, 0xa8, 0x58, 0x1b, 0x67, 0xd1, 0x38, 0x4f, 0x6f, 0x54,
|
||||
0xe3, 0x55, 0x46, 0x55, 0xe3, 0xa1, 0x3d, 0x55, 0x78, 0x3b, 0x53, 0x6c, 0xe1, 0x2d, 0x0c, 0x16,
|
||||
0xdd, 0xda, 0xdf, 0x2b, 0xc1, 0x69, 0xa9, 0xf5, 0x8d, 0x7d, 0x12, 0xc7, 0xbe, 0xc7, 0xce, 0x05,
|
||||
0x8e, 0xd6, 0x0e, 0x96, 0x3a, 0x17, 0xae, 0x4a, 0x04, 0xd6, 0x34, 0xd4, 0xb3, 0xe3, 0x4e, 0x56,
|
||||
0x92, 0xcf, 0x4f, 0x0b, 0xe7, 0x0d, 0x4b, 0x3c, 0x8d, 0xdc, 0x07, 0x2b, 0xd4, 0x4b, 0xd9, 0xc8,
|
||||
0x7d, 0xac, 0x5a, 0xf2, 0xb7, 0x2d, 0x38, 0xb5, 0x97, 0xb9, 0x41, 0x93, 0xfb, 0xd3, 0x24, 0x05,
|
||||
0xad, 0xd9, 0x3b, 0x39, 0x3d, 0xb3, 0x59, 0x78, 0x82, 0xf3, 0xa2, 0xed, 0xff, 0xb2, 0xc0, 0x5c,
|
||||
0xac, 0xe3, 0x1d, 0xe2, 0xc6, 0x83, 0x93, 0xd2, 0x83, 0x1f, 0x9c, 0xa8, 0xf3, 0xbe, 0x3c, 0x9e,
|
||||
0xbb, 0x37, 0x75, 0x02, 0x77, 0x6f, 0x7a, 0xa4, 0x83, 0xf0, 0x71, 0x28, 0xf7, 0x7d, 0x4f, 0x78,
|
||||
0x6c, 0x3a, 0x2d, 0xbb, 0xb1, 0x8e, 0x29, 0xdc, 0xfe, 0xcb, 0x69, 0x1d, 0x9b, 0x89, 0xf4, 0xff,
|
||||
0x4f, 0x45, 0xb7, 0x5b, 0xaa, 0x44, 0x81, 0xf7, 0x7c, 0x7b, 0xa0, 0x44, 0xe1, 0x97, 0x4f, 0x7e,
|
||||
0xb3, 0xc3, 0x07, 0x68, 0x54, 0x85, 0xc2, 0xcc, 0x31, 0xd7, 0x3a, 0x77, 0xa0, 0x4a, 0x9d, 0x5a,
|
||||
0x96, 0x5e, 0xa9, 0x66, 0x94, 0xaa, 0x5e, 0x15, 0xf0, 0xfb, 0x87, 0xcb, 0x9f, 0x3b, 0xb9, 0x5a,
|
||||
0xb2, 0x35, 0x56, 0xfc, 0x51, 0x02, 0x35, 0xfa, 0x9b, 0xdd, 0x40, 0x09, 0x77, 0xf9, 0xa6, 0x5a,
|
||||
0xfe, 0x12, 0x51, 0xc8, 0xf5, 0x96, 0x96, 0x83, 0x02, 0xa8, 0xb1, 0x87, 0x2c, 0x4c, 0x28, 0xf7,
|
||||
0xaa, 0x77, 0xd4, 0x5d, 0x90, 0x44, 0xdc, 0x3f, 0x5c, 0x7e, 0xf1, 0xe4, 0x42, 0x55, 0x73, 0xac,
|
||||
0x45, 0xd8, 0x1f, 0x96, 0xb5, 0xed, 0x8a, 0xca, 0x94, 0x9f, 0x0a, 0xdb, 0xbd, 0x98, 0xb3, 0xdd,
|
||||
0xf3, 0x03, 0xb6, 0xbb, 0xa0, 0x1f, 0x7e, 0x64, 0xac, 0xf1, 0x71, 0x9e, 0x3b, 0x63, 0x84, 0x6f,
|
||||
0xec, 0xb4, 0x7d, 0xbd, 0xef, 0xc7, 0x24, 0xd9, 0x89, 0xfb, 0x81, 0x1f, 0xb4, 0x99, 0x2d, 0x56,
|
||||
0xcd, 0xd3, 0x36, 0x83, 0xc6, 0x79, 0x7a, 0xfb, 0xcf, 0x4b, 0x70, 0x2a, 0xf7, 0x10, 0x04, 0x3d,
|
||||
0x0b, 0x55, 0xf9, 0xd2, 0x27, 0x9f, 0xd8, 0x54, 0x7f, 0x2c, 0xa0, 0x28, 0xd0, 0x57, 0x00, 0x3c,
|
||||
0x12, 0x75, 0xc3, 0x03, 0x76, 0xe1, 0x38, 0x75, 0xe2, 0x0b, 0x47, 0xe5, 0x49, 0xad, 0x2b, 0x2e,
|
||||
0xd8, 0xe0, 0x28, 0x0a, 0x53, 0xa6, 0x59, 0xf1, 0x4a, 0xae, 0x30, 0xc5, 0x28, 0x79, 0xac, 0x3c,
|
||||
0xbe, 0x92, 0x47, 0xfb, 0x6f, 0x2d, 0xea, 0x10, 0xf0, 0xee, 0x6f, 0xc9, 0x64, 0xdf, 0x27, 0xa1,
|
||||
0xe2, 0xf4, 0xd3, 0x4e, 0x38, 0x50, 0x25, 0xbe, 0xca, 0xa0, 0x58, 0x60, 0xd1, 0x26, 0x4c, 0x79,
|
||||
0x34, 0x2a, 0x2e, 0x9d, 0x78, 0xa0, 0x74, 0x88, 0x4f, 0x63, 0x66, 0xc6, 0x05, 0x7d, 0x0c, 0xa6,
|
||||
0x52, 0xa7, 0x2d, 0xaf, 0x38, 0xd9, 0x6d, 0xeb, 0xae, 0xd3, 0x4e, 0x30, 0x83, 0x9a, 0x9b, 0xe7,
|
||||
0xd4, 0x31, 0xe5, 0x5d, 0xff, 0x32, 0x05, 0xf3, 0x99, 0x7b, 0xec, 0x8c, 0x15, 0x58, 0xc7, 0x5a,
|
||||
0xc1, 0x33, 0x30, 0x1d, 0xc5, 0xfd, 0x80, 0x88, 0xf2, 0x04, 0xb5, 0x31, 0x50, 0x3b, 0x23, 0x98,
|
||||
0xe3, 0xe8, 0x18, 0x79, 0xf1, 0x01, 0xee, 0x07, 0x22, 0xf3, 0xa7, 0xc6, 0x68, 0x9d, 0x41, 0xb1,
|
||||
0xc0, 0xa2, 0xaf, 0xc2, 0x5c, 0xc2, 0x16, 0x60, 0xec, 0xa4, 0xa4, 0x2d, 0x1f, 0x07, 0x5e, 0x99,
|
||||
0xf8, 0x21, 0x17, 0x67, 0xc7, 0x63, 0x28, 0x13, 0x82, 0x33, 0xe2, 0xd0, 0xd7, 0x2d, 0xf3, 0xf1,
|
||||
0x5a, 0x65, 0xe2, 0x24, 0x75, 0xbe, 0x3e, 0x80, 0x5b, 0xd7, 0x83, 0xdf, 0xb0, 0x45, 0xca, 0xb2,
|
||||
0x67, 0x1e, 0x81, 0x65, 0xc3, 0x90, 0x42, 0xde, 0xcf, 0x40, 0xad, 0xe7, 0x04, 0x7e, 0x8b, 0x24,
|
||||
0x29, 0xff, 0x03, 0xa7, 0x1a, 0xff, 0x47, 0x89, 0x2d, 0x09, 0xc4, 0x1a, 0xcf, 0xfe, 0x1d, 0x8d,
|
||||
0xf5, 0x8a, 0x7b, 0xb4, 0x35, 0xe3, 0xdf, 0xd1, 0x34, 0x18, 0x9b, 0x34, 0xf6, 0x9b, 0x16, 0x9c,
|
||||
0x19, 0x3a, 0x12, 0x8f, 0x2d, 0x99, 0x43, 0x37, 0xbb, 0x27, 0x87, 0x14, 0x6b, 0xa0, 0xfd, 0x47,
|
||||
0xf3, 0x58, 0x51, 0x94, 0x82, 0xcc, 0x8f, 0x9c, 0xe4, 0x93, 0x6d, 0xb4, 0x7a, 0xb3, 0x2b, 0x3f,
|
||||
0xc6, 0xcd, 0xee, 0xaf, 0x2c, 0x30, 0x9e, 0xd2, 0xa2, 0x5f, 0x33, 0x4b, 0x91, 0xac, 0x42, 0x4a,
|
||||
0x67, 0x38, 0x67, 0x55, 0xc7, 0xc4, 0xc7, 0x6b, 0x58, 0x59, 0x53, 0xde, 0xea, 0x4a, 0x63, 0x58,
|
||||
0x5d, 0x87, 0xcf, 0x78, 0x4e, 0x86, 0xde, 0xae, 0xac, 0x07, 0x6c, 0x57, 0xcf, 0x42, 0x35, 0x21,
|
||||
0xdd, 0x16, 0x3d, 0x96, 0xc5, 0xb6, 0xa6, 0xa6, 0xa7, 0x29, 0xe0, 0x58, 0x51, 0xd8, 0x3f, 0x16,
|
||||
0x03, 0x25, 0x3c, 0xa5, 0x8b, 0xb9, 0x1a, 0xde, 0xf1, 0x9d, 0x8c, 0x03, 0x00, 0x57, 0x55, 0xf5,
|
||||
0x17, 0xf0, 0x88, 0x55, 0x3f, 0x11, 0x30, 0x9f, 0x58, 0x4a, 0x18, 0x36, 0x84, 0x65, 0x0c, 0xb2,
|
||||
0x7c, 0x9c, 0x41, 0xda, 0xff, 0x66, 0x41, 0x66, 0x1b, 0x45, 0x3d, 0x98, 0xa6, 0x1a, 0x1c, 0x14,
|
||||
0xf0, 0x00, 0xc1, 0xe4, 0x4b, 0x8d, 0x55, 0xdc, 0x7b, 0xb1, 0x9f, 0x98, 0x4b, 0x41, 0xbe, 0x70,
|
||||
0x90, 0xf8, 0x10, 0x5d, 0x2f, 0x48, 0x1a, 0xf5, 0xaf, 0xc4, 0xff, 0x18, 0x29, 0x4f, 0xcb, 0xbe,
|
||||
0x08, 0x8b, 0x03, 0x1a, 0xb1, 0x6a, 0xd4, 0x50, 0xbe, 0xb7, 0x30, 0x8c, 0x88, 0x95, 0x16, 0x63,
|
||||
0x8e, 0xb3, 0xbf, 0x63, 0xc1, 0xe9, 0x3c, 0x7b, 0xf4, 0x07, 0x16, 0x2c, 0x26, 0x79, 0x7e, 0x8f,
|
||||
0x64, 0xd4, 0x54, 0xc2, 0x60, 0x00, 0x85, 0x07, 0x35, 0xb0, 0xbf, 0x5f, 0xe2, 0x36, 0xcc, 0xff,
|
||||
0x5c, 0x4f, 0xed, 0xb9, 0xd6, 0xc8, 0x3d, 0x97, 0x2e, 0x11, 0xb7, 0x43, 0xbc, 0x7e, 0x77, 0xe0,
|
||||
0x0e, 0xbc, 0x29, 0xe0, 0x58, 0x51, 0xb0, 0xbb, 0xbf, 0xbe, 0x28, 0x41, 0xcc, 0x99, 0xd7, 0xba,
|
||||
0x80, 0x63, 0x45, 0x81, 0x5e, 0x80, 0x39, 0xa3, 0x93, 0x3c, 0x73, 0x21, 0x12, 0xa0, 0xc6, 0xf6,
|
||||
0x95, 0xe0, 0x0c, 0x55, 0xee, 0x91, 0xd8, 0xf4, 0x71, 0x8f, 0xc4, 0xd8, 0x05, 0x3b, 0x7f, 0xb5,
|
||||
0x23, 0x13, 0x4e, 0xfc, 0x82, 0x5d, 0xc0, 0xb0, 0xc2, 0xa2, 0x0b, 0x00, 0x3d, 0x27, 0xe8, 0x3b,
|
||||
0x5d, 0x3a, 0x42, 0xa2, 0x62, 0x43, 0x2d, 0xa8, 0x2d, 0x85, 0xc1, 0x06, 0x15, 0x5d, 0x22, 0xf9,
|
||||
0x27, 0x57, 0x99, 0xba, 0x0f, 0xeb, 0xd8, 0xba, 0x8f, 0x6c, 0x65, 0x42, 0x69, 0xac, 0xca, 0x04,
|
||||
0xb3, 0x68, 0xa0, 0xfc, 0xc0, 0xa2, 0x81, 0x4f, 0xc0, 0xcc, 0x1e, 0x39, 0x30, 0xaa, 0x0b, 0xf8,
|
||||
0xbf, 0x58, 0x71, 0x10, 0x96, 0x38, 0x64, 0x43, 0xc5, 0x75, 0x54, 0xe1, 0xd6, 0x1c, 0xf7, 0x1f,
|
||||
0xd6, 0x56, 0x19, 0x91, 0xc0, 0x34, 0xea, 0xef, 0x7d, 0x78, 0xee, 0x89, 0x1f, 0x7c, 0x78, 0xee,
|
||||
0x89, 0x0f, 0x3e, 0x3c, 0xf7, 0xc4, 0x9b, 0x47, 0xe7, 0xac, 0xf7, 0x8e, 0xce, 0x59, 0x3f, 0x38,
|
||||
0x3a, 0x67, 0x7d, 0x70, 0x74, 0xce, 0xfa, 0xd7, 0xa3, 0x73, 0xd6, 0xef, 0xfd, 0xe8, 0xdc, 0x13,
|
||||
0xaf, 0x56, 0xa5, 0xad, 0xfe, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf8, 0x94, 0x79, 0xef, 0x1a,
|
||||
0x59, 0x00, 0x00,
|
||||
}
|
||||
|
||||
func (m *AWSAuthConfig) Marshal() (dAtA []byte, err error) {
|
||||
@@ -4569,6 +4570,20 @@ func (m *Operation) MarshalToSizedBuffer(dAtA []byte) (int, error) {
|
||||
_ = i
|
||||
var l int
|
||||
_ = l
|
||||
if len(m.Info) > 0 {
|
||||
for iNdEx := len(m.Info) - 1; iNdEx >= 0; iNdEx-- {
|
||||
{
|
||||
size, err := m.Info[iNdEx].MarshalToSizedBuffer(dAtA[:i])
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
i -= size
|
||||
i = encodeVarintGenerated(dAtA, i, uint64(size))
|
||||
}
|
||||
i--
|
||||
dAtA[i] = 0x1a
|
||||
}
|
||||
}
|
||||
{
|
||||
size, err := m.InitiatedBy.MarshalToSizedBuffer(dAtA[:i])
|
||||
if err != nil {
|
||||
@@ -7358,6 +7373,12 @@ func (m *Operation) Size() (n int) {
|
||||
}
|
||||
l = m.InitiatedBy.Size()
|
||||
n += 1 + l + sovGenerated(uint64(l))
|
||||
if len(m.Info) > 0 {
|
||||
for _, e := range m.Info {
|
||||
l = e.Size()
|
||||
n += 1 + l + sovGenerated(uint64(l))
|
||||
}
|
||||
}
|
||||
return n
|
||||
}
|
||||
|
||||
@@ -8721,9 +8742,15 @@ func (this *Operation) String() string {
|
||||
if this == nil {
|
||||
return "nil"
|
||||
}
|
||||
repeatedStringForInfo := "[]*Info{"
|
||||
for _, f := range this.Info {
|
||||
repeatedStringForInfo += strings.Replace(f.String(), "Info", "Info", 1) + ","
|
||||
}
|
||||
repeatedStringForInfo += "}"
|
||||
s := strings.Join([]string{`&Operation{`,
|
||||
`Sync:` + strings.Replace(this.Sync.String(), "SyncOperation", "SyncOperation", 1) + `,`,
|
||||
`InitiatedBy:` + strings.Replace(strings.Replace(this.InitiatedBy.String(), "OperationInitiator", "OperationInitiator", 1), `&`, ``, 1) + `,`,
|
||||
`Info:` + repeatedStringForInfo + `,`,
|
||||
`}`,
|
||||
}, "")
|
||||
return s
|
||||
@@ -15699,6 +15726,40 @@ func (m *Operation) Unmarshal(dAtA []byte) error {
|
||||
return err
|
||||
}
|
||||
iNdEx = postIndex
|
||||
case 3:
|
||||
if wireType != 2 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field Info", wireType)
|
||||
}
|
||||
var msglen int
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return ErrIntOverflowGenerated
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
msglen |= int(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
if msglen < 0 {
|
||||
return ErrInvalidLengthGenerated
|
||||
}
|
||||
postIndex := iNdEx + msglen
|
||||
if postIndex < 0 {
|
||||
return ErrInvalidLengthGenerated
|
||||
}
|
||||
if postIndex > l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
m.Info = append(m.Info, &Info{})
|
||||
if err := m.Info[len(m.Info)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
|
||||
return err
|
||||
}
|
||||
iNdEx = postIndex
|
||||
default:
|
||||
iNdEx = preIndex
|
||||
skippy, err := skipGenerated(dAtA[iNdEx:])
|
||||
|
||||
@@ -487,6 +487,8 @@ message Operation {
|
||||
optional SyncOperation sync = 1;
|
||||
|
||||
optional OperationInitiator initiatedBy = 2;
|
||||
|
||||
repeated Info info = 3;
|
||||
}
|
||||
|
||||
// OperationInitiator holds information about the operation initiator
|
||||
|
||||
@@ -1734,11 +1734,23 @@ func schema_pkg_apis_application_v1alpha1_Operation(ref common.ReferenceCallback
|
||||
Ref: ref("github.com/argoproj/argo-cd/pkg/apis/application/v1alpha1.OperationInitiator"),
|
||||
},
|
||||
},
|
||||
"info": {
|
||||
SchemaProps: spec.SchemaProps{
|
||||
Type: []string{"array"},
|
||||
Items: &spec.SchemaOrArray{
|
||||
Schema: &spec.Schema{
|
||||
SchemaProps: spec.SchemaProps{
|
||||
Ref: ref("github.com/argoproj/argo-cd/pkg/apis/application/v1alpha1.Info"),
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
Dependencies: []string{
|
||||
"github.com/argoproj/argo-cd/pkg/apis/application/v1alpha1.OperationInitiator", "github.com/argoproj/argo-cd/pkg/apis/application/v1alpha1.SyncOperation"},
|
||||
"github.com/argoproj/argo-cd/pkg/apis/application/v1alpha1.Info", "github.com/argoproj/argo-cd/pkg/apis/application/v1alpha1.OperationInitiator", "github.com/argoproj/argo-cd/pkg/apis/application/v1alpha1.SyncOperation"},
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -432,6 +432,7 @@ type OperationInitiator struct {
|
||||
type Operation struct {
|
||||
Sync *SyncOperation `json:"sync,omitempty" protobuf:"bytes,1,opt,name=sync"`
|
||||
InitiatedBy OperationInitiator `json:"initiatedBy,omitempty" protobuf:"bytes,2,opt,name=initiatedBy"`
|
||||
Info []*Info `json:"info,omitempty" protobuf:"bytes,3,name=info"`
|
||||
}
|
||||
|
||||
// SyncOperationResource contains resources to sync.
|
||||
|
||||
@@ -1011,6 +1011,17 @@ func (in *Operation) DeepCopyInto(out *Operation) {
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
out.InitiatedBy = in.InitiatedBy
|
||||
if in.Info != nil {
|
||||
in, out := &in.Info, &out.Info
|
||||
*out = make([]*Info, len(*in))
|
||||
for i := range *in {
|
||||
if (*in)[i] != nil {
|
||||
in, out := &(*in)[i], &(*out)[i]
|
||||
*out = new(Info)
|
||||
**out = **in
|
||||
}
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
@@ -142,7 +142,11 @@ func (s *Server) Create(ctx context.Context, q *application.ApplicationCreateReq
|
||||
defer s.projectLock.Unlock(q.Application.Spec.Project)
|
||||
|
||||
a := q.Application
|
||||
err := s.validateAndNormalizeApp(ctx, &a)
|
||||
validate := true
|
||||
if q.Validate != nil {
|
||||
validate = *q.Validate
|
||||
}
|
||||
err := s.validateAndNormalizeApp(ctx, &a, validate)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -354,7 +358,7 @@ func (s *Server) ListResourceEvents(ctx context.Context, q *application.Applicat
|
||||
return kubeClientset.CoreV1().Events(namespace).List(opts)
|
||||
}
|
||||
|
||||
func (s *Server) validateAndUpdateApp(ctx context.Context, newApp *appv1.Application, merge bool) (*appv1.Application, error) {
|
||||
func (s *Server) validateAndUpdateApp(ctx context.Context, newApp *appv1.Application, merge bool, validate bool) (*appv1.Application, error) {
|
||||
s.projectLock.Lock(newApp.Spec.GetProject())
|
||||
defer s.projectLock.Unlock(newApp.Spec.GetProject())
|
||||
|
||||
@@ -363,7 +367,7 @@ func (s *Server) validateAndUpdateApp(ctx context.Context, newApp *appv1.Applica
|
||||
return nil, err
|
||||
}
|
||||
|
||||
err = s.validateAndNormalizeApp(ctx, newApp)
|
||||
err = s.validateAndNormalizeApp(ctx, newApp, validate)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -454,7 +458,11 @@ func (s *Server) Update(ctx context.Context, q *application.ApplicationUpdateReq
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return s.validateAndUpdateApp(ctx, q.Application, false)
|
||||
validate := true
|
||||
if q.Validate != nil {
|
||||
validate = *q.Validate
|
||||
}
|
||||
return s.validateAndUpdateApp(ctx, q.Application, false, validate)
|
||||
}
|
||||
|
||||
// UpdateSpec updates an application spec and filters out any invalid parameter overrides
|
||||
@@ -467,7 +475,11 @@ func (s *Server) UpdateSpec(ctx context.Context, q *application.ApplicationUpdat
|
||||
return nil, err
|
||||
}
|
||||
a.Spec = q.Spec
|
||||
a, err = s.validateAndUpdateApp(ctx, a, false)
|
||||
validate := true
|
||||
if q.Validate != nil {
|
||||
validate = *q.Validate
|
||||
}
|
||||
a, err = s.validateAndUpdateApp(ctx, a, false, validate)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -516,13 +528,13 @@ func (s *Server) Patch(ctx context.Context, q *application.ApplicationPatchReque
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return s.validateAndUpdateApp(ctx, app, false)
|
||||
return s.validateAndUpdateApp(ctx, app, false, true)
|
||||
}
|
||||
|
||||
// Delete removes an application and all associated resources
|
||||
func (s *Server) Delete(ctx context.Context, q *application.ApplicationDeleteRequest) (*application.ApplicationResponse, error) {
|
||||
a, err := s.appclientset.ArgoprojV1alpha1().Applications(s.ns).Get(*q.Name, metav1.GetOptions{})
|
||||
if err != nil && !apierr.IsNotFound(err) {
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -565,7 +577,7 @@ func (s *Server) Delete(ctx context.Context, q *application.ApplicationDeleteReq
|
||||
}
|
||||
|
||||
err = s.appclientset.ArgoprojV1alpha1().Applications(s.ns).Delete(*q.Name, &metav1.DeleteOptions{})
|
||||
if err != nil && !apierr.IsNotFound(err) {
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
s.logAppEvent(a, ctx, argo.EventReasonResourceDeleted, "deleted application")
|
||||
@@ -645,7 +657,7 @@ func (s *Server) Watch(q *application.ApplicationQuery, ws application.Applicati
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s *Server) validateAndNormalizeApp(ctx context.Context, app *appv1.Application) error {
|
||||
func (s *Server) validateAndNormalizeApp(ctx context.Context, app *appv1.Application, validate bool) error {
|
||||
proj, err := s.appclientset.ArgoprojV1alpha1().AppProjects(s.ns).Get(app.Spec.GetProject(), metav1.GetOptions{})
|
||||
if err != nil {
|
||||
if apierr.IsNotFound(err) {
|
||||
@@ -688,12 +700,15 @@ func (s *Server) validateAndNormalizeApp(ctx context.Context, app *appv1.Applica
|
||||
return err
|
||||
}
|
||||
|
||||
conditions, err := argo.ValidateRepo(ctx, app, s.repoClientset, s.db, kustomizeOptions, plugins, s.kubectl)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if len(conditions) > 0 {
|
||||
return status.Errorf(codes.InvalidArgument, "application spec is invalid: %s", argo.FormatAppConditions(conditions))
|
||||
var conditions []appv1.ApplicationCondition
|
||||
if validate {
|
||||
conditions, err = argo.ValidateRepo(ctx, app, s.repoClientset, s.db, kustomizeOptions, plugins, s.kubectl)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if len(conditions) > 0 {
|
||||
return status.Errorf(codes.InvalidArgument, "application spec is invalid: %s", argo.FormatAppConditions(conditions))
|
||||
}
|
||||
}
|
||||
|
||||
conditions, err = argo.ValidatePermissions(ctx, &app.Spec, proj, s.db)
|
||||
@@ -1086,6 +1101,7 @@ func (s *Server) Sync(ctx context.Context, syncReq *application.ApplicationSyncR
|
||||
Manifests: syncReq.Manifests,
|
||||
},
|
||||
InitiatedBy: appv1.OperationInitiator{Username: session.Username(ctx)},
|
||||
Info: syncReq.Infos,
|
||||
}
|
||||
a, err = argo.SetAppOperation(appIf, *syncReq.Name, &op)
|
||||
if err == nil {
|
||||
|
||||
@@ -54,10 +54,12 @@ message ApplicationResponse {}
|
||||
message ApplicationCreateRequest {
|
||||
required github.com.argoproj.argo_cd.pkg.apis.application.v1alpha1.Application application = 1 [(gogoproto.nullable) = false];
|
||||
optional bool upsert = 2;
|
||||
optional bool validate = 3;
|
||||
}
|
||||
|
||||
message ApplicationUpdateRequest {
|
||||
required github.com.argoproj.argo_cd.pkg.apis.application.v1alpha1.Application application = 1;
|
||||
optional bool validate = 2;
|
||||
}
|
||||
|
||||
message ApplicationDeleteRequest {
|
||||
@@ -74,12 +76,14 @@ message ApplicationSyncRequest {
|
||||
optional github.com.argoproj.argo_cd.pkg.apis.application.v1alpha1.SyncStrategy strategy = 5;
|
||||
repeated github.com.argoproj.argo_cd.pkg.apis.application.v1alpha1.SyncOperationResource resources = 7 [(gogoproto.nullable) = false];
|
||||
repeated string manifests = 8;
|
||||
repeated github.com.argoproj.argo_cd.pkg.apis.application.v1alpha1.Info infos = 9;
|
||||
}
|
||||
|
||||
// ApplicationUpdateSpecRequest is a request to update application spec
|
||||
message ApplicationUpdateSpecRequest {
|
||||
required string name = 1;
|
||||
required github.com.argoproj.argo_cd.pkg.apis.application.v1alpha1.ApplicationSpec spec = 2 [(gogoproto.nullable) = false];
|
||||
optional bool validate = 3;
|
||||
}
|
||||
|
||||
// ApplicationPatchRequest is a request to patch an application
|
||||
|
||||
@@ -16,12 +16,14 @@ import (
|
||||
"google.golang.org/grpc/codes"
|
||||
"google.golang.org/grpc/status"
|
||||
v1 "k8s.io/api/core/v1"
|
||||
apierrors "k8s.io/apimachinery/pkg/api/errors"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
"k8s.io/apimachinery/pkg/watch"
|
||||
"k8s.io/client-go/kubernetes/fake"
|
||||
kubetesting "k8s.io/client-go/testing"
|
||||
k8scache "k8s.io/client-go/tools/cache"
|
||||
"k8s.io/utils/pointer"
|
||||
|
||||
"github.com/argoproj/argo-cd/common"
|
||||
"github.com/argoproj/argo-cd/pkg/apiclient/application"
|
||||
@@ -308,6 +310,17 @@ func TestDeleteApp(t *testing.T) {
|
||||
assert.True(t, deleted)
|
||||
}
|
||||
|
||||
func TestDeleteApp_InvalidName(t *testing.T) {
|
||||
appServer := newTestAppServer()
|
||||
_, err := appServer.Delete(context.Background(), &application.ApplicationDeleteRequest{
|
||||
Name: pointer.StringPtr("foo"),
|
||||
})
|
||||
if !assert.Error(t, err) {
|
||||
return
|
||||
}
|
||||
assert.True(t, apierrors.IsNotFound(err))
|
||||
}
|
||||
|
||||
func TestSyncAndTerminate(t *testing.T) {
|
||||
ctx := context.Background()
|
||||
appServer := newTestAppServer()
|
||||
|
||||
@@ -123,7 +123,11 @@ func (h *Handler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
badge = svgWidthPattern.ReplaceAllString(badge, fmt.Sprintf(`<svg width="%d" $2`, svgWidthWithRevision))
|
||||
badge = displayNonePattern.ReplaceAllString(badge, `display="inline"`)
|
||||
badge = revisionRectColorPattern.ReplaceAllString(badge, fmt.Sprintf(`id="revisionRect" fill="%s" $2`, rightColorString))
|
||||
badge = replaceFirstGroupSubMatch(revisionTextPattern, badge, fmt.Sprintf("(%s)", revision[:7]))
|
||||
shortRevision := revision
|
||||
if len(shortRevision) > 7 {
|
||||
shortRevision = shortRevision[:7]
|
||||
}
|
||||
badge = replaceFirstGroupSubMatch(revisionTextPattern, badge, fmt.Sprintf("(%s)", shortRevision))
|
||||
}
|
||||
|
||||
w.Header().Set("Content-Type", "image/svg+xml")
|
||||
|
||||
@@ -111,6 +111,22 @@ func TestHandlerRevisionIsEnabledNoOperationState(t *testing.T) {
|
||||
assert.NotContains(t, response, "(aa29b85)")
|
||||
}
|
||||
|
||||
func TestHandlerRevisionIsEnabledShortCommitSHA(t *testing.T) {
|
||||
app := testApp.DeepCopy()
|
||||
app.Status.OperationState.SyncResult.Revision = "abc"
|
||||
|
||||
settingsMgr := settings.NewSettingsManager(context.Background(), fake.NewSimpleClientset(&argoCDCm, &argoCDSecret), "default")
|
||||
handler := NewHandler(appclientset.NewSimpleClientset(app), settingsMgr, "default")
|
||||
req, err := http.NewRequest("GET", "/api/badge?name=testApp&revision=true", nil)
|
||||
assert.NoError(t, err)
|
||||
|
||||
rr := httptest.NewRecorder()
|
||||
handler.ServeHTTP(rr, req)
|
||||
|
||||
response := rr.Body.String()
|
||||
assert.Contains(t, response, "(abc)")
|
||||
}
|
||||
|
||||
func TestHandlerFeatureIsDisabled(t *testing.T) {
|
||||
|
||||
argoCDCmDisabled := argoCDCm.DeepCopy()
|
||||
|
||||
@@ -73,7 +73,11 @@ func (p *RBACPolicyEnforcer) SetScopes(scopes []string) {
|
||||
}
|
||||
|
||||
func (p *RBACPolicyEnforcer) GetScopes() []string {
|
||||
return p.scopes
|
||||
scopes := p.scopes
|
||||
if scopes == nil {
|
||||
scopes = defaultScopes
|
||||
}
|
||||
return scopes
|
||||
}
|
||||
|
||||
func IsProjectSubject(subject string) bool {
|
||||
|
||||
@@ -108,3 +108,19 @@ p, cam, applications, %s/argoproj.io/Rollout/resume, my-proj/*, allow
|
||||
claims = jwt.MapClaims{"sub": "eve"}
|
||||
assert.False(t, enf.Enforce(claims, "applications", ActionAction+"/argoproj.io/Rollout/resume", "my-proj/my-app"))
|
||||
}
|
||||
|
||||
func TestGetScopes_DefaultScopes(t *testing.T) {
|
||||
rbacEnforcer := NewRBACPolicyEnforcer(nil, nil)
|
||||
|
||||
scopes := rbacEnforcer.GetScopes()
|
||||
assert.Equal(t, scopes, defaultScopes)
|
||||
}
|
||||
|
||||
func TestGetScopes_CustomScopes(t *testing.T) {
|
||||
rbacEnforcer := NewRBACPolicyEnforcer(nil, nil)
|
||||
customScopes := []string{"custom"}
|
||||
rbacEnforcer.SetScopes(customScopes)
|
||||
|
||||
scopes := rbacEnforcer.GetScopes()
|
||||
assert.Equal(t, scopes, customScopes)
|
||||
}
|
||||
|
||||
@@ -1036,3 +1036,41 @@ func TestNotPermittedResources(t *testing.T) {
|
||||
FailOnErr(KubeClientset.NetworkingV1beta1().Ingresses(ArgoCDNamespace).Get("sample-ingress", metav1.GetOptions{}))
|
||||
FailOnErr(KubeClientset.CoreV1().Services(DeploymentNamespace()).Get("guestbook-ui", metav1.GetOptions{}))
|
||||
}
|
||||
|
||||
func TestSyncWithInfos(t *testing.T) {
|
||||
expectedInfo := make([]*Info, 2)
|
||||
expectedInfo[0] = &Info{Name: "name1", Value: "val1"}
|
||||
expectedInfo[1] = &Info{Name: "name2", Value: "val2"}
|
||||
|
||||
Given(t).
|
||||
Path(guestbookPath).
|
||||
When().
|
||||
Create().
|
||||
Then().
|
||||
And(func(app *Application) {
|
||||
_, err := RunCli("app", "sync", app.Name,
|
||||
"--info", fmt.Sprintf("%s=%s", expectedInfo[0].Name, expectedInfo[0].Value),
|
||||
"--info", fmt.Sprintf("%s=%s", expectedInfo[1].Name, expectedInfo[1].Value))
|
||||
assert.NoError(t, err)
|
||||
}).
|
||||
Expect(SyncStatusIs(SyncStatusCodeSynced)).
|
||||
And(func(app *Application) {
|
||||
assert.ElementsMatch(t, app.Status.OperationState.Operation.Info, expectedInfo)
|
||||
})
|
||||
}
|
||||
|
||||
func TestCreateDisableValidation(t *testing.T) {
|
||||
Given(t).
|
||||
Path("baddir").
|
||||
When().
|
||||
Create("--validate=false").
|
||||
Then().
|
||||
And(func(app *Application) {
|
||||
_, err := RunCli("app", "create", app.Name, "--upsert", "--validate=false", "--repo", RepoURL(RepoURLTypeFile),
|
||||
"--path", "baddir2", "--project", app.Spec.Project, "--dest-server", common.KubernetesInternalAPIServerAddr, "--dest-namespace", DeploymentNamespace())
|
||||
assert.NoError(t, err)
|
||||
}).
|
||||
When().
|
||||
AppSet("--path", "baddir3", "--validate=false")
|
||||
|
||||
}
|
||||
|
||||
@@ -9,4 +9,10 @@ if ! whoami &> /dev/null; then
|
||||
fi
|
||||
fi
|
||||
|
||||
exec "$@"
|
||||
# If we're started as PID 1, we should wrap command execution through tini to
|
||||
# prevent leakage of orphaned processes ("zombies").
|
||||
if test "$$" = "1"; then
|
||||
exec tini -- $@
|
||||
else
|
||||
exec "$@"
|
||||
fi
|
||||
|
||||
15
util/glob/glob.go
Normal file
15
util/glob/glob.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package glob
|
||||
|
||||
import (
|
||||
"github.com/gobwas/glob"
|
||||
log "github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
func Match(pattern, text string) bool {
|
||||
compiledGlob, err := glob.Compile(pattern)
|
||||
if err != nil {
|
||||
log.Warnf("failed to compile pattern %s due to error %v", pattern, err)
|
||||
return false
|
||||
}
|
||||
return compiledGlob.Match(text)
|
||||
}
|
||||
@@ -153,7 +153,7 @@ func (c *nativeHelmChart) ExtractChart(chart string, version *semver.Version) (s
|
||||
_ = os.RemoveAll(tempDir)
|
||||
return "", nil, err
|
||||
}
|
||||
return path.Join(tempDir, chart), io.NewCloser(func() error {
|
||||
return path.Join(tempDir, normalizeChartName(chart)), io.NewCloser(func() error {
|
||||
return os.RemoveAll(tempDir)
|
||||
}), nil
|
||||
}
|
||||
@@ -241,6 +241,17 @@ func newTLSConfig(creds Creds) (*tls.Config, error) {
|
||||
return tlsConfig, nil
|
||||
}
|
||||
|
||||
func (c *nativeHelmChart) getChartPath(chart string, version *semver.Version) string {
|
||||
return path.Join(c.repoPath, fmt.Sprintf("%s-%v.tgz", chart, version))
|
||||
// Normalize a chart name for file system use, that is, if chart name is foo/bar/baz, returns the last component as chart name.
|
||||
func normalizeChartName(chart string) string {
|
||||
_, nc := path.Split(chart)
|
||||
// We do not want to return the empty string or something else related to filesystem access
|
||||
// Instead, return original string
|
||||
if nc == "" || nc == "." || nc == ".." {
|
||||
return chart
|
||||
}
|
||||
return nc
|
||||
}
|
||||
|
||||
func (c *nativeHelmChart) getChartPath(chart string, version *semver.Version) string {
|
||||
return path.Join(c.repoPath, fmt.Sprintf("%s-%v.tgz", normalizeChartName(chart), version))
|
||||
}
|
||||
|
||||
@@ -41,3 +41,34 @@ func Test_nativeHelmChart_ExtractChart(t *testing.T) {
|
||||
assert.NoError(t, err)
|
||||
assert.True(t, info.IsDir())
|
||||
}
|
||||
|
||||
func Test_normalizeChartName(t *testing.T) {
|
||||
t.Run("Test non-slashed name", func(t *testing.T) {
|
||||
n := normalizeChartName("mychart")
|
||||
assert.Equal(t, n, "mychart")
|
||||
})
|
||||
t.Run("Test single-slashed name", func(t *testing.T) {
|
||||
n := normalizeChartName("myorg/mychart")
|
||||
assert.Equal(t, n, "mychart")
|
||||
})
|
||||
t.Run("Test chart name with suborg", func(t *testing.T) {
|
||||
n := normalizeChartName("myorg/mysuborg/mychart")
|
||||
assert.Equal(t, n, "mychart")
|
||||
})
|
||||
t.Run("Test double-slashed name", func(t *testing.T) {
|
||||
n := normalizeChartName("myorg//mychart")
|
||||
assert.Equal(t, n, "mychart")
|
||||
})
|
||||
t.Run("Test invalid chart name - ends with slash", func(t *testing.T) {
|
||||
n := normalizeChartName("myorg/")
|
||||
assert.Equal(t, n, "myorg/")
|
||||
})
|
||||
t.Run("Test invalid chart name - is dot", func(t *testing.T) {
|
||||
n := normalizeChartName("myorg/.")
|
||||
assert.Equal(t, n, "myorg/.")
|
||||
})
|
||||
t.Run("Test invalid chart name - is two dots", func(t *testing.T) {
|
||||
n := normalizeChartName("myorg/..")
|
||||
assert.Equal(t, n, "myorg/..")
|
||||
})
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package oidc
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"html"
|
||||
"html/template"
|
||||
"net"
|
||||
"net/http"
|
||||
@@ -223,7 +224,8 @@ func (a *ClientApp) HandleCallback(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
log.Infof("Callback: %s", r.URL)
|
||||
if errMsg := r.FormValue("error"); errMsg != "" {
|
||||
http.Error(w, errMsg+": "+r.FormValue("error_description"), http.StatusBadRequest)
|
||||
errorDesc := r.FormValue("error_description")
|
||||
http.Error(w, html.EscapeString(errMsg)+": "+html.EscapeString(errorDesc), http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
code := r.FormValue("code")
|
||||
|
||||
@@ -3,12 +3,13 @@ package oidc
|
||||
import (
|
||||
"encoding/json"
|
||||
"io/ioutil"
|
||||
"net/http/httptest"
|
||||
"net/url"
|
||||
"testing"
|
||||
|
||||
"golang.org/x/oauth2"
|
||||
|
||||
gooidc "github.com/coreos/go-oidc"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"golang.org/x/oauth2"
|
||||
|
||||
"github.com/argoproj/argo-cd/server/settings/oidc"
|
||||
)
|
||||
@@ -65,3 +66,33 @@ func TestIDTokenClaims(t *testing.T) {
|
||||
|
||||
assert.Equal(t, "{\"id_token\":{\"groups\":{\"essential\":true}}}", values.Get("claims"))
|
||||
}
|
||||
|
||||
type fakeProvider struct {
|
||||
}
|
||||
|
||||
func (p *fakeProvider) Endpoint() (*oauth2.Endpoint, error) {
|
||||
return &oauth2.Endpoint{}, nil
|
||||
}
|
||||
|
||||
func (p *fakeProvider) ParseConfig() (*OIDCConfiguration, error) {
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func (p *fakeProvider) Verify(_, _ string) (*gooidc.IDToken, error) {
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func TestHandleCallback(t *testing.T) {
|
||||
app := ClientApp{provider: &fakeProvider{}}
|
||||
|
||||
req := httptest.NewRequest("GET", "http://example.com/foo", nil)
|
||||
req.Form = url.Values{
|
||||
"error": []string{"login-failed"},
|
||||
"error_description": []string{"<script>alert('hello')</script>"},
|
||||
}
|
||||
w := httptest.NewRecorder()
|
||||
|
||||
app.HandleCallback(w, req)
|
||||
|
||||
assert.Equal(t, "login-failed: <script>alert('hello')</script>\n", w.Body.String())
|
||||
}
|
||||
|
||||
@@ -8,8 +8,6 @@ import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/argoproj/argo-cd/util/assets"
|
||||
|
||||
"github.com/casbin/casbin"
|
||||
"github.com/casbin/casbin/model"
|
||||
jwt "github.com/dgrijalva/jwt-go"
|
||||
@@ -23,6 +21,9 @@ import (
|
||||
v1 "k8s.io/client-go/informers/core/v1"
|
||||
"k8s.io/client-go/kubernetes"
|
||||
"k8s.io/client-go/tools/cache"
|
||||
|
||||
"github.com/argoproj/argo-cd/util/assets"
|
||||
"github.com/argoproj/argo-cd/util/glob"
|
||||
)
|
||||
|
||||
const (
|
||||
@@ -53,10 +54,37 @@ type Enforcer struct {
|
||||
// ClaimsEnforcerFunc is func template to enforce a JWT claims. The subject is replaced
|
||||
type ClaimsEnforcerFunc func(claims jwt.Claims, rvals ...interface{}) bool
|
||||
|
||||
func newEnforcerSafe(params ...interface{}) (e *casbin.Enforcer, err error) {
|
||||
enfs, err := casbin.NewEnforcerSafe(params...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
enfs.AddFunction("globMatch", func(args ...interface{}) (interface{}, error) {
|
||||
if len(args) < 2 {
|
||||
return false, nil
|
||||
}
|
||||
val, ok := args[0].(string)
|
||||
if !ok {
|
||||
return false, nil
|
||||
}
|
||||
|
||||
pattern, ok := args[1].(string)
|
||||
if !ok {
|
||||
return false, nil
|
||||
}
|
||||
|
||||
return glob.Match(pattern, val), nil
|
||||
})
|
||||
return enfs, nil
|
||||
}
|
||||
|
||||
func NewEnforcer(clientset kubernetes.Interface, namespace, configmap string, claimsEnforcer ClaimsEnforcerFunc) *Enforcer {
|
||||
adapter := newAdapter("", "", "")
|
||||
builtInModel := newBuiltInModel()
|
||||
enf := casbin.NewEnforcer(builtInModel, adapter)
|
||||
enf, err := newEnforcerSafe(builtInModel, adapter)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
enf.EnableLog(false)
|
||||
return &Enforcer{
|
||||
Enforcer: enf,
|
||||
@@ -113,7 +141,7 @@ func (e *Enforcer) EnforceRuntimePolicy(policy string, rvals ...interface{}) boo
|
||||
if policy == "" {
|
||||
enf = e.Enforcer
|
||||
} else {
|
||||
enf, err = casbin.NewEnforcerSafe(newBuiltInModel(), newAdapter(e.adapter.builtinPolicy, e.adapter.userDefinedPolicy, policy))
|
||||
enf, err = newEnforcerSafe(newBuiltInModel(), newAdapter(e.adapter.builtinPolicy, e.adapter.userDefinedPolicy, policy))
|
||||
if err != nil {
|
||||
log.Warnf("invalid runtime policy: %s", policy)
|
||||
enf = e.Enforcer
|
||||
@@ -238,7 +266,7 @@ func (e *Enforcer) syncUpdate(cm *apiv1.ConfigMap, onUpdated func(cm *apiv1.Conf
|
||||
|
||||
// ValidatePolicy verifies a policy string is acceptable to casbin
|
||||
func ValidatePolicy(policy string) error {
|
||||
_, err := casbin.NewEnforcerSafe(newBuiltInModel(), newAdapter("", "", policy))
|
||||
_, err := newEnforcerSafe(newBuiltInModel(), newAdapter("", "", policy))
|
||||
if err != nil {
|
||||
return fmt.Errorf("policy syntax error: %s", policy)
|
||||
}
|
||||
|
||||
@@ -127,6 +127,8 @@ p, mike, *, *, foo/obj, deny
|
||||
p, trudy, applications, get, foo/obj, allow
|
||||
p, trudy, applications/*, get, foo/obj, allow
|
||||
p, trudy, applications/secrets, get, foo/obj, deny
|
||||
p, danny, applications, get, */obj, allow
|
||||
p, danny, applications, get, proj1/a*p1, allow
|
||||
`
|
||||
_ = enf.SetUserPolicy(policy)
|
||||
|
||||
@@ -170,6 +172,13 @@ p, trudy, applications/secrets, get, foo/obj, deny
|
||||
assert.True(t, enf.Enforce("trudy", "applications", "get", "foo/obj"))
|
||||
assert.True(t, enf.Enforce("trudy", "applications/logs", "get", "foo/obj"))
|
||||
assert.False(t, enf.Enforce("trudy", "applications/secrets", "get", "foo/obj"))
|
||||
|
||||
// Verify trailing wildcards don't grant full access
|
||||
assert.True(t, enf.Enforce("danny", "applications", "get", "foo/obj"))
|
||||
assert.True(t, enf.Enforce("danny", "applications", "get", "bar/obj"))
|
||||
assert.False(t, enf.Enforce("danny", "applications", "get", "foo/bar"))
|
||||
assert.True(t, enf.Enforce("danny", "applications", "get", "proj1/app1"))
|
||||
assert.False(t, enf.Enforce("danny", "applications", "get", "proj1/app2"))
|
||||
}
|
||||
|
||||
// TestProjectIsolationEnforcement verifies the ability to create Project specific policies
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
package settings
|
||||
|
||||
import (
|
||||
"github.com/gobwas/glob"
|
||||
log "github.com/sirupsen/logrus"
|
||||
)
|
||||
import "github.com/argoproj/argo-cd/util/glob"
|
||||
|
||||
type FilteredResource struct {
|
||||
APIGroups []string `json:"apiGroups,omitempty"`
|
||||
@@ -13,22 +10,13 @@ type FilteredResource struct {
|
||||
|
||||
func (r FilteredResource) matchGroup(apiGroup string) bool {
|
||||
for _, excludedApiGroup := range r.APIGroups {
|
||||
if match(excludedApiGroup, apiGroup) {
|
||||
if glob.Match(excludedApiGroup, apiGroup) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return len(r.APIGroups) == 0
|
||||
}
|
||||
|
||||
func match(pattern, text string) bool {
|
||||
compiledGlob, err := glob.Compile(pattern)
|
||||
if err != nil {
|
||||
log.Warnf("failed to compile pattern %s due to error %v", pattern, err)
|
||||
return false
|
||||
}
|
||||
return compiledGlob.Match(text)
|
||||
}
|
||||
|
||||
func (r FilteredResource) matchKind(kind string) bool {
|
||||
for _, excludedKind := range r.Kinds {
|
||||
if excludedKind == "*" || excludedKind == kind {
|
||||
@@ -40,7 +28,7 @@ func (r FilteredResource) matchKind(kind string) bool {
|
||||
|
||||
func (r FilteredResource) matchCluster(cluster string) bool {
|
||||
for _, excludedCluster := range r.Clusters {
|
||||
if match(excludedCluster, cluster) {
|
||||
if glob.Match(excludedCluster, cluster) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user