@mrgrain/jsii-struct-builder
Advanced tools
Comparing version 0.7.13 to 0.7.14
@@ -168,2 +168,2 @@ "use strict"; | ||
exports.Struct = Struct; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RydWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2J1aWxkZXIvc3RydWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFDQUErRDtBQUMvRCx3Q0FBMkM7QUErRzNDOztHQUVHO0FBQ0gsTUFBYSxNQUFNO0lBQ2pCOztPQUVHO0lBQ0ksTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFtQjtRQUN4QyxPQUFPLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBVyxFQUFFLGVBQXdCLElBQUk7UUFDN0QsTUFBTSxNQUFNLEdBQUcsSUFBQSx1QkFBYSxFQUFDLEdBQUcsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUNoRCxPQUFPLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcscUJBQXFCOztRQUM3QyxPQUFPLElBQUksTUFBTSxDQUFDO1lBQ2hCLFFBQVEsRUFBRSxNQUFBLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxtQ0FBSSxXQUFXO1lBQzdDLEdBQUc7WUFDSCxJQUFJLEVBQUUsTUFBQSxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxtQ0FBSSxXQUFXO1lBQzFDLElBQUksRUFBRSxlQUFRLENBQUMsU0FBUztTQUN6QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBS0QsWUFBb0IsSUFBbUI7O1FBQ3JDLElBQUksQ0FBQyxLQUFLLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxHQUFHLENBQ3hCLE1BQUEsSUFBSSxDQUFDLFVBQVUsMENB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LENBQUM7Q0FDRjtBQS9MRCx3QkErTEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnRlcmZhY2VUeXBlLCBQcm9wZXJ0eSwgVHlwZUtpbmQgfSBmcm9tICdAanNpaS9zcGVjJztcbmltcG9ydCB7IGZpbmRJbnRlcmZhY2UgfSBmcm9tICcuLi9wcml2YXRlJztcblxuLyoqXG4gKiBTb21ldGhpbmcgdGhhdCBoYXMganNpaSBwcm9wZXJ0aWVzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEhhc1Byb3BlcnRpZXMge1xuICAvKipcbiAgICogVGhlIGxpc3Qgb2YgcHJvcGVydGllcyBvZiB0aGUgdGhpbmcuXG4gICAqL1xuICByZWFkb25seSBwcm9wZXJ0aWVzPzogUHJvcGVydHlbXTtcbn1cblxuLyoqXG4gKiBTb21ldGhpbmcgdGhhdCBoYXMgYSBmdWxseS1xdWFsaWZpZWQtbmFtZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIYXNGdWxseVF1YWxpZmllZE5hbWUge1xuICAvKipcbiAgICogVGhlIGZ1bGx5LXF1YWxpZmllZC1uYW1lIG9mIHRoZSB0aGluZy5cbiAgICovXG4gIHJlYWRvbmx5IGZxbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIFNvbWV0aGluZyB0aGF0IGhhcyBhIGZ1bGx5LXF1YWxpZmllZC1uYW1lLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEhhc1N0cnVjdFNwZWMge1xuICAvKipcbiAgICogR2V0IHRoZSBjdXJyZW50IHNwZWMgb2YgdGhlIGJ1aWxkZXIuXG4gICAqL1xuICByZWFkb25seSBzcGVjOiBJbnRlcmZhY2VUeXBlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTdHJ1Y3RCdWlsZGVyIHtcbiAgLyoqXG4gICAqIEFkZCBwcm9wZXJ0aWVzLlxuICAgKlxuICAgKiBJbiB0aGUgc2FtZSBjYWxsLCB0aGUgZmlyc3QgZGVmaW5lZCBwcm9wZXJ0aWVzIHRha2UgcHJpb3JpdHkuXG4gICAqIEhvd2V2ZXIgbGF0ZXIgY2FsbHMgd2lsbCBvdmVyd3JpdGUgZXhpc3RpbmcgcHJvcGVydGllcy5cbiAgICovXG4gIGFkZCguLi5wcm9wczogUHJvcGVydHlbXSk6IElTdHJ1Y3RCdWlsZGVyO1xuXG4gIC8qKlxuICAgKiBNaXggdGhlIHByb3BlcnRpZXMgb2YgdGhlc2Ugc291cmNlcyBpbnRvIHRoZSBzdHJ1Y3QuXG4gICAqXG4gICAqIEluIHRoZSBzYW1lIGNhbGwsIHRoZSBmaXJzdCBkZWZpbmVkIHNvdXJjZXMgYW5kIHByb3BlcnRpZXMgdGFrZSBwcmlvcml0eS5cbiAgICogSG93ZXZlciBsYXRlciBjYWxscyB3aWxsIG92ZXJ3cml0ZSBleGlzdGluZyBwcm9wZXJ0aWVzLlxuICAgKi9cbiAgbWl4aW4oLi4uc291cmNlczogSGFzUHJvcGVydGllc1tdKTogSVN0cnVjdEJ1aWxkZXI7XG5cbiAgLyoqXG4gICAqIFJlcGxhY2VzIGFuIGV4aXN0aW5nIHByb3BlcnR5IHdpdGggYSBuZXcgc3BlYy5cbiAgICovXG4gIHJlcGxhY2UobmFtZTogc3RyaW5nLCByZXBsYWNlbWVudDogUHJvcGVydHkpOiBJU3RydWN0QnVpbGRlcjtcblxuICAvKipcbiAgICogQ2FsbHMgYSBkZWZpbmVkIGNhbGxiYWNrIGZ1bmN0aW9uIG9uIGVhY2ggcHJvcGVydHksIGFuZCByZXBsYWNlcyB0aGUgcHJvcGVydHkgd2l0aCB0aGUgcmV0dXJuZWQgcHJvcGVydHkuXG4gICAqXG4gICAqIEBwYXJhbSBjYWxsYmFja2ZuIOKAlCBBIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyBhIHByb3BlcnR5IHNwZWMgYXMgYW4gYXJndW1lbnQuIFRoZSBtYXAgbWV0aG9kIGNhbGxzIHRoZSBjYWxsYmFja2ZuIGZ1bmN0aW9uIG9uZSB0aW1lIGZvciBlYWNoIHByb3BlcnR5LlxuICAgKi9cbiAgbWFwKGNhbGxiYWNrZm46IChwcm9wOiBQcm9wZXJ0eSkgPT4gUHJvcGVydHkpOiBJU3RydWN0QnVpbGRlcjtcblxuICAvKipcbiAgICogVXBkYXRlIGFuIGV4aXN0aW5nIHByb3BlcnR5LlxuICAgKi9cbiAgdXBkYXRlKG5hbWU6IHN0cmluZywgdXBkYXRlOiBQYXJ0aWFsPFByb3BlcnR5Pik6IElTdHJ1Y3RCdWlsZGVyO1xuXG4gIC8qKlxuICAgKiBDYWxscyBhIGRlZmluZWQgY2FsbGJhY2sgZnVuY3Rpb24gb24gZWFjaCBwcm9wZXJ0eSwgYW5kIG1lcmdlcyB0aGUgcHJvcGVydHkgd2l0aCB0aGUgcmV0dXJuZWQgcHJvcGVydHkgcGFydGlhbC5cbiAgICpcbiAgICogQHBhcmFtIGNhbGxiYWNrZm4g4oCUIEEgZnVuY3Rpb24gdGhhdCBhY2NlcHRzIGEgcHJvcGVydHkgc3BlYyBhcyBhbiBhcmd1bWVudC4gVGhlIG1hcCBtZXRob2QgY2FsbHMgdGhlIGNhbGxiYWNrZm4gZnVuY3Rpb24gb25lIHRpbWUgZm9yIGVhY2ggcHJvcGVydHkuXG4gICAqL1xuICB1cGRhdGVFdmVyeShjYWxsYmFja2ZuOiAocHJvcDogUHJvcGVydHkpID0+IFBhcnRpYWw8UHJvcGVydHk+KTogSVN0cnVjdEJ1aWxkZXI7XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBhbGwgZXhpc3RpbmcgcHJvcGVydGllcy5cbiAgICovXG4gIHVwZGF0ZUFsbCh1cGRhdGU6IFBhcnRpYWw8UHJvcGVydHk+KTogSVN0cnVjdEJ1aWxkZXI7XG5cbiAgLyoqXG4gICAqIFJlbmFtZSBhIHByb3BlcnR5LlxuICAgKlxuICAgKiBJZiBhbm90aGVyIHByb3BlcnR5IHdpdGggdGhlIG5ldyBuYW1lIGV4aXN0cywgaXQgd2lsbCBiZSBvdmVycmlkZGVuLlxuICAgKi9cbiAgcmVuYW1lKGZyb206IHN0cmluZywgdG86IHN0cmluZyk6IElTdHJ1Y3RCdWlsZGVyO1xuXG4gIC8qKlxuICAgKiBNYXJrIGFsbCBwcm9wZXJ0aWVzIGFzIG9wdGlvbmFsLlxuICAgKi9cbiAgYWxsT3B0aW9uYWwoKTogSVN0cnVjdEJ1aWxkZXI7XG5cbiAgLyoqXG4gICAqIEtlZXAgb25seSB0aGUgcHJvcGVydGllcyB0aGF0IG1lZXQgdGhlIGNvbmRpdGlvbiBzcGVjaWZpZWQgaW4gdGhlIGNhbGxiYWNrIGZ1bmN0aW9uLlxuICAgKi9cbiAgZmlsdGVyKHByZWRpY2F0ZTogKHByb3A6IFByb3BlcnR5KSA9PiBib29sZWFuKTogSVN0cnVjdEJ1aWxkZXI7XG5cbiAgLyoqXG4gICAqIE9ubHkga2VlcCB0aGVzZSBwcm9wZXJ0aWVzLlxuICAgKi9cbiAgb25seSguLi5rZWVwOiBzdHJpbmdbXSk6IElTdHJ1Y3RCdWlsZGVyO1xuXG4gIC8qKlxuICAgKiBPbWl0IHRoZXNlIHByb3BlcnRpZXMuXG4gICAqL1xuICBvbWl0KC4uLnJlbW92ZTogc3RyaW5nW10pOiBJU3RydWN0QnVpbGRlcjtcblxuICAvKipcbiAgICogUmVtb3ZlIGFsbCBkZXByZWNhdGVkIHByb3BlcnRpZXMuXG4gICAqL1xuICB3aXRob3V0RGVwcmVjYXRlZCgpOiBJU3RydWN0QnVpbGRlcjtcbn1cblxuLyoqXG4gKiBCdWlsZCBhIGpzaWkgc3RydWN0XG4gKi9cbmV4cG9ydCBjbGFzcyBTdHJ1Y3QgaW1wbGVtZW50cyBJU3RydWN0QnVpbGRlciwgSGFzUHJvcGVydGllcywgSGFzRnVsbHlRdWFsaWZpZWROYW1lLCBIYXNTdHJ1Y3RTcGVjIHtcbiAgLyoqXG4gICAqIENyZWF0ZSBhIGJ1aWxkZXIgZnJvbSBhbiBqc2lpIHNwZWNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVNwZWMoc3BlYzogSW50ZXJmYWNlVHlwZSkge1xuICAgIHJldHVybiBuZXcgU3RydWN0KHNwZWMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIGJ1aWxkZXIgZnJvbSBhIGpzaWkgRlFOXG4gICAqXG4gICAqIEBwYXJhbSBmcW4gVGhlIGpzaWkgZnFuIG9mIHRoZSBzb3VyY2Ugc3BlYy5cbiAgICogQHBhcmFtIG1lcmdlUGFyZW50cyBNZXJnZSBwYXJlbnQgaW50ZXJmYWNlcyBpbnRvIHRoZSBzcGVjLiBEZWZhdWx0cyB0byBgdHJ1ZWAuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21GcW4oZnFuOiBzdHJpbmcsIG1lcmdlUGFyZW50czogYm9vbGVhbiA9IHRydWUpIHtcbiAgICBjb25zdCBzb3VyY2UgPSBmaW5kSW50ZXJmYWNlKGZxbiwgbWVyZ2VQYXJlbnRzKTtcbiAgICByZXR1cm4gbmV3IFN0cnVjdChzb3VyY2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBlbXB0eSBidWlsZGVyXG4gICAqXG4gICAqIE5vdGUgdGhhdCB0aGUgYmVoYXZpb3Igb2YgYGJ1aWxkZXIuc3BlY2AgaXMgdW5kZWZpbmVkIHdoZW4gdXNpbmcgdGhpcyBtZXRob2QuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGVtcHR5KGZxbiA9ICc8PGVtcHR5Pj4uPDxlbXB0eT4+Jykge1xuICAgIHJldHVybiBuZXcgU3RydWN0KHtcbiAgICAgIGFzc2VtYmx5OiBmcW4uc3BsaXQoJy4nKS5hdCgwKSA/PyAnPDxlbXB0eT4+JyxcbiAgICAgIGZxbixcbiAgICAgIG5hbWU6IGZxbi5zcGxpdCgnLicpLmF0KC0xKSA/PyAnPDxlbXB0eT4+JyxcbiAgICAgIGtpbmQ6IFR5cGVLaW5kLkludGVyZmFjZSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2Jhc2U6IEludGVyZmFjZVR5cGU7XG4gIHByaXZhdGUgX3Byb3BlcnRpZXM6IE1hcDxzdHJpbmcsIFByb3BlcnR5PjtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKGJhc2U6IEludGVyZmFjZVR5cGUpIHtcbiAgICB0aGlzLl9iYXNlID0gc3RydWN0dXJlZENsb25lKGJhc2UpO1xuICAgIHRoaXMuX3Byb3BlcnRpZXMgPSBuZXcgTWFwKFxuICAgICAgYmFzZS5wcm9wZXJ0aWVzPy5tYXAoKHApID0+IFtwLm5hbWUsIHN0cnVjdHVyZWRDbG9uZShwKV0pLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgYWRkKC4uLnByb3BzOiBQcm9wZXJ0eVtdKTogdGhpcyB7XG4gICAgZm9yIChjb25zdCBwcm9wIG9mIHByb3BzLnJldmVyc2UoKSkge1xuICAgICAgdGhpcy5fcHJvcGVydGllcy5zZXQocHJvcC5uYW1lLCBwcm9wKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBtaXhpbiguLi5zb3VyY2VzOiBIYXNQcm9wZXJ0aWVzW10pOiB0aGlzIHtcbiAgICBmb3IgKGNvbnN0IHNvdXJjZSBvZiBzb3VyY2VzLnJldmVyc2UoKSkge1xuICAgICAgdGhpcy5hZGQoLi4uKHNvdXJjZS5wcm9wZXJ0aWVzIHx8IFtdKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgcmVwbGFjZShuYW1lOiBzdHJpbmcsIHJlcGxhY2VtZW50OiBQcm9wZXJ0eSk6IHRoaXMge1xuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLl9wcm9wZXJ0aWVzLmdldChuYW1lKTtcblxuICAgIGlmICghY3VycmVudCkge1xuICAgICAgdGhyb3cgYFVuYWJsZSB0byByZXBsYWNlIHByb3BlcnR5ICcke25hbWV9JyBpbiAnJHt0aGlzLl9iYXNlLmZxbn06IFByb3BlcnR5IGRvZXMgbm90IGV4aXN0cywgcGxlYXNlIHVzZSBcXGBhZGRcXGAuJ2A7XG4gICAgfVxuXG4gICAgaWYgKHJlcGxhY2VtZW50Lm5hbWUgIT09IG5hbWUpIHtcbiAgICAgIHRoaXMub21pdChuYW1lKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5hZGQocmVwbGFjZW1lbnQpO1xuICB9XG5cbiAgcHVibGljIG1hcChjYWxsYmFja2ZuOiAocHJvcDogUHJvcGVydHkpID0+IFByb3BlcnR5KTogdGhpcyB7XG4gICAgY29uc3Qga2V5cyA9IHRoaXMuX3Byb3BlcnRpZXMua2V5cygpO1xuICAgIGZvciAoY29uc3QgcHJvcGVydHlLZXkgb2Yga2V5cykge1xuICAgICAgY29uc3QgY3VycmVudCA9IHN0cnVjdHVyZWRDbG9uZSh0aGlzLl9wcm9wZXJ0aWVzLmdldChwcm9wZXJ0eUtleSkhKTtcbiAgICAgIHRoaXMucmVwbGFjZShwcm9wZXJ0eUtleSwgY2FsbGJhY2tmbihjdXJyZW50KSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlKG5hbWU6IHN0cmluZywgdXBkYXRlOiBQYXJ0aWFsPFByb3BlcnR5Pik6IHRoaXMge1xuICAgIGNvbnN0IG9sZCA9IHRoaXMuX3Byb3BlcnRpZXMuZ2V0KG5hbWUpO1xuXG4gICAgaWYgKCFvbGQpIHtcbiAgICAgIHRocm93IGBVbmFibGUgdG8gdXBkYXRlIHByb3BlcnR5ICcke25hbWV9JyBpbiAnJHt0aGlzLl9iYXNlLmZxbn06IFByb3BlcnR5IGRvZXMgbm90IGV4aXN0cywgcGxlYXNlIHVzZSBcXGBhZGRcXGAuJ2A7XG4gICAgfVxuXG4gICAgY29uc3QgdXBkYXRlZFByb3AgPSB7XG4gICAgICAuLi5vbGQsXG4gICAgICAuLi51cGRhdGUsXG4gICAgICBkb2NzOiB7XG4gICAgICAgIC4uLm9sZD8uZG9jcyxcbiAgICAgICAgLi4udXBkYXRlPy5kb2NzLFxuICAgICAgICBjdXN0b206IHtcbiAgICAgICAgICAuLi5vbGQ/LmRvY3M/LmN1c3RvbSxcbiAgICAgICAgICAuLi51cGRhdGU/LmRvY3M/LmN1c3RvbSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIGlmICh1cGRhdGVkUHJvcC5uYW1lICE9PSBuYW1lKSB7XG4gICAgICB0aGlzLm9taXQobmFtZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYWRkKHVwZGF0ZWRQcm9wKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVFdmVyeShjYWxsYmFja2ZuOiAocHJvcDogUHJvcGVydHkpID0+IFBhcnRpYWw8UHJvcGVydHk+KTogdGhpcyB7XG4gICAgY29uc3Qga2V5cyA9IHRoaXMuX3Byb3BlcnRpZXMua2V5cygpO1xuICAgIGZvciAoY29uc3QgcHJvcGVydHlLZXkgb2Yga2V5cykge1xuICAgICAgY29uc3QgY3VycmVudCA9IHN0cnVjdHVyZWRDbG9uZSh0aGlzLl9wcm9wZXJ0aWVzLmdldChwcm9wZXJ0eUtleSkhKTtcbiAgICAgIHRoaXMudXBkYXRlKGN1cnJlbnQubmFtZSwgY2FsbGJhY2tmbihjdXJyZW50KSA/PyB7fSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlQWxsKHVwZGF0ZTogUGFydGlhbDxQcm9wZXJ0eT4pOiB0aGlzIHtcbiAgICBmb3IgKGNvbnN0IHByb3BlcnR5S2V5IG9mIHRoaXMuX3Byb3BlcnRpZXMua2V5cygpKSB7XG4gICAgICB0aGlzLnVwZGF0ZShwcm9wZXJ0eUtleSwgdXBkYXRlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgcmVuYW1lKGZyb206IHN0cmluZywgdG86IHN0cmluZyk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLnVwZGF0ZShmcm9tLCB7IG5hbWU6IHRvIH0pO1xuICB9XG5cbiAgcHVibGljIGFsbE9wdGlvbmFsKCk6IHRoaXMge1xuICAgIHRoaXMubWFwKChwcm9wZXJ0eSkgPT4ge1xuICAgICAgcHJvcGVydHkub3B0aW9uYWwgPSB0cnVlO1xuICAgICAgcmV0dXJuIHByb3BlcnR5O1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgZmlsdGVyKHByZWRpY2F0ZTogKHByb3A6IFByb3BlcnR5KSA9PiBib29sZWFuKTogdGhpcyB7XG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eUtleSBvZiB0aGlzLl9wcm9wZXJ0aWVzLmtleXMoKSkge1xuICAgICAgaWYgKCFwcmVkaWNhdGUodGhpcy5fcHJvcGVydGllcy5nZXQocHJvcGVydHlLZXkpISkpIHtcbiAgICAgICAgdGhpcy5fcHJvcGVydGllcy5kZWxldGUocHJvcGVydHlLZXkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIG9ubHkoLi4ua2VlcDogc3RyaW5nW10pOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXIoKHByb3ApID0+IGtlZXAuaW5jbHVkZXMocHJvcC5uYW1lKSk7XG4gIH1cblxuICBwdWJsaWMgb21pdCguLi5yZW1vdmU6IHN0cmluZ1tdKTogdGhpcyB7XG4gICAgZm9yIChjb25zdCBwcm9wIG9mIHJlbW92ZSkge1xuICAgICAgdGhpcy5fcHJvcGVydGllcy5kZWxldGUocHJvcCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgd2l0aG91dERlcHJlY2F0ZWQoKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyKChwcm9wKSA9PiBudWxsID09IHByb3AuZG9jcz8uZGVwcmVjYXRlZCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBidWlsZGVyXG4gICAqL1xuICBwdWJsaWMgZ2V0IHNwZWMoKTogSW50ZXJmYWNlVHlwZSB7XG4gICAgY29uc3QgcHJvcGVydGllcyA9IEFycmF5LmZyb20odGhpcy5fcHJvcGVydGllcy52YWx1ZXMoKSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RydWN0dXJlZENsb25lKHRoaXMuX2Jhc2UpLFxuICAgICAgcHJvcGVydGllcyxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgY3VycmVudCBwcm9wZXJ0aWVzIG9mIHRoZSBidWlsZGVyXG4gICAqL1xuICBwdWJsaWMgZ2V0IHByb3BlcnRpZXMoKTogUHJvcGVydHlbXSB7XG4gICAgcmV0dXJuIHRoaXMuc3BlYy5wcm9wZXJ0aWVzID8/IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgRlFOIGZvciB0aGUgYnVpbGRlclxuICAgKi9cbiAgcHVibGljIGdldCBmcW4oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fYmFzZS5mcW47XG4gIH1cbn1cbiJdfQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RydWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2J1aWxkZXIvc3RydWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFDQUErRDtBQUMvRCx3Q0FBMkM7QUErRzNDOztHQUVHO0FBQ0gsTUFBYSxNQUFNO0lBQ2pCOztPQUVHO0lBQ0ksTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFtQjtRQUN4QyxPQUFPLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBVyxFQUFFLGVBQXdCLElBQUk7UUFDN0QsTUFBTSxNQUFNLEdBQUcsSUFBQSx1QkFBYSxFQUFDLEdBQUcsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUNoRCxPQUFPLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcscUJBQXFCOztRQUM3QyxPQUFPLElBQUksTUFBTSxDQUFDO1lBQ2hCLFFBQVEsRUFBRSxNQUFBLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxtQ0FBSSxXQUFXO1lBQzdDLEdBQUc7WUFDSCxJQUFJLEVBQUUsTUFBQSxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxtQ0FBSSxXQUFXO1lBQzFDLElBQUksRUFBRSxlQUFRLENBQUMsU0FBUztTQUN6QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBS0QsWUFBb0IsSUFBbUI7O1FBQ3JDLElBQUksQ0FBQyxLQUFLLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxHQUFHLENBQ3hCLE1BQUEsSUFBSSxDQUFDLFVBQVUsMENB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SSxDQUFDLElBQUksQ0FBQyxVQUFVLG1DQUFJLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLEdBQUc7UUFDWixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO0lBQ3hCLENBQUM7Q0FDRjtBQS9MRCx3QkErTEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnRlcmZhY2VUeXBlLCBQcm9wZXJ0eSwgVHlwZUtpbmQgfSBmcm9tICdAanNpaS9zcGVjJztcbmltcG9ydCB7IGZpbmRJbnRlcmZhY2UgfSBmcm9tICcuLi9wcml2YXRlJztcblxuLyoqXG4gKiBTb21ldGhpbmcgdGhhdCBoYXMganNpaSBwcm9wZXJ0aWVzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEhhc1Byb3BlcnRpZXMge1xuICAvKipcbiAgICogVGhlIGxpc3Qgb2YgcHJvcGVydGllcyBvZiB0aGUgdGhpbmcuXG4gICAqL1xuICByZWFkb25seSBwcm9wZXJ0aWVzPzogUHJvcGVydHlbXTtcbn1cblxuLyoqXG4gKiBTb21ldGhpbmcgdGhhdCBoYXMgYSBmdWxseS1xdWFsaWZpZWQtbmFtZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIYXNGdWxseVF1YWxpZmllZE5hbWUge1xuICAvKipcbiAgICogVGhlIGZ1bGx5LXF1YWxpZmllZC1uYW1lIG9mIHRoZSB0aGluZy5cbiAgICovXG4gIHJlYWRvbmx5IGZxbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIFNvbWV0aGluZyB0aGF0IGhhcyBhIGZ1bGx5LXF1YWxpZmllZC1uYW1lLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEhhc1N0cnVjdFNwZWMge1xuICAvKipcbiAgICogR2V0IHRoZSBjdXJyZW50IHNwZWMgb2YgdGhlIGJ1aWxkZXIuXG4gICAqL1xuICByZWFkb25seSBzcGVjOiBJbnRlcmZhY2VUeXBlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTdHJ1Y3RCdWlsZGVyIHtcbiAgLyoqXG4gICAqIEFkZCBwcm9wZXJ0aWVzLlxuICAgKlxuICAgKiBJbiB0aGUgc2FtZSBjYWxsLCB0aGUgZmlyc3QgZGVmaW5lZCBwcm9wZXJ0aWVzIHRha2UgcHJpb3JpdHkuXG4gICAqIEhvd2V2ZXIgbGF0ZXIgY2FsbHMgd2lsbCBvdmVyd3JpdGUgZXhpc3RpbmcgcHJvcGVydGllcy5cbiAgICovXG4gIGFkZCguLi5wcm9wczogUHJvcGVydHlbXSk6IElTdHJ1Y3RCdWlsZGVyO1xuXG4gIC8qKlxuICAgKiBNaXggdGhlIHByb3BlcnRpZXMgb2YgdGhlc2Ugc291cmNlcyBpbnRvIHRoZSBzdHJ1Y3QuXG4gICAqXG4gICAqIEluIHRoZSBzYW1lIGNhbGwsIHRoZSBmaXJzdCBkZWZpbmVkIHNvdXJjZXMgYW5kIHByb3BlcnRpZXMgdGFrZSBwcmlvcml0eS5cbiAgICogSG93ZXZlciBsYXRlciBjYWxscyB3aWxsIG92ZXJ3cml0ZSBleGlzdGluZyBwcm9wZXJ0aWVzLlxuICAgKi9cbiAgbWl4aW4oLi4uc291cmNlczogSGFzUHJvcGVydGllc1tdKTogSVN0cnVjdEJ1aWxkZXI7XG5cbiAgLyoqXG4gICAqIFJlcGxhY2VzIGFuIGV4aXN0aW5nIHByb3BlcnR5IHdpdGggYSBuZXcgc3BlYy5cbiAgICovXG4gIHJlcGxhY2UobmFtZTogc3RyaW5nLCByZXBsYWNlbWVudDogUHJvcGVydHkpOiBJU3RydWN0QnVpbGRlcjtcblxuICAvKipcbiAgICogQ2FsbHMgYSBkZWZpbmVkIGNhbGxiYWNrIGZ1bmN0aW9uIG9uIGVhY2ggcHJvcGVydHksIGFuZCByZXBsYWNlcyB0aGUgcHJvcGVydHkgd2l0aCB0aGUgcmV0dXJuZWQgcHJvcGVydHkuXG4gICAqXG4gICAqIEBwYXJhbSBjYWxsYmFja2ZuIOKAlCBBIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyBhIHByb3BlcnR5IHNwZWMgYXMgYW4gYXJndW1lbnQuIFRoZSBtYXAgbWV0aG9kIGNhbGxzIHRoZSBjYWxsYmFja2ZuIGZ1bmN0aW9uIG9uZSB0aW1lIGZvciBlYWNoIHByb3BlcnR5LlxuICAgKi9cbiAgbWFwKGNhbGxiYWNrZm46IChwcm9wOiBQcm9wZXJ0eSkgPT4gUHJvcGVydHkpOiBJU3RydWN0QnVpbGRlcjtcblxuICAvKipcbiAgICogVXBkYXRlIGFuIGV4aXN0aW5nIHByb3BlcnR5LlxuICAgKi9cbiAgdXBkYXRlKG5hbWU6IHN0cmluZywgdXBkYXRlOiBQYXJ0aWFsPFByb3BlcnR5Pik6IElTdHJ1Y3RCdWlsZGVyO1xuXG4gIC8qKlxuICAgKiBDYWxscyBhIGRlZmluZWQgY2FsbGJhY2sgZnVuY3Rpb24gb24gZWFjaCBwcm9wZXJ0eSwgYW5kIG1lcmdlcyB0aGUgcHJvcGVydHkgd2l0aCB0aGUgcmV0dXJuZWQgcHJvcGVydHkgcGFydGlhbC5cbiAgICpcbiAgICogQHBhcmFtIGNhbGxiYWNrZm4g4oCUIEEgZnVuY3Rpb24gdGhhdCBhY2NlcHRzIGEgcHJvcGVydHkgc3BlYyBhcyBhbiBhcmd1bWVudC4gVGhlIG1hcCBtZXRob2QgY2FsbHMgdGhlIGNhbGxiYWNrZm4gZnVuY3Rpb24gb25lIHRpbWUgZm9yIGVhY2ggcHJvcGVydHkuXG4gICAqL1xuICB1cGRhdGVFdmVyeShjYWxsYmFja2ZuOiAocHJvcDogUHJvcGVydHkpID0+IFBhcnRpYWw8UHJvcGVydHk+KTogSVN0cnVjdEJ1aWxkZXI7XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBhbGwgZXhpc3RpbmcgcHJvcGVydGllcy5cbiAgICovXG4gIHVwZGF0ZUFsbCh1cGRhdGU6IFBhcnRpYWw8UHJvcGVydHk+KTogSVN0cnVjdEJ1aWxkZXI7XG5cbiAgLyoqXG4gICAqIFJlbmFtZSBhIHByb3BlcnR5LlxuICAgKlxuICAgKiBJZiBhbm90aGVyIHByb3BlcnR5IHdpdGggdGhlIG5ldyBuYW1lIGV4aXN0cywgaXQgd2lsbCBiZSBvdmVycmlkZGVuLlxuICAgKi9cbiAgcmVuYW1lKGZyb206IHN0cmluZywgdG86IHN0cmluZyk6IElTdHJ1Y3RCdWlsZGVyO1xuXG4gIC8qKlxuICAgKiBNYXJrIGFsbCBwcm9wZXJ0aWVzIGFzIG9wdGlvbmFsLlxuICAgKi9cbiAgYWxsT3B0aW9uYWwoKTogSVN0cnVjdEJ1aWxkZXI7XG5cbiAgLyoqXG4gICAqIEtlZXAgb25seSB0aGUgcHJvcGVydGllcyB0aGF0IG1lZXQgdGhlIGNvbmRpdGlvbiBzcGVjaWZpZWQgaW4gdGhlIGNhbGxiYWNrIGZ1bmN0aW9uLlxuICAgKi9cbiAgZmlsdGVyKHByZWRpY2F0ZTogKHByb3A6IFByb3BlcnR5KSA9PiBib29sZWFuKTogSVN0cnVjdEJ1aWxkZXI7XG5cbiAgLyoqXG4gICAqIE9ubHkga2VlcCB0aGVzZSBwcm9wZXJ0aWVzLlxuICAgKi9cbiAgb25seSguLi5rZWVwOiBzdHJpbmdbXSk6IElTdHJ1Y3RCdWlsZGVyO1xuXG4gIC8qKlxuICAgKiBPbWl0IHRoZXNlIHByb3BlcnRpZXMuXG4gICAqL1xuICBvbWl0KC4uLnJlbW92ZTogc3RyaW5nW10pOiBJU3RydWN0QnVpbGRlcjtcblxuICAvKipcbiAgICogUmVtb3ZlIGFsbCBkZXByZWNhdGVkIHByb3BlcnRpZXMuXG4gICAqL1xuICB3aXRob3V0RGVwcmVjYXRlZCgpOiBJU3RydWN0QnVpbGRlcjtcbn1cblxuLyoqXG4gKiBCdWlsZCBhIGpzaWkgc3RydWN0XG4gKi9cbmV4cG9ydCBjbGFzcyBTdHJ1Y3QgaW1wbGVtZW50cyBJU3RydWN0QnVpbGRlciwgSGFzUHJvcGVydGllcywgSGFzRnVsbHlRdWFsaWZpZWROYW1lLCBIYXNTdHJ1Y3RTcGVjIHtcbiAgLyoqXG4gICAqIENyZWF0ZSBhIGJ1aWxkZXIgZnJvbSBhbiBqc2lpIHNwZWNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVNwZWMoc3BlYzogSW50ZXJmYWNlVHlwZSkge1xuICAgIHJldHVybiBuZXcgU3RydWN0KHNwZWMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIGJ1aWxkZXIgZnJvbSBhIGpzaWkgRlFOXG4gICAqXG4gICAqIEBwYXJhbSBmcW4gVGhlIGpzaWkgZnFuIG9mIHRoZSBzb3VyY2Ugc3BlYy5cbiAgICogQHBhcmFtIG1lcmdlUGFyZW50cyBNZXJnZSBwYXJlbnQgaW50ZXJmYWNlcyBpbnRvIHRoZSBzcGVjLiBEZWZhdWx0cyB0byBgdHJ1ZWAuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21GcW4oZnFuOiBzdHJpbmcsIG1lcmdlUGFyZW50czogYm9vbGVhbiA9IHRydWUpIHtcbiAgICBjb25zdCBzb3VyY2UgPSBmaW5kSW50ZXJmYWNlKGZxbiwgbWVyZ2VQYXJlbnRzKTtcbiAgICByZXR1cm4gbmV3IFN0cnVjdChzb3VyY2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBlbXB0eSBidWlsZGVyXG4gICAqXG4gICAqIE5vdGUgdGhhdCB0aGUgYmVoYXZpb3Igb2YgYGJ1aWxkZXIuc3BlY2AgaXMgdW5kZWZpbmVkIHdoZW4gdXNpbmcgdGhpcyBtZXRob2QuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGVtcHR5KGZxbiA9ICc8PGVtcHR5Pj4uPDxlbXB0eT4+Jykge1xuICAgIHJldHVybiBuZXcgU3RydWN0KHtcbiAgICAgIGFzc2VtYmx5OiBmcW4uc3BsaXQoJy4nKS5hdCgwKSA/PyAnPDxlbXB0eT4+JyxcbiAgICAgIGZxbixcbiAgICAgIG5hbWU6IGZxbi5zcGxpdCgnLicpLmF0KC0xKSA/PyAnPDxlbXB0eT4+JyxcbiAgICAgIGtpbmQ6IFR5cGVLaW5kLkludGVyZmFjZSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2Jhc2U6IEludGVyZmFjZVR5cGU7XG4gIHByaXZhdGUgX3Byb3BlcnRpZXM6IE1hcDxzdHJpbmcsIFByb3BlcnR5PjtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKGJhc2U6IEludGVyZmFjZVR5cGUpIHtcbiAgICB0aGlzLl9iYXNlID0gc3RydWN0dXJlZENsb25lKGJhc2UpO1xuICAgIHRoaXMuX3Byb3BlcnRpZXMgPSBuZXcgTWFwKFxuICAgICAgYmFzZS5wcm9wZXJ0aWVzPy5tYXAoKHApID0+IFtwLm5hbWUsIHN0cnVjdHVyZWRDbG9uZShwKV0pLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgYWRkKC4uLnByb3BzOiBQcm9wZXJ0eVtdKTogdGhpcyB7XG4gICAgZm9yIChjb25zdCBwcm9wIG9mIHByb3BzLnJldmVyc2UoKSkge1xuICAgICAgdGhpcy5fcHJvcGVydGllcy5zZXQocHJvcC5uYW1lLCBwcm9wKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBtaXhpbiguLi5zb3VyY2VzOiBIYXNQcm9wZXJ0aWVzW10pOiB0aGlzIHtcbiAgICBmb3IgKGNvbnN0IHNvdXJjZSBvZiBzb3VyY2VzLnJldmVyc2UoKSkge1xuICAgICAgdGhpcy5hZGQoLi4uKHNvdXJjZS5wcm9wZXJ0aWVzIHx8IFtdKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgcmVwbGFjZShuYW1lOiBzdHJpbmcsIHJlcGxhY2VtZW50OiBQcm9wZXJ0eSk6IHRoaXMge1xuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLl9wcm9wZXJ0aWVzLmdldChuYW1lKTtcblxuICAgIGlmICghY3VycmVudCkge1xuICAgICAgdGhyb3cgYFVuYWJsZSB0byByZXBsYWNlIHByb3BlcnR5ICcke25hbWV9JyBpbiAnJHt0aGlzLl9iYXNlLmZxbn06IFByb3BlcnR5IGRvZXMgbm90IGV4aXN0cywgcGxlYXNlIHVzZSBcXGBhZGRcXGAuJ2A7XG4gICAgfVxuXG4gICAgaWYgKHJlcGxhY2VtZW50Lm5hbWUgIT09IG5hbWUpIHtcbiAgICAgIHRoaXMub21pdChuYW1lKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5hZGQocmVwbGFjZW1lbnQpO1xuICB9XG5cbiAgcHVibGljIG1hcChjYWxsYmFja2ZuOiAocHJvcDogUHJvcGVydHkpID0+IFByb3BlcnR5KTogdGhpcyB7XG4gICAgY29uc3Qga2V5cyA9IHRoaXMuX3Byb3BlcnRpZXMua2V5cygpO1xuICAgIGZvciAoY29uc3QgcHJvcGVydHlLZXkgb2Yga2V5cykge1xuICAgICAgY29uc3QgY3VycmVudCA9IHN0cnVjdHVyZWRDbG9uZSh0aGlzLl9wcm9wZXJ0aWVzLmdldChwcm9wZXJ0eUtleSkhKTtcbiAgICAgIHRoaXMucmVwbGFjZShwcm9wZXJ0eUtleSwgY2FsbGJhY2tmbihjdXJyZW50KSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlKG5hbWU6IHN0cmluZywgdXBkYXRlOiBQYXJ0aWFsPFByb3BlcnR5Pik6IHRoaXMge1xuICAgIGNvbnN0IG9sZCA9IHRoaXMuX3Byb3BlcnRpZXMuZ2V0KG5hbWUpO1xuXG4gICAgaWYgKCFvbGQpIHtcbiAgICAgIHRocm93IGBVbmFibGUgdG8gdXBkYXRlIHByb3BlcnR5ICcke25hbWV9JyBpbiAnJHt0aGlzLl9iYXNlLmZxbn06IFByb3BlcnR5IGRvZXMgbm90IGV4aXN0cywgcGxlYXNlIHVzZSBcXGBhZGRcXGAuJ2A7XG4gICAgfVxuXG4gICAgY29uc3QgdXBkYXRlZFByb3AgPSB7XG4gICAgICAuLi5vbGQsXG4gICAgICAuLi51cGRhdGUsXG4gICAgICBkb2NzOiB7XG4gICAgICAgIC4uLm9sZD8uZG9jcyxcbiAgICAgICAgLi4udXBkYXRlPy5kb2NzLFxuICAgICAgICBjdXN0b206IHtcbiAgICAgICAgICAuLi5vbGQ/LmRvY3M/LmN1c3RvbSxcbiAgICAgICAgICAuLi51cGRhdGU/LmRvY3M/LmN1c3RvbSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIGlmICh1cGRhdGVkUHJvcC5uYW1lICE9PSBuYW1lKSB7XG4gICAgICB0aGlzLm9taXQobmFtZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYWRkKHVwZGF0ZWRQcm9wKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVFdmVyeShjYWxsYmFja2ZuOiAocHJvcDogUHJvcGVydHkpID0+IFBhcnRpYWw8UHJvcGVydHk+KTogdGhpcyB7XG4gICAgY29uc3Qga2V5cyA9IHRoaXMuX3Byb3BlcnRpZXMua2V5cygpO1xuICAgIGZvciAoY29uc3QgcHJvcGVydHlLZXkgb2Yga2V5cykge1xuICAgICAgY29uc3QgY3VycmVudCA9IHN0cnVjdHVyZWRDbG9uZSh0aGlzLl9wcm9wZXJ0aWVzLmdldChwcm9wZXJ0eUtleSkhKTtcbiAgICAgIHRoaXMudXBkYXRlKGN1cnJlbnQubmFtZSwgY2FsbGJhY2tmbihjdXJyZW50KSA/PyB7fSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlQWxsKHVwZGF0ZTogUGFydGlhbDxQcm9wZXJ0eT4pOiB0aGlzIHtcbiAgICBmb3IgKGNvbnN0IHByb3BlcnR5S2V5IG9mIHRoaXMuX3Byb3BlcnRpZXMua2V5cygpKSB7XG4gICAgICB0aGlzLnVwZGF0ZShwcm9wZXJ0eUtleSwgdXBkYXRlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgcmVuYW1lKGZyb206IHN0cmluZywgdG86IHN0cmluZyk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLnVwZGF0ZShmcm9tLCB7IG5hbWU6IHRvIH0pO1xuICB9XG5cbiAgcHVibGljIGFsbE9wdGlvbmFsKCk6IHRoaXMge1xuICAgIHRoaXMubWFwKChwcm9wZXJ0eSkgPT4ge1xuICAgICAgcHJvcGVydHkub3B0aW9uYWwgPSB0cnVlO1xuICAgICAgcmV0dXJuIHByb3BlcnR5O1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgZmlsdGVyKHByZWRpY2F0ZTogKHByb3A6IFByb3BlcnR5KSA9PiBib29sZWFuKTogdGhpcyB7XG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eUtleSBvZiB0aGlzLl9wcm9wZXJ0aWVzLmtleXMoKSkge1xuICAgICAgaWYgKCFwcmVkaWNhdGUodGhpcy5fcHJvcGVydGllcy5nZXQocHJvcGVydHlLZXkpISkpIHtcbiAgICAgICAgdGhpcy5fcHJvcGVydGllcy5kZWxldGUocHJvcGVydHlLZXkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIG9ubHkoLi4ua2VlcDogc3RyaW5nW10pOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXIoKHByb3ApID0+IGtlZXAuaW5jbHVkZXMocHJvcC5uYW1lKSk7XG4gIH1cblxuICBwdWJsaWMgb21pdCguLi5yZW1vdmU6IHN0cmluZ1tdKTogdGhpcyB7XG4gICAgZm9yIChjb25zdCBwcm9wIG9mIHJlbW92ZSkge1xuICAgICAgdGhpcy5fcHJvcGVydGllcy5kZWxldGUocHJvcCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgd2l0aG91dERlcHJlY2F0ZWQoKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyKChwcm9wKSA9PiBudWxsID09IHByb3AuZG9jcz8uZGVwcmVjYXRlZCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBidWlsZGVyXG4gICAqL1xuICBwdWJsaWMgZ2V0IHNwZWMoKTogSW50ZXJmYWNlVHlwZSB7XG4gICAgY29uc3QgcHJvcGVydGllcyA9IEFycmF5LmZyb20odGhpcy5fcHJvcGVydGllcy52YWx1ZXMoKSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RydWN0dXJlZENsb25lKHRoaXMuX2Jhc2UpLFxuICAgICAgcHJvcGVydGllcyxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgY3VycmVudCBwcm9wZXJ0aWVzIG9mIHRoZSBidWlsZGVyXG4gICAqL1xuICBwdWJsaWMgZ2V0IHByb3BlcnRpZXMoKTogUHJvcGVydHlbXSB7XG4gICAgcmV0dXJuIHRoaXMuc3BlYy5wcm9wZXJ0aWVzID8/IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgRlFOIGZvciB0aGUgYnVpbGRlclxuICAgKi9cbiAgcHVibGljIGdldCBmcW4oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fYmFzZS5mcW47XG4gIH1cbn1cbiJdfQ== |
@@ -79,2 +79,2 @@ "use strict"; | ||
exports.findInterface = findInterface; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZW1ibHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJpdmF0ZS9hc3NlbWJseS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5Q0FBMEM7QUFDMUMscUNBT29CO0FBRXBCLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQztBQUV6QixNQUFNLFVBQVUsR0FBNkIsRUFBRSxDQUFDO0FBRWhELFNBQVMsWUFBWSxDQUFDLEdBQVc7SUFDL0IsT0FBTyxJQUFBLG1CQUFPLEVBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFBLGdCQUFJLEVBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN2RCxDQUFDO0FBRUQsU0FBUyxrQkFBa0IsQ0FBQyxHQUFXO0lBQ3JDLE9BQU8seUJBQXlCLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQzNELENBQUM7QUFFRCxTQUFTLHlCQUF5QixDQUFDLEdBQVcsRUFBRSxHQUFXO0lBQ3pELE1BQU0sUUFBUSxHQUFHLElBQUEsMkJBQW9CLEVBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2xELElBQUksUUFBUSxDQUFDLElBQUksS0FBSyxHQUFHLEVBQUU7UUFDekIsTUFBTSxpQkFBaUIsR0FBRyxpQkFBaUIsSUFBQSxnQkFBSSxFQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsVUFBVSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7S0FDekY7SUFFRCxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDO0FBRUQsU0FBUyxZQUFZLENBQUMsR0FBVztJQUMvQixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQ3BCLElBQUk7WUFDRixVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDM0M7UUFBQyxPQUFPLEtBQUssRUFBRTtZQUNkLElBQUk7Z0JBQ0YsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLHlCQUF5QixDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQzthQUNqRTtZQUFDLE9BQU8sVUFBVSxFQUFFO2dCQUNuQixNQUFNLElBQUksY0FBYyxDQUFDLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxFQUFFLGlCQUFpQixHQUFHLFlBQVksQ0FBQyxDQUFDO2FBQ2pGO1NBQ0Y7S0FDRjtJQUVELE9BQU8sVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3pCLENBQUM7QUFFRCxTQUFTLGFBQWEsQ0FBQyxHQUFXOztJQUNoQyxNQUFNLEdBQUcsR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFFLENBQUMsQ0FBQztJQUVoRCxNQUFNLFNBQVMsR0FBRyxNQUFBLEdBQUcsQ0FBQyxLQUFLLDBDQUFHLEdBQUcsQ0FBQyxDQUFDO0lBRW5DLElBQUksQ0FBQyxTQUFTLEVBQUU7UUFDZCxNQUFNLFFBQVEsR0FBRywrQkFBK0IsR0FBRyxFQUFFLENBQUM7S0FDdkQ7SUFFRCxJQUFJLENBQUEsU0FBUyxhQUFULFNBQVMsdUJBQVQsU0FBUyxDQUFFLElBQUksTUFBSyxlQUFRLENBQUMsU0FBUyxFQUFFO1FBQzFDLE1BQU0sWUFBWSxHQUFHLGlDQUFpQyxTQUFTLGFBQVQsU0FBUyx1QkFBVCxTQUFTLENBQUUsSUFBSSxFQUFFLENBQUM7S0FDekU7SUFFRCxPQUFPLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUNwQyxDQUFDO0FBRUQsU0FBZ0IsYUFBYSxDQUMzQixHQUFXLEVBQ1gsaUJBQTBCLElBQUk7O0lBRTlCLE1BQU0sSUFBSSxHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUVoQyxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtRQUN2QyxPQUFPLElBQUksQ0FBQztLQUNiO0lBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQW9CLENBQUM7SUFDMUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7SUFFMUMsS0FBSyxNQUFNLE1BQU0sSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1FBQ3BDLE1BQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDL0MsTUFBQSxVQUFVLENBQUMsVUFBVSwwQ0FBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNuQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFBLFVBQVUsQ0FBQyxPQUFPLDBDQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2hDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztLQUNKO0lBRUQsTUFBQSxJQUFJLENBQUMsVUFBVSwwQ0FBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUM3QixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdkIsQ0FBQyxDQUFDLENBQUM7SUFDSCxNQUFBLElBQUksQ0FBQyxPQUFPLDBDQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1FBQzFCLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN6QixDQUFDLENBQUMsQ0FBQztJQUVILE9BQU87UUFDTCxHQUFHLElBQUk7UUFDUCxPQUFPLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDckMsVUFBVSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO0tBQ3ZDLENBQUM7QUFDSixDQUFDO0FBbkNELHNDQW1DQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRpcm5hbWUsIGpvaW4gfSBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHtcbiAgQXNzZW1ibHksXG4gIEludGVyZmFjZVR5cGUsXG4gIGxvYWRBc3NlbWJseUZyb21QYXRoLFxuICBNZXRob2QsXG4gIFByb3BlcnR5LFxuICBUeXBlS2luZCxcbn0gZnJvbSAnQGpzaWkvc3BlYyc7XG5cbmNvbnN0IERPVF9KU0lJID0gJy5qc2lpJztcblxuY29uc3QgYXNzZW1ibGllczogUmVjb3JkPHN0cmluZywgQXNzZW1ibHk+ID0ge307XG5cbmZ1bmN0aW9uIGFzc2VtYmx5UGF0aChhc206IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBkaXJuYW1lKHJlcXVpcmUucmVzb2x2ZShqb2luKGFzbSwgRE9UX0pTSUkpKSk7XG59XG5cbmZ1bmN0aW9uIGxvYWRBc3NlbWJseUJ5TmFtZShhc206IHN0cmluZyk6IEFzc2VtYmx5IHtcbiAgcmV0dXJuIGxvYWRBc3NlbWJseUZyb21EaXJlY3RvcnkoYXNtLCBhc3NlbWJseVBhdGgoYXNtKSk7XG59XG5cbmZ1bmN0aW9uIGxvYWRBc3NlbWJseUZyb21EaXJlY3RvcnkoYXNtOiBzdHJpbmcsIGRpcjogc3RyaW5nKTogQXNzZW1ibHkge1xuICBjb25zdCBhc3NlbWJseSA9IGxvYWRBc3NlbWJseUZyb21QYXRoKGRpciwgZmFsc2UpO1xuICBpZiAoYXNzZW1ibHkubmFtZSAhPT0gYXNtKSB7XG4gICAgdGhyb3cgYGpzaWkgYXNzZW1ibHkgJHthc219IG5vdCBmb3VuZCBpbiAke2pvaW4oZGlyLCBET1RfSlNJSSl9LCBnb3Q6ICR7YXNzZW1ibHkubmFtZX1gO1xuICB9XG5cbiAgcmV0dXJuIGFzc2VtYmx5O1xufVxuXG5mdW5jdGlvbiBsb2FkQXNzZW1ibHkoYXNtOiBzdHJpbmcpOiBBc3NlbWJseSB7XG4gIGlmICghYXNzZW1ibGllc1thc21dKSB7XG4gICAgdHJ5IHtcbiAgICAgIGFzc2VtYmxpZXNbYXNtXSA9IGxvYWRBc3NlbWJseUJ5TmFtZShhc20pO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0cnkge1xuICAgICAgICBhc3NlbWJsaWVzW2FzbV0gPSBsb2FkQXNzZW1ibHlGcm9tRGlyZWN0b3J5KGFzbSwgcHJvY2Vzcy5jd2QoKSk7XG4gICAgICB9IGNhdGNoIChlcnJvckxvY2FsKSB7XG4gICAgICAgIHRocm93IG5ldyBBZ2dyZWdhdGVFcnJvcihbZXJyb3IsIGVycm9yTG9jYWxdLCBganNpaSBhc3NlbWJseSAke2FzbX0gbm90IGZvdW5kYCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGFzc2VtYmxpZXNbYXNtXTtcbn1cblxuZnVuY3Rpb24gbG9hZEludGVyZmFjZShmcW46IHN0cmluZykge1xuICBjb25zdCBhc20gPSBsb2FkQXNzZW1ibHkoZnFuLnNwbGl0KCcuJykuYXQoMCkhKTtcblxuICBjb25zdCBjYW5kaWRhdGUgPSBhc20udHlwZXM/LltmcW5dO1xuXG4gIGlmICghY2FuZGlkYXRlKSB7XG4gICAgdGhyb3cgYFR5cGUgJHtmcW59IG5vdCBmb3VuZCBpbiBqc2lpIGFzc2VtYmx5ICR7YXNtfWA7XG4gIH1cblxuICBpZiAoY2FuZGlkYXRlPy5raW5kICE9PSBUeXBlS2luZC5JbnRlcmZhY2UpIHtcbiAgICB0aHJvdyBgRXhwZWN0ZWQgJHtmcW59IHRvIGJlIGFuIGludGVyZmFjZSwgYnV0IGdvdDogJHtjYW5kaWRhdGU/LmtpbmR9YDtcbiAgfVxuXG4gIHJldHVybiBzdHJ1Y3R1cmVkQ2xvbmUoY2FuZGlkYXRlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbmRJbnRlcmZhY2UoXG4gIGZxbjogc3RyaW5nLFxuICBtZXJnZUluaGVyaXRlZDogYm9vbGVhbiA9IHRydWUsXG4pOiBJbnRlcmZhY2VUeXBlIHtcbiAgY29uc3Qgc3BlYyA9IGxvYWRJbnRlcmZhY2UoZnFuKTtcblxuICBpZiAoIW1lcmdlSW5oZXJpdGVkIHx8ICFzcGVjLmludGVyZmFjZXMpIHtcbiAgICByZXR1cm4gc3BlYztcbiAgfVxuXG4gIGNvbnN0IHByb3BzID0gbmV3IE1hcDxzdHJpbmcsIFByb3BlcnR5PigpO1xuICBjb25zdCBtZXRob2RzID0gbmV3IE1hcDxzdHJpbmcsIE1ldGhvZD4oKTtcblxuICBmb3IgKGNvbnN0IHBhcmVudCBvZiBzcGVjLmludGVyZmFjZXMpIHtcbiAgICBjb25zdCBwYXJlbnRTcGVjID0gZmluZEludGVyZmFjZShwYXJlbnQsIHRydWUpO1xuICAgIHBhcmVudFNwZWMucHJvcGVydGllcz8uZm9yRWFjaCgocCkgPT4ge1xuICAgICAgcHJvcHMuc2V0KHAubmFtZSwgcCk7XG4gICAgfSk7XG4gICAgcGFyZW50U3BlYy5tZXRob2RzPy5mb3JFYWNoKChtKSA9PiB7XG4gICAgICBtZXRob2RzLnNldChtLm5hbWUsIG0pO1xuICAgIH0pO1xuICB9XG5cbiAgc3BlYy5wcm9wZXJ0aWVzPy5mb3JFYWNoKChwKSA9PiB7XG4gICAgcHJvcHMuc2V0KHAubmFtZSwgcCk7XG4gIH0pO1xuICBzcGVjLm1ldGhvZHM/LmZvckVhY2goKG0pID0+IHtcbiAgICBtZXRob2RzLnNldChtLm5hbWUsIG0pO1xuICB9KTtcblxuICByZXR1cm4ge1xuICAgIC4uLnNwZWMsXG4gICAgbWV0aG9kczogQXJyYXkuZnJvbShtZXRob2RzLnZhbHVlcygpKSxcbiAgICBwcm9wZXJ0aWVzOiBBcnJheS5mcm9tKHByb3BzLnZhbHVlcygpKSxcbiAgfTtcbn1cbiJdfQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZW1ibHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJpdmF0ZS9hc3NlbWJseS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5Q0FBMEM7QUFDMUMscUNBT29CO0FBRXBCLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQztBQUV6QixNQUFNLFVBQVUsR0FBNkIsRUFBRSxDQUFDO0FBRWhELFNBQVMsWUFBWSxDQUFDLEdBQVc7SUFDL0IsT0FBTyxJQUFBLG1CQUFPLEVBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFBLGdCQUFJLEVBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN2RCxDQUFDO0FBRUQsU0FBUyxrQkFBa0IsQ0FBQyxHQUFXO0lBQ3JDLE9BQU8seUJBQXlCLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQzNELENBQUM7QUFFRCxTQUFTLHlCQUF5QixDQUFDLEdBQVcsRUFBRSxHQUFXO0lBQ3pELE1BQU0sUUFBUSxHQUFHLElBQUEsMkJBQW9CLEVBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2xELElBQUksUUFBUSxDQUFDLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUMxQixNQUFNLGlCQUFpQixHQUFHLGlCQUFpQixJQUFBLGdCQUFJLEVBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxVQUFVLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMxRixDQUFDO0lBRUQsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQztBQUVELFNBQVMsWUFBWSxDQUFDLEdBQVc7SUFDL0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQztZQUNILFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM1QyxDQUFDO1FBQUMsT0FBTyxLQUFLLEVB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QUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3JDLFVBQVUsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztLQUN2QyxDQUFDO0FBQ0osQ0FBQztBQW5DRCxzQ0FtQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkaXJuYW1lLCBqb2luIH0gZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB7XG4gIEFzc2VtYmx5LFxuICBJbnRlcmZhY2VUeXBlLFxuICBsb2FkQXNzZW1ibHlGcm9tUGF0aCxcbiAgTWV0aG9kLFxuICBQcm9wZXJ0eSxcbiAgVHlwZUtpbmQsXG59IGZyb20gJ0Bqc2lpL3NwZWMnO1xuXG5jb25zdCBET1RfSlNJSSA9ICcuanNpaSc7XG5cbmNvbnN0IGFzc2VtYmxpZXM6IFJlY29yZDxzdHJpbmcsIEFzc2VtYmx5PiA9IHt9O1xuXG5mdW5jdGlvbiBhc3NlbWJseVBhdGgoYXNtOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gZGlybmFtZShyZXF1aXJlLnJlc29sdmUoam9pbihhc20sIERPVF9KU0lJKSkpO1xufVxuXG5mdW5jdGlvbiBsb2FkQXNzZW1ibHlCeU5hbWUoYXNtOiBzdHJpbmcpOiBBc3NlbWJseSB7XG4gIHJldHVybiBsb2FkQXNzZW1ibHlGcm9tRGlyZWN0b3J5KGFzbSwgYXNzZW1ibHlQYXRoKGFzbSkpO1xufVxuXG5mdW5jdGlvbiBsb2FkQXNzZW1ibHlGcm9tRGlyZWN0b3J5KGFzbTogc3RyaW5nLCBkaXI6IHN0cmluZyk6IEFzc2VtYmx5IHtcbiAgY29uc3QgYXNzZW1ibHkgPSBsb2FkQXNzZW1ibHlGcm9tUGF0aChkaXIsIGZhbHNlKTtcbiAgaWYgKGFzc2VtYmx5Lm5hbWUgIT09IGFzbSkge1xuICAgIHRocm93IGBqc2lpIGFzc2VtYmx5ICR7YXNtfSBub3QgZm91bmQgaW4gJHtqb2luKGRpciwgRE9UX0pTSUkpfSwgZ290OiAke2Fzc2VtYmx5Lm5hbWV9YDtcbiAgfVxuXG4gIHJldHVybiBhc3NlbWJseTtcbn1cblxuZnVuY3Rpb24gbG9hZEFzc2VtYmx5KGFzbTogc3RyaW5nKTogQXNzZW1ibHkge1xuICBpZiAoIWFzc2VtYmxpZXNbYXNtXSkge1xuICAgIHRyeSB7XG4gICAgICBhc3NlbWJsaWVzW2FzbV0gPSBsb2FkQXNzZW1ibHlCeU5hbWUoYXNtKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXNzZW1ibGllc1thc21dID0gbG9hZEFzc2VtYmx5RnJvbURpcmVjdG9yeShhc20sIHByb2Nlc3MuY3dkKCkpO1xuICAgICAgfSBjYXRjaCAoZXJyb3JMb2NhbCkge1xuICAgICAgICB0aHJvdyBuZXcgQWdncmVnYXRlRXJyb3IoW2Vycm9yLCBlcnJvckxvY2FsXSwgYGpzaWkgYXNzZW1ibHkgJHthc219IG5vdCBmb3VuZGApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBhc3NlbWJsaWVzW2FzbV07XG59XG5cbmZ1bmN0aW9uIGxvYWRJbnRlcmZhY2UoZnFuOiBzdHJpbmcpIHtcbiAgY29uc3QgYXNtID0gbG9hZEFzc2VtYmx5KGZxbi5zcGxpdCgnLicpLmF0KDApISk7XG5cbiAgY29uc3QgY2FuZGlkYXRlID0gYXNtLnR5cGVzPy5bZnFuXTtcblxuICBpZiAoIWNhbmRpZGF0ZSkge1xuICAgIHRocm93IGBUeXBlICR7ZnFufSBub3QgZm91bmQgaW4ganNpaSBhc3NlbWJseSAke2FzbX1gO1xuICB9XG5cbiAgaWYgKGNhbmRpZGF0ZT8ua2luZCAhPT0gVHlwZUtpbmQuSW50ZXJmYWNlKSB7XG4gICAgdGhyb3cgYEV4cGVjdGVkICR7ZnFufSB0byBiZSBhbiBpbnRlcmZhY2UsIGJ1dCBnb3Q6ICR7Y2FuZGlkYXRlPy5raW5kfWA7XG4gIH1cblxuICByZXR1cm4gc3RydWN0dXJlZENsb25lKGNhbmRpZGF0ZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaW5kSW50ZXJmYWNlKFxuICBmcW46IHN0cmluZyxcbiAgbWVyZ2VJbmhlcml0ZWQ6IGJvb2xlYW4gPSB0cnVlLFxuKTogSW50ZXJmYWNlVHlwZSB7XG4gIGNvbnN0IHNwZWMgPSBsb2FkSW50ZXJmYWNlKGZxbik7XG5cbiAgaWYgKCFtZXJnZUluaGVyaXRlZCB8fCAhc3BlYy5pbnRlcmZhY2VzKSB7XG4gICAgcmV0dXJuIHNwZWM7XG4gIH1cblxuICBjb25zdCBwcm9wcyA9IG5ldyBNYXA8c3RyaW5nLCBQcm9wZXJ0eT4oKTtcbiAgY29uc3QgbWV0aG9kcyA9IG5ldyBNYXA8c3RyaW5nLCBNZXRob2Q+KCk7XG5cbiAgZm9yIChjb25zdCBwYXJlbnQgb2Ygc3BlYy5pbnRlcmZhY2VzKSB7XG4gICAgY29uc3QgcGFyZW50U3BlYyA9IGZpbmRJbnRlcmZhY2UocGFyZW50LCB0cnVlKTtcbiAgICBwYXJlbnRTcGVjLnByb3BlcnRpZXM/LmZvckVhY2goKHApID0+IHtcbiAgICAgIHByb3BzLnNldChwLm5hbWUsIHApO1xuICAgIH0pO1xuICAgIHBhcmVudFNwZWMubWV0aG9kcz8uZm9yRWFjaCgobSkgPT4ge1xuICAgICAgbWV0aG9kcy5zZXQobS5uYW1lLCBtKTtcbiAgICB9KTtcbiAgfVxuXG4gIHNwZWMucHJvcGVydGllcz8uZm9yRWFjaCgocCkgPT4ge1xuICAgIHByb3BzLnNldChwLm5hbWUsIHApO1xuICB9KTtcbiAgc3BlYy5tZXRob2RzPy5mb3JFYWNoKChtKSA9PiB7XG4gICAgbWV0aG9kcy5zZXQobS5uYW1lLCBtKTtcbiAgfSk7XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5zcGVjLFxuICAgIG1ldGhvZHM6IEFycmF5LmZyb20obWV0aG9kcy52YWx1ZXMoKSksXG4gICAgcHJvcGVydGllczogQXJyYXkuZnJvbShwcm9wcy52YWx1ZXMoKSksXG4gIH07XG59XG4iXX0= |
@@ -15,2 +15,2 @@ "use strict"; | ||
exports.comparePath = comparePath; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJpdmF0ZS91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxTQUFnQixnQkFBZ0IsQ0FBQyxDQUFTLEVBQUUsQ0FBUztJQUNuRCxPQUFPLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0FBQ2hFLENBQUM7QUFGRCw0Q0FFQztBQUVELFNBQWdCLFdBQVcsQ0FBQyxDQUFTLEVBQUUsQ0FBUztJQUM5QyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7UUFDZixPQUFPLENBQUMsQ0FBQztLQUNWO0lBQ0QsT0FBTyxnQkFBZ0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDaEMsQ0FBQztBQUxELGtDQUtDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGNvbXBhcmVMb3dlckNhc2UoYTogc3RyaW5nLCBiOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGEubG9jYWxlQ29tcGFyZShiLCB1bmRlZmluZWQsIHsgc2Vuc2l0aXZpdHk6ICdiYXNlJyB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbXBhcmVQYXRoKGE6IHN0cmluZywgYjogc3RyaW5nKSB7XG4gIGlmIChhWzBdIDwgYlswXSkge1xuICAgIHJldHVybiAxO1xuICB9XG4gIHJldHVybiBjb21wYXJlTG93ZXJDYXNlKGEsIGIpO1xufVxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJpdmF0ZS91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxTQUFnQixnQkFBZ0IsQ0FBQyxDQUFTLEVBQUUsQ0FBUztJQUNuRCxPQUFPLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0FBQ2hFLENBQUM7QUFGRCw0Q0FFQztBQUVELFNBQWdCLFdBQVcsQ0FBQyxDQUFTLEVBQUUsQ0FBUztJQUM5QyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNoQixPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7SUFDRCxPQUFPLGdCQUFnQixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNoQyxDQUFDO0FBTEQsa0NBS0MiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gY29tcGFyZUxvd2VyQ2FzZShhOiBzdHJpbmcsIGI6IHN0cmluZykge1xuICByZXR1cm4gYS5sb2NhbGVDb21wYXJlKGIsIHVuZGVmaW5lZCwgeyBzZW5zaXRpdml0eTogJ2Jhc2UnIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29tcGFyZVBhdGgoYTogc3RyaW5nLCBiOiBzdHJpbmcpIHtcbiAgaWYgKGFbMF0gPCBiWzBdKSB7XG4gICAgcmV0dXJuIDE7XG4gIH1cbiAgcmV0dXJuIGNvbXBhcmVMb3dlckNhc2UoYSwgYik7XG59XG4iXX0= |
@@ -114,2 +114,2 @@ "use strict"; | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVuLXN0cnVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9qZW4vcHJvamVuLXN0cnVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQkFBNEM7QUFDNUMscUNBQWdEO0FBQ2hELG1DQUErQztBQUMvQyxpREFBeUY7QUFDekYsd0NBTW9CO0FBZ0RwQjs7R0FFRztBQUNILE1BQWEsWUFBYSxTQUFRLGtCQUFTO0lBR3pDLFlBQ1UsU0FBdUMsRUFDdkMsT0FBNEI7O1FBRXBDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUhULGNBQVMsR0FBVCxTQUFTLENBQThCO1FBQ3ZDLFlBQU8sR0FBUCxPQUFPLENBQXFCO1FBSXBDLE1BQU0sR0FBRyxHQUFHLE1BQUEsT0FBTyxDQUFDLEdBQUcsbUNBQUksR0FBRyxTQUFTLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMvRCxJQUFJLENBQUMsT0FBTyxHQUFHLGdCQUFNLENBQUMsUUFBUSxDQUFDO1lBQzdCLElBQUksRUFBRSxlQUFRLENBQUMsU0FBUztZQUN4QixRQUFRLEVBQUUsTUFBQSxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsbUNBQUksU0FBUyxDQUFDLElBQUk7WUFDaEQsR0FBRztZQUNILElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTtZQUNsQixJQUFJLEVBQUU7Z0JBQ0osT0FBTyxFQUFFLE1BQUEsT0FBTyxDQUFDLFdBQVcsbUNBQUksT0FBTyxDQUFDLElBQUk7YUFDN0M7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsYUFBYTs7UUFDWCxNQUFNLE9BQU8sR0FBRyxNQUFBLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxtQ0FBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztRQUMvRCxNQUFNLFVBQVUsR0FDZCxNQUFBLElBQUksQ0FBQyxPQUFP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QU8sQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ2pDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNELElBQVcsVUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO0lBQ2pDLENBQUM7SUFDRCxJQUFXLEdBQUc7UUFDWixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO0lBQzFCLENBQUM7Q0FDRjtBQS9GRCxvQ0ErRkM7QUFFRCxTQUFTLGNBQWMsQ0FBQyxJQUFZLEVBQUUsTUFBYztJQUNsRCxNQUFNLElBQUksR0FBRyxZQUFLLENBQUMsUUFBUSxDQUFDLElBQUEsY0FBTyxFQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ25ELElBQUksQ0FBQyxJQUFJLEVBQUU7UUFDVCxPQUFPLEdBQUcsR0FBRyxZQUFLLENBQUMsR0FBRyxDQUFDO0tBQ3hCO0lBQ0QsT0FBTyxJQUFJLEdBQUcsWUFBSyxDQUFDLEdBQUcsQ0FBQztBQUMxQixDQUFDO0FBRUQsU0FBUyxTQUFTLENBQUMsR0FBVztJQUM1QixPQUFPLElBQUEsV0FBSSxFQUFDLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUM7QUFDbEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRpcm5hbWUsIGpvaW4sIHBvc2l4IH0gZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBQcm9wZXJ0eSwgVHlwZUtpbmQgfSBmcm9tICdAanNpaS9zcGVjJztcbmltcG9ydCB7IENvbXBvbmVudCwgdHlwZXNjcmlwdCB9IGZyb20gJ3Byb2plbic7XG5pbXBvcnQgeyBUeXBlU2NyaXB0SW50ZXJmYWNlRmlsZSwgVHlwZVNjcmlwdEludGVyZmFjZUZpbGVPcHRpb25zIH0gZnJvbSAnLi90cy1pbnRlcmZhY2UnO1xuaW1wb3J0IHtcbiAgU3RydWN0LFxuICBIYXNQcm9wZXJ0aWVzLFxuICBJU3RydWN0QnVpbGRlcixcbiAgSGFzRnVsbHlRdWFsaWZpZWROYW1lLFxuICBIYXNTdHJ1Y3RTcGVjLFxufSBmcm9tICcuLi9idWlsZGVyJztcblxuZXhwb3J0IGludGVyZmFjZSBQcm9qZW5TdHJ1Y3RPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBuZXcgc3RydWN0XG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBEb2Mgc3RyaW5nIGZvciB0aGUgc3RydWN0XG4gICAqIEBkZWZhdWx0IC0gc3RydWN0IG5hbWVcbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGZxbiBvZiB0aGUgc3RydWN0XG4gICAqXG4gICAqIFVzZWQgdG8gYXV0by1hZGQgaW1wb3J0cy5cbiAgICogQWxsIHJlZmVyZW5jZWQgdHlwZXMgYXJlIGxvYWRlZCBiYXNlZCBvbiB0aGUgZnFuIGhpZXJhcmNoeS5cbiAgICpcbiAgICogU2VlIGBpbXBvcnRMb2NhdGlvbnNgIGZvciBjdXN0b21pemF0aW9uIG9wdGlvbnMuXG4gICAqXG4gICAqIEBkZWZhdWx0IGAke3Byb2plY3QubmFtZX0uJHtvcHRpb25zLm5hbWV9YFxuICAgKi9cbiAgcmVhZG9ubHkgZnFuPzogc3RyaW5nO1xuICAvKipcbiAgICogT3V0cHV0IGZpbGUgcGF0aFxuICAgKiBAZGVmYXVsdCAtIGluc2lkZSBgc3JjZGlyYCBvciBgb3V0ZGlyYCB3aXRoIHRoZSBmcW4gdHVybmVkIGludG8gYSBwYXRoXG4gICAqL1xuICByZWFkb25seSBmaWxlUGF0aD86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBtb2R1bGUgbG9jYXRpb25zIGFzc2VtYmxpZXMgc2hvdWxkIGJlIGltcG9ydGVkIGZyb21cbiAgICpcbiAgICogQWxsIHR5cGVzIGFyZSBpbXBvcnRlZCBmcm9tIHRoZSB0b3AtbGV2ZWwgb2YgdGhlIG1vZHVsZS5cbiAgICogVGhpcyBtYXAgY2FuIGJlIHVzZWQgdG8gb3ZlcndyaXRlIHRoZSBkZWZhdWx0IGltcG9ydCBsb2NhdGlvbnMuXG4gICAqXG4gICAqIEZvciBsb2NhbCBpbXBvcnRzLCB0aGUgaW1wb3J0IHRyYXZlcnNlIHVwIGEgbnVtYmVyIG9mIGxldmVscyBlcXVpdmFsZW50IHRvIHRoZSBudW1iZXIgb2YgZnFuIHBhcnRzIG9mIHRoZSByZW5kZXJlZCB0eXBlLlxuICAgKiBFLmcuIGlmIHRoZSB0aGUgcmVuZGVyZWQgdHlwZSBpcyBgcGtnLmludGVyZmFjZWAsIGl0IGlzIGFzc3VtZWQgdG8gYmUgYXQgdGhlIHRvcC1sZXZlbCBhbmQgaW1wb3J0cyBmcm9tIHRoZSBzYW1lIGFzc2VtYmx5IHdvdWxkIGJlIGZyb20gYC4vYC5cbiAgICogSWYgdGhlIHJlbmRlcmVkIHR5cGUgaXMgYHBrZy5uZXN0ZWQuc3ViLmludGVyZmFjZWAgYSBsb2NhbCBpbXBvcnQgd2lsbCBiZSBmcm9tIGAuLi8uLi9gLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHVzZXMgdGhlIGFzc2VtYmx5IG5hbWUgZm9yIGV4dGVybmFsIHBhY2thZ2VzXG4gICAqIGxvY2FsIGltcG9ydHMgdHJhdmVyc2UgdXAgYSBudW1iZXIgb2YgbGV2ZWxzIGVxdWl2YWxlbnQgdG8gdGhlIG51bWJlciBvZiBmcW4gcGFydHNcbiAgICovXG4gIHJlYWRvbmx5IGltcG9ydExvY2F0aW9ucz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIC8qKlxuICAgKiBPcHRpb25zIGZvciB0aGUgY3JlYXRlZCBvdXRwdXQgYFR5cGVTY3JpcHRJbnRlcmZhY2VGaWxlYFxuICAgKi9cbiAgcmVhZG9ubHkgb3V0cHV0RmlsZU9wdGlvbnM/OiBPbWl0PFR5cGVTY3JpcHRJbnRlcmZhY2VGaWxlT3B0aW9ucywgJ2ltcG9ydExvY2F0aW9ucyc+O1xufVxuXG4vKipcbiAqIEEgY29tcG9uZW50IGdlbmVyYXRpbmcgYSBqc2lpLWNvbXBhdGlibGUgc3RydWN0XG4gKi9cbmV4cG9ydCBjbGFzcyBQcm9qZW5TdHJ1Y3QgZXh0ZW5kcyBDb21wb25lbnQgaW1wbGVtZW50cyBJU3RydWN0QnVpbGRlciwgSGFzUHJvcGVydGllcywgSGFzRnVsbHlRdWFsaWZpZWROYW1lLCBIYXNTdHJ1Y3RTcGVjIHtcbiAgcHJpdmF0ZSBidWlsZGVyOiBTdHJ1Y3Q7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdHNQcm9qZWN0OiB0eXBlc2NyaXB0LlR5cGVTY3JpcHRQcm9qZWN0LFxuICAgIHByaXZhdGUgb3B0aW9uczogUHJvamVuU3RydWN0T3B0aW9ucyxcbiAgKSB7XG4gICAgc3VwZXIodHNQcm9qZWN0KTtcblxuICAgIGNvbnN0IGZxbiA9IG9wdGlvbnMuZnFuID8/IGAke3RzUHJvamVjdC5uYW1lfS4ke29wdGlvbnMubmFtZX1gO1xuICAgIHRoaXMuYnVpbGRlciA9IFN0cnVjdC5mcm9tU3BlYyh7XG4gICAgICBraW5kOiBUeXBlS2luZC5JbnRlcmZhY2UsXG4gICAgICBhc3NlbWJseTogZnFuLnNwbGl0KCcuJykuYXQoMCkgPz8gdHNQcm9qZWN0Lm5hbWUsXG4gICAgICBmcW4sXG4gICAgICBuYW1lOiBvcHRpb25zLm5hbWUsXG4gICAgICBkb2NzOiB7XG4gICAgICAgIHN1bW1hcnk6IG9wdGlvbnMuZGVzY3JpcHRpb24gPz8gb3B0aW9ucy5uYW1lLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHByZVN5bnRoZXNpemUoKTogdm9pZCB7XG4gICAgY29uc3QgYmFzZURpciA9IHRoaXMudHNQcm9qZWN0LnNyY2RpciA/PyB0aGlzLnRzUHJvamVjdC5vdXRkaXI7XG4gICAgY29uc3Qgb3V0cHV0RmlsZSA9XG4gICAgICB0aGlzLm9wdGlvbnMuZmlsZVBhdGggPz8gam9pbihiYXNlRGlyLCBmcW5Ub1BhdGgodGhpcy5idWlsZGVyLnNwZWMuZnFuKSk7XG4gICAgbmV3IFR5cGVTY3JpcHRJbnRlcmZhY2VGaWxlKHRoaXMudHNQcm9qZWN0LCBvdXRwdXRGaWxlLCB0aGlzLmJ1aWxkZXIuc3BlYywge1xuICAgICAgLi4udGhpcy5vcHRpb25zLm91dHB1dEZpbGVPcHRpb25zLFxuICAgICAgaW1wb3J0TG9jYXRpb25zOiB7XG4gICAgICAgIFt0aGlzLmJ1aWxkZXIuc3BlYy5hc3NlbWJseV06IHJlbGF0aXZlSW1wb3J0KG91dHB1dEZpbGUsIGJhc2VEaXIpLFxuICAgICAgICAuLi50aGlzLm9wdGlvbnMuaW1wb3J0TG9jYXRpb25zLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3BlYygpIHtcbiAgICByZXR1cm4gdGhpcy5idWlsZGVyLnNwZWM7XG4gIH1cbiAgYWRkKC4uLnByb3BzOiBQcm9wZXJ0eVtdKTogdGhpcyB7XG4gICAgdGhpcy5idWlsZGVyLmFkZCguLi5wcm9wcyk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgbWl4aW4oLi4uc291cmNlczogSGFzUHJvcGVydGllc1tdKTogdGhpcyB7XG4gICAgdGhpcy5idWlsZGVyLm1peGluKC4uLnNvdXJjZXMpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIHJlcGxhY2UobmFtZTogc3RyaW5nLCByZXBsYWNlbWVudDogUHJvcGVydHkpOiBJU3RydWN0QnVpbGRlciB7XG4gICAgdGhpcy5idWlsZGVyLnJlcGxhY2UobmFtZSwgcmVwbGFjZW1lbnQpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIG1hcChjYWxsYmFja2ZuOiAocHJvcDogUHJvcGVydHkpID0+IFByb3BlcnR5KTogdGhpcyB7XG4gICAgdGhpcy5idWlsZGVyLm1hcChjYWxsYmFja2ZuKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICB1cGRhdGUobmFtZTogc3RyaW5nLCB1cGRhdGU6IFBhcnRpYWw8UHJvcGVydHk+KTogdGhpcyB7XG4gICAgdGhpcy5idWlsZGVyLnVwZGF0ZShuYW1lLCB1cGRhdGUpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIHVwZGF0ZUV2ZXJ5KGNhbGxiYWNrZm46IChwcm9wOiBQcm9wZXJ0eSkgPT4gUGFydGlhbDxQcm9wZXJ0eT4pOiB0aGlzIHtcbiAgICB0aGlzLmJ1aWxkZXIudXBkYXRlRXZlcnkoY2FsbGJhY2tmbik7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgdXBkYXRlQWxsKHVwZGF0ZTogUGFydGlhbDxQcm9wZXJ0eT4pOiB0aGlzIHtcbiAgICB0aGlzLmJ1aWxkZXIudXBkYXRlQWxsKHVwZGF0ZSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgcmVuYW1lKGZyb206IHN0cmluZywgdG86IHN0cmluZyk6IHRoaXMge1xuICAgIHRoaXMuYnVpbGRlci5yZW5hbWUoZnJvbSwgdG8pO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIGFsbE9wdGlvbmFsKCk6IHRoaXMge1xuICAgIHRoaXMuYnVpbGRlci5hbGxPcHRpb25hbCgpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIGZpbHRlcihwcmVkaWNhdGU6IChwcm9wOiBQcm9wZXJ0eSkgPT4gYm9vbGVhbik6IHRoaXMge1xuICAgIHRoaXMuYnVpbGRlci5maWx0ZXIocHJlZGljYXRlKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICBvbmx5KC4uLmtlZXA6IHN0cmluZ1tdKTogdGhpcyB7XG4gICAgdGhpcy5idWlsZGVyLm9ubHkoLi4ua2VlcCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgb21pdCguLi5yZW1vdmU6IHN0cmluZ1tdKTogdGhpcyB7XG4gICAgdGhpcy5idWlsZGVyLm9taXQoLi4ucmVtb3ZlKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICB3aXRob3V0RGVwcmVjYXRlZCgpOiB0aGlzIHtcbiAgICB0aGlzLmJ1aWxkZXIud2l0aG91dERlcHJlY2F0ZWQoKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICBwdWJsaWMgZ2V0IHByb3BlcnRpZXMoKTogUHJvcGVydHlbXSB7XG4gICAgcmV0dXJuIHRoaXMuYnVpbGRlci5wcm9wZXJ0aWVzO1xuICB9XG4gIHB1YmxpYyBnZXQgZnFuKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuYnVpbGRlci5mcW47XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVsYXRpdmVJbXBvcnQoZnJvbTogc3RyaW5nLCB0YXJnZXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGRpZmYgPSBwb3NpeC5yZWxhdGl2ZShkaXJuYW1lKGZyb20pLCB0YXJnZXQpO1xuICBpZiAoIWRpZmYpIHtcbiAgICByZXR1cm4gJy4nICsgcG9zaXguc2VwO1xuICB9XG4gIHJldHVybiBkaWZmICsgcG9zaXguc2VwO1xufVxuXG5mdW5jdGlvbiBmcW5Ub1BhdGgoZnFuOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gam9pbiguLi5mcW4uc3BsaXQoJy4nKS5zbGljZSgxKSkgKyAnLnRzJztcbn1cbiJdfQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVuLXN0cnVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9qZW4vcHJvamVuLXN0cnVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQkFBNEM7QUFDNUMscUNBQWdEO0FBQ2hELG1DQUErQztBQUMvQyxpREFBeUY7QUFDekYsd0NBTW9CO0FBZ0RwQjs7R0FFRztBQUNILE1BQWEsWUFBYSxTQUFRLGtCQUFTO0lBR3pDLFlBQ1UsU0FBdUMsRUFDdkMsT0FBNEI7O1FBRXBDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUhULGNBQVMsR0FBVCxTQUFTLENBQThCO1FBQ3ZDLFlBQU8sR0FBUCxPQUFPLENBQXFCO1FBSXBDLE1BQU0sR0FBRyxHQUFHLE1BQUEsT0FBTyxDQUFDLEdBQUcsbUNBQUksR0FBRyxTQUFTLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMvRCxJQUFJLENBQUMsT0FBTyxHQUFHLGdCQUFNLENBQUMsUUFBUSxDQUFDO1lBQzdCLElBQUksRUFBRSxlQUFRLENBQUMsU0FBUztZQUN4QixRQUFRLEVBQUUsTUFBQSxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsbUNBQUksU0FBUyxDQUFDLElBQUk7WUFDaEQsR0FBRztZQUNILElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTtZQUNsQixJQUFJLEVBQUU7Z0JBQ0osT0FBTyxFQUFFLE1BQUEsT0FBTyxDQUFDLFdBQVcsbUNBQUksT0FBTyxDQUFDLElBQUk7YUFDN0M7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsYUFBYTs7UUFDWCxNQUFNLE9BQU8sR0FBRyxNQUFBLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxtQ0FBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztRQUMvRCxNQUFNLFVBQVUsR0FDZCxNQUFBLElBQUksQ0FBQyxPQUFP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QU8sQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ2pDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNELElBQVcsVUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO0lBQ2pDLENBQUM7SUFDRCxJQUFXLEdBQUc7UUFDWixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO0lBQzFCLENBQUM7Q0FDRjtBQS9GRCxvQ0ErRkM7QUFFRCxTQUFTLGNBQWMsQ0FBQyxJQUFZLEVBQUUsTUFBYztJQUNsRCxNQUFNLElBQUksR0FBRyxZQUFLLENBQUMsUUFBUSxDQUFDLElBQUEsY0FBTyxFQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ25ELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNWLE9BQU8sR0FBRyxHQUFHLFlBQUssQ0FBQyxHQUFHLENBQUM7SUFDekIsQ0FBQztJQUNELE9BQU8sSUFBSSxHQUFHLFlBQUssQ0FBQyxHQUFHLENBQUM7QUFDMUIsQ0FBQztBQUVELFNBQVMsU0FBUyxDQUFDLEdBQVc7SUFDNUIsT0FBTyxJQUFBLFdBQUksRUFBQyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDO0FBQ2xELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkaXJuYW1lLCBqb2luLCBwb3NpeCB9IGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgUHJvcGVydHksIFR5cGVLaW5kIH0gZnJvbSAnQGpzaWkvc3BlYyc7XG5pbXBvcnQgeyBDb21wb25lbnQsIHR5cGVzY3JpcHQgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgVHlwZVNjcmlwdEludGVyZmFjZUZpbGUsIFR5cGVTY3JpcHRJbnRlcmZhY2VGaWxlT3B0aW9ucyB9IGZyb20gJy4vdHMtaW50ZXJmYWNlJztcbmltcG9ydCB7XG4gIFN0cnVjdCxcbiAgSGFzUHJvcGVydGllcyxcbiAgSVN0cnVjdEJ1aWxkZXIsXG4gIEhhc0Z1bGx5UXVhbGlmaWVkTmFtZSxcbiAgSGFzU3RydWN0U3BlYyxcbn0gZnJvbSAnLi4vYnVpbGRlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvamVuU3RydWN0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgbmV3IHN0cnVjdFxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogRG9jIHN0cmluZyBmb3IgdGhlIHN0cnVjdFxuICAgKiBAZGVmYXVsdCAtIHN0cnVjdCBuYW1lXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBmcW4gb2YgdGhlIHN0cnVjdFxuICAgKlxuICAgKiBVc2VkIHRvIGF1dG8tYWRkIGltcG9ydHMuXG4gICAqIEFsbCByZWZlcmVuY2VkIHR5cGVzIGFyZSBsb2FkZWQgYmFzZWQgb24gdGhlIGZxbiBoaWVyYXJjaHkuXG4gICAqXG4gICAqIFNlZSBgaW1wb3J0TG9jYXRpb25zYCBmb3IgY3VzdG9taXphdGlvbiBvcHRpb25zLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgJHtwcm9qZWN0Lm5hbWV9LiR7b3B0aW9ucy5uYW1lfWBcbiAgICovXG4gIHJlYWRvbmx5IGZxbj86IHN0cmluZztcbiAgLyoqXG4gICAqIE91dHB1dCBmaWxlIHBhdGhcbiAgICogQGRlZmF1bHQgLSBpbnNpZGUgYHNyY2RpcmAgb3IgYG91dGRpcmAgd2l0aCB0aGUgZnFuIHR1cm5lZCBpbnRvIGEgcGF0aFxuICAgKi9cbiAgcmVhZG9ubHkgZmlsZVBhdGg/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgbW9kdWxlIGxvY2F0aW9ucyBhc3NlbWJsaWVzIHNob3VsZCBiZSBpbXBvcnRlZCBmcm9tXG4gICAqXG4gICAqIEFsbCB0eXBlcyBhcmUgaW1wb3J0ZWQgZnJvbSB0aGUgdG9wLWxldmVsIG9mIHRoZSBtb2R1bGUuXG4gICAqIFRoaXMgbWFwIGNhbiBiZSB1c2VkIHRvIG92ZXJ3cml0ZSB0aGUgZGVmYXVsdCBpbXBvcnQgbG9jYXRpb25zLlxuICAgKlxuICAgKiBGb3IgbG9jYWwgaW1wb3J0cywgdGhlIGltcG9ydCB0cmF2ZXJzZSB1cCBhIG51bWJlciBvZiBsZXZlbHMgZXF1aXZhbGVudCB0byB0aGUgbnVtYmVyIG9mIGZxbiBwYXJ0cyBvZiB0aGUgcmVuZGVyZWQgdHlwZS5cbiAgICogRS5nLiBpZiB0aGUgdGhlIHJlbmRlcmVkIHR5cGUgaXMgYHBrZy5pbnRlcmZhY2VgLCBpdCBpcyBhc3N1bWVkIHRvIGJlIGF0IHRoZSB0b3AtbGV2ZWwgYW5kIGltcG9ydHMgZnJvbSB0aGUgc2FtZSBhc3NlbWJseSB3b3VsZCBiZSBmcm9tIGAuL2AuXG4gICAqIElmIHRoZSByZW5kZXJlZCB0eXBlIGlzIGBwa2cubmVzdGVkLnN1Yi5pbnRlcmZhY2VgIGEgbG9jYWwgaW1wb3J0IHdpbGwgYmUgZnJvbSBgLi4vLi4vYC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB1c2VzIHRoZSBhc3NlbWJseSBuYW1lIGZvciBleHRlcm5hbCBwYWNrYWdlc1xuICAgKiBsb2NhbCBpbXBvcnRzIHRyYXZlcnNlIHVwIGEgbnVtYmVyIG9mIGxldmVscyBlcXVpdmFsZW50IHRvIHRoZSBudW1iZXIgb2YgZnFuIHBhcnRzXG4gICAqL1xuICByZWFkb25seSBpbXBvcnRMb2NhdGlvbnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAvKipcbiAgICogT3B0aW9ucyBmb3IgdGhlIGNyZWF0ZWQgb3V0cHV0IGBUeXBlU2NyaXB0SW50ZXJmYWNlRmlsZWBcbiAgICovXG4gIHJlYWRvbmx5IG91dHB1dEZpbGVPcHRpb25zPzogT21pdDxUeXBlU2NyaXB0SW50ZXJmYWNlRmlsZU9wdGlvbnMsICdpbXBvcnRMb2NhdGlvbnMnPjtcbn1cblxuLyoqXG4gKiBBIGNvbXBvbmVudCBnZW5lcmF0aW5nIGEganNpaS1jb21wYXRpYmxlIHN0cnVjdFxuICovXG5leHBvcnQgY2xhc3MgUHJvamVuU3RydWN0IGV4dGVuZHMgQ29tcG9uZW50IGltcGxlbWVudHMgSVN0cnVjdEJ1aWxkZXIsIEhhc1Byb3BlcnRpZXMsIEhhc0Z1bGx5UXVhbGlmaWVkTmFtZSwgSGFzU3RydWN0U3BlYyB7XG4gIHByaXZhdGUgYnVpbGRlcjogU3RydWN0O1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHRzUHJvamVjdDogdHlwZXNjcmlwdC5UeXBlU2NyaXB0UHJvamVjdCxcbiAgICBwcml2YXRlIG9wdGlvbnM6IFByb2plblN0cnVjdE9wdGlvbnMsXG4gICkge1xuICAgIHN1cGVyKHRzUHJvamVjdCk7XG5cbiAgICBjb25zdCBmcW4gPSBvcHRpb25zLmZxbiA/PyBgJHt0c1Byb2plY3QubmFtZX0uJHtvcHRpb25zLm5hbWV9YDtcbiAgICB0aGlzLmJ1aWxkZXIgPSBTdHJ1Y3QuZnJvbVNwZWMoe1xuICAgICAga2luZDogVHlwZUtpbmQuSW50ZXJmYWNlLFxuICAgICAgYXNzZW1ibHk6IGZxbi5zcGxpdCgnLicpLmF0KDApID8/IHRzUHJvamVjdC5uYW1lLFxuICAgICAgZnFuLFxuICAgICAgbmFtZTogb3B0aW9ucy5uYW1lLFxuICAgICAgZG9jczoge1xuICAgICAgICBzdW1tYXJ5OiBvcHRpb25zLmRlc2NyaXB0aW9uID8/IG9wdGlvbnMubmFtZSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwcmVTeW50aGVzaXplKCk6IHZvaWQge1xuICAgIGNvbnN0IGJhc2VEaXIgPSB0aGlzLnRzUHJvamVjdC5zcmNkaXIgPz8gdGhpcy50c1Byb2plY3Qub3V0ZGlyO1xuICAgIGNvbnN0IG91dHB1dEZpbGUgPVxuICAgICAgdGhpcy5vcHRpb25zLmZpbGVQYXRoID8/IGpvaW4oYmFzZURpciwgZnFuVG9QYXRoKHRoaXMuYnVpbGRlci5zcGVjLmZxbikpO1xuICAgIG5ldyBUeXBlU2NyaXB0SW50ZXJmYWNlRmlsZSh0aGlzLnRzUHJvamVjdCwgb3V0cHV0RmlsZSwgdGhpcy5idWlsZGVyLnNwZWMsIHtcbiAgICAgIC4uLnRoaXMub3B0aW9ucy5vdXRwdXRGaWxlT3B0aW9ucyxcbiAgICAgIGltcG9ydExvY2F0aW9uczoge1xuICAgICAgICBbdGhpcy5idWlsZGVyLnNwZWMuYXNzZW1ibHldOiByZWxhdGl2ZUltcG9ydChvdXRwdXRGaWxlLCBiYXNlRGlyKSxcbiAgICAgICAgLi4udGhpcy5vcHRpb25zLmltcG9ydExvY2F0aW9ucyxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNwZWMoKSB7XG4gICAgcmV0dXJuIHRoaXMuYnVpbGRlci5zcGVjO1xuICB9XG4gIGFkZCguLi5wcm9wczogUHJvcGVydHlbXSk6IHRoaXMge1xuICAgIHRoaXMuYnVpbGRlci5hZGQoLi4ucHJvcHMpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIG1peGluKC4uLnNvdXJjZXM6IEhhc1Byb3BlcnRpZXNbXSk6IHRoaXMge1xuICAgIHRoaXMuYnVpbGRlci5taXhpbiguLi5zb3VyY2VzKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICByZXBsYWNlKG5hbWU6IHN0cmluZywgcmVwbGFjZW1lbnQ6IFByb3BlcnR5KTogSVN0cnVjdEJ1aWxkZXIge1xuICAgIHRoaXMuYnVpbGRlci5yZXBsYWNlKG5hbWUsIHJlcGxhY2VtZW50KTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICBtYXAoY2FsbGJhY2tmbjogKHByb3A6IFByb3BlcnR5KSA9PiBQcm9wZXJ0eSk6IHRoaXMge1xuICAgIHRoaXMuYnVpbGRlci5tYXAoY2FsbGJhY2tmbik7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgdXBkYXRlKG5hbWU6IHN0cmluZywgdXBkYXRlOiBQYXJ0aWFsPFByb3BlcnR5Pik6IHRoaXMge1xuICAgIHRoaXMuYnVpbGRlci51cGRhdGUobmFtZSwgdXBkYXRlKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICB1cGRhdGVFdmVyeShjYWxsYmFja2ZuOiAocHJvcDogUHJvcGVydHkpID0+IFBhcnRpYWw8UHJvcGVydHk+KTogdGhpcyB7XG4gICAgdGhpcy5idWlsZGVyLnVwZGF0ZUV2ZXJ5KGNhbGxiYWNrZm4pO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIHVwZGF0ZUFsbCh1cGRhdGU6IFBhcnRpYWw8UHJvcGVydHk+KTogdGhpcyB7XG4gICAgdGhpcy5idWlsZGVyLnVwZGF0ZUFsbCh1cGRhdGUpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIHJlbmFtZShmcm9tOiBzdHJpbmcsIHRvOiBzdHJpbmcpOiB0aGlzIHtcbiAgICB0aGlzLmJ1aWxkZXIucmVuYW1lKGZyb20sIHRvKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICBhbGxPcHRpb25hbCgpOiB0aGlzIHtcbiAgICB0aGlzLmJ1aWxkZXIuYWxsT3B0aW9uYWwoKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICBmaWx0ZXIocHJlZGljYXRlOiAocHJvcDogUHJvcGVydHkpID0+IGJvb2xlYW4pOiB0aGlzIHtcbiAgICB0aGlzLmJ1aWxkZXIuZmlsdGVyKHByZWRpY2F0ZSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgb25seSguLi5rZWVwOiBzdHJpbmdbXSk6IHRoaXMge1xuICAgIHRoaXMuYnVpbGRlci5vbmx5KC4uLmtlZXApO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIG9taXQoLi4ucmVtb3ZlOiBzdHJpbmdbXSk6IHRoaXMge1xuICAgIHRoaXMuYnVpbGRlci5vbWl0KC4uLnJlbW92ZSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgd2l0aG91dERlcHJlY2F0ZWQoKTogdGhpcyB7XG4gICAgdGhpcy5idWlsZGVyLndpdGhvdXREZXByZWNhdGVkKCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgcHVibGljIGdldCBwcm9wZXJ0aWVzKCk6IFByb3BlcnR5W10ge1xuICAgIHJldHVybiB0aGlzLmJ1aWxkZXIucHJvcGVydGllcztcbiAgfVxuICBwdWJsaWMgZ2V0IGZxbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmJ1aWxkZXIuZnFuO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlbGF0aXZlSW1wb3J0KGZyb206IHN0cmluZywgdGFyZ2V0OiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBkaWZmID0gcG9zaXgucmVsYXRpdmUoZGlybmFtZShmcm9tKSwgdGFyZ2V0KTtcbiAgaWYgKCFkaWZmKSB7XG4gICAgcmV0dXJuICcuJyArIHBvc2l4LnNlcDtcbiAgfVxuICByZXR1cm4gZGlmZiArIHBvc2l4LnNlcDtcbn1cblxuZnVuY3Rpb24gZnFuVG9QYXRoKGZxbjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGpvaW4oLi4uZnFuLnNwbGl0KCcuJykuc2xpY2UoMSkpICsgJy50cyc7XG59XG4iXX0= |
@@ -198,2 +198,2 @@ "use strict"; | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZW5kZXJlci90eXBlc2NyaXB0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFDQVVvQjtBQUVwQix3Q0FBMkQ7QUFxQzNEOztHQUVHO0FBQ0gsTUFBYSxrQkFBa0I7SUFJN0IsWUFBbUIsVUFBcUMsRUFBRTs7UUFDeEQsSUFBSSxDQUFDLE9BQU8sR0FBRztZQUNiLGVBQWUsRUFBRSxNQUFBLE9BQU8sQ0FBQyxlQUFlLG1DQUFJLEVBQUU7WUFDOUMsTUFBTSxFQUFFLE1BQUEsT0FBTyxDQUFDLE1BQU0sbUNBQUksQ0FBQztZQUMzQixjQUFjLEVBQUUsTUFBQSxPQUFPLENBQUMsY0FBYyxtQ0FBSSxJQUFJO1NBQy9DLENBQUM7UUFDRixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRDs7T0FFRztJQUNJLFlBQVksQ0FBQyxNQUFxQjtRQUN2QyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksZ0JBQWdCLENBQUMsSUFBbUI7O1FBQ3pDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFcEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG9C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SUFBSSxJQUFBLDJCQUFvQixFQUFDLENBQUMsQ0FBQyxFQUFFO1FBQzNCLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDaEI7SUFFRCxJQUFJLElBQUEsMkJBQW9CLEVBQUMsQ0FBQyxDQUFDLEVBQUU7UUFDM0IsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7S0FDM0M7SUFFRCxJQUFJLElBQUEsZ0NBQXlCLEVBQUMsQ0FBQyxDQUFDLEVBQUU7UUFDaEMsT0FBTyxXQUFXLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztLQUM5QztJQUVELE9BQU8sRUFBRSxDQUFDO0FBQ1osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbGxlY3Rpb25LaW5kLFxuICBEb2NzLFxuICBJbnRlcmZhY2VUeXBlLFxuICBpc0NvbGxlY3Rpb25UeXBlUmVmZXJlbmNlLFxuICBpc05hbWVkVHlwZVJlZmVyZW5jZSxcbiAgaXNQcmltaXRpdmVUeXBlUmVmZXJlbmNlLFxuICBpc1VuaW9uVHlwZVJlZmVyZW5jZSxcbiAgUHJvcGVydHksXG4gIFR5cGVSZWZlcmVuY2UsXG59IGZyb20gJ0Bqc2lpL3NwZWMnO1xuaW1wb3J0IHsgSGFzU3RydWN0U3BlYyB9IGZyb20gJy4uL2J1aWxkZXInO1xuaW1wb3J0IHsgY29tcGFyZUxvd2VyQ2FzZSwgY29tcGFyZVBhdGggfSBmcm9tICcuLi9wcml2YXRlJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciBgVHlwZVNjcmlwdFJlbmRlcmVyYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUeXBlU2NyaXB0UmVuZGVyZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBtb2R1bGUgbG9jYXRpb25zIGFzc2VtYmxpZXMgc2hvdWxkIGJlIGltcG9ydGVkIGZyb21cbiAgICpcbiAgICogQWxsIHR5cGVzIGFyZSBpbXBvcnRlZCBmcm9tIHRoZSB0b3AtbGV2ZWwgb2YgdGhlIG1vZHVsZS5cbiAgICogVGhpcyBtYXAgY2FuIGJlIHVzZWQgdG8gb3ZlcndyaXRlIHRoZSBkZWZhdWx0IGltcG9ydCBsb2NhdGlvbnMuXG4gICAqXG4gICAqIEZvciBsb2NhbCBpbXBvcnRzLCB0aGUgaW1wb3J0IHRyYXZlcnNlIHVwIGEgbnVtYmVyIG9mIGxldmVscyBlcXVpdmFsZW50IHRvIHRoZSBudW1iZXIgb2YgZnFuIHBhcnRzIG9mIHRoZSByZW5kZXJlZCB0eXBlLlxuICAgKiBFLmcuIGlmIHRoZSB0aGUgcmVuZGVyZWQgdHlwZSBpcyBgcGtnLmludGVyZmFjZWAsIGl0IGlzIGFzc3VtZWQgdG8gYmUgYXQgdGhlIHRvcC1sZXZlbCBhbmQgaW1wb3J0cyBmcm9tIHRoZSBzYW1lIGFzc2VtYmx5IHdvdWxkIGJlIGZyb20gYC4vYC5cbiAgICogSWYgdGhlIHJlbmRlcmVkIHR5cGUgaXMgYHBrZy5uZXN0ZWQuc3ViLmludGVyZmFjZWAgYSBsb2NhbCBpbXBvcnQgd2lsbCBiZSBmcm9tIGAuLi8uLi9gLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHVzZXMgdGhlIGFzc2VtYmx5IG5hbWUgZm9yIGV4dGVybmFsIHBhY2thZ2VzXG4gICAqIGxvY2FsIGltcG9ydHMgdHJhdmVyc2UgdXAgYSBudW1iZXIgb2YgbGV2ZWxzIGVxdWl2YWxlbnQgdG8gdGhlIG51bWJlciBvZiBmcW4gcGFydHNcbiAgICovXG4gIHJlYWRvbmx5IGltcG9ydExvY2F0aW9ucz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cbiAgLyoqXG4gICAqIEluZGVudGF0aW9uIHNpemVcbiAgICpcbiAgICogQGRlZmF1bHQgMlxuICAgKi9cbiAgcmVhZG9ubHkgaW5kZW50PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBVc2UgZXhwbGljaXQgYHR5cGVgIGltcG9ydHMgd2hlbiBpbXBvcnRpbmcgcmVmZXJlbmNlZCBtb2R1bGVzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rL21vZHVsZXMuaHRtbCNpbXBvcnRpbmctdHlwZXNcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgdXNlVHlwZUltcG9ydHM/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEpzaWkgdG8gVHlwZVNjcmlwdCByZW5kZXJlclxuICovXG5leHBvcnQgY2xhc3MgVHlwZVNjcmlwdFJlbmRlcmVyIHtcbiAgcHJpdmF0ZSBidWZmZXI6IENvZGVCdWZmZXI7XG4gIHByaXZhdGUgb3B0aW9uczogUmVxdWlyZWQ8VHlwZVNjcmlwdFJlbmRlcmVyT3B0aW9ucz47XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFR5cGVTY3JpcHRSZW5kZXJlck9wdGlvbnMgPSB7fSkge1xuICAgIHRoaXMub3B0aW9ucyA9IHtcbiAgICAgIGltcG9ydExvY2F0aW9uczogb3B0aW9ucy5pbXBvcnRMb2NhdGlvbnMgPz8ge30sXG4gICAgICBpbmRlbnQ6IG9wdGlvbnMuaW5kZW50ID8/IDIsXG4gICAgICB1c2VUeXBlSW1wb3J0czogb3B0aW9ucy51c2VUeXBlSW1wb3J0cyA/PyB0cnVlLFxuICAgIH07XG4gICAgdGhpcy5idWZmZXIgPSBuZXcgQ29kZUJ1ZmZlcignICcucmVwZWF0KHRoaXMub3B0aW9ucy5pbmRlbnQpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXIgc29tZXRoaW5nIHRoYXQgaGFzIGEgc3RydWN0IHNwZWNcbiAgICovXG4gIHB1YmxpYyByZW5kZXJTdHJ1Y3Qoc3RydWN0OiBIYXNTdHJ1Y3RTcGVjKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZW5kZXJTdHJ1Y3RTcGVjKHN0cnVjdC5zcGVjKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXIgYSBqc2lpIEludGVyZmFjZVR5cGUgc3BlY1xuICAgKi9cbiAgcHVibGljIHJlbmRlclN0cnVjdFNwZWMoc3BlYzogSW50ZXJmYWNlVHlwZSk6IHN0cmluZyB7XG4gICAgdGhpcy5idWZmZXIuZmx1c2goKTtcblxuICAgIHRoaXMucmVuZGVySW1wb3J0cyhleHRyYWN0SW1wb3J0cyhzcGVjLCB0aGlzLm9wdGlvbnMuaW1wb3J0TG9jYXRpb25zKSk7XG4gICAgdGhpcy5idWZmZXIubGluZSgpO1xuICAgIHRoaXMucmVuZGVyRG9jQmxvY2soZG9jc1RvTGluZXMoc3BlYy5kb2NzKSk7XG4gICAgdGhpcy5idWZmZXIub3BlbihgZXhwb3J0IGludGVyZmFjZSAke3NwZWMubmFtZX0ge2ApO1xuICAgIHNwZWMucHJvcGVydGllcz8uZm9yRWFjaCgocCkgPT4gdGhpcy5yZW5kZXJQcm9wZXJ0eShwLCBzcGVjLmZxbikpO1xuICAgIHRoaXMuYnVmZmVyLmNsb3NlKCd9Jyk7XG4gICAgdGhpcy5idWZmZXIubGluZSgpO1xuXG4gICAgcmV0dXJuIHRoaXMuYnVmZmVyLmZsdXNoKCkuam9pbignXFxuJyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVuZGVySW1wb3J0cyhtb2R1bGVzOiBNYXA8c3RyaW5nLCBTZXQ8c3RyaW5nPj4pIHtcbiAgICBBcnJheS5mcm9tKG1vZHVsZXMua2V5cygpKVxuICAgICAgLnNvcnQoY29tcGFyZVBhdGgpXG4gICAgICAuZm9yRWFjaCgobW9kKSA9PiB7XG4gICAgICAgIGNvbnN0IGltcG9ydHMgPSBBcnJheS5mcm9tKG1vZHVsZXMuZ2V0KG1vZCk/LnZhbHVlcygpIHx8IFtdKTtcbiAgICAgICAgY29uc3QgaW1wb3J0U3RtdCA9IHRoaXMub3B0aW9ucy51c2VUeXBlSW1wb3J0c1xuICAgICAgICAgID8gJ2ltcG9ydCB0eXBlJ1xuICAgICAgICAgIDogJ2ltcG9ydCc7XG4gICAgICAgIHRoaXMuYnVmZmVyLmxpbmUoXG4gICAgICAgICAgYCR7aW1wb3J0U3RtdH0geyAke2ltcG9ydHNcbiAgICAgICAgICAgIC5zb3J0KGNvbXBhcmVMb3dlckNhc2UpXG4gICAgICAgICAgICAuam9pbignLCAnKX0gfSBmcm9tICcke21vZH0nO2AsXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZW5kZXJQcm9wZXJ0eShwOiBQcm9wZXJ0eSwgY29udGFpbmluZ0Zxbjogc3RyaW5nKSB7XG4gICAgY29uc3QgZG9jcyA9IHN0cnVjdHVyZWRDbG9uZShwLmRvY3MpO1xuICAgIGlmIChkb2NzKSB7XG4gICAgICB0aGlzLnJlbmRlckRvY0Jsb2NrKGRvY3NUb0xpbmVzKGRvY3MpKTtcbiAgICB9XG5cbiAgICB0aGlzLmJ1ZmZlci5saW5lKFxuICAgICAgYHJlYWRvbmx5ICR7cC5uYW1lfSR7cC5vcHRpb25hbCA/ICc/JyA6ICcnfTogJHt0eXBlUmVmVG9UeXBlKFxuICAgICAgICBwLnR5cGUsXG4gICAgICAgIGNvbnRhaW5pbmdGcW4sXG4gICAgICApfTtgLFxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVuZGVyRG9jQmxvY2sobGluZXM6IHN0cmluZ1tdKSB7XG4gICAgaWYgKCFsaW5lcy5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmJ1ZmZlci5saW5lKCcvKionKTtcbiAgICBsaW5lcy5mb3JFYWNoKChsaW5lKSA9PiB0aGlzLmJ1ZmZlci5saW5lKGAgKiAke2xpbmV9YCkpO1xuICAgIHRoaXMuYnVmZmVyLmxpbmUoJyAqLycpO1xuICB9XG59XG5cbmNsYXNzIENvZGVCdWZmZXIge1xuICBwcml2YXRlIGxpbmVzID0gbmV3IEFycmF5PHN0cmluZz4oKTtcbiAgcHJpdmF0ZSBpbmRlbnRMZXZlbCA9IDA7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgaW5kZW50ID0gJyAnKSB7fVxuXG4gIHB1YmxpYyBmbHVzaCgpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgY3VycmVudCA9IHRoaXMubGluZXM7XG4gICAgdGhpcy5yZXNldCgpO1xuXG4gICAgcmV0dXJuIGN1cnJlbnQ7XG4gIH1cblxuICBwdWJsaWMgbGluZShjb2RlPzogc3RyaW5nKSB7XG4gICAgY29uc3QgcHJlZml4ID0gdGhpcy5pbmRlbnQucmVwZWF0KHRoaXMuaW5kZW50TGV2ZWwpO1xuICAgIHRoaXMubGluZXMucHVzaCgocHJlZml4ICsgKGNvZGUgPz8gJycpKS50cmltRW5kKCkpO1xuICB9XG5cbiAgcHVibGljIG9wZW4oY29kZT86IHN0cmluZykge1xuICAgIGlmIChjb2RlKSB7XG4gICAgICB0aGlzLmxpbmUoY29kZSk7XG4gICAgfVxuXG4gICAgdGhpcy5pbmRlbnRMZXZlbCsrO1xuICB9XG5cbiAgcHVibGljIGNsb3NlKGNvZGU/OiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5pbmRlbnRMZXZlbCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgZGVjcmVhc2UgaW5kZW50IGxldmVsIGJlbG93IHplcm8nKTtcbiAgICB9XG4gICAgdGhpcy5pbmRlbnRMZXZlbC0tO1xuXG4gICAgaWYgKGNvZGUpIHtcbiAgICAgIHRoaXMubGluZShjb2RlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMubGluZXMgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuICAgIHRoaXMuaW5kZW50TGV2ZWwgPSAwO1xuICB9XG59XG5cbmZ1bmN0aW9uIGRvY3NUb0xpbmVzKGRvY3M/OiBEb2NzKTogc3RyaW5nW10ge1xuICBpZiAoIWRvY3MpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBjb25zdCBsaW5lcyA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG5cbiAgaWYgKGRvY3Muc3VtbWFyeSkge1xuICAgIGxpbmVzLnB1c2goZG9jcy5zdW1tYXJ5KTtcbiAgfVxuICBpZiAoZG9jcy5yZW1hcmtzKSB7XG4gICAgbGluZXMucHVzaCguLi5kb2NzLnJlbWFya3Muc3BsaXQoJ1xcbicpKTtcbiAgfVxuICBpZiAoZG9jcy5kZWZhdWx0KSB7XG4gICAgbGluZXMucHVzaChgQGRlZmF1bHQgJHtkb2NzLmRlZmF1bHR9YCk7XG4gIH1cbiAgaWYgKGRvY3MuZGVwcmVjYXRlZCkge1xuICAgIGxpbmVzLnB1c2goYEBkZXByZWNhdGVkICR7ZG9jcy5kZXByZWNhdGVkfWApO1xuICB9XG4gIGlmIChkb2NzLnN0YWJpbGl0eSkge1xuICAgIGxpbmVzLnB1c2goYEBzdGFiaWxpdHkgJHtkb2NzLnN0YWJpbGl0eX1gKTtcbiAgfVxuICBpZiAoZG9jcy5jdXN0b20pIHtcbiAgICBPYmplY3QuZW50cmllcyhkb2NzLmN1c3RvbSkuZm9yRWFjaCgoZW50cnkpID0+IHtcbiAgICAgIGNvbnN0IFt0YWcsIHZhbHVlXSA9IGVudHJ5O1xuICAgICAgbGluZXMucHVzaChgQCR7dGFnfSAke3ZhbHVlfWApO1xuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIGxpbmVzO1xufVxuXG5mdW5jdGlvbiB0eXBlUmVmVG9UeXBlKHQ6IFR5cGVSZWZlcmVuY2UsIGNvbnRhaW5pbmdGcW46IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmIChpc1ByaW1pdGl2ZVR5cGVSZWZlcmVuY2UodCkpIHtcbiAgICByZXR1cm4gdC5wcmltaXRpdmU7XG4gIH1cblxuICBpZiAoaXNOYW1lZFR5cGVSZWZlcmVuY2UodCkpIHtcbiAgICByZXR1cm4gdC5mcW4uc3BsaXQoJy4nKS5zbGljZSgxKS5qb2luKCcuJyk7XG4gIH1cblxuICBpZiAoaXNDb2xsZWN0aW9uVHlwZVJlZmVyZW5jZSh0KSkge1xuICAgIHN3aXRjaCAodC5jb2xsZWN0aW9uLmtpbmQpIHtcbiAgICAgIGNhc2UgQ29sbGVjdGlvbktpbmQuQXJyYXk6XG4gICAgICAgIHJldHVybiBgQXJyYXk8JHt0eXBlUmVmVG9UeXBlKFxuICAgICAgICAgIHQuY29sbGVjdGlvbi5lbGVtZW50dHlwZSxcbiAgICAgICAgICBjb250YWluaW5nRnFuLFxuICAgICAgICApfT5gO1xuICAgICAgY2FzZSBDb2xsZWN0aW9uS2luZC5NYXA6XG4gICAgICAgIHJldHVybiBgUmVjb3JkPHN0cmluZywgJHt0eXBlUmVmVG9UeXBlKFxuICAgICAgICAgIHQuY29sbGVjdGlvbi5lbGVtZW50dHlwZSxcbiAgICAgICAgICBjb250YWluaW5nRnFuLFxuICAgICAgICApfT5gO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICdhbnknO1xuICAgIH1cbiAgfVxuICBpZiAoaXNVbmlvblR5cGVSZWZlcmVuY2UodCkpIHtcbiAgICByZXR1cm4gdC51bmlvbi50eXBlc1xuICAgICAgLm1hcCgodXQpID0+IHR5cGVSZWZUb1R5cGUodXQsIGNvbnRhaW5pbmdGcW4pKVxuICAgICAgLmpvaW4oJyB8ICcpO1xuICB9XG5cbiAgcmV0dXJuICdhbnknO1xufVxuXG5mdW5jdGlvbiBleHRyYWN0SW1wb3J0cyhcbiAgc3BlYzogSW50ZXJmYWNlVHlwZSxcbiAgaW1wb3J0TG9jYXRpb25zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuKTogTWFwPHN0cmluZywgU2V0PHN0cmluZz4+IHtcbiAgY29uc3QgcmVmcyA9IHNwZWMucHJvcGVydGllcz8uZmxhdE1hcCgocCkgPT4gY29sbGVjdEZRTnMocC50eXBlKSkgfHwgW107XG4gIHJldHVybiByZWZzLnJlZHVjZSgobW9kcywgcmVmKSA9PiB7XG4gICAgY29uc3QgcGFja2FnZU5hbWUgPSBmcW5Ub0ltcG9ydE5hbWUocmVmLCBzcGVjLmZxbiwgaW1wb3J0TG9jYXRpb25zKTtcbiAgICBjb25zdCBpbXBvcnRzID0gbW9kcy5nZXQocGFja2FnZU5hbWUpIHx8IG5ldyBTZXQoKTtcbiAgICBjb25zdCBpbXBvcnROYW1lID0gcmVmLnNwbGl0KCcuJykuc2xpY2UoMSlbMF0gfHwgcmVmO1xuICAgIHJldHVybiBtb2RzLnNldChwYWNrYWdlTmFtZSwgaW1wb3J0cy5hZGQoaW1wb3J0TmFtZSkpO1xuICB9LCBuZXcgTWFwPHN0cmluZywgU2V0PHN0cmluZz4+KCkpO1xufVxuXG5mdW5jdGlvbiBmcW5Ub0ltcG9ydE5hbWUoXG4gIGZxbjogc3RyaW5nLFxuICBpbXBvcnRpbmdGcW46IHN0cmluZyxcbiAgaW1wb3J0TG9jYXRpb25zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuKTogc3RyaW5nIHtcbiAgY29uc3QgbG9jYWxBc3NlbWJseSA9IGltcG9ydGluZ0Zxbi5zcGxpdCgnLicsIDEpWzBdO1xuICBjb25zdCBpbXBvcnRBc3NlbWJseSA9IGZxbi5zcGxpdCgnLicsIDEpWzBdO1xuXG4gIC8vIHdlIGhhdmUgYSBjdXN0b20gaW1wb3J0IHBhdGhcbiAgaWYgKGltcG9ydExvY2F0aW9uc1tpbXBvcnRBc3NlbWJseV0pIHtcbiAgICByZXR1cm4gaW1wb3J0TG9jYXRpb25zW2ltcG9ydEFzc2VtYmx5XTtcbiAgfVxuXG4gIC8vIHRoaXMgaXMgdGhlIHNhbWUgYXNzZW1ibHksIHRyeSB0byBndWVzcyB0aGUgcGF0aCB0byB0aGUgcm9vdFxuICBpZiAoaW1wb3J0QXNzZW1ibHkgPT09IGxvY2FsQXNzZW1ibHkpIHtcbiAgICBjb25zdCBmcW5QYXJ0cyA9IGltcG9ydGluZ0Zxbi5zcGxpdCgnLicpLmxlbmd0aDtcbiAgICBpZiAoZnFuUGFydHMgPD0gMikge1xuICAgICAgcmV0dXJuICcuLyc7XG4gICAgfVxuICAgIHJldHVybiAnLi4vJy5yZXBlYXQoZnFuUGFydHMgLSAyKTtcbiAgfVxuXG4gIC8vIHJlZ3VsYXIgdGhpcmQgcGFydHkgbW9kdWxlXG4gIHJldHVybiBpbXBvcnRBc3NlbWJseTtcbn1cblxuZnVuY3Rpb24gY29sbGVjdEZRTnModDogVHlwZVJlZmVyZW5jZSk6IHN0cmluZ1tdIHtcbiAgaWYgKGlzTmFtZWRUeXBlUmVmZXJlbmNlKHQpKSB7XG4gICAgcmV0dXJuIFt0LmZxbl07XG4gIH1cblxuICBpZiAoaXNVbmlvblR5cGVSZWZlcmVuY2UodCkpIHtcbiAgICByZXR1cm4gdC51bmlvbi50eXBlcy5mbGF0TWFwKGNvbGxlY3RGUU5zKTtcbiAgfVxuXG4gIGlmIChpc0NvbGxlY3Rpb25UeXBlUmVmZXJlbmNlKHQpKSB7XG4gICAgcmV0dXJuIGNvbGxlY3RGUU5zKHQuY29sbGVjdGlvbi5lbGVtZW50dHlwZSk7XG4gIH1cblxuICByZXR1cm4gW107XG59XG4iXX0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZW5kZXJlci90eXBlc2NyaXB0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFDQVVvQjtBQUVwQix3Q0FBMkQ7QUFxQzNEOztHQUVHO0FBQ0gsTUFBYSxrQkFBa0I7SUFJN0IsWUFBbUIsVUFBcUMsRUFBRTs7UUFDeEQsSUFBSSxDQUFDLE9BQU8sR0FBRztZQUNiLGVBQWUsRUFBRSxNQUFBLE9BQU8sQ0FBQyxlQUFlLG1DQUFJLEVBQUU7WUFDOUMsTUFBTSxFQUFFLE1BQUEsT0FBTyxDQUFDLE1BQU0sbUNBQUksQ0FBQztZQUMzQixjQUFjLEVBQUUsTUFBQSxPQUFPLENBQUMsY0FBYyxtQ0FBSSxJQUFJO1NBQy9DLENBQUM7UUFDRixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRDs7T0FFRztJQUNJLFlBQVksQ0FBQyxNQUFxQjtRQUN2QyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksZ0JBQWdCLENBQUMsSUFBbUI7O1FBQ3pDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFcEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG9C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QUksUUFBUSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ2xCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELDZCQUE2QjtJQUM3QixPQUFPLGNBQWMsQ0FBQztBQUN4QixDQUFDO0FBRUQsU0FBUyxXQUFXLENBQUMsQ0FBZ0I7SUFDbkMsSUFBSSxJQUFBLDJCQUFvQixFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDNUIsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNqQixDQUFDO0lBRUQsSUFBSSxJQUFBLDJCQUFvQixFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDNUIsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELElBQUksSUFBQSxnQ0FBeUIsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2pDLE9BQU8sV0FBVyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELE9BQU8sRUFBRSxDQUFDO0FBQ1osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbGxlY3Rpb25LaW5kLFxuICBEb2NzLFxuICBJbnRlcmZhY2VUeXBlLFxuICBpc0NvbGxlY3Rpb25UeXBlUmVmZXJlbmNlLFxuICBpc05hbWVkVHlwZVJlZmVyZW5jZSxcbiAgaXNQcmltaXRpdmVUeXBlUmVmZXJlbmNlLFxuICBpc1VuaW9uVHlwZVJlZmVyZW5jZSxcbiAgUHJvcGVydHksXG4gIFR5cGVSZWZlcmVuY2UsXG59IGZyb20gJ0Bqc2lpL3NwZWMnO1xuaW1wb3J0IHsgSGFzU3RydWN0U3BlYyB9IGZyb20gJy4uL2J1aWxkZXInO1xuaW1wb3J0IHsgY29tcGFyZUxvd2VyQ2FzZSwgY29tcGFyZVBhdGggfSBmcm9tICcuLi9wcml2YXRlJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciBgVHlwZVNjcmlwdFJlbmRlcmVyYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUeXBlU2NyaXB0UmVuZGVyZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBtb2R1bGUgbG9jYXRpb25zIGFzc2VtYmxpZXMgc2hvdWxkIGJlIGltcG9ydGVkIGZyb21cbiAgICpcbiAgICogQWxsIHR5cGVzIGFyZSBpbXBvcnRlZCBmcm9tIHRoZSB0b3AtbGV2ZWwgb2YgdGhlIG1vZHVsZS5cbiAgICogVGhpcyBtYXAgY2FuIGJlIHVzZWQgdG8gb3ZlcndyaXRlIHRoZSBkZWZhdWx0IGltcG9ydCBsb2NhdGlvbnMuXG4gICAqXG4gICAqIEZvciBsb2NhbCBpbXBvcnRzLCB0aGUgaW1wb3J0IHRyYXZlcnNlIHVwIGEgbnVtYmVyIG9mIGxldmVscyBlcXVpdmFsZW50IHRvIHRoZSBudW1iZXIgb2YgZnFuIHBhcnRzIG9mIHRoZSByZW5kZXJlZCB0eXBlLlxuICAgKiBFLmcuIGlmIHRoZSB0aGUgcmVuZGVyZWQgdHlwZSBpcyBgcGtnLmludGVyZmFjZWAsIGl0IGlzIGFzc3VtZWQgdG8gYmUgYXQgdGhlIHRvcC1sZXZlbCBhbmQgaW1wb3J0cyBmcm9tIHRoZSBzYW1lIGFzc2VtYmx5IHdvdWxkIGJlIGZyb20gYC4vYC5cbiAgICogSWYgdGhlIHJlbmRlcmVkIHR5cGUgaXMgYHBrZy5uZXN0ZWQuc3ViLmludGVyZmFjZWAgYSBsb2NhbCBpbXBvcnQgd2lsbCBiZSBmcm9tIGAuLi8uLi9gLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHVzZXMgdGhlIGFzc2VtYmx5IG5hbWUgZm9yIGV4dGVybmFsIHBhY2thZ2VzXG4gICAqIGxvY2FsIGltcG9ydHMgdHJhdmVyc2UgdXAgYSBudW1iZXIgb2YgbGV2ZWxzIGVxdWl2YWxlbnQgdG8gdGhlIG51bWJlciBvZiBmcW4gcGFydHNcbiAgICovXG4gIHJlYWRvbmx5IGltcG9ydExvY2F0aW9ucz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cbiAgLyoqXG4gICAqIEluZGVudGF0aW9uIHNpemVcbiAgICpcbiAgICogQGRlZmF1bHQgMlxuICAgKi9cbiAgcmVhZG9ubHkgaW5kZW50PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBVc2UgZXhwbGljaXQgYHR5cGVgIGltcG9ydHMgd2hlbiBpbXBvcnRpbmcgcmVmZXJlbmNlZCBtb2R1bGVzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rL21vZHVsZXMuaHRtbCNpbXBvcnRpbmctdHlwZXNcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgdXNlVHlwZUltcG9ydHM/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEpzaWkgdG8gVHlwZVNjcmlwdCByZW5kZXJlclxuICovXG5leHBvcnQgY2xhc3MgVHlwZVNjcmlwdFJlbmRlcmVyIHtcbiAgcHJpdmF0ZSBidWZmZXI6IENvZGVCdWZmZXI7XG4gIHByaXZhdGUgb3B0aW9uczogUmVxdWlyZWQ8VHlwZVNjcmlwdFJlbmRlcmVyT3B0aW9ucz47XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFR5cGVTY3JpcHRSZW5kZXJlck9wdGlvbnMgPSB7fSkge1xuICAgIHRoaXMub3B0aW9ucyA9IHtcbiAgICAgIGltcG9ydExvY2F0aW9uczogb3B0aW9ucy5pbXBvcnRMb2NhdGlvbnMgPz8ge30sXG4gICAgICBpbmRlbnQ6IG9wdGlvbnMuaW5kZW50ID8/IDIsXG4gICAgICB1c2VUeXBlSW1wb3J0czogb3B0aW9ucy51c2VUeXBlSW1wb3J0cyA/PyB0cnVlLFxuICAgIH07XG4gICAgdGhpcy5idWZmZXIgPSBuZXcgQ29kZUJ1ZmZlcignICcucmVwZWF0KHRoaXMub3B0aW9ucy5pbmRlbnQpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXIgc29tZXRoaW5nIHRoYXQgaGFzIGEgc3RydWN0IHNwZWNcbiAgICovXG4gIHB1YmxpYyByZW5kZXJTdHJ1Y3Qoc3RydWN0OiBIYXNTdHJ1Y3RTcGVjKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZW5kZXJTdHJ1Y3RTcGVjKHN0cnVjdC5zcGVjKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXIgYSBqc2lpIEludGVyZmFjZVR5cGUgc3BlY1xuICAgKi9cbiAgcHVibGljIHJlbmRlclN0cnVjdFNwZWMoc3BlYzogSW50ZXJmYWNlVHlwZSk6IHN0cmluZyB7XG4gICAgdGhpcy5idWZmZXIuZmx1c2goKTtcblxuICAgIHRoaXMucmVuZGVySW1wb3J0cyhleHRyYWN0SW1wb3J0cyhzcGVjLCB0aGlzLm9wdGlvbnMuaW1wb3J0TG9jYXRpb25zKSk7XG4gICAgdGhpcy5idWZmZXIubGluZSgpO1xuICAgIHRoaXMucmVuZGVyRG9jQmxvY2soZG9jc1RvTGluZXMoc3BlYy5kb2NzKSk7XG4gICAgdGhpcy5idWZmZXIub3BlbihgZXhwb3J0IGludGVyZmFjZSAke3NwZWMubmFtZX0ge2ApO1xuICAgIHNwZWMucHJvcGVydGllcz8uZm9yRWFjaCgocCkgPT4gdGhpcy5yZW5kZXJQcm9wZXJ0eShwLCBzcGVjLmZxbikpO1xuICAgIHRoaXMuYnVmZmVyLmNsb3NlKCd9Jyk7XG4gICAgdGhpcy5idWZmZXIubGluZSgpO1xuXG4gICAgcmV0dXJuIHRoaXMuYnVmZmVyLmZsdXNoKCkuam9pbignXFxuJyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVuZGVySW1wb3J0cyhtb2R1bGVzOiBNYXA8c3RyaW5nLCBTZXQ8c3RyaW5nPj4pIHtcbiAgICBBcnJheS5mcm9tKG1vZHVsZXMua2V5cygpKVxuICAgICAgLnNvcnQoY29tcGFyZVBhdGgpXG4gICAgICAuZm9yRWFjaCgobW9kKSA9PiB7XG4gICAgICAgIGNvbnN0IGltcG9ydHMgPSBBcnJheS5mcm9tKG1vZHVsZXMuZ2V0KG1vZCk/LnZhbHVlcygpIHx8IFtdKTtcbiAgICAgICAgY29uc3QgaW1wb3J0U3RtdCA9IHRoaXMub3B0aW9ucy51c2VUeXBlSW1wb3J0c1xuICAgICAgICAgID8gJ2ltcG9ydCB0eXBlJ1xuICAgICAgICAgIDogJ2ltcG9ydCc7XG4gICAgICAgIHRoaXMuYnVmZmVyLmxpbmUoXG4gICAgICAgICAgYCR7aW1wb3J0U3RtdH0geyAke2ltcG9ydHNcbiAgICAgICAgICAgIC5zb3J0KGNvbXBhcmVMb3dlckNhc2UpXG4gICAgICAgICAgICAuam9pbignLCAnKX0gfSBmcm9tICcke21vZH0nO2AsXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZW5kZXJQcm9wZXJ0eShwOiBQcm9wZXJ0eSwgY29udGFpbmluZ0Zxbjogc3RyaW5nKSB7XG4gICAgY29uc3QgZG9jcyA9IHN0cnVjdHVyZWRDbG9uZShwLmRvY3MpO1xuICAgIGlmIChkb2NzKSB7XG4gICAgICB0aGlzLnJlbmRlckRvY0Jsb2NrKGRvY3NUb0xpbmVzKGRvY3MpKTtcbiAgICB9XG5cbiAgICB0aGlzLmJ1ZmZlci5saW5lKFxuICAgICAgYHJlYWRvbmx5ICR7cC5uYW1lfSR7cC5vcHRpb25hbCA/ICc/JyA6ICcnfTogJHt0eXBlUmVmVG9UeXBlKFxuICAgICAgICBwLnR5cGUsXG4gICAgICAgIGNvbnRhaW5pbmdGcW4sXG4gICAgICApfTtgLFxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVuZGVyRG9jQmxvY2sobGluZXM6IHN0cmluZ1tdKSB7XG4gICAgaWYgKCFsaW5lcy5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmJ1ZmZlci5saW5lKCcvKionKTtcbiAgICBsaW5lcy5mb3JFYWNoKChsaW5lKSA9PiB0aGlzLmJ1ZmZlci5saW5lKGAgKiAke2xpbmV9YCkpO1xuICAgIHRoaXMuYnVmZmVyLmxpbmUoJyAqLycpO1xuICB9XG59XG5cbmNsYXNzIENvZGVCdWZmZXIge1xuICBwcml2YXRlIGxpbmVzID0gbmV3IEFycmF5PHN0cmluZz4oKTtcbiAgcHJpdmF0ZSBpbmRlbnRMZXZlbCA9IDA7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgaW5kZW50ID0gJyAnKSB7fVxuXG4gIHB1YmxpYyBmbHVzaCgpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgY3VycmVudCA9IHRoaXMubGluZXM7XG4gICAgdGhpcy5yZXNldCgpO1xuXG4gICAgcmV0dXJuIGN1cnJlbnQ7XG4gIH1cblxuICBwdWJsaWMgbGluZShjb2RlPzogc3RyaW5nKSB7XG4gICAgY29uc3QgcHJlZml4ID0gdGhpcy5pbmRlbnQucmVwZWF0KHRoaXMuaW5kZW50TGV2ZWwpO1xuICAgIHRoaXMubGluZXMucHVzaCgocHJlZml4ICsgKGNvZGUgPz8gJycpKS50cmltRW5kKCkpO1xuICB9XG5cbiAgcHVibGljIG9wZW4oY29kZT86IHN0cmluZykge1xuICAgIGlmIChjb2RlKSB7XG4gICAgICB0aGlzLmxpbmUoY29kZSk7XG4gICAgfVxuXG4gICAgdGhpcy5pbmRlbnRMZXZlbCsrO1xuICB9XG5cbiAgcHVibGljIGNsb3NlKGNvZGU/OiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5pbmRlbnRMZXZlbCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgZGVjcmVhc2UgaW5kZW50IGxldmVsIGJlbG93IHplcm8nKTtcbiAgICB9XG4gICAgdGhpcy5pbmRlbnRMZXZlbC0tO1xuXG4gICAgaWYgKGNvZGUpIHtcbiAgICAgIHRoaXMubGluZShjb2RlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMubGluZXMgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuICAgIHRoaXMuaW5kZW50TGV2ZWwgPSAwO1xuICB9XG59XG5cbmZ1bmN0aW9uIGRvY3NUb0xpbmVzKGRvY3M/OiBEb2NzKTogc3RyaW5nW10ge1xuICBpZiAoIWRvY3MpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBjb25zdCBsaW5lcyA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG5cbiAgaWYgKGRvY3Muc3VtbWFyeSkge1xuICAgIGxpbmVzLnB1c2goZG9jcy5zdW1tYXJ5KTtcbiAgfVxuICBpZiAoZG9jcy5yZW1hcmtzKSB7XG4gICAgbGluZXMucHVzaCguLi5kb2NzLnJlbWFya3Muc3BsaXQoJ1xcbicpKTtcbiAgfVxuICBpZiAoZG9jcy5kZWZhdWx0KSB7XG4gICAgbGluZXMucHVzaChgQGRlZmF1bHQgJHtkb2NzLmRlZmF1bHR9YCk7XG4gIH1cbiAgaWYgKGRvY3MuZGVwcmVjYXRlZCkge1xuICAgIGxpbmVzLnB1c2goYEBkZXByZWNhdGVkICR7ZG9jcy5kZXByZWNhdGVkfWApO1xuICB9XG4gIGlmIChkb2NzLnN0YWJpbGl0eSkge1xuICAgIGxpbmVzLnB1c2goYEBzdGFiaWxpdHkgJHtkb2NzLnN0YWJpbGl0eX1gKTtcbiAgfVxuICBpZiAoZG9jcy5jdXN0b20pIHtcbiAgICBPYmplY3QuZW50cmllcyhkb2NzLmN1c3RvbSkuZm9yRWFjaCgoZW50cnkpID0+IHtcbiAgICAgIGNvbnN0IFt0YWcsIHZhbHVlXSA9IGVudHJ5O1xuICAgICAgbGluZXMucHVzaChgQCR7dGFnfSAke3ZhbHVlfWApO1xuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIGxpbmVzO1xufVxuXG5mdW5jdGlvbiB0eXBlUmVmVG9UeXBlKHQ6IFR5cGVSZWZlcmVuY2UsIGNvbnRhaW5pbmdGcW46IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmIChpc1ByaW1pdGl2ZVR5cGVSZWZlcmVuY2UodCkpIHtcbiAgICByZXR1cm4gdC5wcmltaXRpdmU7XG4gIH1cblxuICBpZiAoaXNOYW1lZFR5cGVSZWZlcmVuY2UodCkpIHtcbiAgICByZXR1cm4gdC5mcW4uc3BsaXQoJy4nKS5zbGljZSgxKS5qb2luKCcuJyk7XG4gIH1cblxuICBpZiAoaXNDb2xsZWN0aW9uVHlwZVJlZmVyZW5jZSh0KSkge1xuICAgIHN3aXRjaCAodC5jb2xsZWN0aW9uLmtpbmQpIHtcbiAgICAgIGNhc2UgQ29sbGVjdGlvbktpbmQuQXJyYXk6XG4gICAgICAgIHJldHVybiBgQXJyYXk8JHt0eXBlUmVmVG9UeXBlKFxuICAgICAgICAgIHQuY29sbGVjdGlvbi5lbGVtZW50dHlwZSxcbiAgICAgICAgICBjb250YWluaW5nRnFuLFxuICAgICAgICApfT5gO1xuICAgICAgY2FzZSBDb2xsZWN0aW9uS2luZC5NYXA6XG4gICAgICAgIHJldHVybiBgUmVjb3JkPHN0cmluZywgJHt0eXBlUmVmVG9UeXBlKFxuICAgICAgICAgIHQuY29sbGVjdGlvbi5lbGVtZW50dHlwZSxcbiAgICAgICAgICBjb250YWluaW5nRnFuLFxuICAgICAgICApfT5gO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICdhbnknO1xuICAgIH1cbiAgfVxuICBpZiAoaXNVbmlvblR5cGVSZWZlcmVuY2UodCkpIHtcbiAgICByZXR1cm4gdC51bmlvbi50eXBlc1xuICAgICAgLm1hcCgodXQpID0+IHR5cGVSZWZUb1R5cGUodXQsIGNvbnRhaW5pbmdGcW4pKVxuICAgICAgLmpvaW4oJyB8ICcpO1xuICB9XG5cbiAgcmV0dXJuICdhbnknO1xufVxuXG5mdW5jdGlvbiBleHRyYWN0SW1wb3J0cyhcbiAgc3BlYzogSW50ZXJmYWNlVHlwZSxcbiAgaW1wb3J0TG9jYXRpb25zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuKTogTWFwPHN0cmluZywgU2V0PHN0cmluZz4+IHtcbiAgY29uc3QgcmVmcyA9IHNwZWMucHJvcGVydGllcz8uZmxhdE1hcCgocCkgPT4gY29sbGVjdEZRTnMocC50eXBlKSkgfHwgW107XG4gIHJldHVybiByZWZzLnJlZHVjZSgobW9kcywgcmVmKSA9PiB7XG4gICAgY29uc3QgcGFja2FnZU5hbWUgPSBmcW5Ub0ltcG9ydE5hbWUocmVmLCBzcGVjLmZxbiwgaW1wb3J0TG9jYXRpb25zKTtcbiAgICBjb25zdCBpbXBvcnRzID0gbW9kcy5nZXQocGFja2FnZU5hbWUpIHx8IG5ldyBTZXQoKTtcbiAgICBjb25zdCBpbXBvcnROYW1lID0gcmVmLnNwbGl0KCcuJykuc2xpY2UoMSlbMF0gfHwgcmVmO1xuICAgIHJldHVybiBtb2RzLnNldChwYWNrYWdlTmFtZSwgaW1wb3J0cy5hZGQoaW1wb3J0TmFtZSkpO1xuICB9LCBuZXcgTWFwPHN0cmluZywgU2V0PHN0cmluZz4+KCkpO1xufVxuXG5mdW5jdGlvbiBmcW5Ub0ltcG9ydE5hbWUoXG4gIGZxbjogc3RyaW5nLFxuICBpbXBvcnRpbmdGcW46IHN0cmluZyxcbiAgaW1wb3J0TG9jYXRpb25zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuKTogc3RyaW5nIHtcbiAgY29uc3QgbG9jYWxBc3NlbWJseSA9IGltcG9ydGluZ0Zxbi5zcGxpdCgnLicsIDEpWzBdO1xuICBjb25zdCBpbXBvcnRBc3NlbWJseSA9IGZxbi5zcGxpdCgnLicsIDEpWzBdO1xuXG4gIC8vIHdlIGhhdmUgYSBjdXN0b20gaW1wb3J0IHBhdGhcbiAgaWYgKGltcG9ydExvY2F0aW9uc1tpbXBvcnRBc3NlbWJseV0pIHtcbiAgICByZXR1cm4gaW1wb3J0TG9jYXRpb25zW2ltcG9ydEFzc2VtYmx5XTtcbiAgfVxuXG4gIC8vIHRoaXMgaXMgdGhlIHNhbWUgYXNzZW1ibHksIHRyeSB0byBndWVzcyB0aGUgcGF0aCB0byB0aGUgcm9vdFxuICBpZiAoaW1wb3J0QXNzZW1ibHkgPT09IGxvY2FsQXNzZW1ibHkpIHtcbiAgICBjb25zdCBmcW5QYXJ0cyA9IGltcG9ydGluZ0Zxbi5zcGxpdCgnLicpLmxlbmd0aDtcbiAgICBpZiAoZnFuUGFydHMgPD0gMikge1xuICAgICAgcmV0dXJuICcuLyc7XG4gICAgfVxuICAgIHJldHVybiAnLi4vJy5yZXBlYXQoZnFuUGFydHMgLSAyKTtcbiAgfVxuXG4gIC8vIHJlZ3VsYXIgdGhpcmQgcGFydHkgbW9kdWxlXG4gIHJldHVybiBpbXBvcnRBc3NlbWJseTtcbn1cblxuZnVuY3Rpb24gY29sbGVjdEZRTnModDogVHlwZVJlZmVyZW5jZSk6IHN0cmluZ1tdIHtcbiAgaWYgKGlzTmFtZWRUeXBlUmVmZXJlbmNlKHQpKSB7XG4gICAgcmV0dXJuIFt0LmZxbl07XG4gIH1cblxuICBpZiAoaXNVbmlvblR5cGVSZWZlcmVuY2UodCkpIHtcbiAgICByZXR1cm4gdC51bmlvbi50eXBlcy5mbGF0TWFwKGNvbGxlY3RGUU5zKTtcbiAgfVxuXG4gIGlmIChpc0NvbGxlY3Rpb25UeXBlUmVmZXJlbmNlKHQpKSB7XG4gICAgcmV0dXJuIGNvbGxlY3RGUU5zKHQuY29sbGVjdGlvbi5lbGVtZW50dHlwZSk7XG4gIH1cblxuICByZXR1cm4gW107XG59XG4iXX0= |
@@ -35,3 +35,2 @@ { | ||
"devDependencies": { | ||
"@jsii/spec": "^1.94.0", | ||
"@types/jest": "^29.5.12", | ||
@@ -47,8 +46,8 @@ "@types/node": "^18", | ||
"jest-junit": "^15", | ||
"mrpj": "^0.1.29", | ||
"projen": "^0.77.0", | ||
"mrpj": "^0.1.32", | ||
"projen": "^0.79.15", | ||
"standard-version": "^9", | ||
"ts-jest": "^29.1.2", | ||
"ts-node": "^10.9.2", | ||
"typescript": "^4.9.5" | ||
"typescript": "^5.3.3" | ||
}, | ||
@@ -70,3 +69,3 @@ "peerDependencies": { | ||
}, | ||
"version": "0.7.13", | ||
"version": "0.7.14", | ||
"jest": { | ||
@@ -105,7 +104,9 @@ "testMatch": [ | ||
], | ||
"preset": "ts-jest", | ||
"globals": { | ||
"ts-jest": { | ||
"tsconfig": "tsconfig.dev.json" | ||
} | ||
"transform": { | ||
"^.+\\.[t]sx?$": [ | ||
"ts-jest", | ||
{ | ||
"tsconfig": "tsconfig.dev.json" | ||
} | ||
] | ||
} | ||
@@ -112,0 +113,0 @@ }, |
116216
16