Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

tsickle

Package Overview
Dependencies
Maintainers
2
Versions
65
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

tsickle - npm Package Compare versions

Comparing version 0.24.1 to 0.25.0

built/src/class_decorator_downlevel_transformer.d.ts

3

built/src/cli_support.js

@@ -24,3 +24,2 @@ "use strict";

exports.pathToModuleName = pathToModuleName;
//# sourceMappingURL=cli_support.js.map
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpX3N1cHBvcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xpX3N1cHBvcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7QUFFSCwyQkFBNkI7QUFFN0IsNEJBQTRCO0FBQzVCLDBCQUFpQyxPQUFlLEVBQUUsUUFBZ0I7SUFDaEUsUUFBUSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRXpDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3hCLHVCQUF1QjtRQUN2Qiw4REFBOEQ7UUFDOUQsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBQ0QsbURBQW1EO0lBQ25ELElBQU0sVUFBVSxHQUNaLFFBQVEsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBRWxHLE1BQU0sQ0FBQyxVQUFVLENBQUM7QUFDcEIsQ0FBQztBQWJELDRDQWFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuXG4vLyBQb3N0cHJvY2VzcyBnZW5lcmF0ZWQgSlMuXG5leHBvcnQgZnVuY3Rpb24gcGF0aFRvTW9kdWxlTmFtZShjb250ZXh0OiBzdHJpbmcsIGZpbGVOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICBmaWxlTmFtZSA9IGZpbGVOYW1lLnJlcGxhY2UoL1xcLmpzJC8sICcnKTtcblxuICBpZiAoZmlsZU5hbWVbMF0gPT09ICcuJykge1xuICAgIC8vICcuL2Zvbycgb3IgJy4uL2ZvbycuXG4gICAgLy8gUmVzb2x2ZSB0aGUgcGF0aCBhZ2FpbnN0IHRoZSBkaXJuYW1lIG9mIHRoZSBjdXJyZW50IG1vZHVsZS5cbiAgICBmaWxlTmFtZSA9IHBhdGguam9pbihwYXRoLmRpcm5hbWUoY29udGV4dCksIGZpbGVOYW1lKTtcbiAgfVxuICAvLyBSZXBsYWNlIGNoYXJhY3RlcnMgbm90IHN1cHBvcnRlZCBieSBnb29nLm1vZHVsZS5cbiAgY29uc3QgbW9kdWxlTmFtZSA9XG4gICAgICBmaWxlTmFtZS5yZXBsYWNlKC9cXC98XFxcXC9nLCAnLicpLnJlcGxhY2UoL15bXmEtekEtWl8kXS8sICdfJykucmVwbGFjZSgvW15hLXpBLVowLTkuXyRdL2csICdfJyk7XG5cbiAgcmV0dXJuIG1vZHVsZU5hbWU7XG59XG4iXX0=

@@ -82,3 +82,2 @@ "use strict";

}
//# sourceMappingURL=decorators.js.map
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7OztBQUVILCtCQUFpQztBQUVqQzs7R0FFRztBQUNILGtDQUF5QyxTQUF1QixFQUFFLFdBQTJCO0lBQzNGLDZFQUE2RTtJQUM3RSxJQUFJLElBQUksR0FBWSxTQUFTLENBQUM7SUFDOUIsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDOUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsVUFBVSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztZQUN4RixJQUFJLEdBQUksSUFBeUMsQ0FBQyxVQUFVLENBQUM7UUFDL0QsQ0FBQztRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ04sdURBQXVEO1lBQ3ZELE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDWixDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksTUFBTSxHQUFHLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuRCxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7SUFDdkIsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDeEMsTUFBTSxHQUFHLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBQ0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxlQUFlLEVBQUUsSUFBSSxFQUFFLENBQUM7QUFDeEMsQ0FBQztBQWxCRCw0REFrQkM7QUFFRDs7O0dBR0c7QUFDSCwrQkFBc0MsSUFBYSxFQUFFLFdBQTJCO0lBQzlFLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVTtRQUNsQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFBLFNBQVMsSUFBSSxPQUFBLG9CQUFvQixDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsRUFBNUMsQ0FBNEMsQ0FBQyxDQUFDO0FBQ3RGLENBQUM7QUFIRCxzREFHQztBQUVEOztHQUVHO0FBQ0gsOEJBQThCLFNBQXVCLEVBQUUsV0FBMkI7SUFDaEYsTUFBTSxDQUFDLHdCQUF3QixDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBQSxXQUFXO1FBQ3RFLElBQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDdkUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ1gsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUNmLENBQUM7O1lBQ0QsR0FBRyxDQUFDLENBQXFCLElBQUEsVUFBQSxTQUFBLEtBQUssQ0FBQSw0QkFBQTtnQkFBbkIsSUFBQSxvQkFBVSxFQUFULFlBQUcsRUFBRSxZQUFHO2dCQUNsQixFQUFFLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ2xGLE1BQU0sQ0FBQyxJQUFJLENBQUM7Z0JBQ2QsQ0FBQzthQUNGOzs7Ozs7Ozs7UUFDRCxNQUFNLENBQUMsS0FBSyxDQUFDOztJQUNmLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5cbi8qKlxuICogUmV0dXJucyB0aGUgZGVjbGFyYXRpb25zIGZvciB0aGUgZ2l2ZW4gZGVjb3JhdG9yLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVjb3JhdG9yRGVjbGFyYXRpb25zKGRlY29yYXRvcjogdHMuRGVjb3JhdG9yLCB0eXBlQ2hlY2tlcjogdHMuVHlwZUNoZWNrZXIpIHtcbiAgLy8gV2FsayBkb3duIHRoZSBleHByZXNzaW9uIHRvIGZpbmQgdGhlIGlkZW50aWZpZXIgb2YgdGhlIGRlY29yYXRvciBmdW5jdGlvbi5cbiAgbGV0IG5vZGU6IHRzLk5vZGUgPSBkZWNvcmF0b3I7XG4gIHdoaWxlIChub2RlLmtpbmQgIT09IHRzLlN5bnRheEtpbmQuSWRlbnRpZmllcikge1xuICAgIGlmIChub2RlLmtpbmQgPT09IHRzLlN5bnRheEtpbmQuRGVjb3JhdG9yIHx8IG5vZGUua2luZCA9PT0gdHMuU3ludGF4S2luZC5DYWxsRXhwcmVzc2lvbikge1xuICAgICAgbm9kZSA9IChub2RlIGFzIHRzLkRlY29yYXRvciB8IHRzLkNhbGxFeHByZXNzaW9uKS5leHByZXNzaW9uO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBXZSBkbyBub3Qga25vdyBob3cgdG8gaGFuZGxlIHRoaXMgdHlwZSBvZiBkZWNvcmF0b3IuXG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICB9XG5cbiAgbGV0IGRlY1N5bSA9IHR5cGVDaGVja2VyLmdldFN5bWJvbEF0TG9jYXRpb24obm9kZSk7XG4gIGlmICghZGVjU3ltKSByZXR1cm4gW107XG4gIGlmIChkZWNTeW0uZmxhZ3MgJiB0cy5TeW1ib2xGbGFncy5BbGlhcykge1xuICAgIGRlY1N5bSA9IHR5cGVDaGVja2VyLmdldEFsaWFzZWRTeW1ib2woZGVjU3ltKTtcbiAgfVxuICByZXR1cm4gZGVjU3ltLmdldERlY2xhcmF0aW9ucygpIHx8IFtdO1xufVxuXG4vKipcbiAqIFJldHVybnMgdHJ1ZSBpZiBub2RlIGhhcyBhbiBleHBvcnRpbmcgZGVjb3JhdG9yICAoaS5lLiwgYSBkZWNvcmF0b3Igd2l0aCBARXhwb3J0RGVjb3JhdGVkSXRlbXNcbiAqIGluIGl0cyBKU0RvYykuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoYXNFeHBvcnRpbmdEZWNvcmF0b3Iobm9kZTogdHMuTm9kZSwgdHlwZUNoZWNrZXI6IHRzLlR5cGVDaGVja2VyKSB7XG4gIHJldHVybiBub2RlLmRlY29yYXRvcnMgJiZcbiAgICAgIG5vZGUuZGVjb3JhdG9ycy5zb21lKGRlY29yYXRvciA9PiBpc0V4cG9ydGluZ0RlY29yYXRvcihkZWNvcmF0b3IsIHR5cGVDaGVja2VyKSk7XG59XG5cbi8qKlxuICogUmV0dXJucyB0cnVlIGlmIHRoZSBnaXZlbiBkZWNvcmF0b3IgaGFzIGFuIEBFeHBvcnREZWNvcmF0ZWRJdGVtcyBkaXJlY3RpdmUgaW4gaXRzIEpTRG9jLlxuICovXG5mdW5jdGlvbiBpc0V4cG9ydGluZ0RlY29yYXRvcihkZWNvcmF0b3I6IHRzLkRlY29yYXRvciwgdHlwZUNoZWNrZXI6IHRzLlR5cGVDaGVja2VyKSB7XG4gIHJldHVybiBnZXREZWNvcmF0b3JEZWNsYXJhdGlvbnMoZGVjb3JhdG9yLCB0eXBlQ2hlY2tlcikuc29tZShkZWNsYXJhdGlvbiA9PiB7XG4gICAgY29uc3QgcmFuZ2UgPSB0cy5nZXRMZWFkaW5nQ29tbWVudFJhbmdlcyhkZWNsYXJhdGlvbi5nZXRGdWxsVGV4dCgpLCAwKTtcbiAgICBpZiAoIXJhbmdlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGZvciAoY29uc3Qge3BvcywgZW5kfSBvZiByYW5nZSkge1xuICAgICAgaWYgKC9ARXhwb3J0RGVjb3JhdGVkSXRlbXNcXGIvLnRlc3QoZGVjbGFyYXRpb24uZ2V0RnVsbFRleHQoKS5zdWJzdHJpbmcocG9zLCBlbmQpKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9KTtcbn1cbiJdfQ==

@@ -33,3 +33,2 @@ "use strict";

var tsickle_1 = require("./tsickle");
var util_1 = require("./util");
/**

@@ -50,3 +49,3 @@ * Extracts the namespace part of a goog: import, or returns null if the given

*/
var ES5Processor = (function (_super) {
var ES5Processor = /** @class */ (function (_super) {
__extends(ES5Processor, _super);

@@ -121,3 +120,3 @@ function ES5Processor(host, file) {

this.writeRange(this.file, pos, this.file.getEnd());
var referencedModules = util_1.toArray(this.moduleVariables.keys());
var referencedModules = Array.from(this.moduleVariables.keys());
// Note: don't sort referencedModules, as the keys are in the same order

@@ -419,3 +418,2 @@ // they occur in the source file.

exports.convertCommonJsToGoogModuleIfNeeded = convertCommonJsToGoogModuleIfNeeded;
//# sourceMappingURL=es5processor.js.map
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXM1cHJvY2Vzc29yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VzNXByb2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUgsK0JBQWlDO0FBR2pDLHVDQUF1RDtBQUN2RCxxQ0FBd0M7QUF3QnhDOzs7R0FHRztBQUNILG9DQUEyQyxRQUFnQjtJQUN6RCxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hFLE1BQU0sQ0FBQyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBSEQsZ0VBR0M7QUFFRDs7OztHQUlHO0FBQ0g7SUFBMkIsZ0NBQVE7SUEwQmpDLHNCQUFvQixJQUFzQixFQUFFLElBQW1CO1FBQS9ELFlBQ0Usa0JBQU0sSUFBSSxDQUFDLFNBQ1o7UUFGbUIsVUFBSSxHQUFKLElBQUksQ0FBa0I7UUF6QjFDOzs7Ozs7Ozs7O1dBVUc7UUFDSCxzQkFBZ0IsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO1FBRXJDOzs7V0FHRztRQUNILHFCQUFlLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7UUFFNUMsaUZBQWlGO1FBQ2pGLG9CQUFjLEdBQUcsS0FBSyxDQUFDO1FBRXZCLHlFQUF5RTtRQUN6RSxpQkFBVyxHQUFHLENBQUMsQ0FBQzs7SUFJaEIsQ0FBQztJQUVELDhCQUFPLEdBQVA7UUFDRSxJQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbEUsb0VBQW9FO1FBQ3BFLHFDQUFxQztRQUNyQyxJQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEVBQUUs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LFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7QUFDaEQsQ0FBQztBQUpELGdDQUlDO0FBRUQsNkNBQ0ksSUFBc0IsRUFBRSxlQUFnQyxFQUFFLFFBQWdCLEVBQzFFLE9BQWU7SUFDakIsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLHVCQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hELE1BQU0sQ0FBQyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUNLLElBQUEsd0NBQWlFLEVBQWhFLGtCQUFNLEVBQUUsd0NBQWlCLENBQXdDO0lBRXhFLElBQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDdkQsZUFBZSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUM7O1FBQ2hELEdBQUcsQ0FBQyxDQUFxQixJQUFBLHNCQUFBLFNBQUEsaUJBQWlCLENBQUEsb0RBQUE7WUFBckMsSUFBTSxVQUFVLDhCQUFBO1lBQ25CLGVBQWUsQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUM7U0FDM0Q7Ozs7Ozs7OztJQUVELE1BQU0sQ0FBQyxNQUFNLENBQUM7O0FBQ2hCLENBQUM7QUFmRCxrRkFlQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5cbmltcG9ydCB7TW9kdWxlc01hbmlmZXN0fSBmcm9tICcuL21vZHVsZXNfbWFuaWZlc3QnO1xuaW1wb3J0IHtnZXRJZGVudGlmaWVyVGV4dCwgUmV3cml0ZXJ9IGZyb20gJy4vcmV3cml0ZXInO1xuaW1wb3J0IHtpc0R0c0ZpbGVOYW1lfSBmcm9tICcuL3RzaWNrbGUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEVzNVByb2Nlc3Nvckhvc3Qge1xuICAvKipcbiAgICogVGFrZXMgYSBjb250ZXh0ICh0aGUgY3VycmVudCBmaWxlKSBhbmQgdGhlIHBhdGggb2YgdGhlIGZpbGUgdG8gaW1wb3J0XG4gICAqICBhbmQgZ2VuZXJhdGVzIGEgZ29vZ21vZHVsZSBtb2R1bGUgbmFtZVxuICAgKi9cbiAgcGF0aFRvTW9kdWxlTmFtZShjb250ZXh0OiBzdHJpbmcsIGltcG9ydFBhdGg6IHN0cmluZyk6IHN0cmluZztcbiAgLyoqXG4gICAqIElmIHdlIGRvIGdvb2dtb2R1bGUgcHJvY2Vzc2luZywgd2UgcG9seWZpbGwgbW9kdWxlLmlkLCBzaW5jZSB0aGF0J3NcbiAgICogcGFydCBvZiBFUzYgbW9kdWxlcy4gIFRoaXMgZnVuY3Rpb24gZGV0ZXJtaW5lcyB3aGF0IHRoZSBtb2R1bGUuaWQgd2lsbCBiZVxuICAgKiBmb3IgZWFjaCBmaWxlLlxuICAgKi9cbiAgZmlsZU5hbWVUb01vZHVsZUlkKGZpbGVOYW1lOiBzdHJpbmcpOiBzdHJpbmc7XG4gIC8qKiBXaGV0aGVyIHRvIGNvbnZlcnQgQ29tbW9uSlMgbW9kdWxlIHN5bnRheCB0byBgZ29vZy5tb2R1bGVgIENsb3N1cmUgaW1wb3J0cy4gKi9cbiAgZ29vZ21vZHVsZT86IGJvb2xlYW47XG4gIC8qKiBXaGV0aGVyIHRoZSBlbWl0IHRhcmdldHMgRVM1IG9yIEVTNisuICovXG4gIGVzNU1vZGU/OiBib29sZWFuO1xuICAvKipcbiAgICogQW4gYWRkaXRpb25hbCBwcmVsdWRlIHRvIGluc2VydCBpbiBmcm9udCBvZiB0aGUgZW1pdHRlZCBjb2RlLCBlLmcuIHRvIGltcG9ydCBhIHNoYXJlZCBsaWJyYXJ5LlxuICAgKi9cbiAgcHJlbHVkZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBFeHRyYWN0cyB0aGUgbmFtZXNwYWNlIHBhcnQgb2YgYSBnb29nOiBpbXBvcnQsIG9yIHJldHVybnMgbnVsbCBpZiB0aGUgZ2l2ZW5cbiAqIGltcG9ydCBpcyBub3QgYSBnb29nOiBpbXBvcnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0R29vZ05hbWVzcGFjZUltcG9ydCh0c0ltcG9ydDogc3RyaW5nKTogc3RyaW5nfG51bGwge1xuICBpZiAodHNJbXBvcnQubWF0Y2goL15nb29nOi8pKSByZXR1cm4gdHNJbXBvcnQuc3Vic3RyaW5nKCdnb29nOicubGVuZ3RoKTtcbiAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogRVM1UHJvY2Vzc29yIHBvc3Rwcm9jZXNzZXMgVHlwZVNjcmlwdCBjb21waWxhdGlvbiBvdXRwdXQgSlMsIHRvIHJld3JpdGUgY29tbW9uanMgcmVxdWlyZSgpcyBpbnRvXG4gKiBnb29nLnJlcXVpcmUoKS4gQ29udHJhcnkgdG8gaXRzIG5hbWUgaXQgaGFuZGxlcyBjb252ZXJ0aW5nIHRoZSBtb2R1bGVzIGluIGJvdGggRVM1IGFuZCBFUzZcbiAqIG91dHB1dHMuXG4gKi9cbmNsYXNzIEVTNVByb2Nlc3NvciBleHRlbmRzIFJld3JpdGVyIHtcbiAgLyoqXG4gICAqIG5hbWVzcGFjZUltcG9ydHMgY29sbGVjdHMgdGhlIHZhcmlhYmxlcyBmb3IgaW1wb3J0ZWQgZ29vZy5tb2R1bGVzLlxuICAgKiBJZiB0aGUgb3JpZ2luYWwgVFMgaW5wdXQgaXM6XG4gICAqICAgaW1wb3J0IGZvbyBmcm9tICdnb29nOmJhcic7XG4gICAqIHRoZW4gVFMgcHJvZHVjZXM6XG4gICAqICAgdmFyIGZvbyA9IHJlcXVpcmUoJ2dvb2c6YmFyJyk7XG4gICAqIGFuZCB0aGlzIGNsYXNzIHJld3JpdGVzIGl0IHRvOlxuICAgKiAgIHZhciBmb28gPSByZXF1aXJlKCdnb29nLmJhcicpO1xuICAgKiBBZnRlciB0aGlzIHN0ZXAsIG5hbWVzcGFjZUltcG9ydHNbJ2ZvbyddIGlzIHRydWUuXG4gICAqIChUaGlzIGlzIHVzZWQgdG8gcmV3cml0ZSAnZm9vLmRlZmF1bHQnIGludG8ganVzdCAnZm9vJy4pXG4gICAqL1xuICBuYW1lc3BhY2VJbXBvcnRzID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgLyoqXG4gICAqIG1vZHVsZVZhcmlhYmxlcyBtYXBzIGZyb20gbW9kdWxlIG5hbWVzIHRvIHRoZSB2YXJpYWJsZXMgdGhleSdyZSBhc3NpZ25lZCB0by5cbiAgICogQ29udGludWluZyB0aGUgYWJvdmUgZXhhbXBsZSwgbW9kdWxlVmFyaWFibGVzWydnb29nLmJhciddID0gJ2ZvbycuXG4gICAqL1xuICBtb2R1bGVWYXJpYWJsZXMgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuXG4gIC8qKiBzdHJpcHBlZFN0cmljdCBpcyB0cnVlIG9uY2Ugd2UndmUgc3RyaXBwZWQgYSBcInVzZSBzdHJpY3RcIjsgZnJvbSB0aGUgaW5wdXQuICovXG4gIHN0cmlwcGVkU3RyaWN0ID0gZmFsc2U7XG5cbiAgLyoqIHVudXNlZEluZGV4IGlzIHVzZWQgdG8gZ2VuZXJhdGUgZnJlc2ggc3ltYm9scyBmb3IgdW5uYW1lZCBpbXBvcnRzLiAqL1xuICB1bnVzZWRJbmRleCA9IDA7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBob3N0OiBFczVQcm9jZXNzb3JIb3N0LCBmaWxlOiB0cy5Tb3VyY2VGaWxlKSB7XG4gICAgc3VwZXIoZmlsZSk7XG4gIH1cblxuICBwcm9jZXNzKCk6IHtvdXRwdXQ6IHN0cmluZywgcmVmZXJlbmNlZE1vZHVsZXM6IHN0cmluZ1tdfSB7XG4gICAgY29uc3QgbW9kdWxlSWQgPSB0aGlzLmhvc3QuZmlsZU5hbWVUb01vZHVsZUlkKHRoaXMuZmlsZS5maWxlTmFtZSk7XG4gICAgLy8gVE9ETyhldmFubSk6IG9ubHkgZW1pdCB0aGUgZ29vZy5tb2R1bGUgKmFmdGVyKiB0aGUgZmlyc3QgY29tbWVudCxcbiAgICAvLyBzbyB0aGF0IEBzdXBwcmVzcyBzdGF0ZW1lbnRzIHdvcmsuXG4gICAgY29uc3QgbW9kdWxlTmFtZSA9IHRoaXMuaG9zdC5wYXRoVG9Nb2R1bGVOYW1lKCcnLCB0aGlzLmZpbGUuZmlsZU5hbWUpO1xuICAgIC8vIE5COiBObyBsaW5lYnJlYWsgYWZ0ZXIgbW9kdWxlIGNhbGwgc28gc291cmNlbWFwcyBhcmUgbm90IG9mZnNldC5cbiAgICB0aGlzLmVtaXQoYGdvb2cubW9kdWxlKCcke21vZHVsZU5hbWV9Jyk7YCk7XG4gICAgaWYgKHRoaXMuaG9zdC5wcmVsdWRlKSB0aGlzLmVtaXQodGhpcy5ob3N0LnByZWx1ZGUpO1xuICAgIC8vIEFsbG93IGNvZGUgdG8gdXNlIGBtb2R1bGUuaWRgIHRvIGRpc2NvdmVyIGl0cyBtb2R1bGUgVVJMLCBlLmcuIHRvIHJlc29sdmVcbiAgICAvLyBhIHRlbXBsYXRlIFVSTCBhZ2FpbnN0LlxuICAgIC8vIFVzZXMgJ3ZhcicsIGFzIHRoaXMgY29kZSBpcyBpbnNlcnRlZCBpbiBFUzYgYW5kIEVTNSBtb2Rlcy5cbiAgICAvLyBUaGUgZm9sbG93aW5nIHBhdHRlcm4gZW5zdXJlcyBjbG9zdXJlIGRvZXNuJ3QgdGhyb3cgYW4gZXJyb3IgaW4gYWR2YW5jZWRcbiAgICAvLyBvcHRpbWl6YXRpb25zIG1vZGUuXG4gICAgaWYgKHRoaXMuaG9zdC5lczVNb2RlKSB7XG4gICAgICB0aGlzLmVtaXQoYHZhciBtb2R1bGUgPSBtb2R1bGUgfHwge2lkOiAnJHttb2R1bGVJZH0nfTtgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVGhlIGBleHBvcnRzID0ge31gIHNlcnZlcyBhcyBhIGRlZmF1bHQgZXhwb3J0IHRvIGRpc2FibGUgQ2xvc3VyZSBDb21waWxlcidzIGVycm9yIGNoZWNraW5nXG4gICAgICAvLyBmb3IgbXV0YWJsZSBleHBvcnRzLiBUaGF0J3MgT0sgYmVjYXVzZSBUUyBjb21waWxlciBtYWtlcyBzdXJlIHRoYXQgY29uc3VtaW5nIGNvZGUgYWx3YXlzXG4gICAgICAvLyBhY2Nlc3NlcyBleHBvcnRzIHRocm91Z2ggdGhlIG1vZHVsZSBvYmplY3QsIHNvIG11dGFibGUgZXhwb3J0cyB3b3JrLlxuICAgICAgLy8gSXQgaXMgb25seSBpbnNlcnRlZCBpbiBFUzYgYmVjYXVzZSB3ZSBzdHJpcCBgLmRlZmF1bHRgIGFjY2Vzc2VzIGluIEVTNSBtb2RlLCB3aGljaCBicmVha3NcbiAgICAgIC8vIHdoZW4gYXNzaWduaW5nIGFuIGBleHBvcnRzID0ge31gIG9iamVjdCBhbmQgdGhlbiBsYXRlciBhY2Nlc3NpbmcgaXQuXG4gICAgICB0aGlzLmVtaXQoYCBleHBvcnRzID0ge307IHZhciBtb2R1bGUgPSB7aWQ6ICcke21vZHVsZUlkfSd9O2ApO1xuICAgIH1cblxuICAgIGxldCBwb3MgPSAwO1xuICAgIGZvciAoY29uc3Qgc3RtdCBvZiB0aGlzLmZpbGUuc3RhdGVtZW50cykge1xuICAgICAgdGhpcy53cml0ZVJhbmdlKHRoaXMuZmlsZSwgcG9zLCBzdG10LmdldEZ1bGxTdGFydCgpKTtcbiAgICAgIHRoaXMudmlzaXRUb3BMZXZlbChzdG10KTtcbiAgICAgIHBvcyA9IHN0bXQuZ2V0RW5kKCk7XG4gICAgfVxuICAgIHRoaXMud3JpdGVSYW5nZSh0aGlzLmZpbGUsIHBvcywgdGhpcy5maWxlLmdldEVuZCgpKTtcblxuICAgIGNvbnN0IHJlZmVyZW5jZWRNb2R1bGVzID0gQXJyYXkuZnJvbSh0aGlzLm1vZHVsZVZhcmlhYmxlcy5rZXlzKCkpO1xuICAgIC8vIE5vdGU6IGRvbid0IHNvcnQgcmVmZXJlbmNlZE1vZHVsZXMsIGFzIHRoZSBrZXlzIGFyZSBpbiB0aGUgc2FtZSBvcmRlclxuICAgIC8vIHRoZXkgb2NjdXIgaW4gdGhlIHNvdXJjZSBmaWxlLlxuICAgIGNvbnN0IHtvdXRwdXR9ID0gdGhpcy5nZXRPdXRwdXQoKTtcbiAgICByZXR1cm4ge291dHB1dCwgcmVmZXJlbmNlZE1vZHVsZXN9O1xuICB9XG5cbiAgLyoqXG4gICAqIHZpc2l0VG9wTGV2ZWwgcHJvY2Vzc2VzIGEgdG9wLWxldmVsIHRzLk5vZGUgYW5kIGVtaXRzIGl0cyBjb250ZW50cy5cbiAgICpcbiAgICogSXQncyBzZXBhcmF0ZSBmcm9tIHRoZSBub3JtYWwgUmV3cml0ZXIgcmVjdXJzaXZlIHRyYXZlcnNhbFxuICAgKiBiZWNhdXNlIHNvbWUgdG9wLWxldmVsIHN0YXRlbWVudHMgYXJlIGhhbmRsZWQgc3BlY2lhbGx5LlxuICAgKi9cbiAgdmlzaXRUb3BMZXZlbChub2RlOiB0cy5Ob2RlKSB7XG4gICAgc3dpdGNoIChub2RlLmtpbmQpIHtcbiAgICAgIGNhc2UgdHMuU3ludGF4S2luZC5FeHByZXNzaW9uU3RhdGVtZW50OlxuICAgICAgICAvLyBDaGVjayBmb3IgXCJ1c2Ugc3RyaWN0XCIgYW5kIHNraXAgaXQgaWYgbmVjZXNzYXJ5LlxuICAgICAgICBpZiAoIXRoaXMuc3RyaXBwZWRTdHJpY3QgJiYgdGhpcy5pc1VzZVN0cmljdChub2RlKSkge1xuICAgICAgICAgIHRoaXMuZW1pdENvbW1lbnRXaXRob3V0U3RhdGVtZW50Qm9keShub2RlKTtcbiAgICAgICAgICB0aGlzLnN0cmlwcGVkU3RyaWN0ID0gdHJ1ZTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gQ2hlY2sgZm9yOlxuICAgICAgICAvLyAtIFwicmVxdWlyZSgnZm9vJyk7XCIgKGEgcmVxdWlyZSBmb3IgaXRzIHNpZGUgZWZmZWN0cylcbiAgICAgICAgLy8gLSBcIl9fZXhwb3J0KHJlcXVpcmUoLi4uKSk7XCIgKGFuIFwiZXhwb3J0ICogZnJvbSAuLi5cIilcbiAgICAgICAgaWYgKHRoaXMuZW1pdFJld3JpdHRlblJlcXVpcmVzKG5vZGUpKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIENoZWNrIGZvclxuICAgICAgICAvLyAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgLi4uKTtcbiAgICAgICAgaWYgKHRoaXMuaXNFc01vZHVsZVByb3BlcnR5KG5vZGUgYXMgdHMuRXhwcmVzc2lvblN0YXRlbWVudCkpIHtcbiAgICAgICAgICB0aGlzLmVtaXRDb21tZW50V2l0aG91dFN0YXRlbWVudEJvZHkobm9kZSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIE90aGVyd2lzZSBmYWxsIHRocm91Z2ggdG8gZGVmYXVsdCBwcm9jZXNzaW5nLlxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgdHMuU3ludGF4S2luZC5WYXJpYWJsZVN0YXRlbWVudDpcbiAgICAgICAgLy8gQ2hlY2sgZm9yIGEgXCJ2YXIgeCA9IHJlcXVpcmUoJ2ZvbycpO1wiLlxuICAgICAgICBpZiAodGhpcy5lbWl0UmV3cml0dGVuUmVxdWlyZXMobm9kZSkpIHJldHVybjtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgdGhpcy52aXNpdChub2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgVHlwZVNjcmlwdCBBU1QgYXR0YWNoZXMgY29tbWVudHMgdG8gc3RhdGVtZW50IG5vZGVzLCBzbyBldmVuIGlmIGEgbm9kZVxuICAgKiBjb250YWlucyBjb2RlIHdlIHdhbnQgdG8gc2tpcCBlbWl0dGluZywgd2UgbmVlZCB0byBlbWl0IHRoZSBhdHRhY2hlZFxuICAgKiBjb21tZW50KHMpLlxuICAgKi9cbiAgZW1pdENvbW1lbnRXaXRob3V0U3RhdGVtZW50Qm9keShub2RlOiB0cy5Ob2RlKSB7XG4gICAgdGhpcy53cml0ZUxlYWRpbmdUcml2aWEobm9kZSk7XG4gIH1cblxuICAvKiogaXNVc2VTdHJpY3QgcmV0dXJucyB0cnVlIGlmIG5vZGUgaXMgYSBcInVzZSBzdHJpY3RcIjsgc3RhdGVtZW50LiAqL1xuICBpc1VzZVN0cmljdChub2RlOiB0cy5Ob2RlKTogYm9vbGVhbiB7XG4gICAgaWYgKG5vZGUua2luZCAhPT0gdHMuU3ludGF4S2luZC5FeHByZXNzaW9uU3RhdGVtZW50KSByZXR1cm4gZmFsc2U7XG4gICAgY29uc3QgZXhwclN0bXQgPSBub2RlIGFzIHRzLkV4cHJlc3Npb25TdGF0ZW1lbnQ7XG4gICAgY29uc3QgZXhwciA9IGV4cHJTdG10LmV4cHJlc3Npb247XG4gICAgaWYgKGV4cHIua2luZCAhPT0gdHMuU3ludGF4S2luZC5TdHJpbmdMaXRlcmFsKSByZXR1cm4gZmFsc2U7XG4gICAgY29uc3QgbGl0ZXJhbCA9IGV4cHIgYXMgdHMuU3RyaW5nTGl0ZXJhbDtcbiAgICByZXR1cm4gbGl0ZXJhbC50ZXh0ID09PSAndXNlIHN0cmljdCc7XG4gIH1cblxuICAvKipcbiAgICogZW1pdFJld3JpdHRlblJlcXVpcmVzIHJld3JpdGVzIHJlcXVpcmUoKXMgaW50byBnb29nLnJlcXVpcmUoKSBlcXVpdmFsZW50cy5cbiAgICpcbiAgICogQHJldHVybiBUcnVlIGlmIHRoZSBub2RlIHdhcyByZXdyaXR0ZW4sIGZhbHNlIGlmIG5lZWRzIG9yZGluYXJ5IHByb2Nlc3NpbmcuXG4gICAqL1xuICBlbWl0UmV3cml0dGVuUmVxdWlyZXMobm9kZTogdHMuTm9kZSk6IGJvb2xlYW4ge1xuICAgIC8vIFdlJ3JlIGxvb2tpbmcgZm9yIHJlcXVpcmVzLCBvZiBvbmUgb2YgdGhlIGZvcm1zOlxuICAgIC8vIC0gXCJ2YXIgaW1wb3J0TmFtZSA9IHJlcXVpcmUoLi4uKTtcIi5cbiAgICAvLyAtIFwicmVxdWlyZSguLi4pO1wiLlxuICAgIGlmIChub2RlLmtpbmQgPT09IHRzLlN5bnRheEtpbmQuVmFyaWFibGVTdGF0ZW1lbnQpIHtcbiAgICAgIC8vIEl0J3MgcG9zc2libHkgb2YgdGhlIGZvcm0gXCJ2YXIgeCA9IHJlcXVpcmUoLi4uKTtcIi5cbiAgICAgIGNvbnN0IHZhclN0bXQgPSBub2RlIGFzIHRzLlZhcmlhYmxlU3RhdGVtZW50O1xuXG4gICAgICAvLyBWZXJpZnkgaXQncyBhIHNpbmdsZSBkZWNsIChhbmQgbm90IFwidmFyIHggPSAuLi4sIHkgPSAuLi47XCIpLlxuICAgICAgaWYgKHZhclN0bXQuZGVjbGFyYXRpb25MaXN0LmRlY2xhcmF0aW9ucy5sZW5ndGggIT09IDEpIHJldHVybiBmYWxzZTtcbiAgICAgIGNvbnN0IGRlY2wgPSB2YXJTdG10LmRlY2xhcmF0aW9uTGlzdC5kZWNsYXJhdGlvbnNbMF07XG5cbiAgICAgIC8vIEdyYWIgdGhlIHZhcmlhYmxlIG5hbWUgKGF2b2lkaW5nIHRoaW5ncyBsaWtlIGRlc3RydWN0dXJpbmcgYmluZHMpLlxuICAgICAgaWYgKGRlY2wubmFtZS5raW5kICE9PSB0cy5TeW50YXhLaW5kLklkZW50aWZpZXIpIHJldHVybiBmYWxzZTtcbiAgICAgIGNvbnN0IHZhck5hbWUgPSBnZXRJZGVudGlmaWVyVGV4dChkZWNsLm5hbWUgYXMgdHMuSWRlbnRpZmllcik7XG4gICAgICBpZiAoIWRlY2wuaW5pdGlhbGl6ZXIgfHwgZGVjbC5pbml0aWFsaXplci5raW5kICE9PSB0cy5TeW50YXhLaW5kLkNhbGxFeHByZXNzaW9uKSByZXR1cm4gZmFsc2U7XG4gICAgICBjb25zdCBjYWxsID0gZGVjbC5pbml0aWFsaXplciBhcyB0cy5DYWxsRXhwcmVzc2lvbjtcbiAgICAgIGNvbnN0IHJlcXVpcmUgPSB0aGlzLmlzUmVxdWlyZShjYWxsKTtcbiAgICAgIGlmICghcmVxdWlyZSkgcmV0dXJuIGZhbHNlO1xuICAgICAgdGhpcy53cml0ZUxlYWRpbmdUcml2aWEobm9kZSk7XG4gICAgICB0aGlzLmVtaXRHb29nUmVxdWlyZSh2YXJOYW1lLCByZXF1aXJlKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSBpZiAobm9kZS5raW5kID09PSB0cy5TeW50YXhLaW5kLkV4cHJlc3Npb25TdGF0ZW1lbnQpIHtcbiAgICAgIC8vIEl0J3MgcG9zc2libHkgb2YgdGhlIGZvcm06XG4gICAgICAvLyAtIHJlcXVpcmUoLi4uKTtcbiAgICAgIC8vIC0gX19leHBvcnQocmVxdWlyZSguLi4pKTtcbiAgICAgIC8vIEJvdGggYXJlIENhbGxFeHByZXNzaW9ucy5cbiAgICAgIGNvbnN0IGV4cHJTdG10ID0gbm9kZSBhcyB0cy5FeHByZXNzaW9uU3RhdGVtZW50O1xuICAgICAgY29uc3QgZXhwciA9IGV4cHJTdG10LmV4cHJlc3Npb247XG4gICAgICBpZiAoZXhwci5raW5kICE9PSB0cy5TeW50YXhLaW5kLkNhbGxFeHByZXNzaW9uKSByZXR1cm4gZmFsc2U7XG4gICAgICBjb25zdCBjYWxsID0gZXhwciBhcyB0cy5DYWxsRXhwcmVzc2lvbjtcblxuICAgICAgbGV0IHJlcXVpcmUgPSB0aGlzLmlzUmVxdWlyZShjYWxsKTtcbiAgICAgIGxldCBpc0V4cG9ydCA9IGZhbHNlO1xuICAgICAgaWYgKCFyZXF1aXJlKSB7XG4gICAgICAgIC8vIElmIGl0J3MgYW4gX19leHBvcnQocmVxdWlyZSguLi4pKSwgd2UgZW1pdDpcbiAgICAgICAgLy8gICB2YXIgeCA9IHJlcXVpcmUoLi4uKTtcbiAgICAgICAgLy8gICBfX2V4cG9ydCh4KTtcbiAgICAgICAgLy8gVGhpcyBleHRyYSB2YXJpYWJsZSBpcyBuZWNlc3NhcnkgaW4gY2FzZSB0aGVyZSdzIGEgbGF0ZXIgaW1wb3J0IG9mIHRoZVxuICAgICAgICAvLyBzYW1lIG1vZHVsZSBuYW1lLlxuICAgICAgICByZXF1aXJlID0gdGhpcy5pc0V4cG9ydFJlcXVpcmUoY2FsbCk7XG4gICAgICAgIGlzRXhwb3J0ID0gcmVxdWlyZSAhPSBudWxsO1xuICAgICAgfVxuICAgICAgaWYgKCFyZXF1aXJlKSByZXR1cm4gZmFsc2U7XG5cbiAgICAgIHRoaXMud3JpdGVMZWFkaW5nVHJpdmlhKG5vZGUpO1xuICAgICAgY29uc3QgdmFyTmFtZSA9IHRoaXMuZW1pdEdvb2dSZXF1aXJlKG51bGwsIHJlcXVpcmUpO1xuXG4gICAgICBpZiAoaXNFeHBvcnQpIHtcbiAgICAgICAgdGhpcy5lbWl0KGBfX2V4cG9ydCgke3Zhck5hbWV9KTtgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBJdCdzIHNvbWUgb3RoZXIgdHlwZSBvZiBzdGF0ZW1lbnQuXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEVtaXRzIGEgZ29vZy5yZXF1aXJlKCkgc3RhdGVtZW50IGZvciBhIGdpdmVuIHZhcmlhYmxlIG5hbWUgYW5kIFR5cGVTY3JpcHQgaW1wb3J0LlxuICAgKlxuICAgKiBFLmcuIGZyb206XG4gICAqICAgdmFyIHZhck5hbWUgPSByZXF1aXJlKCd0c0ltcG9ydCcpO1xuICAgKiBwcm9kdWNlczpcbiAgICogICB2YXIgdmFyTmFtZSA9IGdvb2cucmVxdWlyZSgnZ29vZy5tb2R1bGUubmFtZScpO1xuICAgKlxuICAgKiBJZiB0aGUgaW5wdXQgdmFyTmFtZSBpcyBudWxsLCBnZW5lcmF0ZXMgYSBuZXcgdmFyaWFibGUgbmFtZSBpZiBuZWNlc3NhcnkuXG4gICAqXG4gICAqIEByZXR1cm4gVGhlIHZhcmlhYmxlIG5hbWUgZm9yIHRoZSBpbXBvcnRlZCBtb2R1bGUsIHJldXNpbmcgYSBwcmV2aW91cyBpbXBvcnQgaWYgb25lXG4gICAqICAgIGlzIGF2YWlsYWJsZS5cbiAgICovXG4gIGVtaXRHb29nUmVxdWlyZSh2YXJOYW1lOiBzdHJpbmd8bnVsbCwgdHNJbXBvcnQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgbGV0IG1vZE5hbWU6IHN0cmluZztcbiAgICBsZXQgaXNOYW1lc3BhY2VJbXBvcnQgPSBmYWxzZTtcbiAgICBjb25zdCBuc0ltcG9ydCA9IGV4dHJhY3RHb29nTmFtZXNwYWNlSW1wb3J0KHRzSW1wb3J0KTtcbiAgICBpZiAobnNJbXBvcnQgIT09IG51bGwpIHtcbiAgICAgIC8vIFRoaXMgaXMgYSBuYW1lc3BhY2UgaW1wb3J0LCBvZiB0aGUgZm9ybSBcImdvb2c6Zm9vLmJhclwiLlxuICAgICAgLy8gRml4IGl0IHRvIGp1c3QgXCJmb28uYmFyXCIuXG4gICAgICBtb2ROYW1lID0gbnNJbXBvcnQ7XG4gICAgICBpc05hbWVzcGFjZUltcG9ydCA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIG1vZE5hbWUgPSB0aGlzLmhvc3QucGF0aFRvTW9kdWxlTmFtZSh0aGlzLmZpbGUuZmlsZU5hbWUsIHRzSW1wb3J0KTtcbiAgICB9XG5cbiAgICBpZiAoIXZhck5hbWUpIHtcbiAgICAgIGNvbnN0IG12ID0gdGhpcy5tb2R1bGVWYXJpYWJsZXMuZ2V0KG1vZE5hbWUpO1xuICAgICAgaWYgKG12KSB7XG4gICAgICAgIC8vIENhbGxlciBkaWRuJ3QgcmVxdWVzdCBhIHNwZWNpZmljIHZhcmlhYmxlIG5hbWUgYW5kIHdlJ3ZlIGFscmVhZHlcbiAgICAgICAgLy8gaW1wb3J0ZWQgdGhlIG1vZHVsZSwgc28ganVzdCByZXR1cm4gdGhlIG5hbWUgd2UgYWxyZWFkeSBoYXZlIGZvciB0aGlzIG1vZHVsZS5cbiAgICAgICAgcmV0dXJuIG12O1xuICAgICAgfVxuXG4gICAgICAvLyBOb3RlOiB3ZSBhbHdheXMgaW50cm9kdWNlIGEgdmFyaWFibGUgZm9yIGFueSBpbXBvcnQsIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlclxuICAgICAgLy8gdGhlIGNhbGxlciByZXF1ZXN0ZWQgb25lLiAgVGhpcyBhdm9pZHMgYSBDbG9zdXJlIGVycm9yLlxuICAgICAgdmFyTmFtZSA9IHRoaXMuZ2VuZXJhdGVGcmVzaFZhcmlhYmxlTmFtZSgpO1xuICAgIH1cblxuICAgIGlmIChpc05hbWVzcGFjZUltcG9ydCkgdGhpcy5uYW1lc3BhY2VJbXBvcnRzLmFkZCh2YXJOYW1lKTtcbiAgICBpZiAodGhpcy5tb2R1bGVWYXJpYWJsZXMuaGFzKG1vZE5hbWUpKSB7XG4gICAgICB0aGlzLmVtaXQoYHZhciAke3Zhck5hbWV9ID0gJHt0aGlzLm1vZHVsZVZhcmlhYmxlcy5nZXQobW9kTmFtZSl9O2ApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmVtaXQoYHZhciAke3Zhck5hbWV9ID0gZ29vZy5yZXF1aXJlKCcke21vZE5hbWV9Jyk7YCk7XG4gICAgICB0aGlzLm1vZHVsZVZhcmlhYmxlcy5zZXQobW9kTmFtZSwgdmFyTmFtZSk7XG4gICAgfVxuICAgIHJldHVybiB2YXJOYW1lO1xuICB9XG4gIC8vIHdvcmthcm91bmQgZm9yIHN5bnRheCBoaWdobGlnaHRpbmcgYnVnIGluIFN1YmxpbWU6IGBcblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgc3RyaW5nIGFyZ3VtZW50IGlmIGNhbGwgaXMgb2YgdGhlIGZvcm1cbiAgICogICByZXF1aXJlKCdmb28nKVxuICAgKi9cbiAgaXNSZXF1aXJlKGNhbGw6IHRzLkNhbGxFeHByZXNzaW9uKTogc3RyaW5nfG51bGwge1xuICAgIC8vIFZlcmlmeSB0aGF0IHRoZSBjYWxsIGlzIGEgY2FsbCB0byByZXF1aXJlKC4uLikuXG4gICAgaWYgKGNhbGwuZXhwcmVzc2lvbi5raW5kICE9PSB0cy5TeW50YXhLaW5kLklkZW50aWZpZXIpIHJldHVybiBudWxsO1xuICAgIGNvbnN0IGlkZW50ID0gY2FsbC5leHByZXNzaW9uIGFzIHRzLklkZW50aWZpZXI7XG4gICAgaWYgKGdldElkZW50aWZpZXJUZXh0KGlkZW50KSAhPT0gJ3JlcXVpcmUnKSByZXR1cm4gbnVsbDtcblxuICAgIC8vIFZlcmlmeSB0aGUgY2FsbCB0YWtlcyBhIHNpbmdsZSBzdHJpbmcgYXJndW1lbnQgYW5kIGdyYWIgaXQuXG4gICAgaWYgKGNhbGwuYXJndW1lbnRzLmxlbmd0aCAhPT0gMSkgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgYXJnID0gY2FsbC5hcmd1bWVudHNbMF07XG4gICAgaWYgKGFyZy5raW5kICE9PSB0cy5TeW50YXhLaW5kLlN0cmluZ0xpdGVyYWwpIHJldHVybiBudWxsO1xuICAgIHJldHVybiAoYXJnIGFzIHRzLlN0cmluZ0xpdGVyYWwpLnRleHQ7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgaW5uZXIgc3RyaW5nIGlmIGNhbGwgaXMgb2YgdGhlIGZvcm1cbiAgICogICBfX2V4cG9ydChyZXF1aXJlKCdmb28nKSlcbiAgICovXG4gIGlzRXhwb3J0UmVxdWlyZShjYWxsOiB0cy5DYWxsRXhwcmVzc2lvbik6IHN0cmluZ3xudWxsIHtcbiAgICBpZiAoY2FsbC5leHByZXNzaW9uLmtpbmQgIT09IHRzLlN5bnRheEtpbmQuSWRlbnRpZmllcikgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgaWRlbnQgPSBjYWxsLmV4cHJlc3Npb24gYXMgdHMuSWRlbnRpZmllcjtcbiAgICBpZiAoaWRlbnQuZ2V0VGV4dCgpICE9PSAnX19leHBvcnQnKSByZXR1cm4gbnVsbDtcblxuICAgIC8vIFZlcmlmeSB0aGUgY2FsbCB0YWtlcyBhIHNpbmdsZSBjYWxsIGFyZ3VtZW50IGFuZCBjaGVjayBpdC5cbiAgICBpZiAoY2FsbC5hcmd1bWVudHMubGVuZ3RoICE9PSAxKSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCBhcmcgPSBjYWxsLmFyZ3VtZW50c1swXTtcbiAgICBpZiAoYXJnLmtpbmQgIT09IHRzLlN5bnRheEtpbmQuQ2FsbEV4cHJlc3Npb24pIHJldHVybiBudWxsO1xuICAgIHJldHVybiB0aGlzLmlzUmVxdWlyZShhcmcgYXMgdHMuQ2FsbEV4cHJlc3Npb24pO1xuICB9XG5cbiAgaXNFc01vZHVsZVByb3BlcnR5KGV4cHI6IHRzLkV4cHJlc3Npb25TdGF0ZW1lbnQpOiBib29sZWFuIHtcbiAgICAvLyBXZSdyZSBtYXRjaGluZyB0aGUgZXhwbGljaXQgc291cmNlIHRleHQgZ2VuZXJhdGVkIGJ5IHRoZSBUUyBjb21waWxlci5cbiAgICByZXR1cm4gZXhwci5nZXRUZXh0KCkgPT09ICdPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7JztcbiAgfVxuXG4gIC8qKlxuICAgKiBtYXliZVByb2Nlc3MgaXMgY2FsbGVkIGR1cmluZyB0aGUgcmVjdXJzaXZlIHRyYXZlcnNhbCBvZiB0aGUgcHJvZ3JhbSdzIEFTVC5cbiAgICpcbiAgICogQHJldHVybiBUcnVlIGlmIHRoZSBub2RlIHdhcyBwcm9jZXNzZWQvZW1pdHRlZCwgZmFsc2UgaWYgaXQgc2hvdWxkIGJlIGVtaXR0ZWQgYXMgaXMuXG4gICAqL1xuICBwcm90ZWN0ZWQgbWF5YmVQcm9jZXNzKG5vZGU6IHRzLk5vZGUpOiBib29sZWFuIHtcbiAgICBzd2l0Y2ggKG5vZGUua2luZCkge1xuICAgICAgY2FzZSB0cy5TeW50YXhLaW5kLlByb3BlcnR5QWNjZXNzRXhwcmVzc2lvbjpcbiAgICAgICAgY29uc3QgcHJvcEFjY2VzcyA9IG5vZGUgYXMgdHMuUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uO1xuICAgICAgICAvLyBXZSdyZSBsb29raW5nIGZvciBhbiBleHByZXNzaW9uIG9mIHRoZSBmb3JtOlxuICAgICAgICAvLyAgIG1vZHVsZV9uYW1lX3Zhci5kZWZhdWx0XG4gICAgICAgIGlmIChnZXRJZGVudGlmaWVyVGV4dChwcm9wQWNjZXNzLm5hbWUpICE9PSAnZGVmYXVsdCcpIGJyZWFrO1xuICAgICAgICBpZiAocHJvcEFjY2Vzcy5leHByZXNzaW9uLmtpbmQgIT09IHRzLlN5bnRheEtpbmQuSWRlbnRpZmllcikgYnJlYWs7XG4gICAgICAgIGNvbnN0IGxocyA9IGdldElkZW50aWZpZXJUZXh0KHByb3BBY2Nlc3MuZXhwcmVzc2lvbiBhcyB0cy5JZGVudGlmaWVyKTtcbiAgICAgICAgaWYgKCF0aGlzLm5hbWVzcGFjZUltcG9ydHMuaGFzKGxocykpIGJyZWFrO1xuICAgICAgICAvLyBFbWl0IHRoZSBzYW1lIGV4cHJlc3Npb24sIHdpdGggc3BhY2VzIHRvIHJlcGxhY2UgdGhlIFwiLmRlZmF1bHRcIiBwYXJ0XG4gICAgICAgIC8vIHNvIHRoYXQgc291cmNlIG1hcHMgc3RpbGwgbGluZSB1cC5cbiAgICAgICAgdGhpcy53cml0ZUxlYWRpbmdUcml2aWEobm9kZSk7XG4gICAgICAgIHRoaXMuZW1pdChgJHtsaHN9ICAgICAgICBgKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqIEdlbmVyYXRlcyBhIG5ldyB2YXJpYWJsZSBuYW1lIGluc2lkZSB0aGUgdHNpY2tsZV8gbmFtZXNwYWNlLiAqL1xuICBnZW5lcmF0ZUZyZXNoVmFyaWFibGVOYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGB0c2lja2xlX21vZHVsZV8ke3RoaXMudW51c2VkSW5kZXgrK31fYDtcbiAgfVxufVxuXG4vKipcbiAqIENvbnZlcnRzIFR5cGVTY3JpcHQncyBKUytDb21tb25KUyBvdXRwdXQgdG8gQ2xvc3VyZSBnb29nLm1vZHVsZSBldGMuXG4gKiBGb3IgdXNlIGFzIGEgcG9zdHByb2Nlc3Npbmcgc3RlcCAqYWZ0ZXIqIFR5cGVTY3JpcHQgZW1pdHMgSmF2YVNjcmlwdC5cbiAqXG4gKiBAcGFyYW0gZmlsZU5hbWUgVGhlIHNvdXJjZSBmaWxlIG5hbWUuXG4gKiBAcGFyYW0gbW9kdWxlSWQgVGhlIFwibW9kdWxlIGlkXCIsIGEgbW9kdWxlLWlkZW50aWZ5aW5nIHN0cmluZyB0aGF0IGlzXG4gKiAgICAgdGhlIHZhbHVlIG1vZHVsZS5pZCBpbiB0aGUgc2NvcGUgb2YgdGhlIG1vZHVsZS5cbiAqIEBwYXJhbSBwYXRoVG9Nb2R1bGVOYW1lIEEgZnVuY3Rpb24gdGhhdCBtYXBzIGEgZmlsZXN5c3RlbSAudHMgcGF0aCB0byBhXG4gKiAgICAgQ2xvc3VyZSBtb2R1bGUgbmFtZSwgYXMgZm91bmQgaW4gYSBnb29nLnJlcXVpcmUoJy4uLicpIHN0YXRlbWVudC5cbiAqICAgICBUaGUgY29udGV4dCBwYXJhbWV0ZXIgaXMgdGhlIHJlZmVyZW5jaW5nIGZpbGUsIHVzZWQgZm9yIHJlc29sdmluZ1xuICogICAgIGltcG9ydHMgd2l0aCByZWxhdGl2ZSBwYXRocyBsaWtlIFwiaW1wb3J0ICogYXMgZm9vIGZyb20gJy4uL2Zvbyc7XCIuXG4gKiBAcGFyYW0gcHJlbHVkZSBBbiBhZGRpdGlvbmFsIHByZWx1ZGUgdG8gaW5zZXJ0IGFmdGVyIHRoZSBgZ29vZy5tb2R1bGVgIGNhbGwsXG4gKiAgICAgZS5nLiB3aXRoIGFkZGl0aW9uYWwgaW1wb3J0cyBvciByZXF1aXJlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb2Nlc3NFUzUoaG9zdDogRXM1UHJvY2Vzc29ySG9zdCwgZmlsZU5hbWU6IHN0cmluZywgY29udGVudDogc3RyaW5nKTpcbiAgICB7b3V0cHV0OiBzdHJpbmcsIHJlZmVyZW5jZWRNb2R1bGVzOiBzdHJpbmdbXX0ge1xuICBjb25zdCBmaWxlID0gdHMuY3JlYXRlU291cmNlRmlsZShmaWxlTmFtZSwgY29udGVudCwgdHMuU2NyaXB0VGFyZ2V0LkVTNSwgdHJ1ZSk7XG4gIHJldHVybiBuZXcgRVM1UHJvY2Vzc29yKGhvc3QsIGZpbGUpLnByb2Nlc3MoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRDb21tb25Kc1RvR29vZ01vZHVsZUlmTmVlZGVkKFxuICAgIGhvc3Q6IEVzNVByb2Nlc3Nvckhvc3QsIG1vZHVsZXNNYW5pZmVzdDogTW9kdWxlc01hbmlmZXN0LCBmaWxlTmFtZTogc3RyaW5nLFxuICAgIGNvbnRlbnQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmICghaG9zdC5nb29nbW9kdWxlIHx8IGlzRHRzRmlsZU5hbWUoZmlsZU5hbWUpKSB7XG4gICAgcmV0dXJuIGNvbnRlbnQ7XG4gIH1cbiAgY29uc3Qge291dHB1dCwgcmVmZXJlbmNlZE1vZHVsZXN9ID0gcHJvY2Vzc0VTNShob3N0LCBmaWxlTmFtZSwgY29udGVudCk7XG5cbiAgY29uc3QgbW9kdWxlTmFtZSA9IGhvc3QucGF0aFRvTW9kdWxlTmFtZSgnJywgZmlsZU5hbWUpO1xuICBtb2R1bGVzTWFuaWZlc3QuYWRkTW9kdWxlKGZpbGVOYW1lLCBtb2R1bGVOYW1lKTtcbiAgZm9yIChjb25zdCByZWZlcmVuY2VkIG9mIHJlZmVyZW5jZWRNb2R1bGVzKSB7XG4gICAgbW9kdWxlc01hbmlmZXN0LmFkZFJlZmVyZW5jZWRNb2R1bGUoZmlsZU5hbWUsIHJlZmVyZW5jZWQpO1xuICB9XG5cbiAgcmV0dXJuIG91dHB1dDtcbn1cbiJdfQ==

@@ -122,6 +122,17 @@ "use strict";

return null;
comment = match[1].trim();
return parseContents(match[1].trim());
}
exports.parse = parse;
/**
* parseContents parses JSDoc out of a comment text.
* Returns null if comment is not JSDoc.
*
* @param commentText a comment's text content, i.e. the comment w/o /* and * /.
*/
function parseContents(commentText) {
// Make sure we have proper line endings before parsing on Windows.
commentText = util_1.normalizeLineEndings(commentText);
// Strip all the " * " bits from the front of each line.
comment = comment.replace(/^\s*\*? ?/gm, '');
var lines = comment.split('\n');
commentText = commentText.replace(/^\s*\*? ?/gm, '');
var lines = commentText.split('\n');
var tags = [];

@@ -132,3 +143,3 @@ var warnings = [];

var line = lines_1_1.value;
match = line.match(/^@(\S+) *(.*)/);
var match = line.match(/^@(\S+) *(.*)/);
if (match) {

@@ -205,3 +216,3 @@ var _a = __read(match, 3), _ = _a[0], tagName = _a[1], text = _a[2];

}
exports.parse = parse;
exports.parseContents = parseContents;
/**

@@ -254,5 +265,16 @@ * Serializes a Tag into a string usable in a comment.

var SINGLETON_TAGS = new Set(['deprecated']);
/** Serializes a Comment out to a string, but does not include the start and end comment tokens. */
function toStringWithoutStartEnd(tags, escapeExtraTags) {
if (escapeExtraTags === void 0) { escapeExtraTags = new Set(); }
return serialize(tags, false, escapeExtraTags);
}
exports.toStringWithoutStartEnd = toStringWithoutStartEnd;
/** Serializes a Comment out to a string usable in source code. */
function toString(tags, escapeExtraTags) {
if (escapeExtraTags === void 0) { escapeExtraTags = new Set(); }
return serialize(tags, true, escapeExtraTags);
}
exports.toString = toString;
function serialize(tags, includeStartEnd, escapeExtraTags) {
if (escapeExtraTags === void 0) { escapeExtraTags = new Set(); }
if (tags.length === 0)

@@ -270,4 +292,3 @@ return '';

}
var out = '';
out += '/**\n';
var out = includeStartEnd ? '/**\n' : '*\n';
var emitted = new Set();

@@ -294,7 +315,6 @@ try {

}
out += ' */\n';
out += includeStartEnd ? ' */\n' : ' ';
return out;
var e_2, _a;
}
exports.toString = toString;
/** Merges multiple tags (of the same tagName type) into a single unified tag. */

@@ -349,3 +369,2 @@ function merge(tags) {

exports.merge = merge;
//# sourceMappingURL=jsdoc.js.map
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNkb2MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvanNkb2MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVILCtCQUE0QztBQXNDNUM7Ozs7OztHQU1HO0FBQ0gsSUFBTSxvQkFBb0IsR0FBRyxJQUFJLEdBQUcsQ0FBQztJQUNuQyxVQUFVLEVBQU8sVUFBVTtJQUMzQixRQUFRLEVBQVMsdUJBQXVCO0lBQ3hDLE9BQU8sRUFBVSxVQUFVO0lBQzNCLGFBQWEsRUFBSSxXQUFXO0lBQzVCLFFBQVEsRUFBUyxZQUFZO0lBQzdCLE1BQU0sRUFBVyxNQUFNO0lBQ3ZCLFVBQVUsRUFBTyxTQUFTO0lBQzFCLGFBQWEsRUFBSSxNQUFNO0lBQ3ZCLFFBQVEsRUFBUyxRQUFRO0lBQ3pCLFNBQVMsRUFBUSxTQUFTO0lBQzFCLGNBQWMsRUFBRyxPQUFPO0lBQ3hCLGVBQWUsRUFBRSxtQkFBbUI7SUFDcEMsUUFBUSxFQUFTLElBQUk7SUFDckIsYUFBYSxFQUFJLFFBQVE7SUFDekIsWUFBWSxFQUFLLGNBQWM7SUFDL0IsWUFBWSxFQUFLLFdBQVc7SUFDNUIsY0FBYyxFQUFHLGNBQWM7SUFDL0IsZUFBZSxFQUFFLHNCQUFzQjtJQUN2QyxPQUFPLEVBQVUsU0FBUztJQUMxQixNQUFNLEVBQVcsU0FBUztJQUMxQixVQUFVLEVBQU8sU0FBUztJQUMxQixNQUFNLEVBQVcsVUFBVTtJQUMzQixTQUFTLEVBQVEsWUFBWTtJQUM3QixXQUFXLEVBQU0sZUFBZTtJQUNoQyxVQUFVLEVBQU8sT0FBTztJQUN4QixTQUFTLEVBQVEsT0FBTztJQUN4QixhQUFhLEVBQUksaUJBQWlCO0lBQ2xDLFVBQVUsRUFBTyxhQUFhO0lBQzlCLFNBQVMsRUFBUSxXQUFXO0lBQzVCLFFBQVEsRUFBUyxRQUFRO0lBQ3pCLFlBQVksRUFBSyxVQUFVO0lBQzNCLFFBQVEsRUFBUyxTQUFTO0lB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ICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtub3JtYWxpemVMaW5lRW5kaW5nc30gZnJvbSAnLi91dGlsJztcblxuLyoqXG4gKiBUeXBlU2NyaXB0IGhhcyBhbiBBUEkgZm9yIEpTRG9jIGFscmVhZHksIGJ1dCBpdCdzIG5vdCBleHBvc2VkLlxuICogaHR0cHM6Ly9naXRodWIuY29tL01pY3Jvc29mdC9UeXBlU2NyaXB0L2lzc3Vlcy83MzkzXG4gKiBGb3Igbm93IHdlIGNyZWF0ZSB0eXBlcyB0aGF0IGFyZSBzaW1pbGFyIHRvIHRoZWlycyBzbyB0aGF0IG1pZ3JhdGluZ1xuICogdG8gdGhlaXIgQVBJIHdpbGwgYmUgZWFzaWVyLiAgU2VlIGUuZy4gdHMuSlNEb2NUYWcgYW5kIHRzLkpTRG9jQ29tbWVudC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYWcge1xuICAvKipcbiAgICogdGFnTmFtZSBpcyBlLmcuIFwicGFyYW1cIiBpbiBhbiBAcGFyYW0gZGVjbGFyYXRpb24uICBJdCBpcyB0aGUgZW1wdHkgc3RyaW5nXG4gICAqIGZvciB0aGUgcGxhaW4gdGV4dCBkb2N1bWVudGF0aW9uIHRoYXQgb2NjdXJzIGJlZm9yZSBhbnkgQGZvbyBsaW5lcy5cbiAgICovXG4gIHRhZ05hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIHBhcmFtZXRlck5hbWUgaXMgdGhlIHRoZSBuYW1lIG9mIHRoZSBmdW5jdGlvbiBwYXJhbWV0ZXIsIGUuZy4gXCJmb29cIlxuICAgKiBpbiBgXFxAcGFyYW0gZm9vIFRoZSBmb28gcGFyYW1gXG4gICAqL1xuICBwYXJhbWV0ZXJOYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHR5cGUgb2YgYSBKU0RvYyBcXEBwYXJhbSwgXFxAdHlwZSBldGMgdGFnLCByZW5kZXJlZCBpbiBjdXJseSBicmFjZXMuXG4gICAqIENhbiBhbHNvIGhvbGQgdGhlIHR5cGUgb2YgYW4gXFxAc3VwcHJlc3MuXG4gICAqL1xuICB0eXBlPzogc3RyaW5nO1xuICAvKiogb3B0aW9uYWwgaXMgdHJ1ZSBmb3Igb3B0aW9uYWwgZnVuY3Rpb24gcGFyYW1ldGVycy4gKi9cbiAgb3B0aW9uYWw/OiBib29sZWFuO1xuICAvKiogcmVzdFBhcmFtIGlzIHRydWUgZm9yIFwiLi4ueDogZm9vW11cIiBmdW5jdGlvbiBwYXJhbWV0ZXJzLiAqL1xuICByZXN0UGFyYW0/OiBib29sZWFuO1xuICAvKipcbiAgICogZGVzdHJ1Y3R1cmluZyBpcyB0cnVlIGZvciBkZXN0cnVjdHVyaW5nIGJpbmQgcGFyYW1ldGVycywgd2hpY2ggcmVxdWlyZVxuICAgKiBub24tbnVsbCBhcmd1bWVudHMgb24gdGhlIENsb3N1cmUgc2lkZS4gIENhbiBsaWtlbHkgcmVtb3ZlIHRoaXNcbiAgICogb25jZSBUeXBlU2NyaXB0IG51bGxhYmxlIHR5cGVzIGFyZSBhdmFpbGFibGUuXG4gICAqL1xuICBkZXN0cnVjdHVyaW5nPzogYm9vbGVhbjtcbiAgLyoqIEFueSByZW1haW5pbmcgdGV4dCBvbiB0aGUgdGFnLCBlLmcuIHRoZSBkZXNjcmlwdGlvbi4gKi9cbiAgdGV4dD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBBIGxpc3Qgb2YgYWxsIEpTRG9jIHRhZ3MgYWxsb3dlZCBieSB0aGUgQ2xvc3VyZSBjb21waWxlci5cbiAqIFRoZSBwdWJsaWMgQ2xvc3VyZSBkb2NzIGRvbid0IGxpc3QgYWxsIHRoZSB0YWdzIGl0IGFsbG93czsgdGhpcyBsaXN0IGNvbWVzXG4gKiBmcm9tIHRoZSBjb21waWxlciBzb3VyY2UgaXRzZWxmLlxuICogaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS9jbG9zdXJlLWNvbXBpbGVyL2Jsb2IvbWFzdGVyL3NyYy9jb20vZ29vZ2xlL2phdmFzY3JpcHQvanNjb21wL3BhcnNpbmcvQW5ub3RhdGlvbi5qYXZhXG4gKiBodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL2Nsb3N1cmUtY29tcGlsZXIvYmxvYi9tYXN0ZXIvc3JjL2NvbS9nb29nbGUvamF2YXNjcmlwdC9qc2NvbXAvcGFyc2luZy9QYXJzZXJDb25maWcucHJvcGVydGllc1xuICovXG5jb25zdCBKU0RPQ19UQUdTX1dISVRFTElTVCA9IG5ldyBTZXQoW1xuICAnYWJzdHJhY3QnLCAgICAgICdhcmd1bWVudCcsXG4gICdhdXRob3InLCAgICAgICAgJ2NvbnNpc3RlbnRJZEdlbmVyYXRvcicsXG4gICdjb25zdCcsICAgICAgICAgJ2NvbnN0YW50JyxcbiAgJ2NvbnN0cnVjdG9yJywgICAnY29weXJpZ2h0JyxcbiAgJ2RlZmluZScsICAgICAgICAnZGVwcmVjYXRlZCcsXG4gICdkZXNjJywgICAgICAgICAgJ2RpY3QnLFxuICAnZGlzcG9zZXMnLCAgICAgICdlbmhhbmNlJyxcbiAgJ2VuaGFuY2VhYmxlJywgICAnZW51bScsXG4gICdleHBvcnQnLCAgICAgICAgJ2V4cG9zZScsXG4gICdleHRlbmRzJywgICAgICAgJ2V4dGVybnMnLFxuICAnZmlsZW92ZXJ2aWV3JywgICdmaW5hbCcsXG4gICdoYXNzb3lkZWxjYWxsJywgJ2hhc3NveWRlbHRlbXBsYXRlJyxcbiAgJ2hpZGRlbicsICAgICAgICAnaWQnLFxuICAnaWRHZW5lcmF0b3InLCAgICdpZ25vcmUnLFxuICAnaW1wbGVtZW50cycsICAgICdpbXBsaWNpdENhc3QnLFxuICAnaW5oZXJpdERvYycsICAgICdpbnRlcmZhY2UnLFxuICAnamFnZ2VySW5qZWN0JywgICdqYWdnZXJNb2R1bGUnLFxuICAnamFnZ2VyUHJvdmlkZScsICdqYWdnZXJQcm92aWRlUHJvbWlzZScsXG4gICdsZW5kcycsICAgICAgICAgJ2xpY2Vuc2UnLFxuICAnbGluaycsICAgICAgICAgICdtZWFuaW5nJyxcbiAgJ21vZGlmaWVzJywgICAgICAnbW9kTmFtZScsXG4gICdtb2RzJywgICAgICAgICAgJ25nSW5qZWN0JyxcbiAgJ25vYWxpYXMnLCAgICAgICAnbm9jb2xsYXBzZScsXG4gICdub2NvbXBpbGUnLCAgICAgJ25vc2lkZWVmZmVjdHMnLFxuICAnb3ZlcnJpZGUnLCAgICAgICdvd25lcicsXG4gICdwYWNrYWdlJywgICAgICAgJ3BhcmFtJyxcbiAgJ3BpbnRvbW9kdWxlJywgICAncG9seW1lckJlaGF2aW9yJyxcbiAgJ3ByZXNlcnZlJywgICAgICAncHJlc2VydmVUcnknLFxuICAncHJpdmF0ZScsICAgICAgICdwcm90ZWN0ZWQnLFxuICAncHVibGljJywgICAgICAgICdyZWNvcmQnLFxuICAncmVxdWlyZWNzcycsICAgICdyZXF1aXJlcycsXG4gICdyZXR1cm4nLCAgICAgICAgJ3JldHVybnMnLFxuICAnc2VlJywgICAgICAgICAgICdzdGFibGVJZEdlbmVyYXRvcicsXG4gICdzdHJ1Y3QnLCAgICAgICAgJ3N1cHByZXNzJyxcbiAgJ3RlbXBsYXRlJywgICAgICAndGhpcycsXG4gICd0aHJvd3MnLCAgICAgICAgJ3R5cGUnLFxuICAndHlwZWRlZicsICAgICAgICd1bnJlc3RyaWN0ZWQnLFxuICAndmVyc2lvbicsICAgICAgICd3aXphY3Rpb24nLFxuICAnd2l6bW9kdWxlJyxcbl0pO1xuXG4vKipcbiAqIEEgbGlzdCBvZiBKU0RvYyBAdGFncyB0aGF0IGFyZSBuZXZlciBhbGxvd2VkIGluIFR5cGVTY3JpcHQgc291cmNlLiBUaGVzZSBhcmUgQ2xvc3VyZSB0YWdzIHRoYXRcbiAqIGNhbiBiZSBleHByZXNzZWQgaW4gdGhlIFR5cGVTY3JpcHQgc3VyZmFjZSBzeW50YXguIEFzIHRzaWNrbGUncyBlbWl0IHdpbGwgbWFuZ2xlIHR5cGUgbmFtZXMsXG4gKiB0aGVzZSB3aWxsIGNhdXNlIENsb3N1cmUgQ29tcGlsZXIgaXNzdWVzIGFuZCBzaG91bGQgbm90IGJlIHVzZWQuXG4gKi9cbmNvbnN0IEpTRE9DX1RBR1NfQkxBQ0tMSVNUID0gbmV3IFNldChbXG4gICdhdWdtZW50cycsICdjbGFzcycsICAgICAgJ2NvbnN0cnVjdHMnLCAnY29uc3RydWN0b3InLCAnZW51bScsICAgICAgJ2V4dGVuZHMnLCAnZmllbGQnLFxuICAnZnVuY3Rpb24nLCAnaW1wbGVtZW50cycsICdpbnRlcmZhY2UnLCAgJ2xlbmRzJywgICAgICAgJ25hbWVzcGFjZScsICdwcml2YXRlJywgJ3B1YmxpYycsXG4gICdyZWNvcmQnLCAgICdzdGF0aWMnLCAgICAgJ3RlbXBsYXRlJywgICAndGhpcycsICAgICAgICAndHlwZScsICAgICAgJ3R5cGVkZWYnLFxuXSk7XG5cbi8qKlxuICogQSBsaXN0IG9mIEpTRG9jIEB0YWdzIHRoYXQgbWlnaHQgaW5jbHVkZSBhIHt0eXBlfSBhZnRlciB0aGVtLiBPbmx5IGJhbm5lZCB3aGVuIGEgdHlwZSBpcyBwYXNzZWQuXG4gKiBOb3RlIHRoYXQgdGhpcyBkb2VzIG5vdCBpbmNsdWRlIHRhZ3MgdGhhdCBjYXJyeSBhIG5vbi10eXBlIHN5c3RlbSB0eXBlLCBlLmcuIFxcQHN1cHByZXNzLlxuICovXG5jb25zdCBKU0RPQ19UQUdTX1dJVEhfVFlQRVMgPSBuZXcgU2V0KFtcbiAgJ2NvbnN0JyxcbiAgJ2V4cG9ydCcsXG4gICdwYXJhbScsXG4gICdyZXR1cm4nLFxuXSk7XG5cbi8qKlxuICogUmVzdWx0IG9mIHBhcnNpbmcgYSBKU0RvYyBjb21tZW50LiBTdWNoIGNvbW1lbnRzIGVzc2VudGlhbGx5IGFyZSBidWlsdCBvZiBhIGxpc3Qgb2YgdGFncy5cbiAqIEluIGFkZGl0aW9uIHRvIHRoZSB0YWdzLCB0aGlzIG1pZ2h0IGFsc28gY29udGFpbiB3YXJuaW5ncyB0byBpbmRpY2F0ZSBub24tZmF0YWwgcHJvYmxlbXNcbiAqIHdoaWxlIGZpbmRpbmcgdGhlIHRhZ3MuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFyc2VkSlNEb2NDb21tZW50IHtcbiAgdGFnczogVGFnW107XG4gIHdhcm5pbmdzPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogcGFyc2UgcGFyc2VzIEpTRG9jIG91dCBvZiBhIGNvbW1lbnQgc3RyaW5nLlxuICogUmV0dXJucyBudWxsIGlmIGNvbW1lbnQgaXMgbm90IEpTRG9jLlxuICovXG4vLyBUT0RPKG1hcnRpbnByb2JzdCk6IHJlcHJlc2VudGluZyBKU0RvYyBhcyBhIGxpc3Qgb2YgdGFncyBpcyB0b28gc2ltcGxpc3RpYy4gV2UgbmVlZCBmdW5jdGlvbmFsaXR5XG4vLyBzdWNoIGFzIG1lcmdpbmcgKGJlbG93KSwgZGUtZHVwbGljYXRpbmcgY2VydGFpbiB0YWdzIChAZGVwcmVjYXRlZCksIGFuZCBzcGVjaWFsIHRyZWF0bWVudCBmb3Jcbi8vIG90aGVycyAoZS5nLiBAc3VwcHJlc3MpLiBXZSBzaG91bGQgaW50cm9kdWNlIGEgcHJvcGVyIG1vZGVsIGNsYXNzIHdpdGggYSBtb3JlIHN1aXRhYmxlIGRhdGFcbi8vIHN0cnVjdXJlIChlLmcuIGEgTWFwPFRhZ05hbWUsIFZhbHVlc1tdPikuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2UoY29tbWVudDogc3RyaW5nKTogUGFyc2VkSlNEb2NDb21tZW50fG51bGwge1xuICAvLyBNYWtlIHN1cmUgd2UgaGF2ZSBwcm9wZXIgbGluZSBlbmRpbmdzIGJlZm9yZSBwYXJzaW5nIG9uIFdpbmRvd3MuXG4gIGNvbW1lbnQgPSBub3JtYWxpemVMaW5lRW5kaW5ncyhjb21tZW50KTtcbiAgLy8gVE9ETyhldmFubSk6IHRoaXMgaXMgYSBwaWxlIG9mIGhhY2t5IHJlZ2V4ZXMgZm9yIG5vdywgYmVjYXVzZSB3ZVxuICAvLyB3b3VsZCByYXRoZXIgdXNlIHRoZSBiZXR0ZXIgVHlwZVNjcmlwdCBpbXBsZW1lbnRhdGlvbiBvZiBKU0RvY1xuICAvLyBwYXJzaW5nLiAgaHR0cHM6Ly9naXRodWIuY29tL01pY3Jvc29mdC9UeXBlU2NyaXB0L2lzc3Vlcy83MzkzXG4gIGNvbnN0IG1hdGNoID0gY29tbWVudC5tYXRjaCgvXlxcL1xcKlxcKihbXFxzXFxTXSo/KVxcKlxcLyQvKTtcbiAgaWYgKCFtYXRjaCkgcmV0dXJuIG51bGw7XG4gIHJldHVybiBwYXJzZUNvbnRlbnRzKG1hdGNoWzFdLnRyaW0oKSk7XG59XG5cbi8qKlxuICogcGFyc2VDb250ZW50cyBwYXJzZXMgSlNEb2Mgb3V0IG9mIGEgY29tbWVudCB0ZXh0LlxuICogUmV0dXJucyBudWxsIGlmIGNvbW1lbnQgaXMgbm90IEpTRG9jLlxuICpcbiAqIEBwYXJhbSBjb21tZW50VGV4dCBhIGNvbW1lbnQncyB0ZXh0IGNvbnRlbnQsIGkuZS4gdGhlIGNvbW1lbnQgdy9vIC8qIGFuZCAqIC8uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUNvbnRlbnRzKGNvbW1lbnRUZXh0OiBzdHJpbmcpOiB7dGFnczogVGFnW10sIHdhcm5pbmdzPzogc3RyaW5nW119fG51bGwge1xuICAvLyBNYWtlIHN1cmUgd2UgaGF2ZSBwcm9wZXIgbGluZSBlbmRpbmdzIGJlZm9yZSBwYXJzaW5nIG9uIFdpbmRvd3MuXG4gIGNvbW1lbnRUZXh0ID0gbm9ybWFsaXplTGluZUVuZGluZ3MoY29tbWVudFRleHQpO1xuICAvLyBTdHJpcCBhbGwgdGhlIFwiICogXCIgYml0cyBmcm9tIHRoZSBmcm9udCBvZiBlYWNoIGxpbmUuXG4gIGNvbW1lbnRUZXh0ID0gY29tbWVudFRleHQucmVwbGFjZSgvXlxccypcXCo/ID8vZ20sICcnKTtcbiAgY29uc3QgbGluZXMgPSBjb21tZW50VGV4dC5zcGxpdCgnXFxuJyk7XG4gIGNvbnN0IHRhZ3M6IFRhZ1tdID0gW107XG4gIGNvbnN0IHdhcm5pbmdzOiBzdHJpbmdbXSA9IFtdO1xuICBmb3IgKGNvbnN0IGxpbmUgb2YgbGluZXMpIHtcbiAgICBsZXQgbWF0Y2ggPSBsaW5lLm1hdGNoKC9eQChcXFMrKSAqKC4qKS8pO1xuICAgIGlmIChtYXRjaCkge1xuICAgICAgbGV0IFtfLCB0YWdOYW1lLCB0ZXh0XSA9IG1hdGNoO1xuICAgICAgaWYgKHRhZ05hbWUgPT09ICdyZXR1cm5zJykge1xuICAgICAgICAvLyBBIHN5bm9ueW0gZm9yICdyZXR1cm4nLlxuICAgICAgICB0YWdOYW1lID0gJ3JldHVybic7XG4gICAgICB9XG4gICAgICBsZXQgdHlwZTogc3RyaW5nfHVuZGVmaW5lZDtcbiAgICAgIGlmIChKU0RPQ19UQUdTX0JMQUNLTElTVC5oYXModGFnTmFtZSkpIHtcbiAgICAgICAgd2FybmluZ3MucHVzaChgQCR7dGFnTmFtZX0gYW5ub3RhdGlvbnMgYXJlIHJlZHVuZGFudCB3aXRoIFR5cGVTY3JpcHQgZXF1aXZhbGVudHNgKTtcbiAgICAgICAgY29udGludWU7ICAvLyBEcm9wIHRoZSB0YWcgc28gQ2xvc3VyZSB3b24ndCBwcm9jZXNzIGl0LlxuICAgICAgfSBlbHNlIGlmIChKU0RPQ19UQUdTX1dJVEhfVFlQRVMuaGFzKHRhZ05hbWUpICYmIHRleHRbMF0gPT09ICd7Jykge1xuICAgICAgICB3YXJuaW5ncy5wdXNoKFxuICAgICAgICAgICAgYHRoZSB0eXBlIGFubm90YXRpb24gb24gQCR7dGFnTmFtZX0gaXMgcmVkdW5kYW50IHdpdGggaXRzIFR5cGVTY3JpcHQgdHlwZSwgYCArXG4gICAgICAgICAgICBgcmVtb3ZlIHRoZSB7Li4ufSBwYXJ0YCk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfSBlbHNlIGlmICh0YWdOYW1lID09PSAnc3VwcHJlc3MnKSB7XG4gICAgICAgIGNvbnN0IHN1cHByZXNzTWF0Y2ggPSB0ZXh0Lm1hdGNoKC9eXFx7KC4qKVxcfSguKikkLyk7XG4gICAgICAgIGlmICghc3VwcHJlc3NNYXRjaCkge1xuICAgICAgICAgIHdhcm5pbmdzLnB1c2goYG1hbGZvcm1lZCBAc3VwcHJlc3MgdGFnOiBcIiR7dGV4dH1cImApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIFssIHR5cGUsIHRleHRdID0gc3VwcHJlc3NNYXRjaDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh0YWdOYW1lID09PSAnZGljdCcpIHtcbiAgICAgICAgd2FybmluZ3MucHVzaCgndXNlIGluZGV4IHNpZ25hdHVyZXMgKGBbazogc3RyaW5nXTogdHlwZWApIGluc3RlYWQgb2YgQGRpY3QnKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIC8vIEdyYWIgdGhlIHBhcmFtZXRlciBuYW1lIGZyb20gQHBhcmFtIHRhZ3MuXG4gICAgICBsZXQgcGFyYW1ldGVyTmFtZTogc3RyaW5nfHVuZGVmaW5lZDtcbiAgICAgIGlmICh0YWdOYW1lID09PSAncGFyYW0nKSB7XG4gICAgICAgIG1hdGNoID0gdGV4dC5tYXRjaCgvXihcXFMrKSA/KC4qKS8pO1xuICAgICAgICBpZiAobWF0Y2gpIFtfLCBwYXJhbWV0ZXJOYW1lLCB0ZXh0XSA9IG1hdGNoO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB0YWc6IFRhZyA9IHt0YWdOYW1lfTtcbiAgICAgIGlmIChwYXJhbWV0ZXJOYW1lKSB0YWcucGFyYW1ldGVyTmFtZSA9IHBhcmFtZXRlck5hbWU7XG4gICAgICBpZiAodGV4dCkgdGFnLnRleHQgPSB0ZXh0O1xuICAgICAgaWYgKHR5cGUpIHRhZy50eXBlID0gdHlwZTtcbiAgICAgIHRhZ3MucHVzaCh0YWcpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBUZXh0IHdpdGhvdXQgYSBwcmVjZWRpbmcgQHRhZyBvbiBpdCBpcyBlaXRoZXIgdGhlIHBsYWluIHRleHRcbiAgICAgIC8vIGRvY3VtZW50YXRpb24gb3IgYSBjb250aW51YXRpb24gb2YgYSBwcmV2aW91cyB0YWcuXG4gICAgICBpZiAodGFncy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdGFncy5wdXNoKHt0YWdOYW1lOiAnJywgdGV4dDogbGluZX0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgbGFzdFRhZyA9IHRhZ3NbdGFncy5sZW5ndGggLSAxXTtcbiAgICAgICAgbGFzdFRhZy50ZXh0ID0gKGxhc3RUYWcudGV4dCB8fCAnJykgKyAnXFxuJyArIGxpbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGlmICh3YXJuaW5ncy5sZW5ndGggPiAwKSB7XG4gICAgcmV0dXJuIHt0YWdzLCB3YXJuaW5nc307XG4gIH1cbiAgcmV0dXJuIHt0YWdzfTtcbn1cblxuLyoqXG4gKiBTZXJpYWxpemVzIGEgVGFnIGludG8gYSBzdHJpbmcgdXNhYmxlIGluIGEgY29tbWVudC5cbiAqIFJldHVybnMgYSBzdHJpbmcgbGlrZSBcIiBAZm9vIHtiYXJ9IGJhelwiIChub3RlIHRoZSB3aGl0ZXNwYWNlKS5cbiAqL1xuZnVuY3Rpb24gdGFnVG9TdHJpbmcodGFnOiBUYWcsIGVzY2FwZUV4dHJhVGFncyA9IG5ldyBTZXQ8c3RyaW5nPigpKTogc3RyaW5nIHtcbiAgbGV0IG91dCA9ICcnO1xuICBpZiAodGFnLnRhZ05hbWUpIHtcbiAgICBpZiAoIUpTRE9DX1RBR1NfV0hJVEVMSVNULmhhcyh0YWcudGFnTmFtZSkgfHwgZXNjYXBlRXh0cmFUYWdzLmhhcyh0YWcudGFnTmFtZSkpIHtcbiAgICAgIC8vIEVzY2FwZSB0YWdzIHdlIGRvbid0IHVuZGVyc3RhbmQuICBUaGlzIGlzIGEgc3VidGxlXG4gICAgICAvLyBjb21wcm9taXNlIGJldHdlZW4gbXVsdGlwbGUgaXNzdWVzLlxuICAgICAgLy8gMSkgSWYgd2UgcGFzcyB0aHJvdWdoIHRoZXNlIG5vbi1DbG9zdXJlIHRhZ3MsIHRoZSB1c2VyIHdpbGxcbiAgICAgIC8vICAgIGdldCBhIHdhcm5pbmcgZnJvbSBDbG9zdXJlLCBhbmQgdGhlIHBvaW50IG9mIHRzaWNrbGUgaXNcbiAgICAgIC8vICAgIHRvIGluc3VsYXRlIHRoZSB1c2VyIGZyb20gQ2xvc3VyZS5cbiAgICAgIC8vIDIpIFRoZSBvdXRwdXQgb2YgdHNpY2tsZSBpcyBmb3IgQ2xvc3VyZSBidXQgYWxzbyBtYXkgYmUgcmVhZFxuICAgICAgLy8gICAgYnkgaHVtYW5zLCBmb3IgZXhhbXBsZSBub24tVHlwZVNjcmlwdCB1c2VycyBvZiBBbmd1bGFyLlxuICAgICAgLy8gMykgRmluYWxseSwgd2UgZG9uJ3Qgd2FudCB0byB3YXJuIGJlY2F1c2UgdXNlcnMgc2hvdWxkIGJlXG4gICAgICAvLyAgICBmcmVlIHRvIGFkZCB3aGljaGV2ZXIgSlNEb2MgdGhleSBmZWVsIGxpa2UuICBJZiB0aGUgdXNlclxuICAgICAgLy8gICAgd2FudHMgaGVscCBlbnN1cmluZyB0aGV5IGRpZG4ndCB0eXBvIGEgdGFnLCB0aGF0IGlzIHRoZVxuICAgICAgLy8gICAgcmVzcG9uc2liaWxpdHkgb2YgYSBsaW50ZXIuXG4gICAgICBvdXQgKz0gYCBcXFxcQCR7dGFnLnRhZ05hbWV9YDtcbiAgICB9IGVsc2Uge1xuICAgICAgb3V0ICs9IGAgQCR7dGFnLnRhZ05hbWV9YDtcbiAgICB9XG4gIH1cbiAgaWYgKHRhZy50eXBlKSB7XG4gICAgb3V0ICs9ICcgeyc7XG4gICAgaWYgKHRhZy5yZXN0UGFyYW0pIHtcbiAgICAgIG91dCArPSAnLi4uJztcbiAgICB9XG4gICAgb3V0ICs9IHRhZy50eXBlO1xuICAgIGlmICh0YWcub3B0aW9uYWwpIHtcbiAgICAgIG91dCArPSAnPSc7XG4gICAgfVxuICAgIG91dCArPSAnfSc7XG4gIH1cbiAgaWYgKHRhZy5wYXJhbWV0ZXJOYW1lKSB7XG4gICAgb3V0ICs9ICcgJyArIHRhZy5wYXJhbWV0ZXJOYW1lO1xuICB9XG4gIGlmICh0YWcudGV4dCkge1xuICAgIG91dCArPSAnICcgKyB0YWcudGV4dC5yZXBsYWNlKC9AL2csICdcXFxcQCcpO1xuICB9XG4gIHJldHVybiBvdXQ7XG59XG5cbi8qKiBUYWdzIHRoYXQgbXVzdCBvbmx5IG9jY3VyIG9uY2VzIGluIGEgY29tbWVudCAoZmlsdGVyZWQgYmVsb3cpLiAqL1xuY29uc3QgU0lOR0xFVE9OX1RBR1MgPSBuZXcgU2V0KFsnZGVwcmVjYXRlZCddKTtcblxuLyoqIFNlcmlhbGl6ZXMgYSBDb21tZW50IG91dCB0byBhIHN0cmluZywgYnV0IGRvZXMgbm90IGluY2x1ZGUgdGhlIHN0YXJ0IGFuZCBlbmQgY29tbWVudCB0b2tlbnMuICovXG5leHBvcnQgZnVuY3Rpb24gdG9TdHJpbmdXaXRob3V0U3RhcnRFbmQodGFnczogVGFnW10sIGVzY2FwZUV4dHJhVGFncyA9IG5ldyBTZXQ8c3RyaW5nPigpKTogc3RyaW5nIHtcbiAgcmV0dXJuIHNlcmlhbGl6ZSh0YWdzLCBmYWxzZSwgZXNjYXBlRXh0cmFUYWdzKTtcbn1cblxuLyoqIFNlcmlhbGl6ZXMgYSBDb21tZW50IG91dCB0byBhIHN0cmluZyB1c2FibGUgaW4gc291cmNlIGNvZGUuICovXG5leHBvcnQgZnVuY3Rpb24gdG9TdHJpbmcodGFnczogVGFnW10sIGVzY2FwZUV4dHJhVGFncyA9IG5ldyBTZXQ8c3RyaW5nPigpKTogc3RyaW5nIHtcbiAgcmV0dXJuIHNlcmlhbGl6ZSh0YWdzLCB0cnVlLCBlc2NhcGVFeHRyYVRhZ3MpO1xufVxuXG5mdW5jdGlvbiBzZXJpYWxpemUoXG4gICAgdGFnczogVGFnW10sIGluY2x1ZGVTdGFydEVuZDogYm9vbGVhbiwgZXNjYXBlRXh0cmFUYWdzID0gbmV3IFNldDxzdHJpbmc+KCkpOiBzdHJpbmcge1xuICBpZiAodGFncy5sZW5ndGggPT09IDApIHJldHVybiAnJztcbiAgaWYgKHRhZ3MubGVuZ3RoID09PSAxKSB7XG4gICAgY29uc3QgdGFnID0gdGFnc1swXTtcbiAgICBpZiAoKHRhZy50YWdOYW1lID09PSAndHlwZScgfHwgdGFnLnRhZ05hbWUgPT09ICdub2NvbGxhcHNlJykgJiZcbiAgICAgICAgKCF0YWcudGV4dCB8fCAhdGFnLnRleHQubWF0Y2goJ1xcbicpKSkge1xuICAgICAgLy8gU3BlY2lhbC1jYXNlIG9uZS1saW5lciBcInR5cGVcIiBhbmQgXCJub2NvbGxhcHNlXCIgdGFncyB0byBmaXQgb24gb25lIGxpbmUsIGUuZy5cbiAgICAgIC8vICAgLyoqIEB0eXBlIHtmb299ICovXG4gICAgICByZXR1cm4gJy8qKicgKyB0YWdUb1N0cmluZyh0YWcsIGVzY2FwZUV4dHJhVGFncykgKyAnICovXFxuJztcbiAgICB9XG4gICAgLy8gT3RoZXJ3aXNlLCBmYWxsIHRocm91Z2ggdG8gdGhlIG11bHRpLWxpbmUgb3V0cHV0LlxuICB9XG5cbiAgbGV0IG91dCA9IGluY2x1ZGVTdGFydEVuZCA/ICcvKipcXG4nIDogJypcXG4nO1xuICBjb25zdCBlbWl0dGVkID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIGZvciAoY29uc3QgdGFnIG9mIHRhZ3MpIHtcbiAgICBpZiAoZW1pdHRlZC5oYXModGFnLnRhZ05hbWUpICYmIFNJTkdMRVRPTl9UQUdTLmhhcyh0YWcudGFnTmFtZSkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBlbWl0dGVkLmFkZCh0YWcudGFnTmFtZSk7XG4gICAgb3V0ICs9ICcgKic7XG4gICAgLy8gSWYgdGhlIHRhZ1RvU3RyaW5nIGlzIG11bHRpLWxpbmUsIGluc2VydCBcIiAqIFwiIHByZWZpeGVzIG9uIHN1YnNlcXVlbnQgbGluZXMuXG4gICAgb3V0ICs9IHRhZ1RvU3RyaW5nKHRhZywgZXNjYXBlRXh0cmFUYWdzKS5zcGxpdCgnXFxuJykuam9pbignXFxuICogJyk7XG4gICAgb3V0ICs9ICdcXG4nO1xuICB9XG4gIG91dCArPSBpbmNsdWRlU3RhcnRFbmQgPyAnICovXFxuJyA6ICcgJztcbiAgcmV0dXJuIG91dDtcbn1cblxuLyoqIE1lcmdlcyBtdWx0aXBsZSB0YWdzIChvZiB0aGUgc2FtZSB0YWdOYW1lIHR5cGUpIGludG8gYSBzaW5nbGUgdW5pZmllZCB0YWcuICovXG5leHBvcnQgZnVuY3Rpb24gbWVyZ2UodGFnczogVGFnW10pOiBUYWcge1xuICBjb25zdCB0YWdOYW1lcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICBjb25zdCBwYXJhbWV0ZXJOYW1lcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICBjb25zdCB0eXBlcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICBjb25zdCB0ZXh0cyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAvLyBJZiBhbnkgb2YgdGhlIHRhZ3MgYXJlIG9wdGlvbmFsL3Jlc3QsIHRoZW4gdGhlIG1lcmdlZCBvdXRwdXQgaXMgb3B0aW9uYWwvcmVzdC5cbiAgbGV0IG9wdGlvbmFsID0gZmFsc2U7XG4gIGxldCByZXN0UGFyYW0gPSBmYWxzZTtcbiAgZm9yIChjb25zdCB0YWcgb2YgdGFncykge1xuICAgIGlmICh0YWcudGFnTmFtZSkgdGFnTmFtZXMuYWRkKHRhZy50YWdOYW1lKTtcbiAgICBpZiAodGFnLnBhcmFtZXRlck5hbWUpIHBhcmFtZXRlck5hbWVzLmFkZCh0YWcucGFyYW1ldGVyTmFtZSk7XG4gICAgaWYgKHRhZy50eXBlKSB0eXBlcy5hZGQodGFnLnR5cGUpO1xuICAgIGlmICh0YWcudGV4dCkgdGV4dHMuYWRkKHRhZy50ZXh0KTtcbiAgICBpZiAodGFnLm9wdGlvbmFsKSBvcHRpb25hbCA9IHRydWU7XG4gICAgaWYgKHRhZy5yZXN0UGFyYW0pIHJlc3RQYXJhbSA9IHRydWU7XG4gIH1cblxuICBpZiAodGFnTmFtZXMuc2l6ZSAhPT0gMSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgY2Fubm90IG1lcmdlIGRpZmZlcmluZyB0YWdzOiAke0pTT04uc3RyaW5naWZ5KHRhZ3MpfWApO1xuICB9XG4gIGNvbnN0IHRhZ05hbWUgPSB0YWdOYW1lcy52YWx1ZXMoKS5uZXh0KCkudmFsdWU7XG4gIGNvbnN0IHBhcmFtZXRlck5hbWUgPVxuICAgICAgcGFyYW1ldGVyTmFtZXMuc2l6ZSA+IDAgPyBBcnJheS5mcm9tKHBhcmFtZXRlck5hbWVzKS5qb2luKCdfb3JfJykgOiB1bmRlZmluZWQ7XG4gIGNvbnN0IHR5cGUgPSB0eXBlcy5zaXplID4gMCA/IEFycmF5LmZyb20odHlwZXMpLmpvaW4oJ3wnKSA6IHVuZGVmaW5lZDtcbiAgY29uc3QgdGV4dCA9IHRleHRzLnNpemUgPiAwID8gQXJyYXkuZnJvbSh0ZXh0cykuam9pbignIC8gJykgOiB1bmRlZmluZWQ7XG4gIGNvbnN0IHRhZzogVGFnID0ge3RhZ05hbWUsIHBhcmFtZXRlck5hbWUsIHR5cGUsIHRleHR9O1xuICBpZiAob3B0aW9uYWwpIHRhZy5vcHRpb25hbCA9IHRydWU7XG4gIGlmIChyZXN0UGFyYW0pIHRhZy5yZXN0UGFyYW0gPSB0cnVlO1xuICByZXR1cm4gdGFnO1xufVxuIl19

@@ -171,3 +171,2 @@ #!/usr/bin/env node

}
//# sourceMappingURL=main.js.map
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9tYWluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFVQSx1QkFBeUI7QUFDekIsbUNBQXFDO0FBQ3JDLCtCQUFpQztBQUNqQywyQkFBNkI7QUFDN0IsK0JBQWlDO0FBRWpDLDBDQUE0QztBQUM1QyxtQ0FBcUM7QUFDckMscUNBQTBDO0FBZTFDO0lBQ0UsT0FBTyxDQUFDLEtBQUssQ0FBQywwU0FRZixDQUFDLENBQUM7QUFDSCxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsOEJBQThCLElBQWM7SUFDMUMsSUFBTSxRQUFRLEdBQWEsRUFBRSxDQUFDO0lBQzlCLElBQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQzs7UUFDbEMsR0FBRyxDQUFDLENBQWUsSUFBQSxLQUFBLFNBQUEsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQSxnQkFBQTtZQUFyQyxJQUFNLElBQUksV0FBQTtZQUNiLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQ2IsS0FBSyxHQUFHLENBQUM7Z0JBQ1QsS0FBSyxNQUFNO29CQUNULEtBQUssRUFBRSxDQUFDO29CQUNSLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ2hCLEtBQUssQ0FBQztnQkFDUixLQUFLLFNBQVM7b0JBQ1osUUFBUSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3hDLEtBQUssQ0FBQztnQkFDUixLQUFLLE9BQU87b0JBQ1YsUUFBUSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7b0JBQ3hCLEtBQUssQ0FBQztnQkFDUixLQUFLLFNBQVM7b0JBQ1osUUFBUSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7b0JBQ3hCLEtBQUssQ0FBQztnQkFDUixLQUFLLEdBQUc7b0JBQ04sbUVBQW1FO29CQUNuRSxL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TyxDQUFDLENBQUMsQ0FBQztJQUN0RixDQUFDO0lBQ0QsTUFBTSxDQUFDLENBQUMsQ0FBQztBQUNYLENBQUM7QUFFRCxrQkFBa0I7QUFDbEIsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQzVCLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM3QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxuXG4vKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIG1pbmltaXN0IGZyb20gJ21pbmltaXN0JztcbmltcG9ydCAqIGFzIG1rZGlycCBmcm9tICdta2RpcnAnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuXG5pbXBvcnQgKiBhcyBjbGlTdXBwb3J0IGZyb20gJy4vY2xpX3N1cHBvcnQnO1xuaW1wb3J0ICogYXMgdHNpY2tsZSBmcm9tICcuL3RzaWNrbGUnO1xuaW1wb3J0IHtNb2R1bGVzTWFuaWZlc3R9IGZyb20gJy4vdHNpY2tsZSc7XG5pbXBvcnQge2NyZWF0ZVNvdXJjZVJlcGxhY2luZ0NvbXBpbGVySG9zdH0gZnJvbSAnLi91dGlsJztcblxuLyoqIFRzaWNrbGUgc2V0dGluZ3MgcGFzc2VkIG9uIHRoZSBjb21tYW5kIGxpbmUuICovXG5leHBvcnQgaW50ZXJmYWNlIFNldHRpbmdzIHtcbiAgLyoqIElmIHByb3ZpZGVkLCBwYXRoIHRvIHNhdmUgZXh0ZXJucyB0by4gKi9cbiAgZXh0ZXJuc1BhdGg/OiBzdHJpbmc7XG5cbiAgLyoqIElmIHByb3ZpZGVkLCBhdHRlbXB0IHRvIHByb3ZpZGUgdHlwZXMgcmF0aGVyIHRoYW4gez99LiAqL1xuICBpc1R5cGVkPzogYm9vbGVhbjtcblxuICAvKiogSWYgdHJ1ZSwgbG9nIGludGVybmFsIGRlYnVnIHdhcm5pbmdzIHRvIHRoZSBjb25zb2xlLiAqL1xuICB2ZXJib3NlPzogYm9vbGVhbjtcbn1cblxuZnVuY3Rpb24gdXNhZ2UoKSB7XG4gIGNvbnNvbGUuZXJyb3IoYHVzYWdlOiB0c2lja2xlIFt0c2lja2xlIG9wdGlvbnNdIC0tIFt0c2Mgb3B0aW9uc11cblxuZXhhbXBsZTpcbiAgdHNpY2tsZSAtLWV4dGVybnM9Zm9vL2V4dGVybnMuanMgLS0gLXAgc3JjIC0tbm9JbXBsaWNpdEFueVxuXG50c2lja2xlIGZsYWdzIGFyZTpcbiAgLS1leHRlcm5zPVBBVEggICAgIHNhdmUgZ2VuZXJhdGVkIENsb3N1cmUgZXh0ZXJucy5qcyB0byBQQVRIXG4gIC0tdHlwZWQgICAgICAgICAgICBbZXhwZXJpbWVudGFsXSBhdHRlbXB0IHRvIHByb3ZpZGUgQ2xvc3VyZSB0eXBlcyBpbnN0ZWFkIG9mIHs/fVxuYCk7XG59XG5cbi8qKlxuICogUGFyc2VzIHRoZSBjb21tYW5kLWxpbmUgYXJndW1lbnRzLCBleHRyYWN0aW5nIHRoZSB0c2lja2xlIHNldHRpbmdzIGFuZFxuICogdGhlIGFyZ3VtZW50cyB0byBwYXNzIG9uIHRvIHRzYy5cbiAqL1xuZnVuY3Rpb24gbG9hZFNldHRpbmdzRnJvbUFyZ3MoYXJnczogc3RyaW5nW10pOiB7c2V0dGluZ3M6IFNldHRpbmdzLCB0c2NBcmdzOiBzdHJpbmdbXX0ge1xuICBjb25zdCBzZXR0aW5nczogU2V0dGluZ3MgPSB7fTtcbiAgY29uc3QgcGFyc2VkQXJncyA9IG1pbmltaXN0KGFyZ3MpO1xuICBmb3IgKGNvbnN0IGZsYWcgb2YgT2JqZWN0LmtleXMocGFyc2VkQXJncykpIHtcbiAgICBzd2l0Y2ggKGZsYWcpIHtcbiAgICAgIGNhc2UgJ2gnOlxuICAgICAgY2FzZSAnaGVscCc6XG4gICAgICAgIHVzYWdlKCk7XG4gICAgICAgIHByb2Nlc3MuZXhpdCgwKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdleHRlcm5zJzpcbiAgICAgICAgc2V0dGluZ3MuZXh0ZXJuc1BhdGggPSBwYXJzZWRBcmdzW2ZsYWddO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3R5cGVkJzpcbiAgICAgICAgc2V0dGluZ3MuaXNUeXBlZCA9IHRydWU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAndmVyYm9zZSc6XG4gICAgICAgIHNldHRpbmdzLnZlcmJvc2UgPSB0cnVlO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ18nOlxuICAgICAgICAvLyBUaGlzIGlzIHBhcnQgb2YgdGhlIG1pbmltaXN0IEFQSSwgYW5kIGhvbGRzIGFyZ3MgYWZ0ZXIgdGhlICctLScuXG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgY29uc29sZS5lcnJvcihgdW5rbm93biBmbGFnICctLSR7ZmxhZ30nYCk7XG4gICAgICAgIHVzYWdlKCk7XG4gICAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICB9XG4gIH1cbiAgLy8gQXJndW1lbnRzIGFmdGVyIHRoZSAnLS0nIGFyZyBhcmUgYXJndW1lbnRzIHRvIHRzYy5cbiAgY29uc3QgdHNjQXJncyA9IHBhcnNlZEFyZ3NbJ18nXTtcbiAgcmV0dXJuIHtzZXR0aW5ncywgdHNjQXJnc307XG59XG5cbi8qKlxuICogTG9hZHMgdGhlIHRzY29uZmlnLmpzb24gZnJvbSBhIGRpcmVjdG9yeS5cbiAqXG4gKiBUT0RPKG1hcnRpbnByb2JzdCk6IHVzZSB0cy5maW5kQ29uZmlnRmlsZSB0byBtYXRjaCB0c2MgYmVoYXZpb3VyLlxuICpcbiAqIEBwYXJhbSBhcmdzIHRzYyBjb21tYW5kLWxpbmUgYXJndW1lbnRzLlxuICovXG5mdW5jdGlvbiBsb2FkVHNjQ29uZmlnKGFyZ3M6IHN0cmluZ1tdKTpcbiAgICB7b3B0aW9uczogdHMuQ29tcGlsZXJPcHRpb25zLCBmaWxlTmFtZXM6IHN0cmluZ1tdLCBlcnJvcnM6IHRzLkRpYWdub3N0aWNbXX0ge1xuICAvLyBHYXRoZXIgdHNjIG9wdGlvbnMvaW5wdXQgZmlsZXMgZnJvbSBjb21tYW5kIGxpbmUuXG4gIGxldCB7b3B0aW9ucywgZmlsZU5hbWVzLCBlcnJvcnN9ID0gdHMucGFyc2VDb21tYW5kTGluZShhcmdzKTtcbiAgaWYgKGVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgcmV0dXJuIHtvcHRpb25zOiB7fSwgZmlsZU5hbWVzOiBbXSwgZXJyb3JzfTtcbiAgfVxuXG4gIC8vIFN0b3JlIGZpbGUgYXJndW1lbnRzXG4gIGNvbnN0IHRzRmlsZUFyZ3VtZW50cyA9IGZpbGVOYW1lcztcblxuICAvLyBSZWFkIGZ1cnRoZXIgc2V0dGluZ3MgZnJvbSB0c2NvbmZpZy5qc29uLlxuICBjb25zdCBwcm9qZWN0RGlyID0gb3B0aW9ucy5wcm9qZWN0IHx8ICcuJztcbiAgY29uc3QgY29uZmlnRmlsZU5hbWUgPSBwYXRoLmpvaW4ocHJvamVjdERpciwgJ3RzY29uZmlnLmpzb24nKTtcbiAgY29uc3Qge2NvbmZpZzoganNvbiwgZXJyb3J9ID1cbiAgICAgIHRzLnJlYWRDb25maWdGaWxlKGNvbmZpZ0ZpbGVOYW1lLCBwYXRoID0+IGZzLnJlYWRGaWxlU3luYyhwYXRoLCAndXRmLTgnKSk7XG4gIGlmIChlcnJvcikge1xuICAgIHJldHVybiB7b3B0aW9uczoge30sIGZpbGVOYW1lczogW10sIGVycm9yczogW2Vycm9yXX07XG4gIH1cbiAgKHtvcHRpb25zLCBmaWxlTmFtZXMsIGVycm9yc30gPVxuICAgICAgIHRzLnBhcnNlSnNvbkNvbmZpZ0ZpbGVDb250ZW50KGpzb24sIHRzLnN5cywgcHJvamVjdERpciwgb3B0aW9ucywgY29uZmlnRmlsZU5hbWUpKTtcbiAgaWYgKGVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgcmV0dXJuIHtvcHRpb25zOiB7fSwgZmlsZU5hbWVzOiBbXSwgZXJyb3JzfTtcbiAgfVxuXG4gIC8vIGlmIGZpbGUgYXJndW1lbnRzIHdlcmUgZ2l2ZW4gdG8gdGhlIHR5cGVzY3JpcHQgdHJhbnNwaWxlciB0aGVuIHRyYW5zcGlsZSBvbmx5IHRob3NlIGZpbGVzXG4gIGZpbGVOYW1lcyA9IHRzRmlsZUFyZ3VtZW50cy5sZW5ndGggPiAwID8gdHNGaWxlQXJndW1lbnRzIDogZmlsZU5hbWVzO1xuXG4gIHJldHVybiB7b3B0aW9ucywgZmlsZU5hbWVzLCBlcnJvcnM6IFtdfTtcbn1cblxuLyoqXG4gKiBDb21waWxlcyBUeXBlU2NyaXB0IGNvZGUgaW50byBDbG9zdXJlLWNvbXBpbGVyLXJlYWR5IEpTLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9DbG9zdXJlSlMoXG4gICAgb3B0aW9uczogdHMuQ29tcGlsZXJPcHRpb25zLCBmaWxlTmFtZXM6IHN0cmluZ1tdLCBzZXR0aW5nczogU2V0dGluZ3MsXG4gICAgd3JpdGVGaWxlPzogdHMuV3JpdGVGaWxlQ2FsbGJhY2spOiB0c2lja2xlLkVtaXRSZXN1bHQge1xuICBjb25zdCBjb21waWxlckhvc3QgPSB0cy5jcmVhdGVDb21waWxlckhvc3Qob3B0aW9ucyk7XG4gIGNvbnN0IHByb2dyYW0gPSB0cy5jcmVhdGVQcm9ncmFtKGZpbGVOYW1lcywgb3B0aW9ucywgY29tcGlsZXJIb3N0KTtcbiAgY29uc3QgdHJhbnNmb3JtZXJIb3N0OiB0c2lja2xlLlRzaWNrbGVIb3N0ID0ge1xuICAgIHNob3VsZFNraXBUc2lja2xlUHJvY2Vzc2luZzogKGZpbGVOYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgIHJldHVybiBmaWxlTmFtZXMuaW5kZXhPZihmaWxlTmFtZSkgPT09IC0xO1xuICAgIH0sXG4gICAgc2hvdWxkSWdub3JlV2FybmluZ3NGb3JQYXRoOiAoZmlsZU5hbWU6IHN0cmluZykgPT4gZmFsc2UsXG4gICAgcGF0aFRvTW9kdWxlTmFtZTogY2xpU3VwcG9ydC5wYXRoVG9Nb2R1bGVOYW1lLFxuICAgIGZpbGVOYW1lVG9Nb2R1bGVJZDogKGZpbGVOYW1lKSA9PiBmaWxlTmFtZSxcbiAgICBlczVNb2RlOiB0cnVlLFxuICAgIGdvb2dtb2R1bGU6IHRydWUsXG4gICAgcHJlbHVkZTogJycsXG4gICAgdHJhbnNmb3JtRGVjb3JhdG9yczogdHJ1ZSxcbiAgICB0cmFuc2Zvcm1UeXBlc1RvQ2xvc3VyZTogdHJ1ZSxcbiAgICB0eXBlQmxhY2tMaXN0UGF0aHM6IG5ldyBTZXQoKSxcbiAgICB1bnR5cGVkOiBmYWxzZSxcbiAgICBsb2dXYXJuaW5nOiAod2FybmluZykgPT4gY29uc29sZS5lcnJvcih0c2lja2xlLmZvcm1hdERpYWdub3N0aWNzKFt3YXJuaW5nXSkpLFxuICB9O1xuICBjb25zdCBkaWFnbm9zdGljcyA9IHRzLmdldFByZUVtaXREaWFnbm9zdGljcyhwcm9ncmFtKTtcbiAgaWYgKGRpYWdub3N0aWNzLmxlbmd0aCA+IDApIHtcbiAgICByZXR1cm4ge1xuICAgICAgZGlhZ25vc3RpY3MsXG4gICAgICBtb2R1bGVzTWFuaWZlc3Q6IG5ldyBNb2R1bGVzTWFuaWZlc3QoKSxcbiAgICAgIGV4dGVybnM6IHt9LFxuICAgICAgZW1pdFNraXBwZWQ6IHRydWUsXG4gICAgICBlbWl0dGVkRmlsZXM6IFtdLFxuICAgIH07XG4gIH1cbiAgcmV0dXJuIHRzaWNrbGUuZW1pdFdpdGhUc2lja2xlKFxuICAgICAgcHJvZ3JhbSwgdHJhbnNmb3JtZXJIb3N0LCBjb21waWxlckhvc3QsIG9wdGlvbnMsIHVuZGVmaW5lZCwgd3JpdGVGaWxlKTtcbn1cblxuZnVuY3Rpb24gbWFpbihhcmdzOiBzdHJpbmdbXSk6IG51bWJlciB7XG4gIGNvbnN0IHtzZXR0aW5ncywgdHNjQXJnc30gPSBsb2FkU2V0dGluZ3NGcm9tQXJncyhhcmdzKTtcbiAgY29uc3QgY29uZmlnID0gbG9hZFRzY0NvbmZpZyh0c2NBcmdzKTtcbiAgaWYgKGNvbmZpZy5lcnJvcnMubGVuZ3RoKSB7XG4gICAgY29uc29sZS5lcnJvcih0c2lja2xlLmZvcm1hdERpYWdub3N0aWNzKGNvbmZpZy5lcnJvcnMpKTtcbiAgICByZXR1cm4gMTtcbiAgfVxuXG4gIGlmIChjb25maWcub3B0aW9ucy5tb2R1bGUgIT09IHRzLk1vZHVsZUtpbmQuQ29tbW9uSlMpIHtcbiAgICAvLyBUaGlzIGlzIG5vdCBhbiB1cHN0cmVhbSBUeXBlU2NyaXB0IGRpYWdub3N0aWMsIHRoZXJlZm9yZSBpdCBkb2VzIG5vdCBnb1xuICAgIC8vIHRocm91Z2ggdGhlIGRpYWdub3N0aWNzIGFycmF5IG1lY2hhbmlzbS5cbiAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAndHNpY2tsZSBjb252ZXJ0cyBUeXBlU2NyaXB0IG1vZHVsZXMgdG8gQ2xvc3VyZSBtb2R1bGVzIHZpYSBDb21tb25KUyBpbnRlcm5hbGx5LiAnICtcbiAgICAgICAgJ1NldCB0c2NvbmZpZy5qcyBcIm1vZHVsZVwiOiBcImNvbW1vbmpzXCInKTtcbiAgICByZXR1cm4gMTtcbiAgfVxuXG4gIC8vIFJ1biB0c2lja2xlK1RTQyB0byBjb252ZXJ0IGlucHV0cyB0byBDbG9zdXJlIEpTIGZpbGVzLlxuICBjb25zdCByZXN1bHQgPSB0b0Nsb3N1cmVKUyhcbiAgICAgIGNvbmZpZy5vcHRpb25zLCBjb25maWcuZmlsZU5hbWVzLCBzZXR0aW5ncywgKGZpbGVQYXRoOiBzdHJpbmcsIGNvbnRlbnRzOiBzdHJpbmcpID0+IHtcbiAgICAgICAgbWtkaXJwLnN5bmMocGF0aC5kaXJuYW1lKGZpbGVQYXRoKSk7XG4gICAgICAgIGZzLndyaXRlRmlsZVN5bmMoZmlsZVBhdGgsIGNvbnRlbnRzLCB7ZW5jb2Rpbmc6ICd1dGYtOCd9KTtcbiAgICAgIH0pO1xuICBpZiAocmVzdWx0LmRpYWdub3N0aWNzLmxlbmd0aCkge1xuICAgIGNvbnNvbGUuZXJyb3IodHNpY2tsZS5mb3JtYXREaWFnbm9zdGljcyhyZXN1bHQuZGlhZ25vc3RpY3MpKTtcbiAgICByZXR1cm4gMTtcbiAgfVxuXG4gIGlmIChzZXR0aW5ncy5leHRlcm5zUGF0aCkge1xuICAgIG1rZGlycC5zeW5jKHBhdGguZGlybmFtZShzZXR0aW5ncy5leHRlcm5zUGF0aCkpO1xuICAgIGZzLndyaXRlRmlsZVN5bmMoc2V0dGluZ3MuZXh0ZXJuc1BhdGgsIHRzaWNrbGUuZ2V0R2VuZXJhdGVkRXh0ZXJucyhyZXN1bHQuZXh0ZXJucykpO1xuICB9XG4gIHJldHVybiAwO1xufVxuXG4vLyBDTEkgZW50cnkgcG9pbnRcbmlmIChyZXF1aXJlLm1haW4gPT09IG1vZHVsZSkge1xuICBwcm9jZXNzLmV4aXQobWFpbihwcm9jZXNzLmFyZ3Yuc3BsaWNlKDIpKSk7XG59XG4iXX0=

@@ -11,3 +11,3 @@ "use strict";

/** A class that maintains the module dependency graph of output JS files. */
var ModulesManifest = (function () {
var ModulesManifest = /** @class */ (function () {
function ModulesManifest() {

@@ -53,3 +53,2 @@ /** Map of googmodule module name to file name */

exports.ModulesManifest = ModulesManifest;
//# sourceMappingURL=modules_manifest.js.map
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlc19tYW5pZmVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzX21hbmlmZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7O0FBSUgsNkVBQTZFO0FBQzdFO0lBQUE7UUFDRSxpREFBaUQ7UUFDekMscUJBQWdCLEdBQW9CLEVBQUUsQ0FBQztRQUMvQyxxRUFBcUU7UUFDN0Qsc0JBQWlCLEdBQXNCLEVBQUUsQ0FBQztJQStCcEQsQ0FBQztJQTdCQyxxQ0FBVyxHQUFYLFVBQVksS0FBc0I7UUFDaEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDN0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELG1DQUFTLEdBQVQsVUFBVSxRQUFnQixFQUFFLE1BQWM7UUFDeEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxHQUFHLFFBQVEsQ0FBQztRQUN6QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRCw2Q0FBbUIsR0FBbkIsVUFBb0IsUUFBZ0IsRUFBRSxjQUFzQjtRQUMxRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxzQkFBSSxvQ0FBTzthQUFYO1lBQ0UsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDNUMsQ0FBQzs7O09BQUE7SUFFRCwrQ0FBcUIsR0FBckIsVUFBc0IsTUFBYztRQUNsQyxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxzQkFBSSxzQ0FBUzthQUFiO1lBQ0UsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDN0MsQ0FBQzs7O09BQUE7SUFFRCw4Q0FBb0IsR0FBcEIsVUFBcUIsUUFBZ0I7UUFDbkMsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBQ0gsc0JBQUM7QUFBRCxDQUFDLEFBbkNELElBbUNDO0FBbkNZLDBDQUFlIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVNYXA8VD4geyBbZmlsZU5hbWU6IHN0cmluZ106IFQ7IH1cblxuLyoqIEEgY2xhc3MgdGhhdCBtYWludGFpbnMgdGhlIG1vZHVsZSBkZXBlbmRlbmN5IGdyYXBoIG9mIG91dHB1dCBKUyBmaWxlcy4gKi9cbmV4cG9ydCBjbGFzcyBNb2R1bGVzTWFuaWZlc3Qge1xuICAvKiogTWFwIG9mIGdvb2dtb2R1bGUgbW9kdWxlIG5hbWUgdG8gZmlsZSBuYW1lICovXG4gIHByaXZhdGUgbW9kdWxlVG9GaWxlTmFtZTogRmlsZU1hcDxzdHJpbmc+ID0ge307XG4gIC8qKiBNYXAgb2YgZmlsZSBuYW1lIHRvIGFycmF5cyBvZiBpbXBvcnRlZCBnb29nbW9kdWxlIG1vZHVsZSBuYW1lcyAqL1xuICBwcml2YXRlIHJlZmVyZW5jZWRNb2R1bGVzOiBGaWxlTWFwPHN0cmluZ1tdPiA9IHt9O1xuXG4gIGFkZE1hbmlmZXN0KG90aGVyOiBNb2R1bGVzTWFuaWZlc3QpIHtcbiAgICBPYmplY3QuYXNzaWduKHRoaXMubW9kdWxlVG9GaWxlTmFtZSwgb3RoZXIubW9kdWxlVG9GaWxlTmFtZSk7XG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLnJlZmVyZW5jZWRNb2R1bGVzLCBvdGhlci5yZWZlcmVuY2VkTW9kdWxlcyk7XG4gIH1cblxuICBhZGRNb2R1bGUoZmlsZU5hbWU6IHN0cmluZywgbW9kdWxlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLm1vZHVsZVRvRmlsZU5hbWVbbW9kdWxlXSA9IGZpbGVOYW1lO1xuICAgIHRoaXMucmVmZXJlbmNlZE1vZHVsZXNbZmlsZU5hbWVdID0gW107XG4gIH1cblxuICBhZGRSZWZlcmVuY2VkTW9kdWxlKGZpbGVOYW1lOiBzdHJpbmcsIHJlc29sdmVkTW9kdWxlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnJlZmVyZW5jZWRNb2R1bGVzW2ZpbGVOYW1lXS5wdXNoKHJlc29sdmVkTW9kdWxlKTtcbiAgfVxuXG4gIGdldCBtb2R1bGVzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5tb2R1bGVUb0ZpbGVOYW1lKTtcbiAgfVxuXG4gIGdldEZpbGVOYW1lRnJvbU1vZHVsZShtb2R1bGU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubW9kdWxlVG9GaWxlTmFtZVttb2R1bGVdO1xuICB9XG5cbiAgZ2V0IGZpbGVOYW1lcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMucmVmZXJlbmNlZE1vZHVsZXMpO1xuICB9XG5cbiAgZ2V0UmVmZXJlbmNlZE1vZHVsZXMoZmlsZU5hbWU6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5yZWZlcmVuY2VkTW9kdWxlc1tmaWxlTmFtZV07XG4gIH1cbn1cbiJdfQ==

@@ -27,3 +27,3 @@ "use strict";

*/
var Rewriter = (function () {
var Rewriter = /** @class */ (function () {
function Rewriter(file, sourceMapper) {

@@ -227,3 +227,2 @@ if (sourceMapper === void 0) { sourceMapper = source_map_utils_1.NOOP_SOURCE_MAPPER; }

exports.unescapeName = unescapeName;
//# sourceMappingURL=rewriter.js.map
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV3cml0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcmV3cml0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7Ozs7O0FBRUgsK0JBQWlDO0FBRWpDLHVEQUFvRjtBQUVwRjs7OztHQUlHO0FBQ0g7SUFpQkUsa0JBQW1CLElBQW1CLEVBQVUsWUFBK0M7UUFBL0MsNkJBQUEsRUFBQSxlQUE2QixxQ0FBa0I7UUFBNUUsU0FBSSxHQUFKLElBQUksQ0FBZTtRQUFVLGlCQUFZLEdBQVosWUFBWSxDQUFtQztRQWhCdkYsV0FBTSxHQUFhLEVBQUUsQ0FBQztRQUM5Qiw2Q0FBNkM7UUFDbkMsZ0JBQVcsR0FBb0IsRUFBRSxDQUFDO1FBQzVDLHNDQUFzQztRQUM5QixhQUFRLEdBQW1CLEVBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUMsQ0FBQztRQUNyRTs7O1dBR0c7UUFDSyxXQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ25COzs7V0FHRztRQUNLLDJCQUFzQixHQUFHLENBQUMsQ0FBQyxDQUFDO0lBR3BDLENBQUM7SUFFRCw0QkFBUyxHQUFUO1FBQ0UsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3RCLE1BQU0sSUFBSSxLQUFLLENBQUMsaUNBQWlDLENBQUMsQ0FBQztRQUNyRCxDQUFDO1FBQ0QsTUFBTSxDQUFDO1lBQ0wsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUM1QixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7U0FDOUIsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILHdCQUFLLEdBQUwsVUFBTSxJQUFhO1FBQ2pCLDJEQUEyRDtRQUMzRCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDZCxJQUFJLENBQUM7WUFDSCxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3ZCLENBQUM7UUFDSCxDQUFDO1FBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNYLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztnQkFBQyxDQUFDLENBQUMsT0FBTyxHQUFHLDRCQUE0QixDQUFDO1lBQ3pELENBQUMsQ0FBQyxPQUFPLElBQUksV0FBUyxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsTUFBRyxDQUFDO1lBQ3JFLElBQUEsNkRBQTRFLEVBQTNFLGNBQUksRUFBRSx3QkFBUyxDQUE2RDtZQUNuRixDQUFDLENBQUMsT0FBTyxJQUFPLElBQUksR0FBRyxDQUFDLFVBQUksU0FBUyxHQUFHLENBQUMsQ0FBRSxDQUFDO1lBQzVDLE1BQU0sQ0FBQyxDQUFDO1FBQ1YsQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDTywrQkFBWSxHQUF0QixVQUF1QixJQUFhO1FBQ2xDLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsd0VBQXdFO0lBQ3hFLDRCQUFTLEdBQVQsVUFBVSxJQUFhLEVBQUUsWUFBb0IsRUFBRSx5QkFBZ0M7UUFBdEQsNkJBQUEsRUFBQSxvQkFBb0I7UUFBRSwwQ0FBQSxFQUFBLGdDQUFnQztRQUM3RSxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDOUIsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztZQUNqQiw4REFBOEQ7WUFDOUQsOERBQThEO1lBQzlELDREQUE0RDtZQUM1RCw2REFBNkQ7WUFDN0QsNEJBQTRCO1lBQzVCLEVBQUUsQ0FBQyxDQUFDLHlCQUF5QixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUN2RSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2xCLENBQUM7WUFDRCxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3hCLENBQUM7UUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsZ0NBQWEsR0FBYixVQUFjLElBQWEsRUFBRSxHQUFXLEVBQUUsR0FBbUI7UUFBN0QsaUJBYUM7UUFieUMsb0JBQUEsRUFBQSxNQUFNLElBQUksQ0FBQyxNQUFNLEVBQUU7UUFDM0QsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUM7WUFDdkMsTUFBTSxDQUFDO1FBQ1QsQ0FBQztRQUNELElBQU0seUJBQXlCLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDO1FBQzlELElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN6RSxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxVQUFBLEtBQUs7WUFDekIsS0FBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1lBQ2pELEtBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbEIsR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsc0JBQXNCLEdBQUcseUJBQXlCLENBQUM7SUFDMUQsQ0FBQztJQUVELHFDQUFrQixHQUFsQixVQUFtQixJQUFhO1FBQzlCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQsbUNBQWdCLEdBQWhCLFVBQWlCLElBQWE7UUFDNUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsNkJBQVUsR0FBVixVQUFXLElBQWEsRUFBRSxJQUFZLEVBQUUsRUFBVTtRQUNoRCxJQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEMsSUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2xDLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxTQUFTLElBQUksSUFBSSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDMUMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQ3JELENBQUM7UUFDRCxtRUFBbUU7UUFDbkUsc0VBQXNFO1FBQ3RFLHVFQUF1RTtRQUN2RSxrRUFBa0U7UUFDbEUscUVBQXFFO1FBQ3JFLHFFQUFxRTtRQUNyRSxJQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLDZCQUE2QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUN4QixJQUFJLEVBQUUsRUFBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFDLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDN0YscUVBQXFFO1FBQ3JFLHFFQUFxRTtRQUNyRSxtRUFBbUU7UUFDbkUsMERBQTBEO1FBQzFELElBQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDNUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNULElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEIsQ0FBQztJQUNILENBQUM7SUFFRCx1QkFBSSxHQUFKLFVBQUssR0FBVztRQUNkLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDOztZQUN0QixHQUFHLENBQUMsQ0FBWSxJQUFBLFFBQUEsU0FBQSxHQUFHLENBQUEsd0JBQUE7Z0JBQWQsSUFBTSxDQUFDLGdCQUFBO2dCQUNWLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ3ZCLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDO29CQUNmLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztnQkFDM0IsQ0FBQzthQUNGOzs7Ozs7Ozs7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDOztJQUN2QyxDQUFDO0lBRUQsMkZBQTJGO0lBQzNGLG1DQUFnQixHQUFoQixVQUFpQixHQUFXO1FBQzFCLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCx3Q0FBd0M7SUFDeEMsZ0NBQWEsR0FBYixVQUFjLE9BQWU7UUFDM0IsdUNBQXVDO1FBQ3ZDLElBQU0sTUFBTSxHQUFHLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JELE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gseUNBQXNCLEdBQXRCLFVBQXVCLElBQWEsRUFBRSxLQUFhO1FBQ2pELElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFLLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyw0QkFBdUIsS0FBTyxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVELHdCQUFLLEdBQUwsVUFBTSxJQUFhLEVBQUUsV0FBbUI7UUFDdEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7WUFDcEIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDdEIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ3ZDLFdBQVcsYUFBQTtZQUNYLFFBQVEsRUFBRSxFQUFFLENBQUMsa0JBQWtCLENBQUMsS0FBSztZQUNyQyxJQUFJLEVBQUUsQ0FBQztTQUNSLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDSCxlQUFDO0FBQUQsQ0FBQyxBQTdLRCxJQTZLQztBQTdLcUIsNEJBQVE7QUErSzlCLHNEQUFzRDtBQUN0RCwyQkFBa0MsVUFBeUI7SUFDekQseUVBQXlFO0lBQ3pFLG9DQUFvQztJQUNwQyxNQUFNLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO0FBQzlCLENBQUM7QUFKRCw4Q0FJQztBQUVEOzs7R0FHRztBQUNILHNCQUE2QixJQUFZO0lBQ3ZDLDRFQUE0RTtJQUM1RSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUMsTUFBTSxDQUFDLElBQUksQ0FBQztBQUNkLENBQUM7QUFKRCxvQ0FJQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5cbmltcG9ydCB7Tk9PUF9TT1VSQ0VfTUFQUEVSLCBTb3VyY2VNYXBwZXIsIFNvdXJjZVBvc2l0aW9ufSBmcm9tICcuL3NvdXJjZV9tYXBfdXRpbHMnO1xuXG4vKipcbiAqIEEgUmV3cml0ZXIgbWFuYWdlcyBpdGVyYXRpbmcgdGhyb3VnaCBhIHRzLlNvdXJjZUZpbGUsIGNvcHlpbmcgaW5wdXRcbiAqIHRvIG91dHB1dCB3aGlsZSBsZXR0aW5nIHRoZSBzdWJjbGFzcyBwb3RlbnRpYWxseSBhbHRlciBzb21lIG5vZGVzXG4gKiBhbG9uZyB0aGUgd2F5IGJ5IGltcGxlbWVudGluZyBtYXliZVByb2Nlc3MoKS5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFJld3JpdGVyIHtcbiAgcHJpdmF0ZSBvdXRwdXQ6IHN0cmluZ1tdID0gW107XG4gIC8qKiBFcnJvcnMgZm91bmQgd2hpbGUgZXhhbWluaW5nIHRoZSBjb2RlLiAqL1xuICBwcm90ZWN0ZWQgZGlhZ25vc3RpY3M6IHRzLkRpYWdub3N0aWNbXSA9IFtdO1xuICAvKiogQ3VycmVudCBwb3NpdGlvbiBpbiB0aGUgb3V0cHV0LiAqL1xuICBwcml2YXRlIHBvc2l0aW9uOiBTb3VyY2VQb3NpdGlvbiA9IHtsaW5lOiAwLCBjb2x1bW46IDAsIHBvc2l0aW9uOiAwfTtcbiAgLyoqXG4gICAqIFRoZSBjdXJyZW50IGxldmVsIG9mIHJlY3Vyc2lvbiB0aHJvdWdoIFR5cGVTY3JpcHQgTm9kZXMuICBVc2VkIGluIGZvcm1hdHRpbmcgaW50ZXJuYWwgZGVidWdcbiAgICogcHJpbnQgc3RhdGVtZW50cy5cbiAgICovXG4gIHByaXZhdGUgaW5kZW50ID0gMDtcbiAgLyoqXG4gICAqIFNraXAgZW1pdHRpbmcgYW55IGNvZGUgYmVmb3JlIHRoZSBnaXZlbiBvZmZzZXQuIEUuZy4gdXNlZCB0byBhdm9pZCBlbWl0dGluZyBAZmlsZW92ZXJ2aWV3XG4gICAqIGNvbW1lbnRzIHR3aWNlLlxuICAgKi9cbiAgcHJpdmF0ZSBza2lwQ29tbWVudHNVcFRvT2Zmc2V0ID0gLTE7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGZpbGU6IHRzLlNvdXJjZUZpbGUsIHByaXZhdGUgc291cmNlTWFwcGVyOiBTb3VyY2VNYXBwZXIgPSBOT09QX1NPVVJDRV9NQVBQRVIpIHtcbiAgfVxuXG4gIGdldE91dHB1dCgpOiB7b3V0cHV0OiBzdHJpbmcsIGRpYWdub3N0aWNzOiB0cy5EaWFnbm9zdGljW119IHtcbiAgICBpZiAodGhpcy5pbmRlbnQgIT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigndmlzaXQoKSBmYWlsZWQgdG8gdHJhY2sgbmVzdGluZycpO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgb3V0cHV0OiB0aGlzLm91dHB1dC5qb2luKCcnKSxcbiAgICAgIGRpYWdub3N0aWNzOiB0aGlzLmRpYWdub3N0aWNzLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogdmlzaXQgdHJhdmVyc2VzIGEgTm9kZSwgcmVjdXJzaXZlbHkgd3JpdGluZyBhbGwgbm9kZXMgbm90IGhhbmRsZWQgYnkgdGhpcy5tYXliZVByb2Nlc3MuXG4gICAqL1xuICB2aXNpdChub2RlOiB0cy5Ob2RlKSB7XG4gICAgLy8gdGhpcy5sb2dXaXRoSW5kZW50KCdub2RlOiAnICsgdHMuU3ludGF4S2luZFtub2RlLmtpbmRdKTtcbiAgICB0aGlzLmluZGVudCsrO1xuICAgIHRyeSB7XG4gICAgICBpZiAoIXRoaXMubWF5YmVQcm9jZXNzKG5vZGUpKSB7XG4gICAgICAgIHRoaXMud3JpdGVOb2RlKG5vZGUpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmICghZS5tZXNzYWdlKSBlLm1lc3NhZ2UgPSAnVW5oYW5kbGVkIGVycm9yIGluIHRzaWNrbGUnO1xuICAgICAgZS5tZXNzYWdlICs9IGBcXG4gYXQgJHt0cy5TeW50YXhLaW5kW25vZGUua2luZF19IGluICR7dGhpcy5maWxlLmZpbGVOYW1lfTpgO1xuICAgICAgY29uc3Qge2xpbmUsIGNoYXJhY3Rlcn0gPSB0aGlzLmZpbGUuZ2V0TGluZUFuZENoYXJhY3Rlck9mUG9zaXRpb24obm9kZS5nZXRTdGFydCgpKTtcbiAgICAgIGUubWVzc2FnZSArPSBgJHtsaW5lICsgMX06JHtjaGFyYWN0ZXIgKyAxfWA7XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgICB0aGlzLmluZGVudC0tO1xuICB9XG5cbiAgLyoqXG4gICAqIG1heWJlUHJvY2VzcyBsZXRzIHN1YmNsYXNzZXMgb3B0aW9uYWxseSBwcm9jZXNzZXMgYSBub2RlLlxuICAgKlxuICAgKiBAcmV0dXJuIFRydWUgaWYgdGhlIG5vZGUgaGFzIGJlZW4gaGFuZGxlZCBhbmQgZG9lc24ndCBuZWVkIHRvIGJlIHRyYXZlcnNlZDtcbiAgICogICAgZmFsc2UgdG8gaGF2ZSB0aGUgbm9kZSB3cml0dGVuIGFuZCBpdHMgY2hpbGRyZW4gcmVjdXJzaXZlbHkgdmlzaXRlZC5cbiAgICovXG4gIHByb3RlY3RlZCBtYXliZVByb2Nlc3Mobm9kZTogdHMuTm9kZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKiB3cml0ZU5vZGUgd3JpdGVzIGEgdHMuTm9kZSwgY2FsbGluZyB0aGlzLnZpc2l0KCkgb24gaXRzIGNoaWxkcmVuLiAqL1xuICB3cml0ZU5vZGUobm9kZTogdHMuTm9kZSwgc2tpcENvbW1lbnRzID0gZmFsc2UsIG5ld0xpbmVJZkNvbW1lbnRzU3RyaXBwZWQgPSB0cnVlKSB7XG4gICAgbGV0IHBvcyA9IG5vZGUuZ2V0RnVsbFN0YXJ0KCk7XG4gICAgaWYgKHNraXBDb21tZW50cykge1xuICAgICAgLy8gVG8gc2tpcCBjb21tZW50cywgd2Ugc2tpcCBhbGwgd2hpdGVzcGFjZS9jb21tZW50cyBwcmVjZWRpbmdcbiAgICAgIC8vIHRoZSBub2RlLiAgQnV0IGlmIHRoZXJlIHdhcyBhbnl0aGluZyBza2lwcGVkIHdlIHNob3VsZCBlbWl0XG4gICAgICAvLyBhIG5ld2xpbmUgaW4gaXRzIHBsYWNlIHNvIHRoYXQgdGhlIG5vZGUgcmVtYWlucyBzZXBhcmF0ZWRcbiAgICAgIC8vIGZyb20gdGhlIHByZXZpb3VzIG5vZGUuICBUT0RPOiBkb24ndCBza2lwIGFueXRoaW5nIGhlcmUgaWZcbiAgICAgIC8vIHRoZXJlIHdhc24ndCBhbnkgY29tbWVudC5cbiAgICAgIGlmIChuZXdMaW5lSWZDb21tZW50c1N0cmlwcGVkICYmIG5vZGUuZ2V0RnVsbFN0YXJ0KCkgPCBub2RlLmdldFN0YXJ0KCkpIHtcbiAgICAgICAgdGhpcy5lbWl0KCdcXG4nKTtcbiAgICAgIH1cbiAgICAgIHBvcyA9IG5vZGUuZ2V0U3RhcnQoKTtcbiAgICB9XG4gICAgdGhpcy53cml0ZU5vZGVGcm9tKG5vZGUsIHBvcyk7XG4gIH1cblxuICB3cml0ZU5vZGVGcm9tKG5vZGU6IHRzLk5vZGUsIHBvczogbnVtYmVyLCBlbmQgPSBub2RlLmdldEVuZCgpKSB7XG4gICAgaWYgKGVuZCA8PSB0aGlzLnNraXBDb21tZW50c1VwVG9PZmZzZXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qgb2xkU2tpcENvbW1lbnRzVXBUb09mZnNldCA9IHRoaXMuc2tpcENvbW1lbnRzVXBUb09mZnNldDtcbiAgICB0aGlzLnNraXBDb21tZW50c1VwVG9PZmZzZXQgPSBNYXRoLm1heCh0aGlzLnNraXBDb21tZW50c1VwVG9PZmZzZXQsIHBvcyk7XG4gICAgdHMuZm9yRWFjaENoaWxkKG5vZGUsIGNoaWxkID0+IHtcbiAgICAgIHRoaXMud3JpdGVSYW5nZShub2RlLCBwb3MsIGNoaWxkLmdldEZ1bGxTdGFydCgpKTtcbiAgICAgIHRoaXMudmlzaXQoY2hpbGQpO1xuICAgICAgcG9zID0gY2hpbGQuZ2V0RW5kKCk7XG4gICAgfSk7XG4gICAgdGhpcy53cml0ZVJhbmdlKG5vZGUsIHBvcywgZW5kKTtcbiAgICB0aGlzLnNraXBDb21tZW50c1VwVG9PZmZzZXQgPSBvbGRTa2lwQ29tbWVudHNVcFRvT2Zmc2V0O1xuICB9XG5cbiAgd3JpdGVMZWFkaW5nVHJpdmlhKG5vZGU6IHRzLk5vZGUpIHtcbiAgICB0aGlzLndyaXRlUmFuZ2Uobm9kZSwgbm9kZS5nZXRGdWxsU3RhcnQoKSwgbm9kZS5nZXRTdGFydCgpKTtcbiAgfVxuXG4gIGFkZFNvdXJjZU1hcHBpbmcobm9kZTogdHMuTm9kZSkge1xuICAgIHRoaXMud3JpdGVSYW5nZShub2RlLCBub2RlLmdldEVuZCgpLCBub2RlLmdldEVuZCgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXcml0ZSBhIHNwYW4gb2YgdGhlIGlucHV0IGZpbGUgYXMgZXhwcmVzc2VkIGJ5IGFic29sdXRlIG9mZnNldHMuXG4gICAqIFRoZXNlIG9mZnNldHMgYXJlIGZvdW5kIGluIGF0dHJpYnV0ZXMgbGlrZSBub2RlLmdldEZ1bGxTdGFydCgpIGFuZFxuICAgKiBub2RlLmdldEVuZCgpLlxuICAgKi9cbiAgd3JpdGVSYW5nZShub2RlOiB0cy5Ob2RlLCBmcm9tOiBudW1iZXIsIHRvOiBudW1iZXIpIHtcbiAgICBjb25zdCBmdWxsU3RhcnQgPSBub2RlLmdldEZ1bGxTdGFydCgpO1xuICAgIGNvbnN0IHRleHRTdGFydCA9IG5vZGUuZ2V0U3RhcnQoKTtcbiAgICBpZiAoZnJvbSA+PSBmdWxsU3RhcnQgJiYgZnJvbSA8IHRleHRTdGFydCkge1xuICAgICAgZnJvbSA9IE1hdGgubWF4KGZyb20sIHRoaXMuc2tpcENvbW1lbnRzVXBUb09mZnNldCk7XG4gICAgfVxuICAgIC8vIEFkZCBhIHNvdXJjZSBtYXBwaW5nLiB3cml0ZVJhbmdlKGZyb20sIHRvKSBhbHdheXMgY29ycmVzcG9uZHMgdG9cbiAgICAvLyBvcmlnaW5hbCBzb3VyY2UgY29kZSwgc28gYWRkIGEgbWFwcGluZyBhdCB0aGUgY3VycmVudCBsb2NhdGlvbiB0aGF0XG4gICAgLy8gcG9pbnRzIGJhY2sgdG8gdGhlIGxvY2F0aW9uIGF0IGBmcm9tYC4gVGhlIGFkZGl0aW9uYWwgY29kZSBnZW5lcmF0ZWRcbiAgICAvLyBieSB0c2lja2xlIHdpbGwgdGhlbiBiZSBjb25zaWRlcmVkIHBhcnQgb2YgdGhlIGxhc3QgbWFwcGVkIGNvZGVcbiAgICAvLyBzZWN0aW9uIHByZWNlZGluZyBpdC4gVGhhdCdzIGFyZ3VhYmx5IGluY29ycmVjdCAoZS5nLiBmb3IgdGhlIGZha2VcbiAgICAvLyBtZXRob2RzIGRlZmluaW5nIHByb3BlcnRpZXMpLCBidXQgaXMgZ29vZCBlbm91Z2ggZm9yIHN0YWNrIHRyYWNlcy5cbiAgICBjb25zdCBwb3MgPSB0aGlzLmZpbGUuZ2V0TGluZUFuZENoYXJhY3Rlck9mUG9zaXRpb24oZnJvbSk7XG4gICAgdGhpcy5zb3VyY2VNYXBwZXIuYWRkTWFwcGluZyhcbiAgICAgICAgbm9kZSwge2xpbmU6IHBvcy5saW5lLCBjb2x1bW46IHBvcy5jaGFyYWN0ZXIsIHBvc2l0aW9uOiBmcm9tfSwgdGhpcy5wb3NpdGlvbiwgdG8gLSBmcm9tKTtcbiAgICAvLyBnZXRTb3VyY2VGaWxlKCkuZ2V0VGV4dCgpIGlzIHdyb25nIGhlcmUgYmVjYXVzZSBpdCBoYXMgdGhlIHRleHQgb2ZcbiAgICAvLyB0aGUgU291cmNlRmlsZSBub2RlIG9mIHRoZSBBU1QsIHdoaWNoIGRvZXNuJ3QgY29udGFpbiB0aGUgY29tbWVudHNcbiAgICAvLyBwcmVjZWRpbmcgdGhhdCBub2RlLiAgU2VtYW50aWNhbGx5IHRoZXNlIHJhbmdlcyBhcmUganVzdCBvZmZzZXRzXG4gICAgLy8gaW50byB0aGUgb3JpZ2luYWwgc291cmNlIGZpbGUgdGV4dCwgc28gc2xpY2UgZnJvbSB0aGF0LlxuICAgIGNvbnN0IHRleHQgPSB0aGlzLmZpbGUudGV4dC5zbGljZShmcm9tLCB0byk7XG4gICAgaWYgKHRleHQpIHtcbiAgICAgIHRoaXMuZW1pdCh0ZXh0KTtcbiAgICB9XG4gIH1cblxuICBlbWl0KHN0cjogc3RyaW5nKSB7XG4gICAgdGhpcy5vdXRwdXQucHVzaChzdHIpO1xuICAgIGZvciAoY29uc3QgYyBvZiBzdHIpIHtcbiAgICAgIHRoaXMucG9zaXRpb24uY29sdW1uKys7XG4gICAgICBpZiAoYyA9PT0gJ1xcbicpIHtcbiAgICAgICAgdGhpcy5wb3NpdGlvbi5saW5lKys7XG4gICAgICAgIHRoaXMucG9zaXRpb24uY29sdW1uID0gMDtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5wb3NpdGlvbi5wb3NpdGlvbiArPSBzdHIubGVuZ3RoO1xuICB9XG5cbiAgLyoqIFJlbW92ZXMgY29tbWVudCBtZXRhY2hhcmFjdGVycyBmcm9tIGEgc3RyaW5nLCB0byBtYWtlIGl0IHNhZmUgdG8gZW1iZWQgaW4gYSBjb21tZW50LiAqL1xuICBlc2NhcGVGb3JDb21tZW50KHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gc3RyLnJlcGxhY2UoL1xcL1xcKi9nLCAnX18nKS5yZXBsYWNlKC9cXCpcXC8vZywgJ19fJyk7XG4gIH1cblxuICAvKiB0c2xpbnQ6ZGlzYWJsZTogbm8tdW51c2VkLXZhcmlhYmxlICovXG4gIGxvZ1dpdGhJbmRlbnQobWVzc2FnZTogc3RyaW5nKSB7XG4gICAgLyogdHNsaW50OmVuYWJsZTogbm8tdW51c2VkLXZhcmlhYmxlICovXG4gICAgY29uc3QgcHJlZml4ID0gbmV3IEFycmF5KHRoaXMuaW5kZW50ICsgMSkuam9pbignfCAnKTtcbiAgICBjb25zb2xlLmxvZyhwcmVmaXggKyBtZXNzYWdlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm9kdWNlcyBhIGNvbXBpbGVyIGVycm9yIHRoYXQgcmVmZXJlbmNlcyB0aGUgTm9kZSdzIGtpbmQuICBUaGlzIGlzIHVzZWZ1bCBmb3IgdGhlIFwiZWxzZVwiXG4gICAqIGJyYW5jaCBvZiBjb2RlIHRoYXQgaXMgYXR0ZW1wdGluZyB0byBoYW5kbGUgYWxsIHBvc3NpYmxlIGlucHV0IE5vZGUgdHlwZXMsIHRvIGVuc3VyZSBhbGwgY2FzZXNcbiAgICogY292ZXJlZC5cbiAgICovXG4gIGVycm9yVW5pbXBsZW1lbnRlZEtpbmQobm9kZTogdHMuTm9kZSwgd2hlcmU6IHN0cmluZykge1xuICAgIHRoaXMuZXJyb3Iobm9kZSwgYCR7dHMuU3ludGF4S2luZFtub2RlLmtpbmRdfSBub3QgaW1wbGVtZW50ZWQgaW4gJHt3aGVyZX1gKTtcbiAgfVxuXG4gIGVycm9yKG5vZGU6IHRzLk5vZGUsIG1lc3NhZ2VUZXh0OiBzdHJpbmcpIHtcbiAgICB0aGlzLmRpYWdub3N0aWNzLnB1c2goe1xuICAgICAgZmlsZTogdGhpcy5maWxlLFxuICAgICAgc3RhcnQ6IG5vZGUuZ2V0U3RhcnQoKSxcbiAgICAgIGxlbmd0aDogbm9kZS5nZXRFbmQoKSAtIG5vZGUuZ2V0U3RhcnQoKSxcbiAgICAgIG1lc3NhZ2VUZXh0LFxuICAgICAgY2F0ZWdvcnk6IHRzLkRpYWdub3N0aWNDYXRlZ29yeS5FcnJvcixcbiAgICAgIGNvZGU6IDAsXG4gICAgfSk7XG4gIH1cbn1cblxuLyoqIFJldHVybnMgdGhlIHN0cmluZyBjb250ZW50cyBvZiBhIHRzLklkZW50aWZpZXIuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0SWRlbnRpZmllclRleHQoaWRlbnRpZmllcjogdHMuSWRlbnRpZmllcik6IHN0cmluZyB7XG4gIC8vIE5PVEU6IHRoZSAndGV4dCcgcHJvcGVydHkgb24gYW4gSWRlbnRpZmllciBtYXkgYmUgZXNjYXBlZCBpZiBpdCBzdGFydHNcbiAgLy8gd2l0aCAnX18nLCBzbyBqdXN0IHVzZSBnZXRUZXh0KCkuXG4gIHJldHVybiBpZGVudGlmaWVyLmdldFRleHQoKTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBlc2NhcGVkIFR5cGVTY3JpcHQgbmFtZSBpbnRvIHRoZSBvcmlnaW5hbCBzb3VyY2UgbmFtZS5cbiAqIFByZWZlciBnZXRJZGVudGlmaWVyVGV4dCgpIGluc3RlYWQgaWYgcG9zc2libGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1bmVzY2FwZU5hbWUobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgLy8gU2VlIHRoZSBwcml2YXRlIGZ1bmN0aW9uIHVuZXNjYXBlSWRlbnRpZmllciBpbiBUeXBlU2NyaXB0J3MgdXRpbGl0aWVzLnRzLlxuICBpZiAobmFtZS5tYXRjaCgvXl9fXy8pKSByZXR1cm4gbmFtZS5zdWJzdHIoMSk7XG4gIHJldHVybiBuYW1lO1xufVxuIl19

@@ -110,3 +110,3 @@ "use strict";

};
var DefaultSourceMapper = (function () {
var DefaultSourceMapper = /** @class */ (function () {
function DefaultSourceMapper(fileName) {

@@ -136,3 +136,2 @@ this.fileName = fileName;

exports.DefaultSourceMapper = DefaultSourceMapper;
//# sourceMappingURL=source_map_utils.js.map
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlX21hcF91dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zb3VyY2VfbWFwX3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7O0FBRUgseUNBQXVHO0FBR3ZHOzs7O0dBSUc7QUFDSDtJQUNFLE1BQU0sQ0FBQyxJQUFJLE1BQU0sQ0FBQywwREFBMEQsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUN0RixDQUFDO0FBRUQsaUNBQXdDLE1BQWM7SUFDcEQsTUFBTSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUM3QyxDQUFDO0FBRkQsMERBRUM7QUFFRCxpQ0FBd0MsTUFBYztJQUNwRCxJQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLHVCQUF1QixFQUFFLENBQUMsQ0FBQztJQUN0RCxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbEMsQ0FBQztBQUhELDBEQUdDO0FBRUQsZ0NBQXVDLE1BQWM7SUFDbkQsSUFBTSxvQkFBb0IsR0FBRyx1QkFBdUIsRUFBRSxDQUFDO0lBQ3ZELElBQUksY0FBYyxHQUF5QixJQUFJLENBQUM7SUFDaEQsSUFBSSxNQUFNLEdBQXlCLElBQUksQ0FBQztJQUN4Qyw0REFBNEQ7SUFDNUQsNERBQTREO0lBQzVELDJEQUEyRDtJQUMzRCxtQ0FBbUM7SUFDbkMsR0FBRyxDQUFDO1FBQ0YsY0FBYyxHQUFHLE1BQU0sQ0FBQztRQUN4QixNQUFNLEdBQUcsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdDLENBQUMsUUFBUSxNQUFNLEtBQUssSUFBSSxFQUFFO0lBQzFCLElBQU0sZ0JBQWdCLEdBQUcsY0FBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxD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QTJEO1lBQzNELFFBQVEsRUFBRSxFQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBQztZQUM5QixTQUFTLEVBQUUsRUFBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUM7WUFDL0IsTUFBTSxFQUFFLElBQUksQ0FBQyxRQUFRO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCx3Q0FBVSxHQUFWLFVBQVcsSUFBYSxFQUFFLFFBQXdCLEVBQUUsU0FBeUIsRUFBRSxNQUFjO1FBRTNGLEVBQUUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUM7Z0JBQ3hCLDJEQUEyRDtnQkFDM0QsUUFBUSxFQUFFLEVBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsTUFBTSxFQUFDO2dCQUM1RCxTQUFTLEVBQUUsRUFBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLFNBQVMsQ0FBQyxNQUFNLEVBQUM7Z0JBQy9ELE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUTthQUN0QixDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUNILDBCQUFDO0FBQUQsQ0FBQyxBQXhCRCxJQXdCQztBQXhCWSxrREFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7QmFzaWNTb3VyY2VNYXBDb25zdW1lciwgUmF3U291cmNlTWFwLCBTb3VyY2VNYXBDb25zdW1lciwgU291cmNlTWFwR2VuZXJhdG9yfSBmcm9tICdzb3VyY2UtbWFwJztcbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuXG4vKipcbiAqIFJldHVybiBhIG5ldyBSZWdFeHAgb2JqZWN0IGV2ZXJ5IHRpbWUgd2Ugd2FudCBvbmUgYmVjYXVzZSB0aGVcbiAqIFJlZ0V4cCBvYmplY3QgaGFzIGludGVybmFsIHN0YXRlIHRoYXQgd2UgZG9uJ3Qgd2FudCB0byBwZXJzaXN0XG4gKiBiZXR3ZWVuIGRpZmZlcmVudCBsb2dpY2FsIHVzZXMuXG4gKi9cbmZ1bmN0aW9uIGdldElubGluZVNvdXJjZU1hcFJlZ2V4KCk6IFJlZ0V4cCB7XG4gIHJldHVybiBuZXcgUmVnRXhwKCdeLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCwoLiopJCcsICdtZycpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29udGFpbnNJbmxpbmVTb3VyY2VNYXAoc291cmNlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIGdldElubGluZVNvdXJjZU1hcENvdW50KHNvdXJjZSkgPiAwO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SW5saW5lU291cmNlTWFwQ291bnQoc291cmNlOiBzdHJpbmcpOiBudW1iZXIge1xuICBjb25zdCBtYXRjaCA9IHNvdXJjZS5tYXRjaChnZXRJbmxpbmVTb3VyY2VNYXBSZWdleCgpKTtcbiAgcmV0dXJuIG1hdGNoID8gbWF0Y2gubGVuZ3RoIDogMDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RJbmxpbmVTb3VyY2VNYXAoc291cmNlOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBpbmxpbmVTb3VyY2VNYXBSZWdleCA9IGdldElubGluZVNvdXJjZU1hcFJlZ2V4KCk7XG4gIGxldCBwcmV2aW91c1Jlc3VsdDogUmVnRXhwRXhlY0FycmF5fG51bGwgPSBudWxsO1xuICBsZXQgcmVzdWx0OiBSZWdFeHBFeGVjQXJyYXl8bnVsbCA9IG51bGw7XG4gIC8vIFdlIHdhbnQgdG8gZXh0cmFjdCB0aGUgbGFzdCBzb3VyY2UgbWFwIGluIHRoZSBzb3VyY2UgZmlsZVxuICAvLyBzaW5jZSB0aGF0J3MgcHJvYmFibHkgdGhlIG1vc3QgcmVjZW50IG9uZSBhZGRlZC4gIFdlIGtlZXBcbiAgLy8gbWF0Y2hpbmcgYWdhaW5zdCB0aGUgc291cmNlIHVudGlsIHdlIGRvbid0IGdldCBhIHJlc3VsdCxcbiAgLy8gdGhlbiB3ZSB1c2UgdGhlIHByZXZpb3VzIHJlc3VsdC5cbiAgZG8ge1xuICAgIHByZXZpb3VzUmVzdWx0ID0gcmVzdWx0O1xuICAgIHJlc3VsdCA9IGlubGluZVNvdXJjZU1hcFJlZ2V4LmV4ZWMoc291cmNlKTtcbiAgfSB3aGlsZSAocmVzdWx0ICE9PSBudWxsKTtcbiAgY29uc3QgYmFzZTY0RW5jb2RlZE1hcCA9IHByZXZpb3VzUmVzdWx0IVsxXTtcbiAgcmV0dXJuIEJ1ZmZlci5mcm9tKGJhc2U2NEVuY29kZWRNYXAsICdiYXNlNjQnKS50b1N0cmluZygndXRmOCcpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlSW5saW5lU291cmNlTWFwKHNvdXJjZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHNvdXJjZS5yZXBsYWNlKGdldElubGluZVNvdXJjZU1hcFJlZ2V4KCksICcnKTtcbn1cblxuLyoqXG4gKiBTZXRzIHRoZSBzb3VyY2UgbWFwIGlubGluZSBpbiB0aGUgZmlsZS4gIElmIHRoZXJlJ3MgYW4gZXhpc3RpbmcgaW5saW5lIHNvdXJjZVxuICogbWFwLCBpdCBjbG9iYmVycyBpdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNldElubGluZVNvdXJjZU1hcChzb3VyY2U6IHN0cmluZywgc291cmNlTWFwOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBlbmNvZGVkU291cmNlTWFwID0gQnVmZmVyLmZyb20oc291cmNlTWFwLCAndXRmOCcpLnRvU3RyaW5nKCdiYXNlNjQnKTtcbiAgaWYgKGNvbnRhaW5zSW5saW5lU291cmNlTWFwKHNvdXJjZSkpIHtcbiAgICByZXR1cm4gc291cmNlLnJlcGxhY2UoXG4gICAgICAgIGdldElubGluZVNvdXJjZU1hcFJlZ2V4KCksXG4gICAgICAgIGAvLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LCR7ZW5jb2RlZFNvdXJjZU1hcH1gKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gYCR7c291cmNlfVxcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsJHtlbmNvZGVkU291cmNlTWFwfWA7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlU291cmNlTWFwKHRleHQ6IHN0cmluZywgZmlsZU5hbWU/OiBzdHJpbmcsIHNvdXJjZU5hbWU/OiBzdHJpbmcpOiBSYXdTb3VyY2VNYXAge1xuICBjb25zdCByYXdTb3VyY2VNYXAgPSBKU09OLnBhcnNlKHRleHQpIGFzIFJhd1NvdXJjZU1hcDtcbiAgaWYgKHNvdXJjZU5hbWUpIHtcbiAgICByYXdTb3VyY2VNYXAuc291cmNlcyA9IFtzb3VyY2VOYW1lXTtcbiAgfVxuICBpZiAoZmlsZU5hbWUpIHtcbiAgICByYXdTb3VyY2VNYXAuZmlsZSA9IGZpbGVOYW1lO1xuICB9XG4gIHJldHVybiByYXdTb3VyY2VNYXA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzb3VyY2VNYXBDb25zdW1lclRvR2VuZXJhdG9yKHNvdXJjZU1hcENvbnN1bWVyOiBTb3VyY2VNYXBDb25zdW1lcik6XG4gICAgU291cmNlTWFwR2VuZXJhdG9yIHtcbiAgcmV0dXJuIFNvdXJjZU1hcEdlbmVyYXRvci5mcm9tU291cmNlTWFwKHNvdXJjZU1hcENvbnN1bWVyKTtcbn1cblxuLyoqXG4gKiBUc2MgaWRlbnRpZmllcyBzb3VyY2UgZmlsZXMgYnkgdGhlaXIgcmVsYXRpdmUgcGF0aCB0byB0aGUgb3V0cHV0IGZpbGUuICBTaW5jZVxuICogdGhlcmUncyBubyBlYXN5IHdheSB0byBpZGVudGlmeSB0aGVzZSByZWxhdGl2ZSBwYXRocyB3aGVuIHRzaWNrbGUgZ2VuZXJhdGVzIGl0c1xuICogb3duIHNvdXJjZSBtYXBzLCB3ZSBwYXRjaCB0aGVtIHdpdGggdGhlIGZpbGUgbmFtZSBmcm9tIHRoZSB0c2Mgc291cmNlIG1hcHNcbiAqIGJlZm9yZSBjb21wb3NpbmcgdGhlbS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNvdXJjZU1hcEdlbmVyYXRvclRvQ29uc3VtZXIoXG4gICAgc291cmNlTWFwR2VuZXJhdG9yOiBTb3VyY2VNYXBHZW5lcmF0b3IsIGZpbGVOYW1lPzogc3RyaW5nLFxuICAgIHNvdXJjZU5hbWU/OiBzdHJpbmcpOiBTb3VyY2VNYXBDb25zdW1lciB7XG4gIGNvbnN0IHJhd1NvdXJjZU1hcCA9IHNvdXJjZU1hcEdlbmVyYXRvci50b0pTT04oKTtcbiAgaWYgKHNvdXJjZU5hbWUpIHtcbiAgICByYXdTb3VyY2VNYXAuc291cmNlcyA9IFtzb3VyY2VOYW1lXTtcbiAgfVxuICBpZiAoZmlsZU5hbWUpIHtcbiAgICByYXdTb3VyY2VNYXAuZmlsZSA9IGZpbGVOYW1lO1xuICB9XG4gIHJldHVybiBuZXcgU291cmNlTWFwQ29uc3VtZXIocmF3U291cmNlTWFwKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNvdXJjZU1hcFRleHRUb0NvbnN1bWVyKHNvdXJjZU1hcFRleHQ6IHN0cmluZyk6IEJhc2ljU291cmNlTWFwQ29uc3VtZXIge1xuICAvLyB0aGUgU291cmNlTWFwQ29uc3VtZXIgY29uc3RydWN0b3IgcmV0dXJucyBhIEJhc2ljU291cmNlTWFwQ29uc3VtZXIgb3IgYW5cbiAgLy8gSW5kZXhlZFNvdXJjZU1hcENvbnN1bWVyIGRlcGVuZGluZyBvbiBpZiB5b3UgcGFzcyBpbiBhIFJhd1NvdXJjZU1hcCBvciBhXG4gIC8vIFJhd0luZGV4TWFwIG9yIHRoZSBzdHJpbmcganNvbiBvZiBlaXRoZXIuICBJbiB0aGlzIGNhc2Ugd2UncmUgcGFzc2luZyBpblxuICAvLyB0aGUgc3RyaW5nIGZvciBhIFJhd1NvdXJjZU1hcCwgc28gd2UgYWx3YXlzIGdldCBhIEJhc2ljU291cmNlTWFwQ29uc3VtZXJcbiAgcmV0dXJuIG5ldyBTb3VyY2VNYXBDb25zdW1lcihzb3VyY2VNYXBUZXh0KSBhcyBCYXNpY1NvdXJjZU1hcENvbnN1bWVyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc291cmNlTWFwVGV4dFRvR2VuZXJhdG9yKHNvdXJjZU1hcFRleHQ6IHN0cmluZyk6IFNvdXJjZU1hcEdlbmVyYXRvciB7XG4gIHJldHVybiBTb3VyY2VNYXBHZW5lcmF0b3IuZnJvbVNvdXJjZU1hcChzb3VyY2VNYXBUZXh0VG9Db25zdW1lcihzb3VyY2VNYXBUZXh0KSk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU291cmNlUG9zaXRpb24ge1xuICAvLyAwIGJhc2VkXG4gIGNvbHVtbjogbnVtYmVyO1xuICAvLyAwIGJhc2VkXG4gIGxpbmU6IG51bWJlcjtcbiAgLy8gMCBiYXNlZFxuICBwb3NpdGlvbjogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNvdXJjZU1hcHBlciB7XG4gIGFkZE1hcHBpbmcoXG4gICAgICBvcmlnaW5hbE5vZGU6IHRzLk5vZGUsIG9yaWdpbmFsOiBTb3VyY2VQb3NpdGlvbiwgZ2VuZXJhdGVkOiBTb3VyY2VQb3NpdGlvbixcbiAgICAgIGxlbmd0aDogbnVtYmVyKTogdm9pZDtcbn1cblxuZXhwb3J0IGNvbnN0IE5PT1BfU09VUkNFX01BUFBFUjogU291cmNlTWFwcGVyID0ge1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tZW1wdHlcbiAgYWRkTWFwcGluZygpIHt9XG59O1xuXG5leHBvcnQgY2xhc3MgRGVmYXVsdFNvdXJjZU1hcHBlciBpbXBsZW1lbnRzIFNvdXJjZU1hcHBlciB7XG4gIC8qKiBUaGUgc291cmNlIG1hcCB0aGF0J3MgZ2VuZXJhdGVkIHdoaWxlIHJld3JpdGluZyB0aGlzIGZpbGUuICovXG4gIHB1YmxpYyBzb3VyY2VNYXAgPSBuZXcgU291cmNlTWFwR2VuZXJhdG9yKCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmaWxlTmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5zb3VyY2VNYXAuYWRkTWFwcGluZyh7XG4gICAgICAvLyB0c2MncyBzb3VyY2UgbWFwcyB1c2UgMS1pbmRleGVkIGxpbmVzLCAwLWluZGV4ZWQgY29sdW1uc1xuICAgICAgb3JpZ2luYWw6IHtsaW5lOiAxLCBjb2x1bW46IDB9LFxuICAgICAgZ2VuZXJhdGVkOiB7bGluZTogMSwgY29sdW1uOiAwfSxcbiAgICAgIHNvdXJjZTogdGhpcy5maWxlTmFtZSxcbiAgICB9KTtcbiAgfVxuXG4gIGFkZE1hcHBpbmcobm9kZTogdHMuTm9kZSwgb3JpZ2luYWw6IFNvdXJjZVBvc2l0aW9uLCBnZW5lcmF0ZWQ6IFNvdXJjZVBvc2l0aW9uLCBsZW5ndGg6IG51bWJlcik6XG4gICAgICB2b2lkIHtcbiAgICBpZiAobGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5zb3VyY2VNYXAuYWRkTWFwcGluZyh7XG4gICAgICAgIC8vIHRzYydzIHNvdXJjZSBtYXBzIHVzZSAxLWluZGV4ZWQgbGluZXMsIDAtaW5kZXhlZCBjb2x1bW5zXG4gICAgICAgIG9yaWdpbmFsOiB7bGluZTogb3JpZ2luYWwubGluZSArIDEsIGNvbHVtbjogb3JpZ2luYWwuY29sdW1ufSxcbiAgICAgICAgZ2VuZXJhdGVkOiB7bGluZTogZ2VuZXJhdGVkLmxpbmUgKyAxLCBjb2x1bW46IGdlbmVyYXRlZC5jb2x1bW59LFxuICAgICAgICBzb3VyY2U6IHRoaXMuZmlsZU5hbWUsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==

@@ -42,3 +42,3 @@ "use strict";

}
node = transformer_util_1.visitEachChildIgnoringTypes(node, visitNode, context);
node = ts.visitEachChild(node, visitNode, context);
node.flags |= ts.NodeFlags.Synthesized;

@@ -83,3 +83,3 @@ node.parent = undefined;

*/
var NodeSourceMapper = (function () {
var NodeSourceMapper = /** @class */ (function () {
function NodeSourceMapper() {

@@ -139,3 +139,2 @@ this.originalNodeByGeneratedRange = new Map();

}
//# sourceMappingURL=transformer_sourcemap.js.map
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmb3JtZXJfc291cmNlbWFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RyYW5zZm9ybWVyX3NvdXJjZW1hcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOztBQUVILCtCQUFpQztBQUdqQyx1REFBMEc7QUFFMUc7Ozs7R0FJRztBQUNILHdDQUNJLFFBQ1U7SUFDWixNQUFNLENBQUMsVUFBQyxPQUFPLElBQUssT0FBQSxVQUFDLFVBQVU7UUFDN0IsSUFBTSxZQUFZLEdBQUcsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO1FBQzVDLElBQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FDL0IsVUFBVSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzNGLElBQU0sVUFBVSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN0QyxNQUFNLENBQUMsdUNBQW9CLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUUvRCxtQkFBc0MsSUFBTztZQUMzQyxNQUFNLENBQUMsbURBQWdDLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsYUFBYSxDQUFNLENBQUM7UUFDdEYsQ0FBQztRQUVELHVCQUF1QixJQUFhO1lBQ2xDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO2dCQUMxQyxNQUFNLENBQUMsSUFBSSxDQUFDO1lBQ2QsQ0FBQztZQUNELElBQU0sWUFBWSxHQUFHLFlBQVksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFeEQsNEJBQTRCO1lBQzVCLDJFQUEyRTtZQUMzRSw2REFBNkQ7WUFDN0Qsc0NBQXNDO1lB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SUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLFFBQVEsQ0FBQyxHQUFHLEtBQUssU0FBUyxJQUFJLFFBQVEsQ0FBQyxHQUFHLEtBQUssU0FBUyxDQUFDO0FBQzFGLENBQUM7QUFFRCxrQ0FBa0M7QUFDbEMsaUJBQWlCLEtBQVU7SUFDekIsTUFBTSxDQUFDLEtBQUssSUFBSSxJQUFJLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxVQUFVO1FBQ3ZGLEtBQUssQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUM7QUFDNUMsQ0FBQztBQUVELHlCQUF5QjtBQUN6Qix1QkFBdUIsSUFBbUI7SUFDeEMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDO0FBQzNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuXG5pbXBvcnQge1NvdXJjZU1hcHBlciwgU291cmNlUG9zaXRpb259IGZyb20gJy4vc291cmNlX21hcF91dGlscyc7XG5pbXBvcnQge2lzVHlwZU5vZGVLaW5kLCB1cGRhdGVTb3VyY2VGaWxlTm9kZSwgdmlzaXROb2RlV2l0aFN5bnRoZXNpemVkQ29tbWVudHN9IGZyb20gJy4vdHJhbnNmb3JtZXJfdXRpbCc7XG5cbi8qKlxuICogQGZpbGVvdmVydmlldyBDcmVhdGVzIGEgVHlwZVNjcmlwdCB0cmFuc2Zvcm1lciB0aGF0IHBhcnNlcyBjb2RlIGludG8gYSBuZXcgYHRzLlNvdXJjZUZpbGVgLFxuICogbWFya3MgdGhlIG5vZGVzIGFzIHN5bnRoZXRpYyBhbmQgd2hlcmUgcG9zc2libGUgbWFwcyB0aGUgbmV3IG5vZGVzIGJhY2sgdG8gdGhlIG9yaWdpbmFsIG5vZGVzXG4gKiB2aWEgc291cmNlbWFwIGluZm9ybWF0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVHJhbnNmb3JtZXJGcm9tU291cmNlTWFwKFxuICAgIG9wZXJhdG9yOiAoc291cmNlRmlsZTogdHMuU291cmNlRmlsZSwgc291cmNlTWFwcGVyOiBTb3VyY2VNYXBwZXIpID0+XG4gICAgICAgIHN0cmluZyk6IHRzLlRyYW5zZm9ybWVyRmFjdG9yeTx0cy5Tb3VyY2VGaWxlPiB7XG4gIHJldHVybiAoY29udGV4dCkgPT4gKHNvdXJjZUZpbGUpID0+IHtcbiAgICBjb25zdCBzb3VyY2VNYXBwZXIgPSBuZXcgTm9kZVNvdXJjZU1hcHBlcigpO1xuICAgIGNvbnN0IG5ld0ZpbGUgPSB0cy5jcmVhdGVTb3VyY2VGaWxlKFxuICAgICAgICBzb3VyY2VGaWxlLmZpbGVOYW1lLCBvcGVyYXRvcihzb3VyY2VGaWxlLCBzb3VyY2VNYXBwZXIpLCB0cy5TY3JpcHRUYXJnZXQuTGF0ZXN0LCB0cnVlKTtcbiAgICBjb25zdCBtYXBwZWRGaWxlID0gdmlzaXROb2RlKG5ld0ZpbGUpO1xuICAgIHJldHVybiB1cGRhdGVTb3VyY2VGaWxlTm9kZShzb3VyY2VGaWxlLCBtYXBwZWRGaWxlLnN0YXRlbWVudHMpO1xuXG4gICAgZnVuY3Rpb24gdmlzaXROb2RlPFQgZXh0ZW5kcyB0cy5Ob2RlPihub2RlOiBUKTogVCB7XG4gICAgICByZXR1cm4gdmlzaXROb2RlV2l0aFN5bnRoZXNpemVkQ29tbWVudHMoY29udGV4dCwgbmV3RmlsZSwgbm9kZSwgdmlzaXROb2RlSW1wbCkgYXMgVDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB2aXNpdE5vZGVJbXBsKG5vZGU6IHRzLk5vZGUpIHtcbiAgICAgIGlmIChub2RlLmZsYWdzICYgdHMuTm9kZUZsYWdzLlN5bnRoZXNpemVkKSB7XG4gICAgICAgIHJldHVybiBub2RlO1xuICAgICAgfVxuICAgICAgY29uc3Qgb3JpZ2luYWxOb2RlID0gc291cmNlTWFwcGVyLmdldE9yaWdpbmFsTm9kZShub2RlKTtcblxuICAgICAgLy8gVXNlIHRoZSBvcmlnaW5hbE5vZGUgZm9yOlxuICAgICAgLy8gLSBsaXRlcmFsczogYXMgZS5nLiB0eXBlc2NyaXB0IGRvZXMgbm90IHN1cHBvcnQgc3ludGhldGljIHJlZ2V4IGxpdGVyYWxzXG4gICAgICAvLyAtIGlkZW50aWZpZXJzOiBhcyB0aGV5IGRvbid0IGhhdmUgY2hpbGRyZW4gYW5kIGJlaGF2ZSB3ZWxsXG4gICAgICAvLyAgICByZWdhcmRpbmcgY29tbWVudCBzeW50aGVzaXphdGlvblxuICAgICAgLy8gLSB0eXBlczogYXMgdGhleSBhcmUgbm90IGVtaXRlZCBhbnl3YXlzXG4gICAgICAvLyAgICAgICAgICBhbmQgaXQgbGVhZHMgdG8gZXJyb3JzIHdpdGggYGV4dGVuZHNgIGNhc2VzLlxuICAgICAgaWYgKG9yaWdpbmFsTm9kZSAmJlxuICAgICAgICAgIChpc0xpdGVyYWxLaW5kKG5vZGUua2luZCkgfHwgbm9kZS5raW5kID09PSB0cy5TeW50YXhLaW5kLklkZW50aWZpZXIgfHxcbiAgICAgICAgICAgaXNUeXBlTm9kZUtpbmQobm9kZS5raW5kKSB8fCBub2RlLmtpbmQgPT09IHRzLlN5bnRheEtpbmQuSW5kZXhTaWduYXR1cmUpKSB7XG4gICAgICAgIHJldHVybiBvcmlnaW5hbE5vZGU7XG4gICAgICB9XG4gICAgICBub2RlID0gdHMudmlzaXRFYWNoQ2hpbGQobm9kZSwgdmlzaXROb2RlLCBjb250ZXh0KTtcblxuICAgICAgbm9kZS5mbGFncyB8PSB0cy5Ob2RlRmxhZ3MuU3ludGhlc2l6ZWQ7XG4gICAgICBub2RlLnBhcmVudCA9IHVuZGVmaW5lZDtcbiAgICAgIHRzLnNldFRleHRSYW5nZShub2RlLCBvcmlnaW5hbE5vZGUgPyBvcmlnaW5hbE5vZGUgOiB7cG9zOiAtMSwgZW5kOiAtMX0pO1xuICAgICAgdHMuc2V0T3JpZ2luYWxOb2RlKG5vZGUsIG9yaWdpbmFsTm9kZSk7XG5cbiAgICAgIC8vIExvb3Agb3ZlciBhbGwgbmVzdGVkIHRzLk5vZGVBcnJheXMgL1xuICAgICAgLy8gdHMuTm9kZXMgdGhhdCB3ZXJlIG5vdCB2aXNpdGVkIGFuZCBzZXQgdGhlaXJcbiAgICAgIC8vIHRleHQgcmFuZ2UgdG8gLTEgdG8gbm90IGVtaXQgdGhlaXIgd2hpdGVzcGFjZS5cbiAgICAgIC8vIFNhZGx5LCBUeXBlU2NyaXB0IGRvZXMgbm90IGhhdmUgYW4gQVBJIGZvciB0aGlzLi4uXG4gICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYW55IFRvIHJlYWQgYWxsIHByb3BlcnRpZXNcbiAgICAgIGNvbnN0IG5vZGVBbnkgPSBub2RlIGFzIHtba2V5OiBzdHJpbmddOiBhbnl9O1xuICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueSBUbyByZWFkIGFsbCBwcm9wZXJ0aWVzXG4gICAgICBjb25zdCBvcmlnaW5hbE5vZGVBbnkgPSBvcmlnaW5hbE5vZGUgYXMge1trZXk6IHN0cmluZ106IGFueX07XG4gICAgICBmb3IgKGNvbnN0IHByb3AgaW4gbm9kZUFueSkge1xuICAgICAgICBpZiAobm9kZUFueS5oYXNPd25Qcm9wZXJ0eShwcm9wKSkge1xuICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnlcbiAgICAgICAgICBjb25zdCB2YWx1ZSA9IG5vZGVBbnlbcHJvcF07XG4gICAgICAgICAgaWYgKGlzTm9kZUFycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgLy8gcmVzZXQgdGhlIHBvcy9lbmQgb2YgYWxsIE5vZGVBcnJheXMgc28gdGhhdCB3ZSBkb24ndCBlbWl0IGNvbW1lbnRzXG4gICAgICAgICAgICAvLyBmcm9tIHRoZW0uXG4gICAgICAgICAgICB0cy5zZXRUZXh0UmFuZ2UodmFsdWUsIHtwb3M6IC0xLCBlbmQ6IC0xfSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgICAgaXNUb2tlbih2YWx1ZSkgJiYgISh2YWx1ZS5mbGFncyAmIHRzLk5vZGVGbGFncy5TeW50aGVzaXplZCkgJiZcbiAgICAgICAgICAgICAgdmFsdWUuZ2V0U291cmNlRmlsZSgpICE9PSBzb3VyY2VGaWxlKSB7XG4gICAgICAgICAgICAvLyBVc2UgdGhlIG9yaWdpbmFsIFRleHRSYW5nZSBmb3IgYWxsIG5vbiB2aXNpdGVkIHRva2VucyAoZS5nLiB0aGVcbiAgICAgICAgICAgIC8vIGBCaW5hcnlFeHByZXNzaW9uLm9wZXJhdG9yVG9rZW5gKSB0byBwcmVzZXJ2ZSB0aGUgZm9ybWF0dGluZ1xuICAgICAgICAgICAgY29uc3QgdGV4dFJhbmdlID0gb3JpZ2luYWxOb2RlID8gb3JpZ2luYWxOb2RlQW55W3Byb3BdIDoge3BvczogLTEsIGVuZDogLTF9O1xuICAgICAgICAgICAgdHMuc2V0VGV4dFJhbmdlKHZhbHVlLCB0ZXh0UmFuZ2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbm9kZTtcbiAgICB9XG4gIH07XG59XG5cbi8qKlxuICogSW1wbGVtZW50YXRpb24gb2YgdGhlIGBTb3VyY2VNYXBwZXJgIHRoYXQgc3RvcmVzIGFuZCByZXRyaWV2ZXMgbWFwcGluZ3NcbiAqIHRvIG9yaWdpbmFsIG5vZGVzLlxuICovXG5jbGFzcyBOb2RlU291cmNlTWFwcGVyIGltcGxlbWVudHMgU291cmNlTWFwcGVyIHtcbiAgcHJpdmF0ZSBvcmlnaW5hbE5vZGVCeUdlbmVyYXRlZFJhbmdlID0gbmV3IE1hcDxzdHJpbmcsIHRzLk5vZGU+KCk7XG4gIHByaXZhdGUgZ2VuU3RhcnRQb3NpdGlvbnMgPSBuZXcgTWFwPHRzLk5vZGUsIG51bWJlcj4oKTtcblxuICBwcml2YXRlIGFkZEZ1bGxOb2RlUmFuZ2Uobm9kZTogdHMuTm9kZSwgZ2VuU3RhcnRQb3M6IG51bWJlcikge1xuICAgIHRoaXMub3JpZ2luYWxOb2RlQnlHZW5lcmF0ZWRSYW5nZS5zZXQoXG4gICAgICAgIHRoaXMubm9kZUNhY2hlS2V5KG5vZGUua2luZCwgZ2VuU3RhcnRQb3MsIGdlblN0YXJ0UG9zICsgKG5vZGUuZ2V0RW5kKCkgLSBub2RlLmdldFN0YXJ0KCkpKSxcbiAgICAgICAgbm9kZSk7XG4gICAgbm9kZS5mb3JFYWNoQ2hpbGQoXG4gICAgICAgIGNoaWxkID0+IHRoaXMuYWRkRnVsbE5vZGVSYW5nZShjaGlsZCwgZ2VuU3RhcnRQb3MgKyAoY2hpbGQuZ2V0U3RhcnQoKSAtIG5vZGUuZ2V0U3RhcnQoKSkpKTtcbiAgfVxuXG4gIGFkZE1hcHBpbmcoXG4gICAgICBvcmlnaW5hbE5vZGU6IHRzLk5vZGUsIG9yaWdpbmFsOiBTb3VyY2VQb3NpdGlvbiwgZ2VuZXJhdGVkOiBTb3VyY2VQb3NpdGlvbiwgbGVuZ3RoOiBudW1iZXIpIHtcbiAgICBsZXQgb3JpZ2luYWxTdGFydFBvcyA9IG9yaWdpbmFsLnBvc2l0aW9uO1xuICAgIGxldCBnZW5TdGFydFBvcyA9IGdlbmVyYXRlZC5wb3NpdGlvbjtcbiAgICBpZiAob3JpZ2luYWxTdGFydFBvcyA+PSBvcmlnaW5hbE5vZGUuZ2V0RnVsbFN0YXJ0KCkgJiZcbiAgICAgICAgb3JpZ2luYWxTdGFydFBvcyA8PSBvcmlnaW5hbE5vZGUuZ2V0U3RhcnQoKSkge1xuICAgICAgLy8gYWx3YXlzIHVzZSB0aGUgbm9kZS5nZXRTdGFydCgpIGZvciB0aGUgaW5kZXgsXG4gICAgICAvLyBhcyBjb21tZW50cyBhbmQgd2hpdGVzcGFjZXMgbWlnaHQgZGlmZmVyIGJldHdlZW4gdGhlIG9yaWdpbmFsIGFuZCB0cmFuc2Zvcm1lZCBjb2RlLlxuICAgICAgY29uc3QgZGlmZlRvU3RhcnQgPSBvcmlnaW5hbE5vZGUuZ2V0U3RhcnQoKSAtIG9yaWdpbmFsU3RhcnRQb3M7XG4gICAgICBvcmlnaW5hbFN0YXJ0UG9zICs9IGRpZmZUb1N0YXJ0O1xuICAgICAgZ2VuU3RhcnRQb3MgKz0gZGlmZlRvU3RhcnQ7XG4gICAgICBsZW5ndGggLT0gZGlmZlRvU3RhcnQ7XG4gICAgICB0aGlzLmdlblN0YXJ0UG9zaXRpb25zLnNldChvcmlnaW5hbE5vZGUsIGdlblN0YXJ0UG9zKTtcbiAgICB9XG4gICAgaWYgKG9yaWdpbmFsU3RhcnRQb3MgKyBsZW5ndGggPT09IG9yaWdpbmFsTm9kZS5nZXRFbmQoKSkge1xuICAgICAgdGhpcy5vcmlnaW5hbE5vZGVCeUdlbmVyYXRlZFJhbmdlLnNldChcbiAgICAgICAgICB0aGlzLm5vZGVDYWNoZUtleShcbiAgICAgICAgICAgICAgb3JpZ2luYWxOb2RlLmtpbmQsIHRoaXMuZ2VuU3RhcnRQb3NpdGlvbnMuZ2V0KG9yaWdpbmFsTm9kZSkhLCBnZW5TdGFydFBvcyArIGxlbmd0aCksXG4gICAgICAgICAgb3JpZ2luYWxOb2RlKTtcbiAgICB9XG4gICAgb3JpZ2luYWxOb2RlLmZvckVhY2hDaGlsZCgoY2hpbGQpID0+IHtcbiAgICAgIGlmIChjaGlsZC5nZXRTdGFydCgpID49IG9yaWdpbmFsU3RhcnRQb3MgJiYgY2hpbGQuZ2V0RW5kKCkgPD0gb3JpZ2luYWxTdGFydFBvcyArIGxlbmd0aCkge1xuICAgICAgICB0aGlzLmFkZEZ1bGxOb2RlUmFuZ2UoY2hpbGQsIGdlblN0YXJ0UG9zICsgKGNoaWxkLmdldFN0YXJ0KCkgLSBvcmlnaW5hbFN0YXJ0UG9zKSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBnZXRPcmlnaW5hbE5vZGUobm9kZTogdHMuTm9kZSk6IHRzLk5vZGV8dW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5vcmlnaW5hbE5vZGVCeUdlbmVyYXRlZFJhbmdlLmdldChcbiAgICAgICAgdGhpcy5ub2RlQ2FjaGVLZXkobm9kZS5raW5kLCBub2RlLmdldFN0YXJ0KCksIG5vZGUuZ2V0RW5kKCkpKTtcbiAgfVxuXG4gIHByaXZhdGUgbm9kZUNhY2hlS2V5KGtpbmQ6IHRzLlN5bnRheEtpbmQsIHN0YXJ0OiBudW1iZXIsIGVuZDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7a2luZH0jJHtzdGFydH0jJHtlbmR9YDtcbiAgfVxufVxuXG4vLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYW55XG5mdW5jdGlvbiBpc05vZGVBcnJheSh2YWx1ZTogYW55KTogdmFsdWUgaXMgdHMuTm9kZUFycmF5PGFueT4ge1xuICBjb25zdCBhbnlWYWx1ZSA9IHZhbHVlO1xuICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgYW55VmFsdWUucG9zICE9PSB1bmRlZmluZWQgJiYgYW55VmFsdWUuZW5kICE9PSB1bmRlZmluZWQ7XG59XG5cbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnlcbmZ1bmN0aW9uIGlzVG9rZW4odmFsdWU6IGFueSk6IHZhbHVlIGlzIHRzLlRva2VuPGFueT4ge1xuICByZXR1cm4gdmFsdWUgIT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlLmtpbmQgPj0gdHMuU3ludGF4S2luZC5GaXJzdFRva2VuICYmXG4gICAgICB2YWx1ZS5raW5kIDw9IHRzLlN5bnRheEtpbmQuTGFzdFRva2VuO1xufVxuXG4vLyBDb3BpZWQgZnJvbSBUeXBlU2NyaXB0XG5mdW5jdGlvbiBpc0xpdGVyYWxLaW5kKGtpbmQ6IHRzLlN5bnRheEtpbmQpIHtcbiAgcmV0dXJuIHRzLlN5bnRheEtpbmQuRmlyc3RMaXRlcmFsVG9rZW4gPD0ga2luZCAmJiBraW5kIDw9IHRzLlN5bnRheEtpbmQuTGFzdExpdGVyYWxUb2tlbjtcbn1cbiJdfQ==

@@ -14,14 +14,2 @@ "use strict";

var ts = require("typescript");
function toArray(iterator) {
var array = [];
while (true) {
var ir = iterator.next();
if (ir.done) {
break;
}
array.push(ir.value);
}
return array;
}
exports.toArray = toArray;
/**

@@ -65,3 +53,2 @@ * Constructs a new ts.CompilerHost that overlays sources in substituteSource

exports.normalizeLineEndings = normalizeLineEndings;
//# sourceMappingURL=util.js.map
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7O0FBRUgsd0RBQXdEO0FBQ3hELDBEQUEwRDtBQUMxRCxnQ0FBZ0M7QUFFaEMsK0JBQWlDO0FBRWpDOzs7OztHQUtHO0FBQ0gsMkNBQ0ksZ0JBQXFDLEVBQUUsUUFBeUI7SUFDbEUsTUFBTSxDQUFDO1FBQ0wsYUFBYSxlQUFBO1FBQ2Isb0JBQW9CLEVBQUUsUUFBUSxDQUFDLG9CQUFvQjtRQUNuRCxxQkFBcUIsRUFBRSxRQUFRLENBQUMscUJBQXFCO1FBQ3JELFNBQVMsRUFBRSxRQUFRLENBQUMsU0FBUztRQUM3QixtQkFBbUIsRUFBRSxRQUFRLENBQUMsbUJBQW1CO1FBQ2pELG9CQUFvQixFQUFFLFFBQVEsQ0FBQyxvQkFBb0I7UUFDbkQseUJBQXlCLEVBQUUsUUFBUSxDQUFDLHlCQUF5QjtRQUM3RCxVQUFVLEVBQUUsUUFBUSxDQUFDLFVBQVU7UUFDL0IsVUFBVSxFQUFFLFFBQVEsQ0FBQyxVQUFVO1FBQy9CLFFBQVEsRUFBRSxRQUFRLENBQUMsUUFBUTtRQUMzQixlQUFlLEVBQUUsUUFBUSxDQUFDLGVBQWU7UUFDekMsY0FBYyxFQUFFLFFBQVEsQ0FBQyxjQUFjO0tBQ3hDLENBQUM7SUFFRix1QkFDSSxRQUFnQixFQUFFLGVBQWdDLEVBQ2xELE9BQW1DO1FBQ3JDLElBQU0sSUFBSSxHQUFXLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2xELElBQU0sVUFBVSxHQUFHLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5QyxFQUFFLENBQUMsQ0FBQyxVQUFVLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQztZQUM3QixNQUFNLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDcEUsQ0FBQztRQUNELE1BQU0sQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxlQUFlLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDaEUsQ0FBQztBQUNILENBQUM7QUEzQkQsOEVBMkJDO0FBRUQ7O0dBRUc7QUFDSCw4QkFBcUMsS0FBYTtJQUNoRCxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDdEMsQ0FBQztBQUZELG9EQUVDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG4vLyB0b0FycmF5IGlzIGEgdGVtcG9yYXJ5IGZ1bmN0aW9uIHRvIGhlbHAgaW4gdGhlIHVzZSBvZlxuLy8gRVM2IG1hcHMgYW5kIHNldHMgd2hlbiBydW5uaW5nIG9uIG5vZGUgNCwgd2hpY2ggZG9lc24ndFxuLy8gc3VwcG9ydCBJdGVyYXRvcnMgY29tcGxldGVseS5cblxuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5cbi8qKlxuICogQ29uc3RydWN0cyBhIG5ldyB0cy5Db21waWxlckhvc3QgdGhhdCBvdmVybGF5cyBzb3VyY2VzIGluIHN1YnN0aXR1dGVTb3VyY2VcbiAqIG92ZXIgYW5vdGhlciB0cy5Db21waWxlckhvc3QuXG4gKlxuICogQHBhcmFtIHN1YnN0aXR1dGVTb3VyY2UgQSBtYXAgb2Ygc291cmNlIGZpbGUgbmFtZSAtPiBvdmVybGF5IHNvdXJjZSB0ZXh0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU291cmNlUmVwbGFjaW5nQ29tcGlsZXJIb3N0KFxuICAgIHN1YnN0aXR1dGVTb3VyY2U6IE1hcDxzdHJpbmcsIHN0cmluZz4sIGRlbGVnYXRlOiB0cy5Db21waWxlckhvc3QpOiB0cy5Db21waWxlckhvc3Qge1xuICByZXR1cm4ge1xuICAgIGdldFNvdXJjZUZpbGUsXG4gICAgZ2V0Q2FuY2VsbGF0aW9uVG9rZW46IGRlbGVnYXRlLmdldENhbmNlbGxhdGlvblRva2VuLFxuICAgIGdldERlZmF1bHRMaWJGaWxlTmFtZTogZGVsZWdhdGUuZ2V0RGVmYXVsdExpYkZpbGVOYW1lLFxuICAgIHdyaXRlRmlsZTogZGVsZWdhdGUud3JpdGVGaWxlLFxuICAgIGdldEN1cnJlbnREaXJlY3Rvcnk6IGRlbGVnYXRlLmdldEN1cnJlbnREaXJlY3RvcnksXG4gICAgZ2V0Q2Fub25pY2FsRmlsZU5hbWU6IGRlbGVnYXRlLmdldENhbm9uaWNhbEZpbGVOYW1lLFxuICAgIHVzZUNhc2VTZW5zaXRpdmVGaWxlTmFtZXM6IGRlbGVnYXRlLnVzZUNhc2VTZW5zaXRpdmVGaWxlTmFtZXMsXG4gICAgZ2V0TmV3TGluZTogZGVsZWdhdGUuZ2V0TmV3TGluZSxcbiAgICBmaWxlRXhpc3RzOiBkZWxlZ2F0ZS5maWxlRXhpc3RzLFxuICAgIHJlYWRGaWxlOiBkZWxlZ2F0ZS5yZWFkRmlsZSxcbiAgICBkaXJlY3RvcnlFeGlzdHM6IGRlbGVnYXRlLmRpcmVjdG9yeUV4aXN0cyxcbiAgICBnZXREaXJlY3RvcmllczogZGVsZWdhdGUuZ2V0RGlyZWN0b3JpZXMsXG4gIH07XG5cbiAgZnVuY3Rpb24gZ2V0U291cmNlRmlsZShcbiAgICAgIGZpbGVOYW1lOiBzdHJpbmcsIGxhbmd1YWdlVmVyc2lvbjogdHMuU2NyaXB0VGFyZ2V0LFxuICAgICAgb25FcnJvcj86IChtZXNzYWdlOiBzdHJpbmcpID0+IHZvaWQpOiB0cy5Tb3VyY2VGaWxlIHtcbiAgICBjb25zdCBwYXRoOiBzdHJpbmcgPSB0cy5zeXMucmVzb2x2ZVBhdGgoZmlsZU5hbWUpO1xuICAgIGNvbnN0IHNvdXJjZVRleHQgPSBzdWJzdGl0dXRlU291cmNlLmdldChwYXRoKTtcbiAgICBpZiAoc291cmNlVGV4dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdHMuY3JlYXRlU291cmNlRmlsZShmaWxlTmFtZSwgc291cmNlVGV4dCwgbGFuZ3VhZ2VWZXJzaW9uKTtcbiAgICB9XG4gICAgcmV0dXJuIGRlbGVnYXRlLmdldFNvdXJjZUZpbGUocGF0aCwgbGFuZ3VhZ2VWZXJzaW9uLCBvbkVycm9yKTtcbiAgfVxufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIGlucHV0IHN0cmluZyB3aXRoIGxpbmUgZW5kaW5ncyBub3JtYWxpemVkIHRvICdcXG4nLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplTGluZUVuZGluZ3MoaW5wdXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBpbnB1dC5yZXBsYWNlKC9cXHJcXG4vZywgJ1xcbicpO1xufVxuIl19
{
"name": "tsickle",
"version": "0.24.1",
"version": "0.25.0",
"description": "Transpile TypeScript code to JavaScript with Closure annotations.",
"main": "built/src/tsickle.js",
"typings": "built/definitions/tsickle.d.ts",
"typings": "built/src/tsickle.d.ts",
"bin": "built/src/main.js",

@@ -11,2 +11,5 @@ "directories": {

},
"files": [
"built/src/*"
],
"dependencies": {

@@ -19,5 +22,6 @@ "minimist": "^1.2.0",

"peerDependencies": {
"typescript": "2.4.2"
"typescript": "2.5.3"
},
"devDependencies": {
"@bazel/typescript": "0.1.0",
"@types/chai": "^3.4.32",

@@ -27,2 +31,3 @@ "@types/diff": "^3.2.0",

"@types/google-closure-compiler": "0.0.18",
"@types/jasmine": "^2.6.0",
"@types/minimatch": "^2.0.28",

@@ -42,17 +47,16 @@ "@types/minimist": "^1.1.28",

"gulp-clang-format": "^1.0.22",
"gulp-mocha": "^3.0.1",
"gulp-sourcemaps": "^1.5.0",
"gulp-tslint": "^8.1.0",
"gulp-typescript": "^3.0.0",
"gulp-util": "^3.0.4",
"jasmine": "~2.8.0",
"merge2": "^1.0.2",
"mocha": "^3.2.0",
"protobufjs": "5.0.0",
"temp": "^0.8.1",
"tslint": "^5.4.2",
"typescript": "~2.4.2"
"typescript": "~2.5.3"
},
"scripts": {
"prepublish": "gulp compile",
"test": "gulp test"
"prepublish": "bazel build ...",
"prepack": "mkdir built && cp -R bazel-bin/src built/src",
"postpack": "rm -rf built",
"test": "gulp test.check-format && gulp test.check-lint && bazel test ..."
},

@@ -59,0 +63,0 @@ "repository": {

@@ -105,20 +105,23 @@ # Tsickle - TypeScript to Closure Translator [![Linux build](https://travis-ci.org/angular/tsickle.svg?branch=master)](https://travis-ci.org/angular/tsickle) [![Windows build](https://ci.appveyor.com/api/projects/status/puxdblmlqbofqqt1/branch/master?svg=true)](https://ci.appveyor.com/project/alexeagle/tsickle/branch/master)

### Gulp tasks
### Test commands
- `gulp watch` executes the unit tests in watch mode (use `gulp test.unit` for a
- `ibazel test test:unit_test` executes the unit tests in watch mode (use `bazel test test:unit_test` for a
single run),
- `gulp test.e2e` executes the e2e tests,
- `guld test.golden` executes the golden tests,
- `bazel test test:e2e_test` executes the e2e tests,
- `bazel test test:golden_test` executes the golden tests,
- `gulp test.check-format` checks the source code formatting using
`clang-format`,
- `gulp test` runs unit tests, e2e tests and checks the source code formatting.
- `yarn test` runs unit tests, e2e tests and checks the source code formatting.
### Updating Goldens
Run `UPDATE_GOLDENS=y bazel run test:golden_test` to have the test suite update
the goldens in `test_files/...`.
### Environment variables
Export the environment variable `UPDATE_GOLDENS=1` to have the test suite
rewrite the golden files when you run it.
Pass the flag `--action_env=TEST_FILTER=<REGEX>` to bazel test to limit the
end-to-end test (found in `test_files/...`) run tests with a name matching the
regex.
Export the environment variable `TEST_FILTER`, a regex, to limit the end-to-end
tests (found in `test_files/...`) run tests with a name matching the regex.
### Releasing

@@ -125,0 +128,0 @@

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc