projen 0.102.0 → 0.103.1
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 +1173 -1104
- package/README.md +23 -0
- package/lib/ai-instructions.js +2 -2
- package/lib/awscdk/auto-discover.js +6 -6
- package/lib/awscdk/awscdk-app-java.js +1 -1
- package/lib/awscdk/awscdk-app-py.js +1 -1
- package/lib/awscdk/awscdk-app-ts.js +1 -1
- package/lib/awscdk/awscdk-construct.js +1 -1
- package/lib/awscdk/awscdk-deps-java.js +1 -1
- package/lib/awscdk/awscdk-deps-js.js +1 -1
- package/lib/awscdk/awscdk-deps-py.js +1 -1
- package/lib/awscdk/awscdk-deps.js +1 -1
- package/lib/awscdk/cdk-config.d.ts +4 -0
- package/lib/awscdk/cdk-config.js +4 -4
- package/lib/awscdk/cdk-tasks.js +1 -1
- package/lib/awscdk/integration-test.d.ts +1 -0
- package/lib/awscdk/integration-test.js +38 -10
- package/lib/awscdk/lambda-extension.js +1 -1
- package/lib/awscdk/lambda-function.js +2 -2
- package/lib/build/build-workflow.js +4 -3
- package/lib/cdk/auto-discover-base.js +2 -2
- package/lib/cdk/construct-lib.js +1 -1
- package/lib/cdk/integration-test-base.js +17 -3
- package/lib/cdk/jsii-build.js +10 -4
- package/lib/cdk/jsii-docgen.js +1 -1
- package/lib/cdk/jsii-project.d.ts +2 -4
- package/lib/cdk/jsii-project.js +10 -11
- package/lib/cdk8s/auto-discover.js +2 -2
- package/lib/cdk8s/cdk8s-app-py.js +1 -1
- package/lib/cdk8s/cdk8s-app-ts.js +1 -1
- package/lib/cdk8s/cdk8s-construct.js +1 -1
- package/lib/cdk8s/cdk8s-deps-py.js +1 -1
- package/lib/cdk8s/cdk8s-deps.js +1 -1
- package/lib/cdk8s/integration-test.js +3 -3
- package/lib/cdktf/cdktf-construct.js +1 -1
- package/lib/cdktn/cdktn-app-ts.js +1 -1
- package/lib/cdktn/cdktn-config.js +1 -1
- package/lib/cdktn/cdktn-construct.js +1 -1
- package/lib/cdktn/cdktn-deps.js +1 -1
- package/lib/cdktn/cdktn-tasks.js +1 -1
- package/lib/circleci/circleci.js +1 -1
- package/lib/cleanup.js +6 -33
- package/lib/cli/task-runtime.js +30 -8
- package/lib/clobber.js +11 -6
- package/lib/component.js +2 -2
- package/lib/dependencies.js +1 -1
- package/lib/dev-env.js +1 -1
- package/lib/docker-compose/docker-compose-service.js +1 -1
- package/lib/docker-compose/docker-compose.js +1 -1
- package/lib/file.js +1 -1
- package/lib/gitattributes.js +1 -1
- package/lib/github/actions-provider.js +1 -1
- package/lib/github/auto-approve.d.ts +2 -15
- package/lib/github/auto-approve.js +3 -4
- package/lib/github/auto-merge.js +1 -1
- package/lib/github/auto-queue.d.ts +2 -6
- package/lib/github/auto-queue.js +3 -3
- package/lib/github/dependabot.js +1 -1
- package/lib/github/dependency-review.d.ts +2 -12
- package/lib/github/dependency-review.js +3 -4
- package/lib/github/github-credentials.js +1 -1
- package/lib/github/github-project.js +1 -1
- package/lib/github/github.d.ts +26 -0
- package/lib/github/github.js +17 -2
- package/lib/github/merge-queue.js +1 -1
- package/lib/github/mergify.js +1 -1
- package/lib/github/pr-template.js +1 -1
- package/lib/github/private/util.d.ts +0 -2
- package/lib/github/private/util.js +1 -13
- package/lib/github/pull-request-backport.d.ts +2 -1
- package/lib/github/pull-request-backport.js +3 -3
- package/lib/github/pull-request-lint.d.ts +2 -15
- package/lib/github/pull-request-lint.js +4 -5
- package/lib/github/stale.d.ts +2 -15
- package/lib/github/stale.js +3 -4
- package/lib/github/task-workflow-job.js +4 -4
- package/lib/github/task-workflow.js +1 -1
- package/lib/github/workflow-actions.js +4 -3
- package/lib/github/workflow-jobs.js +1 -1
- package/lib/github/workflow-steps.js +1 -1
- package/lib/github/workflows.js +1 -1
- package/lib/gitlab/configuration.js +1 -1
- package/lib/gitlab/gitlab-configuration.js +1 -1
- package/lib/gitlab/nested-configuration.js +1 -1
- package/lib/gitpod.d.ts +6 -0
- package/lib/gitpod.js +2 -2
- package/lib/ignore-file.js +1 -1
- package/lib/ini.js +1 -1
- package/lib/java/java-project.js +1 -1
- package/lib/java/junit.js +1 -1
- package/lib/java/maven-compile.js +1 -1
- package/lib/java/maven-packaging.js +8 -3
- package/lib/java/maven-sample.js +1 -1
- package/lib/java/pom.js +2 -2
- package/lib/java/projenrc.js +13 -4
- package/lib/javascript/biome/biome.js +9 -4
- package/lib/javascript/bundler.d.ts +8 -0
- package/lib/javascript/bundler.js +13 -13
- package/lib/javascript/eslint.d.ts +7 -0
- package/lib/javascript/eslint.js +14 -11
- package/lib/javascript/jest.d.ts +8 -0
- package/lib/javascript/jest.js +17 -11
- package/lib/javascript/license-checker.js +1 -1
- package/lib/javascript/node-package.d.ts +1 -1
- package/lib/javascript/node-package.js +32 -15
- package/lib/javascript/node-project.js +38 -25
- package/lib/javascript/npm-config.js +1 -1
- package/lib/javascript/pnpm-workspace-config.js +2 -2
- package/lib/javascript/pnpm-workspace.js +1 -1
- package/lib/javascript/prettier.js +1 -1
- package/lib/javascript/projenrc.js +1 -1
- package/lib/javascript/typescript-config.js +2 -2
- package/lib/javascript/upgrade-dependencies.js +9 -6
- package/lib/javascript/yarnrc.js +1 -1
- package/lib/json-patch.js +1 -1
- package/lib/json.js +1 -1
- package/lib/license.js +1 -1
- package/lib/logger.js +1 -1
- package/lib/makefile.d.ts +2 -0
- package/lib/makefile.js +2 -2
- package/lib/object-file.js +1 -1
- package/lib/project-build.js +1 -1
- package/lib/project-tree.js +1 -1
- package/lib/project.d.ts +4 -0
- package/lib/project.js +2 -2
- package/lib/projects.js +1 -1
- package/lib/projenrc-json.js +1 -1
- package/lib/projenrc.js +1 -1
- package/lib/python/pip.js +1 -1
- package/lib/python/poetry.js +7 -4
- package/lib/python/projenrc.js +1 -1
- package/lib/python/pyproject-toml-file.js +1 -1
- package/lib/python/pytest-sample.js +1 -1
- package/lib/python/pytest.d.ts +5 -2
- package/lib/python/pytest.js +9 -8
- package/lib/python/python-project.js +1 -1
- package/lib/python/python-sample.js +1 -1
- package/lib/python/requirements-file.js +1 -1
- package/lib/python/setuppy.js +1 -1
- package/lib/python/setuptools.js +10 -4
- package/lib/python/uv-config.js +1 -1
- package/lib/python/uv.js +3 -3
- package/lib/python/venv.js +1 -1
- package/lib/readme.js +1 -1
- package/lib/release/publisher.d.ts +5 -0
- package/lib/release/publisher.js +90 -37
- package/lib/release/release-trigger.d.ts +10 -0
- package/lib/release/release-trigger.js +7 -2
- package/lib/release/release.d.ts +17 -2
- package/lib/release/release.js +16 -10
- package/lib/renovatebot.js +1 -1
- package/lib/run-task.cjs +13 -4
- package/lib/runner-options.d.ts +34 -0
- package/lib/runner-options.js +1 -1
- package/lib/sample-file.js +2 -2
- package/lib/script-runner.js +1 -1
- package/lib/source-code.js +1 -1
- package/lib/task-model.d.ts +3 -3
- package/lib/task-model.js +1 -1
- package/lib/task-shell.d.ts +3 -0
- package/lib/task-shell.js +5 -2
- package/lib/task.d.ts +4 -0
- package/lib/task.js +2 -2
- package/lib/tasks.js +1 -1
- package/lib/testing.js +1 -1
- package/lib/textfile.js +1 -1
- package/lib/toml.js +1 -1
- package/lib/typescript/projenrc-ts.js +1 -1
- package/lib/typescript/projenrc.js +1 -1
- package/lib/typescript/typescript-runner.js +1 -1
- package/lib/typescript/typescript-typedoc.js +1 -1
- package/lib/typescript/typescript.js +5 -5
- package/lib/util/dax.d.ts +12 -1
- package/lib/util/dax.js +17 -4
- package/lib/util/path.d.ts +39 -0
- package/lib/util/path.js +90 -1
- package/lib/version.js +2 -2
- package/lib/vscode/devcontainer.js +1 -1
- package/lib/vscode/extensions.js +1 -1
- package/lib/vscode/launch-config.js +1 -1
- package/lib/vscode/settings.js +1 -1
- package/lib/vscode/vscode.js +1 -1
- package/lib/web/next.js +3 -3
- package/lib/web/postcss.js +1 -1
- package/lib/web/react.js +3 -3
- package/lib/web/tailwind.js +1 -1
- package/lib/xmlfile.js +1 -1
- package/lib/yaml.js +1 -1
- package/package.json +1 -1
- package/BREAKING_CHANGES.md +0 -855
package/lib/script-runner.js
CHANGED
|
@@ -10,7 +10,7 @@ const component_1 = require("./component");
|
|
|
10
10
|
* `.projenrc.ts`) and is attached to a project by whoever consumes it.
|
|
11
11
|
*/
|
|
12
12
|
class ScriptRunner extends component_1.FutureComponent {
|
|
13
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.ScriptRunner", version: "0.
|
|
13
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.ScriptRunner", version: "0.103.1" };
|
|
14
14
|
configFor(entrypoint) {
|
|
15
15
|
return {
|
|
16
16
|
dependencies: [],
|
package/lib/source-code.js
CHANGED
|
@@ -9,7 +9,7 @@ const textfile_1 = require("./textfile");
|
|
|
9
9
|
*/
|
|
10
10
|
class SourceCode extends component_1.Component {
|
|
11
11
|
filePath;
|
|
12
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.SourceCode", version: "0.
|
|
12
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.SourceCode", version: "0.103.1" };
|
|
13
13
|
file;
|
|
14
14
|
indentLevel = 0;
|
|
15
15
|
indent;
|
package/lib/task-model.d.ts
CHANGED
|
@@ -286,9 +286,9 @@ export interface TaskStep {
|
|
|
286
286
|
/**
|
|
287
287
|
* Shell command to execute.
|
|
288
288
|
*
|
|
289
|
-
*
|
|
290
|
-
*
|
|
291
|
-
*
|
|
289
|
+
* A single shell string, so only pass trusted input: an interpolated value is
|
|
290
|
+
* interpreted by the shell too. Use `execArgs` for arguments you did not write
|
|
291
|
+
* literally.
|
|
292
292
|
*
|
|
293
293
|
* @default - don't execute a shell command
|
|
294
294
|
*/
|
package/lib/task-model.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90YXNrLW1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFRhc2tTaGVsbCB9IGZyb20gXCIuL3Rhc2stc2hlbGxcIjtcblxuLyoqXG4gKiBTY2hlbWEgZm9yIGB0YXNrcy5qc29uYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYXNrc01hbmlmZXN0IHtcbiAgLyoqXG4gICAqIFRoZSB2ZXJzaW9uIG9mIHRoZSB0YXNrcyBtYW5pZmVzdCBzY2hlbWEuXG4gICAqXG4gICAqIFVzZWQgYnkgdGhlIHRhc2sgcnVudGltZSB0byBkZXRlY3QgbWFuaWZlc3RzIHByb2R1Y2VkIGJ5IGEgbmV3ZXIgdmVyc2lvblxuICAgKiBvZiBwcm9qZW4uIE1hbmlmZXN0cyBnZW5lcmF0ZWQgYnkgb2xkZXIgdmVyc2lvbnMgb2YgcHJvamVuIG9taXQgdGhpcyBmaWVsZFxuICAgKiBhbmQgYXJlIHRyZWF0ZWQgYXMgXCJsZWdhY3lcIiBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdGhlIG1hbmlmZXN0IGlzIHRyZWF0ZWQgYXMgYSBsZWdhY3kgKHVudmVyc2lvbmVkKSBtYW5pZmVzdFxuICAgKi9cbiAgcmVhZG9ubHkgbWFuaWZlc3RWZXJzaW9uPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBBbGwgdGFza3MgYXZhaWxhYmxlIGZvciB0aGlzIHByb2plY3QuXG4gICAqL1xuICByZWFkb25seSB0YXNrcz86IHsgW25hbWU6IHN0cmluZ106IFRhc2tTcGVjIH07XG5cbiAgLyoqXG4gICAqIEVudmlyb25tZW50IGZvciBhbGwgdGFza3MuXG4gICAqL1xuICByZWFkb25seSBlbnY/OiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogVGhlIGRlZmF1bHQgdGFzayBzaGVsbCwgaW4gYHRhc2tzLmpzb25gIGZvcm06IGEga2V5d29yZCAoYFwicHJvamVuXCJgIG9yXG4gICAqIGBcInN5c3RlbVwiYCkgb3IgYW4gaW52b2NhdGlvbiBhcmd1bWVudCBsaXN0LiBTZWVcbiAgICoge0BsaW5rIFRhc2tDb21tb25PcHRpb25zLnNoZWxsfS5cbiAgICovXG4gIHJlYWRvbmx5IHNoZWxsPzogc3RyaW5nIHwgc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFza0NvbW1vbk9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGRlc2NyaXB0aW9uIG9mIHRoaXMgYnVpbGQgY29tbWFuZC5cbiAgICogQGRlZmF1bHQgLSB0aGUgdGFzayBuYW1lXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogRGVmaW5lcyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgZm9yIHRoZSBleGVjdXRpb24gb2YgdGhpcyB0YXNrLlxuICAgKiBWYWx1ZXMgaW4gdGhpcyBtYXAgd2lsbCBiZSBldmFsdWF0ZWQgaW4gYSBzaGVsbCwgc28geW91IGNhbiBkbyBzdHVmZiBsaWtlIGAkKGVjaG8gXCJmb29cIilgLlxuICAgKiBAZGVmYXVsdCB7fVxuICAgKi9cbiAgcmVhZG9ubHkgZW52PzogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIEEgc2V0IG9mIGVudmlyb25tZW50IHZhcmlhYmxlcyB0aGF0IG11c3QgYmUgZGVmaW5lZCBpbiBvcmRlciB0byBleGVjdXRlXG4gICAqIHRoaXMgdGFzay4gVGFzayBleGVjdXRpb24gd2lsbCBmYWlsIGlmIG9uZSBvZiB0aGVzZSBpcyBub3QgZGVmaW5lZC5cbiAgICovXG4gIHJlYWRvbmx5IHJlcXVpcmVkRW52Pzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEEgc2hlbGwgY29tbWFuZCB3aGljaCBkZXRlcm1pbmVzIGlmIHRoZSB0aGlzIHRhc2sgc2hvdWxkIGJlIGV4ZWN1dGVkLiBJZlxuICAgKiB0aGUgcHJvZ3JhbSBleGl0cyB3aXRoIGEgemVybyBleGl0IGNvZGUsIHN0ZXBzIHdpbGwgYmUgZXhlY3V0ZWQuIEEgbm9uLXplcm9cbiAgICogY29kZSBtZWFucyB0aGF0IHRhc2sgd2lsbCBiZSBza2lwcGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgY29uZGl0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgd29ya2luZyBkaXJlY3RvcnkgZm9yIGFsbCBzdGVwcyBpbiB0aGlzIHRhc2sgKHVubGVzcyBvdmVycmlkZGVuIGJ5IHRoZVxuICAgKiBzdGVwKS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBwcm9jZXNzLmN3ZCgpXG4gICAqL1xuICByZWFkb25seSBjd2Q/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBzaGVsbCB1c2VkIHRvIHJ1biB0aGlzIHRhc2sncyBjb21tYW5kcywgaW5jbHVkaW5nIGl0cyBgY29uZGl0aW9uYCBhbmRcbiAgICogYCQoLi4uKWAgZW52aXJvbm1lbnQgZXZhbHVhdGlvbi4gVXNlIHtAbGluayBUYXNrU2hlbGx9IHRvIHBpY2sgYSBidWlsdC1pblxuICAgKiBvciBhbiBleHBsaWNpdCBpbnZvY2F0aW9uLiBTZXQgYXQgcHJvamVjdCwgdGFzayBvciBzdGVwIGxldmVsOyB0aGUgbmVhcmVzdFxuICAgKiBkZWNsYXJlZCBsZXZlbCB3aW5zLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGluaGVyaXRlZCBmcm9tIHRoZSB0YXNrL3Byb2plY3QsIG90aGVyd2lzZSB0aGUgYnVpbHQtaW4gcHJvamVuIHNoZWxsXG4gICAqL1xuICByZWFkb25seSBzaGVsbD86IFRhc2tTaGVsbDtcbn1cblxuLyoqXG4gKiBTcGVjaWZpY2F0aW9uIG9mIGEgc2luZ2xlIHRhc2suXG4gKlxuICogVGhlIGB0YXNrcy5qc29uYCAobWFuaWZlc3QpIGZvcm0gb2YgYSB0YXNrLiB7QGxpbmsgVGFza0NvbW1vbk9wdGlvbnN9IGlzIHRoZVxuICogZm9ybSB1c2VkIHRvIGRlZmluZSBvbmU7IHRoZXkgZGlmZmVyIG9ubHkgaW4gdGhlIHJlbmRlcmVkIGBzaGVsbGAgZmllbGQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFza1NwZWMge1xuICAvKipcbiAgICogVGFzayBuYW1lLlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZGVzY3JpcHRpb24gb2YgdGhpcyBidWlsZCBjb21tYW5kLlxuICAgKiBAZGVmYXVsdCAtIHRoZSB0YXNrIG5hbWVcbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIGVudmlyb25tZW50IHZhcmlhYmxlcyBmb3IgdGhlIGV4ZWN1dGlvbiBvZiB0aGlzIHRhc2suXG4gICAqIFZhbHVlcyBpbiB0aGlzIG1hcCB3aWxsIGJlIGV2YWx1YXRlZCBpbiBhIHNoZWxsLCBzbyB5b3UgY2FuIGRvIHN0dWZmIGxpa2UgYCQoZWNobyBcImZvb1wiKWAuXG4gICAqIEBkZWZhdWx0IHt9XG4gICAqL1xuICByZWFkb25seSBlbnY/OiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogQSBzZXQgb2YgZW52aXJvbm1lbnQgdmFyaWFibGVzIHRoYXQgbXVzdCBiZSBkZWZpbmVkIGluIG9yZGVyIHRvIGV4ZWN1dGVcbiAgICogdGhpcyB0YXNrLiBUYXNrIGV4ZWN1dGlvbiB3aWxsIGZhaWwgaWYgb25lIG9mIHRoZXNlIGlzIG5vdCBkZWZpbmVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVxdWlyZWRFbnY/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQSBzaGVsbCBjb21tYW5kIHdoaWNoIGRldGVybWluZXMgaWYgdGhlIHRoaXMgdGFzayBzaG91bGQgYmUgZXhlY3V0ZWQuIElmXG4gICAqIHRoZSBwcm9ncmFtIGV4aXRzIHdpdGggYSB6ZXJvIGV4aXQgY29kZSwgc3RlcHMgd2lsbCBiZSBleGVjdXRlZC4gQSBub24temVyb1xuICAgKiBjb2RlIG1lYW5zIHRoYXQgdGFzayB3aWxsIGJlIHNraXBwZWQuXG4gICAqL1xuICByZWFkb25seSBjb25kaXRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB3b3JraW5nIGRpcmVjdG9yeSBmb3IgYWxsIHN0ZXBzIGluIHRoaXMgdGFzayAodW5sZXNzIG92ZXJyaWRkZW4gYnkgdGhlXG4gICAqIHN0ZXApLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHByb2Nlc3MuY3dkKClcbiAgICovXG4gIHJlYWRvbmx5IGN3ZD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHRhc2sgc2hlbGwgaW4gYHRhc2tzLmpzb25gIGZvcm06IGEga2V5d29yZCAoYFwicHJvamVuXCJgIG9yIGBcInN5c3RlbVwiYClcbiAgICogb3IgYW4gaW52b2NhdGlvbiBhcmd1bWVudCBsaXN0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRoZSBidWlsdC1pbiBwcm9qZW4gc2hlbGxcbiAgICovXG4gIHJlYWRvbmx5IHNoZWxsPzogc3RyaW5nIHwgc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRhc2sgc3RlcHMuXG4gICAqL1xuICByZWFkb25seSBzdGVwcz86IFRhc2tTdGVwW107XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgdGFzayBzdGVwcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYXNrU3RlcE9wdGlvbnMge1xuICAvKipcbiAgICogU3RlcCBuYW1lXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHdvcmtpbmcgZGlyZWN0b3J5IGZvciB0aGlzIHN0ZXAuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZGV0ZXJtaW5lZCBieSB0aGUgdGFza1xuICAgKi9cbiAgcmVhZG9ubHkgY3dkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIHNoZWxsIGNvbW1hbmQgd2hpY2ggZGV0ZXJtaW5lcyBpZiB0aGUgdGhpcyBzdGVwIHNob3VsZCBiZSBleGVjdXRlZC4gSWZcbiAgICogdGhlIHByb2dyYW0gZXhpdHMgd2l0aCBhIHplcm8gZXhpdCBjb2RlLCB0aGUgc3RlcCB3aWxsIGJlIGV4ZWN1dGVkLiBBIG5vbi16ZXJvXG4gICAqIGNvZGUgbWVhbnMgdGhlIHN0ZXAgd2lsbCBiZSBza2lwcGVkIChzdWJzZXF1ZW50IHRhc2sgc3RlcHMgd2lsbCBzdGlsbCBiZSBldmFsdWF0ZWQvZXhlY3V0ZWQpLlxuICAgKi9cbiAgcmVhZG9ubHkgY29uZGl0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTaG91bGQgdGhpcyBzdGVwIHJlY2VpdmUgYXJncyBwYXNzZWQgdG8gdGhlIHRhc2suXG4gICAqXG4gICAqIElmIGB0cnVlYCwgYXJncyBhcmUgcGFzc2VkIHRocm91Z2ggYXQgdGhlIGVuZCBvZiB0aGUgYGV4ZWNgIHNoZWxsIGNvbW1hbmQuXFxcbiAgICogVGhlIHBvc2l0aW9uIG9mIHRoZSBhcmdzIGNhbiBiZSBjaGFuZ2VkIGJ5IGluY2x1ZGluZyB0aGUgbWFya2VyIGAkQGAgaW5zaWRlIHRoZSBjb21tYW5kIHN0cmluZy5cbiAgICpcbiAgICogSWYgdGhlIG1hcmtlciBpcyBleHBsaWNpdGx5IGRvdWJsZS1xdW90ZWQgKFwiJEBcIikgYXJndW1lbnRzIHdpbGwgYmUgd3JhcHBlZCBpbiBkb3VibGUgcXVvdGVzLCBhcHByb3hpbWF0aW5nXG4gICAqIHRoZSB3aGl0ZXNwYWNlIHByZXNlcnZpbmcgYmVoYXZpb3Igb2YgYmFzaCB2YXJpYWJsZSBleHBhbnNpb24uXG4gICAqXG4gICAqIElmIHRoZSBzdGVwIHNwYXducyBhIHN1YnRhc2ssIGFyZ3MgYXJlIHBhc3NlZCB0byB0aGUgc3VidGFzay5cbiAgICogVGhlIHN1YnRhc2sgbXVzdCBkZWZpbmUgc3RlcHMgcmVjZWl2aW5nIGFyZ3MgZm9yIHRoaXMgdG8gaGF2ZSBhbnkgZWZmZWN0LlxuICAgKlxuICAgKiBAZXhhbXBsZSB0YXNrLmV4ZWMoXCJlY2hvIEhlbGxvICRAIFdvcmxkIVwiLCB7IHJlY2VpdmVBcmdzOiB0cnVlIH0pO1xuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVjZWl2ZUFyZ3M/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBIGxpc3Qgb2YgZml4ZWQgYXJndW1lbnRzIGFsd2F5cyBwYXNzZWQgdG8gdGhlIHN0ZXAuXG4gICAqXG4gICAqIFVzZWZ1bCB0byByZS11c2UgZXhpc3RpbmcgdGFza3Mgd2l0aG91dCBoYXZpbmcgdG8gcmUtZGVmaW5lIHRoZSB3aG9sZSB0YXNrLlxcXG4gICAqIEZpeGVkIGFyZ3MgYXJlIGFsd2F5cyBwYXNzZWQgdG8gdGhlIHN0ZXAsIGV2ZW4gaWYgYHJlY2VpdmVBcmdzYCBpcyBgZmFsc2VgXG4gICAqIGFuZCBhcmUgYWx3YXlzIHBhc3NlZCBiZWZvcmUgYW55IGFyZ3MgdGhlIHRhc2sgaXMgY2FsbGVkIHdpdGguXG4gICAqXG4gICAqIElmIHRoZSBzdGVwIGV4ZWN1dGVzIGEgc2hlbGwgY29tbWFuZHMsIGFyZ3MgYXJlIHBhc3NlZCB0aHJvdWdoIGF0IHRoZSBlbmQgb2YgdGhlIGBleGVjYCBzaGVsbCBjb21tYW5kLlxcXG4gICAqIFRoZSBwb3NpdGlvbiBvZiB0aGUgYXJncyBjYW4gYmUgY2hhbmdlZCBieSBpbmNsdWRpbmcgdGhlIG1hcmtlciBgJEBgIGluc2lkZSB0aGUgY29tbWFuZCBzdHJpbmcuXG4gICAqXG4gICAqIElmIHRoZSBzdGVwIHNwYXducyBhIHN1YnRhc2ssIGFyZ3MgYXJlIHBhc3NlZCB0byB0aGUgc3VidGFzay5cbiAgICogVGhlIHN1YnRhc2sgbXVzdCBkZWZpbmUgc3RlcHMgcmVjZWl2aW5nIGFyZ3MgZm9yIHRoaXMgdG8gaGF2ZSBhbnkgZWZmZWN0LlxuICAgKlxuICAgKiBJZiB0aGUgc3RlcCBjYWxscyBhIGJ1aWx0aW4gc2NyaXB0LCBhcmdzIGFyZSBwYXNzZWQgdG8gdGhlIHNjcmlwdC5cbiAgICogSXQgaXMgdXAgdG8gdGhlIHNjcmlwdCB0byB1c2Ugb3IgZGlzY2FyZCB0aGUgYXJndW1lbnRzLlxuICAgKlxuICAgKiBAZXhhbXBsZSB0YXNrLnNwYXduKFwiZGVwbG95XCIsIHsgYXJnczogW1wiLS1mb3JjZVwiXSB9KTtcbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBhcmd1bWVudHMgYXJlIHBhc3NlZCB0byB0aGUgc3RlcFxuICAgKi9cbiAgcmVhZG9ubHkgYXJncz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIGVudmlyb25tZW50IHZhcmlhYmxlcyBmb3IgdGhlIGV4ZWN1dGlvbiBvZiB0aGlzIHN0ZXAgKGBleGVjYCBhbmQgYGJ1aWx0aW5gIG9ubHkpLlxuICAgKiBWYWx1ZXMgaW4gdGhpcyBtYXAgY2FuIGJlIHNpbXBsZSwgbGl0ZXJhbCB2YWx1ZXMgb3Igc2hlbGwgZXhwcmVzc2lvbnMgdGhhdCB3aWxsIGJlIGV2YWx1YXRlZCBhdCBydW50aW1lIGUuZy4gYCQoZWNobyBcImZvb1wiKWAuXG4gICAqXG4gICAqIEBleGFtcGxlIHsgXCJmb29cIjogXCJiYXJcIiwgXCJib29cIjogXCIkKGVjaG8gYmF6KVwiIH1cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgZGVmaW5lZCBpbiBzdGVwXG4gICAqL1xuICByZWFkb25seSBlbnY/OiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogQ2FwdHVyZSB0aGlzIHN0ZXAncyAodHJpbW1lZCkgc3Rkb3V0IGludG8gYW4gZW52aXJvbm1lbnQgdmFyaWFibGUgb2YgdGhpc1xuICAgKiBuYW1lLCB2aXNpYmxlIHRvIGFsbCBsYXRlciBzdGVwcyBvZiB0aGUgdGFzayBydW4uIEZvciBgc3Bhd25gIHN0ZXBzIHRoZVxuICAgKiBzcGF3bmVkIHN1YnRhc2sncyBjb21iaW5lZCBzdGRvdXQgaXMgY2FwdHVyZWQuXG4gICAqXG4gICAqIFNldCBvbmx5IHdoZW4gdGhlIHN0ZXAgcnVucyAoYSBza2lwcGVkIHN0ZXAgbGVhdmVzIGl0IHVuc2V0KSBhbmQgYWx3YXlzXG4gICAqIG92ZXJ3cml0ZXMuIFRoZSBzdGVwJ3Mgb3V0cHV0IHN0aWxsIHN0cmVhbXMgbGl2ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBzdGRvdXQgaXMgbm90IGNhcHR1cmVkXG4gICAqL1xuICByZWFkb25seSBvdXRwdXRFbnY/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBzaGVsbCB1c2VkIHRvIHJ1biB0aGlzIHN0ZXAsIG92ZXJyaWRpbmcgdGhlIHRhc2svcHJvamVjdCBzaGVsbC5cbiAgICpcbiAgICogQHNlZSB7QGxpbmsgVGFza0NvbW1vbk9wdGlvbnMuc2hlbGx9XG4gICAqIEBkZWZhdWx0IC0gdGhlIHRhc2sncyAob3IgcHJvamVjdCdzKSBzaGVsbFxuICAgKi9cbiAgcmVhZG9ubHkgc2hlbGw/OiBUYXNrU2hlbGw7XG59XG5cbi8qKlxuICogQSBzaW5nbGUgc3RlcCB3aXRoaW4gYSB0YXNrLiBUaGUgc3RlcCBjb3VsZCBlaXRoZXIgYmUgIHRoZSBleGVjdXRpb24gb2YgYVxuICogc2hlbGwgY29tbWFuZCBvciBleGVjdXRpb24gb2YgYSBzdWItdGFzaywgYnkgbmFtZS5cbiAqXG4gKiBUaGUgYHRhc2tzLmpzb25gIChtYW5pZmVzdCkgZm9ybSBvZiBhIHN0ZXAuIHtAbGluayBUYXNrU3RlcE9wdGlvbnN9IGlzIHRoZVxuICogZm9ybSB1c2VkIHRvIGRlZmluZSBzdGVwcyAodmlhIGB0YXNrLmV4ZWMoKWAgZXRjLik7IHRoZXkgZGlmZmVyIG9ubHkgaW4gdGhlXG4gKiByZW5kZXJlZCBgc2hlbGxgIGZpZWxkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhc2tTdGVwIHtcbiAgLyoqXG4gICAqIFN0ZXAgbmFtZVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIG5hbWVcbiAgICovXG4gIHJlYWRvbmx5IG5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB3b3JraW5nIGRpcmVjdG9yeSBmb3IgdGhpcyBzdGVwLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGRldGVybWluZWQgYnkgdGhlIHRhc2tcbiAgICovXG4gIHJlYWRvbmx5IGN3ZD86IHN0cmluZztcblxuICAvKipcbiAgICogQSBzaGVsbCBjb21tYW5kIHdoaWNoIGRldGVybWluZXMgaWYgdGhlIHRoaXMgc3RlcCBzaG91bGQgYmUgZXhlY3V0ZWQuIElmXG4gICAqIHRoZSBwcm9ncmFtIGV4aXRzIHdpdGggYSB6ZXJvIGV4aXQgY29kZSwgdGhlIHN0ZXAgd2lsbCBiZSBleGVjdXRlZC4gQSBub24temVyb1xuICAgKiBjb2RlIG1lYW5zIHRoZSBzdGVwIHdpbGwgYmUgc2tpcHBlZCAoc3Vic2VxdWVudCB0YXNrIHN0ZXBzIHdpbGwgc3RpbGwgYmUgZXZhbHVhdGVkL2V4ZWN1dGVkKS5cbiAgICovXG4gIHJlYWRvbmx5IGNvbmRpdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogU2hvdWxkIHRoaXMgc3RlcCByZWNlaXZlIGFyZ3MgcGFzc2VkIHRvIHRoZSB0YXNrLlxuICAgKlxuICAgKiBAc2VlIHtAbGluayBUYXNrU3RlcE9wdGlvbnMucmVjZWl2ZUFyZ3N9XG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSByZWNlaXZlQXJncz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBmaXhlZCBhcmd1bWVudHMgYWx3YXlzIHBhc3NlZCB0byB0aGUgc3RlcC5cbiAgICpcbiAgICogQHNlZSB7QGxpbmsgVGFza1N0ZXBPcHRpb25zLmFyZ3N9XG4gICAqIEBkZWZhdWx0IC0gbm8gYXJndW1lbnRzIGFyZSBwYXNzZWQgdG8gdGhlIHN0ZXBcbiAgICovXG4gIHJlYWRvbmx5IGFyZ3M/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogRGVmaW5lcyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgZm9yIHRoZSBleGVjdXRpb24gb2YgdGhpcyBzdGVwIChgZXhlY2AgYW5kIGBidWlsdGluYCBvbmx5KS5cbiAgICpcbiAgICogQHNlZSB7QGxpbmsgVGFza1N0ZXBPcHRpb25zLmVudn1cbiAgICogQGRlZmF1bHQgLSBubyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgZGVmaW5lZCBpbiBzdGVwXG4gICAqL1xuICByZWFkb25seSBlbnY/OiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogQ2FwdHVyZSB0aGlzIHN0ZXAncyBzdGFuZGFyZCBvdXRwdXQgYW5kIGV4cG9zZSBpdCB0byBsYXRlciBzdGVwcyBhcyBhblxuICAgKiBlbnZpcm9ubWVudCB2YXJpYWJsZSB3aXRoIHRoaXMgbmFtZS5cbiAgICpcbiAgICogQHNlZSB7QGxpbmsgVGFza1N0ZXBPcHRpb25zLm91dHB1dEVudn1cbiAgICogQGRlZmF1bHQgLSBzdGRvdXQgaXMgbm90IGNhcHR1cmVkXG4gICAqL1xuICByZWFkb25seSBvdXRwdXRFbnY/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBzdGVwIHNoZWxsIGluIGB0YXNrcy5qc29uYCBmb3JtOiBhIGtleXdvcmQgKGBcInByb2plblwiYCBvciBgXCJzeXN0ZW1cImApXG4gICAqIG9yIGFuIGludm9jYXRpb24gYXJndW1lbnQgbGlzdC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB0aGUgdGFzaydzIChvciBwcm9qZWN0J3MpIHNoZWxsXG4gICAqL1xuICByZWFkb25seSBzaGVsbD86IHN0cmluZyB8IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBTaGVsbCBjb21tYW5kIHRvIGV4ZWN1dGUuXG4gICAqXG4gICAqIFRoZSB3aG9sZSBjb21tYW5kIGlzIGEgc2luZ2xlIHNoZWxsIHN0cmluZy4gVG8gcGFzcyBhcmd1bWVudHMgYXMgYSBsaXN0XG4gICAqIGluc3RlYWQgLSB3aXRob3V0IGhhdmluZyB0byBxdW90ZSBzcGFjZXMgb3Igb3RoZXIgY2hhcmFjdGVycyB5b3Vyc2VsZiAtXG4gICAqIHVzZSBgZXhlY0FyZ3NgLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGRvbid0IGV4ZWN1dGUgYSBzaGVsbCBjb21tYW5kXG4gICAqL1xuICByZWFkb25seSBleGVjPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTaGVsbCBjb21tYW5kIHRvIGV4ZWN1dGUsIHByb3ZpZGVkIGFzIGEgbGlzdCBvZiB0aGUgcHJvZ3JhbSBmb2xsb3dlZCBieVxuICAgKiBpdHMgYXJndW1lbnRzIChhbiBcImFyZ3ZcIikuXG4gICAqXG4gICAqIE9mdGVuIG1vcmUgY29udmVuaWVudCB0aGFuIGBleGVjYDogZWFjaCBlbGVtZW50IGlzIHBhc3NlZCB0byB0aGVcbiAgICogcHJvZ3JhbSBhcy1pcywgc28gYXJndW1lbnRzIHdpdGggc3BhY2VzIG9yIHNwZWNpYWwgY2hhcmFjdGVycyBkb24ndCBuZWVkXG4gICAqIHF1b3RpbmcuIEZpeGVkIChgYXJnc2ApIG9yIHJlY2VpdmVkIChgcmVjZWl2ZUFyZ3NgKSBhcmd1bWVudHMgYXJlIGluc2VydGVkXG4gICAqIHdoZXJldmVyIGEgYCRAYCBlbGVtZW50IGFwcGVhcnMsIG9yIGFwcGVuZGVkIGF0IHRoZSBlbmQgaWYgdGhlcmUgaXMgbm9uZS5cbiAgICpcbiAgICogVGhlIGVsZW1lbnRzIGFyZSBub3QgcnVuIHRocm91Z2ggYSBzaGVsbCwgc28gZW52aXJvbm1lbnQgdmFyaWFibGVzIChgJEZPT2ApXG4gICAqIGFyZSBub3QgZXhwYW5kZWQgYW5kIG90aGVyIHNoZWxsIGZlYXR1cmVzIGFyZSB1bmF2YWlsYWJsZS4gVXNlIGBleGVjYFxuICAgKiBpZiB5b3UgbmVlZCB0aGVtLlxuICAgKlxuICAgKiBNdXR1YWxseSBleGNsdXNpdmUgd2l0aCBgZXhlY2AuXG4gICAqXG4gICAqIEBleGFtcGxlIHsgZXhlY0FyZ3M6IFtcImVjaG9cIiwgXCJoZWxsbyB3b3JsZFwiXSB9XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZG9uJ3QgZXhlY3V0ZSBhIHNoZWxsIGNvbW1hbmRcbiAgICovXG4gIHJlYWRvbmx5IGV4ZWNBcmdzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFN1YnRhc2sgdG8gZXhlY3V0ZVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGRvbid0IHNwYXduIGEgc3VidGFza1xuICAgKi9cbiAgcmVhZG9ubHkgc3Bhd24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFByaW50IGEgbWVzc2FnZS5cbiAgICogQGRlZmF1bHQgLSBkb24ndCBzYXkgYW55dGhpbmdcbiAgICovXG4gIHJlYWRvbmx5IHNheT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgYSBidWlsdC1pbiB0YXNrIHRvIGV4ZWN1dGUuXG4gICAqXG4gICAqIEJ1aWx0LWluIHRhc2tzIGFyZSBub2RlLmpzIHByb2dyYW1zIGJha2VkIGludG8gdGhlIHByb2plbiBtb2R1bGUgYW5kIGFzXG4gICAqIGNvbXBvbmVudCBydW50aW1lIGhlbHBlcnMuXG4gICAqXG4gICAqIFRoZSBuYW1lIGlzIGEgcGF0aCByZWxhdGl2ZSB0byB0aGUgcHJvamVuIGxpYi8gZGlyZWN0b3J5ICh3aXRob3V0IHRoZSAudGFzay5qcyBleHRlbnNpb24pLlxuICAgKiBGb3IgZXhhbXBsZSwgaWYgeW91ciBidWlsdCBpbiBidWlsdGluIHRhc2sgaXMgdW5kZXIgYHNyYy9yZWxlYXNlL3Jlc29sdmUtdmVyc2lvbi50YXNrLnRzYCxcbiAgICogdGhlbiB0aGlzIHdvdWxkIGJlIGByZWxlYXNlL3Jlc29sdmUtdmVyc2lvbmAuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZG8gbm90IGV4ZWN1dGUgYSBidWlsdGluIHRhc2tcbiAgICovXG4gIHJlYWRvbmx5IGJ1aWx0aW4/OiBzdHJpbmc7XG59XG4iXX0=
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90YXNrLW1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFRhc2tTaGVsbCB9IGZyb20gXCIuL3Rhc2stc2hlbGxcIjtcblxuLyoqXG4gKiBTY2hlbWEgZm9yIGB0YXNrcy5qc29uYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYXNrc01hbmlmZXN0IHtcbiAgLyoqXG4gICAqIFRoZSB2ZXJzaW9uIG9mIHRoZSB0YXNrcyBtYW5pZmVzdCBzY2hlbWEuXG4gICAqXG4gICAqIFVzZWQgYnkgdGhlIHRhc2sgcnVudGltZSB0byBkZXRlY3QgbWFuaWZlc3RzIHByb2R1Y2VkIGJ5IGEgbmV3ZXIgdmVyc2lvblxuICAgKiBvZiBwcm9qZW4uIE1hbmlmZXN0cyBnZW5lcmF0ZWQgYnkgb2xkZXIgdmVyc2lvbnMgb2YgcHJvamVuIG9taXQgdGhpcyBmaWVsZFxuICAgKiBhbmQgYXJlIHRyZWF0ZWQgYXMgXCJsZWdhY3lcIiBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdGhlIG1hbmlmZXN0IGlzIHRyZWF0ZWQgYXMgYSBsZWdhY3kgKHVudmVyc2lvbmVkKSBtYW5pZmVzdFxuICAgKi9cbiAgcmVhZG9ubHkgbWFuaWZlc3RWZXJzaW9uPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBBbGwgdGFza3MgYXZhaWxhYmxlIGZvciB0aGlzIHByb2plY3QuXG4gICAqL1xuICByZWFkb25seSB0YXNrcz86IHsgW25hbWU6IHN0cmluZ106IFRhc2tTcGVjIH07XG5cbiAgLyoqXG4gICAqIEVudmlyb25tZW50IGZvciBhbGwgdGFza3MuXG4gICAqL1xuICByZWFkb25seSBlbnY/OiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogVGhlIGRlZmF1bHQgdGFzayBzaGVsbCwgaW4gYHRhc2tzLmpzb25gIGZvcm06IGEga2V5d29yZCAoYFwicHJvamVuXCJgIG9yXG4gICAqIGBcInN5c3RlbVwiYCkgb3IgYW4gaW52b2NhdGlvbiBhcmd1bWVudCBsaXN0LiBTZWVcbiAgICoge0BsaW5rIFRhc2tDb21tb25PcHRpb25zLnNoZWxsfS5cbiAgICovXG4gIHJlYWRvbmx5IHNoZWxsPzogc3RyaW5nIHwgc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFza0NvbW1vbk9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGRlc2NyaXB0aW9uIG9mIHRoaXMgYnVpbGQgY29tbWFuZC5cbiAgICogQGRlZmF1bHQgLSB0aGUgdGFzayBuYW1lXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogRGVmaW5lcyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgZm9yIHRoZSBleGVjdXRpb24gb2YgdGhpcyB0YXNrLlxuICAgKiBWYWx1ZXMgaW4gdGhpcyBtYXAgd2lsbCBiZSBldmFsdWF0ZWQgaW4gYSBzaGVsbCwgc28geW91IGNhbiBkbyBzdHVmZiBsaWtlIGAkKGVjaG8gXCJmb29cIilgLlxuICAgKiBAZGVmYXVsdCB7fVxuICAgKi9cbiAgcmVhZG9ubHkgZW52PzogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIEEgc2V0IG9mIGVudmlyb25tZW50IHZhcmlhYmxlcyB0aGF0IG11c3QgYmUgZGVmaW5lZCBpbiBvcmRlciB0byBleGVjdXRlXG4gICAqIHRoaXMgdGFzay4gVGFzayBleGVjdXRpb24gd2lsbCBmYWlsIGlmIG9uZSBvZiB0aGVzZSBpcyBub3QgZGVmaW5lZC5cbiAgICovXG4gIHJlYWRvbmx5IHJlcXVpcmVkRW52Pzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEEgc2hlbGwgY29tbWFuZCB3aGljaCBkZXRlcm1pbmVzIGlmIHRoZSB0aGlzIHRhc2sgc2hvdWxkIGJlIGV4ZWN1dGVkLiBJZlxuICAgKiB0aGUgcHJvZ3JhbSBleGl0cyB3aXRoIGEgemVybyBleGl0IGNvZGUsIHN0ZXBzIHdpbGwgYmUgZXhlY3V0ZWQuIEEgbm9uLXplcm9cbiAgICogY29kZSBtZWFucyB0aGF0IHRhc2sgd2lsbCBiZSBza2lwcGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgY29uZGl0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgd29ya2luZyBkaXJlY3RvcnkgZm9yIGFsbCBzdGVwcyBpbiB0aGlzIHRhc2sgKHVubGVzcyBvdmVycmlkZGVuIGJ5IHRoZVxuICAgKiBzdGVwKS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBwcm9jZXNzLmN3ZCgpXG4gICAqL1xuICByZWFkb25seSBjd2Q/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBzaGVsbCB1c2VkIHRvIHJ1biB0aGlzIHRhc2sncyBjb21tYW5kcywgaW5jbHVkaW5nIGl0cyBgY29uZGl0aW9uYCBhbmRcbiAgICogYCQoLi4uKWAgZW52aXJvbm1lbnQgZXZhbHVhdGlvbi4gVXNlIHtAbGluayBUYXNrU2hlbGx9IHRvIHBpY2sgYSBidWlsdC1pblxuICAgKiBvciBhbiBleHBsaWNpdCBpbnZvY2F0aW9uLiBTZXQgYXQgcHJvamVjdCwgdGFzayBvciBzdGVwIGxldmVsOyB0aGUgbmVhcmVzdFxuICAgKiBkZWNsYXJlZCBsZXZlbCB3aW5zLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGluaGVyaXRlZCBmcm9tIHRoZSB0YXNrL3Byb2plY3QsIG90aGVyd2lzZSB0aGUgYnVpbHQtaW4gcHJvamVuIHNoZWxsXG4gICAqL1xuICByZWFkb25seSBzaGVsbD86IFRhc2tTaGVsbDtcbn1cblxuLyoqXG4gKiBTcGVjaWZpY2F0aW9uIG9mIGEgc2luZ2xlIHRhc2suXG4gKlxuICogVGhlIGB0YXNrcy5qc29uYCAobWFuaWZlc3QpIGZvcm0gb2YgYSB0YXNrLiB7QGxpbmsgVGFza0NvbW1vbk9wdGlvbnN9IGlzIHRoZVxuICogZm9ybSB1c2VkIHRvIGRlZmluZSBvbmU7IHRoZXkgZGlmZmVyIG9ubHkgaW4gdGhlIHJlbmRlcmVkIGBzaGVsbGAgZmllbGQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFza1NwZWMge1xuICAvKipcbiAgICogVGFzayBuYW1lLlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZGVzY3JpcHRpb24gb2YgdGhpcyBidWlsZCBjb21tYW5kLlxuICAgKiBAZGVmYXVsdCAtIHRoZSB0YXNrIG5hbWVcbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIGVudmlyb25tZW50IHZhcmlhYmxlcyBmb3IgdGhlIGV4ZWN1dGlvbiBvZiB0aGlzIHRhc2suXG4gICAqIFZhbHVlcyBpbiB0aGlzIG1hcCB3aWxsIGJlIGV2YWx1YXRlZCBpbiBhIHNoZWxsLCBzbyB5b3UgY2FuIGRvIHN0dWZmIGxpa2UgYCQoZWNobyBcImZvb1wiKWAuXG4gICAqIEBkZWZhdWx0IHt9XG4gICAqL1xuICByZWFkb25seSBlbnY/OiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogQSBzZXQgb2YgZW52aXJvbm1lbnQgdmFyaWFibGVzIHRoYXQgbXVzdCBiZSBkZWZpbmVkIGluIG9yZGVyIHRvIGV4ZWN1dGVcbiAgICogdGhpcyB0YXNrLiBUYXNrIGV4ZWN1dGlvbiB3aWxsIGZhaWwgaWYgb25lIG9mIHRoZXNlIGlzIG5vdCBkZWZpbmVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVxdWlyZWRFbnY/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQSBzaGVsbCBjb21tYW5kIHdoaWNoIGRldGVybWluZXMgaWYgdGhlIHRoaXMgdGFzayBzaG91bGQgYmUgZXhlY3V0ZWQuIElmXG4gICAqIHRoZSBwcm9ncmFtIGV4aXRzIHdpdGggYSB6ZXJvIGV4aXQgY29kZSwgc3RlcHMgd2lsbCBiZSBleGVjdXRlZC4gQSBub24temVyb1xuICAgKiBjb2RlIG1lYW5zIHRoYXQgdGFzayB3aWxsIGJlIHNraXBwZWQuXG4gICAqL1xuICByZWFkb25seSBjb25kaXRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB3b3JraW5nIGRpcmVjdG9yeSBmb3IgYWxsIHN0ZXBzIGluIHRoaXMgdGFzayAodW5sZXNzIG92ZXJyaWRkZW4gYnkgdGhlXG4gICAqIHN0ZXApLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHByb2Nlc3MuY3dkKClcbiAgICovXG4gIHJlYWRvbmx5IGN3ZD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHRhc2sgc2hlbGwgaW4gYHRhc2tzLmpzb25gIGZvcm06IGEga2V5d29yZCAoYFwicHJvamVuXCJgIG9yIGBcInN5c3RlbVwiYClcbiAgICogb3IgYW4gaW52b2NhdGlvbiBhcmd1bWVudCBsaXN0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRoZSBidWlsdC1pbiBwcm9qZW4gc2hlbGxcbiAgICovXG4gIHJlYWRvbmx5IHNoZWxsPzogc3RyaW5nIHwgc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRhc2sgc3RlcHMuXG4gICAqL1xuICByZWFkb25seSBzdGVwcz86IFRhc2tTdGVwW107XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgdGFzayBzdGVwcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYXNrU3RlcE9wdGlvbnMge1xuICAvKipcbiAgICogU3RlcCBuYW1lXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHdvcmtpbmcgZGlyZWN0b3J5IGZvciB0aGlzIHN0ZXAuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZGV0ZXJtaW5lZCBieSB0aGUgdGFza1xuICAgKi9cbiAgcmVhZG9ubHkgY3dkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIHNoZWxsIGNvbW1hbmQgd2hpY2ggZGV0ZXJtaW5lcyBpZiB0aGUgdGhpcyBzdGVwIHNob3VsZCBiZSBleGVjdXRlZC4gSWZcbiAgICogdGhlIHByb2dyYW0gZXhpdHMgd2l0aCBhIHplcm8gZXhpdCBjb2RlLCB0aGUgc3RlcCB3aWxsIGJlIGV4ZWN1dGVkLiBBIG5vbi16ZXJvXG4gICAqIGNvZGUgbWVhbnMgdGhlIHN0ZXAgd2lsbCBiZSBza2lwcGVkIChzdWJzZXF1ZW50IHRhc2sgc3RlcHMgd2lsbCBzdGlsbCBiZSBldmFsdWF0ZWQvZXhlY3V0ZWQpLlxuICAgKi9cbiAgcmVhZG9ubHkgY29uZGl0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTaG91bGQgdGhpcyBzdGVwIHJlY2VpdmUgYXJncyBwYXNzZWQgdG8gdGhlIHRhc2suXG4gICAqXG4gICAqIElmIGB0cnVlYCwgYXJncyBhcmUgcGFzc2VkIHRocm91Z2ggYXQgdGhlIGVuZCBvZiB0aGUgYGV4ZWNgIHNoZWxsIGNvbW1hbmQuXFxcbiAgICogVGhlIHBvc2l0aW9uIG9mIHRoZSBhcmdzIGNhbiBiZSBjaGFuZ2VkIGJ5IGluY2x1ZGluZyB0aGUgbWFya2VyIGAkQGAgaW5zaWRlIHRoZSBjb21tYW5kIHN0cmluZy5cbiAgICpcbiAgICogSWYgdGhlIG1hcmtlciBpcyBleHBsaWNpdGx5IGRvdWJsZS1xdW90ZWQgKFwiJEBcIikgYXJndW1lbnRzIHdpbGwgYmUgd3JhcHBlZCBpbiBkb3VibGUgcXVvdGVzLCBhcHByb3hpbWF0aW5nXG4gICAqIHRoZSB3aGl0ZXNwYWNlIHByZXNlcnZpbmcgYmVoYXZpb3Igb2YgYmFzaCB2YXJpYWJsZSBleHBhbnNpb24uXG4gICAqXG4gICAqIElmIHRoZSBzdGVwIHNwYXducyBhIHN1YnRhc2ssIGFyZ3MgYXJlIHBhc3NlZCB0byB0aGUgc3VidGFzay5cbiAgICogVGhlIHN1YnRhc2sgbXVzdCBkZWZpbmUgc3RlcHMgcmVjZWl2aW5nIGFyZ3MgZm9yIHRoaXMgdG8gaGF2ZSBhbnkgZWZmZWN0LlxuICAgKlxuICAgKiBAZXhhbXBsZSB0YXNrLmV4ZWMoXCJlY2hvIEhlbGxvICRAIFdvcmxkIVwiLCB7IHJlY2VpdmVBcmdzOiB0cnVlIH0pO1xuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVjZWl2ZUFyZ3M/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBIGxpc3Qgb2YgZml4ZWQgYXJndW1lbnRzIGFsd2F5cyBwYXNzZWQgdG8gdGhlIHN0ZXAuXG4gICAqXG4gICAqIFVzZWZ1bCB0byByZS11c2UgZXhpc3RpbmcgdGFza3Mgd2l0aG91dCBoYXZpbmcgdG8gcmUtZGVmaW5lIHRoZSB3aG9sZSB0YXNrLlxcXG4gICAqIEZpeGVkIGFyZ3MgYXJlIGFsd2F5cyBwYXNzZWQgdG8gdGhlIHN0ZXAsIGV2ZW4gaWYgYHJlY2VpdmVBcmdzYCBpcyBgZmFsc2VgXG4gICAqIGFuZCBhcmUgYWx3YXlzIHBhc3NlZCBiZWZvcmUgYW55IGFyZ3MgdGhlIHRhc2sgaXMgY2FsbGVkIHdpdGguXG4gICAqXG4gICAqIElmIHRoZSBzdGVwIGV4ZWN1dGVzIGEgc2hlbGwgY29tbWFuZHMsIGFyZ3MgYXJlIHBhc3NlZCB0aHJvdWdoIGF0IHRoZSBlbmQgb2YgdGhlIGBleGVjYCBzaGVsbCBjb21tYW5kLlxcXG4gICAqIFRoZSBwb3NpdGlvbiBvZiB0aGUgYXJncyBjYW4gYmUgY2hhbmdlZCBieSBpbmNsdWRpbmcgdGhlIG1hcmtlciBgJEBgIGluc2lkZSB0aGUgY29tbWFuZCBzdHJpbmcuXG4gICAqXG4gICAqIElmIHRoZSBzdGVwIHNwYXducyBhIHN1YnRhc2ssIGFyZ3MgYXJlIHBhc3NlZCB0byB0aGUgc3VidGFzay5cbiAgICogVGhlIHN1YnRhc2sgbXVzdCBkZWZpbmUgc3RlcHMgcmVjZWl2aW5nIGFyZ3MgZm9yIHRoaXMgdG8gaGF2ZSBhbnkgZWZmZWN0LlxuICAgKlxuICAgKiBJZiB0aGUgc3RlcCBjYWxscyBhIGJ1aWx0aW4gc2NyaXB0LCBhcmdzIGFyZSBwYXNzZWQgdG8gdGhlIHNjcmlwdC5cbiAgICogSXQgaXMgdXAgdG8gdGhlIHNjcmlwdCB0byB1c2Ugb3IgZGlzY2FyZCB0aGUgYXJndW1lbnRzLlxuICAgKlxuICAgKiBAZXhhbXBsZSB0YXNrLnNwYXduKFwiZGVwbG95XCIsIHsgYXJnczogW1wiLS1mb3JjZVwiXSB9KTtcbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBhcmd1bWVudHMgYXJlIHBhc3NlZCB0byB0aGUgc3RlcFxuICAgKi9cbiAgcmVhZG9ubHkgYXJncz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIGVudmlyb25tZW50IHZhcmlhYmxlcyBmb3IgdGhlIGV4ZWN1dGlvbiBvZiB0aGlzIHN0ZXAgKGBleGVjYCBhbmQgYGJ1aWx0aW5gIG9ubHkpLlxuICAgKiBWYWx1ZXMgaW4gdGhpcyBtYXAgY2FuIGJlIHNpbXBsZSwgbGl0ZXJhbCB2YWx1ZXMgb3Igc2hlbGwgZXhwcmVzc2lvbnMgdGhhdCB3aWxsIGJlIGV2YWx1YXRlZCBhdCBydW50aW1lIGUuZy4gYCQoZWNobyBcImZvb1wiKWAuXG4gICAqXG4gICAqIEBleGFtcGxlIHsgXCJmb29cIjogXCJiYXJcIiwgXCJib29cIjogXCIkKGVjaG8gYmF6KVwiIH1cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgZGVmaW5lZCBpbiBzdGVwXG4gICAqL1xuICByZWFkb25seSBlbnY/OiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogQ2FwdHVyZSB0aGlzIHN0ZXAncyAodHJpbW1lZCkgc3Rkb3V0IGludG8gYW4gZW52aXJvbm1lbnQgdmFyaWFibGUgb2YgdGhpc1xuICAgKiBuYW1lLCB2aXNpYmxlIHRvIGFsbCBsYXRlciBzdGVwcyBvZiB0aGUgdGFzayBydW4uIEZvciBgc3Bhd25gIHN0ZXBzIHRoZVxuICAgKiBzcGF3bmVkIHN1YnRhc2sncyBjb21iaW5lZCBzdGRvdXQgaXMgY2FwdHVyZWQuXG4gICAqXG4gICAqIFNldCBvbmx5IHdoZW4gdGhlIHN0ZXAgcnVucyAoYSBza2lwcGVkIHN0ZXAgbGVhdmVzIGl0IHVuc2V0KSBhbmQgYWx3YXlzXG4gICAqIG92ZXJ3cml0ZXMuIFRoZSBzdGVwJ3Mgb3V0cHV0IHN0aWxsIHN0cmVhbXMgbGl2ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBzdGRvdXQgaXMgbm90IGNhcHR1cmVkXG4gICAqL1xuICByZWFkb25seSBvdXRwdXRFbnY/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBzaGVsbCB1c2VkIHRvIHJ1biB0aGlzIHN0ZXAsIG92ZXJyaWRpbmcgdGhlIHRhc2svcHJvamVjdCBzaGVsbC5cbiAgICpcbiAgICogQHNlZSB7QGxpbmsgVGFza0NvbW1vbk9wdGlvbnMuc2hlbGx9XG4gICAqIEBkZWZhdWx0IC0gdGhlIHRhc2sncyAob3IgcHJvamVjdCdzKSBzaGVsbFxuICAgKi9cbiAgcmVhZG9ubHkgc2hlbGw/OiBUYXNrU2hlbGw7XG59XG5cbi8qKlxuICogQSBzaW5nbGUgc3RlcCB3aXRoaW4gYSB0YXNrLiBUaGUgc3RlcCBjb3VsZCBlaXRoZXIgYmUgIHRoZSBleGVjdXRpb24gb2YgYVxuICogc2hlbGwgY29tbWFuZCBvciBleGVjdXRpb24gb2YgYSBzdWItdGFzaywgYnkgbmFtZS5cbiAqXG4gKiBUaGUgYHRhc2tzLmpzb25gIChtYW5pZmVzdCkgZm9ybSBvZiBhIHN0ZXAuIHtAbGluayBUYXNrU3RlcE9wdGlvbnN9IGlzIHRoZVxuICogZm9ybSB1c2VkIHRvIGRlZmluZSBzdGVwcyAodmlhIGB0YXNrLmV4ZWMoKWAgZXRjLik7IHRoZXkgZGlmZmVyIG9ubHkgaW4gdGhlXG4gKiByZW5kZXJlZCBgc2hlbGxgIGZpZWxkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhc2tTdGVwIHtcbiAgLyoqXG4gICAqIFN0ZXAgbmFtZVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIG5hbWVcbiAgICovXG4gIHJlYWRvbmx5IG5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB3b3JraW5nIGRpcmVjdG9yeSBmb3IgdGhpcyBzdGVwLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGRldGVybWluZWQgYnkgdGhlIHRhc2tcbiAgICovXG4gIHJlYWRvbmx5IGN3ZD86IHN0cmluZztcblxuICAvKipcbiAgICogQSBzaGVsbCBjb21tYW5kIHdoaWNoIGRldGVybWluZXMgaWYgdGhlIHRoaXMgc3RlcCBzaG91bGQgYmUgZXhlY3V0ZWQuIElmXG4gICAqIHRoZSBwcm9ncmFtIGV4aXRzIHdpdGggYSB6ZXJvIGV4aXQgY29kZSwgdGhlIHN0ZXAgd2lsbCBiZSBleGVjdXRlZC4gQSBub24temVyb1xuICAgKiBjb2RlIG1lYW5zIHRoZSBzdGVwIHdpbGwgYmUgc2tpcHBlZCAoc3Vic2VxdWVudCB0YXNrIHN0ZXBzIHdpbGwgc3RpbGwgYmUgZXZhbHVhdGVkL2V4ZWN1dGVkKS5cbiAgICovXG4gIHJlYWRvbmx5IGNvbmRpdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogU2hvdWxkIHRoaXMgc3RlcCByZWNlaXZlIGFyZ3MgcGFzc2VkIHRvIHRoZSB0YXNrLlxuICAgKlxuICAgKiBAc2VlIHtAbGluayBUYXNrU3RlcE9wdGlvbnMucmVjZWl2ZUFyZ3N9XG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSByZWNlaXZlQXJncz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBmaXhlZCBhcmd1bWVudHMgYWx3YXlzIHBhc3NlZCB0byB0aGUgc3RlcC5cbiAgICpcbiAgICogQHNlZSB7QGxpbmsgVGFza1N0ZXBPcHRpb25zLmFyZ3N9XG4gICAqIEBkZWZhdWx0IC0gbm8gYXJndW1lbnRzIGFyZSBwYXNzZWQgdG8gdGhlIHN0ZXBcbiAgICovXG4gIHJlYWRvbmx5IGFyZ3M/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogRGVmaW5lcyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgZm9yIHRoZSBleGVjdXRpb24gb2YgdGhpcyBzdGVwIChgZXhlY2AgYW5kIGBidWlsdGluYCBvbmx5KS5cbiAgICpcbiAgICogQHNlZSB7QGxpbmsgVGFza1N0ZXBPcHRpb25zLmVudn1cbiAgICogQGRlZmF1bHQgLSBubyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgZGVmaW5lZCBpbiBzdGVwXG4gICAqL1xuICByZWFkb25seSBlbnY/OiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogQ2FwdHVyZSB0aGlzIHN0ZXAncyBzdGFuZGFyZCBvdXRwdXQgYW5kIGV4cG9zZSBpdCB0byBsYXRlciBzdGVwcyBhcyBhblxuICAgKiBlbnZpcm9ubWVudCB2YXJpYWJsZSB3aXRoIHRoaXMgbmFtZS5cbiAgICpcbiAgICogQHNlZSB7QGxpbmsgVGFza1N0ZXBPcHRpb25zLm91dHB1dEVudn1cbiAgICogQGRlZmF1bHQgLSBzdGRvdXQgaXMgbm90IGNhcHR1cmVkXG4gICAqL1xuICByZWFkb25seSBvdXRwdXRFbnY/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBzdGVwIHNoZWxsIGluIGB0YXNrcy5qc29uYCBmb3JtOiBhIGtleXdvcmQgKGBcInByb2plblwiYCBvciBgXCJzeXN0ZW1cImApXG4gICAqIG9yIGFuIGludm9jYXRpb24gYXJndW1lbnQgbGlzdC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB0aGUgdGFzaydzIChvciBwcm9qZWN0J3MpIHNoZWxsXG4gICAqL1xuICByZWFkb25seSBzaGVsbD86IHN0cmluZyB8IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBTaGVsbCBjb21tYW5kIHRvIGV4ZWN1dGUuXG4gICAqXG4gICAqIEEgc2luZ2xlIHNoZWxsIHN0cmluZywgc28gb25seSBwYXNzIHRydXN0ZWQgaW5wdXQ6IGFuIGludGVycG9sYXRlZCB2YWx1ZSBpc1xuICAgKiBpbnRlcnByZXRlZCBieSB0aGUgc2hlbGwgdG9vLiBVc2UgYGV4ZWNBcmdzYCBmb3IgYXJndW1lbnRzIHlvdSBkaWQgbm90IHdyaXRlXG4gICAqIGxpdGVyYWxseS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBkb24ndCBleGVjdXRlIGEgc2hlbGwgY29tbWFuZFxuICAgKi9cbiAgcmVhZG9ubHkgZXhlYz86IHN0cmluZztcblxuICAvKipcbiAgICogU2hlbGwgY29tbWFuZCB0byBleGVjdXRlLCBwcm92aWRlZCBhcyBhIGxpc3Qgb2YgdGhlIHByb2dyYW0gZm9sbG93ZWQgYnlcbiAgICogaXRzIGFyZ3VtZW50cyAoYW4gXCJhcmd2XCIpLlxuICAgKlxuICAgKiBPZnRlbiBtb3JlIGNvbnZlbmllbnQgdGhhbiBgZXhlY2A6IGVhY2ggZWxlbWVudCBpcyBwYXNzZWQgdG8gdGhlXG4gICAqIHByb2dyYW0gYXMtaXMsIHNvIGFyZ3VtZW50cyB3aXRoIHNwYWNlcyBvciBzcGVjaWFsIGNoYXJhY3RlcnMgZG9uJ3QgbmVlZFxuICAgKiBxdW90aW5nLiBGaXhlZCAoYGFyZ3NgKSBvciByZWNlaXZlZCAoYHJlY2VpdmVBcmdzYCkgYXJndW1lbnRzIGFyZSBpbnNlcnRlZFxuICAgKiB3aGVyZXZlciBhIGAkQGAgZWxlbWVudCBhcHBlYXJzLCBvciBhcHBlbmRlZCBhdCB0aGUgZW5kIGlmIHRoZXJlIGlzIG5vbmUuXG4gICAqXG4gICAqIFRoZSBlbGVtZW50cyBhcmUgbm90IHJ1biB0aHJvdWdoIGEgc2hlbGwsIHNvIGVudmlyb25tZW50IHZhcmlhYmxlcyAoYCRGT09gKVxuICAgKiBhcmUgbm90IGV4cGFuZGVkIGFuZCBvdGhlciBzaGVsbCBmZWF0dXJlcyBhcmUgdW5hdmFpbGFibGUuIFVzZSBgZXhlY2BcbiAgICogaWYgeW91IG5lZWQgdGhlbS5cbiAgICpcbiAgICogTXV0dWFsbHkgZXhjbHVzaXZlIHdpdGggYGV4ZWNgLlxuICAgKlxuICAgKiBAZXhhbXBsZSB7IGV4ZWNBcmdzOiBbXCJlY2hvXCIsIFwiaGVsbG8gd29ybGRcIl0gfVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGRvbid0IGV4ZWN1dGUgYSBzaGVsbCBjb21tYW5kXG4gICAqL1xuICByZWFkb25seSBleGVjQXJncz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBTdWJ0YXNrIHRvIGV4ZWN1dGVcbiAgICpcbiAgICogQGRlZmF1bHQgLSBkb24ndCBzcGF3biBhIHN1YnRhc2tcbiAgICovXG4gIHJlYWRvbmx5IHNwYXduPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQcmludCBhIG1lc3NhZ2UuXG4gICAqIEBkZWZhdWx0IC0gZG9uJ3Qgc2F5IGFueXRoaW5nXG4gICAqL1xuICByZWFkb25seSBzYXk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIGEgYnVpbHQtaW4gdGFzayB0byBleGVjdXRlLlxuICAgKlxuICAgKiBCdWlsdC1pbiB0YXNrcyBhcmUgbm9kZS5qcyBwcm9ncmFtcyBiYWtlZCBpbnRvIHRoZSBwcm9qZW4gbW9kdWxlIGFuZCBhc1xuICAgKiBjb21wb25lbnQgcnVudGltZSBoZWxwZXJzLlxuICAgKlxuICAgKiBUaGUgbmFtZSBpcyBhIHBhdGggcmVsYXRpdmUgdG8gdGhlIHByb2plbiBsaWIvIGRpcmVjdG9yeSAod2l0aG91dCB0aGUgLnRhc2suanMgZXh0ZW5zaW9uKS5cbiAgICogRm9yIGV4YW1wbGUsIGlmIHlvdXIgYnVpbHQgaW4gYnVpbHRpbiB0YXNrIGlzIHVuZGVyIGBzcmMvcmVsZWFzZS9yZXNvbHZlLXZlcnNpb24udGFzay50c2AsXG4gICAqIHRoZW4gdGhpcyB3b3VsZCBiZSBgcmVsZWFzZS9yZXNvbHZlLXZlcnNpb25gLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGRvIG5vdCBleGVjdXRlIGEgYnVpbHRpbiB0YXNrXG4gICAqL1xuICByZWFkb25seSBidWlsdGluPzogc3RyaW5nO1xufVxuIl19
|
package/lib/task-shell.d.ts
CHANGED
|
@@ -27,6 +27,9 @@ export declare class TaskShell {
|
|
|
27
27
|
*
|
|
28
28
|
* Use this to opt out of the cross-platform shell and run commands through
|
|
29
29
|
* whatever shell the host provides.
|
|
30
|
+
*
|
|
31
|
+
* Steps given as an argv (`execArgs`) are spawned without a shell, so on
|
|
32
|
+
* Windows they cannot run `.cmd`/`.bat` shims such as npm-installed CLIs.
|
|
30
33
|
*/
|
|
31
34
|
static system(): TaskShell;
|
|
32
35
|
/**
|
package/lib/task-shell.js
CHANGED
|
@@ -19,7 +19,7 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
|
19
19
|
*/
|
|
20
20
|
class TaskShell {
|
|
21
21
|
value;
|
|
22
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.TaskShell", version: "0.
|
|
22
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.TaskShell", version: "0.103.1" };
|
|
23
23
|
/**
|
|
24
24
|
* The built-in cross-platform shell (the default). It interprets POSIX-style
|
|
25
25
|
* task syntax (`mkdir -p`, `&&`, `$VAR`, ...) identically on every platform,
|
|
@@ -34,6 +34,9 @@ class TaskShell {
|
|
|
34
34
|
*
|
|
35
35
|
* Use this to opt out of the cross-platform shell and run commands through
|
|
36
36
|
* whatever shell the host provides.
|
|
37
|
+
*
|
|
38
|
+
* Steps given as an argv (`execArgs`) are spawned without a shell, so on
|
|
39
|
+
* Windows they cannot run `.cmd`/`.bat` shims such as npm-installed CLIs.
|
|
37
40
|
*/
|
|
38
41
|
static system() {
|
|
39
42
|
return new TaskShell("system");
|
|
@@ -84,4 +87,4 @@ class TaskShell {
|
|
|
84
87
|
}
|
|
85
88
|
}
|
|
86
89
|
exports.TaskShell = TaskShell;
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1zaGVsbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90YXNrLXNoZWxsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE1BQWEsU0FBUztJQTREaUI7O0lBM0RyQzs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLE1BQU07UUFDbEIsT0FBTyxJQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0ksTUFBTSxDQUFDLE1BQU07UUFDbEIsT0FBTyxJQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsSUFBSTtRQUNoQixPQUFPLElBQUksU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLEVBQUU7UUFDZCxPQUFPLElBQUksU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7T0FZRztJQUNJLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBaUI7UUFDckMsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3pCLE1BQU0sSUFBSSxLQUFLLENBQ2IseURBQXlELENBQzFELENBQUM7UUFDSixDQUFDO1FBQ0QsT0FBTyxJQUFJLFNBQVMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsWUFBcUMsS0FBd0I7UUFBeEIsVUFBSyxHQUFMLEtBQUssQ0FBbUI7SUFBRyxDQUFDO0lBRWpFOzs7Ozs7T0FNRztJQUNJLE9BQU87UUFDWixPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ2xFLENBQUM7O0FBdkVILDhCQXdFQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIHNoZWxsIHVzZWQgdG8gcnVuIGEgdGFzaydzIGNvbW1hbmRzIC0gaW5jbHVkaW5nIGl0cyBgY29uZGl0aW9uYCBhbmQgYW55XG4gKiBgJCguLi4pYCBlbnZpcm9ubWVudC12YXJpYWJsZSBldmFsdWF0aW9uLlxuICpcbiAqIENob29zZSBvbmUgb2YgdGhlIGJ1aWx0LWluIHNoZWxscywgb3IgcHJvdmlkZSBhbiBleHBsaWNpdCBzaGVsbCBpbnZvY2F0aW9uOlxuICpcbiAqIC0ge0BsaW5rIFRhc2tTaGVsbC5wcm9qZW59ICh0aGUgZGVmYXVsdCkgLSB0aGUgYnVpbHQtaW4gY3Jvc3MtcGxhdGZvcm0gc2hlbGwuXG4gKiAtIHtAbGluayBUYXNrU2hlbGwuc3lzdGVtfSAtIHRoZSBvcGVyYXRpbmcgc3lzdGVtJ3MgbmF0aXZlIHNoZWxsLlxuICogLSB7QGxpbmsgVGFza1NoZWxsLmJhc2h9IC8ge0BsaW5rIFRhc2tTaGVsbC5zaH0gLSBjb21tb24gUE9TSVggc2hlbGxzLlxuICogLSB7QGxpbmsgVGFza1NoZWxsLmNvbW1hbmR9IC0gYW4gYXJiaXRyYXJ5IHNoZWxsIGludm9jYXRpb24gZ2l2ZW4gYXMgYW5cbiAqICAgZXhwbGljaXQgYXJndW1lbnQgbGlzdCwgZS5nLiBgVGFza1NoZWxsLmNvbW1hbmQoW1wibnB4XCIsIFwiLWNcIl0pYC5cbiAqXG4gKiBBIGBzaGVsbGAgY2FuIGJlIHNldCBhdCB0aGUgcHJvamVjdCAodGFza3MpLCB0YXNrIGFuZCBzdGVwIGxldmVsLCBhbmQgdGhlXG4gKiBuZWFyZXN0IGRlY2xhcmVkIGxldmVsIHdpbnMgKGl0IGlzIGEgc2NhbGFyIG92ZXJyaWRlLCBub3QgbWVyZ2VkKS5cbiAqL1xuZXhwb3J0IGNsYXNzIFRhc2tTaGVsbCB7XG4gIC8qKlxuICAgKiBUaGUgYnVpbHQtaW4gY3Jvc3MtcGxhdGZvcm0gc2hlbGwgKHRoZSBkZWZhdWx0KS4gSXQgaW50ZXJwcmV0cyBQT1NJWC1zdHlsZVxuICAgKiB0YXNrIHN5bnRheCAoYG1rZGlyIC1wYCwgYCYmYCwgYCRWQVJgLCAuLi4pIGlkZW50aWNhbGx5IG9uIGV2ZXJ5IHBsYXRmb3JtLFxuICAgKiBpbmNsdWRpbmcgV2luZG93cy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcHJvamVuKCk6IFRhc2tTaGVsbCB7XG4gICAgcmV0dXJuIG5ldyBUYXNrU2hlbGwoXCJwcm9qZW5cIik7XG4gIH1cblxuICAvKipcbiAgICogVGhlIG9wZXJhdGluZyBzeXN0ZW0ncyBuYXRpdmUgc2hlbGwgKGAvYmluL3NoYCBvbiBQT1NJWCwgYGNtZC5leGVgIG9uXG4gICAqIFdpbmRvd3MpLlxuICAgKlxuICAgKiBVc2UgdGhpcyB0byBvcHQgb3V0IG9mIHRoZSBjcm9zcy1wbGF0Zm9ybSBzaGVsbCBhbmQgcnVuIGNvbW1hbmRzIHRocm91Z2hcbiAgICogd2hhdGV2ZXIgc2hlbGwgdGhlIGhvc3QgcHJvdmlkZXMuXG4gICAqXG4gICAqIFN0ZXBzIGdpdmVuIGFzIGFuIGFyZ3YgKGBleGVjQXJnc2ApIGFyZSBzcGF3bmVkIHdpdGhvdXQgYSBzaGVsbCwgc28gb25cbiAgICogV2luZG93cyB0aGV5IGNhbm5vdCBydW4gYC5jbWRgL2AuYmF0YCBzaGltcyBzdWNoIGFzIG5wbS1pbnN0YWxsZWQgQ0xJcy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgc3lzdGVtKCk6IFRhc2tTaGVsbCB7XG4gICAgcmV0dXJuIG5ldyBUYXNrU2hlbGwoXCJzeXN0ZW1cIik7XG4gIH1cblxuICAvKipcbiAgICogUnVucyBjb21tYW5kcyB0aHJvdWdoIGBiYXNoIC1jYC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgYmFzaCgpOiBUYXNrU2hlbGwge1xuICAgIHJldHVybiBuZXcgVGFza1NoZWxsKFtcImJhc2hcIiwgXCItY1wiXSk7XG4gIH1cblxuICAvKipcbiAgICogUnVucyBjb21tYW5kcyB0aHJvdWdoIGBzaCAtY2AuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHNoKCk6IFRhc2tTaGVsbCB7XG4gICAgcmV0dXJuIG5ldyBUYXNrU2hlbGwoW1wic2hcIiwgXCItY1wiXSk7XG4gIH1cblxuICAvKipcbiAgICogQW4gYXJiaXRyYXJ5IHNoZWxsIGludm9jYXRpb24sIGdpdmVuIGFzIGFuIGV4cGxpY2l0IGFyZ3VtZW50IGxpc3QuIFRoZSB0YXNrXG4gICAqIGNvbW1hbmQgaXMgYXBwZW5kZWQgYXMgdGhlIGZpbmFsIGFyZ3VtZW50LCBzbyB0aGUgaW52b2NhdGlvbiBtdXN0IGFjY2VwdFxuICAgKiB0aGUgY29tbWFuZCBhcyBpdHMgbGFzdCBhcmd1bWVudCAoZS5nLiBgYmFzaCAtY2AsIGBzaCAtY2AsIGBucHggLWNgLFxuICAgKiBgeWFybiBleGVjYCkuXG4gICAqXG4gICAqXG4gICAqIEBleGFtcGxlIFRhc2tTaGVsbC5jb21tYW5kKFtcImJhc2hcIiwgXCItY1wiXSk7XG4gICAqIEBleGFtcGxlIFRhc2tTaGVsbC5jb21tYW5kKFtcIm5weFwiLCBcIi1jXCJdKTtcbiAgICpcbiAgICogQHBhcmFtIGNvbW1hbmQgVGhlIHNoZWxsIHByb2dyYW0gZm9sbG93ZWQgYnkgaXRzIGFyZ3VtZW50cy4gTXVzdCBub3QgYmVcbiAgICogZW1wdHkuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGNvbW1hbmQoY29tbWFuZDogc3RyaW5nW10pOiBUYXNrU2hlbGwge1xuICAgIGlmIChjb21tYW5kLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIlRhc2tTaGVsbC5jb21tYW5kKCkgcmVxdWlyZXMgYXQgbGVhc3QgdGhlIHNoZWxsIHByb2dyYW1cIixcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgVGFza1NoZWxsKFsuLi5jb21tYW5kXSk7XG4gIH1cblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgdmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdKSB7fVxuXG4gIC8qKlxuICAgKiBSZW5kZXJzIHRoZSBzaGVsbCB0byBpdHMgYHRhc2tzLmpzb25gIHJlcHJlc2VudGF0aW9uOiBhIGJ1aWx0LWluIGtleXdvcmRcbiAgICogc3RyaW5nIChgXCJwcm9qZW5cImAgb3IgYFwic3lzdGVtXCJgKSBmb3IgdGhlIGJ1aWx0LWlucywgb3IgYW4gZXhwbGljaXRcbiAgICogYXJndW1lbnQgbGlzdCBmb3IgYSBjdXN0b20gc2hlbGwgaW52b2NhdGlvbi5cbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgX3JlbmRlcigpOiBzdHJpbmcgfCBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodGhpcy52YWx1ZSkgPyBbLi4udGhpcy52YWx1ZV0gOiB0aGlzLnZhbHVlO1xuICB9XG59XG4iXX0=
|
package/lib/task.d.ts
CHANGED
|
@@ -4,6 +4,10 @@ export interface TaskOptions extends TaskCommonOptions {
|
|
|
4
4
|
/**
|
|
5
5
|
* Shell command to execute as the first command of the task.
|
|
6
6
|
*
|
|
7
|
+
* A single shell string, so only pass trusted input: an interpolated value is
|
|
8
|
+
* interpreted by the shell too. Use `execArgs` for arguments you did not write
|
|
9
|
+
* literally.
|
|
10
|
+
*
|
|
7
11
|
* Mutually exclusive with `execArgs`.
|
|
8
12
|
*
|
|
9
13
|
* @default - add steps using `task.exec(command)` or `task.spawn(subtask)`
|
package/lib/task.js
CHANGED
|
@@ -8,7 +8,7 @@ const logging_1 = require("./logging");
|
|
|
8
8
|
* commands and subtasks.
|
|
9
9
|
*/
|
|
10
10
|
class Task {
|
|
11
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.Task", version: "0.
|
|
11
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.Task", version: "0.103.1" };
|
|
12
12
|
/**
|
|
13
13
|
* Task name.
|
|
14
14
|
*/
|
|
@@ -392,4 +392,4 @@ class Task {
|
|
|
392
392
|
}
|
|
393
393
|
}
|
|
394
394
|
exports.Task = Task;
|
|
395
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90YXNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSx1Q0FBaUM7QUF5RGpDOzs7R0FHRztBQUNILE1BQWEsSUFBSTs7SUFDZjs7T0FFRztJQUNhLElBQUksQ0FBUztJQUVaLFdBQVcsQ0FBVztJQUN0QixNQUFNLENBQWE7SUFDbkIsSUFBSSxDQUE2QjtJQUMxQyxJQUFJLENBQXNCO0lBQzFCLE1BQU0sQ0FBeUI7SUFFdEIsV0FBVyxDQUFZO0lBQ2hDLE9BQU8sQ0FBVTtJQUNqQixZQUFZLENBQVU7SUFFOUIsWUFBWSxJQUFZLEVBQUUsUUFBcUIsRUFBRTtRQUMvQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUM7UUFDdEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzVELElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQztRQUN0QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDckIsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQztRQUU1QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQztRQUVyQyxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzlCLE1BQU0sSUFBSSxLQUFLLENBQUMsb0NBQW9DLENBQUMs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SSxDQUFDLElBQUksa0VBQWtFLENBQ3JILENBQUM7SUFDSixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssWUFBWSxDQUFDLElBQVksRUFBRSxLQUFVO1FBQzNDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNyRCxJQUFBLGNBQUksRUFDRixzREFBc0QsSUFBSSw4QkFBOEIsQ0FDekYsQ0FBQztZQUNGLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO0lBQ0gsQ0FBQzs7QUExY0gsb0JBMmNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgd2FybiB9IGZyb20gXCIuL2xvZ2dpbmdcIjtcbmltcG9ydCB0eXBlIHtcbiAgVGFza0NvbW1vbk9wdGlvbnMsXG4gIFRhc2tTcGVjLFxuICBUYXNrU3RlcCxcbiAgVGFza1N0ZXBPcHRpb25zLFxufSBmcm9tIFwiLi90YXNrLW1vZGVsXCI7XG5pbXBvcnQgdHlwZSB7IFRhc2tTaGVsbCB9IGZyb20gXCIuL3Rhc2stc2hlbGxcIjtcblxuZXhwb3J0IGludGVyZmFjZSBUYXNrT3B0aW9ucyBleHRlbmRzIFRhc2tDb21tb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIFNoZWxsIGNvbW1hbmQgdG8gZXhlY3V0ZSBhcyB0aGUgZmlyc3QgY29tbWFuZCBvZiB0aGUgdGFzay5cbiAgICpcbiAgICogTXV0dWFsbHkgZXhjbHVzaXZlIHdpdGggYGV4ZWNBcmdzYC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBhZGQgc3RlcHMgdXNpbmcgYHRhc2suZXhlYyhjb21tYW5kKWAgb3IgYHRhc2suc3Bhd24oc3VidGFzaylgXG4gICAqL1xuICByZWFkb25seSBleGVjPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTaGVsbCBjb21tYW5kIHRvIGV4ZWN1dGUgYXMgdGhlIGZpcnN0IGNvbW1hbmQgb2YgdGhlIHRhc2ssIHByb3ZpZGVkIGFzIGFcbiAgICogbGlzdCBvZiB0aGUgcHJvZ3JhbSBmb2xsb3dlZCBieSBpdHMgYXJndW1lbnRzIChhbiBcImFyZ3ZcIikuXG4gICAqXG4gICAqIEEgY29udmVuaWVudCBhbHRlcm5hdGl2ZSB0byBgZXhlY2A6IGFyZ3VtZW50cyB3aXRoIHNwYWNlcyBvciBzcGVjaWFsXG4gICAqIGNoYXJhY3RlcnMgYXJlIHBhc3NlZCB0aHJvdWdoIGFzLWlzLCB3aXRoIG5vIHF1b3RpbmcgbmVlZGVkLiBUaGUgZWxlbWVudHNcbiAgICogYXJlIG5vdCBydW4gdGhyb3VnaCBhIHNoZWxsLCBzbyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgKGAkRk9PYCkgYXJlIG5vdFxuICAgKiBleHBhbmRlZCBhbmQgb3RoZXIgc2hlbGwgZmVhdHVyZXMgYXJlIHVuYXZhaWxhYmxlLlxuICAgKiBAc2VlIFRhc2tTdGVwLmV4ZWNBcmdzXG4gICAqXG4gICAqIE11dHVhbGx5IGV4Y2x1c2l2ZSB3aXRoIGBleGVjYC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBhZGQgc3RlcHMgdXNpbmcgYHRhc2suZXhlY0FyZ3MoYXJncylgLCBgdGFzay5leGVjKGNvbW1hbmQpYCBvciBgdGFzay5zcGF3bihzdWJ0YXNrKWBcbiAgICovXG4gIHJlYWRvbmx5IGV4ZWNBcmdzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIExpc3Qgb2YgdGFzayBzdGVwcyB0byBydW4uXG4gICAqL1xuICByZWFkb25seSBzdGVwcz86IFRhc2tTdGVwW107XG5cbiAgLyoqXG4gICAqIFNob3VsZCB0aGUgcHJvdmlkZWQgYGV4ZWNgIHNoZWxsIGNvbW1hbmQgcmVjZWl2ZSBhcmdzIHBhc3NlZCB0byB0aGUgdGFzay5cbiAgICogQHNlZSB7QGxpbmsgVGFza1N0ZXBPcHRpb25zLnJlY2VpdmVBcmdzfVxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVjZWl2ZUFyZ3M/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBTaG91bGQgdGhlIHByb3ZpZGVkIGBleGVjYCBzaGVsbCBjb21tYW5kIHJlY2VpdmUgZml4ZWQgYXJncy5cbiAgICogQHNlZSB7QGxpbmsgVGFza1N0ZXBPcHRpb25zLmFyZ3N9XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gYXJndW1lbnRzIGFyZSBwYXNzZWQgdG8gdGhlIHN0ZXBcbiAgICovXG4gIHJlYWRvbmx5IGFyZ3M/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBBIHRhc2sgdGhhdCBjYW4gYmUgcGVyZm9ybWVkIG9uIHRoZSBwcm9qZWN0LiBNb2RlbGVkIGFzIGEgc2VyaWVzIG9mIHNoZWxsXG4gKiBjb21tYW5kcyBhbmQgc3VidGFza3MuXG4gKi9cbmV4cG9ydCBjbGFzcyBUYXNrIHtcbiAgLyoqXG4gICAqIFRhc2sgbmFtZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfY29uZGl0aW9uczogc3RyaW5nW107XG4gIHByaXZhdGUgcmVhZG9ubHkgX3N0ZXBzOiBUYXNrU3RlcFtdO1xuICBwcml2YXRlIHJlYWRvbmx5IF9lbnY6IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB9O1xuICBwcml2YXRlIF9jd2Q/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgX3NoZWxsPzogVGFza1NoZWxsIHwgdW5kZWZpbmVkO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcmVxdWlyZWRFbnY/OiBzdHJpbmdbXTtcbiAgcHJpdmF0ZSBfbG9ja2VkOiBib29sZWFuO1xuICBwcml2YXRlIF9kZXNjcmlwdGlvbj86IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihuYW1lOiBzdHJpbmcsIHByb3BzOiBUYXNrT3B0aW9ucyA9IHt9KSB7XG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICB0aGlzLl9kZXNjcmlwdGlvbiA9IHByb3BzLmRlc2NyaXB0aW9uO1xuICAgIHRoaXMuX2NvbmRpdGlvbnMgPSBwcm9wcy5jb25kaXRpb24gPyBbcHJvcHMuY29uZGl0aW9uXSA6IFtdO1xuICAgIHRoaXMuX2N3ZCA9IHByb3BzLmN3ZDtcbiAgICB0aGlzLl9zaGVsbCA9IHByb3BzLnNoZWxsO1xuICAgIHRoaXMuX2xvY2tlZCA9IGZhbHNlO1xuICAgIHRoaXMuX2VudiA9IHByb3BzLmVudiA/PyB7fTtcblxuICAgIHRoaXMuX3N0ZXBzID0gcHJvcHMuc3RlcHMgPz8gW107XG4gICAgdGhpcy5yZXF1aXJlZEVudiA9IHByb3BzLnJlcXVpcmVkRW52O1xuXG4gICAgaWYgKHByb3BzLmV4ZWMgJiYgcHJvcHMuc3RlcHMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcImNhbm5vdCBzcGVjaWZ5IGJvdGggZXhlYyBhbmQgc3RlcHNcIik7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLmV4ZWNBcmdzICYmIHByb3BzLnN0ZXBzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJjYW5ub3Qgc3BlY2lmeSBib3RoIGV4ZWNBcmdzIGFuZCBzdGVwc1wiKTtcbiAgICB9XG5cbiAgICBpZiAocHJvcHMuZXhlYyAmJiBwcm9wcy5leGVjQXJncykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiY2Fubm90IHNwZWNpZnkgYm90aCBleGVjIGFuZCBleGVjQXJnc1wiKTtcbiAgICB9XG5cbiAgICBpZiAocHJvcHMuZXhlYykge1xuICAgICAgdGhpcy5leGVjKHByb3BzLmV4ZWMsIHsgcmVjZWl2ZUFyZ3M6IHByb3BzLnJlY2VpdmVBcmdzIH0pO1xuICAgIH1cblxuICAgIGlmIChwcm9wcy5leGVjQXJncykge1xuICAgICAgdGhpcy5leGVjQXJncyhwcm9wcy5leGVjQXJncywgeyByZWNlaXZlQXJnczogcHJvcHMucmVjZWl2ZUFyZ3MgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEZvcmJpZCBhZGRpdGlvbmFsIGNoYW5nZXMgdG8gdGhpcyB0YXNrLlxuICAgKi9cbiAgcHVibGljIGxvY2soKSB7XG4gICAgdGhpcy5fbG9ja2VkID0gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSB3b3JraW5nIGRpcmVjdG9yeSBmb3IgdGhpcyB0YXNrLlxuICAgKi9cbiAgcHVibGljIGdldCBjd2QoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fY3dkO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHdvcmtpbmcgZGlyZWN0b3J5IGZvciB0aGlzIHRhc2suXG4gICAqL1xuICBwdWJsaWMgc2V0IGN3ZChjd2Q6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX2N3ZCA9IGN3ZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgc2hlbGwgdXNlZCB0byBydW4gdGhpcyB0YXNrJ3MgY29tbWFuZHMsIG9yIGB1bmRlZmluZWRgIHdoZW4gaW5oZXJpdGluZ1xuICAgKiB0aGUgYnVpbHQtaW4gZGVmYXVsdCBzaGVsbC5cbiAgICogQHNlZSB7QGxpbmsgVGFza0NvbW1vbk9wdGlvbnMuc2hlbGx9XG4gICAqL1xuICBwdWJsaWMgZ2V0IHNoZWxsKCk6IFRhc2tTaGVsbCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX3NoZWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHNoZWxsIHVzZWQgdG8gcnVuIHRoaXMgdGFzaydzIGNvbW1hbmRzLlxuICAgKi9cbiAgcHVibGljIHNldCBzaGVsbChzaGVsbDogVGFza1NoZWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fc2hlbGwgPSBzaGVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBkZXNjcmlwdGlvbiBvZiB0aGlzIHRhc2suXG4gICAqL1xuICBwdWJsaWMgZ2V0IGRlc2NyaXB0aW9uKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2Rlc2NyaXB0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGRlc2NyaXB0aW9uIG9mIHRoaXMgdGFzay5cbiAgICovXG4gIHB1YmxpYyBzZXQgZGVzY3JpcHRpb24oZGVzYzogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fZGVzY3JpcHRpb24gPSBkZXNjO1xuICB9XG5cbiAgLyoqXG4gICAqIEEgY29tbWFuZCB0byBleGVjdXRlIHdoaWNoIGRldGVybWluZXMgaWYgdGhlIHRhc2sgc2hvdWxkIGJlIHNraXBwZWQuIElmIGl0XG4gICAqIHJldHVybnMgYSB6ZXJvIGV4aXQgY29kZSwgdGhlIHRhc2sgd2lsbCBub3QgYmUgZXhlY3V0ZWQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGNvbmRpdGlvbigpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGlmICh0aGlzLl9jb25kaXRpb25zPy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiB0aGlzLl9jb25kaXRpb25zLmpvaW4oXCIgJiYgXCIpO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIGNvbW1hbmQgdG8gZXhlY3V0ZSB3aGljaCBkZXRlcm1pbmVzIGlmIHRoZSB0YXNrIHNob3VsZCBiZSBza2lwcGVkLlxuICAgKlxuICAgKiBJZiBhIGNvbmRpdGlvbiBhbHJlYWR5IGV4aXN0cywgdGhlIG5ldyBjb25kaXRpb24gd2lsbCBiZSBhcHBlbmRlZCB3aXRoIGAgJiYgYCBkZWxpbWl0ZXIuXG4gICAqIEBwYXJhbSBjb25kaXRpb24gVGhlIGNvbW1hbmQgdG8gZXhlY3V0ZS5cbiAgICogQHNlZSB7QGxpbmsgVGFzay5jb25kaXRpb259XG4gICAqL1xuICBwdWJsaWMgYWRkQ29uZGl0aW9uKC4uLmNvbmRpdGlvbjogc3RyaW5nW10pOiB2b2lkIHtcbiAgICB0aGlzLl9jb25kaXRpb25zLnB1c2goLi4uY29uZGl0aW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldCB0aGUgdGFzayBzbyBpdCBubyBsb25nZXIgaGFzIGFueSBjb21tYW5kcy5cbiAgICogQHBhcmFtIGNvbW1hbmQgdGhlIGZpcnN0IGNvbW1hbmQgdG8gYWRkIHRvIHRoZSB0YXNrIGFmdGVyIGl0IHdhcyBjbGVhcmVkLlxuICAgKi9cbiAgcHVibGljIHJlc2V0KGNvbW1hbmQ/OiBzdHJpbmcsIG9wdGlvbnM6IFRhc2tTdGVwT3B0aW9ucyA9IHt9KSB7XG4gICAgdGhpcy5hc3NlcnRVbmxvY2tlZCgpO1xuXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHRoaXMuX3N0ZXBzKSkge1xuICAgICAgdGhpcy53YXJuRm9yTGF6eVZhbHVlKFwicmVzZXRcIik7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgd2hpbGUgKHRoaXMuX3N0ZXBzLmxlbmd0aCkge1xuICAgICAgdGhpcy5fc3RlcHMuc2hpZnQoKTtcbiAgICB9XG5cbiAgICBpZiAoY29tbWFuZCkge1xuICAgICAgdGhpcy5leGVjKGNvbW1hbmQsIG9wdGlvbnMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIHN0ZXBzIHRvIHRoaXMgdGFzay4gVGhpcyBpcyBhIGdlbmVyaWMgbWV0aG9kIHRoYXQgYWNjZXB0cyBhbnlcbiAgICogdGFzayBzdGVwIChleGVjLCBzcGF3biwgc2F5LCBidWlsdGluKS5cbiAgICpcbiAgICogQHBhcmFtIHN0ZXBzIFRoZSBzdGVwcyB0byBhZGQuXG4gICAqL1xuICBwdWJsaWMgYWRkU3RlcHMoLi4uc3RlcHM6IFRhc2tTdGVwW10pIHtcbiAgICB0aGlzLl9wdXNoU3RlcHMoXCJhZGRTdGVwc1wiLCBzdGVwcyk7XG4gIH1cblxuICAvKipcbiAgICogRXhlY3V0ZXMgYSBzaGVsbCBjb21tYW5kXG4gICAqIEBwYXJhbSBjb21tYW5kIFNoZWxsIGNvbW1hbmRcbiAgICogQHBhcmFtIG9wdGlvbnMgT3B0aW9uc1xuICAgKi9cbiAgcHVibGljIGV4ZWMoY29tbWFuZDogc3RyaW5nLCBvcHRpb25zOiBUYXNrU3RlcE9wdGlvbnMgPSB7fSkge1xuICAgIHRoaXMuX3B1c2hTdGVwcyhcImV4ZWNcIiwgW3RoaXMucmVuZGVyU3RlcCh7IGV4ZWM6IGNvbW1hbmQsIC4uLm9wdGlvbnMgfSldKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeGVjdXRlcyBhIGNvbW1hbmQgcHJvdmlkZWQgYXMgYSBsaXN0IG9mIHRoZSBwcm9ncmFtIGZvbGxvd2VkIGJ5IGl0c1xuICAgKiBhcmd1bWVudHMgKGFuIFwiYXJndlwiKS5cbiAgICpcbiAgICogQSBjb252ZW5pZW50IGFsdGVybmF0aXZlIHRvIGBUYXNrLmV4ZWNgOiBhcmd1bWVudHMgd2l0aCBzcGFjZXMgb3JcbiAgICogc3BlY2lhbCBjaGFyYWN0ZXJzIGFyZSBwYXNzZWQgdGhyb3VnaCBhcy1pcywgd2l0aCBubyBxdW90aW5nIG5lZWRlZC4gVGhlXG4gICAqIGVsZW1lbnRzIGFyZSBub3QgcnVuIHRocm91Z2ggYSBzaGVsbCwgc28gZW52aXJvbm1lbnQgdmFyaWFibGVzIChgJEZPT2ApIGFyZVxuICAgKiBub3QgZXhwYW5kZWQgYW5kIG90aGVyIHNoZWxsIGZlYXR1cmVzIGFyZSB1bmF2YWlsYWJsZS5cbiAgICpcbiAgICogQGV4YW1wbGUgdGFzay5leGVjQXJncyhbXCJlY2hvXCIsIFwiaGVsbG8gd29ybGRcIl0pO1xuICAgKlxuICAgKiBAcGFyYW0gY29tbWFuZCBUaGUgcHJvZ3JhbSBmb2xsb3dlZCBieSBpdHMgYXJndW1lbnRzLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25zXG4gICAqL1xuICBwdWJsaWMgZXhlY0FyZ3MoY29tbWFuZDogc3RyaW5nW10sIG9wdGlvbnM6IFRhc2tTdGVwT3B0aW9ucyA9IHt9KSB7XG4gICAgdGhpcy5fcHVzaFN0ZXBzKFwiZXhlY0FyZ3NcIiwgW1xuICAgICAgdGhpcy5yZW5kZXJTdGVwKHsgZXhlY0FyZ3M6IGNvbW1hbmQsIC4uLm9wdGlvbnMgfSksXG4gICAgXSk7XG4gIH1cblxuICAvKipcbiAgICogRXhlY3V0ZSBhIGJ1aWx0aW4gdGFzay5cbiAgICpcbiAgICogQnVpbHRpbiB0YXNrcyBhcmUgcHJvZ3JhbXMgYnVuZGxlZCBhcyBwYXJ0IG9mIHByb2plbiBpdHNlbGYgYW5kIHVzZWQgYXNcbiAgICogaGVscGVycyBmb3IgdmFyaW91cyBjb21wb25lbnRzLlxuICAgKlxuICAgKiBJbiB0aGUgZnV0dXJlIHdlIHNob3VsZCBzdXBwb3J0IGJ1aWx0LWluIHRhc2tzIGZyb20gZXh0ZXJuYWwgbW9kdWxlcy5cbiAgICpcbiAgICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIGJ1aWx0aW4gdGFzayB0byBleGVjdXRlIChlLmcuXG4gICAqIGByZWxlYXNlL3Jlc29sdmUtdmVyc2lvbmApLlxuICAgKi9cbiAgcHVibGljIGJ1aWx0aW4obmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fcHVzaFN0ZXBzKFwiYnVpbHRpblwiLCBbeyBidWlsdGluOiBuYW1lIH1dKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTYXkgc29tZXRoaW5nLlxuICAgKiBAcGFyYW0gbWVzc2FnZSBZb3VyIG1lc3NhZ2VcbiAgICogQHBhcmFtIG9wdGlvbnMgT3B0aW9uc1xuICAgKi9cbiAgcHVibGljIHNheShtZXNzYWdlOiBzdHJpbmcsIG9wdGlvbnM6IFRhc2tTdGVwT3B0aW9ucyA9IHt9KSB7XG4gICAgdGhpcy5fcHVzaFN0ZXBzKFwic2F5XCIsIFt0aGlzLnJlbmRlclN0ZXAoeyBzYXk6IG1lc3NhZ2UsIC4uLm9wdGlvbnMgfSldKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTcGF3bnMgYSBzdWItdGFzay5cbiAgICogQHBhcmFtIHN1YnRhc2sgVGhlIHN1YnRhc2sgdG8gZXhlY3V0ZS5cbiAgICovXG4gIHB1YmxpYyBzcGF3bihzdWJ0YXNrOiBUYXNrLCBvcHRpb25zOiBUYXNrU3RlcE9wdGlvbnMgPSB7fSkge1xuICAgIHRoaXMuX3B1c2hTdGVwcyhcInNwYXduXCIsIFtcbiAgICAgIHRoaXMucmVuZGVyU3RlcCh7IHNwYXduOiBzdWJ0YXNrLm5hbWUsIC4uLm9wdGlvbnMgfSksXG4gICAgXSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBzdGVwcyBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoaXMgdGFzay5cbiAgICpcbiAgICogQHBhcmFtIHN0ZXBzIFRoZSBzdGVwcyB0byBhZGQuXG4gICAqL1xuICBwdWJsaWMgcHJlcGVuZFN0ZXBzKC4uLnN0ZXBzOiBUYXNrU3RlcFtdKSB7XG4gICAgdGhpcy5fdW5zaGlmdFN0ZXBzKFwicHJlcGVuZFN0ZXBzXCIsIHN0ZXBzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgY29tbWFuZCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0YXNrLlxuICAgKiBAcGFyYW0gY29tbWFuZCBUaGUgY29tbWFuZCB0byBhZGQuXG4gICAqL1xuICBwdWJsaWMgcHJlcGVuZEV4ZWMoY29tbWFuZDogc3RyaW5nLCBvcHRpb25zOiBUYXNrU3RlcE9wdGlvbnMgPSB7fSkge1xuICAgIHRoaXMuX3Vuc2hpZnRTdGVwcyhcInByZXBlbmRFeGVjXCIsIFtcbiAgICAgIHRoaXMucmVuZGVyU3RlcCh7IGV4ZWM6IGNvbW1hbmQsIC4uLm9wdGlvbnMgfSksXG4gICAgXSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHNwYXduIGluc3RydWN0aW9uIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRhc2suXG4gICAqIEBwYXJhbSBzdWJ0YXNrIFRoZSBzdWJ0YXNrIHRvIGV4ZWN1dGUuXG4gICAqL1xuICBwdWJsaWMgcHJlcGVuZFNwYXduKHN1YnRhc2s6IFRhc2ssIG9wdGlvbnM6IFRhc2tTdGVwT3B0aW9ucyA9IHt9KSB7XG4gICAgdGhpcy5fdW5zaGlmdFN0ZXBzKFwicHJlcGVuZFNwYXduXCIsIFtcbiAgICAgIHRoaXMucmVuZGVyU3RlcCh7IHNwYXduOiBzdWJ0YXNrLm5hbWUsIC4uLm9wdGlvbnMgfSksXG4gICAgXSk7XG4gIH1cblxuICAvKipcbiAgICogU2F5cyBzb21ldGhpbmcgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgdGFzay5cbiAgICogQHBhcmFtIG1lc3NhZ2UgWW91ciBtZXNzYWdlXG4gICAqL1xuICBwdWJsaWMgcHJlcGVuZFNheShtZXNzYWdlOiBzdHJpbmcsIG9wdGlvbnM6IFRhc2tTdGVwT3B0aW9ucyA9IHt9KSB7XG4gICAgdGhpcy5fdW5zaGlmdFN0ZXBzKFwicHJlcGVuZFNheVwiLCBbXG4gICAgICB0aGlzLnJlbmRlclN0ZXAoeyBzYXk6IG1lc3NhZ2UsIC4uLm9wdGlvbnMgfSksXG4gICAgXSk7XG4gIH1cblxuICAvKipcbiAgICogUmVuZGVycyBzdGVwIG9wdGlvbnMgKHdpdGggYSB7QGxpbmsgVGFza1NoZWxsfSkgdG8gdGhlIG1hbmlmZXN0XG4gICAqIHtAbGluayBUYXNrU3RlcH0gZm9ybSwgd2hlcmUgYHNoZWxsYCBpcyBpdHMgYHN0cmluZyB8IHN0cmluZ1tdYCByZW5kZXJpbmcuXG4gICAqL1xuICBwcml2YXRlIHJlbmRlclN0ZXAoXG4gICAgc3RlcDogeyByZWFkb25seSBzaGVsbD86IFRhc2tTaGVsbCB9ICYgT21pdDxUYXNrU3RlcCwgXCJzaGVsbFwiPixcbiAgKTogVGFza1N0ZXAge1xuICAgIGNvbnN0IHsgc2hlbGwsIC4uLnJlc3QgfSA9IHN0ZXA7XG4gICAgcmV0dXJuIHNoZWxsID8geyAuLi5yZXN0LCBzaGVsbDogc2hlbGwuX3JlbmRlcigpIH0gOiByZXN0O1xuICB9XG5cbiAgcHJpdmF0ZSBfcHVzaFN0ZXBzKG1ldGhvZDogc3RyaW5nLCBzdGVwczogVGFza1N0ZXBbXSkge1xuICAgIHRoaXMuYXNzZXJ0VW5sb2NrZWQoKTtcblxuICAgIGlmICghQXJyYXkuaXNBcnJheSh0aGlzLl9zdGVwcykpIHtcbiAgICAgIHRoaXMud2FybkZvckxhenlWYWx1ZShgJHttZXRob2R9IHRvYCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fc3RlcHMucHVzaCguLi5zdGVwcyk7XG4gIH1cblxuICBwcml2YXRlIF91bnNoaWZ0U3RlcHMobWV0aG9kOiBzdHJpbmcsIHN0ZXBzOiBUYXNrU3RlcFtdKSB7XG4gICAgdGhpcy5hc3NlcnRVbmxvY2tlZCgpO1xuXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHRoaXMuX3N0ZXBzKSkge1xuICAgICAgdGhpcy53YXJuRm9yTGF6eVZhbHVlKGAke21ldGhvZH0gdG9gKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9zdGVwcy51bnNoaWZ0KC4uLnN0ZXBzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGFuIGVudmlyb25tZW50IHZhcmlhYmxlIHRvIHRoaXMgdGFzay5cbiAgICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIHZhcmlhYmxlXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUuIElmIHRoZSB2YWx1ZSBpcyBzdXJyb3VuZGVkIGJ5IGAkKClgLCB3ZSB3aWxsXG4gICAqIGV2YWx1YXRlIGl0IHdpdGhpbiBhIHN1YnNoZWxsIGFuZCB1c2UgdGhlIHJlc3VsdCBhcyB0aGUgdmFsdWUgb2YgdGhlXG4gICAqIGVudmlyb25tZW50IHZhcmlhYmxlLlxuICAgKi9cbiAgcHVibGljIGVudihuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmFzc2VydFVubG9ja2VkKCk7XG4gICAgdGhpcy5fZW52W25hbWVdID0gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbGwgZW52aXJvbm1lbnQgdmFyaWFibGVzIGluIHRoZSB0YXNrIGxldmVsXG4gICAqL1xuICBwdWJsaWMgZ2V0IGVudlZhcnMoKTogUmVhZG9ubHk8eyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIH0+IHtcbiAgICByZXR1cm4gdGhpcy5fZW52O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gaW1tdXRhYmxlIGNvcHkgb2YgYWxsIHRoZSBzdGVwIHNwZWNpZmljYXRpb25zIG9mIHRoZSB0YXNrLlxuICAgKi9cbiAgcHVibGljIGdldCBzdGVwcygpOiBUYXNrU3RlcFtdIHtcbiAgICAvLyBJZiB0aGUgbGlzdCBvZiBzdGVwcyBpcyBhIExhenkgdmFsdWUsIHdlIGNhbid0IGtub3cgd2hhdCB0aGUgc3RlcHNcbiAgICAvLyBhcmUgdW50aWwgc3ludGhlc2lzIG9jY3Vycywgc28ganVzdCByZXR1cm4gYW4gZW1wdHkgYXJyYXkuXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHRoaXMuX3N0ZXBzKSkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgICByZXR1cm4gWy4uLnRoaXMuX3N0ZXBzXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnNlcnQgb25lIG9yIG1vcmUgc3RlcHMgYXQgYSBnaXZlbiBpbmRleFxuICAgKlxuICAgKiBAcGFyYW0gaW5kZXggU3RlcHMgd2lsbCBiZSBpbnNlcnRlZCBiZWZvcmUgdGhpcyBpbmRleC4gTWF5IGJlIG5lZ2F0aXZlIHRvXG4gICAqIGNvdW50IGJhY2t3YXJkcyBmcm9tIHRoZSBlbmQsIG9yIG1heSBiZSBgPT0gc3RlcHMoKS5sZW5ndGhgIHRvIGluc2VydCBhdCB0aGUgZW5kLlxuICAgKiBAcGFyYW0gc3RlcHMgVGhlIHN0ZXBzIHRvIGluc2VydFxuICAgKi9cbiAgcHVibGljIGluc2VydFN0ZXAoaW5kZXg6IG51bWJlciwgLi4uc3RlcHM6IFRhc2tTdGVwW10pOiB2b2lkIHtcbiAgICB0aGlzLmFzc2VydFVubG9ja2VkKCk7XG5cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodGhpcy5fc3RlcHMpKSB7XG4gICAgICB0aGlzLndhcm5Gb3JMYXp5VmFsdWUoXCJpbnNlcnQgc3RlcHMgaW50b1wiKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoaW5kZXggPCAtdGhpcy5fc3RlcHMubGVuZ3RoIHx8IGluZGV4ID4gdGhpcy5zdGVwcy5sZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYENhbm5vdCBpbnNlcnQgc3RlcHMgYXQgaW5kZXggJHtpbmRleH0gZm9yIHRhc2sgJHt0aGlzLm5hbWV9IGJlY2F1c2UgdGhlIGluZGV4IGlzIG91dCBvZiBib3VuZHMgZm9yIHNpemUgJHt0aGlzLnN0ZXBzLmxlbmd0aH1gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLl9zdGVwcy5zcGxpY2UoaW5kZXgsIDAsIC4uLnN0ZXBzKTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gaW5kZXggVGhlIGluZGV4IG9mIHRoZSBzdGVwIHRvIGVkaXRcbiAgICogQHBhcmFtIHN0ZXAgVGhlIG5ldyBzdGVwIHRvIHJlcGxhY2UgdGhlIG9sZCBvbmUgZW50aXJlbHksIGl0IGlzIG5vdCBtZXJnZWQgd2l0aCB0aGUgb2xkIHN0ZXBcbiAgICovXG4gIHB1YmxpYyB1cGRhdGVTdGVwKGluZGV4OiBudW1iZXIsIHN0ZXA6IFRhc2tTdGVwKTogdm9pZCB7XG4gICAgdGhpcy5hc3NlcnRVbmxvY2tlZCgpO1xuXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHRoaXMuX3N0ZXBzKSkge1xuICAgICAgdGhpcy53YXJuRm9yTGF6eVZhbHVlKFwidXBkYXRlIHN0ZXAgZm9yXCIpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGV4aXN0aW5nU3RlcCA9IHRoaXMuX3N0ZXBzW2luZGV4XTtcbiAgICBpZiAoIWV4aXN0aW5nU3RlcCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQ2Fubm90IHVwZGF0ZSBzdGVwIGF0IGluZGV4ICR7aW5kZXh9IGZvciB0YXNrICR7dGhpcy5uYW1lfSBiZWNhdXNlIGl0IGRvZXMgbm90IGV4aXN0YCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5fc3RlcHNbaW5kZXhdID0gc3RlcDtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gaW5kZXggVGhlIGluZGV4IG9mIHRoZSBzdGVwIHRvIHJlbW92ZVxuICAgKi9cbiAgcHVibGljIHJlbW92ZVN0ZXAoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuYXNzZXJ0VW5sb2NrZWQoKTtcblxuICAgIGlmICghQXJyYXkuaXNBcnJheSh0aGlzLl9zdGVwcykpIHtcbiAgICAgIHRoaXMud2FybkZvckxhenlWYWx1ZShcInJlbW92ZSBzdGVwIGZyb21cIik7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZXhpc3RpbmdTdGVwID0gdGhpcy5fc3RlcHNbaW5kZXhdO1xuICAgIGlmICghZXhpc3RpbmdTdGVwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBDYW5ub3QgcmVtb3ZlIHN0ZXAgYXQgaW5kZXggJHtpbmRleH0gZm9yIHRhc2sgJHt0aGlzLm5hbWV9IGJlY2F1c2UgaXQgZG9lcyBub3QgZXhpc3RgLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLl9zdGVwcy5zcGxpY2UoaW5kZXgsIDEpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbmRlcnMgYSB0YXNrIHNwZWMgaW50byB0aGUgbWFuaWZlc3QuXG4gICAqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIF9yZW5kZXJTcGVjKCk6IFRhc2tTcGVjIHtcbiAgICAvLyBFbnN1cmUgdGFzay1sZXZlbCBlbnYgdmFycyBhcmUgc3RyaW5nc1xuICAgIGNvbnN0IGVudiA9IE9iamVjdC5rZXlzKHRoaXMuX2VudikucmVkdWNlKFxuICAgICAgKHByZXYsIGN1cnIpID0+ICh7XG4gICAgICAgIC4uLnByZXYsXG4gICAgICAgIFtjdXJyXTogdGhpcy5nZXRFbnZTdHJpbmcoY3VyciwgdGhpcy5fZW52W2N1cnJdKSxcbiAgICAgIH0pLFxuICAgICAge30sXG4gICAgKTtcblxuICAgIC8vIEVuc3VyZSBzdGVwLWxldmVsIGVudiB2YXJzIGFyZSBzdHJpbmdzXG4gICAgY29uc3Qgc3RlcHMgPSBBcnJheS5pc0FycmF5KHRoaXMuX3N0ZXBzKVxuICAgICAgPyBbLi4udGhpcy5fc3RlcHNdLm1hcCgocykgPT4ge1xuICAgICAgICAgIHJldHVybiBzLmVudlxuICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgLi4ucyxcbiAgICAgICAgICAgICAgICBlbnY6IE9iamVjdC5rZXlzKHMuZW52KS5yZWR1Y2UoXG4gICAgICAgICAgICAgICAgICAocHJldiwgY3VycikgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgLi4ucHJldixcbiAgICAgICAgICAgICAgICAgICAgW2N1cnJdOiB0aGlzLmdldEVudlN0cmluZyhjdXJyLCBzLmVudiFbY3Vycl0pLFxuICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICB7fSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA6IHM7XG4gICAgICAgIH0pXG4gICAgICA6IHRoaXMuX3N0ZXBzO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6IHRoaXMubmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLmRlc2NyaXB0aW9uLFxuICAgICAgZW52OiBlbnYsXG4gICAgICByZXF1aXJlZEVudjogdGhpcy5yZXF1aXJlZEVudixcbiAgICAgIHN0ZXBzOiBzdGVwcyxcbiAgICAgIGNvbmRpdGlvbjogdGhpcy5jb25kaXRpb24sXG4gICAgICBjd2Q6IHRoaXMuX2N3ZCxcbiAgICAgIHNoZWxsOiB0aGlzLl9zaGVsbD8uX3JlbmRlcigpLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGFzc2VydFVubG9ja2VkKCkge1xuICAgIGlmICh0aGlzLl9sb2NrZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVGFzayBcIiR7dGhpcy5uYW1lfVwiIGlzIGxvY2tlZCBmb3IgY2hhbmdlc2ApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgd2FybkZvckxhenlWYWx1ZShhY3Rpb25CZWluZ1VuZGVydGFrZW46IHN0cmluZyk6IHZvaWQge1xuICAgIHdhcm4oXG4gICAgICBgQ2Fubm90ICR7YWN0aW9uQmVpbmdVbmRlcnRha2VufSB0YXNrIFwiJHt0aGlzLm5hbWV9XCIgYmVjYXVzZSBpdCBpcyBhIGxhenkgdmFsdWUsIHRyeSB1c2luZyB0aGUgcHJlU3ludGhlc2l6ZSBwaGFzZS5gLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogRW5zdXJlIHRoYXQgZW52aXJvbm1lbnQgdmFyaWFibGVzIGFyZSBwZXJzaXN0ZWQgYXMgc3RyaW5nc1xuICAgKiB0byBwcmV2ZW50IHR5cGUgZXJyb3JzIHdoZW4gcGFyc2luZyBmcm9tIHRhc2tzLmpzb24gaW4gZnV0dXJlXG4gICAqL1xuICBwcml2YXRlIGdldEVudlN0cmluZyhuYW1lOiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSBcInN0cmluZ1wiICYmIHZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHdhcm4oXG4gICAgICAgIGBSZWNlaXZlZCBub24tc3RyaW5nIHZhbHVlIGZvciBlbnZpcm9ubWVudCB2YXJpYWJsZSAke25hbWV9LiBWYWx1ZSB3aWxsIGJlIHN0cmluZ2lmaWVkLmAsXG4gICAgICApO1xuICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
395
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90YXNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSx1Q0FBaUM7QUE2RGpDOzs7R0FHRztBQUNILE1BQWEsSUFBSTs7SUFDZjs7T0FFRztJQUNhLElBQUksQ0FBUztJQUVaLFdBQVcsQ0FBVztJQUN0QixNQUFNLENBQWE7SUFDbkIsSUFBSSxDQUE2QjtJQUMxQyxJQUFJLENBQXNCO0lBQzFCLE1BQU0sQ0FBeUI7SUFFdEIsV0FBVyxDQUFZO0lBQ2hDLE9BQU8sQ0FBVTtJQUNqQixZQUFZLENBQVU7SUFFOUIsWUFBWSxJQUFZLEVBQUUsUUFBcUIsRUFBRTtRQUMvQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUM7UUFDdEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzVELElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQztRQUN0QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDckIsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQztRQUU1QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQztRQUVyQyxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzlCLE1BQU0sSUFBSSxLQUFLLENBQUMsb0NBQW9DLENBQUMs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SSxDQUFDLElBQUksa0VBQWtFLENBQ3JILENBQUM7SUFDSixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssWUFBWSxDQUFDLElBQVksRUFBRSxLQUFVO1FBQzNDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNyRCxJQUFBLGNBQUksRUFDRixzREFBc0QsSUFBSSw4QkFBOEIsQ0FDekYsQ0FBQztZQUNGLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO0lBQ0gsQ0FBQzs7QUExY0gsb0JBMmNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgd2FybiB9IGZyb20gXCIuL2xvZ2dpbmdcIjtcbmltcG9ydCB0eXBlIHtcbiAgVGFza0NvbW1vbk9wdGlvbnMsXG4gIFRhc2tTcGVjLFxuICBUYXNrU3RlcCxcbiAgVGFza1N0ZXBPcHRpb25zLFxufSBmcm9tIFwiLi90YXNrLW1vZGVsXCI7XG5pbXBvcnQgdHlwZSB7IFRhc2tTaGVsbCB9IGZyb20gXCIuL3Rhc2stc2hlbGxcIjtcblxuZXhwb3J0IGludGVyZmFjZSBUYXNrT3B0aW9ucyBleHRlbmRzIFRhc2tDb21tb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIFNoZWxsIGNvbW1hbmQgdG8gZXhlY3V0ZSBhcyB0aGUgZmlyc3QgY29tbWFuZCBvZiB0aGUgdGFzay5cbiAgICpcbiAgICogQSBzaW5nbGUgc2hlbGwgc3RyaW5nLCBzbyBvbmx5IHBhc3MgdHJ1c3RlZCBpbnB1dDogYW4gaW50ZXJwb2xhdGVkIHZhbHVlIGlzXG4gICAqIGludGVycHJldGVkIGJ5IHRoZSBzaGVsbCB0b28uIFVzZSBgZXhlY0FyZ3NgIGZvciBhcmd1bWVudHMgeW91IGRpZCBub3Qgd3JpdGVcbiAgICogbGl0ZXJhbGx5LlxuICAgKlxuICAgKiBNdXR1YWxseSBleGNsdXNpdmUgd2l0aCBgZXhlY0FyZ3NgLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGFkZCBzdGVwcyB1c2luZyBgdGFzay5leGVjKGNvbW1hbmQpYCBvciBgdGFzay5zcGF3bihzdWJ0YXNrKWBcbiAgICovXG4gIHJlYWRvbmx5IGV4ZWM/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNoZWxsIGNvbW1hbmQgdG8gZXhlY3V0ZSBhcyB0aGUgZmlyc3QgY29tbWFuZCBvZiB0aGUgdGFzaywgcHJvdmlkZWQgYXMgYVxuICAgKiBsaXN0IG9mIHRoZSBwcm9ncmFtIGZvbGxvd2VkIGJ5IGl0cyBhcmd1bWVudHMgKGFuIFwiYXJndlwiKS5cbiAgICpcbiAgICogQSBjb252ZW5pZW50IGFsdGVybmF0aXZlIHRvIGBleGVjYDogYXJndW1lbnRzIHdpdGggc3BhY2VzIG9yIHNwZWNpYWxcbiAgICogY2hhcmFjdGVycyBhcmUgcGFzc2VkIHRocm91Z2ggYXMtaXMsIHdpdGggbm8gcXVvdGluZyBuZWVkZWQuIFRoZSBlbGVtZW50c1xuICAgKiBhcmUgbm90IHJ1biB0aHJvdWdoIGEgc2hlbGwsIHNvIGVudmlyb25tZW50IHZhcmlhYmxlcyAoYCRGT09gKSBhcmUgbm90XG4gICAqIGV4cGFuZGVkIGFuZCBvdGhlciBzaGVsbCBmZWF0dXJlcyBhcmUgdW5hdmFpbGFibGUuXG4gICAqIEBzZWUgVGFza1N0ZXAuZXhlY0FyZ3NcbiAgICpcbiAgICogTXV0dWFsbHkgZXhjbHVzaXZlIHdpdGggYGV4ZWNgLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGFkZCBzdGVwcyB1c2luZyBgdGFzay5leGVjQXJncyhhcmdzKWAsIGB0YXNrLmV4ZWMoY29tbWFuZClgIG9yIGB0YXNrLnNwYXduKHN1YnRhc2spYFxuICAgKi9cbiAgcmVhZG9ubHkgZXhlY0FyZ3M/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogTGlzdCBvZiB0YXNrIHN0ZXBzIHRvIHJ1bi5cbiAgICovXG4gIHJlYWRvbmx5IHN0ZXBzPzogVGFza1N0ZXBbXTtcblxuICAvKipcbiAgICogU2hvdWxkIHRoZSBwcm92aWRlZCBgZXhlY2Agc2hlbGwgY29tbWFuZCByZWNlaXZlIGFyZ3MgcGFzc2VkIHRvIHRoZSB0YXNrLlxuICAgKiBAc2VlIHtAbGluayBUYXNrU3RlcE9wdGlvbnMucmVjZWl2ZUFyZ3N9XG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSByZWNlaXZlQXJncz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNob3VsZCB0aGUgcHJvdmlkZWQgYGV4ZWNgIHNoZWxsIGNvbW1hbmQgcmVjZWl2ZSBmaXhlZCBhcmdzLlxuICAgKiBAc2VlIHtAbGluayBUYXNrU3RlcE9wdGlvbnMuYXJnc31cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBhcmd1bWVudHMgYXJlIHBhc3NlZCB0byB0aGUgc3RlcFxuICAgKi9cbiAgcmVhZG9ubHkgYXJncz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIEEgdGFzayB0aGF0IGNhbiBiZSBwZXJmb3JtZWQgb24gdGhlIHByb2plY3QuIE1vZGVsZWQgYXMgYSBzZXJpZXMgb2Ygc2hlbGxcbiAqIGNvbW1hbmRzIGFuZCBzdWJ0YXNrcy5cbiAqL1xuZXhwb3J0IGNsYXNzIFRhc2sge1xuICAvKipcbiAgICogVGFzayBuYW1lLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IF9jb25kaXRpb25zOiBzdHJpbmdbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBfc3RlcHM6IFRhc2tTdGVwW107XG4gIHByaXZhdGUgcmVhZG9ubHkgX2VudjogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIH07XG4gIHByaXZhdGUgX2N3ZD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBfc2hlbGw/OiBUYXNrU2hlbGwgfCB1bmRlZmluZWQ7XG5cbiAgcHJpdmF0ZSByZWFkb25seSByZXF1aXJlZEVudj86IHN0cmluZ1tdO1xuICBwcml2YXRlIF9sb2NrZWQ6IGJvb2xlYW47XG4gIHByaXZhdGUgX2Rlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKG5hbWU6IHN0cmluZywgcHJvcHM6IFRhc2tPcHRpb25zID0ge30pIHtcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICAgIHRoaXMuX2Rlc2NyaXB0aW9uID0gcHJvcHMuZGVzY3JpcHRpb247XG4gICAgdGhpcy5fY29uZGl0aW9ucyA9IHByb3BzLmNvbmRpdGlvbiA/IFtwcm9wcy5jb25kaXRpb25dIDogW107XG4gICAgdGhpcy5fY3dkID0gcHJvcHMuY3dkO1xuICAgIHRoaXMuX3NoZWxsID0gcHJvcHMuc2hlbGw7XG4gICAgdGhpcy5fbG9ja2VkID0gZmFsc2U7XG4gICAgdGhpcy5fZW52ID0gcHJvcHMuZW52ID8/IHt9O1xuXG4gICAgdGhpcy5fc3RlcHMgPSBwcm9wcy5zdGVwcyA/PyBbXTtcbiAgICB0aGlzLnJlcXVpcmVkRW52ID0gcHJvcHMucmVxdWlyZWRFbnY7XG5cbiAgICBpZiAocHJvcHMuZXhlYyAmJiBwcm9wcy5zdGVwcykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiY2Fubm90IHNwZWNpZnkgYm90aCBleGVjIGFuZCBzdGVwc1wiKTtcbiAgICB9XG5cbiAgICBpZiAocHJvcHMuZXhlY0FyZ3MgJiYgcHJvcHMuc3RlcHMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcImNhbm5vdCBzcGVjaWZ5IGJvdGggZXhlY0FyZ3MgYW5kIHN0ZXBzXCIpO1xuICAgIH1cblxuICAgIGlmIChwcm9wcy5leGVjICYmIHByb3BzLmV4ZWNBcmdzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJjYW5ub3Qgc3BlY2lmeSBib3RoIGV4ZWMgYW5kIGV4ZWNBcmdzXCIpO1xuICAgIH1cblxuICAgIGlmIChwcm9wcy5leGVjKSB7XG4gICAgICB0aGlzLmV4ZWMocHJvcHMuZXhlYywgeyByZWNlaXZlQXJnczogcHJvcHMucmVjZWl2ZUFyZ3MgfSk7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLmV4ZWNBcmdzKSB7XG4gICAgICB0aGlzLmV4ZWNBcmdzKHByb3BzLmV4ZWNBcmdzLCB7IHJlY2VpdmVBcmdzOiBwcm9wcy5yZWNlaXZlQXJncyB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRm9yYmlkIGFkZGl0aW9uYWwgY2hhbmdlcyB0byB0aGlzIHRhc2suXG4gICAqL1xuICBwdWJsaWMgbG9jaygpIHtcbiAgICB0aGlzLl9sb2NrZWQgPSB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHdvcmtpbmcgZGlyZWN0b3J5IGZvciB0aGlzIHRhc2suXG4gICAqL1xuICBwdWJsaWMgZ2V0IGN3ZCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9jd2Q7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgd29ya2luZyBkaXJlY3RvcnkgZm9yIHRoaXMgdGFzay5cbiAgICovXG4gIHB1YmxpYyBzZXQgY3dkKGN3ZDogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fY3dkID0gY3dkO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBzaGVsbCB1c2VkIHRvIHJ1biB0aGlzIHRhc2sncyBjb21tYW5kcywgb3IgYHVuZGVmaW5lZGAgd2hlbiBpbmhlcml0aW5nXG4gICAqIHRoZSBidWlsdC1pbiBkZWZhdWx0IHNoZWxsLlxuICAgKiBAc2VlIHtAbGluayBUYXNrQ29tbW9uT3B0aW9ucy5zaGVsbH1cbiAgICovXG4gIHB1YmxpYyBnZXQgc2hlbGwoKTogVGFza1NoZWxsIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fc2hlbGw7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgc2hlbGwgdXNlZCB0byBydW4gdGhpcyB0YXNrJ3MgY29tbWFuZHMuXG4gICAqL1xuICBwdWJsaWMgc2V0IHNoZWxsKHNoZWxsOiBUYXNrU2hlbGwgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9zaGVsbCA9IHNoZWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGRlc2NyaXB0aW9uIG9mIHRoaXMgdGFzay5cbiAgICovXG4gIHB1YmxpYyBnZXQgZGVzY3JpcHRpb24oKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fZGVzY3JpcHRpb247XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgZGVzY3JpcHRpb24gb2YgdGhpcyB0YXNrLlxuICAgKi9cbiAgcHVibGljIHNldCBkZXNjcmlwdGlvbihkZXNjOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9kZXNjcmlwdGlvbiA9IGRlc2M7XG4gIH1cblxuICAvKipcbiAgICogQSBjb21tYW5kIHRvIGV4ZWN1dGUgd2hpY2ggZGV0ZXJtaW5lcyBpZiB0aGUgdGFzayBzaG91bGQgYmUgc2tpcHBlZC4gSWYgaXRcbiAgICogcmV0dXJucyBhIHplcm8gZXhpdCBjb2RlLCB0aGUgdGFzayB3aWxsIG5vdCBiZSBleGVjdXRlZC5cbiAgICovXG4gIHB1YmxpYyBnZXQgY29uZGl0aW9uKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHRoaXMuX2NvbmRpdGlvbnM/Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHRoaXMuX2NvbmRpdGlvbnMuam9pbihcIiAmJiBcIik7XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgY29tbWFuZCB0byBleGVjdXRlIHdoaWNoIGRldGVybWluZXMgaWYgdGhlIHRhc2sgc2hvdWxkIGJlIHNraXBwZWQuXG4gICAqXG4gICAqIElmIGEgY29uZGl0aW9uIGFscmVhZHkgZXhpc3RzLCB0aGUgbmV3IGNvbmRpdGlvbiB3aWxsIGJlIGFwcGVuZGVkIHdpdGggYCAmJiBgIGRlbGltaXRlci5cbiAgICogQHBhcmFtIGNvbmRpdGlvbiBUaGUgY29tbWFuZCB0byBleGVjdXRlLlxuICAgKiBAc2VlIHtAbGluayBUYXNrLmNvbmRpdGlvbn1cbiAgICovXG4gIHB1YmxpYyBhZGRDb25kaXRpb24oLi4uY29uZGl0aW9uOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgIHRoaXMuX2NvbmRpdGlvbnMucHVzaCguLi5jb25kaXRpb24pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0IHRoZSB0YXNrIHNvIGl0IG5vIGxvbmdlciBoYXMgYW55IGNvbW1hbmRzLlxuICAgKiBAcGFyYW0gY29tbWFuZCB0aGUgZmlyc3QgY29tbWFuZCB0byBhZGQgdG8gdGhlIHRhc2sgYWZ0ZXIgaXQgd2FzIGNsZWFyZWQuXG4gICAqL1xuICBwdWJsaWMgcmVzZXQoY29tbWFuZD86IHN0cmluZywgb3B0aW9uczogVGFza1N0ZXBPcHRpb25zID0ge30pIHtcbiAgICB0aGlzLmFzc2VydFVubG9ja2VkKCk7XG5cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodGhpcy5fc3RlcHMpKSB7XG4gICAgICB0aGlzLndhcm5Gb3JMYXp5VmFsdWUoXCJyZXNldFwiKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB3aGlsZSAodGhpcy5fc3RlcHMubGVuZ3RoKSB7XG4gICAgICB0aGlzLl9zdGVwcy5zaGlmdCgpO1xuICAgIH1cblxuICAgIGlmIChjb21tYW5kKSB7XG4gICAgICB0aGlzLmV4ZWMoY29tbWFuZCwgb3B0aW9ucyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgc3RlcHMgdG8gdGhpcyB0YXNrLiBUaGlzIGlzIGEgZ2VuZXJpYyBtZXRob2QgdGhhdCBhY2NlcHRzIGFueVxuICAgKiB0YXNrIHN0ZXAgKGV4ZWMsIHNwYXduLCBzYXksIGJ1aWx0aW4pLlxuICAgKlxuICAgKiBAcGFyYW0gc3RlcHMgVGhlIHN0ZXBzIHRvIGFkZC5cbiAgICovXG4gIHB1YmxpYyBhZGRTdGVwcyguLi5zdGVwczogVGFza1N0ZXBbXSkge1xuICAgIHRoaXMuX3B1c2hTdGVwcyhcImFkZFN0ZXBzXCIsIHN0ZXBzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeGVjdXRlcyBhIHNoZWxsIGNvbW1hbmRcbiAgICogQHBhcmFtIGNvbW1hbmQgU2hlbGwgY29tbWFuZFxuICAgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25zXG4gICAqL1xuICBwdWJsaWMgZXhlYyhjb21tYW5kOiBzdHJpbmcsIG9wdGlvbnM6IFRhc2tTdGVwT3B0aW9ucyA9IHt9KSB7XG4gICAgdGhpcy5fcHVzaFN0ZXBzKFwiZXhlY1wiLCBbdGhpcy5yZW5kZXJTdGVwKHsgZXhlYzogY29tbWFuZCwgLi4ub3B0aW9ucyB9KV0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4ZWN1dGVzIGEgY29tbWFuZCBwcm92aWRlZCBhcyBhIGxpc3Qgb2YgdGhlIHByb2dyYW0gZm9sbG93ZWQgYnkgaXRzXG4gICAqIGFyZ3VtZW50cyAoYW4gXCJhcmd2XCIpLlxuICAgKlxuICAgKiBBIGNvbnZlbmllbnQgYWx0ZXJuYXRpdmUgdG8gYFRhc2suZXhlY2A6IGFyZ3VtZW50cyB3aXRoIHNwYWNlcyBvclxuICAgKiBzcGVjaWFsIGNoYXJhY3RlcnMgYXJlIHBhc3NlZCB0aHJvdWdoIGFzLWlzLCB3aXRoIG5vIHF1b3RpbmcgbmVlZGVkLiBUaGVcbiAgICogZWxlbWVudHMgYXJlIG5vdCBydW4gdGhyb3VnaCBhIHNoZWxsLCBzbyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgKGAkRk9PYCkgYXJlXG4gICAqIG5vdCBleHBhbmRlZCBhbmQgb3RoZXIgc2hlbGwgZmVhdHVyZXMgYXJlIHVuYXZhaWxhYmxlLlxuICAgKlxuICAgKiBAZXhhbXBsZSB0YXNrLmV4ZWNBcmdzKFtcImVjaG9cIiwgXCJoZWxsbyB3b3JsZFwiXSk7XG4gICAqXG4gICAqIEBwYXJhbSBjb21tYW5kIFRoZSBwcm9ncmFtIGZvbGxvd2VkIGJ5IGl0cyBhcmd1bWVudHMuXG4gICAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbnNcbiAgICovXG4gIHB1YmxpYyBleGVjQXJncyhjb21tYW5kOiBzdHJpbmdbXSwgb3B0aW9uczogVGFza1N0ZXBPcHRpb25zID0ge30pIHtcbiAgICB0aGlzLl9wdXNoU3RlcHMoXCJleGVjQXJnc1wiLCBbXG4gICAgICB0aGlzLnJlbmRlclN0ZXAoeyBleGVjQXJnczogY29tbWFuZCwgLi4ub3B0aW9ucyB9KSxcbiAgICBdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeGVjdXRlIGEgYnVpbHRpbiB0YXNrLlxuICAgKlxuICAgKiBCdWlsdGluIHRhc2tzIGFyZSBwcm9ncmFtcyBidW5kbGVkIGFzIHBhcnQgb2YgcHJvamVuIGl0c2VsZiBhbmQgdXNlZCBhc1xuICAgKiBoZWxwZXJzIGZvciB2YXJpb3VzIGNvbXBvbmVudHMuXG4gICAqXG4gICAqIEluIHRoZSBmdXR1cmUgd2Ugc2hvdWxkIHN1cHBvcnQgYnVpbHQtaW4gdGFza3MgZnJvbSBleHRlcm5hbCBtb2R1bGVzLlxuICAgKlxuICAgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgYnVpbHRpbiB0YXNrIHRvIGV4ZWN1dGUgKGUuZy5cbiAgICogYHJlbGVhc2UvcmVzb2x2ZS12ZXJzaW9uYCkuXG4gICAqL1xuICBwdWJsaWMgYnVpbHRpbihuYW1lOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9wdXNoU3RlcHMoXCJidWlsdGluXCIsIFt7IGJ1aWx0aW46IG5hbWUgfV0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNheSBzb21ldGhpbmcuXG4gICAqIEBwYXJhbSBtZXNzYWdlIFlvdXIgbWVzc2FnZVxuICAgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25zXG4gICAqL1xuICBwdWJsaWMgc2F5KG1lc3NhZ2U6IHN0cmluZywgb3B0aW9uczogVGFza1N0ZXBPcHRpb25zID0ge30pIHtcbiAgICB0aGlzLl9wdXNoU3RlcHMoXCJzYXlcIiwgW3RoaXMucmVuZGVyU3RlcCh7IHNheTogbWVzc2FnZSwgLi4ub3B0aW9ucyB9KV0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwYXducyBhIHN1Yi10YXNrLlxuICAgKiBAcGFyYW0gc3VidGFzayBUaGUgc3VidGFzayB0byBleGVjdXRlLlxuICAgKi9cbiAgcHVibGljIHNwYXduKHN1YnRhc2s6IFRhc2ssIG9wdGlvbnM6IFRhc2tTdGVwT3B0aW9ucyA9IHt9KSB7XG4gICAgdGhpcy5fcHVzaFN0ZXBzKFwic3Bhd25cIiwgW1xuICAgICAgdGhpcy5yZW5kZXJTdGVwKHsgc3Bhd246IHN1YnRhc2submFtZSwgLi4ub3B0aW9ucyB9KSxcbiAgICBdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIHN0ZXBzIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhpcyB0YXNrLlxuICAgKlxuICAgKiBAcGFyYW0gc3RlcHMgVGhlIHN0ZXBzIHRvIGFkZC5cbiAgICovXG4gIHB1YmxpYyBwcmVwZW5kU3RlcHMoLi4uc3RlcHM6IFRhc2tTdGVwW10pIHtcbiAgICB0aGlzLl91bnNoaWZ0U3RlcHMoXCJwcmVwZW5kU3RlcHNcIiwgc3RlcHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBjb21tYW5kIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRhc2suXG4gICAqIEBwYXJhbSBjb21tYW5kIFRoZSBjb21tYW5kIHRvIGFkZC5cbiAgICovXG4gIHB1YmxpYyBwcmVwZW5kRXhlYyhjb21tYW5kOiBzdHJpbmcsIG9wdGlvbnM6IFRhc2tTdGVwT3B0aW9ucyA9IHt9KSB7XG4gICAgdGhpcy5fdW5zaGlmdFN0ZXBzKFwicHJlcGVuZEV4ZWNcIiwgW1xuICAgICAgdGhpcy5yZW5kZXJTdGVwKHsgZXhlYzogY29tbWFuZCwgLi4ub3B0aW9ucyB9KSxcbiAgICBdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgc3Bhd24gaW5zdHJ1Y3Rpb24gYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgdGFzay5cbiAgICogQHBhcmFtIHN1YnRhc2sgVGhlIHN1YnRhc2sgdG8gZXhlY3V0ZS5cbiAgICovXG4gIHB1YmxpYyBwcmVwZW5kU3Bhd24oc3VidGFzazogVGFzaywgb3B0aW9uczogVGFza1N0ZXBPcHRpb25zID0ge30pIHtcbiAgICB0aGlzLl91bnNoaWZ0U3RlcHMoXCJwcmVwZW5kU3Bhd25cIiwgW1xuICAgICAgdGhpcy5yZW5kZXJTdGVwKHsgc3Bhd246IHN1YnRhc2submFtZSwgLi4ub3B0aW9ucyB9KSxcbiAgICBdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTYXlzIHNvbWV0aGluZyBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0YXNrLlxuICAgKiBAcGFyYW0gbWVzc2FnZSBZb3VyIG1lc3NhZ2VcbiAgICovXG4gIHB1YmxpYyBwcmVwZW5kU2F5KG1lc3NhZ2U6IHN0cmluZywgb3B0aW9uczogVGFza1N0ZXBPcHRpb25zID0ge30pIHtcbiAgICB0aGlzLl91bnNoaWZ0U3RlcHMoXCJwcmVwZW5kU2F5XCIsIFtcbiAgICAgIHRoaXMucmVuZGVyU3RlcCh7IHNheTogbWVzc2FnZSwgLi4ub3B0aW9ucyB9KSxcbiAgICBdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXJzIHN0ZXAgb3B0aW9ucyAod2l0aCBhIHtAbGluayBUYXNrU2hlbGx9KSB0byB0aGUgbWFuaWZlc3RcbiAgICoge0BsaW5rIFRhc2tTdGVwfSBmb3JtLCB3aGVyZSBgc2hlbGxgIGlzIGl0cyBgc3RyaW5nIHwgc3RyaW5nW11gIHJlbmRlcmluZy5cbiAgICovXG4gIHByaXZhdGUgcmVuZGVyU3RlcChcbiAgICBzdGVwOiB7IHJlYWRvbmx5IHNoZWxsPzogVGFza1NoZWxsIH0gJiBPbWl0PFRhc2tTdGVwLCBcInNoZWxsXCI+LFxuICApOiBUYXNrU3RlcCB7XG4gICAgY29uc3QgeyBzaGVsbCwgLi4ucmVzdCB9ID0gc3RlcDtcbiAgICByZXR1cm4gc2hlbGwgPyB7IC4uLnJlc3QsIHNoZWxsOiBzaGVsbC5fcmVuZGVyKCkgfSA6IHJlc3Q7XG4gIH1cblxuICBwcml2YXRlIF9wdXNoU3RlcHMobWV0aG9kOiBzdHJpbmcsIHN0ZXBzOiBUYXNrU3RlcFtdKSB7XG4gICAgdGhpcy5hc3NlcnRVbmxvY2tlZCgpO1xuXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHRoaXMuX3N0ZXBzKSkge1xuICAgICAgdGhpcy53YXJuRm9yTGF6eVZhbHVlKGAke21ldGhvZH0gdG9gKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9zdGVwcy5wdXNoKC4uLnN0ZXBzKTtcbiAgfVxuXG4gIHByaXZhdGUgX3Vuc2hpZnRTdGVwcyhtZXRob2Q6IHN0cmluZywgc3RlcHM6IFRhc2tTdGVwW10pIHtcbiAgICB0aGlzLmFzc2VydFVubG9ja2VkKCk7XG5cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodGhpcy5fc3RlcHMpKSB7XG4gICAgICB0aGlzLndhcm5Gb3JMYXp5VmFsdWUoYCR7bWV0aG9kfSB0b2ApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX3N0ZXBzLnVuc2hpZnQoLi4uc3RlcHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYW4gZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gdGhpcyB0YXNrLlxuICAgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgdmFyaWFibGVcbiAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZS4gSWYgdGhlIHZhbHVlIGlzIHN1cnJvdW5kZWQgYnkgYCQoKWAsIHdlIHdpbGxcbiAgICogZXZhbHVhdGUgaXQgd2l0aGluIGEgc3Vic2hlbGwgYW5kIHVzZSB0aGUgcmVzdWx0IGFzIHRoZSB2YWx1ZSBvZiB0aGVcbiAgICogZW52aXJvbm1lbnQgdmFyaWFibGUuXG4gICAqL1xuICBwdWJsaWMgZW52KG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuYXNzZXJ0VW5sb2NrZWQoKTtcbiAgICB0aGlzLl9lbnZbbmFtZV0gPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFsbCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgaW4gdGhlIHRhc2sgbGV2ZWxcbiAgICovXG4gIHB1YmxpYyBnZXQgZW52VmFycygpOiBSZWFkb25seTx7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfT4ge1xuICAgIHJldHVybiB0aGlzLl9lbnY7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBpbW11dGFibGUgY29weSBvZiBhbGwgdGhlIHN0ZXAgc3BlY2lmaWNhdGlvbnMgb2YgdGhlIHRhc2suXG4gICAqL1xuICBwdWJsaWMgZ2V0IHN0ZXBzKCk6IFRhc2tTdGVwW10ge1xuICAgIC8vIElmIHRoZSBsaXN0IG9mIHN0ZXBzIGlzIGEgTGF6eSB2YWx1ZSwgd2UgY2FuJ3Qga25vdyB3aGF0IHRoZSBzdGVwc1xuICAgIC8vIGFyZSB1bnRpbCBzeW50aGVzaXMgb2NjdXJzLCBzbyBqdXN0IHJldHVybiBhbiBlbXB0eSBhcnJheS5cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodGhpcy5fc3RlcHMpKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIHJldHVybiBbLi4udGhpcy5fc3RlcHNdO1xuICB9XG5cbiAgLyoqXG4gICAqIEluc2VydCBvbmUgb3IgbW9yZSBzdGVwcyBhdCBhIGdpdmVuIGluZGV4XG4gICAqXG4gICAqIEBwYXJhbSBpbmRleCBTdGVwcyB3aWxsIGJlIGluc2VydGVkIGJlZm9yZSB0aGlzIGluZGV4LiBNYXkgYmUgbmVnYXRpdmUgdG9cbiAgICogY291bnQgYmFja3dhcmRzIGZyb20gdGhlIGVuZCwgb3IgbWF5IGJlIGA9PSBzdGVwcygpLmxlbmd0aGAgdG8gaW5zZXJ0IGF0IHRoZSBlbmQuXG4gICAqIEBwYXJhbSBzdGVwcyBUaGUgc3RlcHMgdG8gaW5zZXJ0XG4gICAqL1xuICBwdWJsaWMgaW5zZXJ0U3RlcChpbmRleDogbnVtYmVyLCAuLi5zdGVwczogVGFza1N0ZXBbXSk6IHZvaWQge1xuICAgIHRoaXMuYXNzZXJ0VW5sb2NrZWQoKTtcblxuICAgIGlmICghQXJyYXkuaXNBcnJheSh0aGlzLl9zdGVwcykpIHtcbiAgICAgIHRoaXMud2FybkZvckxhenlWYWx1ZShcImluc2VydCBzdGVwcyBpbnRvXCIpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChpbmRleCA8IC10aGlzLl9zdGVwcy5sZW5ndGggfHwgaW5kZXggPiB0aGlzLnN0ZXBzLmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQ2Fubm90IGluc2VydCBzdGVwcyBhdCBpbmRleCAke2luZGV4fSBmb3IgdGFzayAke3RoaXMubmFtZX0gYmVjYXVzZSB0aGUgaW5kZXggaXMgb3V0IG9mIGJvdW5kcyBmb3Igc2l6ZSAke3RoaXMuc3RlcHMubGVuZ3RofWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuX3N0ZXBzLnNwbGljZShpbmRleCwgMCwgLi4uc3RlcHMpO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSBpbmRleCBUaGUgaW5kZXggb2YgdGhlIHN0ZXAgdG8gZWRpdFxuICAgKiBAcGFyYW0gc3RlcCBUaGUgbmV3IHN0ZXAgdG8gcmVwbGFjZSB0aGUgb2xkIG9uZSBlbnRpcmVseSwgaXQgaXMgbm90IG1lcmdlZCB3aXRoIHRoZSBvbGQgc3RlcFxuICAgKi9cbiAgcHVibGljIHVwZGF0ZVN0ZXAoaW5kZXg6IG51bWJlciwgc3RlcDogVGFza1N0ZXApOiB2b2lkIHtcbiAgICB0aGlzLmFzc2VydFVubG9ja2VkKCk7XG5cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodGhpcy5fc3RlcHMpKSB7XG4gICAgICB0aGlzLndhcm5Gb3JMYXp5VmFsdWUoXCJ1cGRhdGUgc3RlcCBmb3JcIik7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZXhpc3RpbmdTdGVwID0gdGhpcy5fc3RlcHNbaW5kZXhdO1xuICAgIGlmICghZXhpc3RpbmdTdGVwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBDYW5ub3QgdXBkYXRlIHN0ZXAgYXQgaW5kZXggJHtpbmRleH0gZm9yIHRhc2sgJHt0aGlzLm5hbWV9IGJlY2F1c2UgaXQgZG9lcyBub3QgZXhpc3RgLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLl9zdGVwc1tpbmRleF0gPSBzdGVwO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSBpbmRleCBUaGUgaW5kZXggb2YgdGhlIHN0ZXAgdG8gcmVtb3ZlXG4gICAqL1xuICBwdWJsaWMgcmVtb3ZlU3RlcChpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5hc3NlcnRVbmxvY2tlZCgpO1xuXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHRoaXMuX3N0ZXBzKSkge1xuICAgICAgdGhpcy53YXJuRm9yTGF6eVZhbHVlKFwicmVtb3ZlIHN0ZXAgZnJvbVwiKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBleGlzdGluZ1N0ZXAgPSB0aGlzLl9zdGVwc1tpbmRleF07XG4gICAgaWYgKCFleGlzdGluZ1N0ZXApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYENhbm5vdCByZW1vdmUgc3RlcCBhdCBpbmRleCAke2luZGV4fSBmb3IgdGFzayAke3RoaXMubmFtZX0gYmVjYXVzZSBpdCBkb2VzIG5vdCBleGlzdGAsXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuX3N0ZXBzLnNwbGljZShpbmRleCwgMSk7XG4gIH1cblxuICAvKipcbiAgICogUmVuZGVycyBhIHRhc2sgc3BlYyBpbnRvIHRoZSBtYW5pZmVzdC5cbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgX3JlbmRlclNwZWMoKTogVGFza1NwZWMge1xuICAgIC8vIEVuc3VyZSB0YXNrLWxldmVsIGVudiB2YXJzIGFyZSBzdHJpbmdzXG4gICAgY29uc3QgZW52ID0gT2JqZWN0LmtleXModGhpcy5fZW52KS5yZWR1Y2UoXG4gICAgICAocHJldiwgY3VycikgPT4gKHtcbiAgICAgICAgLi4ucHJldixcbiAgICAgICAgW2N1cnJdOiB0aGlzLmdldEVudlN0cmluZyhjdXJyLCB0aGlzLl9lbnZbY3Vycl0pLFxuICAgICAgfSksXG4gICAgICB7fSxcbiAgICApO1xuXG4gICAgLy8gRW5zdXJlIHN0ZXAtbGV2ZWwgZW52IHZhcnMgYXJlIHN0cmluZ3NcbiAgICBjb25zdCBzdGVwcyA9IEFycmF5LmlzQXJyYXkodGhpcy5fc3RlcHMpXG4gICAgICA/IFsuLi50aGlzLl9zdGVwc10ubWFwKChzKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHMuZW52XG4gICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAuLi5zLFxuICAgICAgICAgICAgICAgIGVudjogT2JqZWN0LmtleXMocy5lbnYpLnJlZHVjZShcbiAgICAgICAgICAgICAgICAgIChwcmV2LCBjdXJyKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAuLi5wcmV2LFxuICAgICAgICAgICAgICAgICAgICBbY3Vycl06IHRoaXMuZ2V0RW52U3RyaW5nKGN1cnIsIHMuZW52IVtjdXJyXSksXG4gICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgIHt9LFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDogcztcbiAgICAgICAgfSlcbiAgICAgIDogdGhpcy5fc3RlcHM7XG5cbiAgICByZXR1cm4ge1xuICAgICAgbmFtZTogdGhpcy5uYW1lLFxuICAgICAgZGVzY3JpcHRpb246IHRoaXMuZGVzY3JpcHRpb24sXG4gICAgICBlbnY6IGVudixcbiAgICAgIHJlcXVpcmVkRW52OiB0aGlzLnJlcXVpcmVkRW52LFxuICAgICAgc3RlcHM6IHN0ZXBzLFxuICAgICAgY29uZGl0aW9uOiB0aGlzLmNvbmRpdGlvbixcbiAgICAgIGN3ZDogdGhpcy5fY3dkLFxuICAgICAgc2hlbGw6IHRoaXMuX3NoZWxsPy5fcmVuZGVyKCksXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXNzZXJ0VW5sb2NrZWQoKSB7XG4gICAgaWYgKHRoaXMuX2xvY2tlZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBUYXNrIFwiJHt0aGlzLm5hbWV9XCIgaXMgbG9ja2VkIGZvciBjaGFuZ2VzYCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB3YXJuRm9yTGF6eVZhbHVlKGFjdGlvbkJlaW5nVW5kZXJ0YWtlbjogc3RyaW5nKTogdm9pZCB7XG4gICAgd2FybihcbiAgICAgIGBDYW5ub3QgJHthY3Rpb25CZWluZ1VuZGVydGFrZW59IHRhc2sgXCIke3RoaXMubmFtZX1cIiBiZWNhdXNlIGl0IGlzIGEgbGF6eSB2YWx1ZSwgdHJ5IHVzaW5nIHRoZSBwcmVTeW50aGVzaXplIHBoYXNlLmAsXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbnN1cmUgdGhhdCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgYXJlIHBlcnNpc3RlZCBhcyBzdHJpbmdzXG4gICAqIHRvIHByZXZlbnQgdHlwZSBlcnJvcnMgd2hlbiBwYXJzaW5nIGZyb20gdGFza3MuanNvbiBpbiBmdXR1cmVcbiAgICovXG4gIHByaXZhdGUgZ2V0RW52U3RyaW5nKG5hbWU6IHN0cmluZywgdmFsdWU6IGFueSkge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09IFwic3RyaW5nXCIgJiYgdmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgd2FybihcbiAgICAgICAgYFJlY2VpdmVkIG5vbi1zdHJpbmcgdmFsdWUgZm9yIGVudmlyb25tZW50IHZhcmlhYmxlICR7bmFtZX0uIFZhbHVlIHdpbGwgYmUgc3RyaW5naWZpZWQuYCxcbiAgICAgICk7XG4gICAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgfVxufVxuIl19
|
package/lib/tasks.js
CHANGED
|
@@ -48,7 +48,7 @@ const task_runner_1 = require("./task-runner");
|
|
|
48
48
|
* synthesized into `.projen/tasks.json`.
|
|
49
49
|
*/
|
|
50
50
|
class Tasks extends component_1.Component {
|
|
51
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.Tasks", version: "0.
|
|
51
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.Tasks", version: "0.103.1" };
|
|
52
52
|
_tasks;
|
|
53
53
|
_env;
|
|
54
54
|
_shell;
|
package/lib/testing.js
CHANGED
|
@@ -10,7 +10,7 @@ const synth_1 = require("./util/synth");
|
|
|
10
10
|
* @example `expect(Testing.synth(someProject)).toMatchSnapshot()`
|
|
11
11
|
*/
|
|
12
12
|
class Testing {
|
|
13
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.Testing", version: "0.
|
|
13
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.Testing", version: "0.103.1" };
|
|
14
14
|
/**
|
|
15
15
|
* Produces a simple JS object that represents the contents of the projects with field names being file paths.
|
|
16
16
|
* @param project the project to produce a snapshot for
|
package/lib/textfile.js
CHANGED
|
@@ -7,7 +7,7 @@ const file_1 = require("./file");
|
|
|
7
7
|
* A text file.
|
|
8
8
|
*/
|
|
9
9
|
class TextFile extends file_1.FileBase {
|
|
10
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.TextFile", version: "0.
|
|
10
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.TextFile", version: "0.103.1" };
|
|
11
11
|
lines;
|
|
12
12
|
/**
|
|
13
13
|
* Defines a text file.
|
package/lib/toml.js
CHANGED
|
@@ -41,7 +41,7 @@ const object_file_1 = require("./object-file");
|
|
|
41
41
|
* Represents a TOML file.
|
|
42
42
|
*/
|
|
43
43
|
class TomlFile extends object_file_1.ObjectFile {
|
|
44
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.TomlFile", version: "0.
|
|
44
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.TomlFile", version: "0.103.1" };
|
|
45
45
|
constructor(scope, filePath, options) {
|
|
46
46
|
super(scope, filePath, options);
|
|
47
47
|
}
|
|
@@ -16,7 +16,7 @@ const DEFAULT_FILENAME = ".projenrc.ts";
|
|
|
16
16
|
* and has no expectations around the project's main language.
|
|
17
17
|
*/
|
|
18
18
|
class ProjenrcTs extends projenrc_1.ProjenrcFile {
|
|
19
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.typescript.ProjenrcTs", version: "0.
|
|
19
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.typescript.ProjenrcTs", version: "0.103.1" };
|
|
20
20
|
/**
|
|
21
21
|
* TypeScript configuration file used to compile projen source files
|
|
22
22
|
*/
|
|
@@ -15,7 +15,7 @@ const DEFAULT_FILENAME = ".projenrc.ts";
|
|
|
15
15
|
* This component is used within TypeScriptProject.
|
|
16
16
|
*/
|
|
17
17
|
class Projenrc extends projenrc_1.ProjenrcFile {
|
|
18
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.typescript.Projenrc", version: "0.
|
|
18
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.typescript.Projenrc", version: "0.103.1" };
|
|
19
19
|
filePath;
|
|
20
20
|
tsconfig;
|
|
21
21
|
_projenCodeDir;
|
|
@@ -13,7 +13,7 @@ const recreate_1 = require("../util/recreate");
|
|
|
13
13
|
* adjusted options.
|
|
14
14
|
*/
|
|
15
15
|
class TypeScriptRunner extends script_runner_1.ScriptRunner {
|
|
16
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.typescript.TypeScriptRunner", version: "0.
|
|
16
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.typescript.TypeScriptRunner", version: "0.103.1" };
|
|
17
17
|
/**
|
|
18
18
|
* Use ts-node to execute TypeScript files.
|
|
19
19
|
*/
|
|
@@ -6,7 +6,7 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
|
6
6
|
Adds a simple Typescript documentation generator
|
|
7
7
|
*/
|
|
8
8
|
class TypedocDocgen {
|
|
9
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.typescript.TypedocDocgen", version: "0.
|
|
9
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.typescript.TypedocDocgen", version: "0.103.1" };
|
|
10
10
|
constructor(project) {
|
|
11
11
|
project.addDevDeps("typedoc");
|
|
12
12
|
const docgen = project.addTask("docgen", {
|
|
@@ -52,7 +52,7 @@ const util_2 = require("../util");
|
|
|
52
52
|
*/
|
|
53
53
|
class TsJestBabelConfig {
|
|
54
54
|
config;
|
|
55
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.typescript.TsJestBabelConfig", version: "0.
|
|
55
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.typescript.TsJestBabelConfig", version: "0.103.1" };
|
|
56
56
|
/**
|
|
57
57
|
* Disables the use of Babel
|
|
58
58
|
*/
|
|
@@ -99,7 +99,7 @@ exports.TsJestBabelConfig = TsJestBabelConfig;
|
|
|
99
99
|
*/
|
|
100
100
|
class TsJestDiagnostics {
|
|
101
101
|
config;
|
|
102
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.typescript.TsJestDiagnostics", version: "0.
|
|
102
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.typescript.TsJestDiagnostics", version: "0.103.1" };
|
|
103
103
|
/**
|
|
104
104
|
* Enable all diagnostics.
|
|
105
105
|
*/
|
|
@@ -137,7 +137,7 @@ exports.TsJestDiagnostics = TsJestDiagnostics;
|
|
|
137
137
|
*/
|
|
138
138
|
class TsJestTsconfig {
|
|
139
139
|
config;
|
|
140
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.typescript.TsJestTsconfig", version: "0.
|
|
140
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.typescript.TsJestTsconfig", version: "0.103.1" };
|
|
141
141
|
/**
|
|
142
142
|
* Uses `tsconfig.json` if found, or the built-in default TypeScript compiler options.
|
|
143
143
|
*/
|
|
@@ -183,7 +183,7 @@ exports.TsJestTsconfig = TsJestTsconfig;
|
|
|
183
183
|
* @pjid typescript
|
|
184
184
|
*/
|
|
185
185
|
class TypeScriptProject extends javascript_1.NodeProject {
|
|
186
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.typescript.TypeScriptProject", version: "0.
|
|
186
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.typescript.TypeScriptProject", version: "0.103.1" };
|
|
187
187
|
static DEFAULT_TS_JEST_TRANFORM_PATTERN = "^.+\\.[t]sx?$";
|
|
188
188
|
docgen;
|
|
189
189
|
docsDirectory;
|
|
@@ -620,7 +620,7 @@ class SampleCode extends component_1.Component {
|
|
|
620
620
|
* @pjid typescript-app
|
|
621
621
|
*/
|
|
622
622
|
class TypeScriptAppProject extends TypeScriptProject {
|
|
623
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.typescript.TypeScriptAppProject", version: "0.
|
|
623
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.typescript.TypeScriptAppProject", version: "0.103.1" };
|
|
624
624
|
constructor(options) {
|
|
625
625
|
// Releasing and packaging are coupled. If one is disabled, disable the other by default.
|
|
626
626
|
const shouldRelease = options.release ?? false;
|
package/lib/util/dax.d.ts
CHANGED
|
@@ -1 +1,12 @@
|
|
|
1
|
-
|
|
1
|
+
import { $ } from "dax";
|
|
2
|
+
export { $ };
|
|
3
|
+
/**
|
|
4
|
+
* Renders an argv into a single escaped command line.
|
|
5
|
+
*
|
|
6
|
+
* Safe for a task `exec` command: every element arrives as exactly one
|
|
7
|
+
* argument, so whitespace and metacharacters are never interpreted. Works in
|
|
8
|
+
* any POSIX shell and dax's built-in one, but not in `cmd.exe`.
|
|
9
|
+
*
|
|
10
|
+
* @example escapeCommand(["echo", "some text with spaces"]); // echo 'some text with spaces'
|
|
11
|
+
*/
|
|
12
|
+
export declare function escapeCommand(argv: string[]): string;
|
package/lib/util/dax.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.$ = void 0;
|
|
4
|
+
exports.escapeCommand = escapeCommand;
|
|
4
5
|
/**
|
|
5
6
|
* The only module allowed to import "dax" (enforced via eslint's
|
|
6
7
|
* no-restricted-imports): it guarantees the Node compat shim is installed
|
|
@@ -11,11 +12,23 @@ exports.$ = void 0;
|
|
|
11
12
|
* command fails with `dax: <cmd>: command not found` on older runtimes
|
|
12
13
|
* (https://github.com/projen/projen/issues/4846). dax reads the API lazily on
|
|
13
14
|
* first command resolution, so installing the shim at module load - even
|
|
14
|
-
* though the
|
|
15
|
+
* though the import below makes dax itself load first - is early enough.
|
|
15
16
|
*/
|
|
16
17
|
const node_compat_1 = require("./node-compat");
|
|
17
18
|
(0, node_compat_1.polyfillGetBuiltinModule)();
|
|
18
|
-
// eslint-disable-next-line @typescript-eslint/no-restricted-imports
|
|
19
|
-
|
|
19
|
+
// eslint-disable-next-line @typescript-eslint/no-restricted-imports,import/order
|
|
20
|
+
const dax_1 = require("dax");
|
|
20
21
|
Object.defineProperty(exports, "$", { enumerable: true, get: function () { return dax_1.$; } });
|
|
21
|
-
|
|
22
|
+
/**
|
|
23
|
+
* Renders an argv into a single escaped command line.
|
|
24
|
+
*
|
|
25
|
+
* Safe for a task `exec` command: every element arrives as exactly one
|
|
26
|
+
* argument, so whitespace and metacharacters are never interpreted. Works in
|
|
27
|
+
* any POSIX shell and dax's built-in one, but not in `cmd.exe`.
|
|
28
|
+
*
|
|
29
|
+
* @example escapeCommand(["echo", "some text with spaces"]); // echo 'some text with spaces'
|
|
30
|
+
*/
|
|
31
|
+
function escapeCommand(argv) {
|
|
32
|
+
return argv.map((arg) => dax_1.$.escapeArg(arg)).join(" ");
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF4LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWwvZGF4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQTRCQSxzQ0FFQztBQTlCRDs7Ozs7Ozs7Ozs7R0FXRztBQUNILCtDQUF5RDtBQUN6RCxJQUFBLHNDQUF3QixHQUFFLENBQUM7QUFFM0IsaUZBQWlGO0FBQ2pGLDZCQUF3QjtBQUNmLGtGQURBLE9BQUMsT0FDQTtBQUVWOzs7Ozs7OztHQVFHO0FBQ0gsU0FBZ0IsYUFBYSxDQUFDLElBQWM7SUFDMUMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxPQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoZSBvbmx5IG1vZHVsZSBhbGxvd2VkIHRvIGltcG9ydCBcImRheFwiIChlbmZvcmNlZCB2aWEgZXNsaW50J3NcbiAqIG5vLXJlc3RyaWN0ZWQtaW1wb3J0cyk6IGl0IGd1YXJhbnRlZXMgdGhlIE5vZGUgY29tcGF0IHNoaW0gaXMgaW5zdGFsbGVkXG4gKiBiZWZvcmUgZGF4IHJlc29sdmVzIGFueSBjb21tYW5kLlxuICpcbiAqIGRheCdzIGJ1bmRsZWQgYHdoaWNoYCBsb2FkcyBgbm9kZTpmc2AgdGhyb3VnaCBgcHJvY2Vzcy5nZXRCdWlsdGluTW9kdWxlKClgLFxuICogd2hpY2ggb25seSBleGlzdHMgc2luY2UgTm9kZSAyMi4zLjAgLyAyMC4xNi4wLiBXaXRob3V0IHRoZSBzaGltLCBldmVyeSB0YXNrXG4gKiBjb21tYW5kIGZhaWxzIHdpdGggYGRheDogPGNtZD46IGNvbW1hbmQgbm90IGZvdW5kYCBvbiBvbGRlciBydW50aW1lc1xuICogKGh0dHBzOi8vZ2l0aHViLmNvbS9wcm9qZW4vcHJvamVuL2lzc3Vlcy80ODQ2KS4gZGF4IHJlYWRzIHRoZSBBUEkgbGF6aWx5IG9uXG4gKiBmaXJzdCBjb21tYW5kIHJlc29sdXRpb24sIHNvIGluc3RhbGxpbmcgdGhlIHNoaW0gYXQgbW9kdWxlIGxvYWQgLSBldmVuXG4gKiB0aG91Z2ggdGhlIGltcG9ydCBiZWxvdyBtYWtlcyBkYXggaXRzZWxmIGxvYWQgZmlyc3QgLSBpcyBlYXJseSBlbm91Z2guXG4gKi9cbmltcG9ydCB7IHBvbHlmaWxsR2V0QnVpbHRpbk1vZHVsZSB9IGZyb20gXCIuL25vZGUtY29tcGF0XCI7XG5wb2x5ZmlsbEdldEJ1aWx0aW5Nb2R1bGUoKTtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXN0cmljdGVkLWltcG9ydHMsaW1wb3J0L29yZGVyXG5pbXBvcnQgeyAkIH0gZnJvbSBcImRheFwiO1xuZXhwb3J0IHsgJCB9O1xuXG4vKipcbiAqIFJlbmRlcnMgYW4gYXJndiBpbnRvIGEgc2luZ2xlIGVzY2FwZWQgY29tbWFuZCBsaW5lLlxuICpcbiAqIFNhZmUgZm9yIGEgdGFzayBgZXhlY2AgY29tbWFuZDogZXZlcnkgZWxlbWVudCBhcnJpdmVzIGFzIGV4YWN0bHkgb25lXG4gKiBhcmd1bWVudCwgc28gd2hpdGVzcGFjZSBhbmQgbWV0YWNoYXJhY3RlcnMgYXJlIG5ldmVyIGludGVycHJldGVkLiBXb3JrcyBpblxuICogYW55IFBPU0lYIHNoZWxsIGFuZCBkYXgncyBidWlsdC1pbiBvbmUsIGJ1dCBub3QgaW4gYGNtZC5leGVgLlxuICpcbiAqIEBleGFtcGxlIGVzY2FwZUNvbW1hbmQoW1wiZWNob1wiLCBcInNvbWUgdGV4dCB3aXRoIHNwYWNlc1wiXSk7IC8vIGVjaG8gJ3NvbWUgdGV4dCB3aXRoIHNwYWNlcydcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVzY2FwZUNvbW1hbmQoYXJndjogc3RyaW5nW10pOiBzdHJpbmcge1xuICByZXR1cm4gYXJndi5tYXAoKGFyZykgPT4gJC5lc2NhcGVBcmcoYXJnKSkuam9pbihcIiBcIik7XG59XG4iXX0=
|
package/lib/util/path.d.ts
CHANGED
|
@@ -6,3 +6,42 @@
|
|
|
6
6
|
* @returns "./path"
|
|
7
7
|
*/
|
|
8
8
|
export declare function ensureRelativePathStartsWithDot(path: string): string;
|
|
9
|
+
/**
|
|
10
|
+
* Checks if part of the file path is hidden
|
|
11
|
+
*/
|
|
12
|
+
export declare function isHiddenPath(path: string): boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Helper to assert a path is not hidden
|
|
15
|
+
*/
|
|
16
|
+
export declare function ensureNotHiddenPath(value: string, name: string): void;
|
|
17
|
+
/**
|
|
18
|
+
* Checks if `file` is strictly inside `dir` (the directory itself does not count).
|
|
19
|
+
*
|
|
20
|
+
* Purely lexical: does not consult the filesystem, so symlinks are not
|
|
21
|
+
* resolved. Relative paths are resolved against the current working directory.
|
|
22
|
+
*/
|
|
23
|
+
export declare function isPathInside(dir: string, file: string): boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Resolves symlinks in `p`, falling back to the closest existing ancestor for
|
|
26
|
+
* paths that do not exist (yet).
|
|
27
|
+
*/
|
|
28
|
+
export declare function realpathOfClosestExisting(p: string): string;
|
|
29
|
+
/**
|
|
30
|
+
* Asserts that a path stays strictly inside a project directory.
|
|
31
|
+
*
|
|
32
|
+
* Use this before passing a user-configurable path to a destructive command
|
|
33
|
+
* (e.g. `rm -fr`): an absolute path or a path traversing outside of the
|
|
34
|
+
* project directory (via `..` or a symlink) could otherwise delete files
|
|
35
|
+
* anywhere on the machine. The project directory itself (`.`) is also
|
|
36
|
+
* rejected.
|
|
37
|
+
*
|
|
38
|
+
* The check resolves both paths on the filesystem (symlinks in existing path
|
|
39
|
+
* segments are followed). The last segment of the path is intentionally kept
|
|
40
|
+
* as-is: a symlink inside the project only affects the link itself.
|
|
41
|
+
*
|
|
42
|
+
* @param value the path to check, relative to the project directory
|
|
43
|
+
* @param name name of the option, used in the error message
|
|
44
|
+
* @param projectDir the project directory the path must stay inside of
|
|
45
|
+
* @throws if the path is absolute or does not stay inside the project directory
|
|
46
|
+
*/
|
|
47
|
+
export declare function ensurePathInsideProject(value: string, name: string, projectDir: string): void;
|