@aws-cdk/aws-route53resolver-alpha 2.12.0-alpha.0 → 2.15.0-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.
package/.jsii CHANGED
@@ -8,7 +8,7 @@
8
8
  "url": "https://aws.amazon.com"
9
9
  },
10
10
  "dependencies": {
11
- "aws-cdk-lib": "^2.12.0",
11
+ "aws-cdk-lib": "^2.15.0",
12
12
  "constructs": "^10.0.0"
13
13
  },
14
14
  "dependencyClosure": {
@@ -2861,6 +2861,19 @@
2861
2861
  "module": "aws_cdk.region_info"
2862
2862
  }
2863
2863
  }
2864
+ },
2865
+ "aws-cdk-lib.triggers": {
2866
+ "targets": {
2867
+ "dotnet": {
2868
+ "namespace": "Amazon.CDK.Triggers"
2869
+ },
2870
+ "java": {
2871
+ "package": "software.amazon.awscdk.triggers"
2872
+ },
2873
+ "python": {
2874
+ "module": "aws_cdk.triggers"
2875
+ }
2876
+ }
2864
2877
  }
2865
2878
  },
2866
2879
  "targets": {
@@ -2920,7 +2933,7 @@
2920
2933
  "stability": "experimental"
2921
2934
  },
2922
2935
  "homepage": "https://github.com/aws/aws-cdk",
2923
- "jsiiVersion": "1.52.1 (build 5ccc8f6)",
2936
+ "jsiiVersion": "1.54.0 (build b1b977a)",
2924
2937
  "keywords": [
2925
2938
  "aws",
2926
2939
  "cdk",
@@ -4695,6 +4708,6 @@
4695
4708
  "symbolId": "lib/firewall-rule-group:IFirewallRuleGroup"
4696
4709
  }
4697
4710
  },
4698
- "version": "2.12.0-alpha.0",
4711
+ "version": "2.15.0-alpha.0",
4699
4712
  "fingerprint": "**********"
4700
4713
  }
package/.jsii.tabl.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": "2",
3
- "toolVersion": "1.52.1",
3
+ "toolVersion": "1.54.0",
4
4
  "snippets": {
5
5
  "d9d20fb2cd4f9edf6f596ff6f54acd6ff014b4b6eebbc1cec92e5d1801f32328": {
6
6
  "translations": {
@@ -55,7 +55,7 @@
55
55
  "243": 3,
56
56
  "281": 3
57
57
  },
58
- "fqnsFingerprint": "9ea1ffad9ce4cfe81c3a92eaff278919b878c4e841a102cbc35ff3629413fb6e"
58
+ "fqnsFingerprint": "4536299b9f1333d35f9c255003b33e1f47b1a0dcf9846e9490d1bf1d2ac1351c"
59
59
  },
60
60
  "6b0a16cd9bf41aa5fffaeff3e18077602accdaeb66aebd3b704653646dbe4152": {
61
61
  "translations": {
@@ -103,7 +103,7 @@
103
103
  "242": 1,
104
104
  "243": 1
105
105
  },
106
- "fqnsFingerprint": "e2dbde12d5259351244659fe69cdadd32b1cee1c09679b32e332fc3de2240e44"
106
+ "fqnsFingerprint": "7db7f0f594863e5250e3b27bda50b78ada2c0e6229054406290cd815d005f929"
107
107
  },
108
108
  "f9f104d3d6062f1efd58177a774ed0ea2d2cf2de08be50fe678d03f9817b1e1f": {
109
109
  "translations": {
@@ -163,7 +163,7 @@
163
163
  "281": 4,
164
164
  "290": 1
165
165
  },
166
- "fqnsFingerprint": "dc3388988c62d44aff30c6d73eb2709edcfc73d048b12c14e453f117c8c55943"
166
+ "fqnsFingerprint": "a351fc8c46054245b661b859dcb1f8eee4a262ab357dbdfa5233bd32a5cc780f"
167
167
  },
168
168
  "5ccfc007b3c2d64526211bfdf5fbae7c467360328f3a38aee3081135a4310be8": {
169
169
  "translations": {
@@ -223,7 +223,7 @@
223
223
  "281": 6,
224
224
  "290": 1
225
225
  },
226
- "fqnsFingerprint": "0cbe2361c9012737d324716d1530da40928fa89f1f056f9a709410dc182ae5c7"
226
+ "fqnsFingerprint": "e131e2839919d05afa0f1eae92496c7259aec9903a043e292be3a5a254d11f05"
227
227
  },
228
228
  "3799639b8da4891f24cf7a9ab4eb8d91674ace7c28f405cefd4efde6e17a7e78": {
229
229
  "translations": {
@@ -281,7 +281,7 @@
281
281
  "281": 2,
282
282
  "290": 1
283
283
  },
284
- "fqnsFingerprint": "b5367384d5706e5c526ff8240726af9235e7be66e458171cd8721515ad60b621"
284
+ "fqnsFingerprint": "d35d4043df7370cf59873c8b5d18e208773b9845f02f8b3b3f10f939aca9707d"
285
285
  },
286
286
  "10d6a1687a53bba718c5efa242f91777edbd4cd78fc48e299641d9c66af93ecf": {
287
287
  "translations": {
@@ -340,7 +340,7 @@
340
340
  "281": 6,
341
341
  "290": 1
342
342
  },
343
- "fqnsFingerprint": "0cbe2361c9012737d324716d1530da40928fa89f1f056f9a709410dc182ae5c7"
343
+ "fqnsFingerprint": "e131e2839919d05afa0f1eae92496c7259aec9903a043e292be3a5a254d11f05"
344
344
  },
345
345
  "aedd91f2fb1b4d3b05d0dfabc0d6603f48d323fc74c6c25b4082e76c2c1f755e": {
346
346
  "translations": {
@@ -445,7 +445,7 @@
445
445
  "243": 3,
446
446
  "281": 3
447
447
  },
448
- "fqnsFingerprint": "9ea1ffad9ce4cfe81c3a92eaff278919b878c4e841a102cbc35ff3629413fb6e"
448
+ "fqnsFingerprint": "4536299b9f1333d35f9c255003b33e1f47b1a0dcf9846e9490d1bf1d2ac1351c"
449
449
  },
450
450
  "2bd2080fa37a0efa2e2378b00ad9a2e1dc817ba7009627f85e6ae0e3ef4a894d": {
451
451
  "translations": {
@@ -499,7 +499,7 @@
499
499
  "243": 3,
500
500
  "281": 3
501
501
  },
502
- "fqnsFingerprint": "9ea1ffad9ce4cfe81c3a92eaff278919b878c4e841a102cbc35ff3629413fb6e"
502
+ "fqnsFingerprint": "4536299b9f1333d35f9c255003b33e1f47b1a0dcf9846e9490d1bf1d2ac1351c"
503
503
  },
504
504
  "6a4fbc94f8282a2eedb98be63b676f957e6192552ef1e94078a46514207d5f0b": {
505
505
  "translations": {
@@ -553,7 +553,7 @@
553
553
  "243": 3,
554
554
  "281": 3
555
555
  },
556
- "fqnsFingerprint": "9ea1ffad9ce4cfe81c3a92eaff278919b878c4e841a102cbc35ff3629413fb6e"
556
+ "fqnsFingerprint": "4536299b9f1333d35f9c255003b33e1f47b1a0dcf9846e9490d1bf1d2ac1351c"
557
557
  },
558
558
  "a4bffe9e8f68f0174dce316b80ac60ef3023b270298b94e3e0fbc48f745aafe9": {
559
559
  "translations": {
@@ -612,7 +612,7 @@
612
612
  "281": 6,
613
613
  "290": 1
614
614
  },
615
- "fqnsFingerprint": "0cbe2361c9012737d324716d1530da40928fa89f1f056f9a709410dc182ae5c7"
615
+ "fqnsFingerprint": "e131e2839919d05afa0f1eae92496c7259aec9903a043e292be3a5a254d11f05"
616
616
  },
617
617
  "d989b0213c612756d06ad9dbbb8ea099645c5b6797d8e1533a252a9c76a4f698": {
618
618
  "translations": {
@@ -671,7 +671,7 @@
671
671
  "281": 4,
672
672
  "290": 1
673
673
  },
674
- "fqnsFingerprint": "dc3388988c62d44aff30c6d73eb2709edcfc73d048b12c14e453f117c8c55943"
674
+ "fqnsFingerprint": "a351fc8c46054245b661b859dcb1f8eee4a262ab357dbdfa5233bd32a5cc780f"
675
675
  },
676
676
  "e8376656cf894ff11fe2093b378fa2b2ec93afdd20a8993f11b8d5b5ed796d99": {
677
677
  "translations": {
@@ -730,7 +730,7 @@
730
730
  "281": 4,
731
731
  "290": 1
732
732
  },
733
- "fqnsFingerprint": "dc3388988c62d44aff30c6d73eb2709edcfc73d048b12c14e453f117c8c55943"
733
+ "fqnsFingerprint": "a351fc8c46054245b661b859dcb1f8eee4a262ab357dbdfa5233bd32a5cc780f"
734
734
  },
735
735
  "b5744a164d0710212210bc15d73e82f724c518af9699bd481a26e4889af9939d": {
736
736
  "translations": {
@@ -791,7 +791,7 @@
791
791
  "281": 5,
792
792
  "290": 1
793
793
  },
794
- "fqnsFingerprint": "c36fdc6f0ef98b3b73e26d7928e7ad3f3539c63b7baa0a9ab0367eb31ca53bd1"
794
+ "fqnsFingerprint": "4e874459e87415e0dc0ca28eb1bdb29ae34f30ab1fcc86a691dccf1941ee59b4"
795
795
  },
796
796
  "3eb00463776efa8df99e1348a9bbaa5993befd226254b256e08dbf0c861b947a": {
797
797
  "translations": {
@@ -848,7 +848,7 @@
848
848
  "281": 2,
849
849
  "290": 1
850
850
  },
851
- "fqnsFingerprint": "b5367384d5706e5c526ff8240726af9235e7be66e458171cd8721515ad60b621"
851
+ "fqnsFingerprint": "d35d4043df7370cf59873c8b5d18e208773b9845f02f8b3b3f10f939aca9707d"
852
852
  },
853
853
  "c9db423a6198ef33f263c2bb782785500388f3222e611862166cd30fdb0b6141": {
854
854
  "translations": {
@@ -905,7 +905,7 @@
905
905
  "281": 5,
906
906
  "290": 1
907
907
  },
908
- "fqnsFingerprint": "d0a3e872b48bdcceecbb44cfdf643a492664ac4f8456dd498e95cbb1ce011408"
908
+ "fqnsFingerprint": "2260846d7849e86aa6ecc8535c5f5cba06f7c733af47ceebf6a8b83438e98824"
909
909
  },
910
910
  "90993ef2552e02320b99021a3d535123017bed1f5e0c4cfef9fd04d201f9b86d": {
911
911
  "translations": {
@@ -964,7 +964,7 @@
964
964
  "281": 4,
965
965
  "290": 1
966
966
  },
967
- "fqnsFingerprint": "dc3388988c62d44aff30c6d73eb2709edcfc73d048b12c14e453f117c8c55943"
967
+ "fqnsFingerprint": "a351fc8c46054245b661b859dcb1f8eee4a262ab357dbdfa5233bd32a5cc780f"
968
968
  }
969
969
  }
970
970
  }
@@ -2,193 +2,138 @@ import { IBucket } from 'aws-cdk-lib/aws-s3';
2
2
  import { IResource, Resource } from 'aws-cdk-lib';
3
3
  import { Construct } from 'constructs';
4
4
  /**
5
- * (experimental) A Firewall Domain List.
6
- *
7
- * @experimental
5
+ * A Firewall Domain List
8
6
  */
9
7
  export interface IFirewallDomainList extends IResource {
10
8
  /**
11
- * (experimental) The ID of the domain list.
9
+ * The ID of the domain list
12
10
  *
13
- * @experimental
14
- * @attribute true
11
+ * @attribute
15
12
  */
16
13
  readonly firewallDomainListId: string;
17
14
  }
18
15
  /**
19
- * (experimental) Properties for a Firewall Domain List.
20
- *
21
- * @experimental
16
+ * Properties for a Firewall Domain List
22
17
  */
23
18
  export interface FirewallDomainListProps {
24
19
  /**
25
- * (experimental) A name for the domain list.
20
+ * A name for the domain list
26
21
  *
27
22
  * @default - a CloudFormation generated name
28
- * @experimental
29
23
  */
30
24
  readonly name?: string;
31
25
  /**
32
- * (experimental) A list of domains.
33
- *
34
- * @experimental
26
+ * A list of domains
35
27
  */
36
28
  readonly domains: FirewallDomains;
37
29
  }
38
30
  /**
39
- * (experimental) A list of domains.
40
- *
41
- * @experimental
31
+ * A list of domains
42
32
  */
43
33
  export declare abstract class FirewallDomains {
44
34
  /**
45
- * (experimental) Firewall domains created from a list of domains.
35
+ * Firewall domains created from a list of domains
46
36
  *
47
- * @param list the list of domains.
48
- * @experimental
37
+ * @param list the list of domains
49
38
  */
50
39
  static fromList(list: string[]): FirewallDomains;
51
40
  /**
52
- * (experimental) Firewall domains created from the URL of a file stored in Amazon S3.
53
- *
41
+ * Firewall domains created from the URL of a file stored in Amazon S3.
54
42
  * The file must be a text file and must contain a single domain per line.
55
43
  * The content type of the S3 object must be `plain/text`.
56
44
  *
57
45
  * @param url S3 bucket url (s3://bucket/prefix/objet).
58
- * @experimental
59
46
  */
60
47
  static fromS3Url(url: string): FirewallDomains;
61
48
  /**
62
- * (experimental) Firewall domains created from a file stored in Amazon S3.
63
- *
49
+ * Firewall domains created from a file stored in Amazon S3.
64
50
  * The file must be a text file and must contain a single domain per line.
65
51
  * The content type of the S3 object must be `plain/text`.
66
52
  *
67
- * @param bucket S3 bucket.
68
- * @param key S3 key.
69
- * @experimental
53
+ * @param bucket S3 bucket
54
+ * @param key S3 key
70
55
  */
71
56
  static fromS3(bucket: IBucket, key: string): FirewallDomains;
72
57
  /**
73
- * (experimental) Firewall domains created from a local disk path to a text file.
74
- *
58
+ * Firewall domains created from a local disk path to a text file.
75
59
  * The file must be a text file (`.txt` extension) and must contain a single
76
60
  * domain per line. It will be uploaded to S3.
77
61
  *
78
- * @param assetPath path to the text file.
79
- * @experimental
62
+ * @param assetPath path to the text file
80
63
  */
81
64
  static fromAsset(assetPath: string): FirewallDomains;
82
- /**
83
- * (experimental) Binds the domains to a domain list.
84
- *
85
- * @experimental
86
- */
65
+ /** Binds the domains to a domain list */
87
66
  abstract bind(scope: Construct): DomainsConfig;
88
67
  }
89
68
  /**
90
- * (experimental) Domains configuration.
91
- *
92
- * @experimental
69
+ * Domains configuration
93
70
  */
94
71
  export interface DomainsConfig {
95
72
  /**
96
- * (experimental) The fully qualified URL or URI of the file stored in Amazon S3 that contains the list of domains to import.
97
- *
98
- * The file must be a text file and must contain
73
+ * The fully qualified URL or URI of the file stored in Amazon S3 that contains
74
+ * the list of domains to import. The file must be a text file and must contain
99
75
  * a single domain per line. The content type of the S3 object must be `plain/text`.
100
76
  *
101
77
  * @default - use `domains`
102
- * @experimental
103
78
  */
104
79
  readonly domainFileUrl?: string;
105
80
  /**
106
- * (experimental) A list of domains.
81
+ * A list of domains
107
82
  *
108
83
  * @default - use `domainFileUrl`
109
- * @experimental
110
84
  */
111
85
  readonly domains?: string[];
112
86
  }
113
87
  /**
114
- * (experimental) A Firewall Domain List.
115
- *
116
- * @experimental
88
+ * A Firewall Domain List
117
89
  */
118
90
  export declare class FirewallDomainList extends Resource implements IFirewallDomainList {
119
91
  /**
120
- * (experimental) Import an existing Firewall Rule Group.
121
- *
122
- * @experimental
92
+ * Import an existing Firewall Rule Group
123
93
  */
124
94
  static fromFirewallDomainListId(scope: Construct, id: string, firewallDomainListId: string): IFirewallDomainList;
125
- /**
126
- * (experimental) The ID of the domain list.
127
- *
128
- * @experimental
129
- */
130
95
  readonly firewallDomainListId: string;
131
96
  /**
132
- * (experimental) The ARN (Amazon Resource Name) of the domain list.
133
- *
134
- * @experimental
135
- * @attribute true
97
+ * The ARN (Amazon Resource Name) of the domain list
98
+ * @attribute
136
99
  */
137
100
  readonly firewallDomainListArn: string;
138
101
  /**
139
- * (experimental) The date and time that the domain list was created.
140
- *
141
- * @experimental
142
- * @attribute true
143
- */
102
+ * The date and time that the domain list was created
103
+ * @attribute
104
+ */
144
105
  readonly firewallDomainListCreationTime: string;
145
106
  /**
146
- * (experimental) The creator request ID.
147
- *
148
- * @experimental
149
- * @attribute true
150
- */
107
+ * The creator request ID
108
+ * @attribute
109
+ */
151
110
  readonly firewallDomainListCreatorRequestId: string;
152
111
  /**
153
- * (experimental) The number of domains in the list.
154
- *
155
- * @experimental
156
- * @attribute true
157
- */
112
+ * The number of domains in the list
113
+ * @attribute
114
+ */
158
115
  readonly firewallDomainListDomainCount: number;
159
116
  /**
160
- * (experimental) The owner of the list, used only for lists that are not managed by you.
161
- *
162
- * For example, the managed domain list `AWSManagedDomainsMalwareDomainList`
163
- * has the managed owner name `Route 53 Resolver DNS Firewall`.
164
- *
165
- * @experimental
166
- * @attribute true
167
- */
117
+ * The owner of the list, used only for lists that are not managed by you.
118
+ * For example, the managed domain list `AWSManagedDomainsMalwareDomainList`
119
+ * has the managed owner name `Route 53 Resolver DNS Firewall`.
120
+ * @attribute
121
+ */
168
122
  readonly firewallDomainListManagedOwnerName: string;
169
123
  /**
170
- * (experimental) The date and time that the domain list was last modified.
171
- *
172
- * @experimental
173
- * @attribute true
174
- */
124
+ * The date and time that the domain list was last modified
125
+ * @attribute
126
+ */
175
127
  readonly firewallDomainListModificationTime: string;
176
128
  /**
177
- * (experimental) The status of the domain list.
178
- *
179
- * @experimental
180
- * @attribute true
181
- */
129
+ * The status of the domain list
130
+ * @attribute
131
+ */
182
132
  readonly firewallDomainListStatus: string;
183
133
  /**
184
- * (experimental) Additional information about the status of the rule group.
185
- *
186
- * @experimental
187
- * @attribute true
188
- */
134
+ * Additional information about the status of the rule group
135
+ * @attribute
136
+ */
189
137
  readonly firewallDomainListStatusMessage: string;
190
- /**
191
- * @experimental
192
- */
193
138
  constructor(scope: Construct, id: string, props: FirewallDomainListProps);
194
139
  }
@@ -9,16 +9,13 @@ const aws_s3_assets_1 = require("aws-cdk-lib/aws-s3-assets");
9
9
  const aws_cdk_lib_1 = require("aws-cdk-lib");
10
10
  const aws_route53resolver_1 = require("aws-cdk-lib/aws-route53resolver");
11
11
  /**
12
- * (experimental) A list of domains.
13
- *
14
- * @experimental
12
+ * A list of domains
15
13
  */
16
14
  class FirewallDomains {
17
15
  /**
18
- * (experimental) Firewall domains created from a list of domains.
16
+ * Firewall domains created from a list of domains
19
17
  *
20
- * @param list the list of domains.
21
- * @experimental
18
+ * @param list the list of domains
22
19
  */
23
20
  static fromList(list) {
24
21
  for (const domain of list) {
@@ -33,13 +30,11 @@ class FirewallDomains {
33
30
  };
34
31
  }
35
32
  /**
36
- * (experimental) Firewall domains created from the URL of a file stored in Amazon S3.
37
- *
33
+ * Firewall domains created from the URL of a file stored in Amazon S3.
38
34
  * The file must be a text file and must contain a single domain per line.
39
35
  * The content type of the S3 object must be `plain/text`.
40
36
  *
41
37
  * @param url S3 bucket url (s3://bucket/prefix/objet).
42
- * @experimental
43
38
  */
44
39
  static fromS3Url(url) {
45
40
  if (!aws_cdk_lib_1.Token.isUnresolved(url) && !url.startsWith('s3://')) {
@@ -52,26 +47,22 @@ class FirewallDomains {
52
47
  };
53
48
  }
54
49
  /**
55
- * (experimental) Firewall domains created from a file stored in Amazon S3.
56
- *
50
+ * Firewall domains created from a file stored in Amazon S3.
57
51
  * The file must be a text file and must contain a single domain per line.
58
52
  * The content type of the S3 object must be `plain/text`.
59
53
  *
60
- * @param bucket S3 bucket.
61
- * @param key S3 key.
62
- * @experimental
54
+ * @param bucket S3 bucket
55
+ * @param key S3 key
63
56
  */
64
57
  static fromS3(bucket, key) {
65
58
  return this.fromS3Url(bucket.s3UrlForObject(key));
66
59
  }
67
60
  /**
68
- * (experimental) Firewall domains created from a local disk path to a text file.
69
- *
61
+ * Firewall domains created from a local disk path to a text file.
70
62
  * The file must be a text file (`.txt` extension) and must contain a single
71
63
  * domain per line. It will be uploaded to S3.
72
64
  *
73
- * @param assetPath path to the text file.
74
- * @experimental
65
+ * @param assetPath path to the text file
75
66
  */
76
67
  static fromAsset(assetPath) {
77
68
  // cdk-assets will correctly set the content type for the S3 object
@@ -92,16 +83,11 @@ class FirewallDomains {
92
83
  }
93
84
  exports.FirewallDomains = FirewallDomains;
94
85
  _a = JSII_RTTI_SYMBOL_1;
95
- FirewallDomains[_a] = { fqn: "@aws-cdk/aws-route53resolver-alpha.FirewallDomains", version: "2.12.0-alpha.0" };
86
+ FirewallDomains[_a] = { fqn: "@aws-cdk/aws-route53resolver-alpha.FirewallDomains", version: "2.15.0-alpha.0" };
96
87
  /**
97
- * (experimental) A Firewall Domain List.
98
- *
99
- * @experimental
88
+ * A Firewall Domain List
100
89
  */
101
90
  class FirewallDomainList extends aws_cdk_lib_1.Resource {
102
- /**
103
- * @experimental
104
- */
105
91
  constructor(scope, id, props) {
106
92
  super(scope, id);
107
93
  jsiiDeprecationWarnings._aws_cdk_aws_route53resolver_alpha_FirewallDomainListProps(props);
@@ -125,9 +111,7 @@ class FirewallDomainList extends aws_cdk_lib_1.Resource {
125
111
  this.firewallDomainListStatusMessage = domainList.attrStatusMessage;
126
112
  }
127
113
  /**
128
- * (experimental) Import an existing Firewall Rule Group.
129
- *
130
- * @experimental
114
+ * Import an existing Firewall Rule Group
131
115
  */
132
116
  static fromFirewallDomainListId(scope, id, firewallDomainListId) {
133
117
  class Import extends aws_cdk_lib_1.Resource {
@@ -141,5 +125,5 @@ class FirewallDomainList extends aws_cdk_lib_1.Resource {
141
125
  }
142
126
  exports.FirewallDomainList = FirewallDomainList;
143
127
  _b = JSII_RTTI_SYMBOL_1;
144
- FirewallDomainList[_b] = { fqn: "@aws-cdk/aws-route53resolver-alpha.FirewallDomainList", version: "2.12.0-alpha.0" };
145
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZXdhbGwtZG9tYWluLWxpc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJmaXJld2FsbC1kb21haW4tbGlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSw2QkFBNkI7QUFFN0IsNkRBQWtEO0FBQ2xELDZDQUF5RDtBQUV6RCx5RUFBd0U7Ozs7OztBQWtCeEUsTUFBc0IsZUFBZTs7Ozs7OztJQUU1QixNQUFNLENBQUMsUUFBUSxDQUFDLElBQWM7UUFDbkMsS0FBSyxNQUFNLE1BQU0sSUFBSSxJQUFJLEVBQUU7WUFDekIsSUFBSSxDQUFDLG1DQUFtQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDckQsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsTUFBTSxtR0FBbUcsQ0FBQyxDQUFDO2FBQy9JO1NBQ0Y7UUFFRCxPQUFPO1lBQ0wsSUFBSSxDQUFDLE1BQWlCO2dCQUNwQixPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO1lBQzNCLENBQUM7U0FDRixDQUFDO0tBQ0g7Ozs7Ozs7Ozs7SUFHTSxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQVc7UUFDakMsSUFBSSxDQUFDLG1CQUFLLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUN4RCxNQUFNLElBQUksS0FBSyxDQUFDLHlDQUF5QyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1NBQ2pFO1FBRUQsT0FBTztZQUNMLElBQUksQ0FBQyxNQUFpQjtnQkFDcEIsT0FBTyxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQUUsQ0FBQztZQUNoQyxDQUFDO1NBQ0YsQ0FBQztLQUNIOzs7Ozs7Ozs7OztJQUdNLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBZSxFQUFFLEdBQVc7UUFDL0MsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztLQUNuRDs7Ozs7Ozs7OztJQUdNLE1BQU0sQ0FBQyxTQUFTLENBQUMsU0FBaUI7UUFDdkMsbUVBQW1FO1FBQ25FLHdDQUF3QztRQUN4QyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssTUFBTSxFQUFFO1lBQ3RDLE1BQU0sSUFBSSxLQUFLLENBQUMsMkVBQTJFLFNBQVMsRUFBRSxDQUFDLENBQUM7U0FDekc7UUFFRCxPQUFPO1lBQ0wsSUFBSSxDQUFDLEtBQWdCO2dCQUNuQixNQUFNLEtBQUssR0FBRyxJQUFJLHFCQUFLLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO2dCQUUvRCxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtvQkFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO2lCQUMvRDtnQkFFRCxPQUFPLEVBQUUsYUFBYSxFQUFFLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUM5QyxDQUFDO1NBQ0YsQ0FBQztLQUVIOztBQXRESCwwQ0EwREM7Ozs7Ozs7O0FBWUQsTUFBYSxrQkFBbUIsU0FBUSxzQkFBUTs7OztJQW1DOUMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUE4QjtRQUN0RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDOztRQUVqQixJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxtQkFBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3hGLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLEtBQUssQ0FBQyxJQUFJLGlGQUFpRixDQUFDLENBQUM7U0FDM0k7UUFFRCxNQUFNLGFBQWEsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQyxNQUFNLFVBQVUsR0FBRyxJQUFJLDJDQUFxQixDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDN0QsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO1lBQ2hCLGFBQWEsRUFBRSxhQUFhLENBQUMsYUFBYTtZQUMxQyxPQUFPLEVBQUUsYUFBYSxDQUFDLE9BQU87U0FDL0IsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLG9CQUFvQixHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFDOUMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUM7UUFDaEQsSUFBSSxDQUFDLDhCQUE4QixHQUFHLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQztRQUNsRSxJQUFJLENBQUMsa0NBQWtDLEdBQUcsVUFBVSxDQUFDLG9CQUFvQixDQUFDO1FBQzFFLElBQUksQ0FBQyw2QkFBNkIsR0FBRyxVQUFVLENBQUMsZUFBZSxDQUFDO1FBQ2hFLElBQUksQ0FBQyxrQ0FBa0MsR0FBRyxVQUFVLENBQUMsb0JBQW9CLENBQUM7UUFDMUUsSUFBSSxDQUFDLGtDQUFrQyxHQUFHLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQztRQUMxRSxJQUFJLENBQUMsd0JBQXdCLEdBQUcsVUFBVSxDQUFDLFVBQVUsQ0FBQztRQUN0RCxJQUFJLENBQUMsK0JBQStCLEdBQUcsVUFBVSxDQUFDLGlCQUFpQixDQUFDO0tBQ3JFOzs7Ozs7SUF4RE0sTUFBTSxDQUFDLHdCQUF3QixDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLG9CQUE0QjtRQUMvRixNQUFNLE1BQU8sU0FBUSxzQkFBUTtZQUE3Qjs7Z0JBQ2tCLHlCQUFvQixHQUFHLG9CQUFvQixDQUFDO1lBQzlELENBQUM7U0FBQTtRQUNELE9BQU8sSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0tBQzlCOztBQVBILGdEQTJEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBJQnVja2V0IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzJztcbmltcG9ydCB7IEFzc2V0IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzLWFzc2V0cyc7XG5pbXBvcnQgeyBJUmVzb3VyY2UsIFJlc291cmNlLCBUb2tlbiB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgQ2ZuRmlyZXdhbGxEb21haW5MaXN0IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXJvdXRlNTNyZXNvbHZlcic7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGludGVyZmFjZSBJRmlyZXdhbGxEb21haW5MaXN0IGV4dGVuZHMgSVJlc291cmNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBmaXJld2FsbERvbWFpbkxpc3RJZDogc3RyaW5nO1xufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBpbnRlcmZhY2UgRmlyZXdhbGxEb21haW5MaXN0UHJvcHMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IG5hbWU/OiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgZG9tYWluczogRmlyZXdhbGxEb21haW5zO1xufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRmlyZXdhbGxEb21haW5zIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHN0YXRpYyBmcm9tTGlzdChsaXN0OiBzdHJpbmdbXSk6IEZpcmV3YWxsRG9tYWlucyB7XG4gICAgZm9yIChjb25zdCBkb21haW4gb2YgbGlzdCkge1xuICAgICAgaWYgKCEvXihbXFx3LS5dezEsMjU1fXxcXCpbXFx3LS5dezEsMjU0fSkkLy50ZXN0KGRvbWFpbikpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGRvbWFpbjogJHtkb21haW59LiBEb21haW4gY2FuIG9wdGlvbmFsbHkgc3RhcnQgd2l0aCAqLiBNYXggbGVuZ3RoIG9mIDI1NS4gVmFsaWQgY2hhcmFjdGVyczogQS1aLCBhLXosIDAtOSwgXywgLSwgLmApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBiaW5kKF9zY29wZTogQ29uc3RydWN0KTogRG9tYWluc0NvbmZpZyB7XG4gICAgICAgIHJldHVybiB7IGRvbWFpbnM6IGxpc3QgfTtcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVMzVXJsKHVybDogc3RyaW5nKTogRmlyZXdhbGxEb21haW5zIHtcbiAgICBpZiAoIVRva2VuLmlzVW5yZXNvbHZlZCh1cmwpICYmICF1cmwuc3RhcnRzV2l0aCgnczM6Ly8nKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgUzMgVVJMIG11c3Qgc3RhcnQgd2l0aCBzMzovLywgZ290ICR7dXJsfWApO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBiaW5kKF9zY29wZTogQ29uc3RydWN0KTogRG9tYWluc0NvbmZpZyB7XG4gICAgICAgIHJldHVybiB7IGRvbWFpbkZpbGVVcmw6IHVybCB9O1xuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVMzKGJ1Y2tldDogSUJ1Y2tldCwga2V5OiBzdHJpbmcpOiBGaXJld2FsbERvbWFpbnMge1xuICAgIHJldHVybiB0aGlzLmZyb21TM1VybChidWNrZXQuczNVcmxGb3JPYmplY3Qoa2V5KSk7XG4gIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHN0YXRpYyBmcm9tQXNzZXQoYXNzZXRQYXRoOiBzdHJpbmcpOiBGaXJld2FsbERvbWFpbnMge1xuICAgIC8vIGNkay1hc3NldHMgd2lsbCBjb3JyZWN0bHkgc2V0IHRoZSBjb250ZW50IHR5cGUgZm9yIHRoZSBTMyBvYmplY3RcbiAgICAvLyBpZiB0aGUgZmlsZSBoYXMgdGhlIGNvcnJlY3QgZXh0ZW5zaW9uXG4gICAgaWYgKHBhdGguZXh0bmFtZShhc3NldFBhdGgpICE9PSAnLnR4dCcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRmlyZXdhbGxEb21haW5zLmZyb21Bc3NldCgpIGV4cGVjdHMgYSBmaWxlIHdpdGggdGhlIC50eHQgZXh0ZW5zaW9uLCBnb3QgJHthc3NldFBhdGh9YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGJpbmQoc2NvcGU6IENvbnN0cnVjdCk6IERvbWFpbnNDb25maWcge1xuICAgICAgICBjb25zdCBhc3NldCA9IG5ldyBBc3NldChzY29wZSwgJ0RvbWFpbnMnLCB7IHBhdGg6IGFzc2V0UGF0aCB9KTtcblxuICAgICAgICBpZiAoIWFzc2V0LmlzRmlsZSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRmlyZXdhbGxEb21haW5zLmZyb21Bc3NldCgpIGV4cGVjdHMgYSBmaWxlJyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4geyBkb21haW5GaWxlVXJsOiBhc3NldC5zM09iamVjdFVybCB9O1xuICAgICAgfSxcbiAgICB9O1xuXG4gIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgYWJzdHJhY3QgYmluZChzY29wZTogQ29uc3RydWN0KTogRG9tYWluc0NvbmZpZztcbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBpbnRlcmZhY2UgRG9tYWluc0NvbmZpZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgZG9tYWluRmlsZVVybD86IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGRvbWFpbnM/OiBzdHJpbmdbXTtcbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgY2xhc3MgRmlyZXdhbGxEb21haW5MaXN0IGV4dGVuZHMgUmVzb3VyY2UgaW1wbGVtZW50cyBJRmlyZXdhbGxEb21haW5MaXN0IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHN0YXRpYyBmcm9tRmlyZXdhbGxEb21haW5MaXN0SWQoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgZmlyZXdhbGxEb21haW5MaXN0SWQ6IHN0cmluZyk6IElGaXJld2FsbERvbWFpbkxpc3Qge1xuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSUZpcmV3YWxsRG9tYWluTGlzdCB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgZmlyZXdhbGxEb21haW5MaXN0SWQgPSBmaXJld2FsbERvbWFpbkxpc3RJZDtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBJbXBvcnQoc2NvcGUsIGlkKTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBmaXJld2FsbERvbWFpbkxpc3RJZDogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyByZWFkb25seSBmaXJld2FsbERvbWFpbkxpc3RBcm46IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHJlYWRvbmx5IGZpcmV3YWxsRG9tYWluTGlzdENyZWF0aW9uVGltZTogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyByZWFkb25seSBmaXJld2FsbERvbWFpbkxpc3RDcmVhdG9yUmVxdWVzdElkOiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVhZG9ubHkgZmlyZXdhbGxEb21haW5MaXN0RG9tYWluQ291bnQ6IG51bWJlcjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHJlYWRvbmx5IGZpcmV3YWxsRG9tYWluTGlzdE1hbmFnZWRPd25lck5hbWU6IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHJlYWRvbmx5IGZpcmV3YWxsRG9tYWluTGlzdE1vZGlmaWNhdGlvblRpbWU6IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHJlYWRvbmx5IGZpcmV3YWxsRG9tYWluTGlzdFN0YXR1czogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHJlYWRvbmx5IGZpcmV3YWxsRG9tYWluTGlzdFN0YXR1c01lc3NhZ2U6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRmlyZXdhbGxEb21haW5MaXN0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgaWYgKHByb3BzLm5hbWUgJiYgIVRva2VuLmlzVW5yZXNvbHZlZChwcm9wcy5uYW1lKSAmJiAhL15bXFx3LS5dezEsMTI4fSQvLnRlc3QocHJvcHMubmFtZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBkb21haW4gbGlzdCBuYW1lOiAke3Byb3BzLm5hbWV9LiBUaGUgbmFtZSBtdXN0IGhhdmUgMS0xMjggY2hhcmFjdGVycy4gVmFsaWQgY2hhcmFjdGVyczogQS1aLCBhLXosIDAtOSwgXywgLSwgLmApO1xuICAgIH1cblxuICAgIGNvbnN0IGRvbWFpbnNDb25maWcgPSBwcm9wcy5kb21haW5zLmJpbmQodGhpcyk7XG4gICAgY29uc3QgZG9tYWluTGlzdCA9IG5ldyBDZm5GaXJld2FsbERvbWFpbkxpc3QodGhpcywgJ1Jlc291cmNlJywge1xuICAgICAgbmFtZTogcHJvcHMubmFtZSxcbiAgICAgIGRvbWFpbkZpbGVVcmw6IGRvbWFpbnNDb25maWcuZG9tYWluRmlsZVVybCxcbiAgICAgIGRvbWFpbnM6IGRvbWFpbnNDb25maWcuZG9tYWlucyxcbiAgICB9KTtcblxuICAgIHRoaXMuZmlyZXdhbGxEb21haW5MaXN0SWQgPSBkb21haW5MaXN0LmF0dHJJZDtcbiAgICB0aGlzLmZpcmV3YWxsRG9tYWluTGlzdEFybiA9IGRvbWFpbkxpc3QuYXR0ckFybjtcbiAgICB0aGlzLmZpcmV3YWxsRG9tYWluTGlzdENyZWF0aW9uVGltZSA9IGRvbWFpbkxpc3QuYXR0ckNyZWF0aW9uVGltZTtcbiAgICB0aGlzLmZpcmV3YWxsRG9tYWluTGlzdENyZWF0b3JSZXF1ZXN0SWQgPSBkb21haW5MaXN0LmF0dHJDcmVhdG9yUmVxdWVzdElkO1xuICAgIHRoaXMuZmlyZXdhbGxEb21haW5MaXN0RG9tYWluQ291bnQgPSBkb21haW5MaXN0LmF0dHJEb21haW5Db3VudDtcbiAgICB0aGlzLmZpcmV3YWxsRG9tYWluTGlzdE1hbmFnZWRPd25lck5hbWUgPSBkb21haW5MaXN0LmF0dHJNYW5hZ2VkT3duZXJOYW1lO1xuICAgIHRoaXMuZmlyZXdhbGxEb21haW5MaXN0TW9kaWZpY2F0aW9uVGltZSA9IGRvbWFpbkxpc3QuYXR0ck1vZGlmaWNhdGlvblRpbWU7XG4gICAgdGhpcy5maXJld2FsbERvbWFpbkxpc3RTdGF0dXMgPSBkb21haW5MaXN0LmF0dHJTdGF0dXM7XG4gICAgdGhpcy5maXJld2FsbERvbWFpbkxpc3RTdGF0dXNNZXNzYWdlID0gZG9tYWluTGlzdC5hdHRyU3RhdHVzTWVzc2FnZTtcbiAgfVxufVxuIl19
128
+ FirewallDomainList[_b] = { fqn: "@aws-cdk/aws-route53resolver-alpha.FirewallDomainList", version: "2.15.0-alpha.0" };
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZXdhbGwtZG9tYWluLWxpc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJmaXJld2FsbC1kb21haW4tbGlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSw2QkFBNkI7QUFFN0IsNkRBQWtEO0FBQ2xELDZDQUF5RDtBQUV6RCx5RUFBd0U7QUErQnhFOztHQUVHO0FBQ0gsTUFBc0IsZUFBZTtJQUNuQzs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFjO1FBQ25DLEtBQUssTUFBTSxNQUFNLElBQUksSUFBSSxFQUFFO1lBQ3pCLElBQUksQ0FBQyxtQ0FBbUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ3JELE1BQU0sSUFBSSxLQUFLLENBQUMsbUJBQW1CLE1BQU0sbUdBQW1HLENBQUMsQ0FBQzthQUMvSTtTQUNGO1FBRUQsT0FBTztZQUNMLElBQUksQ0FBQyxNQUFpQjtnQkFDcEIsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUMzQixDQUFDO1NBQ0YsQ0FBQztLQUNIO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFXO1FBQ2pDLElBQUksQ0FBQyxtQkFBSyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDeEQsTUFBTSxJQUFJLEtBQUssQ0FBQyx5Q0FBeUMsR0FBRyxFQUFFLENBQUMsQ0FBQztTQUNqRTtRQUVELE9BQU87WUFDTCxJQUFJLENBQUMsTUFBaUI7Z0JBQ3BCLE9BQU8sRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLENBQUM7WUFDaEMsQ0FBQztTQUNGLENBQUM7S0FDSDtJQUVEOzs7Ozs7O09BT0c7SUFDSSxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQWUsRUFBRSxHQUFXO1FBQy9DLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMs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bmltcG9ydCB7IElCdWNrZXQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuaW1wb3J0IHsgQXNzZXQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMtYXNzZXRzJztcbmltcG9ydCB7IElSZXNvdXJjZSwgUmVzb3VyY2UsIFRva2VuIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBDZm5GaXJld2FsbERvbWFpbkxpc3QgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtcm91dGU1M3Jlc29sdmVyJztcblxuLyoqXG4gKiBBIEZpcmV3YWxsIERvbWFpbiBMaXN0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUZpcmV3YWxsRG9tYWluTGlzdCBleHRlbmRzIElSZXNvdXJjZSB7XG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhlIGRvbWFpbiBsaXN0XG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGZpcmV3YWxsRG9tYWluTGlzdElkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYSBGaXJld2FsbCBEb21haW4gTGlzdFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZpcmV3YWxsRG9tYWluTGlzdFByb3BzIHtcbiAgLyoqXG4gICAqIEEgbmFtZSBmb3IgdGhlIGRvbWFpbiBsaXN0XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYSBDbG91ZEZvcm1hdGlvbiBnZW5lcmF0ZWQgbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogQSBsaXN0IG9mIGRvbWFpbnNcbiAgICovXG4gIHJlYWRvbmx5IGRvbWFpbnM6IEZpcmV3YWxsRG9tYWlucztcbn1cblxuLyoqXG4gKiBBIGxpc3Qgb2YgZG9tYWluc1xuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRmlyZXdhbGxEb21haW5zIHtcbiAgLyoqXG4gICAqIEZpcmV3YWxsIGRvbWFpbnMgY3JlYXRlZCBmcm9tIGEgbGlzdCBvZiBkb21haW5zXG4gICAqXG4gICAqIEBwYXJhbSBsaXN0IHRoZSBsaXN0IG9mIGRvbWFpbnNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUxpc3QobGlzdDogc3RyaW5nW10pOiBGaXJld2FsbERvbWFpbnMge1xuICAgIGZvciAoY29uc3QgZG9tYWluIG9mIGxpc3QpIHtcbiAgICAgIGlmICghL14oW1xcdy0uXXsxLDI1NX18XFwqW1xcdy0uXXsxLDI1NH0pJC8udGVzdChkb21haW4pKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBkb21haW46ICR7ZG9tYWlufS4gRG9tYWluIGNhbiBvcHRpb25hbGx5IHN0YXJ0IHdpdGggKi4gTWF4IGxlbmd0aCBvZiAyNTUuIFZhbGlkIGNoYXJhY3RlcnM6IEEtWiwgYS16LCAwLTksIF8sIC0sIC5gKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgYmluZChfc2NvcGU6IENvbnN0cnVjdCk6IERvbWFpbnNDb25maWcge1xuICAgICAgICByZXR1cm4geyBkb21haW5zOiBsaXN0IH07XG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogRmlyZXdhbGwgZG9tYWlucyBjcmVhdGVkIGZyb20gdGhlIFVSTCBvZiBhIGZpbGUgc3RvcmVkIGluIEFtYXpvbiBTMy5cbiAgICogVGhlIGZpbGUgbXVzdCBiZSBhIHRleHQgZmlsZSBhbmQgbXVzdCBjb250YWluIGEgc2luZ2xlIGRvbWFpbiBwZXIgbGluZS5cbiAgICogVGhlIGNvbnRlbnQgdHlwZSBvZiB0aGUgUzMgb2JqZWN0IG11c3QgYmUgYHBsYWluL3RleHRgLlxuICAgKlxuICAgKiBAcGFyYW0gdXJsIFMzIGJ1Y2tldCB1cmwgKHMzOi8vYnVja2V0L3ByZWZpeC9vYmpldCkuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21TM1VybCh1cmw6IHN0cmluZyk6IEZpcmV3YWxsRG9tYWlucyB7XG4gICAgaWYgKCFUb2tlbi5pc1VucmVzb2x2ZWQodXJsKSAmJiAhdXJsLnN0YXJ0c1dpdGgoJ3MzOi8vJykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVGhlIFMzIFVSTCBtdXN0IHN0YXJ0IHdpdGggczM6Ly8sIGdvdCAke3VybH1gKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgYmluZChfc2NvcGU6IENvbnN0cnVjdCk6IERvbWFpbnNDb25maWcge1xuICAgICAgICByZXR1cm4geyBkb21haW5GaWxlVXJsOiB1cmwgfTtcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaXJld2FsbCBkb21haW5zIGNyZWF0ZWQgZnJvbSBhIGZpbGUgc3RvcmVkIGluIEFtYXpvbiBTMy5cbiAgICogVGhlIGZpbGUgbXVzdCBiZSBhIHRleHQgZmlsZSBhbmQgbXVzdCBjb250YWluIGEgc2luZ2xlIGRvbWFpbiBwZXIgbGluZS5cbiAgICogVGhlIGNvbnRlbnQgdHlwZSBvZiB0aGUgUzMgb2JqZWN0IG11c3QgYmUgYHBsYWluL3RleHRgLlxuICAgKlxuICAgKiBAcGFyYW0gYnVja2V0IFMzIGJ1Y2tldFxuICAgKiBAcGFyYW0ga2V5IFMzIGtleVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tUzMoYnVja2V0OiBJQnVja2V0LCBrZXk6IHN0cmluZyk6IEZpcmV3YWxsRG9tYWlucyB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbVMzVXJsKGJ1Y2tldC5zM1VybEZvck9iamVjdChrZXkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaXJld2FsbCBkb21haW5zIGNyZWF0ZWQgZnJvbSBhIGxvY2FsIGRpc2sgcGF0aCB0byBhIHRleHQgZmlsZS5cbiAgICogVGhlIGZpbGUgbXVzdCBiZSBhIHRleHQgZmlsZSAoYC50eHRgIGV4dGVuc2lvbikgYW5kIG11c3QgY29udGFpbiBhIHNpbmdsZVxuICAgKiBkb21haW4gcGVyIGxpbmUuIEl0IHdpbGwgYmUgdXBsb2FkZWQgdG8gUzMuXG4gICAqXG4gICAqIEBwYXJhbSBhc3NldFBhdGggcGF0aCB0byB0aGUgdGV4dCBmaWxlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21Bc3NldChhc3NldFBhdGg6IHN0cmluZyk6IEZpcmV3YWxsRG9tYWlucyB7XG4gICAgLy8gY2RrLWFzc2V0cyB3aWxsIGNvcnJlY3RseSBzZXQgdGhlIGNvbnRlbnQgdHlwZSBmb3IgdGhlIFMzIG9iamVjdFxuICAgIC8vIGlmIHRoZSBmaWxlIGhhcyB0aGUgY29ycmVjdCBleHRlbnNpb25cbiAgICBpZiAocGF0aC5leHRuYW1lKGFzc2V0UGF0aCkgIT09ICcudHh0Jykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBGaXJld2FsbERvbWFpbnMuZnJvbUFzc2V0KCkgZXhwZWN0cyBhIGZpbGUgd2l0aCB0aGUgLnR4dCBleHRlbnNpb24sIGdvdCAke2Fzc2V0UGF0aH1gKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgYmluZChzY29wZTogQ29uc3RydWN0KTogRG9tYWluc0NvbmZpZyB7XG4gICAgICAgIGNvbnN0IGFzc2V0ID0gbmV3IEFzc2V0KHNjb3BlLCAnRG9tYWlucycsIHsgcGF0aDogYXNzZXRQYXRoIH0pO1xuXG4gICAgICAgIGlmICghYXNzZXQuaXNGaWxlKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdGaXJld2FsbERvbWFpbnMuZnJvbUFzc2V0KCkgZXhwZWN0cyBhIGZpbGUnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7IGRvbWFpbkZpbGVVcmw6IGFzc2V0LnMzT2JqZWN0VXJsIH07XG4gICAgICB9LFxuICAgIH07XG5cbiAgfVxuXG4gIC8qKiBCaW5kcyB0aGUgZG9tYWlucyB0byBhIGRvbWFpbiBsaXN0ICovXG4gIHB1YmxpYyBhYnN0cmFjdCBiaW5kKHNjb3BlOiBDb25zdHJ1Y3QpOiBEb21haW5zQ29uZmlnO1xufVxuXG4vKipcbiAqIERvbWFpbnMgY29uZmlndXJhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIERvbWFpbnNDb25maWcge1xuICAvKipcbiAgICogVGhlIGZ1bGx5IHF1YWxpZmllZCBVUkwgb3IgVVJJIG9mIHRoZSBmaWxlIHN0b3JlZCBpbiBBbWF6b24gUzMgdGhhdCBjb250YWluc1xuICAgKiB0aGUgbGlzdCBvZiBkb21haW5zIHRvIGltcG9ydC4gVGhlIGZpbGUgbXVzdCBiZSBhIHRleHQgZmlsZSBhbmQgbXVzdCBjb250YWluXG4gICAqIGEgc2luZ2xlIGRvbWFpbiBwZXIgbGluZS4gVGhlIGNvbnRlbnQgdHlwZSBvZiB0aGUgUzMgb2JqZWN0IG11c3QgYmUgYHBsYWluL3RleHRgLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHVzZSBgZG9tYWluc2BcbiAgICovXG4gIHJlYWRvbmx5IGRvbWFpbkZpbGVVcmw/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBkb21haW5zXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdXNlIGBkb21haW5GaWxlVXJsYFxuICAgKi9cbiAgcmVhZG9ubHkgZG9tYWlucz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIEEgRmlyZXdhbGwgRG9tYWluIExpc3RcbiAqL1xuZXhwb3J0IGNsYXNzIEZpcmV3YWxsRG9tYWluTGlzdCBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSUZpcmV3YWxsRG9tYWluTGlzdCB7XG4gIC8qKlxuICAgKiBJbXBvcnQgYW4gZXhpc3RpbmcgRmlyZXdhbGwgUnVsZSBHcm91cFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tRmlyZXdhbGxEb21haW5MaXN0SWQoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgZmlyZXdhbGxEb21haW5MaXN0SWQ6IHN0cmluZyk6IElGaXJld2FsbERvbWFpbkxpc3Qge1xuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSUZpcmV3YWxsRG9tYWluTGlzdCB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgZmlyZXdhbGxEb21haW5MaXN0SWQgPSBmaXJld2FsbERvbWFpbkxpc3RJZDtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBJbXBvcnQoc2NvcGUsIGlkKTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBmaXJld2FsbERvbWFpbkxpc3RJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIChBbWF6b24gUmVzb3VyY2UgTmFtZSkgb2YgdGhlIGRvbWFpbiBsaXN0XG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBmaXJld2FsbERvbWFpbkxpc3RBcm46IHN0cmluZztcblxuICAvKipcbiAgICAqIFRoZSBkYXRlIGFuZCB0aW1lIHRoYXQgdGhlIGRvbWFpbiBsaXN0IHdhcyBjcmVhdGVkXG4gICAgKiBAYXR0cmlidXRlXG4gICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGZpcmV3YWxsRG9tYWluTGlzdENyZWF0aW9uVGltZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgICogVGhlIGNyZWF0b3IgcmVxdWVzdCBJRFxuICAgICogQGF0dHJpYnV0ZVxuICAgICovXG4gIHB1YmxpYyByZWFkb25seSBmaXJld2FsbERvbWFpbkxpc3RDcmVhdG9yUmVxdWVzdElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAgKiBUaGUgbnVtYmVyIG9mIGRvbWFpbnMgaW4gdGhlIGxpc3RcbiAgICAqIEBhdHRyaWJ1dGVcbiAgICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZmlyZXdhbGxEb21haW5MaXN0RG9tYWluQ291bnQ6IG51bWJlcjtcblxuICAvKipcbiAgICAqIFRoZSBvd25lciBvZiB0aGUgbGlzdCwgdXNlZCBvbmx5IGZvciBsaXN0cyB0aGF0IGFyZSBub3QgbWFuYWdlZCBieSB5b3UuXG4gICAgKiBGb3IgZXhhbXBsZSwgdGhlIG1hbmFnZWQgZG9tYWluIGxpc3QgYEFXU01hbmFnZWREb21haW5zTWFsd2FyZURvbWFpbkxpc3RgXG4gICAgKiBoYXMgdGhlIG1hbmFnZWQgb3duZXIgbmFtZSBgUm91dGUgNTMgUmVzb2x2ZXIgRE5TIEZpcmV3YWxsYC5cbiAgICAqIEBhdHRyaWJ1dGVcbiAgICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZmlyZXdhbGxEb21haW5MaXN0TWFuYWdlZE93bmVyTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgICogVGhlIGRhdGUgYW5kIHRpbWUgdGhhdCB0aGUgZG9tYWluIGxpc3Qgd2FzIGxhc3QgbW9kaWZpZWRcbiAgICAqIEBhdHRyaWJ1dGVcbiAgICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZmlyZXdhbGxEb21haW5MaXN0TW9kaWZpY2F0aW9uVGltZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgICogVGhlIHN0YXR1cyBvZiB0aGUgZG9tYWluIGxpc3RcbiAgICAqIEBhdHRyaWJ1dGVcbiAgICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZmlyZXdhbGxEb21haW5MaXN0U3RhdHVzOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAgKiBBZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzdGF0dXMgb2YgdGhlIHJ1bGUgZ3JvdXBcbiAgICAqIEBhdHRyaWJ1dGVcbiAgICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZmlyZXdhbGxEb21haW5MaXN0U3RhdHVzTWVzc2FnZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBGaXJld2FsbERvbWFpbkxpc3RQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBpZiAocHJvcHMubmFtZSAmJiAhVG9rZW4uaXNVbnJlc29sdmVkKHByb3BzLm5hbWUpICYmICEvXltcXHctLl17MSwxMjh9JC8udGVzdChwcm9wcy5uYW1lKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGRvbWFpbiBsaXN0IG5hbWU6ICR7cHJvcHMubmFtZX0uIFRoZSBuYW1lIG11c3QgaGF2ZSAxLTEyOCBjaGFyYWN0ZXJzLiBWYWxpZCBjaGFyYWN0ZXJzOiBBLVosIGEteiwgMC05LCBfLCAtLCAuYCk7XG4gICAgfVxuXG4gICAgY29uc3QgZG9tYWluc0NvbmZpZyA9IHByb3BzLmRvbWFpbnMuYmluZCh0aGlzKTtcbiAgICBjb25zdCBkb21haW5MaXN0ID0gbmV3IENmbkZpcmV3YWxsRG9tYWluTGlzdCh0aGlzLCAnUmVzb3VyY2UnLCB7XG4gICAgICBuYW1lOiBwcm9wcy5uYW1lLFxuICAgICAgZG9tYWluRmlsZVVybDogZG9tYWluc0NvbmZpZy5kb21haW5GaWxlVXJsLFxuICAgICAgZG9tYWluczogZG9tYWluc0NvbmZpZy5kb21haW5zLFxuICAgIH0pO1xuXG4gICAgdGhpcy5maXJld2FsbERvbWFpbkxpc3RJZCA9IGRvbWFpbkxpc3QuYXR0cklkO1xuICAgIHRoaXMuZmlyZXdhbGxEb21haW5MaXN0QXJuID0gZG9tYWluTGlzdC5hdHRyQXJuO1xuICAgIHRoaXMuZmlyZXdhbGxEb21haW5MaXN0Q3JlYXRpb25UaW1lID0gZG9tYWluTGlzdC5hdHRyQ3JlYXRpb25UaW1lO1xuICAgIHRoaXMuZmlyZXdhbGxEb21haW5MaXN0Q3JlYXRvclJlcXVlc3RJZCA9IGRvbWFpbkxpc3QuYXR0ckNyZWF0b3JSZXF1ZXN0SWQ7XG4gICAgdGhpcy5maXJld2FsbERvbWFpbkxpc3REb21haW5Db3VudCA9IGRvbWFpbkxpc3QuYXR0ckRvbWFpbkNvdW50O1xuICAgIHRoaXMuZmlyZXdhbGxEb21haW5MaXN0TWFuYWdlZE93bmVyTmFtZSA9IGRvbWFpbkxpc3QuYXR0ck1hbmFnZWRPd25lck5hbWU7XG4gICAgdGhpcy5maXJld2FsbERvbWFpbkxpc3RNb2RpZmljYXRpb25UaW1lID0gZG9tYWluTGlzdC5hdHRyTW9kaWZpY2F0aW9uVGltZTtcbiAgICB0aGlzLmZpcmV3YWxsRG9tYWluTGlzdFN0YXR1cyA9IGRvbWFpbkxpc3QuYXR0clN0YXR1cztcbiAgICB0aGlzLmZpcmV3YWxsRG9tYWluTGlzdFN0YXR1c01lc3NhZ2UgPSBkb21haW5MaXN0LmF0dHJTdGF0dXNNZXNzYWdlO1xuICB9XG59XG4iXX0=