@gitpod/gitpod-protocol 0.1.5-minor-updates.3 → 0.1.5-mixpanel-migration-prep.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/data/gitpod-schema.json +25 -24
- package/lib/accounting-protocol.d.ts +3 -6
- package/lib/accounting-protocol.d.ts.map +1 -1
- package/lib/accounting-protocol.js +10 -16
- package/lib/accounting-protocol.js.map +1 -1
- package/lib/admin-protocol.d.ts +25 -4
- package/lib/admin-protocol.d.ts.map +1 -1
- package/lib/admin-protocol.js +15 -0
- package/lib/admin-protocol.js.map +1 -1
- package/lib/analytics.d.ts +44 -0
- package/lib/analytics.d.ts.map +1 -0
- package/lib/analytics.js +10 -0
- package/lib/analytics.js.map +1 -0
- package/lib/context-url.d.ts +31 -0
- package/lib/context-url.d.ts.map +1 -0
- package/lib/context-url.js +102 -0
- package/lib/context-url.js.map +1 -0
- package/lib/context-url.spec.d.ts +14 -0
- package/lib/context-url.spec.d.ts.map +1 -0
- package/lib/context-url.spec.js +94 -0
- package/lib/context-url.spec.js.map +1 -0
- package/lib/email-protocol.d.ts +1 -2
- package/lib/email-protocol.d.ts.map +1 -1
- package/lib/email-protocol.js +4 -4
- package/lib/email-protocol.js.map +1 -1
- package/lib/encryption/container-module.js +4 -4
- package/lib/encryption/container-module.js.map +1 -1
- package/lib/encryption/encryption-engine.js +19 -20
- package/lib/encryption/encryption-engine.js.map +1 -1
- package/lib/encryption/encryption-engine.spec.js +29 -36
- package/lib/encryption/encryption-engine.spec.js.map +1 -1
- package/lib/encryption/encryption-service.js +29 -43
- package/lib/encryption/encryption-service.js.map +1 -1
- package/lib/encryption/key-provider.js +25 -30
- package/lib/encryption/key-provider.js.map +1 -1
- package/lib/env.d.ts +1 -2
- package/lib/env.d.ts.map +1 -1
- package/lib/env.js +20 -21
- package/lib/env.js.map +1 -1
- package/lib/gitpod-file-parser.js +25 -41
- package/lib/gitpod-file-parser.js.map +1 -1
- package/lib/gitpod-file-parser.spec.js +116 -116
- package/lib/gitpod-file-parser.spec.js.map +1 -1
- package/lib/gitpod-service.d.ts +124 -22
- package/lib/gitpod-service.d.ts.map +1 -1
- package/lib/gitpod-service.js +167 -278
- package/lib/gitpod-service.js.map +1 -1
- package/lib/headless-workspace-log.d.ts +8 -11
- package/lib/headless-workspace-log.d.ts.map +1 -1
- package/lib/headless-workspace-log.js +4 -7
- package/lib/headless-workspace-log.js.map +1 -1
- package/lib/ide-protocol.d.ts +105 -0
- package/lib/ide-protocol.d.ts.map +1 -0
- package/lib/ide-protocol.js +8 -0
- package/lib/ide-protocol.js.map +1 -0
- package/lib/index.d.ts +6 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +6 -0
- package/lib/index.js.map +1 -1
- package/lib/installation-admin-protocol.d.ts +27 -0
- package/lib/installation-admin-protocol.d.ts.map +1 -0
- package/lib/installation-admin-protocol.js +30 -0
- package/lib/installation-admin-protocol.js.map +1 -0
- package/lib/messaging/browser/connection.d.ts +5 -3
- package/lib/messaging/browser/connection.d.ts.map +1 -1
- package/lib/messaging/browser/connection.js +183 -33
- package/lib/messaging/browser/connection.js.map +1 -1
- package/lib/messaging/browser/window-connection.js +35 -55
- package/lib/messaging/browser/window-connection.js.map +1 -1
- package/lib/messaging/client-call-metrics.d.ts +35 -0
- package/lib/messaging/client-call-metrics.d.ts.map +1 -0
- package/lib/messaging/client-call-metrics.js +83 -0
- package/lib/messaging/client-call-metrics.js.map +1 -0
- package/lib/messaging/error.d.ts +3 -1
- package/lib/messaging/error.d.ts.map +1 -1
- package/lib/messaging/error.js +6 -2
- package/lib/messaging/error.js.map +1 -1
- package/lib/messaging/handler.d.ts +10 -0
- package/lib/messaging/handler.d.ts.map +1 -1
- package/lib/messaging/node/connection.d.ts +1 -17
- package/lib/messaging/node/connection.d.ts.map +1 -1
- package/lib/messaging/node/connection.js +23 -59
- package/lib/messaging/node/connection.js.map +1 -1
- package/lib/messaging/proxy-factory.d.ts +2 -0
- package/lib/messaging/proxy-factory.d.ts.map +1 -1
- package/lib/messaging/proxy-factory.js +74 -159
- package/lib/messaging/proxy-factory.js.map +1 -1
- package/lib/oss-allowlist.d.ts +14 -0
- package/lib/oss-allowlist.d.ts.map +1 -0
- package/lib/oss-allowlist.js +8 -0
- package/lib/oss-allowlist.js.map +1 -0
- package/lib/permission.d.ts +8 -1
- package/lib/permission.d.ts.map +1 -1
- package/lib/permission.js +36 -15
- package/lib/permission.js.map +1 -1
- package/lib/plans.d.ts +210 -0
- package/lib/plans.d.ts.map +1 -0
- package/lib/plans.js +570 -0
- package/lib/plans.js.map +1 -0
- package/lib/protocol.d.ts +119 -54
- package/lib/protocol.d.ts.map +1 -1
- package/lib/protocol.js +117 -131
- package/lib/protocol.js.map +1 -1
- package/lib/snapshot-url.d.ts +14 -0
- package/lib/snapshot-url.d.ts.map +1 -0
- package/lib/snapshot-url.js +26 -0
- package/lib/snapshot-url.js.map +1 -0
- package/{src/util/without.ts → lib/snapshot-url.spec.d.ts} +2 -3
- package/lib/snapshot-url.spec.d.ts.map +1 -0
- package/lib/snapshot-url.spec.js +41 -0
- package/lib/snapshot-url.spec.js.map +1 -0
- package/lib/team-subscription-protocol.d.ts +4 -4
- package/lib/team-subscription-protocol.d.ts.map +1 -1
- package/lib/team-subscription-protocol.js +15 -12
- package/lib/team-subscription-protocol.js.map +1 -1
- package/lib/teams-projects-protocol.d.ts +113 -0
- package/lib/teams-projects-protocol.d.ts.map +1 -0
- package/lib/teams-projects-protocol.js +30 -0
- package/lib/teams-projects-protocol.js.map +1 -0
- package/lib/util/analytics.d.ts +8 -0
- package/lib/util/analytics.d.ts.map +1 -0
- package/lib/util/analytics.js +88 -0
- package/lib/util/analytics.js.map +1 -0
- package/lib/util/async-iterator.js +55 -133
- package/lib/util/async-iterator.js.map +1 -1
- package/lib/util/cancelable.js +17 -59
- package/lib/util/cancelable.js.map +1 -1
- package/lib/util/date-time.js +8 -8
- package/lib/util/date-time.js.map +1 -1
- package/lib/util/deferred.js +10 -12
- package/lib/util/deferred.js.map +1 -1
- package/lib/util/disposable.js +26 -39
- package/lib/util/disposable.js.map +1 -1
- package/lib/util/event.js +58 -74
- package/lib/util/event.js.map +1 -1
- package/lib/util/garbage-collected-cache.d.ts +1 -0
- package/lib/util/garbage-collected-cache.d.ts.map +1 -1
- package/lib/util/garbage-collected-cache.js +26 -46
- package/lib/util/garbage-collected-cache.js.map +1 -1
- package/lib/util/generate-workspace-id.d.ts +1 -1
- package/lib/util/generate-workspace-id.d.ts.map +1 -1
- package/lib/util/generate-workspace-id.js +31 -68
- package/lib/util/generate-workspace-id.js.map +1 -1
- package/lib/util/generate-workspace-id.spec.js +57 -78
- package/lib/util/generate-workspace-id.spec.js.map +1 -1
- package/lib/util/gitpod-cookie.d.ts +20 -0
- package/lib/util/gitpod-cookie.d.ts.map +1 -0
- package/lib/util/gitpod-cookie.js +44 -0
- package/lib/util/gitpod-cookie.js.map +1 -0
- package/lib/util/gitpod-host-url.d.ts +1 -2
- package/lib/util/gitpod-host-url.d.ts.map +1 -1
- package/lib/util/gitpod-host-url.js +95 -98
- package/lib/util/gitpod-host-url.js.map +1 -1
- package/lib/util/gitpod-host-url.spec.d.ts +7 -1
- package/lib/util/gitpod-host-url.spec.d.ts.map +1 -1
- package/lib/util/gitpod-host-url.spec.js +103 -31
- package/lib/util/gitpod-host-url.spec.js.map +1 -1
- package/lib/util/grpc.d.ts +15 -0
- package/lib/util/grpc.d.ts.map +1 -0
- package/lib/util/grpc.js +18 -0
- package/lib/util/grpc.js.map +1 -0
- package/lib/util/jaeger-client-types.d.ts +68 -0
- package/lib/util/jaeger-client-types.d.ts.map +1 -0
- package/lib/util/{without.js → jaeger-client-types.js} +1 -1
- package/lib/util/jaeger-client-types.js.map +1 -0
- package/lib/util/logging.d.ts +49 -33
- package/lib/util/logging.d.ts.map +1 -1
- package/lib/util/logging.js +107 -110
- package/lib/util/logging.js.map +1 -1
- package/lib/util/make-link.js +2 -2
- package/lib/util/make-link.js.map +1 -1
- package/lib/util/parse-workspace-id.d.ts +10 -0
- package/lib/util/parse-workspace-id.d.ts.map +1 -1
- package/lib/util/parse-workspace-id.js +31 -7
- package/lib/util/parse-workspace-id.js.map +1 -1
- package/lib/util/parse-workspace-id.spec.d.ts +4 -0
- package/lib/util/parse-workspace-id.spec.d.ts.map +1 -1
- package/lib/util/parse-workspace-id.spec.js +123 -84
- package/lib/util/parse-workspace-id.spec.js.map +1 -1
- package/lib/util/queue.js +16 -55
- package/lib/util/queue.js.map +1 -1
- package/lib/util/queue.spec.js +144 -288
- package/lib/util/queue.spec.js.map +1 -1
- package/lib/util/repeat.d.ts +15 -0
- package/lib/util/repeat.d.ts.map +1 -0
- package/lib/util/repeat.js +55 -0
- package/lib/util/repeat.js.map +1 -0
- package/lib/util/semaphore.js +15 -46
- package/lib/util/semaphore.js.map +1 -1
- package/lib/util/skip-if.js +6 -6
- package/lib/util/skip-if.js.map +1 -1
- package/lib/util/timeutil.js +16 -16
- package/lib/util/timeutil.js.map +1 -1
- package/lib/util/timeutil.spec.js +21 -24
- package/lib/util/timeutil.spec.js.map +1 -1
- package/lib/util/tracing.d.ts +51 -5
- package/lib/util/tracing.d.ts.map +1 -1
- package/lib/util/tracing.js +197 -62
- package/lib/util/tracing.js.map +1 -1
- package/lib/util/tracing.spec.d.ts +7 -0
- package/lib/util/tracing.spec.d.ts.map +1 -0
- package/lib/util/tracing.spec.js +121 -0
- package/lib/util/tracing.spec.js.map +1 -0
- package/lib/util/workspace-port-authentication.js +2 -2
- package/lib/util/workspace-port-authentication.js.map +1 -1
- package/lib/workspace-cluster.d.ts +76 -0
- package/lib/workspace-cluster.d.ts.map +1 -0
- package/lib/workspace-cluster.js +33 -0
- package/lib/workspace-cluster.js.map +1 -0
- package/lib/workspace-instance.d.ts +24 -2
- package/lib/workspace-instance.d.ts.map +1 -1
- package/lib/wsready.d.ts +1 -1
- package/lib/wsready.js +2 -2
- package/package.json +31 -17
- package/pkg-yarn.lock +17 -9
- package/provenance-bundle.jsonl +2 -0
- package/src/accounting-protocol.ts +4 -10
- package/src/admin-protocol.ts +46 -5
- package/src/analytics.ts +52 -0
- package/src/context-url.spec.ts +53 -0
- package/src/context-url.ts +107 -0
- package/src/email-protocol.ts +2 -3
- package/src/env.ts +10 -10
- package/src/gitpod-service.ts +181 -44
- package/src/headless-workspace-log.ts +7 -11
- package/src/ide-frontend-service.ts +1 -1
- package/src/ide-protocol.ts +119 -0
- package/src/index.ts +7 -1
- package/src/installation-admin-protocol.ts +42 -0
- package/src/messaging/browser/connection.ts +195 -14
- package/src/messaging/client-call-metrics.ts +97 -0
- package/src/messaging/error.ts +8 -2
- package/src/messaging/handler.ts +12 -0
- package/src/messaging/node/connection.ts +21 -68
- package/src/messaging/proxy-factory.ts +13 -5
- package/src/oss-allowlist.ts +15 -0
- package/src/permission.ts +24 -4
- package/src/plans.ts +632 -0
- package/src/protocol.ts +194 -85
- package/src/snapshot-url.spec.ts +25 -0
- package/src/snapshot-url.ts +27 -0
- package/src/team-subscription-protocol.ts +7 -5
- package/src/teams-projects-protocol.ts +147 -0
- package/src/util/analytics.ts +105 -0
- package/src/util/garbage-collected-cache.ts +9 -3
- package/src/util/generate-workspace-id.spec.ts +20 -3
- package/src/util/generate-workspace-id.ts +22 -2
- package/src/util/gitpod-cookie.ts +39 -0
- package/src/util/gitpod-host-url.spec.ts +25 -1
- package/src/util/gitpod-host-url.ts +22 -13
- package/src/util/grpc.ts +15 -0
- package/src/util/jaeger-client-types.ts +102 -0
- package/src/util/logging.ts +102 -38
- package/src/util/parse-workspace-id.spec.ts +21 -1
- package/src/util/parse-workspace-id.ts +32 -6
- package/src/util/repeat.ts +45 -0
- package/src/util/semaphore.ts +2 -2
- package/src/util/skip-if.ts +1 -1
- package/src/util/timeutil.ts +4 -4
- package/src/util/tracing.spec.ts +83 -0
- package/src/util/tracing.ts +183 -17
- package/src/workspace-cluster.ts +104 -0
- package/src/workspace-instance.ts +45 -13
- package/src/wsready.ts +2 -2
- package/lib/messaging/connection-error-handler.d.ts +0 -27
- package/lib/messaging/connection-error-handler.d.ts.map +0 -1
- package/lib/messaging/connection-error-handler.js +0 -46
- package/lib/messaging/connection-error-handler.js.map +0 -1
- package/lib/util/context-url.d.ts +0 -13
- package/lib/util/context-url.d.ts.map +0 -1
- package/lib/util/context-url.js +0 -26
- package/lib/util/context-url.js.map +0 -1
- package/lib/util/context-url.spec.d.ts +0 -10
- package/lib/util/context-url.spec.d.ts.map +0 -1
- package/lib/util/context-url.spec.js +0 -52
- package/lib/util/context-url.spec.js.map +0 -1
- package/lib/util/repeater.d.ts +0 -22
- package/lib/util/repeater.d.ts.map +0 -1
- package/lib/util/repeater.js +0 -118
- package/lib/util/repeater.js.map +0 -1
- package/lib/util/safe-promise.d.ts +0 -11
- package/lib/util/safe-promise.d.ts.map +0 -1
- package/lib/util/safe-promise.js +0 -34
- package/lib/util/safe-promise.js.map +0 -1
- package/lib/util/without.d.ts +0 -7
- package/lib/util/without.d.ts.map +0 -1
- package/lib/util/without.js.map +0 -1
- package/src/messaging/connection-error-handler.ts +0 -62
- package/src/util/context-url.spec.ts +0 -25
- package/src/util/context-url.ts +0 -23
- package/src/util/jaeger-client.d.ts +0 -105
- package/src/util/repeater.ts +0 -49
- package/src/util/safe-promise.ts +0 -26
|
@@ -10,6 +10,7 @@ export interface WorkspaceInstance {
|
|
|
10
10
|
creationTime: string;
|
|
11
11
|
deployedTime?: string;
|
|
12
12
|
startedTime?: string;
|
|
13
|
+
stoppingTime?: string;
|
|
13
14
|
stoppedTime?: string;
|
|
14
15
|
ideUrl: string;
|
|
15
16
|
region: string;
|
|
@@ -17,6 +18,10 @@ export interface WorkspaceInstance {
|
|
|
17
18
|
status: WorkspaceInstanceStatus;
|
|
18
19
|
configuration?: WorkspaceInstanceConfiguration;
|
|
19
20
|
readonly deleted?: boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Contains information about the image build, if there was any
|
|
23
|
+
*/
|
|
24
|
+
imageBuildInfo?: ImageBuildInfo;
|
|
20
25
|
}
|
|
21
26
|
export interface WorkspaceInstanceStatus {
|
|
22
27
|
phase: WorkspaceInstancePhase;
|
|
@@ -35,16 +40,16 @@ export interface WorkspaceInstanceConditions {
|
|
|
35
40
|
failed?: string;
|
|
36
41
|
timeout?: string;
|
|
37
42
|
pullingImages?: boolean;
|
|
38
|
-
serviceExists?: boolean;
|
|
39
43
|
deployed?: boolean;
|
|
40
44
|
neededImageBuild?: boolean;
|
|
41
45
|
firstUserActivity?: string;
|
|
46
|
+
headlessTaskFailed?: string;
|
|
47
|
+
stoppedByRequest?: boolean;
|
|
42
48
|
}
|
|
43
49
|
export declare type AdmissionLevel = 'owner_only' | 'everyone';
|
|
44
50
|
export declare type PortVisibility = 'public' | 'private';
|
|
45
51
|
export interface WorkspaceInstancePort {
|
|
46
52
|
port: number;
|
|
47
|
-
targetPort?: number;
|
|
48
53
|
visibility?: PortVisibility;
|
|
49
54
|
url?: string;
|
|
50
55
|
}
|
|
@@ -62,5 +67,22 @@ export interface WorkspaceInstanceConfiguration {
|
|
|
62
67
|
theiaVersion?: string;
|
|
63
68
|
featureFlags?: NamedWorkspaceFeatureFlag[];
|
|
64
69
|
ideImage: string;
|
|
70
|
+
desktopIdeImage?: string;
|
|
71
|
+
supervisorImage?: string;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Holds information about the image build (if there was one) for this WorkspaceInstance
|
|
75
|
+
*/
|
|
76
|
+
export interface ImageBuildInfo {
|
|
77
|
+
log?: ImageBuildLogInfo;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Holds information about how to access logs for this an image build
|
|
81
|
+
*/
|
|
82
|
+
export interface ImageBuildLogInfo {
|
|
83
|
+
url: string;
|
|
84
|
+
headers: {
|
|
85
|
+
[key: string]: string;
|
|
86
|
+
};
|
|
65
87
|
}
|
|
66
88
|
//# sourceMappingURL=workspace-instance.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-instance.d.ts","sourceRoot":"","sources":["../src/workspace-instance.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAGvD,MAAM,WAAW,iBAAiB;IAE9B,EAAE,EAAE,MAAM,CAAC;IAGX,WAAW,EAAE,MAAM,CAAC;IAGpB,YAAY,EAAE,MAAM,CAAC;IAGrB,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,WAAW,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"workspace-instance.d.ts","sourceRoot":"","sources":["../src/workspace-instance.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAGvD,MAAM,WAAW,iBAAiB;IAE9B,EAAE,EAAE,MAAM,CAAC;IAGX,WAAW,EAAE,MAAM,CAAC;IAGpB,YAAY,EAAE,MAAM,CAAC;IAGrB,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,WAAW,CAAC,EAAE,MAAM,CAAC;IAIrB,MAAM,EAAE,MAAM,CAAC;IAIf,MAAM,EAAE,MAAM,CAAC;IAIf,cAAc,EAAE,MAAM,CAAC;IAGvB,MAAM,EAAE,uBAAuB,CAAC;IAKhC,aAAa,CAAC,EAAE,8BAA8B,CAAC;IAG/C,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAE3B;;OAEG;IACF,cAAc,CAAC,EAAE,cAAc,CAAC;CACpC;AAGD,MAAM,WAAW,uBAAuB;IAEpC,KAAK,EAAE,sBAAsB,CAAC;IAG9B,UAAU,EAAE,2BAA2B,CAAC;IAGxC,OAAO,CAAC,EAAE,MAAM,CAAC;IAGjB,YAAY,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAGvC,IAAI,CAAC,EAAE,2BAA2B,CAAC;IAGnC,OAAO,CAAC,EAAE,MAAM,CAAC;IAGjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,OAAO,CAAC,EAAE,MAAM,CAAC;IAGjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAGD,oBAAY,sBAAsB,GAG9B,SAAS,GAIT,WAAW,GAKX,SAAS,GAKT,UAAU,GAIV,cAAc,GAId,SAAS,GAIT,aAAa,GAGb,UAAU,GAGV,SAAS,CAAC;AAEd,MAAM,WAAW,2BAA2B;IAExC,MAAM,CAAC,EAAE,MAAM,CAAA;IAGf,OAAO,CAAC,EAAE,MAAM,CAAA;IAGhB,aAAa,CAAC,EAAE,OAAO,CAAA;IAGvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAGnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAG3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAG3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAG5B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAGD,oBAAY,cAAc,GAAG,YAAY,GAAG,UAAU,CAAC;AAGvD,oBAAY,cAAc,GAAG,QAAQ,GAAG,SAAS,CAAC;AAGlD,MAAM,WAAW,qBAAqB;IAElC,IAAI,EAAE,MAAM,CAAC;IAGb,UAAU,CAAC,EAAE,cAAc,CAAC;IAG5B,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB;AAGD,MAAM,WAAW,2BAA2B;IAExC,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAG3B,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAG7B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAG1B,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAG5B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAG3B,oBAAoB,CAAC,EAAE,MAAM,CAAA;CAChC;AAGD,MAAM,WAAW,8BAA8B;IAG3C,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,YAAY,CAAC,EAAE,yBAAyB,EAAE,CAAC;IAG3C,QAAQ,EAAE,MAAM,CAAC;IAGjB,eAAe,CAAC,EAAE,MAAM,CAAA;IAGxB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B,GAAG,CAAC,EAAE,iBAAiB,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;CACtC"}
|
package/lib/wsready.d.ts
CHANGED
package/lib/wsready.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* Copyright (c)
|
|
3
|
+
* Copyright (c) 2021 Gitpod GmbH. All rights reserved.
|
|
4
4
|
* Licensed under the GNU Affero General Public License (AGPL).
|
|
5
5
|
* See License-AGPL.txt in the project root for license information.
|
|
6
6
|
*/
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
8
|
exports.WorkspaceInitSource = void 0;
|
|
9
|
-
// generated using github.com/32leaves/bel on
|
|
9
|
+
// generated using github.com/32leaves/bel on 2021-11-04 12:16:53.917570766 +0000 UTC m=+0.006002884
|
|
10
10
|
// DO NOT MODIFY
|
|
11
11
|
var WorkspaceInitSource;
|
|
12
12
|
(function (WorkspaceInitSource) {
|
package/package.json
CHANGED
|
@@ -1,40 +1,54 @@
|
|
|
1
1
|
{
|
|
2
2
|
"dependencies": {
|
|
3
|
+
"@types/react": "17.0.32",
|
|
3
4
|
"ajv": "^6.5.4",
|
|
4
|
-
"
|
|
5
|
-
"
|
|
5
|
+
"analytics-node": "^4.0.1",
|
|
6
|
+
"cookie": "^0.4.1",
|
|
7
|
+
"inversify": "^5.1.1",
|
|
8
|
+
"jaeger-client": "^3.18.1",
|
|
6
9
|
"js-yaml": "^3.10.0",
|
|
7
|
-
"opentracing": "^0.14.
|
|
8
|
-
"prom-client": "^
|
|
10
|
+
"opentracing": "^0.14.5",
|
|
11
|
+
"prom-client": "^13.2.0",
|
|
9
12
|
"random-number-csprng": "^1.0.2",
|
|
10
|
-
"
|
|
11
|
-
"
|
|
12
|
-
"
|
|
13
|
+
"react": "17.0.2",
|
|
14
|
+
"react-dom": "17.0.2",
|
|
15
|
+
"reconnecting-websocket": "^4.4.0",
|
|
16
|
+
"reflect-metadata": "^0.1.13",
|
|
17
|
+
"uuid": "^8.3.2",
|
|
18
|
+
"vscode-jsonrpc": "^5.0.1",
|
|
19
|
+
"vscode-languageserver-protocol": "3.16.0",
|
|
20
|
+
"vscode-languageserver-types": "3.16.0",
|
|
13
21
|
"vscode-uri": "^1.0.1",
|
|
14
22
|
"vscode-ws-jsonrpc": "^0.2.0",
|
|
15
|
-
"ws": "^
|
|
23
|
+
"ws": "^7.4.6"
|
|
16
24
|
},
|
|
17
25
|
"devDependencies": {
|
|
18
|
-
"@types/
|
|
26
|
+
"@types/analytics-node": "^3.1.5",
|
|
27
|
+
"@types/chai-subset": "^1.3.3",
|
|
28
|
+
"@types/cookie": "^0.4.1",
|
|
29
|
+
"@types/jaeger-client": "^3.18.3",
|
|
19
30
|
"@types/js-yaml": "^3.10.1",
|
|
31
|
+
"@types/mocha": "^5.2.7",
|
|
32
|
+
"@types/node": "^16.11.6",
|
|
20
33
|
"@types/random-number-csprng": "^1.0.0",
|
|
21
|
-
"@types/uuid": "^3.
|
|
34
|
+
"@types/uuid": "^8.3.1",
|
|
22
35
|
"@types/ws": "^5.1.2",
|
|
23
|
-
"chai": "^4.
|
|
36
|
+
"chai": "^4.3.4",
|
|
24
37
|
"chai-subset": "^1.6.0",
|
|
25
38
|
"mocha": "^5.0.0",
|
|
26
39
|
"mocha-typescript": "^1.1.11",
|
|
27
40
|
"rimraf": "^2.6.2",
|
|
28
41
|
"ts-node": "^9.0.0",
|
|
29
|
-
"typescript": "~4.
|
|
30
|
-
"typescript-json-schema": "^0.
|
|
42
|
+
"typescript": "~4.4.2",
|
|
43
|
+
"typescript-json-schema": "^0.50.1",
|
|
31
44
|
"typescript-parser": "^2.6.1"
|
|
32
45
|
},
|
|
33
46
|
"files": [
|
|
34
47
|
"lib",
|
|
35
48
|
"data/*.json",
|
|
36
49
|
"src",
|
|
37
|
-
"pkg-yarn.lock"
|
|
50
|
+
"pkg-yarn.lock",
|
|
51
|
+
"provenance-bundle.jsonl"
|
|
38
52
|
],
|
|
39
53
|
"license": "UNLICENSED",
|
|
40
54
|
"main": "./lib/index.js",
|
|
@@ -43,9 +57,9 @@
|
|
|
43
57
|
"build": "tsc",
|
|
44
58
|
"clean": "rimraf lib",
|
|
45
59
|
"prepare": "yarn run clean && yarn run build",
|
|
46
|
-
"test": "mocha --opts mocha.opts '
|
|
60
|
+
"test": "mocha --opts mocha.opts './**/*.spec.ts' --exclude './node_modules/**'",
|
|
47
61
|
"watch": "leeway exec --package .:lib --transitive-dependencies --filter-type yarn --components --parallel -- tsc -w --preserveWatchOutput"
|
|
48
62
|
},
|
|
49
63
|
"types": "./lib/index.d.ts",
|
|
50
|
-
"version": "0.1.5-
|
|
51
|
-
}
|
|
64
|
+
"version": "0.1.5-mixpanel-migration-prep.0"
|
|
65
|
+
}
|
package/pkg-yarn.lock
CHANGED
|
@@ -4,19 +4,27 @@
|
|
|
4
4
|
|
|
5
5
|
"@gitpod/gitpod-protocol@0.1.5":
|
|
6
6
|
version "0.1.5"
|
|
7
|
-
resolved "file:///tmp/cache/
|
|
7
|
+
resolved "file:///tmp/cache/10dc30151d9f590270aa197c91d475f289df235c.tar.gz"
|
|
8
8
|
dependencies:
|
|
9
|
+
"@types/react" "17.0.32"
|
|
9
10
|
ajv "^6.5.4"
|
|
10
|
-
|
|
11
|
-
|
|
11
|
+
analytics-node "^4.0.1"
|
|
12
|
+
cookie "^0.4.1"
|
|
13
|
+
inversify "^5.1.1"
|
|
14
|
+
jaeger-client "^3.18.1"
|
|
12
15
|
js-yaml "^3.10.0"
|
|
13
|
-
opentracing "^0.14.
|
|
14
|
-
prom-client "^
|
|
16
|
+
opentracing "^0.14.5"
|
|
17
|
+
prom-client "^13.2.0"
|
|
15
18
|
random-number-csprng "^1.0.2"
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
+
react "17.0.2"
|
|
20
|
+
react-dom "17.0.2"
|
|
21
|
+
reconnecting-websocket "^4.4.0"
|
|
22
|
+
reflect-metadata "^0.1.13"
|
|
23
|
+
uuid "^8.3.2"
|
|
24
|
+
vscode-jsonrpc "^5.0.1"
|
|
25
|
+
vscode-languageserver-protocol "3.16.0"
|
|
26
|
+
vscode-languageserver-types "3.16.0"
|
|
19
27
|
vscode-uri "^1.0.1"
|
|
20
28
|
vscode-ws-jsonrpc "^0.2.0"
|
|
21
|
-
ws "^
|
|
29
|
+
ws "^7.4.6"
|
|
22
30
|
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
{"payloadType":"application/vnd.in-toto+json","payload":"ewogICJfdHlwZSI6ICJodHRwczovL2luLXRvdG8uaW8vU3RhdGVtZW50L3YwLjEiLAogICJwcmVkaWNhdGVUeXBlIjogImh0dHBzOi8vc2xzYS5kZXYvcHJvdmVuYW5jZS92MC4xIiwKICAic3ViamVjdCI6IFsKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9oZWFkbGVzcy13b3Jrc3BhY2UtbG9nLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImJkZjJmMWZiOWEwNjg2NjlmMzJmMzU4ODAwNzM4MGI4NWFjNTc5YWI0YTJhYzAwNzY0YjZmMDg4OWE5YjZmN2UiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9za2lwLWlmLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiODA0NTBlYzRiMGUxMWYxMGE2ODc3OGQxN2RlMTkzODQ5YzAxZmY0OTNkYThhNTNiNDA1MDM1NTY2MGJiMTY4OCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2phZWdlci1jbGllbnQtdHlwZXMuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiZWZhMjMyMGE0NWQwNmQwZWI1MDM4ZTM4ZGZiY2I4OWZiNDMwZTFlMDZjZjQxZTdkMzI3ZDY1NjNmMmYyYzZjOCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9pZGUtcHJvdG9jb2wuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiOTc3N2ZiZWY4Nzc0MjA2ZTc1MzM2ZjFmOGY2ZmY5ZmRmMjkxYjUzMTEwNTVlYjUyNmFhZmFjMmI1Y2VlMjNhZCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2Rpc3Bvc2FibGUuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJkODA4ZmQyNzgxMGRjYTZmOWIwNjQ1NmJmMTMwZWUwZWIxZTI3MjYyZjZjYTBiNjM0ZjJkNTJhNTY3NmViNzZiIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL21lc3NhZ2luZy9wcm94eS1mYWN0b3J5LmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjU1OGNhNDAxMTIwMzg5MGRhZDExYTkwNDZmYWFjMzQxYjU0MmMzNmQ0ZjNiNTg2NmY0NWU0NDY2NGY2ODBkODUiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvYW5hbHl0aWNzLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjlmOGUyYzAyYjMzMmJjYWJmNGIwOWJlZjVhZWNiYzlkMTEzMWY3MTNkODJiNTc2NTVhN2Y0Nzg4NDI3OTczMGUiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvcGxhbnMuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMDZkNjRlZWQ3MGQzNzc4OThjOGJmOGY0MWZkMzhhZjgzYzk4N2M4MDQ1OTY4MjAyODU2YTIwYzQ1ZTEyYzViMCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9wcm90b2NvbC5kLnRzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjM5OTJhNTM0OTFlYzFhMzBlYmQyZGM5MTNlMTYyYTc4ZTQyODg0ZWM3Yjk3M2M1MDMxMTFmZDU5OGM1YTExNzYiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvaW5kZXguanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjg4Y2I1NTlmNzc2MGE5OTY3MTlhOTIyYjAyYTNkYjVjMTRkOWQ3YjQ5ZWFlM2Q3OGZjOTYzYmY2Yjk4NGE1YjEiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvZW5jcnlwdGlvbi9rZXktcHJvdmlkZXIuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiM2U0MjRiMTYzMDM2Y2E1MmU4ZmU2NzgzZTNlMmJjNzExYzE5MWNlMzBlNjYzMTVkMWM1YzU2ZDdhN2QwNTVlYyIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3BhcnNlLXdvcmtzcGFjZS1pZC5zcGVjLmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJlYmNiNWEyMTVjN2NlMTczOTA0OWJhNGU3MTRmNTdhZjk3ODM5ZGQ5NTlkNDI3ZjU3Y2I0Zjk3MDBjOThjYmRiIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2F1dGguZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI1YjM5OGRlNDljYjRkZDI1ZWQyMzczNjgzMzFkN2M0MjVkYjUwY2I4ZTZhZGJkODI4ZWUzZjFmMGMwMTNlYzQ5IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL21lc3NhZ2luZy9icm93c2VyL2Nvbm5lY3Rpb24uanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNTRmZjdjNDMwNjMxMzQ2NTk3MTcyYWIxYjFlMWYyMGNhY2YwYjNkNzViYmNkMmZkNWE3ODA3MzZjYjFkZjhhYSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2Rpc3Bvc2FibGUuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiZDJlOTQwNGMyMGJhYjRhODFlZTgzNGUwOGE4ZTQ4NzVmYjMxYzBkNjFhZjE5OTUxZDU4NDhhY2E4ZWM4OTVjZSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9lbmNyeXB0aW9uL2NvbnRhaW5lci1tb2R1bGUuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIzOGE2OTdiNGRiZGI1ZjFhYTg1ODk2YzE1N2QyNGNlMGQ1ZDExNWM3NGY0YWQ4YWY3MTI4ZDQzYjBkNTZhNTc4IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvZXZlbnQuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYzQ1MjNkNTlhMzVhZDU5Y2ExZTY5ZGVmMTlhOGYxYzAwYjA3YzJiZDQxYjE4ZWQ4NWMxMWYyYTVkNTgzYzQ4NCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9hY2NvdW50aW5nLXByb3RvY29sLmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJjN2EyNzExMzQ3MzAwZWFlMzVkYmZmODkyMmQ2OTRmMDkxN2U3NmRkOTMxYzE5NzYwNTU2MTYwNmZmODIxZTExIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvc2tpcC1pZi5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMGNiZjYyMDIyYjY1NjE2YzVhMWVjMGQ1OWJlYzgxMTY4NWZlYWJlMjFiMDM4NGM4YjllYWY1ZTc0MWFiMjNmZSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2dlbmVyYXRlLXdvcmtzcGFjZS1pZC5zcGVjLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjAwNjdkYzgzMGIyYTVkZTBkNTJlNzRlMzIzODEyN2U2NzlhOTM2ZTBhNzcwYWFjYmNlNjYxNjJiMjIwMDMxNGIiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvZW5jcnlwdGlvbi9lbmNyeXB0aW9uLXNlcnZpY2UuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNzI5MDU2MjFhNGNlNTZkZmExZDVkZTFmNjg1NDEwOWNjNGI5MDVlMWE0Y2RlMmMwNTMzYTYyNWI5ZjY0NDcxMiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9jb250ZXh0LXVybC5zcGVjLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjVkZTJlZGIzNTZjNjE5YjMwOTE4ZjZkMThmNWNkOTFiOWY0ZTcwM2ZkMWZlZDViNTVmZjA5M2YzZDUzMWQxODgiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvbWVzc2FnaW5nL2hhbmRsZXIuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNDkyMWY4OWI3NGM2MmZjYmUxYzdkZjAwOGE5MjhiZTNmYmU5YmZiMzg5YzA5ZTNkNTQ2ODgyMjgxODUxNGQ2MiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9wbGFucy5kLnRzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImRhYjJiYmU1YjUyMThkMjYwYjgxZGQ5YjU0OTcwZmIwYzk1OWRiMjA2MzFmOGJlODlmNTkwMjFhODQwMmE1MzYiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdGVhbXMtcHJvamVjdHMtcHJvdG9jb2wuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMWE5Mzg2MWZlZDFmZDBlZTNiZWQ5NDcwMmJmMGU0YjY4NTgwMDVjYTU2NjRjMzAwYTY3ZjJlZjUyNmIwMjBjYyIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2xvZ2dpbmcuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImU1Y2NjYjg4MjdkN2E5MGQ1YmNjYmQ5MDU2MDg2OTJhYTA1M2YyYzA0Mzg2ZGZjZTVkZWZkMGEzYmIxNjM3ZDciCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvaW5kZXguZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNmE5YWI5ZDc2ZmY0YTg4OTc4MjY3MWM3ZjJjZDlkMGU4YzAyMTk1ZTM3NmE2MTdiNGU2OTAzNTQxNzM3YTQyOCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3BhcnNlLXdvcmtzcGFjZS1pZC5kLnRzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjEyNjVmNjgzMzNlYjQyODcyZjJhMjQ2NGUwMTY0ZGU1YmY4ZmZjNDQ2MWRhM2VjMWExOWRhNDU0OWU0NzIyNmEiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9naXRwb2QtaG9zdC11cmwuc3BlYy5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI3YzJmMjU5NjdmODVhZDc2M2IxMGRlOWUxNjQ2N2Y2N2FjNzM2OWYwOTE4NDYzYjg4NjUyNzUzNmNjNTZkZTk4IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3RlYW0tc3Vic2NyaXB0aW9uLXByb3RvY29sLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImEwZDlmYzcwZDA0NGNlMDAxYmVkZjk1NTI0NTlmMjVhY2JmZWI4Njk2NGRjY2IxYzc1M2E1NjRmYWI0MzMyMmQiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9wYXJzZS13b3Jrc3BhY2UtaWQuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImU1MjM1NzZjOTQ1OWNmODVkNjZhN2VhNmM2MjgzNzZkNzYwYmIyODVhYTE2NzYxNGY4OGVmNGExYThhOGMzYjIiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvZW5jcnlwdGlvbi9jb250YWluZXItbW9kdWxlLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjE0NjNlYzJmMDkxOWRlMDIxMmY3MWYwNGYzNGMxYTdmNzI3NzgxYTQzNTVlYTg0YzkyODQzNTQ2ODlhMTUyNWEiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC90cmFjaW5nLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjU5ZTM0NzM2MmNhNzQ5NzAwYjE2NDJhNzY1ZTJkNjYwMWJmYmU2MGVmYWVkNmExZjkxMTliNjgzZTlkNjc1ZDkiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvY29udGV4dC11cmwuc3BlYy5kLnRzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImUxYzRmNzJkYWM2N2M0Y2VmODUyNDI3ODFjOTE4ZDNkZjQzMjBjZWEyMDZhZWQ3MThmMWU2YzFkNGYwZTYwMjEiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvaW5zdGFsbGF0aW9uLWFkbWluLXByb3RvY29sLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMzBiZWE1YzQ1ZWNiMTBhZmZjZDhiMjEwNzdhZDZmYzVmNGU1YjUyYjYwZThjNDBlYTBkMzI1ZjM2YTczNDcxZiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3F1ZXVlLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImQ4NGNhZjc5ZWZjNzk5MjRkNGRiNWZkZmQ2MGZjOTljYTFmYzcwZjIzZWZiMTg2NjUzMWIxYmJkNGFjMTc5ZjEiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvb3NzLWFsbG93bGlzdC5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI3MjJmMzNhNzQ3NzU0MDE4NWE2MWVhZTY4N2YyOWYxZDNjYWFjZmE0NDJjOGE0ZGQxM2I2ZWY3NDVlMGZmOGFhIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2dpdHBvZC1maWxlLXBhcnNlci5zcGVjLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYzY4YWUxMjAwNTk4MTllMGVjNmZmM2E0ODdmODQ4MzhhOTZiZmM3MWU3OTBjZWRmZGM3ZTJlOTIzN2Q5NTZjZiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9tZXNzYWdpbmcvYnJvd3Nlci9jb25uZWN0aW9uLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImJkNTUxZGViODQyNGM0NWU5M2E5MWQ4YWVhZmIyNGY0NDY1ODcyM2NmOTYyZjgxNmI3ODgxYjhlZWIxNTZkNWUiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9ldmVudC5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiN2QzNzk0YmI2NDkxYTkxYmNkMTQwMDc0NWViN2Y3NDA4ODNhYjE0NTRhOWU5ZTM4OTYxMjUxMGMzMDgxYTVlZSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL21ha2UtbGluay5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIxOTk5OWY0ZTZmYWYwYWY3YzM0ZmU0OWFkNDQ0NDJlOTA5ZjYxNWMyZGExNWZhOTUwZGYxZDUzZmEzYzZiMDI3IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvZ2VuZXJhdGUtd29ya3NwYWNlLWlkLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjAyNGU0MjQ4Y2E0MGM0YmVhY2EyZDliMTVlM2M3NzY5MmY5ZDE4ZGEyOWU3MmQ2YzQzOTcwZmUzMWIxMDkzYjUiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9ncnBjLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjFlNmVmMmMxMTAyMDQ3ZmZmYmFkMmNhMDM1MjRlZThmNDBlZDU1OWZkNzc0MGYxMmEwODZlZTRjYmM1NTUxNTciCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvd29ya3NwYWNlLWluc3RhbmNlLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjY3NzU4ODQ4Njk3MWNkYzdmMzQyMTRkYzdiOGU4OGE2NWY4YTFmOWZiMzg1ZDM0ZjhkOWE2ZjMwODEwZGRkZmQiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvaW5zdGFsbGF0aW9uLWFkbWluLXByb3RvY29sLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjFkMTM0ZGE5NTA3MzNkMWI0MGI5NDhhOWY2YmE0YmFkOTU0OTc3YjJhNGM2MTM0NDZjNjhhZmYwMTlhMzJiZTkiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvd29ya3NwYWNlLWluc3RhbmNlLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiODc5ODFkZTYwOTU1MjhjY2E3NTBiOWYwNDI5Y2ZjMGQzNmE4NGU0YjQyMTdjMzc4YWJkOTQ1YjE1NDRiODYxNyIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9tZXNzYWdpbmcvY2xpZW50LWNhbGwtbWV0cmljcy5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJhMjEwMjBhY2IxOTZlYmFjOGM0OTU3MDU2NGM0NGFmN2QzNjE2Y2M3MzFlYmQyYTZiMWQ1M2ViOGNiOWRmYTIxIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvdHJhY2luZy5zcGVjLmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJmYjYyMDQyNGQ3MGUzODgwYjMyNDlmYzdiNzhmYWY5OTk0Y2RiNWQ1NDY5ODk0MDQ3YTlmZjEyYWU5YzA0NDFlIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3NuYXBzaG90LXVybC5zcGVjLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNDA1MzRkNTU4OWU1ZmI3ODU3ZTg0NTRlMjYzNjc5NjRjZjgwMTM4NmQxZmI4ZmMwNTE1Y2UyZTQxYjEwOWU4ZSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9pbmRleC5kLnRzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImJiMTJiMTk3ZjhhNjNmOTY4M2M0ZWY0MDQ5ODZkOWIzMWFiZTYwODUwZTJlN2VjNTBjOTRiNGY2OWNmNjZjYzAiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvbWVzc2FnaW5nL2Jyb3dzZXIvd2luZG93LWNvbm5lY3Rpb24uanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYmVkYTVkMWMyYTcwN2FlZjRiYTVjM2UxYTQyMzNmN2Q5ZTRhNTBlMzFhYWJmM2RiYjk5Yzg4NDYyZTk4NmZlOSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9jb250ZXh0LXVybC5zcGVjLmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI1MTUwMWQ1N2U3YTEzNDg5MzFjOTNhNDNhZjI0NTkxYTZjZTM2YzRjYzdhMzE3YzBhYzUyN2RmYzEwOTFkYTYzIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvcGFyc2Utd29ya3NwYWNlLWlkLnNwZWMuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiY2RhOTVhYjBkMmJmMjRkNzQ0NmZhNTM4YjExZDI5ZDQ5ZDA5NTkwOWMxOTgxZWYyNzhlYjZjNzNhNTE2OGNhNyIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9naXRwb2QtZmlsZS1wYXJzZXIuc3BlYy5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI2NDJjMmNiZDFjYzNiMGM1ZmQwMGM4MTg4NzMyMWViNzkzZTRjMTZhNjMwZTY4YzIyZGNkMGMxZjZkNjNiZGE3IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2VuY3J5cHRpb24vY29udGFpbmVyLW1vZHVsZS5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJjOTIzNDIwN2NjMzgzNjVlN2FhNThmOWZmNWQ3N2RlMDg2ODM3ZjhkMGRmYzM0OWRhMzYwMzg2NmIxZDczZTM5IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3Blcm1pc3Npb24uanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjM1MmQ2NWY4YjJjMDJhZTMxMDQ1ZmE5YjU0MGE5MWZmZTg0ODMwYTUyZjQ1ZDBhYWUwZjg1NzdkMGMyZTViYTQiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvZ2l0cG9kLXNlcnZpY2UuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNDg0N2ZkM2NiZGE2NzMwZjc4OGNiN2JmMDY0OWYwY2VhOTYwOWNmMTczZGFkNGRlYzQwZTMyNTA3YmM3NTRkYSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9saWNlbnNlLXByb3RvY29sLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImY0ZWFmMDllMjVjZGI0NjAzOWNmZDA2ZjZjYTExZjkzYWYwN2NiZmZiNmMzZjZmZjlhOTU0ODk2NWFjZTA0NjIiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9nZW5lcmF0ZS13b3Jrc3BhY2UtaWQuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiN2Y1ZmM0MmZjOWJiNWZhZDE4MjhjNDJlN2E3YTdkMWRhYzM0MWNhMTlmNzEwMzgzZjZjMTJlNjQ3NjdjNTliZCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3RyYWNpbmcuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI4OWYzNDE1OWQwMzQ4NTc3NTE1MzE4NTFhYTYwNDk0ODhjYzZlYTZiYmRhMzM0NGJkNTI0YzQ0NjUwYzg5ZGFhIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2NvbnRleHQtdXJsLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImZhYjI2ZWJhNGYxMTA0M2RlMDgyYjNiYjAyZTE0NmNkYjZhOWY1NzQwMGI0OTBhNmQ2NWVjMGZlYzM1OTUyMDQiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvaWRlLWZyb250ZW5kLXNlcnZpY2UuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImFhYWQzZjE4ZmIwNDlmOWE1MTNjMGM4ODJkYjRhM2IxYTk0ODNiZTNjZTZmNDIxM2M4MGIwMTFiNTFmMjZkMzUiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvcGF5bWVudC1wcm90b2NvbC5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJkYzc3NDFkZDM5ODQ5OTcyYzk1ZTlkMWE3OWY1NWVjODk2OTZkZWM3YTQ3NjllMWNkNjdhNDUxNDVjNjkxMGFlIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvZ2FyYmFnZS1jb2xsZWN0ZWQtY2FjaGUuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI5OTU5MGFjMzVhZDQxMzliMzRiOTRmMmU1NGFmNzM4MGMzYTgzYjQxMDlhMTM5MWRjOTliMDhmZmJjZDU1MTA2IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3dzcmVhZHkuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMjMwNjUzNWM1MjdjZTY3OTJjNDYwMzVjZjlhN2QyOGFmZjFkZmM1ODU4ZDgwYzg0YWFlNzM0ZDM1YzljMjcxMiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3F1ZXVlLmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIyMTMwMzllNWZlYTE5MDI5MTA2MDVhMzZjYjJmNWQzYWYwNGUwZTdlNTAzMzY5MmUzZDFkOWVmYTU3MzVlY2YzIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3NuYXBzaG90LXVybC5zcGVjLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImMyZjU2ZWUwYzc1MzljMzlmNjk3MWVlOWZhODFjMDQ1MGRmZjQ0YWEzZjAxZDY2NmM4YWQ2MjI5YmRmMzM0NjUiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9za2lwLWlmLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjBiN2FmOTMwM2UyNGMzMjVmYzk5NmY4MzVlZWZkNzM2MTk4ODdkOWFmOWVmN2MxNjJjNGZiOTc5MWUwM2YzMTYiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9nYXJiYWdlLWNvbGxlY3RlZC1jYWNoZS5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYjQzNDRlZWE0NzRmZTk3OTk4N2M5YmZlZjk1MWZhMzg4ZGM1MmRkZTVlMTVlZmNjZmEyMjA2YzE3NzNmMTBkNiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi90ZWFtcy1wcm9qZWN0cy1wcm90b2NvbC5kLnRzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImViMGZjOGRmOTc0ODgwMGZkYjYyNDQxMTg5MjIyMzA4MTBiNmVmZDZhZDg2YTYzNDE3OGVmMzBjZjA2OTkwNGYiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9naXRwb2QtaG9zdC11cmwuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImZjYWFmMGY0ZmUwOTk3OTgxY2NmNDMwMzljZjBlNWE3YTM5NTUzMWM0MDkxNjc5ZGJiZGY1ZmI1M2FlODRlYTMiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdHlwaW5ncy9nbG9iYWxzLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMTg2OTcxYzQ4YTZkMTQ2M2Q4Yzg1YWIxZDg3NmZkNDM3ZDA3MjE4ODc2ODMxNjY3NTk0NWU5OTMzNjQ3ZWZmMCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9hbmFseXRpY3MuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMDIwMmViMGEzMmMwMmU4OGIzY2I5ZTNjMjc2MDU2NDg0OTlkY2I4MGQxNGMwMTVkNDBkNDAyNDcxMDE3ZTRhMCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2dpdHBvZC1ob3N0LXVybC5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJhN2ZiMjRlZDhmYjdmMjk0ZWNmZDk3MmZkM2JjYjdhOTdmYTc5ODNhODc5NjRiZWVkMzBiMzMxMDQ3M2NiMzM4IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2VuY3J5cHRpb24va2V5LXByb3ZpZGVyLmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI4NzdlN2I2Y2IzYmVlYTAxYWU0ZDM3NWFkNDkzYWY2N2E0MWIzMzM4NzI3MGY5NTQxZDNjODUzZjIyZjY2N2UwIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvZGVmZXJyZWQuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiOTQzZGUxNTUyMDExMTU5MTcyZGJkNTFkNGI5YmQzNjBjZDUzZWVhNjBjZDFhZDA1MTJlMDQwZDFlNGQ1MmY5YiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3BhcnNlLXdvcmtzcGFjZS1pZC5zcGVjLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMzg2ZjQwYjg3ZjhkYmFiMDU4ZjU1YWZhMjUyNWZjZTI3OTU3ZTI1Yzg0NDJiMTA3OTRmZTZkNTYwZWFhOTVhOCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9naXRwb2Qtc2VydmljZS5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiZjU5NmQxZTQ0MDA4YThmZjJjMTM5YjI1N2Q0OTFkZTJkMGI4MGNiYjA3YTdmYTdjMTMyMTBjNDFhMWEwMThhMyIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9hZG1pbi1wcm90b2NvbC5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIwZTI4NjkwYTc2MzA2YjFlOWIyMTBmYmRlOTVhZTZlZWZmNzY0ZjkwM2E4ZWE5ODlhYWY3YzNhOTc0NGI5ZjNhIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2dpdHBvZC1maWxlLXBhcnNlci5zcGVjLmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI3ZmZlZTc3NTY2ZGYzYTc5YzhjMDg4YWZhODRjODVlNGQ4NDA4NDAzODgxZTMyMzJmMjRhMTE2OGIwMzY0ZWE4IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvZXZlbnQuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYTdhMjczMWQzNWJjNjNiYzlkMzNlODdmY2NhMzU3ZjY3M2RjYzMwYTAwMWNjNDUxZGQ4YTBkMDdhNmU5MTk5YyIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9pbnN0YWxsYXRpb24tYWRtaW4tcHJvdG9jb2wuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImQ2NWEyYmRjMjBiNjUzYmM1NDM0N2NhMzNkMzU4ZDIyMTIwMDg5ZTdjZTVjNWMxNmNhODEzMjIzOTFkYTA3MWEiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvd29ya3NwYWNlLWluc3RhbmNlLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjUwYTY0M2UwYjIzNjdhNDljYTU1NDEwYjhkNDMxOWFlMjFlN2ZkZmZmZDQ4OTk0OWJmYTEyOWU2ODYwZTY2ZWUiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvZ2l0cG9kLWZpbGUtcGFyc2VyLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjlhZGMwYmI3MTYwMWU4MWU0YmYzZGRjYWI3NGMzYTA4YzQ3ZDQ0ZTIyOTI1YzljOTFlMGVhYjhlOTdiMWNhYmMiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvZW5jcnlwdGlvbi9rZXktcHJvdmlkZXIuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiZDM4YWQ4YTlmNjRlNWI4NzMxMTg5YjYwNTA0YmJiYTM1M2IwNzJjY2ZjM2VkZTg4YWNkYzQ0YThlOWQ2NmVlZiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3RyYWNpbmcuc3BlYy5kLnRzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjVkNDBhNTRiYWQyMzhhNjI3MzhhYTA0ZmU0ODY3Y2MwYzgxM2Q5YzFhYWIyMGExZTI4YWE5OGViNmIwNTExMGYiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvZW1haWwtcHJvdG9jb2wuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjJkYjEzZTUxNWUyY2IxOGFmZjhkNTZiMTc4MWMzYzM5NGI2ZjJlNmIxOTkyYWEwNjRmZWFkNjgyNDY2ZGI5YmEiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9xdWV1ZS5zcGVjLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjMyNTVmYTBkNzc4OGY0MzVjZDA4NTI5NTI5ZWI5OWUzZjVhM2QxZmE1MjUyOGFmNTY0N2MwZWNkODFjZGQ5NGIiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9yZXBlYXQuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJhN2NhNjAzNGI5NTdmZTI4NWY3NmYxY2RjNDUyMDU5NDhkYmY5YTczMDExOGMzMjkyNjBmYWQzODQ5NTdmZTg2IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3NuYXBzaG90LXVybC5zcGVjLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjhiYzg0ZjUxNTEzYjQ1MTE3NTllMjc4NDU2MzQwMWNjYzk3NjI5NWU5NzU0YzhjZjUwNGRjODUwODcyMDYxYjIiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi95YXJuLmxvY2siLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiZTY3ZTMyNTRhYzAwNzAzOWFkYTQwNWZlZmQwMzNjMmNkMWRlYTA1ODUxYmQyNzI0YzhjZmQ4OGZmODkxZTM5YiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2phZWdlci1jbGllbnQtdHlwZXMuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI5MDFmYmY4MjdkMGIwZTgzNmI3NmVmYzc5M2FlNDU4MzlmZGIxZThhNjUyNmEzZjI3MDE2ZDU3NWU0ZjM4N2U1IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2dpdHBvZC1maWxlLXBhcnNlci5kLnRzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjkzMTE5ODI0MDQ3ZmEzNjliMmI4Y2U2MGFiYjMxZjVkZjYxZDc4MDgxNDU4ODU1YmY0ODM4MzZhYjRkZmEwZDciCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvZW5jcnlwdGlvbi9lbmNyeXB0aW9uLWVuZ2luZS5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIyNDFjZmFhMjA2M2VlMGM5ZmZjYmRhYjcwNTMyY2Y3ZTNjMmQ2ZjRhMWVjMmI2NmFkMjBmMGQ5NWVlMjRhMTk0IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL21lc3NhZ2luZy9icm93c2VyL3dpbmRvdy1jb25uZWN0aW9uLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiZGZhMzViOTlhMmI5NmVlN2MyYjQ4Y2YwOTAzOTUzZTYwMjkxM2UxODk5MmVhYjE2Y2ExYjg3MmM0MDIxNzY1YiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9tZXNzYWdpbmcvYnJvd3Nlci93aW5kb3ctY29ubmVjdGlvbi5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIyMDk1NzcyYjVjYzhlZWZlNWM0M2E5YWQ2YTU0OTZjMWVjMmExMTc1YzJiZjhkNjM4NTM2ZDkzYTRkYjI1NjA4IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvZGF0ZS10aW1lLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNmE0MmFlYjU3M2ExNmM0YWRmZTAzM2JjYTkxZTZhMmQyMmU2NTM0Y2JhMGQ4ZTFjMWM0NzRmYzg2NmI3YWNkOCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3RpbWV1dGlsLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjY0OTZiMDg0OGJhYmQ2YWI2OWUwYzA2NGQ0MWZmMmUwYjUzMDBkZWMyNzU1YTYwNjFlNDg3OGRlMGI4YWM1ZWUiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9hc3luYy1pdGVyYXRvci5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIyNjkzY2ExMjIyOGM4NjUyYWI1ZWMwYmEyZWM1NzM3MTJhNTk1NjdmNTY5MDQ5ZmVmZmNiOTRiNWMyZmJiNTZiIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvc2VtYXBob3JlLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjNiMWQ5YTU2YmU5YWMzZTM2NmI3Y2UyZWVjZWQ0M2M5MDM2ZDNkYzhiOWVhMjEyMWQ3NjgyYjEzMWYyNTNiYjUiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9ldmVudC5kLnRzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjk5MTU3MjRjODg0NDRmNzg0MDlmYjhkOGJmM2Y5ODhmNTZhY2I3YzRiZTI3NWZmOGMzMTJiMWQyNzg2YTBlMjMiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvbWVzc2FnaW5nL25vZGUvY29ubmVjdGlvbi5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI4YzYxZDdkZGVmZTg1MzRkNGZmZjBiNzc4MmU2YTRhM2U0Njc2N2Q3MWY2OGEzMDU1ODQyOGZjOWZkOWFlOTU4IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2hlYWRsZXNzLXdvcmtzcGFjZS1sb2cuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJmOGRjNTZiNTBlMWRhNjM4ZGE4ZmRmMWY3N2EzMThiMTUxZDM4YjczZDk2NjYwYzU4OWIwMzc3YjYzNDJmMmFiIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2lkZS1wcm90b2NvbC5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNjVkYmE3YmUxOGQwMWU4ZjRlN2Y3YzZiYjAxNTcyNDdiMWVkZDY4YWQ2N2MwNzIyYTU4YzBlNWRlYzkxN2M1ZiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2RlZmVycmVkLmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIwMTYyMjFjNmFlOThiNmIyZDhkM2IxNDg0ZTJjNTQyNzk1ZWI3OWM1N2QzM2FmMDZlZDU5YzFjOWNmN2JjZDA5IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvd29ya3NwYWNlLXBvcnQtYXV0aGVudGljYXRpb24uanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNmY4MzZhZGYxMjU2MzI0ODk5ZjQxMGM3ZDVmOGU0MzAyZGQwZGY3YTFmNTAwOGExZDY3ZmI5YmU0NTc2OThjNSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3RpbWV1dGlsLmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI1ZTg1MjRhYWM0NDBhYjZmZTMzOTYxMjZhN2M3NzZlZGMzOTc1YTUzM2I4MmVjYjgxOGI5ODI2YzIyOTA4YTZlIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvZ2VuZXJhdGUtd29ya3NwYWNlLWlkLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiZGRiNWZiZTg0MzU0NWNjMjI1YTI1MmU0NGI0MGUyYzY1ZWQ3YWRhOWQwZjZmZTRiMGE4ZGQwYWI4Y2YyYWJhMiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2dlbmVyYXRlLXdvcmtzcGFjZS1pZC5zcGVjLmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJiMmFiNmY3MTE4NzJjZjM1YmMwNGE2NzI5MWY3ZGMzMjBiZjNjYTQ0ZDliNGVmNTIwZDlhZTAxMTY3ZGY2MTNiIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvZ2l0cG9kLWhvc3QtdXJsLnNwZWMuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIyNGZhN2EwNjg2OWM3ODlkMjc0NmQ5OWViY2RjZGEyODgxYjU3MGUyOTk1Mjk3N2U2YjdlNGJhN2M1NGI1NWU1IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2FjY291bnRpbmctcHJvdG9jb2wuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIxNTMyYjNmZGU1YThjOTc0MDVkMDc5Zjg2YWEzYmFlMWVhZWZkYmM0YzdmYjBkY2FlY2MyZTU1Y2E5N2UwMzkxIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2VuY3J5cHRpb24vZW5jcnlwdGlvbi1lbmdpbmUuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMWI1ZTdkYzUwOWZkMjNiZDM0MTIzMjE4ODExZTAwNWE4MzE4M2JkMzQ4NDhlYjFjOTVmZjM2ZWVjODY0YWI1ZCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2RlZmVycmVkLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNjBhMmQ2MjY4MDE1OTJjYmJiM2QzMTMxMDM3MjYxYjZiNTFiNWNmYzJjMjk1NGUyM2M1MmVkMWQzMGRiNDYyMSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3RpbWV1dGlsLnNwZWMuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYTA5OTc5NjlhYWE0NzUwNjI4NWMxODJkZmM1ODk4MDlkZWJlYzc1MWVhNTI3NjMzNTY2YWJmZmZiN2ViZTQzMCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3F1ZXVlLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiZDliYWJjNWI0OTM2MDM5NzVkODhkYWZkZWM0ZWI5MTVmNTUxNGQ4ZjBhMjZiZjRkZjBiNjhiMDUwZTJiMzU2MyIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9hdXRoLmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIyODg5MjExNmMyMjYyMDYyYjllOWMzMjQwMGQ3YzhhYWViNzZkNjI3ZTg3OTQ5Zjg1NTRhZjhlZjBmN2ZlY2RjIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvc2VtYXBob3JlLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjY2NGU3ODQ0NjNhMGVmMDFkMWI5YmMxOTFiN2NlMjExM2MxM2Y5MmU4MmJhMDE0M2UyYWIyYzA1NDFiYWYyNWEiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9naXRwb2QtY29va2llLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNTQxZTIzNjEwMzczY2VkZWFlZmFhM2MyZjA0NzQ5YWE1NWNhNzhhM2M1ZWJkOTU4OGFmYjI4OTA4NWI1NWRmZiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2NhbmNlbGFibGUuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImQ2Nzc2ZWUyMmZmYzQwYzBmOTA1YmUwZDZlMTI5MzhjNGE5Zjc2N2YwMzM3YzRlNjZjMTE1YmU5MTM0OWU4NmMiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvaWRlLWZyb250ZW5kLXNlcnZpY2UuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiM2E0NWUyNWE1ZDFjZWQwOWVmMWI1OGU0YThkOGE5ZTIyMGJlNjRmNDVhZWJjMzEyOGI1NTRkYTRjNDMwODhmMSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2dpdHBvZC1jb29raWUuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjY1ODI4YzIwODMxMTI3ZjU1ZTQ3ZGZkNzhiNWNjNzU5MDI2MDRkMDRlOTMyYjNkY2E1YWE5Mzk4NTE5YzMyY2EiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvY29udGV4dC11cmwuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMjMzYWM1OTIwZGEyNDRiODYzMzg3NDkyNGU4ZTM2ODA1Zjg4YzQ4MGViNTE4YjliNjBhMzI0YzIwMzE4ZDdlZSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2FzeW5jLWl0ZXJhdG9yLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjQyMWNmYzIyZjRhMTE2YmJmYzdhZTgwYmRkYWViZGJiODlhOWJjZjM5YWNmMjk1Yjk4NDc4NjM5ODNmYjQ2MzMiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvZW52LmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjA1YTZlZGQ2ZDMxYWM3N2Q0ZmM3ZGE5NTczMTI3NTUzNGQxOWIyYWZiMjFkMTE4NTlhMjc1ZjQ2NzBiZjc0NzUiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvZW52LmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImQxYjVkNTliNGY3YWRmZTdmOGMxNzFkNmFhODdkZWUxMGEwYzllYjU2MTMyNjQ3ZWUzMTNiZGY1MTk2NmU5ODMiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvd29ya3NwYWNlLWNsdXN0ZXIuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYTQzNGVhNmE2M2ZiMmM1NjA0ZTg4NTc0OTBmYjU0ZWU5NzE1YWIyMzgxMDA2YTE4YWI1MGZkNDE0MDFkZjE1ZCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9tZXNzYWdpbmcvcHJveHktZmFjdG9yeS5kLnRzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjQzMzhhMzkwMDY0NTkwMDRmOTQ3OWJhODBiZjBiNjNhMjA3MTQ3MWQzNDAwMjI2MmY0YzgzNzc0M2RhOTQ2ZjYiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvYWNjb3VudGluZy1wcm90b2NvbC5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJkNDYyMDFkOWEyZDVhNDdkMjc5ZTA4YTllYmM0MTQ4MTQ5MmU2YmRlMTcyNmY1ODdhMzgyNjZlYWQ2NmU1ODc1IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvamFlZ2VyLWNsaWVudC10eXBlcy5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJkZDcxYjJjMmI4Mjg0ZjIwZTg4YzcyMjcwOTc5YjY4ZTVmODk5OGRmODM2ZTg3YzczYzNkYzgyN2FlNmU3MDgwIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvdGltZXV0aWwuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNzYyYjEwNjVjZDk1MmM5YjczZmI3NmUzNGM1MTkzYzEwMTY2ZjM5OWEzNzlhMjUwMjkzZmY4YzY5MTAyZjI1NyIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2dlbmVyYXRlLXdvcmtzcGFjZS1pZC5zcGVjLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYmRlYTY3YWNlY2EyNzRlYjRhNDVmMTQ4NjJmYTMzMTcxNDJhN2YzNjFlY2U5YTA1MmY0ZDg4ZjU3Njg2MzFjNSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3BhcnNlLXdvcmtzcGFjZS1pZC5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI0YmMyNWNiZDMwYjQzMmFjOTYwMmNhMDkzYTVhMzc2ZTRiMDUyNzYxN2NmYTU1M2E4YzVlNTI4ZmQzZWJhNmQ3IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2FuYWx5dGljcy5kLnRzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjJhNmQwMmY2MmEwZGI3MDU5MDMwZGFjNzc0ZTEwZjU3NzM1ZDgzZGM3MDIxZTk3N2U1ODU0ZDAwYWZjYjIzNzMiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC90cmFjaW5nLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjk1N2I5ODkyN2RhZDBhOTdkZjQyM2NiOGUwYTFmNjBjMDlkY2ZmOTI4MWQxN2JmMmI0ZWJjMjMyMmViZmI5ZjQiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9hbmFseXRpY3MuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMjM3ODNmYzhiYjEwZjQ2MDg5ZWFjODRhNTE3ZGQzNjVhZTljMTZmOGI4Nzg2YmJmNDJhYjZmZmJlYWY0ZDk2ZiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2dlbmVyYXRlLXdvcmtzcGFjZS1pZC5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMjI4MjQ5MmZlMTFiNzVmMzU2OWY5ZGQ5MzI3MWYzNDA2OTM1OTFlNDNmMGU4NzA2OWZhYzM4NWZiY2IwZWUzMSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2dhcmJhZ2UtY29sbGVjdGVkLWNhY2hlLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjNjODI4MDZkY2RlMWZhOWM4OTg3NjYyODY3NWJmMDc1MmIyZDFlYTVkMmQzZGFhODJjMWNkOWU2OGYwMTVkNDQiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvaW5zdGFsbGF0aW9uLWFkbWluLXByb3RvY29sLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjIxNGFhMjU2NTY0ZDUzNzlmMzMzNzhhODZkMDk5OTYwNTM4MDYwNmRiNWU3Mjk5MDg5Nzk1NDJkNWY1MThiMTAiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9hbmFseXRpY3MuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiODFlOTkzMDBiZWFlZTZmMzdmMDYwYzk2OTU4NTdmMzgxMzQ4MjMzYWZiZGE1NzYzOTZlMTM4YmQ2ODE1ZDc5MCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9zbmFwc2hvdC11cmwuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYmE0NGEyNjVjZTYxZDZhOWQ4ODc3MzI3Y2YwMzE0MDExOTZlM2YyYTU3OTlmNTU1NjU3NjYwNmM4MGZkMmQ4YyIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9saWNlbnNlLXByb3RvY29sLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImVjYThhMDhjYzJmMmJhYTIwZGUxOTc1YzdmZTY2YTE3YmNlNzFjNTI5NjgzM2ZmZDM3MjgzNWViMjhlY2YyOGUiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvYXV0aC5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIxZjhiNDc0OTgyNjM2YzU4MTk4MWU1NjRhY2Q4NjI4YjZlZjM0ZmE4ZDEzYzE3ZjExMTg3Y2ViMzgyMjVhYzI1IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL29zcy1hbGxvd2xpc3QuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJiZDJjNzUxYWU3YTE4MWVhZjNmZGUzOWQ4M2I1ZDZlZjFhOTE1OWIyMDA0ZDA1MzM5ZDM3ZTU5MDdiMzYxNjFlIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvYW5hbHl0aWNzLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNzQ0MjQ3OWZhNTMxNmVmZjYwOTY5NTY5Nzc2YzdmMTc3ZWFiYTcwMDA3MDhlMWE4ZWJjZWMwYjRjMWY5ZmQ1MSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9tZXNzYWdpbmcvY2xpZW50LWNhbGwtbWV0cmljcy5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiZTYyNTQxNjY1ODUxMDAyZjQ4NTMyYTVjYjg4MTk5Y2JkOTY5Y2VlMTU4MDUxZTU0NjU4YjAzZmNlY2JiYzg4MSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi90eXBpbmdzL2dsb2JhbHMuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiZjI3YWYxZjM1NTZkYmFkNzM1OGVkMjVjZGNhZTY1ZjEyYjUzOThjNjNiNWFmOWIzMzliNDRhZjc4ZDNhZWYyMSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9lbWFpbC1wcm90b2NvbC5kLnRzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjcyNjJjNzQyNjIxOGM5NjcwOWEyY2M2NjhmMTI3ZTNjODQ4MTAxNGU1MDU5ZDA1YWUyOTA3YzVlNjFiYTY2NDgiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9nYXJiYWdlLWNvbGxlY3RlZC1jYWNoZS5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI1MGRkZjFiM2M1MmMzZjdlY2NmZGIyNmRlZGM4MTkwZDkwMTJhZDg4MmJjOTMzYjhjZTVjZjZjMzYyOWEwNDFhIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL21lc3NhZ2luZy9ub2RlL2Nvbm5lY3Rpb24uZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMzU4YWVlYTY1ZmVkZTQxMGZiOWI3MDU2NThmM2Q5NDIwMDk4YTI0YTE1NTk3NzllMjgwYTVjYjI0ZDYzNDU0NyIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9wbGFucy5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiOTA3ZTY5MDY5NGRkMmQzODFmYWQyNzJjYzg1NzQ3ZjVjNjg0ZDc5MGVmYTVkNGI0YmYwYzFmZjA0ZjcwNjhkNSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi93b3Jrc3BhY2UtY2x1c3Rlci5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYmE1NGQzMGZmZWY5YThhZTFmOGUyODExNDVjNTMxYWJjY2NkMTAyZWRkNDI0ZTE2M2E2N2IwMjUxMjBiOGEwOSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3JlcGVhdC5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMTYzOTY1MWZlZjA4YTYxYzY3ZGQwYjkwZDQ3YTVkMTQwMTQ5YzM0YTI1NjNlYTVkYjBlNWVjZjU3MDI1YmExNCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3dvcmtzcGFjZS1wb3J0LWF1dGhlbnRpY2F0aW9uLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiOGUyYzBkZmRlOTcwMmEyYjg1OTczODczZThjYjYwM2RhYzJiZDYwMjg3NTQ4MjYzYjBjMzM2Mjk2NmRkMDBjNCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3RyYWNpbmcuc3BlYy5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI1YTRjN2UxODUxODllNDEwZWFmMDY4OWY5NmRhMTNiZTg5NjUwNWNjNjQxZmYyY2M4ODg0MDNlMDkzYzcxNjZjIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL21lc3NhZ2luZy9icm93c2VyL2Nvbm5lY3Rpb24uanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImVkMDRlM2M5ZDExZjE4ZDdhY2YzZmFkMDcxOWZiZWQ0MWNlM2UzZThlOThjMmUxNzVkYmE5MzY2ZDA3NTM1ZWQiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9kaXNwb3NhYmxlLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjgwZjZkNjIzNjlmYWUzNmZlYjg2NmYxZDA5MTg5YTE5ZDYwZDk5YTM5ZjM4OWVkNzg1ZmY0NGI1Nzc5MTU0YWEiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvcGVybWlzc2lvbi5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIyNDU5ZmYxZjIxYTBiYjJmZTJhNmEwM2RjYzQyNjUyODQ2Mjk3ZjllZDI2ODJiNTU2YmU0ODE1MTQ1OTk2NmQ1IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL21lc3NhZ2luZy9lcnJvci5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIwNjI3MmM2NmYzY2RiNzJhMGM2Y2EyYWQ4NGMwZThkOWNmNTBkNmU2YjkwNjJlYWRkYWJmNzA1YzM3OTE2NjcyIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL21lc3NhZ2luZy9oYW5kbGVyLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNmE3NGE4ODFhOTliNjI3MTlhOWRhMWMxYjNiMjZlZWUyM2U0OWU2MmE3ZTg3YzY3NTU5MGRhMDM5NTZlMDkzYiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9lbmNyeXB0aW9uL2VuY3J5cHRpb24tZW5naW5lLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMGM2YWQyNTVjN2NjZDljNDVmZTQxYjM1NzkzN2JmYTM2NDY1MDBiNjBhMTU2YmQyZWJlNmM0MjU2YzAzOGE3MSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3NlbWFwaG9yZS5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiOWViOTllY2JhNTFiZjYyODNkZTRmNGE4OTA0MGQxNmQzZjBmMmY5YjJmMjc5M2NkZDE3YWZkYmM3ZTUwOWM5NCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9saWNlbnNlLXByb3RvY29sLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMTRiNWVmYjg4YjZiYWNhYTAzMTE2NDQ1MDJjODdlZmU1MDQ0OGZlNzM2ZWMyMmM0NDc2ZDYxYzYxNjFkOWNkZSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2RhdGUtdGltZS5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIxNTQ0YzQ2NmRiOTU5ZTcxOTk0Y2M2NTE2NjZhYzFmMTViZjBlNzE1NmRhMDEzNzM1MWZkOTBlOTk0MmYwMzFkIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3NuYXBzaG90LXVybC5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNWFiOGQwOGEzN2I0NjI3NjgwYjkyNjZhY2IxOWE1NjhlZGUzODI2YWU0M2ZmZTEyNjQ4NGI2OWY3OGU2NzU3ZiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9vc3MtYWxsb3dsaXN0LmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjY3N2U5M2QzY2ZlNDAzODI0YmU5MWI1NGExMDIxMGRmM2Q2MTk1YWRjNDJmZTBkMGNlZDY5ZmVhODU2MTkxYWQiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9tYWtlLWxpbmsuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjVlM2E3Y2ViYjRiMDhmMjg1NDdmODliZmM0ZTZhYzM2NmY4NjViMjkzNjRmYWE1ZTVmYmY0OWU1YmVjZmExZDUiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9xdWV1ZS5zcGVjLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiZjRiYWQyNDg2OTUzZWRhMWQ1NmI1YTZjZWM5ZGExZTMyYmVhYzU0YTA0ZTFhMGMzNDM0MTYxYzRhNzYwMDU5NCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3RyYWNpbmcuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjY1MzMzNmEyY2RmYWEzZDIxNmRjYWVjZDgzYjg1NmIxZGMxNjRjZGI2NTZjNmZjZWFkMjBiMjI0ZTI3NjQ1MWIiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvY29udGV4dC11cmwuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImRmZDY3MTYxNDAzN2VmMjcxZWVlMzVhMGJjZGNkMzM4ODdmYTdkYjQwNWJjMTY5NmYxMjMyZTQzYjJlMTVmODQiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvcGxhbnMuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNjAwNTRjOWFhOTRkOWIzNjZmNjFmZWZjMGM5OGNlNDE0NTI3NzI4ZmUwNDJjZjM1OGRlNzAxMzc1MzU2ZTI0NyIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9tZXNzYWdpbmcvcHJveHktZmFjdG9yeS5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiOTJiNjhjNWZkNTlmOWUzYmFmYzAxYWM4Njg1ZmIwNjlmYTEyNTkxMTAyNjg0N2E2N2FlMWQwZGQ3Y2ExZDhkMCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9tZXNzYWdpbmcvaGFuZGxlci5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMTQzNzMwZDE3NzBjYjY0YzMzNjMxNDNmYjg4Njc4MzJlZTg4N2E0MDFiOGZiNTAzMDM0NjJjNDkxNmNiZTkxMiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2dpdHBvZC1ob3N0LXVybC5zcGVjLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImRlNjUyMDhmZTdkMGQzMDNkMjJmZjI3NjgzYmM2NDRhMGE0Zjk1MGEzMGRmNzQ5ODdjYzVkMmY2NGMzZDkwZWEiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvZ2l0cG9kLWZpbGUtcGFyc2VyLnNwZWMuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiZGQ5ZTkyNjk0NmYyYWU3OWNiMDA0NDc2MWIwZTc5NDMzNDM4OGFiOTNkMmRiNzA1YTYyZDg5NzU4ZTA1MmE1MSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9tZXNzYWdpbmcvYnJvd3Nlci9jb25uZWN0aW9uLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMmM0MDg5YzkwZTcyNDNhNTQyNzY5OTJlMTAyNDEwNDc5ODhjZDAxMTlhMThhNjU1MWRhZjMxMTU1NTc5OTQ4NiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9tZXNzYWdpbmcvZXJyb3IuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjJiNmZhNWQzYjhiMzFiNjllOWY0OGE5YTIxMWQyNGNkODc4YTEwYjY5ZjIyMTViYjAxYmUyMjg0YzI0NmUyMDciCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvYWRtaW4tcHJvdG9jb2wuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJjYWRhZDg0ODFkNjM0MTZiNWRlYjU1YzE4M2NmMmYzM2FiMGJlOTIyYzk2OWNkNjIxODVlNDU5NDkxMjI0MjY3IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2dpdHBvZC1maWxlLXBhcnNlci5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYTYxMTQ3MzM3YTViZjZlZWQ4NDJlNmE0Y2IwMGRjYzU4YTNjNTM1ZTE1NDU0NDg4NWRhYmQ5YjYyZTAxZjZkNCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3BhcnNlLXdvcmtzcGFjZS1pZC5zcGVjLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImZlNWNiMzI3NjMzNDdiOTI3MTAzNjgyY2JhZDA0NjhlYjBmYjFlOTM4Njc5YzQ0NjQ1NjA5N2Y1ZGRlMDc2OWEiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC90aW1ldXRpbC5zcGVjLmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJiYzFjN2QzOTdmY2ZiZWI2MTY5NmY2NzJhMTY2Y2I1NGVlMTQ4ZGE1ZDU1NWNjNTM3Nzc1NWRkODYwYmIzYTRmIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvZGF0ZS10aW1lLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjY4NzhiZWIwZjdjZWYyZmE4OTI2NjU1ZTVjNTk5MGMwOWE2YjljODBjMDQxNjYxMDI0YmIwYjBiZjIyYzhhMTkiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvZ2l0cG9kLXNlcnZpY2UuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI3NGVmMmJkMTlmZjY0N2M0NzQ4MDg5MjA0MjcyMmYxM2FkMmNjYzNjZmE5NmM5YjgyODI1MjgyZjg5NTVjZTNlIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvZ3JwYy5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNDQxZjBjM2E3NmFkYmRkNjFiOGIyOWJlNDI1M2QxZDhkNTMwZDg5ODA5NDc0YmE4N2E2NmI2YjNlZTc5MDU4OSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3RpbWV1dGlsLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNTdjNzJlZmQxNWNlZTg5OWI0ZjQ2Mjg3Mzk0OGNlN2Q4OWFjMjNkZDQzYWRjY2VjMzlkYTBlNzA3OTEyMzUyYiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2dpdHBvZC1jb29raWUuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiODU4MmMxOTFjNDM2MjQwNGU3ODc1M2ZhMDE1NWFhZjMyOWEzODYyYjAzODgzYTAyOTQ3N2I0ZTZmNjA5ZGQwNSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2dpdHBvZC1ob3N0LXVybC5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJiOWZmYTNmNGM4ZTdiMzNiNWIyZmFlMzRmMTNhODU3ZWVjOTc2MGZjOTg3NzRkYzkzZmI0MWZlMDg3MjUxOGEzIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvZGVlcC1wYXJ0aWFsLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiOTY0YTI5MzFjMTc5M2RkZWE1YTg2ZjI1NzZjZmJlNDNiMzJhZTAyMGY2ZGE5NThhZTRmNjkwNWY5ZjUxZjIxMCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9zbmFwc2hvdC11cmwuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJjYmI4YjYwZTZmNWE3Y2JhNWVmNWI1NzUzYTM2ZmRjNjhhYTMyY2ZkMmU5ZWMyNTk5MGMzY2Y2ODVkNDEwODQ5IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3RoZWlhLXBsdWdpbnMuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMTgwYjc0NmM0NWIzMGE1NWI4ODZjZDA1NTRlZTczMjRiNWI4YTI4YmI4ZjMwOTA4MDE5NjAxN2ZkMGM0MWU1ZiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2dpdHBvZC1jb29raWUuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMTdmY2UwNGQyYzgwYWRiYjZiYmZhN2ZmMWI5ODM5ODIwNTYyYWM0MjM3YzM5ODJmZjYyNmQ3MWMwNmJkMWUxNiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2dycGMuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMDEzNjQ1ZjdlNDgzNGUzZmU2MTM2NWQ1ZDI1Y2JlZTE1MTQ1NDdhYjY4MzM2MmMwMWY1N2E4OWU1ZGI2ZThkMyIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2xvZ2dpbmcuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJiYTlmZGQ2ODEyY2Y0NDUxNDkyYmM0MmQzMjAzY2YxYTIzNGJlZjVhNTY3NjJkZGQzMzA3MWU5ZjYwYzlhMDdhIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3RoZWlhLXBsdWdpbnMuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjIxMWExNWMzNDU1ZWNhNzMzZTg3N2VmMTc5MWQyOTY0OTI2ZDJhMzE1NDdkNTRjOGY5YzBjMDYyMjZlMjNlNjciCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvaWRlLWZyb250ZW5kLXNlcnZpY2UuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMjcwOWIyY2Q0MDdkNzM0MDRlNWJiNzU3ZjM0YTUyMTFlOTM5ODc4YjQ0ZGEyZGY5NDIyZmVhYTg2NWFlYWI1OCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9tZXNzYWdpbmcvY2xpZW50LWNhbGwtbWV0cmljcy5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI2OGRlYmRkYzIyMWQ2M2EyMjkxMzMwMWMzNGQ1ODliNGRhMjU3MGIxNmE0YWUxOWYxMDNjZjg0MDRjNGNkNDZhIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2VuY3J5cHRpb24vZW5jcnlwdGlvbi1lbmdpbmUuc3BlYy5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJkN2IyMWQ5Y2YyM2FmNTRkNGQ1MTI2MTJmMTIxMTNlYzI5NjA4MzlmM2QyZmNiZjlkMTU3ZDk5NTNiMGE0ZDhjIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvZGlzcG9zYWJsZS5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMWIyNmJjMGQ4N2UzOGYyZDBlYzYzOGEyNGJlMGYwNjkwYTYxYmEzMTFlOGUyN2NkYmNiMDU4MGVmZjQyOWM0NSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2RlZXAtcGFydGlhbC5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI1NmQ5ZDhkMmFmODhjYTE3MjI2NGVkOTBhOTVkZGZiMzZkZTcxZmQ3MTUxYTE0NGJjNjQ2M2UwNmU1ZjZjMTI0IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvcmVwZWF0LmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImQ5OTA1OTE1Y2NhOTVhMTlmNTRmZGZlZGY3N2VkYjIxMjY1ZTYwNGZlOGJiNjU0ZmZmZTg3YjMyMzBlYTc4NzIiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC93b3Jrc3BhY2UtcG9ydC1hdXRoZW50aWNhdGlvbi5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiZjI5ODJjZDBiYjBmODE1ZWRjYmNjMzFlZjdkZTRhYWQzMTEzZTA2NjIyY2U5NmY5YTgwNmUzYTU1NzQxM2YyYSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9lbmNyeXB0aW9uL2VuY3J5cHRpb24tZW5naW5lLmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI5MWEzYWEyOThjMjc2NjQ4YzdhYzI0YTg0MTE1YmY1YzhkNzM3NWYxYmZjMzU3MjgyZjFjYjQzOGM1ODk4NDgwIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvZGVlcC1wYXJ0aWFsLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjA1ZTY4MTEzODI3MDUxY2RkOTE5NTdkMjlhZTYzYTgxZWQwZTg0N2JhODkxOWM3YmY4Zjk3ZTliZjY5YTBkNGEiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC90aW1ldXRpbC5zcGVjLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjQwODE1YzhlYzE3NTBhODZkYWY5ZTA5NDNlZDNkMzMxYjA5MTI5YTFkMmU3ZmZmZjU5MmM5OTg1MjI4YjY1ZDYiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvbWVzc2FnaW5nL2Jyb3dzZXIvd2luZG93LWNvbm5lY3Rpb24uanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjM0MzFkN2EwNjhkZGVhNzUxODUyOTQ3MjQ4MzhhZmJlMWU0OWEzN2RiOWY0MTkwNzgyYWQ3NGZmNDhlODE5NzQiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdGhlaWEtcGx1Z2lucy5kLnRzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjRjNTM0MDdmYmQ1ZGY4ZjhjMmJjZjk0MjQzODczODNjNTYzOTEyM2FjYzUyYmYxMzhlZDg5NjcxMDkxNWFmZjkiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvaGVhZGxlc3Mtd29ya3NwYWNlLWxvZy5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI3Y2JhYzk2MTNlZDQwMDIzMWExNmNjYmU5ZDg5MWUyZDZhYmU4Mjc0Yjc3MGI1YjZkMjBhMzQ2MDA2NGM1OTk2IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3BheW1lbnQtcHJvdG9jb2wuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI1YzhhMzkwNzNmNmRlZjlmZjI5ZjIwZTBmOWMxZDY0Y2MzZjExODVhNTE3ZjZiMDM2ZjY0YmUxOGNlNzc1ZDM0IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3RlYW0tc3Vic2NyaXB0aW9uLXByb3RvY29sLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMGYyMWRkNmNmYjJmMTRmODk4NDFjMWJhNzVkNTFlODA2ZDVkMDY5YzUyYmU3YWM3OGEyNGViNTQ5ZDIzNjUyNiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9naXRwb2Qtc2VydmljZS5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI1NmI4M2U1MTc3MTk0YjYyYTQ2NDEzNzNkNzJmMzAyMDgxYzg4OTUzNzFjYjkwMTE1MzcyNWZkOGM3OTFmY2MwIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3dzcmVhZHkuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiZmVkODM4OTE3ZTNkYTQwNjlkYTAyNGQyZDRmMWFkMGY0M2EwNjkwNTM4Y2M2ODg4OTEyMjVhYTk2NmEwNjA5OSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9wYXltZW50LXByb3RvY29sLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjg1NGViM2VjNTViYzhkNzllOGM2ZTkzM2FjNDQxNTdiZGJlZDM4YjY2YWQ3M2IzYTRmZGNhNGFiNDY5MmVjYTAiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdGVhbXMtcHJvamVjdHMtcHJvdG9jb2wuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjVkZGRiYjRhZjQ5YjY3OWNlNDViZDY5MjUwM2U1Yjc1NDQ0N2NkNGExOTZmNWQ1NjgwYmNjNDU3ZjU1ZGRhZGYiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvZW1haWwtcHJvdG9jb2wuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNGZhNjQ5YTllYzRmYzdkYWQxNTljNThiODA3ZGQ3MmUyYTM1YmNlOWRlNjU3ZmU1YmRlZDU0NzcxNzBjYzIzNSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3F1ZXVlLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjg2ZGM3Nzk1MTEwNzE4ZDZlYTdiMTllMWIwMzE3Yzc2MGYzZGRmNjcyYzExOWQ3Nzc4YzlmMjJiOWE4YTBmNjQiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvaWRlLXByb3RvY29sLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiOGQyNjI3YTRmZjJjMDgxYjhkNDdiY2MzNjBmZDljNTdmNDk0YjRlOGQzZjI2YjM3ZTc5MzYzZDY3YTZjNDFlMyIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2dlbmVyYXRlLXdvcmtzcGFjZS1pZC5zcGVjLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjMyN2Y4NjJjNTRlNzljZDZlODMzNjcyOGU2YmZhZmQ5YzcwNWU3OTEzYThkOWI0M2M3Yzk1OTM5ZTNiNzc5ZDIiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvZW1haWwtcHJvdG9jb2wuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiZDNhMjFjNmQwYjM4NjZkNTBkNzE1NzU1YWYzMTkyYjViOTM5OThhYmM2NzdhNDE2N2RkYzNjZDRhMTdkMThkMyIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9jb250ZXh0LXVybC5zcGVjLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjY4MWY5NGQ5N2Y3M2I0MDA2MTU3YjI4MzBhMmE0NmJkMmNjNTc3Y2Q3OWU2ZTY3MzQ4ZDQwMjNmMjk3N2ZiMzUiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9xdWV1ZS5zcGVjLmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIxMTU1YjdjMTdhZGY1MmRjZDFiOWJiN2U2MDAzYjllY2YyMzhhNzkzYzI4MmExZGJjOTkxMjE0MmY1MDYxMjIxIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2dpdHBvZC1maWxlLXBhcnNlci5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJhM2VlNTNhM2JmYTYzY2U5NTJiNzExYzI1ZGIwMDYwZDJjOTI2MTQ1ZjY4OWU5NDEzODA0NzI4MzFmMmIzMTQzIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvY2FuY2VsYWJsZS5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJmM2JhY2I2ODJjOTBjZjgwZWVhMjJlZWI4NzQyOTA5OTEwMzM1MGNiM2U2ZWU5YWRjMzlmYzEwNTk4NTM4YTliIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvZ2l0cG9kLWhvc3QtdXJsLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiZGUyZWEwOTg4YmQwOTZlNjhkYjRhM2RmZjJmMDZjMzllZDU5NmEzMmUxMDNhY2FiNzRjZDYxYTQzYTlmMDMzOCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2NhbmNlbGFibGUuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMmFhODY5ZWQzOTgwYjZhMGY3Y2M5NzIwN2NlOTFmMjlmN2NkYzJlMzc3MjZiM2I1NzE3ZDBmNjJjMmUxMDUxOCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi93c3JlYWR5LmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI2ZTg4N2ZhMzY5ZjhkNjg1NTVjM2E1ZjJlYmU2ODEyMGNhN2QzNTJkMzNhZTc2ZGFhNmM5Yjg5MTAwZjIwMmYyIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvbG9nZ2luZy5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI3MTc4NWM0MTYwMzhjMmY3MmQxOTcxOTI5OTM5NDkxODJkZjY5ZGZjZGIyYjA2ZDY0MTg4YjcxYTg0NTNlZTA3IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3RlYW0tc3Vic2NyaXB0aW9uLXByb3RvY29sLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjEzYmIxZTU1MGJkMGEzZTlmODMxMzA0ZDc0MGNmZWE3Y2NkZDcwZWQ0YTAzZjAwYTBjMDE5YzYzMjIwYzI0YTIiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9tYWtlLWxpbmsuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMDU0MGVjNzhlOTUwY2I3MzdmMmI2M2M4ODJhODZkOTM5ODEyYzY2MTJlZTRmMmUzYWM3N2EyNjVmOTMzMjc2MSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi90eXBpbmdzL2dsb2JhbHMuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjNkNjcxOTIwN2JmOWE4OTY0NDk3Y2NmODQ1ZjRiOTk1ZjcxMjE2ZjJlNzc4NGU5NjAyZWJmNWYzNDllNjRiZDAiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9naXRwb2QtaG9zdC11cmwuc3BlYy5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYzU4N2Q0ODRlMDY1N2EwODAzYWVmYWJlNTA3MjdjZWM4MDNmYmUzNDljNTFjOTA1N2UzNDBjMGVlNGFkOGIwMCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9lbmNyeXB0aW9uL2VuY3J5cHRpb24tZW5naW5lLnNwZWMuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImI3MTNjMDM0MmU2ZmFiOGUyM2ZhNTIwMDFiNmE0NTdlY2MzNzdmMWUyZjNhMjNiNjA5NDdmNGJjZTUwYWJmMmYiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvZW5jcnlwdGlvbi9lbmNyeXB0aW9uLXNlcnZpY2UuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJmMjU5MDg0MmRkNzY3ZWY5MDk1NzZiYmFiODExMDVmNTA0NTk0YjQ2ZWNiYTkyZDZiZmZkZGEwZTY2ZjBlMTA3IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3BheW1lbnQtcHJvdG9jb2wuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjc1Y2JkODAzNmEyYTdiNmM3N2RlYzU5YzE5NzhmYWFhNjk1N2NiOWZlNThkNTViNDkwMWIzN2U2ZGU3YTNiNGYiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvZW5jcnlwdGlvbi9rZXktcHJvdmlkZXIuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJjYWVlYWVlODhjZDdiMTYyOTc3OTQ4YzU0Y2E3M2I5MzFjZGY4M2YwMDlmMWI3ZTBlM2I2NjNhNjEyMDJjYWM4IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvbWFrZS1saW5rLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNmE4YmJmOGRjZTljZjUyMjc2OTFhMDZhNGJlN2ViNzU2ZjgxZDE4NDVlMWExOGU1ODA5YzYyMzg5ZTg0OGIzOSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9lbmNyeXB0aW9uL2VuY3J5cHRpb24tZW5naW5lLnNwZWMuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMWQ5MDFiM2JlMGQwOGRjOTNiMmE5YmM3Y2JhYzlmZmM0YzczMzRhYzNmM2JmZDQ2MjQ3NDM2YTcyOGJkNjdjNSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3dvcmtzcGFjZS1wb3J0LWF1dGhlbnRpY2F0aW9uLmQudHMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjU5ZWNiMjAyOWRmMWM1YjJiNzdlMDVlMDQ0NWJjMDUxZDVmNmI0NmYyMDI1NTFjNjJiNzYyZjdhNjBjODc5MTYiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvaW5kZXguanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiZmNlMjBlNzNlZDlmNzVjOTI3NmRkYzhhMDQ0YzRiMTEwN2Q0ODAzNjU5MmQzZmY0MmMyMWI4ZjMzNzkzNWJjMyIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9tZXNzYWdpbmcvbm9kZS9jb25uZWN0aW9uLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiY2Q0MTg5OWFjMjllN2ZiN2U3Y2E3MTE5YjNkMmI3ZTBkMTUzNTEwNjZjMTVhYzM5ZDBiYzY5NmY5ZjhlZDZkOCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2FuYWx5dGljcy5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYTBmZjcwNzBhMGNhYmIwYWVlMzhkNTYwN2NiZTAwZGRjNGY2OTdjNTkwZjU2Yzk3M2RjOTRmOTg5YTYxNTE4MyIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9wcm90b2NvbC5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNjc1ZjZjNWI4NGY2MGExYjBkY2QwYjUyNzE0M2FmNWFlNDYxMzdhZDAwNjE1M2RkMDEwYjMzZjViODFhZTg5MSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi90eXBpbmdzL2dsb2JhbHMuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNGM3MmUzNzIzZGJkOWRmNTJjZmZlNjhjY2I4ZTk3ZDM2OWVmN2RiMWEyM2I1ZTVlMTZjZDljNWI3MDQzMzhmOCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9vc3MtYWxsb3dsaXN0LmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI5MTAwMmFlMzRkZjIxMzFmNjAzZGVjMmZjMTMzOTY4OTc5NWExMGI3YWFhNGVmNjc0ZWIyOGRlZTdlMWIzZDFiIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL21lc3NhZ2luZy9jbGllbnQtY2FsbC1tZXRyaWNzLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMDY0OGU2MjUyMzgwMzRkYmJhMjQyZTliYjliYjliMDYyMzJkNzdjMzhhNTE3ZmJmZWI4NzczYzJkMGJmMjc3MyIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9lbnYuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjlkMDA4MzlhZGIxZjJjZmMxZDExYWY0NWFmZjM0ZTg0MTIzYmY2MGZkZjMxMmUzZjUxNjdlZTE1N2Y1OGNhNTkiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvd3NyZWFkeS5kLnRzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjgwZGVmNDAwM2VjMDNkOWM0M2QzZmFkNGFlZmJhZjkxODIzZDVlYzAwZTZmM2I5NDJjNjJlOGE3NmE0MTk0YTIiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvZW52LmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNzQwNWZmOTk4YWJmOThkNDAxYjFlNTRlZThjNTdiZTA1MjdkNjNlNWJlMjIyZDA2ZmE1ODQ5NjQwM2E0NTU5YSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9jb250ZXh0LXVybC5kLnRzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImY3Y2MwYTY4MjVmMzk2NGM3MDgwOWU5YzY5MmIyMjU1ZmIzM2I2ZGI1MGQ1NTAxNTg2YmI3ZDkyMTAzODJjNzYiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvcHJvdG9jb2wuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiODEzNjliNjAxOWFiNDM5MmRiOWVhYTQyNmExZmNhNDU4MjNkMmUzNzY4Y2YxNzhhZDkxMTA5ZjE0OWExZjNjYSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2NhbmNlbGFibGUuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJlZGY1YmM1MzkwYmQzOWY0ZmEyNGMxZGM4ZTU2YzY1YTU1YjFjNTNhZDg3Y2FiYzA1NmVmMmE0ZDBjZmRjMjY4IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3NuYXBzaG90LXVybC5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI5OGNkZTU3NWRkN2YxODExNDAzNDliMjE1MTk3MTlkY2UzZmRiMTFiNjFjMjQ4OTY3MTExODMwZDQ5YWIxNjNhIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3dvcmtzcGFjZS1jbHVzdGVyLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNmQxZTJhMGZmODllZmMwZTEwYmFlOWE5YjA3Y2YwNGU5ZmE0N2QyMDQxOTllYWU3MzQ1M2JjYjMyZTViMmZmZiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3RpbWV1dGlsLnNwZWMuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI3OTdmOGU5NDQ2YTgyZTMzNWE0M2ZmMjFmNDQxMGU1NmY1NTQ4NjkwM2IxYThlYzYxNGIwNWExYmQ3YTUzODE0IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL21lc3NhZ2luZy9oYW5kbGVyLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjg5YTA2NmU3OWQ0ZWY4ZmFkNDdlYjY5ZWY5MTFlZjkwMDM5YzcyZWQxNjg4OGM4ZDQxYzA0ZmEyNmExZGI2OTUiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvbWVzc2FnaW5nL3Byb3h5LWZhY3RvcnkuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiZWVmODZmZDUzMDA4ZjQ0OGVhZDNmOTA0MGMxOGU3MDk1ZjdiYmIyOTU4MjE1Yzc3NmYyYzlmM2I0ZjNkMmFkYSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3F1ZXVlLnNwZWMuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMWIxOWJhNWY2ZDk5M2ZjY2Q0N2VjNmE2Nzg4MDU1MzM2YTQyZTY5MjJmYTRjYmU4OWMyYjQ3NjVmMzIyMWIwYiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9hZG1pbi1wcm90b2NvbC5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNTYyNGYwZTE1YjY0YzZjMWY2ODRiMjk5ZTM1MGU1YTVhN2YzZmYwNTVhNWE5NzQ4MGE1N2E3YzBkN2QwZjkwMSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9tZXNzYWdpbmcvZXJyb3IuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI0YmJiY2RiZDE5NTRiMTQ0NDdkMTI2NDczYmM0MWJiMDNjMTJlZmU5ZTI2MTAxYzI1NGE4NjE3YTU4MWM5Y2VlIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2lkZS1wcm90b2NvbC5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIxOThmZTBlZmIzMmYwNzc0NWE2ZmMyZmQ1MzRlMTFjYjU4MzBlNzVlNmY3YWI2M2I4YTE4YzlhZWVlZTlkNzFmIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3NuYXBzaG90LXVybC5zcGVjLmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI1YzY5ZDM5YmUxMTMwOTQyOWExNmIzMWMxNjBkM2M0MDMwMmY3MTNjNjAzNGFlMTI2YWFjMmJlNDVkMzhkY2JmIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvYXN5bmMtaXRlcmF0b3IuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImYzY2E0YmQwZTkwYWQwNzQ3ODBjYzY2OWFmYWFmMTA5NDZlNmVkNTU3ZTU0NzYzYzlhZDk3ZWE0OWRlN2VjYzAiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9qYWVnZXItY2xpZW50LXR5cGVzLmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI5ZDg3NWEzYzZmNDk3ZWQxZjllM2I5ODAwMTk0NWY4YmQxOTdiMTk5OWZiNmFkODdlMTc5ZDQ3N2QyMmZkNzgxIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2F1dGguanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYzJkZDY3MDU2NGMwNDJlZTAzZmE4MDJiMGE3ZTNkYjM2YTM4MDFiMzdkYWYzYzA4NTEyODBiMzViNzE4OTJjYSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9wZXJtaXNzaW9uLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiNmEyOGI5Y2NiYmE3NDQwOTc3MTgwNDBkMjE1NjFiN2ZiNTE3NDRiYzQ1ZDM3YTM0N2ZlZmFjMDRmMWNmMjk1ZSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9tZXNzYWdpbmcvZXJyb3IuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiZWE4NDhhOGM0Y2IyOWQzN2FhYTljOTg2ZjUxNGRhZjA2YmRlZjY0NDM3NTA4YmE2OGE5NGM0MTgxMTg3NjRlNiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9pZGUtZnJvbnRlbmQtc2VydmljZS5kLnRzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjgwNzE2ZDgyNjgxZjk4N2ViM2U1NGI3ZGFkMjE5MDZjYmI4OGZkZjE0ZWNiMjc4NWU0N2U3NmI1OTIxMDk3YTAiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9hc3luYy1pdGVyYXRvci5kLnRzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjdhMDU2NGUwNTMzNjViZjFkMmNlYjFjNjdiM2RjYTU0NTYzNjExOWIzY2U1NWNmMjc4Yjc1ZDllMGZlMWRiMDciCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9zZW1hcGhvcmUuZC50cyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJlNTBjZWU3MGMzMWNhZTQzNjcyMmIxNDk3YTk1MWUwM2IyZDFmNGYzZjI3OWRmZWNmMGM4ZmMwZTkwZWI4Mzg0IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2xpY2Vuc2UtcHJvdG9jb2wuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjMwMjRiNGM1MTUyNTFlMmExOTc3ZDQ3ZTE5M2Q5ZDI0ZmFlNTAxZmUwNmJjZTFmOTljNTU3YzhkMWE0YzU1NzciCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC90cmFjaW5nLnNwZWMuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYmM0NDBlNDkzNmQxY2MzN2Y4NWNhNzgzYTI0NmQ3N2I2ODljNTQwNTgyZWFiOTFkN2U0MTZkMWI0N2U5OGYxYSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL3BhcnNlLXdvcmtzcGFjZS1pZC5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJiOTA1OWFkYzM5ZmNiNTQyMTEzZDJjY2IyODc1MmQ4NjJiNWI2M2NlNWJhZTFkNmU4NTkzODUwNDNiOWE0ZTk3IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvcmVwZWF0LmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjg3MDJmNDg5MjBlOTFhMjFlY2VhZjkzM2U3MzE1M2RhNTExMGZjMjdhNjkzZWVhNTAyYWQ2Yjg5MjFmMGRhOWIiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvYWRtaW4tcHJvdG9jb2wuanMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMDlhZmRlMDkwNGRlZTMxMTY0YzA2ZDA0YjY3ZWM3Y2Y0OTg2Y2RkMDNkYmY2ZDRkYjZhMWE2YmExNjhkZjc3MCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi91dGlsL2RhdGUtdGltZS5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYTg0MGUyNTViZTA3MTI5YTQwMGI3OWNjZGYxZmRjODMzNDg1N2YwM2M0M2RmYmNjZDFmY2ExNTJiYzhmNGZhNSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi93b3Jrc3BhY2UtaW5zdGFuY2UuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImU2NjU0N2VkNmE5OTYzNTBkOTZkZjVkYmYwNzEzMjdlYjNjOTA1MjJiODc1OTY4NzljMTU3ZjcwOWQxNzYxMjEiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvZW5jcnlwdGlvbi9lbmNyeXB0aW9uLWVuZ2luZS5zcGVjLmQudHMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiZmI3MGRiODU4ZGU1NzQ2MzBmYjU1ODAxZTM0MDMyMTk1MTNhMzA5NGEzZWYwY2Q5MzA4NDkzODMxY2UzNGQ2ZiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9lbmNyeXB0aW9uL2NvbnRhaW5lci1tb2R1bGUuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImUyZTJjYzE4NWQ4NGQyZThiMjk4M2M0YjZhZTk4MTRiM2JhMjE0OGUwNDJlMDk1ZDZlMzZmMjQyZGFlMWY3N2YiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9kZWVwLXBhcnRpYWwuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImQxZTAxMmE3MWJmMmZkZjBiOGVkNWJjMDRhNDRkYTkyOTZlODhhMzdhMDM5YWI0NzljZDhlYjZkMzMyOThmNjciCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvYWNjb3VudGluZy1wcm90b2NvbC5kLnRzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIyOGI4OWU5ZGZiYTBlMzdlNGU4NTIzNTZhM2I4YjM3MjlhYWVmMmU5YjNjNTkwYTgyMDMxYWUxNzdhN2ZmZWJkIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvZ3JwYy5kLnRzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjM5MjUwYjE0YTE1MmE3ZjQyN2ZlYTM4NWM3Y2VjZTVlMzZkYjhhNmUzMTBiMTIzOWM2ZWIxODgxZGU5NTUxOTkiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvcGVybWlzc2lvbi5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJhZTg2Njc5ODM5MGFjZTMyN2Y1NTliMWIxZGNhNWU5YTJmNWZjYWI0ZDYwZDk1Zjg2MWQ5ZTZkZGEzOTQ2YTA4IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvbG9nZ2luZy5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI1ODExYWE3NTNmMWU5NWU3Yjg1OTRiNDE2ODJjM2NkMTRiNmM0NGI5NWNhYmNhM2EyOWRmYTM5MmI5ZGViYmY5IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL2hlYWRsZXNzLXdvcmtzcGFjZS1sb2cuanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImQwZTQwNmFjYWI1NjU1YTY4ZDE1NWIzYTdkNDBhZGY5OWRkODU1ZmQ2MjkxZTU2ZDI2MzYzOGU2NGQxMmNiNjIiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvdXRpbC9za2lwLWlmLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImIzNDk5YTQ3MThiNzFlNWYxODc1OGM2NDg4YTJkM2E1ZmZkZGIxNzg3ZDM3YWJkOWQxYjdiNzQ2Y2UwYTA3Y2EiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvd29ya3NwYWNlLWNsdXN0ZXIuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiODc0MGVmNjFhMTYyMmUzOWIxMWVlY2Q3NTJhMjI0NzViOTU0ZTVlZjc1ZTIxYWQ3ZTFhMjdmNWM2NTkyYTNjZSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi90ZWFtcy1wcm9qZWN0cy1wcm90b2NvbC5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI0MGYyOWM4OTZhNmI4ZTZiMTcyNzk2ZWRiNTMyN2Y2OWUwY2IzZDMwZDQ2NjUxYzg5N2M2YzBlOWNhMWI2NTAxIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3RlYW0tc3Vic2NyaXB0aW9uLXByb3RvY29sLmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICI1NTdhYWEzY2EyYjc0ODRjMWI1ZWIyZGQxZTFmZWRlMjBlNTI0YzcwNmNlMTE2ZWJmYjQ0YzRhNzQ4MzI1OGI1IgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL21lc3NhZ2luZy9ub2RlL2Nvbm5lY3Rpb24uanMubWFwIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjU3ODUzZDdiN2U1MWQ2YTM0NjE0YzJlYWE3NDlkZWMxYTQwMmI2ZGI4NThjMDNhOTdkYTY4MmFhMjg2MTBhYmIiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvZW5jcnlwdGlvbi9lbmNyeXB0aW9uLXNlcnZpY2UuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiZGJlOTk3MDU3NWJmMzAwOTZmZTI1NWFlNWUyOWUyY2VmNjkyMzgyODU2MTZmMGNlNDFmZmJiNGM2N2MzMDU2YiIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9wcm90b2NvbC5qcyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIzYjNkOTE4ZTQyNTI0NzNmZWUzYTUzMmQxMTJjMmQ4YjM5ZmYwYjQxM2RkZjhjMDUxYjZhNTIzNTA0MmRhNmNhIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICIvbGliL3V0aWwvZGVmZXJyZWQuZC50cy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYTg4ZThlZWJmZDM4OTA5OTA4ZTMwOGM2MDg2YmUzNGMxZGM5YWM1MzhiYTM4Zjg1NWU5MDMwMWI3NDc4NDkxYSIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi9lbmNyeXB0aW9uL2VuY3J5cHRpb24tc2VydmljZS5qcy5tYXAiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiOGNmMDA3MjgwYjYzMWU3YTQyNThhYmExNzA2MGQyY2I3YmE4ZmNlNzAzMmEwOGJmMDE3Y2U1ZWMzZGU0NjIzYyIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiL2xpYi90aGVpYS1wbHVnaW5zLmpzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjIxMDFhZGFiYjIyNTRmNTE2ODJjYjNkYTAzZjliNGE2NGM1YTNlNjgyMGIzMzA3ZDg4NzNkYzE2ZDEwZDE0NmMiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogIi9saWIvYW5hbHl0aWNzLmpzLm1hcCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIyOWExZjUwZmMxZmNmMzY2YzAzMTEyMWI2NWVmNjIyOTVkY2M5ZGIyOWM5OTZmY2QyMGY3ZTg2MzE0ZjNkZjU1IgogICAgICB9CiAgICB9CiAgXSwKICAicHJlZGljYXRlIjogewogICAgImJ1aWxkZXIiOiB7CiAgICAgICJpZCI6ICJnaXRodWIuY29tL2dpdHBvZC1pby9sZWV3YXk6MC4yLjE2LWI3ZDJiNTRAc2hhMjU2Ojk1MTJhZjFhYTRhY2MwOTYwZGQ1ZTk3YzUwYjdjZjFhNjY3MTNhODFhMDlmODI0NWFkOTUxMThlZTEwNzBmYmMiCiAgICB9LAogICAgInJlY2lwZSI6IHsKICAgICAgInR5cGUiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dpdHBvZC1pby9sZWV3YXkvYnVpbGRAeWFybjo3IiwKICAgICAgImRlZmluZWRJbk1hdGVyaWFsIjogODAsCiAgICAgICJlbnRyeVBvaW50IjogImNvbXBvbmVudHMvZ2l0cG9kLXByb3RvY29sOmxpYiIsCiAgICAgICJhcmd1bWVudHMiOiBbCiAgICAgICAgImxlZXdheSIsCiAgICAgICAgImJ1aWxkIiwKICAgICAgICAiLS1kb2NrZXItYnVpbGQtb3B0aW9ucyIsCiAgICAgICAgIm5ldHdvcms9aG9zdCIsCiAgICAgICAgIi0td2VyZnQ9dHJ1ZSIsCiAgICAgICAgIi1jIiwKICAgICAgICAicmVtb3RlIiwKICAgICAgICAiLS1kb250LXJldGFnIiwKICAgICAgICAiLS1jb3ZlcmFnZS1vdXRwdXQtcGF0aD0vdG1wL3RtcC5wUXpoUHFaaE9MIiwKICAgICAgICAiLUR2ZXJzaW9uPW1peHBhbmVsLW1pZ3JhdGlvbi1wcmVwLjAiLAogICAgICAgICItRHJlbW92ZVNvdXJjZXM9ZmFsc2UiLAogICAgICAgICItRGltYWdlUmVwb0Jhc2U9ZXUuZ2NyLmlvL2dpdHBvZC1jb3JlLWRldi9idWlsZCIsCiAgICAgICAgIi1EbG9jYWxBcHBWZXJzaW9uPXVua25vd24iLAogICAgICAgICItRFNFR01FTlRfSU9fVE9LRU49WDNiTmF0WVB1ZElKY0N6NmtGbFRuNTRwcnVtUUFxR2giLAogICAgICAgICItRG5wbVB1Ymxpc2hUcmlnZ2VyPWZhbHNlIiwKICAgICAgICAiLURqYk1hcmtldHBsYWNlUHVibGlzaFRyaWdnZXI9ZmFsc2UiCiAgICAgIF0sCiAgICAgICJlbnZpcm9ubWVudCI6IHsKICAgICAgICAibWFuaWZlc3QiOiB7CiAgICAgICAgICAiYXJjaCI6ICJhbWQ2NCIsCiAgICAgICAgICAiZ28iOiAiZ28gdmVyc2lvbiBnbzEuMTcuNSBsaW51eC9hbWQ2NCIsCiAgICAgICAgICAibm9kZSI6ICJ2MTYuMTMuMSIsCiAgICAgICAgICAib3MiOiAibGludXgiLAogICAgICAgICAgInlhcm4iOiAiMS4yMi4xNyIKICAgICAgICB9CiAgICAgIH0KICAgIH0sCiAgICAibWV0YWRhdGEiOiB7CiAgICAgICJidWlsZFN0YXJ0ZWRPbiI6ICIyMDIyLTAyLTIxVDE1OjU5OjQzLjU4MjMzMjA0OFoiLAogICAgICAiYnVpbGRGaW5pc2hlZE9uIjogIjIwMjItMDItMjFUMTY6MDA6MDQuNDkzMDUyMTIzWiIsCiAgICAgICJjb21wbGV0ZW5lc3MiOiB7CiAgICAgICAgImFyZ3VtZW50cyI6IHRydWUsCiAgICAgICAgImVudmlyb25tZW50IjogZmFsc2UsCiAgICAgICAgIm1hdGVyaWFscyI6IHRydWUKICAgICAgfSwKICAgICAgInJlcHJvZHVjaWJsZSI6IGZhbHNlCiAgICB9LAogICAgIm1hdGVyaWFscyI6IFsKICAgICAgewogICAgICAgICJ1cmkiOiAiZmlsZTovL2NvbXBvbmVudHMvZ2l0cG9kLXByb3RvY29sL3NyYy9hdXRoLnRzIiwKICAgICAgICAiZGlnZXN0IjogewogICAgICAgICAgInNoYTI1NiI6ICI4ODdlN2E3MWZjODE5ODQ1OTQ5MmU4NmVhNjdjMTM0MzY3YWZiYmZlZWQ4ZjIyNDI2MmVmN2VmMjYwNzQwNDg5IgogICAgICAgIH0KICAgICAgfSwKICAgICAgewogICAgICAgICJ1cmkiOiAiZmlsZTovL2NvbXBvbmVudHMvZ2l0cG9kLXByb3RvY29sL3NyYy91dGlsL2dpdHBvZC1ob3N0LXVybC50cyIsCiAgICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAgICJzaGEyNTYiOiAiMjBmZTE0N2ZlNTg2OTVkMDYxOGM4YTk3M2QzMzMyNTU5OTA4NWY0ODQ4NTI2M2U3NmNjNDJjMzliZWI0YzBiZCIKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAidXJpIjogImZpbGU6Ly9jb21wb25lbnRzL2dpdHBvZC1wcm90b2NvbC9zcmMvdXRpbC9jYW5jZWxhYmxlLnRzIiwKICAgICAgICAiZGlnZXN0IjogewogICAgICAgICAgInNoYTI1NiI6ICJhN2ViYzliNmFiNzk5Y2MwNjY5YTFlYzk1YjY4YjM5ODFkNTI2NTYwY2FjZDRlZTE1ZDZhZDE4MDM0MTIzODkzIgogICAgICAgIH0KICAgICAgfSwKICAgICAgewogICAgICAgICJ1cmkiOiAiZmlsZTovL2NvbXBvbmVudHMvZ2l0cG9kLXByb3RvY29sL3NyYy9tZXNzYWdpbmcvYnJvd3Nlci93aW5kb3ctY29ubmVjdGlvbi50cyIsCiAgICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAgICJzaGEyNTYiOiAiMjdjODdjODAzYjg0MmQ5ODFjZTJjMzVkOWY0OWZmZTQ5YWVmZjZhZjIwMzI4OTAzZTI0ZTljZDhmYTBmN2M1ZCIKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAidXJpIjogImZpbGU6Ly9jb21wb25lbnRzL2dpdHBvZC1wcm90b2NvbC9zcmMvdXRpbC9tYWtlLWxpbmsudHMiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogImY1ZDQ2ODQzYzlmZTRkYmU4NDdlZmRkMWUyNzAwYTQ2NmE1MjQxMjkyOTJlMTAwOWU5NWZkMTNmNmI0OTY3ODMiCiAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInVyaSI6ICJmaWxlOi8vY29tcG9uZW50cy9naXRwb2QtcHJvdG9jb2wvc3JjL3V0aWwvc2tpcC1pZi50cyIsCiAgICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAgICJzaGEyNTYiOiAiZDMyYzBhOTYyNDRhMjIzNWY0YmNmYTNiNDIyZmI4OTJhZGMxNTE1Y2YzZDM1MzY4MjFmMDljYWU3MmM0ZjE4OCIKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAidXJpIjogImZpbGU6Ly9jb21wb25lbnRzL2dpdHBvZC1wcm90b2NvbC9zcmMvdXRpbC9ldmVudC50cyIsCiAgICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAgICJzaGEyNTYiOiAiNzk1NzAwOTEzMTRlMDY1MDY1NGRiMDI0NWJlOTcwOWY4MGZiN2E0YmE1YWY3YzdhZTdkNWZiOGEwNjhiMDlhOCIKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAidXJpIjogImZpbGU6Ly9jb21wb25lbnRzL2dpdHBvZC1wcm90b2NvbC9zcmMvcGVybWlzc2lvbi50cyIsCiAgICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAgICJzaGEyNTYiOiAiMWE0MDZkZGE5MWY2MjkyNzJjYWY2NDllMmUyMTY3ZDQxMjEzZWFlMDljNzRkZTE3NzRlMmJjYWI0ZTBjY2NmNyIKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAidXJpIjogImZpbGU6Ly9jb21wb25lbnRzL2dpdHBvZC1wcm90b2NvbC9zcmMvaGVhZGxlc3Mtd29ya3NwYWNlLWxvZy50cyIsCiAgICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAgICJzaGEyNTYiOiAiNDQ1NzU0ZjM2NjBiYjJjYzQ2YmM5MWE4ZWI3Nzc0NTIwOTNlYzhhM2Y0MDZjZGYwODY4MDBjYjY0Yjk1MDdjZSIKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAidXJpIjogImZpbGU6Ly9jb21wb25lbnRzL2dpdHBvZC1wcm90b2NvbC9zcmMvdXRpbC9naXRwb2QtaG9zdC11cmwuc3BlYy50cyIsCiAgICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAgICJzaGEyNTYiOiAiNzZkNWM5MTM1NWRiMTU1YmFlMzIxNzUzZGYyNDk5NjRiMzZkYTcxNWQxZjQ2MjFkZmY5ZWI0NzY1ZDI2NzU5ZiIKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAidXJpIjogImZpbGU6Ly9jb21wb25lbnRzL2dpdHBvZC1wcm90b2NvbC9zcmMvdXRpbC9nZW5lcmF0ZS13b3Jrc3BhY2UtaWQudHMiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogIjRmYzJlNmM0ZTg2NjA5NWIwZDcyMjEyMTJkYWVjMmU4YWFkNThjOGIzNjU0ZDljYWFkZTBmOWY3NmQ1ZDNhNjgiCiAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInVyaSI6ICJmaWxlOi8vY29tcG9uZW50cy9naXRwb2QtcHJvdG9jb2wvc3JjL3V0aWwvZ3JwYy50cyIsCiAgICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAgICJzaGEyNTYiOiAiMWFhNTA0YzRmMWY3N2FlYTkwYjY4NTEyNzkwM2JmZDMxYmI1YjhiYjhkYjhlNGIwMzk0MzA1MzRiZGIyNmE5YSIKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAidXJpIjogImZpbGU6Ly9jb21wb25lbnRzL2dpdHBvZC1wcm90b2NvbC9zcmMvdXRpbC9hbmFseXRpY3MudHMiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogIjg4OWJmNDg3ODNjMmFjOTlhZjc1NTAzYjMxYTZlNzhjMDU3ODY0MDExMjM4OTAyZWQwYjk0MTJhYzNiZDJkZTEiCiAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInVyaSI6ICJmaWxlOi8vY29tcG9uZW50cy9naXRwb2QtcHJvdG9jb2wvc3JjL2FuYWx5dGljcy50cyIsCiAgICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAgICJzaGEyNTYiOiAiMGQwNjM3MjQ3MThlN2ZkMWI5NzE3ZTM2MWVjYTA1MGM1ZTZhNWU2NDJlZDUyZmZiZmNhZmM5YTM4OGY0OWI2YSIKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAidXJpIjogImZpbGU6Ly9jb21wb25lbnRzL2dpdHBvZC1wcm90b2NvbC9zcmMvaWRlLXByb3RvY29sLnRzIiwKICAgICAgICAiZGlnZXN0IjogewogICAgICAgICAgInNoYTI1NiI6ICIwNWUzYWNjMjBiMWMzMzgzYzEzMDIzYWE3YmE2ZmYxMmIwNjBiOWU2ZDcyZTE3NTI3NTkxMzA1YzU5MzNiNDk0IgogICAgICAgIH0KICAgICAgfSwKICAgICAgewogICAgICAgICJ1cmkiOiAiZmlsZTovL2NvbXBvbmVudHMvZ2l0cG9kLXByb3RvY29sL3NyYy9zbmFwc2hvdC11cmwuc3BlYy50cyIsCiAgICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAgICJzaGEyNTYiOiAiMTA1YTFhZTk5MmRhYjBmOTM1MDUyNGYzNjYwNDNlYzllYzI1OGQ0MDY5ZWFlNzk5ODJlMWVlNDcxOGI2YzkyNSIKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAidXJpIjogImZpbGU6Ly9jb21wb25lbnRzL2dpdHBvZC1wcm90b2NvbC9zcmMvZW1haWwtcHJvdG9jb2wudHMiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogImZmN2Y5NWZmNDMzN2Q0NzEwNGJmY2VlZDVlOGQ1MjY5ZGVhZjlmN2NiNDY4OWFlOWRkMGZjMTVlM2JiNmY1OWIiCiAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInVyaSI6ICJmaWxlOi8vY29tcG9uZW50cy9naXRwb2QtcHJvdG9jb2wvc3JjL2VuY3J5cHRpb24vZW5jcnlwdGlvbi1zZXJ2aWNlLnRzIiwKICAgICAgICAiZGlnZXN0IjogewogICAgICAgICAgInNoYTI1NiI6ICIxZDdlNGNjNDFkZTk4ZDYyNTZmMzJkZWNhYjAxOGM5Yjg5MzExNTczYzExNWNkNzkwZTRhNTIyMTUxYmVmYTFhIgogICAgICAgIH0KICAgICAgfSwKICAgICAgewogICAgICAgICJ1cmkiOiAiZmlsZTovL2NvbXBvbmVudHMvZ2l0cG9kLXByb3RvY29sL3NyYy9lbmNyeXB0aW9uL2NvbnRhaW5lci1tb2R1bGUudHMiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogImUwNTA2YmZhNzNiMzllYjU3YTM4MDYzNmY4YTZjYjIwMzYzNDgxNjM4MjI0Y2JjMjgwYmJhZDBkYjAwOTZlMTQiCiAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInVyaSI6ICJmaWxlOi8vY29tcG9uZW50cy9naXRwb2QtcHJvdG9jb2wvc3JjL3RoZWlhLXBsdWdpbnMudHMiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogImM5YzZlYzNhMTJhOWI5NzM4YTE0ZjI5NDc1MWM2MTg3ZGYxMjk0YTc1OWUyMzU4M2UxNmY4OWVlN2MyYjM1NmMiCiAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInVyaSI6ICJmaWxlOi8vY29tcG9uZW50cy9naXRwb2QtcHJvdG9jb2wvc3JjL3V0aWwvZ2FyYmFnZS1jb2xsZWN0ZWQtY2FjaGUudHMiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogImQzMzUxZjQ1ODViZjlkOGEyZWI2ZWQ2ZTRkOWQ4MjhlZGNlZTZhMTUyODcyMjcyODU0ZmFhNTkwYzMxNTVkMzQiCiAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInVyaSI6ICJmaWxlOi8vY29tcG9uZW50cy9naXRwb2QtcHJvdG9jb2wvbW9jaGEub3B0cyIsCiAgICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAgICJzaGEyNTYiOiAiZGQ1ZDNlMjEzN2U5ZGI4NTkzMmI5ZGI2YWMyN2QyNDNmNzU2NDkwNGI4MjA5ODVlMWE5NTI3YzU4ZmFkZTE2YSIKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAidXJpIjogImZpbGU6Ly9jb21wb25lbnRzL2dpdHBvZC1wcm90b2NvbC9zcmMvZ2l0cG9kLXNlcnZpY2UudHMiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogImJkMWIwYjQ3MzU5MTAxOWY2NTUzYzRjMTk2ZjdkMzc4YzcwYzYxOGM0ODFhMDk4MzRiYTAyMDNhNjJhMmNiYWYiCiAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInVyaSI6ICJmaWxlOi8vY29tcG9uZW50cy9naXRwb2QtcHJvdG9jb2wvc3JjL3RlYW1zLXByb2plY3RzLXByb3RvY29sLnRzIiwKICAgICAgICAiZGlnZXN0IjogewogICAgICAgICAgInNoYTI1NiI6ICIxYWIzZDFhMmEyZGM5ODc3ZjQwYjcwMWIyMTNmMjhjZWZiOTliNDY1ODEzMTk1NjcxYjkxODRlMGUxYTU5YTljIgogICAgICAgIH0KICAgICAgfSwKICAgICAgewogICAgICAgICJ1cmkiOiAiZmlsZTovL2NvbXBvbmVudHMvZ2l0cG9kLXByb3RvY29sL3NyYy91dGlsL2xvZ2dpbmcudHMiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogIjQ0Mjc4MjkzYTFjMTZlMGU3NzhjZDNlNzY1MTcyZGUyNWU1OGQxNmE0MzIzYjE5NGNkZDE5YWZkOGM1ZTBiNjYiCiAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInVyaSI6ICJmaWxlOi8vY29tcG9uZW50cy9naXRwb2QtcHJvdG9jb2wvdGVzdC9maXh0dXJlcy9lbmNyeXB0aW9uL3Rlc3RrZXkiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogIjhkZjBhMGFiZWJmZjVhOWY4ODdkNzczMzk1ZGM4OWQxZjNiY2U4ZTQyMWZiOGNjMTZkNzhlYTEwN2NkMWE1NDUiCiAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInVyaSI6ICJmaWxlOi8vY29tcG9uZW50cy9naXRwb2QtcHJvdG9jb2wvc3JjL2dpdHBvZC1maWxlLXBhcnNlci50cyIsCiAgICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAgICJzaGEyNTYiOiAiNDVkMzNmOTliZjgyMjdhYWM1YzdiODgwODFjNTRlMjU0Njg4Yzg5NTQ3OTFiNWZlYzNlOGY1NjRlMjI1MGNlMSIKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAidXJpIjogImZpbGU6Ly9jb21wb25lbnRzL2dpdHBvZC1wcm90b2NvbC9zcmMvcGxhbnMudHMiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogImE3OTZmNDVmMWYxN2M4YTM0NmFjZjIwMzk0MDU4Y2RlZmQ0YWE3MGQzNjdjNThiMzAyMGI3ZjdlZTVjNTYzN2IiCiAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInVyaSI6ICJmaWxlOi8vY29tcG9uZW50cy9naXRwb2QtcHJvdG9jb2wvc3JjL3dvcmtzcGFjZS1jbHVzdGVyLnRzIiwKICAgICAgICAiZGlnZXN0IjogewogICAgICAgICAgInNoYTI1NiI6ICI4ODdhOTI2MDZlZjk2Nzc4YTQxMGE4MjdjM2FhODA0MzQ1NWM1NWNlNmZlMmE0ZGE3MzM0NTI3OTRmZWQzNjg0IgogICAgICAgIH0KICAgICAgfSwKICAgICAgewogICAgICAgICJ1cmkiOiAiZmlsZTovL2NvbXBvbmVudHMvZ2l0cG9kLXByb3RvY29sL3NyYy91dGlsL2phZWdlci1jbGllbnQtdHlwZXMudHMiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogImRiNzhjYzFhYThmMTNjZjlkNTNmMjUxNWE4ZTMwNzE2ZjcyNjdhZjk3ZTU5N2E0NzFjNTQ0YzQ1NDdiZDgwZWMiCiAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInVyaSI6ICJmaWxlOi8vY29tcG9uZW50cy9naXRwb2QtcHJvdG9jb2wvZGF0YS9idWlsdGluLXRoZWlhLXBsdWdpbnMuanNvbiIsCiAgICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAgICJzaGEyNTYiOiAiYzQ4OWY3NGU3MWE3YzczNWFjNzI2ZDAwZjM2ZTQwNTM5M2FhZGM5YzBjODJhOTUxZTllOWNkMGQwYzQ2ZGRmNCIKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAidXJpIjogImZpbGU6Ly9jb21wb25lbnRzL2dpdHBvZC1wcm90b2NvbC9zcmMvdHlwaW5ncy9nbG9iYWxzLnRzIiwKICAgICAgICAiZGlnZXN0IjogewogICAgICAgICAgInNoYTI1NiI6ICI2Mjc4N2NiMjJlNTU5ZTBiMGRhZWQ3OTBhNjljMzVmYmNkNmIzN2Y0YjkyYTM3ZmI5ZWQzMzZhYmY4NjBkMWQyIgogICAgICAgIH0KICAgICAgfSwKICAgICAgewogICAgICAgICJ1cmkiOiAiZmlsZTovL3lhcm4ubG9jayIsCiAgICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAgICJzaGEyNTYiOiAiNjY4YjlmOGRiNGNkNjJjZjc2OGU3ZjkwMDgyYmE4ZmVlNGU2NTA5MWE1NDMwYWQ4NGYwNWE3ZjgyMmEyZDM3YyIKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAidXJpIjogImZpbGU6Ly9jb21wb25lbnRzL2dpdHBvZC1wcm90b2NvbC9zcmMvYWRtaW4tcHJvdG9jb2wudHMiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogImUzYWI2ODc5YzM0MDAwYmUzOGU3NTJhN2UwOWZiNjI5YjNjOGJkOGJlODliYjQ3YWQyMjgwNWJiNjExNzVhZDkiCiAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInVyaSI6ICJmaWxlOi8vY29tcG9uZW50cy9naXRwb2QtcHJvdG9jb2wvc3JjL2NvbnRleHQtdXJsLnNwZWMudHMiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogImY1MjM3ODQwZDU0NmYzNTIwZmM2NjBiYjZjZjEwNTUwNzY3OTE3OTY4MDMwOTBiYzhiMjljY2EzZjMxMWQwODciCiAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInVyaSI6ICJmaWxlOi8vY29tcG9uZW50cy9naXRwb2QtcHJvdG9jb2wvc3JjL2luc3RhbGxhdGlvbi1hZG1pbi1wcm90b2NvbC50cyIsCiAgICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAgICJzaGEyNTYiOiAiMDFlZGRlMmIxNjEyOGExZGVjOWRmYTI4NzdkYjkwZmIzMDM1YTQ2ZDRhMmMwNmZhZWM5YjBkZDA4NDM5YjAxOSIKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAidXJpIjogImZpbGU6Ly9jb21wb25lbnRzL2dpdHBvZC1wcm90b2NvbC9zcmMvZW5jcnlwdGlvbi9lbmNyeXB0aW9uLWVuZ2luZS50cyIsCiAgICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAgICJzaGEyNTYiOiAiMGI4NjAyNTRiODBlZjkxNzdmOGUyNjZkMDNjMDM1NzZkZTkwZDk3OTI5NjE3ODE1MDhiMTgwZTRmNmIzNGEyZCIKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAidXJpIjogImZpbGU6Ly9jb21wb25lbnRzL2dpdHBvZC1wcm90b2NvbC9zcmMvdXRpbC9xdWV1ZS5zcGVjLnRzIiwKICAgICAgICAiZGlnZXN0IjogewogICAgICAgICAgInNoYTI1NiI6ICI3NjhkZjg2ZDRmZGFkYmU2NDNkMzk3YWY1MWM0ZDJjYjI3NTU0YTFmM2Y2YzgxNzBlZDI2ZjMzMmJlNTNjNDg1IgogICAgICAgIH0KICAgICAgfSwKICAgICAgewogICAgICAgICJ1cmkiOiAiZmlsZTovL2NvbXBvbmVudHMvZ2l0cG9kLXByb3RvY29sL3NyYy91dGlsL3JlcGVhdC50cyIsCiAgICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAgICJzaGEyNTYiOiAiYTE1MmVmOWNmZTU5M2VlOGNiM2RlZDMzNTM1ZGIwZDViMzRjNmU5MWNiNDcxYTdkNmEyMTEwM2IzNjE1MTU3OCIKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAidXJpIjogImZpbGU6Ly9jb21wb25lbnRzL2dpdHBvZC1wcm90b2NvbC9zcmMvdXRpbC9nZW5lcmF0ZS13b3Jrc3BhY2UtaWQuc3BlYy50cyIsCiAgICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAgICJzaGEyNTYiOiAiMjBhZGRhZjVmZjUyMDQ0ZDc2YTc5NzVjNDUxYTM0MWFjOTYxY2U5MzEzYjE2NGQ1NDIxNTY3OGRmN2IxN2FjOSIKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAidXJpIjogImZpbGU6Ly9jb21wb25lbnRzL2dpdHBvZC1wcm90b2NvbC9zcmMvbWVzc2FnaW5nL2NsaWVudC1jYWxsLW1ldHJpY3MudHMiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogIjA1NDEyNGE3MzlkNjE1ODdmYjI5ZWFjMjdhNTlkMDViZWJmNmEwY2ZiNjNmZjhhMDZjNGQ0N2JiY2EyZTJlODAiCiAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInVyaSI6ICJmaWxlOi8vY29tcG9uZW50cy9naXRwb2QtcHJvdG9jb2wvc3JjL2luZGV4LnRzIiwKICAgICAgICAiZGlnZXN0IjogewogICAgICAgICAgInNoYTI1NiI6ICJhYjEwYzI0NzgxMTJiMTg4MjBmNGUzOThjMjRmNTZlMzcwMzI0ZjIzZDhmZjY4N2VmZDE0ZTExMzliYTIyNzIwIgogICAgICAgIH0KICAgICAgfSwKICAgICAgewogICAgICAgICJ1cmkiOiAiZmlsZTovL2NvbXBvbmVudHMvZ2l0cG9kLXByb3RvY29sL3NyYy9jb250ZXh0LXVybC50cyIsCiAgICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAgICJzaGEyNTYiOiAiZDM3MWMxYzcxZWVhMTY0OTgxOTMzZmVlZWFkYzY0YTA1NjE0MWE3ODk3MjE1NzBiZDU2MjI5ZmJlMDQ1Y2RhYiIKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAidXJpIjogImZpbGU6Ly9jb21wb25lbnRzL2dpdHBvZC1wcm90b2NvbC9zcmMvZW52LnRzIiwKICAgICAgICAiZGlnZXN0IjogewogICAgICAgICAgInNoYTI1NiI6ICI0NjUyMzdkZGRlNTFjN2VmOGIwZTdmZjJjM2M2Mzc1ODY4NWM2MDdhMzk5YzIyZWM3M2VjNGQwNzA1ZWJjMzMzIgogICAgICAgIH0KICAgICAgfSwKICAgICAgewogICAgICAgICJ1cmkiOiAiZmlsZTovL2NvbXBvbmVudHMvZ2l0cG9kLXByb3RvY29sL3NyYy91dGlsL2RlZXAtcGFydGlhbC50cyIsCiAgICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAgICJzaGEyNTYiOiAiOWRhMjMyZDE0OWE3NTA0YjA3ZDQzNmZkMWI5ODk2ZmE2MjYzM2UyNzRkNmZjOTg3Njg3YWRkOWMxZmY3YTk0ZCIKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAidXJpIjogImZpbGU6Ly9jb21wb25lbnRzL2dpdHBvZC1wcm90b2NvbC9zcmMvdXRpbC9kYXRlLXRpbWUudHMiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogIjg0ZDY2NGRlOGFlNDRjMDhlZGU4YTNkNjVkNzQ0ZmIzODBkYTI0OWIxNDg2MTdmMGE1YjZiZTBhMDIyYzYxMDkiCiAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInVyaSI6ICJmaWxlOi8vY29tcG9uZW50cy9naXRwb2QtcHJvdG9jb2wvc3JjL3V0aWwvc2VtYXBob3JlLnRzIiwKICAgICAgICAiZGlnZXN0IjogewogICAgICAgICAgInNoYTI1NiI6ICIzZGFjMjdkZWUyZTJmN2IwOTRiYTQ3OTRjYWFiZTVhM2I4NDIyMTAwM2MxMDg4OTE3NTZhZTJiYmQzMTZlOGE2IgogICAgICAgIH0KICAgICAgfSwKICAgICAgewogICAgICAgICJ1cmkiOiAiZmlsZTovL2NvbXBvbmVudHMvZ2l0cG9kLXByb3RvY29sL3NyYy91dGlsL2Rpc3Bvc2FibGUudHMiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogImRkYzMxN2Q5YmI1YTc2ZjM4NTQ4ZDE4MmE4ZGQ2NmVhYjk3OWVkNGZiNWM2MDg2MzJkNzE4YmVjNjYyODA3NjEiCiAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInVyaSI6ICJmaWxlOi8vY29tcG9uZW50cy9naXRwb2QtcHJvdG9jb2wvc3JjL3NuYXBzaG90LXVybC50cyIsCiAgICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAgICJzaGEyNTYiOiAiYWIxM2JiZDhkNzFmMjU4ZDhmYWMxMWFhYWNmYjdmMzRiYzljM2JkNzRjNjVkYTJmMGMwMzg0M2JjNTI2NGJlOSIKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAidXJpIjogImZpbGU6Ly9jb21wb25lbnRzL2dpdHBvZC1wcm90b2NvbC9zcmMvbWVzc2FnaW5nL2Vycm9yLnRzIiwKICAgICAgICAiZGlnZXN0IjogewogICAgICAgICAgInNoYTI1NiI6ICIwODYzZGFhMzIwNjk4MzM5MDkxZTNhYTFiZTc3ZWJiMjE2MmQ5ZjdkYTU2ZmM5MjgzZDVkYjNmMTMyMmU0YjllIgogICAgICAgIH0KICAgICAgfSwKICAgICAgewogICAgICAgICJ1cmkiOiAiZmlsZTovL2NvbXBvbmVudHMvZ2l0cG9kLXByb3RvY29sL3NyYy9saWNlbnNlLXByb3RvY29sLnRzIiwKICAgICAgICAiZGlnZXN0IjogewogICAgICAgICAgInNoYTI1NiI6ICI5MmJiNGM5ODQ5ODYxZmQ0M2RlYmZlZmE1MzhjOWNiOWRlZDA5ZmMxY2JkNDc2MjYxMjBkMjM5OGExMjdjNDhlIgogICAgICAgIH0KICAgICAgfSwKICAgICAgewogICAgICAgICJ1cmkiOiAiZmlsZTovL2NvbXBvbmVudHMvZ2l0cG9kLXByb3RvY29sL3NyYy91dGlsL3RyYWNpbmcudHMiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogIjJhYTk5MDhkNmY4NjkyNmIzOTUwNjg4NDA3MWUwMGFjNDE1Yjc0MTQ4YzRjNWE1YWYyYjRhZjhiMGYyMzcyY2IiCiAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInVyaSI6ICJmaWxlOi8vY29tcG9uZW50cy9naXRwb2QtcHJvdG9jb2wvc3JjL3V0aWwvdGltZXV0aWwudHMiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogImI5YzU0ZTNiODRlYzMxOWIzNDI1YzFmYmRhOTY4ZTY3MWRkYzY2ZjQyYjJmMTkzZDcyNjZiNTEzMjQ1NzUyNGUiCiAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInVyaSI6ICJmaWxlOi8vY29tcG9uZW50cy9naXRwb2QtcHJvdG9jb2wvc3JjL3V0aWwvYXN5bmMtaXRlcmF0b3IudHMiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogIjE5ODcyYWFkZDVlYzQ3NjdhODYzNWE0YzIzNDVhZTUzNzc1ZWQyM2RmOTFkYWE0ZWUwNzIxYWM3YjZkMDA2MjUiCiAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInVyaSI6ICJmaWxlOi8vY29tcG9uZW50cy9naXRwb2QtcHJvdG9jb2wvc3JjL3V0aWwvdHJhY2luZy5zcGVjLnRzIiwKICAgICAgICAiZGlnZXN0IjogewogICAgICAgICAgInNoYTI1NiI6ICIwZjgzNGNlOTEwODU3MDU5MDZhOWE1MWI3ZTQ4ZDY2ZTQ5ZDk3M2YzZjkxOWZiM2EyYWU2NjE3YzU2ZThmZjI0IgogICAgICAgIH0KICAgICAgfSwKICAgICAgewogICAgICAgICJ1cmkiOiAiZmlsZTovL2NvbXBvbmVudHMvZ2l0cG9kLXByb3RvY29sL3NyYy93c3JlYWR5LnRzIiwKICAgICAgICAiZGlnZXN0IjogewogICAgICAgICAgInNoYTI1NiI6ICJhNjExNmJjYmQxNTE3MmVjN2Q5MmQwZjYxNmM5NmRlZDdiZTdkMjMwMmQyNmE3Nzk4MDgzZjM3YWQ0OGUzMjI1IgogICAgICAgIH0KICAgICAgfSwKICAgICAgewogICAgICAgICJ1cmkiOiAiZmlsZTovL2NvbXBvbmVudHMvZ2l0cG9kLXByb3RvY29sL3NyYy9hY2NvdW50aW5nLXByb3RvY29sLnRzIiwKICAgICAgICAiZGlnZXN0IjogewogICAgICAgICAgInNoYTI1NiI6ICI4MjRlYTYyZDI4ODhmMjE2MTQ1OGQyYTM0ZTgzYmQyNDc1MWFhN2NhMjljZjczZWMyZDgyNmUwNzNlM2YzYWZmIgogICAgICAgIH0KICAgICAgfSwKICAgICAgewogICAgICAgICJ1cmkiOiAiZmlsZTovL2NvbXBvbmVudHMvZ2l0cG9kLXByb3RvY29sL3NyYy91dGlsL3BhcnNlLXdvcmtzcGFjZS1pZC50cyIsCiAgICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAgICJzaGEyNTYiOiAiNDU1Yzc2OGQ1MTAzYTA1NjMxNmJlNDk2MzBmOTkzMzk4OTIyYjM2NzNmY2QxYzQzYzE3ZTU0NDE1ZDA5NGY2OSIKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAidXJpIjogImZpbGU6Ly9jb21wb25lbnRzL2dpdHBvZC1wcm90b2NvbC90c2NvbmZpZy5qc29uIiwKICAgICAgICAiZGlnZXN0IjogewogICAgICAgICAgInNoYTI1NiI6ICIzODk1NDM0NzFkODMzOGViY2E3MGQ3OTg3MjZmOTE5N2U0MjNlYjQyYmUzZWJjZTI4ZDQxOTFjNWZhMzM5YmQ5IgogICAgICAgIH0KICAgICAgfSwKICAgICAgewogICAgICAgICJ1cmkiOiAiZmlsZTovL2NvbXBvbmVudHMvZ2l0cG9kLXByb3RvY29sL3NyYy9tZXNzYWdpbmcvaGFuZGxlci50cyIsCiAgICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAgICJzaGEyNTYiOiAiNWQ0M2VmN2ZkMmEzZTA4YzU1MGMwYjBmYWYwOWFhMmY2MmJiZmE2MTU4Nzk2MDBhYzZjZDg2NTMyODIxMTI1YiIKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAidXJpIjogImZpbGU6Ly9jb21wb25lbnRzL2dpdHBvZC1wcm90b2NvbC9zcmMvaWRlLWZyb250ZW5kLXNlcnZpY2UudHMiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogImQ3NjcxYmY5MzJhYmIwNTYyNzE1N2NjYjhkMDM3Mjk4MDRlMmY2ZThmOWI3YmNkZTg2ZDk1MzIwZTA2ZDMxNTkiCiAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInVyaSI6ICJmaWxlOi8vY29tcG9uZW50cy9naXRwb2QtcHJvdG9jb2wvc3JjL21lc3NhZ2luZy9icm93c2VyL2Nvbm5lY3Rpb24udHMiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogIjVmMWRkZjc1MzNjYzI3YzgyZDcyYzljZDJhYmExOGU1MDhmOTRkYWRkYjY0ZDlkNmFiMGI3M2U0YTg2MThjYzIiCiAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInVyaSI6ICJmaWxlOi8vY29tcG9uZW50cy9naXRwb2QtcHJvdG9jb2wvc3JjL21lc3NhZ2luZy9ub2RlL2Nvbm5lY3Rpb24udHMiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogImFiMGIxNjU0YTU5MDk2MTljZTEzOWJiYTBjYWJmNWNiNWFlOGIwZjE1YWI4MjFjYzA3NTM5MzNhMjE4OGNkMDciCiAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInVyaSI6ICJmaWxlOi8vY29tcG9uZW50cy9naXRwb2QtcHJvdG9jb2wvc3JjL2VuY3J5cHRpb24va2V5LXByb3ZpZGVyLnRzIiwKICAgICAgICAiZGlnZXN0IjogewogICAgICAgICAgInNoYTI1NiI6ICI1MTgzNDE1YjMyM2NiN2ZjZTRhNzMzMThiYWZiNTFlNTQzNTFkODU3NjUxN2FhODlmZjhmNjcxMjNkNzJjMTA1IgogICAgICAgIH0KICAgICAgfSwKICAgICAgewogICAgICAgICJ1cmkiOiAiZmlsZTovL2NvbXBvbmVudHMvZ2l0cG9kLXByb3RvY29sL2RhdGEvZ2l0cG9kLXNjaGVtYS5qc29uIiwKICAgICAgICAiZGlnZXN0IjogewogICAgICAgICAgInNoYTI1NiI6ICJjNWVmN2E5YzhjZjJiODdhODhkOGVlMWEwYzUwOTRmY2Q2ZDJjZmEwMDI5MjBlZWEyYzFkN2YxZDY2MjRmOTQwIgogICAgICAgIH0KICAgICAgfSwKICAgICAgewogICAgICAgICJ1cmkiOiAiZmlsZTovL2NvbXBvbmVudHMvZ2l0cG9kLXByb3RvY29sL3NyYy9tZXNzYWdpbmcvcHJveHktZmFjdG9yeS50cyIsCiAgICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAgICJzaGEyNTYiOiAiYTk3NTNmZDQwOTM1OWY5MzNjMjIyYjNiODgzOTFkMmQ3OGU2OTQ4NGFlMDVkOTJlODVlZjE1ZTk3NjM2N2M2NyIKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAidXJpIjogImZpbGU6Ly9jb21wb25lbnRzL2dpdHBvZC1wcm90b2NvbC9zcmMvZW5jcnlwdGlvbi9lbmNyeXB0aW9uLWVuZ2luZS5zcGVjLnRzIiwKICAgICAgICAiZGlnZXN0IjogewogICAgICAgICAgInNoYTI1NiI6ICI4NWQxZTZkNmVmNjYyOTQwZDZiZWU3MWIzNzYyZGIxYTZkYTUwMjk2MWM2ZmRkMDc3Mjk3Zjk4YWNmMmNiODIyIgogICAgICAgIH0KICAgICAgfSwKICAgICAgewogICAgICAgICJ1cmkiOiAiZmlsZTovL2NvbXBvbmVudHMvZ2l0cG9kLXByb3RvY29sL3NyYy91dGlsL3F1ZXVlLnRzIiwKICAgICAgICAiZGlnZXN0IjogewogICAgICAgICAgInNoYTI1NiI6ICJiZDVlMzFiNzk0M2U2ZTE4NWEwZjU0ODAyOGNhMzg1MGU1ZDA0MDE0YjIxMTE4YjFiYmQwYWQ1ZWNlMjQzMDIwIgogICAgICAgIH0KICAgICAgfSwKICAgICAgewogICAgICAgICJ1cmkiOiAiZmlsZTovL2NvbXBvbmVudHMvZ2l0cG9kLXByb3RvY29sL3NyYy91dGlsL3dvcmtzcGFjZS1wb3J0LWF1dGhlbnRpY2F0aW9uLnRzIiwKICAgICAgICAiZGlnZXN0IjogewogICAgICAgICAgInNoYTI1NiI6ICJkNzQ5N2Y4OTMxMjdmYThhNmY2NDAyYjQyMzBhNWYxMzYwMDlhZTZkMDM5NTRlZjVhY2JlYWNiNTQzNmZhOGE1IgogICAgICAgIH0KICAgICAgfSwKICAgICAgewogICAgICAgICJ1cmkiOiAiZmlsZTovL2NvbXBvbmVudHMvZ2l0cG9kLXByb3RvY29sL3NyYy90ZWFtLXN1YnNjcmlwdGlvbi1wcm90b2NvbC50cyIsCiAgICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAgICJzaGEyNTYiOiAiYmYzYThkMjUzMzJiZTY5YzhiYmQxMWUxY2M0Y2FjMmYxMDNkOGQ5NWUyN2E0NmIyNmRiNjU0NzdkMTYyZTIwNyIKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAidXJpIjogImZpbGU6Ly9jb21wb25lbnRzL2dpdHBvZC1wcm90b2NvbC9zcmMvcHJvdG9jb2wudHMiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogIjQ3NTk1NTgzNTg2MGIyMmFhODBiMzEwZjdjMTRkZWFjZmNhZjJiZDZmY2Y1ZTY1MzM2YzBhNzRlMGRiMWVkY2QiCiAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInVyaSI6ICJmaWxlOi8vY29tcG9uZW50cy9naXRwb2QtcHJvdG9jb2wvc3JjL3BheW1lbnQtcHJvdG9jb2wudHMiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogIjJhYzk2YTdmMDc5YWQ0YTI5ZjdjOTQ0M2I2ZjYzOWM0YTk3YjZhYjM1NzkzNWEzMjhkYTZiNDk0Njc4Y2M3YTAiCiAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInVyaSI6ICJmaWxlOi8vY29tcG9uZW50cy9naXRwb2QtcHJvdG9jb2wvc3JjL3V0aWwvcGFyc2Utd29ya3NwYWNlLWlkLnNwZWMudHMiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogIjVmNTFhYzIyMTk3MTg5Y2YzNzFkNTk3NGI4YmQ4OTZlMzQzN2I5ODQxNWE3ZDUwNTFjYTgyNWNhMzE0Nzg4NGUiCiAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInVyaSI6ICJmaWxlOi8vY29tcG9uZW50cy9naXRwb2QtcHJvdG9jb2wvc3JjL3V0aWwvZGVmZXJyZWQudHMiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogImQ1ODU5MmM5NDY3YTFjN2UyZDNhNzIwODc2YjY4YzdjMWNjMmNjMWUxZTMxM2EyNjAzMzFjNWIyOGQyM2FmZDgiCiAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInVyaSI6ICJmaWxlOi8vY29tcG9uZW50cy9naXRwb2QtcHJvdG9jb2wvcGFja2FnZS5qc29uIiwKICAgICAgICAiZGlnZXN0IjogewogICAgICAgICAgInNoYTI1NiI6ICI5MTkyMTY0YWFjYzY1N2NmMzA2ZDc5OGFmNzFiOWY2MGRkYjY0NmFhODkyNmU4MTVmNTQ1ZmViYmI4OWQ5MjM1IgogICAgICAgIH0KICAgICAgfSwKICAgICAgewogICAgICAgICJ1cmkiOiAiZmlsZTovL2NvbXBvbmVudHMvZ2l0cG9kLXByb3RvY29sL3NyYy93b3Jrc3BhY2UtaW5zdGFuY2UudHMiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogImMwNTA1NDQ4NWY3ZjljNWE3ZTVhOWQwZDQ1NGM3NWNmMjMxY2YxNzNjNzgxMjAyYmFiNDQ0ZmEyZmEwODUxMzEiCiAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInVyaSI6ICJmaWxlOi8vY29tcG9uZW50cy9naXRwb2QtcHJvdG9jb2wvc3JjL29zcy1hbGxvd2xpc3QudHMiLAogICAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgICAic2hhMjU2IjogImI5YjMyYzY4OWZkZWVhZWJkNTk4M2IyNmU1ODYzNjUwYTM3N2RjZTM0MTk4ODljMjdmNWI2NDk1YzA1ZmNiNGIiCiAgICAgICAgfQogICAgICB9LAogICAgICB7CiAgICAgICAgInVyaSI6ICJmaWxlOi8vY29tcG9uZW50cy9naXRwb2QtcHJvdG9jb2wvc3JjL3V0aWwvZ2l0cG9kLWNvb2tpZS50cyIsCiAgICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAgICJzaGEyNTYiOiAiMzRmYmUzMmE1NDViN2Y2M2JiNThiZDZmZmJiYTFjZGQ5OWRhMWVjZGNlZGI0NGQ0ZDk1MTE0NDE4YzMxYTljMyIKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAidXJpIjogImZpbGU6Ly9jb21wb25lbnRzL2dpdHBvZC1wcm90b2NvbC9zcmMvdXRpbC90aW1ldXRpbC5zcGVjLnRzIiwKICAgICAgICAiZGlnZXN0IjogewogICAgICAgICAgInNoYTI1NiI6ICI5N2U4YzBiZDMxN2U5YjVmZDhmMDZiMTAxYWM5MjBlNzMyMzBhNjA0OWZiYWVhNTdmMjY4MmI2NWUyMGMxNDdjIgogICAgICAgIH0KICAgICAgfSwKICAgICAgewogICAgICAgICJ1cmkiOiAiZmlsZTovL2NvbXBvbmVudHMvZ2l0cG9kLXByb3RvY29sL3NyYy9naXRwb2QtZmlsZS1wYXJzZXIuc3BlYy50cyIsCiAgICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAgICJzaGEyNTYiOiAiMGE2OWJjNGIzM2Q4MGIyMDE1MWYyMGRiMTJlYzljZjgwODA5MjE3Yzk5Y2U4ODUwYmY0MjkyZDg1MzBiZGE0MSIKICAgICAgICB9CiAgICAgIH0sCiAgICAgIHsKICAgICAgICAidXJpIjogImZpbGU6Ly9jb21wb25lbnRzL2dpdHBvZC1wcm90b2NvbC9CVUlMRC55YW1sIiwKICAgICAgICAiZGlnZXN0IjogewogICAgICAgICAgInNoYTI1NiI6ICJjN2UyZTllOTc1NGFjMGI0OTIyYmNkODE5YTA2ODk3MTc3YWViOTY1ZjM0MTdiNDhjMDliYjg2ZjQ0ZWU1MDhhIgogICAgICAgIH0KICAgICAgfSwKICAgICAgewogICAgICAgICJ1cmkiOiAiZmlsZTovL1dPUktTUEFDRS55YW1sIiwKICAgICAgICAiZGlnZXN0IjogewogICAgICAgICAgInNoYTI1NiI6ICJhMDQ0MWVmYjJhMWY3MDVmYjgzNThhODdhZmVjOGU3ZGU5NjE1YjUxZTgwMzZkNDQxM2ViNDhhMmM3MWNmYzM4IgogICAgICAgIH0KICAgICAgfQogICAgXQogIH0KfQ==","signatures":null}
|
|
2
|
+
|
|
@@ -4,8 +4,7 @@
|
|
|
4
4
|
* See License-AGPL.txt in the project root for license information.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import
|
|
8
|
-
import { Without } from "./util/without";
|
|
7
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
9
8
|
import { User } from './protocol';
|
|
10
9
|
import { oneMonthLater } from './util/timeutil';
|
|
11
10
|
|
|
@@ -47,7 +46,7 @@ export interface AccountEntry {
|
|
|
47
46
|
description?: object;
|
|
48
47
|
}
|
|
49
48
|
export namespace AccountEntry {
|
|
50
|
-
export function create<T extends AccountEntry>(entry:
|
|
49
|
+
export function create<T extends AccountEntry>(entry: Omit<T, 'uid'>): T {
|
|
51
50
|
const result = entry as T;
|
|
52
51
|
result.uid = uuidv4();
|
|
53
52
|
return result;
|
|
@@ -91,7 +90,6 @@ export interface SessionDescription {
|
|
|
91
90
|
contextUrl: string;
|
|
92
91
|
workspaceId: string;
|
|
93
92
|
workspaceInstanceId: string;
|
|
94
|
-
private: boolean;
|
|
95
93
|
}
|
|
96
94
|
export namespace SessionDescription {
|
|
97
95
|
export function is(obj: any): obj is SessionDescription {
|
|
@@ -100,7 +98,6 @@ export namespace SessionDescription {
|
|
|
100
98
|
&& obj.hasOwnProperty('contextUrl')
|
|
101
99
|
&& obj.hasOwnProperty('workspaceId')
|
|
102
100
|
&& obj.hasOwnProperty('workspaceInstanceId')
|
|
103
|
-
&& obj.hasOwnProperty('private');
|
|
104
101
|
}
|
|
105
102
|
}
|
|
106
103
|
|
|
@@ -164,7 +161,7 @@ export namespace AssignedTeamSubscription {
|
|
|
164
161
|
}
|
|
165
162
|
|
|
166
163
|
export namespace Subscription {
|
|
167
|
-
export function create(newSubscription:
|
|
164
|
+
export function create(newSubscription: Omit<Subscription, 'uid'>) {
|
|
168
165
|
const subscription = newSubscription as Subscription;
|
|
169
166
|
subscription.uid = uuidv4();
|
|
170
167
|
return subscription;
|
|
@@ -193,9 +190,6 @@ export namespace Subscription {
|
|
|
193
190
|
export function isDowngraded(s: Subscription) {
|
|
194
191
|
return s.paymentData && s.paymentData.downgradeDate;
|
|
195
192
|
};
|
|
196
|
-
export function isCancelled(s: Subscription) {
|
|
197
|
-
return !!s.cancellationDate;
|
|
198
|
-
};
|
|
199
193
|
export function calculateCurrentPeriod(startDate: string, now: Date) {
|
|
200
194
|
let nextStartDate = startDate;
|
|
201
195
|
do {
|
|
@@ -215,7 +209,7 @@ export interface Period {
|
|
|
215
209
|
|
|
216
210
|
export type MaybePeriod = Period | undefined;
|
|
217
211
|
|
|
218
|
-
export type AccountEntryFixedPeriod =
|
|
212
|
+
export type AccountEntryFixedPeriod = Omit<AccountEntry, 'uid'> & { expiryDate: string };
|
|
219
213
|
export interface AccountStatement extends Period {
|
|
220
214
|
userId: string;
|
|
221
215
|
/**
|
package/src/admin-protocol.ts
CHANGED
|
@@ -5,10 +5,13 @@
|
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
import { User, Workspace, NamedWorkspaceFeatureFlag } from "./protocol";
|
|
8
|
-
import {
|
|
8
|
+
import { FindPrebuildsParams } from "./gitpod-service";
|
|
9
|
+
import { PrebuildWithStatus } from "./teams-projects-protocol"
|
|
10
|
+
import { Project, Team } from "./teams-projects-protocol";
|
|
9
11
|
import { WorkspaceInstance, WorkspaceInstancePhase } from "./workspace-instance";
|
|
10
12
|
import { RoleOrPermission } from "./permission";
|
|
11
13
|
import { AccountStatement } from "./accounting-protocol";
|
|
14
|
+
import { InstallationAdminSettings } from "./installation-admin-protocol";
|
|
12
15
|
|
|
13
16
|
export interface AdminServer {
|
|
14
17
|
adminGetUsers(req: AdminGetListRequest<User>): Promise<AdminGetListResult<User>>;
|
|
@@ -18,16 +21,27 @@ export interface AdminServer {
|
|
|
18
21
|
adminModifyRoleOrPermission(req: AdminModifyRoleOrPermissionRequest): Promise<User>;
|
|
19
22
|
adminModifyPermanentWorkspaceFeatureFlag(req: AdminModifyPermanentWorkspaceFeatureFlagRequest): Promise<User>;
|
|
20
23
|
|
|
24
|
+
adminGetTeamById(id: string): Promise<Team | undefined>;
|
|
25
|
+
|
|
21
26
|
adminGetWorkspaces(req: AdminGetWorkspacesRequest): Promise<AdminGetListResult<WorkspaceAndInstance>>;
|
|
22
27
|
adminGetWorkspace(id: string): Promise<WorkspaceAndInstance>;
|
|
23
28
|
adminForceStopWorkspace(id: string): Promise<void>;
|
|
29
|
+
adminRestoreSoftDeletedWorkspace(id: string): Promise<void>;
|
|
30
|
+
|
|
31
|
+
adminGetProjectsBySearchTerm(req: AdminGetListRequest<Project>): Promise<AdminGetListResult<Project>>;
|
|
32
|
+
adminGetProjectById(id: string): Promise<Project | undefined>;
|
|
24
33
|
|
|
34
|
+
adminFindPrebuilds(params: FindPrebuildsParams): Promise<PrebuildWithStatus[]>;
|
|
25
35
|
adminSetLicense(key: string): Promise<void>;
|
|
26
36
|
|
|
27
37
|
adminGetAccountStatement(userId: string): Promise<AccountStatement>;
|
|
28
38
|
adminSetProfessionalOpenSource(userId: string, shouldGetProfOSS: boolean): Promise<void>;
|
|
29
39
|
adminIsStudent(userId: string): Promise<boolean>;
|
|
30
40
|
adminAddStudentEmailDomain(userId: string, domain: string): Promise<void>;
|
|
41
|
+
adminGrantExtraHours(userId: string, extraHours: number): Promise<void>;
|
|
42
|
+
|
|
43
|
+
adminGetSettings(): Promise<InstallationAdminSettings>
|
|
44
|
+
adminUpdateSettings(settings: InstallationAdminSettings): Promise<void>
|
|
31
45
|
}
|
|
32
46
|
|
|
33
47
|
export interface AdminGetListRequest<T> {
|
|
@@ -64,7 +78,7 @@ export interface AdminModifyPermanentWorkspaceFeatureFlagRequest {
|
|
|
64
78
|
}[]
|
|
65
79
|
}
|
|
66
80
|
|
|
67
|
-
export interface WorkspaceAndInstance extends
|
|
81
|
+
export interface WorkspaceAndInstance extends Omit<Workspace, "id" | "creationTime">, Omit<WorkspaceInstance, "id" | "creationTime"> {
|
|
68
82
|
workspaceId: string;
|
|
69
83
|
workspaceCreationTime: string;
|
|
70
84
|
instanceId: string;
|
|
@@ -72,6 +86,33 @@ export interface WorkspaceAndInstance extends Without<Workspace, "id"|"creationT
|
|
|
72
86
|
phase: WorkspaceInstancePhase;
|
|
73
87
|
}
|
|
74
88
|
|
|
75
|
-
export
|
|
76
|
-
|
|
77
|
-
|
|
89
|
+
export namespace WorkspaceAndInstance {
|
|
90
|
+
export function toWorkspace(wai: WorkspaceAndInstance): Workspace {
|
|
91
|
+
return {
|
|
92
|
+
id: wai.workspaceId,
|
|
93
|
+
creationTime: wai.workspaceCreationTime,
|
|
94
|
+
...wai
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
export function toInstance(wai: WorkspaceAndInstance): WorkspaceInstance | undefined {
|
|
99
|
+
if (!wai.instanceId) {
|
|
100
|
+
return undefined;
|
|
101
|
+
}
|
|
102
|
+
return {
|
|
103
|
+
id: wai.instanceId,
|
|
104
|
+
creationTime: wai.instanceCreationTime,
|
|
105
|
+
...wai
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
export type AdminGetWorkspacesRequest = AdminGetListRequest<WorkspaceAndInstance> & AdminGetWorkspacesQuery;
|
|
111
|
+
/** The fields are meant to be used either OR (not combined) */
|
|
112
|
+
export type AdminGetWorkspacesQuery = {
|
|
113
|
+
/** we use this field in case we have a UUIDv4 and don't know whether it's an (old) workspace or instance id */
|
|
114
|
+
instanceIdOrWorkspaceId?: string;
|
|
115
|
+
instanceId?: string;
|
|
116
|
+
workspaceId?: string;
|
|
117
|
+
ownerId?: string;
|
|
118
|
+
};
|
package/src/analytics.ts
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2021 Gitpod GmbH. All rights reserved.
|
|
3
|
+
* Licensed under the GNU Affero General Public License (AGPL).
|
|
4
|
+
* See License-AGPL.txt in the project root for license information.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
export const IAnalyticsWriter = Symbol("IAnalyticsWriter");
|
|
9
|
+
|
|
10
|
+
type Identity =
|
|
11
|
+
| { userId: string | number; anonymousId?: string | number }
|
|
12
|
+
| { userId?: string | number; anonymousId: string | number };
|
|
13
|
+
|
|
14
|
+
interface Message {
|
|
15
|
+
messageId?: string;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export type IdentifyMessage = Message & Identity & {
|
|
19
|
+
traits?: any;
|
|
20
|
+
timestamp?: Date;
|
|
21
|
+
context?: any;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export type TrackMessage = Message & Identity & {
|
|
25
|
+
event: string;
|
|
26
|
+
properties?: any;
|
|
27
|
+
timestamp?: Date;
|
|
28
|
+
context?: any;
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
export type PageMessage = Message & Identity & {
|
|
32
|
+
properties?: any;
|
|
33
|
+
timestamp?: Date;
|
|
34
|
+
context?: any;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
export type RemoteTrackMessage = Omit<TrackMessage, "timestamp" | "userId">;
|
|
38
|
+
export type RemotePageMessage = Omit<PageMessage, "timestamp" | "userId"> & {
|
|
39
|
+
includePII?: boolean;
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
export type RemoteIdentifyMessage = Omit<IdentifyMessage, "timestamp" | "userId">;
|
|
43
|
+
|
|
44
|
+
export interface IAnalyticsWriter {
|
|
45
|
+
|
|
46
|
+
identify(msg: IdentifyMessage): void;
|
|
47
|
+
|
|
48
|
+
track(msg: TrackMessage): void;
|
|
49
|
+
|
|
50
|
+
page(msg: PageMessage): void;
|
|
51
|
+
|
|
52
|
+
}
|