@bitgo-beta/utxo-ord 1.0.1-beta.657 → 1.0.1-beta.659

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -194,4 +194,4 @@ class OrdOutput {
194
194
  }
195
195
  }
196
196
  exports.OrdOutput = OrdOutput;
197
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3JkT3V0cHV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL09yZE91dHB1dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0RHOzs7QUFFSCx5Q0FBc0M7QUFFdEMsTUFBYSxnQkFBaUIsU0FBUSxLQUFLO0lBQ3pDLFlBQVksT0FBZSxFQUFTLEtBQWEsRUFBUyxRQUFvQjtRQUM1RSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFEbUIsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUFTLGFBQVEsR0FBUixRQUFRLENBQVk7SUFFOUUsQ0FBQztDQUNGO0FBSkQsNENBSUM7QUFFRDs7R0FFRztBQUNILE1BQWEsU0FBUztJQUNwQjs7Ozs7T0FLRztJQUNILFlBQW1CLEtBQWEsRUFBUyxXQUF1QixFQUFFO1FBQS9DLFVBQUssR0FBTCxLQUFLLENBQVE7UUFBUyxhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUNoRSxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbkMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDN0IsTUFBTSxJQUFJLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyw0QkFBNEIsUUFBUSxFQUFFLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO2FBQy9GO1lBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNULE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQ2xDLElBQUksQ0FBQyxDQUFDLEtBQUssSUFBSSxTQUFTLENBQUMsR0FBRyxFQUFFO29CQUM1QixNQUFNLElBQUksZ0JBQWdCLENBQUMsYUFB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QUU7WUFDZixJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUU7Z0JBQ2QsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO2FBQ3RDO2lCQUFNO2dCQUNMLE9BQU8sQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQzthQUNqRTtTQUNGO2FBQU07WUFDTCxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ2Y7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFFBQVEsQ0FBQyxNQUFnQjtRQUN2QixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBZ0IsQ0FBQztJQUM1RixDQUFDO0NBQ0Y7QUExSUQsOEJBMElDIiwic291cmNlc0NvbnRlbnQiOlsiLypcblxuQ2xhc3NlcyB1c2VkIGZvciB0cmFja2luZyBzYXRzIGFjcm9zcyB0cmFuc2FjdGlvbnMuXG5cbmh0dHBzOi8vZ2l0aHViLmNvbS9jYXNleS9vcmQvYmxvYi9tYXN0ZXIvYmlwLm1lZGlhd2lraSNkZXNpZ25cblxuPiBUaGUgb3JkaW5hbCBudW1iZXJzIG9mIHNhdHMgaW4gdHJhbnNhY3Rpb24gaW5wdXRzIGFyZSB0cmFuc2ZlcnJlZCB0byBvdXRwdXQgc2F0cyBpblxuPiBmaXJzdC1pbi1maXJzdC1vdXQgb3JkZXIsIGFjY29yZGluZyB0byB0aGUgc2l6ZSBhbmQgb3JkZXIgb2YgdGhlIHRyYW5zYWN0aW9ucyBpbnB1dHMgYW5kIG91dHB1dHMuXG5cblxuU2FtcGxlIHNjZW5hcmlvOlxuICAgaW5wdXRzICAgICAgICAgaTAsIGkxLCBpMlxuICAgb3V0cHV0cyAgICAgICAgdTAsIHUxXG4gICBpbnNjcmlwdGlvbnMgICByMCwgcjEsIHIyLCByMywgcjRcblxuXG5jcmVhdGVPdXRwdXRzKFxuICBbaTAsIGkxXSxcbiAgW1xuICAgIFt1MCwgW3IwLCByMV1dLFxuICAgIFt1MSwgW3IyLCByM11dLFxuICBdXG4pO1xuXG4gIHI0IGlzIGRvbmF0ZWQgdG8gdGhlIG1pbmVyXG5cbiAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSs4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQXG4gIOKUgiBpMCAgICAg4pSCIHUwICAgICDilIJcbiAg4pSCICAgICAgICDilIIgICAgICAgIOKUglxuICDilIIgICAgIHIwIOKUvCAgICAgICAg4pSCXG4gIOKUgiAgICAgICAg4pSCICAgICAgICDilIJcbiAg4pSc4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSkICAgICAgICDilIJcbiAg4pSCIGkxICAgICDilIIgICAgICAgIOKUglxuICDilIIgICAgIHIxIOKUvCAgICAgICAg4pSCXG4gIOKUgiAgICAgICAg4pSCICAgICAgICDilIJcbiAg4pSCICAgICAgICDilJzilIDilIDilIDilIDilIDilIDilIDilIDilKRcbiAg4pSCICAgICAgICDilIIgdTEgICAgIOKUglxuICDilIIgICAgIHIyIOKUvCAgICAgICAg4pSCXG4gIOKUgiAgICAgICAg4pSCICAgICAgICDilIJcbiAg4pSc4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSkICAgICAgICDilIJcbiAg4pSCIGkyICAgICDilIIgICAgICAgIOKUglxuICDilIIgICAgIHIzIOKUvCAgICAgICAg4pSCXG4gIOKUgiAgICAgICAg4pSCICAgICAgICDilIJcbiAg4pSCICAgICAgICDilIIgICAgICAgIOKUglxuICDilIIgICAgICAgIOKUnOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmFxuICDilIIgICAgICAgIOKUglxuICDilIIgICAgIHI0IOKUvFxuICDilIIgICAgICAgIOKUglxuICDilJTilIDilIDilIDilIDilIDilIDilIDilIDilJhcblxuICovXG5cbmltcG9ydCB7IFNhdFJhbmdlIH0gZnJvbSAnLi9TYXRSYW5nZSc7XG5cbmV4cG9ydCBjbGFzcyBJbnZhbGlkT3JkT3V0cHV0IGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcsIHB1YmxpYyB2YWx1ZTogYmlnaW50LCBwdWJsaWMgb3JkaW5hbHM6IFNhdFJhbmdlW10pIHtcbiAgICBzdXBlcihtZXNzYWdlKTtcbiAgfVxufVxuXG4vKipcbiAqIFRoZSBvcmRpbmFsIG1ldGFkYXRhIGZvciBhbiBvdXRwdXRcbiAqL1xuZXhwb3J0IGNsYXNzIE9yZE91dHB1dCB7XG4gIC8qKlxuICAgKiBAcGFyYW0gdmFsdWUgLSB0aGUgaW5wdXQgdmFsdWVcbiAgICogQHBhcmFtIG9yZGluYWxzIC0gVGhlIG9yZGluYWwgcmFuZ2VzIG9mIGFuIG91dHB1dCwgcmVsYXRpdmUgdG8gdGhlIGZpcnN0IHNhdG9zaGkuXG4gICAqICAgICAgICAgICAgICAgICAgIFJlcXVpcmVkIHRvIGJlIG9yZGVyZWQgYW5kIG5vbi1vdmVybGFwcGluZy5cbiAgICogICAgICAgICAgICAgICAgICAgTm90IHJlcXVpcmVkIHRvIGJlIGV4aGF1c3RpdmUuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgdmFsdWU6IGJpZ2ludCwgcHVibGljIG9yZGluYWxzOiBTYXRSYW5nZVtdID0gW10pIHtcbiAgICBjb25zdCBtYXhSYW5nZSA9IHRoaXMuYXNTYXRSYW5nZSgpO1xuICAgIG9yZGluYWxzLmZvckVhY2goKHIsIGkpID0+IHtcbiAgICAgIGlmICghbWF4UmFuZ2UuaXNTdXBlcnNldE9mKHIpKSB7XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3JkT3V0cHV0KGByYW5nZSAke3J9IG91dHNpZGUgb3V0cHV0IG1heFJhbmdlICR7bWF4UmFuZ2V9YCwgdmFsdWUsIG9yZGluYWxzKTtcbiAgICAgIH1cbiAgICAgIGlmICgwIDwgaSkge1xuICAgICAgICBjb25zdCBwcmV2UmFuZ2UgPSBvcmRpbmFsc1tpIC0gMV07XG4gICAgICAgIGlmIChyLnN0YXJ0IDw9IHByZXZSYW5nZS5lbmQpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9yZE91dHB1dChgU2F0UmFuZ2UgIyR7aSAtIDF9ICR7cHJldlJhbmdlfSBvdmVybGFwcyBTYXRSYW5nZSAjJHtpfSAke3J9YCwgdmFsdWUsIG9yZGluYWxzKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBvdGhlclxuICAgKiBAcmV0dXJuIE9yZE91dHB1dCBleHRlbmRlZCBieSBvdGhlci52YWx1ZSBhbmQgU2F0UmFuZ2VzIHNoaWZ0ZWQgYnkgdGhpcy52YWx1ZVxuICAgKi9cbiAgam9pbmVkV2l0aChvdGhlcjogT3JkT3V0cHV0KTogT3JkT3V0cHV0IHtcbiAgICByZXR1cm4gbmV3IE9yZE91dHB1dCh0aGlzLnZhbHVlICsgb3RoZXIudmFsdWUsIFtcbiAgICAgIC4uLnRoaXMub3JkaW5hbHMsXG4gICAgICAuLi5vdGhlci5vcmRpbmFscy5tYXAoKHIpID0+IHIuc2hpZnRlZEJ5KHRoaXMudmFsdWUpKSxcbiAgICBdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0gb3Jkc1xuICAgKiBAcmV0dXJuIHNpbmdsZSBPcmRPdXRwdXQgY29udGFpbmluZyBhbGwgU2F0UmFuZ2VzLCBzaGlmdGVkIGJ5IHByZWNlZGluZyBvdXRwdXQgdmFsdWVzXG4gICAqL1xuICBzdGF0aWMgam9pbkFsbChvcmRzOiBPcmRPdXRwdXRbXSk6IE9yZE91dHB1dCB7XG4gICAgaWYgKG9yZHMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBlbXB0eSBpbnB1dGApO1xuICAgIH1cbiAgICByZXR1cm4gb3Jkcy5yZWR1Y2UoKGEsIGIpID0+IGEuam9pbmVkV2l0aChiKSk7XG4gIH1cblxuICBhc1NhdFJhbmdlKCk6IFNhdFJhbmdlIHtcbiAgICByZXR1cm4gbmV3IFNhdFJhbmdlKEJpZ0ludCgwKSwgdGhpcy52YWx1ZSAtIEJpZ0ludCgxKSk7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHJcbiAgICogQHJldHVybiBuZXcgT3JkT3V0cHV0IHdpdGggYWxsIHJhbmdlcyBmdWxseSBjb250YWluZWQgaW4gX3JfLiBTYXRSYW5nZXMgYXJlIGFsaWduZWQgdG8gbmV3IHN0YXJ0LlxuICAgKi9cbiAgZnJvbVNhdFJhbmdlKHI6IFNhdFJhbmdlKTogT3JkT3V0cHV0IHtcbiAgICByZXR1cm4gbmV3IE9yZE91dHB1dChcbiAgICAgIHIuc2l6ZSgpLFxuICAgICAgdGhpcy5vcmRpbmFscy5mbGF0TWFwKChzKSA9PiB7XG4gICAgICAgIGlmIChyLmludGVyc2VjdHNXaXRoKHMpKSB7XG4gICAgICAgICAgaWYgKCFyLmlzU3VwZXJzZXRPZihzKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBwYXJ0aWFsIG92ZXJsYXAgaW4gJHtyfSBhbmQgJHtzfWApO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcy5zaGlmdGVkQnkoLXIuc3RhcnQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0gdmFsdWVcbiAgICogQHJldHVybiBmaXJzdCBPcmRPdXRwdXQgd2l0aCB2YWx1ZSBgdmFsdWVgLCBzZWNvbmQgT3JkT3V0cHV0IHdpdGggcmVtYWluaW5nIHZhbHVlLlxuICAgKiAgICAgICAgIFdpdGggcmVzcGVjdGl2ZSBTYXRSYW5nZXNcbiAgICovXG4gIHNwbGl0QXQodmFsdWU6IGJpZ2ludCk6IFtPcmRPdXRwdXQsIE9yZE91dHB1dF0ge1xuICAgIGlmICh0aGlzLnZhbHVlIDwgdmFsdWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgbXVzdCBzcGxpdCBhdCB2YWx1ZSBpbnNpZGUgcmFuZ2VgKTtcbiAgICB9XG4gICAgcmV0dXJuIFtcbiAgICAgIHRoaXMuZnJvbVNhdFJhbmdlKG5ldyBTYXRSYW5nZShCaWdJbnQoMCksIHZhbHVlIC0gQmlnSW50KDEpKSksXG4gICAgICB0aGlzLmZyb21TYXRSYW5nZShuZXcgU2F0UmFuZ2UodmFsdWUsIHRoaXMudmFsdWUgLSBCaWdJbnQoMSkpKSxcbiAgICBdO1xuICB9XG5cbiAgLyoqXG4gICAqIExpa2Ugc3BsaXRBdCBidXQgcmV0dXJucyBfbnVsbF8gd2hlcmUgYSB6ZXJvLXNpemVkIE9yZE91dHB1dCB3b3VsZCBiZVxuICAgKiBAcGFyYW0gdmFsdWVcbiAgICovXG4gIHNwbGl0QXRBbGxvd1plcm8odmFsdWU6IGJpZ2ludCk6IFtPcmRPdXRwdXQgfCBudWxsLCBPcmRPdXRwdXQgfCBudWxsXSB7XG4gICAgaWYgKHZhbHVlID09PSBCaWdJbnQoMCkpIHtcbiAgICAgIHJldHVybiBbbnVsbCwgdGhpcy5mcm9tU2F0UmFuZ2UodGhpcy5hc1NhdFJhbmdlKCkpXTtcbiAgICB9XG4gICAgaWYgKHZhbHVlID09PSB0aGlzLnZhbHVlKSB7XG4gICAgICByZXR1cm4gW3RoaXMuZnJvbVNhdFJhbmdlKHRoaXMuYXNTYXRSYW5nZSgpKSwgbnVsbF07XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnNwbGl0QXQodmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwbGl0IG91dHB1dCBzdWNjZXNzaXZlbHkgYXQgdmFsdWVzLlxuICAgKiBAcGFyYW0gdmFsdWVzXG4gICAqIEBwYXJhbSBleGFjdCAtIHdoZW4gc2V0LCBlbnN1cmUgdGhhdCB2YWx1ZSBzdW0gbWF0Y2hlcyBfdGhpcy52YWx1ZV9cbiAgICogQHBhcmFtIGFsbG93WmVybyAtIHdoZW4gc2V0LCByZXR1cm4gX251bGxfIGZvciB6ZXJvLXNpemVkIHZhbHVlc1xuICAgKiBAcmV0dXJuIChPcmRPdXRwdXQgfCBudWxsKVtdLiBaZXJvLXNpemVkIG91dHB1dHMgYXJlIHN1YnN0aXR1dGVkIHdpdGggX251bGxfLlxuICAgKi9cbiAgc3BsaXRBbGxXaXRoUGFyYW1zKFxuICAgIHZhbHVlczogYmlnaW50W10sXG4gICAgeyBleGFjdCA9IGZhbHNlLCBhbGxvd1plcm8gPSBmYWxzZSB9OiB7IGFsbG93WmVybz86IGJvb2xlYW47IGV4YWN0PzogYm9vbGVhbiB9XG4gICk6IChPcmRPdXRwdXQgfCBudWxsKVtdIHtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIGFyZ3VtZW50YCk7XG4gICAgfVxuICAgIGlmIChleGFjdCkge1xuICAgICAgY29uc3QgdmFsdWVTdW0gPSB2YWx1ZXMucmVkdWNlKChhLCBiKSA9PiBhICsgYiwgQmlnSW50KDApKTtcbiAgICAgIGlmICh0aGlzLnZhbHVlICE9PSB2YWx1ZVN1bSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHZhbHVlIHN1bSAke3ZhbHVlU3VtfSBkb2VzIG5vdCBtYXRjaCB0aGlzLnZhbHVlICR7dGhpcy52YWx1ZX1gKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLnNwbGl0QWxsV2l0aFBhcmFtcyh2YWx1ZXMuc2xpY2UoMCwgLTEpLCB7IGFsbG93WmVybywgZXhhY3Q6IGZhbHNlIH0pO1xuICAgIH1cbiAgICBjb25zdCBbdiwgLi4ucmVzdF0gPSB2YWx1ZXM7XG4gICAgY29uc3QgW2EsIGJdID0gYWxsb3daZXJvID8gdGhpcy5zcGxpdEF0QWxsb3daZXJvKHYpIDogdGhpcy5zcGxpdEF0KHYpO1xuICAgIGlmIChyZXN0Lmxlbmd0aCkge1xuICAgICAgaWYgKGIgPT09IG51bGwpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIHJlbWFpbmRlcmApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIFthLCAuLi5iLnNwbGl0QWxsV2l0aFBhcmFtcyhyZXN0LCB7IGV4YWN0LCBhbGxvd1plcm8gfSldO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gW2EsIGJdO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTcGxpdCBvdXRwdXQgc3VjY2Vzc2l2ZWx5IGF0IHZhbHVlcy5cbiAgICogQHBhcmFtIHZhbHVlc1xuICAgKiBAcmV0dXJuIE9yZE91dHB1dFtdIHdpdGggbGVuZ3RoIF92YWx1ZXMubGVuZ3RoICsgMV9cbiAgICovXG4gIHNwbGl0QWxsKHZhbHVlczogYmlnaW50W10pOiBPcmRPdXRwdXRbXSB7XG4gICAgcmV0dXJuIHRoaXMuc3BsaXRBbGxXaXRoUGFyYW1zKHZhbHVlcywgeyBleGFjdDogZmFsc2UsIGFsbG93WmVybzogZmFsc2UgfSkgYXMgT3JkT3V0cHV0W107XG4gIH1cbn1cbiJdfQ==
197
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3JkT3V0cHV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL09yZE91dHB1dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0RHOzs7QUFFSCx5Q0FBc0M7QUFFdEMsTUFBYSxnQkFBaUIsU0FBUSxLQUFLO0lBQ3pDLFlBQVksT0FBZSxFQUFTLEtBQWEsRUFBUyxRQUFvQjtRQUM1RSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFEbUIsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUFTLGFBQVEsR0FBUixRQUFRLENBQVk7SUFFOUUsQ0FBQztDQUNGO0FBSkQsNENBSUM7QUFFRDs7R0FFRztBQUNILE1BQWEsU0FBUztJQUNwQjs7Ozs7T0FLRztJQUNILFlBQW1CLEtBQWEsRUFBUyxXQUF1QixFQUFFO1FBQS9DLFVBQUssR0FBTCxLQUFLLENBQVE7UUFBUyxhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUNoRSxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbkMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUM5QixNQUFNLElBQUksZ0JBQWdCLENBQUMsU0FBUyxDQUFDLDRCQUE0QixRQUFRLEVBQUUsRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDaEcsQ0FBQztZQUNELElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNWLE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQ2xDLElBQUksQ0FBQyxDQUFDLEtBQUssSUFBSSxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUM7b0JBQzdCLE1BQU0s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Q0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0RSxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztnQkFDZixNQUFNLElBQUksS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUM7WUFDdkMsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE9BQU8sQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNsRSxDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2hCLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFFBQVEsQ0FBQyxNQUFnQjtRQUN2QixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBZ0IsQ0FBQztJQUM1RixDQUFDO0NBQ0Y7QUExSUQsOEJBMElDIiwic291cmNlc0NvbnRlbnQiOlsiLypcblxuQ2xhc3NlcyB1c2VkIGZvciB0cmFja2luZyBzYXRzIGFjcm9zcyB0cmFuc2FjdGlvbnMuXG5cbmh0dHBzOi8vZ2l0aHViLmNvbS9jYXNleS9vcmQvYmxvYi9tYXN0ZXIvYmlwLm1lZGlhd2lraSNkZXNpZ25cblxuPiBUaGUgb3JkaW5hbCBudW1iZXJzIG9mIHNhdHMgaW4gdHJhbnNhY3Rpb24gaW5wdXRzIGFyZSB0cmFuc2ZlcnJlZCB0byBvdXRwdXQgc2F0cyBpblxuPiBmaXJzdC1pbi1maXJzdC1vdXQgb3JkZXIsIGFjY29yZGluZyB0byB0aGUgc2l6ZSBhbmQgb3JkZXIgb2YgdGhlIHRyYW5zYWN0aW9ucyBpbnB1dHMgYW5kIG91dHB1dHMuXG5cblxuU2FtcGxlIHNjZW5hcmlvOlxuICAgaW5wdXRzICAgICAgICAgaTAsIGkxLCBpMlxuICAgb3V0cHV0cyAgICAgICAgdTAsIHUxXG4gICBpbnNjcmlwdGlvbnMgICByMCwgcjEsIHIyLCByMywgcjRcblxuXG5jcmVhdGVPdXRwdXRzKFxuICBbaTAsIGkxXSxcbiAgW1xuICAgIFt1MCwgW3IwLCByMV1dLFxuICAgIFt1MSwgW3IyLCByM11dLFxuICBdXG4pO1xuXG4gIHI0IGlzIGRvbmF0ZWQgdG8gdGhlIG1pbmVyXG5cbiAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSs4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQXG4gIOKUgiBpMCAgICAg4pSCIHUwICAgICDilIJcbiAg4pSCICAgICAgICDilIIgICAgICAgIOKUglxuICDilIIgICAgIHIwIOKUvCAgICAgICAg4pSCXG4gIOKUgiAgICAgICAg4pSCICAgICAgICDilIJcbiAg4pSc4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSkICAgICAgICDilIJcbiAg4pSCIGkxICAgICDilIIgICAgICAgIOKUglxuICDilIIgICAgIHIxIOKUvCAgICAgICAg4pSCXG4gIOKUgiAgICAgICAg4pSCICAgICAgICDilIJcbiAg4pSCICAgICAgICDilJzilIDilIDilIDilIDilIDilIDilIDilIDilKRcbiAg4pSCICAgICAgICDilIIgdTEgICAgIOKUglxuICDilIIgICAgIHIyIOKUvCAgICAgICAg4pSCXG4gIOKUgiAgICAgICAg4pSCICAgICAgICDilIJcbiAg4pSc4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSkICAgICAgICDilIJcbiAg4pSCIGkyICAgICDilIIgICAgICAgIOKUglxuICDilIIgICAgIHIzIOKUvCAgICAgICAg4pSCXG4gIOKUgiAgICAgICAg4pSCICAgICAgICDilIJcbiAg4pSCICAgICAgICDilIIgICAgICAgIOKUglxuICDilIIgICAgICAgIOKUnOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmFxuICDilIIgICAgICAgIOKUglxuICDilIIgICAgIHI0IOKUvFxuICDilIIgICAgICAgIOKUglxuICDilJTilIDilIDilIDilIDilIDilIDilIDilIDilJhcblxuICovXG5cbmltcG9ydCB7IFNhdFJhbmdlIH0gZnJvbSAnLi9TYXRSYW5nZSc7XG5cbmV4cG9ydCBjbGFzcyBJbnZhbGlkT3JkT3V0cHV0IGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcsIHB1YmxpYyB2YWx1ZTogYmlnaW50LCBwdWJsaWMgb3JkaW5hbHM6IFNhdFJhbmdlW10pIHtcbiAgICBzdXBlcihtZXNzYWdlKTtcbiAgfVxufVxuXG4vKipcbiAqIFRoZSBvcmRpbmFsIG1ldGFkYXRhIGZvciBhbiBvdXRwdXRcbiAqL1xuZXhwb3J0IGNsYXNzIE9yZE91dHB1dCB7XG4gIC8qKlxuICAgKiBAcGFyYW0gdmFsdWUgLSB0aGUgaW5wdXQgdmFsdWVcbiAgICogQHBhcmFtIG9yZGluYWxzIC0gVGhlIG9yZGluYWwgcmFuZ2VzIG9mIGFuIG91dHB1dCwgcmVsYXRpdmUgdG8gdGhlIGZpcnN0IHNhdG9zaGkuXG4gICAqICAgICAgICAgICAgICAgICAgIFJlcXVpcmVkIHRvIGJlIG9yZGVyZWQgYW5kIG5vbi1vdmVybGFwcGluZy5cbiAgICogICAgICAgICAgICAgICAgICAgTm90IHJlcXVpcmVkIHRvIGJlIGV4aGF1c3RpdmUuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgdmFsdWU6IGJpZ2ludCwgcHVibGljIG9yZGluYWxzOiBTYXRSYW5nZVtdID0gW10pIHtcbiAgICBjb25zdCBtYXhSYW5nZSA9IHRoaXMuYXNTYXRSYW5nZSgpO1xuICAgIG9yZGluYWxzLmZvckVhY2goKHIsIGkpID0+IHtcbiAgICAgIGlmICghbWF4UmFuZ2UuaXNTdXBlcnNldE9mKHIpKSB7XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkT3JkT3V0cHV0KGByYW5nZSAke3J9IG91dHNpZGUgb3V0cHV0IG1heFJhbmdlICR7bWF4UmFuZ2V9YCwgdmFsdWUsIG9yZGluYWxzKTtcbiAgICAgIH1cbiAgICAgIGlmICgwIDwgaSkge1xuICAgICAgICBjb25zdCBwcmV2UmFuZ2UgPSBvcmRpbmFsc1tpIC0gMV07XG4gICAgICAgIGlmIChyLnN0YXJ0IDw9IHByZXZSYW5nZS5lbmQpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZE9yZE91dHB1dChgU2F0UmFuZ2UgIyR7aSAtIDF9ICR7cHJldlJhbmdlfSBvdmVybGFwcyBTYXRSYW5nZSAjJHtpfSAke3J9YCwgdmFsdWUsIG9yZGluYWxzKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBvdGhlclxuICAgKiBAcmV0dXJuIE9yZE91dHB1dCBleHRlbmRlZCBieSBvdGhlci52YWx1ZSBhbmQgU2F0UmFuZ2VzIHNoaWZ0ZWQgYnkgdGhpcy52YWx1ZVxuICAgKi9cbiAgam9pbmVkV2l0aChvdGhlcjogT3JkT3V0cHV0KTogT3JkT3V0cHV0IHtcbiAgICByZXR1cm4gbmV3IE9yZE91dHB1dCh0aGlzLnZhbHVlICsgb3RoZXIudmFsdWUsIFtcbiAgICAgIC4uLnRoaXMub3JkaW5hbHMsXG4gICAgICAuLi5vdGhlci5vcmRpbmFscy5tYXAoKHIpID0+IHIuc2hpZnRlZEJ5KHRoaXMudmFsdWUpKSxcbiAgICBdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0gb3Jkc1xuICAgKiBAcmV0dXJuIHNpbmdsZSBPcmRPdXRwdXQgY29udGFpbmluZyBhbGwgU2F0UmFuZ2VzLCBzaGlmdGVkIGJ5IHByZWNlZGluZyBvdXRwdXQgdmFsdWVzXG4gICAqL1xuICBzdGF0aWMgam9pbkFsbChvcmRzOiBPcmRPdXRwdXRbXSk6IE9yZE91dHB1dCB7XG4gICAgaWYgKG9yZHMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBlbXB0eSBpbnB1dGApO1xuICAgIH1cbiAgICByZXR1cm4gb3Jkcy5yZWR1Y2UoKGEsIGIpID0+IGEuam9pbmVkV2l0aChiKSk7XG4gIH1cblxuICBhc1NhdFJhbmdlKCk6IFNhdFJhbmdlIHtcbiAgICByZXR1cm4gbmV3IFNhdFJhbmdlKEJpZ0ludCgwKSwgdGhpcy52YWx1ZSAtIEJpZ0ludCgxKSk7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHJcbiAgICogQHJldHVybiBuZXcgT3JkT3V0cHV0IHdpdGggYWxsIHJhbmdlcyBmdWxseSBjb250YWluZWQgaW4gX3JfLiBTYXRSYW5nZXMgYXJlIGFsaWduZWQgdG8gbmV3IHN0YXJ0LlxuICAgKi9cbiAgZnJvbVNhdFJhbmdlKHI6IFNhdFJhbmdlKTogT3JkT3V0cHV0IHtcbiAgICByZXR1cm4gbmV3IE9yZE91dHB1dChcbiAgICAgIHIuc2l6ZSgpLFxuICAgICAgdGhpcy5vcmRpbmFscy5mbGF0TWFwKChzKSA9PiB7XG4gICAgICAgIGlmIChyLmludGVyc2VjdHNXaXRoKHMpKSB7XG4gICAgICAgICAgaWYgKCFyLmlzU3VwZXJzZXRPZihzKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBwYXJ0aWFsIG92ZXJsYXAgaW4gJHtyfSBhbmQgJHtzfWApO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcy5zaGlmdGVkQnkoLXIuc3RhcnQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0gdmFsdWVcbiAgICogQHJldHVybiBmaXJzdCBPcmRPdXRwdXQgd2l0aCB2YWx1ZSBgdmFsdWVgLCBzZWNvbmQgT3JkT3V0cHV0IHdpdGggcmVtYWluaW5nIHZhbHVlLlxuICAgKiAgICAgICAgIFdpdGggcmVzcGVjdGl2ZSBTYXRSYW5nZXNcbiAgICovXG4gIHNwbGl0QXQodmFsdWU6IGJpZ2ludCk6IFtPcmRPdXRwdXQsIE9yZE91dHB1dF0ge1xuICAgIGlmICh0aGlzLnZhbHVlIDwgdmFsdWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgbXVzdCBzcGxpdCBhdCB2YWx1ZSBpbnNpZGUgcmFuZ2VgKTtcbiAgICB9XG4gICAgcmV0dXJuIFtcbiAgICAgIHRoaXMuZnJvbVNhdFJhbmdlKG5ldyBTYXRSYW5nZShCaWdJbnQoMCksIHZhbHVlIC0gQmlnSW50KDEpKSksXG4gICAgICB0aGlzLmZyb21TYXRSYW5nZShuZXcgU2F0UmFuZ2UodmFsdWUsIHRoaXMudmFsdWUgLSBCaWdJbnQoMSkpKSxcbiAgICBdO1xuICB9XG5cbiAgLyoqXG4gICAqIExpa2Ugc3BsaXRBdCBidXQgcmV0dXJucyBfbnVsbF8gd2hlcmUgYSB6ZXJvLXNpemVkIE9yZE91dHB1dCB3b3VsZCBiZVxuICAgKiBAcGFyYW0gdmFsdWVcbiAgICovXG4gIHNwbGl0QXRBbGxvd1plcm8odmFsdWU6IGJpZ2ludCk6IFtPcmRPdXRwdXQgfCBudWxsLCBPcmRPdXRwdXQgfCBudWxsXSB7XG4gICAgaWYgKHZhbHVlID09PSBCaWdJbnQoMCkpIHtcbiAgICAgIHJldHVybiBbbnVsbCwgdGhpcy5mcm9tU2F0UmFuZ2UodGhpcy5hc1NhdFJhbmdlKCkpXTtcbiAgICB9XG4gICAgaWYgKHZhbHVlID09PSB0aGlzLnZhbHVlKSB7XG4gICAgICByZXR1cm4gW3RoaXMuZnJvbVNhdFJhbmdlKHRoaXMuYXNTYXRSYW5nZSgpKSwgbnVsbF07XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnNwbGl0QXQodmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwbGl0IG91dHB1dCBzdWNjZXNzaXZlbHkgYXQgdmFsdWVzLlxuICAgKiBAcGFyYW0gdmFsdWVzXG4gICAqIEBwYXJhbSBleGFjdCAtIHdoZW4gc2V0LCBlbnN1cmUgdGhhdCB2YWx1ZSBzdW0gbWF0Y2hlcyBfdGhpcy52YWx1ZV9cbiAgICogQHBhcmFtIGFsbG93WmVybyAtIHdoZW4gc2V0LCByZXR1cm4gX251bGxfIGZvciB6ZXJvLXNpemVkIHZhbHVlc1xuICAgKiBAcmV0dXJuIChPcmRPdXRwdXQgfCBudWxsKVtdLiBaZXJvLXNpemVkIG91dHB1dHMgYXJlIHN1YnN0aXR1dGVkIHdpdGggX251bGxfLlxuICAgKi9cbiAgc3BsaXRBbGxXaXRoUGFyYW1zKFxuICAgIHZhbHVlczogYmlnaW50W10sXG4gICAgeyBleGFjdCA9IGZhbHNlLCBhbGxvd1plcm8gPSBmYWxzZSB9OiB7IGFsbG93WmVybz86IGJvb2xlYW47IGV4YWN0PzogYm9vbGVhbiB9XG4gICk6IChPcmRPdXRwdXQgfCBudWxsKVtdIHtcbiAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIGFyZ3VtZW50YCk7XG4gICAgfVxuICAgIGlmIChleGFjdCkge1xuICAgICAgY29uc3QgdmFsdWVTdW0gPSB2YWx1ZXMucmVkdWNlKChhLCBiKSA9PiBhICsgYiwgQmlnSW50KDApKTtcbiAgICAgIGlmICh0aGlzLnZhbHVlICE9PSB2YWx1ZVN1bSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHZhbHVlIHN1bSAke3ZhbHVlU3VtfSBkb2VzIG5vdCBtYXRjaCB0aGlzLnZhbHVlICR7dGhpcy52YWx1ZX1gKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLnNwbGl0QWxsV2l0aFBhcmFtcyh2YWx1ZXMuc2xpY2UoMCwgLTEpLCB7IGFsbG93WmVybywgZXhhY3Q6IGZhbHNlIH0pO1xuICAgIH1cbiAgICBjb25zdCBbdiwgLi4ucmVzdF0gPSB2YWx1ZXM7XG4gICAgY29uc3QgW2EsIGJdID0gYWxsb3daZXJvID8gdGhpcy5zcGxpdEF0QWxsb3daZXJvKHYpIDogdGhpcy5zcGxpdEF0KHYpO1xuICAgIGlmIChyZXN0Lmxlbmd0aCkge1xuICAgICAgaWYgKGIgPT09IG51bGwpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIHJlbWFpbmRlcmApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIFthLCAuLi5iLnNwbGl0QWxsV2l0aFBhcmFtcyhyZXN0LCB7IGV4YWN0LCBhbGxvd1plcm8gfSldO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gW2EsIGJdO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTcGxpdCBvdXRwdXQgc3VjY2Vzc2l2ZWx5IGF0IHZhbHVlcy5cbiAgICogQHBhcmFtIHZhbHVlc1xuICAgKiBAcmV0dXJuIE9yZE91dHB1dFtdIHdpdGggbGVuZ3RoIF92YWx1ZXMubGVuZ3RoICsgMV9cbiAgICovXG4gIHNwbGl0QWxsKHZhbHVlczogYmlnaW50W10pOiBPcmRPdXRwdXRbXSB7XG4gICAgcmV0dXJuIHRoaXMuc3BsaXRBbGxXaXRoUGFyYW1zKHZhbHVlcywgeyBleGFjdDogZmFsc2UsIGFsbG93WmVybzogZmFsc2UgfSkgYXMgT3JkT3V0cHV0W107XG4gIH1cbn1cbiJdfQ==
@@ -97,7 +97,10 @@ Broadly speaking, there are four scenarios:
97
97
  └────────┘
98
98
  */
99
99
  Object.defineProperty(exports, "__esModule", { value: true });
100
- exports.findOutputLayout = exports.getOrdOutputsForLayout = exports.toParameters = exports.toArray = void 0;
100
+ exports.toArray = toArray;
101
+ exports.toParameters = toParameters;
102
+ exports.getOrdOutputsForLayout = getOrdOutputsForLayout;
103
+ exports.findOutputLayout = findOutputLayout;
101
104
  const ZERO = BigInt(0);
102
105
  const ONE = BigInt(1);
103
106
  function max(a, b) {
@@ -113,7 +116,6 @@ function sum(arr) {
113
116
  function toArray(p) {
114
117
  return [p.firstChangeOutput, p.inscriptionOutput, p.secondChangeOutput, p.feeOutput];
115
118
  }
116
- exports.toArray = toArray;
117
119
  function toParameters(firstChangeOutput, inscriptionOutput, secondChangeOutput, feeOutput) {
118
120
  return {
119
121
  firstChangeOutput,
@@ -122,7 +124,6 @@ function toParameters(firstChangeOutput, inscriptionOutput, secondChangeOutput,
122
124
  feeOutput,
123
125
  };
124
126
  }
125
- exports.toParameters = toParameters;
126
127
  /**
127
128
  * Translates a layout into OrdOutputs. Absent outputs are set to `null`.
128
129
  *
@@ -137,7 +138,6 @@ function getOrdOutputsForLayout(inscriptionInput, layout) {
137
138
  }
138
139
  return toParameters(...outputs);
139
140
  }
140
- exports.getOrdOutputsForLayout = getOrdOutputsForLayout;
141
141
  /**
142
142
  * @param constraints
143
143
  * @param inscriptionInput
@@ -244,5 +244,4 @@ function findOutputLayout(inscriptionInput, search) {
244
244
  }
245
245
  return result;
246
246
  }
247
- exports.findOutputLayout = findOutputLayout;
248
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3V0cHV0TGF5b3V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL091dHB1dExheW91dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWdHRzs7O0FBSUgsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3ZCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUV0QixTQUFTLEdBQUcsQ0FBQyxDQUFTLEVBQUUsQ0FBUztJQUMvQixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3ZCLENBQUM7QUFFRCxTQUFTLEdBQUcsQ0FBQyxDQUFTLEVBQUUsQ0FBUztJQUMvQixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3ZCLENBQUM7QUFFRCxTQUFTLEdBQUcsQ0FBQyxHQUFhO0lBQ3hCLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDM0MsQ0FBQztBQWdCRCwrQ0FBK0M7QUFDL0MsU0FBZ0IsT0FBTyxDQUFJLENBQWdCO0lBQ3pDLE9BQU8sQ0FBQyxDQUFDLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDdkYsQ0FBQztBQUZELDBCQUVDO0FBRUQsU0FBZ0IsWUFBWSxDQUMxQixpQkFBb0IsRUFDcEIsaUJBQW9C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LG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzVELElBQUksaUJBQWlCLEtBQUssSUFBSSxFQUFFO1FBQzlCLE9BQU87S0FDUjtJQUNELE1BQU0saUJBQWlCLEdBQUcsb0JBQW9CLENBQUMsV0FBVyxFQUFFLGlCQUFpQixDQUFDLENBQUM7SUFDL0UsSUFBSSxpQkFBaUIsS0FBSyxJQUFJLEVBQUU7UUFDOUIsT0FBTztLQUNSO0lBQ0QsTUFBTSxlQUFlLEdBQUcsa0JBQWtCLENBQUMsV0FBVyxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixDQUFDLENBQUM7SUFDOUYsSUFBSSxlQUFlLEtBQUssSUFBSSxFQUFFO1FBQzVCLE9BQU87S0FDUjtJQUNELE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFDbkcsSUFBSSxTQUFTLEtBQUssSUFBSSxFQUFFO1FBQ3RCLE9BQU87S0FDUjtJQUNELE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQyxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDOUYsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLEVBQUU7UUFDakQsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0tBQ25DO0lBQ0QsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQXJDRCw0Q0FxQ0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuXG5UaGlzIGZpbGUgY29udGFpbnMgY29kZSBmb3IgY3JlYXRpbmcgYW4gb3V0cHV0IGxheW91dHMgZm9yIHRyYW5zYWN0aW9ucyB0aGF0IHBhc3Mgb24gaW5zY3JpcHRpb25zLlxuXG5XaGVuIHBhc3Npbmcgb24gYW4gaW5zY3JpcHRpb24sIHdlIHdhbnQgdG8gc2F0aXNmeSBhIGZldyBjb25zdHJhaW50czpcblxuKiBBbGwgb3V0cHV0cyBzaG91bGQgYmUgbGFyZ2VyIHRoYW4gYSBtaW5pbWFsIHZhbHVlIChkdXN0IGxpbWl0KVxuKiBUaGUgc3VtIG9mIGFsbCBvdXRwdXQgdmFsdWVzIG5lZWRzIHRvIGJlIGxlc3MgdGhhbiB0aGUgaW5wdXQgdG8gY292ZXIgdGhlIHRyYW5zYWN0aW9uIGZlZS5cbiogVGhlIG91dHB1dCBjb250YWluaW5nIHRoZSBpbnNjcmlwdGlvbiBzaG91bGQgYmUgYXMgc21hbGwgYXMgcG9zc2libGUsIGJ1dCBsYXJnZSBlbm91Z2ggdG9cbiAgY29udGFpbiB0aGUgaW5zY3JpcHRpb24uXG5cblRvIGtlZXAgdGhlIGluc2NyaXB0aW9uIG91dHB1dCBzbWFsbCwgd2UgY2FuIHBhZCB0aGUgc2F0b3NoaSByYW5nZSBwcmVjZWRpbmcgYW5kIGZvbGxvd2luZyB0aGUgcmFuZ2VcbndpdGggY2hhbmdlIG91dHB1dHMsIHdoaWNoIGhhdmUgYSBtaW5pbWFsIHNpemUgYW5kIGluY3VyIGEgZmVlIGNvc3QuXG5cblxuQnJvYWRseSBzcGVha2luZywgdGhlcmUgYXJlIGZvdXIgc2NlbmFyaW9zOlxuXG4oMSkgU21hbGwgaW5zY3JpcHRpb24gaW5wdXQgdGhhdCBoYXMganVzdCBlbm91Z2ggdmFsdWUgdG8gcGF5IGZvciBmZWUgYW5kIGEgc2luZ2xlIGluc2NyaXB0aW9uXG4gICAgb3V0cHV0ICh1MCkuIE5vIHBhZGRpbmcgb3V0cHV0cy5cbiAgICDilIzilIDilIDilIDilIDilIDilIDilIDilIDilKzilIDilIDilIDilIDilIDilIDilIDilIDilJBcbiAgICDilIIgICAgICAgIOKUgiB1MCAgICAg4pSCXG4gICAg4pSCICAgICAgciDilLwgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSc4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYXG4gICAg4pSCICAgICAgICDilIIgZmVlXG4gICAg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYXG5cblxuKDIpIExhcmdlIGluc2NyaXB0aW9uIGlucHV0IHdpdGggaW5zY3JpcHRpb24gY2xvc2UgdG8gc3RhcnQgb2YgaW5wdXQuXG4gICAgSW5zY3JpcHRpb24gb3V0cHV0IGZvbGxvd2VkIGJ5IGNoYW5nZSBvdXRwdXQgKHUxKSBwYWRkaW5nIHRoZSByZW1haW5pbmcgdmFsdWUuXG5cbiAgICDilIzilIDilIDilIDilIDilIDilIDilIDilIDilKzilIDilIDilIDilIDilIDilIDilIDilIDilJBcbiAgICDilIIgICAgICAgIOKUgiB1MCAgICAg4pSCXG4gICAg4pSCICAgICAgciDilLwgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSc4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSkXG4gICAg4pSCICAgICAgICDilIIgdTEgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSCICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilIIgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSCICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilIIgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSCICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilIIgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSc4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYXG4gICAg4pSCICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUgiBmZWVcbiAgICDilIIgICAgICAgIOKUglxuICAgIOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmFxuXG5cbigzKSBMYXJnZSBpbnNjcmlwdGlvbiBpbnB1dCB3aXRoIGluc2NyaXB0aW9uIGNsb3NlIHRvIGVuZCBvZiBpbnB1dC5cbiAgICBDaGFuZ2Ugb3V0cHV0IHBhZGRpbmcgc3RhcnQgZm9sbG93ZWQgYnkgaW5zY3JpcHRpb24gb3V0cHV0LlxuXG4gICAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSs4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQXG4gICAg4pSCICAgICAgICDilIIgdTAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSCICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilIIgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSCICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilIIgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSCICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilJzilIDilIDilIDilIDilIDilIDilIDilIDilKRcbiAgICDilIIgICAgICByIOKUvCAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilIIgdTEgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSc4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYXG4gICAg4pSCICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUgiBmZWVcbiAgICDilIIgICAgICAgIOKUglxuICAgIOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmFxuXG5cbig0KSBMYXJnZSBpbnNjcmlwdGlvbiBpbnB1dCB3aXRoIGluc2NyaXB0aW9uIGluIHRoZSBtaWRkbGUuXG4gICAgSW5zY3JpcHRpb24gaW5wdXQgKHUxKSB3aXRoIHBhZGRpbmcgb24gYm90aCBzaWRlcyAodTAgYW5kIHUyKVxuXG4gICAg4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSs4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQXG4gICAg4pSCICAgICAgICDilIIgdTAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSCICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilIIgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSCICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUnOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUpFxuICAgIOKUgiAgICAgICAg4pSCIHUxICAgICDilIJcbiAgICDilIIgICAgICByIOKUvCAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilJzilIDilIDilIDilIDilIDilIDilIDilIDilKRcbiAgICDilIIgICAgICAgIOKUgiB1MiAgICAg4pSCXG4gICAg4pSCICAgICAgICDilIIgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSCICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilJzilIDilIDilIDilIDilIDilIDilIDilIDilJhcbiAgICDilIIgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSCIGZlZVxuICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYXG4gKi9cblxuaW1wb3J0IHsgT3JkT3V0cHV0IH0gZnJvbSAnLi9PcmRPdXRwdXQnO1xuXG5jb25zdCBaRVJPID0gQmlnSW50KDApO1xuY29uc3QgT05FID0gQmlnSW50KDEpO1xuXG5mdW5jdGlvbiBtYXgoYTogYmlnaW50LCBiOiBiaWdpbnQpOiBiaWdpbnQge1xuICByZXR1cm4gYSA8IGIgPyBiIDogYTtcbn1cblxuZnVuY3Rpb24gbWluKGE6IGJpZ2ludCwgYjogYmlnaW50KTogYmlnaW50IHtcbiAgcmV0dXJuIGEgPCBiID8gYSA6IGI7XG59XG5cbmZ1bmN0aW9uIHN1bShhcnI6IGJpZ2ludFtdKTogYmlnaW50IHtcbiAgcmV0dXJuIGFyci5yZWR1Y2UoKGEsIGIpID0+IGEgKyBiLCBaRVJPKTtcbn1cblxuLyoqXG4gKiBBIHJhbmdlIGNvbnN0cmFpbnRcbiAqL1xudHlwZSBQYXJhbWV0ZXJzPFQ+ID0ge1xuICAvKiogUGFkZGluZyBwcmVjZWRpbmcgdGhlIGluc2NyaXB0aW9uIG91dHB1dCAqL1xuICBmaXJzdENoYW5nZU91dHB1dDogVDtcbiAgLyoqIFRoZSBpbnNjcmlwdGlvbiBvdXRwdXQgdGhhdCB3aWxsIGluaGVyaXQgdGhlIGlucHV0IGluc2NyaXB0aW9uICovXG4gIGluc2NyaXB0aW9uT3V0cHV0OiBUO1xuICAvKiogUGFkZGluZyBmb2xsb3dpbmcgdGhlIGluc2NyaXB0aW9uIG91dHB1dCAqL1xuICBzZWNvbmRDaGFuZ2VPdXRwdXQ6IFQ7XG4gIC8qKiBOb3QgYSByZWFsIG91dHB1dCwgdXNlZCBvbmx5IHRvIHNpbXBsaWZ5IGNhbGN1bGF0aW9ucyAqL1xuICBmZWVPdXRwdXQ6IFQ7XG59O1xuXG4vKiogQHJldHVybiBjYW5vbmljYWwgc2VxdWVuY2Ugb2YgcGFyYW1ldGVycyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvQXJyYXk8VD4ocDogUGFyYW1ldGVyczxUPik6IFtULCBULCBULCBUXSB7XG4gIHJldHVybiBbcC5maXJzdENoYW5nZU91dHB1dCwgcC5pbnNjcmlwdGlvbk91dHB1dCwgcC5zZWNvbmRDaGFuZ2VPdXRwdXQsIHAuZmVlT3V0cHV0XTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvUGFyYW1ldGVyczxUPihcbiAgZmlyc3RDaGFuZ2VPdXRwdXQ6IFQsXG4gIGluc2NyaXB0aW9uT3V0cHV0OiBULFxuICBzZWNvbmRDaGFuZ2VPdXRwdXQ6IFQsXG4gIGZlZU91dHB1dDogVFxuKTogUGFyYW1ldGVyczxUPiB7XG4gIHJldHVybiB7XG4gICAgZmlyc3RDaGFuZ2VPdXRwdXQsXG4gICAgaW5zY3JpcHRpb25PdXRwdXQsXG4gICAgc2Vjb25kQ2hhbmdlT3V0cHV0LFxuICAgIGZlZU91dHB1dCxcbiAgfTtcbn1cblxuLyoqIEEgZmluaXNoZWQgb3V0cHV0IGxheW91dCAqL1xuZXhwb3J0IHR5cGUgT3V0cHV0TGF5b3V0ID0gUGFyYW1ldGVyczxiaWdpbnQ+O1xuXG4vKipcbiAqIFRyYW5zbGF0ZXMgYSBsYXlvdXQgaW50byBPcmRPdXRwdXRzLiBBYnNlbnQgb3V0cHV0cyBhcmUgc2V0IHRvIGBudWxsYC5cbiAqXG4gKiBAcGFyYW0gaW5zY3JpcHRpb25JbnB1dFxuICogQHBhcmFtIGxheW91dFxuICogQHJldHVybiBPcmRPdXRwdXRzIGZvciBsYXlvdXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE9yZE91dHB1dHNGb3JMYXlvdXQoXG4gIGluc2NyaXB0aW9uSW5wdXQ6IE9yZE91dHB1dCxcbiAgbGF5b3V0OiBPdXRwdXRMYXlvdXRcbik6IFBhcmFtZXRlcnM8T3JkT3V0cHV0IHwgbnVsbD4ge1xuICBjb25zdCBvdXRwdXRzID0gaW5zY3JpcHRpb25JbnB1dC5zcGxpdEFsbFdpdGhQYXJhbXModG9BcnJheShsYXlvdXQpLCB7IGV4YWN0OiB0cnVlLCBhbGxvd1plcm86IHRydWUgfSk7XG4gIGlmIChvdXRwdXRzLmxlbmd0aCAhPT0gNCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgdW5leHBlY3RlZCByZXN1bHRgKTtcbiAgfVxuICB0eXBlIFQgPSBPcmRPdXRwdXQgfCBudWxsO1xuICByZXR1cm4gdG9QYXJhbWV0ZXJzKC4uLihvdXRwdXRzIGFzIFtULCBULCBULCBUXSkpO1xufVxuXG4vKipcbiAqIEBwYXJhbSBjb25zdHJhaW50c1xuICogQHBhcmFtIGluc2NyaXB0aW9uSW5wdXRcbiAqIEBwYXJhbSBsYXlvdXRcbiAqIEByZXR1cm4gdHJ1ZSBpZmYgbGF5b3V0IHNhdGlzZmllcyBjb25zdHJhaW50c1xuICovXG5mdW5jdGlvbiBjaGVjayhjb25zdHJhaW50czogQ29uc3RyYWludHMsIGluc2NyaXB0aW9uSW5wdXQ6IE9yZE91dHB1dCwgbGF5b3V0OiBPdXRwdXRMYXlvdXQpOiBib29sZWFuIHtcbiAgaWYgKFxuICAgIChsYXlvdXQuZmlyc3RDaGFuZ2VPdXRwdXQgPT09IFpFUk8gfHwgY29uc3RyYWludHMubWluQ2hhbmdlT3V0cHV0IDw9IGxheW91dC5maXJzdENoYW5nZU91dHB1dCkgJiZcbiAgICAobGF5b3V0LnNlY29uZENoYW5nZU91dHB1dCA9PT0gWkVSTyB8fCBjb25zdHJhaW50cy5taW5DaGFuZ2VPdXRwdXQgPD0gbGF5b3V0LnNlY29uZENoYW5nZU91dHB1dCkgJiZcbiAgICBjb25zdHJhaW50cy5taW5JbnNjcmlwdGlvbk91dHB1dCA8PSBsYXlvdXQuaW5zY3JpcHRpb25PdXRwdXQgJiZcbiAgICBsYXlvdXQuaW5zY3JpcHRpb25PdXRwdXQgPD0gY29uc3RyYWludHMubWF4SW5zY3JpcHRpb25PdXRwdXQgJiZcbiAgICBnZXRGZWVGb3JPdXRwdXRzKGNvbnN0cmFpbnRzLCBbbGF5b3V0LmZpcnN0Q2hhbmdlT3V0cHV0LCBsYXlvdXQuaW5zY3JpcHRpb25PdXRwdXQsIGxheW91dC5zZWNvbmRDaGFuZ2VPdXRwdXRdKSA8PVxuICAgICAgbGF5b3V0LmZlZU91dHB1dCAmJlxuICAgIHN1bSh0b0FycmF5KGxheW91dCkpID09PSBpbnNjcmlwdGlvbklucHV0LnZhbHVlXG4gICkge1xuICAgIC8qIG1ha2Ugc3VyZSBpbnNjcmlwdGlvbiBhY3R1YWxseSBsaWVzIG9uIHRoZSBpbnNjcmlwdGlvbk91dHB1dCAqL1xuICAgIGNvbnN0IG91dHB1dHMgPSBnZXRPcmRPdXRwdXRzRm9yTGF5b3V0KGluc2NyaXB0aW9uSW5wdXQsIGxheW91dCk7XG4gICAgcmV0dXJuIG91dHB1dHMuaW5zY3JpcHRpb25PdXRwdXQ/Lm9yZGluYWxzLmxlbmd0aCA9PT0gMTtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuLyoqXG4gKiBIaWdoLWxldmVsIGNvbnN0cmFpbnRzIGZvciBvdXRwdXQgbGF5b3V0XG4gKi9cbmV4cG9ydCB0eXBlIENvbnN0cmFpbnRzID0ge1xuICBtaW5DaGFuZ2VPdXRwdXQ6IGJpZ2ludDtcbiAgbWluSW5zY3JpcHRpb25PdXRwdXQ6IGJpZ2ludDtcbiAgbWF4SW5zY3JpcHRpb25PdXRwdXQ6IGJpZ2ludDtcbiAgZmVlRml4ZWQ6IGJpZ2ludDtcbiAgZmVlUGVyT3V0cHV0OiBiaWdpbnQ7XG4gIHNhdFBvczogYmlnaW50O1xuICB0b3RhbDogYmlnaW50O1xufTtcblxuZnVuY3Rpb24gZ2V0RmVlRm9yT3V0cHV0cyhwOiB7IGZlZVBlck91dHB1dDogYmlnaW50OyBmZWVGaXhlZDogYmlnaW50IH0sIG91dHB1dHM6IGJpZ2ludFtdKTogYmlnaW50IHtcbiAgcmV0dXJuIG91dHB1dHMucmVkdWNlKChzdW0sIG9WYWx1ZSk6IGJpZ2ludCA9PiBzdW0gKyAob1ZhbHVlID09PSBaRVJPID8gWkVSTyA6IHAuZmVlUGVyT3V0cHV0KSwgcC5mZWVGaXhlZCk7XG59XG5mdW5jdGlvbiBnZXRTdGFydENoYW5nZU91dHB1dChjOiBDb25zdHJhaW50cyk6IGJpZ2ludCB8IG51bGwge1xuICAvLyB3ZSBkb24ndCBuZWVkIGEgY2hhbmdlIHBhZGRpbmcgb3V0cHV0XG4gIGlmIChjLnNhdFBvcyA8IGMubWF4SW5zY3JpcHRpb25PdXRwdXQpIHtcbiAgICByZXR1cm4gWkVSTztcbiAgfVxuICBpZiAoYy5taW5DaGFuZ2VPdXRwdXQgPD0gYy5zYXRQb3MpIHtcbiAgICByZXR1cm4gYy5zYXRQb3M7XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59XG5cbmZ1bmN0aW9uIGdldEluc2NyaXB0aW9uT3V0cHV0KGM6IENvbnN0cmFpbnRzLCBzdGFydENoYW5nZU91dHB1dDogYmlnaW50KTogYmlnaW50IHwgbnVsbCB7XG4gIGNvbnN0IHJlc3VsdCA9IG1pbihjLm1heEluc2NyaXB0aW9uT3V0cHV0LCBtYXgoYy5taW5JbnNjcmlwdGlvbk91dHB1dCwgYy5zYXRQb3MgLSBzdGFydENoYW5nZU91dHB1dCArIE9ORSkpO1xuICBpZiAoYy5zYXRQb3MgPCBzdGFydENoYW5nZU91dHB1dCB8fCBzdGFydENoYW5nZU91dHB1dCArIHJlc3VsdCA8IGMuc2F0UG9zKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgLy8gaWYgaXMgbm90IHdvcnRoIGNyZWF0aW5nIGFuIGVuZCBjaGFuZ2Ugb3V0cHV0LCBsZXQncyBtYXhpbWl6ZSB0aGUgaW5zY3JpcHRpb24gb3V0cHV0XG4gIGlmIChnZXRFbmRDaGFuZ2VPdXRwdXQoYywgc3RhcnRDaGFuZ2VPdXRwdXQsIHJlc3VsdCkgPT09IFpFUk8pIHtcbiAgICBjb25zdCByZW1haW5kZXIgPSBjLnRvdGFsIC0gc3RhcnRDaGFuZ2VPdXRwdXQgLSBnZXRGZWVGb3JPdXRwdXRzKGMsIFtzdGFydENoYW5nZU91dHB1dCwgcmVzdWx0XSk7XG4gICAgcmV0dXJuIG1pbihyZW1haW5kZXIsIGMubWF4SW5zY3JpcHRpb25PdXRwdXQpO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmZ1bmN0aW9uIGdldEVuZENoYW5nZU91dHB1dChjOiBDb25zdHJhaW50cywgc3RhcnRDaGFuZ2VPdXRwdXQ6IGJpZ2ludCwgaW5zY3JpcHRpb25PdXRwdXQ6IGJpZ2ludCk6IGJpZ2ludCB8IG51bGwge1xuICBjb25zdCByZW1haW5kZXIgPSBjLnRvdGFsIC0gc3VtKFtzdGFydENoYW5nZU91dHB1dCwgaW5zY3JpcHRpb25PdXRwdXRdKTtcbiAgY29uc3QgbWluRmVlV2l0aG91dFNlY29uZE91dHB1dCA9IGdldEZlZUZvck91dHB1dHMoYywgW3N0YXJ0Q2hhbmdlT3V0cHV0LCBpbnNjcmlwdGlvbk91dHB1dF0pO1xuICBjb25zdCBtaW5GZWVXaXRoU2Vjb25kT3V0cHV0ID0gZ2V0RmVlRm9yT3V0cHV0cyhjLCBbc3RhcnRDaGFuZ2VPdXRwdXQsIGluc2NyaXB0aW9uT3V0cHV0LCBjLm1pbkNoYW5nZU91dHB1dF0pO1xuICBpZiAocmVtYWluZGVyIDwgbWluRmVlV2l0aG91dFNlY29uZE91dHB1dCkge1xuICAgIC8vIFdlIGNhbm5vdCBldmVuIHBheSB0aGUgZmVlIGZvciB0aGUgb3V0cHV0KHMpIHdlIGhhdmUgc28gZmFyLlxuICAgIHJldHVybiBudWxsO1xuICB9XG4gIGlmIChyZW1haW5kZXIgLSBtaW5GZWVXaXRoU2Vjb25kT3V0cHV0IDwgYy5taW5DaGFuZ2VPdXRwdXQpIHtcbiAgICAvLyBUaGUgcmVtYWluZGVyIGlzIHRvbyBzbWFsbCB0byBwYXkgZm9yIHRoZSBlbmQgY2hhbmdlIG91dHB1dC4gTGV0J3Mgc2tpcCBpdCBhbmQgcGF5IGEgaGlnaGVyIGZlZS5cbiAgICByZXR1cm4gWkVSTztcbiAgfVxuICAvLyBsZXQncyB1c2UgYXMgbXVjaCBhcyB3ZSBjYW4gZm9yIGZlZSB3aGlsZSBsZWF2aW5nIGVub3VnaCBmb3IgZmVlXG4gIHJldHVybiByZW1haW5kZXIgLSBtaW5GZWVXaXRoU2Vjb25kT3V0cHV0O1xufVxuXG5mdW5jdGlvbiBnZXRGZWVPdXRwdXQoXG4gIGM6IENvbnN0cmFpbnRzLFxuICBzdGFydENoYW5nZU91dHB1dDogYmlnaW50LFxuICBpbnNjcmlwdGlvbk91dHB1dDogYmlnaW50LFxuICBlbmRDaGFuZ2VPdXRwdXQ6IGJpZ2ludFxuKTogYmlnaW50IHwgbnVsbCB7XG4gIGNvbnN0IG1pbkZlZSA9IGdldEZlZUZvck91dHB1dHMoYywgW3N0YXJ0Q2hhbmdlT3V0cHV0LCBpbnNjcmlwdGlvbk91dHB1dCwgZW5kQ2hhbmdlT3V0cHV0XSk7XG4gIGNvbnN0IHJlbWFpbmRlciA9IGMudG90YWwgLSBzdW0oW3N0YXJ0Q2hhbmdlT3V0cHV0LCBpbnNjcmlwdGlvbk91dHB1dCwgZW5kQ2hhbmdlT3V0cHV0XSk7XG4gIGlmIChyZW1haW5kZXIgPCBtaW5GZWUpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICByZXR1cm4gcmVtYWluZGVyO1xufVxuXG4vKipcbiAqIEBwYXJhbSBpbnNjcmlwdGlvbklucHV0XG4gKiBAcGFyYW0gc2VhcmNoXG4gKiBAcmV0dXJuIGEgc29sdXRpb24gdGhhdCBzYXRpc2ZpZXMgY29uc3RyYWludHMuIElmIG5vIHNvbHV0aW9uIGNhbiBiZSBmb3VuZCwgcmV0dXJuIGB1bmRlZmluZWRgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZE91dHB1dExheW91dChcbiAgaW5zY3JpcHRpb25JbnB1dDogT3JkT3V0cHV0LFxuICBzZWFyY2g6IE9taXQ8Q29uc3RyYWludHMsICdzYXRQb3MnIHwgJ3RvdGFsJz5cbik6IE91dHB1dExheW91dCB8IHVuZGVmaW5lZCB7XG4gIGlmIChpbnNjcmlwdGlvbklucHV0Lm9yZGluYWxzLmxlbmd0aCAhPT0gMSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgdW5leHBlY3RlZCBvcmRpbmFsIGNvdW50ICR7aW5zY3JpcHRpb25JbnB1dC5vcmRpbmFscy5sZW5ndGh9YCk7XG4gIH1cbiAgaWYgKGluc2NyaXB0aW9uSW5wdXQub3JkaW5hbHNbMF0uc2l6ZSgpICE9PSBPTkUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYG9ubHkgc2luZ2xlLXNhdG9zaGkgaW5zY3JpcHRpb25zIGFyZSBzdXBwb3J0ZWRgKTtcbiAgfVxuXG4gIGNvbnN0IHNhdFBvcyA9IGluc2NyaXB0aW9uSW5wdXQub3JkaW5hbHNbMF0uc3RhcnQ7XG4gIGNvbnN0IHRvdGFsID0gaW5zY3JpcHRpb25JbnB1dC52YWx1ZTtcblxuICBjb25zdCBjb25zdHJhaW50czogQ29uc3RyYWludHMgPSB7IC4uLnNlYXJjaCwgc2F0UG9zLCB0b3RhbCB9O1xuXG4gIGNvbnN0IHN0YXJ0Q2hhbmdlT3V0cHV0ID0gZ2V0U3RhcnRDaGFuZ2VPdXRwdXQoY29uc3RyYWludHMpO1xuICBpZiAoc3RhcnRDaGFuZ2VPdXRwdXQgPT09IG51bGwpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgY29uc3QgaW5zY3JpcHRpb25PdXRwdXQgPSBnZXRJbnNjcmlwdGlvbk91dHB1dChjb25zdHJhaW50cywgc3RhcnRDaGFuZ2VPdXRwdXQpO1xuICBpZiAoaW5zY3JpcHRpb25PdXRwdXQgPT09IG51bGwpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgY29uc3QgZW5kQ2hhbmdlT3V0cHV0ID0gZ2V0RW5kQ2hhbmdlT3V0cHV0KGNvbnN0cmFpbnRzLCBzdGFydENoYW5nZU91dHB1dCwgaW5zY3JpcHRpb25PdXRwdXQpO1xuICBpZiAoZW5kQ2hhbmdlT3V0cHV0ID09PSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGNvbnN0IGZlZU91dHB1dCA9IGdldEZlZU91dHB1dChjb25zdHJhaW50cywgc3RhcnRDaGFuZ2VPdXRwdXQsIGluc2NyaXB0aW9uT3V0cHV0LCBlbmRDaGFuZ2VPdXRwdXQpO1xuICBpZiAoZmVlT3V0cHV0ID09PSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGNvbnN0IHJlc3VsdCA9IHRvUGFyYW1ldGVycyhzdGFydENoYW5nZU91dHB1dCwgaW5zY3JpcHRpb25PdXRwdXQsIGVuZENoYW5nZU91dHB1dCwgZmVlT3V0cHV0KTtcbiAgaWYgKCFjaGVjayhjb25zdHJhaW50cywgaW5zY3JpcHRpb25JbnB1dCwgcmVzdWx0KSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCByZXN1bHRgKTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuIl19
247
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3V0cHV0TGF5b3V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL091dHB1dExheW91dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWdHRzs7QUFrQ0gsMEJBRUM7QUFFRCxvQ0FZQztBQVlELHdEQVVDO0FBcUdELDRDQXFDQztBQTlNRCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdkIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBRXRCLFNBQVMsR0FBRyxDQUFDLENBQVMsRUFBRSxDQUFTO0lBQy9CLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdkIsQ0FBQztBQUVELFNBQVMsR0FBRyxDQUFDLENBQVMsRUFBRSxDQUFTO0lBQy9CLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdkIsQ0FBQztBQUVELFNBQVMsR0FBRyxDQUFDLEdBQWE7SUFDeEIsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUMzQyxDQUFDO0FBZ0JELCtDQUErQztBQUMvQyxTQUFnQixPQUFPLENBQUksQ0FBZ0I7SUFDekMsT0FBTyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUN2RixDQUFDO0FBRUQs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QU0sS0FBSyxHQUFHLGdCQUFnQixDQUFDLEtBQUssQ0FBQztJQUVyQyxNQUFNLFdBQVcsR0FBZ0IsRUFBRSxHQUFHLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFFOUQsTUFBTSxpQkFBaUIsR0FBRyxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM1RCxJQUFJLGlCQUFpQixLQUFLLElBQUksRUFBRSxDQUFDO1FBQy9CLE9BQU87SUFDVCxDQUFDO0lBQ0QsTUFBTSxpQkFBaUIsR0FBRyxvQkFBb0IsQ0FBQyxXQUFXLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztJQUMvRSxJQUFJLGlCQUFpQixLQUFLLElBQUksRUFBRSxDQUFDO1FBQy9CLE9BQU87SUFDVCxDQUFDO0lBQ0QsTUFBTSxlQUFlLEdBQUcsa0JBQWtCLENBQUMsV0FBVyxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixDQUFDLENBQUM7SUFDOUYsSUFBSSxlQUFlLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDN0IsT0FBTztJQUNULENBQUM7SUFDRCxNQUFNLFNBQVMsR0FBRyxZQUFZLENBQUMsV0FBVyxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQ25HLElBQUksU0FBUyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ3ZCLE9BQU87SUFDVCxDQUFDO0lBQ0QsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUM5RixJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ2xELE1BQU0sSUFBSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG5cblRoaXMgZmlsZSBjb250YWlucyBjb2RlIGZvciBjcmVhdGluZyBhbiBvdXRwdXQgbGF5b3V0cyBmb3IgdHJhbnNhY3Rpb25zIHRoYXQgcGFzcyBvbiBpbnNjcmlwdGlvbnMuXG5cbldoZW4gcGFzc2luZyBvbiBhbiBpbnNjcmlwdGlvbiwgd2Ugd2FudCB0byBzYXRpc2Z5IGEgZmV3IGNvbnN0cmFpbnRzOlxuXG4qIEFsbCBvdXRwdXRzIHNob3VsZCBiZSBsYXJnZXIgdGhhbiBhIG1pbmltYWwgdmFsdWUgKGR1c3QgbGltaXQpXG4qIFRoZSBzdW0gb2YgYWxsIG91dHB1dCB2YWx1ZXMgbmVlZHMgdG8gYmUgbGVzcyB0aGFuIHRoZSBpbnB1dCB0byBjb3ZlciB0aGUgdHJhbnNhY3Rpb24gZmVlLlxuKiBUaGUgb3V0cHV0IGNvbnRhaW5pbmcgdGhlIGluc2NyaXB0aW9uIHNob3VsZCBiZSBhcyBzbWFsbCBhcyBwb3NzaWJsZSwgYnV0IGxhcmdlIGVub3VnaCB0b1xuICBjb250YWluIHRoZSBpbnNjcmlwdGlvbi5cblxuVG8ga2VlcCB0aGUgaW5zY3JpcHRpb24gb3V0cHV0IHNtYWxsLCB3ZSBjYW4gcGFkIHRoZSBzYXRvc2hpIHJhbmdlIHByZWNlZGluZyBhbmQgZm9sbG93aW5nIHRoZSByYW5nZVxud2l0aCBjaGFuZ2Ugb3V0cHV0cywgd2hpY2ggaGF2ZSBhIG1pbmltYWwgc2l6ZSBhbmQgaW5jdXIgYSBmZWUgY29zdC5cblxuXG5Ccm9hZGx5IHNwZWFraW5nLCB0aGVyZSBhcmUgZm91ciBzY2VuYXJpb3M6XG5cbigxKSBTbWFsbCBpbnNjcmlwdGlvbiBpbnB1dCB0aGF0IGhhcyBqdXN0IGVub3VnaCB2YWx1ZSB0byBwYXkgZm9yIGZlZSBhbmQgYSBzaW5nbGUgaW5zY3JpcHRpb25cbiAgICBvdXRwdXQgKHUwKS4gTm8gcGFkZGluZyBvdXRwdXRzLlxuICAgIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUrOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkFxuICAgIOKUgiAgICAgICAg4pSCIHUwICAgICDilIJcbiAgICDilIIgICAgICByIOKUvCAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilJzilIDilIDilIDilIDilIDilIDilIDilIDilJhcbiAgICDilIIgICAgICAgIOKUgiBmZWVcbiAgICDilJTilIDilIDilIDilIDilIDilIDilIDilIDilJhcblxuXG4oMikgTGFyZ2UgaW5zY3JpcHRpb24gaW5wdXQgd2l0aCBpbnNjcmlwdGlvbiBjbG9zZSB0byBzdGFydCBvZiBpbnB1dC5cbiAgICBJbnNjcmlwdGlvbiBvdXRwdXQgZm9sbG93ZWQgYnkgY2hhbmdlIG91dHB1dCAodTEpIHBhZGRpbmcgdGhlIHJlbWFpbmluZyB2YWx1ZS5cblxuICAgIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUrOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkFxuICAgIOKUgiAgICAgICAg4pSCIHUwICAgICDilIJcbiAgICDilIIgICAgICByIOKUvCAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilJzilIDilIDilIDilIDilIDilIDilIDilIDilKRcbiAgICDilIIgICAgICAgIOKUgiB1MSAgICAg4pSCXG4gICAg4pSCICAgICAgICDilIIgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSCICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilIIgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSCICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilIIgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSCICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilJzilIDilIDilIDilIDilIDilIDilIDilIDilJhcbiAgICDilIIgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSCIGZlZVxuICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYXG5cblxuKDMpIExhcmdlIGluc2NyaXB0aW9uIGlucHV0IHdpdGggaW5zY3JpcHRpb24gY2xvc2UgdG8gZW5kIG9mIGlucHV0LlxuICAgIENoYW5nZSBvdXRwdXQgcGFkZGluZyBzdGFydCBmb2xsb3dlZCBieSBpbnNjcmlwdGlvbiBvdXRwdXQuXG5cbiAgICDilIzilIDilIDilIDilIDilIDilIDilIDilIDilKzilIDilIDilIDilIDilIDilIDilIDilIDilJBcbiAgICDilIIgICAgICAgIOKUgiB1MCAgICAg4pSCXG4gICAg4pSCICAgICAgICDilIIgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSCICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilIIgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSCICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilIIgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSCICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUnOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUpFxuICAgIOKUgiAgICAgIHIg4pS8ICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUgiB1MSAgICAg4pSCXG4gICAg4pSCICAgICAgICDilJzilIDilIDilIDilIDilIDilIDilIDilIDilJhcbiAgICDilIIgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSCIGZlZVxuICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYXG5cblxuKDQpIExhcmdlIGluc2NyaXB0aW9uIGlucHV0IHdpdGggaW5zY3JpcHRpb24gaW4gdGhlIG1pZGRsZS5cbiAgICBJbnNjcmlwdGlvbiBpbnB1dCAodTEpIHdpdGggcGFkZGluZyBvbiBib3RoIHNpZGVzICh1MCBhbmQgdTIpXG5cbiAgICDilIzilIDilIDilIDilIDilIDilIDilIDilIDilKzilIDilIDilIDilIDilIDilIDilIDilIDilJBcbiAgICDilIIgICAgICAgIOKUgiB1MCAgICAg4pSCXG4gICAg4pSCICAgICAgICDilIIgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSCICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilIIgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSc4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSkXG4gICAg4pSCICAgICAgICDilIIgdTEgICAgIOKUglxuICAgIOKUgiAgICAgIHIg4pS8ICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUnOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUpFxuICAgIOKUgiAgICAgICAg4pSCIHUyICAgICDilIJcbiAgICDilIIgICAgICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilIIgICAgICAgIOKUglxuICAgIOKUgiAgICAgICAg4pSCICAgICAgICDilIJcbiAgICDilIIgICAgICAgIOKUnOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUmFxuICAgIOKUgiAgICAgICAg4pSCXG4gICAg4pSCICAgICAgICDilIIgZmVlXG4gICAg4pSCICAgICAgICDilIJcbiAgICDilJTilIDilIDilIDilIDilIDilIDilIDilIDilJhcbiAqL1xuXG5pbXBvcnQgeyBPcmRPdXRwdXQgfSBmcm9tICcuL09yZE91dHB1dCc7XG5cbmNvbnN0IFpFUk8gPSBCaWdJbnQoMCk7XG5jb25zdCBPTkUgPSBCaWdJbnQoMSk7XG5cbmZ1bmN0aW9uIG1heChhOiBiaWdpbnQsIGI6IGJpZ2ludCk6IGJpZ2ludCB7XG4gIHJldHVybiBhIDwgYiA/IGIgOiBhO1xufVxuXG5mdW5jdGlvbiBtaW4oYTogYmlnaW50LCBiOiBiaWdpbnQpOiBiaWdpbnQge1xuICByZXR1cm4gYSA8IGIgPyBhIDogYjtcbn1cblxuZnVuY3Rpb24gc3VtKGFycjogYmlnaW50W10pOiBiaWdpbnQge1xuICByZXR1cm4gYXJyLnJlZHVjZSgoYSwgYikgPT4gYSArIGIsIFpFUk8pO1xufVxuXG4vKipcbiAqIEEgcmFuZ2UgY29uc3RyYWludFxuICovXG50eXBlIFBhcmFtZXRlcnM8VD4gPSB7XG4gIC8qKiBQYWRkaW5nIHByZWNlZGluZyB0aGUgaW5zY3JpcHRpb24gb3V0cHV0ICovXG4gIGZpcnN0Q2hhbmdlT3V0cHV0OiBUO1xuICAvKiogVGhlIGluc2NyaXB0aW9uIG91dHB1dCB0aGF0IHdpbGwgaW5oZXJpdCB0aGUgaW5wdXQgaW5zY3JpcHRpb24gKi9cbiAgaW5zY3JpcHRpb25PdXRwdXQ6IFQ7XG4gIC8qKiBQYWRkaW5nIGZvbGxvd2luZyB0aGUgaW5zY3JpcHRpb24gb3V0cHV0ICovXG4gIHNlY29uZENoYW5nZU91dHB1dDogVDtcbiAgLyoqIE5vdCBhIHJlYWwgb3V0cHV0LCB1c2VkIG9ubHkgdG8gc2ltcGxpZnkgY2FsY3VsYXRpb25zICovXG4gIGZlZU91dHB1dDogVDtcbn07XG5cbi8qKiBAcmV0dXJuIGNhbm9uaWNhbCBzZXF1ZW5jZSBvZiBwYXJhbWV0ZXJzICovXG5leHBvcnQgZnVuY3Rpb24gdG9BcnJheTxUPihwOiBQYXJhbWV0ZXJzPFQ+KTogW1QsIFQsIFQsIFRdIHtcbiAgcmV0dXJuIFtwLmZpcnN0Q2hhbmdlT3V0cHV0LCBwLmluc2NyaXB0aW9uT3V0cHV0LCBwLnNlY29uZENoYW5nZU91dHB1dCwgcC5mZWVPdXRwdXRdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdG9QYXJhbWV0ZXJzPFQ+KFxuICBmaXJzdENoYW5nZU91dHB1dDogVCxcbiAgaW5zY3JpcHRpb25PdXRwdXQ6IFQsXG4gIHNlY29uZENoYW5nZU91dHB1dDogVCxcbiAgZmVlT3V0cHV0OiBUXG4pOiBQYXJhbWV0ZXJzPFQ+IHtcbiAgcmV0dXJuIHtcbiAgICBmaXJzdENoYW5nZU91dHB1dCxcbiAgICBpbnNjcmlwdGlvbk91dHB1dCxcbiAgICBzZWNvbmRDaGFuZ2VPdXRwdXQsXG4gICAgZmVlT3V0cHV0LFxuICB9O1xufVxuXG4vKiogQSBmaW5pc2hlZCBvdXRwdXQgbGF5b3V0ICovXG5leHBvcnQgdHlwZSBPdXRwdXRMYXlvdXQgPSBQYXJhbWV0ZXJzPGJpZ2ludD47XG5cbi8qKlxuICogVHJhbnNsYXRlcyBhIGxheW91dCBpbnRvIE9yZE91dHB1dHMuIEFic2VudCBvdXRwdXRzIGFyZSBzZXQgdG8gYG51bGxgLlxuICpcbiAqIEBwYXJhbSBpbnNjcmlwdGlvbklucHV0XG4gKiBAcGFyYW0gbGF5b3V0XG4gKiBAcmV0dXJuIE9yZE91dHB1dHMgZm9yIGxheW91dFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0T3JkT3V0cHV0c0ZvckxheW91dChcbiAgaW5zY3JpcHRpb25JbnB1dDogT3JkT3V0cHV0LFxuICBsYXlvdXQ6IE91dHB1dExheW91dFxuKTogUGFyYW1ldGVyczxPcmRPdXRwdXQgfCBudWxsPiB7XG4gIGNvbnN0IG91dHB1dHMgPSBpbnNjcmlwdGlvbklucHV0LnNwbGl0QWxsV2l0aFBhcmFtcyh0b0FycmF5KGxheW91dCksIHsgZXhhY3Q6IHRydWUsIGFsbG93WmVybzogdHJ1ZSB9KTtcbiAgaWYgKG91dHB1dHMubGVuZ3RoICE9PSA0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGB1bmV4cGVjdGVkIHJlc3VsdGApO1xuICB9XG4gIHR5cGUgVCA9IE9yZE91dHB1dCB8IG51bGw7XG4gIHJldHVybiB0b1BhcmFtZXRlcnMoLi4uKG91dHB1dHMgYXMgW1QsIFQsIFQsIFRdKSk7XG59XG5cbi8qKlxuICogQHBhcmFtIGNvbnN0cmFpbnRzXG4gKiBAcGFyYW0gaW5zY3JpcHRpb25JbnB1dFxuICogQHBhcmFtIGxheW91dFxuICogQHJldHVybiB0cnVlIGlmZiBsYXlvdXQgc2F0aXNmaWVzIGNvbnN0cmFpbnRzXG4gKi9cbmZ1bmN0aW9uIGNoZWNrKGNvbnN0cmFpbnRzOiBDb25zdHJhaW50cywgaW5zY3JpcHRpb25JbnB1dDogT3JkT3V0cHV0LCBsYXlvdXQ6IE91dHB1dExheW91dCk6IGJvb2xlYW4ge1xuICBpZiAoXG4gICAgKGxheW91dC5maXJzdENoYW5nZU91dHB1dCA9PT0gWkVSTyB8fCBjb25zdHJhaW50cy5taW5DaGFuZ2VPdXRwdXQgPD0gbGF5b3V0LmZpcnN0Q2hhbmdlT3V0cHV0KSAmJlxuICAgIChsYXlvdXQuc2Vjb25kQ2hhbmdlT3V0cHV0ID09PSBaRVJPIHx8IGNvbnN0cmFpbnRzLm1pbkNoYW5nZU91dHB1dCA8PSBsYXlvdXQuc2Vjb25kQ2hhbmdlT3V0cHV0KSAmJlxuICAgIGNvbnN0cmFpbnRzLm1pbkluc2NyaXB0aW9uT3V0cHV0IDw9IGxheW91dC5pbnNjcmlwdGlvbk91dHB1dCAmJlxuICAgIGxheW91dC5pbnNjcmlwdGlvbk91dHB1dCA8PSBjb25zdHJhaW50cy5tYXhJbnNjcmlwdGlvbk91dHB1dCAmJlxuICAgIGdldEZlZUZvck91dHB1dHMoY29uc3RyYWludHMsIFtsYXlvdXQuZmlyc3RDaGFuZ2VPdXRwdXQsIGxheW91dC5pbnNjcmlwdGlvbk91dHB1dCwgbGF5b3V0LnNlY29uZENoYW5nZU91dHB1dF0pIDw9XG4gICAgICBsYXlvdXQuZmVlT3V0cHV0ICYmXG4gICAgc3VtKHRvQXJyYXkobGF5b3V0KSkgPT09IGluc2NyaXB0aW9uSW5wdXQudmFsdWVcbiAgKSB7XG4gICAgLyogbWFrZSBzdXJlIGluc2NyaXB0aW9uIGFjdHVhbGx5IGxpZXMgb24gdGhlIGluc2NyaXB0aW9uT3V0cHV0ICovXG4gICAgY29uc3Qgb3V0cHV0cyA9IGdldE9yZE91dHB1dHNGb3JMYXlvdXQoaW5zY3JpcHRpb25JbnB1dCwgbGF5b3V0KTtcbiAgICByZXR1cm4gb3V0cHV0cy5pbnNjcmlwdGlvbk91dHB1dD8ub3JkaW5hbHMubGVuZ3RoID09PSAxO1xuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG4vKipcbiAqIEhpZ2gtbGV2ZWwgY29uc3RyYWludHMgZm9yIG91dHB1dCBsYXlvdXRcbiAqL1xuZXhwb3J0IHR5cGUgQ29uc3RyYWludHMgPSB7XG4gIG1pbkNoYW5nZU91dHB1dDogYmlnaW50O1xuICBtaW5JbnNjcmlwdGlvbk91dHB1dDogYmlnaW50O1xuICBtYXhJbnNjcmlwdGlvbk91dHB1dDogYmlnaW50O1xuICBmZWVGaXhlZDogYmlnaW50O1xuICBmZWVQZXJPdXRwdXQ6IGJpZ2ludDtcbiAgc2F0UG9zOiBiaWdpbnQ7XG4gIHRvdGFsOiBiaWdpbnQ7XG59O1xuXG5mdW5jdGlvbiBnZXRGZWVGb3JPdXRwdXRzKHA6IHsgZmVlUGVyT3V0cHV0OiBiaWdpbnQ7IGZlZUZpeGVkOiBiaWdpbnQgfSwgb3V0cHV0czogYmlnaW50W10pOiBiaWdpbnQge1xuICByZXR1cm4gb3V0cHV0cy5yZWR1Y2UoKHN1bSwgb1ZhbHVlKTogYmlnaW50ID0+IHN1bSArIChvVmFsdWUgPT09IFpFUk8gPyBaRVJPIDogcC5mZWVQZXJPdXRwdXQpLCBwLmZlZUZpeGVkKTtcbn1cbmZ1bmN0aW9uIGdldFN0YXJ0Q2hhbmdlT3V0cHV0KGM6IENvbnN0cmFpbnRzKTogYmlnaW50IHwgbnVsbCB7XG4gIC8vIHdlIGRvbid0IG5lZWQgYSBjaGFuZ2UgcGFkZGluZyBvdXRwdXRcbiAgaWYgKGMuc2F0UG9zIDwgYy5tYXhJbnNjcmlwdGlvbk91dHB1dCkge1xuICAgIHJldHVybiBaRVJPO1xuICB9XG4gIGlmIChjLm1pbkNoYW5nZU91dHB1dCA8PSBjLnNhdFBvcykge1xuICAgIHJldHVybiBjLnNhdFBvcztcbiAgfVxuICByZXR1cm4gbnVsbDtcbn1cblxuZnVuY3Rpb24gZ2V0SW5zY3JpcHRpb25PdXRwdXQoYzogQ29uc3RyYWludHMsIHN0YXJ0Q2hhbmdlT3V0cHV0OiBiaWdpbnQpOiBiaWdpbnQgfCBudWxsIHtcbiAgY29uc3QgcmVzdWx0ID0gbWluKGMubWF4SW5zY3JpcHRpb25PdXRwdXQsIG1heChjLm1pbkluc2NyaXB0aW9uT3V0cHV0LCBjLnNhdFBvcyAtIHN0YXJ0Q2hhbmdlT3V0cHV0ICsgT05FKSk7XG4gIGlmIChjLnNhdFBvcyA8IHN0YXJ0Q2hhbmdlT3V0cHV0IHx8IHN0YXJ0Q2hhbmdlT3V0cHV0ICsgcmVzdWx0IDwgYy5zYXRQb3MpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICAvLyBpZiBpcyBub3Qgd29ydGggY3JlYXRpbmcgYW4gZW5kIGNoYW5nZSBvdXRwdXQsIGxldCdzIG1heGltaXplIHRoZSBpbnNjcmlwdGlvbiBvdXRwdXRcbiAgaWYgKGdldEVuZENoYW5nZU91dHB1dChjLCBzdGFydENoYW5nZU91dHB1dCwgcmVzdWx0KSA9PT0gWkVSTykge1xuICAgIGNvbnN0IHJlbWFpbmRlciA9IGMudG90YWwgLSBzdGFydENoYW5nZU91dHB1dCAtIGdldEZlZUZvck91dHB1dHMoYywgW3N0YXJ0Q2hhbmdlT3V0cHV0LCByZXN1bHRdKTtcbiAgICByZXR1cm4gbWluKHJlbWFpbmRlciwgYy5tYXhJbnNjcmlwdGlvbk91dHB1dCk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZnVuY3Rpb24gZ2V0RW5kQ2hhbmdlT3V0cHV0KGM6IENvbnN0cmFpbnRzLCBzdGFydENoYW5nZU91dHB1dDogYmlnaW50LCBpbnNjcmlwdGlvbk91dHB1dDogYmlnaW50KTogYmlnaW50IHwgbnVsbCB7XG4gIGNvbnN0IHJlbWFpbmRlciA9IGMudG90YWwgLSBzdW0oW3N0YXJ0Q2hhbmdlT3V0cHV0LCBpbnNjcmlwdGlvbk91dHB1dF0pO1xuICBjb25zdCBtaW5GZWVXaXRob3V0U2Vjb25kT3V0cHV0ID0gZ2V0RmVlRm9yT3V0cHV0cyhjLCBbc3RhcnRDaGFuZ2VPdXRwdXQsIGluc2NyaXB0aW9uT3V0cHV0XSk7XG4gIGNvbnN0IG1pbkZlZVdpdGhTZWNvbmRPdXRwdXQgPSBnZXRGZWVGb3JPdXRwdXRzKGMsIFtzdGFydENoYW5nZU91dHB1dCwgaW5zY3JpcHRpb25PdXRwdXQsIGMubWluQ2hhbmdlT3V0cHV0XSk7XG4gIGlmIChyZW1haW5kZXIgPCBtaW5GZWVXaXRob3V0U2Vjb25kT3V0cHV0KSB7XG4gICAgLy8gV2UgY2Fubm90IGV2ZW4gcGF5IHRoZSBmZWUgZm9yIHRoZSBvdXRwdXQocykgd2UgaGF2ZSBzbyBmYXIuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgaWYgKHJlbWFpbmRlciAtIG1pbkZlZVdpdGhTZWNvbmRPdXRwdXQgPCBjLm1pbkNoYW5nZU91dHB1dCkge1xuICAgIC8vIFRoZSByZW1haW5kZXIgaXMgdG9vIHNtYWxsIHRvIHBheSBmb3IgdGhlIGVuZCBjaGFuZ2Ugb3V0cHV0LiBMZXQncyBza2lwIGl0IGFuZCBwYXkgYSBoaWdoZXIgZmVlLlxuICAgIHJldHVybiBaRVJPO1xuICB9XG4gIC8vIGxldCdzIHVzZSBhcyBtdWNoIGFzIHdlIGNhbiBmb3IgZmVlIHdoaWxlIGxlYXZpbmcgZW5vdWdoIGZvciBmZWVcbiAgcmV0dXJuIHJlbWFpbmRlciAtIG1pbkZlZVdpdGhTZWNvbmRPdXRwdXQ7XG59XG5cbmZ1bmN0aW9uIGdldEZlZU91dHB1dChcbiAgYzogQ29uc3RyYWludHMsXG4gIHN0YXJ0Q2hhbmdlT3V0cHV0OiBiaWdpbnQsXG4gIGluc2NyaXB0aW9uT3V0cHV0OiBiaWdpbnQsXG4gIGVuZENoYW5nZU91dHB1dDogYmlnaW50XG4pOiBiaWdpbnQgfCBudWxsIHtcbiAgY29uc3QgbWluRmVlID0gZ2V0RmVlRm9yT3V0cHV0cyhjLCBbc3RhcnRDaGFuZ2VPdXRwdXQsIGluc2NyaXB0aW9uT3V0cHV0LCBlbmRDaGFuZ2VPdXRwdXRdKTtcbiAgY29uc3QgcmVtYWluZGVyID0gYy50b3RhbCAtIHN1bShbc3RhcnRDaGFuZ2VPdXRwdXQsIGluc2NyaXB0aW9uT3V0cHV0LCBlbmRDaGFuZ2VPdXRwdXRdKTtcbiAgaWYgKHJlbWFpbmRlciA8IG1pbkZlZSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIHJldHVybiByZW1haW5kZXI7XG59XG5cbi8qKlxuICogQHBhcmFtIGluc2NyaXB0aW9uSW5wdXRcbiAqIEBwYXJhbSBzZWFyY2hcbiAqIEByZXR1cm4gYSBzb2x1dGlvbiB0aGF0IHNhdGlzZmllcyBjb25zdHJhaW50cy4gSWYgbm8gc29sdXRpb24gY2FuIGJlIGZvdW5kLCByZXR1cm4gYHVuZGVmaW5lZGAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kT3V0cHV0TGF5b3V0KFxuICBpbnNjcmlwdGlvbklucHV0OiBPcmRPdXRwdXQsXG4gIHNlYXJjaDogT21pdDxDb25zdHJhaW50cywgJ3NhdFBvcycgfCAndG90YWwnPlxuKTogT3V0cHV0TGF5b3V0IHwgdW5kZWZpbmVkIHtcbiAgaWYgKGluc2NyaXB0aW9uSW5wdXQub3JkaW5hbHMubGVuZ3RoICE9PSAxKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGB1bmV4cGVjdGVkIG9yZGluYWwgY291bnQgJHtpbnNjcmlwdGlvbklucHV0Lm9yZGluYWxzLmxlbmd0aH1gKTtcbiAgfVxuICBpZiAoaW5zY3JpcHRpb25JbnB1dC5vcmRpbmFsc1swXS5zaXplKCkgIT09IE9ORSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgb25seSBzaW5nbGUtc2F0b3NoaSBpbnNjcmlwdGlvbnMgYXJlIHN1cHBvcnRlZGApO1xuICB9XG5cbiAgY29uc3Qgc2F0UG9zID0gaW5zY3JpcHRpb25JbnB1dC5vcmRpbmFsc1swXS5zdGFydDtcbiAgY29uc3QgdG90YWwgPSBpbnNjcmlwdGlvbklucHV0LnZhbHVlO1xuXG4gIGNvbnN0IGNvbnN0cmFpbnRzOiBDb25zdHJhaW50cyA9IHsgLi4uc2VhcmNoLCBzYXRQb3MsIHRvdGFsIH07XG5cbiAgY29uc3Qgc3RhcnRDaGFuZ2VPdXRwdXQgPSBnZXRTdGFydENoYW5nZU91dHB1dChjb25zdHJhaW50cyk7XG4gIGlmIChzdGFydENoYW5nZU91dHB1dCA9PT0gbnVsbCkge1xuICAgIHJldHVybjtcbiAgfVxuICBjb25zdCBpbnNjcmlwdGlvbk91dHB1dCA9IGdldEluc2NyaXB0aW9uT3V0cHV0KGNvbnN0cmFpbnRzLCBzdGFydENoYW5nZU91dHB1dCk7XG4gIGlmIChpbnNjcmlwdGlvbk91dHB1dCA9PT0gbnVsbCkge1xuICAgIHJldHVybjtcbiAgfVxuICBjb25zdCBlbmRDaGFuZ2VPdXRwdXQgPSBnZXRFbmRDaGFuZ2VPdXRwdXQoY29uc3RyYWludHMsIHN0YXJ0Q2hhbmdlT3V0cHV0LCBpbnNjcmlwdGlvbk91dHB1dCk7XG4gIGlmIChlbmRDaGFuZ2VPdXRwdXQgPT09IG51bGwpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgY29uc3QgZmVlT3V0cHV0ID0gZ2V0RmVlT3V0cHV0KGNvbnN0cmFpbnRzLCBzdGFydENoYW5nZU91dHB1dCwgaW5zY3JpcHRpb25PdXRwdXQsIGVuZENoYW5nZU91dHB1dCk7XG4gIGlmIChmZWVPdXRwdXQgPT09IG51bGwpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgY29uc3QgcmVzdWx0ID0gdG9QYXJhbWV0ZXJzKHN0YXJ0Q2hhbmdlT3V0cHV0LCBpbnNjcmlwdGlvbk91dHB1dCwgZW5kQ2hhbmdlT3V0cHV0LCBmZWVPdXRwdXQpO1xuICBpZiAoIWNoZWNrKGNvbnN0cmFpbnRzLCBpbnNjcmlwdGlvbklucHV0LCByZXN1bHQpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIHJlc3VsdGApO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG4iXX0=
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isSatPoint = exports.formatSatPoint = exports.parseSatPoint = void 0;
3
+ exports.parseSatPoint = parseSatPoint;
4
+ exports.formatSatPoint = formatSatPoint;
5
+ exports.isSatPoint = isSatPoint;
4
6
  /*
5
7
 
6
8
  https://github.com/casey/ord/blob/master/bip.mediawiki#terminology-and-notation
@@ -31,11 +33,9 @@ function parseSatPoint(p) {
31
33
  offset,
32
34
  };
33
35
  }
34
- exports.parseSatPoint = parseSatPoint;
35
36
  function formatSatPoint(p) {
36
37
  return `${p.txid}:${p.vout}:${p.offset}`;
37
38
  }
38
- exports.formatSatPoint = formatSatPoint;
39
39
  function isSatPoint(v) {
40
40
  try {
41
41
  parseSatPoint(v);
@@ -45,5 +45,4 @@ function isSatPoint(v) {
45
45
  return false;
46
46
  }
47
47
  }
48
- exports.isSatPoint = isSatPoint;
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2F0UG9pbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvU2F0UG9pbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7Ozs7Ozs7Ozs7RUFVRTtBQUNGLG1EQUE2QztBQUk3QyxTQUFnQixhQUFhLENBQUMsQ0FBVztJQUN2QyxNQUFNLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzNCLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFDdEIsTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO0tBQ2xEO0lBQ0QsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQ3RDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNqQyxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUUsS0FBSyxTQUFTLEVBQUU7UUFDbkMsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO0tBQ3BEO0lBQ0QsSUFBSSxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQ2QsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO0tBQ3JEO0lBQ0QsT0FBTztRQUNMLEdBQUcsZ0JBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlDLE1BQU07S0FDUCxDQUFDO0FBQ0osQ0FBQztBQWpCRCxzQ0FpQkM7QUFFRCxTQUFnQixjQUFjLENBQUMsQ0FBaUQ7SUFDOUUsT0FBTyxHQUFHLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFXLENBQUM7QUFDcEQsQ0FBQztBQUZELHdDQUVDO0FBRUQsU0FBZ0IsVUFBVSxDQUFDLENBQVM7SUFDbEMsSUFBSTtRQUNGLGFBQWEsQ0FBQyxDQUFhLENBQUMsQ0FBQztRQUM3QixPQUFPLElBQUksQ0FBQztLQUNiO0lBQUMsTUFBTTtRQUNOLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7QUFDSCxDQUFDO0FBUEQsZ0NBT0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuXG5odHRwczovL2dpdGh1Yi5jb20vY2FzZXkvb3JkL2Jsb2IvbWFzdGVyL2JpcC5tZWRpYXdpa2kjdGVybWlub2xvZ3ktYW5kLW5vdGF0aW9uXG5cbj4gQSBzYXRwb2ludCBtYXkgYmUgdXNlZCB0byBpbmRpY2F0ZSB0aGUgbG9jYXRpb24gb2YgYSBzYXQgd2l0aGluIGFuIG91dHB1dC5cbj4gQSBzYXRwb2ludCBjb25zaXN0cyBvZiBhbiBvdXRwb2ludCwgaS5lLiwgYSB0cmFuc2FjdGlvbiBJRCBhbmQgb3V0cHV0IGluZGV4LCB3aXRoIHRoZSBhZGRpdGlvbiBvZlxuPiB0aGUgb2Zmc2V0IG9mIHRoZSBvcmRpbmFsIHdpdGhpbiB0aGF0IG91dHB1dC4gRm9yIGV4YW1wbGUsIGlmIHRoZSBzYXQgaW4gcXVlc3Rpb24gaXMgYXQgb2Zmc2V0IDZcbj4gaW4gdGhlIGZpcnN0IG91dHB1dCBvZiBhIHRyYW5zYWN0aW9uLCBpdHMgc2F0cG9pbnQgaXM6XG4+IGA2ODBkZjFlNGQ0MzAxNjU3MWU1MDRiMGIxNDJlZTQzYzVjMGI4MzM5OGE5N2JkY2ZkOTRlYTZmMjg3MzIyZDIyOjA6NmBcblxuKi9cbmltcG9ydCB7IGJpdGdvIH0gZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuXG5leHBvcnQgdHlwZSBTYXRQb2ludCA9IGAke3N0cmluZ306JHtudW1iZXJ9OiR7YmlnaW50fWA7XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVNhdFBvaW50KHA6IFNhdFBvaW50KTogeyB0eGlkOiBzdHJpbmc7IHZvdXQ6IG51bWJlcjsgb2Zmc2V0OiBiaWdpbnQgfSB7XG4gIGNvbnN0IHBhcnRzID0gcC5zcGxpdCgnOicpO1xuICBpZiAocGFydHMubGVuZ3RoICE9PSAzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBleHBlY3RlZCBmb3JtYXQgdHhpZDp2b3V0OnNhdGApO1xuICB9XG4gIGNvbnN0IFt0eGlkLCB2b3V0LCBvZmZzZXRTdHJdID0gcGFydHM7XG4gIGNvbnN0IG9mZnNldCA9IEJpZ0ludChvZmZzZXRTdHIpO1xuICBpZiAob2Zmc2V0LnRvU3RyaW5nKCkgIT09IG9mZnNldFN0cikge1xuICAgIHRocm93IG5ldyBFcnJvcihgU2F0UG9pbnQgb2Zmc2V0IG11c3QgYmUgYmFzZS0xMGApO1xuICB9XG4gIGlmIChvZmZzZXQgPCAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBTYXRQb2ludCBvZmZzZXQgbXVzdCBiZSBwb3NpdGl2ZWApO1xuICB9XG4gIHJldHVybiB7XG4gICAgLi4uYml0Z28ucGFyc2VPdXRwdXRJZChbdHhpZCwgdm91dF0uam9pbignOicpKSxcbiAgICBvZmZzZXQsXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRTYXRQb2ludChwOiB7IHR4aWQ6IHN0cmluZzsgdm91dDogbnVtYmVyOyBvZmZzZXQ6IGJpZ2ludCB9KTogU2F0UG9pbnQge1xuICByZXR1cm4gYCR7cC50eGlkfToke3Audm91dH06JHtwLm9mZnNldH1gIGFzIGNvbnN0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNTYXRQb2ludCh2OiBzdHJpbmcpOiB2IGlzIFNhdFBvaW50IHtcbiAgdHJ5IHtcbiAgICBwYXJzZVNhdFBvaW50KHYgYXMgU2F0UG9pbnQpO1xuICAgIHJldHVybiB0cnVlO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ==
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2F0UG9pbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvU2F0UG9pbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFlQSxzQ0FpQkM7QUFFRCx3Q0FFQztBQUVELGdDQU9DO0FBN0NEOzs7Ozs7Ozs7O0VBVUU7QUFDRixtREFBNkM7QUFJN0MsU0FBZ0IsYUFBYSxDQUFDLENBQVc7SUFDdkMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMzQixJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDdkIsTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFDRCxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDdEMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2pDLElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ3BDLE1BQU0sSUFBSSxLQUFLLENBQUMsaUNBQWlDLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBQ0QsSUFBSSxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDZixNQUFNLElBQUksS0FBSyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUNELE9BQU87UUFDTCxHQUFHLGdCQUFLLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM5QyxNQUFNO0tBQ1AsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFnQixjQUFjLENBQUMsQ0FBaUQ7SUFDOUUsT0FBTyxHQUFHLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFXLENBQUM7QUFDcEQsQ0FBQztBQUVELFNBQWdCLFVBQVUsQ0FBQyxDQUFTO0lBQ2xDLElBQUksQ0FBQztRQUNILGFBQWEsQ0FBQyxDQUFhLENBQUMsQ0FBQztRQUM3QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcblxuaHR0cHM6Ly9naXRodWIuY29tL2Nhc2V5L29yZC9ibG9iL21hc3Rlci9iaXAubWVkaWF3aWtpI3Rlcm1pbm9sb2d5LWFuZC1ub3RhdGlvblxuXG4+IEEgc2F0cG9pbnQgbWF5IGJlIHVzZWQgdG8gaW5kaWNhdGUgdGhlIGxvY2F0aW9uIG9mIGEgc2F0IHdpdGhpbiBhbiBvdXRwdXQuXG4+IEEgc2F0cG9pbnQgY29uc2lzdHMgb2YgYW4gb3V0cG9pbnQsIGkuZS4sIGEgdHJhbnNhY3Rpb24gSUQgYW5kIG91dHB1dCBpbmRleCwgd2l0aCB0aGUgYWRkaXRpb24gb2Zcbj4gdGhlIG9mZnNldCBvZiB0aGUgb3JkaW5hbCB3aXRoaW4gdGhhdCBvdXRwdXQuIEZvciBleGFtcGxlLCBpZiB0aGUgc2F0IGluIHF1ZXN0aW9uIGlzIGF0IG9mZnNldCA2XG4+IGluIHRoZSBmaXJzdCBvdXRwdXQgb2YgYSB0cmFuc2FjdGlvbiwgaXRzIHNhdHBvaW50IGlzOlxuPiBgNjgwZGYxZTRkNDMwMTY1NzFlNTA0YjBiMTQyZWU0M2M1YzBiODMzOThhOTdiZGNmZDk0ZWE2ZjI4NzMyMmQyMjowOjZgXG5cbiovXG5pbXBvcnQgeyBiaXRnbyB9IGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcblxuZXhwb3J0IHR5cGUgU2F0UG9pbnQgPSBgJHtzdHJpbmd9OiR7bnVtYmVyfToke2JpZ2ludH1gO1xuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VTYXRQb2ludChwOiBTYXRQb2ludCk6IHsgdHhpZDogc3RyaW5nOyB2b3V0OiBudW1iZXI7IG9mZnNldDogYmlnaW50IH0ge1xuICBjb25zdCBwYXJ0cyA9IHAuc3BsaXQoJzonKTtcbiAgaWYgKHBhcnRzLmxlbmd0aCAhPT0gMykge1xuICAgIHRocm93IG5ldyBFcnJvcihgZXhwZWN0ZWQgZm9ybWF0IHR4aWQ6dm91dDpzYXRgKTtcbiAgfVxuICBjb25zdCBbdHhpZCwgdm91dCwgb2Zmc2V0U3RyXSA9IHBhcnRzO1xuICBjb25zdCBvZmZzZXQgPSBCaWdJbnQob2Zmc2V0U3RyKTtcbiAgaWYgKG9mZnNldC50b1N0cmluZygpICE9PSBvZmZzZXRTdHIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFNhdFBvaW50IG9mZnNldCBtdXN0IGJlIGJhc2UtMTBgKTtcbiAgfVxuICBpZiAob2Zmc2V0IDwgMCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgU2F0UG9pbnQgb2Zmc2V0IG11c3QgYmUgcG9zaXRpdmVgKTtcbiAgfVxuICByZXR1cm4ge1xuICAgIC4uLmJpdGdvLnBhcnNlT3V0cHV0SWQoW3R4aWQsIHZvdXRdLmpvaW4oJzonKSksXG4gICAgb2Zmc2V0LFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0U2F0UG9pbnQocDogeyB0eGlkOiBzdHJpbmc7IHZvdXQ6IG51bWJlcjsgb2Zmc2V0OiBiaWdpbnQgfSk6IFNhdFBvaW50IHtcbiAgcmV0dXJuIGAke3AudHhpZH06JHtwLnZvdXR9OiR7cC5vZmZzZXR9YCBhcyBjb25zdDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzU2F0UG9pbnQodjogc3RyaW5nKTogdiBpcyBTYXRQb2ludCB7XG4gIHRyeSB7XG4gICAgcGFyc2VTYXRQb2ludCh2IGFzIFNhdFBvaW50KTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iXX0=
@@ -55,4 +55,4 @@ class SatRange {
55
55
  }
56
56
  }
57
57
  exports.SatRange = SatRange;
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2F0UmFuZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvU2F0UmFuZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsTUFBYSxlQUFnQixTQUFRLEtBQUs7SUFDeEMsWUFBWSxPQUFlLEVBQVMsS0FBYSxFQUFTLEdBQVc7UUFDbkUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRG1CLFVBQUssR0FBTCxLQUFLLENBQVE7UUFBUyxRQUFHLEdBQUgsR0FBRyxDQUFRO0lBRXJFLENBQUM7Q0FDRjtBQUpELDBDQUlDO0FBRUQsU0FBUyxPQUFPLENBQUMsQ0FBb0I7SUFDbkMsT0FBTyxPQUFPLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3hELENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFhLFFBQVE7SUFDbkIsWUFBbUIsS0FBYSxFQUFTLEdBQVc7UUFBakMsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUFTLFFBQUcsR0FBSCxHQUFHLENBQVE7UUFDbEQsSUFBSSxLQUFLLEdBQUcsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLElBQUksR0FBRyxHQUFHLEtBQUssRUFBRTtZQUN2QyxNQUFNLElBQUksZUFBZSxDQUFDLHFCQUFxQixLQUFLLEtBQUssR0FBRyxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQzlFO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILFNBQVMsQ0FBQyxNQUFjO1FBQ3RCLE9BQU8sSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLEVBQUUsSUFBSSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQsb0RBQW9EO0lBQ3BELGNBQWMsQ0FBQyxLQUF3QjtRQUNyQyxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFO1lBQzdCLE9BQU8sS0FBSyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDO1NBQ2hDO1FBQ0QsT0FBTyxLQUFLLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxvREFBb0Q7SUFDcEQsWUFBWSxDQUFDLEtBQXdCO1FBQ25DLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsT0FBTyxJQUFJLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQzVELENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDM0IsT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQztTQUMxQjtRQUNELE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBSTtRQUNGLE9BQU8sSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzQyxDQUFDO0NBQ0Y7QUF4Q0QsNEJBd0NDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEludmFsaWRTYXRSYW5nZSBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nLCBwdWJsaWMgc3RhcnQ6IGJpZ2ludCwgcHVibGljIGVuZDogYmlnaW50KSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gdG9SYW5nZSh2OiBiaWdpbnQgfCBTYXRSYW5nZSk6IFNhdFJhbmdlIHtcbiAgcmV0dXJuIHR5cGVvZiB2ID09PSAnYmlnaW50JyA/IG5ldyBTYXRSYW5nZSh2LCB2KSA6IHY7XG59XG5cbi8qKlxuICogUmFuZ2Ugb2Ygc2F0b3NoaSwgaW5jbHVzaXZlLlxuICogSW5zY3JpcHRpb25zIGhhdmUgc3RhcnQgPT09IGVuZC5cbiAqL1xuZXhwb3J0IGNsYXNzIFNhdFJhbmdlIHtcbiAgY29uc3RydWN0b3IocHVibGljIHN0YXJ0OiBiaWdpbnQsIHB1YmxpYyBlbmQ6IGJpZ2ludCkge1xuICAgIGlmIChzdGFydCA8IDAgfHwgZW5kIDwgMCB8fCBlbmQgPCBzdGFydCkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRTYXRSYW5nZShgSW52YWxpZCBTYXRSYW5nZSBbJHtzdGFydH0sICR7ZW5kfV1gLCBzdGFydCwgZW5kKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIG9mZnNldFxuICAgKiBAcmV0dXJuIFNhdFJhbmdlIHdpdGggc3RhcnQgYW5kIGVuZCBzaGlmdGVkIGJ5IG9mZnNldFxuICAgKi9cbiAgc2hpZnRlZEJ5KG9mZnNldDogYmlnaW50KTogU2F0UmFuZ2Uge1xuICAgIHJldHVybiBuZXcgU2F0UmFuZ2UodGhpcy5zdGFydCArIG9mZnNldCwgdGhpcy5lbmQgKyBvZmZzZXQpO1xuICB9XG5cbiAgLyoqIEByZXR1cm4gdHJ1ZSBpZmYgdGhpcyBpbnRlcnNlY3RzIHdpdGggX290aGVyXyAqL1xuICBpbnRlcnNlY3RzV2l0aChvdGhlcjogYmlnaW50IHwgU2F0UmFuZ2UpOiBib29sZWFuIHtcbiAgICBvdGhlciA9IHRvUmFuZ2Uob3RoZXIpO1xuICAgIGlmICh0aGlzLnN0YXJ0IDw9IG90aGVyLnN0YXJ0KSB7XG4gICAgICByZXR1cm4gb3RoZXIuc3RhcnQgPD0gdGhpcy5lbmQ7XG4gICAgfVxuICAgIHJldHVybiBvdGhlci5pbnRlcnNlY3RzV2l0aCh0aGlzKTtcbiAgfVxuXG4gIC8qKiBAcmV0dXJuIHRydWUgaWZmIHRoaXMgaXMgc3VwZXJzZXQgb2YgX290aGVyXy4gKi9cbiAgaXNTdXBlcnNldE9mKG90aGVyOiBiaWdpbnQgfCBTYXRSYW5nZSk6IGJvb2xlYW4ge1xuICAgIG90aGVyID0gdG9SYW5nZShvdGhlcik7XG4gICAgcmV0dXJuIHRoaXMuc3RhcnQgPD0gb3RoZXIuc3RhcnQgJiYgb3RoZXIuZW5kIDw9IHRoaXMuZW5kO1xuICB9XG5cbiAgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5zdGFydCA9PT0gdGhpcy5lbmQpIHtcbiAgICAgIHJldHVybiBgWyR7dGhpcy5zdGFydH1dYDtcbiAgICB9XG4gICAgcmV0dXJuIGBbJHt0aGlzLnN0YXJ0fS4uJHt0aGlzLmVuZH1dYDtcbiAgfVxuXG4gIHNpemUoKTogYmlnaW50IHtcbiAgICByZXR1cm4gdGhpcy5lbmQgLSB0aGlzLnN0YXJ0ICsgQmlnSW50KDEpO1xuICB9XG59XG4iXX0=
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2F0UmFuZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvU2F0UmFuZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsTUFBYSxlQUFnQixTQUFRLEtBQUs7SUFDeEMsWUFBWSxPQUFlLEVBQVMsS0FBYSxFQUFTLEdBQVc7UUFDbkUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRG1CLFVBQUssR0FBTCxLQUFLLENBQVE7UUFBUyxRQUFHLEdBQUgsR0FBRyxDQUFRO0lBRXJFLENBQUM7Q0FDRjtBQUpELDBDQUlDO0FBRUQsU0FBUyxPQUFPLENBQUMsQ0FBb0I7SUFDbkMsT0FBTyxPQUFPLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3hELENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFhLFFBQVE7SUFDbkIsWUFBbUIsS0FBYSxFQUFTLEdBQVc7UUFBakMsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUFTLFFBQUcsR0FBSCxHQUFHLENBQVE7UUFDbEQsSUFBSSxLQUFLLEdBQUcsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLElBQUksR0FBRyxHQUFHLEtBQUssRUFBRSxDQUFDO1lBQ3hDLE1BQU0sSUFBSSxlQUFlLENBQUMscUJBQXFCLEtBQUssS0FBSyxHQUFHLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDL0UsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxTQUFTLENBQUMsTUFBYztRQUN0QixPQUFPLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxFQUFFLElBQUksQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELG9EQUFvRDtJQUNwRCxjQUFjLENBQUMsS0FBd0I7UUFDckMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzlCLE9BQU8sS0FBSyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDO1FBQ2pDLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELG9EQUFvRDtJQUNwRCxZQUFZLENBQUMsS0FBd0I7UUFDbkMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixPQUFPLElBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDNUQsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQzVCLE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUM7UUFDM0IsQ0FBQztRQUNELE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBSTtRQUNGLE9BQU8sSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzQyxDQUFDO0NBQ0Y7QUF4Q0QsNEJBd0NDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEludmFsaWRTYXRSYW5nZSBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nLCBwdWJsaWMgc3RhcnQ6IGJpZ2ludCwgcHVibGljIGVuZDogYmlnaW50KSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gdG9SYW5nZSh2OiBiaWdpbnQgfCBTYXRSYW5nZSk6IFNhdFJhbmdlIHtcbiAgcmV0dXJuIHR5cGVvZiB2ID09PSAnYmlnaW50JyA/IG5ldyBTYXRSYW5nZSh2LCB2KSA6IHY7XG59XG5cbi8qKlxuICogUmFuZ2Ugb2Ygc2F0b3NoaSwgaW5jbHVzaXZlLlxuICogSW5zY3JpcHRpb25zIGhhdmUgc3RhcnQgPT09IGVuZC5cbiAqL1xuZXhwb3J0IGNsYXNzIFNhdFJhbmdlIHtcbiAgY29uc3RydWN0b3IocHVibGljIHN0YXJ0OiBiaWdpbnQsIHB1YmxpYyBlbmQ6IGJpZ2ludCkge1xuICAgIGlmIChzdGFydCA8IDAgfHwgZW5kIDwgMCB8fCBlbmQgPCBzdGFydCkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRTYXRSYW5nZShgSW52YWxpZCBTYXRSYW5nZSBbJHtzdGFydH0sICR7ZW5kfV1gLCBzdGFydCwgZW5kKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIG9mZnNldFxuICAgKiBAcmV0dXJuIFNhdFJhbmdlIHdpdGggc3RhcnQgYW5kIGVuZCBzaGlmdGVkIGJ5IG9mZnNldFxuICAgKi9cbiAgc2hpZnRlZEJ5KG9mZnNldDogYmlnaW50KTogU2F0UmFuZ2Uge1xuICAgIHJldHVybiBuZXcgU2F0UmFuZ2UodGhpcy5zdGFydCArIG9mZnNldCwgdGhpcy5lbmQgKyBvZmZzZXQpO1xuICB9XG5cbiAgLyoqIEByZXR1cm4gdHJ1ZSBpZmYgdGhpcyBpbnRlcnNlY3RzIHdpdGggX290aGVyXyAqL1xuICBpbnRlcnNlY3RzV2l0aChvdGhlcjogYmlnaW50IHwgU2F0UmFuZ2UpOiBib29sZWFuIHtcbiAgICBvdGhlciA9IHRvUmFuZ2Uob3RoZXIpO1xuICAgIGlmICh0aGlzLnN0YXJ0IDw9IG90aGVyLnN0YXJ0KSB7XG4gICAgICByZXR1cm4gb3RoZXIuc3RhcnQgPD0gdGhpcy5lbmQ7XG4gICAgfVxuICAgIHJldHVybiBvdGhlci5pbnRlcnNlY3RzV2l0aCh0aGlzKTtcbiAgfVxuXG4gIC8qKiBAcmV0dXJuIHRydWUgaWZmIHRoaXMgaXMgc3VwZXJzZXQgb2YgX290aGVyXy4gKi9cbiAgaXNTdXBlcnNldE9mKG90aGVyOiBiaWdpbnQgfCBTYXRSYW5nZSk6IGJvb2xlYW4ge1xuICAgIG90aGVyID0gdG9SYW5nZShvdGhlcik7XG4gICAgcmV0dXJuIHRoaXMuc3RhcnQgPD0gb3RoZXIuc3RhcnQgJiYgb3RoZXIuZW5kIDw9IHRoaXMuZW5kO1xuICB9XG5cbiAgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5zdGFydCA9PT0gdGhpcy5lbmQpIHtcbiAgICAgIHJldHVybiBgWyR7dGhpcy5zdGFydH1dYDtcbiAgICB9XG4gICAgcmV0dXJuIGBbJHt0aGlzLnN0YXJ0fS4uJHt0aGlzLmVuZH1dYDtcbiAgfVxuXG4gIHNpemUoKTogYmlnaW50IHtcbiAgICByZXR1cm4gdGhpcy5lbmQgLSB0aGlzLnN0YXJ0ICsgQmlnSW50KDEpO1xuICB9XG59XG4iXX0=
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.powerset = void 0;
3
+ exports.powerset = powerset;
4
4
  function powerset(arr) {
5
5
  if (arr.length === 0) {
6
6
  return [[]];
@@ -10,5 +10,4 @@ function powerset(arr) {
10
10
  return powerset(rest).flatMap((s) => [[a, ...s], s]);
11
11
  }
12
12
  }
13
- exports.powerset = powerset;
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYmluYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbWJpbmF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxTQUFnQixRQUFRLENBQUksR0FBUTtJQUNsQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQ3BCLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztLQUNiO1NBQU07UUFDTCxNQUFNLENBQUMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDO1FBQ3pCLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDdEQ7QUFDSCxDQUFDO0FBUEQsNEJBT0MiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gcG93ZXJzZXQ8VD4oYXJyOiBUW10pOiBUW11bXSB7XG4gIGlmIChhcnIubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIFtbXV07XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgW2EsIC4uLnJlc3RdID0gYXJyO1xuICAgIHJldHVybiBwb3dlcnNldChyZXN0KS5mbGF0TWFwKChzKSA9PiBbW2EsIC4uLnNdLCBzXSk7XG4gIH1cbn1cbiJdfQ==
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYmluYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbWJpbmF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDRCQU9DO0FBUEQsU0FBZ0IsUUFBUSxDQUFJLEdBQVE7SUFDbEMsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3JCLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNkLENBQUM7U0FBTSxDQUFDO1FBQ04sTUFBTSxDQUFDLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUN6QixPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIHBvd2Vyc2V0PFQ+KGFycjogVFtdKTogVFtdW10ge1xuICBpZiAoYXJyLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBbW11dO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IFthLCAuLi5yZXN0XSA9IGFycjtcbiAgICByZXR1cm4gcG93ZXJzZXQocmVzdCkuZmxhdE1hcCgocykgPT4gW1thLCAuLi5zXSwgc10pO1xuICB9XG59XG4iXX0=
@@ -1,5 +1,3 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
3
1
  import { Network } from '@bitgo-beta/utxo-lib';
4
2
  import * as utxolib from '@bitgo-beta/utxo-lib';
5
3
  import { PreparedInscriptionRevealData } from '@bitgo-beta/sdk-core';
@@ -1 +1 @@
1
- {"version":3,"file":"inscriptions.d.ts","sourceRoot":"","sources":["../../src/inscriptions.ts"],"names":[],"mappings":";;AAOA,OAAO,EAKL,OAAO,EAKR,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAC;AAqGrE;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,OAAO,GACf,6BAA6B,CAuB/B;AAED;;;;;GAKG;AACH,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM,CAKrH;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,aAAa,EAC1C,aAAa,EAAE,MAAM,EACrB,gBAAgB,EAAE,MAAM,EACxB,gBAAgB,EAAE,MAAM,EACxB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,KAAK,CAAC,QAAQ,CA2BxB"}
1
+ {"version":3,"file":"inscriptions.d.ts","sourceRoot":"","sources":["../../src/inscriptions.ts"],"names":[],"mappings":"AAOA,OAAO,EAKL,OAAO,EAKR,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAC;AAqGrE;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,OAAO,GACf,6BAA6B,CAuB/B;AAED;;;;;GAKG;AACH,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM,CAKrH;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,aAAa,EAC1C,aAAa,EAAE,MAAM,EACrB,gBAAgB,EAAE,MAAM,EACxB,gBAAgB,EAAE,MAAM,EACxB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,KAAK,CAAC,QAAQ,CA2BxB"}
@@ -5,7 +5,9 @@ Functions for dealing with inscriptions.
5
5
  See https://docs.ordinals.com/inscriptions.html
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.signRevealTransaction = exports.createOutputScriptForInscription = exports.createInscriptionRevealData = void 0;
8
+ exports.createInscriptionRevealData = createInscriptionRevealData;
9
+ exports.createOutputScriptForInscription = createOutputScriptForInscription;
10
+ exports.signRevealTransaction = signRevealTransaction;
9
11
  const assert = require("assert");
10
12
  const utxo_lib_1 = require("@bitgo-beta/utxo-lib");
11
13
  const utxolib = require("@bitgo-beta/utxo-lib");
@@ -40,8 +42,8 @@ function createPaymentForInscription(pubkey, contentType, inscriptionData) {
40
42
  OPS.OP_FALSE,
41
43
  OPS.OP_IF,
42
44
  Buffer.from('ord', 'ascii'),
43
- 1,
44
- 1,
45
+ 1, // these two lines should be combined as a single OPS.OP_1,
46
+ 1, // but `ord`'s decoder has a bug so it has to be like this
45
47
  Buffer.from(contentType, 'ascii'),
46
48
  OPS.OP_0,
47
49
  ...dataPushBuffers,
@@ -118,7 +120,6 @@ function createInscriptionRevealData(pubkey, contentType, inscriptionData, netwo
118
120
  tapLeafScript: tapLeafScript[0],
119
121
  };
120
122
  }
121
- exports.createInscriptionRevealData = createInscriptionRevealData;
122
123
  /**
123
124
  * @param pubkey
124
125
  * @param contentType
@@ -130,7 +131,6 @@ function createOutputScriptForInscription(pubkey, contentType, inscriptionData)
130
131
  assert(payment.output, 'Failed to create inscription output script');
131
132
  return payment.output;
132
133
  }
133
- exports.createOutputScriptForInscription = createOutputScriptForInscription;
134
134
  /**
135
135
  *
136
136
  * @param privateKey
@@ -165,5 +165,4 @@ function signRevealTransaction(privateKey, tapLeafScript, commitAddress, recipie
165
165
  psbt.signTaprootInput(0, signer, [leafHash]);
166
166
  return psbt;
167
167
  }
168
- exports.signRevealTransaction = signRevealTransaction;
169
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zY3JpcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2luc2NyaXB0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7RUFJRTs7O0FBRUYsaUNBQWlDO0FBQ2pDLG1EQVU4QjtBQUM5QixnREFBZ0Q7QUFHaEQsTUFBTSxHQUFHLEdBQUcsaUJBQU8sQ0FBQyxHQUFHLENBQUM7QUFDeEIsTUFBTSx3QkFBd0IsR0FBRyxHQUFHLENBQUM7QUFFckM7Ozs7OztHQU1HO0FBQ0gsU0FBUyxXQUFXLENBQUMsZUFBdUIsRUFBRSxTQUFpQjtJQUM3RCxNQUFNLGVBQWUsR0FBYSxFQUFFLENBQUM7SUFDckMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGVBQWUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLFNBQVMsRUFBRTtRQUMxRCxlQUFlLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDO0tBQy9EO0lBRUQsT0FBTyxlQUFlLENBQUM7QUFDekIsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILFNBQVMsMkJBQTJCLENBQUMsTUFBYyxFQUFFLFdBQW1CLEVBQUUsZUFBdUI7SUFDL0YsTUFBTSxlQUFlLEdBQUcsV0FBVyxDQUFDLGVBQWUsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO0lBRS9FLE1BQU0sZ0JBQWdCLEdBQUc7UUFDdkIsTUFBTTtRQUNOLEdBQUcsQ0FBQyxXQUFXO1FBQ2YsR0FBRyxDQUFDLFFBQVE7UUFDWixHQUFHLENBQUMsS0FBSztRQUNULE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQztRQUMzQixDQUFDO1FBQ0QsQ0FBQztRQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQztRQUNqQyxHQUFHLENBQUMsSUFBSTtRQUNSLEdBQUcsZUFB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SUFFN0MsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBbENELHNEQWtDQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG5GdW5jdGlvbnMgZm9yIGRlYWxpbmcgd2l0aCBpbnNjcmlwdGlvbnMuXG5cblNlZSBodHRwczovL2RvY3Mub3JkaW5hbHMuY29tL2luc2NyaXB0aW9ucy5odG1sXG4qL1xuXG5pbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCB7XG4gIHAydHJQYXltZW50cyBhcyBwYXltZW50cyxcbiAgZWNjIGFzIGVjY0xpYixcbiAgc2NyaXB0IGFzIGJzY3JpcHQsXG4gIFBheW1lbnQsXG4gIE5ldHdvcmssXG4gIGJpdGdvLFxuICBhZGRyZXNzLFxuICB0YXByb290LFxuICBFQ1BhaXIsXG59IGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuaW1wb3J0IHsgUHJlcGFyZWRJbnNjcmlwdGlvblJldmVhbERhdGEgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5cbmNvbnN0IE9QUyA9IGJzY3JpcHQuT1BTO1xuY29uc3QgTUFYX0xFTkdUSF9UQVBfREFUQV9QVVNIID0gNTIwO1xuXG4vKipcbiAqIFRoZSBtYXggc2l6ZSBvZiBhbiBpbmRpdmlkdWFsIE9QX1BVU0ggaW4gYSBUYXByb290IHNjcmlwdCBpcyA1MjAgYnl0ZXMuIFRoaXNcbiAqIGZ1bmN0aW9uIHNwbGl0cyBpbnNjcmlwdGlvbkRhdGEgaW50byBhbiBhcnJheSBidWZmZXIgb2YgNTIwIGJ5dGVzIGxlbmd0aC5cbiAqIGh0dHBzOi8vZG9jcy5vcmRpbmFscy5jb20vaW5zY3JpcHRpb25zLmh0bWxcbiAqIEBwYXJhbSBpbnNjcmlwdGlvbkRhdGFcbiAqIEBwYXJhbSBjaHVua1NpemVcbiAqL1xuZnVuY3Rpb24gc3BsaXRCdWZmZXIoaW5zY3JpcHRpb25EYXRhOiBCdWZmZXIsIGNodW5rU2l6ZTogbnVtYmVyKSB7XG4gIGNvbnN0IHB1c2hEYXRhQnVmZmVyczogQnVmZmVyW10gPSBbXTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnNjcmlwdGlvbkRhdGEubGVuZ3RoOyBpICs9IGNodW5rU2l6ZSkge1xuICAgIHB1c2hEYXRhQnVmZmVycy5wdXNoKGluc2NyaXB0aW9uRGF0YS5zbGljZShpLCBpICsgY2h1bmtTaXplKSk7XG4gIH1cblxuICByZXR1cm4gcHVzaERhdGFCdWZmZXJzO1xufVxuXG4vKipcbiAqXG4gKiBAcmV0dXJucyBpbnNjcmlwdGlvbiBwYXltZW50IG9iamVjdFxuICogQHBhcmFtIHB1YmtleVxuICogQHBhcmFtIGNvbnRlbnRUeXBlXG4gKiBAcGFyYW0gaW5zY3JpcHRpb25EYXRhXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZVBheW1lbnRGb3JJbnNjcmlwdGlvbihwdWJrZXk6IEJ1ZmZlciwgY29udGVudFR5cGU6IHN0cmluZywgaW5zY3JpcHRpb25EYXRhOiBCdWZmZXIpOiBQYXltZW50IHtcbiAgY29uc3QgZGF0YVB1c2hCdWZmZXJzID0gc3BsaXRCdWZmZXIoaW5zY3JpcHRpb25EYXRhLCBNQVhfTEVOR1RIX1RBUF9EQVRBX1BVU0gpO1xuXG4gIGNvbnN0IHVuY29tcGlsZWRTY3JpcHQgPSBbXG4gICAgcHVia2V5LFxuICAgIE9QUy5PUF9DSEVDS1NJRyxcbiAgICBPUFMuT1BfRkFMU0UsXG4gICAgT1BTLk9QX0lGLFxuICAgIEJ1ZmZlci5mcm9tKCdvcmQnLCAnYXNjaWknKSxcbiAgICAxLCAvLyB0aGVzZSB0d28gbGluZXMgc2hvdWxkIGJlIGNvbWJpbmVkIGFzIGEgc2luZ2xlIE9QUy5PUF8xLFxuICAgIDEsIC8vIGJ1dCBgb3JkYCdzIGRlY29kZXIgaGFzIGEgYnVnIHNvIGl0IGhhcyB0byBiZSBsaWtlIHRoaXNcbiAgICBCdWZmZXIuZnJvbShjb250ZW50VHlwZSwgJ2FzY2lpJyksXG4gICAgT1BTLk9QXzAsXG4gICAgLi4uZGF0YVB1c2hCdWZmZXJzLFxuICAgIE9QUy5PUF9FTkRJRixcbiAgXTtcblxuICBjb25zdCBjb21waWxlZFNjcmlwdCA9IGJzY3JpcHQuY29tcGlsZSh1bmNvbXBpbGVkU2NyaXB0KTtcbiAgY29uc3QgcmVkZWVtOiBQYXltZW50ID0ge1xuICAgIG91dHB1dDogY29tcGlsZWRTY3JpcHQsXG4gICAgZGVwdGg6IDAsXG4gIH07XG5cbiAgcmV0dXJuIHBheW1lbnRzLnAydHIoeyByZWRlZW1zOiBbcmVkZWVtXSwgcmVkZWVtSW5kZXg6IDAgfSwgeyBlY2NMaWIgfSk7XG59XG5cbi8qKlxuICogQHBhcmFtIHBheW1lbnRcbiAqIEBwYXJhbSBjb250cm9sQmxvY2tcbiAqIEBwYXJhbSBjb21taXRPdXRwdXRcbiAqIEBwYXJhbSBuZXR3b3JrXG4gKiBAcmV0dXJuIHZpcnR1YWwgc2l6ZSBvZiBhIHRyYW5zYWN0aW9uIHdpdGggYSBzaW5nbGUgaW5zY3JpcHRpb24gcmV2ZWFsIGlucHV0IGFuZCBhIHNpbmdsZSBjb21taXRPdXRwdXRcbiAqL1xuZnVuY3Rpb24gZ2V0SW5zY3JpcHRpb25SZXZlYWxTaXplKFxuICBwYXltZW50OiBQYXltZW50LFxuICBjb250cm9sQmxvY2s6IEJ1ZmZlcixcbiAgY29tbWl0T3V0cHV0OiBCdWZmZXIsXG4gIG5ldHdvcms6IE5ldHdvcmtcbik6IG51bWJlciB7XG4gIGNvbnN0IHBzYnQgPSBiaXRnby5jcmVhdGVQc2J0Rm9yTmV0d29yayh7IG5ldHdvcmsgfSk7XG4gIGNvbnN0IHBhcnNlZENvbnRyb2xCbG9jayA9IHRhcHJvb3QucGFyc2VDb250cm9sQmxvY2soZWNjTGliLCBjb250cm9sQmxvY2spO1xuICBjb25zdCBsZWFmSGFzaCA9IHRhcHJvb3QuZ2V0VGFwbGVhZkhhc2goZWNjTGliLCBwYXJzZWRDb250cm9sQmxvY2ssIHBheW1lbnQucmVkZWVtPy5vdXRwdXQgYXMgQnVmZmVyKTtcblxuICBwc2J0LmFkZElucHV0KHtcbiAgICBoYXNoOiBCdWZmZXIuYWxsb2MoMzIpLFxuICAgIGluZGV4OiAwLFxuICAgIHdpdG5lc3NVdHhvOiB7IHNjcmlwdDogY29tbWl0T3V0cHV0LCB2YWx1ZTogQmlnSW50KDEwMF8wMDApIH0sXG4gICAgdGFwTGVhZlNjcmlwdDogW1xuICAgICAge1xuICAgICAgICBjb250cm9sQmxvY2ssXG4gICAgICAgIHNjcmlwdDogcGF5bWVudC5yZWRlZW0/Lm91dHB1dCBhcyBCdWZmZXIsXG4gICAgICAgIGxlYWZWZXJzaW9uOiB0YXByb290LklOSVRJQUxfVEFQU0NSSVBUX1ZFUlNJT04sXG4gICAgICB9LFxuICAgIF0sXG4gIH0pO1xuICBwc2J0LmFkZE91dHB1dCh7IHNjcmlwdDogY29tbWl0T3V0cHV0LCB2YWx1ZTogQmlnSW50KDEwXzAwMCkgfSk7XG5cbiAgcHNidC5zaWduVGFwcm9vdElucHV0KFxuICAgIDAsXG4gICAge1xuICAgICAgcHVibGljS2V5OiBCdWZmZXIuYWxsb2MoMzIpLFxuICAgICAgc2lnblNjaG5vcnIoaGFzaDogQnVmZmVyKTogQnVmZmVyIHtcbiAgICAgICAgLy8gZHVtbXkgc2Nobm9yci1zaXplZCBzaWduYXR1cmVcbiAgICAgICAgcmV0dXJuIEJ1ZmZlci5hbGxvYyg2NCk7XG4gICAgICB9LFxuICAgIH0sXG4gICAgW2xlYWZIYXNoXVxuICApO1xuXG4gIHBzYnQuZmluYWxpemVUYXBJbnB1dFdpdGhTaW5nbGVMZWFmU2NyaXB0QW5kU2lnbmF0dXJlKDApO1xuICByZXR1cm4gcHNidC5leHRyYWN0VHJhbnNhY3Rpb24oLyogZGlzYWJsZUZlZUNoZWNrICovIHRydWUpLnZpcnR1YWxTaXplKCk7XG59XG5cbi8qKlxuICogQHBhcmFtIHB1YmtleVxuICogQHBhcmFtIGNvbnRlbnRUeXBlXG4gKiBAcGFyYW0gaW5zY3JpcHRpb25EYXRhXG4gKiBAcGFyYW0gbmV0d29ya1xuICogQHJldHVybnMgUHJlcGFyZWRJbnNjcmlwdGlvblJldmVhbERhdGFcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUluc2NyaXB0aW9uUmV2ZWFsRGF0YShcbiAgcHVia2V5OiBCdWZmZXIsXG4gIGNvbnRlbnRUeXBlOiBzdHJpbmcsXG4gIGluc2NyaXB0aW9uRGF0YTogQnVmZmVyLFxuICBuZXR3b3JrOiBOZXR3b3JrXG4pOiBQcmVwYXJlZEluc2NyaXB0aW9uUmV2ZWFsRGF0YSB7XG4gIGNvbnN0IHBheW1lbnQgPSBjcmVhdGVQYXltZW50Rm9ySW5zY3JpcHRpb24ocHVia2V5LCBjb250ZW50VHlwZSwgaW5zY3JpcHRpb25EYXRhKTtcblxuICBjb25zdCB7IG91dHB1dDogY29tbWl0T3V0cHV0LCBjb250cm9sQmxvY2sgfSA9IHBheW1lbnQ7XG4gIGFzc2VydChjb21taXRPdXRwdXQpO1xuICBhc3NlcnQoY29udHJvbEJsb2NrKTtcbiAgYXNzZXJ0KHBheW1lbnQucmVkZWVtPy5vdXRwdXQpO1xuICBjb25zdCBjb21taXRBZGRyZXNzID0gYWRkcmVzcy5mcm9tT3V0cHV0U2NyaXB0KGNvbW1pdE91dHB1dCwgbmV0d29yayk7XG5cbiAgY29uc3QgdGFwTGVhZlNjcmlwdDogdXR4b2xpYi5iaXRnby5UYXBMZWFmU2NyaXB0W10gPSBbXG4gICAge1xuICAgICAgY29udHJvbEJsb2NrLFxuICAgICAgc2NyaXB0OiBwYXltZW50LnJlZGVlbT8ub3V0cHV0LFxuICAgICAgbGVhZlZlcnNpb246IHRhcHJvb3QuSU5JVElBTF9UQVBTQ1JJUFRfVkVSU0lPTixcbiAgICB9LFxuICBdO1xuICBjb25zdCByZXZlYWxUcmFuc2FjdGlvblZTaXplID0gZ2V0SW5zY3JpcHRpb25SZXZlYWxTaXplKHBheW1lbnQsIGNvbnRyb2xCbG9jaywgY29tbWl0T3V0cHV0LCBuZXR3b3JrKTtcblxuICByZXR1cm4ge1xuICAgIGFkZHJlc3M6IGNvbW1pdEFkZHJlc3MsXG4gICAgcmV2ZWFsVHJhbnNhY3Rpb25WU2l6ZSxcbiAgICB0YXBMZWFmU2NyaXB0OiB0YXBMZWFmU2NyaXB0WzBdLFxuICB9O1xufVxuXG4vKipcbiAqIEBwYXJhbSBwdWJrZXlcbiAqIEBwYXJhbSBjb250ZW50VHlwZVxuICogQHBhcmFtIGluc2NyaXB0aW9uRGF0YVxuICogQHJldHVybnMgaW5zY3JpcHRpb24gYWRkcmVzc1xuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlT3V0cHV0U2NyaXB0Rm9ySW5zY3JpcHRpb24ocHVia2V5OiBCdWZmZXIsIGNvbnRlbnRUeXBlOiBzdHJpbmcsIGluc2NyaXB0aW9uRGF0YTogQnVmZmVyKTogQnVmZmVyIHtcbiAgY29uc3QgcGF5bWVudCA9IGNyZWF0ZVBheW1lbnRGb3JJbnNjcmlwdGlvbihwdWJrZXksIGNvbnRlbnRUeXBlLCBpbnNjcmlwdGlvbkRhdGEpO1xuXG4gIGFzc2VydChwYXltZW50Lm91dHB1dCwgJ0ZhaWxlZCB0byBjcmVhdGUgaW5zY3JpcHRpb24gb3V0cHV0IHNjcmlwdCcpO1xuICByZXR1cm4gcGF5bWVudC5vdXRwdXQ7XG59XG5cbi8qKlxuICpcbiAqIEBwYXJhbSBwcml2YXRlS2V5XG4gKiBAcGFyYW0gdGFwTGVhZlNjcmlwdFxuICogQHBhcmFtIGNvbW1pdEFkZHJlc3NcbiAqIEBwYXJhbSByZWNpcGllbnRBZGRyZXNzXG4gKiBAcGFyYW0gdW5zaWduZWRDb21taXRUeFxuICogQHBhcmFtIG5ldHdvcmtcbiAqXG4gKiBAcmV0dXJuIGEgZnVsbHkgc2lnbmVkIHJldmVhbCB0cmFuc2FjdGlvblxuICovXG5leHBvcnQgZnVuY3Rpb24gc2lnblJldmVhbFRyYW5zYWN0aW9uKFxuICBwcml2YXRlS2V5OiBCdWZmZXIsXG4gIHRhcExlYWZTY3JpcHQ6IHV0eG9saWIuYml0Z28uVGFwTGVhZlNjcmlwdCxcbiAgY29tbWl0QWRkcmVzczogc3RyaW5nLFxuICByZWNpcGllbnRBZGRyZXNzOiBzdHJpbmcsXG4gIHVuc2lnbmVkQ29tbWl0VHg6IEJ1ZmZlcixcbiAgbmV0d29yazogTmV0d29ya1xuKTogdXR4b2xpYi5iaXRnby5VdHhvUHNidCB7XG4gIGNvbnN0IHVuc2VyQ29tbWl0VHhuID0gdXR4b2xpYi5iaXRnby5jcmVhdGVUcmFuc2FjdGlvbkZyb21CdWZmZXIodW5zaWduZWRDb21taXRUeCwgbmV0d29yayk7XG4gIGNvbnN0IGhhc2ggPSB1bnNlckNvbW1pdFR4bi5nZXRIYXNoKCk7XG4gIGNvbnN0IGNvbW1pdE91dHB1dCA9IHV0eG9saWIuYWRkcmVzcy50b091dHB1dFNjcmlwdChjb21taXRBZGRyZXNzLCBuZXR3b3JrKTtcbiAgY29uc3Qgdm91dCA9IHVuc2VyQ29tbWl0VHhuLm91dHMuZmluZEluZGV4KChvdXQpID0+IG91dC5zY3JpcHQuZXF1YWxzKGNvbW1pdE91dHB1dCkpO1xuXG4gIGlmICh2b3V0ID09PSAtMSkge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBjb21taXQgdHJhbnNhY3Rpb24nKTtcbiAgfVxuXG4gIGNvbnN0IHBzYnQgPSBiaXRnby5jcmVhdGVQc2J0Rm9yTmV0d29yayh7IG5ldHdvcmsgfSk7XG4gIHBzYnQuYWRkSW5wdXQoe1xuICAgIGhhc2gsXG4gICAgaW5kZXg6IHZvdXQsXG4gICAgd2l0bmVzc1V0eG86IHsgc2NyaXB0OiBjb21taXRPdXRwdXQsIHZhbHVlOiBCaWdJbnQodW5zZXJDb21taXRUeG4ub3V0c1t2b3V0XS52YWx1ZSkgfSxcbiAgICB0YXBMZWFmU2NyaXB0OiBbdGFwTGVhZlNjcmlwdF0sXG4gIH0pO1xuXG4gIGNvbnN0IHJlY2lwaWVudE91dHB1dCA9IGFkZHJlc3MudG9PdXRwdXRTY3JpcHQocmVjaXBpZW50QWRkcmVzcywgbmV0d29yayk7XG4gIHBzYnQuYWRkT3V0cHV0KHsgc2NyaXB0OiByZWNpcGllbnRPdXRwdXQsIHZhbHVlOiBCaWdJbnQoMTBfMDAwKSB9KTtcblxuICBjb25zdCBzaWduZXIgPSBFQ1BhaXIuZnJvbVByaXZhdGVLZXkocHJpdmF0ZUtleSk7XG4gIGNvbnN0IHBhcnNlZENvbnRyb2xCbG9jayA9IHRhcHJvb3QucGFyc2VDb250cm9sQmxvY2soZWNjTGliLCB0YXBMZWFmU2NyaXB0LmNvbnRyb2xCbG9jayk7XG4gIGNvbnN0IGxlYWZIYXNoID0gdGFwcm9vdC5nZXRUYXBsZWFmSGFzaChlY2NMaWIsIHBhcnNlZENvbnRyb2xCbG9jaywgdGFwTGVhZlNjcmlwdC5zY3JpcHQgYXMgQnVmZmVyKTtcbiAgcHNidC5zaWduVGFwcm9vdElucHV0KDAsIHNpZ25lciwgW2xlYWZIYXNoXSk7XG5cbiAgcmV0dXJuIHBzYnQ7XG59XG4iXX0=
168
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zY3JpcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2luc2NyaXB0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7RUFJRTs7QUEySEYsa0VBNEJDO0FBUUQsNEVBS0M7QUFhRCxzREFrQ0M7QUFqTkQsaUNBQWlDO0FBQ2pDLG1EQVU4QjtBQUM5QixnREFBZ0Q7QUFHaEQsTUFBTSxHQUFHLEdBQUcsaUJBQU8sQ0FBQyxHQUFHLENBQUM7QUFDeEIsTUFBTSx3QkFBd0IsR0FBRyxHQUFHLENBQUM7QUFFckM7Ozs7OztHQU1HO0FBQ0gsU0FBUyxXQUFXLENBQUMsZUFBdUIsRUFBRSxTQUFpQjtJQUM3RCxNQUFNLGVBQWUsR0FBYSxFQUFFLENBQUM7SUFDckMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGVBQWUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQzNELGVBQWUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELE9BQU8sZUFBZSxDQUFDO0FBQ3pCLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxTQUFTLDJCQUEyQixDQUFDLE1BQWMsRUFBRSxXQUFtQixFQUFFLGVBQXVCO0lBQy9GLE1BQU0sZUFBZSxHQUFHLFdBQVcsQ0FBQyxlQUFlLEVBQUUsd0JBQXdCLENBQUMsQ0FBQztJQUUvRSxNQUFNLGdCQUFnQixHQUFHO1FBQ3ZCLE1BQU07UUFDTixHQUFHLENBQUMsV0FBVztRQUNmLEdBQUcsQ0FBQyxRQUFRO1FBQ1osR0FBRyxDQUFDLEtBQUs7UUFDVCxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUM7UUFDM0IsQ0FBQyxFQUFFLDJEQUEyRDtRQUM5RCxDQUFDLEVBQUUsMERBQTBEO1FBQzdELE1B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QyxnQkFBZ0IsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUU3QyxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuRnVuY3Rpb25zIGZvciBkZWFsaW5nIHdpdGggaW5zY3JpcHRpb25zLlxuXG5TZWUgaHR0cHM6Ly9kb2NzLm9yZGluYWxzLmNvbS9pbnNjcmlwdGlvbnMuaHRtbFxuKi9cblxuaW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQge1xuICBwMnRyUGF5bWVudHMgYXMgcGF5bWVudHMsXG4gIGVjYyBhcyBlY2NMaWIsXG4gIHNjcmlwdCBhcyBic2NyaXB0LFxuICBQYXltZW50LFxuICBOZXR3b3JrLFxuICBiaXRnbyxcbiAgYWRkcmVzcyxcbiAgdGFwcm9vdCxcbiAgRUNQYWlyLFxufSBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCB7IFByZXBhcmVkSW5zY3JpcHRpb25SZXZlYWxEYXRhIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuXG5jb25zdCBPUFMgPSBic2NyaXB0Lk9QUztcbmNvbnN0IE1BWF9MRU5HVEhfVEFQX0RBVEFfUFVTSCA9IDUyMDtcblxuLyoqXG4gKiBUaGUgbWF4IHNpemUgb2YgYW4gaW5kaXZpZHVhbCBPUF9QVVNIIGluIGEgVGFwcm9vdCBzY3JpcHQgaXMgNTIwIGJ5dGVzLiBUaGlzXG4gKiBmdW5jdGlvbiBzcGxpdHMgaW5zY3JpcHRpb25EYXRhIGludG8gYW4gYXJyYXkgYnVmZmVyIG9mIDUyMCBieXRlcyBsZW5ndGguXG4gKiBodHRwczovL2RvY3Mub3JkaW5hbHMuY29tL2luc2NyaXB0aW9ucy5odG1sXG4gKiBAcGFyYW0gaW5zY3JpcHRpb25EYXRhXG4gKiBAcGFyYW0gY2h1bmtTaXplXG4gKi9cbmZ1bmN0aW9uIHNwbGl0QnVmZmVyKGluc2NyaXB0aW9uRGF0YTogQnVmZmVyLCBjaHVua1NpemU6IG51bWJlcikge1xuICBjb25zdCBwdXNoRGF0YUJ1ZmZlcnM6IEJ1ZmZlcltdID0gW107XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgaW5zY3JpcHRpb25EYXRhLmxlbmd0aDsgaSArPSBjaHVua1NpemUpIHtcbiAgICBwdXNoRGF0YUJ1ZmZlcnMucHVzaChpbnNjcmlwdGlvbkRhdGEuc2xpY2UoaSwgaSArIGNodW5rU2l6ZSkpO1xuICB9XG5cbiAgcmV0dXJuIHB1c2hEYXRhQnVmZmVycztcbn1cblxuLyoqXG4gKlxuICogQHJldHVybnMgaW5zY3JpcHRpb24gcGF5bWVudCBvYmplY3RcbiAqIEBwYXJhbSBwdWJrZXlcbiAqIEBwYXJhbSBjb250ZW50VHlwZVxuICogQHBhcmFtIGluc2NyaXB0aW9uRGF0YVxuICovXG5mdW5jdGlvbiBjcmVhdGVQYXltZW50Rm9ySW5zY3JpcHRpb24ocHVia2V5OiBCdWZmZXIsIGNvbnRlbnRUeXBlOiBzdHJpbmcsIGluc2NyaXB0aW9uRGF0YTogQnVmZmVyKTogUGF5bWVudCB7XG4gIGNvbnN0IGRhdGFQdXNoQnVmZmVycyA9IHNwbGl0QnVmZmVyKGluc2NyaXB0aW9uRGF0YSwgTUFYX0xFTkdUSF9UQVBfREFUQV9QVVNIKTtcblxuICBjb25zdCB1bmNvbXBpbGVkU2NyaXB0ID0gW1xuICAgIHB1YmtleSxcbiAgICBPUFMuT1BfQ0hFQ0tTSUcsXG4gICAgT1BTLk9QX0ZBTFNFLFxuICAgIE9QUy5PUF9JRixcbiAgICBCdWZmZXIuZnJvbSgnb3JkJywgJ2FzY2lpJyksXG4gICAgMSwgLy8gdGhlc2UgdHdvIGxpbmVzIHNob3VsZCBiZSBjb21iaW5lZCBhcyBhIHNpbmdsZSBPUFMuT1BfMSxcbiAgICAxLCAvLyBidXQgYG9yZGAncyBkZWNvZGVyIGhhcyBhIGJ1ZyBzbyBpdCBoYXMgdG8gYmUgbGlrZSB0aGlzXG4gICAgQnVmZmVyLmZyb20oY29udGVudFR5cGUsICdhc2NpaScpLFxuICAgIE9QUy5PUF8wLFxuICAgIC4uLmRhdGFQdXNoQnVmZmVycyxcbiAgICBPUFMuT1BfRU5ESUYsXG4gIF07XG5cbiAgY29uc3QgY29tcGlsZWRTY3JpcHQgPSBic2NyaXB0LmNvbXBpbGUodW5jb21waWxlZFNjcmlwdCk7XG4gIGNvbnN0IHJlZGVlbTogUGF5bWVudCA9IHtcbiAgICBvdXRwdXQ6IGNvbXBpbGVkU2NyaXB0LFxuICAgIGRlcHRoOiAwLFxuICB9O1xuXG4gIHJldHVybiBwYXltZW50cy5wMnRyKHsgcmVkZWVtczogW3JlZGVlbV0sIHJlZGVlbUluZGV4OiAwIH0sIHsgZWNjTGliIH0pO1xufVxuXG4vKipcbiAqIEBwYXJhbSBwYXltZW50XG4gKiBAcGFyYW0gY29udHJvbEJsb2NrXG4gKiBAcGFyYW0gY29tbWl0T3V0cHV0XG4gKiBAcGFyYW0gbmV0d29ya1xuICogQHJldHVybiB2aXJ0dWFsIHNpemUgb2YgYSB0cmFuc2FjdGlvbiB3aXRoIGEgc2luZ2xlIGluc2NyaXB0aW9uIHJldmVhbCBpbnB1dCBhbmQgYSBzaW5nbGUgY29tbWl0T3V0cHV0XG4gKi9cbmZ1bmN0aW9uIGdldEluc2NyaXB0aW9uUmV2ZWFsU2l6ZShcbiAgcGF5bWVudDogUGF5bWVudCxcbiAgY29udHJvbEJsb2NrOiBCdWZmZXIsXG4gIGNvbW1pdE91dHB1dDogQnVmZmVyLFxuICBuZXR3b3JrOiBOZXR3b3JrXG4pOiBudW1iZXIge1xuICBjb25zdCBwc2J0ID0gYml0Z28uY3JlYXRlUHNidEZvck5ldHdvcmsoeyBuZXR3b3JrIH0pO1xuICBjb25zdCBwYXJzZWRDb250cm9sQmxvY2sgPSB0YXByb290LnBhcnNlQ29udHJvbEJsb2NrKGVjY0xpYiwgY29udHJvbEJsb2NrKTtcbiAgY29uc3QgbGVhZkhhc2ggPSB0YXByb290LmdldFRhcGxlYWZIYXNoKGVjY0xpYiwgcGFyc2VkQ29udHJvbEJsb2NrLCBwYXltZW50LnJlZGVlbT8ub3V0cHV0IGFzIEJ1ZmZlcik7XG5cbiAgcHNidC5hZGRJbnB1dCh7XG4gICAgaGFzaDogQnVmZmVyLmFsbG9jKDMyKSxcbiAgICBpbmRleDogMCxcbiAgICB3aXRuZXNzVXR4bzogeyBzY3JpcHQ6IGNvbW1pdE91dHB1dCwgdmFsdWU6IEJpZ0ludCgxMDBfMDAwKSB9LFxuICAgIHRhcExlYWZTY3JpcHQ6IFtcbiAgICAgIHtcbiAgICAgICAgY29udHJvbEJsb2NrLFxuICAgICAgICBzY3JpcHQ6IHBheW1lbnQucmVkZWVtPy5vdXRwdXQgYXMgQnVmZmVyLFxuICAgICAgICBsZWFmVmVyc2lvbjogdGFwcm9vdC5JTklUSUFMX1RBUFNDUklQVF9WRVJTSU9OLFxuICAgICAgfSxcbiAgICBdLFxuICB9KTtcbiAgcHNidC5hZGRPdXRwdXQoeyBzY3JpcHQ6IGNvbW1pdE91dHB1dCwgdmFsdWU6IEJpZ0ludCgxMF8wMDApIH0pO1xuXG4gIHBzYnQuc2lnblRhcHJvb3RJbnB1dChcbiAgICAwLFxuICAgIHtcbiAgICAgIHB1YmxpY0tleTogQnVmZmVyLmFsbG9jKDMyKSxcbiAgICAgIHNpZ25TY2hub3JyKGhhc2g6IEJ1ZmZlcik6IEJ1ZmZlciB7XG4gICAgICAgIC8vIGR1bW15IHNjaG5vcnItc2l6ZWQgc2lnbmF0dXJlXG4gICAgICAgIHJldHVybiBCdWZmZXIuYWxsb2MoNjQpO1xuICAgICAgfSxcbiAgICB9LFxuICAgIFtsZWFmSGFzaF1cbiAgKTtcblxuICBwc2J0LmZpbmFsaXplVGFwSW5wdXRXaXRoU2luZ2xlTGVhZlNjcmlwdEFuZFNpZ25hdHVyZSgwKTtcbiAgcmV0dXJuIHBzYnQuZXh0cmFjdFRyYW5zYWN0aW9uKC8qIGRpc2FibGVGZWVDaGVjayAqLyB0cnVlKS52aXJ0dWFsU2l6ZSgpO1xufVxuXG4vKipcbiAqIEBwYXJhbSBwdWJrZXlcbiAqIEBwYXJhbSBjb250ZW50VHlwZVxuICogQHBhcmFtIGluc2NyaXB0aW9uRGF0YVxuICogQHBhcmFtIG5ldHdvcmtcbiAqIEByZXR1cm5zIFByZXBhcmVkSW5zY3JpcHRpb25SZXZlYWxEYXRhXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVJbnNjcmlwdGlvblJldmVhbERhdGEoXG4gIHB1YmtleTogQnVmZmVyLFxuICBjb250ZW50VHlwZTogc3RyaW5nLFxuICBpbnNjcmlwdGlvbkRhdGE6IEJ1ZmZlcixcbiAgbmV0d29yazogTmV0d29ya1xuKTogUHJlcGFyZWRJbnNjcmlwdGlvblJldmVhbERhdGEge1xuICBjb25zdCBwYXltZW50ID0gY3JlYXRlUGF5bWVudEZvckluc2NyaXB0aW9uKHB1YmtleSwgY29udGVudFR5cGUsIGluc2NyaXB0aW9uRGF0YSk7XG5cbiAgY29uc3QgeyBvdXRwdXQ6IGNvbW1pdE91dHB1dCwgY29udHJvbEJsb2NrIH0gPSBwYXltZW50O1xuICBhc3NlcnQoY29tbWl0T3V0cHV0KTtcbiAgYXNzZXJ0KGNvbnRyb2xCbG9jayk7XG4gIGFzc2VydChwYXltZW50LnJlZGVlbT8ub3V0cHV0KTtcbiAgY29uc3QgY29tbWl0QWRkcmVzcyA9IGFkZHJlc3MuZnJvbU91dHB1dFNjcmlwdChjb21taXRPdXRwdXQsIG5ldHdvcmspO1xuXG4gIGNvbnN0IHRhcExlYWZTY3JpcHQ6IHV0eG9saWIuYml0Z28uVGFwTGVhZlNjcmlwdFtdID0gW1xuICAgIHtcbiAgICAgIGNvbnRyb2xCbG9jayxcbiAgICAgIHNjcmlwdDogcGF5bWVudC5yZWRlZW0/Lm91dHB1dCxcbiAgICAgIGxlYWZWZXJzaW9uOiB0YXByb290LklOSVRJQUxfVEFQU0NSSVBUX1ZFUlNJT04sXG4gICAgfSxcbiAgXTtcbiAgY29uc3QgcmV2ZWFsVHJhbnNhY3Rpb25WU2l6ZSA9IGdldEluc2NyaXB0aW9uUmV2ZWFsU2l6ZShwYXltZW50LCBjb250cm9sQmxvY2ssIGNvbW1pdE91dHB1dCwgbmV0d29yayk7XG5cbiAgcmV0dXJuIHtcbiAgICBhZGRyZXNzOiBjb21taXRBZGRyZXNzLFxuICAgIHJldmVhbFRyYW5zYWN0aW9uVlNpemUsXG4gICAgdGFwTGVhZlNjcmlwdDogdGFwTGVhZlNjcmlwdFswXSxcbiAgfTtcbn1cblxuLyoqXG4gKiBAcGFyYW0gcHVia2V5XG4gKiBAcGFyYW0gY29udGVudFR5cGVcbiAqIEBwYXJhbSBpbnNjcmlwdGlvbkRhdGFcbiAqIEByZXR1cm5zIGluc2NyaXB0aW9uIGFkZHJlc3NcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU91dHB1dFNjcmlwdEZvckluc2NyaXB0aW9uKHB1YmtleTogQnVmZmVyLCBjb250ZW50VHlwZTogc3RyaW5nLCBpbnNjcmlwdGlvbkRhdGE6IEJ1ZmZlcik6IEJ1ZmZlciB7XG4gIGNvbnN0IHBheW1lbnQgPSBjcmVhdGVQYXltZW50Rm9ySW5zY3JpcHRpb24ocHVia2V5LCBjb250ZW50VHlwZSwgaW5zY3JpcHRpb25EYXRhKTtcblxuICBhc3NlcnQocGF5bWVudC5vdXRwdXQsICdGYWlsZWQgdG8gY3JlYXRlIGluc2NyaXB0aW9uIG91dHB1dCBzY3JpcHQnKTtcbiAgcmV0dXJuIHBheW1lbnQub3V0cHV0O1xufVxuXG4vKipcbiAqXG4gKiBAcGFyYW0gcHJpdmF0ZUtleVxuICogQHBhcmFtIHRhcExlYWZTY3JpcHRcbiAqIEBwYXJhbSBjb21taXRBZGRyZXNzXG4gKiBAcGFyYW0gcmVjaXBpZW50QWRkcmVzc1xuICogQHBhcmFtIHVuc2lnbmVkQ29tbWl0VHhcbiAqIEBwYXJhbSBuZXR3b3JrXG4gKlxuICogQHJldHVybiBhIGZ1bGx5IHNpZ25lZCByZXZlYWwgdHJhbnNhY3Rpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25SZXZlYWxUcmFuc2FjdGlvbihcbiAgcHJpdmF0ZUtleTogQnVmZmVyLFxuICB0YXBMZWFmU2NyaXB0OiB1dHhvbGliLmJpdGdvLlRhcExlYWZTY3JpcHQsXG4gIGNvbW1pdEFkZHJlc3M6IHN0cmluZyxcbiAgcmVjaXBpZW50QWRkcmVzczogc3RyaW5nLFxuICB1bnNpZ25lZENvbW1pdFR4OiBCdWZmZXIsXG4gIG5ldHdvcms6IE5ldHdvcmtcbik6IHV0eG9saWIuYml0Z28uVXR4b1BzYnQge1xuICBjb25zdCB1bnNlckNvbW1pdFR4biA9IHV0eG9saWIuYml0Z28uY3JlYXRlVHJhbnNhY3Rpb25Gcm9tQnVmZmVyKHVuc2lnbmVkQ29tbWl0VHgsIG5ldHdvcmspO1xuICBjb25zdCBoYXNoID0gdW5zZXJDb21taXRUeG4uZ2V0SGFzaCgpO1xuICBjb25zdCBjb21taXRPdXRwdXQgPSB1dHhvbGliLmFkZHJlc3MudG9PdXRwdXRTY3JpcHQoY29tbWl0QWRkcmVzcywgbmV0d29yayk7XG4gIGNvbnN0IHZvdXQgPSB1bnNlckNvbW1pdFR4bi5vdXRzLmZpbmRJbmRleCgob3V0KSA9PiBvdXQuc2NyaXB0LmVxdWFscyhjb21taXRPdXRwdXQpKTtcblxuICBpZiAodm91dCA9PT0gLTEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgY29tbWl0IHRyYW5zYWN0aW9uJyk7XG4gIH1cblxuICBjb25zdCBwc2J0ID0gYml0Z28uY3JlYXRlUHNidEZvck5ldHdvcmsoeyBuZXR3b3JrIH0pO1xuICBwc2J0LmFkZElucHV0KHtcbiAgICBoYXNoLFxuICAgIGluZGV4OiB2b3V0LFxuICAgIHdpdG5lc3NVdHhvOiB7IHNjcmlwdDogY29tbWl0T3V0cHV0LCB2YWx1ZTogQmlnSW50KHVuc2VyQ29tbWl0VHhuLm91dHNbdm91dF0udmFsdWUpIH0sXG4gICAgdGFwTGVhZlNjcmlwdDogW3RhcExlYWZTY3JpcHRdLFxuICB9KTtcblxuICBjb25zdCByZWNpcGllbnRPdXRwdXQgPSBhZGRyZXNzLnRvT3V0cHV0U2NyaXB0KHJlY2lwaWVudEFkZHJlc3MsIG5ldHdvcmspO1xuICBwc2J0LmFkZE91dHB1dCh7IHNjcmlwdDogcmVjaXBpZW50T3V0cHV0LCB2YWx1ZTogQmlnSW50KDEwXzAwMCkgfSk7XG5cbiAgY29uc3Qgc2lnbmVyID0gRUNQYWlyLmZyb21Qcml2YXRlS2V5KHByaXZhdGVLZXkpO1xuICBjb25zdCBwYXJzZWRDb250cm9sQmxvY2sgPSB0YXByb290LnBhcnNlQ29udHJvbEJsb2NrKGVjY0xpYiwgdGFwTGVhZlNjcmlwdC5jb250cm9sQmxvY2spO1xuICBjb25zdCBsZWFmSGFzaCA9IHRhcHJvb3QuZ2V0VGFwbGVhZkhhc2goZWNjTGliLCBwYXJzZWRDb250cm9sQmxvY2ssIHRhcExlYWZTY3JpcHQuc2NyaXB0IGFzIEJ1ZmZlcik7XG4gIHBzYnQuc2lnblRhcHJvb3RJbnB1dCgwLCBzaWduZXIsIFtsZWFmSGFzaF0pO1xuXG4gIHJldHVybiBwc2J0O1xufVxuIl19
@@ -1,5 +1,3 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
3
1
  import { Network, bitgo } from '@bitgo-beta/utxo-lib';
4
2
  import { SatPoint } from './SatPoint';
5
3
  import { OutputLayout } from './OutputLayout';
@@ -1 +1 @@
1
- {"version":3,"file":"psbt.d.ts","sourceRoot":"","sources":["../../src/psbt.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAW,MAAM,sBAAsB,CAAC;AAI/D,OAAO,EAAiB,QAAQ,EAAE,MAAM,YAAY,CAAC;AAErD,OAAO,EAA0B,YAAY,EAA6B,MAAM,gBAAgB,CAAC;AAGjG,KAAK,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AAEjD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,EAAE,KAAK,CAAC,cAAc,CAAC;IACjC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;IACtB,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC;CACzB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,6BAA6B,GAAG;IAC1C,oBAAoB,EAAE,MAAM,GAAG,MAAM,CAAC;IACtC,aAAa,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;CACrD,CAAC;AAEF,kBAAkB;AAClB,MAAM,MAAM,kBAAkB,GAAG,6BAA6B,CAAC;AAE/D,MAAM,MAAM,iCAAiC,GAAG;IAC9C,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,eAAO,MAAM,6BAA6B;;;;CAIzC,CAAC;AAEF,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,kBAAkB,EAChC,QAAQ,EAAE,aAAa,EAAE,EACzB,OAAO,EAAE,6BAA6B,EACtC,YAAY,EAAE,YAAY,GACzB,KAAK,CAAC,QAAQ,CAwChB;AAWD;;;;;;GAMG;AACH,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,aAAa,EAAE,EACvB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,6BAA6B,EACtC,WAAW,EAAE,iCAAiC,EAC9C,EAAE,cAAsB,EAAE;;CAAK,GAC9B;IAAE,MAAM,EAAE,aAAa,EAAE,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GAAG,SAAS,CA4C/D;AAED,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAgChD,qBAAa,aAAc,SAAQ,KAAK;;CAIvC;AAED;;;;;;;;;GASG;AACH,wBAAgB,gDAAgD,CAC9D,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,kBAAkB,EAChC,OAAO,EAAE,aAAa,GAAG,aAAa,EAAE,EACxC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,6BAA6B,EACtC,WAAW,EAAE,iCAAiC,EAC9C,EACE,qBAA0B,EAC1B,cAAqB,GACtB,GAAE;IACD,qBAAqB,CAAC,EAAE,aAAa,EAAE,CAAC;IACxC,cAAc,CAAC,EAAE,OAAO,CAAC;CACrB,GACL,KAAK,CAAC,QAAQ,CAsBhB"}
1
+ {"version":3,"file":"psbt.d.ts","sourceRoot":"","sources":["../../src/psbt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAW,MAAM,sBAAsB,CAAC;AAI/D,OAAO,EAAiB,QAAQ,EAAE,MAAM,YAAY,CAAC;AAErD,OAAO,EAA0B,YAAY,EAA6B,MAAM,gBAAgB,CAAC;AAGjG,KAAK,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AAEjD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,EAAE,KAAK,CAAC,cAAc,CAAC;IACjC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;IACtB,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC;CACzB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,6BAA6B,GAAG;IAC1C,oBAAoB,EAAE,MAAM,GAAG,MAAM,CAAC;IACtC,aAAa,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;CACrD,CAAC;AAEF,kBAAkB;AAClB,MAAM,MAAM,kBAAkB,GAAG,6BAA6B,CAAC;AAE/D,MAAM,MAAM,iCAAiC,GAAG;IAC9C,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,eAAO,MAAM,6BAA6B;;;;CAIzC,CAAC;AAEF,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,kBAAkB,EAChC,QAAQ,EAAE,aAAa,EAAE,EACzB,OAAO,EAAE,6BAA6B,EACtC,YAAY,EAAE,YAAY,GACzB,KAAK,CAAC,QAAQ,CAwChB;AAWD;;;;;;GAMG;AACH,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,aAAa,EAAE,EACvB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,6BAA6B,EACtC,WAAW,EAAE,iCAAiC,EAC9C,EAAE,cAAsB,EAAE;;CAAK,GAC9B;IAAE,MAAM,EAAE,aAAa,EAAE,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GAAG,SAAS,CA4C/D;AAED,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAgChD,qBAAa,aAAc,SAAQ,KAAK;;CAIvC;AAED;;;;;;;;;GASG;AACH,wBAAgB,gDAAgD,CAC9D,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,kBAAkB,EAChC,OAAO,EAAE,aAAa,GAAG,aAAa,EAAE,EACxC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,6BAA6B,EACtC,WAAW,EAAE,iCAAiC,EAC9C,EACE,qBAA0B,EAC1B,cAAqB,GACtB,GAAE;IACD,qBAAqB,CAAC,EAAE,aAAa,EAAE,CAAC;IACxC,cAAc,CAAC,EAAE,OAAO,CAAC;CACrB,GACL,KAAK,CAAC,QAAQ,CAsBhB"}
package/dist/src/psbt.js CHANGED
@@ -1,6 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createPsbtForSingleInscriptionPassingTransaction = exports.ErrorNoLayout = exports.MAX_UNSPENTS_FOR_OUTPUT_LAYOUT = exports.findOutputLayoutForWalletUnspents = exports.createPsbtFromOutputLayout = exports.DefaultInscriptionConstraints = void 0;
3
+ exports.ErrorNoLayout = exports.MAX_UNSPENTS_FOR_OUTPUT_LAYOUT = exports.DefaultInscriptionConstraints = void 0;
4
+ exports.createPsbtFromOutputLayout = createPsbtFromOutputLayout;
5
+ exports.findOutputLayoutForWalletUnspents = findOutputLayoutForWalletUnspents;
6
+ exports.createPsbtForSingleInscriptionPassingTransaction = createPsbtForSingleInscriptionPassingTransaction;
4
7
  const utxo_lib_1 = require("@bitgo-beta/utxo-lib");
5
8
  const unspents_1 = require("@bitgo-beta/unspents");
6
9
  const OrdOutput_1 = require("./OrdOutput");
@@ -51,7 +54,6 @@ function createPsbtFromOutputLayout(network, inputBuilder, unspents, outputs, ou
51
54
  });
52
55
  return psbt;
53
56
  }
54
- exports.createPsbtFromOutputLayout = createPsbtFromOutputLayout;
55
57
  function toSatRange(p) {
56
58
  const { offset } = (0, SatPoint_1.parseSatPoint)(p);
57
59
  return new SatRange_1.SatRange(offset, offset);
@@ -94,7 +96,6 @@ function findOutputLayoutForWalletUnspents(inputs, satPoint, outputs, constraint
94
96
  });
95
97
  return layout ? { inputs, layout } : undefined;
96
98
  }
97
- exports.findOutputLayoutForWalletUnspents = findOutputLayoutForWalletUnspents;
98
99
  exports.MAX_UNSPENTS_FOR_OUTPUT_LAYOUT = 5;
99
100
  /**
100
101
  * @param inputs - inscription input must come first
@@ -150,5 +151,4 @@ function createPsbtForSingleInscriptionPassingTransaction(network, inputBuilder,
150
151
  }
151
152
  return createPsbtFromOutputLayout(network, inputBuilder, result.inputs, outputs, result.layout);
152
153
  }
153
- exports.createPsbtForSingleInscriptionPassingTransaction = createPsbtForSingleInscriptionPassingTransaction;
154
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHNidC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wc2J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1EQUErRDtBQUMvRCxtREFBZ0U7QUFFaEUsMkNBQXdDO0FBQ3hDLHlDQUFxRDtBQUNyRCx5Q0FBc0M7QUFDdEMsaURBQWlHO0FBQ2pHLGlEQUEwQztBQWlDN0IsUUFBQSw2QkFBNkIsR0FBRztJQUMzQyxlQUFlLEVBQUUsTUFBTSxDQUFDLEtBQU0sQ0FBQztJQUMvQixvQkFBb0IsRUFBRSxNQUFNLENBQUMsS0FBTSxDQUFDO0lBQ3BDLG9CQUFvQixFQUFFLE1BQU0sQ0FBQyxLQUFNLENBQUM7Q0FDckMsQ0FBQztBQUVGLFNBQWdCLDBCQUEwQixDQUN4QyxPQUFnQixFQUNoQixZQUFnQyxFQUNoQyxRQUF5QixFQUN6QixPQUFzQyxFQUN0QyxZQUEwQjtJQUUxQixNQUFNLElBQUksR0FBRyxnQkFBSyxDQUFDLG9CQUFvQixDQUFDLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDOUQsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtRQUN6QixNQUFNLElBQUksS0FBSyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7S0FDdEQ7SUFDRCxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDckIsZ0JBQUssQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLFlBQVksQ0FBQyxVQUFVLEVBQUUsWUFBWSxDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsUUFBUSxDQUFDLENBQzNHLENBQUM7SUFDRixNQUFNLFFBQVEsR0FBRyxxQkFBUyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLHFCQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoRixNQUFN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O0NBQ0Y7QUFKRCxzQ0FJQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILFNBQWdCLGdEQUFnRCxDQUM5RCxPQUFnQixFQUNoQixZQUFnQyxFQUNoQyxPQUF3QyxFQUN4QyxRQUFrQixFQUNsQixPQUFzQyxFQUN0QyxXQUE4QyxFQUM5QyxFQUNFLHFCQUFxQixHQUFHLEVBQUUsRUFDMUIsY0FBYyxHQUFHLElBQUksTUFJbkIsRUFBRTtJQUVOLGdDQUFnQztJQUNoQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDMUIsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUN4QixNQUFNLElBQUksS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUM7U0FDakQ7UUFDRCxPQUFPLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ3RCO0lBRUQsTUFBTSxNQUFNLEdBQUcsaUNBQWlDLENBQzlDLENBQUMsT0FBTyxFQUFFLEdBQUcscUJBQXFCLENBQUMsRUFDbkMsUUFBUSxFQUNSLE9BQU8sRUFDUCxXQUFXLEVBQ1gsRUFBRSxjQUFjLEVBQUUsQ0FDbkIsQ0FBQztJQUVGLElBQUksQ0FBQyxNQUFNLEVBQUU7UUFDWCxNQUFNLElBQUksYUFBYSxFQUFFLENBQUM7S0FDM0I7SUFFRCxPQUFPLDBCQUEwQixDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ2xHLENBQUM7QUFwQ0QsNEdBb0NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmV0d29yaywgYml0Z28sIGFkZHJlc3MgfSBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5pbXBvcnQgeyBEaW1lbnNpb25zLCBWaXJ0dWFsU2l6ZXMgfSBmcm9tICdAYml0Z28tYmV0YS91bnNwZW50cyc7XG5cbmltcG9ydCB7IE9yZE91dHB1dCB9IGZyb20gJy4vT3JkT3V0cHV0JztcbmltcG9ydCB7IHBhcnNlU2F0UG9pbnQsIFNhdFBvaW50IH0gZnJvbSAnLi9TYXRQb2ludCc7XG5pbXBvcnQgeyBTYXRSYW5nZSB9IGZyb20gJy4vU2F0UmFuZ2UnO1xuaW1wb3J0IHsgZ2V0T3JkT3V0cHV0c0ZvckxheW91dCwgT3V0cHV0TGF5b3V0LCB0b0FycmF5LCBmaW5kT3V0cHV0TGF5b3V0IH0gZnJvbSAnLi9PdXRwdXRMYXlvdXQnO1xuaW1wb3J0IHsgcG93ZXJzZXQgfSBmcm9tICcuL2NvbWJpbmF0aW9ucyc7XG5cbnR5cGUgV2FsbGV0VW5zcGVudCA9IGJpdGdvLldhbGxldFVuc3BlbnQ8YmlnaW50PjtcblxuZXhwb3J0IHR5cGUgV2FsbGV0T3V0cHV0UGF0aCA9IHtcbiAgY2hhaW46IGJpdGdvLkNoYWluQ29kZTtcbiAgaW5kZXg6IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIFdhbGxldElucHV0QnVpbGRlciA9IHtcbiAgd2FsbGV0S2V5czogYml0Z28uUm9vdFdhbGxldEtleXM7XG4gIHNpZ25lcjogYml0Z28uS2V5TmFtZTtcbiAgY29zaWduZXI6IGJpdGdvLktleU5hbWU7XG59O1xuXG4vKipcbiAqIERlc2NyaWJlcyBhbGwgb3V0cHV0cyBvZiBhbiBpbnNjcmlwdGlvbiB0cmFuc2FjdGlvblxuICovXG5leHBvcnQgdHlwZSBJbnNjcmlwdGlvblRyYW5zYWN0aW9uT3V0cHV0cyA9IHtcbiAgaW5zY3JpcHRpb25SZWNpcGllbnQ6IHN0cmluZyB8IEJ1ZmZlcjtcbiAgY2hhbmdlT3V0cHV0czogW1dhbGxldE91dHB1dFBhdGgsIFdhbGxldE91dHB1dFBhdGhdO1xufTtcblxuLyoqIEBkZXByZWNhdGVkICovXG5leHBvcnQgdHlwZSBJbnNjcmlwdGlvbk91dHB1dHMgPSBJbnNjcmlwdGlvblRyYW5zYWN0aW9uT3V0cHV0cztcblxuZXhwb3J0IHR5cGUgSW5zY3JpcHRpb25UcmFuc2FjdGlvbkNvbnN0cmFpbnRzID0ge1xuICBmZWVSYXRlU2F0S0I6IG51bWJlcjtcbiAgbWluQ2hhbmdlT3V0cHV0PzogYmlnaW50O1xuICBtaW5JbnNjcmlwdGlvbk91dHB1dD86IGJpZ2ludDtcbiAgbWF4SW5zY3JpcHRpb25PdXRwdXQ/OiBiaWdpbnQ7XG59O1xuXG5leHBvcnQgY29uc3QgRGVmYXVsdEluc2NyaXB0aW9uQ29uc3RyYWludHMgPSB7XG4gIG1pbkNoYW5nZU91dHB1dDogQmlnSW50KDEwXzAwMCksXG4gIG1pbkluc2NyaXB0aW9uT3V0cHV0OiBCaWdJbnQoMTBfMDAwKSxcbiAgbWF4SW5zY3JpcHRpb25PdXRwdXQ6IEJpZ0ludCgyMF8wMDApLFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVBzYnRGcm9tT3V0cHV0TGF5b3V0KFxuICBuZXR3b3JrOiBOZXR3b3JrLFxuICBpbnB1dEJ1aWxkZXI6IFdhbGxldElucHV0QnVpbGRlcixcbiAgdW5zcGVudHM6IFdhbGxldFVuc3BlbnRbXSxcbiAgb3V0cHV0czogSW5zY3JpcHRpb25UcmFuc2FjdGlvbk91dHB1dHMsXG4gIG91dHB1dExheW91dDogT3V0cHV0TGF5b3V0XG4pOiBiaXRnby5VdHhvUHNidCB7XG4gIGNvbnN0IHBzYnQgPSBiaXRnby5jcmVhdGVQc2J0Rm9yTmV0d29yayh7IG5ldHdvcms6IG5ldHdvcmsgfSk7XG4gIGlmICh1bnNwZW50cy5sZW5ndGggPT09IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYG11c3QgcHJvdmlkZSBhdCBsZWFzdCBvbmUgdW5zcGVudGApO1xuICB9XG4gIHVuc3BlbnRzLmZvckVhY2goKHUpID0+XG4gICAgYml0Z28uYWRkV2FsbGV0VW5zcGVudFRvUHNidChwc2J0LCB1LCBpbnB1dEJ1aWxkZXIud2FsbGV0S2V5cywgaW5wdXRCdWlsZGVyLnNpZ25lciwgaW5wdXRCdWlsZGVyLmNvc2lnbmVyKVxuICApO1xuICBjb25zdCBvcmRJbnB1dCA9IE9yZE91dHB1dC5qb2luQWxsKHVuc3BlbnRzLm1hcCgodSkgPT4gbmV3IE9yZE91dHB1dCh1LnZhbHVlKSkpO1xuICBjb25zdCBvcmRPdXRwdXRzID0gZ2V0T3JkT3V0cHV0c0ZvckxheW91dChvcmRJbnB1dCwgb3V0cHV0TGF5b3V0KTtcbiAgdG9BcnJheShvcmRPdXRwdXRzKS5mb3JFYWNoKChvcmRPdXRwdXQpID0+IHtcbiAgICBpZiAob3JkT3V0cHV0ID09PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHN3aXRjaCAob3JkT3V0cHV0KSB7XG4gICAgICAvLyBza2lwIHBhZGRpbmcgb3V0cHV0cyBhbmQgZmVlIG91dHB1dCAodmlydHVhbClcbiAgICAgIGNhc2UgbnVsbDpcbiAgICAgIGNhc2Ugb3JkT3V0cHV0cy5mZWVPdXRwdXQ6XG4gICAgICAgIHJldHVybjtcbiAgICAgIC8vIGFkZCBwYWRkaW5nIG91dHB1dHNcbiAgICAgIGNhc2Ugb3JkT3V0cHV0cy5maXJzdENoYW5nZU91dHB1dDpcbiAgICAgIGNhc2Ugb3JkT3V0cHV0cy5zZWNvbmRDaGFuZ2VPdXRwdXQ6XG4gICAgICAgIGNvbnN0IHsgY2hhaW4sIGluZGV4IH0gPVxuICAgICAgICAgIG9yZE91dHB1dCA9PT0gb3JkT3V0cHV0cy5maXJzdENoYW5nZU91dHB1dCA/IG91dHB1dHMuY2hhbmdlT3V0cHV0c1swXSA6IG91dHB1dHMuY2hhbmdlT3V0cHV0c1sxXTtcbiAgICAgICAgYml0Z28uYWRkV2FsbGV0T3V0cHV0VG9Qc2J0KHBzYnQsIGlucHV0QnVpbGRlci53YWxsZXRLZXlzLCBjaGFpbiwgaW5kZXgsIG9yZE91dHB1dC52YWx1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgLy8gYWRkIGFjdHVhbCBpbnNjcmlwdGlvbiBvdXRwdXRcbiAgICAgIGNhc2Ugb3JkT3V0cHV0cy5pbnNjcmlwdGlvbk91dHB1dDpcbiAgICAgICAgbGV0IHsgaW5zY3JpcHRpb25SZWNpcGllbnQgfSA9IG91dHB1dHM7XG4gICAgICAgIGlmICh0eXBlb2YgaW5zY3JpcHRpb25SZWNpcGllbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgaW5zY3JpcHRpb25SZWNpcGllbnQgPSBhZGRyZXNzLnRvT3V0cHV0U2NyaXB0KGluc2NyaXB0aW9uUmVjaXBpZW50LCBuZXR3b3JrKTtcbiAgICAgICAgfVxuICAgICAgICBwc2J0LmFkZE91dHB1dCh7XG4gICAgICAgICAgc2NyaXB0OiBpbnNjcmlwdGlvblJlY2lwaWVudCxcbiAgICAgICAgICB2YWx1ZTogb3JkT3V0cHV0LnZhbHVlLFxuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIHBzYnQ7XG59XG5cbmZ1bmN0aW9uIHRvU2F0UmFuZ2UocDogU2F0UG9pbnQpIHtcbiAgY29uc3QgeyBvZmZzZXQgfSA9IHBhcnNlU2F0UG9pbnQocCk7XG4gIHJldHVybiBuZXcgU2F0UmFuZ2Uob2Zmc2V0LCBvZmZzZXQpO1xufVxuXG5mdW5jdGlvbiBnZXRGZWUodnNpemU6IG51bWJlciwgcmF0ZVNhdFBlcktCOiBudW1iZXIpOiBiaWdpbnQge1xuICByZXR1cm4gQmlnSW50KE1hdGguY2VpbCgodnNpemUgKiByYXRlU2F0UGVyS0IpIC8gMTAwMCkpO1xufVxuXG4vKipcbiAqIEBwYXJhbSBpbnB1dHMgLSBpbnNjcmlwdGlvbiBpbnB1dCBtdXN0IGNvbWUgZmlyc3RcbiAqIEBwYXJhbSBzYXRQb2ludCAtIGxvY2F0aW9uIG9mIHRoZSBpbnNjcmlwdGlvblxuICogQHBhcmFtIG91dHB1dHNcbiAqIEBwYXJhbSBjb25zdHJhaW50c1xuICogQHBhcmFtIG1pbmltaXplSW5wdXRzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kT3V0cHV0TGF5b3V0Rm9yV2FsbGV0VW5zcGVudHMoXG4gIGlucHV0czogV2FsbGV0VW5zcGVudFtdLFxuICBzYXRQb2ludDogU2F0UG9pbnQsXG4gIG91dHB1dHM6IEluc2NyaXB0aW9uVHJhbnNhY3Rpb25PdXRwdXRzLFxuICBjb25zdHJhaW50czogSW5zY3JpcHRpb25UcmFuc2FjdGlvbkNvbnN0cmFpbnRzLFxuICB7IG1pbmltaXplSW5wdXRzID0gZmFsc2UgfSA9IHt9XG4pOiB7IGlucHV0czogV2FsbGV0VW5zcGVudFtdOyBsYXlvdXQ6IE91dHB1dExheW91dCB9IHwgdW5kZWZpbmVkIHtcbiAgaWYgKG1pbmltaXplSW5wdXRzKSB7XG4gICAgcmV0dXJuIGZpbmRTbWFsbGVzdE91dHB1dExheW91dEZvcldhbGxldFVuc3BlbnRzKGlucHV0cywgc2F0UG9pbnQsIG91dHB1dHMsIGNvbnN0cmFpbnRzKTtcbiAgfVxuXG4gIGlmIChpbnB1dHMubGVuZ3RoID09PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBtdXN0IHByb3ZpZGUgYXQgbGVhc3Qgb25lIGlucHV0YCk7XG4gIH1cblxuICBpZiAob3V0cHV0cy5jaGFuZ2VPdXRwdXRzWzBdLmNoYWluICE9PSBvdXRwdXRzLmNoYW5nZU91dHB1dHNbMV0uY2hhaW4pIHtcbiAgICAvLyBvdGhlcndpc2Ugb3VyIGZlZSBjYWxjIGlzIHRvbyBjb21wbGljYXRlZFxuICAgIHRocm93IG5ldyBFcnJvcihgd2FsbGV0IG91dHB1dHMgbXVzdCBiZSBvbiBzYW1lIGNoYWluYCk7XG4gIH1cblxuICBjb25zdCB7XG4gICAgbWluQ2hhbmdlT3V0cHV0ID0gRGVmYXVsdEluc2NyaXB0aW9uQ29uc3RyYWludHMubWluQ2hhbmdlT3V0cHV0LFxuICAgIG1pbkluc2NyaXB0aW9uT3V0cHV0ID0gRGVmYXVsdEluc2NyaXB0aW9uQ29uc3RyYWludHMubWluSW5zY3JpcHRpb25PdXRwdXQsXG4gICAgbWF4SW5zY3JpcHRpb25PdXRwdXQgPSBEZWZhdWx0SW5zY3JpcHRpb25Db25zdHJhaW50cy5tYXhJbnNjcmlwdGlvbk91dHB1dCxcbiAgfSA9IGNvbnN0cmFpbnRzO1xuXG4gIC8vIEpvaW4gYWxsIHRoZSBpbnB1dHMgaW50byBhIHNpbmdsZSBpbnNjcmlwdGlvbk91dHB1dC5cbiAgLy8gRm9yIHRoZSBwdXJwb3NlcyBvZiBmaW5kaW5nIGEgbGF5b3V0IHRoZXJlIGlzIG5vIGRpZmZlcmVuY2UuXG4gIGNvbnN0IGluc2NyaXB0aW9uT3V0cHV0ID0gT3JkT3V0cHV0LmpvaW5BbGwoXG4gICAgaW5wdXRzLm1hcCgoaSkgPT4gbmV3IE9yZE91dHB1dChpLnZhbHVlLCBpID09PSBpbnB1dHNbMF0gPyBbdG9TYXRSYW5nZShzYXRQb2ludCldIDogW10pKVxuICApO1xuICBjb25zdCBsYXlvdXQgPSBmaW5kT3V0cHV0TGF5b3V0KGluc2NyaXB0aW9uT3V0cHV0LCB7XG4gICAgbWluQ2hhbmdlT3V0cHV0LFxuICAgIG1pbkluc2NyaXB0aW9uT3V0cHV0LFxuICAgIG1heEluc2NyaXB0aW9uT3V0cHV0LFxuICAgIGZlZUZpeGVkOiBnZXRGZWUoXG4gICAgICBWaXJ0dWFsU2l6ZXMudHhTZWdPdmVyaGVhZFZTaXplICtcbiAgICAgICAgRGltZW5zaW9ucy5mcm9tVW5zcGVudHMoaW5wdXRzLCB7XG4gICAgICAgICAgcDJ0cjogeyBzY3JpcHRQYXRoTGV2ZWw6IDEgfSxcbiAgICAgICAgICBwMnRyTXVzaWcyOiB7IHNjcmlwdFBhdGhMZXZlbDogdW5kZWZpbmVkIH0sXG4gICAgICAgIH0pLmdldElucHV0c1ZTaXplKCksXG4gICAgICBjb25zdHJhaW50cy5mZWVSYXRlU2F0S0JcbiAgICApLFxuICAgIGZlZVBlck91dHB1dDogZ2V0RmVlKFxuICAgICAgRGltZW5zaW9ucy5mcm9tT3V0cHV0T25DaGFpbihvdXRwdXRzLmNoYW5nZU91dHB1dHNbMF0uY2hhaW4pLmdldE91dHB1dHNWU2l6ZSgpLFxuICAgICAgY29uc3RyYWludHMuZmVlUmF0ZVNhdEtCXG4gICAgKSxcbiAgfSk7XG5cbiAgcmV0dXJuIGxheW91dCA/IHsgaW5wdXRzLCBsYXlvdXQgfSA6IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGNvbnN0IE1BWF9VTlNQRU5UU19GT1JfT1VUUFVUX0xBWU9VVCA9IDU7XG5cbi8qKlxuICogQHBhcmFtIGlucHV0cyAtIGluc2NyaXB0aW9uIGlucHV0IG11c3QgY29tZSBmaXJzdFxuICogQHBhcmFtIHNhdFBvaW50IC0gbG9jYXRpb24gb2YgdGhlIGluc2NyaXB0aW9uXG4gKiBAcGFyYW0gb3V0cHV0c1xuICogQHBhcmFtIGNvbnN0cmFpbnRzXG4gKi9cbmZ1bmN0aW9uIGZpbmRTbWFsbGVzdE91dHB1dExheW91dEZvcldhbGxldFVuc3BlbnRzKFxuICBpbnB1dHM6IFdhbGxldFVuc3BlbnRbXSxcbiAgc2F0UG9pbnQ6IFNhdFBvaW50LFxuICBvdXRwdXRzOiBJbnNjcmlwdGlvblRyYW5zYWN0aW9uT3V0cHV0cyxcbiAgY29uc3RyYWludHM6IEluc2NyaXB0aW9uVHJhbnNhY3Rpb25Db25zdHJhaW50c1xuKTogeyBpbnB1dHM6IFdhbGxldFVuc3BlbnRbXTsgbGF5b3V0OiBPdXRwdXRMYXlvdXQgfSB8IHVuZGVmaW5lZCB7XG4gIGlmIChNQVhfVU5TUEVOVFNfRk9SX09VVFBVVF9MQVlPVVQgPCBpbnB1dHMubGVuZ3RoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBpbnB1dCBhcnJheSBpcyB0b28gbGFyZ2VgKTtcbiAgfVxuICAvLyBjcmVhdGUgcG93ZXJzZXQgb2YgYWxsIHN1cHBsZW1lbnRhcnkgaW5wdXRzIGFuZCBmaW5kIHRoZSBjaGVhcGVzdCByZXN1bHRcbiAgY29uc3QgaW5wdXRzQXJyID0gW2lucHV0cywgLi4ucG93ZXJzZXQoaW5wdXRzLnNsaWNlKDEpKS5tYXAoKHMpID0+IFtpbnB1dHNbMF0sIC4uLnNdKV07XG4gIHJldHVybiBpbnB1dHNBcnJcbiAgICAubWFwKChpbnB1dHMpID0+IGZpbmRPdXRwdXRMYXlvdXRGb3JXYWxsZXRVbnNwZW50cyhpbnB1dHMsIHNhdFBvaW50LCBvdXRwdXRzLCBjb25zdHJhaW50cykpXG4gICAgLnJlZHVjZSgoYmVzdCwgbmV4dCkgPT4ge1xuICAgICAgaWYgKGJlc3QgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gbmV4dDtcbiAgICAgIH1cbiAgICAgIGlmIChuZXh0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIGJlc3Q7XG4gICAgICB9XG4gICAgICByZXR1cm4gYmVzdC5sYXlvdXQuZmVlT3V0cHV0IDwgbmV4dC5sYXlvdXQuZmVlT3V0cHV0ID8gYmVzdCA6IG5leHQ7XG4gICAgfSk7XG59XG5cbmV4cG9ydCBjbGFzcyBFcnJvck5vTGF5b3V0IGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcignQ291bGQgbm90IGZpbmQgb3V0cHV0IGxheW91dCBmb3IgaW5zY3JpcHRpb24gcGFzc2luZyB0cmFuc2FjdGlvbicpO1xuICB9XG59XG5cbi8qKlxuICogQHBhcmFtIG5ldHdvcmtcbiAqIEBwYXJhbSBpbnB1dEJ1aWxkZXJcbiAqIEBwYXJhbSB1bnNwZW50XG4gKiBAcGFyYW0gc2F0UG9pbnRcbiAqIEBwYXJhbSBvdXRwdXRzXG4gKiBAcGFyYW0gY29uc3RyYWludHNcbiAqIEBwYXJhbSBzdXBwbGVtZW50YXJ5VW5zcGVudHMgLSBhZGRpdGlvbmFsIGlucHV0cyB0byBjb3ZlciBmZWUuXG4gKiBAcGFyYW0gW21pbmltaXplSW5wdXRzPXRydWVdIC0gdHJ5IHRvIGZpbmQgaW5wdXQgY29tYmluYXRpb24gd2l0aCBtaW5pbWFsIGZlZXMuIExpbWl0cyBzdXBwbGVtZW50YXJ5VW5zcGVudHMgdG8gNC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVBzYnRGb3JTaW5nbGVJbnNjcmlwdGlvblBhc3NpbmdUcmFuc2FjdGlvbihcbiAgbmV0d29yazogTmV0d29yayxcbiAgaW5wdXRCdWlsZGVyOiBXYWxsZXRJbnB1dEJ1aWxkZXIsXG4gIHVuc3BlbnQ6IFdhbGxldFVuc3BlbnQgfCBXYWxsZXRVbnNwZW50W10sXG4gIHNhdFBvaW50OiBTYXRQb2ludCxcbiAgb3V0cHV0czogSW5zY3JpcHRpb25UcmFuc2FjdGlvbk91dHB1dHMsXG4gIGNvbnN0cmFpbnRzOiBJbnNjcmlwdGlvblRyYW5zYWN0aW9uQ29uc3RyYWludHMsXG4gIHtcbiAgICBzdXBwbGVtZW50YXJ5VW5zcGVudHMgPSBbXSxcbiAgICBtaW5pbWl6ZUlucHV0cyA9IHRydWUsXG4gIH06IHtcbiAgICBzdXBwbGVtZW50YXJ5VW5zcGVudHM/OiBXYWxsZXRVbnNwZW50W107XG4gICAgbWluaW1pemVJbnB1dHM/OiBib29sZWFuO1xuICB9ID0ge31cbik6IGJpdGdvLlV0eG9Qc2J0IHtcbiAgLy8gc3VwcG9ydCBmb3IgbGVnYWN5IGNhbGwgc3R5bGVcbiAgaWYgKEFycmF5LmlzQXJyYXkodW5zcGVudCkpIHtcbiAgICBpZiAodW5zcGVudC5sZW5ndGggIT09IDEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgY2FuIG9ubHkgcGFzcyBzaW5nbGUgdW5zcGVudGApO1xuICAgIH1cbiAgICB1bnNwZW50ID0gdW5zcGVudFswXTtcbiAgfVxuXG4gIGNvbnN0IHJlc3VsdCA9IGZpbmRPdXRwdXRMYXlvdXRGb3JXYWxsZXRVbnNwZW50cyhcbiAgICBbdW5zcGVudCwgLi4uc3VwcGxlbWVudGFyeVVuc3BlbnRzXSxcbiAgICBzYXRQb2ludCxcbiAgICBvdXRwdXRzLFxuICAgIGNvbnN0cmFpbnRzLFxuICAgIHsgbWluaW1pemVJbnB1dHMgfVxuICApO1xuXG4gIGlmICghcmVzdWx0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yTm9MYXlvdXQoKTtcbiAgfVxuXG4gIHJldHVybiBjcmVhdGVQc2J0RnJvbU91dHB1dExheW91dChuZXR3b3JrLCBpbnB1dEJ1aWxkZXIsIHJlc3VsdC5pbnB1dHMsIG91dHB1dHMsIHJlc3VsdC5sYXlvdXQpO1xufVxuIl19
154
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHNidC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wc2J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQThDQSxnRUE4Q0M7QUFrQkQsOEVBa0RDO0FBa0RELDRHQW9DQztBQXRQRCxtREFBK0Q7QUFDL0QsbURBQWdFO0FBRWhFLDJDQUF3QztBQUN4Qyx5Q0FBcUQ7QUFDckQseUNBQXNDO0FBQ3RDLGlEQUFpRztBQUNqRyxpREFBMEM7QUFpQzdCLFFBQUEsNkJBQTZCLEdBQUc7SUFDM0MsZUFBZSxFQUFFLE1BQU0sQ0FBQyxLQUFNLENBQUM7SUFDL0Isb0JBQW9CLEVBQUUsTUFBTSxDQUFDLEtBQU0sQ0FBQztJQUNwQyxvQkFBb0IsRUFBRSxNQUFNLENBQUMsS0FBTSxDQUFDO0NBQ3JDLENBQUM7QUFFRixTQUFnQiwwQkFBMEIsQ0FDeEMsT0FBZ0IsRUFDaEIsWUFBZ0MsRUFDaEMsUUFBeUIsRUFDekIsT0FBc0MsRUFDdEMsWUFBMEI7SUFFMUIsTUFBTSxJQUFJLEdBQUcsZ0JBQUssQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzlELElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUMxQixNQUFNLElBQUksS0FBSyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUNELFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUNyQixnQkFBSyxDQUFDLHNCQUFzQixDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsWUFBWSxDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FDM0csQ0FBQztJQUNGLE1BQU0sUUFBUSxHQUFHLHFCQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUkscUJBQVMs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SUFBSSxDQUFDO0lBQ3JFLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQUVELE1BQWEsYUFBYyxTQUFRLEtBQUs7SUFDdEM7UUFDRSxLQUFLLENBQUMsa0VBQWtFLENBQUMsQ0FBQztJQUM1RSxDQUFDO0NBQ0Y7QUFKRCxzQ0FJQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILFNBQWdCLGdEQUFnRCxDQUM5RCxPQUFnQixFQUNoQixZQUFnQyxFQUNoQyxPQUF3QyxFQUN4QyxRQUFrQixFQUNsQixPQUFzQyxFQUN0QyxXQUE4QyxFQUM5QyxFQUNFLHFCQUFxQixHQUFHLEVBQUUsRUFDMUIsY0FBYyxHQUFHLElBQUksTUFJbkIsRUFBRTtJQUVOLGdDQUFnQztJQUNoQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUMzQixJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDekIsTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1FBQ2xELENBQUM7UUFDRCxPQUFPLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxNQUFNLE1BQU0sR0FBRyxpQ0FBaUMsQ0FDOUMsQ0FBQyxPQUFPLEVBQUUsR0FBRyxxQkFBcUIsQ0FBQyxFQUNuQyxRQUFRLEVBQ1IsT0FBTyxFQUNQLFdBQVcsRUFDWCxFQUFFLGNBQWMsRUFBRSxDQUNuQixDQUFDO0lBRUYsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1osTUFBTSxJQUFJLGFBQWEsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxPQUFPLDBCQUEwQixDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ2xHLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZXR3b3JrLCBiaXRnbywgYWRkcmVzcyB9IGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCB7IERpbWVuc2lvbnMsIFZpcnR1YWxTaXplcyB9IGZyb20gJ0BiaXRnby1iZXRhL3Vuc3BlbnRzJztcblxuaW1wb3J0IHsgT3JkT3V0cHV0IH0gZnJvbSAnLi9PcmRPdXRwdXQnO1xuaW1wb3J0IHsgcGFyc2VTYXRQb2ludCwgU2F0UG9pbnQgfSBmcm9tICcuL1NhdFBvaW50JztcbmltcG9ydCB7IFNhdFJhbmdlIH0gZnJvbSAnLi9TYXRSYW5nZSc7XG5pbXBvcnQgeyBnZXRPcmRPdXRwdXRzRm9yTGF5b3V0LCBPdXRwdXRMYXlvdXQsIHRvQXJyYXksIGZpbmRPdXRwdXRMYXlvdXQgfSBmcm9tICcuL091dHB1dExheW91dCc7XG5pbXBvcnQgeyBwb3dlcnNldCB9IGZyb20gJy4vY29tYmluYXRpb25zJztcblxudHlwZSBXYWxsZXRVbnNwZW50ID0gYml0Z28uV2FsbGV0VW5zcGVudDxiaWdpbnQ+O1xuXG5leHBvcnQgdHlwZSBXYWxsZXRPdXRwdXRQYXRoID0ge1xuICBjaGFpbjogYml0Z28uQ2hhaW5Db2RlO1xuICBpbmRleDogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgV2FsbGV0SW5wdXRCdWlsZGVyID0ge1xuICB3YWxsZXRLZXlzOiBiaXRnby5Sb290V2FsbGV0S2V5cztcbiAgc2lnbmVyOiBiaXRnby5LZXlOYW1lO1xuICBjb3NpZ25lcjogYml0Z28uS2V5TmFtZTtcbn07XG5cbi8qKlxuICogRGVzY3JpYmVzIGFsbCBvdXRwdXRzIG9mIGFuIGluc2NyaXB0aW9uIHRyYW5zYWN0aW9uXG4gKi9cbmV4cG9ydCB0eXBlIEluc2NyaXB0aW9uVHJhbnNhY3Rpb25PdXRwdXRzID0ge1xuICBpbnNjcmlwdGlvblJlY2lwaWVudDogc3RyaW5nIHwgQnVmZmVyO1xuICBjaGFuZ2VPdXRwdXRzOiBbV2FsbGV0T3V0cHV0UGF0aCwgV2FsbGV0T3V0cHV0UGF0aF07XG59O1xuXG4vKiogQGRlcHJlY2F0ZWQgKi9cbmV4cG9ydCB0eXBlIEluc2NyaXB0aW9uT3V0cHV0cyA9IEluc2NyaXB0aW9uVHJhbnNhY3Rpb25PdXRwdXRzO1xuXG5leHBvcnQgdHlwZSBJbnNjcmlwdGlvblRyYW5zYWN0aW9uQ29uc3RyYWludHMgPSB7XG4gIGZlZVJhdGVTYXRLQjogbnVtYmVyO1xuICBtaW5DaGFuZ2VPdXRwdXQ/OiBiaWdpbnQ7XG4gIG1pbkluc2NyaXB0aW9uT3V0cHV0PzogYmlnaW50O1xuICBtYXhJbnNjcmlwdGlvbk91dHB1dD86IGJpZ2ludDtcbn07XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0SW5zY3JpcHRpb25Db25zdHJhaW50cyA9IHtcbiAgbWluQ2hhbmdlT3V0cHV0OiBCaWdJbnQoMTBfMDAwKSxcbiAgbWluSW5zY3JpcHRpb25PdXRwdXQ6IEJpZ0ludCgxMF8wMDApLFxuICBtYXhJbnNjcmlwdGlvbk91dHB1dDogQmlnSW50KDIwXzAwMCksXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUHNidEZyb21PdXRwdXRMYXlvdXQoXG4gIG5ldHdvcms6IE5ldHdvcmssXG4gIGlucHV0QnVpbGRlcjogV2FsbGV0SW5wdXRCdWlsZGVyLFxuICB1bnNwZW50czogV2FsbGV0VW5zcGVudFtdLFxuICBvdXRwdXRzOiBJbnNjcmlwdGlvblRyYW5zYWN0aW9uT3V0cHV0cyxcbiAgb3V0cHV0TGF5b3V0OiBPdXRwdXRMYXlvdXRcbik6IGJpdGdvLlV0eG9Qc2J0IHtcbiAgY29uc3QgcHNidCA9IGJpdGdvLmNyZWF0ZVBzYnRGb3JOZXR3b3JrKHsgbmV0d29yazogbmV0d29yayB9KTtcbiAgaWYgKHVuc3BlbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgbXVzdCBwcm92aWRlIGF0IGxlYXN0IG9uZSB1bnNwZW50YCk7XG4gIH1cbiAgdW5zcGVudHMuZm9yRWFjaCgodSkgPT5cbiAgICBiaXRnby5hZGRXYWxsZXRVbnNwZW50VG9Qc2J0KHBzYnQsIHUsIGlucHV0QnVpbGRlci53YWxsZXRLZXlzLCBpbnB1dEJ1aWxkZXIuc2lnbmVyLCBpbnB1dEJ1aWxkZXIuY29zaWduZXIpXG4gICk7XG4gIGNvbnN0IG9yZElucHV0ID0gT3JkT3V0cHV0LmpvaW5BbGwodW5zcGVudHMubWFwKCh1KSA9PiBuZXcgT3JkT3V0cHV0KHUudmFsdWUpKSk7XG4gIGNvbnN0IG9yZE91dHB1dHMgPSBnZXRPcmRPdXRwdXRzRm9yTGF5b3V0KG9yZElucHV0LCBvdXRwdXRMYXlvdXQpO1xuICB0b0FycmF5KG9yZE91dHB1dHMpLmZvckVhY2goKG9yZE91dHB1dCkgPT4ge1xuICAgIGlmIChvcmRPdXRwdXQgPT09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgc3dpdGNoIChvcmRPdXRwdXQpIHtcbiAgICAgIC8vIHNraXAgcGFkZGluZyBvdXRwdXRzIGFuZCBmZWUgb3V0cHV0ICh2aXJ0dWFsKVxuICAgICAgY2FzZSBudWxsOlxuICAgICAgY2FzZSBvcmRPdXRwdXRzLmZlZU91dHB1dDpcbiAgICAgICAgcmV0dXJuO1xuICAgICAgLy8gYWRkIHBhZGRpbmcgb3V0cHV0c1xuICAgICAgY2FzZSBvcmRPdXRwdXRzLmZpcnN0Q2hhbmdlT3V0cHV0OlxuICAgICAgY2FzZSBvcmRPdXRwdXRzLnNlY29uZENoYW5nZU91dHB1dDpcbiAgICAgICAgY29uc3QgeyBjaGFpbiwgaW5kZXggfSA9XG4gICAgICAgICAgb3JkT3V0cHV0ID09PSBvcmRPdXRwdXRzLmZpcnN0Q2hhbmdlT3V0cHV0ID8gb3V0cHV0cy5jaGFuZ2VPdXRwdXRzWzBdIDogb3V0cHV0cy5jaGFuZ2VPdXRwdXRzWzFdO1xuICAgICAgICBiaXRnby5hZGRXYWxsZXRPdXRwdXRUb1BzYnQocHNidCwgaW5wdXRCdWlsZGVyLndhbGxldEtleXMsIGNoYWluLCBpbmRleCwgb3JkT3V0cHV0LnZhbHVlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICAvLyBhZGQgYWN0dWFsIGluc2NyaXB0aW9uIG91dHB1dFxuICAgICAgY2FzZSBvcmRPdXRwdXRzLmluc2NyaXB0aW9uT3V0cHV0OlxuICAgICAgICBsZXQgeyBpbnNjcmlwdGlvblJlY2lwaWVudCB9ID0gb3V0cHV0cztcbiAgICAgICAgaWYgKHR5cGVvZiBpbnNjcmlwdGlvblJlY2lwaWVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICBpbnNjcmlwdGlvblJlY2lwaWVudCA9IGFkZHJlc3MudG9PdXRwdXRTY3JpcHQoaW5zY3JpcHRpb25SZWNpcGllbnQsIG5ldHdvcmspO1xuICAgICAgICB9XG4gICAgICAgIHBzYnQuYWRkT3V0cHV0KHtcbiAgICAgICAgICBzY3JpcHQ6IGluc2NyaXB0aW9uUmVjaXBpZW50LFxuICAgICAgICAgIHZhbHVlOiBvcmRPdXRwdXQudmFsdWUsXG4gICAgICAgIH0pO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gcHNidDtcbn1cblxuZnVuY3Rpb24gdG9TYXRSYW5nZShwOiBTYXRQb2ludCkge1xuICBjb25zdCB7IG9mZnNldCB9ID0gcGFyc2VTYXRQb2ludChwKTtcbiAgcmV0dXJuIG5ldyBTYXRSYW5nZShvZmZzZXQsIG9mZnNldCk7XG59XG5cbmZ1bmN0aW9uIGdldEZlZSh2c2l6ZTogbnVtYmVyLCByYXRlU2F0UGVyS0I6IG51bWJlcik6IGJpZ2ludCB7XG4gIHJldHVybiBCaWdJbnQoTWF0aC5jZWlsKCh2c2l6ZSAqIHJhdGVTYXRQZXJLQikgLyAxMDAwKSk7XG59XG5cbi8qKlxuICogQHBhcmFtIGlucHV0cyAtIGluc2NyaXB0aW9uIGlucHV0IG11c3QgY29tZSBmaXJzdFxuICogQHBhcmFtIHNhdFBvaW50IC0gbG9jYXRpb24gb2YgdGhlIGluc2NyaXB0aW9uXG4gKiBAcGFyYW0gb3V0cHV0c1xuICogQHBhcmFtIGNvbnN0cmFpbnRzXG4gKiBAcGFyYW0gbWluaW1pemVJbnB1dHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmRPdXRwdXRMYXlvdXRGb3JXYWxsZXRVbnNwZW50cyhcbiAgaW5wdXRzOiBXYWxsZXRVbnNwZW50W10sXG4gIHNhdFBvaW50OiBTYXRQb2ludCxcbiAgb3V0cHV0czogSW5zY3JpcHRpb25UcmFuc2FjdGlvbk91dHB1dHMsXG4gIGNvbnN0cmFpbnRzOiBJbnNjcmlwdGlvblRyYW5zYWN0aW9uQ29uc3RyYWludHMsXG4gIHsgbWluaW1pemVJbnB1dHMgPSBmYWxzZSB9ID0ge31cbik6IHsgaW5wdXRzOiBXYWxsZXRVbnNwZW50W107IGxheW91dDogT3V0cHV0TGF5b3V0IH0gfCB1bmRlZmluZWQge1xuICBpZiAobWluaW1pemVJbnB1dHMpIHtcbiAgICByZXR1cm4gZmluZFNtYWxsZXN0T3V0cHV0TGF5b3V0Rm9yV2FsbGV0VW5zcGVudHMoaW5wdXRzLCBzYXRQb2ludCwgb3V0cHV0cywgY29uc3RyYWludHMpO1xuICB9XG5cbiAgaWYgKGlucHV0cy5sZW5ndGggPT09IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYG11c3QgcHJvdmlkZSBhdCBsZWFzdCBvbmUgaW5wdXRgKTtcbiAgfVxuXG4gIGlmIChvdXRwdXRzLmNoYW5nZU91dHB1dHNbMF0uY2hhaW4gIT09IG91dHB1dHMuY2hhbmdlT3V0cHV0c1sxXS5jaGFpbikge1xuICAgIC8vIG90aGVyd2lzZSBvdXIgZmVlIGNhbGMgaXMgdG9vIGNvbXBsaWNhdGVkXG4gICAgdGhyb3cgbmV3IEVycm9yKGB3YWxsZXQgb3V0cHV0cyBtdXN0IGJlIG9uIHNhbWUgY2hhaW5gKTtcbiAgfVxuXG4gIGNvbnN0IHtcbiAgICBtaW5DaGFuZ2VPdXRwdXQgPSBEZWZhdWx0SW5zY3JpcHRpb25Db25zdHJhaW50cy5taW5DaGFuZ2VPdXRwdXQsXG4gICAgbWluSW5zY3JpcHRpb25PdXRwdXQgPSBEZWZhdWx0SW5zY3JpcHRpb25Db25zdHJhaW50cy5taW5JbnNjcmlwdGlvbk91dHB1dCxcbiAgICBtYXhJbnNjcmlwdGlvbk91dHB1dCA9IERlZmF1bHRJbnNjcmlwdGlvbkNvbnN0cmFpbnRzLm1heEluc2NyaXB0aW9uT3V0cHV0LFxuICB9ID0gY29uc3RyYWludHM7XG5cbiAgLy8gSm9pbiBhbGwgdGhlIGlucHV0cyBpbnRvIGEgc2luZ2xlIGluc2NyaXB0aW9uT3V0cHV0LlxuICAvLyBGb3IgdGhlIHB1cnBvc2VzIG9mIGZpbmRpbmcgYSBsYXlvdXQgdGhlcmUgaXMgbm8gZGlmZmVyZW5jZS5cbiAgY29uc3QgaW5zY3JpcHRpb25PdXRwdXQgPSBPcmRPdXRwdXQuam9pbkFsbChcbiAgICBpbnB1dHMubWFwKChpKSA9PiBuZXcgT3JkT3V0cHV0KGkudmFsdWUsIGkgPT09IGlucHV0c1swXSA/IFt0b1NhdFJhbmdlKHNhdFBvaW50KV0gOiBbXSkpXG4gICk7XG4gIGNvbnN0IGxheW91dCA9IGZpbmRPdXRwdXRMYXlvdXQoaW5zY3JpcHRpb25PdXRwdXQsIHtcbiAgICBtaW5DaGFuZ2VPdXRwdXQsXG4gICAgbWluSW5zY3JpcHRpb25PdXRwdXQsXG4gICAgbWF4SW5zY3JpcHRpb25PdXRwdXQsXG4gICAgZmVlRml4ZWQ6IGdldEZlZShcbiAgICAgIFZpcnR1YWxTaXplcy50eFNlZ092ZXJoZWFkVlNpemUgK1xuICAgICAgICBEaW1lbnNpb25zLmZyb21VbnNwZW50cyhpbnB1dHMsIHtcbiAgICAgICAgICBwMnRyOiB7IHNjcmlwdFBhdGhMZXZlbDogMSB9LFxuICAgICAgICAgIHAydHJNdXNpZzI6IHsgc2NyaXB0UGF0aExldmVsOiB1bmRlZmluZWQgfSxcbiAgICAgICAgfSkuZ2V0SW5wdXRzVlNpemUoKSxcbiAgICAgIGNvbnN0cmFpbnRzLmZlZVJhdGVTYXRLQlxuICAgICksXG4gICAgZmVlUGVyT3V0cHV0OiBnZXRGZWUoXG4gICAgICBEaW1lbnNpb25zLmZyb21PdXRwdXRPbkNoYWluKG91dHB1dHMuY2hhbmdlT3V0cHV0c1swXS5jaGFpbikuZ2V0T3V0cHV0c1ZTaXplKCksXG4gICAgICBjb25zdHJhaW50cy5mZWVSYXRlU2F0S0JcbiAgICApLFxuICB9KTtcblxuICByZXR1cm4gbGF5b3V0ID8geyBpbnB1dHMsIGxheW91dCB9IDogdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgY29uc3QgTUFYX1VOU1BFTlRTX0ZPUl9PVVRQVVRfTEFZT1VUID0gNTtcblxuLyoqXG4gKiBAcGFyYW0gaW5wdXRzIC0gaW5zY3JpcHRpb24gaW5wdXQgbXVzdCBjb21lIGZpcnN0XG4gKiBAcGFyYW0gc2F0UG9pbnQgLSBsb2NhdGlvbiBvZiB0aGUgaW5zY3JpcHRpb25cbiAqIEBwYXJhbSBvdXRwdXRzXG4gKiBAcGFyYW0gY29uc3RyYWludHNcbiAqL1xuZnVuY3Rpb24gZmluZFNtYWxsZXN0T3V0cHV0TGF5b3V0Rm9yV2FsbGV0VW5zcGVudHMoXG4gIGlucHV0czogV2FsbGV0VW5zcGVudFtdLFxuICBzYXRQb2ludDogU2F0UG9pbnQsXG4gIG91dHB1dHM6IEluc2NyaXB0aW9uVHJhbnNhY3Rpb25PdXRwdXRzLFxuICBjb25zdHJhaW50czogSW5zY3JpcHRpb25UcmFuc2FjdGlvbkNvbnN0cmFpbnRzXG4pOiB7IGlucHV0czogV2FsbGV0VW5zcGVudFtdOyBsYXlvdXQ6IE91dHB1dExheW91dCB9IHwgdW5kZWZpbmVkIHtcbiAgaWYgKE1BWF9VTlNQRU5UU19GT1JfT1VUUFVUX0xBWU9VVCA8IGlucHV0cy5sZW5ndGgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGlucHV0IGFycmF5IGlzIHRvbyBsYXJnZWApO1xuICB9XG4gIC8vIGNyZWF0ZSBwb3dlcnNldCBvZiBhbGwgc3VwcGxlbWVudGFyeSBpbnB1dHMgYW5kIGZpbmQgdGhlIGNoZWFwZXN0IHJlc3VsdFxuICBjb25zdCBpbnB1dHNBcnIgPSBbaW5wdXRzLCAuLi5wb3dlcnNldChpbnB1dHMuc2xpY2UoMSkpLm1hcCgocykgPT4gW2lucHV0c1swXSwgLi4uc10pXTtcbiAgcmV0dXJuIGlucHV0c0FyclxuICAgIC5tYXAoKGlucHV0cykgPT4gZmluZE91dHB1dExheW91dEZvcldhbGxldFVuc3BlbnRzKGlucHV0cywgc2F0UG9pbnQsIG91dHB1dHMsIGNvbnN0cmFpbnRzKSlcbiAgICAucmVkdWNlKChiZXN0LCBuZXh0KSA9PiB7XG4gICAgICBpZiAoYmVzdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBuZXh0O1xuICAgICAgfVxuICAgICAgaWYgKG5leHQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gYmVzdDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBiZXN0LmxheW91dC5mZWVPdXRwdXQgPCBuZXh0LmxheW91dC5mZWVPdXRwdXQgPyBiZXN0IDogbmV4dDtcbiAgICB9KTtcbn1cblxuZXhwb3J0IGNsYXNzIEVycm9yTm9MYXlvdXQgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCdDb3VsZCBub3QgZmluZCBvdXRwdXQgbGF5b3V0IGZvciBpbnNjcmlwdGlvbiBwYXNzaW5nIHRyYW5zYWN0aW9uJyk7XG4gIH1cbn1cblxuLyoqXG4gKiBAcGFyYW0gbmV0d29ya1xuICogQHBhcmFtIGlucHV0QnVpbGRlclxuICogQHBhcmFtIHVuc3BlbnRcbiAqIEBwYXJhbSBzYXRQb2ludFxuICogQHBhcmFtIG91dHB1dHNcbiAqIEBwYXJhbSBjb25zdHJhaW50c1xuICogQHBhcmFtIHN1cHBsZW1lbnRhcnlVbnNwZW50cyAtIGFkZGl0aW9uYWwgaW5wdXRzIHRvIGNvdmVyIGZlZS5cbiAqIEBwYXJhbSBbbWluaW1pemVJbnB1dHM9dHJ1ZV0gLSB0cnkgdG8gZmluZCBpbnB1dCBjb21iaW5hdGlvbiB3aXRoIG1pbmltYWwgZmVlcy4gTGltaXRzIHN1cHBsZW1lbnRhcnlVbnNwZW50cyB0byA0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUHNidEZvclNpbmdsZUluc2NyaXB0aW9uUGFzc2luZ1RyYW5zYWN0aW9uKFxuICBuZXR3b3JrOiBOZXR3b3JrLFxuICBpbnB1dEJ1aWxkZXI6IFdhbGxldElucHV0QnVpbGRlcixcbiAgdW5zcGVudDogV2FsbGV0VW5zcGVudCB8IFdhbGxldFVuc3BlbnRbXSxcbiAgc2F0UG9pbnQ6IFNhdFBvaW50LFxuICBvdXRwdXRzOiBJbnNjcmlwdGlvblRyYW5zYWN0aW9uT3V0cHV0cyxcbiAgY29uc3RyYWludHM6IEluc2NyaXB0aW9uVHJhbnNhY3Rpb25Db25zdHJhaW50cyxcbiAge1xuICAgIHN1cHBsZW1lbnRhcnlVbnNwZW50cyA9IFtdLFxuICAgIG1pbmltaXplSW5wdXRzID0gdHJ1ZSxcbiAgfToge1xuICAgIHN1cHBsZW1lbnRhcnlVbnNwZW50cz86IFdhbGxldFVuc3BlbnRbXTtcbiAgICBtaW5pbWl6ZUlucHV0cz86IGJvb2xlYW47XG4gIH0gPSB7fVxuKTogYml0Z28uVXR4b1BzYnQge1xuICAvLyBzdXBwb3J0IGZvciBsZWdhY3kgY2FsbCBzdHlsZVxuICBpZiAoQXJyYXkuaXNBcnJheSh1bnNwZW50KSkge1xuICAgIGlmICh1bnNwZW50Lmxlbmd0aCAhPT0gMSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBjYW4gb25seSBwYXNzIHNpbmdsZSB1bnNwZW50YCk7XG4gICAgfVxuICAgIHVuc3BlbnQgPSB1bnNwZW50WzBdO1xuICB9XG5cbiAgY29uc3QgcmVzdWx0ID0gZmluZE91dHB1dExheW91dEZvcldhbGxldFVuc3BlbnRzKFxuICAgIFt1bnNwZW50LCAuLi5zdXBwbGVtZW50YXJ5VW5zcGVudHNdLFxuICAgIHNhdFBvaW50LFxuICAgIG91dHB1dHMsXG4gICAgY29uc3RyYWludHMsXG4gICAgeyBtaW5pbWl6ZUlucHV0cyB9XG4gICk7XG5cbiAgaWYgKCFyZXN1bHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3JOb0xheW91dCgpO1xuICB9XG5cbiAgcmV0dXJuIGNyZWF0ZVBzYnRGcm9tT3V0cHV0TGF5b3V0KG5ldHdvcmssIGlucHV0QnVpbGRlciwgcmVzdWx0LmlucHV0cywgb3V0cHV0cywgcmVzdWx0LmxheW91dCk7XG59XG4iXX0=