@bitgo/sdk-coin-tempo 1.7.0 → 1.8.0

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.
@@ -126,6 +126,11 @@ export declare class Tip20Transaction extends BaseTransaction {
126
126
  s: Hex;
127
127
  yParity: number;
128
128
  } | undefined;
129
+ /**
130
+ * Recover the signer address from the transaction signature.
131
+ * @returns Checksummed sender address, or undefined if unsigned
132
+ */
133
+ getSenderAddress(): string | undefined;
129
134
  toJson(): TxData;
130
135
  toBroadcastFormat(): Promise<string>;
131
136
  /** @inheritdoc */
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/lib/transaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/lib/transaction.ts"],"names":[],"mappings":"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"}
@@ -78,7 +78,7 @@ class Tip20Transaction extends sdk_core_1.BaseTransaction {
78
78
  callsTuples,
79
79
  accessTuples,
80
80
  '0x', // nonceKey (reserved for 2D nonce system)
81
- ethers_1.ethers.utils.hexlify(this.txRequest.nonce),
81
+ this.txRequest.nonce ? this.bigintToHex(BigInt(this.txRequest.nonce)) : '0x',
82
82
  '0x', // validBefore (reserved for time bounds)
83
83
  '0x', // validAfter (reserved for time bounds)
84
84
  this.txRequest.feeToken || '0x',
@@ -150,6 +150,22 @@ class Tip20Transaction extends sdk_core_1.BaseTransaction {
150
150
  getSignature() {
151
151
  return this._signature;
152
152
  }
153
+ /**
154
+ * Recover the signer address from the transaction signature.
155
+ * @returns Checksummed sender address, or undefined if unsigned
156
+ */
157
+ getSenderAddress() {
158
+ if (!this._signature) {
159
+ return undefined;
160
+ }
161
+ const unsignedHex = this.serializeTransaction();
162
+ const msgHash = ethers_1.ethers.utils.keccak256(ethers_1.ethers.utils.arrayify(unsignedHex));
163
+ return ethers_1.ethers.utils.recoverAddress(msgHash, {
164
+ r: this._signature.r,
165
+ s: this._signature.s,
166
+ recoveryParam: this._signature.yParity,
167
+ });
168
+ }
153
169
  toJson() {
154
170
  return {
155
171
  type: this.txRequest.type,
@@ -185,4 +201,4 @@ class Tip20Transaction extends sdk_core_1.BaseTransaction {
185
201
  }
186
202
  }
187
203
  exports.Tip20Transaction = Tip20Transaction;
188
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7R0FLRzs7O0FBRUgsOENBQTBGO0FBRTFGLG1DQUFnQztBQUVoQyxtQ0FBNkM7QUF3QzdDLE1BQWEsZ0JBQWlCLFNBQVEsMEJBQWU7SUFLbkQsWUFBWSxXQUFpQyxFQUFFLE9BQWdDLEVBQUUsYUFBK0IsRUFBRTtRQUNoSCxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUM7UUFDekIsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUM7UUFDOUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3RDLE9BQU8sRUFBRSxFQUFFLENBQUMsRUFBRTtZQUNkLEtBQUssRUFBRSxJQUFBLDBCQUFrQixFQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUU7WUFDL0MsSUFBSSxFQUFFLEVBQUUsQ0FBQyxLQUFLO1NBQ2YsQ0FBQyxDQUFDLENBQUM7UUFDSixNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLElBQUEsMEJBQWtCLEVBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzNGLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLFVBQVUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDekYsQ0FBQztJQUVELElBQUksSUFBSTtRQUNOLE9BQU8sMEJBQWUsQ0FBQyxJ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SCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzlELE9BQU8sZUFBTSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsZUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUNuRSxDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1AsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELFlBQVk7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7Q0FDRjtBQXRNRCw0Q0FzTUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRJUC0yMCBUcmFuc2FjdGlvblxuICpcbiAqIFJlcHJlc2VudHMgYSBUZW1wbyBBY2NvdW50IEFic3RyYWN0aW9uIChBQSkgdHJhbnNhY3Rpb24gKHR5cGUgMHg3NilcbiAqIFN1cHBvcnRzIHNpbmdsZSBvciBiYXRjaCBUSVAtMjAgdG9rZW4gdHJhbnNmZXJzIHdpdGggbWVtb3NcbiAqL1xuXG5pbXBvcnQgeyBCYXNlVHJhbnNhY3Rpb24sIFBhcnNlVHJhbnNhY3Rpb25FcnJvciwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgeyBldGhlcnMgfSBmcm9tICdldGhlcnMnO1xuaW1wb3J0IHsgQWRkcmVzcywgSGV4LCBUaXAyME9wZXJhdGlvbiB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgYW1vdW50VG9UaXAyMFVuaXRzIH0gZnJvbSAnLi91dGlscyc7XG5cbi8qKlxuICogVElQLTIwIFRyYW5zYWN0aW9uIFJlcXVlc3QgU3RydWN0dXJlXG4gKiBSZXByZXNlbnRzIHRoZSByYXcgdHJhbnNhY3Rpb24gZGF0YSBmb3IgVGVtcG8gQWNjb3VudCBBYnN0cmFjdGlvbiAoRUlQLTc3MDIpXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGlwMjBUcmFuc2FjdGlvblJlcXVlc3Qge1xuICAvKiogVHJhbnNhY3Rpb24gdHlwZSAoMHg3NiBmb3IgVGVtcG8gQUEpICovXG4gIHR5cGU6IG51bWJlciB8IHN0cmluZztcbiAgLyoqIENoYWluIElEIGZvciB0aGUgVGVtcG8gbmV0d29yayAqL1xuICBjaGFpbklkOiBudW1iZXI7XG4gIC8qKiBUcmFuc2FjdGlvbiBub25jZSAqL1xuICBub25jZTogbnVtYmVyO1xuICAvKiogTWF4aW11bSBmZWUgcGVyIGdhcyAoRUlQLTE1NTkpICovXG4gIG1heEZlZVBlckdhczogYmlnaW50O1xuICAvKiogTWF4aW11bSBwcmlvcml0eSBmZWUgcGVyIGdhcyAoRUlQLTE1NTkpICovXG4gIG1heFByaW9yaXR5RmVlUGVyR2FzOiBiaWdpbnQ7XG4gIC8qKiBHYXMgbGltaXQgZm9yIHRoZSB0cmFuc2FjdGlvbiAqL1xuICBnYXM6IGJpZ2ludDtcbiAgLyoqIEFycmF5IG9mIGNhbGxzIHRvIGV4ZWN1dGUgaW4gdGhpcyB0cmFuc2FjdGlvbiAqL1xuICBjYWxsczogeyB0bzogQWRkcmVzczsgZGF0YTogSGV4OyB2YWx1ZTogYmlnaW50IH1bXTtcbiAgLyoqIEFjY2VzcyBsaXN0IChvcHRpb25hbCwgdHlwaWNhbGx5IGVtcHR5IGZvciBUSVAtMjApICovXG4gIGFjY2Vzc0xpc3Q/OiB1bmtub3duW107XG4gIC8qKiBPcHRpb25hbCBUSVAtMjAgdG9rZW4gdG8gdXNlIGZvciBwYXlpbmcgZmVlcyAqL1xuICBmZWVUb2tlbj86IEFkZHJlc3M7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHhEYXRhIHtcbiAgdHlwZTogbnVtYmVyIHwgc3RyaW5nO1xuICBjaGFpbklkOiBudW1iZXI7XG4gIG5vbmNlOiBudW1iZXI7XG4gIG1heEZlZVBlckdhczogc3RyaW5nO1xuICBtYXhQcmlvcml0eUZlZVBlckdhczogc3RyaW5nO1xuICBnYXM6IHN0cmluZztcbiAgY2FsbENvdW50OiBudW1iZXI7XG4gIGZlZVRva2VuPzogc3RyaW5nO1xuICBvcGVyYXRpb25zOiBUaXAyME9wZXJhdGlvbltdO1xuICBzaWduYXR1cmU/OiB7IHI6IEhleDsgczogSGV4OyB5UGFyaXR5OiBudW1iZXIgfTtcbn1cblxuZXhwb3J0IGNsYXNzIFRpcDIwVHJhbnNhY3Rpb24gZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb24ge1xuICBwcml2YXRlIHR4UmVxdWVzdDogVGlwMjBUcmFuc2FjdGlvblJlcXVlc3Q7XG4gIHByaXZhdGUgX29wZXJhdGlvbnM6IFRpcDIwT3BlcmF0aW9uW107XG4gIHByaXZhdGUgX3NpZ25hdHVyZT86IHsgcjogSGV4OyBzOiBIZXg7IHlQYXJpdHk6IG51bWJlciB9O1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPiwgcmVxdWVzdDogVGlwMjBUcmFuc2FjdGlvblJlcXVlc3QsIG9wZXJhdGlvbnM6IFRpcDIwT3BlcmF0aW9uW10gPSBbXSkge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgICB0aGlzLnR4UmVxdWVzdCA9IHJlcXVlc3Q7XG4gICAgdGhpcy5fb3BlcmF0aW9ucyA9IG9wZXJhdGlvbnM7XG4gICAgdGhpcy5fb3V0cHV0cyA9IG9wZXJhdGlvbnMubWFwKChvcCkgPT4gKHtcbiAgICAgIGFkZHJlc3M6IG9wLnRvLFxuICAgICAgdmFsdWU6IGFtb3VudFRvVGlwMjBVbml0cyhvcC5hbW91bnQpLnRvU3RyaW5nKCksXG4gICAgICBjb2luOiBvcC50b2tlbixcbiAgICB9KSk7XG4gICAgY29uc3QgdG90YWxVbml0cyA9IG9wZXJhdGlvbnMucmVkdWNlKChzdW0sIG9wKSA9PiBzdW0gKyBhbW91bnRUb1RpcDIwVW5pdHMob3AuYW1vdW50KSwgMG4pO1xuICAgIHRoaXMuX2lucHV0cyA9IFt7IGFkZHJlc3M6ICcnLCB2YWx1ZTogdG90YWxVbml0cy50b1N0cmluZygpLCBjb2luOiBfY29pbkNvbmZpZy5uYW1lIH1dO1xuICB9XG5cbiAgZ2V0IHR5cGUoKTogVHJhbnNhY3Rpb25UeXBlIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLlNlbmQ7XG4gIH1cblxuICBjYW5TaWduKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgYXN5bmMgc2VyaWFsaXplKHNpZ25hdHVyZT86IHsgcjogSGV4OyBzOiBIZXg7IHlQYXJpdHk6IG51bWJlciB9KTogUHJvbWlzZTxIZXg+IHtcbiAgICBjb25zdCBzaWcgPSBzaWduYXR1cmUgfHwgdGhpcy5fc2lnbmF0dXJlO1xuICAgIHJldHVybiB0aGlzLnNlcmlhbGl6ZVRyYW5zYWN0aW9uKHNpZyk7XG4gIH1cblxuICAvKipcbiAgICogRW5jb2RlIGNhbGxzIGFzIFJMUCB0dXBsZXMgZm9yIGF0b21pYyBiYXRjaCBleGVjdXRpb25cbiAgICogQHJldHVybnMgQXJyYXkgb2YgW3RvLCB2YWx1ZSwgZGF0YV0gdHVwbGVzXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIGVuY29kZUNhbGxzQXNUdXBsZXMoKTogYW55W10ge1xuICAgIHJldHVybiB0aGlzLnR4UmVxdWVzdC5jYWxscy5tYXAoKGNhbGwpID0+IFtjYWxsLnRvLCB0aGlzLmJpZ2ludFRvSGV4KGNhbGwudmFsdWUpLCBjYWxsLmRhdGFdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbmNvZGUgRUlQLTI5MzAgYWNjZXNzIGxpc3QgYXMgUkxQIHR1cGxlc1xuICAgKiBAcmV0dXJucyBBcnJheSBvZiBbYWRkcmVzcywgc3RvcmFnZUtleXNbXV0gdHVwbGVzXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIGVuY29kZUFjY2Vzc0xpc3QoKTogYW55W10ge1xuICAgIHJldHVybiAodGhpcy50eFJlcXVlc3QuYWNjZXNzTGlzdCA/PyBbXSkubWFwKChpdGVtOiBhbnkpID0+IFtpdGVtLmFkZHJlc3MsIGl0ZW0uc3RvcmFnZUtleXMgfHwgW11dKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0IGJpZ2ludCB0byBoZXggc3RyaW5nIGZvciBSTFAgZW5jb2RpbmdcbiAgICogQHBhcmFtIHZhbHVlIGJpZ2ludCB2YWx1ZSB0byBjb252ZXJ0XG4gICAqIEByZXR1cm5zIEhleCBzdHJpbmdcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgYmlnaW50VG9IZXgodmFsdWU6IGJpZ2ludCk6IHN0cmluZyB7XG4gICAgaWYgKHZhbHVlID09PSAwbikge1xuICAgICAgcmV0dXJuICcweCc7XG4gICAgfVxuICAgIGNvbnN0IGhleCA9IHZhbHVlLnRvU3RyaW5nKDE2KTtcbiAgICByZXR1cm4gJzB4JyArIChoZXgubGVuZ3RoICUgMiA/ICcwJyA6ICcnKSArIGhleDtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCBiYXNlIFJMUCBkYXRhIGFycmF5IHBlciBUZW1wbyBFSVAtNzcwMiBzcGVjaWZpY2F0aW9uXG4gICAqIEBwYXJhbSBjYWxsc1R1cGxlcyBFbmNvZGVkIGNhbGxzXG4gICAqIEBwYXJhbSBhY2Nlc3NUdXBsZXMgRW5jb2RlZCBhY2Nlc3MgbGlzdFxuICAgKiBAcmV0dXJucyBSTFAtcmVhZHkgYXJyYXkgb2YgdHJhbnNhY3Rpb24gZmllbGRzXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIGJ1aWxkQmFzZVJscERhdGEoY2FsbHNUdXBsZXM6IGFueVtdLCBhY2Nlc3NUdXBsZXM6IGFueVtdKTogYW55W10ge1xuICAgIHJldHVybiBbXG4gICAgICBldGhlcnMudXRpbHMuaGV4bGlmeSh0aGlzLnR4UmVxdWVzdC5jaGFpbklkKSxcbiAgICAgIHRoaXMudHhSZXF1ZXN0Lm1heFByaW9yaXR5RmVlUGVyR2FzID8gdGhpcy5iaWdpbnRUb0hleCh0aGlzLnR4UmVxdWVzdC5tYXhQcmlvcml0eUZlZVBlckdhcykgOiAnMHgnLFxuICAgICAgdGhpcy5iaWdpbnRUb0hleCh0aGlzLnR4UmVxdWVzdC5tYXhGZWVQZXJHYXMpLFxuICAgICAgdGhpcy5iaWdpbnRUb0hleCh0aGlzLnR4UmVxdWVzdC5nYXMpLFxuICAgICAgY2FsbHNUdXBsZXMsXG4gICAgICBhY2Nlc3NUdXBsZXMsXG4gICAgICAnMHgnLCAvLyBub25jZUtleSAocmVzZXJ2ZWQgZm9yIDJEIG5vbmNlIHN5c3RlbSlcbiAgICAgIGV0aGVycy51dGlscy5oZXhsaWZ5KHRoaXMudHhSZXF1ZXN0Lm5vbmNlKSxcbiAgICAgICcweCcsIC8vIHZhbGlkQmVmb3JlIChyZXNlcnZlZCBmb3IgdGltZSBib3VuZHMpXG4gICAgICAnMHgnLCAvLyB2YWxpZEFmdGVyIChyZXNlcnZlZCBmb3IgdGltZSBib3VuZHMpXG4gICAgICB0aGlzLnR4UmVxdWVzdC5mZWVUb2tlbiB8fCAnMHgnLFxuICAgICAgJzB4JywgLy8gZmVlUGF5ZXJTaWduYXR1cmUgKHJlc2VydmVkIGZvciBzcG9uc29yc2hpcClcbiAgICAgIFtdLCAvLyBhdXRob3JpemF0aW9uTGlzdCAoRUlQLTc3MDIpXG4gICAgXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbmNvZGUgc2VjcDI1NmsxIHNpZ25hdHVyZSBhcyA2NS1ieXRlIGVudmVsb3BlXG4gICAqIEBwYXJhbSBzaWduYXR1cmUgRUNEU0Egc2lnbmF0dXJlIGNvbXBvbmVudHNcbiAgICogQHJldHVybnMgSGV4IHN0cmluZyBvZiBjb25jYXRlbmF0ZWQgciAoMzIpICsgcyAoMzIpICsgdiAoMSkgYnl0ZXNcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgZW5jb2RlU2lnbmF0dXJlKHNpZ25hdHVyZTogeyByOiBIZXg7IHM6IEhleDsgeVBhcml0eTogbnVtYmVyIH0pOiBzdHJpbmcge1xuICAgIGNvbnN0IHYgPSBzaWduYXR1cmUueVBhcml0eSArIDI3O1xuICAgIGNvbnN0IHNpZ25hdHVyZUJ5dGVzID0gZXRoZXJzLnV0aWxzLmNvbmNhdChbXG4gICAgICBldGhlcnMudXRpbHMuemVyb1BhZChzaWduYXR1cmUuciwgMzIpLFxuICAgICAgZXRoZXJzLnV0aWxzLnplcm9QYWQoc2lnbmF0dXJlLnMsIDMyKSxcbiAgICAgIGV0aGVycy51dGlscy5oZXhsaWZ5KHYpLFxuICAgIF0pO1xuICAgIHJldHVybiBldGhlcnMudXRpbHMuaGV4bGlmeShzaWduYXR1cmVCeXRlcyk7XG4gIH1cblxuICAvKipcbiAgICogUkxQIGVuY29kZSBhbmQgcHJlcGVuZCB0cmFuc2FjdGlvbiB0eXBlIGJ5dGVcbiAgICogQHBhcmFtIHJscERhdGEgVHJhbnNhY3Rpb24gZmllbGRzIGFycmF5XG4gICAqIEByZXR1cm5zIEhleCBzdHJpbmcgd2l0aCAweDc2IHByZWZpeFxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBybHBFbmNvZGVXaXRoVHlwZVByZWZpeChybHBEYXRhOiBhbnlbXSk6IEhleCB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGVuY29kZWQgPSBldGhlcnMudXRpbHMuUkxQLmVuY29kZShybHBEYXRhKTtcbiAgICAgIHJldHVybiAoJzB4NzYnICsgZW5jb2RlZC5zbGljZSgyKSkgYXMgSGV4O1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2VUcmFuc2FjdGlvbkVycm9yKGBGYWlsZWQgdG8gUkxQIGVuY29kZSB0cmFuc2FjdGlvbjogJHtlcnJvcn1gKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2VyaWFsaXplIFRlbXBvIEFBIHRyYW5zYWN0aW9uICh0eXBlIDB4NzYpIHBlciBFSVAtNzcwMiBzcGVjaWZpY2F0aW9uXG4gICAqIEZvcm1hdDogMHg3NiB8fCBSTFAoW2NoYWluSWQsIGZlZXMsIGdhcywgY2FsbHMsIGFjY2Vzc0xpc3QsIG5vbmNlIGZpZWxkcywgZmVlVG9rZW4sIHNwb25zb3JzaGlwLCBhdXRoTGlzdCwgc2lnbmF0dXJlP10pXG4gICAqIEBwYXJhbSBzaWduYXR1cmUgT3B0aW9uYWwgRUNEU0Egc2lnbmF0dXJlIChvbWl0IGZvciB1bnNpZ25lZCB0cmFuc2FjdGlvbnMpXG4gICAqIEByZXR1cm5zIFJMUC1lbmNvZGVkIHRyYW5zYWN0aW9uIGhleCBzdHJpbmdcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgc2VyaWFsaXplVHJhbnNhY3Rpb24oc2lnbmF0dXJlPzogeyByOiBIZXg7IHM6IEhleDsgeVBhcml0eTogbnVtYmVyIH0pOiBIZXgge1xuICAgIGNvbnN0IGNhbGxzVHVwbGVzID0gdGhpcy5lbmNvZGVDYWxsc0FzVHVwbGVzKCk7XG4gICAgY29uc3QgYWNjZXNzVHVwbGVzID0gdGhpcy5lbmNvZGVBY2Nlc3NMaXN0KCk7XG4gICAgY29uc3QgcmxwRGF0YSA9IHRoaXMuYnVpbGRCYXNlUmxwRGF0YShjYWxsc1R1cGxlcywgYWNjZXNzVHVwbGVzKTtcblxuICAgIGlmIChzaWduYXR1cmUpIHtcbiAgICAgIHJscERhdGEucHVzaCh0aGlzLmVuY29kZVNpZ25hdHVyZShzaWduYXR1cmUpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5ybHBFbmNvZGVXaXRoVHlwZVByZWZpeChybHBEYXRhKTtcbiAgfVxuXG4gIGdldE9wZXJhdGlvbnMoKTogVGlwMjBPcGVyYXRpb25bXSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLl9vcGVyYXRpb25zXTtcbiAgfVxuXG4gIGdldEZlZVRva2VuKCk6IEFkZHJlc3MgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnR4UmVxdWVzdC5mZWVUb2tlbjtcbiAgfVxuXG4gIGdldE9wZXJhdGlvbkNvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMudHhSZXF1ZXN0LmNhbGxzLmxlbmd0aDtcbiAgfVxuXG4gIGlzQmF0Y2goKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudHhSZXF1ZXN0LmNhbGxzLmxlbmd0aCA+IDE7XG4gIH1cblxuICBzZXRTaWduYXR1cmUoc2lnbmF0dXJlOiB7IHI6IEhleDsgczogSGV4OyB5UGFyaXR5OiBudW1iZXIgfSk6IHZvaWQge1xuICAgIHRoaXMuX3NpZ25hdHVyZSA9IHNpZ25hdHVyZTtcbiAgfVxuXG4gIGdldFNpZ25hdHVyZSgpOiB7IHI6IEhleDsgczogSGV4OyB5UGFyaXR5OiBudW1iZXIgfSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX3NpZ25hdHVyZTtcbiAgfVxuXG4gIHRvSnNvbigpOiBUeERhdGEge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiB0aGlzLnR4UmVxdWVzdC50eXBlLFxuICAgICAgY2hhaW5JZDogdGhpcy50eFJlcXVlc3QuY2hhaW5JZCxcbiAgICAgIG5vbmNlOiB0aGlzLnR4UmVxdWVzdC5ub25jZSxcbiAgICAgIG1heEZlZVBlckdhczogdGhpcy50eFJlcXVlc3QubWF4RmVlUGVyR2FzLnRvU3RyaW5nKCksXG4gICAgICBtYXhQcmlvcml0eUZlZVBlckdhczogdGhpcy50eFJlcXVlc3QubWF4UHJpb3JpdHlGZWVQZXJHYXMudG9TdHJpbmcoKSxcbiAgICAgIGdhczogdGhpcy50eFJlcXVlc3QuZ2FzLnRvU3RyaW5nKCksXG4gICAgICBjYWxsQ291bnQ6IHRoaXMudHhSZXF1ZXN0LmNhbGxzLmxlbmd0aCxcbiAgICAgIGZlZVRva2VuOiB0aGlzLnR4UmVxdWVzdC5mZWVUb2tlbixcbiAgICAgIG9wZXJhdGlvbnM6IHRoaXMuX29wZXJhdGlvbnMsXG4gICAgICBzaWduYXR1cmU6IHRoaXMuX3NpZ25hdHVyZSxcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgdG9Ccm9hZGNhc3RGb3JtYXQoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5zZXJpYWxpemUodGhpcy5fc2lnbmF0dXJlKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBnZXQgaWQoKTogc3RyaW5nIHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgc2VyaWFsaXplZCA9IHRoaXMuc2VyaWFsaXplVHJhbnNhY3Rpb24odGhpcy5fc2lnbmF0dXJlKTtcbiAgICAgIHJldHVybiBldGhlcnMudXRpbHMua2VjY2FrMjU2KGV0aGVycy51dGlscy5hcnJheWlmeShzZXJpYWxpemVkKSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gJ3BlbmRpbmcnO1xuICAgIH1cbiAgfVxuXG4gIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHRoaXMudG9Kc29uKCksIG51bGwsIDIpO1xuICB9XG5cbiAgY2FuQnJvYWRjYXN0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnR4UmVxdWVzdC5jYWxscy5sZW5ndGggPiAwICYmIHRoaXMudHhSZXF1ZXN0LmNoYWluSWQgPiAwO1xuICB9XG59XG4iXX0=
204
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7R0FLRzs7O0FBRUgsOENBQTBGO0FBRTFGLG1DQUFnQztBQUVoQyxtQ0FBNkM7QUF3QzdDLE1BQWEsZ0JBQWlCLFNBQVEsMEJBQWU7SUFLbkQsWUFBWSxXQUFpQyxFQUFFLE9BQWdDLEVBQUUsYUFBK0IsRUFBRTtRQUNoSCxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUM7UUFDekIsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUM7UUFDOUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3RDLE9BQU8sRUFBRSxFQUFFLENBQUMsRUFBRTtZQUNkLEtBQUssRUFBRSxJQUFBLDBCQUFrQixFQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUU7WUFDL0MsSUFBSSxFQUFFLEVBQUUsQ0FBQyxLQUFLO1NBQ2YsQ0FBQyxDQUFDLENBQUM7UUFDSixNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLElBQUEsMEJBQWtCLEVBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzNGLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLFVBQVUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDekYsQ0FBQztJQUVELElBQUksSUFBSTtRQUNOLE9BQU8sMEJBQWUsQ0FBQyxJQUFJLENBQUM7SUFDOUIsQ0FBQztJQUVELE9BQU87UUFDTCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxLQUFLLENBQUMsU0FBUyxDQUFDLFNBQStDO1FBQzdELE1BQU0sR0FBRyxHQUFHLFNBQVMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssbUJBQW1CO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDaEcsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxnQkFBZ0I7UUFDdEIsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN0RyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyxXQUFXLENBQUMsS0FBYTtRQUMvQixJQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNqQixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQy9CLE9BQU8sSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDO0lBQ2xELENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSyxnQkFBZ0IsQ0FBQyxXQUFrQixFQUFFLFlBQW1CO1FBQzlELE9BQU87WUFDTCxlQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQztZQUM1QyxJQUFJLENBQUMsU0FBUyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtZQUNsRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDO1lBQzdDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUM7WUFDcEMsV0FBVztZQUNYLFlBQVk7WUFDWixJQUFJLEVBQUUsMENBQTBDO1lBQ2hELElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7WUFDNUUsSUFBSSxFQUFFLHlDQUF5QztZQUMvQyxJQUFJLEVBQUUsd0NBQXdDO1lBQzlDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxJQUFJLElBQUk7WUFDL0IsSUFBSSxFQUFFLCtDQUErQztZQUNyRCxFQUFFLEVBQUUsK0JBQStCO1NBQ3BDLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyxlQUFlLENBQUMsU0FBOEM7UUFDcEUsTUFBTSxDQUFDLEdBQUcsU0FBUyxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDakMsTUFBTSxjQUFjLEdBQUcsZUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDekMsZUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDckMsZUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDckMsZUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1NBQ3hCLENBQUMsQ0FBQztRQUNILE9BQU8sZUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ssdUJBQXVCLENBQUMsT0FBYztRQUM1QyxJQUFJLENBQUM7WUFDSCxNQUFNLE9BQU8sR0FBRyxlQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDakQsT0FBTyxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFRLENBQUM7UUFDNUMsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixNQUFNLElBQUksZ0NBQXFCLENBQUMscUNBQXFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDaEYsQ0FBQztJQUNILENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSyxvQkFBb0IsQ0FBQyxTQUErQztRQUMxRSxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUMvQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUM3QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBRWpFLElBQUksU0FBUyxFQUFFLENBQUM7WUFDZCxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUNoRCxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxpQkFBaUI7UUFDZixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUNyQyxDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsWUFBWSxDQUFDLFNBQThDO1FBQ3pELElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO0lBQzlCLENBQUM7SUFFRCxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxnQkFBZ0I7UUFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3JCLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFFRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUNoRCxNQUFNLE9BQU8sR0FBRyxlQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxlQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQzNFLE9BQU8sZUFBTSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFO1lBQzFDLENBQUMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDcEIsQ0FBQyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNwQixhQUFhLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPO1NBQ3ZDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNO1FBQ0osT0FBTztZQUNMLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUk7WUFDekIsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTztZQUMvQixLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLO1lBQzNCLFlBQVksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUU7WUFDcEQsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLEVBQUU7WUFDcEUsR0FBRyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRTtZQUNsQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTTtZQUN0QyxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRO1lBQ2pDLFVBQVUsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM1QixTQUFTLEVBQUUsSUFBSSxDQUFDLFVBQVU7U0FDM0IsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsaUJBQWlCO1FBQ3JCLE9BQU8sTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLElBQUksRUFBRTtRQUNKLElBQUksQ0FBQztZQUNILE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDOUQsT0FBTyxlQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxlQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ25FLENBQUM7UUFBQyxNQUFNLENBQUM7WUFDUCxPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO0lBQ0gsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7SUFDdkUsQ0FBQztDQUNGO0FBeE5ELDRDQXdOQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVElQLTIwIFRyYW5zYWN0aW9uXG4gKlxuICogUmVwcmVzZW50cyBhIFRlbXBvIEFjY291bnQgQWJzdHJhY3Rpb24gKEFBKSB0cmFuc2FjdGlvbiAodHlwZSAweDc2KVxuICogU3VwcG9ydHMgc2luZ2xlIG9yIGJhdGNoIFRJUC0yMCB0b2tlbiB0cmFuc2ZlcnMgd2l0aCBtZW1vc1xuICovXG5cbmltcG9ydCB7IEJhc2VUcmFuc2FjdGlvbiwgUGFyc2VUcmFuc2FjdGlvbkVycm9yLCBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCB7IGV0aGVycyB9IGZyb20gJ2V0aGVycyc7XG5pbXBvcnQgeyBBZGRyZXNzLCBIZXgsIFRpcDIwT3BlcmF0aW9uIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBhbW91bnRUb1RpcDIwVW5pdHMgfSBmcm9tICcuL3V0aWxzJztcblxuLyoqXG4gKiBUSVAtMjAgVHJhbnNhY3Rpb24gUmVxdWVzdCBTdHJ1Y3R1cmVcbiAqIFJlcHJlc2VudHMgdGhlIHJhdyB0cmFuc2FjdGlvbiBkYXRhIGZvciBUZW1wbyBBY2NvdW50IEFic3RyYWN0aW9uIChFSVAtNzcwMilcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUaXAyMFRyYW5zYWN0aW9uUmVxdWVzdCB7XG4gIC8qKiBUcmFuc2FjdGlvbiB0eXBlICgweDc2IGZvciBUZW1wbyBBQSkgKi9cbiAgdHlwZTogbnVtYmVyIHwgc3RyaW5nO1xuICAvKiogQ2hhaW4gSUQgZm9yIHRoZSBUZW1wbyBuZXR3b3JrICovXG4gIGNoYWluSWQ6IG51bWJlcjtcbiAgLyoqIFRyYW5zYWN0aW9uIG5vbmNlICovXG4gIG5vbmNlOiBudW1iZXI7XG4gIC8qKiBNYXhpbXVtIGZlZSBwZXIgZ2FzIChFSVAtMTU1OSkgKi9cbiAgbWF4RmVlUGVyR2FzOiBiaWdpbnQ7XG4gIC8qKiBNYXhpbXVtIHByaW9yaXR5IGZlZSBwZXIgZ2FzIChFSVAtMTU1OSkgKi9cbiAgbWF4UHJpb3JpdHlGZWVQZXJHYXM6IGJpZ2ludDtcbiAgLyoqIEdhcyBsaW1pdCBmb3IgdGhlIHRyYW5zYWN0aW9uICovXG4gIGdhczogYmlnaW50O1xuICAvKiogQXJyYXkgb2YgY2FsbHMgdG8gZXhlY3V0ZSBpbiB0aGlzIHRyYW5zYWN0aW9uICovXG4gIGNhbGxzOiB7IHRvOiBBZGRyZXNzOyBkYXRhOiBIZXg7IHZhbHVlOiBiaWdpbnQgfVtdO1xuICAvKiogQWNjZXNzIGxpc3QgKG9wdGlvbmFsLCB0eXBpY2FsbHkgZW1wdHkgZm9yIFRJUC0yMCkgKi9cbiAgYWNjZXNzTGlzdD86IHVua25vd25bXTtcbiAgLyoqIE9wdGlvbmFsIFRJUC0yMCB0b2tlbiB0byB1c2UgZm9yIHBheWluZyBmZWVzICovXG4gIGZlZVRva2VuPzogQWRkcmVzcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUeERhdGEge1xuICB0eXBlOiBudW1iZXIgfCBzdHJpbmc7XG4gIGNoYWluSWQ6IG51bWJlcjtcbiAgbm9uY2U6IG51bWJlcjtcbiAgbWF4RmVlUGVyR2FzOiBzdHJpbmc7XG4gIG1heFByaW9yaXR5RmVlUGVyR2FzOiBzdHJpbmc7XG4gIGdhczogc3RyaW5nO1xuICBjYWxsQ291bnQ6IG51bWJlcjtcbiAgZmVlVG9rZW4/OiBzdHJpbmc7XG4gIG9wZXJhdGlvbnM6IFRpcDIwT3BlcmF0aW9uW107XG4gIHNpZ25hdHVyZT86IHsgcjogSGV4OyBzOiBIZXg7IHlQYXJpdHk6IG51bWJlciB9O1xufVxuXG5leHBvcnQgY2xhc3MgVGlwMjBUcmFuc2FjdGlvbiBleHRlbmRzIEJhc2VUcmFuc2FjdGlvbiB7XG4gIHByaXZhdGUgdHhSZXF1ZXN0OiBUaXAyMFRyYW5zYWN0aW9uUmVxdWVzdDtcbiAgcHJpdmF0ZSBfb3BlcmF0aW9uczogVGlwMjBPcGVyYXRpb25bXTtcbiAgcHJpdmF0ZSBfc2lnbmF0dXJlPzogeyByOiBIZXg7IHM6IEhleDsgeVBhcml0eTogbnVtYmVyIH07XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+LCByZXF1ZXN0OiBUaXAyMFRyYW5zYWN0aW9uUmVxdWVzdCwgb3BlcmF0aW9uczogVGlwMjBPcGVyYXRpb25bXSA9IFtdKSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICAgIHRoaXMudHhSZXF1ZXN0ID0gcmVxdWVzdDtcbiAgICB0aGlzLl9vcGVyYXRpb25zID0gb3BlcmF0aW9ucztcbiAgICB0aGlzLl9vdXRwdXRzID0gb3BlcmF0aW9ucy5tYXAoKG9wKSA9PiAoe1xuICAgICAgYWRkcmVzczogb3AudG8sXG4gICAgICB2YWx1ZTogYW1vdW50VG9UaXAyMFVuaXRzKG9wLmFtb3VudCkudG9TdHJpbmcoKSxcbiAgICAgIGNvaW46IG9wLnRva2VuLFxuICAgIH0pKTtcbiAgICBjb25zdCB0b3RhbFVuaXRzID0gb3BlcmF0aW9ucy5yZWR1Y2UoKHN1bSwgb3ApID0+IHN1bSArIGFtb3VudFRvVGlwMjBVbml0cyhvcC5hbW91bnQpLCAwbik7XG4gICAgdGhpcy5faW5wdXRzID0gW3sgYWRkcmVzczogJycsIHZhbHVlOiB0b3RhbFVuaXRzLnRvU3RyaW5nKCksIGNvaW46IF9jb2luQ29uZmlnLm5hbWUgfV07XG4gIH1cblxuICBnZXQgdHlwZSgpOiBUcmFuc2FjdGlvblR5cGUge1xuICAgIHJldHVybiBUcmFuc2FjdGlvblR5cGUuU2VuZDtcbiAgfVxuXG4gIGNhblNpZ24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBhc3luYyBzZXJpYWxpemUoc2lnbmF0dXJlPzogeyByOiBIZXg7IHM6IEhleDsgeVBhcml0eTogbnVtYmVyIH0pOiBQcm9taXNlPEhleD4ge1xuICAgIGNvbnN0IHNpZyA9IHNpZ25hdHVyZSB8fCB0aGlzLl9zaWduYXR1cmU7XG4gICAgcmV0dXJuIHRoaXMuc2VyaWFsaXplVHJhbnNhY3Rpb24oc2lnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbmNvZGUgY2FsbHMgYXMgUkxQIHR1cGxlcyBmb3IgYXRvbWljIGJhdGNoIGV4ZWN1dGlvblxuICAgKiBAcmV0dXJucyBBcnJheSBvZiBbdG8sIHZhbHVlLCBkYXRhXSB0dXBsZXNcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgZW5jb2RlQ2FsbHNBc1R1cGxlcygpOiBhbnlbXSB7XG4gICAgcmV0dXJuIHRoaXMudHhSZXF1ZXN0LmNhbGxzLm1hcCgoY2FsbCkgPT4gW2NhbGwudG8sIHRoaXMuYmlnaW50VG9IZXgoY2FsbC52YWx1ZSksIGNhbGwuZGF0YV0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEVuY29kZSBFSVAtMjkzMCBhY2Nlc3MgbGlzdCBhcyBSTFAgdHVwbGVzXG4gICAqIEByZXR1cm5zIEFycmF5IG9mIFthZGRyZXNzLCBzdG9yYWdlS2V5c1tdXSB0dXBsZXNcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgZW5jb2RlQWNjZXNzTGlzdCgpOiBhbnlbXSB7XG4gICAgcmV0dXJuICh0aGlzLnR4UmVxdWVzdC5hY2Nlc3NMaXN0ID8/IFtdKS5tYXAoKGl0ZW06IGFueSkgPT4gW2l0ZW0uYWRkcmVzcywgaXRlbS5zdG9yYWdlS2V5cyB8fCBbXV0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnQgYmlnaW50IHRvIGhleCBzdHJpbmcgZm9yIFJMUCBlbmNvZGluZ1xuICAgKiBAcGFyYW0gdmFsdWUgYmlnaW50IHZhbHVlIHRvIGNvbnZlcnRcbiAgICogQHJldHVybnMgSGV4IHN0cmluZ1xuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBiaWdpbnRUb0hleCh2YWx1ZTogYmlnaW50KTogc3RyaW5nIHtcbiAgICBpZiAodmFsdWUgPT09IDBuKSB7XG4gICAgICByZXR1cm4gJzB4JztcbiAgICB9XG4gICAgY29uc3QgaGV4ID0gdmFsdWUudG9TdHJpbmcoMTYpO1xuICAgIHJldHVybiAnMHgnICsgKGhleC5sZW5ndGggJSAyID8gJzAnIDogJycpICsgaGV4O1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGJhc2UgUkxQIGRhdGEgYXJyYXkgcGVyIFRlbXBvIEVJUC03NzAyIHNwZWNpZmljYXRpb25cbiAgICogQHBhcmFtIGNhbGxzVHVwbGVzIEVuY29kZWQgY2FsbHNcbiAgICogQHBhcmFtIGFjY2Vzc1R1cGxlcyBFbmNvZGVkIGFjY2VzcyBsaXN0XG4gICAqIEByZXR1cm5zIFJMUC1yZWFkeSBhcnJheSBvZiB0cmFuc2FjdGlvbiBmaWVsZHNcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgYnVpbGRCYXNlUmxwRGF0YShjYWxsc1R1cGxlczogYW55W10sIGFjY2Vzc1R1cGxlczogYW55W10pOiBhbnlbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIGV0aGVycy51dGlscy5oZXhsaWZ5KHRoaXMudHhSZXF1ZXN0LmNoYWluSWQpLFxuICAgICAgdGhpcy50eFJlcXVlc3QubWF4UHJpb3JpdHlGZWVQZXJHYXMgPyB0aGlzLmJpZ2ludFRvSGV4KHRoaXMudHhSZXF1ZXN0Lm1heFByaW9yaXR5RmVlUGVyR2FzKSA6ICcweCcsXG4gICAgICB0aGlzLmJpZ2ludFRvSGV4KHRoaXMudHhSZXF1ZXN0Lm1heEZlZVBlckdhcyksXG4gICAgICB0aGlzLmJpZ2ludFRvSGV4KHRoaXMudHhSZXF1ZXN0LmdhcyksXG4gICAgICBjYWxsc1R1cGxlcyxcbiAgICAgIGFjY2Vzc1R1cGxlcyxcbiAgICAgICcweCcsIC8vIG5vbmNlS2V5IChyZXNlcnZlZCBmb3IgMkQgbm9uY2Ugc3lzdGVtKVxuICAgICAgdGhpcy50eFJlcXVlc3Qubm9uY2UgPyB0aGlzLmJpZ2ludFRvSGV4KEJpZ0ludCh0aGlzLnR4UmVxdWVzdC5ub25jZSkpIDogJzB4JyxcbiAgICAgICcweCcsIC8vIHZhbGlkQmVmb3JlIChyZXNlcnZlZCBmb3IgdGltZSBib3VuZHMpXG4gICAgICAnMHgnLCAvLyB2YWxpZEFmdGVyIChyZXNlcnZlZCBmb3IgdGltZSBib3VuZHMpXG4gICAgICB0aGlzLnR4UmVxdWVzdC5mZWVUb2tlbiB8fCAnMHgnLFxuICAgICAgJzB4JywgLy8gZmVlUGF5ZXJTaWduYXR1cmUgKHJlc2VydmVkIGZvciBzcG9uc29yc2hpcClcbiAgICAgIFtdLCAvLyBhdXRob3JpemF0aW9uTGlzdCAoRUlQLTc3MDIpXG4gICAgXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbmNvZGUgc2VjcDI1NmsxIHNpZ25hdHVyZSBhcyA2NS1ieXRlIGVudmVsb3BlXG4gICAqIEBwYXJhbSBzaWduYXR1cmUgRUNEU0Egc2lnbmF0dXJlIGNvbXBvbmVudHNcbiAgICogQHJldHVybnMgSGV4IHN0cmluZyBvZiBjb25jYXRlbmF0ZWQgciAoMzIpICsgcyAoMzIpICsgdiAoMSkgYnl0ZXNcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgZW5jb2RlU2lnbmF0dXJlKHNpZ25hdHVyZTogeyByOiBIZXg7IHM6IEhleDsgeVBhcml0eTogbnVtYmVyIH0pOiBzdHJpbmcge1xuICAgIGNvbnN0IHYgPSBzaWduYXR1cmUueVBhcml0eSArIDI3O1xuICAgIGNvbnN0IHNpZ25hdHVyZUJ5dGVzID0gZXRoZXJzLnV0aWxzLmNvbmNhdChbXG4gICAgICBldGhlcnMudXRpbHMuemVyb1BhZChzaWduYXR1cmUuciwgMzIpLFxuICAgICAgZXRoZXJzLnV0aWxzLnplcm9QYWQoc2lnbmF0dXJlLnMsIDMyKSxcbiAgICAgIGV0aGVycy51dGlscy5oZXhsaWZ5KHYpLFxuICAgIF0pO1xuICAgIHJldHVybiBldGhlcnMudXRpbHMuaGV4bGlmeShzaWduYXR1cmVCeXRlcyk7XG4gIH1cblxuICAvKipcbiAgICogUkxQIGVuY29kZSBhbmQgcHJlcGVuZCB0cmFuc2FjdGlvbiB0eXBlIGJ5dGVcbiAgICogQHBhcmFtIHJscERhdGEgVHJhbnNhY3Rpb24gZmllbGRzIGFycmF5XG4gICAqIEByZXR1cm5zIEhleCBzdHJpbmcgd2l0aCAweDc2IHByZWZpeFxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBybHBFbmNvZGVXaXRoVHlwZVByZWZpeChybHBEYXRhOiBhbnlbXSk6IEhleCB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGVuY29kZWQgPSBldGhlcnMudXRpbHMuUkxQLmVuY29kZShybHBEYXRhKTtcbiAgICAgIHJldHVybiAoJzB4NzYnICsgZW5jb2RlZC5zbGljZSgyKSkgYXMgSGV4O1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2VUcmFuc2FjdGlvbkVycm9yKGBGYWlsZWQgdG8gUkxQIGVuY29kZSB0cmFuc2FjdGlvbjogJHtlcnJvcn1gKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2VyaWFsaXplIFRlbXBvIEFBIHRyYW5zYWN0aW9uICh0eXBlIDB4NzYpIHBlciBFSVAtNzcwMiBzcGVjaWZpY2F0aW9uXG4gICAqIEZvcm1hdDogMHg3NiB8fCBSTFAoW2NoYWluSWQsIGZlZXMsIGdhcywgY2FsbHMsIGFjY2Vzc0xpc3QsIG5vbmNlIGZpZWxkcywgZmVlVG9rZW4sIHNwb25zb3JzaGlwLCBhdXRoTGlzdCwgc2lnbmF0dXJlP10pXG4gICAqIEBwYXJhbSBzaWduYXR1cmUgT3B0aW9uYWwgRUNEU0Egc2lnbmF0dXJlIChvbWl0IGZvciB1bnNpZ25lZCB0cmFuc2FjdGlvbnMpXG4gICAqIEByZXR1cm5zIFJMUC1lbmNvZGVkIHRyYW5zYWN0aW9uIGhleCBzdHJpbmdcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgc2VyaWFsaXplVHJhbnNhY3Rpb24oc2lnbmF0dXJlPzogeyByOiBIZXg7IHM6IEhleDsgeVBhcml0eTogbnVtYmVyIH0pOiBIZXgge1xuICAgIGNvbnN0IGNhbGxzVHVwbGVzID0gdGhpcy5lbmNvZGVDYWxsc0FzVHVwbGVzKCk7XG4gICAgY29uc3QgYWNjZXNzVHVwbGVzID0gdGhpcy5lbmNvZGVBY2Nlc3NMaXN0KCk7XG4gICAgY29uc3QgcmxwRGF0YSA9IHRoaXMuYnVpbGRCYXNlUmxwRGF0YShjYWxsc1R1cGxlcywgYWNjZXNzVHVwbGVzKTtcblxuICAgIGlmIChzaWduYXR1cmUpIHtcbiAgICAgIHJscERhdGEucHVzaCh0aGlzLmVuY29kZVNpZ25hdHVyZShzaWduYXR1cmUpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5ybHBFbmNvZGVXaXRoVHlwZVByZWZpeChybHBEYXRhKTtcbiAgfVxuXG4gIGdldE9wZXJhdGlvbnMoKTogVGlwMjBPcGVyYXRpb25bXSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLl9vcGVyYXRpb25zXTtcbiAgfVxuXG4gIGdldEZlZVRva2VuKCk6IEFkZHJlc3MgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnR4UmVxdWVzdC5mZWVUb2tlbjtcbiAgfVxuXG4gIGdldE9wZXJhdGlvbkNvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMudHhSZXF1ZXN0LmNhbGxzLmxlbmd0aDtcbiAgfVxuXG4gIGlzQmF0Y2goKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudHhSZXF1ZXN0LmNhbGxzLmxlbmd0aCA+IDE7XG4gIH1cblxuICBzZXRTaWduYXR1cmUoc2lnbmF0dXJlOiB7IHI6IEhleDsgczogSGV4OyB5UGFyaXR5OiBudW1iZXIgfSk6IHZvaWQge1xuICAgIHRoaXMuX3NpZ25hdHVyZSA9IHNpZ25hdHVyZTtcbiAgfVxuXG4gIGdldFNpZ25hdHVyZSgpOiB7IHI6IEhleDsgczogSGV4OyB5UGFyaXR5OiBudW1iZXIgfSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX3NpZ25hdHVyZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWNvdmVyIHRoZSBzaWduZXIgYWRkcmVzcyBmcm9tIHRoZSB0cmFuc2FjdGlvbiBzaWduYXR1cmUuXG4gICAqIEByZXR1cm5zIENoZWNrc3VtbWVkIHNlbmRlciBhZGRyZXNzLCBvciB1bmRlZmluZWQgaWYgdW5zaWduZWRcbiAgICovXG4gIGdldFNlbmRlckFkZHJlc3MoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIXRoaXMuX3NpZ25hdHVyZSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBjb25zdCB1bnNpZ25lZEhleCA9IHRoaXMuc2VyaWFsaXplVHJhbnNhY3Rpb24oKTtcbiAgICBjb25zdCBtc2dIYXNoID0gZXRoZXJzLnV0aWxzLmtlY2NhazI1NihldGhlcnMudXRpbHMuYXJyYXlpZnkodW5zaWduZWRIZXgpKTtcbiAgICByZXR1cm4gZXRoZXJzLnV0aWxzLnJlY292ZXJBZGRyZXNzKG1zZ0hhc2gsIHtcbiAgICAgIHI6IHRoaXMuX3NpZ25hdHVyZS5yLFxuICAgICAgczogdGhpcy5fc2lnbmF0dXJlLnMsXG4gICAgICByZWNvdmVyeVBhcmFtOiB0aGlzLl9zaWduYXR1cmUueVBhcml0eSxcbiAgICB9KTtcbiAgfVxuXG4gIHRvSnNvbigpOiBUeERhdGEge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiB0aGlzLnR4UmVxdWVzdC50eXBlLFxuICAgICAgY2hhaW5JZDogdGhpcy50eFJlcXVlc3QuY2hhaW5JZCxcbiAgICAgIG5vbmNlOiB0aGlzLnR4UmVxdWVzdC5ub25jZSxcbiAgICAgIG1heEZlZVBlckdhczogdGhpcy50eFJlcXVlc3QubWF4RmVlUGVyR2FzLnRvU3RyaW5nKCksXG4gICAgICBtYXhQcmlvcml0eUZlZVBlckdhczogdGhpcy50eFJlcXVlc3QubWF4UHJpb3JpdHlGZWVQZXJHYXMudG9TdHJpbmcoKSxcbiAgICAgIGdhczogdGhpcy50eFJlcXVlc3QuZ2FzLnRvU3RyaW5nKCksXG4gICAgICBjYWxsQ291bnQ6IHRoaXMudHhSZXF1ZXN0LmNhbGxzLmxlbmd0aCxcbiAgICAgIGZlZVRva2VuOiB0aGlzLnR4UmVxdWVzdC5mZWVUb2tlbixcbiAgICAgIG9wZXJhdGlvbnM6IHRoaXMuX29wZXJhdGlvbnMsXG4gICAgICBzaWduYXR1cmU6IHRoaXMuX3NpZ25hdHVyZSxcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgdG9Ccm9hZGNhc3RGb3JtYXQoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5zZXJpYWxpemUodGhpcy5fc2lnbmF0dXJlKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBnZXQgaWQoKTogc3RyaW5nIHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgc2VyaWFsaXplZCA9IHRoaXMuc2VyaWFsaXplVHJhbnNhY3Rpb24odGhpcy5fc2lnbmF0dXJlKTtcbiAgICAgIHJldHVybiBldGhlcnMudXRpbHMua2VjY2FrMjU2KGV0aGVycy51dGlscy5hcnJheWlmeShzZXJpYWxpemVkKSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gJ3BlbmRpbmcnO1xuICAgIH1cbiAgfVxuXG4gIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHRoaXMudG9Kc29uKCksIG51bGwsIDIpO1xuICB9XG5cbiAgY2FuQnJvYWRjYXN0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnR4UmVxdWVzdC5jYWxscy5sZW5ndGggPiAwICYmIHRoaXMudHhSZXF1ZXN0LmNoYWluSWQgPiAwO1xuICB9XG59XG4iXX0=
@@ -1,7 +1,3 @@
1
1
  import { BitGoBase } from '@bitgo/sdk-core';
2
- /**
3
- * Register Tempo and TIP20 tokens with the SDK
4
- * @param sdk - BitGo SDK instance
5
- */
6
2
  export declare const register: (sdk: BitGoBase) => void;
7
3
  //# sourceMappingURL=register.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAK5C;;;GAGG;AACH,eAAO,MAAM,QAAQ,QAAS,SAAS,KAAG,IAyBzC,CAAC"}
1
+ {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAK5C,eAAO,MAAM,QAAQ,QAAS,SAAS,KAAG,IAMzC,CAAC"}
@@ -4,33 +4,12 @@ exports.register = void 0;
4
4
  const tempo_1 = require("./tempo");
5
5
  const ttempo_1 = require("./ttempo");
6
6
  const tip20Token_1 = require("./tip20Token");
7
- /**
8
- * Register Tempo and TIP20 tokens with the SDK
9
- * @param sdk - BitGo SDK instance
10
- */
11
7
  const register = (sdk) => {
12
- // Register base Tempo coins
13
8
  sdk.register('tempo', tempo_1.Tempo.createInstance);
14
9
  sdk.register('ttempo', ttempo_1.Ttempo.createInstance);
15
- // Register TIP20 tokens (skeleton)
16
- // TODO: Add actual token configurations from @bitgo/statics
17
- // For now, this creates an empty array which can be populated progressively
18
- const tip20Tokens = tip20Token_1.Tip20Token.createTokenConstructors([
19
- // TODO: Add TIP20 token configurations here
20
- // Example:
21
- // {
22
- // type: 'tempo:usdc',
23
- // coin: 'tempo',
24
- // network: 'Mainnet',
25
- // name: 'USD Coin on Tempo',
26
- // tokenContractAddress: '0x...',
27
- // decimalPlaces: 6,
28
- // },
29
- ]);
30
- // Register each TIP20 token with the SDK
31
- tip20Tokens.forEach(({ name, coinConstructor }) => {
10
+ tip20Token_1.Tip20Token.createTokenConstructors().forEach(({ name, coinConstructor }) => {
32
11
  sdk.register(name, coinConstructor);
33
12
  });
34
13
  };
35
14
  exports.register = register;
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVnaXN0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsbUNBQWdDO0FBQ2hDLHFDQUFrQztBQUNsQyw2Q0FBMEM7QUFFMUM7OztHQUdHO0FBQ0ksTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFjLEVBQVEsRUFBRTtJQUMvQyw0QkFBNEI7SUFDNUIsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsYUFBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzVDLEdBQUcsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLGVBQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUU5QyxtQ0FBbUM7SUFDbkMsNERBQTREO0lBQzVELDRFQUE0RTtJQUM1RSxNQUFNLFdBQVcsR0FBRyx1QkFBVSxDQUFDLHVCQUF1QixDQUFDO0lBQ3JELDRDQUE0QztJQUM1QyxXQUFXO0lBQ1gsSUFBSTtJQUNKLHdCQUF3QjtJQUN4QixtQkFBbUI7SUFDbkIsd0JBQXdCO0lBQ3hCLCtCQUErQjtJQUMvQixtQ0FBbUM7SUFDbkMsc0JBQXNCO0lBQ3RCLEtBQUs7S0FDTixDQUFDLENBQUM7SUFFSCx5Q0FBeUM7SUFDekMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxFQUFFLEVBQUU7UUFDaEQsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFDdEMsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUM7QUF6QlcsUUFBQSxRQUFRLFlBeUJuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJpdEdvQmFzZSB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBUZW1wbyB9IGZyb20gJy4vdGVtcG8nO1xuaW1wb3J0IHsgVHRlbXBvIH0gZnJvbSAnLi90dGVtcG8nO1xuaW1wb3J0IHsgVGlwMjBUb2tlbiB9IGZyb20gJy4vdGlwMjBUb2tlbic7XG5cbi8qKlxuICogUmVnaXN0ZXIgVGVtcG8gYW5kIFRJUDIwIHRva2VucyB3aXRoIHRoZSBTREtcbiAqIEBwYXJhbSBzZGsgLSBCaXRHbyBTREsgaW5zdGFuY2VcbiAqL1xuZXhwb3J0IGNvbnN0IHJlZ2lzdGVyID0gKHNkazogQml0R29CYXNlKTogdm9pZCA9PiB7XG4gIC8vIFJlZ2lzdGVyIGJhc2UgVGVtcG8gY29pbnNcbiAgc2RrLnJlZ2lzdGVyKCd0ZW1wbycsIFRlbXBvLmNyZWF0ZUluc3RhbmNlKTtcbiAgc2RrLnJlZ2lzdGVyKCd0dGVtcG8nLCBUdGVtcG8uY3JlYXRlSW5zdGFuY2UpO1xuXG4gIC8vIFJlZ2lzdGVyIFRJUDIwIHRva2VucyAoc2tlbGV0b24pXG4gIC8vIFRPRE86IEFkZCBhY3R1YWwgdG9rZW4gY29uZmlndXJhdGlvbnMgZnJvbSBAYml0Z28vc3RhdGljc1xuICAvLyBGb3Igbm93LCB0aGlzIGNyZWF0ZXMgYW4gZW1wdHkgYXJyYXkgd2hpY2ggY2FuIGJlIHBvcHVsYXRlZCBwcm9ncmVzc2l2ZWx5XG4gIGNvbnN0IHRpcDIwVG9rZW5zID0gVGlwMjBUb2tlbi5jcmVhdGVUb2tlbkNvbnN0cnVjdG9ycyhbXG4gICAgLy8gVE9ETzogQWRkIFRJUDIwIHRva2VuIGNvbmZpZ3VyYXRpb25zIGhlcmVcbiAgICAvLyBFeGFtcGxlOlxuICAgIC8vIHtcbiAgICAvLyAgIHR5cGU6ICd0ZW1wbzp1c2RjJyxcbiAgICAvLyAgIGNvaW46ICd0ZW1wbycsXG4gICAgLy8gICBuZXR3b3JrOiAnTWFpbm5ldCcsXG4gICAgLy8gICBuYW1lOiAnVVNEIENvaW4gb24gVGVtcG8nLFxuICAgIC8vICAgdG9rZW5Db250cmFjdEFkZHJlc3M6ICcweC4uLicsXG4gICAgLy8gICBkZWNpbWFsUGxhY2VzOiA2LFxuICAgIC8vIH0sXG4gIF0pO1xuXG4gIC8vIFJlZ2lzdGVyIGVhY2ggVElQMjAgdG9rZW4gd2l0aCB0aGUgU0RLXG4gIHRpcDIwVG9rZW5zLmZvckVhY2goKHsgbmFtZSwgY29pbkNvbnN0cnVjdG9yIH0pID0+IHtcbiAgICBzZGsucmVnaXN0ZXIobmFtZSwgY29pbkNvbnN0cnVjdG9yKTtcbiAgfSk7XG59O1xuIl19
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVnaXN0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsbUNBQWdDO0FBQ2hDLHFDQUFrQztBQUNsQyw2Q0FBMEM7QUFFbkMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFjLEVBQVEsRUFBRTtJQUMvQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxhQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDNUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsZUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzlDLHVCQUFVLENBQUMsdUJBQXVCLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsRUFBRSxFQUFFO1FBQ3pFLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQ3RDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBTlcsUUFBQSxRQUFRLFlBTW5CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQml0R29CYXNlIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IFRlbXBvIH0gZnJvbSAnLi90ZW1wbyc7XG5pbXBvcnQgeyBUdGVtcG8gfSBmcm9tICcuL3R0ZW1wbyc7XG5pbXBvcnQgeyBUaXAyMFRva2VuIH0gZnJvbSAnLi90aXAyMFRva2VuJztcblxuZXhwb3J0IGNvbnN0IHJlZ2lzdGVyID0gKHNkazogQml0R29CYXNlKTogdm9pZCA9PiB7XG4gIHNkay5yZWdpc3RlcigndGVtcG8nLCBUZW1wby5jcmVhdGVJbnN0YW5jZSk7XG4gIHNkay5yZWdpc3RlcigndHRlbXBvJywgVHRlbXBvLmNyZWF0ZUluc3RhbmNlKTtcbiAgVGlwMjBUb2tlbi5jcmVhdGVUb2tlbkNvbnN0cnVjdG9ycygpLmZvckVhY2goKHsgbmFtZSwgY29pbkNvbnN0cnVjdG9yIH0pID0+IHtcbiAgICBzZGsucmVnaXN0ZXIobmFtZSwgY29pbkNvbnN0cnVjdG9yKTtcbiAgfSk7XG59O1xuIl19
@@ -1 +1 @@
1
- {"version":3,"file":"tempo.d.ts","sourceRoot":"","sources":["../../src/tempo.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,uBAAuB,EACvB,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,2BAA2B,EAC3B,uBAAuB,EACvB,0BAA0B,EAE3B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,KAAK,aAAa,MAAM,oBAAoB,CAAC;AACzD,OAAO,EACL,QAAQ,EACR,SAAS,EAGT,YAAY,EACZ,uBAAuB,EACvB,iBAAiB,EAElB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAS,MAAM,gBAAgB,CAAC;AAMpE,qBAAa,KAAM,SAAQ,uBAAuB;IAChD,SAAS,aAAa,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC;IAI/E;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,QAAQ;IAI1F;;OAEG;IACH,QAAQ,IAAI,MAAM;IAIlB;;OAEG;IACH,WAAW,IAAI,MAAM;IAIrB,kBAAkB;IAClB,aAAa,IAAI,MAAM;IAIvB;;;OAGG;IACH,wBAAwB,IAAI,OAAO;IAInC;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACH,eAAe,IAAI,YAAY;IAI/B;;;;;OAKG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAaxC;;;;;;OAMG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE;IAsDnG;;;;OAIG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAItC;;;;OAIG;IACG,eAAe,CAAC,MAAM,EAAE,uBAAuB,GAAG,0BAA0B,GAAG,OAAO,CAAC,OAAO,CAAC;IA4BrG;;;OAGG;IACG,gBAAgB,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAsBnF;;;OAGG;IACG,iBAAiB,CAAC,MAAM,EAAE,2BAA2B,GAAG,OAAO,CAAC,OAAO,CAAC;IAqC9E;;;OAGG;cACa,wBAAwB,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,kBAAkB,GAAG,oBAAoB,CAAC;IAMpH;;;OAGG;IACG,+BAA+B,CACnC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7B,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAMnC;;;;;OAKG;IACH,SAAS,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC,OAAO,GAAG,kBAAkB;CAGpF"}
1
+ {"version":3,"file":"tempo.d.ts","sourceRoot":"","sources":["../../src/tempo.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,uBAAuB,EACvB,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,2BAA2B,EAC3B,uBAAuB,EACvB,0BAA0B,EAE3B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,KAAK,aAAa,MAAM,oBAAoB,CAAC;AACzD,OAAO,EACL,QAAQ,EACR,SAAS,EAGT,YAAY,EACZ,uBAAuB,EACvB,iBAAiB,EAElB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAS,MAAM,gBAAgB,CAAC;AAMpE,qBAAa,KAAM,SAAQ,uBAAuB;IAChD,SAAS,aAAa,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC;IAI/E;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,QAAQ;IAI1F;;OAEG;IACH,QAAQ,IAAI,MAAM;IAIlB;;OAEG;IACH,WAAW,IAAI,MAAM;IAIrB,kBAAkB;IAClB,aAAa,IAAI,MAAM;IAIvB;;;OAGG;IACH,wBAAwB,IAAI,OAAO;IAInC;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACH,eAAe,IAAI,YAAY;IAI/B;;;;;OAKG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAaxC;;;;;;OAMG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE;IAsDnG;;;;OAIG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAItC;;;;OAIG;IACG,eAAe,CAAC,MAAM,EAAE,uBAAuB,GAAG,0BAA0B,GAAG,OAAO,CAAC,OAAO,CAAC;IA4BrG;;;OAGG;IACG,gBAAgB,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAyBnF;;;OAGG;IACG,iBAAiB,CAAC,MAAM,EAAE,2BAA2B,GAAG,OAAO,CAAC,OAAO,CAAC;IA2C9E;;;OAGG;cACa,wBAAwB,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,kBAAkB,GAAG,oBAAoB,CAAC;IAMpH;;;OAGG;IACG,+BAA+B,CACnC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7B,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAMnC;;;;;OAKG;IACH,SAAS,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC,OAAO,GAAG,kBAAkB;CAGpF"}
package/dist/src/tempo.js CHANGED
@@ -198,6 +198,9 @@ class Tempo extends abstract_eth_1.AbstractEthLikeNewCoins {
198
198
  if (!txHex) {
199
199
  return {};
200
200
  }
201
+ if (!(0, utils_1.isTip20Transaction)(txHex)) {
202
+ return {};
203
+ }
201
204
  const txBuilder = this.getTransactionBuilder();
202
205
  txBuilder.from(txHex);
203
206
  const tx = (await txBuilder.build());
@@ -223,8 +226,13 @@ class Tempo extends abstract_eth_1.AbstractEthLikeNewCoins {
223
226
  if (!txPrebuild?.txHex) {
224
227
  return true;
225
228
  }
229
+ // signableHex may arrive without the 0x prefix (e.g. from the TSS signing flow).
230
+ const txHex = txPrebuild.txHex.startsWith('0x') ? txPrebuild.txHex : '0x' + txPrebuild.txHex;
231
+ if (!(0, utils_1.isTip20Transaction)(txHex)) {
232
+ throw new Error(`Invalid Tempo transaction hex: expected a 0x76 TIP-20 transaction`);
233
+ }
226
234
  const txBuilder = this.getTransactionBuilder();
227
- txBuilder.from(txPrebuild.txHex);
235
+ txBuilder.from(txHex);
228
236
  const tx = (await txBuilder.build());
229
237
  const operations = tx.getOperations();
230
238
  // If the caller specified explicit recipients, verify they match the operations 1-to-1
@@ -277,4 +285,4 @@ class Tempo extends abstract_eth_1.AbstractEthLikeNewCoins {
277
285
  }
278
286
  }
279
287
  exports.Tempo = Tempo;
280
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVtcG8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0dBRUc7QUFDSCxzREFVNkI7QUFFN0IsOENBU3lCO0FBQ3pCLDRDQUFvRTtBQUNwRSwrQkFBa0U7QUFDbEUsdUNBQXFGO0FBQ3JGLHlDQUEyQjtBQUMzQix5REFBMkM7QUFFM0MsTUFBYSxLQUFNLFNBQVEsc0NBQXVCO0lBQ2hELFlBQXNCLEtBQWdCLEVBQUUsV0FBdUM7UUFDN0UsS0FBSyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQWdCLEVBQUUsV0FBdUM7UUFDN0UsT0FBTyxJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLElBQUksT0FBTyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7T0FFRztJQUNILFdBQVc7UUFDVCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGFBQWE7UUFDWCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRDs7O09BR0c7SUFDSCx3QkFBd0I7UUFDdEIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQ7O09BRUc7SUFDSCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxlQUFlO1FBQ2IsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsY0FBYyxDQUFDLE9BQWU7UUFDNUIsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNoQyxPQUFPLEtBQUss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QUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7OztPQUdHO0lBQ08sS0FBSyxDQUFDLHdCQUF3QixDQUFDLE1BQXNCO1FBQzdELGdEQUFnRDtRQUNoRCxrRUFBa0U7UUFDbEUsT0FBTyxFQUF3QixDQUFDO0lBQ2xDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsK0JBQStCLENBQ25DLEtBQTZCLEVBQzdCLE1BQWU7UUFFZixnREFBZ0Q7UUFDaEQsbUVBQW1FO1FBQ25FLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVEOzs7OztPQUtHO0lBQ08scUJBQXFCLENBQUMsTUFBOEI7UUFDNUQsT0FBTyxJQUFJLDZCQUF1QixDQUFDLGVBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQWtDLENBQUM7SUFDdEcsQ0FBQztDQUNGO0FBbFJELHNCQWtSQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCB7XG4gIEFic3RyYWN0RXRoTGlrZU5ld0NvaW5zLFxuICBSZWNvdmVyT3B0aW9ucyxcbiAgT2ZmbGluZVZhdWx0VHhJbmZvLFxuICBVbnNpZ25lZFN3ZWVwVHhNUEN2MixcbiAgVHJhbnNhY3Rpb25CdWlsZGVyLFxuICBWZXJpZnlFdGhUcmFuc2FjdGlvbk9wdGlvbnMsXG4gIFZlcmlmeUV0aEFkZHJlc3NPcHRpb25zLFxuICBUc3NWZXJpZnlFdGhBZGRyZXNzT3B0aW9ucyxcbiAgb3B0aW9uYWxEZXBzLFxufSBmcm9tICdAYml0Z28vYWJzdHJhY3QtZXRoJztcbmltcG9ydCB0eXBlICogYXMgRXRoTGlrZUNvbW1vbiBmcm9tICdAZXRoZXJldW1qcy9jb21tb24nO1xuaW1wb3J0IHtcbiAgQmFzZUNvaW4sXG4gIEJpdEdvQmFzZSxcbiAgSW52YWxpZEFkZHJlc3NFcnJvcixcbiAgSW52YWxpZE1lbW9JZEVycm9yLFxuICBNUENBbGdvcml0aG0sXG4gIFBhcnNlVHJhbnNhY3Rpb25PcHRpb25zLFxuICBQYXJzZWRUcmFuc2FjdGlvbixcbiAgVW5leHBlY3RlZEFkZHJlc3NFcnJvcixcbn0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIFN0YXRpY3NCYXNlQ29pbiwgY29pbnMgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgeyBUaXAyMFRyYW5zYWN0aW9uLCBUaXAyMFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vbGliJztcbmltcG9ydCB7IGFtb3VudFRvVGlwMjBVbml0cywgaXNWYWxpZE1lbW9JZCBhcyBpc1ZhbGlkTWVtb0lkVXRpbCB9IGZyb20gJy4vbGliL3V0aWxzJztcbmltcG9ydCAqIGFzIHVybCBmcm9tICd1cmwnO1xuaW1wb3J0ICogYXMgcXVlcnlzdHJpbmcgZnJvbSAncXVlcnlzdHJpbmcnO1xuXG5leHBvcnQgY2xhc3MgVGVtcG8gZXh0ZW5kcyBBYnN0cmFjdEV0aExpa2VOZXdDb2lucyB7XG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihiaXRnbzogQml0R29CYXNlLCBzdGF0aWNzQ29pbj86IFJlYWRvbmx5PFN0YXRpY3NCYXNlQ29pbj4pIHtcbiAgICBzdXBlcihiaXRnbywgc3RhdGljc0NvaW4pO1xuICB9XG5cbiAgLyoqXG4gICAqIEZhY3RvcnkgbWV0aG9kIHRvIGNyZWF0ZSBUZW1wbyBpbnN0YW5jZVxuICAgKi9cbiAgc3RhdGljIGNyZWF0ZUluc3RhbmNlKGJpdGdvOiBCaXRHb0Jhc2UsIHN0YXRpY3NDb2luPzogUmVhZG9ubHk8U3RhdGljc0Jhc2VDb2luPik6IEJhc2VDb2luIHtcbiAgICByZXR1cm4gbmV3IFRlbXBvKGJpdGdvLCBzdGF0aWNzQ29pbik7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBjaGFpbiBpZGVudGlmaWVyXG4gICAqL1xuICBnZXRDaGFpbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9zdGF0aWNzQ29pbj8ubmFtZSB8fCAndGVtcG8nO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZnVsbCBjaGFpbiBuYW1lXG4gICAqL1xuICBnZXRGdWxsTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiAnVGVtcG8nO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGdldEJhc2VGYWN0b3IoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gMWU2O1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIHZhbHVlLWxlc3MgdHJhbnNmZXJzIGFyZSBhbGxvd2VkXG4gICAqIFRPRE86IFVwZGF0ZSBiYXNlZCBvbiBUZW1wbyByZXF1aXJlbWVudHNcbiAgICovXG4gIHZhbHVlbGVzc1RyYW5zZmVyQWxsb3dlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgVFNTIGlzIHN1cHBvcnRlZFxuICAgKi9cbiAgc3VwcG9ydHNUc3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBNUEMgYWxnb3JpdGhtIChFQ0RTQSBmb3IgRVZNIGNoYWlucylcbiAgICovXG4gIGdldE1QQ0FsZ29yaXRobSgpOiBNUENBbGdvcml0aG0ge1xuICAgIHJldHVybiAnZWNkc2EnO1xuICB9XG5cbiAgLyoqXG4gICAqIEV2YWx1YXRlcyB3aGV0aGVyIGFuIGFkZHJlc3Mgc3RyaW5nIGlzIHZhbGlkIGZvciBUZW1wb1xuICAgKiBTdXBwb3J0cyBhZGRyZXNzZXMgd2l0aCBvcHRpb25hbCBtZW1vSWQgcXVlcnkgcGFyYW1ldGVyIChlLmcuLCAweC4uLj9tZW1vSWQ9MTIzKVxuICAgKiBAcGFyYW0gYWRkcmVzcyAtIFRoZSBhZGRyZXNzIHRvIHZhbGlkYXRlXG4gICAqIEByZXR1cm5zIHRydWUgaWYgYWRkcmVzcyBpcyB2YWxpZFxuICAgKi9cbiAgaXNWYWxpZEFkZHJlc3MoYWRkcmVzczogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKHR5cGVvZiBhZGRyZXNzICE9PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCB7IGJhc2VBZGRyZXNzIH0gPSB0aGlzLmdldEFkZHJlc3NEZXRhaWxzKGFkZHJlc3MpO1xuICAgICAgcmV0dXJuIG9wdGlvbmFsRGVwcy5ldGhVdGlsLmlzVmFsaWRBZGRyZXNzKG9wdGlvbmFsRGVwcy5ldGhVdGlsLmFkZEhleFByZWZpeChiYXNlQWRkcmVzcykpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUGFyc2UgYWRkcmVzcyBpbnRvIGJhc2UgYWRkcmVzcyBhbmQgb3B0aW9uYWwgbWVtb0lkXG4gICAqIFRocm93cyBJbnZhbGlkQWRkcmVzc0Vycm9yIGZvciBpbnZhbGlkIGFkZHJlc3MgZm9ybWF0c1xuICAgKiBAcGFyYW0gYWRkcmVzcyAtIEFkZHJlc3Mgc3RyaW5nLCBwb3RlbnRpYWxseSB3aXRoID9tZW1vSWQ9WCBzdWZmaXhcbiAgICogQHJldHVybnMgT2JqZWN0IGNvbnRhaW5pbmcgYWRkcmVzcywgYmFzZUFkZHJlc3MsIGFuZCBtZW1vSWQgKG51bGwgaWYgbm90IHByZXNlbnQpXG4gICAqIEB0aHJvd3MgSW52YWxpZEFkZHJlc3NFcnJvciBpZiBhZGRyZXNzIGZvcm1hdCBpcyBpbnZhbGlkXG4gICAqL1xuICBnZXRBZGRyZXNzRGV0YWlscyhhZGRyZXNzOiBzdHJpbmcpOiB7IGFkZHJlc3M6IHN0cmluZzsgYmFzZUFkZHJlc3M6IHN0cmluZzsgbWVtb0lkOiBzdHJpbmcgfCBudWxsIH0ge1xuICAgIGlmICh0eXBlb2YgYWRkcmVzcyAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQWRkcmVzc0Vycm9yKGBpbnZhbGlkIGFkZHJlc3M6ICR7YWRkcmVzc31gKTtcbiAgICB9XG5cbiAgICBjb25zdCBkZXN0aW5hdGlvbkRldGFpbHMgPSB1cmwucGFyc2UoYWRkcmVzcyk7XG4gICAgY29uc3QgYmFzZUFkZHJlc3MgPSBkZXN0aW5hdGlvbkRldGFpbHMucGF0aG5hbWUgfHwgJyc7XG5cbiAgICAvLyBObyBxdWVyeSBzdHJpbmcgLSBqdXN0IGEgcGxhaW4gYWRkcmVzc1xuICAgIGlmIChkZXN0aW5hdGlvbkRldGFpbHMucGF0aG5hbWUgPT09IGFkZHJlc3MpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGFkZHJlc3MsXG4gICAgICAgIGJhc2VBZGRyZXNzOiBhZGRyZXNzLFxuICAgICAgICBtZW1vSWQ6IG51bGwsXG4gICAgICB9O1xuICAgIH1cblxuICAgIC8vIEhhcyBxdWVyeSBzdHJpbmcgLSBtdXN0IGNvbnRhaW4gbWVtb0lkXG4gICAgaWYgKCFkZXN0aW5hdGlvbkRldGFpbHMucXVlcnkpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQWRkcmVzc0Vycm9yKGBpbnZhbGlkIGFkZHJlc3M6ICR7YWRkcmVzc31gKTtcbiAgICB9XG5cbiAgICBjb25zdCBxdWVyeURldGFpbHMgPSBxdWVyeXN0cmluZy5wYXJzZShkZXN0aW5hdGlvbkRldGFpbHMucXVlcnkpO1xuXG4gICAgLy8gUXVlcnkgc3RyaW5nIG11c3QgY29udGFpbiBtZW1vSWRcbiAgICBpZiAoIXF1ZXJ5RGV0YWlscy5tZW1vSWQpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQWRkcmVzc0Vycm9yKGBpbnZhbGlkIGFkZHJlc3M6ICR7YWRkcmVzc30sIHVua25vd24gcXVlcnkgcGFyYW1ldGVyc2ApO1xuICAgIH1cblxuICAgIC8vIE9ubHkgb25lIG1lbW9JZCBhbGxvd2VkXG4gICAgaWYgKEFycmF5LmlzQXJyYXkocXVlcnlEZXRhaWxzLm1lbW9JZCkpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQWRkcmVzc0Vycm9yKFxuICAgICAgICBgbWVtb0lkIG1heSBvbmx5IGJlIGdpdmVuIGF0IG1vc3Qgb25jZSwgYnV0IGZvdW5kICR7cXVlcnlEZXRhaWxzLm1lbW9JZC5sZW5ndGh9IGluc3RhbmNlcyBpbiBhZGRyZXNzICR7YWRkcmVzc31gXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIFJlamVjdCBpZiB0aGVyZSBhcmUgb3RoZXIgcXVlcnkgcGFyYW1ldGVycyBiZXNpZGVzIG1lbW9JZFxuICAgIGNvbnN0IHF1ZXJ5S2V5cyA9IE9iamVjdC5rZXlzKHF1ZXJ5RGV0YWlscyk7XG4gICAgaWYgKHF1ZXJ5S2V5cy5sZW5ndGggIT09IDEpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQWRkcmVzc0Vycm9yKGBpbnZhbGlkIGFkZHJlc3M6ICR7YWRkcmVzc30sIG9ubHkgbWVtb0lkIHF1ZXJ5IHBhcmFtZXRlciBpcyBhbGxvd2VkYCk7XG4gICAgfVxuXG4gICAgLy8gVmFsaWRhdGUgbWVtb0lkIGZvcm1hdFxuICAgIGlmICghdGhpcy5pc1ZhbGlkTWVtb0lkKHF1ZXJ5RGV0YWlscy5tZW1vSWQpKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZE1lbW9JZEVycm9yKGBpbnZhbGlkIGFkZHJlc3M6ICcke2FkZHJlc3N9JywgbWVtb0lkIGlzIG5vdCB2YWxpZGApO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBhZGRyZXNzLFxuICAgICAgYmFzZUFkZHJlc3MsXG4gICAgICBtZW1vSWQ6IHF1ZXJ5RGV0YWlscy5tZW1vSWQsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZSB0aGF0IGEgbWVtb0lkIGlzIGEgdmFsaWQgbm9uLW5lZ2F0aXZlIGludGVnZXIgc3RyaW5nXG4gICAqIEBwYXJhbSBtZW1vSWQgLSBUaGUgbWVtb0lkIHRvIHZhbGlkYXRlXG4gICAqIEByZXR1cm5zIHRydWUgaWYgdmFsaWRcbiAgICovXG4gIGlzVmFsaWRNZW1vSWQobWVtb0lkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNWYWxpZE1lbW9JZFV0aWwobWVtb0lkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUZW1wbyB1c2VzIG1lbW9JZC1iYXNlZCBhZGRyZXNzZXMgcmF0aGVyIHRoYW4gZm9yd2FyZGVyIGNvbnRyYWN0cy5cbiAgICogVmVyaWZ5IHRoYXQgdGhlIGFkZHJlc3MgYmVsb25ncyB0byB0aGlzIHdhbGxldCBieSBjaGVja2luZyB0aGF0IHRoZVxuICAgKiBiYXNlIChFVk0pIHBvcnRpb24gbWF0Y2hlcyB0aGUgd2FsbGV0J3MgYmFzZSBhZGRyZXNzLlxuICAgKi9cbiAgYXN5bmMgaXNXYWxsZXRBZGRyZXNzKHBhcmFtczogVmVyaWZ5RXRoQWRkcmVzc09wdGlvbnMgfCBUc3NWZXJpZnlFdGhBZGRyZXNzT3B0aW9ucyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHsgYWRkcmVzcywgYmFzZUFkZHJlc3MgfSA9IHBhcmFtcztcbiAgICBjb25zdCByb290QWRkcmVzcyA9IChwYXJhbXMgYXMgdW5rbm93biBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikucm9vdEFkZHJlc3MgYXMgc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICAgaWYgKCFhZGRyZXNzKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFkZHJlc3NFcnJvcignYWRkcmVzcyBpcyByZXF1aXJlZCcpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5pc1ZhbGlkQWRkcmVzcyhhZGRyZXNzKSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBZGRyZXNzRXJyb3IoYGludmFsaWQgYWRkcmVzczogJHthZGRyZXNzfWApO1xuICAgIH1cblxuICAgIGNvbnN0IHsgYmFzZUFkZHJlc3M6IGFkZHJlc3NCYXNlIH0gPSB0aGlzLmdldEFkZHJlc3NEZXRhaWxzKGFkZHJlc3MpO1xuXG4gICAgY29uc3Qgd2FsbGV0QmFzZUFkZHJlc3MgPSBiYXNlQWRkcmVzcyB8fCByb290QWRkcmVzcztcbiAgICBpZiAoIXdhbGxldEJhc2VBZGRyZXNzKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFkZHJlc3NFcnJvcignYmFzZUFkZHJlc3Mgb3Igcm9vdEFkZHJlc3MgaXMgcmVxdWlyZWQgZm9yIHZlcmlmaWNhdGlvbicpO1xuICAgIH1cblxuICAgIGNvbnN0IHsgYmFzZUFkZHJlc3M6IHdhbGxldEJhc2UgfSA9IHRoaXMuZ2V0QWRkcmVzc0RldGFpbHMod2FsbGV0QmFzZUFkZHJlc3MpO1xuXG4gICAgaWYgKGFkZHJlc3NCYXNlLnRvTG93ZXJDYXNlKCkgIT09IHdhbGxldEJhc2UudG9Mb3dlckNhc2UoKSkge1xuICAgICAgdGhyb3cgbmV3IFVuZXhwZWN0ZWRBZGRyZXNzRXJyb3IoYGFkZHJlc3MgdmFsaWRhdGlvbiBmYWlsdXJlOiBleHBlY3RlZCAke3dhbGxldEJhc2V9IGJ1dCBnb3QgJHthZGRyZXNzQmFzZX1gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQYXJzZSBhIHNlcmlhbGlzZWQgVGVtcG8gdHJhbnNhY3Rpb24gYW5kIHJldHVybiBpdHMgb3BlcmF0aW9ucyBhcyBTREsgb3V0cHV0cy5cbiAgICogQGluaGVyaXRkb2NcbiAgICovXG4gIGFzeW5jIHBhcnNlVHJhbnNhY3Rpb24ocGFyYW1zOiBQYXJzZVRyYW5zYWN0aW9uT3B0aW9ucyk6IFByb21pc2U8UGFyc2VkVHJhbnNhY3Rpb24+IHtcbiAgICBjb25zdCB0eEhleCA9IChwYXJhbXMudHhIZXggfHwgKHBhcmFtcyBhcyBhbnkpLmhhbGZTaWduZWQ/LnR4SGV4KSBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgaWYgKCF0eEhleCkge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbiAgICBjb25zdCB0eEJ1aWxkZXIgPSB0aGlzLmdldFRyYW5zYWN0aW9uQnVpbGRlcigpO1xuICAgIHR4QnVpbGRlci5mcm9tKHR4SGV4KTtcbiAgICBjb25zdCB0eCA9IChhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKSkgYXMgVGlwMjBUcmFuc2FjdGlvbjtcbiAgICByZXR1cm4ge1xuICAgICAgaW5wdXRzOiB0eC5pbnB1dHMubWFwKChpbnB1dCkgPT4gKHtcbiAgICAgICAgYWRkcmVzczogaW5wdXQuYWRkcmVzcyxcbiAgICAgICAgYW1vdW50OiBpbnB1dC52YWx1ZSxcbiAgICAgICAgY29pbjogdGhpcy5nZXRDaGFpbigpLFxuICAgICAgfSkpLFxuICAgICAgb3V0cHV0czogdHgub3V0cHV0cy5tYXAoKG91dHB1dCkgPT4gKHtcbiAgICAgICAgYWRkcmVzczogb3V0cHV0LmFkZHJlc3MsXG4gICAgICAgIGFtb3VudDogb3V0cHV0LnZhbHVlLFxuICAgICAgICBjb2luOiB0aGlzLmdldENoYWluKCksXG4gICAgICB9KSksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWZXJpZnkgdGhhdCBhIFRlbXBvIHRyYW5zYWN0aW9uIG1hdGNoZXMgdGhlIGludGVuZGVkIHJlY2lwaWVudHMgYW5kIGFtb3VudHMuXG4gICAqIEBpbmhlcml0ZG9jXG4gICAqL1xuICBhc3luYyB2ZXJpZnlUcmFuc2FjdGlvbihwYXJhbXM6IFZlcmlmeUV0aFRyYW5zYWN0aW9uT3B0aW9ucyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHsgdHhQYXJhbXMsIHR4UHJlYnVpbGQgfSA9IHBhcmFtcztcblxuICAgIGlmICghdHhQcmVidWlsZD8udHhIZXgpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGNvbnN0IHR4QnVpbGRlciA9IHRoaXMuZ2V0VHJhbnNhY3Rpb25CdWlsZGVyKCk7XG4gICAgdHhCdWlsZGVyLmZyb20odHhQcmVidWlsZC50eEhleCk7XG4gICAgY29uc3QgdHggPSAoYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCkpIGFzIFRpcDIwVHJhbnNhY3Rpb247XG4gICAgY29uc3Qgb3BlcmF0aW9ucyA9IHR4LmdldE9wZXJhdGlvbnMoKTtcblxuICAgIC8vIElmIHRoZSBjYWxsZXIgc3BlY2lmaWVkIGV4cGxpY2l0IHJlY2lwaWVudHMsIHZlcmlmeSB0aGV5IG1hdGNoIHRoZSBvcGVyYXRpb25zIDEtdG8tMVxuICAgIGNvbnN0IHJlY2lwaWVudHMgPSB0eFBhcmFtcz8ucmVjaXBpZW50cztcbiAgICBpZiAocmVjaXBpZW50cyAmJiByZWNpcGllbnRzLmxlbmd0aCA+IDApIHtcbiAgICAgIGlmIChvcGVyYXRpb25zLmxlbmd0aCAhPT0gcmVjaXBpZW50cy5sZW5ndGgpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBUcmFuc2FjdGlvbiBoYXMgJHtvcGVyYXRpb25zLmxlbmd0aH0gb3BlcmF0aW9uKHMpIGJ1dCAke3JlY2lwaWVudHMubGVuZ3RofSByZWNpcGllbnQocykgd2VyZSByZXF1ZXN0ZWRgXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG9wZXJhdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3Qgb3AgPSBvcGVyYXRpb25zW2ldO1xuICAgICAgICBjb25zdCByZWNpcGllbnQgPSByZWNpcGllbnRzW2ldO1xuICAgICAgICBpZiAob3AudG8udG9Mb3dlckNhc2UoKSAhPT0gcmVjaXBpZW50LmFkZHJlc3MudG9Mb3dlckNhc2UoKSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgT3BlcmF0aW9uICR7aX0gcmVjaXBpZW50IG1pc21hdGNoOiBleHBlY3RlZCAke3JlY2lwaWVudC5hZGRyZXNzfSwgZ290ICR7b3AudG99YCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gQ29tcGFyZSBhbW91bnRzIGluIGJhc2UgdW5pdHMgKHNtYWxsZXN0IGRlbm9taW5hdGlvbilcbiAgICAgICAgY29uc3Qgb3BBbW91bnRCYXNlVW5pdHMgPSBhbW91bnRUb1RpcDIwVW5pdHMob3AuYW1vdW50KS50b1N0cmluZygpO1xuICAgICAgICBpZiAob3BBbW91bnRCYXNlVW5pdHMgIT09IHJlY2lwaWVudC5hbW91bnQudG9TdHJpbmcoKSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgT3BlcmF0aW9uICR7aX0gYW1vdW50IG1pc21hdGNoOiBleHBlY3RlZCAke3JlY2lwaWVudC5hbW91bnR9LCBnb3QgJHtvcEFtb3VudEJhc2VVbml0c31gKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIHVuc2lnbmVkIHN3ZWVwIHRyYW5zYWN0aW9uIGZvciBUU1NcbiAgICogVE9ETzogSW1wbGVtZW50IHN3ZWVwIHRyYW5zYWN0aW9uIGxvZ2ljXG4gICAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRVbnNpZ25lZFN3ZWVwVHhuVFNTKHBhcmFtczogUmVjb3Zlck9wdGlvbnMpOiBQcm9taXNlPE9mZmxpbmVWYXVsdFR4SW5mbyB8IFVuc2lnbmVkU3dlZXBUeE1QQ3YyPiB7XG4gICAgLy8gVE9ETzogSW1wbGVtZW50IHdoZW4gcmVjb3ZlcnkgbG9naWMgaXMgbmVlZGVkXG4gICAgLy8gUmV0dXJuIGR1bW15IHZhbHVlIHRvIHByZXZlbnQgZG93bnN0cmVhbSBzZXJ2aWNlcyBmcm9tIGJyZWFraW5nXG4gICAgcmV0dXJuIHt9IGFzIE9mZmxpbmVWYXVsdFR4SW5mbztcbiAgfVxuXG4gIC8qKlxuICAgKiBRdWVyeSBibG9jayBleHBsb3JlciBmb3IgcmVjb3ZlcnkgaW5mb3JtYXRpb25cbiAgICogVE9ETzogSW1wbGVtZW50IHdoZW4gVGVtcG8gYmxvY2sgZXhwbG9yZXIgaXMgYXZhaWxhYmxlXG4gICAqL1xuICBhc3luYyByZWNvdmVyeUJsb2NrY2hhaW5FeHBsb3JlclF1ZXJ5KFxuICAgIHF1ZXJ5OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuICAgIGFwaUtleT86IHN0cmluZ1xuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIHVua25vd24+PiB7XG4gICAgLy8gVE9ETzogSW1wbGVtZW50IHdpdGggVGVtcG8gYmxvY2sgZXhwbG9yZXIgQVBJXG4gICAgLy8gUmV0dXJuIGVtcHR5IG9iamVjdCB0byBwcmV2ZW50IGRvd25zdHJlYW0gc2VydmljZXMgZnJvbSBicmVha2luZ1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdHJhbnNhY3Rpb24gYnVpbGRlciBmb3IgVGVtcG9cbiAgICogUmV0dXJucyBhIFRJUC0yMCB0cmFuc2FjdGlvbiBidWlsZGVyIGZvciBUZW1wby1zcGVjaWZpYyBvcGVyYXRpb25zXG4gICAqIEBwYXJhbSBjb21tb24gLSBPcHRpb25hbCBjb21tb24gY2hhaW4gY29uZmlndXJhdGlvblxuICAgKiBAcHJvdGVjdGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0VHJhbnNhY3Rpb25CdWlsZGVyKGNvbW1vbj86IEV0aExpa2VDb21tb24uZGVmYXVsdCk6IFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gICAgcmV0dXJuIG5ldyBUaXAyMFRyYW5zYWN0aW9uQnVpbGRlcihjb2lucy5nZXQodGhpcy5nZXRCYXNlQ2hhaW4oKSkpIGFzIHVua25vd24gYXMgVHJhbnNhY3Rpb25CdWlsZGVyO1xuICB9XG59XG4iXX0=
288
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVtcG8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0dBRUc7QUFDSCxzREFVNkI7QUFFN0IsOENBU3lCO0FBQ3pCLDRDQUFvRTtBQUNwRSwrQkFBa0U7QUFDbEUsdUNBQXlHO0FBQ3pHLHlDQUEyQjtBQUMzQix5REFBMkM7QUFFM0MsTUFBYSxLQUFNLFNBQVEsc0NBQXVCO0lBQ2hELFlBQXNCLEtBQWdCLEVBQUUsV0FBdUM7UUFDN0UsS0FBSyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQWdCLEVBQUUsV0FBdUM7UUFDN0UsT0FBTyxJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLElBQUksT0FBTyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7T0FFRztJQUNILFdBQVc7UUFDVCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGFBQWE7UUFDWCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRDs7O09BR0c7SUFDSCx3QkFBd0I7UUFDdEIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQ7O09BRUc7SUFDSCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxlQUFlO1FBQ2IsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsY0FBYyxDQUFDLE9BQWU7UUFDNUIsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNoQyxPQUFPLEtBQUss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QUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDcEcsQ0FBQztnQkFDRCx3REFBd0Q7Z0JBQ3hELE1BQU0saUJBQWlCLEdBQUcsSUFBQSwwQkFBa0IsRUFBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ25FLElBQUksaUJBQWlCLEtBQUssU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO29CQUN0RCxNQUFNLElBQUksS0FBSyxDQUFDLGFBQWEsQ0FBQyw4QkFBOEIsU0FBUyxDQUFDLE1BQU0sU0FBUyxpQkFBaUIsRUFBRSxDQUFDLENBQUM7Z0JBQzVHLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7T0FHRztJQUNPLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxNQUFzQjtRQUM3RCxnREFBZ0Q7UUFDaEQsa0VBQWtFO1FBQ2xFLE9BQU8sRUFBd0IsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLCtCQUErQixDQUNuQyxLQUE2QixFQUM3QixNQUFlO1FBRWYsZ0RBQWdEO1FBQ2hELG1FQUFtRTtRQUNuRSxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNPLHFCQUFxQixDQUFDLE1BQThCO1FBQzVELE9BQU8sSUFBSSw2QkFBdUIsQ0FBQyxlQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFrQyxDQUFDO0lBQ3RHLENBQUM7Q0FDRjtBQTNSRCxzQkEyUkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQge1xuICBBYnN0cmFjdEV0aExpa2VOZXdDb2lucyxcbiAgUmVjb3Zlck9wdGlvbnMsXG4gIE9mZmxpbmVWYXVsdFR4SW5mbyxcbiAgVW5zaWduZWRTd2VlcFR4TVBDdjIsXG4gIFRyYW5zYWN0aW9uQnVpbGRlcixcbiAgVmVyaWZ5RXRoVHJhbnNhY3Rpb25PcHRpb25zLFxuICBWZXJpZnlFdGhBZGRyZXNzT3B0aW9ucyxcbiAgVHNzVmVyaWZ5RXRoQWRkcmVzc09wdGlvbnMsXG4gIG9wdGlvbmFsRGVwcyxcbn0gZnJvbSAnQGJpdGdvL2Fic3RyYWN0LWV0aCc7XG5pbXBvcnQgdHlwZSAqIGFzIEV0aExpa2VDb21tb24gZnJvbSAnQGV0aGVyZXVtanMvY29tbW9uJztcbmltcG9ydCB7XG4gIEJhc2VDb2luLFxuICBCaXRHb0Jhc2UsXG4gIEludmFsaWRBZGRyZXNzRXJyb3IsXG4gIEludmFsaWRNZW1vSWRFcnJvcixcbiAgTVBDQWxnb3JpdGhtLFxuICBQYXJzZVRyYW5zYWN0aW9uT3B0aW9ucyxcbiAgUGFyc2VkVHJhbnNhY3Rpb24sXG4gIFVuZXhwZWN0ZWRBZGRyZXNzRXJyb3IsXG59IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBTdGF0aWNzQmFzZUNvaW4sIGNvaW5zIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHsgVGlwMjBUcmFuc2FjdGlvbiwgVGlwMjBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL2xpYic7XG5pbXBvcnQgeyBhbW91bnRUb1RpcDIwVW5pdHMsIGlzVGlwMjBUcmFuc2FjdGlvbiwgaXNWYWxpZE1lbW9JZCBhcyBpc1ZhbGlkTWVtb0lkVXRpbCB9IGZyb20gJy4vbGliL3V0aWxzJztcbmltcG9ydCAqIGFzIHVybCBmcm9tICd1cmwnO1xuaW1wb3J0ICogYXMgcXVlcnlzdHJpbmcgZnJvbSAncXVlcnlzdHJpbmcnO1xuXG5leHBvcnQgY2xhc3MgVGVtcG8gZXh0ZW5kcyBBYnN0cmFjdEV0aExpa2VOZXdDb2lucyB7XG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihiaXRnbzogQml0R29CYXNlLCBzdGF0aWNzQ29pbj86IFJlYWRvbmx5PFN0YXRpY3NCYXNlQ29pbj4pIHtcbiAgICBzdXBlcihiaXRnbywgc3RhdGljc0NvaW4pO1xuICB9XG5cbiAgLyoqXG4gICAqIEZhY3RvcnkgbWV0aG9kIHRvIGNyZWF0ZSBUZW1wbyBpbnN0YW5jZVxuICAgKi9cbiAgc3RhdGljIGNyZWF0ZUluc3RhbmNlKGJpdGdvOiBCaXRHb0Jhc2UsIHN0YXRpY3NDb2luPzogUmVhZG9ubHk8U3RhdGljc0Jhc2VDb2luPik6IEJhc2VDb2luIHtcbiAgICByZXR1cm4gbmV3IFRlbXBvKGJpdGdvLCBzdGF0aWNzQ29pbik7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBjaGFpbiBpZGVudGlmaWVyXG4gICAqL1xuICBnZXRDaGFpbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9zdGF0aWNzQ29pbj8ubmFtZSB8fCAndGVtcG8nO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZnVsbCBjaGFpbiBuYW1lXG4gICAqL1xuICBnZXRGdWxsTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiAnVGVtcG8nO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGdldEJhc2VGYWN0b3IoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gMWU2O1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIHZhbHVlLWxlc3MgdHJhbnNmZXJzIGFyZSBhbGxvd2VkXG4gICAqIFRPRE86IFVwZGF0ZSBiYXNlZCBvbiBUZW1wbyByZXF1aXJlbWVudHNcbiAgICovXG4gIHZhbHVlbGVzc1RyYW5zZmVyQWxsb3dlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgVFNTIGlzIHN1cHBvcnRlZFxuICAgKi9cbiAgc3VwcG9ydHNUc3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBNUEMgYWxnb3JpdGhtIChFQ0RTQSBmb3IgRVZNIGNoYWlucylcbiAgICovXG4gIGdldE1QQ0FsZ29yaXRobSgpOiBNUENBbGdvcml0aG0ge1xuICAgIHJldHVybiAnZWNkc2EnO1xuICB9XG5cbiAgLyoqXG4gICAqIEV2YWx1YXRlcyB3aGV0aGVyIGFuIGFkZHJlc3Mgc3RyaW5nIGlzIHZhbGlkIGZvciBUZW1wb1xuICAgKiBTdXBwb3J0cyBhZGRyZXNzZXMgd2l0aCBvcHRpb25hbCBtZW1vSWQgcXVlcnkgcGFyYW1ldGVyIChlLmcuLCAweC4uLj9tZW1vSWQ9MTIzKVxuICAgKiBAcGFyYW0gYWRkcmVzcyAtIFRoZSBhZGRyZXNzIHRvIHZhbGlkYXRlXG4gICAqIEByZXR1cm5zIHRydWUgaWYgYWRkcmVzcyBpcyB2YWxpZFxuICAgKi9cbiAgaXNWYWxpZEFkZHJlc3MoYWRkcmVzczogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKHR5cGVvZiBhZGRyZXNzICE9PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCB7IGJhc2VBZGRyZXNzIH0gPSB0aGlzLmdldEFkZHJlc3NEZXRhaWxzKGFkZHJlc3MpO1xuICAgICAgcmV0dXJuIG9wdGlvbmFsRGVwcy5ldGhVdGlsLmlzVmFsaWRBZGRyZXNzKG9wdGlvbmFsRGVwcy5ldGhVdGlsLmFkZEhleFByZWZpeChiYXNlQWRkcmVzcykpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUGFyc2UgYWRkcmVzcyBpbnRvIGJhc2UgYWRkcmVzcyBhbmQgb3B0aW9uYWwgbWVtb0lkXG4gICAqIFRocm93cyBJbnZhbGlkQWRkcmVzc0Vycm9yIGZvciBpbnZhbGlkIGFkZHJlc3MgZm9ybWF0c1xuICAgKiBAcGFyYW0gYWRkcmVzcyAtIEFkZHJlc3Mgc3RyaW5nLCBwb3RlbnRpYWxseSB3aXRoID9tZW1vSWQ9WCBzdWZmaXhcbiAgICogQHJldHVybnMgT2JqZWN0IGNvbnRhaW5pbmcgYWRkcmVzcywgYmFzZUFkZHJlc3MsIGFuZCBtZW1vSWQgKG51bGwgaWYgbm90IHByZXNlbnQpXG4gICAqIEB0aHJvd3MgSW52YWxpZEFkZHJlc3NFcnJvciBpZiBhZGRyZXNzIGZvcm1hdCBpcyBpbnZhbGlkXG4gICAqL1xuICBnZXRBZGRyZXNzRGV0YWlscyhhZGRyZXNzOiBzdHJpbmcpOiB7IGFkZHJlc3M6IHN0cmluZzsgYmFzZUFkZHJlc3M6IHN0cmluZzsgbWVtb0lkOiBzdHJpbmcgfCBudWxsIH0ge1xuICAgIGlmICh0eXBlb2YgYWRkcmVzcyAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQWRkcmVzc0Vycm9yKGBpbnZhbGlkIGFkZHJlc3M6ICR7YWRkcmVzc31gKTtcbiAgICB9XG5cbiAgICBjb25zdCBkZXN0aW5hdGlvbkRldGFpbHMgPSB1cmwucGFyc2UoYWRkcmVzcyk7XG4gICAgY29uc3QgYmFzZUFkZHJlc3MgPSBkZXN0aW5hdGlvbkRldGFpbHMucGF0aG5hbWUgfHwgJyc7XG5cbiAgICAvLyBObyBxdWVyeSBzdHJpbmcgLSBqdXN0IGEgcGxhaW4gYWRkcmVzc1xuICAgIGlmIChkZXN0aW5hdGlvbkRldGFpbHMucGF0aG5hbWUgPT09IGFkZHJlc3MpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGFkZHJlc3MsXG4gICAgICAgIGJhc2VBZGRyZXNzOiBhZGRyZXNzLFxuICAgICAgICBtZW1vSWQ6IG51bGwsXG4gICAgICB9O1xuICAgIH1cblxuICAgIC8vIEhhcyBxdWVyeSBzdHJpbmcgLSBtdXN0IGNvbnRhaW4gbWVtb0lkXG4gICAgaWYgKCFkZXN0aW5hdGlvbkRldGFpbHMucXVlcnkpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQWRkcmVzc0Vycm9yKGBpbnZhbGlkIGFkZHJlc3M6ICR7YWRkcmVzc31gKTtcbiAgICB9XG5cbiAgICBjb25zdCBxdWVyeURldGFpbHMgPSBxdWVyeXN0cmluZy5wYXJzZShkZXN0aW5hdGlvbkRldGFpbHMucXVlcnkpO1xuXG4gICAgLy8gUXVlcnkgc3RyaW5nIG11c3QgY29udGFpbiBtZW1vSWRcbiAgICBpZiAoIXF1ZXJ5RGV0YWlscy5tZW1vSWQpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQWRkcmVzc0Vycm9yKGBpbnZhbGlkIGFkZHJlc3M6ICR7YWRkcmVzc30sIHVua25vd24gcXVlcnkgcGFyYW1ldGVyc2ApO1xuICAgIH1cblxuICAgIC8vIE9ubHkgb25lIG1lbW9JZCBhbGxvd2VkXG4gICAgaWYgKEFycmF5LmlzQXJyYXkocXVlcnlEZXRhaWxzLm1lbW9JZCkpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQWRkcmVzc0Vycm9yKFxuICAgICAgICBgbWVtb0lkIG1heSBvbmx5IGJlIGdpdmVuIGF0IG1vc3Qgb25jZSwgYnV0IGZvdW5kICR7cXVlcnlEZXRhaWxzLm1lbW9JZC5sZW5ndGh9IGluc3RhbmNlcyBpbiBhZGRyZXNzICR7YWRkcmVzc31gXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIFJlamVjdCBpZiB0aGVyZSBhcmUgb3RoZXIgcXVlcnkgcGFyYW1ldGVycyBiZXNpZGVzIG1lbW9JZFxuICAgIGNvbnN0IHF1ZXJ5S2V5cyA9IE9iamVjdC5rZXlzKHF1ZXJ5RGV0YWlscyk7XG4gICAgaWYgKHF1ZXJ5S2V5cy5sZW5ndGggIT09IDEpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQWRkcmVzc0Vycm9yKGBpbnZhbGlkIGFkZHJlc3M6ICR7YWRkcmVzc30sIG9ubHkgbWVtb0lkIHF1ZXJ5IHBhcmFtZXRlciBpcyBhbGxvd2VkYCk7XG4gICAgfVxuXG4gICAgLy8gVmFsaWRhdGUgbWVtb0lkIGZvcm1hdFxuICAgIGlmICghdGhpcy5pc1ZhbGlkTWVtb0lkKHF1ZXJ5RGV0YWlscy5tZW1vSWQpKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZE1lbW9JZEVycm9yKGBpbnZhbGlkIGFkZHJlc3M6ICcke2FkZHJlc3N9JywgbWVtb0lkIGlzIG5vdCB2YWxpZGApO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBhZGRyZXNzLFxuICAgICAgYmFzZUFkZHJlc3MsXG4gICAgICBtZW1vSWQ6IHF1ZXJ5RGV0YWlscy5tZW1vSWQsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZSB0aGF0IGEgbWVtb0lkIGlzIGEgdmFsaWQgbm9uLW5lZ2F0aXZlIGludGVnZXIgc3RyaW5nXG4gICAqIEBwYXJhbSBtZW1vSWQgLSBUaGUgbWVtb0lkIHRvIHZhbGlkYXRlXG4gICAqIEByZXR1cm5zIHRydWUgaWYgdmFsaWRcbiAgICovXG4gIGlzVmFsaWRNZW1vSWQobWVtb0lkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNWYWxpZE1lbW9JZFV0aWwobWVtb0lkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUZW1wbyB1c2VzIG1lbW9JZC1iYXNlZCBhZGRyZXNzZXMgcmF0aGVyIHRoYW4gZm9yd2FyZGVyIGNvbnRyYWN0cy5cbiAgICogVmVyaWZ5IHRoYXQgdGhlIGFkZHJlc3MgYmVsb25ncyB0byB0aGlzIHdhbGxldCBieSBjaGVja2luZyB0aGF0IHRoZVxuICAgKiBiYXNlIChFVk0pIHBvcnRpb24gbWF0Y2hlcyB0aGUgd2FsbGV0J3MgYmFzZSBhZGRyZXNzLlxuICAgKi9cbiAgYXN5bmMgaXNXYWxsZXRBZGRyZXNzKHBhcmFtczogVmVyaWZ5RXRoQWRkcmVzc09wdGlvbnMgfCBUc3NWZXJpZnlFdGhBZGRyZXNzT3B0aW9ucyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHsgYWRkcmVzcywgYmFzZUFkZHJlc3MgfSA9IHBhcmFtcztcbiAgICBjb25zdCByb290QWRkcmVzcyA9IChwYXJhbXMgYXMgdW5rbm93biBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikucm9vdEFkZHJlc3MgYXMgc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICAgaWYgKCFhZGRyZXNzKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFkZHJlc3NFcnJvcignYWRkcmVzcyBpcyByZXF1aXJlZCcpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5pc1ZhbGlkQWRkcmVzcyhhZGRyZXNzKSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRBZGRyZXNzRXJyb3IoYGludmFsaWQgYWRkcmVzczogJHthZGRyZXNzfWApO1xuICAgIH1cblxuICAgIGNvbnN0IHsgYmFzZUFkZHJlc3M6IGFkZHJlc3NCYXNlIH0gPSB0aGlzLmdldEFkZHJlc3NEZXRhaWxzKGFkZHJlc3MpO1xuXG4gICAgY29uc3Qgd2FsbGV0QmFzZUFkZHJlc3MgPSBiYXNlQWRkcmVzcyB8fCByb290QWRkcmVzcztcbiAgICBpZiAoIXdhbGxldEJhc2VBZGRyZXNzKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFkZHJlc3NFcnJvcignYmFzZUFkZHJlc3Mgb3Igcm9vdEFkZHJlc3MgaXMgcmVxdWlyZWQgZm9yIHZlcmlmaWNhdGlvbicpO1xuICAgIH1cblxuICAgIGNvbnN0IHsgYmFzZUFkZHJlc3M6IHdhbGxldEJhc2UgfSA9IHRoaXMuZ2V0QWRkcmVzc0RldGFpbHMod2FsbGV0QmFzZUFkZHJlc3MpO1xuXG4gICAgaWYgKGFkZHJlc3NCYXNlLnRvTG93ZXJDYXNlKCkgIT09IHdhbGxldEJhc2UudG9Mb3dlckNhc2UoKSkge1xuICAgICAgdGhyb3cgbmV3IFVuZXhwZWN0ZWRBZGRyZXNzRXJyb3IoYGFkZHJlc3MgdmFsaWRhdGlvbiBmYWlsdXJlOiBleHBlY3RlZCAke3dhbGxldEJhc2V9IGJ1dCBnb3QgJHthZGRyZXNzQmFzZX1gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQYXJzZSBhIHNlcmlhbGlzZWQgVGVtcG8gdHJhbnNhY3Rpb24gYW5kIHJldHVybiBpdHMgb3BlcmF0aW9ucyBhcyBTREsgb3V0cHV0cy5cbiAgICogQGluaGVyaXRkb2NcbiAgICovXG4gIGFzeW5jIHBhcnNlVHJhbnNhY3Rpb24ocGFyYW1zOiBQYXJzZVRyYW5zYWN0aW9uT3B0aW9ucyk6IFByb21pc2U8UGFyc2VkVHJhbnNhY3Rpb24+IHtcbiAgICBjb25zdCB0eEhleCA9IChwYXJhbXMudHhIZXggfHwgKHBhcmFtcyBhcyBhbnkpLmhhbGZTaWduZWQ/LnR4SGV4KSBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgaWYgKCF0eEhleCkge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbiAgICBpZiAoIWlzVGlwMjBUcmFuc2FjdGlvbih0eEhleCkpIHtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG4gICAgY29uc3QgdHhCdWlsZGVyID0gdGhpcy5nZXRUcmFuc2FjdGlvbkJ1aWxkZXIoKTtcbiAgICB0eEJ1aWxkZXIuZnJvbSh0eEhleCk7XG4gICAgY29uc3QgdHggPSAoYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCkpIGFzIFRpcDIwVHJhbnNhY3Rpb247XG4gICAgcmV0dXJuIHtcbiAgICAgIGlucHV0czogdHguaW5wdXRzLm1hcCgoaW5wdXQpID0+ICh7XG4gICAgICAgIGFkZHJlc3M6IGlucHV0LmFkZHJlc3MsXG4gICAgICAgIGFtb3VudDogaW5wdXQudmFsdWUsXG4gICAgICAgIGNvaW46IHRoaXMuZ2V0Q2hhaW4oKSxcbiAgICAgIH0pKSxcbiAgICAgIG91dHB1dHM6IHR4Lm91dHB1dHMubWFwKChvdXRwdXQpID0+ICh7XG4gICAgICAgIGFkZHJlc3M6IG91dHB1dC5hZGRyZXNzLFxuICAgICAgICBhbW91bnQ6IG91dHB1dC52YWx1ZSxcbiAgICAgICAgY29pbjogdGhpcy5nZXRDaGFpbigpLFxuICAgICAgfSkpLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZ5IHRoYXQgYSBUZW1wbyB0cmFuc2FjdGlvbiBtYXRjaGVzIHRoZSBpbnRlbmRlZCByZWNpcGllbnRzIGFuZCBhbW91bnRzLlxuICAgKiBAaW5oZXJpdGRvY1xuICAgKi9cbiAgYXN5bmMgdmVyaWZ5VHJhbnNhY3Rpb24ocGFyYW1zOiBWZXJpZnlFdGhUcmFuc2FjdGlvbk9wdGlvbnMpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCB7IHR4UGFyYW1zLCB0eFByZWJ1aWxkIH0gPSBwYXJhbXM7XG5cbiAgICBpZiAoIXR4UHJlYnVpbGQ/LnR4SGV4KSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyBzaWduYWJsZUhleCBtYXkgYXJyaXZlIHdpdGhvdXQgdGhlIDB4IHByZWZpeCAoZS5nLiBmcm9tIHRoZSBUU1Mgc2lnbmluZyBmbG93KS5cbiAgICBjb25zdCB0eEhleCA9IHR4UHJlYnVpbGQudHhIZXguc3RhcnRzV2l0aCgnMHgnKSA/IHR4UHJlYnVpbGQudHhIZXggOiAnMHgnICsgdHhQcmVidWlsZC50eEhleDtcbiAgICBpZiAoIWlzVGlwMjBUcmFuc2FjdGlvbih0eEhleCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBUZW1wbyB0cmFuc2FjdGlvbiBoZXg6IGV4cGVjdGVkIGEgMHg3NiBUSVAtMjAgdHJhbnNhY3Rpb25gKTtcbiAgICB9XG5cbiAgICBjb25zdCB0eEJ1aWxkZXIgPSB0aGlzLmdldFRyYW5zYWN0aW9uQnVpbGRlcigpO1xuICAgIHR4QnVpbGRlci5mcm9tKHR4SGV4KTtcbiAgICBjb25zdCB0eCA9IChhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKSkgYXMgVGlwMjBUcmFuc2FjdGlvbjtcbiAgICBjb25zdCBvcGVyYXRpb25zID0gdHguZ2V0T3BlcmF0aW9ucygpO1xuXG4gICAgLy8gSWYgdGhlIGNhbGxlciBzcGVjaWZpZWQgZXhwbGljaXQgcmVjaXBpZW50cywgdmVyaWZ5IHRoZXkgbWF0Y2ggdGhlIG9wZXJhdGlvbnMgMS10by0xXG4gICAgY29uc3QgcmVjaXBpZW50cyA9IHR4UGFyYW1zPy5yZWNpcGllbnRzO1xuICAgIGlmIChyZWNpcGllbnRzICYmIHJlY2lwaWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgaWYgKG9wZXJhdGlvbnMubGVuZ3RoICE9PSByZWNpcGllbnRzLmxlbmd0aCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYFRyYW5zYWN0aW9uIGhhcyAke29wZXJhdGlvbnMubGVuZ3RofSBvcGVyYXRpb24ocykgYnV0ICR7cmVjaXBpZW50cy5sZW5ndGh9IHJlY2lwaWVudChzKSB3ZXJlIHJlcXVlc3RlZGBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgb3BlcmF0aW9ucy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBvcCA9IG9wZXJhdGlvbnNbaV07XG4gICAgICAgIGNvbnN0IHJlY2lwaWVudCA9IHJlY2lwaWVudHNbaV07XG4gICAgICAgIGlmIChvcC50by50b0xvd2VyQ2FzZSgpICE9PSByZWNpcGllbnQuYWRkcmVzcy50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBPcGVyYXRpb24gJHtpfSByZWNpcGllbnQgbWlzbWF0Y2g6IGV4cGVjdGVkICR7cmVjaXBpZW50LmFkZHJlc3N9LCBnb3QgJHtvcC50b31gKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBDb21wYXJlIGFtb3VudHMgaW4gYmFzZSB1bml0cyAoc21hbGxlc3QgZGVub21pbmF0aW9uKVxuICAgICAgICBjb25zdCBvcEFtb3VudEJhc2VVbml0cyA9IGFtb3VudFRvVGlwMjBVbml0cyhvcC5hbW91bnQpLnRvU3RyaW5nKCk7XG4gICAgICAgIGlmIChvcEFtb3VudEJhc2VVbml0cyAhPT0gcmVjaXBpZW50LmFtb3VudC50b1N0cmluZygpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBPcGVyYXRpb24gJHtpfSBhbW91bnQgbWlzbWF0Y2g6IGV4cGVjdGVkICR7cmVjaXBpZW50LmFtb3VudH0sIGdvdCAke29wQW1vdW50QmFzZVVuaXRzfWApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgdW5zaWduZWQgc3dlZXAgdHJhbnNhY3Rpb24gZm9yIFRTU1xuICAgKiBUT0RPOiBJbXBsZW1lbnQgc3dlZXAgdHJhbnNhY3Rpb24gbG9naWNcbiAgICovXG4gIHByb3RlY3RlZCBhc3luYyBidWlsZFVuc2lnbmVkU3dlZXBUeG5UU1MocGFyYW1zOiBSZWNvdmVyT3B0aW9ucyk6IFByb21pc2U8T2ZmbGluZVZhdWx0VHhJbmZvIHwgVW5zaWduZWRTd2VlcFR4TVBDdjI+IHtcbiAgICAvLyBUT0RPOiBJbXBsZW1lbnQgd2hlbiByZWNvdmVyeSBsb2dpYyBpcyBuZWVkZWRcbiAgICAvLyBSZXR1cm4gZHVtbXkgdmFsdWUgdG8gcHJldmVudCBkb3duc3RyZWFtIHNlcnZpY2VzIGZyb20gYnJlYWtpbmdcbiAgICByZXR1cm4ge30gYXMgT2ZmbGluZVZhdWx0VHhJbmZvO1xuICB9XG5cbiAgLyoqXG4gICAqIFF1ZXJ5IGJsb2NrIGV4cGxvcmVyIGZvciByZWNvdmVyeSBpbmZvcm1hdGlvblxuICAgKiBUT0RPOiBJbXBsZW1lbnQgd2hlbiBUZW1wbyBibG9jayBleHBsb3JlciBpcyBhdmFpbGFibGVcbiAgICovXG4gIGFzeW5jIHJlY292ZXJ5QmxvY2tjaGFpbkV4cGxvcmVyUXVlcnkoXG4gICAgcXVlcnk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4gICAgYXBpS2V5Pzogc3RyaW5nXG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+IHtcbiAgICAvLyBUT0RPOiBJbXBsZW1lbnQgd2l0aCBUZW1wbyBibG9jayBleHBsb3JlciBBUElcbiAgICAvLyBSZXR1cm4gZW1wdHkgb2JqZWN0IHRvIHByZXZlbnQgZG93bnN0cmVhbSBzZXJ2aWNlcyBmcm9tIGJyZWFraW5nXG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0cmFuc2FjdGlvbiBidWlsZGVyIGZvciBUZW1wb1xuICAgKiBSZXR1cm5zIGEgVElQLTIwIHRyYW5zYWN0aW9uIGJ1aWxkZXIgZm9yIFRlbXBvLXNwZWNpZmljIG9wZXJhdGlvbnNcbiAgICogQHBhcmFtIGNvbW1vbiAtIE9wdGlvbmFsIGNvbW1vbiBjaGFpbiBjb25maWd1cmF0aW9uXG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBnZXRUcmFuc2FjdGlvbkJ1aWxkZXIoY29tbW9uPzogRXRoTGlrZUNvbW1vbi5kZWZhdWx0KTogVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgICByZXR1cm4gbmV3IFRpcDIwVHJhbnNhY3Rpb25CdWlsZGVyKGNvaW5zLmdldCh0aGlzLmdldEJhc2VDaGFpbigpKSkgYXMgdW5rbm93biBhcyBUcmFuc2FjdGlvbkJ1aWxkZXI7XG4gIH1cbn1cbiJdfQ==
@@ -23,7 +23,7 @@ export declare class Tip20Token extends Tempo {
23
23
  static createTokenConstructor(config: Tip20TokenConfig): CoinConstructor;
24
24
  /**
25
25
  * Create token constructors for all TIP20 tokens
26
- * @param tokenConfigs - Array of token configurations (optional)
26
+ * @param tokenConfigs - Array of token configurations; defaults to all TIP20 tokens from statics
27
27
  */
28
28
  static createTokenConstructors(tokenConfigs?: Tip20TokenConfig[]): NamedCoinConstructor[];
29
29
  /** Get the token type */
@@ -1 +1 @@
1
- {"version":3,"file":"tip20Token.d.ts","sourceRoot":"","sources":["../../src/tip20Token.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACjG,OAAO,EAAS,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE/E,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAE5B;;;;;;GAMG;AACH,qBAAa,UAAW,SAAQ,KAAK;IACnC,SAAgB,WAAW,EAAE,gBAAgB,CAAC;IAC9C,SAAgB,eAAe,EAAE,MAAM,CAAC;gBAE5B,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB;IAO3D;;OAEG;IACH,MAAM,CAAC,sBAAsB,CAAC,MAAM,EAAE,gBAAgB,GAAG,eAAe;IAIxE;;;OAGG;IACH,MAAM,CAAC,uBAAuB,CAAC,YAAY,CAAC,EAAE,gBAAgB,EAAE,GAAG,oBAAoB,EAAE;IAezF,yBAAyB;IACzB,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,yBAAyB;IACzB,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,wBAAwB;IACxB,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,sBAAsB;IACtB,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,qCAAqC;IACrC,IAAI,oBAAoB,IAAI,MAAM,CAEjC;IAED,+BAA+B;IAC/B,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,kBAAkB;IAClB,QAAQ,IAAI,MAAM;IAIlB,kBAAkB;IAClB,YAAY,IAAI,MAAM;IAItB,kBAAkB;IAClB,WAAW,IAAI,MAAM;IAIrB,kBAAkB;IAClB,aAAa,IAAI,MAAM;IAIvB,kBAAkB;IAClB,wBAAwB,IAAI,OAAO;IAInC,kBAAkB;IAClB,WAAW,IAAI,OAAO;IAItB,kBAAkB;IAClB,eAAe,IAAI,YAAY;IAI/B;;;;OAIG;IACH,UAAU,CAAC,UAAU,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO;IAelE;;;;OAIG;IACH,iBAAiB,CAAC,MAAM,EAAE,wBAAwB,GAAG,cAAc,EAAE;IA+DrE;;;;;;OAMG;IACH,YAAY,CACV,SAAS,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,EAC7D,UAAU,EAAE,MAAM,EAClB,kBAAkB,EAAE,MAAM,GACzB,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,EAAE;CA0BzB"}
1
+ {"version":3,"file":"tip20Token.d.ts","sourceRoot":"","sources":["../../src/tip20Token.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACjG,OAAO,EAAiB,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE/E,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAE5B;;;;;;GAMG;AACH,qBAAa,UAAW,SAAQ,KAAK;IACnC,SAAgB,WAAW,EAAE,gBAAgB,CAAC;IAC9C,SAAgB,eAAe,EAAE,MAAM,CAAC;gBAE5B,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB;IAO3D;;OAEG;IACH,MAAM,CAAC,sBAAsB,CAAC,MAAM,EAAE,gBAAgB,GAAG,eAAe;IAIxE;;;OAGG;IACH,MAAM,CAAC,uBAAuB,CAC5B,YAAY,GAAE,gBAAgB,EAAqE,GAClG,oBAAoB,EAAE;IAezB,yBAAyB;IACzB,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,yBAAyB;IACzB,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,wBAAwB;IACxB,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,sBAAsB;IACtB,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,qCAAqC;IACrC,IAAI,oBAAoB,IAAI,MAAM,CAEjC;IAED,+BAA+B;IAC/B,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,kBAAkB;IAClB,QAAQ,IAAI,MAAM;IAIlB,kBAAkB;IAClB,YAAY,IAAI,MAAM;IAItB,kBAAkB;IAClB,WAAW,IAAI,MAAM;IAIrB,kBAAkB;IAClB,aAAa,IAAI,MAAM;IAIvB,kBAAkB;IAClB,wBAAwB,IAAI,OAAO;IAInC,kBAAkB;IAClB,WAAW,IAAI,OAAO;IAItB,kBAAkB;IAClB,eAAe,IAAI,YAAY;IAI/B;;;;OAIG;IACH,UAAU,CAAC,UAAU,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO;IAelE;;;;OAIG;IACH,iBAAiB,CAAC,MAAM,EAAE,wBAAwB,GAAG,cAAc,EAAE;IA+DrE;;;;;;OAMG;IACH,YAAY,CACV,SAAS,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,EAC7D,UAAU,EAAE,MAAM,EAClB,kBAAkB,EAAE,MAAM,GACzB,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,EAAE;CA0BzB"}
@@ -26,10 +26,10 @@ class Tip20Token extends tempo_1.Tempo {
26
26
  }
27
27
  /**
28
28
  * Create token constructors for all TIP20 tokens
29
- * @param tokenConfigs - Array of token configurations (optional)
29
+ * @param tokenConfigs - Array of token configurations; defaults to all TIP20 tokens from statics
30
30
  */
31
- static createTokenConstructors(tokenConfigs) {
32
- const configs = tokenConfigs || [];
31
+ static createTokenConstructors(tokenConfigs = [...statics_1.tokens.bitcoin.tempo.tokens, ...statics_1.tokens.testnet.tempo.tokens]) {
32
+ const configs = tokenConfigs;
33
33
  const tokensCtors = [];
34
34
  for (const token of configs) {
35
35
  const tokenConstructor = Tip20Token.createTokenConstructor(token);
@@ -199,4 +199,4 @@ class Tip20Token extends tempo_1.Tempo {
199
199
  }
200
200
  }
201
201
  exports.Tip20Token = Tip20Token;
202
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlwMjBUb2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90aXAyMFRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUlBLDRDQUF5RDtBQUd6RCxtQ0FBZ0M7QUFDaEMsdUNBQWtIO0FBSWxIOzs7Ozs7R0FNRztBQUNILE1BQWEsVUFBVyxTQUFRLGFBQUs7SUFJbkMsWUFBWSxLQUFnQixFQUFFLFdBQTZCO1FBQ3pELE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxlQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2pHLEtBQUssQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDL0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxXQUFXLENBQUMsb0JBQW9CLENBQUM7SUFDMUQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLHNCQUFzQixDQUFDLE1BQXdCO1FBQ3BELE9BQU8sQ0FBQyxLQUFnQixFQUFFLEVBQUUsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxZQUFpQztRQUM5RCxNQUFNLE9BQU8sR0FBRyxZQUFZLElBQUksRUFBRSxDQUFDO1FBQ25DLE1BQU0sV0FBVyxHQUEyQixFQUFFLENBQUM7UUFFL0MsS0FBSyxNQUFNLEtBQUssSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUM1QixNQUFNLGdCQUFnQixHQUFHLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNsRSx5QkFBeUI7WUFDekIsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUks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SSxDQUFDLENBQUMsTUFBTSxDQUFDO1lBQ3ZFLElBQUksY0FBYyxHQUFHLEVBQUUsRUFBRSxDQUFDO2dCQUN4QixNQUFNLElBQUksS0FBSyxDQUFDLGtCQUFrQixjQUFjLDJCQUEyQixDQUFDLENBQUM7WUFDL0UsQ0FBQztRQUNILENBQUM7UUFFRCxNQUFNLGFBQWEsR0FBRyxJQUFBLDBCQUFrQixFQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMzRCxNQUFNLElBQUksR0FBRyxJQUFBLG1DQUEyQixFQUFDLFNBQVMsQ0FBQyxPQUFrQixFQUFFLGFBQWEsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdEcsOERBQThEO1FBQzlELE9BQU87WUFDTCxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUM7WUFDcEIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLG9CQUFvQixFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUMzRSxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBbk9ELGdDQW1PQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCB7IEJpdEdvQmFzZSwgQ29pbkNvbnN0cnVjdG9yLCBNUENBbGdvcml0aG0sIE5hbWVkQ29pbkNvbnN0cnVjdG9yIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IGNvaW5zLCBUaXAyMFRva2VuQ29uZmlnIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHsgR2V0U2VuZE1ldGhvZEFyZ3NPcHRpb25zLCBTZW5kTWV0aG9kQXJncyB9IGZyb20gJ0BiaXRnby9hYnN0cmFjdC1ldGgnO1xuaW1wb3J0IHsgQWRkcmVzcyB9IGZyb20gJy4vbGliL3R5cGVzJztcbmltcG9ydCB7IFRlbXBvIH0gZnJvbSAnLi90ZW1wbyc7XG5pbXBvcnQgeyBlbmNvZGVUaXAyMFRyYW5zZmVyV2l0aE1lbW8sIGFtb3VudFRvVGlwMjBVbml0cywgaXNWYWxpZEFkZHJlc3MsIGlzVmFsaWRUaXAyMEFtb3VudCB9IGZyb20gJy4vbGliL3V0aWxzJztcblxuZXhwb3J0IHsgVGlwMjBUb2tlbkNvbmZpZyB9O1xuXG4vKipcbiAqIFRJUDIwIFRva2VuIEltcGxlbWVudGF0aW9uIChTa2VsZXRvbilcbiAqXG4gKiBUaGlzIGlzIGEgbWluaW1hbCBza2VsZXRvbiBmb3IgVElQMjAgdG9rZW5zIG9uIFRlbXBvIGJsb2NrY2hhaW4uXG4gKlxuICogVE9ETzogQWxsIG1ldGhvZHMgd2lsbCBiZSBpbXBsZW1lbnRlZCBwcm9ncmVzc2l2ZWx5XG4gKi9cbmV4cG9ydCBjbGFzcyBUaXAyMFRva2VuIGV4dGVuZHMgVGVtcG8ge1xuICBwdWJsaWMgcmVhZG9ubHkgdG9rZW5Db25maWc6IFRpcDIwVG9rZW5Db25maWc7XG4gIHB1YmxpYyByZWFkb25seSBjb250cmFjdEFkZHJlc3M6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihiaXRnbzogQml0R29CYXNlLCB0b2tlbkNvbmZpZzogVGlwMjBUb2tlbkNvbmZpZykge1xuICAgIGNvbnN0IHN0YXRpY3NDb2luID0gdG9rZW5Db25maWcubmV0d29yayA9PT0gJ01haW5uZXQnID8gY29pbnMuZ2V0KCd0ZW1wbycpIDogY29pbnMuZ2V0KCd0dGVtcG8nKTtcbiAgICBzdXBlcihiaXRnbywgc3RhdGljc0NvaW4pO1xuICAgIHRoaXMudG9rZW5Db25maWcgPSB0b2tlbkNvbmZpZztcbiAgICB0aGlzLmNvbnRyYWN0QWRkcmVzcyA9IHRva2VuQ29uZmlnLnRva2VuQ29udHJhY3RBZGRyZXNzO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIGNvaW4gY29uc3RydWN0b3IgZm9yIGEgc3BlY2lmaWMgdG9rZW5cbiAgICovXG4gIHN0YXRpYyBjcmVhdGVUb2tlbkNvbnN0cnVjdG9yKGNvbmZpZzogVGlwMjBUb2tlbkNvbmZpZyk6IENvaW5Db25zdHJ1Y3RvciB7XG4gICAgcmV0dXJuIChiaXRnbzogQml0R29CYXNlKSA9PiBuZXcgVGlwMjBUb2tlbihiaXRnbywgY29uZmlnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgdG9rZW4gY29uc3RydWN0b3JzIGZvciBhbGwgVElQMjAgdG9rZW5zXG4gICAqIEBwYXJhbSB0b2tlbkNvbmZpZ3MgLSBBcnJheSBvZiB0b2tlbiBjb25maWd1cmF0aW9ucyAob3B0aW9uYWwpXG4gICAqL1xuICBzdGF0aWMgY3JlYXRlVG9rZW5Db25zdHJ1Y3RvcnModG9rZW5Db25maWdzPzogVGlwMjBUb2tlbkNvbmZpZ1tdKTogTmFtZWRDb2luQ29uc3RydWN0b3JbXSB7XG4gICAgY29uc3QgY29uZmlncyA9IHRva2VuQ29uZmlncyB8fCBbXTtcbiAgICBjb25zdCB0b2tlbnNDdG9yczogTmFtZWRDb2luQ29uc3RydWN0b3JbXSA9IFtdO1xuXG4gICAgZm9yIChjb25zdCB0b2tlbiBvZiBjb25maWdzKSB7XG4gICAgICBjb25zdCB0b2tlbkNvbnN0cnVjdG9yID0gVGlwMjBUb2tlbi5jcmVhdGVUb2tlbkNvbnN0cnVjdG9yKHRva2VuKTtcbiAgICAgIC8vIFJlZ2lzdGVyIGJ5IHRva2VuIHR5cGVcbiAgICAgIHRva2Vuc0N0b3JzLnB1c2goeyBuYW1lOiB0b2tlbi50eXBlLCBjb2luQ29uc3RydWN0b3I6IHRva2VuQ29uc3RydWN0b3IgfSk7XG4gICAgICAvLyBBbHNvIHJlZ2lzdGVyIGJ5IGNvbnRyYWN0IGFkZHJlc3MgZm9yIGxvb2t1cHNcbiAgICAgIHRva2Vuc0N0b3JzLnB1c2goeyBuYW1lOiB0b2tlbi50b2tlbkNvbnRyYWN0QWRkcmVzcywgY29pbkNvbnN0cnVjdG9yOiB0b2tlbkNvbnN0cnVjdG9yIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB0b2tlbnNDdG9ycztcbiAgfVxuXG4gIC8qKiBHZXQgdGhlIHRva2VuIHR5cGUgKi9cbiAgZ2V0IHR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50b2tlbkNvbmZpZy50eXBlO1xuICB9XG5cbiAgLyoqIEdldCB0aGUgdG9rZW4gbmFtZSAqL1xuICBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRva2VuQ29uZmlnLm5hbWU7XG4gIH1cblxuICAvKiogR2V0IHRoZSBiYXNlIGNvaW4gKi9cbiAgZ2V0IGNvaW4oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50b2tlbkNvbmZpZy5jb2luO1xuICB9XG5cbiAgLyoqIEdldCB0aGUgbmV0d29yayAqL1xuICBnZXQgbmV0d29yaygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRva2VuQ29uZmlnLm5ldHdvcms7XG4gIH1cblxuICAvKiogR2V0IHRoZSB0b2tlbiBjb250cmFjdCBhZGRyZXNzICovXG4gIGdldCB0b2tlbkNvbnRyYWN0QWRkcmVzcygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRva2VuQ29uZmlnLnRva2VuQ29udHJhY3RBZGRyZXNzO1xuICB9XG5cbiAgLyoqIEdldCB0b2tlbiBkZWNpbWFsIHBsYWNlcyAqL1xuICBnZXQgZGVjaW1hbFBsYWNlcygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnRva2VuQ29uZmlnLmRlY2ltYWxQbGFjZXM7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgZ2V0Q2hhaW4oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50b2tlbkNvbmZpZy50eXBlO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIGdldEJhc2VDaGFpbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmNvaW47XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgZ2V0RnVsbE5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ1RJUDIwIFRva2VuJztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBnZXRCYXNlRmFjdG9yKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIE1hdGgucG93KDEwLCB0aGlzLnRva2VuQ29uZmlnLmRlY2ltYWxQbGFjZXMpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHZhbHVlbGVzc1RyYW5zZmVyQWxsb3dlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgc3VwcG9ydHNUc3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgZ2V0TVBDQWxnb3JpdGhtKCk6IE1QQ0FsZ29yaXRobSB7XG4gICAgcmV0dXJuICdlY2RzYSc7XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZ5IHRoYXQgdGhlIHRyYW5zYWN0aW9uIGNvaW4vdG9rZW4gbWF0Y2hlcyB0aGlzIHRva2VuXG4gICAqIEBwYXJhbSB0eFByZWJ1aWxkIC0gVHJhbnNhY3Rpb24gcHJlYnVpbGQgb2JqZWN0XG4gICAqIEByZXR1cm5zIHRydWUgaWYgdmFsaWQsIGZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgdmVyaWZ5Q29pbih0eFByZWJ1aWxkOiB7IGNvaW4/OiBzdHJpbmc7IHRva2VuPzogc3RyaW5nIH0pOiBib29sZWFuIHtcbiAgICBpZiAoIXR4UHJlYnVpbGQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBpZiB0aGUgY29pbiBvciB0b2tlbiBtYXRjaGVzIHRoaXMgdG9rZW4ncyBjb25maWd1cmF0aW9uXG4gICAgY29uc3QgY29pbk1hdGNoID0gdHhQcmVidWlsZC5jb2luID09PSB0aGlzLnRva2VuQ29uZmlnLmNvaW4gfHwgdHhQcmVidWlsZC5jb2luID09PSB0aGlzLnRva2VuQ29uZmlnLnR5cGU7XG4gICAgY29uc3QgdG9rZW5NYXRjaCA9XG4gICAgICAhdHhQcmVidWlsZC50b2tlbiB8fFxuICAgICAgdHhQcmVidWlsZC50b2tlbiA9PT0gdGhpcy50b2tlbkNvbmZpZy50b2tlbkNvbnRyYWN0QWRkcmVzcyB8fFxuICAgICAgdHhQcmVidWlsZC50b2tlbiA9PT0gdGhpcy50b2tlbkNvbmZpZy50eXBlO1xuXG4gICAgcmV0dXJuIGNvaW5NYXRjaCAmJiB0b2tlbk1hdGNoO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBzZW5kIG1ldGhvZCBhcmd1bWVudHMgZm9yIFRJUC0yMCB0b2tlbiB0cmFuc2ZlciB3aXRoIG1lbW9cbiAgICogQHBhcmFtIHR4SW5mbyAtIFRyYW5zYWN0aW9uIGluZm9ybWF0aW9uIGluY2x1ZGluZyByZWNpcGllbnQgYW5kIGFtb3VudFxuICAgKiBAcmV0dXJucyBBcnJheSBvZiBzZW5kIG1ldGhvZCBhcmd1bWVudHMgZm9yIEFCSSBlbmNvZGluZ1xuICAgKi9cbiAgZ2V0U2VuZE1ldGhvZEFyZ3ModHhJbmZvOiBHZXRTZW5kTWV0aG9kQXJnc09wdGlvbnMpOiBTZW5kTWV0aG9kQXJnc1tdIHtcbiAgICBjb25zdCB7IHJlY2lwaWVudCB9ID0gdHhJbmZvO1xuXG4gICAgaWYgKCFyZWNpcGllbnQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignUmVjaXBpZW50IGlzIHJlcXVpcmVkIGZvciB0b2tlbiB0cmFuc2ZlcicpO1xuICAgIH1cblxuICAgIGlmICghaXNWYWxpZEFkZHJlc3MocmVjaXBpZW50LmFkZHJlc3MpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcmVjaXBpZW50IGFkZHJlc3M6ICR7cmVjaXBpZW50LmFkZHJlc3N9YCk7XG4gICAgfVxuXG4gICAgaWYgKCFpc1ZhbGlkVGlwMjBBbW91bnQocmVjaXBpZW50LmFtb3VudCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBhbW91bnQ6ICR7cmVjaXBpZW50LmFtb3VudH1gKTtcbiAgICB9XG5cbiAgICBjb25zdCBtZW1vID0gKHJlY2lwaWVudCBhcyB7IG1lbW8/OiBzdHJpbmcgfSkubWVtbztcblxuICAgIGlmIChtZW1vICYmIEJ1ZmZlci5ieXRlTGVuZ3RoKG1lbW8sICd1dGYtOCcpID4gMzIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTWVtbyB0b28gbG9uZzogbWF4aW11bSAzMiBieXRlcycpO1xuICAgIH1cblxuICAgIGNvbnN0IGFtb3VudEluVW5pdHMgPSBhbW91bnRUb1RpcDIwVW5pdHMocmVjaXBpZW50LmFtb3VudCk7XG4gICAgY29uc3QgZGF0YSA9IGVuY29kZVRpcDIwVHJhbnNmZXJXaXRoTWVtbyhyZWNpcGllbnQuYWRkcmVzcyBhcyBBZGRyZXNzLCBhbW91bnRJblVuaXRzLCBtZW1vKTtcblxuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICd0b0FkZHJlc3MnLFxuICAgICAgICB0eXBlOiAnYWRkcmVzcycsXG4gICAgICAgIHZhbHVlOiByZWNpcGllbnQuYWRkcmVzcyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICd2YWx1ZScsXG4gICAgICAgIHR5cGU6ICd1aW50JyxcbiAgICAgICAgdmFsdWU6IHJlY2lwaWVudC5hbW91bnQsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAndG9rZW5Db250cmFjdEFkZHJlc3MnLFxuICAgICAgICB0eXBlOiAnYWRkcmVzcycsXG4gICAgICAgIHZhbHVlOiB0aGlzLnRva2VuQ29uZmlnLnRva2VuQ29udHJhY3RBZGRyZXNzLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2RhdGEnLFxuICAgICAgICB0eXBlOiAnYnl0ZXMnLFxuICAgICAgICB2YWx1ZTogQnVmZmVyLmZyb20oZGF0YS5zbGljZSgyKSwgJ2hleCcpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2V4cGlyZVRpbWUnLFxuICAgICAgICB0eXBlOiAndWludCcsXG4gICAgICAgIHZhbHVlOiB0eEluZm8uZXhwaXJlVGltZSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdzZXF1ZW5jZUlkJyxcbiAgICAgICAgdHlwZTogJ3VpbnQnLFxuICAgICAgICB2YWx1ZTogdHhJbmZvLmNvbnRyYWN0U2VxdWVuY2VJZCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdzaWduYXR1cmUnLFxuICAgICAgICB0eXBlOiAnYnl0ZXMnLFxuICAgICAgICB2YWx1ZTogQnVmZmVyLmZyb20odHhJbmZvLnNpZ25hdHVyZS5yZXBsYWNlKCcweCcsICcnKSwgJ2hleCcpLFxuICAgICAgfSxcbiAgICBdO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBvcGVyYXRpb24gb2JqZWN0IGZvciBUSVAtMjAgdG9rZW4gdHJhbnNmZXIgKGZvciBiYXRjaCB0cmFuc2FjdGlvbnMpXG4gICAqIEBwYXJhbSByZWNpcGllbnQgLSBSZWNpcGllbnQgaW5mb3JtYXRpb24gd2l0aCBhZGRyZXNzLCBhbW91bnQsIGFuZCBvcHRpb25hbCBtZW1vXG4gICAqIEBwYXJhbSBleHBpcmVUaW1lIC0gVHJhbnNhY3Rpb24gZXhwaXJhdGlvbiB0aW1lXG4gICAqIEBwYXJhbSBjb250cmFjdFNlcXVlbmNlSWQgLSBDb250cmFjdCBzZXF1ZW5jZSBJRFxuICAgKiBAcmV0dXJucyBPcGVyYXRpb24gYXJyYXkgZm9yIEFCSSBlbmNvZGluZ1xuICAgKi9cbiAgZ2V0T3BlcmF0aW9uKFxuICAgIHJlY2lwaWVudDogeyBhZGRyZXNzOiBzdHJpbmc7IGFtb3VudDogc3RyaW5nOyBtZW1vPzogc3RyaW5nIH0sXG4gICAgZXhwaXJlVGltZTogbnVtYmVyLFxuICAgIGNvbnRyYWN0U2VxdWVuY2VJZDogbnVtYmVyXG4gICk6IChzdHJpbmcgfCBCdWZmZXIpW11bXSB7XG4gICAgaWYgKCFpc1ZhbGlkQWRkcmVzcyhyZWNpcGllbnQuYWRkcmVzcykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCByZWNpcGllbnQgYWRkcmVzczogJHtyZWNpcGllbnQuYWRkcmVzc31gKTtcbiAgICB9XG5cbiAgICBpZiAoIWlzVmFsaWRUaXAyMEFtb3VudChyZWNpcGllbnQuYW1vdW50KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGFtb3VudDogJHtyZWNpcGllbnQuYW1vdW50fWApO1xuICAgIH1cblxuICAgIC8vIFZhbGlkYXRlIG1lbW8gYnl0ZSBsZW5ndGggKGhhbmRsZXMgbXVsdGktYnl0ZSBVVEYtOCBjaGFyYWN0ZXJzKVxuICAgIGlmIChyZWNpcGllbnQubWVtbyAhPT0gdW5kZWZpbmVkICYmIHJlY2lwaWVudC5tZW1vICE9PSBudWxsICYmIHJlY2lwaWVudC5tZW1vICE9PSAnJykge1xuICAgICAgY29uc3QgbWVtb0J5dGVMZW5ndGggPSBuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUocmVjaXBpZW50Lm1lbW8pLmxlbmd0aDtcbiAgICAgIGlmIChtZW1vQnl0ZUxlbmd0aCA+IDMyKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgTWVtbyB0b28gbG9uZzogJHttZW1vQnl0ZUxlbmd0aH0gYnl0ZXMuIE1heGltdW0gMzIgYnl0ZXMuYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgYW1vdW50SW5Vbml0cyA9IGFtb3VudFRvVGlwMjBVbml0cyhyZWNpcGllbnQuYW1vdW50KTtcbiAgICBjb25zdCBkYXRhID0gZW5jb2RlVGlwMjBUcmFuc2ZlcldpdGhNZW1vKHJlY2lwaWVudC5hZGRyZXNzIGFzIEFkZHJlc3MsIGFtb3VudEluVW5pdHMsIHJlY2lwaWVudC5tZW1vKTtcblxuICAgIC8vIFJldHVybiBmb3JtYXQgY29tcGF0aWJsZSB3aXRoIHBhcmVudCBjbGFzcyBmb3IgQUJJIGVuY29kaW5nXG4gICAgcmV0dXJuIFtcbiAgICAgIFsnYWRkcmVzcycsICdieXRlcyddLFxuICAgICAgW3RoaXMudG9rZW5Db25maWcudG9rZW5Db250cmFjdEFkZHJlc3MsIEJ1ZmZlci5mcm9tKGRhdGEuc2xpY2UoMiksICdoZXgnKV0sXG4gICAgXTtcbiAgfVxufVxuIl19
202
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlwMjBUb2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90aXAyMFRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUlBLDRDQUFpRTtBQUdqRSxtQ0FBZ0M7QUFDaEMsdUNBQWtIO0FBSWxIOzs7Ozs7R0FNRztBQUNILE1BQWEsVUFBVyxTQUFRLGFBQUs7SUFJbkMsWUFBWSxLQUFnQixFQUFFLFdBQTZCO1FBQ3pELE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxlQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2pHLEtBQUssQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDL0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxXQUFXLENBQUMsb0JBQW9CLENBQUM7SUFDMUQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLHNCQUFzQixDQUFDLE1BQXdCO1FBQ3BELE9BQU8sQ0FBQyxLQUFnQixFQUFFLEVBQUUsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyx1QkFBdUIsQ0FDNUIsZUFBbUMsQ0FBQyxHQUFHLGdCQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsR0FBRyxnQkFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO1FBRW5HLE1BQU0sT0FBTyxHQUFHLFlBQVksQ0FBQztRQUM3QixNQUFNLFdBQVcsR0FBMkIsRUFBRSxDQUFDO1FBRS9DLEtBQUssTUFBTSxLQUFLLElBQUksT0FBTyxFQUFFLENBQUM7WUFDNUIsTUFBTSxnQkFBZ0IsR0FB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QUFJLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDckYsTUFBTSxjQUFjLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQztZQUN2RSxJQUFJLGNBQWMsR0FBRyxFQUFFLEVBQUUsQ0FBQztnQkFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsY0FBYywyQkFBMkIsQ0FBQyxDQUFDO1lBQy9FLENBQUM7UUFDSCxDQUFDO1FBRUQsTUFBTSxhQUFhLEdBQUcsSUFBQSwwQkFBa0IsRUFBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0QsTUFBTSxJQUFJLEdBQUcsSUFBQSxtQ0FBMkIsRUFBQyxTQUFTLENBQUMsT0FBa0IsRUFBRSxhQUFhLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXRHLDhEQUE4RDtRQUM5RCxPQUFPO1lBQ0wsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDO1lBQ3BCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDM0UsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQXJPRCxnQ0FxT0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgeyBCaXRHb0Jhc2UsIENvaW5Db25zdHJ1Y3RvciwgTVBDQWxnb3JpdGhtLCBOYW1lZENvaW5Db25zdHJ1Y3RvciB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBjb2lucywgdG9rZW5zLCBUaXAyMFRva2VuQ29uZmlnIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHsgR2V0U2VuZE1ldGhvZEFyZ3NPcHRpb25zLCBTZW5kTWV0aG9kQXJncyB9IGZyb20gJ0BiaXRnby9hYnN0cmFjdC1ldGgnO1xuaW1wb3J0IHsgQWRkcmVzcyB9IGZyb20gJy4vbGliL3R5cGVzJztcbmltcG9ydCB7IFRlbXBvIH0gZnJvbSAnLi90ZW1wbyc7XG5pbXBvcnQgeyBlbmNvZGVUaXAyMFRyYW5zZmVyV2l0aE1lbW8sIGFtb3VudFRvVGlwMjBVbml0cywgaXNWYWxpZEFkZHJlc3MsIGlzVmFsaWRUaXAyMEFtb3VudCB9IGZyb20gJy4vbGliL3V0aWxzJztcblxuZXhwb3J0IHsgVGlwMjBUb2tlbkNvbmZpZyB9O1xuXG4vKipcbiAqIFRJUDIwIFRva2VuIEltcGxlbWVudGF0aW9uIChTa2VsZXRvbilcbiAqXG4gKiBUaGlzIGlzIGEgbWluaW1hbCBza2VsZXRvbiBmb3IgVElQMjAgdG9rZW5zIG9uIFRlbXBvIGJsb2NrY2hhaW4uXG4gKlxuICogVE9ETzogQWxsIG1ldGhvZHMgd2lsbCBiZSBpbXBsZW1lbnRlZCBwcm9ncmVzc2l2ZWx5XG4gKi9cbmV4cG9ydCBjbGFzcyBUaXAyMFRva2VuIGV4dGVuZHMgVGVtcG8ge1xuICBwdWJsaWMgcmVhZG9ubHkgdG9rZW5Db25maWc6IFRpcDIwVG9rZW5Db25maWc7XG4gIHB1YmxpYyByZWFkb25seSBjb250cmFjdEFkZHJlc3M6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihiaXRnbzogQml0R29CYXNlLCB0b2tlbkNvbmZpZzogVGlwMjBUb2tlbkNvbmZpZykge1xuICAgIGNvbnN0IHN0YXRpY3NDb2luID0gdG9rZW5Db25maWcubmV0d29yayA9PT0gJ01haW5uZXQnID8gY29pbnMuZ2V0KCd0ZW1wbycpIDogY29pbnMuZ2V0KCd0dGVtcG8nKTtcbiAgICBzdXBlcihiaXRnbywgc3RhdGljc0NvaW4pO1xuICAgIHRoaXMudG9rZW5Db25maWcgPSB0b2tlbkNvbmZpZztcbiAgICB0aGlzLmNvbnRyYWN0QWRkcmVzcyA9IHRva2VuQ29uZmlnLnRva2VuQ29udHJhY3RBZGRyZXNzO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIGNvaW4gY29uc3RydWN0b3IgZm9yIGEgc3BlY2lmaWMgdG9rZW5cbiAgICovXG4gIHN0YXRpYyBjcmVhdGVUb2tlbkNvbnN0cnVjdG9yKGNvbmZpZzogVGlwMjBUb2tlbkNvbmZpZyk6IENvaW5Db25zdHJ1Y3RvciB7XG4gICAgcmV0dXJuIChiaXRnbzogQml0R29CYXNlKSA9PiBuZXcgVGlwMjBUb2tlbihiaXRnbywgY29uZmlnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgdG9rZW4gY29uc3RydWN0b3JzIGZvciBhbGwgVElQMjAgdG9rZW5zXG4gICAqIEBwYXJhbSB0b2tlbkNvbmZpZ3MgLSBBcnJheSBvZiB0b2tlbiBjb25maWd1cmF0aW9uczsgZGVmYXVsdHMgdG8gYWxsIFRJUDIwIHRva2VucyBmcm9tIHN0YXRpY3NcbiAgICovXG4gIHN0YXRpYyBjcmVhdGVUb2tlbkNvbnN0cnVjdG9ycyhcbiAgICB0b2tlbkNvbmZpZ3M6IFRpcDIwVG9rZW5Db25maWdbXSA9IFsuLi50b2tlbnMuYml0Y29pbi50ZW1wby50b2tlbnMsIC4uLnRva2Vucy50ZXN0bmV0LnRlbXBvLnRva2Vuc11cbiAgKTogTmFtZWRDb2luQ29uc3RydWN0b3JbXSB7XG4gICAgY29uc3QgY29uZmlncyA9IHRva2VuQ29uZmlncztcbiAgICBjb25zdCB0b2tlbnNDdG9yczogTmFtZWRDb2luQ29uc3RydWN0b3JbXSA9IFtdO1xuXG4gICAgZm9yIChjb25zdCB0b2tlbiBvZiBjb25maWdzKSB7XG4gICAgICBjb25zdCB0b2tlbkNvbnN0cnVjdG9yID0gVGlwMjBUb2tlbi5jcmVhdGVUb2tlbkNvbnN0cnVjdG9yKHRva2VuKTtcbiAgICAgIC8vIFJlZ2lzdGVyIGJ5IHRva2VuIHR5cGVcbiAgICAgIHRva2Vuc0N0b3JzLnB1c2goeyBuYW1lOiB0b2tlbi50eXBlLCBjb2luQ29uc3RydWN0b3I6IHRva2VuQ29uc3RydWN0b3IgfSk7XG4gICAgICAvLyBBbHNvIHJlZ2lzdGVyIGJ5IGNvbnRyYWN0IGFkZHJlc3MgZm9yIGxvb2t1cHNcbiAgICAgIHRva2Vuc0N0b3JzLnB1c2goeyBuYW1lOiB0b2tlbi50b2tlbkNvbnRyYWN0QWRkcmVzcywgY29pbkNvbnN0cnVjdG9yOiB0b2tlbkNvbnN0cnVjdG9yIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB0b2tlbnNDdG9ycztcbiAgfVxuXG4gIC8qKiBHZXQgdGhlIHRva2VuIHR5cGUgKi9cbiAgZ2V0IHR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50b2tlbkNvbmZpZy50eXBlO1xuICB9XG5cbiAgLyoqIEdldCB0aGUgdG9rZW4gbmFtZSAqL1xuICBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRva2VuQ29uZmlnLm5hbWU7XG4gIH1cblxuICAvKiogR2V0IHRoZSBiYXNlIGNvaW4gKi9cbiAgZ2V0IGNvaW4oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50b2tlbkNvbmZpZy5jb2luO1xuICB9XG5cbiAgLyoqIEdldCB0aGUgbmV0d29yayAqL1xuICBnZXQgbmV0d29yaygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRva2VuQ29uZmlnLm5ldHdvcms7XG4gIH1cblxuICAvKiogR2V0IHRoZSB0b2tlbiBjb250cmFjdCBhZGRyZXNzICovXG4gIGdldCB0b2tlbkNvbnRyYWN0QWRkcmVzcygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRva2VuQ29uZmlnLnRva2VuQ29udHJhY3RBZGRyZXNzO1xuICB9XG5cbiAgLyoqIEdldCB0b2tlbiBkZWNpbWFsIHBsYWNlcyAqL1xuICBnZXQgZGVjaW1hbFBsYWNlcygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnRva2VuQ29uZmlnLmRlY2ltYWxQbGFjZXM7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgZ2V0Q2hhaW4oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50b2tlbkNvbmZpZy50eXBlO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIGdldEJhc2VDaGFpbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmNvaW47XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgZ2V0RnVsbE5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ1RJUDIwIFRva2VuJztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBnZXRCYXNlRmFjdG9yKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIE1hdGgucG93KDEwLCB0aGlzLnRva2VuQ29uZmlnLmRlY2ltYWxQbGFjZXMpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHZhbHVlbGVzc1RyYW5zZmVyQWxsb3dlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgc3VwcG9ydHNUc3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgZ2V0TVBDQWxnb3JpdGhtKCk6IE1QQ0FsZ29yaXRobSB7XG4gICAgcmV0dXJuICdlY2RzYSc7XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZ5IHRoYXQgdGhlIHRyYW5zYWN0aW9uIGNvaW4vdG9rZW4gbWF0Y2hlcyB0aGlzIHRva2VuXG4gICAqIEBwYXJhbSB0eFByZWJ1aWxkIC0gVHJhbnNhY3Rpb24gcHJlYnVpbGQgb2JqZWN0XG4gICAqIEByZXR1cm5zIHRydWUgaWYgdmFsaWQsIGZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgdmVyaWZ5Q29pbih0eFByZWJ1aWxkOiB7IGNvaW4/OiBzdHJpbmc7IHRva2VuPzogc3RyaW5nIH0pOiBib29sZWFuIHtcbiAgICBpZiAoIXR4UHJlYnVpbGQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBpZiB0aGUgY29pbiBvciB0b2tlbiBtYXRjaGVzIHRoaXMgdG9rZW4ncyBjb25maWd1cmF0aW9uXG4gICAgY29uc3QgY29pbk1hdGNoID0gdHhQcmVidWlsZC5jb2luID09PSB0aGlzLnRva2VuQ29uZmlnLmNvaW4gfHwgdHhQcmVidWlsZC5jb2luID09PSB0aGlzLnRva2VuQ29uZmlnLnR5cGU7XG4gICAgY29uc3QgdG9rZW5NYXRjaCA9XG4gICAgICAhdHhQcmVidWlsZC50b2tlbiB8fFxuICAgICAgdHhQcmVidWlsZC50b2tlbiA9PT0gdGhpcy50b2tlbkNvbmZpZy50b2tlbkNvbnRyYWN0QWRkcmVzcyB8fFxuICAgICAgdHhQcmVidWlsZC50b2tlbiA9PT0gdGhpcy50b2tlbkNvbmZpZy50eXBlO1xuXG4gICAgcmV0dXJuIGNvaW5NYXRjaCAmJiB0b2tlbk1hdGNoO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBzZW5kIG1ldGhvZCBhcmd1bWVudHMgZm9yIFRJUC0yMCB0b2tlbiB0cmFuc2ZlciB3aXRoIG1lbW9cbiAgICogQHBhcmFtIHR4SW5mbyAtIFRyYW5zYWN0aW9uIGluZm9ybWF0aW9uIGluY2x1ZGluZyByZWNpcGllbnQgYW5kIGFtb3VudFxuICAgKiBAcmV0dXJucyBBcnJheSBvZiBzZW5kIG1ldGhvZCBhcmd1bWVudHMgZm9yIEFCSSBlbmNvZGluZ1xuICAgKi9cbiAgZ2V0U2VuZE1ldGhvZEFyZ3ModHhJbmZvOiBHZXRTZW5kTWV0aG9kQXJnc09wdGlvbnMpOiBTZW5kTWV0aG9kQXJnc1tdIHtcbiAgICBjb25zdCB7IHJlY2lwaWVudCB9ID0gdHhJbmZvO1xuXG4gICAgaWYgKCFyZWNpcGllbnQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignUmVjaXBpZW50IGlzIHJlcXVpcmVkIGZvciB0b2tlbiB0cmFuc2ZlcicpO1xuICAgIH1cblxuICAgIGlmICghaXNWYWxpZEFkZHJlc3MocmVjaXBpZW50LmFkZHJlc3MpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcmVjaXBpZW50IGFkZHJlc3M6ICR7cmVjaXBpZW50LmFkZHJlc3N9YCk7XG4gICAgfVxuXG4gICAgaWYgKCFpc1ZhbGlkVGlwMjBBbW91bnQocmVjaXBpZW50LmFtb3VudCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBhbW91bnQ6ICR7cmVjaXBpZW50LmFtb3VudH1gKTtcbiAgICB9XG5cbiAgICBjb25zdCBtZW1vID0gKHJlY2lwaWVudCBhcyB7IG1lbW8/OiBzdHJpbmcgfSkubWVtbztcblxuICAgIGlmIChtZW1vICYmIEJ1ZmZlci5ieXRlTGVuZ3RoKG1lbW8sICd1dGYtOCcpID4gMzIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTWVtbyB0b28gbG9uZzogbWF4aW11bSAzMiBieXRlcycpO1xuICAgIH1cblxuICAgIGNvbnN0IGFtb3VudEluVW5pdHMgPSBhbW91bnRUb1RpcDIwVW5pdHMocmVjaXBpZW50LmFtb3VudCk7XG4gICAgY29uc3QgZGF0YSA9IGVuY29kZVRpcDIwVHJhbnNmZXJXaXRoTWVtbyhyZWNpcGllbnQuYWRkcmVzcyBhcyBBZGRyZXNzLCBhbW91bnRJblVuaXRzLCBtZW1vKTtcblxuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICd0b0FkZHJlc3MnLFxuICAgICAgICB0eXBlOiAnYWRkcmVzcycsXG4gICAgICAgIHZhbHVlOiByZWNpcGllbnQuYWRkcmVzcyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICd2YWx1ZScsXG4gICAgICAgIHR5cGU6ICd1aW50JyxcbiAgICAgICAgdmFsdWU6IHJlY2lwaWVudC5hbW91bnQsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAndG9rZW5Db250cmFjdEFkZHJlc3MnLFxuICAgICAgICB0eXBlOiAnYWRkcmVzcycsXG4gICAgICAgIHZhbHVlOiB0aGlzLnRva2VuQ29uZmlnLnRva2VuQ29udHJhY3RBZGRyZXNzLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2RhdGEnLFxuICAgICAgICB0eXBlOiAnYnl0ZXMnLFxuICAgICAgICB2YWx1ZTogQnVmZmVyLmZyb20oZGF0YS5zbGljZSgyKSwgJ2hleCcpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2V4cGlyZVRpbWUnLFxuICAgICAgICB0eXBlOiAndWludCcsXG4gICAgICAgIHZhbHVlOiB0eEluZm8uZXhwaXJlVGltZSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdzZXF1ZW5jZUlkJyxcbiAgICAgICAgdHlwZTogJ3VpbnQnLFxuICAgICAgICB2YWx1ZTogdHhJbmZvLmNvbnRyYWN0U2VxdWVuY2VJZCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdzaWduYXR1cmUnLFxuICAgICAgICB0eXBlOiAnYnl0ZXMnLFxuICAgICAgICB2YWx1ZTogQnVmZmVyLmZyb20odHhJbmZvLnNpZ25hdHVyZS5yZXBsYWNlKCcweCcsICcnKSwgJ2hleCcpLFxuICAgICAgfSxcbiAgICBdO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBvcGVyYXRpb24gb2JqZWN0IGZvciBUSVAtMjAgdG9rZW4gdHJhbnNmZXIgKGZvciBiYXRjaCB0cmFuc2FjdGlvbnMpXG4gICAqIEBwYXJhbSByZWNpcGllbnQgLSBSZWNpcGllbnQgaW5mb3JtYXRpb24gd2l0aCBhZGRyZXNzLCBhbW91bnQsIGFuZCBvcHRpb25hbCBtZW1vXG4gICAqIEBwYXJhbSBleHBpcmVUaW1lIC0gVHJhbnNhY3Rpb24gZXhwaXJhdGlvbiB0aW1lXG4gICAqIEBwYXJhbSBjb250cmFjdFNlcXVlbmNlSWQgLSBDb250cmFjdCBzZXF1ZW5jZSBJRFxuICAgKiBAcmV0dXJucyBPcGVyYXRpb24gYXJyYXkgZm9yIEFCSSBlbmNvZGluZ1xuICAgKi9cbiAgZ2V0T3BlcmF0aW9uKFxuICAgIHJlY2lwaWVudDogeyBhZGRyZXNzOiBzdHJpbmc7IGFtb3VudDogc3RyaW5nOyBtZW1vPzogc3RyaW5nIH0sXG4gICAgZXhwaXJlVGltZTogbnVtYmVyLFxuICAgIGNvbnRyYWN0U2VxdWVuY2VJZDogbnVtYmVyXG4gICk6IChzdHJpbmcgfCBCdWZmZXIpW11bXSB7XG4gICAgaWYgKCFpc1ZhbGlkQWRkcmVzcyhyZWNpcGllbnQuYWRkcmVzcykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCByZWNpcGllbnQgYWRkcmVzczogJHtyZWNpcGllbnQuYWRkcmVzc31gKTtcbiAgICB9XG5cbiAgICBpZiAoIWlzVmFsaWRUaXAyMEFtb3VudChyZWNpcGllbnQuYW1vdW50KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGFtb3VudDogJHtyZWNpcGllbnQuYW1vdW50fWApO1xuICAgIH1cblxuICAgIC8vIFZhbGlkYXRlIG1lbW8gYnl0ZSBsZW5ndGggKGhhbmRsZXMgbXVsdGktYnl0ZSBVVEYtOCBjaGFyYWN0ZXJzKVxuICAgIGlmIChyZWNpcGllbnQubWVtbyAhPT0gdW5kZWZpbmVkICYmIHJlY2lwaWVudC5tZW1vICE9PSBudWxsICYmIHJlY2lwaWVudC5tZW1vICE9PSAnJykge1xuICAgICAgY29uc3QgbWVtb0J5dGVMZW5ndGggPSBuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUocmVjaXBpZW50Lm1lbW8pLmxlbmd0aDtcbiAgICAgIGlmIChtZW1vQnl0ZUxlbmd0aCA+IDMyKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgTWVtbyB0b28gbG9uZzogJHttZW1vQnl0ZUxlbmd0aH0gYnl0ZXMuIE1heGltdW0gMzIgYnl0ZXMuYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgYW1vdW50SW5Vbml0cyA9IGFtb3VudFRvVGlwMjBVbml0cyhyZWNpcGllbnQuYW1vdW50KTtcbiAgICBjb25zdCBkYXRhID0gZW5jb2RlVGlwMjBUcmFuc2ZlcldpdGhNZW1vKHJlY2lwaWVudC5hZGRyZXNzIGFzIEFkZHJlc3MsIGFtb3VudEluVW5pdHMsIHJlY2lwaWVudC5tZW1vKTtcblxuICAgIC8vIFJldHVybiBmb3JtYXQgY29tcGF0aWJsZSB3aXRoIHBhcmVudCBjbGFzcyBmb3IgQUJJIGVuY29kaW5nXG4gICAgcmV0dXJuIFtcbiAgICAgIFsnYWRkcmVzcycsICdieXRlcyddLFxuICAgICAgW3RoaXMudG9rZW5Db25maWcudG9rZW5Db250cmFjdEFkZHJlc3MsIEJ1ZmZlci5mcm9tKGRhdGEuc2xpY2UoMiksICdoZXgnKV0sXG4gICAgXTtcbiAgfVxufVxuIl19