@rio-cloud/cdk-v2-constructs 7.8.1 → 7.10.1-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 +55 -23
- package/docs/API.md +26 -0
- package/docs/changelog.md +16 -0
- package/lib/contributions/cop-frontend/cloudfront/rio-cloudfront-distribution.d.ts +6 -0
- package/lib/contributions/cop-frontend/cloudfront/rio-cloudfront-distribution.js +12 -8
- package/lib/contributions/team-transport-two/pipeline/buildspecs.js +3 -3
- package/lib/contributions/team-transport-two/pipeline/pipeline-stack.d.ts +5 -0
- package/lib/contributions/team-transport-two/pipeline/pipeline-stack.js +31 -20
- package/lib/fargate/rio-fargate-service-blue-green-alpha.js +2 -2
- package/lib/fargate/rio-fargate-service.js +2 -2
- package/package.json +1 -1
- package/version.json +1 -1
package/.jsii
CHANGED
|
@@ -5529,7 +5529,7 @@
|
|
|
5529
5529
|
"kind": "interface",
|
|
5530
5530
|
"locationInModule": {
|
|
5531
5531
|
"filename": "src/contributions/cop-frontend/cloudfront/rio-cloudfront-distribution.ts",
|
|
5532
|
-
"line":
|
|
5532
|
+
"line": 94
|
|
5533
5533
|
},
|
|
5534
5534
|
"name": "CspConfig",
|
|
5535
5535
|
"properties": [
|
|
@@ -5542,7 +5542,7 @@
|
|
|
5542
5542
|
"immutable": true,
|
|
5543
5543
|
"locationInModule": {
|
|
5544
5544
|
"filename": "src/contributions/cop-frontend/cloudfront/rio-cloudfront-distribution.ts",
|
|
5545
|
-
"line":
|
|
5545
|
+
"line": 108
|
|
5546
5546
|
},
|
|
5547
5547
|
"name": "configCat",
|
|
5548
5548
|
"optional": true,
|
|
@@ -5559,7 +5559,7 @@
|
|
|
5559
5559
|
"immutable": true,
|
|
5560
5560
|
"locationInModule": {
|
|
5561
5561
|
"filename": "src/contributions/cop-frontend/cloudfront/rio-cloudfront-distribution.ts",
|
|
5562
|
-
"line":
|
|
5562
|
+
"line": 117
|
|
5563
5563
|
},
|
|
5564
5564
|
"name": "customDirectives",
|
|
5565
5565
|
"optional": true,
|
|
@@ -5576,7 +5576,7 @@
|
|
|
5576
5576
|
"immutable": true,
|
|
5577
5577
|
"locationInModule": {
|
|
5578
5578
|
"filename": "src/contributions/cop-frontend/cloudfront/rio-cloudfront-distribution.ts",
|
|
5579
|
-
"line":
|
|
5579
|
+
"line": 105
|
|
5580
5580
|
},
|
|
5581
5581
|
"name": "datadog",
|
|
5582
5582
|
"optional": true,
|
|
@@ -5593,7 +5593,7 @@
|
|
|
5593
5593
|
"immutable": true,
|
|
5594
5594
|
"locationInModule": {
|
|
5595
5595
|
"filename": "src/contributions/cop-frontend/cloudfront/rio-cloudfront-distribution.ts",
|
|
5596
|
-
"line":
|
|
5596
|
+
"line": 96
|
|
5597
5597
|
},
|
|
5598
5598
|
"name": "googleAnalytics",
|
|
5599
5599
|
"optional": true,
|
|
@@ -5610,7 +5610,7 @@
|
|
|
5610
5610
|
"immutable": true,
|
|
5611
5611
|
"locationInModule": {
|
|
5612
5612
|
"filename": "src/contributions/cop-frontend/cloudfront/rio-cloudfront-distribution.ts",
|
|
5613
|
-
"line":
|
|
5613
|
+
"line": 111
|
|
5614
5614
|
},
|
|
5615
5615
|
"name": "here",
|
|
5616
5616
|
"optional": true,
|
|
@@ -5627,7 +5627,7 @@
|
|
|
5627
5627
|
"immutable": true,
|
|
5628
5628
|
"locationInModule": {
|
|
5629
5629
|
"filename": "src/contributions/cop-frontend/cloudfront/rio-cloudfront-distribution.ts",
|
|
5630
|
-
"line":
|
|
5630
|
+
"line": 114
|
|
5631
5631
|
},
|
|
5632
5632
|
"name": "logOutput",
|
|
5633
5633
|
"optional": true,
|
|
@@ -5644,7 +5644,7 @@
|
|
|
5644
5644
|
"immutable": true,
|
|
5645
5645
|
"locationInModule": {
|
|
5646
5646
|
"filename": "src/contributions/cop-frontend/cloudfront/rio-cloudfront-distribution.ts",
|
|
5647
|
-
"line":
|
|
5647
|
+
"line": 99
|
|
5648
5648
|
},
|
|
5649
5649
|
"name": "sentry",
|
|
5650
5650
|
"optional": true,
|
|
@@ -5661,7 +5661,7 @@
|
|
|
5661
5661
|
"immutable": true,
|
|
5662
5662
|
"locationInModule": {
|
|
5663
5663
|
"filename": "src/contributions/cop-frontend/cloudfront/rio-cloudfront-distribution.ts",
|
|
5664
|
-
"line":
|
|
5664
|
+
"line": 102
|
|
5665
5665
|
},
|
|
5666
5666
|
"name": "split",
|
|
5667
5667
|
"optional": true,
|
|
@@ -10187,7 +10187,7 @@
|
|
|
10187
10187
|
},
|
|
10188
10188
|
"locationInModule": {
|
|
10189
10189
|
"filename": "src/contributions/team-transport-two/pipeline/pipeline-stack.ts",
|
|
10190
|
-
"line":
|
|
10190
|
+
"line": 286
|
|
10191
10191
|
},
|
|
10192
10192
|
"parameters": [
|
|
10193
10193
|
{
|
|
@@ -10224,7 +10224,7 @@
|
|
|
10224
10224
|
"immutable": true,
|
|
10225
10225
|
"locationInModule": {
|
|
10226
10226
|
"filename": "src/contributions/team-transport-two/pipeline/pipeline-stack.ts",
|
|
10227
|
-
"line":
|
|
10227
|
+
"line": 347
|
|
10228
10228
|
},
|
|
10229
10229
|
"name": "branchCodeBuildProject",
|
|
10230
10230
|
"type": {
|
|
@@ -10238,12 +10238,26 @@
|
|
|
10238
10238
|
"immutable": true,
|
|
10239
10239
|
"locationInModule": {
|
|
10240
10240
|
"filename": "src/contributions/team-transport-two/pipeline/pipeline-stack.ts",
|
|
10241
|
-
"line":
|
|
10241
|
+
"line": 343
|
|
10242
10242
|
},
|
|
10243
10243
|
"name": "mainCodebuildProject",
|
|
10244
10244
|
"type": {
|
|
10245
10245
|
"fqn": "aws-cdk-lib.pipelines.CodeBuildStep"
|
|
10246
10246
|
}
|
|
10247
|
+
},
|
|
10248
|
+
{
|
|
10249
|
+
"docs": {
|
|
10250
|
+
"stability": "stable"
|
|
10251
|
+
},
|
|
10252
|
+
"immutable": true,
|
|
10253
|
+
"locationInModule": {
|
|
10254
|
+
"filename": "src/contributions/team-transport-two/pipeline/pipeline-stack.ts",
|
|
10255
|
+
"line": 354
|
|
10256
|
+
},
|
|
10257
|
+
"name": "vulnerabilityCodeBuildProject",
|
|
10258
|
+
"type": {
|
|
10259
|
+
"fqn": "aws-cdk-lib.pipelines.CodeBuildStep"
|
|
10260
|
+
}
|
|
10247
10261
|
}
|
|
10248
10262
|
],
|
|
10249
10263
|
"symbolId": "src/contributions/team-transport-two/pipeline/pipeline-stack:PipelineStack"
|
|
@@ -10695,7 +10709,7 @@
|
|
|
10695
10709
|
},
|
|
10696
10710
|
"locationInModule": {
|
|
10697
10711
|
"filename": "src/contributions/cop-frontend/cloudfront/rio-cloudfront-distribution.ts",
|
|
10698
|
-
"line":
|
|
10712
|
+
"line": 128
|
|
10699
10713
|
},
|
|
10700
10714
|
"parameters": [
|
|
10701
10715
|
{
|
|
@@ -10721,7 +10735,7 @@
|
|
|
10721
10735
|
"kind": "class",
|
|
10722
10736
|
"locationInModule": {
|
|
10723
10737
|
"filename": "src/contributions/cop-frontend/cloudfront/rio-cloudfront-distribution.ts",
|
|
10724
|
-
"line":
|
|
10738
|
+
"line": 125
|
|
10725
10739
|
},
|
|
10726
10740
|
"name": "RioCloudfrontDistribution",
|
|
10727
10741
|
"properties": [
|
|
@@ -10732,7 +10746,7 @@
|
|
|
10732
10746
|
"immutable": true,
|
|
10733
10747
|
"locationInModule": {
|
|
10734
10748
|
"filename": "src/contributions/cop-frontend/cloudfront/rio-cloudfront-distribution.ts",
|
|
10735
|
-
"line":
|
|
10749
|
+
"line": 126
|
|
10736
10750
|
},
|
|
10737
10751
|
"name": "distribution",
|
|
10738
10752
|
"type": {
|
|
@@ -10753,7 +10767,7 @@
|
|
|
10753
10767
|
"kind": "interface",
|
|
10754
10768
|
"locationInModule": {
|
|
10755
10769
|
"filename": "src/contributions/cop-frontend/cloudfront/rio-cloudfront-distribution.ts",
|
|
10756
|
-
"line":
|
|
10770
|
+
"line": 41
|
|
10757
10771
|
},
|
|
10758
10772
|
"name": "RioCloudfrontDistributionProps",
|
|
10759
10773
|
"properties": [
|
|
@@ -10766,7 +10780,7 @@
|
|
|
10766
10780
|
"immutable": true,
|
|
10767
10781
|
"locationInModule": {
|
|
10768
10782
|
"filename": "src/contributions/cop-frontend/cloudfront/rio-cloudfront-distribution.ts",
|
|
10769
|
-
"line":
|
|
10783
|
+
"line": 43
|
|
10770
10784
|
},
|
|
10771
10785
|
"name": "contentBucketName",
|
|
10772
10786
|
"type": {
|
|
@@ -10784,7 +10798,7 @@
|
|
|
10784
10798
|
"immutable": true,
|
|
10785
10799
|
"locationInModule": {
|
|
10786
10800
|
"filename": "src/contributions/cop-frontend/cloudfront/rio-cloudfront-distribution.ts",
|
|
10787
|
-
"line":
|
|
10801
|
+
"line": 69
|
|
10788
10802
|
},
|
|
10789
10803
|
"name": "contentSecurityPolicy",
|
|
10790
10804
|
"optional": true,
|
|
@@ -10802,7 +10816,7 @@
|
|
|
10802
10816
|
"immutable": true,
|
|
10803
10817
|
"locationInModule": {
|
|
10804
10818
|
"filename": "src/contributions/cop-frontend/cloudfront/rio-cloudfront-distribution.ts",
|
|
10805
|
-
"line":
|
|
10819
|
+
"line": 77
|
|
10806
10820
|
},
|
|
10807
10821
|
"name": "cspConfig",
|
|
10808
10822
|
"optional": true,
|
|
@@ -10810,6 +10824,24 @@
|
|
|
10810
10824
|
"fqn": "@rio-cloud/cdk-v2-constructs.CspConfig"
|
|
10811
10825
|
}
|
|
10812
10826
|
},
|
|
10827
|
+
{
|
|
10828
|
+
"abstract": true,
|
|
10829
|
+
"docs": {
|
|
10830
|
+
"remarks": "If not given, the default value will be `DENY` & override: true.",
|
|
10831
|
+
"stability": "stable",
|
|
10832
|
+
"summary": "The frame options to be used in the response headers policy."
|
|
10833
|
+
},
|
|
10834
|
+
"immutable": true,
|
|
10835
|
+
"locationInModule": {
|
|
10836
|
+
"filename": "src/contributions/cop-frontend/cloudfront/rio-cloudfront-distribution.ts",
|
|
10837
|
+
"line": 91
|
|
10838
|
+
},
|
|
10839
|
+
"name": "frameOptions",
|
|
10840
|
+
"optional": true,
|
|
10841
|
+
"type": {
|
|
10842
|
+
"fqn": "aws-cdk-lib.aws_cloudfront.ResponseHeadersFrameOptions"
|
|
10843
|
+
}
|
|
10844
|
+
},
|
|
10813
10845
|
{
|
|
10814
10846
|
"abstract": true,
|
|
10815
10847
|
"docs": {
|
|
@@ -10820,7 +10852,7 @@
|
|
|
10820
10852
|
"immutable": true,
|
|
10821
10853
|
"locationInModule": {
|
|
10822
10854
|
"filename": "src/contributions/cop-frontend/cloudfront/rio-cloudfront-distribution.ts",
|
|
10823
|
-
"line":
|
|
10855
|
+
"line": 84
|
|
10824
10856
|
},
|
|
10825
10857
|
"name": "functionAssociations",
|
|
10826
10858
|
"optional": true,
|
|
@@ -10843,7 +10875,7 @@
|
|
|
10843
10875
|
"immutable": true,
|
|
10844
10876
|
"locationInModule": {
|
|
10845
10877
|
"filename": "src/contributions/cop-frontend/cloudfront/rio-cloudfront-distribution.ts",
|
|
10846
|
-
"line":
|
|
10878
|
+
"line": 58
|
|
10847
10879
|
},
|
|
10848
10880
|
"name": "hostedZone",
|
|
10849
10881
|
"optional": true,
|
|
@@ -10861,7 +10893,7 @@
|
|
|
10861
10893
|
"immutable": true,
|
|
10862
10894
|
"locationInModule": {
|
|
10863
10895
|
"filename": "src/contributions/cop-frontend/cloudfront/rio-cloudfront-distribution.ts",
|
|
10864
|
-
"line":
|
|
10896
|
+
"line": 51
|
|
10865
10897
|
},
|
|
10866
10898
|
"name": "subDomain",
|
|
10867
10899
|
"optional": true,
|
|
@@ -22717,5 +22749,5 @@
|
|
|
22717
22749
|
}
|
|
22718
22750
|
},
|
|
22719
22751
|
"version": "0.0.0",
|
|
22720
|
-
"fingerprint": "
|
|
22752
|
+
"fingerprint": "tCBsyZpkUHrB7Ac6ftUQ2PjvcSbrf6LoQ9PdMofSLwE="
|
|
22721
22753
|
}
|
package/docs/API.md
CHANGED
|
@@ -5927,6 +5927,7 @@ The construct to start the search from.
|
|
|
5927
5927
|
| <code><a href="#@rio-cloud/cdk-v2-constructs.PipelineStack.property.terminationProtection">terminationProtection</a></code> | <code>boolean</code> | Whether termination protection is enabled for this stack. |
|
|
5928
5928
|
| <code><a href="#@rio-cloud/cdk-v2-constructs.PipelineStack.property.branchCodeBuildProject">branchCodeBuildProject</a></code> | <code>aws-cdk-lib.pipelines.CodeBuildStep</code> | *No description.* |
|
|
5929
5929
|
| <code><a href="#@rio-cloud/cdk-v2-constructs.PipelineStack.property.mainCodebuildProject">mainCodebuildProject</a></code> | <code>aws-cdk-lib.pipelines.CodeBuildStep</code> | *No description.* |
|
|
5930
|
+
| <code><a href="#@rio-cloud/cdk-v2-constructs.PipelineStack.property.vulnerabilityCodeBuildProject">vulnerabilityCodeBuildProject</a></code> | <code>aws-cdk-lib.pipelines.CodeBuildStep</code> | *No description.* |
|
|
5930
5931
|
|
|
5931
5932
|
---
|
|
5932
5933
|
|
|
@@ -6280,6 +6281,16 @@ public readonly mainCodebuildProject: CodeBuildStep;
|
|
|
6280
6281
|
|
|
6281
6282
|
---
|
|
6282
6283
|
|
|
6284
|
+
##### `vulnerabilityCodeBuildProject`<sup>Required</sup> <a name="vulnerabilityCodeBuildProject" id="@rio-cloud/cdk-v2-constructs.PipelineStack.property.vulnerabilityCodeBuildProject"></a>
|
|
6285
|
+
|
|
6286
|
+
```typescript
|
|
6287
|
+
public readonly vulnerabilityCodeBuildProject: CodeBuildStep;
|
|
6288
|
+
```
|
|
6289
|
+
|
|
6290
|
+
- *Type:* aws-cdk-lib.pipelines.CodeBuildStep
|
|
6291
|
+
|
|
6292
|
+
---
|
|
6293
|
+
|
|
6283
6294
|
|
|
6284
6295
|
### RioCloudfrontDistribution <a name="RioCloudfrontDistribution" id="@rio-cloud/cdk-v2-constructs.RioCloudfrontDistribution"></a>
|
|
6285
6296
|
|
|
@@ -17659,6 +17670,7 @@ const rioCloudfrontDistributionProps: RioCloudfrontDistributionProps = { ... }
|
|
|
17659
17670
|
| <code><a href="#@rio-cloud/cdk-v2-constructs.RioCloudfrontDistributionProps.property.contentBucketName">contentBucketName</a></code> | <code>string</code> | The reference to the S3 bucket containing the files to serve. |
|
|
17660
17671
|
| <code><a href="#@rio-cloud/cdk-v2-constructs.RioCloudfrontDistributionProps.property.contentSecurityPolicy">contentSecurityPolicy</a></code> | <code>string</code> | The content Security Policy to be sent as a header when delivering the bucket content. |
|
|
17661
17672
|
| <code><a href="#@rio-cloud/cdk-v2-constructs.RioCloudfrontDistributionProps.property.cspConfig">cspConfig</a></code> | <code><a href="#@rio-cloud/cdk-v2-constructs.CspConfig">CspConfig</a></code> | Allows declaratively defining your desired CSP. |
|
|
17673
|
+
| <code><a href="#@rio-cloud/cdk-v2-constructs.RioCloudfrontDistributionProps.property.frameOptions">frameOptions</a></code> | <code>aws-cdk-lib.aws_cloudfront.ResponseHeadersFrameOptions</code> | The frame options to be used in the response headers policy. |
|
|
17662
17674
|
| <code><a href="#@rio-cloud/cdk-v2-constructs.RioCloudfrontDistributionProps.property.functionAssociations">functionAssociations</a></code> | <code>aws-cdk-lib.aws_cloudfront.FunctionAssociation[]</code> | The list of functions to be associated with the default behaviour of the distribution. |
|
|
17663
17675
|
| <code><a href="#@rio-cloud/cdk-v2-constructs.RioCloudfrontDistributionProps.property.hostedZone">hostedZone</a></code> | <code>aws-cdk-lib.aws_route53.IHostedZone</code> | The hosted zone of the domain under which the content will be served. |
|
|
17664
17676
|
| <code><a href="#@rio-cloud/cdk-v2-constructs.RioCloudfrontDistributionProps.property.subDomain">subDomain</a></code> | <code>string</code> | The subdomain where the content should be served. |
|
|
@@ -17710,6 +17722,20 @@ not. You can also provide custom directives / values using the "custom" key.
|
|
|
17710
17722
|
|
|
17711
17723
|
---
|
|
17712
17724
|
|
|
17725
|
+
##### `frameOptions`<sup>Optional</sup> <a name="frameOptions" id="@rio-cloud/cdk-v2-constructs.RioCloudfrontDistributionProps.property.frameOptions"></a>
|
|
17726
|
+
|
|
17727
|
+
```typescript
|
|
17728
|
+
public readonly frameOptions: ResponseHeadersFrameOptions;
|
|
17729
|
+
```
|
|
17730
|
+
|
|
17731
|
+
- *Type:* aws-cdk-lib.aws_cloudfront.ResponseHeadersFrameOptions
|
|
17732
|
+
|
|
17733
|
+
The frame options to be used in the response headers policy.
|
|
17734
|
+
|
|
17735
|
+
If not given, the default value will be `DENY` & override: true.
|
|
17736
|
+
|
|
17737
|
+
---
|
|
17738
|
+
|
|
17713
17739
|
##### `functionAssociations`<sup>Optional</sup> <a name="functionAssociations" id="@rio-cloud/cdk-v2-constructs.RioCloudfrontDistributionProps.property.functionAssociations"></a>
|
|
17714
17740
|
|
|
17715
17741
|
```typescript
|
package/docs/changelog.md
CHANGED
|
@@ -2,6 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
## [7.10.1-alpha.0](https://bitbucket.collaboration-man.com/projects/RIODEV/repos/cdk-v2-constructs/compare/commits?targetBranch=refs%2Ftags%2Fv7.10.0&sourceBranch=refs%2Ftags%2Fv7.10.1-alpha.0) (2025-08-25)
|
|
6
|
+
|
|
7
|
+
## [7.10.0](https://bitbucket.collaboration-man.com/projects/RIODEV/repos/cdk-v2-constructs/compare/commits?targetBranch=refs%2Ftags%2Fv7.9.0&sourceBranch=refs%2Ftags%2Fv7.10.0) (2025-08-18)
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
### Features
|
|
11
|
+
|
|
12
|
+
* **contributions:** pipeline-construct - expose vulnerability code build projects ([e395efb](https://bitbucket.collaboration-man.com/projects/RIODEV/repos/cdk-v2-constructs/commits/e395efb5cf5319f4086694d88ee9b861b030bf72))
|
|
13
|
+
|
|
14
|
+
## [7.9.0](https://bitbucket.collaboration-man.com/projects/RIODEV/repos/cdk-v2-constructs/compare/commits?targetBranch=refs%2Ftags%2Fv7.8.1&sourceBranch=refs%2Ftags%2Fv7.9.0) (2025-08-14)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Features
|
|
18
|
+
|
|
19
|
+
* **contrib:** Allow to override ResponseHeaderFrameOptions ([67ea07f](https://bitbucket.collaboration-man.com/projects/RIODEV/repos/cdk-v2-constructs/commits/67ea07f6239dd7510f15b0733a20f5439a50d6ed))
|
|
20
|
+
|
|
5
21
|
## [7.8.1](https://bitbucket.collaboration-man.com/projects/RIODEV/repos/cdk-v2-constructs/compare/commits?targetBranch=refs%2Ftags%2Fv7.8.1-alpha.4&sourceBranch=refs%2Ftags%2Fv7.8.1) (2025-08-11)
|
|
6
22
|
|
|
7
23
|
## [7.8.1-alpha.4](https://bitbucket.collaboration-man.com/projects/RIODEV/repos/cdk-v2-constructs/compare/commits?targetBranch=refs%2Ftags%2Fv7.8.1-alpha.3&sourceBranch=refs%2Ftags%2Fv7.8.1-alpha.4) (2025-08-08)
|
|
@@ -46,6 +46,12 @@ export interface RioCloudfrontDistributionProps {
|
|
|
46
46
|
* If not given, no functions will be assigned.
|
|
47
47
|
*/
|
|
48
48
|
readonly functionAssociations?: cloudfront.FunctionAssociation[];
|
|
49
|
+
/**
|
|
50
|
+
* The frame options to be used in the response headers policy.
|
|
51
|
+
*
|
|
52
|
+
* If not given, the default value will be `DENY` & override: true.
|
|
53
|
+
*/
|
|
54
|
+
readonly frameOptions?: cloudfront.ResponseHeadersFrameOptions;
|
|
49
55
|
}
|
|
50
56
|
export interface CspConfig {
|
|
51
57
|
/** Include Google Analytics / Google Tag manager. */
|
|
@@ -8,7 +8,6 @@ const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
|
8
8
|
const acm = require("aws-cdk-lib/aws-certificatemanager");
|
|
9
9
|
const cloudfront = require("aws-cdk-lib/aws-cloudfront");
|
|
10
10
|
const origins = require("aws-cdk-lib/aws-cloudfront-origins");
|
|
11
|
-
const iam = require("aws-cdk-lib/aws-iam");
|
|
12
11
|
const route53 = require("aws-cdk-lib/aws-route53");
|
|
13
12
|
const targets = require("aws-cdk-lib/aws-route53-targets");
|
|
14
13
|
const s3 = require("aws-cdk-lib/aws-s3");
|
|
@@ -51,15 +50,16 @@ class RioCloudfrontDistribution extends constructs_1.Construct {
|
|
|
51
50
|
const hostedZone = props.hostedZone ?? rio_landing_zone_1.RioLandingZone.getDefaultHostedZone(this);
|
|
52
51
|
const subDomain = props.subDomain ?? '';
|
|
53
52
|
const domainName = props.subDomain === undefined ? hostedZone.zoneName : subDomain + '.' + hostedZone.zoneName;
|
|
53
|
+
const frameOptions = props.frameOptions ?? {
|
|
54
|
+
frameOption: cloudfront.HeadersFrameOption.DENY,
|
|
55
|
+
override: true,
|
|
56
|
+
};
|
|
54
57
|
const contentSecurityPolicy = this.generateCsp(props);
|
|
55
58
|
const certificate = new acm.DnsValidatedCertificate(this, 'CloudfrontDistributionCertificate', {
|
|
56
59
|
domainName: domainName,
|
|
57
60
|
hostedZone: hostedZone,
|
|
58
61
|
region: 'us-east-1',
|
|
59
62
|
});
|
|
60
|
-
const originAccessIdentity = new cloudfront.OriginAccessIdentity(this, 'OriginAccessIdentity', {
|
|
61
|
-
comment: `AccessIdentity for ${domainName}`,
|
|
62
|
-
});
|
|
63
63
|
const bucket = new s3.Bucket(this, 'FrontEndBucket', {
|
|
64
64
|
bucketName: props.contentBucketName,
|
|
65
65
|
encryption: s3.BucketEncryption.S3_MANAGED,
|
|
@@ -72,7 +72,6 @@ class RioCloudfrontDistribution extends constructs_1.Construct {
|
|
|
72
72
|
enforceSSL: true,
|
|
73
73
|
cors: [{ allowedMethods: [s3.HttpMethods.GET], allowedOrigins: ['*'], allowedHeaders: ['*'] }],
|
|
74
74
|
});
|
|
75
|
-
bucket.grantRead(new iam.CanonicalUserPrincipal(originAccessIdentity.cloudFrontOriginAccessIdentityS3CanonicalUserId), '*');
|
|
76
75
|
const responseHeadersPolicy = new cloudfront.ResponseHeadersPolicy(this, 'ResponseHeadersPolicy', {
|
|
77
76
|
comment: 'Policy for CloudFront responses',
|
|
78
77
|
corsBehavior: {
|
|
@@ -86,7 +85,7 @@ class RioCloudfrontDistribution extends constructs_1.Construct {
|
|
|
86
85
|
securityHeadersBehavior: {
|
|
87
86
|
contentSecurityPolicy: { contentSecurityPolicy: contentSecurityPolicy, override: true },
|
|
88
87
|
contentTypeOptions: { override: true },
|
|
89
|
-
frameOptions:
|
|
88
|
+
frameOptions: frameOptions,
|
|
90
89
|
referrerPolicy: {
|
|
91
90
|
referrerPolicy: cloudfront.HeadersReferrerPolicy.STRICT_ORIGIN_WHEN_CROSS_ORIGIN,
|
|
92
91
|
override: true,
|
|
@@ -95,9 +94,14 @@ class RioCloudfrontDistribution extends constructs_1.Construct {
|
|
|
95
94
|
xssProtection: { protection: true, modeBlock: true, override: true },
|
|
96
95
|
},
|
|
97
96
|
});
|
|
97
|
+
const originAccessControl = new cloudfront.S3OriginAccessControl(this, 'OriginAccessControl', {
|
|
98
|
+
description: `Access control for *.${domainName}`,
|
|
99
|
+
});
|
|
98
100
|
this.distribution = new cloudfront.Distribution(this, 'Distribution', {
|
|
99
101
|
defaultBehavior: {
|
|
100
|
-
origin:
|
|
102
|
+
origin: origins.S3BucketOrigin.withOriginAccessControl(bucket, {
|
|
103
|
+
originAccessControl: originAccessControl,
|
|
104
|
+
}),
|
|
101
105
|
originRequestPolicy: cloudfront.OriginRequestPolicy.CORS_S3_ORIGIN,
|
|
102
106
|
viewerProtocolPolicy: cloudfront.ViewerProtocolPolicy.REDIRECT_TO_HTTPS,
|
|
103
107
|
cachePolicy: cloudfront.CachePolicy.CACHING_OPTIMIZED,
|
|
@@ -219,4 +223,4 @@ const hereDirectives = {
|
|
|
219
223
|
scriptSrc: ['https://*.hereapi.com https://*.api.here.com'],
|
|
220
224
|
styleSrc: ['*.here.com'],
|
|
221
225
|
};
|
|
222
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlvLWNsb3VkZnJvbnQtZGlzdHJpYnV0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbnRyaWJ1dGlvbnMvY29wLWZyb250ZW5kL2Nsb3VkZnJvbnQvcmlvLWNsb3VkZnJvbnQtZGlzdHJpYnV0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkJBQTZCO0FBQzdCLDZDQUFzRDtBQUN0RCwwREFBMEQ7QUFDMUQseURBQXlEO0FBQ3pELDhEQUE4RDtBQUM5RCwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELDJEQUEyRDtBQUMzRCx5Q0FBeUM7QUFDekMsMkNBQXVDO0FBQ3ZDLG1FQUF1RjtBQUN2Riw4REFBMkU7QUFDM0UsZ0VBQTJEO0FBRTNELDZCQUE2QjtBQUM3QixNQUFNLHVCQUF1QixHQUFHLDhDQUE4QyxDQUFDO0FBRS9FLHdGQUF3RjtBQUN4Rjs7R0FFRztBQUNJLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyx1QkFBZ0MsRUFBRSxFQUFFLENBQUM7cUJBQ3BELHVCQUF1QjtxQkFDdkIsdUJBQXVCO2tCQUMxQix1QkFBdUI7aUJBQ3hCLHVCQUF1Qjs7b0JBRXBCLHVCQUF1Qjs7VUFFakMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsRUFBRTttQkFDbkQsdUJBQXVCOztxQkFFckIsdUJBQXVCO3lCQUNuQix1QkFBdUI7bUJBQzdCLHVCQUF1QjtRQUNsQztLQUNMLE9BQU8sQ0FBQyxZQUFZLEVBQUUsR0FBRyxDQUFDO0tBQzFCLElBQUksRUFBRSxDQUFDO0FBaEJHLFFBQUEsbUJBQW1CLHVCQWdCdEI7QUE0RVY7Ozs7R0FJRztBQUNILE1BQWEseUJBQTBCLFNBQVEsc0JBQVM7SUFHdEQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFxQztRQUM3RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxVQUFVLElBQUksaUNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqRixNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQztRQUN4QyxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxHQUFHLEdBQUcsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDO1FBRS9HLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV0RCxNQUFNLFdBQVcsR0FBRyxJQUFJLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLEVBQUUsbUNBQW1DLEVBQUU7WUFDN0YsVUFBVSxFQUFFLFVBQVU7WUFDdEIsVUFBVSxFQUFFLFVBQVU7WUFDdEIsTUFBTSxFQUFFLFdBQVc7U0FDcEIsQ0FBQyxDQUFDO1FBRUgsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsc0JBQXNCLEVBQUU7WUFDN0YsT0FBTyxFQUFFLHNCQUFzQixVQUFVLEVBQUU7U0FDNUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxNQUFNLEdBQUcsSUFBSSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRTtZQUNuRCxVQUFVLEVBQUUsS0FBSyxDQUFDLGlCQUFpQjtZQUNuQyxVQUFVLEVBQUUsRUFBRSxDQUFDLGdCQUFnQixDQUFDLFVBQVU7WUFDMUMsU0FBUyxFQUFFLElBQUk7WUFDZixhQUFhLEVBQUUsMkJBQWEsQ0FBQyxPQUFPO1lBQ3BDLGlCQUFpQixFQUFFLElBQUk7WUFDdkIsY0FBYyxFQUFFO2dCQUNkLEVBQUUsRUFBRSxFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxzQkFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSwyQkFBMkIsRUFBRSxzQkFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRTthQUN4RztZQUNELFVBQVUsRUFBRSxJQUFJO1lBQ2hCLElBQUksRUFBRSxDQUFDLEVBQUUsY0FBYyxFQUFFLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsRUFBRSxjQUFjLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxjQUFjLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1NBQy9GLENBQUMsQ0FBQztRQUVILE1BQU0sQ0FBQyxTQUFTLENBQ2QsSUFBSSxHQUFHLENBQUMsc0JBQXNCLENBQUMsb0JBQW9CLENBQUMsK0NBQStDLENBQUMsRUFDcEcsR0FBRyxDQUNKLENBQUM7UUFFRixNQUFNLHFCQUFxQixHQUFHLElBQUksVUFBVSxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSx1QkFBdUIsRUFBRTtZQUNoRyxPQUFPLEVBQUUsaUNBQWlDO1lBQzFDLFlBQVksRUFBRTtnQkFDWiw2QkFBNkIsRUFBRSxLQUFLO2dCQUNwQyx5QkFBeUIsRUFBRSxDQUFDLEdBQUcsQ0FBQztnQkFDaEMseUJBQXlCLEVBQUUsQ0FBQyxLQUFLLENBQUM7Z0JBQ2xDLHlCQUF5QixFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQztnQkFDaEQsbUJBQW1CLEVBQUUsc0JBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO2dCQUMxQyxjQUFjLEVBQUUsSUFBSTthQUNyQjtZQUNELHVCQUF1QixFQUFFO2dCQUN2QixxQkFBcUIsRUFBRSxFQUFFLHFCQUFxQixFQUFFLHFCQUFxQixFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ3ZGLGtCQUFrQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFDdEMsWUFBWSxFQUFFLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFDakYsY0FBYyxFQUFFO29CQUNkLGNBQWMsRUFBRSxVQUFVLENBQUMscUJBQXFCLENBQUMsK0JBQStCO29CQUNoRixRQUFRLEVBQUUsSUFBSTtpQkFDZjtnQkFDRCx1QkFBdUIsRUFBRSxFQUFFLG1CQUFtQixFQUFFLHNCQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUM3RyxhQUFhLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTthQUNyRTtTQUNGLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxVQUFVLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUU7WUFDcEUsZUFBZSxFQUFFO2dCQUNmLE1BQU0sRUFBRSxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO2dCQUNwQyxtQkFBbUIsRUFBRSxVQUFVLENBQUMsbUJBQW1CLENBQUMsY0FBYztnQkFDbEUsb0JBQW9CLEVBQUUsVUFBVSxDQUFDLG9CQUFvQixDQUFDLGlCQUFpQjtnQkFDdkUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxXQUFXLENBQUMsaUJBQWlCO2dCQUNyRCxxQkFBcUIsRUFBRSxxQkFBcUI7Z0JBQzVDLFFBQVEsRUFBRSxJQUFJO2dCQUNkLG9CQUFvQixFQUFFLEtBQUssQ0FBQyxvQkFBb0I7YUFDakQ7WUFDRCxXQUFXLEVBQUUsQ0FBQyxVQUFVLENBQUM7WUFDekIsVUFBVSxFQUFFLFVBQVUsQ0FBQyxVQUFVLENBQUMsZUFBZTtZQUNqRCxXQUFXLEVBQUUsV0FBVztZQUN4QixpQkFBaUIsRUFBRSxZQUFZO1lBQy9CLHNCQUFzQixFQUFFLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxhQUFhO1lBQ3ZFLGNBQWMsRUFBRTtnQkFDZCxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsa0JBQWtCLEVBQUUsR0FBRyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQUUsc0JBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3ZHLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxrQkFBa0IsRUFBRSxHQUFHLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTthQUN4RztTQUNGLENBQUMsQ0FBQztRQUVILElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFO1lBQ3ZDLFVBQVUsRUFBRSxTQUFTO1lBQ3JCLE1BQU0sRUFBRSxPQUFPLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDdkYsSUFBSSxFQUFFLFVBQVU7WUFDaEIsVUFBVSxFQUFFLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUNqQyxDQUFDLENBQUM7UUFFSCxNQUFNLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRW5FLElBQUksNkJBQVcsQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFO1lBQ25DLE9BQU8sRUFBRSxvQ0FBa0IsQ0FBQyxnQkFBZ0I7WUFDNUMsV0FBVztZQUNYLE9BQU87WUFDUCxPQUFPLEVBQUUsT0FBTztTQUNqQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sV0FBVyxDQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFrQztRQUN0RixJQUFJLHFCQUFxQixFQUFFLENBQUM7WUFDMUIsT0FBTyxDQUFDLElBQUksQ0FBQywyTEFBMkwsQ0FBQyxDQUFDO1lBQzFNLE9BQU8scUJBQXFCLENBQUM7UUFDL0IsQ0FBQztRQUVELElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNmLE9BQU8sQ0FBQyxJQUFJLENBQUMsbUdBQW1HLENBQUMsQ0FBQztRQUNwSCxDQUFDO1FBRUQsTUFBTSxlQUFlLEdBQUcsSUFBQSwyQkFBbUIsRUFBQyxTQUFTLENBQUMsQ0FBQztRQUV2RCxJQUFJLFNBQVMsRUFBRSxTQUFTLEVBQUUsQ0FBQztZQUN6QixPQUFPLENBQUMsR0FBRyxDQUFDLCtDQUErQyxlQUFlLEVBQUUsQ0FBQyxDQUFDO1FBQ2hGLENBQUM7UUFFRCxPQUFPLGVBQWUsQ0FBQztJQUN6QixDQUFDOztBQXRISCw4REF1SEM7OztBQUVNLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxZQUF1QixrQkFBa0IsRUFBVSxFQUFFO0lBQ3ZGLE1BQU0sRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLFNBQVMsQ0FBQztJQUNqRyxNQUFNLGdCQUFnQixHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDM0MsZUFBZSxJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQ3BFLE1BQU0sSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNsRCxLQUFLLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ2hELE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNwRCxTQUFTLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDeEQsSUFBSSxJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUM5QyxnQkFBZ0IsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUM1RCxPQUFPLElBQUEscURBQTZCLEVBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUN6RCxDQUFDLENBQUM7QUFYVyxRQUFBLG1CQUFtQix1QkFXOUI7QUFFRixNQUFNLGtCQUFrQixHQUFjO0lBQ3BDLGVBQWUsRUFBRSxJQUFJO0lBQ3JCLE1BQU0sRUFBRSxJQUFJO0lBQ1osS0FBSyxFQUFFLElBQUk7SUFDWCxPQUFPLEVBQUUsSUFBSTtJQUNiLFNBQVMsRUFBRSxJQUFJO0lBQ2YsSUFBSSxFQUFFLEtBQUs7Q0FDWixDQUFDO0FBRUYsTUFBTSxZQUFZLEdBQUcsQ0FBQyxRQUFRLEVBQUUscUJBQXFCLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztBQUU1RSxNQUFNLGVBQWUsR0FBa0I7SUFDckMsVUFBVSxFQUFFLFlBQVk7SUFDeEIsVUFBVSxFQUFFLFlBQVk7SUFDeEIsT0FBTyxFQUFFLENBQUMsR0FBRyxZQUFZLEVBQUUsT0FBTyxDQUFDO0lBQ25DLE1BQU0sRUFBRSxDQUFDLEdBQUcsWUFBWSxFQUFFLE9BQU8sQ0FBQztJQUNsQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUM7SUFDckIsU0FBUyxFQUFFLFlBQVk7SUFDdkIsUUFBUSxFQUFFLENBQUMsR0FBRyxZQUFZLEVBQUUsaUJBQWlCLENBQUM7SUFDOUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO0lBQ25CLFVBQVUsRUFBRSxZQUFZO0lBQ3hCLGNBQWMsRUFBRSxZQUFZO0lBQzVCLFFBQVEsRUFBRSxZQUFZO0NBQ3ZCLENBQUM7QUFFRixNQUFNLHlCQUF5QixHQUFrQjtJQUMvQyxNQUFNLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQztJQUNwQyxTQUFTLEVBQUU7UUFDVCxnQ0FBZ0M7UUFDaEMsa0RBQWtEO1FBQ2xELHVEQUF1RDtRQUN2RCxzQ0FBc0M7UUFDdEMsdURBQXVEO0tBQ3hEO0lBQ0QsVUFBVSxFQUFFO1FBQ1Ysd0JBQXdCO1FBQ3hCLGdDQUFnQztRQUNoQyxnQ0FBZ0M7UUFDaEMsZ0NBQWdDO0tBQ2pDO0lBQ0QsUUFBUSxFQUFFLENBQUMsa0NBQWtDLENBQUM7Q0FDL0MsQ0FBQztBQUVGLE1BQU0sZ0JBQWdCLEdBQWtCO0lBQ3RDLFVBQVUsRUFBRSxDQUFDLHFCQUFxQixFQUFFLG1CQUFtQixDQUFDO0NBQ3pELENBQUM7QUFFRixNQUFNLGVBQWUsR0FBa0I7SUFDckMsVUFBVSxFQUFFLENBQUMsc0JBQXNCLENBQUM7Q0FDckMsQ0FBQztBQUVGLE1BQU0saUJBQWlCLEdBQWtCO0lBQ3ZDLFVBQVUsRUFBRSxDQUFDLHdCQUF3QixFQUFFLHVDQUF1QyxFQUFFLHFDQUFxQyxDQUFDO0NBQ3ZILENBQUM7QUFFRixNQUFNLG1CQUFtQixHQUFrQjtJQUN6QyxVQUFVLEVBQUUsQ0FBQyw4QkFBOEIsQ0FBQztDQUM3QyxDQUFDO0FBRUYsTUFBTSxjQUFjLEdBQWtCO0lBQ3BDLFVBQVUsRUFBRSxDQUFDLG1CQUFtQixDQUFDO0lBQ2pDLFVBQVUsRUFBRSxDQUFDLHVCQUF1QixFQUFFLHdCQUF3QixDQUFDO0lBQy9ELE9BQU8sRUFBRSxDQUFDLHlCQUF5QixDQUFDO0lBQ3BDLE1BQU0sRUFBRSxDQUFDLGlCQUFpQixDQUFDO0lBQzNCLFNBQVMsRUFBRSxDQUFDLDhDQUE4QyxDQUFDO0lBQzNELFFBQVEsRUFBRSxDQUFDLFlBQVksQ0FBQztDQUN6QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IER1cmF0aW9uLCBSZW1vdmFsUG9saWN5IH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgYWNtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1jZXJ0aWZpY2F0ZW1hbmFnZXInO1xuaW1wb3J0ICogYXMgY2xvdWRmcm9udCBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWRmcm9udCc7XG5pbXBvcnQgKiBhcyBvcmlnaW5zIGZyb20gJ2F3cy1jZGstbGliL2F3cy1jbG91ZGZyb250LW9yaWdpbnMnO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0ICogYXMgcm91dGU1MyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtcm91dGU1Myc7XG5pbXBvcnQgKiBhcyB0YXJnZXRzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1yb3V0ZTUzLXRhcmdldHMnO1xuaW1wb3J0ICogYXMgczMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgY3JlYXRlQ3NwRnJvbURpcmVjdGl2ZU9iamVjdHMsIENzcERpcmVjdGl2ZXMgfSBmcm9tICcuL2NvbnRlbnRTZWN1cml0eVBvbGljeSc7XG5pbXBvcnQgeyBDbGFpZG9tZXRlciwgQ2xhaWRvbWV0ZXJQcm9kdWN0IH0gZnJvbSAnLi4vLi4vLi4vcmlvLWNsYWlkb21ldGVyJztcbmltcG9ydCB7IFJpb0xhbmRpbmdab25lIH0gZnJvbSAnLi4vLi4vLi4vcmlvLWxhbmRpbmctem9uZSc7XG5cbi8vIHJlZ2lvbiBMZWdhY3kgQ1NQIGZ1bmN0aW9uXG5jb25zdCBhbHdheXNBbGxvd2VkQ1NQU291cmNlcyA9IFwiJ3NlbGYnIGh0dHBzOi8vKi5yaW8uY2xvdWQgaHR0cHM6Ly9yaW8uY2xvdWRcIjtcblxuLy8gVGhlIGhhc2ggaW4gc2NyaXB0IHNyYyBpcyBmb3IgdGhlIGdvb2dsZSB0YWdNYW5hZ2VyIHNjcmlwdCBpbmNsdWRlZCBpbiB0aGUgaW5kZXguaHRtbFxuLyoqXG4gKiBAZGVwcmVjYXRlZCBQbGVhc2Ugc3dpdGNoIHRvIHRoZSBkZWNsYXJhdGl2ZSBDU1AgY29uZmlnLiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgZnV0dXJlLlxuICovXG5leHBvcnQgY29uc3QgY3JlYXRlUmlvRGVmYXVsdENTUCA9IChhZGRpdGlvbmFsU2NyaXB0U291cmNlcz86IHN0cmluZykgPT4gYFxuICAgICAgIGRlZmF1bHQtc3JjICR7YWx3YXlzQWxsb3dlZENTUFNvdXJjZXN9O1xuICAgICAgIGNvbm5lY3Qtc3JjICR7YWx3YXlzQWxsb3dlZENTUFNvdXJjZXN9IGh0dHBzOi8vKi5zZW50cnkuaW8gaHR0cHM6Ly9zZW50cnkuaW8gaHR0cHM6Ly9zZGsuc3BsaXQuaW8gaHR0cHM6Ly8qLmRhdGFkb2docS5ldSBodHRwczovLyouYnJvd3Nlci1pbnRha2UtZGF0YWRvZ2hxLmV1IGh0dHBzOi8vYnJvd3Nlci1pbnRha2UtZGF0YWRvZ2hxLmV1IGh0dHBzOi8vY2RuLWV1LmNvbmZpZ2NhdC5jb207XG4gICAgICAgZm9udC1zcmMgJHthbHdheXNBbGxvd2VkQ1NQU291cmNlc30gZGF0YTo7XG4gICAgICAgaW1nLXNyYyAke2Fsd2F5c0FsbG93ZWRDU1BTb3VyY2VzfSBkYXRhOiB3d3cuZ29vZ2xldGFnbWFuYWdlci5jb207XG4gICAgICAgb2JqZWN0LXNyYyAnbm9uZSc7XG4gICAgICAgc2NyaXB0LXNyYyAke2Fsd2F5c0FsbG93ZWRDU1BTb3VyY2VzfSBodHRwczovL3d3dy5nb29nbGV0YWdtYW5hZ2VyLmNvbVxuICAgICAgICAnc2hhMjU2LUhEV0FnZlRlTUFndVQ4d0Z3Nys5Mlk3aTRFby82UlVRUXVBM1RXOUp4YkE9J1xuICAgICAgICAke2FkZGl0aW9uYWxTY3JpcHRTb3VyY2VzID8gJyAnICsgYWRkaXRpb25hbFNjcmlwdFNvdXJjZXMgOiAnJ307XG4gICAgICAgc3R5bGUtc3JjICR7YWx3YXlzQWxsb3dlZENTUFNvdXJjZXN9ICd1bnNhZmUtaW5saW5lJztcbiAgICAgICBiYXNlLXVyaSAnc2VsZic7XG4gICAgICAgZm9ybS1hY3Rpb24gJHthbHdheXNBbGxvd2VkQ1NQU291cmNlc307XG4gICAgICAgZnJhbWUtYW5jZXN0b3JzICR7YWx3YXlzQWxsb3dlZENTUFNvdXJjZXN9O1xuICAgICAgIGZyYW1lLXNyYyAke2Fsd2F5c0FsbG93ZWRDU1BTb3VyY2VzfTtcbiAgICAgICBgXG4gIC5yZXBsYWNlKC9bXFxyXFxuXFxzXSsvZywgJyAnKVxuICAudHJpbSgpO1xuLy8gZW5kcmVnaW9uXG5cbi8qKiBQcm9wZXJ0aWVzIGZvciBkZWZpbmluZyBhIFJpb0Nsb3VkZnJvbnREaXN0cmlidXRpb24uICovXG5leHBvcnQgaW50ZXJmYWNlIFJpb0Nsb3VkZnJvbnREaXN0cmlidXRpb25Qcm9wcyB7XG4gIC8qKiBUaGUgcmVmZXJlbmNlIHRvIHRoZSBTMyBidWNrZXQgY29udGFpbmluZyB0aGUgZmlsZXMgdG8gc2VydmUuICovXG4gIHJlYWRvbmx5IGNvbnRlbnRCdWNrZXROYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAgICogVGhlIHN1YmRvbWFpbiB3aGVyZSB0aGUgY29udGVudCBzaG91bGQgYmUgc2VydmVkLlxuICAgICAqXG4gICAgICogSWYgbm90IGdpdmVuLCBhbiBlbXB0eSBzdHJpbmcsIGkuZS4gbm8gc3ViRG9tYWluIHdpbGwgYmUgdXNlZC4gSW5zdGVhZCwgdGhlIG5hbWUgb2YgdGhlIGhvc3RlZCB6b25lIHdpbGwgYmUgdXNlZFxuICAgICAqIGRpcmVjdGx5LlxuICAgICAqL1xuICByZWFkb25seSBzdWJEb21haW4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAgICogVGhlIGhvc3RlZCB6b25lIG9mIHRoZSBkb21haW4gdW5kZXIgd2hpY2ggdGhlIGNvbnRlbnQgd2lsbCBiZSBzZXJ2ZWQuXG4gICAgICpcbiAgICAgKiBJZiBub3QgZ2l2ZW4sIHRoZSBkZWZhdWx0IGhvc3RlZCBab25lIHByb3ZpZGVkIGJ5IFJJTyBzZXR1cCB3aWxsIGJlIHVzZWQuXG4gICAgICovXG4gIHJlYWRvbmx5IGhvc3RlZFpvbmU/OiByb3V0ZTUzLklIb3N0ZWRab25lO1xuXG4gIC8qKlxuICAgICAqIFRoZSBjb250ZW50IFNlY3VyaXR5IFBvbGljeSB0byBiZSBzZW50IGFzIGEgaGVhZGVyIHdoZW4gZGVsaXZlcmluZyB0aGUgYnVja2V0IGNvbnRlbnQuXG4gICAgICpcbiAgICAgKiBJZiBub3Qgc2V0LCBhIHJpbyBEZWZhdWx0IHdpbGwgYmUgdXNlZC4gVGhlIGRlZmF1bHQgc2hvdWxkIGNvdmVyIGNvbm5lY3Rpb25zIHRvIHNwbGl0LmlvLCBzZW50cnkgYW5kIGRhdGFkb2csIGFzXG4gICAgICogd2VsbCBhcyBhIGhhc2ggdG8gc3VwcG9ydCBnb29nbGUgdGFnTWFuZ2VyLiBUaGUgbGF0dGVyIG1pZ2h0IG5lZWQgdG8gYmUgYWRhcHRlZCBpZiB5b3UgY2hhbmdlIHRoZSBtaW5pZmljYXRpb24gb2ZcbiAgICAgKiB0aGUgaW5kZXguaHRtbCwgaW4gd2hpY2ggY2FzZSB5b3UgY2FuIHByb3ZpZGUgeW91ciBjc3AgaGVyZS5cbiAgICAgKlxuICAgICAqIEBkZXByZWNhdGVkIFBsZWFzZSB1c2UgdGhlIGRlY2xhcmF0aXZlIENTUCBjb25maWcgaW5zdGVhZC4gU2VlIHtAbGluayBjc3BDb25maWd9LlxuICAgICAqL1xuICByZWFkb25seSBjb250ZW50U2VjdXJpdHlQb2xpY3k/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAgICogQWxsb3dzIGRlY2xhcmF0aXZlbHkgZGVmaW5pbmcgeW91ciBkZXNpcmVkIENTUC5cbiAgICAgKlxuICAgICAqIFRoZSBSSU8gZGVmYXVsdHMgYXJlIGFsd2F5cyBpbmNsdWRlZCwgYW5kIHlvdSBjYW4gY2hvb3NlIHdoaWNoIHNlcnZpY2VzIHlvdSB3YW50IHRvIGluY2x1ZGUgKGUuZy4gQ29uZmlnQ2F0KSBvclxuICAgICAqIG5vdC4gWW91IGNhbiBhbHNvIHByb3ZpZGUgY3VzdG9tIGRpcmVjdGl2ZXMgLyB2YWx1ZXMgdXNpbmcgdGhlIFwiY3VzdG9tXCIga2V5LlxuICAgICAqL1xuICByZWFkb25seSBjc3BDb25maWc/OiBDc3BDb25maWc7XG5cbiAgLyoqXG4gICAgICogVGhlIGxpc3Qgb2YgZnVuY3Rpb25zIHRvIGJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgZGVmYXVsdCBiZWhhdmlvdXIgb2YgdGhlIGRpc3RyaWJ1dGlvbi5cbiAgICAgKlxuICAgICAqIElmIG5vdCBnaXZlbiwgbm8gZnVuY3Rpb25zIHdpbGwgYmUgYXNzaWduZWQuXG4gICAgICovXG4gIHJlYWRvbmx5IGZ1bmN0aW9uQXNzb2NpYXRpb25zPzogY2xvdWRmcm9udC5GdW5jdGlvbkFzc29jaWF0aW9uW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3NwQ29uZmlnIHtcbiAgLyoqIEluY2x1ZGUgR29vZ2xlIEFuYWx5dGljcyAvIEdvb2dsZSBUYWcgbWFuYWdlci4gKi9cbiAgcmVhZG9ubHkgZ29vZ2xlQW5hbHl0aWNzPzogYm9vbGVhbjtcblxuICAvKiogSW5jbHVkZSBTZW50cnkuICovXG4gIHJlYWRvbmx5IHNlbnRyeT86IGJvb2xlYW47XG5cbiAgLyoqIEluY2x1ZGUgU3BsaXQuaW8uICovXG4gIHJlYWRvbmx5IHNwbGl0PzogYm9vbGVhbjtcblxuICAvKiogSW5jbHVkZSBEYXRhZG9nLiAqL1xuICByZWFkb25seSBkYXRhZG9nPzogYm9vbGVhbjtcblxuICAvKiogSW5jbHVkZSBDb25maWdDYXQuICovXG4gIHJlYWRvbmx5IGNvbmZpZ0NhdD86IGJvb2xlYW47XG5cbiAgLyoqIEluY2x1ZGUgSGVyZSBNYXBzLiAqL1xuICByZWFkb25seSBoZXJlPzogYm9vbGVhbjtcblxuICAvKiogUHJpbnRzIHRoZSBnZW5lcmF0ZWQgQ1NQIHRvIHRoZSBjb25zb2xlLiAqL1xuICByZWFkb25seSBsb2dPdXRwdXQ/OiBib29sZWFuO1xuXG4gIC8qKiBZb3UgY2FuIGRlZmluZSBjdXN0b20gdmFsdWVzIGZvciBhbnkgQ1NQIGRpcmVjdGl2ZSB3aXRoIHRoaXMuICovXG4gIHJlYWRvbmx5IGN1c3RvbURpcmVjdGl2ZXM/OiBDc3BEaXJlY3RpdmVzO1xufVxuXG4vKipcbiAqIEEgQ29uc3RydWN0IHdoaWNoIGNyZWF0ZXMgYSBkZWZhdWx0IGNsb3VkZnJvbnQgZGlzdHJpYnV0aW9uIHVzaW5nIGEgczMgYnVja2V0IGFzIG9yaWdpbi5cbiAqXG4gKiBJbnRlbmRlZCBmb3IgZGVsaXZlcnkgb2YgaHRtbCBkb2N1bWVudHMuIEl0IHNldHMgc29tZSBkZWZhdWx0cyBhIHJlY29tbWVuZGVkIGJ5IEFXUyBhbmQgcHJvdmlkZXMgQ1NQIHNldHRpbmdzLlxuICovXG5leHBvcnQgY2xhc3MgUmlvQ2xvdWRmcm9udERpc3RyaWJ1dGlvbiBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHJlYWRvbmx5IGRpc3RyaWJ1dGlvbjogY2xvdWRmcm9udC5JRGlzdHJpYnV0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBSaW9DbG91ZGZyb250RGlzdHJpYnV0aW9uUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgaG9zdGVkWm9uZSA9IHByb3BzLmhvc3RlZFpvbmUgPz8gUmlvTGFuZGluZ1pvbmUuZ2V0RGVmYXVsdEhvc3RlZFpvbmUodGhpcyk7XG4gICAgY29uc3Qgc3ViRG9tYWluID0gcHJvcHMuc3ViRG9tYWluID8/ICcnO1xuICAgIGNvbnN0IGRvbWFpbk5hbWUgPSBwcm9wcy5zdWJEb21haW4gPT09IHVuZGVmaW5lZCA/IGhvc3RlZFpvbmUuem9uZU5hbWUgOiBzdWJEb21haW4gKyAnLicgKyBob3N0ZWRab25lLnpvbmVOYW1lO1xuXG4gICAgY29uc3QgY29udGVudFNlY3VyaXR5UG9saWN5ID0gdGhpcy5nZW5lcmF0ZUNzcChwcm9wcyk7XG5cbiAgICBjb25zdCBjZXJ0aWZpY2F0ZSA9IG5ldyBhY20uRG5zVmFsaWRhdGVkQ2VydGlmaWNhdGUodGhpcywgJ0Nsb3VkZnJvbnREaXN0cmlidXRpb25DZXJ0aWZpY2F0ZScsIHtcbiAgICAgIGRvbWFpbk5hbWU6IGRvbWFpbk5hbWUsXG4gICAgICBob3N0ZWRab25lOiBob3N0ZWRab25lLFxuICAgICAgcmVnaW9uOiAndXMtZWFzdC0xJyxcbiAgICB9KTtcblxuICAgIGNvbnN0IG9yaWdpbkFjY2Vzc0lkZW50aXR5ID0gbmV3IGNsb3VkZnJvbnQuT3JpZ2luQWNjZXNzSWRlbnRpdHkodGhpcywgJ09yaWdpbkFjY2Vzc0lkZW50aXR5Jywge1xuICAgICAgY29tbWVudDogYEFjY2Vzc0lkZW50aXR5IGZvciAke2RvbWFpbk5hbWV9YCxcbiAgICB9KTtcblxuICAgIGNvbnN0IGJ1Y2tldCA9IG5ldyBzMy5CdWNrZXQodGhpcywgJ0Zyb250RW5kQnVja2V0Jywge1xuICAgICAgYnVja2V0TmFtZTogcHJvcHMuY29udGVudEJ1Y2tldE5hbWUsXG4gICAgICBlbmNyeXB0aW9uOiBzMy5CdWNrZXRFbmNyeXB0aW9uLlMzX01BTkFHRUQsXG4gICAgICB2ZXJzaW9uZWQ6IHRydWUsXG4gICAgICByZW1vdmFsUG9saWN5OiBSZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gICAgICBhdXRvRGVsZXRlT2JqZWN0czogdHJ1ZSxcbiAgICAgIGxpZmVjeWNsZVJ1bGVzOiBbXG4gICAgICAgIHsgaWQ6ICdFeHBpcmVzT2JqZWN0cycsIGV4cGlyYXRpb246IER1cmF0aW9uLmRheXMoOTApLCBub25jdXJyZW50VmVyc2lvbkV4cGlyYXRpb246IER1cmF0aW9uLmRheXMoMzApIH0sXG4gICAgICBdLFxuICAgICAgZW5mb3JjZVNTTDogdHJ1ZSxcbiAgICAgIGNvcnM6IFt7IGFsbG93ZWRNZXRob2RzOiBbczMuSHR0cE1ldGhvZHMuR0VUXSwgYWxsb3dlZE9yaWdpbnM6IFsnKiddLCBhbGxvd2VkSGVhZGVyczogWycqJ10gfV0sXG4gICAgfSk7XG5cbiAgICBidWNrZXQuZ3JhbnRSZWFkKFxuICAgICAgbmV3IGlhbS5DYW5vbmljYWxVc2VyUHJpbmNpcGFsKG9yaWdpbkFjY2Vzc0lkZW50aXR5LmNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eVMzQ2Fub25pY2FsVXNlcklkKSxcbiAgICAgICcqJyxcbiAgICApO1xuXG4gICAgY29uc3QgcmVzcG9uc2VIZWFkZXJzUG9saWN5ID0gbmV3IGNsb3VkZnJvbnQuUmVzcG9uc2VIZWFkZXJzUG9saWN5KHRoaXMsICdSZXNwb25zZUhlYWRlcnNQb2xpY3knLCB7XG4gICAgICBjb21tZW50OiAnUG9saWN5IGZvciBDbG91ZEZyb250IHJlc3BvbnNlcycsXG4gICAgICBjb3JzQmVoYXZpb3I6IHtcbiAgICAgICAgYWNjZXNzQ29udHJvbEFsbG93Q3JlZGVudGlhbHM6IGZhbHNlLFxuICAgICAgICBhY2Nlc3NDb250cm9sQWxsb3dIZWFkZXJzOiBbJyonXSxcbiAgICAgICAgYWNjZXNzQ29udHJvbEFsbG93TWV0aG9kczogWydHRVQnXSxcbiAgICAgICAgYWNjZXNzQ29udHJvbEFsbG93T3JpZ2luczogW2hvc3RlZFpvbmUuem9uZU5hbWVdLFxuICAgICAgICBhY2Nlc3NDb250cm9sTWF4QWdlOiBEdXJhdGlvbi5zZWNvbmRzKDYwMCksXG4gICAgICAgIG9yaWdpbk92ZXJyaWRlOiB0cnVlLFxuICAgICAgfSxcbiAgICAgIHNlY3VyaXR5SGVhZGVyc0JlaGF2aW9yOiB7XG4gICAgICAgIGNvbnRlbnRTZWN1cml0eVBvbGljeTogeyBjb250ZW50U2VjdXJpdHlQb2xpY3k6IGNvbnRlbnRTZWN1cml0eVBvbGljeSwgb3ZlcnJpZGU6IHRydWUgfSxcbiAgICAgICAgY29udGVudFR5cGVPcHRpb25zOiB7IG92ZXJyaWRlOiB0cnVlIH0sXG4gICAgICAgIGZyYW1lT3B0aW9uczogeyBmcmFtZU9wdGlvbjogY2xvdWRmcm9udC5IZWFkZXJzRnJhbWVPcHRpb24uREVOWSwgb3ZlcnJpZGU6IHRydWUgfSxcbiAgICAgICAgcmVmZXJyZXJQb2xpY3k6IHtcbiAgICAgICAgICByZWZlcnJlclBvbGljeTogY2xvdWRmcm9udC5IZWFkZXJzUmVmZXJyZXJQb2xpY3kuU1RSSUNUX09SSUdJTl9XSEVOX0NST1NTX09SSUdJTixcbiAgICAgICAgICBvdmVycmlkZTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgc3RyaWN0VHJhbnNwb3J0U2VjdXJpdHk6IHsgYWNjZXNzQ29udHJvbE1heEFnZTogRHVyYXRpb24uZGF5cygzNjUpLCBpbmNsdWRlU3ViZG9tYWluczogdHJ1ZSwgb3ZlcnJpZGU6IHRydWUgfSxcbiAgICAgICAgeHNzUHJvdGVjdGlvbjogeyBwcm90ZWN0aW9uOiB0cnVlLCBtb2RlQmxvY2s6IHRydWUsIG92ZXJyaWRlOiB0cnVlIH0sXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgdGhpcy5kaXN0cmlidXRpb24gPSBuZXcgY2xvdWRmcm9udC5EaXN0cmlidXRpb24odGhpcywgJ0Rpc3RyaWJ1dGlvbicsIHtcbiAgICAgIGRlZmF1bHRCZWhhdmlvcjoge1xuICAgICAgICBvcmlnaW46IG5ldyBvcmlnaW5zLlMzT3JpZ2luKGJ1Y2tldCksXG4gICAgICAgIG9yaWdpblJlcXVlc3RQb2xpY3k6IGNsb3VkZnJvbnQuT3JpZ2luUmVxdWVzdFBvbGljeS5DT1JTX1MzX09SSUdJTixcbiAgICAgICAgdmlld2VyUHJvdG9jb2xQb2xpY3k6IGNsb3VkZnJvbnQuVmlld2VyUHJvdG9jb2xQb2xpY3kuUkVESVJFQ1RfVE9fSFRUUFMsXG4gICAgICAgIGNhY2hlUG9saWN5OiBjbG91ZGZyb250LkNhY2hlUG9saWN5LkNBQ0hJTkdfT1BUSU1JWkVELFxuICAgICAgICByZXNwb25zZUhlYWRlcnNQb2xpY3k6IHJlc3BvbnNlSGVhZGVyc1BvbGljeSxcbiAgICAgICAgY29tcHJlc3M6IHRydWUsXG4gICAgICAgIGZ1bmN0aW9uQXNzb2NpYXRpb25zOiBwcm9wcy5mdW5jdGlvbkFzc29jaWF0aW9ucyxcbiAgICAgIH0sXG4gICAgICBkb21haW5OYW1lczogW2RvbWFpbk5hbWVdLFxuICAgICAgcHJpY2VDbGFzczogY2xvdWRmcm9udC5QcmljZUNsYXNzLlBSSUNFX0NMQVNTXzEwMCxcbiAgICAgIGNlcnRpZmljYXRlOiBjZXJ0aWZpY2F0ZSxcbiAgICAgIGRlZmF1bHRSb290T2JqZWN0OiAnaW5kZXguaHRtbCcsXG4gICAgICBtaW5pbXVtUHJvdG9jb2xWZXJzaW9uOiBjbG91ZGZyb250LlNlY3VyaXR5UG9saWN5UHJvdG9jb2wuVExTX1YxXzJfMjAxOCxcbiAgICAgIGVycm9yUmVzcG9uc2VzOiBbXG4gICAgICAgIHsgaHR0cFN0YXR1czogNDA0LCByZXNwb25zZUh0dHBTdGF0dXM6IDIwMCwgcmVzcG9uc2VQYWdlUGF0aDogJy9pbmRleC5odG1sJywgdHRsOiBEdXJhdGlvbi5taW51dGVzKDUpIH0sXG4gICAgICAgIHsgaHR0cFN0YXR1czogNDAzLCByZXNwb25zZUh0dHBTdGF0dXM6IDIwMCwgcmVzcG9uc2VQYWdlUGF0aDogJy9pbmRleC5odG1sJywgdHRsOiBEdXJhdGlvbi5taW51dGVzKDUpIH0sXG4gICAgICBdLFxuICAgIH0pO1xuXG4gICAgbmV3IHJvdXRlNTMuUmVjb3JkU2V0KHRoaXMsICdSZWNvcmRTZXQnLCB7XG4gICAgICByZWNvcmROYW1lOiBzdWJEb21haW4sXG4gICAgICB0YXJnZXQ6IHJvdXRlNTMuUmVjb3JkVGFyZ2V0LmZyb21BbGlhcyhuZXcgdGFyZ2V0cy5DbG91ZEZyb250VGFyZ2V0KHRoaXMuZGlzdHJpYnV0aW9uKSksXG4gICAgICB6b25lOiBob3N0ZWRab25lLFxuICAgICAgcmVjb3JkVHlwZTogcm91dGU1My5SZWNvcmRUeXBlLkEsXG4gICAgfSk7XG5cbiAgICBjb25zdCBbZmVhdHVyZSwgcGFja2FnZU5hbWVdID0gX19kaXJuYW1lLnNwbGl0KHBhdGguc2VwKS5yZXZlcnNlKCk7XG5cbiAgICBuZXcgQ2xhaWRvbWV0ZXIodGhpcywgJ0NsYWlkb21ldGVyJywge1xuICAgICAgcHJvZHVjdDogQ2xhaWRvbWV0ZXJQcm9kdWN0LkNES19DT05UUklCVVRJT04sXG4gICAgICBwYWNrYWdlTmFtZSxcbiAgICAgIGZlYXR1cmUsXG4gICAgICB2ZXJzaW9uOiAnMC4wLjUnLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZUNzcCh7IGNzcENvbmZpZywgY29udGVudFNlY3VyaXR5UG9saWN5IH06IFJpb0Nsb3VkZnJvbnREaXN0cmlidXRpb25Qcm9wcyk6IHN0cmluZyB7XG4gICAgaWYgKGNvbnRlbnRTZWN1cml0eVBvbGljeSkge1xuICAgICAgY29uc29sZS53YXJuKCdbUmlvQ2xvdWRGcm9udERpc3RyaWJ1dGlvbl0gWW91IGFyZSB1c2luZyB0aGUgZGVwcmVjYXRlZCBcImNvbnRlbnRTZWN1cml0eVBvbGljeVwiIHByb3BlcnR5LiBQbGVhc2UgdXBkYXRlIHRvIHRoZSBkZWNsYXJhdGl2ZSBcImNzcENvbmZpZ1wiLiBJdCB3aWxsIGV2ZW4gc2F2ZSB5b3UgYSB0b24gb2YgY29kZSwgdHJ1c3QgbWUgOiknKTtcbiAgICAgIHJldHVybiBjb250ZW50U2VjdXJpdHlQb2xpY3k7XG4gICAgfVxuXG4gICAgaWYgKCFjc3BDb25maWcpIHtcbiAgICAgIGNvbnNvbGUuaW5mbygnW1Jpb0Nsb3VkRnJvbnREaXN0cmlidXRpb25dIFlvdSBkaWQgbm90IHByb3ZpZGUgYSBcImNzcENvbmZpZ1wiLiBUaGUgZGVmYXVsdCBDU1Agd2lsbCBiZSBnZW5lcmF0ZWQuJyk7XG4gICAgfVxuXG4gICAgY29uc3QgZ2VuZXJhdGVkQ29uZmlnID0gY3JlYXRlQ3NwRnJvbUNvbmZpZyhjc3BDb25maWcpO1xuXG4gICAgaWYgKGNzcENvbmZpZz8ubG9nT3V0cHV0KSB7XG4gICAgICBjb25zb2xlLmxvZyhgW1Jpb0Nsb3VkRnJvbnREaXN0cmlidXRpb25dIEdlbmVyYXRlZCBDU1A6XFxuJHtnZW5lcmF0ZWRDb25maWd9YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGdlbmVyYXRlZENvbmZpZztcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgY3JlYXRlQ3NwRnJvbUNvbmZpZyA9IChjc3BDb25maWc6IENzcENvbmZpZyA9IERFRkFVTFRfQ1NQX0NPTkZJRyk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IHsgZ29vZ2xlQW5hbHl0aWNzLCBzZW50cnksIHNwbGl0LCBkYXRhZG9nLCBjb25maWdDYXQsIGhlcmUsIGN1c3RvbURpcmVjdGl2ZXMgfSA9IGNzcENvbmZpZztcbiAgY29uc3QgZGlyZWN0aXZlT2JqZWN0cyA9IFtvdmVyYWxsRGVmYXVsdHNdO1xuICBnb29nbGVBbmFseXRpY3MgJiYgZGlyZWN0aXZlT2JqZWN0cy5wdXNoKGdvb2dsZUFuYWx5dGljc0RpcmVjdGl2ZXMpO1xuICBzZW50cnkgJiYgZGlyZWN0aXZlT2JqZWN0cy5wdXNoKHNlbnRyeURpcmVjdGl2ZXMpO1xuICBzcGxpdCAmJiBkaXJlY3RpdmVPYmplY3RzLnB1c2goc3BsaXREaXJlY3RpdmVzKTtcbiAgZGF0YWRvZyAmJiBkaXJlY3RpdmVPYmplY3RzLnB1c2goZGF0YWRvZ0RpcmVjdGl2ZXMpO1xuICBjb25maWdDYXQgJiYgZGlyZWN0aXZlT2JqZWN0cy5wdXNoKGNvbmZpZ0NhdERpcmVjdGl2ZXMpO1xuICBoZXJlICYmIGRpcmVjdGl2ZU9iamVjdHMucHVzaChoZXJlRGlyZWN0aXZlcyk7XG4gIGN1c3RvbURpcmVjdGl2ZXMgJiYgZGlyZWN0aXZlT2JqZWN0cy5wdXNoKGN1c3RvbURpcmVjdGl2ZXMpO1xuICByZXR1cm4gY3JlYXRlQ3NwRnJvbURpcmVjdGl2ZU9iamVjdHMoZGlyZWN0aXZlT2JqZWN0cyk7XG59O1xuXG5jb25zdCBERUZBVUxUX0NTUF9DT05GSUc6IENzcENvbmZpZyA9IHtcbiAgZ29vZ2xlQW5hbHl0aWNzOiB0cnVlLFxuICBzZW50cnk6IHRydWUsXG4gIHNwbGl0OiB0cnVlLFxuICBkYXRhZG9nOiB0cnVlLFxuICBjb25maWdDYXQ6IHRydWUsXG4gIGhlcmU6IGZhbHNlLFxufTtcblxuY29uc3QgUklPX0FORF9TRUxGID0gW1wiJ3NlbGYnXCIsICdodHRwczovLyoucmlvLmNsb3VkJywgJ2h0dHBzOi8vcmlvLmNsb3VkJ107XG5cbmNvbnN0IG92ZXJhbGxEZWZhdWx0czogQ3NwRGlyZWN0aXZlcyA9IHtcbiAgZGVmYXVsdFNyYzogUklPX0FORF9TRUxGLFxuICBjb25uZWN0U3JjOiBSSU9fQU5EX1NFTEYsXG4gIGZvbnRTcmM6IFsuLi5SSU9fQU5EX1NFTEYsICdkYXRhOiddLFxuICBpbWdTcmM6IFsuLi5SSU9fQU5EX1NFTEYsICdkYXRhOiddLFxuICBvYmplY3RTcmM6IFtcIidub25lJ1wiXSxcbiAgc2NyaXB0U3JjOiBSSU9fQU5EX1NFTEYsXG4gIHN0eWxlU3JjOiBbLi4uUklPX0FORF9TRUxGLCBcIid1bnNhZmUtaW5saW5lJ1wiXSxcbiAgYmFzZVVyaTogW1wiJ3NlbGYnXCJdLFxuICBmb3JtQWN0aW9uOiBSSU9fQU5EX1NFTEYsXG4gIGZyYW1lQW5jZXN0b3JzOiBSSU9fQU5EX1NFTEYsXG4gIGZyYW1lU3JjOiBSSU9fQU5EX1NFTEYsXG59O1xuXG5jb25zdCBnb29nbGVBbmFseXRpY3NEaXJlY3RpdmVzOiBDc3BEaXJlY3RpdmVzID0ge1xuICBpbWdTcmM6IFsnd3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tJ10sXG4gIHNjcmlwdFNyYzogW1xuICAgICdodHRwczovLyouZ29vZ2xldGFnbWFuYWdlci5jb20nLFxuICAgIC8vIGdvb2dsZSBhbmF5bHl0aWNzIHNjcmlwdCBkZWNsYXJlZCBpbiBpbmRleC5odG1sXG4gICAgXCInc2hhMjU2LUhEV0FnZlRlTUFndVQ4d0Z3Nys5Mlk3aTRFby82UlVRUXVBM1RXOUp4YkE9J1wiLFxuICAgIC8vIHNjcmlwdCBsb2FkZWQgYnkgZ29vZ2xlIHRhZyBtYW5hZ2VyXG4gICAgXCInc2hhMjU2LXBkbXFxKzFROHl3SkdOdjJoZ0NlUld0UnoxUWY3UDc5a3p4ckxlSGJtV1U9J1wiLFxuICBdLFxuICBjb25uZWN0U3JjOiBbXG4gICAgJ2h0dHBzOi8vd3d3Lmdvb2dsZS5jb20nLFxuICAgICdodHRwczovLyouZ29vZ2xlLWFuYWx5dGljcy5jb20nLFxuICAgICdodHRwczovLyouYW5hbHl0aWNzLmdvb2dsZS5jb20nLFxuICAgICdodHRwczovLyouZ29vZ2xldGFnbWFuYWdlci5jb20nLFxuICBdLFxuICBmcmFtZVNyYzogWydodHRwczovL3d3dy5nb29nbGV0YWdtYW5hZ2VyLmNvbSddLFxufTtcblxuY29uc3Qgc2VudHJ5RGlyZWN0aXZlczogQ3NwRGlyZWN0aXZlcyA9IHtcbiAgY29ubmVjdFNyYzogWydodHRwczovLyouc2VudHJ5LmlvJywgJ2h0dHBzOi8vc2VudHJ5LmlvJ10sXG59O1xuXG5jb25zdCBzcGxpdERpcmVjdGl2ZXM6IENzcERpcmVjdGl2ZXMgPSB7XG4gIGNvbm5lY3RTcmM6IFsnaHR0cHM6Ly9zZGsuc3BsaXQuaW8nXSxcbn07XG5cbmNvbnN0IGRhdGFkb2dEaXJlY3RpdmVzOiBDc3BEaXJlY3RpdmVzID0ge1xuICBjb25uZWN0U3JjOiBbJ2h0dHBzOi8vKi5kYXRhZG9naHEuZXUnLCAnaHR0cHM6Ly8qLmJyb3dzZXItaW50YWtlLWRhdGFkb2docS5ldScsICdodHRwczovL2Jyb3dzZXItaW50YWtlLWRhdGFkb2docS5ldSddLFxufTtcblxuY29uc3QgY29uZmlnQ2F0RGlyZWN0aXZlczogQ3NwRGlyZWN0aXZlcyA9IHtcbiAgY29ubmVjdFNyYzogWydodHRwczovL2Nkbi1ldS5jb25maWdjYXQuY29tJ10sXG59O1xuXG5jb25zdCBoZXJlRGlyZWN0aXZlczogQ3NwRGlyZWN0aXZlcyA9IHtcbiAgZGVmYXVsdFNyYzogWycqLmpzLmFwaS5oZXJlLmNvbSddLFxuICBjb25uZWN0U3JjOiBbJ2h0dHBzOi8vKi5oZXJlYXBpLmNvbScsICdodHRwczovLyouYXBpLmhlcmUuY29tJ10sXG4gIGZvbnRTcmM6IFsnaHR0cHM6Ly9qcy5hcGkuaGVyZS5jb20nXSxcbiAgaW1nU3JjOiBbJ2pzLmFwaS5oZXJlLmNvbSddLFxuICBzY3JpcHRTcmM6IFsnaHR0cHM6Ly8qLmhlcmVhcGkuY29tIGh0dHBzOi8vKi5hcGkuaGVyZS5jb20nXSxcbiAgc3R5bGVTcmM6IFsnKi5oZXJlLmNvbSddLFxufTtcbiJdfQ==
|
|
226
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlvLWNsb3VkZnJvbnQtZGlzdHJpYnV0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbnRyaWJ1dGlvbnMvY29wLWZyb250ZW5kL2Nsb3VkZnJvbnQvcmlvLWNsb3VkZnJvbnQtZGlzdHJpYnV0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkJBQTZCO0FBQzdCLDZDQUFzRDtBQUN0RCwwREFBMEQ7QUFDMUQseURBQXlEO0FBQ3pELDhEQUE4RDtBQUM5RCxtREFBbUQ7QUFDbkQsMkRBQTJEO0FBQzNELHlDQUF5QztBQUN6QywyQ0FBdUM7QUFDdkMsbUVBQXVGO0FBQ3ZGLDhEQUEyRTtBQUMzRSxnRUFBMkQ7QUFFM0QsNkJBQTZCO0FBQzdCLE1BQU0sdUJBQXVCLEdBQUcsOENBQThDLENBQUM7QUFFL0Usd0ZBQXdGO0FBQ3hGOztHQUVHO0FBQ0ksTUFBTSxtQkFBbUIsR0FBRyxDQUFDLHVCQUFnQyxFQUFFLEVBQUUsQ0FBQztxQkFDcEQsdUJBQXVCO3FCQUN2Qix1QkFBdUI7a0JBQzFCLHVCQUF1QjtpQkFDeEIsdUJBQXVCOztvQkFFcEIsdUJBQXVCOztVQUVqQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxFQUFFO21CQUNuRCx1QkFBdUI7O3FCQUVyQix1QkFBdUI7eUJBQ25CLHVCQUF1QjttQkFDN0IsdUJBQXVCO1FBQ2xDO0tBQ0wsT0FBTyxDQUFDLFlBQVksRUFBRSxHQUFHLENBQUM7S0FDMUIsSUFBSSxFQUFFLENBQUM7QUFoQkcsUUFBQSxtQkFBbUIsdUJBZ0J0QjtBQW1GVjs7OztHQUlHO0FBQ0gsTUFBYSx5QkFBMEIsU0FBUSxzQkFBUztJQUd0RCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXFDO1FBQzdFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxVQUFVLEdBQUcsS0FB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QUFDO0NBQ3JDLENBQUM7QUFFRixNQUFNLGlCQUFpQixHQUFrQjtJQUN2QyxVQUFVLEVBQUUsQ0FBQyx3QkFBd0IsRUFBRSx1Q0FBdUMsRUFBRSxxQ0FBcUMsQ0FBQztDQUN2SCxDQUFDO0FBRUYsTUFBTSxtQkFBbUIsR0FBa0I7SUFDekMsVUFBVSxFQUFFLENBQUMsOEJBQThCLENBQUM7Q0FDN0MsQ0FBQztBQUVGLE1BQU0sY0FBYyxHQUFrQjtJQUNwQyxVQUFVLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztJQUNqQyxVQUFVLEVBQUUsQ0FBQyx1QkFBdUIsRUFBRSx3QkFBd0IsQ0FBQztJQUMvRCxPQUFPLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQztJQUNwQyxNQUFNLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztJQUMzQixTQUFTLEVBQUUsQ0FBQyw4Q0FBOEMsQ0FBQztJQUMzRCxRQUFRLEVBQUUsQ0FBQyxZQUFZLENBQUM7Q0FDekIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBEdXJhdGlvbiwgUmVtb3ZhbFBvbGljeSB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGFjbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2VydGlmaWNhdGVtYW5hZ2VyJztcbmltcG9ydCAqIGFzIGNsb3VkZnJvbnQgZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3VkZnJvbnQnO1xuaW1wb3J0ICogYXMgb3JpZ2lucyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWRmcm9udC1vcmlnaW5zJztcbmltcG9ydCAqIGFzIHJvdXRlNTMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXJvdXRlNTMnO1xuaW1wb3J0ICogYXMgdGFyZ2V0cyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtcm91dGU1My10YXJnZXRzJztcbmltcG9ydCAqIGFzIHMzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IGNyZWF0ZUNzcEZyb21EaXJlY3RpdmVPYmplY3RzLCBDc3BEaXJlY3RpdmVzIH0gZnJvbSAnLi9jb250ZW50U2VjdXJpdHlQb2xpY3knO1xuaW1wb3J0IHsgQ2xhaWRvbWV0ZXIsIENsYWlkb21ldGVyUHJvZHVjdCB9IGZyb20gJy4uLy4uLy4uL3Jpby1jbGFpZG9tZXRlcic7XG5pbXBvcnQgeyBSaW9MYW5kaW5nWm9uZSB9IGZyb20gJy4uLy4uLy4uL3Jpby1sYW5kaW5nLXpvbmUnO1xuXG4vLyByZWdpb24gTGVnYWN5IENTUCBmdW5jdGlvblxuY29uc3QgYWx3YXlzQWxsb3dlZENTUFNvdXJjZXMgPSBcIidzZWxmJyBodHRwczovLyoucmlvLmNsb3VkIGh0dHBzOi8vcmlvLmNsb3VkXCI7XG5cbi8vIFRoZSBoYXNoIGluIHNjcmlwdCBzcmMgaXMgZm9yIHRoZSBnb29nbGUgdGFnTWFuYWdlciBzY3JpcHQgaW5jbHVkZWQgaW4gdGhlIGluZGV4Lmh0bWxcbi8qKlxuICogQGRlcHJlY2F0ZWQgUGxlYXNlIHN3aXRjaCB0byB0aGUgZGVjbGFyYXRpdmUgQ1NQIGNvbmZpZy4gVGhpcyBmdW5jdGlvbiB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIGZ1dHVyZS5cbiAqL1xuZXhwb3J0IGNvbnN0IGNyZWF0ZVJpb0RlZmF1bHRDU1AgPSAoYWRkaXRpb25hbFNjcmlwdFNvdXJjZXM/OiBzdHJpbmcpID0+IGBcbiAgICAgICBkZWZhdWx0LXNyYyAke2Fsd2F5c0FsbG93ZWRDU1BTb3VyY2VzfTtcbiAgICAgICBjb25uZWN0LXNyYyAke2Fsd2F5c0FsbG93ZWRDU1BTb3VyY2VzfSBodHRwczovLyouc2VudHJ5LmlvIGh0dHBzOi8vc2VudHJ5LmlvIGh0dHBzOi8vc2RrLnNwbGl0LmlvIGh0dHBzOi8vKi5kYXRhZG9naHEuZXUgaHR0cHM6Ly8qLmJyb3dzZXItaW50YWtlLWRhdGFkb2docS5ldSBodHRwczovL2Jyb3dzZXItaW50YWtlLWRhdGFkb2docS5ldSBodHRwczovL2Nkbi1ldS5jb25maWdjYXQuY29tO1xuICAgICAgIGZvbnQtc3JjICR7YWx3YXlzQWxsb3dlZENTUFNvdXJjZXN9IGRhdGE6O1xuICAgICAgIGltZy1zcmMgJHthbHdheXNBbGxvd2VkQ1NQU291cmNlc30gZGF0YTogd3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tO1xuICAgICAgIG9iamVjdC1zcmMgJ25vbmUnO1xuICAgICAgIHNjcmlwdC1zcmMgJHthbHdheXNBbGxvd2VkQ1NQU291cmNlc30gaHR0cHM6Ly93d3cuZ29vZ2xldGFnbWFuYWdlci5jb21cbiAgICAgICAgJ3NoYTI1Ni1IRFdBZ2ZUZU1BZ3VUOHdGdzcrOTJZN2k0RW8vNlJVUVF1QTNUVzlKeGJBPSdcbiAgICAgICAgJHthZGRpdGlvbmFsU2NyaXB0U291cmNlcyA/ICcgJyArIGFkZGl0aW9uYWxTY3JpcHRTb3VyY2VzIDogJyd9O1xuICAgICAgIHN0eWxlLXNyYyAke2Fsd2F5c0FsbG93ZWRDU1BTb3VyY2VzfSAndW5zYWZlLWlubGluZSc7XG4gICAgICAgYmFzZS11cmkgJ3NlbGYnO1xuICAgICAgIGZvcm0tYWN0aW9uICR7YWx3YXlzQWxsb3dlZENTUFNvdXJjZXN9O1xuICAgICAgIGZyYW1lLWFuY2VzdG9ycyAke2Fsd2F5c0FsbG93ZWRDU1BTb3VyY2VzfTtcbiAgICAgICBmcmFtZS1zcmMgJHthbHdheXNBbGxvd2VkQ1NQU291cmNlc307XG4gICAgICAgYFxuICAucmVwbGFjZSgvW1xcclxcblxcc10rL2csICcgJylcbiAgLnRyaW0oKTtcbi8vIGVuZHJlZ2lvblxuXG4vKiogUHJvcGVydGllcyBmb3IgZGVmaW5pbmcgYSBSaW9DbG91ZGZyb250RGlzdHJpYnV0aW9uLiAqL1xuZXhwb3J0IGludGVyZmFjZSBSaW9DbG91ZGZyb250RGlzdHJpYnV0aW9uUHJvcHMge1xuICAvKiogVGhlIHJlZmVyZW5jZSB0byB0aGUgUzMgYnVja2V0IGNvbnRhaW5pbmcgdGhlIGZpbGVzIHRvIHNlcnZlLiAqL1xuICByZWFkb25seSBjb250ZW50QnVja2V0TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgICAqIFRoZSBzdWJkb21haW4gd2hlcmUgdGhlIGNvbnRlbnQgc2hvdWxkIGJlIHNlcnZlZC5cbiAgICAgKlxuICAgICAqIElmIG5vdCBnaXZlbiwgYW4gZW1wdHkgc3RyaW5nLCBpLmUuIG5vIHN1YkRvbWFpbiB3aWxsIGJlIHVzZWQuIEluc3RlYWQsIHRoZSBuYW1lIG9mIHRoZSBob3N0ZWQgem9uZSB3aWxsIGJlIHVzZWRcbiAgICAgKiBkaXJlY3RseS5cbiAgICAgKi9cbiAgcmVhZG9ubHkgc3ViRG9tYWluPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgICAqIFRoZSBob3N0ZWQgem9uZSBvZiB0aGUgZG9tYWluIHVuZGVyIHdoaWNoIHRoZSBjb250ZW50IHdpbGwgYmUgc2VydmVkLlxuICAgICAqXG4gICAgICogSWYgbm90IGdpdmVuLCB0aGUgZGVmYXVsdCBob3N0ZWQgWm9uZSBwcm92aWRlZCBieSBSSU8gc2V0dXAgd2lsbCBiZSB1c2VkLlxuICAgICAqL1xuICByZWFkb25seSBob3N0ZWRab25lPzogcm91dGU1My5JSG9zdGVkWm9uZTtcblxuICAvKipcbiAgICAgKiBUaGUgY29udGVudCBTZWN1cml0eSBQb2xpY3kgdG8gYmUgc2VudCBhcyBhIGhlYWRlciB3aGVuIGRlbGl2ZXJpbmcgdGhlIGJ1Y2tldCBjb250ZW50LlxuICAgICAqXG4gICAgICogSWYgbm90IHNldCwgYSByaW8gRGVmYXVsdCB3aWxsIGJlIHVzZWQuIFRoZSBkZWZhdWx0IHNob3VsZCBjb3ZlciBjb25uZWN0aW9ucyB0byBzcGxpdC5pbywgc2VudHJ5IGFuZCBkYXRhZG9nLCBhc1xuICAgICAqIHdlbGwgYXMgYSBoYXNoIHRvIHN1cHBvcnQgZ29vZ2xlIHRhZ01hbmdlci4gVGhlIGxhdHRlciBtaWdodCBuZWVkIHRvIGJlIGFkYXB0ZWQgaWYgeW91IGNoYW5nZSB0aGUgbWluaWZpY2F0aW9uIG9mXG4gICAgICogdGhlIGluZGV4Lmh0bWwsIGluIHdoaWNoIGNhc2UgeW91IGNhbiBwcm92aWRlIHlvdXIgY3NwIGhlcmUuXG4gICAgICpcbiAgICAgKiBAZGVwcmVjYXRlZCBQbGVhc2UgdXNlIHRoZSBkZWNsYXJhdGl2ZSBDU1AgY29uZmlnIGluc3RlYWQuIFNlZSB7QGxpbmsgY3NwQ29uZmlnfS5cbiAgICAgKi9cbiAgcmVhZG9ubHkgY29udGVudFNlY3VyaXR5UG9saWN5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgICAqIEFsbG93cyBkZWNsYXJhdGl2ZWx5IGRlZmluaW5nIHlvdXIgZGVzaXJlZCBDU1AuXG4gICAgICpcbiAgICAgKiBUaGUgUklPIGRlZmF1bHRzIGFyZSBhbHdheXMgaW5jbHVkZWQsIGFuZCB5b3UgY2FuIGNob29zZSB3aGljaCBzZXJ2aWNlcyB5b3Ugd2FudCB0byBpbmNsdWRlIChlLmcuIENvbmZpZ0NhdCkgb3JcbiAgICAgKiBub3QuIFlvdSBjYW4gYWxzbyBwcm92aWRlIGN1c3RvbSBkaXJlY3RpdmVzIC8gdmFsdWVzIHVzaW5nIHRoZSBcImN1c3RvbVwiIGtleS5cbiAgICAgKi9cbiAgcmVhZG9ubHkgY3NwQ29uZmlnPzogQ3NwQ29uZmlnO1xuXG4gIC8qKlxuICAgICAqIFRoZSBsaXN0IG9mIGZ1bmN0aW9ucyB0byBiZSBhc3NvY2lhdGVkIHdpdGggdGhlIGRlZmF1bHQgYmVoYXZpb3VyIG9mIHRoZSBkaXN0cmlidXRpb24uXG4gICAgICpcbiAgICAgKiBJZiBub3QgZ2l2ZW4sIG5vIGZ1bmN0aW9ucyB3aWxsIGJlIGFzc2lnbmVkLlxuICAgICAqL1xuICByZWFkb25seSBmdW5jdGlvbkFzc29jaWF0aW9ucz86IGNsb3VkZnJvbnQuRnVuY3Rpb25Bc3NvY2lhdGlvbltdO1xuXG4gIC8qKlxuICAgKiBUaGUgZnJhbWUgb3B0aW9ucyB0byBiZSB1c2VkIGluIHRoZSByZXNwb25zZSBoZWFkZXJzIHBvbGljeS5cbiAgICpcbiAgICogSWYgbm90IGdpdmVuLCB0aGUgZGVmYXVsdCB2YWx1ZSB3aWxsIGJlIGBERU5ZYCAmIG92ZXJyaWRlOiB0cnVlLlxuICAgKi9cbiAgcmVhZG9ubHkgZnJhbWVPcHRpb25zPzogY2xvdWRmcm9udC5SZXNwb25zZUhlYWRlcnNGcmFtZU9wdGlvbnM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3NwQ29uZmlnIHtcbiAgLyoqIEluY2x1ZGUgR29vZ2xlIEFuYWx5dGljcyAvIEdvb2dsZSBUYWcgbWFuYWdlci4gKi9cbiAgcmVhZG9ubHkgZ29vZ2xlQW5hbHl0aWNzPzogYm9vbGVhbjtcblxuICAvKiogSW5jbHVkZSBTZW50cnkuICovXG4gIHJlYWRvbmx5IHNlbnRyeT86IGJvb2xlYW47XG5cbiAgLyoqIEluY2x1ZGUgU3BsaXQuaW8uICovXG4gIHJlYWRvbmx5IHNwbGl0PzogYm9vbGVhbjtcblxuICAvKiogSW5jbHVkZSBEYXRhZG9nLiAqL1xuICByZWFkb25seSBkYXRhZG9nPzogYm9vbGVhbjtcblxuICAvKiogSW5jbHVkZSBDb25maWdDYXQuICovXG4gIHJlYWRvbmx5IGNvbmZpZ0NhdD86IGJvb2xlYW47XG5cbiAgLyoqIEluY2x1ZGUgSGVyZSBNYXBzLiAqL1xuICByZWFkb25seSBoZXJlPzogYm9vbGVhbjtcblxuICAvKiogUHJpbnRzIHRoZSBnZW5lcmF0ZWQgQ1NQIHRvIHRoZSBjb25zb2xlLiAqL1xuICByZWFkb25seSBsb2dPdXRwdXQ/OiBib29sZWFuO1xuXG4gIC8qKiBZb3UgY2FuIGRlZmluZSBjdXN0b20gdmFsdWVzIGZvciBhbnkgQ1NQIGRpcmVjdGl2ZSB3aXRoIHRoaXMuICovXG4gIHJlYWRvbmx5IGN1c3RvbURpcmVjdGl2ZXM/OiBDc3BEaXJlY3RpdmVzO1xufVxuXG4vKipcbiAqIEEgQ29uc3RydWN0IHdoaWNoIGNyZWF0ZXMgYSBkZWZhdWx0IGNsb3VkZnJvbnQgZGlzdHJpYnV0aW9uIHVzaW5nIGEgczMgYnVja2V0IGFzIG9yaWdpbi5cbiAqXG4gKiBJbnRlbmRlZCBmb3IgZGVsaXZlcnkgb2YgaHRtbCBkb2N1bWVudHMuIEl0IHNldHMgc29tZSBkZWZhdWx0cyBhIHJlY29tbWVuZGVkIGJ5IEFXUyBhbmQgcHJvdmlkZXMgQ1NQIHNldHRpbmdzLlxuICovXG5leHBvcnQgY2xhc3MgUmlvQ2xvdWRmcm9udERpc3RyaWJ1dGlvbiBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHJlYWRvbmx5IGRpc3RyaWJ1dGlvbjogY2xvdWRmcm9udC5JRGlzdHJpYnV0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBSaW9DbG91ZGZyb250RGlzdHJpYnV0aW9uUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgaG9zdGVkWm9uZSA9IHByb3BzLmhvc3RlZFpvbmUgPz8gUmlvTGFuZGluZ1pvbmUuZ2V0RGVmYXVsdEhvc3RlZFpvbmUodGhpcyk7XG4gICAgY29uc3Qgc3ViRG9tYWluID0gcHJvcHMuc3ViRG9tYWluID8/ICcnO1xuICAgIGNvbnN0IGRvbWFpbk5hbWUgPSBwcm9wcy5zdWJEb21haW4gPT09IHVuZGVmaW5lZCA/IGhvc3RlZFpvbmUuem9uZU5hbWUgOiBzdWJEb21haW4gKyAnLicgKyBob3N0ZWRab25lLnpvbmVOYW1lO1xuICAgIGNvbnN0IGZyYW1lT3B0aW9ucyA9IHByb3BzLmZyYW1lT3B0aW9ucyA/PyB7XG4gICAgICBmcmFtZU9wdGlvbjogY2xvdWRmcm9udC5IZWFkZXJzRnJhbWVPcHRpb24uREVOWSxcbiAgICAgIG92ZXJyaWRlOiB0cnVlLFxuICAgIH07XG5cbiAgICBjb25zdCBjb250ZW50U2VjdXJpdHlQb2xpY3kgPSB0aGlzLmdlbmVyYXRlQ3NwKHByb3BzKTtcblxuICAgIGNvbnN0IGNlcnRpZmljYXRlID0gbmV3IGFjbS5EbnNWYWxpZGF0ZWRDZXJ0aWZpY2F0ZSh0aGlzLCAnQ2xvdWRmcm9udERpc3RyaWJ1dGlvbkNlcnRpZmljYXRlJywge1xuICAgICAgZG9tYWluTmFtZTogZG9tYWluTmFtZSxcbiAgICAgIGhvc3RlZFpvbmU6IGhvc3RlZFpvbmUsXG4gICAgICByZWdpb246ICd1cy1lYXN0LTEnLFxuICAgIH0pO1xuXG4gICAgY29uc3QgYnVja2V0ID0gbmV3IHMzLkJ1Y2tldCh0aGlzLCAnRnJvbnRFbmRCdWNrZXQnLCB7XG4gICAgICBidWNrZXROYW1lOiBwcm9wcy5jb250ZW50QnVja2V0TmFtZSxcbiAgICAgIGVuY3J5cHRpb246IHMzLkJ1Y2tldEVuY3J5cHRpb24uUzNfTUFOQUdFRCxcbiAgICAgIHZlcnNpb25lZDogdHJ1ZSxcbiAgICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICAgIGF1dG9EZWxldGVPYmplY3RzOiB0cnVlLFxuICAgICAgbGlmZWN5Y2xlUnVsZXM6IFtcbiAgICAgICAgeyBpZDogJ0V4cGlyZXNPYmplY3RzJywgZXhwaXJhdGlvbjogRHVyYXRpb24uZGF5cyg5MCksIG5vbmN1cnJlbnRWZXJzaW9uRXhwaXJhdGlvbjogRHVyYXRpb24uZGF5cygzMCkgfSxcbiAgICAgIF0sXG4gICAgICBlbmZvcmNlU1NMOiB0cnVlLFxuICAgICAgY29yczogW3sgYWxsb3dlZE1ldGhvZHM6IFtzMy5IdHRwTWV0aG9kcy5HRVRdLCBhbGxvd2VkT3JpZ2luczogWycqJ10sIGFsbG93ZWRIZWFkZXJzOiBbJyonXSB9XSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHJlc3BvbnNlSGVhZGVyc1BvbGljeSA9IG5ldyBjbG91ZGZyb250LlJlc3BvbnNlSGVhZGVyc1BvbGljeSh0aGlzLCAnUmVzcG9uc2VIZWFkZXJzUG9saWN5Jywge1xuICAgICAgY29tbWVudDogJ1BvbGljeSBmb3IgQ2xvdWRGcm9udCByZXNwb25zZXMnLFxuICAgICAgY29yc0JlaGF2aW9yOiB7XG4gICAgICAgIGFjY2Vzc0NvbnRyb2xBbGxvd0NyZWRlbnRpYWxzOiBmYWxzZSxcbiAgICAgICAgYWNjZXNzQ29udHJvbEFsbG93SGVhZGVyczogWycqJ10sXG4gICAgICAgIGFjY2Vzc0NvbnRyb2xBbGxvd01ldGhvZHM6IFsnR0VUJ10sXG4gICAgICAgIGFjY2Vzc0NvbnRyb2xBbGxvd09yaWdpbnM6IFtob3N0ZWRab25lLnpvbmVOYW1lXSxcbiAgICAgICAgYWNjZXNzQ29udHJvbE1heEFnZTogRHVyYXRpb24uc2Vjb25kcyg2MDApLFxuICAgICAgICBvcmlnaW5PdmVycmlkZTogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICBzZWN1cml0eUhlYWRlcnNCZWhhdmlvcjoge1xuICAgICAgICBjb250ZW50U2VjdXJpdHlQb2xpY3k6IHsgY29udGVudFNlY3VyaXR5UG9saWN5OiBjb250ZW50U2VjdXJpdHlQb2xpY3ksIG92ZXJyaWRlOiB0cnVlIH0sXG4gICAgICAgIGNvbnRlbnRUeXBlT3B0aW9uczogeyBvdmVycmlkZTogdHJ1ZSB9LFxuICAgICAgICBmcmFtZU9wdGlvbnM6IGZyYW1lT3B0aW9ucyxcbiAgICAgICAgcmVmZXJyZXJQb2xpY3k6IHtcbiAgICAgICAgICByZWZlcnJlclBvbGljeTogY2xvdWRmcm9udC5IZWFkZXJzUmVmZXJyZXJQb2xpY3kuU1RSSUNUX09SSUdJTl9XSEVOX0NST1NTX09SSUdJTixcbiAgICAgICAgICBvdmVycmlkZTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgc3RyaWN0VHJhbnNwb3J0U2VjdXJpdHk6IHsgYWNjZXNzQ29udHJvbE1heEFnZTogRHVyYXRpb24uZGF5cygzNjUpLCBpbmNsdWRlU3ViZG9tYWluczogdHJ1ZSwgb3ZlcnJpZGU6IHRydWUgfSxcbiAgICAgICAgeHNzUHJvdGVjdGlvbjogeyBwcm90ZWN0aW9uOiB0cnVlLCBtb2RlQmxvY2s6IHRydWUsIG92ZXJyaWRlOiB0cnVlIH0sXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgY29uc3Qgb3JpZ2luQWNjZXNzQ29udHJvbCA9IG5ldyBjbG91ZGZyb250LlMzT3JpZ2luQWNjZXNzQ29udHJvbCh0aGlzLCAnT3JpZ2luQWNjZXNzQ29udHJvbCcsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBgQWNjZXNzIGNvbnRyb2wgZm9yICouJHtkb21haW5OYW1lfWAsXG4gICAgfSk7XG5cbiAgICB0aGlzLmRpc3RyaWJ1dGlvbiA9IG5ldyBjbG91ZGZyb250LkRpc3RyaWJ1dGlvbih0aGlzLCAnRGlzdHJpYnV0aW9uJywge1xuICAgICAgZGVmYXVsdEJlaGF2aW9yOiB7XG4gICAgICAgIG9yaWdpbjogb3JpZ2lucy5TM0J1Y2tldE9yaWdpbi53aXRoT3JpZ2luQWNjZXNzQ29udHJvbChidWNrZXQsIHtcbiAgICAgICAgICBvcmlnaW5BY2Nlc3NDb250cm9sOiBvcmlnaW5BY2Nlc3NDb250cm9sLFxuICAgICAgICB9KSxcbiAgICAgICAgb3JpZ2luUmVxdWVzdFBvbGljeTogY2xvdWRmcm9udC5PcmlnaW5SZXF1ZXN0UG9saWN5LkNPUlNfUzNfT1JJR0lOLFxuICAgICAgICB2aWV3ZXJQcm90b2NvbFBvbGljeTogY2xvdWRmcm9udC5WaWV3ZXJQcm90b2NvbFBvbGljeS5SRURJUkVDVF9UT19IVFRQUyxcbiAgICAgICAgY2FjaGVQb2xpY3k6IGNsb3VkZnJvbnQuQ2FjaGVQb2xpY3kuQ0FDSElOR19PUFRJTUlaRUQsXG4gICAgICAgIHJlc3BvbnNlSGVhZGVyc1BvbGljeTogcmVzcG9uc2VIZWFkZXJzUG9saWN5LFxuICAgICAgICBjb21wcmVzczogdHJ1ZSxcbiAgICAgICAgZnVuY3Rpb25Bc3NvY2lhdGlvbnM6IHByb3BzLmZ1bmN0aW9uQXNzb2NpYXRpb25zLFxuICAgICAgfSxcbiAgICAgIGRvbWFpbk5hbWVzOiBbZG9tYWluTmFtZV0sXG4gICAgICBwcmljZUNsYXNzOiBjbG91ZGZyb250LlByaWNlQ2xhc3MuUFJJQ0VfQ0xBU1NfMTAwLFxuICAgICAgY2VydGlmaWNhdGU6IGNlcnRpZmljYXRlLFxuICAgICAgZGVmYXVsdFJvb3RPYmplY3Q6ICdpbmRleC5odG1sJyxcbiAgICAgIG1pbmltdW1Qcm90b2NvbFZlcnNpb246IGNsb3VkZnJvbnQuU2VjdXJpdHlQb2xpY3lQcm90b2NvbC5UTFNfVjFfMl8yMDE4LFxuICAgICAgZXJyb3JSZXNwb25zZXM6IFtcbiAgICAgICAgeyBodHRwU3RhdHVzOiA0MDQsIHJlc3BvbnNlSHR0cFN0YXR1czogMjAwLCByZXNwb25zZVBhZ2VQYXRoOiAnL2luZGV4Lmh0bWwnLCB0dGw6IER1cmF0aW9uLm1pbnV0ZXMoNSkgfSxcbiAgICAgICAgeyBodHRwU3RhdHVzOiA0MDMsIHJlc3BvbnNlSHR0cFN0YXR1czogMjAwLCByZXNwb25zZVBhZ2VQYXRoOiAnL2luZGV4Lmh0bWwnLCB0dGw6IER1cmF0aW9uLm1pbnV0ZXMoNSkgfSxcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgICBuZXcgcm91dGU1My5SZWNvcmRTZXQodGhpcywgJ1JlY29yZFNldCcsIHtcbiAgICAgIHJlY29yZE5hbWU6IHN1YkRvbWFpbixcbiAgICAgIHRhcmdldDogcm91dGU1My5SZWNvcmRUYXJnZXQuZnJvbUFsaWFzKG5ldyB0YXJnZXRzLkNsb3VkRnJvbnRUYXJnZXQodGhpcy5kaXN0cmlidXRpb24pKSxcbiAgICAgIHpvbmU6IGhvc3RlZFpvbmUsXG4gICAgICByZWNvcmRUeXBlOiByb3V0ZTUzLlJlY29yZFR5cGUuQSxcbiAgICB9KTtcblxuICAgIGNvbnN0IFtmZWF0dXJlLCBwYWNrYWdlTmFtZV0gPSBfX2Rpcm5hbWUuc3BsaXQocGF0aC5zZXApLnJldmVyc2UoKTtcblxuICAgIG5ldyBDbGFpZG9tZXRlcih0aGlzLCAnQ2xhaWRvbWV0ZXInLCB7XG4gICAgICBwcm9kdWN0OiBDbGFpZG9tZXRlclByb2R1Y3QuQ0RLX0NPTlRSSUJVVElPTixcbiAgICAgIHBhY2thZ2VOYW1lLFxuICAgICAgZmVhdHVyZSxcbiAgICAgIHZlcnNpb246ICcwLjAuNScsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdlbmVyYXRlQ3NwKHsgY3NwQ29uZmlnLCBjb250ZW50U2VjdXJpdHlQb2xpY3kgfTogUmlvQ2xvdWRmcm9udERpc3RyaWJ1dGlvblByb3BzKTogc3RyaW5nIHtcbiAgICBpZiAoY29udGVudFNlY3VyaXR5UG9saWN5KSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1tSaW9DbG91ZEZyb250RGlzdHJpYnV0aW9uXSBZb3UgYXJlIHVzaW5nIHRoZSBkZXByZWNhdGVkIFwiY29udGVudFNlY3VyaXR5UG9saWN5XCIgcHJvcGVydHkuIFBsZWFzZSB1cGRhdGUgdG8gdGhlIGRlY2xhcmF0aXZlIFwiY3NwQ29uZmlnXCIuIEl0IHdpbGwgZXZlbiBzYXZlIHlvdSBhIHRvbiBvZiBjb2RlLCB0cnVzdCBtZSA6KScpO1xuICAgICAgcmV0dXJuIGNvbnRlbnRTZWN1cml0eVBvbGljeTtcbiAgICB9XG5cbiAgICBpZiAoIWNzcENvbmZpZykge1xuICAgICAgY29uc29sZS5pbmZvKCdbUmlvQ2xvdWRGcm9udERpc3RyaWJ1dGlvbl0gWW91IGRpZCBub3QgcHJvdmlkZSBhIFwiY3NwQ29uZmlnXCIuIFRoZSBkZWZhdWx0IENTUCB3aWxsIGJlIGdlbmVyYXRlZC4nKTtcbiAgICB9XG5cbiAgICBjb25zdCBnZW5lcmF0ZWRDb25maWcgPSBjcmVhdGVDc3BGcm9tQ29uZmlnKGNzcENvbmZpZyk7XG5cbiAgICBpZiAoY3NwQ29uZmlnPy5sb2dPdXRwdXQpIHtcbiAgICAgIGNvbnNvbGUubG9nKGBbUmlvQ2xvdWRGcm9udERpc3RyaWJ1dGlvbl0gR2VuZXJhdGVkIENTUDpcXG4ke2dlbmVyYXRlZENvbmZpZ31gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZ2VuZXJhdGVkQ29uZmlnO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVDc3BGcm9tQ29uZmlnID0gKGNzcENvbmZpZzogQ3NwQ29uZmlnID0gREVGQVVMVF9DU1BfQ09ORklHKTogc3RyaW5nID0+IHtcbiAgY29uc3QgeyBnb29nbGVBbmFseXRpY3MsIHNlbnRyeSwgc3BsaXQsIGRhdGFkb2csIGNvbmZpZ0NhdCwgaGVyZSwgY3VzdG9tRGlyZWN0aXZlcyB9ID0gY3NwQ29uZmlnO1xuICBjb25zdCBkaXJlY3RpdmVPYmplY3RzID0gW292ZXJhbGxEZWZhdWx0c107XG4gIGdvb2dsZUFuYWx5dGljcyAmJiBkaXJlY3RpdmVPYmplY3RzLnB1c2goZ29vZ2xlQW5hbHl0aWNzRGlyZWN0aXZlcyk7XG4gIHNlbnRyeSAmJiBkaXJlY3RpdmVPYmplY3RzLnB1c2goc2VudHJ5RGlyZWN0aXZlcyk7XG4gIHNwbGl0ICYmIGRpcmVjdGl2ZU9iamVjdHMucHVzaChzcGxpdERpcmVjdGl2ZXMpO1xuICBkYXRhZG9nICYmIGRpcmVjdGl2ZU9iamVjdHMucHVzaChkYXRhZG9nRGlyZWN0aXZlcyk7XG4gIGNvbmZpZ0NhdCAmJiBkaXJlY3RpdmVPYmplY3RzLnB1c2goY29uZmlnQ2F0RGlyZWN0aXZlcyk7XG4gIGhlcmUgJiYgZGlyZWN0aXZlT2JqZWN0cy5wdXNoKGhlcmVEaXJlY3RpdmVzKTtcbiAgY3VzdG9tRGlyZWN0aXZlcyAmJiBkaXJlY3RpdmVPYmplY3RzLnB1c2goY3VzdG9tRGlyZWN0aXZlcyk7XG4gIHJldHVybiBjcmVhdGVDc3BGcm9tRGlyZWN0aXZlT2JqZWN0cyhkaXJlY3RpdmVPYmplY3RzKTtcbn07XG5cbmNvbnN0IERFRkFVTFRfQ1NQX0NPTkZJRzogQ3NwQ29uZmlnID0ge1xuICBnb29nbGVBbmFseXRpY3M6IHRydWUsXG4gIHNlbnRyeTogdHJ1ZSxcbiAgc3BsaXQ6IHRydWUsXG4gIGRhdGFkb2c6IHRydWUsXG4gIGNvbmZpZ0NhdDogdHJ1ZSxcbiAgaGVyZTogZmFsc2UsXG59O1xuXG5jb25zdCBSSU9fQU5EX1NFTEYgPSBbXCInc2VsZidcIiwgJ2h0dHBzOi8vKi5yaW8uY2xvdWQnLCAnaHR0cHM6Ly9yaW8uY2xvdWQnXTtcblxuY29uc3Qgb3ZlcmFsbERlZmF1bHRzOiBDc3BEaXJlY3RpdmVzID0ge1xuICBkZWZhdWx0U3JjOiBSSU9fQU5EX1NFTEYsXG4gIGNvbm5lY3RTcmM6IFJJT19BTkRfU0VMRixcbiAgZm9udFNyYzogWy4uLlJJT19BTkRfU0VMRiwgJ2RhdGE6J10sXG4gIGltZ1NyYzogWy4uLlJJT19BTkRfU0VMRiwgJ2RhdGE6J10sXG4gIG9iamVjdFNyYzogW1wiJ25vbmUnXCJdLFxuICBzY3JpcHRTcmM6IFJJT19BTkRfU0VMRixcbiAgc3R5bGVTcmM6IFsuLi5SSU9fQU5EX1NFTEYsIFwiJ3Vuc2FmZS1pbmxpbmUnXCJdLFxuICBiYXNlVXJpOiBbXCInc2VsZidcIl0sXG4gIGZvcm1BY3Rpb246IFJJT19BTkRfU0VMRixcbiAgZnJhbWVBbmNlc3RvcnM6IFJJT19BTkRfU0VMRixcbiAgZnJhbWVTcmM6IFJJT19BTkRfU0VMRixcbn07XG5cbmNvbnN0IGdvb2dsZUFuYWx5dGljc0RpcmVjdGl2ZXM6IENzcERpcmVjdGl2ZXMgPSB7XG4gIGltZ1NyYzogWyd3d3cuZ29vZ2xldGFnbWFuYWdlci5jb20nXSxcbiAgc2NyaXB0U3JjOiBbXG4gICAgJ2h0dHBzOi8vKi5nb29nbGV0YWdtYW5hZ2VyLmNvbScsXG4gICAgLy8gZ29vZ2xlIGFuYXlseXRpY3Mgc2NyaXB0IGRlY2xhcmVkIGluIGluZGV4Lmh0bWxcbiAgICBcIidzaGEyNTYtSERXQWdmVGVNQWd1VDh3Rnc3KzkyWTdpNEVvLzZSVVFRdUEzVFc5SnhiQT0nXCIsXG4gICAgLy8gc2NyaXB0IGxvYWRlZCBieSBnb29nbGUgdGFnIG1hbmFnZXJcbiAgICBcIidzaGEyNTYtcGRtcXErMVE4eXdKR052MmhnQ2VSV3RSejFRZjdQNzlrenhyTGVIYm1XVT0nXCIsXG4gIF0sXG4gIGNvbm5lY3RTcmM6IFtcbiAgICAnaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbScsXG4gICAgJ2h0dHBzOi8vKi5nb29nbGUtYW5hbHl0aWNzLmNvbScsXG4gICAgJ2h0dHBzOi8vKi5hbmFseXRpY3MuZ29vZ2xlLmNvbScsXG4gICAgJ2h0dHBzOi8vKi5nb29nbGV0YWdtYW5hZ2VyLmNvbScsXG4gIF0sXG4gIGZyYW1lU3JjOiBbJ2h0dHBzOi8vd3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tJ10sXG59O1xuXG5jb25zdCBzZW50cnlEaXJlY3RpdmVzOiBDc3BEaXJlY3RpdmVzID0ge1xuICBjb25uZWN0U3JjOiBbJ2h0dHBzOi8vKi5zZW50cnkuaW8nLCAnaHR0cHM6Ly9zZW50cnkuaW8nXSxcbn07XG5cbmNvbnN0IHNwbGl0RGlyZWN0aXZlczogQ3NwRGlyZWN0aXZlcyA9IHtcbiAgY29ubmVjdFNyYzogWydodHRwczovL3Nkay5zcGxpdC5pbyddLFxufTtcblxuY29uc3QgZGF0YWRvZ0RpcmVjdGl2ZXM6IENzcERpcmVjdGl2ZXMgPSB7XG4gIGNvbm5lY3RTcmM6IFsnaHR0cHM6Ly8qLmRhdGFkb2docS5ldScsICdodHRwczovLyouYnJvd3Nlci1pbnRha2UtZGF0YWRvZ2hxLmV1JywgJ2h0dHBzOi8vYnJvd3Nlci1pbnRha2UtZGF0YWRvZ2hxLmV1J10sXG59O1xuXG5jb25zdCBjb25maWdDYXREaXJlY3RpdmVzOiBDc3BEaXJlY3RpdmVzID0ge1xuICBjb25uZWN0U3JjOiBbJ2h0dHBzOi8vY2RuLWV1LmNvbmZpZ2NhdC5jb20nXSxcbn07XG5cbmNvbnN0IGhlcmVEaXJlY3RpdmVzOiBDc3BEaXJlY3RpdmVzID0ge1xuICBkZWZhdWx0U3JjOiBbJyouanMuYXBpLmhlcmUuY29tJ10sXG4gIGNvbm5lY3RTcmM6IFsnaHR0cHM6Ly8qLmhlcmVhcGkuY29tJywgJ2h0dHBzOi8vKi5hcGkuaGVyZS5jb20nXSxcbiAgZm9udFNyYzogWydodHRwczovL2pzLmFwaS5oZXJlLmNvbSddLFxuICBpbWdTcmM6IFsnanMuYXBpLmhlcmUuY29tJ10sXG4gIHNjcmlwdFNyYzogWydodHRwczovLyouaGVyZWFwaS5jb20gaHR0cHM6Ly8qLmFwaS5oZXJlLmNvbSddLFxuICBzdHlsZVNyYzogWycqLmhlcmUuY29tJ10sXG59O1xuIl19
|
|
@@ -113,9 +113,9 @@ exports.createVulnerabilityBuildSpec = createVulnerabilityBuildSpec;
|
|
|
113
113
|
const getRuntimes = (features) => {
|
|
114
114
|
const runtimes = {};
|
|
115
115
|
if (features.gradleBuild) {
|
|
116
|
-
runtimes.java = '
|
|
116
|
+
runtimes.java = 'corretto21';
|
|
117
117
|
}
|
|
118
|
-
runtimes.nodejs = '
|
|
118
|
+
runtimes.nodejs = '22';
|
|
119
119
|
return runtimes;
|
|
120
120
|
};
|
|
121
121
|
const logCommitHash = () => [
|
|
@@ -206,4 +206,4 @@ const createReports = (features) => {
|
|
|
206
206
|
}
|
|
207
207
|
return reports;
|
|
208
208
|
};
|
|
209
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRzcGVjcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb250cmlidXRpb25zL3RlYW0tdHJhbnNwb3J0LXR3by9waXBlbGluZS9idWlsZHNwZWNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZEQUFzRDtBQUd0RCxNQUFNLHlCQUF5QixHQUFHLE9BQU8sQ0FBQztBQUMxQyxNQUFNLHFCQUFxQixHQUFHLHlDQUF5Qyx5QkFBeUIsRUFBRSxDQUFDO0FBRTVGLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxRQUEwQixFQUFhLEVBQUU7SUFDM0UsTUFBTSxHQUFHLEdBQTJDLEVBQUUsQ0FBQztJQUN2RCxNQUFNLGFBQWEsR0FBYSxFQUFFLENBQUM7SUFDbkMsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUEsaUNBQXlCLEdBQUUsQ0FBQyxDQUFDO0lBRW5ELEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHO1FBQ3ZCLFlBQVksRUFBRSxzQkFBc0I7UUFDcEMsZUFBZSxFQUFFLHlCQUF5QjtLQUMzQyxDQUFDO0lBRUYsSUFBSSxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDekIsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQy9FLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHO1lBQ3ZCLEdBQUcsR0FBRyxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRTtZQUMvQix5QkFBeUIsRUFBRSxtREFBbUQ7WUFDOUUsbUJBQW1CLEVBQUUsa0NBQWtDO1NBQ3hELENBQUM7SUFDSixDQUFDO0lBQ0QsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUM5QixHQUFHLENBQUMsaUJBQWlCLENBQUMsR0FBRztZQUN2QixHQUFHLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUU7WUFDL0IsOENB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c0NvbnRlbnQiOlsiaW1wb3J0IHsgQnVpbGRTcGVjIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNvZGVidWlsZCc7XG5pbXBvcnQgeyBQaXBlbGluZUZlYXR1cmVzIH0gZnJvbSAnLi9waXBlbGluZS1zdGFjayc7XG5cbmNvbnN0IFJJT19MSUNFTlNFX0NIRUNLX1ZFUlNJT04gPSAnMS4xLjEnO1xuY29uc3QgTElDRU5TRV9DSEVDS19DT01NQU5EID0gYG5weCAteSBAcmlvLWNsb3VkL3Jpby1saWNlbnNlLWNoZWNrZXJAJHtSSU9fTElDRU5TRV9DSEVDS19WRVJTSU9OfWA7XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVNYWluQnVpbGRTcGVjID0gKGZlYXR1cmVzOiBQaXBlbGluZUZlYXR1cmVzKTogQnVpbGRTcGVjID0+IHtcbiAgY29uc3QgZW52OiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiA9IHt9O1xuICBjb25zdCBidWlsZENvbW1hbmRzOiBzdHJpbmdbXSA9IFtdO1xuICBidWlsZENvbW1hbmRzLnB1c2goLi4uZXhwb3J0Q29tbWl0SGFzaEFzVmVyc2lvbigpKTtcblxuICBlbnZbJ3BhcmFtZXRlci1zdG9yZSddID0ge1xuICAgIEFDQ09VTlRfTkFNRTogJy9jb25maWcvYWNjb3VudC9uYW1lJyxcbiAgICBURUFNX0lERU5USUZJRVI6ICcvY29uZmlnL3RlYW0vaWRlbnRpZmllcicsXG4gIH07XG5cbiAgaWYgKGZlYXR1cmVzLmdyYWRsZUJ1aWxkKSB7XG4gICAgYnVpbGRDb21tYW5kcy5wdXNoKC4uLmdyYWRsZUJ1aWxkQ29tbWFuZHMoZmVhdHVyZXMua2Fma2FJbnRlZ3JhdGlvbiA/PyBmYWxzZSkpO1xuICAgIGVudlsncGFyYW1ldGVyLXN0b3JlJ10gPSB7XG4gICAgICAuLi5lbnZbJ3BhcmFtZXRlci1zdG9yZSddID8/IHt9LFxuICAgICAgU0VSVklDRV9LRVlTVE9SRV9QQVNTV09SRDogJy9jb25maWcvJHtTRVJWSUNFX05BTUV9L3NlcnZpY2Uta2V5c3RvcmUtcGFzc3dvcmQnLFxuICAgICAgTElDRU5TRV9CVUNLRVRfTkFNRTogJy9jb25maWcvb3NzLWxpY2Vuc2VzL2J1Y2tldC1uYW1lJyxcbiAgICB9O1xuICB9XG4gIGlmIChmZWF0dXJlcy5rYWZrYUludGVncmF0aW9uKSB7XG4gICAgZW52WydwYXJhbWV0ZXItc3RvcmUnXSA9IHtcbiAgICAgIC4uLmVudlsncGFyYW1ldGVyLXN0b3JlJ10gPz8ge30sXG4gICAgICBDUkVBVEVfQU5EX1NJR05fQ0VSVElGSUNBVEVfU0NSSVBUX1MzX0xPQ0FUSU9OOiAnL2NvbmZpZy9rYWZrYS1pbnRlZ3JhdGlvbi9jcmVhdGUtYW5kLXNpZ24tY2VydGlmaWNhdGUtc2NyaXB0LXMzLWxvY2F0aW9uJyxcbiAgICB9O1xuICB9XG4gIGlmIChmZWF0dXJlcy5ucG1CdWlsZCkge1xuICAgIGVudi52YXJpYWJsZXMgPSB7XG4gICAgICBDSTogJ3RydWUnLFxuICAgIH07XG4gICAgYnVpbGRDb21tYW5kcy5wdXNoKC4uLm5wbUJ1aWxkQ29tbWFuZHMoKSk7XG4gIH1cbiAgaWYgKGZlYXR1cmVzLmFkZGl0aW9uYWxCdWlsZENvbW1hbmRzKSB7XG4gICAgYnVpbGRDb21tYW5kcy5wdXNoKCcjIyMgQURESVRJT05BTCBCVUlMRCBDT01NQU5EUyAjIyMnLCAuLi5mZWF0dXJlcy5hZGRpdGlvbmFsQnVpbGRDb21tYW5kcyk7XG4gIH1cblxuICBidWlsZENvbW1hbmRzLnB1c2goLi4uaW5mcmFzdHJ1Y3R1cmVCdWlsZENvbW1hbmRzKCkpO1xuXG4gIHJldHVybiBCdWlsZFNwZWMuZnJvbU9iamVjdCh7XG4gICAgdmVyc2lvbjogJzAuMicsXG4gICAgZW52LFxuICAgIHBoYXNlczoge1xuICAgICAgaW5zdGFsbDoge1xuICAgICAgICAncnVudGltZS12ZXJzaW9ucyc6IGdldFJ1bnRpbWVzKGZlYXR1cmVzKSxcbiAgICAgIH0sXG4gICAgICBwcmVfYnVpbGQ6IHtcbiAgICAgICAgY29tbWFuZHM6IGxvZ0NvbW1pdEhhc2goKSxcbiAgICAgIH0sXG4gICAgICBidWlsZDoge1xuICAgICAgICBjb21tYW5kczogYnVpbGRDb21tYW5kcyxcbiAgICAgIH0sXG4gICAgICBwb3N0X2J1aWxkOiB7XG4gICAgICAgIGNvbW1hbmRzOiBsb2dDb21taXRIYXNoKCksXG4gICAgICB9LFxuICAgIH0sXG4gICAgcmVwb3J0czogY3JlYXRlUmVwb3J0cyhmZWF0dXJlcyksXG4gICAgY2FjaGU6IHtcbiAgICAgIHBhdGhzOiBjYWNoZVBhdGhzKCksXG4gICAgfSxcbiAgfSk7XG59O1xuXG5cbmV4cG9ydCBjb25zdCBjcmVhdGVWdWxuZXJhYmlsaXR5QnVpbGRTcGVjID0gKGZlYXR1cmVzOiBQaXBlbGluZUZlYXR1cmVzKSA9PiB7XG4gIGNvbnN0IGVudjogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4gPSB7fTtcbiAgY29uc3QgYnVpbGRDb21tYW5kczogc3RyaW5nW10gPSBbXTtcblxuICBpZiAoZmVhdHVyZXMuZ3JhZGxlQnVpbGQpIHtcbiAgICBlbnYudmFyaWFibGVzID0ge1xuICAgICAgTEFORzogJ0MuVVRGLTgnLFxuICAgIH07XG4gICAgZW52WydwYXJhbWV0ZXItc3RvcmUnXSA9IHtcbiAgICAgIE5JU1RfREFUQV9NSVJST1JfVVJMOiAnL2NvbmZpZy9uaXN0LWRhdGEtbWlycm9yL3VybCcsXG4gICAgfTtcbiAgICBidWlsZENvbW1hbmRzLnB1c2goLi4uW1xuICAgICAgJyMjIyBHUkFETEUgVlVMTkVSQUJJTElUWSBDSEVDSyAjIyMnLFxuICAgICAgJy4vZ3JhZGxldyAtRG9yZy5ncmFkbGUuanZtYXJncz0tWG14NGcgZGVwZW5kZW5jeUNoZWNrQW5hbHl6ZScsXG4gICAgXSk7XG4gIH1cbiAgaWYgKGZlYXR1cmVzLm5wbUJ1aWxkKSB7XG4gICAgYnVpbGRDb21tYW5kcy5wdXNoKC4uLltcbiAgICAgICcjIyMgTlBNIFZVTE5FUkFCSUxJVFkgQ0hFQ0sgIyMjJyxcbiAgICAgICducG0gYXVkaXQgLS1yZWdpc3RyeSBodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZyAtLWF1ZGl0LWxldmVsIG1vZGVyYXRlIC0tcGFyc2VhYmxlIC0tb21pdD1kZXYnLFxuICAgIF0pO1xuICB9XG4gIGJ1aWxkQ29tbWFuZHMucHVzaCguLi5bXG4gICAgJyMjIyBJTkZSQVNUUlVDVFVSRSBWVUxORVJBQklMSVRZIENIRUNLICMjIycsXG4gICAgJ2NkIGluZnJhc3RydWN0dXJlJyxcbiAgICAnbnBtIGF1ZGl0IC0tcmVnaXN0cnkgaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcgLS1hdWRpdC1sZXZlbCBtb2RlcmF0ZSAtLXBhcnNlYWJsZSAtLW9taXQ9ZGV2JyxcbiAgICAnY2QgLi4nLFxuICBdKTtcblxuICByZXR1cm4gQnVpbGRTcGVjLmZyb21PYmplY3Qoe1xuICAgIHZlcnNpb246ICcwLjInLFxuICAgIGVudixcbiAgICBwaGFzZXM6IHtcbiAgICAgIGluc3RhbGw6IHtcbiAgICAgICAgJ3J1bnRpbWUtdmVyc2lvbnMnOiBnZXRSdW50aW1lcyhmZWF0dXJlcyksXG4gICAgICB9LFxuICAgICAgcHJlX2J1aWxkOiB7XG4gICAgICAgIGNvbW1hbmRzOiBsb2dDb21taXRIYXNoKCksXG4gICAgICB9LFxuICAgICAgYnVpbGQ6IHtcbiAgICAgICAgY29tbWFuZHM6IGJ1aWxkQ29tbWFuZHMsXG4gICAgICB9LFxuICAgICAgcG9zdF9idWlsZDoge1xuICAgICAgICBjb21tYW5kczogbG9nQ29tbWl0SGFzaCgpLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGNhY2hlOiB7XG4gICAgICBwYXRoczogY2FjaGVQYXRoc1Z1bG5lcmFiaWxpdHkoKSxcbiAgICB9LFxuICB9KTtcbn07XG5cbmNvbnN0IGdldFJ1bnRpbWVzID0gKGZlYXR1cmVzOiBQaXBlbGluZUZlYXR1cmVzKSA9PiB7XG4gIGNvbnN0IHJ1bnRpbWVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gIGlmIChmZWF0dXJlcy5ncmFkbGVCdWlsZCkge1xuICAgIHJ1bnRpbWVzLmphdmEgPSAnY29ycmV0dG8xNyc7XG4gIH1cbiAgcnVudGltZXMubm9kZWpzID0gJzIwJztcbiAgcmV0dXJuIHJ1bnRpbWVzO1xufTtcblxuZXhwb3J0IGNvbnN0IGxvZ0NvbW1pdEhhc2ggPSAoKSA9PiBbXG4gICcoZWNobyBcIkJ1aWxkIHRyaWdnZXJlZCBieSBjb21taXQgXCIgJiYgZ2l0IGxvZyAtLXByZXR0eT1mb3JtYXQ6XCIlaCV4MDklYW4leDA5JXNcIiAtbiAxICkgfCB0ciAtZCBcIlxcXFxuXCInLFxuXTtcblxuZXhwb3J0IGNvbnN0IGV4cG9ydENvbW1pdEhhc2hBc1ZlcnNpb24gPSAoKSA9PiBbXG4gICdleHBvcnQgR0lUX1ZFUlNJT049JChnaXQgcmV2LXBhcnNlIEhFQUQpJyxcbl07XG5cbmNvbnN0IGluZnJhc3RydWN0dXJlQnVpbGRDb21tYW5kcyA9ICgpID0+IFtcbiAgJyMjIyBJTkZSQVNUUlVDVFVSRSBCVUlMRCAjIyMnLFxuICAnY2QgaW5mcmFzdHJ1Y3R1cmUnLFxuICAnbnBtIGNpJyxcbiAgYCR7TElDRU5TRV9DSEVDS19DT01NQU5EfSAtLXR5cGUgbnBtLWJhY2tlbmQgLS1hY2NvdW50LW5hbWUgXFwke0FDQ09VTlRfTkFNRX0gLS1zZXJ2aWNlLW5hbWUgXFwke1NFUlZJQ0VfTkFNRX0gLS11cGxvYWRgLFxuICAnbnBtIHJ1biBjZGsgc3ludGggMT4gL2Rldi9udWxsJyxcbiAgLy8gSW4gcGlwZWxpbmU6IEVycm9yIHBhcnNpbmcgcmVmZXJlbmNlOiBpcyBub3QgYSB2YWxpZCByZXBvc2l0b3J5L3RhZzogaW52YWxpZCByZWZlcmVuY2UgZm9ybWF0LlxuICAvLyB3b3JrYXJvdW5kIGR1ZSB0byBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvaXNzdWVzLzE4MDQ0JyxcbiAgJ2ZpbmQgLi8gLXR5cGUgZiAtbmFtZSBcIipEZXBsb3lBcHBsaWNhdGlvblN0YWNrcyouYXNzZXRzLmpzb25cIiAtcHJpbnQwIHwgeGFyZ3MgLS1uby1ydW4taWYtZW1wdHkgLTAgc2VkIC0taW4tcGxhY2UgXFwnc3xkb2NrZXIgbG9hZCAtaSBhc3NldC58ZG9ja2VyIGxvYWQgLWkgLi4vYXNzZXQufGdcXCcnLFxuICAnY2QgLi4nLFxuXTtcblxuY29uc3QgZ3JhZGxlQnVpbGRDb21tYW5kcyA9IChrYWZrYUludGVncmF0aW9uOiBib29sZWFuKSA9PiB7XG4gIGNvbnN0IGNvbW1hbmRzOiBzdHJpbmdbXSA9IFtdO1xuICBjb21tYW5kcy5wdXNoKC4uLltcbiAgICAnIyMjIEdSQURMRSBCVUlMRCAjIyMnLFxuICAgICcuL2dyYWRsZXcgY2xlYW4gYnVpbGQnLFxuICAgICcjIGxpY2Vuc2UgY2hlY2snLFxuICAgIGAke0xJQ0VOU0VfQ0hFQ0tfQ09NTUFORH0gLS10eXBlIGdyYWRsZSAtLWFjY291bnQtbmFtZSBcXCR7QUNDT1VOVF9OQU1FfSAtLXNlcnZpY2UtbmFtZSBcXCR7U0VSVklDRV9OQU1FfSAtLXVwbG9hZGAsXG4gICAgJyMgc2VsZiBzaWduZWQgY2VydGlmaWNhdGUnLFxuICAgICdzZXQgLXU7IGtleXRvb2wgLWdlbmtleSAtYWxpYXMgSW50ZXJuYWxTZXJ2aWNlQ2VydGlmaWNhdGUgLWtleWFsZyBSU0EgLWtleXN0b3JlIGNvbnRhaW5lcmZpbGVzL3NlcnZpY2Uta2V5c3RvcmUucDEyIC12YWxpZGl0eSAzNjUwIC1zdG9yZXR5cGUgUEtDUzEyIC1kbmFtZSBcIkNOPWludGVybmFsLnNlcnZpY2UuJHtTRVJWSUNFX05BTUV9LiR7SE9TVEVEX1pPTkV9LCBPVT1Mb2dpc3RpY3MsIE89UmlvLCBMPU11bmljaCwgU1Q9QlksIEM9REVcIiAta2V5cGFzcyAke1NFUlZJQ0VfS0VZU1RPUkVfUEFTU1dPUkR9IC1zdG9yZXBhc3MgJHtTRVJWSUNFX0tFWVNUT1JFX1BBU1NXT1JEfScsXG4gIF0pO1xuICBpZiAoa2Fma2FJbnRlZ3JhdGlvbikge1xuICAgIGNvbW1hbmRzLnB1c2goLi4uW1xuICAgICAgJyMga2Fma2EgY2VydGlmaWNhdGUnLFxuICAgICAgJ3NldCAtdTsgYXdzIHMzIGNwIC0tcXVpZXQgczM6Ly8ke0NSRUFURV9BTkRfU0lHTl9DRVJUSUZJQ0FURV9TQ1JJUFRfUzNfTE9DQVRJT059IGNyZWF0ZS1hbmQtc2lnbi1jZXJ0aWZpY2F0ZScsXG4gICAgICAnY2htb2QgK3ggY3JlYXRlLWFuZC1zaWduLWNlcnRpZmljYXRlJyxcbiAgICAgICdzZXQgLXU7IC4vY3JlYXRlLWFuZC1zaWduLWNlcnRpZmljYXRlIC0ta2V5c3RvcmUtcGFzc3dvcmQgJHtTRVJWSUNFX0tFWVNUT1JFX1BBU1NXT1JEfSAtLWZxZG4gJHtTRVJWSUNFX05BTUV9LiR7SE9TVEVEX1pPTkV9JyxcbiAgICAgICdjcCAvY2VydC9jZXJ0aWZpY2F0ZS5wMTIgY29udGFpbmVyZmlsZXMva2Fma2Eta2V5c3RvcmUucDEyJyxcbiAgICBdKTtcbiAgfVxuICBjb21tYW5kcy5wdXNoKC4uLltcbiAgICAnIyBkb2NrZXIgaW1hZ2UgYnVpbGQnLFxuICAgICcuL2dyYWRsZXcgamliQnVpbGRUYXIgLS1xdWlldCcsXG4gIF0pO1xuICByZXR1cm4gY29tbWFuZHM7XG59O1xuXG5jb25zdCBucG1CdWlsZENvbW1hbmRzID0gKCkgPT4gW1xuICAnIyMjIE5QTSBCVUlMRCAjIyMnLFxuICAnZXhwb3J0IFZJVEVfR0lUX1ZFUlNJT049JEdJVF9WRVJTSU9OJyxcbiAgJ2V4cG9ydCBWSVRFX0FXU19BQ0NPVU5UX0lEPSRBV1NfQUNDT1VOVF9JRCcsXG4gICdleHBvcnQgVklURV9BV1NfQUNDT1VOVF9OQU1FPSRBQ0NPVU5UX05BTUUnLFxuICAnZXhwb3J0IFZJVEVfU0VSVklDRV9OQU1FPSRTRVJWSUNFX05BTUUnLFxuICAnZXhwb3J0IFZJVEVfVEVBTV9JREVOVElGSUVSPSRURUFNX0lERU5USUZJRVInLFxuICAnbnBtIGNpJyxcbiAgJ25wbSBydW4gbGludCcsXG4gICducG0gcnVuIHRlc3Q6Y2knLFxuICBgJHtMSUNFTlNFX0NIRUNLX0NPTU1BTkR9IC0tdHlwZSBucG0tZnJvbnRlbmQgLS1hY2NvdW50LW5hbWUgXFwke0FDQ09VTlRfTkFNRX0gLS1zZXJ2aWNlLW5hbWUgXFwke1NFUlZJQ0VfTkFNRX0gLS11cGxvYWRgLFxuICAnbnBtIHJ1biBidWlsZCcsXG5dO1xuXG5jb25zdCBjYWNoZVBhdGhzID0gKCkgPT4gW1xuICAnL2NlcnQvKiovKicsXG4gICcvcm9vdC8uY2FjaGUvKiovKicsXG4gICcvcm9vdC8ubnBtLyoqLyonLFxuICAnL3Jvb3QvLmdyYWRsZS9jYWNoZXMvKiovKicsXG4gICcvcm9vdC8uZ3JhZGxlL3dyYXBwZXIvKiovKicsXG4gICcvcm9vdC9nb29nbGUtY2xvdWQtdG9vbHMtamF2YS9qaWIvKiovKicsXG4gICd0YXJnZXQvamliLWNhY2hlLyoqLyonLFxuXTtcblxuY29uc3QgY2FjaGVQYXRoc1Z1bG5lcmFiaWxpdHkgPSAoKSA9PiBbXG4gICcvcm9vdC8uY2FjaGUvKiovKicsXG4gICcvcm9vdC8uZ3JhZGxlL2NhY2hlcy8qKi8qJyxcbiAgJy9yb290Ly5ncmFkbGUvd3JhcHBlci8qKi8qJyxcbiAgJy9yb290Ly5ncmFkbGUvZGVwZW5kZW5jeS1jaGVjay1kYXRhLyoqLyonLFxuXTtcblxuY29uc3QgY3JlYXRlUmVwb3J0cyA9IChmZWF0dXJlczogUGlwZWxpbmVGZWF0dXJlcykgPT4ge1xuICBjb25zdCByZXBvcnRzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG4gIGlmIChmZWF0dXJlcy5ncmFkbGVCdWlsZCkge1xuICAgIHJlcG9ydHMuR3JhZGxlQnVpbGRUZXN0UmVzdWx0cyA9IHtcbiAgICAgICdmaWxlcyc6IFsnKiovKiddLFxuICAgICAgJ2Jhc2UtZGlyZWN0b3J5JzogJ2J1aWxkL3Rlc3QtcmVzdWx0cycsXG4gICAgfTtcbiAgfVxuICBpZiAoZmVhdHVyZXMubnBtQnVpbGQpIHtcbiAgICByZXBvcnRzLk5wbUJ1aWxkVGVzdFJlc3VsdHMgPSB7XG4gICAgICAnZmlsZXMnOiBbJyoqLyonXSxcbiAgICAgICdiYXNlLWRpcmVjdG9yeSc6ICdyZXN1bHRzJyxcbiAgICB9O1xuICB9XG4gIHJldHVybiByZXBvcnRzO1xufTtcbiJdfQ==
|
|
209
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRzcGVjcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb250cmlidXRpb25zL3RlYW0tdHJhbnNwb3J0LXR3by9waXBlbGluZS9idWlsZHNwZWNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZEQUFzRDtBQUd0RCxNQUFNLHlCQUF5QixHQUFHLE9BQU8sQ0FBQztBQUMxQyxNQUFNLHFCQUFxQixHQUFHLHlDQUF5Qyx5QkFBeUIsRUFBRSxDQUFDO0FBRTVGLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxRQUEwQixFQUFhLEVBQUU7SUFDM0UsTUFBTSxHQUFHLEdBQTJDLEVBQUUsQ0FBQztJQUN2RCxNQUFNLGFBQWEsR0FBYSxFQUFFLENBQUM7SUFDbkMsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUEsaUNBQXlCLEdBQUUsQ0FBQyxDQUFDO0lBRW5ELEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHO1FBQ3ZCLFlBQVksRUFBRSxzQkFBc0I7UUFDcEMsZUFBZSxFQUFFLHlCQUF5QjtLQUMzQyxDQUFDO0lBRUYsSUFBSSxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDekIsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQy9FLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHO1lBQ3ZCLEdBQUcsR0FBRyxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRTtZQUMvQix5QkFBeUIsRUFBRSxtREFBbUQ7WUFDOUUsbUJBQW1CLEVBQUUsa0NBQWtDO1NBQ3hELENBQUM7SUFDSixDQUFDO0lBQ0QsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUM5QixHQUFHLENBQUMsaUJBQWlCLENBQUMsR0FBRztZQUN2QixHQUFHLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUU7WUFDL0IsOENB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c0NvbnRlbnQiOlsiaW1wb3J0IHsgQnVpbGRTcGVjIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNvZGVidWlsZCc7XG5pbXBvcnQgeyBQaXBlbGluZUZlYXR1cmVzIH0gZnJvbSAnLi9waXBlbGluZS1zdGFjayc7XG5cbmNvbnN0IFJJT19MSUNFTlNFX0NIRUNLX1ZFUlNJT04gPSAnMS4xLjEnO1xuY29uc3QgTElDRU5TRV9DSEVDS19DT01NQU5EID0gYG5weCAteSBAcmlvLWNsb3VkL3Jpby1saWNlbnNlLWNoZWNrZXJAJHtSSU9fTElDRU5TRV9DSEVDS19WRVJTSU9OfWA7XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVNYWluQnVpbGRTcGVjID0gKGZlYXR1cmVzOiBQaXBlbGluZUZlYXR1cmVzKTogQnVpbGRTcGVjID0+IHtcbiAgY29uc3QgZW52OiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiA9IHt9O1xuICBjb25zdCBidWlsZENvbW1hbmRzOiBzdHJpbmdbXSA9IFtdO1xuICBidWlsZENvbW1hbmRzLnB1c2goLi4uZXhwb3J0Q29tbWl0SGFzaEFzVmVyc2lvbigpKTtcblxuICBlbnZbJ3BhcmFtZXRlci1zdG9yZSddID0ge1xuICAgIEFDQ09VTlRfTkFNRTogJy9jb25maWcvYWNjb3VudC9uYW1lJyxcbiAgICBURUFNX0lERU5USUZJRVI6ICcvY29uZmlnL3RlYW0vaWRlbnRpZmllcicsXG4gIH07XG5cbiAgaWYgKGZlYXR1cmVzLmdyYWRsZUJ1aWxkKSB7XG4gICAgYnVpbGRDb21tYW5kcy5wdXNoKC4uLmdyYWRsZUJ1aWxkQ29tbWFuZHMoZmVhdHVyZXMua2Fma2FJbnRlZ3JhdGlvbiA/PyBmYWxzZSkpO1xuICAgIGVudlsncGFyYW1ldGVyLXN0b3JlJ10gPSB7XG4gICAgICAuLi5lbnZbJ3BhcmFtZXRlci1zdG9yZSddID8/IHt9LFxuICAgICAgU0VSVklDRV9LRVlTVE9SRV9QQVNTV09SRDogJy9jb25maWcvJHtTRVJWSUNFX05BTUV9L3NlcnZpY2Uta2V5c3RvcmUtcGFzc3dvcmQnLFxuICAgICAgTElDRU5TRV9CVUNLRVRfTkFNRTogJy9jb25maWcvb3NzLWxpY2Vuc2VzL2J1Y2tldC1uYW1lJyxcbiAgICB9O1xuICB9XG4gIGlmIChmZWF0dXJlcy5rYWZrYUludGVncmF0aW9uKSB7XG4gICAgZW52WydwYXJhbWV0ZXItc3RvcmUnXSA9IHtcbiAgICAgIC4uLmVudlsncGFyYW1ldGVyLXN0b3JlJ10gPz8ge30sXG4gICAgICBDUkVBVEVfQU5EX1NJR05fQ0VSVElGSUNBVEVfU0NSSVBUX1MzX0xPQ0FUSU9OOiAnL2NvbmZpZy9rYWZrYS1pbnRlZ3JhdGlvbi9jcmVhdGUtYW5kLXNpZ24tY2VydGlmaWNhdGUtc2NyaXB0LXMzLWxvY2F0aW9uJyxcbiAgICB9O1xuICB9XG4gIGlmIChmZWF0dXJlcy5ucG1CdWlsZCkge1xuICAgIGVudi52YXJpYWJsZXMgPSB7XG4gICAgICBDSTogJ3RydWUnLFxuICAgIH07XG4gICAgYnVpbGRDb21tYW5kcy5wdXNoKC4uLm5wbUJ1aWxkQ29tbWFuZHMoKSk7XG4gIH1cbiAgaWYgKGZlYXR1cmVzLmFkZGl0aW9uYWxCdWlsZENvbW1hbmRzKSB7XG4gICAgYnVpbGRDb21tYW5kcy5wdXNoKCcjIyMgQURESVRJT05BTCBCVUlMRCBDT01NQU5EUyAjIyMnLCAuLi5mZWF0dXJlcy5hZGRpdGlvbmFsQnVpbGRDb21tYW5kcyk7XG4gIH1cblxuICBidWlsZENvbW1hbmRzLnB1c2goLi4uaW5mcmFzdHJ1Y3R1cmVCdWlsZENvbW1hbmRzKCkpO1xuXG4gIHJldHVybiBCdWlsZFNwZWMuZnJvbU9iamVjdCh7XG4gICAgdmVyc2lvbjogJzAuMicsXG4gICAgZW52LFxuICAgIHBoYXNlczoge1xuICAgICAgaW5zdGFsbDoge1xuICAgICAgICAncnVudGltZS12ZXJzaW9ucyc6IGdldFJ1bnRpbWVzKGZlYXR1cmVzKSxcbiAgICAgIH0sXG4gICAgICBwcmVfYnVpbGQ6IHtcbiAgICAgICAgY29tbWFuZHM6IGxvZ0NvbW1pdEhhc2goKSxcbiAgICAgIH0sXG4gICAgICBidWlsZDoge1xuICAgICAgICBjb21tYW5kczogYnVpbGRDb21tYW5kcyxcbiAgICAgIH0sXG4gICAgICBwb3N0X2J1aWxkOiB7XG4gICAgICAgIGNvbW1hbmRzOiBsb2dDb21taXRIYXNoKCksXG4gICAgICB9LFxuICAgIH0sXG4gICAgcmVwb3J0czogY3JlYXRlUmVwb3J0cyhmZWF0dXJlcyksXG4gICAgY2FjaGU6IHtcbiAgICAgIHBhdGhzOiBjYWNoZVBhdGhzKCksXG4gICAgfSxcbiAgfSk7XG59O1xuXG5cbmV4cG9ydCBjb25zdCBjcmVhdGVWdWxuZXJhYmlsaXR5QnVpbGRTcGVjID0gKGZlYXR1cmVzOiBQaXBlbGluZUZlYXR1cmVzKSA9PiB7XG4gIGNvbnN0IGVudjogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4gPSB7fTtcbiAgY29uc3QgYnVpbGRDb21tYW5kczogc3RyaW5nW10gPSBbXTtcblxuICBpZiAoZmVhdHVyZXMuZ3JhZGxlQnVpbGQpIHtcbiAgICBlbnYudmFyaWFibGVzID0ge1xuICAgICAgTEFORzogJ0MuVVRGLTgnLFxuICAgIH07XG4gICAgZW52WydwYXJhbWV0ZXItc3RvcmUnXSA9IHtcbiAgICAgIE5JU1RfREFUQV9NSVJST1JfVVJMOiAnL2NvbmZpZy9uaXN0LWRhdGEtbWlycm9yL3VybCcsXG4gICAgfTtcbiAgICBidWlsZENvbW1hbmRzLnB1c2goLi4uW1xuICAgICAgJyMjIyBHUkFETEUgVlVMTkVSQUJJTElUWSBDSEVDSyAjIyMnLFxuICAgICAgJy4vZ3JhZGxldyAtRG9yZy5ncmFkbGUuanZtYXJncz0tWG14NGcgZGVwZW5kZW5jeUNoZWNrQW5hbHl6ZScsXG4gICAgXSk7XG4gIH1cbiAgaWYgKGZlYXR1cmVzLm5wbUJ1aWxkKSB7XG4gICAgYnVpbGRDb21tYW5kcy5wdXNoKC4uLltcbiAgICAgICcjIyMgTlBNIFZVTE5FUkFCSUxJVFkgQ0hFQ0sgIyMjJyxcbiAgICAgICducG0gYXVkaXQgLS1yZWdpc3RyeSBodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZyAtLWF1ZGl0LWxldmVsIG1vZGVyYXRlIC0tcGFyc2VhYmxlIC0tb21pdD1kZXYnLFxuICAgIF0pO1xuICB9XG4gIGJ1aWxkQ29tbWFuZHMucHVzaCguLi5bXG4gICAgJyMjIyBJTkZSQVNUUlVDVFVSRSBWVUxORVJBQklMSVRZIENIRUNLICMjIycsXG4gICAgJ2NkIGluZnJhc3RydWN0dXJlJyxcbiAgICAnbnBtIGF1ZGl0IC0tcmVnaXN0cnkgaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcgLS1hdWRpdC1sZXZlbCBtb2RlcmF0ZSAtLXBhcnNlYWJsZSAtLW9taXQ9ZGV2JyxcbiAgICAnY2QgLi4nLFxuICBdKTtcblxuICByZXR1cm4gQnVpbGRTcGVjLmZyb21PYmplY3Qoe1xuICAgIHZlcnNpb246ICcwLjInLFxuICAgIGVudixcbiAgICBwaGFzZXM6IHtcbiAgICAgIGluc3RhbGw6IHtcbiAgICAgICAgJ3J1bnRpbWUtdmVyc2lvbnMnOiBnZXRSdW50aW1lcyhmZWF0dXJlcyksXG4gICAgICB9LFxuICAgICAgcHJlX2J1aWxkOiB7XG4gICAgICAgIGNvbW1hbmRzOiBsb2dDb21taXRIYXNoKCksXG4gICAgICB9LFxuICAgICAgYnVpbGQ6IHtcbiAgICAgICAgY29tbWFuZHM6IGJ1aWxkQ29tbWFuZHMsXG4gICAgICB9LFxuICAgICAgcG9zdF9idWlsZDoge1xuICAgICAgICBjb21tYW5kczogbG9nQ29tbWl0SGFzaCgpLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGNhY2hlOiB7XG4gICAgICBwYXRoczogY2FjaGVQYXRoc1Z1bG5lcmFiaWxpdHkoKSxcbiAgICB9LFxuICB9KTtcbn07XG5cbmNvbnN0IGdldFJ1bnRpbWVzID0gKGZlYXR1cmVzOiBQaXBlbGluZUZlYXR1cmVzKSA9PiB7XG4gIGNvbnN0IHJ1bnRpbWVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gIGlmIChmZWF0dXJlcy5ncmFkbGVCdWlsZCkge1xuICAgIHJ1bnRpbWVzLmphdmEgPSAnY29ycmV0dG8yMSc7XG4gIH1cbiAgcnVudGltZXMubm9kZWpzID0gJzIyJztcbiAgcmV0dXJuIHJ1bnRpbWVzO1xufTtcblxuZXhwb3J0IGNvbnN0IGxvZ0NvbW1pdEhhc2ggPSAoKSA9PiBbXG4gICcoZWNobyBcIkJ1aWxkIHRyaWdnZXJlZCBieSBjb21taXQgXCIgJiYgZ2l0IGxvZyAtLXByZXR0eT1mb3JtYXQ6XCIlaCV4MDklYW4leDA5JXNcIiAtbiAxICkgfCB0ciAtZCBcIlxcXFxuXCInLFxuXTtcblxuZXhwb3J0IGNvbnN0IGV4cG9ydENvbW1pdEhhc2hBc1ZlcnNpb24gPSAoKSA9PiBbXG4gICdleHBvcnQgR0lUX1ZFUlNJT049JChnaXQgcmV2LXBhcnNlIEhFQUQpJyxcbl07XG5cbmNvbnN0IGluZnJhc3RydWN0dXJlQnVpbGRDb21tYW5kcyA9ICgpID0+IFtcbiAgJyMjIyBJTkZSQVNUUlVDVFVSRSBCVUlMRCAjIyMnLFxuICAnY2QgaW5mcmFzdHJ1Y3R1cmUnLFxuICAnbnBtIGNpJyxcbiAgYCR7TElDRU5TRV9DSEVDS19DT01NQU5EfSAtLXR5cGUgbnBtLWJhY2tlbmQgLS1hY2NvdW50LW5hbWUgXFwke0FDQ09VTlRfTkFNRX0gLS1zZXJ2aWNlLW5hbWUgXFwke1NFUlZJQ0VfTkFNRX0gLS11cGxvYWRgLFxuICAnbnBtIHJ1biBjZGsgc3ludGggMT4gL2Rldi9udWxsJyxcbiAgLy8gSW4gcGlwZWxpbmU6IEVycm9yIHBhcnNpbmcgcmVmZXJlbmNlOiBpcyBub3QgYSB2YWxpZCByZXBvc2l0b3J5L3RhZzogaW52YWxpZCByZWZlcmVuY2UgZm9ybWF0LlxuICAvLyB3b3JrYXJvdW5kIGR1ZSB0byBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvaXNzdWVzLzE4MDQ0JyxcbiAgJ2ZpbmQgLi8gLXR5cGUgZiAtbmFtZSBcIipEZXBsb3lBcHBsaWNhdGlvblN0YWNrcyouYXNzZXRzLmpzb25cIiAtcHJpbnQwIHwgeGFyZ3MgLS1uby1ydW4taWYtZW1wdHkgLTAgc2VkIC0taW4tcGxhY2UgXFwnc3xkb2NrZXIgbG9hZCAtaSBhc3NldC58ZG9ja2VyIGxvYWQgLWkgLi4vYXNzZXQufGdcXCcnLFxuICAnY2QgLi4nLFxuXTtcblxuY29uc3QgZ3JhZGxlQnVpbGRDb21tYW5kcyA9IChrYWZrYUludGVncmF0aW9uOiBib29sZWFuKSA9PiB7XG4gIGNvbnN0IGNvbW1hbmRzOiBzdHJpbmdbXSA9IFtdO1xuICBjb21tYW5kcy5wdXNoKC4uLltcbiAgICAnIyMjIEdSQURMRSBCVUlMRCAjIyMnLFxuICAgICcuL2dyYWRsZXcgY2xlYW4gYnVpbGQnLFxuICAgICcjIGxpY2Vuc2UgY2hlY2snLFxuICAgIGAke0xJQ0VOU0VfQ0hFQ0tfQ09NTUFORH0gLS10eXBlIGdyYWRsZSAtLWFjY291bnQtbmFtZSBcXCR7QUNDT1VOVF9OQU1FfSAtLXNlcnZpY2UtbmFtZSBcXCR7U0VSVklDRV9OQU1FfSAtLXVwbG9hZGAsXG4gICAgJyMgc2VsZiBzaWduZWQgY2VydGlmaWNhdGUnLFxuICAgICdzZXQgLXU7IGtleXRvb2wgLWdlbmtleSAtYWxpYXMgSW50ZXJuYWxTZXJ2aWNlQ2VydGlmaWNhdGUgLWtleWFsZyBSU0EgLWtleXN0b3JlIGNvbnRhaW5lcmZpbGVzL3NlcnZpY2Uta2V5c3RvcmUucDEyIC12YWxpZGl0eSAzNjUwIC1zdG9yZXR5cGUgUEtDUzEyIC1kbmFtZSBcIkNOPWludGVybmFsLnNlcnZpY2UuJHtTRVJWSUNFX05BTUV9LiR7SE9TVEVEX1pPTkV9LCBPVT1Mb2dpc3RpY3MsIE89UmlvLCBMPU11bmljaCwgU1Q9QlksIEM9REVcIiAta2V5cGFzcyAke1NFUlZJQ0VfS0VZU1RPUkVfUEFTU1dPUkR9IC1zdG9yZXBhc3MgJHtTRVJWSUNFX0tFWVNUT1JFX1BBU1NXT1JEfScsXG4gIF0pO1xuICBpZiAoa2Fma2FJbnRlZ3JhdGlvbikge1xuICAgIGNvbW1hbmRzLnB1c2goLi4uW1xuICAgICAgJyMga2Fma2EgY2VydGlmaWNhdGUnLFxuICAgICAgJ3NldCAtdTsgYXdzIHMzIGNwIC0tcXVpZXQgczM6Ly8ke0NSRUFURV9BTkRfU0lHTl9DRVJUSUZJQ0FURV9TQ1JJUFRfUzNfTE9DQVRJT059IGNyZWF0ZS1hbmQtc2lnbi1jZXJ0aWZpY2F0ZScsXG4gICAgICAnY2htb2QgK3ggY3JlYXRlLWFuZC1zaWduLWNlcnRpZmljYXRlJyxcbiAgICAgICdzZXQgLXU7IC4vY3JlYXRlLWFuZC1zaWduLWNlcnRpZmljYXRlIC0ta2V5c3RvcmUtcGFzc3dvcmQgJHtTRVJWSUNFX0tFWVNUT1JFX1BBU1NXT1JEfSAtLWZxZG4gJHtTRVJWSUNFX05BTUV9LiR7SE9TVEVEX1pPTkV9JyxcbiAgICAgICdjcCAvY2VydC9jZXJ0aWZpY2F0ZS5wMTIgY29udGFpbmVyZmlsZXMva2Fma2Eta2V5c3RvcmUucDEyJyxcbiAgICBdKTtcbiAgfVxuICBjb21tYW5kcy5wdXNoKC4uLltcbiAgICAnIyBkb2NrZXIgaW1hZ2UgYnVpbGQnLFxuICAgICcuL2dyYWRsZXcgamliQnVpbGRUYXIgLS1xdWlldCcsXG4gIF0pO1xuICByZXR1cm4gY29tbWFuZHM7XG59O1xuXG5jb25zdCBucG1CdWlsZENvbW1hbmRzID0gKCkgPT4gW1xuICAnIyMjIE5QTSBCVUlMRCAjIyMnLFxuICAnZXhwb3J0IFZJVEVfR0lUX1ZFUlNJT049JEdJVF9WRVJTSU9OJyxcbiAgJ2V4cG9ydCBWSVRFX0FXU19BQ0NPVU5UX0lEPSRBV1NfQUNDT1VOVF9JRCcsXG4gICdleHBvcnQgVklURV9BV1NfQUNDT1VOVF9OQU1FPSRBQ0NPVU5UX05BTUUnLFxuICAnZXhwb3J0IFZJVEVfU0VSVklDRV9OQU1FPSRTRVJWSUNFX05BTUUnLFxuICAnZXhwb3J0IFZJVEVfVEVBTV9JREVOVElGSUVSPSRURUFNX0lERU5USUZJRVInLFxuICAnbnBtIGNpJyxcbiAgJ25wbSBydW4gbGludCcsXG4gICducG0gcnVuIHRlc3Q6Y2knLFxuICBgJHtMSUNFTlNFX0NIRUNLX0NPTU1BTkR9IC0tdHlwZSBucG0tZnJvbnRlbmQgLS1hY2NvdW50LW5hbWUgXFwke0FDQ09VTlRfTkFNRX0gLS1zZXJ2aWNlLW5hbWUgXFwke1NFUlZJQ0VfTkFNRX0gLS11cGxvYWRgLFxuICAnbnBtIHJ1biBidWlsZCcsXG5dO1xuXG5jb25zdCBjYWNoZVBhdGhzID0gKCkgPT4gW1xuICAnL2NlcnQvKiovKicsXG4gICcvcm9vdC8uY2FjaGUvKiovKicsXG4gICcvcm9vdC8ubnBtLyoqLyonLFxuICAnL3Jvb3QvLmdyYWRsZS9jYWNoZXMvKiovKicsXG4gICcvcm9vdC8uZ3JhZGxlL3dyYXBwZXIvKiovKicsXG4gICcvcm9vdC9nb29nbGUtY2xvdWQtdG9vbHMtamF2YS9qaWIvKiovKicsXG4gICd0YXJnZXQvamliLWNhY2hlLyoqLyonLFxuXTtcblxuY29uc3QgY2FjaGVQYXRoc1Z1bG5lcmFiaWxpdHkgPSAoKSA9PiBbXG4gICcvcm9vdC8uY2FjaGUvKiovKicsXG4gICcvcm9vdC8uZ3JhZGxlL2NhY2hlcy8qKi8qJyxcbiAgJy9yb290Ly5ncmFkbGUvd3JhcHBlci8qKi8qJyxcbiAgJy9yb290Ly5ncmFkbGUvZGVwZW5kZW5jeS1jaGVjay1kYXRhLyoqLyonLFxuXTtcblxuY29uc3QgY3JlYXRlUmVwb3J0cyA9IChmZWF0dXJlczogUGlwZWxpbmVGZWF0dXJlcykgPT4ge1xuICBjb25zdCByZXBvcnRzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG4gIGlmIChmZWF0dXJlcy5ncmFkbGVCdWlsZCkge1xuICAgIHJlcG9ydHMuR3JhZGxlQnVpbGRUZXN0UmVzdWx0cyA9IHtcbiAgICAgICdmaWxlcyc6IFsnKiovKiddLFxuICAgICAgJ2Jhc2UtZGlyZWN0b3J5JzogJ2J1aWxkL3Rlc3QtcmVzdWx0cycsXG4gICAgfTtcbiAgfVxuICBpZiAoZmVhdHVyZXMubnBtQnVpbGQpIHtcbiAgICByZXBvcnRzLk5wbUJ1aWxkVGVzdFJlc3VsdHMgPSB7XG4gICAgICAnZmlsZXMnOiBbJyoqLyonXSxcbiAgICAgICdiYXNlLWRpcmVjdG9yeSc6ICdyZXN1bHRzJyxcbiAgICB9O1xuICB9XG4gIHJldHVybiByZXBvcnRzO1xufTtcbiJdfQ==
|
|
@@ -233,6 +233,7 @@ export declare class PipelineStack extends Stack {
|
|
|
233
233
|
private readonly _features;
|
|
234
234
|
private readonly _mainCodeBuildProject;
|
|
235
235
|
private readonly _branchCodeBuildProject;
|
|
236
|
+
private readonly _vulnerabilityCodeBuildProject;
|
|
236
237
|
private readonly _bucket;
|
|
237
238
|
private readonly _cacheBucket;
|
|
238
239
|
private readonly _hostedZone;
|
|
@@ -248,8 +249,12 @@ export declare class PipelineStack extends Stack {
|
|
|
248
249
|
constructor(scope: Construct, id: string, props: PipelineStackProps);
|
|
249
250
|
get mainCodebuildProject(): pipelines.CodeBuildStep;
|
|
250
251
|
get branchCodeBuildProject(): CodeBuildStep;
|
|
252
|
+
get vulnerabilityCodeBuildProject(): CodeBuildStep;
|
|
251
253
|
private parseFeatures;
|
|
252
254
|
private createRioCodeBuildProject;
|
|
255
|
+
private createMainCodeBuildProject;
|
|
256
|
+
private createBranchCodeBuildProject;
|
|
257
|
+
private createVulnerabilityBuildProject;
|
|
253
258
|
private addMainPipeline;
|
|
254
259
|
private addBranchPipeline;
|
|
255
260
|
private addVulnerabilityPipeline;
|