truemark-cdk-lib 1.6.6 → 1.6.7-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,13 +1,18 @@
1
- import { AllowedMethods, BehaviorOptions, CachedMethods, EdgeLambda, FunctionAssociation, ICachePolicy, IFunction, IKeyGroup, IOrigin, IOriginRequestPolicy, IResponseHeadersPolicy, ViewerProtocolPolicy } from "aws-cdk-lib/aws-cloudfront";
1
+ import { AllowedMethods, BehaviorOptions, CachedMethods, Distribution, DistributionProps, EdgeLambda, FunctionAssociation, ICachePolicy, IFunction, IKeyGroup, IOrigin, IOriginRequestPolicy, IResponseHeadersPolicy, ViewerProtocolPolicy } from "aws-cdk-lib/aws-cloudfront";
2
2
  import { Construct } from "constructs";
3
3
  import { WebsiteRedirectFunctionProps } from "./website-redirect-function";
4
+ import { DistributionBuilder } from "./distribution-builder";
5
+ import { IBucket } from "aws-cdk-lib/aws-s3";
6
+ import { CloudFrontBucket } from "../../aws-s3";
4
7
  export interface WebsiteDefaultsProps extends WebsiteRedirectFunctionProps {
5
8
  readonly scope: Construct;
6
9
  readonly redirectFunctionId?: string;
7
10
  }
8
11
  export declare class BehaviorBuilder {
12
+ readonly path: string | undefined;
9
13
  protected options: BehaviorOptions;
10
- protected constructor(origin: IOrigin);
14
+ protected parent: DistributionBuilder;
15
+ constructor(parent: DistributionBuilder, origin: IOrigin, path: string | undefined);
11
16
  fallbackOrigin(fallbackOrigin?: IOrigin): BehaviorBuilder;
12
17
  allowedMethods(allowedMethods?: AllowedMethods): BehaviorBuilder;
13
18
  cachedMethods(cachedMethods?: CachedMethods): BehaviorBuilder;
@@ -25,6 +30,11 @@ export declare class BehaviorBuilder {
25
30
  trustedKeyGroups(trustedKeyGroups?: IKeyGroup[]): BehaviorBuilder;
26
31
  defaults(): BehaviorBuilder;
27
32
  websiteDefaults(props: WebsiteDefaultsProps): BehaviorBuilder;
28
- build(): BehaviorOptions;
29
- static fromOrigin(origin: IOrigin): BehaviorBuilder;
33
+ staticDefaults(): BehaviorBuilder;
34
+ buildBehavior(): BehaviorOptions;
35
+ build(): DistributionProps;
36
+ behavior(origin: IOrigin, path: string): BehaviorBuilder;
37
+ behaviorFromBucket(bucket: IBucket, path: string): BehaviorBuilder;
38
+ behaviorFromCloudFromBucket(bucket: CloudFrontBucket, path: string): BehaviorBuilder;
39
+ toDistribution(): Distribution;
30
40
  }
@@ -5,7 +5,10 @@ const aws_cloudfront_1 = require("aws-cdk-lib/aws-cloudfront");
5
5
  const website_redirect_function_1 = require("./website-redirect-function");
6
6
  const aws_cloudfront_origins_1 = require("aws-cdk-lib/aws-cloudfront-origins");
7
7
  class BehaviorBuilder {
8
- constructor(origin) {
8
+ constructor(parent, origin, path) {
9
+ this.path = path;
10
+ parent.addBehavior(this, path);
11
+ this.parent = parent;
9
12
  this.options = {
10
13
  origin
11
14
  };
@@ -153,12 +156,33 @@ class BehaviorBuilder {
153
156
  ...props
154
157
  });
155
158
  }
156
- build() {
159
+ staticDefaults() {
160
+ return this
161
+ .viewerProtocolPolicy(aws_cloudfront_1.ViewerProtocolPolicy.REDIRECT_TO_HTTPS)
162
+ .compress(true)
163
+ .allowedMethods(aws_cloudfront_1.AllowedMethods.ALLOW_GET_HEAD_OPTIONS)
164
+ .cachedMethods(aws_cloudfront_1.CachedMethods.CACHE_GET_HEAD_OPTIONS)
165
+ .cachePolicy(aws_cloudfront_1.CachePolicy.CACHING_OPTIMIZED)
166
+ .originRequestPolicy(aws_cloudfront_1.OriginRequestPolicy.CORS_S3_ORIGIN);
167
+ }
168
+ buildBehavior() {
157
169
  return this.options;
158
170
  }
159
- static fromOrigin(origin) {
160
- return new BehaviorBuilder(origin);
171
+ build() {
172
+ return this.parent.build();
173
+ }
174
+ behavior(origin, path) {
175
+ return this.parent.behavior(origin, path);
176
+ }
177
+ behaviorFromBucket(bucket, path) {
178
+ return this.parent.behaviorFromBucket(bucket, path);
179
+ }
180
+ behaviorFromCloudFromBucket(bucket, path) {
181
+ return this.parent.behaviorFromCloudFromBucket(bucket, path);
182
+ }
183
+ toDistribution() {
184
+ return this.parent.toDistribution();
161
185
  }
162
186
  }
163
187
  exports.BehaviorBuilder = BehaviorBuilder;
164
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVoYXZpb3ItYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImJlaGF2aW9yLWJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0RBZ0JvQztBQUVwQywyRUFBa0c7QUFDbEcsK0VBQStEO0FBTy9ELE1BQWEsZUFBZTtJQUkxQixZQUFzQixNQUFlO1FBQ25DLElBQUksQ0FBQyxPQUFPLEdBQUc7WUFDYixNQUFNO1NBQ1AsQ0FBQTtJQUNILENBQUM7SUFFRCxjQUFjLENBQUMsY0FBd0I7UUFDckMsSUFBSSxjQUFjLEVBQUU7WUFDbEIsTUFBTSxXQUFXLEdBQUcsSUFBSSxvQ0FBVyxDQUFDO2dCQUNsQyxhQUFhLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNO2dCQUNsQyxjQUFjO2FBQ2YsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLE9BQU8sR0FBRztnQkFDYixHQUFHLElBQUksQ0FBQyxPQUFPO2dCQUNmLE1BQU0sRUFBRSxXQUFXO2FBQ3BCLENBQUE7U0FDRjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGNBQWMsQ0FBQyxjQUErQjtRQUM1QyxJQUFJLENBQUMsT0FBTyxHQUFHO1lBQ2IsR0FBRyxJQUFJLENBQUMsT0FBTztZQUNmLGNBQWM7U0FDZixDQUFBO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsYUFBYSxDQUFDLGFBQTZCO1FBQ3pDLElBQUksQ0FBQyxPQUFPLEdBQUc7WUFDYixHQUFHLElBQUksQ0FBQyxPQUFPO1lBQ2YsYUFBYTtTQUNkLENBQUE7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxXQUFXLENBQUMsV0FBeUI7UUFDbkMsSUFBSSxDQUFDLE9BQU8sR0FBRztZQUNiLEdBQUcsSUFBSSxDQUFDLE9BQU87WUFDZixXQUFXO1NBQ1osQ0FBQTtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELFFBQVEsQ0FBQyxRQUFrQjtR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b0JBQW9CLENBQUMscUNBQW9CLENBQUMsaUJBQWlCLENBQUM7YUFDNUQsUUFBUSxDQUFDLElBQUksQ0FBQzthQUNkLGNBQWMsQ0FBQywrQkFBYyxDQUFDLFNBQVMsQ0FBQzthQUN4QyxhQUFhLENBQUMsOEJBQWEsQ0FBQyxzQkFBc0IsQ0FBQzthQUNuRCxXQUFXLENBQUMsNEJBQVcsQ0FBQyxpQkFBaUIsQ0FBQzthQUMxQyxtQkFBbUIsQ0FBQyxvQ0FBbUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQTJCOztRQUN6QyxPQUFPLElBQUk7YUFDUixvQkFBb0IsQ0FBQyxxQ0FBb0IsQ0FBQyxpQkFBaUIsQ0FBQzthQUM1RCxRQUFRLENBQUMsSUFBSSxDQUFDO2FBQ2QsY0FBYyxDQUFDLCtCQUFjLENBQUMsc0JBQXNCLENBQUM7YUFDckQsYUFBYSxDQUFDLDhCQUFhLENBQUMsc0JBQXNCLENBQUM7YUFDbkQsV0FBVyxDQUFDLDRCQUFXLENBQUMsaUJBQWlCLENBQUM7YUFDMUMsbUJBQW1CLENBQUMsb0NBQW1CLENBQUMsY0FBYyxDQUFDO2FBQ3ZELHVCQUF1QixDQUFDLEtBQUssQ0FBQyxLQUFLLFFBQUUsS0FBSyxDQUFDLGtCQUFrQixtQ0FBSSxrQkFBa0IsRUFBRTtZQUNwRixHQUFHLEtBQUs7U0FDVCxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsS0FBSztRQUNILE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFlO1FBQy9CLE9BQU8sSUFBSSxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDckMsQ0FBQztDQUNGO0FBOUtELDBDQThLQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFsbG93ZWRNZXRob2RzLFxuICBCZWhhdmlvck9wdGlvbnMsXG4gIENhY2hlZE1ldGhvZHMsXG4gIENhY2hlUG9saWN5LFxuICBFZGdlTGFtYmRhLFxuICBGdW5jdGlvbkFzc29jaWF0aW9uLFxuICBGdW5jdGlvbkV2ZW50VHlwZSxcbiAgSUNhY2hlUG9saWN5LFxuICBJRnVuY3Rpb24sXG4gIElLZXlHcm91cCxcbiAgSU9yaWdpbixcbiAgSU9yaWdpblJlcXVlc3RQb2xpY3ksXG4gIElSZXNwb25zZUhlYWRlcnNQb2xpY3ksXG4gIE9yaWdpblJlcXVlc3RQb2xpY3ksXG4gIFZpZXdlclByb3RvY29sUG9saWN5XG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2xvdWRmcm9udFwiO1xuaW1wb3J0IHtDb25zdHJ1Y3R9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge1dlYnNpdGVSZWRpcmVjdEZ1bmN0aW9uLCBXZWJzaXRlUmVkaXJlY3RGdW5jdGlvblByb3BzfSBmcm9tIFwiLi93ZWJzaXRlLXJlZGlyZWN0LWZ1bmN0aW9uXCI7XG5pbXBvcnQge09yaWdpbkdyb3VwfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3VkZnJvbnQtb3JpZ2luc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFdlYnNpdGVEZWZhdWx0c1Byb3BzIGV4dGVuZHMgV2Vic2l0ZVJlZGlyZWN0RnVuY3Rpb25Qcm9wcyB7XG4gIHJlYWRvbmx5IHNjb3BlOiBDb25zdHJ1Y3Q7XG4gIHJlYWRvbmx5IHJlZGlyZWN0RnVuY3Rpb25JZD86IHN0cmluZ1xufVxuXG5leHBvcnQgY2xhc3MgQmVoYXZpb3JCdWlsZGVyIHtcblxuICBwcm90ZWN0ZWQgb3B0aW9uczogQmVoYXZpb3JPcHRpb25zO1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihvcmlnaW46IElPcmlnaW4pIHtcbiAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICBvcmlnaW5cbiAgICB9XG4gIH1cblxuICBmYWxsYmFja09yaWdpbihmYWxsYmFja09yaWdpbj86IElPcmlnaW4pOiBCZWhhdmlvckJ1aWxkZXIge1xuICAgIGlmIChmYWxsYmFja09yaWdpbikge1xuICAgICAgY29uc3Qgb3JpZ2luR3JvdXAgPSBuZXcgT3JpZ2luR3JvdXAoe1xuICAgICAgICBwcmltYXJ5T3JpZ2luOiB0aGlzLm9wdGlvbnMub3JpZ2luLFxuICAgICAgICBmYWxsYmFja09yaWdpblxuICAgICAgfSk7XG4gICAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICAgICAgb3JpZ2luOiBvcmlnaW5Hcm91cFxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGFsbG93ZWRNZXRob2RzKGFsbG93ZWRNZXRob2RzPzogQWxsb3dlZE1ldGhvZHMpOiBCZWhhdmlvckJ1aWxkZXIge1xuICAgIHRoaXMub3B0aW9ucyA9IHtcbiAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICAgIGFsbG93ZWRNZXRob2RzXG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgY2FjaGVkTWV0aG9kcyhjYWNoZWRNZXRob2RzPzogQ2FjaGVkTWV0aG9kcyk6IEJlaGF2aW9yQnVpbGRlciB7XG4gICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgY2FjaGVkTWV0aG9kc1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGNhY2hlUG9saWN5KGNhY2hlUG9saWN5OiBJQ2FjaGVQb2xpY3kpOiBCZWhhdmlvckJ1aWxkZXIge1xuICAgIHRoaXMub3B0aW9ucyA9IHtcbiAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICAgIGNhY2hlUG9saWN5XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgY29tcHJlc3MoY29tcHJlc3M/OiBib29sZWFuKTogQmVoYXZpb3JCdWlsZGVyIHtcbiAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICAuLi50aGlzLm9wdGlvbnMsXG4gICAgICBjb21wcmVzc1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIG9yaWdpblJlcXVlc3RQb2xpY3kob3JpZ2luUmVxdWVzdFBvbGljeT86IElPcmlnaW5SZXF1ZXN0UG9saWN5KTogQmVoYXZpb3JCdWlsZGVyIHtcbiAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICAuLi50aGlzLm9wdGlvbnMsXG4gICAgICBvcmlnaW5SZXF1ZXN0UG9saWN5XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcmVzcG9uc2VIZWFkZXJzUG9saWN5KHJlc3BvbnNlSGVhZGVyc1BvbGljeT86IElSZXNwb25zZUhlYWRlcnNQb2xpY3kpOiBCZWhhdmlvckJ1aWxkZXIge1xuICAgIHRoaXMub3B0aW9ucyA9IHtcbiAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICAgIHJlc3BvbnNlSGVhZGVyc1BvbGljeVxuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHNtb290aFN0cmVhbWluZyhzbW9vdGhTdHJlYW1pbmc/OiBib29sZWFuKTogQmVoYXZpb3JCdWlsZGVyIHtcbiAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICAuLi50aGlzLm9wdGlvbnMsXG4gICAgICBzbW9vdGhTdHJlYW1pbmdcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICB2aWV3ZXJQcm90b2NvbFBvbGljeSh2aWV3ZXJQcm90b2NvbFBvbGljeT86IFZpZXdlclByb3RvY29sUG9saWN5KTogQmVoYXZpb3JCdWlsZGVyIHtcbiAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICAuLi50aGlzLm9wdGlvbnMsXG4gICAgICB2aWV3ZXJQcm90b2NvbFBvbGljeVxuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGZ1bmN0aW9uQXNzb2NpYXRpb25zKGZ1bmN0aW9uQXNzb2NpYXRpb25zPzogRnVuY3Rpb25Bc3NvY2lhdGlvbltdKTogQmVoYXZpb3JCdWlsZGVyIHtcbiAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICAuLi50aGlzLm9wdGlvbnMsXG4gICAgICBmdW5jdGlvbkFzc29jaWF0aW9uc1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHZpZXdlclJlcXVlc3RGdW5jdGlvbih2aWV3ZXJSZXF1ZXN0RnVuY3Rpb246IElGdW5jdGlvbik6IEJlaGF2aW9yQnVpbGRlciB7XG4gICAgY29uc3QgZnVuY3Rpb25Bc3NvY2lhdGlvbnM6IEZ1bmN0aW9uQXNzb2NpYXRpb25bXSA9IHRoaXMub3B0aW9ucy5mdW5jdGlvbkFzc29jaWF0aW9ucyA/PyBbXTtcbiAgICBmdW5jdGlvbkFzc29jaWF0aW9ucy5wdXNoKHtcbiAgICAgIGZ1bmN0aW9uOiB2aWV3ZXJSZXF1ZXN0RnVuY3Rpb24sXG4gICAgICBldmVudFR5cGU6IEZ1bmN0aW9uRXZlbnRUeXBlLlZJRVdFUl9SRVFVRVNUXG4gICAgfSk7XG4gICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgZnVuY3Rpb25Bc3NvY2lhdGlvbnNcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICB3ZWJzaXRlUmVkaXJlY3RGdW5jdGlvbihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogV2Vic2l0ZVJlZGlyZWN0RnVuY3Rpb25Qcm9wcyk6IEJlaGF2aW9yQnVpbGRlciB7XG4gICAgY29uc3Qgd2Vic2l0ZVJlZGlyZWN0RnVuY3Rpb24gPSBuZXcgV2Vic2l0ZVJlZGlyZWN0RnVuY3Rpb24oc2NvcGUsIGlkLCBwcm9wcyk7XG4gICAgdGhpcy52aWV3ZXJSZXF1ZXN0RnVuY3Rpb24od2Vic2l0ZVJlZGlyZWN0RnVuY3Rpb24pO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgdmlld2VyUmVzcG9uc2VGdW5jdGlvbih2aWV3ZXJSZXNwb25zZUZ1bmN0aW9uOiBJRnVuY3Rpb24pOiBCZWhhdmlvckJ1aWxkZXIge1xuICAgIGNvbnN0IGZ1bmN0aW9uQXNzb2NpYXRpb25zOiBGdW5jdGlvbkFzc29jaWF0aW9uW10gPSB0aGlzLm9wdGlvbnMuZnVuY3Rpb25Bc3NvY2lhdGlvbnMgPz8gW107XG4gICAgZnVuY3Rpb25Bc3NvY2lhdGlvbnMucHVzaCh7XG4gICAgICBmdW5jdGlvbjogdmlld2VyUmVzcG9uc2VGdW5jdGlvbixcbiAgICAgIGV2ZW50VHlwZTogRnVuY3Rpb25FdmVudFR5cGUuVklFV0VSX1JFU1BPTlNFXG4gICAgfSk7XG4gICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgZnVuY3Rpb25Bc3NvY2lhdGlvbnNcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBlZGdlTGFtYmRhcyhlZGdlTGFtYmRhcz86IEVkZ2VMYW1iZGFbXSk6IEJlaGF2aW9yQnVpbGRlciB7XG4gICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgZWRnZUxhbWJkYXNcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICB0cnVzdGVkS2V5R3JvdXBzKHRydXN0ZWRLZXlHcm91cHM/OiBJS2V5R3JvdXBbXSk6IEJlaGF2aW9yQnVpbGRlciB7XG4gICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgdHJ1c3RlZEtleUdyb3Vwc1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGRlZmF1bHRzKCk6IEJlaGF2aW9yQnVpbGRlciB7XG4gICAgcmV0dXJuIHRoaXNcbiAgICAgIC52aWV3ZXJQcm90b2NvbFBvbGljeShWaWV3ZXJQcm90b2NvbFBvbGljeS5SRURJUkVDVF9UT19IVFRQUylcbiAgICAgIC5jb21wcmVzcyh0cnVlKVxuICAgICAgLmFsbG93ZWRNZXRob2RzKEFsbG93ZWRNZXRob2RzLkFMTE9XX0FMTClcbiAgICAgIC5jYWNoZWRNZXRob2RzKENhY2hlZE1ldGhvZHMuQ0FDSEVfR0VUX0hFQURfT1BUSU9OUylcbiAgICAgIC5jYWNoZVBvbGljeShDYWNoZVBvbGljeS5DQUNISU5HX09QVElNSVpFRClcbiAgICAgIC5vcmlnaW5SZXF1ZXN0UG9saWN5KE9yaWdpblJlcXVlc3RQb2xpY3kuQUxMX1ZJRVdFUik7XG4gIH1cblxuICB3ZWJzaXRlRGVmYXVsdHMocHJvcHM6IFdlYnNpdGVEZWZhdWx0c1Byb3BzKTogQmVoYXZpb3JCdWlsZGVyIHtcbiAgICByZXR1cm4gdGhpc1xuICAgICAgLnZpZXdlclByb3RvY29sUG9saWN5KFZpZXdlclByb3RvY29sUG9saWN5LlJFRElSRUNUX1RPX0hUVFBTKVxuICAgICAgLmNvbXByZXNzKHRydWUpXG4gICAgICAuYWxsb3dlZE1ldGhvZHMoQWxsb3dlZE1ldGhvZHMuQUxMT1dfR0VUX0hFQURfT1BUSU9OUylcbiAgICAgIC5jYWNoZWRNZXRob2RzKENhY2hlZE1ldGhvZHMuQ0FDSEVfR0VUX0hFQURfT1BUSU9OUylcbiAgICAgIC5jYWNoZVBvbGljeShDYWNoZVBvbGljeS5DQUNISU5HX09QVElNSVpFRClcbiAgICAgIC5vcmlnaW5SZXF1ZXN0UG9saWN5KE9yaWdpblJlcXVlc3RQb2xpY3kuQ09SU19TM19PUklHSU4pXG4gICAgICAud2Vic2l0ZVJlZGlyZWN0RnVuY3Rpb24ocHJvcHMuc2NvcGUsIHByb3BzLnJlZGlyZWN0RnVuY3Rpb25JZCA/PyBcIlJlZGlyZWN0RnVuY3Rpb25cIiwge1xuICAgICAgICAuLi5wcm9wc1xuICAgICAgfSk7XG4gIH1cblxuICBidWlsZCgpOiBCZWhhdmlvck9wdGlvbnMge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnM7XG4gIH1cblxuICBzdGF0aWMgZnJvbU9yaWdpbihvcmlnaW46IElPcmlnaW4pIHtcbiAgICByZXR1cm4gbmV3IEJlaGF2aW9yQnVpbGRlcihvcmlnaW4pO1xuICB9XG59XG4iXX0=
188
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVoYXZpb3ItYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImJlaGF2aW9yLWJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0RBZ0JvQztBQUVwQywyRUFBa0c7QUFDbEcsK0VBQStEO0FBVS9ELE1BQWEsZUFBZTtJQU0xQixZQUFZLE1BQTJCLEVBQUUsTUFBZSxFQUFFLElBQXdCO1FBQ2hGLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxPQUFPLEdBQUc7WUFDYixNQUFNO1NBQ1AsQ0FBQTtJQUNILENBQUM7SUFFRCxjQUFjLENBQUMsY0FBd0I7UUFDckMsSUFBSSxjQUFjLEVBQUU7WUFDbEIsTUFBTSxXQUFXLEdBQUcsSUFBSSxvQ0FBVyxDQUFDO2dCQUNsQyxhQUFhLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNO2dCQUNsQyxjQUFjO2FBQ2YsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLE9BQU8sR0FBRztnQkFDYixHQUFHLElBQUksQ0FBQyxPQUFPO2dCQUNmLE1BQU0sRUFBRSxXQUFXO2FBQ3BCLENBQUE7U0FDRjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGNBQWMsQ0FBQyxjQUErQjtRQUM1QyxJQUFJLENBQUMsT0FBTyxHQUFHO1lBQ2IsR0FBRyxJQUFJLENBQUMsT0FBTztZQUNmLGNBQWM7U0FDZixDQUFBO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsYUFBYSxDQUFDLGFBQTZCO1FBQ3pDLElBQUksQ0FBQyxPQUFPLEdBQUc7WUFDYixHQUFHLElBQUksQ0FBQyxPQUFPO1lBQ2YsYUFBYTtTQUNkLENBQUE7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7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QWEsQ0FBQyxzQkFBc0IsQ0FBQzthQUNuRCxXQUFXLENBQUMsNEJBQVcsQ0FBQyxpQkFBaUIsQ0FBQzthQUMxQyxtQkFBbUIsQ0FBQyxvQ0FBbUIsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQsS0FBSztRQUNILE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQWUsRUFBRSxJQUFZO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxNQUFlLEVBQUUsSUFBWTtRQUM5QyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCwyQkFBMkIsQ0FBQyxNQUF3QixFQUFFLElBQVk7UUFDaEUsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLDJCQUEyQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsY0FBYztRQUNaLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0NBQ0Y7QUE3TUQsMENBNk1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWxsb3dlZE1ldGhvZHMsXG4gIEJlaGF2aW9yT3B0aW9ucyxcbiAgQ2FjaGVkTWV0aG9kcyxcbiAgQ2FjaGVQb2xpY3ksIERpc3RyaWJ1dGlvbiwgRGlzdHJpYnV0aW9uUHJvcHMsXG4gIEVkZ2VMYW1iZGEsXG4gIEZ1bmN0aW9uQXNzb2NpYXRpb24sXG4gIEZ1bmN0aW9uRXZlbnRUeXBlLFxuICBJQ2FjaGVQb2xpY3ksXG4gIElGdW5jdGlvbixcbiAgSUtleUdyb3VwLFxuICBJT3JpZ2luLFxuICBJT3JpZ2luUmVxdWVzdFBvbGljeSxcbiAgSVJlc3BvbnNlSGVhZGVyc1BvbGljeSxcbiAgT3JpZ2luUmVxdWVzdFBvbGljeSxcbiAgVmlld2VyUHJvdG9jb2xQb2xpY3lcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jbG91ZGZyb250XCI7XG5pbXBvcnQge0NvbnN0cnVjdH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7V2Vic2l0ZVJlZGlyZWN0RnVuY3Rpb24sIFdlYnNpdGVSZWRpcmVjdEZ1bmN0aW9uUHJvcHN9IGZyb20gXCIuL3dlYnNpdGUtcmVkaXJlY3QtZnVuY3Rpb25cIjtcbmltcG9ydCB7T3JpZ2luR3JvdXB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2xvdWRmcm9udC1vcmlnaW5zXCI7XG5pbXBvcnQge0Rpc3RyaWJ1dGlvbkJ1aWxkZXJ9IGZyb20gXCIuL2Rpc3RyaWJ1dGlvbi1idWlsZGVyXCI7XG5pbXBvcnQge0lCdWNrZXR9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtczNcIjtcbmltcG9ydCB7Q2xvdWRGcm9udEJ1Y2tldH0gZnJvbSBcIi4uLy4uL2F3cy1zM1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFdlYnNpdGVEZWZhdWx0c1Byb3BzIGV4dGVuZHMgV2Vic2l0ZVJlZGlyZWN0RnVuY3Rpb25Qcm9wcyB7XG4gIHJlYWRvbmx5IHNjb3BlOiBDb25zdHJ1Y3Q7XG4gIHJlYWRvbmx5IHJlZGlyZWN0RnVuY3Rpb25JZD86IHN0cmluZ1xufVxuXG5leHBvcnQgY2xhc3MgQmVoYXZpb3JCdWlsZGVyIHtcblxuICByZWFkb25seSBwYXRoOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHByb3RlY3RlZCBvcHRpb25zOiBCZWhhdmlvck9wdGlvbnM7XG4gIHByb3RlY3RlZCBwYXJlbnQ6IERpc3RyaWJ1dGlvbkJ1aWxkZXI7XG5cbiAgY29uc3RydWN0b3IocGFyZW50OiBEaXN0cmlidXRpb25CdWlsZGVyLCBvcmlnaW46IElPcmlnaW4sIHBhdGg6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMucGF0aCA9IHBhdGg7XG4gICAgcGFyZW50LmFkZEJlaGF2aW9yKHRoaXMsIHBhdGgpO1xuICAgIHRoaXMucGFyZW50ID0gcGFyZW50O1xuICAgIHRoaXMub3B0aW9ucyA9IHtcbiAgICAgIG9yaWdpblxuICAgIH1cbiAgfVxuXG4gIGZhbGxiYWNrT3JpZ2luKGZhbGxiYWNrT3JpZ2luPzogSU9yaWdpbik6IEJlaGF2aW9yQnVpbGRlciB7XG4gICAgaWYgKGZhbGxiYWNrT3JpZ2luKSB7XG4gICAgICBjb25zdCBvcmlnaW5Hcm91cCA9IG5ldyBPcmlnaW5Hcm91cCh7XG4gICAgICAgIHByaW1hcnlPcmlnaW46IHRoaXMub3B0aW9ucy5vcmlnaW4sXG4gICAgICAgIGZhbGxiYWNrT3JpZ2luXG4gICAgICB9KTtcbiAgICAgIHRoaXMub3B0aW9ucyA9IHtcbiAgICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgICBvcmlnaW46IG9yaWdpbkdyb3VwXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgYWxsb3dlZE1ldGhvZHMoYWxsb3dlZE1ldGhvZHM/OiBBbGxvd2VkTWV0aG9kcyk6IEJlaGF2aW9yQnVpbGRlciB7XG4gICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgYWxsb3dlZE1ldGhvZHNcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBjYWNoZWRNZXRob2RzKGNhY2hlZE1ldGhvZHM/OiBDYWNoZWRNZXRob2RzKTogQmVoYXZpb3JCdWlsZGVyIHtcbiAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICAuLi50aGlzLm9wdGlvbnMsXG4gICAgICBjYWNoZWRNZXRob2RzXG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgY2FjaGVQb2xpY3koY2FjaGVQb2xpY3k6IElDYWNoZVBvbGljeSk6IEJlaGF2aW9yQnVpbGRlciB7XG4gICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgY2FjaGVQb2xpY3lcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBjb21wcmVzcyhjb21wcmVzcz86IGJvb2xlYW4pOiBCZWhhdmlvckJ1aWxkZXIge1xuICAgIHRoaXMub3B0aW9ucyA9IHtcbiAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICAgIGNvbXByZXNzXG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgb3JpZ2luUmVxdWVzdFBvbGljeShvcmlnaW5SZXF1ZXN0UG9saWN5PzogSU9yaWdpblJlcXVlc3RQb2xpY3kpOiBCZWhhdmlvckJ1aWxkZXIge1xuICAgIHRoaXMub3B0aW9ucyA9IHtcbiAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICAgIG9yaWdpblJlcXVlc3RQb2xpY3lcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICByZXNwb25zZUhlYWRlcnNQb2xpY3kocmVzcG9uc2VIZWFkZXJzUG9saWN5PzogSVJlc3BvbnNlSGVhZGVyc1BvbGljeSk6IEJlaGF2aW9yQnVpbGRlciB7XG4gICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgcmVzcG9uc2VIZWFkZXJzUG9saWN5XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgc21vb3RoU3RyZWFtaW5nKHNtb290aFN0cmVhbWluZz86IGJvb2xlYW4pOiBCZWhhdmlvckJ1aWxkZXIge1xuICAgIHRoaXMub3B0aW9ucyA9IHtcbiAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICAgIHNtb290aFN0cmVhbWluZ1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHZpZXdlclByb3RvY29sUG9saWN5KHZpZXdlclByb3RvY29sUG9saWN5PzogVmlld2VyUHJvdG9jb2xQb2xpY3kpOiBCZWhhdmlvckJ1aWxkZXIge1xuICAgIHRoaXMub3B0aW9ucyA9IHtcbiAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICAgIHZpZXdlclByb3RvY29sUG9saWN5XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZnVuY3Rpb25Bc3NvY2lhdGlvbnMoZnVuY3Rpb25Bc3NvY2lhdGlvbnM/OiBGdW5jdGlvbkFzc29jaWF0aW9uW10pOiBCZWhhdmlvckJ1aWxkZXIge1xuICAgIHRoaXMub3B0aW9ucyA9IHtcbiAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICAgIGZ1bmN0aW9uQXNzb2NpYXRpb25zXG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgdmlld2VyUmVxdWVzdEZ1bmN0aW9uKHZpZXdlclJlcXVlc3RGdW5jdGlvbjogSUZ1bmN0aW9uKTogQmVoYXZpb3JCdWlsZGVyIHtcbiAgICBjb25zdCBmdW5jdGlvbkFzc29jaWF0aW9uczogRnVuY3Rpb25Bc3NvY2lhdGlvbltdID0gdGhpcy5vcHRpb25zLmZ1bmN0aW9uQXNzb2NpYXRpb25zID8/IFtdO1xuICAgIGZ1bmN0aW9uQXNzb2NpYXRpb25zLnB1c2goe1xuICAgICAgZnVuY3Rpb246IHZpZXdlclJlcXVlc3RGdW5jdGlvbixcbiAgICAgIGV2ZW50VHlwZTogRnVuY3Rpb25FdmVudFR5cGUuVklFV0VSX1JFUVVFU1RcbiAgICB9KTtcbiAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICAuLi50aGlzLm9wdGlvbnMsXG4gICAgICBmdW5jdGlvbkFzc29jaWF0aW9uc1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHdlYnNpdGVSZWRpcmVjdEZ1bmN0aW9uKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBXZWJzaXRlUmVkaXJlY3RGdW5jdGlvblByb3BzKTogQmVoYXZpb3JCdWlsZGVyIHtcbiAgICBjb25zdCB3ZWJzaXRlUmVkaXJlY3RGdW5jdGlvbiA9IG5ldyBXZWJzaXRlUmVkaXJlY3RGdW5jdGlvbihzY29wZSwgaWQsIHByb3BzKTtcbiAgICB0aGlzLnZpZXdlclJlcXVlc3RGdW5jdGlvbih3ZWJzaXRlUmVkaXJlY3RGdW5jdGlvbik7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICB2aWV3ZXJSZXNwb25zZUZ1bmN0aW9uKHZpZXdlclJlc3BvbnNlRnVuY3Rpb246IElGdW5jdGlvbik6IEJlaGF2aW9yQnVpbGRlciB7XG4gICAgY29uc3QgZnVuY3Rpb25Bc3NvY2lhdGlvbnM6IEZ1bmN0aW9uQXNzb2NpYXRpb25bXSA9IHRoaXMub3B0aW9ucy5mdW5jdGlvbkFzc29jaWF0aW9ucyA/PyBbXTtcbiAgICBmdW5jdGlvbkFzc29jaWF0aW9ucy5wdXNoKHtcbiAgICAgIGZ1bmN0aW9uOiB2aWV3ZXJSZXNwb25zZUZ1bmN0aW9uLFxuICAgICAgZXZlbnRUeXBlOiBGdW5jdGlvbkV2ZW50VHlwZS5WSUVXRVJfUkVTUE9OU0VcbiAgICB9KTtcbiAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICAuLi50aGlzLm9wdGlvbnMsXG4gICAgICBmdW5jdGlvbkFzc29jaWF0aW9uc1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGVkZ2VMYW1iZGFzKGVkZ2VMYW1iZGFzPzogRWRnZUxhbWJkYVtdKTogQmVoYXZpb3JCdWlsZGVyIHtcbiAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICAuLi50aGlzLm9wdGlvbnMsXG4gICAgICBlZGdlTGFtYmRhc1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHRydXN0ZWRLZXlHcm91cHModHJ1c3RlZEtleUdyb3Vwcz86IElLZXlHcm91cFtdKTogQmVoYXZpb3JCdWlsZGVyIHtcbiAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICAuLi50aGlzLm9wdGlvbnMsXG4gICAgICB0cnVzdGVkS2V5R3JvdXBzXG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZGVmYXVsdHMoKTogQmVoYXZpb3JCdWlsZGVyIHtcbiAgICByZXR1cm4gdGhpc1xuICAgICAgLnZpZXdlclByb3RvY29sUG9saWN5KFZpZXdlclByb3RvY29sUG9saWN5LlJFRElSRUNUX1RPX0hUVFBTKVxuICAgICAgLmNvbXByZXNzKHRydWUpXG4gICAgICAuYWxsb3dlZE1ldGhvZHMoQWxsb3dlZE1ldGhvZHMuQUxMT1dfQUxMKVxuICAgICAgLmNhY2hlZE1ldGhvZHMoQ2FjaGVkTWV0aG9kcy5DQUNIRV9HRVRfSEVBRF9PUFRJT05TKVxuICAgICAgLmNhY2hlUG9saWN5KENhY2hlUG9saWN5LkNBQ0hJTkdfT1BUSU1JWkVEKVxuICAgICAgLm9yaWdpblJlcXVlc3RQb2xpY3koT3JpZ2luUmVxdWVzdFBvbGljeS5BTExfVklFV0VSKTtcbiAgfVxuXG4gIHdlYnNpdGVEZWZhdWx0cyhwcm9wczogV2Vic2l0ZURlZmF1bHRzUHJvcHMpOiBCZWhhdmlvckJ1aWxkZXIge1xuICAgIHJldHVybiB0aGlzXG4gICAgICAudmlld2VyUHJvdG9jb2xQb2xpY3koVmlld2VyUHJvdG9jb2xQb2xpY3kuUkVESVJFQ1RfVE9fSFRUUFMpXG4gICAgICAuY29tcHJlc3ModHJ1ZSlcbiAgICAgIC5hbGxvd2VkTWV0aG9kcyhBbGxvd2VkTWV0aG9kcy5BTExPV19HRVRfSEVBRF9PUFRJT05TKVxuICAgICAgLmNhY2hlZE1ldGhvZHMoQ2FjaGVkTWV0aG9kcy5DQUNIRV9HRVRfSEVBRF9PUFRJT05TKVxuICAgICAgLmNhY2hlUG9saWN5KENhY2hlUG9saWN5LkNBQ0hJTkdfT1BUSU1JWkVEKVxuICAgICAgLm9yaWdpblJlcXVlc3RQb2xpY3koT3JpZ2luUmVxdWVzdFBvbGljeS5DT1JTX1MzX09SSUdJTilcbiAgICAgIC53ZWJzaXRlUmVkaXJlY3RGdW5jdGlvbihwcm9wcy5zY29wZSwgcHJvcHMucmVkaXJlY3RGdW5jdGlvbklkID8/IFwiUmVkaXJlY3RGdW5jdGlvblwiLCB7XG4gICAgICAgIC4uLnByb3BzXG4gICAgICB9KTtcbiAgfVxuXG4gIHN0YXRpY0RlZmF1bHRzKCk6IEJlaGF2aW9yQnVpbGRlciB7XG4gICAgcmV0dXJuIHRoaXNcbiAgICAgIC52aWV3ZXJQcm90b2NvbFBvbGljeShWaWV3ZXJQcm90b2NvbFBvbGljeS5SRURJUkVDVF9UT19IVFRQUylcbiAgICAgIC5jb21wcmVzcyh0cnVlKVxuICAgICAgLmFsbG93ZWRNZXRob2RzKEFsbG93ZWRNZXRob2RzLkFMTE9XX0dFVF9IRUFEX09QVElPTlMpXG4gICAgICAuY2FjaGVkTWV0aG9kcyhDYWNoZWRNZXRob2RzLkNBQ0hFX0dFVF9IRUFEX09QVElPTlMpXG4gICAgICAuY2FjaGVQb2xpY3koQ2FjaGVQb2xpY3kuQ0FDSElOR19PUFRJTUlaRUQpXG4gICAgICAub3JpZ2luUmVxdWVzdFBvbGljeShPcmlnaW5SZXF1ZXN0UG9saWN5LkNPUlNfUzNfT1JJR0lOKTtcbiAgfVxuXG4gIGJ1aWxkQmVoYXZpb3IoKTogQmVoYXZpb3JPcHRpb25zIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zO1xuICB9XG5cbiAgYnVpbGQoKTogRGlzdHJpYnV0aW9uUHJvcHMge1xuICAgIHJldHVybiB0aGlzLnBhcmVudC5idWlsZCgpO1xuICB9XG5cbiAgYmVoYXZpb3Iob3JpZ2luOiBJT3JpZ2luLCBwYXRoOiBzdHJpbmcpOiBCZWhhdmlvckJ1aWxkZXIge1xuICAgIHJldHVybiB0aGlzLnBhcmVudC5iZWhhdmlvcihvcmlnaW4sIHBhdGgpO1xuICB9XG5cbiAgYmVoYXZpb3JGcm9tQnVja2V0KGJ1Y2tldDogSUJ1Y2tldCwgcGF0aDogc3RyaW5nKTogQmVoYXZpb3JCdWlsZGVyIHtcbiAgICByZXR1cm4gdGhpcy5wYXJlbnQuYmVoYXZpb3JGcm9tQnVja2V0KGJ1Y2tldCwgcGF0aCk7XG4gIH1cblxuICBiZWhhdmlvckZyb21DbG91ZEZyb21CdWNrZXQoYnVja2V0OiBDbG91ZEZyb250QnVja2V0LCBwYXRoOiBzdHJpbmcpOiBCZWhhdmlvckJ1aWxkZXIge1xuICAgIHJldHVybiB0aGlzLnBhcmVudC5iZWhhdmlvckZyb21DbG91ZEZyb21CdWNrZXQoYnVja2V0LCBwYXRoKTtcbiAgfVxuXG4gIHRvRGlzdHJpYnV0aW9uKCk6IERpc3RyaWJ1dGlvbiB7XG4gICAgcmV0dXJuIHRoaXMucGFyZW50LnRvRGlzdHJpYnV0aW9uKCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,17 +1,19 @@
1
- import { BehaviorOptions, Distribution, DistributionProps, ErrorResponse, GeoRestriction, HttpVersion, IOrigin, PriceClass, SecurityPolicyProtocol, SSLMethod } from "aws-cdk-lib/aws-cloudfront";
1
+ import { Distribution, DistributionProps, ErrorResponse, GeoRestriction, HttpVersion, IOrigin, PriceClass, SecurityPolicyProtocol, SSLMethod } from "aws-cdk-lib/aws-cloudfront";
2
2
  import { ICertificate } from "aws-cdk-lib/aws-certificatemanager";
3
3
  import { IBucket } from "aws-cdk-lib/aws-s3";
4
4
  import { Construct } from "constructs";
5
- import { BehaviorBuilder, WebsiteDefaultsProps } from "./behavior-builder";
5
+ import { BehaviorBuilder } from "./behavior-builder";
6
6
  import { DomainName } from "../../aws-route53";
7
- export declare class DistributionBuilder {
8
- protected props: DistributionProps;
9
- protected defaultBehaviorBuilder: BehaviorBuilder;
10
- protected additionalBehaviorBuilders: Record<string, BehaviorBuilder>;
11
- constructor(defaultBehaviorBuilder: BehaviorBuilder);
12
- defaultBehavior(): BehaviorBuilder;
13
- additionalBehaviors(additionalBehaviors?: Record<string, BehaviorOptions>): DistributionBuilder;
14
- additionalBehavior(pattern: string, origin: IOrigin): BehaviorBuilder;
7
+ import { CloudFrontBucket } from "../../aws-s3";
8
+ import { ExtendedConstruct } from "../../aws-cdk";
9
+ export declare class DistributionBuilder extends ExtendedConstruct {
10
+ protected props: any;
11
+ protected behaviors: Record<string, BehaviorBuilder>;
12
+ constructor(scope: Construct, id: string);
13
+ behavior(origin: IOrigin, path?: string): BehaviorBuilder;
14
+ behaviorFromBucket(bucket: IBucket, path?: string): BehaviorBuilder;
15
+ behaviorFromCloudFromBucket(bucket: CloudFrontBucket, path?: string): BehaviorBuilder;
16
+ addBehavior(builder: BehaviorBuilder, path: string | undefined): DistributionBuilder;
15
17
  certificate(certificate?: ICertificate): DistributionBuilder;
16
18
  comment(comment?: string): DistributionBuilder;
17
19
  defaultRootObject(defaultRootObject?: string): DistributionBuilder;
@@ -31,9 +33,6 @@ export declare class DistributionBuilder {
31
33
  errorResponse(errorResponse: ErrorResponse): DistributionBuilder;
32
34
  minimumProtocolVersion(minimumProtocolVersion?: SecurityPolicyProtocol): DistributionBuilder;
33
35
  sslSupportMethod(sslSupportMethod?: SSLMethod): DistributionBuilder;
34
- defaults(): DistributionBuilder;
35
- websiteDefaults(props: WebsiteDefaultsProps): DistributionBuilder;
36
36
  build(): DistributionProps;
37
- toDistribution(scope: Construct, id: string): Distribution;
38
- static fromOrigin(origin: IOrigin): DistributionBuilder;
37
+ toDistribution(): Distribution;
39
38
  }
@@ -3,28 +3,30 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DistributionBuilder = void 0;
4
4
  const aws_cloudfront_1 = require("aws-cdk-lib/aws-cloudfront");
5
5
  const behavior_builder_1 = require("./behavior-builder");
6
- class DistributionBuilder {
7
- constructor(defaultBehaviorBuilder) {
8
- this.props = {
9
- defaultBehavior: defaultBehaviorBuilder.build()
10
- };
11
- this.defaultBehaviorBuilder = defaultBehaviorBuilder;
12
- this.additionalBehaviorBuilders = {};
6
+ const aws_cdk_1 = require("../../aws-cdk");
7
+ const aws_cloudfront_origins_1 = require("aws-cdk-lib/aws-cloudfront-origins");
8
+ class DistributionBuilder extends aws_cdk_1.ExtendedConstruct {
9
+ constructor(scope, id) {
10
+ super(scope, id);
11
+ this.props = {};
12
+ this.behaviors = {};
13
13
  }
14
- defaultBehavior() {
15
- return this.defaultBehaviorBuilder;
14
+ behavior(origin, path) {
15
+ return new behavior_builder_1.BehaviorBuilder(this, origin, path);
16
16
  }
17
- additionalBehaviors(additionalBehaviors) {
18
- this.props = {
19
- ...this.props,
20
- additionalBehaviors
21
- };
22
- return this;
17
+ behaviorFromBucket(bucket, path) {
18
+ return new behavior_builder_1.BehaviorBuilder(this, new aws_cloudfront_origins_1.S3Origin(bucket, {
19
+ originAccessIdentity: new aws_cloudfront_1.OriginAccessIdentity(this, `Access${bucket.node.id}`, {
20
+ comment: `S3 bucket ${bucket.bucketName}`
21
+ })
22
+ }), path);
23
+ }
24
+ behaviorFromCloudFromBucket(bucket, path) {
25
+ return new behavior_builder_1.BehaviorBuilder(this, bucket.toOrigin(), path);
23
26
  }
24
- additionalBehavior(pattern, origin) {
25
- const behaviorBuilder = behavior_builder_1.BehaviorBuilder.fromOrigin(origin);
26
- this.additionalBehaviorBuilders[pattern] = behaviorBuilder;
27
- return behaviorBuilder;
27
+ addBehavior(builder, path) {
28
+ this.behaviors[path !== null && path !== void 0 ? path : ""] = builder;
29
+ return this;
28
30
  }
29
31
  certificate(certificate) {
30
32
  this.props = {
@@ -165,48 +167,39 @@ class DistributionBuilder {
165
167
  };
166
168
  return this;
167
169
  }
168
- defaults() {
169
- this.defaultBehavior().defaults();
170
- return this
171
- .httpVersion(aws_cloudfront_1.HttpVersion.HTTP2_AND_3)
172
- .minimumProtocolVersion(aws_cloudfront_1.SecurityPolicyProtocol.TLS_V1_2_2021)
173
- .enableIpv6(true)
174
- .priceClass(aws_cloudfront_1.PriceClass.PRICE_CLASS_100);
175
- }
176
- websiteDefaults(props) {
177
- this.defaultBehavior().websiteDefaults(props);
178
- return this
179
- .httpVersion(aws_cloudfront_1.HttpVersion.HTTP2_AND_3)
180
- .minimumProtocolVersion(aws_cloudfront_1.SecurityPolicyProtocol.TLS_V1_2_2021)
181
- .enableIpv6(true)
182
- .priceClass(aws_cloudfront_1.PriceClass.PRICE_CLASS_100)
183
- .errorResponse({
184
- httpStatus: 404,
185
- responseHttpStatus: 404,
186
- responsePagePath: "/404.html"
187
- });
188
- }
189
170
  build() {
190
- const additionalBehaviors = {};
191
- for (const [pattern, behaviorBuilder] of Object.entries(this.additionalBehaviorBuilders)) {
192
- additionalBehaviors[pattern] = behaviorBuilder.build();
171
+ if (this.behaviors[""] === undefined) {
172
+ throw new Error("Default behavior with no path is required");
173
+ }
174
+ if (this.props.enableIpv6 === undefined) {
175
+ this.enableIpv6(true);
176
+ }
177
+ if (this.props.httpVersion === undefined) {
178
+ this.httpVersion(aws_cloudfront_1.HttpVersion.HTTP2_AND_3);
193
179
  }
180
+ if (this.props.priceClass === undefined) {
181
+ this.priceClass(aws_cloudfront_1.PriceClass.PRICE_CLASS_100);
182
+ }
183
+ if (this.props.minimumProtocolVersion === undefined) {
184
+ this.minimumProtocolVersion(aws_cloudfront_1.SecurityPolicyProtocol.TLS_V1_2_2021);
185
+ }
186
+ const defaultBehavior = this.behaviors[""].buildBehavior();
187
+ const additionalBehaviors = Object.values(this.behaviors)
188
+ .filter((behavior) => behavior.path !== undefined)
189
+ .reduce((behaviors, behavior) => {
190
+ var _a;
191
+ behaviors[(_a = behavior.path) !== null && _a !== void 0 ? _a : ""] = behavior.buildBehavior();
192
+ return behaviors;
193
+ }, {});
194
194
  return {
195
195
  ...this.props,
196
- defaultBehavior: this.defaultBehaviorBuilder.build(),
197
- additionalBehaviors: {
198
- ...this.props.additionalBehaviors,
199
- ...additionalBehaviors
200
- }
196
+ defaultBehavior,
197
+ additionalBehaviors
201
198
  };
202
199
  }
203
- toDistribution(scope, id) {
204
- return new aws_cloudfront_1.Distribution(scope, id, this.build());
205
- }
206
- static fromOrigin(origin) {
207
- const defaultBehaviorBuilder = behavior_builder_1.BehaviorBuilder.fromOrigin(origin);
208
- return new DistributionBuilder(defaultBehaviorBuilder);
200
+ toDistribution() {
201
+ return new aws_cloudfront_1.Distribution(this, "Default", this.build());
209
202
  }
210
203
  }
211
204
  exports.DistributionBuilder = DistributionBuilder;
212
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzdHJpYnV0aW9uLWJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkaXN0cmlidXRpb24tYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrREFXb0M7QUFJcEMseURBQXlFO0FBR3pFLE1BQWEsbUJBQW1CO0lBTTlCLFlBQVksc0JBQXVDO1FBQ2pELElBQUksQ0FBQyxLQUFLLEdBQUc7WUFDWCxlQUFlLEVBQUUsc0JBQXNCLENBQUMsS0FBSyxFQUFFO1NBQ2hELENBQUE7UUFDRCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsc0JBQXNCLENBQUM7UUFDckQsSUFBSSxDQUFDLDBCQUEwQixHQUFHLEVBQUUsQ0FBQTtJQUN0QyxDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDO0lBQ3JDLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxtQkFBcUQ7UUFDdkUsSUFBSSxDQUFDLEtBQUssR0FBRztZQUNYLEdBQUcsSUFBSSxDQUFDLEtBQUs7WUFDYixtQkFBbUI7U0FDcEIsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGtCQUFrQixDQUFDLE9BQWUsRUFBRSxNQUFlO1FBQ2pELE1BQU0sZUFBZSxHQUFHLGtDQUFlLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQywwQkFBMEIsQ0FBQyxPQUFPLENBQUMsR0FBRyxlQUFlLENBQUM7UUFDM0QsT0FBTyxlQUFlLENBQUE7SUFDeEIsQ0FBQztJQUVELFdBQVcsQ0FBQyxXQUEwQjtRQUNwQyxJQUFJLENBQUMsS0FBSyxHQUFHO1lBQ1gsR0FBRyxJQUFJLENBQUMsS0FBSztZQUNiLFdBQVc7U0FDWixDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsT0FBTyxDQUFDLE9BQWdCO1FBQ3RCLElBQUksQ0FBQyxLQUFLLEdBQUc7WUFDWCxHQUFHLElBQUksQ0FBQyxLQUFLO1lB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Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQmVoYXZpb3JPcHRpb25zLFxuICBEaXN0cmlidXRpb24sXG4gIERpc3RyaWJ1dGlvblByb3BzLFxuICBFcnJvclJlc3BvbnNlLFxuICBHZW9SZXN0cmljdGlvbixcbiAgSHR0cFZlcnNpb24sXG4gIElPcmlnaW4sXG4gIFByaWNlQ2xhc3MsXG4gIFNlY3VyaXR5UG9saWN5UHJvdG9jb2wsXG4gIFNTTE1ldGhvZCxcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jbG91ZGZyb250XCI7XG5pbXBvcnQge0lDZXJ0aWZpY2F0ZX0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jZXJ0aWZpY2F0ZW1hbmFnZXJcIjtcbmltcG9ydCB7SUJ1Y2tldH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zM1wiO1xuaW1wb3J0IHtDb25zdHJ1Y3R9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge0JlaGF2aW9yQnVpbGRlciwgV2Vic2l0ZURlZmF1bHRzUHJvcHN9IGZyb20gXCIuL2JlaGF2aW9yLWJ1aWxkZXJcIjtcbmltcG9ydCB7RG9tYWluTmFtZX0gZnJvbSBcIi4uLy4uL2F3cy1yb3V0ZTUzXCI7XG5cbmV4cG9ydCBjbGFzcyBEaXN0cmlidXRpb25CdWlsZGVyIHtcblxuICBwcm90ZWN0ZWQgcHJvcHM6IERpc3RyaWJ1dGlvblByb3BzO1xuICBwcm90ZWN0ZWQgZGVmYXVsdEJlaGF2aW9yQnVpbGRlcjogQmVoYXZpb3JCdWlsZGVyO1xuICBwcm90ZWN0ZWQgYWRkaXRpb25hbEJlaGF2aW9yQnVpbGRlcnM6IFJlY29yZDxzdHJpbmcsIEJlaGF2aW9yQnVpbGRlcj47XG5cbiAgY29uc3RydWN0b3IoZGVmYXVsdEJlaGF2aW9yQnVpbGRlcjogQmVoYXZpb3JCdWlsZGVyKSB7XG4gICAgdGhpcy5wcm9wcyA9IHtcbiAgICAgIGRlZmF1bHRCZWhhdmlvcjogZGVmYXVsdEJlaGF2aW9yQnVpbGRlci5idWlsZCgpXG4gICAgfVxuICAgIHRoaXMuZGVmYXVsdEJlaGF2aW9yQnVpbGRlciA9IGRlZmF1bHRCZWhhdmlvckJ1aWxkZXI7XG4gICAgdGhpcy5hZGRpdGlvbmFsQmVoYXZpb3JCdWlsZGVycyA9IHt9XG4gIH1cblxuICBkZWZhdWx0QmVoYXZpb3IoKTogQmVoYXZpb3JCdWlsZGVyIHtcbiAgICByZXR1cm4gdGhpcy5kZWZhdWx0QmVoYXZpb3JCdWlsZGVyO1xuICB9XG5cbiAgYWRkaXRpb25hbEJlaGF2aW9ycyhhZGRpdGlvbmFsQmVoYXZpb3JzPzogUmVjb3JkPHN0cmluZywgQmVoYXZpb3JPcHRpb25zPik6IERpc3RyaWJ1dGlvbkJ1aWxkZXIge1xuICAgIHRoaXMucHJvcHMgPSB7XG4gICAgICAuLi50aGlzLnByb3BzLFxuICAgICAgYWRkaXRpb25hbEJlaGF2aW9yc1xuICAgIH07XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBhZGRpdGlvbmFsQmVoYXZpb3IocGF0dGVybjogc3RyaW5nLCBvcmlnaW46IElPcmlnaW4pOiBCZWhhdmlvckJ1aWxkZXIge1xuICAgIGNvbnN0IGJlaGF2aW9yQnVpbGRlciA9IEJlaGF2aW9yQnVpbGRlci5mcm9tT3JpZ2luKG9yaWdpbik7XG4gICAgdGhpcy5hZGRpdGlvbmFsQmVoYXZpb3JCdWlsZGVyc1twYXR0ZXJuXSA9IGJlaGF2aW9yQnVpbGRlcjtcbiAgICByZXR1cm4gYmVoYXZpb3JCdWlsZGVyXG4gIH1cblxuICBjZXJ0aWZpY2F0ZShjZXJ0aWZpY2F0ZT86IElDZXJ0aWZpY2F0ZSk6IERpc3RyaWJ1dGlvbkJ1aWxkZXIge1xuICAgIHRoaXMucHJvcHMgPSB7XG4gICAgICAuLi50aGlzLnByb3BzLFxuICAgICAgY2VydGlmaWNhdGVcbiAgICB9O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgY29tbWVudChjb21tZW50Pzogc3RyaW5nKTogRGlzdHJpYnV0aW9uQnVpbGRlciB7XG4gICAgdGhpcy5wcm9wcyA9IHtcbiAgICAgIC4uLnRoaXMucHJvcHMsXG4gICAgICBjb21tZW50XG4gICAgfTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGRlZmF1bHRSb290T2JqZWN0KGRlZmF1bHRSb290T2JqZWN0Pzogc3RyaW5nKTogRGlzdHJpYnV0aW9uQnVpbGRlciB7XG4gICAgdGhpcy5wcm9wcyA9IHtcbiAgICAgIC4uLnRoaXMucHJvcHMsXG4gICAgICBkZWZhdWx0Um9vdE9iamVjdFxuICAgIH07XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBkb21haW5OYW1lcyhkb21haW5OYW1lcz86IHN0cmluZ1tdKTogRGlzdHJpYnV0aW9uQnVpbGRlciB7XG4gICAgdGhpcy5wcm9wcyA9IHtcbiAgICAgIC4uLnRoaXMucHJvcHMsXG4gICAgICBkb21haW5OYW1lc1xuICAgIH07XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBkb21haW5OYW1lKGRvbWFpbk5hbWU6IHN0cmluZyB8IERvbWFpbk5hbWUpOiBEaXN0cmlidXRpb25CdWlsZGVyIHtcbiAgICBjb25zdCBkb21haW5OYW1lczogc3RyaW5nW10gPSB0aGlzLnByb3BzLmRvbWFpbk5hbWVzID8/IFtdO1xuICAgIGRvbWFpbk5hbWVzLnB1c2goZG9tYWluTmFtZS50b1N0cmluZygpKTtcbiAgICB0aGlzLnByb3BzID0ge1xuICAgICAgLi4udGhpcy5wcm9wcyxcbiAgICAgIGRvbWFpbk5hbWVzXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGVuYWJsZWQoZW5hYmxlZD86IGJvb2xlYW4pOiBEaXN0cmlidXRpb25CdWlsZGVyIHtcbiAgICB0aGlzLnByb3BzID0ge1xuICAgICAgLi4udGhpcy5wcm9wcyxcbiAgICAgIGVuYWJsZWRcbiAgICB9O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZW5hYmxlSXB2NihlbmFibGVJcHY2PzogYm9vbGVhbik6IERpc3RyaWJ1dGlvbkJ1aWxkZXIge1xuICAgIHRoaXMucHJvcHMgPSB7XG4gICAgICAuLi50aGlzLnByb3BzLFxuICAgICAgZW5hYmxlSXB2NlxuICAgIH07XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBlbmFibGVMb2dnaW5nKGVuYWJsZUxvZ2dpbmc/OiBib29sZWFuKTogRGlzdHJpYnV0aW9uQnVpbGRlciB7XG4gICAgdGhpcy5wcm9wcyA9IHtcbiAgICAgIC4uLnRoaXMucHJvcHMsXG4gICAgICBlbmFibGVMb2dnaW5nXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGdlb1Jlc3RyaWN0aW9uKGdlb1Jlc3RyaWN0aW9uPzogR2VvUmVzdHJpY3Rpb24pOiBEaXN0cmlidXRpb25CdWlsZGVyIHtcbiAgICB0aGlzLnByb3BzID0ge1xuICAgICAgLi4udGhpcy5wcm9wcyxcbiAgICAgIGdlb1Jlc3RyaWN0aW9uXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGh0dHBWZXJzaW9uKGh0dHBWZXJzaW9uPzogSHR0cFZlcnNpb24pOiBEaXN0cmlidXRpb25CdWlsZGVyIHtcbiAgICB0aGlzLnByb3BzID0ge1xuICAgICAgLi4udGhpcy5wcm9wcyxcbiAgICAgIGh0dHBWZXJzaW9uXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGxvZ0J1Y2tldChsb2dCdWNrZXQ/OiBJQnVja2V0KTogRGlzdHJpYnV0aW9uQnVpbGRlciB7XG4gICAgdGhpcy5wcm9wcyA9IHtcbiAgICAgIC4uLnRoaXMucHJvcHMsXG4gICAgICBsb2dCdWNrZXRcbiAgICB9O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgbG9nSW5jbHVkZXNDb29raWVzKGxvZ0luY2x1ZGVzQ29va2llcz86IGJvb2xlYW4pOiBEaXN0cmlidXRpb25CdWlsZGVyIHtcbiAgICB0aGlzLnByb3BzID0ge1xuICAgICAgLi4udGhpcy5wcm9wcyxcbiAgICAgIGxvZ0luY2x1ZGVzQ29va2llc1xuICAgIH07XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBsb2dGaWxlUHJlZml4KGxvZ0ZpbGVQcmVmaXg/OiBzdHJpbmcpOiBEaXN0cmlidXRpb25CdWlsZGVyIHtcbiAgICB0aGlzLnByb3BzID0ge1xuICAgICAgLi4udGhpcy5wcm9wcyxcbiAgICAgIGxvZ0ZpbGVQcmVmaXhcbiAgICB9O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHJpY2VDbGFzcyhwcmljZUNsYXNzPzogUHJpY2VDbGFzcyk6IERpc3RyaWJ1dGlvbkJ1aWxkZXIge1xuICAgIHRoaXMucHJvcHMgPSB7XG4gICAgICAuLi50aGlzLnByb3BzLFxuICAgICAgcHJpY2VDbGFzc1xuICAgIH07XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICB3ZWJBY2xJZCh3ZWJBY2xJZD86IHN0cmluZyk6IERpc3RyaWJ1dGlvbkJ1aWxkZXIge1xuICAgIHRoaXMucHJvcHMgPSB7XG4gICAgICAuLi50aGlzLnByb3BzLFxuICAgICAgd2ViQWNsSWRcbiAgICB9O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZXJyb3JSZXNwb25zZXMoZXJyb3JSZXNwb25zZXM/OiBFcnJvclJlc3BvbnNlW10pOiBEaXN0cmlidXRpb25CdWlsZGVyIHtcbiAgICB0aGlzLnByb3BzID0ge1xuICAgICAgLi4udGhpcy5wcm9wcyxcbiAgICAgIGVycm9yUmVzcG9uc2VzXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGVycm9yUmVzcG9uc2UoZXJyb3JSZXNwb25zZTogRXJyb3JSZXNwb25zZSk6IERpc3RyaWJ1dGlvbkJ1aWxkZXIge1xuICAgIGNvbnN0IGVycm9yUmVzcG9uc2VzOiBFcnJvclJlc3BvbnNlW10gPSB0aGlzLnByb3BzLmVycm9yUmVzcG9uc2VzID8/IFtdO1xuICAgIGVycm9yUmVzcG9uc2VzLnB1c2goZXJyb3JSZXNwb25zZSk7XG4gICAgdGhpcy5wcm9wcyA9IHtcbiAgICAgIC4uLnRoaXMucHJvcHMsXG4gICAgICBlcnJvclJlc3BvbnNlc1xuICAgIH07XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBtaW5pbXVtUHJvdG9jb2xWZXJzaW9uKG1pbmltdW1Qcm90b2NvbFZlcnNpb24/OiBTZWN1cml0eVBvbGljeVByb3RvY29sKTogRGlzdHJpYnV0aW9uQnVpbGRlciB7XG4gICAgdGhpcy5wcm9wcyA9IHtcbiAgICAgIC4uLnRoaXMucHJvcHMsXG4gICAgICBtaW5pbXVtUHJvdG9jb2xWZXJzaW9uXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHNzbFN1cHBvcnRNZXRob2Qoc3NsU3VwcG9ydE1ldGhvZD86IFNTTE1ldGhvZCk6IERpc3RyaWJ1dGlvbkJ1aWxkZXIge1xuICAgIHRoaXMucHJvcHMgPSB7XG4gICAgICAuLi50aGlzLnByb3BzLFxuICAgICAgc3NsU3VwcG9ydE1ldGhvZFxuICAgIH07XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBkZWZhdWx0cygpOiBEaXN0cmlidXRpb25CdWlsZGVyIHtcbiAgICB0aGlzLmRlZmF1bHRCZWhhdmlvcigpLmRlZmF1bHRzKClcbiAgICByZXR1cm4gdGhpc1xuICAgICAgLmh0dHBWZXJzaW9uKEh0dHBWZXJzaW9uLkhUVFAyX0FORF8zKVxuICAgICAgLm1pbmltdW1Qcm90b2NvbFZlcnNpb24oU2VjdXJpdHlQb2xpY3lQcm90b2NvbC5UTFNfVjFfMl8yMDIxKVxuICAgICAgLmVuYWJsZUlwdjYodHJ1ZSlcbiAgICAgIC5wcmljZUNsYXNzKFByaWNlQ2xhc3MuUFJJQ0VfQ0xBU1NfMTAwKVxuICB9XG5cbiAgd2Vic2l0ZURlZmF1bHRzKHByb3BzOiBXZWJzaXRlRGVmYXVsdHNQcm9wcykge1xuICAgIHRoaXMuZGVmYXVsdEJlaGF2aW9yKCkud2Vic2l0ZURlZmF1bHRzKHByb3BzKVxuICAgIHJldHVybiB0aGlzXG4gICAgICAuaHR0cFZlcnNpb24oSHR0cFZlcnNpb24uSFRUUDJfQU5EXzMpXG4gICAgICAubWluaW11bVByb3RvY29sVmVyc2lvbihTZWN1cml0eVBvbGljeVByb3RvY29sLlRMU19WMV8yXzIwMjEpXG4gICAgICAuZW5hYmxlSXB2Nih0cnVlKVxuICAgICAgLnByaWNlQ2xhc3MoUHJpY2VDbGFzcy5QUklDRV9DTEFTU18xMDApXG4gICAgICAuZXJyb3JSZXNwb25zZSh7XG4gICAgICAgIGh0dHBTdGF0dXM6IDQwNCxcbiAgICAgICAgcmVzcG9uc2VIdHRwU3RhdHVzOiA0MDQsXG4gICAgICAgIHJlc3BvbnNlUGFnZVBhdGg6IFwiLzQwNC5odG1sXCJcbiAgICAgIH0pO1xuICB9XG5cbiAgYnVpbGQoKTogRGlzdHJpYnV0aW9uUHJvcHMge1xuXG4gICAgY29uc3QgYWRkaXRpb25hbEJlaGF2aW9yczogUmVjb3JkPHN0cmluZywgQmVoYXZpb3JPcHRpb25zPiA9IHt9XG4gICAgZm9yIChjb25zdCBbcGF0dGVybiwgYmVoYXZpb3JCdWlsZGVyXSBvZiBPYmplY3QuZW50cmllcyh0aGlzLmFkZGl0aW9uYWxCZWhhdmlvckJ1aWxkZXJzKSkge1xuICAgICAgYWRkaXRpb25hbEJlaGF2aW9yc1twYXR0ZXJuXSA9IGJlaGF2aW9yQnVpbGRlci5idWlsZCgpO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAuLi50aGlzLnByb3BzLFxuICAgICAgZGVmYXVsdEJlaGF2aW9yOiB0aGlzLmRlZmF1bHRCZWhhdmlvckJ1aWxkZXIuYnVpbGQoKSxcbiAgICAgIGFkZGl0aW9uYWxCZWhhdmlvcnM6IHtcbiAgICAgICAgLi4udGhpcy5wcm9wcy5hZGRpdGlvbmFsQmVoYXZpb3JzLFxuICAgICAgICAuLi5hZGRpdGlvbmFsQmVoYXZpb3JzXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdG9EaXN0cmlidXRpb24oc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZyk6IERpc3RyaWJ1dGlvbiB7XG4gICAgcmV0dXJuIG5ldyBEaXN0cmlidXRpb24oc2NvcGUsIGlkLCB0aGlzLmJ1aWxkKCkpO1xuICB9XG5cbiAgc3RhdGljIGZyb21PcmlnaW4ob3JpZ2luOiBJT3JpZ2luKTogRGlzdHJpYnV0aW9uQnVpbGRlciB7XG4gICAgY29uc3QgZGVmYXVsdEJlaGF2aW9yQnVpbGRlciA9IEJlaGF2aW9yQnVpbGRlci5mcm9tT3JpZ2luKG9yaWdpbik7XG4gICAgcmV0dXJuIG5ldyBEaXN0cmlidXRpb25CdWlsZGVyKGRlZmF1bHRCZWhhdmlvckJ1aWxkZXIpO1xuICB9XG59XG4iXX0=
205
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzdHJpYnV0aW9uLWJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkaXN0cmlidXRpb24tYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrREFXb0M7QUFJcEMseURBQW1EO0FBR25ELDJDQUFnRDtBQUNoRCwrRUFBNEQ7QUFFNUQsTUFBYSxtQkFBb0IsU0FBUSwyQkFBaUI7SUFLeEQsWUFBWSxLQUFnQixFQUFFLEVBQVU7UUFDdEMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUpULFVBQUssR0FBUSxFQUFFLENBQUM7UUFDaEIsY0FBUyxHQUFvQyxFQUFFLENBQUM7SUFJMUQsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFlLEVBQUUsSUFBYTtRQUNyQyxPQUFPLElBQUksa0NBQWUsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxNQUFlLEVBQUUsSUFBYTtRQUMvQyxPQUFPLElBQUksa0NBQWUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxpQ0FBUSxDQUFDLE1BQU0sRUFBRTtZQUNwRCxvQkFBb0IsRUFBRSxJQUFJLHFDQUFvQixDQUFDLElBQUksRUFBRSxTQUFTLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUU7Z0JBQzlFLE9BQU8sRUFBRSxhQUFhLE1BQU0sQ0FBQyxVQUFVLEVBQUU7YUFDMUMsQ0FBQztTQUNILENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNaLENBQUM7SUFFRCwyQkFBMkIsQ0FBQyxNQUF3QixFQUFFLElBQWE7UUFDakUsT0FBTyxJQUFJLGtDQUFlLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXdCLEVBQUUsSUFBd0I7UUFDNUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLGFBQUosSUFBSSxjQUFKLElBQUksR0FBSSxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUM7UUFDckMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsV0FBVyxDQUFDLFdBQTBCO1FBQ3BDLElBQUksQ0FBQyxLQUFLLEdBQUc7WUFDWCxHQUFHLElBQUksQ0FBQyxLQUFLO1lBQ2IsV0FBVztTQUNaLENBQUM7UUFDRixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxPQUFPLENBQUMsT0FBZ0I7UUFDdEIsSUFBSSxDQUFDLEtBQUssR0FBRztZQUNYLEdBQUcsSUFBSSxDQUFDLEtBQUs7WUFDYixPQUFPO1NBQ1IsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGlCQUFpQixDQUFDLGlCQUEwQjtRQUMxQyxJQUFJLENBQUMsS0FBSyxHQUFHO1lBQ1gsR0FBRyxJQUFJLENBQUMsS0FBSztZQUNiLGlCQUFpQjtTQUNsQixDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsV0FBVyxDQUFDLFdBQXNCO1FBQ2hDLElBQUksQ0FBQyxLQUFLLEdBQUc7WUFDWCxHQUFHLElBQUksQ0FBQyxLQUFLO1lBQ2IsV0FBVztTQUNaLENBQUM7UUFDRixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxVQUFVLENBQUMsVUFBK0I7O1FBQ3hDLE1BQU0sV0FBVyxTQUFhLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxtQ0FBSSxFQUFFLENBQUM7UUFDM0QsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsS0FBSyxHQUFHO1lBQ1gsR0FBRyxJQUFJLENBQUMsS0FBSztZQUNiLFdBQVc7U0FDWixDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsT0FBTyxDQUFDLE9BQWlCO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLEdBQUc7WUFDWCxHQUFHLElBQUksQ0FBQyxLQUFLO1lBQ2IsT0FBTztTQUNSLENBQUM7UUFDRixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxVQUFVLENBQUMsVUFBb0I7UUFDN0IsSUFBSSxDQUFDLEtBQUssR0FBRztZQUNYLEdBQUcsSUFBSSxDQUFDLEtBQUs7WUFDYixVQUFVO1NBQ1gsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGFBQWEsQ0FBQyxhQUF1QjtRQUNuQyxJQUFJLENBQUMsS0FBSyxHQUFHO1lBQ1gsR0FBRyxJQUFJLENBQUMsS0FBSztZQUNiLGFBQWE7U0FDZCxDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsY0FBYyxDQUFDLGNBQStCO1FBQzVDLElBQUksQ0FBQyxLQUFLLEdBQUc7WUFDWCxHQUFHLElBQUksQ0FBQyxLQUFLO1lBQ2IsY0FBYztTQUNmLENBQUM7UUFDRixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxXQUFXLENBQUMsV0FBeUI7UUFDbkMsSUFBSSxDQUFDLEtBQUssR0FBRztZQUNYLEdBQUcsSUFBSSxDQUFDLEtBQUs7WUFDYixXQUFXO1NBQ1osQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELFNBQVMsQ0FBQyxTQUFtQjtRQUMzQixJQUFJLENBQUMsS0FBSyxHQUFHO1lBQ1gsR0FBRyxJQUFJLENBQUMsS0FBSztZQUNiLFNBQVM7U0FDVixDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsa0JBQTRCO1FBQzdDLElBQUksQ0FBQyxLQUFLLEdBQUc7WUFDWCxHQUFHLElBQUksQ0FBQyxLQUFLO1lBQ2Isa0JBQWtCO1NBQ25CLENBQUM7UUFDRixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxhQUFhLENBQUMsYUFBc0I7UUFDbEMsSUFBSSxDQUFDLEtBQUssR0FBRztZQUNYLEdBQUcsSUFBSSxDQUFDLEtBQUs7WUFDYixhQUFhO1NBQ2QsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELFVBQVUsQ0FBQyxVQUF1QjtRQUNoQyxJQUFJLENBQUMsS0FBSyxHQUFHO1lBQ1gsR0FBRyxJQUFJLENBQUMsS0FBSztZQUNiLFVBQVU7U0FDWCxDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsUUFBUSxDQUFDLFFBQWlCO1FBQ3hCLElBQUksQ0FBQyxLQUFLLEdBQUc7WUFDWCxHQUFHLElBQUksQ0FBQyxLQUFLO1lBQ2IsUUFBUTtTQUNULENBQUM7UUFDRixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxjQUFjLENBQUMsY0FBZ0M7UUFDN0MsSUFBSSxDQUFDLEtBQUssR0FBRztZQUNYLEdBQUcsSUFBSSxDQUFDLEtBQUs7WUFDYixjQUFjO1NBQ2YsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGFBQWEsQ0FBQyxhQUE0Qjs7UUFDeEMsTUFBTSxjQUFjLFNBQW9CLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxtQ0FBSSxFQUFFLENBQUM7UUFDeEUsY0FBYyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsS0FBSyxHQUFHO1lBQ1gsR0FBRyxJQUFJLENBQUMsS0FBSztZQUNiLGNBQWM7U0FDZixDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsc0JBQXNCLENBQUMsc0JBQStDO1FBQ3BFLElBQUksQ0FBQyxLQUFLLEdBQUc7WUFDWCxHQUFHLElBQUksQ0FBQyxLQUFLO1lBQ2Isc0JBQXNCO1NBQ3ZCLENBQUM7UUFDRixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxnQkFBNEI7UUFDM0MsSUFBSSxDQUFDLEtBQUssR0FBRztZQUNYLEdBQUcsSUFBSSxDQUFDLEtBQUs7WUFDYixnQkFBZ0I7U0FDakIsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEtBQUssU0FBUyxFQUFFO1lBQ3BDLE1BQU0sSUFBSSxLQUFLLENBQUMsMkNBQTJDLENBQUMsQ0FBQztTQUM5RDtRQUVELElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEtBQUssU0FBUyxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDdkI7UUFFRCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxLQUFLLFNBQVMsRUFBRTtZQUN4QyxJQUFJLENBQUMsV0FBVyxDQUFDLDRCQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDM0M7UUFFRCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxLQUFLLFNBQVMsRUFBRTtZQUN2QyxJQUFJLENBQUMsVUFBVSxDQUFDLDJCQUFVLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDN0M7UUFFRCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsc0JBQXNCLEtBQUssU0FBUyxFQUFFO1lBQ25ELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyx1Q0FBc0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUNuRTtRQUVELE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDM0QsTUFBTSxtQkFBbUIsR0FBb0MsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO2FBQ3ZGLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxTQUFTLENBQUM7YUFDakQsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLFFBQVEsRUFBRSxFQUFFOztZQUM5QixTQUFTLE9BQUMsUUFBUSxDQUFDLElBQUksbUNBQUksRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzFELE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUMsRUFBRSxFQUFxQyxDQUFDLENBQUM7UUFFNUMsT0FBTztZQUNMLEdBQUcsSUFBSSxDQUFDLEtBQUs7WUFDYixlQUFlO1lBQ2YsbUJBQW1CO1NBQ3BCLENBQUE7SUFDSCxDQUFDO0lBRUQsY0FBYztRQUNaLE9BQU8sSUFBSSw2QkFBWSxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDekQsQ0FBQztDQUNGO0FBak9ELGtEQWlPQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJlaGF2aW9yT3B0aW9ucyxcbiAgRGlzdHJpYnV0aW9uLFxuICBEaXN0cmlidXRpb25Qcm9wcyxcbiAgRXJyb3JSZXNwb25zZSxcbiAgR2VvUmVzdHJpY3Rpb24sXG4gIEh0dHBWZXJzaW9uLFxuICBJT3JpZ2luLCBPcmlnaW5BY2Nlc3NJZGVudGl0eSxcbiAgUHJpY2VDbGFzcyxcbiAgU2VjdXJpdHlQb2xpY3lQcm90b2NvbCxcbiAgU1NMTWV0aG9kLFxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3VkZnJvbnRcIjtcbmltcG9ydCB7SUNlcnRpZmljYXRlfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNlcnRpZmljYXRlbWFuYWdlclwiO1xuaW1wb3J0IHtJQnVja2V0fSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXMzXCI7XG5pbXBvcnQge0NvbnN0cnVjdH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7QmVoYXZpb3JCdWlsZGVyfSBmcm9tIFwiLi9iZWhhdmlvci1idWlsZGVyXCI7XG5pbXBvcnQge0RvbWFpbk5hbWV9IGZyb20gXCIuLi8uLi9hd3Mtcm91dGU1M1wiO1xuaW1wb3J0IHtDbG91ZEZyb250QnVja2V0fSBmcm9tIFwiLi4vLi4vYXdzLXMzXCI7XG5pbXBvcnQge0V4dGVuZGVkQ29uc3RydWN0fSBmcm9tIFwiLi4vLi4vYXdzLWNka1wiO1xuaW1wb3J0IHtTM09yaWdpbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jbG91ZGZyb250LW9yaWdpbnNcIjtcblxuZXhwb3J0IGNsYXNzIERpc3RyaWJ1dGlvbkJ1aWxkZXIgZXh0ZW5kcyBFeHRlbmRlZENvbnN0cnVjdCB7XG5cbiAgcHJvdGVjdGVkIHByb3BzOiBhbnkgPSB7fTtcbiAgcHJvdGVjdGVkIGJlaGF2aW9yczogUmVjb3JkPHN0cmluZywgQmVoYXZpb3JCdWlsZGVyPiA9IHt9O1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICB9XG5cbiAgYmVoYXZpb3Iob3JpZ2luOiBJT3JpZ2luLCBwYXRoPzogc3RyaW5nKTogQmVoYXZpb3JCdWlsZGVyIHtcbiAgICByZXR1cm4gbmV3IEJlaGF2aW9yQnVpbGRlcih0aGlzLCBvcmlnaW4sIHBhdGgpO1xuICB9XG5cbiAgYmVoYXZpb3JGcm9tQnVja2V0KGJ1Y2tldDogSUJ1Y2tldCwgcGF0aD86IHN0cmluZyk6IEJlaGF2aW9yQnVpbGRlciB7XG4gICAgcmV0dXJuIG5ldyBCZWhhdmlvckJ1aWxkZXIodGhpcywgbmV3IFMzT3JpZ2luKGJ1Y2tldCwge1xuICAgICAgb3JpZ2luQWNjZXNzSWRlbnRpdHk6IG5ldyBPcmlnaW5BY2Nlc3NJZGVudGl0eSh0aGlzLCBgQWNjZXNzJHtidWNrZXQubm9kZS5pZH1gLCB7XG4gICAgICAgIGNvbW1lbnQ6IGBTMyBidWNrZXQgJHtidWNrZXQuYnVja2V0TmFtZX1gXG4gICAgICB9KVxuICAgIH0pLCBwYXRoKTtcbiAgfVxuXG4gIGJlaGF2aW9yRnJvbUNsb3VkRnJvbUJ1Y2tldChidWNrZXQ6IENsb3VkRnJvbnRCdWNrZXQsIHBhdGg/OiBzdHJpbmcpOiBCZWhhdmlvckJ1aWxkZXIge1xuICAgIHJldHVybiBuZXcgQmVoYXZpb3JCdWlsZGVyKHRoaXMsIGJ1Y2tldC50b09yaWdpbigpLCBwYXRoKTtcbiAgfVxuXG4gIGFkZEJlaGF2aW9yKGJ1aWxkZXI6IEJlaGF2aW9yQnVpbGRlciwgcGF0aDogc3RyaW5nIHwgdW5kZWZpbmVkKTogRGlzdHJpYnV0aW9uQnVpbGRlciB7XG4gICAgdGhpcy5iZWhhdmlvcnNbcGF0aCA/PyBcIlwiXSA9IGJ1aWxkZXI7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBjZXJ0aWZpY2F0ZShjZXJ0aWZpY2F0ZT86IElDZXJ0aWZpY2F0ZSk6IERpc3RyaWJ1dGlvbkJ1aWxkZXIge1xuICAgIHRoaXMucHJvcHMgPSB7XG4gICAgICAuLi50aGlzLnByb3BzLFxuICAgICAgY2VydGlmaWNhdGVcbiAgICB9O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgY29tbWVudChjb21tZW50Pzogc3RyaW5nKTogRGlzdHJpYnV0aW9uQnVpbGRlciB7XG4gICAgdGhpcy5wcm9wcyA9IHtcbiAgICAgIC4uLnRoaXMucHJvcHMsXG4gICAgICBjb21tZW50XG4gICAgfTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGRlZmF1bHRSb290T2JqZWN0KGRlZmF1bHRSb290T2JqZWN0Pzogc3RyaW5nKTogRGlzdHJpYnV0aW9uQnVpbGRlciB7XG4gICAgdGhpcy5wcm9wcyA9IHtcbiAgICAgIC4uLnRoaXMucHJvcHMsXG4gICAgICBkZWZhdWx0Um9vdE9iamVjdFxuICAgIH07XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBkb21haW5OYW1lcyhkb21haW5OYW1lcz86IHN0cmluZ1tdKTogRGlzdHJpYnV0aW9uQnVpbGRlciB7XG4gICAgdGhpcy5wcm9wcyA9IHtcbiAgICAgIC4uLnRoaXMucHJvcHMsXG4gICAgICBkb21haW5OYW1lc1xuICAgIH07XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBkb21haW5OYW1lKGRvbWFpbk5hbWU6IHN0cmluZyB8IERvbWFpbk5hbWUpOiBEaXN0cmlidXRpb25CdWlsZGVyIHtcbiAgICBjb25zdCBkb21haW5OYW1lczogc3RyaW5nW10gPSB0aGlzLnByb3BzLmRvbWFpbk5hbWVzID8/IFtdO1xuICAgIGRvbWFpbk5hbWVzLnB1c2goZG9tYWluTmFtZS50b1N0cmluZygpKTtcbiAgICB0aGlzLnByb3BzID0ge1xuICAgICAgLi4udGhpcy5wcm9wcyxcbiAgICAgIGRvbWFpbk5hbWVzXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGVuYWJsZWQoZW5hYmxlZD86IGJvb2xlYW4pOiBEaXN0cmlidXRpb25CdWlsZGVyIHtcbiAgICB0aGlzLnByb3BzID0ge1xuICAgICAgLi4udGhpcy5wcm9wcyxcbiAgICAgIGVuYWJsZWRcbiAgICB9O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZW5hYmxlSXB2NihlbmFibGVJcHY2PzogYm9vbGVhbik6IERpc3RyaWJ1dGlvbkJ1aWxkZXIge1xuICAgIHRoaXMucHJvcHMgPSB7XG4gICAgICAuLi50aGlzLnByb3BzLFxuICAgICAgZW5hYmxlSXB2NlxuICAgIH07XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBlbmFibGVMb2dnaW5nKGVuYWJsZUxvZ2dpbmc/OiBib29sZWFuKTogRGlzdHJpYnV0aW9uQnVpbGRlciB7XG4gICAgdGhpcy5wcm9wcyA9IHtcbiAgICAgIC4uLnRoaXMucHJvcHMsXG4gICAgICBlbmFibGVMb2dnaW5nXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGdlb1Jlc3RyaWN0aW9uKGdlb1Jlc3RyaWN0aW9uPzogR2VvUmVzdHJpY3Rpb24pOiBEaXN0cmlidXRpb25CdWlsZGVyIHtcbiAgICB0aGlzLnByb3BzID0ge1xuICAgICAgLi4udGhpcy5wcm9wcyxcbiAgICAgIGdlb1Jlc3RyaWN0aW9uXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGh0dHBWZXJzaW9uKGh0dHBWZXJzaW9uPzogSHR0cFZlcnNpb24pOiBEaXN0cmlidXRpb25CdWlsZGVyIHtcbiAgICB0aGlzLnByb3BzID0ge1xuICAgICAgLi4udGhpcy5wcm9wcyxcbiAgICAgIGh0dHBWZXJzaW9uXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGxvZ0J1Y2tldChsb2dCdWNrZXQ/OiBJQnVja2V0KTogRGlzdHJpYnV0aW9uQnVpbGRlciB7XG4gICAgdGhpcy5wcm9wcyA9IHtcbiAgICAgIC4uLnRoaXMucHJvcHMsXG4gICAgICBsb2dCdWNrZXRcbiAgICB9O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgbG9nSW5jbHVkZXNDb29raWVzKGxvZ0luY2x1ZGVzQ29va2llcz86IGJvb2xlYW4pOiBEaXN0cmlidXRpb25CdWlsZGVyIHtcbiAgICB0aGlzLnByb3BzID0ge1xuICAgICAgLi4udGhpcy5wcm9wcyxcbiAgICAgIGxvZ0luY2x1ZGVzQ29va2llc1xuICAgIH07XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBsb2dGaWxlUHJlZml4KGxvZ0ZpbGVQcmVmaXg/OiBzdHJpbmcpOiBEaXN0cmlidXRpb25CdWlsZGVyIHtcbiAgICB0aGlzLnByb3BzID0ge1xuICAgICAgLi4udGhpcy5wcm9wcyxcbiAgICAgIGxvZ0ZpbGVQcmVmaXhcbiAgICB9O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHJpY2VDbGFzcyhwcmljZUNsYXNzPzogUHJpY2VDbGFzcyk6IERpc3RyaWJ1dGlvbkJ1aWxkZXIge1xuICAgIHRoaXMucHJvcHMgPSB7XG4gICAgICAuLi50aGlzLnByb3BzLFxuICAgICAgcHJpY2VDbGFzc1xuICAgIH07XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICB3ZWJBY2xJZCh3ZWJBY2xJZD86IHN0cmluZyk6IERpc3RyaWJ1dGlvbkJ1aWxkZXIge1xuICAgIHRoaXMucHJvcHMgPSB7XG4gICAgICAuLi50aGlzLnByb3BzLFxuICAgICAgd2ViQWNsSWRcbiAgICB9O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZXJyb3JSZXNwb25zZXMoZXJyb3JSZXNwb25zZXM/OiBFcnJvclJlc3BvbnNlW10pOiBEaXN0cmlidXRpb25CdWlsZGVyIHtcbiAgICB0aGlzLnByb3BzID0ge1xuICAgICAgLi4udGhpcy5wcm9wcyxcbiAgICAgIGVycm9yUmVzcG9uc2VzXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGVycm9yUmVzcG9uc2UoZXJyb3JSZXNwb25zZTogRXJyb3JSZXNwb25zZSk6IERpc3RyaWJ1dGlvbkJ1aWxkZXIge1xuICAgIGNvbnN0IGVycm9yUmVzcG9uc2VzOiBFcnJvclJlc3BvbnNlW10gPSB0aGlzLnByb3BzLmVycm9yUmVzcG9uc2VzID8/IFtdO1xuICAgIGVycm9yUmVzcG9uc2VzLnB1c2goZXJyb3JSZXNwb25zZSk7XG4gICAgdGhpcy5wcm9wcyA9IHtcbiAgICAgIC4uLnRoaXMucHJvcHMsXG4gICAgICBlcnJvclJlc3BvbnNlc1xuICAgIH07XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBtaW5pbXVtUHJvdG9jb2xWZXJzaW9uKG1pbmltdW1Qcm90b2NvbFZlcnNpb24/OiBTZWN1cml0eVBvbGljeVByb3RvY29sKTogRGlzdHJpYnV0aW9uQnVpbGRlciB7XG4gICAgdGhpcy5wcm9wcyA9IHtcbiAgICAgIC4uLnRoaXMucHJvcHMsXG4gICAgICBtaW5pbXVtUHJvdG9jb2xWZXJzaW9uXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHNzbFN1cHBvcnRNZXRob2Qoc3NsU3VwcG9ydE1ldGhvZD86IFNTTE1ldGhvZCk6IERpc3RyaWJ1dGlvbkJ1aWxkZXIge1xuICAgIHRoaXMucHJvcHMgPSB7XG4gICAgICAuLi50aGlzLnByb3BzLFxuICAgICAgc3NsU3VwcG9ydE1ldGhvZFxuICAgIH07XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBidWlsZCgpOiBEaXN0cmlidXRpb25Qcm9wcyB7XG4gICAgaWYgKHRoaXMuYmVoYXZpb3JzW1wiXCJdID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkRlZmF1bHQgYmVoYXZpb3Igd2l0aCBubyBwYXRoIGlzIHJlcXVpcmVkXCIpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnByb3BzLmVuYWJsZUlwdjYgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5lbmFibGVJcHY2KHRydWUpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnByb3BzLmh0dHBWZXJzaW9uID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuaHR0cFZlcnNpb24oSHR0cFZlcnNpb24uSFRUUDJfQU5EXzMpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnByb3BzLnByaWNlQ2xhc3MgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5wcmljZUNsYXNzKFByaWNlQ2xhc3MuUFJJQ0VfQ0xBU1NfMTAwKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5wcm9wcy5taW5pbXVtUHJvdG9jb2xWZXJzaW9uID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMubWluaW11bVByb3RvY29sVmVyc2lvbihTZWN1cml0eVBvbGljeVByb3RvY29sLlRMU19WMV8yXzIwMjEpO1xuICAgIH1cblxuICAgIGNvbnN0IGRlZmF1bHRCZWhhdmlvciA9IHRoaXMuYmVoYXZpb3JzW1wiXCJdLmJ1aWxkQmVoYXZpb3IoKTtcbiAgICBjb25zdCBhZGRpdGlvbmFsQmVoYXZpb3JzOiBSZWNvcmQ8c3RyaW5nLCBCZWhhdmlvck9wdGlvbnM+ID0gT2JqZWN0LnZhbHVlcyh0aGlzLmJlaGF2aW9ycylcbiAgICAgIC5maWx0ZXIoKGJlaGF2aW9yKSA9PiBiZWhhdmlvci5wYXRoICE9PSB1bmRlZmluZWQpXG4gICAgICAucmVkdWNlKChiZWhhdmlvcnMsIGJlaGF2aW9yKSA9PiB7XG4gICAgICAgIGJlaGF2aW9yc1tiZWhhdmlvci5wYXRoID8/IFwiXCJdID0gYmVoYXZpb3IuYnVpbGRCZWhhdmlvcigpO1xuICAgICAgICByZXR1cm4gYmVoYXZpb3JzO1xuICAgICAgfSwge30gYXMgUmVjb3JkPHN0cmluZywgQmVoYXZpb3JPcHRpb25zPik7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4udGhpcy5wcm9wcyxcbiAgICAgIGRlZmF1bHRCZWhhdmlvcixcbiAgICAgIGFkZGl0aW9uYWxCZWhhdmlvcnNcbiAgICB9XG4gIH1cblxuICB0b0Rpc3RyaWJ1dGlvbigpOiBEaXN0cmlidXRpb24ge1xuICAgIHJldHVybiBuZXcgRGlzdHJpYnV0aW9uKHRoaXMsIFwiRGVmYXVsdFwiLCB0aGlzLmJ1aWxkKCkpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const test_helper_1 = require("../../test-helper");
4
+ const distribution_builder_1 = require("./distribution-builder");
5
+ const aws_s3_1 = require("aws-cdk-lib/aws-s3");
6
+ test("Test DistributionBuilder", () => {
7
+ const stack = test_helper_1.TestHelper.stack();
8
+ const bucket = new aws_s3_1.Bucket(stack, "TestBucket");
9
+ new distribution_builder_1.DistributionBuilder(stack, "TestDistribution")
10
+ .behaviorFromBucket(bucket)
11
+ .toDistribution();
12
+ });
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzdHJpYnV0aW9uLWJ1aWxkZXIudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImRpc3RyaWJ1dGlvbi1idWlsZGVyLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxtREFBNkM7QUFDN0MsaUVBQTJEO0FBQzNELCtDQUEwQztBQUUxQyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsR0FBRyxFQUFFO0lBQ3BDLE1BQU0sS0FBSyxHQUFHLHdCQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDakMsTUFBTSxNQUFNLEdBQUcsSUFBSSxlQUFNLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQy9DLElBQUksMENBQW1CLENBQUMsS0FBSyxFQUFFLGtCQUFrQixDQUFDO1NBQy9DLGtCQUFrQixDQUFDLE1BQU0sQ0FBQztTQUMxQixjQUFjLEVBQUUsQ0FBQztBQUN0QixDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7VGVzdEhlbHBlcn0gZnJvbSBcIi4uLy4uL3Rlc3QtaGVscGVyXCI7XG5pbXBvcnQge0Rpc3RyaWJ1dGlvbkJ1aWxkZXJ9IGZyb20gXCIuL2Rpc3RyaWJ1dGlvbi1idWlsZGVyXCI7XG5pbXBvcnQge0J1Y2tldH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zM1wiO1xuXG50ZXN0KFwiVGVzdCBEaXN0cmlidXRpb25CdWlsZGVyXCIsICgpID0+IHtcbiAgY29uc3Qgc3RhY2sgPSBUZXN0SGVscGVyLnN0YWNrKCk7XG4gIGNvbnN0IGJ1Y2tldCA9IG5ldyBCdWNrZXQoc3RhY2ssIFwiVGVzdEJ1Y2tldFwiKTtcbiAgbmV3IERpc3RyaWJ1dGlvbkJ1aWxkZXIoc3RhY2ssIFwiVGVzdERpc3RyaWJ1dGlvblwiKVxuICAgIC5iZWhhdmlvckZyb21CdWNrZXQoYnVja2V0KVxuICAgIC50b0Rpc3RyaWJ1dGlvbigpO1xufSk7XG4iXX0=
@@ -43,11 +43,11 @@ function handler(event) {
43
43
  }`)
44
44
  });
45
45
  const origin = new aws_cloudfront_origins_1.HttpOrigin("example.com");
46
- const builder = aws_cloudfront_2.DistributionBuilder.fromOrigin(origin)
46
+ const distribution = new aws_cloudfront_2.DistributionBuilder(this, "Distribution")
47
47
  .comment(props.comment)
48
48
  .domainNames(props.domainNames.map(d => d.toString()))
49
- .certificate(certificate);
50
- builder.defaultBehavior()
49
+ .certificate(certificate)
50
+ .behavior(origin)
51
51
  .allowedMethods(aws_cloudfront_1.AllowedMethods.ALLOW_GET_HEAD)
52
52
  .cachedMethods(aws_cloudfront_1.CachedMethods.CACHE_GET_HEAD)
53
53
  .compress(true)
@@ -59,8 +59,7 @@ function handler(event) {
59
59
  eventType: aws_cloudfront_1.FunctionEventType.VIEWER_REQUEST,
60
60
  function: redirectFunction
61
61
  }
62
- ]);
63
- const distribution = builder.toDistribution(this, "Distribution");
62
+ ]).toDistribution();
64
63
  const target = new aws_route53_targets_1.CloudFrontTarget(distribution);
65
64
  const records = props.domainNames.map(domainName => domainName.createARecord(this, aws_route53_1.RecordTarget.fromAlias(target)));
66
65
  this.certificate = certificate;
@@ -69,4 +68,4 @@ function handler(event) {
69
68
  }
70
69
  }
71
70
  exports.DomainRedirect = DomainRedirect;
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tYWluLXJlZGlyZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZG9tYWluLXJlZGlyZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLCtFQUFxRjtBQUNyRiwrRUFBOEQ7QUFDOUQsK0RBTW9DO0FBQ3BDLHlFQUFpRTtBQUNqRSx5REFBOEQ7QUFDOUQsMkNBQXNGO0FBQ3RGLG1EQUE2QztBQUM3Qyw2Q0FBK0M7QUFDL0MseURBQXlEO0FBRXpELElBQVksWUFHWDtBQUhELFdBQVksWUFBWTtJQUN0QiwyREFBZSxDQUFBO0lBQ2YsMkRBQWUsQ0FBQTtBQUNqQixDQUFDLEVBSFcsWUFBWSxHQUFaLG9CQUFZLEtBQVosb0JBQVksUUFHdkI7QUFrQ0Q7O0dBRUc7QUFDSCxNQUFhLGNBQWUsU0FBUSwyQkFBaUI7SUFNbkQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUEwQjtRQUNsRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFDLFlBQVksRUFBRSxzQkFBWSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLDBCQUFlLENBQUMsRUFBQyxDQUFDLENBQUM7UUFFMUYsSUFBSSxLQUFLLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO1NBQ3pEO1FBRUQsTUFBTSxXQUFXLEdBQUcsSUFBSSxvQ0FBVyxDQUFDLElBQUksRUFBRSxhQUFhLEVBQUU7WUFDdkQsVUFBVSxFQUFFLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO1lBQzNDLHVCQUF1QixFQUFFLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUMxRSxVQUFVLEVBQUUsOENBQXFCLENBQUMsZ0JBQWdCLENBQUMsd0JBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUNsRyxDQUFDLENBQUM7UUFFSCxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsSUFBSSxJQUFJLFlBQVksQ0FBQyxTQUFTLENBQUM7UUFFMUQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLHlCQUFRLENBQUMsSUFBSSxFQUFFLGtCQUFrQixFQUFFO1lBQzlELElBQUksRUFBRSw2QkFBWSxDQUFDLFVBQVUsQ0FBQzs7O2tCQUdsQixZQUFZOzBCQUNKLFlBQVksS0FBSyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsbUJBQW1COztpQ0FFNUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLEdBQUcsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsTUFBTSxHQUFHLEdBQUc7OztFQUd4SCxDQUFDO1NBQ0UsQ0FBQyxDQUFDO1FBRUgsTUFBTSxNQUFNLEdBQUcsSUFBSSxtQ0FBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzdDLE1BQU0sT0FBTyxHQUFHLG9DQUFtQixDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7YUFDbkQsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7YUFDdEIsV0FBVyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7YUFDckQsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzVCLE9BQU8sQ0FBQyxlQUFlLEVBQUU7YUFDdEIsY0FBYyxDQUFDLCtCQUFjLENBQUMsY0FBYyxDQUFDO2FBQzdDLGFBQWEsQ0FBQyw4QkFBYSxDQUFDLGNBQWMsQ0FBQzthQUMzQyxRQUFRLENBQUMsSUFBSSxDQUFDO2FBQ2QsV0FBVyxDQUFDLDRCQUFXLENBQUMsaUJBQWlCLENBQUM7YUFDMUMsb0JBQW9CLENBQUMscUNBQW9CLENBQUMsaUJBQWlCLENBQUM7YUFDNUQsbUJBQW1CLENBQUMsb0NBQW1CLENBQUMsVUFBVSxDQUFDO2FBQ25ELG9CQUFvQixDQUFDO1lBQ3BCO2dCQUNFLFNBQVMsRUFBRSxrQ0FBaUIsQ0FBQyxjQUFjO2dCQUMzQyxRQUFRLEVBQUUsZ0JBQWdCO2FBQzNCO1NBQ0YsQ0FBQyxDQUFDO1FBRUwsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDbEUsTUFBTSxNQUFNLEdBQUcsSUFBSSxzQ0FBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNsRCxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUNqRCxVQUFVLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSwwQkFBWSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFbEUsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDL0IsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7UUFDakMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDekIsQ0FBQztDQUNGO0FBOURELHdDQThEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29uc3RydWN0fSBmcm9tIFwiY29uc3RydWN0c1wiXG5pbXBvcnQge0NlcnRpZmljYXRlLCBDZXJ0aWZpY2F0ZVZhbGlkYXRpb259IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2VydGlmaWNhdGVtYW5hZ2VyXCJcbmltcG9ydCB7SHR0cE9yaWdpbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jbG91ZGZyb250LW9yaWdpbnNcIjtcbmltcG9ydCB7XG4gIEFsbG93ZWRNZXRob2RzLFxuICBDYWNoZWRNZXRob2RzLFxuICBDYWNoZVBvbGljeSwgRGlzdHJpYnV0aW9uLCBGdW5jdGlvbiwgRnVuY3Rpb25Db2RlLCBGdW5jdGlvbkV2ZW50VHlwZSxcbiAgT3JpZ2luUmVxdWVzdFBvbGljeSxcbiAgVmlld2VyUHJvdG9jb2xQb2xpY3lcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jbG91ZGZyb250XCI7XG5pbXBvcnQge0Nsb3VkRnJvbnRUYXJnZXR9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtcm91dGU1My10YXJnZXRzXCI7XG5pbXBvcnQge0FSZWNvcmQsIFJlY29yZFRhcmdldH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1yb3V0ZTUzXCI7XG5pbXBvcnQge0V4dGVuZGVkQ29uc3RydWN0LCBFeHRlbmRlZENvbnN0cnVjdFByb3BzLCBTdGFuZGFyZFRhZ3N9IGZyb20gXCIuLi8uLi9hd3MtY2RrXCI7XG5pbXBvcnQge0RvbWFpbk5hbWV9IGZyb20gXCIuLi8uLi9hd3Mtcm91dGU1M1wiO1xuaW1wb3J0IHtMaWJTdGFuZGFyZFRhZ3N9IGZyb20gXCIuLi8uLi90cnVlbWFya1wiO1xuaW1wb3J0IHtEaXN0cmlidXRpb25CdWlsZGVyfSBmcm9tIFwiLi4vLi4vYXdzLWNsb3VkZnJvbnRcIjtcblxuZXhwb3J0IGVudW0gUmVkaXJlY3RUeXBlIHtcbiAgUGVybWFuZW50ID0gMzAxLFxuICBUZW1wb3JhcnkgPSAzMDJcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBEb21haW5SZWRpcmVjdC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEb21haW5SZWRpcmVjdFByb3BzIGV4dGVuZHMgRXh0ZW5kZWRDb25zdHJ1Y3RQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiByZWRpcmVjdCB0byBwZXJmb3JtLiBEZWZhdWx0cyB0byBQZXJtYW5lbnQuXG4gICAqXG4gICAqIEBkZWZhdWx0IFBlcm1hbmVudFxuICAgKi9cbiAgcmVhZG9ubHkgdHlwZT86IFJlZGlyZWN0VHlwZTtcblxuICAvKipcbiAgICogVGhlIGRvbWFpbiBuYW1lcyB0byByZWRpcmVjdC5cbiAgICovXG4gIHJlYWRvbmx5IGRvbWFpbk5hbWVzOiBEb21haW5OYW1lW107XG5cbiAgLyoqXG4gICAqIFRoZSB0YXJnZXQgdG8gcmVkaXJlY3QgdG8uIEV4LiBodHRwczovL3d3dy5leGFtcGxlLmNvbVxuICAgKi9cbiAgcmVhZG9ubHkgdGFyZ2V0OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENvbW1lbnQgdG8gbGVhdmUgb24gdGhlIENsb3VkRnJvbnQgZGlzdHJpYnV0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgY29tbWVudD86IHN0cmluZztcblxuICAvKipcbiAgICogQXBwZW5kcyB0aGUgcmVxdWVzdCBVUkkgdG8gdGhlIHRhcmdldC4gRGVmYXVsdCBpcyBmYWxzZS5cbiAgICovXG4gIHJlYWRvbmx5IGFwcGVuZFVyaT86IGJvb2xlYW47XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIENsb3VkRnJvbnQgZGlzdHJpYnV0aW9uIHRoYXQgcmVkaXJlY3RzIGFuIGVudGlyZSBkb21haW4gdG8gYSB0YXJnZXQuXG4gKi9cbmV4cG9ydCBjbGFzcyBEb21haW5SZWRpcmVjdCBleHRlbmRzIEV4dGVuZGVkQ29uc3RydWN0IHtcblxuICByZWFkb25seSBjZXJ0aWZpY2F0ZTogQ2VydGlmaWNhdGU7XG4gIHJlYWRvbmx5IGRpc3RyaWJ1dGlvbjogRGlzdHJpYnV0aW9uO1xuICByZWFkb25seSByZWNvcmRzOiBBUmVjb3JkW107XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IERvbWFpblJlZGlyZWN0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtzdGFuZGFyZFRhZ3M6IFN0YW5kYXJkVGFncy5tZXJnZShwcm9wcy5zdGFuZGFyZFRhZ3MsIExpYlN0YW5kYXJkVGFncyl9KTtcblxuICAgIGlmIChwcm9wcy5kb21haW5OYW1lcy5sZW5ndGggPCAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJBdCBsZWFzdCBvbmUgZG9tYWluIG5hbWUgaXMgcmVxdWlyZWRcIik7XG4gICAgfVxuXG4gICAgY29uc3QgY2VydGlmaWNhdGUgPSBuZXcgQ2VydGlmaWNhdGUodGhpcywgXCJDZXJ0aWZpY2F0ZVwiLCB7XG4gICAgICBkb21haW5OYW1lOiBwcm9wcy5kb21haW5OYW1lc1swXS50b1N0cmluZygpLFxuICAgICAgc3ViamVjdEFsdGVybmF0aXZlTmFtZXM6IHByb3BzLmRvbWFpbk5hbWVzLnNsaWNlKDEpLm1hcChkID0+IGQudG9TdHJpbmcoKSksXG4gICAgICB2YWxpZGF0aW9uOiBDZXJ0aWZpY2F0ZVZhbGlkYXRpb24uZnJvbURuc011bHRpWm9uZShEb21haW5OYW1lLnRvWm9uZU1hcCh0aGlzLCBwcm9wcy5kb21haW5OYW1lcykpXG4gICAgfSk7XG5cbiAgICBjb25zdCByZWRpcmVjdFR5cGUgPSBwcm9wcy50eXBlIHx8IFJlZGlyZWN0VHlwZS5QZXJtYW5lbnQ7XG5cbiAgICBjb25zdCByZWRpcmVjdEZ1bmN0aW9uID0gbmV3IEZ1bmN0aW9uKHRoaXMsIFwiUmVkaXJlY3RGdW5jdGlvblwiLCB7XG4gICAgICBjb2RlOiBGdW5jdGlvbkNvZGUuZnJvbUlubGluZShgXG5mdW5jdGlvbiBoYW5kbGVyKGV2ZW50KSB7XG4gIHJldHVybiB7XG4gICAgc3RhdHVzQ29kZTogJHtyZWRpcmVjdFR5cGV9LFxuICAgIHN0YXR1c0Rlc2NyaXB0aW9uOiBcIiR7cmVkaXJlY3RUeXBlID09PSBSZWRpcmVjdFR5cGUuUGVybWFuZW50ID8gXCJQZXJtYW5lbnRseSBNb3ZlZFwiIDogXCJUZW1wb3JhcmlseSBNb3ZlZFwifVwiLFxuICAgIGhlYWRlcnM6IHtcbiAgICAgICAgXCJsb2NhdGlvblwiOiB7IFwidmFsdWVcIjogJHtwcm9wcy5hcHBlbmRVcmkgPyAnXCInICsgcHJvcHMudGFyZ2V0ICsgJ1wiICsgZXZlbnQucmVxdWVzdC51cmknIDogJ1wiJyArIHByb3BzLnRhcmdldCArICdcIid9fVxuICAgIH1cbiAgfVxufWApXG4gICAgfSk7XG5cbiAgICBjb25zdCBvcmlnaW4gPSBuZXcgSHR0cE9yaWdpbihcImV4YW1wbGUuY29tXCIpO1xuICAgIGNvbnN0IGJ1aWxkZXIgPSBEaXN0cmlidXRpb25CdWlsZGVyLmZyb21PcmlnaW4ob3JpZ2luKVxuICAgICAgLmNvbW1lbnQocHJvcHMuY29tbWVudClcbiAgICAgIC5kb21haW5OYW1lcyhwcm9wcy5kb21haW5OYW1lcy5tYXAoZCA9PiBkLnRvU3RyaW5nKCkpKVxuICAgICAgLmNlcnRpZmljYXRlKGNlcnRpZmljYXRlKTtcbiAgICBidWlsZGVyLmRlZmF1bHRCZWhhdmlvcigpXG4gICAgICAuYWxsb3dlZE1ldGhvZHMoQWxsb3dlZE1ldGhvZHMuQUxMT1dfR0VUX0hFQUQpXG4gICAgICAuY2FjaGVkTWV0aG9kcyhDYWNoZWRNZXRob2RzLkNBQ0hFX0dFVF9IRUFEKVxuICAgICAgLmNvbXByZXNzKHRydWUpXG4gICAgICAuY2FjaGVQb2xpY3koQ2FjaGVQb2xpY3kuQ0FDSElOR19PUFRJTUlaRUQpXG4gICAgICAudmlld2VyUHJvdG9jb2xQb2xpY3koVmlld2VyUHJvdG9jb2xQb2xpY3kuUkVESVJFQ1RfVE9fSFRUUFMpXG4gICAgICAub3JpZ2luUmVxdWVzdFBvbGljeShPcmlnaW5SZXF1ZXN0UG9saWN5LkFMTF9WSUVXRVIpXG4gICAgICAuZnVuY3Rpb25Bc3NvY2lhdGlvbnMoW1xuICAgICAgICB7XG4gICAgICAgICAgZXZlbnRUeXBlOiBGdW5jdGlvbkV2ZW50VHlwZS5WSUVXRVJfUkVRVUVTVCxcbiAgICAgICAgICBmdW5jdGlvbjogcmVkaXJlY3RGdW5jdGlvblxuICAgICAgICB9XG4gICAgICBdKTtcblxuICAgIGNvbnN0IGRpc3RyaWJ1dGlvbiA9IGJ1aWxkZXIudG9EaXN0cmlidXRpb24odGhpcywgXCJEaXN0cmlidXRpb25cIik7XG4gICAgY29uc3QgdGFyZ2V0ID0gbmV3IENsb3VkRnJvbnRUYXJnZXQoZGlzdHJpYnV0aW9uKTtcbiAgICBjb25zdCByZWNvcmRzID0gcHJvcHMuZG9tYWluTmFtZXMubWFwKGRvbWFpbk5hbWUgPT5cbiAgICAgIGRvbWFpbk5hbWUuY3JlYXRlQVJlY29yZCh0aGlzLCBSZWNvcmRUYXJnZXQuZnJvbUFsaWFzKHRhcmdldCkpKTtcblxuICAgIHRoaXMuY2VydGlmaWNhdGUgPSBjZXJ0aWZpY2F0ZTtcbiAgICB0aGlzLmRpc3RyaWJ1dGlvbiA9IGRpc3RyaWJ1dGlvbjtcbiAgICB0aGlzLnJlY29yZHMgPSByZWNvcmRzO1xuICB9XG59XG4iXX0=
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tYWluLXJlZGlyZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZG9tYWluLXJlZGlyZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLCtFQUFxRjtBQUNyRiwrRUFBOEQ7QUFDOUQsK0RBTW9DO0FBQ3BDLHlFQUFpRTtBQUNqRSx5REFBOEQ7QUFDOUQsMkNBQXNGO0FBQ3RGLG1EQUE2QztBQUM3Qyw2Q0FBK0M7QUFDL0MseURBQXlEO0FBRXpELElBQVksWUFHWDtBQUhELFdBQVksWUFBWTtJQUN0QiwyREFBZSxDQUFBO0lBQ2YsMkRBQWUsQ0FBQTtBQUNqQixDQUFDLEVBSFcsWUFBWSxHQUFaLG9CQUFZLEtBQVosb0JBQVksUUFHdkI7QUFrQ0Q7O0dBRUc7QUFDSCxNQUFhLGNBQWUsU0FBUSwyQkFBaUI7SUFNbkQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUEwQjtRQUNsRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFDLFlBQVksRUFBRSxzQkFBWSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLDBCQUFlLENBQUMsRUFBQyxDQUFDLENBQUM7UUFFMUYsSUFBSSxLQUFLLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO1NBQ3pEO1FBRUQsTUFBTSxXQUFXLEdBQUcsSUFBSSxvQ0FBVyxDQUFDLElBQUksRUFBRSxhQUFhLEVBQUU7WUFDdkQsVUFBVSxFQUFFLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO1lBQzNDLHVCQUF1QixFQUFFLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUMxRSxVQUFVLEVBQUUsOENBQXFCLENBQUMsZ0JBQWdCLENBQUMsd0JBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUNsRyxDQUFDLENBQUM7UUFFSCxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsSUFBSSxJQUFJLFlBQVksQ0FBQyxTQUFTLENBQUM7UUFFMUQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLHlCQUFRLENBQUMsSUFBSSxFQUFFLGtCQUFrQixFQUFFO1lBQzlELElBQUksRUFBRSw2QkFBWSxDQUFDLFVBQVUsQ0FBQzs7O2tCQUdsQixZQUFZOzBCQUNKLFlBQVksS0FBSyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsbUJBQW1COztpQ0FFNUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLEdBQUcsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsTUFBTSxHQUFHLEdBQUc7OztFQUd4SCxDQUFDO1NBQ0UsQ0FBQyxDQUFDO1FBRUgsTUFBTSxNQUFNLEdBQUcsSUFBSSxtQ0FBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzdDLE1BQU0sWUFBWSxHQUFHLElBQUksb0NBQW1CLENBQUMsSUFBSSxFQUFFLGNBQWMsQ0FBQzthQUMvRCxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQzthQUN0QixXQUFXLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQzthQUNyRCxXQUFXLENBQUMsV0FBVyxDQUFDO2FBQ3hCLFFBQVEsQ0FBQyxNQUFNLENBQUM7YUFDaEIsY0FBYyxDQUFDLCtCQUFjLENBQUMsY0FBYyxDQUFDO2FBQzdDLGFBQWEsQ0FBQyw4QkFBYSxDQUFDLGNBQWMsQ0FBQzthQUMzQyxRQUFRLENBQUMsSUFBSSxDQUFDO2FBQ2QsV0FBVyxDQUFDLDRCQUFXLENBQUMsaUJBQWlCLENBQUM7YUFDMUMsb0JBQW9CLENBQUMscUNBQW9CLENBQUMsaUJBQWlCLENBQUM7YUFDNUQsbUJBQW1CLENBQUMsb0NBQW1CLENBQUMsVUFBVSxDQUFDO2FBQ25ELG9CQUFvQixDQUFDO1lBQ3BCO2dCQUNFLFNBQVMsRUFBRSxrQ0FBaUIsQ0FBQyxjQUFjO2dCQUMzQyxRQUFRLEVBQUUsZ0JBQWdCO2FBQzNCO1NBQ0YsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRXRCLE1BQU0sTUFBTSxHQUFHLElBQUksc0NBQWdCLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbEQsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FDakQsVUFBVSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsMEJBQVksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRWxFLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQy9CLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQ3pCLENBQUM7Q0FDRjtBQTdERCx3Q0E2REMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbnN0cnVjdH0gZnJvbSBcImNvbnN0cnVjdHNcIlxuaW1wb3J0IHtDZXJ0aWZpY2F0ZSwgQ2VydGlmaWNhdGVWYWxpZGF0aW9ufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNlcnRpZmljYXRlbWFuYWdlclwiXG5pbXBvcnQge0h0dHBPcmlnaW59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2xvdWRmcm9udC1vcmlnaW5zXCI7XG5pbXBvcnQge1xuICBBbGxvd2VkTWV0aG9kcyxcbiAgQ2FjaGVkTWV0aG9kcyxcbiAgQ2FjaGVQb2xpY3ksIERpc3RyaWJ1dGlvbiwgRnVuY3Rpb24sIEZ1bmN0aW9uQ29kZSwgRnVuY3Rpb25FdmVudFR5cGUsXG4gIE9yaWdpblJlcXVlc3RQb2xpY3ksXG4gIFZpZXdlclByb3RvY29sUG9saWN5XG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2xvdWRmcm9udFwiO1xuaW1wb3J0IHtDbG91ZEZyb250VGFyZ2V0fSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXJvdXRlNTMtdGFyZ2V0c1wiO1xuaW1wb3J0IHtBUmVjb3JkLCBSZWNvcmRUYXJnZXR9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtcm91dGU1M1wiO1xuaW1wb3J0IHtFeHRlbmRlZENvbnN0cnVjdCwgRXh0ZW5kZWRDb25zdHJ1Y3RQcm9wcywgU3RhbmRhcmRUYWdzfSBmcm9tIFwiLi4vLi4vYXdzLWNka1wiO1xuaW1wb3J0IHtEb21haW5OYW1lfSBmcm9tIFwiLi4vLi4vYXdzLXJvdXRlNTNcIjtcbmltcG9ydCB7TGliU3RhbmRhcmRUYWdzfSBmcm9tIFwiLi4vLi4vdHJ1ZW1hcmtcIjtcbmltcG9ydCB7RGlzdHJpYnV0aW9uQnVpbGRlcn0gZnJvbSBcIi4uLy4uL2F3cy1jbG91ZGZyb250XCI7XG5cbmV4cG9ydCBlbnVtIFJlZGlyZWN0VHlwZSB7XG4gIFBlcm1hbmVudCA9IDMwMSxcbiAgVGVtcG9yYXJ5ID0gMzAyXG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgRG9tYWluUmVkaXJlY3QuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRG9tYWluUmVkaXJlY3RQcm9wcyBleHRlbmRzIEV4dGVuZGVkQ29uc3RydWN0UHJvcHMge1xuICAvKipcbiAgICogVGhlIHR5cGUgb2YgcmVkaXJlY3QgdG8gcGVyZm9ybS4gRGVmYXVsdHMgdG8gUGVybWFuZW50LlxuICAgKlxuICAgKiBAZGVmYXVsdCBQZXJtYW5lbnRcbiAgICovXG4gIHJlYWRvbmx5IHR5cGU/OiBSZWRpcmVjdFR5cGU7XG5cbiAgLyoqXG4gICAqIFRoZSBkb21haW4gbmFtZXMgdG8gcmVkaXJlY3QuXG4gICAqL1xuICByZWFkb25seSBkb21haW5OYW1lczogRG9tYWluTmFtZVtdO1xuXG4gIC8qKlxuICAgKiBUaGUgdGFyZ2V0IHRvIHJlZGlyZWN0IHRvLiBFeC4gaHR0cHM6Ly93d3cuZXhhbXBsZS5jb21cbiAgICovXG4gIHJlYWRvbmx5IHRhcmdldDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDb21tZW50IHRvIGxlYXZlIG9uIHRoZSBDbG91ZEZyb250IGRpc3RyaWJ1dGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGNvbW1lbnQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFwcGVuZHMgdGhlIHJlcXVlc3QgVVJJIHRvIHRoZSB0YXJnZXQuIERlZmF1bHQgaXMgZmFsc2UuXG4gICAqL1xuICByZWFkb25seSBhcHBlbmRVcmk/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBDbG91ZEZyb250IGRpc3RyaWJ1dGlvbiB0aGF0IHJlZGlyZWN0cyBhbiBlbnRpcmUgZG9tYWluIHRvIGEgdGFyZ2V0LlxuICovXG5leHBvcnQgY2xhc3MgRG9tYWluUmVkaXJlY3QgZXh0ZW5kcyBFeHRlbmRlZENvbnN0cnVjdCB7XG5cbiAgcmVhZG9ubHkgY2VydGlmaWNhdGU6IENlcnRpZmljYXRlO1xuICByZWFkb25seSBkaXN0cmlidXRpb246IERpc3RyaWJ1dGlvbjtcbiAgcmVhZG9ubHkgcmVjb3JkczogQVJlY29yZFtdO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBEb21haW5SZWRpcmVjdFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7c3RhbmRhcmRUYWdzOiBTdGFuZGFyZFRhZ3MubWVyZ2UocHJvcHMuc3RhbmRhcmRUYWdzLCBMaWJTdGFuZGFyZFRhZ3MpfSk7XG5cbiAgICBpZiAocHJvcHMuZG9tYWluTmFtZXMubGVuZ3RoIDwgMSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQXQgbGVhc3Qgb25lIGRvbWFpbiBuYW1lIGlzIHJlcXVpcmVkXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IGNlcnRpZmljYXRlID0gbmV3IENlcnRpZmljYXRlKHRoaXMsIFwiQ2VydGlmaWNhdGVcIiwge1xuICAgICAgZG9tYWluTmFtZTogcHJvcHMuZG9tYWluTmFtZXNbMF0udG9TdHJpbmcoKSxcbiAgICAgIHN1YmplY3RBbHRlcm5hdGl2ZU5hbWVzOiBwcm9wcy5kb21haW5OYW1lcy5zbGljZSgxKS5tYXAoZCA9PiBkLnRvU3RyaW5nKCkpLFxuICAgICAgdmFsaWRhdGlvbjogQ2VydGlmaWNhdGVWYWxpZGF0aW9uLmZyb21EbnNNdWx0aVpvbmUoRG9tYWluTmFtZS50b1pvbmVNYXAodGhpcywgcHJvcHMuZG9tYWluTmFtZXMpKVxuICAgIH0pO1xuXG4gICAgY29uc3QgcmVkaXJlY3RUeXBlID0gcHJvcHMudHlwZSB8fCBSZWRpcmVjdFR5cGUuUGVybWFuZW50O1xuXG4gICAgY29uc3QgcmVkaXJlY3RGdW5jdGlvbiA9IG5ldyBGdW5jdGlvbih0aGlzLCBcIlJlZGlyZWN0RnVuY3Rpb25cIiwge1xuICAgICAgY29kZTogRnVuY3Rpb25Db2RlLmZyb21JbmxpbmUoYFxuZnVuY3Rpb24gaGFuZGxlcihldmVudCkge1xuICByZXR1cm4ge1xuICAgIHN0YXR1c0NvZGU6ICR7cmVkaXJlY3RUeXBlfSxcbiAgICBzdGF0dXNEZXNjcmlwdGlvbjogXCIke3JlZGlyZWN0VHlwZSA9PT0gUmVkaXJlY3RUeXBlLlBlcm1hbmVudCA/IFwiUGVybWFuZW50bHkgTW92ZWRcIiA6IFwiVGVtcG9yYXJpbHkgTW92ZWRcIn1cIixcbiAgICBoZWFkZXJzOiB7XG4gICAgICAgIFwibG9jYXRpb25cIjogeyBcInZhbHVlXCI6ICR7cHJvcHMuYXBwZW5kVXJpID8gJ1wiJyArIHByb3BzLnRhcmdldCArICdcIiArIGV2ZW50LnJlcXVlc3QudXJpJyA6ICdcIicgKyBwcm9wcy50YXJnZXQgKyAnXCInfX1cbiAgICB9XG4gIH1cbn1gKVxuICAgIH0pO1xuXG4gICAgY29uc3Qgb3JpZ2luID0gbmV3IEh0dHBPcmlnaW4oXCJleGFtcGxlLmNvbVwiKTtcbiAgICBjb25zdCBkaXN0cmlidXRpb24gPSBuZXcgRGlzdHJpYnV0aW9uQnVpbGRlcih0aGlzLCBcIkRpc3RyaWJ1dGlvblwiKVxuICAgICAgLmNvbW1lbnQocHJvcHMuY29tbWVudClcbiAgICAgIC5kb21haW5OYW1lcyhwcm9wcy5kb21haW5OYW1lcy5tYXAoZCA9PiBkLnRvU3RyaW5nKCkpKVxuICAgICAgLmNlcnRpZmljYXRlKGNlcnRpZmljYXRlKVxuICAgICAgLmJlaGF2aW9yKG9yaWdpbilcbiAgICAgIC5hbGxvd2VkTWV0aG9kcyhBbGxvd2VkTWV0aG9kcy5BTExPV19HRVRfSEVBRClcbiAgICAgIC5jYWNoZWRNZXRob2RzKENhY2hlZE1ldGhvZHMuQ0FDSEVfR0VUX0hFQUQpXG4gICAgICAuY29tcHJlc3ModHJ1ZSlcbiAgICAgIC5jYWNoZVBvbGljeShDYWNoZVBvbGljeS5DQUNISU5HX09QVElNSVpFRClcbiAgICAgIC52aWV3ZXJQcm90b2NvbFBvbGljeShWaWV3ZXJQcm90b2NvbFBvbGljeS5SRURJUkVDVF9UT19IVFRQUylcbiAgICAgIC5vcmlnaW5SZXF1ZXN0UG9saWN5KE9yaWdpblJlcXVlc3RQb2xpY3kuQUxMX1ZJRVdFUilcbiAgICAgIC5mdW5jdGlvbkFzc29jaWF0aW9ucyhbXG4gICAgICAgIHtcbiAgICAgICAgICBldmVudFR5cGU6IEZ1bmN0aW9uRXZlbnRUeXBlLlZJRVdFUl9SRVFVRVNULFxuICAgICAgICAgIGZ1bmN0aW9uOiByZWRpcmVjdEZ1bmN0aW9uXG4gICAgICAgIH1cbiAgICAgIF0pLnRvRGlzdHJpYnV0aW9uKCk7XG5cbiAgICBjb25zdCB0YXJnZXQgPSBuZXcgQ2xvdWRGcm9udFRhcmdldChkaXN0cmlidXRpb24pO1xuICAgIGNvbnN0IHJlY29yZHMgPSBwcm9wcy5kb21haW5OYW1lcy5tYXAoZG9tYWluTmFtZSA9PlxuICAgICAgZG9tYWluTmFtZS5jcmVhdGVBUmVjb3JkKHRoaXMsIFJlY29yZFRhcmdldC5mcm9tQWxpYXModGFyZ2V0KSkpO1xuXG4gICAgdGhpcy5jZXJ0aWZpY2F0ZSA9IGNlcnRpZmljYXRlO1xuICAgIHRoaXMuZGlzdHJpYnV0aW9uID0gZGlzdHJpYnV0aW9uO1xuICAgIHRoaXMucmVjb3JkcyA9IHJlY29yZHM7XG4gIH1cbn1cbiJdfQ==
@@ -5,8 +5,8 @@ const constructs_1 = require("constructs");
5
5
  const aws_cloudfront_1 = require("aws-cdk-lib/aws-cloudfront");
6
6
  const aws_route53_1 = require("aws-cdk-lib/aws-route53");
7
7
  const aws_route53_targets_1 = require("aws-cdk-lib/aws-route53-targets");
8
- const index_1 = require("../../aws-route53/index");
9
- const index_2 = require("../../aws-cloudfront/index");
8
+ const aws_route53_2 = require("../../aws-route53");
9
+ const aws_cloudfront_2 = require("../../aws-cloudfront");
10
10
  /**
11
11
  * Creates a new CloudFront distribution for WordPress.
12
12
  */
@@ -17,56 +17,56 @@ class WordPressDistribution extends constructs_1.Construct {
17
17
  const hostedDomainNames = [];
18
18
  props.domainNames.forEach(name => {
19
19
  if (name.hostedZone !== undefined) {
20
- hostedDomainNames.push(index_1.DomainName.fromFqdn(name.domainName, name.hostedZone));
20
+ hostedDomainNames.push(aws_route53_2.DomainName.fromFqdn(name.domainName, name.hostedZone));
21
21
  }
22
22
  });
23
23
  let certificate = props.certificate;
24
24
  if (certificate === undefined) {
25
- certificate = index_1.DomainName.createCertificate(this, "Certificate", hostedDomainNames);
25
+ certificate = aws_route53_2.DomainName.createCertificate(this, "Certificate", hostedDomainNames);
26
26
  }
27
27
  const originRequestPolicy = new aws_cloudfront_1.OriginRequestPolicy(this, "AllViewerPlus", {
28
28
  cookieBehavior: aws_cloudfront_1.OriginRequestCookieBehavior.all(),
29
29
  headerBehavior: aws_cloudfront_1.OriginRequestHeaderBehavior.all("CloudFront-Forwarded-Proto"),
30
30
  queryStringBehavior: aws_cloudfront_1.OriginRequestQueryStringBehavior.all()
31
31
  });
32
- const builder = index_2.DistributionBuilder.fromOrigin(props.origin)
32
+ const builder = new aws_cloudfront_2.DistributionBuilder(this, "Default")
33
33
  .httpVersion((_a = props.httpVersion) !== null && _a !== void 0 ? _a : aws_cloudfront_1.HttpVersion.HTTP2_AND_3)
34
34
  .minimumProtocolVersion((_b = props.minimumProtocolVersion) !== null && _b !== void 0 ? _b : aws_cloudfront_1.SecurityPolicyProtocol.TLS_V1_2_2021)
35
35
  .enableIpv6((_c = props.enableIpv6) !== null && _c !== void 0 ? _c : true)
36
36
  .priceClass((_d = props.priceClass) !== null && _d !== void 0 ? _d : aws_cloudfront_1.PriceClass.PRICE_CLASS_ALL)
37
37
  .domainNames(props.domainNames.map(domainName => domainName.domainName))
38
- .certificate(certificate);
39
- builder.defaultBehavior()
38
+ .certificate(certificate)
39
+ .behavior(props.origin)
40
40
  .viewerProtocolPolicy(aws_cloudfront_1.ViewerProtocolPolicy.REDIRECT_TO_HTTPS)
41
41
  .compress(true)
42
42
  .allowedMethods(aws_cloudfront_1.AllowedMethods.ALLOW_ALL)
43
43
  .originRequestPolicy(originRequestPolicy)
44
- .cachePolicy(aws_cloudfront_1.CachePolicy.CACHING_DISABLED);
45
- builder.additionalBehavior("/wp-includes/*", props.origin)
44
+ .cachePolicy(aws_cloudfront_1.CachePolicy.CACHING_DISABLED)
45
+ .behavior(props.origin, "/wp-includes/*")
46
46
  .viewerProtocolPolicy(aws_cloudfront_1.ViewerProtocolPolicy.REDIRECT_TO_HTTPS)
47
47
  .compress(true)
48
48
  .allowedMethods(aws_cloudfront_1.AllowedMethods.ALLOW_GET_HEAD_OPTIONS)
49
49
  .originRequestPolicy(originRequestPolicy)
50
- .cachePolicy(aws_cloudfront_1.CachePolicy.CACHING_DISABLED);
51
- builder.additionalBehavior("/wp-content/*", props.origin)
50
+ .cachePolicy(aws_cloudfront_1.CachePolicy.CACHING_DISABLED)
51
+ .behavior(props.origin, "/wp-content/*")
52
52
  .viewerProtocolPolicy(aws_cloudfront_1.ViewerProtocolPolicy.REDIRECT_TO_HTTPS)
53
53
  .compress(true)
54
54
  .allowedMethods(aws_cloudfront_1.AllowedMethods.ALLOW_GET_HEAD_OPTIONS)
55
55
  .originRequestPolicy(originRequestPolicy)
56
- .cachePolicy(aws_cloudfront_1.CachePolicy.CACHING_DISABLED);
57
- builder.additionalBehavior("/wp-login.php", props.origin)
56
+ .cachePolicy(aws_cloudfront_1.CachePolicy.CACHING_DISABLED)
57
+ .behavior(props.origin, "/wp-login.php")
58
58
  .viewerProtocolPolicy(aws_cloudfront_1.ViewerProtocolPolicy.REDIRECT_TO_HTTPS)
59
59
  .compress(true)
60
60
  .allowedMethods(aws_cloudfront_1.AllowedMethods.ALLOW_ALL)
61
61
  .originRequestPolicy(originRequestPolicy)
62
- .cachePolicy(aws_cloudfront_1.CachePolicy.CACHING_DISABLED);
63
- builder.additionalBehavior("/wp-admin/*", props.origin)
62
+ .cachePolicy(aws_cloudfront_1.CachePolicy.CACHING_DISABLED)
63
+ .behavior(props.origin, "/wp-admin/*")
64
64
  .viewerProtocolPolicy(aws_cloudfront_1.ViewerProtocolPolicy.REDIRECT_TO_HTTPS)
65
65
  .compress(true)
66
66
  .allowedMethods(aws_cloudfront_1.AllowedMethods.ALLOW_ALL)
67
67
  .originRequestPolicy(originRequestPolicy)
68
68
  .cachePolicy(aws_cloudfront_1.CachePolicy.CACHING_DISABLED);
69
- const distribution = builder.toDistribution(this, "Default");
69
+ const distribution = new aws_cloudfront_1.Distribution(this, "Default", builder.build());
70
70
  const dnsRecords = [];
71
71
  if ((_e = props.createDnsRecords) !== null && _e !== void 0 ? _e : true) {
72
72
  const recordTarget = aws_route53_1.RecordTarget.fromAlias(new aws_route53_targets_1.CloudFrontTarget(distribution));
@@ -79,4 +79,4 @@ class WordPressDistribution extends constructs_1.Construct {
79
79
  }
80
80
  }
81
81
  exports.WordPressDistribution = WordPressDistribution;
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29yZC1wcmVzcy1kaXN0cmlidXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ3b3JkLXByZXNzLWRpc3RyaWJ1dGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FBcUM7QUFDckMsK0RBYW9DO0FBR3BDLHlEQUEyRTtBQUMzRSx5RUFBaUU7QUFDakUsbURBQW1EO0FBQ25ELHNEQUErRDtBQWdHL0Q7O0dBRUc7QUFDSCxNQUFhLHFCQUFzQixTQUFRLHNCQUFTO0lBS2xELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBaUM7O1FBQ3pFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxpQkFBaUIsR0FBaUIsRUFBRSxDQUFDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQy9CLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxTQUFTLEVBQUU7Z0JBQ2pDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxrQkFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO2FBQy9FO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLFdBQVcsR0FBMkMsS0FBSyxDQUFDLFdBQVcsQ0FBQztRQUM1RSxJQUFJLFdBQVcsS0FBSyxTQUFTLEVBQUU7WUFDN0IsV0FBVyxHQUFHLGtCQUFVLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1NBQ3BGO1FBRUQsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLG9DQUFtQixDQUFDLElBQUksRUFBRSxlQUFlLEVBQUU7WUFDekUsY0FBYyxFQUFFLDRDQUEyQixDQUFDLEdBQUcsRUFBRTtZQUNqRCxjQUFjLEVBQUUsNENBQTJCLENBQUMsR0FBRyxDQUFDLDRCQUE0QixDQUFDO1lBQzdFLG1CQUFtQixFQUFF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QUMsWUFBWSxDQUFDLENBQUMsQ0FBQztZQUNoRixpQkFBaUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQy9CLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQztZQUMxRCxDQUFDLENBQUMsQ0FBQztTQUNKO1FBRUQsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7UUFDakMsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7SUFDL0IsQ0FBQztDQUNGO0FBbEZELHNEQWtGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29uc3RydWN0fSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHtcbiAgQWxsb3dlZE1ldGhvZHMsXG4gIENhY2hlUG9saWN5LFxuICBEaXN0cmlidXRpb24sXG4gIEh0dHBWZXJzaW9uLFxuICBJT3JpZ2luLFxuICBPcmlnaW5SZXF1ZXN0Q29va2llQmVoYXZpb3IsXG4gIE9yaWdpblJlcXVlc3RIZWFkZXJCZWhhdmlvcixcbiAgT3JpZ2luUmVxdWVzdFBvbGljeSxcbiAgT3JpZ2luUmVxdWVzdFF1ZXJ5U3RyaW5nQmVoYXZpb3IsXG4gIFByaWNlQ2xhc3MsXG4gIFNlY3VyaXR5UG9saWN5UHJvdG9jb2wsXG4gIFZpZXdlclByb3RvY29sUG9saWN5XG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2xvdWRmcm9udFwiO1xuaW1wb3J0IHtEdXJhdGlvbn0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQge0NlcnRpZmljYXRlLCBJQ2VydGlmaWNhdGV9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2VydGlmaWNhdGVtYW5hZ2VyXCI7XG5pbXBvcnQge0FSZWNvcmQsIElIb3N0ZWRab25lLCBSZWNvcmRUYXJnZXR9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtcm91dGU1M1wiO1xuaW1wb3J0IHtDbG91ZEZyb250VGFyZ2V0fSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXJvdXRlNTMtdGFyZ2V0c1wiO1xuaW1wb3J0IHtEb21haW5OYW1lfSBmcm9tIFwiLi4vLi4vYXdzLXJvdXRlNTMvaW5kZXhcIjtcbmltcG9ydCB7RGlzdHJpYnV0aW9uQnVpbGRlcn0gZnJvbSBcIi4uLy4uL2F3cy1jbG91ZGZyb250L2luZGV4XCI7XG5cbi8qKlxuICogRG9tYWluIG5hbWUgcHJvcGVydGllcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXb3JkUHJlc3NEb21haW5OYW1lUHJvcHMge1xuXG4gIC8qKlxuICAgKiBEb21haW4gbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgZG9tYWluTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBab25lIGZvciB0aGUgZG9tYWluIG5hbWUuXG4gICAqL1xuICByZWFkb25seSBob3N0ZWRab25lPzogc3RyaW5nIHwgSUhvc3RlZFpvbmU7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgV29yZFByZXNzRGlzdHJpYnV0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdvcmRQcmVzc0Rpc3RyaWJ1dGlvblByb3BzIHtcblxuICAvKipcbiAgICogT3JpZ2luIHRvIHNlbmQgcmVxdWVzdHMgdG8uXG4gICAqL1xuICByZWFkb25seSBvcmlnaW46IElPcmlnaW47XG5cbiAgLyoqXG4gICAqIERvbWFpbiBuYW1lcyBtYXBwZWQgdG8gdGhpcyBkaXN0cmlidXRpb24uXG4gICAqL1xuICByZWFkb25seSBkb21haW5OYW1lczogV29yZFByZXNzRG9tYWluTmFtZVByb3BzW107XG5cbiAgLyoqXG4gICAqIFRoZSBjZXJ0aWZpY2F0ZSB0byB1c2Ugb24gdGhlIGRpc3RyaWJ1dGlvbi5cbiAgICogSWYgb25lIGlzIG5vdCBwcm92aWRlZCwgb25lIGlzIGNyZWF0ZWQgdXNpbmcgdGhlIGRvbWFpbk5hbWVzIHByb3ZpZGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgY2VydGlmaWNhdGU/OiBJQ2VydGlmaWNhdGVcblxuICAvKipcbiAgICogQ3JlYXRlIEROUyByZWNvcmRzIGZvciB0aGUgZGlzdHJpYnV0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZURuc1JlY29yZHM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBIVFRQIHZlcnNpb25zIHRvIGFsbG93XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gSHR0cFZlcnNpb24uSFRUUDJfQU5EXzNcbiAgICovXG4gIHJlYWRvbmx5IGh0dHBWZXJzaW9uPzogSHR0cFZlcnNpb247XG5cbiAgLyoqXG4gICAqIFNlY3VyaXR5IHByb3RvY29sIHRvIGVuZm9yY2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gU2VjdXJpdHlQb2xpY3lQcm90b2NvbC5UTFNfVjFfMl8yMDIxXG4gICAqL1xuICByZWFkb25seSBtaW5pbXVtUHJvdG9jb2xWZXJzaW9uPzogU2VjdXJpdHlQb2xpY3lQcm90b2NvbDtcblxuICAvKipcbiAgICogRW5hYmxlcyBJUHY2XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlSXB2Nj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFByaWNlIGNsYXNzIHRvIHVzZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBQcmljZUNsYXNzLlBSSUNFX0NMQVNTX0FMTFxuICAgKi9cbiAgcmVhZG9ubHkgcHJpY2VDbGFzcz86IFByaWNlQ2xhc3M7XG5cbiAgLyoqXG4gICAqIE1heCBUVEwgdG8gYXBwbHkgdG8gdGhlIGRlZmF1bHQgYmVoYXZpb3IuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRHVyYXRpb24uZGF5cygxKVxuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdE1heFR0bD86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBNYXggVFRMIHRvIGFwcGx5IHRvIHRoZSBzdGF0aWMgYmVoYXZpb3JzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIER1cmF0aW9uLmRheXMoMSlcbiAgICovXG4gIHJlYWRvbmx5IHN0YXRpY01heFR0bD86IER1cmF0aW9uXG5cbiAgLyoqXG4gICAqIE1heCBUVEwgdG8gYXBwbHkgdG8gdGhlIGR5bmFtaWMgYmVoYXZpb3JzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIER1cmF0aW9uLnNlY29uZHMoMClcbiAgICovXG4gIHJlYWRvbmx5IGR5bmFtaWNNYXhUdGw/OiBEdXJhdGlvbjtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IENsb3VkRnJvbnQgZGlzdHJpYnV0aW9uIGZvciBXb3JkUHJlc3MuXG4gKi9cbmV4cG9ydCBjbGFzcyBXb3JkUHJlc3NEaXN0cmlidXRpb24gZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuXG4gIHJlYWRvbmx5IGRpc3RyaWJ1dGlvbjogRGlzdHJpYnV0aW9uO1xuICByZWFkb25seSBkbnNSZWNvcmRzOiBBUmVjb3JkW107XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFdvcmRQcmVzc0Rpc3RyaWJ1dGlvblByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IGhvc3RlZERvbWFpbk5hbWVzOiBEb21haW5OYW1lW10gPSBbXTtcbiAgICBwcm9wcy5kb21haW5OYW1lcy5mb3JFYWNoKG5hbWUgPT4ge1xuICAgICAgaWYgKG5hbWUuaG9zdGVkWm9uZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGhvc3RlZERvbWFpbk5hbWVzLnB1c2goRG9tYWluTmFtZS5mcm9tRnFkbihuYW1lLmRvbWFpbk5hbWUsIG5hbWUuaG9zdGVkWm9uZSkpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgbGV0IGNlcnRpZmljYXRlOiBJQ2VydGlmaWNhdGUgfCBDZXJ0aWZpY2F0ZSB8IHVuZGVmaW5lZCA9IHByb3BzLmNlcnRpZmljYXRlO1xuICAgIGlmIChjZXJ0aWZpY2F0ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBjZXJ0aWZpY2F0ZSA9IERvbWFpbk5hbWUuY3JlYXRlQ2VydGlmaWNhdGUodGhpcywgXCJDZXJ0aWZpY2F0ZVwiLCBob3N0ZWREb21haW5OYW1lcyk7XG4gICAgfVxuXG4gICAgY29uc3Qgb3JpZ2luUmVxdWVzdFBvbGljeSA9IG5ldyBPcmlnaW5SZXF1ZXN0UG9saWN5KHRoaXMsIFwiQWxsVmlld2VyUGx1c1wiLCB7XG4gICAgICBjb29raWVCZWhhdmlvcjogT3JpZ2luUmVxdWVzdENvb2tpZUJlaGF2aW9yLmFsbCgpLFxuICAgICAgaGVhZGVyQmVoYXZpb3I6IE9yaWdpblJlcXVlc3RIZWFkZXJCZWhhdmlvci5hbGwoXCJDbG91ZEZyb250LUZvcndhcmRlZC1Qcm90b1wiKSxcbiAgICAgIHF1ZXJ5U3RyaW5nQmVoYXZpb3I6IE9yaWdpblJlcXVlc3RRdWVyeVN0cmluZ0JlaGF2aW9yLmFsbCgpXG4gICAgfSk7XG5cbiAgICBjb25zdCBidWlsZGVyID0gRGlzdHJpYnV0aW9uQnVpbGRlci5mcm9tT3JpZ2luKHByb3BzLm9yaWdpbilcbiAgICAgIC5odHRwVmVyc2lvbihwcm9wcy5odHRwVmVyc2lvbiA/PyBIdHRwVmVyc2lvbi5IVFRQMl9BTkRfMylcbiAgICAgIC5taW5pbXVtUHJvdG9jb2xWZXJzaW9uKHByb3BzLm1pbmltdW1Qcm90b2NvbFZlcnNpb24gPz8gU2VjdXJpdHlQb2xpY3lQcm90b2NvbC5UTFNfVjFfMl8yMDIxKVxuICAgICAgLmVuYWJsZUlwdjYocHJvcHMuZW5hYmxlSXB2NiA/PyB0cnVlKVxuICAgICAgLnByaWNlQ2xhc3MocHJvcHMucHJpY2VDbGFzcyA/PyBQcmljZUNsYXNzLlBSSUNFX0NMQVNTX0FMTClcbiAgICAgIC5kb21haW5OYW1lcyhwcm9wcy5kb21haW5OYW1lcy5tYXAoZG9tYWluTmFtZSA9PiBkb21haW5OYW1lLmRvbWFpbk5hbWUpKVxuICAgICAgLmNlcnRpZmljYXRlKGNlcnRpZmljYXRlKTtcblxuICAgIGJ1aWxkZXIuZGVmYXVsdEJlaGF2aW9yKClcbiAgICAgIC52aWV3ZXJQcm90b2NvbFBvbGljeShWaWV3ZXJQcm90b2NvbFBvbGljeS5SRURJUkVDVF9UT19IVFRQUylcbiAgICAgIC5jb21wcmVzcyh0cnVlKVxuICAgICAgLmFsbG93ZWRNZXRob2RzKEFsbG93ZWRNZXRob2RzLkFMTE9XX0FMTClcbiAgICAgIC5vcmlnaW5SZXF1ZXN0UG9saWN5KG9yaWdpblJlcXVlc3RQb2xpY3kpXG4gICAgICAuY2FjaGVQb2xpY3koQ2FjaGVQb2xpY3kuQ0FDSElOR19ESVNBQkxFRCk7XG5cbiAgICBidWlsZGVyLmFkZGl0aW9uYWxCZWhhdmlvcihcIi93cC1pbmNsdWRlcy8qXCIsIHByb3BzLm9yaWdpbilcbiAgICAgIC52aWV3ZXJQcm90b2NvbFBvbGljeShWaWV3ZXJQcm90b2NvbFBvbGljeS5SRURJUkVDVF9UT19IVFRQUylcbiAgICAgIC5jb21wcmVzcyh0cnVlKVxuICAgICAgLmFsbG93ZWRNZXRob2RzKEFsbG93ZWRNZXRob2RzLkFMTE9XX0dFVF9IRUFEX09QVElPTlMpXG4gICAgICAub3JpZ2luUmVxdWVzdFBvbGljeShvcmlnaW5SZXF1ZXN0UG9saWN5KVxuICAgICAgLmNhY2hlUG9saWN5KENhY2hlUG9saWN5LkNBQ0hJTkdfRElTQUJMRUQpO1xuXG4gICAgYnVpbGRlci5hZGRpdGlvbmFsQmVoYXZpb3IoXCIvd3AtY29udGVudC8qXCIsIHByb3BzLm9yaWdpbilcbiAgICAgIC52aWV3ZXJQcm90b2NvbFBvbGljeShWaWV3ZXJQcm90b2NvbFBvbGljeS5SRURJUkVDVF9UT19IVFRQUylcbiAgICAgIC5jb21wcmVzcyh0cnVlKVxuICAgICAgLmFsbG93ZWRNZXRob2RzKEFsbG93ZWRNZXRob2RzLkFMTE9XX0dFVF9IRUFEX09QVElPTlMpXG4gICAgICAub3JpZ2luUmVxdWVzdFBvbGljeShvcmlnaW5SZXF1ZXN0UG9saWN5KVxuICAgICAgLmNhY2hlUG9saWN5KENhY2hlUG9saWN5LkNBQ0hJTkdfRElTQUJMRUQpO1xuXG4gICAgYnVpbGRlci5hZGRpdGlvbmFsQmVoYXZpb3IoXCIvd3AtbG9naW4ucGhwXCIsIHByb3BzLm9yaWdpbilcbiAgICAgIC52aWV3ZXJQcm90b2NvbFBvbGljeShWaWV3ZXJQcm90b2NvbFBvbGljeS5SRURJUkVDVF9UT19IVFRQUylcbiAgICAgIC5jb21wcmVzcyh0cnVlKVxuICAgICAgLmFsbG93ZWRNZXRob2RzKEFsbG93ZWRNZXRob2RzLkFMTE9XX0FMTClcbiAgICAgIC5vcmlnaW5SZXF1ZXN0UG9saWN5KG9yaWdpblJlcXVlc3RQb2xpY3kpXG4gICAgICAuY2FjaGVQb2xpY3koQ2FjaGVQb2xpY3kuQ0FDSElOR19ESVNBQkxFRCk7XG5cbiAgICBidWlsZGVyLmFkZGl0aW9uYWxCZWhhdmlvcihcIi93cC1hZG1pbi8qXCIsIHByb3BzLm9yaWdpbilcbiAgICAgIC52aWV3ZXJQcm90b2NvbFBvbGljeShWaWV3ZXJQcm90b2NvbFBvbGljeS5SRURJUkVDVF9UT19IVFRQUylcbiAgICAgIC5jb21wcmVzcyh0cnVlKVxuICAgICAgLmFsbG93ZWRNZXRob2RzKEFsbG93ZWRNZXRob2RzLkFMTE9XX0FMTClcbiAgICAgIC5vcmlnaW5SZXF1ZXN0UG9saWN5KG9yaWdpblJlcXVlc3RQb2xpY3kpXG4gICAgICAuY2FjaGVQb2xpY3koQ2FjaGVQb2xpY3kuQ0FDSElOR19ESVNBQkxFRCk7XG5cbiAgICBjb25zdCBkaXN0cmlidXRpb24gPSBidWlsZGVyLnRvRGlzdHJpYnV0aW9uKHRoaXMsIFwiRGVmYXVsdFwiKTtcblxuICAgIGNvbnN0IGRuc1JlY29yZHM6IEFSZWNvcmRbXSA9IFtdO1xuICAgIGlmIChwcm9wcy5jcmVhdGVEbnNSZWNvcmRzID8/IHRydWUpIHtcbiAgICAgIGNvbnN0IHJlY29yZFRhcmdldCA9IFJlY29yZFRhcmdldC5mcm9tQWxpYXMobmV3IENsb3VkRnJvbnRUYXJnZXQoZGlzdHJpYnV0aW9uKSk7XG4gICAgICBob3N0ZWREb21haW5OYW1lcy5mb3JFYWNoKG5hbWUgPT4ge1xuICAgICAgICBkbnNSZWNvcmRzLnB1c2gobmFtZS5jcmVhdGVBUmVjb3JkKHRoaXMsIHJlY29yZFRhcmdldCkpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5kaXN0cmlidXRpb24gPSBkaXN0cmlidXRpb247XG4gICAgdGhpcy5kbnNSZWNvcmRzID0gZG5zUmVjb3JkcztcbiAgfVxufVxuIl19
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29yZC1wcmVzcy1kaXN0cmlidXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ3b3JkLXByZXNzLWRpc3RyaWJ1dGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FBcUM7QUFDckMsK0RBYW9DO0FBR3BDLHlEQUEyRTtBQUMzRSx5RUFBaUU7QUFDakUsbURBQTZDO0FBQzdDLHlEQUF5RDtBQWdHekQ7O0dBRUc7QUFDSCxNQUFhLHFCQUFzQixTQUFRLHNCQUFTO0lBS2xELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBaUM7O1FBQ3pFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxpQkFBaUIsR0FBaUIsRUFBRSxDQUFDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQy9CLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxTQUFTLEVBQUU7Z0JBQ2pDLGlCQUFpQixDQUFDLElBQUksQ0FBQyx3QkFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO2FBQy9FO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLFdBQVcsR0FBMkMsS0FBSyxDQUFDLFdBQVcsQ0FBQztRQUM1RSxJQUFJLFdBQVcsS0FBSyxTQUFTLEVBQUU7WUFDN0IsV0FBVyxHQUFHLHdCQUFVLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1NBQ3BGO1FBRUQsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLG9DQUFtQixDQUFDLElBQUksRUFBRSxlQUFlLEVBQUU7WUFDekUsY0FBYyxFQUFFLDRDQUEyQixDQUFDLEdBQUcsRUFBRTtZQUNqRCxjQUFjLEVBQUUsNENBQTJCLENBQUMsR0FBRyxDQUFDLDRCQUE0QixDQUFDO1lBQzdFLG1CQUFtQixFQUFF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QUFDLElBQUksQ0FBQyxFQUFFO2dCQUMvQixVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUM7WUFDMUQsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUVELElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQy9CLENBQUM7Q0FDRjtBQW5GRCxzREFtRkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbnN0cnVjdH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7XG4gIEFsbG93ZWRNZXRob2RzLFxuICBDYWNoZVBvbGljeSxcbiAgRGlzdHJpYnV0aW9uLFxuICBIdHRwVmVyc2lvbixcbiAgSU9yaWdpbixcbiAgT3JpZ2luUmVxdWVzdENvb2tpZUJlaGF2aW9yLFxuICBPcmlnaW5SZXF1ZXN0SGVhZGVyQmVoYXZpb3IsXG4gIE9yaWdpblJlcXVlc3RQb2xpY3ksXG4gIE9yaWdpblJlcXVlc3RRdWVyeVN0cmluZ0JlaGF2aW9yLFxuICBQcmljZUNsYXNzLFxuICBTZWN1cml0eVBvbGljeVByb3RvY29sLFxuICBWaWV3ZXJQcm90b2NvbFBvbGljeVxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3VkZnJvbnRcIjtcbmltcG9ydCB7RHVyYXRpb259IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHtDZXJ0aWZpY2F0ZSwgSUNlcnRpZmljYXRlfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNlcnRpZmljYXRlbWFuYWdlclwiO1xuaW1wb3J0IHtBUmVjb3JkLCBJSG9zdGVkWm9uZSwgUmVjb3JkVGFyZ2V0fSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXJvdXRlNTNcIjtcbmltcG9ydCB7Q2xvdWRGcm9udFRhcmdldH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1yb3V0ZTUzLXRhcmdldHNcIjtcbmltcG9ydCB7RG9tYWluTmFtZX0gZnJvbSBcIi4uLy4uL2F3cy1yb3V0ZTUzXCI7XG5pbXBvcnQge0Rpc3RyaWJ1dGlvbkJ1aWxkZXJ9IGZyb20gXCIuLi8uLi9hd3MtY2xvdWRmcm9udFwiO1xuXG4vKipcbiAqIERvbWFpbiBuYW1lIHByb3BlcnRpZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV29yZFByZXNzRG9tYWluTmFtZVByb3BzIHtcblxuICAvKipcbiAgICogRG9tYWluIG5hbWVcbiAgICovXG4gIHJlYWRvbmx5IGRvbWFpbk5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogWm9uZSBmb3IgdGhlIGRvbWFpbiBuYW1lLlxuICAgKi9cbiAgcmVhZG9ubHkgaG9zdGVkWm9uZT86IHN0cmluZyB8IElIb3N0ZWRab25lO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIFdvcmRQcmVzc0Rpc3RyaWJ1dGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXb3JkUHJlc3NEaXN0cmlidXRpb25Qcm9wcyB7XG5cbiAgLyoqXG4gICAqIE9yaWdpbiB0byBzZW5kIHJlcXVlc3RzIHRvLlxuICAgKi9cbiAgcmVhZG9ubHkgb3JpZ2luOiBJT3JpZ2luO1xuXG4gIC8qKlxuICAgKiBEb21haW4gbmFtZXMgbWFwcGVkIHRvIHRoaXMgZGlzdHJpYnV0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgZG9tYWluTmFtZXM6IFdvcmRQcmVzc0RvbWFpbk5hbWVQcm9wc1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgY2VydGlmaWNhdGUgdG8gdXNlIG9uIHRoZSBkaXN0cmlidXRpb24uXG4gICAqIElmIG9uZSBpcyBub3QgcHJvdmlkZWQsIG9uZSBpcyBjcmVhdGVkIHVzaW5nIHRoZSBkb21haW5OYW1lcyBwcm92aWRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGNlcnRpZmljYXRlPzogSUNlcnRpZmljYXRlXG5cbiAgLyoqXG4gICAqIENyZWF0ZSBETlMgcmVjb3JkcyBmb3IgdGhlIGRpc3RyaWJ1dGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB0cnVlXG4gICAqL1xuICByZWFkb25seSBjcmVhdGVEbnNSZWNvcmRzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogSFRUUCB2ZXJzaW9ucyB0byBhbGxvd1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIEh0dHBWZXJzaW9uLkhUVFAyX0FORF8zXG4gICAqL1xuICByZWFkb25seSBodHRwVmVyc2lvbj86IEh0dHBWZXJzaW9uO1xuXG4gIC8qKlxuICAgKiBTZWN1cml0eSBwcm90b2NvbCB0byBlbmZvcmNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFNlY3VyaXR5UG9saWN5UHJvdG9jb2wuVExTX1YxXzJfMjAyMVxuICAgKi9cbiAgcmVhZG9ubHkgbWluaW11bVByb3RvY29sVmVyc2lvbj86IFNlY3VyaXR5UG9saWN5UHJvdG9jb2w7XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgSVB2NlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZUlwdjY/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBQcmljZSBjbGFzcyB0byB1c2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gUHJpY2VDbGFzcy5QUklDRV9DTEFTU19BTExcbiAgICovXG4gIHJlYWRvbmx5IHByaWNlQ2xhc3M/OiBQcmljZUNsYXNzO1xuXG4gIC8qKlxuICAgKiBNYXggVFRMIHRvIGFwcGx5IHRvIHRoZSBkZWZhdWx0IGJlaGF2aW9yLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIER1cmF0aW9uLmRheXMoMSlcbiAgICovXG4gIHJlYWRvbmx5IGRlZmF1bHRNYXhUdGw/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogTWF4IFRUTCB0byBhcHBseSB0byB0aGUgc3RhdGljIGJlaGF2aW9ycy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBEdXJhdGlvbi5kYXlzKDEpXG4gICAqL1xuICByZWFkb25seSBzdGF0aWNNYXhUdGw/OiBEdXJhdGlvblxuXG4gIC8qKlxuICAgKiBNYXggVFRMIHRvIGFwcGx5IHRvIHRoZSBkeW5hbWljIGJlaGF2aW9ycy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBEdXJhdGlvbi5zZWNvbmRzKDApXG4gICAqL1xuICByZWFkb25seSBkeW5hbWljTWF4VHRsPzogRHVyYXRpb247XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIG5ldyBDbG91ZEZyb250IGRpc3RyaWJ1dGlvbiBmb3IgV29yZFByZXNzLlxuICovXG5leHBvcnQgY2xhc3MgV29yZFByZXNzRGlzdHJpYnV0aW9uIGV4dGVuZHMgQ29uc3RydWN0IHtcblxuICByZWFkb25seSBkaXN0cmlidXRpb246IERpc3RyaWJ1dGlvbjtcbiAgcmVhZG9ubHkgZG5zUmVjb3JkczogQVJlY29yZFtdO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBXb3JkUHJlc3NEaXN0cmlidXRpb25Qcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCBob3N0ZWREb21haW5OYW1lczogRG9tYWluTmFtZVtdID0gW107XG4gICAgcHJvcHMuZG9tYWluTmFtZXMuZm9yRWFjaChuYW1lID0+IHtcbiAgICAgIGlmIChuYW1lLmhvc3RlZFpvbmUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBob3N0ZWREb21haW5OYW1lcy5wdXNoKERvbWFpbk5hbWUuZnJvbUZxZG4obmFtZS5kb21haW5OYW1lLCBuYW1lLmhvc3RlZFpvbmUpKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGxldCBjZXJ0aWZpY2F0ZTogSUNlcnRpZmljYXRlIHwgQ2VydGlmaWNhdGUgfCB1bmRlZmluZWQgPSBwcm9wcy5jZXJ0aWZpY2F0ZTtcbiAgICBpZiAoY2VydGlmaWNhdGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgY2VydGlmaWNhdGUgPSBEb21haW5OYW1lLmNyZWF0ZUNlcnRpZmljYXRlKHRoaXMsIFwiQ2VydGlmaWNhdGVcIiwgaG9zdGVkRG9tYWluTmFtZXMpO1xuICAgIH1cblxuICAgIGNvbnN0IG9yaWdpblJlcXVlc3RQb2xpY3kgPSBuZXcgT3JpZ2luUmVxdWVzdFBvbGljeSh0aGlzLCBcIkFsbFZpZXdlclBsdXNcIiwge1xuICAgICAgY29va2llQmVoYXZpb3I6IE9yaWdpblJlcXVlc3RDb29raWVCZWhhdmlvci5hbGwoKSxcbiAgICAgIGhlYWRlckJlaGF2aW9yOiBPcmlnaW5SZXF1ZXN0SGVhZGVyQmVoYXZpb3IuYWxsKFwiQ2xvdWRGcm9udC1Gb3J3YXJkZWQtUHJvdG9cIiksXG4gICAgICBxdWVyeVN0cmluZ0JlaGF2aW9yOiBPcmlnaW5SZXF1ZXN0UXVlcnlTdHJpbmdCZWhhdmlvci5hbGwoKVxuICAgIH0pO1xuXG4gICAgY29uc3QgYnVpbGRlciA9IG5ldyBEaXN0cmlidXRpb25CdWlsZGVyKHRoaXMsIFwiRGVmYXVsdFwiKVxuICAgICAgLmh0dHBWZXJzaW9uKHByb3BzLmh0dHBWZXJzaW9uID8/IEh0dHBWZXJzaW9uLkhUVFAyX0FORF8zKVxuICAgICAgLm1pbmltdW1Qcm90b2NvbFZlcnNpb24ocHJvcHMubWluaW11bVByb3RvY29sVmVyc2lvbiA/PyBTZWN1cml0eVBvbGljeVByb3RvY29sLlRMU19WMV8yXzIwMjEpXG4gICAgICAuZW5hYmxlSXB2Nihwcm9wcy5lbmFibGVJcHY2ID8/IHRydWUpXG4gICAgICAucHJpY2VDbGFzcyhwcm9wcy5wcmljZUNsYXNzID8/IFByaWNlQ2xhc3MuUFJJQ0VfQ0xBU1NfQUxMKVxuICAgICAgLmRvbWFpbk5hbWVzKHByb3BzLmRvbWFpbk5hbWVzLm1hcChkb21haW5OYW1lID0+IGRvbWFpbk5hbWUuZG9tYWluTmFtZSkpXG4gICAgICAuY2VydGlmaWNhdGUoY2VydGlmaWNhdGUpXG5cbiAgICAgIC5iZWhhdmlvcihwcm9wcy5vcmlnaW4pXG4gICAgICAudmlld2VyUHJvdG9jb2xQb2xpY3koVmlld2VyUHJvdG9jb2xQb2xpY3kuUkVESVJFQ1RfVE9fSFRUUFMpXG4gICAgICAuY29tcHJlc3ModHJ1ZSlcbiAgICAgIC5hbGxvd2VkTWV0aG9kcyhBbGxvd2VkTWV0aG9kcy5BTExPV19BTEwpXG4gICAgICAub3JpZ2luUmVxdWVzdFBvbGljeShvcmlnaW5SZXF1ZXN0UG9saWN5KVxuICAgICAgLmNhY2hlUG9saWN5KENhY2hlUG9saWN5LkNBQ0hJTkdfRElTQUJMRUQpXG5cbiAgICAgIC5iZWhhdmlvcihwcm9wcy5vcmlnaW4sIFwiL3dwLWluY2x1ZGVzLypcIilcbiAgICAgIC52aWV3ZXJQcm90b2NvbFBvbGljeShWaWV3ZXJQcm90b2NvbFBvbGljeS5SRURJUkVDVF9UT19IVFRQUylcbiAgICAgIC5jb21wcmVzcyh0cnVlKVxuICAgICAgLmFsbG93ZWRNZXRob2RzKEFsbG93ZWRNZXRob2RzLkFMTE9XX0dFVF9IRUFEX09QVElPTlMpXG4gICAgICAub3JpZ2luUmVxdWVzdFBvbGljeShvcmlnaW5SZXF1ZXN0UG9saWN5KVxuICAgICAgLmNhY2hlUG9saWN5KENhY2hlUG9saWN5LkNBQ0hJTkdfRElTQUJMRUQpXG5cbiAgICAgIC5iZWhhdmlvcihwcm9wcy5vcmlnaW4sIFwiL3dwLWNvbnRlbnQvKlwiKVxuICAgICAgLnZpZXdlclByb3RvY29sUG9saWN5KFZpZXdlclByb3RvY29sUG9saWN5LlJFRElSRUNUX1RPX0hUVFBTKVxuICAgICAgLmNvbXByZXNzKHRydWUpXG4gICAgICAuYWxsb3dlZE1ldGhvZHMoQWxsb3dlZE1ldGhvZHMuQUxMT1dfR0VUX0hFQURfT1BUSU9OUylcbiAgICAgIC5vcmlnaW5SZXF1ZXN0UG9saWN5KG9yaWdpblJlcXVlc3RQb2xpY3kpXG4gICAgICAuY2FjaGVQb2xpY3koQ2FjaGVQb2xpY3kuQ0FDSElOR19ESVNBQkxFRClcblxuICAgICAgLmJlaGF2aW9yKHByb3BzLm9yaWdpbiwgXCIvd3AtbG9naW4ucGhwXCIpXG4gICAgICAudmlld2VyUHJvdG9jb2xQb2xpY3koVmlld2VyUHJvdG9jb2xQb2xpY3kuUkVESVJFQ1RfVE9fSFRUUFMpXG4gICAgICAuY29tcHJlc3ModHJ1ZSlcbiAgICAgIC5hbGxvd2VkTWV0aG9kcyhBbGxvd2VkTWV0aG9kcy5BTExPV19BTEwpXG4gICAgICAub3JpZ2luUmVxdWVzdFBvbGljeShvcmlnaW5SZXF1ZXN0UG9saWN5KVxuICAgICAgLmNhY2hlUG9saWN5KENhY2hlUG9saWN5LkNBQ0hJTkdfRElTQUJMRUQpXG5cbiAgICAgIC5iZWhhdmlvcihwcm9wcy5vcmlnaW4sIFwiL3dwLWFkbWluLypcIilcbiAgICAgIC52aWV3ZXJQcm90b2NvbFBvbGljeShWaWV3ZXJQcm90b2NvbFBvbGljeS5SRURJUkVDVF9UT19IVFRQUylcbiAgICAgIC5jb21wcmVzcyh0cnVlKVxuICAgICAgLmFsbG93ZWRNZXRob2RzKEFsbG93ZWRNZXRob2RzLkFMTE9XX0FMTClcbiAgICAgIC5vcmlnaW5SZXF1ZXN0UG9saWN5KG9yaWdpblJlcXVlc3RQb2xpY3kpXG4gICAgICAuY2FjaGVQb2xpY3koQ2FjaGVQb2xpY3kuQ0FDSElOR19ESVNBQkxFRCk7XG5cblxuICAgIGNvbnN0IGRpc3RyaWJ1dGlvbiA9IG5ldyBEaXN0cmlidXRpb24odGhpcywgXCJEZWZhdWx0XCIsIGJ1aWxkZXIuYnVpbGQoKSk7XG5cbiAgICBjb25zdCBkbnNSZWNvcmRzOiBBUmVjb3JkW10gPSBbXTtcbiAgICBpZiAocHJvcHMuY3JlYXRlRG5zUmVjb3JkcyA/PyB0cnVlKSB7XG4gICAgICBjb25zdCByZWNvcmRUYXJnZXQgPSBSZWNvcmRUYXJnZXQuZnJvbUFsaWFzKG5ldyBDbG91ZEZyb250VGFyZ2V0KGRpc3RyaWJ1dGlvbikpO1xuICAgICAgaG9zdGVkRG9tYWluTmFtZXMuZm9yRWFjaChuYW1lID0+IHtcbiAgICAgICAgZG5zUmVjb3Jkcy5wdXNoKG5hbWUuY3JlYXRlQVJlY29yZCh0aGlzLCByZWNvcmRUYXJnZXQpKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMuZGlzdHJpYnV0aW9uID0gZGlzdHJpYnV0aW9uO1xuICAgIHRoaXMuZG5zUmVjb3JkcyA9IGRuc1JlY29yZHM7XG4gIH1cbn1cbiJdfQ==
@@ -6,6 +6,7 @@ import { Duration, RemovalPolicy } from "aws-cdk-lib";
6
6
  import { ExtendedConstruct, ExtendedConstructProps } from "../../aws-cdk";
7
7
  import { S3Origin } from "aws-cdk-lib/aws-cloudfront-origins";
8
8
  import { Grant, IGrantable } from "aws-cdk-lib/aws-iam";
9
+ import * as iam from "aws-cdk-lib/aws-iam";
9
10
  /**
10
11
  * Properties for CloudFrontBucket.
11
12
  */
@@ -176,4 +177,25 @@ export declare class CloudFrontBucket extends ExtendedConstruct {
176
177
  * @param objectsKeyPattern Restrict the permission to a certain key pattern (default '*')
177
178
  */
178
179
  grantReadWrite(identity: IGrantable, objectsKeyPattern?: any): Grant;
180
+ /**
181
+ * Adds a statement to the resource policy for a principal (i.e.
182
+ * account/role/service) to perform actions on this bucket and/or its
183
+ * contents. Use `bucketArn` and `arnForObjects(keys)` to obtain ARNs for
184
+ * this bucket or objects.
185
+ *
186
+ * Note that the policy statement may or may not be added to the policy.
187
+ * For example, when an `IBucket` is created from an existing bucket,
188
+ * it's not possible to tell whether the bucket already has a policy
189
+ * attached, let alone to re-use that policy to add more statements to it.
190
+ * So it's safest to do nothing in these cases.
191
+ *
192
+ * @param permission the policy statement to be added to the bucket's
193
+ * policy.
194
+ * @returns metadata about the execution of this method. If the policy
195
+ * was not added, the value of `statementAdded` will be `false`. You
196
+ * should always check this value to make sure that the operation was
197
+ * actually carried out. Otherwise, synthesis and deploy will terminate
198
+ * silently, which may be confusing.
199
+ */
200
+ addToResourcePolicy(permission: iam.PolicyStatement): iam.AddToResourcePolicyResult;
179
201
  }
@@ -206,6 +206,29 @@ class CloudFrontBucket extends aws_cdk_1.ExtendedConstruct {
206
206
  grantReadWrite(identity, objectsKeyPattern) {
207
207
  return this.bucket.grantReadWrite(identity, objectsKeyPattern);
208
208
  }
209
+ /**
210
+ * Adds a statement to the resource policy for a principal (i.e.
211
+ * account/role/service) to perform actions on this bucket and/or its
212
+ * contents. Use `bucketArn` and `arnForObjects(keys)` to obtain ARNs for
213
+ * this bucket or objects.
214
+ *
215
+ * Note that the policy statement may or may not be added to the policy.
216
+ * For example, when an `IBucket` is created from an existing bucket,
217
+ * it's not possible to tell whether the bucket already has a policy
218
+ * attached, let alone to re-use that policy to add more statements to it.
219
+ * So it's safest to do nothing in these cases.
220
+ *
221
+ * @param permission the policy statement to be added to the bucket's
222
+ * policy.
223
+ * @returns metadata about the execution of this method. If the policy
224
+ * was not added, the value of `statementAdded` will be `false`. You
225
+ * should always check this value to make sure that the operation was
226
+ * actually carried out. Otherwise, synthesis and deploy will terminate
227
+ * silently, which may be confusing.
228
+ */
229
+ addToResourcePolicy(permission) {
230
+ return this.bucket.addToResourcePolicy(permission);
231
+ }
209
232
  }
210
233
  exports.CloudFrontBucket = CloudFrontBucket;
211
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWQtZnJvbnQtYnVja2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2xvdWQtZnJvbnQtYnVja2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLCtDQUErRTtBQUMvRSwrREFBZ0U7QUFDaEUscUVBQThGO0FBQzlGLDZDQUFvRDtBQUNwRCwyQ0FBc0Y7QUFDdEYsNkNBQStDO0FBQy9DLCtFQUE0RDtBQTJDNUQ7O0dBRUc7QUFDSCxNQUFhLGdCQUFpQixTQUFRLDJCQUFpQjtJQWVyRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTZCOztRQUNyRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFDLFlBQVksRUFBRSxzQkFBWSxDQUFDLEtBQUssQ0FBQyxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsWUFBWSxFQUFFLDBCQUFlLENBQUMsRUFBQyxDQUFDLENBQUM7UUFkckYsZ0JBQVcsR0FBVyxDQUFDLENBQUM7UUFnQjlCLE1BQU0sYUFBYSxTQUFHLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxhQUFhLG1DQUFJLDJCQUFhLENBQUMsTUFBTSxDQUFDO1FBQ25FLE1BQU0saUJBQWlCLEdBQUcsT0FBQyxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsaUJBQWlCLG1DQUFJLEtBQUssQ0FBQyxJQUFJLGFBQWEsS0FBSywyQkFBYSxDQUFDLE9BQU8sQ0FBQztRQUV6RyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksZUFBTSxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUU7WUFDeEMsVUFBVSxFQUFFLHlCQUFnQixDQUFDLFVBQVU7WUFDdkMsaUJBQWlCLEVBQUUsMEJBQWlCLENBQUMsU0FBUztZQUM5QyxhQUFhO1lBQ2IsaUJBQWlCO1lBQ2pCLFNBQVMsUUFBRSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsU0FBUyxtQ0FBSSxLQUFLO1lBQ3BDLG9CQUFvQixRQUFFLEtBQUss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VyxDQUFDLFFBQVEsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxXQUFXLENBQUMsUUFBb0IsRUFBRSxpQkFBdUI7UUFDdkQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7O09BaUJHO0lBQ0gsY0FBYyxDQUFDLFFBQW9CLEVBQUUsaUJBQXVCO1FBQzFELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLGlCQUFpQixDQUFDLENBQUM7SUFDakUsQ0FBQztDQUVGO0FBek5ELDRDQXlOQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29uc3RydWN0fSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHtCbG9ja1B1YmxpY0FjY2VzcywgQnVja2V0LCBCdWNrZXRFbmNyeXB0aW9ufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXMzXCI7XG5pbXBvcnQge09yaWdpbkFjY2Vzc0lkZW50aXR5fSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3VkZnJvbnRcIjtcbmltcG9ydCB7QnVja2V0RGVwbG95bWVudCwgQ2FjaGVDb250cm9sLCBJU291cmNlLCBTb3VyY2V9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtczMtZGVwbG95bWVudFwiO1xuaW1wb3J0IHtEdXJhdGlvbiwgUmVtb3ZhbFBvbGljeX0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQge0V4dGVuZGVkQ29uc3RydWN0LCBFeHRlbmRlZENvbnN0cnVjdFByb3BzLCBTdGFuZGFyZFRhZ3N9IGZyb20gXCIuLi8uLi9hd3MtY2RrXCI7XG5pbXBvcnQge0xpYlN0YW5kYXJkVGFnc30gZnJvbSBcIi4uLy4uL3RydWVtYXJrXCI7XG5pbXBvcnQge1MzT3JpZ2lufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3VkZnJvbnQtb3JpZ2luc1wiO1xuaW1wb3J0IHtHcmFudCwgSUdyYW50YWJsZX0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCAqIGFzIGlhbSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIENsb3VkRnJvbnRCdWNrZXQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2xvdWRGcm9udEJ1Y2tldFByb3BzIGV4dGVuZHMgRXh0ZW5kZWRDb25zdHJ1Y3RQcm9wcyB7XG5cbiAgLyoqXG4gICAqIFBvbGljeSB0byBhcHBseSB3aGVuIHRoZSBidWNrZXQgaXMgcmVtb3ZlZCBmcm9tIHRoaXMgc3RhY2suXG4gICAqIEBkZWZhdWx0IFJlbW92YWxQb2xpY3kuUkVUQUlOXG4gICAqL1xuICByZWFkb25seSByZW1vdmFsUG9saWN5PzogUmVtb3ZhbFBvbGljeTtcblxuICAvKipcbiAgICogV2hldGhlciBhbGwgb2JqZWN0cyBzaG91bGQgYmUgYXV0b21hdGljYWxseSBkZWxldGVkIHdoZW4gdGhlIGJ1Y2tldCBpcyByZW1vdmVkIGZyb20gdGhlIHN0YWNrIG9yIHdoZW4gdGhlIHN0YWNrIGlzIGRlbGV0ZWQuXG4gICAqIFJlcXVpcmVzIHRoZSByZW1vdmFsUG9saWN5IHRvIGJlIHNldCB0byBSZW1vdmFsUG9saWN5LkRFU1RST1kuIERlZmF1bHQgaXMgZmFsc2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBhdXRvRGVsZXRlT2JqZWN0cz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBidWNrZXQgc2hvdWxkIGhhdmUgdmVyc2lvbmluZyB0dXJuZWQgb24gb3Igbm90LiBEZWZhdWx0IGlzIGZhbHNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgdmVyc2lvbmVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0aGlzIGJ1Y2tldCBzaG91bGQgaGF2ZSB0cmFuc2ZlciBhY2NlbGVyYXRpb24gdHVybmVkIG9uIG9yIG5vdC4gRGVmYXVsdCBpcyBmYWxzZS5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHRyYW5zZmVyQWNjZWxlcmF0aW9uPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogT3B0aW9uYWwgYnVja2V0IG5hbWUuIElmIG5vdCBwcm92aWRlZCwgYSBuYW1lIHdpbGwgYmUgZ2VuZXJhdGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgYnVja2V0TmFtZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBTaW1wbGUgQ29uc3RydWN0IGZvciBjcmVhdGluZyBidWNrZXRzIHRoYXQgd2lsbCBiZSBhY2Nlc3NlZCBkaXJlY3RseSBieSBDbG91ZEZyb250IGFzIGFuIE9yaWdpbi5cbiAqL1xuZXhwb3J0IGNsYXNzIENsb3VkRnJvbnRCdWNrZXQgZXh0ZW5kcyBFeHRlbmRlZENvbnN0cnVjdCB7XG5cbiAgcHJpdmF0ZSBkZXBsb3lDb3VudDogbnVtYmVyID0gMDtcblxuICByZWFkb25seSBidWNrZXQ6IEJ1Y2tldDtcbiAgcmVhZG9ubHkgYnVja2V0TmFtZTogc3RyaW5nO1xuICByZWFkb25seSBidWNrZXRBcm46IHN0cmluZztcbiAgcmVhZG9ubHkgb3JpZ2luQWNjZXNzSWRlbnRpdHk6IE9yaWdpbkFjY2Vzc0lkZW50aXR5O1xuICByZWFkb25seSBvcmlnaW5BY2Nlc3NJZGVudGl0eUlkOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBuZXh0RGVwbG95Q291bnQoKTogc3RyaW5nIHtcbiAgICBsZXQgY3VycmVudCA9IHRoaXMuZGVwbG95Q291bnQrKztcbiAgICByZXR1cm4gY3VycmVudCA9PT0gMCA/ICcnIDogYCR7Y3VycmVudH1gO1xuICB9XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM/OiBDbG91ZEZyb250QnVja2V0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtzdGFuZGFyZFRhZ3M6IFN0YW5kYXJkVGFncy5tZXJnZShwcm9wcz8uc3RhbmRhcmRUYWdzLCBMaWJTdGFuZGFyZFRhZ3MpfSk7XG5cbiAgICBjb25zdCByZW1vdmFsUG9saWN5ID0gcHJvcHM/LnJlbW92YWxQb2xpY3kgPz8gUmVtb3ZhbFBvbGljeS5SRVRBSU47XG4gICAgY29uc3QgYXV0b0RlbGV0ZU9iamVjdHMgPSAocHJvcHM/LmF1dG9EZWxldGVPYmplY3RzID8/IGZhbHNlKSAmJiByZW1vdmFsUG9saWN5ID09PSBSZW1vdmFsUG9saWN5LkRFU1RST1k7XG5cbiAgICB0aGlzLmJ1Y2tldCA9IG5ldyBCdWNrZXQodGhpcywgXCJEZWZhdWx0XCIsIHtcbiAgICAgIGVuY3J5cHRpb246IEJ1Y2tldEVuY3J5cHRpb24uUzNfTUFOQUdFRCwgLy8gQ2xvdWRGcm9udCBjYW5ub3QgdXNlIEtNUyB3aXRoIFMzXG4gICAgICBibG9ja1B1YmxpY0FjY2VzczogQmxvY2tQdWJsaWNBY2Nlc3MuQkxPQ0tfQUxMLFxuICAgICAgcmVtb3ZhbFBvbGljeSxcbiAgICAgIGF1dG9EZWxldGVPYmplY3RzLFxuICAgICAgdmVyc2lvbmVkOiBwcm9wcz8udmVyc2lvbmVkID8/IGZhbHNlLFxuICAgICAgdHJhbnNmZXJBY2NlbGVyYXRpb246IHByb3BzPy50cmFuc2ZlckFjY2VsZXJhdGlvbiA/PyBmYWxzZSxcbiAgICAgIGJ1Y2tldE5hbWU6IHByb3BzPy5idWNrZXROYW1lXG4gICAgfSk7XG4gICAgdGhpcy5idWNrZXROYW1lID0gdGhpcy5idWNrZXQuYnVja2V0TmFtZTtcbiAgICB0aGlzLmJ1Y2tldEFybiA9IHRoaXMuYnVja2V0LmJ1Y2tldEFybjtcbiAgICB0aGlzLm9yaWdpbkFjY2Vzc0lkZW50aXR5ID0gbmV3IE9yaWdpbkFjY2Vzc0lkZW50aXR5KHRoaXMsIFwiQWNjZXNzXCIsIHtcbiAgICAgIGNvbW1lbnQ6IGBTMyBidWNrZXQgJHt0aGlzLmJ1Y2tldC5idWNrZXROYW1lfWBcbiAgICB9KTtcbiAgICB0aGlzLm9yaWdpbkFjY2Vzc0lkZW50aXR5SWQgPSB0aGlzLm9yaWdpbkFjY2Vzc0lkZW50aXR5Lm9yaWdpbkFjY2Vzc0lkZW50aXR5SWQ7XG4gICAgdGhpcy5idWNrZXQuZ3JhbnRSZWFkKHRoaXMub3JpZ2luQWNjZXNzSWRlbnRpdHkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhlbHBlciBtZXRob2QgdG8gZGVwbG95IGxvY2FsIGFzc2V0cyB0byB0aGUgY3JlYXRlZCBidWNrZXQuIFRocyBmdW5jdGlvbiBhc3N1bWVzXG4gICAqIENsb3VkRnJvbnQgaW52YWxpZGF0aW9uIHJlcXVlc3RzIHdpbGwgYmUgc2VudCBmb3IgbXV0YWJsZSBmaWxlcyB0byBzZXJ2ZSBuZXcgY29udGVudC5cbiAgICogRm9yIG1vcmUgY29tcGxpY2F0ZWQgZGVwbG95bWVudHMsIHVzZSBCdWNrZXREZXBsb3ltZW50IGRpcmVjdGx5LlxuICAgKlxuICAgKiBAcGFyYW0gcGF0aHMgdGhlIHBhdGhzIHRvIHRoZSBsb2NhbCBhc3NldHNcbiAgICogQHBhcmFtIG1heEFnZSB0aGUgbGVuZ3RoIG9mIHRpbWUgdG8gYnJvd3NlcnMgd2lsbCBjYWNoZSBmaWxlczsgZGVmYXVsdCBpcyBEdXJhdGlvbi5taW51dGVzKDE1KVxuICAgKiBAcGFyYW0gc01heEFnZSB0aGUgbGVuZ3RoIG9mIHRpbWUgQ2xvdWRGcm9udCB3aWxsIGNhY2hlIGZpbGVzOyBkZWZhdWx0IGlzIER1cmF0aW9uLmRheXMoNylcbiAgICogQHBhcmFtIHBydW5lIHRydWUgdG8gcHJ1bmUgb2xkIGZpbGVzOyBkZWZhdWx0IGlzIGZhbHNlXG4gICAqL1xuICBkZXBsb3lQYXRocyhwYXRoczogc3RyaW5nW10sIG1heEFnZT86IER1cmF0aW9uLCBzTWF4QWdlPzogRHVyYXRpb24sIHBydW5lPzogYm9vbGVhbik6IEJ1Y2tldERlcGxveW1lbnQge1xuICAgIHJldHVybiBuZXcgQnVja2V0RGVwbG95bWVudCh0aGlzLCBgRGVwbG95JHt0aGlzLm5leHREZXBsb3lDb3VudCgpfWAsIHtcbiAgICAgIHNvdXJjZXM6IHBhdGhzLm1hcChwYXRoID0+IFNvdXJjZS5hc3NldChwYXRoKSksXG4gICAgICBkZXN0aW5hdGlvbkJ1Y2tldDogdGhpcy5idWNrZXQsXG4gICAgICBwcnVuZTogcHJ1bmUgPz8gZmFsc2UsXG4gICAgICBjYWNoZUNvbnRyb2w6IFtcbiAgICAgICAgQ2FjaGVDb250cm9sLnNldFB1YmxpYygpLFxuICAgICAgICBDYWNoZUNvbnRyb2wubWF4QWdlKG1heEFnZSA/PyBEdXJhdGlvbi5taW51dGVzKDE1KSksXG4gICAgICAgIENhY2hlQ29udHJvbC5zTWF4QWdlKHNNYXhBZ2UgPz8gRHVyYXRpb24uZGF5cyg3KSlcbiAgICAgIF1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIZWxwZXIgbWV0aG9kIHRvIGRlcGxveSBsb2NhbCBhc3NldHMgdG8gdGhlIGNyZWF0ZWQgYnVja2V0LiBUaHMgZnVuY3Rpb24gYXNzdW1lc1xuICAgKiBDbG91ZEZyb250IGludmFsaWRhdGlvbiByZXF1ZXN0cyB3aWxsIGJlIHNlbnQgZm9yIG11dGFibGUgZmlsZXMgdG8gc2VydmUgbmV3IGNvbnRlbnQuXG4gICAqIEZvciBtb3JlIGNvbXBsaWNhdGVkIGRlcGxveW1lbnRzLCB1c2UgQnVja2V0RGVwbG95bWVudCBkaXJlY3RseS5cbiAgICpcbiAgICogQHBhcmFtIHBhdGggdGhlIHBhdGggdG8gdGhlIGxvY2FsIGFzc2V0c1xuICAgKiBAcGFyYW0gbWF4QWdlIHRoZSBsZW5ndGggb2YgdGltZSB0byBicm93c2VycyB3aWxsIGNhY2hlIGZpbGVzOyBkZWZhdWx0IGlzIER1cmF0aW9uLm1pbnV0ZXMoMTUpXG4gICAqIEBwYXJhbSBzTWF4QWdlIHRoZSBsZW5ndGggb2YgdGltZSBDbG91ZEZyb250IHdpbGwgY2FjaGUgZmlsZXM7IGRlZmF1bHQgaXMgRHVyYXRpb24uZGF5cyg3KVxuICAgKiBAcGFyYW0gcHJ1bmUgdHJ1ZSB0byBwcnVuZSBvbGQgZmlsZXM7IGRlZmF1bHQgaXMgZmFsc2VcbiAgICovXG4gIGRlcGxveVBhdGgocGF0aDogc3RyaW5nLCBtYXhBZ2U/OiBEdXJhdGlvbiwgc01heEFnZT86IER1cmF0aW9uLCBwcnVuZT86IGJvb2xlYW4pOiBCdWNrZXREZXBsb3ltZW50IHtcbiAgICByZXR1cm4gdGhpcy5kZXBsb3lQYXRocyhbcGF0aF0sIG1heEFnZSwgc01heEFnZSwgcHJ1bmUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhlbHBlciBtZXRob2QgdG8gYXNzZXRzIHRvIHRoZSBjcmVhdGVkIGJ1Y2tldC4gVGhpcyBmdW5jdGlvbiBhc3N1bWVzIENsb3VkRnJvbnQgaW52YWxpZGF0aW9uXG4gICAqIHJlcXVlc3RzIHdpbGwgYmUgc2VudCBmb3IgbXV0YWJsZSBmaWxlcyB0byBzZXJ2ZSBuZXcgY29udGVudC5cbiAgICogRm9yIG1vcmUgY29tcGxpY2F0ZWQgZGVwbG95bWVudHMsIHVzZSBCdWNrZXREZXBsb3ltZW50IGRpcmVjdGx5LlxuICAgKlxuICAgKiBAcGFyYW0gc291cmNlcyB0aGUgc291cmNlcyB0byBkZXBsb3lcbiAgICogQHBhcmFtIG1heEFnZSB0aGUgbGVuZ3RoIG9mIHRpbWUgdG8gYnJvd3NlcnMgd2lsbCBjYWNoZSBmaWxlczsgZGVmYXVsdCBpcyBEdXJhdGlvbi5taW51dGVzKDE1KVxuICAgKiBAcGFyYW0gc01heEFnZSB0aGUgbGVuZ3RoIG9mIHRpbWUgQ2xvdWRGcm9udCB3aWxsIGNhY2hlIGZpbGVzOyBkZWZhdWx0IGlzIER1cmF0aW9uLmRheXMoNylcbiAgICogQHBhcmFtIHBydW5lIHRydWUgdG8gcHJ1bmUgb2xkIGZpbGVzOyBkZWZhdWx0IGlzIGZhbHNlXG4gICAqL1xuICBkZXBsb3lTb3VyY2VzKHNvdXJjZXM6IElTb3VyY2VbXSwgbWF4QWdlPzogRHVyYXRpb24sIHNNYXhBZ2U/OiBEdXJhdGlvbiwgcHJ1bmU/OiBib29sZWFuKTogQnVja2V0RGVwbG95bWVudCB7XG4gICAgcmV0dXJuIG5ldyBCdWNrZXREZXBsb3ltZW50KHRoaXMsIGBEZXBsb3kke3RoaXMubmV4dERlcGxveUNvdW50KCl9YCwge1xuICAgICAgc291cmNlczogc291cmNlcyxcbiAgICAgIGRlc3RpbmF0aW9uQnVja2V0OiB0aGlzLmJ1Y2tldCxcbiAgICAgIHBydW5lOiBwcnVuZSA/PyBmYWxzZSxcbiAgICAgIGNhY2hlQ29udHJvbDogW1xuICAgICAgICBDYWNoZUNvbnRyb2wuc2V0UHVibGljKCksXG4gICAgICAgIENhY2hlQ29udHJvbC5tYXhBZ2UobWF4QWdlID8/IER1cmF0aW9uLm1pbnV0ZXMoMTUpKSxcbiAgICAgICAgQ2FjaGVDb250cm9sLnNNYXhBZ2Uoc01heEFnZSA/PyBEdXJhdGlvbi5kYXlzKDcpKVxuICAgICAgXVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEhlbHBlciBtZXRob2QgdG8gYXNzZXRzIHRvIHRoZSBjcmVhdGVkIGJ1Y2tldC4gVGhpcyBmdW5jdGlvbiBhc3N1bWVzIENsb3VkRnJvbnQgaW52YWxpZGF0aW9uXG4gICAqIHJlcXVlc3RzIHdpbGwgYmUgc2VudCBmb3IgbXV0YWJsZSBmaWxlcyB0byBzZXJ2ZSBuZXcgY29udGVudC5cbiAgICogRm9yIG1vcmUgY29tcGxpY2F0ZWQgZGVwbG95bWVudHMsIHVzZSBCdWNrZXREZXBsb3ltZW50IGRpcmVjdGx5LlxuICAgKlxuICAgKiBAcGFyYW0gc291cmNlIHRoZSBzb3VyY2UgdG8gZGVwbG95XG4gICAqIEBwYXJhbSBtYXhBZ2UgdGhlIGxlbmd0aCBvZiB0aW1lIHRvIGJyb3dzZXJzIHdpbGwgY2FjaGUgZmlsZXM7IGRlZmF1bHQgaXMgRHVyYXRpb24ubWludXRlcygxNSlcbiAgICogQHBhcmFtIHNNYXhBZ2UgdGhlIGxlbmd0aCBvZiB0aW1lIENsb3VkRnJvbnQgd2lsbCBjYWNoZSBmaWxlczsgZGVmYXVsdCBpcyBEdXJhdGlvbi5kYXlzKDcpXG4gICAqIEBwYXJhbSBwcnVuZSB0cnVlIHRvIHBydW5lIG9sZCBmaWxlczsgZGVmYXVsdCBpcyBmYWxzZVxuICAgKi9cbiAgZGVwbG95U291cmNlKHNvdXJjZTogSVNvdXJjZSwgbWF4QWdlPzogRHVyYXRpb24sIHNNYXhBZ2U/OiBEdXJhdGlvbiwgcHJ1bmU/OiBib29sZWFuKTogQnVja2V0RGVwbG95bWVudCB7XG4gICAgcmV0dXJuIHRoaXMuZGVwbG95U291cmNlcyhbc291cmNlXSwgbWF4QWdlLCBzTWF4QWdlLCBwcnVuZSk7XG4gIH1cblxuICAvKipcbiAgICogSGVscGVyIG1ldGhvZCB0byByZXR1cm4gYSBDbG91ZEZyb250IE9yaWdpbiBmb3IgdGhpcyBidWNrZXQuXG4gICAqL1xuICB0b09yaWdpbigpOiBTM09yaWdpbiB7XG4gICAgcmV0dXJuIG5ldyBTM09yaWdpbih0aGlzLmJ1Y2tldCwge1xuICAgICAgb3JpZ2luQWNjZXNzSWRlbnRpdHk6IHRoaXMub3JpZ2luQWNjZXNzSWRlbnRpdHlcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudCByZWFkIHBlcm1pc3Npb25zIGZvciB0aGlzIGJ1Y2tldCBhbmQgaXQncyBjb250ZW50cyB0byBhbiBJQU1cbiAgICogcHJpbmNpcGFsIChSb2xlL0dyb3VwL1VzZXIpLlxuICAgKlxuICAgKiBJZiBlbmNyeXB0aW9uIGlzIHVzZWQsIHBlcm1pc3Npb24gdG8gdXNlIHRoZSBrZXkgdG8gZGVjcnlwdCB0aGUgY29udGVudHNcbiAgICogb2YgdGhlIGJ1Y2tldCB3aWxsIGFsc28gYmUgZ3JhbnRlZCB0byB0aGUgc2FtZSBwcmluY2lwYWwuXG4gICAqXG4gICAqIEBwYXJhbSBpZGVudGl0eSBUaGUgcHJpbmNpcGFsXG4gICAqIEBwYXJhbSBvYmplY3RzS2V5UGF0dGVybiBSZXN0cmljdCB0aGUgcGVybWlzc2lvbiB0byBhIGNlcnRhaW4ga2V5IHBhdHRlcm4gKGRlZmF1bHQgJyonKVxuICAgKi9cbiAgZ3JhbnRSZWFkKGlkZW50aXR5OiBJR3JhbnRhYmxlLCBvYmplY3RzS2V5UGF0dGVybj86IGFueSk6IEdyYW50IHtcbiAgICByZXR1cm4gdGhpcy5idWNrZXQuZ3JhbnRSZWFkKGlkZW50aXR5LCBvYmplY3RzS2V5UGF0dGVybik7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnQgd3JpdGUgcGVybWlzc2lvbnMgdG8gdGhpcyBidWNrZXQgdG8gYW4gSUFNIHByaW5jaXBhbC5cbiAgICpcbiAgICogSWYgZW5jcnlwdGlvbiBpcyB1c2VkLCBwZXJtaXNzaW9uIHRvIHVzZSB0aGUga2V5IHRvIGVuY3J5cHQgdGhlIGNvbnRlbnRzXG4gICAqIG9mIHdyaXR0ZW4gZmlsZXMgd2lsbCBhbHNvIGJlIGdyYW50ZWQgdG8gdGhlIHNhbWUgcHJpbmNpcGFsLlxuICAgKlxuICAgKiBCZWZvcmUgQ0RLIHZlcnNpb24gMS44NS4wLCB0aGlzIG1ldGhvZCBncmFudGVkIHRoZSBgczM6UHV0T2JqZWN0KmAgcGVybWlzc2lvbiB0aGF0IGluY2x1ZGVkIGBzMzpQdXRPYmplY3RBY2xgLFxuICAgKiB3aGljaCBjb3VsZCBiZSB1c2VkIHRvIGdyYW50IHJlYWQvd3JpdGUgb2JqZWN0IGFjY2VzcyB0byBJQU0gcHJpbmNpcGFscyBpbiBvdGhlciBhY2NvdW50cy5cbiAgICogSWYgeW91IHdhbnQgdG8gZ2V0IHJpZCBvZiB0aGF0IGJlaGF2aW9yLCB1cGRhdGUgeW91ciBDREsgdmVyc2lvbiB0byAxLjg1LjAgb3IgbGF0ZXIsXG4gICAqIGFuZCBtYWtlIHN1cmUgdGhlIGBAYXdzLWNkay9hd3MtczM6Z3JhbnRXcml0ZVdpdGhvdXRBY2xgIGZlYXR1cmUgZmxhZyBpcyBzZXQgdG8gYHRydWVgXG4gICAqIGluIHRoZSBgY29udGV4dGAga2V5IG9mIHlvdXIgY2RrLmpzb24gZmlsZS5cbiAgICogSWYgeW91J3ZlIGFscmVhZHkgdXBkYXRlZCwgYnV0IHN0aWxsIG5lZWQgdGhlIHByaW5jaXBhbCB0byBoYXZlIHBlcm1pc3Npb25zIHRvIG1vZGlmeSB0aGUgQUNMcyxcbiAgICogdXNlIHRoZSBgZ3JhbnRQdXRBY2xgIG1ldGhvZC5cbiAgICpcbiAgICogQHBhcmFtIGlkZW50aXR5IFRoZSBwcmluY2lwYWxcbiAgICogQHBhcmFtIG9iamVjdHNLZXlQYXR0ZXJuIFJlc3RyaWN0IHRoZSBwZXJtaXNzaW9uIHRvIGEgY2VydGFpbiBrZXkgcGF0dGVybiAoZGVmYXVsdCAnKicpXG4gICAqIEBwYXJhbSBhbGxvd2VkQWN0aW9uUGF0dGVybnMgUmVzdHJpY3QgdGhlIHBlcm1pc3Npb25zIHRvIGNlcnRhaW4gbGlzdCBvZiBhY3Rpb24gcGF0dGVybnNcbiAgICovXG4gIGdyYW50V3JpdGUoaWRlbnRpdHk6IElHcmFudGFibGUsIG9iamVjdHNLZXlQYXR0ZXJuPzogYW55LCBhbGxvd2VkQWN0aW9uUGF0dGVybnM/OiBzdHJpbmdbXSk6IEdyYW50IHtcbiAgICByZXR1cm4gdGhpcy5idWNrZXQuZ3JhbnRXcml0ZShpZGVudGl0eSwgb2JqZWN0c0tleVBhdHRlcm4sIGFsbG93ZWRBY3Rpb25QYXR0ZXJucyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHMzOlB1dE9iamVjdCogYW5kIHMzOkFib3J0KiBwZXJtaXNzaW9ucyBmb3IgdGhpcyBidWNrZXQgdG8gYW4gSUFNIHByaW5jaXBhbC5cbiAgICpcbiAgICogSWYgZW5jcnlwdGlvbiBpcyB1c2VkLCBwZXJtaXNzaW9uIHRvIHVzZSB0aGUga2V5IHRvIGVuY3J5cHQgdGhlIGNvbnRlbnRzXG4gICAqIG9mIHdyaXR0ZW4gZmlsZXMgd2lsbCBhbHNvIGJlIGdyYW50ZWQgdG8gdGhlIHNhbWUgcHJpbmNpcGFsLlxuICAgKiBAcGFyYW0gaWRlbnRpdHkgVGhlIHByaW5jaXBhbFxuICAgKiBAcGFyYW0gb2JqZWN0c0tleVBhdHRlcm4gUmVzdHJpY3QgdGhlIHBlcm1pc3Npb24gdG8gYSBjZXJ0YWluIGtleSBwYXR0ZXJuIChkZWZhdWx0ICcqJylcbiAgICovXG4gIGdyYW50UHV0KGlkZW50aXR5OiBJR3JhbnRhYmxlLCBvYmplY3RzS2V5UGF0dGVybj86IGFueSk6IEdyYW50IHtcbiAgICByZXR1cm4gdGhpcy5idWNrZXQuZ3JhbnRQdXQoaWRlbnRpdHksIG9iamVjdHNLZXlQYXR0ZXJuKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudCB0aGUgZ2l2ZW4gSUFNIGlkZW50aXR5IHBlcm1pc3Npb25zIHRvIG1vZGlmeSB0aGUgQUNMcyBvZiBvYmplY3RzIGluIHRoZSBnaXZlbiBCdWNrZXQuXG4gICAqXG4gICAqIElmIHlvdXIgYXBwbGljYXRpb24gaGFzIHRoZSAnQGF3cy1jZGsvYXdzLXMzOmdyYW50V3JpdGVXaXRob3V0QWNsJyBmZWF0dXJlIGZsYWcgc2V0LFxuICAgKiBjYWxsaW5nIGBncmFudFdyaXRlYCBvciBgZ3JhbnRSZWFkV3JpdGVgIG5vIGxvbmdlciBncmFudHMgcGVybWlzc2lvbnMgdG8gbW9kaWZ5IHRoZSBBQ0xzIG9mIHRoZSBvYmplY3RzO1xuICAgKiBpbiB0aGlzIGNhc2UsIGlmIHlvdSBuZWVkIHRvIG1vZGlmeSBvYmplY3QgQUNMcywgY2FsbCB0aGlzIG1ldGhvZCBleHBsaWNpdGx5LlxuICAgKlxuICAgKiBAcGFyYW0gaWRlbnRpdHkgVGhlIHByaW5jaXBhbFxuICAgKiBAcGFyYW0gb2JqZWN0c0tleVBhdHRlcm4gUmVzdHJpY3QgdGhlIHBlcm1pc3Npb24gdG8gYSBjZXJ0YWluIGtleSBwYXR0ZXJuIChkZWZhdWx0ICcqJylcbiAgICovXG4gIGdyYW50UHV0QWNsKGlkZW50aXR5OiBJR3JhbnRhYmxlLCBvYmplY3RzS2V5UGF0dGVybj86IHN0cmluZyk6IEdyYW50IHtcbiAgICByZXR1cm4gdGhpcy5idWNrZXQuZ3JhbnRQdXRBY2woaWRlbnRpdHksIG9iamVjdHNLZXlQYXR0ZXJuKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgczM6RGVsZXRlT2JqZWN0KiBwZXJtaXNzaW9uIHRvIGFuIElBTSBwcmluY2lwYWwgZm9yIG9iamVjdHNcbiAgICogaW4gdGhpcyBidWNrZXQuXG4gICAqXG4gICAqIEBwYXJhbSBpZGVudGl0eSBUaGUgcHJpbmNpcGFsXG4gICAqIEBwYXJhbSBvYmplY3RzS2V5UGF0dGVybiBSZXN0cmljdCB0aGUgcGVybWlzc2lvbiB0byBhIGNlcnRhaW4ga2V5IHBhdHRlcm4gKGRlZmF1bHQgJyonKVxuICAgKi9cbiAgZ3JhbnREZWxldGUoaWRlbnRpdHk6IElHcmFudGFibGUsIG9iamVjdHNLZXlQYXR0ZXJuPzogYW55KTogR3JhbnQge1xuICAgIHJldHVybiB0aGlzLmJ1Y2tldC5ncmFudERlbGV0ZShpZGVudGl0eSwgb2JqZWN0c0tleVBhdHRlcm4pO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyByZWFkL3dyaXRlIHBlcm1pc3Npb25zIGZvciB0aGlzIGJ1Y2tldCBhbmQgaXQncyBjb250ZW50cyB0byBhbiBJQU1cbiAgICogcHJpbmNpcGFsIChSb2xlL0dyb3VwL1VzZXIpLlxuICAgKlxuICAgKiBJZiBhbiBlbmNyeXB0aW9uIGtleSBpcyB1c2VkLCBwZXJtaXNzaW9uIHRvIHVzZSB0aGUga2V5IGZvclxuICAgKiBlbmNyeXB0L2RlY3J5cHQgd2lsbCBhbHNvIGJlIGdyYW50ZWQuXG4gICAqXG4gICAqIEJlZm9yZSBDREsgdmVyc2lvbiAxLjg1LjAsIHRoaXMgbWV0aG9kIGdyYW50ZWQgdGhlIGBzMzpQdXRPYmplY3QqYCBwZXJtaXNzaW9uIHRoYXQgaW5jbHVkZWQgYHMzOlB1dE9iamVjdEFjbGAsXG4gICAqIHdoaWNoIGNvdWxkIGJlIHVzZWQgdG8gZ3JhbnQgcmVhZC93cml0ZSBvYmplY3QgYWNjZXNzIHRvIElBTSBwcmluY2lwYWxzIGluIG90aGVyIGFjY291bnRzLlxuICAgKiBJZiB5b3Ugd2FudCB0byBnZXQgcmlkIG9mIHRoYXQgYmVoYXZpb3IsIHVwZGF0ZSB5b3VyIENESyB2ZXJzaW9uIHRvIDEuODUuMCBvciBsYXRlcixcbiAgICogYW5kIG1ha2Ugc3VyZSB0aGUgYEBhd3MtY2RrL2F3cy1zMzpncmFudFdyaXRlV2l0aG91dEFjbGAgZmVhdHVyZSBmbGFnIGlzIHNldCB0byBgdHJ1ZWBcbiAgICogaW4gdGhlIGBjb250ZXh0YCBrZXkgb2YgeW91ciBjZGsuanNvbiBmaWxlLlxuICAgKiBJZiB5b3UndmUgYWxyZWFkeSB1cGRhdGVkLCBidXQgc3RpbGwgbmVlZCB0aGUgcHJpbmNpcGFsIHRvIGhhdmUgcGVybWlzc2lvbnMgdG8gbW9kaWZ5IHRoZSBBQ0xzLFxuICAgKiB1c2UgdGhlIGBncmFudFB1dEFjbGAgbWV0aG9kLlxuICAgKlxuICAgKiBAcGFyYW0gaWRlbnRpdHkgVGhlIHByaW5jaXBhbFxuICAgKiBAcGFyYW0gb2JqZWN0c0tleVBhdHRlcm4gUmVzdHJpY3QgdGhlIHBlcm1pc3Npb24gdG8gYSBjZXJ0YWluIGtleSBwYXR0ZXJuIChkZWZhdWx0ICcqJylcbiAgICovXG4gIGdyYW50UmVhZFdyaXRlKGlkZW50aXR5OiBJR3JhbnRhYmxlLCBvYmplY3RzS2V5UGF0dGVybj86IGFueSk6IEdyYW50IHtcbiAgICByZXR1cm4gdGhpcy5idWNrZXQuZ3JhbnRSZWFkV3JpdGUoaWRlbnRpdHksIG9iamVjdHNLZXlQYXR0ZXJuKTtcbiAgfVxuXG59XG4iXX0=
234
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWQtZnJvbnQtYnVja2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2xvdWQtZnJvbnQtYnVja2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLCtDQUErRTtBQUMvRSwrREFBZ0U7QUFDaEUscUVBQThGO0FBQzlGLDZDQUFvRDtBQUNwRCwyQ0FBc0Y7QUFDdEYsNkNBQStDO0FBQy9DLCtFQUE0RDtBQTJDNUQ7O0dBRUc7QUFDSCxNQUFhLGdCQUFpQixTQUFRLDJCQUFpQjtJQWVyRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTZCOztRQUNyRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFDLFlBQVksRUFBRSxzQkFBWSxDQUFDLEtBQUssQ0FBQyxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsWUFBWSxFQUFFLDBCQUFlLENBQUMsRUFBQyxDQUFDLENBQUM7UUFkckYsZ0JBQVcsR0FBVyxDQUFDLENBQUM7UUFnQjlCLE1BQU0sYUFBYSxTQUFHLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxhQUFhLG1DQUFJLDJCQUFhLENBQUMsTUFBTSxDQUFDO1FBQ25FLE1BQU0saUJBQWlCLEdBQUcsT0FBQyxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsaUJBQWlCLG1DQUFJLEtBQUssQ0FBQyxJQUFJLGFBQWEsS0FBSywyQkFBYSxDQUFDLE9BQU8sQ0FBQztRQUV6RyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksZUFBTSxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUU7WUFDeEMsVUFBVSxFQUFFLHlCQUFnQixDQUFDLFVBQVU7WUFDdkMsaUJBQWlCLEVBQUUsMEJBQWlCLENBQUMsU0FBUztZQUM5QyxhQUFhO1lBQ2IsaUJBQWlCO1lBQ2pCLFNBQVMsUUFBRSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsU0FBUyxtQ0FBSSxLQUFLO1lBQ3BDLG9CQUFvQixRQUFFLEtBQUss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VyxDQUFDLFFBQVEsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxXQUFXLENBQUMsUUFBb0IsRUFBRSxpQkFBdUI7UUFDdkQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7O09BaUJHO0lBQ0gsY0FBYyxDQUFDLFFBQW9CLEVBQUUsaUJBQXVCO1FBQzFELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLGlCQUFpQixDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BbUJHO0lBQ0gsbUJBQW1CLENBQUMsVUFBK0I7UUFDakQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3JELENBQUM7Q0FFRjtBQWpQRCw0Q0FpUEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbnN0cnVjdH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7QmxvY2tQdWJsaWNBY2Nlc3MsIEJ1Y2tldCwgQnVja2V0RW5jcnlwdGlvbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zM1wiO1xuaW1wb3J0IHtPcmlnaW5BY2Nlc3NJZGVudGl0eX0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jbG91ZGZyb250XCI7XG5pbXBvcnQge0J1Y2tldERlcGxveW1lbnQsIENhY2hlQ29udHJvbCwgSVNvdXJjZSwgU291cmNlfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXMzLWRlcGxveW1lbnRcIjtcbmltcG9ydCB7RHVyYXRpb24sIFJlbW92YWxQb2xpY3l9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHtFeHRlbmRlZENvbnN0cnVjdCwgRXh0ZW5kZWRDb25zdHJ1Y3RQcm9wcywgU3RhbmRhcmRUYWdzfSBmcm9tIFwiLi4vLi4vYXdzLWNka1wiO1xuaW1wb3J0IHtMaWJTdGFuZGFyZFRhZ3N9IGZyb20gXCIuLi8uLi90cnVlbWFya1wiO1xuaW1wb3J0IHtTM09yaWdpbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jbG91ZGZyb250LW9yaWdpbnNcIjtcbmltcG9ydCB7R3JhbnQsIElHcmFudGFibGV9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtaWFtXCI7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBDbG91ZEZyb250QnVja2V0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENsb3VkRnJvbnRCdWNrZXRQcm9wcyBleHRlbmRzIEV4dGVuZGVkQ29uc3RydWN0UHJvcHMge1xuXG4gIC8qKlxuICAgKiBQb2xpY3kgdG8gYXBwbHkgd2hlbiB0aGUgYnVja2V0IGlzIHJlbW92ZWQgZnJvbSB0aGlzIHN0YWNrLlxuICAgKiBAZGVmYXVsdCBSZW1vdmFsUG9saWN5LlJFVEFJTlxuICAgKi9cbiAgcmVhZG9ubHkgcmVtb3ZhbFBvbGljeT86IFJlbW92YWxQb2xpY3k7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgYWxsIG9iamVjdHMgc2hvdWxkIGJlIGF1dG9tYXRpY2FsbHkgZGVsZXRlZCB3aGVuIHRoZSBidWNrZXQgaXMgcmVtb3ZlZCBmcm9tIHRoZSBzdGFjayBvciB3aGVuIHRoZSBzdGFjayBpcyBkZWxldGVkLlxuICAgKiBSZXF1aXJlcyB0aGUgcmVtb3ZhbFBvbGljeSB0byBiZSBzZXQgdG8gUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLiBEZWZhdWx0IGlzIGZhbHNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgYXV0b0RlbGV0ZU9iamVjdHM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoaXMgYnVja2V0IHNob3VsZCBoYXZlIHZlcnNpb25pbmcgdHVybmVkIG9uIG9yIG5vdC4gRGVmYXVsdCBpcyBmYWxzZS5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHZlcnNpb25lZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBidWNrZXQgc2hvdWxkIGhhdmUgdHJhbnNmZXIgYWNjZWxlcmF0aW9uIHR1cm5lZCBvbiBvciBub3QuIERlZmF1bHQgaXMgZmFsc2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSB0cmFuc2ZlckFjY2VsZXJhdGlvbj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGJ1Y2tldCBuYW1lLiBJZiBub3QgcHJvdmlkZWQsIGEgbmFtZSB3aWxsIGJlIGdlbmVyYXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGJ1Y2tldE5hbWU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogU2ltcGxlIENvbnN0cnVjdCBmb3IgY3JlYXRpbmcgYnVja2V0cyB0aGF0IHdpbGwgYmUgYWNjZXNzZWQgZGlyZWN0bHkgYnkgQ2xvdWRGcm9udCBhcyBhbiBPcmlnaW4uXG4gKi9cbmV4cG9ydCBjbGFzcyBDbG91ZEZyb250QnVja2V0IGV4dGVuZHMgRXh0ZW5kZWRDb25zdHJ1Y3Qge1xuXG4gIHByaXZhdGUgZGVwbG95Q291bnQ6IG51bWJlciA9IDA7XG5cbiAgcmVhZG9ubHkgYnVja2V0OiBCdWNrZXQ7XG4gIHJlYWRvbmx5IGJ1Y2tldE5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgYnVja2V0QXJuOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG9yaWdpbkFjY2Vzc0lkZW50aXR5OiBPcmlnaW5BY2Nlc3NJZGVudGl0eTtcbiAgcmVhZG9ubHkgb3JpZ2luQWNjZXNzSWRlbnRpdHlJZDogc3RyaW5nO1xuXG4gIHByaXZhdGUgbmV4dERlcGxveUNvdW50KCk6IHN0cmluZyB7XG4gICAgbGV0IGN1cnJlbnQgPSB0aGlzLmRlcGxveUNvdW50Kys7XG4gICAgcmV0dXJuIGN1cnJlbnQgPT09IDAgPyAnJyA6IGAke2N1cnJlbnR9YDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogQ2xvdWRGcm9udEJ1Y2tldFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7c3RhbmRhcmRUYWdzOiBTdGFuZGFyZFRhZ3MubWVyZ2UocHJvcHM/LnN0YW5kYXJkVGFncywgTGliU3RhbmRhcmRUYWdzKX0pO1xuXG4gICAgY29uc3QgcmVtb3ZhbFBvbGljeSA9IHByb3BzPy5yZW1vdmFsUG9saWN5ID8/IFJlbW92YWxQb2xpY3kuUkVUQUlOO1xuICAgIGNvbnN0IGF1dG9EZWxldGVPYmplY3RzID0gKHByb3BzPy5hdXRvRGVsZXRlT2JqZWN0cyA/PyBmYWxzZSkgJiYgcmVtb3ZhbFBvbGljeSA9PT0gUmVtb3ZhbFBvbGljeS5ERVNUUk9ZO1xuXG4gICAgdGhpcy5idWNrZXQgPSBuZXcgQnVja2V0KHRoaXMsIFwiRGVmYXVsdFwiLCB7XG4gICAgICBlbmNyeXB0aW9uOiBCdWNrZXRFbmNyeXB0aW9uLlMzX01BTkFHRUQsIC8vIENsb3VkRnJvbnQgY2Fubm90IHVzZSBLTVMgd2l0aCBTM1xuICAgICAgYmxvY2tQdWJsaWNBY2Nlc3M6IEJsb2NrUHVibGljQWNjZXNzLkJMT0NLX0FMTCxcbiAgICAgIHJlbW92YWxQb2xpY3ksXG4gICAgICBhdXRvRGVsZXRlT2JqZWN0cyxcbiAgICAgIHZlcnNpb25lZDogcHJvcHM/LnZlcnNpb25lZCA/PyBmYWxzZSxcbiAgICAgIHRyYW5zZmVyQWNjZWxlcmF0aW9uOiBwcm9wcz8udHJhbnNmZXJBY2NlbGVyYXRpb24gPz8gZmFsc2UsXG4gICAgICBidWNrZXROYW1lOiBwcm9wcz8uYnVja2V0TmFtZVxuICAgIH0pO1xuICAgIHRoaXMuYnVja2V0TmFtZSA9IHRoaXMuYnVja2V0LmJ1Y2tldE5hbWU7XG4gICAgdGhpcy5idWNrZXRBcm4gPSB0aGlzLmJ1Y2tldC5idWNrZXRBcm47XG4gICAgdGhpcy5vcmlnaW5BY2Nlc3NJZGVudGl0eSA9IG5ldyBPcmlnaW5BY2Nlc3NJZGVudGl0eSh0aGlzLCBcIkFjY2Vzc1wiLCB7XG4gICAgICBjb21tZW50OiBgUzMgYnVja2V0ICR7dGhpcy5idWNrZXQuYnVja2V0TmFtZX1gXG4gICAgfSk7XG4gICAgdGhpcy5vcmlnaW5BY2Nlc3NJZGVudGl0eUlkID0gdGhpcy5vcmlnaW5BY2Nlc3NJZGVudGl0eS5vcmlnaW5BY2Nlc3NJZGVudGl0eUlkO1xuICAgIHRoaXMuYnVja2V0LmdyYW50UmVhZCh0aGlzLm9yaWdpbkFjY2Vzc0lkZW50aXR5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIZWxwZXIgbWV0aG9kIHRvIGRlcGxveSBsb2NhbCBhc3NldHMgdG8gdGhlIGNyZWF0ZWQgYnVja2V0LiBUaHMgZnVuY3Rpb24gYXNzdW1lc1xuICAgKiBDbG91ZEZyb250IGludmFsaWRhdGlvbiByZXF1ZXN0cyB3aWxsIGJlIHNlbnQgZm9yIG11dGFibGUgZmlsZXMgdG8gc2VydmUgbmV3IGNvbnRlbnQuXG4gICAqIEZvciBtb3JlIGNvbXBsaWNhdGVkIGRlcGxveW1lbnRzLCB1c2UgQnVja2V0RGVwbG95bWVudCBkaXJlY3RseS5cbiAgICpcbiAgICogQHBhcmFtIHBhdGhzIHRoZSBwYXRocyB0byB0aGUgbG9jYWwgYXNzZXRzXG4gICAqIEBwYXJhbSBtYXhBZ2UgdGhlIGxlbmd0aCBvZiB0aW1lIHRvIGJyb3dzZXJzIHdpbGwgY2FjaGUgZmlsZXM7IGRlZmF1bHQgaXMgRHVyYXRpb24ubWludXRlcygxNSlcbiAgICogQHBhcmFtIHNNYXhBZ2UgdGhlIGxlbmd0aCBvZiB0aW1lIENsb3VkRnJvbnQgd2lsbCBjYWNoZSBmaWxlczsgZGVmYXVsdCBpcyBEdXJhdGlvbi5kYXlzKDcpXG4gICAqIEBwYXJhbSBwcnVuZSB0cnVlIHRvIHBydW5lIG9sZCBmaWxlczsgZGVmYXVsdCBpcyBmYWxzZVxuICAgKi9cbiAgZGVwbG95UGF0aHMocGF0aHM6IHN0cmluZ1tdLCBtYXhBZ2U/OiBEdXJhdGlvbiwgc01heEFnZT86IER1cmF0aW9uLCBwcnVuZT86IGJvb2xlYW4pOiBCdWNrZXREZXBsb3ltZW50IHtcbiAgICByZXR1cm4gbmV3IEJ1Y2tldERlcGxveW1lbnQodGhpcywgYERlcGxveSR7dGhpcy5uZXh0RGVwbG95Q291bnQoKX1gLCB7XG4gICAgICBzb3VyY2VzOiBwYXRocy5tYXAocGF0aCA9PiBTb3VyY2UuYXNzZXQocGF0aCkpLFxuICAgICAgZGVzdGluYXRpb25CdWNrZXQ6IHRoaXMuYnVja2V0LFxuICAgICAgcHJ1bmU6IHBydW5lID8/IGZhbHNlLFxuICAgICAgY2FjaGVDb250cm9sOiBbXG4gICAgICAgIENhY2hlQ29udHJvbC5zZXRQdWJsaWMoKSxcbiAgICAgICAgQ2FjaGVDb250cm9sLm1heEFnZShtYXhBZ2UgPz8gRHVyYXRpb24ubWludXRlcygxNSkpLFxuICAgICAgICBDYWNoZUNvbnRyb2wuc01heEFnZShzTWF4QWdlID8/IER1cmF0aW9uLmRheXMoNykpXG4gICAgICBdXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogSGVscGVyIG1ldGhvZCB0byBkZXBsb3kgbG9jYWwgYXNzZXRzIHRvIHRoZSBjcmVhdGVkIGJ1Y2tldC4gVGhzIGZ1bmN0aW9uIGFzc3VtZXNcbiAgICogQ2xvdWRGcm9udCBpbnZhbGlkYXRpb24gcmVxdWVzdHMgd2lsbCBiZSBzZW50IGZvciBtdXRhYmxlIGZpbGVzIHRvIHNlcnZlIG5ldyBjb250ZW50LlxuICAgKiBGb3IgbW9yZSBjb21wbGljYXRlZCBkZXBsb3ltZW50cywgdXNlIEJ1Y2tldERlcGxveW1lbnQgZGlyZWN0bHkuXG4gICAqXG4gICAqIEBwYXJhbSBwYXRoIHRoZSBwYXRoIHRvIHRoZSBsb2NhbCBhc3NldHNcbiAgICogQHBhcmFtIG1heEFnZSB0aGUgbGVuZ3RoIG9mIHRpbWUgdG8gYnJvd3NlcnMgd2lsbCBjYWNoZSBmaWxlczsgZGVmYXVsdCBpcyBEdXJhdGlvbi5taW51dGVzKDE1KVxuICAgKiBAcGFyYW0gc01heEFnZSB0aGUgbGVuZ3RoIG9mIHRpbWUgQ2xvdWRGcm9udCB3aWxsIGNhY2hlIGZpbGVzOyBkZWZhdWx0IGlzIER1cmF0aW9uLmRheXMoNylcbiAgICogQHBhcmFtIHBydW5lIHRydWUgdG8gcHJ1bmUgb2xkIGZpbGVzOyBkZWZhdWx0IGlzIGZhbHNlXG4gICAqL1xuICBkZXBsb3lQYXRoKHBhdGg6IHN0cmluZywgbWF4QWdlPzogRHVyYXRpb24sIHNNYXhBZ2U/OiBEdXJhdGlvbiwgcHJ1bmU/OiBib29sZWFuKTogQnVja2V0RGVwbG95bWVudCB7XG4gICAgcmV0dXJuIHRoaXMuZGVwbG95UGF0aHMoW3BhdGhdLCBtYXhBZ2UsIHNNYXhBZ2UsIHBydW5lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIZWxwZXIgbWV0aG9kIHRvIGFzc2V0cyB0byB0aGUgY3JlYXRlZCBidWNrZXQuIFRoaXMgZnVuY3Rpb24gYXNzdW1lcyBDbG91ZEZyb250IGludmFsaWRhdGlvblxuICAgKiByZXF1ZXN0cyB3aWxsIGJlIHNlbnQgZm9yIG11dGFibGUgZmlsZXMgdG8gc2VydmUgbmV3IGNvbnRlbnQuXG4gICAqIEZvciBtb3JlIGNvbXBsaWNhdGVkIGRlcGxveW1lbnRzLCB1c2UgQnVja2V0RGVwbG95bWVudCBkaXJlY3RseS5cbiAgICpcbiAgICogQHBhcmFtIHNvdXJjZXMgdGhlIHNvdXJjZXMgdG8gZGVwbG95XG4gICAqIEBwYXJhbSBtYXhBZ2UgdGhlIGxlbmd0aCBvZiB0aW1lIHRvIGJyb3dzZXJzIHdpbGwgY2FjaGUgZmlsZXM7IGRlZmF1bHQgaXMgRHVyYXRpb24ubWludXRlcygxNSlcbiAgICogQHBhcmFtIHNNYXhBZ2UgdGhlIGxlbmd0aCBvZiB0aW1lIENsb3VkRnJvbnQgd2lsbCBjYWNoZSBmaWxlczsgZGVmYXVsdCBpcyBEdXJhdGlvbi5kYXlzKDcpXG4gICAqIEBwYXJhbSBwcnVuZSB0cnVlIHRvIHBydW5lIG9sZCBmaWxlczsgZGVmYXVsdCBpcyBmYWxzZVxuICAgKi9cbiAgZGVwbG95U291cmNlcyhzb3VyY2VzOiBJU291cmNlW10sIG1heEFnZT86IER1cmF0aW9uLCBzTWF4QWdlPzogRHVyYXRpb24sIHBydW5lPzogYm9vbGVhbik6IEJ1Y2tldERlcGxveW1lbnQge1xuICAgIHJldHVybiBuZXcgQnVja2V0RGVwbG95bWVudCh0aGlzLCBgRGVwbG95JHt0aGlzLm5leHREZXBsb3lDb3VudCgpfWAsIHtcbiAgICAgIHNvdXJjZXM6IHNvdXJjZXMsXG4gICAgICBkZXN0aW5hdGlvbkJ1Y2tldDogdGhpcy5idWNrZXQsXG4gICAgICBwcnVuZTogcHJ1bmUgPz8gZmFsc2UsXG4gICAgICBjYWNoZUNvbnRyb2w6IFtcbiAgICAgICAgQ2FjaGVDb250cm9sLnNldFB1YmxpYygpLFxuICAgICAgICBDYWNoZUNvbnRyb2wubWF4QWdlKG1heEFnZSA/PyBEdXJhdGlvbi5taW51dGVzKDE1KSksXG4gICAgICAgIENhY2hlQ29udHJvbC5zTWF4QWdlKHNNYXhBZ2UgPz8gRHVyYXRpb24uZGF5cyg3KSlcbiAgICAgIF1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIZWxwZXIgbWV0aG9kIHRvIGFzc2V0cyB0byB0aGUgY3JlYXRlZCBidWNrZXQuIFRoaXMgZnVuY3Rpb24gYXNzdW1lcyBDbG91ZEZyb250IGludmFsaWRhdGlvblxuICAgKiByZXF1ZXN0cyB3aWxsIGJlIHNlbnQgZm9yIG11dGFibGUgZmlsZXMgdG8gc2VydmUgbmV3IGNvbnRlbnQuXG4gICAqIEZvciBtb3JlIGNvbXBsaWNhdGVkIGRlcGxveW1lbnRzLCB1c2UgQnVja2V0RGVwbG95bWVudCBkaXJlY3RseS5cbiAgICpcbiAgICogQHBhcmFtIHNvdXJjZSB0aGUgc291cmNlIHRvIGRlcGxveVxuICAgKiBAcGFyYW0gbWF4QWdlIHRoZSBsZW5ndGggb2YgdGltZSB0byBicm93c2VycyB3aWxsIGNhY2hlIGZpbGVzOyBkZWZhdWx0IGlzIER1cmF0aW9uLm1pbnV0ZXMoMTUpXG4gICAqIEBwYXJhbSBzTWF4QWdlIHRoZSBsZW5ndGggb2YgdGltZSBDbG91ZEZyb250IHdpbGwgY2FjaGUgZmlsZXM7IGRlZmF1bHQgaXMgRHVyYXRpb24uZGF5cyg3KVxuICAgKiBAcGFyYW0gcHJ1bmUgdHJ1ZSB0byBwcnVuZSBvbGQgZmlsZXM7IGRlZmF1bHQgaXMgZmFsc2VcbiAgICovXG4gIGRlcGxveVNvdXJjZShzb3VyY2U6IElTb3VyY2UsIG1heEFnZT86IER1cmF0aW9uLCBzTWF4QWdlPzogRHVyYXRpb24sIHBydW5lPzogYm9vbGVhbik6IEJ1Y2tldERlcGxveW1lbnQge1xuICAgIHJldHVybiB0aGlzLmRlcGxveVNvdXJjZXMoW3NvdXJjZV0sIG1heEFnZSwgc01heEFnZSwgcHJ1bmUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhlbHBlciBtZXRob2QgdG8gcmV0dXJuIGEgQ2xvdWRGcm9udCBPcmlnaW4gZm9yIHRoaXMgYnVja2V0LlxuICAgKi9cbiAgdG9PcmlnaW4oKTogUzNPcmlnaW4ge1xuICAgIHJldHVybiBuZXcgUzNPcmlnaW4odGhpcy5idWNrZXQsIHtcbiAgICAgIG9yaWdpbkFjY2Vzc0lkZW50aXR5OiB0aGlzLm9yaWdpbkFjY2Vzc0lkZW50aXR5XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnQgcmVhZCBwZXJtaXNzaW9ucyBmb3IgdGhpcyBidWNrZXQgYW5kIGl0J3MgY29udGVudHMgdG8gYW4gSUFNXG4gICAqIHByaW5jaXBhbCAoUm9sZS9Hcm91cC9Vc2VyKS5cbiAgICpcbiAgICogSWYgZW5jcnlwdGlvbiBpcyB1c2VkLCBwZXJtaXNzaW9uIHRvIHVzZSB0aGUga2V5IHRvIGRlY3J5cHQgdGhlIGNvbnRlbnRzXG4gICAqIG9mIHRoZSBidWNrZXQgd2lsbCBhbHNvIGJlIGdyYW50ZWQgdG8gdGhlIHNhbWUgcHJpbmNpcGFsLlxuICAgKlxuICAgKiBAcGFyYW0gaWRlbnRpdHkgVGhlIHByaW5jaXBhbFxuICAgKiBAcGFyYW0gb2JqZWN0c0tleVBhdHRlcm4gUmVzdHJpY3QgdGhlIHBlcm1pc3Npb24gdG8gYSBjZXJ0YWluIGtleSBwYXR0ZXJuIChkZWZhdWx0ICcqJylcbiAgICovXG4gIGdyYW50UmVhZChpZGVudGl0eTogSUdyYW50YWJsZSwgb2JqZWN0c0tleVBhdHRlcm4/OiBhbnkpOiBHcmFudCB7XG4gICAgcmV0dXJuIHRoaXMuYnVja2V0LmdyYW50UmVhZChpZGVudGl0eSwgb2JqZWN0c0tleVBhdHRlcm4pO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50IHdyaXRlIHBlcm1pc3Npb25zIHRvIHRoaXMgYnVja2V0IHRvIGFuIElBTSBwcmluY2lwYWwuXG4gICAqXG4gICAqIElmIGVuY3J5cHRpb24gaXMgdXNlZCwgcGVybWlzc2lvbiB0byB1c2UgdGhlIGtleSB0byBlbmNyeXB0IHRoZSBjb250ZW50c1xuICAgKiBvZiB3cml0dGVuIGZpbGVzIHdpbGwgYWxzbyBiZSBncmFudGVkIHRvIHRoZSBzYW1lIHByaW5jaXBhbC5cbiAgICpcbiAgICogQmVmb3JlIENESyB2ZXJzaW9uIDEuODUuMCwgdGhpcyBtZXRob2QgZ3JhbnRlZCB0aGUgYHMzOlB1dE9iamVjdCpgIHBlcm1pc3Npb24gdGhhdCBpbmNsdWRlZCBgczM6UHV0T2JqZWN0QWNsYCxcbiAgICogd2hpY2ggY291bGQgYmUgdXNlZCB0byBncmFudCByZWFkL3dyaXRlIG9iamVjdCBhY2Nlc3MgdG8gSUFNIHByaW5jaXBhbHMgaW4gb3RoZXIgYWNjb3VudHMuXG4gICAqIElmIHlvdSB3YW50IHRvIGdldCByaWQgb2YgdGhhdCBiZWhhdmlvciwgdXBkYXRlIHlvdXIgQ0RLIHZlcnNpb24gdG8gMS44NS4wIG9yIGxhdGVyLFxuICAgKiBhbmQgbWFrZSBzdXJlIHRoZSBgQGF3cy1jZGsvYXdzLXMzOmdyYW50V3JpdGVXaXRob3V0QWNsYCBmZWF0dXJlIGZsYWcgaXMgc2V0IHRvIGB0cnVlYFxuICAgKiBpbiB0aGUgYGNvbnRleHRgIGtleSBvZiB5b3VyIGNkay5qc29uIGZpbGUuXG4gICAqIElmIHlvdSd2ZSBhbHJlYWR5IHVwZGF0ZWQsIGJ1dCBzdGlsbCBuZWVkIHRoZSBwcmluY2lwYWwgdG8gaGF2ZSBwZXJtaXNzaW9ucyB0byBtb2RpZnkgdGhlIEFDTHMsXG4gICAqIHVzZSB0aGUgYGdyYW50UHV0QWNsYCBtZXRob2QuXG4gICAqXG4gICAqIEBwYXJhbSBpZGVudGl0eSBUaGUgcHJpbmNpcGFsXG4gICAqIEBwYXJhbSBvYmplY3RzS2V5UGF0dGVybiBSZXN0cmljdCB0aGUgcGVybWlzc2lvbiB0byBhIGNlcnRhaW4ga2V5IHBhdHRlcm4gKGRlZmF1bHQgJyonKVxuICAgKiBAcGFyYW0gYWxsb3dlZEFjdGlvblBhdHRlcm5zIFJlc3RyaWN0IHRoZSBwZXJtaXNzaW9ucyB0byBjZXJ0YWluIGxpc3Qgb2YgYWN0aW9uIHBhdHRlcm5zXG4gICAqL1xuICBncmFudFdyaXRlKGlkZW50aXR5OiBJR3JhbnRhYmxlLCBvYmplY3RzS2V5UGF0dGVybj86IGFueSwgYWxsb3dlZEFjdGlvblBhdHRlcm5zPzogc3RyaW5nW10pOiBHcmFudCB7XG4gICAgcmV0dXJuIHRoaXMuYnVja2V0LmdyYW50V3JpdGUoaWRlbnRpdHksIG9iamVjdHNLZXlQYXR0ZXJuLCBhbGxvd2VkQWN0aW9uUGF0dGVybnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBzMzpQdXRPYmplY3QqIGFuZCBzMzpBYm9ydCogcGVybWlzc2lvbnMgZm9yIHRoaXMgYnVja2V0IHRvIGFuIElBTSBwcmluY2lwYWwuXG4gICAqXG4gICAqIElmIGVuY3J5cHRpb24gaXMgdXNlZCwgcGVybWlzc2lvbiB0byB1c2UgdGhlIGtleSB0byBlbmNyeXB0IHRoZSBjb250ZW50c1xuICAgKiBvZiB3cml0dGVuIGZpbGVzIHdpbGwgYWxzbyBiZSBncmFudGVkIHRvIHRoZSBzYW1lIHByaW5jaXBhbC5cbiAgICogQHBhcmFtIGlkZW50aXR5IFRoZSBwcmluY2lwYWxcbiAgICogQHBhcmFtIG9iamVjdHNLZXlQYXR0ZXJuIFJlc3RyaWN0IHRoZSBwZXJtaXNzaW9uIHRvIGEgY2VydGFpbiBrZXkgcGF0dGVybiAoZGVmYXVsdCAnKicpXG4gICAqL1xuICBncmFudFB1dChpZGVudGl0eTogSUdyYW50YWJsZSwgb2JqZWN0c0tleVBhdHRlcm4/OiBhbnkpOiBHcmFudCB7XG4gICAgcmV0dXJuIHRoaXMuYnVja2V0LmdyYW50UHV0KGlkZW50aXR5LCBvYmplY3RzS2V5UGF0dGVybik7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnQgdGhlIGdpdmVuIElBTSBpZGVudGl0eSBwZXJtaXNzaW9ucyB0byBtb2RpZnkgdGhlIEFDTHMgb2Ygb2JqZWN0cyBpbiB0aGUgZ2l2ZW4gQnVja2V0LlxuICAgKlxuICAgKiBJZiB5b3VyIGFwcGxpY2F0aW9uIGhhcyB0aGUgJ0Bhd3MtY2RrL2F3cy1zMzpncmFudFdyaXRlV2l0aG91dEFjbCcgZmVhdHVyZSBmbGFnIHNldCxcbiAgICogY2FsbGluZyBgZ3JhbnRXcml0ZWAgb3IgYGdyYW50UmVhZFdyaXRlYCBubyBsb25nZXIgZ3JhbnRzIHBlcm1pc3Npb25zIHRvIG1vZGlmeSB0aGUgQUNMcyBvZiB0aGUgb2JqZWN0cztcbiAgICogaW4gdGhpcyBjYXNlLCBpZiB5b3UgbmVlZCB0byBtb2RpZnkgb2JqZWN0IEFDTHMsIGNhbGwgdGhpcyBtZXRob2QgZXhwbGljaXRseS5cbiAgICpcbiAgICogQHBhcmFtIGlkZW50aXR5IFRoZSBwcmluY2lwYWxcbiAgICogQHBhcmFtIG9iamVjdHNLZXlQYXR0ZXJuIFJlc3RyaWN0IHRoZSBwZXJtaXNzaW9uIHRvIGEgY2VydGFpbiBrZXkgcGF0dGVybiAoZGVmYXVsdCAnKicpXG4gICAqL1xuICBncmFudFB1dEFjbChpZGVudGl0eTogSUdyYW50YWJsZSwgb2JqZWN0c0tleVBhdHRlcm4/OiBzdHJpbmcpOiBHcmFudCB7XG4gICAgcmV0dXJuIHRoaXMuYnVja2V0LmdyYW50UHV0QWNsKGlkZW50aXR5LCBvYmplY3RzS2V5UGF0dGVybik7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHMzOkRlbGV0ZU9iamVjdCogcGVybWlzc2lvbiB0byBhbiBJQU0gcHJpbmNpcGFsIGZvciBvYmplY3RzXG4gICAqIGluIHRoaXMgYnVja2V0LlxuICAgKlxuICAgKiBAcGFyYW0gaWRlbnRpdHkgVGhlIHByaW5jaXBhbFxuICAgKiBAcGFyYW0gb2JqZWN0c0tleVBhdHRlcm4gUmVzdHJpY3QgdGhlIHBlcm1pc3Npb24gdG8gYSBjZXJ0YWluIGtleSBwYXR0ZXJuIChkZWZhdWx0ICcqJylcbiAgICovXG4gIGdyYW50RGVsZXRlKGlkZW50aXR5OiBJR3JhbnRhYmxlLCBvYmplY3RzS2V5UGF0dGVybj86IGFueSk6IEdyYW50IHtcbiAgICByZXR1cm4gdGhpcy5idWNrZXQuZ3JhbnREZWxldGUoaWRlbnRpdHksIG9iamVjdHNLZXlQYXR0ZXJuKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcmVhZC93cml0ZSBwZXJtaXNzaW9ucyBmb3IgdGhpcyBidWNrZXQgYW5kIGl0J3MgY29udGVudHMgdG8gYW4gSUFNXG4gICAqIHByaW5jaXBhbCAoUm9sZS9Hcm91cC9Vc2VyKS5cbiAgICpcbiAgICogSWYgYW4gZW5jcnlwdGlvbiBrZXkgaXMgdXNlZCwgcGVybWlzc2lvbiB0byB1c2UgdGhlIGtleSBmb3JcbiAgICogZW5jcnlwdC9kZWNyeXB0IHdpbGwgYWxzbyBiZSBncmFudGVkLlxuICAgKlxuICAgKiBCZWZvcmUgQ0RLIHZlcnNpb24gMS44NS4wLCB0aGlzIG1ldGhvZCBncmFudGVkIHRoZSBgczM6UHV0T2JqZWN0KmAgcGVybWlzc2lvbiB0aGF0IGluY2x1ZGVkIGBzMzpQdXRPYmplY3RBY2xgLFxuICAgKiB3aGljaCBjb3VsZCBiZSB1c2VkIHRvIGdyYW50IHJlYWQvd3JpdGUgb2JqZWN0IGFjY2VzcyB0byBJQU0gcHJpbmNpcGFscyBpbiBvdGhlciBhY2NvdW50cy5cbiAgICogSWYgeW91IHdhbnQgdG8gZ2V0IHJpZCBvZiB0aGF0IGJlaGF2aW9yLCB1cGRhdGUgeW91ciBDREsgdmVyc2lvbiB0byAxLjg1LjAgb3IgbGF0ZXIsXG4gICAqIGFuZCBtYWtlIHN1cmUgdGhlIGBAYXdzLWNkay9hd3MtczM6Z3JhbnRXcml0ZVdpdGhvdXRBY2xgIGZlYXR1cmUgZmxhZyBpcyBzZXQgdG8gYHRydWVgXG4gICAqIGluIHRoZSBgY29udGV4dGAga2V5IG9mIHlvdXIgY2RrLmpzb24gZmlsZS5cbiAgICogSWYgeW91J3ZlIGFscmVhZHkgdXBkYXRlZCwgYnV0IHN0aWxsIG5lZWQgdGhlIHByaW5jaXBhbCB0byBoYXZlIHBlcm1pc3Npb25zIHRvIG1vZGlmeSB0aGUgQUNMcyxcbiAgICogdXNlIHRoZSBgZ3JhbnRQdXRBY2xgIG1ldGhvZC5cbiAgICpcbiAgICogQHBhcmFtIGlkZW50aXR5IFRoZSBwcmluY2lwYWxcbiAgICogQHBhcmFtIG9iamVjdHNLZXlQYXR0ZXJuIFJlc3RyaWN0IHRoZSBwZXJtaXNzaW9uIHRvIGEgY2VydGFpbiBrZXkgcGF0dGVybiAoZGVmYXVsdCAnKicpXG4gICAqL1xuICBncmFudFJlYWRXcml0ZShpZGVudGl0eTogSUdyYW50YWJsZSwgb2JqZWN0c0tleVBhdHRlcm4/OiBhbnkpOiBHcmFudCB7XG4gICAgcmV0dXJuIHRoaXMuYnVja2V0LmdyYW50UmVhZFdyaXRlKGlkZW50aXR5LCBvYmplY3RzS2V5UGF0dGVybik7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHN0YXRlbWVudCB0byB0aGUgcmVzb3VyY2UgcG9saWN5IGZvciBhIHByaW5jaXBhbCAoaS5lLlxuICAgKiBhY2NvdW50L3JvbGUvc2VydmljZSkgdG8gcGVyZm9ybSBhY3Rpb25zIG9uIHRoaXMgYnVja2V0IGFuZC9vciBpdHNcbiAgICogY29udGVudHMuIFVzZSBgYnVja2V0QXJuYCBhbmQgYGFybkZvck9iamVjdHMoa2V5cylgIHRvIG9idGFpbiBBUk5zIGZvclxuICAgKiB0aGlzIGJ1Y2tldCBvciBvYmplY3RzLlxuICAgKlxuICAgKiBOb3RlIHRoYXQgdGhlIHBvbGljeSBzdGF0ZW1lbnQgbWF5IG9yIG1heSBub3QgYmUgYWRkZWQgdG8gdGhlIHBvbGljeS5cbiAgICogRm9yIGV4YW1wbGUsIHdoZW4gYW4gYElCdWNrZXRgIGlzIGNyZWF0ZWQgZnJvbSBhbiBleGlzdGluZyBidWNrZXQsXG4gICAqIGl0J3Mgbm90IHBvc3NpYmxlIHRvIHRlbGwgd2hldGhlciB0aGUgYnVja2V0IGFscmVhZHkgaGFzIGEgcG9saWN5XG4gICAqIGF0dGFjaGVkLCBsZXQgYWxvbmUgdG8gcmUtdXNlIHRoYXQgcG9saWN5IHRvIGFkZCBtb3JlIHN0YXRlbWVudHMgdG8gaXQuXG4gICAqIFNvIGl0J3Mgc2FmZXN0IHRvIGRvIG5vdGhpbmcgaW4gdGhlc2UgY2FzZXMuXG4gICAqXG4gICAqIEBwYXJhbSBwZXJtaXNzaW9uIHRoZSBwb2xpY3kgc3RhdGVtZW50IHRvIGJlIGFkZGVkIHRvIHRoZSBidWNrZXQnc1xuICAgKiBwb2xpY3kuXG4gICAqIEByZXR1cm5zIG1ldGFkYXRhIGFib3V0IHRoZSBleGVjdXRpb24gb2YgdGhpcyBtZXRob2QuIElmIHRoZSBwb2xpY3lcbiAgICogd2FzIG5vdCBhZGRlZCwgdGhlIHZhbHVlIG9mIGBzdGF0ZW1lbnRBZGRlZGAgd2lsbCBiZSBgZmFsc2VgLiBZb3VcbiAgICogc2hvdWxkIGFsd2F5cyBjaGVjayB0aGlzIHZhbHVlIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBvcGVyYXRpb24gd2FzXG4gICAqIGFjdHVhbGx5IGNhcnJpZWQgb3V0LiBPdGhlcndpc2UsIHN5bnRoZXNpcyBhbmQgZGVwbG95IHdpbGwgdGVybWluYXRlXG4gICAqIHNpbGVudGx5LCB3aGljaCBtYXkgYmUgY29uZnVzaW5nLlxuICAgKi9cbiAgYWRkVG9SZXNvdXJjZVBvbGljeShwZXJtaXNzaW9uOiBpYW0uUG9saWN5U3RhdGVtZW50KTogaWFtLkFkZFRvUmVzb3VyY2VQb2xpY3lSZXN1bHQge1xuICAgIHJldHVybiB0aGlzLmJ1Y2tldC5hZGRUb1Jlc291cmNlUG9saWN5KHBlcm1pc3Npb24pO1xuICB9XG5cbn1cbiJdfQ==
@@ -5,6 +5,7 @@ import { ARecord, IHostedZone } from "aws-cdk-lib/aws-route53";
5
5
  import { RemovalPolicy, Duration } from "aws-cdk-lib";
6
6
  import { BucketDeployment } from "aws-cdk-lib/aws-s3-deployment";
7
7
  import { Grant, IGrantable } from "aws-cdk-lib/aws-iam";
8
+ import * as iam from "aws-cdk-lib/aws-iam";
8
9
  /**
9
10
  * Domain name properties for a bucket based website.
10
11
  */
@@ -136,4 +137,25 @@ export declare class WebsiteBucket extends Construct {
136
137
  * @param objectsKeyPattern Restrict the permission to a certain key pattern (default '*')
137
138
  */
138
139
  grantReadWrite(identity: IGrantable, objectsKeyPattern?: any): Grant;
140
+ /**
141
+ * Adds a statement to the resource policy for a principal (i.e.
142
+ * account/role/service) to perform actions on this bucket and/or its
143
+ * contents. Use `bucketArn` and `arnForObjects(keys)` to obtain ARNs for
144
+ * this bucket or objects.
145
+ *
146
+ * Note that the policy statement may or may not be added to the policy.
147
+ * For example, when an `IBucket` is created from an existing bucket,
148
+ * it's not possible to tell whether the bucket already has a policy
149
+ * attached, let alone to re-use that policy to add more statements to it.
150
+ * So it's safest to do nothing in these cases.
151
+ *
152
+ * @param permission the policy statement to be added to the bucket's
153
+ * policy.
154
+ * @returns metadata about the execution of this method. If the policy
155
+ * was not added, the value of `statementAdded` will be `false`. You
156
+ * should always check this value to make sure that the operation was
157
+ * actually carried out. Otherwise, synthesis and deploy will terminate
158
+ * silently, which may be confusing.
159
+ */
160
+ addToResourcePolicy(permission: iam.PolicyStatement): iam.AddToResourcePolicyResult;
139
161
  }
@@ -162,6 +162,29 @@ class WebsiteBucket extends constructs_1.Construct {
162
162
  grantReadWrite(identity, objectsKeyPattern) {
163
163
  return this.bucket.grantReadWrite(identity, objectsKeyPattern);
164
164
  }
165
+ /**
166
+ * Adds a statement to the resource policy for a principal (i.e.
167
+ * account/role/service) to perform actions on this bucket and/or its
168
+ * contents. Use `bucketArn` and `arnForObjects(keys)` to obtain ARNs for
169
+ * this bucket or objects.
170
+ *
171
+ * Note that the policy statement may or may not be added to the policy.
172
+ * For example, when an `IBucket` is created from an existing bucket,
173
+ * it's not possible to tell whether the bucket already has a policy
174
+ * attached, let alone to re-use that policy to add more statements to it.
175
+ * So it's safest to do nothing in these cases.
176
+ *
177
+ * @param permission the policy statement to be added to the bucket's
178
+ * policy.
179
+ * @returns metadata about the execution of this method. If the policy
180
+ * was not added, the value of `statementAdded` will be `false`. You
181
+ * should always check this value to make sure that the operation was
182
+ * actually carried out. Otherwise, synthesis and deploy will terminate
183
+ * silently, which may be confusing.
184
+ */
185
+ addToResourcePolicy(permission) {
186
+ return this.bucket.addToResourcePolicy(permission);
187
+ }
165
188
  }
166
189
  exports.WebsiteBucket = WebsiteBucket;
167
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vic2l0ZS1idWNrZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ3ZWJzaXRlLWJ1Y2tldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FBcUM7QUFDckMsK0NBQXlGO0FBQ3pGLG1EQUE4RTtBQUM5RSx5REFBMkU7QUFDM0UseUVBQW9FO0FBQ3BFLDZDQUFvRDtBQUNwRCxxRUFBcUY7QUFtRHJGOztHQUVHO0FBQ0gsTUFBYSxhQUFjLFNBQVEsc0JBQVM7SUFTMUMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUEwQjs7UUFDbEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLGFBQWEsU0FBRyxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsYUFBYSxtQ0FBSSwyQkFBYSxDQUFDLE1BQU0sQ0FBQztRQUNuRSxNQUFNLGlCQUFpQixHQUFHLE9BQUMsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLGlCQUFpQixtQ0FBSSxLQUFLLENBQUMsSUFBSSxhQUFhLEtBQUssMkJBQWEsQ0FBQyxPQUFPLENBQUM7UUFFekcsTUFBTSxVQUFVLEdBQUcsQ0FBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsVUFBVSxNQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLHdCQUFVLENBQUM7WUFDOUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTTtZQUMvQixJQUFJLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJO1NBQzVCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxlQUFNLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRTtZQUN4QyxVQUFVLEVBQUUsVUFBVSxhQUFWLFVBQVUsdUJBQVYsVUFBVSxDQUFFLFFBQVEsRUFBRTtZQUNsQyxVQUFVLEVBQUUseUJBQWdCLENBQUMsVUFBVTtZQUN2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Q0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLGlCQUFpQixDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7OztPQWlCRztJQUNILFVBQVUsQ0FBQyxRQUFvQixFQUFFLGlCQUF1QixFQUFFLHFCQUFnQztRQUN4RixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsUUFBUSxDQUFDLFFBQW9CLEVBQUUsaUJBQXVCO1FBQ3BELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLGlCQUFpQixDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNILFdBQVcsQ0FBQyxRQUFvQixFQUFFLGlCQUEwQjtRQUMxRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxXQUFXLENBQUMsUUFBb0IsRUFBRSxpQkFBdUI7UUFDdkQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7O09BaUJHO0lBQ0gsY0FBYyxDQUFDLFFBQW9CLEVBQUUsaUJBQXVCO1FBQzFELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLGlCQUFpQixDQUFDLENBQUM7SUFDakUsQ0FBQztDQUNGO0FBdktELHNDQXVLQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29uc3RydWN0fSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHtCdWNrZXQsIEJ1Y2tldEVuY3J5cHRpb24sIFJlZGlyZWN0VGFyZ2V0LCBSb3V0aW5nUnVsZX0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zM1wiO1xuaW1wb3J0IHtEb21haW5OYW1lLCBMYXRlbmN5QVJlY29yZCwgV2VpZ2h0ZWRBUmVjb3JkfSBmcm9tIFwiLi4vLi4vYXdzLXJvdXRlNTNcIjtcbmltcG9ydCB7QVJlY29yZCwgSUhvc3RlZFpvbmUsIFJlY29yZFRhcmdldH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1yb3V0ZTUzXCI7XG5pbXBvcnQge0J1Y2tldFdlYnNpdGVUYXJnZXR9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtcm91dGU1My10YXJnZXRzXCI7XG5pbXBvcnQge1JlbW92YWxQb2xpY3ksIER1cmF0aW9ufSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7QnVja2V0RGVwbG95bWVudCwgQ2FjaGVDb250cm9sLCBTb3VyY2V9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtczMtZGVwbG95bWVudFwiO1xuaW1wb3J0IHtHcmFudCwgSUdyYW50YWJsZX0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcblxuXG4vKipcbiAqIERvbWFpbiBuYW1lIHByb3BlcnRpZXMgZm9yIGEgYnVja2V0IGJhc2VkIHdlYnNpdGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV2Vic2l0ZURvbWFpbk5hbWVQcm9wcyB7XG5cbiAgcmVhZG9ubHkgcHJlZml4Pzogc3RyaW5nO1xuXG4gIHJlYWRvbmx5IHpvbmU6IHN0cmluZyB8IElIb3N0ZWRab25lO1xuXG4gIHJlYWRvbmx5IHdlaWdodD86IG51bWJlcjtcblxuICByZWFkb25seSBsYXRlbmN5PzogYm9vbGVhbjtcblxuICByZWFkb25seSBjcmVhdGU/OiBib29sZWFuO1xuXG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgV2Vic2l0ZUJ1Y2tldC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXZWJzaXRlQnVja2V0UHJvcHMge1xuXG4gIC8qKlxuICAgKiBQb2xpY3kgdG8gYXBwbHkgd2hlbiB0aGUgYnVja2V0IGlzIHJlbW92ZWQgZnJvbSB0aGlzIHN0YWNrLlxuICAgKiBAZGVmYXVsdCBSZW1vdmFsUG9saWN5LlJFVEFJTlxuICAgKi9cbiAgcmVhZG9ubHkgcmVtb3ZhbFBvbGljeT86IFJlbW92YWxQb2xpY3k7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgYWxsIG9iamVjdHMgc2hvdWxkIGJlIGF1dG9tYXRpY2FsbHkgZGVsZXRlZCB3aGVuIHRoZSBidWNrZXQgaXMgcmVtb3ZlZCBmcm9tIHRoZSBzdGFjayBvciB3aGVuIHRoZSBzdGFjayBpcyBkZWxldGVkLlxuICAgKiBSZXF1aXJlcyB0aGUgcmVtb3ZhbFBvbGljeSB0byBiZSBzZXQgdG8gUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgYXV0b0RlbGV0ZU9iamVjdHM/OiBib29sZWFuO1xuXG4gIHJlYWRvbmx5IGRvbWFpbk5hbWU/OiBXZWJzaXRlRG9tYWluTmFtZVByb3BzO1xuXG4gIHJlYWRvbmx5IHdlYnNpdGVJbmRleERvY3VtZW50Pzogc3RyaW5nO1xuXG4gIHJlYWRvbmx5IHdlYnNpdGVFcnJvckRvY3VtZW50Pzogc3RyaW5nO1xuXG4gIHJlYWRvbmx5IHdlYnNpdGVSZWRpcmVjdD86IFJlZGlyZWN0VGFyZ2V0O1xuXG4gIHJlYWRvbmx5IHdlYnNpdGVSb3V0aW5nUnVsZXM/OiBSb3V0aW5nUnVsZVtdO1xufVxuXG4vKipcbiAqIFNpbXBsZSBDb25zdHJ1Y3QgZm9yIGNyZWF0aW5nIGJ1Y2tldHMgdGhhdCB3aWxsIGJlIGFjY2Vzc2VkIGRpcmVjdGx5IGFzIGEgd2Vic2l0ZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFdlYnNpdGVCdWNrZXQgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuXG4gIHJlYWRvbmx5IGJ1Y2tldDogQnVja2V0O1xuICByZWFkb25seSBidWNrZXROYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGJ1Y2tldEFybjogc3RyaW5nO1xuICByZWFkb25seSBidWNrZXRXZWJzaXRlVXJsOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGJ1Y2tldFdlYnNpdGVEb21haW5OYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHJlY29yZDogQVJlY29yZCB8IFdlaWdodGVkQVJlY29yZCB8IExhdGVuY3lBUmVjb3JkO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogV2Vic2l0ZUJ1Y2tldFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IHJlbW92YWxQb2xpY3kgPSBwcm9wcz8ucmVtb3ZhbFBvbGljeSA/PyBSZW1vdmFsUG9saWN5LlJFVEFJTjtcbiAgICBjb25zdCBhdXRvRGVsZXRlT2JqZWN0cyA9IChwcm9wcz8uYXV0b0RlbGV0ZU9iamVjdHMgPz8gZmFsc2UpICYmIHJlbW92YWxQb2xpY3kgPT09IFJlbW92YWxQb2xpY3kuREVTVFJPWTtcblxuICAgIGNvbnN0IGRvbWFpbk5hbWUgPSBwcm9wcz8uZG9tYWluTmFtZSA9PT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkIDogbmV3IERvbWFpbk5hbWUoe1xuICAgICAgcHJlZml4OiBwcm9wcy5kb21haW5OYW1lLnByZWZpeCxcbiAgICAgIHpvbmU6IHByb3BzLmRvbWFpbk5hbWUuem9uZVxuICAgIH0pO1xuXG4gICAgdGhpcy5idWNrZXQgPSBuZXcgQnVja2V0KHRoaXMsIFwiRGVmYXVsdFwiLCB7XG4gICAgICBidWNrZXROYW1lOiBkb21haW5OYW1lPy50b1N0cmluZygpLFxuICAgICAgZW5jcnlwdGlvbjogQnVja2V0RW5jcnlwdGlvbi5TM19NQU5BR0VELFxuICAgICAgcHVibGljUmVhZEFjY2VzczogdHJ1ZSxcbiAgICAgIHdlYnNpdGVJbmRleERvY3VtZW50OiBwcm9wcz8ud2Vic2l0ZUluZGV4RG9jdW1lbnQgPz8gXCJpbmRleC5odG1sXCIsXG4gICAgICB3ZWJzaXRlRXJyb3JEb2N1bWVudDogcHJvcHM/LndlYnNpdGVFcnJvckRvY3VtZW50ID8/IFwiZXJyb3IuaHRtbFwiLFxuICAgICAgd2Vic2l0ZVJlZGlyZWN0OiBwcm9wcz8ud2Vic2l0ZVJlZGlyZWN0LFxuICAgICAgd2Vic2l0ZVJvdXRpbmdSdWxlczogcHJvcHM/LndlYnNpdGVSb3V0aW5nUnVsZXMsXG4gICAgICByZW1vdmFsUG9saWN5LFxuICAgICAgYXV0b0RlbGV0ZU9iamVjdHMsXG4gICAgfSk7XG4gICAgdGhpcy5idWNrZXROYW1lID0gdGhpcy5idWNrZXQuYnVja2V0TmFtZTtcbiAgICB0aGlzLmJ1Y2tldEFybiA9IHRoaXMuYnVja2V0LmJ1Y2tldEFybjtcbiAgICB0aGlzLmJ1Y2tldFdlYnNpdGVVcmwgPSB0aGlzLmJ1Y2tldC5idWNrZXRXZWJzaXRlVXJsO1xuICAgIHRoaXMuYnVja2V0V2Vic2l0ZURvbWFpbk5hbWUgPSB0aGlzLmJ1Y2tldC5idWNrZXRXZWJzaXRlRG9tYWluTmFtZTtcblxuICAgIGlmIChkb21haW5OYW1lICE9PSB1bmRlZmluZWQgJiYgKHByb3BzPy5kb21haW5OYW1lPy5jcmVhdGUgPz8gdHJ1ZSkpIHtcbiAgICAgIGNvbnN0IHRhcmdldCA9IFJlY29yZFRhcmdldC5mcm9tQWxpYXMobmV3IEJ1Y2tldFdlYnNpdGVUYXJnZXQodGhpcy5idWNrZXQpKTtcbiAgICAgIC8vIFRPRE8gRXZhbHVhdGVcbiAgICAgIGlmIChwcm9wcz8uZG9tYWluTmFtZT8ubGF0ZW5jeSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMucmVjb3JkID0gZG9tYWluTmFtZS5jcmVhdGVMYXRlbmN5QVJlY29yZCh0aGlzLCB0YXJnZXQpO1xuICAgICAgfSBlbHNlIGlmIChwcm9wcz8uZG9tYWluTmFtZT8ud2VpZ2h0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5yZWNvcmQgPSBkb21haW5OYW1lLmNyZWF0ZVdlaWdodGVkQVJlY29yZCh0aGlzLCB0YXJnZXQsIHByb3BzLmRvbWFpbk5hbWUud2VpZ2h0KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVjb3JkID0gZG9tYWluTmFtZS5jcmVhdGVBUmVjb3JkKHRoaXMsIHRhcmdldCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEhlbHBlciBtZXRob2QgdG8gZGVwbG95IGxvY2FsIGFzc2V0cyB0byB0aGUgY3JlYXRlZCBidWNrZXQuIFRocyBmdW5jdGlvbiBhc3N1bWVzXG4gICAqIENsb3VkRnJvbnQgaW52YWxpZGF0aW9uIHJlcXVlc3RzIHdpbGwgYmUgc2VudCBmb3IgbXV0YWJsZSBmaWxlcyB0byBzZXJ2ZSBuZXcgY29udGVudC5cbiAgICogRm9yIG1vcmUgY29tcGxpY2F0ZWQgZGVwbG95bWVudHMsIHVzZSBCdWNrZXREZXBsb3ltZW50IGRpcmVjdGx5LlxuICAgKlxuICAgKiBAcGFyYW0gcGF0aCB0aGUgcGF0aCB0byB0aGUgbG9jYWwgYXNzZXRzXG4gICAqIEBwYXJhbSBtYXhBZ2UgdGhlIGxlbmd0aCBvZiB0aW1lIHRvIGJyb3dzZXJzIHdpbGwgY2FjaGUgZmlsZXM7IGRlZmF1bHQgaXMgRHVyYXRpb24ubWludXRlcygxNSlcbiAgICogQHBhcmFtIHNNYXhBZ2UgdGhlIGxlbmd0aCBvZiB0aW1lIENsb3VkRnJvbnQgd2lsbCBjYWNoZSBmaWxlczsgZGVmYXVsdCBpcyBEdXJhdGlvbi5kYXlzKDcpXG4gICAqIEBwYXJhbSBwcnVuZVxuICAgKi9cbiAgZGVwbG95KHBhdGg6IHN0cmluZywgbWF4QWdlPzogRHVyYXRpb24sIHNNYXhBZ2U/OiBEdXJhdGlvbiwgcHJ1bmU/OiBib29sZWFuKTogQnVja2V0RGVwbG95bWVudCB7XG4gICAgcmV0dXJuIG5ldyBCdWNrZXREZXBsb3ltZW50KHRoaXMsIFwiRGVwbG95XCIsIHtcbiAgICAgIHNvdXJjZXM6IFtTb3VyY2UuYXNzZXQocGF0aCldLFxuICAgICAgZGVzdGluYXRpb25CdWNrZXQ6IHRoaXMuYnVja2V0LFxuICAgICAgcHJ1bmU6IHBydW5lID8/IGZhbHNlLFxuICAgICAgbWVtb3J5TGltaXQ6IDUxMixcbiAgICAgIGNhY2hlQ29udHJvbDogW1xuICAgICAgICBDYWNoZUNvbnRyb2wuc2V0UHVibGljKCksXG4gICAgICAgIENhY2hlQ29udHJvbC5tYXhBZ2UobWF4QWdlID8/IER1cmF0aW9uLm1pbnV0ZXMoMTUpKSxcbiAgICAgICAgQ2FjaGVDb250cm9sLnNNYXhBZ2Uoc01heEFnZSA/PyBEdXJhdGlvbi5kYXlzKDcpKVxuICAgICAgXVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50IHJlYWQgcGVybWlzc2lvbnMgZm9yIHRoaXMgYnVja2V0IGFuZCBpdCdzIGNvbnRlbnRzIHRvIGFuIElBTVxuICAgKiBwcmluY2lwYWwgKFJvbGUvR3JvdXAvVXNlcikuXG4gICAqXG4gICAqIElmIGVuY3J5cHRpb24gaXMgdXNlZCwgcGVybWlzc2lvbiB0byB1c2UgdGhlIGtleSB0byBkZWNyeXB0IHRoZSBjb250ZW50c1xuICAgKiBvZiB0aGUgYnVja2V0IHdpbGwgYWxzbyBiZSBncmFudGVkIHRvIHRoZSBzYW1lIHByaW5jaXBhbC5cbiAgICpcbiAgICogQHBhcmFtIGlkZW50aXR5IFRoZSBwcmluY2lwYWxcbiAgICogQHBhcmFtIG9iamVjdHNLZXlQYXR0ZXJuIFJlc3RyaWN0IHRoZSBwZXJtaXNzaW9uIHRvIGEgY2VydGFpbiBrZXkgcGF0dGVybiAoZGVmYXVsdCAnKicpXG4gICAqL1xuICBncmFudFJlYWQoaWRlbnRpdHk6IElHcmFudGFibGUsIG9iamVjdHNLZXlQYXR0ZXJuPzogYW55KTogR3JhbnQge1xuICAgIHJldHVybiB0aGlzLmJ1Y2tldC5ncmFudFJlYWQoaWRlbnRpdHksIG9iamVjdHNLZXlQYXR0ZXJuKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudCB3cml0ZSBwZXJtaXNzaW9ucyB0byB0aGlzIGJ1Y2tldCB0byBhbiBJQU0gcHJpbmNpcGFsLlxuICAgKlxuICAgKiBJZiBlbmNyeXB0aW9uIGlzIHVzZWQsIHBlcm1pc3Npb24gdG8gdXNlIHRoZSBrZXkgdG8gZW5jcnlwdCB0aGUgY29udGVudHNcbiAgICogb2Ygd3JpdHRlbiBmaWxlcyB3aWxsIGFsc28gYmUgZ3JhbnRlZCB0byB0aGUgc2FtZSBwcmluY2lwYWwuXG4gICAqXG4gICAqIEJlZm9yZSBDREsgdmVyc2lvbiAxLjg1LjAsIHRoaXMgbWV0aG9kIGdyYW50ZWQgdGhlIGBzMzpQdXRPYmplY3QqYCBwZXJtaXNzaW9uIHRoYXQgaW5jbHVkZWQgYHMzOlB1dE9iamVjdEFjbGAsXG4gICAqIHdoaWNoIGNvdWxkIGJlIHVzZWQgdG8gZ3JhbnQgcmVhZC93cml0ZSBvYmplY3QgYWNjZXNzIHRvIElBTSBwcmluY2lwYWxzIGluIG90aGVyIGFjY291bnRzLlxuICAgKiBJZiB5b3Ugd2FudCB0byBnZXQgcmlkIG9mIHRoYXQgYmVoYXZpb3IsIHVwZGF0ZSB5b3VyIENESyB2ZXJzaW9uIHRvIDEuODUuMCBvciBsYXRlcixcbiAgICogYW5kIG1ha2Ugc3VyZSB0aGUgYEBhd3MtY2RrL2F3cy1zMzpncmFudFdyaXRlV2l0aG91dEFjbGAgZmVhdHVyZSBmbGFnIGlzIHNldCB0byBgdHJ1ZWBcbiAgICogaW4gdGhlIGBjb250ZXh0YCBrZXkgb2YgeW91ciBjZGsuanNvbiBmaWxlLlxuICAgKiBJZiB5b3UndmUgYWxyZWFkeSB1cGRhdGVkLCBidXQgc3RpbGwgbmVlZCB0aGUgcHJpbmNpcGFsIHRvIGhhdmUgcGVybWlzc2lvbnMgdG8gbW9kaWZ5IHRoZSBBQ0xzLFxuICAgKiB1c2UgdGhlIGBncmFudFB1dEFjbGAgbWV0aG9kLlxuICAgKlxuICAgKiBAcGFyYW0gaWRlbnRpdHkgVGhlIHByaW5jaXBhbFxuICAgKiBAcGFyYW0gb2JqZWN0c0tleVBhdHRlcm4gUmVzdHJpY3QgdGhlIHBlcm1pc3Npb24gdG8gYSBjZXJ0YWluIGtleSBwYXR0ZXJuIChkZWZhdWx0ICcqJylcbiAgICogQHBhcmFtIGFsbG93ZWRBY3Rpb25QYXR0ZXJucyBSZXN0cmljdCB0aGUgcGVybWlzc2lvbnMgdG8gY2VydGFpbiBsaXN0IG9mIGFjdGlvbiBwYXR0ZXJuc1xuICAgKi9cbiAgZ3JhbnRXcml0ZShpZGVudGl0eTogSUdyYW50YWJsZSwgb2JqZWN0c0tleVBhdHRlcm4/OiBhbnksIGFsbG93ZWRBY3Rpb25QYXR0ZXJucz86IHN0cmluZ1tdKTogR3JhbnQge1xuICAgIHJldHVybiB0aGlzLmJ1Y2tldC5ncmFudFdyaXRlKGlkZW50aXR5LCBvYmplY3RzS2V5UGF0dGVybiwgYWxsb3dlZEFjdGlvblBhdHRlcm5zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgczM6UHV0T2JqZWN0KiBhbmQgczM6QWJvcnQqIHBlcm1pc3Npb25zIGZvciB0aGlzIGJ1Y2tldCB0byBhbiBJQU0gcHJpbmNpcGFsLlxuICAgKlxuICAgKiBJZiBlbmNyeXB0aW9uIGlzIHVzZWQsIHBlcm1pc3Npb24gdG8gdXNlIHRoZSBrZXkgdG8gZW5jcnlwdCB0aGUgY29udGVudHNcbiAgICogb2Ygd3JpdHRlbiBmaWxlcyB3aWxsIGFsc28gYmUgZ3JhbnRlZCB0byB0aGUgc2FtZSBwcmluY2lwYWwuXG4gICAqIEBwYXJhbSBpZGVudGl0eSBUaGUgcHJpbmNpcGFsXG4gICAqIEBwYXJhbSBvYmplY3RzS2V5UGF0dGVybiBSZXN0cmljdCB0aGUgcGVybWlzc2lvbiB0byBhIGNlcnRhaW4ga2V5IHBhdHRlcm4gKGRlZmF1bHQgJyonKVxuICAgKi9cbiAgZ3JhbnRQdXQoaWRlbnRpdHk6IElHcmFudGFibGUsIG9iamVjdHNLZXlQYXR0ZXJuPzogYW55KTogR3JhbnQge1xuICAgIHJldHVybiB0aGlzLmJ1Y2tldC5ncmFudFB1dChpZGVudGl0eSwgb2JqZWN0c0tleVBhdHRlcm4pO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50IHRoZSBnaXZlbiBJQU0gaWRlbnRpdHkgcGVybWlzc2lvbnMgdG8gbW9kaWZ5IHRoZSBBQ0xzIG9mIG9iamVjdHMgaW4gdGhlIGdpdmVuIEJ1Y2tldC5cbiAgICpcbiAgICogSWYgeW91ciBhcHBsaWNhdGlvbiBoYXMgdGhlICdAYXdzLWNkay9hd3MtczM6Z3JhbnRXcml0ZVdpdGhvdXRBY2wnIGZlYXR1cmUgZmxhZyBzZXQsXG4gICAqIGNhbGxpbmcgYGdyYW50V3JpdGVgIG9yIGBncmFudFJlYWRXcml0ZWAgbm8gbG9uZ2VyIGdyYW50cyBwZXJtaXNzaW9ucyB0byBtb2RpZnkgdGhlIEFDTHMgb2YgdGhlIG9iamVjdHM7XG4gICAqIGluIHRoaXMgY2FzZSwgaWYgeW91IG5lZWQgdG8gbW9kaWZ5IG9iamVjdCBBQ0xzLCBjYWxsIHRoaXMgbWV0aG9kIGV4cGxpY2l0bHkuXG4gICAqXG4gICAqIEBwYXJhbSBpZGVudGl0eSBUaGUgcHJpbmNpcGFsXG4gICAqIEBwYXJhbSBvYmplY3RzS2V5UGF0dGVybiBSZXN0cmljdCB0aGUgcGVybWlzc2lvbiB0byBhIGNlcnRhaW4ga2V5IHBhdHRlcm4gKGRlZmF1bHQgJyonKVxuICAgKi9cbiAgZ3JhbnRQdXRBY2woaWRlbnRpdHk6IElHcmFudGFibGUsIG9iamVjdHNLZXlQYXR0ZXJuPzogc3RyaW5nKTogR3JhbnQge1xuICAgIHJldHVybiB0aGlzLmJ1Y2tldC5ncmFudFB1dEFjbChpZGVudGl0eSwgb2JqZWN0c0tleVBhdHRlcm4pO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBzMzpEZWxldGVPYmplY3QqIHBlcm1pc3Npb24gdG8gYW4gSUFNIHByaW5jaXBhbCBmb3Igb2JqZWN0c1xuICAgKiBpbiB0aGlzIGJ1Y2tldC5cbiAgICpcbiAgICogQHBhcmFtIGlkZW50aXR5IFRoZSBwcmluY2lwYWxcbiAgICogQHBhcmFtIG9iamVjdHNLZXlQYXR0ZXJuIFJlc3RyaWN0IHRoZSBwZXJtaXNzaW9uIHRvIGEgY2VydGFpbiBrZXkgcGF0dGVybiAoZGVmYXVsdCAnKicpXG4gICAqL1xuICBncmFudERlbGV0ZShpZGVudGl0eTogSUdyYW50YWJsZSwgb2JqZWN0c0tleVBhdHRlcm4/OiBhbnkpOiBHcmFudCB7XG4gICAgcmV0dXJuIHRoaXMuYnVja2V0LmdyYW50RGVsZXRlKGlkZW50aXR5LCBvYmplY3RzS2V5UGF0dGVybik7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHJlYWQvd3JpdGUgcGVybWlzc2lvbnMgZm9yIHRoaXMgYnVja2V0IGFuZCBpdCdzIGNvbnRlbnRzIHRvIGFuIElBTVxuICAgKiBwcmluY2lwYWwgKFJvbGUvR3JvdXAvVXNlcikuXG4gICAqXG4gICAqIElmIGFuIGVuY3J5cHRpb24ga2V5IGlzIHVzZWQsIHBlcm1pc3Npb24gdG8gdXNlIHRoZSBrZXkgZm9yXG4gICAqIGVuY3J5cHQvZGVjcnlwdCB3aWxsIGFsc28gYmUgZ3JhbnRlZC5cbiAgICpcbiAgICogQmVmb3JlIENESyB2ZXJzaW9uIDEuODUuMCwgdGhpcyBtZXRob2QgZ3JhbnRlZCB0aGUgYHMzOlB1dE9iamVjdCpgIHBlcm1pc3Npb24gdGhhdCBpbmNsdWRlZCBgczM6UHV0T2JqZWN0QWNsYCxcbiAgICogd2hpY2ggY291bGQgYmUgdXNlZCB0byBncmFudCByZWFkL3dyaXRlIG9iamVjdCBhY2Nlc3MgdG8gSUFNIHByaW5jaXBhbHMgaW4gb3RoZXIgYWNjb3VudHMuXG4gICAqIElmIHlvdSB3YW50IHRvIGdldCByaWQgb2YgdGhhdCBiZWhhdmlvciwgdXBkYXRlIHlvdXIgQ0RLIHZlcnNpb24gdG8gMS44NS4wIG9yIGxhdGVyLFxuICAgKiBhbmQgbWFrZSBzdXJlIHRoZSBgQGF3cy1jZGsvYXdzLXMzOmdyYW50V3JpdGVXaXRob3V0QWNsYCBmZWF0dXJlIGZsYWcgaXMgc2V0IHRvIGB0cnVlYFxuICAgKiBpbiB0aGUgYGNvbnRleHRgIGtleSBvZiB5b3VyIGNkay5qc29uIGZpbGUuXG4gICAqIElmIHlvdSd2ZSBhbHJlYWR5IHVwZGF0ZWQsIGJ1dCBzdGlsbCBuZWVkIHRoZSBwcmluY2lwYWwgdG8gaGF2ZSBwZXJtaXNzaW9ucyB0byBtb2RpZnkgdGhlIEFDTHMsXG4gICAqIHVzZSB0aGUgYGdyYW50UHV0QWNsYCBtZXRob2QuXG4gICAqXG4gICAqIEBwYXJhbSBpZGVudGl0eSBUaGUgcHJpbmNpcGFsXG4gICAqIEBwYXJhbSBvYmplY3RzS2V5UGF0dGVybiBSZXN0cmljdCB0aGUgcGVybWlzc2lvbiB0byBhIGNlcnRhaW4ga2V5IHBhdHRlcm4gKGRlZmF1bHQgJyonKVxuICAgKi9cbiAgZ3JhbnRSZWFkV3JpdGUoaWRlbnRpdHk6IElHcmFudGFibGUsIG9iamVjdHNLZXlQYXR0ZXJuPzogYW55KTogR3JhbnQge1xuICAgIHJldHVybiB0aGlzLmJ1Y2tldC5ncmFudFJlYWRXcml0ZShpZGVudGl0eSwgb2JqZWN0c0tleVBhdHRlcm4pO1xuICB9XG59XG4iXX0=
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vic2l0ZS1idWNrZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ3ZWJzaXRlLWJ1Y2tldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FBcUM7QUFDckMsK0NBQXlGO0FBQ3pGLG1EQUE4RTtBQUM5RSx5REFBMkU7QUFDM0UseUVBQW9FO0FBQ3BFLDZDQUFvRDtBQUNwRCxxRUFBcUY7QUFvRHJGOztHQUVHO0FBQ0gsTUFBYSxhQUFjLFNBQVEsc0JBQVM7SUFTMUMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUEwQjs7UUFDbEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLGFBQWEsU0FBRyxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsYUFBYSxtQ0FBSSwyQkFBYSxDQUFDLE1BQU0sQ0FBQztRQUNuRSxNQUFNLGlCQUFpQixHQUFHLE9BQUMsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLGlCQUFpQixtQ0FBSSxLQUFLLENBQUMsSUFBSSxhQUFhLEtBQUssMkJBQWEsQ0FBQyxPQUFPLENBQUM7UUFFekcsTUFBTSxVQUFVLEdBQUcsQ0FBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsVUFBVSxNQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLHdCQUFVLENBQUM7WUFDOUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTTtZQUMvQixJQUFJLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJO1NBQzVCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxlQUFNLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRTtZQUN4QyxVQUFVLEVBQUUsVUFBVSxhQUFWLFVBQVUsdUJBQVYsVUFBVSxDQUFFLFFBQVEsRUFBRTtZQUNsQyxVQUFVLEVBQUUseUJBQWdCLENBQUMsVUFBVTtZQUN2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bXBvcnQge0NvbnN0cnVjdH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7QnVja2V0LCBCdWNrZXRFbmNyeXB0aW9uLCBSZWRpcmVjdFRhcmdldCwgUm91dGluZ1J1bGV9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtczNcIjtcbmltcG9ydCB7RG9tYWluTmFtZSwgTGF0ZW5jeUFSZWNvcmQsIFdlaWdodGVkQVJlY29yZH0gZnJvbSBcIi4uLy4uL2F3cy1yb3V0ZTUzXCI7XG5pbXBvcnQge0FSZWNvcmQsIElIb3N0ZWRab25lLCBSZWNvcmRUYXJnZXR9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtcm91dGU1M1wiO1xuaW1wb3J0IHtCdWNrZXRXZWJzaXRlVGFyZ2V0fSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXJvdXRlNTMtdGFyZ2V0c1wiO1xuaW1wb3J0IHtSZW1vdmFsUG9saWN5LCBEdXJhdGlvbn0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQge0J1Y2tldERlcGxveW1lbnQsIENhY2hlQ29udHJvbCwgU291cmNlfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXMzLWRlcGxveW1lbnRcIjtcbmltcG9ydCB7R3JhbnQsIElHcmFudGFibGV9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtaWFtXCI7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcblxuXG4vKipcbiAqIERvbWFpbiBuYW1lIHByb3BlcnRpZXMgZm9yIGEgYnVja2V0IGJhc2VkIHdlYnNpdGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV2Vic2l0ZURvbWFpbk5hbWVQcm9wcyB7XG5cbiAgcmVhZG9ubHkgcHJlZml4Pzogc3RyaW5nO1xuXG4gIHJlYWRvbmx5IHpvbmU6IHN0cmluZyB8IElIb3N0ZWRab25lO1xuXG4gIHJlYWRvbmx5IHdlaWdodD86IG51bWJlcjtcblxuICByZWFkb25seSBsYXRlbmN5PzogYm9vbGVhbjtcblxuICByZWFkb25seSBjcmVhdGU/OiBib29sZWFuO1xuXG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgV2Vic2l0ZUJ1Y2tldC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXZWJzaXRlQnVja2V0UHJvcHMge1xuXG4gIC8qKlxuICAgKiBQb2xpY3kgdG8gYXBwbHkgd2hlbiB0aGUgYnVja2V0IGlzIHJlbW92ZWQgZnJvbSB0aGlzIHN0YWNrLlxuICAgKiBAZGVmYXVsdCBSZW1vdmFsUG9saWN5LlJFVEFJTlxuICAgKi9cbiAgcmVhZG9ubHkgcmVtb3ZhbFBvbGljeT86IFJlbW92YWxQb2xpY3k7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgYWxsIG9iamVjdHMgc2hvdWxkIGJlIGF1dG9tYXRpY2FsbHkgZGVsZXRlZCB3aGVuIHRoZSBidWNrZXQgaXMgcmVtb3ZlZCBmcm9tIHRoZSBzdGFjayBvciB3aGVuIHRoZSBzdGFjayBpcyBkZWxldGVkLlxuICAgKiBSZXF1aXJlcyB0aGUgcmVtb3ZhbFBvbGljeSB0byBiZSBzZXQgdG8gUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgYXV0b0RlbGV0ZU9iamVjdHM/OiBib29sZWFuO1xuXG4gIHJlYWRvbmx5IGRvbWFpbk5hbWU/OiBXZWJzaXRlRG9tYWluTmFtZVByb3BzO1xuXG4gIHJlYWRvbmx5IHdlYnNpdGVJbmRleERvY3VtZW50Pzogc3RyaW5nO1xuXG4gIHJlYWRvbmx5IHdlYnNpdGVFcnJvckRvY3VtZW50Pzogc3RyaW5nO1xuXG4gIHJlYWRvbmx5IHdlYnNpdGVSZWRpcmVjdD86IFJlZGlyZWN0VGFyZ2V0O1xuXG4gIHJlYWRvbmx5IHdlYnNpdGVSb3V0aW5nUnVsZXM/OiBSb3V0aW5nUnVsZVtdO1xufVxuXG4vKipcbiAqIFNpbXBsZSBDb25zdHJ1Y3QgZm9yIGNyZWF0aW5nIGJ1Y2tldHMgdGhhdCB3aWxsIGJlIGFjY2Vzc2VkIGRpcmVjdGx5IGFzIGEgd2Vic2l0ZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFdlYnNpdGVCdWNrZXQgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuXG4gIHJlYWRvbmx5IGJ1Y2tldDogQnVja2V0O1xuICByZWFkb25seSBidWNrZXROYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGJ1Y2tldEFybjogc3RyaW5nO1xuICByZWFkb25seSBidWNrZXRXZWJzaXRlVXJsOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGJ1Y2tldFdlYnNpdGVEb21haW5OYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHJlY29yZDogQVJlY29yZCB8IFdlaWdodGVkQVJlY29yZCB8IExhdGVuY3lBUmVjb3JkO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogV2Vic2l0ZUJ1Y2tldFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IHJlbW92YWxQb2xpY3kgPSBwcm9wcz8ucmVtb3ZhbFBvbGljeSA/PyBSZW1vdmFsUG9saWN5LlJFVEFJTjtcbiAgICBjb25zdCBhdXRvRGVsZXRlT2JqZWN0cyA9IChwcm9wcz8uYXV0b0RlbGV0ZU9iamVjdHMgPz8gZmFsc2UpICYmIHJlbW92YWxQb2xpY3kgPT09IFJlbW92YWxQb2xpY3kuREVTVFJPWTtcblxuICAgIGNvbnN0IGRvbWFpbk5hbWUgPSBwcm9wcz8uZG9tYWluTmFtZSA9PT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkIDogbmV3IERvbWFpbk5hbWUoe1xuICAgICAgcHJlZml4OiBwcm9wcy5kb21haW5OYW1lLnByZWZpeCxcbiAgICAgIHpvbmU6IHByb3BzLmRvbWFpbk5hbWUuem9uZVxuICAgIH0pO1xuXG4gICAgdGhpcy5idWNrZXQgPSBuZXcgQnVja2V0KHRoaXMsIFwiRGVmYXVsdFwiLCB7XG4gICAgICBidWNrZXROYW1lOiBkb21haW5OYW1lPy50b1N0cmluZygpLFxuICAgICAgZW5jcnlwdGlvbjogQnVja2V0RW5jcnlwdGlvbi5TM19NQU5BR0VELFxuICAgICAgcHVibGljUmVhZEFjY2VzczogdHJ1ZSxcbiAgICAgIHdlYnNpdGVJbmRleERvY3VtZW50OiBwcm9wcz8ud2Vic2l0ZUluZGV4RG9jdW1lbnQgPz8gXCJpbmRleC5odG1sXCIsXG4gICAgICB3ZWJzaXRlRXJyb3JEb2N1bWVudDogcHJvcHM/LndlYnNpdGVFcnJvckRvY3VtZW50ID8/IFwiZXJyb3IuaHRtbFwiLFxuICAgICAgd2Vic2l0ZVJlZGlyZWN0OiBwcm9wcz8ud2Vic2l0ZVJlZGlyZWN0LFxuICAgICAgd2Vic2l0ZVJvdXRpbmdSdWxlczogcHJvcHM/LndlYnNpdGVSb3V0aW5nUnVsZXMsXG4gICAgICByZW1vdmFsUG9saWN5LFxuICAgICAgYXV0b0RlbGV0ZU9iamVjdHMsXG4gICAgfSk7XG4gICAgdGhpcy5idWNrZXROYW1lID0gdGhpcy5idWNrZXQuYnVja2V0TmFtZTtcbiAgICB0aGlzLmJ1Y2tldEFybiA9IHRoaXMuYnVja2V0LmJ1Y2tldEFybjtcbiAgICB0aGlzLmJ1Y2tldFdlYnNpdGVVcmwgPSB0aGlzLmJ1Y2tldC5idWNrZXRXZWJzaXRlVXJsO1xuICAgIHRoaXMuYnVja2V0V2Vic2l0ZURvbWFpbk5hbWUgPSB0aGlzLmJ1Y2tldC5idWNrZXRXZWJzaXRlRG9tYWluTmFtZTtcblxuICAgIGlmIChkb21haW5OYW1lICE9PSB1bmRlZmluZWQgJiYgKHByb3BzPy5kb21haW5OYW1lPy5jcmVhdGUgPz8gdHJ1ZSkpIHtcbiAgICAgIGNvbnN0IHRhcmdldCA9IFJlY29yZFRhcmdldC5mcm9tQWxpYXMobmV3IEJ1Y2tldFdlYnNpdGVUYXJnZXQodGhpcy5idWNrZXQpKTtcbiAgICAgIC8vIFRPRE8gRXZhbHVhdGVcbiAgICAgIGlmIChwcm9wcz8uZG9tYWluTmFtZT8ubGF0ZW5jeSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMucmVjb3JkID0gZG9tYWluTmFtZS5jcmVhdGVMYXRlbmN5QVJlY29yZCh0aGlzLCB0YXJnZXQpO1xuICAgICAgfSBlbHNlIGlmIChwcm9wcz8uZG9tYWluTmFtZT8ud2VpZ2h0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5yZWNvcmQgPSBkb21haW5OYW1lLmNyZWF0ZVdlaWdodGVkQVJlY29yZCh0aGlzLCB0YXJnZXQsIHByb3BzLmRvbWFpbk5hbWUud2VpZ2h0KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVjb3JkID0gZG9tYWluTmFtZS5jcmVhdGVBUmVjb3JkKHRoaXMsIHRhcmdldCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEhlbHBlciBtZXRob2QgdG8gZGVwbG95IGxvY2FsIGFzc2V0cyB0byB0aGUgY3JlYXRlZCBidWNrZXQuIFRocyBmdW5jdGlvbiBhc3N1bWVzXG4gICAqIENsb3VkRnJvbnQgaW52YWxpZGF0aW9uIHJlcXVlc3RzIHdpbGwgYmUgc2VudCBmb3IgbXV0YWJsZSBmaWxlcyB0byBzZXJ2ZSBuZXcgY29udGVudC5cbiAgICogRm9yIG1vcmUgY29tcGxpY2F0ZWQgZGVwbG95bWVudHMsIHVzZSBCdWNrZXREZXBsb3ltZW50IGRpcmVjdGx5LlxuICAgKlxuICAgKiBAcGFyYW0gcGF0aCB0aGUgcGF0aCB0byB0aGUgbG9jYWwgYXNzZXRzXG4gICAqIEBwYXJhbSBtYXhBZ2UgdGhlIGxlbmd0aCBvZiB0aW1lIHRvIGJyb3dzZXJzIHdpbGwgY2FjaGUgZmlsZXM7IGRlZmF1bHQgaXMgRHVyYXRpb24ubWludXRlcygxNSlcbiAgICogQHBhcmFtIHNNYXhBZ2UgdGhlIGxlbmd0aCBvZiB0aW1lIENsb3VkRnJvbnQgd2lsbCBjYWNoZSBmaWxlczsgZGVmYXVsdCBpcyBEdXJhdGlvbi5kYXlzKDcpXG4gICAqIEBwYXJhbSBwcnVuZVxuICAgKi9cbiAgZGVwbG95KHBhdGg6IHN0cmluZywgbWF4QWdlPzogRHVyYXRpb24sIHNNYXhBZ2U/OiBEdXJhdGlvbiwgcHJ1bmU/OiBib29sZWFuKTogQnVja2V0RGVwbG95bWVudCB7XG4gICAgcmV0dXJuIG5ldyBCdWNrZXREZXBsb3ltZW50KHRoaXMsIFwiRGVwbG95XCIsIHtcbiAgICAgIHNvdXJjZXM6IFtTb3VyY2UuYXNzZXQocGF0aCldLFxuICAgICAgZGVzdGluYXRpb25CdWNrZXQ6IHRoaXMuYnVja2V0LFxuICAgICAgcHJ1bmU6IHBydW5lID8/IGZhbHNlLFxuICAgICAgbWVtb3J5TGltaXQ6IDUxMixcbiAgICAgIGNhY2hlQ29udHJvbDogW1xuICAgICAgICBDYWNoZUNvbnRyb2wuc2V0UHVibGljKCksXG4gICAgICAgIENhY2hlQ29udHJvbC5tYXhBZ2UobWF4QWdlID8/IER1cmF0aW9uLm1pbnV0ZXMoMTUpKSxcbiAgICAgICAgQ2FjaGVDb250cm9sLnNNYXhBZ2Uoc01heEFnZSA/PyBEdXJhdGlvbi5kYXlzKDcpKVxuICAgICAgXVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50IHJlYWQgcGVybWlzc2lvbnMgZm9yIHRoaXMgYnVja2V0IGFuZCBpdCdzIGNvbnRlbnRzIHRvIGFuIElBTVxuICAgKiBwcmluY2lwYWwgKFJvbGUvR3JvdXAvVXNlcikuXG4gICAqXG4gICAqIElmIGVuY3J5cHRpb24gaXMgdXNlZCwgcGVybWlzc2lvbiB0byB1c2UgdGhlIGtleSB0byBkZWNyeXB0IHRoZSBjb250ZW50c1xuICAgKiBvZiB0aGUgYnVja2V0IHdpbGwgYWxzbyBiZSBncmFudGVkIHRvIHRoZSBzYW1lIHByaW5jaXBhbC5cbiAgICpcbiAgICogQHBhcmFtIGlkZW50aXR5IFRoZSBwcmluY2lwYWxcbiAgICogQHBhcmFtIG9iamVjdHNLZXlQYXR0ZXJuIFJlc3RyaWN0IHRoZSBwZXJtaXNzaW9uIHRvIGEgY2VydGFpbiBrZXkgcGF0dGVybiAoZGVmYXVsdCAnKicpXG4gICAqL1xuICBncmFudFJlYWQoaWRlbnRpdHk6IElHcmFudGFibGUsIG9iamVjdHNLZXlQYXR0ZXJuPzogYW55KTogR3JhbnQge1xuICAgIHJldHVybiB0aGlzLmJ1Y2tldC5ncmFudFJlYWQoaWRlbnRpdHksIG9iamVjdHNLZXlQYXR0ZXJuKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudCB3cml0ZSBwZXJtaXNzaW9ucyB0byB0aGlzIGJ1Y2tldCB0byBhbiBJQU0gcHJpbmNpcGFsLlxuICAgKlxuICAgKiBJZiBlbmNyeXB0aW9uIGlzIHVzZWQsIHBlcm1pc3Npb24gdG8gdXNlIHRoZSBrZXkgdG8gZW5jcnlwdCB0aGUgY29udGVudHNcbiAgICogb2Ygd3JpdHRlbiBmaWxlcyB3aWxsIGFsc28gYmUgZ3JhbnRlZCB0byB0aGUgc2FtZSBwcmluY2lwYWwuXG4gICAqXG4gICAqIEJlZm9yZSBDREsgdmVyc2lvbiAxLjg1LjAsIHRoaXMgbWV0aG9kIGdyYW50ZWQgdGhlIGBzMzpQdXRPYmplY3QqYCBwZXJtaXNzaW9uIHRoYXQgaW5jbHVkZWQgYHMzOlB1dE9iamVjdEFjbGAsXG4gICAqIHdoaWNoIGNvdWxkIGJlIHVzZWQgdG8gZ3JhbnQgcmVhZC93cml0ZSBvYmplY3QgYWNjZXNzIHRvIElBTSBwcmluY2lwYWxzIGluIG90aGVyIGFjY291bnRzLlxuICAgKiBJZiB5b3Ugd2FudCB0byBnZXQgcmlkIG9mIHRoYXQgYmVoYXZpb3IsIHVwZGF0ZSB5b3VyIENESyB2ZXJzaW9uIHRvIDEuODUuMCBvciBsYXRlcixcbiAgICogYW5kIG1ha2Ugc3VyZSB0aGUgYEBhd3MtY2RrL2F3cy1zMzpncmFudFdyaXRlV2l0aG91dEFjbGAgZmVhdHVyZSBmbGFnIGlzIHNldCB0byBgdHJ1ZWBcbiAgICogaW4gdGhlIGBjb250ZXh0YCBrZXkgb2YgeW91ciBjZGsuanNvbiBmaWxlLlxuICAgKiBJZiB5b3UndmUgYWxyZWFkeSB1cGRhdGVkLCBidXQgc3RpbGwgbmVlZCB0aGUgcHJpbmNpcGFsIHRvIGhhdmUgcGVybWlzc2lvbnMgdG8gbW9kaWZ5IHRoZSBBQ0xzLFxuICAgKiB1c2UgdGhlIGBncmFudFB1dEFjbGAgbWV0aG9kLlxuICAgKlxuICAgKiBAcGFyYW0gaWRlbnRpdHkgVGhlIHByaW5jaXBhbFxuICAgKiBAcGFyYW0gb2JqZWN0c0tleVBhdHRlcm4gUmVzdHJpY3QgdGhlIHBlcm1pc3Npb24gdG8gYSBjZXJ0YWluIGtleSBwYXR0ZXJuIChkZWZhdWx0ICcqJylcbiAgICogQHBhcmFtIGFsbG93ZWRBY3Rpb25QYXR0ZXJucyBSZXN0cmljdCB0aGUgcGVybWlzc2lvbnMgdG8gY2VydGFpbiBsaXN0IG9mIGFjdGlvbiBwYXR0ZXJuc1xuICAgKi9cbiAgZ3JhbnRXcml0ZShpZGVudGl0eTogSUdyYW50YWJsZSwgb2JqZWN0c0tleVBhdHRlcm4/OiBhbnksIGFsbG93ZWRBY3Rpb25QYXR0ZXJucz86IHN0cmluZ1tdKTogR3JhbnQge1xuICAgIHJldHVybiB0aGlzLmJ1Y2tldC5ncmFudFdyaXRlKGlkZW50aXR5LCBvYmplY3RzS2V5UGF0dGVybiwgYWxsb3dlZEFjdGlvblBhdHRlcm5zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgczM6UHV0T2JqZWN0KiBhbmQgczM6QWJvcnQqIHBlcm1pc3Npb25zIGZvciB0aGlzIGJ1Y2tldCB0byBhbiBJQU0gcHJpbmNpcGFsLlxuICAgKlxuICAgKiBJZiBlbmNyeXB0aW9uIGlzIHVzZWQsIHBlcm1pc3Npb24gdG8gdXNlIHRoZSBrZXkgdG8gZW5jcnlwdCB0aGUgY29udGVudHNcbiAgICogb2Ygd3JpdHRlbiBmaWxlcyB3aWxsIGFsc28gYmUgZ3JhbnRlZCB0byB0aGUgc2FtZSBwcmluY2lwYWwuXG4gICAqIEBwYXJhbSBpZGVudGl0eSBUaGUgcHJpbmNpcGFsXG4gICAqIEBwYXJhbSBvYmplY3RzS2V5UGF0dGVybiBSZXN0cmljdCB0aGUgcGVybWlzc2lvbiB0byBhIGNlcnRhaW4ga2V5IHBhdHRlcm4gKGRlZmF1bHQgJyonKVxuICAgKi9cbiAgZ3JhbnRQdXQoaWRlbnRpdHk6IElHcmFudGFibGUsIG9iamVjdHNLZXlQYXR0ZXJuPzogYW55KTogR3JhbnQge1xuICAgIHJldHVybiB0aGlzLmJ1Y2tldC5ncmFudFB1dChpZGVudGl0eSwgb2JqZWN0c0tleVBhdHRlcm4pO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50IHRoZSBnaXZlbiBJQU0gaWRlbnRpdHkgcGVybWlzc2lvbnMgdG8gbW9kaWZ5IHRoZSBBQ0xzIG9mIG9iamVjdHMgaW4gdGhlIGdpdmVuIEJ1Y2tldC5cbiAgICpcbiAgICogSWYgeW91ciBhcHBsaWNhdGlvbiBoYXMgdGhlICdAYXdzLWNkay9hd3MtczM6Z3JhbnRXcml0ZVdpdGhvdXRBY2wnIGZlYXR1cmUgZmxhZyBzZXQsXG4gICAqIGNhbGxpbmcgYGdyYW50V3JpdGVgIG9yIGBncmFudFJlYWRXcml0ZWAgbm8gbG9uZ2VyIGdyYW50cyBwZXJtaXNzaW9ucyB0byBtb2RpZnkgdGhlIEFDTHMgb2YgdGhlIG9iamVjdHM7XG4gICAqIGluIHRoaXMgY2FzZSwgaWYgeW91IG5lZWQgdG8gbW9kaWZ5IG9iamVjdCBBQ0xzLCBjYWxsIHRoaXMgbWV0aG9kIGV4cGxpY2l0bHkuXG4gICAqXG4gICAqIEBwYXJhbSBpZGVudGl0eSBUaGUgcHJpbmNpcGFsXG4gICAqIEBwYXJhbSBvYmplY3RzS2V5UGF0dGVybiBSZXN0cmljdCB0aGUgcGVybWlzc2lvbiB0byBhIGNlcnRhaW4ga2V5IHBhdHRlcm4gKGRlZmF1bHQgJyonKVxuICAgKi9cbiAgZ3JhbnRQdXRBY2woaWRlbnRpdHk6IElHcmFudGFibGUsIG9iamVjdHNLZXlQYXR0ZXJuPzogc3RyaW5nKTogR3JhbnQge1xuICAgIHJldHVybiB0aGlzLmJ1Y2tldC5ncmFudFB1dEFjbChpZGVudGl0eSwgb2JqZWN0c0tleVBhdHRlcm4pO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBzMzpEZWxldGVPYmplY3QqIHBlcm1pc3Npb24gdG8gYW4gSUFNIHByaW5jaXBhbCBmb3Igb2JqZWN0c1xuICAgKiBpbiB0aGlzIGJ1Y2tldC5cbiAgICpcbiAgICogQHBhcmFtIGlkZW50aXR5IFRoZSBwcmluY2lwYWxcbiAgICogQHBhcmFtIG9iamVjdHNLZXlQYXR0ZXJuIFJlc3RyaWN0IHRoZSBwZXJtaXNzaW9uIHRvIGEgY2VydGFpbiBrZXkgcGF0dGVybiAoZGVmYXVsdCAnKicpXG4gICAqL1xuICBncmFudERlbGV0ZShpZGVudGl0eTogSUdyYW50YWJsZSwgb2JqZWN0c0tleVBhdHRlcm4/OiBhbnkpOiBHcmFudCB7XG4gICAgcmV0dXJuIHRoaXMuYnVja2V0LmdyYW50RGVsZXRlKGlkZW50aXR5LCBvYmplY3RzS2V5UGF0dGVybik7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHJlYWQvd3JpdGUgcGVybWlzc2lvbnMgZm9yIHRoaXMgYnVja2V0IGFuZCBpdCdzIGNvbnRlbnRzIHRvIGFuIElBTVxuICAgKiBwcmluY2lwYWwgKFJvbGUvR3JvdXAvVXNlcikuXG4gICAqXG4gICAqIElmIGFuIGVuY3J5cHRpb24ga2V5IGlzIHVzZWQsIHBlcm1pc3Npb24gdG8gdXNlIHRoZSBrZXkgZm9yXG4gICAqIGVuY3J5cHQvZGVjcnlwdCB3aWxsIGFsc28gYmUgZ3JhbnRlZC5cbiAgICpcbiAgICogQmVmb3JlIENESyB2ZXJzaW9uIDEuODUuMCwgdGhpcyBtZXRob2QgZ3JhbnRlZCB0aGUgYHMzOlB1dE9iamVjdCpgIHBlcm1pc3Npb24gdGhhdCBpbmNsdWRlZCBgczM6UHV0T2JqZWN0QWNsYCxcbiAgICogd2hpY2ggY291bGQgYmUgdXNlZCB0byBncmFudCByZWFkL3dyaXRlIG9iamVjdCBhY2Nlc3MgdG8gSUFNIHByaW5jaXBhbHMgaW4gb3RoZXIgYWNjb3VudHMuXG4gICAqIElmIHlvdSB3YW50IHRvIGdldCByaWQgb2YgdGhhdCBiZWhhdmlvciwgdXBkYXRlIHlvdXIgQ0RLIHZlcnNpb24gdG8gMS44NS4wIG9yIGxhdGVyLFxuICAgKiBhbmQgbWFrZSBzdXJlIHRoZSBgQGF3cy1jZGsvYXdzLXMzOmdyYW50V3JpdGVXaXRob3V0QWNsYCBmZWF0dXJlIGZsYWcgaXMgc2V0IHRvIGB0cnVlYFxuICAgKiBpbiB0aGUgYGNvbnRleHRgIGtleSBvZiB5b3VyIGNkay5qc29uIGZpbGUuXG4gICAqIElmIHlvdSd2ZSBhbHJlYWR5IHVwZGF0ZWQsIGJ1dCBzdGlsbCBuZWVkIHRoZSBwcmluY2lwYWwgdG8gaGF2ZSBwZXJtaXNzaW9ucyB0byBtb2RpZnkgdGhlIEFDTHMsXG4gICAqIHVzZSB0aGUgYGdyYW50UHV0QWNsYCBtZXRob2QuXG4gICAqXG4gICAqIEBwYXJhbSBpZGVudGl0eSBUaGUgcHJpbmNpcGFsXG4gICAqIEBwYXJhbSBvYmplY3RzS2V5UGF0dGVybiBSZXN0cmljdCB0aGUgcGVybWlzc2lvbiB0byBhIGNlcnRhaW4ga2V5IHBhdHRlcm4gKGRlZmF1bHQgJyonKVxuICAgKi9cbiAgZ3JhbnRSZWFkV3JpdGUoaWRlbnRpdHk6IElHcmFudGFibGUsIG9iamVjdHNLZXlQYXR0ZXJuPzogYW55KTogR3JhbnQge1xuICAgIHJldHVybiB0aGlzLmJ1Y2tldC5ncmFudFJlYWRXcml0ZShpZGVudGl0eSwgb2JqZWN0c0tleVBhdHRlcm4pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBzdGF0ZW1lbnQgdG8gdGhlIHJlc291cmNlIHBvbGljeSBmb3IgYSBwcmluY2lwYWwgKGkuZS5cbiAgICogYWNjb3VudC9yb2xlL3NlcnZpY2UpIHRvIHBlcmZvcm0gYWN0aW9ucyBvbiB0aGlzIGJ1Y2tldCBhbmQvb3IgaXRzXG4gICAqIGNvbnRlbnRzLiBVc2UgYGJ1Y2tldEFybmAgYW5kIGBhcm5Gb3JPYmplY3RzKGtleXMpYCB0byBvYnRhaW4gQVJOcyBmb3JcbiAgICogdGhpcyBidWNrZXQgb3Igb2JqZWN0cy5cbiAgICpcbiAgICogTm90ZSB0aGF0IHRoZSBwb2xpY3kgc3RhdGVtZW50IG1heSBvciBtYXkgbm90IGJlIGFkZGVkIHRvIHRoZSBwb2xpY3kuXG4gICAqIEZvciBleGFtcGxlLCB3aGVuIGFuIGBJQnVja2V0YCBpcyBjcmVhdGVkIGZyb20gYW4gZXhpc3RpbmcgYnVja2V0LFxuICAgKiBpdCdzIG5vdCBwb3NzaWJsZSB0byB0ZWxsIHdoZXRoZXIgdGhlIGJ1Y2tldCBhbHJlYWR5IGhhcyBhIHBvbGljeVxuICAgKiBhdHRhY2hlZCwgbGV0IGFsb25lIHRvIHJlLXVzZSB0aGF0IHBvbGljeSB0byBhZGQgbW9yZSBzdGF0ZW1lbnRzIHRvIGl0LlxuICAgKiBTbyBpdCdzIHNhZmVzdCB0byBkbyBub3RoaW5nIGluIHRoZXNlIGNhc2VzLlxuICAgKlxuICAgKiBAcGFyYW0gcGVybWlzc2lvbiB0aGUgcG9saWN5IHN0YXRlbWVudCB0byBiZSBhZGRlZCB0byB0aGUgYnVja2V0J3NcbiAgICogcG9saWN5LlxuICAgKiBAcmV0dXJucyBtZXRhZGF0YSBhYm91dCB0aGUgZXhlY3V0aW9uIG9mIHRoaXMgbWV0aG9kLiBJZiB0aGUgcG9saWN5XG4gICAqIHdhcyBub3QgYWRkZWQsIHRoZSB2YWx1ZSBvZiBgc3RhdGVtZW50QWRkZWRgIHdpbGwgYmUgYGZhbHNlYC4gWW91XG4gICAqIHNob3VsZCBhbHdheXMgY2hlY2sgdGhpcyB2YWx1ZSB0byBtYWtlIHN1cmUgdGhhdCB0aGUgb3BlcmF0aW9uIHdhc1xuICAgKiBhY3R1YWxseSBjYXJyaWVkIG91dC4gT3RoZXJ3aXNlLCBzeW50aGVzaXMgYW5kIGRlcGxveSB3aWxsIHRlcm1pbmF0ZVxuICAgKiBzaWxlbnRseSwgd2hpY2ggbWF5IGJlIGNvbmZ1c2luZy5cbiAgICovXG4gIGFkZFRvUmVzb3VyY2VQb2xpY3kocGVybWlzc2lvbjogaWFtLlBvbGljeVN0YXRlbWVudCk6IGlhbS5BZGRUb1Jlc291cmNlUG9saWN5UmVzdWx0IHtcbiAgICByZXR1cm4gdGhpcy5idWNrZXQuYWRkVG9SZXNvdXJjZVBvbGljeShwZXJtaXNzaW9uKTtcbiAgfVxufVxuIl19
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "truemark-cdk-lib",
3
- "version": "1.6.6",
3
+ "version": "1.6.7-alpha.0+db6b31d",
4
4
  "main": "index.js",
5
5
  "types": "index.d.ts",
6
6
  "scripts": {
@@ -72,5 +72,5 @@
72
72
  "publishConfig": {
73
73
  "access": "public"
74
74
  },
75
- "gitHead": "cfd8ebcfcea1904a6b70a7b5590c9991e5a8ad24"
75
+ "gitHead": "db6b31df362a3156e71ff5ace0bab931df543ddb"
76
76
  }