@mikarinneoracle/oci-cdk-code-only-preview 0.0.1 → 0.0.2
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/package.json +1 -1
- package/lib/.gen/providers/oci/identity-dynamic-group/index.d.ts +0 -166
- package/lib/.gen/providers/oci/identity-dynamic-group/index.js +0 -408
- package/lib/bin/deploy-with-build.js +0 -132
- package/lib/test/java-function/aws-cdk/bin/app.d.ts +0 -2
- package/lib/test/java-function/aws-cdk/bin/app.js +0 -51
- package/lib/test/java-function/aws-cdk/lib/function-stack.d.ts +0 -11
- package/lib/test/java-function/aws-cdk/lib/function-stack.js +0 -159
- package/lib/test/java-function/aws-cdk/lib/test-function-stack.d.ts +0 -5
- package/lib/test/java-function/aws-cdk/lib/test-function-stack.js +0 -94
- package/lib/test/java-function/oci-cdk/.gen/providers/oci/apigateway-deployment/index.d.ts +0 -5356
- package/lib/test/java-function/oci-cdk/.gen/providers/oci/apigateway-deployment/index.js +0 -14972
- package/lib/test/java-function/oci-cdk/.gen/providers/oci/apigateway-gateway/index.d.ts +0 -449
- package/lib/test/java-function/oci-cdk/.gen/providers/oci/apigateway-gateway/index.js +0 -1149
- package/lib/test/java-function/oci-cdk/.gen/providers/oci/artifacts-container-repository/index.d.ts +0 -217
- package/lib/test/java-function/oci-cdk/.gen/providers/oci/artifacts-container-repository/index.js +0 -563
- package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-internet-gateway/index.d.ts +0 -176
- package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-internet-gateway/index.js +0 -431
- package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-route-table/index.d.ts +0 -255
- package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-route-table/index.js +0 -644
- package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-security-list/index.d.ts +0 -752
- package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-security-list/index.js +0 -2091
- package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-service-gateway/index.d.ts +0 -220
- package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-service-gateway/index.js +0 -543
- package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-subnet/index.d.ts +0 -251
- package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-subnet/index.js +0 -612
- package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-vcn/index.d.ts +0 -270
- package/lib/test/java-function/oci-cdk/.gen/providers/oci/core-vcn/index.js +0 -672
- package/lib/test/java-function/oci-cdk/.gen/providers/oci/data-oci-core-services/index.d.ts +0 -150
- package/lib/test/java-function/oci-cdk/.gen/providers/oci/data-oci-core-services/index.js +0 -386
- package/lib/test/java-function/oci-cdk/.gen/providers/oci/functions-application/index.d.ts +0 -330
- package/lib/test/java-function/oci-cdk/.gen/providers/oci/functions-application/index.js +0 -821
- package/lib/test/java-function/oci-cdk/.gen/providers/oci/functions-function/index.d.ts +0 -322
- package/lib/test/java-function/oci-cdk/.gen/providers/oci/functions-function/index.js +0 -820
- package/lib/test/java-function/oci-cdk/.gen/providers/oci/provider/index.d.ts +0 -190
- package/lib/test/java-function/oci-cdk/.gen/providers/oci/provider/index.js +0 -391
- package/lib/test/java-function/oci-cdk/.gen/providers/oci/vault-secret/index.d.ts +0 -439
- package/lib/test/java-function/oci-cdk/.gen/providers/oci/vault-secret/index.js +0 -1146
- package/lib/test/java-function/oci-cdk/bin/app.d.ts +0 -2
- package/lib/test/java-function/oci-cdk/bin/app.js +0 -34
- package/lib/test/java-function/oci-cdk/config/oci-config.d.ts +0 -68
- package/lib/test/java-function/oci-cdk/config/oci-config.js +0 -202
- package/lib/test/java-function/oci-cdk/lib/function-stack.d.ts +0 -31
- package/lib/test/java-function/oci-cdk/lib/function-stack.js +0 -549
- package/lib/test/java-function/oci-cdk/lib/test-function-stack.d.ts +0 -17
- package/lib/test/java-function/oci-cdk/lib/test-function-stack.js +0 -99
|
@@ -1,190 +0,0 @@
|
|
|
1
|
-
import { Construct } from 'constructs';
|
|
2
|
-
import * as cdktf from 'cdktf';
|
|
3
|
-
export interface OciProviderConfig {
|
|
4
|
-
/**
|
|
5
|
-
* (Optional) The type of auth to use. Options are 'ApiKey', 'SecurityToken', 'InstancePrincipal', 'ResourcePrincipal' and 'OKEWorkloadIdentity'. By default, 'ApiKey' will be used.
|
|
6
|
-
*
|
|
7
|
-
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/5.47.0/docs#auth OciProvider#auth}
|
|
8
|
-
*/
|
|
9
|
-
readonly auth?: string;
|
|
10
|
-
/**
|
|
11
|
-
* (Optional) The profile name to be used from config file, if not set it will be DEFAULT.
|
|
12
|
-
*
|
|
13
|
-
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/5.47.0/docs#config_file_profile OciProvider#config_file_profile}
|
|
14
|
-
*/
|
|
15
|
-
readonly configFileProfile?: string;
|
|
16
|
-
/**
|
|
17
|
-
* (Optional) Disable automatic retries for retriable errors.
|
|
18
|
-
* Automatic retries were introduced to solve some eventual consistency problems but it also introduced performance issues on destroy operations.
|
|
19
|
-
*
|
|
20
|
-
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/5.47.0/docs#disable_auto_retries OciProvider#disable_auto_retries}
|
|
21
|
-
*/
|
|
22
|
-
readonly disableAutoRetries?: boolean | cdktf.IResolvable;
|
|
23
|
-
/**
|
|
24
|
-
* (Optional) The fingerprint for the user's RSA key. This can be found in user settings in the Oracle Cloud Infrastructure console. Required if auth is set to 'ApiKey', ignored otherwise.
|
|
25
|
-
*
|
|
26
|
-
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/5.47.0/docs#fingerprint OciProvider#fingerprint}
|
|
27
|
-
*/
|
|
28
|
-
readonly fingerprint?: string;
|
|
29
|
-
/**
|
|
30
|
-
* (Optional) List of defined tags keys that Terraform should ignore when planning creates and updates to the associated remote object
|
|
31
|
-
*
|
|
32
|
-
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/5.47.0/docs#ignore_defined_tags OciProvider#ignore_defined_tags}
|
|
33
|
-
*/
|
|
34
|
-
readonly ignoreDefinedTags?: string[];
|
|
35
|
-
/**
|
|
36
|
-
* (Optional) A PEM formatted RSA private key for the user.
|
|
37
|
-
* A private_key or a private_key_path must be provided if auth is set to 'ApiKey', ignored otherwise.
|
|
38
|
-
*
|
|
39
|
-
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/5.47.0/docs#private_key OciProvider#private_key}
|
|
40
|
-
*/
|
|
41
|
-
readonly privateKey?: string;
|
|
42
|
-
/**
|
|
43
|
-
* (Optional) The password used to secure the private key.
|
|
44
|
-
*
|
|
45
|
-
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/5.47.0/docs#private_key_password OciProvider#private_key_password}
|
|
46
|
-
*/
|
|
47
|
-
readonly privateKeyPassword?: string;
|
|
48
|
-
/**
|
|
49
|
-
* (Optional) The path to the user's PEM formatted private key.
|
|
50
|
-
* A private_key or a private_key_path must be provided if auth is set to 'ApiKey', ignored otherwise.
|
|
51
|
-
*
|
|
52
|
-
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/5.47.0/docs#private_key_path OciProvider#private_key_path}
|
|
53
|
-
*/
|
|
54
|
-
readonly privateKeyPath?: string;
|
|
55
|
-
/**
|
|
56
|
-
* (Optional) flags to enable realm specific service endpoint.
|
|
57
|
-
*
|
|
58
|
-
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/5.47.0/docs#realm_specific_service_endpoint_template_enabled OciProvider#realm_specific_service_endpoint_template_enabled}
|
|
59
|
-
*/
|
|
60
|
-
readonly realmSpecificServiceEndpointTemplateEnabled?: boolean | cdktf.IResolvable;
|
|
61
|
-
/**
|
|
62
|
-
* (Required) The region for API connections (e.g. us-ashburn-1).
|
|
63
|
-
*
|
|
64
|
-
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/5.47.0/docs#region OciProvider#region}
|
|
65
|
-
*/
|
|
66
|
-
readonly region?: string;
|
|
67
|
-
/**
|
|
68
|
-
* (Optional) The minimum duration (in seconds) to retry a resource operation in response to an error.
|
|
69
|
-
* The actual retry duration may be longer due to jittering of retry operations. This value is ignored if the `disable_auto_retries` field is set to true.
|
|
70
|
-
*
|
|
71
|
-
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/5.47.0/docs#retry_duration_seconds OciProvider#retry_duration_seconds}
|
|
72
|
-
*/
|
|
73
|
-
readonly retryDurationSeconds?: number;
|
|
74
|
-
/**
|
|
75
|
-
* (Optional) The tenancy OCID for a user. The tenancy OCID can be found at the bottom of user settings in the Oracle Cloud Infrastructure console. Required if auth is set to 'ApiKey', ignored otherwise.
|
|
76
|
-
*
|
|
77
|
-
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/5.47.0/docs#tenancy_ocid OciProvider#tenancy_ocid}
|
|
78
|
-
*/
|
|
79
|
-
readonly tenancyOcid?: string;
|
|
80
|
-
/**
|
|
81
|
-
* (Optional) The user OCID. This can be found in user settings in the Oracle Cloud Infrastructure console. Required if auth is set to 'ApiKey', ignored otherwise.
|
|
82
|
-
*
|
|
83
|
-
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/5.47.0/docs#user_ocid OciProvider#user_ocid}
|
|
84
|
-
*/
|
|
85
|
-
readonly userOcid?: string;
|
|
86
|
-
/**
|
|
87
|
-
* Alias name
|
|
88
|
-
*
|
|
89
|
-
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/5.47.0/docs#alias OciProvider#alias}
|
|
90
|
-
*/
|
|
91
|
-
readonly alias?: string;
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Represents a {@link https://registry.terraform.io/providers/oracle/oci/5.47.0/docs oci}
|
|
95
|
-
*/
|
|
96
|
-
export declare class OciProvider extends cdktf.TerraformProvider {
|
|
97
|
-
static readonly tfResourceType = "oci";
|
|
98
|
-
/**
|
|
99
|
-
* Generates CDKTF code for importing a OciProvider resource upon running "cdktf plan <stack-name>"
|
|
100
|
-
* @param scope The scope in which to define this construct
|
|
101
|
-
* @param importToId The construct id used in the generated config for the OciProvider to import
|
|
102
|
-
* @param importFromId The id of the existing OciProvider that should be imported. Refer to the {@link https://registry.terraform.io/providers/oracle/oci/5.47.0/docs#import import section} in the documentation of this resource for the id to use
|
|
103
|
-
* @param provider? Optional instance of the provider where the OciProvider to import is found
|
|
104
|
-
*/
|
|
105
|
-
static generateConfigForImport(scope: Construct, importToId: string, importFromId: string, provider?: cdktf.TerraformProvider): cdktf.ImportableResource;
|
|
106
|
-
/**
|
|
107
|
-
* Create a new {@link https://registry.terraform.io/providers/oracle/oci/5.47.0/docs oci} Resource
|
|
108
|
-
*
|
|
109
|
-
* @param scope The scope in which to define this construct
|
|
110
|
-
* @param id The scoped construct ID. Must be unique amongst siblings in the same scope
|
|
111
|
-
* @param options OciProviderConfig = {}
|
|
112
|
-
*/
|
|
113
|
-
constructor(scope: Construct, id: string, config?: OciProviderConfig);
|
|
114
|
-
private _auth?;
|
|
115
|
-
get auth(): string | undefined;
|
|
116
|
-
set auth(value: string | undefined);
|
|
117
|
-
resetAuth(): void;
|
|
118
|
-
get authInput(): string | undefined;
|
|
119
|
-
private _configFileProfile?;
|
|
120
|
-
get configFileProfile(): string | undefined;
|
|
121
|
-
set configFileProfile(value: string | undefined);
|
|
122
|
-
resetConfigFileProfile(): void;
|
|
123
|
-
get configFileProfileInput(): string | undefined;
|
|
124
|
-
private _disableAutoRetries?;
|
|
125
|
-
get disableAutoRetries(): boolean | cdktf.IResolvable | undefined;
|
|
126
|
-
set disableAutoRetries(value: boolean | cdktf.IResolvable | undefined);
|
|
127
|
-
resetDisableAutoRetries(): void;
|
|
128
|
-
get disableAutoRetriesInput(): boolean | cdktf.IResolvable | undefined;
|
|
129
|
-
private _fingerprint?;
|
|
130
|
-
get fingerprint(): string | undefined;
|
|
131
|
-
set fingerprint(value: string | undefined);
|
|
132
|
-
resetFingerprint(): void;
|
|
133
|
-
get fingerprintInput(): string | undefined;
|
|
134
|
-
private _ignoreDefinedTags?;
|
|
135
|
-
get ignoreDefinedTags(): string[] | undefined;
|
|
136
|
-
set ignoreDefinedTags(value: string[] | undefined);
|
|
137
|
-
resetIgnoreDefinedTags(): void;
|
|
138
|
-
get ignoreDefinedTagsInput(): string[] | undefined;
|
|
139
|
-
private _privateKey?;
|
|
140
|
-
get privateKey(): string | undefined;
|
|
141
|
-
set privateKey(value: string | undefined);
|
|
142
|
-
resetPrivateKey(): void;
|
|
143
|
-
get privateKeyInput(): string | undefined;
|
|
144
|
-
private _privateKeyPassword?;
|
|
145
|
-
get privateKeyPassword(): string | undefined;
|
|
146
|
-
set privateKeyPassword(value: string | undefined);
|
|
147
|
-
resetPrivateKeyPassword(): void;
|
|
148
|
-
get privateKeyPasswordInput(): string | undefined;
|
|
149
|
-
private _privateKeyPath?;
|
|
150
|
-
get privateKeyPath(): string | undefined;
|
|
151
|
-
set privateKeyPath(value: string | undefined);
|
|
152
|
-
resetPrivateKeyPath(): void;
|
|
153
|
-
get privateKeyPathInput(): string | undefined;
|
|
154
|
-
private _realmSpecificServiceEndpointTemplateEnabled?;
|
|
155
|
-
get realmSpecificServiceEndpointTemplateEnabled(): boolean | cdktf.IResolvable | undefined;
|
|
156
|
-
set realmSpecificServiceEndpointTemplateEnabled(value: boolean | cdktf.IResolvable | undefined);
|
|
157
|
-
resetRealmSpecificServiceEndpointTemplateEnabled(): void;
|
|
158
|
-
get realmSpecificServiceEndpointTemplateEnabledInput(): boolean | cdktf.IResolvable | undefined;
|
|
159
|
-
private _region?;
|
|
160
|
-
get region(): string | undefined;
|
|
161
|
-
set region(value: string | undefined);
|
|
162
|
-
resetRegion(): void;
|
|
163
|
-
get regionInput(): string | undefined;
|
|
164
|
-
private _retryDurationSeconds?;
|
|
165
|
-
get retryDurationSeconds(): number | undefined;
|
|
166
|
-
set retryDurationSeconds(value: number | undefined);
|
|
167
|
-
resetRetryDurationSeconds(): void;
|
|
168
|
-
get retryDurationSecondsInput(): number | undefined;
|
|
169
|
-
private _tenancyOcid?;
|
|
170
|
-
get tenancyOcid(): string | undefined;
|
|
171
|
-
set tenancyOcid(value: string | undefined);
|
|
172
|
-
resetTenancyOcid(): void;
|
|
173
|
-
get tenancyOcidInput(): string | undefined;
|
|
174
|
-
private _userOcid?;
|
|
175
|
-
get userOcid(): string | undefined;
|
|
176
|
-
set userOcid(value: string | undefined);
|
|
177
|
-
resetUserOcid(): void;
|
|
178
|
-
get userOcidInput(): string | undefined;
|
|
179
|
-
private _alias?;
|
|
180
|
-
get alias(): string | undefined;
|
|
181
|
-
set alias(value: string | undefined);
|
|
182
|
-
resetAlias(): void;
|
|
183
|
-
get aliasInput(): string | undefined;
|
|
184
|
-
protected synthesizeAttributes(): {
|
|
185
|
-
[name: string]: any;
|
|
186
|
-
};
|
|
187
|
-
protected synthesizeHclAttributes(): {
|
|
188
|
-
[name: string]: any;
|
|
189
|
-
};
|
|
190
|
-
}
|
|
@@ -1,391 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// https://registry.terraform.io/providers/oracle/oci/5.47.0/docs
|
|
3
|
-
// generated from terraform resource schema
|
|
4
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
5
|
-
if (k2 === undefined) k2 = k;
|
|
6
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
7
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
8
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
9
|
-
}
|
|
10
|
-
Object.defineProperty(o, k2, desc);
|
|
11
|
-
}) : (function(o, m, k, k2) {
|
|
12
|
-
if (k2 === undefined) k2 = k;
|
|
13
|
-
o[k2] = m[k];
|
|
14
|
-
}));
|
|
15
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
16
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
17
|
-
}) : function(o, v) {
|
|
18
|
-
o["default"] = v;
|
|
19
|
-
});
|
|
20
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
21
|
-
var ownKeys = function(o) {
|
|
22
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
23
|
-
var ar = [];
|
|
24
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
25
|
-
return ar;
|
|
26
|
-
};
|
|
27
|
-
return ownKeys(o);
|
|
28
|
-
};
|
|
29
|
-
return function (mod) {
|
|
30
|
-
if (mod && mod.__esModule) return mod;
|
|
31
|
-
var result = {};
|
|
32
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
33
|
-
__setModuleDefault(result, mod);
|
|
34
|
-
return result;
|
|
35
|
-
};
|
|
36
|
-
})();
|
|
37
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
-
exports.OciProvider = void 0;
|
|
39
|
-
const cdktf = __importStar(require("cdktf"));
|
|
40
|
-
/**
|
|
41
|
-
* Represents a {@link https://registry.terraform.io/providers/oracle/oci/5.47.0/docs oci}
|
|
42
|
-
*/
|
|
43
|
-
class OciProvider extends cdktf.TerraformProvider {
|
|
44
|
-
// ==============
|
|
45
|
-
// STATIC Methods
|
|
46
|
-
// ==============
|
|
47
|
-
/**
|
|
48
|
-
* Generates CDKTF code for importing a OciProvider resource upon running "cdktf plan <stack-name>"
|
|
49
|
-
* @param scope The scope in which to define this construct
|
|
50
|
-
* @param importToId The construct id used in the generated config for the OciProvider to import
|
|
51
|
-
* @param importFromId The id of the existing OciProvider that should be imported. Refer to the {@link https://registry.terraform.io/providers/oracle/oci/5.47.0/docs#import import section} in the documentation of this resource for the id to use
|
|
52
|
-
* @param provider? Optional instance of the provider where the OciProvider to import is found
|
|
53
|
-
*/
|
|
54
|
-
static generateConfigForImport(scope, importToId, importFromId, provider) {
|
|
55
|
-
return new cdktf.ImportableResource(scope, importToId, { terraformResourceType: "oci", importId: importFromId, provider });
|
|
56
|
-
}
|
|
57
|
-
// ===========
|
|
58
|
-
// INITIALIZER
|
|
59
|
-
// ===========
|
|
60
|
-
/**
|
|
61
|
-
* Create a new {@link https://registry.terraform.io/providers/oracle/oci/5.47.0/docs oci} Resource
|
|
62
|
-
*
|
|
63
|
-
* @param scope The scope in which to define this construct
|
|
64
|
-
* @param id The scoped construct ID. Must be unique amongst siblings in the same scope
|
|
65
|
-
* @param options OciProviderConfig = {}
|
|
66
|
-
*/
|
|
67
|
-
constructor(scope, id, config = {}) {
|
|
68
|
-
super(scope, id, {
|
|
69
|
-
terraformResourceType: 'oci',
|
|
70
|
-
terraformGeneratorMetadata: {
|
|
71
|
-
providerName: 'oci',
|
|
72
|
-
providerVersion: '5.47.0',
|
|
73
|
-
providerVersionConstraint: '~> 5.0'
|
|
74
|
-
},
|
|
75
|
-
terraformProviderSource: 'oracle/oci'
|
|
76
|
-
});
|
|
77
|
-
this._auth = config.auth;
|
|
78
|
-
this._configFileProfile = config.configFileProfile;
|
|
79
|
-
this._disableAutoRetries = config.disableAutoRetries;
|
|
80
|
-
this._fingerprint = config.fingerprint;
|
|
81
|
-
this._ignoreDefinedTags = config.ignoreDefinedTags;
|
|
82
|
-
this._privateKey = config.privateKey;
|
|
83
|
-
this._privateKeyPassword = config.privateKeyPassword;
|
|
84
|
-
this._privateKeyPath = config.privateKeyPath;
|
|
85
|
-
this._realmSpecificServiceEndpointTemplateEnabled = config.realmSpecificServiceEndpointTemplateEnabled;
|
|
86
|
-
this._region = config.region;
|
|
87
|
-
this._retryDurationSeconds = config.retryDurationSeconds;
|
|
88
|
-
this._tenancyOcid = config.tenancyOcid;
|
|
89
|
-
this._userOcid = config.userOcid;
|
|
90
|
-
this._alias = config.alias;
|
|
91
|
-
}
|
|
92
|
-
get auth() {
|
|
93
|
-
return this._auth;
|
|
94
|
-
}
|
|
95
|
-
set auth(value) {
|
|
96
|
-
this._auth = value;
|
|
97
|
-
}
|
|
98
|
-
resetAuth() {
|
|
99
|
-
this._auth = undefined;
|
|
100
|
-
}
|
|
101
|
-
// Temporarily expose input value. Use with caution.
|
|
102
|
-
get authInput() {
|
|
103
|
-
return this._auth;
|
|
104
|
-
}
|
|
105
|
-
get configFileProfile() {
|
|
106
|
-
return this._configFileProfile;
|
|
107
|
-
}
|
|
108
|
-
set configFileProfile(value) {
|
|
109
|
-
this._configFileProfile = value;
|
|
110
|
-
}
|
|
111
|
-
resetConfigFileProfile() {
|
|
112
|
-
this._configFileProfile = undefined;
|
|
113
|
-
}
|
|
114
|
-
// Temporarily expose input value. Use with caution.
|
|
115
|
-
get configFileProfileInput() {
|
|
116
|
-
return this._configFileProfile;
|
|
117
|
-
}
|
|
118
|
-
get disableAutoRetries() {
|
|
119
|
-
return this._disableAutoRetries;
|
|
120
|
-
}
|
|
121
|
-
set disableAutoRetries(value) {
|
|
122
|
-
this._disableAutoRetries = value;
|
|
123
|
-
}
|
|
124
|
-
resetDisableAutoRetries() {
|
|
125
|
-
this._disableAutoRetries = undefined;
|
|
126
|
-
}
|
|
127
|
-
// Temporarily expose input value. Use with caution.
|
|
128
|
-
get disableAutoRetriesInput() {
|
|
129
|
-
return this._disableAutoRetries;
|
|
130
|
-
}
|
|
131
|
-
get fingerprint() {
|
|
132
|
-
return this._fingerprint;
|
|
133
|
-
}
|
|
134
|
-
set fingerprint(value) {
|
|
135
|
-
this._fingerprint = value;
|
|
136
|
-
}
|
|
137
|
-
resetFingerprint() {
|
|
138
|
-
this._fingerprint = undefined;
|
|
139
|
-
}
|
|
140
|
-
// Temporarily expose input value. Use with caution.
|
|
141
|
-
get fingerprintInput() {
|
|
142
|
-
return this._fingerprint;
|
|
143
|
-
}
|
|
144
|
-
get ignoreDefinedTags() {
|
|
145
|
-
return this._ignoreDefinedTags;
|
|
146
|
-
}
|
|
147
|
-
set ignoreDefinedTags(value) {
|
|
148
|
-
this._ignoreDefinedTags = value;
|
|
149
|
-
}
|
|
150
|
-
resetIgnoreDefinedTags() {
|
|
151
|
-
this._ignoreDefinedTags = undefined;
|
|
152
|
-
}
|
|
153
|
-
// Temporarily expose input value. Use with caution.
|
|
154
|
-
get ignoreDefinedTagsInput() {
|
|
155
|
-
return this._ignoreDefinedTags;
|
|
156
|
-
}
|
|
157
|
-
get privateKey() {
|
|
158
|
-
return this._privateKey;
|
|
159
|
-
}
|
|
160
|
-
set privateKey(value) {
|
|
161
|
-
this._privateKey = value;
|
|
162
|
-
}
|
|
163
|
-
resetPrivateKey() {
|
|
164
|
-
this._privateKey = undefined;
|
|
165
|
-
}
|
|
166
|
-
// Temporarily expose input value. Use with caution.
|
|
167
|
-
get privateKeyInput() {
|
|
168
|
-
return this._privateKey;
|
|
169
|
-
}
|
|
170
|
-
get privateKeyPassword() {
|
|
171
|
-
return this._privateKeyPassword;
|
|
172
|
-
}
|
|
173
|
-
set privateKeyPassword(value) {
|
|
174
|
-
this._privateKeyPassword = value;
|
|
175
|
-
}
|
|
176
|
-
resetPrivateKeyPassword() {
|
|
177
|
-
this._privateKeyPassword = undefined;
|
|
178
|
-
}
|
|
179
|
-
// Temporarily expose input value. Use with caution.
|
|
180
|
-
get privateKeyPasswordInput() {
|
|
181
|
-
return this._privateKeyPassword;
|
|
182
|
-
}
|
|
183
|
-
get privateKeyPath() {
|
|
184
|
-
return this._privateKeyPath;
|
|
185
|
-
}
|
|
186
|
-
set privateKeyPath(value) {
|
|
187
|
-
this._privateKeyPath = value;
|
|
188
|
-
}
|
|
189
|
-
resetPrivateKeyPath() {
|
|
190
|
-
this._privateKeyPath = undefined;
|
|
191
|
-
}
|
|
192
|
-
// Temporarily expose input value. Use with caution.
|
|
193
|
-
get privateKeyPathInput() {
|
|
194
|
-
return this._privateKeyPath;
|
|
195
|
-
}
|
|
196
|
-
get realmSpecificServiceEndpointTemplateEnabled() {
|
|
197
|
-
return this._realmSpecificServiceEndpointTemplateEnabled;
|
|
198
|
-
}
|
|
199
|
-
set realmSpecificServiceEndpointTemplateEnabled(value) {
|
|
200
|
-
this._realmSpecificServiceEndpointTemplateEnabled = value;
|
|
201
|
-
}
|
|
202
|
-
resetRealmSpecificServiceEndpointTemplateEnabled() {
|
|
203
|
-
this._realmSpecificServiceEndpointTemplateEnabled = undefined;
|
|
204
|
-
}
|
|
205
|
-
// Temporarily expose input value. Use with caution.
|
|
206
|
-
get realmSpecificServiceEndpointTemplateEnabledInput() {
|
|
207
|
-
return this._realmSpecificServiceEndpointTemplateEnabled;
|
|
208
|
-
}
|
|
209
|
-
get region() {
|
|
210
|
-
return this._region;
|
|
211
|
-
}
|
|
212
|
-
set region(value) {
|
|
213
|
-
this._region = value;
|
|
214
|
-
}
|
|
215
|
-
resetRegion() {
|
|
216
|
-
this._region = undefined;
|
|
217
|
-
}
|
|
218
|
-
// Temporarily expose input value. Use with caution.
|
|
219
|
-
get regionInput() {
|
|
220
|
-
return this._region;
|
|
221
|
-
}
|
|
222
|
-
get retryDurationSeconds() {
|
|
223
|
-
return this._retryDurationSeconds;
|
|
224
|
-
}
|
|
225
|
-
set retryDurationSeconds(value) {
|
|
226
|
-
this._retryDurationSeconds = value;
|
|
227
|
-
}
|
|
228
|
-
resetRetryDurationSeconds() {
|
|
229
|
-
this._retryDurationSeconds = undefined;
|
|
230
|
-
}
|
|
231
|
-
// Temporarily expose input value. Use with caution.
|
|
232
|
-
get retryDurationSecondsInput() {
|
|
233
|
-
return this._retryDurationSeconds;
|
|
234
|
-
}
|
|
235
|
-
get tenancyOcid() {
|
|
236
|
-
return this._tenancyOcid;
|
|
237
|
-
}
|
|
238
|
-
set tenancyOcid(value) {
|
|
239
|
-
this._tenancyOcid = value;
|
|
240
|
-
}
|
|
241
|
-
resetTenancyOcid() {
|
|
242
|
-
this._tenancyOcid = undefined;
|
|
243
|
-
}
|
|
244
|
-
// Temporarily expose input value. Use with caution.
|
|
245
|
-
get tenancyOcidInput() {
|
|
246
|
-
return this._tenancyOcid;
|
|
247
|
-
}
|
|
248
|
-
get userOcid() {
|
|
249
|
-
return this._userOcid;
|
|
250
|
-
}
|
|
251
|
-
set userOcid(value) {
|
|
252
|
-
this._userOcid = value;
|
|
253
|
-
}
|
|
254
|
-
resetUserOcid() {
|
|
255
|
-
this._userOcid = undefined;
|
|
256
|
-
}
|
|
257
|
-
// Temporarily expose input value. Use with caution.
|
|
258
|
-
get userOcidInput() {
|
|
259
|
-
return this._userOcid;
|
|
260
|
-
}
|
|
261
|
-
get alias() {
|
|
262
|
-
return this._alias;
|
|
263
|
-
}
|
|
264
|
-
set alias(value) {
|
|
265
|
-
this._alias = value;
|
|
266
|
-
}
|
|
267
|
-
resetAlias() {
|
|
268
|
-
this._alias = undefined;
|
|
269
|
-
}
|
|
270
|
-
// Temporarily expose input value. Use with caution.
|
|
271
|
-
get aliasInput() {
|
|
272
|
-
return this._alias;
|
|
273
|
-
}
|
|
274
|
-
// =========
|
|
275
|
-
// SYNTHESIS
|
|
276
|
-
// =========
|
|
277
|
-
synthesizeAttributes() {
|
|
278
|
-
return {
|
|
279
|
-
auth: cdktf.stringToTerraform(this._auth),
|
|
280
|
-
config_file_profile: cdktf.stringToTerraform(this._configFileProfile),
|
|
281
|
-
disable_auto_retries: cdktf.booleanToTerraform(this._disableAutoRetries),
|
|
282
|
-
fingerprint: cdktf.stringToTerraform(this._fingerprint),
|
|
283
|
-
ignore_defined_tags: cdktf.listMapper(cdktf.stringToTerraform, false)(this._ignoreDefinedTags),
|
|
284
|
-
private_key: cdktf.stringToTerraform(this._privateKey),
|
|
285
|
-
private_key_password: cdktf.stringToTerraform(this._privateKeyPassword),
|
|
286
|
-
private_key_path: cdktf.stringToTerraform(this._privateKeyPath),
|
|
287
|
-
realm_specific_service_endpoint_template_enabled: cdktf.booleanToTerraform(this._realmSpecificServiceEndpointTemplateEnabled),
|
|
288
|
-
region: cdktf.stringToTerraform(this._region),
|
|
289
|
-
retry_duration_seconds: cdktf.numberToTerraform(this._retryDurationSeconds),
|
|
290
|
-
tenancy_ocid: cdktf.stringToTerraform(this._tenancyOcid),
|
|
291
|
-
user_ocid: cdktf.stringToTerraform(this._userOcid),
|
|
292
|
-
alias: cdktf.stringToTerraform(this._alias),
|
|
293
|
-
};
|
|
294
|
-
}
|
|
295
|
-
synthesizeHclAttributes() {
|
|
296
|
-
const attrs = {
|
|
297
|
-
auth: {
|
|
298
|
-
value: cdktf.stringToHclTerraform(this._auth),
|
|
299
|
-
isBlock: false,
|
|
300
|
-
type: "simple",
|
|
301
|
-
storageClassType: "string",
|
|
302
|
-
},
|
|
303
|
-
config_file_profile: {
|
|
304
|
-
value: cdktf.stringToHclTerraform(this._configFileProfile),
|
|
305
|
-
isBlock: false,
|
|
306
|
-
type: "simple",
|
|
307
|
-
storageClassType: "string",
|
|
308
|
-
},
|
|
309
|
-
disable_auto_retries: {
|
|
310
|
-
value: cdktf.booleanToHclTerraform(this._disableAutoRetries),
|
|
311
|
-
isBlock: false,
|
|
312
|
-
type: "simple",
|
|
313
|
-
storageClassType: "boolean",
|
|
314
|
-
},
|
|
315
|
-
fingerprint: {
|
|
316
|
-
value: cdktf.stringToHclTerraform(this._fingerprint),
|
|
317
|
-
isBlock: false,
|
|
318
|
-
type: "simple",
|
|
319
|
-
storageClassType: "string",
|
|
320
|
-
},
|
|
321
|
-
ignore_defined_tags: {
|
|
322
|
-
value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(this._ignoreDefinedTags),
|
|
323
|
-
isBlock: false,
|
|
324
|
-
type: "list",
|
|
325
|
-
storageClassType: "stringList",
|
|
326
|
-
},
|
|
327
|
-
private_key: {
|
|
328
|
-
value: cdktf.stringToHclTerraform(this._privateKey),
|
|
329
|
-
isBlock: false,
|
|
330
|
-
type: "simple",
|
|
331
|
-
storageClassType: "string",
|
|
332
|
-
},
|
|
333
|
-
private_key_password: {
|
|
334
|
-
value: cdktf.stringToHclTerraform(this._privateKeyPassword),
|
|
335
|
-
isBlock: false,
|
|
336
|
-
type: "simple",
|
|
337
|
-
storageClassType: "string",
|
|
338
|
-
},
|
|
339
|
-
private_key_path: {
|
|
340
|
-
value: cdktf.stringToHclTerraform(this._privateKeyPath),
|
|
341
|
-
isBlock: false,
|
|
342
|
-
type: "simple",
|
|
343
|
-
storageClassType: "string",
|
|
344
|
-
},
|
|
345
|
-
realm_specific_service_endpoint_template_enabled: {
|
|
346
|
-
value: cdktf.booleanToHclTerraform(this._realmSpecificServiceEndpointTemplateEnabled),
|
|
347
|
-
isBlock: false,
|
|
348
|
-
type: "simple",
|
|
349
|
-
storageClassType: "boolean",
|
|
350
|
-
},
|
|
351
|
-
region: {
|
|
352
|
-
value: cdktf.stringToHclTerraform(this._region),
|
|
353
|
-
isBlock: false,
|
|
354
|
-
type: "simple",
|
|
355
|
-
storageClassType: "string",
|
|
356
|
-
},
|
|
357
|
-
retry_duration_seconds: {
|
|
358
|
-
value: cdktf.numberToHclTerraform(this._retryDurationSeconds),
|
|
359
|
-
isBlock: false,
|
|
360
|
-
type: "simple",
|
|
361
|
-
storageClassType: "number",
|
|
362
|
-
},
|
|
363
|
-
tenancy_ocid: {
|
|
364
|
-
value: cdktf.stringToHclTerraform(this._tenancyOcid),
|
|
365
|
-
isBlock: false,
|
|
366
|
-
type: "simple",
|
|
367
|
-
storageClassType: "string",
|
|
368
|
-
},
|
|
369
|
-
user_ocid: {
|
|
370
|
-
value: cdktf.stringToHclTerraform(this._userOcid),
|
|
371
|
-
isBlock: false,
|
|
372
|
-
type: "simple",
|
|
373
|
-
storageClassType: "string",
|
|
374
|
-
},
|
|
375
|
-
alias: {
|
|
376
|
-
value: cdktf.stringToHclTerraform(this._alias),
|
|
377
|
-
isBlock: false,
|
|
378
|
-
type: "simple",
|
|
379
|
-
storageClassType: "string",
|
|
380
|
-
},
|
|
381
|
-
};
|
|
382
|
-
// remove undefined attributes
|
|
383
|
-
return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
|
|
384
|
-
}
|
|
385
|
-
}
|
|
386
|
-
exports.OciProvider = OciProvider;
|
|
387
|
-
// =================
|
|
388
|
-
// STATIC PROPERTIES
|
|
389
|
-
// =================
|
|
390
|
-
OciProvider.tfResourceType = "oci";
|
|
391
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi90ZXN0L2phdmEtZnVuY3Rpb24vb2NpLWNkay8uZ2VuL3Byb3ZpZGVycy9vY2kvcHJvdmlkZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLGlFQUFpRTtBQUNqRSwyQ0FBMkM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUczQyw2Q0FBK0I7QUErRi9COztFQUVFO0FBQ0YsTUFBYSxXQUFZLFNBQVEsS0FBSyxDQUFDLGlCQUFpQjtJQU90RCxpQkFBaUI7SUFDakIsaUJBQWlCO0lBQ2pCLGlCQUFpQjtJQUNqQjs7Ozs7O01BTUU7SUFDSyxNQUFNLENBQUMsdUJBQXVCLENBQUMsS0FBZ0IsRUFBRSxVQUFrQixFQUFFLFlBQW9CLEVBQUUsUUFBa0M7UUFDOUgsT0FBTyxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLEVBQUUscUJBQXFCLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUM3SCxDQUFDO0lBRUwsY0FBYztJQUNkLGNBQWM7SUFDZCxjQUFjO0lBRWQ7Ozs7OztNQU1FO0lBQ0YsWUFBbUIsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsU0FBNEIsRUFBRTtRQUM3RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNmLHFCQUFxQixFQUFFLEtBQUs7WUFDNUIsMEJBQTBCLEVBQUU7Z0JBQzFCLFlBQVksRUFBRSxLQUFLO2dCQUNuQixlQUFlLEVBQUUsUUFBUTtnQkFDekIseUJBQXlCLEVBQUUsUUFBUTthQUNwQztZQUNELHVCQUF1QixFQUFFLFlBQVk7U0FDdEMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxrQkFBa0IsR0FB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LEVBQUUsUUFBUTtnQkFDZCxnQkFBZ0IsRUFBRSxRQUFRO2FBQzNCO1lBQ0QsS0FBSyxFQUFFO2dCQUNMLEtBQUssRUFBRSxLQUFLLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztnQkFDOUMsT0FBTyxFQUFFLEtBQUs7Z0JBQ2QsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsZ0JBQWdCLEVBQUUsUUFBUTthQUMzQjtTQUNGLENBQUM7UUFFRiw4QkFBOEI7UUFDOUIsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssS0FBSyxTQUFTLElBQUksS0FBSyxDQUFDLEtBQUssS0FBSyxTQUFTLENBQUUsQ0FBQyxDQUFBO0lBQzVILENBQUM7O0FBL1lILGtDQWdaQztBQTlZQyxvQkFBb0I7QUFDcEIsb0JBQW9CO0FBQ3BCLG9CQUFvQjtBQUNHLDBCQUFjLEdBQUcsS0FBSyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL29yYWNsZS9vY2kvNS40Ny4wL2RvY3Ncbi8vIGdlbmVyYXRlZCBmcm9tIHRlcnJhZm9ybSByZXNvdXJjZSBzY2hlbWFcblxuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgKiBhcyBjZGt0ZiBmcm9tICdjZGt0Zic7XG5cbi8vIENvbmZpZ3VyYXRpb25cblxuZXhwb3J0IGludGVyZmFjZSBPY2lQcm92aWRlckNvbmZpZyB7XG4gIC8qKlxuICAqIChPcHRpb25hbCkgVGhlIHR5cGUgb2YgYXV0aCB0byB1c2UuIE9wdGlvbnMgYXJlICdBcGlLZXknLCAnU2VjdXJpdHlUb2tlbicsICdJbnN0YW5jZVByaW5jaXBhbCcsICdSZXNvdXJjZVByaW5jaXBhbCcgYW5kICdPS0VXb3JrbG9hZElkZW50aXR5Jy4gQnkgZGVmYXVsdCwgJ0FwaUtleScgd2lsbCBiZSB1c2VkLlxuICAqXG4gICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvb3JhY2xlL29jaS81LjQ3LjAvZG9jcyNhdXRoIE9jaVByb3ZpZGVyI2F1dGh9XG4gICovXG4gIHJlYWRvbmx5IGF1dGg/OiBzdHJpbmc7XG4gIC8qKlxuICAqIChPcHRpb25hbCkgVGhlIHByb2ZpbGUgbmFtZSB0byBiZSB1c2VkIGZyb20gY29uZmlnIGZpbGUsIGlmIG5vdCBzZXQgaXQgd2lsbCBiZSBERUZBVUxULlxuICAqXG4gICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvb3JhY2xlL29jaS81LjQ3LjAvZG9jcyNjb25maWdfZmlsZV9wcm9maWxlIE9jaVByb3ZpZGVyI2NvbmZpZ19maWxlX3Byb2ZpbGV9XG4gICovXG4gIHJlYWRvbmx5IGNvbmZpZ0ZpbGVQcm9maWxlPzogc3RyaW5nO1xuICAvKipcbiAgKiAoT3B0aW9uYWwpIERpc2FibGUgYXV0b21hdGljIHJldHJpZXMgZm9yIHJldHJpYWJsZSBlcnJvcnMuXG4gICogQXV0b21hdGljIHJldHJpZXMgd2VyZSBpbnRyb2R1Y2VkIHRvIHNvbHZlIHNvbWUgZXZlbnR1YWwgY29uc2lzdGVuY3kgcHJvYmxlbXMgYnV0IGl0IGFsc28gaW50cm9kdWNlZCBwZXJmb3JtYW5jZSBpc3N1ZXMgb24gZGVzdHJveSBvcGVyYXRpb25zLlxuICAqXG4gICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvb3JhY2xlL29jaS81LjQ3LjAvZG9jcyNkaXNhYmxlX2F1dG9fcmV0cmllcyBPY2lQcm92aWRlciNkaXNhYmxlX2F1dG9fcmV0cmllc31cbiAgKi9cbiAgcmVhZG9ubHkgZGlzYWJsZUF1dG9SZXRyaWVzPzogYm9vbGVhbiB8IGNka3RmLklSZXNvbHZhYmxlO1xuICAvKipcbiAgKiAoT3B0aW9uYWwpIFRoZSBmaW5nZXJwcmludCBmb3IgdGhlIHVzZXIncyBSU0Ega2V5LiBUaGlzIGNhbiBiZSBmb3VuZCBpbiB1c2VyIHNldHRpbmdzIGluIHRoZSBPcmFjbGUgQ2xvdWQgSW5mcmFzdHJ1Y3R1cmUgY29uc29sZS4gUmVxdWlyZWQgaWYgYXV0aCBpcyBzZXQgdG8gJ0FwaUtleScsIGlnbm9yZWQgb3RoZXJ3aXNlLlxuICAqXG4gICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvb3JhY2xlL29jaS81LjQ3LjAvZG9jcyNmaW5nZXJwcmludCBPY2lQcm92aWRlciNmaW5nZXJwcmludH1cbiAgKi9cbiAgcmVhZG9ubHkgZmluZ2VycHJpbnQ/OiBzdHJpbmc7XG4gIC8qKlxuICAqIChPcHRpb25hbCkgTGlzdCBvZiBkZWZpbmVkIHRhZ3Mga2V5cyB0aGF0IFRlcnJhZm9ybSBzaG91bGQgaWdub3JlIHdoZW4gcGxhbm5pbmcgY3JlYXRlcyBhbmQgdXBkYXRlcyB0byB0aGUgYXNzb2NpYXRlZCByZW1vdGUgb2JqZWN0XG4gICpcbiAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9vcmFjbGUvb2NpLzUuNDcuMC9kb2NzI2lnbm9yZV9kZWZpbmVkX3RhZ3MgT2NpUHJvdmlkZXIjaWdub3JlX2RlZmluZWRfdGFnc31cbiAgKi9cbiAgcmVhZG9ubHkgaWdub3JlRGVmaW5lZFRhZ3M/OiBzdHJpbmdbXTtcbiAgLyoqXG4gICogKE9wdGlvbmFsKSBBIFBFTSBmb3JtYXR0ZWQgUlNBIHByaXZhdGUga2V5IGZvciB0aGUgdXNlci5cbiAgKiBBIHByaXZhdGVfa2V5IG9yIGEgcHJpdmF0ZV9rZXlfcGF0aCBtdXN0IGJlIHByb3ZpZGVkIGlmIGF1dGggaXMgc2V0IHRvICdBcGlLZXknLCBpZ25vcmVkIG90aGVyd2lzZS5cbiAgKlxuICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL29yYWNsZS9vY2kvNS40Ny4wL2RvY3MjcHJpdmF0ZV9rZXkgT2NpUHJvdmlkZXIjcHJpdmF0ZV9rZXl9XG4gICovXG4gIHJlYWRvbmx5IHByaXZhdGVLZXk/OiBzdHJpbmc7XG4gIC8qKlxuICAqIChPcHRpb25hbCkgVGhlIHBhc3N3b3JkIHVzZWQgdG8gc2VjdXJlIHRoZSBwcml2YXRlIGtleS5cbiAgKlxuICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL29yYWNsZS9vY2kvNS40Ny4wL2RvY3MjcHJpdmF0ZV9rZXlfcGFzc3dvcmQgT2NpUHJvdmlkZXIjcHJpdmF0ZV9rZXlfcGFzc3dvcmR9XG4gICovXG4gIHJlYWRvbmx5IHByaXZhdGVLZXlQYXNzd29yZD86IHN0cmluZztcbiAgLyoqXG4gICogKE9wdGlvbmFsKSBUaGUgcGF0aCB0byB0aGUgdXNlcidzIFBFTSBmb3JtYXR0ZWQgcHJpdmF0ZSBrZXkuXG4gICogQSBwcml2YXRlX2tleSBvciBhIHByaXZhdGVfa2V5X3BhdGggbXVzdCBiZSBwcm92aWRlZCBpZiBhdXRoIGlzIHNldCB0byAnQXBpS2V5JywgaWdub3JlZCBvdGhlcndpc2UuXG4gICpcbiAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9vcmFjbGUvb2NpLzUuNDcuMC9kb2NzI3ByaXZhdGVfa2V5X3BhdGggT2NpUHJvdmlkZXIjcHJpdmF0ZV9rZXlfcGF0aH1cbiAgKi9cbiAgcmVhZG9ubHkgcHJpdmF0ZUtleVBhdGg/OiBzdHJpbmc7XG4gIC8qKlxuICAqIChPcHRpb25hbCkgZmxhZ3MgdG8gZW5hYmxlIHJlYWxtIHNwZWNpZmljIHNlcnZpY2UgZW5kcG9pbnQuXG4gICpcbiAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9vcmFjbGUvb2NpLzUuNDcuMC9kb2NzI3JlYWxtX3NwZWNpZmljX3NlcnZpY2VfZW5kcG9pbnRfdGVtcGxhdGVfZW5hYmxlZCBPY2lQcm92aWRlciNyZWFsbV9zcGVjaWZpY19zZXJ2aWNlX2VuZHBvaW50X3RlbXBsYXRlX2VuYWJsZWR9XG4gICovXG4gIHJlYWRvbmx5IHJlYWxtU3BlY2lmaWNTZXJ2aWNlRW5kcG9pbnRUZW1wbGF0ZUVuYWJsZWQ/OiBib29sZWFuIHwgY2RrdGYuSVJlc29sdmFibGU7XG4gIC8qKlxuICAqIChSZXF1aXJlZCkgVGhlIHJlZ2lvbiBmb3IgQVBJIGNvbm5lY3Rpb25zIChlLmcuIHVzLWFzaGJ1cm4tMSkuXG4gICpcbiAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9vcmFjbGUvb2NpLzUuNDcuMC9kb2NzI3JlZ2lvbiBPY2lQcm92aWRlciNyZWdpb259XG4gICovXG4gIHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcbiAgLyoqXG4gICogKE9wdGlvbmFsKSBUaGUgbWluaW11bSBkdXJhdGlvbiAoaW4gc2Vjb25kcykgdG8gcmV0cnkgYSByZXNvdXJjZSBvcGVyYXRpb24gaW4gcmVzcG9uc2UgdG8gYW4gZXJyb3IuXG4gICogVGhlIGFjdHVhbCByZXRyeSBkdXJhdGlvbiBtYXkgYmUgbG9uZ2VyIGR1ZSB0byBqaXR0ZXJpbmcgb2YgcmV0cnkgb3BlcmF0aW9ucy4gVGhpcyB2YWx1ZSBpcyBpZ25vcmVkIGlmIHRoZSBgZGlzYWJsZV9hdXRvX3JldHJpZXNgIGZpZWxkIGlzIHNldCB0byB0cnVlLlxuICAqXG4gICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvb3JhY2xlL29jaS81LjQ3LjAvZG9jcyNyZXRyeV9kdXJhdGlvbl9zZWNvbmRzIE9jaVByb3ZpZGVyI3JldHJ5X2R1cmF0aW9uX3NlY29uZHN9XG4gICovXG4gIHJlYWRvbmx5IHJldHJ5RHVyYXRpb25TZWNvbmRzPzogbnVtYmVyO1xuICAvKipcbiAgKiAoT3B0aW9uYWwpIFRoZSB0ZW5hbmN5IE9DSUQgZm9yIGEgdXNlci4gVGhlIHRlbmFuY3kgT0NJRCBjYW4gYmUgZm91bmQgYXQgdGhlIGJvdHRvbSBvZiB1c2VyIHNldHRpbmdzIGluIHRoZSBPcmFjbGUgQ2xvdWQgSW5mcmFzdHJ1Y3R1cmUgY29uc29sZS4gUmVxdWlyZWQgaWYgYXV0aCBpcyBzZXQgdG8gJ0FwaUtleScsIGlnbm9yZWQgb3RoZXJ3aXNlLlxuICAqXG4gICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvb3JhY2xlL29jaS81LjQ3LjAvZG9jcyN0ZW5hbmN5X29jaWQgT2NpUHJvdmlkZXIjdGVuYW5jeV9vY2lkfVxuICAqL1xuICByZWFkb25seSB0ZW5hbmN5T2NpZD86IHN0cmluZztcbiAgLyoqXG4gICogKE9wdGlvbmFsKSBUaGUgdXNlciBPQ0lELiBUaGlzIGNhbiBiZSBmb3VuZCBpbiB1c2VyIHNldHRpbmdzIGluIHRoZSBPcmFjbGUgQ2xvdWQgSW5mcmFzdHJ1Y3R1cmUgY29uc29sZS4gUmVxdWlyZWQgaWYgYXV0aCBpcyBzZXQgdG8gJ0FwaUtleScsIGlnbm9yZWQgb3RoZXJ3aXNlLlxuICAqXG4gICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvb3JhY2xlL29jaS81LjQ3LjAvZG9jcyN1c2VyX29jaWQgT2NpUHJvdmlkZXIjdXNlcl9vY2lkfVxuICAqL1xuICByZWFkb25seSB1c2VyT2NpZD86IHN0cmluZztcbiAgLyoqXG4gICogQWxpYXMgbmFtZVxuICAqXG4gICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvb3JhY2xlL29jaS81LjQ3LjAvZG9jcyNhbGlhcyBPY2lQcm92aWRlciNhbGlhc31cbiAgKi9cbiAgcmVhZG9ubHkgYWxpYXM/OiBzdHJpbmc7XG59XG5cbi8qKlxuKiBSZXByZXNlbnRzIGEge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9vcmFjbGUvb2NpLzUuNDcuMC9kb2NzIG9jaX1cbiovXG5leHBvcnQgY2xhc3MgT2NpUHJvdmlkZXIgZXh0ZW5kcyBjZGt0Zi5UZXJyYWZvcm1Qcm92aWRlciB7XG5cbiAgLy8gPT09PT09PT09PT09PT09PT1cbiAgLy8gU1RBVElDIFBST1BFUlRJRVNcbiAgLy8gPT09PT09PT09PT09PT09PT1cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0ZlJlc291cmNlVHlwZSA9IFwib2NpXCI7XG5cbiAgLy8gPT09PT09PT09PT09PT1cbiAgLy8gU1RBVElDIE1ldGhvZHNcbiAgLy8gPT09PT09PT09PT09PT1cbiAgLyoqXG4gICogR2VuZXJhdGVzIENES1RGIGNvZGUgZm9yIGltcG9ydGluZyBhIE9jaVByb3ZpZGVyIHJlc291cmNlIHVwb24gcnVubmluZyBcImNka3RmIHBsYW4gPHN0YWNrLW5hbWU+XCJcbiAgKiBAcGFyYW0gc2NvcGUgVGhlIHNjb3BlIGluIHdoaWNoIHRvIGRlZmluZSB0aGlzIGNvbnN0cnVjdFxuICAqIEBwYXJhbSBpbXBvcnRUb0lkIFRoZSBjb25zdHJ1Y3QgaWQgdXNlZCBpbiB0aGUgZ2VuZXJhdGVkIGNvbmZpZyBmb3IgdGhlIE9jaVByb3ZpZGVyIHRvIGltcG9ydFxuICAqIEBwYXJhbSBpbXBvcnRGcm9tSWQgVGhlIGlkIG9mIHRoZSBleGlzdGluZyBPY2lQcm92aWRlciB0aGF0IHNob3VsZCBiZSBpbXBvcnRlZC4gUmVmZXIgdG8gdGhlIHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvb3JhY2xlL29jaS81LjQ3LjAvZG9jcyNpbXBvcnQgaW1wb3J0IHNlY3Rpb259IGluIHRoZSBkb2N1bWVudGF0aW9uIG9mIHRoaXMgcmVzb3VyY2UgZm9yIHRoZSBpZCB0byB1c2VcbiAgKiBAcGFyYW0gcHJvdmlkZXI/IE9wdGlvbmFsIGluc3RhbmNlIG9mIHRoZSBwcm92aWRlciB3aGVyZSB0aGUgT2NpUHJvdmlkZXIgdG8gaW1wb3J0IGlzIGZvdW5kXG4gICovXG4gIHB1YmxpYyBzdGF0aWMgZ2VuZXJhdGVDb25maWdGb3JJbXBvcnQoc2NvcGU6IENvbnN0cnVjdCwgaW1wb3J0VG9JZDogc3RyaW5nLCBpbXBvcnRGcm9tSWQ6IHN0cmluZywgcHJvdmlkZXI/OiBjZGt0Zi5UZXJyYWZvcm1Qcm92aWRlcikge1xuICAgICAgICByZXR1cm4gbmV3IGNka3RmLkltcG9ydGFibGVSZXNvdXJjZShzY29wZSwgaW1wb3J0VG9JZCwgeyB0ZXJyYWZvcm1SZXNvdXJjZVR5cGU6IFwib2NpXCIsIGltcG9ydElkOiBpbXBvcnRGcm9tSWQsIHByb3ZpZGVyIH0pO1xuICAgICAgfVxuXG4gIC8vID09PT09PT09PT09XG4gIC8vIElOSVRJQUxJWkVSXG4gIC8vID09PT09PT09PT09XG5cbiAgLyoqXG4gICogQ3JlYXRlIGEgbmV3IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvb3JhY2xlL29jaS81LjQ3LjAvZG9jcyBvY2l9IFJlc291cmNlXG4gICpcbiAgKiBAcGFyYW0gc2NvcGUgVGhlIHNjb3BlIGluIHdoaWNoIHRvIGRlZmluZSB0aGlzIGNvbnN0cnVjdFxuICAqIEBwYXJhbSBpZCBUaGUgc2NvcGVkIGNvbnN0cnVjdCBJRC4gTXVzdCBiZSB1bmlxdWUgYW1vbmdzdCBzaWJsaW5ncyBpbiB0aGUgc2FtZSBzY29wZVxuICAqIEBwYXJhbSBvcHRpb25zIE9jaVByb3ZpZGVyQ29uZmlnID0ge31cbiAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGNvbmZpZzogT2NpUHJvdmlkZXJDb25maWcgPSB7fSkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgdGVycmFmb3JtUmVzb3VyY2VUeXBlOiAnb2NpJyxcbiAgICAgIHRlcnJhZm9ybUdlbmVyYXRvck1ldGFkYXRhOiB7XG4gICAgICAgIHByb3ZpZGVyTmFtZTogJ29jaScsXG4gICAgICAgIHByb3ZpZGVyVmVyc2lvbjogJzUuNDcuMCcsXG4gICAgICAgIHByb3ZpZGVyVmVyc2lvbkNvbnN0cmFpbnQ6ICd+PiA1LjAnXG4gICAgICB9LFxuICAgICAgdGVycmFmb3JtUHJvdmlkZXJTb3VyY2U6ICdvcmFjbGUvb2NpJ1xuICAgIH0pO1xuICAgIHRoaXMuX2F1dGggPSBjb25maWcuYXV0aDtcbiAgICB0aGlzLl9jb25maWdGaWxlUHJvZmlsZSA9IGNvbmZpZy5jb25maWdGaWxlUHJvZmlsZTtcbiAgICB0aGlzLl9kaXNhYmxlQXV0b1JldHJpZXMgPSBjb25maWcuZGlzYWJsZUF1dG9SZXRyaWVzO1xuICAgIHRoaXMuX2ZpbmdlcnByaW50ID0gY29uZmlnLmZpbmdlcnByaW50O1xuICAgIHRoaXMuX2lnbm9yZURlZmluZWRUYWdzID0gY29uZmlnLmlnbm9yZURlZmluZWRUYWdzO1xuICAgIHRoaXMuX3ByaXZhdGVLZXkgPSBjb25maWcucHJpdmF0ZUtleTtcbiAgICB0aGlzLl9wcml2YXRlS2V5UGFzc3dvcmQgPSBjb25maWcucHJpdmF0ZUtleVBhc3N3b3JkO1xuICAgIHRoaXMuX3ByaXZhdGVLZXlQYXRoID0gY29uZmlnLnByaXZhdGVLZXlQYXRoO1xuICAgIHRoaXMuX3JlYWxtU3BlY2lmaWNTZXJ2aWNlRW5kcG9pbnRUZW1wbGF0ZUVuYWJsZWQgPSBjb25maWcucmVhbG1TcGVjaWZpY1NlcnZpY2VFbmRwb2ludFRlbXBsYXRlRW5hYmxlZDtcbiAgICB0aGlzLl9yZWdpb24gPSBjb25maWcucmVnaW9uO1xuICAgIHRoaXMuX3JldHJ5RHVyYXRpb25TZWNvbmRzID0gY29uZmlnLnJldHJ5RHVyYXRpb25TZWNvbmRzO1xuICAgIHRoaXMuX3RlbmFuY3lPY2lkID0gY29uZmlnLnRlbmFuY3lPY2lkO1xuICAgIHRoaXMuX3VzZXJPY2lkID0gY29uZmlnLnVzZXJPY2lkO1xuICAgIHRoaXMuX2FsaWFzID0gY29uZmlnLmFsaWFzO1xuICB9XG5cbiAgLy8gPT09PT09PT09PVxuICAvLyBBVFRSSUJVVEVTXG4gIC8vID09PT09PT09PT1cblxuICAvLyBhdXRoIC0gY29tcHV0ZWQ6IGZhbHNlLCBvcHRpb25hbDogdHJ1ZSwgcmVxdWlyZWQ6IGZhbHNlXG4gIHByaXZhdGUgX2F1dGg/OiBzdHJpbmc7IFxuICBwdWJsaWMgZ2V0IGF1dGgoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2F1dGg7XG4gIH1cbiAgcHVibGljIHNldCBhdXRoKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9hdXRoID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIHJlc2V0QXV0aCgpIHtcbiAgICB0aGlzLl9hdXRoID0gdW5kZWZpbmVkO1xuICB9XG4gIC8vIFRlbXBvcmFyaWx5IGV4cG9zZSBpbnB1dCB2YWx1ZS4gVXNlIHdpdGggY2F1dGlvbi5cbiAgcHVibGljIGdldCBhdXRoSW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2F1dGg7XG4gIH1cblxuICAvLyBjb25maWdfZmlsZV9wcm9maWxlIC0gY29tcHV0ZWQ6IGZhbHNlLCBvcHRpb25hbDogdHJ1ZSwgcmVxdWlyZWQ6IGZhbHNlXG4gIHByaXZhdGUgX2NvbmZpZ0ZpbGVQcm9maWxlPzogc3RyaW5nOyBcbiAgcHVibGljIGdldCBjb25maWdGaWxlUHJvZmlsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fY29uZmlnRmlsZVByb2ZpbGU7XG4gIH1cbiAgcHVibGljIHNldCBjb25maWdGaWxlUHJvZmlsZSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fY29uZmlnRmlsZVByb2ZpbGUgPSB2YWx1ZTtcbiAgfVxuICBwdWJsaWMgcmVzZXRDb25maWdGaWxlUHJvZmlsZSgpIHtcbiAgICB0aGlzLl9jb25maWdGaWxlUHJvZmlsZSA9IHVuZGVmaW5lZDtcbiAgfVxuICAvLyBUZW1wb3JhcmlseSBleHBvc2UgaW5wdXQgdmFsdWUuIFVzZSB3aXRoIGNhdXRpb24uXG4gIHB1YmxpYyBnZXQgY29uZmlnRmlsZVByb2ZpbGVJbnB1dCgpIHtcbiAgICByZXR1cm4gdGhpcy5fY29uZmlnRmlsZVByb2ZpbGU7XG4gIH1cblxuICAvLyBkaXNhYmxlX2F1dG9fcmV0cmllcyAtIGNvbXB1dGVkOiBmYWxzZSwgb3B0aW9uYWw6IHRydWUsIHJlcXVpcmVkOiBmYWxzZVxuICBwcml2YXRlIF9kaXNhYmxlQXV0b1JldHJpZXM/OiBib29sZWFuIHwgY2RrdGYuSVJlc29sdmFibGU7IFxuICBwdWJsaWMgZ2V0IGRpc2FibGVBdXRvUmV0cmllcygpIHtcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZUF1dG9SZXRyaWVzO1xuICB9XG4gIHB1YmxpYyBzZXQgZGlzYWJsZUF1dG9SZXRyaWVzKHZhbHVlOiBib29sZWFuIHwgY2RrdGYuSVJlc29sdmFibGUgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9kaXNhYmxlQXV0b1JldHJpZXMgPSB2YWx1ZTtcbiAgfVxuICBwdWJsaWMgcmVzZXREaXNhYmxlQXV0b1JldHJpZXMoKSB7XG4gICAgdGhpcy5fZGlzYWJsZUF1dG9SZXRyaWVzID0gdW5kZWZpbmVkO1xuICB9XG4gIC8vIFRlbXBvcmFyaWx5IGV4cG9zZSBpbnB1dCB2YWx1ZS4gVXNlIHdpdGggY2F1dGlvbi5cbiAgcHVibGljIGdldCBkaXNhYmxlQXV0b1JldHJpZXNJbnB1dCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZUF1dG9SZXRyaWVzO1xuICB9XG5cbiAgLy8gZmluZ2VycHJpbnQgLSBjb21wdXRlZDogZmFsc2UsIG9wdGlvbmFsOiB0cnVlLCByZXF1aXJlZDogZmFsc2VcbiAgcHJpdmF0ZSBfZmluZ2VycHJpbnQ/OiBzdHJpbmc7IFxuICBwdWJsaWMgZ2V0IGZpbmdlcnByaW50KCkge1xuICAgIHJldHVybiB0aGlzLl9maW5nZXJwcmludDtcbiAgfVxuICBwdWJsaWMgc2V0IGZpbmdlcnByaW50KHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9maW5nZXJwcmludCA9IHZhbHVlO1xuICB9XG4gIHB1YmxpYyByZXNldEZpbmdlcnByaW50KCkge1xuICAgIHRoaXMuX2ZpbmdlcnByaW50ID0gdW5kZWZpbmVkO1xuICB9XG4gIC8vIFRlbXBvcmFyaWx5IGV4cG9zZSBpbnB1dCB2YWx1ZS4gVXNlIHdpdGggY2F1dGlvbi5cbiAgcHVibGljIGdldCBmaW5nZXJwcmludElucHV0KCkge1xuICAgIHJldHVybiB0aGlzLl9maW5nZXJwcmludDtcbiAgfVxuXG4gIC8vIGlnbm9yZV9kZWZpbmVkX3RhZ3MgLSBjb21wdXRlZDogZmFsc2UsIG9wdGlvbmFsOiB0cnVlLCByZXF1aXJlZDogZmFsc2VcbiAgcHJpdmF0ZSBfaWdub3JlRGVmaW5lZFRhZ3M/OiBzdHJpbmdbXTsgXG4gIHB1YmxpYyBnZXQgaWdub3JlRGVmaW5lZFRhZ3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lnbm9yZURlZmluZWRUYWdzO1xuICB9XG4gIHB1YmxpYyBzZXQgaWdub3JlRGVmaW5lZFRhZ3ModmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5faWdub3JlRGVmaW5lZFRhZ3MgPSB2YWx1ZTtcbiAgfVxuICBwdWJsaWMgcmVzZXRJZ25vcmVEZWZpbmVkVGFncygpIHtcbiAgICB0aGlzLl9pZ25vcmVEZWZpbmVkVGFncyA9IHVuZGVmaW5lZDtcbiAgfVxuICAvLyBUZW1wb3JhcmlseSBleHBvc2UgaW5wdXQgdmFsdWUuIFVzZSB3aXRoIGNhdXRpb24uXG4gIHB1YmxpYyBnZXQgaWdub3JlRGVmaW5lZFRhZ3NJbnB1dCgpIHtcbiAgICByZXR1cm4gdGhpcy5faWdub3JlRGVmaW5lZFRhZ3M7XG4gIH1cblxuICAvLyBwcml2YXRlX2tleSAtIGNvbXB1dGVkOiBmYWxzZSwgb3B0aW9uYWw6IHRydWUsIHJlcXVpcmVkOiBmYWxzZVxuICBwcml2YXRlIF9wcml2YXRlS2V5Pzogc3RyaW5nOyBcbiAgcHVibGljIGdldCBwcml2YXRlS2V5KCkge1xuICAgIHJldHVybiB0aGlzLl9wcml2YXRlS2V5O1xuICB9XG4gIHB1YmxpYyBzZXQgcHJpdmF0ZUtleSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fcHJpdmF0ZUtleSA9IHZhbHVlO1xuICB9XG4gIHB1YmxpYyByZXNldFByaXZhdGVLZXkoKSB7XG4gICAgdGhpcy5fcHJpdmF0ZUtleSA9IHVuZGVmaW5lZDtcbiAgfVxuICAvLyBUZW1wb3JhcmlseSBleHBvc2UgaW5wdXQgdmFsdWUuIFVzZSB3aXRoIGNhdXRpb24uXG4gIHB1YmxpYyBnZXQgcHJpdmF0ZUtleUlucHV0KCkge1xuICAgIHJldHVybiB0aGlzLl9wcml2YXRlS2V5O1xuICB9XG5cbiAgLy8gcHJpdmF0ZV9rZXlfcGFzc3dvcmQgLSBjb21wdXRlZDogZmFsc2UsIG9wdGlvbmFsOiB0cnVlLCByZXF1aXJlZDogZmFsc2VcbiAgcHJpdmF0ZSBfcHJpdmF0ZUtleVBhc3N3b3JkPzogc3RyaW5nOyBcbiAgcHVibGljIGdldCBwcml2YXRlS2V5UGFzc3dvcmQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3ByaXZhdGVLZXlQYXNzd29yZDtcbiAgfVxuICBwdWJsaWMgc2V0IHByaXZhdGVLZXlQYXNzd29yZCh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fcHJpdmF0ZUtleVBhc3N3b3JkID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIHJlc2V0UHJpdmF0ZUtleVBhc3N3b3JkKCkge1xuICAgIHRoaXMuX3ByaXZhdGVLZXlQYXNzd29yZCA9IHVuZGVmaW5lZDtcbiAgfVxuICAvLyBUZW1wb3JhcmlseSBleHBvc2UgaW5wdXQgdmFsdWUuIFVzZSB3aXRoIGNhdXRpb24uXG4gIHB1YmxpYyBnZXQgcHJpdmF0ZUtleVBhc3N3b3JkSW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3ByaXZhdGVLZXlQYXNzd29yZDtcbiAgfVxuXG4gIC8vIHByaXZhdGVfa2V5X3BhdGggLSBjb21wdXRlZDogZmFsc2UsIG9wdGlvbmFsOiB0cnVlLCByZXF1aXJlZDogZmFsc2VcbiAgcHJpdmF0ZSBfcHJpdmF0ZUtleVBhdGg/OiBzdHJpbmc7IFxuICBwdWJsaWMgZ2V0IHByaXZhdGVLZXlQYXRoKCkge1xuICAgIHJldHVybiB0aGlzLl9wcml2YXRlS2V5UGF0aDtcbiAgfVxuICBwdWJsaWMgc2V0IHByaXZhdGVLZXlQYXRoKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9wcml2YXRlS2V5UGF0aCA9IHZhbHVlO1xuICB9XG4gIHB1YmxpYyByZXNldFByaXZhdGVLZXlQYXRoKCkge1xuICAgIHRoaXMuX3ByaXZhdGVLZXlQYXRoID0gdW5kZWZpbmVkO1xuICB9XG4gIC8vIFRlbXBvcmFyaWx5IGV4cG9zZSBpbnB1dCB2YWx1ZS4gVXNlIHdpdGggY2F1dGlvbi5cbiAgcHVibGljIGdldCBwcml2YXRlS2V5UGF0aElucHV0KCkge1xuICAgIHJldHVybiB0aGlzLl9wcml2YXRlS2V5UGF0aDtcbiAgfVxuXG4gIC8vIHJlYWxtX3NwZWNpZmljX3NlcnZpY2VfZW5kcG9pbnRfdGVtcGxhdGVfZW5hYmxlZCAtIGNvbXB1dGVkOiBmYWxzZSwgb3B0aW9uYWw6IHRydWUsIHJlcXVpcmVkOiBmYWxzZVxuICBwcml2YXRlIF9yZWFsbVNwZWNpZmljU2VydmljZUVuZHBvaW50VGVtcGxhdGVFbmFibGVkPzogYm9vbGVhbiB8IGNka3RmLklSZXNvbHZhYmxlOyBcbiAgcHVibGljIGdldCByZWFsbVNwZWNpZmljU2VydmljZUVuZHBvaW50VGVtcGxhdGVFbmFibGVkKCkge1xuICAgIHJldHVybiB0aGlzLl9yZWFsbVNwZWNpZmljU2VydmljZUVuZHBvaW50VGVtcGxhdGVFbmFibGVkO1xuICB9XG4gIHB1YmxpYyBzZXQgcmVhbG1TcGVjaWZpY1NlcnZpY2VFbmRwb2ludFRlbXBsYXRlRW5hYmxlZCh2YWx1ZTogYm9vbGVhbiB8IGNka3RmLklSZXNvbHZhYmxlIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fcmVhbG1TcGVjaWZpY1NlcnZpY2VFbmRwb2ludFRlbXBsYXRlRW5hYmxlZCA9IHZhbHVlO1xuICB9XG4gIHB1YmxpYyByZXNldFJlYWxtU3BlY2lmaWNTZXJ2aWNlRW5kcG9pbnRUZW1wbGF0ZUVuYWJsZWQoKSB7XG4gICAgdGhpcy5fcmVhbG1TcGVjaWZpY1NlcnZpY2VFbmRwb2ludFRlbXBsYXRlRW5hYmxlZCA9IHVuZGVmaW5lZDtcbiAgfVxuICAvLyBUZW1wb3JhcmlseSBleHBvc2UgaW5wdXQgdmFsdWUuIFVzZSB3aXRoIGNhdXRpb24uXG4gIHB1YmxpYyBnZXQgcmVhbG1TcGVjaWZpY1NlcnZpY2VFbmRwb2ludFRlbXBsYXRlRW5hYmxlZElucHV0KCkge1xuICAgIHJldHVybiB0aGlzLl9yZWFsbVNwZWNpZmljU2VydmljZUVuZHBvaW50VGVtcGxhdGVFbmFibGVkO1xuICB9XG5cbiAgLy8gcmVnaW9uIC0gY29tcHV0ZWQ6IGZhbHNlLCBvcHRpb25hbDogdHJ1ZSwgcmVxdWlyZWQ6IGZhbHNlXG4gIHByaXZhdGUgX3JlZ2lvbj86IHN0cmluZzsgXG4gIHB1YmxpYyBnZXQgcmVnaW9uKCkge1xuICAgIHJldHVybiB0aGlzLl9yZWdpb247XG4gIH1cbiAgcHVibGljIHNldCByZWdpb24odmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX3JlZ2lvbiA9IHZhbHVlO1xuICB9XG4gIHB1YmxpYyByZXNldFJlZ2lvbigpIHtcbiAgICB0aGlzLl9yZWdpb24gPSB1bmRlZmluZWQ7XG4gIH1cbiAgLy8gVGVtcG9yYXJpbHkgZXhwb3NlIGlucHV0IHZhbHVlLiBVc2Ugd2l0aCBjYXV0aW9uLlxuICBwdWJsaWMgZ2V0IHJlZ2lvbklucHV0KCkge1xuICAgIHJldHVybiB0aGlzLl9yZWdpb247XG4gIH1cblxuICAvLyByZXRyeV9kdXJhdGlvbl9zZWNvbmRzIC0gY29tcHV0ZWQ6IGZhbHNlLCBvcHRpb25hbDogdHJ1ZSwgcmVxdWlyZWQ6IGZhbHNlXG4gIHByaXZhdGUgX3JldHJ5RHVyYXRpb25TZWNvbmRzPzogbnVtYmVyOyBcbiAgcHVibGljIGdldCByZXRyeUR1cmF0aW9uU2Vjb25kcygpIHtcbiAgICByZXR1cm4gdGhpcy5fcmV0cnlEdXJhdGlvblNlY29uZHM7XG4gIH1cbiAgcHVibGljIHNldCByZXRyeUR1cmF0aW9uU2Vjb25kcyh2YWx1ZTogbnVtYmVyIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fcmV0cnlEdXJhdGlvblNlY29uZHMgPSB2YWx1ZTtcbiAgfVxuICBwdWJsaWMgcmVzZXRSZXRyeUR1cmF0aW9uU2Vjb25kcygpIHtcbiAgICB0aGlzLl9yZXRyeUR1cmF0aW9uU2Vjb25kcyA9IHVuZGVmaW5lZDtcbiAgfVxuICAvLyBUZW1wb3JhcmlseSBleHBvc2UgaW5wdXQgdmFsdWUuIFVzZSB3aXRoIGNhdXRpb24uXG4gIHB1YmxpYyBnZXQgcmV0cnlEdXJhdGlvblNlY29uZHNJbnB1dCgpIHtcbiAgICByZXR1cm4gdGhpcy5fcmV0cnlEdXJhdGlvblNlY29uZHM7XG4gIH1cblxuICAvLyB0ZW5hbmN5X29jaWQgLSBjb21wdXRlZDogZmFsc2UsIG9wdGlvbmFsOiB0cnVlLCByZXF1aXJlZDogZmFsc2VcbiAgcHJpdmF0ZSBfdGVuYW5jeU9jaWQ/OiBzdHJpbmc7IFxuICBwdWJsaWMgZ2V0IHRlbmFuY3lPY2lkKCkge1xuICAgIHJldHVybiB0aGlzLl90ZW5hbmN5T2NpZDtcbiAgfVxuICBwdWJsaWMgc2V0IHRlbmFuY3lPY2lkKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl90ZW5hbmN5T2NpZCA9IHZhbHVlO1xuICB9XG4gIHB1YmxpYyByZXNldFRlbmFuY3lPY2lkKCkge1xuICAgIHRoaXMuX3RlbmFuY3lPY2lkID0gdW5kZWZpbmVkO1xuICB9XG4gIC8vIFRlbXBvcmFyaWx5IGV4cG9zZSBpbnB1dCB2YWx1ZS4gVXNlIHdpdGggY2F1dGlvbi5cbiAgcHVibGljIGdldCB0ZW5hbmN5T2NpZElucHV0KCkge1xuICAgIHJldHVybiB0aGlzLl90ZW5hbmN5T2NpZDtcbiAgfVxuXG4gIC8vIHVzZXJfb2NpZCAtIGNvbXB1dGVkOiBmYWxzZSwgb3B0aW9uYWw6IHRydWUsIHJlcXVpcmVkOiBmYWxzZVxuICBwcml2YXRlIF91c2VyT2NpZD86IHN0cmluZzsgXG4gIHB1YmxpYyBnZXQgdXNlck9jaWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3VzZXJPY2lkO1xuICB9XG4gIHB1YmxpYyBzZXQgdXNlck9jaWQodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX3VzZXJPY2lkID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIHJlc2V0VXNlck9jaWQoKSB7XG4gICAgdGhpcy5fdXNlck9jaWQgPSB1bmRlZmluZWQ7XG4gIH1cbiAgLy8gVGVtcG9yYXJpbHkgZXhwb3NlIGlucHV0IHZhbHVlLiBVc2Ugd2l0aCBjYXV0aW9uLlxuICBwdWJsaWMgZ2V0IHVzZXJPY2lkSW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3VzZXJPY2lkO1xuICB9XG5cbiAgLy8gYWxpYXMgLSBjb21wdXRlZDogZmFsc2UsIG9wdGlvbmFsOiB0cnVlLCByZXF1aXJlZDogZmFsc2VcbiAgcHJpdmF0ZSBfYWxpYXM/OiBzdHJpbmc7IFxuICBwdWJsaWMgZ2V0IGFsaWFzKCkge1xuICAgIHJldHVybiB0aGlzLl9hbGlhcztcbiAgfVxuICBwdWJsaWMgc2V0IGFsaWFzKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9hbGlhcyA9IHZhbHVlO1xuICB9XG4gIHB1YmxpYyByZXNldEFsaWFzKCkge1xuICAgIHRoaXMuX2FsaWFzID0gdW5kZWZpbmVkO1xuICB9XG4gIC8vIFRlbXBvcmFyaWx5IGV4cG9zZSBpbnB1dCB2YWx1ZS4gVXNlIHdpdGggY2F1dGlvbi5cbiAgcHVibGljIGdldCBhbGlhc0lucHV0KCkge1xuICAgIHJldHVybiB0aGlzLl9hbGlhcztcbiAgfVxuXG4gIC8vID09PT09PT09PVxuICAvLyBTWU5USEVTSVNcbiAgLy8gPT09PT09PT09XG5cbiAgcHJvdGVjdGVkIHN5bnRoZXNpemVBdHRyaWJ1dGVzKCk6IHsgW25hbWU6IHN0cmluZ106IGFueSB9IHtcbiAgICByZXR1cm4ge1xuICAgICAgYXV0aDogY2RrdGYuc3RyaW5nVG9UZXJyYWZvcm0odGhpcy5fYXV0aCksXG4gICAgICBjb25maWdfZmlsZV9wcm9maWxlOiBjZGt0Zi5zdHJpbmdUb1RlcnJhZm9ybSh0aGlzLl9jb25maWdGaWxlUHJvZmlsZSksXG4gICAgICBkaXNhYmxlX2F1dG9fcmV0cmllczogY2RrdGYuYm9vbGVhblRvVGVycmFmb3JtKHRoaXMuX2Rpc2FibGVBdXRvUmV0cmllcyksXG4gICAgICBmaW5nZXJwcmludDogY2RrdGYuc3RyaW5nVG9UZXJyYWZvcm0odGhpcy5fZmluZ2VycHJpbnQpLFxuICAgICAgaWdub3JlX2RlZmluZWRfdGFnczogY2RrdGYubGlzdE1hcHBlcihjZGt0Zi5zdHJpbmdUb1RlcnJhZm9ybSwgZmFsc2UpKHRoaXMuX2lnbm9yZURlZmluZWRUYWdzKSxcbiAgICAgIHByaXZhdGVfa2V5OiBjZGt0Zi5zdHJpbmdUb1RlcnJhZm9ybSh0aGlzLl9wcml2YXRlS2V5KSxcbiAgICAgIHByaXZhdGVfa2V5X3Bhc3N3b3JkOiBjZGt0Zi5zdHJpbmdUb1RlcnJhZm9ybSh0aGlzLl9wcml2YXRlS2V5UGFzc3dvcmQpLFxuICAgICAgcHJpdmF0ZV9rZXlfcGF0aDogY2RrdGYuc3RyaW5nVG9UZXJyYWZvcm0odGhpcy5fcHJpdmF0ZUtleVBhdGgpLFxuICAgICAgcmVhbG1fc3BlY2lmaWNfc2VydmljZV9lbmRwb2ludF90ZW1wbGF0ZV9lbmFibGVkOiBjZGt0Zi5ib29sZWFuVG9UZXJyYWZvcm0odGhpcy5fcmVhbG1TcGVjaWZpY1NlcnZpY2VFbmRwb2ludFRlbXBsYXRlRW5hYmxlZCksXG4gICAgICByZWdpb246IGNka3RmLnN0cmluZ1RvVGVycmFmb3JtKHRoaXMuX3JlZ2lvbiksXG4gICAgICByZXRyeV9kdXJhdGlvbl9zZWNvbmRzOiBjZGt0Zi5udW1iZXJUb1RlcnJhZm9ybSh0aGlzLl9yZXRyeUR1cmF0aW9uU2Vjb25kcyksXG4gICAgICB0ZW5hbmN5X29jaWQ6IGNka3RmLnN0cmluZ1RvVGVycmFmb3JtKHRoaXMuX3RlbmFuY3lPY2lkKSxcbiAgICAgIHVzZXJfb2NpZDogY2RrdGYuc3RyaW5nVG9UZXJyYWZvcm0odGhpcy5fdXNlck9jaWQpLFxuICAgICAgYWxpYXM6IGNka3RmLnN0cmluZ1RvVGVycmFmb3JtKHRoaXMuX2FsaWFzKSxcbiAgICB9O1xuICB9XG5cbiAgcHJvdGVjdGVkIHN5bnRoZXNpemVIY2xBdHRyaWJ1dGVzKCk6IHsgW25hbWU6IHN0cmluZ106IGFueSB9IHtcbiAgICBjb25zdCBhdHRycyA9IHtcbiAgICAgIGF1dGg6IHtcbiAgICAgICAgdmFsdWU6IGNka3RmLnN0cmluZ1RvSGNsVGVycmFmb3JtKHRoaXMuX2F1dGgpLFxuICAgICAgICBpc0Jsb2NrOiBmYWxzZSxcbiAgICAgICAgdHlwZTogXCJzaW1wbGVcIixcbiAgICAgICAgc3RvcmFnZUNsYXNzVHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgICBjb25maWdfZmlsZV9wcm9maWxlOiB7XG4gICAgICAgIHZhbHVlOiBjZGt0Zi5zdHJpbmdUb0hjbFRlcnJhZm9ybSh0aGlzLl9jb25maWdGaWxlUHJvZmlsZSksXG4gICAgICAgIGlzQmxvY2s6IGZhbHNlLFxuICAgICAgICB0eXBlOiBcInNpbXBsZVwiLFxuICAgICAgICBzdG9yYWdlQ2xhc3NUeXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICAgIGRpc2FibGVfYXV0b19yZXRyaWVzOiB7XG4gICAgICAgIHZhbHVlOiBjZGt0Zi5ib29sZWFuVG9IY2xUZXJyYWZvcm0odGhpcy5fZGlzYWJsZUF1dG9SZXRyaWVzKSxcbiAgICAgICAgaXNCbG9jazogZmFsc2UsXG4gICAgICAgIHR5cGU6IFwic2ltcGxlXCIsXG4gICAgICAgIHN0b3JhZ2VDbGFzc1R5cGU6IFwiYm9vbGVhblwiLFxuICAgICAgfSxcbiAgICAgIGZpbmdlcnByaW50OiB7XG4gICAgICAgIHZhbHVlOiBjZGt0Zi5zdHJpbmdUb0hjbFRlcnJhZm9ybSh0aGlzLl9maW5nZXJwcmludCksXG4gICAgICAgIGlzQmxvY2s6IGZhbHNlLFxuICAgICAgICB0eXBlOiBcInNpbXBsZVwiLFxuICAgICAgICBzdG9yYWdlQ2xhc3NUeXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICAgIGlnbm9yZV9kZWZpbmVkX3RhZ3M6IHtcbiAgICAgICAgdmFsdWU6IGNka3RmLmxpc3RNYXBwZXJIY2woY2RrdGYuc3RyaW5nVG9IY2xUZXJyYWZvcm0sIGZhbHNlKSh0aGlzLl9pZ25vcmVEZWZpbmVkVGFncyksXG4gICAgICAgIGlzQmxvY2s6IGZhbHNlLFxuICAgICAgICB0eXBlOiBcImxpc3RcIixcbiAgICAgICAgc3RvcmFnZUNsYXNzVHlwZTogXCJzdHJpbmdMaXN0XCIsXG4gICAgICB9LFxuICAgICAgcHJpdmF0ZV9rZXk6IHtcbiAgICAgICAgdmFsdWU6IGNka3RmLnN0cmluZ1RvSGNsVGVycmFmb3JtKHRoaXMuX3ByaXZhdGVLZXkpLFxuICAgICAgICBpc0Jsb2NrOiBmYWxzZSxcbiAgICAgICAgdHlwZTogXCJzaW1wbGVcIixcbiAgICAgICAgc3RvcmFnZUNsYXNzVHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgICBwcml2YXRlX2tleV9wYXNzd29yZDoge1xuICAgICAgICB2YWx1ZTogY2RrdGYuc3RyaW5nVG9IY2xUZXJyYWZvcm0odGhpcy5fcHJpdmF0ZUtleVBhc3N3b3JkKSxcbiAgICAgICAgaXNCbG9jazogZmFsc2UsXG4gICAgICAgIHR5cGU6IFwic2ltcGxlXCIsXG4gICAgICAgIHN0b3JhZ2VDbGFzc1R5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgICAgcHJpdmF0ZV9rZXlfcGF0aDoge1xuICAgICAgICB2YWx1ZTogY2RrdGYuc3RyaW5nVG9IY2xUZXJyYWZvcm0odGhpcy5fcHJpdmF0ZUtleVBhdGgpLFxuICAgICAgICBpc0Jsb2NrOiBmYWxzZSxcbiAgICAgICAgdHlwZTogXCJzaW1wbGVcIixcbiAgICAgICAgc3RvcmFnZUNsYXNzVHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgICByZWFsbV9zcGVjaWZpY19zZXJ2aWNlX2VuZHBvaW50X3RlbXBsYXRlX2VuYWJsZWQ6IHtcbiAgICAgICAgdmFsdWU6IGNka3RmLmJvb2xlYW5Ub0hjbFRlcnJhZm9ybSh0aGlzLl9yZWFsbVNwZWNpZmljU2VydmljZUVuZHBvaW50VGVtcGxhdGVFbmFibGVkKSxcbiAgICAgICAgaXNCbG9jazogZmFsc2UsXG4gICAgICAgIHR5cGU6IFwic2ltcGxlXCIsXG4gICAgICAgIHN0b3JhZ2VDbGFzc1R5cGU6IFwiYm9vbGVhblwiLFxuICAgICAgfSxcbiAgICAgIHJlZ2lvbjoge1xuICAgICAgICB2YWx1ZTogY2RrdGYuc3RyaW5nVG9IY2xUZXJyYWZvcm0odGhpcy5fcmVnaW9uKSxcbiAgICAgICAgaXNCbG9jazogZmFsc2UsXG4gICAgICAgIHR5cGU6IFwic2ltcGxlXCIsXG4gICAgICAgIHN0b3JhZ2VDbGFzc1R5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgICAgcmV0cnlfZHVyYXRpb25fc2Vjb25kczoge1xuICAgICAgICB2YWx1ZTogY2RrdGYubnVtYmVyVG9IY2xUZXJyYWZvcm0odGhpcy5fcmV0cnlEdXJhdGlvblNlY29uZHMpLFxuICAgICAgICBpc0Jsb2NrOiBmYWxzZSxcbiAgICAgICAgdHlwZTogXCJzaW1wbGVcIixcbiAgICAgICAgc3RvcmFnZUNsYXNzVHlwZTogXCJudW1iZXJcIixcbiAgICAgIH0sXG4gICAgICB0ZW5hbmN5X29jaWQ6IHtcbiAgICAgICAgdmFsdWU6IGNka3RmLnN0cmluZ1RvSGNsVGVycmFmb3JtKHRoaXMuX3RlbmFuY3lPY2lkKSxcbiAgICAgICAgaXNCbG9jazogZmFsc2UsXG4gICAgICAgIHR5cGU6IFwic2ltcGxlXCIsXG4gICAgICAgIHN0b3JhZ2VDbGFzc1R5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgICAgdXNlcl9vY2lkOiB7XG4gICAgICAgIHZhbHVlOiBjZGt0Zi5zdHJpbmdUb0hjbFRlcnJhZm9ybSh0aGlzLl91c2VyT2NpZCksXG4gICAgICAgIGlzQmxvY2s6IGZhbHNlLFxuICAgICAgICB0eXBlOiBcInNpbXBsZVwiLFxuICAgICAgICBzdG9yYWdlQ2xhc3NUeXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICAgIGFsaWFzOiB7XG4gICAgICAgIHZhbHVlOiBjZGt0Zi5zdHJpbmdUb0hjbFRlcnJhZm9ybSh0aGlzLl9hbGlhcyksXG4gICAgICAgIGlzQmxvY2s6IGZhbHNlLFxuICAgICAgICB0eXBlOiBcInNpbXBsZVwiLFxuICAgICAgICBzdG9yYWdlQ2xhc3NUeXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgLy8gcmVtb3ZlIHVuZGVmaW5lZCBhdHRyaWJ1dGVzXG4gICAgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyhhdHRycykuZmlsdGVyKChbXywgdmFsdWVdKSA9PiB2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlLnZhbHVlICE9PSB1bmRlZmluZWQgKSlcbiAgfVxufVxuIl19
|