@fjall/components-infrastructure 0.88.3 → 0.89.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.
Files changed (152) hide show
  1. package/LICENSE +21 -0
  2. package/dist/lib/app.d.ts +33 -10
  3. package/dist/lib/app.js +79 -36
  4. package/dist/lib/aspects/index.d.ts +1 -0
  5. package/dist/lib/aspects/index.js +6 -0
  6. package/dist/lib/config/aws/accountAuditRole.d.ts +20 -0
  7. package/dist/lib/config/aws/accountAuditRole.js +38 -0
  8. package/dist/lib/config/aws/accountMonitoringRole.d.ts +22 -0
  9. package/dist/lib/config/aws/accountMonitoringRole.js +133 -0
  10. package/dist/lib/config/aws/cloudTrail.d.ts +0 -3
  11. package/dist/lib/config/aws/cloudTrail.js +2 -2
  12. package/dist/lib/config/aws/disasterRecovery.js +53 -20
  13. package/dist/lib/config/aws/ecrDefaultImage.js +4 -3
  14. package/dist/lib/config/aws/index.d.ts +4 -0
  15. package/dist/lib/config/aws/index.js +5 -1
  16. package/dist/lib/config/aws/oidcConnector.d.ts +8 -0
  17. package/dist/lib/config/aws/oidcConnector.js +46 -0
  18. package/dist/lib/config/aws/platform.d.ts +2 -0
  19. package/dist/lib/config/aws/platform.js +6 -0
  20. package/dist/lib/config/index.d.ts +2 -0
  21. package/dist/lib/config/index.js +21 -0
  22. package/dist/lib/patterns/aws/account.js +22 -10
  23. package/dist/lib/patterns/aws/cdn.d.ts +19 -40
  24. package/dist/lib/patterns/aws/cdn.js +21 -17
  25. package/dist/lib/patterns/aws/compute.d.ts +9 -720
  26. package/dist/lib/patterns/aws/compute.js +27 -432
  27. package/dist/lib/patterns/aws/computeEc2.d.ts +67 -0
  28. package/dist/lib/patterns/aws/computeEc2.js +46 -0
  29. package/dist/lib/patterns/aws/computeEcs.d.ts +446 -0
  30. package/dist/lib/patterns/aws/computeEcs.js +246 -0
  31. package/dist/lib/patterns/aws/computeLambda.d.ts +220 -0
  32. package/dist/lib/patterns/aws/computeLambda.js +147 -0
  33. package/dist/lib/patterns/aws/database.d.ts +7 -87
  34. package/dist/lib/patterns/aws/database.js +15 -38
  35. package/dist/lib/patterns/aws/domainDelegation.d.ts +8 -0
  36. package/dist/lib/patterns/aws/domainDelegation.js +54 -0
  37. package/dist/lib/patterns/aws/domainFactory.d.ts +8 -0
  38. package/dist/lib/patterns/aws/domainFactory.js +23 -0
  39. package/dist/lib/patterns/aws/index.d.ts +4 -1
  40. package/dist/lib/patterns/aws/index.js +6 -2
  41. package/dist/lib/patterns/aws/interfaces/cdn.d.ts +26 -0
  42. package/dist/lib/patterns/aws/interfaces/cdn.js +14 -0
  43. package/dist/lib/patterns/aws/interfaces/connector.d.ts +4 -181
  44. package/dist/lib/patterns/aws/interfaces/connector.js +16 -113
  45. package/dist/lib/patterns/aws/interfaces/domain.d.ts +2 -0
  46. package/dist/lib/patterns/aws/interfaces/domain.js +6 -0
  47. package/dist/lib/patterns/aws/interfaces/index.d.ts +2 -0
  48. package/dist/lib/patterns/aws/interfaces/index.js +5 -2
  49. package/dist/lib/patterns/aws/interfaces/pattern.d.ts +9 -6
  50. package/dist/lib/patterns/aws/interfaces/pattern.js +1 -1
  51. package/dist/lib/patterns/aws/network.js +6 -9
  52. package/dist/lib/patterns/aws/organisation.d.ts +4 -2
  53. package/dist/lib/patterns/aws/organisation.js +21 -8
  54. package/dist/lib/patterns/aws/payload.js +21 -12
  55. package/dist/lib/patterns/aws/storage.d.ts +3 -2
  56. package/dist/lib/patterns/aws/storage.js +1 -1
  57. package/dist/lib/resources/aws/audit/auditRole.js +4 -4
  58. package/dist/lib/resources/aws/audit/index.d.ts +1 -0
  59. package/dist/lib/resources/aws/audit/index.js +6 -0
  60. package/dist/lib/resources/aws/backup/backupPlan.js +3 -2
  61. package/dist/lib/resources/aws/backup/backupVault.js +5 -3
  62. package/dist/lib/resources/aws/base/awsStack.d.ts +4 -2
  63. package/dist/lib/resources/aws/base/awsStack.js +8 -2
  64. package/dist/lib/resources/aws/cdn/cloudFront.d.ts +14 -0
  65. package/dist/lib/resources/aws/cdn/cloudFront.js +52 -18
  66. package/dist/lib/resources/aws/compute/ec2.js +18 -22
  67. package/dist/lib/resources/aws/compute/ecs.d.ts +23 -10
  68. package/dist/lib/resources/aws/compute/ecs.js +121 -64
  69. package/dist/lib/resources/aws/compute/index.d.ts +1 -0
  70. package/dist/lib/resources/aws/compute/index.js +2 -1
  71. package/dist/lib/resources/aws/compute/lambda.d.ts +0 -2
  72. package/dist/lib/resources/aws/compute/lambda.js +12 -27
  73. package/dist/lib/resources/aws/database/dynamodb.js +3 -13
  74. package/dist/lib/resources/aws/database/index.d.ts +8 -2
  75. package/dist/lib/resources/aws/database/index.js +19 -3
  76. package/dist/lib/resources/aws/database/rdsAurora.d.ts +2 -3
  77. package/dist/lib/resources/aws/database/rdsAurora.js +32 -68
  78. package/dist/lib/resources/aws/database/rdsAuroraGlobal.d.ts +6 -6
  79. package/dist/lib/resources/aws/database/rdsAuroraGlobal.js +25 -29
  80. package/dist/lib/resources/aws/database/rdsDefaults.d.ts +11 -0
  81. package/dist/lib/resources/aws/database/rdsDefaults.js +15 -0
  82. package/dist/lib/resources/aws/database/rdsHelpers.d.ts +39 -0
  83. package/dist/lib/resources/aws/database/rdsHelpers.js +75 -0
  84. package/dist/lib/resources/aws/database/rdsInstance.d.ts +7 -8
  85. package/dist/lib/resources/aws/database/rdsInstance.js +40 -84
  86. package/dist/lib/resources/aws/database/rdsProxyOutput.d.ts +7 -0
  87. package/dist/lib/resources/aws/database/rdsProxyOutput.js +18 -0
  88. package/dist/lib/resources/aws/iam/index.d.ts +0 -1
  89. package/dist/lib/resources/aws/iam/index.js +1 -2
  90. package/dist/lib/resources/aws/index.d.ts +0 -1
  91. package/dist/lib/resources/aws/index.js +1 -2
  92. package/dist/lib/resources/aws/logging/cloudTrail.js +13 -3
  93. package/dist/lib/resources/aws/logging/index.d.ts +2 -0
  94. package/dist/lib/resources/aws/logging/index.js +19 -0
  95. package/dist/lib/resources/aws/messaging/index.d.ts +3 -2
  96. package/dist/lib/resources/aws/messaging/index.js +4 -3
  97. package/dist/lib/resources/aws/messaging/sqs.js +14 -11
  98. package/dist/lib/resources/aws/messaging/utils.d.ts +1 -2
  99. package/dist/lib/resources/aws/messaging/utils.js +3 -4
  100. package/dist/lib/resources/aws/monitoring/index.d.ts +0 -1
  101. package/dist/lib/resources/aws/monitoring/index.js +4 -17
  102. package/dist/lib/resources/aws/networking/domain.d.ts +13 -0
  103. package/dist/lib/resources/aws/networking/domain.js +102 -0
  104. package/dist/lib/resources/aws/networking/domainCertificate.d.ts +13 -0
  105. package/dist/lib/resources/aws/networking/domainCertificate.js +28 -0
  106. package/dist/lib/resources/aws/networking/hostedZone.d.ts +28 -0
  107. package/dist/lib/resources/aws/networking/hostedZone.js +150 -0
  108. package/dist/lib/resources/aws/networking/index.d.ts +4 -0
  109. package/dist/lib/resources/aws/networking/index.js +5 -1
  110. package/dist/lib/resources/aws/networking/ipamPool.js +57 -31
  111. package/dist/lib/resources/aws/networking/securityGroup.d.ts +5 -0
  112. package/dist/lib/resources/aws/networking/securityGroup.js +14 -0
  113. package/dist/lib/resources/aws/networking/vpc.js +9 -4
  114. package/dist/lib/resources/aws/organisation/costAllocationTagActivator.d.ts +17 -0
  115. package/dist/lib/resources/aws/organisation/costAllocationTagActivator.js +66 -0
  116. package/dist/lib/resources/aws/organisation/index.d.ts +1 -0
  117. package/dist/lib/resources/aws/organisation/index.js +4 -2
  118. package/dist/lib/resources/aws/secrets/index.d.ts +0 -1
  119. package/dist/lib/resources/aws/secrets/index.js +1 -2
  120. package/dist/lib/resources/aws/storage/ecr.d.ts +0 -1
  121. package/dist/lib/resources/aws/storage/ecr.js +5 -5
  122. package/dist/lib/resources/aws/storage/s3.d.ts +3 -3
  123. package/dist/lib/resources/aws/storage/s3.js +1 -1
  124. package/dist/lib/resources/aws/utilities/index.d.ts +5 -0
  125. package/dist/lib/resources/aws/utilities/index.js +22 -0
  126. package/dist/lib/utils/backupTierMapping.d.ts +11 -0
  127. package/dist/lib/utils/backupTierMapping.js +17 -0
  128. package/dist/lib/utils/capitaliseString.d.ts +1 -12
  129. package/dist/lib/utils/capitaliseString.js +8 -28
  130. package/dist/lib/utils/connections.d.ts +46 -0
  131. package/dist/lib/utils/connections.js +159 -0
  132. package/dist/lib/utils/connector.d.ts +183 -0
  133. package/dist/lib/utils/connector.js +117 -0
  134. package/dist/lib/utils/databaseTypes.d.ts +85 -0
  135. package/dist/lib/utils/databaseTypes.js +34 -0
  136. package/dist/lib/utils/dnsRecords.d.ts +4 -0
  137. package/dist/lib/utils/dnsRecords.js +108 -0
  138. package/dist/lib/utils/domainTypes.d.ts +37 -0
  139. package/dist/lib/utils/domainTypes.js +10 -0
  140. package/dist/lib/utils/env.d.ts +42 -0
  141. package/dist/lib/utils/env.js +122 -0
  142. package/dist/lib/utils/getConfig.d.ts +0 -5
  143. package/dist/lib/utils/getConfig.js +42 -19
  144. package/dist/lib/utils/index.d.ts +7 -0
  145. package/dist/lib/utils/index.js +8 -1
  146. package/dist/lib/utils/removalPolicy.d.ts +2 -0
  147. package/dist/lib/utils/removalPolicy.js +16 -0
  148. package/dist/lib/utils/standardTagsAspect.d.ts +4 -0
  149. package/dist/lib/utils/standardTagsAspect.js +8 -8
  150. package/dist/lib/utils/vpcUtils.d.ts +14 -0
  151. package/dist/lib/utils/vpcUtils.js +28 -0
  152. package/package.json +7 -6
@@ -1,183 +1,6 @@
1
1
  /**
2
- * Unified connector interface for bidirectional connections.
3
- *
4
- * This module provides a unified `IConnector` interface that enables
5
- * bidirectional connections between compute resources (ECS, Lambda, EC2)
6
- * and data resources (S3, DynamoDB, SQS, RDS).
7
- *
8
- * The connector pattern unifies:
9
- * - Security group rules (IConnectable) for RDS, ECS, etc.
10
- * - IAM grants for S3, DynamoDB, SQS
11
- *
12
- * @example
13
- * // Simple connections (default permissions)
14
- * const api = app.addCompute(ComputeFactory.build("Api", {
15
- * type: "ecs",
16
- * services: [{
17
- * name: "api",
18
- * capacityProvider: "FARGATE",
19
- * connections: [database, bucket, cache, queue]
20
- * }]
21
- * }));
22
- *
23
- * @example
24
- * // Explicit access levels
25
- * const worker = app.addCompute(ComputeFactory.build("Worker", {
26
- * type: "ecs",
27
- * services: [{
28
- * name: "worker",
29
- * capacityProvider: "FARGATE",
30
- * connections: [
31
- * database, // Security group (RDS)
32
- * { resource: cache, access: "read" }, // Read-only DynamoDB
33
- * { resource: bucket, access: "write" }, // Write-only S3
34
- * { resource: queue, access: "consume" } // Consume-only SQS
35
- * ]
36
- * }]
37
- * }));
2
+ * Re-export from canonical location in lib/utils/.
3
+ * Connector types are shared between resources and patterns layers,
4
+ * so they belong in utils per the infrastructure layer boundary rules.
38
5
  */
39
- import { type IConnectable } from "aws-cdk-lib/aws-ec2";
40
- import { type IGrantable, type Grant } from "aws-cdk-lib/aws-iam";
41
- /**
42
- * Connector type discriminator.
43
- * - "storage": S3 buckets
44
- * - "dynamodb": DynamoDB tables
45
- * - "queue": SQS queues
46
- * - "securityGroup": Resources with security groups (ECS, Lambda with VPC)
47
- * - "relational": RDS databases (uses security groups)
48
- */
49
- export type ConnectorType = "storage" | "dynamodb" | "queue" | "securityGroup" | "relational";
50
- /**
51
- * Access level for storage and DynamoDB connectors.
52
- */
53
- export type ConnectionAccess = "read" | "write" | "readWrite";
54
- /**
55
- * Access level for messaging connectors (SQS).
56
- */
57
- export type MessagingAccess = "send" | "consume" | "full";
58
- /**
59
- * Base connector interface.
60
- * All connector types implement this interface.
61
- */
62
- export interface IConnector {
63
- /** The type of connector resource. Used for runtime type narrowing. */
64
- readonly connectorType: ConnectorType;
65
- }
66
- /**
67
- * Storage connector interface (S3).
68
- * Provides IAM grant methods for S3 bucket access.
69
- */
70
- export interface IStorageConnector extends IConnector {
71
- readonly connectorType: "storage";
72
- /** Grant read permissions to the grantee. */
73
- grantRead(grantee: IGrantable): Grant;
74
- /** Grant write permissions to the grantee. */
75
- grantWrite(grantee: IGrantable): Grant;
76
- /** Grant read and write permissions to the grantee. */
77
- grantReadWrite(grantee: IGrantable): Grant;
78
- }
79
- /**
80
- * DynamoDB connector interface.
81
- * Provides IAM grant methods for DynamoDB table access.
82
- */
83
- export interface IDynamoDBConnector extends IConnector {
84
- readonly connectorType: "dynamodb";
85
- /** Grant read data permissions to the grantee. */
86
- grantReadData(grantee: IGrantable): Grant;
87
- /** Grant write data permissions to the grantee. */
88
- grantWriteData(grantee: IGrantable): Grant;
89
- /** Grant read and write data permissions to the grantee. */
90
- grantReadWriteData(grantee: IGrantable): Grant;
91
- }
92
- /**
93
- * Queue connector interface (SQS).
94
- * Provides IAM grant methods for SQS queue access.
95
- */
96
- export interface IQueueConnector extends IConnector {
97
- readonly connectorType: "queue";
98
- /** Grant send message permissions to the grantee. */
99
- grantSendMessages(grantee: IGrantable): Grant;
100
- /** Grant consume (receive and delete) message permissions to the grantee. */
101
- grantConsumeMessages(grantee: IGrantable): Grant;
102
- /** Grant full access (send and consume) to the grantee. */
103
- grantFull(grantee: IGrantable): Grant;
104
- }
105
- /**
106
- * Security group connector interface (RDS, ECS with VPC).
107
- * Provides access to the security group connections for network-level access.
108
- *
109
- * Both "securityGroup" and "relational" types use this interface:
110
- * - "relational": RDS databases (Aurora, Instance, GlobalAurora)
111
- * - "securityGroup": Other resources requiring security group rules (ECS, EC2)
112
- */
113
- export interface ISecurityGroupConnector extends IConnector {
114
- readonly connectorType: "securityGroup" | "relational";
115
- /** The security group connections for this resource. */
116
- readonly connections: IConnectable["connections"];
117
- }
118
- /**
119
- * Union type representing any connector interface.
120
- */
121
- export type AnyConnector = IStorageConnector | IDynamoDBConnector | IQueueConnector | ISecurityGroupConnector;
122
- /**
123
- * Connection configuration with explicit access level.
124
- * Use this to specify non-default access levels.
125
- */
126
- export interface ConnectionConfig {
127
- /** The resource to connect to. */
128
- resource: AnyConnector | IConnectable;
129
- /** The access level to grant. Defaults vary by resource type. */
130
- access?: ConnectionAccess | MessagingAccess;
131
- }
132
- /**
133
- * Connection specification.
134
- * Can be:
135
- * - IConnectable: Legacy security group resource
136
- * - AnyConnector: Unified connector resource
137
- * - ConnectionConfig: Explicit access configuration
138
- */
139
- export type ConnectionSpec = IConnectable | AnyConnector | ConnectionConfig;
140
- /** Connection result types. */
141
- export declare const CONNECTION_TYPE: {
142
- readonly SECURITY_GROUP: "securityGroup";
143
- readonly IAM: "iam";
144
- };
145
- export type ConnectionType = (typeof CONNECTION_TYPE)[keyof typeof CONNECTION_TYPE];
146
- /**
147
- * Result of processing a connection.
148
- * Contains the grant result for IAM-based connections.
149
- */
150
- export interface ConnectionResult {
151
- /** The resource that was connected. */
152
- resource: AnyConnector | IConnectable;
153
- /** The grant result if IAM permissions were granted. */
154
- grant?: Grant;
155
- /** The type of connection that was made. */
156
- connectionType: ConnectionType;
157
- }
158
- /** Check if a value is a valid ConnectionAccess. */
159
- export declare function isConnectionAccess(value: unknown): value is ConnectionAccess;
160
- /** Check if a value is a valid MessagingAccess. */
161
- export declare function isMessagingAccess(value: unknown): value is MessagingAccess;
162
- /**
163
- * Type guard to check if a resource is a connector.
164
- * Returns AnyConnector for discriminated union narrowing in switch statements.
165
- */
166
- export declare function isConnector(resource: unknown): resource is AnyConnector;
167
- /**
168
- * Type guard to check if a resource is a CDK IConnectable.
169
- * Checks for the `connections` property that IConnectable resources have.
170
- */
171
- export declare function isConnectable(resource: unknown): resource is IConnectable;
172
- /**
173
- * Type guard to check if a connection spec is a ConnectionConfig.
174
- */
175
- export declare function isConnectionConfig(spec: ConnectionSpec): spec is ConnectionConfig;
176
- /** Type guard for storage connectors (S3 buckets). */
177
- export declare function isStorageConnector(connector: IConnector): connector is IStorageConnector;
178
- /** Type guard for DynamoDB connectors. */
179
- export declare function isDynamoDBConnector(connector: IConnector): connector is IDynamoDBConnector;
180
- /** Type guard for queue connectors (SQS queues). */
181
- export declare function isQueueConnector(connector: IConnector): connector is IQueueConnector;
182
- /** Type guard for security group connectors (RDS, ECS). */
183
- export declare function isSecurityGroupConnector(connector: IConnector): connector is ISecurityGroupConnector;
6
+ export { type ConnectorType, type ConnectionAccess, type MessagingAccess, type IConnector, type IStorageConnector, type IDynamoDBConnector, type IQueueConnector, type ISecurityGroupConnector, type AnyConnector, type ConnectionConfig, type ConnectionSpec, CONNECTION_TYPE, type ConnectionType, type ConnectionResult, isConnectionAccess, isMessagingAccess, isConnector, isConnectable, isConnectionConfig, isStorageConnector, isDynamoDBConnector, isQueueConnector, isSecurityGroupConnector } from "../../../utils/connector.js";
@@ -1,117 +1,20 @@
1
1
  "use strict";
2
- /**
3
- * Unified connector interface for bidirectional connections.
4
- *
5
- * This module provides a unified `IConnector` interface that enables
6
- * bidirectional connections between compute resources (ECS, Lambda, EC2)
7
- * and data resources (S3, DynamoDB, SQS, RDS).
8
- *
9
- * The connector pattern unifies:
10
- * - Security group rules (IConnectable) for RDS, ECS, etc.
11
- * - IAM grants for S3, DynamoDB, SQS
12
- *
13
- * @example
14
- * // Simple connections (default permissions)
15
- * const api = app.addCompute(ComputeFactory.build("Api", {
16
- * type: "ecs",
17
- * services: [{
18
- * name: "api",
19
- * capacityProvider: "FARGATE",
20
- * connections: [database, bucket, cache, queue]
21
- * }]
22
- * }));
23
- *
24
- * @example
25
- * // Explicit access levels
26
- * const worker = app.addCompute(ComputeFactory.build("Worker", {
27
- * type: "ecs",
28
- * services: [{
29
- * name: "worker",
30
- * capacityProvider: "FARGATE",
31
- * connections: [
32
- * database, // Security group (RDS)
33
- * { resource: cache, access: "read" }, // Read-only DynamoDB
34
- * { resource: bucket, access: "write" }, // Write-only S3
35
- * { resource: queue, access: "consume" } // Consume-only SQS
36
- * ]
37
- * }]
38
- * }));
39
- */
40
2
  Object.defineProperty(exports, "__esModule", { value: true });
41
- exports.CONNECTION_TYPE = void 0;
42
- exports.isConnectionAccess = isConnectionAccess;
43
- exports.isMessagingAccess = isMessagingAccess;
44
- exports.isConnector = isConnector;
45
- exports.isConnectable = isConnectable;
46
- exports.isConnectionConfig = isConnectionConfig;
47
- exports.isStorageConnector = isStorageConnector;
48
- exports.isDynamoDBConnector = isDynamoDBConnector;
49
- exports.isQueueConnector = isQueueConnector;
50
- exports.isSecurityGroupConnector = isSecurityGroupConnector;
51
- /** Connection result types. */
52
- exports.CONNECTION_TYPE = {
53
- SECURITY_GROUP: "securityGroup",
54
- IAM: "iam"
55
- };
56
- const VALID_CONNECTION_ACCESS = [
57
- "read",
58
- "write",
59
- "readWrite"
60
- ];
61
- const VALID_MESSAGING_ACCESS = [
62
- "send",
63
- "consume",
64
- "full"
65
- ];
66
- /** Check if a value is a valid ConnectionAccess. */
67
- function isConnectionAccess(value) {
68
- return (typeof value === "string" &&
69
- VALID_CONNECTION_ACCESS.includes(value));
70
- }
71
- /** Check if a value is a valid MessagingAccess. */
72
- function isMessagingAccess(value) {
73
- return (typeof value === "string" &&
74
- VALID_MESSAGING_ACCESS.includes(value));
75
- }
76
- /**
77
- * Type guard to check if a resource is a connector.
78
- * Returns AnyConnector for discriminated union narrowing in switch statements.
79
- */
80
- function isConnector(resource) {
81
- return (resource !== null &&
82
- typeof resource === "object" &&
83
- "connectorType" in resource);
84
- }
85
- /**
86
- * Type guard to check if a resource is a CDK IConnectable.
87
- * Checks for the `connections` property that IConnectable resources have.
88
- */
89
- function isConnectable(resource) {
90
- return (resource !== null &&
91
- typeof resource === "object" &&
92
- "connections" in resource);
93
- }
3
+ exports.isSecurityGroupConnector = exports.isQueueConnector = exports.isDynamoDBConnector = exports.isStorageConnector = exports.isConnectionConfig = exports.isConnectable = exports.isConnector = exports.isMessagingAccess = exports.isConnectionAccess = exports.CONNECTION_TYPE = void 0;
94
4
  /**
95
- * Type guard to check if a connection spec is a ConnectionConfig.
5
+ * Re-export from canonical location in lib/utils/.
6
+ * Connector types are shared between resources and patterns layers,
7
+ * so they belong in utils per the infrastructure layer boundary rules.
96
8
  */
97
- function isConnectionConfig(spec) {
98
- return spec !== null && typeof spec === "object" && "resource" in spec;
99
- }
100
- /** Type guard for storage connectors (S3 buckets). */
101
- function isStorageConnector(connector) {
102
- return connector.connectorType === "storage";
103
- }
104
- /** Type guard for DynamoDB connectors. */
105
- function isDynamoDBConnector(connector) {
106
- return connector.connectorType === "dynamodb";
107
- }
108
- /** Type guard for queue connectors (SQS queues). */
109
- function isQueueConnector(connector) {
110
- return connector.connectorType === "queue";
111
- }
112
- /** Type guard for security group connectors (RDS, ECS). */
113
- function isSecurityGroupConnector(connector) {
114
- return (connector.connectorType === "securityGroup" ||
115
- connector.connectorType === "relational");
116
- }
117
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3BhdHRlcm5zL2F3cy9pbnRlcmZhY2VzL2Nvbm5lY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQ0c7OztBQTJLSCxnREFLQztBQUdELDhDQUtDO0FBTUQsa0NBTUM7QUFNRCxzQ0FNQztBQUtELGdEQUlDO0FBR0QsZ0RBSUM7QUFHRCxrREFJQztBQUdELDRDQUlDO0FBR0QsNERBT0M7QUFqSEQsK0JBQStCO0FBQ2xCLFFBQUEsZUFBZSxHQUFHO0lBQzdCLGNBQWMsRUFBRSxlQUFlO0lBQy9CLEdBQUcsRUFBRSxLQUFLO0NBQ0YsQ0FBQztBQW9CWCxNQUFNLHVCQUF1QixHQUFnQztJQUMzRCxNQUFNO0lBQ04sT0FBTztJQUNQLFdBQVc7Q0FDWixDQUFDO0FBQ0YsTUFBTSxzQkFBc0IsR0FBK0I7SUFDekQsTUFBTTtJQUNOLFNBQVM7SUFDVCxNQUFNO0NBQ1AsQ0FBQztBQUVGLG9EQUFvRDtBQUNwRCxTQUFnQixrQkFBa0IsQ0FBQyxLQUFjO0lBQy9DLE9BQU8sQ0FDTCxPQUFPLEtBQUssS0FBSyxRQUFRO1FBQ3pCLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxLQUF5QixDQUFDLENBQzVELENBQUM7QUFDSixDQUFDO0FBRUQsbURBQW1EO0FBQ25ELFNBQWdCLGlCQUFpQixDQUFDLEtBQWM7SUFDOUMsT0FBTyxDQUNMLE9BQU8sS0FBSyxLQUFLLFFBQVE7UUFDekIsc0JBQXNCLENBQUMsUUFBUSxDQUFDLEtBQXdCLENBQUMsQ0FDMUQsQ0FBQztBQUNKLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQixXQUFXLENBQUMsUUFBaUI7SUFDM0MsT0FBTyxDQUNMLFFBQVEsS0FBSyxJQUFJO1FBQ2pCLE9BQU8sUUFBUSxLQUFLLFFBQVE7UUFDNUIsZUFBZSxJQUFJLFFBQVEsQ0FDNUIsQ0FBQztBQUNKLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQixhQUFhLENBQUMsUUFBaUI7SUFDN0MsT0FBTyxDQUNMLFFBQVEsS0FBSyxJQUFJO1FBQ2pCLE9BQU8sUUFBUSxLQUFLLFFBQVE7UUFDNUIsYUFBYSxJQUFJLFFBQVEsQ0FDMUIsQ0FBQztBQUNKLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLGtCQUFrQixDQUNoQyxJQUFvQjtJQUVwQixPQUFPLElBQUksS0FBSyxJQUFJLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLFVBQVUsSUFBSSxJQUFJLENBQUM7QUFDekUsQ0FBQztBQUVELHNEQUFzRDtBQUN0RCxTQUFnQixrQkFBa0IsQ0FDaEMsU0FBcUI7SUFFckIsT0FBTyxTQUFTLENBQUMsYUFBYSxLQUFLLFNBQVMsQ0FBQztBQUMvQyxDQUFDO0FBRUQsMENBQTBDO0FBQzFDLFNBQWdCLG1CQUFtQixDQUNqQyxTQUFxQjtJQUVyQixPQUFPLFNBQVMsQ0FBQyxhQUFhLEtBQUssVUFBVSxDQUFDO0FBQ2hELENBQUM7QUFFRCxvREFBb0Q7QUFDcEQsU0FBZ0IsZ0JBQWdCLENBQzlCLFNBQXFCO0lBRXJCLE9BQU8sU0FBUyxDQUFDLGFBQWEsS0FBSyxPQUFPLENBQUM7QUFDN0MsQ0FBQztBQUVELDJEQUEyRDtBQUMzRCxTQUFnQix3QkFBd0IsQ0FDdEMsU0FBcUI7SUFFckIsT0FBTyxDQUNMLFNBQVMsQ0FBQyxhQUFhLEtBQUssZUFBZTtRQUMzQyxTQUFTLENBQUMsYUFBYSxLQUFLLFlBQVksQ0FDekMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFVuaWZpZWQgY29ubmVjdG9yIGludGVyZmFjZSBmb3IgYmlkaXJlY3Rpb25hbCBjb25uZWN0aW9ucy5cbiAqXG4gKiBUaGlzIG1vZHVsZSBwcm92aWRlcyBhIHVuaWZpZWQgYElDb25uZWN0b3JgIGludGVyZmFjZSB0aGF0IGVuYWJsZXNcbiAqIGJpZGlyZWN0aW9uYWwgY29ubmVjdGlvbnMgYmV0d2VlbiBjb21wdXRlIHJlc291cmNlcyAoRUNTLCBMYW1iZGEsIEVDMilcbiAqIGFuZCBkYXRhIHJlc291cmNlcyAoUzMsIER5bmFtb0RCLCBTUVMsIFJEUykuXG4gKlxuICogVGhlIGNvbm5lY3RvciBwYXR0ZXJuIHVuaWZpZXM6XG4gKiAtIFNlY3VyaXR5IGdyb3VwIHJ1bGVzIChJQ29ubmVjdGFibGUpIGZvciBSRFMsIEVDUywgZXRjLlxuICogLSBJQU0gZ3JhbnRzIGZvciBTMywgRHluYW1vREIsIFNRU1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBTaW1wbGUgY29ubmVjdGlvbnMgKGRlZmF1bHQgcGVybWlzc2lvbnMpXG4gKiBjb25zdCBhcGkgPSBhcHAuYWRkQ29tcHV0ZShDb21wdXRlRmFjdG9yeS5idWlsZChcIkFwaVwiLCB7XG4gKiAgIHR5cGU6IFwiZWNzXCIsXG4gKiAgIHNlcnZpY2VzOiBbe1xuICogICAgIG5hbWU6IFwiYXBpXCIsXG4gKiAgICAgY2FwYWNpdHlQcm92aWRlcjogXCJGQVJHQVRFXCIsXG4gKiAgICAgY29ubmVjdGlvbnM6IFtkYXRhYmFzZSwgYnVja2V0LCBjYWNoZSwgcXVldWVdXG4gKiAgIH1dXG4gKiB9KSk7XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEV4cGxpY2l0IGFjY2VzcyBsZXZlbHNcbiAqIGNvbnN0IHdvcmtlciA9IGFwcC5hZGRDb21wdXRlKENvbXB1dGVGYWN0b3J5LmJ1aWxkKFwiV29ya2VyXCIsIHtcbiAqICAgdHlwZTogXCJlY3NcIixcbiAqICAgc2VydmljZXM6IFt7XG4gKiAgICAgbmFtZTogXCJ3b3JrZXJcIixcbiAqICAgICBjYXBhY2l0eVByb3ZpZGVyOiBcIkZBUkdBVEVcIixcbiAqICAgICBjb25uZWN0aW9uczogW1xuICogICAgICAgZGF0YWJhc2UsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2VjdXJpdHkgZ3JvdXAgKFJEUylcbiAqICAgICAgIHsgcmVzb3VyY2U6IGNhY2hlLCBhY2Nlc3M6IFwicmVhZFwiIH0sICAgLy8gUmVhZC1vbmx5IER5bmFtb0RCXG4gKiAgICAgICB7IHJlc291cmNlOiBidWNrZXQsIGFjY2VzczogXCJ3cml0ZVwiIH0sIC8vIFdyaXRlLW9ubHkgUzNcbiAqICAgICAgIHsgcmVzb3VyY2U6IHF1ZXVlLCBhY2Nlc3M6IFwiY29uc3VtZVwiIH0gLy8gQ29uc3VtZS1vbmx5IFNRU1xuICogICAgIF1cbiAqICAgfV1cbiAqIH0pKTtcbiAqL1xuXG5pbXBvcnQgeyB0eXBlIElDb25uZWN0YWJsZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWMyXCI7XG5pbXBvcnQgeyB0eXBlIElHcmFudGFibGUsIHR5cGUgR3JhbnQgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiO1xuXG4vKipcbiAqIENvbm5lY3RvciB0eXBlIGRpc2NyaW1pbmF0b3IuXG4gKiAtIFwic3RvcmFnZVwiOiBTMyBidWNrZXRzXG4gKiAtIFwiZHluYW1vZGJcIjogRHluYW1vREIgdGFibGVzXG4gKiAtIFwicXVldWVcIjogU1FTIHF1ZXVlc1xuICogLSBcInNlY3VyaXR5R3JvdXBcIjogUmVzb3VyY2VzIHdpdGggc2VjdXJpdHkgZ3JvdXBzIChFQ1MsIExhbWJkYSB3aXRoIFZQQylcbiAqIC0gXCJyZWxhdGlvbmFsXCI6IFJEUyBkYXRhYmFzZXMgKHVzZXMgc2VjdXJpdHkgZ3JvdXBzKVxuICovXG5leHBvcnQgdHlwZSBDb25uZWN0b3JUeXBlID1cbiAgfCBcInN0b3JhZ2VcIlxuICB8IFwiZHluYW1vZGJcIlxuICB8IFwicXVldWVcIlxuICB8IFwic2VjdXJpdHlHcm91cFwiXG4gIHwgXCJyZWxhdGlvbmFsXCI7XG5cbi8qKlxuICogQWNjZXNzIGxldmVsIGZvciBzdG9yYWdlIGFuZCBEeW5hbW9EQiBjb25uZWN0b3JzLlxuICovXG5leHBvcnQgdHlwZSBDb25uZWN0aW9uQWNjZXNzID0gXCJyZWFkXCIgfCBcIndyaXRlXCIgfCBcInJlYWRXcml0ZVwiO1xuXG4vKipcbiAqIEFjY2VzcyBsZXZlbCBmb3IgbWVzc2FnaW5nIGNvbm5lY3RvcnMgKFNRUykuXG4gKi9cbmV4cG9ydCB0eXBlIE1lc3NhZ2luZ0FjY2VzcyA9IFwic2VuZFwiIHwgXCJjb25zdW1lXCIgfCBcImZ1bGxcIjtcblxuLyoqXG4gKiBCYXNlIGNvbm5lY3RvciBpbnRlcmZhY2UuXG4gKiBBbGwgY29ubmVjdG9yIHR5cGVzIGltcGxlbWVudCB0aGlzIGludGVyZmFjZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQ29ubmVjdG9yIHtcbiAgLyoqIFRoZSB0eXBlIG9mIGNvbm5lY3RvciByZXNvdXJjZS4gVXNlZCBmb3IgcnVudGltZSB0eXBlIG5hcnJvd2luZy4gKi9cbiAgcmVhZG9ubHkgY29ubmVjdG9yVHlwZTogQ29ubmVjdG9yVHlwZTtcbn1cblxuLyoqXG4gKiBTdG9yYWdlIGNvbm5lY3RvciBpbnRlcmZhY2UgKFMzKS5cbiAqIFByb3ZpZGVzIElBTSBncmFudCBtZXRob2RzIGZvciBTMyBidWNrZXQgYWNjZXNzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElTdG9yYWdlQ29ubmVjdG9yIGV4dGVuZHMgSUNvbm5lY3RvciB7XG4gIHJlYWRvbmx5IGNvbm5lY3RvclR5cGU6IFwic3RvcmFnZVwiO1xuXG4gIC8qKiBHcmFudCByZWFkIHBlcm1pc3Npb25zIHRvIHRoZSBncmFudGVlLiAqL1xuICBncmFudFJlYWQoZ3JhbnRlZTogSUdyYW50YWJsZSk6IEdyYW50O1xuXG4gIC8qKiBHcmFudCB3cml0ZSBwZXJtaXNzaW9ucyB0byB0aGUgZ3JhbnRlZS4gKi9cbiAgZ3JhbnRXcml0ZShncmFudGVlOiBJR3JhbnRhYmxlKTogR3JhbnQ7XG5cbiAgLyoqIEdyYW50IHJlYWQgYW5kIHdyaXRlIHBlcm1pc3Npb25zIHRvIHRoZSBncmFudGVlLiAqL1xuICBncmFudFJlYWRXcml0ZShncmFudGVlOiBJR3JhbnRhYmxlKTogR3JhbnQ7XG59XG5cbi8qKlxuICogRHluYW1vREIgY29ubmVjdG9yIGludGVyZmFjZS5cbiAqIFByb3ZpZGVzIElBTSBncmFudCBtZXRob2RzIGZvciBEeW5hbW9EQiB0YWJsZSBhY2Nlc3MuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUR5bmFtb0RCQ29ubmVjdG9yIGV4dGVuZHMgSUNvbm5lY3RvciB7XG4gIHJlYWRvbmx5IGNvbm5lY3RvclR5cGU6IFwiZHluYW1vZGJcIjtcblxuICAvKiogR3JhbnQgcmVhZCBkYXRhIHBlcm1pc3Npb25zIHRvIHRoZSBncmFudGVlLiAqL1xuICBncmFudFJlYWREYXRhKGdyYW50ZWU6IElHcmFudGFibGUpOiBHcmFudDtcblxuICAvKiogR3JhbnQgd3JpdGUgZGF0YSBwZXJtaXNzaW9ucyB0byB0aGUgZ3JhbnRlZS4gKi9cbiAgZ3JhbnRXcml0ZURhdGEoZ3JhbnRlZTogSUdyYW50YWJsZSk6IEdyYW50O1xuXG4gIC8qKiBHcmFudCByZWFkIGFuZCB3cml0ZSBkYXRhIHBlcm1pc3Npb25zIHRvIHRoZSBncmFudGVlLiAqL1xuICBncmFudFJlYWRXcml0ZURhdGEoZ3JhbnRlZTogSUdyYW50YWJsZSk6IEdyYW50O1xufVxuXG4vKipcbiAqIFF1ZXVlIGNvbm5lY3RvciBpbnRlcmZhY2UgKFNRUykuXG4gKiBQcm92aWRlcyBJQU0gZ3JhbnQgbWV0aG9kcyBmb3IgU1FTIHF1ZXVlIGFjY2Vzcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJUXVldWVDb25uZWN0b3IgZXh0ZW5kcyBJQ29ubmVjdG9yIHtcbiAgcmVhZG9ubHkgY29ubmVjdG9yVHlwZTogXCJxdWV1ZVwiO1xuXG4gIC8qKiBHcmFudCBzZW5kIG1lc3NhZ2UgcGVybWlzc2lvbnMgdG8gdGhlIGdyYW50ZWUuICovXG4gIGdyYW50U2VuZE1lc3NhZ2VzKGdyYW50ZWU6IElHcmFudGFibGUpOiBHcmFudDtcblxuICAvKiogR3JhbnQgY29uc3VtZSAocmVjZWl2ZSBhbmQgZGVsZXRlKSBtZXNzYWdlIHBlcm1pc3Npb25zIHRvIHRoZSBncmFudGVlLiAqL1xuICBncmFudENvbnN1bWVNZXNzYWdlcyhncmFudGVlOiBJR3JhbnRhYmxlKTogR3JhbnQ7XG5cbiAgLyoqIEdyYW50IGZ1bGwgYWNjZXNzIChzZW5kIGFuZCBjb25zdW1lKSB0byB0aGUgZ3JhbnRlZS4gKi9cbiAgZ3JhbnRGdWxsKGdyYW50ZWU6IElHcmFudGFibGUpOiBHcmFudDtcbn1cblxuLyoqXG4gKiBTZWN1cml0eSBncm91cCBjb25uZWN0b3IgaW50ZXJmYWNlIChSRFMsIEVDUyB3aXRoIFZQQykuXG4gKiBQcm92aWRlcyBhY2Nlc3MgdG8gdGhlIHNlY3VyaXR5IGdyb3VwIGNvbm5lY3Rpb25zIGZvciBuZXR3b3JrLWxldmVsIGFjY2Vzcy5cbiAqXG4gKiBCb3RoIFwic2VjdXJpdHlHcm91cFwiIGFuZCBcInJlbGF0aW9uYWxcIiB0eXBlcyB1c2UgdGhpcyBpbnRlcmZhY2U6XG4gKiAtIFwicmVsYXRpb25hbFwiOiBSRFMgZGF0YWJhc2VzIChBdXJvcmEsIEluc3RhbmNlLCBHbG9iYWxBdXJvcmEpXG4gKiAtIFwic2VjdXJpdHlHcm91cFwiOiBPdGhlciByZXNvdXJjZXMgcmVxdWlyaW5nIHNlY3VyaXR5IGdyb3VwIHJ1bGVzIChFQ1MsIEVDMilcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJU2VjdXJpdHlHcm91cENvbm5lY3RvciBleHRlbmRzIElDb25uZWN0b3Ige1xuICByZWFkb25seSBjb25uZWN0b3JUeXBlOiBcInNlY3VyaXR5R3JvdXBcIiB8IFwicmVsYXRpb25hbFwiO1xuXG4gIC8qKiBUaGUgc2VjdXJpdHkgZ3JvdXAgY29ubmVjdGlvbnMgZm9yIHRoaXMgcmVzb3VyY2UuICovXG4gIHJlYWRvbmx5IGNvbm5lY3Rpb25zOiBJQ29ubmVjdGFibGVbXCJjb25uZWN0aW9uc1wiXTtcbn1cblxuLyoqXG4gKiBVbmlvbiB0eXBlIHJlcHJlc2VudGluZyBhbnkgY29ubmVjdG9yIGludGVyZmFjZS5cbiAqL1xuZXhwb3J0IHR5cGUgQW55Q29ubmVjdG9yID1cbiAgfCBJU3RvcmFnZUNvbm5lY3RvclxuICB8IElEeW5hbW9EQkNvbm5lY3RvclxuICB8IElRdWV1ZUNvbm5lY3RvclxuICB8IElTZWN1cml0eUdyb3VwQ29ubmVjdG9yO1xuXG4vKipcbiAqIENvbm5lY3Rpb24gY29uZmlndXJhdGlvbiB3aXRoIGV4cGxpY2l0IGFjY2VzcyBsZXZlbC5cbiAqIFVzZSB0aGlzIHRvIHNwZWNpZnkgbm9uLWRlZmF1bHQgYWNjZXNzIGxldmVscy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb25uZWN0aW9uQ29uZmlnIHtcbiAgLyoqIFRoZSByZXNvdXJjZSB0byBjb25uZWN0IHRvLiAqL1xuICByZXNvdXJjZTogQW55Q29ubmVjdG9yIHwgSUNvbm5lY3RhYmxlO1xuXG4gIC8qKiBUaGUgYWNjZXNzIGxldmVsIHRvIGdyYW50LiBEZWZhdWx0cyB2YXJ5IGJ5IHJlc291cmNlIHR5cGUuICovXG4gIGFjY2Vzcz86IENvbm5lY3Rpb25BY2Nlc3MgfCBNZXNzYWdpbmdBY2Nlc3M7XG59XG5cbi8qKlxuICogQ29ubmVjdGlvbiBzcGVjaWZpY2F0aW9uLlxuICogQ2FuIGJlOlxuICogLSBJQ29ubmVjdGFibGU6IExlZ2FjeSBzZWN1cml0eSBncm91cCByZXNvdXJjZVxuICogLSBBbnlDb25uZWN0b3I6IFVuaWZpZWQgY29ubmVjdG9yIHJlc291cmNlXG4gKiAtIENvbm5lY3Rpb25Db25maWc6IEV4cGxpY2l0IGFjY2VzcyBjb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCB0eXBlIENvbm5lY3Rpb25TcGVjID0gSUNvbm5lY3RhYmxlIHwgQW55Q29ubmVjdG9yIHwgQ29ubmVjdGlvbkNvbmZpZztcblxuLyoqIENvbm5lY3Rpb24gcmVzdWx0IHR5cGVzLiAqL1xuZXhwb3J0IGNvbnN0IENPTk5FQ1RJT05fVFlQRSA9IHtcbiAgU0VDVVJJVFlfR1JPVVA6IFwic2VjdXJpdHlHcm91cFwiLFxuICBJQU06IFwiaWFtXCJcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIENvbm5lY3Rpb25UeXBlID1cbiAgKHR5cGVvZiBDT05ORUNUSU9OX1RZUEUpW2tleW9mIHR5cGVvZiBDT05ORUNUSU9OX1RZUEVdO1xuXG4vKipcbiAqIFJlc3VsdCBvZiBwcm9jZXNzaW5nIGEgY29ubmVjdGlvbi5cbiAqIENvbnRhaW5zIHRoZSBncmFudCByZXN1bHQgZm9yIElBTS1iYXNlZCBjb25uZWN0aW9ucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb25uZWN0aW9uUmVzdWx0IHtcbiAgLyoqIFRoZSByZXNvdXJjZSB0aGF0IHdhcyBjb25uZWN0ZWQuICovXG4gIHJlc291cmNlOiBBbnlDb25uZWN0b3IgfCBJQ29ubmVjdGFibGU7XG5cbiAgLyoqIFRoZSBncmFudCByZXN1bHQgaWYgSUFNIHBlcm1pc3Npb25zIHdlcmUgZ3JhbnRlZC4gKi9cbiAgZ3JhbnQ/OiBHcmFudDtcblxuICAvKiogVGhlIHR5cGUgb2YgY29ubmVjdGlvbiB0aGF0IHdhcyBtYWRlLiAqL1xuICBjb25uZWN0aW9uVHlwZTogQ29ubmVjdGlvblR5cGU7XG59XG5cbmNvbnN0IFZBTElEX0NPTk5FQ1RJT05fQUNDRVNTOiByZWFkb25seSBDb25uZWN0aW9uQWNjZXNzW10gPSBbXG4gIFwicmVhZFwiLFxuICBcIndyaXRlXCIsXG4gIFwicmVhZFdyaXRlXCJcbl07XG5jb25zdCBWQUxJRF9NRVNTQUdJTkdfQUNDRVNTOiByZWFkb25seSBNZXNzYWdpbmdBY2Nlc3NbXSA9IFtcbiAgXCJzZW5kXCIsXG4gIFwiY29uc3VtZVwiLFxuICBcImZ1bGxcIlxuXTtcblxuLyoqIENoZWNrIGlmIGEgdmFsdWUgaXMgYSB2YWxpZCBDb25uZWN0aW9uQWNjZXNzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQ29ubmVjdGlvbkFjY2Vzcyh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIENvbm5lY3Rpb25BY2Nlc3Mge1xuICByZXR1cm4gKFxuICAgIHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiAmJlxuICAgIFZBTElEX0NPTk5FQ1RJT05fQUNDRVNTLmluY2x1ZGVzKHZhbHVlIGFzIENvbm5lY3Rpb25BY2Nlc3MpXG4gICk7XG59XG5cbi8qKiBDaGVjayBpZiBhIHZhbHVlIGlzIGEgdmFsaWQgTWVzc2FnaW5nQWNjZXNzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzTWVzc2FnaW5nQWNjZXNzKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgTWVzc2FnaW5nQWNjZXNzIHtcbiAgcmV0dXJuIChcbiAgICB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgJiZcbiAgICBWQUxJRF9NRVNTQUdJTkdfQUNDRVNTLmluY2x1ZGVzKHZhbHVlIGFzIE1lc3NhZ2luZ0FjY2VzcylcbiAgKTtcbn1cblxuLyoqXG4gKiBUeXBlIGd1YXJkIHRvIGNoZWNrIGlmIGEgcmVzb3VyY2UgaXMgYSBjb25uZWN0b3IuXG4gKiBSZXR1cm5zIEFueUNvbm5lY3RvciBmb3IgZGlzY3JpbWluYXRlZCB1bmlvbiBuYXJyb3dpbmcgaW4gc3dpdGNoIHN0YXRlbWVudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0Nvbm5lY3RvcihyZXNvdXJjZTogdW5rbm93bik6IHJlc291cmNlIGlzIEFueUNvbm5lY3RvciB7XG4gIHJldHVybiAoXG4gICAgcmVzb3VyY2UgIT09IG51bGwgJiZcbiAgICB0eXBlb2YgcmVzb3VyY2UgPT09IFwib2JqZWN0XCIgJiZcbiAgICBcImNvbm5lY3RvclR5cGVcIiBpbiByZXNvdXJjZVxuICApO1xufVxuXG4vKipcbiAqIFR5cGUgZ3VhcmQgdG8gY2hlY2sgaWYgYSByZXNvdXJjZSBpcyBhIENESyBJQ29ubmVjdGFibGUuXG4gKiBDaGVja3MgZm9yIHRoZSBgY29ubmVjdGlvbnNgIHByb3BlcnR5IHRoYXQgSUNvbm5lY3RhYmxlIHJlc291cmNlcyBoYXZlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNDb25uZWN0YWJsZShyZXNvdXJjZTogdW5rbm93bik6IHJlc291cmNlIGlzIElDb25uZWN0YWJsZSB7XG4gIHJldHVybiAoXG4gICAgcmVzb3VyY2UgIT09IG51bGwgJiZcbiAgICB0eXBlb2YgcmVzb3VyY2UgPT09IFwib2JqZWN0XCIgJiZcbiAgICBcImNvbm5lY3Rpb25zXCIgaW4gcmVzb3VyY2VcbiAgKTtcbn1cblxuLyoqXG4gKiBUeXBlIGd1YXJkIHRvIGNoZWNrIGlmIGEgY29ubmVjdGlvbiBzcGVjIGlzIGEgQ29ubmVjdGlvbkNvbmZpZy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQ29ubmVjdGlvbkNvbmZpZyhcbiAgc3BlYzogQ29ubmVjdGlvblNwZWNcbik6IHNwZWMgaXMgQ29ubmVjdGlvbkNvbmZpZyB7XG4gIHJldHVybiBzcGVjICE9PSBudWxsICYmIHR5cGVvZiBzcGVjID09PSBcIm9iamVjdFwiICYmIFwicmVzb3VyY2VcIiBpbiBzcGVjO1xufVxuXG4vKiogVHlwZSBndWFyZCBmb3Igc3RvcmFnZSBjb25uZWN0b3JzIChTMyBidWNrZXRzKS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1N0b3JhZ2VDb25uZWN0b3IoXG4gIGNvbm5lY3RvcjogSUNvbm5lY3RvclxuKTogY29ubmVjdG9yIGlzIElTdG9yYWdlQ29ubmVjdG9yIHtcbiAgcmV0dXJuIGNvbm5lY3Rvci5jb25uZWN0b3JUeXBlID09PSBcInN0b3JhZ2VcIjtcbn1cblxuLyoqIFR5cGUgZ3VhcmQgZm9yIER5bmFtb0RCIGNvbm5lY3RvcnMuICovXG5leHBvcnQgZnVuY3Rpb24gaXNEeW5hbW9EQkNvbm5lY3RvcihcbiAgY29ubmVjdG9yOiBJQ29ubmVjdG9yXG4pOiBjb25uZWN0b3IgaXMgSUR5bmFtb0RCQ29ubmVjdG9yIHtcbiAgcmV0dXJuIGNvbm5lY3Rvci5jb25uZWN0b3JUeXBlID09PSBcImR5bmFtb2RiXCI7XG59XG5cbi8qKiBUeXBlIGd1YXJkIGZvciBxdWV1ZSBjb25uZWN0b3JzIChTUVMgcXVldWVzKS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1F1ZXVlQ29ubmVjdG9yKFxuICBjb25uZWN0b3I6IElDb25uZWN0b3Jcbik6IGNvbm5lY3RvciBpcyBJUXVldWVDb25uZWN0b3Ige1xuICByZXR1cm4gY29ubmVjdG9yLmNvbm5lY3RvclR5cGUgPT09IFwicXVldWVcIjtcbn1cblxuLyoqIFR5cGUgZ3VhcmQgZm9yIHNlY3VyaXR5IGdyb3VwIGNvbm5lY3RvcnMgKFJEUywgRUNTKS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1NlY3VyaXR5R3JvdXBDb25uZWN0b3IoXG4gIGNvbm5lY3RvcjogSUNvbm5lY3RvclxuKTogY29ubmVjdG9yIGlzIElTZWN1cml0eUdyb3VwQ29ubmVjdG9yIHtcbiAgcmV0dXJuIChcbiAgICBjb25uZWN0b3IuY29ubmVjdG9yVHlwZSA9PT0gXCJzZWN1cml0eUdyb3VwXCIgfHxcbiAgICBjb25uZWN0b3IuY29ubmVjdG9yVHlwZSA9PT0gXCJyZWxhdGlvbmFsXCJcbiAgKTtcbn1cbiJdfQ==
9
+ var connector_js_1 = require("../../../utils/connector.js");
10
+ Object.defineProperty(exports, "CONNECTION_TYPE", { enumerable: true, get: function () { return connector_js_1.CONNECTION_TYPE; } });
11
+ Object.defineProperty(exports, "isConnectionAccess", { enumerable: true, get: function () { return connector_js_1.isConnectionAccess; } });
12
+ Object.defineProperty(exports, "isMessagingAccess", { enumerable: true, get: function () { return connector_js_1.isMessagingAccess; } });
13
+ Object.defineProperty(exports, "isConnector", { enumerable: true, get: function () { return connector_js_1.isConnector; } });
14
+ Object.defineProperty(exports, "isConnectable", { enumerable: true, get: function () { return connector_js_1.isConnectable; } });
15
+ Object.defineProperty(exports, "isConnectionConfig", { enumerable: true, get: function () { return connector_js_1.isConnectionConfig; } });
16
+ Object.defineProperty(exports, "isStorageConnector", { enumerable: true, get: function () { return connector_js_1.isStorageConnector; } });
17
+ Object.defineProperty(exports, "isDynamoDBConnector", { enumerable: true, get: function () { return connector_js_1.isDynamoDBConnector; } });
18
+ Object.defineProperty(exports, "isQueueConnector", { enumerable: true, get: function () { return connector_js_1.isQueueConnector; } });
19
+ Object.defineProperty(exports, "isSecurityGroupConnector", { enumerable: true, get: function () { return connector_js_1.isSecurityGroupConnector; } });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3BhdHRlcm5zL2F3cy9pbnRlcmZhY2VzL2Nvbm5lY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7OztHQUlHO0FBQ0gsNERBd0JxQztBQVpuQywrR0FBQSxlQUFlLE9BQUE7QUFHZixrSEFBQSxrQkFBa0IsT0FBQTtBQUNsQixpSEFBQSxpQkFBaUIsT0FBQTtBQUNqQiwyR0FBQSxXQUFXLE9BQUE7QUFDWCw2R0FBQSxhQUFhLE9BQUE7QUFDYixrSEFBQSxrQkFBa0IsT0FBQTtBQUNsQixrSEFBQSxrQkFBa0IsT0FBQTtBQUNsQixtSEFBQSxtQkFBbUIsT0FBQTtBQUNuQixnSEFBQSxnQkFBZ0IsT0FBQTtBQUNoQix3SEFBQSx3QkFBd0IsT0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUmUtZXhwb3J0IGZyb20gY2Fub25pY2FsIGxvY2F0aW9uIGluIGxpYi91dGlscy8uXG4gKiBDb25uZWN0b3IgdHlwZXMgYXJlIHNoYXJlZCBiZXR3ZWVuIHJlc291cmNlcyBhbmQgcGF0dGVybnMgbGF5ZXJzLFxuICogc28gdGhleSBiZWxvbmcgaW4gdXRpbHMgcGVyIHRoZSBpbmZyYXN0cnVjdHVyZSBsYXllciBib3VuZGFyeSBydWxlcy5cbiAqL1xuZXhwb3J0IHtcbiAgdHlwZSBDb25uZWN0b3JUeXBlLFxuICB0eXBlIENvbm5lY3Rpb25BY2Nlc3MsXG4gIHR5cGUgTWVzc2FnaW5nQWNjZXNzLFxuICB0eXBlIElDb25uZWN0b3IsXG4gIHR5cGUgSVN0b3JhZ2VDb25uZWN0b3IsXG4gIHR5cGUgSUR5bmFtb0RCQ29ubmVjdG9yLFxuICB0eXBlIElRdWV1ZUNvbm5lY3RvcixcbiAgdHlwZSBJU2VjdXJpdHlHcm91cENvbm5lY3RvcixcbiAgdHlwZSBBbnlDb25uZWN0b3IsXG4gIHR5cGUgQ29ubmVjdGlvbkNvbmZpZyxcbiAgdHlwZSBDb25uZWN0aW9uU3BlYyxcbiAgQ09OTkVDVElPTl9UWVBFLFxuICB0eXBlIENvbm5lY3Rpb25UeXBlLFxuICB0eXBlIENvbm5lY3Rpb25SZXN1bHQsXG4gIGlzQ29ubmVjdGlvbkFjY2VzcyxcbiAgaXNNZXNzYWdpbmdBY2Nlc3MsXG4gIGlzQ29ubmVjdG9yLFxuICBpc0Nvbm5lY3RhYmxlLFxuICBpc0Nvbm5lY3Rpb25Db25maWcsXG4gIGlzU3RvcmFnZUNvbm5lY3RvcixcbiAgaXNEeW5hbW9EQkNvbm5lY3RvcixcbiAgaXNRdWV1ZUNvbm5lY3RvcixcbiAgaXNTZWN1cml0eUdyb3VwQ29ubmVjdG9yXG59IGZyb20gXCIuLi8uLi8uLi91dGlscy9jb25uZWN0b3IuanNcIjtcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export type { DnsRecordInput, DelegationInput, CertificateInput, DomainApexProps, DomainDelegatedProps, IDomainProps, ManagedDomainExports } from "../../../utils/domainTypes";
2
+ export { getDomainExportNames } from "../../../utils/domainTypes";
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getDomainExportNames = void 0;
4
+ var domainTypes_1 = require("../../../utils/domainTypes");
5
+ Object.defineProperty(exports, "getDomainExportNames", { enumerable: true, get: function () { return domainTypes_1.getDomainExportNames; } });
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tYWluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3BhdHRlcm5zL2F3cy9pbnRlcmZhY2VzL2RvbWFpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFVQSwwREFBa0U7QUFBekQsbUhBQUEsb0JBQW9CLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSB7XG4gIERuc1JlY29yZElucHV0LFxuICBEZWxlZ2F0aW9uSW5wdXQsXG4gIENlcnRpZmljYXRlSW5wdXQsXG4gIERvbWFpbkFwZXhQcm9wcyxcbiAgRG9tYWluRGVsZWdhdGVkUHJvcHMsXG4gIElEb21haW5Qcm9wcyxcbiAgTWFuYWdlZERvbWFpbkV4cG9ydHNcbn0gZnJvbSBcIi4uLy4uLy4uL3V0aWxzL2RvbWFpblR5cGVzXCI7XG5cbmV4cG9ydCB7IGdldERvbWFpbkV4cG9ydE5hbWVzIH0gZnJvbSBcIi4uLy4uLy4uL3V0aWxzL2RvbWFpblR5cGVzXCI7XG4iXX0=
@@ -8,6 +8,8 @@ export { type ComputeType, type ICompute, type IEcsCompute, type ILambdaCompute,
8
8
  export { type DatabaseType, type RelationalDatabaseType, type IDatabase, type IRelationalDatabase, type IDynamoDBDatabase, type AnyDatabase, isDatabase, isRelationalDatabase, isDynamoDBDatabase, isAuroraDatabase, isInstanceDatabase, isGlobalAuroraDatabase } from "./database.js";
9
9
  export { type MessagingType, type IMessaging, type IQueueMessaging, type ITopicMessaging, type IEventBusMessaging, type AnyMessaging, isMessaging, isQueueMessaging, isTopicMessaging, isEventBusMessaging } from "./messaging.js";
10
10
  export { type IStorage, isStorage } from "./storage.js";
11
+ export { type CdnType, type ICdn, type AnyCdn, isCdn } from "./cdn.js";
11
12
  export { type ConnectorType, type ConnectionAccess, type MessagingAccess, type IConnector, type IStorageConnector, type IDynamoDBConnector, type IQueueConnector, type ISecurityGroupConnector, type AnyConnector, type ConnectionConfig, type ConnectionSpec, type ConnectionResult, isConnector, isConnectable, isConnectionConfig, isStorageConnector, isDynamoDBConnector, isQueueConnector, isSecurityGroupConnector } from "./connector.js";
12
13
  export { type PatternType, type IPattern, type IPayload, type IPayloadProps, type IPatternProps, type AnyPattern, type PayloadDatabaseConfig, type PayloadComputeConfig, type PayloadCdnConfig, isPayloadPattern, isPattern } from "./pattern.js";
13
14
  export { type OrganisationType, type IOrganisation, type IPlatform, type IAccount, type AnyOrganisation, isOrganisation, isPlatform, isAccount, isOrganisationResource } from "./organisation.js";
15
+ export { type DnsRecordInput, type DelegationInput, type CertificateInput, type DomainApexProps, type DomainDelegatedProps, type IDomainProps } from "./domain.js";
@@ -6,7 +6,7 @@
6
6
  * factory pattern implementations.
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.isOrganisationResource = exports.isAccount = exports.isPlatform = exports.isOrganisation = exports.isPattern = exports.isPayloadPattern = exports.isSecurityGroupConnector = exports.isQueueConnector = exports.isDynamoDBConnector = exports.isStorageConnector = exports.isConnectionConfig = exports.isConnectable = exports.isConnector = exports.isStorage = exports.isEventBusMessaging = exports.isTopicMessaging = exports.isQueueMessaging = exports.isMessaging = exports.isGlobalAuroraDatabase = exports.isInstanceDatabase = exports.isAuroraDatabase = exports.isDynamoDBDatabase = exports.isRelationalDatabase = exports.isDatabase = exports.isEc2Compute = exports.isLambdaCompute = exports.isEcsCompute = exports.isCompute = void 0;
9
+ exports.isOrganisationResource = exports.isAccount = exports.isPlatform = exports.isOrganisation = exports.isPattern = exports.isPayloadPattern = exports.isSecurityGroupConnector = exports.isQueueConnector = exports.isDynamoDBConnector = exports.isStorageConnector = exports.isConnectionConfig = exports.isConnectable = exports.isConnector = exports.isCdn = exports.isStorage = exports.isEventBusMessaging = exports.isTopicMessaging = exports.isQueueMessaging = exports.isMessaging = exports.isGlobalAuroraDatabase = exports.isInstanceDatabase = exports.isAuroraDatabase = exports.isDynamoDBDatabase = exports.isRelationalDatabase = exports.isDatabase = exports.isEc2Compute = exports.isLambdaCompute = exports.isEcsCompute = exports.isCompute = void 0;
10
10
  // Compute interfaces
11
11
  var compute_js_1 = require("./compute.js");
12
12
  Object.defineProperty(exports, "isCompute", { enumerable: true, get: function () { return compute_js_1.isCompute; } });
@@ -30,6 +30,9 @@ Object.defineProperty(exports, "isEventBusMessaging", { enumerable: true, get: f
30
30
  // Storage interfaces
31
31
  var storage_js_1 = require("./storage.js");
32
32
  Object.defineProperty(exports, "isStorage", { enumerable: true, get: function () { return storage_js_1.isStorage; } });
33
+ // CDN interfaces
34
+ var cdn_js_1 = require("./cdn.js");
35
+ Object.defineProperty(exports, "isCdn", { enumerable: true, get: function () { return cdn_js_1.isCdn; } });
33
36
  // Connector interfaces
34
37
  var connector_js_1 = require("./connector.js");
35
38
  Object.defineProperty(exports, "isConnector", { enumerable: true, get: function () { return connector_js_1.isConnector; } });
@@ -49,4 +52,4 @@ Object.defineProperty(exports, "isOrganisation", { enumerable: true, get: functi
49
52
  Object.defineProperty(exports, "isPlatform", { enumerable: true, get: function () { return organisation_js_1.isPlatform; } });
50
53
  Object.defineProperty(exports, "isAccount", { enumerable: true, get: function () { return organisation_js_1.isAccount; } });
51
54
  Object.defineProperty(exports, "isOrganisationResource", { enumerable: true, get: function () { return organisation_js_1.isOrganisationResource; } });
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvcGF0dGVybnMvYXdzL2ludGVyZmFjZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7OztHQUtHOzs7QUFFSCxxQkFBcUI7QUFDckIsMkNBV3NCO0FBSnBCLHVHQUFBLFNBQVMsT0FBQTtBQUNULDBHQUFBLFlBQVksT0FBQTtBQUNaLDZHQUFBLGVBQWUsT0FBQTtBQUNmLDBHQUFBLFlBQVksT0FBQTtBQUdkLHNCQUFzQjtBQUN0Qiw2Q0FhdUI7QUFOckIseUdBQUEsVUFBVSxPQUFBO0FBQ1YsbUhBQUEsb0JBQW9CLE9BQUE7QUFDcEIsaUhBQUEsa0JBQWtCLE9BQUE7QUFDbEIsK0dBQUEsZ0JBQWdCLE9BQUE7QUFDaEIsaUhBQUEsa0JBQWtCLE9BQUE7QUFDbEIscUhBQUEsc0JBQXNCLE9BQUE7QUFHeEIsdUJBQXVCO0FBQ3ZCLCtDQVd3QjtBQUp0QiwyR0FBQSxXQUFXLE9BQUE7QUFDWCxnSEFBQSxnQkFBZ0IsT0FBQTtBQUNoQixnSEFBQSxnQkFBZ0IsT0FBQTtBQUNoQixtSEFBQSxtQkFBbUIsT0FBQTtBQUdyQixxQkFBcUI7QUFDckIsMkNBQXdEO0FBQWhDLHVHQUFBLFNBQVMsT0FBQTtBQUVqQyx1QkFBdUI7QUFDdkIsK0NBb0J3QjtBQVB0QiwyR0FBQSxXQUFXLE9BQUE7QUFDWCw2R0FBQSxhQUFhLE9BQUE7QUFDYixrSEFBQSxrQkFBa0IsT0FBQTtBQUNsQixrSEFBQSxrQkFBa0IsT0FBQTtBQUNsQixtSEFBQSxtQkFBbUIsT0FBQTtBQUNuQixnSEFBQSxnQkFBZ0IsT0FBQTtBQUNoQix3SEFBQSx3QkFBd0IsT0FBQTtBQUcxQixxQkFBcUI7QUFDckIsMkNBWXNCO0FBRnBCLDhHQUFBLGdCQUFnQixPQUFBO0FBQ2hCLHVHQUFBLFNBQVMsT0FBQTtBQUdYLDBCQUEwQjtBQUMxQixxREFVMkI7QUFKekIsaUhBQUEsY0FBYyxPQUFBO0FBQ2QsNkdBQUEsVUFBVSxPQUFBO0FBQ1YsNEdBQUEsU0FBUyxPQUFBO0FBQ1QseUhBQUEsc0JBQXNCLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFR5cGUtc2FmZSBpbnRlcmZhY2VzIGZvciBGamFsbCBpbmZyYXN0cnVjdHVyZSBmYWN0b3JpZXMuXG4gKlxuICogVGhpcyBtb2R1bGUgZXhwb3J0cyBhbGwgaW50ZXJmYWNlcyBhbmQgdHlwZSBndWFyZHMgZm9yIHR5cGUtc2FmZVxuICogZmFjdG9yeSBwYXR0ZXJuIGltcGxlbWVudGF0aW9ucy5cbiAqL1xuXG4vLyBDb21wdXRlIGludGVyZmFjZXNcbmV4cG9ydCB7XG4gIHR5cGUgQ29tcHV0ZVR5cGUsXG4gIHR5cGUgSUNvbXB1dGUsXG4gIHR5cGUgSUVjc0NvbXB1dGUsXG4gIHR5cGUgSUxhbWJkYUNvbXB1dGUsXG4gIHR5cGUgSUVjMkNvbXB1dGUsXG4gIHR5cGUgQW55Q29tcHV0ZSxcbiAgaXNDb21wdXRlLFxuICBpc0Vjc0NvbXB1dGUsXG4gIGlzTGFtYmRhQ29tcHV0ZSxcbiAgaXNFYzJDb21wdXRlXG59IGZyb20gXCIuL2NvbXB1dGUuanNcIjtcblxuLy8gRGF0YWJhc2UgaW50ZXJmYWNlc1xuZXhwb3J0IHtcbiAgdHlwZSBEYXRhYmFzZVR5cGUsXG4gIHR5cGUgUmVsYXRpb25hbERhdGFiYXNlVHlwZSxcbiAgdHlwZSBJRGF0YWJhc2UsXG4gIHR5cGUgSVJlbGF0aW9uYWxEYXRhYmFzZSxcbiAgdHlwZSBJRHluYW1vREJEYXRhYmFzZSxcbiAgdHlwZSBBbnlEYXRhYmFzZSxcbiAgaXNEYXRhYmFzZSxcbiAgaXNSZWxhdGlvbmFsRGF0YWJhc2UsXG4gIGlzRHluYW1vREJEYXRhYmFzZSxcbiAgaXNBdXJvcmFEYXRhYmFzZSxcbiAgaXNJbnN0YW5jZURhdGFiYXNlLFxuICBpc0dsb2JhbEF1cm9yYURhdGFiYXNlXG59IGZyb20gXCIuL2RhdGFiYXNlLmpzXCI7XG5cbi8vIE1lc3NhZ2luZyBpbnRlcmZhY2VzXG5leHBvcnQge1xuICB0eXBlIE1lc3NhZ2luZ1R5cGUsXG4gIHR5cGUgSU1lc3NhZ2luZyxcbiAgdHlwZSBJUXVldWVNZXNzYWdpbmcsXG4gIHR5cGUgSVRvcGljTWVzc2FnaW5nLFxuICB0eXBlIElFdmVudEJ1c01lc3NhZ2luZyxcbiAgdHlwZSBBbnlNZXNzYWdpbmcsXG4gIGlzTWVzc2FnaW5nLFxuICBpc1F1ZXVlTWVzc2FnaW5nLFxuICBpc1RvcGljTWVzc2FnaW5nLFxuICBpc0V2ZW50QnVzTWVzc2FnaW5nXG59IGZyb20gXCIuL21lc3NhZ2luZy5qc1wiO1xuXG4vLyBTdG9yYWdlIGludGVyZmFjZXNcbmV4cG9ydCB7IHR5cGUgSVN0b3JhZ2UsIGlzU3RvcmFnZSB9IGZyb20gXCIuL3N0b3JhZ2UuanNcIjtcblxuLy8gQ29ubmVjdG9yIGludGVyZmFjZXNcbmV4cG9ydCB7XG4gIHR5cGUgQ29ubmVjdG9yVHlwZSxcbiAgdHlwZSBDb25uZWN0aW9uQWNjZXNzLFxuICB0eXBlIE1lc3NhZ2luZ0FjY2VzcyxcbiAgdHlwZSBJQ29ubmVjdG9yLFxuICB0eXBlIElTdG9yYWdlQ29ubmVjdG9yLFxuICB0eXBlIElEeW5hbW9EQkNvbm5lY3RvcixcbiAgdHlwZSBJUXVldWVDb25uZWN0b3IsXG4gIHR5cGUgSVNlY3VyaXR5R3JvdXBDb25uZWN0b3IsXG4gIHR5cGUgQW55Q29ubmVjdG9yLFxuICB0eXBlIENvbm5lY3Rpb25Db25maWcsXG4gIHR5cGUgQ29ubmVjdGlvblNwZWMsXG4gIHR5cGUgQ29ubmVjdGlvblJlc3VsdCxcbiAgaXNDb25uZWN0b3IsXG4gIGlzQ29ubmVjdGFibGUsXG4gIGlzQ29ubmVjdGlvbkNvbmZpZyxcbiAgaXNTdG9yYWdlQ29ubmVjdG9yLFxuICBpc0R5bmFtb0RCQ29ubmVjdG9yLFxuICBpc1F1ZXVlQ29ubmVjdG9yLFxuICBpc1NlY3VyaXR5R3JvdXBDb25uZWN0b3Jcbn0gZnJvbSBcIi4vY29ubmVjdG9yLmpzXCI7XG5cbi8vIFBhdHRlcm4gaW50ZXJmYWNlc1xuZXhwb3J0IHtcbiAgdHlwZSBQYXR0ZXJuVHlwZSxcbiAgdHlwZSBJUGF0dGVybixcbiAgdHlwZSBJUGF5bG9hZCxcbiAgdHlwZSBJUGF5bG9hZFByb3BzLFxuICB0eXBlIElQYXR0ZXJuUHJvcHMsXG4gIHR5cGUgQW55UGF0dGVybixcbiAgdHlwZSBQYXlsb2FkRGF0YWJhc2VDb25maWcsXG4gIHR5cGUgUGF5bG9hZENvbXB1dGVDb25maWcsXG4gIHR5cGUgUGF5bG9hZENkbkNvbmZpZyxcbiAgaXNQYXlsb2FkUGF0dGVybixcbiAgaXNQYXR0ZXJuXG59IGZyb20gXCIuL3BhdHRlcm4uanNcIjtcblxuLy8gT3JnYW5pc2F0aW9uIGludGVyZmFjZXNcbmV4cG9ydCB7XG4gIHR5cGUgT3JnYW5pc2F0aW9uVHlwZSxcbiAgdHlwZSBJT3JnYW5pc2F0aW9uLFxuICB0eXBlIElQbGF0Zm9ybSxcbiAgdHlwZSBJQWNjb3VudCxcbiAgdHlwZSBBbnlPcmdhbmlzYXRpb24sXG4gIGlzT3JnYW5pc2F0aW9uLFxuICBpc1BsYXRmb3JtLFxuICBpc0FjY291bnQsXG4gIGlzT3JnYW5pc2F0aW9uUmVzb3VyY2Vcbn0gZnJvbSBcIi4vb3JnYW5pc2F0aW9uLmpzXCI7XG4iXX0=
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvcGF0dGVybnMvYXdzL2ludGVyZmFjZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7OztHQUtHOzs7QUFFSCxxQkFBcUI7QUFDckIsMkNBV3NCO0FBSnBCLHVHQUFBLFNBQVMsT0FBQTtBQUNULDBHQUFBLFlBQVksT0FBQTtBQUNaLDZHQUFBLGVBQWUsT0FBQTtBQUNmLDBHQUFBLFlBQVksT0FBQTtBQUdkLHNCQUFzQjtBQUN0Qiw2Q0FhdUI7QUFOckIseUdBQUEsVUFBVSxPQUFBO0FBQ1YsbUhBQUEsb0JBQW9CLE9BQUE7QUFDcEIsaUhBQUEsa0JBQWtCLE9BQUE7QUFDbEIsK0dBQUEsZ0JBQWdCLE9BQUE7QUFDaEIsaUhBQUEsa0JBQWtCLE9BQUE7QUFDbEIscUhBQUEsc0JBQXNCLE9BQUE7QUFHeEIsdUJBQXVCO0FBQ3ZCLCtDQVd3QjtBQUp0QiwyR0FBQSxXQUFXLE9BQUE7QUFDWCxnSEFBQSxnQkFBZ0IsT0FBQTtBQUNoQixnSEFBQSxnQkFBZ0IsT0FBQTtBQUNoQixtSEFBQSxtQkFBbUIsT0FBQTtBQUdyQixxQkFBcUI7QUFDckIsMkNBQXdEO0FBQWhDLHVHQUFBLFNBQVMsT0FBQTtBQUVqQyxpQkFBaUI7QUFDakIsbUNBQXVFO0FBQXhCLCtGQUFBLEtBQUssT0FBQTtBQUVwRCx1QkFBdUI7QUFDdkIsK0NBb0J3QjtBQVB0QiwyR0FBQSxXQUFXLE9BQUE7QUFDWCw2R0FBQSxhQUFhLE9BQUE7QUFDYixrSEFBQSxrQkFBa0IsT0FBQTtBQUNsQixrSEFBQSxrQkFBa0IsT0FBQTtBQUNsQixtSEFBQSxtQkFBbUIsT0FBQTtBQUNuQixnSEFBQSxnQkFBZ0IsT0FBQTtBQUNoQix3SEFBQSx3QkFBd0IsT0FBQTtBQUcxQixxQkFBcUI7QUFDckIsMkNBWXNCO0FBRnBCLDhHQUFBLGdCQUFnQixPQUFBO0FBQ2hCLHVHQUFBLFNBQVMsT0FBQTtBQUdYLDBCQUEwQjtBQUMxQixxREFVMkI7QUFKekIsaUhBQUEsY0FBYyxPQUFBO0FBQ2QsNkdBQUEsVUFBVSxPQUFBO0FBQ1YsNEdBQUEsU0FBUyxPQUFBO0FBQ1QseUhBQUEsc0JBQXNCLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFR5cGUtc2FmZSBpbnRlcmZhY2VzIGZvciBGamFsbCBpbmZyYXN0cnVjdHVyZSBmYWN0b3JpZXMuXG4gKlxuICogVGhpcyBtb2R1bGUgZXhwb3J0cyBhbGwgaW50ZXJmYWNlcyBhbmQgdHlwZSBndWFyZHMgZm9yIHR5cGUtc2FmZVxuICogZmFjdG9yeSBwYXR0ZXJuIGltcGxlbWVudGF0aW9ucy5cbiAqL1xuXG4vLyBDb21wdXRlIGludGVyZmFjZXNcbmV4cG9ydCB7XG4gIHR5cGUgQ29tcHV0ZVR5cGUsXG4gIHR5cGUgSUNvbXB1dGUsXG4gIHR5cGUgSUVjc0NvbXB1dGUsXG4gIHR5cGUgSUxhbWJkYUNvbXB1dGUsXG4gIHR5cGUgSUVjMkNvbXB1dGUsXG4gIHR5cGUgQW55Q29tcHV0ZSxcbiAgaXNDb21wdXRlLFxuICBpc0Vjc0NvbXB1dGUsXG4gIGlzTGFtYmRhQ29tcHV0ZSxcbiAgaXNFYzJDb21wdXRlXG59IGZyb20gXCIuL2NvbXB1dGUuanNcIjtcblxuLy8gRGF0YWJhc2UgaW50ZXJmYWNlc1xuZXhwb3J0IHtcbiAgdHlwZSBEYXRhYmFzZVR5cGUsXG4gIHR5cGUgUmVsYXRpb25hbERhdGFiYXNlVHlwZSxcbiAgdHlwZSBJRGF0YWJhc2UsXG4gIHR5cGUgSVJlbGF0aW9uYWxEYXRhYmFzZSxcbiAgdHlwZSBJRHluYW1vREJEYXRhYmFzZSxcbiAgdHlwZSBBbnlEYXRhYmFzZSxcbiAgaXNEYXRhYmFzZSxcbiAgaXNSZWxhdGlvbmFsRGF0YWJhc2UsXG4gIGlzRHluYW1vREJEYXRhYmFzZSxcbiAgaXNBdXJvcmFEYXRhYmFzZSxcbiAgaXNJbnN0YW5jZURhdGFiYXNlLFxuICBpc0dsb2JhbEF1cm9yYURhdGFiYXNlXG59IGZyb20gXCIuL2RhdGFiYXNlLmpzXCI7XG5cbi8vIE1lc3NhZ2luZyBpbnRlcmZhY2VzXG5leHBvcnQge1xuICB0eXBlIE1lc3NhZ2luZ1R5cGUsXG4gIHR5cGUgSU1lc3NhZ2luZyxcbiAgdHlwZSBJUXVldWVNZXNzYWdpbmcsXG4gIHR5cGUgSVRvcGljTWVzc2FnaW5nLFxuICB0eXBlIElFdmVudEJ1c01lc3NhZ2luZyxcbiAgdHlwZSBBbnlNZXNzYWdpbmcsXG4gIGlzTWVzc2FnaW5nLFxuICBpc1F1ZXVlTWVzc2FnaW5nLFxuICBpc1RvcGljTWVzc2FnaW5nLFxuICBpc0V2ZW50QnVzTWVzc2FnaW5nXG59IGZyb20gXCIuL21lc3NhZ2luZy5qc1wiO1xuXG4vLyBTdG9yYWdlIGludGVyZmFjZXNcbmV4cG9ydCB7IHR5cGUgSVN0b3JhZ2UsIGlzU3RvcmFnZSB9IGZyb20gXCIuL3N0b3JhZ2UuanNcIjtcblxuLy8gQ0ROIGludGVyZmFjZXNcbmV4cG9ydCB7IHR5cGUgQ2RuVHlwZSwgdHlwZSBJQ2RuLCB0eXBlIEFueUNkbiwgaXNDZG4gfSBmcm9tIFwiLi9jZG4uanNcIjtcblxuLy8gQ29ubmVjdG9yIGludGVyZmFjZXNcbmV4cG9ydCB7XG4gIHR5cGUgQ29ubmVjdG9yVHlwZSxcbiAgdHlwZSBDb25uZWN0aW9uQWNjZXNzLFxuICB0eXBlIE1lc3NhZ2luZ0FjY2VzcyxcbiAgdHlwZSBJQ29ubmVjdG9yLFxuICB0eXBlIElTdG9yYWdlQ29ubmVjdG9yLFxuICB0eXBlIElEeW5hbW9EQkNvbm5lY3RvcixcbiAgdHlwZSBJUXVldWVDb25uZWN0b3IsXG4gIHR5cGUgSVNlY3VyaXR5R3JvdXBDb25uZWN0b3IsXG4gIHR5cGUgQW55Q29ubmVjdG9yLFxuICB0eXBlIENvbm5lY3Rpb25Db25maWcsXG4gIHR5cGUgQ29ubmVjdGlvblNwZWMsXG4gIHR5cGUgQ29ubmVjdGlvblJlc3VsdCxcbiAgaXNDb25uZWN0b3IsXG4gIGlzQ29ubmVjdGFibGUsXG4gIGlzQ29ubmVjdGlvbkNvbmZpZyxcbiAgaXNTdG9yYWdlQ29ubmVjdG9yLFxuICBpc0R5bmFtb0RCQ29ubmVjdG9yLFxuICBpc1F1ZXVlQ29ubmVjdG9yLFxuICBpc1NlY3VyaXR5R3JvdXBDb25uZWN0b3Jcbn0gZnJvbSBcIi4vY29ubmVjdG9yLmpzXCI7XG5cbi8vIFBhdHRlcm4gaW50ZXJmYWNlc1xuZXhwb3J0IHtcbiAgdHlwZSBQYXR0ZXJuVHlwZSxcbiAgdHlwZSBJUGF0dGVybixcbiAgdHlwZSBJUGF5bG9hZCxcbiAgdHlwZSBJUGF5bG9hZFByb3BzLFxuICB0eXBlIElQYXR0ZXJuUHJvcHMsXG4gIHR5cGUgQW55UGF0dGVybixcbiAgdHlwZSBQYXlsb2FkRGF0YWJhc2VDb25maWcsXG4gIHR5cGUgUGF5bG9hZENvbXB1dGVDb25maWcsXG4gIHR5cGUgUGF5bG9hZENkbkNvbmZpZyxcbiAgaXNQYXlsb2FkUGF0dGVybixcbiAgaXNQYXR0ZXJuXG59IGZyb20gXCIuL3BhdHRlcm4uanNcIjtcblxuLy8gT3JnYW5pc2F0aW9uIGludGVyZmFjZXNcbmV4cG9ydCB7XG4gIHR5cGUgT3JnYW5pc2F0aW9uVHlwZSxcbiAgdHlwZSBJT3JnYW5pc2F0aW9uLFxuICB0eXBlIElQbGF0Zm9ybSxcbiAgdHlwZSBJQWNjb3VudCxcbiAgdHlwZSBBbnlPcmdhbmlzYXRpb24sXG4gIGlzT3JnYW5pc2F0aW9uLFxuICBpc1BsYXRmb3JtLFxuICBpc0FjY291bnQsXG4gIGlzT3JnYW5pc2F0aW9uUmVzb3VyY2Vcbn0gZnJvbSBcIi4vb3JnYW5pc2F0aW9uLmpzXCI7XG5cbi8vIERvbWFpbiBpbnRlcmZhY2VzXG5leHBvcnQge1xuICB0eXBlIERuc1JlY29yZElucHV0LFxuICB0eXBlIERlbGVnYXRpb25JbnB1dCxcbiAgdHlwZSBDZXJ0aWZpY2F0ZUlucHV0LFxuICB0eXBlIERvbWFpbkFwZXhQcm9wcyxcbiAgdHlwZSBEb21haW5EZWxlZ2F0ZWRQcm9wcyxcbiAgdHlwZSBJRG9tYWluUHJvcHNcbn0gZnJvbSBcIi4vZG9tYWluLmpzXCI7XG4iXX0=
@@ -17,12 +17,13 @@
17
17
  import { type ICertificate } from "aws-cdk-lib/aws-certificatemanager";
18
18
  import { type Duration } from "aws-cdk-lib";
19
19
  import { type Construct } from "constructs";
20
- import { type RelationalDatabase, type DynamoDBDatabase, type ProxyConfig, type ReadReplicaConfig, type CredentialsConfig, type EncryptionConfig, type AuroraEncryptionConfig, type AuroraWriterConfig, type AuroraReadersConfig, type PerformanceInsightsConfig, type PerformanceInsightsRetentionPeriod } from "../database.js";
20
+ import { type RelationalDatabase, type DynamoDBDatabase, type ProxyConfig, type ReadReplicaConfig, type CredentialsConfig, type EncryptionConfig, type AuroraEncryptionConfig, type AuroraWriterConfig, type AuroraReadersConfig, type DatabaseInsightsConfig } from "../database.js";
21
21
  import { type LambdaCompute } from "../compute.js";
22
22
  import { type Storage } from "../storage.js";
23
23
  import { type QueueMessaging } from "../messaging.js";
24
24
  import { type Cdn, type SmartCdnBehaviour } from "../cdn.js";
25
- export type { ProxyConfig, ReadReplicaConfig, CredentialsConfig, EncryptionConfig, AuroraEncryptionConfig, AuroraWriterConfig, AuroraReadersConfig, PerformanceInsightsConfig, PerformanceInsightsRetentionPeriod };
25
+ import type { ManagedDomainExports } from "../../../utils/domainTypes.js";
26
+ export type { ProxyConfig, ReadReplicaConfig, CredentialsConfig, EncryptionConfig, AuroraEncryptionConfig, AuroraWriterConfig, AuroraReadersConfig, DatabaseInsightsConfig };
26
27
  /**
27
28
  * Full database configuration for patterns.
28
29
  * Extends underlying DatabaseFactory props with pattern-specific defaults.
@@ -38,7 +39,7 @@ export type { ProxyConfig, ReadReplicaConfig, CredentialsConfig, EncryptionConfi
38
39
  * instanceType: "t4g.large",
39
40
  * allocatedStorage: 50,
40
41
  * multiAz: true,
41
- * performanceInsights: { retentionPeriod: 31 },
42
+ * databaseInsights: { mode: "advanced" },
42
43
  * encryption: { storageKey: { useCMK: true } }
43
44
  * }
44
45
  *
@@ -119,11 +120,11 @@ export interface PayloadDatabaseConfig {
119
120
  */
120
121
  preferredMaintenanceWindow?: string;
121
122
  /**
122
- * Performance Insights configuration.
123
+ * Database Insights configuration.
123
124
  * Set to false to explicitly disable.
124
- * @example { retentionPeriod: 31 }
125
+ * @example { mode: "advanced" }
125
126
  */
126
- performanceInsights?: PerformanceInsightsConfig | false;
127
+ databaseInsights?: DatabaseInsightsConfig | false;
127
128
  /**
128
129
  * RDS Proxy configuration for connection pooling.
129
130
  * Set to false to explicitly disable.
@@ -323,6 +324,8 @@ export interface IPayloadProps {
323
324
  * @example "cms.example.com"
324
325
  */
325
326
  domain?: string;
327
+ /** Import zone and cert from a managed domain stack instead of creating inline */
328
+ managedDomain?: ManagedDomainExports;
326
329
  /** Database configuration */
327
330
  database?: PayloadDatabaseConfig;
328
331
  /** Compute (Lambda) configuration */
@@ -33,4 +33,4 @@ function isPattern(resource) {
33
33
  "patternType" in resource &&
34
34
  typeof resource.patternType === "string");
35
35
  }
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0dGVybi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9wYXR0ZXJucy9hd3MvaW50ZXJmYWNlcy9wYXR0ZXJuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7O0FBNGNILDRDQUVDO0FBS0QsOEJBT0M7QUFqQkQ7O0dBRUc7QUFDSCxTQUFnQixnQkFBZ0IsQ0FBQyxPQUFpQjtJQUNoRCxPQUFPLE9BQU8sQ0FBQyxXQUFXLEtBQUssU0FBUyxDQUFDO0FBQzNDLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLFNBQVMsQ0FBQyxRQUFpQjtJQUN6QyxPQUFPLENBQ0wsUUFBUSxLQUFLLElBQUk7UUFDakIsT0FBTyxRQUFRLEtBQUssUUFBUTtRQUM1QixhQUFhLElBQUksUUFBUTtRQUN6QixPQUFRLFFBQXFCLENBQUMsV0FBVyxLQUFLLFFBQVEsQ0FDdkQsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFR5cGUtc2FmZSBwYXR0ZXJuIGludGVyZmFjZXMuXG4gKlxuICogVGhlc2UgaW50ZXJmYWNlcyBwcm92aWRlIGNvbXBpbGUtdGltZSB0eXBlIHNhZmV0eSBmb3IgcGF0dGVybiByZXNvdXJjZXMuXG4gKiBQYXR0ZXJucyBhcmUgaGlnaC1sZXZlbCBjb25zdHJ1Y3RzIHRoYXQgY29tcG9zZSBtdWx0aXBsZSBpbmZyYXN0cnVjdHVyZSByZXNvdXJjZXNcbiAqIGludG8gYSBjb2hlc2l2ZSwgb3BpbmlvbmF0ZWQgZGVwbG95bWVudCAoZS5nLiwgUGF5bG9hZCBDTVMsIE5leHQuanMpLlxuICpcbiAqIEBleGFtcGxlXG4gKiBjb25zdCBwYXlsb2FkID0gYXBwLmFkZFBhdHRlcm4oUGF0dGVybkZhY3RvcnkuYnVpbGQoXCJQYXlsb2FkQXBwXCIsIHtcbiAqICAgdHlwZTogXCJwYXlsb2FkXCIsXG4gKiAgIG5hbWU6IFwibXktY21zXCIsXG4gKiAgIHNvdXJjZTogXCIuLi8uLlwiXG4gKiB9KSk7XG4gKiBwYXlsb2FkLmdldERhdGFiYXNlKCk7IC8vIOKckyBBdmFpbGFibGUgb24gSVBheWxvYWRcbiAqIHBheWxvYWQuZ2V0U2VydmVyKCk7IC8vIOKckyBBdmFpbGFibGUgb24gSVBheWxvYWRcbiAqL1xuXG5pbXBvcnQgeyB0eXBlIElDZXJ0aWZpY2F0ZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2VydGlmaWNhdGVtYW5hZ2VyXCI7XG5pbXBvcnQgeyB0eXBlIER1cmF0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyB0eXBlIENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbmltcG9ydCB7XG4gIHR5cGUgUmVsYXRpb25hbERhdGFiYXNlLFxuICB0eXBlIER5bmFtb0RCRGF0YWJhc2UsXG4gIHR5cGUgUHJveHlDb25maWcsXG4gIHR5cGUgUmVhZFJlcGxpY2FDb25maWcsXG4gIHR5cGUgQ3JlZGVudGlhbHNDb25maWcsXG4gIHR5cGUgRW5jcnlwdGlvbkNvbmZpZyxcbiAgdHlwZSBBdXJvcmFFbmNyeXB0aW9uQ29uZmlnLFxuICB0eXBlIEF1cm9yYVdyaXRlckNvbmZpZyxcbiAgdHlwZSBBdXJvcmFSZWFkZXJzQ29uZmlnLFxuICB0eXBlIFBlcmZvcm1hbmNlSW5zaWdodHNDb25maWcsXG4gIHR5cGUgUGVyZm9ybWFuY2VJbnNpZ2h0c1JldGVudGlvblBlcmlvZFxufSBmcm9tIFwiLi4vZGF0YWJhc2UuanNcIjtcbmltcG9ydCB7IHR5cGUgTGFtYmRhQ29tcHV0ZSB9IGZyb20gXCIuLi9jb21wdXRlLmpzXCI7XG5pbXBvcnQgeyB0eXBlIFN0b3JhZ2UgfSBmcm9tIFwiLi4vc3RvcmFnZS5qc1wiO1xuaW1wb3J0IHsgdHlwZSBRdWV1ZU1lc3NhZ2luZyB9IGZyb20gXCIuLi9tZXNzYWdpbmcuanNcIjtcbmltcG9ydCB7IHR5cGUgQ2RuLCB0eXBlIFNtYXJ0Q2RuQmVoYXZpb3VyIH0gZnJvbSBcIi4uL2Nkbi5qc1wiO1xuXG4vLyBSZS1leHBvcnQgZGF0YWJhc2UgdHlwZXMgZm9yIGNvbnN1bWVyIGNvbnZlbmllbmNlXG5leHBvcnQgdHlwZSB7XG4gIFByb3h5Q29uZmlnLFxuICBSZWFkUmVwbGljYUNvbmZpZyxcbiAgQ3JlZGVudGlhbHNDb25maWcsXG4gIEVuY3J5cHRpb25Db25maWcsXG4gIEF1cm9yYUVuY3J5cHRpb25Db25maWcsXG4gIEF1cm9yYVdyaXRlckNvbmZpZyxcbiAgQXVyb3JhUmVhZGVyc0NvbmZpZyxcbiAgUGVyZm9ybWFuY2VJbnNpZ2h0c0NvbmZpZyxcbiAgUGVyZm9ybWFuY2VJbnNpZ2h0c1JldGVudGlvblBlcmlvZFxufTtcblxuLyoqXG4gKiBGdWxsIGRhdGFiYXNlIGNvbmZpZ3VyYXRpb24gZm9yIHBhdHRlcm5zLlxuICogRXh0ZW5kcyB1bmRlcmx5aW5nIERhdGFiYXNlRmFjdG9yeSBwcm9wcyB3aXRoIHBhdHRlcm4tc3BlY2lmaWMgZGVmYXVsdHMuXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIE1pbmltYWwgLSB1c2UgZGVmYXVsdHNcbiAqIGRhdGFiYXNlOiB7IHR5cGU6IFwiSW5zdGFuY2VcIiB9XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFByb2R1Y3Rpb24tcmVhZHkgSW5zdGFuY2VcbiAqIGRhdGFiYXNlOiB7XG4gKiAgIHR5cGU6IFwiSW5zdGFuY2VcIixcbiAqICAgaW5zdGFuY2VUeXBlOiBcInQ0Zy5sYXJnZVwiLFxuICogICBhbGxvY2F0ZWRTdG9yYWdlOiA1MCxcbiAqICAgbXVsdGlBejogdHJ1ZSxcbiAqICAgcGVyZm9ybWFuY2VJbnNpZ2h0czogeyByZXRlbnRpb25QZXJpb2Q6IDMxIH0sXG4gKiAgIGVuY3J5cHRpb246IHsgc3RvcmFnZUtleTogeyB1c2VDTUs6IHRydWUgfSB9XG4gKiB9XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEF1cm9yYSB3aXRoIHJlYWRlcnNcbiAqIGRhdGFiYXNlOiB7XG4gKiAgIHR5cGU6IFwiQXVyb3JhXCIsXG4gKiAgIHJlYWRlcnM6IHsgY291bnQ6IDIgfSxcbiAqICAgYWxsb3dWcGNBY2Nlc3M6IHRydWVcbiAqIH1cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYXlsb2FkRGF0YWJhc2VDb25maWcge1xuICAvLyAtLS0gQmFzZSBDb25maWd1cmF0aW9uIC0tLVxuXG4gIC8qKiBEYXRhYmFzZSB0eXBlOiBcIkluc3RhbmNlXCIgb3IgXCJBdXJvcmFcIi4gRGVmYXVsdDogXCJJbnN0YW5jZVwiICovXG4gIHR5cGU/OiBcIkluc3RhbmNlXCIgfCBcIkF1cm9yYVwiO1xuICAvKiogRGF0YWJhc2UgbmFtZS4gRGVmYXVsdDogZGVyaXZlZCBmcm9tIHBhdHRlcm4gbmFtZSAqL1xuICBkYXRhYmFzZU5hbWU/OiBzdHJpbmc7XG4gIC8qKiBEYXRhYmFzZSBlbmdpbmUuIERlZmF1bHQ6IFwicG9zdGdyZXNxbFwiICovXG4gIGRhdGFiYXNlRW5naW5lPzogXCJwb3N0Z3Jlc3FsXCIgfCBcIm15c3FsXCI7XG5cbiAgLy8gLS0tIENvbW1vbiBDb25maWd1cmF0aW9uIC0tLVxuXG4gIC8qKiBFbmFibGUgZGVsZXRpb24gcHJvdGVjdGlvbi4gRGVmYXVsdDogdHJ1ZSAqL1xuICBkZWxldGlvblByb3RlY3Rpb24/OiBib29sZWFuO1xuICAvKiogQmFja3VwIHJldGVudGlvbiBpbiBkYXlzICgxLTM1KS4gRGVmYXVsdDogNyAqL1xuICBiYWNrdXBSZXRlbnRpb24/OiBudW1iZXI7XG4gIC8qKiBEYXRhYmFzZSBwb3J0LiBEZWZhdWx0OiBlbmdpbmUtc3BlY2lmaWMgKDU0MzIgZm9yIFBvc3RncmVTUUwpICovXG4gIHBvcnQ/OiBudW1iZXI7XG5cbiAgLy8gLS0tIFB1YmxpYyBBY2Nlc3MgKERldmVsb3BtZW50IFVzZSkgLS0tXG5cbiAgLyoqIE1ha2UgZGF0YWJhc2UgcHVibGljbHkgYWNjZXNzaWJsZSAoZm9yIGxvY2FsIGRldmVsb3BtZW50KS4gRGVmYXVsdDogZmFsc2UgKi9cbiAgcHVibGljbHlBY2Nlc3NpYmxlPzogYm9vbGVhbjtcbiAgLyoqIElQIENJRFIgdG8gYWxsb3cgd2hlbiBwdWJsaWNseSBhY2Nlc3NpYmxlIChlLmcuLCBcIjIwMy4wLjExMy4wLzMyXCIpICovXG4gIGFsbG93ZWRJcENpZHI/OiBzdHJpbmc7XG5cbiAgLy8gLS0tIEluc3RhbmNlLVNwZWNpZmljIENvbmZpZ3VyYXRpb24gLS0tXG5cbiAgLyoqXG4gICAqIEluc3RhbmNlIHR5cGUgZm9yIFJEUyBJbnN0YW5jZSBkYXRhYmFzZXMuXG4gICAqIEV4YW1wbGVzOiBcInQ0Zy5taWNyb1wiLCBcInQ0Zy5zbWFsbFwiLCBcInQ0Zy5sYXJnZVwiLCBcInI2Zy5sYXJnZVwiXG4gICAqIERlZmF1bHQ6IFwidDRnLnNtYWxsXCJcbiAgICogT25seSBhcHBsaWVzIHdoZW4gdHlwZTogXCJJbnN0YW5jZVwiXG4gICAqL1xuICBpbnN0YW5jZVR5cGU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBbGxvY2F0ZWQgc3RvcmFnZSBpbiBHQiBmb3IgUkRTIEluc3RhbmNlLlxuICAgKiBEZWZhdWx0OiAyMFxuICAgKiBPbmx5IGFwcGxpZXMgd2hlbiB0eXBlOiBcIkluc3RhbmNlXCJcbiAgICovXG4gIGFsbG9jYXRlZFN0b3JhZ2U/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBFbmFibGUgTXVsdGktQVogZGVwbG95bWVudCBmb3IgaGlnaCBhdmFpbGFiaWxpdHkuXG4gICAqIENyZWF0ZXMgYSBzdGFuZGJ5IHJlcGxpY2EgaW4gYSBkaWZmZXJlbnQgQVouXG4gICAqIE9ubHkgYXBwbGllcyB3aGVuIHR5cGU6IFwiSW5zdGFuY2VcIlxuICAgKi9cbiAgbXVsdGlBej86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBSZWFkIHJlcGxpY2EgY29uZmlndXJhdGlvbiBmb3IgUkRTIEluc3RhbmNlLlxuICAgKiBTZXQgdG8gZmFsc2UgdG8gZXhwbGljaXRseSBkaXNhYmxlLlxuICAgKiBPbmx5IGFwcGxpZXMgd2hlbiB0eXBlOiBcIkluc3RhbmNlXCJcbiAgICovXG4gIHJlYWRSZXBsaWNhPzogUmVhZFJlcGxpY2FDb25maWcgfCBmYWxzZTtcblxuICAvLyAtLS0gQXVyb3JhLVNwZWNpZmljIENvbmZpZ3VyYXRpb24gLS0tXG5cbiAgLyoqXG4gICAqIEF1cm9yYSB3cml0ZXIgaW5zdGFuY2UgY29uZmlndXJhdGlvbi5cbiAgICogT25seSBhcHBsaWVzIHdoZW4gdHlwZTogXCJBdXJvcmFcIlxuICAgKi9cbiAgd3JpdGVyPzogQXVyb3JhV3JpdGVyQ29uZmlnO1xuICAvKipcbiAgICogQXVyb3JhIHJlYWRlciBpbnN0YW5jZXMgY29uZmlndXJhdGlvbi5cbiAgICogU2V0IHRvIGZhbHNlIHRvIGV4cGxpY2l0bHkgZGlzYWJsZSByZWFkZXJzLlxuICAgKiBPbmx5IGFwcGxpZXMgd2hlbiB0eXBlOiBcIkF1cm9yYVwiXG4gICAqL1xuICByZWFkZXJzPzogQXVyb3JhUmVhZGVyc0NvbmZpZyB8IGZhbHNlO1xuICAvKipcbiAgICogQWxsb3cgYWNjZXNzIGZyb20gVlBDIENJRFIgKGF2b2lkcyBjcm9zcy1zdGFjayBjeWNsaWMgZGVwZW5kZW5jaWVzKS5cbiAgICogT25seSBhcHBsaWVzIHdoZW4gdHlwZTogXCJBdXJvcmFcIlxuICAgKi9cbiAgYWxsb3dWcGNBY2Nlc3M/OiBib29sZWFuO1xuICAvKipcbiAgICogRW5oYW5jZWQgbW9uaXRvcmluZyBpbnRlcnZhbC5cbiAgICogT25seSBhcHBsaWVzIHdoZW4gdHlwZTogXCJBdXJvcmFcIlxuICAgKi9cbiAgbW9uaXRvcmluZ0ludGVydmFsPzogRHVyYXRpb247XG4gIC8qKlxuICAgKiBQcmVmZXJyZWQgbWFpbnRlbmFuY2Ugd2luZG93IChlLmcuLCBcInN1bjowNTowMC1zdW46MDY6MDBcIikuXG4gICAqIE9ubHkgYXBwbGllcyB3aGVuIHR5cGU6IFwiQXVyb3JhXCJcbiAgICovXG4gIHByZWZlcnJlZE1haW50ZW5hbmNlV2luZG93Pzogc3RyaW5nO1xuXG4gIC8vIC0tLSBTaGFyZWQgQWR2YW5jZWQgQ29uZmlndXJhdGlvbiAtLS1cblxuICAvKipcbiAgICogUGVyZm9ybWFuY2UgSW5zaWdodHMgY29uZmlndXJhdGlvbi5cbiAgICogU2V0IHRvIGZhbHNlIHRvIGV4cGxpY2l0bHkgZGlzYWJsZS5cbiAgICogQGV4YW1wbGUgeyByZXRlbnRpb25QZXJpb2Q6IDMxIH1cbiAgICovXG4gIHBlcmZvcm1hbmNlSW5zaWdodHM/OiBQZXJmb3JtYW5jZUluc2lnaHRzQ29uZmlnIHwgZmFsc2U7XG4gIC8qKlxuICAgKiBSRFMgUHJveHkgY29uZmlndXJhdGlvbiBmb3IgY29ubmVjdGlvbiBwb29saW5nLlxuICAgKiBTZXQgdG8gZmFsc2UgdG8gZXhwbGljaXRseSBkaXNhYmxlLlxuICAgKiBAZXhhbXBsZSB7IG1heENvbm5lY3Rpb25zOiAxMDAgfVxuICAgKi9cbiAgcHJveHk/OiBQcm94eUNvbmZpZyB8IGZhbHNlO1xuICAvKipcbiAgICogQ3JlZGVudGlhbHMgY29uZmlndXJhdGlvbiAodXNlcm5hbWUsIHJvdGF0aW9uKS5cbiAgICovXG4gIGNyZWRlbnRpYWxzPzogQ3JlZGVudGlhbHNDb25maWc7XG4gIC8qKlxuICAgKiBFbmNyeXB0aW9uIGNvbmZpZ3VyYXRpb24uXG4gICAqIEZvciBJbnN0YW5jZTogRW5jcnlwdGlvbkNvbmZpZ1xuICAgKiBGb3IgQXVyb3JhOiBBdXJvcmFFbmNyeXB0aW9uQ29uZmlnXG4gICAqIEBleGFtcGxlIHsgc3RvcmFnZUtleTogeyB1c2VDTUs6IHRydWUgfSB9XG4gICAqL1xuICBlbmNyeXB0aW9uPzogRW5jcnlwdGlvbkNvbmZpZyB8IEF1cm9yYUVuY3J5cHRpb25Db25maWc7XG5cbiAgLy8gLS0tIFNuYXBzaG90IFJlc3RvcmUgLS0tXG5cbiAgLyoqIEFSTiBvciBpZGVudGlmaWVyIG9mIHNuYXBzaG90IHRvIHJlc3RvcmUgZnJvbSAqL1xuICBzbmFwc2hvdElkZW50aWZpZXI/OiBzdHJpbmc7XG4gIC8qKiBVc2VybmFtZSBmcm9tIHRoZSBzbmFwc2hvdCAocmVxdWlyZWQgd2hlbiByZXN0b3JpbmcpICovXG4gIHNuYXBzaG90VXNlcm5hbWU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogTGFtYmRhIGZ1bmN0aW9uIGNvbmZpZ3VyYXRpb24gZm9yIHBhdHRlcm4gc3ViLWZ1bmN0aW9ucy5cbiAqXG4gKiBAZXhhbXBsZVxuICogc2VydmVyOiB7IG1lbW9yeVNpemU6IDIwNDgsIHRpbWVvdXQ6IDYwIH1cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYXR0ZXJuTGFtYmRhQ29uZmlnIHtcbiAgLyoqIE1lbW9yeSBzaXplIGluIE1CLiBSYW5nZTogMTI4LTEwMjQwLiAqL1xuICBtZW1vcnlTaXplPzogbnVtYmVyO1xuICAvKiogVGltZW91dCBpbiBzZWNvbmRzLiBSYW5nZTogMS05MDAuICovXG4gIHRpbWVvdXQ/OiBudW1iZXI7XG4gIC8qKiBFcGhlbWVyYWwgc3RvcmFnZSBzaXplIGluIE1CLiBSYW5nZTogNTEyLTEwMjQwLiBEZWZhdWx0OiA1MTIuICovXG4gIGVwaGVtZXJhbFN0b3JhZ2VTaXplPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIEZ1bGwgY29tcHV0ZSBjb25maWd1cmF0aW9uIGZvciBwYXR0ZXJucy5cbiAqIEFsbG93cyBwZXItZnVuY3Rpb24gY29uZmlndXJhdGlvbiBmb3IgZWFjaCBMYW1iZGEgaW4gdGhlIHBhdHRlcm4uXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIENvbmZpZ3VyZSBpbmRpdmlkdWFsIGZ1bmN0aW9uc1xuICogY29tcHV0ZToge1xuICogICBzZXJ2ZXI6IHsgbWVtb3J5U2l6ZTogMjA0OCwgdGltZW91dDogNjAgfSxcbiAqICAgaW1hZ2VPcHRpbWlzYXRpb246IHsgbWVtb3J5U2l6ZTogMjA0OCB9LFxuICogICByZXZhbGlkYXRpb246IHsgbWVtb3J5U2l6ZTogMTAyNCwgdGltZW91dDogNjAwIH1cbiAqIH1cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYXlsb2FkQ29tcHV0ZUNvbmZpZyB7XG4gIC8qKlxuICAgKiBTZXJ2ZXIgTGFtYmRhIGNvbmZpZ3VyYXRpb24uXG4gICAqIEhhbmRsZXMgbWFpbiBhcHBsaWNhdGlvbiByZXF1ZXN0cy5cbiAgICogRGVmYXVsdHM6IG1lbW9yeVNpemU9MTUzNiwgdGltZW91dD0zMFxuICAgKi9cbiAgc2VydmVyPzogUGF0dGVybkxhbWJkYUNvbmZpZztcbiAgLyoqXG4gICAqIEltYWdlIG9wdGltaXNhdGlvbiBMYW1iZGEgY29uZmlndXJhdGlvbi5cbiAgICogSGFuZGxlcyBOZXh0LmpzIGltYWdlIG9wdGltaXNhdGlvbi5cbiAgICogRGVmYXVsdHM6IG1lbW9yeVNpemU9MTUzNiwgdGltZW91dD0zMFxuICAgKi9cbiAgaW1hZ2VPcHRpbWlzYXRpb24/OiBQYXR0ZXJuTGFtYmRhQ29uZmlnO1xuICAvKipcbiAgICogUmV2YWxpZGF0aW9uIExhbWJkYSBjb25maWd1cmF0aW9uLlxuICAgKiBIYW5kbGVzIElTUiByZXZhbGlkYXRpb24gZnJvbSBTUVMgcXVldWUuXG4gICAqIERlZmF1bHRzOiBtZW1vcnlTaXplPTc2OCwgdGltZW91dD0zMDBcbiAgICovXG4gIHJldmFsaWRhdGlvbj86IFBhdHRlcm5MYW1iZGFDb25maWc7XG59XG5cbi8qKlxuICogUzMgYnVja2V0IGNvbmZpZ3VyYXRpb24gZm9yIHBhdHRlcm4gc3ViLWJ1Y2tldHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGF0dGVyblN0b3JhZ2VCdWNrZXRDb25maWcge1xuICAvKiogRW5hYmxlIHZlcnNpb25pbmcuIERlZmF1bHQ6IGZhbHNlICovXG4gIHZlcnNpb25lZD86IGJvb2xlYW47XG59XG5cbi8qKlxuICogRnVsbCBzdG9yYWdlIGNvbmZpZ3VyYXRpb24gZm9yIHBhdHRlcm5zLlxuICogQWxsb3dzIHBlci1idWNrZXQgY29uZmlndXJhdGlvbiBmb3IgZWFjaCBTMyBidWNrZXQgaW4gdGhlIHBhdHRlcm4uXG4gKlxuICogQGV4YW1wbGVcbiAqIHN0b3JhZ2U6IHtcbiAqICAgYXNzZXRzOiB7IHZlcnNpb25lZDogdHJ1ZSB9LFxuICogICBjYWNoZTogeyB2ZXJzaW9uZWQ6IGZhbHNlIH0sXG4gKiAgIG1lZGlhOiB7IHZlcnNpb25lZDogdHJ1ZSB9XG4gKiB9XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGF5bG9hZFN0b3JhZ2VDb25maWcge1xuICAvKiogQXNzZXRzIGJ1Y2tldCAoc3RhdGljIGZpbGVzKSAqL1xuICBhc3NldHM/OiBQYXR0ZXJuU3RvcmFnZUJ1Y2tldENvbmZpZztcbiAgLyoqIENhY2hlIGJ1Y2tldCAoSVNSIGNhY2hlKSAqL1xuICBjYWNoZT86IFBhdHRlcm5TdG9yYWdlQnVja2V0Q29uZmlnO1xuICAvKiogTWVkaWEgYnVja2V0ICh1cGxvYWRzKSAqL1xuICBtZWRpYT86IFBhdHRlcm5TdG9yYWdlQnVja2V0Q29uZmlnO1xufVxuXG4vKipcbiAqIFNRUyBxdWV1ZSBjb25maWd1cmF0aW9uIGZvciBwYXR0ZXJuIG1lc3NhZ2luZy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYXR0ZXJuUXVldWVDb25maWcge1xuICAvKiogVmlzaWJpbGl0eSB0aW1lb3V0IGluIHNlY29uZHMuIERlZmF1bHQ6IG1hdGNoZXMgcmV2YWxpZGF0aW9uIHRpbWVvdXQgKi9cbiAgdmlzaWJpbGl0eVRpbWVvdXQ/OiBudW1iZXI7XG4gIC8qKiBNZXNzYWdlIHJldGVudGlvbiBwZXJpb2QgaW4gc2Vjb25kcy4gRGVmYXVsdDogMzQ1NjAwICg0IGRheXMpICovXG4gIG1lc3NhZ2VSZXRlbnRpb25QZXJpb2Q/OiBudW1iZXI7XG4gIC8qKiBNYXhpbXVtIG1lc3NhZ2Ugc2l6ZSBpbiBieXRlcy4gRGVmYXVsdDogMjYyMTQ0ICgyNTYgS0IpICovXG4gIG1heE1lc3NhZ2VTaXplPzogbnVtYmVyO1xuICAvKipcbiAgICogRGVhZCBsZXR0ZXIgcXVldWUgY29uZmlndXJhdGlvbi5cbiAgICogU2V0IHRvIGZhbHNlIHRvIGV4cGxpY2l0bHkgZGlzYWJsZS5cbiAgICovXG4gIGRlYWRMZXR0ZXJRdWV1ZT86XG4gICAgfCB7XG4gICAgICAgIGVuYWJsZWQ/OiBib29sZWFuO1xuICAgICAgICBtYXhSZWNlaXZlQ291bnQ/OiBudW1iZXI7XG4gICAgICB9XG4gICAgfCBmYWxzZTtcbn1cblxuLyoqXG4gKiBGdWxsIG1lc3NhZ2luZyBjb25maWd1cmF0aW9uIGZvciBwYXR0ZXJucy5cbiAqXG4gKiBAZXhhbXBsZVxuICogbWVzc2FnaW5nOiB7XG4gKiAgIHJldmFsaWRhdGlvblF1ZXVlOiB7XG4gKiAgICAgdmlzaWJpbGl0eVRpbWVvdXQ6IDYwMCxcbiAqICAgICBkZWFkTGV0dGVyUXVldWU6IHsgZW5hYmxlZDogdHJ1ZSwgbWF4UmVjZWl2ZUNvdW50OiA1IH1cbiAqICAgfVxuICogfVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBheWxvYWRNZXNzYWdpbmdDb25maWcge1xuICAvKiogUmV2YWxpZGF0aW9uIHF1ZXVlIGNvbmZpZ3VyYXRpb24gKi9cbiAgcmV2YWxpZGF0aW9uUXVldWU/OiBQYXR0ZXJuUXVldWVDb25maWc7XG59XG5cbi8qKlxuICogQ0ROIGNvbmZpZ3VyYXRpb24gZm9yIFBheWxvYWQgcGF0dGVybi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYXlsb2FkQ2RuQ29uZmlnIHtcbiAgLyoqIEN1c3RvbSBkb21haW4gbmFtZXMgZm9yIENsb3VkRnJvbnQgKi9cbiAgZG9tYWluTmFtZXM/OiBzdHJpbmdbXTtcbiAgLyoqIEFDTSBjZXJ0aWZpY2F0ZSBmb3IgY3VzdG9tIGRvbWFpbnMgKG11c3QgYmUgaW4gdXMtZWFzdC0xKSAqL1xuICBjZXJ0aWZpY2F0ZT86IElDZXJ0aWZpY2F0ZTtcbiAgLyoqIEFDTSBjZXJ0aWZpY2F0ZSBBUk4gKGFsdGVybmF0aXZlIHRvIGNlcnRpZmljYXRlIC0gbXVzdCBiZSBpbiB1cy1lYXN0LTEpICovXG4gIGNlcnRpZmljYXRlQXJuPzogc3RyaW5nO1xuICAvKiogQWRkaXRpb25hbCBDRE4gYmVoYXZpb3VycyAqL1xuICBiZWhhdmlvdXJzPzogU21hcnRDZG5CZWhhdmlvdXJbXTtcbn1cblxuLyoqXG4gKiBQYXlsb2FkIHBhdHRlcm4gcHJvcHMuXG4gKlxuICogQ29uZmlndXJlcyBhIFBheWxvYWQgQ01TIGRlcGxveW1lbnQgd2l0aCBhbGwgcmVxdWlyZWQgaW5mcmFzdHJ1Y3R1cmU6XG4gKiAtIFJEUyBQb3N0Z3JlU1FMIGRhdGFiYXNlIChBdXJvcmEgb3IgSW5zdGFuY2UpXG4gKiAtIFMzIGJ1Y2tldHMgKGFzc2V0cywgY2FjaGUsIG1lZGlhKVxuICogLSBEeW5hbW9EQiB0YWJsZSAodGFnIGNhY2hlKVxuICogLSBTUVMgRklGTyBxdWV1ZSAocmV2YWxpZGF0aW9uKVxuICogLSBMYW1iZGEgZnVuY3Rpb25zIChzZXJ2ZXIsIGltYWdlIG9wdGltaXNhdGlvbiwgcmV2YWxpZGF0aW9uKVxuICogLSBDbG91ZEZyb250IGRpc3RyaWJ1dGlvblxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBNaW5pbWFsIC0gd29ya3Mgb3V0IG9mIGJveFxuICogYXBwLmFkZFBhdHRlcm4oUGF0dGVybkZhY3RvcnkuYnVpbGQoXCJQYXlsb2FkQXBwXCIsIHtcbiAqICAgdHlwZTogXCJwYXlsb2FkXCIsXG4gKiAgIG5hbWU6IFwibXktY21zXCJcbiAqIH0pKTtcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gV2l0aCBjdXN0b20gZG9tYWluIChhdXRvLWNyZWF0ZXMgY2VydGlmaWNhdGUgKyBETlMpXG4gKiBhcHAuYWRkUGF0dGVybihQYXR0ZXJuRmFjdG9yeS5idWlsZChcIlBheWxvYWRBcHBcIiwge1xuICogICB0eXBlOiBcInBheWxvYWRcIixcbiAqICAgbmFtZTogXCJteS1jbXNcIixcbiAqICAgZG9tYWluOiBcImNtcy5leGFtcGxlLmNvbVwiXG4gKiB9KSk7XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEN1c3RvbWlzZWRcbiAqIGFwcC5hZGRQYXR0ZXJuKFBhdHRlcm5GYWN0b3J5LmJ1aWxkKFwiUGF5bG9hZEFwcFwiLCB7XG4gKiAgIHR5cGU6IFwicGF5bG9hZFwiLFxuICogICBuYW1lOiBcIm15LWNtc1wiLFxuICogICBkYXRhYmFzZToge1xuICogICAgIHR5cGU6IFwiSW5zdGFuY2VcIixcbiAqICAgICBwdWJsaWNseUFjY2Vzc2libGU6IHRydWVcbiAqICAgfSxcbiAqICAgY29tcHV0ZToge1xuICogICAgIHNlcnZlcjogeyBtZW1vcnlTaXplOiAyMDQ4IH1cbiAqICAgfVxuICogfSkpO1xuICovXG5leHBvcnQgaW50ZXJmYWNlIElQYXlsb2FkUHJvcHMge1xuICAvKiogUGF0dGVybiB0eXBlIGRpc2NyaW1pbmF0b3IgKi9cbiAgdHlwZTogXCJwYXlsb2FkXCI7XG4gIC8qKiBQYXR0ZXJuIG5hbWUgKHVzZWQgZm9yIHJlc291cmNlIG5hbWluZykgKi9cbiAgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gZG9tYWluIGZvciB0aGUgUGF5bG9hZCBhcHBsaWNhdGlvbi5cbiAgICogV2hlbiBwcm92aWRlZCwgYXV0b21hdGljYWxseTpcbiAgICogLSBMb29rcyB1cCB0aGUgUm91dGU1MyBob3N0ZWQgem9uZVxuICAgKiAtIENyZWF0ZXMgYW4gQUNNIGNlcnRpZmljYXRlIHdpdGggRE5TIHZhbGlkYXRpb24gKGluIHVzLWVhc3QtMSlcbiAgICogLSBDb25maWd1cmVzIENsb3VkRnJvbnQgd2l0aCB0aGUgY2VydGlmaWNhdGVcbiAgICogLSBDcmVhdGVzIGFuIEEgcmVjb3JkIChhbGlhcykgcG9pbnRpbmcgdG8gQ2xvdWRGcm9udFxuICAgKlxuICAgKiBSZXF1aXJlczogQSBSb3V0ZTUzIGhvc3RlZCB6b25lIGZvciB0aGUgZG9tYWluIG11c3QgZXhpc3QuXG4gICAqXG4gICAqIEBleGFtcGxlIFwiY21zLmV4YW1wbGUuY29tXCJcbiAgICovXG4gIGRvbWFpbj86IHN0cmluZztcblxuICAvKiogRGF0YWJhc2UgY29uZmlndXJhdGlvbiAqL1xuICBkYXRhYmFzZT86IFBheWxvYWREYXRhYmFzZUNvbmZpZztcbiAgLyoqIENvbXB1dGUgKExhbWJkYSkgY29uZmlndXJhdGlvbiAqL1xuICBjb21wdXRlPzogUGF5bG9hZENvbXB1dGVDb25maWc7XG4gIC8qKiBTdG9yYWdlIChTMykgY29uZmlndXJhdGlvbiAqL1xuICBzdG9yYWdlPzogUGF5bG9hZFN0b3JhZ2VDb25maWc7XG4gIC8qKiBNZXNzYWdpbmcgKFNRUykgY29uZmlndXJhdGlvbiAqL1xuICBtZXNzYWdpbmc/OiBQYXlsb2FkTWVzc2FnaW5nQ29uZmlnO1xuICAvKiogQ0ROIChDbG91ZEZyb250KSBjb25maWd1cmF0aW9uIC0gZm9yIGFkdmFuY2VkIHVzZS4gVXNlIGBkb21haW5gIGZvciBzaW1wbGUgc2V0dXAuICovXG4gIGNkbj86IFBheWxvYWRDZG5Db25maWc7XG5cbiAgLyoqIEFkZGl0aW9uYWwgZW52aXJvbm1lbnQgdmFyaWFibGVzIGZvciBzZXJ2ZXIgTGFtYmRhICovXG4gIGVudmlyb25tZW50PzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbn1cblxuLyoqXG4gKiBVbmlvbiBvZiBhbGwgcGF0dGVybiBwcm9wcy5cbiAqIEV4dGVuZCB0aGlzIHdoZW4gYWRkaW5nIG5ldyBwYXR0ZXJucyAoZS5nLiwgSU5leHRqc1Byb3BzLCBJUmVtaXhQcm9wcykuXG4gKi9cbmV4cG9ydCB0eXBlIElQYXR0ZXJuUHJvcHMgPSBJUGF5bG9hZFByb3BzOyAvLyB8IElOZXh0anNQcm9wcyB8IElSZW1peFByb3BzIGluIGZ1dHVyZVxuXG4vKipcbiAqIFBhdHRlcm4gdHlwZSBkaXNjcmltaW5hdG9yLlxuICovXG5leHBvcnQgdHlwZSBQYXR0ZXJuVHlwZSA9IFwicGF5bG9hZFwiOyAvLyB8IFwibmV4dGpzXCIgfCBcInJlbWl4XCIgaW4gZnV0dXJlXG5cbi8qKlxuICogQmFzZSBwYXR0ZXJuIGludGVyZmFjZS5cbiAqIEFsbCBwYXR0ZXJucyBpbXBsZW1lbnQgdGhpcyBpbnRlcmZhY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVBhdHRlcm4ge1xuICAvKiogVGhlIHR5cGUgb2YgcGF0dGVybi4gVXNlZCBmb3IgcnVudGltZSB0eXBlIG5hcnJvd2luZy4gKi9cbiAgcmVhZG9ubHkgcGF0dGVyblR5cGU6IFBhdHRlcm5UeXBlO1xuXG4gIC8qKiBUaGUgdW5kZXJseWluZyBDREsgY29uc3RydWN0IG5vZGUuICovXG4gIHJlYWRvbmx5IG5vZGU6IENvbnN0cnVjdFtcIm5vZGVcIl07XG59XG5cbi8qKlxuICogUGF5bG9hZCBwYXR0ZXJuIGludGVyZmFjZS5cbiAqIFByb3ZpZGVzIGFjY2VzcyB0byBhbGwgdW5kZXJseWluZyByZXNvdXJjZXMgZm9yIGVzY2FwZSBoYXRjaGVzLlxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBFc2NhcGUgaGF0Y2hlcyAtIGZ1bGwgYWNjZXNzIHRvIHVuZGVybHlpbmcgcmVzb3VyY2VzXG4gKiBwYXlsb2FkLmdldERhdGFiYXNlKCkuZ3JhbnRDb25uZWN0KHNvbWVPdGhlckxhbWJkYSk7XG4gKiBwYXlsb2FkLmdldFNlcnZlcigpLmdldExhbWJkYUZ1bmN0aW9uKCkuYWRkRW52aXJvbm1lbnQoXCJDVVNUT01fVkFSXCIsIFwidmFsdWVcIik7XG4gKiBwYXlsb2FkLmdldENkbigpLmdldERpc3RyaWJ1dGlvbigpLmFkZEJlaGF2aW9yKFwiL2N1c3RvbS8qXCIsIGN1c3RvbU9yaWdpbik7XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVBheWxvYWQgZXh0ZW5kcyBJUGF0dGVybiB7XG4gIHJlYWRvbmx5IHBhdHRlcm5UeXBlOiBcInBheWxvYWRcIjtcblxuICAvKiogR2V0IHRoZSBQb3N0Z3JlU1FMIGRhdGFiYXNlIChBdXJvcmEgb3IgSW5zdGFuY2UpICovXG4gIGdldERhdGFiYXNlKCk6IFJlbGF0aW9uYWxEYXRhYmFzZTtcblxuICAvKiogR2V0IHRoZSBTZXJ2ZXIgTGFtYmRhIGZ1bmN0aW9uICovXG4gIGdldFNlcnZlcigpOiBMYW1iZGFDb21wdXRlO1xuXG4gIC8qKiBHZXQgdGhlIEltYWdlIE9wdGltaXNhdGlvbiBMYW1iZGEgZnVuY3Rpb24gKi9cbiAgZ2V0SW1hZ2VPcHRpbWlzYXRpb24oKTogTGFtYmRhQ29tcHV0ZTtcblxuICAvKiogR2V0IHRoZSBSZXZhbGlkYXRpb24gTGFtYmRhIGZ1bmN0aW9uICovXG4gIGdldFJldmFsaWRhdGlvbigpOiBMYW1iZGFDb21wdXRlO1xuXG4gIC8qKiBHZXQgdGhlIEFzc2V0cyBTMyBidWNrZXQgKHN0YXRpYyBmaWxlcykgKi9cbiAgZ2V0QXNzZXRzQnVja2V0KCk6IFN0b3JhZ2U7XG5cbiAgLyoqIEdldCB0aGUgQ2FjaGUgUzMgYnVja2V0IChJU1IgY2FjaGUpICovXG4gIGdldENhY2hlQnVja2V0KCk6IFN0b3JhZ2U7XG5cbiAgLyoqIEdldCB0aGUgTWVkaWEgUzMgYnVja2V0ICh1cGxvYWRzKSAqL1xuICBnZXRNZWRpYUJ1Y2tldCgpOiBTdG9yYWdlO1xuXG4gIC8qKiBHZXQgdGhlIFRhZyBDYWNoZSBEeW5hbW9EQiB0YWJsZSAqL1xuICBnZXRUYWdDYWNoZSgpOiBEeW5hbW9EQkRhdGFiYXNlO1xuXG4gIC8qKiBHZXQgdGhlIFJldmFsaWRhdGlvbiBTUVMgcXVldWUgKi9cbiAgZ2V0UmV2YWxpZGF0aW9uUXVldWUoKTogUXVldWVNZXNzYWdpbmc7XG5cbiAgLyoqIEdldCB0aGUgQ2xvdWRGcm9udCBkaXN0cmlidXRpb24gKi9cbiAgZ2V0Q2RuKCk6IENkbjtcbn1cblxuLyoqXG4gKiBVbmlvbiB0eXBlIHJlcHJlc2VudGluZyBhbnkgcGF0dGVybiBpbnRlcmZhY2UuXG4gKiBVc2Ugd2l0aCB0eXBlIGd1YXJkcyBmb3IgZ2VuZXJpYyBoYW5kbGluZy5cbiAqL1xuZXhwb3J0IHR5cGUgQW55UGF0dGVybiA9IElQYXlsb2FkOyAvLyB8IElOZXh0anMgfCBJUmVtaXggaW4gZnV0dXJlXG5cbi8qKlxuICogVHlwZSBndWFyZCB0byBjaGVjayBpZiBhIHBhdHRlcm4gaXMgUGF5bG9hZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUGF5bG9hZFBhdHRlcm4ocGF0dGVybjogSVBhdHRlcm4pOiBwYXR0ZXJuIGlzIElQYXlsb2FkIHtcbiAgcmV0dXJuIHBhdHRlcm4ucGF0dGVyblR5cGUgPT09IFwicGF5bG9hZFwiO1xufVxuXG4vKipcbiAqIFR5cGUgZ3VhcmQgdG8gY2hlY2sgaWYgYSByZXNvdXJjZSBpcyBhbnkgcGF0dGVybiB0eXBlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNQYXR0ZXJuKHJlc291cmNlOiB1bmtub3duKTogcmVzb3VyY2UgaXMgSVBhdHRlcm4ge1xuICByZXR1cm4gKFxuICAgIHJlc291cmNlICE9PSBudWxsICYmXG4gICAgdHlwZW9mIHJlc291cmNlID09PSBcIm9iamVjdFwiICYmXG4gICAgXCJwYXR0ZXJuVHlwZVwiIGluIHJlc291cmNlICYmXG4gICAgdHlwZW9mIChyZXNvdXJjZSBhcyBJUGF0dGVybikucGF0dGVyblR5cGUgPT09IFwic3RyaW5nXCJcbiAgKTtcbn1cbiJdfQ==
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0dGVybi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9wYXR0ZXJucy9hd3MvaW50ZXJmYWNlcy9wYXR0ZXJuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7O0FBZ2NILDRDQUVDO0FBS0QsOEJBT0M7QUFqQkQ7O0dBRUc7QUFDSCxTQUFnQixnQkFBZ0IsQ0FBQyxPQUFpQjtJQUNoRCxPQUFPLE9BQU8sQ0FBQyxXQUFXLEtBQUssU0FBUyxDQUFDO0FBQzNDLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLFNBQVMsQ0FBQyxRQUFpQjtJQUN6QyxPQUFPLENBQ0wsUUFBUSxLQUFLLElBQUk7UUFDakIsT0FBTyxRQUFRLEtBQUssUUFBUTtRQUM1QixhQUFhLElBQUksUUFBUTtRQUN6QixPQUFRLFFBQXFCLENBQUMsV0FBVyxLQUFLLFFBQVEsQ0FDdkQsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFR5cGUtc2FmZSBwYXR0ZXJuIGludGVyZmFjZXMuXG4gKlxuICogVGhlc2UgaW50ZXJmYWNlcyBwcm92aWRlIGNvbXBpbGUtdGltZSB0eXBlIHNhZmV0eSBmb3IgcGF0dGVybiByZXNvdXJjZXMuXG4gKiBQYXR0ZXJucyBhcmUgaGlnaC1sZXZlbCBjb25zdHJ1Y3RzIHRoYXQgY29tcG9zZSBtdWx0aXBsZSBpbmZyYXN0cnVjdHVyZSByZXNvdXJjZXNcbiAqIGludG8gYSBjb2hlc2l2ZSwgb3BpbmlvbmF0ZWQgZGVwbG95bWVudCAoZS5nLiwgUGF5bG9hZCBDTVMsIE5leHQuanMpLlxuICpcbiAqIEBleGFtcGxlXG4gKiBjb25zdCBwYXlsb2FkID0gYXBwLmFkZFBhdHRlcm4oUGF0dGVybkZhY3RvcnkuYnVpbGQoXCJQYXlsb2FkQXBwXCIsIHtcbiAqICAgdHlwZTogXCJwYXlsb2FkXCIsXG4gKiAgIG5hbWU6IFwibXktY21zXCIsXG4gKiAgIHNvdXJjZTogXCIuLi8uLlwiXG4gKiB9KSk7XG4gKiBwYXlsb2FkLmdldERhdGFiYXNlKCk7IC8vIOKckyBBdmFpbGFibGUgb24gSVBheWxvYWRcbiAqIHBheWxvYWQuZ2V0U2VydmVyKCk7IC8vIOKckyBBdmFpbGFibGUgb24gSVBheWxvYWRcbiAqL1xuXG5pbXBvcnQgeyB0eXBlIElDZXJ0aWZpY2F0ZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2VydGlmaWNhdGVtYW5hZ2VyXCI7XG5pbXBvcnQgeyB0eXBlIER1cmF0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyB0eXBlIENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbmltcG9ydCB7XG4gIHR5cGUgUmVsYXRpb25hbERhdGFiYXNlLFxuICB0eXBlIER5bmFtb0RCRGF0YWJhc2UsXG4gIHR5cGUgUHJveHlDb25maWcsXG4gIHR5cGUgUmVhZFJlcGxpY2FDb25maWcsXG4gIHR5cGUgQ3JlZGVudGlhbHNDb25maWcsXG4gIHR5cGUgRW5jcnlwdGlvbkNvbmZpZyxcbiAgdHlwZSBBdXJvcmFFbmNyeXB0aW9uQ29uZmlnLFxuICB0eXBlIEF1cm9yYVdyaXRlckNvbmZpZyxcbiAgdHlwZSBBdXJvcmFSZWFkZXJzQ29uZmlnLFxuICB0eXBlIERhdGFiYXNlSW5zaWdodHNDb25maWdcbn0gZnJvbSBcIi4uL2RhdGFiYXNlLmpzXCI7XG5pbXBvcnQgeyB0eXBlIExhbWJkYUNvbXB1dGUgfSBmcm9tIFwiLi4vY29tcHV0ZS5qc1wiO1xuaW1wb3J0IHsgdHlwZSBTdG9yYWdlIH0gZnJvbSBcIi4uL3N0b3JhZ2UuanNcIjtcbmltcG9ydCB7IHR5cGUgUXVldWVNZXNzYWdpbmcgfSBmcm9tIFwiLi4vbWVzc2FnaW5nLmpzXCI7XG5pbXBvcnQgeyB0eXBlIENkbiwgdHlwZSBTbWFydENkbkJlaGF2aW91ciB9IGZyb20gXCIuLi9jZG4uanNcIjtcbmltcG9ydCB0eXBlIHsgTWFuYWdlZERvbWFpbkV4cG9ydHMgfSBmcm9tIFwiLi4vLi4vLi4vdXRpbHMvZG9tYWluVHlwZXMuanNcIjtcblxuLy8gUmUtZXhwb3J0IGRhdGFiYXNlIHR5cGVzIGZvciBjb25zdW1lciBjb252ZW5pZW5jZVxuZXhwb3J0IHR5cGUge1xuICBQcm94eUNvbmZpZyxcbiAgUmVhZFJlcGxpY2FDb25maWcsXG4gIENyZWRlbnRpYWxzQ29uZmlnLFxuICBFbmNyeXB0aW9uQ29uZmlnLFxuICBBdXJvcmFFbmNyeXB0aW9uQ29uZmlnLFxuICBBdXJvcmFXcml0ZXJDb25maWcsXG4gIEF1cm9yYVJlYWRlcnNDb25maWcsXG4gIERhdGFiYXNlSW5zaWdodHNDb25maWdcbn07XG5cbi8qKlxuICogRnVsbCBkYXRhYmFzZSBjb25maWd1cmF0aW9uIGZvciBwYXR0ZXJucy5cbiAqIEV4dGVuZHMgdW5kZXJseWluZyBEYXRhYmFzZUZhY3RvcnkgcHJvcHMgd2l0aCBwYXR0ZXJuLXNwZWNpZmljIGRlZmF1bHRzLlxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBNaW5pbWFsIC0gdXNlIGRlZmF1bHRzXG4gKiBkYXRhYmFzZTogeyB0eXBlOiBcIkluc3RhbmNlXCIgfVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBQcm9kdWN0aW9uLXJlYWR5IEluc3RhbmNlXG4gKiBkYXRhYmFzZToge1xuICogICB0eXBlOiBcIkluc3RhbmNlXCIsXG4gKiAgIGluc3RhbmNlVHlwZTogXCJ0NGcubGFyZ2VcIixcbiAqICAgYWxsb2NhdGVkU3RvcmFnZTogNTAsXG4gKiAgIG11bHRpQXo6IHRydWUsXG4gKiAgIGRhdGFiYXNlSW5zaWdodHM6IHsgbW9kZTogXCJhZHZhbmNlZFwiIH0sXG4gKiAgIGVuY3J5cHRpb246IHsgc3RvcmFnZUtleTogeyB1c2VDTUs6IHRydWUgfSB9XG4gKiB9XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEF1cm9yYSB3aXRoIHJlYWRlcnNcbiAqIGRhdGFiYXNlOiB7XG4gKiAgIHR5cGU6IFwiQXVyb3JhXCIsXG4gKiAgIHJlYWRlcnM6IHsgY291bnQ6IDIgfSxcbiAqICAgYWxsb3dWcGNBY2Nlc3M6IHRydWVcbiAqIH1cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYXlsb2FkRGF0YWJhc2VDb25maWcge1xuICAvKiogRGF0YWJhc2UgdHlwZTogXCJJbnN0YW5jZVwiIG9yIFwiQXVyb3JhXCIuIERlZmF1bHQ6IFwiSW5zdGFuY2VcIiAqL1xuICB0eXBlPzogXCJJbnN0YW5jZVwiIHwgXCJBdXJvcmFcIjtcbiAgLyoqIERhdGFiYXNlIG5hbWUuIERlZmF1bHQ6IGRlcml2ZWQgZnJvbSBwYXR0ZXJuIG5hbWUgKi9cbiAgZGF0YWJhc2VOYW1lPzogc3RyaW5nO1xuICAvKiogRGF0YWJhc2UgZW5naW5lLiBEZWZhdWx0OiBcInBvc3RncmVzcWxcIiAqL1xuICBkYXRhYmFzZUVuZ2luZT86IFwicG9zdGdyZXNxbFwiIHwgXCJteXNxbFwiO1xuXG4gIC8qKiBFbmFibGUgZGVsZXRpb24gcHJvdGVjdGlvbi4gRGVmYXVsdDogdHJ1ZSAqL1xuICBkZWxldGlvblByb3RlY3Rpb24/OiBib29sZWFuO1xuICAvKiogQmFja3VwIHJldGVudGlvbiBpbiBkYXlzICgxLTM1KS4gRGVmYXVsdDogNyAqL1xuICBiYWNrdXBSZXRlbnRpb24/OiBudW1iZXI7XG4gIC8qKiBEYXRhYmFzZSBwb3J0LiBEZWZhdWx0OiBlbmdpbmUtc3BlY2lmaWMgKDU0MzIgZm9yIFBvc3RncmVTUUwpICovXG4gIHBvcnQ/OiBudW1iZXI7XG5cbiAgLyoqIE1ha2UgZGF0YWJhc2UgcHVibGljbHkgYWNjZXNzaWJsZSAoZm9yIGxvY2FsIGRldmVsb3BtZW50KS4gRGVmYXVsdDogZmFsc2UgKi9cbiAgcHVibGljbHlBY2Nlc3NpYmxlPzogYm9vbGVhbjtcbiAgLyoqIElQIENJRFIgdG8gYWxsb3cgd2hlbiBwdWJsaWNseSBhY2Nlc3NpYmxlIChlLmcuLCBcIjIwMy4wLjExMy4wLzMyXCIpICovXG4gIGFsbG93ZWRJcENpZHI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEluc3RhbmNlIHR5cGUgZm9yIFJEUyBJbnN0YW5jZSBkYXRhYmFzZXMuXG4gICAqIEV4YW1wbGVzOiBcInQ0Zy5taWNyb1wiLCBcInQ0Zy5zbWFsbFwiLCBcInQ0Zy5sYXJnZVwiLCBcInI2Zy5sYXJnZVwiXG4gICAqIERlZmF1bHQ6IFwidDRnLnNtYWxsXCJcbiAgICogT25seSBhcHBsaWVzIHdoZW4gdHlwZTogXCJJbnN0YW5jZVwiXG4gICAqL1xuICBpbnN0YW5jZVR5cGU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBbGxvY2F0ZWQgc3RvcmFnZSBpbiBHQiBmb3IgUkRTIEluc3RhbmNlLlxuICAgKiBEZWZhdWx0OiAyMFxuICAgKiBPbmx5IGFwcGxpZXMgd2hlbiB0eXBlOiBcIkluc3RhbmNlXCJcbiAgICovXG4gIGFsbG9jYXRlZFN0b3JhZ2U/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBFbmFibGUgTXVsdGktQVogZGVwbG95bWVudCBmb3IgaGlnaCBhdmFpbGFiaWxpdHkuXG4gICAqIENyZWF0ZXMgYSBzdGFuZGJ5IHJlcGxpY2EgaW4gYSBkaWZmZXJlbnQgQVouXG4gICAqIE9ubHkgYXBwbGllcyB3aGVuIHR5cGU6IFwiSW5zdGFuY2VcIlxuICAgKi9cbiAgbXVsdGlBej86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBSZWFkIHJlcGxpY2EgY29uZmlndXJhdGlvbiBmb3IgUkRTIEluc3RhbmNlLlxuICAgKiBTZXQgdG8gZmFsc2UgdG8gZXhwbGljaXRseSBkaXNhYmxlLlxuICAgKiBPbmx5IGFwcGxpZXMgd2hlbiB0eXBlOiBcIkluc3RhbmNlXCJcbiAgICovXG4gIHJlYWRSZXBsaWNhPzogUmVhZFJlcGxpY2FDb25maWcgfCBmYWxzZTtcblxuICAvKipcbiAgICogQXVyb3JhIHdyaXRlciBpbnN0YW5jZSBjb25maWd1cmF0aW9uLlxuICAgKiBPbmx5IGFwcGxpZXMgd2hlbiB0eXBlOiBcIkF1cm9yYVwiXG4gICAqL1xuICB3cml0ZXI/OiBBdXJvcmFXcml0ZXJDb25maWc7XG4gIC8qKlxuICAgKiBBdXJvcmEgcmVhZGVyIGluc3RhbmNlcyBjb25maWd1cmF0aW9uLlxuICAgKiBTZXQgdG8gZmFsc2UgdG8gZXhwbGljaXRseSBkaXNhYmxlIHJlYWRlcnMuXG4gICAqIE9ubHkgYXBwbGllcyB3aGVuIHR5cGU6IFwiQXVyb3JhXCJcbiAgICovXG4gIHJlYWRlcnM/OiBBdXJvcmFSZWFkZXJzQ29uZmlnIHwgZmFsc2U7XG4gIC8qKlxuICAgKiBBbGxvdyBhY2Nlc3MgZnJvbSBWUEMgQ0lEUiAoYXZvaWRzIGNyb3NzLXN0YWNrIGN5Y2xpYyBkZXBlbmRlbmNpZXMpLlxuICAgKiBPbmx5IGFwcGxpZXMgd2hlbiB0eXBlOiBcIkF1cm9yYVwiXG4gICAqL1xuICBhbGxvd1ZwY0FjY2Vzcz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBFbmhhbmNlZCBtb25pdG9yaW5nIGludGVydmFsLlxuICAgKiBPbmx5IGFwcGxpZXMgd2hlbiB0eXBlOiBcIkF1cm9yYVwiXG4gICAqL1xuICBtb25pdG9yaW5nSW50ZXJ2YWw/OiBEdXJhdGlvbjtcbiAgLyoqXG4gICAqIFByZWZlcnJlZCBtYWludGVuYW5jZSB3aW5kb3cgKGUuZy4sIFwic3VuOjA1OjAwLXN1bjowNjowMFwiKS5cbiAgICogT25seSBhcHBsaWVzIHdoZW4gdHlwZTogXCJBdXJvcmFcIlxuICAgKi9cbiAgcHJlZmVycmVkTWFpbnRlbmFuY2VXaW5kb3c/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERhdGFiYXNlIEluc2lnaHRzIGNvbmZpZ3VyYXRpb24uXG4gICAqIFNldCB0byBmYWxzZSB0byBleHBsaWNpdGx5IGRpc2FibGUuXG4gICAqIEBleGFtcGxlIHsgbW9kZTogXCJhZHZhbmNlZFwiIH1cbiAgICovXG4gIGRhdGFiYXNlSW5zaWdodHM/OiBEYXRhYmFzZUluc2lnaHRzQ29uZmlnIHwgZmFsc2U7XG4gIC8qKlxuICAgKiBSRFMgUHJveHkgY29uZmlndXJhdGlvbiBmb3IgY29ubmVjdGlvbiBwb29saW5nLlxuICAgKiBTZXQgdG8gZmFsc2UgdG8gZXhwbGljaXRseSBkaXNhYmxlLlxuICAgKiBAZXhhbXBsZSB7IG1heENvbm5lY3Rpb25zOiAxMDAgfVxuICAgKi9cbiAgcHJveHk/OiBQcm94eUNvbmZpZyB8IGZhbHNlO1xuICAvKipcbiAgICogQ3JlZGVudGlhbHMgY29uZmlndXJhdGlvbiAodXNlcm5hbWUsIHJvdGF0aW9uKS5cbiAgICovXG4gIGNyZWRlbnRpYWxzPzogQ3JlZGVudGlhbHNDb25maWc7XG4gIC8qKlxuICAgKiBFbmNyeXB0aW9uIGNvbmZpZ3VyYXRpb24uXG4gICAqIEZvciBJbnN0YW5jZTogRW5jcnlwdGlvbkNvbmZpZ1xuICAgKiBGb3IgQXVyb3JhOiBBdXJvcmFFbmNyeXB0aW9uQ29uZmlnXG4gICAqIEBleGFtcGxlIHsgc3RvcmFnZUtleTogeyB1c2VDTUs6IHRydWUgfSB9XG4gICAqL1xuICBlbmNyeXB0aW9uPzogRW5jcnlwdGlvbkNvbmZpZyB8IEF1cm9yYUVuY3J5cHRpb25Db25maWc7XG5cbiAgLyoqIEFSTiBvciBpZGVudGlmaWVyIG9mIHNuYXBzaG90IHRvIHJlc3RvcmUgZnJvbSAqL1xuICBzbmFwc2hvdElkZW50aWZpZXI/OiBzdHJpbmc7XG4gIC8qKiBVc2VybmFtZSBmcm9tIHRoZSBzbmFwc2hvdCAocmVxdWlyZWQgd2hlbiByZXN0b3JpbmcpICovXG4gIHNuYXBzaG90VXNlcm5hbWU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogTGFtYmRhIGZ1bmN0aW9uIGNvbmZpZ3VyYXRpb24gZm9yIHBhdHRlcm4gc3ViLWZ1bmN0aW9ucy5cbiAqXG4gKiBAZXhhbXBsZVxuICogc2VydmVyOiB7IG1lbW9yeVNpemU6IDIwNDgsIHRpbWVvdXQ6IDYwIH1cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYXR0ZXJuTGFtYmRhQ29uZmlnIHtcbiAgLyoqIE1lbW9yeSBzaXplIGluIE1CLiBSYW5nZTogMTI4LTEwMjQwLiAqL1xuICBtZW1vcnlTaXplPzogbnVtYmVyO1xuICAvKiogVGltZW91dCBpbiBzZWNvbmRzLiBSYW5nZTogMS05MDAuICovXG4gIHRpbWVvdXQ/OiBudW1iZXI7XG4gIC8qKiBFcGhlbWVyYWwgc3RvcmFnZSBzaXplIGluIE1CLiBSYW5nZTogNTEyLTEwMjQwLiBEZWZhdWx0OiA1MTIuICovXG4gIGVwaGVtZXJhbFN0b3JhZ2VTaXplPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIEZ1bGwgY29tcHV0ZSBjb25maWd1cmF0aW9uIGZvciBwYXR0ZXJucy5cbiAqIEFsbG93cyBwZXItZnVuY3Rpb24gY29uZmlndXJhdGlvbiBmb3IgZWFjaCBMYW1iZGEgaW4gdGhlIHBhdHRlcm4uXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIENvbmZpZ3VyZSBpbmRpdmlkdWFsIGZ1bmN0aW9uc1xuICogY29tcHV0ZToge1xuICogICBzZXJ2ZXI6IHsgbWVtb3J5U2l6ZTogMjA0OCwgdGltZW91dDogNjAgfSxcbiAqICAgaW1hZ2VPcHRpbWlzYXRpb246IHsgbWVtb3J5U2l6ZTogMjA0OCB9LFxuICogICByZXZhbGlkYXRpb246IHsgbWVtb3J5U2l6ZTogMTAyNCwgdGltZW91dDogNjAwIH1cbiAqIH1cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYXlsb2FkQ29tcHV0ZUNvbmZpZyB7XG4gIC8qKlxuICAgKiBTZXJ2ZXIgTGFtYmRhIGNvbmZpZ3VyYXRpb24uXG4gICAqIEhhbmRsZXMgbWFpbiBhcHBsaWNhdGlvbiByZXF1ZXN0cy5cbiAgICogRGVmYXVsdHM6IG1lbW9yeVNpemU9MTUzNiwgdGltZW91dD0zMFxuICAgKi9cbiAgc2VydmVyPzogUGF0dGVybkxhbWJkYUNvbmZpZztcbiAgLyoqXG4gICAqIEltYWdlIG9wdGltaXNhdGlvbiBMYW1iZGEgY29uZmlndXJhdGlvbi5cbiAgICogSGFuZGxlcyBOZXh0LmpzIGltYWdlIG9wdGltaXNhdGlvbi5cbiAgICogRGVmYXVsdHM6IG1lbW9yeVNpemU9MTUzNiwgdGltZW91dD0zMFxuICAgKi9cbiAgaW1hZ2VPcHRpbWlzYXRpb24/OiBQYXR0ZXJuTGFtYmRhQ29uZmlnO1xuICAvKipcbiAgICogUmV2YWxpZGF0aW9uIExhbWJkYSBjb25maWd1cmF0aW9uLlxuICAgKiBIYW5kbGVzIElTUiByZXZhbGlkYXRpb24gZnJvbSBTUVMgcXVldWUuXG4gICAqIERlZmF1bHRzOiBtZW1vcnlTaXplPTc2OCwgdGltZW91dD0zMDBcbiAgICovXG4gIHJldmFsaWRhdGlvbj86IFBhdHRlcm5MYW1iZGFDb25maWc7XG59XG5cbi8qKlxuICogUzMgYnVja2V0IGNvbmZpZ3VyYXRpb24gZm9yIHBhdHRlcm4gc3ViLWJ1Y2tldHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGF0dGVyblN0b3JhZ2VCdWNrZXRDb25maWcge1xuICAvKiogRW5hYmxlIHZlcnNpb25pbmcuIERlZmF1bHQ6IGZhbHNlICovXG4gIHZlcnNpb25lZD86IGJvb2xlYW47XG59XG5cbi8qKlxuICogRnVsbCBzdG9yYWdlIGNvbmZpZ3VyYXRpb24gZm9yIHBhdHRlcm5zLlxuICogQWxsb3dzIHBlci1idWNrZXQgY29uZmlndXJhdGlvbiBmb3IgZWFjaCBTMyBidWNrZXQgaW4gdGhlIHBhdHRlcm4uXG4gKlxuICogQGV4YW1wbGVcbiAqIHN0b3JhZ2U6IHtcbiAqICAgYXNzZXRzOiB7IHZlcnNpb25lZDogdHJ1ZSB9LFxuICogICBjYWNoZTogeyB2ZXJzaW9uZWQ6IGZhbHNlIH0sXG4gKiAgIG1lZGlhOiB7IHZlcnNpb25lZDogdHJ1ZSB9XG4gKiB9XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGF5bG9hZFN0b3JhZ2VDb25maWcge1xuICAvKiogQXNzZXRzIGJ1Y2tldCAoc3RhdGljIGZpbGVzKSAqL1xuICBhc3NldHM/OiBQYXR0ZXJuU3RvcmFnZUJ1Y2tldENvbmZpZztcbiAgLyoqIENhY2hlIGJ1Y2tldCAoSVNSIGNhY2hlKSAqL1xuICBjYWNoZT86IFBhdHRlcm5TdG9yYWdlQnVja2V0Q29uZmlnO1xuICAvKiogTWVkaWEgYnVja2V0ICh1cGxvYWRzKSAqL1xuICBtZWRpYT86IFBhdHRlcm5TdG9yYWdlQnVja2V0Q29uZmlnO1xufVxuXG4vKipcbiAqIFNRUyBxdWV1ZSBjb25maWd1cmF0aW9uIGZvciBwYXR0ZXJuIG1lc3NhZ2luZy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYXR0ZXJuUXVldWVDb25maWcge1xuICAvKiogVmlzaWJpbGl0eSB0aW1lb3V0IGluIHNlY29uZHMuIERlZmF1bHQ6IG1hdGNoZXMgcmV2YWxpZGF0aW9uIHRpbWVvdXQgKi9cbiAgdmlzaWJpbGl0eVRpbWVvdXQ/OiBudW1iZXI7XG4gIC8qKiBNZXNzYWdlIHJldGVudGlvbiBwZXJpb2QgaW4gc2Vjb25kcy4gRGVmYXVsdDogMzQ1NjAwICg0IGRheXMpICovXG4gIG1lc3NhZ2VSZXRlbnRpb25QZXJpb2Q/OiBudW1iZXI7XG4gIC8qKiBNYXhpbXVtIG1lc3NhZ2Ugc2l6ZSBpbiBieXRlcy4gRGVmYXVsdDogMjYyMTQ0ICgyNTYgS0IpICovXG4gIG1heE1lc3NhZ2VTaXplPzogbnVtYmVyO1xuICAvKipcbiAgICogRGVhZCBsZXR0ZXIgcXVldWUgY29uZmlndXJhdGlvbi5cbiAgICogU2V0IHRvIGZhbHNlIHRvIGV4cGxpY2l0bHkgZGlzYWJsZS5cbiAgICovXG4gIGRlYWRMZXR0ZXJRdWV1ZT86XG4gICAgfCB7XG4gICAgICAgIGVuYWJsZWQ/OiBib29sZWFuO1xuICAgICAgICBtYXhSZWNlaXZlQ291bnQ/OiBudW1iZXI7XG4gICAgICB9XG4gICAgfCBmYWxzZTtcbn1cblxuLyoqXG4gKiBGdWxsIG1lc3NhZ2luZyBjb25maWd1cmF0aW9uIGZvciBwYXR0ZXJucy5cbiAqXG4gKiBAZXhhbXBsZVxuICogbWVzc2FnaW5nOiB7XG4gKiAgIHJldmFsaWRhdGlvblF1ZXVlOiB7XG4gKiAgICAgdmlzaWJpbGl0eVRpbWVvdXQ6IDYwMCxcbiAqICAgICBkZWFkTGV0dGVyUXVldWU6IHsgZW5hYmxlZDogdHJ1ZSwgbWF4UmVjZWl2ZUNvdW50OiA1IH1cbiAqICAgfVxuICogfVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBheWxvYWRNZXNzYWdpbmdDb25maWcge1xuICAvKiogUmV2YWxpZGF0aW9uIHF1ZXVlIGNvbmZpZ3VyYXRpb24gKi9cbiAgcmV2YWxpZGF0aW9uUXVldWU/OiBQYXR0ZXJuUXVldWVDb25maWc7XG59XG5cbi8qKlxuICogQ0ROIGNvbmZpZ3VyYXRpb24gZm9yIFBheWxvYWQgcGF0dGVybi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYXlsb2FkQ2RuQ29uZmlnIHtcbiAgLyoqIEN1c3RvbSBkb21haW4gbmFtZXMgZm9yIENsb3VkRnJvbnQgKi9cbiAgZG9tYWluTmFtZXM/OiBzdHJpbmdbXTtcbiAgLyoqIEFDTSBjZXJ0aWZpY2F0ZSBmb3IgY3VzdG9tIGRvbWFpbnMgKG11c3QgYmUgaW4gdXMtZWFzdC0xKSAqL1xuICBjZXJ0aWZpY2F0ZT86IElDZXJ0aWZpY2F0ZTtcbiAgLyoqIEFDTSBjZXJ0aWZpY2F0ZSBBUk4gKGFsdGVybmF0aXZlIHRvIGNlcnRpZmljYXRlIC0gbXVzdCBiZSBpbiB1cy1lYXN0LTEpICovXG4gIGNlcnRpZmljYXRlQXJuPzogc3RyaW5nO1xuICAvKiogQWRkaXRpb25hbCBDRE4gYmVoYXZpb3VycyAqL1xuICBiZWhhdmlvdXJzPzogU21hcnRDZG5CZWhhdmlvdXJbXTtcbn1cblxuLyoqXG4gKiBQYXlsb2FkIHBhdHRlcm4gcHJvcHMuXG4gKlxuICogQ29uZmlndXJlcyBhIFBheWxvYWQgQ01TIGRlcGxveW1lbnQgd2l0aCBhbGwgcmVxdWlyZWQgaW5mcmFzdHJ1Y3R1cmU6XG4gKiAtIFJEUyBQb3N0Z3JlU1FMIGRhdGFiYXNlIChBdXJvcmEgb3IgSW5zdGFuY2UpXG4gKiAtIFMzIGJ1Y2tldHMgKGFzc2V0cywgY2FjaGUsIG1lZGlhKVxuICogLSBEeW5hbW9EQiB0YWJsZSAodGFnIGNhY2hlKVxuICogLSBTUVMgRklGTyBxdWV1ZSAocmV2YWxpZGF0aW9uKVxuICogLSBMYW1iZGEgZnVuY3Rpb25zIChzZXJ2ZXIsIGltYWdlIG9wdGltaXNhdGlvbiwgcmV2YWxpZGF0aW9uKVxuICogLSBDbG91ZEZyb250IGRpc3RyaWJ1dGlvblxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBNaW5pbWFsIC0gd29ya3Mgb3V0IG9mIGJveFxuICogYXBwLmFkZFBhdHRlcm4oUGF0dGVybkZhY3RvcnkuYnVpbGQoXCJQYXlsb2FkQXBwXCIsIHtcbiAqICAgdHlwZTogXCJwYXlsb2FkXCIsXG4gKiAgIG5hbWU6IFwibXktY21zXCJcbiAqIH0pKTtcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gV2l0aCBjdXN0b20gZG9tYWluIChhdXRvLWNyZWF0ZXMgY2VydGlmaWNhdGUgKyBETlMpXG4gKiBhcHAuYWRkUGF0dGVybihQYXR0ZXJuRmFjdG9yeS5idWlsZChcIlBheWxvYWRBcHBcIiwge1xuICogICB0eXBlOiBcInBheWxvYWRcIixcbiAqICAgbmFtZTogXCJteS1jbXNcIixcbiAqICAgZG9tYWluOiBcImNtcy5leGFtcGxlLmNvbVwiXG4gKiB9KSk7XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEN1c3RvbWlzZWRcbiAqIGFwcC5hZGRQYXR0ZXJuKFBhdHRlcm5GYWN0b3J5LmJ1aWxkKFwiUGF5bG9hZEFwcFwiLCB7XG4gKiAgIHR5cGU6IFwicGF5bG9hZFwiLFxuICogICBuYW1lOiBcIm15LWNtc1wiLFxuICogICBkYXRhYmFzZToge1xuICogICAgIHR5cGU6IFwiSW5zdGFuY2VcIixcbiAqICAgICBwdWJsaWNseUFjY2Vzc2libGU6IHRydWVcbiAqICAgfSxcbiAqICAgY29tcHV0ZToge1xuICogICAgIHNlcnZlcjogeyBtZW1vcnlTaXplOiAyMDQ4IH1cbiAqICAgfVxuICogfSkpO1xuICovXG5leHBvcnQgaW50ZXJmYWNlIElQYXlsb2FkUHJvcHMge1xuICAvKiogUGF0dGVybiB0eXBlIGRpc2NyaW1pbmF0b3IgKi9cbiAgdHlwZTogXCJwYXlsb2FkXCI7XG4gIC8qKiBQYXR0ZXJuIG5hbWUgKHVzZWQgZm9yIHJlc291cmNlIG5hbWluZykgKi9cbiAgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gZG9tYWluIGZvciB0aGUgUGF5bG9hZCBhcHBsaWNhdGlvbi5cbiAgICogV2hlbiBwcm92aWRlZCwgYXV0b21hdGljYWxseTpcbiAgICogLSBMb29rcyB1cCB0aGUgUm91dGU1MyBob3N0ZWQgem9uZVxuICAgKiAtIENyZWF0ZXMgYW4gQUNNIGNlcnRpZmljYXRlIHdpdGggRE5TIHZhbGlkYXRpb24gKGluIHVzLWVhc3QtMSlcbiAgICogLSBDb25maWd1cmVzIENsb3VkRnJvbnQgd2l0aCB0aGUgY2VydGlmaWNhdGVcbiAgICogLSBDcmVhdGVzIGFuIEEgcmVjb3JkIChhbGlhcykgcG9pbnRpbmcgdG8gQ2xvdWRGcm9udFxuICAgKlxuICAgKiBSZXF1aXJlczogQSBSb3V0ZTUzIGhvc3RlZCB6b25lIGZvciB0aGUgZG9tYWluIG11c3QgZXhpc3QuXG4gICAqXG4gICAqIEBleGFtcGxlIFwiY21zLmV4YW1wbGUuY29tXCJcbiAgICovXG4gIGRvbWFpbj86IHN0cmluZztcblxuICAvKiogSW1wb3J0IHpvbmUgYW5kIGNlcnQgZnJvbSBhIG1hbmFnZWQgZG9tYWluIHN0YWNrIGluc3RlYWQgb2YgY3JlYXRpbmcgaW5saW5lICovXG4gIG1hbmFnZWREb21haW4/OiBNYW5hZ2VkRG9tYWluRXhwb3J0cztcblxuICAvKiogRGF0YWJhc2UgY29uZmlndXJhdGlvbiAqL1xuICBkYXRhYmFzZT86IFBheWxvYWREYXRhYmFzZUNvbmZpZztcbiAgLyoqIENvbXB1dGUgKExhbWJkYSkgY29uZmlndXJhdGlvbiAqL1xuICBjb21wdXRlPzogUGF5bG9hZENvbXB1dGVDb25maWc7XG4gIC8qKiBTdG9yYWdlIChTMykgY29uZmlndXJhdGlvbiAqL1xuICBzdG9yYWdlPzogUGF5bG9hZFN0b3JhZ2VDb25maWc7XG4gIC8qKiBNZXNzYWdpbmcgKFNRUykgY29uZmlndXJhdGlvbiAqL1xuICBtZXNzYWdpbmc/OiBQYXlsb2FkTWVzc2FnaW5nQ29uZmlnO1xuICAvKiogQ0ROIChDbG91ZEZyb250KSBjb25maWd1cmF0aW9uIC0gZm9yIGFkdmFuY2VkIHVzZS4gVXNlIGBkb21haW5gIGZvciBzaW1wbGUgc2V0dXAuICovXG4gIGNkbj86IFBheWxvYWRDZG5Db25maWc7XG5cbiAgLyoqIEFkZGl0aW9uYWwgZW52aXJvbm1lbnQgdmFyaWFibGVzIGZvciBzZXJ2ZXIgTGFtYmRhICovXG4gIGVudmlyb25tZW50PzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbn1cblxuLyoqXG4gKiBVbmlvbiBvZiBhbGwgcGF0dGVybiBwcm9wcy5cbiAqIEV4dGVuZCB0aGlzIHdoZW4gYWRkaW5nIG5ldyBwYXR0ZXJucyAoZS5nLiwgSU5leHRqc1Byb3BzLCBJUmVtaXhQcm9wcykuXG4gKi9cbmV4cG9ydCB0eXBlIElQYXR0ZXJuUHJvcHMgPSBJUGF5bG9hZFByb3BzOyAvLyB8IElOZXh0anNQcm9wcyB8IElSZW1peFByb3BzIGluIGZ1dHVyZVxuXG4vKipcbiAqIFBhdHRlcm4gdHlwZSBkaXNjcmltaW5hdG9yLlxuICovXG5leHBvcnQgdHlwZSBQYXR0ZXJuVHlwZSA9IFwicGF5bG9hZFwiOyAvLyB8IFwibmV4dGpzXCIgfCBcInJlbWl4XCIgaW4gZnV0dXJlXG5cbi8qKlxuICogQmFzZSBwYXR0ZXJuIGludGVyZmFjZS5cbiAqIEFsbCBwYXR0ZXJucyBpbXBsZW1lbnQgdGhpcyBpbnRlcmZhY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVBhdHRlcm4ge1xuICAvKiogVGhlIHR5cGUgb2YgcGF0dGVybi4gVXNlZCBmb3IgcnVudGltZSB0eXBlIG5hcnJvd2luZy4gKi9cbiAgcmVhZG9ubHkgcGF0dGVyblR5cGU6IFBhdHRlcm5UeXBlO1xuXG4gIC8qKiBUaGUgdW5kZXJseWluZyBDREsgY29uc3RydWN0IG5vZGUuICovXG4gIHJlYWRvbmx5IG5vZGU6IENvbnN0cnVjdFtcIm5vZGVcIl07XG59XG5cbi8qKlxuICogUGF5bG9hZCBwYXR0ZXJuIGludGVyZmFjZS5cbiAqIFByb3ZpZGVzIGFjY2VzcyB0byBhbGwgdW5kZXJseWluZyByZXNvdXJjZXMgZm9yIGVzY2FwZSBoYXRjaGVzLlxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBFc2NhcGUgaGF0Y2hlcyAtIGZ1bGwgYWNjZXNzIHRvIHVuZGVybHlpbmcgcmVzb3VyY2VzXG4gKiBwYXlsb2FkLmdldERhdGFiYXNlKCkuZ3JhbnRDb25uZWN0KHNvbWVPdGhlckxhbWJkYSk7XG4gKiBwYXlsb2FkLmdldFNlcnZlcigpLmdldExhbWJkYUZ1bmN0aW9uKCkuYWRkRW52aXJvbm1lbnQoXCJDVVNUT01fVkFSXCIsIFwidmFsdWVcIik7XG4gKiBwYXlsb2FkLmdldENkbigpLmdldERpc3RyaWJ1dGlvbigpLmFkZEJlaGF2aW9yKFwiL2N1c3RvbS8qXCIsIGN1c3RvbU9yaWdpbik7XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVBheWxvYWQgZXh0ZW5kcyBJUGF0dGVybiB7XG4gIHJlYWRvbmx5IHBhdHRlcm5UeXBlOiBcInBheWxvYWRcIjtcblxuICAvKiogR2V0IHRoZSBQb3N0Z3JlU1FMIGRhdGFiYXNlIChBdXJvcmEgb3IgSW5zdGFuY2UpICovXG4gIGdldERhdGFiYXNlKCk6IFJlbGF0aW9uYWxEYXRhYmFzZTtcblxuICAvKiogR2V0IHRoZSBTZXJ2ZXIgTGFtYmRhIGZ1bmN0aW9uICovXG4gIGdldFNlcnZlcigpOiBMYW1iZGFDb21wdXRlO1xuXG4gIC8qKiBHZXQgdGhlIEltYWdlIE9wdGltaXNhdGlvbiBMYW1iZGEgZnVuY3Rpb24gKi9cbiAgZ2V0SW1hZ2VPcHRpbWlzYXRpb24oKTogTGFtYmRhQ29tcHV0ZTtcblxuICAvKiogR2V0IHRoZSBSZXZhbGlkYXRpb24gTGFtYmRhIGZ1bmN0aW9uICovXG4gIGdldFJldmFsaWRhdGlvbigpOiBMYW1iZGFDb21wdXRlO1xuXG4gIC8qKiBHZXQgdGhlIEFzc2V0cyBTMyBidWNrZXQgKHN0YXRpYyBmaWxlcykgKi9cbiAgZ2V0QXNzZXRzQnVja2V0KCk6IFN0b3JhZ2U7XG5cbiAgLyoqIEdldCB0aGUgQ2FjaGUgUzMgYnVja2V0IChJU1IgY2FjaGUpICovXG4gIGdldENhY2hlQnVja2V0KCk6IFN0b3JhZ2U7XG5cbiAgLyoqIEdldCB0aGUgTWVkaWEgUzMgYnVja2V0ICh1cGxvYWRzKSAqL1xuICBnZXRNZWRpYUJ1Y2tldCgpOiBTdG9yYWdlO1xuXG4gIC8qKiBHZXQgdGhlIFRhZyBDYWNoZSBEeW5hbW9EQiB0YWJsZSAqL1xuICBnZXRUYWdDYWNoZSgpOiBEeW5hbW9EQkRhdGFiYXNlO1xuXG4gIC8qKiBHZXQgdGhlIFJldmFsaWRhdGlvbiBTUVMgcXVldWUgKi9cbiAgZ2V0UmV2YWxpZGF0aW9uUXVldWUoKTogUXVldWVNZXNzYWdpbmc7XG5cbiAgLyoqIEdldCB0aGUgQ2xvdWRGcm9udCBkaXN0cmlidXRpb24gKi9cbiAgZ2V0Q2RuKCk6IENkbjtcbn1cblxuLyoqXG4gKiBVbmlvbiB0eXBlIHJlcHJlc2VudGluZyBhbnkgcGF0dGVybiBpbnRlcmZhY2UuXG4gKiBVc2Ugd2l0aCB0eXBlIGd1YXJkcyBmb3IgZ2VuZXJpYyBoYW5kbGluZy5cbiAqL1xuZXhwb3J0IHR5cGUgQW55UGF0dGVybiA9IElQYXlsb2FkOyAvLyB8IElOZXh0anMgfCBJUmVtaXggaW4gZnV0dXJlXG5cbi8qKlxuICogVHlwZSBndWFyZCB0byBjaGVjayBpZiBhIHBhdHRlcm4gaXMgUGF5bG9hZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUGF5bG9hZFBhdHRlcm4ocGF0dGVybjogSVBhdHRlcm4pOiBwYXR0ZXJuIGlzIElQYXlsb2FkIHtcbiAgcmV0dXJuIHBhdHRlcm4ucGF0dGVyblR5cGUgPT09IFwicGF5bG9hZFwiO1xufVxuXG4vKipcbiAqIFR5cGUgZ3VhcmQgdG8gY2hlY2sgaWYgYSByZXNvdXJjZSBpcyBhbnkgcGF0dGVybiB0eXBlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNQYXR0ZXJuKHJlc291cmNlOiB1bmtub3duKTogcmVzb3VyY2UgaXMgSVBhdHRlcm4ge1xuICByZXR1cm4gKFxuICAgIHJlc291cmNlICE9PSBudWxsICYmXG4gICAgdHlwZW9mIHJlc291cmNlID09PSBcIm9iamVjdFwiICYmXG4gICAgXCJwYXR0ZXJuVHlwZVwiIGluIHJlc291cmNlICYmXG4gICAgdHlwZW9mIChyZXNvdXJjZSBhcyBJUGF0dGVybikucGF0dGVyblR5cGUgPT09IFwic3RyaW5nXCJcbiAgKTtcbn1cbiJdfQ==