Comparing version 0.3.10 to 0.3.11
@@ -116,3 +116,3 @@ 'use strict'; | ||
} | ||
return new _set2.default(_values); | ||
return this._ended ? _values : new _set2.default(_values); | ||
} else { | ||
@@ -341,2 +341,2 @@ if (this._active) { | ||
module.exports = exports['default']; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJMaXZlU2V0IiwiaW5pdCIsIl92YWx1ZXMiLCJfYWN0aXZlIiwiX2VuZGVkIiwiX2VuZGVkV2l0aEVycm9yIiwiX2Vycm9yIiwiX3F1ZXVlZENhbGwiLCJfY2hhbmdlUXVldWUiLCJfb2JzZXJ2ZXJzIiwiX2luaXQiLCJyZWNvcmQiLCJwdXNoIiwiY2hhbmdlcyIsIm9ic2VydmVyc1RvQ2FsbCIsImVuZGVkIiwic2xpY2UiLCJmb3JFYWNoIiwib2JzZXJ2ZXIiLCJpZ25vcmUiLCJvYnNlcnZlck5leHQiLCJuZXh0IiwiY2FsbCIsImNoYW5nZXNUb0RlbGl2ZXIiLCJsZW5ndGgiLCJlcnJvciIsImNvbXBsZXRlIiwiRXJyb3IiLCJsaXN0ZW5IYW5kbGVyIiwidW5zdWJzY3JpYmUiLCJ2YWx1ZXMiLCJwdWxsQ2hhbmdlcyIsInJlYWQiLCJvYnNlcnZlck9yT25OZXh0Iiwib25FcnJvciIsIm9uQ29tcGxldGUiLCJsaXZlU2V0Iiwic3Vic2NyaXB0aW9uIiwiY2xvc2VkIiwic3RhcnQiLCJvYnNlcnZlclJlY29yZCIsImlzU3RhcnRpbmciLCJ1bnN1YnNjcmliZWRJblN0YXJ0IiwiaW5kZXhPZiIsIml4Iiwic3BsaWNlIiwiX2RlYWN0aXZhdGUiLCJjaGFuZ2VRdWV1ZUxlbmd0aCIsIm9yaWdpbmFsTmV4dCIsImNvbnRyb2xsZXIiLCJhZGQiLCJoYXMiLCJ2YWx1ZSIsIl9xdWV1ZUNoYW5nZSIsInR5cGUiLCJyZW1vdmUiLCJkZWxldGUiLCJlcnIiLCJlbmQiLCJhY3RpdmUiLCJzZXRWYWx1ZXNFcnJvciIsInNldFZhbHVlcyIsImxpc3RlbkhhbmRsZXJPckZ1bmN0aW9uIiwibGlzdGVuIiwiVHlwZUVycm9yIiwiaW5pdGlhbFZhbHVlcyIsInNldCIsIl9jb250cm9sbGVyIiwic3Vic2NyaWJlIiwic2hvdWxkTm90SGFwcGVuIiwibHMiLCJwcm90b3R5cGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztB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RCxFQUFVYSxZQUFhQSxVQUF2QixFQUFQO0FBQ0Q7Ozs2QkFFa0JuQixNLEVBQTRCO0FBQzdDLFVBQU11QyxrQkFBa0IsU0FBbEJBLGVBQWtCLEdBQU07QUFDNUIsY0FBTSxJQUFJMUMsS0FBSixDQUFVLG1CQUFWLENBQU47QUFDRCxPQUZEO0FBR0EsVUFBTTJDLEtBQUssSUFBSXRFLE9BQUosQ0FBWTtBQUNyQmdDLGNBQU1xQyxlQURlO0FBRXJCTixnQkFBUU07QUFGYSxPQUFaLENBQVg7QUFJQUMsU0FBR2xFLE1BQUgsR0FBWSxJQUFaO0FBQ0FrRSxTQUFHcEUsT0FBSCxHQUFhNEIsTUFBYjtBQUNBLGFBQU93QyxFQUFQO0FBQ0Q7Ozs7O0FBZ1BIO0FBQ0E7OztrQkE3UnFCdEUsTztBQThScEJBLE9BQUQsQ0FBY3VFLFNBQWQsK0JBQXdDLFlBQVc7QUFDakQsU0FBTyxJQUFQO0FBQ0QsQ0FGRCIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIEBmbG93ICovXG5cbmltcG9ydCBhc2FwIGZyb20gJ2FzYXAnO1xuaW1wb3J0ICQkb2JzZXJ2YWJsZSBmcm9tICdzeW1ib2wtb2JzZXJ2YWJsZSc7XG5cbmV4cG9ydCB0eXBlIExpdmVTZXRDaGFuZ2VSZWNvcmQ8VD4gPVxuICB7dHlwZTogJ2FkZCcsIHZhbHVlOiBUfSB8XG4gIHt0eXBlOiAncmVtb3ZlJywgdmFsdWU6IFR9IHxcbiAge3R5cGU6ICdlbmQnfTtcblxuZXhwb3J0IHR5cGUgTGl2ZVNldENvbnRyb2xsZXI8VD4gPSB7XG4gIGNsb3NlZDogYm9vbGVhbjtcbiAgYWRkKGl0ZW06IFQpOiB2b2lkO1xuICByZW1vdmUoaXRlbTogVCk6IHZvaWQ7XG4gIGVycm9yKGVycjogYW55KTogdm9pZDtcbiAgZW5kKCk6IHZvaWQ7XG59O1xuXG5leHBvcnQgdHlwZSBMaXN0ZW5IYW5kbGVyID0ge1xuICB1bnN1YnNjcmliZSgpOiB2b2lkO1xuICArcHVsbENoYW5nZXM/OiA/KCkgPT4gdm9pZDtcbn07XG5cbmV4cG9ydCB0eXBlIExpdmVTZXRJbml0PFQ+ID0ge1xuICByZWFkKCk6IFNldDxUPjtcbiAgbGlzdGVuKFxuICAgIHNldFZhbHVlczogeyAodmFsdWVzOiBTZXQ8VD4pOiB2b2lkIH0sXG4gICAgY29udHJvbGxlcjogTGl2ZVNldENvbnRyb2xsZXI8VD5cbiAgKTogP0xpc3RlbkhhbmRsZXJ8KCk9PnZvaWQ7XG59O1xuXG5leHBvcnQgdHlwZSBMaXZlU2V0U3Vic2NyaWJlcjxUPiA9IChjaGFuZ2VzOiBBcnJheTxMaXZlU2V0Q2hhbmdlUmVjb3JkPFQ+PikgPT4gdm9pZDtcblxuZXhwb3J0IHR5cGUgTGl2ZVNldFN1YnNjcmlwdGlvbiA9IHtcbiAgY2xvc2VkOiBib29sZWFuO1xuICB1bnN1YnNjcmliZSgpOiB2b2lkO1xuICBwdWxsQ2hhbmdlcygpOiB2b2lkO1xufTtcblxuZXhwb3J0IHR5cGUgTGl2ZVNldE9ic2VydmVyPFQ+ID0ge1xuICBzdGFydD86ID8oc3Vic2NyaXB0aW9uOiBMaXZlU2V0U3Vic2NyaXB0aW9uKSA9PiB2b2lkO1xuICBuZXh0PzogPyhjaGFuZ2VzOiBBcnJheTxMaXZlU2V0Q2hhbmdlUmVjb3JkPFQ+PikgPT4gdm9pZDtcbiAgZXJyb3I/OiA/KGVycjogYW55KSA9PiB2b2lkO1xuICBjb21wbGV0ZT86ID8oKSA9PiB2b2lkO1xufTtcblxudHlwZSBMaXZlU2V0T2JzZXJ2ZXJSZWNvcmQ8VD4gPSB7XG4gIGlnbm9yZTogbnVtYmVyO1xuICBvYnNlcnZlcjogTGl2ZVNldE9ic2VydmVyPFQ+O1xufTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTGl2ZVNldDxUPiB7XG4gIF9pbml0OiBMaXZlU2V0SW5pdDxUPjtcblxuICBfdmFsdWVzOiA/U2V0PFQ+ID0gbnVsbDtcbiAgX2FjdGl2ZTogP3tcbiAgICBjb250cm9sbGVyOiBMaXZlU2V0Q29udHJvbGxlcjxUPjtcbiAgICBsaXN0ZW5IYW5kbGVyOiBMaXN0ZW5IYW5kbGVyO1xuICB9ID0gbnVsbDtcbiAgX2VuZGVkOiBib29sZWFuID0gZmFsc2U7XG4gIF9lbmRlZFdpdGhFcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xuICBfZXJyb3I6IGFueSA9IG51bGw7XG4gIF9xdWV1ZWRDYWxsOiBib29sZWFuID0gZmFsc2U7XG4gIF9jaGFuZ2VRdWV1ZTogQXJyYXk8TGl2ZVNldENoYW5nZVJlY29yZDxUPj4gPSBbXTtcbiAgX29ic2VydmVyczogQXJyYXk8TGl2ZVNldE9ic2VydmVyUmVjb3JkPFQ+PiA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKGluaXQ6IExpdmVTZXRJbml0PFQ+KSB7XG4gICAgdGhpcy5faW5pdCA9IGluaXQ7XG4gIH1cblxuICBzdGF0aWMgYWN0aXZlPFQ+KGluaXRpYWxWYWx1ZXM6ID9TZXQ8VD4pOiB7bGl2ZVNldDogTGl2ZVNldDxUPiwgY29udHJvbGxlcjogTGl2ZVNldENvbnRyb2xsZXI8VD59IHtcbiAgICBjb25zdCBzZXQgPSBpbml0aWFsVmFsdWVzIHx8IG5ldyBTZXQoKTtcbiAgICBsZXQgY29udHJvbGxlcjtcbiAgICBjb25zdCBsaXZlU2V0ID0gbmV3IExpdmVTZXQoe1xuICAgICAgcmVhZDogKCkgPT4gc2V0LFxuICAgICAgbGlzdGVuOiAoc2V0VmFsdWVzLCBfY29udHJvbGxlcikgPT4ge1xuICAgICAgICBzZXRWYWx1ZXMoc2V0KTtcbiAgICAgICAgY29udHJvbGxlciA9IF9jb250cm9sbGVyO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGxpdmVTZXQuc3Vic2NyaWJlKHt9KTtcbiAgICByZXR1cm4ge2xpdmVTZXQsIGNvbnRyb2xsZXI6IChjb250cm9sbGVyOiBhbnkpfTtcbiAgfVxuXG4gIHN0YXRpYyBjb25zdGFudDxUPih2YWx1ZXM6IFNldDxUPik6IExpdmVTZXQ8VD4ge1xuICAgIGNvbnN0IHNob3VsZE5vdEhhcHBlbiA9ICgpID0+IHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignU2hvdWxkIG5vdCBoYXBwZW4nKTtcbiAgICB9O1xuICAgIGNvbnN0IGxzID0gbmV3IExpdmVTZXQoe1xuICAgICAgcmVhZDogc2hvdWxkTm90SGFwcGVuLFxuICAgICAgbGlzdGVuOiBzaG91bGROb3RIYXBwZW5cbiAgICB9KTtcbiAgICBscy5fZW5kZWQgPSB0cnVlO1xuICAgIGxzLl92YWx1ZXMgPSB2YWx1ZXM7XG4gICAgcmV0dXJuIGxzO1xuICB9XG5cbiAgX3F1ZXVlQ2hhbmdlKHJlY29yZDogP0xpdmVTZXRDaGFuZ2VSZWNvcmQ8VD4pIHtcbiAgICBpZiAocmVjb3JkKSB7XG4gICAgICB0aGlzLl9jaGFuZ2VRdWV1ZS5wdXNoKHJlY29yZCk7XG4gICAgfVxuICAgIGlmICghdGhpcy5fcXVldWVkQ2FsbCkge1xuICAgICAgdGhpcy5fcXVldWVkQ2FsbCA9IHRydWU7XG4gICAgICBhc2FwKCgpID0+IHtcbiAgICAgICAgdGhpcy5fcXVldWVkQ2FsbCA9IGZhbHNlO1xuICAgICAgICBjb25zdCBjaGFuZ2VzID0gdGhpcy5fY2hhbmdlUXVldWU7XG4gICAgICAgIHRoaXMuX2NoYW5nZVF1ZXVlID0gW107XG4gICAgICAgIGxldCBvYnNlcnZlcnNUb0NhbGw7XG4gICAgICAgIGNvbnN0IGVuZGVkID0gdGhpcy5fZW5kZWQ7XG4gICAgICAgIGlmIChlbmRlZCkge1xuICAgICAgICAgIG9ic2VydmVyc1RvQ2FsbCA9IHRoaXMuX29ic2VydmVycztcbiAgICAgICAgICB0aGlzLl9vYnNlcnZlcnMgPSBbXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvYnNlcnZlcnNUb0NhbGwgPSB0aGlzLl9vYnNlcnZlcnMuc2xpY2UoKTtcbiAgICAgICAgfVxuICAgICAgICBvYnNlcnZlcnNUb0NhbGwuZm9yRWFjaChyZWNvcmQgPT4ge1xuICAgICAgICAgIGNvbnN0IHtvYnNlcnZlciwgaWdub3JlfSA9IHJlY29yZDtcbiAgICAgICAgICBjb25zdCBvYnNlcnZlck5leHQgPSBvYnNlcnZlci5uZXh0O1xuICAgICAgICAgIGlmIChvYnNlcnZlck5leHQpIHtcbiAgICAgICAgICAgIGlmIChpZ25vcmUgPT09IDApIHtcbiAgICAgICAgICAgICAgb2JzZXJ2ZXJOZXh0LmNhbGwob2JzZXJ2ZXIsIGNoYW5nZXMpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmVjb3JkLmlnbm9yZSA9IDA7XG4gICAgICAgICAgICAgIGNvbnN0IGNoYW5nZXNUb0RlbGl2ZXIgPSBjaGFuZ2VzLnNsaWNlKGlnbm9yZSk7XG4gICAgICAgICAgICAgIGlmIChjaGFuZ2VzVG9EZWxpdmVyLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIG9ic2VydmVyTmV4dC5jYWxsKG9ic2VydmVyLCBjaGFuZ2VzVG9EZWxpdmVyKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZW5kZWQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9lbmRlZFdpdGhFcnJvcikge1xuICAgICAgICAgICAgICBpZiAob2JzZXJ2ZXIuZXJyb3IpIG9ic2VydmVyLmVycm9yKHRoaXMuX2Vycm9yKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGlmIChvYnNlcnZlci5jb21wbGV0ZSkgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgX2RlYWN0aXZhdGUoKSB7XG4gICAgaWYgKCF0aGlzLl9hY3RpdmUpIHRocm93IG5ldyBFcnJvcignYWxyZWFkeSBpbmFjdGl2ZScpO1xuICAgIGNvbnN0IHtsaXN0ZW5IYW5kbGVyfSA9IHRoaXMuX2FjdGl2ZTtcbiAgICB0aGlzLl9hY3RpdmUgPSBudWxsO1xuICAgIGlmIChsaXN0ZW5IYW5kbGVyKSB7XG4gICAgICBsaXN0ZW5IYW5kbGVyLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgdmFsdWVzKCk6IFNldDxUPiB7XG4gICAgaWYgKHRoaXMuX3ZhbHVlcykge1xuICAgICAgY29uc3QgdmFsdWVzID0gdGhpcy5fdmFsdWVzO1xuICAgICAgaWYgKHRoaXMuX2FjdGl2ZSkge1xuICAgICAgICBjb25zdCB7bGlzdGVuSGFuZGxlcn0gPSB0aGlzLl9hY3RpdmU7XG4gICAgICAgIGlmIChsaXN0ZW5IYW5kbGVyLnB1bGxDaGFuZ2VzKSB7XG4gICAgICAgICAgbGlzdGVuSGFuZGxlci5wdWxsQ2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbmV3IFNldCh2YWx1ZXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5fYWN0aXZlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcigndHJpZWQgdG8gY2FsbCB2YWx1ZXMoKSBvbiBsaXZlc2V0IGR1cmluZyBzdWJzY3JpcHRpb24gYmVmb3JlIHNldFZhbHVlcyB3YXMgY2FsbGVkJyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5faW5pdC5yZWFkKCk7XG4gICAgfVxuICB9XG5cbiAgaXNFbmRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZW5kZWQ7XG4gIH1cblxuICBzdWJzY3JpYmUob2JzZXJ2ZXJPck9uTmV4dDogTGl2ZVNldE9ic2VydmVyPFQ+IHwgKGNoYW5nZXM6IEFycmF5PExpdmVTZXRDaGFuZ2VSZWNvcmQ8VD4+KSA9PiB2b2lkLCBvbkVycm9yOiA/KGVycjogYW55KSA9PiB2b2lkLCBvbkNvbXBsZXRlOiA/KCkgPT4gdm9pZCk6IExpdmVTZXRTdWJzY3JpcHRpb24ge1xuICAgIGNvbnN0IGxpdmVTZXQgPSB0aGlzO1xuXG4gICAgbGV0IG9ic2VydmVyO1xuICAgIGlmICh0eXBlb2Ygb2JzZXJ2ZXJPck9uTmV4dCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgb2JzZXJ2ZXIgPSB7XG4gICAgICAgIG5leHQ6IG9ic2VydmVyT3JPbk5leHQsXG4gICAgICAgIGVycm9yOiBvbkVycm9yLFxuICAgICAgICBjb21wbGV0ZTogb25Db21wbGV0ZVxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgb2JzZXJ2ZXIgPSBvYnNlcnZlck9yT25OZXh0O1xuICAgIH1cblxuICAgIChvYnNlcnZlcjogTGl2ZVNldE9ic2VydmVyPFQ+KTtcblxuICAgIGlmICh0aGlzLl9lbmRlZCkge1xuICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID0ge1xuICAgICAgICBjbG9zZWQ6IGZhbHNlLFxuICAgICAgICB1bnN1YnNjcmliZTogKCkgPT4ge1xuICAgICAgICAgIHN1YnNjcmlwdGlvbi5jbG9zZWQgPSB0cnVlO1xuICAgICAgICB9LFxuICAgICAgICBwdWxsQ2hhbmdlczogKCkgPT4ge31cbiAgICAgIH07XG4gICAgICBpZiAob2JzZXJ2ZXIuc3RhcnQpIHtcbiAgICAgICAgb2JzZXJ2ZXIuc3RhcnQoc3Vic2NyaXB0aW9uKTtcbiAgICAgIH1cbiAgICAgIGlmICghc3Vic2NyaXB0aW9uLmNsb3NlZCkge1xuICAgICAgICBpZiAodGhpcy5fZW5kZWRXaXRoRXJyb3IpIHtcbiAgICAgICAgICBpZiAob2JzZXJ2ZXIuZXJyb3IpIHtcbiAgICAgICAgICAgIG9ic2VydmVyLmVycm9yKHRoaXMuX2Vycm9yKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKG9ic2VydmVyLmNvbXBsZXRlKSB7XG4gICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgc3Vic2NyaXB0aW9uLmNsb3NlZCA9IHRydWU7XG4gICAgICByZXR1cm4gc3Vic2NyaXB0aW9uO1xuICAgIH1cblxuICAgIGNvbnN0IG9ic2VydmVyUmVjb3JkID0ge29ic2VydmVyLCBpZ25vcmU6IHRoaXMuX2NoYW5nZVF1ZXVlLmxlbmd0aH07XG5cbiAgICBsZXQgaXNTdGFydGluZyA9IHRydWU7XG4gICAgbGV0IHVuc3Vic2NyaWJlZEluU3RhcnQgPSBmYWxzZTtcbiAgICBjb25zdCBzdWJzY3JpcHRpb24gPSB7XG4gICAgICAvKjo6IGNsb3NlZDogZmFsc2UmJmAgKi8gZ2V0IGNsb3NlZCgpIHtcbiAgICAgICAgcmV0dXJuICFpc1N0YXJ0aW5nICYmIGxpdmVTZXQuX29ic2VydmVycy5pbmRleE9mKG9ic2VydmVyUmVjb3JkKSA8IDA7XG4gICAgICB9Lyo6OiBgICovLFxuICAgICAgdW5zdWJzY3JpYmU6ICgpID0+IHtcbiAgICAgICAgaWYgKGlzU3RhcnRpbmcpIHtcbiAgICAgICAgICB1bnN1YnNjcmliZWRJblN0YXJ0ID0gdHJ1ZTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaXggPSB0aGlzLl9vYnNlcnZlcnMuaW5kZXhPZihvYnNlcnZlclJlY29yZCk7XG4gICAgICAgIGlmIChpeCA+PSAwKSB7XG4gICAgICAgICAgdGhpcy5fb2JzZXJ2ZXJzLnNwbGljZShpeCwgMSk7XG4gICAgICAgICAgaWYgKCF0aGlzLl9lbmRlZCAmJiB0aGlzLl9vYnNlcnZlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLl92YWx1ZXMgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5fZGVhY3RpdmF0ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHB1bGxDaGFuZ2VzOiAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLl9hY3RpdmUgJiYgdGhpcy5fYWN0aXZlLmxpc3RlbkhhbmRsZXIgJiYgdGhpcy5fYWN0aXZlLmxpc3RlbkhhbmRsZXIucHVsbENoYW5nZXMpIHtcbiAgICAgICAgICB0aGlzLl9hY3RpdmUubGlzdGVuSGFuZGxlci5wdWxsQ2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNoYW5nZVF1ZXVlTGVuZ3RoID0gdGhpcy5fY2hhbmdlUXVldWUubGVuZ3RoO1xuICAgICAgICBjb25zdCBvcmlnaW5hbE5leHQgPSBvYnNlcnZlci5uZXh0O1xuICAgICAgICBpZiAoY2hhbmdlUXVldWVMZW5ndGggIT09IDAgJiYgb3JpZ2luYWxOZXh0KSB7XG4gICAgICAgICAgY29uc3QgY2hhbmdlc1RvRGVsaXZlciA9IHRoaXMuX2NoYW5nZVF1ZXVlLnNsaWNlKG9ic2VydmVyUmVjb3JkLmlnbm9yZSk7XG4gICAgICAgICAgaWYgKGNoYW5nZXNUb0RlbGl2ZXIubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgICAgICBvYnNlcnZlclJlY29yZC5pZ25vcmUgPSBjaGFuZ2VRdWV1ZUxlbmd0aDtcbiAgICAgICAgICAgIG9yaWdpbmFsTmV4dC5jYWxsKG9ic2VydmVyLCBjaGFuZ2VzVG9EZWxpdmVyKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuXG4gICAgaWYgKCF0aGlzLl9hY3RpdmUpIHtcbiAgICAgIGNvbnN0IGNvbnRyb2xsZXI6IExpdmVTZXRDb250cm9sbGVyPFQ+ID0ge1xuICAgICAgICAvLyBGbG93IGRvZXNuJ3Qgc3VwcG9ydCBnZXR0ZXJzIGFuZCBzZXR0ZXJzIHlldFxuICAgICAgICAvKjo6IGNsb3NlZDogZmFsc2UmJmAgKi8gZ2V0IGNsb3NlZCgpIHtcbiAgICAgICAgICByZXR1cm4gIWxpdmVTZXQuX2FjdGl2ZSB8fCBsaXZlU2V0Ll9hY3RpdmUuY29udHJvbGxlciAhPT0gdGhpcztcbiAgICAgICAgfS8qOjogYCAqLyxcbiAgICAgICAgYWRkOiB2YWx1ZSA9PiB7XG4gICAgICAgICAgY29uc3QgdmFsdWVzID0gdGhpcy5fdmFsdWVzO1xuICAgICAgICAgIGlmICghdmFsdWVzKSB0aHJvdyBuZXcgRXJyb3IoJ3NldFZhbHVlIG11c3QgYmUgY2FsbGVkIGJlZm9yZSBjb250cm9sbGVyIGlzIHVzZWQnKTtcbiAgICAgICAgICBpZiAoIXRoaXMuX2VuZGVkICYmICF2YWx1ZXMuaGFzKHZhbHVlKSkge1xuICAgICAgICAgICAgdmFsdWVzLmFkZCh2YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLl9xdWV1ZUNoYW5nZSh7dHlwZTogJ2FkZCcsIHZhbHVlfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICByZW1vdmU6IHZhbHVlID0+IHtcbiAgICAgICAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLl92YWx1ZXM7XG4gICAgICAgICAgaWYgKCF2YWx1ZXMpIHRocm93IG5ldyBFcnJvcignc2V0VmFsdWUgbXVzdCBiZSBjYWxsZWQgYmVmb3JlIGNvbnRyb2xsZXIgaXMgdXNlZCcpO1xuICAgICAgICAgIGlmICghdGhpcy5fZW5kZWQgJiYgdmFsdWVzLmhhcyh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHZhbHVlcy5kZWxldGUodmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5fcXVldWVDaGFuZ2Uoe3R5cGU6ICdyZW1vdmUnLCB2YWx1ZX0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IGVyciA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuX2VuZGVkKSByZXR1cm47XG4gICAgICAgICAgdGhpcy5fZW5kZWQgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuX2VuZGVkV2l0aEVycm9yID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLl9lcnJvciA9IGVycjtcbiAgICAgICAgICB0aGlzLl9xdWV1ZUNoYW5nZSgpO1xuICAgICAgICAgIHRoaXMuX2RlYWN0aXZhdGUoKTtcbiAgICAgICAgfSxcbiAgICAgICAgZW5kOiAoKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuX2VuZGVkKSByZXR1cm47XG4gICAgICAgICAgdGhpcy5fZW5kZWQgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuX3F1ZXVlQ2hhbmdlKCk7XG4gICAgICAgICAgdGhpcy5fZGVhY3RpdmF0ZSgpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgY29uc3QgYWN0aXZlID0gdGhpcy5fYWN0aXZlID0ge1xuICAgICAgICBjb250cm9sbGVyLFxuICAgICAgICBsaXN0ZW5IYW5kbGVyOiB7XG4gICAgICAgICAgdW5zdWJzY3JpYmU6ICgpID0+IHt9XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICBjb25zdCBzZXRWYWx1ZXNFcnJvciA9ICgpID0+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdzZXRWYWx1ZXMgbXVzdCBiZSBjYWxsZWQgb25jZSBkdXJpbmcgbGlzdGVuJyk7XG4gICAgICB9O1xuICAgICAgbGV0IHNldFZhbHVlcyA9IHZhbHVlcyA9PiB7XG4gICAgICAgIHNldFZhbHVlcyA9IHNldFZhbHVlc0Vycm9yO1xuICAgICAgICB0aGlzLl92YWx1ZXMgPSB2YWx1ZXM7XG4gICAgICB9O1xuICAgICAgY29uc3QgbGlzdGVuSGFuZGxlck9yRnVuY3Rpb24gPSB0aGlzLl9pbml0Lmxpc3Rlbih2YWx1ZXMgPT4gc2V0VmFsdWVzKHZhbHVlcyksIGNvbnRyb2xsZXIpO1xuICAgICAgaWYgKCF0aGlzLl92YWx1ZXMpIHtcbiAgICAgICAgc2V0VmFsdWVzRXJyb3IoKTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgbGlzdGVuSGFuZGxlck9yRnVuY3Rpb24gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgYWN0aXZlLmxpc3RlbkhhbmRsZXIgPSB7XG4gICAgICAgICAgdW5zdWJzY3JpYmU6IGxpc3RlbkhhbmRsZXJPckZ1bmN0aW9uXG4gICAgICAgIH07XG4gICAgICB9IGVsc2UgaWYgKGxpc3RlbkhhbmRsZXJPckZ1bmN0aW9uICE9IG51bGwgJiYgdHlwZW9mIGxpc3RlbkhhbmRsZXJPckZ1bmN0aW9uLnVuc3Vic2NyaWJlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGFjdGl2ZS5saXN0ZW5IYW5kbGVyID0gbGlzdGVuSGFuZGxlck9yRnVuY3Rpb247XG4gICAgICB9IGVsc2UgaWYgKGxpc3RlbkhhbmRsZXJPckZ1bmN0aW9uICE9IG51bGwpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignbGlzdGVuIG11c3QgcmV0dXJuIG9iamVjdCB3aXRoIHVuc3Vic2NyaWJlIG1ldGhvZCwgYSBmdW5jdGlvbiwgb3IgbnVsbCcpO1xuICAgICAgfVxuICAgICAgaWYgKGNvbnRyb2xsZXIuY2xvc2VkKSB7XG4gICAgICAgIHRoaXMuX2FjdGl2ZSA9IGFjdGl2ZTtcbiAgICAgICAgdGhpcy5fZGVhY3RpdmF0ZSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChvYnNlcnZlci5zdGFydCkge1xuICAgICAgb2JzZXJ2ZXIuc3RhcnQoc3Vic2NyaXB0aW9uKTtcbiAgICB9XG4gICAgaXNTdGFydGluZyA9IGZhbHNlO1xuXG4gICAgb2JzZXJ2ZXJSZWNvcmQuaWdub3JlID0gdGhpcy5fY2hhbmdlUXVldWUubGVuZ3RoO1xuICAgIGlmICghdW5zdWJzY3JpYmVkSW5TdGFydCkge1xuICAgICAgdGhpcy5fb2JzZXJ2ZXJzLnB1c2gob2JzZXJ2ZXJSZWNvcmQpO1xuICAgIH1cblxuICAgIHJldHVybiBzdWJzY3JpcHRpb247XG4gIH1cbn1cblxuLy8gQXNzaWduIGhlcmUgYmVjYXVzZSBGbG93IGRvZXNuJ3Qgc3VwcG9ydCBjb21wdXRlZCBwcm9wZXJ0eSBrZXlzIG9uIGNsYXNzZXM6XG4vLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svZmxvdy9pc3N1ZXMvMjI4NlxuKExpdmVTZXQ6YW55KS5wcm90b3R5cGVbJCRvYnNlcnZhYmxlXSA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gdGhpcztcbn07XG4iXX0= | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJMaXZlU2V0IiwiaW5pdCIsIl92YWx1ZXMiLCJfYWN0aXZlIiwiX2VuZGVkIiwiX2VuZGVkV2l0aEVycm9yIiwiX2Vycm9yIiwiX3F1ZXVlZENhbGwiLCJfY2hhbmdlUXVldWUiLCJfb2JzZXJ2ZXJzIiwiX2luaXQiLCJyZWNvcmQiLCJwdXNoIiwiY2hhbmdlcyIsIm9ic2VydmVyc1RvQ2FsbCIsImVuZGVkIiwic2xpY2UiLCJmb3JFYWNoIiwib2JzZXJ2ZXIiLCJpZ25vcmUiLCJvYnNlcnZlck5leHQiLCJuZXh0IiwiY2FsbCIsImNoYW5nZXNUb0RlbGl2ZXIiLCJsZW5ndGgiLCJlcnJvciIsImNvbXBsZXRlIiwiRXJyb3IiLCJsaXN0ZW5IYW5kbGVyIiwidW5zdWJzY3JpYmUiLCJ2YWx1ZXMiLCJwdWxsQ2hhbmdlcyIsInJlYWQiLCJvYnNlcnZlck9yT25OZXh0Iiwib25FcnJvciIsIm9uQ29tcGxldGUiLCJsaXZlU2V0Iiwic3Vic2NyaXB0aW9uIiwiY2xvc2VkIiwic3RhcnQiLCJvYnNlcnZlclJlY29yZCIsImlzU3RhcnRpbmciLCJ1bnN1YnNjcmliZWRJblN0YXJ0IiwiaW5kZXhPZiIsIml4Iiwic3BsaWNlIiwiX2RlYWN0aXZhdGUiLCJjaGFuZ2VRdWV1ZUxlbmd0aCIsIm9yaWdpbmFsTmV4dCIsImNvbnRyb2xsZXIiLCJhZGQiLCJoYXMiLCJ2YWx1ZSIsIl9xdWV1ZUNoYW5nZSIsInR5cGUiLCJyZW1vdmUiLCJkZWxldGUiLCJlcnIiLCJlbmQiLCJhY3RpdmUiLCJzZXRWYWx1ZXNFcnJvciIsInNldFZhbHVlcyIsImxpc3RlbkhhbmRsZXJPckZ1bmN0aW9uIiwibGlzdGVuIiwiVHlwZUVycm9yIiwiaW5pdGlhbFZhbHVlcyIsInNldCIsIl9jb250cm9sbGVyIiwic3Vic2NyaWJlIiwic2hvdWxkTm90SGFwcGVuIiwibHMiLCJwcm90b3R5cGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztB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QWtCLEVBQWxCO0FBQ0EsYUFBTyxFQUFDaEMsZ0JBQUQsRUFBVWEsWUFBYUEsVUFBdkIsRUFBUDtBQUNEOzs7NkJBRWtCbkIsTSxFQUE0QjtBQUM3QyxVQUFNdUMsa0JBQWtCLFNBQWxCQSxlQUFrQixHQUFNO0FBQzVCLGNBQU0sSUFBSTFDLEtBQUosQ0FBVSxtQkFBVixDQUFOO0FBQ0QsT0FGRDtBQUdBLFVBQU0yQyxLQUFLLElBQUl0RSxPQUFKLENBQVk7QUFDckJnQyxjQUFNcUMsZUFEZTtBQUVyQk4sZ0JBQVFNO0FBRmEsT0FBWixDQUFYO0FBSUFDLFNBQUdsRSxNQUFILEdBQVksSUFBWjtBQUNBa0UsU0FBR3BFLE9BQUgsR0FBYTRCLE1BQWI7QUFDQSxhQUFPd0MsRUFBUDtBQUNEOzs7OztBQWdQSDtBQUNBOzs7a0JBN1JxQnRFLE87QUE4UnBCQSxPQUFELENBQWN1RSxTQUFkLCtCQUF3QyxZQUFXO0FBQ2pELFNBQU8sSUFBUDtBQUNELENBRkQiLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBAZmxvdyAqL1xuXG5pbXBvcnQgYXNhcCBmcm9tICdhc2FwJztcbmltcG9ydCAkJG9ic2VydmFibGUgZnJvbSAnc3ltYm9sLW9ic2VydmFibGUnO1xuXG5leHBvcnQgdHlwZSBMaXZlU2V0Q2hhbmdlUmVjb3JkPFQ+ID1cbiAge3R5cGU6ICdhZGQnLCB2YWx1ZTogVH0gfFxuICB7dHlwZTogJ3JlbW92ZScsIHZhbHVlOiBUfSB8XG4gIHt0eXBlOiAnZW5kJ307XG5cbmV4cG9ydCB0eXBlIExpdmVTZXRDb250cm9sbGVyPFQ+ID0ge1xuICBjbG9zZWQ6IGJvb2xlYW47XG4gIGFkZChpdGVtOiBUKTogdm9pZDtcbiAgcmVtb3ZlKGl0ZW06IFQpOiB2b2lkO1xuICBlcnJvcihlcnI6IGFueSk6IHZvaWQ7XG4gIGVuZCgpOiB2b2lkO1xufTtcblxuZXhwb3J0IHR5cGUgTGlzdGVuSGFuZGxlciA9IHtcbiAgdW5zdWJzY3JpYmUoKTogdm9pZDtcbiAgK3B1bGxDaGFuZ2VzPzogPygpID0+IHZvaWQ7XG59O1xuXG5leHBvcnQgdHlwZSBMaXZlU2V0SW5pdDxUPiA9IHtcbiAgcmVhZCgpOiBTZXQ8VD47XG4gIGxpc3RlbihcbiAgICBzZXRWYWx1ZXM6IHsgKHZhbHVlczogU2V0PFQ+KTogdm9pZCB9LFxuICAgIGNvbnRyb2xsZXI6IExpdmVTZXRDb250cm9sbGVyPFQ+XG4gICk6ID9MaXN0ZW5IYW5kbGVyfCgpPT52b2lkO1xufTtcblxuZXhwb3J0IHR5cGUgTGl2ZVNldFN1YnNjcmliZXI8VD4gPSAoY2hhbmdlczogQXJyYXk8TGl2ZVNldENoYW5nZVJlY29yZDxUPj4pID0+IHZvaWQ7XG5cbmV4cG9ydCB0eXBlIExpdmVTZXRTdWJzY3JpcHRpb24gPSB7XG4gIGNsb3NlZDogYm9vbGVhbjtcbiAgdW5zdWJzY3JpYmUoKTogdm9pZDtcbiAgcHVsbENoYW5nZXMoKTogdm9pZDtcbn07XG5cbmV4cG9ydCB0eXBlIExpdmVTZXRPYnNlcnZlcjxUPiA9IHtcbiAgc3RhcnQ/OiA/KHN1YnNjcmlwdGlvbjogTGl2ZVNldFN1YnNjcmlwdGlvbikgPT4gdm9pZDtcbiAgbmV4dD86ID8oY2hhbmdlczogQXJyYXk8TGl2ZVNldENoYW5nZVJlY29yZDxUPj4pID0+IHZvaWQ7XG4gIGVycm9yPzogPyhlcnI6IGFueSkgPT4gdm9pZDtcbiAgY29tcGxldGU/OiA/KCkgPT4gdm9pZDtcbn07XG5cbnR5cGUgTGl2ZVNldE9ic2VydmVyUmVjb3JkPFQ+ID0ge1xuICBpZ25vcmU6IG51bWJlcjtcbiAgb2JzZXJ2ZXI6IExpdmVTZXRPYnNlcnZlcjxUPjtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIExpdmVTZXQ8VD4ge1xuICBfaW5pdDogTGl2ZVNldEluaXQ8VD47XG5cbiAgX3ZhbHVlczogP1NldDxUPiA9IG51bGw7XG4gIF9hY3RpdmU6ID97XG4gICAgY29udHJvbGxlcjogTGl2ZVNldENvbnRyb2xsZXI8VD47XG4gICAgbGlzdGVuSGFuZGxlcjogTGlzdGVuSGFuZGxlcjtcbiAgfSA9IG51bGw7XG4gIF9lbmRlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBfZW5kZWRXaXRoRXJyb3I6IGJvb2xlYW4gPSBmYWxzZTtcbiAgX2Vycm9yOiBhbnkgPSBudWxsO1xuICBfcXVldWVkQ2FsbDogYm9vbGVhbiA9IGZhbHNlO1xuICBfY2hhbmdlUXVldWU6IEFycmF5PExpdmVTZXRDaGFuZ2VSZWNvcmQ8VD4+ID0gW107XG4gIF9vYnNlcnZlcnM6IEFycmF5PExpdmVTZXRPYnNlcnZlclJlY29yZDxUPj4gPSBbXTtcblxuICBjb25zdHJ1Y3Rvcihpbml0OiBMaXZlU2V0SW5pdDxUPikge1xuICAgIHRoaXMuX2luaXQgPSBpbml0O1xuICB9XG5cbiAgc3RhdGljIGFjdGl2ZTxUPihpbml0aWFsVmFsdWVzOiA/U2V0PFQ+KToge2xpdmVTZXQ6IExpdmVTZXQ8VD4sIGNvbnRyb2xsZXI6IExpdmVTZXRDb250cm9sbGVyPFQ+fSB7XG4gICAgY29uc3Qgc2V0ID0gaW5pdGlhbFZhbHVlcyB8fCBuZXcgU2V0KCk7XG4gICAgbGV0IGNvbnRyb2xsZXI7XG4gICAgY29uc3QgbGl2ZVNldCA9IG5ldyBMaXZlU2V0KHtcbiAgICAgIHJlYWQ6ICgpID0+IHNldCxcbiAgICAgIGxpc3RlbjogKHNldFZhbHVlcywgX2NvbnRyb2xsZXIpID0+IHtcbiAgICAgICAgc2V0VmFsdWVzKHNldCk7XG4gICAgICAgIGNvbnRyb2xsZXIgPSBfY29udHJvbGxlcjtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBsaXZlU2V0LnN1YnNjcmliZSh7fSk7XG4gICAgcmV0dXJuIHtsaXZlU2V0LCBjb250cm9sbGVyOiAoY29udHJvbGxlcjogYW55KX07XG4gIH1cblxuICBzdGF0aWMgY29uc3RhbnQ8VD4odmFsdWVzOiBTZXQ8VD4pOiBMaXZlU2V0PFQ+IHtcbiAgICBjb25zdCBzaG91bGROb3RIYXBwZW4gPSAoKSA9PiB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Nob3VsZCBub3QgaGFwcGVuJyk7XG4gICAgfTtcbiAgICBjb25zdCBscyA9IG5ldyBMaXZlU2V0KHtcbiAgICAgIHJlYWQ6IHNob3VsZE5vdEhhcHBlbixcbiAgICAgIGxpc3Rlbjogc2hvdWxkTm90SGFwcGVuXG4gICAgfSk7XG4gICAgbHMuX2VuZGVkID0gdHJ1ZTtcbiAgICBscy5fdmFsdWVzID0gdmFsdWVzO1xuICAgIHJldHVybiBscztcbiAgfVxuXG4gIF9xdWV1ZUNoYW5nZShyZWNvcmQ6ID9MaXZlU2V0Q2hhbmdlUmVjb3JkPFQ+KSB7XG4gICAgaWYgKHJlY29yZCkge1xuICAgICAgdGhpcy5fY2hhbmdlUXVldWUucHVzaChyZWNvcmQpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuX3F1ZXVlZENhbGwpIHtcbiAgICAgIHRoaXMuX3F1ZXVlZENhbGwgPSB0cnVlO1xuICAgICAgYXNhcCgoKSA9PiB7XG4gICAgICAgIHRoaXMuX3F1ZXVlZENhbGwgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgY2hhbmdlcyA9IHRoaXMuX2NoYW5nZVF1ZXVlO1xuICAgICAgICB0aGlzLl9jaGFuZ2VRdWV1ZSA9IFtdO1xuICAgICAgICBsZXQgb2JzZXJ2ZXJzVG9DYWxsO1xuICAgICAgICBjb25zdCBlbmRlZCA9IHRoaXMuX2VuZGVkO1xuICAgICAgICBpZiAoZW5kZWQpIHtcbiAgICAgICAgICBvYnNlcnZlcnNUb0NhbGwgPSB0aGlzLl9vYnNlcnZlcnM7XG4gICAgICAgICAgdGhpcy5fb2JzZXJ2ZXJzID0gW107XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgb2JzZXJ2ZXJzVG9DYWxsID0gdGhpcy5fb2JzZXJ2ZXJzLnNsaWNlKCk7XG4gICAgICAgIH1cbiAgICAgICAgb2JzZXJ2ZXJzVG9DYWxsLmZvckVhY2gocmVjb3JkID0+IHtcbiAgICAgICAgICBjb25zdCB7b2JzZXJ2ZXIsIGlnbm9yZX0gPSByZWNvcmQ7XG4gICAgICAgICAgY29uc3Qgb2JzZXJ2ZXJOZXh0ID0gb2JzZXJ2ZXIubmV4dDtcbiAgICAgICAgICBpZiAob2JzZXJ2ZXJOZXh0KSB7XG4gICAgICAgICAgICBpZiAoaWdub3JlID09PSAwKSB7XG4gICAgICAgICAgICAgIG9ic2VydmVyTmV4dC5jYWxsKG9ic2VydmVyLCBjaGFuZ2VzKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJlY29yZC5pZ25vcmUgPSAwO1xuICAgICAgICAgICAgICBjb25zdCBjaGFuZ2VzVG9EZWxpdmVyID0gY2hhbmdlcy5zbGljZShpZ25vcmUpO1xuICAgICAgICAgICAgICBpZiAoY2hhbmdlc1RvRGVsaXZlci5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBvYnNlcnZlck5leHQuY2FsbChvYnNlcnZlciwgY2hhbmdlc1RvRGVsaXZlcik7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGVuZGVkKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5fZW5kZWRXaXRoRXJyb3IpIHtcbiAgICAgICAgICAgICAgaWYgKG9ic2VydmVyLmVycm9yKSBvYnNlcnZlci5lcnJvcih0aGlzLl9lcnJvcik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBpZiAob2JzZXJ2ZXIuY29tcGxldGUpIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIF9kZWFjdGl2YXRlKCkge1xuICAgIGlmICghdGhpcy5fYWN0aXZlKSB0aHJvdyBuZXcgRXJyb3IoJ2FscmVhZHkgaW5hY3RpdmUnKTtcbiAgICBjb25zdCB7bGlzdGVuSGFuZGxlcn0gPSB0aGlzLl9hY3RpdmU7XG4gICAgdGhpcy5fYWN0aXZlID0gbnVsbDtcbiAgICBpZiAobGlzdGVuSGFuZGxlcikge1xuICAgICAgbGlzdGVuSGFuZGxlci51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHZhbHVlcygpOiBTZXQ8VD4ge1xuICAgIGlmICh0aGlzLl92YWx1ZXMpIHtcbiAgICAgIGNvbnN0IHZhbHVlcyA9IHRoaXMuX3ZhbHVlcztcbiAgICAgIGlmICh0aGlzLl9hY3RpdmUpIHtcbiAgICAgICAgY29uc3Qge2xpc3RlbkhhbmRsZXJ9ID0gdGhpcy5fYWN0aXZlO1xuICAgICAgICBpZiAobGlzdGVuSGFuZGxlci5wdWxsQ2hhbmdlcykge1xuICAgICAgICAgIGxpc3RlbkhhbmRsZXIucHVsbENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMuX2VuZGVkID8gdmFsdWVzIDogbmV3IFNldCh2YWx1ZXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5fYWN0aXZlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcigndHJpZWQgdG8gY2FsbCB2YWx1ZXMoKSBvbiBsaXZlc2V0IGR1cmluZyBzdWJzY3JpcHRpb24gYmVmb3JlIHNldFZhbHVlcyB3YXMgY2FsbGVkJyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5faW5pdC5yZWFkKCk7XG4gICAgfVxuICB9XG5cbiAgaXNFbmRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZW5kZWQ7XG4gIH1cblxuICBzdWJzY3JpYmUob2JzZXJ2ZXJPck9uTmV4dDogTGl2ZVNldE9ic2VydmVyPFQ+IHwgKGNoYW5nZXM6IEFycmF5PExpdmVTZXRDaGFuZ2VSZWNvcmQ8VD4+KSA9PiB2b2lkLCBvbkVycm9yOiA/KGVycjogYW55KSA9PiB2b2lkLCBvbkNvbXBsZXRlOiA/KCkgPT4gdm9pZCk6IExpdmVTZXRTdWJzY3JpcHRpb24ge1xuICAgIGNvbnN0IGxpdmVTZXQgPSB0aGlzO1xuXG4gICAgbGV0IG9ic2VydmVyO1xuICAgIGlmICh0eXBlb2Ygb2JzZXJ2ZXJPck9uTmV4dCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgb2JzZXJ2ZXIgPSB7XG4gICAgICAgIG5leHQ6IG9ic2VydmVyT3JPbk5leHQsXG4gICAgICAgIGVycm9yOiBvbkVycm9yLFxuICAgICAgICBjb21wbGV0ZTogb25Db21wbGV0ZVxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgb2JzZXJ2ZXIgPSBvYnNlcnZlck9yT25OZXh0O1xuICAgIH1cblxuICAgIChvYnNlcnZlcjogTGl2ZVNldE9ic2VydmVyPFQ+KTtcblxuICAgIGlmICh0aGlzLl9lbmRlZCkge1xuICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID0ge1xuICAgICAgICBjbG9zZWQ6IGZhbHNlLFxuICAgICAgICB1bnN1YnNjcmliZTogKCkgPT4ge1xuICAgICAgICAgIHN1YnNjcmlwdGlvbi5jbG9zZWQgPSB0cnVlO1xuICAgICAgICB9LFxuICAgICAgICBwdWxsQ2hhbmdlczogKCkgPT4ge31cbiAgICAgIH07XG4gICAgICBpZiAob2JzZXJ2ZXIuc3RhcnQpIHtcbiAgICAgICAgb2JzZXJ2ZXIuc3RhcnQoc3Vic2NyaXB0aW9uKTtcbiAgICAgIH1cbiAgICAgIGlmICghc3Vic2NyaXB0aW9uLmNsb3NlZCkge1xuICAgICAgICBpZiAodGhpcy5fZW5kZWRXaXRoRXJyb3IpIHtcbiAgICAgICAgICBpZiAob2JzZXJ2ZXIuZXJyb3IpIHtcbiAgICAgICAgICAgIG9ic2VydmVyLmVycm9yKHRoaXMuX2Vycm9yKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKG9ic2VydmVyLmNvbXBsZXRlKSB7XG4gICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgc3Vic2NyaXB0aW9uLmNsb3NlZCA9IHRydWU7XG4gICAgICByZXR1cm4gc3Vic2NyaXB0aW9uO1xuICAgIH1cblxuICAgIGNvbnN0IG9ic2VydmVyUmVjb3JkID0ge29ic2VydmVyLCBpZ25vcmU6IHRoaXMuX2NoYW5nZVF1ZXVlLmxlbmd0aH07XG5cbiAgICBsZXQgaXNTdGFydGluZyA9IHRydWU7XG4gICAgbGV0IHVuc3Vic2NyaWJlZEluU3RhcnQgPSBmYWxzZTtcbiAgICBjb25zdCBzdWJzY3JpcHRpb24gPSB7XG4gICAgICAvKjo6IGNsb3NlZDogZmFsc2UmJmAgKi8gZ2V0IGNsb3NlZCgpIHtcbiAgICAgICAgcmV0dXJuICFpc1N0YXJ0aW5nICYmIGxpdmVTZXQuX29ic2VydmVycy5pbmRleE9mKG9ic2VydmVyUmVjb3JkKSA8IDA7XG4gICAgICB9Lyo6OiBgICovLFxuICAgICAgdW5zdWJzY3JpYmU6ICgpID0+IHtcbiAgICAgICAgaWYgKGlzU3RhcnRpbmcpIHtcbiAgICAgICAgICB1bnN1YnNjcmliZWRJblN0YXJ0ID0gdHJ1ZTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaXggPSB0aGlzLl9vYnNlcnZlcnMuaW5kZXhPZihvYnNlcnZlclJlY29yZCk7XG4gICAgICAgIGlmIChpeCA+PSAwKSB7XG4gICAgICAgICAgdGhpcy5fb2JzZXJ2ZXJzLnNwbGljZShpeCwgMSk7XG4gICAgICAgICAgaWYgKCF0aGlzLl9lbmRlZCAmJiB0aGlzLl9vYnNlcnZlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLl92YWx1ZXMgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5fZGVhY3RpdmF0ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHB1bGxDaGFuZ2VzOiAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLl9hY3RpdmUgJiYgdGhpcy5fYWN0aXZlLmxpc3RlbkhhbmRsZXIgJiYgdGhpcy5fYWN0aXZlLmxpc3RlbkhhbmRsZXIucHVsbENoYW5nZXMpIHtcbiAgICAgICAgICB0aGlzLl9hY3RpdmUubGlzdGVuSGFuZGxlci5wdWxsQ2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNoYW5nZVF1ZXVlTGVuZ3RoID0gdGhpcy5fY2hhbmdlUXVldWUubGVuZ3RoO1xuICAgICAgICBjb25zdCBvcmlnaW5hbE5leHQgPSBvYnNlcnZlci5uZXh0O1xuICAgICAgICBpZiAoY2hhbmdlUXVldWVMZW5ndGggIT09IDAgJiYgb3JpZ2luYWxOZXh0KSB7XG4gICAgICAgICAgY29uc3QgY2hhbmdlc1RvRGVsaXZlciA9IHRoaXMuX2NoYW5nZVF1ZXVlLnNsaWNlKG9ic2VydmVyUmVjb3JkLmlnbm9yZSk7XG4gICAgICAgICAgaWYgKGNoYW5nZXNUb0RlbGl2ZXIubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgICAgICBvYnNlcnZlclJlY29yZC5pZ25vcmUgPSBjaGFuZ2VRdWV1ZUxlbmd0aDtcbiAgICAgICAgICAgIG9yaWdpbmFsTmV4dC5jYWxsKG9ic2VydmVyLCBjaGFuZ2VzVG9EZWxpdmVyKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuXG4gICAgaWYgKCF0aGlzLl9hY3RpdmUpIHtcbiAgICAgIGNvbnN0IGNvbnRyb2xsZXI6IExpdmVTZXRDb250cm9sbGVyPFQ+ID0ge1xuICAgICAgICAvLyBGbG93IGRvZXNuJ3Qgc3VwcG9ydCBnZXR0ZXJzIGFuZCBzZXR0ZXJzIHlldFxuICAgICAgICAvKjo6IGNsb3NlZDogZmFsc2UmJmAgKi8gZ2V0IGNsb3NlZCgpIHtcbiAgICAgICAgICByZXR1cm4gIWxpdmVTZXQuX2FjdGl2ZSB8fCBsaXZlU2V0Ll9hY3RpdmUuY29udHJvbGxlciAhPT0gdGhpcztcbiAgICAgICAgfS8qOjogYCAqLyxcbiAgICAgICAgYWRkOiB2YWx1ZSA9PiB7XG4gICAgICAgICAgY29uc3QgdmFsdWVzID0gdGhpcy5fdmFsdWVzO1xuICAgICAgICAgIGlmICghdmFsdWVzKSB0aHJvdyBuZXcgRXJyb3IoJ3NldFZhbHVlIG11c3QgYmUgY2FsbGVkIGJlZm9yZSBjb250cm9sbGVyIGlzIHVzZWQnKTtcbiAgICAgICAgICBpZiAoIXRoaXMuX2VuZGVkICYmICF2YWx1ZXMuaGFzKHZhbHVlKSkge1xuICAgICAgICAgICAgdmFsdWVzLmFkZCh2YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLl9xdWV1ZUNoYW5nZSh7dHlwZTogJ2FkZCcsIHZhbHVlfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICByZW1vdmU6IHZhbHVlID0+IHtcbiAgICAgICAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLl92YWx1ZXM7XG4gICAgICAgICAgaWYgKCF2YWx1ZXMpIHRocm93IG5ldyBFcnJvcignc2V0VmFsdWUgbXVzdCBiZSBjYWxsZWQgYmVmb3JlIGNvbnRyb2xsZXIgaXMgdXNlZCcpO1xuICAgICAgICAgIGlmICghdGhpcy5fZW5kZWQgJiYgdmFsdWVzLmhhcyh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHZhbHVlcy5kZWxldGUodmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5fcXVldWVDaGFuZ2Uoe3R5cGU6ICdyZW1vdmUnLCB2YWx1ZX0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IGVyciA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuX2VuZGVkKSByZXR1cm47XG4gICAgICAgICAgdGhpcy5fZW5kZWQgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuX2VuZGVkV2l0aEVycm9yID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLl9lcnJvciA9IGVycjtcbiAgICAgICAgICB0aGlzLl9xdWV1ZUNoYW5nZSgpO1xuICAgICAgICAgIHRoaXMuX2RlYWN0aXZhdGUoKTtcbiAgICAgICAgfSxcbiAgICAgICAgZW5kOiAoKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuX2VuZGVkKSByZXR1cm47XG4gICAgICAgICAgdGhpcy5fZW5kZWQgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuX3F1ZXVlQ2hhbmdlKCk7XG4gICAgICAgICAgdGhpcy5fZGVhY3RpdmF0ZSgpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgY29uc3QgYWN0aXZlID0gdGhpcy5fYWN0aXZlID0ge1xuICAgICAgICBjb250cm9sbGVyLFxuICAgICAgICBsaXN0ZW5IYW5kbGVyOiB7XG4gICAgICAgICAgdW5zdWJzY3JpYmU6ICgpID0+IHt9XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICBjb25zdCBzZXRWYWx1ZXNFcnJvciA9ICgpID0+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdzZXRWYWx1ZXMgbXVzdCBiZSBjYWxsZWQgb25jZSBkdXJpbmcgbGlzdGVuJyk7XG4gICAgICB9O1xuICAgICAgbGV0IHNldFZhbHVlcyA9IHZhbHVlcyA9PiB7XG4gICAgICAgIHNldFZhbHVlcyA9IHNldFZhbHVlc0Vycm9yO1xuICAgICAgICB0aGlzLl92YWx1ZXMgPSB2YWx1ZXM7XG4gICAgICB9O1xuICAgICAgY29uc3QgbGlzdGVuSGFuZGxlck9yRnVuY3Rpb24gPSB0aGlzLl9pbml0Lmxpc3Rlbih2YWx1ZXMgPT4gc2V0VmFsdWVzKHZhbHVlcyksIGNvbnRyb2xsZXIpO1xuICAgICAgaWYgKCF0aGlzLl92YWx1ZXMpIHtcbiAgICAgICAgc2V0VmFsdWVzRXJyb3IoKTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgbGlzdGVuSGFuZGxlck9yRnVuY3Rpb24gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgYWN0aXZlLmxpc3RlbkhhbmRsZXIgPSB7XG4gICAgICAgICAgdW5zdWJzY3JpYmU6IGxpc3RlbkhhbmRsZXJPckZ1bmN0aW9uXG4gICAgICAgIH07XG4gICAgICB9IGVsc2UgaWYgKGxpc3RlbkhhbmRsZXJPckZ1bmN0aW9uICE9IG51bGwgJiYgdHlwZW9mIGxpc3RlbkhhbmRsZXJPckZ1bmN0aW9uLnVuc3Vic2NyaWJlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGFjdGl2ZS5saXN0ZW5IYW5kbGVyID0gbGlzdGVuSGFuZGxlck9yRnVuY3Rpb247XG4gICAgICB9IGVsc2UgaWYgKGxpc3RlbkhhbmRsZXJPckZ1bmN0aW9uICE9IG51bGwpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignbGlzdGVuIG11c3QgcmV0dXJuIG9iamVjdCB3aXRoIHVuc3Vic2NyaWJlIG1ldGhvZCwgYSBmdW5jdGlvbiwgb3IgbnVsbCcpO1xuICAgICAgfVxuICAgICAgaWYgKGNvbnRyb2xsZXIuY2xvc2VkKSB7XG4gICAgICAgIHRoaXMuX2FjdGl2ZSA9IGFjdGl2ZTtcbiAgICAgICAgdGhpcy5fZGVhY3RpdmF0ZSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChvYnNlcnZlci5zdGFydCkge1xuICAgICAgb2JzZXJ2ZXIuc3RhcnQoc3Vic2NyaXB0aW9uKTtcbiAgICB9XG4gICAgaXNTdGFydGluZyA9IGZhbHNlO1xuXG4gICAgb2JzZXJ2ZXJSZWNvcmQuaWdub3JlID0gdGhpcy5fY2hhbmdlUXVldWUubGVuZ3RoO1xuICAgIGlmICghdW5zdWJzY3JpYmVkSW5TdGFydCkge1xuICAgICAgdGhpcy5fb2JzZXJ2ZXJzLnB1c2gob2JzZXJ2ZXJSZWNvcmQpO1xuICAgIH1cblxuICAgIHJldHVybiBzdWJzY3JpcHRpb247XG4gIH1cbn1cblxuLy8gQXNzaWduIGhlcmUgYmVjYXVzZSBGbG93IGRvZXNuJ3Qgc3VwcG9ydCBjb21wdXRlZCBwcm9wZXJ0eSBrZXlzIG9uIGNsYXNzZXM6XG4vLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svZmxvdy9pc3N1ZXMvMjI4NlxuKExpdmVTZXQ6YW55KS5wcm90b3R5cGVbJCRvYnNlcnZhYmxlXSA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gdGhpcztcbn07XG4iXX0= |
{ | ||
"name": "live-set", | ||
"version": "0.3.10", | ||
"version": "0.3.11", | ||
"description": "Class representing a changing and transformable collection of items.", | ||
"main": "index.js", | ||
"scripts": { | ||
"prepare": "babel -s inline -d ./ src/ --ignore '*.test.*' && flow-copy-source -v src . --ignore '*.test.*'", | ||
"prepare": "rm -f *.js *.flow && babel -s inline -d ./ src/ --ignore '*.test.*' && flow-copy-source -v src . --ignore '*.test.*'", | ||
"test": "npm run lint && npm run flow_check && jest", | ||
@@ -9,0 +9,0 @@ "flow_check": "flow check", |
Sorry, the diff of this file is not supported yet
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
No README
QualityPackage does not have a README. This may indicate a failed publish or a low quality package.
Found 1 instance in 1 package
139365
21
0
308