aws-cdk-neuronx-patterns 0.2.1 → 0.3.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 +604 -99
- package/API.md +990 -210
- package/README.ja.md +18 -6
- package/README.md +16 -5
- package/lib/base/aws-batch/neuronx-batch-compute-environment.js +1 -1
- package/lib/base/aws-batch/neuronx-batch-ecs-job-definition.js +1 -1
- package/lib/base/aws-batch/neuronx-batch.js +1 -1
- package/lib/base/aws-ecs-patterns/application-load-balanced-neuronx-service.js +4 -4
- package/lib/base/neuronx/deep-learning-containers.js +3 -3
- package/lib/base/neuronx/model.js +2 -2
- package/lib/base/neuronx/neuron-optimized-machine-image.js +1 -1
- package/lib/base/neuronx/neuronx-instance-type.js +4 -4
- package/lib/base/neuronx-compiler/index.d.ts +3 -1
- package/lib/base/neuronx-compiler/index.js +4 -2
- package/lib/base/neuronx-compiler/{neuronx-compiler.d.ts → neuronx-compiler-base.d.ts} +74 -32
- package/lib/base/neuronx-compiler/neuronx-compiler-base.js +129 -0
- package/lib/base/neuronx-compiler/neuronx-cross-compiler.d.ts +30 -0
- package/lib/base/neuronx-compiler/neuronx-cross-compiler.js +83 -0
- package/lib/base/neuronx-compiler/neuronx-native-compiler.d.ts +18 -0
- package/lib/base/neuronx-compiler/neuronx-native-compiler.js +69 -0
- package/lib/base/server-engine/vllm-engine/vllm-engine-argments.js +1 -1
- package/lib/sagemaker-inference-toolkit-tnx/sagemaker-inference-toolkit-tnx-compiler.js +2 -2
- package/lib/sagemaker-inference-toolkit-tnx/sagemaker-inference-toolkit-tnx-sagemaker.d.ts +1 -1
- package/lib/sagemaker-inference-toolkit-tnx/sagemaker-inference-toolkit-tnx-sagemaker.js +2 -2
- package/lib/vllm-nxd-inference/vllm-nxd-inference-compiler.d.ts +8 -0
- package/lib/vllm-nxd-inference/vllm-nxd-inference-compiler.js +32 -4
- package/lib/vllm-nxd-inference/vllm-nxd-inference-ecs-patterns.js +6 -6
- package/package.json +5 -5
- package/scripts/compile/vllm-nxd-inference/Dockerfile +5 -0
- package/scripts/compile/vllm-nxd-inference/entrypoint.sh +39 -14
- package/lib/base/neuronx-compiler/neuronx-compiler.js +0 -166
|
@@ -62,7 +62,7 @@ class SageMakerInferenceToolkitTnxCompiler extends constructs_1.Construct {
|
|
|
62
62
|
if (quantDtype) {
|
|
63
63
|
compiledArtifactPathPrefix = `${compiledArtifactPathPrefix}-quant${quantDtype}`;
|
|
64
64
|
}
|
|
65
|
-
const compiler = new neuronx_compiler_1.
|
|
65
|
+
const compiler = new neuronx_compiler_1.NeuronxNativeCompiler(this, "Resource", {
|
|
66
66
|
...props,
|
|
67
67
|
neuronxInstanceType: availableInstancePatterns[0].neuronxInstanceType,
|
|
68
68
|
artifactS3Prefix: "test",
|
|
@@ -94,4 +94,4 @@ class SageMakerInferenceToolkitTnxCompiler extends constructs_1.Construct {
|
|
|
94
94
|
}
|
|
95
95
|
}
|
|
96
96
|
exports.SageMakerInferenceToolkitTnxCompiler = SageMakerInferenceToolkitTnxCompiler;
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FnZW1ha2VyLWluZmVyZW5jZS10b29sa2l0LXRueC1jb21waWxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zYWdlbWFrZXItaW5mZXJlbmNlLXRvb2xraXQtdG54L3NhZ2VtYWtlci1pbmZlcmVuY2UtdG9vbGtpdC10bngtY29tcGlsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsa0VBQWlFO0FBS2pFLDJDQUF1QztBQUN2QywrQkFBNEI7QUFDNUIsNkNBWXlCO0FBQ3pCLCtEQUlrQztBQXdDbEM7Ozs7R0FJRztBQUNILE1BQWEsd0NBQXdDO0lBR25ELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsWUFBMkI7UUFDbkUsTUFBTSxLQUFLLEdBQUcsSUFBSSx1Q0FBbUIsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQy9DLFNBQVMsRUFBRSxJQUFBLFdBQUksRUFDYixTQUFTLEVBQ1QsdURBQXVELENBQ3hEO1lBQ0QsU0FBUyxFQUFFO2dCQUNULFVBQVUsRUFBRSxZQUFZLENBQUMsU0FBUztnQkFDbEMsU0FBUyxFQUFFLFlBQVksQ0FBQyxRQUFRO2FBQ2pDO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUMxQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsWUFBWSxDQUFDLGdCQUFnQixDQUFDO0lBQ3hELENBQUM7Q0FDRjtBQWpCRCw0RkFpQkM7QUFtREQ7O0dBRUc7QUFDSCxNQUFhLG9DQUFxQyxTQUFRLHNCQUFTO0lBT2pFLFlBQ0UsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLEtBQWdEO1FBRWhELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakIsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLGNBQWMsRUFBRSxRQUFRLElBQUksa0JBQVEsQ0FBQyxZQUFZLENBQUM7UUFDekUsTUFBTSxTQUFTLEdBQUcsS0FB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QkFDWCxRQUFRLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPO2dCQUM3QixTQUFTLEVBQUUsUUFBUSxDQUFDLFFBQVEsRUFBRTtnQkFDOUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxRQUFRLEVBQUU7Z0JBQ2xDLFNBQVMsRUFBRSxRQUFRLENBQUMsUUFBUSxFQUFFO2dCQUM5QixXQUFXLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ3pDLGVBQWUsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FDMUMsMEJBQTBCLENBQzNCO2FBQ0Y7U0FDRixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDM0IsQ0FBQztJQUNELE9BQU87UUFDTCxPQUFPO1lBQ0wsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRTtZQUMxQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMzQixVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7U0FDNUIsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQXRHRCxvRkFzR0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb250YWluZXJJbWFnZUJ1aWxkIH0gZnJvbSBcIkBjZGtsYWJzL2RlcGxveS10aW1lLWJ1aWxkXCI7XG5pbXBvcnQgeyBTaXplIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgKiBhcyBlYzIgZnJvbSBcImF3cy1jZGstbGliL2F3cy1lYzJcIjtcbmltcG9ydCB7IENvbnRhaW5lckltYWdlIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1lY3NcIjtcbmltcG9ydCB7IElCdWNrZXQgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXMzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gXCJwYXRoXCI7XG5pbXBvcnQge1xuICBjYWxjTWVtb3J5Rm9vdHByaW50LFxuICBjYWxjVGVuc29yUGFyYWxsZWwsXG4gIERhdGFUeXBlQml0cyxcbiAgSU5ldXJvbnhJbWFnZSxcbiAgSU5ldXJvbnhJbnN0YW5jZVR5cGUsXG4gIGluZmVyTWVtb3J5Rm9vdHByaW50RnJvbVBhcmFtZXRlcnMsXG4gIE1vZGVsLFxuICBOZXVyb254SW5zdGFuY2VUeXBlLFxuICBPcHRMZXZlbCxcbiAgUHl0b3JjaFRyYWluaW5nTmV1cm9ueEltYWdlLFxuICBRdWFudER0eXBlLFxufSBmcm9tIFwiLi4vYmFzZS9uZXVyb254XCI7XG5pbXBvcnQge1xuICBJTmV1cm9ueENvbnRhaW5lckltYWdlLFxuICBOZXVyb254Q29tcGlsZWRNb2RlbCxcbiAgTmV1cm9ueENvbXBpbGVyLFxufSBmcm9tIFwiLi4vYmFzZS9uZXVyb254LWNvbXBpbGVyXCI7XG5cbi8qKlxuICogQ29tcGlsZSBvcHRpb25zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNhZ2VNYWtlckluZmVyZW5jZVRvb2xraXRUbnhDb21waWxlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBOdW1iZXIgb2YgdGVuc29yIHBhcmFsbGVsIGdyb3Vwcy5cbiAgICogQGRlZmF1bHQgLSBjYWxjIGZyb20gcGFyYW1ldGVycyBhbmQgcXVhbnREdHlwZVxuICAgKi9cbiAgcmVhZG9ubHkgdHBEZWdyZWU/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBNYXhpbXVtIG51bWJlciBvZiBzZXF1ZW5jZXMgcGVyIGl0ZXJhdGlvbi5cbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgcmVhZG9ubHkgYmF0Y2hTaXplPzogbnVtYmVyO1xuICAvKipcbiAgICogQGRlZmF1bHQgLSBObyBxdWFudFxuICAgKi9cbiAgcmVhZG9ubHkgcXVhbnREdHlwZT86IFF1YW50RHR5cGU7XG4gIC8qKlxuICAgKiBAZGVmYXVsdCA0MDk2XG4gICAqL1xuICByZWFkb25seSBuUG9zaXRpb25zPzogbnVtYmVyO1xuICAvKipcbiAgICogQGRlZmF1bHQgT3B0TGV2ZWwuQkVTVF9CQUxBTkNFXG4gICAqL1xuICByZWFkb25seSBvcHRMZXZlbD86IE9wdExldmVsO1xufVxuXG4vKipcbiAqIFRoZSBtb2RlbCBjb21waWxlZCBieSBOZXVyb254IGNvbXBpbGVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNhZ2VNYWtlckluZmVyZW5jZVRvb2xraXRUbnhDb21waWxlZE1vZGVsIGV4dGVuZHMgTmV1cm9ueENvbXBpbGVkTW9kZWwge1xuICByZWFkb25seSBxdWFudER0eXBlPzogUXVhbnREdHlwZTtcbiAgcmVhZG9ubHkgb3B0TGV2ZWw/OiBPcHRMZXZlbDtcbiAgcmVhZG9ubHkgdHBEZWdyZWU6IG51bWJlcjtcbiAgcmVhZG9ubHkgblBvc2l0aW9uczogbnVtYmVyO1xufVxuXG4vKipcbiAqIENvbXBpbGUgaW1hZ2UgZm9yIFNhZ2VNYWtlckluZmVyZW5jZVRvb2xraXRUbnhDb21waWxlLlxuICogQGV4YW1wbGVcbiAqIG5ldyBTYWdlTWFrZXJJbmZlcmVuY2VUb29sa2l0VG54Q29tcGlsZUltYWdlKHNjb3BlLCAnQ29tcGlsZUltYWdlJywgUHl0b3JjaFRyYWluaW5nTmV1cm9ueEltYWdlLkxBVEVTVCk7XG4gKi9cbmV4cG9ydCBjbGFzcyBTYWdlTWFrZXJJbmZlcmVuY2VUb29sa2l0VG54Q29tcGlsZUltYWdlIGltcGxlbWVudHMgSU5ldXJvbnhDb250YWluZXJJbWFnZSB7XG4gIHJlYWRvbmx5IGltYWdlOiBDb250YWluZXJJbWFnZTtcbiAgcmVhZG9ubHkgbmV1cm9uU2RrVmVyc2lvbjogc3RyaW5nO1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBuZXJ1b254SW1hZ2U6IElOZXVyb254SW1hZ2UpIHtcbiAgICBjb25zdCBidWlsZCA9IG5ldyBDb250YWluZXJJbWFnZUJ1aWxkKHNjb3BlLCBpZCwge1xuICAgICAgZGlyZWN0b3J5OiBqb2luKFxuICAgICAgICBfX2Rpcm5hbWUsXG4gICAgICAgIFwiLi4vLi4vc2NyaXB0cy9jb21waWxlL3NhZ2VtYWtlci1pbmZlcmVuY2UtdG9vbGtpdC10bnhcIixcbiAgICAgICksXG4gICAgICBidWlsZEFyZ3M6IHtcbiAgICAgICAgSU1BR0VfTkFNRTogbmVydW9ueEltYWdlLmltYWdlTmFtZSxcbiAgICAgICAgSU1BR0VfVEFHOiBuZXJ1b254SW1hZ2UuaW1hZ2VUYWcsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHRoaXMuaW1hZ2UgPSBidWlsZC50b0Vjc0RvY2tlckltYWdlQ29kZSgpO1xuICAgIHRoaXMubmV1cm9uU2RrVmVyc2lvbiA9IG5lcnVvbnhJbWFnZS5uZXVyb25TZGtWZXJzaW9uO1xuICB9XG59XG5cbi8qKlxuICogUHJvcHMgb2YgTmV1cm9ueENvbXBpbGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2FnZU1ha2VySW5mZXJlbmNlVG9vbGtpdFRueENvbXBpbGVyUHJvcHMge1xuICAvKipcbiAgICogVlBDIGluIHdoaWNoIHRoaXMgd2lsbCBsYXVuY2ggY29tcGlsZSB3b3JrZXIgaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSB2cGM6IGVjMi5JVnBjO1xuICAvKipcbiAgICogVGhlIGJ1Y2tldCB0byB1cGxvYWQgY29tcGlsZWQgYXJ0aWZhY3RzLlxuICAgKi9cbiAgcmVhZG9ubHkgYnVja2V0OiBJQnVja2V0O1xuICAvKipcbiAgICogVGhlIG1vZGVsIHRvIGJlIGNvbXBpbGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgbW9kZWw6IE1vZGVsO1xuICAvKipcbiAgICogVGhlIGluc3RhbmNlIHR5cGUgb2YgY29tcGlsZSB3b3JrZXIgaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSBuZXVyb254SW5zdGFuY2VUeXBlPzogSU5ldXJvbnhJbnN0YW5jZVR5cGU7XG4gIC8qKlxuICAgKiBUaGUgcm9vdCB2b2x1bWUgb2Ygd29ya2VyIGluc3RhbmNlLlxuICAgKiBAZGVmYXVsdCAtIE4gYmlsaW9uIHBhcmFtZXRlcnMgKiA1R2lCIEVCU1xuICAgKi9cbiAgcmVhZG9ubHkgdm9sdW1lU2l6ZT86IFNpemU7XG4gIC8qKlxuICAgKiBDb21waWxlIHJ1bnRpbWUgaW1hZ2UuXG4gICAqIEBkZWZhdWx0IC0gbGF0ZXN0IGltYWdlXG4gICAqL1xuICByZWFkb25seSBpbWFnZT86IFNhZ2VNYWtlckluZmVyZW5jZVRvb2xraXRUbnhDb21waWxlSW1hZ2U7XG4gIC8qKlxuICAgKiBOZXVyb254IGNvbXBpbGUgb3B0aW9ucy5cbiAgICogQGRlZmF1bHQgLSBFYWNoIHByb3BlcnRpZXMgYXJlIHNldCBkZWZhdWx0LlxuICAgKi9cbiAgcmVhZG9ubHkgY29tcGlsZU9wdGlvbnM/OiBTYWdlTWFrZXJJbmZlcmVuY2VUb29sa2l0VG54Q29tcGlsZU9wdGlvbnM7XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byB1c2Ugc3BvdCBpbnN0YW5jZXMuIFNwb3QgaW5zdGFuY2VzIGFyZSBsZXNzIGV4cGVuc2l2ZSBFQzIgaW5zdGFuY2VzIHRoYXQgY2FuIGJlIHJlY2xhaW1lZCBieSBFQzIgYXQgYW55IHRpbWU7IHlvdXIgam9iIHdpbGwgYmUgZ2l2ZW4gdHdvIG1pbnV0ZXMgb2Ygbm90aWNlIGJlZm9yZSByZWNsYW1hdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHNwb3Q/OiBib29sZWFuO1xuICAvKipcbiAgICogVGhlIFZQQyBTdWJuZXRzIHRoaXMgQ29tcHV0ZSBFbnZpcm9ubWVudCB3aWxsIGxhdW5jaCBpbnN0YW5jZXMgaW4uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbmV3IHN1Ym5ldHMgd2lsbCBiZSBjcmVhdGVkXG4gICAqL1xuICByZWFkb25seSB2cGNTdWJuZXRzPzogZWMyLlN1Ym5ldFNlbGVjdGlvbjtcbn1cblxuLyoqXG4gKiBOZXVyb254IGNvbXBpbGUgY29uc3RydWN0LiBDb21waWxlIHRoZSBtb2RlbCB0byB3b3JrIHdpdGggSW5mZXJlbnRpYTIgYW5kIFRyYWluaXVtMSBhbmQgdXBsb2FkIGl0IHRvIGFuIFMzIGJ1Y2tldC5cbiAqL1xuZXhwb3J0IGNsYXNzIFNhZ2VNYWtlckluZmVyZW5jZVRvb2xraXRUbnhDb21waWxlciBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHJlYWRvbmx5IHF1YW50RHR5cGU/OiBRdWFudER0eXBlO1xuICByZWFkb25seSBvcHRMZXZlbD86IE9wdExldmVsO1xuICByZWFkb25seSB0cERlZ3JlZTogbnVtYmVyO1xuICByZWFkb25seSBuUG9zaXRpb25zOiBudW1iZXI7XG4gIG1vZGVsOiBNb2RlbDtcbiAgcHJpdmF0ZSByZWFkb25seSBjb21waWxlcjogTmV1cm9ueENvbXBpbGVyO1xuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IFNhZ2VNYWtlckluZmVyZW5jZVRvb2xraXRUbnhDb21waWxlclByb3BzLFxuICApIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIGNvbnN0IG9wdExldmVsID0gcHJvcHMuY29tcGlsZU9wdGlvbnM/Lm9wdExldmVsID8/IE9wdExldmVsLkJFU1RfQkFMQU5DRTtcbiAgICBjb25zdCBiYXRjaFNpemUgPSBwcm9wcy5jb21waWxlT3B0aW9ucz8uYmF0Y2hTaXplID8/IDE7XG4gICAgY29uc3QgblBvc2l0aW9ucyA9IHByb3BzLmNvbXBpbGVPcHRpb25zPy5uUG9zaXRpb25zID8/IDQwOTY7XG4gICAgY29uc3QgcXVhbnREdHlwZSA9IHByb3BzLmNvbXBpbGVPcHRpb25zPy5xdWFudER0eXBlO1xuICAgIGNvbnN0IG1lbW9yeUZvb3RwcmludCA9IHByb3BzLm1vZGVsLm9wdGlvbnMuY29uZmlnXG4gICAgICA/IGNhbGNNZW1vcnlGb290cHJpbnQoXG4gICAgICAgICAgcHJvcHMubW9kZWwub3B0aW9ucy5jb25maWcuZW1iZWRkaW5nRGltZW5zaW9uLFxuICAgICAgICAgIHByb3BzLm1vZGVsLm9wdGlvbnMuY29uZmlnLmxheWVycyxcbiAgICAgICAgICBEYXRhVHlwZUJpdHMuQkYxNl9PUl9GUDE2LFxuICAgICAgICAgIG5Qb3NpdGlvbnMsXG4gICAgICAgICAgYmF0Y2hTaXplLFxuICAgICAgICApXG4gICAgICA6IGluZmVyTWVtb3J5Rm9vdHByaW50RnJvbVBhcmFtZXRlcnMoXG4gICAgICAgICAgcHJvcHMubW9kZWwub3B0aW9ucy5wYXJhbWV0ZXJzLFxuICAgICAgICAgIG5Qb3NpdGlvbnMsXG4gICAgICAgICAgYmF0Y2hTaXplLFxuICAgICAgICApO1xuICAgIGNvbnN0IG5ldXJvbnhJbnN0YW5jZVR5cGVzID0gcHJvcHMubmV1cm9ueEluc3RhbmNlVHlwZVxuICAgICAgPyBbcHJvcHMubmV1cm9ueEluc3RhbmNlVHlwZV1cbiAgICAgIDogW1xuICAgICAgICAgIE5ldXJvbnhJbnN0YW5jZVR5cGUuSU5GMl84WExBUkdFLFxuICAgICAgICAgIE5ldXJvbnhJbnN0YW5jZVR5cGUuSU5GMl8yNFhMQVJHRSxcbiAgICAgICAgICBOZXVyb254SW5zdGFuY2VUeXBlLklORjJfNDhYTEFSR0UsXG4gICAgICAgIF07XG4gICAgY29uc3QgYXZhaWxhYmxlSW5zdGFuY2VQYXR0ZXJucyA9IG5ldXJvbnhJbnN0YW5jZVR5cGVzXG4gICAgICAuZmxhdE1hcCgobmV1cm9ueEluc3RhbmNlVHlwZSkgPT5cbiAgICAgICAgY2FsY1RlbnNvclBhcmFsbGVsKFxuICAgICAgICAgIG5ldXJvbnhJbnN0YW5jZVR5cGUsXG4gICAgICAgICAgbWVtb3J5Rm9vdHByaW50LFxuICAgICAgICAgIHByb3BzLm1vZGVsLm9wdGlvbnMuY29uZmlnPy5hdHRlbnRpb25IZWFkcyxcbiAgICAgICAgKS5tYXAoKHYpID0+ICh7XG4gICAgICAgICAgbmV1cm9ueEluc3RhbmNlVHlwZSxcbiAgICAgICAgICAuLi52LFxuICAgICAgICB9KSksXG4gICAgICApXG4gICAgICAuZmlsdGVyKFxuICAgICAgICAocGF0dGVybikgPT5cbiAgICAgICAgICAhcHJvcHMuY29tcGlsZU9wdGlvbnM/LnRwRGVncmVlIHx8XG4gICAgICAgICAgcGF0dGVybi50cCA9PT0gcHJvcHMuY29tcGlsZU9wdGlvbnMudHBEZWdyZWUsXG4gICAgICApO1xuICAgIGlmIChhdmFpbGFibGVJbnN0YW5jZVBhdHRlcm5zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgTm8gYXZhaWxhYmxlIGluc3RhbmNlIHR5cGUuIFlvdSBjYW4gdXNlIHRwRGVncmVlIGFyZSAke2F2YWlsYWJsZUluc3RhbmNlUGF0dGVybnMubWFwKChwKSA9PiBwLnRwKS5qb2luKFwiLCBcIil9LmAsXG4gICAgICApO1xuICAgIH1cbiAgICBjb25zdCB0cERlZ3JlZSA9IGF2YWlsYWJsZUluc3RhbmNlUGF0dGVybnNbMF0udHA7XG4gICAgY29uc3QgaW1hZ2UgPVxuICAgICAgcHJvcHMuaW1hZ2UgPz9cbiAgICAgIG5ldyBTYWdlTWFrZXJJbmZlcmVuY2VUb29sa2l0VG54Q29tcGlsZUltYWdlKFxuICAgICAgICB0aGlzLFxuICAgICAgICBcIkNvbXBpbGVJbWFnZVwiLFxuICAgICAgICBQeXRvcmNoVHJhaW5pbmdOZXVyb254SW1hZ2UuTEFURVNULFxuICAgICAgKTtcbiAgICBsZXQgY29tcGlsZWRBcnRpZmFjdFBhdGhQcmVmaXggPSBgJHtwcm9wcy5tb2RlbC5tb2RlbElkfS9uZXVyb254LSR7aW1hZ2UubmV1cm9uU2RrVmVyc2lvbn0vdHAke3RwRGVncmVlfS1ucCR7blBvc2l0aW9uc30tb3B0JHtvcHRMZXZlbH1gO1xuICAgIGlmIChxdWFudER0eXBlISEpIHtcbiAgICAgIGNvbXBpbGVkQXJ0aWZhY3RQYXRoUHJlZml4ID0gYCR7Y29tcGlsZWRBcnRpZmFjdFBhdGhQcmVmaXh9LXF1YW50JHtxdWFudER0eXBlfWA7XG4gICAgfVxuICAgIGNvbnN0IGNvbXBpbGVyID0gbmV3IE5ldXJvbnhDb21waWxlcih0aGlzLCBcIlJlc291cmNlXCIsIHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgbmV1cm9ueEluc3RhbmNlVHlwZTogYXZhaWxhYmxlSW5zdGFuY2VQYXR0ZXJuc1swXS5uZXVyb254SW5zdGFuY2VUeXBlLFxuICAgICAgYXJ0aWZhY3RTM1ByZWZpeDogXCJ0ZXN0XCIsXG4gICAgICBpbWFnZTogaW1hZ2UsXG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICBNT0RFTF9JRDogcHJvcHMubW9kZWwubW9kZWxJZCxcbiAgICAgICAgVFBfREVHUkVFOiB0cERlZ3JlZS50b1N0cmluZygpLFxuICAgICAgICBOX1BPU0lUSU9OUzogblBvc2l0aW9ucy50b1N0cmluZygpLFxuICAgICAgICBPUFRfTEVWRUw6IG9wdExldmVsLnRvU3RyaW5nKCksXG4gICAgICAgIFFVQU5UX0RUWVBFOiBxdWFudER0eXBlPy50b1N0cmluZygpID8/IFwiXCIsXG4gICAgICAgIEFSVElGQUNUX1MzX1VSTDogcHJvcHMuYnVja2V0LnMzVXJsRm9yT2JqZWN0KFxuICAgICAgICAgIGNvbXBpbGVkQXJ0aWZhY3RQYXRoUHJlZml4LFxuICAgICAgICApLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICB0aGlzLnRwRGVncmVlID0gdHBEZWdyZWU7XG4gICAgdGhpcy5uUG9zaXRpb25zID0gblBvc2l0aW9ucztcbiAgICB0aGlzLnF1YW50RHR5cGUgPSBxdWFudER0eXBlO1xuICAgIHRoaXMub3B0TGV2ZWwgPSBvcHRMZXZlbDtcbiAgICB0aGlzLm1vZGVsID0gcHJvcHMubW9kZWw7XG4gICAgdGhpcy5jb21waWxlciA9IGNvbXBpbGVyO1xuICB9XG4gIGNvbXBpbGUoKTogU2FnZU1ha2VySW5mZXJlbmNlVG9vbGtpdFRueENvbXBpbGVkTW9kZWwge1xuICAgIHJldHVybiB7XG4gICAgICAuLi50aGlzLmNvbXBpbGVyLmNvbXBpbGUoKSxcbiAgICAgIHRwRGVncmVlOiB0aGlzLnRwRGVncmVlLFxuICAgICAgb3B0TGV2ZWw6IHRoaXMub3B0TGV2ZWwsXG4gICAgICBuUG9zaXRpb25zOiB0aGlzLm5Qb3NpdGlvbnMsXG4gICAgICBxdWFudER0eXBlOiB0aGlzLnF1YW50RHR5cGUsXG4gICAgfTtcbiAgfVxufVxuIl19
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FnZW1ha2VyLWluZmVyZW5jZS10b29sa2l0LXRueC1jb21waWxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zYWdlbWFrZXItaW5mZXJlbmNlLXRvb2xraXQtdG54L3NhZ2VtYWtlci1pbmZlcmVuY2UtdG9vbGtpdC10bngtY29tcGlsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsa0VBQWlFO0FBS2pFLDJDQUF1QztBQUN2QywrQkFBNEI7QUFDNUIsNkNBWXlCO0FBQ3pCLCtEQUlrQztBQXdDbEM7Ozs7R0FJRztBQUNILE1BQWEsd0NBQXdDO0lBR25ELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsWUFBMkI7UUFDbkUsTUFBTSxLQUFLLEdBQUcsSUFBSSx1Q0FBbUIsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQy9DLFNBQVMsRUFBRSxJQUFBLFdBQUksRUFDYixTQUFTLEVBQ1QsdURBQXVELENBQ3hEO1lBQ0QsU0FBUyxFQUFFO2dCQUNULFVBQVUsRUFBRSxZQUFZLENBQUMsU0FBUztnQkFDbEMsU0FBUyxFQUFFLFlBQVksQ0FBQyxRQUFRO2FBQ2pDO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUMxQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsWUFBWSxDQUFDLGdCQUFnQixDQUFDO0lBQ3hELENBQUM7Q0FDRjtBQWpCRCw0RkFpQkM7QUFtREQ7O0dBRUc7QUFDSCxNQUFhLG9DQUFxQyxTQUFRLHNCQUFTO0lBT2pFLFlBQ0UsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLEtBQWdEO1FBRWhELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakIsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLGNBQWMsRUFBRSxRQUFRLElBQUksa0JBQVEsQ0FBQyxZQUFZLENBQUM7UUFDekUsTUFBTSxTQUFTLEdBQUcsS0FB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Z0JBQ1gsUUFBUSxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTztnQkFDN0IsU0FBUyxFQUFFLFFBQVEsQ0FBQyxRQUFRLEVBQUU7Z0JBQzlCLFdBQVcsRUFBRSxVQUFVLENBQUMsUUFBUSxFQUFFO2dCQUNsQyxTQUFTLEVBQUUsUUFBUSxDQUFDLFFBQVEsRUFBRTtnQkFDOUIsV0FBVyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUN6QyxlQUFlLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQzFDLDBCQUEwQixDQUMzQjthQUNGO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzNCLENBQUM7SUFDRCxPQUFPO1FBQ0wsT0FBTztZQUNMLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUU7WUFDMUIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDM0IsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1NBQzVCLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUF0R0Qsb0ZBc0dDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udGFpbmVySW1hZ2VCdWlsZCB9IGZyb20gXCJAY2RrbGFicy9kZXBsb3ktdGltZS1idWlsZFwiO1xuaW1wb3J0IHsgU2l6ZSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0ICogYXMgZWMyIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWMyXCI7XG5pbXBvcnQgeyBDb250YWluZXJJbWFnZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWNzXCI7XG5pbXBvcnQgeyBJQnVja2V0IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zM1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IGpvaW4gfSBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHtcbiAgY2FsY01lbW9yeUZvb3RwcmludCxcbiAgY2FsY1RlbnNvclBhcmFsbGVsLFxuICBEYXRhVHlwZUJpdHMsXG4gIElOZXVyb254SW1hZ2UsXG4gIElOZXVyb254SW5zdGFuY2VUeXBlLFxuICBpbmZlck1lbW9yeUZvb3RwcmludEZyb21QYXJhbWV0ZXJzLFxuICBNb2RlbCxcbiAgTmV1cm9ueEluc3RhbmNlVHlwZSxcbiAgT3B0TGV2ZWwsXG4gIFB5dG9yY2hUcmFpbmluZ05ldXJvbnhJbWFnZSxcbiAgUXVhbnREdHlwZSxcbn0gZnJvbSBcIi4uL2Jhc2UvbmV1cm9ueFwiO1xuaW1wb3J0IHtcbiAgSU5ldXJvbnhDb250YWluZXJJbWFnZSxcbiAgTmV1cm9ueENvbXBpbGVkTW9kZWwsXG4gIE5ldXJvbnhOYXRpdmVDb21waWxlcixcbn0gZnJvbSBcIi4uL2Jhc2UvbmV1cm9ueC1jb21waWxlclwiO1xuXG4vKipcbiAqIENvbXBpbGUgb3B0aW9ucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTYWdlTWFrZXJJbmZlcmVuY2VUb29sa2l0VG54Q29tcGlsZU9wdGlvbnMge1xuICAvKipcbiAgICogTnVtYmVyIG9mIHRlbnNvciBwYXJhbGxlbCBncm91cHMuXG4gICAqIEBkZWZhdWx0IC0gY2FsYyBmcm9tIHBhcmFtZXRlcnMgYW5kIHF1YW50RHR5cGVcbiAgICovXG4gIHJlYWRvbmx5IHRwRGVncmVlPzogbnVtYmVyO1xuICAvKipcbiAgICogTWF4aW11bSBudW1iZXIgb2Ygc2VxdWVuY2VzIHBlciBpdGVyYXRpb24uXG4gICAqIEBkZWZhdWx0IDFcbiAgICovXG4gIHJlYWRvbmx5IGJhdGNoU2l6ZT86IG51bWJlcjtcbiAgLyoqXG4gICAqIEBkZWZhdWx0IC0gTm8gcXVhbnRcbiAgICovXG4gIHJlYWRvbmx5IHF1YW50RHR5cGU/OiBRdWFudER0eXBlO1xuICAvKipcbiAgICogQGRlZmF1bHQgNDA5NlxuICAgKi9cbiAgcmVhZG9ubHkgblBvc2l0aW9ucz86IG51bWJlcjtcbiAgLyoqXG4gICAqIEBkZWZhdWx0IE9wdExldmVsLkJFU1RfQkFMQU5DRVxuICAgKi9cbiAgcmVhZG9ubHkgb3B0TGV2ZWw/OiBPcHRMZXZlbDtcbn1cblxuLyoqXG4gKiBUaGUgbW9kZWwgY29tcGlsZWQgYnkgTmV1cm9ueCBjb21waWxlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTYWdlTWFrZXJJbmZlcmVuY2VUb29sa2l0VG54Q29tcGlsZWRNb2RlbCBleHRlbmRzIE5ldXJvbnhDb21waWxlZE1vZGVsIHtcbiAgcmVhZG9ubHkgcXVhbnREdHlwZT86IFF1YW50RHR5cGU7XG4gIHJlYWRvbmx5IG9wdExldmVsPzogT3B0TGV2ZWw7XG4gIHJlYWRvbmx5IHRwRGVncmVlOiBudW1iZXI7XG4gIHJlYWRvbmx5IG5Qb3NpdGlvbnM6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBDb21waWxlIGltYWdlIGZvciBTYWdlTWFrZXJJbmZlcmVuY2VUb29sa2l0VG54Q29tcGlsZS5cbiAqIEBleGFtcGxlXG4gKiBuZXcgU2FnZU1ha2VySW5mZXJlbmNlVG9vbGtpdFRueENvbXBpbGVJbWFnZShzY29wZSwgJ0NvbXBpbGVJbWFnZScsIFB5dG9yY2hUcmFpbmluZ05ldXJvbnhJbWFnZS5MQVRFU1QpO1xuICovXG5leHBvcnQgY2xhc3MgU2FnZU1ha2VySW5mZXJlbmNlVG9vbGtpdFRueENvbXBpbGVJbWFnZSBpbXBsZW1lbnRzIElOZXVyb254Q29udGFpbmVySW1hZ2Uge1xuICByZWFkb25seSBpbWFnZTogQ29udGFpbmVySW1hZ2U7XG4gIHJlYWRvbmx5IG5ldXJvblNka1ZlcnNpb246IHN0cmluZztcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgbmVydW9ueEltYWdlOiBJTmV1cm9ueEltYWdlKSB7XG4gICAgY29uc3QgYnVpbGQgPSBuZXcgQ29udGFpbmVySW1hZ2VCdWlsZChzY29wZSwgaWQsIHtcbiAgICAgIGRpcmVjdG9yeTogam9pbihcbiAgICAgICAgX19kaXJuYW1lLFxuICAgICAgICBcIi4uLy4uL3NjcmlwdHMvY29tcGlsZS9zYWdlbWFrZXItaW5mZXJlbmNlLXRvb2xraXQtdG54XCIsXG4gICAgICApLFxuICAgICAgYnVpbGRBcmdzOiB7XG4gICAgICAgIElNQUdFX05BTUU6IG5lcnVvbnhJbWFnZS5pbWFnZU5hbWUsXG4gICAgICAgIElNQUdFX1RBRzogbmVydW9ueEltYWdlLmltYWdlVGFnLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICB0aGlzLmltYWdlID0gYnVpbGQudG9FY3NEb2NrZXJJbWFnZUNvZGUoKTtcbiAgICB0aGlzLm5ldXJvblNka1ZlcnNpb24gPSBuZXJ1b254SW1hZ2UubmV1cm9uU2RrVmVyc2lvbjtcbiAgfVxufVxuXG4vKipcbiAqIFByb3BzIG9mIE5ldXJvbnhDb21waWxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNhZ2VNYWtlckluZmVyZW5jZVRvb2xraXRUbnhDb21waWxlclByb3BzIHtcbiAgLyoqXG4gICAqIFZQQyBpbiB3aGljaCB0aGlzIHdpbGwgbGF1bmNoIGNvbXBpbGUgd29ya2VyIGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgdnBjOiBlYzIuSVZwYztcbiAgLyoqXG4gICAqIFRoZSBidWNrZXQgdG8gdXBsb2FkIGNvbXBpbGVkIGFydGlmYWN0cy5cbiAgICovXG4gIHJlYWRvbmx5IGJ1Y2tldDogSUJ1Y2tldDtcbiAgLyoqXG4gICAqIFRoZSBtb2RlbCB0byBiZSBjb21waWxlZC5cbiAgICovXG4gIHJlYWRvbmx5IG1vZGVsOiBNb2RlbDtcbiAgLyoqXG4gICAqIFRoZSBpbnN0YW5jZSB0eXBlIG9mIGNvbXBpbGUgd29ya2VyIGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgbmV1cm9ueEluc3RhbmNlVHlwZT86IElOZXVyb254SW5zdGFuY2VUeXBlO1xuICAvKipcbiAgICogVGhlIHJvb3Qgdm9sdW1lIG9mIHdvcmtlciBpbnN0YW5jZS5cbiAgICogQGRlZmF1bHQgLSBOIGJpbGlvbiBwYXJhbWV0ZXJzICogNUdpQiBFQlNcbiAgICovXG4gIHJlYWRvbmx5IHZvbHVtZVNpemU/OiBTaXplO1xuICAvKipcbiAgICogQ29tcGlsZSBydW50aW1lIGltYWdlLlxuICAgKiBAZGVmYXVsdCAtIGxhdGVzdCBpbWFnZVxuICAgKi9cbiAgcmVhZG9ubHkgaW1hZ2U/OiBTYWdlTWFrZXJJbmZlcmVuY2VUb29sa2l0VG54Q29tcGlsZUltYWdlO1xuICAvKipcbiAgICogTmV1cm9ueCBjb21waWxlIG9wdGlvbnMuXG4gICAqIEBkZWZhdWx0IC0gRWFjaCBwcm9wZXJ0aWVzIGFyZSBzZXQgZGVmYXVsdC5cbiAgICovXG4gIHJlYWRvbmx5IGNvbXBpbGVPcHRpb25zPzogU2FnZU1ha2VySW5mZXJlbmNlVG9vbGtpdFRueENvbXBpbGVPcHRpb25zO1xuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gdXNlIHNwb3QgaW5zdGFuY2VzLiBTcG90IGluc3RhbmNlcyBhcmUgbGVzcyBleHBlbnNpdmUgRUMyIGluc3RhbmNlcyB0aGF0IGNhbiBiZSByZWNsYWltZWQgYnkgRUMyIGF0IGFueSB0aW1lOyB5b3VyIGpvYiB3aWxsIGJlIGdpdmVuIHR3byBtaW51dGVzIG9mIG5vdGljZSBiZWZvcmUgcmVjbGFtYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBzcG90PzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFRoZSBWUEMgU3VibmV0cyB0aGlzIENvbXB1dGUgRW52aXJvbm1lbnQgd2lsbCBsYXVuY2ggaW5zdGFuY2VzIGluLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5ldyBzdWJuZXRzIHdpbGwgYmUgY3JlYXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgdnBjU3VibmV0cz86IGVjMi5TdWJuZXRTZWxlY3Rpb247XG59XG5cbi8qKlxuICogTmV1cm9ueCBjb21waWxlIGNvbnN0cnVjdC4gQ29tcGlsZSB0aGUgbW9kZWwgdG8gd29yayB3aXRoIEluZmVyZW50aWEyIGFuZCBUcmFpbml1bTEgYW5kIHVwbG9hZCBpdCB0byBhbiBTMyBidWNrZXQuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYWdlTWFrZXJJbmZlcmVuY2VUb29sa2l0VG54Q29tcGlsZXIgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICByZWFkb25seSBxdWFudER0eXBlPzogUXVhbnREdHlwZTtcbiAgcmVhZG9ubHkgb3B0TGV2ZWw/OiBPcHRMZXZlbDtcbiAgcmVhZG9ubHkgdHBEZWdyZWU6IG51bWJlcjtcbiAgcmVhZG9ubHkgblBvc2l0aW9uczogbnVtYmVyO1xuICBtb2RlbDogTW9kZWw7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29tcGlsZXI6IE5ldXJvbnhOYXRpdmVDb21waWxlcjtcbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBTYWdlTWFrZXJJbmZlcmVuY2VUb29sa2l0VG54Q29tcGlsZXJQcm9wcyxcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICBjb25zdCBvcHRMZXZlbCA9IHByb3BzLmNvbXBpbGVPcHRpb25zPy5vcHRMZXZlbCA/PyBPcHRMZXZlbC5CRVNUX0JBTEFOQ0U7XG4gICAgY29uc3QgYmF0Y2hTaXplID0gcHJvcHMuY29tcGlsZU9wdGlvbnM/LmJhdGNoU2l6ZSA/PyAxO1xuICAgIGNvbnN0IG5Qb3NpdGlvbnMgPSBwcm9wcy5jb21waWxlT3B0aW9ucz8ublBvc2l0aW9ucyA/PyA0MDk2O1xuICAgIGNvbnN0IHF1YW50RHR5cGUgPSBwcm9wcy5jb21waWxlT3B0aW9ucz8ucXVhbnREdHlwZTtcbiAgICBjb25zdCBtZW1vcnlGb290cHJpbnQgPSBwcm9wcy5tb2RlbC5vcHRpb25zLmNvbmZpZ1xuICAgICAgPyBjYWxjTWVtb3J5Rm9vdHByaW50KFxuICAgICAgICAgIHByb3BzLm1vZGVsLm9wdGlvbnMuY29uZmlnLmVtYmVkZGluZ0RpbWVuc2lvbixcbiAgICAgICAgICBwcm9wcy5tb2RlbC5vcHRpb25zLmNvbmZpZy5sYXllcnMsXG4gICAgICAgICAgRGF0YVR5cGVCaXRzLkJGMTZfT1JfRlAxNixcbiAgICAgICAgICBuUG9zaXRpb25zLFxuICAgICAgICAgIGJhdGNoU2l6ZSxcbiAgICAgICAgKVxuICAgICAgOiBpbmZlck1lbW9yeUZvb3RwcmludEZyb21QYXJhbWV0ZXJzKFxuICAgICAgICAgIHByb3BzLm1vZGVsLm9wdGlvbnMucGFyYW1ldGVycyxcbiAgICAgICAgICBuUG9zaXRpb25zLFxuICAgICAgICAgIGJhdGNoU2l6ZSxcbiAgICAgICAgKTtcbiAgICBjb25zdCBuZXVyb254SW5zdGFuY2VUeXBlcyA9IHByb3BzLm5ldXJvbnhJbnN0YW5jZVR5cGVcbiAgICAgID8gW3Byb3BzLm5ldXJvbnhJbnN0YW5jZVR5cGVdXG4gICAgICA6IFtcbiAgICAgICAgICBOZXVyb254SW5zdGFuY2VUeXBlLklORjJfOFhMQVJHRSxcbiAgICAgICAgICBOZXVyb254SW5zdGFuY2VUeXBlLklORjJfMjRYTEFSR0UsXG4gICAgICAgICAgTmV1cm9ueEluc3RhbmNlVHlwZS5JTkYyXzQ4WExBUkdFLFxuICAgICAgICBdO1xuICAgIGNvbnN0IGF2YWlsYWJsZUluc3RhbmNlUGF0dGVybnMgPSBuZXVyb254SW5zdGFuY2VUeXBlc1xuICAgICAgLmZsYXRNYXAoKG5ldXJvbnhJbnN0YW5jZVR5cGUpID0+XG4gICAgICAgIGNhbGNUZW5zb3JQYXJhbGxlbChcbiAgICAgICAgICBuZXVyb254SW5zdGFuY2VUeXBlLFxuICAgICAgICAgIG1lbW9yeUZvb3RwcmludCxcbiAgICAgICAgICBwcm9wcy5tb2RlbC5vcHRpb25zLmNvbmZpZz8uYXR0ZW50aW9uSGVhZHMsXG4gICAgICAgICkubWFwKCh2KSA9PiAoe1xuICAgICAgICAgIG5ldXJvbnhJbnN0YW5jZVR5cGUsXG4gICAgICAgICAgLi4udixcbiAgICAgICAgfSkpLFxuICAgICAgKVxuICAgICAgLmZpbHRlcihcbiAgICAgICAgKHBhdHRlcm4pID0+XG4gICAgICAgICAgIXByb3BzLmNvbXBpbGVPcHRpb25zPy50cERlZ3JlZSB8fFxuICAgICAgICAgIHBhdHRlcm4udHAgPT09IHByb3BzLmNvbXBpbGVPcHRpb25zLnRwRGVncmVlLFxuICAgICAgKTtcbiAgICBpZiAoYXZhaWxhYmxlSW5zdGFuY2VQYXR0ZXJucy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYE5vIGF2YWlsYWJsZSBpbnN0YW5jZSB0eXBlLiBZb3UgY2FuIHVzZSB0cERlZ3JlZSBhcmUgJHthdmFpbGFibGVJbnN0YW5jZVBhdHRlcm5zLm1hcCgocCkgPT4gcC50cCkuam9pbihcIiwgXCIpfS5gLFxuICAgICAgKTtcbiAgICB9XG4gICAgY29uc3QgdHBEZWdyZWUgPSBhdmFpbGFibGVJbnN0YW5jZVBhdHRlcm5zWzBdLnRwO1xuICAgIGNvbnN0IGltYWdlID1cbiAgICAgIHByb3BzLmltYWdlID8/XG4gICAgICBuZXcgU2FnZU1ha2VySW5mZXJlbmNlVG9vbGtpdFRueENvbXBpbGVJbWFnZShcbiAgICAgICAgdGhpcyxcbiAgICAgICAgXCJDb21waWxlSW1hZ2VcIixcbiAgICAgICAgUHl0b3JjaFRyYWluaW5nTmV1cm9ueEltYWdlLkxBVEVTVCxcbiAgICAgICk7XG4gICAgbGV0IGNvbXBpbGVkQXJ0aWZhY3RQYXRoUHJlZml4ID0gYCR7cHJvcHMubW9kZWwubW9kZWxJZH0vbmV1cm9ueC0ke2ltYWdlLm5ldXJvblNka1ZlcnNpb259L3RwJHt0cERlZ3JlZX0tbnAke25Qb3NpdGlvbnN9LW9wdCR7b3B0TGV2ZWx9YDtcbiAgICBpZiAocXVhbnREdHlwZSEhKSB7XG4gICAgICBjb21waWxlZEFydGlmYWN0UGF0aFByZWZpeCA9IGAke2NvbXBpbGVkQXJ0aWZhY3RQYXRoUHJlZml4fS1xdWFudCR7cXVhbnREdHlwZX1gO1xuICAgIH1cbiAgICBjb25zdCBjb21waWxlciA9IG5ldyBOZXVyb254TmF0aXZlQ29tcGlsZXIodGhpcywgXCJSZXNvdXJjZVwiLCB7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIG5ldXJvbnhJbnN0YW5jZVR5cGU6IGF2YWlsYWJsZUluc3RhbmNlUGF0dGVybnNbMF0ubmV1cm9ueEluc3RhbmNlVHlwZSxcbiAgICAgIGFydGlmYWN0UzNQcmVmaXg6IFwidGVzdFwiLFxuICAgICAgaW1hZ2U6IGltYWdlLFxuICAgICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgICAgTU9ERUxfSUQ6IHByb3BzLm1vZGVsLm1vZGVsSWQsXG4gICAgICAgIFRQX0RFR1JFRTogdHBEZWdyZWUudG9TdHJpbmcoKSxcbiAgICAgICAgTl9QT1NJVElPTlM6IG5Qb3NpdGlvbnMudG9TdHJpbmcoKSxcbiAgICAgICAgT1BUX0xFVkVMOiBvcHRMZXZlbC50b1N0cmluZygpLFxuICAgICAgICBRVUFOVF9EVFlQRTogcXVhbnREdHlwZT8udG9TdHJpbmcoKSA/PyBcIlwiLFxuICAgICAgICBBUlRJRkFDVF9TM19VUkw6IHByb3BzLmJ1Y2tldC5zM1VybEZvck9iamVjdChcbiAgICAgICAgICBjb21waWxlZEFydGlmYWN0UGF0aFByZWZpeCxcbiAgICAgICAgKSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgdGhpcy50cERlZ3JlZSA9IHRwRGVncmVlO1xuICAgIHRoaXMublBvc2l0aW9ucyA9IG5Qb3NpdGlvbnM7XG4gICAgdGhpcy5xdWFudER0eXBlID0gcXVhbnREdHlwZTtcbiAgICB0aGlzLm9wdExldmVsID0gb3B0TGV2ZWw7XG4gICAgdGhpcy5tb2RlbCA9IHByb3BzLm1vZGVsO1xuICAgIHRoaXMuY29tcGlsZXIgPSBjb21waWxlcjtcbiAgfVxuICBjb21waWxlKCk6IFNhZ2VNYWtlckluZmVyZW5jZVRvb2xraXRUbnhDb21waWxlZE1vZGVsIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4udGhpcy5jb21waWxlci5jb21waWxlKCksXG4gICAgICB0cERlZ3JlZTogdGhpcy50cERlZ3JlZSxcbiAgICAgIG9wdExldmVsOiB0aGlzLm9wdExldmVsLFxuICAgICAgblBvc2l0aW9uczogdGhpcy5uUG9zaXRpb25zLFxuICAgICAgcXVhbnREdHlwZTogdGhpcy5xdWFudER0eXBlLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -43,7 +43,7 @@ export interface BucketCompiledModelOptions extends CompiledModelOptions {
|
|
|
43
43
|
*/
|
|
44
44
|
export declare class SageMakerInferenceToolkitTnxSageMakerInferenceModelData {
|
|
45
45
|
static fromBucket(bucket: IBucket, prefix: string, options: BucketCompiledModelOptions): SageMakerInferenceToolkitTnxSageMakerInferenceModelData;
|
|
46
|
-
static
|
|
46
|
+
static fromNeuronxNativeCompiler(compiler: SageMakerInferenceToolkitTnxCompiler, code?: ISource): SageMakerInferenceToolkitTnxSageMakerInferenceModelData;
|
|
47
47
|
readonly bucket: IBucket;
|
|
48
48
|
readonly compiledArtifactS3Prefix: string;
|
|
49
49
|
readonly code: ISource;
|
|
@@ -48,7 +48,7 @@ class SageMakerInferenceToolkitTnxSageMakerInferenceModelData {
|
|
|
48
48
|
parameters: options.parameters,
|
|
49
49
|
});
|
|
50
50
|
}
|
|
51
|
-
static
|
|
51
|
+
static fromNeuronxNativeCompiler(compiler, code) {
|
|
52
52
|
const compiledModel = compiler.compile();
|
|
53
53
|
return new SageMakerInferenceToolkitTnxSageMakerInferenceModelData({
|
|
54
54
|
...compiledModel,
|
|
@@ -183,4 +183,4 @@ function inferenceModelDataDownloadTime(volumeSize) {
|
|
|
183
183
|
const seconds = volumeSize.toGibibytes() * 15;
|
|
184
184
|
return aws_cdk_lib_1.Duration.seconds(seconds < 3600 ? seconds : 3600);
|
|
185
185
|
}
|
|
186
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FnZW1ha2VyLWluZmVyZW5jZS10b29sa2l0LXRueC1zYWdlbWFrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2FnZW1ha2VyLWluZmVyZW5jZS10b29sa2l0LXRueC9zYWdlbWFrZXItaW5mZXJlbmNlLXRvb2xraXQtdG54LXNhZ2VtYWtlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxrRUFBaUU7QUFDakUsMERBQTBEO0FBQzFELDZDQUFvRDtBQUdwRCxxRUFJdUM7QUFFdkMsMkNBQW9EO0FBQ3BELCtCQUE0QjtBQUM1Qiw2Q0FXeUI7QUF3Q3pCOztHQUVHO0FBQ0gsTUFBYSx1REFBdUQ7SUFDbEUsTUFBTSxDQUFDLFVBQVUsQ0FDZixNQUFlLEVBQ2YsTUFBYyxFQUNkLE9BQW1DO1FBRW5DLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxjQUFjLEVBQUUsVUFBVSxJQUFJLElBQUksQ0FBQztRQUM5RCxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsY0FBYyxFQUFFLFVBQVUsQ0FBQztRQUN0RCxNQUFNLFFBQVEsR0FBRyxrQkFBUSxDQUFDLFlBQVksQ0FBQztRQUN2QyxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsY0FBYyxFQUFFLFNBQVMsSUFBSSxDQUFDLENBQUM7UUFDekQsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDLE1BQU07WUFDcEMsQ0FBQyxDQUFDLElBQUEsNkJBQW1CLEVBQ2pCLE9BQU8sQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEVBQ2pDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUNyQixzQkFBWSxDQUFDLFlBQVksRUFDekIsVUFBVSxFQUNWLFNBQVMsQ0FDVjtZQUNILENBQUMsQ0FBQyxJQUFBLDRDQUFrQyxFQUNoQyxPQUFPLENBQUMsVUFBVSxFQUNsQixVQUFVLEVBQ1YsU0FBUyxDQUNWLENBQUM7UUFDTixNQUFNLG9CQUFvQixHQUFHO1lBQzNCLDZCQUFtQixDQUFDLFlBQVk7WUFD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RyxRQUFRLENBQUM7SUFDM0IsQ0FBQztJQUNELFdBQVcsQ0FBQyxPQUFtQjtRQUM3QixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFTyw0QkFBNEIsQ0FBQyxRQUFnQjtRQUNuRCxNQUFNLGFBQWEsR0FBRztZQUNwQiw2QkFBbUIsQ0FBQyxZQUFZO1lBQ2hDLDZCQUFtQixDQUFDLGFBQWE7WUFDakMsNkJBQW1CLENBQUMsYUFBYTtZQUNqQyw2QkFBbUIsQ0FBQyxhQUFhO1NBQ2xDLENBQUM7UUFDRixLQUFLLE1BQU0sWUFBWSxJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQ3pDLElBQ0UsWUFBWSxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLFFBQVEsQ0FBQyxFQUNwRSxDQUFDO2dCQUNELE9BQU8sWUFBWSxDQUFDO1lBQ3RCLENBQUM7UUFDSCxDQUFDO1FBQ0QsTUFBTSxJQUFJLEtBQUssQ0FDYix3RUFBd0UsQ0FDekUsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQTFKRCx3SUEwSkM7QUFFRCxTQUFTLDhCQUE4QixDQUFDLFVBQWdCO0lBQ3RELE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxXQUFXLEVBQUUsR0FBRyxFQUFFLENBQUM7SUFDOUMsT0FBTyxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzNELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb250YWluZXJJbWFnZUJ1aWxkIH0gZnJvbSBcIkBjZGtsYWJzL2RlcGxveS10aW1lLWJ1aWxkXCI7XG5pbXBvcnQgKiBhcyBzYWdlbWFrZXIgZnJvbSBcIkBhd3MtY2RrL2F3cy1zYWdlbWFrZXItYWxwaGFcIjtcbmltcG9ydCB7IER1cmF0aW9uLCBTaXplLCBUb2tlbiB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgR3JhbnQsIElHcmFudGFibGUgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiO1xuaW1wb3J0IHsgSUJ1Y2tldCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtczNcIjtcbmltcG9ydCB7XG4gIEJ1Y2tldERlcGxveW1lbnQsXG4gIElTb3VyY2UsXG4gIFNvdXJjZSxcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zMy1kZXBsb3ltZW50XCI7XG5pbXBvcnQgeyBDZm5FbmRwb2ludENvbmZpZywgQ2ZuTW9kZWwgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXNhZ2VtYWtlclwiO1xuaW1wb3J0IHsgQ29uc3RydWN0LCBJRGVwZW5kYWJsZSB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7XG4gIGNhbGNNZW1vcnlGb290cHJpbnQsXG4gIGNhbGNUZW5zb3JQYXJhbGxlbCxcbiAgRGF0YVR5cGVCaXRzLFxuICBJTmV1cm9ueEluc3RhbmNlVHlwZSxcbiAgaW5mZXJNZW1vcnlGb290cHJpbnRGcm9tUGFyYW1ldGVycyxcbiAgTW9kZWxDb25maWcsXG4gIE5ldXJvbnhJbnN0YW5jZVR5cGUsXG4gIE9wdExldmVsLFxuICBQYXJhbWV0ZXJzLFxuICBRdWFudER0eXBlLFxufSBmcm9tIFwiLi4vYmFzZS9uZXVyb254XCI7XG5pbXBvcnQge1xuICBTYWdlTWFrZXJJbmZlcmVuY2VUb29sa2l0VG54Q29tcGlsZU9wdGlvbnMsXG4gIFNhZ2VNYWtlckluZmVyZW5jZVRvb2xraXRUbnhDb21waWxlcixcbn0gZnJvbSBcIi4vc2FnZW1ha2VyLWluZmVyZW5jZS10b29sa2l0LXRueC1jb21waWxlclwiO1xuXG4vKipcbiAqIFByZWNvbXBpbGVkIG1vZGVsIG9wdGlvbnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcGlsZWRNb2RlbE9wdGlvbnMge1xuICAvKipcbiAgICogTmV1cm9ueCBjb21waWxlIG9wdGlvbnMuXG4gICAqIEBkZWZhdWx0IC0gRWFjaCBwcm9wZXJ0aWVzIGFyZSBzZXQgZGVmYXVsdC5cbiAgICovXG4gIHJlYWRvbmx5IGNvbXBpbGVPcHRpb25zPzogU2FnZU1ha2VySW5mZXJlbmNlVG9vbGtpdFRueENvbXBpbGVPcHRpb25zO1xuICAvKipcbiAgICogQ29kZSB1c2VkIGZvciBpbmZlcmVuY2VcbiAgICogQGRlZmF1bHQgLSB1c2luZyB0aGUgcHJlZGVmaW5lZCBjb2RlXG4gICAqL1xuICByZWFkb25seSBjb2RlPzogSVNvdXJjZTtcbiAgLyoqXG4gICAqIE1vZGVsIElEIG9yIHNhdmVkIHBhdGhcbiAgICogQGRlZmF1bHQgXCIuL21vZGVsXCJcbiAgICovXG4gIHJlYWRvbmx5IG1vZGVsSWRPclBhdGg/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgcGF0aCB3aGVyZSBjb21waWxlZCBhcnRpZmFjdHMgKGkuZS4geHh4Lm5lZmYpIGFyZSBzdG9yZWRcbiAgICogQGRlZmF1bHQgXCIuL2NvbXBpbGVkXCJcbiAgICovXG4gIHJlYWRvbmx5IGNvbXBpbGVkQXJ0aWZhY3RQYXRoPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1Y2tldENvbXBpbGVkTW9kZWxPcHRpb25zIGV4dGVuZHMgQ29tcGlsZWRNb2RlbE9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBwYXJhbWV0ZXJzIG9mIG1vZGVsLlxuICAgKi9cbiAgcmVhZG9ubHkgcGFyYW1ldGVyczogUGFyYW1ldGVycztcbiAgcmVhZG9ubHkgY29uZmlnPzogTW9kZWxDb25maWc7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWRcbiAqL1xuZXhwb3J0IGNsYXNzIFNhZ2VNYWtlckluZmVyZW5jZVRvb2xraXRUbnhTYWdlTWFrZXJJbmZlcmVuY2VNb2RlbERhdGEge1xuICBzdGF0aWMgZnJvbUJ1Y2tldChcbiAgICBidWNrZXQ6IElCdWNrZXQsXG4gICAgcHJlZml4OiBzdHJpbmcsXG4gICAgb3B0aW9uczogQnVja2V0Q29tcGlsZWRNb2RlbE9wdGlvbnMsXG4gICkge1xuICAgIGNvbnN0IG5Qb3NpdGlvbnMgPSBvcHRpb25zLmNvbXBpbGVPcHRpb25zPy5uUG9zaXRpb25zID8/IDQwOTY7XG4gICAgY29uc3QgcXVhbnREdHlwZSA9IG9wdGlvbnMuY29tcGlsZU9wdGlvbnM/LnF1YW50RHR5cGU7XG4gICAgY29uc3Qgb3B0TGV2ZWwgPSBPcHRMZXZlbC5CRVNUX0JBTEFOQ0U7XG4gICAgY29uc3QgYmF0Y2hTaXplID0gb3B0aW9ucy5jb21waWxlT3B0aW9ucz8uYmF0Y2hTaXplID8/IDE7XG4gICAgY29uc3QgbWVtb3J5Rm9vdHByaW50ID0gb3B0aW9ucy5jb25maWdcbiAgICAgID8gY2FsY01lbW9yeUZvb3RwcmludChcbiAgICAgICAgICBvcHRpb25zLmNvbmZpZy5lbWJlZGRpbmdEaW1lbnNpb24sXG4gICAgICAgICAgb3B0aW9ucy5jb25maWcubGF5ZXJzLFxuICAgICAgICAgIERhdGFUeXBlQml0cy5CRjE2X09SX0ZQMTYsXG4gICAgICAgICAgblBvc2l0aW9ucyxcbiAgICAgICAgICBiYXRjaFNpemUsXG4gICAgICAgIClcbiAgICAgIDogaW5mZXJNZW1vcnlGb290cHJpbnRGcm9tUGFyYW1ldGVycyhcbiAgICAgICAgICBvcHRpb25zLnBhcmFtZXRlcnMsXG4gICAgICAgICAgblBvc2l0aW9ucyxcbiAgICAgICAgICBiYXRjaFNpemUsXG4gICAgICAgICk7XG4gICAgY29uc3QgbmV1cm9ueEluc3RhbmNlVHlwZXMgPSBbXG4gICAgICBOZXVyb254SW5zdGFuY2VUeXBlLklORjJfOFhMQVJHRSxcbiAgICAgIE5ldXJvbnhJbnN0YW5jZVR5cGUuSU5GMl8yNFhMQVJHRSxcbiAgICAgIE5ldXJvbnhJbnN0YW5jZVR5cGUuSU5GMl80OFhMQVJHRSxcbiAgICBdO1xuICAgIGNvbnN0IGF2YWlsYWJsZUluc3RhbmNlUGF0dGVybnMgPSBuZXVyb254SW5zdGFuY2VUeXBlc1xuICAgICAgLmZsYXRNYXAoKG5ldXJvbnhJbnN0YW5jZVR5cGUpID0+XG4gICAgICAgIGNhbGNUZW5zb3JQYXJhbGxlbChcbiAgICAgICAgICBuZXVyb254SW5zdGFuY2VUeXBlLFxuICAgICAgICAgIG1lbW9yeUZvb3RwcmludCxcbiAgICAgICAgICBvcHRpb25zLmNvbmZpZz8uYXR0ZW50aW9uSGVhZHMsXG4gICAgICAgICkubWFwKCh2KSA9PiAoe1xuICAgICAgICAgIG5ldXJvbnhJbnN0YW5jZVR5cGUsXG4gICAgICAgICAgLi4udixcbiAgICAgICAgfSkpLFxuICAgICAgKVxuICAgICAgLmZpbHRlcihcbiAgICAgICAgKHBhdHRlcm4pID0+XG4gICAgICAgICAgIW9wdGlvbnMuY29tcGlsZU9wdGlvbnM/LnRwRGVncmVlIHx8XG4gICAgICAgICAgcGF0dGVybi50cCA9PT0gb3B0aW9ucy5jb21waWxlT3B0aW9ucy50cERlZ3JlZSxcbiAgICAgICk7XG4gICAgaWYgKGF2YWlsYWJsZUluc3RhbmNlUGF0dGVybnMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBObyBhdmFpbGFibGUgaW5zdGFuY2UgdHlwZS4gWW91IGNhbiB1c2UgdHBEZWdyZWUgYXJlICR7YXZhaWxhYmxlSW5zdGFuY2VQYXR0ZXJucy5tYXAoKHApID0+IHAudHApLmpvaW4oXCIsIFwiKX0uYCxcbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnN0IHRwRGVncmVlID1cbiAgICAgIG9wdGlvbnMuY29tcGlsZU9wdGlvbnM/LnRwRGVncmVlID8/IGF2YWlsYWJsZUluc3RhbmNlUGF0dGVybnNbMF0udHA7XG4gICAgcmV0dXJuIG5ldyBTYWdlTWFrZXJJbmZlcmVuY2VUb29sa2l0VG54U2FnZU1ha2VySW5mZXJlbmNlTW9kZWxEYXRhKHtcbiAgICAgIGJ1Y2tldCxcbiAgICAgIGNvbXBpbGVkQXJ0aWZhY3RTM1ByZWZpeDogcHJlZml4LFxuICAgICAgblBvc2l0aW9ucyxcbiAgICAgIHF1YW50RHR5cGUsXG4gICAgICBvcHRMZXZlbCxcbiAgICAgIHRwRGVncmVlLFxuICAgICAgY29kZTogb3B0aW9ucy5jb2RlLFxuICAgICAgbW9kZWxJZE9yUGF0aDogb3B0aW9ucy5tb2RlbElkT3JQYXRoLFxuICAgICAgcGFyYW1ldGVyczogb3B0aW9ucy5wYXJhbWV0ZXJzLFxuICAgIH0pO1xuICB9XG4gIHN0YXRpYyBmcm9tTmV1cm9ueENvbXBpbGVyKFxuICAgIGNvbXBpbGVyOiBTYWdlTWFrZXJJbmZlcmVuY2VUb29sa2l0VG54Q29tcGlsZXIsXG4gICAgY29kZT86IElTb3VyY2UsXG4gICkge1xuICAgIGNvbnN0IGNvbXBpbGVkTW9kZWwgPSBjb21waWxlci5jb21waWxlKCk7XG4gICAgcmV0dXJuIG5ldyBTYWdlTWFrZXJJbmZlcmVuY2VUb29sa2l0VG54U2FnZU1ha2VySW5mZXJlbmNlTW9kZWxEYXRhKHtcbiAgICAgIC4uLmNvbXBpbGVkTW9kZWwsXG4gICAgICBvcHRMZXZlbDogY29tcGlsZWRNb2RlbC5vcHRMZXZlbCA/PyBPcHRMZXZlbC5CRVNUX0JBTEFOQ0UsXG4gICAgICBjb21waWxlZEFydGlmYWN0UzNQcmVmaXg6IGNvbXBpbGVkTW9kZWwuczNQcmVmaXgsXG4gICAgICBwYXJhbWV0ZXJzOiBjb21waWxlci5tb2RlbC5vcHRpb25zLnBhcmFtZXRlcnMsXG4gICAgICBjb2RlLFxuICAgICAgZGVwZW5kYWJsZXM6IFtjb21waWxlci5ub2RlLmRlZmF1bHRDaGlsZCFdLFxuICAgIH0pO1xuICB9XG4gIHJlYWRvbmx5IGJ1Y2tldDogSUJ1Y2tldDtcbiAgcmVhZG9ubHkgY29tcGlsZWRBcnRpZmFjdFMzUHJlZml4OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGNvZGU6IElTb3VyY2U7XG4gIHJlYWRvbmx5IHRwRGVncmVlOiBudW1iZXI7XG4gIHJlYWRvbmx5IHF1YW50RHR5cGU/OiBRdWFudER0eXBlO1xuICByZWFkb25seSBuUG9zaXRpb25zOiBudW1iZXI7XG4gIHJlYWRvbmx5IG9wdExldmVsOiBPcHRMZXZlbDtcbiAgcmVhZG9ubHkgbW9kZWxJZE9yUGF0aD86IHN0cmluZztcbiAgcmVhZG9ubHkgY29tcGlsZWRBcnRpZmFjdFBhdGg/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHBhcmFtZXRlcnM6IFBhcmFtZXRlcnM7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVwZW5kYWJsZXM6IElEZXBlbmRhYmxlW107XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihvcHRpb25zOiB7XG4gICAgcmVhZG9ubHkgYnVja2V0OiBJQnVja2V0O1xuICAgIHJlYWRvbmx5IGNvbXBpbGVkQXJ0aWZhY3RTM1ByZWZpeDogc3RyaW5nO1xuICAgIHJlYWRvbmx5IHRwRGVncmVlOiBudW1iZXI7XG4gICAgcmVhZG9ubHkgcXVhbnREdHlwZT86IFF1YW50RHR5cGU7XG4gICAgcmVhZG9ubHkgblBvc2l0aW9uczogbnVtYmVyO1xuICAgIHJlYWRvbmx5IG9wdExldmVsOiBPcHRMZXZlbDtcbiAgICByZWFkb25seSBjb2RlPzogSVNvdXJjZTtcbiAgICByZWFkb25seSBtb2RlbElkT3JQYXRoPzogc3RyaW5nO1xuICAgIHJlYWRvbmx5IGNvbXBpbGVkQXJ0aWZhY3RQYXRoPzogc3RyaW5nO1xuICAgIHJlYWRvbmx5IHBhcmFtZXRlcnM6IFBhcmFtZXRlcnM7XG4gICAgcmVhZG9ubHkgZGVwZW5kYWJsZXM/OiBJRGVwZW5kYWJsZVtdO1xuICB9KSB7XG4gICAgdGhpcy5idWNrZXQgPSBvcHRpb25zLmJ1Y2tldDtcbiAgICB0aGlzLmNvbXBpbGVkQXJ0aWZhY3RTM1ByZWZpeCA9IG9wdGlvbnMuY29tcGlsZWRBcnRpZmFjdFMzUHJlZml4O1xuICAgIHRoaXMuY29kZSA9XG4gICAgICBvcHRpb25zLmNvZGUgPz9cbiAgICAgIFNvdXJjZS5hc3NldChcbiAgICAgICAgam9pbihcbiAgICAgICAgICBfX2Rpcm5hbWUsXG4gICAgICAgICAgXCIuLi8uLi9zY3JpcHRzL2luZmVyZW5jZS9zYWdlbWFrZXItaW5mZXJlbmNlLXRvb2xraXQtdG54L2NvZGVcIixcbiAgICAgICAgKSxcbiAgICAgICk7XG4gICAgdGhpcy50cERlZ3JlZSA9IG9wdGlvbnMudHBEZWdyZWU7XG4gICAgdGhpcy5xdWFudER0eXBlID0gb3B0aW9ucy5xdWFudER0eXBlO1xuICAgIHRoaXMublBvc2l0aW9ucyA9IG9wdGlvbnMublBvc2l0aW9ucztcbiAgICB0aGlzLm9wdExldmVsID0gb3B0aW9ucy5vcHRMZXZlbDtcbiAgICB0aGlzLm1vZGVsSWRPclBhdGggPSBvcHRpb25zLm1vZGVsSWRPclBhdGg7XG4gICAgdGhpcy5jb21waWxlZEFydGlmYWN0UGF0aCA9IG9wdGlvbnMuY29tcGlsZWRBcnRpZmFjdFBhdGg7XG4gICAgdGhpcy5wYXJhbWV0ZXJzID0gb3B0aW9ucy5wYXJhbWV0ZXJzO1xuICAgIHRoaXMuZGVwZW5kYWJsZXMgPSBvcHRpb25zLmRlcGVuZGFibGVzID8/IFtdO1xuICB9XG5cbiAgYmluZChzY29wZTogQ29uc3RydWN0LCBtb2RlbDogc2FnZW1ha2VyLklNb2RlbCkge1xuICAgIGNvbnN0IGRlcGxveSA9IG5ldyBCdWNrZXREZXBsb3ltZW50KHNjb3BlLCBcIkNvZGVEZXBsb3ltZW50XCIsIHtcbiAgICAgIGRlc3RpbmF0aW9uQnVja2V0OiB0aGlzLmJ1Y2tldCxcbiAgICAgIHNvdXJjZXM6IFt0aGlzLmNvZGVdLFxuICAgICAgZGVzdGluYXRpb25LZXlQcmVmaXg6IGpvaW4odGhpcy5jb21waWxlZEFydGlmYWN0UzNQcmVmaXgsIFwiY29kZVwiKSxcbiAgICB9KTtcbiAgICBkZXBsb3kubm9kZS5hZGREZXBlbmRlbmN5KC4uLnRoaXMuZGVwZW5kYWJsZXMpO1xuICAgIG1vZGVsLm5vZGUuYWRkRGVwZW5kZW5jeShkZXBsb3kpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2FnZU1ha2VySW5mZXJlbmNlVG9vbGtpdFRueFNhZ2VNYWtlclJlYWx0aW1lSW5mZXJlbmNlRW5kcG9pbnRQcm9wcyB7XG4gIC8qKlxuICAgKiBNb2RlbCBkYXRhIGZvciBTYWdlTWFrZXIgaW5mZXJlbmNlLlxuICAgKiBUaGUgbW9kZWwgZGF0YSByZXF1aXJlcyBhdCBsZWFzdCBjb21waWxlZCBhcnRpZmFjdHMuXG4gICAqL1xuICByZWFkb25seSBtb2RlbERhdGE6IFNhZ2VNYWtlckluZmVyZW5jZVRvb2xraXRUbnhTYWdlTWFrZXJJbmZlcmVuY2VNb2RlbERhdGE7XG4gIC8qKlxuICAgKiBBbiBpbWFnZSBvZiB0aGUgY29udGFpbmVyIHdoZXJlIHRoZSBpbmZlcmVuY2Ugam9iIGlzIGV4ZWN1dGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgaW1hZ2U/OiBzYWdlbWFrZXIuQ29udGFpbmVySW1hZ2U7XG4gIC8qKlxuICAgKiBBIG1hcCBvZiBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gcGFzcyBpbnRvIHRoZSBjb250YWluZXIuXG4gICAqIEBkZWZhdWx0IC0gT25seSB0aGUgcHJlZGVmaW5lZCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgcmVxdWlyZWQgdG8gdXNlIE5ldXJvbnggaGF2ZSBiZWVuIHNldC5cbiAgICovXG4gIHJlYWRvbmx5IGVudmlyb25tZW50PzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgLyoqXG4gICAqIFRoZSBpbnN0YW5jZSB0eXBlIG9mIGNvbXBpbGUgd29ya2VyIGluc3RhbmNlLlxuICAgKiBAZGVmYXVsdCAtIEl0IGlzIGRldGVybWluZWQgYXV0b21hdGljYWxseSBhY2NvcmRpbmcgdG8gdGhlIG51bWJlciBvZiBtb2RlbCBwYXJhbWV0ZXJzIGFuZCBjb21waWxhdGlvbiBvcHRpb25zLlxuICAgKi9cbiAgcmVhZG9ubHkgaW5zdGFuY2VUeXBlPzogSU5ldXJvbnhJbnN0YW5jZVR5cGU7XG4gIC8qKlxuICAgKiBUaGUgc2l6ZSwgb2YgdGhlIE1MIHN0b3JhZ2Ugdm9sdW1lIGF0dGFjaGVkIHRvIGluZGl2aWR1YWwgaW5mZXJlbmNlIGluc3RhbmNlIGFzc29jaWF0ZWQgd2l0aCB0aGUgcHJvZHVjdGlvbiB2YXJpYW50LlxuICAgKiBDdXJyZW50bHkgb25seSBBbWF6b24gRUJTIGdwMiBzdG9yYWdlIHZvbHVtZXMgYXJlIHN1cHBvcnRlZC5cbiAgICogQHNlZSBodHRwczovL2F3cy5hbWF6b24uY29tL2pwL3JlbGVhc2Vub3Rlcy9ob3N0LWluc3RhbmNlLXN0b3JhZ2Utdm9sdW1lcy10YWJsZVxuICAgKiBAZGVmYXVsdCAtIDMgR0IgcGVyIGJpbGxpb24gcGFyYW1ldGVyIChNYXggNTEyIEdCKVxuICAgKi9cbiAgcmVhZG9ubHkgdm9sdW1lU2l6ZT86IFNpemU7XG4gIC8qKlxuICAgKiBUaGUgdGltZW91dCB2YWx1ZSwgdG8gZG93bmxvYWQgYW5kIGV4dHJhY3QgdGhlIG1vZGVsIHRoYXQgeW91IHdhbnQgdG8gaG9zdCBmcm9tIEFtYXpvbiBTM1xuICAgKiB0byB0aGUgaW5kaXZpZHVhbCBpbmZlcmVuY2UgaW5zdGFuY2UgYXNzb2NpYXRlZCB3aXRoIHRoaXMgcHJvZHVjdGlvbiB2YXJpYW50LlxuICAgKiBAZGVmYXVsdCAtIDYwIHNlY29uZHMsIHdoZW4gYHZvbHVtZVNpemVgIGxhcmdlciB0aGFuIDMwR0IgdGhlbiAxR0IgeCAxNSBzZWNvbmRzIChtYXggNjAgbWludXRlcylcbiAgICovXG4gIHJlYWRvbmx5IG1vZGVsRGF0YURvd25sb2FkVGltZW91dD86IER1cmF0aW9uO1xuICAvKipcbiAgICogVGhlIHRpbWVvdXQgdmFsdWUsIGZvciB5b3VyIGluZmVyZW5jZSBjb250YWluZXIgdG8gcGFzcyBoZWFsdGggY2hlY2sgYnkgU2FnZU1ha2VyIEhvc3RpbmcuXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3NhZ2VtYWtlci9sYXRlc3QvZGcveW91ci1hbGdvcml0aG1zLWluZmVyZW5jZS1jb2RlLmh0bWwjeW91ci1hbGdvcml0aG1zLWluZmVyZW5jZS1hbGdvLXBpbmctcmVxdWVzdHNcbiAgICogQGRlZmF1bHQgLSA2MCBzZWNvbmRzLCB3aGVuIHNldCB0aGUgYG1vZGVsRGF0YURvd25sb2FkVGltZW91dGAgdGhlbiB1c2Ugc2FtZSB2YWx1ZSAobWF4IDYwIG1pbnV0ZXMpXG4gICAqL1xuICByZWFkb25seSBjb250YWluZXJTdGFydHVwSGVhbHRoQ2hlY2tUaW1lb3V0PzogRHVyYXRpb247XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWRcbiAqL1xuZXhwb3J0IGNsYXNzIFNhZ2VNYWtlckluZmVyZW5jZVRvb2xraXRUbnhTYWdlTWFrZXJSZWFsdGltZUluZmVyZW5jZUVuZHBvaW50IGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGVuZHBvaW50LlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBlbmRwb2ludEFybjogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGVuZHBvaW50LlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBlbmRwb2ludE5hbWU6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBlbmRwb2ludDogc2FnZW1ha2VyLkVuZHBvaW50O1xuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IFNhZ2VNYWtlckluZmVyZW5jZVRvb2xraXRUbnhTYWdlTWFrZXJSZWFsdGltZUluZmVyZW5jZUVuZHBvaW50UHJvcHMsXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgbGV0IGltYWdlOiBzYWdlbWFrZXIuQ29udGFpbmVySW1hZ2U7XG4gICAgaWYgKHByb3BzLmltYWdlKSB7XG4gICAgICBpbWFnZSA9IHByb3BzLmltYWdlO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBidWlsZCA9IG5ldyBDb250YWluZXJJbWFnZUJ1aWxkKHRoaXMsIFwiSW5mZXJlbmNlSW1hZ2VCdWlsZFwiLCB7XG4gICAgICAgIGRpcmVjdG9yeTogam9pbihcbiAgICAgICAgICBfX2Rpcm5hbWUsXG4gICAgICAgICAgXCIuLi8uLi9zY3JpcHRzL2luZmVyZW5jZS9zYWdlbWFrZXItaW5mZXJlbmNlLXRvb2xraXQtdG54XCIsXG4gICAgICAgICksXG4gICAgICB9KTtcbiAgICAgIGltYWdlID0gc2FnZW1ha2VyLkNvbnRhaW5lckltYWdlLmZyb21FY3JSZXBvc2l0b3J5KFxuICAgICAgICBidWlsZC5yZXBvc2l0b3J5LFxuICAgICAgICBidWlsZC5pbWFnZVRhZyxcbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnN0IGluc3RhbmNlVHlwZSA9XG4gICAgICBwcm9wcy5pbnN0YW5jZVR5cGUgPz9cbiAgICAgIHRoaXMuc2VsZWN0SW5zdGFuY2VUeXBlQnlUcERlZ3JlZShwcm9wcy5tb2RlbERhdGEudHBEZWdyZWUpO1xuICAgIGNvbnN0IG1vZGVsID0gbmV3IHNhZ2VtYWtlci5Nb2RlbCh0aGlzLCBcIk1vZGVsXCIsIHtcbiAgICAgIGNvbnRhaW5lcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGltYWdlLFxuICAgICAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgICAgICBORVVST05fUlRfTlVNX0NPUkVTOiBwcm9wcy5tb2RlbERhdGEudHBEZWdyZWUudG9TdHJpbmcoKSxcbiAgICAgICAgICAgIFRTX0RFRkFVTFRfUkVTUE9OU0VfVElNRU9VVDogKDYwICogNjApLnRvU3RyaW5nKCksXG4gICAgICAgICAgICBUU19ERUZBVUxUX1dPUktFUlNfUEVSX01PREVMOiBNYXRoLmZsb29yKFxuICAgICAgICAgICAgICBpbnN0YW5jZVR5cGUuYWNjZWxlcmF0b3JDaGlwcy5uZXVyb254Q29yZXMgL1xuICAgICAgICAgICAgICAgIHByb3BzLm1vZGVsRGF0YS50cERlZ3JlZSxcbiAgICAgICAgICAgICkudG9TdHJpbmcoKSxcbiAgICAgICAgICAgIE1PREVMOiBwcm9wcy5tb2RlbERhdGEubW9kZWxJZE9yUGF0aCA/PyBcIi4vbW9kZWxcIixcbiAgICAgICAgICAgIENPTVBJTEVEX0FSVElGQUNUOlxuICAgICAgICAgICAgICBwcm9wcy5tb2RlbERhdGEuY29tcGlsZWRBcnRpZmFjdFBhdGggPz8gXCIuL2NvbXBpbGVkXCIsXG4gICAgICAgICAgICBUUF9ERUdSRUU6IHByb3BzLm1vZGVsRGF0YS50cERlZ3JlZS50b1N0cmluZygpLFxuICAgICAgICAgICAgTl9QT1NJVElPTlM6IHByb3BzLm1vZGVsRGF0YS5uUG9zaXRpb25zLnRvU3RyaW5nKCksXG4gICAgICAgICAgICBPUFRfTEVWRUw6IHByb3BzLm1vZGVsRGF0YS5vcHRMZXZlbC50b1N0cmluZygpLFxuICAgICAgICAgICAgUVVBTlRfRFRZUEU6IHByb3BzLm1vZGVsRGF0YS5xdWFudER0eXBlPy50b1N0cmluZygpID8/IFwiXCIsXG4gICAgICAgICAgICAuLi5wcm9wcy5lbnZpcm9ubWVudCxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcbiAgICBjb25zdCBjZm5Nb2RlbCA9IG1vZGVsLm5vZGUuZmluZENoaWxkKFwiTW9kZWxcIikgYXMgQ2ZuTW9kZWw7XG4gICAgY2ZuTW9kZWwuYWRkUHJvcGVydHlPdmVycmlkZShcbiAgICAgIFwiUHJpbWFyeUNvbnRhaW5lci5Nb2RlbERhdGFTb3VyY2UuUzNEYXRhU291cmNlLlMzVXJpXCIsXG4gICAgICBwcm9wcy5tb2RlbERhdGEuYnVja2V0LnMzVXJsRm9yT2JqZWN0KFxuICAgICAgICBUb2tlbi5pc1VucmVzb2x2ZWQocHJvcHMubW9kZWxEYXRhLmNvbXBpbGVkQXJ0aWZhY3RTM1ByZWZpeCkgfHxcbiAgICAgICAgICBwcm9wcy5tb2RlbERhdGEuY29tcGlsZWRBcnRpZmFjdFMzUHJlZml4LmVuZHNXaXRoKFwiL1wiKVxuICAgICAgICAgID8gcHJvcHMubW9kZWxEYXRhLmNvbXBpbGVkQXJ0aWZhY3RTM1ByZWZpeFxuICAgICAgICAgIDogYCR7cHJvcHMubW9kZWxEYXRhLmNvbXBpbGVkQXJ0aWZhY3RTM1ByZWZpeH0vYCxcbiAgICAgICksXG4gICAgKTtcbiAgICBjZm5Nb2RlbC5hZGRQcm9wZXJ0eU92ZXJyaWRlKFxuICAgICAgXCJQcmltYXJ5Q29udGFpbmVyLk1vZGVsRGF0YVNvdXJjZS5TM0RhdGFTb3VyY2UuUzNEYXRhVHlwZUJpdHNcIixcbiAgICAgIFwiUzNQcmVmaXhcIixcbiAgICApO1xuICAgIGNmbk1vZGVsLmFkZFByb3BlcnR5T3ZlcnJpZGUoXG4gICAgICBcIlByaW1hcnlDb250YWluZXIuTW9kZWxEYXRhU291cmNlLlMzRGF0YVNvdXJjZS5Db21wcmVzc2lvblR5cGVcIixcbiAgICAgIFwiTm9uZVwiLFxuICAgICk7XG4gICAgcHJvcHMubW9kZWxEYXRhLmJ1Y2tldC5ncmFudFJlYWQobW9kZWwpO1xuICAgIHByb3BzLm1vZGVsRGF0YS5iaW5kKHRoaXMsIG1vZGVsKTtcbiAgICBjb25zdCBlbmRwb2ludENvbmZpZyA9IG5ldyBzYWdlbWFrZXIuRW5kcG9pbnRDb25maWcoXG4gICAgICB0aGlzLFxuICAgICAgXCJFbmRwb2ludENvbmZpZ1wiLFxuICAgICAge1xuICAgICAgICBpbnN0YW5jZVByb2R1Y3Rpb25WYXJpYW50czogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG1vZGVsLFxuICAgICAgICAgICAgdmFyaWFudE5hbWU6IFwiUHJpbWFyeVZhcmlhbnRcIixcbiAgICAgICAgICAgIGluc3RhbmNlVHlwZTogc2FnZW1ha2VyLkluc3RhbmNlVHlwZS5vZihcbiAgICAgICAgICAgICAgYG1sLiR7aW5zdGFuY2VUeXBlLnRvU3RyaW5nKCl9YCxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgKTtcbiAgICBjb25zdCBjZm5FbmRwb2ludENvbmZpZyA9IGVuZHBvaW50Q29uZmlnLm5vZGUuZmluZENoaWxkKFxuICAgICAgXCJFbmRwb2ludENvbmZpZ1wiLFxuICAgICkgYXMgQ2ZuRW5kcG9pbnRDb25maWc7XG4gICAgY29uc3Qgdm9sdW1lU2l6ZSA9XG4gICAgICBwcm9wcy52b2x1bWVTaXplID8/XG4gICAgICBTaXplLmdpYmlieXRlcyhcbiAgICAgICAgTWF0aC5jZWlsKFxuICAgICAgICAgIHByb3BzLm1vZGVsRGF0YS5wYXJhbWV0ZXJzLnRvQmlsbGlvbigpICogMyA+IDUxMlxuICAgICAgICAgICAgPyA1MTJcbiAgICAgICAgICAgIDogcHJvcHMubW9kZWxEYXRhLnBhcmFtZXRlcnMudG9CaWxsaW9uKCkgKiAzLFxuICAgICAgICApLFxuICAgICAgKTtcbiAgICBjZm5FbmRwb2ludENvbmZpZy5hZGRQcm9wZXJ0eU92ZXJyaWRlKFxuICAgICAgXCJQcm9kdWN0aW9uVmFyaWFudHMuMC5Wb2x1bWVTaXplSW5HQlwiLFxuICAgICAgaW5zdGFuY2VUeXBlLnRvU3RyaW5nKCkuc3RhcnRzV2l0aChcIm1sLnRybjFcIilcbiAgICAgICAgPyB1bmRlZmluZWRcbiAgICAgICAgOiB2b2x1bWVTaXplLnRvR2liaWJ5dGVzKCksXG4gICAgKTtcbiAgICBjb25zdCBtb2RlbERhdGFEb3dubG9hZFRpbWVvdXQgPVxuICAgICAgcHJvcHMubW9kZWxEYXRhRG93bmxvYWRUaW1lb3V0ID8/XG4gICAgICBpbmZlcmVuY2VNb2RlbERhdGFEb3dubG9hZFRpbWUodm9sdW1lU2l6ZSk7XG4gICAgY2ZuRW5kcG9pbnRDb25maWcuYWRkUHJvcGVydHlPdmVycmlkZShcbiAgICAgIFwiUHJvZHVjdGlvblZhcmlhbnRzLjAuTW9kZWxEYXRhRG93bmxvYWRUaW1lb3V0SW5TZWNvbmRzXCIsXG4gICAgICBtb2RlbERhdGFEb3dubG9hZFRpbWVvdXQudG9TZWNvbmRzKCksXG4gICAgKTtcbiAgICBjZm5FbmRwb2ludENvbmZpZy5hZGRQcm9wZXJ0eU92ZXJyaWRlKFxuICAgICAgXCJQcm9kdWN0aW9uVmFyaWFudHMuMC5Db250YWluZXJTdGFydHVwSGVhbHRoQ2hlY2tUaW1lb3V0SW5TZWNvbmRzXCIsXG4gICAgICAoXG4gICAgICAgIHByb3BzLmNvbnRhaW5lclN0YXJ0dXBIZWFsdGhDaGVja1RpbWVvdXQgPz8gbW9kZWxEYXRhRG93bmxvYWRUaW1lb3V0XG4gICAgICApLnRvU2Vjb25kcygpLFxuICAgICk7XG4gICAgY29uc3QgZW5kcG9pbnQgPSBuZXcgc2FnZW1ha2VyLkVuZHBvaW50KHRoaXMsIFwiRW5kcG9pbnRcIiwge1xuICAgICAgZW5kcG9pbnRDb25maWcsXG4gICAgfSk7XG4gICAgdGhpcy5lbmRwb2ludEFybiA9IGVuZHBvaW50LmVuZHBvaW50QXJuO1xuICAgIHRoaXMuZW5kcG9pbnROYW1lID0gZW5kcG9pbnQuZW5kcG9pbnROYW1lO1xuICAgIHRoaXMuZW5kcG9pbnQgPSBlbmRwb2ludDtcbiAgfVxuICBncmFudEludm9rZShncmFudGVlOiBJR3JhbnRhYmxlKTogR3JhbnQge1xuICAgIHJldHVybiB0aGlzLmVuZHBvaW50LmdyYW50SW52b2tlKGdyYW50ZWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZWxlY3RJbnN0YW5jZVR5cGVCeVRwRGVncmVlKHRwRGVncmVlOiBudW1iZXIpIHtcbiAgICBjb25zdCBpbnN0YW5jZVR5cGVzID0gW1xuICAgICAgTmV1cm9ueEluc3RhbmNlVHlwZS5JTkYyXzhYTEFSR0UsXG4gICAgICBOZXVyb254SW5zdGFuY2VUeXBlLklORjJfMjRYTEFSR0UsXG4gICAgICBOZXVyb254SW5zdGFuY2VUeXBlLklORjJfNDhYTEFSR0UsXG4gICAgICBOZXVyb254SW5zdGFuY2VUeXBlLlRSTjFfMzJYTEFSR0UsXG4gICAgXTtcbiAgICBmb3IgKGNvbnN0IGluc3RhbmNlVHlwZSBvZiBpbnN0YW5jZVR5cGVzKSB7XG4gICAgICBpZiAoXG4gICAgICAgIGluc3RhbmNlVHlwZS5zdXBwb3J0ZWRUZW5zb3JQYXJhbGxlbGlzbS5maW5kKCh0cCkgPT4gdHAgPj0gdHBEZWdyZWUpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIGluc3RhbmNlVHlwZTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgXCJUaGlzIG1vZGVsIGlzIHRvbyBsYXJnZSwgSSBjYW4gbm90IHN1cHBvcnQgdGhpcyBtb2RlbCBjdXJyZW50IHZlcnNpb24uXCIsXG4gICAgKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpbmZlcmVuY2VNb2RlbERhdGFEb3dubG9hZFRpbWUodm9sdW1lU2l6ZTogU2l6ZSkge1xuICBjb25zdCBzZWNvbmRzID0gdm9sdW1lU2l6ZS50b0dpYmlieXRlcygpICogMTU7XG4gIHJldHVybiBEdXJhdGlvbi5zZWNvbmRzKHNlY29uZHMgPCAzNjAwID8gc2Vjb25kcyA6IDM2MDApO1xufVxuIl19
|
|
186
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FnZW1ha2VyLWluZmVyZW5jZS10b29sa2l0LXRueC1zYWdlbWFrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2FnZW1ha2VyLWluZmVyZW5jZS10b29sa2l0LXRueC9zYWdlbWFrZXItaW5mZXJlbmNlLXRvb2xraXQtdG54LXNhZ2VtYWtlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxrRUFBaUU7QUFDakUsMERBQTBEO0FBQzFELDZDQUFvRDtBQUdwRCxxRUFJdUM7QUFFdkMsMkNBQW9EO0FBQ3BELCtCQUE0QjtBQUM1Qiw2Q0FXeUI7QUF3Q3pCOztHQUVHO0FBQ0gsTUFBYSx1REFBdUQ7SUFDbEUsTUFBTSxDQUFDLFVBQVUsQ0FDZixNQUFlLEVBQ2YsTUFBYyxFQUNkLE9BQW1DO1FBRW5DLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxjQUFjLEVBQUUsVUFBVSxJQUFJLElBQUksQ0FBQztRQUM5RCxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsY0FBYyxFQUFFLFVBQVUsQ0FBQztRQUN0RCxNQUFNLFFBQVEsR0FBRyxrQkFBUSxDQUFDLFlBQVksQ0FBQztRQUN2QyxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsY0FBYyxFQUFFLFNBQVMsSUFBSSxDQUFDLENBQUM7UUFDekQsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDLE1BQU07WUFDcEMsQ0FBQyxDQUFDLElBQUEsNkJBQW1CLEVBQ2pCLE9BQU8sQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEVBQ2pDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUNyQixzQkFBWSxDQUFDLFlBQVksRUFDekIsVUFBVSxFQUNWLFNBQVMsQ0FDVjtZQUNILENBQUMsQ0FBQyxJQUFBLDRDQUFrQyxFQUNoQyxPQUFPLENBQUMsVUFBVSxFQUNsQixVQUFVLEVBQ1YsU0FBUyxDQUNWLENBQUM7UUFDTixNQUFNLG9CQUFvQixHQUFHO1lBQzNCLDZCQUFtQixDQUFDLFlBQVk7WUFDaEMsNkJBQW1CLENBQUMsYUFBYTtZQUNqQyw2QkFBbUIsQ0FBQyxhQUFhO1NBQ2xDLENBQUM7UUFDRixNQUFNLHlCQUF5QixHQUFHLG9CQUFvQjthQUNuRCxPQUFPLENBQUMsQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLENBQy9CLElBQUEsNEJBQWtCLEVBQ2hCLG1CQUFtQixFQUNuQixlQUFlLEVBQ2YsT0FBTyxDQUFDLE1BQU0sRUFBRSxjQUFjLENBQy9CLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ1osbUJBQW1CO1lBQ25CLEdBQUcsQ0FBQztTQUNMLENBQUMsQ0FBQyxDQUNKO2FBQ0EsTUFBTSxDQUNMLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FDVixDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsUUFBUTtZQUNqQyxPQUFPLENBQUMsRUFBRSxLQUFLLE9BQU8sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUNqRCxDQUFDO1FBQ0osSUFBSSx5QkFBeUIsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDM0MsTUFBTSxJQUFJLEtBQUssQ0FDYix3REFBd0QseUJBQXlCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQ2pILENBQUM7UUFDSixDQUFDO1FBQ0QsTUFBTSxRQUFRLEdBQ1osT0FBTyxDQUFDLGNBQWMsRUFBRSxRQUFRLElBQUkseUJBQXlCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3RFLE9BQU8sSUFBSSx1REFBdUQsQ0FBQztZQUNqRSxNQUFNO1lBQ04sd0JBQXdCLEVBQUUsTUFBTTtZQUNoQyxVQUFVO1lBQ1YsVUFBVTtZQUNWLFFBQVE7WUFDUixRQUFRO1lBQ1IsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO1lBQ2xCLGFBQWEsRUFBRSxPQUFPLENBQUMsYUFBYTtZQUNwQyxVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVU7U0FDL0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELE1BQU0sQ0FBQyx5QkFBeUIsQ0FDOUIsUUFBOEMsRUFDOUMsSUFBYztRQUVkLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN6QyxPQUFPLElBQUksdURBQXVELENBQUM7WUFDakUsR0FBRyxhQUFhO1lBQ2hCLFFBQVEsRUFBRSxhQUFhLENBQUMsUUFBUSxJQUFJLGtCQUFRLENBQUMsWUFBWTtZQUN6RCx3QkFBd0IsRUFBRSxhQUFhLENBQUMsUUFBUTtZQUNoRCxVQUFVLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVTtZQUM3QyxJQUFJO1lBQ0osV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFhLENBQUM7U0FDM0MsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQWFELFlBQW9CLE9BWW5CO1FBQ0MsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQzdCLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxPQUFPLENBQUMsd0JBQXdCLENBQUM7UUFDakUsSUFBSSxDQUFDLElBQUk7WUFDUCxPQUFPLENBQUMsSUFBSTtnQkFDWiwwQkFBTSxDQUFDLEtBQUssQ0FDVixJQUFBLFdBQUksRUFDRixTQUFTLEVBQ1QsOERBQThELENBQy9ELENBQ0YsQ0FBQztRQUNKLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztRQUNqQyxJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUM7UUFDckMsSUFBSSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztRQUNqQyxJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUM7UUFDM0MsSUFBSSxDQUFDLG9CQUFvQixHQUFHLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQztRQUN6RCxJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUM7UUFDckMsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQztJQUMvQyxDQUFDO0lBRUQsSUFBSSxDQUFDLEtBQWdCLEVBQUUsS0FBdUI7UUFDNUMsTUFBTSxNQUFNLEdBQUcsSUFBSSxvQ0FBZ0IsQ0FBQyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUU7WUFDM0QsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDOUIsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUNwQixvQkFBb0IsRUFBRSxJQUFBLFdBQUksRUFBQyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsTUFBTSxDQUFDO1NBQ2xFLENBQUMsQ0FBQztRQUNILE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQy9DLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ25DLENBQUM7Q0FDRjtBQW5JRCwwSEFtSUM7QUEyQ0Q7O0dBRUc7QUFDSCxNQUFhLDhEQUErRCxTQUFRLHNCQUFTO0lBWTNGLFlBQ0UsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLEtBQTBFO1FBRTFFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakIsSUFBSSxLQUErQixDQUFDO1FBQ3BDLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2hCLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ3RCLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxLQUFLLEdBQUcsSUFBSSx1Q0FBbUIsQ0FBQyxJQUFJLEVBQUUscUJBQXFCLEVBQUU7Z0JBQ2pFLFNBQVMsRUFBRSxJQUFBLFdBQUksRUFDYixTQUFTLEVBQ1QseURBQXlELENBQzFEO2FBQ0YsQ0FBQyxDQUFDO1lBQ0gsS0FBSyxHQUFHLFNBQVMsQ0FBQyxjQUFjLENBQUMsaUJBQWlCLENBQ2hELEtBQUssQ0FBQyxVQUFVLEVBQ2hCLEtBQUssQ0FBQyxRQUFRLENBQ2YsQ0FBQztRQUNKLENBQUM7UUFDRCxNQUFNLFlBQVksR0FDaEIsS0FBSyxDQUFDLFlBQVk7WUFDbEIsSUFBSSxDQUFDLDRCQUE0QixDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDOUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUU7WUFDL0MsVUFBVSxFQUFFO2dCQUNWO29CQUNFLEtBQUs7b0JBQ0wsV0FBVyxFQUFFO3dCQUNYLG1CQUFtQixFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRTt3QkFDeEQsMkJBQTJCLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFO3dCQUNqRCw0QkFBNEIsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUN0QyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsWUFBWTs0QkFDeEMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQzNCLENBQUMsUUFBUSxFQUFFO3dCQUNaLEtBQUssRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDLGFBQWEsSUFBSSxTQUFTO3dCQUNqRCxpQkFBaUIsRUFDZixLQUFLLENBQUMsU0FBUyxDQUFDLG9CQUFvQixJQUFJLFlBQVk7d0JBQ3RELFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUU7d0JBQzlDLFdBQVcsRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUU7d0JBQ2xELFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUU7d0JBQzlDLFdBQVcsRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO3dCQUN6RCxHQUFHLEtBQUssQ0FBQyxXQUFXO3FCQUNyQjtpQkFDRjthQUNGO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFhLENBQUM7UUFDM0QsUUFBUSxDQUFDLG1CQUFtQixDQUMxQixxREFBcUQsRUFDckQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUNuQyxtQkFBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLHdCQUF3QixDQUFDO1lBQzFELEtBQUssQ0FBQyxTQUFTLENBQUMsd0JBQXdCLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztZQUN0RCxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyx3QkFBd0I7WUFDMUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyx3QkFBd0IsR0FBRyxDQUNuRCxDQUNGLENBQUM7UUFDRixRQUFRLENBQUMsbUJBQW1CLENBQzFCLDhEQUE4RCxFQUM5RCxVQUFVLENBQ1gsQ0FBQztRQUNGLFFBQVEsQ0FBQyxtQkFBbUIsQ0FDMUIsK0RBQStELEVBQy9ELE1BQU0sQ0FDUCxDQUFDO1FBQ0YsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hDLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNsQyxNQUFNLGNBQWMsR0FBRyxJQUFJLFNBQVMsQ0FBQyxjQUFjLENBQ2pELElBQUksRUFDSixnQkFBZ0IsRUFDaEI7WUFDRSwwQkFBMEIsRUFBRTtnQkFDMUI7b0JBQ0UsS0FBSztvQkFDTCxXQUFXLEVBQUUsZ0JBQWdCO29CQUM3QixZQUFZLEVBQUUsU0FBUyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQ3JDLE1BQU0sWUFBWSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQ2hDO2lCQUNGO2FBQ0Y7U0FDRixDQUNGLENBQUM7UUFDRixNQUFNLGlCQUFpQixHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUNyRCxnQkFBZ0IsQ0FDSSxDQUFDO1FBQ3ZCLE1BQU0sVUFBVSxHQUNkLEtBQUssQ0FBQyxVQUFVO1lBQ2hCLGtCQUFJLENBQUMsU0FBUyxDQUNaLElBQUksQ0FBQyxJQUFJLENBQ1AsS0FBSyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUc7Z0JBQzlDLENBQUMsQ0FBQyxHQUFHO2dCQUNMLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQy9DLENBQ0YsQ0FBQztRQUNKLGlCQUFpQixDQUFDLG1CQUFtQixDQUNuQyxxQ0FBcUMsRUFDckMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUM7WUFDM0MsQ0FBQyxDQUFDLFNBQVM7WUFDWCxDQUFDLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUM3QixDQUFDO1FBQ0YsTUFBTSx3QkFBd0IsR0FDNUIsS0FBSyxDQUFDLHdCQUF3QjtZQUM5Qiw4QkFBOEIsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM3QyxpQkFBaUIsQ0FBQyxtQkFBbUIsQ0FDbkMsd0RBQXdELEVBQ3hELHdCQUF3QixDQUFDLFNBQVMsRUFBRSxDQUNyQyxDQUFDO1FBQ0YsaUJBQWlCLENBQUMsbUJBQW1CLENBQ25DLGtFQUFrRSxFQUNsRSxDQUNFLEtBQUssQ0FBQyxrQ0FBa0MsSUFBSSx3QkFBd0IsQ0FDckUsQ0FBQyxTQUFTLEVBQUUsQ0FDZCxDQUFDO1FBQ0YsTUFBTSxRQUFRLEdBQUcsSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDeEQsY0FBYztTQUNmLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDLFdBQVcsQ0FBQztRQUN4QyxJQUFJLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUM7UUFDMUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDM0IsQ0FBQztJQUNELFdBQVcsQ0FBQyxPQUFtQjtRQUM3QixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFTyw0QkFBNEIsQ0FBQyxRQUFnQjtRQUNuRCxNQUFNLGFBQWEsR0FBRztZQUNwQiw2QkFBbUIsQ0FBQyxZQUFZO1lBQ2hDLDZCQUFtQixDQUFDLGFBQWE7WUFDakMsNkJBQW1CLENBQUMsYUFBYTtZQUNqQyw2QkFBbUIsQ0FBQyxhQUFhO1NBQ2xDLENBQUM7UUFDRixLQUFLLE1BQU0sWUFBWSxJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQ3pDLElBQ0UsWUFBWSxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLFFBQVEsQ0FBQyxFQUNwRSxDQUFDO2dCQUNELE9BQU8sWUFBWSxDQUFDO1lBQ3RCLENBQUM7UUFDSCxDQUFDO1FBQ0QsTUFBTSxJQUFJLEtBQUssQ0FDYix3RUFBd0UsQ0FDekUsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQTFKRCx3SUEwSkM7QUFFRCxTQUFTLDhCQUE4QixDQUFDLFVBQWdCO0lBQ3RELE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxXQUFXLEVBQUUsR0FBRyxFQUFFLENBQUM7SUFDOUMsT0FBTyxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzNELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb250YWluZXJJbWFnZUJ1aWxkIH0gZnJvbSBcIkBjZGtsYWJzL2RlcGxveS10aW1lLWJ1aWxkXCI7XG5pbXBvcnQgKiBhcyBzYWdlbWFrZXIgZnJvbSBcIkBhd3MtY2RrL2F3cy1zYWdlbWFrZXItYWxwaGFcIjtcbmltcG9ydCB7IER1cmF0aW9uLCBTaXplLCBUb2tlbiB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgR3JhbnQsIElHcmFudGFibGUgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiO1xuaW1wb3J0IHsgSUJ1Y2tldCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtczNcIjtcbmltcG9ydCB7XG4gIEJ1Y2tldERlcGxveW1lbnQsXG4gIElTb3VyY2UsXG4gIFNvdXJjZSxcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zMy1kZXBsb3ltZW50XCI7XG5pbXBvcnQgeyBDZm5FbmRwb2ludENvbmZpZywgQ2ZuTW9kZWwgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXNhZ2VtYWtlclwiO1xuaW1wb3J0IHsgQ29uc3RydWN0LCBJRGVwZW5kYWJsZSB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7XG4gIGNhbGNNZW1vcnlGb290cHJpbnQsXG4gIGNhbGNUZW5zb3JQYXJhbGxlbCxcbiAgRGF0YVR5cGVCaXRzLFxuICBJTmV1cm9ueEluc3RhbmNlVHlwZSxcbiAgaW5mZXJNZW1vcnlGb290cHJpbnRGcm9tUGFyYW1ldGVycyxcbiAgTW9kZWxDb25maWcsXG4gIE5ldXJvbnhJbnN0YW5jZVR5cGUsXG4gIE9wdExldmVsLFxuICBQYXJhbWV0ZXJzLFxuICBRdWFudER0eXBlLFxufSBmcm9tIFwiLi4vYmFzZS9uZXVyb254XCI7XG5pbXBvcnQge1xuICBTYWdlTWFrZXJJbmZlcmVuY2VUb29sa2l0VG54Q29tcGlsZU9wdGlvbnMsXG4gIFNhZ2VNYWtlckluZmVyZW5jZVRvb2xraXRUbnhDb21waWxlcixcbn0gZnJvbSBcIi4vc2FnZW1ha2VyLWluZmVyZW5jZS10b29sa2l0LXRueC1jb21waWxlclwiO1xuXG4vKipcbiAqIFByZWNvbXBpbGVkIG1vZGVsIG9wdGlvbnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcGlsZWRNb2RlbE9wdGlvbnMge1xuICAvKipcbiAgICogTmV1cm9ueCBjb21waWxlIG9wdGlvbnMuXG4gICAqIEBkZWZhdWx0IC0gRWFjaCBwcm9wZXJ0aWVzIGFyZSBzZXQgZGVmYXVsdC5cbiAgICovXG4gIHJlYWRvbmx5IGNvbXBpbGVPcHRpb25zPzogU2FnZU1ha2VySW5mZXJlbmNlVG9vbGtpdFRueENvbXBpbGVPcHRpb25zO1xuICAvKipcbiAgICogQ29kZSB1c2VkIGZvciBpbmZlcmVuY2VcbiAgICogQGRlZmF1bHQgLSB1c2luZyB0aGUgcHJlZGVmaW5lZCBjb2RlXG4gICAqL1xuICByZWFkb25seSBjb2RlPzogSVNvdXJjZTtcbiAgLyoqXG4gICAqIE1vZGVsIElEIG9yIHNhdmVkIHBhdGhcbiAgICogQGRlZmF1bHQgXCIuL21vZGVsXCJcbiAgICovXG4gIHJlYWRvbmx5IG1vZGVsSWRPclBhdGg/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgcGF0aCB3aGVyZSBjb21waWxlZCBhcnRpZmFjdHMgKGkuZS4geHh4Lm5lZmYpIGFyZSBzdG9yZWRcbiAgICogQGRlZmF1bHQgXCIuL2NvbXBpbGVkXCJcbiAgICovXG4gIHJlYWRvbmx5IGNvbXBpbGVkQXJ0aWZhY3RQYXRoPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1Y2tldENvbXBpbGVkTW9kZWxPcHRpb25zIGV4dGVuZHMgQ29tcGlsZWRNb2RlbE9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBwYXJhbWV0ZXJzIG9mIG1vZGVsLlxuICAgKi9cbiAgcmVhZG9ubHkgcGFyYW1ldGVyczogUGFyYW1ldGVycztcbiAgcmVhZG9ubHkgY29uZmlnPzogTW9kZWxDb25maWc7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWRcbiAqL1xuZXhwb3J0IGNsYXNzIFNhZ2VNYWtlckluZmVyZW5jZVRvb2xraXRUbnhTYWdlTWFrZXJJbmZlcmVuY2VNb2RlbERhdGEge1xuICBzdGF0aWMgZnJvbUJ1Y2tldChcbiAgICBidWNrZXQ6IElCdWNrZXQsXG4gICAgcHJlZml4OiBzdHJpbmcsXG4gICAgb3B0aW9uczogQnVja2V0Q29tcGlsZWRNb2RlbE9wdGlvbnMsXG4gICkge1xuICAgIGNvbnN0IG5Qb3NpdGlvbnMgPSBvcHRpb25zLmNvbXBpbGVPcHRpb25zPy5uUG9zaXRpb25zID8/IDQwOTY7XG4gICAgY29uc3QgcXVhbnREdHlwZSA9IG9wdGlvbnMuY29tcGlsZU9wdGlvbnM/LnF1YW50RHR5cGU7XG4gICAgY29uc3Qgb3B0TGV2ZWwgPSBPcHRMZXZlbC5CRVNUX0JBTEFOQ0U7XG4gICAgY29uc3QgYmF0Y2hTaXplID0gb3B0aW9ucy5jb21waWxlT3B0aW9ucz8uYmF0Y2hTaXplID8/IDE7XG4gICAgY29uc3QgbWVtb3J5Rm9vdHByaW50ID0gb3B0aW9ucy5jb25maWdcbiAgICAgID8gY2FsY01lbW9yeUZvb3RwcmludChcbiAgICAgICAgICBvcHRpb25zLmNvbmZpZy5lbWJlZGRpbmdEaW1lbnNpb24sXG4gICAgICAgICAgb3B0aW9ucy5jb25maWcubGF5ZXJzLFxuICAgICAgICAgIERhdGFUeXBlQml0cy5CRjE2X09SX0ZQMTYsXG4gICAgICAgICAgblBvc2l0aW9ucyxcbiAgICAgICAgICBiYXRjaFNpemUsXG4gICAgICAgIClcbiAgICAgIDogaW5mZXJNZW1vcnlGb290cHJpbnRGcm9tUGFyYW1ldGVycyhcbiAgICAgICAgICBvcHRpb25zLnBhcmFtZXRlcnMsXG4gICAgICAgICAgblBvc2l0aW9ucyxcbiAgICAgICAgICBiYXRjaFNpemUsXG4gICAgICAgICk7XG4gICAgY29uc3QgbmV1cm9ueEluc3RhbmNlVHlwZXMgPSBbXG4gICAgICBOZXVyb254SW5zdGFuY2VUeXBlLklORjJfOFhMQVJHRSxcbiAgICAgIE5ldXJvbnhJbnN0YW5jZVR5cGUuSU5GMl8yNFhMQVJHRSxcbiAgICAgIE5ldXJvbnhJbnN0YW5jZVR5cGUuSU5GMl80OFhMQVJHRSxcbiAgICBdO1xuICAgIGNvbnN0IGF2YWlsYWJsZUluc3RhbmNlUGF0dGVybnMgPSBuZXVyb254SW5zdGFuY2VUeXBlc1xuICAgICAgLmZsYXRNYXAoKG5ldXJvbnhJbnN0YW5jZVR5cGUpID0+XG4gICAgICAgIGNhbGNUZW5zb3JQYXJhbGxlbChcbiAgICAgICAgICBuZXVyb254SW5zdGFuY2VUeXBlLFxuICAgICAgICAgIG1lbW9yeUZvb3RwcmludCxcbiAgICAgICAgICBvcHRpb25zLmNvbmZpZz8uYXR0ZW50aW9uSGVhZHMsXG4gICAgICAgICkubWFwKCh2KSA9PiAoe1xuICAgICAgICAgIG5ldXJvbnhJbnN0YW5jZVR5cGUsXG4gICAgICAgICAgLi4udixcbiAgICAgICAgfSkpLFxuICAgICAgKVxuICAgICAgLmZpbHRlcihcbiAgICAgICAgKHBhdHRlcm4pID0+XG4gICAgICAgICAgIW9wdGlvbnMuY29tcGlsZU9wdGlvbnM/LnRwRGVncmVlIHx8XG4gICAgICAgICAgcGF0dGVybi50cCA9PT0gb3B0aW9ucy5jb21waWxlT3B0aW9ucy50cERlZ3JlZSxcbiAgICAgICk7XG4gICAgaWYgKGF2YWlsYWJsZUluc3RhbmNlUGF0dGVybnMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBObyBhdmFpbGFibGUgaW5zdGFuY2UgdHlwZS4gWW91IGNhbiB1c2UgdHBEZWdyZWUgYXJlICR7YXZhaWxhYmxlSW5zdGFuY2VQYXR0ZXJucy5tYXAoKHApID0+IHAudHApLmpvaW4oXCIsIFwiKX0uYCxcbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnN0IHRwRGVncmVlID1cbiAgICAgIG9wdGlvbnMuY29tcGlsZU9wdGlvbnM/LnRwRGVncmVlID8/IGF2YWlsYWJsZUluc3RhbmNlUGF0dGVybnNbMF0udHA7XG4gICAgcmV0dXJuIG5ldyBTYWdlTWFrZXJJbmZlcmVuY2VUb29sa2l0VG54U2FnZU1ha2VySW5mZXJlbmNlTW9kZWxEYXRhKHtcbiAgICAgIGJ1Y2tldCxcbiAgICAgIGNvbXBpbGVkQXJ0aWZhY3RTM1ByZWZpeDogcHJlZml4LFxuICAgICAgblBvc2l0aW9ucyxcbiAgICAgIHF1YW50RHR5cGUsXG4gICAgICBvcHRMZXZlbCxcbiAgICAgIHRwRGVncmVlLFxuICAgICAgY29kZTogb3B0aW9ucy5jb2RlLFxuICAgICAgbW9kZWxJZE9yUGF0aDogb3B0aW9ucy5tb2RlbElkT3JQYXRoLFxuICAgICAgcGFyYW1ldGVyczogb3B0aW9ucy5wYXJhbWV0ZXJzLFxuICAgIH0pO1xuICB9XG4gIHN0YXRpYyBmcm9tTmV1cm9ueE5hdGl2ZUNvbXBpbGVyKFxuICAgIGNvbXBpbGVyOiBTYWdlTWFrZXJJbmZlcmVuY2VUb29sa2l0VG54Q29tcGlsZXIsXG4gICAgY29kZT86IElTb3VyY2UsXG4gICkge1xuICAgIGNvbnN0IGNvbXBpbGVkTW9kZWwgPSBjb21waWxlci5jb21waWxlKCk7XG4gICAgcmV0dXJuIG5ldyBTYWdlTWFrZXJJbmZlcmVuY2VUb29sa2l0VG54U2FnZU1ha2VySW5mZXJlbmNlTW9kZWxEYXRhKHtcbiAgICAgIC4uLmNvbXBpbGVkTW9kZWwsXG4gICAgICBvcHRMZXZlbDogY29tcGlsZWRNb2RlbC5vcHRMZXZlbCA/PyBPcHRMZXZlbC5CRVNUX0JBTEFOQ0UsXG4gICAgICBjb21waWxlZEFydGlmYWN0UzNQcmVmaXg6IGNvbXBpbGVkTW9kZWwuczNQcmVmaXgsXG4gICAgICBwYXJhbWV0ZXJzOiBjb21waWxlci5tb2RlbC5vcHRpb25zLnBhcmFtZXRlcnMsXG4gICAgICBjb2RlLFxuICAgICAgZGVwZW5kYWJsZXM6IFtjb21waWxlci5ub2RlLmRlZmF1bHRDaGlsZCFdLFxuICAgIH0pO1xuICB9XG4gIHJlYWRvbmx5IGJ1Y2tldDogSUJ1Y2tldDtcbiAgcmVhZG9ubHkgY29tcGlsZWRBcnRpZmFjdFMzUHJlZml4OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGNvZGU6IElTb3VyY2U7XG4gIHJlYWRvbmx5IHRwRGVncmVlOiBudW1iZXI7XG4gIHJlYWRvbmx5IHF1YW50RHR5cGU/OiBRdWFudER0eXBlO1xuICByZWFkb25seSBuUG9zaXRpb25zOiBudW1iZXI7XG4gIHJlYWRvbmx5IG9wdExldmVsOiBPcHRMZXZlbDtcbiAgcmVhZG9ubHkgbW9kZWxJZE9yUGF0aD86IHN0cmluZztcbiAgcmVhZG9ubHkgY29tcGlsZWRBcnRpZmFjdFBhdGg/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHBhcmFtZXRlcnM6IFBhcmFtZXRlcnM7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVwZW5kYWJsZXM6IElEZXBlbmRhYmxlW107XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihvcHRpb25zOiB7XG4gICAgcmVhZG9ubHkgYnVja2V0OiBJQnVja2V0O1xuICAgIHJlYWRvbmx5IGNvbXBpbGVkQXJ0aWZhY3RTM1ByZWZpeDogc3RyaW5nO1xuICAgIHJlYWRvbmx5IHRwRGVncmVlOiBudW1iZXI7XG4gICAgcmVhZG9ubHkgcXVhbnREdHlwZT86IFF1YW50RHR5cGU7XG4gICAgcmVhZG9ubHkgblBvc2l0aW9uczogbnVtYmVyO1xuICAgIHJlYWRvbmx5IG9wdExldmVsOiBPcHRMZXZlbDtcbiAgICByZWFkb25seSBjb2RlPzogSVNvdXJjZTtcbiAgICByZWFkb25seSBtb2RlbElkT3JQYXRoPzogc3RyaW5nO1xuICAgIHJlYWRvbmx5IGNvbXBpbGVkQXJ0aWZhY3RQYXRoPzogc3RyaW5nO1xuICAgIHJlYWRvbmx5IHBhcmFtZXRlcnM6IFBhcmFtZXRlcnM7XG4gICAgcmVhZG9ubHkgZGVwZW5kYWJsZXM/OiBJRGVwZW5kYWJsZVtdO1xuICB9KSB7XG4gICAgdGhpcy5idWNrZXQgPSBvcHRpb25zLmJ1Y2tldDtcbiAgICB0aGlzLmNvbXBpbGVkQXJ0aWZhY3RTM1ByZWZpeCA9IG9wdGlvbnMuY29tcGlsZWRBcnRpZmFjdFMzUHJlZml4O1xuICAgIHRoaXMuY29kZSA9XG4gICAgICBvcHRpb25zLmNvZGUgPz9cbiAgICAgIFNvdXJjZS5hc3NldChcbiAgICAgICAgam9pbihcbiAgICAgICAgICBfX2Rpcm5hbWUsXG4gICAgICAgICAgXCIuLi8uLi9zY3JpcHRzL2luZmVyZW5jZS9zYWdlbWFrZXItaW5mZXJlbmNlLXRvb2xraXQtdG54L2NvZGVcIixcbiAgICAgICAgKSxcbiAgICAgICk7XG4gICAgdGhpcy50cERlZ3JlZSA9IG9wdGlvbnMudHBEZWdyZWU7XG4gICAgdGhpcy5xdWFudER0eXBlID0gb3B0aW9ucy5xdWFudER0eXBlO1xuICAgIHRoaXMublBvc2l0aW9ucyA9IG9wdGlvbnMublBvc2l0aW9ucztcbiAgICB0aGlzLm9wdExldmVsID0gb3B0aW9ucy5vcHRMZXZlbDtcbiAgICB0aGlzLm1vZGVsSWRPclBhdGggPSBvcHRpb25zLm1vZGVsSWRPclBhdGg7XG4gICAgdGhpcy5jb21waWxlZEFydGlmYWN0UGF0aCA9IG9wdGlvbnMuY29tcGlsZWRBcnRpZmFjdFBhdGg7XG4gICAgdGhpcy5wYXJhbWV0ZXJzID0gb3B0aW9ucy5wYXJhbWV0ZXJzO1xuICAgIHRoaXMuZGVwZW5kYWJsZXMgPSBvcHRpb25zLmRlcGVuZGFibGVzID8/IFtdO1xuICB9XG5cbiAgYmluZChzY29wZTogQ29uc3RydWN0LCBtb2RlbDogc2FnZW1ha2VyLklNb2RlbCkge1xuICAgIGNvbnN0IGRlcGxveSA9IG5ldyBCdWNrZXREZXBsb3ltZW50KHNjb3BlLCBcIkNvZGVEZXBsb3ltZW50XCIsIHtcbiAgICAgIGRlc3RpbmF0aW9uQnVja2V0OiB0aGlzLmJ1Y2tldCxcbiAgICAgIHNvdXJjZXM6IFt0aGlzLmNvZGVdLFxuICAgICAgZGVzdGluYXRpb25LZXlQcmVmaXg6IGpvaW4odGhpcy5jb21waWxlZEFydGlmYWN0UzNQcmVmaXgsIFwiY29kZVwiKSxcbiAgICB9KTtcbiAgICBkZXBsb3kubm9kZS5hZGREZXBlbmRlbmN5KC4uLnRoaXMuZGVwZW5kYWJsZXMpO1xuICAgIG1vZGVsLm5vZGUuYWRkRGVwZW5kZW5jeShkZXBsb3kpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2FnZU1ha2VySW5mZXJlbmNlVG9vbGtpdFRueFNhZ2VNYWtlclJlYWx0aW1lSW5mZXJlbmNlRW5kcG9pbnRQcm9wcyB7XG4gIC8qKlxuICAgKiBNb2RlbCBkYXRhIGZvciBTYWdlTWFrZXIgaW5mZXJlbmNlLlxuICAgKiBUaGUgbW9kZWwgZGF0YSByZXF1aXJlcyBhdCBsZWFzdCBjb21waWxlZCBhcnRpZmFjdHMuXG4gICAqL1xuICByZWFkb25seSBtb2RlbERhdGE6IFNhZ2VNYWtlckluZmVyZW5jZVRvb2xraXRUbnhTYWdlTWFrZXJJbmZlcmVuY2VNb2RlbERhdGE7XG4gIC8qKlxuICAgKiBBbiBpbWFnZSBvZiB0aGUgY29udGFpbmVyIHdoZXJlIHRoZSBpbmZlcmVuY2Ugam9iIGlzIGV4ZWN1dGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgaW1hZ2U/OiBzYWdlbWFrZXIuQ29udGFpbmVySW1hZ2U7XG4gIC8qKlxuICAgKiBBIG1hcCBvZiBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gcGFzcyBpbnRvIHRoZSBjb250YWluZXIuXG4gICAqIEBkZWZhdWx0IC0gT25seSB0aGUgcHJlZGVmaW5lZCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgcmVxdWlyZWQgdG8gdXNlIE5ldXJvbnggaGF2ZSBiZWVuIHNldC5cbiAgICovXG4gIHJlYWRvbmx5IGVudmlyb25tZW50PzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgLyoqXG4gICAqIFRoZSBpbnN0YW5jZSB0eXBlIG9mIGNvbXBpbGUgd29ya2VyIGluc3RhbmNlLlxuICAgKiBAZGVmYXVsdCAtIEl0IGlzIGRldGVybWluZWQgYXV0b21hdGljYWxseSBhY2NvcmRpbmcgdG8gdGhlIG51bWJlciBvZiBtb2RlbCBwYXJhbWV0ZXJzIGFuZCBjb21waWxhdGlvbiBvcHRpb25zLlxuICAgKi9cbiAgcmVhZG9ubHkgaW5zdGFuY2VUeXBlPzogSU5ldXJvbnhJbnN0YW5jZVR5cGU7XG4gIC8qKlxuICAgKiBUaGUgc2l6ZSwgb2YgdGhlIE1MIHN0b3JhZ2Ugdm9sdW1lIGF0dGFjaGVkIHRvIGluZGl2aWR1YWwgaW5mZXJlbmNlIGluc3RhbmNlIGFzc29jaWF0ZWQgd2l0aCB0aGUgcHJvZHVjdGlvbiB2YXJpYW50LlxuICAgKiBDdXJyZW50bHkgb25seSBBbWF6b24gRUJTIGdwMiBzdG9yYWdlIHZvbHVtZXMgYXJlIHN1cHBvcnRlZC5cbiAgICogQHNlZSBodHRwczovL2F3cy5hbWF6b24uY29tL2pwL3JlbGVhc2Vub3Rlcy9ob3N0LWluc3RhbmNlLXN0b3JhZ2Utdm9sdW1lcy10YWJsZVxuICAgKiBAZGVmYXVsdCAtIDMgR0IgcGVyIGJpbGxpb24gcGFyYW1ldGVyIChNYXggNTEyIEdCKVxuICAgKi9cbiAgcmVhZG9ubHkgdm9sdW1lU2l6ZT86IFNpemU7XG4gIC8qKlxuICAgKiBUaGUgdGltZW91dCB2YWx1ZSwgdG8gZG93bmxvYWQgYW5kIGV4dHJhY3QgdGhlIG1vZGVsIHRoYXQgeW91IHdhbnQgdG8gaG9zdCBmcm9tIEFtYXpvbiBTM1xuICAgKiB0byB0aGUgaW5kaXZpZHVhbCBpbmZlcmVuY2UgaW5zdGFuY2UgYXNzb2NpYXRlZCB3aXRoIHRoaXMgcHJvZHVjdGlvbiB2YXJpYW50LlxuICAgKiBAZGVmYXVsdCAtIDYwIHNlY29uZHMsIHdoZW4gYHZvbHVtZVNpemVgIGxhcmdlciB0aGFuIDMwR0IgdGhlbiAxR0IgeCAxNSBzZWNvbmRzIChtYXggNjAgbWludXRlcylcbiAgICovXG4gIHJlYWRvbmx5IG1vZGVsRGF0YURvd25sb2FkVGltZW91dD86IER1cmF0aW9uO1xuICAvKipcbiAgICogVGhlIHRpbWVvdXQgdmFsdWUsIGZvciB5b3VyIGluZmVyZW5jZSBjb250YWluZXIgdG8gcGFzcyBoZWFsdGggY2hlY2sgYnkgU2FnZU1ha2VyIEhvc3RpbmcuXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3NhZ2VtYWtlci9sYXRlc3QvZGcveW91ci1hbGdvcml0aG1zLWluZmVyZW5jZS1jb2RlLmh0bWwjeW91ci1hbGdvcml0aG1zLWluZmVyZW5jZS1hbGdvLXBpbmctcmVxdWVzdHNcbiAgICogQGRlZmF1bHQgLSA2MCBzZWNvbmRzLCB3aGVuIHNldCB0aGUgYG1vZGVsRGF0YURvd25sb2FkVGltZW91dGAgdGhlbiB1c2Ugc2FtZSB2YWx1ZSAobWF4IDYwIG1pbnV0ZXMpXG4gICAqL1xuICByZWFkb25seSBjb250YWluZXJTdGFydHVwSGVhbHRoQ2hlY2tUaW1lb3V0PzogRHVyYXRpb247XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWRcbiAqL1xuZXhwb3J0IGNsYXNzIFNhZ2VNYWtlckluZmVyZW5jZVRvb2xraXRUbnhTYWdlTWFrZXJSZWFsdGltZUluZmVyZW5jZUVuZHBvaW50IGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGVuZHBvaW50LlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBlbmRwb2ludEFybjogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGVuZHBvaW50LlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBlbmRwb2ludE5hbWU6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBlbmRwb2ludDogc2FnZW1ha2VyLkVuZHBvaW50O1xuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IFNhZ2VNYWtlckluZmVyZW5jZVRvb2xraXRUbnhTYWdlTWFrZXJSZWFsdGltZUluZmVyZW5jZUVuZHBvaW50UHJvcHMsXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgbGV0IGltYWdlOiBzYWdlbWFrZXIuQ29udGFpbmVySW1hZ2U7XG4gICAgaWYgKHByb3BzLmltYWdlKSB7XG4gICAgICBpbWFnZSA9IHByb3BzLmltYWdlO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBidWlsZCA9IG5ldyBDb250YWluZXJJbWFnZUJ1aWxkKHRoaXMsIFwiSW5mZXJlbmNlSW1hZ2VCdWlsZFwiLCB7XG4gICAgICAgIGRpcmVjdG9yeTogam9pbihcbiAgICAgICAgICBfX2Rpcm5hbWUsXG4gICAgICAgICAgXCIuLi8uLi9zY3JpcHRzL2luZmVyZW5jZS9zYWdlbWFrZXItaW5mZXJlbmNlLXRvb2xraXQtdG54XCIsXG4gICAgICAgICksXG4gICAgICB9KTtcbiAgICAgIGltYWdlID0gc2FnZW1ha2VyLkNvbnRhaW5lckltYWdlLmZyb21FY3JSZXBvc2l0b3J5KFxuICAgICAgICBidWlsZC5yZXBvc2l0b3J5LFxuICAgICAgICBidWlsZC5pbWFnZVRhZyxcbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnN0IGluc3RhbmNlVHlwZSA9XG4gICAgICBwcm9wcy5pbnN0YW5jZVR5cGUgPz9cbiAgICAgIHRoaXMuc2VsZWN0SW5zdGFuY2VUeXBlQnlUcERlZ3JlZShwcm9wcy5tb2RlbERhdGEudHBEZWdyZWUpO1xuICAgIGNvbnN0IG1vZGVsID0gbmV3IHNhZ2VtYWtlci5Nb2RlbCh0aGlzLCBcIk1vZGVsXCIsIHtcbiAgICAgIGNvbnRhaW5lcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGltYWdlLFxuICAgICAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgICAgICBORVVST05fUlRfTlVNX0NPUkVTOiBwcm9wcy5tb2RlbERhdGEudHBEZWdyZWUudG9TdHJpbmcoKSxcbiAgICAgICAgICAgIFRTX0RFRkFVTFRfUkVTUE9OU0VfVElNRU9VVDogKDYwICogNjApLnRvU3RyaW5nKCksXG4gICAgICAgICAgICBUU19ERUZBVUxUX1dPUktFUlNfUEVSX01PREVMOiBNYXRoLmZsb29yKFxuICAgICAgICAgICAgICBpbnN0YW5jZVR5cGUuYWNjZWxlcmF0b3JDaGlwcy5uZXVyb254Q29yZXMgL1xuICAgICAgICAgICAgICAgIHByb3BzLm1vZGVsRGF0YS50cERlZ3JlZSxcbiAgICAgICAgICAgICkudG9TdHJpbmcoKSxcbiAgICAgICAgICAgIE1PREVMOiBwcm9wcy5tb2RlbERhdGEubW9kZWxJZE9yUGF0aCA/PyBcIi4vbW9kZWxcIixcbiAgICAgICAgICAgIENPTVBJTEVEX0FSVElGQUNUOlxuICAgICAgICAgICAgICBwcm9wcy5tb2RlbERhdGEuY29tcGlsZWRBcnRpZmFjdFBhdGggPz8gXCIuL2NvbXBpbGVkXCIsXG4gICAgICAgICAgICBUUF9ERUdSRUU6IHByb3BzLm1vZGVsRGF0YS50cERlZ3JlZS50b1N0cmluZygpLFxuICAgICAgICAgICAgTl9QT1NJVElPTlM6IHByb3BzLm1vZGVsRGF0YS5uUG9zaXRpb25zLnRvU3RyaW5nKCksXG4gICAgICAgICAgICBPUFRfTEVWRUw6IHByb3BzLm1vZGVsRGF0YS5vcHRMZXZlbC50b1N0cmluZygpLFxuICAgICAgICAgICAgUVVBTlRfRFRZUEU6IHByb3BzLm1vZGVsRGF0YS5xdWFudER0eXBlPy50b1N0cmluZygpID8/IFwiXCIsXG4gICAgICAgICAgICAuLi5wcm9wcy5lbnZpcm9ubWVudCxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcbiAgICBjb25zdCBjZm5Nb2RlbCA9IG1vZGVsLm5vZGUuZmluZENoaWxkKFwiTW9kZWxcIikgYXMgQ2ZuTW9kZWw7XG4gICAgY2ZuTW9kZWwuYWRkUHJvcGVydHlPdmVycmlkZShcbiAgICAgIFwiUHJpbWFyeUNvbnRhaW5lci5Nb2RlbERhdGFTb3VyY2UuUzNEYXRhU291cmNlLlMzVXJpXCIsXG4gICAgICBwcm9wcy5tb2RlbERhdGEuYnVja2V0LnMzVXJsRm9yT2JqZWN0KFxuICAgICAgICBUb2tlbi5pc1VucmVzb2x2ZWQocHJvcHMubW9kZWxEYXRhLmNvbXBpbGVkQXJ0aWZhY3RTM1ByZWZpeCkgfHxcbiAgICAgICAgICBwcm9wcy5tb2RlbERhdGEuY29tcGlsZWRBcnRpZmFjdFMzUHJlZml4LmVuZHNXaXRoKFwiL1wiKVxuICAgICAgICAgID8gcHJvcHMubW9kZWxEYXRhLmNvbXBpbGVkQXJ0aWZhY3RTM1ByZWZpeFxuICAgICAgICAgIDogYCR7cHJvcHMubW9kZWxEYXRhLmNvbXBpbGVkQXJ0aWZhY3RTM1ByZWZpeH0vYCxcbiAgICAgICksXG4gICAgKTtcbiAgICBjZm5Nb2RlbC5hZGRQcm9wZXJ0eU92ZXJyaWRlKFxuICAgICAgXCJQcmltYXJ5Q29udGFpbmVyLk1vZGVsRGF0YVNvdXJjZS5TM0RhdGFTb3VyY2UuUzNEYXRhVHlwZUJpdHNcIixcbiAgICAgIFwiUzNQcmVmaXhcIixcbiAgICApO1xuICAgIGNmbk1vZGVsLmFkZFByb3BlcnR5T3ZlcnJpZGUoXG4gICAgICBcIlByaW1hcnlDb250YWluZXIuTW9kZWxEYXRhU291cmNlLlMzRGF0YVNvdXJjZS5Db21wcmVzc2lvblR5cGVcIixcbiAgICAgIFwiTm9uZVwiLFxuICAgICk7XG4gICAgcHJvcHMubW9kZWxEYXRhLmJ1Y2tldC5ncmFudFJlYWQobW9kZWwpO1xuICAgIHByb3BzLm1vZGVsRGF0YS5iaW5kKHRoaXMsIG1vZGVsKTtcbiAgICBjb25zdCBlbmRwb2ludENvbmZpZyA9IG5ldyBzYWdlbWFrZXIuRW5kcG9pbnRDb25maWcoXG4gICAgICB0aGlzLFxuICAgICAgXCJFbmRwb2ludENvbmZpZ1wiLFxuICAgICAge1xuICAgICAgICBpbnN0YW5jZVByb2R1Y3Rpb25WYXJpYW50czogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG1vZGVsLFxuICAgICAgICAgICAgdmFyaWFudE5hbWU6IFwiUHJpbWFyeVZhcmlhbnRcIixcbiAgICAgICAgICAgIGluc3RhbmNlVHlwZTogc2FnZW1ha2VyLkluc3RhbmNlVHlwZS5vZihcbiAgICAgICAgICAgICAgYG1sLiR7aW5zdGFuY2VUeXBlLnRvU3RyaW5nKCl9YCxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgKTtcbiAgICBjb25zdCBjZm5FbmRwb2ludENvbmZpZyA9IGVuZHBvaW50Q29uZmlnLm5vZGUuZmluZENoaWxkKFxuICAgICAgXCJFbmRwb2ludENvbmZpZ1wiLFxuICAgICkgYXMgQ2ZuRW5kcG9pbnRDb25maWc7XG4gICAgY29uc3Qgdm9sdW1lU2l6ZSA9XG4gICAgICBwcm9wcy52b2x1bWVTaXplID8/XG4gICAgICBTaXplLmdpYmlieXRlcyhcbiAgICAgICAgTWF0aC5jZWlsKFxuICAgICAgICAgIHByb3BzLm1vZGVsRGF0YS5wYXJhbWV0ZXJzLnRvQmlsbGlvbigpICogMyA+IDUxMlxuICAgICAgICAgICAgPyA1MTJcbiAgICAgICAgICAgIDogcHJvcHMubW9kZWxEYXRhLnBhcmFtZXRlcnMudG9CaWxsaW9uKCkgKiAzLFxuICAgICAgICApLFxuICAgICAgKTtcbiAgICBjZm5FbmRwb2ludENvbmZpZy5hZGRQcm9wZXJ0eU92ZXJyaWRlKFxuICAgICAgXCJQcm9kdWN0aW9uVmFyaWFudHMuMC5Wb2x1bWVTaXplSW5HQlwiLFxuICAgICAgaW5zdGFuY2VUeXBlLnRvU3RyaW5nKCkuc3RhcnRzV2l0aChcIm1sLnRybjFcIilcbiAgICAgICAgPyB1bmRlZmluZWRcbiAgICAgICAgOiB2b2x1bWVTaXplLnRvR2liaWJ5dGVzKCksXG4gICAgKTtcbiAgICBjb25zdCBtb2RlbERhdGFEb3dubG9hZFRpbWVvdXQgPVxuICAgICAgcHJvcHMubW9kZWxEYXRhRG93bmxvYWRUaW1lb3V0ID8/XG4gICAgICBpbmZlcmVuY2VNb2RlbERhdGFEb3dubG9hZFRpbWUodm9sdW1lU2l6ZSk7XG4gICAgY2ZuRW5kcG9pbnRDb25maWcuYWRkUHJvcGVydHlPdmVycmlkZShcbiAgICAgIFwiUHJvZHVjdGlvblZhcmlhbnRzLjAuTW9kZWxEYXRhRG93bmxvYWRUaW1lb3V0SW5TZWNvbmRzXCIsXG4gICAgICBtb2RlbERhdGFEb3dubG9hZFRpbWVvdXQudG9TZWNvbmRzKCksXG4gICAgKTtcbiAgICBjZm5FbmRwb2ludENvbmZpZy5hZGRQcm9wZXJ0eU92ZXJyaWRlKFxuICAgICAgXCJQcm9kdWN0aW9uVmFyaWFudHMuMC5Db250YWluZXJTdGFydHVwSGVhbHRoQ2hlY2tUaW1lb3V0SW5TZWNvbmRzXCIsXG4gICAgICAoXG4gICAgICAgIHByb3BzLmNvbnRhaW5lclN0YXJ0dXBIZWFsdGhDaGVja1RpbWVvdXQgPz8gbW9kZWxEYXRhRG93bmxvYWRUaW1lb3V0XG4gICAgICApLnRvU2Vjb25kcygpLFxuICAgICk7XG4gICAgY29uc3QgZW5kcG9pbnQgPSBuZXcgc2FnZW1ha2VyLkVuZHBvaW50KHRoaXMsIFwiRW5kcG9pbnRcIiwge1xuICAgICAgZW5kcG9pbnRDb25maWcsXG4gICAgfSk7XG4gICAgdGhpcy5lbmRwb2ludEFybiA9IGVuZHBvaW50LmVuZHBvaW50QXJuO1xuICAgIHRoaXMuZW5kcG9pbnROYW1lID0gZW5kcG9pbnQuZW5kcG9pbnROYW1lO1xuICAgIHRoaXMuZW5kcG9pbnQgPSBlbmRwb2ludDtcbiAgfVxuICBncmFudEludm9rZShncmFudGVlOiBJR3JhbnRhYmxlKTogR3JhbnQge1xuICAgIHJldHVybiB0aGlzLmVuZHBvaW50LmdyYW50SW52b2tlKGdyYW50ZWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZWxlY3RJbnN0YW5jZVR5cGVCeVRwRGVncmVlKHRwRGVncmVlOiBudW1iZXIpIHtcbiAgICBjb25zdCBpbnN0YW5jZVR5cGVzID0gW1xuICAgICAgTmV1cm9ueEluc3RhbmNlVHlwZS5JTkYyXzhYTEFSR0UsXG4gICAgICBOZXVyb254SW5zdGFuY2VUeXBlLklORjJfMjRYTEFSR0UsXG4gICAgICBOZXVyb254SW5zdGFuY2VUeXBlLklORjJfNDhYTEFSR0UsXG4gICAgICBOZXVyb254SW5zdGFuY2VUeXBlLlRSTjFfMzJYTEFSR0UsXG4gICAgXTtcbiAgICBmb3IgKGNvbnN0IGluc3RhbmNlVHlwZSBvZiBpbnN0YW5jZVR5cGVzKSB7XG4gICAgICBpZiAoXG4gICAgICAgIGluc3RhbmNlVHlwZS5zdXBwb3J0ZWRUZW5zb3JQYXJhbGxlbGlzbS5maW5kKCh0cCkgPT4gdHAgPj0gdHBEZWdyZWUpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIGluc3RhbmNlVHlwZTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgXCJUaGlzIG1vZGVsIGlzIHRvbyBsYXJnZSwgSSBjYW4gbm90IHN1cHBvcnQgdGhpcyBtb2RlbCBjdXJyZW50IHZlcnNpb24uXCIsXG4gICAgKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpbmZlcmVuY2VNb2RlbERhdGFEb3dubG9hZFRpbWUodm9sdW1lU2l6ZTogU2l6ZSkge1xuICBjb25zdCBzZWNvbmRzID0gdm9sdW1lU2l6ZS50b0dpYmlieXRlcygpICogMTU7XG4gIHJldHVybiBEdXJhdGlvbi5zZWNvbmRzKHNlY29uZHMgPCAzNjAwID8gc2Vjb25kcyA6IDM2MDApO1xufVxuIl19
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Size } from "aws-cdk-lib";
|
|
2
|
+
import * as ec2 from "aws-cdk-lib/aws-ec2";
|
|
2
3
|
import { IVpc, SubnetSelection } from "aws-cdk-lib/aws-ec2";
|
|
3
4
|
import { ContainerImage } from "aws-cdk-lib/aws-ecs";
|
|
4
5
|
import { IBucket } from "aws-cdk-lib/aws-s3";
|
|
@@ -73,6 +74,13 @@ export interface VllmNxdInferenceCompileProps {
|
|
|
73
74
|
* @default - latest image
|
|
74
75
|
*/
|
|
75
76
|
readonly image?: INeuronxContainerImage;
|
|
77
|
+
/**
|
|
78
|
+
* The EC2 instance type to use for cross-compilation.
|
|
79
|
+
* This should be a non-Neuron instance type with sufficient memory for model compilation.
|
|
80
|
+
*
|
|
81
|
+
* @default - Automatically selected based on model size
|
|
82
|
+
*/
|
|
83
|
+
readonly compileInstanceType?: ec2.InstanceType;
|
|
76
84
|
}
|
|
77
85
|
/**
|
|
78
86
|
* The model compiled by Neuronx compiler.
|
|
@@ -5,6 +5,7 @@ exports.VllmNxdInferenceCompiler = exports.VllmNxdInferenceCompileImage = void 0
|
|
|
5
5
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
6
|
const deploy_time_build_1 = require("@cdklabs/deploy-time-build");
|
|
7
7
|
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
8
|
+
const ec2 = require("aws-cdk-lib/aws-ec2");
|
|
8
9
|
const constructs_1 = require("constructs");
|
|
9
10
|
const crypto_1 = require("crypto");
|
|
10
11
|
const path_1 = require("path");
|
|
@@ -12,6 +13,32 @@ const neuronx_1 = require("../base/neuronx");
|
|
|
12
13
|
const neuronx_compiler_1 = require("../base/neuronx-compiler");
|
|
13
14
|
const vllm_engine_1 = require("../base/server-engine/vllm-engine");
|
|
14
15
|
const vllm_nxd_inference_ecs_patterns_1 = require("./vllm-nxd-inference-ecs-patterns");
|
|
16
|
+
/**
|
|
17
|
+
* Select an appropriate compile instance type based on model weight size.
|
|
18
|
+
* Compilation requires roughly 2-3x the model weight size in RAM for
|
|
19
|
+
* HLO generation, neuronx-cc compilation, and weight sharding.
|
|
20
|
+
*/
|
|
21
|
+
function selectCompileInstanceType(weightSize) {
|
|
22
|
+
const requiredMemoryGiB = weightSize.toGibibytes() * 3;
|
|
23
|
+
if (requiredMemoryGiB <= 16) {
|
|
24
|
+
return ec2.InstanceType.of(ec2.InstanceClass.C7I, ec2.InstanceSize.XLARGE2);
|
|
25
|
+
}
|
|
26
|
+
else if (requiredMemoryGiB <= 32) {
|
|
27
|
+
return ec2.InstanceType.of(ec2.InstanceClass.C7I, ec2.InstanceSize.XLARGE4);
|
|
28
|
+
}
|
|
29
|
+
else if (requiredMemoryGiB <= 64) {
|
|
30
|
+
return ec2.InstanceType.of(ec2.InstanceClass.C7I, ec2.InstanceSize.XLARGE8);
|
|
31
|
+
}
|
|
32
|
+
else if (requiredMemoryGiB <= 96) {
|
|
33
|
+
return ec2.InstanceType.of(ec2.InstanceClass.C7I, ec2.InstanceSize.XLARGE12);
|
|
34
|
+
}
|
|
35
|
+
else if (requiredMemoryGiB <= 192) {
|
|
36
|
+
return ec2.InstanceType.of(ec2.InstanceClass.C7I, ec2.InstanceSize.XLARGE24);
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
return ec2.InstanceType.of(ec2.InstanceClass.C7I, ec2.InstanceSize.XLARGE48);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
15
42
|
/**
|
|
16
43
|
* Compile runtime container image for vLLM NxD Inference
|
|
17
44
|
*/
|
|
@@ -31,7 +58,7 @@ class VllmNxdInferenceCompileImage extends vllm_nxd_inference_ecs_patterns_1.Vll
|
|
|
31
58
|
}
|
|
32
59
|
exports.VllmNxdInferenceCompileImage = VllmNxdInferenceCompileImage;
|
|
33
60
|
_a = JSII_RTTI_SYMBOL_1;
|
|
34
|
-
VllmNxdInferenceCompileImage[_a] = { fqn: "aws-cdk-neuronx-patterns.VllmNxdInferenceCompileImage", version: "0.
|
|
61
|
+
VllmNxdInferenceCompileImage[_a] = { fqn: "aws-cdk-neuronx-patterns.VllmNxdInferenceCompileImage", version: "0.3.0" };
|
|
35
62
|
/**
|
|
36
63
|
* Neuronx compiler construct for vLLM on NxD Inference.
|
|
37
64
|
* Compile the model to work with Neuronx instance and upload it to an S3 bucket.
|
|
@@ -100,9 +127,10 @@ class VllmNxdInferenceCompiler extends constructs_1.Construct {
|
|
|
100
127
|
quantizedWightSize.toGibibytes() +
|
|
101
128
|
neuronx_1.PytorchTrainingNeuronxImage.size.toGibibytes() +
|
|
102
129
|
neuronx_1.NeuronOptimizedMachineImage.size.toGibibytes()));
|
|
103
|
-
const compiler = new neuronx_compiler_1.
|
|
130
|
+
const compiler = new neuronx_compiler_1.NeuronxCrossCompiler(this, "Resource", {
|
|
104
131
|
...props,
|
|
105
132
|
neuronxInstanceType: availableInstancePatterns[0].neuronxInstanceType,
|
|
133
|
+
compileInstanceType: props.compileInstanceType ?? selectCompileInstanceType(weightSize),
|
|
106
134
|
artifactS3Prefix,
|
|
107
135
|
image: image,
|
|
108
136
|
command: vllmCliArgs,
|
|
@@ -126,5 +154,5 @@ class VllmNxdInferenceCompiler extends constructs_1.Construct {
|
|
|
126
154
|
}
|
|
127
155
|
exports.VllmNxdInferenceCompiler = VllmNxdInferenceCompiler;
|
|
128
156
|
_b = JSII_RTTI_SYMBOL_1;
|
|
129
|
-
VllmNxdInferenceCompiler[_b] = { fqn: "aws-cdk-neuronx-patterns.VllmNxdInferenceCompiler", version: "0.
|
|
130
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmxsbS1ueGQtaW5mZXJlbmNlLWNvbXBpbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ZsbG0tbnhkLWluZmVyZW5jZS92bGxtLW54ZC1pbmZlcmVuY2UtY29tcGlsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxrRUFBaUU7QUFDakUsNkNBQW1DO0FBS25DLDJDQUF1QztBQUN2QyxtQ0FBb0M7QUFDcEMsK0JBQTRCO0FBQzVCLDZDQVl5QjtBQUN6QiwrREFJa0M7QUFDbEMsbUVBSTJDO0FBQzNDLHVGQUFpRjtBQUVqRjs7R0FFRztBQUNILE1BQWEsNEJBQTZCLFNBQVEsOERBQTRCO0lBSzVFLFlBQ0UsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLHlCQUFzRDtRQUV0RCx5QkFBeUIsS0FBekIseUJBQXlCLEdBQUssbUNBQXlCLENBQUMsTUFBTSxFQUFDO1FBQy9ELEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQ2pDLE1BQU0sS0FBSyxHQUFHLElBQUksdUNBQW1CLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUMvQyxTQUFTLEVBQUUsSUFBQSxXQUFJLEVBQUMsU0FBUyxFQUFFLDBDQUEwQyxDQUFDO1lBQ3RFLFNBQVMsRUFBRTtnQkFDVCxVQUFVLEVBQUUseUJBQXlCLENBQUMsU0FBUztnQkFDL0MsU0FBUyxFQUFFLHlCQUF5QixDQUFDLFFBQVE7YUFDOUM7U0FDRixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQzVDLENBQUM7O0FBcEJILG9FQXFCQzs7O0FBc0VEOzs7R0FHRztBQUNILE1BQWEsd0JBQXlCLFNBQVEsc0JBQVM7SUFHckQsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBbUM7UUFFbkMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMs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QUFVLENBQUMsV0FBVyxFQUFFO1lBQ3RCLGtCQUFrQixDQUFDLFdBQVcsRUFBRTtZQUNoQyxxQ0FBMkIsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQzlDLHFDQUEyQixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FDakQsQ0FDRixDQUFDO1FBRUYsTUFBTSxRQUFRLEdBQUcsSUFBSSxrQ0FBZSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDckQsR0FBRyxLQUFLO1lBQ1IsbUJBQW1CLEVBQUUseUJBQXlCLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQW1CO1lBQ3JFLGdCQUFnQjtZQUNoQixLQUFLLEVBQUUsS0FBSztZQUNaLE9BQU8sRUFBRSxXQUFXO1lBQ3BCLFdBQVc7WUFDWCxPQUFPO1lBQ1AsVUFBVTtTQUNYLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzNCLENBQUM7SUFDRDs7O09BR0c7SUFDSCxPQUFPO1FBQ0wsT0FBTztZQUNMLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUU7WUFDMUIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1NBQ2dCLENBQUM7SUFDNUMsQ0FBQzs7QUEzSEgsNERBNEhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udGFpbmVySW1hZ2VCdWlsZCB9IGZyb20gXCJAY2RrbGFicy9kZXBsb3ktdGltZS1idWlsZFwiO1xuaW1wb3J0IHsgU2l6ZSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0ICogYXMgYmF0Y2ggZnJvbSBcImF3cy1jZGstbGliL2F3cy1iYXRjaFwiO1xuaW1wb3J0IHsgSVZwYywgU3VibmV0U2VsZWN0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1lYzJcIjtcbmltcG9ydCB7IENvbnRhaW5lckltYWdlIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1lY3NcIjtcbmltcG9ydCB7IElCdWNrZXQgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXMzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgY3JlYXRlSGFzaCB9IGZyb20gXCJjcnlwdG9cIjtcbmltcG9ydCB7IGpvaW4gfSBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHtcbiAgY2FsY01lbW9yeUZvb3RwcmludCxcbiAgY2FsY1RlbnNvclBhcmFsbGVsLFxuICBEYXRhVHlwZUJpdHMsXG4gIElOZXVyb254SW5zdGFuY2VUeXBlLFxuICBpbmZlck1lbW9yeUZvb3RwcmludEZyb21QYXJhbWV0ZXJzLFxuICBJVmxsbUluZmVyZW5jZU5ldXJvbnhJbWFnZSxcbiAgTW9kZWwsXG4gIE5ldXJvbk9wdGltaXplZE1hY2hpbmVJbWFnZSxcbiAgTmV1cm9ueEluc3RhbmNlVHlwZSxcbiAgUHl0b3JjaFRyYWluaW5nTmV1cm9ueEltYWdlLFxuICBWbGxtSW5mZXJlbmNlTmV1cm9ueEltYWdlLFxufSBmcm9tIFwiLi4vYmFzZS9uZXVyb254XCI7XG5pbXBvcnQge1xuICBJTmV1cm9ueENvbnRhaW5lckltYWdlLFxuICBOZXVyb254Q29tcGlsZWRNb2RlbCxcbiAgTmV1cm9ueENvbXBpbGVyLFxufSBmcm9tIFwiLi4vYmFzZS9uZXVyb254LWNvbXBpbGVyXCI7XG5pbXBvcnQge1xuICBCbG9ja1NpemUsXG4gIFZsbG1FbmdpbmVBcmd1bWVudHMsXG4gIFZsbG1FbmdpbmVBcmd1bWVudHNQYXJzZXIsXG59IGZyb20gXCIuLi9iYXNlL3NlcnZlci1lbmdpbmUvdmxsbS1lbmdpbmVcIjtcbmltcG9ydCB7IFZsbG1OeGRJbmZlcmVuY2VFY3NJbWFnZUJhc2UgfSBmcm9tIFwiLi92bGxtLW54ZC1pbmZlcmVuY2UtZWNzLXBhdHRlcm5zXCI7XG5cbi8qKlxuICogQ29tcGlsZSBydW50aW1lIGNvbnRhaW5lciBpbWFnZSBmb3IgdkxMTSBOeEQgSW5mZXJlbmNlXG4gKi9cbmV4cG9ydCBjbGFzcyBWbGxtTnhkSW5mZXJlbmNlQ29tcGlsZUltYWdlIGV4dGVuZHMgVmxsbU54ZEluZmVyZW5jZUVjc0ltYWdlQmFzZSB7XG4gIC8qKlxuICAgKiBUaGUgY29udGFpbmVyIGltYWdlLlxuICAgKi9cbiAgcmVhZG9ubHkgaW1hZ2U6IENvbnRhaW5lckltYWdlO1xuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgdmxsbUluZmVyZW5jZU5ldXJvbnhJbWFnZT86IElWbGxtSW5mZXJlbmNlTmV1cm9ueEltYWdlLFxuICApIHtcbiAgICB2bGxtSW5mZXJlbmNlTmV1cm9ueEltYWdlID8/PSBWbGxtSW5mZXJlbmNlTmV1cm9ueEltYWdlLkxBVEVTVDtcbiAgICBzdXBlcih2bGxtSW5mZXJlbmNlTmV1cm9ueEltYWdlKTtcbiAgICBjb25zdCBidWlsZCA9IG5ldyBDb250YWluZXJJbWFnZUJ1aWxkKHNjb3BlLCBpZCwge1xuICAgICAgZGlyZWN0b3J5OiBqb2luKF9fZGlybmFtZSwgXCIuLi8uLi9zY3JpcHRzL2NvbXBpbGUvdmxsbS1ueGQtaW5mZXJlbmNlXCIpLFxuICAgICAgYnVpbGRBcmdzOiB7XG4gICAgICAgIElNQUdFX05BTUU6IHZsbG1JbmZlcmVuY2VOZXVyb254SW1hZ2UuaW1hZ2VOYW1lLFxuICAgICAgICBJTUFHRV9UQUc6IHZsbG1JbmZlcmVuY2VOZXVyb254SW1hZ2UuaW1hZ2VUYWcsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHRoaXMuaW1hZ2UgPSBidWlsZC50b0Vjc0RvY2tlckltYWdlQ29kZSgpO1xuICB9XG59XG5cbi8qKlxuICogUHJvcHMgb2YgVmxsbU54ZEluZmVyZW5jZUNvbXBpbGVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZsbG1OeGRJbmZlcmVuY2VDb21waWxlUHJvcHMge1xuICAvKipcbiAgICogVlBDIGluIHdoaWNoIHRoaXMgd2lsbCBsYXVuY2ggY29tcGlsZSB3b3JrZXIgaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSB2cGM6IElWcGM7XG4gIC8qKlxuICAgKiBUaGUgYnVja2V0IHRvIHVwbG9hZCBjb21waWxlZCBhcnRpZmFjdHMuXG4gICAqL1xuICByZWFkb25seSBidWNrZXQ6IElCdWNrZXQ7XG4gIC8qKlxuICAgKiBUaGUgaW5zdGFuY2UgdHlwZSBvZiBjb21waWxlIHdvcmtlciBpbnN0YW5jZS5cbiAgICovXG4gIHJlYWRvbmx5IG5ldXJvbnhJbnN0YW5jZVR5cGU/OiBJTmV1cm9ueEluc3RhbmNlVHlwZTtcbiAgLyoqXG4gICAqIFRoZSBtb2RlbCB0byBiZSBjb21waWxlZC5cbiAgICovXG4gIHJlYWRvbmx5IG1vZGVsOiBNb2RlbDtcbiAgLyoqXG4gICAqIFRoZSByb290IHZvbHVtZSBvZiB3b3JrZXIgaW5zdGFuY2UuXG4gICAqIEBkZWZhdWx0IC0gTiBiaWxpb24gcGFyYW1ldGVycyAqIDVHaUIgRUJTXG4gICAqL1xuICByZWFkb25seSB2b2x1bWVTaXplPzogU2l6ZTtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIHVzZSBzcG90IGluc3RhbmNlcy4gU3BvdCBpbnN0YW5jZXMgYXJlIGxlc3MgZXhwZW5zaXZlIEVDMiBpbnN0YW5jZXMgdGhhdCBjYW4gYmUgcmVjbGFpbWVkIGJ5IEVDMiBhdCBhbnkgdGltZTsgeW91ciBqb2Igd2lsbCBiZSBnaXZlbiB0d28gbWludXRlcyBvZiBub3RpY2UgYmVmb3JlIHJlY2xhbWF0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgc3BvdD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUaGUgVlBDIFN1Ym5ldHMgdGhpcyBDb21wdXRlIEVudmlyb25tZW50IHdpbGwgbGF1bmNoIGluc3RhbmNlcyBpbi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBuZXcgc3VibmV0cyB3aWxsIGJlIGNyZWF0ZWRcbiAgICovXG4gIHJlYWRvbmx5IHZwY1N1Ym5ldHM/OiBTdWJuZXRTZWxlY3Rpb247XG4gIC8qKlxuICAgKiBUaGUgZW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIHBhc3MgdG8gdGhlIGNvbnRhaW5lci5cbiAgICogVGhpcyBpcyBvbmx5IGFwcGxpY2FibGUgd2hlbiB1c2luZyBjb250YWluZXIgcnVudGltZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBlbnZpcm9ubWVudCB2YXJpYWJsZXMuXG4gICAqL1xuICByZWFkb25seSBlbnZpcm9ubWVudD86IHtcbiAgICBba2V5OiBzdHJpbmddOiBzdHJpbmc7XG4gIH07XG4gIC8qKlxuICAgKiBUaGUgYXJndW1lbnRzIHRvIHBhc3MgdG8gdGhlIHZsbG0gZW5naW5lLlxuICAgKiBAZGVmYXVsdCAtIG5vIHNwZWNpZmljIHZhbHVlcy4gdXNlIGRlZmF1bHQgdmFsdWVzLlxuICAgKi9cbiAgcmVhZG9ubHkgdmxsbUFyZ3M/OiBWbGxtRW5naW5lQXJndW1lbnRzO1xuICAvKipcbiAgICogQW4gaW1hZ2Ugb2YgdGhlIGNvbnRhaW5lciB3aGVyZSB0aGUgY29tcGlsZSBqb2IgaXMgZXhlY3V0ZWQuXG4gICAqIEBkZWZhdWx0IC0gbGF0ZXN0IGltYWdlXG4gICAqL1xuICByZWFkb25seSBpbWFnZT86IElOZXVyb254Q29udGFpbmVySW1hZ2U7XG59XG5cbi8qKlxuICogVGhlIG1vZGVsIGNvbXBpbGVkIGJ5IE5ldXJvbnggY29tcGlsZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmxsbU54ZEluZmVyZW5jZUNvbXBpbGVkTW9kZWwgZXh0ZW5kcyBOZXVyb254Q29tcGlsZWRNb2RlbCB7XG4gIC8qKlxuICAgKiBQYXNzZWQgdG8gdGhlIHZsbG0gZW5naW5lIGF0IGNvbXBpbGUgdGltZS5cbiAgICovXG4gIHJlYWRvbmx5IHZsbG1BcmdzOiBWbGxtRW5naW5lQXJndW1lbnRzO1xufVxuXG4vKipcbiAqIE5ldXJvbnggY29tcGlsZXIgY29uc3RydWN0IGZvciB2TExNIG9uIE54RCBJbmZlcmVuY2UuXG4gKiBDb21waWxlIHRoZSBtb2RlbCB0byB3b3JrIHdpdGggTmV1cm9ueCBpbnN0YW5jZSBhbmQgdXBsb2FkIGl0IHRvIGFuIFMzIGJ1Y2tldC5cbiAqL1xuZXhwb3J0IGNsYXNzIFZsbG1OeGRJbmZlcmVuY2VDb21waWxlciBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgdmxsbUFyZ3M6IFZsbG1FbmdpbmVBcmd1bWVudHM7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29tcGlsZXI6IE5ldXJvbnhDb21waWxlcjtcbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBWbGxtTnhkSW5mZXJlbmNlQ29tcGlsZVByb3BzLFxuICApIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIGNvbnN0IG1heE1vZGVsTGVuID0gcHJvcHMudmxsbUFyZ3M/Lm1heE1vZGVsTGVuID8/IDEyODtcbiAgICBjb25zdCBtYXhOdW1TZXFzID0gcHJvcHMudmxsbUFyZ3M/Lm1heE51bVNlcXMgPz8gMTtcbiAgICBjb25zdCBtZW1vcnlGb290cHJpbnQgPSBwcm9wcy5tb2RlbC5vcHRpb25zLmNvbmZpZ1xuICAgICAgPyBjYWxjTWVtb3J5Rm9vdHByaW50KFxuICAgICAgICAgIHByb3BzLm1vZGVsLm9wdGlvbnMuY29uZmlnLmVtYmVkZGluZ0RpbWVuc2lvbixcbiAgICAgICAgICBwcm9wcy5tb2RlbC5vcHRpb25zLmNvbmZpZy5sYXllcnMsXG4gICAgICAgICAgRGF0YVR5cGVCaXRzLkJGMTZfT1JfRlAxNixcbiAgICAgICAgICBtYXhNb2RlbExlbixcbiAgICAgICAgICBtYXhOdW1TZXFzLFxuICAgICAgICApXG4gICAgICA6IGluZmVyTWVtb3J5Rm9vdHByaW50RnJvbVBhcmFtZXRlcnMoXG4gICAgICAgICAgcHJvcHMubW9kZWwub3B0aW9ucy5wYXJhbWV0ZXJzLFxuICAgICAgICAgIG1heE1vZGVsTGVuLFxuICAgICAgICAgIG1heE51bVNlcXMsXG4gICAgICAgICk7XG4gICAgY29uc3QgbmV1cm9ueEluc3RhbmNlVHlwZXMgPSBwcm9wcy5uZXVyb254SW5zdGFuY2VUeXBlXG4gICAgICA/IFtwcm9wcy5uZXVyb254SW5zdGFuY2VUeXBlXVxuICAgICAgOiBbXG4gICAgICAgICAgTmV1cm9ueEluc3RhbmNlVHlwZS5JTkYyXzhYTEFSR0UsXG4gICAgICAgICAgTmV1cm9ueEluc3RhbmNlVHlwZS5JTkYyXzI0WExBUkdFLFxuICAgICAgICAgIE5ldXJvbnhJbnN0YW5jZVR5cGUuSU5GMl80OFhMQVJHRSxcbiAgICAgICAgXTtcbiAgICBjb25zdCBhdmFpbGFibGVJbnN0YW5jZVBhdHRlcm5zID0gbmV1cm9ueEluc3RhbmNlVHlwZXNcbiAgICAgIC5mbGF0TWFwKChuZXVyb254SW5zdGFuY2VUeXBlKSA9PlxuICAgICAgICBjYWxjVGVuc29yUGFyYWxsZWwoXG4gICAgICAgICAgbmV1cm9ueEluc3RhbmNlVHlwZSxcbiAgICAgICAgICBtZW1vcnlGb290cHJpbnQsXG4gICAgICAgICAgcHJvcHMubW9kZWwub3B0aW9ucy5jb25maWc/LmF0dGVudGlvbkhlYWRzLFxuICAgICAgICApLm1hcCgodikgPT4gKHtcbiAgICAgICAgICBuZXVyb254SW5zdGFuY2VUeXBlLFxuICAgICAgICAgIC4uLnYsXG4gICAgICAgIH0pKSxcbiAgICAgIClcbiAgICAgIC5maWx0ZXIoXG4gICAgICAgIChpbnN0YW5jZVR5cGUpID0+XG4gICAgICAgICAgIXByb3BzLnZsbG1BcmdzPy50ZW5zb3JQYXJhbGxlbFNpemUgfHxcbiAgICAgICAgICBpbnN0YW5jZVR5cGUudHAgPT09IHByb3BzLnZsbG1BcmdzLnRlbnNvclBhcmFsbGVsU2l6ZSxcbiAgICAgICk7XG4gICAgaWYgKGF2YWlsYWJsZUluc3RhbmNlUGF0dGVybnMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBObyBhdmFpbGFibGUgaW5zdGFuY2UgdHlwZS4gWW91IGNhbiB1c2UgdGVuc29yUGFyYWxsZWxTaXplIGFyZSAke2F2YWlsYWJsZUluc3RhbmNlUGF0dGVybnMubWFwKChwKSA9PiBwLnRwKS5qb2luKFwiLCBcIil9LmAsXG4gICAgICApO1xuICAgIH1cbiAgICBjb25zdCB0ZW5zb3JQYXJhbGxlbFNpemUgPSBhdmFpbGFibGVJbnN0YW5jZVBhdHRlcm5zWzBdLnRwO1xuICAgIGNvbnN0IGltYWdlID1cbiAgICAgIHByb3BzLmltYWdlID8/IG5ldyBWbGxtTnhkSW5mZXJlbmNlQ29tcGlsZUltYWdlKHRoaXMsIFwiQ29tcGlsZUltYWdlXCIpO1xuICAgIGNvbnN0IGJsb2NrU2l6ZSA9IHByb3BzLnZsbG1BcmdzPy5ibG9ja1NpemUgPz8gQmxvY2tTaXplLlNJWkVfMzI7XG4gICAgY29uc3QgdmxsbUFyZ3MgPSB7XG4gICAgICAuLi5wcm9wcy52bGxtQXJncyxcbiAgICAgIG1vZGVsOiBwcm9wcy5tb2RlbC5tb2RlbElkLFxuICAgICAgc2VydmVkTW9kZWxOYW1lOiBbcHJvcHMubW9kZWwubW9kZWxOYW1lXSxcbiAgICAgIG1heE1vZGVsTGVuLFxuICAgICAgbWF4TnVtU2VxcyxcbiAgICAgIHRlbnNvclBhcmFsbGVsU2l6ZSxcbiAgICAgIGJsb2NrU2l6ZSxcbiAgICB9IHNhdGlzZmllcyBWbGxtRW5naW5lQXJndW1lbnRzO1xuXG4gICAgLy8gY2hhbmdlIGRpcm5hbWUgZXZlcnkgZW5naW5lIGFyZ3MgcGF0dGVybnNcbiAgICBjb25zdCBoYXNoID0gKHN0cjogc3RyaW5nKSA9PlxuICAgICAgY3JlYXRlSGFzaChcInNoYTI1NlwiKS51cGRhdGUoc3RyKS5kaWdlc3QoXCJoZXhcIik7XG4gICAgY29uc3QgYXJ0aWZhY3RTM1ByZWZpeCA9IGBzZGstJHtpbWFnZS5uZXVyb25TZGtWZXJzaW9ufS8ke2hhc2goSlNPTi5zdHJpbmdpZnkodmxsbUFyZ3MpKX1gO1xuICAgIGNvbnN0IHZsbG1DbGlBcmdzID0gVmxsbUVuZ2luZUFyZ3VtZW50c1BhcnNlci5jbGkodmxsbUFyZ3MpO1xuICAgIGNvbnN0IGVudmlyb25tZW50OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgLi4ucHJvcHMuZW52aXJvbm1lbnQsXG4gICAgICBWTExNX05FVVJPTl9GUkFNRVdPUks6IFwibmV1cm9ueC1kaXN0cmlidXRlZC1pbmZlcmVuY2VcIixcbiAgICAgIE5FVVJPTl9DT01QSUxFRF9BUlRJRkFDVFM6IFwibmV1cm9uLWNvbXBpbGVkLWFydGlmYWN0c1wiLFxuICAgICAgTkVVUk9OX1JUX05VTV9DT1JFUzogdGVuc29yUGFyYWxsZWxTaXplLnRvU3RyaW5nKCksXG4gICAgICBYTEFfSEFORExFX1NQRUNJQUxfU0NBTEFSOiBcIjFcIixcbiAgICAgIE1PREVMX0lEOiBwcm9wcy5tb2RlbC5tb2RlbElkLFxuICAgICAgTU9ERUxfTkFNRTogcHJvcHMubW9kZWwubW9kZWxOYW1lLFxuICAgICAgQ09NUElMRURfQVJUSUZBQ1RTX1MzX1VSSTogcHJvcHMuYnVja2V0LnMzVXJsRm9yT2JqZWN0KGFydGlmYWN0UzNQcmVmaXgpLFxuICAgICAgQ09NUElMRURfQVJUSUZBQ1RTX1MzX1BSRUZJWDogYXJ0aWZhY3RTM1ByZWZpeCxcbiAgICB9O1xuICAgIGNvbnN0IHNlY3JldHM6IHsgW2tleTogc3RyaW5nXTogYmF0Y2guU2VjcmV0IH0gPSB7fTtcbiAgICBpZiAocHJvcHMudmxsbUFyZ3M/LmhmVG9rZW4pIHtcbiAgICAgIHNlY3JldHMuSEZfVE9LRU4gPSBwcm9wcy52bGxtQXJncy5oZlRva2VuO1xuICAgIH1cbiAgICBjb25zdCB3ZWlnaHRTaXplID0gU2l6ZS5naWJpYnl0ZXMoXG4gICAgICBwcm9wcy5tb2RlbC5vcHRpb25zLnBhcmFtZXRlcnMudG9CaWxsaW9uKCkgKiAyLjUsXG4gICAgKTtcbiAgICBjb25zdCBxdWFudGl6ZWRXaWdodFNpemUgPSBwcm9wcy52bGxtQXJncz8ub3ZlcnJpZGVOZXVyb25Db25maWc/LnF1YW50aXplZFxuICAgICAgPyB3ZWlnaHRTaXplXG4gICAgICA6IFNpemUuYnl0ZXMoMCk7XG4gICAgY29uc3Qgdm9sdW1lU2l6ZSA9IFNpemUuZ2liaWJ5dGVzKFxuICAgICAgTWF0aC5jZWlsKFxuICAgICAgICB3ZWlnaHRTaXplLnRvR2liaWJ5dGVzKCkgK1xuICAgICAgICAgIHF1YW50aXplZFdpZ2h0U2l6ZS50b0dpYmlieXRlcygpICtcbiAgICAgICAgICBQeXRvcmNoVHJhaW5pbmdOZXVyb254SW1hZ2Uuc2l6ZS50b0dpYmlieXRlcygpICtcbiAgICAgICAgICBOZXVyb25PcHRpbWl6ZWRNYWNoaW5lSW1hZ2Uuc2l6ZS50b0dpYmlieXRlcygpLFxuICAgICAgKSxcbiAgICApO1xuXG4gICAgY29uc3QgY29tcGlsZXIgPSBuZXcgTmV1cm9ueENvbXBpbGVyKHRoaXMsIFwiUmVzb3VyY2VcIiwge1xuICAgICAgLi4ucHJvcHMsXG4gICAgICBuZXVyb254SW5zdGFuY2VUeXBlOiBhdmFpbGFibGVJbnN0YW5jZVBhdHRlcm5zWzBdLm5ldXJvbnhJbnN0YW5jZVR5cGUsXG4gICAgICBhcnRpZmFjdFMzUHJlZml4LFxuICAgICAgaW1hZ2U6IGltYWdlLFxuICAgICAgY29tbWFuZDogdmxsbUNsaUFyZ3MsXG4gICAgICBlbnZpcm9ubWVudCxcbiAgICAgIHNlY3JldHMsXG4gICAgICB2b2x1bWVTaXplLFxuICAgIH0pO1xuICAgIHRoaXMudmxsbUFyZ3MgPSB2bGxtQXJncztcbiAgICB0aGlzLmNvbXBpbGVyID0gY29tcGlsZXI7XG4gIH1cbiAgLyoqXG4gICAqIENvbXBpbGUgdGhlIG1vZGVsIGFuZCByZXR1cm4gdGhlIGNvbXBpbGVkIG1vZGVsLlxuICAgKiBAcmV0dXJucyBUaGUgY29tcGlsZWQgbW9kZWwuXG4gICAqL1xuICBjb21waWxlKCk6IFZsbG1OeGRJbmZlcmVuY2VDb21waWxlZE1vZGVsIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4udGhpcy5jb21waWxlci5jb21waWxlKCksXG4gICAgICB2bGxtQXJnczogdGhpcy52bGxtQXJncyxcbiAgICB9IHNhdGlzZmllcyBWbGxtTnhkSW5mZXJlbmNlQ29tcGlsZWRNb2RlbDtcbiAgfVxufVxuIl19
|
|
157
|
+
VllmNxdInferenceCompiler[_b] = { fqn: "aws-cdk-neuronx-patterns.VllmNxdInferenceCompiler", version: "0.3.0" };
|
|
158
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmxsbS1ueGQtaW5mZXJlbmNlLWNvbXBpbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ZsbG0tbnhkLWluZmVyZW5jZS92bGxtLW54ZC1pbmZlcmVuY2UtY29tcGlsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxrRUFBaUU7QUFDakUsNkNBQW1DO0FBRW5DLDJDQUEyQztBQUkzQywyQ0FBdUM7QUFDdkMsbUNBQW9DO0FBQ3BDLCtCQUE0QjtBQUM1Qiw2Q0FZeUI7QUFDekIsK0RBS2tDO0FBQ2xDLG1FQUkyQztBQUMzQyx1RkFBaUY7QUFFakY7Ozs7R0FJRztBQUNILFNBQVMseUJBQXlCLENBQUMsVUFBZ0I7SUFDakQsTUFBTSxpQkFBaUIsR0FBRyxVQUFVLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZELElBQUksaUJBQWlCLElBQUksRUFBRSxFQUFFLENBQUM7UUFDNUIsT0FBTyxHQUFHLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlFLENBQUM7U0FBTSxJQUFJLGlCQUFpQixJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQ25DLE9BQU8sR0FBRyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5RSxDQUFDO1NBQU0sSUFBSSxpQkFBaUIsSUFBSSxFQUFFLEVBQUUsQ0FBQztRQUNuQyxPQUFPLEdBQUcsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUUsQ0FBQztTQUFNLElBQUksaUJBQWlCLElBQUksRUFBRSxFQUFFLENBQUM7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Q0FBQyxVQUFVO1lBQ1osQ0FBQyxDQUFDLGtCQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xCLE1BQU0sVUFBVSxHQUFHLGtCQUFJLENBQUMsU0FBUyxDQUMvQixJQUFJLENBQUMsSUFBSSxDQUNQLFVBQVUsQ0FBQyxXQUFXLEVBQUU7WUFDdEIsa0JBQWtCLENBQUMsV0FBVyxFQUFFO1lBQ2hDLHFDQUEyQixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDOUMscUNBQTJCLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUNqRCxDQUNGLENBQUM7UUFFRixNQUFNLFFBQVEsR0FBRyxJQUFJLHVDQUFvQixDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDMUQsR0FBRyxLQUFLO1lBQ1IsbUJBQW1CLEVBQUUseUJBQXlCLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQW1CO1lBQ3JFLG1CQUFtQixFQUNqQixLQUFLLENBQUMsbUJBQW1CLElBQUkseUJBQXlCLENBQUMsVUFBVSxDQUFDO1lBQ3BFLGdCQUFnQjtZQUNoQixLQUFLLEVBQUUsS0FBSztZQUNaLE9BQU8sRUFBRSxXQUFXO1lBQ3BCLFdBQVc7WUFDWCxPQUFPO1lBQ1AsVUFBVTtTQUNYLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzNCLENBQUM7SUFDRDs7O09BR0c7SUFDSCxPQUFPO1FBQ0wsT0FBTztZQUNMLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUU7WUFDMUIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1NBQ2dCLENBQUM7SUFDNUMsQ0FBQzs7QUE3SEgsNERBOEhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udGFpbmVySW1hZ2VCdWlsZCB9IGZyb20gXCJAY2RrbGFicy9kZXBsb3ktdGltZS1idWlsZFwiO1xuaW1wb3J0IHsgU2l6ZSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0ICogYXMgYmF0Y2ggZnJvbSBcImF3cy1jZGstbGliL2F3cy1iYXRjaFwiO1xuaW1wb3J0ICogYXMgZWMyIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWMyXCI7XG5pbXBvcnQgeyBJVnBjLCBTdWJuZXRTZWxlY3Rpb24gfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVjMlwiO1xuaW1wb3J0IHsgQ29udGFpbmVySW1hZ2UgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVjc1wiO1xuaW1wb3J0IHsgSUJ1Y2tldCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtczNcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBjcmVhdGVIYXNoIH0gZnJvbSBcImNyeXB0b1wiO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gXCJwYXRoXCI7XG5pbXBvcnQge1xuICBjYWxjTWVtb3J5Rm9vdHByaW50LFxuICBjYWxjVGVuc29yUGFyYWxsZWwsXG4gIERhdGFUeXBlQml0cyxcbiAgSU5ldXJvbnhJbnN0YW5jZVR5cGUsXG4gIGluZmVyTWVtb3J5Rm9vdHByaW50RnJvbVBhcmFtZXRlcnMsXG4gIElWbGxtSW5mZXJlbmNlTmV1cm9ueEltYWdlLFxuICBNb2RlbCxcbiAgTmV1cm9uT3B0aW1pemVkTWFjaGluZUltYWdlLFxuICBOZXVyb254SW5zdGFuY2VUeXBlLFxuICBQeXRvcmNoVHJhaW5pbmdOZXVyb254SW1hZ2UsXG4gIFZsbG1JbmZlcmVuY2VOZXVyb254SW1hZ2UsXG59IGZyb20gXCIuLi9iYXNlL25ldXJvbnhcIjtcbmltcG9ydCB7XG4gIElOZXVyb254Q29tcGlsZXIsXG4gIElOZXVyb254Q29udGFpbmVySW1hZ2UsXG4gIE5ldXJvbnhDb21waWxlZE1vZGVsLFxuICBOZXVyb254Q3Jvc3NDb21waWxlcixcbn0gZnJvbSBcIi4uL2Jhc2UvbmV1cm9ueC1jb21waWxlclwiO1xuaW1wb3J0IHtcbiAgQmxvY2tTaXplLFxuICBWbGxtRW5naW5lQXJndW1lbnRzLFxuICBWbGxtRW5naW5lQXJndW1lbnRzUGFyc2VyLFxufSBmcm9tIFwiLi4vYmFzZS9zZXJ2ZXItZW5naW5lL3ZsbG0tZW5naW5lXCI7XG5pbXBvcnQgeyBWbGxtTnhkSW5mZXJlbmNlRWNzSW1hZ2VCYXNlIH0gZnJvbSBcIi4vdmxsbS1ueGQtaW5mZXJlbmNlLWVjcy1wYXR0ZXJuc1wiO1xuXG4vKipcbiAqIFNlbGVjdCBhbiBhcHByb3ByaWF0ZSBjb21waWxlIGluc3RhbmNlIHR5cGUgYmFzZWQgb24gbW9kZWwgd2VpZ2h0IHNpemUuXG4gKiBDb21waWxhdGlvbiByZXF1aXJlcyByb3VnaGx5IDItM3ggdGhlIG1vZGVsIHdlaWdodCBzaXplIGluIFJBTSBmb3JcbiAqIEhMTyBnZW5lcmF0aW9uLCBuZXVyb254LWNjIGNvbXBpbGF0aW9uLCBhbmQgd2VpZ2h0IHNoYXJkaW5nLlxuICovXG5mdW5jdGlvbiBzZWxlY3RDb21waWxlSW5zdGFuY2VUeXBlKHdlaWdodFNpemU6IFNpemUpOiBlYzIuSW5zdGFuY2VUeXBlIHtcbiAgY29uc3QgcmVxdWlyZWRNZW1vcnlHaUIgPSB3ZWlnaHRTaXplLnRvR2liaWJ5dGVzKCkgKiAzO1xuICBpZiAocmVxdWlyZWRNZW1vcnlHaUIgPD0gMTYpIHtcbiAgICByZXR1cm4gZWMyLkluc3RhbmNlVHlwZS5vZihlYzIuSW5zdGFuY2VDbGFzcy5DN0ksIGVjMi5JbnN0YW5jZVNpemUuWExBUkdFMik7XG4gIH0gZWxzZSBpZiAocmVxdWlyZWRNZW1vcnlHaUIgPD0gMzIpIHtcbiAgICByZXR1cm4gZWMyLkluc3RhbmNlVHlwZS5vZihlYzIuSW5zdGFuY2VDbGFzcy5DN0ksIGVjMi5JbnN0YW5jZVNpemUuWExBUkdFNCk7XG4gIH0gZWxzZSBpZiAocmVxdWlyZWRNZW1vcnlHaUIgPD0gNjQpIHtcbiAgICByZXR1cm4gZWMyLkluc3RhbmNlVHlwZS5vZihlYzIuSW5zdGFuY2VDbGFzcy5DN0ksIGVjMi5JbnN0YW5jZVNpemUuWExBUkdFOCk7XG4gIH0gZWxzZSBpZiAocmVxdWlyZWRNZW1vcnlHaUIgPD0gOTYpIHtcbiAgICByZXR1cm4gZWMyLkluc3RhbmNlVHlwZS5vZihcbiAgICAgIGVjMi5JbnN0YW5jZUNsYXNzLkM3SSxcbiAgICAgIGVjMi5JbnN0YW5jZVNpemUuWExBUkdFMTIsXG4gICAgKTtcbiAgfSBlbHNlIGlmIChyZXF1aXJlZE1lbW9yeUdpQiA8PSAxOTIpIHtcbiAgICByZXR1cm4gZWMyLkluc3RhbmNlVHlwZS5vZihcbiAgICAgIGVjMi5JbnN0YW5jZUNsYXNzLkM3SSxcbiAgICAgIGVjMi5JbnN0YW5jZVNpemUuWExBUkdFMjQsXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZWMyLkluc3RhbmNlVHlwZS5vZihcbiAgICAgIGVjMi5JbnN0YW5jZUNsYXNzLkM3SSxcbiAgICAgIGVjMi5JbnN0YW5jZVNpemUuWExBUkdFNDgsXG4gICAgKTtcbiAgfVxufVxuXG4vKipcbiAqIENvbXBpbGUgcnVudGltZSBjb250YWluZXIgaW1hZ2UgZm9yIHZMTE0gTnhEIEluZmVyZW5jZVxuICovXG5leHBvcnQgY2xhc3MgVmxsbU54ZEluZmVyZW5jZUNvbXBpbGVJbWFnZSBleHRlbmRzIFZsbG1OeGRJbmZlcmVuY2VFY3NJbWFnZUJhc2Uge1xuICAvKipcbiAgICogVGhlIGNvbnRhaW5lciBpbWFnZS5cbiAgICovXG4gIHJlYWRvbmx5IGltYWdlOiBDb250YWluZXJJbWFnZTtcbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHZsbG1JbmZlcmVuY2VOZXVyb254SW1hZ2U/OiBJVmxsbUluZmVyZW5jZU5ldXJvbnhJbWFnZSxcbiAgKSB7XG4gICAgdmxsbUluZmVyZW5jZU5ldXJvbnhJbWFnZSA/Pz0gVmxsbUluZmVyZW5jZU5ldXJvbnhJbWFnZS5MQVRFU1Q7XG4gICAgc3VwZXIodmxsbUluZmVyZW5jZU5ldXJvbnhJbWFnZSk7XG4gICAgY29uc3QgYnVpbGQgPSBuZXcgQ29udGFpbmVySW1hZ2VCdWlsZChzY29wZSwgaWQsIHtcbiAgICAgIGRpcmVjdG9yeTogam9pbihfX2Rpcm5hbWUsIFwiLi4vLi4vc2NyaXB0cy9jb21waWxlL3ZsbG0tbnhkLWluZmVyZW5jZVwiKSxcbiAgICAgIGJ1aWxkQXJnczoge1xuICAgICAgICBJTUFHRV9OQU1FOiB2bGxtSW5mZXJlbmNlTmV1cm9ueEltYWdlLmltYWdlTmFtZSxcbiAgICAgICAgSU1BR0VfVEFHOiB2bGxtSW5mZXJlbmNlTmV1cm9ueEltYWdlLmltYWdlVGFnLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICB0aGlzLmltYWdlID0gYnVpbGQudG9FY3NEb2NrZXJJbWFnZUNvZGUoKTtcbiAgfVxufVxuXG4vKipcbiAqIFByb3BzIG9mIFZsbG1OeGRJbmZlcmVuY2VDb21waWxlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWbGxtTnhkSW5mZXJlbmNlQ29tcGlsZVByb3BzIHtcbiAgLyoqXG4gICAqIFZQQyBpbiB3aGljaCB0aGlzIHdpbGwgbGF1bmNoIGNvbXBpbGUgd29ya2VyIGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgdnBjOiBJVnBjO1xuICAvKipcbiAgICogVGhlIGJ1Y2tldCB0byB1cGxvYWQgY29tcGlsZWQgYXJ0aWZhY3RzLlxuICAgKi9cbiAgcmVhZG9ubHkgYnVja2V0OiBJQnVja2V0O1xuICAvKipcbiAgICogVGhlIGluc3RhbmNlIHR5cGUgb2YgY29tcGlsZSB3b3JrZXIgaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSBuZXVyb254SW5zdGFuY2VUeXBlPzogSU5ldXJvbnhJbnN0YW5jZVR5cGU7XG4gIC8qKlxuICAgKiBUaGUgbW9kZWwgdG8gYmUgY29tcGlsZWQuXG4gICAqL1xuICByZWFkb25seSBtb2RlbDogTW9kZWw7XG4gIC8qKlxuICAgKiBUaGUgcm9vdCB2b2x1bWUgb2Ygd29ya2VyIGluc3RhbmNlLlxuICAgKiBAZGVmYXVsdCAtIE4gYmlsaW9uIHBhcmFtZXRlcnMgKiA1R2lCIEVCU1xuICAgKi9cbiAgcmVhZG9ubHkgdm9sdW1lU2l6ZT86IFNpemU7XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byB1c2Ugc3BvdCBpbnN0YW5jZXMuIFNwb3QgaW5zdGFuY2VzIGFyZSBsZXNzIGV4cGVuc2l2ZSBFQzIgaW5zdGFuY2VzIHRoYXQgY2FuIGJlIHJlY2xhaW1lZCBieSBFQzIgYXQgYW55IHRpbWU7IHlvdXIgam9iIHdpbGwgYmUgZ2l2ZW4gdHdvIG1pbnV0ZXMgb2Ygbm90aWNlIGJlZm9yZSByZWNsYW1hdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHNwb3Q/OiBib29sZWFuO1xuICAvKipcbiAgICogVGhlIFZQQyBTdWJuZXRzIHRoaXMgQ29tcHV0ZSBFbnZpcm9ubWVudCB3aWxsIGxhdW5jaCBpbnN0YW5jZXMgaW4uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbmV3IHN1Ym5ldHMgd2lsbCBiZSBjcmVhdGVkXG4gICAqL1xuICByZWFkb25seSB2cGNTdWJuZXRzPzogU3VibmV0U2VsZWN0aW9uO1xuICAvKipcbiAgICogVGhlIGVudmlyb25tZW50IHZhcmlhYmxlcyB0byBwYXNzIHRvIHRoZSBjb250YWluZXIuXG4gICAqIFRoaXMgaXMgb25seSBhcHBsaWNhYmxlIHdoZW4gdXNpbmcgY29udGFpbmVyIHJ1bnRpbWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gZW52aXJvbm1lbnQgdmFyaWFibGVzLlxuICAgKi9cbiAgcmVhZG9ubHkgZW52aXJvbm1lbnQ/OiB7XG4gICAgW2tleTogc3RyaW5nXTogc3RyaW5nO1xuICB9O1xuICAvKipcbiAgICogVGhlIGFyZ3VtZW50cyB0byBwYXNzIHRvIHRoZSB2bGxtIGVuZ2luZS5cbiAgICogQGRlZmF1bHQgLSBubyBzcGVjaWZpYyB2YWx1ZXMuIHVzZSBkZWZhdWx0IHZhbHVlcy5cbiAgICovXG4gIHJlYWRvbmx5IHZsbG1BcmdzPzogVmxsbUVuZ2luZUFyZ3VtZW50cztcbiAgLyoqXG4gICAqIEFuIGltYWdlIG9mIHRoZSBjb250YWluZXIgd2hlcmUgdGhlIGNvbXBpbGUgam9iIGlzIGV4ZWN1dGVkLlxuICAgKiBAZGVmYXVsdCAtIGxhdGVzdCBpbWFnZVxuICAgKi9cbiAgcmVhZG9ubHkgaW1hZ2U/OiBJTmV1cm9ueENvbnRhaW5lckltYWdlO1xuICAvKipcbiAgICogVGhlIEVDMiBpbnN0YW5jZSB0eXBlIHRvIHVzZSBmb3IgY3Jvc3MtY29tcGlsYXRpb24uXG4gICAqIFRoaXMgc2hvdWxkIGJlIGEgbm9uLU5ldXJvbiBpbnN0YW5jZSB0eXBlIHdpdGggc3VmZmljaWVudCBtZW1vcnkgZm9yIG1vZGVsIGNvbXBpbGF0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEF1dG9tYXRpY2FsbHkgc2VsZWN0ZWQgYmFzZWQgb24gbW9kZWwgc2l6ZVxuICAgKi9cbiAgcmVhZG9ubHkgY29tcGlsZUluc3RhbmNlVHlwZT86IGVjMi5JbnN0YW5jZVR5cGU7XG59XG5cbi8qKlxuICogVGhlIG1vZGVsIGNvbXBpbGVkIGJ5IE5ldXJvbnggY29tcGlsZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmxsbU54ZEluZmVyZW5jZUNvbXBpbGVkTW9kZWwgZXh0ZW5kcyBOZXVyb254Q29tcGlsZWRNb2RlbCB7XG4gIC8qKlxuICAgKiBQYXNzZWQgdG8gdGhlIHZsbG0gZW5naW5lIGF0IGNvbXBpbGUgdGltZS5cbiAgICovXG4gIHJlYWRvbmx5IHZsbG1BcmdzOiBWbGxtRW5naW5lQXJndW1lbnRzO1xufVxuXG4vKipcbiAqIE5ldXJvbnggY29tcGlsZXIgY29uc3RydWN0IGZvciB2TExNIG9uIE54RCBJbmZlcmVuY2UuXG4gKiBDb21waWxlIHRoZSBtb2RlbCB0byB3b3JrIHdpdGggTmV1cm9ueCBpbnN0YW5jZSBhbmQgdXBsb2FkIGl0IHRvIGFuIFMzIGJ1Y2tldC5cbiAqL1xuZXhwb3J0IGNsYXNzIFZsbG1OeGRJbmZlcmVuY2VDb21waWxlciBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgdmxsbUFyZ3M6IFZsbG1FbmdpbmVBcmd1bWVudHM7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29tcGlsZXI6IElOZXVyb254Q29tcGlsZXI7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczogVmxsbU54ZEluZmVyZW5jZUNvbXBpbGVQcm9wcyxcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICBjb25zdCBtYXhNb2RlbExlbiA9IHByb3BzLnZsbG1BcmdzPy5tYXhNb2RlbExlbiA/PyAxMjg7XG4gICAgY29uc3QgbWF4TnVtU2VxcyA9IHByb3BzLnZsbG1BcmdzPy5tYXhOdW1TZXFzID8/IDE7XG4gICAgY29uc3QgbWVtb3J5Rm9vdHByaW50ID0gcHJvcHMubW9kZWwub3B0aW9ucy5jb25maWdcbiAgICAgID8gY2FsY01lbW9yeUZvb3RwcmludChcbiAgICAgICAgICBwcm9wcy5tb2RlbC5vcHRpb25zLmNvbmZpZy5lbWJlZGRpbmdEaW1lbnNpb24sXG4gICAgICAgICAgcHJvcHMubW9kZWwub3B0aW9ucy5jb25maWcubGF5ZXJzLFxuICAgICAgICAgIERhdGFUeXBlQml0cy5CRjE2X09SX0ZQMTYsXG4gICAgICAgICAgbWF4TW9kZWxMZW4sXG4gICAgICAgICAgbWF4TnVtU2VxcyxcbiAgICAgICAgKVxuICAgICAgOiBpbmZlck1lbW9yeUZvb3RwcmludEZyb21QYXJhbWV0ZXJzKFxuICAgICAgICAgIHByb3BzLm1vZGVsLm9wdGlvbnMucGFyYW1ldGVycyxcbiAgICAgICAgICBtYXhNb2RlbExlbixcbiAgICAgICAgICBtYXhOdW1TZXFzLFxuICAgICAgICApO1xuICAgIGNvbnN0IG5ldXJvbnhJbnN0YW5jZVR5cGVzID0gcHJvcHMubmV1cm9ueEluc3RhbmNlVHlwZVxuICAgICAgPyBbcHJvcHMubmV1cm9ueEluc3RhbmNlVHlwZV1cbiAgICAgIDogW1xuICAgICAgICAgIE5ldXJvbnhJbnN0YW5jZVR5cGUuSU5GMl84WExBUkdFLFxuICAgICAgICAgIE5ldXJvbnhJbnN0YW5jZVR5cGUuSU5GMl8yNFhMQVJHRSxcbiAgICAgICAgICBOZXVyb254SW5zdGFuY2VUeXBlLklORjJfNDhYTEFSR0UsXG4gICAgICAgIF07XG4gICAgY29uc3QgYXZhaWxhYmxlSW5zdGFuY2VQYXR0ZXJucyA9IG5ldXJvbnhJbnN0YW5jZVR5cGVzXG4gICAgICAuZmxhdE1hcCgobmV1cm9ueEluc3RhbmNlVHlwZSkgPT5cbiAgICAgICAgY2FsY1RlbnNvclBhcmFsbGVsKFxuICAgICAgICAgIG5ldXJvbnhJbnN0YW5jZVR5cGUsXG4gICAgICAgICAgbWVtb3J5Rm9vdHByaW50LFxuICAgICAgICAgIHByb3BzLm1vZGVsLm9wdGlvbnMuY29uZmlnPy5hdHRlbnRpb25IZWFkcyxcbiAgICAgICAgKS5tYXAoKHYpID0+ICh7XG4gICAgICAgICAgbmV1cm9ueEluc3RhbmNlVHlwZSxcbiAgICAgICAgICAuLi52LFxuICAgICAgICB9KSksXG4gICAgICApXG4gICAgICAuZmlsdGVyKFxuICAgICAgICAoaW5zdGFuY2VUeXBlKSA9PlxuICAgICAgICAgICFwcm9wcy52bGxtQXJncz8udGVuc29yUGFyYWxsZWxTaXplIHx8XG4gICAgICAgICAgaW5zdGFuY2VUeXBlLnRwID09PSBwcm9wcy52bGxtQXJncy50ZW5zb3JQYXJhbGxlbFNpemUsXG4gICAgICApO1xuICAgIGlmIChhdmFpbGFibGVJbnN0YW5jZVBhdHRlcm5zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgTm8gYXZhaWxhYmxlIGluc3RhbmNlIHR5cGUuIFlvdSBjYW4gdXNlIHRlbnNvclBhcmFsbGVsU2l6ZSBhcmUgJHthdmFpbGFibGVJbnN0YW5jZVBhdHRlcm5zLm1hcCgocCkgPT4gcC50cCkuam9pbihcIiwgXCIpfS5gLFxuICAgICAgKTtcbiAgICB9XG4gICAgY29uc3QgdGVuc29yUGFyYWxsZWxTaXplID0gYXZhaWxhYmxlSW5zdGFuY2VQYXR0ZXJuc1swXS50cDtcbiAgICBjb25zdCBpbWFnZSA9XG4gICAgICBwcm9wcy5pbWFnZSA/PyBuZXcgVmxsbU54ZEluZmVyZW5jZUNvbXBpbGVJbWFnZSh0aGlzLCBcIkNvbXBpbGVJbWFnZVwiKTtcbiAgICBjb25zdCBibG9ja1NpemUgPSBwcm9wcy52bGxtQXJncz8uYmxvY2tTaXplID8/IEJsb2NrU2l6ZS5TSVpFXzMyO1xuICAgIGNvbnN0IHZsbG1BcmdzID0ge1xuICAgICAgLi4ucHJvcHMudmxsbUFyZ3MsXG4gICAgICBtb2RlbDogcHJvcHMubW9kZWwubW9kZWxJZCxcbiAgICAgIHNlcnZlZE1vZGVsTmFtZTogW3Byb3BzLm1vZGVsLm1vZGVsTmFtZV0sXG4gICAgICBtYXhNb2RlbExlbixcbiAgICAgIG1heE51bVNlcXMsXG4gICAgICB0ZW5zb3JQYXJhbGxlbFNpemUsXG4gICAgICBibG9ja1NpemUsXG4gICAgfSBzYXRpc2ZpZXMgVmxsbUVuZ2luZUFyZ3VtZW50cztcblxuICAgIC8vIGNoYW5nZSBkaXJuYW1lIGV2ZXJ5IGVuZ2luZSBhcmdzIHBhdHRlcm5zXG4gICAgY29uc3QgaGFzaCA9IChzdHI6IHN0cmluZykgPT5cbiAgICAgIGNyZWF0ZUhhc2goXCJzaGEyNTZcIikudXBkYXRlKHN0cikuZGlnZXN0KFwiaGV4XCIpO1xuICAgIGNvbnN0IGFydGlmYWN0UzNQcmVmaXggPSBgc2RrLSR7aW1hZ2UubmV1cm9uU2RrVmVyc2lvbn0vJHtoYXNoKEpTT04uc3RyaW5naWZ5KHZsbG1BcmdzKSl9YDtcbiAgICBjb25zdCB2bGxtQ2xpQXJncyA9IFZsbG1FbmdpbmVBcmd1bWVudHNQYXJzZXIuY2xpKHZsbG1BcmdzKTtcbiAgICBjb25zdCBlbnZpcm9ubWVudDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgIC4uLnByb3BzLmVudmlyb25tZW50LFxuICAgICAgVkxMTV9ORVVST05fRlJBTUVXT1JLOiBcIm5ldXJvbngtZGlzdHJpYnV0ZWQtaW5mZXJlbmNlXCIsXG4gICAgICBORVVST05fQ09NUElMRURfQVJUSUZBQ1RTOiBcIm5ldXJvbi1jb21waWxlZC1hcnRpZmFjdHNcIixcbiAgICAgIE5FVVJPTl9SVF9OVU1fQ09SRVM6IHRlbnNvclBhcmFsbGVsU2l6ZS50b1N0cmluZygpLFxuICAgICAgWExBX0hBTkRMRV9TUEVDSUFMX1NDQUxBUjogXCIxXCIsXG4gICAgICBNT0RFTF9JRDogcHJvcHMubW9kZWwubW9kZWxJZCxcbiAgICAgIE1PREVMX05BTUU6IHByb3BzLm1vZGVsLm1vZGVsTmFtZSxcbiAgICAgIENPTVBJTEVEX0FSVElGQUNUU19TM19VUkk6IHByb3BzLmJ1Y2tldC5zM1VybEZvck9iamVjdChhcnRpZmFjdFMzUHJlZml4KSxcbiAgICAgIENPTVBJTEVEX0FSVElGQUNUU19TM19QUkVGSVg6IGFydGlmYWN0UzNQcmVmaXgsXG4gICAgfTtcbiAgICBjb25zdCBzZWNyZXRzOiB7IFtrZXk6IHN0cmluZ106IGJhdGNoLlNlY3JldCB9ID0ge307XG4gICAgaWYgKHByb3BzLnZsbG1BcmdzPy5oZlRva2VuKSB7XG4gICAgICBzZWNyZXRzLkhGX1RPS0VOID0gcHJvcHMudmxsbUFyZ3MuaGZUb2tlbjtcbiAgICB9XG4gICAgY29uc3Qgd2VpZ2h0U2l6ZSA9IFNpemUuZ2liaWJ5dGVzKFxuICAgICAgcHJvcHMubW9kZWwub3B0aW9ucy5wYXJhbWV0ZXJzLnRvQmlsbGlvbigpICogMi41LFxuICAgICk7XG4gICAgY29uc3QgcXVhbnRpemVkV2lnaHRTaXplID0gcHJvcHMudmxsbUFyZ3M/Lm92ZXJyaWRlTmV1cm9uQ29uZmlnPy5xdWFudGl6ZWRcbiAgICAgID8gd2VpZ2h0U2l6ZVxuICAgICAgOiBTaXplLmJ5dGVzKDApO1xuICAgIGNvbnN0IHZvbHVtZVNpemUgPSBTaXplLmdpYmlieXRlcyhcbiAgICAgIE1hdGguY2VpbChcbiAgICAgICAgd2VpZ2h0U2l6ZS50b0dpYmlieXRlcygpICtcbiAgICAgICAgICBxdWFudGl6ZWRXaWdodFNpemUudG9HaWJpYnl0ZXMoKSArXG4gICAgICAgICAgUHl0b3JjaFRyYWluaW5nTmV1cm9ueEltYWdlLnNpemUudG9HaWJpYnl0ZXMoKSArXG4gICAgICAgICAgTmV1cm9uT3B0aW1pemVkTWFjaGluZUltYWdlLnNpemUudG9HaWJpYnl0ZXMoKSxcbiAgICAgICksXG4gICAgKTtcblxuICAgIGNvbnN0IGNvbXBpbGVyID0gbmV3IE5ldXJvbnhDcm9zc0NvbXBpbGVyKHRoaXMsIFwiUmVzb3VyY2VcIiwge1xuICAgICAgLi4ucHJvcHMsXG4gICAgICBuZXVyb254SW5zdGFuY2VUeXBlOiBhdmFpbGFibGVJbnN0YW5jZVBhdHRlcm5zWzBdLm5ldXJvbnhJbnN0YW5jZVR5cGUsXG4gICAgICBjb21waWxlSW5zdGFuY2VUeXBlOlxuICAgICAgICBwcm9wcy5jb21waWxlSW5zdGFuY2VUeXBlID8/IHNlbGVjdENvbXBpbGVJbnN0YW5jZVR5cGUod2VpZ2h0U2l6ZSksXG4gICAgICBhcnRpZmFjdFMzUHJlZml4LFxuICAgICAgaW1hZ2U6IGltYWdlLFxuICAgICAgY29tbWFuZDogdmxsbUNsaUFyZ3MsXG4gICAgICBlbnZpcm9ubWVudCxcbiAgICAgIHNlY3JldHMsXG4gICAgICB2b2x1bWVTaXplLFxuICAgIH0pO1xuICAgIHRoaXMudmxsbUFyZ3MgPSB2bGxtQXJncztcbiAgICB0aGlzLmNvbXBpbGVyID0gY29tcGlsZXI7XG4gIH1cbiAgLyoqXG4gICAqIENvbXBpbGUgdGhlIG1vZGVsIGFuZCByZXR1cm4gdGhlIGNvbXBpbGVkIG1vZGVsLlxuICAgKiBAcmV0dXJucyBUaGUgY29tcGlsZWQgbW9kZWwuXG4gICAqL1xuICBjb21waWxlKCk6IFZsbG1OeGRJbmZlcmVuY2VDb21waWxlZE1vZGVsIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4udGhpcy5jb21waWxlci5jb21waWxlKCksXG4gICAgICB2bGxtQXJnczogdGhpcy52bGxtQXJncyxcbiAgICB9IHNhdGlzZmllcyBWbGxtTnhkSW5mZXJlbmNlQ29tcGlsZWRNb2RlbDtcbiAgfVxufVxuIl19
|
|
@@ -19,7 +19,7 @@ class VllmNxdInferenceEcsImageBase {
|
|
|
19
19
|
}
|
|
20
20
|
exports.VllmNxdInferenceEcsImageBase = VllmNxdInferenceEcsImageBase;
|
|
21
21
|
_a = JSII_RTTI_SYMBOL_1;
|
|
22
|
-
VllmNxdInferenceEcsImageBase[_a] = { fqn: "aws-cdk-neuronx-patterns.VllmNxdInferenceEcsImageBase", version: "0.
|
|
22
|
+
VllmNxdInferenceEcsImageBase[_a] = { fqn: "aws-cdk-neuronx-patterns.VllmNxdInferenceEcsImageBase", version: "0.3.0" };
|
|
23
23
|
/**
|
|
24
24
|
* Inference ECS container image for vLLM on NxD Inference.
|
|
25
25
|
* This image uses the official AWS Neuron Deep Learning Containers which come with vLLM pre-installed.
|
|
@@ -42,13 +42,13 @@ class VllmNxdInferenceEcsImage extends VllmNxdInferenceEcsImageBase {
|
|
|
42
42
|
}
|
|
43
43
|
exports.VllmNxdInferenceEcsImage = VllmNxdInferenceEcsImage;
|
|
44
44
|
_b = JSII_RTTI_SYMBOL_1;
|
|
45
|
-
VllmNxdInferenceEcsImage[_b] = { fqn: "aws-cdk-neuronx-patterns.VllmNxdInferenceEcsImage", version: "0.
|
|
45
|
+
VllmNxdInferenceEcsImage[_b] = { fqn: "aws-cdk-neuronx-patterns.VllmNxdInferenceEcsImage", version: "0.3.0" };
|
|
46
46
|
/**
|
|
47
47
|
* Task definition for VllmNxdInference.
|
|
48
48
|
*/
|
|
49
49
|
class VllmNxdInferenceTaskDefinition extends aws_ecs_patterns_1.NeuronxTaskDefinition {
|
|
50
50
|
constructor(scope, id, props) {
|
|
51
|
-
const neuronxInstanceType = props.neuronxInstanceType ?? props.compiledModel.
|
|
51
|
+
const neuronxInstanceType = props.neuronxInstanceType ?? props.compiledModel.recommendedInstanceType;
|
|
52
52
|
const tensorParallelSize = props.compiledModel.vllmArgs.tensorParallelSize ?? 1;
|
|
53
53
|
super(scope, id, {
|
|
54
54
|
...props,
|
|
@@ -90,7 +90,7 @@ class VllmNxdInferenceTaskDefinition extends aws_ecs_patterns_1.NeuronxTaskDefin
|
|
|
90
90
|
}
|
|
91
91
|
exports.VllmNxdInferenceTaskDefinition = VllmNxdInferenceTaskDefinition;
|
|
92
92
|
_c = JSII_RTTI_SYMBOL_1;
|
|
93
|
-
VllmNxdInferenceTaskDefinition[_c] = { fqn: "aws-cdk-neuronx-patterns.VllmNxdInferenceTaskDefinition", version: "0.
|
|
93
|
+
VllmNxdInferenceTaskDefinition[_c] = { fqn: "aws-cdk-neuronx-patterns.VllmNxdInferenceTaskDefinition", version: "0.3.0" };
|
|
94
94
|
/**
|
|
95
95
|
* ApplicationLoadBalancedVllmNxDInferenceService is a wrapper of ApplicationLoadBalancedNeuronxServiceBase.
|
|
96
96
|
* It provides a simple way to deploy vLLM on NxD Inference.
|
|
@@ -129,5 +129,5 @@ class ApplicationLoadBalancedVllmNxDInferenceService extends constructs_1.Constr
|
|
|
129
129
|
}
|
|
130
130
|
exports.ApplicationLoadBalancedVllmNxDInferenceService = ApplicationLoadBalancedVllmNxDInferenceService;
|
|
131
131
|
_d = JSII_RTTI_SYMBOL_1;
|
|
132
|
-
ApplicationLoadBalancedVllmNxDInferenceService[_d] = { fqn: "aws-cdk-neuronx-patterns.ApplicationLoadBalancedVllmNxDInferenceService", version: "0.
|
|
133
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmxsbS1ueGQtaW5mZXJlbmNlLWVjcy1wYXR0ZXJucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92bGxtLW54ZC1pbmZlcmVuY2UvdmxsbS1ueGQtaW5mZXJlbmNlLWVjcy1wYXR0ZXJucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUF1QztBQUN2QywyQ0FBMkM7QUFNM0MsMkNBQXVDO0FBQ3ZDLCtEQUtrQztBQUNsQyw2Q0FHeUI7QUFFekIsbUVBQThFO0FBTzlFOztHQUVHO0FBQ0gsTUFBc0IsNEJBQTRCO0lBU2hELFlBQVksWUFBd0M7UUFDbEQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQztJQUN4RCxDQUFDOztBQVhILG9FQVlDOzs7QUFFRDs7Ozs7R0FLRztBQUNILE1BQWEsd0JBQXlCLFNBQVEsNEJBQTRCO0lBR3hFOzs7Ozs7T0FNRztJQUNILFlBQVkseUJBQXNEO1FBQ2hFLHlCQUF5QixLQUF6Qix5QkFBeUIsR0FBSyxtQ0FBeUIsQ0FBQyxNQUFNLEVBQUM7UUFDL0QsS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FDMUMsR0FBRyx5QkFBeUIsQ0FBQyxTQUFTLElBQUkseUJBQXlCLENBQUMsUUFBUSxFQUFFLENBQy9FLENBQUM7SUFDSixDQUFDOztBQWhCSCw0REFpQkM7OztBQTBCRDs7R0FFRztBQUNILE1BQWEsOEJBQStCLFNBQVEsd0NBQXFCO0lBQ3ZFLFlBQ0UsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLEtBQTBDO1FBRTFDLE1BQU0sbUJBQW1CLEdBQ3ZCLEtBQUssQ0FBQyxtQkFBbUIsSUFBSSxLQUFLLENBQUMsYUFBYSxDQUFDLHVCQUF1QixDQUFDO1FBQzNFLE1BQU0sa0JBQWtCLEdBQ3RCLEtBQUssQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLGtCQUFrQixJQUFJLENBQUMsQ0FBQztRQUN2RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNmLEdBQUcsS0FBSztZQUNSLG1CQUFtQjtZQUNuQixrQkFBa0I7U0FDbkIsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssSUFBSSxJQUFJLHdCQUF3QixFQUFFLENBQUM7UUFDNUQsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQztRQUN2RCxNQUFNLFdBQVcsR0FBRyx1Q0FBeUIsQ0FBQyxHQUFHLENBQy9DLEtBQUssQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUM3QixDQUFDO1FBQ0YsZ0NBQWdDO1FBQ2hDLE1BQU0sV0FBVyxHQUEyQjtZQUMxQyxHQUFHLEtBQUssQ0FBQyxXQUFXO1lBQ3BCLHFCQUFxQixFQUFFLCtCQUErQjtZQUN0RCx5QkFBeUIsRUFBRSwyQkFBMkI7WUFDdEQsbUJBQW1CLEVBQUUsa0JBQWtCLENBQUMsUUFBUSxFQUFFO1lBQ2xELHlCQUF5QixFQUFFLEdBQUc7WUFDOUIsVUFBVSxFQUFFLEtBQUssQ0FBQyxhQUFhLENBQUMsU0FBUztTQUMxQyxDQUFDO1FBRUYsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sRUFBRTtZQUNuQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7WUFDbEIsWUFBWSxFQUFFO2dCQUNaO29CQUNFLGFBQWEsRUFBRSxJQUFJO2lCQUNwQjthQUNGO1lBQ0QsV0FBVyxFQUFFO2dCQUNYLE9BQU8sRUFBRTtvQkFDUCxXQUFXO29CQUNYLDRCQUE0QixJQUFJLG1CQUFtQjtpQkFDcEQ7Z0JBQ0QsV0FBVyxFQUFFLHNCQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQzthQUNqQztZQUNELGdCQUFnQixFQUFFLGlCQUFpQixLQUFLLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRTtZQUNqRSxVQUFVLEVBQUUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDO1lBQzdCLE9BQU8sRUFBRSxXQUFXO1lBQ3BCLFdBQVc7U0FDWixDQUFDLENBQUM7SUFDTCxDQUFDOztBQWpESCx3RUFrREM7OztBQU9EOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7QUFDSCxNQUFhLDhDQUErQyxTQUFRLHNCQUFTO0lBTTNFLFlBQ0UsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLEtBQTBEO1FBRTFELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakIsTUFBTSxRQUFRLEdBQUcsSUFBSSx3REFBcUMsQ0FDeEQsSUFBSSxFQUNKLFVBQVUsRUFDVixLQUFLLENBQ04sQ0FBQztRQUNGLFFBQVEsQ0FBQyxXQUFXLENBQUMsb0JBQW9CLENBQUM7WUFDeEMsSUFBSSxFQUFFLFNBQVM7U0FDaEIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFlBQVksR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDO1FBQzFDLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQztRQUNsQyxJQUFJLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUM7UUFDeEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxjQUFjLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQztJQUNoRCxDQUFDOztBQXpCSCx3R0EwQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEdXJhdGlvbiB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0ICogYXMgZWNzIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWNzXCI7XG5pbXBvcnQge1xuICBBcHBsaWNhdGlvbkxpc3RlbmVyLFxuICBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlcixcbiAgQXBwbGljYXRpb25UYXJnZXRHcm91cCxcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1lbGFzdGljbG9hZGJhbGFuY2luZ3YyXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHtcbiAgQXBwbGljYXRpb25Mb2FkQmFsYW5jZWROZXVyb254U2VydmljZSxcbiAgQXBwbGljYXRpb25Mb2FkQmFsYW5jZWROZXVyb254U2VydmljZVByb3BzLFxuICBOZXVyb254VGFza0RlZmluaXRpb24sXG4gIE5ldXJvbnhUYXNrRGVmaW5pdGlvblByb3BzQmFzZSxcbn0gZnJvbSBcIi4uL2Jhc2UvYXdzLWVjcy1wYXR0ZXJuc1wiO1xuaW1wb3J0IHtcbiAgSVZsbG1JbmZlcmVuY2VOZXVyb254SW1hZ2UsXG4gIFZsbG1JbmZlcmVuY2VOZXVyb254SW1hZ2UsXG59IGZyb20gXCIuLi9iYXNlL25ldXJvbnhcIjtcbmltcG9ydCB7IElOZXVyb254Q29udGFpbmVySW1hZ2UgfSBmcm9tIFwiLi4vYmFzZS9uZXVyb254LWNvbXBpbGVyXCI7XG5pbXBvcnQgeyBWbGxtRW5naW5lQXJndW1lbnRzUGFyc2VyIH0gZnJvbSBcIi4uL2Jhc2Uvc2VydmVyLWVuZ2luZS92bGxtLWVuZ2luZVwiO1xuaW1wb3J0IHsgVmxsbU54ZEluZmVyZW5jZUNvbXBpbGVkTW9kZWwgfSBmcm9tIFwiLi92bGxtLW54ZC1pbmZlcmVuY2UtY29tcGlsZXJcIjtcblxuZXhwb3J0IGludGVyZmFjZSBWbGxtTnhkSW5mZXJlbmNlSW1hZ2VPcHRpb25zIHtcbiAgcmVhZG9ubHkgdmxsbUdpdEJyYW5jaD86IHN0cmluZztcbiAgcmVhZG9ubHkgdmxsbUdpdENvbW1pdEhhc2g/OiBzdHJpbmc7XG59XG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIFZsbG1OeGRJbmZlcmVuY2VJbWFnZS5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFZsbG1OeGRJbmZlcmVuY2VFY3NJbWFnZUJhc2UgaW1wbGVtZW50cyBJTmV1cm9ueENvbnRhaW5lckltYWdlIHtcbiAgLyoqXG4gICAqIFRoZSBjb250YWluZXIgaW1hZ2UuXG4gICAqL1xuICBhYnN0cmFjdCByZWFkb25seSBpbWFnZTogZWNzLkNvbnRhaW5lckltYWdlO1xuICAvKipcbiAgICogVGhlIG5ldXJvbnggU0RLIHZlcnNpb24uXG4gICAqL1xuICByZWFkb25seSBuZXVyb25TZGtWZXJzaW9uOiBzdHJpbmc7XG4gIGNvbnN0cnVjdG9yKG5ldXJvbnhJbWFnZTogSVZsbG1JbmZlcmVuY2VOZXVyb254SW1hZ2UpIHtcbiAgICB0aGlzLm5ldXJvblNka1ZlcnNpb24gPSBuZXVyb254SW1hZ2UubmV1cm9uU2RrVmVyc2lvbjtcbiAgfVxufVxuXG4vKipcbiAqIEluZmVyZW5jZSBFQ1MgY29udGFpbmVyIGltYWdlIGZvciB2TExNIG9uIE54RCBJbmZlcmVuY2UuXG4gKiBUaGlzIGltYWdlIHVzZXMgdGhlIG9mZmljaWFsIEFXUyBOZXVyb24gRGVlcCBMZWFybmluZyBDb250YWluZXJzIHdoaWNoIGNvbWUgd2l0aCB2TExNIHByZS1pbnN0YWxsZWQuXG4gKlxuICogQGV4YW1wbGUgbmV3IFZsbG1OeGRJbmZlcmVuY2VFY3NJbWFnZShWbGxtSW5mZXJlbmNlTmV1cm9ueEltYWdlLkxBVEVTVClcbiAqL1xuZXhwb3J0IGNsYXNzIFZsbG1OeGRJbmZlcmVuY2VFY3NJbWFnZSBleHRlbmRzIFZsbG1OeGRJbmZlcmVuY2VFY3NJbWFnZUJhc2Uge1xuICByZWFkb25seSBpbWFnZTogZWNzLkNvbnRhaW5lckltYWdlO1xuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBWbGxtTnhkSW5mZXJlbmNlSW1hZ2UgZnJvbSBhIGN1c3RvbSBuZXVyb254IGltYWdlLlxuICAgKiBUaGlzIHdpbGwgYnVpbGQgYSBjb250YWluZXIgaW1hZ2UgdXNpbmcgYSBEb2NrZXJmaWxlIHRoYXQgaW5zdGFsbHMgdkxMTSBmcm9tIHNvdXJjZS5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogbmV3IFZsbG1OeGRJbmZlcmVuY2VFY3NJbWFnZShWbGxtSW5mZXJlbmNlTmV1cm9ueEltYWdlLkxBVEVTVClcbiAgICovXG4gIGNvbnN0cnVjdG9yKHZsbG1JbmZlcmVuY2VOZXVyb254SW1hZ2U/OiBJVmxsbUluZmVyZW5jZU5ldXJvbnhJbWFnZSkge1xuICAgIHZsbG1JbmZlcmVuY2VOZXVyb254SW1hZ2UgPz89IFZsbG1JbmZlcmVuY2VOZXVyb254SW1hZ2UuTEFURVNUO1xuICAgIHN1cGVyKHZsbG1JbmZlcmVuY2VOZXVyb254SW1hZ2UpO1xuICAgIHRoaXMuaW1hZ2UgPSBlY3MuQ29udGFpbmVySW1hZ2UuZnJvbVJlZ2lzdHJ5KFxuICAgICAgYCR7dmxsbUluZmVyZW5jZU5ldXJvbnhJbWFnZS5pbWFnZU5hbWV9OiR7dmxsbUluZmVyZW5jZU5ldXJvbnhJbWFnZS5pbWFnZVRhZ31gLFxuICAgICk7XG4gIH1cbn1cblxuLyoqXG4gKiBUYXNrIGRlZmluaXRpb24gZm9yIFZsbG1OeGRJbmZlcmVuY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmxsbU54ZEluZmVyZW5jZVRhc2tEZWZpbml0aW9uUHJvcHMgZXh0ZW5kcyBOZXVyb254VGFza0RlZmluaXRpb25Qcm9wc0Jhc2Uge1xuICAvKipcbiAgICogVGhlIG1vZGVsIHRvIGJlIGNvbXBpbGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgY29tcGlsZWRNb2RlbDogVmxsbU54ZEluZmVyZW5jZUNvbXBpbGVkTW9kZWw7XG4gIC8qKlxuICAgKiBUaGUgaW1hZ2UgdG8gYmUgdXNlZCBmb3IgdGhlIGNvbnRhaW5lci5cbiAgICogQGRlZmF1bHQgLSBsYXRlc3QgVmxsbU54ZEluZmVyZW5jZUltYWdlXG4gICAqL1xuICByZWFkb25seSBpbWFnZT86IFZsbG1OeGRJbmZlcmVuY2VFY3NJbWFnZUJhc2U7XG4gIC8qKlxuICAgKiBUaGUgZW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIHBhc3MgdG8gdGhlIGNvbnRhaW5lci5cbiAgICogVGhpcyBpcyBvbmx5IGFwcGxpY2FibGUgd2hlbiB1c2luZyBjb250YWluZXIgcnVudGltZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBlbnZpcm9ubWVudCB2YXJpYWJsZXMuXG4gICAqL1xuICByZWFkb25seSBlbnZpcm9ubWVudD86IHtcbiAgICBba2V5OiBzdHJpbmddOiBzdHJpbmc7XG4gIH07XG59XG5cbi8qKlxuICogVGFzayBkZWZpbml0aW9uIGZvciBWbGxtTnhkSW5mZXJlbmNlLlxuICovXG5leHBvcnQgY2xhc3MgVmxsbU54ZEluZmVyZW5jZVRhc2tEZWZpbml0aW9uIGV4dGVuZHMgTmV1cm9ueFRhc2tEZWZpbml0aW9uIHtcbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBWbGxtTnhkSW5mZXJlbmNlVGFza0RlZmluaXRpb25Qcm9wcyxcbiAgKSB7XG4gICAgY29uc3QgbmV1cm9ueEluc3RhbmNlVHlwZSA9XG4gICAgICBwcm9wcy5uZXVyb254SW5zdGFuY2VUeXBlID8/IHByb3BzLmNvbXBpbGVkTW9kZWwuY29tcGlsZVRpbWVJbnN0YW5jZVR5cGU7XG4gICAgY29uc3QgdGVuc29yUGFyYWxsZWxTaXplID1cbiAgICAgIHByb3BzLmNvbXBpbGVkTW9kZWwudmxsbUFyZ3MudGVuc29yUGFyYWxsZWxTaXplID8/IDE7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIG5ldXJvbnhJbnN0YW5jZVR5cGUsXG4gICAgICB0ZW5zb3JQYXJhbGxlbFNpemUsXG4gICAgfSk7XG4gICAgY29uc3QgaW1hZ2UgPSBwcm9wcy5pbWFnZSA/PyBuZXcgVmxsbU54ZEluZmVyZW5jZUVjc0ltYWdlKCk7XG4gICAgY29uc3QgcG9ydCA9IHByb3BzLmNvbXBpbGVkTW9kZWwudmxsbUFyZ3MucG9ydCA/PyA4MDAwO1xuICAgIGNvbnN0IHZsbG1DbGlBcmdzID0gVmxsbUVuZ2luZUFyZ3VtZW50c1BhcnNlci5jbGkoXG4gICAgICBwcm9wcy5jb21waWxlZE1vZGVsLnZsbG1BcmdzLFxuICAgICk7XG4gICAgLy8gUHJlcGFyZSBlbnZpcm9ubWVudCB2YXJpYWJsZXNcbiAgICBjb25zdCBlbnZpcm9ubWVudDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgIC4uLnByb3BzLmVudmlyb25tZW50LFxuICAgICAgVkxMTV9ORVVST05fRlJBTUVXT1JLOiBcIm5ldXJvbngtZGlzdHJpYnV0ZWQtaW5mZXJlbmNlXCIsXG4gICAgICBORVVST05fQ09NUElMRURfQVJUSUZBQ1RTOiBcIm5ldXJvbi1jb21waWxlZC1hcnRpZmFjdHNcIixcbiAgICAgIE5FVVJPTl9SVF9OVU1fQ09SRVM6IHRlbnNvclBhcmFsbGVsU2l6ZS50b1N0cmluZygpLFxuICAgICAgWExBX0hBTkRMRV9TUEVDSUFMX1NDQUxBUjogXCIxXCIsXG4gICAgICBNT0RFTF9OQU1FOiBwcm9wcy5jb21waWxlZE1vZGVsLm1vZGVsTmFtZSxcbiAgICB9O1xuXG4gICAgdGhpcy5hZGRDb250YWluZXJXaXRoRGVmYXVsdChcInZMTE1cIiwge1xuICAgICAgaW1hZ2U6IGltYWdlLmltYWdlLFxuICAgICAgcG9ydE1hcHBpbmdzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBjb250YWluZXJQb3J0OiBwb3J0LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIGhlYWx0aENoZWNrOiB7XG4gICAgICAgIGNvbW1hbmQ6IFtcbiAgICAgICAgICBcIkNNRC1TSEVMTFwiLFxuICAgICAgICAgIGBjdXJsIC1mIGh0dHA6Ly9sb2NhbGhvc3Q6JHtwb3J0fS9oZWFsdGggfHwgZXhpdCAxYCxcbiAgICAgICAgXSxcbiAgICAgICAgc3RhcnRQZXJpb2Q6IER1cmF0aW9uLm1pbnV0ZXMoNSksXG4gICAgICB9LFxuICAgICAgd29ya2luZ0RpcmVjdG9yeTogYC9vcHQvbWwvbW9kZWwvJHtwcm9wcy5jb21waWxlZE1vZGVsLnMzUHJlZml4fWAsXG4gICAgICBlbnRyeVBvaW50OiBbXCJ2bGxtXCIsIFwic2VydmVcIl0sXG4gICAgICBjb21tYW5kOiB2bGxtQ2xpQXJncyxcbiAgICAgIGVudmlyb25tZW50LFxuICAgIH0pO1xuICB9XG59XG5cbi8qKlxuICogUHJvcHMgZm9yIEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VkVmxsbU54REluZmVyZW5jZVNlcnZpY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXBwbGljYXRpb25Mb2FkQmFsYW5jZWRWbGxtTnhESW5mZXJlbmNlU2VydmljZVByb3BzIGV4dGVuZHMgQXBwbGljYXRpb25Mb2FkQmFsYW5jZWROZXVyb254U2VydmljZVByb3BzIHt9XG5cbi8qKlxuICogQXBwbGljYXRpb25Mb2FkQmFsYW5jZWRWbGxtTnhESW5mZXJlbmNlU2VydmljZSBpcyBhIHdyYXBwZXIgb2YgQXBwbGljYXRpb25Mb2FkQmFsYW5jZWROZXVyb254U2VydmljZUJhc2UuXG4gKiBJdCBwcm92aWRlcyBhIHNpbXBsZSB3YXkgdG8gZGVwbG95IHZMTE0gb24gTnhEIEluZmVyZW5jZS5cbiAqIEBleGFtcGxlXG4gKiBjb25zdCBjb21waWxlciA9IG5ldyBWbGxtTnhkSW5mZXJlbmNlQ29tcGlsZXIodGhpcywgXCJDb21waWxlclwiLCB7XG4gKiAgIHZwYyxcbiAqICAgYnVja2V0LFxuICogICBtb2RlbDogTW9kZWwuZnJvbUh1Z2dpbmdGYWNlKFwiZXhhbXBsZS9leGFtcGxlLTdiLWNoYXRcIiksXG4gKiB9KTtcbiAqIGNvbnN0IGNvbXBpbGVkTW9kZWwgPSBjb21waWxlci5jb21waWxlKCk7XG4gKiBjb25zdCB0YXNrRGVmaW5pdGlvbiA9IG5ldyBWbGxtTnhkSW5mZXJlbmNlVGFza0RlZmluaXRpb24oXG4gKiAgIHRoaXMsXG4gKiAgIFwiVGFza0RlZmluaXRpb25cIixcbiAqICAge1xuICogICAgIHZwYyxcbiAqICAgICBjb21waWxlZE1vZGVsLFxuICogICB9LFxuICogKTtcbiAqIG5ldyBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlZFZsbG1OeERJbmZlcmVuY2VTZXJ2aWNlKHRoaXMsIFwiU2VydmljZVwiLCB7XG4gKiAgIHRhc2tEZWZpbml0aW9uLFxuICogfSk7XG4gKi9cbmV4cG9ydCBjbGFzcyBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlZFZsbG1OeERJbmZlcmVuY2VTZXJ2aWNlIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcmVhZG9ubHkgbG9hZEJhbGFuY2VyOiBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlcjtcbiAgcmVhZG9ubHkgbGlzdGVuZXI6IEFwcGxpY2F0aW9uTGlzdGVuZXI7XG4gIHJlYWRvbmx5IHRhcmdldEdyb3VwOiBBcHBsaWNhdGlvblRhcmdldEdyb3VwO1xuICByZWFkb25seSBzZXJ2aWNlOiBlY3MuRWMyU2VydmljZTtcbiAgcmVhZG9ubHkgdGFza0RlZmluaXRpb246IGVjcy5FYzJUYXNrRGVmaW5pdGlvbjtcbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlZFZsbG1OeERJbmZlcmVuY2VTZXJ2aWNlUHJvcHMsXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgY29uc3QgcmVzb3VyY2UgPSBuZXcgQXBwbGljYXRpb25Mb2FkQmFsYW5jZWROZXVyb254U2VydmljZShcbiAgICAgIHRoaXMsXG4gICAgICBcIlJlc291cmNlXCIsXG4gICAgICBwcm9wcyxcbiAgICApO1xuICAgIHJlc291cmNlLnRhcmdldEdyb3VwLmNvbmZpZ3VyZUhlYWx0aENoZWNrKHtcbiAgICAgIHBhdGg6IFwiL2hlYWx0aFwiLFxuICAgIH0pO1xuICAgIHRoaXMubG9hZEJhbGFuY2VyID0gcmVzb3VyY2UubG9hZEJhbGFuY2VyO1xuICAgIHRoaXMubGlzdGVuZXIgPSByZXNvdXJjZS5saXN0ZW5lcjtcbiAgICB0aGlzLnRhcmdldEdyb3VwID0gcmVzb3VyY2UudGFyZ2V0R3JvdXA7XG4gICAgdGhpcy5zZXJ2aWNlID0gcmVzb3VyY2Uuc2VydmljZTtcbiAgICB0aGlzLnRhc2tEZWZpbml0aW9uID0gcmVzb3VyY2UudGFza0RlZmluaXRpb247XG4gIH1cbn1cbiJdfQ==
|
|
132
|
+
ApplicationLoadBalancedVllmNxDInferenceService[_d] = { fqn: "aws-cdk-neuronx-patterns.ApplicationLoadBalancedVllmNxDInferenceService", version: "0.3.0" };
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmxsbS1ueGQtaW5mZXJlbmNlLWVjcy1wYXR0ZXJucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92bGxtLW54ZC1pbmZlcmVuY2UvdmxsbS1ueGQtaW5mZXJlbmNlLWVjcy1wYXR0ZXJucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUF1QztBQUN2QywyQ0FBMkM7QUFNM0MsMkNBQXVDO0FBQ3ZDLCtEQUtrQztBQUNsQyw2Q0FHeUI7QUFFekIsbUVBQThFO0FBTzlFOztHQUVHO0FBQ0gsTUFBc0IsNEJBQTRCO0lBU2hELFlBQVksWUFBd0M7UUFDbEQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQztJQUN4RCxDQUFDOztBQVhILG9FQVlDOzs7QUFFRDs7Ozs7R0FLRztBQUNILE1BQWEsd0JBQXlCLFNBQVEsNEJBQTRCO0lBR3hFOzs7Ozs7T0FNRztJQUNILFlBQVkseUJBQXNEO1FBQ2hFLHlCQUF5QixLQUF6Qix5QkFBeUIsR0FBSyxtQ0FBeUIsQ0FBQyxNQUFNLEVBQUM7UUFDL0QsS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FDMUMsR0FBRyx5QkFBeUIsQ0FBQyxTQUFTLElBQUkseUJBQXlCLENBQUMsUUFBUSxFQUFFLENBQy9FLENBQUM7SUFDSixDQUFDOztBQWhCSCw0REFpQkM7OztBQTBCRDs7R0FFRztBQUNILE1BQWEsOEJBQStCLFNBQVEsd0NBQXFCO0lBQ3ZFLFlBQ0UsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLEtBQTBDO1FBRTFDLE1BQU0sbUJBQW1CLEdBQ3ZCLEtBQUssQ0FBQyxtQkFBbUIsSUFBSSxLQUFLLENBQUMsYUFBYSxDQUFDLHVCQUF1QixDQUFDO1FBQzNFLE1BQU0sa0JBQWtCLEdBQ3RCLEtBQUssQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLGtCQUFrQixJQUFJLENBQUMsQ0FBQztRQUN2RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNmLEdBQUcsS0FBSztZQUNSLG1CQUFtQjtZQUNuQixrQkFBa0I7U0FDbkIsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssSUFBSSxJQUFJLHdCQUF3QixFQUFFLENBQUM7UUFDNUQsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQztRQUN2RCxNQUFNLFdBQVcsR0FBRyx1Q0FBeUIsQ0FBQyxHQUFHLENBQy9DLEtBQUssQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUM3QixDQUFDO1FBQ0YsZ0NBQWdDO1FBQ2hDLE1BQU0sV0FBVyxHQUEyQjtZQUMxQyxHQUFHLEtBQUssQ0FBQyxXQUFXO1lBQ3BCLHFCQUFxQixFQUFFLCtCQUErQjtZQUN0RCx5QkFBeUIsRUFBRSwyQkFBMkI7WUFDdEQsbUJBQW1CLEVBQUUsa0JBQWtCLENBQUMsUUFBUSxFQUFFO1lBQ2xELHlCQUF5QixFQUFFLEdBQUc7WUFDOUIsVUFBVSxFQUFFLEtBQUssQ0FBQyxhQUFhLENBQUMsU0FBUztTQUMxQyxDQUFDO1FBRUYsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sRUFBRTtZQUNuQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7WUFDbEIsWUFBWSxFQUFFO2dCQUNaO29CQUNFLGFBQWEsRUFBRSxJQUFJO2lCQUNwQjthQUNGO1lBQ0QsV0FBVyxFQUFFO2dCQUNYLE9BQU8sRUFBRTtvQkFDUCxXQUFXO29CQUNYLDRCQUE0QixJQUFJLG1CQUFtQjtpQkFDcEQ7Z0JBQ0QsV0FBVyxFQUFFLHNCQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQzthQUNqQztZQUNELGdCQUFnQixFQUFFLGlCQUFpQixLQUFLLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRTtZQUNqRSxVQUFVLEVBQUUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDO1lBQzdCLE9BQU8sRUFBRSxXQUFXO1lBQ3BCLFdBQVc7U0FDWixDQUFDLENBQUM7SUFDTCxDQUFDOztBQWpESCx3RUFrREM7OztBQU9EOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7QUFDSCxNQUFhLDhDQUErQyxTQUFRLHNCQUFTO0lBTTNFLFlBQ0UsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLEtBQTBEO1FBRTFELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakIsTUFBTSxRQUFRLEdBQUcsSUFBSSx3REFBcUMsQ0FDeEQsSUFBSSxFQUNKLFVBQVUsRUFDVixLQUFLLENBQ04sQ0FBQztRQUNGLFFBQVEsQ0FBQyxXQUFXLENBQUMsb0JBQW9CLENBQUM7WUFDeEMsSUFBSSxFQUFFLFNBQVM7U0FDaEIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFlBQVksR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDO1FBQzFDLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQztRQUNsQyxJQUFJLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUM7UUFDeEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxjQUFjLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQztJQUNoRCxDQUFDOztBQXpCSCx3R0EwQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEdXJhdGlvbiB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0ICogYXMgZWNzIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWNzXCI7XG5pbXBvcnQge1xuICBBcHBsaWNhdGlvbkxpc3RlbmVyLFxuICBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlcixcbiAgQXBwbGljYXRpb25UYXJnZXRHcm91cCxcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1lbGFzdGljbG9hZGJhbGFuY2luZ3YyXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHtcbiAgQXBwbGljYXRpb25Mb2FkQmFsYW5jZWROZXVyb254U2VydmljZSxcbiAgQXBwbGljYXRpb25Mb2FkQmFsYW5jZWROZXVyb254U2VydmljZVByb3BzLFxuICBOZXVyb254VGFza0RlZmluaXRpb24sXG4gIE5ldXJvbnhUYXNrRGVmaW5pdGlvblByb3BzQmFzZSxcbn0gZnJvbSBcIi4uL2Jhc2UvYXdzLWVjcy1wYXR0ZXJuc1wiO1xuaW1wb3J0IHtcbiAgSVZsbG1JbmZlcmVuY2VOZXVyb254SW1hZ2UsXG4gIFZsbG1JbmZlcmVuY2VOZXVyb254SW1hZ2UsXG59IGZyb20gXCIuLi9iYXNlL25ldXJvbnhcIjtcbmltcG9ydCB7IElOZXVyb254Q29udGFpbmVySW1hZ2UgfSBmcm9tIFwiLi4vYmFzZS9uZXVyb254LWNvbXBpbGVyXCI7XG5pbXBvcnQgeyBWbGxtRW5naW5lQXJndW1lbnRzUGFyc2VyIH0gZnJvbSBcIi4uL2Jhc2Uvc2VydmVyLWVuZ2luZS92bGxtLWVuZ2luZVwiO1xuaW1wb3J0IHsgVmxsbU54ZEluZmVyZW5jZUNvbXBpbGVkTW9kZWwgfSBmcm9tIFwiLi92bGxtLW54ZC1pbmZlcmVuY2UtY29tcGlsZXJcIjtcblxuZXhwb3J0IGludGVyZmFjZSBWbGxtTnhkSW5mZXJlbmNlSW1hZ2VPcHRpb25zIHtcbiAgcmVhZG9ubHkgdmxsbUdpdEJyYW5jaD86IHN0cmluZztcbiAgcmVhZG9ubHkgdmxsbUdpdENvbW1pdEhhc2g/OiBzdHJpbmc7XG59XG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIFZsbG1OeGRJbmZlcmVuY2VJbWFnZS5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFZsbG1OeGRJbmZlcmVuY2VFY3NJbWFnZUJhc2UgaW1wbGVtZW50cyBJTmV1cm9ueENvbnRhaW5lckltYWdlIHtcbiAgLyoqXG4gICAqIFRoZSBjb250YWluZXIgaW1hZ2UuXG4gICAqL1xuICBhYnN0cmFjdCByZWFkb25seSBpbWFnZTogZWNzLkNvbnRhaW5lckltYWdlO1xuICAvKipcbiAgICogVGhlIG5ldXJvbnggU0RLIHZlcnNpb24uXG4gICAqL1xuICByZWFkb25seSBuZXVyb25TZGtWZXJzaW9uOiBzdHJpbmc7XG4gIGNvbnN0cnVjdG9yKG5ldXJvbnhJbWFnZTogSVZsbG1JbmZlcmVuY2VOZXVyb254SW1hZ2UpIHtcbiAgICB0aGlzLm5ldXJvblNka1ZlcnNpb24gPSBuZXVyb254SW1hZ2UubmV1cm9uU2RrVmVyc2lvbjtcbiAgfVxufVxuXG4vKipcbiAqIEluZmVyZW5jZSBFQ1MgY29udGFpbmVyIGltYWdlIGZvciB2TExNIG9uIE54RCBJbmZlcmVuY2UuXG4gKiBUaGlzIGltYWdlIHVzZXMgdGhlIG9mZmljaWFsIEFXUyBOZXVyb24gRGVlcCBMZWFybmluZyBDb250YWluZXJzIHdoaWNoIGNvbWUgd2l0aCB2TExNIHByZS1pbnN0YWxsZWQuXG4gKlxuICogQGV4YW1wbGUgbmV3IFZsbG1OeGRJbmZlcmVuY2VFY3NJbWFnZShWbGxtSW5mZXJlbmNlTmV1cm9ueEltYWdlLkxBVEVTVClcbiAqL1xuZXhwb3J0IGNsYXNzIFZsbG1OeGRJbmZlcmVuY2VFY3NJbWFnZSBleHRlbmRzIFZsbG1OeGRJbmZlcmVuY2VFY3NJbWFnZUJhc2Uge1xuICByZWFkb25seSBpbWFnZTogZWNzLkNvbnRhaW5lckltYWdlO1xuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBWbGxtTnhkSW5mZXJlbmNlSW1hZ2UgZnJvbSBhIGN1c3RvbSBuZXVyb254IGltYWdlLlxuICAgKiBUaGlzIHdpbGwgYnVpbGQgYSBjb250YWluZXIgaW1hZ2UgdXNpbmcgYSBEb2NrZXJmaWxlIHRoYXQgaW5zdGFsbHMgdkxMTSBmcm9tIHNvdXJjZS5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogbmV3IFZsbG1OeGRJbmZlcmVuY2VFY3NJbWFnZShWbGxtSW5mZXJlbmNlTmV1cm9ueEltYWdlLkxBVEVTVClcbiAgICovXG4gIGNvbnN0cnVjdG9yKHZsbG1JbmZlcmVuY2VOZXVyb254SW1hZ2U/OiBJVmxsbUluZmVyZW5jZU5ldXJvbnhJbWFnZSkge1xuICAgIHZsbG1JbmZlcmVuY2VOZXVyb254SW1hZ2UgPz89IFZsbG1JbmZlcmVuY2VOZXVyb254SW1hZ2UuTEFURVNUO1xuICAgIHN1cGVyKHZsbG1JbmZlcmVuY2VOZXVyb254SW1hZ2UpO1xuICAgIHRoaXMuaW1hZ2UgPSBlY3MuQ29udGFpbmVySW1hZ2UuZnJvbVJlZ2lzdHJ5KFxuICAgICAgYCR7dmxsbUluZmVyZW5jZU5ldXJvbnhJbWFnZS5pbWFnZU5hbWV9OiR7dmxsbUluZmVyZW5jZU5ldXJvbnhJbWFnZS5pbWFnZVRhZ31gLFxuICAgICk7XG4gIH1cbn1cblxuLyoqXG4gKiBUYXNrIGRlZmluaXRpb24gZm9yIFZsbG1OeGRJbmZlcmVuY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmxsbU54ZEluZmVyZW5jZVRhc2tEZWZpbml0aW9uUHJvcHMgZXh0ZW5kcyBOZXVyb254VGFza0RlZmluaXRpb25Qcm9wc0Jhc2Uge1xuICAvKipcbiAgICogVGhlIG1vZGVsIHRvIGJlIGNvbXBpbGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgY29tcGlsZWRNb2RlbDogVmxsbU54ZEluZmVyZW5jZUNvbXBpbGVkTW9kZWw7XG4gIC8qKlxuICAgKiBUaGUgaW1hZ2UgdG8gYmUgdXNlZCBmb3IgdGhlIGNvbnRhaW5lci5cbiAgICogQGRlZmF1bHQgLSBsYXRlc3QgVmxsbU54ZEluZmVyZW5jZUltYWdlXG4gICAqL1xuICByZWFkb25seSBpbWFnZT86IFZsbG1OeGRJbmZlcmVuY2VFY3NJbWFnZUJhc2U7XG4gIC8qKlxuICAgKiBUaGUgZW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIHBhc3MgdG8gdGhlIGNvbnRhaW5lci5cbiAgICogVGhpcyBpcyBvbmx5IGFwcGxpY2FibGUgd2hlbiB1c2luZyBjb250YWluZXIgcnVudGltZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBlbnZpcm9ubWVudCB2YXJpYWJsZXMuXG4gICAqL1xuICByZWFkb25seSBlbnZpcm9ubWVudD86IHtcbiAgICBba2V5OiBzdHJpbmddOiBzdHJpbmc7XG4gIH07XG59XG5cbi8qKlxuICogVGFzayBkZWZpbml0aW9uIGZvciBWbGxtTnhkSW5mZXJlbmNlLlxuICovXG5leHBvcnQgY2xhc3MgVmxsbU54ZEluZmVyZW5jZVRhc2tEZWZpbml0aW9uIGV4dGVuZHMgTmV1cm9ueFRhc2tEZWZpbml0aW9uIHtcbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBWbGxtTnhkSW5mZXJlbmNlVGFza0RlZmluaXRpb25Qcm9wcyxcbiAgKSB7XG4gICAgY29uc3QgbmV1cm9ueEluc3RhbmNlVHlwZSA9XG4gICAgICBwcm9wcy5uZXVyb254SW5zdGFuY2VUeXBlID8/IHByb3BzLmNvbXBpbGVkTW9kZWwucmVjb21tZW5kZWRJbnN0YW5jZVR5cGU7XG4gICAgY29uc3QgdGVuc29yUGFyYWxsZWxTaXplID1cbiAgICAgIHByb3BzLmNvbXBpbGVkTW9kZWwudmxsbUFyZ3MudGVuc29yUGFyYWxsZWxTaXplID8/IDE7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIG5ldXJvbnhJbnN0YW5jZVR5cGUsXG4gICAgICB0ZW5zb3JQYXJhbGxlbFNpemUsXG4gICAgfSk7XG4gICAgY29uc3QgaW1hZ2UgPSBwcm9wcy5pbWFnZSA/PyBuZXcgVmxsbU54ZEluZmVyZW5jZUVjc0ltYWdlKCk7XG4gICAgY29uc3QgcG9ydCA9IHByb3BzLmNvbXBpbGVkTW9kZWwudmxsbUFyZ3MucG9ydCA/PyA4MDAwO1xuICAgIGNvbnN0IHZsbG1DbGlBcmdzID0gVmxsbUVuZ2luZUFyZ3VtZW50c1BhcnNlci5jbGkoXG4gICAgICBwcm9wcy5jb21waWxlZE1vZGVsLnZsbG1BcmdzLFxuICAgICk7XG4gICAgLy8gUHJlcGFyZSBlbnZpcm9ubWVudCB2YXJpYWJsZXNcbiAgICBjb25zdCBlbnZpcm9ubWVudDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgIC4uLnByb3BzLmVudmlyb25tZW50LFxuICAgICAgVkxMTV9ORVVST05fRlJBTUVXT1JLOiBcIm5ldXJvbngtZGlzdHJpYnV0ZWQtaW5mZXJlbmNlXCIsXG4gICAgICBORVVST05fQ09NUElMRURfQVJUSUZBQ1RTOiBcIm5ldXJvbi1jb21waWxlZC1hcnRpZmFjdHNcIixcbiAgICAgIE5FVVJPTl9SVF9OVU1fQ09SRVM6IHRlbnNvclBhcmFsbGVsU2l6ZS50b1N0cmluZygpLFxuICAgICAgWExBX0hBTkRMRV9TUEVDSUFMX1NDQUxBUjogXCIxXCIsXG4gICAgICBNT0RFTF9OQU1FOiBwcm9wcy5jb21waWxlZE1vZGVsLm1vZGVsTmFtZSxcbiAgICB9O1xuXG4gICAgdGhpcy5hZGRDb250YWluZXJXaXRoRGVmYXVsdChcInZMTE1cIiwge1xuICAgICAgaW1hZ2U6IGltYWdlLmltYWdlLFxuICAgICAgcG9ydE1hcHBpbmdzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBjb250YWluZXJQb3J0OiBwb3J0LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIGhlYWx0aENoZWNrOiB7XG4gICAgICAgIGNvbW1hbmQ6IFtcbiAgICAgICAgICBcIkNNRC1TSEVMTFwiLFxuICAgICAgICAgIGBjdXJsIC1mIGh0dHA6Ly9sb2NhbGhvc3Q6JHtwb3J0fS9oZWFsdGggfHwgZXhpdCAxYCxcbiAgICAgICAgXSxcbiAgICAgICAgc3RhcnRQZXJpb2Q6IER1cmF0aW9uLm1pbnV0ZXMoNSksXG4gICAgICB9LFxuICAgICAgd29ya2luZ0RpcmVjdG9yeTogYC9vcHQvbWwvbW9kZWwvJHtwcm9wcy5jb21waWxlZE1vZGVsLnMzUHJlZml4fWAsXG4gICAgICBlbnRyeVBvaW50OiBbXCJ2bGxtXCIsIFwic2VydmVcIl0sXG4gICAgICBjb21tYW5kOiB2bGxtQ2xpQXJncyxcbiAgICAgIGVudmlyb25tZW50LFxuICAgIH0pO1xuICB9XG59XG5cbi8qKlxuICogUHJvcHMgZm9yIEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VkVmxsbU54REluZmVyZW5jZVNlcnZpY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXBwbGljYXRpb25Mb2FkQmFsYW5jZWRWbGxtTnhESW5mZXJlbmNlU2VydmljZVByb3BzIGV4dGVuZHMgQXBwbGljYXRpb25Mb2FkQmFsYW5jZWROZXVyb254U2VydmljZVByb3BzIHt9XG5cbi8qKlxuICogQXBwbGljYXRpb25Mb2FkQmFsYW5jZWRWbGxtTnhESW5mZXJlbmNlU2VydmljZSBpcyBhIHdyYXBwZXIgb2YgQXBwbGljYXRpb25Mb2FkQmFsYW5jZWROZXVyb254U2VydmljZUJhc2UuXG4gKiBJdCBwcm92aWRlcyBhIHNpbXBsZSB3YXkgdG8gZGVwbG95IHZMTE0gb24gTnhEIEluZmVyZW5jZS5cbiAqIEBleGFtcGxlXG4gKiBjb25zdCBjb21waWxlciA9IG5ldyBWbGxtTnhkSW5mZXJlbmNlQ29tcGlsZXIodGhpcywgXCJDb21waWxlclwiLCB7XG4gKiAgIHZwYyxcbiAqICAgYnVja2V0LFxuICogICBtb2RlbDogTW9kZWwuZnJvbUh1Z2dpbmdGYWNlKFwiZXhhbXBsZS9leGFtcGxlLTdiLWNoYXRcIiksXG4gKiB9KTtcbiAqIGNvbnN0IGNvbXBpbGVkTW9kZWwgPSBjb21waWxlci5jb21waWxlKCk7XG4gKiBjb25zdCB0YXNrRGVmaW5pdGlvbiA9IG5ldyBWbGxtTnhkSW5mZXJlbmNlVGFza0RlZmluaXRpb24oXG4gKiAgIHRoaXMsXG4gKiAgIFwiVGFza0RlZmluaXRpb25cIixcbiAqICAge1xuICogICAgIHZwYyxcbiAqICAgICBjb21waWxlZE1vZGVsLFxuICogICB9LFxuICogKTtcbiAqIG5ldyBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlZFZsbG1OeERJbmZlcmVuY2VTZXJ2aWNlKHRoaXMsIFwiU2VydmljZVwiLCB7XG4gKiAgIHRhc2tEZWZpbml0aW9uLFxuICogfSk7XG4gKi9cbmV4cG9ydCBjbGFzcyBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlZFZsbG1OeERJbmZlcmVuY2VTZXJ2aWNlIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcmVhZG9ubHkgbG9hZEJhbGFuY2VyOiBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlcjtcbiAgcmVhZG9ubHkgbGlzdGVuZXI6IEFwcGxpY2F0aW9uTGlzdGVuZXI7XG4gIHJlYWRvbmx5IHRhcmdldEdyb3VwOiBBcHBsaWNhdGlvblRhcmdldEdyb3VwO1xuICByZWFkb25seSBzZXJ2aWNlOiBlY3MuRWMyU2VydmljZTtcbiAgcmVhZG9ubHkgdGFza0RlZmluaXRpb246IGVjcy5FYzJUYXNrRGVmaW5pdGlvbjtcbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlZFZsbG1OeERJbmZlcmVuY2VTZXJ2aWNlUHJvcHMsXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgY29uc3QgcmVzb3VyY2UgPSBuZXcgQXBwbGljYXRpb25Mb2FkQmFsYW5jZWROZXVyb254U2VydmljZShcbiAgICAgIHRoaXMsXG4gICAgICBcIlJlc291cmNlXCIsXG4gICAgICBwcm9wcyxcbiAgICApO1xuICAgIHJlc291cmNlLnRhcmdldEdyb3VwLmNvbmZpZ3VyZUhlYWx0aENoZWNrKHtcbiAgICAgIHBhdGg6IFwiL2hlYWx0aFwiLFxuICAgIH0pO1xuICAgIHRoaXMubG9hZEJhbGFuY2VyID0gcmVzb3VyY2UubG9hZEJhbGFuY2VyO1xuICAgIHRoaXMubGlzdGVuZXIgPSByZXNvdXJjZS5saXN0ZW5lcjtcbiAgICB0aGlzLnRhcmdldEdyb3VwID0gcmVzb3VyY2UudGFyZ2V0R3JvdXA7XG4gICAgdGhpcy5zZXJ2aWNlID0gcmVzb3VyY2Uuc2VydmljZTtcbiAgICB0aGlzLnRhc2tEZWZpbml0aW9uID0gcmVzb3VyY2UudGFza0RlZmluaXRpb247XG4gIH1cbn1cbiJdfQ==
|
package/package.json
CHANGED
|
@@ -39,10 +39,10 @@
|
|
|
39
39
|
"@aws-cdk/aws-sagemaker-alpha": "2.240.0-alpha.0",
|
|
40
40
|
"@aws-cdk/integ-runner": "latest",
|
|
41
41
|
"@aws-cdk/integ-tests-alpha": "latest",
|
|
42
|
-
"@aws-sdk/client-batch": "^3.
|
|
43
|
-
"@aws-sdk/client-lambda": "^3.
|
|
42
|
+
"@aws-sdk/client-batch": "^3.1006.0",
|
|
43
|
+
"@aws-sdk/client-lambda": "^3.1006.0",
|
|
44
44
|
"@types/aws-lambda": "^8.10.161",
|
|
45
|
-
"@types/cfn-response": "^1.0.
|
|
45
|
+
"@types/cfn-response": "^1.0.9",
|
|
46
46
|
"@types/jest": "^29.5.14",
|
|
47
47
|
"@types/node": "^18",
|
|
48
48
|
"@typescript-eslint/eslint-plugin": "^8",
|
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
"jsii-pacmak": "^1.127.0",
|
|
65
65
|
"jsii-rosetta": "~5.9.0",
|
|
66
66
|
"prettier": "^3.8.1",
|
|
67
|
-
"projen": "^0.99.
|
|
67
|
+
"projen": "^0.99.19",
|
|
68
68
|
"ts-jest": "^29.4.6",
|
|
69
69
|
"ts-node": "^10.9.2",
|
|
70
70
|
"typescript": "^5.9.3"
|
|
@@ -95,7 +95,7 @@
|
|
|
95
95
|
]
|
|
96
96
|
}
|
|
97
97
|
},
|
|
98
|
-
"version": "0.
|
|
98
|
+
"version": "0.3.0",
|
|
99
99
|
"jest": {
|
|
100
100
|
"coverageProvider": "v8",
|
|
101
101
|
"testMatch": [
|
|
@@ -4,6 +4,11 @@ FROM ${IMAGE_NAME}:${IMAGE_TAG}
|
|
|
4
4
|
|
|
5
5
|
WORKDIR /home/$USERNAME/vllm
|
|
6
6
|
|
|
7
|
+
# Install libgomp1 required by neuronx-cc on non-Neuron instances
|
|
8
|
+
USER root
|
|
9
|
+
RUN apt-get update -qq && apt-get install -y -qq libgomp1 && rm -rf /var/lib/apt/lists/*
|
|
10
|
+
USER $USERNAME
|
|
11
|
+
|
|
7
12
|
RUN chown -R $USERNAME:$USERNAME /home/$USERNAME && chsh -s /bin/bash $USERNAME
|
|
8
13
|
COPY --chown=$USERNAME:$USERNAME --chmod=755 modeling_auto.py /home/$USERNAME/vllm/
|
|
9
14
|
COPY --chown=$USERNAME:$USERNAME --chmod=755 quantize.py /home/$USERNAME/vllm/
|