@bitgo-beta/sdk-coin-flrp 1.0.0-alpha.6 → 1.0.0-alpha.60

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.
Files changed (119) hide show
  1. package/dist/src/flrp.d.ts +10 -17
  2. package/dist/src/flrp.d.ts.map +1 -1
  3. package/dist/src/flrp.js +51 -77
  4. package/dist/src/index.d.ts +0 -1
  5. package/dist/src/index.d.ts.map +1 -1
  6. package/dist/src/index.js +1 -2
  7. package/dist/src/lib/ExportInCTxBuilder.d.ts +44 -0
  8. package/dist/src/lib/ExportInCTxBuilder.d.ts.map +1 -0
  9. package/dist/src/lib/ExportInCTxBuilder.js +151 -0
  10. package/dist/src/lib/ExportInPTxBuilder.d.ts +24 -0
  11. package/dist/src/lib/ExportInPTxBuilder.d.ts.map +1 -0
  12. package/dist/src/lib/ExportInPTxBuilder.js +146 -0
  13. package/dist/src/lib/ImportInCTxBuilder.d.ts +30 -0
  14. package/dist/src/lib/ImportInCTxBuilder.d.ts.map +1 -0
  15. package/dist/src/lib/ImportInCTxBuilder.js +164 -0
  16. package/dist/src/lib/ImportInPTxBuilder.d.ts +31 -0
  17. package/dist/src/lib/ImportInPTxBuilder.d.ts.map +1 -0
  18. package/dist/src/lib/ImportInPTxBuilder.js +147 -0
  19. package/dist/src/lib/atomicInCTransactionBuilder.d.ts +12 -16
  20. package/dist/src/lib/atomicInCTransactionBuilder.d.ts.map +1 -1
  21. package/dist/src/lib/atomicInCTransactionBuilder.js +30 -41
  22. package/dist/src/lib/atomicTransactionBuilder.d.ts +54 -70
  23. package/dist/src/lib/atomicTransactionBuilder.d.ts.map +1 -1
  24. package/dist/src/lib/atomicTransactionBuilder.js +134 -213
  25. package/dist/src/lib/iface.d.ts +65 -57
  26. package/dist/src/lib/iface.d.ts.map +1 -1
  27. package/dist/src/lib/iface.js +20 -14
  28. package/dist/src/lib/index.d.ts +5 -0
  29. package/dist/src/lib/index.d.ts.map +1 -1
  30. package/dist/src/lib/index.js +12 -2
  31. package/dist/src/lib/keyPair.d.ts +5 -5
  32. package/dist/src/lib/keyPair.d.ts.map +1 -1
  33. package/dist/src/lib/keyPair.js +17 -9
  34. package/dist/src/lib/permissionlessValidatorTxBuilder.d.ts +41 -0
  35. package/dist/src/lib/permissionlessValidatorTxBuilder.d.ts.map +1 -0
  36. package/dist/src/lib/permissionlessValidatorTxBuilder.js +126 -0
  37. package/dist/src/lib/transaction.d.ts +31 -66
  38. package/dist/src/lib/transaction.d.ts.map +1 -1
  39. package/dist/src/lib/transaction.js +339 -199
  40. package/dist/src/lib/transactionBuilder.d.ts +115 -0
  41. package/dist/src/lib/transactionBuilder.d.ts.map +1 -0
  42. package/dist/src/lib/transactionBuilder.js +232 -0
  43. package/dist/src/lib/transactionBuilderFactory.d.ts +50 -30
  44. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
  45. package/dist/src/lib/transactionBuilderFactory.js +129 -72
  46. package/dist/src/lib/utils.d.ts +106 -146
  47. package/dist/src/lib/utils.d.ts.map +1 -1
  48. package/dist/src/lib/utils.js +298 -321
  49. package/dist/test/resources/account.d.ts +81 -0
  50. package/dist/test/resources/account.d.ts.map +1 -0
  51. package/dist/test/resources/account.js +79 -0
  52. package/dist/test/resources/transactionData/exportInC.d.ts +50 -0
  53. package/dist/test/resources/transactionData/exportInC.d.ts.map +1 -0
  54. package/dist/test/resources/transactionData/exportInC.js +58 -0
  55. package/dist/test/resources/transactionData/exportInP.d.ts +52 -0
  56. package/dist/test/resources/transactionData/exportInP.d.ts.map +1 -0
  57. package/dist/test/resources/transactionData/exportInP.js +65 -0
  58. package/dist/test/resources/transactionData/importInC.d.ts +48 -0
  59. package/dist/test/resources/transactionData/importInC.d.ts.map +1 -0
  60. package/dist/test/resources/transactionData/importInC.js +61 -0
  61. package/dist/test/resources/transactionData/importInP.d.ts +58 -0
  62. package/dist/test/resources/transactionData/importInP.d.ts.map +1 -0
  63. package/dist/test/resources/transactionData/importInP.js +73 -0
  64. package/dist/test/unit/flrp.js +449 -68
  65. package/dist/test/unit/lib/exportInCTxBuilder.d.ts +2 -0
  66. package/dist/test/unit/lib/exportInCTxBuilder.d.ts.map +1 -0
  67. package/dist/test/unit/lib/exportInCTxBuilder.js +193 -0
  68. package/dist/test/unit/lib/exportInPTxBuilder.d.ts +2 -0
  69. package/dist/test/unit/lib/exportInPTxBuilder.d.ts.map +1 -0
  70. package/dist/test/unit/lib/exportInPTxBuilder.js +122 -0
  71. package/dist/test/unit/lib/importInCTxBuilder.d.ts +2 -0
  72. package/dist/test/unit/lib/importInCTxBuilder.d.ts.map +1 -0
  73. package/dist/test/unit/lib/importInCTxBuilder.js +507 -0
  74. package/dist/test/unit/lib/importInPTxBuilder.d.ts +2 -0
  75. package/dist/test/unit/lib/importInPTxBuilder.d.ts.map +1 -0
  76. package/dist/test/unit/lib/importInPTxBuilder.js +126 -0
  77. package/dist/test/unit/lib/keyPair.d.ts +2 -0
  78. package/dist/test/unit/lib/keyPair.d.ts.map +1 -0
  79. package/dist/test/unit/lib/keyPair.js +158 -0
  80. package/dist/test/unit/lib/signFlowTestSuit.d.ts +20 -0
  81. package/dist/test/unit/lib/signFlowTestSuit.d.ts.map +1 -0
  82. package/dist/test/unit/lib/signFlowTestSuit.js +83 -0
  83. package/dist/test/unit/lib/transactionBuilderFactory.d.ts +2 -0
  84. package/dist/test/unit/lib/transactionBuilderFactory.d.ts.map +1 -0
  85. package/dist/test/unit/lib/transactionBuilderFactory.js +60 -0
  86. package/dist/test/unit/lib/utils.js +572 -207
  87. package/dist/tsconfig.tsbuildinfo +1 -1
  88. package/package.json +19 -10
  89. package/.eslintignore +0 -5
  90. package/.eslintrc.json +0 -7
  91. package/.mocharc.yml +0 -8
  92. package/CHANGELOG.md +0 -0
  93. package/dist/src/iface.d.ts +0 -25
  94. package/dist/src/iface.d.ts.map +0 -1
  95. package/dist/src/iface.js +0 -3
  96. package/dist/src/lib/constants.d.ts +0 -11
  97. package/dist/src/lib/constants.d.ts.map +0 -1
  98. package/dist/src/lib/constants.js +0 -17
  99. package/dist/src/lib/errors.d.ts +0 -8
  100. package/dist/src/lib/errors.d.ts.map +0 -1
  101. package/dist/src/lib/errors.js +0 -19
  102. package/dist/src/lib/exportInCTxBuilder.d.ts +0 -77
  103. package/dist/src/lib/exportInCTxBuilder.d.ts.map +0 -1
  104. package/dist/src/lib/exportInCTxBuilder.js +0 -170
  105. package/dist/src/lib/exportInPTxBuilder.d.ts +0 -30
  106. package/dist/src/lib/exportInPTxBuilder.d.ts.map +0 -1
  107. package/dist/src/lib/exportInPTxBuilder.js +0 -56
  108. package/dist/test/unit/lib/atomicTransactionBuilder.d.ts +0 -2
  109. package/dist/test/unit/lib/atomicTransactionBuilder.d.ts.map +0 -1
  110. package/dist/test/unit/lib/atomicTransactionBuilder.js +0 -222
  111. package/dist/test/unit/lib/exportTxBuilder.d.ts +0 -2
  112. package/dist/test/unit/lib/exportTxBuilder.d.ts.map +0 -1
  113. package/dist/test/unit/lib/exportTxBuilder.js +0 -45
  114. package/dist/test/unit/lib/transaction.d.ts +0 -2
  115. package/dist/test/unit/lib/transaction.d.ts.map +0 -1
  116. package/dist/test/unit/lib/transaction.js +0 -460
  117. package/dist/test/unit/smoke.d.ts +0 -2
  118. package/dist/test/unit/smoke.d.ts.map +0 -1
  119. package/dist/test/unit/smoke.js +0 -23
@@ -1,13 +1,10 @@
1
- import { UnsignedTx, Credential } from '@flarenetwork/flarejs';
2
- import { BaseKey, BaseTransaction, Entry, TransactionFee, TransactionType } from '@bitgo-beta/sdk-core';
3
1
  import { FlareNetwork, BaseCoin as CoinConfig } from '@bitgo-beta/statics';
2
+ import { BaseKey, BaseTransaction, Entry, TransactionType } from '@bitgo-beta/sdk-core';
3
+ import { Credential, Context } from '@flarenetwork/flarejs';
4
4
  import { Buffer } from 'buffer';
5
- import { DecodedUtxoObj, TransactionExplanation, Tx, TxData, FlrpEntry } from './iface';
5
+ import { TransactionExplanation, Tx, TxData, FlrpTransactionFee, DecodedUtxoObj } from './iface';
6
+ import { FlrpFeeState } from '@bitgo/public-types';
6
7
  import { KeyPair } from './keyPair';
7
- /**
8
- * Flare P-chain transaction implementation using FlareJS
9
- * Based on AVAX transaction patterns adapted for Flare network
10
- */
11
8
  export declare class Transaction extends BaseTransaction {
12
9
  protected _flareTransaction: Tx;
13
10
  _type: TransactionType;
@@ -21,91 +18,59 @@ export declare class Transaction extends BaseTransaction {
21
18
  _stakeAmount: bigint;
22
19
  _threshold: number;
23
20
  _locktime: bigint;
24
- _fromAddresses: string[];
25
- _rewardAddresses: string[];
21
+ _fromAddresses: Uint8Array[];
22
+ _to: Uint8Array[];
23
+ _rewardAddresses: Uint8Array[];
26
24
  _utxos: DecodedUtxoObj[];
27
- _to: string[];
28
- _fee: Partial<TransactionFee>;
29
- _blsPublicKey: string;
30
- _blsSignature: string;
31
- _memo: Uint8Array;
25
+ _utxoHexStrings: string[];
26
+ _context: Context.Context;
27
+ _fee: FlrpTransactionFee;
28
+ _feeState: FlrpFeeState;
29
+ _amount: bigint;
30
+ _rawSignedBytes: Buffer | undefined;
32
31
  constructor(coinConfig: Readonly<CoinConfig>);
33
- /**
34
- * Get the base transaction from FlareJS UnsignedTx
35
- * TODO: Implement proper FlareJS transaction extraction
36
- */
37
- get flareTransaction(): UnsignedTx;
38
32
  get signature(): string[];
39
33
  get credentials(): Credential[];
40
34
  get hasCredentials(): boolean;
41
35
  /** @inheritdoc */
42
36
  canSign({ key }: BaseKey): boolean;
43
- /**
44
- * Sign a Flare transaction using FlareJS
45
- * @param {KeyPair} keyPair
46
- */
47
37
  sign(keyPair: KeyPair): Promise<void>;
38
+ toBroadcastFormat(): string;
39
+ toJson(): TxData;
48
40
  /**
49
- * Set memo from string
50
- * @param {string} memo - Memo text
51
- */
52
- setMemo(memo: string): void;
53
- /**
54
- * Set memo from various formats
55
- * @param {string | Record<string, unknown> | Uint8Array} memo - Memo data
56
- */
57
- setMemoData(memo: string | Record<string, unknown> | Uint8Array): void;
58
- /**
59
- * Get memo as bytes (FlareJS format)
60
- * @returns {Uint8Array} Memo bytes
41
+ * Get the source chain id or undefined if it's not a cross chain transfer.
61
42
  */
62
- getMemoBytes(): Uint8Array;
43
+ get sourceChain(): string | undefined;
63
44
  /**
64
- * Get memo as string
65
- * @returns {string} Memo string
45
+ * Get the destination chain id or undefined if it's not a cross chain transfer.
66
46
  */
67
- getMemoString(): string;
47
+ get destinationChain(): string | undefined;
68
48
  /**
69
- * Check if transaction has memo
70
- * @returns {boolean} Whether memo exists and is not empty
49
+ * Convert a blockchainId buffer to string and return P or C alias if it matches any of those chains.
50
+ * @param {Buffer} blockchainIDBuffer
51
+ * @return {string} blockchainID or alias if exists.
52
+ * @private
71
53
  */
72
- hasMemo(): boolean;
73
- toHexString(byteArray: Uint8Array): string;
74
- /** @inheritdoc */
75
- toBroadcastFormat(): string;
76
- toJson(): TxData;
54
+ blockchainIDtoAlias(blockchainIDBuffer: Buffer): string;
77
55
  setTransaction(tx: Tx): void;
78
56
  /**
79
- * Set the transaction type
80
- * @param {TransactionType} transactionType The transaction type to be set
57
+ * Get the underlying Flare transaction
58
+ * @returns The Flare transaction object
81
59
  */
60
+ getFlareTransaction(): Tx;
82
61
  setTransactionType(transactionType: TransactionType): void;
83
- /**
84
- * Returns the portion of the transaction that needs to be signed in Buffer format.
85
- * Only needed for coins that support adding signatures directly (e.g. TSS).
86
- */
87
62
  get signablePayload(): Buffer;
88
63
  get id(): string;
89
64
  get fromAddresses(): string[];
90
65
  get rewardAddresses(): string[];
66
+ get fee(): FlrpTransactionFee;
91
67
  /**
92
- * Get the list of outputs. Amounts are expressed in absolute value.
68
+ * Check if this transaction is for C-chain (EVM transactions)
93
69
  */
70
+ get isTransactionForCChain(): boolean;
94
71
  get outputs(): Entry[];
95
- get fee(): TransactionFee;
96
72
  get changeOutputs(): Entry[];
97
- get inputs(): FlrpEntry[];
98
- /**
99
- * Flare wrapper to create signature and return it for credentials
100
- * @param prv
101
- * @return hexstring
102
- */
103
- createSignature(prv: Buffer): string;
104
- /**
105
- * Check if transaction is for C-chain (cross-chain)
106
- */
107
- get isTransactionForCChain(): boolean;
108
- /** @inheritdoc */
73
+ get inputs(): Entry[];
109
74
  explainTransaction(): TransactionExplanation;
110
75
  }
111
76
  //# sourceMappingURL=transaction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/lib/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EACL,OAAO,EACP,eAAe,EACf,KAAK,EAGL,cAAc,EACd,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAEL,cAAc,EAEd,sBAAsB,EACtB,EAAE,EACF,MAAM,EACN,SAAS,EACV,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC;;;GAGG;AACH,qBAAa,WAAY,SAAQ,eAAe;IAC9C,SAAS,CAAC,iBAAiB,EAAE,EAAE,CAAC;IACzB,KAAK,EAAE,eAAe,CAAC;IACvB,QAAQ,EAAE,YAAY,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,SAAK;IACf,SAAS,SAAa;IACtB,cAAc,EAAE,MAAM,EAAE,CAAM;IAC9B,gBAAgB,EAAE,MAAM,EAAE,CAAM;IAChC,MAAM,EAAE,cAAc,EAAE,CAAM;IAC9B,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,IAAI,EAAE,OAAO,CAAC,cAAc,CAAC,CAAM;IACnC,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,UAAU,CAAoB;gBAEhC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAQ5C;;;OAGG;IACH,IAAI,gBAAgB,IAAI,UAAU,CAEjC;IAED,IAAI,SAAS,IAAI,MAAM,EAAE,CAOxB;IAED,IAAI,WAAW,IAAI,UAAU,EAAE,CAI9B;IAED,IAAI,cAAc,IAAI,OAAO,CAE5B;IAED,kBAAkB;IAClB,OAAO,CAAC,EAAE,GAAG,EAAE,EAAE,OAAO,GAAG,OAAO;IAKlC;;;OAGG;IACG,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB3C;;;OAGG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI3B;;;OAGG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,GAAG,IAAI;IAItE;;;OAGG;IACH,YAAY,IAAI,UAAU;IAI1B;;;OAGG;IACH,aAAa,IAAI,MAAM;IAIvB;;;OAGG;IACH,OAAO,IAAI,OAAO;IAIlB,WAAW,CAAC,SAAS,EAAE,UAAU,GAAG,MAAM;IAI1C,kBAAkB;IAClB,iBAAiB,IAAI,MAAM;IAU3B,MAAM,IAAI,MAAM;IAqBhB,cAAc,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI;IAI5B;;;OAGG;IACH,kBAAkB,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI;IAgB1D;;;OAGG;IACH,IAAI,eAAe,IAAI,MAAM,CAQ5B;IAED,IAAI,EAAE,IAAI,MAAM,CAQf;IAED,IAAI,aAAa,IAAI,MAAM,EAAE,CAK5B;IAED,IAAI,eAAe,IAAI,MAAM,EAAE,CAK9B;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,KAAK,EAAE,CA6BrB;IAED,IAAI,GAAG,IAAI,cAAc,CAExB;IAED,IAAI,aAAa,IAAI,KAAK,EAAE,CAI3B;IAED,IAAI,MAAM,IAAI,SAAS,EAAE,CAQxB;IAED;;;;OAIG;IACH,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAOpC;;OAEG;IACH,IAAI,sBAAsB,IAAI,OAAO,CAEpC;IAED,kBAAkB;IAClB,kBAAkB,IAAI,sBAAsB;CA6D7C"}
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/lib/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EACL,OAAO,EACP,eAAe,EACf,KAAK,EAGL,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAEL,UAAU,EAOV,OAAO,EACR,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EACL,sBAAsB,EACtB,EAAE,EACF,MAAM,EAGN,kBAAkB,EAClB,cAAc,EACf,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA+DpC,qBAAa,WAAY,SAAQ,eAAe;IAC9C,SAAS,CAAC,iBAAiB,EAAE,EAAE,CAAC;IACzB,KAAK,EAAE,eAAe,CAAC;IACvB,QAAQ,EAAE,YAAY,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,SAAK;IACf,SAAS,SAAa;IACtB,cAAc,EAAE,UAAU,EAAE,CAAM;IAClC,GAAG,EAAE,UAAU,EAAE,CAAM;IACvB,gBAAgB,EAAE,UAAU,EAAE,CAAM;IACpC,MAAM,EAAE,cAAc,EAAE,CAAM;IAC9B,eAAe,EAAE,MAAM,EAAE,CAAM;IAC/B,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC;IAC1B,IAAI,EAAE,kBAAkB,CAAgB;IACxC,SAAS,EAAE,YAAY,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;gBAE/B,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAS5C,IAAI,SAAS,IAAI,MAAM,EAAE,CAKxB;IAED,IAAI,WAAW,IAAI,UAAU,EAAE,CAE9B;IAED,IAAI,cAAc,IAAI,OAAO,CAE5B;IAED,kBAAkB;IAClB,OAAO,CAAC,EAAE,GAAG,EAAE,EAAE,OAAO,GAAG,OAAO;IAI5B,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAsF3C,iBAAiB,IAAI,MAAM;IAkB3B,MAAM,IAAI,MAAM;IAmBhB;;OAEG;IACH,IAAI,WAAW,IAAI,MAAM,GAAG,SAAS,CA6BpC;IAED;;OAEG;IACH,IAAI,gBAAgB,IAAI,MAAM,GAAG,SAAS,CA6BzC;IAED;;;;;OAKG;IACH,mBAAmB,CAAC,kBAAkB,EAAE,MAAM,GAAG,MAAM;IAWvD,cAAc,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI;IAI5B;;;OAGG;IACH,mBAAmB,IAAI,EAAE;IAIzB,kBAAkB,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI;IAO1D,IAAI,eAAe,IAAI,MAAM,CAE5B;IAED,IAAI,EAAE,IAAI,MAAM,CAKf;IAED,IAAI,aAAa,IAAI,MAAM,EAAE,CAE5B;IAED,IAAI,eAAe,IAAI,MAAM,EAAE,CAE9B;IAED,IAAI,GAAG,IAAI,kBAAkB,CAE5B;IAED;;OAEG;IACH,IAAI,sBAAsB,IAAI,OAAO,CAIpC;IAED,IAAI,OAAO,IAAI,KAAK,EAAE,CAwCrB;IAED,IAAI,aAAa,IAAI,KAAK,EAAE,CAmB3B;IAED,IAAI,MAAM,IAAI,KAAK,EAAE,CAsDpB;IAED,kBAAkB,IAAI,sBAAsB;CA0B7C"}