@ledgerhq/coin-cosmos 0.7.0 → 0.7.1-next.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.
Files changed (180) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +7 -0
  3. package/lib/CosmosValidatorsManager.js +36 -39
  4. package/lib/CosmosValidatorsManager.js.map +1 -1
  5. package/lib/api/Cosmos.js +324 -334
  6. package/lib/api/Cosmos.js.map +1 -1
  7. package/lib/api/Cosmos.unit.test.js +46 -55
  8. package/lib/api/Cosmos.unit.test.js.map +1 -1
  9. package/lib/bridge/index.js +2 -11
  10. package/lib/bridge/index.js.map +1 -1
  11. package/lib/bridge/preload.js +4 -14
  12. package/lib/bridge/preload.js.map +1 -1
  13. package/lib/buildTransaction.unit.test.js +30 -37
  14. package/lib/buildTransaction.unit.test.js.map +1 -1
  15. package/lib/chain/Axelar.js +7 -0
  16. package/lib/chain/Axelar.js.map +1 -1
  17. package/lib/chain/BinanceBeaconChain.js +7 -0
  18. package/lib/chain/BinanceBeaconChain.js.map +1 -1
  19. package/lib/chain/Coreum.js +7 -0
  20. package/lib/chain/Coreum.js.map +1 -1
  21. package/lib/chain/Cosmos.js +7 -0
  22. package/lib/chain/Cosmos.js.map +1 -1
  23. package/lib/chain/CryptoOrg.js +7 -0
  24. package/lib/chain/CryptoOrg.js.map +1 -1
  25. package/lib/chain/Desmos.js +7 -0
  26. package/lib/chain/Desmos.js.map +1 -1
  27. package/lib/chain/Dydx.js +7 -0
  28. package/lib/chain/Dydx.js.map +1 -1
  29. package/lib/chain/Injective.js +7 -0
  30. package/lib/chain/Injective.js.map +1 -1
  31. package/lib/chain/Mantra.js +7 -0
  32. package/lib/chain/Mantra.js.map +1 -1
  33. package/lib/chain/Nyx.js +7 -0
  34. package/lib/chain/Nyx.js.map +1 -1
  35. package/lib/chain/Onomy.js +6 -0
  36. package/lib/chain/Onomy.js.map +1 -1
  37. package/lib/chain/Osmosis.js +7 -0
  38. package/lib/chain/Osmosis.js.map +1 -1
  39. package/lib/chain/Persistence.js +6 -0
  40. package/lib/chain/Persistence.js.map +1 -1
  41. package/lib/chain/Quicksilver.js +6 -0
  42. package/lib/chain/Quicksilver.js.map +1 -1
  43. package/lib/chain/SecretNetwork.js +6 -0
  44. package/lib/chain/SecretNetwork.js.map +1 -1
  45. package/lib/chain/SeiNetwork.js +6 -0
  46. package/lib/chain/SeiNetwork.js.map +1 -1
  47. package/lib/chain/Stargaze.js +6 -0
  48. package/lib/chain/Stargaze.js.map +1 -1
  49. package/lib/chain/Stride.js +6 -0
  50. package/lib/chain/Stride.js.map +1 -1
  51. package/lib/chain/Umee.js +6 -0
  52. package/lib/chain/Umee.js.map +1 -1
  53. package/lib/chain/Xion.js +7 -0
  54. package/lib/chain/Xion.js.map +1 -1
  55. package/lib/chain/Zenrock.js +7 -0
  56. package/lib/chain/Zenrock.js.map +1 -1
  57. package/lib/chain/cosmosBase.js +5 -7
  58. package/lib/chain/cosmosBase.js.map +1 -1
  59. package/lib/cli.js +10 -1
  60. package/lib/cli.js.map +1 -1
  61. package/lib/estimateMaxSpendable.js +9 -13
  62. package/lib/estimateMaxSpendable.js.map +1 -1
  63. package/lib/formatters.js +6 -7
  64. package/lib/formatters.js.map +1 -1
  65. package/lib/getTransactionStatus.js +179 -191
  66. package/lib/getTransactionStatus.js.map +1 -1
  67. package/lib/hw-getAddress.js +5 -14
  68. package/lib/hw-getAddress.js.map +1 -1
  69. package/lib/logic.js +34 -20
  70. package/lib/logic.js.map +1 -1
  71. package/lib/mock.js +16 -11
  72. package/lib/mock.js.map +1 -1
  73. package/lib/prepareTransaction.js +23 -22
  74. package/lib/prepareTransaction.js.map +1 -1
  75. package/lib/prepareTransaction.unit.test.js +50 -59
  76. package/lib/prepareTransaction.unit.test.js.map +1 -1
  77. package/lib/signOperation.js +111 -122
  78. package/lib/signOperation.js.map +1 -1
  79. package/lib/specs.js +154 -116
  80. package/lib/specs.js.map +1 -1
  81. package/lib/speculos-deviceActions.js +1 -1
  82. package/lib/speculos-deviceActions.js.map +1 -1
  83. package/lib/synchronisation.js +17 -25
  84. package/lib/synchronisation.js.map +1 -1
  85. package/lib/synchronisation.unit.test.js +83 -76
  86. package/lib/synchronisation.unit.test.js.map +1 -1
  87. package/lib/transaction.js +26 -6
  88. package/lib/transaction.js.map +1 -1
  89. package/lib/updateTransaction.js +2 -3
  90. package/lib/updateTransaction.js.map +1 -1
  91. package/lib-es/CosmosValidatorsManager.js +36 -39
  92. package/lib-es/CosmosValidatorsManager.js.map +1 -1
  93. package/lib-es/api/Cosmos.js +324 -334
  94. package/lib-es/api/Cosmos.js.map +1 -1
  95. package/lib-es/api/Cosmos.unit.test.js +46 -55
  96. package/lib-es/api/Cosmos.unit.test.js.map +1 -1
  97. package/lib-es/bridge/index.js +2 -11
  98. package/lib-es/bridge/index.js.map +1 -1
  99. package/lib-es/bridge/preload.js +4 -14
  100. package/lib-es/bridge/preload.js.map +1 -1
  101. package/lib-es/buildTransaction.unit.test.js +30 -37
  102. package/lib-es/buildTransaction.unit.test.js.map +1 -1
  103. package/lib-es/chain/Axelar.js +7 -0
  104. package/lib-es/chain/Axelar.js.map +1 -1
  105. package/lib-es/chain/BinanceBeaconChain.js +7 -0
  106. package/lib-es/chain/BinanceBeaconChain.js.map +1 -1
  107. package/lib-es/chain/Coreum.js +7 -0
  108. package/lib-es/chain/Coreum.js.map +1 -1
  109. package/lib-es/chain/Cosmos.js +7 -0
  110. package/lib-es/chain/Cosmos.js.map +1 -1
  111. package/lib-es/chain/CryptoOrg.js +7 -0
  112. package/lib-es/chain/CryptoOrg.js.map +1 -1
  113. package/lib-es/chain/Desmos.js +7 -0
  114. package/lib-es/chain/Desmos.js.map +1 -1
  115. package/lib-es/chain/Dydx.js +7 -0
  116. package/lib-es/chain/Dydx.js.map +1 -1
  117. package/lib-es/chain/Injective.js +7 -0
  118. package/lib-es/chain/Injective.js.map +1 -1
  119. package/lib-es/chain/Mantra.js +7 -0
  120. package/lib-es/chain/Mantra.js.map +1 -1
  121. package/lib-es/chain/Nyx.js +7 -0
  122. package/lib-es/chain/Nyx.js.map +1 -1
  123. package/lib-es/chain/Onomy.js +6 -0
  124. package/lib-es/chain/Onomy.js.map +1 -1
  125. package/lib-es/chain/Osmosis.js +7 -0
  126. package/lib-es/chain/Osmosis.js.map +1 -1
  127. package/lib-es/chain/Persistence.js +6 -0
  128. package/lib-es/chain/Persistence.js.map +1 -1
  129. package/lib-es/chain/Quicksilver.js +6 -0
  130. package/lib-es/chain/Quicksilver.js.map +1 -1
  131. package/lib-es/chain/SecretNetwork.js +6 -0
  132. package/lib-es/chain/SecretNetwork.js.map +1 -1
  133. package/lib-es/chain/SeiNetwork.js +6 -0
  134. package/lib-es/chain/SeiNetwork.js.map +1 -1
  135. package/lib-es/chain/Stargaze.js +6 -0
  136. package/lib-es/chain/Stargaze.js.map +1 -1
  137. package/lib-es/chain/Stride.js +6 -0
  138. package/lib-es/chain/Stride.js.map +1 -1
  139. package/lib-es/chain/Umee.js +6 -0
  140. package/lib-es/chain/Umee.js.map +1 -1
  141. package/lib-es/chain/Xion.js +7 -0
  142. package/lib-es/chain/Xion.js.map +1 -1
  143. package/lib-es/chain/Zenrock.js +7 -0
  144. package/lib-es/chain/Zenrock.js.map +1 -1
  145. package/lib-es/chain/cosmosBase.js +5 -7
  146. package/lib-es/chain/cosmosBase.js.map +1 -1
  147. package/lib-es/cli.js +10 -1
  148. package/lib-es/cli.js.map +1 -1
  149. package/lib-es/estimateMaxSpendable.js +9 -13
  150. package/lib-es/estimateMaxSpendable.js.map +1 -1
  151. package/lib-es/formatters.js +6 -7
  152. package/lib-es/formatters.js.map +1 -1
  153. package/lib-es/getTransactionStatus.js +179 -191
  154. package/lib-es/getTransactionStatus.js.map +1 -1
  155. package/lib-es/hw-getAddress.js +5 -14
  156. package/lib-es/hw-getAddress.js.map +1 -1
  157. package/lib-es/logic.js +34 -20
  158. package/lib-es/logic.js.map +1 -1
  159. package/lib-es/mock.js +16 -11
  160. package/lib-es/mock.js.map +1 -1
  161. package/lib-es/prepareTransaction.js +23 -22
  162. package/lib-es/prepareTransaction.js.map +1 -1
  163. package/lib-es/prepareTransaction.unit.test.js +50 -59
  164. package/lib-es/prepareTransaction.unit.test.js.map +1 -1
  165. package/lib-es/signOperation.js +111 -122
  166. package/lib-es/signOperation.js.map +1 -1
  167. package/lib-es/specs.js +154 -116
  168. package/lib-es/specs.js.map +1 -1
  169. package/lib-es/speculos-deviceActions.js +1 -1
  170. package/lib-es/speculos-deviceActions.js.map +1 -1
  171. package/lib-es/synchronisation.js +17 -25
  172. package/lib-es/synchronisation.js.map +1 -1
  173. package/lib-es/synchronisation.unit.test.js +83 -76
  174. package/lib-es/synchronisation.unit.test.js.map +1 -1
  175. package/lib-es/transaction.js +26 -6
  176. package/lib-es/transaction.js.map +1 -1
  177. package/lib-es/updateTransaction.js +2 -3
  178. package/lib-es/updateTransaction.js.map +1 -1
  179. package/package.json +4 -4
  180. package/tsconfig.json +0 -1
@@ -1,4 +1,4 @@
1
1
 
2
2
  > @ledgerhq/coin-cosmos@0.7.0 build /home/runner/work/ledger-live/ledger-live/libs/coin-modules/coin-cosmos
3
- > tsc && tsc -m ES6 --outDir lib-es
3
+ > tsc && tsc -m esnext --moduleResolution bundler --outDir lib-es
4
4
 
package/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # @ledgerhq/coin-cosmos
2
2
 
3
+ ## 0.7.1-next.0
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [[`5e18866`](https://github.com/LedgerHQ/ledger-live/commit/5e18866320b843632699659ee66f6c410c108c1e)]:
8
+ - @ledgerhq/coin-framework@1.0.0-next.0
9
+
3
10
  ## 0.7.0
4
11
 
5
12
  ### Minor Changes
@@ -1,13 +1,4 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
12
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
4
  };
@@ -18,48 +9,54 @@ const network_1 = __importDefault(require("@ledgerhq/live-network/network"));
18
9
  const logs_1 = require("@ledgerhq/logs");
19
10
  const chain_1 = __importDefault(require("./chain/chain"));
20
11
  class CosmosValidatorsManager {
12
+ _version;
13
+ _currency;
14
+ _minDenom;
15
+ _endPoint;
16
+ _rewardsState;
17
+ _crypto;
21
18
  constructor(currency, options) {
22
- this.cacheValidators = (0, cache_1.makeLRUCache)(() => __awaiter(this, void 0, void 0, function* () {
23
- const url = `${this._endPoint}/cosmos/staking/${this._version}/validators?status=BOND_STATUS_BONDED&pagination.limit=175`;
24
- const { data } = yield (0, network_1.default)({
25
- url,
26
- method: "GET",
27
- });
28
- const validators = data.validators.map((validator) => {
29
- const commission = parseFloat(validator.commission.commission_rates.rate);
30
- return {
31
- validatorAddress: validator.operator_address,
32
- name: validator.description.moniker,
33
- tokens: parseFloat(validator.tokens),
34
- votingPower: 0,
35
- commission,
36
- estimatedYearlyRewardsRate: 0,
37
- };
38
- });
39
- return validators;
40
- }), () => this._currency.id);
41
- this.getValidators = () => __awaiter(this, void 0, void 0, function* () {
42
- // validators need the rewardsState ONLY to compute voting power as
43
- // percentage instead of raw uatoms amounts
44
- return yield this.cacheValidators();
45
- });
46
- this.hydrateValidators = (validators) => {
47
- (0, logs_1.log)(`${this._currency.id}/validators`, "hydrate " + validators.length + " validators");
48
- this.cacheValidators.hydrate("", validators);
49
- };
50
19
  this._currency = currency;
51
20
  this._crypto = (0, chain_1.default)(currency.id);
52
21
  this._endPoint = this._crypto.lcd;
53
22
  this._version = this._crypto.version;
54
23
  this._minDenom = currency.units[1].code;
55
- if (options === null || options === void 0 ? void 0 : options.endPoint) {
24
+ if (options?.endPoint) {
56
25
  this._endPoint = options.endPoint;
57
26
  this._minDenom = currency.units[1].code;
58
27
  }
59
- if (options === null || options === void 0 ? void 0 : options.rewardsState) {
28
+ if (options?.rewardsState) {
60
29
  this._rewardsState = options.rewardsState;
61
30
  }
62
31
  }
32
+ cacheValidators = (0, cache_1.makeLRUCache)(async () => {
33
+ const url = `${this._endPoint}/cosmos/staking/${this._version}/validators?status=BOND_STATUS_BONDED&pagination.limit=175`;
34
+ const { data } = await (0, network_1.default)({
35
+ url,
36
+ method: "GET",
37
+ });
38
+ const validators = data.validators.map((validator) => {
39
+ const commission = parseFloat(validator.commission.commission_rates.rate);
40
+ return {
41
+ validatorAddress: validator.operator_address,
42
+ name: validator.description.moniker,
43
+ tokens: parseFloat(validator.tokens),
44
+ votingPower: 0,
45
+ commission,
46
+ estimatedYearlyRewardsRate: 0,
47
+ };
48
+ });
49
+ return validators;
50
+ }, () => this._currency.id);
51
+ getValidators = async () => {
52
+ // validators need the rewardsState ONLY to compute voting power as
53
+ // percentage instead of raw uatoms amounts
54
+ return await this.cacheValidators();
55
+ };
56
+ hydrateValidators = (validators) => {
57
+ (0, logs_1.log)(`${this._currency.id}/validators`, "hydrate " + validators.length + " validators");
58
+ this.cacheValidators.hydrate("", validators);
59
+ };
63
60
  }
64
61
  exports.CosmosValidatorsManager = CosmosValidatorsManager;
65
62
  //# sourceMappingURL=CosmosValidatorsManager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CosmosValidatorsManager.js","sourceRoot":"","sources":["../src/CosmosValidatorsManager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,wDAA4D;AAC5D,6EAAqD;AACrD,yCAAqC;AAGrC,0DAA0C;AAI1C,MAAa,uBAAuB;IAQlC,YACE,QAAwB,EACxB,OAIC;QAkBK,oBAAe,GAAG,IAAA,oBAAY,EACpC,GAAyC,EAAE;YACzC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,mBAAmB,IAAI,CAAC,QAAQ,4DAA4D,CAAC;YAC1H,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAA,iBAAO,EAAC;gBAC7B,GAAG;gBACH,MAAM,EAAE,KAAK;aACd,CAAC,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAA2B,EAAE,EAAE;gBACrE,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBAC1E,OAAO;oBACL,gBAAgB,EAAE,SAAS,CAAC,gBAAgB;oBAC5C,IAAI,EAAE,SAAS,CAAC,WAAW,CAAC,OAAO;oBACnC,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC;oBACpC,WAAW,EAAE,CAAC;oBACd,UAAU;oBACV,0BAA0B,EAAE,CAAC;iBAC9B,CAAC;YACJ,CAAC,CAAC,CAAC;YACH,OAAO,UAAU,CAAC;QACpB,CAAC,CAAA,EACD,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CACxB,CAAC;QAEF,kBAAa,GAAG,GAAyC,EAAE;YACzD,mEAAmE;YACnE,2CAA2C;YAC3C,OAAO,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QACtC,CAAC,CAAA,CAAC;QAEF,sBAAiB,GAAG,CAAC,UAAiC,EAAQ,EAAE;YAC9D,IAAA,UAAG,EAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,UAAU,GAAG,UAAU,CAAC,MAAM,GAAG,aAAa,CAAC,CAAC;YACvF,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;QAC/C,CAAC,CAAC;QAhDA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,IAAA,eAAa,EAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;QAClC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAExC,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,EAAE,CAAC;YACtB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC;YAClC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1C,CAAC;QAED,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,EAAE,CAAC;YAC1B,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;QAC5C,CAAC;IACH,CAAC;CAmCF;AAjED,0DAiEC"}
1
+ {"version":3,"file":"CosmosValidatorsManager.js","sourceRoot":"","sources":["../src/CosmosValidatorsManager.ts"],"names":[],"mappings":";;;;;;AACA,wDAA4D;AAC5D,6EAAqD;AACrD,yCAAqC;AAGrC,0DAA0C;AAI1C,MAAa,uBAAuB;IACxB,QAAQ,CAAS;IACjB,SAAS,CAAkB;IAC3B,SAAS,CAAU;IACnB,SAAS,CAAgC;IACzC,aAAa,CAAkB;IACjC,OAAO,CAAa;IAE5B,YACE,QAAwB,EACxB,OAIC;QAED,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,IAAA,eAAa,EAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;QAClC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAExC,IAAI,OAAO,EAAE,QAAQ,EAAE,CAAC;YACtB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC;YAClC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1C,CAAC;QAED,IAAI,OAAO,EAAE,YAAY,EAAE,CAAC;YAC1B,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;QAC5C,CAAC;IACH,CAAC;IAEO,eAAe,GAAG,IAAA,oBAAY,EACpC,KAAK,IAAoC,EAAE;QACzC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,mBAAmB,IAAI,CAAC,QAAQ,4DAA4D,CAAC;QAC1H,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAA,iBAAO,EAAC;YAC7B,GAAG;YACH,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAA2B,EAAE,EAAE;YACrE,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAC1E,OAAO;gBACL,gBAAgB,EAAE,SAAS,CAAC,gBAAgB;gBAC5C,IAAI,EAAE,SAAS,CAAC,WAAW,CAAC,OAAO;gBACnC,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC;gBACpC,WAAW,EAAE,CAAC;gBACd,UAAU;gBACV,0BAA0B,EAAE,CAAC;aAC9B,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,OAAO,UAAU,CAAC;IACpB,CAAC,EACD,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CACxB,CAAC;IAEF,aAAa,GAAG,KAAK,IAAoC,EAAE;QACzD,mEAAmE;QACnE,2CAA2C;QAC3C,OAAO,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;IACtC,CAAC,CAAC;IAEF,iBAAiB,GAAG,CAAC,UAAiC,EAAQ,EAAE;QAC9D,IAAA,UAAG,EAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,UAAU,GAAG,UAAU,CAAC,MAAM,GAAG,aAAa,CAAC,CAAC;QACvF,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;IAC/C,CAAC,CAAC;CACH;AAjED,0DAiEC"}