mainnet-js 1.1.21 → 1.1.23

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.
@@ -3,7 +3,7 @@ import axios from "axios";
3
3
  import { Network } from "../interface.js";
4
4
  import { initProvider } from "../network/Connection.js";
5
5
  import { OpReturnData } from "./model.js";
6
- // Implementation of CHIP-BCMR v1.0.0, refer to https://github.com/bitjson/chip-bcmr
6
+ // Implementation of CHIP-BCMR v2.0.0-draft, refer to https://github.com/bitjson/chip-bcmr
7
7
  export class BCMR {
8
8
  static getRegistries() {
9
9
  return this.metadataRegistries;
@@ -69,6 +69,92 @@ export class BCMR {
69
69
  const registry = await this.fetchMetadataRegistry(uri, contentHash);
70
70
  this.addMetadataRegistry(registry);
71
71
  }
72
+ // helper function to enforce the constraints on the 0th output, decode the BCMR's OP_RETURN data
73
+ // returns resolved AuthChainElement
74
+ static makeAuthChainElement(rawTx, hash) {
75
+ let opReturns;
76
+ let spends0thOutput = false;
77
+ if (rawTx.hasOwnProperty("vout")) {
78
+ const electrumTransaction = rawTx;
79
+ opReturns = electrumTransaction.vout
80
+ .filter((val) => val.scriptPubKey.type === "nulldata")
81
+ .map((val) => val.scriptPubKey.hex);
82
+ spends0thOutput = electrumTransaction.vin.some((val) => val.vout === 0);
83
+ }
84
+ else {
85
+ const libauthTransaction = rawTx;
86
+ opReturns = libauthTransaction.outputs
87
+ .map((val) => binToHex(val.lockingBytecode))
88
+ .filter((val) => val.indexOf("6a") === 0);
89
+ spends0thOutput = libauthTransaction.inputs.some((val) => val.outpointIndex === 0);
90
+ }
91
+ if (!spends0thOutput) {
92
+ throw new Error("Invalid authchain transaction (does not spend 0th output of previous transaction)");
93
+ }
94
+ const bcmrOpReturns = opReturns.filter((val) => val.indexOf("6a0442434d52") === 0 ||
95
+ val.indexOf("6a4c0442434d52") === 0 ||
96
+ val.indexOf("6a4d040042434d52") === 0 ||
97
+ val.indexOf("6a4e0400000042434d52") === 0);
98
+ if (bcmrOpReturns.length === 0) {
99
+ return {
100
+ txHash: hash,
101
+ contentHash: "",
102
+ uris: [],
103
+ httpsUrl: "",
104
+ };
105
+ }
106
+ const opReturnHex = opReturns[0];
107
+ const chunks = OpReturnData.parseBinary(hexToBin(opReturnHex));
108
+ if (chunks.length < 2) {
109
+ throw new Error(`Malformed BCMR output: ${opReturnHex}`);
110
+ }
111
+ const result = {
112
+ txHash: hash,
113
+ contentHash: "",
114
+ uris: [],
115
+ httpsUrl: "",
116
+ };
117
+ if (chunks.length === 2) {
118
+ // IPFS Publication Output
119
+ result.contentHash = binToHex(chunks[1]);
120
+ const ipfsCid = binToUtf8(chunks[1]);
121
+ result.uris = [`ipfs://${ipfsCid}`];
122
+ result.httpsUrl = `https://dweb.link/ipfs/${ipfsCid}`;
123
+ }
124
+ else {
125
+ // URI Publication Output
126
+ // content hash is in OP_SHA256 byte order per spec
127
+ result.contentHash = binToHex(chunks[1].slice());
128
+ const uris = chunks.slice(2);
129
+ for (const uri of uris) {
130
+ const uriString = binToUtf8(uri);
131
+ result.uris.push(uriString);
132
+ if (result.httpsUrl) {
133
+ continue;
134
+ }
135
+ if (uriString.indexOf("https://") === 0) {
136
+ result.httpsUrl = uriString;
137
+ }
138
+ else if (uriString.indexOf("https://") === -1) {
139
+ result.httpsUrl = uriString;
140
+ // case for domain name specifier, like example.com
141
+ if (uriString.indexOf("/") === -1) {
142
+ result.httpsUrl = `${result.httpsUrl}/.well-known/bitcoin-cash-metadata-registry.json`;
143
+ }
144
+ result.httpsUrl = `https://${result.httpsUrl}`;
145
+ }
146
+ else if (uriString.indexOf("ipfs://") === 0) {
147
+ const ipfsCid = uriString.replace("ipfs://", "");
148
+ result.httpsUrl = `https://dweb.link/ipfs/${ipfsCid}`;
149
+ }
150
+ else {
151
+ throw new Error(`Unsupported uri type: ${uriString}`);
152
+ }
153
+ }
154
+ }
155
+ return result;
156
+ }
157
+ ;
72
158
  /**
73
159
  * buildAuthChain Build an authchain - Zeroth-Descendant Transaction Chain, refer to https://github.com/bitjson/chip-bcmr#zeroth-descendant-transaction-chains
74
160
  * The authchain in this implementation is specific to resolve to a valid metadata registry
@@ -120,95 +206,10 @@ export class BCMR {
120
206
  }
121
207
  return undefined;
122
208
  };
123
- // helper function to enforce the constraints on the 0th output, decode the BCMR's OP_RETURN data
124
- // returns resolved AuthChainElement
125
- const makeAuthChainElement = (rawTx, hash) => {
126
- let opReturns;
127
- let spends0thOutput = false;
128
- if (rawTx.hasOwnProperty("vout")) {
129
- const electrumTransaction = rawTx;
130
- opReturns = electrumTransaction.vout
131
- .filter((val) => val.scriptPubKey.type === "nulldata")
132
- .map((val) => val.scriptPubKey.hex);
133
- spends0thOutput = electrumTransaction.vin.some((val) => val.vout === 0);
134
- }
135
- else {
136
- const libauthTransaction = rawTx;
137
- opReturns = libauthTransaction.outputs
138
- .map((val) => binToHex(val.lockingBytecode))
139
- .filter((val) => val.indexOf("6a") === 0);
140
- spends0thOutput = libauthTransaction.inputs.some((val) => val.outpointIndex === 0);
141
- }
142
- if (!spends0thOutput) {
143
- throw new Error("Invalid authchain transaction (does not spend 0th output of previous transaction)");
144
- }
145
- const bcmrOpReturns = opReturns.filter((val) => val.indexOf("6a0442434d52") === 0 ||
146
- val.indexOf("6a4c0442434d52") === 0 ||
147
- val.indexOf("6a4d040042434d52") === 0 ||
148
- val.indexOf("6a4e0400000042434d52") === 0);
149
- if (bcmrOpReturns.length === 0) {
150
- return {
151
- txHash: hash,
152
- contentHash: "",
153
- uris: [],
154
- httpsUrl: "",
155
- };
156
- }
157
- const opReturnHex = opReturns[0];
158
- const chunks = OpReturnData.parseBinary(hexToBin(opReturnHex));
159
- if (chunks.length < 2) {
160
- throw new Error(`Malformed BCMR output: ${opReturnHex}`);
161
- }
162
- const result = {
163
- txHash: hash,
164
- contentHash: "",
165
- uris: [],
166
- httpsUrl: "",
167
- };
168
- if (chunks.length === 2) {
169
- // IPFS Publication Output
170
- result.contentHash = binToHex(chunks[1]);
171
- const ipfsCid = binToUtf8(chunks[1]);
172
- result.uris = [`ipfs://${ipfsCid}`];
173
- result.httpsUrl = `https://dweb.link/ipfs/${ipfsCid}`;
174
- }
175
- else {
176
- // URI Publication Output
177
- // content hash is in OP_SHA256 byte order per spec
178
- result.contentHash = binToHex(chunks[1].slice());
179
- const uris = chunks.slice(2);
180
- for (const uri of uris) {
181
- const uriString = binToUtf8(uri);
182
- result.uris.push(uriString);
183
- if (result.httpsUrl) {
184
- continue;
185
- }
186
- if (uriString.indexOf("https://") === 0) {
187
- result.httpsUrl = uriString;
188
- }
189
- else if (uriString.indexOf("https://") === -1) {
190
- result.httpsUrl = uriString;
191
- // case for domain name specifier, like example.com
192
- if (uriString.indexOf("/") === -1) {
193
- result.httpsUrl = `${result.httpsUrl}/.well-known/bitcoin-cash-metadata-registry.json`;
194
- }
195
- result.httpsUrl = `https://${result.httpsUrl}`;
196
- }
197
- else if (uriString.indexOf("ipfs://") === 0) {
198
- const ipfsCid = uriString.replace("ipfs://", "");
199
- result.httpsUrl = `https://dweb.link/ipfs/${ipfsCid}`;
200
- }
201
- else {
202
- throw new Error(`Unsupported uri type: ${uriString}`);
203
- }
204
- }
205
- }
206
- return result;
207
- };
208
209
  // make authchain element and combine with the rest obtained
209
210
  let element;
210
211
  try {
211
- element = makeAuthChainElement(options.rawTx, options.rawTx.hash);
212
+ element = BCMR.makeAuthChainElement(options.rawTx, options.rawTx.hash);
212
213
  }
213
214
  catch (error) {
214
215
  // special case for cashtoken authchain lookup by categoryId - allow to fail first lookup and inspect the genesis transaction
@@ -244,7 +245,7 @@ export class BCMR {
244
245
  const hash = binToHex(sha256.hash(sha256.hash(transactionBin)).reverse());
245
246
  return { decoded, hash };
246
247
  })
247
- .map(({ decoded, hash }) => makeAuthChainElement(decoded, hash));
248
+ .map(({ decoded, hash }) => BCMR.makeAuthChainElement(decoded, hash));
248
249
  }
249
250
  else {
250
251
  // simply go back in history towards authhead
@@ -255,7 +256,7 @@ export class BCMR {
255
256
  const vin = tx.vin.find((val) => val.vout === 0);
256
257
  tx = await provider.getRawTransactionObject(vin.txid);
257
258
  try {
258
- const pastElement = makeAuthChainElement(tx, tx.hash);
259
+ const pastElement = BCMR.makeAuthChainElement(tx, tx.hash);
259
260
  chainBase.unshift(pastElement);
260
261
  maxElements--;
261
262
  }
@@ -285,6 +286,84 @@ export class BCMR {
285
286
  // return the last chain element (or the only found in an edge case)
286
287
  return [...chainBase, element].filter((val) => val.httpsUrl.length);
287
288
  }
289
+ /**
290
+ * fetchAuthChainFromChaingraph Fetch the authchain information from a trusted external indexer
291
+ * The authchain in this implementation is specific to resolve to a valid metadata registry
292
+ *
293
+ * @param {string} options.chaingraphUrl (required) URL of a chaingraph indexer instance to fetch info from
294
+ * @param {string} options.transactionHash (required) transaction hash from which to build the auth chain
295
+ * @param {string?} options.network (default=mainnet) network to query the data from, specific to the queried instance, can be mainnet, chipnet, or anything else
296
+ *
297
+ * @returns {AuthChain} returns the resolved authchain
298
+ */
299
+ static async fetchAuthChainFromChaingraph(options) {
300
+ if (!options.chaingraphUrl) {
301
+ throw new Error("Provide `chaingraphUrl` param.");
302
+ }
303
+ if (options.network === undefined) {
304
+ options.network = "mainnet";
305
+ }
306
+ const response = await axios.post(options.chaingraphUrl, {
307
+ operationName: null,
308
+ variables: {},
309
+ query: `{
310
+ transaction(
311
+ where: {
312
+ hash:{_eq:"\\\\x${options.transactionHash}"},
313
+ block_inclusions:{block:{accepted_by:{node:{name:{_ilike:"%${options.network}%"}}}}}
314
+ }
315
+ ) {
316
+ hash
317
+ authchains {
318
+ authchain_length
319
+ migrations(
320
+ where: {
321
+ transaction: {
322
+ outputs: { locking_bytecode_pattern: { _like: "6a04%" } }
323
+ }
324
+ }
325
+ ) {
326
+ transaction {
327
+ hash
328
+ inputs(where:{ outpoint_index: { _eq:"0" } }){
329
+ outpoint_index
330
+ }
331
+ outputs(where: { locking_bytecode_pattern: { _like: "6a04%" } }) {
332
+ output_index
333
+ locking_bytecode
334
+ }
335
+ }
336
+ }
337
+ }
338
+ }
339
+ }`
340
+ }, {
341
+ responseType: "json",
342
+ headers: {
343
+ Accept: "*/*",
344
+ "Content-Type": "application/json",
345
+ },
346
+ });
347
+ const result = [];
348
+ const migrations = response.data.data.transaction[0]?.authchains[0].migrations;
349
+ if (!migrations) {
350
+ return result;
351
+ }
352
+ for (const migration of migrations) {
353
+ const transaction = migration.transaction[0];
354
+ if (!transaction) {
355
+ continue;
356
+ }
357
+ transaction.inputs.forEach(input => input.outpointIndex = Number(input.outpoint_index));
358
+ transaction.outputs.forEach(output => {
359
+ output.outputIndex = Number(output.output_index);
360
+ output.lockingBytecode = hexToBin(output.locking_bytecode.replace("\\x", ""));
361
+ });
362
+ const txHash = transaction.hash.replace("\\x", "");
363
+ result.push(BCMR.makeAuthChainElement(transaction, txHash));
364
+ }
365
+ return result;
366
+ }
288
367
  /**
289
368
  * addMetadataRegistryAuthChain Add BCMR metadata registry by resolving an authchain
290
369
  *
@@ -1 +1 @@
1
- {"version":3,"file":"Bcmr.js","sourceRoot":"","sources":["../../../src/wallet/Bcmr.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Bcmr.js","sourceRoot":"","sources":["../../../src/wallet/Bcmr.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,SAAS,EACT,iBAAiB,EACjB,QAAQ,EACR,MAAM,EAEN,SAAS,GACV,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAO,MAAM,iBAAiB,CAAC;AAI/C,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAW1C,0FAA0F;AAC1F,MAAM,OAAO,IAAI;IAIR,MAAM,CAAC,aAAa;QACzB,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IAEM,MAAM,CAAC,eAAe;QAC3B,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;IAC/B,CAAC;IAED;;;;;;;;;OASG;IACI,MAAM,CAAC,KAAK,CAAC,qBAAqB,CACvC,GAAW,EACX,WAAoB;QAEpB,IAAI,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YAC/B,GAAG,GAAG,WAAW,GAAG,EAAE,CAAC;SACxB;QAED,oDAAoD;QACpD,IAAI,WAAW,EAAE;YACf,kCAAkC;YAClC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;gBACpC,YAAY,EAAE,MAAM;gBACpB,iBAAiB,EAAE,CAAC,GAAG,EAAE,EAAE;oBACzB,OAAO,GAAG,CAAC;gBACb,CAAC;aACF,CAAC,CAAC;YACH,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAc,CAAC,CAAC,CAAC,CAAC;YACvE,IAAI,WAAW,IAAI,IAAI,EAAE;gBACvB,MAAM,IAAI,KAAK,CACb,kCAAkC,GAAG,eAAe,IAAI,eAAe,WAAW,EAAE,CACrF,CAAC;aACH;YAED,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAa,CAAC;SAC9C;QAED,kBAAkB;QAClB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACtC,OAAO,QAAQ,CAAC,IAAgB,CAAC;IACnC,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,mBAAmB,CAAC,QAAkB;QAClD,IACE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAC1B,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAC1D,EACD;YACA,OAAO;SACR;QACD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC;IAED;;;;;;;;OAQG;IACI,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAC5C,GAAW,EACX,WAAoB;QAEpB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QACpE,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED,iGAAiG;IACjG,oCAAoC;IAC7B,MAAM,CAAC,oBAAoB,CAChC,KAA2C,EAC3C,IAAY;QAEZ,IAAI,SAAmB,CAAC;QACxB,IAAI,eAAe,GAAG,KAAK,CAAC;QAC5B,IAAI,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE;YAChC,MAAM,mBAAmB,GAAG,KAA+B,CAAC;YAC5D,SAAS,GAAG,mBAAmB,CAAC,IAAI;iBACjC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,KAAK,UAAU,CAAC;iBACrD,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YACtC,eAAe,GAAG,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;SACzE;aAAM;YACL,MAAM,kBAAkB,GAAG,KAAoB,CAAC;YAChD,SAAS,GAAG,kBAAkB,CAAC,OAAO;iBACnC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;iBAC3C,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAC5C,eAAe,GAAG,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAC9C,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,aAAa,KAAK,CAAC,CACjC,CAAC;SACH;QAED,IAAI,CAAC,eAAe,EAAE;YACpB,MAAM,IAAI,KAAK,CACb,mFAAmF,CACpF,CAAC;SACH;QAED,MAAM,aAAa,GAAG,SAAS,CAAC,MAAM,CACpC,CAAC,GAAG,EAAE,EAAE,CACN,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC;YACjC,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC;YACnC,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC;YACrC,GAAG,CAAC,OAAO,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAC5C,CAAC;QAEF,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;YAC9B,OAAO;gBACL,MAAM,EAAE,IAAI;gBACZ,WAAW,EAAE,EAAE;gBACf,IAAI,EAAE,EAAE;gBACR,QAAQ,EAAE,EAAE;aACb,CAAC;SACH;QAED,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,YAAY,CAAC,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;QAC/D,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,MAAM,IAAI,KAAK,CAAC,0BAA0B,WAAW,EAAE,CAAC,CAAC;SAC1D;QAED,MAAM,MAAM,GAAqB;YAC/B,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,EAAE;YACf,IAAI,EAAE,EAAE;YACR,QAAQ,EAAE,EAAE;SACb,CAAC;QAEF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YACvB,0BAA0B;YAC1B,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACzC,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACrC,MAAM,CAAC,IAAI,GAAG,CAAC,UAAU,OAAO,EAAE,CAAC,CAAC;YACpC,MAAM,CAAC,QAAQ,GAAG,0BAA0B,OAAO,EAAE,CAAC;SACvD;aAAM;YACL,yBAAyB;YACzB,mDAAmD;YACnD,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YAEjD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAE7B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;gBACtB,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;gBACjC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAE5B,IAAI,MAAM,CAAC,QAAQ,EAAE;oBACnB,SAAS;iBACV;gBAED,IAAI,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;oBACvC,MAAM,CAAC,QAAQ,GAAG,SAAS,CAAC;iBAC7B;qBAAM,IAAI,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE;oBAC/C,MAAM,CAAC,QAAQ,GAAG,SAAS,CAAC;oBAE5B,mDAAmD;oBACnD,IAAI,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;wBACjC,MAAM,CAAC,QAAQ,GAAG,GAAG,MAAM,CAAC,QAAQ,kDAAkD,CAAC;qBACxF;oBAED,MAAM,CAAC,QAAQ,GAAG,WAAW,MAAM,CAAC,QAAQ,EAAE,CAAC;iBAChD;qBAAM,IAAI,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;oBAC7C,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;oBACjD,MAAM,CAAC,QAAQ,GAAG,0BAA0B,OAAO,EAAE,CAAC;iBACvD;qBAAM;oBACL,MAAM,IAAI,KAAK,CAAC,yBAAyB,SAAS,EAAE,CAAC,CAAC;iBACvD;aACF;SACF;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAAA,CAAC;IAEF;;;;;;;;;;;;OAYG;IACI,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,OAOlC;QACC,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE;YACjC,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;SACnC;QAED,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS,EAAE;YACtC,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;SAC7B;QAED,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE;YACrC,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC;SAC7B;QAED,MAAM,QAAQ,GAAG,CAAC,MAAM,YAAY,CAClC,OAAO,CAAC,OAAO,CACf,CAA4B,CAAC;QAE/B,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE;YAC/B,OAAO,CAAC,KAAK,GAAG,MAAM,QAAQ,CAAC,uBAAuB,CACpD,OAAO,CAAC,eAAe,CACxB,CAAC;SACH;QAED,qDAAqD;QACrD,MAAM,iBAAiB,GAAG,KAAK,IAAI,EAAE;YACnC,MAAM,OAAO,GACX,OAAO,CAAC,YAAY;gBACpB,CAAC,MAAM,QAAQ,CAAC,UAAU,CACxB,OAAO,CAAC,KAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CACjD,CAAC,CAAC;YACL,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CACzB,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,KAAK,OAAO,CAAC,eAAe,CACjD,CAAC;YACF,IAAI,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAC3C,GAAG,CAAC,MAAM,GAAG,CAAC;gBACZ,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,MAAO,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC;gBACjD,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,GAAG,CAAC,OAAO,KAAK,MAAO,CAAC,OAAO,CACvD,CAAC;YAEF,KAAK,MAAM,SAAS,IAAI,eAAe,EAAE;gBACvC,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,uBAAuB,CACzD,SAAS,CAAC,OAAO,CAClB,CAAC;gBACF,MAAM,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CACxC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC,eAAe,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,CAChE,CAAC;gBACF,qEAAqE;gBACrE,IAAI,YAAY,EAAE;oBAChB,iFAAiF;oBACjF,MAAM,YAAY,GAChB,OAAO,CAAC,KAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;wBAChD,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;wBAC5C,CAAC,CAAC,eAAe;wBACjB,CAAC,CAAC,SAAS,CAAC;oBAEhB,uDAAuD;oBACvD,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;iBAC9C;aACF;YACD,OAAO,SAAS,CAAC;QACnB,CAAC,CAAC;QAEF,4DAA4D;QAC5D,IAAI,OAAyB,CAAC;QAC9B,IAAI;YACF,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SACxE;QAAC,OAAO,KAAK,EAAE;YACd,6HAA6H;YAC7H,qDAAqD;YACrD,MAAM,KAAK,GAAG,MAAM,iBAAiB,EAAE,CAAC;YACxC,IAAI,KAAK,EAAE;gBACT,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC;oBAC/B,GAAG,OAAO;oBACV,eAAe,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI;oBACjC,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,YAAY,EAAE,KAAK,CAAC,YAAY;iBACjC,CAAC,CAAC;aACJ;iBAAM;gBACL,MAAM,KAAK,CAAC;aACb;SACF;QAED,IAAI,SAAS,GAAc,EAAE,CAAC;QAC9B,IAAI,OAAO,CAAC,WAAW,EAAE;YACvB,qEAAqE;YACrE,MAAM,QAAQ,GAAa,MAAM,IAAI,CAAC,qBAAqB,CACzD,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,WAAW,CACpB,CAAC;YACF,IACE,QAAQ,CAAC,UAAU;gBACnB,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC;gBAChC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,EACpD;gBACA,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAChC,QAAQ,CAAC,UAAW,CAAC,WAAW,CAAC,CACtB,CAAC;gBAEd,SAAS,GAAG,YAAY;qBACrB,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;oBACV,MAAM,cAAc,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;oBACpC,MAAM,OAAO,GAAG,iBAAiB,CAAC,cAAc,CAAC,CAAC;oBAClD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;wBAC/B,MAAM,IAAI,KAAK,CACb,8BAA8B,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,OAAO,EAAE,CAC/D,CAAC;qBACH;oBACD,MAAM,IAAI,GAAG,QAAQ,CACnB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,EAAE,CACnD,CAAC;oBACF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;gBAC3B,CAAC,CAAC;qBACD,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;aACzE;iBAAM;gBACL,6CAA6C;gBAC7C,IAAI,IAAI,GAAG,KAAK,CAAC;gBACjB,IAAI,EAAE,GAA2B,EAAE,GAAG,OAAO,CAAC,KAAM,EAAE,CAAC;gBACvD,IAAI,WAAW,GAAG,EAAE,CAAC;gBACrB,OAAO,IAAI,IAAI,KAAK,IAAI,WAAW,KAAK,CAAC,EAAE;oBACzC,MAAM,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;oBACjD,EAAE,GAAG,MAAM,QAAQ,CAAC,uBAAuB,CAAC,GAAI,CAAC,IAAI,CAAC,CAAC;oBACvD,IAAI;wBACF,MAAM,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;wBAC3D,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;wBAC/B,WAAW,EAAE,CAAC;qBACf;oBAAC,MAAM;wBACN,IAAI,GAAG,IAAI,CAAC;qBACb;iBACF;aACF;SACF;QAED,uFAAuF;QACvF,8CAA8C;QAC9C,IAAI,OAAO,CAAC,YAAY,EAAE;YACxB,MAAM,KAAK,GAAG,MAAM,iBAAiB,EAAE,CAAC;YACxC,IAAI,KAAK,EAAE;gBACT,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC;oBAC1C,eAAe,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI;oBACjC,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,YAAY,EAAE,KAAK,CAAC,YAAY;oBAChC,YAAY,EAAE,OAAO,CAAC,YAAY;oBAClC,WAAW,EAAE,KAAK;iBACnB,CAAC,CAAC;gBAEH,uDAAuD;gBACvD,OAAO,CAAC,GAAG,SAAS,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC,CAAC,MAAM,CACjD,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAC7B,CAAC;aACH;SACF;QAED,oEAAoE;QACpE,OAAO,CAAC,GAAG,SAAS,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACtE,CAAC;IAED;;;;;;;;;OASG;IACI,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,OAIhD;QACC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;YAC1B,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;SAClD;QAED,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE;YACjC,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;SAC7B;QAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;YACvD,aAAa,EAAE,IAAI;YACnB,SAAS,EAAE,EAAE;YACb,KAAK,EACX;;;wBAGwB,OAAO,CAAC,eAAe;mEACoB,OAAO,CAAC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;EA0BhF;SACG,EAAE;YACD,YAAY,EAAE,MAAM;YACpB,OAAO,EAAE;gBACP,MAAM,EAAE,KAAK;gBACb,cAAc,EAAE,kBAAkB;aACnC;SACF,CAAC,CAAC;QAEH,MAAM,MAAM,GAAc,EAAE,CAAC;QAC7B,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;QAC/E,IAAI,CAAC,UAAU,EAAE;YACf,OAAO,MAAM,CAAC;SACf;QAED,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;YAClC,MAAM,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC7C,IAAI,CAAC,WAAW,EAAE;gBAChB,SAAS;aACV;YACD,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;YACxF,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;gBACnC,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBACjD,MAAM,CAAC,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;YAChF,CAAC,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACnD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,WAA0B,EAAE,MAAM,CAAC,CAAC,CAAC;SAC5E;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;;;OASG;IACI,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,OAKhD;QACC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC;YAC1C,GAAG,OAAO;YACV,WAAW,EAAE,KAAK;SACnB,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;YACrB,MAAM,IAAI,KAAK,CACb,wDAAwD,IAAI,CAAC,SAAS,CACpE,SAAS,EACT,IAAI,EACJ,CAAC,CACF,EAAE,CACJ,CAAC;SACH;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAC/C,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAChC,CAAC;QAEF,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QACnC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,YAAY,CAAC,OAAe;QACxC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE;YAChE,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,CAAC;YAC/C,IAAI,CAAC,OAAO,EAAE;gBACZ,SAAS;aACV;YACD,MAAM,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YACpD,IAAI,mBAAmB,KAAK,SAAS,EAAE;gBACrC,SAAS;aACV;YAED,OAAO,OAAO,CAAC,mBAAmB,CAAC,CAAC;SACrC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;;AArgBD,6BAA6B;AACf,uBAAkB,GAAe,EAAE,CAAC"}