Scanned the following paths:
diff --git a/docs/user-guide/annotations-and-labels.md b/docs/user-guide/annotations-and-labels.md
index 2b4e9968dcfb4..df5fd278893bb 100644
--- a/docs/user-guide/annotations-and-labels.md
+++ b/docs/user-guide/annotations-and-labels.md
@@ -21,7 +21,7 @@
## Labels
-| Label key | Target resource(es) | Possible values | Description |
-|--------------------------------|---------------------|---------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| argocd.argoproj.io/instance | Application | any | Recommended tracking label to [avoid conflicts with other tools which use `app.kubernetes.io/instance`](../faq.md#why-is-my-app-out-of-sync-even-after-syncing). |
-| argocd.argoproj.io/secret-type | Secret | `cluster`, `repository`, `repo-creds` | Identifies certain types of Secrets used by Argo CD. See the [Declarative Setup docs](../operator-manual/declarative-setup.md) for details. |
+| Label key | Target resource(es) | Possible values | Description |
+|--------------------------------|---------------------|------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| argocd.argoproj.io/instance | Application | any | Recommended tracking label to [avoid conflicts with other tools which use `app.kubernetes.io/instance`](../faq.md#why-is-my-app-out-of-sync-even-after-syncing). |
+| argocd.argoproj.io/secret-type | Secret | `cluster`, `repository`, `repo-creds`, `scm-creds` | Identifies certain types of Secrets used by Argo CD. See the [Declarative Setup docs](../operator-manual/declarative-setup.md) for details about the first three, and [AppSet-in-any-namespace docs](../operator-manual/applicationset/Appset-Any-Namespace.md) for the last one. |
diff --git a/docs/user-guide/commands/argocd_account_can-i.md b/docs/user-guide/commands/argocd_account_can-i.md
index f6fd5a01880a8..4c92043af7c8e 100644
--- a/docs/user-guide/commands/argocd_account_can-i.md
+++ b/docs/user-guide/commands/argocd_account_can-i.md
@@ -21,8 +21,8 @@ argocd account can-i update projects 'default'
# Can I create a cluster?
argocd account can-i create clusters '*'
-Actions: [get create update delete sync override]
-Resources: [clusters projects applications applicationsets repositories certificates logs exec]
+Actions: [get create update delete sync override action invoke]
+Resources: [clusters projects applications applicationsets repositories certificates accounts gpgkeys logs exec extensions]
```
diff --git a/docs/user-guide/commands/argocd_cluster_add.md b/docs/user-guide/commands/argocd_cluster_add.md
index 5ca98c107bc29..c348fc63fb73d 100644
--- a/docs/user-guide/commands/argocd_cluster_add.md
+++ b/docs/user-guide/commands/argocd_cluster_add.md
@@ -30,6 +30,7 @@ argocd cluster add CONTEXT [flags]
--name string Overwrite the cluster name
--namespace stringArray List of namespaces which are allowed to manage
--project string project of the cluster
+ --proxy-url string use proxy to connect cluster
--service-account string System namespace service account to use for kubernetes resource management. If not set then default "argocd-manager" SA will be created
--shard int Cluster shard number; inferred from hostname if not set (default -1)
--system-namespace string Use different system namespace (default "kube-system")
diff --git a/docs/user-guide/diff-strategies.md b/docs/user-guide/diff-strategies.md
index 505be30cd6a8b..48cd4893d388d 100644
--- a/docs/user-guide/diff-strategies.md
+++ b/docs/user-guide/diff-strategies.md
@@ -16,7 +16,9 @@ Argo CD currently has 3 different strategies to calculate diffs:
in dryrun mode in order to generate the predicted live state.
## Structured-Merge Diff
-*Current Status: [Beta][1] (Since v2.5.0)*
+
+!!! warning "Beta Feature (Since v2.5.0)"
+ This feature is in the [Beta][1] stage. It is generally considered stable, but there may be unhandled edge cases.
This diff strategy is automatically used when Server-Side Apply
sync option is enabled. It uses the [structured-merge-diff][2] library
@@ -27,7 +29,9 @@ the community, this strategy is being discontinued in favour of
Server-Side Diff.
## Server-Side Diff
-*Current Status: [Beta][1] (Since v2.10.0)*
+
+!!! warning "Beta Feature (Since v2.10.0)"
+ This feature is in the [Beta][1] stage. It is generally considered stable, but there may be unhandled edge cases.
This diff strategy will execute a Server-Side Apply in dryrun mode for
each resource of the application. The response of this operation is then
diff --git a/docs/user-guide/skip_reconcile.md b/docs/user-guide/skip_reconcile.md
index d5eec86a6a866..3018648e79ffb 100644
--- a/docs/user-guide/skip_reconcile.md
+++ b/docs/user-guide/skip_reconcile.md
@@ -1,7 +1,7 @@
# Skip Application Reconcile
-!!! warning "Alpha Feature"
- This is an experimental, alpha-quality feature.
+!!! warning "Alpha Feature (Since v2.7.0)"
+ This is an experimental, [alpha-quality](https://github.com/argoproj/argoproj/blob/main/community/feature-status.md#alpha) feature.
The primary use case is to provide integration with third party projects.
This feature may be removed in future releases or modified in backwards-incompatible ways.
diff --git a/go.mod b/go.mod
index ad48c7869f6b8..a9eca42405ae9 100644
--- a/go.mod
+++ b/go.mod
@@ -14,7 +14,7 @@ require (
github.com/argoproj/notifications-engine v0.4.1-0.20241007194503-2fef5c9049fd
github.com/argoproj/pkg v0.13.7-0.20230626144333-d56162821bd1
github.com/aws/aws-sdk-go v1.55.5
- github.com/bmatcuk/doublestar/v4 v4.6.1
+ github.com/bmatcuk/doublestar/v4 v4.7.1
github.com/bombsimon/logrusr/v2 v2.0.1
github.com/bradleyfalzon/ghinstallation/v2 v2.11.0
github.com/casbin/casbin/v2 v2.100.0
@@ -66,9 +66,9 @@ require (
github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1
github.com/olekukonko/tablewriter v0.0.5
github.com/patrickmn/go-cache v2.1.0+incompatible
- github.com/prometheus/client_golang v1.20.4
+ github.com/prometheus/client_golang v1.20.5
github.com/r3labs/diff v1.1.0
- github.com/redis/go-redis/v9 v9.6.1
+ github.com/redis/go-redis/v9 v9.6.2
github.com/robfig/cron/v3 v3.0.1
github.com/sirupsen/logrus v1.9.3
github.com/skratchdot/open-golang v0.0.0-20160302144031-75fb7ed4208c
@@ -77,12 +77,12 @@ require (
github.com/spf13/pflag v1.0.5
github.com/stretchr/testify v1.9.0
github.com/valyala/fasttemplate v1.2.2
- github.com/xanzy/go-gitlab v0.111.0
+ github.com/xanzy/go-gitlab v0.112.0
github.com/yuin/gopher-lua v1.1.1
- go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.55.0
- go.opentelemetry.io/otel v1.30.0
- go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.30.0
- go.opentelemetry.io/otel/sdk v1.30.0
+ go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.56.0
+ go.opentelemetry.io/otel v1.31.0
+ go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.31.0
+ go.opentelemetry.io/otel/sdk v1.31.0
golang.org/x/crypto v0.28.0
golang.org/x/exp v0.0.0-20230522175609-2e198f4a06a1
golang.org/x/net v0.30.0
@@ -90,7 +90,7 @@ require (
golang.org/x/sync v0.8.0
golang.org/x/term v0.25.0
golang.org/x/time v0.7.0
- google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1
+ google.golang.org/genproto/googleapis/api v0.0.0-20241007155032-5fefd90f89a9
google.golang.org/grpc v1.67.1
google.golang.org/protobuf v1.35.1
gopkg.in/yaml.v2 v2.4.0
@@ -155,7 +155,7 @@ require (
golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect
google.golang.org/api v0.132.0 // indirect
google.golang.org/genproto v0.0.0-20230822172742-b8732ec3820d // indirect
- google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 // indirect
+ google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9 // indirect
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
gopkg.in/retry.v1 v1.0.3 // indirect
k8s.io/gengo/v2 v2.0.0-20240228010128-51d4e06bde70 // indirect
@@ -271,9 +271,9 @@ require (
github.com/xanzy/ssh-agent v0.3.3 // indirect
github.com/xlab/treeprint v1.2.0 // indirect
go.mongodb.org/mongo-driver v1.14.0 // indirect
- go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.30.0 // indirect
- go.opentelemetry.io/otel/metric v1.30.0 // indirect
- go.opentelemetry.io/otel/trace v1.30.0 // indirect
+ go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.31.0 // indirect
+ go.opentelemetry.io/otel/metric v1.31.0 // indirect
+ go.opentelemetry.io/otel/trace v1.31.0 // indirect
go.opentelemetry.io/proto/otlp v1.3.1 // indirect
go.uber.org/automaxprocs v1.6.0
gomodules.xyz/envconfig v1.3.1-0.20190308184047-426f31af0d45 // indirect
diff --git a/go.sum b/go.sum
index b2ddcfcde0689..9c1bcdd9fb728 100644
--- a/go.sum
+++ b/go.sum
@@ -142,8 +142,9 @@ github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6r
github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs=
github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM=
github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ=
-github.com/bmatcuk/doublestar/v4 v4.6.1 h1:FH9SifrbvJhnlQpztAx++wlkk70QBf0iBWDwNy7PA4I=
github.com/bmatcuk/doublestar/v4 v4.6.1/go.mod h1:xBQ8jztBU6kakFMg+8WGxn0c6z1fTSPVIjEY1Wr7jzc=
+github.com/bmatcuk/doublestar/v4 v4.7.1 h1:fdDeAqgT47acgwd9bd9HxJRDmc9UAmPpc+2m0CXv75Q=
+github.com/bmatcuk/doublestar/v4 v4.7.1/go.mod h1:xBQ8jztBU6kakFMg+8WGxn0c6z1fTSPVIjEY1Wr7jzc=
github.com/bombsimon/logrusr/v2 v2.0.1 h1:1VgxVNQMCvjirZIYaT9JYn6sAVGVEcNtRE0y4mvaOAM=
github.com/bombsimon/logrusr/v2 v2.0.1/go.mod h1:ByVAX+vHdLGAfdroiMg6q0zgq2FODY2lc5YJvzmOJio=
github.com/bradleyfalzon/ghinstallation/v2 v2.11.0 h1:R9d0v+iobRHSaE4wKUnXFiZp53AL4ED5MzgEMwGTZag=
@@ -815,8 +816,8 @@ github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod
github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=
github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og=
github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M=
-github.com/prometheus/client_golang v1.20.4 h1:Tgh3Yr67PaOv/uTqloMsCEdeuFTatm5zIq5+qNN23vI=
-github.com/prometheus/client_golang v1.20.4/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE=
+github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y=
+github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE=
github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
@@ -844,8 +845,8 @@ github.com/r3labs/diff v1.1.0 h1:V53xhrbTHrWFWq3gI4b94AjgEJOerO1+1l0xyHOBi8M=
github.com/r3labs/diff v1.1.0/go.mod h1:7WjXasNzi0vJetRcB/RqNl5dlIsmXcTTLmF5IoH6Xig=
github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
github.com/redis/go-redis/v9 v9.0.0-rc.4/go.mod h1:Vo3EsyWnicKnSKCA7HhgnvnyA74wOA69Cd2Meli5mmA=
-github.com/redis/go-redis/v9 v9.6.1 h1:HHDteefn6ZkTtY5fGUE8tj8uy85AHk6zP7CpzIAM0y4=
-github.com/redis/go-redis/v9 v9.6.1/go.mod h1:0C0c6ycQsdpVNQpxb1njEQIqkx5UcsM8FJCQLgE9+RA=
+github.com/redis/go-redis/v9 v9.6.2 h1:w0uvkRbc9KpgD98zcvo5IrVUsn0lXpRMuhNgiHDJzdk=
+github.com/redis/go-redis/v9 v9.6.2/go.mod h1:0C0c6ycQsdpVNQpxb1njEQIqkx5UcsM8FJCQLgE9+RA=
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ=
github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
@@ -858,8 +859,9 @@ github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
-github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8=
github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4=
+github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII=
+github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o=
github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU=
github.com/rs/cors v1.11.0 h1:0B9GE/r9Bc2UxRMMtymBkHTenPkHDv0CW4Y98GBY+po=
github.com/rs/cors v1.11.0/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU=
@@ -950,8 +952,8 @@ github.com/vmihailenco/tagparser/v2 v2.0.0 h1:y09buUbR+b5aycVFQs/g70pqKVZNBmxwAh
github.com/vmihailenco/tagparser/v2 v2.0.0/go.mod h1:Wri+At7QHww0WTrCBeu4J6bNtoV6mEfg5OIWRZA9qds=
github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM=
github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg=
-github.com/xanzy/go-gitlab v0.111.0 h1:4zT52QdDVxGYAGxN2VY8upSvZIiuiI+Z4d+c+7D/lII=
-github.com/xanzy/go-gitlab v0.111.0/go.mod h1:wKNKh3GkYDMOsGmnfuX+ITCmDuSDWFO0G+C4AygL9RY=
+github.com/xanzy/go-gitlab v0.112.0 h1:6Z0cqEooCvBMfBIHw+CgO4AKGRV8na/9781xOb0+DKw=
+github.com/xanzy/go-gitlab v0.112.0/go.mod h1:wKNKh3GkYDMOsGmnfuX+ITCmDuSDWFO0G+C4AygL9RY=
github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM=
github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw=
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
@@ -972,20 +974,20 @@ go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk=
go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0=
go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo=
-go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.55.0 h1:hCq2hNMwsegUvPzI7sPOvtO9cqyy5GbWt/Ybp2xrx8Q=
-go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.55.0/go.mod h1:LqaApwGx/oUmzsbqxkzuBvyoPpkxk3JQWnqfVrJ3wCA=
-go.opentelemetry.io/otel v1.30.0 h1:F2t8sK4qf1fAmY9ua4ohFS/K+FUuOPemHUIXHtktrts=
-go.opentelemetry.io/otel v1.30.0/go.mod h1:tFw4Br9b7fOS+uEao81PJjVMjW/5fvNCbpsDIXqP0pc=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.30.0 h1:lsInsfvhVIfOI6qHVyysXMNDnjO9Npvl7tlDPJFBVd4=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.30.0/go.mod h1:KQsVNh4OjgjTG0G6EiNi1jVpnaeeKsKMRwbLN+f1+8M=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.30.0 h1:m0yTiGDLUvVYaTFbAvCkVYIYcvwKt3G7OLoN77NUs/8=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.30.0/go.mod h1:wBQbT4UekBfegL2nx0Xk1vBcnzyBPsIVm9hRG4fYcr4=
-go.opentelemetry.io/otel/metric v1.30.0 h1:4xNulvn9gjzo4hjg+wzIKG7iNFEaBMX00Qd4QIZs7+w=
-go.opentelemetry.io/otel/metric v1.30.0/go.mod h1:aXTfST94tswhWEb+5QjlSqG+cZlmyXy/u8jFpor3WqQ=
-go.opentelemetry.io/otel/sdk v1.30.0 h1:cHdik6irO49R5IysVhdn8oaiR9m8XluDaJAs4DfOrYE=
-go.opentelemetry.io/otel/sdk v1.30.0/go.mod h1:p14X4Ok8S+sygzblytT1nqG98QG2KYKv++HE0LY/mhg=
-go.opentelemetry.io/otel/trace v1.30.0 h1:7UBkkYzeg3C7kQX8VAidWh2biiQbtAKjyIML8dQ9wmc=
-go.opentelemetry.io/otel/trace v1.30.0/go.mod h1:5EyKqTzzmyqB9bwtCCq6pDLktPK6fmGf/Dph+8VI02o=
+go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.56.0 h1:yMkBS9yViCc7U7yeLzJPM2XizlfdVvBRSmsQDWu6qc0=
+go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.56.0/go.mod h1:n8MR6/liuGB5EmTETUBeU5ZgqMOlqKRxUaqPQBOANZ8=
+go.opentelemetry.io/otel v1.31.0 h1:NsJcKPIW0D0H3NgzPDHmo0WW6SptzPdqg/L1zsIm2hY=
+go.opentelemetry.io/otel v1.31.0/go.mod h1:O0C14Yl9FgkjqcCZAsE053C13OaddMYr/hz6clDkEJE=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.31.0 h1:K0XaT3DwHAcV4nKLzcQvwAgSyisUghWoY20I7huthMk=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.31.0/go.mod h1:B5Ki776z/MBnVha1Nzwp5arlzBbE3+1jk+pGmaP5HME=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.31.0 h1:FFeLy03iVTXP6ffeN2iXrxfGsZGCjVx0/4KlizjyBwU=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.31.0/go.mod h1:TMu73/k1CP8nBUpDLc71Wj/Kf7ZS9FK5b53VapRsP9o=
+go.opentelemetry.io/otel/metric v1.31.0 h1:FSErL0ATQAmYHUIzSezZibnyVlft1ybhy4ozRPcF2fE=
+go.opentelemetry.io/otel/metric v1.31.0/go.mod h1:C3dEloVbLuYoX41KpmAhOqNriGbA+qqH6PQ5E5mUfnY=
+go.opentelemetry.io/otel/sdk v1.31.0 h1:xLY3abVHYZ5HSfOg3l2E5LUj2Cwva5Y7yGxnSW9H5Gk=
+go.opentelemetry.io/otel/sdk v1.31.0/go.mod h1:TfRbMdhvxIIr/B2N2LQW2S5v9m3gOQ/08KsbbO5BPT0=
+go.opentelemetry.io/otel/trace v1.31.0 h1:ffjsj1aRouKewfr85U2aGagJ46+MvodynlQ1HYdmJys=
+go.opentelemetry.io/otel/trace v1.31.0/go.mod h1:TXZkRk7SM2ZQLtR6eoAWQFIHPvzQ06FJAsO1tJg480A=
go.opentelemetry.io/proto/otlp v1.3.1 h1:TrMUixzpM0yuc/znrFTP9MMRh8trP93mkCiDVeXrui0=
go.opentelemetry.io/proto/otlp v1.3.1/go.mod h1:0X1WI4de4ZsLrrJNLAQbFeLCm3T7yBkR0XqQ7niQU+8=
go.starlark.net v0.0.0-20230525235612-a134d8f9ddca h1:VdD38733bfYv5tUZwEIskMM93VanwNIi5bIKnDrJdEY=
@@ -1346,10 +1348,10 @@ google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEY
google.golang.org/genproto v0.0.0-20210126160654-44e461bb6506/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20230822172742-b8732ec3820d h1:VBu5YqKPv6XiJ199exd8Br+Aetz+o08F+PLMnwJQHAY=
google.golang.org/genproto v0.0.0-20230822172742-b8732ec3820d/go.mod h1:yZTlhN0tQnXo3h00fuXNCxJdLdIdnVFVBaRJ5LWBbw4=
-google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1 h1:hjSy6tcFQZ171igDaN5QHOw2n6vx40juYbC/x67CEhc=
-google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:qpvKtACPCQhAdu3PyQgV4l3LMXZEtft7y8QcarRsp9I=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 h1:pPJltXNxVzT4pK9yD8vR9X75DaWYYmLGMsEvBfFQZzQ=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU=
+google.golang.org/genproto/googleapis/api v0.0.0-20241007155032-5fefd90f89a9 h1:T6rh4haD3GVYsgEfWExoCZA2o2FmbNyKpTuAxbEFPTg=
+google.golang.org/genproto/googleapis/api v0.0.0-20241007155032-5fefd90f89a9/go.mod h1:wp2WsuBYj6j8wUdo3ToZsdxxixbvQNAHqVJrTgi5E5M=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9 h1:QCqS/PdaHTSWGvupk2F/ehwHtGc0/GYkT+3GAcR1CCc=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI=
google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs=
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM=
diff --git a/manifests/base/applicationset-controller/argocd-applicationset-controller-deployment.yaml b/manifests/base/applicationset-controller/argocd-applicationset-controller-deployment.yaml
index 8886c1587916b..f4df48823a5ff 100644
--- a/manifests/base/applicationset-controller/argocd-applicationset-controller-deployment.yaml
+++ b/manifests/base/applicationset-controller/argocd-applicationset-controller-deployment.yaml
@@ -103,6 +103,12 @@ spec:
key: applicationsetcontroller.enable.progressive.syncs
name: argocd-cmd-params-cm
optional: true
+ - name: ARGOCD_APPLICATIONSET_CONTROLLER_TOKENREF_STRICT_MODE
+ valueFrom:
+ configMapKeyRef:
+ key: applicationsetcontroller.enable.tokenref.strict.mode
+ name: argocd-cmd-params-cm
+ optional: true
- name: ARGOCD_APPLICATIONSET_CONTROLLER_ENABLE_NEW_GIT_FILE_GLOBBING
valueFrom:
configMapKeyRef:
diff --git a/manifests/core-install.yaml b/manifests/core-install.yaml
index 57c5919eff6b3..69dbfac2fbf6d 100644
--- a/manifests/core-install.yaml
+++ b/manifests/core-install.yaml
@@ -22661,6 +22661,12 @@ spec:
key: applicationsetcontroller.enable.progressive.syncs
name: argocd-cmd-params-cm
optional: true
+ - name: ARGOCD_APPLICATIONSET_CONTROLLER_TOKENREF_STRICT_MODE
+ valueFrom:
+ configMapKeyRef:
+ key: applicationsetcontroller.enable.tokenref.strict.mode
+ name: argocd-cmd-params-cm
+ optional: true
- name: ARGOCD_APPLICATIONSET_CONTROLLER_ENABLE_NEW_GIT_FILE_GLOBBING
valueFrom:
configMapKeyRef:
diff --git a/manifests/ha/install.yaml b/manifests/ha/install.yaml
index a894ef5aa2a63..e74b057cd0e3f 100644
--- a/manifests/ha/install.yaml
+++ b/manifests/ha/install.yaml
@@ -24005,6 +24005,12 @@ spec:
key: applicationsetcontroller.enable.progressive.syncs
name: argocd-cmd-params-cm
optional: true
+ - name: ARGOCD_APPLICATIONSET_CONTROLLER_TOKENREF_STRICT_MODE
+ valueFrom:
+ configMapKeyRef:
+ key: applicationsetcontroller.enable.tokenref.strict.mode
+ name: argocd-cmd-params-cm
+ optional: true
- name: ARGOCD_APPLICATIONSET_CONTROLLER_ENABLE_NEW_GIT_FILE_GLOBBING
valueFrom:
configMapKeyRef:
diff --git a/manifests/ha/namespace-install.yaml b/manifests/ha/namespace-install.yaml
index b563bf225d2ef..3150d2ef67c41 100644
--- a/manifests/ha/namespace-install.yaml
+++ b/manifests/ha/namespace-install.yaml
@@ -1634,6 +1634,12 @@ spec:
key: applicationsetcontroller.enable.progressive.syncs
name: argocd-cmd-params-cm
optional: true
+ - name: ARGOCD_APPLICATIONSET_CONTROLLER_TOKENREF_STRICT_MODE
+ valueFrom:
+ configMapKeyRef:
+ key: applicationsetcontroller.enable.tokenref.strict.mode
+ name: argocd-cmd-params-cm
+ optional: true
- name: ARGOCD_APPLICATIONSET_CONTROLLER_ENABLE_NEW_GIT_FILE_GLOBBING
valueFrom:
configMapKeyRef:
diff --git a/manifests/install.yaml b/manifests/install.yaml
index bcfe2974fb118..3aaf1fa3a1cde 100644
--- a/manifests/install.yaml
+++ b/manifests/install.yaml
@@ -23122,6 +23122,12 @@ spec:
key: applicationsetcontroller.enable.progressive.syncs
name: argocd-cmd-params-cm
optional: true
+ - name: ARGOCD_APPLICATIONSET_CONTROLLER_TOKENREF_STRICT_MODE
+ valueFrom:
+ configMapKeyRef:
+ key: applicationsetcontroller.enable.tokenref.strict.mode
+ name: argocd-cmd-params-cm
+ optional: true
- name: ARGOCD_APPLICATIONSET_CONTROLLER_ENABLE_NEW_GIT_FILE_GLOBBING
valueFrom:
configMapKeyRef:
diff --git a/manifests/namespace-install.yaml b/manifests/namespace-install.yaml
index 417dfe7577383..527863225f12c 100644
--- a/manifests/namespace-install.yaml
+++ b/manifests/namespace-install.yaml
@@ -751,6 +751,12 @@ spec:
key: applicationsetcontroller.enable.progressive.syncs
name: argocd-cmd-params-cm
optional: true
+ - name: ARGOCD_APPLICATIONSET_CONTROLLER_TOKENREF_STRICT_MODE
+ valueFrom:
+ configMapKeyRef:
+ key: applicationsetcontroller.enable.tokenref.strict.mode
+ name: argocd-cmd-params-cm
+ optional: true
- name: ARGOCD_APPLICATIONSET_CONTROLLER_ENABLE_NEW_GIT_FILE_GLOBBING
valueFrom:
configMapKeyRef:
diff --git a/mkdocs.yml b/mkdocs.yml
index 1fea9734a8710..d2d59fdd6b0e8 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -23,6 +23,7 @@ nav:
- operator-manual/index.md
- operator-manual/architecture.md
- operator-manual/installation.md
+ - operator-manual/feature-maturity.md
- operator-manual/core.md
- operator-manual/declarative-setup.md
- operator-manual/app-any-namespace.md
diff --git a/pkg/apis/application/v1alpha1/applicationset_types_test.go b/pkg/apis/application/v1alpha1/applicationset_types_test.go
index 867024578f76e..cb61167b2ebf1 100644
--- a/pkg/apis/application/v1alpha1/applicationset_types_test.go
+++ b/pkg/apis/application/v1alpha1/applicationset_types_test.go
@@ -101,6 +101,7 @@ func TestApplicationSetSetConditions(t *testing.T) {
testAppSetCond(ApplicationSetConditionResourcesUpToDate, "bar", tenMinsAgo, ApplicationSetConditionStatusTrue, ApplicationSetReasonApplicationSetUpToDate),
},
validate: func(t *testing.T, a *ApplicationSet) {
+ t.Helper()
assert.Equal(t, fiveMinsAgo, a.Status.Conditions[0].LastTransitionTime)
assert.Equal(t, tenMinsAgo, a.Status.Conditions[1].LastTransitionTime)
},
@@ -120,6 +121,7 @@ func TestApplicationSetSetConditions(t *testing.T) {
testAppSetCond(ApplicationSetConditionResourcesUpToDate, "bar", nil, ApplicationSetConditionStatusFalse, ApplicationSetReasonApplicationSetUpToDate),
},
validate: func(t *testing.T, a *ApplicationSet) {
+ t.Helper()
// SetConditions should add timestamps for new conditions.
assert.True(t, a.Status.Conditions[0].LastTransitionTime.Time.After(fiveMinsAgo.Time))
assert.True(t, a.Status.Conditions[1].LastTransitionTime.Time.After(fiveMinsAgo.Time))
@@ -141,6 +143,7 @@ func TestApplicationSetSetConditions(t *testing.T) {
testAppSetCond(ApplicationSetConditionResourcesUpToDate, "bar", tenMinsAgo, ApplicationSetConditionStatusTrue, ApplicationSetReasonApplicationSetUpToDate),
},
validate: func(t *testing.T, a *ApplicationSet) {
+ t.Helper()
assert.Equal(t, tenMinsAgo.Time, a.Status.Conditions[0].LastTransitionTime.Time)
},
},
@@ -161,6 +164,7 @@ func TestApplicationSetSetConditions(t *testing.T) {
}
func assertAppSetConditions(t *testing.T, expected []ApplicationSetCondition, actual []ApplicationSetCondition) {
+ t.Helper()
assert.Equal(t, len(expected), len(actual))
for i := range expected {
assert.Equal(t, expected[i].Type, actual[i].Type)
diff --git a/pkg/apis/application/v1alpha1/generated.pb.go b/pkg/apis/application/v1alpha1/generated.pb.go
index 465fe3a2df8f2..0fdea6fad5adc 100644
--- a/pkg/apis/application/v1alpha1/generated.pb.go
+++ b/pkg/apis/application/v1alpha1/generated.pb.go
@@ -4593,723 +4593,724 @@ func init() {
}
var fileDescriptor_030104ce3b95bcac = []byte{
- // 11444 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x6f, 0x70, 0x1c, 0xc9,
- 0x75, 0x18, 0xae, 0xd9, 0xc5, 0x02, 0xbb, 0x0f, 0xff, 0x88, 0x26, 0x79, 0x07, 0x52, 0x77, 0x07,
- 0x7a, 0xce, 0x3e, 0x9d, 0x7e, 0xba, 0x03, 0x7c, 0xd4, 0x9d, 0x7c, 0x3f, 0x9d, 0x25, 0x19, 0x7f,
- 0x48, 0x10, 0x24, 0x40, 0xe0, 0x1a, 0x20, 0x29, 0x9d, 0x7c, 0x3a, 0x0d, 0x66, 0x1b, 0x8b, 0x21,
- 0x66, 0x67, 0xf6, 0x66, 0x66, 0x41, 0xe2, 0x2c, 0xc9, 0x92, 0x25, 0xd9, 0x72, 0xf4, 0xe7, 0x14,
- 0x29, 0x55, 0x39, 0x27, 0x96, 0x22, 0x5b, 0x4e, 0x2a, 0xa9, 0x94, 0x2a, 0x4a, 0xf2, 0x21, 0x4e,
- 0xd9, 0x2e, 0x57, 0xec, 0x94, 0x4b, 0x89, 0x93, 0xb2, 0x4b, 0xa5, 0xb2, 0x94, 0xc4, 0x46, 0x24,
- 0xc6, 0x29, 0xbb, 0xf2, 0xc1, 0x55, 0x71, 0xf2, 0x21, 0xc5, 0xe4, 0x43, 0xaa, 0xff, 0xf7, 0xcc,
- 0xce, 0x02, 0x0b, 0x62, 0x00, 0x52, 0xca, 0x7d, 0xdb, 0xed, 0xf7, 0xba, 0x5f, 0x4f, 0xff, 0x79,
- 0xef, 0xf5, 0xeb, 0xf7, 0x5e, 0xc3, 0x62, 0xc3, 0x4b, 0x36, 0xdb, 0xeb, 0x93, 0x6e, 0xd8, 0x9c,
- 0x72, 0xa2, 0x46, 0xd8, 0x8a, 0xc2, 0x9b, 0xec, 0xc7, 0xd3, 0x6e, 0x7d, 0x6a, 0xfb, 0xfc, 0x54,
- 0x6b, 0xab, 0x31, 0xe5, 0xb4, 0xbc, 0x78, 0xca, 0x69, 0xb5, 0x7c, 0xcf, 0x75, 0x12, 0x2f, 0x0c,
- 0xa6, 0xb6, 0x9f, 0x71, 0xfc, 0xd6, 0xa6, 0xf3, 0xcc, 0x54, 0x83, 0x04, 0x24, 0x72, 0x12, 0x52,
- 0x9f, 0x6c, 0x45, 0x61, 0x12, 0xa2, 0x9f, 0xd6, 0xad, 0x4d, 0xca, 0xd6, 0xd8, 0x8f, 0x57, 0xdc,
- 0xfa, 0xe4, 0xf6, 0xf9, 0xc9, 0xd6, 0x56, 0x63, 0x92, 0xb6, 0x36, 0x69, 0xb4, 0x36, 0x29, 0x5b,
- 0x3b, 0xfb, 0xb4, 0xd1, 0x97, 0x46, 0xd8, 0x08, 0xa7, 0x58, 0xa3, 0xeb, 0xed, 0x0d, 0xf6, 0x8f,
- 0xfd, 0x61, 0xbf, 0x38, 0xb1, 0xb3, 0xf6, 0xd6, 0xf3, 0xf1, 0xa4, 0x17, 0xd2, 0xee, 0x4d, 0xb9,
- 0x61, 0x44, 0xa6, 0xb6, 0x3b, 0x3a, 0x74, 0xf6, 0x92, 0xc6, 0x21, 0xb7, 0x13, 0x12, 0xc4, 0x5e,
- 0x18, 0xc4, 0x4f, 0xd3, 0x2e, 0x90, 0x68, 0x9b, 0x44, 0xe6, 0xe7, 0x19, 0x08, 0x79, 0x2d, 0x3d,
- 0xab, 0x5b, 0x6a, 0x3a, 0xee, 0xa6, 0x17, 0x90, 0x68, 0x47, 0x57, 0x6f, 0x92, 0xc4, 0xc9, 0xab,
- 0x35, 0xd5, 0xad, 0x56, 0xd4, 0x0e, 0x12, 0xaf, 0x49, 0x3a, 0x2a, 0xbc, 0x6b, 0xbf, 0x0a, 0xb1,
- 0xbb, 0x49, 0x9a, 0x4e, 0x47, 0xbd, 0x77, 0x76, 0xab, 0xd7, 0x4e, 0x3c, 0x7f, 0xca, 0x0b, 0x92,
- 0x38, 0x89, 0xb2, 0x95, 0xec, 0x5f, 0xb5, 0x60, 0x78, 0xfa, 0xc6, 0xea, 0x74, 0x3b, 0xd9, 0x9c,
- 0x0d, 0x83, 0x0d, 0xaf, 0x81, 0x9e, 0x83, 0x41, 0xd7, 0x6f, 0xc7, 0x09, 0x89, 0xae, 0x3a, 0x4d,
- 0x32, 0x6e, 0x9d, 0xb3, 0x9e, 0xac, 0xcd, 0x9c, 0xfc, 0xd6, 0xee, 0xc4, 0x5b, 0xee, 0xec, 0x4e,
- 0x0c, 0xce, 0x6a, 0x10, 0x36, 0xf1, 0xd0, 0xdb, 0x61, 0x20, 0x0a, 0x7d, 0x32, 0x8d, 0xaf, 0x8e,
- 0x97, 0x58, 0x95, 0x51, 0x51, 0x65, 0x00, 0xf3, 0x62, 0x2c, 0xe1, 0x14, 0xb5, 0x15, 0x85, 0x1b,
- 0x9e, 0x4f, 0xc6, 0xcb, 0x69, 0xd4, 0x15, 0x5e, 0x8c, 0x25, 0xdc, 0xfe, 0x93, 0x12, 0xc0, 0x74,
- 0xab, 0xb5, 0x12, 0x85, 0x37, 0x89, 0x9b, 0xa0, 0x0f, 0x43, 0x95, 0x0e, 0x73, 0xdd, 0x49, 0x1c,
- 0xd6, 0xb1, 0xc1, 0xf3, 0x3f, 0x39, 0xc9, 0xbf, 0x7a, 0xd2, 0xfc, 0x6a, 0xbd, 0xc8, 0x28, 0xf6,
- 0xe4, 0xf6, 0x33, 0x93, 0xcb, 0xeb, 0xb4, 0xfe, 0x12, 0x49, 0x9c, 0x19, 0x24, 0x88, 0x81, 0x2e,
- 0xc3, 0xaa, 0x55, 0x14, 0x40, 0x5f, 0xdc, 0x22, 0x2e, 0xfb, 0x86, 0xc1, 0xf3, 0x8b, 0x93, 0x87,
- 0x59, 0xcd, 0x93, 0xba, 0xe7, 0xab, 0x2d, 0xe2, 0xce, 0x0c, 0x09, 0xca, 0x7d, 0xf4, 0x1f, 0x66,
- 0x74, 0xd0, 0x36, 0xf4, 0xc7, 0x89, 0x93, 0xb4, 0x63, 0x36, 0x14, 0x83, 0xe7, 0xaf, 0x16, 0x46,
- 0x91, 0xb5, 0x3a, 0x33, 0x22, 0x68, 0xf6, 0xf3, 0xff, 0x58, 0x50, 0xb3, 0xff, 0xcc, 0x82, 0x11,
- 0x8d, 0xbc, 0xe8, 0xc5, 0x09, 0xfa, 0xd9, 0x8e, 0xc1, 0x9d, 0xec, 0x6d, 0x70, 0x69, 0x6d, 0x36,
- 0xb4, 0x27, 0x04, 0xb1, 0xaa, 0x2c, 0x31, 0x06, 0xb6, 0x09, 0x15, 0x2f, 0x21, 0xcd, 0x78, 0xbc,
- 0x74, 0xae, 0xfc, 0xe4, 0xe0, 0xf9, 0x4b, 0x45, 0x7d, 0xe7, 0xcc, 0xb0, 0x20, 0x5a, 0x59, 0xa0,
- 0xcd, 0x63, 0x4e, 0xc5, 0xfe, 0xeb, 0x61, 0xf3, 0xfb, 0xe8, 0x80, 0xa3, 0x67, 0x60, 0x30, 0x0e,
- 0xdb, 0x91, 0x4b, 0x30, 0x69, 0x85, 0xf1, 0xb8, 0x75, 0xae, 0x4c, 0x97, 0x1e, 0x5d, 0xd4, 0xab,
- 0xba, 0x18, 0x9b, 0x38, 0xe8, 0x0b, 0x16, 0x0c, 0xd5, 0x49, 0x9c, 0x78, 0x01, 0xa3, 0x2f, 0x3b,
- 0xbf, 0x76, 0xe8, 0xce, 0xcb, 0xc2, 0x39, 0xdd, 0xf8, 0xcc, 0x29, 0xf1, 0x21, 0x43, 0x46, 0x61,
- 0x8c, 0x53, 0xf4, 0xe9, 0xe6, 0xac, 0x93, 0xd8, 0x8d, 0xbc, 0x16, 0xfd, 0x2f, 0xb6, 0x8f, 0xda,
- 0x9c, 0x73, 0x1a, 0x84, 0x4d, 0x3c, 0x14, 0x40, 0x85, 0x6e, 0xbe, 0x78, 0xbc, 0x8f, 0xf5, 0x7f,
- 0xe1, 0x70, 0xfd, 0x17, 0x83, 0x4a, 0xf7, 0xb5, 0x1e, 0x7d, 0xfa, 0x2f, 0xc6, 0x9c, 0x0c, 0xfa,
- 0xbc, 0x05, 0xe3, 0x82, 0x39, 0x60, 0xc2, 0x07, 0xf4, 0xc6, 0xa6, 0x97, 0x10, 0xdf, 0x8b, 0x93,
- 0xf1, 0x0a, 0xeb, 0xc3, 0x54, 0x6f, 0x6b, 0x6b, 0x3e, 0x0a, 0xdb, 0xad, 0x2b, 0x5e, 0x50, 0x9f,
- 0x39, 0x27, 0x28, 0x8d, 0xcf, 0x76, 0x69, 0x18, 0x77, 0x25, 0x89, 0xbe, 0x6c, 0xc1, 0xd9, 0xc0,
- 0x69, 0x92, 0xb8, 0xe5, 0xd0, 0xa9, 0xe5, 0xe0, 0x19, 0xdf, 0x71, 0xb7, 0x58, 0x8f, 0xfa, 0xef,
- 0xad, 0x47, 0xb6, 0xe8, 0xd1, 0xd9, 0xab, 0x5d, 0x9b, 0xc6, 0x7b, 0x90, 0x45, 0x5f, 0xb7, 0x60,
- 0x2c, 0x8c, 0x5a, 0x9b, 0x4e, 0x40, 0xea, 0x12, 0x1a, 0x8f, 0x0f, 0xb0, 0xad, 0xf7, 0xa1, 0xc3,
- 0x4d, 0xd1, 0x72, 0xb6, 0xd9, 0xa5, 0x30, 0xf0, 0x92, 0x30, 0x5a, 0x25, 0x49, 0xe2, 0x05, 0x8d,
- 0x78, 0xe6, 0xf4, 0x9d, 0xdd, 0x89, 0xb1, 0x0e, 0x2c, 0xdc, 0xd9, 0x1f, 0xf4, 0x73, 0x30, 0x18,
- 0xef, 0x04, 0xee, 0x0d, 0x2f, 0xa8, 0x87, 0xb7, 0xe2, 0xf1, 0x6a, 0x11, 0xdb, 0x77, 0x55, 0x35,
- 0x28, 0x36, 0xa0, 0x26, 0x80, 0x4d, 0x6a, 0xf9, 0x13, 0xa7, 0x97, 0x52, 0xad, 0xe8, 0x89, 0xd3,
- 0x8b, 0x69, 0x0f, 0xb2, 0xe8, 0x97, 0x2c, 0x18, 0x8e, 0xbd, 0x46, 0xe0, 0x24, 0xed, 0x88, 0x5c,
- 0x21, 0x3b, 0xf1, 0x38, 0xb0, 0x8e, 0x5c, 0x3e, 0xe4, 0xa8, 0x18, 0x4d, 0xce, 0x9c, 0x16, 0x7d,
- 0x1c, 0x36, 0x4b, 0x63, 0x9c, 0xa6, 0x9b, 0xb7, 0xd1, 0xf4, 0xb2, 0x1e, 0x2c, 0x76, 0xa3, 0xe9,
- 0x45, 0xdd, 0x95, 0x24, 0xfa, 0x19, 0x38, 0xc1, 0x8b, 0xd4, 0xc8, 0xc6, 0xe3, 0x43, 0x8c, 0xd1,
- 0x9e, 0xba, 0xb3, 0x3b, 0x71, 0x62, 0x35, 0x03, 0xc3, 0x1d, 0xd8, 0xe8, 0x55, 0x98, 0x68, 0x91,
- 0xa8, 0xe9, 0x25, 0xcb, 0x81, 0xbf, 0x23, 0xd9, 0xb7, 0x1b, 0xb6, 0x48, 0x5d, 0x74, 0x27, 0x1e,
- 0x1f, 0x3e, 0x67, 0x3d, 0x59, 0x9d, 0x79, 0x9b, 0xe8, 0xe6, 0xc4, 0xca, 0xde, 0xe8, 0x78, 0xbf,
- 0xf6, 0xd0, 0x1f, 0x58, 0x70, 0xd6, 0xe0, 0xb2, 0xab, 0x24, 0xda, 0xf6, 0x5c, 0x32, 0xed, 0xba,
- 0x61, 0x3b, 0x48, 0xe2, 0xf1, 0x11, 0x36, 0x8c, 0xeb, 0x47, 0xc1, 0xf3, 0xd3, 0xa4, 0xf4, 0xba,
- 0xec, 0x8a, 0x12, 0xe3, 0x3d, 0x7a, 0x6a, 0xff, 0x9b, 0x12, 0x9c, 0xc8, 0x6a, 0x00, 0xe8, 0x1f,
- 0x58, 0x30, 0x7a, 0xf3, 0x56, 0xb2, 0x16, 0x6e, 0x91, 0x20, 0x9e, 0xd9, 0xa1, 0x7c, 0x9a, 0xc9,
- 0xbe, 0xc1, 0xf3, 0x6e, 0xb1, 0xba, 0xc6, 0xe4, 0xe5, 0x34, 0x95, 0x0b, 0x41, 0x12, 0xed, 0xcc,
- 0x3c, 0x2c, 0xbe, 0x69, 0xf4, 0xf2, 0x8d, 0x35, 0x13, 0x8a, 0xb3, 0x9d, 0x3a, 0xfb, 0x59, 0x0b,
- 0x4e, 0xe5, 0x35, 0x81, 0x4e, 0x40, 0x79, 0x8b, 0xec, 0x70, 0x4d, 0x14, 0xd3, 0x9f, 0xe8, 0x65,
- 0xa8, 0x6c, 0x3b, 0x7e, 0x9b, 0x08, 0x35, 0x6d, 0xfe, 0x70, 0x1f, 0xa2, 0x7a, 0x86, 0x79, 0xab,
- 0xef, 0x2e, 0x3d, 0x6f, 0xd9, 0x7f, 0x54, 0x86, 0x41, 0x63, 0xd2, 0x8e, 0x41, 0xf5, 0x0c, 0x53,
- 0xaa, 0xe7, 0x52, 0x61, 0xeb, 0xad, 0xab, 0xee, 0x79, 0x2b, 0xa3, 0x7b, 0x2e, 0x17, 0x47, 0x72,
- 0x4f, 0xe5, 0x13, 0x25, 0x50, 0x0b, 0x5b, 0xf4, 0x18, 0x42, 0x75, 0x98, 0xbe, 0x22, 0xa6, 0x70,
- 0x59, 0x36, 0x37, 0x33, 0x7c, 0x67, 0x77, 0xa2, 0xa6, 0xfe, 0x62, 0x4d, 0xc8, 0xfe, 0xae, 0x05,
- 0xa7, 0x8c, 0x3e, 0xce, 0x86, 0x41, 0xdd, 0x63, 0x53, 0x7b, 0x0e, 0xfa, 0x92, 0x9d, 0x96, 0x3c,
- 0xea, 0xa8, 0x91, 0x5a, 0xdb, 0x69, 0x11, 0xcc, 0x20, 0xf4, 0xc4, 0xd2, 0x24, 0x71, 0xec, 0x34,
- 0x48, 0xf6, 0x70, 0xb3, 0xc4, 0x8b, 0xb1, 0x84, 0xa3, 0x08, 0x90, 0xef, 0xc4, 0xc9, 0x5a, 0xe4,
- 0x04, 0x31, 0x6b, 0x7e, 0xcd, 0x6b, 0x12, 0x31, 0xc0, 0xff, 0x5f, 0x6f, 0x2b, 0x86, 0xd6, 0x98,
- 0x79, 0xe8, 0xce, 0xee, 0x04, 0x5a, 0xec, 0x68, 0x09, 0xe7, 0xb4, 0x6e, 0x7f, 0xd9, 0x82, 0x87,
- 0xf2, 0x19, 0x0c, 0x7a, 0x02, 0xfa, 0xf9, 0x39, 0x57, 0x7c, 0x9d, 0x9e, 0x12, 0x56, 0x8a, 0x05,
- 0x14, 0x4d, 0x41, 0x4d, 0x09, 0x3c, 0xf1, 0x8d, 0x63, 0x02, 0xb5, 0xa6, 0xa5, 0xa4, 0xc6, 0xa1,
- 0x83, 0x46, 0xff, 0x08, 0x15, 0x54, 0x0d, 0x1a, 0x3b, 0x18, 0x32, 0x88, 0xfd, 0x1d, 0x0b, 0x7e,
- 0xbc, 0x17, 0xb6, 0x77, 0x74, 0x7d, 0x5c, 0x85, 0xd3, 0x75, 0xb2, 0xe1, 0xb4, 0xfd, 0x24, 0x4d,
- 0x51, 0x74, 0xfa, 0x51, 0x51, 0xf9, 0xf4, 0x5c, 0x1e, 0x12, 0xce, 0xaf, 0x6b, 0xff, 0x67, 0x0b,
- 0x46, 0x8d, 0xcf, 0x3a, 0x86, 0xa3, 0x53, 0x90, 0x3e, 0x3a, 0x2d, 0x14, 0xb6, 0x4d, 0xbb, 0x9c,
- 0x9d, 0x3e, 0x6f, 0xc1, 0x59, 0x03, 0x6b, 0xc9, 0x49, 0xdc, 0xcd, 0x0b, 0xb7, 0x5b, 0x11, 0x89,
- 0x63, 0xba, 0xa4, 0x1e, 0x35, 0xd8, 0xf1, 0xcc, 0xa0, 0x68, 0xa1, 0x7c, 0x85, 0xec, 0x70, 0xde,
- 0xfc, 0x14, 0x54, 0xf9, 0x9e, 0x0b, 0x23, 0x31, 0x49, 0xea, 0xdb, 0x96, 0x45, 0x39, 0x56, 0x18,
- 0xc8, 0x86, 0x7e, 0xc6, 0x73, 0x29, 0x0f, 0xa2, 0x6a, 0x02, 0xd0, 0x79, 0xbf, 0xce, 0x4a, 0xb0,
- 0x80, 0xd8, 0x71, 0xaa, 0x3b, 0x2b, 0x11, 0x61, 0xeb, 0xa1, 0x7e, 0xd1, 0x23, 0x7e, 0x3d, 0xa6,
- 0xc7, 0x3a, 0x27, 0x08, 0xc2, 0x44, 0x9c, 0xd0, 0x8c, 0x63, 0xdd, 0xb4, 0x2e, 0xc6, 0x26, 0x0e,
- 0x25, 0xea, 0x3b, 0xeb, 0xc4, 0xe7, 0x23, 0x2a, 0x88, 0x2e, 0xb2, 0x12, 0x2c, 0x20, 0xf6, 0x9d,
- 0x12, 0x3b, 0x40, 0x2a, 0x8e, 0x46, 0x8e, 0xc3, 0xfa, 0x10, 0xa5, 0x44, 0xc0, 0x4a, 0x71, 0xfc,
- 0x98, 0x74, 0xb7, 0x40, 0xbc, 0x96, 0x91, 0x02, 0xb8, 0x50, 0xaa, 0x7b, 0x5b, 0x21, 0x3e, 0x5e,
- 0x86, 0x89, 0x74, 0x85, 0x0e, 0x21, 0x42, 0x8f, 0xbc, 0x06, 0xa1, 0xac, 0x3d, 0xca, 0xc0, 0xc7,
- 0x26, 0x5e, 0x17, 0x3e, 0x5c, 0x3a, 0x4a, 0x3e, 0x6c, 0x8a, 0x89, 0xf2, 0x3e, 0x62, 0xe2, 0x09,
- 0x35, 0xea, 0x7d, 0x19, 0x9e, 0x97, 0x16, 0x95, 0xe7, 0xa0, 0x2f, 0x4e, 0x48, 0x6b, 0xbc, 0x92,
- 0x66, 0xb3, 0xab, 0x09, 0x69, 0x61, 0x06, 0x41, 0xef, 0x81, 0xd1, 0xc4, 0x89, 0x1a, 0x24, 0x89,
- 0xc8, 0xb6, 0xc7, 0x6c, 0x97, 0xec, 0x3c, 0x5b, 0x9b, 0x39, 0x49, 0xb5, 0xae, 0x35, 0x06, 0xc2,
- 0x12, 0x84, 0xb3, 0xb8, 0xf6, 0x7f, 0x2b, 0xc1, 0xc3, 0xe9, 0x29, 0xd0, 0x82, 0xf1, 0x7d, 0x29,
- 0xc1, 0xf8, 0x0e, 0x53, 0x30, 0xde, 0xdd, 0x9d, 0x78, 0x6b, 0x97, 0x6a, 0x3f, 0x34, 0x72, 0x13,
- 0xcd, 0x67, 0x26, 0x61, 0x2a, 0x3d, 0x09, 0x77, 0x77, 0x27, 0x1e, 0xed, 0xf2, 0x8d, 0x99, 0x59,
- 0x7a, 0x02, 0xfa, 0x23, 0xe2, 0xc4, 0x61, 0x20, 0xe6, 0x49, 0xcd, 0x26, 0x66, 0xa5, 0x58, 0x40,
- 0xed, 0x6f, 0xd7, 0xb2, 0x83, 0x3d, 0xcf, 0xed, 0xb1, 0x61, 0x84, 0x3c, 0xe8, 0x63, 0xa7, 0x36,
- 0xce, 0x59, 0xae, 0x1c, 0x6e, 0x17, 0x52, 0x29, 0xa2, 0x9a, 0x9e, 0xa9, 0xd2, 0x59, 0xa3, 0x45,
- 0x98, 0x91, 0x40, 0xb7, 0xa1, 0xea, 0xca, 0xc3, 0x54, 0xa9, 0x08, 0xb3, 0xa3, 0x38, 0x4a, 0x69,
- 0x8a, 0x43, 0x94, 0xdd, 0xab, 0x13, 0x98, 0xa2, 0x86, 0x08, 0x94, 0x1b, 0x5e, 0x22, 0xa6, 0xf5,
- 0x90, 0xc7, 0xe5, 0x79, 0xcf, 0xf8, 0xc4, 0x01, 0x2a, 0x83, 0xe6, 0xbd, 0x04, 0xd3, 0xf6, 0xd1,
- 0xa7, 0x2d, 0x18, 0x8c, 0xdd, 0xe6, 0x4a, 0x14, 0x6e, 0x7b, 0x75, 0x12, 0x09, 0x1d, 0xf3, 0x90,
- 0x9c, 0x6d, 0x75, 0x76, 0x49, 0x36, 0xa8, 0xe9, 0x72, 0xf3, 0x85, 0x86, 0x60, 0x93, 0x2e, 0x3d,
- 0x7b, 0x3d, 0x2c, 0xbe, 0x7d, 0x8e, 0xb8, 0x6c, 0xc7, 0xc9, 0x33, 0x33, 0x5b, 0x29, 0x87, 0xd6,
- 0xb9, 0xe7, 0xda, 0xee, 0x16, 0xdd, 0x6f, 0xba, 0x43, 0x6f, 0xbd, 0xb3, 0x3b, 0xf1, 0xf0, 0x6c,
- 0x3e, 0x4d, 0xdc, 0xad, 0x33, 0x6c, 0xc0, 0x5a, 0x6d, 0xdf, 0xc7, 0xe4, 0xd5, 0x36, 0x61, 0x16,
- 0xb1, 0x02, 0x06, 0x6c, 0x45, 0x37, 0x98, 0x19, 0x30, 0x03, 0x82, 0x4d, 0xba, 0xe8, 0x55, 0xe8,
- 0x6f, 0x3a, 0x49, 0xe4, 0xdd, 0x16, 0x66, 0xb0, 0x43, 0x9e, 0x82, 0x96, 0x58, 0x5b, 0x9a, 0x38,
- 0x13, 0xf4, 0xbc, 0x10, 0x0b, 0x42, 0xa8, 0x09, 0x95, 0x26, 0x89, 0x1a, 0x64, 0xbc, 0x5a, 0x84,
- 0xc9, 0x7f, 0x89, 0x36, 0xa5, 0x09, 0xd6, 0xa8, 0x72, 0xc5, 0xca, 0x30, 0xa7, 0x82, 0x5e, 0x86,
- 0x6a, 0x4c, 0x7c, 0xe2, 0x52, 0xf5, 0xa8, 0xc6, 0x28, 0xbe, 0xb3, 0x47, 0x55, 0x91, 0xea, 0x25,
- 0xab, 0xa2, 0x2a, 0xdf, 0x60, 0xf2, 0x1f, 0x56, 0x4d, 0xd2, 0x01, 0x6c, 0xf9, 0xed, 0x86, 0x17,
- 0x8c, 0x43, 0x11, 0x03, 0xb8, 0xc2, 0xda, 0xca, 0x0c, 0x20, 0x2f, 0xc4, 0x82, 0x90, 0xfd, 0x5f,
- 0x2d, 0x40, 0x69, 0xa6, 0x76, 0x0c, 0x3a, 0xf1, 0xab, 0x69, 0x9d, 0x78, 0xb1, 0x48, 0xa5, 0xa5,
- 0x8b, 0x5a, 0xfc, 0x5b, 0x35, 0xc8, 0x88, 0x83, 0xab, 0x24, 0x4e, 0x48, 0xfd, 0x4d, 0x16, 0xfe,
- 0x26, 0x0b, 0x7f, 0x93, 0x85, 0x2b, 0x16, 0xbe, 0x9e, 0x61, 0xe1, 0xef, 0x35, 0x76, 0xbd, 0xbe,
- 0x5f, 0x7f, 0x45, 0x5d, 0xc0, 0x9b, 0x3d, 0x30, 0x10, 0x28, 0x27, 0xb8, 0xbc, 0xba, 0x7c, 0x35,
- 0x97, 0x67, 0xbf, 0x92, 0xe6, 0xd9, 0x87, 0x25, 0xf1, 0xff, 0x02, 0x97, 0xfe, 0x03, 0x0b, 0xde,
- 0x96, 0xe6, 0x5e, 0x72, 0xe5, 0x2c, 0x34, 0x82, 0x30, 0x22, 0x73, 0xde, 0xc6, 0x06, 0x89, 0x48,
- 0xe0, 0x92, 0x58, 0xd9, 0x76, 0xac, 0x6e, 0xb6, 0x1d, 0xf4, 0x2c, 0x0c, 0xdd, 0x8c, 0xc3, 0x60,
- 0x25, 0xf4, 0x02, 0xc1, 0x82, 0xe8, 0x89, 0xe3, 0xc4, 0x9d, 0xdd, 0x89, 0x21, 0x3a, 0xa2, 0xb2,
- 0x1c, 0xa7, 0xb0, 0xd0, 0x2c, 0x8c, 0xdd, 0x7c, 0x75, 0xc5, 0x49, 0x0c, 0x6b, 0x82, 0x3c, 0xf7,
- 0xb3, 0xfb, 0xa8, 0xcb, 0x2f, 0x66, 0x80, 0xb8, 0x13, 0xdf, 0xfe, 0xbb, 0x25, 0x38, 0x93, 0xf9,
- 0x90, 0xd0, 0xf7, 0xc3, 0x76, 0x42, 0xcf, 0x44, 0xe8, 0xab, 0x16, 0x9c, 0x68, 0xa6, 0x0d, 0x16,
- 0xb1, 0x30, 0x77, 0xbf, 0xbf, 0x30, 0x19, 0x91, 0xb1, 0x88, 0xcc, 0x8c, 0x8b, 0x11, 0x3a, 0x91,
- 0x01, 0xc4, 0xb8, 0xa3, 0x2f, 0xe8, 0x65, 0xa8, 0x35, 0x9d, 0xdb, 0xd7, 0x5a, 0x75, 0x27, 0x91,
- 0xc7, 0xd1, 0xee, 0x56, 0x84, 0x76, 0xe2, 0xf9, 0x93, 0xdc, 0x73, 0x63, 0x72, 0x21, 0x48, 0x96,
- 0xa3, 0xd5, 0x24, 0xf2, 0x82, 0x06, 0x37, 0x72, 0x2e, 0xc9, 0x66, 0xb0, 0x6e, 0xd1, 0xfe, 0x8a,
- 0x95, 0x15, 0x52, 0x6a, 0x74, 0x22, 0x27, 0x21, 0x8d, 0x1d, 0xf4, 0x11, 0xa8, 0xd0, 0x73, 0xa3,
- 0x1c, 0x95, 0x1b, 0x45, 0x4a, 0x4e, 0x63, 0x26, 0xb4, 0x10, 0xa5, 0xff, 0x62, 0xcc, 0x89, 0xda,
- 0x5f, 0xad, 0x65, 0x95, 0x05, 0x76, 0x37, 0x7f, 0x1e, 0xa0, 0x11, 0xae, 0x91, 0x66, 0xcb, 0xa7,
- 0xc3, 0x62, 0xb1, 0x0b, 0x1e, 0x65, 0x2a, 0x99, 0x57, 0x10, 0x6c, 0x60, 0xa1, 0x5f, 0xb6, 0x00,
- 0x1a, 0x72, 0xcd, 0x4b, 0x45, 0xe0, 0x5a, 0x91, 0x9f, 0xa3, 0x77, 0x94, 0xee, 0x8b, 0x22, 0x88,
- 0x0d, 0xe2, 0xe8, 0x17, 0x2c, 0xa8, 0x26, 0xb2, 0xfb, 0x5c, 0x34, 0xae, 0x15, 0xd9, 0x13, 0xf9,
- 0xd1, 0x5a, 0x27, 0x52, 0x43, 0xa2, 0xe8, 0xa2, 0x5f, 0xb4, 0x00, 0xe2, 0x9d, 0xc0, 0x5d, 0x09,
- 0x7d, 0xcf, 0xdd, 0x11, 0x12, 0xf3, 0x7a, 0xa1, 0xe6, 0x1c, 0xd5, 0xfa, 0xcc, 0x08, 0x1d, 0x0d,
- 0xfd, 0x1f, 0x1b, 0x94, 0xd1, 0xc7, 0xa0, 0x1a, 0x8b, 0xe5, 0x26, 0x64, 0xe4, 0x5a, 0xb1, 0x46,
- 0x25, 0xde, 0xb6, 0x60, 0xaf, 0xe2, 0x1f, 0x56, 0x34, 0xd1, 0xdf, 0xb6, 0x60, 0xb4, 0x95, 0x36,
- 0x13, 0x0a, 0x71, 0x58, 0x1c, 0x0f, 0xc8, 0x98, 0x21, 0xb9, 0xb5, 0x25, 0x53, 0x88, 0xb3, 0xbd,
- 0xa0, 0x1c, 0x50, 0xaf, 0xe0, 0xe5, 0x16, 0x37, 0x59, 0x0e, 0x68, 0x0e, 0x38, 0x9f, 0x05, 0xe2,
- 0x4e, 0x7c, 0xb4, 0x02, 0xa7, 0x68, 0xef, 0x76, 0xb8, 0xfa, 0x29, 0xc5, 0x4b, 0xcc, 0x84, 0x61,
- 0x75, 0xe6, 0x11, 0xb1, 0x42, 0xd8, 0x5d, 0x47, 0x16, 0x07, 0xe7, 0xd6, 0x44, 0x7f, 0x64, 0xc1,
- 0x23, 0x1e, 0x13, 0x03, 0xa6, 0xc1, 0x5e, 0x4b, 0x04, 0x71, 0xd1, 0x4e, 0x0a, 0xe5, 0x15, 0xdd,
- 0xc4, 0xcf, 0xcc, 0x8f, 0x8b, 0x2f, 0x78, 0x64, 0x61, 0x8f, 0x2e, 0xe1, 0x3d, 0x3b, 0x8c, 0x7e,
- 0x0a, 0x86, 0xe5, 0xbe, 0x58, 0xa1, 0x2c, 0x98, 0x09, 0xda, 0xda, 0xcc, 0xd8, 0x9d, 0xdd, 0x89,
- 0xe1, 0x35, 0x13, 0x80, 0xd3, 0x78, 0xf6, 0xbf, 0x2d, 0xa7, 0x6e, 0x89, 0x94, 0x0d, 0x93, 0xb1,
- 0x1b, 0x57, 0xda, 0x7f, 0x24, 0xf7, 0x2c, 0x94, 0xdd, 0x28, 0xeb, 0x92, 0x66, 0x37, 0xaa, 0x28,
- 0xc6, 0x06, 0x71, 0xaa, 0x94, 0x8e, 0x39, 0x59, 0x4b, 0xa9, 0xe0, 0x80, 0x2f, 0x17, 0xd9, 0xa5,
- 0xce, 0x3b, 0xbd, 0x33, 0xa2, 0x6b, 0x63, 0x1d, 0x20, 0xdc, 0xd9, 0x25, 0xf4, 0x51, 0xa8, 0x45,
- 0xca, 0xb3, 0xa5, 0x5c, 0xc4, 0x51, 0x4d, 0x2e, 0x1b, 0xd1, 0x1d, 0x75, 0x01, 0xa4, 0x7d, 0x58,
- 0x34, 0x45, 0xfb, 0x0f, 0xd3, 0x17, 0x63, 0x06, 0xef, 0xe8, 0xe1, 0xd2, 0xef, 0x0b, 0x16, 0x0c,
- 0x46, 0xa1, 0xef, 0x7b, 0x41, 0x83, 0xf2, 0x39, 0x21, 0xac, 0x3f, 0x78, 0x24, 0xf2, 0x52, 0x30,
- 0x34, 0xa6, 0x59, 0x63, 0x4d, 0x13, 0x9b, 0x1d, 0xb0, 0xff, 0xcc, 0x82, 0xf1, 0x6e, 0xfc, 0x18,
- 0x11, 0x78, 0xab, 0x64, 0x36, 0x6a, 0x28, 0x96, 0x83, 0x39, 0xe2, 0x13, 0x65, 0x36, 0xaf, 0xce,
- 0x3c, 0x2e, 0x3e, 0xf3, 0xad, 0x2b, 0xdd, 0x51, 0xf1, 0x5e, 0xed, 0xa0, 0x97, 0xe0, 0x84, 0xf1,
- 0x5d, 0xb1, 0x1a, 0x98, 0xda, 0xcc, 0x24, 0x55, 0x80, 0xa6, 0x33, 0xb0, 0xbb, 0xbb, 0x13, 0x0f,
- 0x65, 0xcb, 0x84, 0xc0, 0xe8, 0x68, 0xc7, 0xfe, 0x8d, 0x52, 0x76, 0xb6, 0x94, 0xac, 0x7f, 0xc3,
- 0xea, 0xb0, 0x26, 0xbc, 0xff, 0x28, 0xe4, 0x2b, 0xb3, 0x3b, 0x28, 0x37, 0x8c, 0xee, 0x38, 0xf7,
- 0xf1, 0xda, 0xde, 0xfe, 0x77, 0x7d, 0xb0, 0x47, 0xcf, 0x7a, 0x50, 0xde, 0x0f, 0x7c, 0x8f, 0xfa,
- 0x39, 0x4b, 0x5d, 0x98, 0xf1, 0x3d, 0x5c, 0x3f, 0xaa, 0xb1, 0xe7, 0xe7, 0xa7, 0x98, 0xbb, 0x8e,
- 0x28, 0x2b, 0x7a, 0xfa, 0x6a, 0x0e, 0x7d, 0xcd, 0x4a, 0x5f, 0xf9, 0x71, 0xa7, 0x46, 0xef, 0xc8,
- 0xfa, 0x64, 0xdc, 0x23, 0xf2, 0x8e, 0xe9, 0xdb, 0xa7, 0x6e, 0x37, 0x8c, 0x93, 0x00, 0x1b, 0x5e,
- 0xe0, 0xf8, 0xde, 0x6b, 0xf4, 0x74, 0x54, 0x61, 0x02, 0x9e, 0x69, 0x4c, 0x17, 0x55, 0x29, 0x36,
- 0x30, 0xce, 0xfe, 0xff, 0x30, 0x68, 0x7c, 0x79, 0x8e, 0xc7, 0xcb, 0x29, 0xd3, 0xe3, 0xa5, 0x66,
- 0x38, 0xaa, 0x9c, 0x7d, 0x2f, 0x9c, 0xc8, 0x76, 0xf0, 0x20, 0xf5, 0xed, 0xff, 0x35, 0x90, 0xbd,
- 0x83, 0x5b, 0x23, 0x51, 0x93, 0x76, 0xed, 0x4d, 0xc3, 0xd6, 0x9b, 0x86, 0xad, 0x37, 0x0d, 0x5b,
- 0xe6, 0xdd, 0x84, 0x30, 0xda, 0x0c, 0x1c, 0x93, 0xd1, 0x26, 0x65, 0x86, 0xaa, 0x16, 0x6e, 0x86,
- 0xb2, 0x3f, 0xdd, 0x61, 0xb9, 0x5f, 0x8b, 0x08, 0x41, 0x21, 0x54, 0x82, 0xb0, 0x4e, 0xa4, 0x8e,
- 0x7b, 0xb9, 0x18, 0x85, 0xed, 0x6a, 0x58, 0x37, 0xdc, 0xc5, 0xe9, 0xbf, 0x18, 0x73, 0x3a, 0xf6,
- 0x9d, 0x0a, 0xa4, 0xd4, 0x49, 0x3e, 0xef, 0x6f, 0x87, 0x81, 0x88, 0xb4, 0xc2, 0x6b, 0x78, 0x51,
- 0xc8, 0x32, 0x1d, 0x51, 0xc2, 0x8b, 0xb1, 0x84, 0x53, 0x99, 0xd7, 0x72, 0x92, 0x4d, 0x21, 0xcc,
- 0x94, 0xcc, 0x5b, 0x71, 0x92, 0x4d, 0xcc, 0x20, 0xe8, 0xbd, 0x30, 0x92, 0xa4, 0xae, 0xc2, 0xc5,
- 0x95, 0xef, 0x43, 0x02, 0x77, 0x24, 0x7d, 0x51, 0x8e, 0x33, 0xd8, 0xe8, 0x55, 0xe8, 0xdb, 0x24,
- 0x7e, 0x53, 0x4c, 0xfd, 0x6a, 0x71, 0xb2, 0x86, 0x7d, 0xeb, 0x25, 0xe2, 0x37, 0x39, 0x27, 0xa4,
- 0xbf, 0x30, 0x23, 0x45, 0xd7, 0x7d, 0x6d, 0xab, 0x1d, 0x27, 0x61, 0xd3, 0x7b, 0x4d, 0x5a, 0x3a,
- 0xdf, 0x5f, 0x30, 0xe1, 0x2b, 0xb2, 0x7d, 0x6e, 0x52, 0x52, 0x7f, 0xb1, 0xa6, 0xcc, 0xfa, 0x51,
- 0xf7, 0x22, 0xb6, 0x64, 0x76, 0x84, 0xc1, 0xb2, 0xe8, 0x7e, 0xcc, 0xc9, 0xf6, 0x79, 0x3f, 0xd4,
- 0x5f, 0xac, 0x29, 0xa3, 0x1d, 0xb5, 0xff, 0x06, 0x59, 0x1f, 0xae, 0x15, 0xdc, 0x07, 0xbe, 0xf7,
- 0x72, 0xf7, 0xe1, 0xe3, 0x50, 0x71, 0x37, 0x9d, 0x28, 0x19, 0x1f, 0x62, 0x8b, 0x46, 0xad, 0xe2,
- 0x59, 0x5a, 0x88, 0x39, 0x0c, 0x3d, 0x0a, 0xe5, 0x88, 0x6c, 0x30, 0xef, 0x64, 0xc3, 0x2f, 0x0a,
- 0x93, 0x0d, 0x4c, 0xcb, 0xed, 0x5f, 0x2b, 0xa5, 0xd5, 0xb6, 0xf4, 0x77, 0xf3, 0xd5, 0xee, 0xb6,
- 0xa3, 0x58, 0x9a, 0xbf, 0x8c, 0xd5, 0xce, 0x8a, 0xb1, 0x84, 0xa3, 0x4f, 0x58, 0x30, 0x70, 0x33,
- 0x0e, 0x83, 0x80, 0x24, 0x42, 0x44, 0x5e, 0x2f, 0x78, 0x28, 0x2e, 0xf3, 0xd6, 0x75, 0x1f, 0x44,
- 0x01, 0x96, 0x74, 0x69, 0x77, 0xc9, 0x6d, 0xd7, 0x6f, 0xd7, 0x3b, 0x5c, 0x5d, 0x2e, 0xf0, 0x62,
- 0x2c, 0xe1, 0x14, 0xd5, 0x0b, 0x38, 0x6a, 0x5f, 0x1a, 0x75, 0x21, 0x10, 0xa8, 0x02, 0x6e, 0xff,
- 0x60, 0x00, 0x4e, 0xe7, 0x6e, 0x0e, 0xaa, 0x50, 0x31, 0x95, 0xe5, 0xa2, 0xe7, 0x13, 0xe9, 0xe4,
- 0xc5, 0x14, 0xaa, 0xeb, 0xaa, 0x14, 0x1b, 0x18, 0xe8, 0xe7, 0x01, 0x5a, 0x4e, 0xe4, 0x34, 0x89,
- 0x32, 0x4f, 0x1f, 0x5a, 0x6f, 0xa1, 0xfd, 0x58, 0x91, 0x6d, 0xea, 0x23, 0xba, 0x2a, 0x8a, 0xb1,
- 0x41, 0x12, 0x3d, 0x07, 0x83, 0x11, 0xf1, 0x89, 0x13, 0x33, 0xe7, 0xf6, 0x6c, 0xa4, 0x0e, 0xd6,
- 0x20, 0x6c, 0xe2, 0xa1, 0x27, 0x94, 0x3f, 0x5c, 0xc6, 0x2f, 0x28, 0xed, 0x13, 0x87, 0x5e, 0xb7,
- 0x60, 0x64, 0xc3, 0xf3, 0x89, 0xa6, 0x2e, 0xe2, 0x6a, 0x96, 0x0f, 0xff, 0x91, 0x17, 0xcd, 0x76,
- 0x35, 0x87, 0x4c, 0x15, 0xc7, 0x38, 0x43, 0x9e, 0x4e, 0xf3, 0x36, 0x89, 0x18, 0x6b, 0xed, 0x4f,
- 0x4f, 0xf3, 0x75, 0x5e, 0x8c, 0x25, 0x1c, 0x4d, 0xc3, 0x68, 0xcb, 0x89, 0xe3, 0xd9, 0x88, 0xd4,
- 0x49, 0x90, 0x78, 0x8e, 0xcf, 0xa3, 0x5e, 0xaa, 0xda, 0x59, 0x7c, 0x25, 0x0d, 0xc6, 0x59, 0x7c,
- 0xf4, 0x01, 0x78, 0x98, 0xdb, 0x7f, 0x96, 0xbc, 0x38, 0xf6, 0x82, 0x86, 0x5e, 0x06, 0xc2, 0x0c,
- 0x36, 0x21, 0x9a, 0x7a, 0x78, 0x21, 0x1f, 0x0d, 0x77, 0xab, 0x8f, 0x9e, 0x82, 0x6a, 0xbc, 0xe5,
- 0xb5, 0x66, 0xa3, 0x7a, 0xcc, 0xee, 0x7e, 0xaa, 0xda, 0xe8, 0xba, 0x2a, 0xca, 0xb1, 0xc2, 0x40,
- 0x2e, 0x0c, 0xf1, 0x29, 0xe1, 0x0e, 0x7d, 0x82, 0x3f, 0x3e, 0xdd, 0x55, 0x4c, 0x8b, 0x20, 0xce,
- 0x49, 0xec, 0xdc, 0xba, 0x20, 0x6f, 0xa2, 0xf8, 0xc5, 0xc9, 0x75, 0xa3, 0x19, 0x9c, 0x6a, 0x34,
- 0x7d, 0x62, 0x1b, 0xec, 0xe1, 0xc4, 0xf6, 0x1c, 0x0c, 0x6e, 0xb5, 0xd7, 0x89, 0x18, 0x79, 0xc1,
- 0xb6, 0xd4, 0xea, 0xbb, 0xa2, 0x41, 0xd8, 0xc4, 0x63, 0xbe, 0x94, 0x2d, 0x4f, 0xfc, 0x8b, 0xc7,
- 0x87, 0x0d, 0x5f, 0xca, 0x95, 0x05, 0x59, 0x8c, 0x4d, 0x1c, 0xda, 0x35, 0x3a, 0x16, 0x6b, 0x24,
- 0x66, 0xa1, 0x12, 0x74, 0xb8, 0x54, 0xd7, 0x56, 0x25, 0x00, 0x6b, 0x1c, 0xfb, 0x57, 0x4a, 0x69,
- 0x2b, 0x86, 0xc9, 0x70, 0x50, 0x4c, 0xd9, 0x4a, 0x72, 0xdd, 0x89, 0xa4, 0xf2, 0x71, 0xc8, 0x40,
- 0x23, 0xd1, 0xee, 0x75, 0x27, 0x32, 0x19, 0x14, 0x23, 0x80, 0x25, 0x25, 0x74, 0x13, 0xfa, 0x12,
- 0xdf, 0x29, 0x28, 0x32, 0xd1, 0xa0, 0xa8, 0x8d, 0x4a, 0x8b, 0xd3, 0x31, 0x66, 0x34, 0xd0, 0x23,
- 0xf4, 0x24, 0xb5, 0x2e, 0x6f, 0xbd, 0xc4, 0xe1, 0x67, 0x3d, 0xc6, 0xac, 0xd4, 0xfe, 0xf3, 0xc1,
- 0x1c, 0x19, 0xa1, 0x84, 0x32, 0x3a, 0x0f, 0x40, 0xa7, 0x78, 0x25, 0x22, 0x1b, 0xde, 0x6d, 0xa1,
- 0x14, 0x29, 0x3e, 0x74, 0x55, 0x41, 0xb0, 0x81, 0x25, 0xeb, 0xac, 0xb6, 0x37, 0x68, 0x9d, 0x52,
- 0x67, 0x1d, 0x0e, 0xc1, 0x06, 0x16, 0x7a, 0x16, 0xfa, 0xbd, 0xa6, 0xd3, 0x50, 0x4e, 0xb9, 0x8f,
- 0x50, 0x06, 0xb4, 0xc0, 0x4a, 0xee, 0xee, 0x4e, 0x8c, 0xa8, 0x0e, 0xb1, 0x22, 0x2c, 0x70, 0xd1,
- 0x6f, 0x58, 0x30, 0xe4, 0x86, 0xcd, 0x66, 0x18, 0xf0, 0xa3, 0xac, 0x38, 0x97, 0xdf, 0x3c, 0x2a,
- 0x95, 0x65, 0x72, 0xd6, 0x20, 0xc6, 0x0f, 0xe6, 0x2a, 0x84, 0xd2, 0x04, 0xe1, 0x54, 0xaf, 0x4c,
- 0x3e, 0x55, 0xd9, 0x87, 0x4f, 0xfd, 0xa6, 0x05, 0x63, 0xbc, 0xae, 0x71, 0xc2, 0x16, 0xd1, 0x82,
- 0xe1, 0x11, 0x7f, 0x56, 0x87, 0xd1, 0x41, 0x19, 0x5e, 0x3b, 0xe0, 0xb8, 0xb3, 0x93, 0x68, 0x1e,
- 0xc6, 0x36, 0xc2, 0xc8, 0x25, 0xe6, 0x40, 0x08, 0x26, 0xab, 0x1a, 0xba, 0x98, 0x45, 0xc0, 0x9d,
- 0x75, 0xd0, 0x75, 0x78, 0xc8, 0x28, 0x34, 0xc7, 0x81, 0xf3, 0xd9, 0xc7, 0x44, 0x6b, 0x0f, 0x5d,
- 0xcc, 0xc5, 0xc2, 0x5d, 0x6a, 0xa7, 0x59, 0x5a, 0xad, 0x07, 0x96, 0xf6, 0x0a, 0x9c, 0x71, 0x3b,
- 0x47, 0x66, 0x3b, 0x6e, 0xaf, 0xc7, 0x9c, 0xeb, 0x56, 0x67, 0x7e, 0x4c, 0x34, 0x70, 0x66, 0xb6,
- 0x1b, 0x22, 0xee, 0xde, 0x06, 0xfa, 0x08, 0x54, 0x23, 0xc2, 0x66, 0x25, 0x16, 0xa1, 0x73, 0x87,
- 0xb4, 0x3c, 0x68, 0x6d, 0x9a, 0x37, 0xab, 0xe5, 0x88, 0x28, 0x88, 0xb1, 0xa2, 0x88, 0x6e, 0xc1,
- 0x40, 0xcb, 0x49, 0xdc, 0x4d, 0x11, 0x30, 0x77, 0x68, 0x3b, 0xb9, 0x22, 0xce, 0xae, 0x35, 0x8c,
- 0x10, 0x7b, 0x4e, 0x04, 0x4b, 0x6a, 0x54, 0xb3, 0x72, 0xc3, 0x66, 0x2b, 0x0c, 0x48, 0x90, 0x48,
- 0x96, 0x3f, 0xc2, 0xef, 0x1e, 0x64, 0x29, 0x36, 0x30, 0xd0, 0x0a, 0x9c, 0x62, 0x76, 0xb8, 0x1b,
- 0x5e, 0xb2, 0x19, 0xb6, 0x13, 0x79, 0xac, 0x14, 0xbc, 0x5f, 0xdd, 0x3e, 0x2d, 0xe6, 0xe0, 0xe0,
- 0xdc, 0x9a, 0x59, 0x61, 0x35, 0x7a, 0x6f, 0xc2, 0xea, 0xc4, 0xfe, 0xc2, 0xea, 0xec, 0xfb, 0x60,
- 0xac, 0x83, 0x69, 0x1c, 0xc8, 0xd8, 0x36, 0x07, 0x0f, 0xe5, 0x6f, 0xcf, 0x03, 0x99, 0xdc, 0xfe,
- 0x79, 0xc6, 0xe7, 0xda, 0x38, 0x7e, 0xf4, 0x60, 0xbe, 0x75, 0xa0, 0x4c, 0x82, 0x6d, 0x21, 0xad,
- 0x2e, 0x1e, 0x6e, 0x95, 0x5c, 0x08, 0xb6, 0x39, 0x77, 0x61, 0x36, 0xaa, 0x0b, 0xc1, 0x36, 0xa6,
- 0x6d, 0xa3, 0x2f, 0x59, 0x29, 0xf5, 0x99, 0x1b, 0x7d, 0x3f, 0x74, 0x24, 0xe7, 0xad, 0x9e, 0x35,
- 0x6a, 0xfb, 0xdf, 0x97, 0xe0, 0xdc, 0x7e, 0x8d, 0xf4, 0x30, 0x7c, 0x8f, 0x43, 0x7f, 0xcc, 0xbc,
- 0x28, 0x04, 0xfb, 0x1f, 0xa4, 0xbb, 0x82, 0xfb, 0x55, 0xbc, 0x82, 0x05, 0x08, 0xf9, 0x50, 0x6e,
- 0x3a, 0x2d, 0x61, 0x0b, 0x5c, 0x38, 0x6c, 0x6c, 0x1a, 0xfd, 0xef, 0xf8, 0x4b, 0x4e, 0x8b, 0x2f,
- 0x4f, 0xa3, 0x00, 0x53, 0x32, 0x28, 0x81, 0x8a, 0x13, 0x45, 0x8e, 0xbc, 0xb2, 0xbf, 0x52, 0x0c,
- 0xbd, 0x69, 0xda, 0x24, 0xbf, 0xf1, 0x4c, 0x15, 0x61, 0x4e, 0xcc, 0xfe, 0xdc, 0x40, 0x2a, 0x90,
- 0x89, 0xf9, 0x61, 0xc4, 0xd0, 0x2f, 0x4c, 0x80, 0x56, 0xd1, 0x21, 0x81, 0x3c, 0x52, 0x98, 0x9d,
- 0xae, 0x45, 0xbe, 0x05, 0x41, 0x0a, 0x7d, 0xd6, 0x62, 0x59, 0x0d, 0x64, 0x74, 0x98, 0x38, 0xd3,
- 0x1e, 0x4d, 0x92, 0x05, 0x33, 0x57, 0x82, 0x2c, 0xc4, 0x26, 0x75, 0x91, 0x9d, 0x84, 0xe9, 0xf2,
- 0x9d, 0xd9, 0x49, 0x98, 0x6e, 0x2e, 0xe1, 0xe8, 0x76, 0x8e, 0xbf, 0x45, 0x01, 0x91, 0xf1, 0x3d,
- 0x78, 0x58, 0x7c, 0xcd, 0x82, 0x31, 0x2f, 0x7b, 0x71, 0x2e, 0x4e, 0x80, 0x37, 0x8a, 0xb1, 0xd7,
- 0x75, 0xde, 0xcb, 0x2b, 0xc5, 0xa1, 0x03, 0x84, 0x3b, 0x3b, 0x83, 0xea, 0xd0, 0xe7, 0x05, 0x1b,
- 0xa1, 0x50, 0x97, 0x66, 0x0e, 0xd7, 0xa9, 0x85, 0x60, 0x23, 0xd4, 0xbb, 0x99, 0xfe, 0xc3, 0xac,
- 0x75, 0xb4, 0x08, 0xa7, 0x64, 0x2c, 0xcb, 0x25, 0x2f, 0x4e, 0xc2, 0x68, 0x67, 0xd1, 0x6b, 0x7a,
- 0x09, 0x53, 0x75, 0xca, 0x33, 0xe3, 0x54, 0x12, 0xe1, 0x1c, 0x38, 0xce, 0xad, 0x85, 0x5e, 0x83,
- 0x01, 0x79, 0x59, 0x5d, 0x2d, 0xe2, 0x34, 0xdd, 0xb9, 0xfe, 0xd5, 0x62, 0x5a, 0x15, 0xb7, 0xd5,
- 0x92, 0xa0, 0xfd, 0xfa, 0x20, 0x74, 0xde, 0xa9, 0xa7, 0x2f, 0xd0, 0xad, 0xe3, 0xbe, 0x40, 0xa7,
- 0x47, 0xa3, 0x58, 0xdf, 0x7d, 0x17, 0xb0, 0xb6, 0x05, 0x55, 0x7d, 0xaf, 0xb9, 0x13, 0xb8, 0x98,
- 0xd1, 0x40, 0x11, 0xf4, 0x6f, 0x12, 0xc7, 0x4f, 0x36, 0x8b, 0xb9, 0x82, 0xb9, 0xc4, 0xda, 0xca,
- 0x06, 0xa0, 0xf1, 0x52, 0x2c, 0x28, 0xa1, 0xdb, 0x30, 0xb0, 0xc9, 0x17, 0x80, 0x38, 0xad, 0x2c,
- 0x1d, 0x76, 0x70, 0x53, 0xab, 0x4a, 0x4f, 0xb7, 0x28, 0xc0, 0x92, 0x1c, 0x73, 0xd6, 0x32, 0xdc,
- 0x49, 0xf8, 0xd6, 0x2d, 0x2e, 0xf6, 0xae, 0x77, 0x5f, 0x92, 0x0f, 0xc3, 0x50, 0x44, 0xdc, 0x30,
- 0x70, 0x3d, 0x9f, 0xd4, 0xa7, 0xe5, 0xf5, 0xca, 0x41, 0x42, 0xae, 0x98, 0xf5, 0x02, 0x1b, 0x6d,
- 0xe0, 0x54, 0x8b, 0xe8, 0x33, 0x16, 0x8c, 0xa8, 0x30, 0x6c, 0x3a, 0x21, 0x44, 0x98, 0xd1, 0x17,
- 0x0b, 0x0a, 0xfa, 0x66, 0x6d, 0xce, 0xa0, 0x3b, 0xbb, 0x13, 0x23, 0xe9, 0x32, 0x9c, 0xa1, 0x8b,
- 0x5e, 0x02, 0x08, 0xd7, 0xb9, 0x47, 0xd6, 0x74, 0x22, 0x6c, 0xea, 0x07, 0xf9, 0xd4, 0x11, 0x1e,
- 0xba, 0x29, 0x5b, 0xc0, 0x46, 0x6b, 0xe8, 0x0a, 0x00, 0xdf, 0x36, 0x6b, 0x3b, 0x2d, 0x79, 0xa4,
- 0x91, 0x31, 0x73, 0xb0, 0xaa, 0x20, 0x77, 0x77, 0x27, 0x3a, 0x6d, 0x9c, 0xcc, 0xed, 0xc4, 0xa8,
- 0x8e, 0x7e, 0x0e, 0x06, 0xe2, 0x76, 0xb3, 0xe9, 0x28, 0x8b, 0x7b, 0x81, 0xc1, 0xa0, 0xbc, 0x5d,
- 0x83, 0x15, 0xf1, 0x02, 0x2c, 0x29, 0xa2, 0x9b, 0x94, 0xa9, 0xc6, 0xc2, 0xf8, 0xca, 0x76, 0x11,
- 0xd7, 0x09, 0xb8, 0xe5, 0xe9, 0x5d, 0x52, 0xc5, 0xc7, 0x39, 0x38, 0x77, 0x77, 0x27, 0x1e, 0x4a,
- 0x97, 0x2f, 0x86, 0x22, 0x3c, 0x33, 0xb7, 0x4d, 0x74, 0x59, 0x66, 0x65, 0xa2, 0x9f, 0x2d, 0x93,
- 0x85, 0x3c, 0xa9, 0xb3, 0x32, 0xb1, 0xe2, 0xee, 0x63, 0x66, 0x56, 0x46, 0x4b, 0x70, 0xd2, 0x0d,
- 0x83, 0x24, 0x0a, 0x7d, 0x9f, 0x67, 0x25, 0xe3, 0xa7, 0x4b, 0x6e, 0x91, 0x7f, 0xab, 0xe8, 0xf6,
- 0xc9, 0xd9, 0x4e, 0x14, 0x9c, 0x57, 0xcf, 0x0e, 0xd2, 0xb7, 0x63, 0x62, 0x70, 0x9e, 0x85, 0x21,
- 0x72, 0x3b, 0x21, 0x51, 0xe0, 0xf8, 0xd7, 0xf0, 0xa2, 0xb4, 0x45, 0xb3, 0x3d, 0x70, 0xc1, 0x28,
- 0xc7, 0x29, 0x2c, 0x64, 0x2b, 0x93, 0x8a, 0x11, 0x72, 0xcc, 0x4d, 0x2a, 0xd2, 0x80, 0x62, 0x7f,
- 0xb3, 0x9c, 0x52, 0xc8, 0xee, 0xcb, 0x5d, 0x1c, 0xcb, 0x6d, 0x23, 0x93, 0x00, 0x31, 0x80, 0x38,
- 0x68, 0x14, 0x49, 0x59, 0xe5, 0xb6, 0x59, 0x36, 0x09, 0xe1, 0x34, 0x5d, 0xb4, 0x05, 0x95, 0xcd,
- 0x30, 0x4e, 0xe4, 0xf1, 0xe3, 0x90, 0x27, 0x9d, 0x4b, 0x61, 0x9c, 0x30, 0x2d, 0x42, 0x7d, 0x36,
- 0x2d, 0x89, 0x31, 0xa7, 0x41, 0xcf, 0xa0, 0xf1, 0xa6, 0x13, 0xd5, 0xe3, 0x59, 0x96, 0x20, 0xa0,
- 0x8f, 0xa9, 0x0f, 0x4a, 0x59, 0x5c, 0xd5, 0x20, 0x6c, 0xe2, 0xd9, 0x7f, 0x61, 0xa5, 0x2e, 0x2c,
- 0x6e, 0x30, 0x6f, 0xef, 0x6d, 0x12, 0x50, 0x6e, 0x60, 0xfa, 0x97, 0xfd, 0x54, 0x26, 0x76, 0xf6,
- 0x6d, 0xdd, 0x72, 0xf5, 0xdd, 0xa2, 0x2d, 0x4c, 0xb2, 0x26, 0x0c, 0x57, 0xb4, 0x8f, 0x5b, 0xe9,
- 0x20, 0xe8, 0x52, 0x11, 0xe7, 0x12, 0x33, 0x11, 0xc0, 0xbe, 0xf1, 0xd4, 0xf6, 0x97, 0x2c, 0x18,
- 0x98, 0x71, 0xdc, 0xad, 0x70, 0x63, 0x03, 0x3d, 0x05, 0xd5, 0x7a, 0x3b, 0x32, 0xe3, 0xb1, 0x95,
- 0x65, 0x63, 0x4e, 0x94, 0x63, 0x85, 0x41, 0x97, 0xfe, 0x86, 0xe3, 0xca, 0x74, 0x00, 0x65, 0xbe,
- 0xf4, 0x2f, 0xb2, 0x12, 0x2c, 0x20, 0x74, 0xf8, 0x9b, 0xce, 0x6d, 0x59, 0x39, 0x7b, 0x5b, 0xb2,
- 0xa4, 0x41, 0xd8, 0xc4, 0xb3, 0xff, 0xb5, 0x05, 0xe3, 0x33, 0x4e, 0xec, 0xb9, 0xd3, 0xed, 0x64,
- 0x73, 0xc6, 0x4b, 0xd6, 0xdb, 0xee, 0x16, 0x49, 0x78, 0xda, 0x08, 0xda, 0xcb, 0x76, 0x4c, 0x77,
- 0xa0, 0x3a, 0x0e, 0xaa, 0x5e, 0x5e, 0x13, 0xe5, 0x58, 0x61, 0xa0, 0xd7, 0x60, 0xb0, 0xe5, 0xc4,
- 0xf1, 0xad, 0x30, 0xaa, 0x63, 0xb2, 0x51, 0x4c, 0x62, 0x99, 0x55, 0xe2, 0x46, 0x24, 0xc1, 0x64,
- 0x43, 0x78, 0x16, 0xe8, 0xf6, 0xb1, 0x49, 0xcc, 0xfe, 0x65, 0x0b, 0x4e, 0xcd, 0x10, 0x27, 0x22,
- 0x11, 0xcb, 0x43, 0xa3, 0x3e, 0x04, 0xbd, 0x0a, 0xd5, 0x84, 0x96, 0xd0, 0x1e, 0x59, 0xc5, 0xf6,
- 0x88, 0xf9, 0x04, 0xac, 0x89, 0xc6, 0xb1, 0x22, 0x63, 0x7f, 0xc1, 0x82, 0x33, 0x79, 0x7d, 0x99,
- 0xf5, 0xc3, 0x76, 0xfd, 0x7e, 0x74, 0xe8, 0xef, 0x58, 0x30, 0xc4, 0xee, 0x59, 0xe7, 0x48, 0xe2,
- 0x78, 0x7e, 0x47, 0x0e, 0x3c, 0xab, 0xc7, 0x1c, 0x78, 0xe7, 0xa0, 0x6f, 0x33, 0x6c, 0x92, 0xac,
- 0x8f, 0xc0, 0xa5, 0xb0, 0x49, 0x30, 0x83, 0xa0, 0x67, 0xe8, 0x22, 0xf4, 0x82, 0xc4, 0xa1, 0xdb,
- 0x51, 0xda, 0xbe, 0x47, 0xf9, 0x02, 0x54, 0xc5, 0xd8, 0xc4, 0xb1, 0xff, 0x55, 0x0d, 0x06, 0x84,
- 0x43, 0x4b, 0xcf, 0x69, 0x4c, 0xa4, 0x89, 0xa2, 0xd4, 0xd5, 0x44, 0x11, 0x43, 0xbf, 0xcb, 0x92,
- 0x71, 0x0a, 0x4d, 0xf8, 0x4a, 0x21, 0x1e, 0x50, 0x3c, 0xbf, 0xa7, 0xee, 0x16, 0xff, 0x8f, 0x05,
- 0x29, 0xf4, 0x45, 0x0b, 0x46, 0xdd, 0x30, 0x08, 0x88, 0xab, 0xd5, 0xb4, 0xbe, 0x22, 0x1c, 0x5d,
- 0x66, 0xd3, 0x8d, 0xea, 0x4b, 0xbe, 0x0c, 0x00, 0x67, 0xc9, 0xa3, 0x17, 0x60, 0x98, 0x8f, 0xd9,
- 0xf5, 0x94, 0xc1, 0x5e, 0xa7, 0x46, 0x33, 0x81, 0x38, 0x8d, 0x8b, 0x26, 0xf9, 0xc5, 0x87, 0x48,
- 0x42, 0xd6, 0xaf, 0xed, 0x9a, 0x46, 0xfa, 0x31, 0x03, 0x03, 0x45, 0x80, 0x22, 0xb2, 0x11, 0x91,
- 0x78, 0x53, 0x38, 0xfc, 0x30, 0x15, 0x71, 0xe0, 0xde, 0x12, 0x10, 0xe0, 0x8e, 0x96, 0x70, 0x4e,
- 0xeb, 0x68, 0x4b, 0x9c, 0x91, 0xab, 0x45, 0xf0, 0x73, 0x31, 0xcd, 0x5d, 0x8f, 0xca, 0x13, 0x50,
- 0x61, 0xa2, 0x8b, 0xa9, 0xa6, 0x65, 0x1e, 0xf4, 0xc6, 0x04, 0x1b, 0xe6, 0xe5, 0x68, 0x0e, 0x4e,
- 0x64, 0x12, 0xbb, 0xc5, 0xc2, 0xb0, 0xae, 0x02, 0x9c, 0x32, 0x29, 0xe1, 0x62, 0xdc, 0x51, 0xc3,
- 0xb4, 0x9f, 0x0c, 0xee, 0x63, 0x3f, 0xd9, 0x51, 0x6e, 0xa5, 0xdc, 0xe4, 0xfd, 0x62, 0x21, 0x03,
- 0xd0, 0x93, 0x0f, 0xe9, 0xe7, 0x33, 0x3e, 0xa4, 0xc3, 0xac, 0x03, 0xd7, 0x8b, 0xe9, 0xc0, 0xc1,
- 0x1d, 0x46, 0xef, 0xa7, 0x03, 0xe8, 0xff, 0xb4, 0x40, 0xce, 0xeb, 0xac, 0xe3, 0x6e, 0x12, 0xba,
- 0x64, 0xd0, 0x7b, 0x61, 0x44, 0x59, 0x01, 0xb8, 0x4a, 0x64, 0xb1, 0x55, 0xa3, 0xbc, 0x01, 0x70,
- 0x0a, 0x8a, 0x33, 0xd8, 0x68, 0x0a, 0x6a, 0x74, 0x9c, 0x78, 0x55, 0x2e, 0xf7, 0x95, 0xa5, 0x61,
- 0x7a, 0x65, 0x41, 0xd4, 0xd2, 0x38, 0x28, 0x84, 0x31, 0xdf, 0x89, 0x13, 0xd6, 0x83, 0xd5, 0x9d,
- 0xc0, 0xbd, 0xc7, 0xf4, 0x1f, 0x2c, 0x8a, 0x66, 0x31, 0xdb, 0x10, 0xee, 0x6c, 0xdb, 0xfe, 0x7a,
- 0x05, 0x86, 0x53, 0x9c, 0xf1, 0x80, 0x0a, 0xc3, 0x53, 0x50, 0x95, 0x32, 0x3c, 0x9b, 0xe7, 0x48,
- 0x09, 0x7a, 0x85, 0x41, 0x85, 0xd6, 0xba, 0x96, 0xaa, 0x59, 0x05, 0xc7, 0x10, 0xb8, 0xd8, 0xc4,
- 0x63, 0x4c, 0x39, 0xf1, 0xe3, 0x59, 0xdf, 0x23, 0x41, 0xc2, 0xbb, 0x59, 0x0c, 0x53, 0x5e, 0x5b,
- 0x5c, 0x35, 0x1b, 0xd5, 0x4c, 0x39, 0x03, 0xc0, 0x59, 0xf2, 0xe8, 0x53, 0x16, 0x0c, 0x3b, 0xb7,
- 0x62, 0x9d, 0x31, 0x5a, 0x78, 0x8b, 0x1e, 0x52, 0x48, 0xa5, 0x92, 0x50, 0x73, 0xab, 0x75, 0xaa,
- 0x08, 0xa7, 0x89, 0xa2, 0x37, 0x2c, 0x40, 0xe4, 0x36, 0x71, 0xa5, 0x3f, 0xab, 0xe8, 0x4b, 0x7f,
- 0x11, 0x87, 0xe5, 0x0b, 0x1d, 0xed, 0x72, 0xae, 0xde, 0x59, 0x8e, 0x73, 0xfa, 0x80, 0x2e, 0x03,
- 0xaa, 0x7b, 0xb1, 0xb3, 0xee, 0x93, 0xd9, 0xb0, 0x29, 0x23, 0x3f, 0xc5, 0xe5, 0xeb, 0x59, 0x31,
- 0xce, 0x68, 0xae, 0x03, 0x03, 0xe7, 0xd4, 0xb2, 0xff, 0xb2, 0xac, 0x36, 0xa7, 0x76, 0xc7, 0x76,
- 0x0c, 0xb7, 0x50, 0xeb, 0xde, 0xdd, 0x42, 0xb5, 0x5b, 0x4b, 0x67, 0x84, 0x72, 0x2a, 0xa0, 0xb1,
- 0x74, 0x9f, 0x02, 0x1a, 0x7f, 0xc1, 0x4a, 0x65, 0x07, 0x1b, 0x3c, 0xff, 0x52, 0xb1, 0xae, 0xe0,
- 0x93, 0xdc, 0xe5, 0x26, 0x23, 0x29, 0x32, 0x9e, 0x56, 0x4f, 0x41, 0x75, 0xc3, 0x77, 0x58, 0x4e,
- 0x0b, 0xb6, 0xf5, 0x0c, 0x77, 0xa0, 0x8b, 0xa2, 0x1c, 0x2b, 0x0c, 0xca, 0xc7, 0x8d, 0x46, 0x0f,
- 0xc4, 0x87, 0xff, 0x63, 0x19, 0x06, 0x0d, 0x19, 0x9e, 0xab, 0x90, 0x59, 0x0f, 0x98, 0x42, 0x56,
- 0x3a, 0x80, 0x42, 0xf6, 0xf3, 0x50, 0x73, 0xa5, 0x7c, 0x29, 0x26, 0xdb, 0x79, 0x56, 0x6a, 0x69,
- 0x11, 0xa3, 0x8a, 0xb0, 0xa6, 0x89, 0xe6, 0x53, 0x41, 0x73, 0xa9, 0x93, 0x7e, 0x5e, 0x54, 0x9b,
- 0x90, 0x51, 0x9d, 0x75, 0xb2, 0x37, 0xcf, 0x95, 0xfd, 0x6f, 0x9e, 0xed, 0xef, 0x5a, 0x6a, 0x72,
- 0x8f, 0x21, 0x3b, 0xca, 0xcd, 0x74, 0x76, 0x94, 0x0b, 0x85, 0x0c, 0x73, 0x97, 0xb4, 0x28, 0x57,
- 0x61, 0x60, 0x36, 0x6c, 0x36, 0x9d, 0xa0, 0x8e, 0x7e, 0x02, 0x06, 0x5c, 0xfe, 0x53, 0x58, 0xc5,
- 0xd8, 0xdd, 0xaa, 0x80, 0x62, 0x09, 0x43, 0x8f, 0x40, 0x9f, 0x13, 0x35, 0xa4, 0x25, 0x8c, 0xf9,
- 0x40, 0x4d, 0x47, 0x8d, 0x18, 0xb3, 0x52, 0xfb, 0x9f, 0xf5, 0x01, 0x73, 0x3d, 0x70, 0x22, 0x52,
- 0x5f, 0x0b, 0x59, 0x92, 0xd2, 0x23, 0xbd, 0x91, 0xd4, 0xc7, 0xb4, 0x07, 0xf9, 0x56, 0xd2, 0xb8,
- 0x99, 0x2a, 0x1f, 0xf3, 0xcd, 0x54, 0x97, 0xcb, 0xc6, 0xbe, 0x07, 0xe8, 0xb2, 0xd1, 0xfe, 0x9c,
- 0x05, 0x48, 0xf9, 0xab, 0x68, 0x6f, 0x80, 0x29, 0xa8, 0x29, 0xcf, 0x15, 0xa1, 0xd2, 0x69, 0x16,
- 0x21, 0x01, 0x58, 0xe3, 0xf4, 0x70, 0x36, 0x7f, 0x5c, 0xf2, 0xef, 0x72, 0xda, 0x15, 0x9c, 0x71,
- 0x7d, 0xc1, 0xce, 0xed, 0xdf, 0x2b, 0xc1, 0x43, 0x5c, 0x19, 0x58, 0x72, 0x02, 0xa7, 0x41, 0x9a,
- 0xb4, 0x57, 0xbd, 0xfa, 0x77, 0xb8, 0xf4, 0x50, 0xe8, 0x49, 0xd7, 0xee, 0xc3, 0xee, 0x5d, 0xbe,
- 0xe7, 0xf8, 0x2e, 0x5b, 0x08, 0xbc, 0x04, 0xb3, 0xc6, 0x51, 0x0c, 0x55, 0xf9, 0x14, 0x88, 0xe0,
- 0xc5, 0x05, 0x11, 0x52, 0x6c, 0x49, 0x48, 0x59, 0x82, 0x15, 0x21, 0x2a, 0x4a, 0xfd, 0xd0, 0xdd,
- 0xc2, 0xa4, 0x15, 0x66, 0x45, 0xe9, 0xa2, 0x28, 0xc7, 0x0a, 0xc3, 0x6e, 0xc2, 0xa8, 0x1c, 0xc3,
- 0xd6, 0x15, 0xb2, 0x83, 0xc9, 0x06, 0x95, 0x3f, 0xae, 0x2c, 0x32, 0x5e, 0x27, 0x51, 0xf2, 0x67,
- 0xd6, 0x04, 0xe2, 0x34, 0xae, 0xcc, 0x5b, 0x5a, 0xca, 0xcf, 0x5b, 0x6a, 0xff, 0x9e, 0x05, 0x59,
- 0x01, 0x68, 0x64, 0x69, 0xb4, 0xf6, 0xcc, 0xd2, 0x78, 0x80, 0x3c, 0x87, 0x3f, 0x0b, 0x83, 0x4e,
- 0x42, 0x35, 0x1c, 0x6e, 0x5f, 0x28, 0xdf, 0xdb, 0x15, 0xd4, 0x52, 0x58, 0xf7, 0x36, 0x3c, 0x66,
- 0x57, 0x30, 0x9b, 0xb3, 0xff, 0xba, 0x0f, 0xc6, 0x3a, 0xe2, 0xae, 0xd0, 0xf3, 0x30, 0xa4, 0x86,
- 0x42, 0x5a, 0xee, 0x6a, 0xa6, 0xb3, 0xa4, 0x86, 0xe1, 0x14, 0x66, 0x0f, 0xfb, 0x61, 0x01, 0x4e,
- 0x46, 0xe4, 0xd5, 0x36, 0x69, 0x93, 0xe9, 0x8d, 0x84, 0x44, 0xab, 0xc4, 0x0d, 0x83, 0x3a, 0xcf,
- 0x25, 0x5a, 0x9e, 0x79, 0xf8, 0xce, 0xee, 0xc4, 0x49, 0xdc, 0x09, 0xc6, 0x79, 0x75, 0x50, 0x0b,
- 0x86, 0x7d, 0x53, 0x41, 0x15, 0x27, 0x9d, 0x7b, 0xd2, 0x6d, 0xd5, 0x92, 0x48, 0x15, 0xe3, 0x34,
- 0x81, 0xb4, 0x96, 0x5b, 0xb9, 0x4f, 0x5a, 0xee, 0x27, 0xb5, 0x96, 0xcb, 0x7d, 0x25, 0x3e, 0x58,
- 0x70, 0xdc, 0x5d, 0x2f, 0x6a, 0xee, 0x61, 0x14, 0xd7, 0x17, 0xa1, 0x2a, 0xfd, 0xc8, 0x7a, 0xf2,
- 0xbf, 0x32, 0xdb, 0xe9, 0xc2, 0x40, 0x9f, 0x80, 0x1f, 0xbf, 0x10, 0x45, 0xc6, 0x60, 0x5e, 0x0d,
- 0x93, 0x69, 0xdf, 0x0f, 0x6f, 0x51, 0x9d, 0xe0, 0x5a, 0x4c, 0x84, 0x29, 0xc9, 0xbe, 0x5b, 0x82,
- 0x9c, 0x53, 0x19, 0xdd, 0x8f, 0x5a, 0x11, 0x49, 0xed, 0xc7, 0x83, 0x29, 0x23, 0xe8, 0x36, 0xf7,
- 0xb5, 0xe3, 0x22, 0xf7, 0x03, 0x45, 0x9f, 0x2a, 0xb5, 0xfb, 0x9d, 0x62, 0x47, 0xca, 0x05, 0xef,
- 0x3c, 0x80, 0xd6, 0x1f, 0x45, 0x30, 0x88, 0xba, 0xca, 0xd7, 0x6a, 0x26, 0x36, 0xb0, 0xd0, 0x73,
- 0x30, 0xe8, 0x05, 0x71, 0xe2, 0xf8, 0xfe, 0x25, 0x2f, 0x48, 0x84, 0xb5, 0x54, 0xe9, 0x16, 0x0b,
- 0x1a, 0x84, 0x4d, 0xbc, 0xb3, 0xef, 0x32, 0xe6, 0xef, 0x20, 0xf3, 0xbe, 0x09, 0x67, 0xe6, 0xbd,
- 0x44, 0x85, 0x30, 0xa9, 0xf5, 0x46, 0xd5, 0x43, 0x15, 0x92, 0x67, 0x75, 0x0d, 0xc9, 0x33, 0x42,
- 0x88, 0x4a, 0xe9, 0x88, 0xa7, 0x6c, 0x08, 0x91, 0xfd, 0x3c, 0x9c, 0x9a, 0xf7, 0x92, 0x8b, 0x9e,
- 0x4f, 0x0e, 0x48, 0xc4, 0xfe, 0xdd, 0x7e, 0x18, 0x32, 0x83, 0x71, 0x0f, 0x12, 0x55, 0xf8, 0x05,
- 0xaa, 0x01, 0x8a, 0xaf, 0xf3, 0xd4, 0x45, 0xe8, 0x8d, 0x43, 0x47, 0x06, 0xe7, 0x8f, 0x98, 0xa1,
- 0x04, 0x6a, 0x9a, 0xd8, 0xec, 0x00, 0xba, 0x05, 0x95, 0x0d, 0x16, 0xe2, 0x52, 0x2e, 0xc2, 0x5b,
- 0x24, 0x6f, 0x44, 0xf5, 0x76, 0xe4, 0x41, 0x32, 0x9c, 0x1e, 0x15, 0xdc, 0x51, 0x3a, 0x6e, 0xd2,
- 0x70, 0x65, 0x16, 0x11, 0x93, 0x0a, 0xa3, 0x9b, 0x48, 0xa8, 0xdc, 0x83, 0x48, 0x48, 0x31, 0xe8,
- 0xfe, 0xfb, 0xc4, 0xa0, 0x59, 0xb8, 0x52, 0xb2, 0xc9, 0xd4, 0x4a, 0x11, 0x7b, 0x31, 0xc0, 0x06,
- 0xc1, 0x08, 0x57, 0x4a, 0x81, 0x71, 0x16, 0x1f, 0x7d, 0x4c, 0xb1, 0xf8, 0x6a, 0x11, 0x86, 0x66,
- 0x73, 0x45, 0x1f, 0x35, 0x77, 0xff, 0x5c, 0x09, 0x46, 0xe6, 0x83, 0xf6, 0xca, 0xfc, 0x4a, 0x7b,
- 0xdd, 0xf7, 0xdc, 0x2b, 0x64, 0x87, 0xb2, 0xf0, 0x2d, 0xb2, 0xb3, 0x30, 0x27, 0x76, 0x90, 0x5a,
- 0x33, 0x57, 0x68, 0x21, 0xe6, 0x30, 0xca, 0x8c, 0x36, 0xbc, 0xa0, 0x41, 0xa2, 0x56, 0xe4, 0x09,
- 0x1b, 0xb0, 0xc1, 0x8c, 0x2e, 0x6a, 0x10, 0x36, 0xf1, 0x68, 0xdb, 0xe1, 0xad, 0x80, 0x44, 0x59,
- 0xfd, 0x7a, 0x99, 0x16, 0x62, 0x0e, 0xa3, 0x48, 0x49, 0xd4, 0x16, 0x06, 0x19, 0x03, 0x69, 0x8d,
- 0x16, 0x62, 0x0e, 0xa3, 0x3b, 0x3d, 0x6e, 0xaf, 0x33, 0x67, 0x9c, 0x4c, 0xa0, 0xc7, 0x2a, 0x2f,
- 0xc6, 0x12, 0x4e, 0x51, 0xb7, 0xc8, 0xce, 0x1c, 0x3d, 0x8c, 0x67, 0x62, 0xd7, 0xae, 0xf0, 0x62,
- 0x2c, 0xe1, 0x2c, 0xdb, 0x69, 0x7a, 0x38, 0x7e, 0xe8, 0xb2, 0x9d, 0xa6, 0xbb, 0xdf, 0xe5, 0x58,
- 0xff, 0xeb, 0x16, 0x0c, 0x99, 0x2e, 0x74, 0xa8, 0x91, 0xd1, 0x85, 0x97, 0x3b, 0x92, 0x65, 0xbf,
- 0x27, 0xef, 0x21, 0xc9, 0x86, 0x97, 0x84, 0xad, 0xf8, 0x69, 0x12, 0x34, 0xbc, 0x80, 0x30, 0x17,
- 0x07, 0xee, 0x7a, 0x97, 0xf2, 0xcf, 0x9b, 0x0d, 0xeb, 0xe4, 0x1e, 0x94, 0x69, 0xfb, 0x06, 0x8c,
- 0x75, 0x04, 0x2c, 0xf6, 0xa0, 0x82, 0xec, 0x1b, 0x2e, 0x6e, 0x63, 0x18, 0xa4, 0x0d, 0xcb, 0x8c,
- 0x5b, 0xb3, 0x30, 0xc6, 0x37, 0x12, 0xa5, 0xb4, 0xea, 0x6e, 0x92, 0xa6, 0x0a, 0x42, 0x65, 0x17,
- 0x0e, 0xd7, 0xb3, 0x40, 0xdc, 0x89, 0x6f, 0x7f, 0xde, 0x82, 0xe1, 0x54, 0x0c, 0x69, 0x41, 0xca,
- 0x12, 0xdb, 0x69, 0x21, 0xf3, 0xe8, 0x64, 0x6e, 0xed, 0x65, 0x26, 0x4c, 0xf5, 0x4e, 0xd3, 0x20,
- 0x6c, 0xe2, 0xd9, 0x5f, 0x2a, 0x41, 0x55, 0x7a, 0xc5, 0xf4, 0xd0, 0x95, 0xcf, 0x5a, 0x30, 0xac,
- 0x2e, 0x79, 0x98, 0x0d, 0xaf, 0x54, 0x44, 0x90, 0x0c, 0xed, 0x81, 0xb2, 0x02, 0x04, 0x1b, 0xa1,
- 0xd6, 0xdc, 0xb1, 0x49, 0x0c, 0xa7, 0x69, 0xa3, 0xeb, 0x00, 0xf1, 0x4e, 0x9c, 0x90, 0xa6, 0x61,
- 0x4d, 0xb4, 0x8d, 0x1d, 0x37, 0xe9, 0x86, 0x11, 0xa1, 0xfb, 0xeb, 0x6a, 0x58, 0x27, 0xab, 0x0a,
- 0x53, 0xab, 0x50, 0xba, 0x0c, 0x1b, 0x2d, 0xd9, 0xff, 0xa4, 0x04, 0x27, 0xb2, 0x5d, 0x42, 0x1f,
- 0x84, 0x21, 0x49, 0xdd, 0x38, 0x75, 0x4a, 0x9f, 0x9e, 0x21, 0x6c, 0xc0, 0xee, 0xee, 0x4e, 0x4c,
- 0x74, 0x3e, 0x4a, 0x3a, 0x69, 0xa2, 0xe0, 0x54, 0x63, 0xfc, 0xa6, 0x4d, 0x5c, 0x09, 0xcf, 0xec,
- 0x4c, 0xb7, 0x5a, 0xe2, 0xba, 0xcc, 0xb8, 0x69, 0x33, 0xa1, 0x38, 0x83, 0x8d, 0x56, 0xe0, 0x94,
- 0x51, 0x72, 0x95, 0x78, 0x8d, 0xcd, 0xf5, 0x30, 0x92, 0x27, 0xb0, 0x47, 0xb4, 0xb3, 0x5e, 0x27,
- 0x0e, 0xce, 0xad, 0x49, 0xa5, 0xbd, 0xeb, 0xb4, 0x1c, 0xd7, 0x4b, 0x76, 0x84, 0x79, 0x54, 0xf1,
- 0xa6, 0x59, 0x51, 0x8e, 0x15, 0x86, 0xbd, 0x04, 0x7d, 0x3d, 0xae, 0xa0, 0x9e, 0x34, 0xff, 0x17,
- 0xa1, 0x4a, 0x9b, 0x93, 0xea, 0x5d, 0x11, 0x4d, 0x86, 0x50, 0x95, 0x4f, 0x3c, 0x21, 0x1b, 0xca,
- 0x9e, 0x23, 0x2f, 0x33, 0xd5, 0x67, 0x2d, 0xc4, 0x71, 0x9b, 0x1d, 0xa6, 0x29, 0x10, 0x3d, 0x0e,
- 0x65, 0x72, 0xbb, 0x95, 0xbd, 0xb5, 0xbc, 0x70, 0xbb, 0xe5, 0x45, 0x24, 0xa6, 0x48, 0xe4, 0x76,
- 0x0b, 0x9d, 0x85, 0x92, 0x57, 0x17, 0x42, 0x0a, 0x04, 0x4e, 0x69, 0x61, 0x0e, 0x97, 0xbc, 0xba,
- 0x7d, 0x1b, 0x6a, 0xea, 0x4d, 0x29, 0xb4, 0x25, 0x79, 0xb7, 0x55, 0x84, 0x1b, 0x9b, 0x6c, 0xb7,
- 0x0b, 0xd7, 0x6e, 0x03, 0xe8, 0x00, 0xd4, 0xa2, 0xf8, 0xcb, 0x39, 0xe8, 0x73, 0x43, 0x11, 0xe8,
- 0x5f, 0xd5, 0xcd, 0x30, 0xa6, 0xcd, 0x20, 0xf6, 0x0d, 0x18, 0xb9, 0x12, 0x84, 0xb7, 0xd8, 0xd3,
- 0x0f, 0x2c, 0xd3, 0x21, 0x6d, 0x78, 0x83, 0xfe, 0xc8, 0xaa, 0x08, 0x0c, 0x8a, 0x39, 0x4c, 0xe5,
- 0x60, 0x2b, 0x75, 0xcb, 0xc1, 0x66, 0x7f, 0xdc, 0x82, 0x21, 0x15, 0xc9, 0x36, 0xbf, 0xbd, 0x45,
- 0xdb, 0x6d, 0x44, 0x61, 0xbb, 0x95, 0x6d, 0x97, 0x3d, 0x5f, 0x87, 0x39, 0xcc, 0x0c, 0xf1, 0x2c,
- 0xed, 0x13, 0xe2, 0x79, 0x0e, 0xfa, 0xb6, 0xbc, 0xa0, 0x9e, 0x7d, 0xc6, 0xe8, 0x8a, 0x17, 0xd4,
- 0x31, 0x83, 0xd0, 0x2e, 0x9c, 0x50, 0x5d, 0x90, 0x02, 0xe1, 0x79, 0x18, 0x5a, 0x6f, 0x7b, 0x7e,
- 0x5d, 0xa6, 0x70, 0xcc, 0x58, 0x54, 0x66, 0x0c, 0x18, 0x4e, 0x61, 0xd2, 0x73, 0xdd, 0xba, 0x17,
- 0x38, 0xd1, 0xce, 0x8a, 0x96, 0x40, 0x8a, 0x29, 0xcd, 0x28, 0x08, 0x36, 0xb0, 0xec, 0xd7, 0xcb,
- 0x30, 0x92, 0x8e, 0xe7, 0xeb, 0xe1, 0x78, 0xf5, 0x38, 0x54, 0x58, 0x88, 0x5f, 0x76, 0x6a, 0x79,
- 0xd6, 0x43, 0x0e, 0x43, 0x31, 0xf4, 0xf3, 0x44, 0x27, 0xc5, 0x3c, 0x01, 0xa6, 0x3a, 0xa9, 0xec,
- 0x30, 0xcc, 0xd9, 0x4f, 0xe4, 0x56, 0x11, 0xa4, 0xd0, 0xa7, 0x2c, 0x18, 0x08, 0x5b, 0x66, 0xee,
- 0xae, 0x0f, 0x14, 0x19, 0xeb, 0x28, 0x02, 0xa0, 0x84, 0x46, 0xac, 0xa6, 0x5e, 0x4e, 0x87, 0x24,
- 0x7d, 0xf6, 0xdd, 0x30, 0x64, 0x62, 0xee, 0xa7, 0x14, 0x57, 0x4d, 0xa5, 0xf8, 0xb3, 0xe6, 0xa2,
- 0x10, 0xd1, 0x9c, 0x3d, 0x6c, 0xb7, 0x6b, 0x50, 0x71, 0x95, 0x47, 0xc4, 0x3d, 0x25, 0xfe, 0x55,
- 0x99, 0x47, 0xd8, 0xdd, 0x14, 0x6f, 0xcd, 0xfe, 0xae, 0x65, 0xac, 0x0f, 0x4c, 0xe2, 0x85, 0x3a,
- 0x8a, 0xa0, 0xdc, 0xd8, 0xde, 0x12, 0xaa, 0xe8, 0xe5, 0x82, 0x86, 0x77, 0x7e, 0x7b, 0x4b, 0xaf,
- 0x71, 0xb3, 0x14, 0x53, 0x62, 0x3d, 0x18, 0x0b, 0x53, 0x41, 0xbf, 0xe5, 0xfd, 0x83, 0x7e, 0xed,
- 0x37, 0x4a, 0x30, 0xd6, 0xb1, 0xa8, 0xd0, 0x6b, 0x50, 0x89, 0xe8, 0x57, 0x8a, 0xcf, 0x5b, 0x2c,
- 0x2c, 0x4c, 0x37, 0x5e, 0xa8, 0x6b, 0xb9, 0x9b, 0x2e, 0xc7, 0x9c, 0x24, 0xba, 0x0c, 0x48, 0xfb,
- 0xed, 0x28, 0x4b, 0x25, 0xff, 0x64, 0x75, 0xb9, 0x3f, 0xdd, 0x81, 0x81, 0x73, 0x6a, 0xa1, 0x17,
- 0xb2, 0x06, 0xcf, 0x72, 0xda, 0x9c, 0xbd, 0x97, 0xed, 0xd2, 0xfe, 0xed, 0x12, 0x0c, 0xa7, 0x52,
- 0xa9, 0x21, 0x1f, 0xaa, 0xc4, 0x67, 0x77, 0x0d, 0x52, 0xd8, 0x1c, 0x36, 0x31, 0xba, 0x12, 0x90,
- 0x17, 0x44, 0xbb, 0x58, 0x51, 0x78, 0x30, 0x3c, 0x04, 0x9e, 0x87, 0x21, 0xd9, 0xa1, 0x0f, 0x38,
- 0x4d, 0x5f, 0x0c, 0xa0, 0x5a, 0xa3, 0x17, 0x0c, 0x18, 0x4e, 0x61, 0xda, 0xbf, 0x5f, 0x86, 0x71,
- 0x7e, 0x39, 0x53, 0x57, 0x2b, 0x6f, 0x49, 0x9e, 0xb7, 0xfe, 0x86, 0x4e, 0x78, 0x68, 0x15, 0xf1,
- 0xfa, 0x67, 0x37, 0x42, 0x3d, 0xb9, 0xaa, 0x7d, 0x35, 0xe3, 0xaa, 0xc6, 0xd5, 0xee, 0xc6, 0x11,
- 0xf5, 0xe8, 0x87, 0xcb, 0x77, 0xed, 0x1f, 0x96, 0x60, 0x34, 0xf3, 0xc8, 0x0b, 0x7a, 0x3d, 0x9d,
- 0x17, 0xdc, 0x2a, 0xc2, 0xa6, 0xbe, 0xe7, 0xbb, 0x1f, 0x07, 0xcb, 0x0e, 0x7e, 0x9f, 0xb6, 0x8a,
- 0xfd, 0x9d, 0x12, 0x8c, 0xa4, 0x5f, 0xa7, 0x79, 0x00, 0x47, 0xea, 0x1d, 0x50, 0x63, 0x0f, 0x30,
- 0xb0, 0x47, 0x95, 0xb9, 0x49, 0x9e, 0xe7, 0xba, 0x97, 0x85, 0x58, 0xc3, 0x1f, 0x88, 0xa4, 0xeb,
- 0xf6, 0x3f, 0xb6, 0xe0, 0x34, 0xff, 0xca, 0xec, 0x3a, 0xfc, 0x9b, 0x79, 0xa3, 0xfb, 0x72, 0xb1,
- 0x1d, 0xcc, 0x24, 0xea, 0xdc, 0x6f, 0x7c, 0xd9, 0x1b, 0xa8, 0xa2, 0xb7, 0xe9, 0xa5, 0xf0, 0x00,
- 0x76, 0xf6, 0x40, 0x8b, 0xc1, 0xfe, 0x4e, 0x19, 0xf4, 0xb3, 0xaf, 0xc8, 0x13, 0x71, 0xab, 0x85,
- 0x24, 0x2c, 0x5d, 0xdd, 0x09, 0x5c, 0xfd, 0xc0, 0x6c, 0x35, 0x13, 0xb6, 0xfa, 0x4b, 0x16, 0x0c,
- 0x7a, 0x81, 0x97, 0x78, 0x0e, 0x3b, 0x46, 0x17, 0xf3, 0x76, 0xa3, 0x22, 0xb7, 0xc0, 0x5b, 0x0e,
- 0x23, 0xf3, 0x1e, 0x47, 0x11, 0xc3, 0x26, 0x65, 0xf4, 0x61, 0xe1, 0x4d, 0x5e, 0x2e, 0x2c, 0xe2,
- 0xba, 0x9a, 0x71, 0x21, 0x6f, 0x51, 0xc5, 0x2b, 0x89, 0x0a, 0x4a, 0x54, 0x80, 0x69, 0x53, 0x2a,
- 0xf7, 0xb5, 0x52, 0x6d, 0x59, 0x31, 0xe6, 0x84, 0xec, 0x18, 0x50, 0xe7, 0x58, 0x1c, 0xd0, 0x53,
- 0x77, 0x0a, 0x6a, 0x4e, 0x3b, 0x09, 0x9b, 0x74, 0x98, 0xc4, 0x55, 0x93, 0xf6, 0x45, 0x96, 0x00,
- 0xac, 0x71, 0xec, 0xd7, 0x2b, 0x90, 0x09, 0x24, 0x45, 0xb7, 0xcd, 0x27, 0x8b, 0xad, 0x62, 0x9f,
- 0x2c, 0x56, 0x9d, 0xc9, 0x7b, 0xb6, 0x18, 0x35, 0xa0, 0xd2, 0xda, 0x74, 0x62, 0xa9, 0x56, 0xbf,
- 0xa8, 0xce, 0x71, 0xb4, 0xf0, 0xee, 0xee, 0xc4, 0xcf, 0xf4, 0x66, 0x75, 0xa5, 0x6b, 0x75, 0x8a,
- 0x27, 0xbf, 0xd1, 0xa4, 0x59, 0x1b, 0x98, 0xb7, 0x7f, 0x90, 0xd7, 0x2b, 0x3f, 0x21, 0x5e, 0x9a,
- 0xc0, 0x24, 0x6e, 0xfb, 0x89, 0x58, 0x0d, 0x2f, 0x16, 0xb8, 0xcb, 0x78, 0xc3, 0x3a, 0x05, 0x02,
- 0xff, 0x8f, 0x0d, 0xa2, 0xe8, 0x83, 0x50, 0x8b, 0x13, 0x27, 0x4a, 0xee, 0x31, 0x68, 0x59, 0x27,
- 0x29, 0x93, 0x8d, 0x60, 0xdd, 0x1e, 0x7a, 0x89, 0xe5, 0x6f, 0xf6, 0xe2, 0xcd, 0x7b, 0x0c, 0x02,
- 0x91, 0xb9, 0x9e, 0x45, 0x0b, 0xd8, 0x68, 0x0d, 0x9d, 0x07, 0x60, 0x6b, 0x9b, 0xfb, 0x1f, 0x56,
- 0x99, 0x95, 0x49, 0xb1, 0x42, 0xac, 0x20, 0xd8, 0xc0, 0xb2, 0x7f, 0x12, 0xd2, 0x39, 0x3c, 0xd0,
- 0x84, 0x4c, 0x19, 0xc2, 0xad, 0xd0, 0x2c, 0x98, 0x23, 0x95, 0xdd, 0xe3, 0x37, 0x2d, 0x30, 0x13,
- 0x8d, 0xa0, 0x57, 0x79, 0x46, 0x13, 0xab, 0x88, 0x9b, 0x43, 0xa3, 0xdd, 0xc9, 0x25, 0xa7, 0x95,
- 0xb9, 0xc2, 0x96, 0x69, 0x4d, 0xce, 0xbe, 0x0b, 0xaa, 0x12, 0x7a, 0x20, 0xa5, 0xee, 0x63, 0x70,
- 0x52, 0x06, 0x86, 0x4a, 0xbb, 0xa9, 0xb8, 0x75, 0xda, 0xdf, 0xf4, 0x23, 0xed, 0x39, 0xa5, 0x6e,
- 0xf6, 0x9c, 0x1e, 0x1e, 0xae, 0xfe, 0x2d, 0x0b, 0xce, 0x65, 0x3b, 0x10, 0x2f, 0x85, 0x81, 0x97,
- 0x84, 0xd1, 0x2a, 0x49, 0x12, 0x2f, 0x68, 0xb0, 0x44, 0x6e, 0xb7, 0x9c, 0x48, 0x26, 0xd6, 0x67,
- 0x8c, 0xf2, 0x86, 0x13, 0x05, 0x98, 0x95, 0xa2, 0x1d, 0xe8, 0xe7, 0x4e, 0x6a, 0x42, 0x5b, 0x3f,
- 0xe4, 0xde, 0xc8, 0x19, 0x0e, 0x7d, 0x5c, 0xe0, 0x0e, 0x72, 0x58, 0x10, 0xb4, 0xbf, 0x6f, 0x01,
- 0x5a, 0xde, 0x26, 0x51, 0xe4, 0xd5, 0x0d, 0xb7, 0x3a, 0xf6, 0x62, 0x93, 0xf1, 0x32, 0x93, 0x19,
- 0xb6, 0x9c, 0x79, 0xb1, 0xc9, 0xf8, 0x97, 0xff, 0x62, 0x53, 0xe9, 0x60, 0x2f, 0x36, 0xa1, 0x65,
- 0x38, 0xdd, 0xe4, 0xc7, 0x0d, 0xfe, 0x0a, 0x0a, 0x3f, 0x7b, 0xa8, 0x08, 0xbb, 0x33, 0x77, 0x76,
- 0x27, 0x4e, 0x2f, 0xe5, 0x21, 0xe0, 0xfc, 0x7a, 0xf6, 0xbb, 0x00, 0x71, 0x6f, 0xba, 0xd9, 0x3c,
- 0x5f, 0xa5, 0xae, 0xe6, 0x17, 0xfb, 0x2b, 0x15, 0x18, 0xcd, 0xa4, 0x5d, 0xa6, 0x47, 0xbd, 0x4e,
- 0xe7, 0xa8, 0x43, 0xcb, 0xef, 0xce, 0xee, 0xf5, 0xe4, 0x6e, 0x15, 0x40, 0xc5, 0x0b, 0x5a, 0xed,
- 0xa4, 0x98, 0x00, 0x5f, 0xde, 0x89, 0x05, 0xda, 0xa0, 0x61, 0x2e, 0xa6, 0x7f, 0x31, 0x27, 0x53,
- 0xa4, 0xf3, 0x56, 0x4a, 0x19, 0xef, 0xbb, 0x4f, 0xe6, 0x80, 0x4f, 0x68, 0x57, 0xaa, 0x4a, 0x11,
- 0x86, 0xc5, 0xcc, 0x62, 0x39, 0xea, 0xab, 0xf6, 0x6f, 0x96, 0x60, 0xd0, 0x98, 0x34, 0xf4, 0x6b,
- 0xe9, 0x34, 0x5c, 0x56, 0x71, 0x9f, 0xc4, 0xda, 0x9f, 0xd4, 0x89, 0xb6, 0xf8, 0x27, 0x3d, 0xd1,
- 0x99, 0x81, 0xeb, 0xee, 0xee, 0xc4, 0x89, 0x4c, 0x8e, 0xad, 0x54, 0x56, 0xae, 0xb3, 0x1f, 0x85,
- 0xd1, 0x4c, 0x33, 0x39, 0x9f, 0xbc, 0x66, 0x7e, 0xf2, 0xa1, 0xcd, 0x52, 0xe6, 0x90, 0x7d, 0x83,
- 0x0e, 0x99, 0x88, 0x2b, 0x0c, 0x7d, 0xd2, 0x83, 0x0d, 0x36, 0x13, 0x3e, 0x5c, 0xea, 0x31, 0x7c,
- 0xf8, 0x49, 0xa8, 0xb6, 0x42, 0xdf, 0x73, 0x3d, 0x95, 0x15, 0x93, 0x05, 0x2c, 0xaf, 0x88, 0x32,
- 0xac, 0xa0, 0xe8, 0x16, 0xd4, 0x6e, 0xde, 0x4a, 0xf8, 0xed, 0x8f, 0xb0, 0x6f, 0x17, 0x75, 0xe9,
- 0xa3, 0x94, 0x16, 0x75, 0xbd, 0x84, 0x35, 0x2d, 0x64, 0x43, 0x3f, 0x13, 0x82, 0x32, 0x22, 0x81,
- 0xd9, 0xde, 0x99, 0x74, 0x8c, 0xb1, 0x80, 0xd8, 0x5f, 0xaf, 0xc1, 0xa9, 0xbc, 0xdc, 0xf7, 0xe8,
- 0x23, 0xd0, 0xcf, 0xfb, 0x58, 0xcc, 0xf3, 0x2a, 0x79, 0x34, 0xe6, 0x59, 0x83, 0xa2, 0x5b, 0xec,
- 0x37, 0x16, 0x34, 0x05, 0x75, 0xdf, 0x59, 0x17, 0x2b, 0xe4, 0x68, 0xa8, 0x2f, 0x3a, 0x9a, 0xfa,
- 0xa2, 0xc3, 0xa9, 0xfb, 0xce, 0x3a, 0xba, 0x0d, 0x95, 0x86, 0x97, 0x10, 0x47, 0x18, 0x11, 0x6e,
- 0x1c, 0x09, 0x71, 0xe2, 0x70, 0x2d, 0x8d, 0xfd, 0xc4, 0x9c, 0x20, 0xfa, 0x9a, 0x05, 0xa3, 0xeb,
- 0xe9, 0xbc, 0x05, 0x82, 0x79, 0x3a, 0x47, 0xf0, 0xbe, 0x41, 0x9a, 0x10, 0x7f, 0xb2, 0x2c, 0x53,
- 0x88, 0xb3, 0xdd, 0x41, 0x9f, 0xb4, 0x60, 0x60, 0xc3, 0xf3, 0x8d, 0x14, 0xd3, 0x47, 0x30, 0x39,
- 0x17, 0x19, 0x01, 0x7d, 0xe2, 0xe0, 0xff, 0x63, 0x2c, 0x29, 0x77, 0x93, 0x54, 0xfd, 0x87, 0x95,
- 0x54, 0x03, 0xf7, 0x49, 0x52, 0x7d, 0xc6, 0x82, 0x9a, 0x1a, 0x69, 0x11, 0xff, 0xfd, 0xc1, 0x23,
- 0x9c, 0x72, 0x6e, 0x39, 0x51, 0x7f, 0xb1, 0x26, 0x8e, 0xbe, 0x68, 0xc1, 0xa0, 0xf3, 0x5a, 0x3b,
- 0x22, 0x75, 0xb2, 0x1d, 0xb6, 0x62, 0xf1, 0xde, 0xe9, 0xcb, 0xc5, 0x77, 0x66, 0x9a, 0x12, 0x99,
- 0x23, 0xdb, 0xcb, 0xad, 0x58, 0x44, 0x4b, 0xe9, 0x02, 0x6c, 0x76, 0xc1, 0xde, 0x2d, 0xc1, 0xc4,
- 0x3e, 0x2d, 0xa0, 0xe7, 0x61, 0x28, 0x8c, 0x1a, 0x4e, 0xe0, 0xbd, 0x66, 0x26, 0x22, 0x51, 0x5a,
- 0xd6, 0xb2, 0x01, 0xc3, 0x29, 0x4c, 0x33, 0x42, 0xbd, 0xb4, 0x4f, 0x84, 0xfa, 0x39, 0xe8, 0x8b,
- 0x48, 0x2b, 0xcc, 0x1e, 0x16, 0x58, 0xa4, 0x02, 0x83, 0xa0, 0x47, 0xa1, 0xec, 0xb4, 0x3c, 0xe1,
- 0x88, 0xa6, 0xce, 0x40, 0xd3, 0x2b, 0x0b, 0x98, 0x96, 0xa7, 0x12, 0x66, 0x54, 0x8e, 0x25, 0x61,
- 0x06, 0x15, 0x03, 0xe2, 0xee, 0xa2, 0x5f, 0x8b, 0x81, 0xf4, 0x9d, 0x82, 0xfd, 0x46, 0x19, 0x1e,
- 0xdd, 0x73, 0xbd, 0x68, 0x3f, 0x3c, 0x6b, 0x0f, 0x3f, 0x3c, 0x39, 0x3c, 0xa5, 0xfd, 0x86, 0xa7,
- 0xdc, 0x65, 0x78, 0x3e, 0x49, 0xb7, 0x81, 0x4c, 0xe0, 0x52, 0xcc, 0x8b, 0x95, 0xdd, 0xf2, 0xc1,
- 0x88, 0x1d, 0x20, 0xa1, 0x58, 0xd3, 0xa5, 0x67, 0x80, 0x54, 0x74, 0x76, 0xa5, 0x08, 0x31, 0xd0,
- 0x35, 0x89, 0x0a, 0x5f, 0xfb, 0xdd, 0x42, 0xbe, 0xed, 0xdf, 0xe9, 0x83, 0xc7, 0x7b, 0xe0, 0xde,
- 0xe6, 0x2a, 0xb6, 0x7a, 0x5c, 0xc5, 0x3f, 0xe4, 0xd3, 0xf4, 0xe9, 0xdc, 0x69, 0xc2, 0xc5, 0x4f,
- 0xd3, 0xde, 0x33, 0x84, 0x9e, 0x82, 0xaa, 0x17, 0xc4, 0xc4, 0x6d, 0x47, 0xdc, 0x27, 0xd9, 0x08,
- 0x63, 0x5a, 0x10, 0xe5, 0x58, 0x61, 0xd0, 0x33, 0x9d, 0xeb, 0xd0, 0xed, 0x3f, 0x50, 0x50, 0xec,
- 0xae, 0x19, 0x11, 0xc5, 0x55, 0x8a, 0xd9, 0x69, 0xca, 0x01, 0x38, 0x19, 0xfb, 0x6f, 0x59, 0x70,
- 0xb6, 0xbb, 0x88, 0x45, 0xcf, 0xc0, 0xe0, 0x7a, 0xe4, 0x04, 0xee, 0x26, 0x7b, 0xab, 0x58, 0x2e,
- 0x1d, 0xf6, 0xbd, 0xba, 0x18, 0x9b, 0x38, 0x68, 0x16, 0xc6, 0xb8, 0xe7, 0x86, 0x81, 0x21, 0x23,
- 0x7f, 0xef, 0xec, 0x4e, 0x8c, 0xad, 0x65, 0x81, 0xb8, 0x13, 0xdf, 0xfe, 0x41, 0x39, 0xbf, 0x5b,
- 0x5c, 0x15, 0x3b, 0xc8, 0x6a, 0x16, 0x6b, 0xb5, 0xd4, 0x03, 0xc7, 0x2d, 0x1f, 0x37, 0xc7, 0xed,
- 0xeb, 0xc6, 0x71, 0xd1, 0x1c, 0x9c, 0x30, 0x1e, 0x93, 0xe2, 0xd1, 0xdc, 0xdc, 0x2d, 0x59, 0x25,
- 0x57, 0x59, 0xc9, 0xc0, 0x71, 0x47, 0x8d, 0x07, 0x7c, 0xe9, 0xfd, 0x7a, 0x09, 0xce, 0x74, 0xd5,
- 0x7e, 0x8f, 0x49, 0xa2, 0x98, 0xd3, 0xdf, 0x77, 0x3c, 0xd3, 0x6f, 0x4e, 0x4a, 0x65, 0xbf, 0x49,
- 0xb1, 0xff, 0xa4, 0xd4, 0x75, 0x23, 0xd0, 0x93, 0xd0, 0x8f, 0xec, 0x28, 0xbd, 0x00, 0xc3, 0x4e,
- 0xab, 0xc5, 0xf1, 0x98, 0x17, 0x6d, 0x26, 0x99, 0xd3, 0xb4, 0x09, 0xc4, 0x69, 0xdc, 0x9e, 0x74,
- 0x9a, 0x3f, 0xb5, 0xa0, 0x86, 0xc9, 0x06, 0xe7, 0x46, 0xe8, 0xa6, 0x18, 0x22, 0xab, 0x88, 0xcc,
- 0xb5, 0x74, 0x60, 0x63, 0x8f, 0x65, 0x74, 0xcd, 0x1b, 0xec, 0xce, 0xc7, 0xc5, 0x4a, 0x07, 0x7a,
- 0x5c, 0x4c, 0x3d, 0x2f, 0x55, 0xee, 0xfe, 0xbc, 0x94, 0xfd, 0xbd, 0x01, 0xfa, 0x79, 0xad, 0x70,
- 0x36, 0x22, 0xf5, 0x98, 0xce, 0x6f, 0x3b, 0xf2, 0xc5, 0x22, 0x51, 0xf3, 0x7b, 0x0d, 0x2f, 0x62,
- 0x5a, 0x9e, 0xba, 0x20, 0x2b, 0x1d, 0x28, 0x95, 0x4d, 0x79, 0xdf, 0x54, 0x36, 0x2f, 0xc0, 0x70,
- 0x1c, 0x6f, 0xae, 0x44, 0xde, 0xb6, 0x93, 0x90, 0x2b, 0x64, 0x47, 0xe8, 0xbe, 0x3a, 0x09, 0xc4,
- 0xea, 0x25, 0x0d, 0xc4, 0x69, 0x5c, 0x34, 0x0f, 0x63, 0x3a, 0xa1, 0x0c, 0x89, 0x12, 0x16, 0x73,
- 0xc1, 0x57, 0x82, 0x8a, 0xf8, 0xd6, 0x29, 0x68, 0x04, 0x02, 0xee, 0xac, 0x43, 0xf9, 0x69, 0xaa,
- 0x90, 0x76, 0xa4, 0x3f, 0xcd, 0x4f, 0x53, 0xed, 0xd0, 0xbe, 0x74, 0xd4, 0x40, 0x4b, 0x70, 0x92,
- 0x2f, 0x8c, 0xe9, 0x56, 0xcb, 0xf8, 0xa2, 0x81, 0x74, 0xc6, 0xd0, 0xf9, 0x4e, 0x14, 0x9c, 0x57,
- 0x0f, 0x3d, 0x07, 0x83, 0xaa, 0x78, 0x61, 0x4e, 0xdc, 0xed, 0x28, 0xdb, 0x92, 0x6a, 0x66, 0xa1,
- 0x8e, 0x4d, 0x3c, 0xf4, 0x01, 0x78, 0x58, 0xff, 0xe5, 0x81, 0x79, 0xfc, 0xc2, 0x73, 0x4e, 0xe4,
- 0xea, 0x52, 0x8f, 0x19, 0xcd, 0xe7, 0xa2, 0xd5, 0x71, 0xb7, 0xfa, 0x68, 0x1d, 0xce, 0x2a, 0xd0,
- 0x85, 0x20, 0x61, 0x51, 0x36, 0x31, 0x99, 0x71, 0x62, 0x72, 0x2d, 0xf2, 0xc5, 0xa3, 0xd8, 0xea,
- 0xbd, 0xdb, 0x79, 0x2f, 0xb9, 0x94, 0x87, 0x89, 0x17, 0xf1, 0x1e, 0xad, 0xa0, 0x29, 0xa8, 0x91,
- 0xc0, 0x59, 0xf7, 0xc9, 0xf2, 0xec, 0x02, 0xcb, 0xf9, 0x65, 0xdc, 0xaf, 0x5e, 0x90, 0x00, 0xac,
- 0x71, 0x94, 0xdf, 0xef, 0x50, 0xd7, 0xb7, 0x97, 0x57, 0xe0, 0x54, 0xc3, 0x6d, 0x51, 0x8d, 0xd0,
- 0x73, 0xc9, 0xb4, 0xcb, 0xdc, 0x1c, 0xe9, 0xc4, 0xf0, 0x54, 0xae, 0xca, 0xa9, 0x7d, 0x7e, 0x76,
- 0xa5, 0x03, 0x07, 0xe7, 0xd6, 0x64, 0xee, 0xb0, 0x51, 0x78, 0x7b, 0x67, 0xfc, 0x64, 0xc6, 0x1d,
- 0x96, 0x16, 0x62, 0x0e, 0x43, 0x97, 0x01, 0xb1, 0x08, 0x89, 0x4b, 0x49, 0xd2, 0x52, 0x2a, 0xe8,
- 0xf8, 0xa9, 0x74, 0xe6, 0x9e, 0x8b, 0x1d, 0x18, 0x38, 0xa7, 0x16, 0xd5, 0x68, 0x82, 0x90, 0xb5,
- 0x3e, 0xfe, 0x70, 0x5a, 0xa3, 0xb9, 0xca, 0x8b, 0xb1, 0x84, 0xdb, 0xff, 0xc9, 0x82, 0x61, 0xb5,
- 0xb5, 0x8f, 0x21, 0x9c, 0xc8, 0x4f, 0x87, 0x13, 0xcd, 0x1f, 0x9e, 0x39, 0xb2, 0x9e, 0x77, 0xf1,
- 0x49, 0xff, 0xe6, 0x20, 0x80, 0x66, 0xa0, 0x4a, 0x76, 0x59, 0x5d, 0x65, 0xd7, 0x03, 0xcb, 0xbc,
- 0xf2, 0x32, 0xf2, 0x54, 0xee, 0x6f, 0x46, 0x9e, 0x55, 0x38, 0x2d, 0x35, 0x0b, 0x7e, 0xd9, 0x77,
- 0x29, 0x8c, 0x15, 0x2f, 0xac, 0xce, 0x3c, 0x2a, 0x1a, 0x3a, 0xbd, 0x90, 0x87, 0x84, 0xf3, 0xeb,
- 0xa6, 0x14, 0x9a, 0x81, 0x7d, 0xb5, 0x4c, 0xb5, 0xfd, 0x17, 0x37, 0xe4, 0xa3, 0x40, 0x99, 0xed,
- 0xbf, 0x78, 0x71, 0x15, 0x6b, 0x9c, 0x7c, 0x19, 0x50, 0x2b, 0x48, 0x06, 0xc0, 0x81, 0x65, 0x80,
- 0xe4, 0x46, 0x83, 0x5d, 0xb9, 0x91, 0xbc, 0x54, 0x18, 0xea, 0x7a, 0xa9, 0xf0, 0x5e, 0x18, 0xf1,
- 0x82, 0x4d, 0x12, 0x79, 0x09, 0xa9, 0xb3, 0xbd, 0xc0, 0x38, 0x55, 0x55, 0x6b, 0x00, 0x0b, 0x29,
- 0x28, 0xce, 0x60, 0xa7, 0x59, 0xe8, 0x48, 0x0f, 0x2c, 0xb4, 0x8b, 0xe0, 0x1a, 0x2d, 0x46, 0x70,
- 0x9d, 0x38, 0xbc, 0xe0, 0x1a, 0x3b, 0x52, 0xc1, 0x85, 0x0a, 0x11, 0x5c, 0x3d, 0xc9, 0x04, 0xe3,
- 0x64, 0x7a, 0x6a, 0x9f, 0x93, 0x69, 0x37, 0xa9, 0x75, 0xfa, 0x9e, 0xa5, 0x56, 0xbe, 0x40, 0x7a,
- 0xe8, 0xa8, 0x05, 0xd2, 0x67, 0x4a, 0x70, 0x5a, 0xb3, 0x6c, 0xba, 0x51, 0xbc, 0x0d, 0xca, 0xb4,
- 0xd8, 0x13, 0x74, 0xfc, 0x8e, 0xce, 0x08, 0x84, 0xd3, 0x31, 0x75, 0x0a, 0x82, 0x0d, 0x2c, 0x16,
- 0x4f, 0x46, 0x22, 0x96, 0xcf, 0x3a, 0xcb, 0xcf, 0x67, 0x45, 0x39, 0x56, 0x18, 0x74, 0x29, 0xd2,
- 0xdf, 0x22, 0x46, 0x37, 0x9b, 0x29, 0x71, 0x56, 0x83, 0xb0, 0x89, 0x87, 0x9e, 0xe4, 0x44, 0x18,
- 0x2f, 0xa1, 0x3c, 0x7d, 0x48, 0xbc, 0xf3, 0x2d, 0xd9, 0x87, 0x82, 0xca, 0xee, 0xb0, 0xc0, 0xc1,
- 0x4a, 0x67, 0x77, 0x98, 0xbb, 0x9b, 0xc2, 0xb0, 0xff, 0x87, 0x05, 0x67, 0x72, 0x87, 0xe2, 0x18,
- 0xe4, 0xf4, 0xed, 0xb4, 0x9c, 0x5e, 0x2d, 0xea, 0x10, 0x63, 0x7c, 0x45, 0x17, 0x99, 0xfd, 0x1f,
- 0x2c, 0x18, 0xd1, 0xf8, 0xc7, 0xf0, 0xa9, 0x5e, 0xfa, 0x53, 0x8b, 0x3b, 0xaf, 0xd5, 0x3a, 0xbe,
- 0xed, 0xf7, 0x4b, 0xa0, 0xb2, 0x97, 0x4e, 0xbb, 0x32, 0x37, 0xf4, 0x3e, 0xb7, 0xc6, 0x3b, 0xd0,
- 0xcf, 0x2e, 0xbd, 0xe3, 0x62, 0x1c, 0x7a, 0xd2, 0xf4, 0xd9, 0x05, 0xba, 0x76, 0x28, 0x60, 0x7f,
- 0x63, 0x2c, 0x08, 0xb2, 0x6c, 0xeb, 0x3c, 0x31, 0x64, 0x5d, 0x84, 0xe0, 0xe9, 0x6c, 0xeb, 0xa2,
- 0x1c, 0x2b, 0x0c, 0x2a, 0x49, 0x3c, 0x37, 0x0c, 0x66, 0x7d, 0x27, 0x96, 0x6f, 0xc8, 0x2a, 0x49,
- 0xb2, 0x20, 0x01, 0x58, 0xe3, 0xb0, 0xfb, 0x70, 0x2f, 0x6e, 0xf9, 0xce, 0x8e, 0x71, 0x2a, 0x37,
- 0x72, 0x51, 0x28, 0x10, 0x36, 0xf1, 0xec, 0x26, 0x8c, 0xa7, 0x3f, 0x62, 0x8e, 0x6c, 0x30, 0x67,
- 0xd4, 0x9e, 0x86, 0x73, 0x0a, 0x6a, 0x0e, 0xab, 0xb5, 0xd8, 0x76, 0x04, 0x4f, 0xd0, 0x2e, 0x99,
- 0x12, 0x80, 0x35, 0x8e, 0xfd, 0x8f, 0x2c, 0x38, 0x99, 0x33, 0x68, 0x05, 0x86, 0x38, 0x26, 0x9a,
- 0xdb, 0xe4, 0xe9, 0x00, 0x6f, 0x87, 0x81, 0x3a, 0xd9, 0x70, 0xa4, 0xbb, 0xa3, 0xc1, 0x3d, 0xe7,
- 0x78, 0x31, 0x96, 0x70, 0xfb, 0xb7, 0x4b, 0x30, 0x9a, 0xee, 0x6b, 0xcc, 0xc2, 0x86, 0xf8, 0x30,
- 0x79, 0xb1, 0x1b, 0x6e, 0x93, 0x68, 0x87, 0x7e, 0xb9, 0x95, 0x09, 0x1b, 0xea, 0xc0, 0xc0, 0x39,
- 0xb5, 0x58, 0xee, 0xe2, 0xba, 0x1a, 0x6d, 0xb9, 0x22, 0xaf, 0x17, 0xb9, 0x22, 0xf5, 0x64, 0x9a,
- 0xae, 0x11, 0x8a, 0x24, 0x36, 0xe9, 0x53, 0x5d, 0x84, 0xf9, 0x61, 0xcf, 0xb4, 0x3d, 0x3f, 0xf1,
- 0x02, 0xf1, 0xc9, 0x62, 0xad, 0x2a, 0x5d, 0x64, 0xa9, 0x13, 0x05, 0xe7, 0xd5, 0xb3, 0xbf, 0xdf,
- 0x07, 0x2a, 0xa4, 0x9a, 0xb9, 0xae, 0x15, 0xe4, 0xf8, 0x77, 0xd0, 0xe0, 0x33, 0xb5, 0xb6, 0xfa,
- 0xf6, 0xf2, 0x25, 0xe1, 0xa6, 0x1c, 0xd3, 0x9e, 0xab, 0x06, 0x6c, 0x4d, 0x83, 0xb0, 0x89, 0x47,
- 0x7b, 0xe2, 0x7b, 0xdb, 0x84, 0x57, 0xea, 0x4f, 0xf7, 0x64, 0x51, 0x02, 0xb0, 0xc6, 0xa1, 0x3d,
- 0xa9, 0x7b, 0x1b, 0x1b, 0xc2, 0x2e, 0xa1, 0x7a, 0x42, 0x47, 0x07, 0x33, 0x08, 0xcf, 0x6e, 0x1f,
- 0x6e, 0x09, 0xfd, 0xdb, 0xc8, 0x6e, 0x1f, 0x6e, 0x61, 0x06, 0xa1, 0xb3, 0x14, 0x84, 0x51, 0xd3,
- 0xf1, 0xbd, 0xd7, 0x48, 0x5d, 0x51, 0x11, 0x7a, 0xb7, 0x9a, 0xa5, 0xab, 0x9d, 0x28, 0x38, 0xaf,
- 0x1e, 0x5d, 0xd0, 0xad, 0x88, 0xd4, 0x3d, 0x37, 0x31, 0x5b, 0x83, 0xf4, 0x82, 0x5e, 0xe9, 0xc0,
- 0xc0, 0x39, 0xb5, 0xd0, 0x34, 0x8c, 0xca, 0x90, 0x78, 0x99, 0xf0, 0x68, 0x30, 0x9d, 0x60, 0x05,
- 0xa7, 0xc1, 0x38, 0x8b, 0x4f, 0x99, 0x64, 0x53, 0xe4, 0x44, 0x63, 0x6a, 0xba, 0xc1, 0x24, 0x65,
- 0xae, 0x34, 0xac, 0x30, 0xec, 0x4f, 0x94, 0xa9, 0x50, 0xef, 0x92, 0x7a, 0xf0, 0xd8, 0x1c, 0x4d,
- 0xd3, 0x2b, 0xb2, 0xaf, 0x87, 0x15, 0xf9, 0x2c, 0x0c, 0xdd, 0x8c, 0xc3, 0x40, 0x39, 0x71, 0x56,
- 0xba, 0x3a, 0x71, 0x1a, 0x58, 0xf9, 0x4e, 0x9c, 0xfd, 0x45, 0x39, 0x71, 0x0e, 0xdc, 0xa3, 0x13,
- 0xe7, 0x1f, 0x56, 0x40, 0xbd, 0x14, 0x74, 0x95, 0x24, 0xb7, 0xc2, 0x68, 0xcb, 0x0b, 0x1a, 0x2c,
- 0x95, 0xc0, 0xd7, 0x2c, 0x18, 0xe2, 0xfb, 0x65, 0xd1, 0x0c, 0xc2, 0xdb, 0x28, 0xe8, 0x09, 0x9a,
- 0x14, 0xb1, 0xc9, 0x35, 0x83, 0x50, 0xe6, 0x15, 0x61, 0x13, 0x84, 0x53, 0x3d, 0x42, 0x1f, 0x05,
- 0x90, 0x46, 0xdc, 0x0d, 0xc9, 0x81, 0x17, 0x8a, 0xe9, 0x1f, 0x26, 0x1b, 0x5a, 0xa5, 0x5e, 0x53,
- 0x44, 0xb0, 0x41, 0x10, 0x7d, 0x46, 0x07, 0x28, 0xf2, 0x68, 0x8f, 0x0f, 0x1f, 0xc9, 0xd8, 0xf4,
- 0x12, 0x9e, 0x88, 0x61, 0xc0, 0x0b, 0x1a, 0x74, 0x9d, 0x08, 0x67, 0xb7, 0xb7, 0xe5, 0xa5, 0xe1,
- 0x58, 0x0c, 0x9d, 0xfa, 0x8c, 0xe3, 0x3b, 0x81, 0x4b, 0xa2, 0x05, 0x8e, 0xae, 0x25, 0xa8, 0x28,
- 0xc0, 0xb2, 0xa1, 0x8e, 0x37, 0x96, 0x2a, 0xbd, 0xbc, 0xb1, 0x74, 0xf6, 0x7d, 0x30, 0xd6, 0x31,
- 0x99, 0x07, 0x8a, 0x46, 0xbc, 0xf7, 0x40, 0x46, 0xfb, 0x77, 0xfa, 0xb5, 0xd0, 0xba, 0x1a, 0xd6,
- 0xf9, 0x93, 0x3d, 0x91, 0x9e, 0x51, 0xa1, 0x32, 0x17, 0xb8, 0x44, 0x94, 0x98, 0x31, 0x0a, 0xb1,
- 0x49, 0x92, 0xae, 0xd1, 0x96, 0x13, 0x91, 0xe0, 0xa8, 0xd7, 0xe8, 0x8a, 0x22, 0x82, 0x0d, 0x82,
- 0x68, 0x33, 0x15, 0x8e, 0x74, 0xf1, 0xf0, 0xe1, 0x48, 0x2c, 0x41, 0x59, 0xde, 0xcb, 0x16, 0x5f,
- 0xb4, 0x60, 0x24, 0x48, 0xad, 0xdc, 0x62, 0x3c, 0x90, 0xf3, 0x77, 0x05, 0x7f, 0x68, 0x2e, 0x5d,
- 0x86, 0x33, 0xf4, 0xf3, 0x44, 0x5a, 0xe5, 0x80, 0x22, 0x4d, 0x3f, 0x19, 0xd6, 0xdf, 0xed, 0xc9,
- 0x30, 0x14, 0xa8, 0x37, 0x13, 0x07, 0x0a, 0x7f, 0x33, 0x11, 0x72, 0xde, 0x4b, 0xbc, 0x01, 0x35,
- 0x37, 0x22, 0x4e, 0x72, 0x8f, 0xcf, 0xe7, 0x31, 0xdf, 0x8e, 0x59, 0xd9, 0x00, 0xd6, 0x6d, 0xd9,
- 0xff, 0xbb, 0x0f, 0x4e, 0xc8, 0x11, 0x91, 0xd1, 0x0b, 0x54, 0x3e, 0x72, 0xba, 0x5a, 0x57, 0x56,
- 0xf2, 0xf1, 0x92, 0x04, 0x60, 0x8d, 0x43, 0xf5, 0xb1, 0x76, 0x4c, 0x96, 0x5b, 0x24, 0x58, 0xf4,
- 0xd6, 0x63, 0x71, 0x19, 0xab, 0x36, 0xca, 0x35, 0x0d, 0xc2, 0x26, 0x1e, 0xd5, 0xed, 0x1d, 0x43,
- 0x69, 0x35, 0x74, 0x7b, 0xa9, 0xa8, 0x4a, 0x38, 0xfa, 0x95, 0xdc, 0x5c, 0xc8, 0xc5, 0xc4, 0xfc,
- 0x75, 0x04, 0x6d, 0x1c, 0xf0, 0xc5, 0xd5, 0xbf, 0x6f, 0xc1, 0x69, 0x5e, 0x2a, 0x47, 0xf2, 0x5a,
- 0xab, 0xee, 0x24, 0x24, 0x2e, 0xe6, 0x55, 0x84, 0x9c, 0xfe, 0x69, 0xf3, 0x72, 0x1e, 0x59, 0x9c,
- 0xdf, 0x1b, 0xf4, 0xba, 0x05, 0xa3, 0x5b, 0xa9, 0x74, 0x31, 0x52, 0x74, 0x1c, 0x36, 0x93, 0x43,
- 0xaa, 0x51, 0xbd, 0xd5, 0xd2, 0xe5, 0x31, 0xce, 0x52, 0xb7, 0xff, 0xbb, 0x05, 0x26, 0x1b, 0x3d,
- 0xfe, 0x2c, 0x33, 0x07, 0x57, 0x05, 0xa5, 0x76, 0x59, 0xe9, 0xaa, 0x5d, 0x3e, 0x0a, 0xe5, 0xb6,
- 0x57, 0x17, 0xe7, 0x0b, 0x7d, 0x45, 0xbc, 0x30, 0x87, 0x69, 0xb9, 0xfd, 0x2f, 0x2b, 0xda, 0x0c,
- 0x22, 0x42, 0xea, 0x7e, 0x24, 0x3e, 0x7b, 0x43, 0xe5, 0xa9, 0xe3, 0x5f, 0x7e, 0xb5, 0x23, 0x4f,
- 0xdd, 0x4f, 0x1f, 0x3c, 0x62, 0x92, 0x0f, 0x50, 0xb7, 0x34, 0x75, 0x03, 0xfb, 0x84, 0x4b, 0xde,
- 0x84, 0x2a, 0x3d, 0x82, 0x31, 0x7b, 0x66, 0x35, 0xd5, 0xa9, 0xea, 0x25, 0x51, 0x7e, 0x77, 0x77,
- 0xe2, 0xdd, 0x07, 0xef, 0x96, 0xac, 0x8d, 0x55, 0xfb, 0x28, 0x86, 0x1a, 0xfd, 0xcd, 0x22, 0x3b,
- 0xc5, 0xe1, 0xee, 0x9a, 0xe2, 0x99, 0x12, 0x50, 0x48, 0xd8, 0xa8, 0xa6, 0x83, 0x02, 0xa8, 0xb1,
- 0xc7, 0xa9, 0x19, 0x51, 0x7e, 0x06, 0x5c, 0x51, 0xf1, 0x95, 0x12, 0x70, 0x77, 0x77, 0xe2, 0x85,
- 0x83, 0x13, 0x55, 0xd5, 0xb1, 0x26, 0x61, 0x7f, 0xa9, 0x4f, 0xaf, 0x5d, 0x91, 0x9e, 0xf0, 0x47,
- 0x62, 0xed, 0x3e, 0x9f, 0x59, 0xbb, 0xe7, 0x3a, 0xd6, 0xee, 0x88, 0x7e, 0x44, 0x39, 0xb5, 0x1a,
- 0x8f, 0x5b, 0x11, 0xd8, 0xdf, 0xde, 0xc0, 0x34, 0xa0, 0x57, 0xdb, 0x5e, 0x44, 0xe2, 0x95, 0xa8,
- 0x1d, 0x78, 0x41, 0x83, 0x2d, 0xc7, 0xaa, 0xa9, 0x01, 0xa5, 0xc0, 0x38, 0x8b, 0x4f, 0x0f, 0xf5,
- 0x74, 0xce, 0x6f, 0x38, 0xdb, 0x7c, 0x55, 0x19, 0x19, 0xdb, 0x56, 0x45, 0x39, 0x56, 0x18, 0xf6,
- 0x37, 0xd8, 0x2d, 0xba, 0x11, 0x52, 0x4e, 0xd7, 0x84, 0xcf, 0x5e, 0x03, 0xe7, 0xe9, 0xde, 0xd4,
- 0x9a, 0xe0, 0x4f, 0x80, 0x73, 0x18, 0xba, 0x05, 0x03, 0xeb, 0xfc, 0x5d, 0xcb, 0x62, 0x32, 0xee,
- 0x8b, 0x47, 0x32, 0xd9, 0x8b, 0x41, 0xf2, 0xc5, 0xcc, 0xbb, 0xfa, 0x27, 0x96, 0xd4, 0xec, 0x6f,
- 0x57, 0x60, 0x34, 0xf3, 0x5e, 0x74, 0x2a, 0xd1, 0x6e, 0x69, 0xdf, 0x44, 0xbb, 0x1f, 0x02, 0xa8,
- 0x93, 0x96, 0x1f, 0xee, 0x30, 0x75, 0xac, 0xef, 0xc0, 0xea, 0x98, 0xd2, 0xe0, 0xe7, 0x54, 0x2b,
- 0xd8, 0x68, 0x51, 0xe4, 0xb8, 0xe3, 0x79, 0x7b, 0x33, 0x39, 0xee, 0x8c, 0x77, 0x39, 0xfa, 0x8f,
- 0xf7, 0x5d, 0x0e, 0x0f, 0x46, 0x79, 0x17, 0x55, 0xe0, 0xf6, 0x3d, 0xc4, 0x67, 0xb3, 0xd0, 0x97,
- 0xb9, 0x74, 0x33, 0x38, 0xdb, 0xee, 0xfd, 0x7c, 0x0e, 0x1e, 0xbd, 0x03, 0x6a, 0x72, 0x9e, 0xe3,
- 0xf1, 0x9a, 0x4e, 0x7e, 0x21, 0x97, 0x01, 0x7b, 0xa6, 0x5d, 0xfc, 0xec, 0xc8, 0x41, 0x01, 0xf7,
- 0x2b, 0x07, 0x85, 0xfd, 0x85, 0x12, 0xd5, 0xe3, 0x79, 0xbf, 0x54, 0x3a, 0xa5, 0x27, 0xa0, 0xdf,
- 0x69, 0x27, 0x9b, 0x61, 0xc7, 0xcb, 0x98, 0xd3, 0xac, 0x14, 0x0b, 0x28, 0x5a, 0x84, 0xbe, 0xba,
- 0x4e, 0x91, 0x73, 0x90, 0xf9, 0xd4, 0x26, 0x51, 0x27, 0x21, 0x98, 0xb5, 0x82, 0x1e, 0x81, 0xbe,
- 0xc4, 0x69, 0xc8, 0x68, 0x3d, 0x16, 0xa1, 0xbd, 0xe6, 0x34, 0x62, 0xcc, 0x4a, 0x4d, 0xf1, 0xdd,
- 0xb7, 0x8f, 0xf8, 0x7e, 0x01, 0x86, 0x63, 0xaf, 0x11, 0x38, 0x49, 0x3b, 0x22, 0xc6, 0xad, 0xa1,
- 0xf6, 0x19, 0x31, 0x81, 0x38, 0x8d, 0x6b, 0xff, 0xee, 0x10, 0x9c, 0x5a, 0x9d, 0x5d, 0x92, 0x89,
- 0xdf, 0x8f, 0x2c, 0xe0, 0x2e, 0x8f, 0xc6, 0xf1, 0x05, 0xdc, 0x75, 0xa1, 0xee, 0x1b, 0x01, 0x77,
- 0xbe, 0x11, 0x70, 0x97, 0x8e, 0x7e, 0x2a, 0x17, 0x11, 0xfd, 0x94, 0xd7, 0x83, 0x5e, 0xa2, 0x9f,
- 0x8e, 0x2c, 0x02, 0x6f, 0xcf, 0x0e, 0x1d, 0x28, 0x02, 0x4f, 0x85, 0x27, 0x16, 0x12, 0x97, 0xd2,
- 0x65, 0xaa, 0x72, 0xc3, 0x13, 0x55, 0x68, 0x18, 0x8f, 0xb9, 0x12, 0xac, 0xfe, 0xe5, 0xe2, 0x3b,
- 0xd0, 0x43, 0x68, 0x98, 0x08, 0xfb, 0x32, 0xc3, 0x11, 0x07, 0x8a, 0x08, 0x47, 0xcc, 0xeb, 0xce,
- 0xbe, 0xe1, 0x88, 0x2f, 0xc0, 0xb0, 0xeb, 0x87, 0x01, 0x59, 0x89, 0xc2, 0x24, 0x74, 0x43, 0x5f,
- 0xa8, 0xf5, 0xfa, 0x21, 0x1a, 0x13, 0x88, 0xd3, 0xb8, 0xdd, 0x62, 0x19, 0x6b, 0x87, 0x8d, 0x65,
- 0x84, 0xfb, 0x14, 0xcb, 0xf8, 0x8b, 0x3a, 0xea, 0x7e, 0x90, 0xcd, 0xc8, 0x87, 0x8a, 0x9f, 0x91,
- 0x9e, 0x9e, 0xea, 0x7b, 0x83, 0x3f, 0x4d, 0x49, 0x15, 0xe3, 0xd9, 0xb0, 0x49, 0x15, 0xbf, 0x21,
- 0x36, 0x24, 0xaf, 0x1c, 0xc1, 0x82, 0xbd, 0xb1, 0xaa, 0xc9, 0xa8, 0xe7, 0x2a, 0x75, 0x11, 0x4e,
- 0x77, 0xe4, 0x30, 0x59, 0x01, 0xbe, 0x52, 0x82, 0x1f, 0xdb, 0xb7, 0x0b, 0xe8, 0x16, 0x40, 0xe2,
- 0x34, 0xc4, 0x42, 0x15, 0x17, 0x26, 0x87, 0x74, 0xec, 0x5c, 0x93, 0xed, 0xf1, 0x74, 0x36, 0xea,
- 0x2f, 0xbb, 0x8a, 0x90, 0xbf, 0x99, 0x3f, 0x67, 0xe8, 0x77, 0x64, 0xfd, 0xc4, 0xa1, 0x4f, 0x30,
- 0x83, 0x50, 0xf1, 0x1f, 0x91, 0x86, 0x7e, 0xd7, 0x5d, 0x4d, 0x1f, 0x66, 0xa5, 0x58, 0x40, 0xd1,
- 0x73, 0x30, 0xe8, 0xf8, 0x3e, 0x0f, 0x1a, 0x22, 0xb1, 0x78, 0x21, 0x4a, 0xa7, 0x1f, 0xd4, 0x20,
- 0x6c, 0xe2, 0xd9, 0x7f, 0x55, 0x82, 0x89, 0x7d, 0x78, 0x4a, 0x47, 0xb0, 0x68, 0xa5, 0xe7, 0x60,
- 0x51, 0x11, 0x48, 0xd1, 0xdf, 0x25, 0x90, 0xe2, 0x39, 0x18, 0x4c, 0x88, 0xd3, 0x14, 0xae, 0x60,
- 0xc2, 0x12, 0xa0, 0x6f, 0x80, 0x35, 0x08, 0x9b, 0x78, 0x94, 0x8b, 0x8d, 0x38, 0xae, 0x4b, 0xe2,
- 0x58, 0x46, 0x4a, 0x08, 0x6b, 0x6a, 0x61, 0x61, 0x18, 0xcc, 0x48, 0x3d, 0x9d, 0x22, 0x81, 0x33,
- 0x24, 0xb3, 0x03, 0x5e, 0xeb, 0x71, 0xc0, 0xbf, 0x5e, 0x82, 0x47, 0xf7, 0x94, 0x6e, 0x3d, 0x07,
- 0xb1, 0xb4, 0x63, 0x12, 0x65, 0x17, 0xce, 0xb5, 0x98, 0x44, 0x98, 0x41, 0xf8, 0x28, 0xb5, 0x5a,
- 0xc6, 0xbb, 0xf9, 0x45, 0x47, 0x74, 0xf1, 0x51, 0x4a, 0x91, 0xc0, 0x19, 0x92, 0xf7, 0xba, 0x2c,
- 0xbf, 0xdd, 0x07, 0x8f, 0xf7, 0xa0, 0x03, 0x14, 0x18, 0xf9, 0x96, 0x8e, 0xd2, 0x2c, 0xdf, 0xa7,
- 0x28, 0xcd, 0x7b, 0x1b, 0xae, 0x37, 0x83, 0x3b, 0x7b, 0x8a, 0xb0, 0xfb, 0x46, 0x09, 0xce, 0x76,
- 0x57, 0x58, 0xd0, 0x7b, 0x60, 0x34, 0x52, 0xae, 0x6f, 0x66, 0x80, 0xe7, 0x49, 0x6e, 0x6f, 0x49,
- 0x81, 0x70, 0x16, 0x17, 0x4d, 0x02, 0xb4, 0x9c, 0x64, 0x33, 0xbe, 0x70, 0xdb, 0x8b, 0x13, 0x91,
- 0xe6, 0x69, 0x84, 0xdf, 0xf0, 0xc9, 0x52, 0x6c, 0x60, 0x50, 0x72, 0xec, 0xdf, 0x5c, 0x78, 0x35,
- 0x4c, 0x78, 0x25, 0x7e, 0xd8, 0x3a, 0x29, 0x1f, 0xc5, 0x31, 0x40, 0x38, 0x8b, 0x4b, 0xc9, 0xb1,
- 0x3b, 0x64, 0xde, 0x51, 0x7e, 0x0a, 0x63, 0xe4, 0x16, 0x55, 0x29, 0x36, 0x30, 0xb2, 0xa1, 0xab,
- 0x95, 0xfd, 0x43, 0x57, 0xed, 0x7f, 0x51, 0x82, 0x33, 0x5d, 0x15, 0xde, 0xde, 0xd8, 0xd4, 0x83,
- 0x17, 0x6e, 0x7a, 0x8f, 0x3b, 0xec, 0x60, 0x61, 0x8a, 0x7f, 0xda, 0x65, 0xa5, 0x89, 0x30, 0xc5,
- 0x7b, 0xcf, 0xbe, 0xf0, 0xe0, 0x8d, 0x67, 0x47, 0x64, 0x62, 0xdf, 0x01, 0x22, 0x13, 0x33, 0x93,
- 0x51, 0xe9, 0x51, 0x3a, 0xfc, 0x79, 0x5f, 0xd7, 0xe1, 0xa5, 0x07, 0xe4, 0x9e, 0xac, 0xd9, 0x73,
- 0x70, 0xc2, 0x0b, 0xd8, 0x03, 0x69, 0xab, 0xed, 0x75, 0x91, 0xf9, 0x87, 0xa7, 0xb7, 0x54, 0xe1,
- 0x0f, 0x0b, 0x19, 0x38, 0xee, 0xa8, 0xf1, 0x00, 0x46, 0x8a, 0xde, 0xdb, 0x90, 0x1e, 0x90, 0x73,
- 0x2f, 0xc3, 0x69, 0x39, 0x14, 0x9b, 0x4e, 0x44, 0xea, 0x42, 0xd8, 0xc6, 0x22, 0xe0, 0xe5, 0x0c,
- 0x0f, 0x9a, 0xc9, 0x41, 0xc0, 0xf9, 0xf5, 0xd8, 0x9b, 0x54, 0x61, 0xcb, 0x73, 0xc5, 0x51, 0x50,
- 0xbf, 0x49, 0x45, 0x0b, 0x31, 0x87, 0x69, 0x79, 0x51, 0x3b, 0x1e, 0x79, 0xf1, 0x21, 0xa8, 0xa9,
- 0xf1, 0xe6, 0xbe, 0xfb, 0x6a, 0x91, 0x77, 0xf8, 0xee, 0xab, 0x15, 0x6e, 0x60, 0xed, 0xf7, 0x68,
- 0xea, 0x3b, 0x61, 0x48, 0x59, 0xbf, 0x7a, 0x7d, 0x19, 0xcc, 0xfe, 0x8b, 0x7e, 0x18, 0x4e, 0x65,
- 0xfb, 0x4c, 0x99, 0xbd, 0xad, 0x7d, 0xcd, 0xde, 0x2c, 0x6c, 0xa3, 0x1d, 0xc8, 0x67, 0x03, 0x8d,
- 0xb0, 0x8d, 0x76, 0x40, 0x30, 0x87, 0xd1, 0x43, 0x47, 0x3d, 0xda, 0xc1, 0xed, 0x40, 0xf8, 0xa1,
- 0xaa, 0x43, 0xc7, 0x1c, 0x2b, 0xc5, 0x02, 0x8a, 0x3e, 0x6e, 0xc1, 0x50, 0xcc, 0xee, 0x54, 0xf8,
- 0xa5, 0x81, 0x58, 0xe4, 0x97, 0x0f, 0x9f, 0xcc, 0x54, 0x65, 0xb6, 0x65, 0x7e, 0x4b, 0x66, 0x09,
- 0x4e, 0x51, 0x44, 0x9f, 0xb2, 0xa0, 0xa6, 0x5e, 0x37, 0x12, 0x6f, 0x80, 0xae, 0x16, 0x9b, 0x4c,
- 0x95, 0x5b, 0x9b, 0xd5, 0xf5, 0x94, 0xca, 0x6a, 0x89, 0x35, 0x61, 0x14, 0x2b, 0x8b, 0xfe, 0xc0,
- 0xd1, 0x58, 0xf4, 0x21, 0xc7, 0x9a, 0xff, 0x0e, 0xa8, 0x35, 0x9d, 0xc0, 0xdb, 0x20, 0x71, 0xc2,
- 0x8d, 0xec, 0x32, 0xc7, 0xb3, 0x2c, 0xc4, 0x1a, 0x4e, 0x15, 0x80, 0x98, 0x7d, 0x58, 0x62, 0x58,
- 0xc5, 0x99, 0x02, 0xb0, 0xaa, 0x8b, 0xb1, 0x89, 0x63, 0x9a, 0xf0, 0xe1, 0xbe, 0x9a, 0xf0, 0x07,
- 0xf7, 0x31, 0xe1, 0xaf, 0xc2, 0x69, 0xa7, 0x9d, 0x84, 0x97, 0x88, 0xe3, 0x4f, 0xf3, 0x07, 0x7d,
- 0xc5, 0x03, 0xf5, 0x43, 0xcc, 0x2c, 0xa4, 0x3c, 0x2d, 0x56, 0x89, 0xbf, 0xd1, 0x81, 0x84, 0xf3,
- 0xeb, 0xda, 0xff, 0xd4, 0x82, 0xd3, 0xb9, 0x4b, 0xe1, 0xc1, 0xf5, 0x71, 0xb5, 0xbf, 0x5c, 0x81,
- 0x93, 0x39, 0xb9, 0x80, 0xd1, 0x8e, 0xb9, 0x49, 0xac, 0x22, 0xdc, 0x45, 0xd2, 0xde, 0x0f, 0x72,
- 0x6e, 0x72, 0x76, 0xc6, 0xc1, 0x6e, 0xe5, 0xf4, 0xcd, 0x58, 0xf9, 0x78, 0x6f, 0xc6, 0x8c, 0xb5,
- 0xde, 0x77, 0x5f, 0xd7, 0x7a, 0x65, 0x9f, 0xb5, 0xfe, 0x4d, 0x0b, 0xc6, 0x9b, 0x5d, 0x1e, 0xa0,
- 0x10, 0x36, 0xe6, 0xeb, 0x47, 0xf3, 0xbc, 0xc5, 0xcc, 0x23, 0x77, 0x76, 0x27, 0xba, 0xbe, 0xfb,
- 0x81, 0xbb, 0xf6, 0xca, 0xfe, 0x7e, 0x19, 0x58, 0x22, 0x6a, 0x96, 0xef, 0x71, 0x07, 0x7d, 0xcc,
- 0x4c, 0x29, 0x6e, 0x15, 0x95, 0xfe, 0x9a, 0x37, 0xae, 0x52, 0x92, 0xf3, 0x11, 0xcc, 0xcb, 0x50,
- 0x9e, 0xe5, 0x84, 0xa5, 0x1e, 0x38, 0xa1, 0x2f, 0x73, 0xb7, 0x97, 0x8b, 0xcf, 0xdd, 0x5e, 0xcb,
- 0xe6, 0x6d, 0xdf, 0x7b, 0x8a, 0xfb, 0x1e, 0xc8, 0x29, 0xfe, 0x55, 0x8b, 0x33, 0x9e, 0xcc, 0x2c,
- 0x68, 0x75, 0xc3, 0xda, 0x43, 0xdd, 0x78, 0x0a, 0xaa, 0xb1, 0xe0, 0xcc, 0x42, 0x2d, 0xd1, 0xae,
- 0x0a, 0xa2, 0x1c, 0x2b, 0x0c, 0xf6, 0xb8, 0xb3, 0xef, 0x87, 0xb7, 0x2e, 0x34, 0x5b, 0xc9, 0x8e,
- 0x50, 0x50, 0xf4, 0xe3, 0xce, 0x0a, 0x82, 0x0d, 0x2c, 0xfb, 0xef, 0x95, 0xf8, 0x0a, 0x14, 0xfe,
- 0x2e, 0xcf, 0x67, 0x9e, 0xe3, 0xec, 0xdd, 0x55, 0xe4, 0x23, 0x00, 0x6e, 0xd8, 0x6c, 0x51, 0xe5,
- 0x75, 0x2d, 0x14, 0xd7, 0x7f, 0x97, 0x0e, 0xfd, 0xf8, 0xbf, 0x68, 0x4f, 0x7f, 0x86, 0x2e, 0xc3,
- 0x06, 0xbd, 0x14, 0x2f, 0x2d, 0xef, 0xcb, 0x4b, 0x53, 0x6c, 0xa5, 0x6f, 0x6f, 0xb6, 0x62, 0xff,
- 0x95, 0x05, 0x29, 0x35, 0x0b, 0xb5, 0xa0, 0x42, 0xbb, 0xbb, 0x23, 0x76, 0xe8, 0x72, 0x71, 0x3a,
- 0x1d, 0x65, 0x8d, 0x62, 0xd9, 0xb3, 0x9f, 0x98, 0x13, 0x42, 0xbe, 0x70, 0x8b, 0xe1, 0xa3, 0x7a,
- 0xb5, 0x38, 0x82, 0x97, 0xc2, 0x70, 0x8b, 0xdf, 0x61, 0x6b, 0x17, 0x1b, 0xfb, 0x79, 0x18, 0xeb,
- 0xe8, 0x14, 0x7b, 0x79, 0x2f, 0xa4, 0xd2, 0x27, 0xb3, 0x5c, 0x59, 0x94, 0x30, 0xe6, 0x30, 0xfb,
- 0x1b, 0x16, 0x9c, 0xc8, 0x36, 0x8f, 0xde, 0xb0, 0x60, 0x2c, 0xce, 0xb6, 0x77, 0x54, 0x63, 0xa7,
- 0x5c, 0x5b, 0x3b, 0x40, 0xb8, 0xb3, 0x13, 0xf6, 0xff, 0x11, 0x8b, 0xff, 0x86, 0x17, 0xd4, 0xc3,
- 0x5b, 0x4a, 0x31, 0xb1, 0xba, 0x2a, 0x26, 0x74, 0x3f, 0xba, 0x9b, 0xa4, 0xde, 0xf6, 0x3b, 0x62,
- 0x8e, 0x57, 0x45, 0x39, 0x56, 0x18, 0x2c, 0xc4, 0xb2, 0x2d, 0x1e, 0x77, 0xc8, 0x2c, 0xca, 0x39,
- 0x51, 0x8e, 0x15, 0x06, 0x7a, 0x16, 0x86, 0x8c, 0x8f, 0x94, 0xeb, 0x92, 0x69, 0xf9, 0x86, 0xc8,
- 0x8c, 0x71, 0x0a, 0x0b, 0x4d, 0x02, 0x28, 0x25, 0x47, 0x8a, 0x48, 0x66, 0xed, 0x52, 0x9c, 0x28,
- 0xc6, 0x06, 0x06, 0x0b, 0x68, 0xf6, 0xdb, 0x31, 0xbb, 0xce, 0xe9, 0xd7, 0x09, 0x87, 0x67, 0x45,
- 0x19, 0x56, 0x50, 0xca, 0x4d, 0x9a, 0x4e, 0xd0, 0x76, 0x7c, 0x3a, 0x42, 0xe2, 0xfc, 0xaa, 0xb6,
- 0xe1, 0x92, 0x82, 0x60, 0x03, 0x8b, 0x7e, 0x71, 0xe2, 0x35, 0xc9, 0x4b, 0x61, 0x20, 0x5d, 0x12,
- 0xf5, 0x0d, 0x9f, 0x28, 0xc7, 0x0a, 0xc3, 0xfe, 0x4b, 0x0b, 0x46, 0x75, 0x26, 0x05, 0xfe, 0xc6,
- 0xbe, 0x79, 0xdc, 0xb6, 0xf6, 0x3d, 0x6e, 0xa7, 0xe3, 0xc6, 0x4b, 0x3d, 0xc5, 0x8d, 0x9b, 0x21,
- 0xdd, 0xe5, 0x3d, 0x43, 0xba, 0x7f, 0x42, 0xbf, 0xdf, 0xcc, 0x63, 0xbf, 0x07, 0xf3, 0xde, 0x6e,
- 0x46, 0x36, 0xf4, 0xbb, 0x8e, 0xca, 0x38, 0x34, 0xc4, 0x0f, 0x24, 0xb3, 0xd3, 0x0c, 0x49, 0x40,
- 0xec, 0x65, 0xa8, 0xa9, 0x8b, 0x2e, 0x79, 0xfa, 0xb5, 0xf2, 0x4f, 0xbf, 0x3d, 0x85, 0x96, 0xce,
- 0xac, 0x7f, 0xeb, 0x07, 0x8f, 0xbd, 0xe5, 0x8f, 0x7f, 0xf0, 0xd8, 0x5b, 0xbe, 0xf7, 0x83, 0xc7,
- 0xde, 0xf2, 0xf1, 0x3b, 0x8f, 0x59, 0xdf, 0xba, 0xf3, 0x98, 0xf5, 0xc7, 0x77, 0x1e, 0xb3, 0xbe,
- 0x77, 0xe7, 0x31, 0xeb, 0xfb, 0x77, 0x1e, 0xb3, 0xbe, 0xf8, 0x5f, 0x1e, 0x7b, 0xcb, 0x4b, 0xb9,
- 0x3e, 0xa9, 0xf4, 0xc7, 0xd3, 0x6e, 0x7d, 0x6a, 0xfb, 0x3c, 0x73, 0x8b, 0xa4, 0xdb, 0x6b, 0xca,
- 0x58, 0x53, 0x53, 0x72, 0x7b, 0xfd, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xe8, 0xbc, 0x0d,
- 0xc3, 0xeb, 0x00, 0x00,
+ // 11458 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x6d, 0x70, 0x1c, 0xc9,
+ 0x75, 0x98, 0x66, 0x17, 0x0b, 0xec, 0x3e, 0x7c, 0x11, 0x4d, 0xf2, 0x0e, 0xa4, 0xee, 0x0e, 0xf4,
+ 0x9c, 0x7d, 0x3a, 0x47, 0x77, 0x80, 0x8f, 0xba, 0x93, 0x2f, 0x3a, 0x4b, 0x32, 0x3e, 0x48, 0x10,
+ 0x24, 0x40, 0xe0, 0x1a, 0x20, 0x29, 0x9d, 0x7c, 0x3a, 0x0d, 0x66, 0x1b, 0x8b, 0x21, 0x66, 0x67,
+ 0xf6, 0x66, 0x66, 0x41, 0xe0, 0x2c, 0xc9, 0x92, 0x25, 0xd9, 0x72, 0xf4, 0x71, 0x8a, 0x94, 0xaa,
+ 0x9c, 0x13, 0x4b, 0x91, 0x2d, 0x27, 0x95, 0x54, 0x4a, 0x15, 0x25, 0xf9, 0x11, 0xa7, 0x6c, 0x97,
+ 0x2b, 0x76, 0xca, 0xa5, 0xc4, 0x49, 0xd9, 0x51, 0xa9, 0x2c, 0x25, 0xb1, 0x11, 0x89, 0x71, 0xca,
+ 0xae, 0xfc, 0x70, 0x55, 0x9c, 0xfc, 0x48, 0x31, 0xf9, 0x91, 0xea, 0xef, 0x9e, 0xd9, 0x59, 0x60,
+ 0x41, 0x0c, 0x48, 0x4a, 0xb9, 0x7f, 0xbb, 0xfd, 0x5e, 0xf7, 0xeb, 0xe9, 0x8f, 0xf7, 0x5e, 0xbf,
+ 0x7e, 0xef, 0x35, 0x2c, 0x36, 0xbc, 0x64, 0xb3, 0xbd, 0x3e, 0xe9, 0x86, 0xcd, 0x29, 0x27, 0x6a,
+ 0x84, 0xad, 0x28, 0xbc, 0xc9, 0x7e, 0x3c, 0xed, 0xd6, 0xa7, 0xb6, 0xcf, 0x4f, 0xb5, 0xb6, 0x1a,
+ 0x53, 0x4e, 0xcb, 0x8b, 0xa7, 0x9c, 0x56, 0xcb, 0xf7, 0x5c, 0x27, 0xf1, 0xc2, 0x60, 0x6a, 0xfb,
+ 0x19, 0xc7, 0x6f, 0x6d, 0x3a, 0xcf, 0x4c, 0x35, 0x48, 0x40, 0x22, 0x27, 0x21, 0xf5, 0xc9, 0x56,
+ 0x14, 0x26, 0x21, 0xfa, 0x29, 0xdd, 0xda, 0xa4, 0x6c, 0x8d, 0xfd, 0x78, 0xc5, 0xad, 0x4f, 0x6e,
+ 0x9f, 0x9f, 0x6c, 0x6d, 0x35, 0x26, 0x69, 0x6b, 0x93, 0x46, 0x6b, 0x93, 0xb2, 0xb5, 0xb3, 0x4f,
+ 0x1b, 0x7d, 0x69, 0x84, 0x8d, 0x70, 0x8a, 0x35, 0xba, 0xde, 0xde, 0x60, 0xff, 0xd8, 0x1f, 0xf6,
+ 0x8b, 0x13, 0x3b, 0x6b, 0x6f, 0x3d, 0x1f, 0x4f, 0x7a, 0x21, 0xed, 0xde, 0x94, 0x1b, 0x46, 0x64,
+ 0x6a, 0xbb, 0xa3, 0x43, 0x67, 0x2f, 0x69, 0x1c, 0xb2, 0x93, 0x90, 0x20, 0xf6, 0xc2, 0x20, 0x7e,
+ 0x9a, 0x76, 0x81, 0x44, 0xdb, 0x24, 0x32, 0x3f, 0xcf, 0x40, 0xc8, 0x6b, 0xe9, 0x59, 0xdd, 0x52,
+ 0xd3, 0x71, 0x37, 0xbd, 0x80, 0x44, 0xbb, 0xba, 0x7a, 0x93, 0x24, 0x4e, 0x5e, 0xad, 0xa9, 0x6e,
+ 0xb5, 0xa2, 0x76, 0x90, 0x78, 0x4d, 0xd2, 0x51, 0xe1, 0x9d, 0x07, 0x55, 0x88, 0xdd, 0x4d, 0xd2,
+ 0x74, 0x3a, 0xea, 0xbd, 0xa3, 0x5b, 0xbd, 0x76, 0xe2, 0xf9, 0x53, 0x5e, 0x90, 0xc4, 0x49, 0x94,
+ 0xad, 0x64, 0xff, 0x8a, 0x05, 0xc3, 0xd3, 0x37, 0x56, 0xa7, 0xdb, 0xc9, 0xe6, 0x6c, 0x18, 0x6c,
+ 0x78, 0x0d, 0xf4, 0x1c, 0x0c, 0xba, 0x7e, 0x3b, 0x4e, 0x48, 0x74, 0xd5, 0x69, 0x92, 0x71, 0xeb,
+ 0x9c, 0xf5, 0x64, 0x6d, 0xe6, 0xe4, 0x37, 0xf7, 0x26, 0xde, 0x72, 0x7b, 0x6f, 0x62, 0x70, 0x56,
+ 0x83, 0xb0, 0x89, 0x87, 0x7e, 0x1c, 0x06, 0xa2, 0xd0, 0x27, 0xd3, 0xf8, 0xea, 0x78, 0x89, 0x55,
+ 0x19, 0x15, 0x55, 0x06, 0x30, 0x2f, 0xc6, 0x12, 0x4e, 0x51, 0x5b, 0x51, 0xb8, 0xe1, 0xf9, 0x64,
+ 0xbc, 0x9c, 0x46, 0x5d, 0xe1, 0xc5, 0x58, 0xc2, 0xed, 0x3f, 0x2e, 0x01, 0x4c, 0xb7, 0x5a, 0x2b,
+ 0x51, 0x78, 0x93, 0xb8, 0x09, 0xfa, 0x10, 0x54, 0xe9, 0x30, 0xd7, 0x9d, 0xc4, 0x61, 0x1d, 0x1b,
+ 0x3c, 0xff, 0x13, 0x93, 0xfc, 0xab, 0x27, 0xcd, 0xaf, 0xd6, 0x8b, 0x8c, 0x62, 0x4f, 0x6e, 0x3f,
+ 0x33, 0xb9, 0xbc, 0x4e, 0xeb, 0x2f, 0x91, 0xc4, 0x99, 0x41, 0x82, 0x18, 0xe8, 0x32, 0xac, 0x5a,
+ 0x45, 0x01, 0xf4, 0xc5, 0x2d, 0xe2, 0xb2, 0x6f, 0x18, 0x3c, 0xbf, 0x38, 0x79, 0x94, 0xd5, 0x3c,
+ 0xa9, 0x7b, 0xbe, 0xda, 0x22, 0xee, 0xcc, 0x90, 0xa0, 0xdc, 0x47, 0xff, 0x61, 0x46, 0x07, 0x6d,
+ 0x43, 0x7f, 0x9c, 0x38, 0x49, 0x3b, 0x66, 0x43, 0x31, 0x78, 0xfe, 0x6a, 0x61, 0x14, 0x59, 0xab,
+ 0x33, 0x23, 0x82, 0x66, 0x3f, 0xff, 0x8f, 0x05, 0x35, 0xfb, 0x4f, 0x2d, 0x18, 0xd1, 0xc8, 0x8b,
+ 0x5e, 0x9c, 0xa0, 0x9f, 0xe9, 0x18, 0xdc, 0xc9, 0xde, 0x06, 0x97, 0xd6, 0x66, 0x43, 0x7b, 0x42,
+ 0x10, 0xab, 0xca, 0x12, 0x63, 0x60, 0x9b, 0x50, 0xf1, 0x12, 0xd2, 0x8c, 0xc7, 0x4b, 0xe7, 0xca,
+ 0x4f, 0x0e, 0x9e, 0xbf, 0x54, 0xd4, 0x77, 0xce, 0x0c, 0x0b, 0xa2, 0x95, 0x05, 0xda, 0x3c, 0xe6,
+ 0x54, 0xec, 0xbf, 0x1a, 0x36, 0xbf, 0x8f, 0x0e, 0x38, 0x7a, 0x06, 0x06, 0xe3, 0xb0, 0x1d, 0xb9,
+ 0x04, 0x93, 0x56, 0x18, 0x8f, 0x5b, 0xe7, 0xca, 0x74, 0xe9, 0xd1, 0x45, 0xbd, 0xaa, 0x8b, 0xb1,
+ 0x89, 0x83, 0x3e, 0x6f, 0xc1, 0x50, 0x9d, 0xc4, 0x89, 0x17, 0x30, 0xfa, 0xb2, 0xf3, 0x6b, 0x47,
+ 0xee, 0xbc, 0x2c, 0x9c, 0xd3, 0x8d, 0xcf, 0x9c, 0x12, 0x1f, 0x32, 0x64, 0x14, 0xc6, 0x38, 0x45,
+ 0x9f, 0x6e, 0xce, 0x3a, 0x89, 0xdd, 0xc8, 0x6b, 0xd1, 0xff, 0x62, 0xfb, 0xa8, 0xcd, 0x39, 0xa7,
+ 0x41, 0xd8, 0xc4, 0x43, 0x01, 0x54, 0xe8, 0xe6, 0x8b, 0xc7, 0xfb, 0x58, 0xff, 0x17, 0x8e, 0xd6,
+ 0x7f, 0x31, 0xa8, 0x74, 0x5f, 0xeb, 0xd1, 0xa7, 0xff, 0x62, 0xcc, 0xc9, 0xa0, 0xcf, 0x59, 0x30,
+ 0x2e, 0x98, 0x03, 0x26, 0x7c, 0x40, 0x6f, 0x6c, 0x7a, 0x09, 0xf1, 0xbd, 0x38, 0x19, 0xaf, 0xb0,
+ 0x3e, 0x4c, 0xf5, 0xb6, 0xb6, 0xe6, 0xa3, 0xb0, 0xdd, 0xba, 0xe2, 0x05, 0xf5, 0x99, 0x73, 0x82,
+ 0xd2, 0xf8, 0x6c, 0x97, 0x86, 0x71, 0x57, 0x92, 0xe8, 0x4b, 0x16, 0x9c, 0x0d, 0x9c, 0x26, 0x89,
+ 0x5b, 0x0e, 0x9d, 0x5a, 0x0e, 0x9e, 0xf1, 0x1d, 0x77, 0x8b, 0xf5, 0xa8, 0xff, 0xee, 0x7a, 0x64,
+ 0x8b, 0x1e, 0x9d, 0xbd, 0xda, 0xb5, 0x69, 0xbc, 0x0f, 0x59, 0xf4, 0x35, 0x0b, 0xc6, 0xc2, 0xa8,
+ 0xb5, 0xe9, 0x04, 0xa4, 0x2e, 0xa1, 0xf1, 0xf8, 0x00, 0xdb, 0x7a, 0x1f, 0x3c, 0xda, 0x14, 0x2d,
+ 0x67, 0x9b, 0x5d, 0x0a, 0x03, 0x2f, 0x09, 0xa3, 0x55, 0x92, 0x24, 0x5e, 0xd0, 0x88, 0x67, 0x4e,
+ 0xdf, 0xde, 0x9b, 0x18, 0xeb, 0xc0, 0xc2, 0x9d, 0xfd, 0x41, 0x3f, 0x0b, 0x83, 0xf1, 0x6e, 0xe0,
+ 0xde, 0xf0, 0x82, 0x7a, 0x78, 0x2b, 0x1e, 0xaf, 0x16, 0xb1, 0x7d, 0x57, 0x55, 0x83, 0x62, 0x03,
+ 0x6a, 0x02, 0xd8, 0xa4, 0x96, 0x3f, 0x71, 0x7a, 0x29, 0xd5, 0x8a, 0x9e, 0x38, 0xbd, 0x98, 0xf6,
+ 0x21, 0x8b, 0x7e, 0xd1, 0x82, 0xe1, 0xd8, 0x6b, 0x04, 0x4e, 0xd2, 0x8e, 0xc8, 0x15, 0xb2, 0x1b,
+ 0x8f, 0x03, 0xeb, 0xc8, 0xe5, 0x23, 0x8e, 0x8a, 0xd1, 0xe4, 0xcc, 0x69, 0xd1, 0xc7, 0x61, 0xb3,
+ 0x34, 0xc6, 0x69, 0xba, 0x79, 0x1b, 0x4d, 0x2f, 0xeb, 0xc1, 0x62, 0x37, 0x9a, 0x5e, 0xd4, 0x5d,
+ 0x49, 0xa2, 0x9f, 0x86, 0x13, 0xbc, 0x48, 0x8d, 0x6c, 0x3c, 0x3e, 0xc4, 0x18, 0xed, 0xa9, 0xdb,
+ 0x7b, 0x13, 0x27, 0x56, 0x33, 0x30, 0xdc, 0x81, 0x8d, 0x5e, 0x85, 0x89, 0x16, 0x89, 0x9a, 0x5e,
+ 0xb2, 0x1c, 0xf8, 0xbb, 0x92, 0x7d, 0xbb, 0x61, 0x8b, 0xd4, 0x45, 0x77, 0xe2, 0xf1, 0xe1, 0x73,
+ 0xd6, 0x93, 0xd5, 0x99, 0xb7, 0x89, 0x6e, 0x4e, 0xac, 0xec, 0x8f, 0x8e, 0x0f, 0x6a, 0x0f, 0xfd,
+ 0xbe, 0x05, 0x67, 0x0d, 0x2e, 0xbb, 0x4a, 0xa2, 0x6d, 0xcf, 0x25, 0xd3, 0xae, 0x1b, 0xb6, 0x83,
+ 0x24, 0x1e, 0x1f, 0x61, 0xc3, 0xb8, 0x7e, 0x1c, 0x3c, 0x3f, 0x4d, 0x4a, 0xaf, 0xcb, 0xae, 0x28,
+ 0x31, 0xde, 0xa7, 0xa7, 0xf6, 0xbf, 0x29, 0xc1, 0x89, 0xac, 0x06, 0x80, 0xfe, 0x81, 0x05, 0xa3,
+ 0x37, 0x6f, 0x25, 0x6b, 0xe1, 0x16, 0x09, 0xe2, 0x99, 0x5d, 0xca, 0xa7, 0x99, 0xec, 0x1b, 0x3c,
+ 0xef, 0x16, 0xab, 0x6b, 0x4c, 0x5e, 0x4e, 0x53, 0xb9, 0x10, 0x24, 0xd1, 0xee, 0xcc, 0xc3, 0xe2,
+ 0x9b, 0x46, 0x2f, 0xdf, 0x58, 0x33, 0xa1, 0x38, 0xdb, 0xa9, 0xb3, 0x9f, 0xb1, 0xe0, 0x54, 0x5e,
+ 0x13, 0xe8, 0x04, 0x94, 0xb7, 0xc8, 0x2e, 0xd7, 0x44, 0x31, 0xfd, 0x89, 0x5e, 0x86, 0xca, 0xb6,
+ 0xe3, 0xb7, 0x89, 0x50, 0xd3, 0xe6, 0x8f, 0xf6, 0x21, 0xaa, 0x67, 0x98, 0xb7, 0xfa, 0xae, 0xd2,
+ 0xf3, 0x96, 0xfd, 0x87, 0x65, 0x18, 0x34, 0x26, 0xed, 0x1e, 0xa8, 0x9e, 0x61, 0x4a, 0xf5, 0x5c,
+ 0x2a, 0x6c, 0xbd, 0x75, 0xd5, 0x3d, 0x6f, 0x65, 0x74, 0xcf, 0xe5, 0xe2, 0x48, 0xee, 0xab, 0x7c,
+ 0xa2, 0x04, 0x6a, 0x61, 0x8b, 0x1e, 0x43, 0xa8, 0x0e, 0xd3, 0x57, 0xc4, 0x14, 0x2e, 0xcb, 0xe6,
+ 0x66, 0x86, 0x6f, 0xef, 0x4d, 0xd4, 0xd4, 0x5f, 0xac, 0x09, 0xd9, 0xdf, 0xb1, 0xe0, 0x94, 0xd1,
+ 0xc7, 0xd9, 0x30, 0xa8, 0x7b, 0x6c, 0x6a, 0xcf, 0x41, 0x5f, 0xb2, 0xdb, 0x92, 0x47, 0x1d, 0x35,
+ 0x52, 0x6b, 0xbb, 0x2d, 0x82, 0x19, 0x84, 0x9e, 0x58, 0x9a, 0x24, 0x8e, 0x9d, 0x06, 0xc9, 0x1e,
+ 0x6e, 0x96, 0x78, 0x31, 0x96, 0x70, 0x14, 0x01, 0xf2, 0x9d, 0x38, 0x59, 0x8b, 0x9c, 0x20, 0x66,
+ 0xcd, 0xaf, 0x79, 0x4d, 0x22, 0x06, 0xf8, 0xaf, 0xf5, 0xb6, 0x62, 0x68, 0x8d, 0x99, 0x87, 0x6e,
+ 0xef, 0x4d, 0xa0, 0xc5, 0x8e, 0x96, 0x70, 0x4e, 0xeb, 0xf6, 0x97, 0x2c, 0x78, 0x28, 0x9f, 0xc1,
+ 0xa0, 0x27, 0xa0, 0x9f, 0x9f, 0x73, 0xc5, 0xd7, 0xe9, 0x29, 0x61, 0xa5, 0x58, 0x40, 0xd1, 0x14,
+ 0xd4, 0x94, 0xc0, 0x13, 0xdf, 0x38, 0x26, 0x50, 0x6b, 0x5a, 0x4a, 0x6a, 0x1c, 0x3a, 0x68, 0xf4,
+ 0x8f, 0x50, 0x41, 0xd5, 0xa0, 0xb1, 0x83, 0x21, 0x83, 0xd8, 0xdf, 0xb6, 0xe0, 0x47, 0x7b, 0x61,
+ 0x7b, 0xc7, 0xd7, 0xc7, 0x55, 0x38, 0x5d, 0x27, 0x1b, 0x4e, 0xdb, 0x4f, 0xd2, 0x14, 0x45, 0xa7,
+ 0x1f, 0x15, 0x95, 0x4f, 0xcf, 0xe5, 0x21, 0xe1, 0xfc, 0xba, 0xf6, 0x7f, 0xb1, 0x60, 0xd4, 0xf8,
+ 0xac, 0x7b, 0x70, 0x74, 0x0a, 0xd2, 0x47, 0xa7, 0x85, 0xc2, 0xb6, 0x69, 0x97, 0xb3, 0xd3, 0xe7,
+ 0x2c, 0x38, 0x6b, 0x60, 0x2d, 0x39, 0x89, 0xbb, 0x79, 0x61, 0xa7, 0x15, 0x91, 0x38, 0xa6, 0x4b,
+ 0xea, 0x51, 0x83, 0x1d, 0xcf, 0x0c, 0x8a, 0x16, 0xca, 0x57, 0xc8, 0x2e, 0xe7, 0xcd, 0x4f, 0x41,
+ 0x95, 0xef, 0xb9, 0x30, 0x12, 0x93, 0xa4, 0xbe, 0x6d, 0x59, 0x94, 0x63, 0x85, 0x81, 0x6c, 0xe8,
+ 0x67, 0x3c, 0x97, 0xf2, 0x20, 0xaa, 0x26, 0x00, 0x9d, 0xf7, 0xeb, 0xac, 0x04, 0x0b, 0x88, 0x1d,
+ 0xa7, 0xba, 0xb3, 0x12, 0x11, 0xb6, 0x1e, 0xea, 0x17, 0x3d, 0xe2, 0xd7, 0x63, 0x7a, 0xac, 0x73,
+ 0x82, 0x20, 0x4c, 0xc4, 0x09, 0xcd, 0x38, 0xd6, 0x4d, 0xeb, 0x62, 0x6c, 0xe2, 0x50, 0xa2, 0xbe,
+ 0xb3, 0x4e, 0x7c, 0x3e, 0xa2, 0x82, 0xe8, 0x22, 0x2b, 0xc1, 0x02, 0x62, 0xdf, 0x2e, 0xb1, 0x03,
+ 0xa4, 0xe2, 0x68, 0xe4, 0x5e, 0x58, 0x1f, 0xa2, 0x94, 0x08, 0x58, 0x29, 0x8e, 0x1f, 0x93, 0xee,
+ 0x16, 0x88, 0xd7, 0x32, 0x52, 0x00, 0x17, 0x4a, 0x75, 0x7f, 0x2b, 0xc4, 0xc7, 0xca, 0x30, 0x91,
+ 0xae, 0xd0, 0x21, 0x44, 0xe8, 0x91, 0xd7, 0x20, 0x94, 0xb5, 0x47, 0x19, 0xf8, 0xd8, 0xc4, 0xeb,
+ 0xc2, 0x87, 0x4b, 0xc7, 0xc9, 0x87, 0x4d, 0x31, 0x51, 0x3e, 0x40, 0x4c, 0x3c, 0xa1, 0x46, 0xbd,
+ 0x2f, 0xc3, 0xf3, 0xd2, 0xa2, 0xf2, 0x1c, 0xf4, 0xc5, 0x09, 0x69, 0x8d, 0x57, 0xd2, 0x6c, 0x76,
+ 0x35, 0x21, 0x2d, 0xcc, 0x20, 0xe8, 0xdd, 0x30, 0x9a, 0x38, 0x51, 0x83, 0x24, 0x11, 0xd9, 0xf6,
+ 0x98, 0xed, 0x92, 0x9d, 0x67, 0x6b, 0x33, 0x27, 0xa9, 0xd6, 0xb5, 0xc6, 0x40, 0x58, 0x82, 0x70,
+ 0x16, 0xd7, 0xfe, 0xef, 0x25, 0x78, 0x38, 0x3d, 0x05, 0x5a, 0x30, 0xbe, 0x37, 0x25, 0x18, 0xdf,
+ 0x6e, 0x0a, 0xc6, 0x3b, 0x7b, 0x13, 0x6f, 0xed, 0x52, 0xed, 0x07, 0x46, 0x6e, 0xa2, 0xf9, 0xcc,
+ 0x24, 0x4c, 0xa5, 0x27, 0xe1, 0xce, 0xde, 0xc4, 0xa3, 0x5d, 0xbe, 0x31, 0x33, 0x4b, 0x4f, 0x40,
+ 0x7f, 0x44, 0x9c, 0x38, 0x0c, 0xc4, 0x3c, 0xa9, 0xd9, 0xc4, 0xac, 0x14, 0x0b, 0xa8, 0xfd, 0xad,
+ 0x5a, 0x76, 0xb0, 0xe7, 0xb9, 0x3d, 0x36, 0x8c, 0x90, 0x07, 0x7d, 0xec, 0xd4, 0xc6, 0x39, 0xcb,
+ 0x95, 0xa3, 0xed, 0x42, 0x2a, 0x45, 0x54, 0xd3, 0x33, 0x55, 0x3a, 0x6b, 0xb4, 0x08, 0x33, 0x12,
+ 0x68, 0x07, 0xaa, 0xae, 0x3c, 0x4c, 0x95, 0x8a, 0x30, 0x3b, 0x8a, 0xa3, 0x94, 0xa6, 0x38, 0x44,
+ 0xd9, 0xbd, 0x3a, 0x81, 0x29, 0x6a, 0x88, 0x40, 0xb9, 0xe1, 0x25, 0x62, 0x5a, 0x8f, 0x78, 0x5c,
+ 0x9e, 0xf7, 0x8c, 0x4f, 0x1c, 0xa0, 0x32, 0x68, 0xde, 0x4b, 0x30, 0x6d, 0x1f, 0x7d, 0xca, 0x82,
+ 0xc1, 0xd8, 0x6d, 0xae, 0x44, 0xe1, 0xb6, 0x57, 0x27, 0x91, 0xd0, 0x31, 0x8f, 0xc8, 0xd9, 0x56,
+ 0x67, 0x97, 0x64, 0x83, 0x9a, 0x2e, 0x37, 0x5f, 0x68, 0x08, 0x36, 0xe9, 0xd2, 0xb3, 0xd7, 0xc3,
+ 0xe2, 0xdb, 0xe7, 0x88, 0xcb, 0x76, 0x9c, 0x3c, 0x33, 0xb3, 0x95, 0x72, 0x64, 0x9d, 0x7b, 0xae,
+ 0xed, 0x6e, 0xd1, 0xfd, 0xa6, 0x3b, 0xf4, 0xd6, 0xdb, 0x7b, 0x13, 0x0f, 0xcf, 0xe6, 0xd3, 0xc4,
+ 0xdd, 0x3a, 0xc3, 0x06, 0xac, 0xd5, 0xf6, 0x7d, 0x4c, 0x5e, 0x6d, 0x13, 0x66, 0x11, 0x2b, 0x60,
+ 0xc0, 0x56, 0x74, 0x83, 0x99, 0x01, 0x33, 0x20, 0xd8, 0xa4, 0x8b, 0x5e, 0x85, 0xfe, 0xa6, 0x93,
+ 0x44, 0xde, 0x8e, 0x30, 0x83, 0x1d, 0xf1, 0x14, 0xb4, 0xc4, 0xda, 0xd2, 0xc4, 0x99, 0xa0, 0xe7,
+ 0x85, 0x58, 0x10, 0x42, 0x4d, 0xa8, 0x34, 0x49, 0xd4, 0x20, 0xe3, 0xd5, 0x22, 0x4c, 0xfe, 0x4b,
+ 0xb4, 0x29, 0x4d, 0xb0, 0x46, 0x95, 0x2b, 0x56, 0x86, 0x39, 0x15, 0xf4, 0x32, 0x54, 0x63, 0xe2,
+ 0x13, 0x97, 0xaa, 0x47, 0x35, 0x46, 0xf1, 0x1d, 0x3d, 0xaa, 0x8a, 0x54, 0x2f, 0x59, 0x15, 0x55,
+ 0xf9, 0x06, 0x93, 0xff, 0xb0, 0x6a, 0x92, 0x0e, 0x60, 0xcb, 0x6f, 0x37, 0xbc, 0x60, 0x1c, 0x8a,
+ 0x18, 0xc0, 0x15, 0xd6, 0x56, 0x66, 0x00, 0x79, 0x21, 0x16, 0x84, 0xec, 0xff, 0x66, 0x01, 0x4a,
+ 0x33, 0xb5, 0x7b, 0xa0, 0x13, 0xbf, 0x9a, 0xd6, 0x89, 0x17, 0x8b, 0x54, 0x5a, 0xba, 0xa8, 0xc5,
+ 0xbf, 0x59, 0x83, 0x8c, 0x38, 0xb8, 0x4a, 0xe2, 0x84, 0xd4, 0xdf, 0x64, 0xe1, 0x6f, 0xb2, 0xf0,
+ 0x37, 0x59, 0xb8, 0x62, 0xe1, 0xeb, 0x19, 0x16, 0xfe, 0x1e, 0x63, 0xd7, 0xeb, 0xfb, 0xf5, 0x57,
+ 0xd4, 0x05, 0xbc, 0xd9, 0x03, 0x03, 0x81, 0x72, 0x82, 0xcb, 0xab, 0xcb, 0x57, 0x73, 0x79, 0xf6,
+ 0x2b, 0x69, 0x9e, 0x7d, 0x54, 0x12, 0xff, 0x3f, 0x70, 0xe9, 0xdf, 0xb7, 0xe0, 0x6d, 0x69, 0xee,
+ 0x25, 0x57, 0xce, 0x42, 0x23, 0x08, 0x23, 0x32, 0xe7, 0x6d, 0x6c, 0x90, 0x88, 0x04, 0x2e, 0x89,
+ 0x95, 0x6d, 0xc7, 0xea, 0x66, 0xdb, 0x41, 0xcf, 0xc2, 0xd0, 0xcd, 0x38, 0x0c, 0x56, 0x42, 0x2f,
+ 0x10, 0x2c, 0x88, 0x9e, 0x38, 0x4e, 0xdc, 0xde, 0x9b, 0x18, 0xa2, 0x23, 0x2a, 0xcb, 0x71, 0x0a,
+ 0x0b, 0xcd, 0xc2, 0xd8, 0xcd, 0x57, 0x57, 0x9c, 0xc4, 0xb0, 0x26, 0xc8, 0x73, 0x3f, 0xbb, 0x8f,
+ 0xba, 0xfc, 0x62, 0x06, 0x88, 0x3b, 0xf1, 0xed, 0xbf, 0x5b, 0x82, 0x33, 0x99, 0x0f, 0x09, 0x7d,
+ 0x3f, 0x6c, 0x27, 0xf4, 0x4c, 0x84, 0xbe, 0x62, 0xc1, 0x89, 0x66, 0xda, 0x60, 0x11, 0x0b, 0x73,
+ 0xf7, 0xfb, 0x0a, 0x93, 0x11, 0x19, 0x8b, 0xc8, 0xcc, 0xb8, 0x18, 0xa1, 0x13, 0x19, 0x40, 0x8c,
+ 0x3b, 0xfa, 0x82, 0x5e, 0x86, 0x5a, 0xd3, 0xd9, 0xb9, 0xd6, 0xaa, 0x3b, 0x89, 0x3c, 0x8e, 0x76,
+ 0xb7, 0x22, 0xb4, 0x13, 0xcf, 0x9f, 0xe4, 0x9e, 0x1b, 0x93, 0x0b, 0x41, 0xb2, 0x1c, 0xad, 0x26,
+ 0x91, 0x17, 0x34, 0xb8, 0x91, 0x73, 0x49, 0x36, 0x83, 0x75, 0x8b, 0xf6, 0x97, 0xad, 0xac, 0x90,
+ 0x52, 0xa3, 0x13, 0x39, 0x09, 0x69, 0xec, 0xa2, 0x0f, 0x43, 0x85, 0x9e, 0x1b, 0xe5, 0xa8, 0xdc,
+ 0x28, 0x52, 0x72, 0x1a, 0x33, 0xa1, 0x85, 0x28, 0xfd, 0x17, 0x63, 0x4e, 0xd4, 0xfe, 0x4a, 0x2d,
+ 0xab, 0x2c, 0xb0, 0xbb, 0xf9, 0xf3, 0x00, 0x8d, 0x70, 0x8d, 0x34, 0x5b, 0x3e, 0x1d, 0x16, 0x8b,
+ 0x5d, 0xf0, 0x28, 0x53, 0xc9, 0xbc, 0x82, 0x60, 0x03, 0x0b, 0xfd, 0x92, 0x05, 0xd0, 0x90, 0x6b,
+ 0x5e, 0x2a, 0x02, 0xd7, 0x8a, 0xfc, 0x1c, 0xbd, 0xa3, 0x74, 0x5f, 0x14, 0x41, 0x6c, 0x10, 0x47,
+ 0x3f, 0x6f, 0x41, 0x35, 0x91, 0xdd, 0xe7, 0xa2, 0x71, 0xad, 0xc8, 0x9e, 0xc8, 0x8f, 0xd6, 0x3a,
+ 0x91, 0x1a, 0x12, 0x45, 0x17, 0xfd, 0x82, 0x05, 0x10, 0xef, 0x06, 0xee, 0x4a, 0xe8, 0x7b, 0xee,
+ 0xae, 0x90, 0x98, 0xd7, 0x0b, 0x35, 0xe7, 0xa8, 0xd6, 0x67, 0x46, 0xe8, 0x68, 0xe8, 0xff, 0xd8,
+ 0xa0, 0x8c, 0x3e, 0x0a, 0xd5, 0x58, 0x2c, 0x37, 0x21, 0x23, 0xd7, 0x8a, 0x35, 0x2a, 0xf1, 0xb6,
+ 0x05, 0x7b, 0x15, 0xff, 0xb0, 0xa2, 0x89, 0xfe, 0xb6, 0x05, 0xa3, 0xad, 0xb4, 0x99, 0x50, 0x88,
+ 0xc3, 0xe2, 0x78, 0x40, 0xc6, 0x0c, 0xc9, 0xad, 0x2d, 0x99, 0x42, 0x9c, 0xed, 0x05, 0xe5, 0x80,
+ 0x7a, 0x05, 0x2f, 0xb7, 0xb8, 0xc9, 0x72, 0x40, 0x73, 0xc0, 0xf9, 0x2c, 0x10, 0x77, 0xe2, 0xa3,
+ 0x15, 0x38, 0x45, 0x7b, 0xb7, 0xcb, 0xd5, 0x4f, 0x29, 0x5e, 0x62, 0x26, 0x0c, 0xab, 0x33, 0x8f,
+ 0x88, 0x15, 0xc2, 0xee, 0x3a, 0xb2, 0x38, 0x38, 0xb7, 0x26, 0xfa, 0x43, 0x0b, 0x1e, 0xf1, 0x98,
+ 0x18, 0x30, 0x0d, 0xf6, 0x5a, 0x22, 0x88, 0x8b, 0x76, 0x52, 0x28, 0xaf, 0xe8, 0x26, 0x7e, 0x66,
+ 0x7e, 0x54, 0x7c, 0xc1, 0x23, 0x0b, 0xfb, 0x74, 0x09, 0xef, 0xdb, 0x61, 0xf4, 0x93, 0x30, 0x2c,
+ 0xf7, 0xc5, 0x0a, 0x65, 0xc1, 0x4c, 0xd0, 0xd6, 0x66, 0xc6, 0x6e, 0xef, 0x4d, 0x0c, 0xaf, 0x99,
+ 0x00, 0x9c, 0xc6, 0xb3, 0xff, 0x6d, 0x39, 0x75, 0x4b, 0xa4, 0x6c, 0x98, 0x8c, 0xdd, 0xb8, 0xd2,
+ 0xfe, 0x23, 0xb9, 0x67, 0xa1, 0xec, 0x46, 0x59, 0x97, 0x34, 0xbb, 0x51, 0x45, 0x31, 0x36, 0x88,
+ 0x53, 0xa5, 0x74, 0xcc, 0xc9, 0x5a, 0x4a, 0x05, 0x07, 0x7c, 0xb9, 0xc8, 0x2e, 0x75, 0xde, 0xe9,
+ 0x9d, 0x11, 0x5d, 0x1b, 0xeb, 0x00, 0xe1, 0xce, 0x2e, 0xa1, 0x8f, 0x40, 0x2d, 0x52, 0x9e, 0x2d,
+ 0xe5, 0x22, 0x8e, 0x6a, 0x72, 0xd9, 0x88, 0xee, 0xa8, 0x0b, 0x20, 0xed, 0xc3, 0xa2, 0x29, 0xda,
+ 0x7f, 0x90, 0xbe, 0x18, 0x33, 0x78, 0x47, 0x0f, 0x97, 0x7e, 0x9f, 0xb7, 0x60, 0x30, 0x0a, 0x7d,
+ 0xdf, 0x0b, 0x1a, 0x94, 0xcf, 0x09, 0x61, 0xfd, 0x81, 0x63, 0x91, 0x97, 0x82, 0xa1, 0x31, 0xcd,
+ 0x1a, 0x6b, 0x9a, 0xd8, 0xec, 0x80, 0xfd, 0xa7, 0x16, 0x8c, 0x77, 0xe3, 0xc7, 0x88, 0xc0, 0x5b,
+ 0x25, 0xb3, 0x51, 0x43, 0xb1, 0x1c, 0xcc, 0x11, 0x9f, 0x28, 0xb3, 0x79, 0x75, 0xe6, 0x71, 0xf1,
+ 0x99, 0x6f, 0x5d, 0xe9, 0x8e, 0x8a, 0xf7, 0x6b, 0x07, 0xbd, 0x04, 0x27, 0x8c, 0xef, 0x8a, 0xd5,
+ 0xc0, 0xd4, 0x66, 0x26, 0xa9, 0x02, 0x34, 0x9d, 0x81, 0xdd, 0xd9, 0x9b, 0x78, 0x28, 0x5b, 0x26,
+ 0x04, 0x46, 0x47, 0x3b, 0xf6, 0xaf, 0x97, 0xb2, 0xb3, 0xa5, 0x64, 0xfd, 0x1b, 0x56, 0x87, 0x35,
+ 0xe1, 0x7d, 0xc7, 0x21, 0x5f, 0x99, 0xdd, 0x41, 0xb9, 0x61, 0x74, 0xc7, 0xb9, 0x8f, 0xd7, 0xf6,
+ 0xf6, 0xbf, 0xeb, 0x83, 0x7d, 0x7a, 0xd6, 0x83, 0xf2, 0x7e, 0xe8, 0x7b, 0xd4, 0xcf, 0x5a, 0xea,
+ 0xc2, 0x8c, 0xef, 0xe1, 0xfa, 0x71, 0x8d, 0x3d, 0x3f, 0x3f, 0xc5, 0xdc, 0x75, 0x44, 0x59, 0xd1,
+ 0xd3, 0x57, 0x73, 0xe8, 0xab, 0x56, 0xfa, 0xca, 0x8f, 0x3b, 0x35, 0x7a, 0xc7, 0xd6, 0x27, 0xe3,
+ 0x1e, 0x91, 0x77, 0x4c, 0xdf, 0x3e, 0x75, 0xbb, 0x61, 0x9c, 0x04, 0xd8, 0xf0, 0x02, 0xc7, 0xf7,
+ 0x5e, 0xa3, 0xa7, 0xa3, 0x0a, 0x13, 0xf0, 0x4c, 0x63, 0xba, 0xa8, 0x4a, 0xb1, 0x81, 0x71, 0xf6,
+ 0xaf, 0xc3, 0xa0, 0xf1, 0xe5, 0x39, 0x1e, 0x2f, 0xa7, 0x4c, 0x8f, 0x97, 0x9a, 0xe1, 0xa8, 0x72,
+ 0xf6, 0x3d, 0x70, 0x22, 0xdb, 0xc1, 0xc3, 0xd4, 0xb7, 0xff, 0xf7, 0x40, 0xf6, 0x0e, 0x6e, 0x8d,
+ 0x44, 0x4d, 0xda, 0xb5, 0x37, 0x0d, 0x5b, 0x6f, 0x1a, 0xb6, 0xde, 0x34, 0x6c, 0x99, 0x77, 0x13,
+ 0xc2, 0x68, 0x33, 0x70, 0x8f, 0x8c, 0x36, 0x29, 0x33, 0x54, 0xb5, 0x70, 0x33, 0x94, 0xfd, 0xa9,
+ 0x0e, 0xcb, 0xfd, 0x5a, 0x44, 0x08, 0x0a, 0xa1, 0x12, 0x84, 0x75, 0x22, 0x75, 0xdc, 0xcb, 0xc5,
+ 0x28, 0x6c, 0x57, 0xc3, 0xba, 0xe1, 0x2e, 0x4e, 0xff, 0xc5, 0x98, 0xd3, 0xb1, 0x6f, 0x57, 0x20,
+ 0xa5, 0x4e, 0xf2, 0x79, 0xff, 0x71, 0x18, 0x88, 0x48, 0x2b, 0xbc, 0x86, 0x17, 0x85, 0x2c, 0xd3,
+ 0x11, 0x25, 0xbc, 0x18, 0x4b, 0x38, 0x95, 0x79, 0x2d, 0x27, 0xd9, 0x14, 0xc2, 0x4c, 0xc9, 0xbc,
+ 0x15, 0x27, 0xd9, 0xc4, 0x0c, 0x82, 0xde, 0x03, 0x23, 0x49, 0xea, 0x2a, 0x5c, 0x5c, 0xf9, 0x3e,
+ 0x24, 0x70, 0x47, 0xd2, 0x17, 0xe5, 0x38, 0x83, 0x8d, 0x5e, 0x85, 0xbe, 0x4d, 0xe2, 0x37, 0xc5,
+ 0xd4, 0xaf, 0x16, 0x27, 0x6b, 0xd8, 0xb7, 0x5e, 0x22, 0x7e, 0x93, 0x73, 0x42, 0xfa, 0x0b, 0x33,
+ 0x52, 0x74, 0xdd, 0xd7, 0xb6, 0xda, 0x71, 0x12, 0x36, 0xbd, 0xd7, 0xa4, 0xa5, 0xf3, 0x7d, 0x05,
+ 0x13, 0xbe, 0x22, 0xdb, 0xe7, 0x26, 0x25, 0xf5, 0x17, 0x6b, 0xca, 0xac, 0x1f, 0x75, 0x2f, 0x62,
+ 0x4b, 0x66, 0x57, 0x18, 0x2c, 0x8b, 0xee, 0xc7, 0x9c, 0x6c, 0x9f, 0xf7, 0x43, 0xfd, 0xc5, 0x9a,
+ 0x32, 0xda, 0x55, 0xfb, 0x6f, 0x90, 0xf5, 0xe1, 0x5a, 0xc1, 0x7d, 0xe0, 0x7b, 0x2f, 0x77, 0x1f,
+ 0x3e, 0x0e, 0x15, 0x77, 0xd3, 0x89, 0x92, 0xf1, 0x21, 0xb6, 0x68, 0xd4, 0x2a, 0x9e, 0xa5, 0x85,
+ 0x98, 0xc3, 0xd0, 0xa3, 0x50, 0x8e, 0xc8, 0x06, 0xf3, 0x4e, 0x36, 0xfc, 0xa2, 0x30, 0xd9, 0xc0,
+ 0xb4, 0xdc, 0xfe, 0xd5, 0x52, 0x5a, 0x6d, 0x4b, 0x7f, 0x37, 0x5f, 0xed, 0x6e, 0x3b, 0x8a, 0xa5,
+ 0xf9, 0xcb, 0x58, 0xed, 0xac, 0x18, 0x4b, 0x38, 0xfa, 0xb8, 0x05, 0x03, 0x37, 0xe3, 0x30, 0x08,
+ 0x48, 0x22, 0x44, 0xe4, 0xf5, 0x82, 0x87, 0xe2, 0x32, 0x6f, 0x5d, 0xf7, 0x41, 0x14, 0x60, 0x49,
+ 0x97, 0x76, 0x97, 0xec, 0xb8, 0x7e, 0xbb, 0xde, 0xe1, 0xea, 0x72, 0x81, 0x17, 0x63, 0x09, 0xa7,
+ 0xa8, 0x5e, 0xc0, 0x51, 0xfb, 0xd2, 0xa8, 0x0b, 0x81, 0x40, 0x15, 0x70, 0xfb, 0xfb, 0x03, 0x70,
+ 0x3a, 0x77, 0x73, 0x50, 0x85, 0x8a, 0xa9, 0x2c, 0x17, 0x3d, 0x9f, 0x48, 0x27, 0x2f, 0xa6, 0x50,
+ 0x5d, 0x57, 0xa5, 0xd8, 0xc0, 0x40, 0x3f, 0x07, 0xd0, 0x72, 0x22, 0xa7, 0x49, 0x94, 0x79, 0xfa,
+ 0xc8, 0x7a, 0x0b, 0xed, 0xc7, 0x8a, 0x6c, 0x53, 0x1f, 0xd1, 0x55, 0x51, 0x8c, 0x0d, 0x92, 0xe8,
+ 0x39, 0x18, 0x8c, 0x88, 0x4f, 0x9c, 0x98, 0x39, 0xb7, 0x67, 0x23, 0x75, 0xb0, 0x06, 0x61, 0x13,
+ 0x0f, 0x3d, 0xa1, 0xfc, 0xe1, 0x32, 0x7e, 0x41, 0x69, 0x9f, 0x38, 0xf4, 0xba, 0x05, 0x23, 0x1b,
+ 0x9e, 0x4f, 0x34, 0x75, 0x11, 0x57, 0xb3, 0x7c, 0xf4, 0x8f, 0xbc, 0x68, 0xb6, 0xab, 0x39, 0x64,
+ 0xaa, 0x38, 0xc6, 0x19, 0xf2, 0x74, 0x9a, 0xb7, 0x49, 0xc4, 0x58, 0x6b, 0x7f, 0x7a, 0x9a, 0xaf,
+ 0xf3, 0x62, 0x2c, 0xe1, 0x68, 0x1a, 0x46, 0x5b, 0x4e, 0x1c, 0xcf, 0x46, 0xa4, 0x4e, 0x82, 0xc4,
+ 0x73, 0x7c, 0x1e, 0xf5, 0x52, 0xd5, 0xce, 0xe2, 0x2b, 0x69, 0x30, 0xce, 0xe2, 0xa3, 0xf7, 0xc3,
+ 0xc3, 0xdc, 0xfe, 0xb3, 0xe4, 0xc5, 0xb1, 0x17, 0x34, 0xf4, 0x32, 0x10, 0x66, 0xb0, 0x09, 0xd1,
+ 0xd4, 0xc3, 0x0b, 0xf9, 0x68, 0xb8, 0x5b, 0x7d, 0xf4, 0x14, 0x54, 0xe3, 0x2d, 0xaf, 0x35, 0x1b,
+ 0xd5, 0x63, 0x76, 0xf7, 0x53, 0xd5, 0x46, 0xd7, 0x55, 0x51, 0x8e, 0x15, 0x06, 0x72, 0x61, 0x88,
+ 0x4f, 0x09, 0x77, 0xe8, 0x13, 0xfc, 0xf1, 0xe9, 0xae, 0x62, 0x5a, 0x04, 0x71, 0x4e, 0x62, 0xe7,
+ 0xd6, 0x05, 0x79, 0x13, 0xc5, 0x2f, 0x4e, 0xae, 0x1b, 0xcd, 0xe0, 0x54, 0xa3, 0xe9, 0x13, 0xdb,
+ 0x60, 0x0f, 0x27, 0xb6, 0xe7, 0x60, 0x70, 0xab, 0xbd, 0x4e, 0xc4, 0xc8, 0x0b, 0xb6, 0xa5, 0x56,
+ 0xdf, 0x15, 0x0d, 0xc2, 0x26, 0x1e, 0xf3, 0xa5, 0x6c, 0x79, 0xe2, 0x5f, 0x3c, 0x3e, 0x6c, 0xf8,
+ 0x52, 0xae, 0x2c, 0xc8, 0x62, 0x6c, 0xe2, 0xd0, 0xae, 0xd1, 0xb1, 0x58, 0x23, 0x31, 0x0b, 0x95,
+ 0xa0, 0xc3, 0xa5, 0xba, 0xb6, 0x2a, 0x01, 0x58, 0xe3, 0xd8, 0xbf, 0x5c, 0x4a, 0x5b, 0x31, 0x4c,
+ 0x86, 0x83, 0x62, 0xca, 0x56, 0x92, 0xeb, 0x4e, 0x24, 0x95, 0x8f, 0x23, 0x06, 0x1a, 0x89, 0x76,
+ 0xaf, 0x3b, 0x91, 0xc9, 0xa0, 0x18, 0x01, 0x2c, 0x29, 0xa1, 0x9b, 0xd0, 0x97, 0xf8, 0x4e, 0x41,
+ 0x91, 0x89, 0x06, 0x45, 0x6d, 0x54, 0x5a, 0x9c, 0x8e, 0x31, 0xa3, 0x81, 0x1e, 0xa1, 0x27, 0xa9,
+ 0x75, 0x79, 0xeb, 0x25, 0x0e, 0x3f, 0xeb, 0x31, 0x66, 0xa5, 0xf6, 0x9f, 0x0d, 0xe6, 0xc8, 0x08,
+ 0x25, 0x94, 0xd1, 0x79, 0x00, 0x3a, 0xc5, 0x2b, 0x11, 0xd9, 0xf0, 0x76, 0x84, 0x52, 0xa4, 0xf8,
+ 0xd0, 0x55, 0x05, 0xc1, 0x06, 0x96, 0xac, 0xb3, 0xda, 0xde, 0xa0, 0x75, 0x4a, 0x9d, 0x75, 0x38,
+ 0x04, 0x1b, 0x58, 0xe8, 0x59, 0xe8, 0xf7, 0x9a, 0x4e, 0x43, 0x39, 0xe5, 0x3e, 0x42, 0x19, 0xd0,
+ 0x02, 0x2b, 0xb9, 0xb3, 0x37, 0x31, 0xa2, 0x3a, 0xc4, 0x8a, 0xb0, 0xc0, 0x45, 0xbf, 0x6e, 0xc1,
+ 0x90, 0x1b, 0x36, 0x9b, 0x61, 0xc0, 0x8f, 0xb2, 0xe2, 0x5c, 0x7e, 0xf3, 0xb8, 0x54, 0x96, 0xc9,
+ 0x59, 0x83, 0x18, 0x3f, 0x98, 0xab, 0x10, 0x4a, 0x13, 0x84, 0x53, 0xbd, 0x32, 0xf9, 0x54, 0xe5,
+ 0x00, 0x3e, 0xf5, 0x1b, 0x16, 0x8c, 0xf1, 0xba, 0xc6, 0x09, 0x5b, 0x44, 0x0b, 0x86, 0xc7, 0xfc,
+ 0x59, 0x1d, 0x46, 0x07, 0x65, 0x78, 0xed, 0x80, 0xe3, 0xce, 0x4e, 0xa2, 0x79, 0x18, 0xdb, 0x08,
+ 0x23, 0x97, 0x98, 0x03, 0x21, 0x98, 0xac, 0x6a, 0xe8, 0x62, 0x16, 0x01, 0x77, 0xd6, 0x41, 0xd7,
+ 0xe1, 0x21, 0xa3, 0xd0, 0x1c, 0x07, 0xce, 0x67, 0x1f, 0x13, 0xad, 0x3d, 0x74, 0x31, 0x17, 0x0b,
+ 0x77, 0xa9, 0x9d, 0x66, 0x69, 0xb5, 0x1e, 0x58, 0xda, 0x2b, 0x70, 0xc6, 0xed, 0x1c, 0x99, 0xed,
+ 0xb8, 0xbd, 0x1e, 0x73, 0xae, 0x5b, 0x9d, 0xf9, 0x11, 0xd1, 0xc0, 0x99, 0xd9, 0x6e, 0x88, 0xb8,
+ 0x7b, 0x1b, 0xe8, 0xc3, 0x50, 0x8d, 0x08, 0x9b, 0x95, 0x58, 0x84, 0xce, 0x1d, 0xd1, 0xf2, 0xa0,
+ 0xb5, 0x69, 0xde, 0xac, 0x96, 0x23, 0xa2, 0x20, 0xc6, 0x8a, 0x22, 0xba, 0x05, 0x03, 0x2d, 0x27,
+ 0x71, 0x37, 0x45, 0xc0, 0xdc, 0x91, 0xed, 0xe4, 0x8a, 0x38, 0xbb, 0xd6, 0x30, 0x42, 0xec, 0x39,
+ 0x11, 0x2c, 0xa9, 0x51, 0xcd, 0xca, 0x0d, 0x9b, 0xad, 0x30, 0x20, 0x41, 0x22, 0x59, 0xfe, 0x08,
+ 0xbf, 0x7b, 0x90, 0xa5, 0xd8, 0xc0, 0x40, 0x2b, 0x70, 0x8a, 0xd9, 0xe1, 0x6e, 0x78, 0xc9, 0x66,
+ 0xd8, 0x4e, 0xe4, 0xb1, 0x52, 0xf0, 0x7e, 0x75, 0xfb, 0xb4, 0x98, 0x83, 0x83, 0x73, 0x6b, 0x66,
+ 0x85, 0xd5, 0xe8, 0xdd, 0x09, 0xab, 0x13, 0x07, 0x0b, 0xab, 0xb3, 0xef, 0x85, 0xb1, 0x0e, 0xa6,
+ 0x71, 0x28, 0x63, 0xdb, 0x1c, 0x3c, 0x94, 0xbf, 0x3d, 0x0f, 0x65, 0x72, 0xfb, 0xe7, 0x19, 0x9f,
+ 0x6b, 0xe3, 0xf8, 0xd1, 0x83, 0xf9, 0xd6, 0x81, 0x32, 0x09, 0xb6, 0x85, 0xb4, 0xba, 0x78, 0xb4,
+ 0x55, 0x72, 0x21, 0xd8, 0xe6, 0xdc, 0x85, 0xd9, 0xa8, 0x2e, 0x04, 0xdb, 0x98, 0xb6, 0x8d, 0xbe,
+ 0x68, 0xa5, 0xd4, 0x67, 0x6e, 0xf4, 0xfd, 0xe0, 0xb1, 0x9c, 0xb7, 0x7a, 0xd6, 0xa8, 0xed, 0x7f,
+ 0x5f, 0x82, 0x73, 0x07, 0x35, 0xd2, 0xc3, 0xf0, 0x3d, 0x0e, 0xfd, 0x31, 0xf3, 0xa2, 0x10, 0xec,
+ 0x7f, 0x90, 0xee, 0x0a, 0xee, 0x57, 0xf1, 0x0a, 0x16, 0x20, 0xe4, 0x43, 0xb9, 0xe9, 0xb4, 0x84,
+ 0x2d, 0x70, 0xe1, 0xa8, 0xb1, 0x69, 0xf4, 0xbf, 0xe3, 0x2f, 0x39, 0x2d, 0xbe, 0x3c, 0x8d, 0x02,
+ 0x4c, 0xc9, 0xa0, 0x04, 0x2a, 0x4e, 0x14, 0x39, 0xf2, 0xca, 0xfe, 0x4a, 0x31, 0xf4, 0xa6, 0x69,
+ 0x93, 0xfc, 0xc6, 0x33, 0x55, 0x84, 0x39, 0x31, 0xfb, 0xb3, 0x03, 0xa9, 0x40, 0x26, 0xe6, 0x87,
+ 0x11, 0x43, 0xbf, 0x30, 0x01, 0x5a, 0x45, 0x87, 0x04, 0xf2, 0x48, 0x61, 0x76, 0xba, 0x16, 0xf9,
+ 0x16, 0x04, 0x29, 0xf4, 0x19, 0x8b, 0x65, 0x35, 0x90, 0xd1, 0x61, 0xe2, 0x4c, 0x7b, 0x3c, 0x49,
+ 0x16, 0xcc, 0x5c, 0x09, 0xb2, 0x10, 0x9b, 0xd4, 0x45, 0x76, 0x12, 0xa6, 0xcb, 0x77, 0x66, 0x27,
+ 0x61, 0xba, 0xb9, 0x84, 0xa3, 0x9d, 0x1c, 0x7f, 0x8b, 0x02, 0x22, 0xe3, 0x7b, 0xf0, 0xb0, 0xf8,
+ 0xaa, 0x05, 0x63, 0x5e, 0xf6, 0xe2, 0x5c, 0x9c, 0x00, 0x6f, 0x14, 0x63, 0xaf, 0xeb, 0xbc, 0x97,
+ 0x57, 0x8a, 0x43, 0x07, 0x08, 0x77, 0x76, 0x06, 0xd5, 0xa1, 0xcf, 0x0b, 0x36, 0x42, 0xa1, 0x2e,
+ 0xcd, 0x1c, 0xad, 0x53, 0x0b, 0xc1, 0x46, 0xa8, 0x77, 0x33, 0xfd, 0x87, 0x59, 0xeb, 0x68, 0x11,
+ 0x4e, 0xc9, 0x58, 0x96, 0x4b, 0x5e, 0x9c, 0x84, 0xd1, 0xee, 0xa2, 0xd7, 0xf4, 0x12, 0xa6, 0xea,
+ 0x94, 0x67, 0xc6, 0xa9, 0x24, 0xc2, 0x39, 0x70, 0x9c, 0x5b, 0x0b, 0xbd, 0x06, 0x03, 0xf2, 0xb2,
+ 0xba, 0x5a, 0xc4, 0x69, 0xba, 0x73, 0xfd, 0xab, 0xc5, 0xb4, 0x2a, 0x6e, 0xab, 0x25, 0x41, 0xfb,
+ 0xf5, 0x41, 0xe8, 0xbc, 0x53, 0x4f, 0x5f, 0xa0, 0x5b, 0xf7, 0xfa, 0x02, 0x9d, 0x1e, 0x8d, 0x62,
+ 0x7d, 0xf7, 0x5d, 0xc0, 0xda, 0x16, 0x54, 0xf5, 0xbd, 0xe6, 0x6e, 0xe0, 0x62, 0x46, 0x03, 0x45,
+ 0xd0, 0xbf, 0x49, 0x1c, 0x3f, 0xd9, 0x2c, 0xe6, 0x0a, 0xe6, 0x12, 0x6b, 0x2b, 0x1b, 0x80, 0xc6,
+ 0x4b, 0xb1, 0xa0, 0x84, 0x76, 0x60, 0x60, 0x93, 0x2f, 0x00, 0x71, 0x5a, 0x59, 0x3a, 0xea, 0xe0,
+ 0xa6, 0x56, 0x95, 0x9e, 0x6e, 0x51, 0x80, 0x25, 0x39, 0xe6, 0xac, 0x65, 0xb8, 0x93, 0xf0, 0xad,
+ 0x5b, 0x5c, 0xec, 0x5d, 0xef, 0xbe, 0x24, 0x1f, 0x82, 0xa1, 0x88, 0xb8, 0x61, 0xe0, 0x7a, 0x3e,
+ 0xa9, 0x4f, 0xcb, 0xeb, 0x95, 0xc3, 0x84, 0x5c, 0x31, 0xeb, 0x05, 0x36, 0xda, 0xc0, 0xa9, 0x16,
+ 0xd1, 0xa7, 0x2d, 0x18, 0x51, 0x61, 0xd8, 0x74, 0x42, 0x88, 0x30, 0xa3, 0x2f, 0x16, 0x14, 0xf4,
+ 0xcd, 0xda, 0x9c, 0x41, 0xb7, 0xf7, 0x26, 0x46, 0xd2, 0x65, 0x38, 0x43, 0x17, 0xbd, 0x04, 0x10,
+ 0xae, 0x73, 0x8f, 0xac, 0xe9, 0x44, 0xd8, 0xd4, 0x0f, 0xf3, 0xa9, 0x23, 0x3c, 0x74, 0x53, 0xb6,
+ 0x80, 0x8d, 0xd6, 0xd0, 0x15, 0x00, 0xbe, 0x6d, 0xd6, 0x76, 0x5b, 0xf2, 0x48, 0x23, 0x63, 0xe6,
+ 0x60, 0x55, 0x41, 0xee, 0xec, 0x4d, 0x74, 0xda, 0x38, 0x99, 0xdb, 0x89, 0x51, 0x1d, 0xfd, 0x2c,
+ 0x0c, 0xc4, 0xed, 0x66, 0xd3, 0x51, 0x16, 0xf7, 0x02, 0x83, 0x41, 0x79, 0xbb, 0x06, 0x2b, 0xe2,
+ 0x05, 0x58, 0x52, 0x44, 0x37, 0x29, 0x53, 0x8d, 0x85, 0xf1, 0x95, 0xed, 0x22, 0xae, 0x13, 0x70,
+ 0xcb, 0xd3, 0x3b, 0xa5, 0x8a, 0x8f, 0x73, 0x70, 0xee, 0xec, 0x4d, 0x3c, 0x94, 0x2e, 0x5f, 0x0c,
+ 0x45, 0x78, 0x66, 0x6e, 0x9b, 0xe8, 0xb2, 0xcc, 0xca, 0x44, 0x3f, 0x5b, 0x26, 0x0b, 0x79, 0x52,
+ 0x67, 0x65, 0x62, 0xc5, 0xdd, 0xc7, 0xcc, 0xac, 0x8c, 0x96, 0xe0, 0xa4, 0x1b, 0x06, 0x49, 0x14,
+ 0xfa, 0x3e, 0xcf, 0x4a, 0xc6, 0x4f, 0x97, 0xdc, 0x22, 0xff, 0x56, 0xd1, 0xed, 0x93, 0xb3, 0x9d,
+ 0x28, 0x38, 0xaf, 0x9e, 0x1d, 0xa4, 0x6f, 0xc7, 0xc4, 0xe0, 0x3c, 0x0b, 0x43, 0x64, 0x27, 0x21,
+ 0x51, 0xe0, 0xf8, 0xd7, 0xf0, 0xa2, 0xb4, 0x45, 0xb3, 0x3d, 0x70, 0xc1, 0x28, 0xc7, 0x29, 0x2c,
+ 0x64, 0x2b, 0x93, 0x8a, 0x11, 0x72, 0xcc, 0x4d, 0x2a, 0xd2, 0x80, 0x62, 0x7f, 0xa3, 0x9c, 0x52,
+ 0xc8, 0xee, 0xcb, 0x5d, 0x1c, 0xcb, 0x6d, 0x23, 0x93, 0x00, 0x31, 0x80, 0x38, 0x68, 0x14, 0x49,
+ 0x59, 0xe5, 0xb6, 0x59, 0x36, 0x09, 0xe1, 0x34, 0x5d, 0xb4, 0x05, 0x95, 0xcd, 0x30, 0x4e, 0xe4,
+ 0xf1, 0xe3, 0x88, 0x27, 0x9d, 0x4b, 0x61, 0x9c, 0x30, 0x2d, 0x42, 0x7d, 0x36, 0x2d, 0x89, 0x31,
+ 0xa7, 0x41, 0xcf, 0xa0, 0xf1, 0xa6, 0x13, 0xd5, 0xe3, 0x59, 0x96, 0x20, 0xa0, 0x8f, 0xa9, 0x0f,
+ 0x4a, 0x59, 0x5c, 0xd5, 0x20, 0x6c, 0xe2, 0xd9, 0x7f, 0x6e, 0xa5, 0x2e, 0x2c, 0x6e, 0x30, 0x6f,
+ 0xef, 0x6d, 0x12, 0x50, 0x6e, 0x60, 0xfa, 0x97, 0xfd, 0x64, 0x26, 0x76, 0xf6, 0x6d, 0xdd, 0x72,
+ 0xf5, 0xdd, 0xa2, 0x2d, 0x4c, 0xb2, 0x26, 0x0c, 0x57, 0xb4, 0x8f, 0x59, 0xe9, 0x20, 0xe8, 0x52,
+ 0x11, 0xe7, 0x12, 0x33, 0x11, 0xc0, 0x81, 0xf1, 0xd4, 0xf6, 0x17, 0x2d, 0x18, 0x98, 0x71, 0xdc,
+ 0xad, 0x70, 0x63, 0x03, 0x3d, 0x05, 0xd5, 0x7a, 0x3b, 0x32, 0xe3, 0xb1, 0x95, 0x65, 0x63, 0x4e,
+ 0x94, 0x63, 0x85, 0x41, 0x97, 0xfe, 0x86, 0xe3, 0xca, 0x74, 0x00, 0x65, 0xbe, 0xf4, 0x2f, 0xb2,
+ 0x12, 0x2c, 0x20, 0x74, 0xf8, 0x9b, 0xce, 0x8e, 0xac, 0x9c, 0xbd, 0x2d, 0x59, 0xd2, 0x20, 0x6c,
+ 0xe2, 0xd9, 0xff, 0xda, 0x82, 0xf1, 0x19, 0x27, 0xf6, 0xdc, 0xe9, 0x76, 0xb2, 0x39, 0xe3, 0x25,
+ 0xeb, 0x6d, 0x77, 0x8b, 0x24, 0x3c, 0x6d, 0x04, 0xed, 0x65, 0x3b, 0xa6, 0x3b, 0x50, 0x1d, 0x07,
+ 0x55, 0x2f, 0xaf, 0x89, 0x72, 0xac, 0x30, 0xd0, 0x6b, 0x30, 0xd8, 0x72, 0xe2, 0xf8, 0x56, 0x18,
+ 0xd5, 0x31, 0xd9, 0x28, 0x26, 0xb1, 0xcc, 0x2a, 0x71, 0x23, 0x92, 0x60, 0xb2, 0x21, 0x3c, 0x0b,
+ 0x74, 0xfb, 0xd8, 0x24, 0x66, 0xff, 0x92, 0x05, 0xa7, 0x66, 0x88, 0x13, 0x91, 0x88, 0xe5, 0xa1,
+ 0x51, 0x1f, 0x82, 0x5e, 0x85, 0x6a, 0x42, 0x4b, 0x68, 0x8f, 0xac, 0x62, 0x7b, 0xc4, 0x7c, 0x02,
+ 0xd6, 0x44, 0xe3, 0x58, 0x91, 0xb1, 0x3f, 0x6f, 0xc1, 0x99, 0xbc, 0xbe, 0xcc, 0xfa, 0x61, 0xbb,
+ 0x7e, 0x3f, 0x3a, 0xf4, 0x77, 0x2c, 0x18, 0x62, 0xf7, 0xac, 0x73, 0x24, 0x71, 0x3c, 0xbf, 0x23,
+ 0x07, 0x9e, 0xd5, 0x63, 0x0e, 0xbc, 0x73, 0xd0, 0xb7, 0x19, 0x36, 0x49, 0xd6, 0x47, 0xe0, 0x52,
+ 0xd8, 0x24, 0x98, 0x41, 0xd0, 0x33, 0x74, 0x11, 0x7a, 0x41, 0xe2, 0xd0, 0xed, 0x28, 0x6d, 0xdf,
+ 0xa3, 0x7c, 0x01, 0xaa, 0x62, 0x6c, 0xe2, 0xd8, 0xff, 0xaa, 0x06, 0x03, 0xc2, 0xa1, 0xa5, 0xe7,
+ 0x34, 0x26, 0xd2, 0x44, 0x51, 0xea, 0x6a, 0xa2, 0x88, 0xa1, 0xdf, 0x65, 0xc9, 0x38, 0x85, 0x26,
+ 0x7c, 0xa5, 0x10, 0x0f, 0x28, 0x9e, 0xdf, 0x53, 0x77, 0x8b, 0xff, 0xc7, 0x82, 0x14, 0xfa, 0x82,
+ 0x05, 0xa3, 0x6e, 0x18, 0x04, 0xc4, 0xd5, 0x6a, 0x5a, 0x5f, 0x11, 0x8e, 0x2e, 0xb3, 0xe9, 0x46,
+ 0xf5, 0x25, 0x5f, 0x06, 0x80, 0xb3, 0xe4, 0xd1, 0x0b, 0x30, 0xcc, 0xc7, 0xec, 0x7a, 0xca, 0x60,
+ 0xaf, 0x53, 0xa3, 0x99, 0x40, 0x9c, 0xc6, 0x45, 0x93, 0xfc, 0xe2, 0x43, 0x24, 0x21, 0xeb, 0xd7,
+ 0x76, 0x4d, 0x23, 0xfd, 0x98, 0x81, 0x81, 0x22, 0x40, 0x11, 0xd9, 0x88, 0x48, 0xbc, 0x29, 0x1c,
+ 0x7e, 0x98, 0x8a, 0x38, 0x70, 0x77, 0x09, 0x08, 0x70, 0x47, 0x4b, 0x38, 0xa7, 0x75, 0xb4, 0x25,
+ 0xce, 0xc8, 0xd5, 0x22, 0xf8, 0xb9, 0x98, 0xe6, 0xae, 0x47, 0xe5, 0x09, 0xa8, 0x30, 0xd1, 0xc5,
+ 0x54, 0xd3, 0x32, 0x0f, 0x7a, 0x63, 0x82, 0x0d, 0xf3, 0x72, 0x34, 0x07, 0x27, 0x32, 0x89, 0xdd,
+ 0x62, 0x61, 0x58, 0x57, 0x01, 0x4e, 0x99, 0x94, 0x70, 0x31, 0xee, 0xa8, 0x61, 0xda, 0x4f, 0x06,
+ 0x0f, 0xb0, 0x9f, 0xec, 0x2a, 0xb7, 0x52, 0x6e, 0xf2, 0x7e, 0xb1, 0x90, 0x01, 0xe8, 0xc9, 0x87,
+ 0xf4, 0x73, 0x19, 0x1f, 0xd2, 0x61, 0xd6, 0x81, 0xeb, 0xc5, 0x74, 0xe0, 0xf0, 0x0e, 0xa3, 0xf7,
+ 0xd3, 0x01, 0xf4, 0x7f, 0x59, 0x20, 0xe7, 0x75, 0xd6, 0x71, 0x37, 0x09, 0x5d, 0x32, 0xe8, 0x3d,
+ 0x30, 0xa2, 0xac, 0x00, 0x5c, 0x25, 0xb2, 0xd8, 0xaa, 0x51, 0xde, 0x00, 0x38, 0x05, 0xc5, 0x19,
+ 0x6c, 0x34, 0x05, 0x35, 0x3a, 0x4e, 0xbc, 0x2a, 0x97, 0xfb, 0xca, 0xd2, 0x30, 0xbd, 0xb2, 0x20,
+ 0x6a, 0x69, 0x1c, 0x14, 0xc2, 0x98, 0xef, 0xc4, 0x09, 0xeb, 0xc1, 0xea, 0x6e, 0xe0, 0xde, 0x65,
+ 0xfa, 0x0f, 0x16, 0x45, 0xb3, 0x98, 0x6d, 0x08, 0x77, 0xb6, 0x6d, 0xff, 0x87, 0x0a, 0x0c, 0xa7,
+ 0x38, 0xe3, 0x21, 0x15, 0x86, 0xa7, 0xa0, 0x2a, 0x65, 0x78, 0x36, 0xcf, 0x91, 0x12, 0xf4, 0x0a,
+ 0x83, 0x0a, 0xad, 0x75, 0x2d, 0x55, 0xb3, 0x0a, 0x8e, 0x21, 0x70, 0xb1, 0x89, 0xc7, 0x98, 0x72,
+ 0xe2, 0xc7, 0xb3, 0xbe, 0x47, 0x82, 0x84, 0x77, 0xb3, 0x18, 0xa6, 0xbc, 0xb6, 0xb8, 0x6a, 0x36,
+ 0xaa, 0x99, 0x72, 0x06, 0x80, 0xb3, 0xe4, 0xd1, 0x27, 0x2d, 0x18, 0x76, 0x6e, 0xc5, 0x3a, 0x63,
+ 0xb4, 0xf0, 0x16, 0x3d, 0xa2, 0x90, 0x4a, 0x25, 0xa1, 0xe6, 0x56, 0xeb, 0x54, 0x11, 0x4e, 0x13,
+ 0x45, 0x6f, 0x58, 0x80, 0xc8, 0x0e, 0x71, 0xa5, 0x3f, 0xab, 0xe8, 0x4b, 0x7f, 0x11, 0x87, 0xe5,
+ 0x0b, 0x1d, 0xed, 0x72, 0xae, 0xde, 0x59, 0x8e, 0x73, 0xfa, 0x80, 0x2e, 0x03, 0xaa, 0x7b, 0xb1,
+ 0xb3, 0xee, 0x93, 0xd9, 0xb0, 0x29, 0x23, 0x3f, 0xc5, 0xe5, 0xeb, 0x59, 0x31, 0xce, 0x68, 0xae,
+ 0x03, 0x03, 0xe7, 0xd4, 0x62, 0xab, 0x2c, 0x0a, 0x77, 0x76, 0xaf, 0x45, 0x3e, 0x93, 0x12, 0xe6,
+ 0x2a, 0x13, 0xe5, 0x58, 0x61, 0xd8, 0x7f, 0x51, 0x56, 0x5b, 0x59, 0x3b, 0x6f, 0x3b, 0x86, 0x13,
+ 0xa9, 0x75, 0xf7, 0x4e, 0xa4, 0xda, 0x09, 0xa6, 0x33, 0x9e, 0x39, 0x15, 0xfe, 0x58, 0xba, 0x4f,
+ 0xe1, 0x8f, 0x3f, 0x6f, 0xa5, 0x72, 0x89, 0x0d, 0x9e, 0x7f, 0xa9, 0x58, 0xc7, 0xf1, 0x49, 0xee,
+ 0xa0, 0x93, 0x91, 0x2b, 0x19, 0xbf, 0xac, 0xa7, 0xa0, 0xba, 0xe1, 0x3b, 0x2c, 0x03, 0x06, 0xdb,
+ 0xa8, 0x86, 0xf3, 0xd0, 0x45, 0x51, 0x8e, 0x15, 0x06, 0xe5, 0xfa, 0x46, 0xa3, 0x87, 0xe2, 0xda,
+ 0xff, 0xa9, 0x0c, 0x83, 0x86, 0xc4, 0xcf, 0x55, 0xdf, 0xac, 0x07, 0x4c, 0x7d, 0x2b, 0x1d, 0x42,
+ 0x7d, 0xfb, 0x39, 0xa8, 0xb9, 0x52, 0x1a, 0x15, 0x93, 0x1b, 0x3d, 0x2b, 0xe3, 0xb4, 0x40, 0x52,
+ 0x45, 0x58, 0xd3, 0x44, 0xf3, 0xa9, 0x10, 0xbb, 0x94, 0x5d, 0x20, 0x2f, 0x06, 0x4e, 0x48, 0xb4,
+ 0xce, 0x3a, 0xd9, 0x7b, 0xea, 0xca, 0xc1, 0xf7, 0xd4, 0xf6, 0x77, 0x2c, 0x35, 0xb9, 0xf7, 0x20,
+ 0x97, 0xca, 0xcd, 0x74, 0x2e, 0x95, 0x0b, 0x85, 0x0c, 0x73, 0x97, 0x24, 0x2a, 0x57, 0x61, 0x60,
+ 0x36, 0x6c, 0x36, 0x9d, 0xa0, 0x8e, 0x7e, 0x0c, 0x06, 0x5c, 0xfe, 0x53, 0xd8, 0xd0, 0xd8, 0x4d,
+ 0xac, 0x80, 0x62, 0x09, 0x43, 0x8f, 0x40, 0x9f, 0x13, 0x35, 0xa4, 0xdd, 0x8c, 0x79, 0x4c, 0x4d,
+ 0x47, 0x8d, 0x18, 0xb3, 0x52, 0xfb, 0x9f, 0xf5, 0x01, 0x73, 0x54, 0x70, 0x22, 0x52, 0x5f, 0x0b,
+ 0x59, 0x4a, 0xd3, 0x63, 0xbd, 0xbf, 0xd4, 0x87, 0xba, 0x07, 0xf9, 0x0e, 0xd3, 0xb8, 0xc7, 0x2a,
+ 0xdf, 0xe3, 0x7b, 0xac, 0x2e, 0x57, 0x93, 0x7d, 0x0f, 0xd0, 0xd5, 0xa4, 0xfd, 0x59, 0x0b, 0x90,
+ 0xf2, 0x6e, 0xd1, 0xbe, 0x03, 0x53, 0x50, 0x53, 0x7e, 0x2e, 0x42, 0x01, 0xd4, 0x2c, 0x42, 0x02,
+ 0xb0, 0xc6, 0xe9, 0xe1, 0x24, 0xff, 0xb8, 0xe4, 0xdf, 0xe5, 0xb4, 0xe3, 0x38, 0xe3, 0xfa, 0x82,
+ 0x9d, 0xdb, 0xbf, 0x5b, 0x82, 0x87, 0xb8, 0xea, 0xb0, 0xe4, 0x04, 0x4e, 0x83, 0x34, 0x69, 0xaf,
+ 0x7a, 0xf5, 0x06, 0x71, 0xe9, 0x11, 0xd2, 0x93, 0x8e, 0xe0, 0x47, 0xdd, 0xbb, 0x7c, 0xcf, 0xf1,
+ 0x5d, 0xb6, 0x10, 0x78, 0x09, 0x66, 0x8d, 0xa3, 0x18, 0xaa, 0xf2, 0xe1, 0x10, 0xc1, 0x8b, 0x0b,
+ 0x22, 0xa4, 0xd8, 0x92, 0x90, 0xb2, 0x04, 0x2b, 0x42, 0x54, 0x94, 0xfa, 0xa1, 0xbb, 0x85, 0x49,
+ 0x2b, 0xcc, 0x8a, 0xd2, 0x45, 0x51, 0x8e, 0x15, 0x86, 0xdd, 0x84, 0x51, 0x39, 0x86, 0xad, 0x2b,
+ 0x64, 0x17, 0x93, 0x0d, 0x2a, 0x7f, 0x5c, 0x59, 0x64, 0xbc, 0x65, 0xa2, 0xe4, 0xcf, 0xac, 0x09,
+ 0xc4, 0x69, 0x5c, 0x99, 0xe5, 0xb4, 0x94, 0x9f, 0xe5, 0xd4, 0xfe, 0x5d, 0x0b, 0xb2, 0x02, 0xd0,
+ 0xc8, 0xe9, 0x68, 0xed, 0x9b, 0xd3, 0xf1, 0x10, 0x59, 0x11, 0x7f, 0x06, 0x06, 0x9d, 0x84, 0x6a,
+ 0x38, 0xdc, 0x1a, 0x51, 0xbe, 0xbb, 0x0b, 0xab, 0xa5, 0xb0, 0xee, 0x6d, 0x78, 0xcc, 0x0a, 0x61,
+ 0x36, 0x67, 0xff, 0x55, 0x1f, 0x8c, 0x75, 0x44, 0x69, 0xa1, 0xe7, 0x61, 0x48, 0x0d, 0x85, 0xb4,
+ 0xf3, 0xd5, 0x4c, 0xd7, 0x4a, 0x0d, 0xc3, 0x29, 0xcc, 0x1e, 0xf6, 0xc3, 0x02, 0x9c, 0x8c, 0xc8,
+ 0xab, 0x6d, 0xd2, 0x26, 0xd3, 0x1b, 0x09, 0x89, 0x56, 0x89, 0x1b, 0x06, 0x75, 0x9e, 0x79, 0xb4,
+ 0x3c, 0xf3, 0xf0, 0xed, 0xbd, 0x89, 0x93, 0xb8, 0x13, 0x8c, 0xf3, 0xea, 0xa0, 0x16, 0x0c, 0xfb,
+ 0xa6, 0x82, 0x2a, 0xce, 0x45, 0x77, 0xa5, 0xdb, 0xaa, 0x25, 0x91, 0x2a, 0xc6, 0x69, 0x02, 0x69,
+ 0x2d, 0xb7, 0x72, 0x9f, 0xb4, 0xdc, 0x4f, 0x68, 0x2d, 0x97, 0x7b, 0x56, 0x7c, 0xa0, 0xe0, 0x28,
+ 0xbd, 0x5e, 0xd4, 0xdc, 0xa3, 0x28, 0xae, 0x2f, 0x42, 0x55, 0x7a, 0x9d, 0xf5, 0xe4, 0xad, 0x65,
+ 0xb6, 0xd3, 0x85, 0x81, 0x3e, 0x01, 0x3f, 0x7a, 0x21, 0x8a, 0x8c, 0xc1, 0xbc, 0x1a, 0x26, 0xd3,
+ 0xbe, 0x1f, 0xde, 0xa2, 0x3a, 0xc1, 0xb5, 0x98, 0x08, 0xc3, 0x93, 0x7d, 0xa7, 0x04, 0x39, 0x67,
+ 0x38, 0xba, 0x1f, 0xb5, 0x22, 0x92, 0xda, 0x8f, 0x87, 0x53, 0x46, 0xd0, 0x0e, 0xf7, 0xcc, 0xe3,
+ 0x22, 0xf7, 0xfd, 0x45, 0x9f, 0x41, 0xb5, 0xb3, 0x9e, 0x62, 0x47, 0xca, 0x61, 0xef, 0x3c, 0x80,
+ 0xd6, 0x1f, 0x45, 0xe8, 0x88, 0xba, 0xf8, 0xd7, 0x6a, 0x26, 0x36, 0xb0, 0xd0, 0x73, 0x30, 0xe8,
+ 0x05, 0x71, 0xe2, 0xf8, 0xfe, 0x25, 0x2f, 0x48, 0x84, 0x6d, 0x55, 0xe9, 0x16, 0x0b, 0x1a, 0x84,
+ 0x4d, 0xbc, 0xb3, 0xef, 0x34, 0xe6, 0xef, 0x30, 0xf3, 0xbe, 0x09, 0x67, 0xe6, 0xbd, 0x44, 0x05,
+ 0x3c, 0xa9, 0xf5, 0x46, 0xd5, 0x43, 0x15, 0xc0, 0x67, 0x75, 0x0d, 0xe0, 0x33, 0x02, 0x8e, 0x4a,
+ 0xe9, 0xf8, 0xa8, 0x6c, 0xc0, 0x91, 0xfd, 0x3c, 0x9c, 0x9a, 0xf7, 0x92, 0x8b, 0x9e, 0x4f, 0x0e,
+ 0x49, 0xc4, 0xfe, 0x9d, 0x7e, 0x18, 0x32, 0x43, 0x77, 0x0f, 0x13, 0x83, 0xf8, 0x79, 0xaa, 0x01,
+ 0x8a, 0xaf, 0xf3, 0xd4, 0xb5, 0xe9, 0x8d, 0x23, 0xc7, 0x11, 0xe7, 0x8f, 0x98, 0xa1, 0x04, 0x6a,
+ 0x9a, 0xd8, 0xec, 0x00, 0xba, 0x05, 0x95, 0x0d, 0x16, 0x10, 0x53, 0x2e, 0xc2, 0xb7, 0x24, 0x6f,
+ 0x44, 0xf5, 0x76, 0xe4, 0x21, 0x35, 0x9c, 0x1e, 0x15, 0xdc, 0x51, 0x3a, 0xca, 0xd2, 0x70, 0x7c,
+ 0x16, 0xf1, 0x95, 0x0a, 0xa3, 0x9b, 0x48, 0xa8, 0xdc, 0x85, 0x48, 0x48, 0x31, 0xe8, 0xfe, 0xfb,
+ 0xc4, 0xa0, 0x59, 0x70, 0x53, 0xb2, 0xc9, 0xd4, 0x4a, 0x11, 0xa9, 0x31, 0xc0, 0x06, 0xc1, 0x08,
+ 0x6e, 0x4a, 0x81, 0x71, 0x16, 0x1f, 0x7d, 0x54, 0xb1, 0xf8, 0x6a, 0x11, 0x66, 0x69, 0x73, 0x45,
+ 0x1f, 0x37, 0x77, 0xff, 0x6c, 0x09, 0x46, 0xe6, 0x83, 0xf6, 0xca, 0xfc, 0x4a, 0x7b, 0xdd, 0xf7,
+ 0xdc, 0x2b, 0x64, 0x97, 0xb2, 0xf0, 0x2d, 0xb2, 0xbb, 0x30, 0x27, 0x76, 0x90, 0x5a, 0x33, 0x57,
+ 0x68, 0x21, 0xe6, 0x30, 0xca, 0x8c, 0x36, 0xbc, 0xa0, 0x41, 0xa2, 0x56, 0xe4, 0x09, 0x8b, 0xb1,
+ 0xc1, 0x8c, 0x2e, 0x6a, 0x10, 0x36, 0xf1, 0x68, 0xdb, 0xe1, 0xad, 0x80, 0x44, 0x59, 0xfd, 0x7a,
+ 0x99, 0x16, 0x62, 0x0e, 0xa3, 0x48, 0x49, 0xd4, 0x16, 0x06, 0x19, 0x03, 0x69, 0x8d, 0x16, 0x62,
+ 0x0e, 0xa3, 0x3b, 0x3d, 0x6e, 0xaf, 0x33, 0xd7, 0x9d, 0x4c, 0x58, 0xc8, 0x2a, 0x2f, 0xc6, 0x12,
+ 0x4e, 0x51, 0xb7, 0xc8, 0xee, 0x1c, 0x3d, 0x8c, 0x67, 0x22, 0xdd, 0xae, 0xf0, 0x62, 0x2c, 0xe1,
+ 0x2c, 0x37, 0x6a, 0x7a, 0x38, 0x7e, 0xe0, 0x72, 0xa3, 0xa6, 0xbb, 0xdf, 0xe5, 0x58, 0xff, 0x6b,
+ 0x16, 0x0c, 0x99, 0x0e, 0x77, 0xa8, 0x91, 0xd1, 0x85, 0x97, 0x3b, 0x52, 0x6b, 0xbf, 0x3b, 0xef,
+ 0xd9, 0xc9, 0x86, 0x97, 0x84, 0xad, 0xf8, 0x69, 0x12, 0x34, 0xbc, 0x80, 0x30, 0x87, 0x08, 0xee,
+ 0xa8, 0x97, 0xf2, 0xe6, 0x9b, 0x0d, 0xeb, 0xe4, 0x2e, 0x94, 0x69, 0xfb, 0x06, 0x8c, 0x75, 0x84,
+ 0x37, 0xf6, 0xa0, 0x82, 0x1c, 0x18, 0x5c, 0x6e, 0x63, 0x18, 0xa4, 0x0d, 0xcb, 0xfc, 0x5c, 0xb3,
+ 0x30, 0xc6, 0x37, 0x12, 0xa5, 0xb4, 0xea, 0x6e, 0x92, 0xa6, 0x0a, 0x59, 0x65, 0xd7, 0x13, 0xd7,
+ 0xb3, 0x40, 0xdc, 0x89, 0x6f, 0x7f, 0xce, 0x82, 0xe1, 0x54, 0xc4, 0x69, 0x41, 0xca, 0x12, 0xdb,
+ 0x69, 0x21, 0xf3, 0xff, 0x64, 0x4e, 0xf0, 0x65, 0x26, 0x4c, 0xf5, 0x4e, 0xd3, 0x20, 0x6c, 0xe2,
+ 0xd9, 0x5f, 0x2c, 0x41, 0x55, 0xfa, 0xd0, 0xf4, 0xd0, 0x95, 0xcf, 0x58, 0x30, 0xac, 0xae, 0x84,
+ 0x98, 0x0d, 0xaf, 0x54, 0x44, 0x48, 0x0d, 0xed, 0x81, 0xb2, 0x02, 0x04, 0x1b, 0xa1, 0xd6, 0xdc,
+ 0xb1, 0x49, 0x0c, 0xa7, 0x69, 0xa3, 0xeb, 0x00, 0xf1, 0x6e, 0x9c, 0x90, 0xa6, 0x61, 0x4d, 0xb4,
+ 0x8d, 0x1d, 0x37, 0xe9, 0x86, 0x11, 0xa1, 0xfb, 0xeb, 0x6a, 0x58, 0x27, 0xab, 0x0a, 0x53, 0xab,
+ 0x50, 0xba, 0x0c, 0x1b, 0x2d, 0xd9, 0xff, 0xa4, 0x04, 0x27, 0xb2, 0x5d, 0x42, 0x1f, 0x80, 0x21,
+ 0x49, 0xdd, 0x38, 0x75, 0x4a, 0x0f, 0xa0, 0x21, 0x6c, 0xc0, 0xee, 0xec, 0x4d, 0x4c, 0x74, 0x3e,
+ 0x61, 0x3a, 0x69, 0xa2, 0xe0, 0x54, 0x63, 0xfc, 0x5e, 0x4e, 0x5c, 0x20, 0xcf, 0xec, 0x4e, 0xb7,
+ 0x5a, 0xe2, 0x72, 0xcd, 0xb8, 0x97, 0x33, 0xa1, 0x38, 0x83, 0x8d, 0x56, 0xe0, 0x94, 0x51, 0x72,
+ 0x95, 0x78, 0x8d, 0xcd, 0xf5, 0x30, 0x92, 0x27, 0xb0, 0x47, 0xb4, 0x6b, 0x5f, 0x27, 0x0e, 0xce,
+ 0xad, 0x49, 0xa5, 0xbd, 0xeb, 0xb4, 0x1c, 0xd7, 0x4b, 0x76, 0x85, 0x79, 0x54, 0xf1, 0xa6, 0x59,
+ 0x51, 0x8e, 0x15, 0x86, 0xbd, 0x04, 0x7d, 0x3d, 0xae, 0xa0, 0x9e, 0x34, 0xff, 0x17, 0xa1, 0x4a,
+ 0x9b, 0x93, 0xea, 0x5d, 0x11, 0x4d, 0x86, 0x50, 0x95, 0x0f, 0x42, 0x21, 0x1b, 0xca, 0x9e, 0x23,
+ 0xaf, 0x3e, 0xd5, 0x67, 0x2d, 0xc4, 0x71, 0x9b, 0x1d, 0xa6, 0x29, 0x10, 0x3d, 0x0e, 0x65, 0xb2,
+ 0xd3, 0xca, 0xde, 0x71, 0x5e, 0xd8, 0x69, 0x79, 0x11, 0x89, 0x29, 0x12, 0xd9, 0x69, 0xa1, 0xb3,
+ 0x50, 0xf2, 0xea, 0x42, 0x48, 0x81, 0xc0, 0x29, 0x2d, 0xcc, 0xe1, 0x92, 0x57, 0xb7, 0x77, 0xa0,
+ 0xa6, 0x5e, 0xa0, 0x42, 0x5b, 0x92, 0x77, 0x5b, 0x45, 0x38, 0xbd, 0xc9, 0x76, 0xbb, 0x70, 0xed,
+ 0x36, 0x80, 0x0e, 0x57, 0x2d, 0x8a, 0xbf, 0x9c, 0x83, 0x3e, 0x37, 0x14, 0x69, 0x01, 0xaa, 0xba,
+ 0x19, 0xc6, 0xb4, 0x19, 0xc4, 0xbe, 0x01, 0x23, 0x57, 0x82, 0xf0, 0x16, 0x7b, 0x28, 0x82, 0xe5,
+ 0x45, 0xa4, 0x0d, 0x6f, 0xd0, 0x1f, 0x59, 0x15, 0x81, 0x41, 0x31, 0x87, 0xa9, 0x8c, 0x6d, 0xa5,
+ 0x6e, 0x19, 0xdb, 0xec, 0x8f, 0x59, 0x30, 0xa4, 0xe2, 0xde, 0xe6, 0xb7, 0xb7, 0x68, 0xbb, 0x8d,
+ 0x28, 0x6c, 0xb7, 0xb2, 0xed, 0xb2, 0xc7, 0xee, 0x30, 0x87, 0x99, 0x01, 0xa1, 0xa5, 0x03, 0x02,
+ 0x42, 0xcf, 0x41, 0xdf, 0x96, 0x17, 0xd4, 0xb3, 0x8f, 0x1e, 0x5d, 0xf1, 0x82, 0x3a, 0x66, 0x10,
+ 0xda, 0x85, 0x13, 0xaa, 0x0b, 0x52, 0x20, 0x3c, 0x0f, 0x43, 0xeb, 0x6d, 0xcf, 0xaf, 0xcb, 0x84,
+ 0x8f, 0x19, 0x8b, 0xca, 0x8c, 0x01, 0xc3, 0x29, 0x4c, 0x7a, 0xae, 0x5b, 0xf7, 0x02, 0x27, 0xda,
+ 0x5d, 0xd1, 0x12, 0x48, 0x31, 0xa5, 0x19, 0x05, 0xc1, 0x06, 0x96, 0xfd, 0x7a, 0x19, 0x46, 0xd2,
+ 0xd1, 0x7f, 0x3d, 0x1c, 0xaf, 0x1e, 0x87, 0x0a, 0x0b, 0x08, 0xcc, 0x4e, 0x2d, 0xcf, 0x91, 0xc8,
+ 0x61, 0x28, 0x86, 0x7e, 0x9e, 0x16, 0xa5, 0x98, 0x07, 0xc3, 0x54, 0x27, 0x95, 0x1d, 0x86, 0xb9,
+ 0x06, 0x8a, 0x4c, 0x2c, 0x82, 0x14, 0xfa, 0xa4, 0x05, 0x03, 0x61, 0xcb, 0xcc, 0xf4, 0xf5, 0xfe,
+ 0x22, 0x23, 0x23, 0x45, 0xb8, 0x94, 0xd0, 0x88, 0xd5, 0xd4, 0xcb, 0xe9, 0x90, 0xa4, 0xcf, 0xbe,
+ 0x0b, 0x86, 0x4c, 0xcc, 0x83, 0x94, 0xe2, 0xaa, 0xa9, 0x14, 0x7f, 0xc6, 0x5c, 0x14, 0x22, 0xf6,
+ 0xb3, 0x87, 0xed, 0x76, 0x0d, 0x2a, 0xae, 0xf2, 0x9f, 0xb8, 0xab, 0x34, 0xc1, 0x2a, 0x4f, 0x09,
+ 0xbb, 0x9b, 0xe2, 0xad, 0xd9, 0xdf, 0xb1, 0x8c, 0xf5, 0x81, 0x49, 0xbc, 0x50, 0x47, 0x11, 0x94,
+ 0x1b, 0xdb, 0x5b, 0x42, 0x15, 0xbd, 0x5c, 0xd0, 0xf0, 0xce, 0x6f, 0x6f, 0xe9, 0x35, 0x6e, 0x96,
+ 0x62, 0x4a, 0xac, 0x07, 0x63, 0x61, 0x2a, 0x44, 0xb8, 0x7c, 0x70, 0x88, 0xb0, 0xfd, 0x46, 0x09,
+ 0xc6, 0x3a, 0x16, 0x15, 0x7a, 0x0d, 0x2a, 0x11, 0xfd, 0x4a, 0xf1, 0x79, 0x8b, 0x85, 0x05, 0xf5,
+ 0xc6, 0x0b, 0x75, 0x2d, 0x77, 0xd3, 0xe5, 0x98, 0x93, 0x44, 0x97, 0x01, 0x69, 0x2f, 0x1f, 0x65,
+ 0xa9, 0xe4, 0x9f, 0xac, 0x5c, 0x01, 0xa6, 0x3b, 0x30, 0x70, 0x4e, 0x2d, 0xf4, 0x42, 0xd6, 0xe0,
+ 0x59, 0x4e, 0x9b, 0xb3, 0xf7, 0xb3, 0x5d, 0xda, 0xbf, 0x55, 0x82, 0xe1, 0x54, 0xe2, 0x35, 0xe4,
+ 0x43, 0x95, 0xf8, 0xec, 0xae, 0x41, 0x0a, 0x9b, 0xa3, 0xa6, 0x51, 0x57, 0x02, 0xf2, 0x82, 0x68,
+ 0x17, 0x2b, 0x0a, 0x0f, 0x86, 0x87, 0xc0, 0xf3, 0x30, 0x24, 0x3b, 0xf4, 0x7e, 0xa7, 0xe9, 0x8b,
+ 0x01, 0x54, 0x6b, 0xf4, 0x82, 0x01, 0xc3, 0x29, 0x4c, 0xfb, 0xf7, 0xca, 0x30, 0xce, 0x2f, 0x67,
+ 0xea, 0x6a, 0xe5, 0x2d, 0xc9, 0xf3, 0xd6, 0xdf, 0xd0, 0xe9, 0x11, 0xad, 0x22, 0xde, 0x0a, 0xed,
+ 0x46, 0xa8, 0x27, 0xc7, 0xb6, 0xaf, 0x64, 0x1c, 0xdb, 0xb8, 0xda, 0xdd, 0x38, 0xa6, 0x1e, 0xfd,
+ 0x60, 0x79, 0xba, 0xfd, 0xc3, 0x12, 0x8c, 0x66, 0x9e, 0x84, 0x41, 0xaf, 0xa7, 0xb3, 0x88, 0x5b,
+ 0x45, 0xd8, 0xd4, 0xf7, 0x7d, 0x25, 0xe4, 0x70, 0xb9, 0xc4, 0xef, 0xd3, 0x56, 0xb1, 0xbf, 0x5d,
+ 0x82, 0x91, 0xf4, 0x5b, 0x36, 0x0f, 0xe0, 0x48, 0xbd, 0x1d, 0x6a, 0xec, 0xb9, 0x06, 0xf6, 0x04,
+ 0x33, 0x37, 0xc9, 0xf3, 0xcc, 0xf8, 0xb2, 0x10, 0x6b, 0xf8, 0x03, 0x91, 0xa2, 0xdd, 0xfe, 0xc7,
+ 0x16, 0x9c, 0xe6, 0x5f, 0x99, 0x5d, 0x87, 0x7f, 0x33, 0x6f, 0x74, 0x5f, 0x2e, 0xb6, 0x83, 0x99,
+ 0xb4, 0x9e, 0x07, 0x8d, 0x2f, 0x7b, 0x31, 0x55, 0xf4, 0x36, 0xbd, 0x14, 0x1e, 0xc0, 0xce, 0x1e,
+ 0x6a, 0x31, 0xd8, 0xdf, 0x2e, 0x83, 0x7e, 0x24, 0x16, 0x79, 0x22, 0xca, 0xb5, 0x90, 0xf4, 0xa6,
+ 0xab, 0xbb, 0x81, 0xab, 0x9f, 0xa3, 0xad, 0x66, 0x82, 0x5c, 0x7f, 0xd1, 0x82, 0x41, 0x2f, 0xf0,
+ 0x12, 0xcf, 0x61, 0xc7, 0xe8, 0x62, 0x5e, 0x7a, 0x54, 0xe4, 0x16, 0x78, 0xcb, 0x61, 0x64, 0xde,
+ 0xe3, 0x28, 0x62, 0xd8, 0xa4, 0x8c, 0x3e, 0x24, 0x7c, 0xcf, 0xcb, 0x85, 0xc5, 0x67, 0x57, 0x33,
+ 0x0e, 0xe7, 0x2d, 0xaa, 0x78, 0x25, 0x51, 0x41, 0x69, 0x0d, 0x30, 0x6d, 0x4a, 0x65, 0xca, 0x56,
+ 0xaa, 0x2d, 0x2b, 0xc6, 0x9c, 0x90, 0x1d, 0x03, 0xea, 0x1c, 0x8b, 0x43, 0xfa, 0xf5, 0x4e, 0x41,
+ 0xcd, 0x69, 0x27, 0x61, 0x93, 0x0e, 0x93, 0xb8, 0x6a, 0xd2, 0x9e, 0xcb, 0x12, 0x80, 0x35, 0x8e,
+ 0xfd, 0x7a, 0x05, 0x32, 0x61, 0xa7, 0x68, 0xc7, 0x7c, 0xe0, 0xd8, 0x2a, 0xf6, 0x81, 0x63, 0xd5,
+ 0x99, 0xbc, 0x47, 0x8e, 0x51, 0x03, 0x2a, 0xad, 0x4d, 0x27, 0x96, 0x6a, 0xf5, 0x8b, 0xea, 0x1c,
+ 0x47, 0x0b, 0xef, 0xec, 0x4d, 0xfc, 0x74, 0x6f, 0x56, 0x57, 0xba, 0x56, 0xa7, 0x78, 0xaa, 0x1c,
+ 0x4d, 0x9a, 0xb5, 0x81, 0x79, 0xfb, 0x87, 0x79, 0xeb, 0xf2, 0xe3, 0xe2, 0x5d, 0x0a, 0x4c, 0xe2,
+ 0xb6, 0x9f, 0x88, 0xd5, 0xf0, 0x62, 0x81, 0xbb, 0x8c, 0x37, 0xac, 0x13, 0x26, 0xf0, 0xff, 0xd8,
+ 0x20, 0x8a, 0x3e, 0x00, 0xb5, 0x38, 0x71, 0xa2, 0xe4, 0x2e, 0x43, 0x9c, 0x75, 0x4a, 0x33, 0xd9,
+ 0x08, 0xd6, 0xed, 0xa1, 0x97, 0x58, 0xb6, 0x67, 0x2f, 0xde, 0xbc, 0xcb, 0x90, 0x11, 0x99, 0x19,
+ 0x5a, 0xb4, 0x80, 0x8d, 0xd6, 0xd0, 0x79, 0x00, 0xb6, 0xb6, 0xb9, 0xff, 0x61, 0x95, 0x59, 0x99,
+ 0x14, 0x2b, 0xc4, 0x0a, 0x82, 0x0d, 0x2c, 0xfb, 0x27, 0x20, 0x9d, 0xf1, 0x03, 0x4d, 0xc8, 0x04,
+ 0x23, 0xdc, 0x0a, 0xcd, 0x42, 0x3f, 0x52, 0xb9, 0x40, 0x7e, 0xc3, 0x02, 0x33, 0x2d, 0x09, 0x7a,
+ 0x95, 0xe7, 0x3f, 0xb1, 0x8a, 0xb8, 0x39, 0x34, 0xda, 0x9d, 0x5c, 0x72, 0x5a, 0x99, 0x2b, 0x6c,
+ 0x99, 0x04, 0xe5, 0xec, 0x3b, 0xa1, 0x2a, 0xa1, 0x87, 0x52, 0xea, 0x3e, 0x0a, 0x27, 0x65, 0x18,
+ 0xa9, 0xb4, 0x9b, 0x8a, 0x5b, 0xa7, 0x83, 0x4d, 0x3f, 0xd2, 0x9e, 0x53, 0xea, 0x66, 0xcf, 0xe9,
+ 0xe1, 0x99, 0xeb, 0xdf, 0xb4, 0xe0, 0x5c, 0xb6, 0x03, 0xf1, 0x52, 0x18, 0x78, 0x49, 0x18, 0xad,
+ 0x92, 0x24, 0xf1, 0x82, 0x06, 0x4b, 0xfb, 0x76, 0xcb, 0x89, 0x64, 0x1a, 0x7e, 0xc6, 0x28, 0x6f,
+ 0x38, 0x51, 0x80, 0x59, 0x29, 0xda, 0x85, 0x7e, 0xee, 0xa4, 0x26, 0xb4, 0xf5, 0x23, 0xee, 0x8d,
+ 0x9c, 0xe1, 0xd0, 0xc7, 0x05, 0xee, 0x20, 0x87, 0x05, 0x41, 0xfb, 0x7b, 0x16, 0xa0, 0xe5, 0x6d,
+ 0x12, 0x45, 0x5e, 0xdd, 0x70, 0xab, 0x63, 0xef, 0x3b, 0x19, 0xef, 0x38, 0x99, 0x41, 0xce, 0x99,
+ 0xf7, 0x9d, 0x8c, 0x7f, 0xf9, 0xef, 0x3b, 0x95, 0x0e, 0xf7, 0xbe, 0x13, 0x5a, 0x86, 0xd3, 0x4d,
+ 0x7e, 0xdc, 0xe0, 0x6f, 0xa6, 0xf0, 0xb3, 0x87, 0x8a, 0xc7, 0x3b, 0x73, 0x7b, 0x6f, 0xe2, 0xf4,
+ 0x52, 0x1e, 0x02, 0xce, 0xaf, 0x67, 0xbf, 0x13, 0x10, 0xf7, 0xa6, 0x9b, 0xcd, 0xf3, 0x55, 0xea,
+ 0x6a, 0x7e, 0xb1, 0xbf, 0x5c, 0x81, 0xd1, 0x4c, 0x92, 0x66, 0x7a, 0xd4, 0xeb, 0x74, 0x8e, 0x3a,
+ 0xb2, 0xfc, 0xee, 0xec, 0x5e, 0x4f, 0xee, 0x56, 0x01, 0x54, 0xbc, 0xa0, 0xd5, 0x4e, 0x8a, 0x09,
+ 0x07, 0xe6, 0x9d, 0x58, 0xa0, 0x0d, 0x1a, 0xe6, 0x62, 0xfa, 0x17, 0x73, 0x32, 0x45, 0x3a, 0x6f,
+ 0xa5, 0x94, 0xf1, 0xbe, 0xfb, 0x64, 0x0e, 0xf8, 0xb8, 0x76, 0xa5, 0xaa, 0x14, 0x61, 0x58, 0xcc,
+ 0x2c, 0x96, 0xe3, 0xbe, 0x6a, 0xff, 0x46, 0x09, 0x06, 0x8d, 0x49, 0x43, 0xbf, 0x9a, 0x4e, 0xda,
+ 0x65, 0x15, 0xf7, 0x49, 0xac, 0xfd, 0x49, 0x9d, 0x96, 0x8b, 0x7f, 0xd2, 0x13, 0x9d, 0xf9, 0xba,
+ 0xee, 0xec, 0x4d, 0x9c, 0xc8, 0x64, 0xe4, 0x4a, 0xe5, 0xf0, 0x3a, 0xfb, 0x11, 0x18, 0xcd, 0x34,
+ 0x93, 0xf3, 0xc9, 0x6b, 0xe6, 0x27, 0x1f, 0xd9, 0x2c, 0x65, 0x0e, 0xd9, 0xd7, 0xe9, 0x90, 0x89,
+ 0x28, 0xc4, 0xd0, 0x27, 0x3d, 0xd8, 0x60, 0x33, 0xc1, 0xc6, 0xa5, 0x1e, 0x83, 0x8d, 0x9f, 0x84,
+ 0x6a, 0x2b, 0xf4, 0x3d, 0xd7, 0x53, 0x39, 0x34, 0x59, 0x78, 0xf3, 0x8a, 0x28, 0xc3, 0x0a, 0x8a,
+ 0x6e, 0x41, 0xed, 0xe6, 0xad, 0x84, 0xdf, 0xfe, 0x08, 0xfb, 0x76, 0x51, 0x97, 0x3e, 0x4a, 0x69,
+ 0x51, 0xd7, 0x4b, 0x58, 0xd3, 0x42, 0x36, 0xf4, 0x33, 0x21, 0x28, 0x23, 0x12, 0x98, 0xed, 0x9d,
+ 0x49, 0xc7, 0x18, 0x0b, 0x88, 0xfd, 0xb5, 0x1a, 0x9c, 0xca, 0xcb, 0x94, 0x8f, 0x3e, 0x0c, 0xfd,
+ 0xbc, 0x8f, 0xc5, 0x3c, 0xc6, 0x92, 0x47, 0x63, 0x9e, 0x35, 0x28, 0xba, 0xc5, 0x7e, 0x63, 0x41,
+ 0x53, 0x50, 0xf7, 0x9d, 0x75, 0xb1, 0x42, 0x8e, 0x87, 0xfa, 0xa2, 0xa3, 0xa9, 0x2f, 0x3a, 0x9c,
+ 0xba, 0xef, 0xac, 0xa3, 0x1d, 0xa8, 0x34, 0xbc, 0x84, 0x38, 0xc2, 0x88, 0x70, 0xe3, 0x58, 0x88,
+ 0x13, 0x87, 0x6b, 0x69, 0xec, 0x27, 0xe6, 0x04, 0xd1, 0x57, 0x2d, 0x18, 0x5d, 0x4f, 0x67, 0x39,
+ 0x10, 0xcc, 0xd3, 0x39, 0x86, 0xd7, 0x10, 0xd2, 0x84, 0xf8, 0x03, 0x67, 0x99, 0x42, 0x9c, 0xed,
+ 0x0e, 0xfa, 0x84, 0x05, 0x03, 0x1b, 0x9e, 0x6f, 0x24, 0xa4, 0x3e, 0x86, 0xc9, 0xb9, 0xc8, 0x08,
+ 0xe8, 0x13, 0x07, 0xff, 0x1f, 0x63, 0x49, 0xb9, 0x9b, 0xa4, 0xea, 0x3f, 0xaa, 0xa4, 0x1a, 0xb8,
+ 0x4f, 0x92, 0xea, 0xd3, 0x16, 0xd4, 0xd4, 0x48, 0x8b, 0x68, 0xf1, 0x0f, 0x1c, 0xe3, 0x94, 0x73,
+ 0xcb, 0x89, 0xfa, 0x8b, 0x35, 0x71, 0xf4, 0x05, 0x0b, 0x06, 0x9d, 0xd7, 0xda, 0x11, 0xa9, 0x93,
+ 0xed, 0xb0, 0x15, 0x8b, 0xd7, 0x51, 0x5f, 0x2e, 0xbe, 0x33, 0xd3, 0x94, 0xc8, 0x1c, 0xd9, 0x5e,
+ 0x6e, 0xc5, 0x22, 0x5a, 0x4a, 0x17, 0x60, 0xb3, 0x0b, 0xf6, 0x5e, 0x09, 0x26, 0x0e, 0x68, 0x01,
+ 0x3d, 0x0f, 0x43, 0x61, 0xd4, 0x70, 0x02, 0xef, 0x35, 0x33, 0x6d, 0x89, 0xd2, 0xb2, 0x96, 0x0d,
+ 0x18, 0x4e, 0x61, 0x9a, 0xf1, 0xec, 0xa5, 0x03, 0xe2, 0xd9, 0xcf, 0x41, 0x5f, 0x44, 0x5a, 0x61,
+ 0xf6, 0xb0, 0xc0, 0x22, 0x15, 0x18, 0x04, 0x3d, 0x0a, 0x65, 0xa7, 0xe5, 0x09, 0x47, 0x34, 0x75,
+ 0x06, 0x9a, 0x5e, 0x59, 0xc0, 0xb4, 0x3c, 0x95, 0x5e, 0xa3, 0x72, 0x4f, 0xd2, 0x6b, 0x50, 0x31,
+ 0x20, 0xee, 0x2e, 0xfa, 0xb5, 0x18, 0x48, 0xdf, 0x29, 0xd8, 0x6f, 0x94, 0xe1, 0xd1, 0x7d, 0xd7,
+ 0x8b, 0xf6, 0xc3, 0xb3, 0xf6, 0xf1, 0xc3, 0x93, 0xc3, 0x53, 0x3a, 0x68, 0x78, 0xca, 0x5d, 0x86,
+ 0xe7, 0x13, 0x74, 0x1b, 0xc8, 0x74, 0x2f, 0xc5, 0xbc, 0x6f, 0xd9, 0x2d, 0x7b, 0x8c, 0xd8, 0x01,
+ 0x12, 0x8a, 0x35, 0x5d, 0x7a, 0x06, 0x48, 0xc5, 0x72, 0x57, 0x8a, 0x10, 0x03, 0x5d, 0x53, 0xae,
+ 0xf0, 0xb5, 0xdf, 0x2d, 0x40, 0xdc, 0xfe, 0xed, 0x3e, 0x78, 0xbc, 0x07, 0xee, 0x6d, 0xae, 0x62,
+ 0xab, 0xc7, 0x55, 0xfc, 0x03, 0x3e, 0x4d, 0x9f, 0xca, 0x9d, 0x26, 0x5c, 0xfc, 0x34, 0xed, 0x3f,
+ 0x43, 0xe8, 0x29, 0xa8, 0x7a, 0x41, 0x4c, 0xdc, 0x76, 0xc4, 0x7d, 0x92, 0x8d, 0x30, 0xa6, 0x05,
+ 0x51, 0x8e, 0x15, 0x06, 0x3d, 0xd3, 0xb9, 0x0e, 0xdd, 0xfe, 0x03, 0x05, 0xc5, 0xee, 0x9a, 0x11,
+ 0x51, 0x5c, 0xa5, 0x98, 0x9d, 0xa6, 0x1c, 0x80, 0x93, 0xb1, 0xff, 0x96, 0x05, 0x67, 0xbb, 0x8b,
+ 0x58, 0xf4, 0x0c, 0x0c, 0xae, 0x47, 0x4e, 0xe0, 0x6e, 0xb2, 0x97, 0x8d, 0xe5, 0xd2, 0x61, 0xdf,
+ 0xab, 0x8b, 0xb1, 0x89, 0x83, 0x66, 0x61, 0x8c, 0x7b, 0x6e, 0x18, 0x18, 0x32, 0xf2, 0xf7, 0xf6,
+ 0xde, 0xc4, 0xd8, 0x5a, 0x16, 0x88, 0x3b, 0xf1, 0xed, 0xef, 0x97, 0xf3, 0xbb, 0xc5, 0x55, 0xb1,
+ 0xc3, 0xac, 0x66, 0xb1, 0x56, 0x4b, 0x3d, 0x70, 0xdc, 0xf2, 0xbd, 0xe6, 0xb8, 0x7d, 0xdd, 0x38,
+ 0x2e, 0x9a, 0x83, 0x13, 0xc6, 0xd3, 0x53, 0x3c, 0x9a, 0x9b, 0xbb, 0x25, 0xab, 0x54, 0x2c, 0x2b,
+ 0x19, 0x38, 0xee, 0xa8, 0xf1, 0x80, 0x2f, 0xbd, 0x5f, 0x2b, 0xc1, 0x99, 0xae, 0xda, 0xef, 0x3d,
+ 0x92, 0x28, 0xe6, 0xf4, 0xf7, 0xdd, 0x9b, 0xe9, 0x37, 0x27, 0xa5, 0x72, 0xd0, 0xa4, 0xd8, 0x7f,
+ 0x5c, 0xea, 0xba, 0x11, 0xe8, 0x49, 0xe8, 0x87, 0x76, 0x94, 0x5e, 0x80, 0x61, 0xa7, 0xd5, 0xe2,
+ 0x78, 0xcc, 0x8b, 0x36, 0x93, 0xfa, 0x69, 0xda, 0x04, 0xe2, 0x34, 0x6e, 0x4f, 0x3a, 0xcd, 0x9f,
+ 0x58, 0x50, 0xc3, 0x64, 0x83, 0x73, 0x23, 0x74, 0x53, 0x0c, 0x91, 0x55, 0x44, 0x9e, 0x5b, 0x3a,
+ 0xb0, 0xb1, 0xc7, 0xf2, 0xbf, 0xe6, 0x0d, 0x76, 0xe7, 0x53, 0x64, 0xa5, 0x43, 0x3d, 0x45, 0xa6,
+ 0x1e, 0xa3, 0x2a, 0x77, 0x7f, 0x8c, 0xca, 0xfe, 0xee, 0x00, 0xfd, 0xbc, 0x56, 0x38, 0x1b, 0x91,
+ 0x7a, 0x4c, 0xe7, 0xb7, 0x1d, 0xf9, 0x62, 0x91, 0xa8, 0xf9, 0xbd, 0x86, 0x17, 0x31, 0x2d, 0x4f,
+ 0x5d, 0x90, 0x95, 0x0e, 0x95, 0xf8, 0xa6, 0x7c, 0x60, 0xe2, 0x9b, 0x17, 0x60, 0x38, 0x8e, 0x37,
+ 0x57, 0x22, 0x6f, 0xdb, 0x49, 0xc8, 0x15, 0xb2, 0x2b, 0x74, 0x5f, 0x9d, 0x04, 0x62, 0xf5, 0x92,
+ 0x06, 0xe2, 0x34, 0x2e, 0x9a, 0x87, 0x31, 0x9d, 0x7e, 0x86, 0x44, 0x09, 0x8b, 0xb9, 0xe0, 0x2b,
+ 0x41, 0x45, 0x7c, 0xeb, 0x84, 0x35, 0x02, 0x01, 0x77, 0xd6, 0xa1, 0xfc, 0x34, 0x55, 0x48, 0x3b,
+ 0xd2, 0x9f, 0xe6, 0xa7, 0xa9, 0x76, 0x68, 0x5f, 0x3a, 0x6a, 0xa0, 0x25, 0x38, 0xc9, 0x17, 0xc6,
+ 0x74, 0xab, 0x65, 0x7c, 0xd1, 0x40, 0x3a, 0xbf, 0xe8, 0x7c, 0x27, 0x0a, 0xce, 0xab, 0x87, 0x9e,
+ 0x83, 0x41, 0x55, 0xbc, 0x30, 0x27, 0xee, 0x76, 0x94, 0x6d, 0x49, 0x35, 0xb3, 0x50, 0xc7, 0x26,
+ 0x1e, 0x7a, 0x3f, 0x3c, 0xac, 0xff, 0xf2, 0xc0, 0x3c, 0x7e, 0xe1, 0x39, 0x27, 0x32, 0x7b, 0xa9,
+ 0xa7, 0x8f, 0xe6, 0x73, 0xd1, 0xea, 0xb8, 0x5b, 0x7d, 0xb4, 0x0e, 0x67, 0x15, 0xe8, 0x42, 0x90,
+ 0xb0, 0x28, 0x9b, 0x98, 0xcc, 0x38, 0x31, 0xb9, 0x16, 0xf9, 0xe2, 0x09, 0x6d, 0xf5, 0x3a, 0xee,
+ 0xbc, 0x97, 0x5c, 0xca, 0xc3, 0xc4, 0x8b, 0x78, 0x9f, 0x56, 0xd0, 0x14, 0xd4, 0x48, 0xe0, 0xac,
+ 0xfb, 0x64, 0x79, 0x76, 0x81, 0x65, 0x08, 0x33, 0xee, 0x57, 0x2f, 0x48, 0x00, 0xd6, 0x38, 0xca,
+ 0xef, 0x77, 0xa8, 0xeb, 0x4b, 0xcd, 0x2b, 0x70, 0xaa, 0xe1, 0xb6, 0xa8, 0x46, 0xe8, 0xb9, 0x64,
+ 0xda, 0x65, 0x6e, 0x8e, 0x74, 0x62, 0x78, 0xe2, 0x57, 0xe5, 0xd4, 0x3e, 0x3f, 0xbb, 0xd2, 0x81,
+ 0x83, 0x73, 0x6b, 0x32, 0x77, 0xd8, 0x28, 0xdc, 0xd9, 0x1d, 0x3f, 0x99, 0x71, 0x87, 0xa5, 0x85,
+ 0x98, 0xc3, 0xd0, 0x65, 0x40, 0x2c, 0x42, 0xe2, 0x52, 0x92, 0xb4, 0x94, 0x0a, 0x3a, 0x7e, 0x2a,
+ 0x9d, 0xe7, 0xe7, 0x62, 0x07, 0x06, 0xce, 0xa9, 0x45, 0x35, 0x9a, 0x20, 0x64, 0xad, 0x8f, 0x3f,
+ 0x9c, 0xd6, 0x68, 0xae, 0xf2, 0x62, 0x2c, 0xe1, 0xf6, 0x7f, 0xb6, 0x60, 0x58, 0x6d, 0xed, 0x7b,
+ 0x10, 0x4e, 0xe4, 0xa7, 0xc3, 0x89, 0xe6, 0x8f, 0xce, 0x1c, 0x59, 0xcf, 0xbb, 0xf8, 0xa4, 0x7f,
+ 0x63, 0x10, 0x40, 0x33, 0x50, 0x25, 0xbb, 0xac, 0xae, 0xb2, 0xeb, 0x81, 0x65, 0x5e, 0x79, 0x19,
+ 0x79, 0x2a, 0xf7, 0x37, 0x23, 0xcf, 0x2a, 0x9c, 0x96, 0x9a, 0x05, 0xbf, 0xec, 0xbb, 0x14, 0xc6,
+ 0x8a, 0x17, 0x56, 0x67, 0x1e, 0x15, 0x0d, 0x9d, 0x5e, 0xc8, 0x43, 0xc2, 0xf9, 0x75, 0x53, 0x0a,
+ 0xcd, 0xc0, 0x81, 0x5a, 0xa6, 0xda, 0xfe, 0x8b, 0x1b, 0xf2, 0x09, 0xa1, 0xcc, 0xf6, 0x5f, 0xbc,
+ 0xb8, 0x8a, 0x35, 0x4e, 0xbe, 0x0c, 0xa8, 0x15, 0x24, 0x03, 0xe0, 0xd0, 0x32, 0x40, 0x72, 0xa3,
+ 0xc1, 0xae, 0xdc, 0x48, 0x5e, 0x2a, 0x0c, 0x75, 0xbd, 0x54, 0x78, 0x0f, 0x8c, 0x78, 0xc1, 0x26,
+ 0x89, 0xbc, 0x84, 0xd4, 0xd9, 0x5e, 0x60, 0x9c, 0xaa, 0xaa, 0x35, 0x80, 0x85, 0x14, 0x14, 0x67,
+ 0xb0, 0xd3, 0x2c, 0x74, 0xa4, 0x07, 0x16, 0xda, 0x45, 0x70, 0x8d, 0x16, 0x23, 0xb8, 0x4e, 0x1c,
+ 0x5d, 0x70, 0x8d, 0x1d, 0xab, 0xe0, 0x42, 0x85, 0x08, 0xae, 0x9e, 0x64, 0x82, 0x71, 0x32, 0x3d,
+ 0x75, 0xc0, 0xc9, 0xb4, 0x9b, 0xd4, 0x3a, 0x7d, 0xd7, 0x52, 0x2b, 0x5f, 0x20, 0x3d, 0x74, 0xdc,
+ 0x02, 0xe9, 0xd3, 0x25, 0x38, 0xad, 0x59, 0x36, 0xdd, 0x28, 0xde, 0x06, 0x65, 0x5a, 0xec, 0xc1,
+ 0x3a, 0x7e, 0x47, 0x67, 0x04, 0xc2, 0xe9, 0x98, 0x3a, 0x05, 0xc1, 0x06, 0x16, 0x8b, 0x27, 0x23,
+ 0x11, 0xcb, 0x7e, 0x9d, 0xe5, 0xe7, 0xb3, 0xa2, 0x1c, 0x2b, 0x0c, 0xba, 0x14, 0xe9, 0x6f, 0x11,
+ 0xa3, 0x9b, 0xcd, 0xab, 0x38, 0xab, 0x41, 0xd8, 0xc4, 0x43, 0x4f, 0x72, 0x22, 0x8c, 0x97, 0x50,
+ 0x9e, 0x3e, 0x24, 0x5e, 0x05, 0x97, 0xec, 0x43, 0x41, 0x65, 0x77, 0x58, 0xe0, 0x60, 0xa5, 0xb3,
+ 0x3b, 0xcc, 0xdd, 0x4d, 0x61, 0xd8, 0xff, 0xd3, 0x82, 0x33, 0xb9, 0x43, 0x71, 0x0f, 0xe4, 0xf4,
+ 0x4e, 0x5a, 0x4e, 0xaf, 0x16, 0x75, 0x88, 0x31, 0xbe, 0xa2, 0x8b, 0xcc, 0xfe, 0x8f, 0x16, 0x8c,
+ 0x68, 0xfc, 0x7b, 0xf0, 0xa9, 0x5e, 0xfa, 0x53, 0x8b, 0x3b, 0xaf, 0xd5, 0x3a, 0xbe, 0xed, 0xf7,
+ 0x4a, 0xa0, 0x72, 0x9d, 0x4e, 0xbb, 0x32, 0x93, 0xf4, 0x01, 0xb7, 0xc6, 0xbb, 0xd0, 0xcf, 0x2e,
+ 0xbd, 0xe3, 0x62, 0x1c, 0x7a, 0xd2, 0xf4, 0xd9, 0x05, 0xba, 0x76, 0x28, 0x60, 0x7f, 0x63, 0x2c,
+ 0x08, 0xb2, 0xdc, 0xec, 0x3c, 0x8d, 0x64, 0x5d, 0x84, 0xe0, 0xe9, 0xdc, 0xec, 0xa2, 0x1c, 0x2b,
+ 0x0c, 0x2a, 0x49, 0x3c, 0x37, 0x0c, 0x66, 0x7d, 0x27, 0x96, 0x2f, 0xce, 0x2a, 0x49, 0xb2, 0x20,
+ 0x01, 0x58, 0xe3, 0xb0, 0xfb, 0x70, 0x2f, 0x6e, 0xf9, 0xce, 0xae, 0x71, 0x2a, 0x37, 0x72, 0x51,
+ 0x28, 0x10, 0x36, 0xf1, 0xec, 0x26, 0x8c, 0xa7, 0x3f, 0x62, 0x8e, 0x6c, 0x30, 0x67, 0xd4, 0x9e,
+ 0x86, 0x73, 0x0a, 0x6a, 0x0e, 0xab, 0xb5, 0xd8, 0x76, 0x04, 0x4f, 0xd0, 0x2e, 0x99, 0x12, 0x80,
+ 0x35, 0x8e, 0xfd, 0x8f, 0x2c, 0x38, 0x99, 0x33, 0x68, 0x05, 0x86, 0x38, 0x26, 0x9a, 0xdb, 0xe4,
+ 0xe9, 0x00, 0x3f, 0x0e, 0x03, 0x75, 0xb2, 0xe1, 0x48, 0x77, 0x47, 0x83, 0x7b, 0xce, 0xf1, 0x62,
+ 0x2c, 0xe1, 0xf6, 0x6f, 0x95, 0x60, 0x34, 0xdd, 0xd7, 0x98, 0x85, 0x0d, 0xf1, 0x61, 0xf2, 0x62,
+ 0x37, 0xdc, 0x26, 0xd1, 0x2e, 0xfd, 0x72, 0x2b, 0x13, 0x36, 0xd4, 0x81, 0x81, 0x73, 0x6a, 0xb1,
+ 0x4c, 0xc7, 0x75, 0x35, 0xda, 0x72, 0x45, 0x5e, 0x2f, 0x72, 0x45, 0xea, 0xc9, 0x34, 0x5d, 0x23,
+ 0x14, 0x49, 0x6c, 0xd2, 0xa7, 0xba, 0x08, 0xf3, 0xc3, 0x9e, 0x69, 0x7b, 0x7e, 0xe2, 0x05, 0xe2,
+ 0x93, 0xc5, 0x5a, 0x55, 0xba, 0xc8, 0x52, 0x27, 0x0a, 0xce, 0xab, 0x67, 0x7f, 0xaf, 0x0f, 0x54,
+ 0x48, 0x35, 0x73, 0x5d, 0x2b, 0xc8, 0xf1, 0xef, 0xb0, 0xc1, 0x67, 0x6a, 0x6d, 0xf5, 0xed, 0xe7,
+ 0x4b, 0xc2, 0x4d, 0x39, 0xa6, 0x3d, 0x57, 0x0d, 0xd8, 0x9a, 0x06, 0x61, 0x13, 0x8f, 0xf6, 0xc4,
+ 0xf7, 0xb6, 0x09, 0xaf, 0xd4, 0x9f, 0xee, 0xc9, 0xa2, 0x04, 0x60, 0x8d, 0x43, 0x7b, 0x52, 0xf7,
+ 0x36, 0x36, 0x84, 0x5d, 0x42, 0xf5, 0x84, 0x8e, 0x0e, 0x66, 0x10, 0x9e, 0x0b, 0x3f, 0xdc, 0x12,
+ 0xfa, 0xb7, 0x91, 0x0b, 0x3f, 0xdc, 0xc2, 0x0c, 0x42, 0x67, 0x29, 0x08, 0xa3, 0xa6, 0xe3, 0x7b,
+ 0xaf, 0x91, 0xba, 0xa2, 0x22, 0xf4, 0x6e, 0x35, 0x4b, 0x57, 0x3b, 0x51, 0x70, 0x5e, 0x3d, 0xba,
+ 0xa0, 0x5b, 0x11, 0xa9, 0x7b, 0x6e, 0x62, 0xb6, 0x06, 0xe9, 0x05, 0xbd, 0xd2, 0x81, 0x81, 0x73,
+ 0x6a, 0xa1, 0x69, 0x18, 0x95, 0x21, 0xf1, 0x32, 0xe1, 0xd1, 0x60, 0x3a, 0xc1, 0x0a, 0x4e, 0x83,
+ 0x71, 0x16, 0x9f, 0x32, 0xc9, 0xa6, 0xc8, 0x89, 0xc6, 0xd4, 0x74, 0x83, 0x49, 0xca, 0x5c, 0x69,
+ 0x58, 0x61, 0xd8, 0x1f, 0x2f, 0x53, 0xa1, 0xde, 0x25, 0xf5, 0xe0, 0x3d, 0x73, 0x34, 0x4d, 0xaf,
+ 0xc8, 0xbe, 0x1e, 0x56, 0xe4, 0xb3, 0x30, 0x74, 0x33, 0x0e, 0x03, 0xe5, 0xc4, 0x59, 0xe9, 0xea,
+ 0xc4, 0x69, 0x60, 0xe5, 0x3b, 0x71, 0xf6, 0x17, 0xe5, 0xc4, 0x39, 0x70, 0x97, 0x4e, 0x9c, 0x7f,
+ 0x50, 0x01, 0xf5, 0xae, 0xd0, 0x55, 0x92, 0xdc, 0x0a, 0xa3, 0x2d, 0x2f, 0x68, 0xb0, 0x54, 0x02,
+ 0x5f, 0xb5, 0x60, 0x88, 0xef, 0x97, 0x45, 0x33, 0x08, 0x6f, 0xa3, 0xa0, 0x07, 0x6b, 0x52, 0xc4,
+ 0x26, 0xd7, 0x0c, 0x42, 0x99, 0x37, 0x87, 0x4d, 0x10, 0x4e, 0xf5, 0x08, 0x7d, 0x04, 0x40, 0x1a,
+ 0x71, 0x37, 0x24, 0x07, 0x5e, 0x28, 0xa6, 0x7f, 0x98, 0x6c, 0x68, 0x95, 0x7a, 0x4d, 0x11, 0xc1,
+ 0x06, 0x41, 0xf4, 0x69, 0x1d, 0xa0, 0xc8, 0xa3, 0x3d, 0x3e, 0x74, 0x2c, 0x63, 0xd3, 0x4b, 0x78,
+ 0x22, 0x86, 0x01, 0x2f, 0x68, 0xd0, 0x75, 0x22, 0x9c, 0xdd, 0xde, 0x96, 0x97, 0x86, 0x63, 0x31,
+ 0x74, 0xea, 0x33, 0x8e, 0xef, 0x04, 0x2e, 0x89, 0x16, 0x38, 0xba, 0x96, 0xa0, 0xa2, 0x00, 0xcb,
+ 0x86, 0x3a, 0x5e, 0x64, 0xaa, 0xf4, 0xf2, 0x22, 0xd3, 0xd9, 0xf7, 0xc2, 0x58, 0xc7, 0x64, 0x1e,
+ 0x2a, 0x1a, 0xf1, 0xee, 0x03, 0x19, 0xed, 0xdf, 0xee, 0xd7, 0x42, 0xeb, 0x6a, 0x58, 0xe7, 0x0f,
+ 0xfc, 0x44, 0x7a, 0x46, 0x85, 0xca, 0x5c, 0xe0, 0x12, 0x51, 0x62, 0xc6, 0x28, 0xc4, 0x26, 0x49,
+ 0xba, 0x46, 0x5b, 0x4e, 0x44, 0x82, 0xe3, 0x5e, 0xa3, 0x2b, 0x8a, 0x08, 0x36, 0x08, 0xa2, 0xcd,
+ 0x54, 0x38, 0xd2, 0xc5, 0xa3, 0x87, 0x23, 0xb1, 0x04, 0x65, 0x79, 0xef, 0x60, 0x7c, 0xc1, 0x82,
+ 0x91, 0x20, 0xb5, 0x72, 0x8b, 0xf1, 0x40, 0xce, 0xdf, 0x15, 0xfc, 0x59, 0xba, 0x74, 0x19, 0xce,
+ 0xd0, 0xcf, 0x13, 0x69, 0x95, 0x43, 0x8a, 0x34, 0xfd, 0xc0, 0x58, 0x7f, 0xb7, 0x07, 0xc6, 0x50,
+ 0xa0, 0x5e, 0x58, 0x1c, 0x28, 0xfc, 0x85, 0x45, 0xc8, 0x79, 0x5d, 0xf1, 0x06, 0xd4, 0xdc, 0x88,
+ 0x38, 0xc9, 0x5d, 0x3e, 0xb6, 0xc7, 0x7c, 0x3b, 0x66, 0x65, 0x03, 0x58, 0xb7, 0x65, 0xff, 0x9f,
+ 0x3e, 0x38, 0x21, 0x47, 0x44, 0x46, 0x2f, 0x50, 0xf9, 0xc8, 0xe9, 0x6a, 0x5d, 0x59, 0xc9, 0xc7,
+ 0x4b, 0x12, 0x80, 0x35, 0x0e, 0xd5, 0xc7, 0xda, 0x31, 0x59, 0x6e, 0x91, 0x60, 0xd1, 0x5b, 0x8f,
+ 0xc5, 0x65, 0xac, 0xda, 0x28, 0xd7, 0x34, 0x08, 0x9b, 0x78, 0x54, 0xb7, 0x77, 0x0c, 0xa5, 0xd5,
+ 0xd0, 0xed, 0xa5, 0xa2, 0x2a, 0xe1, 0xe8, 0x97, 0x73, 0x73, 0x21, 0x17, 0x13, 0xf3, 0xd7, 0x11,
+ 0xb4, 0x71, 0xc8, 0xf7, 0x59, 0xff, 0xbe, 0x05, 0xa7, 0x79, 0xa9, 0x1c, 0xc9, 0x6b, 0xad, 0xba,
+ 0x93, 0x90, 0xb8, 0x98, 0x37, 0x14, 0x72, 0xfa, 0xa7, 0xcd, 0xcb, 0x79, 0x64, 0x71, 0x7e, 0x6f,
+ 0xd0, 0xeb, 0x16, 0x8c, 0x6e, 0xa5, 0xd2, 0xc5, 0x48, 0xd1, 0x71, 0xd4, 0x4c, 0x0e, 0xa9, 0x46,
+ 0xf5, 0x56, 0x4b, 0x97, 0xc7, 0x38, 0x4b, 0xdd, 0xfe, 0x1f, 0x16, 0x98, 0x6c, 0xf4, 0xde, 0x67,
+ 0x99, 0x39, 0xbc, 0x2a, 0x28, 0xb5, 0xcb, 0x4a, 0x57, 0xed, 0xf2, 0x51, 0x28, 0xb7, 0xbd, 0xba,
+ 0x38, 0x5f, 0xe8, 0x2b, 0xe2, 0x85, 0x39, 0x4c, 0xcb, 0xed, 0x7f, 0x59, 0xd1, 0x66, 0x10, 0x11,
+ 0x52, 0xf7, 0x43, 0xf1, 0xd9, 0x1b, 0x2a, 0x4f, 0x1d, 0xff, 0xf2, 0xab, 0x1d, 0x79, 0xea, 0x7e,
+ 0xea, 0xf0, 0x11, 0x93, 0x7c, 0x80, 0xba, 0xa5, 0xa9, 0x1b, 0x38, 0x20, 0x5c, 0xf2, 0x26, 0x54,
+ 0xe9, 0x11, 0x8c, 0xd9, 0x33, 0xab, 0xa9, 0x4e, 0x55, 0x2f, 0x89, 0xf2, 0x3b, 0x7b, 0x13, 0xef,
+ 0x3a, 0x7c, 0xb7, 0x64, 0x6d, 0xac, 0xda, 0x47, 0x31, 0xd4, 0xe8, 0x6f, 0x16, 0xd9, 0x29, 0x0e,
+ 0x77, 0xd7, 0x14, 0xcf, 0x94, 0x80, 0x42, 0xc2, 0x46, 0x35, 0x1d, 0x14, 0x40, 0x8d, 0x3d, 0x65,
+ 0xcd, 0x88, 0xf2, 0x33, 0xe0, 0x8a, 0x8a, 0xaf, 0x94, 0x80, 0x3b, 0x7b, 0x13, 0x2f, 0x1c, 0x9e,
+ 0xa8, 0xaa, 0x8e, 0x35, 0x09, 0xfb, 0x8b, 0x7d, 0x7a, 0xed, 0x8a, 0xf4, 0x84, 0x3f, 0x14, 0x6b,
+ 0xf7, 0xf9, 0xcc, 0xda, 0x3d, 0xd7, 0xb1, 0x76, 0x47, 0xf4, 0x93, 0xcb, 0xa9, 0xd5, 0x78, 0xaf,
+ 0x15, 0x81, 0x83, 0xed, 0x0d, 0x4c, 0x03, 0x7a, 0xb5, 0xed, 0x45, 0x24, 0x5e, 0x89, 0xda, 0x81,
+ 0x17, 0x34, 0xd8, 0x72, 0xac, 0x9a, 0x1a, 0x50, 0x0a, 0x8c, 0xb3, 0xf8, 0xf4, 0x50, 0x4f, 0xe7,
+ 0xfc, 0x86, 0xb3, 0xcd, 0x57, 0x95, 0x91, 0xb1, 0x6d, 0x55, 0x94, 0x63, 0x85, 0x61, 0x7f, 0x9d,
+ 0xdd, 0xa2, 0x1b, 0x21, 0xe5, 0x74, 0x4d, 0xf8, 0xec, 0xed, 0x70, 0x9e, 0xee, 0x4d, 0xad, 0x09,
+ 0xfe, 0x60, 0x38, 0x87, 0xa1, 0x5b, 0x30, 0xb0, 0xce, 0x5f, 0xc1, 0x2c, 0x26, 0xe3, 0xbe, 0x78,
+ 0x52, 0x93, 0xbd, 0x2f, 0x24, 0xdf, 0xd7, 0xbc, 0xa3, 0x7f, 0x62, 0x49, 0xcd, 0xfe, 0x56, 0x05,
+ 0x46, 0x33, 0xaf, 0x4b, 0xa7, 0x12, 0xed, 0x96, 0x0e, 0x4c, 0xb4, 0xfb, 0x41, 0x80, 0x3a, 0x69,
+ 0xf9, 0xe1, 0x2e, 0x53, 0xc7, 0xfa, 0x0e, 0xad, 0x8e, 0x29, 0x0d, 0x7e, 0x4e, 0xb5, 0x82, 0x8d,
+ 0x16, 0x45, 0x8e, 0x3b, 0x9e, 0xb7, 0x37, 0x93, 0xe3, 0xce, 0x78, 0x97, 0xa3, 0xff, 0xde, 0xbe,
+ 0xcb, 0xe1, 0xc1, 0x28, 0xef, 0xa2, 0x0a, 0xdc, 0xbe, 0x8b, 0xf8, 0x6c, 0x16, 0xfa, 0x32, 0x97,
+ 0x6e, 0x06, 0x67, 0xdb, 0xbd, 0x9f, 0x8f, 0xc7, 0xa3, 0xb7, 0x43, 0x4d, 0xce, 0x73, 0x3c, 0x5e,
+ 0xd3, 0xc9, 0x2f, 0xe4, 0x32, 0x60, 0x8f, 0xba, 0x8b, 0x9f, 0x1d, 0x39, 0x28, 0xe0, 0x7e, 0xe5,
+ 0xa0, 0xb0, 0x3f, 0x5f, 0xa2, 0x7a, 0x3c, 0xef, 0x97, 0x4a, 0xa7, 0xf4, 0x04, 0xf4, 0x3b, 0xed,
+ 0x64, 0x33, 0xec, 0x78, 0x47, 0x73, 0x9a, 0x95, 0x62, 0x01, 0x45, 0x8b, 0xd0, 0x57, 0xd7, 0x29,
+ 0x72, 0x0e, 0x33, 0x9f, 0xda, 0x24, 0xea, 0x24, 0x04, 0xb3, 0x56, 0xd0, 0x23, 0xd0, 0x97, 0x38,
+ 0x0d, 0x19, 0xad, 0xc7, 0x22, 0xb4, 0xd7, 0x9c, 0x46, 0x8c, 0x59, 0xa9, 0x29, 0xbe, 0xfb, 0x0e,
+ 0x10, 0xdf, 0x2f, 0xc0, 0x70, 0xec, 0x35, 0x02, 0x27, 0x69, 0x47, 0xc4, 0xb8, 0x35, 0xd4, 0x3e,
+ 0x23, 0x26, 0x10, 0xa7, 0x71, 0xed, 0xdf, 0x19, 0x82, 0x53, 0xab, 0xb3, 0x4b, 0x32, 0xf1, 0xfb,
+ 0xb1, 0x05, 0xdc, 0xe5, 0xd1, 0xb8, 0x77, 0x01, 0x77, 0x5d, 0xa8, 0xfb, 0x46, 0xc0, 0x9d, 0x6f,
+ 0x04, 0xdc, 0xa5, 0xa3, 0x9f, 0xca, 0x45, 0x44, 0x3f, 0xe5, 0xf5, 0xa0, 0x97, 0xe8, 0xa7, 0x63,
+ 0x8b, 0xc0, 0xdb, 0xb7, 0x43, 0x87, 0x8a, 0xc0, 0x53, 0xe1, 0x89, 0x85, 0xc4, 0xa5, 0x74, 0x99,
+ 0xaa, 0xdc, 0xf0, 0x44, 0x15, 0x1a, 0xc6, 0x63, 0xae, 0x04, 0xab, 0x7f, 0xb9, 0xf8, 0x0e, 0xf4,
+ 0x10, 0x1a, 0x26, 0xc2, 0xbe, 0xcc, 0x70, 0xc4, 0x81, 0x22, 0xc2, 0x11, 0xf3, 0xba, 0x73, 0x60,
+ 0x38, 0xe2, 0x0b, 0x30, 0xec, 0xfa, 0x61, 0x40, 0x56, 0xa2, 0x30, 0x09, 0xdd, 0x50, 0xbe, 0xe4,
+ 0xa7, 0x1f, 0xa2, 0x31, 0x81, 0x38, 0x8d, 0xdb, 0x2d, 0x96, 0xb1, 0x76, 0xd4, 0x58, 0x46, 0xb8,
+ 0x4f, 0xb1, 0x8c, 0xbf, 0xa0, 0xa3, 0xee, 0x07, 0xd9, 0x8c, 0x7c, 0xb0, 0xf8, 0x19, 0xe9, 0xe9,
+ 0xa9, 0xbe, 0x37, 0xf8, 0x43, 0x96, 0x54, 0x31, 0x9e, 0x0d, 0x9b, 0x54, 0xf1, 0x1b, 0x62, 0x43,
+ 0xf2, 0xca, 0x31, 0x2c, 0xd8, 0x1b, 0xab, 0x9a, 0x8c, 0x7a, 0xdc, 0x52, 0x17, 0xe1, 0x74, 0x47,
+ 0x8e, 0x92, 0x15, 0xe0, 0xcb, 0x25, 0xf8, 0x91, 0x03, 0xbb, 0x80, 0x6e, 0x01, 0x24, 0x4e, 0x43,
+ 0x2c, 0x54, 0x71, 0x61, 0x72, 0x44, 0xc7, 0xce, 0x35, 0xd9, 0x1e, 0x4f, 0x67, 0xa3, 0xfe, 0xb2,
+ 0xab, 0x08, 0xf9, 0x9b, 0xf9, 0x73, 0x86, 0x7e, 0x47, 0xd6, 0x4f, 0x1c, 0xfa, 0x04, 0x33, 0x08,
+ 0x15, 0xff, 0x11, 0x69, 0xe8, 0x57, 0xe0, 0xd5, 0xf4, 0x61, 0x56, 0x8a, 0x05, 0x14, 0x3d, 0x07,
+ 0x83, 0x8e, 0xef, 0xf3, 0xa0, 0x21, 0x12, 0x8b, 0x17, 0xa2, 0x74, 0xfa, 0x41, 0x0d, 0xc2, 0x26,
+ 0x9e, 0xfd, 0x97, 0x25, 0x98, 0x38, 0x80, 0xa7, 0x74, 0x04, 0x8b, 0x56, 0x7a, 0x0e, 0x16, 0x15,
+ 0x81, 0x14, 0xfd, 0x5d, 0x02, 0x29, 0x9e, 0x83, 0xc1, 0x84, 0x38, 0x4d, 0xe1, 0x0a, 0x26, 0x2c,
+ 0x01, 0xfa, 0x06, 0x58, 0x83, 0xb0, 0x89, 0x47, 0xb9, 0xd8, 0x88, 0xe3, 0xba, 0x24, 0x8e, 0x65,
+ 0xa4, 0x84, 0xb0, 0xa6, 0x16, 0x16, 0x86, 0xc1, 0x8c, 0xd4, 0xd3, 0x29, 0x12, 0x38, 0x43, 0x32,
+ 0x3b, 0xe0, 0xb5, 0x1e, 0x07, 0xfc, 0x6b, 0x25, 0x78, 0x74, 0x5f, 0xe9, 0xd6, 0x73, 0x10, 0x4b,
+ 0x3b, 0x26, 0x51, 0x76, 0xe1, 0x5c, 0x8b, 0x49, 0x84, 0x19, 0x84, 0x8f, 0x52, 0xab, 0x65, 0xbc,
+ 0xb2, 0x5f, 0x74, 0x44, 0x17, 0x1f, 0xa5, 0x14, 0x09, 0x9c, 0x21, 0x79, 0xb7, 0xcb, 0xf2, 0x5b,
+ 0x7d, 0xf0, 0x78, 0x0f, 0x3a, 0x40, 0x81, 0x91, 0x6f, 0xe9, 0x28, 0xcd, 0xf2, 0x7d, 0x8a, 0xd2,
+ 0xbc, 0xbb, 0xe1, 0x7a, 0x33, 0xb8, 0xb3, 0xa7, 0x08, 0xbb, 0xaf, 0x97, 0xe0, 0x6c, 0x77, 0x85,
+ 0x05, 0xbd, 0x1b, 0x46, 0x23, 0xe5, 0xfa, 0x66, 0x06, 0x78, 0x9e, 0xe4, 0xf6, 0x96, 0x14, 0x08,
+ 0x67, 0x71, 0xd1, 0x24, 0x40, 0xcb, 0x49, 0x36, 0xe3, 0x0b, 0x3b, 0x5e, 0x9c, 0x88, 0x34, 0x4f,
+ 0x23, 0xfc, 0x86, 0x4f, 0x96, 0x62, 0x03, 0x83, 0x92, 0x63, 0xff, 0xe6, 0xc2, 0xab, 0x61, 0xc2,
+ 0x2b, 0xf1, 0xc3, 0xd6, 0x49, 0xf9, 0x28, 0x8e, 0x01, 0xc2, 0x59, 0x5c, 0x4a, 0x8e, 0xdd, 0x21,
+ 0xf3, 0x8e, 0xf2, 0x53, 0x18, 0x23, 0xb7, 0xa8, 0x4a, 0xb1, 0x81, 0x91, 0x0d, 0x5d, 0xad, 0x1c,
+ 0x1c, 0xba, 0x6a, 0xff, 0x8b, 0x12, 0x9c, 0xe9, 0xaa, 0xf0, 0xf6, 0xc6, 0xa6, 0x1e, 0xbc, 0x70,
+ 0xd3, 0xbb, 0xdc, 0x61, 0x87, 0x0b, 0x53, 0xfc, 0x93, 0x2e, 0x2b, 0x4d, 0x84, 0x29, 0xde, 0x7d,
+ 0xf6, 0x85, 0x07, 0x6f, 0x3c, 0x3b, 0x22, 0x13, 0xfb, 0x0e, 0x11, 0x99, 0x98, 0x99, 0x8c, 0x4a,
+ 0x8f, 0xd2, 0xe1, 0xcf, 0xfa, 0xba, 0x0e, 0x2f, 0x3d, 0x20, 0xf7, 0x64, 0xcd, 0x9e, 0x83, 0x13,
+ 0x5e, 0xc0, 0x1e, 0x48, 0x5b, 0x6d, 0xaf, 0x8b, 0xcc, 0x3f, 0x3c, 0xbd, 0xa5, 0x0a, 0x7f, 0x58,
+ 0xc8, 0xc0, 0x71, 0x47, 0x8d, 0x07, 0x30, 0x52, 0xf4, 0xee, 0x86, 0xf4, 0x90, 0x9c, 0x7b, 0x19,
+ 0x4e, 0xcb, 0xa1, 0xd8, 0x74, 0x22, 0x52, 0x17, 0xc2, 0x36, 0x16, 0x01, 0x2f, 0x67, 0x78, 0xd0,
+ 0x4c, 0x0e, 0x02, 0xce, 0xaf, 0xc7, 0xde, 0xa4, 0x0a, 0x5b, 0x9e, 0x2b, 0x8e, 0x82, 0xfa, 0x4d,
+ 0x2a, 0x5a, 0x88, 0x39, 0x4c, 0xcb, 0x8b, 0xda, 0xbd, 0x91, 0x17, 0x1f, 0x84, 0x9a, 0x1a, 0x6f,
+ 0xee, 0xbb, 0xaf, 0x16, 0x79, 0x87, 0xef, 0xbe, 0x5a, 0xe1, 0x06, 0xd6, 0x41, 0x8f, 0xa6, 0xbe,
+ 0x03, 0x86, 0x94, 0xf5, 0xab, 0xd7, 0x97, 0xc1, 0xec, 0x3f, 0xef, 0x87, 0xe1, 0x54, 0xb6, 0xcf,
+ 0x94, 0xd9, 0xdb, 0x3a, 0xd0, 0xec, 0xcd, 0xc2, 0x36, 0xda, 0x81, 0x7c, 0x36, 0xd0, 0x08, 0xdb,
+ 0x68, 0x07, 0x04, 0x73, 0x18, 0x3d, 0x74, 0xd4, 0xa3, 0x5d, 0xdc, 0x0e, 0x84, 0x1f, 0xaa, 0x3a,
+ 0x74, 0xcc, 0xb1, 0x52, 0x2c, 0xa0, 0xe8, 0x63, 0x16, 0x0c, 0xc5, 0xec, 0x4e, 0x85, 0x5f, 0x1a,
+ 0x88, 0x45, 0x7e, 0xf9, 0xe8, 0xc9, 0x4c, 0x55, 0x66, 0x5b, 0xe6, 0xb7, 0x64, 0x96, 0xe0, 0x14,
+ 0x45, 0xf4, 0x49, 0x0b, 0x6a, 0xea, 0x75, 0x23, 0xf1, 0x06, 0xe8, 0x6a, 0xb1, 0xc9, 0x54, 0xb9,
+ 0xb5, 0x59, 0x5d, 0x4f, 0xa9, 0xac, 0x96, 0x58, 0x13, 0x46, 0xb1, 0xb2, 0xe8, 0x0f, 0x1c, 0x8f,
+ 0x45, 0x1f, 0x72, 0xac, 0xf9, 0x6f, 0x87, 0x5a, 0xd3, 0x09, 0xbc, 0x0d, 0x12, 0x27, 0xdc, 0xc8,
+ 0x2e, 0x73, 0x3c, 0xcb, 0x42, 0xac, 0xe1, 0x54, 0x01, 0x88, 0xd9, 0x87, 0x25, 0x86, 0x55, 0x9c,
+ 0x29, 0x00, 0xab, 0xba, 0x18, 0x9b, 0x38, 0xa6, 0x09, 0x1f, 0xee, 0xab, 0x09, 0x7f, 0xf0, 0x00,
+ 0x13, 0xfe, 0x2a, 0x9c, 0x76, 0xda, 0x49, 0x78, 0x89, 0x38, 0xfe, 0x34, 0x7f, 0xd0, 0x57, 0x3c,
+ 0x50, 0x3f, 0xc4, 0xcc, 0x42, 0xca, 0xd3, 0x62, 0x95, 0xf8, 0x1b, 0x1d, 0x48, 0x38, 0xbf, 0xae,
+ 0xfd, 0x4f, 0x2d, 0x38, 0x9d, 0xbb, 0x14, 0x1e, 0x5c, 0x1f, 0x57, 0xfb, 0x4b, 0x15, 0x38, 0x99,
+ 0x93, 0x0b, 0x18, 0xed, 0x9a, 0x9b, 0xc4, 0x2a, 0xc2, 0x5d, 0x24, 0xed, 0xfd, 0x20, 0xe7, 0x26,
+ 0x67, 0x67, 0x1c, 0xee, 0x56, 0x4e, 0xdf, 0x8c, 0x95, 0xef, 0xed, 0xcd, 0x98, 0xb1, 0xd6, 0xfb,
+ 0xee, 0xeb, 0x5a, 0xaf, 0x1c, 0xb0, 0xd6, 0xbf, 0x61, 0xc1, 0x78, 0xb3, 0xcb, 0x03, 0x14, 0xc2,
+ 0xc6, 0x7c, 0xfd, 0x78, 0x9e, 0xb7, 0x98, 0x79, 0xe4, 0xf6, 0xde, 0x44, 0xd7, 0x77, 0x3f, 0x70,
+ 0xd7, 0x5e, 0xd9, 0xdf, 0x2b, 0x03, 0x4b, 0x44, 0xcd, 0xf2, 0x3d, 0xee, 0xa2, 0x8f, 0x9a, 0x29,
+ 0xc5, 0xad, 0xa2, 0xd2, 0x5f, 0xf3, 0xc6, 0x55, 0x4a, 0x72, 0x3e, 0x82, 0x79, 0x19, 0xca, 0xb3,
+ 0x9c, 0xb0, 0xd4, 0x03, 0x27, 0xf4, 0x65, 0xee, 0xf6, 0x72, 0xf1, 0xb9, 0xdb, 0x6b, 0xd9, 0xbc,
+ 0xed, 0xfb, 0x4f, 0x71, 0xdf, 0x03, 0x39, 0xc5, 0xbf, 0x62, 0x71, 0xc6, 0x93, 0x99, 0x05, 0xad,
+ 0x6e, 0x58, 0xfb, 0xa8, 0x1b, 0x4f, 0x41, 0x35, 0x16, 0x9c, 0x59, 0xa8, 0x25, 0xda, 0x55, 0x41,
+ 0x94, 0x63, 0x85, 0xc1, 0x1e, 0x77, 0xf6, 0xfd, 0xf0, 0xd6, 0x85, 0x66, 0x2b, 0xd9, 0x15, 0x0a,
+ 0x8a, 0x7e, 0xdc, 0x59, 0x41, 0xb0, 0x81, 0x65, 0xff, 0xbd, 0x12, 0x5f, 0x81, 0xc2, 0xdf, 0xe5,
+ 0xf9, 0xcc, 0x73, 0x9c, 0xbd, 0xbb, 0x8a, 0x7c, 0x18, 0xc0, 0x0d, 0x9b, 0x2d, 0xaa, 0xbc, 0xae,
+ 0x85, 0xe2, 0xfa, 0xef, 0xd2, 0x91, 0x1f, 0xff, 0x17, 0xed, 0xe9, 0xcf, 0xd0, 0x65, 0xd8, 0xa0,
+ 0x97, 0xe2, 0xa5, 0xe5, 0x03, 0x79, 0x69, 0x8a, 0xad, 0xf4, 0xed, 0xcf, 0x56, 0xec, 0xbf, 0xb4,
+ 0x20, 0xa5, 0x66, 0xa1, 0x16, 0x54, 0x68, 0x77, 0x77, 0xc5, 0x0e, 0x5d, 0x2e, 0x4e, 0xa7, 0xa3,
+ 0xac, 0x51, 0x2c, 0x7b, 0xf6, 0x13, 0x73, 0x42, 0xc8, 0x17, 0x6e, 0x31, 0x7c, 0x54, 0xaf, 0x16,
+ 0x47, 0xf0, 0x52, 0x18, 0x6e, 0xf1, 0x3b, 0x6c, 0xed, 0x62, 0x63, 0x3f, 0x0f, 0x63, 0x1d, 0x9d,
+ 0x62, 0x2f, 0xef, 0x85, 0x54, 0xfa, 0x64, 0x96, 0x2b, 0x8b, 0x12, 0xc6, 0x1c, 0x66, 0x7f, 0xdd,
+ 0x82, 0x13, 0xd9, 0xe6, 0xd1, 0x1b, 0x16, 0x8c, 0xc5, 0xd9, 0xf6, 0x8e, 0x6b, 0xec, 0x94, 0x6b,
+ 0x6b, 0x07, 0x08, 0x77, 0x76, 0xc2, 0xfe, 0xbf, 0x62, 0xf1, 0xdf, 0xf0, 0x82, 0x7a, 0x78, 0x4b,
+ 0x29, 0x26, 0x56, 0x57, 0xc5, 0x84, 0xee, 0x47, 0x77, 0x93, 0xd4, 0xdb, 0x7e, 0x47, 0xcc, 0xf1,
+ 0xaa, 0x28, 0xc7, 0x0a, 0x83, 0x85, 0x58, 0xb6, 0xc5, 0xe3, 0x0e, 0x99, 0x45, 0x39, 0x27, 0xca,
+ 0xb1, 0xc2, 0x40, 0xcf, 0xc2, 0x90, 0xf1, 0x91, 0x72, 0x5d, 0x32, 0x2d, 0xdf, 0x10, 0x99, 0x31,
+ 0x4e, 0x61, 0xa1, 0x49, 0x00, 0xa5, 0xe4, 0x48, 0x11, 0xc9, 0xac, 0x5d, 0x8a, 0x13, 0xc5, 0xd8,
+ 0xc0, 0x60, 0x01, 0xcd, 0x7e, 0x3b, 0x66, 0xd7, 0x39, 0xfd, 0x3a, 0xe1, 0xf0, 0xac, 0x28, 0xc3,
+ 0x0a, 0x4a, 0xb9, 0x49, 0xd3, 0x09, 0xda, 0x8e, 0x4f, 0x47, 0x48, 0x9c, 0x5f, 0xd5, 0x36, 0x5c,
+ 0x52, 0x10, 0x6c, 0x60, 0xd1, 0x2f, 0x4e, 0xbc, 0x26, 0x79, 0x29, 0x0c, 0xa4, 0x4b, 0xa2, 0xbe,
+ 0xe1, 0x13, 0xe5, 0x58, 0x61, 0xd8, 0x7f, 0x61, 0xc1, 0xa8, 0xce, 0xa4, 0xc0, 0xdf, 0xd8, 0x37,
+ 0x8f, 0xdb, 0xd6, 0x81, 0xc7, 0xed, 0x74, 0xdc, 0x78, 0xa9, 0xa7, 0xb8, 0x71, 0x33, 0xa4, 0xbb,
+ 0xbc, 0x6f, 0x48, 0xf7, 0x8f, 0xe9, 0xf7, 0x9b, 0x79, 0xec, 0xf7, 0x60, 0xde, 0xdb, 0xcd, 0xc8,
+ 0x86, 0x7e, 0xd7, 0x51, 0x19, 0x87, 0x86, 0xf8, 0x81, 0x64, 0x76, 0x9a, 0x21, 0x09, 0x88, 0xbd,
+ 0x0c, 0x35, 0x75, 0xd1, 0x25, 0x4f, 0xbf, 0x56, 0xfe, 0xe9, 0xb7, 0xa7, 0xd0, 0xd2, 0x99, 0xf5,
+ 0x6f, 0x7e, 0xff, 0xb1, 0xb7, 0xfc, 0xd1, 0xf7, 0x1f, 0x7b, 0xcb, 0x77, 0xbf, 0xff, 0xd8, 0x5b,
+ 0x3e, 0x76, 0xfb, 0x31, 0xeb, 0x9b, 0xb7, 0x1f, 0xb3, 0xfe, 0xe8, 0xf6, 0x63, 0xd6, 0x77, 0x6f,
+ 0x3f, 0x66, 0x7d, 0xef, 0xf6, 0x63, 0xd6, 0x17, 0xfe, 0xeb, 0x63, 0x6f, 0x79, 0x29, 0xd7, 0x27,
+ 0x95, 0xfe, 0x78, 0xda, 0xad, 0x4f, 0x6d, 0x9f, 0x67, 0x6e, 0x91, 0x74, 0x7b, 0x4d, 0x19, 0x6b,
+ 0x6a, 0x4a, 0x6e, 0xaf, 0xff, 0x17, 0x00, 0x00, 0xff, 0xff, 0x45, 0x1c, 0x89, 0x97, 0xf1, 0xeb,
+ 0x00, 0x00,
}
func (m *AWSAuthConfig) Marshal() (dAtA []byte, err error) {
@@ -8670,6 +8671,11 @@ func (m *ClusterConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i
var l int
_ = l
+ i -= len(m.ProxyUrl)
+ copy(dAtA[i:], m.ProxyUrl)
+ i = encodeVarintGenerated(dAtA, i, uint64(len(m.ProxyUrl)))
+ i--
+ dAtA[i] = 0x42
i--
if m.DisableCompression {
dAtA[i] = 1
@@ -16196,6 +16202,8 @@ func (m *ClusterConfig) Size() (n int) {
n += 1 + l + sovGenerated(uint64(l))
}
n += 2
+ l = len(m.ProxyUrl)
+ n += 1 + l + sovGenerated(uint64(l))
return n
}
@@ -19429,6 +19437,7 @@ func (this *ClusterConfig) String() string {
`AWSAuthConfig:` + strings.Replace(this.AWSAuthConfig.String(), "AWSAuthConfig", "AWSAuthConfig", 1) + `,`,
`ExecProviderConfig:` + strings.Replace(this.ExecProviderConfig.String(), "ExecProviderConfig", "ExecProviderConfig", 1) + `,`,
`DisableCompression:` + fmt.Sprintf("%v", this.DisableCompression) + `,`,
+ `ProxyUrl:` + fmt.Sprintf("%v", this.ProxyUrl) + `,`,
`}`,
}, "")
return s
@@ -31788,6 +31797,38 @@ func (m *ClusterConfig) Unmarshal(dAtA []byte) error {
}
}
m.DisableCompression = bool(v != 0)
+ case 8:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ProxyUrl", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenerated
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenerated
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.ProxyUrl = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipGenerated(dAtA[iNdEx:])
diff --git a/pkg/apis/application/v1alpha1/generated.proto b/pkg/apis/application/v1alpha1/generated.proto
index fc835a6d2b103..c0cdb149ba537 100644
--- a/pkg/apis/application/v1alpha1/generated.proto
+++ b/pkg/apis/application/v1alpha1/generated.proto
@@ -844,6 +844,9 @@ message ClusterConfig {
// DisableCompression bypasses automatic GZip compression requests to the server.
optional bool disableCompression = 7;
+
+ // ProxyURL is the URL to the proxy to be used for all requests send to the server
+ optional string proxyUrl = 8;
}
// ClusterGenerator defines a generator to match against clusters registered with ArgoCD.
diff --git a/pkg/apis/application/v1alpha1/types.go b/pkg/apis/application/v1alpha1/types.go
index 3963f0afdf1a0..c6f3810fb20fa 100644
--- a/pkg/apis/application/v1alpha1/types.go
+++ b/pkg/apis/application/v1alpha1/types.go
@@ -7,6 +7,7 @@ import (
"math"
"net"
"net/http"
+ "net/url"
"os"
"path/filepath"
"reflect"
@@ -2042,6 +2043,9 @@ type ClusterConfig struct {
// DisableCompression bypasses automatic GZip compression requests to the server.
DisableCompression bool `json:"disableCompression,omitempty" protobuf:"bytes,7,opt,name=disableCompression"`
+
+ // ProxyURL is the URL to the proxy to be used for all requests send to the server
+ ProxyUrl string `json:"proxyUrl,omitempty" protobuf:"bytes,8,opt,name=proxyUrl"`
}
// TLSClientConfig contains settings to enable transport layer security
@@ -3105,6 +3109,9 @@ func SetK8SConfigDefaults(config *rest.Config) error {
DisableCompression: config.DisableCompression,
IdleConnTimeout: K8sTCPIdleConnTimeout,
})
+ if config.Proxy != nil {
+ transport.Proxy = config.Proxy
+ }
tr, err := rest.HTTPWrappersForConfig(config, transport)
if err != nil {
return err
@@ -3128,6 +3135,20 @@ func SetK8SConfigDefaults(config *rest.Config) error {
return nil
}
+// ParseProxyUrl returns a parsed url and verifies that schema is correct
+func ParseProxyUrl(proxyUrl string) (*url.URL, error) {
+ u, err := url.Parse(proxyUrl)
+ if err != nil {
+ return nil, err
+ }
+ switch u.Scheme {
+ case "http", "https", "socks5":
+ default:
+ return nil, fmt.Errorf("Failed to parse proxy url, unsupported scheme %q, must be http, https, or socks5", u.Scheme)
+ }
+ return u, nil
+}
+
// RawRestConfig returns a go-client REST config from cluster that might be serialized into the file using kube.WriteKubeConfig method.
func (c *Cluster) RawRestConfig() (*rest.Config, error) {
var config *rest.Config
@@ -3215,6 +3236,13 @@ func (c *Cluster) RawRestConfig() (*rest.Config, error) {
if err != nil {
return nil, fmt.Errorf("Unable to create K8s REST config: %w", err)
}
+ if c.Config.ProxyUrl != "" {
+ u, err := ParseProxyUrl(c.Config.ProxyUrl)
+ if err != nil {
+ return nil, fmt.Errorf("Unable to create K8s REST config, can`t parse proxy url: %w", err)
+ }
+ config.Proxy = http.ProxyURL(u)
+ }
config.DisableCompression = c.Config.DisableCompression
config.Timeout = K8sServerSideTimeout
config.QPS = K8sClientConfigQPS
diff --git a/pkg/apis/application/v1alpha1/types_test.go b/pkg/apis/application/v1alpha1/types_test.go
index 1df2f5c74baea..484467a8f7a6f 100644
--- a/pkg/apis/application/v1alpha1/types_test.go
+++ b/pkg/apis/application/v1alpha1/types_test.go
@@ -2982,6 +2982,7 @@ func TestSetConditions(t *testing.T) {
testCond(ApplicationConditionSharedResourceWarning, "bar", tenMinsAgo),
},
validate: func(t *testing.T, a *Application) {
+ t.Helper()
assert.Equal(t, fiveMinsAgo, a.Status.Conditions[0].LastTransitionTime)
assert.Equal(t, tenMinsAgo, a.Status.Conditions[1].LastTransitionTime)
},
@@ -3002,6 +3003,7 @@ func TestSetConditions(t *testing.T) {
testCond(ApplicationConditionSharedResourceWarning, "bar", nil),
},
validate: func(t *testing.T, a *Application) {
+ t.Helper()
// SetConditions should add timestamps for new conditions.
assert.True(t, a.Status.Conditions[0].LastTransitionTime.Time.After(fiveMinsAgo.Time))
assert.True(t, a.Status.Conditions[1].LastTransitionTime.Time.After(fiveMinsAgo.Time))
@@ -3024,6 +3026,7 @@ func TestSetConditions(t *testing.T) {
testCond(ApplicationConditionSharedResourceWarning, "bar", tenMinsAgo),
},
validate: func(t *testing.T, a *Application) {
+ t.Helper()
assert.Equal(t, tenMinsAgo.Time, a.Status.Conditions[0].LastTransitionTime.Time)
},
},
@@ -3059,6 +3062,7 @@ func TestSetConditions(t *testing.T) {
testCond(ApplicationConditionSharedResourceWarning, "bar", tenMinsAgo),
},
validate: func(t *testing.T, a *Application) {
+ t.Helper()
assert.Equal(t, tenMinsAgo.Time, a.Status.Conditions[0].LastTransitionTime.Time)
assert.Equal(t, tenMinsAgo.Time, a.Status.Conditions[1].LastTransitionTime.Time)
},
@@ -3082,6 +3086,7 @@ func TestSetConditions(t *testing.T) {
testCond(ApplicationConditionSharedResourceWarning, "bar changed message", fiveMinsAgo),
},
validate: func(t *testing.T, a *Application) {
+ t.Helper()
assert.Equal(t, tenMinsAgo.Time, a.Status.Conditions[0].LastTransitionTime.Time)
assert.Equal(t, fiveMinsAgo.Time, a.Status.Conditions[1].LastTransitionTime.Time)
},
@@ -3100,6 +3105,7 @@ func TestSetConditions(t *testing.T) {
testCond(ApplicationConditionSharedResourceWarning, "bar", tenMinsAgo),
},
validate: func(t *testing.T, a *Application) {
+ t.Helper()
assert.Equal(t, tenMinsAgo.Time, a.Status.Conditions[0].LastTransitionTime.Time)
},
},
@@ -3121,6 +3127,7 @@ func TestSetConditions(t *testing.T) {
// difficult to strictly assert on as they can use time.Now(). Elements in each array are assumed
// to match positions.
func assertConditions(t *testing.T, expected []ApplicationCondition, actual []ApplicationCondition) {
+ t.Helper()
assert.Equal(t, len(expected), len(actual))
for i := range expected {
assert.Equal(t, expected[i].Type, actual[i].Type)
@@ -4265,3 +4272,35 @@ func TestAppProject_ValidateDestinationServiceAccount(t *testing.T) {
}
}
}
+
+func TestCluster_ParseProxyUrl(t *testing.T) {
+ testData := []struct {
+ url string
+ expectedErrMsg string
+ }{
+ {
+ url: "https://192.168.99.100:8443",
+ expectedErrMsg: "",
+ },
+ {
+ url: "test://!abc",
+ expectedErrMsg: "Failed to parse proxy url, unsupported scheme \"test\", must be http, https, or socks5",
+ },
+ {
+ url: "http://192.168.99.100:8443",
+ expectedErrMsg: "",
+ },
+ {
+ url: "socks5://192.168.99.100:8443",
+ expectedErrMsg: "",
+ },
+ }
+ for _, data := range testData {
+ _, err := ParseProxyUrl(data.url)
+ if data.expectedErrMsg == "" {
+ require.NoError(t, err)
+ } else {
+ require.ErrorContains(t, err, data.expectedErrMsg)
+ }
+ }
+}
diff --git a/reposerver/cache/cache_test.go b/reposerver/cache/cache_test.go
index 1715a09457331..a42ac0a513239 100644
--- a/reposerver/cache/cache_test.go
+++ b/reposerver/cache/cache_test.go
@@ -261,6 +261,7 @@ func TestCachedManifestResponse_HashBehavior(t *testing.T) {
}
func getInMemoryCacheContents(t *testing.T, inMemCache *cacheutil.InMemoryCache) map[string]*CachedManifestResponse {
+ t.Helper()
items, err := inMemCache.Items(func() interface{} { return &CachedManifestResponse{} })
if err != nil {
t.Fatal(err)
diff --git a/reposerver/cache/mocks/reposervercache.go b/reposerver/cache/mocks/reposervercache.go
index f26bd8bccac43..ddc71510e7698 100644
--- a/reposerver/cache/mocks/reposervercache.go
+++ b/reposerver/cache/mocks/reposervercache.go
@@ -41,6 +41,7 @@ type CacheCallCounts struct {
// Checks that the cache was called the expected number of times
func (mockCache *MockRepoCache) AssertCacheCalledTimes(t *testing.T, calls *CacheCallCounts) {
+ t.Helper()
mockCache.RedisClient.AssertNumberOfCalls(t, "Get", calls.ExternalGets)
mockCache.RedisClient.AssertNumberOfCalls(t, "Set", calls.ExternalSets)
mockCache.RedisClient.AssertNumberOfCalls(t, "Delete", calls.ExternalDeletes)
diff --git a/reposerver/metrics/githandlers_test.go b/reposerver/metrics/githandlers_test.go
index 6eaeeca82cc36..e2eb03dca1d48 100644
--- a/reposerver/metrics/githandlers_test.go
+++ b/reposerver/metrics/githandlers_test.go
@@ -22,6 +22,7 @@ func TestEdgeCasesAndErrorHandling(t *testing.T) {
{
name: "lsRemoteParallelismLimitSemaphore is nil",
testFunc: func(t *testing.T) {
+ t.Helper()
lsRemoteParallelismLimitSemaphore = nil
assert.NotPanics(t, func() {
NewGitClientEventHandlers(&MetricsServer{})
@@ -37,6 +38,7 @@ func TestEdgeCasesAndErrorHandling(t *testing.T) {
lsRemoteParallelismLimitSemaphore = nil
},
testFunc: func(t *testing.T) {
+ t.Helper()
assert.NotPanics(t, func() {
NewGitClientEventHandlers(&MetricsServer{})
})
@@ -51,6 +53,7 @@ func TestEdgeCasesAndErrorHandling(t *testing.T) {
lsRemoteParallelismLimitSemaphore = nil
},
testFunc: func(t *testing.T) {
+ t.Helper()
assert.NotPanics(t, func() {
NewGitClientEventHandlers(&MetricsServer{})
})
@@ -88,6 +91,7 @@ func TestSemaphoreFunctionality(t *testing.T) {
lsRemoteParallelismLimitSemaphore = nil
},
testFunc: func(t *testing.T) {
+ t.Helper()
assert.NotPanics(t, func() {
NewGitClientEventHandlers(&MetricsServer{})
})
@@ -102,6 +106,7 @@ func TestSemaphoreFunctionality(t *testing.T) {
lsRemoteParallelismLimitSemaphore = nil
},
testFunc: func(t *testing.T) {
+ t.Helper()
assert.NotPanics(t, func() {
NewGitClientEventHandlers(&MetricsServer{})
})
diff --git a/reposerver/repository/repository_test.go b/reposerver/repository/repository_test.go
index dd6f528d1d21a..57256dce7468e 100644
--- a/reposerver/repository/repository_test.go
+++ b/reposerver/repository/repository_test.go
@@ -100,6 +100,7 @@ func newCacheMocksWithOpts(repoCacheExpiration, revisionCacheExpiration, revisio
}
func newServiceWithMocks(t *testing.T, root string, signed bool) (*Service, *gitmocks.Client, *repoCacheMocks) {
+ t.Helper()
root, err := filepath.Abs(root)
if err != nil {
panic(err)
@@ -140,6 +141,7 @@ func newServiceWithMocks(t *testing.T, root string, signed bool) (*Service, *git
}
func newServiceWithOpt(t *testing.T, cf clientFunc, root string) (*Service, *gitmocks.Client, *repoCacheMocks) {
+ t.Helper()
helmClient := &helmmocks.Client{}
gitClient := &gitmocks.Client{}
paths := &iomocks.TempPaths{}
@@ -162,16 +164,19 @@ func newServiceWithOpt(t *testing.T, cf clientFunc, root string) (*Service, *git
}
func newService(t *testing.T, root string) *Service {
+ t.Helper()
service, _, _ := newServiceWithMocks(t, root, false)
return service
}
func newServiceWithSignature(t *testing.T, root string) *Service {
+ t.Helper()
service, _, _ := newServiceWithMocks(t, root, true)
return service
}
func newServiceWithCommitSHA(t *testing.T, root, revision string) *Service {
+ t.Helper()
var revisionErr error
commitSHARegex := regexp.MustCompile("^[0-9A-Fa-f]{40}$")
@@ -1842,6 +1847,7 @@ func TestGetAppDetailsWithAppParameterFile(t *testing.T) {
t.Run("No app name set and app specific file exists", func(t *testing.T) {
service := newService(t, ".")
runWithTempTestdata(t, "multi", func(t *testing.T, path string) {
+ t.Helper()
details, err := service.GetAppDetails(context.Background(), &apiclient.RepoServerAppDetailsQuery{
Repo: &argoappv1.Repository{},
Source: &argoappv1.ApplicationSource{
@@ -1855,6 +1861,7 @@ func TestGetAppDetailsWithAppParameterFile(t *testing.T) {
t.Run("No app specific override", func(t *testing.T) {
service := newService(t, ".")
runWithTempTestdata(t, "single-global", func(t *testing.T, path string) {
+ t.Helper()
details, err := service.GetAppDetails(context.Background(), &apiclient.RepoServerAppDetailsQuery{
Repo: &argoappv1.Repository{},
Source: &argoappv1.ApplicationSource{
@@ -1869,6 +1876,7 @@ func TestGetAppDetailsWithAppParameterFile(t *testing.T) {
t.Run("Only app specific override", func(t *testing.T) {
service := newService(t, ".")
runWithTempTestdata(t, "single-app-only", func(t *testing.T, path string) {
+ t.Helper()
details, err := service.GetAppDetails(context.Background(), &apiclient.RepoServerAppDetailsQuery{
Repo: &argoappv1.Repository{},
Source: &argoappv1.ApplicationSource{
@@ -1883,6 +1891,7 @@ func TestGetAppDetailsWithAppParameterFile(t *testing.T) {
t.Run("App specific override", func(t *testing.T) {
service := newService(t, ".")
runWithTempTestdata(t, "multi", func(t *testing.T, path string) {
+ t.Helper()
details, err := service.GetAppDetails(context.Background(), &apiclient.RepoServerAppDetailsQuery{
Repo: &argoappv1.Repository{},
Source: &argoappv1.ApplicationSource{
@@ -1897,6 +1906,7 @@ func TestGetAppDetailsWithAppParameterFile(t *testing.T) {
t.Run("App specific overrides containing non-mergeable field", func(t *testing.T) {
service := newService(t, ".")
runWithTempTestdata(t, "multi", func(t *testing.T, path string) {
+ t.Helper()
details, err := service.GetAppDetails(context.Background(), &apiclient.RepoServerAppDetailsQuery{
Repo: &argoappv1.Repository{},
Source: &argoappv1.ApplicationSource{
@@ -1911,6 +1921,7 @@ func TestGetAppDetailsWithAppParameterFile(t *testing.T) {
t.Run("Broken app-specific overrides", func(t *testing.T) {
service := newService(t, ".")
runWithTempTestdata(t, "multi", func(t *testing.T, path string) {
+ t.Helper()
_, err := service.GetAppDetails(context.Background(), &apiclient.RepoServerAppDetailsQuery{
Repo: &argoappv1.Repository{},
Source: &argoappv1.ApplicationSource{
@@ -1943,6 +1954,7 @@ func mkTempParameters(source string) string {
// Simple wrapper run a test with a temporary copy of the testdata, because
// the test would modify the data when run.
func runWithTempTestdata(t *testing.T, path string, runner func(t *testing.T, path string)) {
+ t.Helper()
tempDir := mkTempParameters("./testdata/app-parameters")
runner(t, filepath.Join(tempDir, "app-parameters", path))
os.RemoveAll(tempDir)
@@ -1951,6 +1963,7 @@ func runWithTempTestdata(t *testing.T, path string, runner func(t *testing.T, pa
func TestGenerateManifestsWithAppParameterFile(t *testing.T) {
t.Run("Single global override", func(t *testing.T) {
runWithTempTestdata(t, "single-global", func(t *testing.T, path string) {
+ t.Helper()
service := newService(t, ".")
manifests, err := service.GenerateManifest(context.Background(), &apiclient.ManifestRequest{
Repo: &argoappv1.Repository{},
@@ -1980,6 +1993,7 @@ func TestGenerateManifestsWithAppParameterFile(t *testing.T) {
t.Run("Single global override Helm", func(t *testing.T) {
runWithTempTestdata(t, "single-global-helm", func(t *testing.T, path string) {
+ t.Helper()
service := newService(t, ".")
manifests, err := service.GenerateManifest(context.Background(), &apiclient.ManifestRequest{
Repo: &argoappv1.Repository{},
@@ -2010,6 +2024,7 @@ func TestGenerateManifestsWithAppParameterFile(t *testing.T) {
t.Run("Application specific override", func(t *testing.T) {
service := newService(t, ".")
runWithTempTestdata(t, "single-app-only", func(t *testing.T, path string) {
+ t.Helper()
manifests, err := service.GenerateManifest(context.Background(), &apiclient.ManifestRequest{
Repo: &argoappv1.Repository{},
ApplicationSource: &argoappv1.ApplicationSource{
@@ -2040,6 +2055,7 @@ func TestGenerateManifestsWithAppParameterFile(t *testing.T) {
t.Run("Multi-source with source as ref only does not generate manifests", func(t *testing.T) {
service := newService(t, ".")
runWithTempTestdata(t, "single-app-only", func(t *testing.T, path string) {
+ t.Helper()
manifests, err := service.GenerateManifest(context.Background(), &apiclient.ManifestRequest{
Repo: &argoappv1.Repository{},
ApplicationSource: &argoappv1.ApplicationSource{
@@ -2061,6 +2077,7 @@ func TestGenerateManifestsWithAppParameterFile(t *testing.T) {
t.Run("Application specific override for other app", func(t *testing.T) {
service := newService(t, ".")
runWithTempTestdata(t, "single-app-only", func(t *testing.T, path string) {
+ t.Helper()
manifests, err := service.GenerateManifest(context.Background(), &apiclient.ManifestRequest{
Repo: &argoappv1.Repository{},
ApplicationSource: &argoappv1.ApplicationSource{
@@ -2091,6 +2108,7 @@ func TestGenerateManifestsWithAppParameterFile(t *testing.T) {
t.Run("Override info does not appear in cache key", func(t *testing.T) {
service := newService(t, ".")
runWithTempTestdata(t, "single-global", func(t *testing.T, path string) {
+ t.Helper()
source := &argoappv1.ApplicationSource{
Path: path,
}
@@ -2371,6 +2389,7 @@ func TestFindManifests_Exclude_NothingMatches(t *testing.T) {
}
func tempDir(t *testing.T) string {
+ t.Helper()
dir, err := os.MkdirTemp(".", "")
require.NoError(t, err)
t.Cleanup(func() {
@@ -2385,6 +2404,7 @@ func tempDir(t *testing.T) string {
}
func walkFor(t *testing.T, root string, testPath string, run func(info fs.FileInfo)) {
+ t.Helper()
hitExpectedPath := false
err := filepath.Walk(root, func(path string, info fs.FileInfo, err error) error {
if path == testPath {
@@ -2932,6 +2952,7 @@ func TestDirectoryPermissionInitializer(t *testing.T) {
}
func addHelmToGitRepo(t *testing.T, options newGitRepoOptions) {
+ t.Helper()
err := os.WriteFile(filepath.Join(options.path, "Chart.yaml"), []byte("name: test\nversion: v1.0.0"), 0o777)
require.NoError(t, err)
for valuesFileName, values := range options.helmChartOptions.valuesFiles {
@@ -2950,6 +2971,7 @@ func addHelmToGitRepo(t *testing.T, options newGitRepoOptions) {
}
func initGitRepo(t *testing.T, options newGitRepoOptions) (revision string) {
+ t.Helper()
if options.createPath {
require.NoError(t, os.Mkdir(options.path, 0o755))
}
@@ -3070,6 +3092,7 @@ func TestCheckoutRevisionNotPresentCallFetch(t *testing.T) {
// runGit runs a git command in the given working directory. If the command succeeds, it returns the combined standard
// and error output. If it fails, it stops the test with a failure message.
func runGit(t *testing.T, workDir string, args ...string) string {
+ t.Helper()
cmd := exec.Command("git", args...)
cmd.Dir = workDir
out, err := cmd.CombinedOutput()
diff --git a/server/application/application_test.go b/server/application/application_test.go
index 00631baa1b296..a030131f679a9 100644
--- a/server/application/application_test.go
+++ b/server/application/application_test.go
@@ -131,14 +131,16 @@ func fakeRepoServerClient(isHelm bool) *mocks.RepoServerServiceClient {
// return an ApplicationServiceServer which returns fake data
func newTestAppServer(t *testing.T, objects ...runtime.Object) *Server {
+ t.Helper()
f := func(enf *rbac.Enforcer) {
_ = enf.SetBuiltinPolicy(assets.BuiltinPolicyCSV)
enf.SetDefaultRole("role:admin")
}
- return newTestAppServerWithEnforcerConfigure(f, t, map[string]string{}, objects...)
+ return newTestAppServerWithEnforcerConfigure(t, f, map[string]string{}, objects...)
}
-func newTestAppServerWithEnforcerConfigure(f func(*rbac.Enforcer), t *testing.T, additionalConfig map[string]string, objects ...runtime.Object) *Server {
+func newTestAppServerWithEnforcerConfigure(t *testing.T, f func(*rbac.Enforcer), additionalConfig map[string]string, objects ...runtime.Object) *Server {
+ t.Helper()
kubeclientset := fake.NewSimpleClientset(&v1.ConfigMap{
ObjectMeta: metav1.ObjectMeta{
Namespace: testNamespace,
@@ -315,14 +317,16 @@ func newTestAppServerWithEnforcerConfigure(f func(*rbac.Enforcer), t *testing.T,
// return an ApplicationServiceServer which returns fake data
func newTestAppServerWithBenchmark(b *testing.B, objects ...runtime.Object) *Server {
+ b.Helper()
f := func(enf *rbac.Enforcer) {
_ = enf.SetBuiltinPolicy(assets.BuiltinPolicyCSV)
enf.SetDefaultRole("role:admin")
}
- return newTestAppServerWithEnforcerConfigureWithBenchmark(f, b, objects...)
+ return newTestAppServerWithEnforcerConfigureWithBenchmark(b, f, objects...)
}
-func newTestAppServerWithEnforcerConfigureWithBenchmark(f func(*rbac.Enforcer), b *testing.B, objects ...runtime.Object) *Server {
+func newTestAppServerWithEnforcerConfigureWithBenchmark(b *testing.B, f func(*rbac.Enforcer), objects ...runtime.Object) *Server {
+ b.Helper()
kubeclientset := fake.NewSimpleClientset(&v1.ConfigMap{
ObjectMeta: metav1.ObjectMeta{
Namespace: testNamespace,
@@ -792,7 +796,7 @@ func TestNoAppEnumeration(t *testing.T) {
}
})
testDeployment := kube.MustToUnstructured(&deployment)
- appServer := newTestAppServerWithEnforcerConfigure(f, t, map[string]string{}, testApp, testHelmApp, testAppMulti, testDeployment)
+ appServer := newTestAppServerWithEnforcerConfigure(t, f, map[string]string{}, testApp, testHelmApp, testAppMulti, testDeployment)
noRoleCtx := context.Background()
// nolint:staticcheck
@@ -1096,6 +1100,7 @@ func TestNoAppEnumeration(t *testing.T) {
// setSyncRunningOperationState simulates starting a sync operation on the given app.
func setSyncRunningOperationState(t *testing.T, appServer *Server) {
+ t.Helper()
appIf := appServer.appclientset.ArgoprojV1alpha1().Applications("default")
app, err := appIf.Get(context.Background(), "test", metav1.GetOptions{})
require.NoError(t, err)
@@ -1107,6 +1112,7 @@ func setSyncRunningOperationState(t *testing.T, appServer *Server) {
// unsetSyncRunningOperationState simulates finishing a sync operation on the given app.
func unsetSyncRunningOperationState(t *testing.T, appServer *Server) {
+ t.Helper()
appIf := appServer.appclientset.ArgoprojV1alpha1().Applications("default")
app, err := appIf.Get(context.Background(), "test", metav1.GetOptions{})
require.NoError(t, err)
@@ -1153,6 +1159,7 @@ func TestListAppsInDefaultNSWithLabels(t *testing.T) {
}
func testListAppsWithLabels(t *testing.T, appQuery application.ApplicationQuery, appServer *Server) {
+ t.Helper()
validTests := []struct {
testName string
label string
@@ -1334,7 +1341,7 @@ g, group-49, role:test3
`
_ = enf.SetUserPolicy(policy)
}
- appServer := newTestAppServerWithEnforcerConfigure(f, t, map[string]string{}, objects...)
+ appServer := newTestAppServerWithEnforcerConfigure(t, f, map[string]string{}, objects...)
res, err := appServer.List(ctx, &application.ApplicationQuery{})
@@ -2228,6 +2235,7 @@ func TestMaxPodLogsRender(t *testing.T) {
// createAppServerWithMaxLodLogs creates a new app server with given number of pods and resources
func createAppServerWithMaxLodLogs(t *testing.T, podNumber int, maxPodLogsToRender ...int64) (*Server, context.Context) {
+ t.Helper()
runtimeObjects := make([]runtime.Object, podNumber+1)
resources := make([]appsv1.ResourceStatus, podNumber)
@@ -2269,7 +2277,7 @@ func createAppServerWithMaxLodLogs(t *testing.T, podNumber int, maxPodLogsToRend
enf.SetDefaultRole("role:admin")
}
formatInt := strconv.FormatInt(maxPodLogsToRender[0], 10)
- appServer := newTestAppServerWithEnforcerConfigure(f, t, map[string]string{"server.maxPodLogsToRender": formatInt}, runtimeObjects...)
+ appServer := newTestAppServerWithEnforcerConfigure(t, f, map[string]string{"server.maxPodLogsToRender": formatInt}, runtimeObjects...)
return appServer, adminCtx
} else {
appServer := newTestAppServer(t, runtimeObjects...)
@@ -2279,6 +2287,7 @@ func createAppServerWithMaxLodLogs(t *testing.T, podNumber int, maxPodLogsToRend
// refreshAnnotationRemover runs an infinite loop until it detects and removes refresh annotation or given context is done
func refreshAnnotationRemover(t *testing.T, ctx context.Context, patched *int32, appServer *Server, appName string, ch chan string) {
+ t.Helper()
for ctx.Err() == nil {
aName, appNs := argo.ParseFromQualifiedName(appName, appServer.ns)
a, err := appServer.appLister.Applications(appNs).Get(aName)
diff --git a/server/application/websocket_test.go b/server/application/websocket_test.go
index 0d048a1727d1b..eb1f760685e78 100644
--- a/server/application/websocket_test.go
+++ b/server/application/websocket_test.go
@@ -86,6 +86,7 @@ func TestReconnect(t *testing.T) {
}
func testServerConnection(t *testing.T, testFunc func(w http.ResponseWriter, r *http.Request), expectPermissionDenied bool) {
+ t.Helper()
s := httptest.NewServer(http.HandlerFunc(testFunc))
defer s.Close()
diff --git a/server/applicationset/applicationset.go b/server/applicationset/applicationset.go
index 5822b32d88558..b5288c71c1509 100644
--- a/server/applicationset/applicationset.go
+++ b/server/applicationset/applicationset.go
@@ -265,7 +265,7 @@ func (s *Server) Create(ctx context.Context, q *applicationset.ApplicationSetCre
func (s *Server) generateApplicationSetApps(ctx context.Context, logEntry *log.Entry, appset v1alpha1.ApplicationSet, namespace string) ([]v1alpha1.Application, error) {
argoCDDB := s.db
- scmConfig := generators.NewSCMConfig(s.ScmRootCAPath, s.AllowedScmProviders, s.EnableScmProviders, github_app.NewAuthCredentials(argoCDDB.(db.RepoCredsDB)))
+ scmConfig := generators.NewSCMConfig(s.ScmRootCAPath, s.AllowedScmProviders, s.EnableScmProviders, github_app.NewAuthCredentials(argoCDDB.(db.RepoCredsDB)), true)
getRepository := func(ctx context.Context, url, project string) (*v1alpha1.Repository, error) {
return s.db.GetRepository(ctx, url, project)
diff --git a/server/applicationset/applicationset_test.go b/server/applicationset/applicationset_test.go
index 0b83dfa2c4c90..4385d2ef57ef2 100644
--- a/server/applicationset/applicationset_test.go
+++ b/server/applicationset/applicationset_test.go
@@ -190,6 +190,7 @@ func newTestAppSet(opts ...func(appset *appsv1.ApplicationSet)) *appsv1.Applicat
}
func testListAppsetsWithLabels(t *testing.T, appsetQuery applicationset.ApplicationSetListQuery, appServer *Server) {
+ t.Helper()
validTests := []struct {
testName string
label string
diff --git a/server/badge/badge_test.go b/server/badge/badge_test.go
index 8e1d8819165bf..9c996ca4873d8 100644
--- a/server/badge/badge_test.go
+++ b/server/badge/badge_test.go
@@ -209,7 +209,7 @@ func TestHandlerFeatureProjectIsEnabled(t *testing.T) {
require.NoError(t, err)
handler.ServeHTTP(rr, req)
require.Equal(t, tt.response, rr.Result().StatusCode)
- if rr.Result().StatusCode != 400 {
+ if rr.Result().StatusCode != http.StatusBadRequest {
assert.Equal(t, "private, no-store", rr.Header().Get("Cache-Control"))
assert.Equal(t, "*", rr.Header().Get("Access-Control-Allow-Origin"))
response := rr.Body.String()
diff --git a/server/extension/extension_test.go b/server/extension/extension_test.go
index e412537eea0cd..c7d8cda22cb93 100644
--- a/server/extension/extension_test.go
+++ b/server/extension/extension_test.go
@@ -27,7 +27,7 @@ import (
func TestValidateHeaders(t *testing.T) {
t.Run("will build RequestResources successfully", func(t *testing.T) {
// given
- r, err := http.NewRequest("Get", "http://null", nil)
+ r, err := http.NewRequest(http.MethodGet, "http://null", nil)
if err != nil {
t.Fatalf("error initializing request: %s", err)
}
@@ -46,7 +46,7 @@ func TestValidateHeaders(t *testing.T) {
})
t.Run("will return error if application is malformatted", func(t *testing.T) {
// given
- r, err := http.NewRequest("Get", "http://null", nil)
+ r, err := http.NewRequest(http.MethodGet, "http://null", nil)
if err != nil {
t.Fatalf("error initializing request: %s", err)
}
@@ -61,7 +61,7 @@ func TestValidateHeaders(t *testing.T) {
})
t.Run("will return error if application header is missing", func(t *testing.T) {
// given
- r, err := http.NewRequest("Get", "http://null", nil)
+ r, err := http.NewRequest(http.MethodGet, "http://null", nil)
if err != nil {
t.Fatalf("error initializing request: %s", err)
}
@@ -76,7 +76,7 @@ func TestValidateHeaders(t *testing.T) {
})
t.Run("will return error if project header is missing", func(t *testing.T) {
// given
- r, err := http.NewRequest("Get", "http://null", nil)
+ r, err := http.NewRequest(http.MethodGet, "http://null", nil)
if err != nil {
t.Fatalf("error initializing request: %s", err)
}
@@ -91,7 +91,7 @@ func TestValidateHeaders(t *testing.T) {
})
t.Run("will return error if invalid namespace", func(t *testing.T) {
// given
- r, err := http.NewRequest("Get", "http://null", nil)
+ r, err := http.NewRequest(http.MethodGet, "http://null", nil)
if err != nil {
t.Fatalf("error initializing request: %s", err)
}
@@ -107,7 +107,7 @@ func TestValidateHeaders(t *testing.T) {
})
t.Run("will return error if invalid app name", func(t *testing.T) {
// given
- r, err := http.NewRequest("Get", "http://null", nil)
+ r, err := http.NewRequest(http.MethodGet, "http://null", nil)
if err != nil {
t.Fatalf("error initializing request: %s", err)
}
@@ -123,7 +123,7 @@ func TestValidateHeaders(t *testing.T) {
})
t.Run("will return error if invalid project name", func(t *testing.T) {
// given
- r, err := http.NewRequest("Get", "http://null", nil)
+ r, err := http.NewRequest(http.MethodGet, "http://null", nil)
if err != nil {
t.Fatalf("error initializing request: %s", err)
}
diff --git a/server/rbacpolicy/rbacpolicy.go b/server/rbacpolicy/rbacpolicy.go
index 0be623ae7819f..800dcd43c064a 100644
--- a/server/rbacpolicy/rbacpolicy.go
+++ b/server/rbacpolicy/rbacpolicy.go
@@ -46,8 +46,11 @@ var (
ResourceApplicationSets,
ResourceRepositories,
ResourceCertificates,
+ ResourceAccounts,
+ ResourceGPGKeys,
ResourceLogs,
ResourceExec,
+ ResourceExtensions,
}
Actions = []string{
ActionGet,
@@ -56,6 +59,8 @@ var (
ActionDelete,
ActionSync,
ActionOverride,
+ ActionAction,
+ ActionInvoke,
}
)
diff --git a/server/repository/repository.go b/server/repository/repository.go
index 2e25f87ce19d1..001818490f37e 100644
--- a/server/repository/repository.go
+++ b/server/repository/repository.go
@@ -128,6 +128,7 @@ func (s *Server) List(ctx context.Context, q *repositorypkg.RepoQuery) (*appsv1.
// Get return the requested configured repository by URL and the state of its connections.
func (s *Server) Get(ctx context.Context, q *repositorypkg.RepoQuery) (*appsv1.Repository, error) {
+ // ListRepositories normalizes the repo, sanitizes it, and augments it with connection details.
repo, err := getRepository(ctx, s.ListRepositories, q)
if err != nil {
return nil, err
@@ -146,30 +147,7 @@ func (s *Server) Get(ctx context.Context, q *repositorypkg.RepoQuery) (*appsv1.R
return nil, status.Errorf(codes.NotFound, "repo '%s' not found", q.Repo)
}
- // For backwards compatibility, if we have no repo type set assume a default
- rType := repo.Type
- if rType == "" {
- rType = common.DefaultRepoType
- }
- // remove secrets
- item := appsv1.Repository{
- Repo: repo.Repo,
- Type: rType,
- Name: repo.Name,
- Username: repo.Username,
- Insecure: repo.IsInsecure(),
- EnableLFS: repo.EnableLFS,
- GithubAppId: repo.GithubAppId,
- GithubAppInstallationId: repo.GithubAppInstallationId,
- GitHubAppEnterpriseBaseURL: repo.GitHubAppEnterpriseBaseURL,
- Proxy: repo.Proxy,
- Project: repo.Project,
- InheritedCreds: repo.InheritedCreds,
- }
-
- item.ConnectionState = s.getConnectionState(ctx, item.Repo, item.Project, q.ForceRefresh)
-
- return &item, nil
+ return repo, nil
}
// ListRepositories returns a list of all configured repositories and the state of their connections
diff --git a/server/repository/repository_test.go b/server/repository/repository_test.go
index 72354633048dc..64c215c70f668 100644
--- a/server/repository/repository_test.go
+++ b/server/repository/repository_test.go
@@ -369,6 +369,68 @@ func TestRepositoryServer(t *testing.T) {
assert.Equal(t, "rpc error: code = NotFound desc = repo 'https://test' not found", err.Error())
})
+ t.Run("Test_GetRepoIsSanitized", func(t *testing.T) {
+ repoServerClient := mocks.RepoServerServiceClient{}
+ repoServerClient.On("TestRepository", mock.Anything, mock.Anything).Return(&apiclient.TestRepositoryResponse{}, nil)
+ repoServerClientset := mocks.Clientset{RepoServerServiceClient: &repoServerClient}
+
+ url := "https://test"
+ db := &dbmocks.ArgoDB{}
+ db.On("ListRepositories", context.TODO()).Return([]*appsv1.Repository{{Repo: url, Username: "test", Password: "it's a secret"}}, nil)
+ db.On("GetRepository", context.TODO(), url, "").Return(&appsv1.Repository{Repo: url, Username: "test", Password: "it's a secret"}, nil)
+ db.On("RepositoryExists", context.TODO(), url, "").Return(true, nil)
+
+ s := NewServer(&repoServerClientset, db, enforcer, newFixtures().Cache, appLister, projInformer, testNamespace, settingsMgr)
+ repo, err := s.Get(context.TODO(), &repository.RepoQuery{
+ Repo: url,
+ })
+ require.NoError(t, err)
+ assert.Equal(t, "https://test", repo.Repo)
+ assert.Empty(t, repo.Password)
+ })
+
+ t.Run("Test_GetRepoIsNormalized", func(t *testing.T) {
+ repoServerClient := mocks.RepoServerServiceClient{}
+ repoServerClient.On("TestRepository", mock.Anything, mock.Anything).Return(&apiclient.TestRepositoryResponse{}, nil)
+ repoServerClientset := mocks.Clientset{RepoServerServiceClient: &repoServerClient}
+
+ url := "https://test"
+ db := &dbmocks.ArgoDB{}
+ db.On("ListRepositories", context.TODO()).Return([]*appsv1.Repository{{Repo: url}}, nil)
+ db.On("GetRepository", context.TODO(), url, "").Return(&appsv1.Repository{Repo: url, Username: "test"}, nil)
+ db.On("RepositoryExists", context.TODO(), url, "").Return(true, nil)
+
+ s := NewServer(&repoServerClientset, db, enforcer, newFixtures().Cache, appLister, projInformer, testNamespace, settingsMgr)
+ repo, err := s.Get(context.TODO(), &repository.RepoQuery{
+ Repo: url,
+ })
+ require.NoError(t, err)
+ assert.Equal(t, "https://test", repo.Repo)
+ assert.Equal(t, common.DefaultRepoType, repo.Type)
+ })
+
+ t.Run("Test_GetRepoHasConnectionState", func(t *testing.T) {
+ repoServerClient := mocks.RepoServerServiceClient{}
+ repoServerClient.On("TestRepository", mock.Anything, mock.Anything).Return(&apiclient.TestRepositoryResponse{
+ VerifiedRepository: true,
+ }, nil)
+ repoServerClientset := mocks.Clientset{RepoServerServiceClient: &repoServerClient}
+
+ url := "https://test"
+ db := &dbmocks.ArgoDB{}
+ db.On("ListRepositories", context.TODO()).Return([]*appsv1.Repository{{Repo: url}}, nil)
+ db.On("GetRepository", context.TODO(), url, "").Return(&appsv1.Repository{Repo: url}, nil)
+ db.On("RepositoryExists", context.TODO(), url, "").Return(true, nil)
+
+ s := NewServer(&repoServerClientset, db, enforcer, newFixtures().Cache, appLister, projInformer, testNamespace, settingsMgr)
+ repo, err := s.Get(context.TODO(), &repository.RepoQuery{
+ Repo: url,
+ })
+ require.NoError(t, err)
+ require.NotNil(t, repo.ConnectionState)
+ assert.Equal(t, appsv1.ConnectionStatusSuccessful, repo.ConnectionState.Status)
+ })
+
t.Run("Test_CreateRepositoryWithoutUpsert", func(t *testing.T) {
repoServerClient := mocks.RepoServerServiceClient{}
repoServerClient.On("TestRepository", mock.Anything, mock.Anything).Return(&apiclient.TestRepositoryResponse{}, nil)
diff --git a/server/server.go b/server/server.go
index 400ad99ad47a3..d5592181f4520 100644
--- a/server/server.go
+++ b/server/server.go
@@ -1287,7 +1287,7 @@ func (server *ArgoCDServer) newStaticAssetsHandler() func(http.ResponseWriter, *
w.Header().Set("X-XSS-Protection", "1")
// serve index.html for non file requests to support HTML5 History API
- if acceptHTML && !fileRequest && (r.Method == "GET" || r.Method == "HEAD") {
+ if acceptHTML && !fileRequest && (r.Method == http.MethodGet || r.Method == http.MethodHead) {
for k, v := range noCacheHeaders {
w.Header().Set(k, v)
}
diff --git a/server/server_test.go b/server/server_test.go
index 7923db7f3e9d6..1f715d00d4e91 100644
--- a/server/server_test.go
+++ b/server/server_test.go
@@ -51,6 +51,7 @@ type FakeArgoCDServer struct {
}
func fakeServer(t *testing.T) (*FakeArgoCDServer, func()) {
+ t.Helper()
cm := test.NewFakeConfigMap()
secret := test.NewFakeSecret()
kubeclientset := fake.NewSimpleClientset(cm, secret)
@@ -477,6 +478,7 @@ func TestAuthenticate(t *testing.T) {
}
func dexMockHandler(t *testing.T, url string) func(http.ResponseWriter, *http.Request) {
+ t.Helper()
return func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/json")
switch r.RequestURI {
@@ -542,6 +544,7 @@ func dexMockHandler(t *testing.T, url string) func(http.ResponseWriter, *http.Re
}
func getTestServer(t *testing.T, anonymousEnabled bool, withFakeSSO bool, useDexForSSO bool, additionalOIDCConfig settings_util.OIDCConfig) (argocd *ArgoCDServer, oidcURL string) {
+ t.Helper()
cm := test.NewFakeConfigMap()
if anonymousEnabled {
cm.Data["users.anonymous.enabled"] = "true"
@@ -1355,7 +1358,7 @@ func TestCacheControlHeaders(t *testing.T) {
name: "file exists",
filename: "exists.html",
createFile: true,
- expectedStatus: 200,
+ expectedStatus: http.StatusOK,
expectedCacheControlHeaders: nil,
},
{
@@ -1369,7 +1372,7 @@ func TestCacheControlHeaders(t *testing.T) {
name: "main js bundle exists",
filename: "main.e4188e5adc97bbfc00c3.js",
createFile: true,
- expectedStatus: 200,
+ expectedStatus: http.StatusOK,
expectedCacheControlHeaders: []string{"public, max-age=31536000, immutable"},
},
{
@@ -1532,9 +1535,10 @@ func TestReplaceBaseHRef(t *testing.T) {
func Test_enforceContentTypes(t *testing.T) {
getBaseHandler := func(t *testing.T, allow bool) http.Handler {
+ t.Helper()
return http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
assert.True(t, allow, "http handler was hit when it should have been blocked by content type enforcement")
- writer.WriteHeader(200)
+ writer.WriteHeader(http.StatusOK)
})
}
@@ -1542,33 +1546,33 @@ func Test_enforceContentTypes(t *testing.T) {
t.Run("GET - not providing a content type, should still succeed", func(t *testing.T) {
handler := enforceContentTypes(getBaseHandler(t, true), []string{"application/json"}).(http.HandlerFunc)
- req := httptest.NewRequest("GET", "/", nil)
+ req := httptest.NewRequest(http.MethodGet, "/", nil)
w := httptest.NewRecorder()
handler(w, req)
resp := w.Result()
- assert.Equal(t, 200, resp.StatusCode)
+ assert.Equal(t, http.StatusOK, resp.StatusCode)
})
t.Run("POST", func(t *testing.T) {
handler := enforceContentTypes(getBaseHandler(t, true), []string{"application/json"}).(http.HandlerFunc)
- req := httptest.NewRequest("POST", "/", nil)
+ req := httptest.NewRequest(http.MethodPost, "/", nil)
w := httptest.NewRecorder()
handler(w, req)
resp := w.Result()
- assert.Equal(t, 415, resp.StatusCode, "didn't provide a content type, should have gotten an error")
+ assert.Equal(t, http.StatusUnsupportedMediaType, resp.StatusCode, "didn't provide a content type, should have gotten an error")
- req = httptest.NewRequest("POST", "/", nil)
+ req = httptest.NewRequest(http.MethodPost, "/", nil)
req.Header = map[string][]string{"Content-Type": {"application/json"}}
w = httptest.NewRecorder()
handler(w, req)
resp = w.Result()
- assert.Equal(t, 200, resp.StatusCode, "should have passed, since an allowed content type was provided")
+ assert.Equal(t, http.StatusOK, resp.StatusCode, "should have passed, since an allowed content type was provided")
- req = httptest.NewRequest("POST", "/", nil)
+ req = httptest.NewRequest(http.MethodPost, "/", nil)
req.Header = map[string][]string{"Content-Type": {"not-allowed"}}
w = httptest.NewRecorder()
handler(w, req)
resp = w.Result()
- assert.Equal(t, 415, resp.StatusCode, "should not have passed, since a disallowed content type was provided")
+ assert.Equal(t, http.StatusUnsupportedMediaType, resp.StatusCode, "should not have passed, since a disallowed content type was provided")
})
}
diff --git a/test/e2e/app_management_ns_test.go b/test/e2e/app_management_ns_test.go
index 9df081e68376d..9eb28233c4f8f 100644
--- a/test/e2e/app_management_ns_test.go
+++ b/test/e2e/app_management_ns_test.go
@@ -876,6 +876,7 @@ func TestNamespacedConfigMap(t *testing.T) {
}
func testNSEdgeCasesApplicationResources(t *testing.T, appPath string, statusCode health.HealthStatusCode, message ...string) {
+ t.Helper()
ctx := Given(t)
expect := ctx.
Path(appPath).
@@ -1085,6 +1086,7 @@ func TestNamespacedSyncAsync(t *testing.T) {
// assertResourceActions verifies if view/modify resource actions are successful/failing for given application
func assertNSResourceActions(t *testing.T, appName string, successful bool) {
+ t.Helper()
assertError := func(err error, message string) {
if successful {
require.NoError(t, err)
diff --git a/test/e2e/app_management_test.go b/test/e2e/app_management_test.go
index edc2fb045e612..419e8b6afe32a 100644
--- a/test/e2e/app_management_test.go
+++ b/test/e2e/app_management_test.go
@@ -757,6 +757,7 @@ func TestManipulateApplicationResources(t *testing.T) {
}
func assetSecretDataHidden(t *testing.T, manifest string) {
+ t.Helper()
secret, err := UnmarshalToUnstructured(manifest)
require.NoError(t, err)
@@ -1020,6 +1021,7 @@ func TestConfigMap(t *testing.T) {
}
func testEdgeCasesApplicationResources(t *testing.T, appPath string, statusCode health.HealthStatusCode, message ...string) {
+ t.Helper()
expect := Given(t).
Path(appPath).
When().
@@ -1442,6 +1444,7 @@ func TestSyncAsync(t *testing.T) {
// assertResourceActions verifies if view/modify resource actions are successful/failing for given application
func assertResourceActions(t *testing.T, appName string, successful bool) {
+ t.Helper()
assertError := func(err error, message string) {
if successful {
require.NoError(t, err)
diff --git a/test/e2e/applicationset_test.go b/test/e2e/applicationset_test.go
index 5df36d591b1d9..1e1447ddbcb4d 100644
--- a/test/e2e/applicationset_test.go
+++ b/test/e2e/applicationset_test.go
@@ -1,6 +1,7 @@
package e2e
import (
+ "context"
"fmt"
"io"
"net"
@@ -10,6 +11,8 @@ import (
"testing"
"time"
+ "github.com/google/uuid"
+
corev1 "k8s.io/api/core/v1"
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -17,6 +20,7 @@ import (
"github.com/argoproj/pkg/rand"
+ "github.com/argoproj/argo-cd/v2/common"
"github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1"
argov1alpha1 "github.com/argoproj/argo-cd/v2/pkg/apis/application/v1alpha1"
"github.com/argoproj/argo-cd/v2/test/e2e/fixture"
@@ -2103,6 +2107,7 @@ func TestSimpleGitFilesPreserveResourcesOnDeletionGoTemplate(t *testing.T) {
}
func githubSCMMockHandler(t *testing.T) func(http.ResponseWriter, *http.Request) {
+ t.Helper()
return func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/json")
switch r.RequestURI {
@@ -2292,6 +2297,7 @@ func githubSCMMockHandler(t *testing.T) func(http.ResponseWriter, *http.Request)
}
func testServerWithPort(t *testing.T, port int, handler http.Handler) *httptest.Server {
+ t.Helper()
// Use mocked API response to avoid rate-limiting.
l, err := net.Listen("tcp", fmt.Sprintf("127.0.0.1:%d", port))
if err != nil {
@@ -2669,6 +2675,7 @@ func TestCustomApplicationFinalizersGoTemplate(t *testing.T) {
}
func githubPullMockHandler(t *testing.T) func(http.ResponseWriter, *http.Request) {
+ t.Helper()
return func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/json")
switch r.RequestURI {
@@ -2704,6 +2711,219 @@ func githubPullMockHandler(t *testing.T) func(http.ResponseWriter, *http.Request
}
}
+func TestSimpleSCMProviderGeneratorTokenRefStrictOk(t *testing.T) {
+ secretName := uuid.New().String()
+
+ ts := testServerWithPort(t, 8341, http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
+ githubSCMMockHandler(t)(w, r)
+ }))
+
+ ts.Start()
+ defer ts.Close()
+
+ expectedApp := argov1alpha1.Application{
+ TypeMeta: metav1.TypeMeta{
+ Kind: application.ApplicationKind,
+ APIVersion: "argoproj.io/v1alpha1",
+ },
+ ObjectMeta: metav1.ObjectMeta{
+ Name: "argo-cd-guestbook",
+ Namespace: fixture.TestNamespace(),
+ Finalizers: []string{"resources-finalizer.argocd.argoproj.io"},
+ },
+ Spec: argov1alpha1.ApplicationSpec{
+ Project: "default",
+ Source: &argov1alpha1.ApplicationSource{
+ RepoURL: "git@github.com:argoproj/argo-cd.git",
+ TargetRevision: "master",
+ Path: "guestbook",
+ },
+ Destination: argov1alpha1.ApplicationDestination{
+ Server: "https://kubernetes.default.svc",
+ Namespace: "guestbook",
+ },
+ },
+ }
+
+ // Because you can't &"".
+ repoMatch := "argo-cd"
+
+ Given(t).
+ And(func() {
+ _, err := utils.GetE2EFixtureK8sClient().KubeClientset.CoreV1().Secrets(fixture.TestNamespace()).Create(context.Background(), &corev1.Secret{
+ ObjectMeta: metav1.ObjectMeta{
+ Namespace: fixture.TestNamespace(),
+ Name: secretName,
+ Labels: map[string]string{
+ common.LabelKeySecretType: common.LabelValueSecretTypeSCMCreds,
+ },
+ },
+ Data: map[string][]byte{
+ "hello": []byte("world"),
+ },
+ }, metav1.CreateOptions{})
+
+ assert.NoError(t, err)
+ }).
+ // Create an SCMProviderGenerator-based ApplicationSet
+ When().Create(v1alpha1.ApplicationSet{
+ ObjectMeta: metav1.ObjectMeta{
+ Name: "simple-scm-provider-generator-strict",
+ },
+ Spec: v1alpha1.ApplicationSetSpec{
+ Template: v1alpha1.ApplicationSetTemplate{
+ ApplicationSetTemplateMeta: v1alpha1.ApplicationSetTemplateMeta{Name: "{{ repository }}-guestbook"},
+ Spec: argov1alpha1.ApplicationSpec{
+ Project: "default",
+ Source: &argov1alpha1.ApplicationSource{
+ RepoURL: "{{ url }}",
+ TargetRevision: "{{ branch }}",
+ Path: "guestbook",
+ },
+ Destination: argov1alpha1.ApplicationDestination{
+ Server: "https://kubernetes.default.svc",
+ Namespace: "guestbook",
+ },
+ },
+ },
+ Generators: []v1alpha1.ApplicationSetGenerator{
+ {
+ SCMProvider: &v1alpha1.SCMProviderGenerator{
+ Github: &v1alpha1.SCMProviderGeneratorGithub{
+ Organization: "argoproj",
+ API: ts.URL,
+ TokenRef: &argov1alpha1.SecretRef{
+ SecretName: secretName,
+ Key: "hello",
+ },
+ },
+ Filters: []v1alpha1.SCMProviderGeneratorFilter{
+ {
+ RepositoryMatch: &repoMatch,
+ },
+ },
+ },
+ },
+ },
+ },
+ }).Then().Expect(ApplicationsExist([]argov1alpha1.Application{expectedApp})).
+ When().And(func() {
+ err := utils.GetE2EFixtureK8sClient().KubeClientset.CoreV1().Secrets(fixture.TestNamespace()).Delete(context.Background(), secretName, metav1.DeleteOptions{})
+ assert.NoError(t, err)
+ })
+}
+
+func TestSimpleSCMProviderGeneratorTokenRefStrictKo(t *testing.T) {
+ secretName := uuid.New().String()
+
+ ts := testServerWithPort(t, 8341, http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
+ githubSCMMockHandler(t)(w, r)
+ }))
+
+ ts.Start()
+ defer ts.Close()
+
+ expectedApp := argov1alpha1.Application{
+ TypeMeta: metav1.TypeMeta{
+ Kind: application.ApplicationKind,
+ APIVersion: "argoproj.io/v1alpha1",
+ },
+ ObjectMeta: metav1.ObjectMeta{
+ Name: "argo-cd-guestbook",
+ Namespace: fixture.TestNamespace(),
+ Finalizers: []string{"resources-finalizer.argocd.argoproj.io"},
+ Labels: map[string]string{
+ common.LabelKeyAppInstance: "simple-scm-provider-generator-strict-ko",
+ },
+ },
+ Spec: argov1alpha1.ApplicationSpec{
+ Project: "default",
+ Source: &argov1alpha1.ApplicationSource{
+ RepoURL: "git@github.com:argoproj/argo-cd.git",
+ TargetRevision: "master",
+ Path: "guestbook",
+ },
+ Destination: argov1alpha1.ApplicationDestination{
+ Server: "https://kubernetes.default.svc",
+ Namespace: "guestbook",
+ },
+ },
+ }
+
+ // Because you can't &"".
+ repoMatch := "argo-cd"
+
+ Given(t).
+ And(func() {
+ _, err := utils.GetE2EFixtureK8sClient().KubeClientset.CoreV1().Secrets(fixture.TestNamespace()).Create(context.Background(), &corev1.Secret{
+ ObjectMeta: metav1.ObjectMeta{
+ Namespace: fixture.TestNamespace(),
+ Name: secretName,
+ Labels: map[string]string{
+ // Try to exfiltrate cluster secret
+ common.LabelKeySecretType: common.LabelValueSecretTypeCluster,
+ },
+ },
+ Data: map[string][]byte{
+ "hello": []byte("world"),
+ },
+ }, metav1.CreateOptions{})
+
+ assert.NoError(t, err)
+ }).
+ // Create an SCMProviderGenerator-based ApplicationSet
+ When().Create(v1alpha1.ApplicationSet{
+ ObjectMeta: metav1.ObjectMeta{
+ Name: "simple-scm-provider-generator-strict-ko",
+ },
+ Spec: v1alpha1.ApplicationSetSpec{
+ Template: v1alpha1.ApplicationSetTemplate{
+ ApplicationSetTemplateMeta: v1alpha1.ApplicationSetTemplateMeta{Name: "{{ repository }}-guestbook"},
+ Spec: argov1alpha1.ApplicationSpec{
+ Project: "default",
+ Source: &argov1alpha1.ApplicationSource{
+ RepoURL: "{{ url }}",
+ TargetRevision: "{{ branch }}",
+ Path: "guestbook",
+ },
+ Destination: argov1alpha1.ApplicationDestination{
+ Server: "https://kubernetes.default.svc",
+ Namespace: "guestbook",
+ },
+ },
+ },
+ Generators: []v1alpha1.ApplicationSetGenerator{
+ {
+ SCMProvider: &v1alpha1.SCMProviderGenerator{
+ Github: &v1alpha1.SCMProviderGeneratorGithub{
+ Organization: "argoproj",
+ API: ts.URL,
+ TokenRef: &argov1alpha1.SecretRef{
+ SecretName: secretName,
+ Key: "hello",
+ },
+ },
+ Filters: []v1alpha1.SCMProviderGeneratorFilter{
+ {
+ RepositoryMatch: &repoMatch,
+ },
+ },
+ },
+ },
+ },
+ },
+ }).Then().Expect(ApplicationsDoNotExist([]argov1alpha1.Application{expectedApp})).
+ When().
+ And(func() {
+ // app should be listed
+ output, err := fixture.RunCli("appset", "get", "simple-scm-provider-generator-strict-ko")
+ require.NoError(t, err)
+ assert.Contains(t, output, fmt.Sprintf("scm provider: error fetching Github token: secret %s/%s is not a valid SCM creds secret", fixture.TestNamespace(), secretName))
+ err2 := utils.GetE2EFixtureK8sClient().KubeClientset.CoreV1().Secrets(fixture.TestNamespace()).Delete(context.Background(), secretName, metav1.DeleteOptions{})
+ assert.NoError(t, err2)
+ })
+}
+
func TestSimplePullRequestGenerator(t *testing.T) {
ts := testServerWithPort(t, 8343, http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
githubPullMockHandler(t)(w, r)
diff --git a/test/e2e/custom_tool_test.go b/test/e2e/custom_tool_test.go
index d5433977afa3f..1b096db2d1062 100644
--- a/test/e2e/custom_tool_test.go
+++ b/test/e2e/custom_tool_test.go
@@ -168,6 +168,7 @@ func TestCustomToolSyncAndDiffLocal(t *testing.T) {
}
func startCMPServer(t *testing.T, configFile string) {
+ t.Helper()
pluginSockFilePath := TmpDir + PluginSockFilePath
t.Setenv("ARGOCD_BINARY_NAME", "argocd-cmp-server")
// ARGOCD_PLUGINSOCKFILEPATH should be set as the same value as repo server env var
diff --git a/test/e2e/deployment_test.go b/test/e2e/deployment_test.go
index 083a2a60d9b3d..ccc3af69a0c87 100644
--- a/test/e2e/deployment_test.go
+++ b/test/e2e/deployment_test.go
@@ -259,6 +259,7 @@ func buildArgoCDClusterSecret(secretName, secretNamespace, clusterName, clusterS
// - username = name of Namespace the simulated user is able to deploy to
// - clusterScopedSecrets = whether the Service Account is namespace-scoped or cluster-scoped.
func createNamespaceScopedUser(t *testing.T, username string, clusterScopedSecrets bool) {
+ t.Helper()
// Create a new Namespace for our simulated user
ns := corev1.Namespace{
ObjectMeta: metav1.ObjectMeta{
diff --git a/test/e2e/fixture/account/context.go b/test/e2e/fixture/account/context.go
index 507ca0bd07f2c..6007392da6022 100644
--- a/test/e2e/fixture/account/context.go
+++ b/test/e2e/fixture/account/context.go
@@ -18,6 +18,7 @@ type Context struct {
}
func Given(t *testing.T) *Context {
+ t.Helper()
fixture.EnsureCleanState(t)
// ARGOCE_E2E_DEFAULT_TIMEOUT can be used to override the default timeout
// for any context.
diff --git a/test/e2e/fixture/admin/context.go b/test/e2e/fixture/admin/context.go
index aed58cb1a7b79..017407f0c9d71 100644
--- a/test/e2e/fixture/admin/context.go
+++ b/test/e2e/fixture/admin/context.go
@@ -16,11 +16,13 @@ type Context struct {
}
func Given(t *testing.T) *Context {
+ t.Helper()
fixture.EnsureCleanState(t)
return GivenWithSameState(t)
}
func GivenWithSameState(t *testing.T) *Context {
+ t.Helper()
// ARGOCE_E2E_DEFAULT_TIMEOUT can be used to override the default timeout
// for any context.
timeout := env.ParseNumFromEnv("ARGOCD_E2E_DEFAULT_TIMEOUT", 20, 0, 180)
diff --git a/test/e2e/fixture/app/context.go b/test/e2e/fixture/app/context.go
index ad892796cdbdf..7755a733c8898 100644
--- a/test/e2e/fixture/app/context.go
+++ b/test/e2e/fixture/app/context.go
@@ -53,17 +53,20 @@ type ContextArgs struct {
}
func Given(t *testing.T, opts ...fixture.TestOption) *Context {
+ t.Helper()
fixture.EnsureCleanState(t, opts...)
return GivenWithSameState(t)
}
func GivenWithNamespace(t *testing.T, namespace string) *Context {
+ t.Helper()
ctx := Given(t)
ctx.appNamespace = namespace
return ctx
}
func GivenWithSameState(t *testing.T) *Context {
+ t.Helper()
// ARGOCE_E2E_DEFAULT_TIMEOUT can be used to override the default timeout
// for any context.
timeout := env.ParseNumFromEnv("ARGOCD_E2E_DEFAULT_TIMEOUT", 20, 0, 180)
diff --git a/test/e2e/fixture/applicationsets/context.go b/test/e2e/fixture/applicationsets/context.go
index daa2474ea01d5..83894f732504b 100644
--- a/test/e2e/fixture/applicationsets/context.go
+++ b/test/e2e/fixture/applicationsets/context.go
@@ -21,6 +21,7 @@ type Context struct {
}
func Given(t *testing.T) *Context {
+ t.Helper()
utils.EnsureCleanState(t)
return &Context{t: t}
}
diff --git a/test/e2e/fixture/applicationsets/utils/fixture.go b/test/e2e/fixture/applicationsets/utils/fixture.go
index 1ff0fbbfd6137..bd8d035018d71 100644
--- a/test/e2e/fixture/applicationsets/utils/fixture.go
+++ b/test/e2e/fixture/applicationsets/utils/fixture.go
@@ -106,6 +106,7 @@ func GetE2EFixtureK8sClient() *E2EFixtureK8sClient {
// EnsureCleanSlate ensures that the Kubernetes resources on the cluster are in a 'clean' state, before a test is run.
func EnsureCleanState(t *testing.T) {
+ t.Helper()
start := time.Now()
fixtureClient := GetE2EFixtureK8sClient()
@@ -366,6 +367,7 @@ func ToUnstructured(obj interface{}) (*unstructured.Unstructured, error) {
//
// Note: This only applies to tests that use the GitHub API (different from GitHub's Git service)
func IsGitHubAPISkippedTest(t *testing.T) bool {
+ t.Helper()
if strings.TrimSpace(os.Getenv("GITHUB_TOKEN")) == "" {
t.Skip("Skipping this test, as the GITHUB_TOKEN is not set. Please ensure this test passes locally, with your own GITHUB_TOKEN.")
return true
diff --git a/test/e2e/fixture/cluster/context.go b/test/e2e/fixture/cluster/context.go
index bd0102f891d71..9024b2d828a23 100644
--- a/test/e2e/fixture/cluster/context.go
+++ b/test/e2e/fixture/cluster/context.go
@@ -22,11 +22,13 @@ type Context struct {
}
func Given(t *testing.T) *Context {
+ t.Helper()
fixture.EnsureCleanState(t)
return GivenWithSameState(t)
}
func GivenWithSameState(t *testing.T) *Context {
+ t.Helper()
// ARGOCE_E2E_DEFAULT_TIMEOUT can be used to override the default timeout
// for any context.
timeout := env.ParseNumFromEnv("ARGOCD_E2E_DEFAULT_TIMEOUT", 10, 0, 180)
diff --git a/test/e2e/fixture/fixture.go b/test/e2e/fixture/fixture.go
index e44d9b8ca90fa..f2f366c201240 100644
--- a/test/e2e/fixture/fixture.go
+++ b/test/e2e/fixture/fixture.go
@@ -574,6 +574,7 @@ func WithTestData(testdata string) TestOption {
}
func EnsureCleanState(t *testing.T, opts ...TestOption) {
+ t.Helper()
opt := newTestOption(opts...)
// In large scenarios, we can skip tests that already run
SkipIfAlreadyRun(t)
@@ -984,6 +985,7 @@ func LocalOrRemotePath(base string) string {
// Environment variable names follow the ARGOCD_E2E_SKIP_
pattern,
// and must be set to the string value 'true' in order to skip a test.
func SkipOnEnv(t *testing.T, suffixes ...string) {
+ t.Helper()
for _, suffix := range suffixes {
e := os.Getenv("ARGOCD_E2E_SKIP_" + suffix)
if e == "true" {
@@ -995,6 +997,7 @@ func SkipOnEnv(t *testing.T, suffixes ...string) {
// SkipIfAlreadyRun skips a test if it has been already run by a previous
// test cycle and was recorded.
func SkipIfAlreadyRun(t *testing.T) {
+ t.Helper()
if _, ok := testsRun[t.Name()]; ok {
t.Skip()
}
@@ -1003,6 +1006,7 @@ func SkipIfAlreadyRun(t *testing.T) {
// RecordTestRun records a test that has been run successfully to a text file,
// so that it can be automatically skipped if requested.
func RecordTestRun(t *testing.T) {
+ t.Helper()
if t.Skipped() || t.Failed() {
return
}
diff --git a/test/e2e/fixture/notification/context.go b/test/e2e/fixture/notification/context.go
index 0b70362b0fb1a..3e257fcfff3f0 100644
--- a/test/e2e/fixture/notification/context.go
+++ b/test/e2e/fixture/notification/context.go
@@ -12,6 +12,7 @@ type Context struct {
}
func Given(t *testing.T) *Context {
+ t.Helper()
fixture.EnsureCleanState(t)
return &Context{t: t}
}
diff --git a/test/e2e/fixture/project/context.go b/test/e2e/fixture/project/context.go
index e637acbba8cf4..55f8d36199112 100644
--- a/test/e2e/fixture/project/context.go
+++ b/test/e2e/fixture/project/context.go
@@ -20,11 +20,13 @@ type Context struct {
}
func Given(t *testing.T) *Context {
+ t.Helper()
fixture.EnsureCleanState(t)
return GivenWithSameState(t)
}
func GivenWithSameState(t *testing.T) *Context {
+ t.Helper()
// ARGOCE_E2E_DEFAULT_TIMEOUT can be used to override the default timeout
// for any context.
timeout := env.ParseNumFromEnv("ARGOCD_E2E_DEFAULT_TIMEOUT", 10, 0, 180)
diff --git a/test/e2e/fixture/repos/context.go b/test/e2e/fixture/repos/context.go
index 28064e721c5f4..4df9c1e4bb594 100644
--- a/test/e2e/fixture/repos/context.go
+++ b/test/e2e/fixture/repos/context.go
@@ -20,6 +20,7 @@ type Context struct {
}
func Given(t *testing.T, sameState bool) *Context {
+ t.Helper()
if !sameState {
fixture.EnsureCleanState(t)
}
diff --git a/test/e2e/helm_test.go b/test/e2e/helm_test.go
index 9a95829c33c50..d0b3443000a95 100644
--- a/test/e2e/helm_test.go
+++ b/test/e2e/helm_test.go
@@ -501,6 +501,7 @@ func TestHelmWithDependenciesLegacyRepo(t *testing.T) {
}
func testHelmWithDependencies(t *testing.T, chartPath string, legacyRepo bool) {
+ t.Helper()
ctx := Given(t).
CustomCACertAdded().
// these are slow tests
diff --git a/test/e2e/hook_test.go b/test/e2e/hook_test.go
index 5fe2248051737..f69fc18defcc5 100644
--- a/test/e2e/hook_test.go
+++ b/test/e2e/hook_test.go
@@ -36,6 +36,7 @@ func TestPostSyncHookSuccessful(t *testing.T) {
// make sure we can run a standard sync hook
func testHookSuccessful(t *testing.T, hookType HookType) {
+ t.Helper()
Given(t).
Path("hook").
When().
diff --git a/test/e2e/merge_e2e_test.go b/test/e2e/merge_e2e_test.go
index 970996aee9819..95437b9f2892d 100644
--- a/test/e2e/merge_e2e_test.go
+++ b/test/e2e/merge_e2e_test.go
@@ -435,6 +435,7 @@ func TestMergeTerminalMergeGeneratorSelector(t *testing.T) {
}
func toAPIExtensionsJSON(t *testing.T, g interface{}) *apiextensionsv1.JSON {
+ t.Helper()
resVal, err := json.Marshal(g)
if err != nil {
t.Error("unable to unmarshal json", g)
diff --git a/test/e2e/project_management_test.go b/test/e2e/project_management_test.go
index 19222319693d1..01b2b472d5acb 100644
--- a/test/e2e/project_management_test.go
+++ b/test/e2e/project_management_test.go
@@ -22,6 +22,7 @@ import (
)
func assertProjHasEvent(t *testing.T, a *v1alpha1.AppProject, message string, reason string) {
+ t.Helper()
list, err := fixture.KubeClientset.CoreV1().Events(fixture.TestNamespace()).List(context.Background(), metav1.ListOptions{
FieldSelector: fields.SelectorFromSet(map[string]string{
"involvedObject.name": a.Name,
diff --git a/test/e2e/selective_sync_test.go b/test/e2e/selective_sync_test.go
index 491914be55184..2f7704aa6b2ea 100644
--- a/test/e2e/selective_sync_test.go
+++ b/test/e2e/selective_sync_test.go
@@ -111,6 +111,7 @@ func TestSelectiveSyncWithNamespace(t *testing.T) {
}
func getNewNamespace(t *testing.T) string {
+ t.Helper()
randStr, err := rand.String(5)
require.NoError(t, err)
postFix := "-" + strings.ToLower(randStr)
diff --git a/test/fixture/test/ci.go b/test/fixture/test/ci.go
index 8a86a6d416dbf..44a98fc62093c 100644
--- a/test/fixture/test/ci.go
+++ b/test/fixture/test/ci.go
@@ -7,6 +7,7 @@ import (
// invoke this method to indicate test that should be skipped on CI, i.e. you only need it for manual testing/locally
func LocalOnly(t *testing.T) {
+ t.Helper()
if os.Getenv("CI") == "true" {
t.Skipf("test %s skipped when envvar CI=true", t.Name())
}
@@ -15,6 +16,7 @@ func LocalOnly(t *testing.T) {
// invoke this method to indicate test should only run on CI, i.e. edge-case test on code that rarely changes and needs
// extra software install
func CIOnly(t *testing.T) {
+ t.Helper()
if os.Getenv("CI") != "true" {
t.Skipf("test %s skipped when envvar CI!=true", t.Name())
}
diff --git a/test/fixture/test/flaky.go b/test/fixture/test/flaky.go
index ae1c929f70bf7..79d222425a582 100644
--- a/test/fixture/test/flaky.go
+++ b/test/fixture/test/flaky.go
@@ -6,5 +6,6 @@ import (
// invoke this method to indicate it is a flaky test that should be skipped on CI
func Flaky(t *testing.T) {
+ t.Helper()
LocalOnly(t)
}
diff --git a/ui/src/app/applications/components/application-deployment-history/revision-metadata-rows.tsx b/ui/src/app/applications/components/application-deployment-history/revision-metadata-rows.tsx
index 1043d0bfa5659..be141a3b879c4 100644
--- a/ui/src/app/applications/components/application-deployment-history/revision-metadata-rows.tsx
+++ b/ui/src/app/applications/components/application-deployment-history/revision-metadata-rows.tsx
@@ -5,7 +5,7 @@ import {ApplicationSource, RevisionMetadata, ChartDetails} from '../../../shared
import {services} from '../../../shared/services';
export const RevisionMetadataRows = (props: {applicationName: string; applicationNamespace: string; source: ApplicationSource; index: number; versionId: number}) => {
- if (props.source.chart) {
+ if (props?.source?.chart) {
return (
,
- action: () => this.selectNode(fullName)
+ action: () => this.selectNode(fullName),
+ disabled: !app.spec.source
},
{
iconClassName: 'fa fa-file-medical',
title: ,
action: () => this.selectNode(fullName, 0, 'diff'),
- disabled: app.status.sync.status === appModels.SyncStatuses.Synced
+ disabled: app.status.sync.status === appModels.SyncStatuses.Synced || !app.spec.source
},
{
iconClassName: 'fa fa-sync',
title: ,
- action: () => AppUtils.showDeploy('all', null, this.appContext.apis)
+ action: () => AppUtils.showDeploy('all', null, this.appContext.apis),
+ disabled: !app.spec.source
},
{
iconClassName: 'fa fa-info-circle',
diff --git a/ui/src/app/applications/components/application-parameters/application-parameters.tsx b/ui/src/app/applications/components/application-parameters/application-parameters.tsx
index ec6d67dae46a1..041880f007928 100644
--- a/ui/src/app/applications/components/application-parameters/application-parameters.tsx
+++ b/ui/src/app/applications/components/application-parameters/application-parameters.tsx
@@ -644,23 +644,24 @@ function gatherCoreSourceDetails(i: number, attributes: EditablePanelItem[], sou
)
});
} else {
+ const targetRevision = source ? source.targetRevision || 'HEAD' : 'Unknown';
attributes.push({
title: 'TARGET REVISION',
- view: ,
- edit: (formApi: FormApi) =>
+ view: ,
+ edit: (formApi: FormApi) =>
});
attributes.push({
title: 'PATH',
view: (
-
- {processPath(source.path)}
+
+ {processPath(source?.path)}
),
edit: (formApi: FormApi) =>
});
attributes.push({
title: 'REF',
- view: {source.ref},
+ view: {source?.ref},
edit: (formApi: FormApi) =>
});
}
diff --git a/ui/src/app/applications/components/application-parameters/source-panel.tsx b/ui/src/app/applications/components/application-parameters/source-panel.tsx
index 8e750b6e4a9b9..c5d6ca4050291 100644
--- a/ui/src/app/applications/components/application-parameters/source-panel.tsx
+++ b/ui/src/app/applications/components/application-parameters/source-panel.tsx
@@ -104,37 +104,37 @@ export const SourcePanel = (props: {
}
});
}
- if (a.spec.source.repoURL && a.spec.source.chart) {
+ if (a.spec?.source?.repoURL && a.spec?.source?.chart) {
props.appCurrent.spec.sources.forEach(source => {
if (
- source.repoURL === a.spec.source.repoURL &&
- source.chart === a.spec.source.chart &&
- source.targetRevision === a.spec.source.targetRevision
+ source?.repoURL === a.spec?.source?.repoURL &&
+ source?.chart === a.spec?.source?.chart &&
+ source?.targetRevision === a.spec?.source?.targetRevision
) {
sameChartVersion = true;
chartError =
'Version ' +
- source.targetRevision +
+ source?.targetRevision +
' of chart ' +
- source.chart +
+ source?.chart +
' from the selected repository was already added to this multi-source application';
}
});
}
if (!samePath) {
- if (!a.spec.source.path && !a.spec.source.chart && !a.spec.source.ref) {
+ if (!a.spec?.source?.path && !a.spec?.source?.chart && !a.spec?.source?.ref) {
pathError = 'Path or Ref is required';
}
}
if (!sameChartVersion) {
- if (!a.spec.source.chart && !a.spec.source.path && !a.spec.source.ref) {
+ if (!a.spec?.source?.chart && !a.spec?.source?.path && !a.spec?.source?.ref) {
chartError = 'Chart is required';
}
}
return {
- 'spec.source.repoURL': !a.spec.source.repoURL && 'Repository URL is required',
+ 'spec.source.repoURL': !a.spec?.source?.repoURL && 'Repository URL is required',
// eslint-disable-next-line no-prototype-builtins
- 'spec.source.targetRevision': !a.spec.source.targetRevision && a.spec.source.hasOwnProperty('chart') && 'Version is required',
+ 'spec.source.targetRevision': !a.spec?.source?.targetRevision && a.spec?.source?.hasOwnProperty('chart') && 'Version is required',
'spec.source.path': pathError,
'spec.source.chart': chartError
};
@@ -157,8 +157,8 @@ export const SourcePanel = (props: {
getApi={props.getFormApi}>
{api => {
// eslint-disable-next-line no-prototype-builtins
- const repoType = (api.getFormState().values.spec.source.hasOwnProperty('chart') && 'helm') || 'git';
- const repoInfo = reposInfo.find(info => info.repo === api.getFormState().values.spec.source.repoURL);
+ const repoType = (api.getFormState().values.spec?.source?.hasOwnProperty('chart') && 'helm') || 'git';
+ const repoInfo = reposInfo.find(info => info.repo === api.getFormState().values.spec?.source?.repoURL);
if (repoInfo) {
normalizeAppSource(appInEdit, repoInfo.type || 'git');
}
@@ -206,12 +206,12 @@ export const SourcePanel = (props: {
{(repoType === 'git' && (