cdk8s-plus-31 2.2.1 → 2.2.3
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 +106 -106
- package/lib/api-resource.js +2 -2
- package/lib/base.js +2 -2
- package/lib/config-map.js +1 -1
- package/lib/container.js +7 -7
- package/lib/cron-job.js +1 -1
- package/lib/daemon-set.js +1 -1
- package/lib/deployment.js +3 -3
- package/lib/handler.js +1 -1
- package/lib/horizontal-pod-autoscaler.js +4 -4
- package/lib/imports/k8s.js +641 -641
- package/lib/ingress.js +2 -2
- package/lib/job.js +1 -1
- package/lib/namespace.js +2 -2
- package/lib/network-policy.js +3 -3
- package/lib/pod.js +17 -17
- package/lib/probe.js +2 -2
- package/lib/pv.js +4 -4
- package/lib/pvc.js +2 -2
- package/lib/role-binding.js +4 -4
- package/lib/role.js +2 -2
- package/lib/secret.js +6 -6
- package/lib/service-account.js +1 -1
- package/lib/service.js +2 -2
- package/lib/stateful-set.js +2 -2
- package/lib/volume.js +2 -2
- package/lib/workload.js +2 -2
- package/package.json +5 -5
package/lib/deployment.js
CHANGED
|
@@ -145,7 +145,7 @@ class Deployment extends workload.Workload {
|
|
|
145
145
|
}
|
|
146
146
|
exports.Deployment = Deployment;
|
|
147
147
|
_a = JSII_RTTI_SYMBOL_1;
|
|
148
|
-
Deployment[_a] = { fqn: "cdk8s-plus-31.Deployment", version: "2.2.
|
|
148
|
+
Deployment[_a] = { fqn: "cdk8s-plus-31.Deployment", version: "2.2.3" };
|
|
149
149
|
/**
|
|
150
150
|
* Union like class repsenting either a ration in
|
|
151
151
|
* percents or an absolute number.
|
|
@@ -172,7 +172,7 @@ class PercentOrAbsolute {
|
|
|
172
172
|
}
|
|
173
173
|
exports.PercentOrAbsolute = PercentOrAbsolute;
|
|
174
174
|
_b = JSII_RTTI_SYMBOL_1;
|
|
175
|
-
PercentOrAbsolute[_b] = { fqn: "cdk8s-plus-31.PercentOrAbsolute", version: "2.2.
|
|
175
|
+
PercentOrAbsolute[_b] = { fqn: "cdk8s-plus-31.PercentOrAbsolute", version: "2.2.3" };
|
|
176
176
|
/**
|
|
177
177
|
* Deployment strategies.
|
|
178
178
|
*/
|
|
@@ -210,5 +210,5 @@ class DeploymentStrategy {
|
|
|
210
210
|
}
|
|
211
211
|
exports.DeploymentStrategy = DeploymentStrategy;
|
|
212
212
|
_c = JSII_RTTI_SYMBOL_1;
|
|
213
|
-
DeploymentStrategy[_c] = { fqn: "cdk8s-plus-31.DeploymentStrategy", version: "2.2.
|
|
213
|
+
DeploymentStrategy[_c] = { fqn: "cdk8s-plus-31.DeploymentStrategy", version: "2.2.3" };
|
|
214
214
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95bWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9kZXBsb3ltZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsaUNBQWtEO0FBRWxELHlDQUF5QztBQUV6QyxxQ0FBcUM7QUFFckMscUNBQXFDO0FBQ3JDLHVDQUF1QztBQWdGdkM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMEJHO0FBQ0gsTUFBYSxVQUFXLFNBQVEsUUFBUSxDQUFDLFFBQVE7SUFnQy9DLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsUUFBeUIsRUFBRTtRQUNuRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUxWLGlCQUFZLEdBQUcsYUFBYSxDQUFDO1FBRXRDLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBSzNCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxHQUFHLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDeEQsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO1lBQ3hCLElBQUksRUFBRSxZQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1NBQ2xELENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsSUFBSSxnQkFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLGdCQUFnQixJQUFJLGdCQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXhFLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQztZQUNuRSxNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1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QUFDLENBQUM7UUFDN0UsQ0FBQztRQUVELE9BQU8sSUFBSSxrQkFBa0IsQ0FBQztZQUM1QixJQUFJLEVBQUUsZUFBZTtZQUNyQixhQUFhLEVBQUUsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFO1NBQzVDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxZQUFxQyxRQUFnQztRQUFoQyxhQUFRLEdBQVIsUUFBUSxDQUF3QjtJQUFHLENBQUM7SUFFekU7O09BRUc7SUFDSSxPQUFPO1FBQ1osT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7O0FBbkNILGdEQXFDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwaU9iamVjdCwgTGF6eSwgRHVyYXRpb24gfSBmcm9tICdjZGs4cyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCAqIGFzIGNvbnRhaW5lciBmcm9tICcuL2NvbnRhaW5lcic7XG5pbXBvcnQgeyBJU2NhbGFibGUsIFNjYWxpbmdUYXJnZXQgfSBmcm9tICcuL2hvcml6b250YWwtcG9kLWF1dG9zY2FsZXInO1xuaW1wb3J0ICogYXMgazhzIGZyb20gJy4vaW1wb3J0cy9rOHMnO1xuaW1wb3J0ICogYXMgaW5ncmVzcyBmcm9tICcuL2luZ3Jlc3MnO1xuaW1wb3J0ICogYXMgc2VydmljZSBmcm9tICcuL3NlcnZpY2UnO1xuaW1wb3J0ICogYXMgd29ya2xvYWQgZnJvbSAnLi93b3JrbG9hZCc7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYERlcGxveW1lbnRgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlcGxveW1lbnRQcm9wcyBleHRlbmRzIHdvcmtsb2FkLldvcmtsb2FkUHJvcHMge1xuXG4gIC8qKlxuICAgKiBOdW1iZXIgb2YgZGVzaXJlZCBwb2RzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAyXG4gICAqL1xuICByZWFkb25seSByZXBsaWNhcz86IG51bWJlcjtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBzdHJhdGVneSB1c2VkIHRvIHJlcGxhY2Ugb2xkIFBvZHMgYnkgbmV3IG9uZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gUm9sbGluZ1VwZGF0ZSB3aXRoIG1heFN1cmdlIGFuZCBtYXhVbmF2YWlsYWJsZSBzZXQgdG8gMjUlLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RyYXRlZ3k/OiBEZXBsb3ltZW50U3RyYXRlZ3k7XG5cbiAgLyoqXG4gICAqIE1pbmltdW0gZHVyYXRpb24gZm9yIHdoaWNoIGEgbmV3bHkgY3JlYXRlZCBwb2Qgc2hvdWxkIGJlIHJlYWR5IHdpdGhvdXRcbiAgICogYW55IG9mIGl0cyBjb250YWluZXIgY3Jhc2hpbmcsIGZvciBpdCB0byBiZSBjb25zaWRlcmVkIGF2YWlsYWJsZS5cbiAgICpcbiAgICogWmVybyBtZWFucyB0aGUgcG9kIHdpbGwgYmUgY29uc2lkZXJlZCBhdmFpbGFibGUgYXMgc29vbiBhcyBpdCBpcyByZWFkeS5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy93b3JrbG9hZHMvY29udHJvbGxlcnMvZGVwbG95bWVudC8jbWluLXJlYWR5LXNlY29uZHNcbiAgICogQGRlZmF1bHQgRHVyYXRpb24uc2Vjb25kcygwKVxuICAgKi9cbiAgcmVhZG9ubHkgbWluUmVhZHk/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIG1heGltdW0gZHVyYXRpb24gZm9yIGEgZGVwbG95bWVudCB0byBtYWtlIHByb2dyZXNzIGJlZm9yZSBpdFxuICAgKiBpcyBjb25zaWRlcmVkIHRvIGJlIGZhaWxlZC4gVGhlIGRlcGxveW1lbnQgY29udHJvbGxlciB3aWxsIGNvbnRpbnVlXG4gICAqIHRvIHByb2Nlc3MgZmFpbGVkIGRlcGxveW1lbnRzIGFuZCBhIGNvbmRpdGlvbiB3aXRoIGEgUHJvZ3Jlc3NEZWFkbGluZUV4Y2VlZGVkXG4gICAqIHJlYXNvbiB3aWxsIGJlIHN1cmZhY2VkIGluIHRoZSBkZXBsb3ltZW50IHN0YXR1cy5cbiAgICpcbiAgICogTm90ZSB0aGF0IHByb2dyZXNzIHdpbGwgbm90IGJlIGVzdGltYXRlZCBkdXJpbmcgdGhlIHRpbWUgYSBkZXBsb3ltZW50IGlzIHBhdXNlZC5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy93b3JrbG9hZHMvY29udHJvbGxlcnMvZGVwbG95bWVudC8jcHJvZ3Jlc3MtZGVhZGxpbmUtc2Vjb25kc1xuICAgKiBAZGVmYXVsdCBEdXJhdGlvbi5zZWNvbmRzKDYwMClcbiAgICovXG4gIHJlYWRvbmx5IHByb2dyZXNzRGVhZGxpbmU/OiBEdXJhdGlvbjtcblxufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGBEZXBsb3ltZW50LmV4cG9zZVZpYVNlcnZpY2VgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlcGxveW1lbnRFeHBvc2VWaWFTZXJ2aWNlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgcG9ydHMgdGhhdCB0aGUgc2VydmljZSBzaG91bGQgYmluZCB0by5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBleHRyYWN0ZWQgZnJvbSB0aGUgZGVwbG95bWVudC5cbiAgICovXG4gIHJlYWRvbmx5IHBvcnRzPzogc2VydmljZS5TZXJ2aWNlUG9ydFtdO1xuXG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiB0aGUgZXhwb3NlZCBzZXJ2aWNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIENsdXN0ZXJJUC5cbiAgICovXG4gIHJlYWRvbmx5IHNlcnZpY2VUeXBlPzogc2VydmljZS5TZXJ2aWNlVHlwZTtcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHNlcnZpY2UgdG8gZXhwb3NlLlxuICAgKiBJZiB5b3UnZCBsaWtlIHRvIGV4cG9zZSB0aGUgZGVwbG95bWVudCBtdWx0aXBsZSB0aW1lcyxcbiAgICogeW91IG11c3QgZXhwbGljaXRseSBzZXQgYSBuYW1lIHN0YXJ0aW5nIGZyb20gdGhlIHNlY29uZCBleHBvc2UgY2FsbC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBhdXRvIGdlbmVyYXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgZXhwb3NpbmcgYSBkZXBsb3ltZW50IHZpYSBhbiBpbmdyZXNzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV4cG9zZURlcGxveW1lbnRWaWFJbmdyZXNzT3B0aW9ucyBleHRlbmRzIERlcGxveW1lbnRFeHBvc2VWaWFTZXJ2aWNlT3B0aW9ucywgc2VydmljZS5FeHBvc2VTZXJ2aWNlVmlhSW5ncmVzc09wdGlvbnMge31cblxuLyoqXG4qXG4qIEEgRGVwbG95bWVudCBwcm92aWRlcyBkZWNsYXJhdGl2ZSB1cGRhdGVzIGZvciBQb2RzIGFuZCBSZXBsaWNhU2V0cy5cbipcbiogWW91IGRlc2NyaWJlIGEgZGVzaXJlZCBzdGF0ZSBpbiBhIERlcGxveW1lbnQsIGFuZCB0aGUgRGVwbG95bWVudCBDb250cm9sbGVyIGNoYW5nZXMgdGhlIGFjdHVhbFxuKiBzdGF0ZSB0byB0aGUgZGVzaXJlZCBzdGF0ZSBhdCBhIGNvbnRyb2xsZWQgcmF0ZS4gWW91IGNhbiBkZWZpbmUgRGVwbG95bWVudHMgdG8gY3JlYXRlIG5ldyBSZXBsaWNhU2V0cywgb3IgdG8gcmVtb3ZlXG4qIGV4aXN0aW5nIERlcGxveW1lbnRzIGFuZCBhZG9wdCBhbGwgdGhlaXIgcmVzb3VyY2VzIHdpdGggbmV3IERlcGxveW1lbnRzLlxuKlxuKiA+IE5vdGU6IERvIG5vdCBtYW5hZ2UgUmVwbGljYVNldHMgb3duZWQgYnkgYSBEZXBsb3ltZW50LiBDb25zaWRlciBvcGVuaW5nIGFuIGlzc3VlIGluIHRoZSBtYWluIEt1YmVybmV0ZXMgcmVwb3NpdG9yeSBpZiB5b3VyIHVzZSBjYXNlIGlzIG5vdCBjb3ZlcmVkIGJlbG93LlxuKlxuKiBVc2UgQ2FzZVxuKlxuKiBUaGUgZm9sbG93aW5nIGFyZSB0eXBpY2FsIHVzZSBjYXNlcyBmb3IgRGVwbG95bWVudHM6XG4qXG4qIC0gQ3JlYXRlIGEgRGVwbG95bWVudCB0byByb2xsb3V0IGEgUmVwbGljYVNldC4gVGhlIFJlcGxpY2FTZXQgY3JlYXRlcyBQb2RzIGluIHRoZSBiYWNrZ3JvdW5kLlxuKiAgIENoZWNrIHRoZSBzdGF0dXMgb2YgdGhlIHJvbGxvdXQgdG8gc2VlIGlmIGl0IHN1Y2NlZWRzIG9yIG5vdC5cbiogLSBEZWNsYXJlIHRoZSBuZXcgc3RhdGUgb2YgdGhlIFBvZHMgYnkgdXBkYXRpbmcgdGhlIFBvZFRlbXBsYXRlU3BlYyBvZiB0aGUgRGVwbG95bWVudC5cbiogICBBIG5ldyBSZXBsaWNhU2V0IGlzIGNyZWF0ZWQgYW5kIHRoZSBEZXBsb3ltZW50IG1hbmFnZXMgbW92aW5nIHRoZSBQb2RzIGZyb20gdGhlIG9sZCBSZXBsaWNhU2V0IHRvIHRoZSBuZXcgb25lIGF0IGEgY29udHJvbGxlZCByYXRlLlxuKiAgIEVhY2ggbmV3IFJlcGxpY2FTZXQgdXBkYXRlcyB0aGUgcmV2aXNpb24gb2YgdGhlIERlcGxveW1lbnQuXG4qIC0gUm9sbGJhY2sgdG8gYW4gZWFybGllciBEZXBsb3ltZW50IHJldmlzaW9uIGlmIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBEZXBsb3ltZW50IGlzIG5vdCBzdGFibGUuXG4qICAgRWFjaCByb2xsYmFjayB1cGRhdGVzIHRoZSByZXZpc2lvbiBvZiB0aGUgRGVwbG95bWVudC5cbiogLSBTY2FsZSB1cCB0aGUgRGVwbG95bWVudCB0byBmYWNpbGl0YXRlIG1vcmUgbG9hZC5cbiogLSBQYXVzZSB0aGUgRGVwbG95bWVudCB0byBhcHBseSBtdWx0aXBsZSBmaXhlcyB0byBpdHMgUG9kVGVtcGxhdGVTcGVjIGFuZCB0aGVuIHJlc3VtZSBpdCB0byBzdGFydCBhIG5ldyByb2xsb3V0LlxuKiAtIFVzZSB0aGUgc3RhdHVzIG9mIHRoZSBEZXBsb3ltZW50IGFzIGFuIGluZGljYXRvciB0aGF0IGEgcm9sbG91dCBoYXMgc3R1Y2suXG4qIC0gQ2xlYW4gdXAgb2xkZXIgUmVwbGljYVNldHMgdGhhdCB5b3UgZG9uJ3QgbmVlZCBhbnltb3JlLlxuKlxuKiovXG5leHBvcnQgY2xhc3MgRGVwbG95bWVudCBleHRlbmRzIHdvcmtsb2FkLldvcmtsb2FkIGltcGxlbWVudHMgSVNjYWxhYmxlIHtcblxuICAvKipcbiAgICogTnVtYmVyIG9mIGRlc2lyZWQgcG9kcy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSByZXBsaWNhcz86IG51bWJlcjtcblxuICAvKipcbiAgICogTWluaW11bSBkdXJhdGlvbiBmb3Igd2hpY2ggYSBuZXdseSBjcmVhdGVkIHBvZCBzaG91bGQgYmUgcmVhZHkgd2l0aG91dFxuICAgKiBhbnkgb2YgaXRzIGNvbnRhaW5lciBjcmFzaGluZywgZm9yIGl0IHRvIGJlIGNvbnNpZGVyZWQgYXZhaWxhYmxlLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG1pblJlYWR5OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIG1heGltdW0gZHVyYXRpb24gZm9yIGEgZGVwbG95bWVudCB0byBtYWtlIHByb2dyZXNzIGJlZm9yZSBpdCBpcyBjb25zaWRlcmVkIHRvIGJlIGZhaWxlZC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBwcm9ncmVzc0RlYWRsaW5lOiBEdXJhdGlvbjtcblxuICAvKlxuICAgKiBUaGUgdXBncmFkZSBzdHJhdGVneSBvZiB0aGlzIGRlcGxveW1lbnQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc3RyYXRlZ3k6IERlcGxveW1lbnRTdHJhdGVneTtcblxuICAvKipcbiAgICogQHNlZSBiYXNlLlJlc291cmNlLmFwaU9iamVjdFxuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGFwaU9iamVjdDogQXBpT2JqZWN0O1xuXG4gIHB1YmxpYyByZWFkb25seSByZXNvdXJjZVR5cGUgPSAnZGVwbG95bWVudHMnO1xuXG4gIHB1YmxpYyBoYXNBdXRvc2NhbGVyID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IERlcGxveW1lbnRQcm9wcyA9IHt9KSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICB0aGlzLmFwaU9iamVjdCA9IG5ldyBrOHMuS3ViZURlcGxveW1lbnQodGhpcywgJ1Jlc291cmNlJywge1xuICAgICAgbWV0YWRhdGE6IHByb3BzLm1ldGFkYXRhLFxuICAgICAgc3BlYzogTGF6eS5hbnkoeyBwcm9kdWNlOiAoKSA9PiB0aGlzLl90b0t1YmUoKSB9KSxcbiAgICB9KTtcblxuICAgIHRoaXMubWluUmVhZHkgPSBwcm9wcy5taW5SZWFkeSA/PyBEdXJhdGlvbi5zZWNvbmRzKDApO1xuICAgIHRoaXMucHJvZ3Jlc3NEZWFkbGluZSA9IHByb3BzLnByb2dyZXNzRGVhZGxpbmUgPz8gRHVyYXRpb24uc2Vjb25kcyg2MDApO1xuXG4gICAgaWYgKHRoaXMucHJvZ3Jlc3NEZWFkbGluZS50b1NlY29uZHMoKSA8PSB0aGlzLm1pblJlYWR5LnRvU2Vjb25kcygpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYCdwcm9ncmVzc0RlYWRsaW5lJyAoJHt0aGlzLnByb2dyZXNzRGVhZGxpbmUudG9TZWNvbmRzKCl9cykgbXVzdCBiZSBncmVhdGVyIHRoYW4gJ21pblJlYWR5JyAoJHt0aGlzLm1pblJlYWR5LnRvU2Vjb25kcygpfXMpYCk7XG4gICAgfVxuXG4gICAgdGhpcy5yZXBsaWNhcyA9IHByb3BzLnJlcGxpY2FzO1xuICAgIHRoaXMuc3RyYXRlZ3kgPSBwcm9wcy5zdHJhdGVneSA/PyBEZXBsb3ltZW50U3RyYXRlZ3kucm9sbGluZ1VwZGF0ZSgpO1xuXG4gICAgaWYgKHRoaXMuaXNvbGF0ZSkge1xuICAgICAgdGhpcy5jb25uZWN0aW9ucy5pc29sYXRlKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEV4cG9zZSBhIGRlcGxveW1lbnQgdmlhIGEgc2VydmljZS5cbiAgICpcbiAgICogVGhpcyBpcyBlcXVpdmFsZW50IHRvIHJ1bm5pbmcgYGt1YmVjdGwgZXhwb3NlIGRlcGxveW1lbnQgPGRlcGxveW1lbnQtbmFtZT5gLlxuICAgKlxuICAgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25zIHRvIGRldGVybWluZSBkZXRhaWxzIG9mIHRoZSBzZXJ2aWNlIGFuZCBwb3J0IGV4cG9zZWQuXG4gICAqL1xuICBwdWJsaWMgZXhwb3NlVmlhU2VydmljZShvcHRpb25zOiBEZXBsb3ltZW50RXhwb3NlVmlhU2VydmljZU9wdGlvbnMgPSB7fSk6IHNlcnZpY2UuU2VydmljZSB7XG4gICAgY29uc3QgbXlQb3J0cyA9IGNvbnRhaW5lci5leHRyYWN0Q29udGFpbmVyUG9ydHModGhpcyk7XG4gICAgY29uc3QgbXlQb3J0TnVtYmVycyA9IG15UG9ydHMubWFwKHAgPT4gcC5udW1iZXIpO1xuICAgIGNvbnN0IHBvcnRzOiBzZXJ2aWNlLlNlcnZpY2VQb3J0W10gPSBvcHRpb25zLnBvcnRzID8/IG15UG9ydHMubWFwKHAgPT4gKHtcbiAgICAgIHBvcnQ6IHAubnVtYmVyLCB0YXJnZXRQb3J0OiBwLm51bWJlciwgcHJvdG9jb2w6IHAucHJvdG9jb2wsIG5hbWU6IHAubmFtZSxcbiAgICB9KSk7XG4gICAgaWYgKHBvcnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmFibGUgdG8gZXhwb3NlIGRlcGxveW1lbnQgJHt0aGlzLm5hbWV9IHZpYSBhIHNlcnZpY2U6IGBcbiAgICAgICAgKyAnRGVwbG95bWVudCBwb3J0IGNhbm5vdCBiZSBkZXRlcm1pbmVkLidcbiAgICAgICAgKyAnRWl0aGVyIHBhc3MgXFwncG9ydHNcXCcsIG9yIGNvbmZpZ3VyZSBwb3J0cyBvbiB0aGUgY29udGFpbmVycyBvZiB0aGUgZGVwbG95bWVudCcpO1xuICAgIH1cbiAgICBjb25zdCBwb3J0TmFtZXMgPSBwb3J0cy5tYXAocCA9PiBwLm5hbWUpO1xuICAgIGlmIChwb3J0cy5sZW5ndGggPiAxICYmIHBvcnROYW1lcy5pbmNsdWRlcyh1bmRlZmluZWQpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byBleHBvc2UgZGVwbG95bWVudCAke3RoaXMubmFtZX0gdmlhIGEgc2VydmljZTogYFxuICAgICAgICArICdXaGVuIHVzaW5nIG11bHRpcGxlIHBvcnRzIGZvciBhIHNlcnZpY2UsIGFsbCBwb3J0cyBtdXN0IGhhdmUgcG9ydCBuYW1lcyBzbyB0aGV5IGFyZSB1bmFtYmlndW91cy4nKTtcbiAgICB9XG5cbiAgICAvLyB2YWxpZGF0ZSB0aGUgcG9ydHMgYXJlIG93bmVkIGJ5IG91ciBjb250YWluZXJzXG4gICAgZm9yIChjb25zdCBwb3J0IG9mIHBvcnRzKSB7XG4gICAgICBjb25zdCB0YXJnZXRQb3J0ID0gcG9ydC50YXJnZXRQb3J0ID8/IHBvcnQucG9ydDtcbiAgICAgIGlmICghbXlQb3J0TnVtYmVycy5pbmNsdWRlcyh0YXJnZXRQb3J0KSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byBleHBvc2UgZGVwbG95bWVudCAke3RoaXMubmFtZX0gdmlhIGEgc2VydmljZTogUG9ydCAke3RhcmdldFBvcnR9IGlzIG5vdCBleHBvc2VkIGJ5IGFueSBjb250YWluZXJgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBtZXRhZGF0YTogYW55ID0geyBuYW1lc3BhY2U6IHRoaXMubWV0YWRhdGEubmFtZXNwYWNlIH07XG4gICAgaWYgKG9wdGlvbnMubmFtZSkge1xuICAgICAgbWV0YWRhdGEubmFtZSA9IG9wdGlvbnMubmFtZTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBzZXJ2aWNlLlNlcnZpY2UodGhpcywgYCR7b3B0aW9ucy5uYW1lID8/ICcnfVNlcnZpY2VgLCB7XG4gICAgICBzZWxlY3RvcjogdGhpcyxcbiAgICAgIHBvcnRzLFxuICAgICAgbWV0YWRhdGEsXG4gICAgICB0eXBlOiBvcHRpb25zLnNlcnZpY2VUeXBlID8/IHNlcnZpY2UuU2VydmljZVR5cGUuQ0xVU1RFUl9JUCxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeHBvc2UgYSBkZXBsb3ltZW50IHZpYSBhbiBpbmdyZXNzLlxuICAgKlxuICAgKiBUaGlzIHdpbGwgZmlyc3QgZXhwb3NlIHRoZSBkZXBsb3ltZW50IHdpdGggYSBzZXJ2aWNlLCBhbmQgdGhlbiBleHBvc2UgdGhlIHNlcnZpY2UgdmlhIGFuIGluZ3Jlc3MuXG4gICAqXG4gICAqIEBwYXJhbSBwYXRoIFRoZSBpbmdyZXNzIHBhdGggdG8gcmVnaXN0ZXIgdW5kZXIuXG4gICAqIEBwYXJhbSBvcHRpb25zIEFkZGl0aW9uYWwgb3B0aW9ucy5cbiAgICovXG4gIHB1YmxpYyBleHBvc2VWaWFJbmdyZXNzKHBhdGg6IHN0cmluZywgb3B0aW9uczogRXhwb3NlRGVwbG95bWVudFZpYUluZ3Jlc3NPcHRpb25zID0ge30pOiBpbmdyZXNzLkluZ3Jlc3Mge1xuICAgIGNvbnN0IHNlciA9IHRoaXMuZXhwb3NlVmlhU2VydmljZShvcHRpb25zKTtcbiAgICByZXR1cm4gc2VyLmV4cG9zZVZpYUluZ3Jlc3MocGF0aCwgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgX3RvS3ViZSgpOiBrOHMuRGVwbG95bWVudFNwZWMge1xuICAgIHJldHVybiB7XG4gICAgICByZXBsaWNhczogdGhpcy5oYXNBdXRvc2NhbGVyID8gdW5kZWZpbmVkIDogKHRoaXMucmVwbGljYXMgPz8gMiksXG4gICAgICBtaW5SZWFkeVNlY29uZHM6IHRoaXMubWluUmVhZHkudG9TZWNvbmRzKCksXG4gICAgICBwcm9ncmVzc0RlYWRsaW5lU2Vjb25kczogdGhpcy5wcm9ncmVzc0RlYWRsaW5lLnRvU2Vjb25kcygpLFxuICAgICAgdGVtcGxhdGU6IHtcbiAgICAgICAgbWV0YWRhdGE6IHRoaXMucG9kTWV0YWRhdGEudG9Kc29uKCksXG4gICAgICAgIHNwZWM6IHRoaXMuX3RvUG9kU3BlYygpLFxuICAgICAgfSxcbiAgICAgIHNlbGVjdG9yOiB0aGlzLl90b0xhYmVsU2VsZWN0b3IoKSxcbiAgICAgIHN0cmF0ZWd5OiB0aGlzLnN0cmF0ZWd5Ll90b0t1YmUoKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEBzZWUgSVNjYWxhYmxlLm1hcmtIYXNBdXRvc2NhbGVyKClcbiAgICovXG4gIHB1YmxpYyBtYXJrSGFzQXV0b3NjYWxlcigpIHtcbiAgICB0aGlzLmhhc0F1dG9zY2FsZXIgPSB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEBzZWUgSVNjYWxhYmxlLnRvU2NhbGluZ1RhcmdldCgpXG4gICAqL1xuICBwdWJsaWMgdG9TY2FsaW5nVGFyZ2V0KCk6IFNjYWxpbmdUYXJnZXQge1xuICAgIHJldHVybiB7XG4gICAgICBraW5kOiB0aGlzLmFwaU9iamVjdC5raW5kLFxuICAgICAgYXBpVmVyc2lvbjogdGhpcy5hcGlPYmplY3QuYXBpVmVyc2lvbixcbiAgICAgIG5hbWU6IHRoaXMubmFtZSxcbiAgICAgIGNvbnRhaW5lcnM6IHRoaXMuY29udGFpbmVycyxcbiAgICAgIHJlcGxpY2FzOiB0aGlzLnJlcGxpY2FzLFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBgRGVwbG95bWVudFN0cmF0ZWd5LnJvbGxpbmdVcGRhdGVgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlcGxveW1lbnRTdHJhdGVneVJvbGxpbmdVcGRhdGVPcHRpb25zIHtcblxuICAvKipcbiAgICogVGhlIG1heGltdW0gbnVtYmVyIG9mIHBvZHMgdGhhdCBjYW4gYmUgc2NoZWR1bGVkIGFib3ZlIHRoZSBkZXNpcmVkIG51bWJlciBvZiBwb2RzLlxuICAgKiBWYWx1ZSBjYW4gYmUgYW4gYWJzb2x1dGUgbnVtYmVyIChleDogNSkgb3IgYSBwZXJjZW50YWdlIG9mIGRlc2lyZWQgcG9kcyAoZXg6IDEwJSkuXG4gICAqIEFic29sdXRlIG51bWJlciBpcyBjYWxjdWxhdGVkIGZyb20gcGVyY2VudGFnZSBieSByb3VuZGluZyB1cC5cbiAgICogVGhpcyBjYW4gbm90IGJlIDAgaWYgYG1heFVuYXZhaWxhYmxlYCBpcyAwLlxuICAgKlxuICAgKiBFeGFtcGxlOiB3aGVuIHRoaXMgaXMgc2V0IHRvIDMwJSwgdGhlIG5ldyBSZXBsaWNhU2V0IGNhbiBiZSBzY2FsZWQgdXAgaW1tZWRpYXRlbHkgd2hlbiB0aGUgcm9sbGluZyB1cGRhdGVcbiAgICogc3RhcnRzLCBzdWNoIHRoYXQgdGhlIHRvdGFsIG51bWJlciBvZiBvbGQgYW5kIG5ldyBwb2RzIGRvIG5vdCBleGNlZWQgMTMwJSBvZiBkZXNpcmVkIHBvZHMuXG4gICAqIE9uY2Ugb2xkIHBvZHMgaGF2ZSBiZWVuIGtpbGxlZCwgbmV3IFJlcGxpY2FTZXQgY2FuIGJlIHNjYWxlZCB1cCBmdXJ0aGVyLCBlbnN1cmluZyB0aGF0XG4gICAqIHRvdGFsIG51bWJlciBvZiBwb2RzIHJ1bm5pbmcgYXQgYW55IHRpbWUgZHVyaW5nIHRoZSB1cGRhdGUgaXMgYXQgbW9zdCAxMzAlIG9mIGRlc2lyZWQgcG9kcy5cbiAgICpcbiAgICogQGRlZmF1bHQgJzI1JSdcbiAgICovXG4gIHJlYWRvbmx5IG1heFN1cmdlPzogUGVyY2VudE9yQWJzb2x1dGU7XG5cbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIG51bWJlciBvZiBwb2RzIHRoYXQgY2FuIGJlIHVuYXZhaWxhYmxlIGR1cmluZyB0aGUgdXBkYXRlLlxuICAgKiBWYWx1ZSBjYW4gYmUgYW4gYWJzb2x1dGUgbnVtYmVyIChleDogNSkgb3IgYSBwZXJjZW50YWdlIG9mIGRlc2lyZWQgcG9kcyAoZXg6IDEwJSkuXG4gICAqIEFic29sdXRlIG51bWJlciBpcyBjYWxjdWxhdGVkIGZyb20gcGVyY2VudGFnZSBieSByb3VuZGluZyBkb3duLlxuICAgKiBUaGlzIGNhbiBub3QgYmUgMCBpZiBgbWF4U3VyZ2VgIGlzIDAuXG4gICAqXG4gICAqIEV4YW1wbGU6IHdoZW4gdGhpcyBpcyBzZXQgdG8gMzAlLCB0aGUgb2xkIFJlcGxpY2FTZXQgY2FuIGJlIHNjYWxlZCBkb3duIHRvIDcwJSBvZiBkZXNpcmVkXG4gICAqIHBvZHMgaW1tZWRpYXRlbHkgd2hlbiB0aGUgcm9sbGluZyB1cGRhdGUgc3RhcnRzLiBPbmNlIG5ldyBwb2RzIGFyZSByZWFkeSwgb2xkIFJlcGxpY2FTZXQgY2FuXG4gICAqIGJlIHNjYWxlZCBkb3duIGZ1cnRoZXIsIGZvbGxvd2VkIGJ5IHNjYWxpbmcgdXAgdGhlIG5ldyBSZXBsaWNhU2V0LCBlbnN1cmluZyB0aGF0IHRoZSB0b3RhbFxuICAgKiBudW1iZXIgb2YgcG9kcyBhdmFpbGFibGUgYXQgYWxsIHRpbWVzIGR1cmluZyB0aGUgdXBkYXRlIGlzIGF0IGxlYXN0IDcwJSBvZiBkZXNpcmVkIHBvZHMuXG4gICAqXG4gICAqIEBkZWZhdWx0ICcyNSUnXG4gICAqL1xuICByZWFkb25seSBtYXhVbmF2YWlsYWJsZT86IFBlcmNlbnRPckFic29sdXRlO1xuXG59XG5cbi8qKlxuICogVW5pb24gbGlrZSBjbGFzcyByZXBzZW50aW5nIGVpdGhlciBhIHJhdGlvbiBpblxuICogcGVyY2VudHMgb3IgYW4gYWJzb2x1dGUgbnVtYmVyLlxuICovXG5leHBvcnQgY2xhc3MgUGVyY2VudE9yQWJzb2x1dGUge1xuXG4gIC8qKlxuICAgKiBQZXJjZW50IHJhdGlvLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBwZXJjZW50KHBlcmNlbnQ6IG51bWJlcik6IFBlcmNlbnRPckFic29sdXRlIHtcbiAgICByZXR1cm4gbmV3IFBlcmNlbnRPckFic29sdXRlKGAke3BlcmNlbnR9JWApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFic29sdXRlIG51bWJlci5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgYWJzb2x1dGUobnVtOiBudW1iZXIpOiBQZXJjZW50T3JBYnNvbHV0ZSB7XG4gICAgcmV0dXJuIG5ldyBQZXJjZW50T3JBYnNvbHV0ZShudW0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgdmFsdWU6IGFueSkge31cblxuICBwdWJsaWMgaXNaZXJvKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlID09PSBQZXJjZW50T3JBYnNvbHV0ZS5hYnNvbHV0ZSgwKS52YWx1ZSB8fCB0aGlzLnZhbHVlID09PSBQZXJjZW50T3JBYnNvbHV0ZS5wZXJjZW50KDApLnZhbHVlO1xuICB9XG5cbn1cblxuLyoqXG4gKiBEZXBsb3ltZW50IHN0cmF0ZWdpZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBEZXBsb3ltZW50U3RyYXRlZ3kge1xuXG4gIC8qKlxuICAgKiBBbGwgZXhpc3RpbmcgUG9kcyBhcmUga2lsbGVkIGJlZm9yZSBuZXcgb25lcyBhcmUgY3JlYXRlZC5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy93b3JrbG9hZHMvY29udHJvbGxlcnMvZGVwbG95bWVudC8jcmVjcmVhdGUtZGVwbG95bWVudFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWNyZWF0ZSgpOiBEZXBsb3ltZW50U3RyYXRlZ3kge1xuICAgIHJldHVybiBuZXcgRGVwbG95bWVudFN0cmF0ZWd5KHtcbiAgICAgIHR5cGU6ICdSZWNyZWF0ZScsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHJvbGxpbmdVcGRhdGUob3B0aW9uczogRGVwbG95bWVudFN0cmF0ZWd5Um9sbGluZ1VwZGF0ZU9wdGlvbnMgPSB7fSk6IERlcGxveW1lbnRTdHJhdGVneSB7XG5cbiAgICBjb25zdCBtYXhTdXJnZSA9IG9wdGlvbnMubWF4U3VyZ2UgPz8gUGVyY2VudE9yQWJzb2x1dGUucGVyY2VudCgyNSk7XG4gICAgY29uc3QgbWF4VW5hdmFpbGFibGUgPSBvcHRpb25zLm1heFVuYXZhaWxhYmxlID8/IFBlcmNlbnRPckFic29sdXRlLnBlcmNlbnQoMjUpO1xuXG4gICAgaWYgKG1heFN1cmdlLmlzWmVybygpICYmIG1heFVuYXZhaWxhYmxlLmlzWmVybygpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1xcJ21heFN1cmdlXFwnIGFuZCBcXCdtYXhVbmF2YWlsYWJsZVxcJyBjYW5ub3QgYmUgYm90aCB6ZXJvJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBEZXBsb3ltZW50U3RyYXRlZ3koe1xuICAgICAgdHlwZTogJ1JvbGxpbmdVcGRhdGUnLFxuICAgICAgcm9sbGluZ1VwZGF0ZTogeyBtYXhTdXJnZSwgbWF4VW5hdmFpbGFibGUgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBzdHJhdGVneTogazhzLkRlcGxveW1lbnRTdHJhdGVneSkge31cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgX3RvS3ViZSgpOiBrOHMuRGVwbG95bWVudFN0cmF0ZWd5IHtcbiAgICByZXR1cm4gdGhpcy5zdHJhdGVneTtcbiAgfVxuXG59XG4iXX0=
|
package/lib/handler.js
CHANGED
|
@@ -50,5 +50,5 @@ class Handler {
|
|
|
50
50
|
}
|
|
51
51
|
exports.Handler = Handler;
|
|
52
52
|
_a = JSII_RTTI_SYMBOL_1;
|
|
53
|
-
Handler[_a] = { fqn: "cdk8s-plus-31.Handler", version: "2.2.
|
|
53
|
+
Handler[_a] = { fqn: "cdk8s-plus-31.Handler", version: "2.2.3" };
|
|
54
54
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEscUNBQXFDO0FBc0NyQzs7R0FFRztBQUNILE1BQWEsT0FBTztJQUVsQjs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBWSxFQUFFLFVBQXFDLEVBQUU7UUFDN0UsT0FBTyxJQUFJLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxXQUFXLENBQUMsT0FBaUI7UUFDekMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxTQUFTLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxhQUFhLENBQUMsVUFBdUMsRUFBRTtRQUNuRSxPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELFlBQ21CLGdCQUE4QyxFQUM5QyxjQUFzQyxFQUN0QyxjQUE2RDtRQUY3RCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQThCO1FBQzlDLG1CQUFjLEdBQWQsY0FBYyxDQUF3QjtRQUN0QyxtQkFBYyxHQUFkLGNBQWMsQ0FBK0M7SUFBRyxDQUFDO0lBRXBGOztPQUVHO0lBQ0ksT0FBTyxDQUFDLElBQXlCO1FBRXRDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUN2RyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDbEksTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUVoSCxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsQ0FBQztJQUN0QyxDQUFDOztBQTdDSCwwQkErQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBfYWN0aW9uIGZyb20gJy4vX2FjdGlvbic7XG5pbXBvcnQgKiBhcyBjb250YWluZXIgZnJvbSAnLi9jb250YWluZXInO1xuaW1wb3J0ICogYXMgazhzIGZyb20gJy4vaW1wb3J0cy9rOHMnO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGBIYW5kbGVyLmZyb21UY3BTb2NrZXRgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEhhbmRsZXJGcm9tVGNwU29ja2V0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgVENQIHBvcnQgdG8gY29ubmVjdCB0byBvbiB0aGUgY29udGFpbmVyLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGRlZmF1bHRzIHRvIGBjb250YWluZXIucG9ydGAuXG4gICAqL1xuICByZWFkb25seSBwb3J0PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgaG9zdCBuYW1lIHRvIGNvbm5lY3QgdG8gb24gdGhlIGNvbnRhaW5lci5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBkZWZhdWx0cyB0byB0aGUgcG9kIElQXG4gICAqL1xuICByZWFkb25seSBob3N0Pzogc3RyaW5nO1xuXG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgYEhhbmRsZXIuZnJvbUh0dHBHZXRgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEhhbmRsZXJGcm9tSHR0cEdldE9wdGlvbnMge1xuXG4gIC8qKlxuICAgKiBUaGUgVENQIHBvcnQgdG8gdXNlIHdoZW4gc2VuZGluZyB0aGUgR0VUIHJlcXVlc3QuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZGVmYXVsdHMgdG8gYGNvbnRhaW5lci5wb3J0YC5cbiAgICovXG4gIHJlYWRvbmx5IHBvcnQ/OiBudW1iZXI7XG5cbn1cblxuLyoqXG4gKiBEZWZpbmVzIGEgc3BlY2lmaWMgYWN0aW9uIHRoYXQgc2hvdWxkIGJlIHRha2VuLlxuICovXG5leHBvcnQgY2xhc3MgSGFuZGxlciB7XG5cbiAgLyoqXG4gICAqIERlZmluZXMgYSBoYW5kbGVyIGJhc2VkIG9uIGFuIEhUVFAgR0VUIHJlcXVlc3QgdG8gdGhlIElQIGFkZHJlc3Mgb2YgdGhlIGNvbnRhaW5lci5cbiAgICpcbiAgICogQHBhcmFtIHBhdGggVGhlIFVSTCBwYXRoIHRvIGhpdFxuICAgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25zXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21IdHRwR2V0KHBhdGg6IHN0cmluZywgb3B0aW9uczogSGFuZGxlckZyb21IdHRwR2V0T3B0aW9ucyA9IHt9KTogSGFuZGxlciB7XG4gICAgcmV0dXJuIG5ldyBIYW5kbGVyKHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB7IHBhdGgsIC4uLm9wdGlvbnMgfSk7XG4gIH1cblxuICAvKipcbiAgICogRGVmaW5lcyBhIGhhbmRsZXIgYmFzZWQgb24gYSBjb21tYW5kIHdoaWNoIGlzIGV4ZWN1dGVkIHdpdGhpbiB0aGUgY29udGFpbmVyLlxuICAgKlxuICAgKiBAcGFyYW0gY29tbWFuZCBUaGUgY29tbWFuZCB0byBleGVjdXRlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21Db21tYW5kKGNvbW1hbmQ6IHN0cmluZ1tdKTogSGFuZGxlciB7XG4gICAgcmV0dXJuIG5ldyBIYW5kbGVyKHVuZGVmaW5lZCwgeyBjb21tYW5kIH0sIHVuZGVmaW5lZCk7XG4gIH1cblxuICAvKipcbiAgICogRGVmaW5lcyBhIGhhbmRsZXIgYmFzZWQgb3BlbmluZyBhIGNvbm5lY3Rpb24gdG8gYSBUQ1Agc29ja2V0IG9uIHRoZSBjb250YWluZXIuXG4gICAqXG4gICAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbnNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVRjcFNvY2tldChvcHRpb25zOiBIYW5kbGVyRnJvbVRjcFNvY2tldE9wdGlvbnMgPSB7fSk6IEhhbmRsZXIge1xuICAgIHJldHVybiBuZXcgSGFuZGxlcihvcHRpb25zLCB1bmRlZmluZWQsIHVuZGVmaW5lZCk7XG4gIH1cblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGNwU29ja2V0T3B0aW9ucz86IEhhbmRsZXJGcm9tVGNwU29ja2V0T3B0aW9ucyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbW1hbmRPcHRpb25zPzogeyBjb21tYW5kOiBzdHJpbmdbXSB9LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaHR0cEdldE9wdGlvbnM/OiB7IHBhdGg6IHN0cmluZyB9ICYgSGFuZGxlckZyb21IdHRwR2V0T3B0aW9ucykge31cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgX3RvS3ViZShjb250OiBjb250YWluZXIuQ29udGFpbmVyKTogazhzLkxpZmVjeWNsZUhhbmRsZXIge1xuXG4gICAgY29uc3QgZXhlYyA9IHRoaXMuY29tbWFuZE9wdGlvbnMgPyBfYWN0aW9uLkFjdGlvbi5mcm9tQ29tbWFuZCh0aGlzLmNvbW1hbmRPcHRpb25zLmNvbW1hbmQpIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IGh0dHBHZXQgPSB0aGlzLmh0dHBHZXRPcHRpb25zID8gX2FjdGlvbi5BY3Rpb24uZnJvbUh0dHBHZXQoY29udCwgdGhpcy5odHRwR2V0T3B0aW9ucy5wYXRoLCB0aGlzLmh0dHBHZXRPcHRpb25zKSA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCB0Y3BTb2NrZXQgPSB0aGlzLnRjcFNvY2tldE9wdGlvbnMgPyBfYWN0aW9uLkFjdGlvbi5mcm9tVGNwU29ja2V0KGNvbnQsIHRoaXMudGNwU29ja2V0T3B0aW9ucykgOiB1bmRlZmluZWQ7XG5cbiAgICByZXR1cm4geyBleGVjLCBodHRwR2V0LCB0Y3BTb2NrZXQgfTtcbiAgfVxuXG59Il19
|
|
@@ -230,7 +230,7 @@ class HorizontalPodAutoscaler extends base_1.Resource {
|
|
|
230
230
|
}
|
|
231
231
|
exports.HorizontalPodAutoscaler = HorizontalPodAutoscaler;
|
|
232
232
|
_a = JSII_RTTI_SYMBOL_1;
|
|
233
|
-
HorizontalPodAutoscaler[_a] = { fqn: "cdk8s-plus-31.HorizontalPodAutoscaler", version: "2.2.
|
|
233
|
+
HorizontalPodAutoscaler[_a] = { fqn: "cdk8s-plus-31.HorizontalPodAutoscaler", version: "2.2.3" };
|
|
234
234
|
/**
|
|
235
235
|
* A metric condition that HorizontalPodAutoscaler's scale on.
|
|
236
236
|
*/
|
|
@@ -451,7 +451,7 @@ class Metric {
|
|
|
451
451
|
}
|
|
452
452
|
exports.Metric = Metric;
|
|
453
453
|
_b = JSII_RTTI_SYMBOL_1;
|
|
454
|
-
Metric[_b] = { fqn: "cdk8s-plus-31.Metric", version: "2.2.
|
|
454
|
+
Metric[_b] = { fqn: "cdk8s-plus-31.Metric", version: "2.2.3" };
|
|
455
455
|
/**
|
|
456
456
|
* A metric condition that will trigger scaling behavior when satisfied.
|
|
457
457
|
*
|
|
@@ -506,7 +506,7 @@ class MetricTarget {
|
|
|
506
506
|
}
|
|
507
507
|
exports.MetricTarget = MetricTarget;
|
|
508
508
|
_c = JSII_RTTI_SYMBOL_1;
|
|
509
|
-
MetricTarget[_c] = { fqn: "cdk8s-plus-31.MetricTarget", version: "2.2.
|
|
509
|
+
MetricTarget[_c] = { fqn: "cdk8s-plus-31.MetricTarget", version: "2.2.3" };
|
|
510
510
|
var ScalingStrategy;
|
|
511
511
|
(function (ScalingStrategy) {
|
|
512
512
|
/**
|
|
@@ -565,5 +565,5 @@ class Replicas {
|
|
|
565
565
|
}
|
|
566
566
|
exports.Replicas = Replicas;
|
|
567
567
|
_d = JSII_RTTI_SYMBOL_1;
|
|
568
|
-
Replicas[_d] = { fqn: "cdk8s-plus-31.Replicas", version: "2.2.
|
|
568
|
+
Replicas[_d] = { fqn: "cdk8s-plus-31.Replicas", version: "2.2.3" };
|
|
569
569
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9yaXpvbnRhbC1wb2QtYXV0b3NjYWxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9ob3Jpem9udGFsLXBvZC1hdXRvc2NhbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsaUNBQWtEO0FBRWxELGlDQUE0RDtBQUU1RCxxQ0FBcUM7QUFvR3JDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOENHO0FBQ0gsTUFBYSx1QkFBd0IsU0FBUSxlQUFRO0lBa0NuRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQW1DO1FBQzNFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUE5QkgsaUJBQVksR0FBRyx5QkFBeUIsQ0FBQztRQTBCeEMsNEJBQXVCLEdBQUcsZ0JBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7UUFNOUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLEdBQUcsQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQ3ZFLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUTtZQUN4QixJQUFJLEVBQUUsWUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztTQUNsRCxDQUFDLENBQUM7UUFFSCxJQUFJLEtBQUssRUFBRSxXQUFXLElBQUksS0FBSyxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDaEUsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsS0FBSyxDQUFDLFdBQVcsa0RBQWtELEtBQUssQ0FBQyxXQUFXLGtEQUFrRCxDQUFDLENBQUM7UUFDNUssQ0FBQztRQUNELElBQUksS0FBSyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN0RCxJQUFJLENBQUMsNEJBQTRC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SUFDSSxPQUFPO1FBQ1osT0FBTztZQUNMLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUk7WUFDeEIsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSztTQUMzQixDQUFDO0lBQ0osQ0FBQzs7QUFwQ0gsNEJBcUNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBpT2JqZWN0LCBEdXJhdGlvbiwgTGF6eSB9IGZyb20gJ2NkazhzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgUmVzb3VyY2UsIFJlc291cmNlUHJvcHMsIElSZXNvdXJjZSB9IGZyb20gJy4vYmFzZSc7XG5pbXBvcnQgKiBhcyBjb250YWluZXIgZnJvbSAnLi9jb250YWluZXInO1xuaW1wb3J0ICogYXMgazhzIGZyb20gJy4vaW1wb3J0cy9rOHMnO1xuaW1wb3J0ICogYXMgcG9kIGZyb20gJy4vcG9kJztcblxuXG4vKipcbiAqIFByb3BlcnRpZXMgdXNlZCB0byBjb25maWd1cmUgdGhlIHRhcmdldCBvZiBhbiBBdXRvc2NhbGVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNjYWxpbmdUYXJnZXQge1xuICAvKipcbiAgICogVGhlIG9iamVjdCBraW5kIChlLmcuIFwiRGVwbG95bWVudFwiKS5cbiAgICovXG4gIHJlYWRvbmx5IGtpbmQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBvYmplY3QncyBBUEkgdmVyc2lvbiAoZS5nLiBcImF1dGhvcml6YXRpb24uazhzLmlvL3YxXCIpXG4gICAqL1xuICByZWFkb25seSBhcGlWZXJzaW9uOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgS3ViZXJuZXRlcyBuYW1lIG9mIHRoaXMgcmVzb3VyY2UuXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBDb250YWluZXIgZGVmaW5pdGlvbnMgYXNzb2NpYXRlZCB3aXRoIHRoZSB0YXJnZXQuXG4gICAqL1xuICByZWFkb25seSBjb250YWluZXJzOiBjb250YWluZXIuQ29udGFpbmVyW107XG4gIC8qKlxuICAgKiBUaGUgZml4ZWQgbnVtYmVyIG9mIHJlcGxpY2FzIGRlZmluZWQgb24gdGhlIHRhcmdldC4gVGhpcyBpcyB1c2VkXG4gICAqIGZvciB2YWxpZGF0aW9uIHB1cnBvc2VzIGFzIFNjYWxhYmxlIHRhcmdldHMgc2hvdWxkIG5vdCBoYXZlIGFcbiAgICogZml4ZWQgbnVtYmVyIG9mIHJlcGxpY2FzLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVwbGljYXM/OiBudW1iZXI7XG5cblxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBzY2FsYWJsZSB3b3JrbG9hZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJU2NhbGFibGUge1xuICAvKipcbiAgICogSWYgdGhpcyBpcyBhIHRhcmdldCBvZiBhbiBhdXRvc2NhbGVyLlxuICAgKi9cbiAgaGFzQXV0b3NjYWxlcjogYm9vbGVhbjtcbiAgLyoqXG4gICAqIENhbGxlZCBvbiBhbGwgSVNjYWxhYmxlIHRhcmdldHMgd2hlbiB0aGV5IGFyZSBhc3NvY2lhdGVkIHdpdGggYW4gYXV0b3NjYWxlci5cbiAgICovXG4gIG1hcmtIYXNBdXRvc2NhbGVyKCk6IHZvaWQ7XG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIHRhcmdldCBzcGVjIHByb3BlcnRpZXMgb2YgdGhpcyBTY2FsYWJsZS5cbiAgICovXG4gIHRvU2NhbGluZ1RhcmdldCgpOiBTY2FsaW5nVGFyZ2V0O1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIEhvcml6b250YWxQb2RBdXRvc2NhbGVyXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSG9yaXpvbnRhbFBvZEF1dG9zY2FsZXJQcm9wcyBleHRlbmRzIFJlc291cmNlUHJvcHMge1xuICAvKipcbiAgICogVGhlIHdvcmtsb2FkIHRvIHNjYWxlIHVwIG9yIGRvd24uXG4gICAqXG4gICAqIFNjYWxhYmxlIHdvcmtsb2FkIHR5cGVzOlxuICAgKiAqIERlcGxveW1lbnRcbiAgICogKiBTdGF0ZWZ1bFNldFxuICAgKi9cbiAgcmVhZG9ubHkgdGFyZ2V0OiBJU2NhbGFibGU7XG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgcmVwbGljYXMgdGhhdCBjYW4gYmUgc2NhbGVkIHVwIHRvLlxuICAgKi9cbiAgcmVhZG9ubHkgbWF4UmVwbGljYXM6IG51bWJlcjtcbiAgLyoqXG4gICAqIFRoZSBtaW5pbXVtIG51bWJlciBvZiByZXBsaWNhcyB0aGF0IGNhbiBiZSBzY2FsZWQgZG93biB0by5cbiAgICpcbiAgICogQ2FuIGJlIHNldCB0byAwIGlmIHRoZSBhbHBoYSBmZWF0dXJlIGdhdGUgYEhQQVNjYWxlVG9aZXJvYCBpcyBlbmFibGVkIGFuZFxuICAgKiBhdCBsZWFzdCBvbmUgT2JqZWN0IG9yIEV4dGVybmFsIG1ldHJpYyBpcyBjb25maWd1cmVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCAxXG4gICAqL1xuICByZWFkb25seSBtaW5SZXBsaWNhcz86IG51bWJlcjtcbiAgLyoqXG4gICAqIFRoZSBtZXRyaWMgY29uZGl0aW9ucyB0aGF0IHRyaWdnZXIgYSBzY2FsZSB1cCBvciBzY2FsZSBkb3duLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIElmIG1ldHJpY3MgYXJlIG5vdCBwcm92aWRlZCwgdGhlbiB0aGUgdGFyZ2V0IHJlc291cmNlXG4gICAqIGNvbnN0cmFpbnRzIChlLmcuIGNwdSBsaW1pdCkgd2lsbCBiZSB1c2VkIGFzIHNjYWxpbmcgbWV0cmljcy5cbiAgICovXG4gIHJlYWRvbmx5IG1ldHJpY3M/OiBNZXRyaWNbXTtcbiAgLyoqXG4gICAqIFRoZSBzY2FsaW5nIGJlaGF2aW9yIHdoZW4gc2NhbGluZyB1cC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBJcyB0aGUgaGlnaGVyIG9mOlxuICAgKiAqIEluY3JlYXNlIG5vIG1vcmUgdGhhbiA0IHBvZHMgcGVyIDYwIHNlY29uZHNcbiAgICogKiBEb3VibGUgdGhlIG51bWJlciBvZiBwb2RzIHBlciA2MCBzZWNvbmRzXG4gICAqL1xuICByZWFkb25seSBzY2FsZVVwPzogU2NhbGluZ1J1bGVzO1xuICAvKipcbiAgICogVGhlIHNjYWxpbmcgYmVoYXZpb3Igd2hlbiBzY2FsaW5nIGRvd24uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gU2NhbGUgZG93biB0byBtaW5SZXBsaWNhIGNvdW50IHdpdGggYSA1IG1pbnV0ZSBzdGFiaWxpemF0aW9uIHdpbmRvdy5cbiAgICovXG4gIHJlYWRvbmx5IHNjYWxlRG93bj86IFNjYWxpbmdSdWxlcztcbn1cblxuLyoqXG4gKiBBIEhvcml6b250YWxQb2RBdXRvc2NhbGVyIHNjYWxlcyBhIHdvcmtsb2FkIHVwIG9yIGRvd24gaW4gcmVzcG9uc2UgdG8gYSBtZXRyaWNcbiAqIGNoYW5nZS4gVGhpcyBhbGxvd3MgeW91ciBzZXJ2aWNlcyB0byBzY2FsZSB1cCB3aGVuIGRlbWFuZCBpcyBoaWdoIGFuZCBzY2FsZSBkb3duXG4gKiB3aGVuIHRoZXkgYXJlIG5vIGxvbmdlciBuZWVkZWQuXG4gKlxuICpcbiAqIFR5cGljYWwgdXNlIGNhc2VzIGZvciBIb3Jpem9udGFsUG9kQXV0b3NjYWxlcjpcbiAqXG4gKiAqIFdoZW4gTWVtb3J5IHVzYWdlIGlzIGFib3ZlIDcwJSwgc2NhbGUgdXAgdGhlIG51bWJlciBvZiByZXBsaWNhcyB0byBtZWV0IHRoZSBkZW1hbmQuXG4gKiAqIFdoZW4gQ1BVIHVzYWdlIGlzIGJlbG93IDMwJSwgc2NhbGUgZG93biB0aGUgbnVtYmVyIG9mIHJlcGxpY2FzIHRvIHNhdmUgcmVzb3VyY2VzLlxuICogKiBXaGVuIGEgc2VydmljZSBpcyBleHBlcmllbmNpbmcgYSBzcGlrZSBpbiB0cmFmZmljLCBzY2FsZSB1cCB0aGUgbnVtYmVyIG9mIHJlcGxpY2FzXG4gKiAgIHRvIG1lZXQgdGhlIGRlbWFuZC4gVGhlbiwgd2hlbiB0aGUgdHJhZmZpYyBzdWJzaWRlcywgc2NhbGUgZG93biB0aGUgbnVtYmVyIG9mXG4gKiAgIHJlcGxpY2FzIHRvIHNhdmUgcmVzb3VyY2VzLlxuICpcbiAqIFRoZSBhdXRvc2NhbGVyIHVzZXMgdGhlIGZvbGxvd2luZyBhbGdvcml0aG0gdG8gZGV0ZXJtaW5lIHRoZSBudW1iZXIgb2YgcmVwbGljYXMgdG8gc2NhbGU6XG4gKlxuICogYGRlc2lyZWRSZXBsaWNhcyA9IGNlaWxbY3VycmVudFJlcGxpY2FzICogKCBjdXJyZW50TWV0cmljVmFsdWUgLyBkZXNpcmVkTWV0cmljVmFsdWUgKV1gXG4gKlxuICogSG9yaXpvbnRhbFBvZEF1dG9zY2FsZXIncyBjYW4gYmUgdXNlZCB0byB3aXRoIGFueSBgU2NhbGFibGVgIHdvcmtsb2FkOlxuICogKiBEZXBsb3ltZW50XG4gKiAqIFN0YXRlZnVsU2V0XG4gKlxuICogKipUYXJnZXRzIHRoYXQgYWxyZWFkeSBoYXZlIGEgcmVwbGljYSBjb3VudCBkZWZpbmVkOioqXG4gKlxuICogUmVtb3ZlIGFueSByZXBsaWNhIGNvdW50cyBmcm9tIHRoZSB0YXJnZXQgcmVzb3VyY2UgYmVmb3JlIGFzc29jaWF0aW5nIHdpdGggYVxuICogSG9yaXpvbnRhbFBvZEF1dG9zY2FsZXIuIElmIHRoaXMgaXNuJ3QgZG9uZSwgdGhlbiBhbnkgdGltZSBhIGNoYW5nZSB0byB0aGF0IG9iamVjdCBpcyBhcHBsaWVkLFxuICogS3ViZXJuZXRlcyB3aWxsIHNjYWxlIHRoZSBjdXJyZW50IG51bWJlciBvZiBQb2RzIHRvIHRoZSB2YWx1ZSBvZiB0aGUgdGFyZ2V0LnJlcGxpY2FzIGtleS4gVGhpc1xuICogbWF5IG5vdCBiZSBkZXNpcmVkIGFuZCBjb3VsZCBsZWFkIHRvIHVuZXhwZWN0ZWQgYmVoYXZpb3IuXG4gKlxuICogQHNlZSBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy90YXNrcy9ydW4tYXBwbGljYXRpb24vaG9yaXpvbnRhbC1wb2QtYXV0b3NjYWxlLyNpbXBsaWNpdC1tYWludGVuYW5jZS1tb2RlLWRlYWN0aXZhdGlvblxuICpcbiAqIEBleGFtcGxlXG4gKiBjb25zdCBiYWNrZW5kID0gbmV3IGtwbHVzLkRlcGxveW1lbnQodGhpcywgJ0JhY2tlbmQnLCAuLi4pO1xuICpcbiAqIGNvbnN0IGhwYSA9IG5ldyBrcGx1cy5Ib3Jpem9udGFsUG9kQXV0b3NjYWxlcihjaGFydCwgJ0hwYScsIHtcbiAqICB0YXJnZXQ6IGJhY2tlbmQsXG4gKiAgbWF4UmVwbGljYXM6IDEwLFxuICogIHNjYWxlVXA6IHtcbiAqICAgIHBvbGljaWVzOiBbXG4gKiAgICAgIHtcbiAqICAgICAgICByZXBsaWNhczoga3BsdXMuUmVwbGljYXMuYWJzb2x1dGUoMyksXG4gKiAgICAgICAgZHVyYXRpb246IER1cmF0aW9uLm1pbnV0ZXMoNSksXG4gKiAgICAgIH0sXG4gKiAgICBdLFxuICogIH0sXG4gKiB9KTtcbiAqL1xuZXhwb3J0IGNsYXNzIEhvcml6b250YWxQb2RBdXRvc2NhbGVyIGV4dGVuZHMgUmVzb3VyY2Uge1xuICAvKipcbiAqIEBzZWUgYmFzZS5SZXNvdXJjZS5hcGlPYmplY3RcbiAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYXBpT2JqZWN0OiBBcGlPYmplY3Q7XG4gIHB1YmxpYyByZWFkb25seSByZXNvdXJjZVR5cGUgPSAnaG9yaXpvbnRhbHBvZGF1dG9zY2FsZXInO1xuICAvKipcbiAgICogVGhlIHdvcmtsb2FkIHRvIHNjYWxlIHVwIG9yIGRvd24uXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdGFyZ2V0OiBJU2NhbGFibGU7XG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgcmVwbGljYXMgdGhhdCBjYW4gYmUgc2NhbGVkIHVwIHRvLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG1heFJlcGxpY2FzOiBudW1iZXI7XG4gIC8qKlxuICAgKiBUaGUgbWluaW11bSBudW1iZXIgb2YgcmVwbGljYXMgdGhhdCBjYW4gYmUgc2NhbGVkIGRvd24gdG8uXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbWluUmVwbGljYXM6IG51bWJlcjtcbiAgLyoqXG4gICAqIFRoZSBtZXRyaWMgY29uZGl0aW9ucyB0aGF0IHRyaWdnZXIgYSBzY2FsZSB1cCBvciBzY2FsZSBkb3duLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG1ldHJpY3M/OiBNZXRyaWNbXTtcbiAgLyoqXG4gICAqIFRoZSBzY2FsaW5nIGJlaGF2aW9yIHdoZW4gc2NhbGluZyB1cC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzY2FsZVVwOiBTY2FsaW5nUnVsZXM7XG4gIC8qKlxuICAgKiBUaGUgc2NhbGluZyBiZWhhdmlvciB3aGVuIHNjYWxpbmcgZG93bi5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzY2FsZURvd246IFNjYWxpbmdSdWxlcztcblxuICBwcml2YXRlIHJlYWRvbmx5IF9kZWZhdWx0U2NhbGluZ0R1cmF0aW9uID0gRHVyYXRpb24uc2Vjb25kcygxNSk7XG5cblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogSG9yaXpvbnRhbFBvZEF1dG9zY2FsZXJQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLmFwaU9iamVjdCA9IG5ldyBrOHMuS3ViZUhvcml6b250YWxQb2RBdXRvc2NhbGVyVjIodGhpcywgJ1Jlc291cmNlJywge1xuICAgICAgbWV0YWRhdGE6IHByb3BzLm1ldGFkYXRhLFxuICAgICAgc3BlYzogTGF6eS5hbnkoeyBwcm9kdWNlOiAoKSA9PiB0aGlzLl90b0t1YmUoKSB9KSxcbiAgICB9KTtcblxuICAgIGlmIChwcm9wcz8ubWluUmVwbGljYXMgJiYgcHJvcHMubWluUmVwbGljYXMgPiBwcm9wcy5tYXhSZXBsaWNhcykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGAnbWluUmVwbGljYXMnICgke3Byb3BzLm1pblJlcGxpY2FzfSkgbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJ21heFJlcGxpY2FzJyAoJHtwcm9wcy5tYXhSZXBsaWNhc30pIGluIG9yZGVyIGZvciBIb3Jpem9udGFsUG9kQXV0b3NjYWxlciB0byBzY2FsZS5gKTtcbiAgICB9XG4gICAgaWYgKHByb3BzPy5zY2FsZVVwPy5zdGFiaWxpemF0aW9uV2luZG93ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuX3ZhbGlkYXRlU3RhYmlsaXphdGlvbldpbmRvdygnc2NhbGVVcCcsIHByb3BzLnNjYWxlVXAuc3RhYmlsaXphdGlvbldpbmRvdyk7XG4gICAgfVxuICAgIGlmIChwcm9wcz8uc2NhbGVEb3duPy5zdGFiaWxpemF0aW9uV2luZG93ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuX3ZhbGlkYXRlU3RhYmlsaXphdGlvbldpbmRvdygnc2NhbGVEb3duJywgcHJvcHMuc2NhbGVEb3duLnN0YWJpbGl6YXRpb25XaW5kb3cpO1xuICAgIH1cbiAgICBpZiAocHJvcHM/LnNjYWxlVXA/LnBvbGljaWVzPy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuX3ZhbGlkYXRlU2NhbGluZ1BvbGljaWVzKCdzY2FsZVVwJywgcHJvcHMuc2NhbGVVcC5wb2xpY2llcyk7XG4gICAgfVxuICAgIGlmIChwcm9wcz8uc2NhbGVEb3duPy5wb2xpY2llcz8ubGVuZ3RoKSB7XG4gICAgICB0aGlzLl92YWxpZGF0ZVNjYWxpbmdQb2xpY2llcygnc2NhbGVEb3duJywgcHJvcHMuc2NhbGVEb3duLnBvbGljaWVzKTtcbiAgICB9XG5cbiAgICB0aGlzLnRhcmdldCA9IHByb3BzLnRhcmdldDtcbiAgICB0aGlzLnRhcmdldC5tYXJrSGFzQXV0b3NjYWxlcigpO1xuICAgIHRoaXMubWF4UmVwbGljYXMgPSBwcm9wcy5tYXhSZXBsaWNhcztcbiAgICB0aGlzLm1pblJlcGxpY2FzID0gcHJvcHMubWluUmVwbGljYXMgPz8gMTtcbiAgICB0aGlzLm1ldHJpY3MgPSBwcm9wcy5tZXRyaWNzO1xuICAgIHRoaXMuc2NhbGVVcCA9IHtcbiAgICAgIHN0cmF0ZWd5OiBTY2FsaW5nU3RyYXRlZ3kuTUFYX0NIQU5HRSxcbiAgICAgIHN0YWJpbGl6YXRpb25XaW5kb3c6IER1cmF0aW9uLnNlY29uZHMoMCksXG4gICAgICAuLi5wcm9wcy5zY2FsZVVwLFxuICAgICAgcG9saWNpZXM6IHByb3BzLnNjYWxlVXA/LnBvbGljaWVzPy5tYXAoKHApID0+ICh7IGR1cmF0aW9uOiB0aGlzLl9kZWZhdWx0U2NhbGluZ0R1cmF0aW9uLCAuLi5wIH0pKSA/PyBbXG4gICAgICAgIHtcbiAgICAgICAgICByZXBsaWNhczogUmVwbGljYXMuYWJzb2x1dGUoNCksXG4gICAgICAgICAgZHVyYXRpb246IER1cmF0aW9uLm1pbnV0ZXMoMSksXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICByZXBsaWNhczogUmVwbGljYXMucGVyY2VudCgyMDApLFxuICAgICAgICAgIGR1cmF0aW9uOiBEdXJhdGlvbi5taW51dGVzKDEpLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9O1xuICAgIGlmIChwcm9wcz8uc2NhbGVVcD8ucG9saWNpZXM/Lmxlbmd0aCkge1xuICAgICAgdGhpcy5fdmFsaWRhdGVTY2FsaW5nUG9saWNpZXMoJ3NjYWxlVXAnLCBwcm9wcy5zY2FsZVVwLnBvbGljaWVzKTtcbiAgICB9XG4gICAgdGhpcy5zY2FsZURvd24gPSB7XG4gICAgICBzdHJhdGVneTogU2NhbGluZ1N0cmF0ZWd5Lk1BWF9DSEFOR0UsXG4gICAgICBzdGFiaWxpemF0aW9uV2luZG93OiBEdXJhdGlvbi5taW51dGVzKDUpLFxuICAgICAgLi4ucHJvcHMuc2NhbGVEb3duLFxuICAgICAgcG9saWNpZXM6IHByb3BzLnNjYWxlRG93bj8ucG9saWNpZXM/Lm1hcCgocCkgPT4gKHsgZHVyYXRpb246IHRoaXMuX2RlZmF1bHRTY2FsaW5nRHVyYXRpb24sIC4uLnAgfSkpID8/IFtcbiAgICAgICAge1xuICAgICAgICAgIHJlcGxpY2FzOiBSZXBsaWNhcy5hYnNvbHV0ZSh0aGlzLm1pblJlcGxpY2FzKSxcbiAgICAgICAgICBkdXJhdGlvbjogRHVyYXRpb24ubWludXRlcyg1KSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfTtcblxuICAgIHRoaXMubm9kZS5hZGRWYWxpZGF0aW9uKHsgdmFsaWRhdGU6ICgpID0+IHRoaXMuX3ZhbGlkYXRlVGFyZ2V0UmVwbGljYXMoKSB9KTtcbiAgICB0aGlzLm5vZGUuYWRkVmFsaWRhdGlvbih7IHZhbGlkYXRlOiAoKSA9PiB0aGlzLl92YWxpZGF0ZVRhcmdldENvbnRhaW5lcnMoKSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZSBhIGxpc3Qgb2Ygc2NhbGluZyBwb2xpY2llcy5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcml2YXRlIF92YWxpZGF0ZVNjYWxpbmdQb2xpY2llcyhkaXJlY3Rpb246ICdzY2FsZVVwJyB8ICdzY2FsZURvd24nLCBwb2xpY2llczogU2NhbGluZ1BvbGljeVtdKSB7XG4gICAgcG9saWNpZXMuZm9yRWFjaCgocCkgPT4ge1xuICAgICAgaWYgKHAuZHVyYXRpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLl92YWxpZGF0ZVNjYWxpbmdQb2xpY3lEdXJhdGlvbihkaXJlY3Rpb24sIHAuZHVyYXRpb24pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlIGBTY2FsaW5nUG9saWN5LmR1cmF0aW9uYCBpcyB3aXRoaW4gdGhlIGFsbG93ZWQgcmFuZ2UuXG4gICAqXG4gICAqIGBkdXJhdGlvbmAgcmFuZ2U6IDEgc2Vjb25kIC0gMzAgbWluXG4gICAqXG4gICAqIEt1YmVybmV0ZXMgbmFtZTogYFNjYWxpbmdQb2xpY3kucGVyaW9kU2Vjb25kc2AuXG4gICAqIEBzZWUgaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvcmVmZXJlbmNlL2t1YmVybmV0ZXMtYXBpL3dvcmtsb2FkLXJlc291cmNlcy9ob3Jpem9udGFsLXBvZC1hdXRvc2NhbGVyLXYyLyNIb3Jpem9udGFsUG9kQXV0b3NjYWxlclNwZWNcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcml2YXRlIF92YWxpZGF0ZVNjYWxpbmdQb2xpY3lEdXJhdGlvbihkaXJlY3Rpb246ICdzY2FsZVVwJyB8ICdzY2FsZURvd24nLCBkdXJhdGlvbjogRHVyYXRpb24pIHtcbiAgICBjb25zdCBwZXJpb2RTZWNvbmRzID0gZHVyYXRpb24udG9TZWNvbmRzKCkgPz8gMTU7XG4gICAgY29uc3QgaXNXaXRoaW5SYW5nZSA9IEJvb2xlYW4oMCA8IHBlcmlvZFNlY29uZHMgJiYgcGVyaW9kU2Vjb25kcyA8PSAxODAwKTtcbiAgICBpZiAoIWlzV2l0aGluUmFuZ2UpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgJyR7ZGlyZWN0aW9ufS5wb2xpY2llcycgZHVyYXRpb24gKCR7ZHVyYXRpb24udG9IdW1hblN0cmluZygpfSkgaXMgb3V0c2lkZSBvZiB0aGUgYWxsb3dlZCByYW5nZS4gTXVzdCBiZSBhdCBsZWFzdCAxIHNlY29uZCBsb25nIGFuZCBubyBsb25nZXIgdGhhbiAzMCBtaW51dGVzLmApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZSBgU2NhbGluZ1J1bGVzLnN0YWJpbGl6YXRpb25XaW5kb3dgIGlzIHdpdGhpbiB0aGUgYWxsb3dlZCByYW5nZS5cbiAgICpcbiAgICogYHN0YWJpbGl6YXRpb25XaW5kb3dgIHJhbmdlOiAwIHNlY29uZHMgLSAxIGhvdXJcbiAgICpcbiAgICogQHNlZSBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9yZWZlcmVuY2Uva3ViZXJuZXRlcy1hcGkvd29ya2xvYWQtcmVzb3VyY2VzL2hvcml6b250YWwtcG9kLWF1dG9zY2FsZXItdjIvI0hvcml6b250YWxQb2RBdXRvc2NhbGVyU3BlY1xuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByaXZhdGUgX3ZhbGlkYXRlU3RhYmlsaXphdGlvbldpbmRvdyhkaXJlY3Rpb246ICdzY2FsZVVwJyB8ICdzY2FsZURvd24nLCB3aW5kb3c6IER1cmF0aW9uKSB7XG4gICAgY29uc3Qgd2luZG93U2Vjb25kcyA9IHdpbmRvdy50b1NlY29uZHMoKTtcbiAgICBjb25zdCBpc1dpdGhpblJhbmdlID0gQm9vbGVhbigwIDw9IHdpbmRvd1NlY29uZHMgJiYgd2luZG93U2Vjb25kcyA8PSAzNjAwKTtcbiAgICBpZiAoIWlzV2l0aGluUmFuZ2UpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgJyR7ZGlyZWN0aW9ufS5zdGFiaWxpemF0aW9uV2luZG93JyAoJHt3aW5kb3cudG9IdW1hblN0cmluZygpfSkgbXVzdCBiZSAwIHNlY29uZHMgb3IgbW9yZSB3aXRoIGEgbWF4IG9mIDEgaG91ci5gKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR3VhcmFudGVlIHRoZSBIUEEgaGFzIGEgbWV0cmljIHRvIHNjYWxlIG9uLlxuICAgKiBWZXJpZnkgdGhhdCBtZXRyaWNzIGFyZSBjb25maWd1cmVkLCBpZiBub3QgY2hlY2sgZXZlcnkgcG9kIGNvbnRhaW5lciBoYXMgYSByZXNvdXJjZSBsaW1pdCBvclxuICAgKiByZXF1ZXN0IGRlZmluZWQuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHJpdmF0ZSBfdmFsaWRhdGVUYXJnZXRDb250YWluZXJzKCkge1xuICAgIGNvbnN0IGNvbnRhaW5lcnMgPSB0aGlzLnRhcmdldC50b1NjYWxpbmdUYXJnZXQoKS5jb250YWluZXJzO1xuICAgIGNvbnN0IGhhc1Jlc291cmNlQ29uc3RyYWludHMgPSBjb250YWluZXJzLnNvbWUoKGMpID0+IHRoaXMuX2hhc1JlcXVlc3RzT3JMaW1pdHMoYykpO1xuICAgIGlmICghaGFzUmVzb3VyY2VDb25zdHJhaW50cyAmJiAhdGhpcy5tZXRyaWNzKSB7XG4gICAgICByZXR1cm4gWydJZiBIb3Jpem9udGFsUG9kQXV0b3NjYWxlciBkb2VzIG5vdCBoYXZlIG1ldHJpY3MgZGVmaW5lZCwgdGhlbiBldmVyeSBjb250YWluZXIgaW4gdGhlIHRhcmdldCBtdXN0IGhhdmUgYSBDUFUgb3IgbWVtb3J5IHJlc291cmNlIGNvbnN0cmFpbnQgZGVmaW5lZC4nXTtcbiAgICB9XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIFByZXZlbnQgdGhlIEhQQSBmcm9tIHNjYWxpbmcgYSB0YXJnZXQgd2l0aCBhIHJlcGxpY2EgY291bnQgZGVmaW5lZC5cbiAgICogQHNlZSBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy90YXNrcy9ydW4tYXBwbGljYXRpb24vaG9yaXpvbnRhbC1wb2QtYXV0b3NjYWxlLyNpbXBsaWNpdC1tYWludGVuYW5jZS1tb2RlLWRlYWN0aXZhdGlvblxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByaXZhdGUgX3ZhbGlkYXRlVGFyZ2V0UmVwbGljYXMoKSB7XG4gICAgY29uc3QgcmVwbGljYXMgPSB0aGlzLnRhcmdldC50b1NjYWxpbmdUYXJnZXQoKS5yZXBsaWNhcztcbiAgICBpZiAocmVwbGljYXMpIHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIGBIb3Jpem9udGFsUG9kQXV0b3NjYWxlciB0YXJnZXQgY2Fubm90IGhhdmUgYSBmaXhlZCBudW1iZXIgb2YgcmVwbGljYXMgKCR7cmVwbGljYXN9KS5gLFxuICAgICAgXTtcbiAgICB9XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlIHRoYXQgdGhlIGNvbnRhaW5lciBoYXMgYXQgbGVhc3Qgb25lIENQVS9tZW1vcnkgcmVxdWVzdC9saW1pdCBkZWZpbmVkLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByaXZhdGUgX2hhc1JlcXVlc3RzT3JMaW1pdHMoYzogY29udGFpbmVyLkNvbnRhaW5lcik6IEJvb2xlYW4ge1xuICAgIGNvbnN0IGhhc1JlcXVlc3RzID0gYy5yZXNvdXJjZXM/LmNwdT8ucmVxdWVzdCB8fCBjLnJlc291cmNlcz8ubWVtb3J5Py5yZXF1ZXN0O1xuICAgIGNvbnN0IGhhc0xpbWl0cyA9IGMucmVzb3VyY2VzPy5jcHU/LmxpbWl0IHx8IGMucmVzb3VyY2VzPy5tZW1vcnk/LmxpbWl0O1xuICAgIHJldHVybiBCb29sZWFuKGhhc1JlcXVlc3RzIHx8IGhhc0xpbWl0cyk7XG4gIH1cblxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBfdG9LdWJlKCk6IGs4cy5Ib3Jpem9udGFsUG9kQXV0b3NjYWxlclNwZWNWMiB7XG4gICAgY29uc3Qgc2NhbGluZ1RhcmdldCA9IHRoaXMudGFyZ2V0LnRvU2NhbGluZ1RhcmdldCgpO1xuICAgIHJldHVybiB7XG4gICAgICBtYXhSZXBsaWNhczogdGhpcy5tYXhSZXBsaWNhcyxcbiAgICAgIG1pblJlcGxpY2FzOiB0aGlzLm1pblJlcGxpY2FzLFxuICAgICAgc2NhbGVUYXJnZXRSZWY6IHtcbiAgICAgICAgYXBpVmVyc2lvbjogc2NhbGluZ1RhcmdldC5hcGlWZXJzaW9uLFxuICAgICAgICBuYW1lOiBzY2FsaW5nVGFyZ2V0Lm5hbWUsXG4gICAgICAgIGtpbmQ6IHNjYWxpbmdUYXJnZXQua2luZCxcbiAgICAgIH0sXG4gICAgICBtZXRyaWNzOiB0aGlzLm1ldHJpY3M/Lm1hcChtID0+IG0uX3RvS3ViZSgpKSxcbiAgICAgIGJlaGF2aW9yOiB7XG4gICAgICAgIHNjYWxlVXA6IHtcbiAgICAgICAgICBwb2xpY2llczogdGhpcy5zY2FsZVVwLnBvbGljaWVzPy5tYXAoKHApID0+ICh7XG4gICAgICAgICAgICAuLi5wLnJlcGxpY2FzLl90b0t1YmUoKSxcbiAgICAgICAgICAgIHBlcmlvZFNlY29uZHM6IHAuZHVyYXRpb24/LnRvU2Vjb25kcygpID8/IHRoaXMuX2RlZmF1bHRTY2FsaW5nRHVyYXRpb24udG9TZWNvbmRzKCksXG4gICAgICAgICAgfSkpLFxuICAgICAgICAgIHNlbGVjdFBvbGljeTogdGhpcy5zY2FsZVVwLnN0cmF0ZWd5LFxuICAgICAgICAgIHN0YWJpbGl6YXRpb25XaW5kb3dTZWNvbmRzOiB0aGlzLnNjYWxlVXAuc3RhYmlsaXphdGlvbldpbmRvdz8udG9TZWNvbmRzKCksXG4gICAgICAgIH0sXG4gICAgICAgIHNjYWxlRG93bjoge1xuICAgICAgICAgIHBvbGljaWVzOiB0aGlzLnNjYWxlRG93bi5wb2xpY2llcz8ubWFwKChwKSA9PiAoe1xuICAgICAgICAgICAgLi4ucC5yZXBsaWNhcy5fdG9LdWJlKCksXG4gICAgICAgICAgICBwZXJpb2RTZWNvbmRzOiBwLmR1cmF0aW9uPy50b1NlY29uZHMoKSA/PyB0aGlzLl9kZWZhdWx0U2NhbGluZ0R1cmF0aW9uLnRvU2Vjb25kcygpLFxuICAgICAgICAgIH0pKSxcbiAgICAgICAgICBzZWxlY3RQb2xpY3k6IHRoaXMuc2NhbGVEb3duLnN0cmF0ZWd5LFxuICAgICAgICAgIHN0YWJpbGl6YXRpb25XaW5kb3dTZWNvbmRzOiB0aGlzLnNjYWxlRG93bi5zdGFiaWxpemF0aW9uV2luZG93Py50b1NlY29uZHMoKSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIEJhc2Ugb3B0aW9ucyBmb3IgYSBNZXRyaWNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNZXRyaWNPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSB0YXJnZXQgbWV0cmljIHZhbHVlIHRoYXQgd2lsbCB0cmlnZ2VyIHNjYWxpbmcuXG4gICAqL1xuICByZWFkb25seSB0YXJnZXQ6IE1ldHJpY1RhcmdldDtcbiAgLyoqXG4gICogVGhlIG5hbWUgb2YgdGhlIG1ldHJpYyB0byBzY2FsZSBvbi5cbiAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogQSBzZWxlY3RvciB0byBmaW5kIGEgbWV0cmljIGJ5IGxhYmVsLlxuICAgKlxuICAgKiBXaGVuIHNldCwgaXQgaXMgcGFzc2VkIGFzIGFuIGFkZGl0aW9uYWwgcGFyYW1ldGVyIHRvIHRoZSBtZXRyaWNzIHNlcnZlclxuICAgKiBmb3IgbW9yZSBzcGVjaWZpYyBtZXRyaWNzIHNjb3BpbmcuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gSnVzdCB0aGUgbWV0cmljICduYW1lJyB3aWxsIGJlIHVzZWQgdG8gZ2F0aGVyIG1ldHJpY3MuXG4gICAqL1xuICByZWFkb25seSBsYWJlbFNlbGVjdG9yPzogcG9kLkxhYmVsU2VsZWN0b3I7XG59XG5cblxuLyoqXG4gKiBPcHRpb25zIGZvciBgTWV0cmljLmNvbnRhaW5lclJlc291cmNlKClgXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWV0cmljQ29udGFpbmVyUmVzb3VyY2VPcHRpb25zIHtcbiAgLyoqXG4gICAqIENvbnRhaW5lciB3aGVyZSB0aGUgbWV0cmljIGNhbiBiZSBmb3VuZC5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnRhaW5lcjogY29udGFpbmVyLkNvbnRhaW5lcjtcbiAgLyoqXG4gICAqIFRhcmdldCBtZXRyaWMgdmFsdWUgdGhhdCB3aWxsIHRyaWdnZXIgc2NhbGluZy5cbiAgICovXG4gIHJlYWRvbmx5IHRhcmdldDogTWV0cmljVGFyZ2V0O1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGBNZXRyaWMub2JqZWN0KClgXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWV0cmljT2JqZWN0T3B0aW9ucyBleHRlbmRzIE1ldHJpY09wdGlvbnMge1xuICAvKipcbiAgICogUmVzb3VyY2Ugd2hlcmUgdGhlIG1ldHJpYyBjYW4gYmUgZm91bmQuXG4gICAqL1xuICByZWFkb25seSBvYmplY3Q6IElSZXNvdXJjZTtcbn1cblxuLyoqXG4gKiBBIG1ldHJpYyBjb25kaXRpb24gdGhhdCBIb3Jpem9udGFsUG9kQXV0b3NjYWxlcidzIHNjYWxlIG9uLlxuICovXG5leHBvcnQgY2xhc3MgTWV0cmljIHtcblxuICAvKipcbiAgICogTWV0cmljIHRoYXQgdHJhY2tzIHRoZSBDUFUgb2YgYSBjb250YWluZXIuIFRoaXMgbWV0cmljXG4gICAqIHdpbGwgYmUgdHJhY2tlZCBhY3Jvc3MgYWxsIHBvZHMgb2YgdGhlIGN1cnJlbnQgc2NhbGUgdGFyZ2V0LlxuICAgKlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBjb250YWluZXJDcHUob3B0aW9uczogTWV0cmljQ29udGFpbmVyUmVzb3VyY2VPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gbmV3IE1ldHJpYyh7XG4gICAgICB0eXBlOiAnQ29udGFpbmVyUmVzb3VyY2UnLFxuICAgICAgY29udGFpbmVyUmVzb3VyY2U6IHtcbiAgICAgICAgbmFtZTogJ2NwdScsXG4gICAgICAgIGNvbnRhaW5lcjogb3B0aW9ucy5jb250YWluZXIubmFtZSxcbiAgICAgICAgdGFyZ2V0OiBvcHRpb25zLnRhcmdldC5fdG9LdWJlKCksXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldHJpYyB0aGF0IHRyYWNrcyB0aGUgTWVtb3J5IG9mIGEgY29udGFpbmVyLiBUaGlzIG1ldHJpY1xuICAgKiB3aWxsIGJlIHRyYWNrZWQgYWNyb3NzIGFsbCBwb2RzIG9mIHRoZSBjdXJyZW50IHNjYWxlIHRhcmdldC5cbiAgICpcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgY29udGFpbmVyTWVtb3J5KG9wdGlvbnM6IE1ldHJpY0NvbnRhaW5lclJlc291cmNlT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIG5ldyBNZXRyaWMoe1xuICAgICAgdHlwZTogJ0NvbnRhaW5lclJlc291cmNlJyxcbiAgICAgIGNvbnRhaW5lclJlc291cmNlOiB7XG4gICAgICAgIG5hbWU6ICdtZW1vcnknLFxuICAgICAgICBjb250YWluZXI6IG9wdGlvbnMuY29udGFpbmVyLm5hbWUsXG4gICAgICAgIHRhcmdldDogb3B0aW9ucy50YXJnZXQuX3RvS3ViZSgpLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRyaWMgdGhhdCB0cmFja3MgdGhlIHZvbHVtZSBzaXplIG9mIGEgY29udGFpbmVyLiBUaGlzIG1ldHJpY1xuICAgKiB3aWxsIGJlIHRyYWNrZWQgYWNyb3NzIGFsbCBwb2RzIG9mIHRoZSBjdXJyZW50IHNjYWxlIHRhcmdldC5cbiAgICpcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgY29udGFpbmVyU3RvcmFnZShvcHRpb25zOiBNZXRyaWNDb250YWluZXJSZXNvdXJjZU9wdGlvbnMpOiBNZXRyaWMge1xuICAgIHJldHVybiBuZXcgTWV0cmljKHtcbiAgICAgIHR5cGU6ICdDb250YWluZXJSZXNvdXJjZScsXG4gICAgICBjb250YWluZXJSZXNvdXJjZToge1xuICAgICAgICBuYW1lOiAnc3RvcmFnZScsXG4gICAgICAgIGNvbnRhaW5lcjogb3B0aW9ucy5jb250YWluZXIubmFtZSxcbiAgICAgICAgdGFyZ2V0OiBvcHRpb25zLnRhcmdldC5fdG9LdWJlKCksXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ldHJpYyB0aGF0IHRyYWNrcyB0aGUgbG9jYWwgZXBoZW1lcmFsIHN0b3JhZ2Ugb2YgYSBjb250YWluZXIuIFRoaXMgbWV0cmljXG4gICAqIHdpbGwgYmUgdHJhY2tlZCBhY3Jvc3MgYWxsIHBvZHMgb2YgdGhlIGN1cnJlbnQgc2NhbGUgdGFyZ2V0LlxuICAgKlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBjb250YWluZXJFcGhlbWVyYWxTdG9yYWdlKG9wdGlvbnM6IE1ldHJpY0NvbnRhaW5lclJlc291cmNlT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIG5ldyBNZXRyaWMoe1xuICAgICAgdHlwZTogJ0NvbnRhaW5lclJlc291cmNlJyxcbiAgICAgIGNvbnRhaW5lclJlc291cmNlOiB7XG4gICAgICAgIG5hbWU6ICdlcGhlbWVyYWwtc3RvcmFnZScsXG4gICAgICAgIGNvbnRhaW5lcjogb3B0aW9ucy5jb250YWluZXIubmFtZSxcbiAgICAgICAgdGFyZ2V0OiBvcHRpb25zLnRhcmdldC5fdG9LdWJlKCksXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEEgZ2xvYmFsIG1ldHJpYyB0aGF0IGlzIG5vdCBhc3NvY2lhdGVkIHdpdGggYW55IEt1YmVybmV0ZXMgb2JqZWN0LlxuICAgKiBBbGxvd3MgZm9yIGF1dG9zY2FsaW5nIGJhc2VkIG9uIGluZm9ybWF0aW9uIGNvbWluZyBmcm9tIGNvbXBvbmVudHMgcnVubmluZyBvdXRzaWRlIG9mXG4gICAqIHRoZSBjbHVzdGVyLlxuICAgKlxuICAgKiBVc2UgY2FzZTpcbiAgICogKiBTY2FsZSB1cCB3aGVuIHRoZSBsZW5ndGggb2YgYW4gU1FTIHF1ZXVlIGlzIGdyZWF0ZXIgdGhhbiAxMCBtZXNzYWdlcy5cbiAgICogKiBTY2FsZSBkb3duIHdoZW4gYW4gb3V0c2lkZSBsb2FkIGJhbGFuY2VyJ3MgcXVlcmllcyBhcmUgbGVzcyB0aGFuIDEwMDAwIHBlciBzZWNvbmQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGV4dGVybmFsKG9wdGlvbnM6IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIHJldHVybiBuZXcgTWV0cmljKHtcbiAgICAgIHR5cGU6ICdFeHRlcm5hbCcsXG4gICAgICBleHRlcm5hbDoge1xuICAgICAgICBtZXRyaWM6IHtcbiAgICAgICAgICBuYW1lOiBvcHRpb25zLm5hbWUsXG4gICAgICAgICAgc2VsZWN0b3I6IG9wdGlvbnMubGFiZWxTZWxlY3Rvcj8uX3RvS3ViZSgpLFxuICAgICAgICB9LFxuICAgICAgICB0YXJnZXQ6IG9wdGlvbnMudGFyZ2V0Ll90b0t1YmUoKSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgKiBNZXRyaWMgdGhhdCBkZXNjcmliZXMgYSBtZXRyaWMgb2YgYSBrdWJlcm5ldGVzIG9iamVjdFxuICAqXG4gICogVXNlIGNhc2U6XG4gICogKiBTY2FsZSBvbiBhIEt1YmVybmV0ZXMgSW5ncmVzcydzIGhpdHMtcGVyLXNlY29uZCBtZXRyaWMuXG4gICovXG4gIHB1YmxpYyBzdGF0aWMgb2JqZWN0KG9wdGlvbnM6IE1ldHJpY09iamVjdE9wdGlvbnMpOiBNZXRyaWMge1xuICAgIHJldHVybiBuZXcgTWV0cmljKHtcbiAgICAgIHR5cGU6ICdPYmplY3QnLFxuICAgICAgb2JqZWN0OiB7XG4gICAgICAgIGRlc2NyaWJlZE9iamVjdDoge1xuICAgICAgICAgIGFwaVZlcnNpb246IG9wdGlvbnMub2JqZWN0LmFwaVZlcnNpb24sXG4gICAgICAgICAga2luZDogb3B0aW9ucy5vYmplY3Qua2luZCxcbiAgICAgICAgICBuYW1lOiBvcHRpb25zLm9iamVjdC5uYW1lLFxuICAgICAgICB9LFxuICAgICAgICBtZXRyaWM6IHtcbiAgICAgICAgICBuYW1lOiBvcHRpb25zLm5hbWUsXG4gICAgICAgICAgc2VsZWN0b3I6IG9wdGlvbnMubGFiZWxTZWxlY3Rvcj8uX3RvS3ViZSgpLFxuICAgICAgICB9LFxuICAgICAgICB0YXJnZXQ6IG9wdGlvbnMudGFyZ2V0Ll90b0t1YmUoKSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQSBwb2QgbWV0cmljIHRoYXQgd2lsbCBiZSBhdmVyYWdlZCBhY3Jvc3MgYWxsIHBvZHMgb2YgdGhlIGN1cnJlbnQgc2NhbGUgdGFyZ2V0LlxuICAgKlxuICAgKiBVc2UgY2FzZTpcbiAgICogKiBBdmVyYWdlIENQVSB1dGlsaXphdGlvbiBhY3Jvc3MgYWxsIHBvZHNcbiAgICogKiBUcmFuc2FjdGlvbnMgcHJvY2Vzc2VkIHBlciBzZWNvbmQgYWNyb3NzIGFsbCBwb2RzXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHBvZHMob3B0aW9uczogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIG5ldyBNZXRyaWMoe1xuICAgICAgdHlwZTogJ1BvZHMnLFxuICAgICAgcG9kczoge1xuICAgICAgICBtZXRyaWM6IHtcbiAgICAgICAgICBuYW1lOiBvcHRpb25zLm5hbWUsXG4gICAgICAgICAgc2VsZWN0b3I6IG9wdGlvbnMubGFiZWxTZWxlY3Rvcj8uX3RvS3ViZSgpLFxuICAgICAgICB9LFxuICAgICAgICB0YXJnZXQ6IG9wdGlvbnMudGFyZ2V0Ll90b0t1YmUoKSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVHJhY2tzIHRoZSBhdmFpbGFibGUgQ1BVIG9mIHRoZSBwb2RzIGluIGEgdGFyZ2V0LlxuICAgKlxuICAgKiBOb3RlOiBTaW5jZSB0aGUgcmVzb3VyY2UgdXNhZ2VzIG9mIGFsbCB0aGUgY29udGFpbmVycyBhcmUgc3VtbWVkIHVwIHRoZSB0b3RhbFxuICAgKiBwb2QgdXRpbGl6YXRpb24gbWF5IG5vdCBhY2N1cmF0ZWx5IHJlcHJlc2VudCB0aGUgaW5kaXZpZHVhbCBjb250YWluZXIgcmVzb3VyY2VcbiAgICogdXNhZ2UuIFRoaXMgY291bGQgbGVhZCB0byBzaXR1YXRpb25zIHdoZXJlIGEgc2luZ2xlIGNvbnRhaW5lciBtaWdodCBiZSBydW5uaW5nXG4gICAqIHdpdGggaGlnaCB1c2FnZSBhbmQgdGhlIEhQQSB3aWxsIG5vdCBzY2FsZSBvdXQgYmVjYXVzZSB0aGUgb3ZlcmFsbCBwb2QgdXNhZ2VcbiAgICogaXMgc3RpbGwgd2l0aGluIGFjY2VwdGFibGUgbGltaXRzLlxuICAgKlxuICAgKiBVc2UgY2FzZTpcbiAgICogKiBTY2FsZSB1cCB3aGVuIENQVSBpcyBhYm92ZSA0MCUuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlc291cmNlQ3B1KHRhcmdldDogTWV0cmljVGFyZ2V0KTogTWV0cmljIHtcbiAgICByZXR1cm4gbmV3IE1ldHJpYyh7XG4gICAgICB0eXBlOiAnUmVzb3VyY2UnLFxuICAgICAgcmVzb3VyY2U6IHtcbiAgICAgICAgbmFtZTogJ2NwdScsXG4gICAgICAgIHRhcmdldDogdGFyZ2V0Ll90b0t1YmUoKSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVHJhY2tzIHRoZSBhdmFpbGFibGUgTWVtb3J5IG9mIHRoZSBwb2RzIGluIGEgdGFyZ2V0LlxuICAgKlxuICAgKiBOb3RlOiBTaW5jZSB0aGUgcmVzb3VyY2UgdXNhZ2VzIG9mIGFsbCB0aGUgY29udGFpbmVycyBhcmUgc3VtbWVkIHVwIHRoZSB0b3RhbFxuICAgKiBwb2QgdXRpbGl6YXRpb24gbWF5IG5vdCBhY2N1cmF0ZWx5IHJlcHJlc2VudCB0aGUgaW5kaXZpZHVhbCBjb250YWluZXIgcmVzb3VyY2VcbiAgICogdXNhZ2UuIFRoaXMgY291bGQgbGVhZCB0byBzaXR1YXRpb25zIHdoZXJlIGEgc2luZ2xlIGNvbnRhaW5lciBtaWdodCBiZSBydW5uaW5nXG4gICAqIHdpdGggaGlnaCB1c2FnZSBhbmQgdGhlIEhQQSB3aWxsIG5vdCBzY2FsZSBvdXQgYmVjYXVzZSB0aGUgb3ZlcmFsbCBwb2QgdXNhZ2VcbiAgICogaXMgc3RpbGwgd2l0aGluIGFjY2VwdGFibGUgbGltaXRzLlxuICAgKlxuICAgKiBVc2UgY2FzZTpcbiAgICogKiBTY2FsZSB1cCB3aGVuIE1lbW9yeSBpcyBhYm92ZSA1MTJNQi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVzb3VyY2VNZW1vcnkodGFyZ2V0OiBNZXRyaWNUYXJnZXQpOiBNZXRyaWMge1xuICAgIHJldHVybiBuZXcgTWV0cmljKHtcbiAgICAgIHR5cGU6ICdSZXNvdXJjZScsXG4gICAgICByZXNvdXJjZToge1xuICAgICAgICBuYW1lOiAnbWVtb3J5JyxcbiAgICAgICAgdGFyZ2V0OiB0YXJnZXQuX3RvS3ViZSgpLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmFja3MgdGhlIGF2YWlsYWJsZSBTdG9yYWdlIG9mIHRoZSBwb2RzIGluIGEgdGFyZ2V0LlxuICAgKlxuICAgKiBOb3RlOiBTaW5jZSB0aGUgcmVzb3VyY2UgdXNhZ2VzIG9mIGFsbCB0aGUgY29udGFpbmVycyBhcmUgc3VtbWVkIHVwIHRoZSB0b3RhbFxuICAgKiBwb2QgdXRpbGl6YXRpb24gbWF5IG5vdCBhY2N1cmF0ZWx5IHJlcHJlc2VudCB0aGUgaW5kaXZpZHVhbCBjb250YWluZXIgcmVzb3VyY2VcbiAgICogdXNhZ2UuIFRoaXMgY291bGQgbGVhZCB0byBzaXR1YXRpb25zIHdoZXJlIGEgc2luZ2xlIGNvbnRhaW5lciBtaWdodCBiZSBydW5uaW5nXG4gICAqIHdpdGggaGlnaCB1c2FnZSBhbmQgdGhlIEhQQSB3aWxsIG5vdCBzY2FsZSBvdXQgYmVjYXVzZSB0aGUgb3ZlcmFsbCBwb2QgdXNhZ2VcbiAgICogaXMgc3RpbGwgd2l0aGluIGFjY2VwdGFibGUgbGltaXRzLlxuICAgKlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZXNvdXJjZVN0b3JhZ2UodGFyZ2V0OiBNZXRyaWNUYXJnZXQpOiBNZXRyaWMge1xuICAgIHJldHVybiBuZXcgTWV0cmljKHtcbiAgICAgIHR5cGU6ICdSZXNvdXJjZScsXG4gICAgICByZXNvdXJjZToge1xuICAgICAgICBuYW1lOiAnc3RvcmFnZScsXG4gICAgICAgIHRhcmdldDogdGFyZ2V0Ll90b0t1YmUoKSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVHJhY2tzIHRoZSBhdmFpbGFibGUgRXBoZW1lcmFsIFN0b3JhZ2Ugb2YgdGhlIHBvZHMgaW4gYSB0YXJnZXQuXG4gICAqXG4gICAqIE5vdGU6IFNpbmNlIHRoZSByZXNvdXJjZSB1c2FnZXMgb2YgYWxsIHRoZSBjb250YWluZXJzIGFyZSBzdW1tZWQgdXAgdGhlIHRvdGFsXG4gICAqIHBvZCB1dGlsaXphdGlvbiBtYXkgbm90IGFjY3VyYXRlbHkgcmVwcmVzZW50IHRoZSBpbmRpdmlkdWFsIGNvbnRhaW5lciByZXNvdXJjZVxuICAgKiB1c2FnZS4gVGhpcyBjb3VsZCBsZWFkIHRvIHNpdHVhdGlvbnMgd2hlcmUgYSBzaW5nbGUgY29udGFpbmVyIG1pZ2h0IGJlIHJ1bm5pbmdcbiAgICogd2l0aCBoaWdoIHVzYWdlIGFuZCB0aGUgSFBBIHdpbGwgbm90IHNjYWxlIG91dCBiZWNhdXNlIHRoZSBvdmVyYWxsIHBvZCB1c2FnZVxuICAgKiBpcyBzdGlsbCB3aXRoaW4gYWNjZXB0YWJsZSBsaW1pdHMuXG4gICAqXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlc291cmNlRXBoZW1lcmFsU3RvcmFnZSh0YXJnZXQ6IE1ldHJpY1RhcmdldCk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIG5ldyBNZXRyaWMoe1xuICAgICAgdHlwZTogJ1Jlc291cmNlJyxcbiAgICAgIHJlc291cmNlOiB7XG4gICAgICAgIG5hbWU6ICdlcGhlbWVyYWwtc3RvcmFnZScsXG4gICAgICAgIHRhcmdldDogdGFyZ2V0Ll90b0t1YmUoKSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgdHlwZTogc3RyaW5nO1xuICBwcml2YXRlIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgbWV0cmljOiBrOHMuTWV0cmljU3BlY1YyKSB7XG4gICAgdGhpcy50eXBlID0gbWV0cmljLnR5cGU7XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgX3RvS3ViZSgpOiBrOHMuTWV0cmljU3BlY1YyIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWM7XG4gIH1cblxufVxuXG5cbi8qKlxuICogQSBtZXRyaWMgY29uZGl0aW9uIHRoYXQgd2lsbCB0cmlnZ2VyIHNjYWxpbmcgYmVoYXZpb3Igd2hlbiBzYXRpc2ZpZWQuXG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiBNZXRyaWNUYXJnZXQuYXZlcmFnZVV0aWxpemF0aW9uKDcwKTsgLy8gNzAlIGF2ZXJhZ2UgdXRpbGl6YXRpb25cbiAqXG4gKi9cbmV4cG9ydCBjbGFzcyBNZXRyaWNUYXJnZXQge1xuICAvKipcbiAgKiBUYXJnZXQgYSBzcGVjaWZpYyB0YXJnZXQgdmFsdWUuXG4gICpcbiAgKiBAcGFyYW0gdmFsdWUgVGhlIHRhcmdldCB2YWx1ZS5cbiAgKi9cbiAgcHVibGljIHN0YXRpYyB2YWx1ZSh2YWx1ZTogbnVtYmVyKTogTWV0cmljVGFyZ2V0IHtcbiAgICByZXR1cm4gbmV3IE1ldHJpY1RhcmdldCh7XG4gICAgICB0eXBlOiAnVmFsdWUnLFxuICAgICAgdmFsdWU6IGs4cy5RdWFudGl0eS5mcm9tTnVtYmVyKHZhbHVlKSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUYXJnZXQgdGhlIGF2ZXJhZ2UgdmFsdWUgYWNyb3NzIGFsbCByZWxldmFudCBwb2RzLlxuICAgKlxuICAgKiBAcGFyYW0gYXZlcmFnZVZhbHVlIFRoZSBhdmVyYWdlIG1ldHJpYyB2YWx1ZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgYXZlcmFnZVZhbHVlKGF2ZXJhZ2VWYWx1ZTogbnVtYmVyKTogTWV0cmljVGFyZ2V0IHtcbiAgICByZXR1cm4gbmV3IE1ldHJpY1RhcmdldCh7XG4gICAgICB0eXBlOiAnQXZlcmFnZVZhbHVlJyxcbiAgICAgIGF2ZXJhZ2VWYWx1ZTogazhzLlF1YW50aXR5LmZyb21OdW1iZXIoYXZlcmFnZVZhbHVlKSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUYXJnZXQgYSBwZXJjZW50YWdlIHZhbHVlIGFjcm9zcyBhbGwgcmVsZXZhbnQgcG9kcy5cbiAgICpcbiAgICogQHBhcmFtIGF2ZXJhZ2VVdGlsaXphdGlvbiBUaGUgcGVyY2VudGFnZSBvZiB0aGUgdXRpbGl6YXRpb24gbWV0cmljLiBlLmcuIGA1MGAgZm9yIDUwJS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgYXZlcmFnZVV0aWxpemF0aW9uKGF2ZXJhZ2VVdGlsaXphdGlvbjogbnVtYmVyKTogTWV0cmljVGFyZ2V0IHtcbiAgICByZXR1cm4gbmV3IE1ldHJpY1RhcmdldCh7XG4gICAgICB0eXBlOiAnVXRpbGl6YXRpb24nLFxuICAgICAgYXZlcmFnZVV0aWxpemF0aW9uLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IG1ldHJpYzogazhzLk1ldHJpY1RhcmdldFYyKSB7IH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgX3RvS3ViZSgpOiBrOHMuTWV0cmljU3BlY1YyIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWM7XG4gIH1cbn1cblxuLyoqXG4gKiBEZWZpbmVzIHRoZSBzY2FsaW5nIGJlaGF2aW9yIGZvciBvbmUgZGlyZWN0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNjYWxpbmdSdWxlcyB7XG4gIC8qKlxuICAgKiBEZWZpbmVzIHRoZSB3aW5kb3cgb2YgcGFzdCBtZXRyaWNzIHRoYXQgdGhlIGF1dG9zY2FsZXIgc2hvdWxkIGNvbnNpZGVyIHdoZW4gY2FsY3VsYXRpbmdcbiAgICogd2V0aGVyIG9yIG5vdCBhdXRvc2NhbGluZyBzaG91bGQgb2NjdXIuXG4gICAqXG4gICAqIE1pbmltdW0gZHVyYXRpb24gaXMgMSBzZWNvbmQsIG1heCBpcyAxIGhvdXIuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIHN0YWJpbGl6YXRpb25XaW5kb3c6IER1cmF0aW9uLm1pbnV0ZXMoMzApXG4gICAqIC8vIEF1dG9zY2FsZXIgY29uc2lkZXJzIHRoZSBsYXN0IDMwIG1pbnV0ZXMgb2YgbWV0cmljcyB3aGVuIGRlY2lkaW5nIHdoZXRoZXIgdG8gc2NhbGUuXG4gICAqXG4gICAqIEBkZWZhdWx0ICogT24gc2NhbGUgZG93biBubyBzdGFiaWxpemF0aW9uIGlzIHBlcmZvcm1lZC5cbiAgICogKiBPbiBzY2FsZSB1cCBzdGFiaWxpemF0aW9uIGlzIHBlcmZvcm1lZCBmb3IgNSBtaW51dGVzLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhYmlsaXphdGlvbldpbmRvdz86IER1cmF0aW9uO1xuICAvKipcbiAgICogVGhlIHN0cmF0ZWd5IHRvIHVzZSB3aGVuIHNjYWxpbmcuXG4gICAqXG4gICAqIEBkZWZhdWx0IE1BWF9DSEFOR0VcbiAgICovXG4gIHJlYWRvbmx5IHN0cmF0ZWd5PzogU2NhbGluZ1N0cmF0ZWd5O1xuICAvKipcbiAgICogVGhlIHNjYWxpbmcgcG9saWNpZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0ICogU2NhbGUgdXBcbiAgICogICAgICAgICAgICAqIEluY3JlYXNlIG5vIG1vcmUgdGhhbiA0IHBvZHMgcGVyIDYwIHNlY29uZHNcbiAgICogICAgICAgICAgICAqIERvdWJsZSB0aGUgbnVtYmVyIG9mIHBvZHMgcGVyIDYwIHNlY29uZHNcbiAgICogICAgICAgICAgKiBTY2FsZSBkb3duXG4gICAqICAgICAgICAgICAgKiBEZWNyZWFzZSB0byBtaW5SZXBsaWNhIGNvdW50XG4gICAqL1xuICByZWFkb25seSBwb2xpY2llcz86IFNjYWxpbmdQb2xpY3lbXTtcbn1cblxuXG5leHBvcnQgZW51bSBTY2FsaW5nU3RyYXRlZ3kge1xuICAvKipcbiAgICogVXNlIHRoZSBwb2xpY3kgdGhhdCBwcm92aXNpb25zIHRoZSBtb3N0IGNoYW5nZXMuXG4gICAqL1xuICBNQVhfQ0hBTkdFID0gJ01heCcsXG4gIC8qKlxuICAgKiBVc2UgdGhlIHBvbGljeSB0aGF0IHByb3Zpc2lvbnMgdGhlIGxlYXN0IGFtb3VudCBvZiBjaGFuZ2VzLlxuICAgKi9cbiAgTUlOX0NIQU5HRSA9ICdNaW4nLFxuICAvKipcbiAgICogRGlzYWJsZXMgc2NhbGluZyBpbiB0aGlzIGRpcmVjdGlvbi5cbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgLSBPbWl0IHRoZSBTY2FsaW5nUnVsZSBpbnN0ZWFkXG4gICAqL1xuICBESVNBQkxFRCA9ICdEaXNhYmxlZCcsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NhbGluZ1BvbGljeSB7XG4gIC8qKlxuICAgKiBUaGUgdHlwZSBhbmQgcXVhbnRpdHkgb2YgcmVwbGljYXMgdG8gY2hhbmdlLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVwbGljYXM6IFJlcGxpY2FzO1xuICAvKipcbiAgICogVGhlIGFtb3VudCBvZiB0aW1lIHRoZSBzY2FsaW5nIHBvbGljeSBoYXMgdG9cbiAgICogY29udGludWUgc2NhbGluZyBiZWZvcmUgdGhlIHRhcmdldCBtZXRyaWMgbXVzdCBiZVxuICAgKiByZXZhbGlkYXRlZC5cbiAgICpcbiAgICogTXVzdCBiZSBncmVhdGVyIHRoYW4gMCBzZWNvbmRzIGFuZCBubyBsb25nZXIgdGhhbiAzMCBtaW51dGVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIDE1IHNlY29uZHNcbiAgICovXG4gIHJlYWRvbmx5IGR1cmF0aW9uPzogRHVyYXRpb247XG59XG5cblxuLyoqXG4gKiBUaGUgYW1vdW50IG9mIHJlcGxpY2FzIHRoYXQgd2lsbCBjaGFuZ2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBSZXBsaWNhcyB7XG5cbiAgLyoqXG4gICAqIENoYW5nZXMgdGhlIHBvZHMgYnkgYSBwZXJjZW50YWdlIG9mIHRoZSBpdCdzIGN1cnJlbnQgdmFsdWUuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgcGVyY2VudGFnZSBvZiBjaGFuZ2UgdG8gYXBwbHkuIE11c3QgYmUgZ3JlYXRlciB0aGFuIDAuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHBlcmNlbnQodmFsdWU6IG51bWJlcikge1xuICAgIHJldHVybiBuZXcgUmVwbGljYXMgKHtcbiAgICAgIHR5cGU6ICdQZXJjZW50JyxcbiAgICAgIHZhbHVlLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENoYW5nZXMgdGhlIHBvZHMgYnkgYSBwZXJjZW50YWdlIG9mIHRoZSBpdCdzIGN1cnJlbnQgdmFsdWUuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgYW1vdW50IG9mIGNoYW5nZSB0byBhcHBseS4gTXVzdCBiZSBncmVhdGVyIHRoYW4gMC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgYWJzb2x1dGUodmFsdWU6IG51bWJlcikge1xuICAgIHJldHVybiBuZXcgUmVwbGljYXMoe1xuICAgICAgdHlwZTogJ1BvZHMnLFxuICAgICAgdmFsdWUsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcmVwbGljYXM6IFBpY2s8azhzLkhwYVNjYWxpbmdQb2xpY3lWMiwgJ3R5cGUnIHwgJ3ZhbHVlJz4pIHsgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBfdG9LdWJlKCk6IFBpY2s8azhzLkhwYVNjYWxpbmdQb2xpY3lWMiwgJ3R5cGUnIHwgJ3ZhbHVlJz4ge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiB0aGlzLnJlcGxpY2FzLnR5cGUsXG4gICAgICB2YWx1ZTogdGhpcy5yZXBsaWNhcy52YWx1ZSxcbiAgICB9O1xuICB9XG59XG4iXX0=
|