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

firebase-bolt

Package Overview
Dependencies
Maintainers
1
Versions
15
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

firebase-bolt - npm Package Compare versions

Comparing version 0.4.1 to 0.4.2

lib/test/cli-test.js

5

docs/changelog.txt

@@ -1,3 +0,2 @@

fixed - Fix issue #66 - path parsing with trailing slash.
fixed - Index should not be supported in type statements.
changed - Allow ; separator for type properties - to match TypeScript interface syntax.
fixed - Invoke validation function for all String ancestors types.
feature - Handle command line arguments and help for firebase-bolt CLI.

2

lib/bolt.js

@@ -39,2 +39,2 @@ /*

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJvbHQudHMiXSwibmFtZXMiOlsiZ2VuZXJhdGVTeW5jIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILDBDQUEwQztBQUUxQyxJQUFJLE1BQU0sR0FBRyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUN2QyxJQUFPLFNBQVMsV0FBVyxtQkFBbUIsQ0FBQyxDQUFDO0FBQ2hELElBQU8sU0FBUyxXQUFXLGFBQWEsQ0FBQyxDQUFDO0FBQzFDLElBQU8sT0FBTyxXQUFXLE9BQU8sQ0FBQyxDQUFDO0FBQ2xDLElBQU8sSUFBSSxXQUFXLFFBQVEsQ0FBQyxDQUFDO0FBRXJCLHNCQUFjLEdBQUcsTUFBTSxDQUFDO0FBQ3hCLGFBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN4QyxnQkFBUSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUM7QUFDM0MsaUJBQVMsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDO0FBQ2hDLFdBQUcsR0FBRyxPQUFPLENBQUM7QUFDZCx3QkFBZ0IsR0FBRyxXQUFHLENBQUMsZ0JBQWdCLENBQUM7QUFDeEMsa0JBQVUsR0FBRyxTQUFTLENBQUMsVUFBVSxDQUFDO0FBRTdDLFNBQVM7QUFDVCxvQ0FBb0M7QUFDcEMsc0JBQXNCLE9BQU87SUFDM0JBLEVBQUVBLENBQUNBLENBQUNBLE9BQU9BLE9BQU9BLEtBQUtBLFFBQVFBLENBQUNBLENBQUNBLENBQUNBO1FBQ2hDQSxPQUFPQSxHQUFHQSxNQUFNQSxDQUFDQSxLQUFLQSxDQUFDQSxPQUFPQSxDQUFDQSxDQUFDQTtJQUNsQ0EsQ0FBQ0E7SUFDREEsSUFBSUEsR0FBR0EsR0FBR0EsSUFBSUEsU0FBU0EsQ0FBQ0EsU0FBU0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsQ0FBQ0E7SUFDM0NBLE1BQU1BLENBQUNBLEdBQUdBLENBQUNBLGFBQWFBLEVBQUVBLENBQUNBO0FBQzdCQSxDQUFDQSIsImZpbGUiOiJib2x0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwidHlwaW5ncy9ub2RlLmQudHNcIiAvPlxuXG52YXIgcGFyc2VyID0gcmVxdWlyZSgnLi9ydWxlcy1wYXJzZXInKTtcbmltcG9ydCBnZW5lcmF0b3IgPSByZXF1aXJlKCcuL3J1bGVzLWdlbmVyYXRvcicpO1xuaW1wb3J0IHNpbXVsYXRvciA9IHJlcXVpcmUoJy4vc2ltdWxhdG9yJyk7XG5pbXBvcnQgYXN0UmVhbCA9IHJlcXVpcmUoJy4vYXN0Jyk7XG5pbXBvcnQgdXRpbCA9IHJlcXVpcmUoJy4vdXRpbCcpO1xuXG5leHBvcnQgdmFyIEZJTEVfRVhURU5TSU9OID0gJ2JvbHQnO1xuZXhwb3J0IHZhciBwYXJzZSA9IHV0aWwubWF5YmVQcm9taXNlKHBhcnNlci5wYXJzZSk7XG5leHBvcnQgdmFyIGdlbmVyYXRlID0gdXRpbC5tYXliZVByb21pc2UoZ2VuZXJhdGVTeW5jKTtcbmV4cG9ydCB2YXIgR2VuZXJhdG9yID0gZ2VuZXJhdG9yLkdlbmVyYXRvcjtcbmV4cG9ydCB2YXIgYXN0ID0gYXN0UmVhbDtcbmV4cG9ydCB2YXIgZGVjb2RlRXhwcmVzc2lvbiA9IGFzdC5kZWNvZGVFeHByZXNzaW9uO1xuZXhwb3J0IHZhciBydWxlc1N1aXRlID0gc2ltdWxhdG9yLnJ1bGVzU3VpdGU7XG5cbi8vIFVzYWdlOlxuLy8gICBqc29uID0gYm9sdC5nZW5lcmF0ZShib2x0LXRleHQpXG5mdW5jdGlvbiBnZW5lcmF0ZVN5bmMoc3ltYm9scykge1xuICBpZiAodHlwZW9mIHN5bWJvbHMgPT09ICdzdHJpbmcnKSB7XG4gICAgc3ltYm9scyA9IHBhcnNlci5wYXJzZShzeW1ib2xzKTtcbiAgfVxuICB2YXIgZ2VuID0gbmV3IGdlbmVyYXRvci5HZW5lcmF0b3Ioc3ltYm9scyk7XG4gIHJldHVybiBnZW4uZ2VuZXJhdGVSdWxlcygpO1xufVxuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJvbHQudHMiXSwibmFtZXMiOlsiZ2VuZXJhdGVTeW5jIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILDBDQUEwQztBQUUxQyxJQUFJLE1BQU0sR0FBRyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUN2QyxJQUFPLFNBQVMsV0FBVyxtQkFBbUIsQ0FBQyxDQUFDO0FBQ2hELElBQU8sU0FBUyxXQUFXLGFBQWEsQ0FBQyxDQUFDO0FBQzFDLElBQU8sT0FBTyxXQUFXLE9BQU8sQ0FBQyxDQUFDO0FBQ2xDLElBQU8sSUFBSSxXQUFXLFFBQVEsQ0FBQyxDQUFDO0FBRXJCLHNCQUFjLEdBQUcsTUFBTSxDQUFDO0FBQ3hCLGFBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN4QyxnQkFBUSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUM7QUFDM0MsaUJBQVMsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDO0FBQ2hDLFdBQUcsR0FBRyxPQUFPLENBQUM7QUFDZCx3QkFBZ0IsR0FBRyxXQUFHLENBQUMsZ0JBQWdCLENBQUM7QUFDeEMsa0JBQVUsR0FBRyxTQUFTLENBQUMsVUFBVSxDQUFDO0FBRTdDLFNBQVM7QUFDVCxvQ0FBb0M7QUFDcEMsc0JBQXNCLE9BQWlDO0lBQ3JEQSxFQUFFQSxDQUFDQSxDQUFDQSxPQUFPQSxPQUFPQSxLQUFLQSxRQUFRQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUNoQ0EsT0FBT0EsR0FBR0EsTUFBTUEsQ0FBQ0EsS0FBS0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsQ0FBQ0E7SUFDbENBLENBQUNBO0lBQ0RBLElBQUlBLEdBQUdBLEdBQUdBLElBQUlBLFNBQVNBLENBQUNBLFNBQVNBLENBQW1CQSxPQUFPQSxDQUFDQSxDQUFDQTtJQUM3REEsTUFBTUEsQ0FBQ0EsR0FBR0EsQ0FBQ0EsYUFBYUEsRUFBRUEsQ0FBQ0E7QUFDN0JBLENBQUNBIiwiZmlsZSI6ImJvbHQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJ0eXBpbmdzL25vZGUuZC50c1wiIC8+XG5cbnZhciBwYXJzZXIgPSByZXF1aXJlKCcuL3J1bGVzLXBhcnNlcicpO1xuaW1wb3J0IGdlbmVyYXRvciA9IHJlcXVpcmUoJy4vcnVsZXMtZ2VuZXJhdG9yJyk7XG5pbXBvcnQgc2ltdWxhdG9yID0gcmVxdWlyZSgnLi9zaW11bGF0b3InKTtcbmltcG9ydCBhc3RSZWFsID0gcmVxdWlyZSgnLi9hc3QnKTtcbmltcG9ydCB1dGlsID0gcmVxdWlyZSgnLi91dGlsJyk7XG5cbmV4cG9ydCB2YXIgRklMRV9FWFRFTlNJT04gPSAnYm9sdCc7XG5leHBvcnQgdmFyIHBhcnNlID0gdXRpbC5tYXliZVByb21pc2UocGFyc2VyLnBhcnNlKTtcbmV4cG9ydCB2YXIgZ2VuZXJhdGUgPSB1dGlsLm1heWJlUHJvbWlzZShnZW5lcmF0ZVN5bmMpO1xuZXhwb3J0IHZhciBHZW5lcmF0b3IgPSBnZW5lcmF0b3IuR2VuZXJhdG9yO1xuZXhwb3J0IHZhciBhc3QgPSBhc3RSZWFsO1xuZXhwb3J0IHZhciBkZWNvZGVFeHByZXNzaW9uID0gYXN0LmRlY29kZUV4cHJlc3Npb247XG5leHBvcnQgdmFyIHJ1bGVzU3VpdGUgPSBzaW11bGF0b3IucnVsZXNTdWl0ZTtcblxuLy8gVXNhZ2U6XG4vLyAgIGpzb24gPSBib2x0LmdlbmVyYXRlKGJvbHQtdGV4dClcbmZ1bmN0aW9uIGdlbmVyYXRlU3luYyhzeW1ib2xzOiBzdHJpbmcgfCBhc3RSZWFsLlN5bWJvbHMpOiBnZW5lcmF0b3IuVmFsaWRhdG9yIHtcbiAgaWYgKHR5cGVvZiBzeW1ib2xzID09PSAnc3RyaW5nJykge1xuICAgIHN5bWJvbHMgPSBwYXJzZXIucGFyc2Uoc3ltYm9scyk7XG4gIH1cbiAgdmFyIGdlbiA9IG5ldyBnZW5lcmF0b3IuR2VuZXJhdG9yKDxhc3RSZWFsLlN5bWJvbHM+IHN5bWJvbHMpO1xuICByZXR1cm4gZ2VuLmdlbmVyYXRlUnVsZXMoKTtcbn1cbiJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ==

@@ -21,3 +21,3 @@ /*

* Run data drive test with tests is one of these formats:
* [ { data: <input>, expect: <expected output> }, ... ]
* [ { label: (opt) <string>, data: <input>, expect: (opt) <expected output> }, ... ]
* [ [ <input>, <expected output> ], ... ]

@@ -99,2 +99,2 @@ * [ scalar, ... ]

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QtaGVscGVyLnRzIl0sIm5hbWVzIjpbImRhdGFEcml2ZW5UZXN0IiwiZm9ybWF0IiwiZXhwRm9ybWF0Il0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILDZDQUE2QztBQUU3QyxJQUFPLElBQUksV0FBVyxTQUFTLENBQUMsQ0FBQztBQUNqQyxJQUFPLEdBQUcsV0FBVyxRQUFRLENBQUMsQ0FBQztBQUUvQjs7Ozs7OztHQU9HO0FBQ0gsd0JBQStCLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBVTtJQUN0REEsSUFBSUEsSUFBSUEsQ0FBQ0E7SUFDVEEsSUFBSUEsTUFBTUEsQ0FBQ0E7SUFDWEEsSUFBSUEsS0FBS0EsQ0FBQ0E7SUFFVkEsU0FBU0EsR0FBR0EsU0FBU0EsSUFBSUEsTUFBTUEsQ0FBQ0E7SUFFaENBLEdBQUdBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLEVBQUVBLENBQUNBLEdBQUdBLEtBQUtBLENBQUNBLE1BQU1BLEVBQUVBLENBQUNBLEVBQUVBLEVBQUVBLENBQUNBO1FBQ3RDQSxzQkFBc0JBO1FBQ3RCQSxFQUFFQSxDQUFDQSxDQUFDQSxPQUFPQSxLQUFLQSxDQUFDQSxDQUFDQSxDQUFDQSxLQUFLQSxRQUFRQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUNqQ0EsS0FBS0EsR0FBR0EsU0FBU0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDNUJBLElBQUlBLEdBQUdBLEtBQUtBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1lBQ2hCQSxNQUFNQSxHQUFHQSxTQUFTQSxDQUFDQTtRQUNyQkEsQ0FBQ0E7UUFBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7WUFDTkEsSUFBSUEsR0FBR0EsS0FBS0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsSUFBSUEsQ0FBQ0E7WUFDckJBLEVBQUVBLENBQUNBLENBQUNBLElBQUlBLEtBQUtBLFNBQVNBLENBQUNBLENBQUNBLENBQUNBO2dCQUN2QkEsSUFBSUEsR0FBR0EsS0FBS0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDckJBLENBQUNBO1lBQ0RBLEVBQUVBLENBQUNBLENBQUNBLElBQUlBLEtBQUtBLFNBQVNBLENBQUNBLENBQUNBLENBQUNBO2dCQUN2QkEsSUFBSUEsR0FBR0EsS0FBS0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDbEJBLENBQUNBO1lBQ0RBLEVBQUVBLENBQUNBLENBQUNBLElBQUlBLENBQUNBLE1BQU1BLENBQUNBLElBQUlBLEVBQUVBLFFBQVFBLENBQUNBLElBQUlBLFFBQVFBLElBQUlBLElBQUlBLENBQUNBLENBQUNBLENBQUNBO2dCQUNwREEsSUFBSUEsR0FBR0EsSUFBSUEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsRUFBRUEsRUFBRUEsSUFBSUEsQ0FBQ0EsQ0FBQ0E7Z0JBQzdCQSxPQUFPQSxJQUFJQSxDQUFDQSxNQUFNQSxDQUFDQTtZQUNyQkEsQ0FBQ0E7WUFDREEsTUFBTUEsR0FBR0EsS0FBS0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsTUFBTUEsSUFBSUEsS0FBS0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDeENBLEtBQUtBLEdBQUdBLEtBQUtBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLEtBQUtBLENBQUNBO1lBQ3ZCQSxFQUFFQSxDQUFDQSxDQUFDQSxLQUFLQSxLQUFLQSxTQUFTQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDeEJBLEVBQUVBLENBQUNBLENBQUNBLE1BQU1BLEtBQUtBLFNBQVNBLENBQUNBLENBQUNBLENBQUNBO29CQUN6QkEsS0FBS0EsR0FBR0EsU0FBU0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsR0FBR0EsTUFBTUEsR0FBR0EsU0FBU0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsQ0FBQ0E7Z0JBQ3ZEQSxDQUFDQTtnQkFBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7b0JBQ05BLEtBQUtBLEdBQUdBLFNBQVNBLENBQUNBLElBQUlBLENBQUNBLENBQUNBO2dCQUMxQkEsQ0FBQ0E7WUFDSEEsQ0FBQ0E7UUFDSEEsQ0FBQ0E7UUFFREEsSUFBSUEsQ0FBQ0EsS0FBS0EsRUFBRUEsTUFBTUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsU0FBU0EsRUFBRUEsSUFBSUEsRUFBRUEsTUFBTUEsRUFBRUEsS0FBS0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7SUFDOURBLENBQUNBO0FBQ0hBLENBQUNBO0FBdENlLHNCQUFjLGlCQXNDN0IsQ0FBQTtBQUVELGdCQUFnQixDQUFDO0lBQ2ZDLE1BQU1BLENBQUNBLENBQUNBLElBQUlBLENBQUNBLE1BQU1BLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1FBQ3pCQSxLQUFLQSxRQUFRQTtZQUNYQSxNQUFNQSxDQUFDQSxDQUFDQSxDQUFDQSxRQUFRQSxFQUFFQSxDQUFDQTtRQUN0QkE7WUFDRUEsTUFBTUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsU0FBU0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7SUFDM0JBLENBQUNBO0FBQ0hBLENBQUNBO0FBRUQsbUJBQTBCLENBQUM7SUFDekJDLEVBQUVBLENBQUNBLENBQUNBLElBQUlBLENBQUNBLE1BQU1BLENBQUNBLENBQUNBLEVBQUVBLE9BQU9BLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1FBQzVCQSxNQUFNQSxDQUFDQSxHQUFHQSxHQUFHQSxDQUFDQSxDQUFDQSxHQUFHQSxDQUFDQSxTQUFTQSxDQUFDQSxDQUFDQSxJQUFJQSxDQUFDQSxJQUFJQSxDQUFDQSxHQUFHQSxHQUFHQSxDQUFDQTtJQUNqREEsQ0FBQ0E7SUFDREEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsQ0FBQ0EsRUFBRUEsUUFBUUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFDN0JBLEVBQUVBLENBQUNBLENBQUNBLE1BQU1BLElBQUlBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1lBQ2hCQSxNQUFNQSxDQUFDQSxHQUFHQSxDQUFDQSxnQkFBZ0JBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1FBQ2pDQSxDQUFDQTtRQUNEQSxJQUFJQSxNQUFNQSxHQUFHQSxHQUFHQSxDQUFDQTtRQUNqQkEsSUFBSUEsR0FBR0EsR0FBR0EsRUFBRUEsQ0FBQ0E7UUFDYkEsR0FBR0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsSUFBSUEsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDbkJBLEVBQUVBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLGNBQWNBLENBQUNBLElBQUlBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO2dCQUM1QkEsUUFBUUEsQ0FBQ0E7WUFDWEEsQ0FBQ0E7WUFDREEsTUFBTUEsSUFBSUEsR0FBR0EsR0FBR0EsU0FBU0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDbkNBLEdBQUdBLEdBQUdBLElBQUlBLENBQUNBO1FBQ2JBLENBQUNBO1FBQ0RBLE1BQU1BLElBQUlBLEdBQUdBLENBQUNBO1FBQ2RBLE1BQU1BLENBQUNBLE1BQU1BLENBQUNBO0lBQ2hCQSxDQUFDQTtJQUNEQSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQSxTQUFTQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtBQUMzQkEsQ0FBQ0E7QUFyQmUsaUJBQVMsWUFxQnhCLENBQUEiLCJmaWxlIjoidGVzdC1oZWxwZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi90eXBpbmdzL25vZGUuZC50c1wiIC8+XG5cbmltcG9ydCB1dGlsID0gcmVxdWlyZSgnLi4vdXRpbCcpO1xuaW1wb3J0IGFzdCA9IHJlcXVpcmUoJy4uL2FzdCcpO1xuXG4vKlxuICogUnVuIGRhdGEgZHJpdmUgdGVzdCB3aXRoIHRlc3RzIGlzIG9uZSBvZiB0aGVzZSBmb3JtYXRzOlxuICogWyB7IGRhdGE6IDxpbnB1dD4sIGV4cGVjdDogPGV4cGVjdGVkIG91dHB1dD4gfSwgLi4uIF1cbiAqIFsgWyA8aW5wdXQ+LCA8ZXhwZWN0ZWQgb3V0cHV0PiBdLCAuLi4gXVxuICogWyBzY2FsYXIsIC4uLiBdXG4gKlxuICogQ2FsbHMgdGVzdEl0KGRhdGEsIGV4cGVjdCkgZm9yIGVhY2ggdGVzdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRhdGFEcml2ZW5UZXN0KHRlc3RzLCB0ZXN0SXQsIGZvcm1hdHRlcj8pIHtcbiAgdmFyIGRhdGE7XG4gIHZhciBleHBlY3Q7XG4gIHZhciBsYWJlbDtcblxuICBmb3JtYXR0ZXIgPSBmb3JtYXR0ZXIgfHwgZm9ybWF0O1xuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgdGVzdHMubGVuZ3RoOyBpKyspIHtcbiAgICAvLyBOb3QgQXJyYXkgb3IgT2JqZWN0XG4gICAgaWYgKHR5cGVvZiB0ZXN0c1tpXSAhPT0gJ29iamVjdCcpIHtcbiAgICAgIGxhYmVsID0gZm9ybWF0dGVyKHRlc3RzW2ldKTtcbiAgICAgIGRhdGEgPSB0ZXN0c1tpXTtcbiAgICAgIGV4cGVjdCA9IHVuZGVmaW5lZDtcbiAgICB9IGVsc2Uge1xuICAgICAgZGF0YSA9IHRlc3RzW2ldLmRhdGE7XG4gICAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGRhdGEgPSB0ZXN0c1tpXVswXTtcbiAgICAgIH1cbiAgICAgIGlmIChkYXRhID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgZGF0YSA9IHRlc3RzW2ldO1xuICAgICAgfVxuICAgICAgaWYgKHV0aWwuaXNUeXBlKGRhdGEsICdvYmplY3QnKSAmJiAnZXhwZWN0JyBpbiBkYXRhKSB7XG4gICAgICAgIGRhdGEgPSB1dGlsLmV4dGVuZCh7fSwgZGF0YSk7XG4gICAgICAgIGRlbGV0ZSBkYXRhLmV4cGVjdDtcbiAgICAgIH1cbiAgICAgIGV4cGVjdCA9IHRlc3RzW2ldLmV4cGVjdCB8fCB0ZXN0c1tpXVsxXTtcbiAgICAgIGxhYmVsID0gdGVzdHNbaV0ubGFiZWw7XG4gICAgICBpZiAobGFiZWwgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAoZXhwZWN0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBsYWJlbCA9IGZvcm1hdHRlcihkYXRhKSArIFwiID0+IFwiICsgZm9ybWF0dGVyKGV4cGVjdCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbGFiZWwgPSBmb3JtYXR0ZXIoZGF0YSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICB0ZXN0KGxhYmVsLCB0ZXN0SXQuYmluZCh1bmRlZmluZWQsIGRhdGEsIGV4cGVjdCwgdGVzdHNbaV0pKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBmb3JtYXQobykge1xuICBzd2l0Y2ggKHV0aWwudHlwZU9mKG8pKSB7XG4gIGNhc2UgJ3JlZ2V4cCc6XG4gICAgcmV0dXJuIG8udG9TdHJpbmcoKTtcbiAgZGVmYXVsdDpcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkobyk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4cEZvcm1hdCh4KSB7XG4gIGlmICh1dGlsLmlzVHlwZSh4LCAnYXJyYXknKSkge1xuICAgIHJldHVybiAnWycgKyB4Lm1hcChleHBGb3JtYXQpLmpvaW4oJywgJykgKyAnXSc7XG4gIH1cbiAgaWYgKHV0aWwuaXNUeXBlKHgsICdvYmplY3QnKSkge1xuICAgIGlmICgndHlwZScgaW4geCkge1xuICAgICAgcmV0dXJuIGFzdC5kZWNvZGVFeHByZXNzaW9uKHgpO1xuICAgIH1cbiAgICB2YXIgcmVzdWx0ID0gJ3snO1xuICAgIHZhciBzZXAgPSAnJztcbiAgICBmb3IgKHZhciBwcm9wIGluIHgpIHtcbiAgICAgIGlmICgheC5oYXNPd25Qcm9wZXJ0eShwcm9wKSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIHJlc3VsdCArPSBzZXAgKyBleHBGb3JtYXQoeFtwcm9wXSk7XG4gICAgICBzZXAgPSAnLCAnO1xuICAgIH1cbiAgICByZXN1bHQgKz0gJ30nO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHgpO1xufVxuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QtaGVscGVyLnRzIl0sIm5hbWVzIjpbImRhdGFEcml2ZW5UZXN0IiwiZm9ybWF0IiwiZXhwRm9ybWF0Il0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILDZDQUE2QztBQUU3QyxJQUFPLElBQUksV0FBVyxTQUFTLENBQUMsQ0FBQztBQUNqQyxJQUFPLEdBQUcsV0FBVyxRQUFRLENBQUMsQ0FBQztBQUUvQjs7Ozs7OztHQU9HO0FBQ0gsd0JBQStCLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBVTtJQUN0REEsSUFBSUEsSUFBSUEsQ0FBQ0E7SUFDVEEsSUFBSUEsTUFBTUEsQ0FBQ0E7SUFDWEEsSUFBSUEsS0FBYUEsQ0FBQ0E7SUFFbEJBLFNBQVNBLEdBQUdBLFNBQVNBLElBQUlBLE1BQU1BLENBQUNBO0lBRWhDQSxHQUFHQSxDQUFDQSxDQUFDQSxHQUFHQSxDQUFDQSxDQUFDQSxHQUFHQSxDQUFDQSxFQUFFQSxDQUFDQSxHQUFHQSxLQUFLQSxDQUFDQSxNQUFNQSxFQUFFQSxDQUFDQSxFQUFFQSxFQUFFQSxDQUFDQTtRQUN0Q0Esc0JBQXNCQTtRQUN0QkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsT0FBT0EsS0FBS0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsS0FBS0EsUUFBUUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDakNBLEtBQUtBLEdBQUdBLFNBQVNBLENBQUNBLEtBQUtBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1lBQzVCQSxJQUFJQSxHQUFHQSxLQUFLQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUNoQkEsTUFBTUEsR0FBR0EsU0FBU0EsQ0FBQ0E7UUFDckJBLENBQUNBO1FBQUNBLElBQUlBLENBQUNBLENBQUNBO1lBQ05BLElBQUlBLEdBQUdBLEtBQUtBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLElBQUlBLENBQUNBO1lBQ3JCQSxFQUFFQSxDQUFDQSxDQUFDQSxJQUFJQSxLQUFLQSxTQUFTQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDdkJBLElBQUlBLEdBQUdBLEtBQUtBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1lBQ3JCQSxDQUFDQTtZQUNEQSxFQUFFQSxDQUFDQSxDQUFDQSxJQUFJQSxLQUFLQSxTQUFTQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDdkJBLElBQUlBLEdBQUdBLEtBQUtBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1lBQ2xCQSxDQUFDQTtZQUNEQSxFQUFFQSxDQUFDQSxDQUFDQSxJQUFJQSxDQUFDQSxNQUFNQSxDQUFDQSxJQUFJQSxFQUFFQSxRQUFRQSxDQUFDQSxJQUFJQSxRQUFRQSxJQUFJQSxJQUFJQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDcERBLElBQUlBLEdBQUdBLElBQUlBLENBQUNBLE1BQU1BLENBQUNBLEVBQUVBLEVBQUVBLElBQUlBLENBQUNBLENBQUNBO2dCQUM3QkEsT0FBT0EsSUFBSUEsQ0FBQ0EsTUFBTUEsQ0FBQ0E7WUFDckJBLENBQUNBO1lBQ0RBLE1BQU1BLEdBQUdBLEtBQUtBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLE1BQU1BLElBQUlBLEtBQUtBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1lBQ3hDQSxLQUFLQSxHQUFHQSxLQUFLQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQSxLQUFLQSxDQUFDQTtZQUN2QkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsS0FBS0EsS0FBS0EsU0FBU0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0JBQ3hCQSxFQUFFQSxDQUFDQSxDQUFDQSxNQUFNQSxLQUFLQSxTQUFTQSxDQUFDQSxDQUFDQSxDQUFDQTtvQkFDekJBLEtBQUtBLEdBQUdBLFNBQVNBLENBQUNBLElBQUlBLENBQUNBLEdBQUdBLE1BQU1BLEdBQUdBLFNBQVNBLENBQUNBLE1BQU1BLENBQUNBLENBQUNBO2dCQUN2REEsQ0FBQ0E7Z0JBQUNBLElBQUlBLENBQUNBLENBQUNBO29CQUNOQSxLQUFLQSxHQUFHQSxTQUFTQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtnQkFDMUJBLENBQUNBO1lBQ0hBLENBQUNBO1FBQ0hBLENBQUNBO1FBRURBLElBQUlBLENBQUNBLEtBQUtBLEVBQUVBLE1BQU1BLENBQUNBLElBQUlBLENBQUNBLFNBQVNBLEVBQUVBLElBQUlBLEVBQUVBLE1BQU1BLEVBQUVBLEtBQUtBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO0lBQzlEQSxDQUFDQTtBQUNIQSxDQUFDQTtBQXRDZSxzQkFBYyxpQkFzQzdCLENBQUE7QUFFRCxnQkFBZ0IsQ0FBQztJQUNmQyxNQUFNQSxDQUFDQSxDQUFDQSxJQUFJQSxDQUFDQSxNQUFNQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUN6QkEsS0FBS0EsUUFBUUE7WUFDWEEsTUFBTUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsUUFBUUEsRUFBRUEsQ0FBQ0E7UUFDdEJBO1lBQ0VBLE1BQU1BLENBQUNBLElBQUlBLENBQUNBLFNBQVNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO0lBQzNCQSxDQUFDQTtBQUNIQSxDQUFDQTtBQUVELG1CQUEwQixDQUFDO0lBQ3pCQyxFQUFFQSxDQUFDQSxDQUFDQSxJQUFJQSxDQUFDQSxNQUFNQSxDQUFDQSxDQUFDQSxFQUFFQSxPQUFPQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUM1QkEsTUFBTUEsQ0FBQ0EsR0FBR0EsR0FBR0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsU0FBU0EsQ0FBQ0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsR0FBR0EsR0FBR0EsQ0FBQ0E7SUFDakRBLENBQUNBO0lBQ0RBLEVBQUVBLENBQUNBLENBQUNBLElBQUlBLENBQUNBLE1BQU1BLENBQUNBLENBQUNBLEVBQUVBLFFBQVFBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1FBQzdCQSxFQUFFQSxDQUFDQSxDQUFDQSxNQUFNQSxJQUFJQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUNoQkEsTUFBTUEsQ0FBQ0EsR0FBR0EsQ0FBQ0EsZ0JBQWdCQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUNqQ0EsQ0FBQ0E7UUFDREEsSUFBSUEsTUFBTUEsR0FBR0EsR0FBR0EsQ0FBQ0E7UUFDakJBLElBQUlBLEdBQUdBLEdBQUdBLEVBQUVBLENBQUNBO1FBQ2JBLEdBQUdBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLElBQUlBLElBQUlBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1lBQ25CQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQSxjQUFjQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDNUJBLFFBQVFBLENBQUNBO1lBQ1hBLENBQUNBO1lBQ0RBLE1BQU1BLElBQUlBLEdBQUdBLEdBQUdBLFNBQVNBLENBQUNBLENBQUNBLENBQUNBLElBQUlBLENBQUNBLENBQUNBLENBQUNBO1lBQ25DQSxHQUFHQSxHQUFHQSxJQUFJQSxDQUFDQTtRQUNiQSxDQUFDQTtRQUNEQSxNQUFNQSxJQUFJQSxHQUFHQSxDQUFDQTtRQUNkQSxNQUFNQSxDQUFDQSxNQUFNQSxDQUFDQTtJQUNoQkEsQ0FBQ0E7SUFDREEsTUFBTUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsU0FBU0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7QUFDM0JBLENBQUNBO0FBckJlLGlCQUFTLFlBcUJ4QixDQUFBIiwiZmlsZSI6InRlc3QtaGVscGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi4vdHlwaW5ncy9ub2RlLmQudHNcIiAvPlxuXG5pbXBvcnQgdXRpbCA9IHJlcXVpcmUoJy4uL3V0aWwnKTtcbmltcG9ydCBhc3QgPSByZXF1aXJlKCcuLi9hc3QnKTtcblxuLypcbiAqIFJ1biBkYXRhIGRyaXZlIHRlc3Qgd2l0aCB0ZXN0cyBpcyBvbmUgb2YgdGhlc2UgZm9ybWF0czpcbiAqIFsgeyBsYWJlbDogKG9wdCkgPHN0cmluZz4sIGRhdGE6IDxpbnB1dD4sIGV4cGVjdDogKG9wdCkgPGV4cGVjdGVkIG91dHB1dD4gfSwgLi4uIF1cbiAqIFsgWyA8aW5wdXQ+LCA8ZXhwZWN0ZWQgb3V0cHV0PiBdLCAuLi4gXVxuICogWyBzY2FsYXIsIC4uLiBdXG4gKlxuICogQ2FsbHMgdGVzdEl0KGRhdGEsIGV4cGVjdCkgZm9yIGVhY2ggdGVzdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRhdGFEcml2ZW5UZXN0KHRlc3RzLCB0ZXN0SXQsIGZvcm1hdHRlcj8pIHtcbiAgdmFyIGRhdGE7XG4gIHZhciBleHBlY3Q7XG4gIHZhciBsYWJlbDogc3RyaW5nO1xuXG4gIGZvcm1hdHRlciA9IGZvcm1hdHRlciB8fCBmb3JtYXQ7XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXN0cy5sZW5ndGg7IGkrKykge1xuICAgIC8vIE5vdCBBcnJheSBvciBPYmplY3RcbiAgICBpZiAodHlwZW9mIHRlc3RzW2ldICE9PSAnb2JqZWN0Jykge1xuICAgICAgbGFiZWwgPSBmb3JtYXR0ZXIodGVzdHNbaV0pO1xuICAgICAgZGF0YSA9IHRlc3RzW2ldO1xuICAgICAgZXhwZWN0ID0gdW5kZWZpbmVkO1xuICAgIH0gZWxzZSB7XG4gICAgICBkYXRhID0gdGVzdHNbaV0uZGF0YTtcbiAgICAgIGlmIChkYXRhID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgZGF0YSA9IHRlc3RzW2ldWzBdO1xuICAgICAgfVxuICAgICAgaWYgKGRhdGEgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBkYXRhID0gdGVzdHNbaV07XG4gICAgICB9XG4gICAgICBpZiAodXRpbC5pc1R5cGUoZGF0YSwgJ29iamVjdCcpICYmICdleHBlY3QnIGluIGRhdGEpIHtcbiAgICAgICAgZGF0YSA9IHV0aWwuZXh0ZW5kKHt9LCBkYXRhKTtcbiAgICAgICAgZGVsZXRlIGRhdGEuZXhwZWN0O1xuICAgICAgfVxuICAgICAgZXhwZWN0ID0gdGVzdHNbaV0uZXhwZWN0IHx8IHRlc3RzW2ldWzFdO1xuICAgICAgbGFiZWwgPSB0ZXN0c1tpXS5sYWJlbDtcbiAgICAgIGlmIChsYWJlbCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmIChleHBlY3QgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGxhYmVsID0gZm9ybWF0dGVyKGRhdGEpICsgXCIgPT4gXCIgKyBmb3JtYXR0ZXIoZXhwZWN0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsYWJlbCA9IGZvcm1hdHRlcihkYXRhKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHRlc3QobGFiZWwsIHRlc3RJdC5iaW5kKHVuZGVmaW5lZCwgZGF0YSwgZXhwZWN0LCB0ZXN0c1tpXSkpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGZvcm1hdChvKSB7XG4gIHN3aXRjaCAodXRpbC50eXBlT2YobykpIHtcbiAgY2FzZSAncmVnZXhwJzpcbiAgICByZXR1cm4gby50b1N0cmluZygpO1xuICBkZWZhdWx0OlxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShvKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZXhwRm9ybWF0KHgpIHtcbiAgaWYgKHV0aWwuaXNUeXBlKHgsICdhcnJheScpKSB7XG4gICAgcmV0dXJuICdbJyArIHgubWFwKGV4cEZvcm1hdCkuam9pbignLCAnKSArICddJztcbiAgfVxuICBpZiAodXRpbC5pc1R5cGUoeCwgJ29iamVjdCcpKSB7XG4gICAgaWYgKCd0eXBlJyBpbiB4KSB7XG4gICAgICByZXR1cm4gYXN0LmRlY29kZUV4cHJlc3Npb24oeCk7XG4gICAgfVxuICAgIHZhciByZXN1bHQgPSAneyc7XG4gICAgdmFyIHNlcCA9ICcnO1xuICAgIGZvciAodmFyIHByb3AgaW4geCkge1xuICAgICAgaWYgKCF4Lmhhc093blByb3BlcnR5KHByb3ApKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgcmVzdWx0ICs9IHNlcCArIGV4cEZvcm1hdCh4W3Byb3BdKTtcbiAgICAgIHNlcCA9ICcsICc7XG4gICAgfVxuICAgIHJlc3VsdCArPSAnfSc7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoeCk7XG59XG4iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0=

@@ -105,5 +105,12 @@ /*

function ensureExtension(fileName, extension) {
return fileName + '.' + extension;
if (fileName.indexOf('.') === -1) {
return fileName + '.' + extension;
}
return fileName;
}
exports.ensureExtension = ensureExtension;
function replaceExtension(fileName, extension) {
return fileName.replace(/\.[^\.]*$/, '.' + extension);
}
exports.replaceExtension = replaceExtension;
function prettyJSON(o) {

@@ -203,3 +210,48 @@ return JSON.stringify(o, null, 2);

exports.pruneEmptyChildren = pruneEmptyChildren;
function formatColumns(indent, lines) {
var result = [];
var columnSize = [];
for (var i = 0; i < lines.length; i++) {
var line = lines[i];
for (var j = 0; j < line.length; j++) {
if (columnSize[j] === undefined) {
columnSize[j] = 0;
}
columnSize[j] = Math.max(columnSize[j], line[j].length);
}
}
var prefix = repeatString(' ', indent);
var s;
for (var i = 0; i < lines.length; i++) {
var line = lines[i];
var sep = "";
s = "";
for (var j = 0; j < line.length; j++) {
if (j === 0) {
s = prefix;
}
if (j === line.length - 1) {
s += sep + line[j];
}
else {
s += sep + fillString(line[j], columnSize[j]);
}
sep = " ";
}
result.push(s);
}
return result;
}
exports.formatColumns = formatColumns;
function repeatString(s, n) {
return new Array(n + 1).join(s);
}
function fillString(s, n) {
var padding = n - s.length;
if (padding > 0) {
s += repeatString(' ', padding);
}
return s;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInV0aWwudHMiXSwibmFtZXMiOlsibWV0aG9kcyIsImV4dGVuZCIsImNvcHlBcnJheSIsImludGVybmFsVHlwZSIsImlzVHlwZSIsInR5cGVPZiIsImlzVGhlbmFibGUiLCJtYXliZVByb21pc2UiLCJlbnN1cmVFeHRlbnNpb24iLCJwcmV0dHlKU09OIiwiZGVlcEV4dGVuZCIsInF1b3RlU3RyaW5nIiwiYXJyYXlJbmNsdWRlcyIsImV4dGVuZEFycmF5Iiwib3IiLCJlbnN1cmVPYmplY3RQYXRoIiwicHJ1bmVFbXB0eUNoaWxkcmVuIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILDBDQUEwQztBQUMxQyxpREFBaUQ7QUFFakQsSUFBTyxPQUFPLFdBQVcsU0FBUyxDQUFDLENBQUM7QUFFcEMsaUJBQXdCLElBQUksRUFBRSxHQUFXO0lBQ3ZDQSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQSxTQUFTQSxFQUFFQSxHQUFHQSxDQUFDQSxDQUFDQTtBQUM5QkEsQ0FBQ0E7QUFGZSxlQUFPLFVBRXRCLENBQUE7QUFFRCxnQkFBdUIsSUFBWTtJQUFFQyxjQUFpQkE7U0FBakJBLFdBQWlCQSxDQUFqQkEsc0JBQWlCQSxDQUFqQkEsSUFBaUJBO1FBQWpCQSw2QkFBaUJBOztJQUNwREEsSUFBSUEsQ0FBQ0EsQ0FBQ0E7SUFDTkEsSUFBSUEsTUFBTUEsQ0FBQ0E7SUFDWEEsSUFBSUEsSUFBSUEsQ0FBQ0E7SUFFVEEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsSUFBSUEsS0FBS0EsU0FBU0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFDdkJBLElBQUlBLEdBQUdBLEVBQUVBLENBQUNBO0lBQ1pBLENBQUNBO0lBQ0RBLEdBQUdBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLEVBQUVBLENBQUNBLEdBQUdBLElBQUlBLENBQUNBLE1BQU1BLEVBQUVBLENBQUNBLEVBQUVBLEVBQUVBLENBQUNBO1FBQ2pDQSxNQUFNQSxHQUFHQSxJQUFJQSxDQUFDQSxDQUFDQSxD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LENBQUNBLGtCQUFrQkEsQ0FBQ0EsR0FBR0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDbENBLE9BQU9BLEdBQUdBLENBQUNBLElBQUlBLENBQUNBLENBQUNBO1FBQ25CQSxDQUFDQTtRQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtZQUNOQSxXQUFXQSxHQUFHQSxJQUFJQSxDQUFDQTtRQUNyQkEsQ0FBQ0E7SUFDSEEsQ0FBQ0E7SUFDREEsTUFBTUEsQ0FBQ0EsQ0FBQ0EsV0FBV0EsQ0FBQ0E7QUFDdEJBLENBQUNBO0FBaEJlLDBCQUFrQixxQkFnQmpDLENBQUEiLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLy8vIDxyZWZlcmVuY2UgcGF0aD1cInR5cGluZ3Mvbm9kZS5kLnRzXCIgLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJ0eXBpbmdzL2VzNi1wcm9taXNlLmQudHNcIiAvPlxuXG5pbXBvcnQgUHJvbWlzZSA9IHJlcXVpcmUoJ3Byb21pc2UnKTtcblxuZXhwb3J0IGZ1bmN0aW9uIG1ldGhvZHMoY3Rvciwgb2JqOiBPYmplY3QpIHtcbiAgZXh0ZW5kKGN0b3IucHJvdG90eXBlLCBvYmopO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0ZW5kKGRlc3Q6IE9iamVjdCwgLi4uc3JjczogT2JqZWN0W10pOiBPYmplY3Qge1xuICB2YXIgaTtcbiAgdmFyIHNvdXJjZTtcbiAgdmFyIHByb3A7XG5cbiAgaWYgKGRlc3QgPT09IHVuZGVmaW5lZCkge1xuICAgIGRlc3QgPSB7fTtcbiAgfVxuICBmb3IgKGkgPSAwOyBpIDwgc3Jjcy5sZW5ndGg7IGkrKykge1xuICAgIHNvdXJjZSA9IHNyY3NbaV07XG4gICAgZm9yIChwcm9wIGluIHNvdXJjZSkge1xuICAgICAgaWYgKHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShwcm9wKSkge1xuICAgICAgICBkZXN0W3Byb3BdID0gc291cmNlW3Byb3BdO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkZXN0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29weUFycmF5KGFyZzogYW55W10pOiBhbnlbXSB7XG4gIHJldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmcpO1xufVxuXG52YXIgYmFzZVR5cGVzID0gWydudW1iZXInLCAnc3RyaW5nJywgJ2Jvb2xlYW4nLCAnYXJyYXknLCAnZnVuY3Rpb24nLCAnZGF0ZScsXG4gICAgICAgICAgICAgICAgICdyZWdleHAnLCAnYXJndW1lbnRzJywgJ3VuZGVmaW5lZCcsICdudWxsJ107XG5cbmZ1bmN0aW9uIGludGVybmFsVHlwZSh2YWx1ZSk6IHN0cmluZyB7XG4gIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsdWUpLm1hdGNoKC9cXFtvYmplY3QgKC4qKVxcXS8pWzFdLnRvTG93ZXJDYXNlKCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1R5cGUodmFsdWUsIHR5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gdHlwZU9mKHZhbHVlKSA9PT0gdHlwZTtcbn1cblxuLy8gUmV0dXJuIG9uZSBvZiB0aGUgYmFzZVR5cGVzIGFzIGEgc3RyaW5nXG5leHBvcnQgZnVuY3Rpb24gdHlwZU9mKHZhbHVlKTogc3RyaW5nIHtcbiAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gJ3VuZGVmaW5lZCc7XG4gIH1cbiAgaWYgKHZhbHVlID09PSBudWxsKSB7XG4gICAgcmV0dXJuICdudWxsJztcbiAgfVxuICB2YXIgdHlwZSA9IGludGVybmFsVHlwZSh2YWx1ZSk7XG4gIGlmICghYXJyYXlJbmNsdWRlcyhiYXNlVHlwZXMsIHR5cGUpKSB7XG4gICAgdHlwZSA9IHR5cGVvZiB2YWx1ZTtcbiAgfVxuICByZXR1cm4gdHlwZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzVGhlbmFibGUob2JqKTogYm9vbGVhbiB7XG4gIHJldHVybiB0eXBlT2Yob2JqKSA9PT0gJ29iamVjdCcgJiYgJ3RoZW4nIGluIG9iaiAmJiB0eXBlb2Yob2JqLnRoZW4pID09PSAnZnVuY3Rpb24nO1xufVxuXG4vLyBDb252ZXJ0cyBhIHN5bmNocm9ub3VzIGZ1bmN0aW9uIHRvIG9uZSBhbGxvd2luZyBQcm9taXNlc1xuLy8gYXMgYXJndW1lbnRzIGFuZCByZXR1cm5pbmcgYSBQcm9taXNlIHZhbHVlLlxuLy9cbi8vICAgZm4oYSwgYiwgYywgLi4uKTp2ID0+IGZuKGFQLCBiUCwgY1AsIC4uLik6IFB2XG4vL1xuLy8gSWYgbm9uZSBvZiB0aGUgYXJndW1lbnRzIGFyZSBUaGVuYWJsZXMsIHRoZW4gdGhlIHdyYXBwZWRcbi8vIGZ1bmN0aW9uIHJldHVybnMgYSBzeW5jaHJvbm91cyB2YWx1ZSAobm90IHdyYXBwZWQgaW4gYSBQcm9taXNlKS5cbmV4cG9ydCBmdW5jdGlvbiBtYXliZVByb21pc2UoZm46ICguLi5hbnkpID0+IGFueSk6ICguLi5hbnkpID0+IGFueSB7XG4gIHJldHVybiBmdW5jdGlvbiguLi5hcmdzKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIGlmICghYXJncy5zb21lKGlzVGhlbmFibGUpKSB7XG4gICAgICByZXR1cm4gZm4uYXBwbHkoc2VsZiwgYXJncyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIFByb21pc2UuYWxsKGFyZ3MpXG4gICAgICAudGhlbihmdW5jdGlvbih2YWx1ZXMpIHtcbiAgICAgICAgcmV0dXJuIGZuLmFwcGx5KHNlbGYsIHZhbHVlcyk7XG4gICAgICB9KTtcbiAgfTtcbn1cblxuZXhwb3J0IHZhciBnZXRQcm9wID0gbWF5YmVQcm9taXNlKGZ1bmN0aW9uKG9iaiwgcHJvcCkge1xuICByZXR1cm4gb2JqW3Byb3BdO1xufSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnN1cmVFeHRlbnNpb24oZmlsZU5hbWU6IHN0cmluZywgZXh0ZW5zaW9uOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGZpbGVOYW1lICsgJy4nICsgZXh0ZW5zaW9uO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJldHR5SlNPTihvOiBhbnkpOiBzdHJpbmcge1xuICByZXR1cm4gSlNPTi5zdHJpbmdpZnkobywgbnVsbCwgMik7XG59XG5cbmZ1bmN0aW9uIGRlZXBFeHRlbmQodGFyZ2V0OiBPYmplY3QsIHNvdXJjZTogT2JqZWN0KTogdm9pZCB7XG4gIGZvciAodmFyIHByb3AgaW4gc291cmNlKSB7XG4gICAgaWYgKCFzb3VyY2UuaGFzT3duUHJvcGVydHkocHJvcCkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGlmICh0YXJnZXRbcHJvcF0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiUHJvcGVydHkgb3ZlcndyaXRlOiBcIiArIHByb3ApO1xuICAgIH1cblxuICAgIGlmIChpc1R5cGUoc291cmNlW3Byb3BdLCAnb2JqZWN0JykpIHtcbiAgICAgIHRhcmdldFtwcm9wXSA9IHt9O1xuICAgICAgZGVlcEV4dGVuZCh0YXJnZXRbcHJvcF0sIHNvdXJjZVtwcm9wXSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRhcmdldFtwcm9wXSA9IHNvdXJjZVtwcm9wXTtcbiAgICB9XG4gIH1cbn1cblxuLy8gTGlrZSBKU09OLnN0cmluZ2lmeSAtIGJ1dCBmb3Igc2luZ2xlLXF1b3RlZCBzdHJpbmdzIGluc3RlYWQgb2YgZG91YmxlLXF1b3RlZCBvbmVzLlxuLy8gVGhpcyBqdXN0IG1ha2VzIHRoZSBjb21waWxlZCBydWxlcyBtdWNoIGVhc2llciB0byByZWFkLlxuXG4vLyBRdW90ZSBhbGwgY29udHJvbCBjaGFyYWN0ZXJzLCBzbGFzaCwgc2luZ2xlIHF1b3RlcywgYW5kIG5vbi1hc2NpaSBwcmludGFibGVzLlxudmFyIHF1b3RhYmxlQ2hhcmFjdGVycyA9IC9bXFx1MDAwMC1cXHUwMDFmXFxcXFxcJ1xcdTAwN2YtXFx1ZmZmZl0vZztcbnZhciBzcGVjaWFsUXVvdGVzID0ge1xuICAnXFwnJzogJ1xcXFxcXCcnLFxuICAnXFxiJzogJ1xcXFxiJyxcbiAgJ1xcdCc6ICdcXFxcdCcsXG4gICdcXG4nOiAnXFxcXG4nLFxuICAnXFxmJzogJ1xcXFxmJyxcbiAgJ1xccic6ICdcXFxccidcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBxdW90ZVN0cmluZyhzOiBzdHJpbmcpOiBzdHJpbmcge1xuICBzID0gcy5yZXBsYWNlKHF1b3RhYmxlQ2hhcmFjdGVycywgZnVuY3Rpb24oYykge1xuICAgIGlmIChzcGVjaWFsUXVvdGVzW2NdKSB7XG4gICAgICByZXR1cm4gc3BlY2lhbFF1b3Rlc1tjXTtcbiAgICB9XG4gICAgcmV0dXJuICdcXFxcdScgKyAoJzAwMDAnICsgYy5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTQpO1xuICB9KTtcbiAgcmV0dXJuIFwiJ1wiICsgcyArIFwiJ1wiO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXJyYXlJbmNsdWRlcyhhOiBhbnlbXSwgZSk6IGJvb2xlYW4ge1xuICByZXR1cm4gYS5pbmRleE9mKGUpICE9PSAtMTtcbn1cblxuLy8gTGlrZSBQeXRob24gbGlzdC5leHRlbmRcbmV4cG9ydCBmdW5jdGlvbiBleHRlbmRBcnJheSh0YXJnZXQsIHNyYykge1xuICBpZiAodGFyZ2V0ID09PSB1bmRlZmluZWQpIHtcbiAgICB0YXJnZXQgPSBbXTtcbiAgfVxuICBBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseSh0YXJnZXQsIHNyYyk7XG4gIHJldHVybiB0YXJnZXQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBvcih0YXJnZXQsIHNyYykge1xuICBpZiAodGFyZ2V0ID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIHRhcmdldCB8fCBzcmM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnN1cmVPYmplY3RQYXRoKG9iajogT2JqZWN0LCBwYXJ0czogc3RyaW5nW10pOiBPYmplY3Qge1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHBhcnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIG5hbWUgPSBwYXJ0c1tpXTtcbiAgICBpZiAoIShuYW1lIGluIG9iaikpIHtcbiAgICAgIG9ialtuYW1lXSA9IHt9O1xuICAgIH1cbiAgICBvYmogPSBvYmpbbmFtZV07XG4gIH1cbiAgcmV0dXJuIG9iajtcbn1cblxuLy8gUmVtb3ZlIGFsbCBlbXB0eSwgJ3t9JywgIGNoaWxkcmVuIC0gcmV0dXJucyB0cnVlIGlmZiBvYmogaXMgZW1wdHkuXG5leHBvcnQgZnVuY3Rpb24gcHJ1bmVFbXB0eUNoaWxkcmVuKG9iajogT2JqZWN0KTogYm9vbGVhbiB7XG4gIGlmIChvYmouY29uc3RydWN0b3IgIT09IE9iamVjdCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICB2YXIgaGFzQ2hpbGRyZW4gPSBmYWxzZTtcbiAgZm9yICh2YXIgcHJvcCBpbiBvYmopIHtcbiAgICBpZiAoIW9iai5oYXNPd25Qcm9wZXJ0eShwcm9wKSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGlmIChwcnVuZUVtcHR5Q2hpbGRyZW4ob2JqW3Byb3BdKSkge1xuICAgICAgZGVsZXRlIG9ialtwcm9wXTtcbiAgICB9IGVsc2Uge1xuICAgICAgaGFzQ2hpbGRyZW4gPSB0cnVlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gIWhhc0NoaWxkcmVuO1xufVxuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInV0aWwudHMiXSwibmFtZXMiOlsibWV0aG9kcyIsImV4dGVuZCIsImNvcHlBcnJheSIsImludGVybmFsVHlwZSIsImlzVHlwZSIsInR5cGVPZiIsImlzVGhlbmFibGUiLCJtYXliZVByb21pc2UiLCJlbnN1cmVFeHRlbnNpb24iLCJyZXBsYWNlRXh0ZW5zaW9uIiwicHJldHR5SlNPTiIsImRlZXBFeHRlbmQiLCJxdW90ZVN0cmluZyIsImFycmF5SW5jbHVkZXMiLCJleHRlbmRBcnJheSIsIm9yIiwiZW5zdXJlT2JqZWN0UGF0aCIsInBydW5lRW1wdHlDaGlsZHJlbiIsImZvcm1hdENvbHVtbnMiLCJyZXBlYXRTdHJpbmciLCJmaWxsU3RyaW5nIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILDBDQUEwQztBQUMxQyxpREFBaUQ7QUFFakQsSUFBTyxPQUFPLFdBQVcsU0FBUyxDQUFDLENBQUM7QUFFcEMsaUJBQXdCLElBQUksRUFBRSxHQUFXO0lBQ3ZDQSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQSxTQUFTQSxFQUFFQSxHQUFHQSxDQUFDQSxDQUFDQTtBQUM5QkEsQ0FBQ0E7QUFGZSxlQUFPLFVBRXRCLENBQUE7QUFFRCxnQkFBdUIsSUFBWTtJQUFFQyxjQUFpQkE7U0FBakJBLFdBQWlCQSxDQUFqQkEsc0JBQWlCQSxDQUFqQkEsSUFBaUJBO1FBQWpCQSw2QkFBaUJBOztJQUNwREEsSUFBSUEsQ0FBQ0EsQ0FBQ0E7SUFDTkEsSUFBSUEsTUFBTUEsQ0FBQ0E7SUFDWEEsSUFBSUEsSUFBSUEsQ0FBQ0E7SUFFVEEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsSUFBSUEsS0FBS0EsU0FBU0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFDdkJBLElBQUlBLEdBQUdBLEVBQUVBLENBQUNBO0lBQ1pBLENBQUNBO0lBQ0RBLEdBQUdBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLEVBQUVBLENBQUNBLEdBQUdBLElBQUlBLENBQUNBLE1BQU1BLEVBQUVB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QUFDQSxDQUFDQTtRQUNwQkEsR0FBR0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsRUFBRUEsQ0FBQ0EsR0FBR0EsSUFBSUEsQ0FBQ0EsTUFBTUEsRUFBRUEsQ0FBQ0EsRUFBRUEsRUFBRUEsQ0FBQ0E7WUFDckNBLEVBQUVBLENBQUNBLENBQUNBLFVBQVVBLENBQUNBLENBQUNBLENBQUNBLEtBQUtBLFNBQVNBLENBQUNBLENBQUNBLENBQUNBO2dCQUNoQ0EsVUFBVUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsQ0FBQ0E7WUFDcEJBLENBQUNBO1lBQ0RBLFVBQVVBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLElBQUlBLENBQUNBLEdBQUdBLENBQUNBLFVBQVVBLENBQUNBLENBQUNBLENBQUNBLEVBQUVBLElBQUlBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLE1BQU1BLENBQUNBLENBQUNBO1FBQzFEQSxDQUFDQTtJQUNIQSxDQUFDQTtJQUVEQSxJQUFJQSxNQUFNQSxHQUFHQSxZQUFZQSxDQUFDQSxHQUFHQSxFQUFFQSxNQUFNQSxDQUFDQSxDQUFDQTtJQUN2Q0EsSUFBSUEsQ0FBU0EsQ0FBQ0E7SUFDZEEsR0FBR0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsRUFBRUEsQ0FBQ0EsR0FBR0EsS0FBS0EsQ0FBQ0EsTUFBTUEsRUFBRUEsQ0FBQ0EsRUFBRUEsRUFBRUEsQ0FBQ0E7UUFDdENBLElBQUlBLElBQUlBLEdBQUdBLEtBQUtBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1FBQ3BCQSxJQUFJQSxHQUFHQSxHQUFHQSxFQUFFQSxDQUFDQTtRQUNiQSxDQUFDQSxHQUFHQSxFQUFFQSxDQUFDQTtRQUNQQSxHQUFHQSxDQUFDQSxDQUFDQSxHQUFHQSxDQUFDQSxDQUFDQSxHQUFHQSxDQUFDQSxFQUFFQSxDQUFDQSxHQUFHQSxJQUFJQSxDQUFDQSxNQUFNQSxFQUFFQSxDQUFDQSxFQUFFQSxFQUFFQSxDQUFDQTtZQUNyQ0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0JBQ1pBLENBQUNBLEdBQUdBLE1BQU1BLENBQUNBO1lBQ2JBLENBQUNBO1lBQ0RBLEVBQUVBLENBQUNBLENBQUNBLENBQUNBLEtBQUtBLElBQUlBLENBQUNBLE1BQU1BLEdBQUdBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO2dCQUMxQkEsQ0FBQ0EsSUFBSUEsR0FBR0EsR0FBR0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDckJBLENBQUNBO1lBQUNBLElBQUlBLENBQUNBLENBQUNBO2dCQUNOQSxDQUFDQSxJQUFJQSxHQUFHQSxHQUFHQSxVQUFVQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQSxDQUFDQSxFQUFFQSxVQUFVQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUNoREEsQ0FBQ0E7WUFDREEsR0FBR0EsR0FBR0EsSUFBSUEsQ0FBQ0E7UUFDYkEsQ0FBQ0E7UUFDREEsTUFBTUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7SUFDakJBLENBQUNBO0lBRURBLE1BQU1BLENBQUNBLE1BQU1BLENBQUNBO0FBQ2hCQSxDQUFDQTtBQW5DZSxxQkFBYSxnQkFtQzVCLENBQUE7QUFFRCxzQkFBc0IsQ0FBUyxFQUFFLENBQVM7SUFDeENDLE1BQU1BLENBQUNBLElBQUlBLEtBQUtBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLENBQUNBLENBQUNBLElBQUlBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO0FBQ2xDQSxDQUFDQTtBQUVELG9CQUFvQixDQUFTLEVBQUUsQ0FBUztJQUN0Q0MsSUFBSUEsT0FBT0EsR0FBR0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsQ0FBQ0EsTUFBTUEsQ0FBQ0E7SUFDM0JBLEVBQUVBLENBQUNBLENBQUNBLE9BQU9BLEdBQUdBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1FBQ2hCQSxDQUFDQSxJQUFJQSxZQUFZQSxDQUFDQSxHQUFHQSxFQUFFQSxPQUFPQSxDQUFDQSxDQUFDQTtJQUNsQ0EsQ0FBQ0E7SUFDREEsTUFBTUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7QUFDWEEsQ0FBQ0EiLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLy8vIDxyZWZlcmVuY2UgcGF0aD1cInR5cGluZ3Mvbm9kZS5kLnRzXCIgLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJ0eXBpbmdzL2VzNi1wcm9taXNlLmQudHNcIiAvPlxuXG5pbXBvcnQgUHJvbWlzZSA9IHJlcXVpcmUoJ3Byb21pc2UnKTtcblxuZXhwb3J0IGZ1bmN0aW9uIG1ldGhvZHMoY3Rvciwgb2JqOiBPYmplY3QpIHtcbiAgZXh0ZW5kKGN0b3IucHJvdG90eXBlLCBvYmopO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0ZW5kKGRlc3Q6IE9iamVjdCwgLi4uc3JjczogT2JqZWN0W10pOiBPYmplY3Qge1xuICB2YXIgaTtcbiAgdmFyIHNvdXJjZTtcbiAgdmFyIHByb3A7XG5cbiAgaWYgKGRlc3QgPT09IHVuZGVmaW5lZCkge1xuICAgIGRlc3QgPSB7fTtcbiAgfVxuICBmb3IgKGkgPSAwOyBpIDwgc3Jjcy5sZW5ndGg7IGkrKykge1xuICAgIHNvdXJjZSA9IHNyY3NbaV07XG4gICAgZm9yIChwcm9wIGluIHNvdXJjZSkge1xuICAgICAgaWYgKHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShwcm9wKSkge1xuICAgICAgICBkZXN0W3Byb3BdID0gc291cmNlW3Byb3BdO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkZXN0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29weUFycmF5KGFyZzogYW55W10pOiBhbnlbXSB7XG4gIHJldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmcpO1xufVxuXG52YXIgYmFzZVR5cGVzID0gWydudW1iZXInLCAnc3RyaW5nJywgJ2Jvb2xlYW4nLCAnYXJyYXknLCAnZnVuY3Rpb24nLCAnZGF0ZScsXG4gICAgICAgICAgICAgICAgICdyZWdleHAnLCAnYXJndW1lbnRzJywgJ3VuZGVmaW5lZCcsICdudWxsJ107XG5cbmZ1bmN0aW9uIGludGVybmFsVHlwZSh2YWx1ZSk6IHN0cmluZyB7XG4gIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsdWUpLm1hdGNoKC9cXFtvYmplY3QgKC4qKVxcXS8pWzFdLnRvTG93ZXJDYXNlKCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1R5cGUodmFsdWUsIHR5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gdHlwZU9mKHZhbHVlKSA9PT0gdHlwZTtcbn1cblxuLy8gUmV0dXJuIG9uZSBvZiB0aGUgYmFzZVR5cGVzIGFzIGEgc3RyaW5nXG5leHBvcnQgZnVuY3Rpb24gdHlwZU9mKHZhbHVlKTogc3RyaW5nIHtcbiAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gJ3VuZGVmaW5lZCc7XG4gIH1cbiAgaWYgKHZhbHVlID09PSBudWxsKSB7XG4gICAgcmV0dXJuICdudWxsJztcbiAgfVxuICB2YXIgdHlwZSA9IGludGVybmFsVHlwZSh2YWx1ZSk7XG4gIGlmICghYXJyYXlJbmNsdWRlcyhiYXNlVHlwZXMsIHR5cGUpKSB7XG4gICAgdHlwZSA9IHR5cGVvZiB2YWx1ZTtcbiAgfVxuICByZXR1cm4gdHlwZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzVGhlbmFibGUob2JqKTogYm9vbGVhbiB7XG4gIHJldHVybiB0eXBlT2Yob2JqKSA9PT0gJ29iamVjdCcgJiYgJ3RoZW4nIGluIG9iaiAmJiB0eXBlb2Yob2JqLnRoZW4pID09PSAnZnVuY3Rpb24nO1xufVxuXG4vLyBDb252ZXJ0cyBhIHN5bmNocm9ub3VzIGZ1bmN0aW9uIHRvIG9uZSBhbGxvd2luZyBQcm9taXNlc1xuLy8gYXMgYXJndW1lbnRzIGFuZCByZXR1cm5pbmcgYSBQcm9taXNlIHZhbHVlLlxuLy9cbi8vICAgZm4oYSwgYiwgYywgLi4uKTp2ID0+IGZuKGFQLCBiUCwgY1AsIC4uLik6IFB2XG4vL1xuLy8gSWYgbm9uZSBvZiB0aGUgYXJndW1lbnRzIGFyZSBUaGVuYWJsZXMsIHRoZW4gdGhlIHdyYXBwZWRcbi8vIGZ1bmN0aW9uIHJldHVybnMgYSBzeW5jaHJvbm91cyB2YWx1ZSAobm90IHdyYXBwZWQgaW4gYSBQcm9taXNlKS5cbmV4cG9ydCBmdW5jdGlvbiBtYXliZVByb21pc2UoZm46ICguLi5hbnkpID0+IGFueSk6ICguLi5hbnkpID0+IGFueSB7XG4gIHJldHVybiBmdW5jdGlvbiguLi5hcmdzKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIGlmICghYXJncy5zb21lKGlzVGhlbmFibGUpKSB7XG4gICAgICByZXR1cm4gZm4uYXBwbHkoc2VsZiwgYXJncyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIFByb21pc2UuYWxsKGFyZ3MpXG4gICAgICAudGhlbihmdW5jdGlvbih2YWx1ZXMpIHtcbiAgICAgICAgcmV0dXJuIGZuLmFwcGx5KHNlbGYsIHZhbHVlcyk7XG4gICAgICB9KTtcbiAgfTtcbn1cblxuZXhwb3J0IHZhciBnZXRQcm9wID0gbWF5YmVQcm9taXNlKGZ1bmN0aW9uKG9iaiwgcHJvcCkge1xuICByZXR1cm4gb2JqW3Byb3BdO1xufSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnN1cmVFeHRlbnNpb24oZmlsZU5hbWU6IHN0cmluZywgZXh0ZW5zaW9uOiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoZmlsZU5hbWUuaW5kZXhPZignLicpID09PSAtMSkge1xuICAgIHJldHVybiBmaWxlTmFtZSArICcuJyArIGV4dGVuc2lvbjtcbiAgfVxuICByZXR1cm4gZmlsZU5hbWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXBsYWNlRXh0ZW5zaW9uKGZpbGVOYW1lOiBzdHJpbmcsIGV4dGVuc2lvbjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGZpbGVOYW1lLnJlcGxhY2UoL1xcLlteXFwuXSokLywgJy4nICsgZXh0ZW5zaW9uKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByZXR0eUpTT04obzogYW55KTogc3RyaW5nIHtcbiAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KG8sIG51bGwsIDIpO1xufVxuXG5mdW5jdGlvbiBkZWVwRXh0ZW5kKHRhcmdldDogT2JqZWN0LCBzb3VyY2U6IE9iamVjdCk6IHZvaWQge1xuICBmb3IgKHZhciBwcm9wIGluIHNvdXJjZSkge1xuICAgIGlmICghc291cmNlLmhhc093blByb3BlcnR5KHByb3ApKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAodGFyZ2V0W3Byb3BdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIlByb3BlcnR5IG92ZXJ3cml0ZTogXCIgKyBwcm9wKTtcbiAgICB9XG5cbiAgICBpZiAoaXNUeXBlKHNvdXJjZVtwcm9wXSwgJ29iamVjdCcpKSB7XG4gICAgICB0YXJnZXRbcHJvcF0gPSB7fTtcbiAgICAgIGRlZXBFeHRlbmQodGFyZ2V0W3Byb3BdLCBzb3VyY2VbcHJvcF0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0YXJnZXRbcHJvcF0gPSBzb3VyY2VbcHJvcF07XG4gICAgfVxuICB9XG59XG5cbi8vIExpa2UgSlNPTi5zdHJpbmdpZnkgLSBidXQgZm9yIHNpbmdsZS1xdW90ZWQgc3RyaW5ncyBpbnN0ZWFkIG9mIGRvdWJsZS1xdW90ZWQgb25lcy5cbi8vIFRoaXMganVzdCBtYWtlcyB0aGUgY29tcGlsZWQgcnVsZXMgbXVjaCBlYXNpZXIgdG8gcmVhZC5cblxuLy8gUXVvdGUgYWxsIGNvbnRyb2wgY2hhcmFjdGVycywgc2xhc2gsIHNpbmdsZSBxdW90ZXMsIGFuZCBub24tYXNjaWkgcHJpbnRhYmxlcy5cbnZhciBxdW90YWJsZUNoYXJhY3RlcnMgPSAvW1xcdTAwMDAtXFx1MDAxZlxcXFxcXCdcXHUwMDdmLVxcdWZmZmZdL2c7XG52YXIgc3BlY2lhbFF1b3RlcyA9IHtcbiAgJ1xcJyc6ICdcXFxcXFwnJyxcbiAgJ1xcYic6ICdcXFxcYicsXG4gICdcXHQnOiAnXFxcXHQnLFxuICAnXFxuJzogJ1xcXFxuJyxcbiAgJ1xcZic6ICdcXFxcZicsXG4gICdcXHInOiAnXFxcXHInXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gcXVvdGVTdHJpbmcoczogc3RyaW5nKTogc3RyaW5nIHtcbiAgcyA9IHMucmVwbGFjZShxdW90YWJsZUNoYXJhY3RlcnMsIGZ1bmN0aW9uKGMpIHtcbiAgICBpZiAoc3BlY2lhbFF1b3Rlc1tjXSkge1xuICAgICAgcmV0dXJuIHNwZWNpYWxRdW90ZXNbY107XG4gICAgfVxuICAgIHJldHVybiAnXFxcXHUnICsgKCcwMDAwJyArIGMuY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikpLnNsaWNlKC00KTtcbiAgfSk7XG4gIHJldHVybiBcIidcIiArIHMgKyBcIidcIjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFycmF5SW5jbHVkZXMoYTogYW55W10sIGUpOiBib29sZWFuIHtcbiAgcmV0dXJuIGEuaW5kZXhPZihlKSAhPT0gLTE7XG59XG5cbi8vIExpa2UgUHl0aG9uIGxpc3QuZXh0ZW5kXG5leHBvcnQgZnVuY3Rpb24gZXh0ZW5kQXJyYXkodGFyZ2V0LCBzcmMpIHtcbiAgaWYgKHRhcmdldCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdGFyZ2V0ID0gW107XG4gIH1cbiAgQXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkodGFyZ2V0LCBzcmMpO1xuICByZXR1cm4gdGFyZ2V0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gb3IodGFyZ2V0LCBzcmMpIHtcbiAgaWYgKHRhcmdldCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiB0YXJnZXQgfHwgc3JjO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZW5zdXJlT2JqZWN0UGF0aChvYmo6IE9iamVjdCwgcGFydHM6IHN0cmluZ1tdKTogT2JqZWN0IHtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYXJ0cy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBuYW1lID0gcGFydHNbaV07XG4gICAgaWYgKCEobmFtZSBpbiBvYmopKSB7XG4gICAgICBvYmpbbmFtZV0gPSB7fTtcbiAgICB9XG4gICAgb2JqID0gb2JqW25hbWVdO1xuICB9XG4gIHJldHVybiBvYmo7XG59XG5cbi8vIFJlbW92ZSBhbGwgZW1wdHksICd7fScsICBjaGlsZHJlbiAtIHJldHVybnMgdHJ1ZSBpZmYgb2JqIGlzIGVtcHR5LlxuZXhwb3J0IGZ1bmN0aW9uIHBydW5lRW1wdHlDaGlsZHJlbihvYmo6IE9iamVjdCk6IGJvb2xlYW4ge1xuICBpZiAob2JqLmNvbnN0cnVjdG9yICE9PSBPYmplY3QpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgdmFyIGhhc0NoaWxkcmVuID0gZmFsc2U7XG4gIGZvciAodmFyIHByb3AgaW4gb2JqKSB7XG4gICAgaWYgKCFvYmouaGFzT3duUHJvcGVydHkocHJvcCkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBpZiAocHJ1bmVFbXB0eUNoaWxkcmVuKG9ialtwcm9wXSkpIHtcbiAgICAgIGRlbGV0ZSBvYmpbcHJvcF07XG4gICAgfSBlbHNlIHtcbiAgICAgIGhhc0NoaWxkcmVuID0gdHJ1ZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuICFoYXNDaGlsZHJlbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdENvbHVtbnMoaW5kZW50OiBudW1iZXIsIGxpbmVzOiBzdHJpbmdbXVtdKTogc3RyaW5nW10ge1xuICBsZXQgcmVzdWx0OiBzdHJpbmdbXSA9IFtdO1xuICBsZXQgY29sdW1uU2l6ZSA9IFtdO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbGluZXMubGVuZ3RoOyBpKyspIHtcbiAgICBsZXQgbGluZSA9IGxpbmVzW2ldO1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgbGluZS5sZW5ndGg7IGorKykge1xuICAgICAgaWYgKGNvbHVtblNpemVbal0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjb2x1bW5TaXplW2pdID0gMDtcbiAgICAgIH1cbiAgICAgIGNvbHVtblNpemVbal0gPSBNYXRoLm1heChjb2x1bW5TaXplW2pdLCBsaW5lW2pdLmxlbmd0aCk7XG4gICAgfVxuICB9XG5cbiAgdmFyIHByZWZpeCA9IHJlcGVhdFN0cmluZygnICcsIGluZGVudCk7XG4gIHZhciBzOiBzdHJpbmc7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbGluZXMubGVuZ3RoOyBpKyspIHtcbiAgICBsZXQgbGluZSA9IGxpbmVzW2ldO1xuICAgIGxldCBzZXAgPSBcIlwiO1xuICAgIHMgPSBcIlwiO1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgbGluZS5sZW5ndGg7IGorKykge1xuICAgICAgaWYgKGogPT09IDApIHtcbiAgICAgICAgcyA9IHByZWZpeDtcbiAgICAgIH1cbiAgICAgIGlmIChqID09PSBsaW5lLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgcyArPSBzZXAgKyBsaW5lW2pdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcyArPSBzZXAgKyBmaWxsU3RyaW5nKGxpbmVbal0sIGNvbHVtblNpemVbal0pO1xuICAgICAgfVxuICAgICAgc2VwID0gXCIgIFwiO1xuICAgIH1cbiAgICByZXN1bHQucHVzaChzKTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmZ1bmN0aW9uIHJlcGVhdFN0cmluZyhzOiBzdHJpbmcsIG46IG51bWJlcik6IHN0cmluZyB7XG4gIHJldHVybiBuZXcgQXJyYXkobiArIDEpLmpvaW4ocyk7XG59XG5cbmZ1bmN0aW9uIGZpbGxTdHJpbmcoczogc3RyaW5nLCBuOiBudW1iZXIpOiBzdHJpbmcge1xuICBsZXQgcGFkZGluZyA9IG4gLSBzLmxlbmd0aDtcbiAgaWYgKHBhZGRpbmcgPiAwKSB7XG4gICAgcyArPSByZXBlYXRTdHJpbmcoJyAnLCBwYWRkaW5nKTtcbiAgfVxuICByZXR1cm4gcztcbn1cbiJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ==
{
"name": "firebase-bolt",
"description": "Firebase Bolt Security and Modeling Language Compiler",
"version": "0.4.1",
"version": "0.4.2",
"author": {

@@ -60,2 +60,3 @@ "name": "Firebase",

"http-server": "^0.8.0",
"mkdirp": "^0.5.1",
"pegjs": "^0.8.0",

@@ -68,5 +69,6 @@ "source-map-support": "^0.3.2",

"dependencies": {
"mocha": "^2.2.5",
"chai": "^3.2.0",
"firebase-token-generator": "^2.0.0",
"minimist": "^1.2.0",
"mocha": "^2.2.5",
"node-uuid": "^1.4.3",

@@ -73,0 +75,0 @@ "promise": "^7.0.4"

@@ -1,2 +0,2 @@

# Bolt Compiler
# ![Bolt Icon](docs/images/flash.png) Bolt Compiler

@@ -3,0 +3,0 @@ [![Build Status](https://travis-ci.org/firebase/bolt.svg?branch=master)](https://travis-ci.org/firebase/bolt)

Sorry, the diff of this file is not supported yet

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