@aws-cdk/aws-glue-alpha
Version:
The CDK Construct Library for AWS::Glue
315 lines • 26.3 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.CrawlerState = exports.ConditionLogicalOperator = exports.PredicateLogical = exports.MaxCapacity = exports.JobType = exports.Runtime = exports.PythonVersion = exports.JobLanguage = exports.GlueVersion = exports.ExecutionClass = exports.MetricType = exports.JobState = exports.WorkerType = void 0;
/**
* The type of predefined worker that is allocated when a job runs.
*/
var WorkerType;
(function (WorkerType) {
/**
* Standard Worker Type
* 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker.
*/
WorkerType["STANDARD"] = "Standard";
/**
* G.1X Worker Type
* 1 DPU (4 vCPU, 16 GB of memory, 64 GB disk), and provides 1 executor per worker. Suitable for memory-intensive jobs.
*/
WorkerType["G_1X"] = "G.1X";
/**
* G.2X Worker Type
* 2 DPU (8 vCPU, 32 GB of memory, 128 GB disk), and provides 1 executor per worker. Suitable for memory-intensive jobs.
*/
WorkerType["G_2X"] = "G.2X";
/**
* G.4X Worker Type
* 4 DPU (16 vCPU, 64 GB of memory, 256 GB disk), and provides 1 executor per worker.
* We recommend this worker type for jobs whose workloads contain your most demanding transforms,
* aggregations, joins, and queries. This worker type is available only for AWS Glue version 3.0 or later jobs.
*/
WorkerType["G_4X"] = "G.4X";
/**
* G.8X Worker Type
* 8 DPU (32 vCPU, 128 GB of memory, 512 GB disk), and provides 1 executor per worker. We recommend this worker
* type for jobs whose workloads contain your most demanding transforms, aggregations, joins, and queries.
* This worker type is available only for AWS Glue version 3.0 or later jobs.
*/
WorkerType["G_8X"] = "G.8X";
/**
* G.12X Worker Type
* 12 DPU (48 vCPU, 192 GB of memory, 768 GB disk), and provides 1 executor per worker.
* We recommend this worker type for jobs with very large and resource-intensive workloads
* that require significant compute capacity. This worker type is available only for
* AWS Glue version 3.0 or later jobs.
*/
WorkerType["G_12X"] = "G.12X";
/**
* G.16X Worker Type
* 16 DPU (64 vCPU, 256 GB of memory, 1024 GB disk), and provides 1 executor per worker.
* We recommend this worker type for jobs with the largest and most resource-intensive workloads
* that require maximum compute capacity. This worker type is available only for
* AWS Glue version 3.0 or later jobs.
*/
WorkerType["G_16X"] = "G.16X";
/**
* G.025X Worker Type
* 0.25 DPU (2 vCPU, 4 GB of memory, 64 GB disk), and provides 1 executor per worker. Suitable for low volume streaming jobs.
*/
WorkerType["G_025X"] = "G.025X";
/**
* Z.2X Worker Type
*/
WorkerType["Z_2X"] = "Z.2X";
/**
* R.1X Worker Type
* 1 M-DPU (4 vCPUs, 32 GB memory), We recommend this worker type for memory-intensive workloads
* that frequently encounter out-of-memory errors or require high memory-to-CPU ratios.
*/
WorkerType["R_1X"] = "R.1X";
/**
* R.2X Worker Type
* 2 M-DPU (8 vCPUs, 64 GB memory), We recommend this worker type for memory-intensive workloads
* that frequently encounter out-of-memory errors or require high memory-to-CPU ratios.
*/
WorkerType["R_2X"] = "R.2X";
/**
* R.4X Worker Type
* 4 M-DPU (16 vCPUs, 128 GB memory), We recommend this worker type for large memory-intensive workloads
* that frequently encounter out-of-memory errors or require high memory-to-CPU ratios.
*/
WorkerType["R_4X"] = "R.4X";
/**
* R.8X Worker Type
* 8 M-DPU (32 vCPUs, 256 GB memory), We recommend this worker type for very large memory-intensive workloads
* that frequently encounter out-of-memory errors or require high memory-to-CPU ratios.
*/
WorkerType["R_8X"] = "R.8X";
})(WorkerType || (exports.WorkerType = WorkerType = {}));
/**
* The number of workers of a defined workerType that are allocated when a job runs.
*
* @see https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-jobs-job.html
*/
/**
* Job states emitted by Glue to CloudWatch Events.
*
* @see https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/EventTypes.html#glue-event-types for more information.
*/
var JobState;
(function (JobState) {
/**
* State indicating job run succeeded
*/
JobState["SUCCEEDED"] = "SUCCEEDED";
/**
* State indicating job run failed
*/
JobState["FAILED"] = "FAILED";
/**
* State indicating job run timed out
*/
JobState["TIMEOUT"] = "TIMEOUT";
/**
* State indicating job is starting
*/
JobState["STARTING"] = "STARTING";
/**
* State indicating job is running
*/
JobState["RUNNING"] = "RUNNING";
/**
* State indicating job is stopping
*/
JobState["STOPPING"] = "STOPPING";
/**
* State indicating job stopped
*/
JobState["STOPPED"] = "STOPPED";
})(JobState || (exports.JobState = JobState = {}));
/**
* The Glue CloudWatch metric type.
*
* @see https://docs.aws.amazon.com/glue/latest/dg/monitoring-awsglue-with-cloudwatch-metrics.html
*/
var MetricType;
(function (MetricType) {
/**
* A value at a point in time.
*/
MetricType["GAUGE"] = "gauge";
/**
* An aggregate number.
*/
MetricType["COUNT"] = "count";
})(MetricType || (exports.MetricType = MetricType = {}));
/**
* The ExecutionClass whether the job is run with a standard or flexible execution class.
*
* @see https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-jobs-job.html#aws-glue-api-jobs-job-Job
* @see https://docs.aws.amazon.com/glue/latest/dg/add-job.html
*/
var ExecutionClass;
(function (ExecutionClass) {
/**
* The flexible execution class is appropriate for time-insensitive jobs whose start
* and completion times may vary.
*/
ExecutionClass["FLEX"] = "FLEX";
/**
* The standard execution class is ideal for time-sensitive workloads that require fast job
* startup and dedicated resources.
*/
ExecutionClass["STANDARD"] = "STANDARD";
})(ExecutionClass || (exports.ExecutionClass = ExecutionClass = {}));
/**
* AWS Glue version determines the versions of Apache Spark and Python that are available to the job.
*
* @see https://docs.aws.amazon.com/glue/latest/dg/add-job.html.
*/
var GlueVersion;
(function (GlueVersion) {
/**
* Glue version using Spark 2.2.1 and Python 2.7
*/
GlueVersion["V0_9"] = "0.9";
/**
* Glue version using Spark 2.4.3, Python 2.7 and Python 3.6
*/
GlueVersion["V1_0"] = "1.0";
/**
* Glue version using Spark 2.4.3 and Python 3.7
*/
GlueVersion["V2_0"] = "2.0";
/**
* Glue version using Spark 3.1.1 and Python 3.7
*/
GlueVersion["V3_0"] = "3.0";
/**
* Glue version using Spark 3.3.0 and Python 3.10
*/
GlueVersion["V4_0"] = "4.0";
/**
* Glue version using Spark 3.5.2 and Python 3.11
*/
GlueVersion["V5_0"] = "5.0";
})(GlueVersion || (exports.GlueVersion = GlueVersion = {}));
/**
* Runtime language of the Glue job
*/
var JobLanguage;
(function (JobLanguage) {
/**
* Scala
*/
JobLanguage["SCALA"] = "scala";
/**
* Python
*/
JobLanguage["PYTHON"] = "python";
})(JobLanguage || (exports.JobLanguage = JobLanguage = {}));
/**
* Python version
*/
var PythonVersion;
(function (PythonVersion) {
/**
* Python 2 (the exact version depends on GlueVersion and JobCommand used)
*/
PythonVersion["TWO"] = "2";
/**
* Python 3 (the exact version depends on GlueVersion and JobCommand used)
*/
PythonVersion["THREE"] = "3";
/**
* Python 3.9 (the exact version depends on GlueVersion and JobCommand used)
*/
PythonVersion["THREE_NINE"] = "3.9";
})(PythonVersion || (exports.PythonVersion = PythonVersion = {}));
/**
* AWS Glue runtime determines the runtime engine of the job.
*
*/
var Runtime;
(function (Runtime) {
/**
* Runtime for a Glue for Ray 2.4.
*/
Runtime["RAY_TWO_FOUR"] = "Ray2.4";
})(Runtime || (exports.Runtime = Runtime = {}));
/**
* The job type.
*/
var JobType;
(function (JobType) {
/**
* Command for running a Glue Spark job.
*/
JobType["ETL"] = "glueetl";
/**
* Command for running a Glue Spark streaming job.
*/
JobType["STREAMING"] = "gluestreaming";
/**
* Command for running a Glue python shell job.
*/
JobType["PYTHON_SHELL"] = "pythonshell";
/**
* Command for running a Glue Ray job.
*/
JobType["RAY"] = "glueray";
})(JobType || (exports.JobType = JobType = {}));
/**
* The number of AWS Glue data processing units (DPUs) that can be allocated when this job runs. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory.
*/
var MaxCapacity;
(function (MaxCapacity) {
/**
* DPU value of 1/16th
*/
MaxCapacity[MaxCapacity["DPU_1_16TH"] = 0.0625] = "DPU_1_16TH";
/**
* DPU value of 1
*/
MaxCapacity[MaxCapacity["DPU_1"] = 1] = "DPU_1";
})(MaxCapacity || (exports.MaxCapacity = MaxCapacity = {}));
/*
* Represents the logical operator for combining multiple conditions in the Glue Trigger API.
*/
var PredicateLogical;
(function (PredicateLogical) {
/**
* All conditions must be true for the predicate to be true.
*/
PredicateLogical["AND"] = "AND";
/**
* At least one condition must be true for the predicate to be true.
*/
PredicateLogical["ANY"] = "ANY";
})(PredicateLogical || (exports.PredicateLogical = PredicateLogical = {}));
/**
* Represents the logical operator for evaluating a single condition in the Glue Trigger API.
*/
var ConditionLogicalOperator;
(function (ConditionLogicalOperator) {
/** The condition is true if the values are equal. */
ConditionLogicalOperator["EQUALS"] = "EQUALS";
})(ConditionLogicalOperator || (exports.ConditionLogicalOperator = ConditionLogicalOperator = {}));
/**
* Represents the state of a crawler for a condition in the Glue Trigger API.
*/
var CrawlerState;
(function (CrawlerState) {
/** The crawler is currently running. */
CrawlerState["RUNNING"] = "RUNNING";
/** The crawler is in the process of being cancelled. */
CrawlerState["CANCELLING"] = "CANCELLING";
/** The crawler has been cancelled. */
CrawlerState["CANCELLED"] = "CANCELLED";
/** The crawler has completed its operation successfully. */
CrawlerState["SUCCEEDED"] = "SUCCEEDED";
/** The crawler has failed to complete its operation. */
CrawlerState["FAILED"] = "FAILED";
/** The crawler encountered an error during its operation. */
CrawlerState["ERROR"] = "ERROR";
})(CrawlerState || (exports.CrawlerState = CrawlerState = {}));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOztHQUVHO0FBQ0gsSUFBWSxVQTJGWDtBQTNGRCxXQUFZLFVBQVU7SUFDcEI7OztPQUdHO0lBQ0gsbUNBQXFCLENBQUE7SUFFckI7OztPQUdHO0lBQ0gsMkJBQWEsQ0FBQTtJQUViOzs7T0FHRztJQUNILDJCQUFhLENBQUE7SUFFYjs7Ozs7T0FLRztJQUNILDJCQUFhLENBQUE7SUFFYjs7Ozs7T0FLRztJQUNILDJCQUFhLENBQUE7SUFFYjs7Ozs7O09BTUc7SUFDSCw2QkFBZSxDQUFBO0lBRWY7Ozs7OztPQU1HO0lBQ0gsNkJBQWUsQ0FBQTtJQUVmOzs7T0FHRztJQUNILCtCQUFpQixDQUFBO0lBRWpCOztPQUVHO0lBQ0gsMkJBQWEsQ0FBQTtJQUViOzs7O09BSUc7SUFDSCwyQkFBYSxDQUFBO0lBRWI7Ozs7T0FJRztJQUNILDJCQUFhLENBQUE7SUFFYjs7OztPQUlHO0lBQ0gsMkJBQWEsQ0FBQTtJQUViOzs7O09BSUc7SUFDSCwyQkFBYSxDQUFBO0FBQ2YsQ0FBQyxFQTNGVyxVQUFVLDBCQUFWLFVBQVUsUUEyRnJCO0FBRUQ7Ozs7R0FJRztBQUVIOzs7O0dBSUc7QUFDSCxJQUFZLFFBbUNYO0FBbkNELFdBQVksUUFBUTtJQUNsQjs7T0FFRztJQUNILG1DQUF1QixDQUFBO0lBRXZCOztPQUVHO0lBQ0gsNkJBQWlCLENBQUE7SUFFakI7O09BRUc7SUFDSCwrQkFBbUIsQ0FBQTtJQUVuQjs7T0FFRztJQUNILGlDQUFxQixDQUFBO0lBRXJCOztPQUVHO0lBQ0gsK0JBQW1CLENBQUE7SUFFbkI7O09BRUc7SUFDSCxpQ0FBcUIsQ0FBQTtJQUVyQjs7T0FFRztJQUNILCtCQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFuQ1csUUFBUSx3QkFBUixRQUFRLFFBbUNuQjtBQUVEOzs7O0dBSUc7QUFDSCxJQUFZLFVBVVg7QUFW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cHJlZGVmaW5lZCB3b3JrZXIgdGhhdCBpcyBhbGxvY2F0ZWQgd2hlbiBhIGpvYiBydW5zLlxuICovXG5leHBvcnQgZW51bSBXb3JrZXJUeXBlIHtcbiAgLyoqXG4gICAqIFN0YW5kYXJkIFdvcmtlciBUeXBlXG4gICAqIDQgdkNQVSwgMTYgR0Igb2YgbWVtb3J5IGFuZCBhIDUwR0IgZGlzaywgYW5kIDIgZXhlY3V0b3JzIHBlciB3b3JrZXIuXG4gICAqL1xuICBTVEFOREFSRCA9ICdTdGFuZGFyZCcsXG5cbiAgLyoqXG4gICAqIEcuMVggV29ya2VyIFR5cGVcbiAgICogMSBEUFUgKDQgdkNQVSwgMTYgR0Igb2YgbWVtb3J5LCA2NCBHQiBkaXNrKSwgYW5kIHByb3ZpZGVzIDEgZXhlY3V0b3IgcGVyIHdvcmtlci4gU3VpdGFibGUgZm9yIG1lbW9yeS1pbnRlbnNpdmUgam9icy5cbiAgICovXG4gIEdfMVggPSAnRy4xWCcsXG5cbiAgLyoqXG4gICAqIEcuMlggV29ya2VyIFR5cGVcbiAgICogMiBEUFUgKDggdkNQVSwgMzIgR0Igb2YgbWVtb3J5LCAxMjggR0IgZGlzayksIGFuZCBwcm92aWRlcyAxIGV4ZWN1dG9yIHBlciB3b3JrZXIuIFN1aXRhYmxlIGZvciBtZW1vcnktaW50ZW5zaXZlIGpvYnMuXG4gICAqL1xuICBHXzJYID0gJ0cuMlgnLFxuXG4gIC8qKlxuICAgKiBHLjRYIFdvcmtlciBUeXBlXG4gICAqIDQgRFBVICgxNiB2Q1BVLCA2NCBHQiBvZiBtZW1vcnksIDI1NiBHQiBkaXNrKSwgYW5kIHByb3ZpZGVzIDEgZXhlY3V0b3IgcGVyIHdvcmtlci5cbiAgICogV2UgcmVjb21tZW5kIHRoaXMgd29ya2VyIHR5cGUgZm9yIGpvYnMgd2hvc2Ugd29ya2xvYWRzIGNvbnRhaW4geW91ciBtb3N0IGRlbWFuZGluZyB0cmFuc2Zvcm1zLFxuICAgKiBhZ2dyZWdhdGlvbnMsIGpvaW5zLCBhbmQgcXVlcmllcy4gVGhpcyB3b3JrZXIgdHlwZSBpcyBhdmFpbGFibGUgb25seSBmb3IgQVdTIEdsdWUgdmVyc2lvbiAzLjAgb3IgbGF0ZXIgam9icy5cbiAgICovXG4gIEdfNFggPSAnRy40WCcsXG5cbiAgLyoqXG4gICAqIEcuOFggV29ya2VyIFR5cGVcbiAgICogOCBEUFUgKDMyIHZDUFUsIDEyOCBHQiBvZiBtZW1vcnksIDUxMiBHQiBkaXNrKSwgYW5kIHByb3ZpZGVzIDEgZXhlY3V0b3IgcGVyIHdvcmtlci4gV2UgcmVjb21tZW5kIHRoaXMgd29ya2VyXG4gICAqIHR5cGUgZm9yIGpvYnMgd2hvc2Ugd29ya2xvYWRzIGNvbnRhaW4geW91ciBtb3N0IGRlbWFuZGluZyB0cmFuc2Zvcm1zLCBhZ2dyZWdhdGlvbnMsIGpvaW5zLCBhbmQgcXVlcmllcy5cbiAgICogVGhpcyB3b3JrZXIgdHlwZSBpcyBhdmFpbGFibGUgb25seSBmb3IgQVdTIEdsdWUgdmVyc2lvbiAzLjAgb3IgbGF0ZXIgam9icy5cbiAgICovXG4gIEdfOFggPSAnRy44WCcsXG5cbiAgLyoqXG4gICAqIEcuMTJYIFdvcmtlciBUeXBlXG4gICAqIDEyIERQVSAoNDggdkNQVSwgMTkyIEdCIG9mIG1lbW9yeSwgNzY4IEdCIGRpc2spLCBhbmQgcHJvdmlkZXMgMSBleGVjdXRvciBwZXIgd29ya2VyLlxuICAgKiBXZSByZWNvbW1lbmQgdGhpcyB3b3JrZXIgdHlwZSBmb3Igam9icyB3aXRoIHZlcnkgbGFyZ2UgYW5kIHJlc291cmNlLWludGVuc2l2ZSB3b3JrbG9hZHNcbiAgICogdGhhdCByZXF1aXJlIHNpZ25pZmljYW50IGNvbXB1dGUgY2FwYWNpdHkuIFRoaXMgd29ya2VyIHR5cGUgaXMgYXZhaWxhYmxlIG9ubHkgZm9yXG4gICAqIEFXUyBHbHVlIHZlcnNpb24gMy4wIG9yIGxhdGVyIGpvYnMuXG4gICAqL1xuICBHXzEyWCA9ICdHLjEyWCcsXG5cbiAgLyoqXG4gICAqIEcuMTZYIFdvcmtlciBUeXBlXG4gICAqIDE2IERQVSAoNjQgdkNQVSwgMjU2IEdCIG9mIG1lbW9yeSwgMTAyNCBHQiBkaXNrKSwgYW5kIHByb3ZpZGVzIDEgZXhlY3V0b3IgcGVyIHdvcmtlci5cbiAgICogV2UgcmVjb21tZW5kIHRoaXMgd29ya2VyIHR5cGUgZm9yIGpvYnMgd2l0aCB0aGUgbGFyZ2VzdCBhbmQgbW9zdCByZXNvdXJjZS1pbnRlbnNpdmUgd29ya2xvYWRzXG4gICAqIHRoYXQgcmVxdWlyZSBtYXhpbXVtIGNvbXB1dGUgY2FwYWNpdHkuIFRoaXMgd29ya2VyIHR5cGUgaXMgYXZhaWxhYmxlIG9ubHkgZm9yXG4gICAqIEFXUyBHbHVlIHZlcnNpb24gMy4wIG9yIGxhdGVyIGpvYnMuXG4gICAqL1xuICBHXzE2WCA9ICdHLjE2WCcsXG5cbiAgLyoqXG4gICAqIEcuMDI1WCBXb3JrZXIgVHlwZVxuICAgKiAwLjI1IERQVSAoMiB2Q1BVLCA0IEdCIG9mIG1lbW9yeSwgNjQgR0IgZGlzayksIGFuZCBwcm92aWRlcyAxIGV4ZWN1dG9yIHBlciB3b3JrZXIuIFN1aXRhYmxlIGZvciBsb3cgdm9sdW1lIHN0cmVhbWluZyBqb2JzLlxuICAgKi9cbiAgR18wMjVYID0gJ0cuMDI1WCcsXG5cbiAgLyoqXG4gICAqIFouMlggV29ya2VyIFR5cGVcbiAgICovXG4gIFpfMlggPSAnWi4yWCcsXG5cbiAgLyoqXG4gICAqIFIuMVggV29ya2VyIFR5cGVcbiAgICogMSBNLURQVSAoNCB2Q1BVcywgMzIgR0IgbWVtb3J5KSwgV2UgcmVjb21tZW5kIHRoaXMgd29ya2VyIHR5cGUgZm9yIG1lbW9yeS1pbnRlbnNpdmUgd29ya2xvYWRzXG4gICAqIHRoYXQgZnJlcXVlbnRseSBlbmNvdW50ZXIgb3V0LW9mLW1lbW9yeSBlcnJvcnMgb3IgcmVxdWlyZSBoaWdoIG1lbW9yeS10by1DUFUgcmF0aW9zLlxuICAgKi9cbiAgUl8xWCA9ICdSLjFYJyxcblxuICAvKipcbiAgICogUi4yWCBXb3JrZXIgVHlwZVxuICAgKiAyIE0tRFBVICg4IHZDUFVzLCA2NCBHQiBtZW1vcnkpLCBXZSByZWNvbW1lbmQgdGhpcyB3b3JrZXIgdHlwZSBmb3IgbWVtb3J5LWludGVuc2l2ZSB3b3JrbG9hZHNcbiAgICogdGhhdCBmcmVxdWVudGx5IGVuY291bnRlciBvdXQtb2YtbWVtb3J5IGVycm9ycyBvciByZXF1aXJlIGhpZ2ggbWVtb3J5LXRvLUNQVSByYXRpb3MuXG4gICAqL1xuICBSXzJYID0gJ1IuMlgnLFxuXG4gIC8qKlxuICAgKiBSLjRYIFdvcmtlciBUeXBlXG4gICAqIDQgTS1EUFUgKDE2IHZDUFVzLCAxMjggR0IgbWVtb3J5KSwgV2UgcmVjb21tZW5kIHRoaXMgd29ya2VyIHR5cGUgZm9yIGxhcmdlIG1lbW9yeS1pbnRlbnNpdmUgd29ya2xvYWRzXG4gICAqIHRoYXQgZnJlcXVlbnRseSBlbmNvdW50ZXIgb3V0LW9mLW1lbW9yeSBlcnJvcnMgb3IgcmVxdWlyZSBoaWdoIG1lbW9yeS10by1DUFUgcmF0aW9zLlxuICAgKi9cbiAgUl80WCA9ICdSLjRYJyxcblxuICAvKipcbiAgICogUi44WCBXb3JrZXIgVHlwZVxuICAgKiA4IE0tRFBVICgzMiB2Q1BVcywgMjU2IEdCIG1lbW9yeSksIFdlIHJlY29tbWVuZCB0aGlzIHdvcmtlciB0eXBlIGZvciB2ZXJ5IGxhcmdlIG1lbW9yeS1pbnRlbnNpdmUgd29ya2xvYWRzXG4gICAqIHRoYXQgZnJlcXVlbnRseSBlbmNvdW50ZXIgb3V0LW9mLW1lbW9yeSBlcnJvcnMgb3IgcmVxdWlyZSBoaWdoIG1lbW9yeS10by1DUFUgcmF0aW9zLlxuICAgKi9cbiAgUl84WCA9ICdSLjhYJyxcbn1cblxuLyoqXG4gKiBUaGUgbnVtYmVyIG9mIHdvcmtlcnMgb2YgYSBkZWZpbmVkIHdvcmtlclR5cGUgdGhhdCBhcmUgYWxsb2NhdGVkIHdoZW4gYSBqb2IgcnVucy5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nbHVlL2xhdGVzdC9kZy9hd3MtZ2x1ZS1hcGktam9icy1qb2IuaHRtbFxuICovXG5cbi8qKlxuICogSm9iIHN0YXRlcyBlbWl0dGVkIGJ5IEdsdWUgdG8gQ2xvdWRXYXRjaCBFdmVudHMuXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRXYXRjaC9sYXRlc3QvZXZlbnRzL0V2ZW50VHlwZXMuaHRtbCNnbHVlLWV2ZW50LXR5cGVzIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuICovXG5leHBvcnQgZW51bSBKb2JTdGF0ZSB7XG4gIC8qKlxuICAgKiBTdGF0ZSBpbmRpY2F0aW5nIGpvYiBydW4gc3VjY2VlZGVkXG4gICAqL1xuICBTVUNDRUVERUQgPSAnU1VDQ0VFREVEJyxcblxuICAvKipcbiAgICogU3RhdGUgaW5kaWNhdGluZyBqb2IgcnVuIGZhaWxlZFxuICAgKi9cbiAgRkFJTEVEID0gJ0ZBSUxFRCcsXG5cbiAgLyoqXG4gICAqIFN0YXRlIGluZGljYXRpbmcgam9iIHJ1biB0aW1lZCBvdXRcbiAgICovXG4gIFRJTUVPVVQgPSAnVElNRU9VVCcsXG5cbiAgLyoqXG4gICAqIFN0YXRlIGluZGljYXRpbmcgam9iIGlzIHN0YXJ0aW5nXG4gICAqL1xuICBTVEFSVElORyA9ICdTVEFSVElORycsXG5cbiAgLyoqXG4gICAqIFN0YXRlIGluZGljYXRpbmcgam9iIGlzIHJ1bm5pbmdcbiAgICovXG4gIFJVTk5JTkcgPSAnUlVOTklORycsXG5cbiAgLyoqXG4gICAqIFN0YXRlIGluZGljYXRpbmcgam9iIGlzIHN0b3BwaW5nXG4gICAqL1xuICBTVE9QUElORyA9ICdTVE9QUElORycsXG5cbiAgLyoqXG4gICAqIFN0YXRlIGluZGljYXRpbmcgam9iIHN0b3BwZWRcbiAgICovXG4gIFNUT1BQRUQgPSAnU1RPUFBFRCcsXG59XG5cbi8qKlxuICogVGhlIEdsdWUgQ2xvdWRXYXRjaCBtZXRyaWMgdHlwZS5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nbHVlL2xhdGVzdC9kZy9tb25pdG9yaW5nLWF3c2dsdWUtd2l0aC1jbG91ZHdhdGNoLW1ldHJpY3MuaHRtbFxuICovXG5leHBvcnQgZW51bSBNZXRyaWNUeXBlIHtcbiAgLyoqXG4gICAqIEEgdmFsdWUgYXQgYSBwb2ludCBpbiB0aW1lLlxuICAgKi9cbiAgR0FVR0UgPSAnZ2F1Z2UnLFxuXG4gIC8qKlxuICAgKiBBbiBhZ2dyZWdhdGUgbnVtYmVyLlxuICAgKi9cbiAgQ09VTlQgPSAnY291bnQnLFxufVxuXG4vKipcbiAqIFRoZSBFeGVjdXRpb25DbGFzcyB3aGV0aGVyIHRoZSBqb2IgaXMgcnVuIHdpdGggYSBzdGFuZGFyZCBvciBmbGV4aWJsZSBleGVjdXRpb24gY2xhc3MuXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2x1ZS9sYXRlc3QvZGcvYXdzLWdsdWUtYXBpLWpvYnMtam9iLmh0bWwjYXdzLWdsdWUtYXBpLWpvYnMtam9iLUpvYlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2x1ZS9sYXRlc3QvZGcvYWRkLWpvYi5odG1sXG4gKi9cbmV4cG9ydCBlbnVtIEV4ZWN1dGlvbkNsYXNzIHtcbiAgLyoqXG4gICAqIFRoZSBmbGV4aWJsZSBleGVjdXRpb24gY2xhc3MgaXMgYXBwcm9wcmlhdGUgZm9yIHRpbWUtaW5zZW5zaXRpdmUgam9icyB3aG9zZSBzdGFydFxuICAgKiBhbmQgY29tcGxldGlvbiB0aW1lcyBtYXkgdmFyeS5cbiAgICovXG4gIEZMRVggPSAnRkxFWCcsXG5cbiAgLyoqXG4gICAqIFRoZSBzdGFuZGFyZCBleGVjdXRpb24gY2xhc3MgaXMgaWRlYWwgZm9yIHRpbWUtc2Vuc2l0aXZlIHdvcmtsb2FkcyB0aGF0IHJlcXVpcmUgZmFzdCBqb2JcbiAgICogc3RhcnR1cCBhbmQgZGVkaWNhdGVkIHJlc291cmNlcy5cbiAgICovXG4gIFNUQU5EQVJEID0gJ1NUQU5EQVJEJyxcbn1cblxuLyoqXG4gKiBBV1MgR2x1ZSB2ZXJzaW9uIGRldGVybWluZXMgdGhlIHZlcnNpb25zIG9mIEFwYWNoZSBTcGFyayBhbmQgUHl0aG9uIHRoYXQgYXJlIGF2YWlsYWJsZSB0byB0aGUgam9iLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dsdWUvbGF0ZXN0L2RnL2FkZC1qb2IuaHRtbC5cbiAqL1xuZXhwb3J0IGVudW0gR2x1ZVZlcnNpb24ge1xuICAvKipcbiAgICogR2x1ZSB2ZXJzaW9uIHVzaW5nIFNwYXJrIDIuMi4xIGFuZCBQeXRob24gMi43XG4gICAqL1xuICBWMF85ID0gJzAuOScsXG5cbiAgLyoqXG4gICAqIEdsdWUgdmVyc2lvbiB1c2luZyBTcGFyayAyLjQuMywgUHl0aG9uIDIuNyBhbmQgUHl0aG9uIDMuNlxuICAgKi9cbiAgVjFfMCA9ICcxLjAnLFxuXG4gIC8qKlxuICAgKiBHbHVlIHZlcnNpb24gdXNpbmcgU3BhcmsgMi40LjMgYW5kIFB5dGhvbiAzLjdcbiAgICovXG4gIFYyXzAgPSAnMi4wJyxcblxuICAvKipcbiAgICogR2x1ZSB2ZXJzaW9uIHVzaW5nIFNwYXJrIDMuMS4xIGFuZCBQeXRob24gMy43XG4gICAqL1xuICBWM18wID0gJzMuMCcsXG5cbiAgLyoqXG4gICAqIEdsdWUgdmVyc2lvbiB1c2luZyBTcGFyayAzLjMuMCBhbmQgUHl0aG9uIDMuMTBcbiAgICovXG4gIFY0XzAgPSAnNC4wJyxcblxuICAvKipcbiAgICogR2x1ZSB2ZXJzaW9uIHVzaW5nIFNwYXJrIDMuNS4yIGFuZCBQeXRob24gMy4xMVxuICAgKi9cbiAgVjVfMCA9ICc1LjAnLFxuXG59XG5cbi8qKlxuICogUnVudGltZSBsYW5ndWFnZSBvZiB0aGUgR2x1ZSBqb2JcbiAqL1xuZXhwb3J0IGVudW0gSm9iTGFuZ3VhZ2Uge1xuICAvKipcbiAgICogU2NhbGFcbiAgICovXG4gIFNDQUxBID0gJ3NjYWxhJyxcblxuICAvKipcbiAgICogUHl0aG9uXG4gICAqL1xuICBQWVRIT04gPSAncHl0aG9uJyxcbn1cblxuLyoqXG4gKiBQeXRob24gdmVyc2lvblxuICovXG5leHBvcnQgZW51bSBQeXRob25WZXJzaW9uIHtcbiAgLyoqXG4gICAqIFB5dGhvbiAyICh0aGUgZXhhY3QgdmVyc2lvbiBkZXBlbmRzIG9uIEdsdWVWZXJzaW9uIGFuZCBKb2JDb21tYW5kIHVzZWQpXG4gICAqL1xuICBUV08gPSAnMicsXG5cbiAgLyoqXG4gICAqIFB5dGhvbiAzICh0aGUgZXhhY3QgdmVyc2lvbiBkZXBlbmRzIG9uIEdsdWVWZXJzaW9uIGFuZCBKb2JDb21tYW5kIHVzZWQpXG4gICAqL1xuICBUSFJFRSA9ICczJyxcblxuICAvKipcbiAgICogUHl0aG9uIDMuOSAodGhlIGV4YWN0IHZlcnNpb24gZGVwZW5kcyBvbiBHbHVlVmVyc2lvbiBhbmQgSm9iQ29tbWFuZCB1c2VkKVxuICAgKi9cbiAgVEhSRUVfTklORSA9ICczLjknLFxuXG59XG5cbi8qKlxuICogQVdTIEdsdWUgcnVudGltZSBkZXRlcm1pbmVzIHRoZSBydW50aW1lIGVuZ2luZSBvZiB0aGUgam9iLlxuICpcbiAqL1xuZXhwb3J0IGVudW0gUnVudGltZSB7XG4gIC8qKlxuICAgKiBSdW50aW1lIGZvciBhIEdsdWUgZm9yIFJheSAyLjQuXG4gICAqL1xuICBSQVlfVFdPX0ZPVVIgPSAnUmF5Mi40Jyxcbn1cblxuLyoqXG4gKiBUaGUgam9iIHR5cGUuXG4gKi9cbmV4cG9ydCBlbnVtIEpvYlR5cGUge1xuICAvKipcbiAgICogQ29tbWFuZCBmb3IgcnVubmluZyBhIEdsdWUgU3Bhcmsgam9iLlxuICAgKi9cbiAgRVRMID0gJ2dsdWVldGwnLFxuXG4gIC8qKlxuICAgKiBDb21tYW5kIGZvciBydW5uaW5nIGEgR2x1ZSBTcGFyayBzdHJlYW1pbmcgam9iLlxuICAgKi9cbiAgU1RSRUFNSU5HID0gJ2dsdWVzdHJlYW1pbmcnLFxuXG4gIC8qKlxuICAgKiBDb21tYW5kIGZvciBydW5uaW5nIGEgR2x1ZSBweXRob24gc2hlbGwgam9iLlxuICAgKi9cbiAgUFlUSE9OX1NIRUxMID0gJ3B5dGhvbnNoZWxsJyxcblxuICAvKipcbiAgICogQ29tbWFuZCBmb3IgcnVubmluZyBhIEdsdWUgUmF5IGpvYi5cbiAgICovXG4gIFJBWSA9ICdnbHVlcmF5JyxcblxufVxuXG4vKipcbiAqIFRoZSBudW1iZXIgb2YgQVdTIEdsdWUgZGF0YSBwcm9jZXNzaW5nIHVuaXRzIChEUFVzKSB0aGF0IGNhbiBiZSBhbGxvY2F0ZWQgd2hlbiB0aGlzIGpvYiBydW5zLiBBIERQVSBpcyBhIHJlbGF0aXZlIG1lYXN1cmUgb2YgcHJvY2Vzc2luZyBwb3dlciB0aGF0IGNvbnNpc3RzIG9mIDQgdkNQVXMgb2YgY29tcHV0ZSBjYXBhY2l0eSBhbmQgMTYgR0Igb2YgbWVtb3J5LlxuICovXG5leHBvcnQgZW51bSBNYXhDYXBhY2l0eSB7XG4gIC8qKlxuICAgKiBEUFUgdmFsdWUgb2YgMS8xNnRoXG4gICAqL1xuICBEUFVfMV8xNlRIID0gMC4wNjI1LFxuXG4gIC8qKlxuICAgKiBEUFUgdmFsdWUgb2YgMVxuICAgKi9cbiAgRFBVXzEgPSAxLFxufVxuXG4vKlxuICogUmVwcmVzZW50cyB0aGUgbG9naWNhbCBvcGVyYXRvciBmb3IgY29tYmluaW5nIG11bHRpcGxlIGNvbmRpdGlvbnMgaW4gdGhlIEdsdWUgVHJpZ2dlciBBUEkuXG4gKi9cbmV4cG9ydCBlbnVtIFByZWRpY2F0ZUxvZ2ljYWwge1xuICAvKipcbiAgICogQWxsIGNvbmRpdGlvbnMgbXVzdCBiZSB0cnVlIGZvciB0aGUgcHJlZGljYXRlIHRvIGJlIHRydWUuXG4gICAqL1xuICBBTkQgPSAnQU5EJyxcblxuICAvKipcbiAgICogQXQgbGVhc3Qgb25lIGNvbmRpdGlvbiBtdXN0IGJlIHRydWUgZm9yIHRoZSBwcmVkaWNhdGUgdG8gYmUgdHJ1ZS5cbiAgICovXG4gIEFOWSA9ICdBTlknLFxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIGxvZ2ljYWwgb3BlcmF0b3IgZm9yIGV2YWx1YXRpbmcgYSBzaW5nbGUgY29uZGl0aW9uIGluIHRoZSBHbHVlIFRyaWdnZXIgQVBJLlxuICovXG5leHBvcnQgZW51bSBDb25kaXRpb25Mb2dpY2FsT3BlcmF0b3Ige1xuICAvKiogVGhlIGNvbmRpdGlvbiBpcyB0cnVlIGlmIHRoZSB2YWx1ZXMgYXJlIGVxdWFsLiAqL1xuICBFUVVBTFMgPSAnRVFVQUxTJyxcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBzdGF0ZSBvZiBhIGNyYXdsZXIgZm9yIGEgY29uZGl0aW9uIGluIHRoZSBHbHVlIFRyaWdnZXIgQVBJLlxuICovXG5leHBvcnQgZW51bSBDcmF3bGVyU3RhdGUge1xuICAvKiogVGhlIGNyYXdsZXIgaXMgY3VycmVudGx5IHJ1bm5pbmcuICovXG4gIFJVTk5JTkcgPSAnUlVOTklORycsXG5cbiAgLyoqIFRoZSBjcmF3bGVyIGlzIGluIHRoZSBwcm9jZXNzIG9mIGJlaW5nIGNhbmNlbGxlZC4gKi9cbiAgQ0FOQ0VMTElORyA9ICdDQU5DRUxMSU5HJyxcblxuICAvKiogVGhlIGNyYXdsZXIgaGFzIGJlZW4gY2FuY2VsbGVkLiAqL1xuICBDQU5DRUxMRUQgPSAnQ0FOQ0VMTEVEJyxcblxuICAvKiogVGhlIGNyYXdsZXIgaGFzIGNvbXBsZXRlZCBpdHMgb3BlcmF0aW9uIHN1Y2Nlc3NmdWxseS4gKi9cbiAgU1VDQ0VFREVEID0gJ1NVQ0NFRURFRCcsXG5cbiAgLyoqIFRoZSBjcmF3bGVyIGhhcyBmYWlsZWQgdG8gY29tcGxldGUgaXRzIG9wZXJhdGlvbi4gKi9cbiAgRkFJTEVEID0gJ0ZBSUxFRCcsXG5cbiAgLyoqIFRoZSBjcmF3bGVyIGVuY291bnRlcmVkIGFuIGVycm9yIGR1cmluZyBpdHMgb3BlcmF0aW9uLiAqL1xuICBFUlJPUiA9ICdFUlJPUicsXG59XG4iXX0=