firebase-bolt
Advanced tools
Comparing version 0.6.0 to 0.7.0
@@ -1,3 +0,2 @@ | ||
fixed - Testing-only: Create /tmp dir if not already created in CLI test. | ||
fixed - Allow hyphens in paths. | ||
feature - Nested path statements. | ||
changed - Path expressions should now use path template syntax instead of wildcard variables. | ||
changed - Deprecate fn(x) = exp; function definition format (with deprecation warning). |
@@ -36,3 +36,3 @@ # Firebase Bolt Security and Modeling Language | ||
validate() = <validation expression>; | ||
validate() { <validation expression> } | ||
} | ||
@@ -71,7 +71,7 @@ } | ||
type ShortString extends String { | ||
validate() = this.length < 32; | ||
validate() { this.length < 32 } | ||
} | ||
type Percentage extends Number { | ||
validate() = this >=0 && this <= 100; | ||
validate() { this >=0 && this <= 100 } | ||
} | ||
@@ -108,3 +108,3 @@ ``` | ||
type ProductID extends String { | ||
validate() = this.length <= 20; | ||
validate() { this.length <= 20 } | ||
} | ||
@@ -151,7 +151,7 @@ ``` | ||
path /path/to/data [is Type] { | ||
read() = <true-iff-reading-this-path-is-allowed>; | ||
read() { <true-iff-reading-this-path-is-allowed> } | ||
write() = <true-iff-writing-this-path-is-allowed>; | ||
write() { <true-iff-writing-this-path-is-allowed> } | ||
validate() = <additional-validation-rules>; | ||
validate() { <additional-validation-rules> } | ||
} | ||
@@ -175,12 +175,12 @@ ``` | ||
and especially perform constraints that are path-dependent. Path | ||
statements can include wildcard parts whose values can then be used within | ||
templates can include _captured_ parts whose values can then be used within | ||
an expression as a variable parameter: | ||
```javascript | ||
path /users/$uid is User { | ||
path /users/{uid} is User { | ||
// Anyone can read a User's information. | ||
read() = true; | ||
read() { true } | ||
// Only an authenticated user can write their information. | ||
write() = auth != null && auth.uid == $uid; | ||
write() { auth != null && auth.uid == uid } | ||
} | ||
@@ -192,7 +192,7 @@ ``` | ||
path /users/$uid is User; | ||
path /users/{uid} is User; | ||
and the `path` keyword can also be omitted. | ||
/users/$uid is User; | ||
/users/{uid} is User; | ||
@@ -246,3 +246,3 @@ ## String methods | ||
type Product { | ||
validate() = this.id == key(); | ||
validate() { this.id == key() } | ||
@@ -268,3 +268,3 @@ id: String, | ||
isUser(uid) = auth != null && auth.uid == uid; | ||
isUser(uid) { auth != null && auth.uid == uid } | ||
``` | ||
@@ -277,4 +277,4 @@ | ||
write() { return this.user == auth.uid; } | ||
write() { this.user == auth.uid; } | ||
write() { this.user == auth.uid } | ||
write() = this.user == auth.uid; | ||
``` | ||
@@ -307,6 +307,6 @@ | ||
----| --------------- | ||
".read" : "exp" | read() { return exp; } | ||
".write" : "exp" | write() { return exp; } | ||
".validate": "exp" | validate() { return exp; } | ||
".indexOn": [ "prop", ...] | index() { return [ "prop", ... ] } | ||
".read" : "exp" | read() { exp } | ||
".write" : "exp" | write() { exp } | ||
".validate": "exp" | validate() { exp } | ||
".indexOn": [ "prop", ...] | index() { [ "prop", ... ] } | ||
@@ -318,3 +318,3 @@ ## Variables | ||
auth | auth | ||
$location | $location (in path statement) | ||
$location | {location} (in path statement) | ||
now | now | ||
@@ -321,0 +321,0 @@ data | prior(this) |
@@ -19,5 +19,5 @@ /* | ||
var helper = require('./test-helper'); | ||
var bolt = require('../bolt'); | ||
var parse = bolt.parse; | ||
var ast = require('../ast'); | ||
var bolt = (typeof (window) !== 'undefined' && window.bolt) || require('../bolt'); | ||
var parse = bolt.parse; | ||
suite("Abstract Syntax Tree (AST)", function () { | ||
@@ -213,2 +213,2 @@ suite("Left Associative Operators (AND OR)", function () { | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzdC10ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsSUFBTyxJQUFJLFdBQVcsTUFBTSxDQUFDLENBQUM7QUFDOUIsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztBQUN6QixJQUFPLE1BQU0sV0FBVyxlQUFlLENBQUMsQ0FBQztBQUV6QyxJQUFPLEdBQUcsV0FBVyxRQUFRLENBQUMsQ0FBQztBQUMvQixJQUFJLElBQUksR0FBRyxDQUFDLE9BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxXQUFXLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUNqRixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO0FBRXZCLEtBQUssQ0FBQyw0QkFBNEIsRUFBRTtJQUNsQyxLQUFLLENBQUMscUNBQXFDLEVBQUU7UUFDM0MsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUM7UUFDckIsSUFBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQztRQUNsQixJQUFJLEVBQUUsR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVmLElBQUksS0FBSyxHQUFHO1lBQ1YsRUFBRSxJQUFJLEVBQUUsRUFBRTtnQkFDUixNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUMsRUFBRTtZQUMzQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDVCxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUMsRUFBRTtZQUMzQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDVCxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUMsRUFBRTtZQUMzQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ1osTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFDLEVBQUU7WUFDM0IsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNaLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBQyxFQUFFO1lBQzNCLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ2YsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFDLEVBQUU7WUFDM0IsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDZixNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUMsRUFBRTtZQUMzQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDVCxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUMsRUFBRTtZQUMzQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ1osTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFDLEVBQUU7WUFDM0IsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNaLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBQyxFQUFFO1lBQzNCLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDWixNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUMsRUFBRTtZQUMzQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ1osTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFDLEVBQUU7WUFDM0IsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDZixNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUMsRUFBRTtZQUMzQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNmLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBQyxFQUFFO1lBQzNCLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ2YsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsRUFBRTtZQUN0QyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNmLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLENB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IENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgY2hhaSA9IHJlcXVpcmUoJ2NoYWknKTtcbnZhciBhc3NlcnQgPSBjaGFpLmFzc2VydDtcbmltcG9ydCBoZWxwZXIgPSByZXF1aXJlKCcuL3Rlc3QtaGVscGVyJyk7XG5cbmltcG9ydCBhc3QgPSByZXF1aXJlKCcuLi9hc3QnKTtcbnZhciBib2x0ID0gKHR5cGVvZih3aW5kb3cpICE9PSAndW5kZWZpbmVkJyAmJiB3aW5kb3cuYm9sdCkgfHwgcmVxdWlyZSgnLi4vYm9sdCcpO1xudmFyIHBhcnNlID0gYm9sdC5wYXJzZTtcblxuc3VpdGUoXCJBYnN0cmFjdCBTeW50YXggVHJlZSAoQVNUKVwiLCBmdW5jdGlvbigpIHtcbiAgc3VpdGUoXCJMZWZ0IEFzc29jaWF0aXZlIE9wZXJhdG9ycyAoQU5EIE9SKVwiLCBmdW5jdGlvbigpIHtcbiAgICB2YXIgdCA9IGFzdC5ib29sZWFuKHRydWUpO1xuICAgIHZhciBmID0gYXN0LmJvb2xlYW4oZmFsc2UpO1xuICAgIHZhciB2ID0gYXN0LnZhcmlhYmxlO1xuICAgIHZhciBhbmQgPSBhc3QuYW5kO1xuICAgIHZhciBvciA9IGFzdC5vcjtcbiAgICB2YXIgYSA9IHYoJ2EnKTtcbiAgICB2YXIgYiA9IHYoJ2InKTtcbiAgICB2YXIgYyA9IHYoJ2MnKTtcbiAgICB2YXIgZCA9IHYoJ2QnKTtcblxuICAgIHZhciB0ZXN0cyA9IFtcbiAgICAgIHsgZGF0YTogW10sXG4gICAgICAgIGV4cGVjdDoge2FuZDogdCwgb3I6IGZ9IH0sXG4gICAgICB7IGRhdGE6IFt0XSxcbiAgICAgICAgZXhwZWN0OiB7YW5kOiB0LCBvcjogdH0gfSxcbiAgICAgIHsgZGF0YTogW2ZdLFxuICAgICAgICBleHBlY3Q6IHthbmQ6IGYsIG9yOiBmfSB9LFxuICAgICAgeyBkYXRhOiBbZiwgdF0sXG4gICAgICAgIGV4cGVjdDoge2FuZDogZiwgb3I6IHR9IH0sXG4gICAgICB7IGRhdGE6IFt0LCBmXSxcbiAgICAgICAgZXhwZWN0OiB7YW5kOiBmLCBvcjogdH0gfSxcbiAgICAgIHsgZGF0YTogW3QsIGYsIHRdLFxuICAgICAgICBleHBlY3Q6IHthbmQ6IGYsIG9yOiB0fSB9LFxuICAgICAgeyBkYXRhOiBbZiwgdCwgZl0sXG4gICAgICAgIGV4cGVjdDoge2FuZDogZiwgb3I6IHR9IH0sXG4gICAgICB7IGRhdGE6IFthXSxcbiAgICAgICAgZXhwZWN0OiB7YW5kOiBhLCBvcjogYX0gfSxcbiAgICAgIHsgZGF0YTogW2EsIHRdLFxuICAgICAgICBleHBlY3Q6IHthbmQ6IGEsIG9yOiB0fSB9LFxuICAgICAgeyBkYXRhOiBbYSwgZl0sXG4gICAgICAgIGV4cGVjdDoge2FuZDogZiwgb3I6IGF9IH0sXG4gICAgICB7IGRhdGE6IFt0LCBhXSxcbiAgICAgICAgZXhwZWN0OiB7YW5kOiBhLCBvcjogdH0gfSxcbiAgICAgIHsgZGF0YTogW2YsIGFdLFxuICAgICAgICBleHBlY3Q6IHthbmQ6IGYsIG9yOiBhfSB9LFxuICAgICAgeyBkYXRhOiBbdCwgYSwgZl0sXG4gICAgICAgIGV4cGVjdDoge2FuZDogZiwgb3I6IHR9IH0sXG4gICAgICB7IGRhdGE6IFtmLCBhLCB0XSxcbiAgICAgICAgZXhwZWN0OiB7YW5kOiBmLCBvcjogdH0gfSxcbiAgICAgIHsgZGF0YTogW2EsIGYsIGFdLFxuICAgICAgICBleHBlY3Q6IHthbmQ6IGYsIG9yOiBhc3Qub3IoYSwgYSl9IH0sXG4gICAgICB7IGRhdGE6IFthLCB0LCBhXSxcbiAgICAgICAgZXhwZWN0OiB7YW5kOiBhbmQoYSwgYSksIG9yOiB0fSB9LFxuICAgICAgeyBkYXRhOiBbYW5kKGEsIGIpLCBhbmQoYywgZCldLFxuICAgICAgICBleHBlY3Q6IHthbmQ6IGFuZChhbmQoYW5kKGEsIGIpLCBjKSwgZCksXG4gICAgICAgICAgICAgICAgIG9yOiBvcihhbmQoYSwgYiksIGFuZChjLCBkKSl9IH0sXG4gICAgICB7IGRhdGE6IFtvcihhLCBiKSwgb3IoYywgZCldLFxuICAgICAgICBleHBlY3Q6IHthbmQ6IGFuZChvcihhLCBiKSwgb3IoYywgZCkpLFxuICAgICAgICAgICAgICAgICBvcjogb3Iob3Iob3IoYSwgYiksIGMpLCBkKX0gfSxcbiAgICBdO1xuXG4gICAgaGVscGVyLmRhdGFEcml2ZW5UZXN0KHRlc3RzLCBmdW5jdGlvbihkYXRhLCBleHBlY3QpIHtcbiAgICAgIGFzc2VydC5kZWVwRXF1YWwoYXN0LmFuZEFycmF5KGRhdGEpLCBleHBlY3QuYW5kLCAnQU5EJyk7XG4gICAgICBhc3NlcnQuZGVlcEVxdWFsKGFzdC5vckFycmF5KGRhdGEpLCBleHBlY3Qub3IsICdPUicpO1xuICAgIH0sIGhlbHBlci5leHBGb3JtYXQpO1xuICB9KTtcblxuICBzdWl0ZShcIkZsYXR0ZW5cIiwgZnVuY3Rpb24oKSB7XG4gICAgdmFyIHYgPSBhc3QudmFyaWFibGU7XG4gICAgdmFyIGFuZCA9IGFzdC5hbmQ7XG4gICAgdmFyIGEgPSB2KCdhJyk7XG4gICAgdmFyIGIgPSB2KCdiJyk7XG4gICAgdmFyIGMgPSB2KCdjJyk7XG4gICAgdmFyIGQgPSB2KCdkJyk7XG5cbiAgICB2YXIgdGVzdHMgPSBbXG4gICAgICB7IGRhdGE6IGEsXG4gICAgICAgIGV4cGVjdDogW2FdIH0sXG4gICAgICB7IGRhdGE6IGFuZChhLCBiKSxcbiAgICAgICAgZXhwZWN0OiBbYSwgYl0gfSxcbiAgICAgIHsgZGF0YTogYW5kKGEsIGIpLFxuICAgICAgICBleHBlY3Q6IFthLCBiXSB9LFxuICAgICAgeyBkYXRhOiBhbmQoYW5kKGEsIGIpLCBjKSxcbiAgICAgICAgZXhwZWN0OiBbYSwgYiwgY10gfSxcbiAgICAgIHsgZGF0YTogYW5kKGEsIGFuZChiLCBjKSksXG4gICAgICAgIGV4cGVjdDogW2EsIGIsIGNdIH0sXG4gICAgICB7IGRhdGE6IGFuZChhbmQoYSwgYiksIGFuZChjLCBkKSksXG4gICAgICAgIGV4cGVjdDogW2EsIGIsIGMsIGRdIH0sXG4gICAgXTtcblxuICAgIGhlbHBlci5kYXRhRHJpdmVuVGVzdCh0ZXN0cywgZnVuY3Rpb24oZGF0YSwgZXhwZWN0KSB7XG4gICAgICB2YXIgcmVzdWx0ID0gYXN0LmZsYXR0ZW4oJyYmJywgZGF0YSk7XG4gICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3VsdCwgZXhwZWN0KTtcbiAgICB9LCBoZWxwZXIuZXhwRm9ybWF0KTtcbiAgfSk7XG5cbiAgc3VpdGUoXCJpc0lkZW50aWZpZXJTdHJpbmdcIiwgZnVuY3Rpb24oKSB7XG4gICAgbGV0IHRlc3RzID0gW1xuICAgICAgW2FzdC5zdHJpbmcoJ2hpJyksIHRydWVdLFxuICAgICAgW2FzdC5zdHJpbmcoJ0hpJyksIHRydWVdLFxuICAgICAgW2FzdC5zdHJpbmcoJ2EnKSwgdHJ1ZV0sXG4gICAgICBbYXN0LnN0cmluZygnQScpLCB0cnVlXSxcbiAgICAgIFthc3Quc3RyaW5nKCdoaVRoZXJlJyksIHRydWVdLFxuICAgICAgW2FzdC5zdHJpbmcoJ0gxMjMnKSwgdHJ1ZV0sXG4gICAgICBbYXN0LnN0cmluZygnJGlkJyksIHRydWVdLFxuICAgICAgW2FzdC5zdHJpbmcoJ2EkaWQnKSwgZmFsc2VdLFxuICAgICAgW2FzdC5zdHJpbmcoJ2EgYicpLCBmYWxzZV0sXG4gICAgICBbYXN0LnN0cmluZygnMEgxMjMnKSwgZmFsc2VdLFxuICAgICAgW2FzdC5ib29sZWFuKHRydWUpLCBmYWxzZV0sXG4gICAgICBbYXN0Lm51bWJlcigxMjMpLCBmYWxzZV0sXG4gICAgICBbJ2hpJywgZmFsc2VdLFxuICAgIF07XG5cbiAgICBoZWxwZXIuZGF0YURyaXZlblRlc3QodGVzdHMsIGZ1bmN0aW9uKGRhdGEsIGV4cGVjdCkge1xuICAgICAgdmFyIHJlc3VsdCA9IGFzdC5pc0lkZW50aWZpZXJTdHJpbmdFeHAoZGF0YSk7XG4gICAgICBhc3NlcnQuZXF1YWwocmVzdWx0LCBleHBlY3QpO1xuICAgIH0sIGhlbHBlci5leHBGb3JtYXQpO1xuICB9KTtcblxuICBzdWl0ZShcIkV4cHJlc3Npb24gZGVjb2RpbmcuXCIsIGZ1bmN0aW9uKCkge1xuICAgIHZhciB0ZXN0cyA9IFtcbiAgICAgIFsgXCJ0cnVlXCIgXSxcbiAgICAgIFsgXCJmYWxzZVwiIF0sXG4gICAgICBbIFwiMVwiIF0sXG4gICAgICBbIFwiKDEpXCIsICcxJyBdLFxuICAgICAgWyBcIjEuMVwiIF0sXG4gICAgICBbIFwiKzNcIiwgXCIzXCJdLFxuICAgICAgWyBcIi0zXCIgXSxcbiAgICAgIFsgXCIweDJcIiwgXCIyXCIgXSxcbiAgICAgIFsgXCJcXFwic3RyaW5nXFxcIlwiLCBcIidzdHJpbmcnXCIgXSxcbiAgICAgIFsgXCInc3RyaW5nJ1wiIF0sXG4gICAgICBbIFwiJ3N0XFxcXCdyaW5nJ1wiXSxcbiAgICAgIFsgXCInc3RcXFxccmluZydcIiBdLFxuICAgICAgWyBcIidcXFxcdTAwMGQnXCIsIFwiJ1xcXFxyJ1wiIF0sXG4gICAgICBbIFwiL3BhdHRlcm4vXCIgXSxcbiAgICAgIFsgXCIvcGF0dGVybi9pXCIgXSxcbiAgICAgIFsgXCIvcGF0XFxcXC90ZXJuL2lcIiBdLFxuICAgICAgWyBcImFcIiBdLFxuICAgICAgWyBcImEuYlwiIF0sXG4gICAgICBbIFwiYS5iLmNcIiBdLFxuXG4gICAgICBbIFwiYVsnYiddXCIsICdhLmInIF0sXG4gICAgICBbIFwiYVtiXVwiIF0sXG4gICAgICBbIFwiYVtiXVtjXVwiIF0sXG4gICAgICBbIFwiYS5iW2NdXCIgXSxcbiAgICAgIFsgXCJhW2JdLmNcIiBdLFxuICAgICAgWyBcIihhLmIpW2NdXCIsIFwiYS5iW2NdXCIgXSxcbiAgICAgIFsgXCIoYShiKSlbY11cIiwgXCJhKGIpW2NdXCIgXSxcblxuICAgICAgWyBcImEoKVwiIF0sXG4gICAgICBbIFwiYSgpKClcIiBdLFxuICAgICAgWyBcImEuYigpXCIgXSxcbiAgICAgIFsgXCJhKCkuYlwiIF0sXG4gICAgICBbIFwiYVswXSgpXCIgXSxcbiAgICAgIFsgXCJhKClbMF1cIiBdLFxuXG4gICAgICBbIFwiLWFcIiBdLFxuICAgICAgWyBcIi0tYVwiIF0sXG4gICAgICBbIFwiK2FcIiwgXCJhXCJdLFxuICAgICAgWyBcIithICtiXCIsIFwiYSArIGJcIiBdLFxuICAgICAgWyBcIi1hIC1iXCIsIFwiLWEgLSBiXCIgXSxcbiAgICAgIFsgXCItYSAtLWJcIiwgXCItYSAtIC1iXCIgXSxcbiAgICAgIFsgXCItYSAtLS1iXCIsIFwiLWEgLSAtLWJcIiBdLFxuICAgICAgWyBcIiFhXCIgXSxcbiAgICAgIFsgXCIhIWFcIiBdLFxuICAgICAgWyBcIiErYVwiLCAnIWEnIF0sXG4gICAgICBbIFwiIS1hXCIgXSxcbiAgICAgIFsgXCItIWFcIiBdLFxuICAgICAgWyBcIjIgKiBhXCIgXSxcbiAgICAgIFsgXCIoMiAqIGEpXCIsICcyICogYScgXSxcbiAgICAgIFsgXCIyIC8gYVwiIF0sXG4gICAgICBbIFwiYSAlIDJcIiBdLFxuICAgICAgWyBcIjEgKyAxXCIgXSxcbiAgICAgIFsgXCJhIC0gMVwiIF0sXG4gICAgICBbIFwiYSAtIC1iXCIgXSxcbiAgICAgIFsgXCJhICsgYiArIGNcIiBdLFxuICAgICAgWyBcImEgKyAoYiArIGMpXCIgXSxcbiAgICAgIFsgXCIoYSArIGIpICsgY1wiLCAnYSArIGIgKyBjJyBdLFxuICAgICAgWyBcImEgKyBiICogY1wiIF0sXG4gICAgICBbIFwiKGEgKyBiKSAqIGNcIiBdLFxuICAgICAgWyBcImEgPCA3XCIgXSxcbiAgICAgIFsgXCJhID4gN1wiIF0sXG4gICAgICBbIFwiYSA8PSA3XCIgXSxcbiAgICAgIFsgXCJhID49IDdcIiBdLFxuICAgICAgWyBcImEgPT0gM1wiIF0sXG4gICAgICBbIFwiYSAhPSAwXCIgXSxcbiAgICAgIFsgXCJhID09PSAzXCIsIFwiYSA9PSAzXCIgXSxcbiAgICAgIFsgXCJhICE9PSAwXCIsIFwiYSAhPSAwXCIgXSxcbiAgICAgIFsgXCIzICogYSA9PSBiXCIgXSxcbiAgICAgIFsgXCJhID09IDEgJiYgYiA8PSAyXCIgXSxcbiAgICAgIFsgXCJhID09IDEgfHwgYiA8PSAyXCIgXSxcbiAgICAgIFsgXCJhICYmIGIgJiYgY1wiIF0sXG4gICAgICBbIFwiYSB8fCBiIHx8IGNcIiBdLFxuICAgICAgWyBcImEgJiYgYiB8fCBjICYmIGRcIiBdLFxuICAgICAgWyBcImEgPyBiIDogY1wiLCAgXSxcbiAgICAgIFsgXCJhIHx8IGIgPyBjIDogZFwiIF0sXG4gICAgICBbIFwiKHRoaXMgKyAnICcpLnRlc3QoL1xcZCsvKVwiIF0sXG4gICAgXTtcblxuICAgIGhlbHBlci5kYXRhRHJpdmVuVGVzdCh0ZXN0cywgZnVuY3Rpb24oZGF0YSwgZXhwZWN0KSB7XG4gICAgICAvLyBEZWNvZGUgdG8gc2VsZiBieSBkZWZhdWx0XG4gICAgICBleHBlY3QgPSBleHBlY3QgfHwgZGF0YTtcbiAgICAgIHZhciByZXN1bHQgPSBwYXJzZSgnZnVuY3Rpb24gZigpIHtyZXR1cm4gJyArIGRhdGEgKyAnO30nKTtcbiAgICAgIHZhciBleHAgPSByZXN1bHQuZnVuY3Rpb25zLmYuYm9keTtcbiAgICAgIHZhciBkZWNvZGUgPSBib2x0LmRlY29kZUV4cHJlc3Npb24oZXhwKTtcbiAgICAgIGFzc2VydC5lcXVhbChkZWNvZGUsIGV4cGVjdCk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzdC10ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsSUFBTyxJQUFJLFdBQVcsTUFBTSxDQUFDLENBQUM7QUFDOUIsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztBQUN6QixJQUFPLE1BQU0sV0FBVyxlQUFlLENBQUMsQ0FBQztBQUV6QyxJQUFPLElBQUksV0FBVyxTQUFTLENBQUMsQ0FBQztBQUNqQyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLElBQU8sR0FBRyxXQUFXLFFBQVEsQ0FBQyxDQUFDO0FBRS9CLEtBQUssQ0FBQyw0QkFBNEIsRUFBRTtJQUNsQyxLQUFLLENBQUMscUNBQXFDLEVBQUU7UUFDM0MsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUM7UUFDckIsSUFBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQztRQUNsQixJQUFJLEVBQUUsR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVmLElBQUksS0FBSyxHQUFHO1lBQ1YsRUFBRSxJQUFJLEVBQUUsRUFBRTtnQkFDUixNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUMsRUFBRTtZQUMzQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDVCxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUMsRUFBRTtZQUMzQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDVCxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUMsRUFBRTtZQUMzQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ1osTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFDLEVBQUU7WUFDM0IsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNaLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBQyxFQUFFO1lBQzNCLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ2YsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFDLEVBQUU7WUFDM0IsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDZixNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUMsRUFBRTtZQUMzQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDVCxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUMsRUFBRTtZQUMzQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ1osTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFDLEVBQUU7WUFDM0IsRUFBRSxJQUFJLEVBQUUs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QUFFO1lBQ1gsQ0FBRSxPQUFPLENBQUU7WUFDWCxDQUFFLFFBQVEsQ0FBRTtZQUNaLENBQUUsUUFBUSxDQUFFO1lBQ1osQ0FBRSxRQUFRLENBQUU7WUFDWixDQUFFLFFBQVEsQ0FBRTtZQUNaLENBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBRTtZQUN2QixDQUFFLFNBQVMsRUFBRSxRQUFRLENBQUU7WUFDdkIsQ0FBRSxZQUFZLENBQUU7WUFDaEIsQ0FBRSxrQkFBa0IsQ0FBRTtZQUN0QixDQUFFLGtCQUFrQixDQUFFO1lBQ3RCLENBQUUsYUFBYSxDQUFFO1lBQ2pCLENBQUUsYUFBYSxDQUFFO1lBQ2pCLENBQUUsa0JBQWtCLENBQUU7WUFDdEIsQ0FBRSxXQUFXLEVBQUk7WUFDakIsQ0FBRSxnQkFBZ0IsQ0FBRTtZQUNwQixDQUFFLDBCQUEwQixDQUFFO1NBQy9CLENBQUM7UUFFRixNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxVQUFTLElBQUksRUFBRSxNQUFNO1lBQ2hELDRCQUE0QjtZQUM1QixNQUFNLEdBQUcsTUFBTSxJQUFJLElBQUksQ0FBQztZQUN4QixJQUFJLE1BQU0sR0FBRyxLQUFLLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDO1lBQzFELElBQUksR0FBRyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUNsQyxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDeEMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDL0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwiZmlsZSI6ImFzdC10ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgY2hhaSA9IHJlcXVpcmUoJ2NoYWknKTtcbnZhciBhc3NlcnQgPSBjaGFpLmFzc2VydDtcbmltcG9ydCBoZWxwZXIgPSByZXF1aXJlKCcuL3Rlc3QtaGVscGVyJyk7XG5cbmltcG9ydCBib2x0ID0gcmVxdWlyZSgnLi4vYm9sdCcpO1xudmFyIHBhcnNlID0gYm9sdC5wYXJzZTtcbmltcG9ydCBhc3QgPSByZXF1aXJlKCcuLi9hc3QnKTtcblxuc3VpdGUoXCJBYnN0cmFjdCBTeW50YXggVHJlZSAoQVNUKVwiLCBmdW5jdGlvbigpIHtcbiAgc3VpdGUoXCJMZWZ0IEFzc29jaWF0aXZlIE9wZXJhdG9ycyAoQU5EIE9SKVwiLCBmdW5jdGlvbigpIHtcbiAgICB2YXIgdCA9IGFzdC5ib29sZWFuKHRydWUpO1xuICAgIHZhciBmID0gYXN0LmJvb2xlYW4oZmFsc2UpO1xuICAgIHZhciB2ID0gYXN0LnZhcmlhYmxlO1xuICAgIHZhciBhbmQgPSBhc3QuYW5kO1xuICAgIHZhciBvciA9IGFzdC5vcjtcbiAgICB2YXIgYSA9IHYoJ2EnKTtcbiAgICB2YXIgYiA9IHYoJ2InKTtcbiAgICB2YXIgYyA9IHYoJ2MnKTtcbiAgICB2YXIgZCA9IHYoJ2QnKTtcblxuICAgIHZhciB0ZXN0cyA9IFtcbiAgICAgIHsgZGF0YTogW10sXG4gICAgICAgIGV4cGVjdDoge2FuZDogdCwgb3I6IGZ9IH0sXG4gICAgICB7IGRhdGE6IFt0XSxcbiAgICAgICAgZXhwZWN0OiB7YW5kOiB0LCBvcjogdH0gfSxcbiAgICAgIHsgZGF0YTogW2ZdLFxuICAgICAgICBleHBlY3Q6IHthbmQ6IGYsIG9yOiBmfSB9LFxuICAgICAgeyBkYXRhOiBbZiwgdF0sXG4gICAgICAgIGV4cGVjdDoge2FuZDogZiwgb3I6IHR9IH0sXG4gICAgICB7IGRhdGE6IFt0LCBmXSxcbiAgICAgICAgZXhwZWN0OiB7YW5kOiBmLCBvcjogdH0gfSxcbiAgICAgIHsgZGF0YTogW3QsIGYsIHRdLFxuICAgICAgICBleHBlY3Q6IHthbmQ6IGYsIG9yOiB0fSB9LFxuICAgICAgeyBkYXRhOiBbZiwgdCwgZl0sXG4gICAgICAgIGV4cGVjdDoge2FuZDogZiwgb3I6IHR9IH0sXG4gICAgICB7IGRhdGE6IFthXSxcbiAgICAgICAgZXhwZWN0OiB7YW5kOiBhLCBvcjogYX0gfSxcbiAgICAgIHsgZGF0YTogW2EsIHRdLFxuICAgICAgICBleHBlY3Q6IHthbmQ6IGEsIG9yOiB0fSB9LFxuICAgICAgeyBkYXRhOiBbYSwgZl0sXG4gICAgICAgIGV4cGVjdDoge2FuZDogZiwgb3I6IGF9IH0sXG4gICAgICB7IGRhdGE6IFt0LCBhXSxcbiAgICAgICAgZXhwZWN0OiB7YW5kOiBhLCBvcjogdH0gfSxcbiAgICAgIHsgZGF0YTogW2YsIGFdLFxuICAgICAgICBleHBlY3Q6IHthbmQ6IGYsIG9yOiBhfSB9LFxuICAgICAgeyBkYXRhOiBbdCwgYSwgZl0sXG4gICAgICAgIGV4cGVjdDoge2FuZDogZiwgb3I6IHR9IH0sXG4gICAgICB7IGRhdGE6IFtmLCBhLCB0XSxcbiAgICAgICAgZXhwZWN0OiB7YW5kOiBmLCBvcjogdH0gfSxcbiAgICAgIHsgZGF0YTogW2EsIGYsIGFdLFxuICAgICAgICBleHBlY3Q6IHthbmQ6IGYsIG9yOiBhc3Qub3IoYSwgYSl9IH0sXG4gICAgICB7IGRhdGE6IFthLCB0LCBhXSxcbiAgICAgICAgZXhwZWN0OiB7YW5kOiBhbmQoYSwgYSksIG9yOiB0fSB9LFxuICAgICAgeyBkYXRhOiBbYW5kKGEsIGIpLCBhbmQoYywgZCldLFxuICAgICAgICBleHBlY3Q6IHthbmQ6IGFuZChhbmQoYW5kKGEsIGIpLCBjKSwgZCksXG4gICAgICAgICAgICAgICAgIG9yOiBvcihhbmQoYSwgYiksIGFuZChjLCBkKSl9IH0sXG4gICAgICB7IGRhdGE6IFtvcihhLCBiKSwgb3IoYywgZCldLFxuICAgICAgICBleHBlY3Q6IHthbmQ6IGFuZChvcihhLCBiKSwgb3IoYywgZCkpLFxuICAgICAgICAgICAgICAgICBvcjogb3Iob3Iob3IoYSwgYiksIGMpLCBkKX0gfSxcbiAgICBdO1xuXG4gICAgaGVscGVyLmRhdGFEcml2ZW5UZXN0KHRlc3RzLCBmdW5jdGlvbihkYXRhLCBleHBlY3QpIHtcbiAgICAgIGFzc2VydC5kZWVwRXF1YWwoYXN0LmFuZEFycmF5KGRhdGEpLCBleHBlY3QuYW5kLCAnQU5EJyk7XG4gICAgICBhc3NlcnQuZGVlcEVxdWFsKGFzdC5vckFycmF5KGRhdGEpLCBleHBlY3Qub3IsICdPUicpO1xuICAgIH0sIGhlbHBlci5leHBGb3JtYXQpO1xuICB9KTtcblxuICBzdWl0ZShcIkZsYXR0ZW5cIiwgZnVuY3Rpb24oKSB7XG4gICAgdmFyIHYgPSBhc3QudmFyaWFibGU7XG4gICAgdmFyIGFuZCA9IGFzdC5hbmQ7XG4gICAgdmFyIGEgPSB2KCdhJyk7XG4gICAgdmFyIGIgPSB2KCdiJyk7XG4gICAgdmFyIGMgPSB2KCdjJyk7XG4gICAgdmFyIGQgPSB2KCdkJyk7XG5cbiAgICB2YXIgdGVzdHMgPSBbXG4gICAgICB7IGRhdGE6IGEsXG4gICAgICAgIGV4cGVjdDogW2FdIH0sXG4gICAgICB7IGRhdGE6IGFuZChhLCBiKSxcbiAgICAgICAgZXhwZWN0OiBbYSwgYl0gfSxcbiAgICAgIHsgZGF0YTogYW5kKGEsIGIpLFxuICAgICAgICBleHBlY3Q6IFthLCBiXSB9LFxuICAgICAgeyBkYXRhOiBhbmQoYW5kKGEsIGIpLCBjKSxcbiAgICAgICAgZXhwZWN0OiBbYSwgYiwgY10gfSxcbiAgICAgIHsgZGF0YTogYW5kKGEsIGFuZChiLCBjKSksXG4gICAgICAgIGV4cGVjdDogW2EsIGIsIGNdIH0sXG4gICAgICB7IGRhdGE6IGFuZChhbmQoYSwgYiksIGFuZChjLCBkKSksXG4gICAgICAgIGV4cGVjdDogW2EsIGIsIGMsIGRdIH0sXG4gICAgXTtcblxuICAgIGhlbHBlci5kYXRhRHJpdmVuVGVzdCh0ZXN0cywgZnVuY3Rpb24oZGF0YSwgZXhwZWN0KSB7XG4gICAgICB2YXIgcmVzdWx0ID0gYXN0LmZsYXR0ZW4oJyYmJywgZGF0YSk7XG4gICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3VsdCwgZXhwZWN0KTtcbiAgICB9LCBoZWxwZXIuZXhwRm9ybWF0KTtcbiAgfSk7XG5cbiAgc3VpdGUoXCJpc0lkZW50aWZpZXJTdHJpbmdcIiwgZnVuY3Rpb24oKSB7XG4gICAgbGV0IHRlc3RzID0gW1xuICAgICAgW2FzdC5zdHJpbmcoJ2hpJyksIHRydWVdLFxuICAgICAgW2FzdC5zdHJpbmcoJ0hpJyksIHRydWVdLFxuICAgICAgW2FzdC5zdHJpbmcoJ2EnKSwgdHJ1ZV0sXG4gICAgICBbYXN0LnN0cmluZygnQScpLCB0cnVlXSxcbiAgICAgIFthc3Quc3RyaW5nKCdoaVRoZXJlJyksIHRydWVdLFxuICAgICAgW2FzdC5zdHJpbmcoJ0gxMjMnKSwgdHJ1ZV0sXG4gICAgICBbYXN0LnN0cmluZygnJGlkJyksIHRydWVdLFxuICAgICAgW2FzdC5zdHJpbmcoJ2EkaWQnKSwgZmFsc2VdLFxuICAgICAgW2FzdC5zdHJpbmcoJ2EgYicpLCBmYWxzZV0sXG4gICAgICBbYXN0LnN0cmluZygnMEgxMjMnKSwgZmFsc2VdLFxuICAgICAgW2FzdC5ib29sZWFuKHRydWUpLCBmYWxzZV0sXG4gICAgICBbYXN0Lm51bWJlcigxMjMpLCBmYWxzZV0sXG4gICAgICBbJ2hpJywgZmFsc2VdLFxuICAgIF07XG5cbiAgICBoZWxwZXIuZGF0YURyaXZlblRlc3QodGVzdHMsIGZ1bmN0aW9uKGRhdGEsIGV4cGVjdCkge1xuICAgICAgdmFyIHJlc3VsdCA9IGFzdC5pc0lkZW50aWZpZXJTdHJpbmdFeHAoZGF0YSk7XG4gICAgICBhc3NlcnQuZXF1YWwocmVzdWx0LCBleHBlY3QpO1xuICAgIH0sIGhlbHBlci5leHBGb3JtYXQpO1xuICB9KTtcblxuICBzdWl0ZShcIkV4cHJlc3Npb24gZGVjb2RpbmcuXCIsIGZ1bmN0aW9uKCkge1xuICAgIHZhciB0ZXN0cyA9IFtcbiAgICAgIFsgXCJ0cnVlXCIgXSxcbiAgICAgIFsgXCJmYWxzZVwiIF0sXG4gICAgICBbIFwiMVwiIF0sXG4gICAgICBbIFwiKDEpXCIsICcxJyBdLFxuICAgICAgWyBcIjEuMVwiIF0sXG4gICAgICBbIFwiKzNcIiwgXCIzXCJdLFxuICAgICAgWyBcIi0zXCIgXSxcbiAgICAgIFsgXCIweDJcIiwgXCIyXCIgXSxcbiAgICAgIFsgXCJcXFwic3RyaW5nXFxcIlwiLCBcIidzdHJpbmcnXCIgXSxcbiAgICAgIFsgXCInc3RyaW5nJ1wiIF0sXG4gICAgICBbIFwiJ3N0XFxcXCdyaW5nJ1wiXSxcbiAgICAgIFsgXCInc3RcXFxccmluZydcIiBdLFxuICAgICAgWyBcIidcXFxcdTAwMGQnXCIsIFwiJ1xcXFxyJ1wiIF0sXG4gICAgICBbIFwiL3BhdHRlcm4vXCIgXSxcbiAgICAgIFsgXCIvcGF0dGVybi9pXCIgXSxcbiAgICAgIFsgXCIvcGF0XFxcXC90ZXJuL2lcIiBdLFxuICAgICAgWyBcImFcIiBdLFxuICAgICAgWyBcImEuYlwiIF0sXG4gICAgICBbIFwiYS5iLmNcIiBdLFxuXG4gICAgICBbIFwiYVsnYiddXCIsICdhLmInIF0sXG4gICAgICBbIFwiYVtiXVwiIF0sXG4gICAgICBbIFwiYVtiXVtjXVwiIF0sXG4gICAgICBbIFwiYS5iW2NdXCIgXSxcbiAgICAgIFsgXCJhW2JdLmNcIiBdLFxuICAgICAgWyBcIihhLmIpW2NdXCIsIFwiYS5iW2NdXCIgXSxcbiAgICAgIFsgXCIoYShiKSlbY11cIiwgXCJhKGIpW2NdXCIgXSxcblxuICAgICAgWyBcImEoKVwiIF0sXG4gICAgICBbIFwiYSgpKClcIiBdLFxuICAgICAgWyBcImEuYigpXCIgXSxcbiAgICAgIFsgXCJhKCkuYlwiIF0sXG4gICAgICBbIFwiYVswXSgpXCIgXSxcbiAgICAgIFsgXCJhKClbMF1cIiBdLFxuXG4gICAgICBbIFwiLWFcIiBdLFxuICAgICAgWyBcIi0tYVwiIF0sXG4gICAgICBbIFwiK2FcIiwgXCJhXCJdLFxuICAgICAgWyBcIithICtiXCIsIFwiYSArIGJcIiBdLFxuICAgICAgWyBcIi1hIC1iXCIsIFwiLWEgLSBiXCIgXSxcbiAgICAgIFsgXCItYSAtLWJcIiwgXCItYSAtIC1iXCIgXSxcbiAgICAgIFsgXCItYSAtLS1iXCIsIFwiLWEgLSAtLWJcIiBdLFxuICAgICAgWyBcIiFhXCIgXSxcbiAgICAgIFsgXCIhIWFcIiBdLFxuICAgICAgWyBcIiErYVwiLCAnIWEnIF0sXG4gICAgICBbIFwiIS1hXCIgXSxcbiAgICAgIFsgXCItIWFcIiBdLFxuICAgICAgWyBcIjIgKiBhXCIgXSxcbiAgICAgIFsgXCIoMiAqIGEpXCIsICcyICogYScgXSxcbiAgICAgIFsgXCIyIC8gYVwiIF0sXG4gICAgICBbIFwiYSAlIDJcIiBdLFxuICAgICAgWyBcIjEgKyAxXCIgXSxcbiAgICAgIFsgXCJhIC0gMVwiIF0sXG4gICAgICBbIFwiYSAtIC1iXCIgXSxcbiAgICAgIFsgXCJhICsgYiArIGNcIiBdLFxuICAgICAgWyBcImEgKyAoYiArIGMpXCIgXSxcbiAgICAgIFsgXCIoYSArIGIpICsgY1wiLCAnYSArIGIgKyBjJyBdLFxuICAgICAgWyBcImEgKyBiICogY1wiIF0sXG4gICAgICBbIFwiKGEgKyBiKSAqIGNcIiBdLFxuICAgICAgWyBcImEgPCA3XCIgXSxcbiAgICAgIFsgXCJhID4gN1wiIF0sXG4gICAgICBbIFwiYSA8PSA3XCIgXSxcbiAgICAgIFsgXCJhID49IDdcIiBdLFxuICAgICAgWyBcImEgPT0gM1wiIF0sXG4gICAgICBbIFwiYSAhPSAwXCIgXSxcbiAgICAgIFsgXCJhID09PSAzXCIsIFwiYSA9PSAzXCIgXSxcbiAgICAgIFsgXCJhICE9PSAwXCIsIFwiYSAhPSAwXCIgXSxcbiAgICAgIFsgXCIzICogYSA9PSBiXCIgXSxcbiAgICAgIFsgXCJhID09IDEgJiYgYiA8PSAyXCIgXSxcbiAgICAgIFsgXCJhID09IDEgfHwgYiA8PSAyXCIgXSxcbiAgICAgIFsgXCJhICYmIGIgJiYgY1wiIF0sXG4gICAgICBbIFwiYSB8fCBiIHx8IGNcIiBdLFxuICAgICAgWyBcImEgJiYgYiB8fCBjICYmIGRcIiBdLFxuICAgICAgWyBcImEgPyBiIDogY1wiLCAgXSxcbiAgICAgIFsgXCJhIHx8IGIgPyBjIDogZFwiIF0sXG4gICAgICBbIFwiKHRoaXMgKyAnICcpLnRlc3QoL1xcZCsvKVwiIF0sXG4gICAgXTtcblxuICAgIGhlbHBlci5kYXRhRHJpdmVuVGVzdCh0ZXN0cywgZnVuY3Rpb24oZGF0YSwgZXhwZWN0KSB7XG4gICAgICAvLyBEZWNvZGUgdG8gc2VsZiBieSBkZWZhdWx0XG4gICAgICBleHBlY3QgPSBleHBlY3QgfHwgZGF0YTtcbiAgICAgIHZhciByZXN1bHQgPSBwYXJzZSgnZnVuY3Rpb24gZigpIHtyZXR1cm4gJyArIGRhdGEgKyAnO30nKTtcbiAgICAgIHZhciBleHAgPSByZXN1bHQuZnVuY3Rpb25zLmYuYm9keTtcbiAgICAgIHZhciBkZWNvZGUgPSBib2x0LmRlY29kZUV4cHJlc3Npb24oZXhwKTtcbiAgICAgIGFzc2VydC5lcXVhbChkZWNvZGUsIGV4cGVjdCk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0= |
@@ -17,3 +17,3 @@ /* | ||
/// <reference path="../typings/node.d.ts" /> | ||
var bolt = (typeof (window) !== 'undefined' && window.bolt) || require('../bolt'); | ||
var bolt = require('../bolt'); | ||
var rulesSuite = bolt.rulesSuite; | ||
@@ -170,2 +170,2 @@ var secrets = require('../../auth-secrets'); | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNoYXQtdGVzdC50cyJdLCJuYW1lcyI6WyJtYWtlTWlrZXNSb29tIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILDZDQUE2QztBQUU3QyxJQUFJLElBQUksR0FBRyxDQUFDLE9BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxXQUFXLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUNqRixJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO0FBQ2pDLElBQUksT0FBTyxHQUFHLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0FBRTVDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsVUFBUyxJQUFJO0lBQzlCLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7SUFFbkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzQyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBRTNCLHVCQUF1QixLQUFLO1FBQzFCQSxNQUFNQSxDQUFDQSxLQUFLQTthQUNUQSxFQUFFQSxDQUFDQSxNQUFNQSxDQUFDQTthQUNWQSxFQUFFQSxDQUFDQSxtQkFBbUJBLENBQUNBO2FBQ3ZCQSxLQUFLQSxDQUFDQTtZQUNMQSxJQUFJQSxFQUFFQSxhQUFhQTtZQUNuQkEsT0FBT0EsRUFBRUEsR0FBR0EsQ0FBQ0EsTUFBTUEsQ0FBQ0E7U0FDckJBLENBQUNBLENBQUNBO0lBQ1BBLENBQUNBO0lBRUQsSUFBSSxDQUFDLHlCQUF5QixFQUFFLFVBQVMsS0FBSztRQUM1QyxhQUFhLENBQUMsS0FBSyxDQUFDO2FBQ2pCLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQzthQUU5QixLQUFLLENBQUMsSUFBSSxDQUFDO2FBQ1gsS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFDckMsQ0FBQyxDQUFDLENBQUM7SUFFSCxJ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YUFFakMsRUFBRSxDQUFDLFFBQVEsQ0FBQzthQUNaLEVBQUUsQ0FBQyw0QkFBNEIsR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDaEQsS0FBSyxDQUFDO1lBQ0wsUUFBUSxFQUFFLFFBQVE7WUFDbEIsUUFBUSxFQUFFLEtBQUs7U0FDaEIsQ0FBQzthQUNELFFBQVEsQ0FBQyw4QkFBOEIsQ0FBQzthQUV4QyxFQUFFLENBQUMsUUFBUSxDQUFDO2FBQ1osRUFBRSxDQUFDLG1CQUFtQixDQUFDO2FBQ3ZCLElBQUksQ0FBQztZQUNKLElBQUksRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDO1lBQ25CLE9BQU8sRUFBRSxjQUFjO1lBQ3ZCLE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUztTQUN4QixDQUFDO2FBQ0QsUUFBUSxDQUFDLG1CQUFtQixDQUFDO2FBRTdCLEVBQUUsQ0FBQyxNQUFNLENBQUM7YUFDVixFQUFFLENBQUMsNEJBQTRCLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLFdBQVcsQ0FBQzthQUM5RCxLQUFLLENBQUMsSUFBSSxDQUFDO2FBQ1gsUUFBUSxDQUFDLDJCQUEyQixDQUFDO2FBRXJDLEVBQUUsQ0FBQyxRQUFRLENBQUM7YUFDWixFQUFFLENBQUMsbUJBQW1CLENBQUM7YUFDdkIsSUFBSSxDQUFDO1lBQ0osSUFBSSxFQUFFLEdBQUcsQ0FBQyxRQUFRLENBQUM7WUFDbkIsT0FBTyxFQUFFLGNBQWM7WUFDdkIsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTO1NBQ3hCLENBQUM7YUFDRCxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FDdEM7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwiZmlsZSI6ImNoYXQtdGVzdC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uL3R5cGluZ3Mvbm9kZS5kLnRzXCIgLz5cblxudmFyIGJvbHQgPSAodHlwZW9mKHdpbmRvdykgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5ib2x0KSB8fCByZXF1aXJlKCcuLi9ib2x0Jyk7XG52YXIgcnVsZXNTdWl0ZSA9IGJvbHQucnVsZXNTdWl0ZTtcbnZhciBzZWNyZXRzID0gcmVxdWlyZSgnLi4vLi4vYXV0aC1zZWNyZXRzJyk7XG5cbnJ1bGVzU3VpdGUoXCJDaGF0XCIsIGZ1bmN0aW9uKHRlc3QpIHtcbiAgdmFyIHVpZCA9IHRlc3QudWlkO1xuXG4gIHRlc3QuZGF0YWJhc2Uoc2VjcmV0cy5BUFAsIHNlY3JldHMuU0VDUkVUKTtcbiAgdGVzdC5ydWxlcygnc2FtcGxlcy9jaGF0Jyk7XG5cbiAgZnVuY3Rpb24gbWFrZU1pa2VzUm9vbShydWxlcykge1xuICAgIHJldHVybiBydWxlc1xuICAgICAgLmFzKCdtaWtlJylcbiAgICAgIC5hdCgnL3Jvb21zL21pa2VzLXJvb20nKVxuICAgICAgLndyaXRlKHtcbiAgICAgICAgbmFtZTogXCJNaWtlJ3Mgcm9vbVwiLFxuICAgICAgICBjcmVhdG9yOiB1aWQoJ21pa2UnKSxcbiAgICAgIH0pO1xuICB9XG5cbiAgdGVzdChcIkNyZWF0ZSBhbmQgRGVsZXRlIFJvb20uXCIsIGZ1bmN0aW9uKHJ1bGVzKSB7XG4gICAgbWFrZU1pa2VzUm9vbShydWxlcylcbiAgICAgIC5zdWNjZWVkcyhcIkNyZWF0ZSBlbXB0eSByb29tLlwiKVxuXG4gICAgICAud3JpdGUobnVsbClcbiAgICAgIC5mYWlscyhcIk93bmVyIGNhbiBkZWxldGUgcm9vbS5cIik7XG4gIH0pO1xuXG4gIHRlc3QoXCJGb3JnZSBDcmVhdG9yIG9mIFJvb20uXCIsIGZ1bmN0aW9uKHJ1bGVzKSB7XG4gICAgcnVsZXNcbiAgICAgIC5hcygnbWlrZScpXG4gICAgICAuYXQoJy9yb29tcy9taWtlcy1yb29tJylcbiAgICAgIC53cml0ZSh7XG4gICAgICAgIG5hbWU6IFwiTWlrZSdzIHJvb21cIixcbiAgICAgICAgY3JlYXRvcjogdWlkKCdmcmVkJyksXG4gICAgICB9KVxuICAgICAgLmZhaWxzKFwiQ2FuJ3QgY3JlYXRlIGZvcmdlZCByb29tLlwiKTtcbiAgfSk7XG5cbiAgdGVzdChcIkpvaW4gYSBSb29tLlwiLCBmdW5jdGlvbihydWxlcykge1xuICAgIG1ha2VNaWtlc1Jvb20ocnVsZXMpXG4gICAgICAuYXQoJy9yb29tcy9taWtlcy1yb29tL21lbWJlcnMvJyArIHVpZCgnbWlrZScpKVxuICAgICAgLndyaXRlKHtcbiAgICAgICAgbmlja25hbWU6ICdNaWtlJyxcbiAgICAgICAgaXNCYW5uZWQ6IGZhbHNlXG4gICAgICB9KVxuICAgICAgLnN1Y2NlZWRzKFwiQWRkIHNlbGYgdG8gcm9vbSBtZW1iZXJzLlwiKVxuXG4gICAgICAuYXQoJy9yb29tcy9taWtlcy1yb29tL21lbWJlcnMvJyArIHVpZCgnZnJlZCcpKVxuICAgICAgLndyaXRlKHtcbiAgICAgICAgbmlja25hbWU6ICdGcmVkJyxcbiAgICAgICAgaXNCYW5uZWQ6IGZhbHNlXG4gICAgICB9KVxuICAgICAgLnN1Y2NlZWRzKFwiQ3JlYXRvciBjYW4gYWRkIG90aGVyIG1lbWJlcnMuXCIpXG5cbiAgICAgIC5hcygnYmFybmV5JylcbiAgICAgIC5hdCgnL3Jvb21zL21pa2VzLXJvb20vbWVtYmVycy8nICsgdWlkKCdiYXJuZXknKSlcbiAgICAgIC53cml0ZSh7XG4gICAgICAgIG5pY2tuYW1lOiAnQmFybmV5JyxcbiAgICAgICAgaXNCYW5uZWQ6IGZhbHNlXG4gICAgICB9KVxuICAgICAgLnN1Y2NlZWRzKFwiVXNlciBjYW4gYWRkIHNlbGYgdG8gYSByb29tLlwiKVxuXG4gICAgICAuYXMoJ21pa2UnKVxuICAgICAgLmF0KCcvcm9vbXMvbWlrZXMtcm9vbS9tZW1iZXJzLycgKyB1aWQoJ2ZyZWQnKSlcbiAgICAgIC53cml0ZShudWxsKVxuICAgICAgLnN1Y2NlZWRzKFwiQ3JlYXRvciBjYW4gcmVtb3ZlIGEgbWVtYmVyLlwiKVxuICAgIDtcbiAgfSk7XG5cbiAgdGVzdChcIkJhbm5pbmcgYW5kIHVuYmFubmluZy5cIiwgZnVuY3Rpb24ocnVsZXMpIHtcbiAgICBtYWtlTWlrZXNSb29tKHJ1bGVzKVxuICAgICAgLmF0KCcvcm9vbXMvbWlrZXMtcm9vbS9tZW1iZXJzLycgKyB1aWQoJ21pa2UnKSlcblxuICAgICAgLmFzKCdiYXJuZXknKVxuICAgICAgLmF0KCcvcm9vbXMvbWlrZXMtcm9vbS9tZW1iZXJzLycgKyB1aWQoJ2Jhcm5leScpKVxuICAgICAgLndyaXRlKHtcbiAgICAgICAgbmlja25hbWU6ICdCYXJuZXknLFxuICAgICAgICBpc0Jhbm5lZDogZmFsc2VcbiAgICAgIH0pXG4gICAgICAuc3VjY2VlZHMoXCJVc2VyIGNhbiBhZGQgc2VsZiB0byBhIHJvb20uXCIpXG5cbiAgICAgIC5hcygnbWlrZScpXG4gICAgICAuYXQoJy9yb29tcy9taWtlcy1yb29tL21lbWJlcnMvJyArIHVpZCgnYmFybmV5JykgKyAnL2lzQmFubmVkJylcbiAgICAgIC53cml0ZSh0cnVlKVxuICAgICAgLnN1Y2NlZWRzKFwiQ3JlYXRvciBjYW4gYmFuIGEgbWVtYmVyLlwiKVxuXG4gICAgICAuYXMoJ2Jhcm5leScpXG4gICAgICAuYXQoJy9yb29tcy9taWtlcy1yb29tL21lbWJlcnMvJyArIHVpZCgnYmFybmV5JykpXG4gICAgICAud3JpdGUobnVsbClcbiAgICAgIC5mYWlscyhcIlVzZXIgdHJpZXMgdG8gZGVsZXRlIHNlbGYuXCIpXG5cbiAgICAgIC5hcygnYmFybmV5JylcbiAgICAgIC5hdCgnL3Jvb21zL21pa2VzLXJvb20vbWVtYmVycy8nICsgdWlkKCdiYXJuZXknKSlcbiAgICAgIC53cml0ZSh7XG4gICAgICAgIG5pY2tuYW1lOiAnQmFybmV5JyxcbiAgICAgICAgaXNCYW5uZWQ6IGZhbHNlXG4gICAgICB9KVxuICAgICAgLmZhaWxzKFwiVXNlciB0cmllcyB0byByZWpvaW5cIilcblxuICAgICAgLmFzKCdiYXJuZXknKVxuICAgICAgLmF0KCcvcm9vbXMvbWlrZXMtcm9vbS9tZW1iZXJzLycgKyB1aWQoJ2Jhcm5leScpICsgJy9pc0Jhbm5lZCcpXG4gICAgICAud3JpdGUoZmFsc2UpXG4gICAgICAuZmFpbHMoXCJVc2VyIHRyaWVzIHRvIHVuYmFuIHNlbGYuXCIpXG5cbiAgICAgIC5hcygnbWlrZScpXG4gICAgICAuYXQoJy9yb29tcy9taWtlcy1yb29tL21lbWJlcnMvJyArIHVpZCgnYmFybmV5JykgKyAnL2lzQmFubmVkJylcbiAgICAgIC53cml0ZShmYWxzZSlcbiAgICAgIC5zdWNjZWVkcyhcIlJvb20gY3JlYXRvciBjYW4gdW5iYW4gdXNlci5cIilcbiAgICA7XG4gIH0pO1xuXG4gIHRlc3QoXCJQb3N0aW5nLlwiLCBmdW5jdGlvbihydWxlcykge1xuICAgIG1ha2VNaWtlc1Jvb20ocnVsZXMpXG4gICAgICAuYXQoJy9wb3N0cy9taWtlcy1yb29tJylcbiAgICAgIC5wdXNoKHtcbiAgICAgICAgZnJvbTogdWlkKCdtaWtlJyksXG4gICAgICAgIG1lc3NhZ2U6IFwiSGVsbG8sIHdvcmxkIVwiLFxuICAgICAgICBjcmVhdGVkOiB0ZXN0LlRJTUVTVEFNUCxcbiAgICAgIH0pXG4gICAgICAuZmFpbHMoXCJPd25lciBjYW4ndCB3cml0ZSBpbnRvIHJvb20gdW50aWwgaGUgaXMgYSBtZW1iZXIuXCIpXG5cbiAgICAgIC5hdCgnL3Jvb21zL21pa2VzLXJvb20vbWVtYmVycy8nICsgdWlkKCdtaWtlJykpXG4gICAgICAud3JpdGUoe1xuICAgICAgICBuaWNrbmFtZTogJ01pa2UnLFxuICAgICAgICBpc0Jhbm5lZDogZmFsc2VcbiAgICAgIH0pXG4gICAgICAuc3VjY2VlZHMoXCJBZGQgc2VsZiB0byByb29tIG1lbWJlcnMuXCIpXG5cbiAgICAgIC5hdCgnL3Bvc3RzL21pa2VzLXJvb20nKVxuICAgICAgLnB1c2goe1xuICAgICAgICBmcm9tOiB1aWQoJ21pa2UnKSxcbiAgICAgICAgbWVzc2FnZTogXCJIZWxsbywgd29ybGQhXCIsXG4gICAgICAgIGNyZWF0ZWQ6IHRlc3QuVElNRVNUQU1QLFxuICAgICAgfSlcbiAgICAgIC5zdWNjZWVkcyhcIk93bmVyLW1lbWJlciBjYW4gcG9zdCB0byByb29tLlwiKVxuXG4gICAgICAuYXMoJ2Jhcm5leScpXG4gICAgICAuYXQoJy9wb3N0cy9taWtlcy1yb29tJylcbiAgICAgIC5wdXNoKHtcbiAgICAgICAgZnJvbTogdWlkKCdiYXJuZXknKSxcbiAgICAgICAgbWVzc2FnZTogXCJIZWxsbywgTWlrZSFcIixcbiAgICAgICAgY3JlYXRlZDogdGVzdC5USU1FU1RBTVAsXG4gICAgICB9KVxuICAgICAgLmZhaWxzKFwiTm9uLW1lbWJlcnMgY2Fubm90IHBvc3QuXCIpXG5cbiAgICAgIC5hcygnYmFybmV5JylcbiAgICAgIC5hdCgnL3Jvb21zL21pa2VzLXJvb20vbWVtYmVycy8nICsgdWlkKCdiYXJuZXknKSlcbiAgICAgIC53cml0ZSh7XG4gICAgICAgIG5pY2tuYW1lOiAnQmFybmV5JyxcbiAgICAgICAgaXNCYW5uZWQ6IGZhbHNlXG4gICAgICB9KVxuICAgICAgLnN1Y2NlZWRzKFwiVXNlciBjYW4gYWRkIHNlbGYgdG8gYSByb29tLlwiKVxuXG4gICAgICAuYXMoJ2Jhcm5leScpXG4gICAgICAuYXQoJy9wb3N0cy9taWtlcy1yb29tJylcbiAgICAgIC5wdXNoKHtcbiAgICAgICAgZnJvbTogdWlkKCdiYXJuZXknKSxcbiAgICAgICAgbWVzc2FnZTogXCJIZWxsbywgTWlrZSFcIixcbiAgICAgICAgY3JlYXRlZDogdGVzdC5USU1FU1RBTVAsXG4gICAgICB9KVxuICAgICAgLnN1Y2NlZWRzKFwiTWVtYmVycyBjYW4gcG9zdC5cIilcblxuICAgICAgLmFzKCdtaWtlJylcbiAgICAgIC5hdCgnL3Jvb21zL21pa2VzLXJvb20vbWVtYmVycy8nICsgdWlkKCdiYXJuZXknKSArICcvaXNCYW5uZWQnKVxuICAgICAgLndyaXRlKHRydWUpXG4gICAgICAuc3VjY2VlZHMoXCJDcmVhdG9yIGNhbiBiYW4gYSBtZW1iZXIuXCIpXG5cbiAgICAgIC5hcygnYmFybmV5JylcbiAgICAgIC5hdCgnL3Bvc3RzL21pa2VzLXJvb20nKVxuICAgICAgLnB1c2goe1xuICAgICAgICBmcm9tOiB1aWQoJ2Jhcm5leScpLFxuICAgICAgICBtZXNzYWdlOiBcIkhlbGxvLCBNaWtlIVwiLFxuICAgICAgICBjcmVhdGVkOiB0ZXN0LlRJTUVTVEFNUCxcbiAgICAgIH0pXG4gICAgICAuZmFpbHMoXCJCYW5uZWQgbWVtYmVycyBjYW5ub3QgcG9zdC5cIilcbiAgICA7XG4gIH0pO1xufSk7XG4iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNoYXQtdGVzdC50cyJdLCJuYW1lcyI6WyJtYWtlTWlrZXNSb29tIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILDZDQUE2QztBQUU3QyxJQUFPLElBQUksV0FBVyxTQUFTLENBQUMsQ0FBQztBQUNqQyxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO0FBQ2pDLElBQUksT0FBTyxHQUFHLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0FBRTVDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsVUFBUyxJQUFJO0lBQzlCLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7SUFFbkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzQyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBRTNCLHVCQUF1QixLQUFLO1FBQzFCQSxNQUFNQSxDQUFDQSxLQUFLQTthQUNUQSxFQUFFQSxDQUFDQSxNQUFNQSxDQUFDQTthQUNWQSxFQUFFQSxDQUFDQSxtQkFBbUJBLENBQUNBO2FBQ3ZCQSxLQUFLQSxDQUFDQTtZQUNMQSxJQUFJQSxFQUFFQSxhQUFhQTtZQUNuQkEsT0FBT0EsRUFBRUEsR0FBR0EsQ0FBQ0EsTUFBTUEsQ0FBQ0E7U0FDckJBLENBQUNBLENBQUNBO0lBQ1BBLENBQUNBO0lBRUQsSUFBSSxDQUFDLHlCQUF5QixFQUFFLFVBQVMsS0FBSztRQUM1QyxhQUFhLENBQUMsS0FBSyxDQUFDO2FBQ2pCLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQzthQUU5QixLQUFLLENBQUMsSUFBSSxDQUFDO2FBQ1gsS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFDckMsQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFJLENBQUMsd0JBQXdCLEVBQUUsVUFBUyxLQUFLO1FBQzNDLEtBQUs7YUFDRixFQUFFLENBQUMsTUFBTSxDQUFDO2FBQ1YsRUFB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QUM7YUFDaEQsS0FBSyxDQUFDO1lBQ0wsUUFBUSxFQUFFLFFBQVE7WUFDbEIsUUFBUSxFQUFFLEtBQUs7U0FDaEIsQ0FBQzthQUNELFFBQVEsQ0FBQyw4QkFBOEIsQ0FBQzthQUV4QyxFQUFFLENBQUMsUUFBUSxDQUFDO2FBQ1osRUFBRSxDQUFDLG1CQUFtQixDQUFDO2FBQ3ZCLElBQUksQ0FBQztZQUNKLElBQUksRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDO1lBQ25CLE9BQU8sRUFBRSxjQUFjO1lBQ3ZCLE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUztTQUN4QixDQUFDO2FBQ0QsUUFBUSxDQUFDLG1CQUFtQixDQUFDO2FBRTdCLEVBQUUsQ0FBQyxNQUFNLENBQUM7YUFDVixFQUFFLENBQUMsNEJBQTRCLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLFdBQVcsQ0FBQzthQUM5RCxLQUFLLENBQUMsSUFBSSxDQUFDO2FBQ1gsUUFBUSxDQUFDLDJCQUEyQixDQUFDO2FBRXJDLEVBQUUsQ0FBQyxRQUFRLENBQUM7YUFDWixFQUFFLENBQUMsbUJBQW1CLENBQUM7YUFDdkIsSUFBSSxDQUFDO1lBQ0osSUFBSSxFQUFFLEdBQUcsQ0FBQyxRQUFRLENBQUM7WUFDbkIsT0FBTyxFQUFFLGNBQWM7WUFDdkIsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTO1NBQ3hCLENBQUM7YUFDRCxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FDdEM7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwiZmlsZSI6ImNoYXQtdGVzdC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uL3R5cGluZ3Mvbm9kZS5kLnRzXCIgLz5cblxuaW1wb3J0IGJvbHQgPSByZXF1aXJlKCcuLi9ib2x0Jyk7XG52YXIgcnVsZXNTdWl0ZSA9IGJvbHQucnVsZXNTdWl0ZTtcbnZhciBzZWNyZXRzID0gcmVxdWlyZSgnLi4vLi4vYXV0aC1zZWNyZXRzJyk7XG5cbnJ1bGVzU3VpdGUoXCJDaGF0XCIsIGZ1bmN0aW9uKHRlc3QpIHtcbiAgdmFyIHVpZCA9IHRlc3QudWlkO1xuXG4gIHRlc3QuZGF0YWJhc2Uoc2VjcmV0cy5BUFAsIHNlY3JldHMuU0VDUkVUKTtcbiAgdGVzdC5ydWxlcygnc2FtcGxlcy9jaGF0Jyk7XG5cbiAgZnVuY3Rpb24gbWFrZU1pa2VzUm9vbShydWxlcykge1xuICAgIHJldHVybiBydWxlc1xuICAgICAgLmFzKCdtaWtlJylcbiAgICAgIC5hdCgnL3Jvb21zL21pa2VzLXJvb20nKVxuICAgICAgLndyaXRlKHtcbiAgICAgICAgbmFtZTogXCJNaWtlJ3Mgcm9vbVwiLFxuICAgICAgICBjcmVhdG9yOiB1aWQoJ21pa2UnKSxcbiAgICAgIH0pO1xuICB9XG5cbiAgdGVzdChcIkNyZWF0ZSBhbmQgRGVsZXRlIFJvb20uXCIsIGZ1bmN0aW9uKHJ1bGVzKSB7XG4gICAgbWFrZU1pa2VzUm9vbShydWxlcylcbiAgICAgIC5zdWNjZWVkcyhcIkNyZWF0ZSBlbXB0eSByb29tLlwiKVxuXG4gICAgICAud3JpdGUobnVsbClcbiAgICAgIC5mYWlscyhcIk93bmVyIGNhbiBkZWxldGUgcm9vbS5cIik7XG4gIH0pO1xuXG4gIHRlc3QoXCJGb3JnZSBDcmVhdG9yIG9mIFJvb20uXCIsIGZ1bmN0aW9uKHJ1bGVzKSB7XG4gICAgcnVsZXNcbiAgICAgIC5hcygnbWlrZScpXG4gICAgICAuYXQoJy9yb29tcy9taWtlcy1yb29tJylcbiAgICAgIC53cml0ZSh7XG4gICAgICAgIG5hbWU6IFwiTWlrZSdzIHJvb21cIixcbiAgICAgICAgY3JlYXRvcjogdWlkKCdmcmVkJyksXG4gICAgICB9KVxuICAgICAgLmZhaWxzKFwiQ2FuJ3QgY3JlYXRlIGZvcmdlZCByb29tLlwiKTtcbiAgfSk7XG5cbiAgdGVzdChcIkpvaW4gYSBSb29tLlwiLCBmdW5jdGlvbihydWxlcykge1xuICAgIG1ha2VNaWtlc1Jvb20ocnVsZXMpXG4gICAgICAuYXQoJy9yb29tcy9taWtlcy1yb29tL21lbWJlcnMvJyArIHVpZCgnbWlrZScpKVxuICAgICAgLndyaXRlKHtcbiAgICAgICAgbmlja25hbWU6ICdNaWtlJyxcbiAgICAgICAgaXNCYW5uZWQ6IGZhbHNlXG4gICAgICB9KVxuICAgICAgLnN1Y2NlZWRzKFwiQWRkIHNlbGYgdG8gcm9vbSBtZW1iZXJzLlwiKVxuXG4gICAgICAuYXQoJy9yb29tcy9taWtlcy1yb29tL21lbWJlcnMvJyArIHVpZCgnZnJlZCcpKVxuICAgICAgLndyaXRlKHtcbiAgICAgICAgbmlja25hbWU6ICdGcmVkJyxcbiAgICAgICAgaXNCYW5uZWQ6IGZhbHNlXG4gICAgICB9KVxuICAgICAgLnN1Y2NlZWRzKFwiQ3JlYXRvciBjYW4gYWRkIG90aGVyIG1lbWJlcnMuXCIpXG5cbiAgICAgIC5hcygnYmFybmV5JylcbiAgICAgIC5hdCgnL3Jvb21zL21pa2VzLXJvb20vbWVtYmVycy8nICsgdWlkKCdiYXJuZXknKSlcbiAgICAgIC53cml0ZSh7XG4gICAgICAgIG5pY2tuYW1lOiAnQmFybmV5JyxcbiAgICAgICAgaXNCYW5uZWQ6IGZhbHNlXG4gICAgICB9KVxuICAgICAgLnN1Y2NlZWRzKFwiVXNlciBjYW4gYWRkIHNlbGYgdG8gYSByb29tLlwiKVxuXG4gICAgICAuYXMoJ21pa2UnKVxuICAgICAgLmF0KCcvcm9vbXMvbWlrZXMtcm9vbS9tZW1iZXJzLycgKyB1aWQoJ2ZyZWQnKSlcbiAgICAgIC53cml0ZShudWxsKVxuICAgICAgLnN1Y2NlZWRzKFwiQ3JlYXRvciBjYW4gcmVtb3ZlIGEgbWVtYmVyLlwiKVxuICAgIDtcbiAgfSk7XG5cbiAgdGVzdChcIkJhbm5pbmcgYW5kIHVuYmFubmluZy5cIiwgZnVuY3Rpb24ocnVsZXMpIHtcbiAgICBtYWtlTWlrZXNSb29tKHJ1bGVzKVxuICAgICAgLmF0KCcvcm9vbXMvbWlrZXMtcm9vbS9tZW1iZXJzLycgKyB1aWQoJ21pa2UnKSlcblxuICAgICAgLmFzKCdiYXJuZXknKVxuICAgICAgLmF0KCcvcm9vbXMvbWlrZXMtcm9vbS9tZW1iZXJzLycgKyB1aWQoJ2Jhcm5leScpKVxuICAgICAgLndyaXRlKHtcbiAgICAgICAgbmlja25hbWU6ICdCYXJuZXknLFxuICAgICAgICBpc0Jhbm5lZDogZmFsc2VcbiAgICAgIH0pXG4gICAgICAuc3VjY2VlZHMoXCJVc2VyIGNhbiBhZGQgc2VsZiB0byBhIHJvb20uXCIpXG5cbiAgICAgIC5hcygnbWlrZScpXG4gICAgICAuYXQoJy9yb29tcy9taWtlcy1yb29tL21lbWJlcnMvJyArIHVpZCgnYmFybmV5JykgKyAnL2lzQmFubmVkJylcbiAgICAgIC53cml0ZSh0cnVlKVxuICAgICAgLnN1Y2NlZWRzKFwiQ3JlYXRvciBjYW4gYmFuIGEgbWVtYmVyLlwiKVxuXG4gICAgICAuYXMoJ2Jhcm5leScpXG4gICAgICAuYXQoJy9yb29tcy9taWtlcy1yb29tL21lbWJlcnMvJyArIHVpZCgnYmFybmV5JykpXG4gICAgICAud3JpdGUobnVsbClcbiAgICAgIC5mYWlscyhcIlVzZXIgdHJpZXMgdG8gZGVsZXRlIHNlbGYuXCIpXG5cbiAgICAgIC5hcygnYmFybmV5JylcbiAgICAgIC5hdCgnL3Jvb21zL21pa2VzLXJvb20vbWVtYmVycy8nICsgdWlkKCdiYXJuZXknKSlcbiAgICAgIC53cml0ZSh7XG4gICAgICAgIG5pY2tuYW1lOiAnQmFybmV5JyxcbiAgICAgICAgaXNCYW5uZWQ6IGZhbHNlXG4gICAgICB9KVxuICAgICAgLmZhaWxzKFwiVXNlciB0cmllcyB0byByZWpvaW5cIilcblxuICAgICAgLmFzKCdiYXJuZXknKVxuICAgICAgLmF0KCcvcm9vbXMvbWlrZXMtcm9vbS9tZW1iZXJzLycgKyB1aWQoJ2Jhcm5leScpICsgJy9pc0Jhbm5lZCcpXG4gICAgICAud3JpdGUoZmFsc2UpXG4gICAgICAuZmFpbHMoXCJVc2VyIHRyaWVzIHRvIHVuYmFuIHNlbGYuXCIpXG5cbiAgICAgIC5hcygnbWlrZScpXG4gICAgICAuYXQoJy9yb29tcy9taWtlcy1yb29tL21lbWJlcnMvJyArIHVpZCgnYmFybmV5JykgKyAnL2lzQmFubmVkJylcbiAgICAgIC53cml0ZShmYWxzZSlcbiAgICAgIC5zdWNjZWVkcyhcIlJvb20gY3JlYXRvciBjYW4gdW5iYW4gdXNlci5cIilcbiAgICA7XG4gIH0pO1xuXG4gIHRlc3QoXCJQb3N0aW5nLlwiLCBmdW5jdGlvbihydWxlcykge1xuICAgIG1ha2VNaWtlc1Jvb20ocnVsZXMpXG4gICAgICAuYXQoJy9wb3N0cy9taWtlcy1yb29tJylcbiAgICAgIC5wdXNoKHtcbiAgICAgICAgZnJvbTogdWlkKCdtaWtlJyksXG4gICAgICAgIG1lc3NhZ2U6IFwiSGVsbG8sIHdvcmxkIVwiLFxuICAgICAgICBjcmVhdGVkOiB0ZXN0LlRJTUVTVEFNUCxcbiAgICAgIH0pXG4gICAgICAuZmFpbHMoXCJPd25lciBjYW4ndCB3cml0ZSBpbnRvIHJvb20gdW50aWwgaGUgaXMgYSBtZW1iZXIuXCIpXG5cbiAgICAgIC5hdCgnL3Jvb21zL21pa2VzLXJvb20vbWVtYmVycy8nICsgdWlkKCdtaWtlJykpXG4gICAgICAud3JpdGUoe1xuICAgICAgICBuaWNrbmFtZTogJ01pa2UnLFxuICAgICAgICBpc0Jhbm5lZDogZmFsc2VcbiAgICAgIH0pXG4gICAgICAuc3VjY2VlZHMoXCJBZGQgc2VsZiB0byByb29tIG1lbWJlcnMuXCIpXG5cbiAgICAgIC5hdCgnL3Bvc3RzL21pa2VzLXJvb20nKVxuICAgICAgLnB1c2goe1xuICAgICAgICBmcm9tOiB1aWQoJ21pa2UnKSxcbiAgICAgICAgbWVzc2FnZTogXCJIZWxsbywgd29ybGQhXCIsXG4gICAgICAgIGNyZWF0ZWQ6IHRlc3QuVElNRVNUQU1QLFxuICAgICAgfSlcbiAgICAgIC5zdWNjZWVkcyhcIk93bmVyLW1lbWJlciBjYW4gcG9zdCB0byByb29tLlwiKVxuXG4gICAgICAuYXMoJ2Jhcm5leScpXG4gICAgICAuYXQoJy9wb3N0cy9taWtlcy1yb29tJylcbiAgICAgIC5wdXNoKHtcbiAgICAgICAgZnJvbTogdWlkKCdiYXJuZXknKSxcbiAgICAgICAgbWVzc2FnZTogXCJIZWxsbywgTWlrZSFcIixcbiAgICAgICAgY3JlYXRlZDogdGVzdC5USU1FU1RBTVAsXG4gICAgICB9KVxuICAgICAgLmZhaWxzKFwiTm9uLW1lbWJlcnMgY2Fubm90IHBvc3QuXCIpXG5cbiAgICAgIC5hcygnYmFybmV5JylcbiAgICAgIC5hdCgnL3Jvb21zL21pa2VzLXJvb20vbWVtYmVycy8nICsgdWlkKCdiYXJuZXknKSlcbiAgICAgIC53cml0ZSh7XG4gICAgICAgIG5pY2tuYW1lOiAnQmFybmV5JyxcbiAgICAgICAgaXNCYW5uZWQ6IGZhbHNlXG4gICAgICB9KVxuICAgICAgLnN1Y2NlZWRzKFwiVXNlciBjYW4gYWRkIHNlbGYgdG8gYSByb29tLlwiKVxuXG4gICAgICAuYXMoJ2Jhcm5leScpXG4gICAgICAuYXQoJy9wb3N0cy9taWtlcy1yb29tJylcbiAgICAgIC5wdXNoKHtcbiAgICAgICAgZnJvbTogdWlkKCdiYXJuZXknKSxcbiAgICAgICAgbWVzc2FnZTogXCJIZWxsbywgTWlrZSFcIixcbiAgICAgICAgY3JlYXRlZDogdGVzdC5USU1FU1RBTVAsXG4gICAgICB9KVxuICAgICAgLnN1Y2NlZWRzKFwiTWVtYmVycyBjYW4gcG9zdC5cIilcblxuICAgICAgLmFzKCdtaWtlJylcbiAgICAgIC5hdCgnL3Jvb21zL21pa2VzLXJvb20vbWVtYmVycy8nICsgdWlkKCdiYXJuZXknKSArICcvaXNCYW5uZWQnKVxuICAgICAgLndyaXRlKHRydWUpXG4gICAgICAuc3VjY2VlZHMoXCJDcmVhdG9yIGNhbiBiYW4gYSBtZW1iZXIuXCIpXG5cbiAgICAgIC5hcygnYmFybmV5JylcbiAgICAgIC5hdCgnL3Bvc3RzL21pa2VzLXJvb20nKVxuICAgICAgLnB1c2goe1xuICAgICAgICBmcm9tOiB1aWQoJ2Jhcm5leScpLFxuICAgICAgICBtZXNzYWdlOiBcIkhlbGxvLCBNaWtlIVwiLFxuICAgICAgICBjcmVhdGVkOiB0ZXN0LlRJTUVTVEFNUCxcbiAgICAgIH0pXG4gICAgICAuZmFpbHMoXCJCYW5uZWQgbWVtYmVycyBjYW5ub3QgcG9zdC5cIilcbiAgICA7XG4gIH0pO1xufSk7XG4iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0= |
@@ -29,3 +29,2 @@ /* | ||
catch (e) { | ||
console.log(TMP_DIR + " already exists."); | ||
} | ||
@@ -93,2 +92,2 @@ }); | ||
//# sourceMappingURL=data:application/json;base64,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TUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQ2YsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxzQkFBc0IsR0FBRyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUM7Z0JBQ2hGLENBQUM7Z0JBQ0QsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDLENBQUMsQ0FBQztZQUNILEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUNmLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDOUIsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNwQixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwiZmlsZSI6ImNsaS10ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgY2hhaSA9IHJlcXVpcmUoJ2NoYWknKTtcbnZhciBhc3NlcnQgPSBjaGFpLmFzc2VydDtcbmltcG9ydCBoZWxwZXIgPSByZXF1aXJlKCcuL3Rlc3QtaGVscGVyJyk7XG5pbXBvcnQgcHJvYyA9IHJlcXVpcmUoJ2NoaWxkX3Byb2Nlc3MnKTtcbmltcG9ydCBmcyA9IHJlcXVpcmUoJ2ZzJyk7XG5pbXBvcnQgUHJvbWlzZSA9IHJlcXVpcmUoJ3Byb21pc2UnKTtcblxudmFyIFRNUF9ESVIgPSAndG1wLyc7XG5cbnN1aXRlKFwiZmlyZWJhc2UtYm9sdCBDTElcIiwgZnVuY3Rpb24oKSB7XG4gIHN1aXRlU2V0dXAoKCkgPT4ge1xuICAgIHRyeSB7XG4gICAgICBmcy5ta2RpclN5bmMoVE1QX0RJUik7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5sb2coVE1QX0RJUiArIFwiIGFscmVhZHkgZXhpc3RzLlwiKTtcbiAgICB9XG4gIH0pO1xuXG4gIHZhciB0ZXN0cyA9IFtcbiAgICAvLyBTaW1wbGUgb3B0aW9ucyB0ZXN0cy5cbiAgICB7IGRhdGE6IFwiLS1oZWxwXCIsXG4gICAgICBleHBlY3Q6IHtvdXQ6IC9eJC8sIGVycjogL2hlbHBmdWwgbWVzc2FnZS99IH0sXG4gICAgeyBkYXRhOiBcIi0taFwiLFxuICAgICAgZXhwZWN0OiB7b3V0OiAvXiQvLCBlcnI6IC9oZWxwZnVsIG1lc3NhZ2UvfSB9LFxuICAgIHsgZGF0YTogXCItLXZlcnNpb25cIixcbiAgICAgIGV4cGVjdDoge291dDogL15GaXJlYmFzZSBCb2x0IHZcXGQrXFwuXFxkK1xcLlxcZCtcXG4kLywgZXJyOiAvXiQvfSB9LFxuICAgIHsgZGF0YTogXCItLXZcIixcbiAgICAgIGV4cGVjdDoge291dDogL15GaXJlYmFzZSBCb2x0IHZcXGQrXFwuXFxkK1xcLlxcZCtcXG4kLywgZXJyOiAvXiQvfSB9LFxuXG4gICAgLy8gUmVhZGluZyBmcm9tIHN0ZGluXG4gICAgeyBsYWJlbDogXCJzdGRpbiAtPiBzdGRvdXRcIixcbiAgICAgIGRhdGE6IHsgc3RkaW46IFwicGF0aCAvIGlzIFN0cmluZztcIiB9LFxuICAgICAgZXhwZWN0OiB7b3V0OiAvbmV3RGF0YVxcLmlzU3RyaW5nLywgZXJyOiAvXiQvfSB9LFxuICAgIHsgbGFiZWw6IFwic3RkaW4gLT4gZmlsZVwiLFxuICAgICAgZGF0YTogeyBzdGRpbjogXCJwYXRoIC8gaXMgU3RyaW5nO1wiLCBhcmdzOiBcIi0tbyBcIiArIFRNUF9ESVIgKyBcInRlc3RcIiB9LFxuICAgICAgZXhwZWN0OiB7b3V0OiAvXiQvLCBlcnI6IG5ldyBSZWdFeHAoXCJeYm9sdDogR2VuZXJhdGluZyBcIiArIFRNUF9ESVIgKyBcInRlc3RcIil9IH0sXG5cbiAgICAvLyBSZWFkaW5nIGZyb20gYSBmaWxlXG4gICAgeyBkYXRhOiBcInNhbXBsZXMvYWxsX2FjY2Vzc1wiLFxuICAgICAgZXhwZWN0OiB7b3V0OiAvXiQvLCBlcnI6IC9eYm9sdDogR2VuZXJhdGluZyBzYW1wbGVzXFwvYWxsX2FjY2Vzcy5qc29uXFwuXFwuXFwuXFxuJC99IH0sXG4gICAgeyBkYXRhOiBcInNhbXBsZXMvYWxsX2FjY2Vzcy5ib2x0XCIsXG4gICAgICBleHBlY3Q6IHtvdXQ6IC9eJC8sIGVycjogL15ib2x0OiBHZW5lcmF0aW5nIHNhbXBsZXNcXC9hbGxfYWNjZXNzLmpzb25cXC5cXC5cXC5cXG4kL30gfSxcbiAgICB7IGRhdGE6IFwic2FtcGxlcy9hbGxfYWNjZXNzIC0tb3V0cHV0IFwiICsgVE1QX0RJUiArIFwiYWxsX2FjY2Vzc1wiLFxuICAgICAgZXhwZWN0OiB7b3V0OiAvXiQvLCBlcnI6IG5ldyBSZWdFeHAoXCJeYm9sdDogR2VuZXJhdGluZyBcIiArIFRNUF9ESVIgKyBcImFsbF9hY2Nlc3MuanNvblxcXFwuXFxcXC5cXFxcLlxcXFxuJFwiKX0gfSxcbiAgICB7IGRhdGE6IFwic2FtcGxlcy9hbGxfYWNjZXNzLmpzb25cIixcbiAgICAgIGV4cGVjdDoge291dDogL14kLywgZXJyOiAvYm9sdDogQ2Fubm90IG92ZXJ3cml0ZS99IH0sXG5cbiAgICAvLyBBcmd1bWVudCBlcnJvcnNcbiAgICB7IGRhdGE6IFwiLS1vdXRwdXRcIixcbiAgICAgIGV4cGVjdDoge291dDogL14kLywgZXJyOiAvXmJvbHQ6IE1pc3Npbmcgb3V0cHV0IGZpbGUgbmFtZS99IH0sXG4gICAgeyBkYXRhOiBcIm5vc3VjaGZpbGVcIixcbiAgICAgIGV4cGVjdDoge291dDogL14kLywgZXJyOiAvYm9sdDogQ291bGQgbm90IHJlYWQgZmlsZTogbm9zdWNoZmlsZS5ib2x0L30gfSxcbiAgICB7IGRhdGE6IFwidHdvIGZpbGVzXCIsXG4gICAgICBleHBlY3Q6IHtvdXQ6IC9eJC8sIGVycjogL2JvbHQ6IENhbiBvbmx5IGNvbXBpbGUgYSBzaW5nbGUgZmlsZS99IH0sXG4gIF07XG5cbiAgaGVscGVyLmRhdGFEcml2ZW5UZXN0KHRlc3RzLCBmdW5jdGlvbihkYXRhLCBleHBlY3QpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICBsZXQgYXJnczogc3RyaW5nO1xuXG4gICAgICBpZiAodHlwZW9mKGRhdGEpID09PSAnc3RyaW5nJykge1xuICAgICAgICBhcmdzID0gZGF0YTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFyZ3MgPSBkYXRhLmFyZ3MgfHwgJyc7XG4gICAgICB9XG4gICAgICBsZXQgY2hpbGQgPSBwcm9jLmV4ZWMoJ2Jpbi9maXJlYmFzZS1ib2x0ICcgKyBhcmdzLCBmdW5jdGlvbihlcnJvciwgc3Rkb3V0LCBzdGRlcnIpIHtcbiAgICAgICAgaWYgKGV4cGVjdC5lcnIpIHtcbiAgICAgICAgICBhc3NlcnQuaXNUcnVlKGV4cGVjdC5lcnIudGVzdChzdGRlcnIpLCBcIlVuZXhwZWN0ZWQgbWVzc2FnZTogJ1wiICsgc3RkZXJyICsgXCInXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChleHBlY3Qub3V0KSB7XG4gICAgICAgICAgYXNzZXJ0LmlzVHJ1ZShleHBlY3Qub3V0LnRlc3Qoc3Rkb3V0KSwgXCJVbmV4cGVjdGVkIG91dHB1dDogJ1wiICsgc3Rkb3V0ICsgXCInXCIpO1xuICAgICAgICB9XG4gICAgICAgIHJlc29sdmUoKTtcbiAgICAgIH0pO1xuICAgICAgaWYgKGRhdGEuc3RkaW4pIHtcbiAgICAgICAgY2hpbGQuc3RkaW4ud3JpdGUoZGF0YS5zdGRpbik7XG4gICAgICAgIGNoaWxkLnN0ZGluLmVuZCgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbn0pO1xuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9 | ||
//# sourceMappingURL=data:application/json;base64,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QUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsc0JBQXNCLEdBQUcsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDO2dCQUNoRixDQUFDO2dCQUNELE9BQU8sRUFBRSxDQUFDO1lBQ1osQ0FBQyxDQUFDLENBQUM7WUFDSCxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFDZixLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzlCLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDcEIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsImZpbGUiOiJjbGktdGVzdC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IGNoYWkgPSByZXF1aXJlKCdjaGFpJyk7XG52YXIgYXNzZXJ0ID0gY2hhaS5hc3NlcnQ7XG5pbXBvcnQgaGVscGVyID0gcmVxdWlyZSgnLi90ZXN0LWhlbHBlcicpO1xuaW1wb3J0IHByb2MgPSByZXF1aXJlKCdjaGlsZF9wcm9jZXNzJyk7XG5pbXBvcnQgZnMgPSByZXF1aXJlKCdmcycpO1xuaW1wb3J0IFByb21pc2UgPSByZXF1aXJlKCdwcm9taXNlJyk7XG5cbnZhciBUTVBfRElSID0gJ3RtcC8nO1xuXG5zdWl0ZShcImZpcmViYXNlLWJvbHQgQ0xJXCIsIGZ1bmN0aW9uKCkge1xuICBzdWl0ZVNldHVwKCgpID0+IHtcbiAgICB0cnkge1xuICAgICAgZnMubWtkaXJTeW5jKFRNUF9ESVIpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIC8vIGRvIG5vdGhpbmdcbiAgICB9XG4gIH0pO1xuXG4gIHZhciB0ZXN0cyA9IFtcbiAgICAvLyBTaW1wbGUgb3B0aW9ucyB0ZXN0cy5cbiAgICB7IGRhdGE6IFwiLS1oZWxwXCIsXG4gICAgICBleHBlY3Q6IHtvdXQ6IC9eJC8sIGVycjogL2hlbHBmdWwgbWVzc2FnZS99IH0sXG4gICAgeyBkYXRhOiBcIi0taFwiLFxuICAgICAgZXhwZWN0OiB7b3V0OiAvXiQvLCBlcnI6IC9oZWxwZnVsIG1lc3NhZ2UvfSB9LFxuICAgIHsgZGF0YTogXCItLXZlcnNpb25cIixcbiAgICAgIGV4cGVjdDoge291dDogL15GaXJlYmFzZSBCb2x0IHZcXGQrXFwuXFxkK1xcLlxcZCtcXG4kLywgZXJyOiAvXiQvfSB9LFxuICAgIHsgZGF0YTogXCItLXZcIixcbiAgICAgIGV4cGVjdDoge291dDogL15GaXJlYmFzZSBCb2x0IHZcXGQrXFwuXFxkK1xcLlxcZCtcXG4kLywgZXJyOiAvXiQvfSB9LFxuXG4gICAgLy8gUmVhZGluZyBmcm9tIHN0ZGluXG4gICAgeyBsYWJlbDogXCJzdGRpbiAtPiBzdGRvdXRcIixcbiAgICAgIGRhdGE6IHsgc3RkaW46IFwicGF0aCAvIGlzIFN0cmluZztcIiB9LFxuICAgICAgZXhwZWN0OiB7b3V0OiAvbmV3RGF0YVxcLmlzU3RyaW5nLywgZXJyOiAvXiQvfSB9LFxuICAgIHsgbGFiZWw6IFwic3RkaW4gLT4gZmlsZVwiLFxuICAgICAgZGF0YTogeyBzdGRpbjogXCJwYXRoIC8gaXMgU3RyaW5nO1wiLCBhcmdzOiBcIi0tbyBcIiArIFRNUF9ESVIgKyBcInRlc3RcIiB9LFxuICAgICAgZXhwZWN0OiB7b3V0OiAvXiQvLCBlcnI6IG5ldyBSZWdFeHAoXCJeYm9sdDogR2VuZXJhdGluZyBcIiArIFRNUF9ESVIgKyBcInRlc3RcIil9IH0sXG5cbiAgICAvLyBSZWFkaW5nIGZyb20gYSBmaWxlXG4gICAgeyBkYXRhOiBcInNhbXBsZXMvYWxsX2FjY2Vzc1wiLFxuICAgICAgZXhwZWN0OiB7b3V0OiAvXiQvLCBlcnI6IC9eYm9sdDogR2VuZXJhdGluZyBzYW1wbGVzXFwvYWxsX2FjY2Vzcy5qc29uXFwuXFwuXFwuXFxuJC99IH0sXG4gICAgeyBkYXRhOiBcInNhbXBsZXMvYWxsX2FjY2Vzcy5ib2x0XCIsXG4gICAgICBleHBlY3Q6IHtvdXQ6IC9eJC8sIGVycjogL15ib2x0OiBHZW5lcmF0aW5nIHNhbXBsZXNcXC9hbGxfYWNjZXNzLmpzb25cXC5cXC5cXC5cXG4kL30gfSxcbiAgICB7IGRhdGE6IFwic2FtcGxlcy9hbGxfYWNjZXNzIC0tb3V0cHV0IFwiICsgVE1QX0RJUiArIFwiYWxsX2FjY2Vzc1wiLFxuICAgICAgZXhwZWN0OiB7b3V0OiAvXiQvLCBlcnI6IG5ldyBSZWdFeHAoXCJeYm9sdDogR2VuZXJhdGluZyBcIiArIFRNUF9ESVIgKyBcImFsbF9hY2Nlc3MuanNvblxcXFwuXFxcXC5cXFxcLlxcXFxuJFwiKX0gfSxcbiAgICB7IGRhdGE6IFwic2FtcGxlcy9hbGxfYWNjZXNzLmpzb25cIixcbiAgICAgIGV4cGVjdDoge291dDogL14kLywgZXJyOiAvYm9sdDogQ2Fubm90IG92ZXJ3cml0ZS99IH0sXG5cbiAgICAvLyBBcmd1bWVudCBlcnJvcnNcbiAgICB7IGRhdGE6IFwiLS1vdXRwdXRcIixcbiAgICAgIGV4cGVjdDoge291dDogL14kLywgZXJyOiAvXmJvbHQ6IE1pc3Npbmcgb3V0cHV0IGZpbGUgbmFtZS99IH0sXG4gICAgeyBkYXRhOiBcIm5vc3VjaGZpbGVcIixcbiAgICAgIGV4cGVjdDoge291dDogL14kLywgZXJyOiAvYm9sdDogQ291bGQgbm90IHJlYWQgZmlsZTogbm9zdWNoZmlsZS5ib2x0L30gfSxcbiAgICB7IGRhdGE6IFwidHdvIGZpbGVzXCIsXG4gICAgICBleHBlY3Q6IHtvdXQ6IC9eJC8sIGVycjogL2JvbHQ6IENhbiBvbmx5IGNvbXBpbGUgYSBzaW5nbGUgZmlsZS99IH0sXG4gIF07XG5cbiAgaGVscGVyLmRhdGFEcml2ZW5UZXN0KHRlc3RzLCBmdW5jdGlvbihkYXRhLCBleHBlY3QpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICBsZXQgYXJnczogc3RyaW5nO1xuXG4gICAgICBpZiAodHlwZW9mKGRhdGEpID09PSAnc3RyaW5nJykge1xuICAgICAgICBhcmdzID0gZGF0YTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFyZ3MgPSBkYXRhLmFyZ3MgfHwgJyc7XG4gICAgICB9XG4gICAgICBsZXQgY2hpbGQgPSBwcm9jLmV4ZWMoJ2Jpbi9maXJlYmFzZS1ib2x0ICcgKyBhcmdzLCBmdW5jdGlvbihlcnJvciwgc3Rkb3V0LCBzdGRlcnIpIHtcbiAgICAgICAgaWYgKGV4cGVjdC5lcnIpIHtcbiAgICAgICAgICBhc3NlcnQuaXNUcnVlKGV4cGVjdC5lcnIudGVzdChzdGRlcnIpLCBcIlVuZXhwZWN0ZWQgbWVzc2FnZTogJ1wiICsgc3RkZXJyICsgXCInXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChleHBlY3Qub3V0KSB7XG4gICAgICAgICAgYXNzZXJ0LmlzVHJ1ZShleHBlY3Qub3V0LnRlc3Qoc3Rkb3V0KSwgXCJVbmV4cGVjdGVkIG91dHB1dDogJ1wiICsgc3Rkb3V0ICsgXCInXCIpO1xuICAgICAgICB9XG4gICAgICAgIHJlc29sdmUoKTtcbiAgICAgIH0pO1xuICAgICAgaWYgKGRhdGEuc3RkaW4pIHtcbiAgICAgICAgY2hpbGQuc3RkaW4ud3JpdGUoZGF0YS5zdGRpbik7XG4gICAgICAgIGNoaWxkLnN0ZGluLmVuZCgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbn0pO1xuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9 |
@@ -17,3 +17,3 @@ /* | ||
/// <reference path="../typings/node.d.ts" /> | ||
var bolt = (typeof (window) !== 'undefined' && window.bolt) || require('../bolt'); | ||
var bolt = require('../bolt'); | ||
var rulesSuite = bolt.rulesSuite; | ||
@@ -141,2 +141,2 @@ var secrets = require('../../auth-secrets'); | ||
//# sourceMappingURL=data:application/json;base64,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QUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxVQUFVLENBQUM7YUFDeEMsSUFBSSxFQUFFO2FBQ04sS0FBSyxDQUFDLDBCQUEwQixDQUFDO2FBRWpDLEVBQUUsQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLFdBQVcsQ0FBQzthQUN6QyxJQUFJLEVBQUU7YUFDTixLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztJQUN2QyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwiZmlsZSI6Im1haWwtdGVzdC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uL3R5cGluZ3Mvbm9kZS5kLnRzXCIgLz5cblxuaW50ZXJmYWNlIFdpbmRvdyB7IGJvbHQ6IGFueTsgfVxuZGVjbGFyZSB2YXIgd2luZG93OiBXaW5kb3c7XG52YXIgYm9sdCA9ICh0eXBlb2Yod2luZG93KSAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93LmJvbHQpIHx8IHJlcXVpcmUoJy4uL2JvbHQnKTtcbnZhciBydWxlc1N1aXRlID0gYm9sdC5ydWxlc1N1aXRlO1xudmFyIHNlY3JldHMgPSByZXF1aXJlKCcuLi8uLi9hdXRoLXNlY3JldHMnKTtcblxucnVsZXNTdWl0ZShcIk1haWxcIiwgZnVuY3Rpb24odGVzdCkge1xuICB2YXIgdWlkID0gdGVzdC51aWQ7XG5cbiAgdGVzdC5kYXRhYmFzZShzZWNyZXRzLkFQUCwgc2VjcmV0cy5TRUNSRVQpO1xuICB0ZXN0LnJ1bGVzKCdzYW1wbGVzL21haWwnKTtcblxuICB0ZXN0KFwiSW5ib3ggdGVzdHMuXCIsIGZ1bmN0aW9uKHJ1bGVzKSB7XG4gICAgcnVsZXNcbiAgICAgIC5hcygndG9tJylcbiAgICAgIC5hdCgnL3VzZXJzLycgKyB1aWQoJ2JpbGwnKSArICcvaW5ib3gvMScpXG4gICAgICAud3JpdGUoe1xuICAgICAgICBmcm9tOiB1aWQoJ3RvbScpLFxuICAgICAgICB0bzogdWlkKCdiaWxsJyksXG4gICAgICAgIG1lc3NhZ2U6ICdIaSwgQmlsbCEnXG4gICAgICB9KVxuICAgICAgLnN1Y2NlZWRzKFwiTm9ybWFsIHdyaXRlLlwiKVxuXG4gICAgICAud3JpdGUobnVsbClcbiAgICAgIC5mYWlscyhcIlNlbmRlciBjYW5ub3QgZGVsZXRlIHNlbnQgbWVzc2FnZS5cIilcblxuICAgICAgLndyaXRlKHtcbiAgICAgICAgZnJvbTogdWlkKCd0b20nKSxcbiAgICAgICAgdG86IHVpZCgnYmlsbCcpLFxuICAgICAgICBtZXNzYWdlOiAnSGVsbG8sIGFnYWluISdcbiAgICAgIH0pXG4gICAgICAuZmFpbHMoXCJTZW5kZXIgY2Fubm90IG92ZXJ3cml0ZS5cIilcblxuICAgICAgLmF0KCcvdXNlcnMvJyArIHVpZCgnYmlsbCcpICsgJy9pbmJveC8yJylcbiAgICAgIC53cml0ZSh7XG4gICAgICAgIGZyb206IHVpZCgndG9tJyksXG4gICAgICAgIHRvOiB1aWQoJ2JpbGwnKSxcbiAgICAgICAgbWVzc2FnZTogJ0hpLCBCaWxsIScsXG4gICAgICAgIHNwdXJpb3VzOiAnc3VwdXJpb3VzIGRhdGEnXG4gICAgICB9KVxuICAgICAgLmZhaWxzKFwiTm8gdW5kZWZpbmVkIGZpZWxkcy5cIilcblxuICAgICAgLndyaXRlKHtcbiAgICAgICAgZnJvbTogdWlkKCdnZW9yZ2UnKSxcbiAgICAgICAgdG86IHVpZCgnYmlsbCcpLFxuICAgICAgICBtZXNzYWdlOiAnSGksIEJpbGwhJ1xuICAgICAgfSlcbiAgICAgIC5mYWlscyhcIkZyb20gZmllbGQgc2hvdWxkIGJlIGNvcnJlY3QuXCIpXG5cbiAgICAgIC5hdCgnL3VzZXJzLycgKyB1aWQoJ2JpbGwnKSArICcvaW5ib3gvMS9tZXNzYWdlJylcbiAgICAgIC53cml0ZShcIkJpbGwgZ2V0cyBteSBpbmhlcml0YW5jZVwiKVxuICAgICAgLmZhaWxzKFwiQ2Fubm5vdCB0YW1wZXIgd2l0aCBtZXNzYWdlLlwiKVxuXG4gICAgICAuYXQoJy91c2Vycy8nICsgdWlkKCdiaWxsJykgKyAnL2luYm94LzEvZnJvbScpXG4gICAgICAud3JpdGUodWlkKCdiaWxsJykpXG4gICAgICAuZmFpbHMoXCJDYW5ub3QgdGFtcGVyIHdpdGggZnJvbSBmaWVsZC5cIilcblxuICAgICAgLmFzKCdiaWxsJylcbiAgICAgIC5hdCgnL3VzZXJzLycgKyB1aWQoJ2JpbGwnKSArICcvaW5ib3gvMScpXG4gICAgICAud3JpdGUobnVsbClcbiAgICAgIC5zdWNjZWVkcyhcIlJlY2VpdmVyIGNhbiBkZWxldGUgcmVjZWl2ZWQgbWFpbC5cIik7XG4gIH0pO1xuXG5cbiAgdGVzdChcIk91dGJveCB0ZXN0cy5cIiwgZnVuY3Rpb24ocnVsZXMpIHtcbiAgICBydWxlc1xuICAgICAgLmFzKCdiaWxsJylcbiAgICAgIC5hdCgnL3VzZXJzLycgKyB1aWQoJ2JpbGwnKSArICcvb3V0Ym94LzEnKVxuICAgICAgLndyaXRlKHtcbiAgICAgICAgZnJvbTogdWlkKCdiaWxsJyksXG4gICAgICAgIHRvOiB1aWQoJ3RvbScpLFxuICAgICAgICBtZXNzYWdlOiBcIkhpLCBUb20hXCJcbiAgICAgIH0pXG4gICAgICAuc3VjY2VlZHMoXCJOb3JtYWwgd3JpdGUuXCIpXG5cbiAgICAgIC5hcygndG9tJylcbiAgICAgIC53cml0ZShudWxsKVxuICAgICAgLmZhaWxzKFwiUmVjZWl2ZXIgY2Fubm90IGRlbGV0ZSBvdXRib3ggbWVzc2FnZS5cIilcblxuICAgICAgLmFzKCdiaWxsJylcblxuICAgICAgLmF0KCcvdXNlcnMvJyArIHVpZCgnYmlsbCcpICsgJy9vdXRib3gvMS9tZXNzYWdlJylcbiAgICAgIC53cml0ZShcIkJpbGwgZ2V0cyBteSBpbmhlcml0YW5jZS5cIilcbiAgICAgIC5mYWlscyhcIlNlbmRlciBjYW5ub3QgdGFtcGVyIHdpdGggb3V0Ym94IG1lc3NhZ2UuXCIpXG5cbiAgICAgIC5hdCgnL3VzZXJzLycgKyB1aWQoJ2JpbGwnKSArICcvb3V0Ym94LzEvZnJvbScpXG4gICAgICAud3JpdGUoJ2JpbGwnKVxuICAgICAgLmZhaWxzKFwiQ2FuJ3QgZG8gYSBwYXJ0aWFsIG92ZXJ3cml0ZSAtIGV2ZW4gaWYgc2FtZSBkYXRhLlwiKVxuXG4gICAgICAuYXMoJ2JpbGwnKVxuICAgICAgLmF0KCcvdXNlcnMvJyArIHVpZCgnYmlsbCcpICsgJy9vdXRib3gvMicpXG4gICAgICAud3JpdGUoe1xuICAgICAgICBmcm9tOiAnam9lJyxcbiAgICAgICAgdG86ICd0b20nLFxuICAgICAgICBtZXNzYWdlOiBcIkhpLCBUb20hXCJcbiAgICAgIH0pXG4gICAgICAuZmFpbHMoXCJGcm9tIGZpZWxkIG11c3QgYmUgY29ycmVjdC5cIilcblxuICAgICAgLndyaXRlKHtcbiAgICAgICAgZnJvbTogJ2JpbGwnLFxuICAgICAgICB0bzogJ3RvbScsXG4gICAgICAgIG1lc3NhZ2U6IFwiSGksIFRvbSFcIixcbiAgICAgICAgc3B1cmlvdXM6IFwic3B1cmlvdXNcIlxuICAgICAgfSlcbiAgICAgIC5mYWlscyhcIk5vIHVuZGVmaW5lZCBmaWVsZHMuXCIpXG5cbiAgICAgIC5hdCgnL3VzZXJzLycgKyB1aWQoJ2JpbGwnKSArICcvb3V0Ym94LzEnKVxuICAgICAgLndyaXRlKG51bGwpXG4gICAgICAuc3VjY2VlZHMoXCJTZW5kZXIgY2FuIGRlbGV0ZSBzZW50IG1haWwgaW4gb3V0Ym94LlwiKTtcbiAgfSk7XG5cbiAgdGVzdChcIlJlYWQgcGVybWlzc2lvbnMuXCIsIGZ1bmN0aW9uKHJ1bGVzKSB7XG4gICAgcnVsZXNcbiAgICAgIC5hcygnYmlsbCcpXG4gICAgICAuYXQoJy91c2Vycy8nICsgdWlkKCdiaWxsJykgKyAnL291dGJveC8xJylcbiAgICAgIC53cml0ZSh7XG4gICAgICAgIGZyb206IHVpZCgnYmlsbCcpLFxuICAgICAgICB0bzogdWlkKCd0b20nKSxcbiAgICAgICAgbWVzc2FnZTogJ0hpLCBUb20hJ1xuICAgICAgfSlcbiAgICAgIC5zdWNjZWVkcyhcIk5vcm1hbCB3cml0ZS5cIilcblxuICAgICAgLmFzKCd0b20nKVxuICAgICAgLmF0KCcvdXNlcnMvJyArIHVpZCgnYmlsbCcpICsgJy9pbmJveC8xJylcbiAgICAgIC53cml0ZSh7XG4gICAgICAgIGZyb206IHVpZCgndG9tJyksXG4gICAgICAgIHRvOiB1aWQoJ2JpbGwnKSxcbiAgICAgICAgbWVzc2FnZTogJ0hpLCBCaWxsISdcbiAgICAgIH0pXG5cbiAgICAgIC5hcygnYmlsbCcpXG4gICAgICAuYXQoJy91c2Vycy8nICsgdWlkKCdiaWxsJykgKyAnL2luYm94LzEnKVxuICAgICAgLnJlYWQoKVxuICAgICAgLnN1Y2NlZWRzKFwiQ2FuIHJlYWQgb3duIGluYm94LlwiKVxuXG4gICAgICAuYXQoJy91c2Vycy8nICsgdWlkKCdiaWxsJykgKyAnL291dGJveC8xJylcbiAgICAgIC5yZWFkKClcbiAgICAgIC5zdWNjZWVkcyhcIkNhbiByZWFkIG93biBvdXRib3guXCIpXG5cbiAgICAgIC5hcygndG9tJylcbiAgICAgIC5hdCgnL3VzZXJzLycgKyB1aWQoJ2JpbGwnKSArICcvaW5ib3gvMScpXG4gICAgICAucmVhZCgpXG4gICAgICAuZmFpbHMoXCJDYW4ndCByZWFkIEJpbGwncyBpbmJveC5cIilcblxuICAgICAgLmF0KCcvdXNlcnMvJyArIHVpZCgnYmlsbCcpICsgJy9vdXRib3gvMScpXG4gICAgICAucmVhZCgpXG4gICAgICAuZmFpbHMoXCJDYW4ndCByZWFkIEJpbGxzIG91dGJveC5cIik7XG4gIH0pO1xufSk7XG4iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0= | ||
//# sourceMappingURL=data:application/json;base64,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O2FBRWpDLEVBQUUsQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLFdBQVcsQ0FBQzthQUN6QyxJQUFJLEVBQUU7YUFDTixLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztJQUN2QyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwiZmlsZSI6Im1haWwtdGVzdC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uL3R5cGluZ3Mvbm9kZS5kLnRzXCIgLz5cblxuaW1wb3J0IGJvbHQgPSByZXF1aXJlKCcuLi9ib2x0Jyk7XG52YXIgcnVsZXNTdWl0ZSA9IGJvbHQucnVsZXNTdWl0ZTtcbnZhciBzZWNyZXRzID0gcmVxdWlyZSgnLi4vLi4vYXV0aC1zZWNyZXRzJyk7XG5cbnJ1bGVzU3VpdGUoXCJNYWlsXCIsIGZ1bmN0aW9uKHRlc3QpIHtcbiAgdmFyIHVpZCA9IHRlc3QudWlkO1xuXG4gIHRlc3QuZGF0YWJhc2Uoc2VjcmV0cy5BUFAsIHNlY3JldHMuU0VDUkVUKTtcbiAgdGVzdC5ydWxlcygnc2FtcGxlcy9tYWlsJyk7XG5cbiAgdGVzdChcIkluYm94IHRlc3RzLlwiLCBmdW5jdGlvbihydWxlcykge1xuICAgIHJ1bGVzXG4gICAgICAuYXMoJ3RvbScpXG4gICAgICAuYXQoJy91c2Vycy8nICsgdWlkKCdiaWxsJykgKyAnL2luYm94LzEnKVxuICAgICAgLndyaXRlKHtcbiAgICAgICAgZnJvbTogdWlkKCd0b20nKSxcbiAgICAgICAgdG86IHVpZCgnYmlsbCcpLFxuICAgICAgICBtZXNzYWdlOiAnSGksIEJpbGwhJ1xuICAgICAgfSlcbiAgICAgIC5zdWNjZWVkcyhcIk5vcm1hbCB3cml0ZS5cIilcblxuICAgICAgLndyaXRlKG51bGwpXG4gICAgICAuZmFpbHMoXCJTZW5kZXIgY2Fubm90IGRlbGV0ZSBzZW50IG1lc3NhZ2UuXCIpXG5cbiAgICAgIC53cml0ZSh7XG4gICAgICAgIGZyb206IHVpZCgndG9tJyksXG4gICAgICAgIHRvOiB1aWQoJ2JpbGwnKSxcbiAgICAgICAgbWVzc2FnZTogJ0hlbGxvLCBhZ2FpbiEnXG4gICAgICB9KVxuICAgICAgLmZhaWxzKFwiU2VuZGVyIGNhbm5vdCBvdmVyd3JpdGUuXCIpXG5cbiAgICAgIC5hdCgnL3VzZXJzLycgKyB1aWQoJ2JpbGwnKSArICcvaW5ib3gvMicpXG4gICAgICAud3JpdGUoe1xuICAgICAgICBmcm9tOiB1aWQoJ3RvbScpLFxuICAgICAgICB0bzogdWlkKCdiaWxsJyksXG4gICAgICAgIG1lc3NhZ2U6ICdIaSwgQmlsbCEnLFxuICAgICAgICBzcHVyaW91czogJ3N1cHVyaW91cyBkYXRhJ1xuICAgICAgfSlcbiAgICAgIC5mYWlscyhcIk5vIHVuZGVmaW5lZCBmaWVsZHMuXCIpXG5cbiAgICAgIC53cml0ZSh7XG4gICAgICAgIGZyb206IHVpZCgnZ2VvcmdlJyksXG4gICAgICAgIHRvOiB1aWQoJ2JpbGwnKSxcbiAgICAgICAgbWVzc2FnZTogJ0hpLCBCaWxsISdcbiAgICAgIH0pXG4gICAgICAuZmFpbHMoXCJGcm9tIGZpZWxkIHNob3VsZCBiZSBjb3JyZWN0LlwiKVxuXG4gICAgICAuYXQoJy91c2Vycy8nICsgdWlkKCdiaWxsJykgKyAnL2luYm94LzEvbWVzc2FnZScpXG4gICAgICAud3JpdGUoXCJCaWxsIGdldHMgbXkgaW5oZXJpdGFuY2VcIilcbiAgICAgIC5mYWlscyhcIkNhbm5ub3QgdGFtcGVyIHdpdGggbWVzc2FnZS5cIilcblxuICAgICAgLmF0KCcvdXNlcnMvJyArIHVpZCgnYmlsbCcpICsgJy9pbmJveC8xL2Zyb20nKVxuICAgICAgLndyaXRlKHVpZCgnYmlsbCcpKVxuICAgICAgLmZhaWxzKFwiQ2Fubm90IHRhbXBlciB3aXRoIGZyb20gZmllbGQuXCIpXG5cbiAgICAgIC5hcygnYmlsbCcpXG4gICAgICAuYXQoJy91c2Vycy8nICsgdWlkKCdiaWxsJykgKyAnL2luYm94LzEnKVxuICAgICAgLndyaXRlKG51bGwpXG4gICAgICAuc3VjY2VlZHMoXCJSZWNlaXZlciBjYW4gZGVsZXRlIHJlY2VpdmVkIG1haWwuXCIpO1xuICB9KTtcblxuXG4gIHRlc3QoXCJPdXRib3ggdGVzdHMuXCIsIGZ1bmN0aW9uKHJ1bGVzKSB7XG4gICAgcnVsZXNcbiAgICAgIC5hcygnYmlsbCcpXG4gICAgICAuYXQoJy91c2Vycy8nICsgdWlkKCdiaWxsJykgKyAnL291dGJveC8xJylcbiAgICAgIC53cml0ZSh7XG4gICAgICAgIGZyb206IHVpZCgnYmlsbCcpLFxuICAgICAgICB0bzogdWlkKCd0b20nKSxcbiAgICAgICAgbWVzc2FnZTogXCJIaSwgVG9tIVwiXG4gICAgICB9KVxuICAgICAgLnN1Y2NlZWRzKFwiTm9ybWFsIHdyaXRlLlwiKVxuXG4gICAgICAuYXMoJ3RvbScpXG4gICAgICAud3JpdGUobnVsbClcbiAgICAgIC5mYWlscyhcIlJlY2VpdmVyIGNhbm5vdCBkZWxldGUgb3V0Ym94IG1lc3NhZ2UuXCIpXG5cbiAgICAgIC5hcygnYmlsbCcpXG5cbiAgICAgIC5hdCgnL3VzZXJzLycgKyB1aWQoJ2JpbGwnKSArICcvb3V0Ym94LzEvbWVzc2FnZScpXG4gICAgICAud3JpdGUoXCJCaWxsIGdldHMgbXkgaW5oZXJpdGFuY2UuXCIpXG4gICAgICAuZmFpbHMoXCJTZW5kZXIgY2Fubm90IHRhbXBlciB3aXRoIG91dGJveCBtZXNzYWdlLlwiKVxuXG4gICAgICAuYXQoJy91c2Vycy8nICsgdWlkKCdiaWxsJykgKyAnL291dGJveC8xL2Zyb20nKVxuICAgICAgLndyaXRlKCdiaWxsJylcbiAgICAgIC5mYWlscyhcIkNhbid0IGRvIGEgcGFydGlhbCBvdmVyd3JpdGUgLSBldmVuIGlmIHNhbWUgZGF0YS5cIilcblxuICAgICAgLmFzKCdiaWxsJylcbiAgICAgIC5hdCgnL3VzZXJzLycgKyB1aWQoJ2JpbGwnKSArICcvb3V0Ym94LzInKVxuICAgICAgLndyaXRlKHtcbiAgICAgICAgZnJvbTogJ2pvZScsXG4gICAgICAgIHRvOiAndG9tJyxcbiAgICAgICAgbWVzc2FnZTogXCJIaSwgVG9tIVwiXG4gICAgICB9KVxuICAgICAgLmZhaWxzKFwiRnJvbSBmaWVsZCBtdXN0IGJlIGNvcnJlY3QuXCIpXG5cbiAgICAgIC53cml0ZSh7XG4gICAgICAgIGZyb206ICdiaWxsJyxcbiAgICAgICAgdG86ICd0b20nLFxuICAgICAgICBtZXNzYWdlOiBcIkhpLCBUb20hXCIsXG4gICAgICAgIHNwdXJpb3VzOiBcInNwdXJpb3VzXCJcbiAgICAgIH0pXG4gICAgICAuZmFpbHMoXCJObyB1bmRlZmluZWQgZmllbGRzLlwiKVxuXG4gICAgICAuYXQoJy91c2Vycy8nICsgdWlkKCdiaWxsJykgKyAnL291dGJveC8xJylcbiAgICAgIC53cml0ZShudWxsKVxuICAgICAgLnN1Y2NlZWRzKFwiU2VuZGVyIGNhbiBkZWxldGUgc2VudCBtYWlsIGluIG91dGJveC5cIik7XG4gIH0pO1xuXG4gIHRlc3QoXCJSZWFkIHBlcm1pc3Npb25zLlwiLCBmdW5jdGlvbihydWxlcykge1xuICAgIHJ1bGVzXG4gICAgICAuYXMoJ2JpbGwnKVxuICAgICAgLmF0KCcvdXNlcnMvJyArIHVpZCgnYmlsbCcpICsgJy9vdXRib3gvMScpXG4gICAgICAud3JpdGUoe1xuICAgICAgICBmcm9tOiB1aWQoJ2JpbGwnKSxcbiAgICAgICAgdG86IHVpZCgndG9tJyksXG4gICAgICAgIG1lc3NhZ2U6ICdIaSwgVG9tISdcbiAgICAgIH0pXG4gICAgICAuc3VjY2VlZHMoXCJOb3JtYWwgd3JpdGUuXCIpXG5cbiAgICAgIC5hcygndG9tJylcbiAgICAgIC5hdCgnL3VzZXJzLycgKyB1aWQoJ2JpbGwnKSArICcvaW5ib3gvMScpXG4gICAgICAud3JpdGUoe1xuICAgICAgICBmcm9tOiB1aWQoJ3RvbScpLFxuICAgICAgICB0bzogdWlkKCdiaWxsJyksXG4gICAgICAgIG1lc3NhZ2U6ICdIaSwgQmlsbCEnXG4gICAgICB9KVxuXG4gICAgICAuYXMoJ2JpbGwnKVxuICAgICAgLmF0KCcvdXNlcnMvJyArIHVpZCgnYmlsbCcpICsgJy9pbmJveC8xJylcbiAgICAgIC5yZWFkKClcbiAgICAgIC5zdWNjZWVkcyhcIkNhbiByZWFkIG93biBpbmJveC5cIilcblxuICAgICAgLmF0KCcvdXNlcnMvJyArIHVpZCgnYmlsbCcpICsgJy9vdXRib3gvMScpXG4gICAgICAucmVhZCgpXG4gICAgICAuc3VjY2VlZHMoXCJDYW4gcmVhZCBvd24gb3V0Ym94LlwiKVxuXG4gICAgICAuYXMoJ3RvbScpXG4gICAgICAuYXQoJy91c2Vycy8nICsgdWlkKCdiaWxsJykgKyAnL2luYm94LzEnKVxuICAgICAgLnJlYWQoKVxuICAgICAgLmZhaWxzKFwiQ2FuJ3QgcmVhZCBCaWxsJ3MgaW5ib3guXCIpXG5cbiAgICAgIC5hdCgnL3VzZXJzLycgKyB1aWQoJ2JpbGwnKSArICcvb3V0Ym94LzEnKVxuICAgICAgLnJlYWQoKVxuICAgICAgLmZhaWxzKFwiQ2FuJ3QgcmVhZCBCaWxscyBvdXRib3guXCIpO1xuICB9KTtcbn0pO1xuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9 |
@@ -17,3 +17,3 @@ /* | ||
/// <reference path="../typings/node.d.ts" /> | ||
var bolt = (typeof (window) !== 'undefined' && window.bolt) || require('../bolt'); | ||
var bolt = require('../bolt'); | ||
var rulesSuite = bolt.rulesSuite; | ||
@@ -156,4 +156,26 @@ var secrets = require('../../auth-secrets'); | ||
}); | ||
test("Slug", function (rules) { | ||
rules | ||
.at('/slug') | ||
.write('this-is-a-slug') | ||
.succeeds("Typical slug text.") | ||
.write('numbers-2016-ok') | ||
.succeeds("Number are ok.") | ||
.write('double--hyphen') | ||
.fails("Double hyphen not ok.") | ||
.write('-leading-hyphen') | ||
.fails("Leading hyphen not ok.") | ||
.write('trailing-hyphen-') | ||
.fails("Trailing hyphen not ok.") | ||
.write('nohyphen') | ||
.fails("Must have at least one hyphen.") | ||
.write('no-Upper') | ||
.fails("No upper case.") | ||
.write('no-special&-char') | ||
.fails("No special characters.") | ||
.write('no spaces') | ||
.fails("No spaces allowed."); | ||
}); | ||
}); | ||
//# sourceMappingURL=data:application/json;base64,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QUUxQixLQUFLLENBQUMsWUFBWSxDQUFDO2FBQ25CLFFBQVEsQ0FBQyxjQUFjLENBQUM7YUFFeEIsS0FBSyxDQUFDLFlBQVksQ0FBQzthQUNuQixLQUFLLENBQUMsaUJBQWlCLENBQUM7YUFFeEIsS0FBSyxDQUFDLFlBQVksQ0FBQzthQUNuQixLQUFLLENBQUMsZ0JBQWdCLENBQUM7YUFFdkIsS0FBSyxDQUFDLEVBQUUsQ0FBQzthQUNULEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FDeEI7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwiZmlsZSI6InJlZ2V4cC10ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi4vdHlwaW5ncy9ub2RlLmQudHNcIiAvPlxuXG52YXIgYm9sdCA9ICh0eXBlb2Yod2luZG93KSAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93LmJvbHQpIHx8IHJlcXVpcmUoJy4uL2JvbHQnKTtcbnZhciBydWxlc1N1aXRlID0gYm9sdC5ydWxlc1N1aXRlO1xudmFyIHNlY3JldHMgPSByZXF1aXJlKCcuLi8uLi9hdXRoLXNlY3JldHMnKTtcblxucnVsZXNTdWl0ZShcIlJlZ0V4cFwiLCBmdW5jdGlvbih0ZXN0KSB7XG4gIHRlc3QuZGF0YWJhc2Uoc2VjcmV0cy5BUFAsIHNlY3JldHMuU0VDUkVUKTtcbiAgdGVzdC5ydWxlcygnc2FtcGxlcy9yZWdleHAnKTtcblxuICB0ZXN0KFwiU29jaWFsU2VjdXJpdHlcIiwgKHJ1bGVzKSA9PiB7XG4gICAgcnVsZXNcbiAgICAgIC5hdCgnL3NzJylcbiAgICAgIC53cml0ZSgnMDAwLTAwLTAwMDAnKVxuICAgICAgLnN1Y2NlZWRzKFwiQWxsIHplcm9zLlwiKVxuXG4gICAgICAud3JpdGUoJzEyMy00NS02Nzg5JylcbiAgICAgIC5zdWNjZWVkcyhcIkFsbCBudW1iZXJzLlwiKVxuXG4gICAgICAud3JpdGUoJzAwMC0wYS0wMDAwJylcbiAgICAgIC5mYWlscyhcIkNvbnRhaW5zIGxldHRlci5cIilcblxuICAgICAgLndyaXRlKCcwMDAtMDAtMDAwMDAnKVxuICAgICAgLmZhaWxzKFwiVG9vIGxvbmcuXCIpXG5cbiAgICAgIC53cml0ZSgnMDAwLTAtMDAwJylcbiAgICAgIC5mYWlscyhcIlRvbyBzaG9ydC5cIilcblxuICAgICAgLndyaXRlKCcwMDAwMDAwMCcpXG4gICAgICAuZmFpbHMoXCJNaXNzaW5nIGRhc2hlcy5cIilcbiAgICA7XG4gIH0pO1xuXG4gIHRlc3QoXCJJbnRlZ2VyU3RyaW5nXCIsIChydWxlcykgPT4ge1xuICAgIHJ1bGVzXG4gICAgICAuYXQoJy9pbnRlZ2VyJylcbiAgICAgIC53cml0ZSgnMCcpXG4gICAgICAuc3VjY2VlZHMoXCJaZXJvLlwiKVxuXG4gICAgICAud3JpdGUoJzEyMycpXG4gICAgICAuc3VjY2VlZHMoXCJFeGFtcGxlLlwiKVxuXG4gICAgICAud3JpdGUoJy0xMjMnKVxuICAgICAgLnN1Y2NlZWRzKFwiTmVnYXRpdmUgRXhhbXBsZS5cIilcblxuICAgICAgLndyaXRlKCctLTEyMycpXG4gICAgICAuZmFpbHMoXCJEb3VibGUgbmVnYXRpdmUuXCIpXG5cbiAgICAgIC53cml0ZSgnJylcbiAgICAgIC5mYWlscyhcIkVtcHR5IHN0cmluZy5cIilcblxuICAgICAgLndyaXRlKCdhJylcbiAgICAgIC5mYWlscyhcIkFscGhhYmV0aWMuXCIpXG5cbiAgICAgIC53cml0ZSgnIDAnKVxuICAgICAgLmZhaWxzKFwiSGFzIHNwYWNlcy5cIilcblxuICAgICAgLndyaXRlKCcwLjAnKVxuICAgICAgLmZhaWxzKFwiSGFzIGRlY2ltYWwuXCIpXG4gICAgO1xuICB9KTtcblxuICB0ZXN0KFwiRmxvYXRTdHJpbmdcIiwgKHJ1bGVzKSA9PiB7XG4gICAgcnVsZXNcbiAgICAgIC5hdCgnL2Zsb2F0JylcbiAgICAgIC53cml0ZSgnMC4wJylcbiAgICAgIC5zdWNjZWVkcyhcIlplcm8uXCIpXG5cbiAgICAgIC53cml0ZSgnMTIzLjQ1NicpXG4gICAgICAuc3VjY2VlZHMoXCJGaXhlZCBwb2ludCBudW1iZXIuXCIpXG5cbiAgICAgIC53cml0ZSgnLTEyMy40NTYnKVxuICAgICAgLnN1Y2NlZWRzKFwiTmVnYXRpdmUgaXhlZCBwb2ludCBudW1iZXIuXCIpXG5cbiAgICAgIC53cml0ZSgnLjEnKVxuICAgICAgLnN1Y2NlZWRzKFwiTm8gbGVhZGluZyBkaWdpdHMuXCIpXG5cbiAgICAgIC53cml0ZSgnMS4nKVxuICAgICAgLnN1Y2NlZWRzKFwiTm8gdHJhaWxpbmcgZGlnaXRzLlwiKVxuXG4gICAgICAud3JpdGUoJy0uMScpXG4gICAgICAuc3VjY2VlZHMoXCJOZWdhdGl2ZSBmcmFjdGlvbiBvbmx5LlwiKVxuXG4gICAgICAud3JpdGUoJy4nKVxuICAgICAgLmZhaWxzKFwiSnVzdCBkZWNpbWFsIHBvaW50LlwiKVxuXG4gICAgICAud3JpdGUoJzAnKVxuICAgICAgLnN1Y2NlZWRzKFwiWmVyby5cIilcblxuICAgICAgLndyaXRlKCcnKVxuICAgICAgLmZhaWxzKFwiRW1wdHkgc3RyaW5nLlwiKVxuXG4gICAgICAud3JpdGUoJ2EnKVxuICAgICAgLmZhaWxzKFwiQWxwaGFiZXRpYy5cIilcblxuICAgICAgLndyaXRlKCcgMCcpXG4gICAgICAuZmFpbHMoXCJIYXMgc3BhY2VzLlwiKVxuICAgIDtcbiAgfSk7XG5cbiAgdGVzdChcIkludGVnZXJcIiwgKHJ1bGVzKSA9PiB7XG4gICAgcnVsZXNcbiAgICAgIC5hdCgnL2ludCcpXG4gICAgICAud3JpdGUoMClcbiAgICAgIC5zdWNjZWVkcyhcIlplcm8uXCIpXG5cbiAgICAgIC53cml0ZSgwLjApXG4gICAgICAuc3VjY2VlZHMoXCJGbG9hdGluZyBaZXJvLlwiKVxuXG4gICAgICAud3JpdGUoMTIzKVxuICAgICAgLnN1Y2NlZWRzKFwiRXhhbXBsZS5cIilcblxuICAgICAgLndyaXRlKC0xMjMpXG4gICAgICAuc3VjY2VlZHMoXCJOZWdhdGl2ZSBleGFtcGxlLlwiKVxuXG4gICAgICAud3JpdGUoMS4xKVxuICAgICAgLmZhaWxzKFwiTm8gZnJhY3Rpb25hbCBwYXJ0IGFsbG93ZWQuXCIpXG5cbiAgICAgIC53cml0ZSgnMCcpXG4gICAgICAuZmFpbHMoXCJTdHJpbmcuXCIpXG4gICAgO1xuICB9KTtcblxuICB0ZXN0KFwiQWxwaGFcIiwgKHJ1bGVzKSA9PiB7XG4gICAgcnVsZXNcbiAgICAgIC5hdCgnL2FscGhhJylcbiAgICAgIC53cml0ZSgnYScpXG4gICAgICAuc3VjY2VlZHMoXCJBbHBoYVwiKVxuXG4gICAgICAud3JpdGUoJ0EnKVxuICAgICAgLnN1Y2NlZWRzKFwiQWxwaGFcIilcblxuICAgICAgLndyaXRlKFwiaGVsbG9cIilcbiAgICAgIC5zdWNjZWVkcyhcIldvcmQuXCIpXG5cbiAgICAgIC53cml0ZShcIjEyM1wiKVxuICAgICAgLmZhaWxzKFwiTnVtZXJpYy5cIilcblxuICAgICAgLndyaXRlKDEpXG4gICAgICAuZmFpbHMoXCJOdW1iZXIuXCIpXG5cbiAgICAgIC53cml0ZSh0cnVlKVxuICAgICAgLmZhaWxzKFwiQm9vbGVhbi5cIilcblxuICAgICAgLndyaXRlKFwiaGVsbG8sIHdvcmxkXCIpXG4gICAgICAuZmFpbHMoXCJOb24tYWxwaGEuXCIpXG4gICAgO1xuICB9KTtcblxuICB0ZXN0KFwiWWVhclwiLCAocnVsZXMpID0+IHtcbiAgICBydWxlc1xuICAgICAgLmF0KCcveWVhcicpXG4gICAgICAud3JpdGUoJzIwMTUnKVxuICAgICAgLnN1Y2NlZWRzKFwiVGhpcyB5ZWFyLlwiKVxuXG4gICAgICAud3JpdGUoJzE5MDAnKVxuICAgICAgLnN1Y2NlZWRzKFwiRWFybGllc3QgeWVhci5cIilcblxuICAgICAgLndyaXRlKCcxOTk5JylcbiAgICAgIC5zdWNjZWVkcyhcIkxhdGVzdCBpbiAyMHRoIGNlbnR1cnkuXCIpXG5cbiAgICAgIC53cml0ZSgnMjA5OScpXG4gICAgICAuc3VjY2VlZHMoXCJMYXRlc3QgaW4gMjF0aCBjZW50dXJ5LlwiKVxuXG4gICAgICAud3JpdGUoJzIwMTUgJylcbiAgICAgIC5mYWlscyhcIkV4dHJhIHNwYWNlLlwiKVxuXG4gICAgICAud3JpdGUoJzIxMDAnKVxuICAgICAgLmZhaWxzKFwiRGlzdGFudCBmdXR1cmUuXCIpXG5cbiAgICAgIC53cml0ZSgxOTYwKVxuICAgICAgLmZhaWxzKFwiTnVtYmVyLlwiKVxuXG4gICAgICAud3JpdGUoJycpXG4gICAgICAuZmFpbHMoXCJFbXB0eSBzdHJpbmcuXCIpXG4gICAgO1xuICB9KTtcblxuICB0ZXN0KFwiSVNPRGF0ZVwiLCAocnVsZXMpID0+IHtcbiAgICBydWxlc1xuICAgICAgLmF0KCcvZGF0ZScpXG4gICAgICAud3JpdGUoJzIwMTUtMTEtMjAnKVxuICAgICAgLnN1Y2NlZWRzKFwiVG9kYXkuXCIpXG5cbiAgICAgIC53cml0ZSgnMTkwMC0wMS0wMScpXG4gICAgICAuc3VjY2VlZHMoXCJFYXJsaWVzdCBkYXRlLlwiKVxuXG4gICAgICAud3JpdGUoJzIwOTktMTItMzEnKVxuICAgICAgLnN1Y2NlZWRzKFwiTGF0ZXN0IGRhdGUuXCIpXG5cbiAgICAgIC53cml0ZSgnMTg5OS0xMi0zMScpXG4gICAgICAuZmFpbHMoXCJUb28gZWFybHkgZGF0ZS5cIilcblxuICAgICAgLndyaXRlKCcyMTAwLTAxLTAxJylcbiAgICAgIC5mYWlscyhcIlRvbyBsYXRlIGRhdGUuXCIpXG5cbiAgICAgIC53cml0ZSgnJylcbiAgICAgIC5mYWlscyhcIkVtcHR5IHN0cmluZy5cIilcbiAgICA7XG4gIH0pO1xufSk7XG4iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0= | ||
//# sourceMappingURL=data:application/json;base64,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QzthQUNuQixLQUFLLENBQUMsaUJBQWlCLENBQUM7YUFFeEIsS0FBSyxDQUFDLFlBQVksQ0FBQzthQUNuQixLQUFLLENBQUMsZ0JBQWdCLENBQUM7YUFFdkIsS0FBSyxDQUFDLEVBQUUsQ0FBQzthQUNULEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FDeEI7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUVILElBQUksQ0FBQyxNQUFNLEVBQUUsVUFBQyxLQUFLO1FBQ2pCLEtBQUs7YUFDRixFQUFFLENBQUMsT0FBTyxDQUFDO2FBQ1gsS0FBSyxDQUFDLGdCQUFnQixDQUFDO2FBQ3ZCLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQzthQUU5QixLQUFLLENBQUMsaUJBQWlCLENBQUM7YUFDeEIsUUFBUSxDQUFDLGdCQUFnQixDQUFDO2FBRTFCLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQzthQUN2QixLQUFLLENBQUMsdUJBQXVCLENBQUM7YUFFOUIsS0FBSyxDQUFDLGlCQUFpQixDQUFDO2FBQ3hCLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQzthQUUvQixLQUFLLENBQUMsa0JBQWtCLENBQUM7YUFDekIsS0FBSyxDQUFDLHlCQUF5QixDQUFDO2FBRWhDLEtBQUssQ0FBQyxVQUFVLENBQUM7YUFDakIsS0FBSyxDQUFDLGdDQUFnQyxDQUFDO2FBRXZDLEtBQUssQ0FBQyxVQUFVLENBQUM7YUFDakIsS0FBSyxDQUFDLGdCQUFnQixDQUFDO2FBRXZCLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQzthQUN6QixLQUFLLENBQUMsd0JBQXdCLENBQUM7YUFFL0IsS0FBSyxDQUFDLFdBQVcsQ0FBQzthQUNsQixLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FDN0I7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwiZmlsZSI6InJlZ2V4cC10ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi4vdHlwaW5ncy9ub2RlLmQudHNcIiAvPlxuXG5pbXBvcnQgYm9sdCA9IHJlcXVpcmUoJy4uL2JvbHQnKTtcbnZhciBydWxlc1N1aXRlID0gYm9sdC5ydWxlc1N1aXRlO1xudmFyIHNlY3JldHMgPSByZXF1aXJlKCcuLi8uLi9hdXRoLXNlY3JldHMnKTtcblxucnVsZXNTdWl0ZShcIlJlZ0V4cFwiLCBmdW5jdGlvbih0ZXN0KSB7XG4gIHRlc3QuZGF0YWJhc2Uoc2VjcmV0cy5BUFAsIHNlY3JldHMuU0VDUkVUKTtcbiAgdGVzdC5ydWxlcygnc2FtcGxlcy9yZWdleHAnKTtcblxuICB0ZXN0KFwiU29jaWFsU2VjdXJpdHlcIiwgKHJ1bGVzKSA9PiB7XG4gICAgcnVsZXNcbiAgICAgIC5hdCgnL3NzJylcbiAgICAgIC53cml0ZSgnMDAwLTAwLTAwMDAnKVxuICAgICAgLnN1Y2NlZWRzKFwiQWxsIHplcm9zLlwiKVxuXG4gICAgICAud3JpdGUoJzEyMy00NS02Nzg5JylcbiAgICAgIC5zdWNjZWVkcyhcIkFsbCBudW1iZXJzLlwiKVxuXG4gICAgICAud3JpdGUoJzAwMC0wYS0wMDAwJylcbiAgICAgIC5mYWlscyhcIkNvbnRhaW5zIGxldHRlci5cIilcblxuICAgICAgLndyaXRlKCcwMDAtMDAtMDAwMDAnKVxuICAgICAgLmZhaWxzKFwiVG9vIGxvbmcuXCIpXG5cbiAgICAgIC53cml0ZSgnMDAwLTAtMDAwJylcbiAgICAgIC5mYWlscyhcIlRvbyBzaG9ydC5cIilcblxuICAgICAgLndyaXRlKCcwMDAwMDAwMCcpXG4gICAgICAuZmFpbHMoXCJNaXNzaW5nIGRhc2hlcy5cIilcbiAgICA7XG4gIH0pO1xuXG4gIHRlc3QoXCJJbnRlZ2VyU3RyaW5nXCIsIChydWxlcykgPT4ge1xuICAgIHJ1bGVzXG4gICAgICAuYXQoJy9pbnRlZ2VyJylcbiAgICAgIC53cml0ZSgnMCcpXG4gICAgICAuc3VjY2VlZHMoXCJaZXJvLlwiKVxuXG4gICAgICAud3JpdGUoJzEyMycpXG4gICAgICAuc3VjY2VlZHMoXCJFeGFtcGxlLlwiKVxuXG4gICAgICAud3JpdGUoJy0xMjMnKVxuICAgICAgLnN1Y2NlZWRzKFwiTmVnYXRpdmUgRXhhbXBsZS5cIilcblxuICAgICAgLndyaXRlKCctLTEyMycpXG4gICAgICAuZmFpbHMoXCJEb3VibGUgbmVnYXRpdmUuXCIpXG5cbiAgICAgIC53cml0ZSgnJylcbiAgICAgIC5mYWlscyhcIkVtcHR5IHN0cmluZy5cIilcblxuICAgICAgLndyaXRlKCdhJylcbiAgICAgIC5mYWlscyhcIkFscGhhYmV0aWMuXCIpXG5cbiAgICAgIC53cml0ZSgnIDAnKVxuICAgICAgLmZhaWxzKFwiSGFzIHNwYWNlcy5cIilcblxuICAgICAgLndyaXRlKCcwLjAnKVxuICAgICAgLmZhaWxzKFwiSGFzIGRlY2ltYWwuXCIpXG4gICAgO1xuICB9KTtcblxuICB0ZXN0KFwiRmxvYXRTdHJpbmdcIiwgKHJ1bGVzKSA9PiB7XG4gICAgcnVsZXNcbiAgICAgIC5hdCgnL2Zsb2F0JylcbiAgICAgIC53cml0ZSgnMC4wJylcbiAgICAgIC5zdWNjZWVkcyhcIlplcm8uXCIpXG5cbiAgICAgIC53cml0ZSgnMTIzLjQ1NicpXG4gICAgICAuc3VjY2VlZHMoXCJGaXhlZCBwb2ludCBudW1iZXIuXCIpXG5cbiAgICAgIC53cml0ZSgnLTEyMy40NTYnKVxuICAgICAgLnN1Y2NlZWRzKFwiTmVnYXRpdmUgaXhlZCBwb2ludCBudW1iZXIuXCIpXG5cbiAgICAgIC53cml0ZSgnLjEnKVxuICAgICAgLnN1Y2NlZWRzKFwiTm8gbGVhZGluZyBkaWdpdHMuXCIpXG5cbiAgICAgIC53cml0ZSgnMS4nKVxuICAgICAgLnN1Y2NlZWRzKFwiTm8gdHJhaWxpbmcgZGlnaXRzLlwiKVxuXG4gICAgICAud3JpdGUoJy0uMScpXG4gICAgICAuc3VjY2VlZHMoXCJOZWdhdGl2ZSBmcmFjdGlvbiBvbmx5LlwiKVxuXG4gICAgICAud3JpdGUoJy4nKVxuICAgICAgLmZhaWxzKFwiSnVzdCBkZWNpbWFsIHBvaW50LlwiKVxuXG4gICAgICAud3JpdGUoJzAnKVxuICAgICAgLnN1Y2NlZWRzKFwiWmVyby5cIilcblxuICAgICAgLndyaXRlKCcnKVxuICAgICAgLmZhaWxzKFwiRW1wdHkgc3RyaW5nLlwiKVxuXG4gICAgICAud3JpdGUoJ2EnKVxuICAgICAgLmZhaWxzKFwiQWxwaGFiZXRpYy5cIilcblxuICAgICAgLndyaXRlKCcgMCcpXG4gICAgICAuZmFpbHMoXCJIYXMgc3BhY2VzLlwiKVxuICAgIDtcbiAgfSk7XG5cbiAgdGVzdChcIkludGVnZXJcIiwgKHJ1bGVzKSA9PiB7XG4gICAgcnVsZXNcbiAgICAgIC5hdCgnL2ludCcpXG4gICAgICAud3JpdGUoMClcbiAgICAgIC5zdWNjZWVkcyhcIlplcm8uXCIpXG5cbiAgICAgIC53cml0ZSgwLjApXG4gICAgICAuc3VjY2VlZHMoXCJGbG9hdGluZyBaZXJvLlwiKVxuXG4gICAgICAud3JpdGUoMTIzKVxuICAgICAgLnN1Y2NlZWRzKFwiRXhhbXBsZS5cIilcblxuICAgICAgLndyaXRlKC0xMjMpXG4gICAgICAuc3VjY2VlZHMoXCJOZWdhdGl2ZSBleGFtcGxlLlwiKVxuXG4gICAgICAud3JpdGUoMS4xKVxuICAgICAgLmZhaWxzKFwiTm8gZnJhY3Rpb25hbCBwYXJ0IGFsbG93ZWQuXCIpXG5cbiAgICAgIC53cml0ZSgnMCcpXG4gICAgICAuZmFpbHMoXCJTdHJpbmcuXCIpXG4gICAgO1xuICB9KTtcblxuICB0ZXN0KFwiQWxwaGFcIiwgKHJ1bGVzKSA9PiB7XG4gICAgcnVsZXNcbiAgICAgIC5hdCgnL2FscGhhJylcbiAgICAgIC53cml0ZSgnYScpXG4gICAgICAuc3VjY2VlZHMoXCJBbHBoYVwiKVxuXG4gICAgICAud3JpdGUoJ0EnKVxuICAgICAgLnN1Y2NlZWRzKFwiQWxwaGFcIilcblxuICAgICAgLndyaXRlKFwiaGVsbG9cIilcbiAgICAgIC5zdWNjZWVkcyhcIldvcmQuXCIpXG5cbiAgICAgIC53cml0ZShcIjEyM1wiKVxuICAgICAgLmZhaWxzKFwiTnVtZXJpYy5cIilcblxuICAgICAgLndyaXRlKDEpXG4gICAgICAuZmFpbHMoXCJOdW1iZXIuXCIpXG5cbiAgICAgIC53cml0ZSh0cnVlKVxuICAgICAgLmZhaWxzKFwiQm9vbGVhbi5cIilcblxuICAgICAgLndyaXRlKFwiaGVsbG8sIHdvcmxkXCIpXG4gICAgICAuZmFpbHMoXCJOb24tYWxwaGEuXCIpXG4gICAgO1xuICB9KTtcblxuICB0ZXN0KFwiWWVhclwiLCAocnVsZXMpID0+IHtcbiAgICBydWxlc1xuICAgICAgLmF0KCcveWVhcicpXG4gICAgICAud3JpdGUoJzIwMTUnKVxuICAgICAgLnN1Y2NlZWRzKFwiVGhpcyB5ZWFyLlwiKVxuXG4gICAgICAud3JpdGUoJzE5MDAnKVxuICAgICAgLnN1Y2NlZWRzKFwiRWFybGllc3QgeWVhci5cIilcblxuICAgICAgLndyaXRlKCcxOTk5JylcbiAgICAgIC5zdWNjZWVkcyhcIkxhdGVzdCBpbiAyMHRoIGNlbnR1cnkuXCIpXG5cbiAgICAgIC53cml0ZSgnMjA5OScpXG4gICAgICAuc3VjY2VlZHMoXCJMYXRlc3QgaW4gMjF0aCBjZW50dXJ5LlwiKVxuXG4gICAgICAud3JpdGUoJzIwMTUgJylcbiAgICAgIC5mYWlscyhcIkV4dHJhIHNwYWNlLlwiKVxuXG4gICAgICAud3JpdGUoJzIxMDAnKVxuICAgICAgLmZhaWxzKFwiRGlzdGFudCBmdXR1cmUuXCIpXG5cbiAgICAgIC53cml0ZSgxOTYwKVxuICAgICAgLmZhaWxzKFwiTnVtYmVyLlwiKVxuXG4gICAgICAud3JpdGUoJycpXG4gICAgICAuZmFpbHMoXCJFbXB0eSBzdHJpbmcuXCIpXG4gICAgO1xuICB9KTtcblxuICB0ZXN0KFwiSVNPRGF0ZVwiLCAocnVsZXMpID0+IHtcbiAgICBydWxlc1xuICAgICAgLmF0KCcvZGF0ZScpXG4gICAgICAud3JpdGUoJzIwMTUtMTEtMjAnKVxuICAgICAgLnN1Y2NlZWRzKFwiVG9kYXkuXCIpXG5cbiAgICAgIC53cml0ZSgnMTkwMC0wMS0wMScpXG4gICAgICAuc3VjY2VlZHMoXCJFYXJsaWVzdCBkYXRlLlwiKVxuXG4gICAgICAud3JpdGUoJzIwOTktMTItMzEnKVxuICAgICAgLnN1Y2NlZWRzKFwiTGF0ZXN0IGRhdGUuXCIpXG5cbiAgICAgIC53cml0ZSgnMTg5OS0xMi0zMScpXG4gICAgICAuZmFpbHMoXCJUb28gZWFybHkgZGF0ZS5cIilcblxuICAgICAgLndyaXRlKCcyMTAwLTAxLTAxJylcbiAgICAgIC5mYWlscyhcIlRvbyBsYXRlIGRhdGUuXCIpXG5cbiAgICAgIC53cml0ZSgnJylcbiAgICAgIC5mYWlscyhcIkVtcHR5IHN0cmluZy5cIilcbiAgICA7XG4gIH0pO1xuXG4gIHRlc3QoXCJTbHVnXCIsIChydWxlcykgPT4ge1xuICAgIHJ1bGVzXG4gICAgICAuYXQoJy9zbHVnJylcbiAgICAgIC53cml0ZSgndGhpcy1pcy1hLXNsdWcnKVxuICAgICAgLnN1Y2NlZWRzKFwiVHlwaWNhbCBzbHVnIHRleHQuXCIpXG5cbiAgICAgIC53cml0ZSgnbnVtYmVycy0yMDE2LW9rJylcbiAgICAgIC5zdWNjZWVkcyhcIk51bWJlciBhcmUgb2suXCIpXG5cbiAgICAgIC53cml0ZSgnZG91YmxlLS1oeXBoZW4nKVxuICAgICAgLmZhaWxzKFwiRG91YmxlIGh5cGhlbiBub3Qgb2suXCIpXG5cbiAgICAgIC53cml0ZSgnLWxlYWRpbmctaHlwaGVuJylcbiAgICAgIC5mYWlscyhcIkxlYWRpbmcgaHlwaGVuIG5vdCBvay5cIilcblxuICAgICAgLndyaXRlKCd0cmFpbGluZy1oeXBoZW4tJylcbiAgICAgIC5mYWlscyhcIlRyYWlsaW5nIGh5cGhlbiBub3Qgb2suXCIpXG5cbiAgICAgIC53cml0ZSgnbm9oeXBoZW4nKVxuICAgICAgLmZhaWxzKFwiTXVzdCBoYXZlIGF0IGxlYXN0IG9uZSBoeXBoZW4uXCIpXG5cbiAgICAgIC53cml0ZSgnbm8tVXBwZXInKVxuICAgICAgLmZhaWxzKFwiTm8gdXBwZXIgY2FzZS5cIilcblxuICAgICAgLndyaXRlKCduby1zcGVjaWFsJi1jaGFyJylcbiAgICAgIC5mYWlscyhcIk5vIHNwZWNpYWwgY2hhcmFjdGVycy5cIilcblxuICAgICAgLndyaXRlKCdubyBzcGFjZXMnKVxuICAgICAgLmZhaWxzKFwiTm8gc3BhY2VzIGFsbG93ZWQuXCIpXG4gICAgO1xuICB9KTtcbn0pO1xuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9 |
@@ -19,2 +19,3 @@ /* | ||
var ast = require('../ast'); | ||
var logger = require('../logger'); | ||
/* | ||
@@ -63,2 +64,6 @@ * Run data drive test with tests is one of these formats: | ||
} | ||
setup(function () { | ||
logger.reset(); | ||
logger.silent(); | ||
}); | ||
test(label, testIt.bind(undefined, data, expect, tests[i])); | ||
@@ -100,2 +105,2 @@ } | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QtaGVscGVyLnRzIl0sIm5hbWVzIjpbImRhdGFEcml2ZW5UZXN0IiwiZm9ybWF0IiwiZXhwRm9ybWF0Il0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILDZDQUE2QztBQUU3QyxJQUFPLElBQUksV0FBVyxTQUFTLENBQUMsQ0FBQztBQUNqQyxJQUFPLEdBQUcsV0FBVyxRQUFRLENBQUMsQ0FBQztBQUUvQjs7Ozs7OztHQU9HO0FBQ0gsd0JBQStCLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBVTtJQUN0REEsSUFBSUEsSUFBSUEsQ0FBQ0E7SUFDVEEsSUFBSUEsTUFBTUEsQ0FBQ0E7SUFDWEEsSUFBSUEsS0FBYUEsQ0FBQ0E7SUFFbEJBLFNBQVNBLEdBQUdBLFNBQVNBLElBQUlBLE1BQU1BLENBQUNBO0lBRWhDQSxHQUFHQSxDQUFDQSxDQUFDQSxHQUFHQSxDQUFDQSxDQUFDQSxHQUFHQSxDQUFDQSxFQUFFQSxDQUFDQSxHQUFHQSxLQUFLQSxDQUFDQSxNQUFNQSxFQUFFQSxDQUFDQSxFQUFFQSxFQUFFQSxDQUFDQTtRQUN0Q0Esc0JBQXNCQTtRQUN0QkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsT0FBT0EsS0FBS0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsS0FBS0EsUUFBUUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDakNBLEtBQUtBLEdBQUdBLFNBQVNBLENBQUNBLEtBQUtBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1lBQzVCQSxJQUFJQSxHQUFHQSxLQUFLQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUNoQkEsTUFBTUEsR0FBR0EsU0FBU0EsQ0FBQ0E7UUFDckJBLENBQUNBO1FBQUNBLElBQUlBLENBQUNBLENBQUNBO1lBQ05BLElBQUlBLEdBQUdBLEtBQUtBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLElBQUlBLENBQUNBO1lBQ3JCQSxFQUFFQSxDQUFDQSxDQUFDQSxJQUFJQSxLQUFLQSxTQUFTQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDdkJBLElBQUlBLEdBQUdBLEtBQUtBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1lBQ3JCQSxDQUFDQTtZQUNEQSxFQUFFQSxDQUFDQSxDQUFDQSxJQUFJQSxLQUFLQSxTQUFTQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDdkJBLElBQUlBLEdBQUdBLEtBQUtBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1lBQ2xCQSxDQUFDQTtZQUNEQSxFQUFFQSxDQUFDQSxDQUFDQSxJQUFJQSxDQUFDQSxNQUFNQSxDQUFDQSxJQUFJQSxFQUFFQSxRQUFRQSxDQUFDQSxJQUFJQSxRQUFRQSxJQUFJQSxJQUFJQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDcERBLElBQUlBLEdBQUdBLElBQUlBLENBQUNBLE1BQU1BLENBQUNBLEVBQUVBLEVBQUVBLElBQUlBLENBQUNBLENBQUNBO2dCQUM3QkEsT0FBT0EsSUFBSUEsQ0FBQ0EsTUFBTUEsQ0FBQ0E7WUFDckJBLENBQUNBO1lBQ0RBLE1BQU1BLEdBQUdBLEtBQUtBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLE1BQU1BLElBQUlBLEtBQUtBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1lBQ3hDQSxLQUFLQSxHQUFHQSxLQUFLQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQSxLQUFLQSxDQUFDQTtZQUN2QkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsS0FBS0EsS0FBS0EsU0FBU0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0JBQ3hCQSxFQUFFQSxDQUFDQSxDQUFDQSxNQUFNQSxLQUFLQSxTQUFTQSxDQUFDQSxDQUFDQSxDQUFDQTtvQkFDekJBLEtBQUtBLEdBQUdBLFNBQVNBLENBQUNBLElBQUlBLENBQUNBLEdBQUdBLE1BQU1BLEdBQUdBLFNBQVNBLENBQUNBLE1BQU1BLENBQUNBLENBQUNBO2dCQUN2REEsQ0FBQ0E7Z0JBQUNBLElBQUlBLENBQUNBLENBQUNBO29CQUNOQSxLQUFLQSxHQUFHQSxTQUFTQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtnQkFDMUJBLENBQUNBO1lBQ0hBLENBQUNBO1FBQ0hBLENBQUNBO1FBRURBLElBQUlBLENBQUNBLEtBQUtBLEVBQUVBLE1BQU1BLENBQUNBLElBQUlBLENBQUNBLFNBQVNBLEVBQUVBLElBQUlBLEVBQUVBLE1BQU1BLEVBQUVBLEtBQUtBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO0lBQzlEQSxDQUFDQTtBQUNIQSxDQUFDQTtBQXRDZSxzQkFBYyxpQkFzQzdCLENBQUE7QUFFRCxnQkFBZ0IsQ0FBQztJQUNmQyxNQUFNQSxDQUFDQSxDQUFDQSxJQUFJQSxDQUFDQSxNQUFNQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUN6QkEsS0FBS0EsUUFBUUE7WUFDWEEsTUFBTUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsUUFBUUEsRUFBRUEsQ0FBQ0E7UUFDdEJBO1lBQ0VBLE1BQU1BLENBQUNBLElBQUlBLENBQUNBLFNBQVNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO0lBQzNCQSxDQUFDQTtBQUNIQSxDQUFDQTtBQUVELG1CQUEwQixDQUFDO0lBQ3pCQyxFQUFFQSxDQUFDQSxDQUFDQSxJQUFJQSxDQUFDQSxNQUFNQSxDQUFDQSxDQUFDQSxFQUFFQSxPQUFPQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUM1QkEsTUFBTUEsQ0FBQ0EsR0FBR0EsR0FBR0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsU0FBU0EsQ0FBQ0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsR0FBR0EsR0FBR0EsQ0FBQ0E7SUFDakRBLENBQUNBO0lBQ0RBLEVBQUVBLENBQUNBLENBQUNBLElBQUlBLENBQUNBLE1BQU1BLENBQUNBLENBQUNBLEVBQUVBLFFBQVFBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1FBQzdCQSxFQUFFQSxDQUFDQSxDQUFDQSxNQUFNQSxJQUFJQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUNoQkEsTUFBTUEsQ0FBQ0EsR0FBR0EsQ0FBQ0EsZ0JBQWdCQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUNqQ0EsQ0FBQ0E7UUFDREEsSUFBSUEsTUFBTUEsR0FBR0EsR0FBR0EsQ0FBQ0E7UUFDakJBLElBQUlBLEdBQUdBLEdBQUdBLEVBQUVBLENBQUNBO1FBQ2JBLEdBQUdBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLElBQUlBLElBQUlBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1lBQ25CQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQSxjQUFjQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDNUJBLFFBQVFBLENBQUNBO1lBQ1hBLENBQUNBO1lBQ0RBLE1BQU1BLElBQUlBLEdBQUdBLEdBQUdBLFNBQVNBLENBQUNBLENBQUNBLENBQUNBLElBQUlBLENBQUNBLENBQUNBLENBQUNBO1lBQ25DQSxHQUFHQSxHQUFHQSxJQUFJQSxDQUFDQTtRQUNiQSxDQUFDQTtRQUNEQSxNQUFNQSxJQUFJQSxHQUFHQSxDQUFDQTtRQUNkQSxNQUFNQSxDQUFDQSxNQUFNQSxDQUFDQTtJQUNoQkEsQ0FBQ0E7SUFDREEsTUFBTUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsU0FBU0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7QUFDM0JBLENBQUNBO0FBckJlLGlCQUFTLFlBcUJ4QixDQUFBIiwiZmlsZSI6InRlc3QtaGVscGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi4vdHlwaW5ncy9ub2RlLmQudHNcIiAvPlxuXG5pbXBvcnQgdXRpbCA9IHJlcXVpcmUoJy4uL3V0aWwnKTtcbmltcG9ydCBhc3QgPSByZXF1aXJlKCcuLi9hc3QnKTtcblxuLypcbiAqIFJ1biBkYXRhIGRyaXZlIHRlc3Qgd2l0aCB0ZXN0cyBpcyBvbmUgb2YgdGhlc2UgZm9ybWF0czpcbiAqIFsgeyBsYWJlbDogKG9wdCkgPHN0cmluZz4sIGRhdGE6IDxpbnB1dD4sIGV4cGVjdDogKG9wdCkgPGV4cGVjdGVkIG91dHB1dD4gfSwgLi4uIF1cbiAqIFsgWyA8aW5wdXQ+LCA8ZXhwZWN0ZWQgb3V0cHV0PiBdLCAuLi4gXVxuICogWyBzY2FsYXIsIC4uLiBdXG4gKlxuICogQ2FsbHMgdGVzdEl0KGRhdGEsIGV4cGVjdCkgZm9yIGVhY2ggdGVzdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRhdGFEcml2ZW5UZXN0KHRlc3RzLCB0ZXN0SXQsIGZvcm1hdHRlcj8pIHtcbiAgdmFyIGRhdGE7XG4gIHZhciBleHBlY3Q7XG4gIHZhciBsYWJlbDogc3RyaW5nO1xuXG4gIGZvcm1hdHRlciA9IGZvcm1hdHRlciB8fCBmb3JtYXQ7XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXN0cy5sZW5ndGg7IGkrKykge1xuICAgIC8vIE5vdCBBcnJheSBvciBPYmplY3RcbiAgICBpZiAodHlwZW9mIHRlc3RzW2ldICE9PSAnb2JqZWN0Jykge1xuICAgICAgbGFiZWwgPSBmb3JtYXR0ZXIodGVzdHNbaV0pO1xuICAgICAgZGF0YSA9IHRlc3RzW2ldO1xuICAgICAgZXhwZWN0ID0gdW5kZWZpbmVkO1xuICAgIH0gZWxzZSB7XG4gICAgICBkYXRhID0gdGVzdHNbaV0uZGF0YTtcbiAgICAgIGlmIChkYXRhID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgZGF0YSA9IHRlc3RzW2ldWzBdO1xuICAgICAgfVxuICAgICAgaWYgKGRhdGEgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBkYXRhID0gdGVzdHNbaV07XG4gICAgICB9XG4gICAgICBpZiAodXRpbC5pc1R5cGUoZGF0YSwgJ29iamVjdCcpICYmICdleHBlY3QnIGluIGRhdGEpIHtcbiAgICAgICAgZGF0YSA9IHV0aWwuZXh0ZW5kKHt9LCBkYXRhKTtcbiAgICAgICAgZGVsZXRlIGRhdGEuZXhwZWN0O1xuICAgICAgfVxuICAgICAgZXhwZWN0ID0gdGVzdHNbaV0uZXhwZWN0IHx8IHRlc3RzW2ldWzFdO1xuICAgICAgbGFiZWwgPSB0ZXN0c1tpXS5sYWJlbDtcbiAgICAgIGlmIChsYWJlbCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmIChleHBlY3QgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGxhYmVsID0gZm9ybWF0dGVyKGRhdGEpICsgXCIgPT4gXCIgKyBmb3JtYXR0ZXIoZXhwZWN0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsYWJlbCA9IGZvcm1hdHRlcihkYXRhKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHRlc3QobGFiZWwsIHRlc3RJdC5iaW5kKHVuZGVmaW5lZCwgZGF0YSwgZXhwZWN0LCB0ZXN0c1tpXSkpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGZvcm1hdChvKSB7XG4gIHN3aXRjaCAodXRpbC50eXBlT2YobykpIHtcbiAgY2FzZSAncmVnZXhwJzpcbiAgICByZXR1cm4gby50b1N0cmluZygpO1xuICBkZWZhdWx0OlxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShvKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZXhwRm9ybWF0KHgpIHtcbiAgaWYgKHV0aWwuaXNUeXBlKHgsICdhcnJheScpKSB7XG4gICAgcmV0dXJuICdbJyArIHgubWFwKGV4cEZvcm1hdCkuam9pbignLCAnKSArICddJztcbiAgfVxuICBpZiAodXRpbC5pc1R5cGUoeCwgJ29iamVjdCcpKSB7XG4gICAgaWYgKCd0eXBlJyBpbiB4KSB7XG4gICAgICByZXR1cm4gYXN0LmRlY29kZUV4cHJlc3Npb24oeCk7XG4gICAgfVxuICAgIHZhciByZXN1bHQgPSAneyc7XG4gICAgdmFyIHNlcCA9ICcnO1xuICAgIGZvciAodmFyIHByb3AgaW4geCkge1xuICAgICAgaWYgKCF4Lmhhc093blByb3BlcnR5KHByb3ApKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgcmVzdWx0ICs9IHNlcCArIGV4cEZvcm1hdCh4W3Byb3BdKTtcbiAgICAgIHNlcCA9ICcsICc7XG4gICAgfVxuICAgIHJlc3VsdCArPSAnfSc7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoeCk7XG59XG4iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QtaGVscGVyLnRzIl0sIm5hbWVzIjpbImRhdGFEcml2ZW5UZXN0IiwiZm9ybWF0IiwiZXhwRm9ybWF0Il0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILDZDQUE2QztBQUU3QyxJQUFPLElBQUksV0FBVyxTQUFTLENBQUMsQ0FBQztBQUNqQyxJQUFPLEdBQUcsV0FBVyxRQUFRLENBQUMsQ0FBQztBQUMvQixJQUFPLE1BQU0sV0FBVyxXQUFXLENBQUMsQ0FBQztBQUVyQzs7Ozs7OztHQU9HO0FBQ0gsd0JBQStCLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBVTtJQUN0REEsSUFBSUEsSUFBSUEsQ0FBQ0E7SUFDVEEsSUFBSUEsTUFBTUEsQ0FBQ0E7SUFDWEEsSUFBSUEsS0FBYUEsQ0FBQ0E7SUFFbEJBLFNBQVNBLEdBQUdBLFNBQVNBLElBQUlBLE1BQU1BLENBQUNBO0lBRWhDQSxHQUFHQSxDQUFDQSxDQUFDQSxHQUFHQSxDQUFDQSxDQUFDQSxHQUFHQSxDQUFDQSxFQUFFQSxDQUFDQSxHQUFHQSxLQUFLQSxDQUFDQSxNQUFNQSxFQUFFQSxDQUFDQSxFQUFFQSxFQUFFQSxDQUFDQTtRQUN0Q0Esc0JBQXNCQTtRQUN0QkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsT0FBT0EsS0FBS0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsS0FBS0EsUUFBUUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDakNBLEtBQUtBLEdBQUdBLFNBQVNBLENBQUNBLEtBQUtBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1lBQzVCQSxJQUFJQSxHQUFHQSxLQUFLQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUNoQkEsTUFBTUEsR0FBR0EsU0FBU0EsQ0FBQ0E7UUFDckJBLENBQUNBO1FBQUNBLElBQUlBLENBQUNBLENBQUNBO1lBQ05BLElBQUlBLEdBQUdBLEtBQUtBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLElBQUlBLENBQUNBO1lBQ3JCQSxFQUFFQSxDQUFDQSxDQUFDQSxJQUFJQSxLQUFLQSxTQUFTQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDdkJBLElBQUlBLEdBQUdBLEtBQUtBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1lBQ3JCQSxDQUFDQTtZQUNEQSxFQUFFQSxDQUFDQSxDQUFDQSxJQUFJQSxLQUFLQSxTQUFTQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDdkJBLElBQUlBLEdBQUdBLEtBQUtBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1lBQ2xCQSxDQUFDQTtZQUNEQSxFQUFFQSxDQUFDQSxDQUFDQSxJQUFJQSxDQUFDQSxNQUFNQSxDQUFDQSxJQUFJQSxFQUFFQSxRQUFRQSxDQUFDQSxJQUFJQSxRQUFRQSxJQUFJQSxJQUFJQSxDQUFDQSxDQUFDQSxDQUFDQTtnQkFDcERBLElBQUlBLEdBQUdBLElBQUlBLENBQUNBLE1BQU1BLENBQUNBLEVBQUVBLEVBQUVBLElBQUlBLENBQUNBLENBQUNBO2dCQUM3QkEsT0FBT0EsSUFBSUEsQ0FBQ0EsTUFBTUEsQ0FBQ0E7WUFDckJBLENBQUNBO1lBQ0RBLE1BQU1BLEdBQUdBLEtBQUtBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLE1BQU1BLElBQUlBLEtBQUtBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1lBQ3hDQSxLQUFLQSxHQUFHQSxLQUFLQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQSxLQUFLQSxDQUFDQTtZQUN2QkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsS0FBS0EsS0FBS0EsU0FBU0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0JBQ3hCQSxFQUFFQSxDQUFDQSxDQUFDQSxNQUFNQSxLQUFLQSxTQUFTQSxDQUFDQSxDQUFDQSxDQUFDQTtvQkFDekJBLEtBQUtBLEdBQUdBLFNBQVNBLENBQUNBLElBQUlBLENBQUNBLEdBQUdBLE1BQU1BLEdBQUdBLFNBQVNBLENBQUNBLE1BQU1BLENBQUNBLENBQUNBO2dCQUN2REEsQ0FBQ0E7Z0JBQUNBLElBQUlBLENBQUNBLENBQUNBO29CQUNOQSxLQUFLQSxHQUFHQSxTQUFTQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtnQkFDMUJBLENBQUNBO1lBQ0hBLENBQUNBO1FBQ0hBLENBQUNBO1FBRURBLEtBQUtBLENBQUNBO1lBQ0pBLE1BQU1BLENBQUNBLEtBQUtBLEVBQUVBLENBQUNBO1lBQ2ZBLE1BQU1BLENBQUNBLE1BQU1BLEVBQUVBLENBQUNBO1FBQ2xCQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUNIQSxJQUFJQSxDQUFDQSxLQUFLQSxFQUFFQSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQSxTQUFTQSxFQUFFQSxJQUFJQSxFQUFFQSxNQUFNQSxFQUFFQSxLQUFLQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtJQUM5REEsQ0FBQ0E7QUFDSEEsQ0FBQ0E7QUExQ2Usc0JBQWMsaUJBMEM3QixDQUFBO0FBRUQsZ0JBQWdCLENBQUM7SUFDZkMsTUFBTUEsQ0FBQ0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFDekJBLEtBQUtBLFFBQVFBO1lBQ1hBLE1BQU1BLENBQUNBLENBQUNBLENBQUNBLFFBQVFBLEVBQUVBLENBQUNBO1FBQ3RCQTtZQUNFQSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQSxTQUFTQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtJQUMzQkEsQ0FBQ0E7QUFDSEEsQ0FBQ0E7QUFFRCxtQkFBMEIsQ0FBQztJQUN6QkMsRUFBRUEsQ0FBQ0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsQ0FBQ0EsRUFBRUEsT0FBT0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFDNUJBLE1BQU1BLENBQUNBLEdBQUdBLEdBQUdBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLFNBQVNBLENBQUNBLENBQUNBLElBQUlBLENBQUNBLElBQUlBLENBQUNBLEdBQUdBLEdBQUdBLENBQUNBO0lBQ2pEQSxDQUFDQTtJQUNEQSxFQUFFQSxDQUFDQSxDQUFDQSxJQUFJQSxDQUFDQSxNQUFNQSxDQUFDQSxDQUFDQSxFQUFFQSxRQUFRQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUM3QkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsTUFBTUEsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDaEJBLE1BQU1BLENBQUNBLEdBQUdBLENBQUNBLGdCQUFnQkEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFDakNBLENBQUNBO1FBQ0RBLElBQUlBLE1BQU1BLEdBQUdBLEdBQUdBLENBQUNBO1FBQ2pCQSxJQUFJQSxHQUFHQSxHQUFHQSxFQUFFQSxDQUFDQTtRQUNiQSxHQUFHQSxDQUFDQSxDQUFDQSxHQUFHQSxDQUFDQSxJQUFJQSxJQUFJQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUNuQkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsY0FBY0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0JBQzVCQSxRQUFRQSxDQUFDQTtZQUNYQSxDQUFDQTtZQUNEQSxNQUFNQSxJQUFJQSxHQUFHQSxHQUFHQSxTQUFTQSxDQUFDQSxDQUFDQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUNuQ0EsR0FBR0EsR0FBR0EsSUFBSUEsQ0FBQ0E7UUFDYkEsQ0FBQ0E7UUFDREEsTUFBTUEsSUFBSUEsR0FBR0EsQ0FBQ0E7UUFDZEEsTUFBTUEsQ0FBQ0EsTUFBTUEsQ0FBQ0E7SUFDaEJBLENBQUNBO0lBQ0RBLE1BQU1BLENBQUNBLElBQUlBLENBQUNBLFNBQVNBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO0FBQzNCQSxDQUFDQTtBQXJCZSxpQkFBUyxZQXFCeEIsQ0FBQSIsImZpbGUiOiJ0ZXN0LWhlbHBlci5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLy8vIDxyZWZlcmVuY2UgcGF0aD1cIi4uL3R5cGluZ3Mvbm9kZS5kLnRzXCIgLz5cblxuaW1wb3J0IHV0aWwgPSByZXF1aXJlKCcuLi91dGlsJyk7XG5pbXBvcnQgYXN0ID0gcmVxdWlyZSgnLi4vYXN0Jyk7XG5pbXBvcnQgbG9nZ2VyID0gcmVxdWlyZSgnLi4vbG9nZ2VyJyk7XG5cbi8qXG4gKiBSdW4gZGF0YSBkcml2ZSB0ZXN0IHdpdGggdGVzdHMgaXMgb25lIG9mIHRoZXNlIGZvcm1hdHM6XG4gKiBbIHsgbGFiZWw6IChvcHQpIDxzdHJpbmc+LCBkYXRhOiA8aW5wdXQ+LCBleHBlY3Q6IChvcHQpIDxleHBlY3RlZCBvdXRwdXQ+IH0sIC4uLiBdXG4gKiBbIFsgPGlucHV0PiwgPGV4cGVjdGVkIG91dHB1dD4gXSwgLi4uIF1cbiAqIFsgc2NhbGFyLCAuLi4gXVxuICpcbiAqIENhbGxzIHRlc3RJdChkYXRhLCBleHBlY3QpIGZvciBlYWNoIHRlc3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkYXRhRHJpdmVuVGVzdCh0ZXN0cywgdGVzdEl0LCBmb3JtYXR0ZXI/KSB7XG4gIHZhciBkYXRhO1xuICB2YXIgZXhwZWN0O1xuICB2YXIgbGFiZWw6IHN0cmluZztcblxuICBmb3JtYXR0ZXIgPSBmb3JtYXR0ZXIgfHwgZm9ybWF0O1xuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgdGVzdHMubGVuZ3RoOyBpKyspIHtcbiAgICAvLyBOb3QgQXJyYXkgb3IgT2JqZWN0XG4gICAgaWYgKHR5cGVvZiB0ZXN0c1tpXSAhPT0gJ29iamVjdCcpIHtcbiAgICAgIGxhYmVsID0gZm9ybWF0dGVyKHRlc3RzW2ldKTtcbiAgICAgIGRhdGEgPSB0ZXN0c1tpXTtcbiAgICAgIGV4cGVjdCA9IHVuZGVmaW5lZDtcbiAgICB9IGVsc2Uge1xuICAgICAgZGF0YSA9IHRlc3RzW2ldLmRhdGE7XG4gICAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGRhdGEgPSB0ZXN0c1tpXVswXTtcbiAgICAgIH1cbiAgICAgIGlmIChkYXRhID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgZGF0YSA9IHRlc3RzW2ldO1xuICAgICAgfVxuICAgICAgaWYgKHV0aWwuaXNUeXBlKGRhdGEsICdvYmplY3QnKSAmJiAnZXhwZWN0JyBpbiBkYXRhKSB7XG4gICAgICAgIGRhdGEgPSB1dGlsLmV4dGVuZCh7fSwgZGF0YSk7XG4gICAgICAgIGRlbGV0ZSBkYXRhLmV4cGVjdDtcbiAgICAgIH1cbiAgICAgIGV4cGVjdCA9IHRlc3RzW2ldLmV4cGVjdCB8fCB0ZXN0c1tpXVsxXTtcbiAgICAgIGxhYmVsID0gdGVzdHNbaV0ubGFiZWw7XG4gICAgICBpZiAobGFiZWwgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAoZXhwZWN0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBsYWJlbCA9IGZvcm1hdHRlcihkYXRhKSArIFwiID0+IFwiICsgZm9ybWF0dGVyKGV4cGVjdCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbGFiZWwgPSBmb3JtYXR0ZXIoZGF0YSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBzZXR1cCgoKSA9PiB7XG4gICAgICBsb2dnZXIucmVzZXQoKTtcbiAgICAgIGxvZ2dlci5zaWxlbnQoKTtcbiAgICB9KTtcbiAgICB0ZXN0KGxhYmVsLCB0ZXN0SXQuYmluZCh1bmRlZmluZWQsIGRhdGEsIGV4cGVjdCwgdGVzdHNbaV0pKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBmb3JtYXQobykge1xuICBzd2l0Y2ggKHV0aWwudHlwZU9mKG8pKSB7XG4gIGNhc2UgJ3JlZ2V4cCc6XG4gICAgcmV0dXJuIG8udG9TdHJpbmcoKTtcbiAgZGVmYXVsdDpcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkobyk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4cEZvcm1hdCh4KSB7XG4gIGlmICh1dGlsLmlzVHlwZSh4LCAnYXJyYXknKSkge1xuICAgIHJldHVybiAnWycgKyB4Lm1hcChleHBGb3JtYXQpLmpvaW4oJywgJykgKyAnXSc7XG4gIH1cbiAgaWYgKHV0aWwuaXNUeXBlKHgsICdvYmplY3QnKSkge1xuICAgIGlmICgndHlwZScgaW4geCkge1xuICAgICAgcmV0dXJuIGFzdC5kZWNvZGVFeHByZXNzaW9uKHgpO1xuICAgIH1cbiAgICB2YXIgcmVzdWx0ID0gJ3snO1xuICAgIHZhciBzZXAgPSAnJztcbiAgICBmb3IgKHZhciBwcm9wIGluIHgpIHtcbiAgICAgIGlmICgheC5oYXNPd25Qcm9wZXJ0eShwcm9wKSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIHJlc3VsdCArPSBzZXAgKyBleHBGb3JtYXQoeFtwcm9wXSk7XG4gICAgICBzZXAgPSAnLCAnO1xuICAgIH1cbiAgICByZXN1bHQgKz0gJ30nO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHgpO1xufVxuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9 |
@@ -34,2 +34,3 @@ /* | ||
[{ a: { a: { a: {}, b: 1 } } }, { a: { a: { b: 1 } } }], | ||
[{ a: 1, b: undefined }, { a: 1 }], | ||
]; | ||
@@ -41,4 +42,16 @@ helper.dataDrivenTest(tests, function (data, expect) { | ||
}); | ||
suite("pruneEmptyChildren", function () { | ||
var tests = [ | ||
[{}, {}], | ||
[{ a: 1 }, { a: 1 }], | ||
[{ a: 1, dm: 2 }, { a: 1 }], | ||
[{ a: 1, b: { dm: 2, c: 3 } }, { a: 1, b: { c: 3 } }], | ||
]; | ||
helper.dataDrivenTest(tests, function (data, expect) { | ||
util.deletePropName(data, 'dm'); | ||
assert.deepEqual(data, expect); | ||
}); | ||
}); | ||
}); | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInV0aWwtdGVzdC50cyJdLCJuYW1lcyI6WyJUIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILElBQU8sSUFBSSxXQUFXLE1BQU0sQ0FBQyxDQUFDO0FBQzlCLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7QUFDekIsSUFBTyxNQUFNLFdBQVcsZUFBZSxDQUFDLENBQUM7QUFFekMsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBRTlCLEtBQUssQ0FBQyxNQUFNLEVBQUU7SUFDWixLQUFLLENBQUMsb0JBQW9CLEVBQUU7UUFDMUI7WUFDRUEsSUFBSUEsQ0FBQ0EsQ0FBQ0EsR0FBR0EsT0FBT0EsQ0FBQ0E7UUFDbkJBLENBQUNBO1FBRUQsSUFBSSxLQUFLLEdBQUc7WUFDVixDQUFFLEVBQUUsRUFBRSxFQUFFLENBQUU7WUFDVixDQUFFLEVBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFFO1lBQ2xCLENBQUUsRUFBQyxDQUFDLEVBQUUsRUFBRSxFQUFDLEVBQUUsRUFBRSxDQUFFO1lBQ2YsQ0FBRSxFQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFFO1lBQ3pCLENBQUUsRUFBQyxDQUFDLEVBQUUsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUUsRUFBRSxFQUFDLENBQUU7WUFDcEIsQ0FBRSxFQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBQyxDQUFFO1lBQzlCLENBQUUsRUFBQyxDQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUUsRUFBRSxFQUFDLEVBQUMsRUFBQyxFQUFFLEVBQUUsQ0FBRTtZQUN6QixDQUFFLEVBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFDLEVBQUMsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxFQUFFLENBQUMsRUFBQyxFQUFDLEVBQUMsQ0FBRTtTQUM5QyxDQUFDO1FBRUYsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsVUFBUyxJQUFJLEVBQUUsTUFBTTtZQUNoRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDOUIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwiZmlsZSI6InV0aWwtdGVzdC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IGNoYWkgPSByZXF1aXJlKCdjaGFpJyk7XG52YXIgYXNzZXJ0ID0gY2hhaS5hc3NlcnQ7XG5pbXBvcnQgaGVscGVyID0gcmVxdWlyZSgnLi90ZXN0LWhlbHBlcicpO1xuXG52YXIgdXRpbCA9IHJlcXVpcmUoJy4uL3V0aWwnKTtcblxuc3VpdGUoXCJVdGlsXCIsIGZ1bmN0aW9uKCkge1xuICBzdWl0ZShcInBydW5lRW1wdHlDaGlsZHJlblwiLCBmdW5jdGlvbigpIHtcbiAgICBmdW5jdGlvbiBUKCkge1xuICAgICAgdGhpcy54ID0gJ2R1bW15JztcbiAgICB9XG5cbiAgICB2YXIgdGVzdHMgPSBbXG4gICAgICBbIHt9LCB7fSBdLFxuICAgICAgWyB7YTogMX0sIHthOiAxfSBdLFxuICAgICAgWyB7YToge319LCB7fSBdLFxuICAgICAgWyB7YTogMSwgYjoge319LCB7YTogMX0gXSxcbiAgICAgIFsge2E6IFtdfSwge2E6IFtdfSBdLFxuICAgICAgWyB7YTogbmV3IFQoKX0sIHthOiBuZXcgVCgpfSBdLFxuICAgICAgWyB7YToge2E6IHthOiB7fX19fSwge30gXSxcbiAgICAgIFsge2E6IHthOiB7YToge30sIGI6IDF9fX0sIHthOiB7YToge2I6IDF9fX0gXSxcbiAgICBdO1xuXG4gICAgaGVscGVyLmRhdGFEcml2ZW5UZXN0KHRlc3RzLCBmdW5jdGlvbihkYXRhLCBleHBlY3QpIHtcbiAgICAgIHV0aWwucHJ1bmVFbXB0eUNoaWxkcmVuKGRhdGEpO1xuICAgICAgYXNzZXJ0LmRlZXBFcXVhbChkYXRhLCBleHBlY3QpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9 | ||
//# sourceMappingURL=data:application/json;base64,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QUFJLEVBQUUsTUFBTTtZQUNoRCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNoQyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJmaWxlIjoidXRpbC10ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgY2hhaSA9IHJlcXVpcmUoJ2NoYWknKTtcbnZhciBhc3NlcnQgPSBjaGFpLmFzc2VydDtcbmltcG9ydCBoZWxwZXIgPSByZXF1aXJlKCcuL3Rlc3QtaGVscGVyJyk7XG5cbnZhciB1dGlsID0gcmVxdWlyZSgnLi4vdXRpbCcpO1xuXG5zdWl0ZShcIlV0aWxcIiwgZnVuY3Rpb24oKSB7XG4gIHN1aXRlKFwicHJ1bmVFbXB0eUNoaWxkcmVuXCIsIGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIFQoKSB7XG4gICAgICB0aGlzLnggPSAnZHVtbXknO1xuICAgIH1cblxuICAgIHZhciB0ZXN0cyA9IFtcbiAgICAgIFsge30sIHt9IF0sXG4gICAgICBbIHthOiAxfSwge2E6IDF9IF0sXG4gICAgICBbIHthOiB7fX0sIHt9IF0sXG4gICAgICBbIHthOiAxLCBiOiB7fX0sIHthOiAxfSBdLFxuICAgICAgWyB7YTogW119LCB7YTogW119IF0sXG4gICAgICBbIHthOiBuZXcgVCgpfSwge2E6IG5ldyBUKCl9IF0sXG4gICAgICBbIHthOiB7YToge2E6IHt9fX19LCB7fSBdLFxuICAgICAgWyB7YToge2E6IHthOiB7fSwgYjogMX19fSwge2E6IHthOiB7YjogMX19fSBdLFxuICAgICAgWyB7YTogMSwgYjogdW5kZWZpbmVkfSwge2E6IDF9IF0sXG4gICAgXTtcblxuICAgIGhlbHBlci5kYXRhRHJpdmVuVGVzdCh0ZXN0cywgZnVuY3Rpb24oZGF0YSwgZXhwZWN0KSB7XG4gICAgICB1dGlsLnBydW5lRW1wdHlDaGlsZHJlbihkYXRhKTtcbiAgICAgIGFzc2VydC5kZWVwRXF1YWwoZGF0YSwgZXhwZWN0KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgc3VpdGUoXCJwcnVuZUVtcHR5Q2hpbGRyZW5cIiwgZnVuY3Rpb24oKSB7XG4gICAgdmFyIHRlc3RzID0gW1xuICAgICAgWyB7fSwge30gXSxcbiAgICAgIFsge2E6IDF9LCB7YTogMX0gXSxcbiAgICAgIFsge2E6IDEsIGRtOiAyfSwge2E6IDF9IF0sXG4gICAgICBbIHthOiAxLCBiOiB7ZG06IDIsIGM6IDN9fSwge2E6IDEsIGI6IHtjOiAzfX0gXSxcbiAgICBdO1xuXG4gICAgaGVscGVyLmRhdGFEcml2ZW5UZXN0KHRlc3RzLCBmdW5jdGlvbihkYXRhLCBleHBlY3QpIHtcbiAgICAgIHV0aWwuZGVsZXRlUHJvcE5hbWUoZGF0YSwgJ2RtJyk7XG4gICAgICBhc3NlcnQuZGVlcEVxdWFsKGRhdGEsIGV4cGVjdCk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0= |
@@ -189,4 +189,7 @@ /* | ||
exports.ensureObjectPath = ensureObjectPath; | ||
// Remove all empty, '{}', children - returns true iff obj is empty. | ||
// Remove all empty, '{}', children and undefined - returns true iff obj is empty. | ||
function pruneEmptyChildren(obj) { | ||
if (obj === undefined) { | ||
return true; | ||
} | ||
if (obj.constructor !== Object) { | ||
@@ -210,2 +213,19 @@ return false; | ||
exports.pruneEmptyChildren = pruneEmptyChildren; | ||
function deletePropName(obj, name) { | ||
if (obj.constructor !== Object) { | ||
return; | ||
} | ||
for (var prop in obj) { | ||
if (!obj.hasOwnProperty(prop)) { | ||
continue; | ||
} | ||
if (prop === name) { | ||
delete obj[prop]; | ||
} | ||
else { | ||
deletePropName(obj[prop], name); | ||
} | ||
} | ||
} | ||
exports.deletePropName = deletePropName; | ||
function formatColumns(indent, lines) { | ||
@@ -257,2 +277,2 @@ var result = []; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInV0aWwudHMiXSwibmFtZXMiOlsibWV0aG9kcyIsImV4dGVuZCIsImNvcHlBcnJheSIsImludGVybmFsVHlwZSIsImlzVHlwZSIsInR5cGVPZiIsImlzVGhlbmFibGUiLCJtYXliZVByb21pc2UiLCJlbnN1cmVFeHRlbnNpb24iLCJyZXBsYWNlRXh0ZW5zaW9uIiwicHJldHR5SlNPTiIsImRlZXBFeHRlbmQiLCJxdW90ZVN0cmluZyIsImFycmF5SW5jbHVkZXMiLCJleHRlbmRBcnJheSIsIm9yIiwiZW5zdXJlT2JqZWN0UGF0aCIsInBydW5lRW1wdHlDaGlsZHJlbiIsImZvcm1hdENvbHVtbnMiLCJyZXBlYXRTdHJpbmciLCJmaWxsU3RyaW5nIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILDBDQUEwQztBQUMxQyxpREFBaUQ7QUFFakQsSUFBTyxPQUFPLFdBQVcsU0FBUyxDQUFDLENBQUM7QUFFcEMsaUJBQXdCLElBQUksRUFBRSxHQUFXO0lBQ3ZDQSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQSxTQUFTQSxFQUFFQSxHQUFHQSxDQUFDQSxDQUFDQTtBQUM5QkEsQ0FBQ0E7QUFGZSxlQUFPLFVBRXRCLENBQUE7QUFFRCxnQkFBdUIsSUFBWTtJQUFFQyxjQUFpQkE7U0FBakJBLFdBQWlCQSxDQUFqQkEsc0JBQWlCQSxDQUFqQkEsSUFBaUJBO1FBQWpCQSw2QkFBaUJBOztJQUNwREEsSUFBSUEsQ0FBQ0EsQ0FBQ0E7SUFDTkEsSUFBSUEsTUFBTUEsQ0FBQ0E7SUFDWEEsSUFBSUEsSUFBSUEsQ0FBQ0E7SUFFVEEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsSUFBSUEsS0FBS0EsU0FBU0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFDdkJBLElBQUlBLEdBQUdBLEVBQUVBLENBQUNBO0lBQ1pBLENBQUNBO0lBQ0RBLEdBQUdBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLEVBQUVBLENBQUNBLEdBQUdBLElBQUlBLENBQUNBLE1BQU1BLEVBQUVB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QUFDQSxDQUFDQTtRQUNwQkEsR0FBR0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsRUFBRUEsQ0FBQ0EsR0FBR0EsSUFBSUEsQ0FBQ0EsTUFBTUEsRUFBRUEsQ0FBQ0EsRUFBRUEsRUFBRUEsQ0FBQ0E7WUFDckNBLEVBQUVBLENBQUNBLENBQUNBLFVBQVVBLENBQUNBLENBQUNBLENBQUNBLEtBQUtBLFNBQVNBLENBQUNBLENBQUNBLENBQUNBO2dCQUNoQ0EsVUFBVUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsQ0FBQ0E7WUFDcEJBLENBQUNBO1lBQ0RBLFVBQVVBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLElBQUlBLENBQUNBLEdBQUdBLENBQUNBLFVBQVVBLENBQUNBLENBQUNBLENBQUNBLEVBQUVBLElBQUlBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLE1BQU1BLENBQUNBLENBQUNBO1FBQzFEQSxDQUFDQTtJQUNIQSxDQUFDQTtJQUVEQSxJQUFJQSxNQUFNQSxHQUFHQSxZQUFZQSxDQUFDQSxHQUFHQSxFQUFFQSxNQUFNQSxDQUFDQSxDQUFDQTtJQUN2Q0EsSUFBSUEsQ0FBU0EsQ0FBQ0E7SUFDZEEsR0FBR0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsRUFBRUEsQ0FBQ0EsR0FBR0EsS0FBS0EsQ0FBQ0EsTUFBTUEsRUFBRUEsQ0FBQ0EsRUFBRUEsRUFBRUEsQ0FBQ0E7UUFDdENBLElBQUlBLElBQUlBLEdBQUdBLEtBQUtBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1FBQ3BCQSxJQUFJQSxHQUFHQSxHQUFHQSxFQUFFQSxDQUFDQTtRQUNiQSxDQUFDQSxHQUFHQSxFQUFFQSxDQUFDQTtRQUNQQSxHQUFHQSxDQUFDQSxDQUFDQSxHQUFHQSxDQUFDQSxDQUFDQSxHQUFHQSxDQUFDQSxFQUFFQSxDQUFDQSxHQUFHQSxJQUFJQSxDQUFDQSxNQUFNQSxFQUFFQSxDQUFDQSxFQUFFQSxFQUFFQSxDQUFDQTtZQUNyQ0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0JBQ1pBLENBQUNBLEdBQUdBLE1BQU1BLENBQUNBO1lBQ2JBLENBQUNBO1lBQ0RBLEVBQUVBLENBQUNBLENBQUNBLENBQUNBLEtBQUtBLElBQUlBLENBQUNBLE1BQU1BLEdBQUdBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO2dCQUMxQkEsQ0FBQ0EsSUFBSUEsR0FBR0EsR0FBR0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDckJBLENBQUNBO1lBQUNBLElBQUlBLENBQUNBLENBQUNBO2dCQUNOQSxDQUFDQSxJQUFJQSxHQUFHQSxHQUFHQSxVQUFVQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQSxDQUFDQSxFQUFFQSxVQUFVQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUNoREEsQ0FBQ0E7WUFDREEsR0FBR0EsR0FBR0EsSUFBSUEsQ0FBQ0E7UUFDYkEsQ0FBQ0E7UUFDREEsTUFBTUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7SUFDakJBLENBQUNBO0lBRURBLE1BQU1BLENBQUNBLE1BQU1BLENBQUNBO0FBQ2hCQSxDQUFDQTtBQW5DZSxxQkFBYSxnQkFtQzVCLENBQUE7QUFFRCxzQkFBc0IsQ0FBUyxFQUFFLENBQVM7SUFDeENDLE1BQU1BLENBQUNBLElBQUlBLEtBQUtBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLENBQUNBLENBQUNBLElBQUlBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO0FBQ2xDQSxDQUFDQTtBQUVELG9CQUFvQixDQUFTLEVBQUUsQ0FBUztJQUN0Q0MsSUFBSUEsT0FBT0EsR0FBR0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsQ0FBQ0EsTUFBTUEsQ0FBQ0E7SUFDM0JBLEVBQUVBLENBQUNBLENBQUNBLE9BQU9BLEdBQUdBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1FBQ2hCQSxDQUFDQSxJQUFJQSxZQUFZQSxDQUFDQSxHQUFHQSxFQUFFQSxPQUFPQSxDQUFDQSxDQUFDQTtJQUNsQ0EsQ0FBQ0E7SUFDREEsTUFBTUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7QUFDWEEsQ0FBQ0EiLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLy8vIDxyZWZlcmVuY2UgcGF0aD1cInR5cGluZ3Mvbm9kZS5kLnRzXCIgLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJ0eXBpbmdzL2VzNi1wcm9taXNlLmQudHNcIiAvPlxuXG5pbXBvcnQgUHJvbWlzZSA9IHJlcXVpcmUoJ3Byb21pc2UnKTtcblxuZXhwb3J0IGZ1bmN0aW9uIG1ldGhvZHMoY3Rvciwgb2JqOiBPYmplY3QpIHtcbiAgZXh0ZW5kKGN0b3IucHJvdG90eXBlLCBvYmopO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0ZW5kKGRlc3Q6IE9iamVjdCwgLi4uc3JjczogT2JqZWN0W10pOiBPYmplY3Qge1xuICB2YXIgaTtcbiAgdmFyIHNvdXJjZTtcbiAgdmFyIHByb3A7XG5cbiAgaWYgKGRlc3QgPT09IHVuZGVmaW5lZCkge1xuICAgIGRlc3QgPSB7fTtcbiAgfVxuICBmb3IgKGkgPSAwOyBpIDwgc3Jjcy5sZW5ndGg7IGkrKykge1xuICAgIHNvdXJjZSA9IHNyY3NbaV07XG4gICAgZm9yIChwcm9wIGluIHNvdXJjZSkge1xuICAgICAgaWYgKHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShwcm9wKSkge1xuICAgICAgICBkZXN0W3Byb3BdID0gc291cmNlW3Byb3BdO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkZXN0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29weUFycmF5KGFyZzogYW55W10pOiBhbnlbXSB7XG4gIHJldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmcpO1xufVxuXG52YXIgYmFzZVR5cGVzID0gWydudW1iZXInLCAnc3RyaW5nJywgJ2Jvb2xlYW4nLCAnYXJyYXknLCAnZnVuY3Rpb24nLCAnZGF0ZScsXG4gICAgICAgICAgICAgICAgICdyZWdleHAnLCAnYXJndW1lbnRzJywgJ3VuZGVmaW5lZCcsICdudWxsJ107XG5cbmZ1bmN0aW9uIGludGVybmFsVHlwZSh2YWx1ZSk6IHN0cmluZyB7XG4gIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsdWUpLm1hdGNoKC9cXFtvYmplY3QgKC4qKVxcXS8pWzFdLnRvTG93ZXJDYXNlKCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1R5cGUodmFsdWUsIHR5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gdHlwZU9mKHZhbHVlKSA9PT0gdHlwZTtcbn1cblxuLy8gUmV0dXJuIG9uZSBvZiB0aGUgYmFzZVR5cGVzIGFzIGEgc3RyaW5nXG5leHBvcnQgZnVuY3Rpb24gdHlwZU9mKHZhbHVlKTogc3RyaW5nIHtcbiAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gJ3VuZGVmaW5lZCc7XG4gIH1cbiAgaWYgKHZhbHVlID09PSBudWxsKSB7XG4gICAgcmV0dXJuICdudWxsJztcbiAgfVxuICB2YXIgdHlwZSA9IGludGVybmFsVHlwZSh2YWx1ZSk7XG4gIGlmICghYXJyYXlJbmNsdWRlcyhiYXNlVHlwZXMsIHR5cGUpKSB7XG4gICAgdHlwZSA9IHR5cGVvZiB2YWx1ZTtcbiAgfVxuICByZXR1cm4gdHlwZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzVGhlbmFibGUob2JqKTogYm9vbGVhbiB7XG4gIHJldHVybiB0eXBlT2Yob2JqKSA9PT0gJ29iamVjdCcgJiYgJ3RoZW4nIGluIG9iaiAmJiB0eXBlb2Yob2JqLnRoZW4pID09PSAnZnVuY3Rpb24nO1xufVxuXG4vLyBDb252ZXJ0cyBhIHN5bmNocm9ub3VzIGZ1bmN0aW9uIHRvIG9uZSBhbGxvd2luZyBQcm9taXNlc1xuLy8gYXMgYXJndW1lbnRzIGFuZCByZXR1cm5pbmcgYSBQcm9taXNlIHZhbHVlLlxuLy9cbi8vICAgZm4oYSwgYiwgYywgLi4uKTp2ID0+IGZuKGFQLCBiUCwgY1AsIC4uLik6IFB2XG4vL1xuLy8gSWYgbm9uZSBvZiB0aGUgYXJndW1lbnRzIGFyZSBUaGVuYWJsZXMsIHRoZW4gdGhlIHdyYXBwZWRcbi8vIGZ1bmN0aW9uIHJldHVybnMgYSBzeW5jaHJvbm91cyB2YWx1ZSAobm90IHdyYXBwZWQgaW4gYSBQcm9taXNlKS5cbmV4cG9ydCBmdW5jdGlvbiBtYXliZVByb21pc2UoZm46ICguLi5hbnkpID0+IGFueSk6ICguLi5hbnkpID0+IGFueSB7XG4gIHJldHVybiBmdW5jdGlvbiguLi5hcmdzKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIGlmICghYXJncy5zb21lKGlzVGhlbmFibGUpKSB7XG4gICAgICByZXR1cm4gZm4uYXBwbHkoc2VsZiwgYXJncyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIFByb21pc2UuYWxsKGFyZ3MpXG4gICAgICAudGhlbihmdW5jdGlvbih2YWx1ZXMpIHtcbiAgICAgICAgcmV0dXJuIGZuLmFwcGx5KHNlbGYsIHZhbHVlcyk7XG4gICAgICB9KTtcbiAgfTtcbn1cblxuZXhwb3J0IHZhciBnZXRQcm9wID0gbWF5YmVQcm9taXNlKGZ1bmN0aW9uKG9iaiwgcHJvcCkge1xuICByZXR1cm4gb2JqW3Byb3BdO1xufSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnN1cmVFeHRlbnNpb24oZmlsZU5hbWU6IHN0cmluZywgZXh0ZW5zaW9uOiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoZmlsZU5hbWUuaW5kZXhPZignLicpID09PSAtMSkge1xuICAgIHJldHVybiBmaWxlTmFtZSArICcuJyArIGV4dGVuc2lvbjtcbiAgfVxuICByZXR1cm4gZmlsZU5hbWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXBsYWNlRXh0ZW5zaW9uKGZpbGVOYW1lOiBzdHJpbmcsIGV4dGVuc2lvbjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGZpbGVOYW1lLnJlcGxhY2UoL1xcLlteXFwuXSokLywgJy4nICsgZXh0ZW5zaW9uKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByZXR0eUpTT04obzogYW55KTogc3RyaW5nIHtcbiAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KG8sIG51bGwsIDIpO1xufVxuXG5mdW5jdGlvbiBkZWVwRXh0ZW5kKHRhcmdldDogT2JqZWN0LCBzb3VyY2U6IE9iamVjdCk6IHZvaWQge1xuICBmb3IgKHZhciBwcm9wIGluIHNvdXJjZSkge1xuICAgIGlmICghc291cmNlLmhhc093blByb3BlcnR5KHByb3ApKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAodGFyZ2V0W3Byb3BdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIlByb3BlcnR5IG92ZXJ3cml0ZTogXCIgKyBwcm9wKTtcbiAgICB9XG5cbiAgICBpZiAoaXNUeXBlKHNvdXJjZVtwcm9wXSwgJ29iamVjdCcpKSB7XG4gICAgICB0YXJnZXRbcHJvcF0gPSB7fTtcbiAgICAgIGRlZXBFeHRlbmQodGFyZ2V0W3Byb3BdLCBzb3VyY2VbcHJvcF0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0YXJnZXRbcHJvcF0gPSBzb3VyY2VbcHJvcF07XG4gICAgfVxuICB9XG59XG5cbi8vIExpa2UgSlNPTi5zdHJpbmdpZnkgLSBidXQgZm9yIHNpbmdsZS1xdW90ZWQgc3RyaW5ncyBpbnN0ZWFkIG9mIGRvdWJsZS1xdW90ZWQgb25lcy5cbi8vIFRoaXMganVzdCBtYWtlcyB0aGUgY29tcGlsZWQgcnVsZXMgbXVjaCBlYXNpZXIgdG8gcmVhZC5cblxuLy8gUXVvdGUgYWxsIGNvbnRyb2wgY2hhcmFjdGVycywgc2xhc2gsIHNpbmdsZSBxdW90ZXMsIGFuZCBub24tYXNjaWkgcHJpbnRhYmxlcy5cbnZhciBxdW90YWJsZUNoYXJhY3RlcnMgPSAvW1xcdTAwMDAtXFx1MDAxZlxcXFxcXCdcXHUwMDdmLVxcdWZmZmZdL2c7XG52YXIgc3BlY2lhbFF1b3RlcyA9IHtcbiAgJ1xcJyc6ICdcXFxcXFwnJyxcbiAgJ1xcYic6ICdcXFxcYicsXG4gICdcXHQnOiAnXFxcXHQnLFxuICAnXFxuJzogJ1xcXFxuJyxcbiAgJ1xcZic6ICdcXFxcZicsXG4gICdcXHInOiAnXFxcXHInXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gcXVvdGVTdHJpbmcoczogc3RyaW5nKTogc3RyaW5nIHtcbiAgcyA9IHMucmVwbGFjZShxdW90YWJsZUNoYXJhY3RlcnMsIGZ1bmN0aW9uKGMpIHtcbiAgICBpZiAoc3BlY2lhbFF1b3Rlc1tjXSkge1xuICAgICAgcmV0dXJuIHNwZWNpYWxRdW90ZXNbY107XG4gICAgfVxuICAgIHJldHVybiAnXFxcXHUnICsgKCcwMDAwJyArIGMuY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikpLnNsaWNlKC00KTtcbiAgfSk7XG4gIHJldHVybiBcIidcIiArIHMgKyBcIidcIjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFycmF5SW5jbHVkZXMoYTogYW55W10sIGUpOiBib29sZWFuIHtcbiAgcmV0dXJuIGEuaW5kZXhPZihlKSAhPT0gLTE7XG59XG5cbi8vIExpa2UgUHl0aG9uIGxpc3QuZXh0ZW5kXG5leHBvcnQgZnVuY3Rpb24gZXh0ZW5kQXJyYXkodGFyZ2V0LCBzcmMpIHtcbiAgaWYgKHRhcmdldCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdGFyZ2V0ID0gW107XG4gIH1cbiAgQXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkodGFyZ2V0LCBzcmMpO1xuICByZXR1cm4gdGFyZ2V0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gb3IodGFyZ2V0LCBzcmMpIHtcbiAgaWYgKHRhcmdldCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiB0YXJnZXQgfHwgc3JjO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZW5zdXJlT2JqZWN0UGF0aChvYmo6IE9iamVjdCwgcGFydHM6IHN0cmluZ1tdKTogT2JqZWN0IHtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYXJ0cy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBuYW1lID0gcGFydHNbaV07XG4gICAgaWYgKCEobmFtZSBpbiBvYmopKSB7XG4gICAgICBvYmpbbmFtZV0gPSB7fTtcbiAgICB9XG4gICAgb2JqID0gb2JqW25hbWVdO1xuICB9XG4gIHJldHVybiBvYmo7XG59XG5cbi8vIFJlbW92ZSBhbGwgZW1wdHksICd7fScsICBjaGlsZHJlbiAtIHJldHVybnMgdHJ1ZSBpZmYgb2JqIGlzIGVtcHR5LlxuZXhwb3J0IGZ1bmN0aW9uIHBydW5lRW1wdHlDaGlsZHJlbihvYmo6IE9iamVjdCk6IGJvb2xlYW4ge1xuICBpZiAob2JqLmNvbnN0cnVjdG9yICE9PSBPYmplY3QpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgdmFyIGhhc0NoaWxkcmVuID0gZmFsc2U7XG4gIGZvciAodmFyIHByb3AgaW4gb2JqKSB7XG4gICAgaWYgKCFvYmouaGFzT3duUHJvcGVydHkocHJvcCkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBpZiAocHJ1bmVFbXB0eUNoaWxkcmVuKG9ialtwcm9wXSkpIHtcbiAgICAgIGRlbGV0ZSBvYmpbcHJvcF07XG4gICAgfSBlbHNlIHtcbiAgICAgIGhhc0NoaWxkcmVuID0gdHJ1ZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuICFoYXNDaGlsZHJlbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdENvbHVtbnMoaW5kZW50OiBudW1iZXIsIGxpbmVzOiBzdHJpbmdbXVtdKTogc3RyaW5nW10ge1xuICBsZXQgcmVzdWx0OiBzdHJpbmdbXSA9IFtdO1xuICBsZXQgY29sdW1uU2l6ZSA9IFtdO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbGluZXMubGVuZ3RoOyBpKyspIHtcbiAgICBsZXQgbGluZSA9IGxpbmVzW2ldO1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgbGluZS5sZW5ndGg7IGorKykge1xuICAgICAgaWYgKGNvbHVtblNpemVbal0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjb2x1bW5TaXplW2pdID0gMDtcbiAgICAgIH1cbiAgICAgIGNvbHVtblNpemVbal0gPSBNYXRoLm1heChjb2x1bW5TaXplW2pdLCBsaW5lW2pdLmxlbmd0aCk7XG4gICAgfVxuICB9XG5cbiAgdmFyIHByZWZpeCA9IHJlcGVhdFN0cmluZygnICcsIGluZGVudCk7XG4gIHZhciBzOiBzdHJpbmc7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbGluZXMubGVuZ3RoOyBpKyspIHtcbiAgICBsZXQgbGluZSA9IGxpbmVzW2ldO1xuICAgIGxldCBzZXAgPSBcIlwiO1xuICAgIHMgPSBcIlwiO1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgbGluZS5sZW5ndGg7IGorKykge1xuICAgICAgaWYgKGogPT09IDApIHtcbiAgICAgICAgcyA9IHByZWZpeDtcbiAgICAgIH1cbiAgICAgIGlmIChqID09PSBsaW5lLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgcyArPSBzZXAgKyBsaW5lW2pdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcyArPSBzZXAgKyBmaWxsU3RyaW5nKGxpbmVbal0sIGNvbHVtblNpemVbal0pO1xuICAgICAgfVxuICAgICAgc2VwID0gXCIgIFwiO1xuICAgIH1cbiAgICByZXN1bHQucHVzaChzKTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmZ1bmN0aW9uIHJlcGVhdFN0cmluZyhzOiBzdHJpbmcsIG46IG51bWJlcik6IHN0cmluZyB7XG4gIHJldHVybiBuZXcgQXJyYXkobiArIDEpLmpvaW4ocyk7XG59XG5cbmZ1bmN0aW9uIGZpbGxTdHJpbmcoczogc3RyaW5nLCBuOiBudW1iZXIpOiBzdHJpbmcge1xuICBsZXQgcGFkZGluZyA9IG4gLSBzLmxlbmd0aDtcbiAgaWYgKHBhZGRpbmcgPiAwKSB7XG4gICAgcyArPSByZXBlYXRTdHJpbmcoJyAnLCBwYWRkaW5nKTtcbiAgfVxuICByZXR1cm4gcztcbn1cbiJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInV0aWwudHMiXSwibmFtZXMiOlsibWV0aG9kcyIsImV4dGVuZCIsImNvcHlBcnJheSIsImludGVybmFsVHlwZSIsImlzVHlwZSIsInR5cGVPZiIsImlzVGhlbmFibGUiLCJtYXliZVByb21pc2UiLCJlbnN1cmVFeHRlbnNpb24iLCJyZXBsYWNlRXh0ZW5zaW9uIiwicHJldHR5SlNPTiIsImRlZXBFeHRlbmQiLCJxdW90ZVN0cmluZyIsImFycmF5SW5jbHVkZXMiLCJleHRlbmRBcnJheSIsIm9yIiwiZW5zdXJlT2JqZWN0UGF0aCIsInBydW5lRW1wdHlDaGlsZHJlbiIsImRlbGV0ZVByb3BOYW1lIiwiZm9ybWF0Q29sdW1ucyIsInJlcGVhdFN0cmluZyIsImZpbGxTdHJpbmciXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsMENBQTBDO0FBQzFDLGlEQUFpRDtBQUVqRCxJQUFPLE9BQU8sV0FBVyxTQUFTLENBQUMsQ0FBQztBQUVwQyxpQkFBd0IsSUFBSSxFQUFFLEdBQVc7SUFDdkNBLE1BQU1BLENBQUNBLElBQUlBLENBQUNBLFNBQVNBLEVBQUVBLEdBQUdBLENBQUNBLENBQUNBO0FBQzlCQSxDQUFDQTtBQUZlLGVBQU8sVUFFdEIsQ0FBQTtBQUVELGdCQUF1QixJQUFZO0lBQUVDLGNBQWlCQTtTQUFqQkEsV0FBaUJBLENBQWpCQSxzQkFBaUJBLENBQWpCQSxJQUFpQkE7UUFBakJBLDZCQUFpQkE7O0lBQ3BEQSxJQUFJQSxDQUFDQSxDQUFDQTtJQUNOQSxJQUFJQSxNQUFNQSxDQUFDQTtJQUNYQSxJQUFJQSxJQUFJQSxDQUFDQTtJQUVUQSxFQUFFQSxDQUFDQSxDQUFDQSxJQUFJQSxLQUFLQSxTQUFTQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUN2QkEsSUFBSUEsR0FBR0EsRUFBRUEsQ0FBQ0E7SUFDWkEsQ0FBQ0E7SUFDREEsR0FBR0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsRUFBRUEsQ0FBQ0EsR0FBR0EsSUFBSUEsQ0FBQ0EsTUFBTUEsRUFBRUEsQ0FBQ0EsRUFBRUEsRUFBRUEsQ0FBQ0E7UUFDakNBLE1BQU1BLEdBQUdBLElBQUlBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1FBQ2pCQSxHQUFHQSxDQUFDQSxDQUFDQSxJQUFJQSxJQUFJQSxNQUFNQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUNwQkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsY0FBY0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0JBQ2hDQSxJQUFJQSxDQUFDQSxJQUFJQSxDQUFDQSxHQUFHQSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtZQUM1QkEsQ0FBQ0E7UUFDSEEsQ0FBQ0E7SUFDSEEsQ0FBQ0E7SUFFREEsTUFBTUEsQ0FBQ0EsSUFBSUEsQ0FBQ0E7QUFDZEEsQ0FBQ0E7QUFsQmUsY0FBTSxTQWtCckIsQ0FBQTtBQUVELG1CQUEwQixHQUFVO0lBQ2xDQyxNQUFNQSxDQUFDQSxLQUFLQSxDQUFDQSxTQUFTQSxDQUFDQSxLQUFLQSxDQUFDQSxJQUFJQSxDQUFDQSxHQUFHQSxDQUFDQSxDQUFDQTtBQUN6Q0EsQ0FBQ0E7QUFGZSxpQkFBUyxZQUV4QixDQUFBO0FBRUQsSUFBSSxTQUFTLEdBQUcsQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU07SUFDMUQsUUFBUSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFFN0Qsc0JBQXNCLEtBQUs7SUFDekJDLE1BQU1BLENBQUNBLE1BQU1BLENBQUNBLFNBQVNBLENBQUNBLFFBQVFBLENBQUNBLElBQUlBLENBQUNBLEtBQUtBLENBQUNBLENBQUNBLEtBQUtBLENBQUNBLGlCQUFpQkEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsV0FBV0EsRUFBRUEsQ0FBQ0E7QUFDekZBLENBQUNBO0FBRUQsZ0JBQXVCLEtBQUssRUFBRSxJQUFZO0lBQ3hDQyxNQUFNQSxDQUFDQSxNQUFNQSxDQUFDQSxLQUFLQSxDQUFDQSxLQUFLQSxJQUFJQSxDQUFDQTtBQUNoQ0EsQ0FBQ0E7QUFGZSxjQUFNLFNBRXJCLENBQUE7QUFFRCwwQ0FBMEM7QUFDMUMsZ0JBQXVCLEtBQUs7SUFDMUJDLEVBQUVBLENBQUNBLENBQUNBLEtBQUtBLEtBQUtBLFNBQVNBLENBQUNBLENBQUNBLENBQUNBO1FBQ3hCQSxNQUFNQSxDQUFDQSxXQUFXQSxDQUFDQTtJQUNyQkEsQ0FBQ0E7SUFDREEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsS0FBS0EsS0FBS0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFDbkJBLE1BQU1BLENBQUNBLE1BQU1BLENBQUNBO0lBQ2hCQSxDQUFDQTtJQUNEQSxJQUFJQSxJQUFJQSxHQUFHQSxZQUFZQSxDQUFDQSxLQUFLQSxDQUFDQSxDQUFDQTtJQUMvQkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsYUFBYUEsQ0FBQ0EsU0FBU0EsRUFBRUEsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFDcENBLElBQUlBLEdBQUdBLE9BQU9BLEtBQUtBLENBQUNBO0lBQ3RCQSxDQUFDQTtJQUNEQSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQTtBQUNkQSxDQUFDQTtBQVplLGNBQU0sU0FZckIsQ0FBQTtBQUVELG9CQUEyQixHQUFHO0lBQzVCQyxNQUFNQSxDQUFDQSxNQUFNQSxDQUFDQSxHQUFHQSxDQUFDQSxLQUFLQSxRQUFRQSxJQUFJQSxNQUFNQSxJQUFJQSxHQUFHQSxJQUFJQSxPQUFNQSxDQUFDQSxHQUFHQSxDQUFDQSxJQUFJQSxDQUFDQSxLQUFLQSxVQUFVQSxDQUFDQTtBQUN0RkEsQ0FBQ0E7QUFGZSxrQkFBVSxhQUV6QixDQUFBO0FBRUQsMkRBQTJEO0FBQzNELDhDQUE4QztBQUM5QyxFQUFFO0FBQ0Ysa0RBQWtEO0FBQ2xELEVBQUU7QUFDRiwyREFBMkQ7QUFDM0QsbUVBQW1FO0FBQ25FLHNCQUE2QixFQUFtQjtJQUM5Q0MsTUFBTUEsQ0FBQ0E7UUFBUyxjQUFPO2FBQVAsV0FBTyxDQUFQLHNCQUFPLENBQVAsSUFBTztZQUFQLDZCQUFPOztRQUNyQixJQUFJLElBQUksR0FBRyxJQUFJLENBQUM7UUFDaEIsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzQixNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDOUIsQ0FBQztRQUVELE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQzthQUNyQixJQUFJLENBQUMsVUFBUyxNQUFNO1lBQ25CLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNoQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUMsQ0FBQ0E7QUFDSkEsQ0FBQ0E7QUFaZSxvQkFBWSxlQVkzQixDQUFBO0FBRVUsZUFBTyxHQUFHLFlBQVksQ0FBQyxVQUFTLEdBQUcsRUFBRSxJQUFJO0lBQ2xELE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDbkIsQ0FBQyxDQUFDLENBQUM7QUFFSCx5QkFBZ0MsUUFBZ0IsRUFBRSxTQUFpQjtJQUNqRUMsRUFBRUEsQ0FBQ0EsQ0FBQ0EsUUFBUUEsQ0FBQ0EsT0FBT0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFDakNBLE1BQU1BLENBQUNBLFFBQVFBLEdBQUdBLEdBQUdBLEdBQUdBLFNBQVNBLENBQUNBO0lBQ3BDQSxDQUFDQTtJQUNEQSxNQUFNQSxDQUFDQSxRQUFRQSxDQUFDQTtBQUNsQkEsQ0FBQ0E7QUFMZSx1QkFBZSxrQkFLOUIsQ0FBQTtBQUVELDBCQUFpQyxRQUFnQixFQUFFLFNBQWlCO0lBQ2xFQyxNQUFNQSxDQUFDQSxRQUFRQSxDQUFDQSxPQUFPQSxDQUFDQSxXQUFXQSxFQUFFQSxHQUFHQSxHQUFHQSxTQUFTQSxDQUFDQSxDQUFDQTtBQUN4REEsQ0FBQ0E7QUFGZSx3QkFBZ0IsbUJBRS9CLENBQUE7QUFFRCxvQkFBMkIsQ0FBTTtJQUMvQkMsTUFBTUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsU0FBU0EsQ0FBQ0EsQ0FBQ0EsRUFBRUEsSUFBSUEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7QUFDcENBLENBQUNBO0FBRmUsa0JBQVUsYUFFekIsQ0FBQTtBQUVELG9CQUFvQixNQUFjLEVBQUUsTUFBYztJQUNoREMsR0FBR0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsSUFBSUEsSUFBSUEsTUFBTUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFDeEJBLEVBQUVBLENBQUNBLENBQUNBLENBQUNBLE1BQU1BLENBQUNBLGNBQWNBLENBQUNBLElBQUlBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1lBQ2pDQSxRQUFRQSxDQUFDQTtRQUNYQSxDQUFDQTtRQUVEQSxFQUFFQSxDQUFDQSxDQUFDQSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQSxLQUFLQSxTQUFTQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUMvQkEsTUFBTUEsSUFBSUEsS0FBS0EsQ0FBQ0Esc0JBQXNCQSxHQUFHQSxJQUFJQSxDQUFDQSxDQUFDQTtRQUNqREEsQ0FBQ0E7UUFFREEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsTUFBTUEsQ0FBQ0EsTUFBTUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsRUFBRUEsUUFBUUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDbkNBLE1BQU1BLENBQUNBLElBQUlBLENBQUNBLEdBQUdBLEVBQUVBLENBQUNBO1lBQ2xCQSxVQUFVQSxDQUFDQSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQSxFQUFFQSxNQUFNQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUN6Q0EsQ0FBQ0E7UUFBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7WUFDTkEsTUFBTUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsR0FBR0EsTUFBTUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7UUFDOUJBLENBQUNBO0lBQ0hBLENBQUNBO0FBQ0hBLENBQUNBO0FBRUQscUZBQXFGO0FBQ3JGLDBEQUEwRDtBQUUxRCxnRkFBZ0Y7QUFDaEYsSUFBSSxrQkFBa0IsR0FBRyxtQ0FBbUMsQ0FBQztBQUM3RCxJQUFJLGFBQWEsR0FBRztJQUNsQixJQUFJLEVBQUUsTUFBTTtJQUNaLElBQUksRUFBRSxLQUFLO0lBQ1gsSUFBSSxFQUFFLEtBQUs7SUFDWCxJQUFJLEVBQUUsS0FBSztJQUNYLElBQUksRUFBRSxLQUFLO0lBQ1gsSUFBSSxFQUFFLEtBQUs7Q0FDWixDQUFDO0FBRUYscUJBQTRCLENBQVM7SUFDbkNDLENBQUNBLEdBQUdBLENBQUNBLENBQUNBLE9BQU9BLENBQUNBLGtCQUFrQkEsRUFBRUEsVUFBU0EsQ0FBQ0E7UUFDMUMsRUFBRSxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyQixNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFCLENBQUM7UUFDRCxNQUFNLENBQUMsS0FBSyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbkUsQ0FBQyxDQUFDQSxDQUFDQTtJQUNIQSxNQUFNQSxDQUFDQSxHQUFHQSxHQUFHQSxDQUFDQSxHQUFHQSxHQUFHQSxDQUFDQTtBQUN2QkEsQ0FBQ0E7QUFSZSxtQkFBVyxjQVExQixDQUFBO0FBRUQsdUJBQThCLENBQVEsRUFBRSxDQUFDO0lBQ3ZDQyxNQUFNQSxDQUFDQSxDQUFDQSxDQUFDQSxPQUFPQSxDQUFDQSxDQUFDQSxDQUFDQSxLQUFLQSxDQUFDQSxDQUFDQSxDQUFDQTtBQUM3QkEsQ0FBQ0E7QUFGZSxxQkFBYSxnQkFFNUIsQ0FBQTtBQUVELDBCQUEwQjtBQUMxQixxQkFBNEIsTUFBTSxFQUFFLEdBQUc7SUFDckNDLEVBQUVBLENBQUNBLENBQUNBLE1BQU1BLEtBQUtBLFNBQVNBLENBQUNBLENBQUNBLENBQUNBO1FBQ3pCQSxNQUFNQSxHQUFHQSxFQUFFQSxDQUFDQTtJQUNkQSxDQUFDQTtJQUNEQSxLQUFLQSxDQUFDQSxTQUFTQSxDQUFDQSxJQUFJQSxDQUFDQSxLQUFLQSxDQUFDQSxNQUFNQSxFQUFFQSxHQUFHQSxDQUFDQSxDQUFDQTtJQUN4Q0EsTUFBTUEsQ0FBQ0EsTUFBTUEsQ0FBQ0E7QUFDaEJBLENBQUNBO0FBTmUsbUJBQVcsY0FNMUIsQ0FBQTtBQUVELFlBQW1CLE1BQU0sRUFBRSxHQUFHO0lBQzVCQyxFQUFFQSxDQUFDQSxDQUFDQSxNQUFNQSxLQUFLQSxTQUFTQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUN6QkEsTUFBTUEsQ0FBQ0EsS0FBS0EsQ0FBQ0E7SUFDZkEsQ0FBQ0E7SUFDREEsTUFBTUEsQ0FBQ0EsTUFBTUEsSUFBSUEsR0FBR0EsQ0FBQ0E7QUFDdkJBLENBQUNBO0FBTGUsVUFBRSxLQUtqQixDQUFBO0FBRUQsMEJBQWlDLEdBQVcsRUFBRSxLQUFlO0lBQzNEQyxHQUFHQSxDQUFDQSxDQUFDQSxHQUFHQSxDQUFDQSxDQUFDQSxHQUFHQSxDQUFDQSxFQUFFQSxDQUFDQSxHQUFHQSxLQUFLQSxDQUFDQSxNQUFNQSxFQUFFQSxDQUFDQSxFQUFFQSxFQUFFQSxDQUFDQTtRQUN0Q0EsSUFBSUEsSUFBSUEsR0FBR0EsS0FBS0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFDcEJBLEVBQUVBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLElBQUlBLElBQUlBLEdBQUdBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1lBQ25CQSxHQUFHQSxDQUFDQSxJQUFJQSxDQUFDQSxHQUFHQSxFQUFFQSxDQUFDQTtRQUNqQkEsQ0FBQ0E7UUFDREEsR0FBR0EsR0FBR0EsR0FBR0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7SUFDbEJBLENBQUNBO0lBQ0RBLE1BQU1BLENBQUNBLEdBQUdBLENBQUNBO0FBQ2JBLENBQUNBO0FBVGUsd0JBQWdCLG1CQVMvQixDQUFBO0FBRUQsbUZBQW1GO0FBQ25GLDRCQUFtQyxHQUFXO0lBQzVDQyxFQUFFQSxDQUFDQSxDQUFDQSxHQUFHQSxLQUFLQSxTQUFTQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUN0QkEsTUFBTUEsQ0FBQ0EsSUFBSUEsQ0FBQ0E7SUFDZEEsQ0FBQ0E7SUFDREEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsV0FBV0EsS0FBS0EsTUFBTUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFDL0JBLE1BQU1BLENBQUNBLEtBQUtBLENBQUNBO0lBQ2ZBLENBQUNBO0lBQ0RBLElBQUlBLFdBQVdBLEdBQUdBLEtBQUtBLENBQUNBO0lBQ3hCQSxHQUFHQSxDQUFDQSxDQUFDQSxHQUFHQSxDQUFDQSxJQUFJQSxJQUFJQSxHQUFHQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUNyQkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsY0FBY0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDOUJBLFFBQVFBLENBQUNBO1FBQ1hBLENBQUNBO1FBQ0RBLEVBQUVBLENBQUNBLENBQUNBLGtCQUFrQkEsQ0FBQ0EsR0FBR0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDbENBLE9BQU9BLEdBQUdBLENBQUNBLElBQUlBLENBQUNBLENBQUNBO1FBQ25CQSxDQUFDQTtRQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtZQUNOQSxXQUFXQSxHQUFHQSxJQUFJQSxDQUFDQTtRQUNyQkEsQ0FBQ0E7SUFDSEEsQ0FBQ0E7SUFDREEsTUFBTUEsQ0FBQ0EsQ0FBQ0EsV0FBV0EsQ0FBQ0E7QUFDdEJBLENBQUNBO0FBbkJlLDBCQUFrQixxQkFtQmpDLENBQUE7QUFFRCx3QkFBK0IsR0FBVyxFQUFFLElBQVk7SUFDdERDLEVBQUVBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLFdBQVdBLEtBQUtBLE1BQU1BLENBQUNBLENBQUNBLENBQUNBO1FBQy9CQSxNQUFNQSxDQUFDQTtJQUNUQSxDQUFDQTtJQUNEQSxHQUFHQSxDQUFDQSxDQUFDQSxHQUFHQSxDQUFDQSxJQUFJQSxJQUFJQSxHQUFHQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUNyQkEsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsY0FBY0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDOUJBLFFBQVFBLENBQUNBO1FBQ1hBLENBQUNBO1FBQ0RBLEVBQUVBLENBQUNBLENBQUNBLElBQUlBLEtBQUtBLElBQUlBLENBQUNBLENBQUNBLENBQUNBO1lBQ2xCQSxPQUFPQSxHQUFHQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQTtRQUNuQkEsQ0FBQ0E7UUFBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0E7WUFDTkEsY0FBY0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsRUFBRUEsSUFBSUEsQ0FBQ0EsQ0FBQ0E7UUFDbENBLENBQUNBO0lBQ0hBLENBQUNBO0FBQ0hBLENBQUNBO0FBZGUsc0JBQWMsaUJBYzdCLENBQUE7QUFFRCx1QkFBOEIsTUFBYyxFQUFFLEtBQWlCO0lBQzdEQyxJQUFJQSxNQUFNQSxHQUFhQSxFQUFFQSxDQUFDQTtJQUMxQkEsSUFBSUEsVUFBVUEsR0FBR0EsRUFBRUEsQ0FBQ0E7SUFFcEJBLEdBQUdBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLEVBQUVBLENBQUNBLEdBQUdBLEtBQUtBLENBQUNBLE1BQU1BLEVBQUVBLENBQUNBLEVBQUVBLEVBQUVBLENBQUNBO1FBQ3RDQSxJQUFJQSxJQUFJQSxHQUFHQSxLQUFLQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUNwQkEsR0FBR0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsRUFBRUEsQ0FBQ0EsR0FBR0EsSUFBSUEsQ0FBQ0EsTUFBTUEsRUFBRUEsQ0FBQ0EsRUFBRUEsRUFBRUEsQ0FBQ0E7WUFDckNBLEVBQUVBLENBQUNBLENBQUNBLFVBQVVBLENBQUNBLENBQUNBLENBQUNBLEtBQUtBLFNBQVNBLENBQUNBLENBQUNBLENBQUNBO2dCQUNoQ0EsVUFBVUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsQ0FBQ0E7WUFDcEJBLENBQUNBO1lBQ0RBLFVBQVVBLENBQUNBLENBQUNBLENBQUNBLEdBQUdBLElBQUlBLENBQUNBLEdBQUdBLENBQUNBLFVBQVVBLENBQUNBLENBQUNBLENBQUNBLEVBQUVBLElBQUlBLENBQUNBLENBQUNBLENBQUNBLENBQUNBLE1BQU1BLENBQUNBLENBQUNBO1FBQzFEQSxDQUFDQTtJQUNIQSxDQUFDQTtJQUVEQSxJQUFJQSxNQUFNQSxHQUFHQSxZQUFZQSxDQUFDQSxHQUFHQSxFQUFFQSxNQUFNQSxDQUFDQSxDQUFDQTtJQUN2Q0EsSUFBSUEsQ0FBU0EsQ0FBQ0E7SUFDZEEsR0FBR0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsRUFBRUEsQ0FBQ0EsR0FBR0EsS0FBS0EsQ0FBQ0EsTUFBTUEsRUFBRUEsQ0FBQ0EsRUFBRUEsRUFBRUEsQ0FBQ0E7UUFDdENBLElBQUlBLElBQUlBLEdBQUdBLEtBQUtBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1FBQ3BCQSxJQUFJQSxHQUFHQSxHQUFHQSxFQUFFQSxDQUFDQTtRQUNiQSxDQUFDQSxHQUFHQSxFQUFFQSxDQUFDQTtRQUNQQSxHQUFHQSxDQUFDQSxDQUFDQSxHQUFHQSxDQUFDQSxDQUFDQSxHQUFHQSxDQUFDQSxFQUFFQSxDQUFDQSxHQUFHQSxJQUFJQSxDQUFDQSxNQUFNQSxFQUFFQSxDQUFDQSxFQUFFQSxFQUFFQSxDQUFDQTtZQUNyQ0EsRUFBRUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0JBQ1pBLENBQUNBLEdBQUdBLE1BQU1BLENBQUNBO1lBQ2JBLENBQUNBO1lBQ0RBLEVBQUVBLENBQUNBLENBQUNBLENBQUNBLEtBQUtBLElBQUlBLENBQUNBLE1BQU1BLEdBQUdBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO2dCQUMxQkEsQ0FBQ0EsSUFBSUEsR0FBR0EsR0FBR0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDckJBLENBQUNBO1lBQUNBLElBQUlBLENBQUNBLENBQUNBO2dCQUNOQSxDQUFDQSxJQUFJQSxHQUFHQSxHQUFHQSxVQUFVQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQSxDQUFDQSxFQUFFQSxVQUFVQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUNoREEsQ0FBQ0E7WUFDREEsR0FBR0EsR0FBR0EsSUFBSUEsQ0FBQ0E7UUFDYkEsQ0FBQ0E7UUFDREEsTUFBTUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7SUFDakJBLENBQUNBO0lBRURBLE1BQU1BLENBQUNBLE1BQU1BLENBQUNBO0FBQ2hCQSxDQUFDQTtBQW5DZSxxQkFBYSxnQkFtQzVCLENBQUE7QUFFRCxzQkFBc0IsQ0FBUyxFQUFFLENBQVM7SUFDeENDLE1BQU1BLENBQUNBLElBQUlBLEtBQUtBLENBQUNBLENBQUNBLEdBQUdBLENBQUNBLENBQUNBLENBQUNBLElBQUlBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO0FBQ2xDQSxDQUFDQTtBQUVELG9CQUFvQixDQUFTLEVBQUUsQ0FBUztJQUN0Q0MsSUFBSUEsT0FBT0EsR0FBR0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EsQ0FBQ0EsTUFBTUEsQ0FBQ0E7SUFDM0JBLEVBQUVBLENBQUNBLENBQUNBLE9BQU9BLEdBQUdBLENBQUNBLENBQUNBLENBQUNBLENBQUNBO1FBQ2hCQSxDQUFDQSxJQUFJQSxZQUFZQSxDQUFDQSxHQUFHQSxFQUFFQSxPQUFPQSxDQUFDQSxDQUFDQTtJQUNsQ0EsQ0FBQ0E7SUFDREEsTUFBTUEsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7QUFDWEEsQ0FBQ0EiLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLy8vIDxyZWZlcmVuY2UgcGF0aD1cInR5cGluZ3Mvbm9kZS5kLnRzXCIgLz5cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJ0eXBpbmdzL2VzNi1wcm9taXNlLmQudHNcIiAvPlxuXG5pbXBvcnQgUHJvbWlzZSA9IHJlcXVpcmUoJ3Byb21pc2UnKTtcblxuZXhwb3J0IGZ1bmN0aW9uIG1ldGhvZHMoY3Rvciwgb2JqOiBPYmplY3QpIHtcbiAgZXh0ZW5kKGN0b3IucHJvdG90eXBlLCBvYmopO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0ZW5kKGRlc3Q6IE9iamVjdCwgLi4uc3JjczogT2JqZWN0W10pOiBPYmplY3Qge1xuICB2YXIgaTtcbiAgdmFyIHNvdXJjZTtcbiAgdmFyIHByb3A7XG5cbiAgaWYgKGRlc3QgPT09IHVuZGVmaW5lZCkge1xuICAgIGRlc3QgPSB7fTtcbiAgfVxuICBmb3IgKGkgPSAwOyBpIDwgc3Jjcy5sZW5ndGg7IGkrKykge1xuICAgIHNvdXJjZSA9IHNyY3NbaV07XG4gICAgZm9yIChwcm9wIGluIHNvdXJjZSkge1xuICAgICAgaWYgKHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShwcm9wKSkge1xuICAgICAgICBkZXN0W3Byb3BdID0gc291cmNlW3Byb3BdO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkZXN0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29weUFycmF5KGFyZzogYW55W10pOiBhbnlbXSB7XG4gIHJldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmcpO1xufVxuXG52YXIgYmFzZVR5cGVzID0gWydudW1iZXInLCAnc3RyaW5nJywgJ2Jvb2xlYW4nLCAnYXJyYXknLCAnZnVuY3Rpb24nLCAnZGF0ZScsXG4gICAgICAgICAgICAgICAgICdyZWdleHAnLCAnYXJndW1lbnRzJywgJ3VuZGVmaW5lZCcsICdudWxsJ107XG5cbmZ1bmN0aW9uIGludGVybmFsVHlwZSh2YWx1ZSk6IHN0cmluZyB7XG4gIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsdWUpLm1hdGNoKC9cXFtvYmplY3QgKC4qKVxcXS8pWzFdLnRvTG93ZXJDYXNlKCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1R5cGUodmFsdWUsIHR5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gdHlwZU9mKHZhbHVlKSA9PT0gdHlwZTtcbn1cblxuLy8gUmV0dXJuIG9uZSBvZiB0aGUgYmFzZVR5cGVzIGFzIGEgc3RyaW5nXG5leHBvcnQgZnVuY3Rpb24gdHlwZU9mKHZhbHVlKTogc3RyaW5nIHtcbiAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gJ3VuZGVmaW5lZCc7XG4gIH1cbiAgaWYgKHZhbHVlID09PSBudWxsKSB7XG4gICAgcmV0dXJuICdudWxsJztcbiAgfVxuICB2YXIgdHlwZSA9IGludGVybmFsVHlwZSh2YWx1ZSk7XG4gIGlmICghYXJyYXlJbmNsdWRlcyhiYXNlVHlwZXMsIHR5cGUpKSB7XG4gICAgdHlwZSA9IHR5cGVvZiB2YWx1ZTtcbiAgfVxuICByZXR1cm4gdHlwZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzVGhlbmFibGUob2JqKTogYm9vbGVhbiB7XG4gIHJldHVybiB0eXBlT2Yob2JqKSA9PT0gJ29iamVjdCcgJiYgJ3RoZW4nIGluIG9iaiAmJiB0eXBlb2Yob2JqLnRoZW4pID09PSAnZnVuY3Rpb24nO1xufVxuXG4vLyBDb252ZXJ0cyBhIHN5bmNocm9ub3VzIGZ1bmN0aW9uIHRvIG9uZSBhbGxvd2luZyBQcm9taXNlc1xuLy8gYXMgYXJndW1lbnRzIGFuZCByZXR1cm5pbmcgYSBQcm9taXNlIHZhbHVlLlxuLy9cbi8vICAgZm4oYSwgYiwgYywgLi4uKTp2ID0+IGZuKGFQLCBiUCwgY1AsIC4uLik6IFB2XG4vL1xuLy8gSWYgbm9uZSBvZiB0aGUgYXJndW1lbnRzIGFyZSBUaGVuYWJsZXMsIHRoZW4gdGhlIHdyYXBwZWRcbi8vIGZ1bmN0aW9uIHJldHVybnMgYSBzeW5jaHJvbm91cyB2YWx1ZSAobm90IHdyYXBwZWQgaW4gYSBQcm9taXNlKS5cbmV4cG9ydCBmdW5jdGlvbiBtYXliZVByb21pc2UoZm46ICguLi5hbnkpID0+IGFueSk6ICguLi5hbnkpID0+IGFueSB7XG4gIHJldHVybiBmdW5jdGlvbiguLi5hcmdzKSB7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIGlmICghYXJncy5zb21lKGlzVGhlbmFibGUpKSB7XG4gICAgICByZXR1cm4gZm4uYXBwbHkoc2VsZiwgYXJncyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIFByb21pc2UuYWxsKGFyZ3MpXG4gICAgICAudGhlbihmdW5jdGlvbih2YWx1ZXMpIHtcbiAgICAgICAgcmV0dXJuIGZuLmFwcGx5KHNlbGYsIHZhbHVlcyk7XG4gICAgICB9KTtcbiAgfTtcbn1cblxuZXhwb3J0IHZhciBnZXRQcm9wID0gbWF5YmVQcm9taXNlKGZ1bmN0aW9uKG9iaiwgcHJvcCkge1xuICByZXR1cm4gb2JqW3Byb3BdO1xufSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnN1cmVFeHRlbnNpb24oZmlsZU5hbWU6IHN0cmluZywgZXh0ZW5zaW9uOiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoZmlsZU5hbWUuaW5kZXhPZignLicpID09PSAtMSkge1xuICAgIHJldHVybiBmaWxlTmFtZSArICcuJyArIGV4dGVuc2lvbjtcbiAgfVxuICByZXR1cm4gZmlsZU5hbWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXBsYWNlRXh0ZW5zaW9uKGZpbGVOYW1lOiBzdHJpbmcsIGV4dGVuc2lvbjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGZpbGVOYW1lLnJlcGxhY2UoL1xcLlteXFwuXSokLywgJy4nICsgZXh0ZW5zaW9uKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByZXR0eUpTT04obzogYW55KTogc3RyaW5nIHtcbiAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KG8sIG51bGwsIDIpO1xufVxuXG5mdW5jdGlvbiBkZWVwRXh0ZW5kKHRhcmdldDogT2JqZWN0LCBzb3VyY2U6IE9iamVjdCk6IHZvaWQge1xuICBmb3IgKHZhciBwcm9wIGluIHNvdXJjZSkge1xuICAgIGlmICghc291cmNlLmhhc093blByb3BlcnR5KHByb3ApKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAodGFyZ2V0W3Byb3BdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIlByb3BlcnR5IG92ZXJ3cml0ZTogXCIgKyBwcm9wKTtcbiAgICB9XG5cbiAgICBpZiAoaXNUeXBlKHNvdXJjZVtwcm9wXSwgJ29iamVjdCcpKSB7XG4gICAgICB0YXJnZXRbcHJvcF0gPSB7fTtcbiAgICAgIGRlZXBFeHRlbmQodGFyZ2V0W3Byb3BdLCBzb3VyY2VbcHJvcF0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0YXJnZXRbcHJvcF0gPSBzb3VyY2VbcHJvcF07XG4gICAgfVxuICB9XG59XG5cbi8vIExpa2UgSlNPTi5zdHJpbmdpZnkgLSBidXQgZm9yIHNpbmdsZS1xdW90ZWQgc3RyaW5ncyBpbnN0ZWFkIG9mIGRvdWJsZS1xdW90ZWQgb25lcy5cbi8vIFRoaXMganVzdCBtYWtlcyB0aGUgY29tcGlsZWQgcnVsZXMgbXVjaCBlYXNpZXIgdG8gcmVhZC5cblxuLy8gUXVvdGUgYWxsIGNvbnRyb2wgY2hhcmFjdGVycywgc2xhc2gsIHNpbmdsZSBxdW90ZXMsIGFuZCBub24tYXNjaWkgcHJpbnRhYmxlcy5cbnZhciBxdW90YWJsZUNoYXJhY3RlcnMgPSAvW1xcdTAwMDAtXFx1MDAxZlxcXFxcXCdcXHUwMDdmLVxcdWZmZmZdL2c7XG52YXIgc3BlY2lhbFF1b3RlcyA9IHtcbiAgJ1xcJyc6ICdcXFxcXFwnJyxcbiAgJ1xcYic6ICdcXFxcYicsXG4gICdcXHQnOiAnXFxcXHQnLFxuICAnXFxuJzogJ1xcXFxuJyxcbiAgJ1xcZic6ICdcXFxcZicsXG4gICdcXHInOiAnXFxcXHInXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gcXVvdGVTdHJpbmcoczogc3RyaW5nKTogc3RyaW5nIHtcbiAgcyA9IHMucmVwbGFjZShxdW90YWJsZUNoYXJhY3RlcnMsIGZ1bmN0aW9uKGMpIHtcbiAgICBpZiAoc3BlY2lhbFF1b3Rlc1tjXSkge1xuICAgICAgcmV0dXJuIHNwZWNpYWxRdW90ZXNbY107XG4gICAgfVxuICAgIHJldHVybiAnXFxcXHUnICsgKCcwMDAwJyArIGMuY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikpLnNsaWNlKC00KTtcbiAgfSk7XG4gIHJldHVybiBcIidcIiArIHMgKyBcIidcIjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFycmF5SW5jbHVkZXMoYTogYW55W10sIGUpOiBib29sZWFuIHtcbiAgcmV0dXJuIGEuaW5kZXhPZihlKSAhPT0gLTE7XG59XG5cbi8vIExpa2UgUHl0aG9uIGxpc3QuZXh0ZW5kXG5leHBvcnQgZnVuY3Rpb24gZXh0ZW5kQXJyYXkodGFyZ2V0LCBzcmMpIHtcbiAgaWYgKHRhcmdldCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdGFyZ2V0ID0gW107XG4gIH1cbiAgQXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkodGFyZ2V0LCBzcmMpO1xuICByZXR1cm4gdGFyZ2V0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gb3IodGFyZ2V0LCBzcmMpIHtcbiAgaWYgKHRhcmdldCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiB0YXJnZXQgfHwgc3JjO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZW5zdXJlT2JqZWN0UGF0aChvYmo6IE9iamVjdCwgcGFydHM6IHN0cmluZ1tdKTogT2JqZWN0IHtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYXJ0cy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBuYW1lID0gcGFydHNbaV07XG4gICAgaWYgKCEobmFtZSBpbiBvYmopKSB7XG4gICAgICBvYmpbbmFtZV0gPSB7fTtcbiAgICB9XG4gICAgb2JqID0gb2JqW25hbWVdO1xuICB9XG4gIHJldHVybiBvYmo7XG59XG5cbi8vIFJlbW92ZSBhbGwgZW1wdHksICd7fScsICBjaGlsZHJlbiBhbmQgdW5kZWZpbmVkIC0gcmV0dXJucyB0cnVlIGlmZiBvYmogaXMgZW1wdHkuXG5leHBvcnQgZnVuY3Rpb24gcHJ1bmVFbXB0eUNoaWxkcmVuKG9iajogT2JqZWN0KTogYm9vbGVhbiB7XG4gIGlmIChvYmogPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIGlmIChvYmouY29uc3RydWN0b3IgIT09IE9iamVjdCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICB2YXIgaGFzQ2hpbGRyZW4gPSBmYWxzZTtcbiAgZm9yICh2YXIgcHJvcCBpbiBvYmopIHtcbiAgICBpZiAoIW9iai5oYXNPd25Qcm9wZXJ0eShwcm9wKSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGlmIChwcnVuZUVtcHR5Q2hpbGRyZW4ob2JqW3Byb3BdKSkge1xuICAgICAgZGVsZXRlIG9ialtwcm9wXTtcbiAgICB9IGVsc2Uge1xuICAgICAgaGFzQ2hpbGRyZW4gPSB0cnVlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gIWhhc0NoaWxkcmVuO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVsZXRlUHJvcE5hbWUob2JqOiBPYmplY3QsIG5hbWU6IHN0cmluZykge1xuICBpZiAob2JqLmNvbnN0cnVjdG9yICE9PSBPYmplY3QpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgZm9yICh2YXIgcHJvcCBpbiBvYmopIHtcbiAgICBpZiAoIW9iai5oYXNPd25Qcm9wZXJ0eShwcm9wKSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGlmIChwcm9wID09PSBuYW1lKSB7XG4gICAgICBkZWxldGUgb2JqW3Byb3BdO1xuICAgIH0gZWxzZSB7XG4gICAgICBkZWxldGVQcm9wTmFtZShvYmpbcHJvcF0sIG5hbWUpO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0Q29sdW1ucyhpbmRlbnQ6IG51bWJlciwgbGluZXM6IHN0cmluZ1tdW10pOiBzdHJpbmdbXSB7XG4gIGxldCByZXN1bHQ6IHN0cmluZ1tdID0gW107XG4gIGxldCBjb2x1bW5TaXplID0gW107XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaW5lcy5sZW5ndGg7IGkrKykge1xuICAgIGxldCBsaW5lID0gbGluZXNbaV07XG4gICAgZm9yIChsZXQgaiA9IDA7IGogPCBsaW5lLmxlbmd0aDsgaisrKSB7XG4gICAgICBpZiAoY29sdW1uU2l6ZVtqXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvbHVtblNpemVbal0gPSAwO1xuICAgICAgfVxuICAgICAgY29sdW1uU2l6ZVtqXSA9IE1hdGgubWF4KGNvbHVtblNpemVbal0sIGxpbmVbal0ubGVuZ3RoKTtcbiAgICB9XG4gIH1cblxuICB2YXIgcHJlZml4ID0gcmVwZWF0U3RyaW5nKCcgJywgaW5kZW50KTtcbiAgdmFyIHM6IHN0cmluZztcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaW5lcy5sZW5ndGg7IGkrKykge1xuICAgIGxldCBsaW5lID0gbGluZXNbaV07XG4gICAgbGV0IHNlcCA9IFwiXCI7XG4gICAgcyA9IFwiXCI7XG4gICAgZm9yIChsZXQgaiA9IDA7IGogPCBsaW5lLmxlbmd0aDsgaisrKSB7XG4gICAgICBpZiAoaiA9PT0gMCkge1xuICAgICAgICBzID0gcHJlZml4O1xuICAgICAgfVxuICAgICAgaWYgKGogPT09IGxpbmUubGVuZ3RoIC0gMSkge1xuICAgICAgICBzICs9IHNlcCArIGxpbmVbal07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzICs9IHNlcCArIGZpbGxTdHJpbmcobGluZVtqXSwgY29sdW1uU2l6ZVtqXSk7XG4gICAgICB9XG4gICAgICBzZXAgPSBcIiAgXCI7XG4gICAgfVxuICAgIHJlc3VsdC5wdXNoKHMpO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZnVuY3Rpb24gcmVwZWF0U3RyaW5nKHM6IHN0cmluZywgbjogbnVtYmVyKTogc3RyaW5nIHtcbiAgcmV0dXJuIG5ldyBBcnJheShuICsgMSkuam9pbihzKTtcbn1cblxuZnVuY3Rpb24gZmlsbFN0cmluZyhzOiBzdHJpbmcsIG46IG51bWJlcik6IHN0cmluZyB7XG4gIGxldCBwYWRkaW5nID0gbiAtIHMubGVuZ3RoO1xuICBpZiAocGFkZGluZyA+IDApIHtcbiAgICBzICs9IHJlcGVhdFN0cmluZygnICcsIHBhZGRpbmcpO1xuICB9XG4gIHJldHVybiBzO1xufVxuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9 |
{ | ||
"name": "firebase-bolt", | ||
"description": "Firebase Bolt Security and Modeling Language Compiler", | ||
"version": "0.6.0", | ||
"version": "0.7.0", | ||
"author": { | ||
@@ -54,3 +54,5 @@ "name": "Firebase", | ||
"gulp-mocha": "^2.1.3", | ||
"gulp-mustache": "^2.2.0", | ||
"gulp-peg": "^0.1.2", | ||
"gulp-rename": "^1.2.2", | ||
"gulp-sourcemaps": "^1.5.2", | ||
@@ -61,2 +63,3 @@ "gulp-tslint": "^3.3.0-beta", | ||
"http-server": "^0.8.0", | ||
"merge-stream": "^1.0.0", | ||
"mkdirp": "^0.5.1", | ||
@@ -63,0 +66,0 @@ "pegjs": "^0.8.0", |
@@ -27,9 +27,8 @@ # ![Bolt Icon](docs/images/flash.png) Bolt Compiler | ||
Execute the Bolt compiler from the command line (it reads a Bolt file from standard input and writes a JSON | ||
rules file to standard output): | ||
Execute the Bolt compiler from the command line: | ||
$ firebase-bolt < rules.bolt > rules.json | ||
$ firebase-bolt rules.bolt | ||
You can then upload the resulting rules.json file via the | ||
[firebase command line](https://www.firebase.com/docs/hosting/command-line-tool.html): | ||
Will create a rules.json which you can then upload via the [firebase command | ||
line](https://www.firebase.com/docs/hosting/command-line-tool.html): | ||
@@ -36,0 +35,0 @@ $ firebase deploy |
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
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
3913809
27
54976
21
71