@meterio/sumer-js 0.2.30 → 0.2.32

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 (240) hide show
  1. package/dist/browser/sumer.min.js +10 -10
  2. package/dist/nodejs/abi.d.ts +175 -214
  3. package/dist/nodejs/abi.js +8098 -8853
  4. package/dist/nodejs/abi.js.map +1 -1
  5. package/dist/nodejs/constants/arbitrum.d.ts +4 -4
  6. package/dist/nodejs/constants/arbitrum.js +12 -12
  7. package/dist/nodejs/constants/arbitrum.js.map +1 -1
  8. package/dist/nodejs/constants/basemain.d.ts +4 -4
  9. package/dist/nodejs/constants/basemain.js +12 -12
  10. package/dist/nodejs/constants/basemain.js.map +1 -1
  11. package/dist/nodejs/constants/basetest.d.ts +4 -4
  12. package/dist/nodejs/constants/basetest.js +9 -9
  13. package/dist/nodejs/constants/basetest.js.map +1 -1
  14. package/dist/nodejs/constants/ethereum.d.ts +5 -4
  15. package/dist/nodejs/constants/ethereum.js +14 -13
  16. package/dist/nodejs/constants/ethereum.js.map +1 -1
  17. package/dist/nodejs/constants/metermain.d.ts +4 -4
  18. package/dist/nodejs/constants/metermain.js +9 -9
  19. package/dist/nodejs/constants/metermain.js.map +1 -1
  20. package/dist/nodejs/constants/metertest.d.ts +5 -5
  21. package/dist/nodejs/constants/metertest.js +46 -47
  22. package/dist/nodejs/constants/metertest.js.map +1 -1
  23. package/dist/nodejs/constants/sepolia.d.ts +28 -4
  24. package/dist/nodejs/constants/sepolia.js +68 -16
  25. package/dist/nodejs/constants/sepolia.js.map +1 -1
  26. package/dist/nodejs/errorABIs.js +141 -658
  27. package/dist/nodejs/errorABIs.js.map +1 -1
  28. package/dist/nodejs/errors.d.ts +48 -20
  29. package/dist/nodejs/errors.js +48 -20
  30. package/dist/nodejs/errors.js.map +1 -1
  31. package/dist/nodejs/index.d.ts +175 -214
  32. package/dist/nodejs/typechain/@chainlink/contracts/index.d.ts +2 -0
  33. package/dist/nodejs/typechain/@chainlink/contracts/index.js +3 -0
  34. package/dist/nodejs/typechain/@chainlink/contracts/index.js.map +1 -0
  35. package/dist/nodejs/typechain/@chainlink/contracts/src/index.d.ts +2 -0
  36. package/dist/nodejs/typechain/@chainlink/contracts/src/index.js +3 -0
  37. package/dist/nodejs/typechain/@chainlink/contracts/src/index.js.map +1 -0
  38. package/dist/nodejs/typechain/@chainlink/contracts/src/v0.8/index.d.ts +2 -0
  39. package/dist/nodejs/typechain/@chainlink/contracts/src/v0.8/index.js +3 -0
  40. package/dist/nodejs/typechain/@chainlink/contracts/src/v0.8/index.js.map +1 -0
  41. package/dist/nodejs/typechain/@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.d.ts +103 -0
  42. package/dist/nodejs/typechain/@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.js +3 -0
  43. package/dist/nodejs/typechain/@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.js.map +1 -0
  44. package/dist/nodejs/typechain/@chainlink/contracts/src/v0.8/interfaces/index.d.ts +1 -0
  45. package/dist/nodejs/typechain/@chainlink/contracts/src/v0.8/interfaces/index.js +3 -0
  46. package/dist/nodejs/typechain/@chainlink/contracts/src/v0.8/interfaces/index.js.map +1 -0
  47. package/dist/nodejs/typechain/@chainlink/index.d.ts +2 -0
  48. package/dist/nodejs/typechain/@chainlink/index.js +3 -0
  49. package/dist/nodejs/typechain/@chainlink/index.js.map +1 -0
  50. package/dist/nodejs/typechain/contracts/CToken/CErc20.d.ts +12 -10
  51. package/dist/nodejs/typechain/contracts/CToken/CEther.d.ts +12 -10
  52. package/dist/nodejs/typechain/contracts/CToken/CToken.d.ts +9 -1
  53. package/dist/nodejs/typechain/contracts/CToken/CTokenStorage.d.ts +12 -411
  54. package/dist/nodejs/typechain/contracts/CToken/SuErc20.d.ts +12 -10
  55. package/dist/nodejs/typechain/contracts/Comptroller/CompoundLens.d.ts +17 -1
  56. package/dist/nodejs/typechain/contracts/Comptroller/Comptroller.d.ts +358 -709
  57. package/dist/nodejs/typechain/contracts/Comptroller/ComptrollerStorage.d.ts +163 -207
  58. package/dist/nodejs/typechain/contracts/Comptroller/RedemptionManager.d.ts +1 -3
  59. package/dist/nodejs/typechain/contracts/Comptroller/index.d.ts +0 -1
  60. package/dist/nodejs/typechain/contracts/Interfaces/ICToken.d.ts +4 -407
  61. package/dist/nodejs/typechain/contracts/Interfaces/ICompLogic.d.ts +1 -19
  62. package/dist/nodejs/typechain/contracts/Interfaces/IComptroller.d.ts +122 -130
  63. package/dist/nodejs/typechain/contracts/Interfaces/IPMarket.d.ts +488 -0
  64. package/dist/nodejs/typechain/contracts/Interfaces/IPMarket.js +3 -0
  65. package/dist/nodejs/typechain/contracts/Interfaces/IPMarket.js.map +1 -0
  66. package/dist/nodejs/typechain/contracts/Interfaces/IPPrincipalToken.d.ts +193 -0
  67. package/dist/nodejs/typechain/contracts/Interfaces/IPPrincipalToken.js +3 -0
  68. package/dist/nodejs/typechain/contracts/Interfaces/IPPrincipalToken.js.map +1 -0
  69. package/dist/nodejs/typechain/contracts/Interfaces/IPYieldToken.d.ts +365 -0
  70. package/dist/nodejs/typechain/contracts/Interfaces/IPYieldToken.js +3 -0
  71. package/dist/nodejs/typechain/contracts/Interfaces/IPYieldToken.js.map +1 -0
  72. package/dist/nodejs/typechain/contracts/Interfaces/IPendlePtOracle.d.ts +65 -0
  73. package/dist/nodejs/typechain/contracts/Interfaces/IPendlePtOracle.js +3 -0
  74. package/dist/nodejs/typechain/contracts/Interfaces/IPendlePtOracle.js.map +1 -0
  75. package/dist/nodejs/typechain/contracts/Interfaces/IStandardizedYield.d.ts +365 -0
  76. package/dist/nodejs/typechain/contracts/Interfaces/IStandardizedYield.js +3 -0
  77. package/dist/nodejs/typechain/contracts/Interfaces/IStandardizedYield.js.map +1 -0
  78. package/dist/nodejs/typechain/contracts/Interfaces/index.d.ts +5 -1
  79. package/dist/nodejs/typechain/contracts/Oracle/FeedPriceOracle.d.ts +321 -138
  80. package/dist/nodejs/typechain/contracts/Oracle/PriceOracle.sol/PriceAdapter.d.ts +25 -0
  81. package/dist/nodejs/typechain/contracts/Oracle/PriceOracle.sol/PriceAdapter.js +3 -0
  82. package/dist/nodejs/typechain/contracts/Oracle/PriceOracle.sol/PriceAdapter.js.map +1 -0
  83. package/dist/nodejs/typechain/contracts/Oracle/PriceOracle.sol/PriceOracle.d.ts +37 -0
  84. package/dist/nodejs/typechain/contracts/Oracle/PriceOracle.sol/PriceOracle.js +3 -0
  85. package/dist/nodejs/typechain/contracts/Oracle/PriceOracle.sol/PriceOracle.js.map +1 -0
  86. package/dist/nodejs/typechain/contracts/Oracle/PriceOracle.sol/index.d.ts +2 -0
  87. package/dist/nodejs/typechain/contracts/Oracle/PriceOracle.sol/index.js +3 -0
  88. package/dist/nodejs/typechain/contracts/Oracle/PriceOracle.sol/index.js.map +1 -0
  89. package/dist/nodejs/typechain/contracts/Oracle/WstETHAdapter.sol/IStETH.d.ts +33 -0
  90. package/dist/nodejs/typechain/contracts/Oracle/WstETHAdapter.sol/IStETH.js +3 -0
  91. package/dist/nodejs/typechain/contracts/Oracle/WstETHAdapter.sol/IStETH.js.map +1 -0
  92. package/dist/nodejs/typechain/contracts/Oracle/WstETHAdapter.sol/WstETHAdapter.d.ts +25 -0
  93. package/dist/nodejs/typechain/contracts/Oracle/WstETHAdapter.sol/WstETHAdapter.js +3 -0
  94. package/dist/nodejs/typechain/contracts/Oracle/WstETHAdapter.sol/WstETHAdapter.js.map +1 -0
  95. package/dist/nodejs/typechain/contracts/Oracle/WstETHAdapter.sol/index.d.ts +2 -0
  96. package/dist/nodejs/typechain/contracts/Oracle/WstETHAdapter.sol/index.js +3 -0
  97. package/dist/nodejs/typechain/contracts/Oracle/WstETHAdapter.sol/index.js.map +1 -0
  98. package/dist/nodejs/typechain/contracts/Oracle/WstMTRGAdapter.sol/IWstMTRG.d.ts +25 -0
  99. package/dist/nodejs/typechain/contracts/Oracle/WstMTRGAdapter.sol/IWstMTRG.js +3 -0
  100. package/dist/nodejs/typechain/contracts/Oracle/WstMTRGAdapter.sol/IWstMTRG.js.map +1 -0
  101. package/dist/nodejs/typechain/contracts/Oracle/WstMTRGAdapter.sol/WstMTRGAdapter.d.ts +25 -0
  102. package/dist/nodejs/typechain/contracts/Oracle/WstMTRGAdapter.sol/WstMTRGAdapter.js +3 -0
  103. package/dist/nodejs/typechain/contracts/Oracle/WstMTRGAdapter.sol/WstMTRGAdapter.js.map +1 -0
  104. package/dist/nodejs/typechain/contracts/Oracle/WstMTRGAdapter.sol/index.d.ts +2 -0
  105. package/dist/nodejs/typechain/contracts/Oracle/WstMTRGAdapter.sol/index.js +3 -0
  106. package/dist/nodejs/typechain/contracts/Oracle/WstMTRGAdapter.sol/index.js.map +1 -0
  107. package/dist/nodejs/typechain/contracts/Oracle/index.d.ts +6 -4
  108. package/dist/nodejs/typechain/contracts/Timelock.d.ts +14 -4
  109. package/dist/nodejs/typechain/factories/@chainlink/contracts/index.d.ts +1 -0
  110. package/dist/nodejs/typechain/factories/@chainlink/contracts/index.js +31 -0
  111. package/dist/nodejs/typechain/factories/@chainlink/contracts/index.js.map +1 -0
  112. package/dist/nodejs/typechain/factories/@chainlink/contracts/src/index.d.ts +1 -0
  113. package/dist/nodejs/typechain/factories/@chainlink/contracts/src/index.js +31 -0
  114. package/dist/nodejs/typechain/factories/@chainlink/contracts/src/index.js.map +1 -0
  115. package/dist/nodejs/typechain/factories/@chainlink/contracts/src/v0.8/index.d.ts +1 -0
  116. package/dist/nodejs/typechain/factories/@chainlink/contracts/src/v0.8/index.js +31 -0
  117. package/dist/nodejs/typechain/factories/@chainlink/contracts/src/v0.8/index.js.map +1 -0
  118. package/dist/nodejs/typechain/factories/@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface__factory.d.ts +93 -0
  119. package/dist/nodejs/typechain/factories/@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface__factory.js +131 -0
  120. package/dist/nodejs/typechain/factories/@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface__factory.js.map +1 -0
  121. package/dist/nodejs/typechain/factories/@chainlink/contracts/src/v0.8/interfaces/index.d.ts +1 -0
  122. package/dist/nodejs/typechain/factories/@chainlink/contracts/src/v0.8/interfaces/index.js +9 -0
  123. package/dist/nodejs/typechain/factories/@chainlink/contracts/src/v0.8/interfaces/index.js.map +1 -0
  124. package/dist/nodejs/typechain/factories/@chainlink/index.d.ts +1 -0
  125. package/dist/nodejs/typechain/factories/@chainlink/index.js +31 -0
  126. package/dist/nodejs/typechain/factories/@chainlink/index.js.map +1 -0
  127. package/dist/nodejs/typechain/factories/contracts/CToken/CErc20__factory.d.ts +29 -29
  128. package/dist/nodejs/typechain/factories/contracts/CToken/CErc20__factory.js +37 -36
  129. package/dist/nodejs/typechain/factories/contracts/CToken/CErc20__factory.js.map +1 -1
  130. package/dist/nodejs/typechain/factories/contracts/CToken/CEther__factory.d.ts +29 -29
  131. package/dist/nodejs/typechain/factories/contracts/CToken/CEther__factory.js +37 -36
  132. package/dist/nodejs/typechain/factories/contracts/CToken/CEther__factory.js.map +1 -1
  133. package/dist/nodejs/typechain/factories/contracts/CToken/CTokenStorage__factory.d.ts +2 -357
  134. package/dist/nodejs/typechain/factories/contracts/CToken/CTokenStorage__factory.js +2 -445
  135. package/dist/nodejs/typechain/factories/contracts/CToken/CTokenStorage__factory.js.map +1 -1
  136. package/dist/nodejs/typechain/factories/contracts/CToken/CToken__factory.d.ts +28 -20
  137. package/dist/nodejs/typechain/factories/contracts/CToken/CToken__factory.js +36 -25
  138. package/dist/nodejs/typechain/factories/contracts/CToken/CToken__factory.js.map +1 -1
  139. package/dist/nodejs/typechain/factories/contracts/CToken/SuErc20__factory.d.ts +29 -33
  140. package/dist/nodejs/typechain/factories/contracts/CToken/SuErc20__factory.js +37 -41
  141. package/dist/nodejs/typechain/factories/contracts/CToken/SuErc20__factory.js.map +1 -1
  142. package/dist/nodejs/typechain/factories/contracts/Comptroller/AccountLiquidity__factory.d.ts +9 -21
  143. package/dist/nodejs/typechain/factories/contracts/Comptroller/AccountLiquidity__factory.js +11 -26
  144. package/dist/nodejs/typechain/factories/contracts/Comptroller/AccountLiquidity__factory.js.map +1 -1
  145. package/dist/nodejs/typechain/factories/contracts/Comptroller/CompLogic__factory.d.ts +1 -1
  146. package/dist/nodejs/typechain/factories/contracts/Comptroller/CompLogic__factory.js +1 -1
  147. package/dist/nodejs/typechain/factories/contracts/Comptroller/CompoundLens__factory.d.ts +31 -21
  148. package/dist/nodejs/typechain/factories/contracts/Comptroller/CompoundLens__factory.js +40 -26
  149. package/dist/nodejs/typechain/factories/contracts/Comptroller/CompoundLens__factory.js.map +1 -1
  150. package/dist/nodejs/typechain/factories/contracts/Comptroller/ComptrollerStorage__factory.d.ts +107 -221
  151. package/dist/nodejs/typechain/factories/contracts/Comptroller/ComptrollerStorage__factory.js +117 -265
  152. package/dist/nodejs/typechain/factories/contracts/Comptroller/ComptrollerStorage__factory.js.map +1 -1
  153. package/dist/nodejs/typechain/factories/contracts/Comptroller/Comptroller__factory.d.ts +299 -1054
  154. package/dist/nodejs/typechain/factories/contracts/Comptroller/Comptroller__factory.js +380 -1375
  155. package/dist/nodejs/typechain/factories/contracts/Comptroller/Comptroller__factory.js.map +1 -1
  156. package/dist/nodejs/typechain/factories/contracts/Comptroller/RedemptionManager__factory.d.ts +9 -25
  157. package/dist/nodejs/typechain/factories/contracts/Comptroller/RedemptionManager__factory.js +11 -31
  158. package/dist/nodejs/typechain/factories/contracts/Comptroller/RedemptionManager__factory.js.map +1 -1
  159. package/dist/nodejs/typechain/factories/contracts/Comptroller/SortedBorrows__factory.d.ts +1 -1
  160. package/dist/nodejs/typechain/factories/contracts/Comptroller/SortedBorrows__factory.js +1 -1
  161. package/dist/nodejs/typechain/factories/contracts/Comptroller/index.d.ts +0 -1
  162. package/dist/nodejs/typechain/factories/contracts/Comptroller/index.js +1 -3
  163. package/dist/nodejs/typechain/factories/contracts/Comptroller/index.js.map +1 -1
  164. package/dist/nodejs/typechain/factories/contracts/Interfaces/ICToken__factory.d.ts +0 -365
  165. package/dist/nodejs/typechain/factories/contracts/Interfaces/ICToken__factory.js +0 -456
  166. package/dist/nodejs/typechain/factories/contracts/Interfaces/ICToken__factory.js.map +1 -1
  167. package/dist/nodejs/typechain/factories/contracts/Interfaces/ICompLogic__factory.d.ts +0 -28
  168. package/dist/nodejs/typechain/factories/contracts/Interfaces/ICompLogic__factory.js +0 -37
  169. package/dist/nodejs/typechain/factories/contracts/Interfaces/ICompLogic__factory.js.map +1 -1
  170. package/dist/nodejs/typechain/factories/contracts/Interfaces/IComptroller__factory.d.ts +108 -222
  171. package/dist/nodejs/typechain/factories/contracts/Interfaces/IComptroller__factory.js +135 -287
  172. package/dist/nodejs/typechain/factories/contracts/Interfaces/IComptroller__factory.js.map +1 -1
  173. package/dist/nodejs/typechain/factories/contracts/Interfaces/IPMarket__factory.d.ts +543 -0
  174. package/dist/nodejs/typechain/factories/contracts/Interfaces/IPMarket__factory.js +712 -0
  175. package/dist/nodejs/typechain/factories/contracts/Interfaces/IPMarket__factory.js.map +1 -0
  176. package/dist/nodejs/typechain/factories/contracts/Interfaces/IPPrincipalToken__factory.d.ts +265 -0
  177. package/dist/nodejs/typechain/factories/contracts/Interfaces/IPPrincipalToken__factory.js +356 -0
  178. package/dist/nodejs/typechain/factories/contracts/Interfaces/IPPrincipalToken__factory.js.map +1 -0
  179. package/dist/nodejs/typechain/factories/contracts/Interfaces/IPYieldToken__factory.d.ts +473 -0
  180. package/dist/nodejs/typechain/factories/contracts/Interfaces/IPYieldToken__factory.js +624 -0
  181. package/dist/nodejs/typechain/factories/contracts/Interfaces/IPYieldToken__factory.js.map +1 -0
  182. package/dist/nodejs/typechain/factories/contracts/Interfaces/IPendlePtOracle__factory.d.ts +51 -0
  183. package/dist/nodejs/typechain/factories/contracts/Interfaces/IPendlePtOracle__factory.js +78 -0
  184. package/dist/nodejs/typechain/factories/contracts/Interfaces/IPendlePtOracle__factory.js.map +1 -0
  185. package/dist/nodejs/typechain/factories/contracts/Interfaces/IStandardizedYield__factory.d.ts +493 -0
  186. package/dist/nodejs/typechain/factories/contracts/Interfaces/IStandardizedYield__factory.js +652 -0
  187. package/dist/nodejs/typechain/factories/contracts/Interfaces/IStandardizedYield__factory.js.map +1 -0
  188. package/dist/nodejs/typechain/factories/contracts/Interfaces/index.d.ts +5 -1
  189. package/dist/nodejs/typechain/factories/contracts/Interfaces/index.js +11 -3
  190. package/dist/nodejs/typechain/factories/contracts/Interfaces/index.js.map +1 -1
  191. package/dist/nodejs/typechain/factories/contracts/Oracle/FeedPriceOracle__factory.d.ts +398 -102
  192. package/dist/nodejs/typechain/factories/contracts/Oracle/FeedPriceOracle__factory.js +494 -110
  193. package/dist/nodejs/typechain/factories/contracts/Oracle/FeedPriceOracle__factory.js.map +1 -1
  194. package/dist/nodejs/typechain/factories/contracts/Oracle/PriceOracle.sol/PriceAdapter__factory.d.ts +17 -0
  195. package/dist/nodejs/typechain/factories/contracts/Oracle/PriceOracle.sol/PriceAdapter__factory.js +33 -0
  196. package/dist/nodejs/typechain/factories/contracts/Oracle/PriceOracle.sol/PriceAdapter__factory.js.map +1 -0
  197. package/dist/nodejs/typechain/factories/contracts/Oracle/PriceOracle.sol/PriceOracle__factory.d.ts +45 -0
  198. package/dist/nodejs/typechain/factories/contracts/Oracle/PriceOracle.sol/PriceOracle__factory.js +71 -0
  199. package/dist/nodejs/typechain/factories/contracts/Oracle/PriceOracle.sol/PriceOracle__factory.js.map +1 -0
  200. package/dist/nodejs/typechain/factories/contracts/Oracle/PriceOracle.sol/index.d.ts +2 -0
  201. package/dist/nodejs/typechain/factories/contracts/Oracle/PriceOracle.sol/index.js +11 -0
  202. package/dist/nodejs/typechain/factories/contracts/Oracle/PriceOracle.sol/index.js.map +1 -0
  203. package/dist/nodejs/typechain/factories/contracts/Oracle/WstETHAdapter.sol/IStETH__factory.d.ts +31 -0
  204. package/dist/nodejs/typechain/factories/contracts/Oracle/WstETHAdapter.sol/IStETH__factory.js +52 -0
  205. package/dist/nodejs/typechain/factories/contracts/Oracle/WstETHAdapter.sol/IStETH__factory.js.map +1 -0
  206. package/dist/nodejs/typechain/factories/contracts/Oracle/WstETHAdapter.sol/WstETHAdapter__factory.d.ts +44 -0
  207. package/dist/nodejs/typechain/factories/contracts/Oracle/WstETHAdapter.sol/WstETHAdapter__factory.js +69 -0
  208. package/dist/nodejs/typechain/factories/contracts/Oracle/WstETHAdapter.sol/WstETHAdapter__factory.js.map +1 -0
  209. package/dist/nodejs/typechain/factories/contracts/Oracle/WstETHAdapter.sol/index.d.ts +2 -0
  210. package/dist/nodejs/typechain/factories/contracts/Oracle/WstETHAdapter.sol/index.js +11 -0
  211. package/dist/nodejs/typechain/factories/contracts/Oracle/WstETHAdapter.sol/index.js.map +1 -0
  212. package/dist/nodejs/typechain/factories/contracts/Oracle/WstMTRGAdapter.sol/IWstMTRG__factory.d.ts +17 -0
  213. package/dist/nodejs/typechain/factories/contracts/Oracle/WstMTRGAdapter.sol/IWstMTRG__factory.js +33 -0
  214. package/dist/nodejs/typechain/factories/contracts/Oracle/WstMTRGAdapter.sol/IWstMTRG__factory.js.map +1 -0
  215. package/dist/nodejs/typechain/factories/contracts/Oracle/WstMTRGAdapter.sol/WstMTRGAdapter__factory.d.ts +44 -0
  216. package/dist/nodejs/typechain/factories/contracts/Oracle/WstMTRGAdapter.sol/WstMTRGAdapter__factory.js +69 -0
  217. package/dist/nodejs/typechain/factories/contracts/Oracle/WstMTRGAdapter.sol/WstMTRGAdapter__factory.js.map +1 -0
  218. package/dist/nodejs/typechain/factories/contracts/Oracle/WstMTRGAdapter.sol/index.d.ts +2 -0
  219. package/dist/nodejs/typechain/factories/contracts/Oracle/WstMTRGAdapter.sol/index.js +11 -0
  220. package/dist/nodejs/typechain/factories/contracts/Oracle/WstMTRGAdapter.sol/index.js.map +1 -0
  221. package/dist/nodejs/typechain/factories/contracts/Oracle/index.d.ts +3 -4
  222. package/dist/nodejs/typechain/factories/contracts/Oracle/index.js +4 -9
  223. package/dist/nodejs/typechain/factories/contracts/Oracle/index.js.map +1 -1
  224. package/dist/nodejs/typechain/factories/contracts/SumerErrors__factory.d.ts +9 -21
  225. package/dist/nodejs/typechain/factories/contracts/SumerErrors__factory.js +11 -26
  226. package/dist/nodejs/typechain/factories/contracts/SumerErrors__factory.js.map +1 -1
  227. package/dist/nodejs/typechain/factories/contracts/Timelock__factory.d.ts +29 -25
  228. package/dist/nodejs/typechain/factories/contracts/Timelock__factory.js +37 -31
  229. package/dist/nodejs/typechain/factories/contracts/Timelock__factory.js.map +1 -1
  230. package/dist/nodejs/typechain/factories/contracts/stake/VeSumer.sol/VeSumer__factory.d.ts +1 -1
  231. package/dist/nodejs/typechain/factories/contracts/stake/VeSumer.sol/VeSumer__factory.js +1 -1
  232. package/dist/nodejs/typechain/factories/contracts/stake/VeSumer.sol/VeSumer__factory.js.map +1 -1
  233. package/dist/nodejs/typechain/factories/index.d.ts +1 -0
  234. package/dist/nodejs/typechain/factories/index.js +2 -1
  235. package/dist/nodejs/typechain/factories/index.js.map +1 -1
  236. package/dist/nodejs/typechain/hardhat.d.ts +178 -70
  237. package/dist/nodejs/typechain/index.d.ts +26 -14
  238. package/dist/nodejs/typechain/index.js +25 -14
  239. package/dist/nodejs/typechain/index.js.map +1 -1
  240. package/package.json +1 -1
@@ -113,11 +113,6 @@ const _abi = [
113
113
  name: "ExpiredSignature",
114
114
  type: "error",
115
115
  },
116
- {
117
- inputs: [],
118
- name: "GroupIdMismatch",
119
- type: "error",
120
- },
121
116
  {
122
117
  inputs: [],
123
118
  name: "InsufficientCollateral",
@@ -138,6 +133,11 @@ const _abi = [
138
133
  name: "InvalidAmount",
139
134
  type: "error",
140
135
  },
136
+ {
137
+ inputs: [],
138
+ name: "InvalidBlockNumber",
139
+ type: "error",
140
+ },
141
141
  {
142
142
  inputs: [],
143
143
  name: "InvalidCloseFactor",
@@ -288,21 +288,11 @@ const _abi = [
288
288
  name: "NotSuToken",
289
289
  type: "error",
290
290
  },
291
- {
292
- inputs: [],
293
- name: "OneOfRedeemTokensAndRedeemAmountMustBeZero",
294
- type: "error",
295
- },
296
291
  {
297
292
  inputs: [],
298
293
  name: "OnlyAdmin",
299
294
  type: "error",
300
295
  },
301
- {
302
- inputs: [],
303
- name: "OnlyAdminOrCapper",
304
- type: "error",
305
- },
306
296
  {
307
297
  inputs: [],
308
298
  name: "OnlyAdminOrPauser",
@@ -338,11 +328,6 @@ const _abi = [
338
328
  name: "ProtectedMint_OnlyAllowAssetsInTheSameGroup",
339
329
  type: "error",
340
330
  },
341
- {
342
- inputs: [],
343
- name: "ProtocolIsPaused",
344
- type: "error",
345
- },
346
331
  {
347
332
  inputs: [],
348
333
  name: "RedeemMarketNotFresh",
@@ -373,11 +358,6 @@ const _abi = [
373
358
  name: "ReduceReservesMarketNotFresh",
374
359
  type: "error",
375
360
  },
376
- {
377
- inputs: [],
378
- name: "ReduceReservesOverflow",
379
- type: "error",
380
- },
381
361
  {
382
362
  inputs: [],
383
363
  name: "RepayBorrowMarketNotFresh",
@@ -449,29 +429,9 @@ const _abi = [
449
429
  type: "error",
450
430
  },
451
431
  {
452
- anonymous: false,
453
- inputs: [
454
- {
455
- indexed: false,
456
- internalType: "address",
457
- name: "cToken",
458
- type: "address",
459
- },
460
- {
461
- indexed: false,
462
- internalType: "string",
463
- name: "action",
464
- type: "string",
465
- },
466
- {
467
- indexed: false,
468
- internalType: "bool",
469
- name: "pauseState",
470
- type: "bool",
471
- },
472
- ],
473
- name: "ActionPaused",
474
- type: "event",
432
+ inputs: [],
433
+ name: "ZeroAddressNotAllowed",
434
+ type: "error",
475
435
  },
476
436
  {
477
437
  anonymous: false,
@@ -537,25 +497,6 @@ const _abi = [
537
497
  name: "MarketListed",
538
498
  type: "event",
539
499
  },
540
- {
541
- anonymous: false,
542
- inputs: [
543
- {
544
- indexed: false,
545
- internalType: "address",
546
- name: "oldAddress",
547
- type: "address",
548
- },
549
- {
550
- indexed: false,
551
- internalType: "address",
552
- name: "newAddress",
553
- type: "address",
554
- },
555
- ],
556
- name: "NewAccountLiquidity",
557
- type: "event",
558
- },
559
500
  {
560
501
  anonymous: false,
561
502
  inputs: [
@@ -565,47 +506,35 @@ const _abi = [
565
506
  name: "groupId",
566
507
  type: "uint8",
567
508
  },
568
- {
569
- indexed: true,
570
- internalType: "string",
571
- name: "groupName",
572
- type: "string",
573
- },
574
- {
575
- indexed: false,
576
- internalType: "uint256",
577
- name: "intraCRateMantissa",
578
- type: "uint256",
579
- },
580
509
  {
581
510
  indexed: false,
582
- internalType: "uint256",
583
- name: "intraMintRateMantissa",
584
- type: "uint256",
511
+ internalType: "uint16",
512
+ name: "intraCRatePercent",
513
+ type: "uint16",
585
514
  },
586
515
  {
587
516
  indexed: false,
588
- internalType: "uint256",
589
- name: "intraSuRateMantissa",
590
- type: "uint256",
517
+ internalType: "uint16",
518
+ name: "intraMintRatePercent",
519
+ type: "uint16",
591
520
  },
592
521
  {
593
522
  indexed: false,
594
- internalType: "uint256",
595
- name: "interCRateMantissa",
596
- type: "uint256",
523
+ internalType: "uint16",
524
+ name: "intraSuRatePercent",
525
+ type: "uint16",
597
526
  },
598
527
  {
599
528
  indexed: false,
600
- internalType: "uint256",
601
- name: "interSuRateMantissa",
602
- type: "uint256",
529
+ internalType: "uint16",
530
+ name: "interCRatePercent",
531
+ type: "uint16",
603
532
  },
604
533
  {
605
534
  indexed: false,
606
- internalType: "uint8",
607
- name: "assetsGroupNum",
608
- type: "uint8",
535
+ internalType: "uint16",
536
+ name: "interSuRatePercent",
537
+ type: "uint16",
609
538
  },
610
539
  ],
611
540
  name: "NewAssetGroup",
@@ -622,12 +551,18 @@ const _abi = [
622
551
  },
623
552
  {
624
553
  indexed: false,
625
- internalType: "uint256",
626
- name: "newBorrowCap",
627
- type: "uint256",
554
+ internalType: "uint120",
555
+ name: "borrowCap",
556
+ type: "uint120",
557
+ },
558
+ {
559
+ indexed: false,
560
+ internalType: "uint120",
561
+ name: "supplyCap",
562
+ type: "uint120",
628
563
  },
629
564
  ],
630
- name: "NewBorrowCap",
565
+ name: "NewCap",
631
566
  type: "event",
632
567
  },
633
568
  {
@@ -636,17 +571,17 @@ const _abi = [
636
571
  {
637
572
  indexed: false,
638
573
  internalType: "address",
639
- name: "oldBorrowCapGuardian",
574
+ name: "compLogic",
640
575
  type: "address",
641
576
  },
642
577
  {
643
578
  indexed: false,
644
579
  internalType: "address",
645
- name: "newBorrowCapGuardian",
580
+ name: "redemptionManager",
646
581
  type: "address",
647
582
  },
648
583
  ],
649
- name: "NewBorrowCapGuardian",
584
+ name: "NewDependencies",
650
585
  type: "event",
651
586
  },
652
587
  {
@@ -654,37 +589,36 @@ const _abi = [
654
589
  inputs: [
655
590
  {
656
591
  indexed: false,
657
- internalType: "uint256",
658
- name: "oldCloseFactorMantissa",
659
- type: "uint256",
592
+ internalType: "uint16",
593
+ name: "closeFactorPercent",
594
+ type: "uint16",
660
595
  },
661
596
  {
662
597
  indexed: false,
663
- internalType: "uint256",
664
- name: "newCloseFactorMantissa",
665
- type: "uint256",
598
+ internalType: "uint32",
599
+ name: "minCloseValue",
600
+ type: "uint32",
666
601
  },
667
- ],
668
- name: "NewCloseFactor",
669
- type: "event",
670
- },
671
- {
672
- anonymous: false,
673
- inputs: [
674
602
  {
675
603
  indexed: false,
676
- internalType: "address",
677
- name: "oldAddress",
678
- type: "address",
604
+ internalType: "uint32",
605
+ name: "minSuBorrowValue",
606
+ type: "uint32",
679
607
  },
680
608
  {
681
609
  indexed: false,
682
- internalType: "address",
683
- name: "newAddress",
684
- type: "address",
610
+ internalType: "uint32",
611
+ name: "minWaitBeforeLiquidatable",
612
+ type: "uint32",
613
+ },
614
+ {
615
+ indexed: false,
616
+ internalType: "uint8",
617
+ name: "largestGroupId",
618
+ type: "uint8",
685
619
  },
686
620
  ],
687
- name: "NewCompLogic",
621
+ name: "NewGlobalConfig",
688
622
  type: "event",
689
623
  },
690
624
  {
@@ -692,39 +626,21 @@ const _abi = [
692
626
  inputs: [
693
627
  {
694
628
  indexed: false,
695
- internalType: "uint256",
696
- name: "oldHeteroIncentive",
697
- type: "uint256",
698
- },
699
- {
700
- indexed: false,
701
- internalType: "uint256",
702
- name: "newHeteroIncentive",
703
- type: "uint256",
704
- },
705
- {
706
- indexed: false,
707
- internalType: "uint256",
708
- name: "oldHomoIncentive",
709
- type: "uint256",
710
- },
711
- {
712
- indexed: false,
713
- internalType: "uint256",
714
- name: "newHomoIncentive",
715
- type: "uint256",
629
+ internalType: "uint16",
630
+ name: "heteroPercent",
631
+ type: "uint16",
716
632
  },
717
633
  {
718
634
  indexed: false,
719
- internalType: "uint256",
720
- name: "oldSutokenIncentive",
721
- type: "uint256",
635
+ internalType: "uint64",
636
+ name: "homoPercent",
637
+ type: "uint64",
722
638
  },
723
639
  {
724
640
  indexed: false,
725
- internalType: "uint256",
726
- name: "newSutokenIncentive",
727
- type: "uint256",
641
+ internalType: "uint64",
642
+ name: "sutokenPercent",
643
+ type: "uint64",
728
644
  },
729
645
  ],
730
646
  name: "NewLiquidationIncentive",
@@ -735,56 +651,36 @@ const _abi = [
735
651
  inputs: [
736
652
  {
737
653
  indexed: false,
738
- internalType: "uint256",
739
- name: "oldValue",
740
- type: "uint256",
741
- },
742
- {
743
- indexed: false,
744
- internalType: "uint256",
745
- name: "newValue",
746
- type: "uint256",
654
+ internalType: "address",
655
+ name: "ctoken",
656
+ type: "address",
747
657
  },
748
- ],
749
- name: "NewMinCloseValue",
750
- type: "event",
751
- },
752
- {
753
- anonymous: false,
754
- inputs: [
755
658
  {
756
659
  indexed: false,
757
- internalType: "uint256",
758
- name: "oldValue",
759
- type: "uint256",
660
+ internalType: "bool",
661
+ name: "mintPaused",
662
+ type: "bool",
760
663
  },
761
664
  {
762
665
  indexed: false,
763
- internalType: "uint256",
764
- name: "newValue",
765
- type: "uint256",
666
+ internalType: "bool",
667
+ name: "borrowPaused",
668
+ type: "bool",
766
669
  },
767
- ],
768
- name: "NewMinSuBorrowValue",
769
- type: "event",
770
- },
771
- {
772
- anonymous: false,
773
- inputs: [
774
670
  {
775
671
  indexed: false,
776
- internalType: "uint48",
777
- name: "oldValue",
778
- type: "uint48",
672
+ internalType: "bool",
673
+ name: "transferPaused",
674
+ type: "bool",
779
675
  },
780
676
  {
781
677
  indexed: false,
782
- internalType: "uint48",
783
- name: "newValue",
784
- type: "uint48",
678
+ internalType: "bool",
679
+ name: "seizePaused",
680
+ type: "bool",
785
681
  },
786
682
  ],
787
- name: "NewMinWaitBeforeLiquidatable",
683
+ name: "NewPause",
788
684
  type: "event",
789
685
  },
790
686
  {
@@ -812,13 +708,7 @@ const _abi = [
812
708
  {
813
709
  indexed: false,
814
710
  internalType: "address",
815
- name: "oldPriceOracle",
816
- type: "address",
817
- },
818
- {
819
- indexed: false,
820
- internalType: "address",
821
- name: "newPriceOracle",
711
+ name: "priceOracle",
822
712
  type: "address",
823
713
  },
824
714
  ],
@@ -831,17 +721,11 @@ const _abi = [
831
721
  {
832
722
  indexed: false,
833
723
  internalType: "address",
834
- name: "oldAddress",
835
- type: "address",
836
- },
837
- {
838
- indexed: false,
839
- internalType: "address",
840
- name: "newAddress",
724
+ name: "timelock",
841
725
  type: "address",
842
726
  },
843
727
  ],
844
- name: "NewRedemptionManager",
728
+ name: "NewTimelock",
845
729
  type: "event",
846
730
  },
847
731
  {
@@ -853,12 +737,6 @@ const _abi = [
853
737
  name: "groupId",
854
738
  type: "uint8",
855
739
  },
856
- {
857
- indexed: false,
858
- internalType: "uint8",
859
- name: "equalAssetsGroupNum",
860
- type: "uint8",
861
- },
862
740
  ],
863
741
  name: "RemoveAssetGroup",
864
742
  type: "event",
@@ -938,28 +816,9 @@ const _abi = [
938
816
  name: "RoleRevoked",
939
817
  type: "event",
940
818
  },
941
- {
942
- anonymous: false,
943
- inputs: [
944
- {
945
- indexed: true,
946
- internalType: "address",
947
- name: "cToken",
948
- type: "address",
949
- },
950
- {
951
- indexed: false,
952
- internalType: "uint256",
953
- name: "amount",
954
- type: "uint256",
955
- },
956
- ],
957
- name: "SetMaxSupply",
958
- type: "event",
959
- },
960
819
  {
961
820
  inputs: [],
962
- name: "CAPPER_ROLE",
821
+ name: "DEFAULT_ADMIN_ROLE",
963
822
  outputs: [
964
823
  {
965
824
  internalType: "bytes32",
@@ -972,7 +831,7 @@ const _abi = [
972
831
  },
973
832
  {
974
833
  inputs: [],
975
- name: "COMP_LOGIC",
834
+ name: "PAUSER_ROLE",
976
835
  outputs: [
977
836
  {
978
837
  internalType: "bytes32",
@@ -984,92 +843,97 @@ const _abi = [
984
843
  type: "function",
985
844
  },
986
845
  {
987
- inputs: [],
988
- name: "DEFAULT_ADMIN_ROLE",
989
- outputs: [
846
+ inputs: [
990
847
  {
991
- internalType: "bytes32",
992
- name: "",
993
- type: "bytes32",
848
+ internalType: "address",
849
+ name: "cToken",
850
+ type: "address",
994
851
  },
995
- ],
996
- stateMutability: "view",
997
- type: "function",
998
- },
999
- {
1000
- inputs: [],
1001
- name: "PAUSER_ROLE",
1002
- outputs: [
1003
852
  {
1004
- internalType: "bytes32",
1005
- name: "",
1006
- type: "bytes32",
853
+ internalType: "bool",
854
+ name: "mintPaused",
855
+ type: "bool",
1007
856
  },
1008
- ],
1009
- stateMutability: "view",
1010
- type: "function",
1011
- },
1012
- {
1013
- inputs: [],
1014
- name: "_borrowGuardianPaused",
1015
- outputs: [
1016
857
  {
1017
858
  internalType: "bool",
1018
- name: "",
859
+ name: "borrowPaused",
860
+ type: "bool",
861
+ },
862
+ {
863
+ internalType: "bool",
864
+ name: "transferPaused",
865
+ type: "bool",
866
+ },
867
+ {
868
+ internalType: "bool",
869
+ name: "seizePaused",
1019
870
  type: "bool",
1020
871
  },
1021
872
  ],
1022
- stateMutability: "view",
873
+ name: "_pause",
874
+ outputs: [],
875
+ stateMutability: "nonpayable",
1023
876
  type: "function",
1024
877
  },
1025
878
  {
1026
- inputs: [],
1027
- name: "_getBorrowCapGuardian",
1028
- outputs: [
879
+ inputs: [
1029
880
  {
1030
- internalType: "address",
1031
- name: "",
1032
- type: "address",
881
+ internalType: "address[]",
882
+ name: "cTokens",
883
+ type: "address[]",
884
+ },
885
+ {
886
+ internalType: "uint120[]",
887
+ name: "borrowCaps",
888
+ type: "uint120[]",
889
+ },
890
+ {
891
+ internalType: "uint120[]",
892
+ name: "supplyCaps",
893
+ type: "uint120[]",
1033
894
  },
1034
895
  ],
1035
- stateMutability: "view",
1036
- type: "function",
1037
- },
1038
- {
1039
- inputs: [],
1040
- name: "_getPauseGuardian",
1041
- outputs: [
1042
- {
1043
- internalType: "address",
1044
- name: "",
1045
- type: "address",
1046
- },
1047
- ],
1048
- stateMutability: "view",
1049
- type: "function",
1050
- },
1051
- {
1052
- inputs: [],
1053
- name: "_mintGuardianPaused",
1054
- outputs: [
1055
- {
1056
- internalType: "bool",
1057
- name: "",
1058
- type: "bool",
1059
- },
1060
- ],
1061
- stateMutability: "view",
896
+ name: "_setCaps",
897
+ outputs: [],
898
+ stateMutability: "nonpayable",
1062
899
  type: "function",
1063
900
  },
1064
901
  {
1065
902
  inputs: [
1066
903
  {
1067
- internalType: "address",
1068
- name: "newBorrowCapGuardian",
1069
- type: "address",
904
+ components: [
905
+ {
906
+ internalType: "uint16",
907
+ name: "closeFactorPercent",
908
+ type: "uint16",
909
+ },
910
+ {
911
+ internalType: "uint32",
912
+ name: "minCloseValue",
913
+ type: "uint32",
914
+ },
915
+ {
916
+ internalType: "uint32",
917
+ name: "minSuBorrowValue",
918
+ type: "uint32",
919
+ },
920
+ {
921
+ internalType: "uint32",
922
+ name: "minWaitBeforeLiquidatable",
923
+ type: "uint32",
924
+ },
925
+ {
926
+ internalType: "uint8",
927
+ name: "largestGroupId",
928
+ type: "uint8",
929
+ },
930
+ ],
931
+ internalType: "struct GlobalConfig",
932
+ name: "globalConfig_",
933
+ type: "tuple",
1070
934
  },
1071
935
  ],
1072
- name: "_setBorrowCapGuardian",
936
+ name: "_setGlobalConfig",
1073
937
  outputs: [],
1074
938
  stateMutability: "nonpayable",
1075
939
  type: "function",
@@ -1077,141 +941,46 @@ const _abi = [
1077
941
  {
1078
942
  inputs: [
1079
943
  {
1080
- internalType: "contract ICToken",
1081
- name: "cToken",
944
+ internalType: "address",
945
+ name: "_governanceToken",
1082
946
  type: "address",
1083
947
  },
1084
- {
1085
- internalType: "bool",
1086
- name: "state",
1087
- type: "bool",
1088
- },
1089
- ],
1090
- name: "_setBorrowPaused",
1091
- outputs: [
1092
- {
1093
- internalType: "bool",
1094
- name: "",
1095
- type: "bool",
1096
- },
1097
- ],
1098
- stateMutability: "nonpayable",
1099
- type: "function",
1100
- },
1101
- {
1102
- inputs: [
1103
- {
1104
- internalType: "uint256",
1105
- name: "newCloseFactorMantissa",
1106
- type: "uint256",
1107
- },
1108
- ],
1109
- name: "_setCloseFactor",
1110
- outputs: [
1111
- {
1112
- internalType: "uint256",
1113
- name: "",
1114
- type: "uint256",
1115
- },
1116
948
  ],
949
+ name: "_setGovTokenAddress",
950
+ outputs: [],
1117
951
  stateMutability: "nonpayable",
1118
952
  type: "function",
1119
953
  },
1120
954
  {
1121
955
  inputs: [
1122
956
  {
1123
- internalType: "uint256",
1124
- name: "newHeteroLiquidationIncentiveMantissa",
1125
- type: "uint256",
1126
- },
1127
- {
1128
- internalType: "uint256",
1129
- name: "newHomoLiquidationIncentiveMantissa",
1130
- type: "uint256",
1131
- },
1132
- {
1133
- internalType: "uint256",
1134
- name: "newSutokenLiquidationIncentiveMantissa",
1135
- type: "uint256",
957
+ components: [
958
+ {
959
+ internalType: "uint16",
960
+ name: "heteroPercent",
961
+ type: "uint16",
962
+ },
963
+ {
964
+ internalType: "uint16",
965
+ name: "homoPercent",
966
+ type: "uint16",
967
+ },
968
+ {
969
+ internalType: "uint16",
970
+ name: "sutokenPercent",
971
+ type: "uint16",
972
+ },
973
+ ],
974
+ internalType: "struct LiquidationIncentive",
975
+ name: "liquidationIncentive_",
976
+ type: "tuple",
1136
977
  },
1137
978
  ],
1138
979
  name: "_setLiquidationIncentive",
1139
- outputs: [
1140
- {
1141
- internalType: "uint256",
1142
- name: "",
1143
- type: "uint256",
1144
- },
1145
- ],
1146
- stateMutability: "nonpayable",
1147
- type: "function",
1148
- },
1149
- {
1150
- inputs: [
1151
- {
1152
- internalType: "contract ICToken[]",
1153
- name: "cTokens",
1154
- type: "address[]",
1155
- },
1156
- {
1157
- internalType: "uint256[]",
1158
- name: "newBorrowCaps",
1159
- type: "uint256[]",
1160
- },
1161
- ],
1162
- name: "_setMarketBorrowCaps",
1163
980
  outputs: [],
1164
981
  stateMutability: "nonpayable",
1165
982
  type: "function",
1166
983
  },
1167
- {
1168
- inputs: [
1169
- {
1170
- internalType: "contract ICToken[]",
1171
- name: "cTokens",
1172
- type: "address[]",
1173
- },
1174
- {
1175
- internalType: "uint256[]",
1176
- name: "newMaxSupplys",
1177
- type: "uint256[]",
1178
- },
1179
- ],
1180
- name: "_setMaxSupply",
1181
- outputs: [
1182
- {
1183
- internalType: "uint256",
1184
- name: "",
1185
- type: "uint256",
1186
- },
1187
- ],
1188
- stateMutability: "nonpayable",
1189
- type: "function",
1190
- },
1191
- {
1192
- inputs: [
1193
- {
1194
- internalType: "contract ICToken",
1195
- name: "cToken",
1196
- type: "address",
1197
- },
1198
- {
1199
- internalType: "bool",
1200
- name: "state",
1201
- type: "bool",
1202
- },
1203
- ],
1204
- name: "_setMintPaused",
1205
- outputs: [
1206
- {
1207
- internalType: "bool",
1208
- name: "",
1209
- type: "bool",
1210
- },
1211
- ],
1212
- stateMutability: "nonpayable",
1213
- type: "function",
1214
- },
1215
984
  {
1216
985
  inputs: [
1217
986
  {
@@ -1221,89 +990,33 @@ const _abi = [
1221
990
  },
1222
991
  ],
1223
992
  name: "_setPauseGuardian",
1224
- outputs: [
1225
- {
1226
- internalType: "uint256",
1227
- name: "",
1228
- type: "uint256",
1229
- },
1230
- ],
993
+ outputs: [],
1231
994
  stateMutability: "nonpayable",
1232
995
  type: "function",
1233
996
  },
1234
997
  {
1235
998
  inputs: [
1236
999
  {
1237
- internalType: "contract IPriceOracle",
1238
- name: "newOracle",
1000
+ internalType: "address",
1001
+ name: "_oracle",
1239
1002
  type: "address",
1240
1003
  },
1241
1004
  ],
1242
1005
  name: "_setPriceOracle",
1243
- outputs: [
1244
- {
1245
- internalType: "uint256",
1246
- name: "",
1247
- type: "uint256",
1248
- },
1249
- ],
1250
- stateMutability: "nonpayable",
1251
- type: "function",
1252
- },
1253
- {
1254
- inputs: [
1255
- {
1256
- internalType: "bool",
1257
- name: "state",
1258
- type: "bool",
1259
- },
1260
- ],
1261
- name: "_setProtocolPaused",
1262
- outputs: [
1263
- {
1264
- internalType: "bool",
1265
- name: "",
1266
- type: "bool",
1267
- },
1268
- ],
1269
- stateMutability: "nonpayable",
1270
- type: "function",
1271
- },
1272
- {
1273
- inputs: [
1274
- {
1275
- internalType: "bool",
1276
- name: "state",
1277
- type: "bool",
1278
- },
1279
- ],
1280
- name: "_setSeizePaused",
1281
- outputs: [
1282
- {
1283
- internalType: "bool",
1284
- name: "",
1285
- type: "bool",
1286
- },
1287
- ],
1006
+ outputs: [],
1288
1007
  stateMutability: "nonpayable",
1289
1008
  type: "function",
1290
1009
  },
1291
1010
  {
1292
1011
  inputs: [
1293
1012
  {
1294
- internalType: "bool",
1295
- name: "state",
1296
- type: "bool",
1297
- },
1298
- ],
1299
- name: "_setTransferPaused",
1300
- outputs: [
1301
- {
1302
- internalType: "bool",
1303
- name: "",
1304
- type: "bool",
1013
+ internalType: "address",
1014
+ name: "_timelock",
1015
+ type: "address",
1305
1016
  },
1306
1017
  ],
1018
+ name: "_setTimelock",
1019
+ outputs: [],
1307
1020
  stateMutability: "nonpayable",
1308
1021
  type: "function",
1309
1022
  },
@@ -1320,24 +1033,18 @@ const _abi = [
1320
1033
  type: "uint8",
1321
1034
  },
1322
1035
  {
1323
- internalType: "uint256",
1036
+ internalType: "uint120",
1324
1037
  name: "borrowCap",
1325
- type: "uint256",
1038
+ type: "uint120",
1326
1039
  },
1327
1040
  {
1328
- internalType: "uint256",
1041
+ internalType: "uint120",
1329
1042
  name: "supplyCap",
1330
- type: "uint256",
1043
+ type: "uint120",
1331
1044
  },
1332
1045
  ],
1333
1046
  name: "_supportMarket",
1334
- outputs: [
1335
- {
1336
- internalType: "uint256",
1337
- name: "",
1338
- type: "uint256",
1339
- },
1340
- ],
1047
+ outputs: [],
1341
1048
  stateMutability: "nonpayable",
1342
1049
  type: "function",
1343
1050
  },
@@ -1365,19 +1072,6 @@ const _abi = [
1365
1072
  stateMutability: "view",
1366
1073
  type: "function",
1367
1074
  },
1368
- {
1369
- inputs: [],
1370
- name: "accountLiquidity",
1371
- outputs: [
1372
- {
1373
- internalType: "contract IAccountLiquidity",
1374
- name: "",
1375
- type: "address",
1376
- },
1377
- ],
1378
- stateMutability: "view",
1379
- type: "function",
1380
- },
1381
1075
  {
1382
1076
  inputs: [
1383
1077
  {
@@ -1391,418 +1085,7 @@ const _abi = [
1391
1085
  {
1392
1086
  internalType: "address",
1393
1087
  name: "",
1394
- type: "address",
1395
- },
1396
- ],
1397
- stateMutability: "view",
1398
- type: "function",
1399
- },
1400
- {
1401
- inputs: [
1402
- {
1403
- internalType: "uint8",
1404
- name: "",
1405
- type: "uint8",
1406
- },
1407
- ],
1408
- name: "assetGroupIdToIndex",
1409
- outputs: [
1410
- {
1411
- internalType: "uint8",
1412
- name: "",
1413
- type: "uint8",
1414
- },
1415
- ],
1416
- stateMutability: "view",
1417
- type: "function",
1418
- },
1419
- {
1420
- inputs: [
1421
- {
1422
- internalType: "address",
1423
- name: "cToken",
1424
- type: "address",
1425
- },
1426
- {
1427
- internalType: "address",
1428
- name: "borrower",
1429
- type: "address",
1430
- },
1431
- {
1432
- internalType: "uint256",
1433
- name: "borrowAmount",
1434
- type: "uint256",
1435
- },
1436
- ],
1437
- name: "borrowAllowed",
1438
- outputs: [],
1439
- stateMutability: "nonpayable",
1440
- type: "function",
1441
- },
1442
- {
1443
- inputs: [],
1444
- name: "borrowCapGuardian",
1445
- outputs: [
1446
- {
1447
- internalType: "address",
1448
- name: "",
1449
- type: "address",
1450
- },
1451
- ],
1452
- stateMutability: "view",
1453
- type: "function",
1454
- },
1455
- {
1456
- inputs: [
1457
- {
1458
- internalType: "address",
1459
- name: "",
1460
- type: "address",
1461
- },
1462
- ],
1463
- name: "borrowCaps",
1464
- outputs: [
1465
- {
1466
- internalType: "uint256",
1467
- name: "",
1468
- type: "uint256",
1469
- },
1470
- ],
1471
- stateMutability: "view",
1472
- type: "function",
1473
- },
1474
- {
1475
- inputs: [
1476
- {
1477
- internalType: "address",
1478
- name: "",
1479
- type: "address",
1480
- },
1481
- ],
1482
- name: "borrowGuardianPaused",
1483
- outputs: [
1484
- {
1485
- internalType: "bool",
1486
- name: "",
1487
- type: "bool",
1488
- },
1489
- ],
1490
- stateMutability: "view",
1491
- type: "function",
1492
- },
1493
- {
1494
- inputs: [
1495
- {
1496
- internalType: "address",
1497
- name: "borrower",
1498
- type: "address",
1499
- },
1500
- {
1501
- internalType: "uint256",
1502
- name: "borrowAmount",
1503
- type: "uint256",
1504
- },
1505
- ],
1506
- name: "borrowVerify",
1507
- outputs: [],
1508
- stateMutability: "nonpayable",
1509
- type: "function",
1510
- },
1511
- {
1512
- inputs: [
1513
- {
1514
- internalType: "address",
1515
- name: "account",
1516
- type: "address",
1517
- },
1518
- {
1519
- internalType: "address",
1520
- name: "cToken",
1521
- type: "address",
1522
- },
1523
- ],
1524
- name: "checkMembership",
1525
- outputs: [
1526
- {
1527
- internalType: "bool",
1528
- name: "",
1529
- type: "bool",
1530
- },
1531
- ],
1532
- stateMutability: "view",
1533
- type: "function",
1534
- },
1535
- {
1536
- inputs: [],
1537
- name: "cleanAssetGroup",
1538
- outputs: [],
1539
- stateMutability: "nonpayable",
1540
- type: "function",
1541
- },
1542
- {
1543
- inputs: [],
1544
- name: "closeFactorMantissa",
1545
- outputs: [
1546
- {
1547
- internalType: "uint256",
1548
- name: "",
1549
- type: "uint256",
1550
- },
1551
- ],
1552
- stateMutability: "view",
1553
- type: "function",
1554
- },
1555
- {
1556
- inputs: [],
1557
- name: "compLogic",
1558
- outputs: [
1559
- {
1560
- internalType: "contract ICompLogic",
1561
- name: "",
1562
- type: "address",
1563
- },
1564
- ],
1565
- stateMutability: "view",
1566
- type: "function",
1567
- },
1568
- {
1569
- inputs: [
1570
- {
1571
- internalType: "address[]",
1572
- name: "cTokens",
1573
- type: "address[]",
1574
- },
1575
- ],
1576
- name: "enterMarkets",
1577
- outputs: [
1578
- {
1579
- internalType: "uint256[]",
1580
- name: "",
1581
- type: "uint256[]",
1582
- },
1583
- ],
1584
- stateMutability: "nonpayable",
1585
- type: "function",
1586
- },
1587
- {
1588
- inputs: [
1589
- {
1590
- internalType: "address[]",
1591
- name: "accounts",
1592
- type: "address[]",
1593
- },
1594
- ],
1595
- name: "enterMarketsForAll",
1596
- outputs: [],
1597
- stateMutability: "nonpayable",
1598
- type: "function",
1599
- },
1600
- {
1601
- inputs: [
1602
- {
1603
- internalType: "address",
1604
- name: "cTokenAddress",
1605
- type: "address",
1606
- },
1607
- ],
1608
- name: "exitMarket",
1609
- outputs: [
1610
- {
1611
- internalType: "uint256",
1612
- name: "",
1613
- type: "uint256",
1614
- },
1615
- ],
1616
- stateMutability: "nonpayable",
1617
- type: "function",
1618
- },
1619
- {
1620
- inputs: [
1621
- {
1622
- internalType: "address",
1623
- name: "account",
1624
- type: "address",
1625
- },
1626
- ],
1627
- name: "getAccountLiquidity",
1628
- outputs: [
1629
- {
1630
- internalType: "uint256",
1631
- name: "",
1632
- type: "uint256",
1633
- },
1634
- {
1635
- internalType: "uint256",
1636
- name: "",
1637
- type: "uint256",
1638
- },
1639
- {
1640
- internalType: "uint256",
1641
- name: "",
1642
- type: "uint256",
1643
- },
1644
- ],
1645
- stateMutability: "view",
1646
- type: "function",
1647
- },
1648
- {
1649
- inputs: [
1650
- {
1651
- internalType: "address",
1652
- name: "account",
1653
- type: "address",
1654
- },
1655
- {
1656
- internalType: "address",
1657
- name: "cTokenTarget",
1658
- type: "address",
1659
- },
1660
- {
1661
- internalType: "uint256",
1662
- name: "intraSafeLimitMantissa",
1663
- type: "uint256",
1664
- },
1665
- {
1666
- internalType: "uint256",
1667
- name: "interSafeLimitMantissa",
1668
- type: "uint256",
1669
- },
1670
- ],
1671
- name: "getAccountSafeLimit",
1672
- outputs: [
1673
- {
1674
- internalType: "uint256",
1675
- name: "",
1676
- type: "uint256",
1677
- },
1678
- ],
1679
- stateMutability: "view",
1680
- type: "function",
1681
- },
1682
- {
1683
- inputs: [],
1684
- name: "getAllAssetGroup",
1685
- outputs: [
1686
- {
1687
- components: [
1688
- {
1689
- internalType: "uint8",
1690
- name: "groupId",
1691
- type: "uint8",
1692
- },
1693
- {
1694
- internalType: "string",
1695
- name: "groupName",
1696
- type: "string",
1697
- },
1698
- {
1699
- internalType: "uint256",
1700
- name: "intraCRateMantissa",
1701
- type: "uint256",
1702
- },
1703
- {
1704
- internalType: "uint256",
1705
- name: "intraMintRateMantissa",
1706
- type: "uint256",
1707
- },
1708
- {
1709
- internalType: "uint256",
1710
- name: "intraSuRateMantissa",
1711
- type: "uint256",
1712
- },
1713
- {
1714
- internalType: "uint256",
1715
- name: "interCRateMantissa",
1716
- type: "uint256",
1717
- },
1718
- {
1719
- internalType: "uint256",
1720
- name: "interSuRateMantissa",
1721
- type: "uint256",
1722
- },
1723
- {
1724
- internalType: "bool",
1725
- name: "exist",
1726
- type: "bool",
1727
- },
1728
- ],
1729
- internalType: "struct IComptroller.AssetGroup[]",
1730
- name: "",
1731
- type: "tuple[]",
1732
- },
1733
- ],
1734
- stateMutability: "view",
1735
- type: "function",
1736
- },
1737
- {
1738
- inputs: [],
1739
- name: "getAllMarkets",
1740
- outputs: [
1741
- {
1742
- internalType: "address[]",
1743
- name: "",
1744
- type: "address[]",
1745
- },
1746
- ],
1747
- stateMutability: "view",
1748
- type: "function",
1749
- },
1750
- {
1751
- inputs: [
1752
- {
1753
- internalType: "uint8",
1754
- name: "groupId",
1755
- type: "uint8",
1756
- },
1757
- ],
1758
- name: "getAssetGroup",
1759
- outputs: [
1760
- {
1761
- components: [
1762
- {
1763
- internalType: "uint8",
1764
- name: "groupId",
1765
- type: "uint8",
1766
- },
1767
- {
1768
- internalType: "string",
1769
- name: "groupName",
1770
- type: "string",
1771
- },
1772
- {
1773
- internalType: "uint256",
1774
- name: "intraCRateMantissa",
1775
- type: "uint256",
1776
- },
1777
- {
1778
- internalType: "uint256",
1779
- name: "intraMintRateMantissa",
1780
- type: "uint256",
1781
- },
1782
- {
1783
- internalType: "uint256",
1784
- name: "intraSuRateMantissa",
1785
- type: "uint256",
1786
- },
1787
- {
1788
- internalType: "uint256",
1789
- name: "interCRateMantissa",
1790
- type: "uint256",
1791
- },
1792
- {
1793
- internalType: "uint256",
1794
- name: "interSuRateMantissa",
1795
- type: "uint256",
1796
- },
1797
- {
1798
- internalType: "bool",
1799
- name: "exist",
1800
- type: "bool",
1801
- },
1802
- ],
1803
- internalType: "struct IComptroller.AssetGroup",
1804
- name: "",
1805
- type: "tuple",
1088
+ type: "address",
1806
1089
  },
1807
1090
  ],
1808
1091
  stateMutability: "view",
@@ -1812,90 +1095,95 @@ const _abi = [
1812
1095
  inputs: [
1813
1096
  {
1814
1097
  internalType: "uint8",
1815
- name: "groupIndex",
1098
+ name: "",
1816
1099
  type: "uint8",
1817
1100
  },
1818
1101
  ],
1819
- name: "getAssetGroupByIndex",
1102
+ name: "assetGroup",
1820
1103
  outputs: [
1821
1104
  {
1822
- components: [
1823
- {
1824
- internalType: "uint8",
1825
- name: "groupId",
1826
- type: "uint8",
1827
- },
1828
- {
1829
- internalType: "string",
1830
- name: "groupName",
1831
- type: "string",
1832
- },
1833
- {
1834
- internalType: "uint256",
1835
- name: "intraCRateMantissa",
1836
- type: "uint256",
1837
- },
1838
- {
1839
- internalType: "uint256",
1840
- name: "intraMintRateMantissa",
1841
- type: "uint256",
1842
- },
1843
- {
1844
- internalType: "uint256",
1845
- name: "intraSuRateMantissa",
1846
- type: "uint256",
1847
- },
1848
- {
1849
- internalType: "uint256",
1850
- name: "interCRateMantissa",
1851
- type: "uint256",
1852
- },
1853
- {
1854
- internalType: "uint256",
1855
- name: "interSuRateMantissa",
1856
- type: "uint256",
1857
- },
1858
- {
1859
- internalType: "bool",
1860
- name: "exist",
1861
- type: "bool",
1862
- },
1863
- ],
1864
- internalType: "struct IComptroller.AssetGroup",
1865
- name: "",
1866
- type: "tuple",
1105
+ internalType: "uint8",
1106
+ name: "groupId",
1107
+ type: "uint8",
1108
+ },
1109
+ {
1110
+ internalType: "uint16",
1111
+ name: "intraCRatePercent",
1112
+ type: "uint16",
1113
+ },
1114
+ {
1115
+ internalType: "uint16",
1116
+ name: "intraMintRatePercent",
1117
+ type: "uint16",
1118
+ },
1119
+ {
1120
+ internalType: "uint16",
1121
+ name: "intraSuRatePercent",
1122
+ type: "uint16",
1123
+ },
1124
+ {
1125
+ internalType: "uint16",
1126
+ name: "interCRatePercent",
1127
+ type: "uint16",
1128
+ },
1129
+ {
1130
+ internalType: "uint16",
1131
+ name: "interSuRatePercent",
1132
+ type: "uint16",
1867
1133
  },
1868
1134
  ],
1869
1135
  stateMutability: "view",
1870
1136
  type: "function",
1871
1137
  },
1872
1138
  {
1873
- inputs: [],
1874
- name: "getAssetGroupNum",
1875
- outputs: [
1139
+ inputs: [
1876
1140
  {
1877
- internalType: "uint8",
1878
- name: "",
1879
- type: "uint8",
1141
+ internalType: "address",
1142
+ name: "cToken",
1143
+ type: "address",
1144
+ },
1145
+ {
1146
+ internalType: "address",
1147
+ name: "borrower",
1148
+ type: "address",
1149
+ },
1150
+ {
1151
+ internalType: "uint256",
1152
+ name: "borrowAmount",
1153
+ type: "uint256",
1880
1154
  },
1881
1155
  ],
1882
- stateMutability: "view",
1156
+ name: "borrowAllowed",
1157
+ outputs: [],
1158
+ stateMutability: "nonpayable",
1883
1159
  type: "function",
1884
1160
  },
1885
1161
  {
1886
1162
  inputs: [
1887
1163
  {
1888
1164
  internalType: "address",
1889
- name: "account",
1165
+ name: "borrower",
1890
1166
  type: "address",
1891
1167
  },
1168
+ {
1169
+ internalType: "uint256",
1170
+ name: "borrowAmount",
1171
+ type: "uint256",
1172
+ },
1892
1173
  ],
1893
- name: "getAssetsIn",
1174
+ name: "borrowVerify",
1175
+ outputs: [],
1176
+ stateMutability: "nonpayable",
1177
+ type: "function",
1178
+ },
1179
+ {
1180
+ inputs: [],
1181
+ name: "compLogic",
1894
1182
  outputs: [
1895
1183
  {
1896
- internalType: "address[]",
1184
+ internalType: "contract ICompLogic",
1897
1185
  name: "",
1898
- type: "address[]",
1186
+ type: "address",
1899
1187
  },
1900
1188
  ],
1901
1189
  stateMutability: "view",
@@ -1904,37 +1192,58 @@ const _abi = [
1904
1192
  {
1905
1193
  inputs: [
1906
1194
  {
1907
- internalType: "address",
1908
- name: "collateralToken",
1909
- type: "address",
1195
+ internalType: "address[]",
1196
+ name: "cTokens",
1197
+ type: "address[]",
1910
1198
  },
1199
+ ],
1200
+ name: "enterMarkets",
1201
+ outputs: [],
1202
+ stateMutability: "nonpayable",
1203
+ type: "function",
1204
+ },
1205
+ {
1206
+ inputs: [
1911
1207
  {
1912
1208
  internalType: "address",
1913
- name: "liabilityToken",
1209
+ name: "cTokenAddress",
1914
1210
  type: "address",
1915
1211
  },
1916
1212
  ],
1917
- name: "getCollateralRate",
1213
+ name: "exitMarket",
1214
+ outputs: [],
1215
+ stateMutability: "nonpayable",
1216
+ type: "function",
1217
+ },
1218
+ {
1219
+ inputs: [],
1220
+ name: "getAllMarkets",
1918
1221
  outputs: [
1919
1222
  {
1920
- internalType: "uint256",
1223
+ internalType: "address[]",
1921
1224
  name: "",
1922
- type: "uint256",
1225
+ type: "address[]",
1923
1226
  },
1924
1227
  ],
1925
1228
  stateMutability: "view",
1926
1229
  type: "function",
1927
1230
  },
1928
1231
  {
1929
- inputs: [],
1930
- name: "getCompAddress",
1931
- outputs: [
1232
+ inputs: [
1932
1233
  {
1933
1234
  internalType: "address",
1934
- name: "",
1235
+ name: "account",
1935
1236
  type: "address",
1936
1237
  },
1937
1238
  ],
1239
+ name: "getAssetsIn",
1240
+ outputs: [
1241
+ {
1242
+ internalType: "address[]",
1243
+ name: "",
1244
+ type: "address[]",
1245
+ },
1246
+ ],
1938
1247
  stateMutability: "view",
1939
1248
  type: "function",
1940
1249
  },
@@ -1973,11 +1282,6 @@ const _abi = [
1973
1282
  name: "",
1974
1283
  type: "uint256",
1975
1284
  },
1976
- {
1977
- internalType: "uint256",
1978
- name: "",
1979
- type: "uint256",
1980
- },
1981
1285
  ],
1982
1286
  stateMutability: "view",
1983
1287
  type: "function",
@@ -2003,37 +1307,13 @@ const _abi = [
2003
1307
  },
2004
1308
  {
2005
1309
  inputs: [
2006
- {
2007
- internalType: "bytes32",
2008
- name: "role",
2009
- type: "bytes32",
2010
- },
2011
- {
2012
- internalType: "uint256",
2013
- name: "index",
2014
- type: "uint256",
2015
- },
2016
- ],
2017
- name: "getRoleMember",
2018
- outputs: [
2019
1310
  {
2020
1311
  internalType: "address",
2021
- name: "",
1312
+ name: "cToken",
2022
1313
  type: "address",
2023
1314
  },
2024
1315
  ],
2025
- stateMutability: "view",
2026
- type: "function",
2027
- },
2028
- {
2029
- inputs: [
2030
- {
2031
- internalType: "bytes32",
2032
- name: "role",
2033
- type: "bytes32",
2034
- },
2035
- ],
2036
- name: "getRoleMemberCount",
1316
+ name: "getUnderlyingPriceNormalized",
2037
1317
  outputs: [
2038
1318
  {
2039
1319
  internalType: "uint256",
@@ -2045,19 +1325,33 @@ const _abi = [
2045
1325
  type: "function",
2046
1326
  },
2047
1327
  {
2048
- inputs: [
1328
+ inputs: [],
1329
+ name: "globalConfig",
1330
+ outputs: [
2049
1331
  {
2050
- internalType: "address",
2051
- name: "cToken",
2052
- type: "address",
1332
+ internalType: "uint16",
1333
+ name: "closeFactorPercent",
1334
+ type: "uint16",
2053
1335
  },
2054
- ],
2055
- name: "getUnderlyingPriceNormalized",
2056
- outputs: [
2057
1336
  {
2058
- internalType: "uint256",
2059
- name: "",
2060
- type: "uint256",
1337
+ internalType: "uint32",
1338
+ name: "minCloseValue",
1339
+ type: "uint32",
1340
+ },
1341
+ {
1342
+ internalType: "uint32",
1343
+ name: "minSuBorrowValue",
1344
+ type: "uint32",
1345
+ },
1346
+ {
1347
+ internalType: "uint32",
1348
+ name: "minWaitBeforeLiquidatable",
1349
+ type: "uint32",
1350
+ },
1351
+ {
1352
+ internalType: "uint8",
1353
+ name: "largestGroupId",
1354
+ type: "uint8",
2061
1355
  },
2062
1356
  ],
2063
1357
  stateMutability: "view",
@@ -2118,32 +1412,6 @@ const _abi = [
2118
1412
  stateMutability: "view",
2119
1413
  type: "function",
2120
1414
  },
2121
- {
2122
- inputs: [],
2123
- name: "heteroLiquidationIncentiveMantissa",
2124
- outputs: [
2125
- {
2126
- internalType: "uint256",
2127
- name: "",
2128
- type: "uint256",
2129
- },
2130
- ],
2131
- stateMutability: "view",
2132
- type: "function",
2133
- },
2134
- {
2135
- inputs: [],
2136
- name: "homoLiquidationIncentiveMantissa",
2137
- outputs: [
2138
- {
2139
- internalType: "uint256",
2140
- name: "",
2141
- type: "uint256",
2142
- },
2143
- ],
2144
- stateMutability: "view",
2145
- type: "function",
2146
- },
2147
1415
  {
2148
1416
  inputs: [
2149
1417
  {
@@ -2151,45 +1419,30 @@ const _abi = [
2151
1419
  name: "_admin",
2152
1420
  type: "address",
2153
1421
  },
2154
- {
2155
- internalType: "contract IPriceOracle",
2156
- name: "_oracle",
2157
- type: "address",
2158
- },
2159
1422
  {
2160
1423
  internalType: "address",
2161
1424
  name: "_gov",
2162
1425
  type: "address",
2163
1426
  },
2164
1427
  {
2165
- internalType: "contract ICompLogic",
1428
+ internalType: "address",
2166
1429
  name: "_compLogic",
2167
1430
  type: "address",
2168
1431
  },
2169
1432
  {
2170
- internalType: "contract IAccountLiquidity",
2171
- name: "_accountLiquidity",
1433
+ internalType: "address",
1434
+ name: "_redemptionManager",
2172
1435
  type: "address",
2173
1436
  },
2174
1437
  {
2175
- internalType: "uint256",
2176
- name: "_closeFactorMantissa",
2177
- type: "uint256",
2178
- },
2179
- {
2180
- internalType: "uint256",
2181
- name: "_heteroLiquidationIncentiveMantissa",
2182
- type: "uint256",
2183
- },
2184
- {
2185
- internalType: "uint256",
2186
- name: "_homoLiquidationIncentiveMantissa",
2187
- type: "uint256",
1438
+ internalType: "address",
1439
+ name: "_timelock",
1440
+ type: "address",
2188
1441
  },
2189
1442
  {
2190
- internalType: "uint256",
2191
- name: "_sutokenLiquidationIncentiveMantissa",
2192
- type: "uint256",
1443
+ internalType: "address",
1444
+ name: "_oracle",
1445
+ type: "address",
2193
1446
  },
2194
1447
  ],
2195
1448
  name: "initialize",
@@ -2283,22 +1536,22 @@ const _abi = [
2283
1536
  },
2284
1537
  {
2285
1538
  inputs: [],
2286
- name: "liquidationIncentiveMantissa",
1539
+ name: "liquidationIncentive",
2287
1540
  outputs: [
2288
1541
  {
2289
- internalType: "uint256",
2290
- name: "",
2291
- type: "uint256",
1542
+ internalType: "uint16",
1543
+ name: "heteroPercent",
1544
+ type: "uint16",
2292
1545
  },
2293
1546
  {
2294
- internalType: "uint256",
2295
- name: "",
2296
- type: "uint256",
1547
+ internalType: "uint16",
1548
+ name: "homoPercent",
1549
+ type: "uint16",
2297
1550
  },
2298
1551
  {
2299
- internalType: "uint256",
2300
- name: "",
2301
- type: "uint256",
1552
+ internalType: "uint16",
1553
+ name: "sutokenPercent",
1554
+ type: "uint16",
2302
1555
  },
2303
1556
  ],
2304
1557
  stateMutability: "view",
@@ -2308,45 +1561,41 @@ const _abi = [
2308
1561
  inputs: [
2309
1562
  {
2310
1563
  internalType: "address",
2311
- name: "asset",
1564
+ name: "",
2312
1565
  type: "address",
2313
1566
  },
2314
1567
  ],
2315
- name: "marketGroupId",
1568
+ name: "marketConfig",
2316
1569
  outputs: [
2317
1570
  {
2318
- internalType: "uint8",
2319
- name: "",
2320
- type: "uint8",
1571
+ internalType: "bool",
1572
+ name: "mintPaused",
1573
+ type: "bool",
2321
1574
  },
2322
- ],
2323
- stateMutability: "view",
2324
- type: "function",
2325
- },
2326
- {
2327
- inputs: [
2328
1575
  {
2329
- internalType: "address",
2330
- name: "",
2331
- type: "address",
1576
+ internalType: "bool",
1577
+ name: "borrowPaused",
1578
+ type: "bool",
2332
1579
  },
2333
- ],
2334
- name: "markets",
2335
- outputs: [
2336
1580
  {
2337
1581
  internalType: "bool",
2338
- name: "isListed",
1582
+ name: "transferPaused",
1583
+ type: "bool",
1584
+ },
1585
+ {
1586
+ internalType: "bool",
1587
+ name: "seizePaused",
2339
1588
  type: "bool",
2340
1589
  },
2341
1590
  {
2342
- internalType: "uint8",
2343
- name: "assetGroupId",
2344
- type: "uint8",
1591
+ internalType: "uint120",
1592
+ name: "borrowCap",
1593
+ type: "uint120",
2345
1594
  },
2346
1595
  {
2347
- internalType: "bool",
2348
- name: "isComped",
2349
- type: "bool",
1596
+ internalType: "uint120",
1597
+ name: "supplyCap",
1598
+ type: "uint120",
2350
1599
  },
2351
1600
  ],
2352
1601
  stateMutability: "view",
@@ -2360,51 +1609,22 @@ const _abi = [
2360
1609
  type: "address",
2361
1610
  },
2362
1611
  ],
2363
- name: "maxSupply",
2364
- outputs: [
2365
- {
2366
- internalType: "uint256",
2367
- name: "",
2368
- type: "uint256",
2369
- },
2370
- ],
2371
- stateMutability: "view",
2372
- type: "function",
2373
- },
2374
- {
2375
- inputs: [],
2376
- name: "minCloseValue",
1612
+ name: "markets",
2377
1613
  outputs: [
2378
1614
  {
2379
- internalType: "uint256",
2380
- name: "",
2381
- type: "uint256",
1615
+ internalType: "bool",
1616
+ name: "isListed",
1617
+ type: "bool",
2382
1618
  },
2383
- ],
2384
- stateMutability: "view",
2385
- type: "function",
2386
- },
2387
- {
2388
- inputs: [],
2389
- name: "minSuBorrowValue",
2390
- outputs: [
2391
1619
  {
2392
- internalType: "uint256",
2393
- name: "",
2394
- type: "uint256",
1620
+ internalType: "uint8",
1621
+ name: "assetGroupId",
1622
+ type: "uint8",
2395
1623
  },
2396
- ],
2397
- stateMutability: "view",
2398
- type: "function",
2399
- },
2400
- {
2401
- inputs: [],
2402
- name: "minWaitBeforeLiquidatable",
2403
- outputs: [
2404
1624
  {
2405
- internalType: "uint48",
2406
- name: "",
2407
- type: "uint48",
1625
+ internalType: "bool",
1626
+ name: "isComped",
1627
+ type: "bool",
2408
1628
  },
2409
1629
  ],
2410
1630
  stateMutability: "view",
@@ -2433,25 +1653,6 @@ const _abi = [
2433
1653
  stateMutability: "nonpayable",
2434
1654
  type: "function",
2435
1655
  },
2436
- {
2437
- inputs: [
2438
- {
2439
- internalType: "address",
2440
- name: "",
2441
- type: "address",
2442
- },
2443
- ],
2444
- name: "mintGuardianPaused",
2445
- outputs: [
2446
- {
2447
- internalType: "bool",
2448
- name: "",
2449
- type: "bool",
2450
- },
2451
- ],
2452
- stateMutability: "view",
2453
- type: "function",
2454
- },
2455
1656
  {
2456
1657
  inputs: [],
2457
1658
  name: "oracle",
@@ -2523,13 +1724,7 @@ const _abi = [
2523
1724
  },
2524
1725
  ],
2525
1726
  name: "removeAssetGroup",
2526
- outputs: [
2527
- {
2528
- internalType: "uint256",
2529
- name: "",
2530
- type: "uint256",
2531
- },
2532
- ],
1727
+ outputs: [],
2533
1728
  stateMutability: "nonpayable",
2534
1729
  type: "function",
2535
1730
  },
@@ -2630,32 +1825,6 @@ const _abi = [
2630
1825
  stateMutability: "nonpayable",
2631
1826
  type: "function",
2632
1827
  },
2633
- {
2634
- inputs: [],
2635
- name: "seizeGuardianPaused",
2636
- outputs: [
2637
- {
2638
- internalType: "bool",
2639
- name: "",
2640
- type: "bool",
2641
- },
2642
- ],
2643
- stateMutability: "view",
2644
- type: "function",
2645
- },
2646
- {
2647
- inputs: [
2648
- {
2649
- internalType: "contract IAccountLiquidity",
2650
- name: "_accountLiquidity",
2651
- type: "address",
2652
- },
2653
- ],
2654
- name: "setAccountLiquidity",
2655
- outputs: [],
2656
- stateMutability: "nonpayable",
2657
- type: "function",
2658
- },
2659
1828
  {
2660
1829
  inputs: [
2661
1830
  {
@@ -2664,174 +1833,36 @@ const _abi = [
2664
1833
  type: "uint8",
2665
1834
  },
2666
1835
  {
2667
- internalType: "string",
2668
- name: "groupName",
2669
- type: "string",
2670
- },
2671
- {
2672
- internalType: "uint256",
2673
- name: "intraCRateMantissa",
2674
- type: "uint256",
1836
+ internalType: "uint16",
1837
+ name: "intraCRatePercent",
1838
+ type: "uint16",
2675
1839
  },
2676
1840
  {
2677
- internalType: "uint256",
2678
- name: "intraMintRateMantissa",
2679
- type: "uint256",
1841
+ internalType: "uint16",
1842
+ name: "intraMintRatePercent",
1843
+ type: "uint16",
2680
1844
  },
2681
1845
  {
2682
- internalType: "uint256",
2683
- name: "intraSuRateMantissa",
2684
- type: "uint256",
1846
+ internalType: "uint16",
1847
+ name: "intraSuRatePercent",
1848
+ type: "uint16",
2685
1849
  },
2686
1850
  {
2687
- internalType: "uint256",
2688
- name: "interCRateMantissa",
2689
- type: "uint256",
1851
+ internalType: "uint16",
1852
+ name: "interCRatePercent",
1853
+ type: "uint16",
2690
1854
  },
2691
1855
  {
2692
- internalType: "uint256",
2693
- name: "interSuRateMantissa",
2694
- type: "uint256",
1856
+ internalType: "uint16",
1857
+ name: "interSuRatePercent",
1858
+ type: "uint16",
2695
1859
  },
2696
1860
  ],
2697
1861
  name: "setAssetGroup",
2698
- outputs: [
2699
- {
2700
- internalType: "uint256",
2701
- name: "",
2702
- type: "uint256",
2703
- },
2704
- ],
2705
- stateMutability: "nonpayable",
2706
- type: "function",
2707
- },
2708
- {
2709
- inputs: [
2710
- {
2711
- internalType: "contract ICompLogic",
2712
- name: "_compLogic",
2713
- type: "address",
2714
- },
2715
- ],
2716
- name: "setCompLogic",
2717
- outputs: [],
2718
- stateMutability: "nonpayable",
2719
- type: "function",
2720
- },
2721
- {
2722
- inputs: [
2723
- {
2724
- internalType: "address",
2725
- name: "cToken",
2726
- type: "address",
2727
- },
2728
- {
2729
- internalType: "uint256",
2730
- name: "supplySpeed",
2731
- type: "uint256",
2732
- },
2733
- {
2734
- internalType: "uint256",
2735
- name: "borrowSpeed",
2736
- type: "uint256",
2737
- },
2738
- ],
2739
- name: "setCompSpeed",
2740
- outputs: [],
2741
- stateMutability: "nonpayable",
2742
- type: "function",
2743
- },
2744
- {
2745
- inputs: [
2746
- {
2747
- internalType: "address",
2748
- name: "_governanceToken",
2749
- type: "address",
2750
- },
2751
- ],
2752
- name: "setGovTokenAddress",
2753
- outputs: [],
2754
- stateMutability: "nonpayable",
2755
- type: "function",
2756
- },
2757
- {
2758
- inputs: [
2759
- {
2760
- internalType: "uint256",
2761
- name: "_minCloseValue",
2762
- type: "uint256",
2763
- },
2764
- ],
2765
- name: "setMinCloseValue",
2766
- outputs: [],
2767
- stateMutability: "nonpayable",
2768
- type: "function",
2769
- },
2770
- {
2771
- inputs: [
2772
- {
2773
- internalType: "uint256",
2774
- name: "_minSuBorrowValue",
2775
- type: "uint256",
2776
- },
2777
- ],
2778
- name: "setMinSuBorrowValue",
2779
- outputs: [],
2780
- stateMutability: "nonpayable",
2781
- type: "function",
2782
- },
2783
- {
2784
- inputs: [
2785
- {
2786
- internalType: "uint48",
2787
- name: "_minWaitBeforeLiquidatable",
2788
- type: "uint48",
2789
- },
2790
- ],
2791
- name: "setMinWaitBeforeLiquidatable",
2792
- outputs: [],
2793
- stateMutability: "nonpayable",
2794
- type: "function",
2795
- },
2796
- {
2797
- inputs: [
2798
- {
2799
- internalType: "contract IRedemptionManager",
2800
- name: "_redemptionManager",
2801
- type: "address",
2802
- },
2803
- ],
2804
- name: "setRedemptionManager",
2805
1862
  outputs: [],
2806
1863
  stateMutability: "nonpayable",
2807
1864
  type: "function",
2808
1865
  },
2809
- {
2810
- inputs: [
2811
- {
2812
- internalType: "address",
2813
- name: "_timelock",
2814
- type: "address",
2815
- },
2816
- ],
2817
- name: "setTimelock",
2818
- outputs: [],
2819
- stateMutability: "nonpayable",
2820
- type: "function",
2821
- },
2822
- {
2823
- inputs: [],
2824
- name: "suTokenRateMantissa",
2825
- outputs: [
2826
- {
2827
- internalType: "uint256",
2828
- name: "",
2829
- type: "uint256",
2830
- },
2831
- ],
2832
- stateMutability: "view",
2833
- type: "function",
2834
- },
2835
1866
  {
2836
1867
  inputs: [
2837
1868
  {
@@ -2851,19 +1882,6 @@ const _abi = [
2851
1882
  stateMutability: "view",
2852
1883
  type: "function",
2853
1884
  },
2854
- {
2855
- inputs: [],
2856
- name: "sutokenLiquidationIncentiveMantissa",
2857
- outputs: [
2858
- {
2859
- internalType: "uint256",
2860
- name: "",
2861
- type: "uint256",
2862
- },
2863
- ],
2864
- stateMutability: "view",
2865
- type: "function",
2866
- },
2867
1885
  {
2868
1886
  inputs: [],
2869
1887
  name: "timelock",
@@ -2905,21 +1923,8 @@ const _abi = [
2905
1923
  stateMutability: "nonpayable",
2906
1924
  type: "function",
2907
1925
  },
2908
- {
2909
- inputs: [],
2910
- name: "transferGuardianPaused",
2911
- outputs: [
2912
- {
2913
- internalType: "bool",
2914
- name: "",
2915
- type: "bool",
2916
- },
2917
- ],
2918
- stateMutability: "view",
2919
- type: "function",
2920
- },
2921
1926
  ];
2922
- const _bytecode = "0x60808060405234620000c6576000549060ff8260081c1662000074575060ff8082161062000038575b6040516155c59081620000cc8239f35b60ff90811916176000557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160ff8152a13862000028565b62461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608490fd5b600080fdfe608060408181526004918236101561001657600080fd5b60009260e08435811c9283627e3dd214613c615750826301ffc9a714613bed5782630914888d14613a60578263098c76f5146139e35782630df9ef2c146139545782631407e281146138f3578263141a7a65146138d357826318c882a5146137c15782631dbd1aa91461373b57826321af456914610eb057826324008a6214613705578263243cdb55146136dd578263248a9ca3146136b157826324a3d62214612bc3578263250d71e71461352a5782632a6a60651461347b5782632bebbc09146134395782632d70db78146133395782632f2ff15d1461328f578263317b0b771461321e5782633278eb04146131f457826336085d4614613111578263360f5a01146130e757826336568abe14613055578263391957d714612e9f5782633bcf7ec114612d715782633bd3838114612cbf5782633c8f817114612c9f5782633c94786f14612c7757826347bd11ad14612c575782634a58443214612c1e5782634ada90af14612bed5782634cab0f2d14612bc35782634e79238f14612b435782634ede8e6a14612b235782634ef4c3e1146128df57826352d84d1e146128b3578263554994f21461288957826355ee1fe11461280c5782635ae4ef2e146127b75782635ec88c79146127085782635f5af1aa146125475782635f87769b146124bd5782635fc7e71e1461227c578263607ef6c1146121525782636322b51314611d225782636d154ea514611ce3578263731f0c2b14611ca457826373a19dc514611a055782637dc0d1d0146119db578263840f82ac1461198257826384b927201461166d57826387f76303146116455782638cfcef4a146115cf5782638e8f294b146115755782638ebf6364146114505782639010d07c1461140e57826391d14854146113c7578263929fe9a11461137057826395ee8208146113495782639cc7becf146113105782639d1b5a0a146112e65782639d8ef7e6146112b7578263a217fddf1461129b578263a22c602e14611273578263aa6fb5c014611233578263abfceffc146111b9578263ac0b0bb714611191578263b0772d0b14611104578263b3030a631461107d578263bc1fc18a14611041578263bdacb30314611001578263bdcdc25814610faa578263c299823814610eda578263c42e5b2b14610eb0578263c7108b4314610e86578263c91033b014610e63578263ca15c87314610e3a578263ce8b680514610e1a578263d02f735114610ccd578263d1eb167e14610c99578263d33219b414610c6f578263d547741f14610c33578263da3d454c1461086957508163dce1544914610810578163e4295d4114610797578163e63ab1e91461076e578163e6653f3d14610747578163e875544614610728578163e876211014610709578163eabe7d91146106eb578163ede4edd0146106be578163eebc3a991461063a578163f21d1250146105ea578163f794062e146105ac578163f8717d401461047c575063f96dae0a1461045157600080fd5b3461047857816003193601126104785760d15490516001600160a01b039091168152602090f35b5080fd5b8383346104785761048c36614073565b90918580526020966065885285872033600052885260ff866000205416158061057f575b6105715781158015610567575b6105595750855b8181106104d45787878751908152f35b806104e36105549285876150fd565b6001600160a01b039035816105016104fc85888c6150fd565b61510d565b168a5260ce8b52888a205561051a6104fc83868a6150fd565b167fb65effed4883ea5c94b76be51cffe6df198456313627302a7726e8a3de19dbea8a61054884888a6150fd565b358a51908152a2614774565b6104c4565b855163b4fa3fb360e01b8152fd5b50828214156104bd565b8551633a73e24b60e21b8152fd5b5060008051602061555083398151915287526065885285872033600052885260ff866000205416156104b0565b5050346104785760203660031901126104785760209160ff9082906001600160a01b036105d7613d2f565b16815260cc855220541690519015158152f35b505034610478576020366003190112610478576106369061062361061d61060f613e68565b610617614f8f565b50614bab565b50614fce565b9051918291602083526020830190613ec0565b0390f35b838334610478576060366003190112610478577fc435a64a252a70e1626526c36dd5dba2119d3d877951ff6fefdea93d062ade9c60c060209435602435906044359061068461411c565b60ca549260cf5460d054928060ca558260cf558460d05588519586528a860152878501526060840152608083015260a0820152a151908152f35b505034610478576020366003190112610478576020906106e46106df613d2f565b61492b565b9051908152f35b8334610706576107036106fd36613f5a565b916152a7565b80f35b80fd5b50503461047857816003193601126104785760209060d0549051908152f35b50503461047857816003193601126104785760209060c9549051908152f35b50503461047857816003193601126104785760209060ff60d55460a81c1690519015158152f35b505034610478578160031936011261047857602090516000805160206155308339815191528152f35b90503461080c57602036600319011261080c578035906107b561411c565b670de0b6b3a764000082106107fe5750907fb0f69b6b3d9133f1b3df441f537a83f47c418431a6aa99e86705aca32b9779af9160df54908060df5582519182526020820152a180f35b8251635012e14560e01b8152fd5b8280fd5b50503461047857806003193601126104785761082a613d2f565b6001600160a01b03908116835260cb60205281832080546024359490851015610706575060209361085a91613fdc565b92905490519260031b1c168152f35b84918434610c2f5760ff61087c36613f5a565b929091955416610c205760018060a01b03908186169182885260209660d7885260ff868a205416610c105783895260cc88526108c660ff878b2054166108c0614797565b906147c4565b83895260cc88526001868a2001928281169384600052895260ff87600020541615610bc5575b506024888360db541688519283809263fc57d4df60e01b8252898d8301525afa908115610afb578a91610b98575b5015610b885783895260d988528589205480610b05575b508551637f4e225760e11b81529780898981885afa8015610afb578798998b98979891610ace575b50156109ee575b50509060849160dc541684519586948593634e79238f60e01b85528a850152602484015289604484015260648301525afa9081156109e45784916109b5575b506109a8578280f35b51633a23d82560e01b8152fd5b6109d59150823d84116109dd575b6109cd8183613cf7565b810190614b95565b90508461099f565b503d6109c3565b82513d86823e3d90fd5b9091929394516395dd919360e01b815233898201528181602481895afa918215610ac4579087918b93610a85575b505090610a3e610a4492610a38670de0b6b3a76400009561537f565b926144d3565b906144aa565b0460df5490818015159182610a7b575b5050610a6557908186949392610960565b8660249187519163e4504b1f60e01b8352820152fd5b109050818a610a54565b8193508092503d8311610abd575b610a9d8183613cf7565b81010312610ab8575185610a3e670de0b6b3a7640000610a1c565b600080fd5b503d610a93565b88513d8c823e3d90fd5b610aee9150823d8411610af4575b610ae68183613cf7565b810190615121565b8b610959565b503d610adc565b87513d8c823e3d90fd5b86516308f7a6e360e31b815289818a81895afa8015610b7e5787908c90610b4d575b610b3192506144d3565b1015610b3d5789610931565b85516353977d1f60e01b81528790fd5b50508981813d8311610b77575b610b648183613cf7565b81010312610ab85786610b319151610b27565b503d610b5a565b88513d8d823e3d90fd5b85516348fa9b2b60e11b81528790fd5b90508881813d8311610bbe575b610baf8183613cf7565b81010312610ab857518a61091a565b503d610ba5565b843303610c0057610bd690336147f0565b5083895260cc88526001868a2001836000528852610bfa60ff87600020541661490e565b896108ec565b86516318e2bacb60e11b81528890fd5b855163095865a360e11b81528790fd5b505051632bc2c01360e21b8152fd5b8380fd5b8482853461080c578060031936011261080c576107039135610c6a6001610c58613d45565b93838752606560205286200154614316565b614421565b5050503461047857816003193601126104785760dd5490516001600160a01b039091168152602090f35b505050346104785760203660031901126104785760ff8160209382610cbc613e68565b16815260d485522054169051908152f35b9092915034610c2f5760ff90610ce236613ff4565b5050509290915416610c205760ff60d55460b81c16610e0b576001600160a01b0390811680865260cc6020908152848720549193909160ff1680610df9575b610d2d906108c0614797565b84519382858881635fe3b56760e01b948582525afa948515610def579087918996610dc8575b5086519081529183918391829087165afa918215610dbe57908392918892610d91575b505016911603610d84578280f35b51630c73eb0560e01b8152fd5b610db09250803d10610db7575b610da88183613cf7565b8101906154f0565b3880610d76565b503d610d9e565b85513d89823e3d90fd5b859391965091610de58593843d8611610db757610da88183613cf7565b9691935091610d53565b86513d8a823e3d90fd5b5080831687528487205460ff16610d21565b5050516307f4077b60e11b8152fd5b5050503461047857816003193601126104785760209060ca549051908152f35b5090503461080c57602036600319011261080c5760209282913581526097845220549051908152f35b5050503461047857816003193601126104785760209060ff60d354169051908152f35b50505034610478578160031936011261047857602090516000805160206155508339815191528152f35b5050503461047857816003193601126104785760d85490516001600160a01b039091168152602090f35b8385346107065790610eeb36613d5b565b91825190610ef882613d18565b610f0484519182613cf7565b828152610f1083613d18565b6020958287019491601f1901368637835b828110610f665750505083519485948186019282875251809352850193925b828110610f4f57505050500390f35b835185528695509381019392810192600101610f40565b9596949592949392610f9f90610f8f336001600160a01b03610f888487614783565b51166147f0565b610f998289614783565b52614774565b969594929396610f21565b8385913461080c5760ff610fbd36613e27565b959293919490505416610ff25760ff60d55460b01c16610fe357506107039394506152a7565b5163cd1fda9f60e01b81528590fd5b51632bc2c01360e21b81528590fd5b84346107065760203660031901126107065761101b613d2f565b61102361411c565b60018060a01b03166001600160601b0360a01b60dd54161760dd5580f35b50505034610478578160031936011261047857602090517f750fc7a006f78e0009a09aa4bf97546d802b8f6c9d27e623dd7cc78951321eaf8152f35b50505034610478576020366003190112610478577fc0d13b4b69c287fa32efe3ab6c1eb07cc9b0dba2055584c98fa3262873f6ce50906110bb613d2f565b906110c461411c565b60da80546001600160a01b039384166001600160a01b03198216811790925591518383168152918516909216909117602082015280604081015b0390a180f35b838534610706578060031936011261070657815191829160cd5480855260208095019460cd83527f83978b4c69c48dd978ab43fe30f077615294f938fb7f936d9eb340e51ea7db2e92905b828210611171576106368686611167828b0383613cf7565b51918291826140d8565b83546001600160a01b03168752958601956001938401939091019061114f565b5050503461047857816003193601126104785760209060ff60d55460b81c1690519015158152f35b50505034610478576020908160031936011261080c576001600160a01b0392836111e1613d2f565b16815260cb8352818120938251908194808754938481520196845280842093915b83831061121a576106368787611167828c0383613cf7565b8454811688529681019660019485019490920191611202565b505050346104785760203660031901126104785760209160ff9082906001600160a01b0361125f613d2f565b16815260cc8552205460081c169051908152f35b5050503461047857816003193601126104785760209065ffffffffffff60e354169051908152f35b5050503461047857816003193601126104785751908152602090f35b505050346104785780600319360112610478576020906106e46112d8613d2f565b6112e0613d45565b90615139565b5050503461047857816003193601126104785760d15490516001600160a01b039091168152602090f35b505050346104785760203660031901126104785760209181906001600160a01b03611339613d2f565b16815260ce845220549051908152f35b50505034610478576020366003190112610478576020906106e461136b613d2f565b61537f565b5050503461047857806003193601126104785760209161138e613d2f565b906001600160a01b03906001908490836113a6613d45565b16815260cc875220019116600052825260ff81600020541690519015158152f35b5090503461080c578160031936011261080c57816020936113e6613d45565b9235815260658552209060018060a01b0316600052825260ff81600020541690519015158152f35b5090503461080c578160031936011261080c5760209261143a9135815260978452826024359120613fdc565b905491519160018060a01b039160031b1c168152f35b50838334610478576020928360031936011261080c5761146e613de9565b9081156114ff578380526065855282842033600052855260ff836000205416156114f1575060a0600080516020615570833981519152915b15159360d55460ff60b01b8660b01b169060ff60b01b19161760d555835190815260608682015260086060820152672a3930b739b332b960c11b60808201528484820152a151908152f35b8251634755657960e01b8152fd5b8380526065855282842033600052855260ff8360002054161580611548575b61153a575060a0600080516020615570833981519152916114a6565b8251630e8e849b60e41b8152fd5b5060008051602061553083398151915284526065855282842033600052855260ff8360002054161561151e565b505050346104785760203660031901126104785760609181906001600160a01b0361159e613d2f565b16815260cc602052209060ff600283549301541660ff8251938181161515855260081c166020840152151590820152f35b5090503461080c57602036600319011261080c57359065ffffffffffff808316809303610c2f577f0588449e0b0110e13fc93a8a6bb18de54b76ab663510c4dbab7cac04da3981619261162061411c565b8460e3548265ffffffffffff1982161760e3558451938116845216176020820152a180f35b5050503461047857816003193601126104785760209060ff60d55460b01c1690519015158152f35b5083833461047857608036600319011261047857611689613d2f565b926024359060ff821694858303610ab85760443591606435916116aa61411c565b60018060a01b03908181169586895260209960cc8b5260ff898b20541661191f571561197257888089518c810190637f4e225760e11b82528781526116ee81613cc1565b519082865af13d1561196d573d611704816140bd565b906117118b519283613cf7565b81528a8c3d92013e5b80611963575b1561192f5786895260cc8a526001888a209161ff0083549160081b169061ffff1916171790558760cd54905b8181106118f95750600160401b8110156118e45790611774826001611793940160cd55613f8f565b90919082549060031b9160018060a01b03809116831b921b1916179055565b6117d786516117a181613cc1565b601c81527f626c6f636b206e756d62657220657863656564732033322062697473000000008a82015264010000000043106147c4565b60da541690813b156118e05784604488928389519586948593633ace041560e11b855284015263ffffffff431660248401525af180156118d6578688939286926118b4575b50507f6f1951b2aad10f3fc81b86d91105b413a5b3f847a34bbc5ce1904201b14438f6837fb65effed4883ea5c94b76be51cffe6df198456313627302a7726e8a3de19dbea957fcf583bb0c569eb967f806b11601c4cb93c10310485c67add5f8362c2f212321f828a51868152a1838a5260d9825280898b20558851908152a283865260ce825280858720558451908152a251908152f35b90929493506118c39150613c7c565b6118d25790859083868961181c565b8480fd5b85513d88823e3d90fd5b8680fd5b604184634e487b7160e01b6000525260246000fd5b878461190483613f8f565b90549060031b1c161461191f5761191a90614774565b61174c565b8851634d5eeb4960e01b81528590fd5b875162461bcd60e51b81528085018b9052600e60248201526d31b7b73a3930b1ba1032b93937b960911b6044820152606490fd5b50813b1515611720565b61171a565b8751631b47388560e11b81528490fd5b5090503461080c57602036600319011261080c5761199e613d2f565b6119a661411c565b6001600160a01b03169182156119ce5750506001600160601b0360a01b60d154161760d15580f35b5163e6c4247b60e01b8152fd5b5050503461047857816003193601126104785760db5490516001600160a01b039091168152602090f35b8484833461080c578360031936011261080c57611a20613e68565b90602435916001600160401b0383116118d257366023840112156118d2578282013595611a4c876140bd565b91611a5986519384613cf7565b878352602097888401953660248383010111611ca05781899260248c930189378501015260443592606435956084359160a43593898b8d60c43598611a9c61411c565b60d35415611c41575b60ff8095169b8c845260d483528585852054169081158015611c35575b8015611c1f575b15611ba257505093838a979360d48f948f9b987f878e48ed20dc6724a982e6ed357e7ad8d32f3a8550cc2d946046e3a708545e799f9d9a9660c09f8f928f92918e8e600194611b789f978e611b49995198611b238a613ca5565b89528a8901528c8801526060870152608086015260a085015260c0840152820152614dd6565b611b568560d35416614df9565b9b835252209716968760ff198254161790558c51928392839251928391613e78565b8101039020988a519586528c860152898501526060840152608083015260a0820152a35b51908152f35b94508c9d9750809c9350611bba919b96959250614bab565b50541603611c11575092611c0c9897959260019592611c0698958e8d519b611be18d613ca5565b8c528b01528b8a01526060890152608088015260a087015260c0860152840152614bab565b90614c7d565b611b9c565b8a5163e70616f160e01b8152fd5b508d87611c2b84614bab565b5054161415611ac9565b5060d354821015611ac2565b611c9b8451611c4f81613ca5565b8481528551611c5d81613cc1565b6007815266125b9d985b1a5960ca1b858201528482015284868201528460608201528460808201528460a08201528460c08201528483820152614dd6565b611aa5565b8880fd5b505050346104785760203660031901126104785760209160ff9082906001600160a01b03611cd0613d2f565b16815260d6855220541690519015158152f35b505050346104785760203660031901126104785760209160ff9082906001600160a01b03611d0f613d2f565b16815260d7855220541690519015158152f35b5090503461080c5761012036600319011261080c57611d3f613d2f565b90611d48613d45565b6001600160a01b03926044358481169190829003610ab857606435858116809103610ab85760843590868216809203610ab85788549660ff8860081c161596878098612145575b801561212e575b156120d457508980959493928a9260ff199a8a60018d83161785556120c3575b5082805260209a8b916065835280868620981697886000528352856000205460ff16159a611e5f611f0a997fc0d13b4b69c287fa32efe3ab6c1eb07cc9b0dba2055584c98fa3262873f6ce509860977f48bd816f205e181001b83aa1cf7320a5d50507ac4003c9cc33c314354b1c7ea69f97611ead977fd52b2b9b7e9ee655fcb95d2e5b9e0c9f69e7ef2b8e9d2d0ea78402d576d22e229961208b575b508a80525288206145ff565b506001600160601b0360a01b998a60d154161760d155670de0b6b3a764000060d25516808960db54161760db558d5191829182919091602060408201936000835260018060a01b0316910152565b0390a160da805487811683179091558b51600081529216176001600160a01b0316602082015280604081010390a160dc805493841682179055875160008152939092169091176001600160a01b0316602083015281906040820190565b0390a17f3b9670cf975d26958e754b57098eaa2ac914d8d2a31b83257997b9f346110fd98360a4358060c95581519087825285820152a17fc435a64a252a70e1626526c36dd5dba2119d3d877951ff6fefdea93d062ade9c60c060c4358060ca5560e4358060cf5561010435908160d055875192898452878401528888840152606083015287608083015260a0820152a17fdef449b2f4609015f25664c39d8c4d1d5355a91831d907228ab84fbe334c6ce68368056bc75e2d631000008060df557fb0f69b6b3d9133f1b3df441f537a83f47c418431a6aa99e86705aca32b9779af8280518981528388820152a18060e15581519087825285820152a17f0588449e0b0110e13fc93a8a6bb18de54b76ab663510c4dbab7cac04da3981618360e354603c65ffffffffffff1982161760e355603c87835192818452161785820152a1612054578280f35b7f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989161ff001984541684555160018152a138808280f35b8b805260658252838c208560005282526001846000209182541617905533848c6000805160206155108339815191528180a438611e53565b61ffff191661010117835538611db6565b60849060208b519162461bcd60e51b8352820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152fd5b50303b158015611d965750600160ff8a1614611d96565b50600160ff8a1610611d8f565b5090503461080c5761216336614073565b90939294918680526020936065855283882033600052855260ff846000205416158061224f575b6122415781158015612237575b6122295750865b8181106121a9578780f35b80826121b961222493868a6150fd565b35896121d16104fc8560018060a01b039586946150fd565b168b5260d98852868b20556121ea6104fc83868c6150fd565b167f6f1951b2aad10f3fc81b86d91105b413a5b3f847a34bbc5ce1904201b14438f68761221884888c6150fd565b358851908152a2614774565b61219e565b835163b4fa3fb360e01b8152fd5b5082821415612197565b8351633a73e24b60e21b8152fd5b5060008051602061555083398151915288526065855283882033600052855260ff8460002054161561218a565b8482853461080c5761228d36613ff4565b929093915060018060a01b038083169081895260209260cc84528160ff898c205416159182156124aa575b505061249a5786516395dd919360e01b8152958116888701819052928087602481865afa968715610ac4578a9761246b575b5065ffffffffffff8060e3541642039042821161245657858c5260e28352898c2054161015612446578751630c71782360e41b815281818b81875afa91821561243c579089949392918c9261241f575b50501561235d5750505050501161235057505080f35b5163e46c155960e01b8152fd5b60849060dc54169383519485938492634e79238f60e01b84528c840152602483015260006044830152600060648301525afa908115610dbe578791612400575b50156123f0576123ac9061537f565b670de0b6b3a76400006123cd816123c58660c9546144aa565b0480936144aa565b0460e154116000146123e457501161235057505080f35b91501161235057505080f35b5050505163095bf33360e01b8152fd5b6124179150853d87116109dd576109cd8183613cf7565b90508761239d565b6124359250803d10610af457610ae68183613cf7565b8b8061233a565b89513d8d823e3d90fd5b875163d26a7d5f60e01b81528990fd5b60118b634e487b7160e01b6000525260246000fd5b9080975081813d8311612493575b6124838183613cf7565b81010312610ab85751958a6122ea565b503d612479565b86516334b04fe360e11b81528890fd5b168a52508689205460ff1615818b6122b8565b8482853461080c57606036600319011261080c57826124da613d2f565b6124e261411c565b60da546001600160a01b039190821690813b15610c2f578360649286519788958694635f87769b60e01b86521690840152602435602484015260443560448401525af190811561253e5750612535575080f35b61070390613c7c565b513d84823e3d90fd5b50838334610478576020928360031936011261080c57612565613d2f565b61256d61411c565b6001600160a01b039081169182156126fa575090816126537f0613b6ee6a04f0d09f390e4d9318894b9f6ac7fd83897cd8d18896ba579c401e9360d55416926000805160206155308339815191528088526065808a526125d26001898b200154614316565b818952808a52878920868a528a5260ff888a2054166126b5575b81895260978a526125ff86898b20614684565b50826001600160601b0360a01b60d554161760d555818952808a526126296001898b200154614316565b818952808a52878920838a528a5260ff888a2054161561267f575b508752609788528587206145ff565b5060d55484516001600160a01b0393841681529116909116602082015280604081015b0390a151908152f35b81895289528688208289528952868820805460ff191660011790553382826000805160206155108339815191528b80a489612644565b818952808a52878920868a528a52878920805460ff191690553386837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b8c80a46125ec565b835163e6c4247b60e01b8152fd5b508383346104785760203660031901126104785780612725613d2f565b608460018060a01b03918260dc541684519788948593634e79238f60e01b855216908301528660248301528660448301528660648301525afa9283156127ac578293612787575b50516000815260208101919091526040810191909152606090f35b816127a492945061063693503d85116109dd576109cd8183613cf7565b92909161276c565b5051903d90823e3d90fd5b8482853461080c57602036600319011261080c577fdef449b2f4609015f25664c39d8c4d1d5355a91831d907228ab84fbe334c6ce691356127f661411c565b60e154908060e15582519182526020820152a180f35b5050503461047857602036600319011261047857906020917fd52b2b9b7e9ee655fcb95d2e5b9e0c9f69e7ef2b8e9d2d0ea78402d576d22e2261284d613d2f565b61285561411c565b60db80546001600160a01b039283166001600160a01b03198216811790925584519216825260208201528060408101612676565b5050503461047857816003193601126104785760dc5490516001600160a01b039091168152602090f35b5090503461080c57602036600319011261080c57359160cd54831015610706575061143a602092613f8f565b9092915034610c2f5760ff906128f436613f5a565b9390925416612b135760018060a01b038091169081875260209260d6845260ff8689205416612b035782885260cc845261293660ff878a2054166108c0614797565b85516361bfb47160e11b815291811687830181905291608081602481875afa8015612af957898a928b92612abf575b50612979906129726148e4565b90156147c4565b848a5260cc86526001888b2001848b52865260ff888b205416159182612ab6575b5081612aad575b50612a63575b505080865260ce8252838620541592831592836129d9575b50505050156129cc578280f35b516354db2d5d60e11b8152fd5b9293509091836129f0575b505050388080806129bf565b84516318160ddd60e01b8152929350909181818781875afa908115610dbe578791612a35575b5060ce92612a23916144d3565b928652528184205410153880806129e4565b90508181813d8311612a5c575b612a4c8183613cf7565b810103126118e0575160ce612a16565b503d612a42565b823303612a9d57612a7490336147f0565b5081875260cc83526001858820019087528252612a9660ff858820541661490e565b38806129a7565b855163094d2b6d60e21b81528790fd5b905015386129a1565b1591503861299a565b90506129799250612ae7915060803d8111612af2575b612adf8183613cf7565b8101906148c2565b509290929190612965565b503d612ad5565b87513d8b823e3d90fd5b8551636be9245d60e11b81528790fd5b50505051632bc2c01360e21b8152fd5b5050503461047857816003193601126104785760209060cf549051908152f35b508383346104785780612b5536613f21565b60dc548551634e79238f60e01b81526001600160a01b03958616998101998a5293851660208a0152604089019290925260608801529095869290839003608001918391165afa9283156127ac5782936127875750516000815260208101919091526040810191909152606090f35b5050503461047857816003193601126104785760d55490516001600160a01b039091168152602090f35b5050503461047857816003193601126104785760609060ca549060cf549060d0549181519384526020840152820152f35b505050346104785760203660031901126104785760209181906001600160a01b03612c47613d2f565b16815260d9845220549051908152f35b5050503461047857816003193601126104785760209060d2549051908152f35b5050503461047857816003193601126104785760209060ff60d55460a01c1690519015158152f35b5050503461047857816003193601126104785760209060e1549051908152f35b8482853461080c576020612cd236613f21565b60dc5486516354f2052160e11b81526001600160a01b039586169881019889529385166020890152604088019290925260608701529094859290839003608001918391165afa918215612d67578392612d30575b6020838351908152f35b9091506020813d8211612d5f575b81612d4b60209383613cf7565b8101031261080c5760209250519083612d26565b3d9150612d3e565b81513d85823e3d90fd5b5083833461047857612d8236613df8565b908115612e1f57838052606560205282842033855260205260ff838520541615612e0f5781602095612de3600080516020615570833981519152948660a0955b600180881b03169889815260d68b52209060ff801983541691151516179055565b8451958652606087870152606086015263135a5b9d60e21b60808601521515938484820152a151908152f35b8251634755657960e01b81528590fd5b838052606560205282842033855260205260ff83852054161580612e72575b612e625781602095612de3600080516020615570833981519152948660a095612dc2565b8251630e8e849b60e41b81528590fd5b506000805160206155308339815191528452606560205282842033855260205260ff838520541615612e3e565b838583346104785760208060031936011261080c57612ebc613d2f565b91612ec561411c565b6001600160a01b03838116918215613047575094612fab6110fe9260977feda98690e518e9a05f8ec6837663e188211b2da8f4906648b323f2c1d4434e29979860d8541695600080516020615550833981519152808b528a612f84600188606593848752612f37838383200154614316565b8581528487528181208d8252875260ff8282205416613002575b858152878752612f638d838320614684565b5060d880546001600160a01b0319168a179055858152848752200154614316565b818c52808352868c20858d52835260ff878d20541615612fcc575b508a52528288206145ff565b50516001600160a01b03928316815292909116602083015281906040820190565b818c528252858b20848c528252858b20805460ff191660011790553384826000805160206155108339815191528e80a48b612f9f565b8581528487528181208d82528752818120805460ff19169055338d877ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b8480a4612f51565b865163e6c4247b60e01b8152fd5b83858334610478578260031936011261047857613070613d45565b90336001600160a01b0383160361308c57906107039135614421565b608490602085519162461bcd60e51b8352820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152fd5b5050503461047857816003193601126104785760da5490516001600160a01b039091168152602090f35b83853461070657806003193601126107065760d35461312f81613d18565b9161313c84519384613cf7565b81835260d3815260209283810192827f915c3eb987b20e1af620c1403197bf687fb7f18513b3a73fde6e78c7072c41a6855b8383106131cf57505050508451938085019181865251809252858501958260051b8601019392955b8287106131a35785850386f35b9091929382806131bf600193603f198a82030186528851613ec0565b9601920196019592919092613196565b6008886001926131e2859b98999b614fce565b8152019201920191909694939661316e565b5050503461047857816003193601126104785760de5490516001600160a01b039091168152602090f35b508383346104785760203660031901126104785782359261323d61411c565b831561328157507f3b9670cf975d26958e754b57098eaa2ac914d8d2a31b83257997b9f346110fd98160209460c954908060c955825191825286820152a151908152f35b905163ee0bdbdf60e01b8152fd5b8482853461080c578060031936011261080c576132fe91359060976132b2613d45565b92808652602090606582526132cc60018589200154614316565b808752606582528387206001600160a01b039095168088529482528387205460ff1615613302575b86525283206145ff565b5080f35b808752606582528387208588528252838720805460ff191660011790553385826000805160206155108339815191528a80a46132f4565b50838334610478576020928360031936011261080c57613357613de9565b9081156133d55783805260658552828420338552855260ff8385205416156114f1575060a0600080516020615570833981519152915b15159360d55460ff60b81b8660b81b169060ff60b81b19161760d555835190815260608682015260056060820152645365697a6560d81b60808201528484820152a151908152f35b83805260658552828420338552855260ff8385205416158061340e575b61153a575060a06000805160206155708339815191529161338d565b50600080516020615530833981519152845260658552828420338552855260ff8385205416156133f2565b505050346104785760203660031901126104785760209165ffffffffffff9082906001600160a01b0361346a613d2f565b16815260e285522054169051908152f35b838534610706576020938460031936011261047857613498613de9565b918383156134d257818060ff9352606588528181203382528852205416156114f157505b15159160ff1981541660ff841617905551908152f35b508080526065865283812033825286528360ff81832054161591826134fe575b505061153a57506134bc565b60ff925060008051602061553083398151915281526065885281812033825288522054161583876134f2565b50838334610478576020928360031936011261080c57613548613e68565b61355061411c565b60ff8060d3541691818061356b61356686614df9565b614bab565b50541691169384875260d4885282868820541692858161358a86614bab565b505416146136a25761359e61356686614df9565b506135a885614bab565b9290926136905791817f3142b1d766c6799b48d5083bdb3ef6e5a2d93657c1a073fba6c4cf5a93f3d0be9795938c979593830361361c575b50505050875260d4835285872060ff199182825416179055613600614ee4565b84875260d483528587209081541690558451908152a251908152f35b60078261368795838395541660ff198754161786556136416001830160018801614e0c565b60028201546002870155600382015460038701558082015490860155600581015460058601556006810154600686015501541691019060ff801983541691151516179055565b898080806135e0565b634e487b7160e01b8a5289845260248afd5b508551631b47388560e11b8152fd5b5090503461080c57602036600319011261080c5781602093600192358152606585522001549051908152f35b505050346104785760203660031901126104785761063690610623613700613e68565b6150d1565b505050346104785760ff6107039161371c36613e27565b5050506001600160a01b0316845260cc602052832054166108c0614797565b5050503461047857816003193601126104785761375661411c565b815b60d3549060ff9182821610156137945761378f9161377582614bab565b505416845260d4602052828420805460ff19169055614f7e565b613758565b8360ff8060d35416825b81838216106137ab578380f35b6137bc906137b7614ee4565b614f7e565b61379e565b50838334610478576137d236613df8565b93841561386357838052606560205282842033855260205260ff8385205416156114f1575060a08461383360209685600080516020615570833981519152955b600180871b03169788815260d78a52209060ff801983541691151516179055565b83519485526060868601526006606086015265426f72726f7760d01b60808601521515938484820152a151908152f35b838052606560205282842033855260205260ff838520541615806138a6575b61153a575060a0846138336020968560008051602061557083398151915295613812565b506000805160206155308339815191528452606560205282842033855260205260ff838520541615613882565b5050503461047857816003193601126104785760209060df549051908152f35b5050503461047857806003193601126104785761390e613d2f565b33835260cc60205261392860ff83852054166108c0614797565b6001600160a01b0316825260e26020528120805465ffffffffffff19164265ffffffffffff1617905580f35b5090503461080c57602036600319011261080c576001600160a01b0390358181169290839003610c2f576110fe7f74da322741e80869260bbc86121057ddc6438621671e5f4ae9656d53580e40df936139ab61411c565b60de80546001600160a01b0319811683179091559251939092166001600160a01b039081168452909116602083015281906040820190565b50505034610478576020366003190112610478577f48bd816f205e181001b83aa1cf7320a5d50507ac4003c9cc33c314354b1c7ea690613a21613d2f565b90613a2a61411c565b60dc80546001600160a01b039384166001600160a01b0319821681179092559151929091168252602082015280604081016110fe565b8482853461080c57613a7136613d5b565b613a7961411c565b805191845b60cd54811015613be957613a9181613f8f565b90546001600160a01b0360039290921b1c811690875b868110613abf57505050613aba90614774565b613a7e565b81613ad082889495989a969a614783565b5116908551916370a0823160e01b835280868401526020602493818186818d5afa908115613bdf578d91613bae575b501590811591613b38575b50613b1b9350613b27575b50614774565b96929694919094613aa7565b613b3190886147f0565b508a613b15565b8091508c8951958680926305eff7ef60e21b8252868c8301528d5af1908115613ba4578c91613b70575b50613b1b935015158c613b0a565b905083813d8311613b9d575b613b868183613cf7565b81010312613b9957613b1b92518c613b62565b8a80fd5b503d613b7c565b88513d8e823e3d90fd5b90508181813d8311613bd8575b613bc58183613cf7565b81010312613bd457518d613aff565b8c80fd5b503d613bbb565b89513d8f823e3d90fd5b8580f35b5090503461080c57602036600319011261080c57359063ffffffff60e01b821680920361080c5760209250635a05180f60e01b8214918215613c33575b50519015158152f35b909150637965db0b60e01b8114908115613c50575b509038613c2a565b6301ffc9a760e01b14905038613c48565b85903461047857816003193601126104785780600160209252f35b6001600160401b038111613c8f57604052565b634e487b7160e01b600052604160045260246000fd5b61010081019081106001600160401b03821117613c8f57604052565b604081019081106001600160401b03821117613c8f57604052565b608081019081106001600160401b03821117613c8f57604052565b90601f801991011681019081106001600160401b03821117613c8f57604052565b6001600160401b038111613c8f5760051b60200190565b600435906001600160a01b0382168203610ab857565b602435906001600160a01b0382168203610ab857565b602080600319830112610ab857600435916001600160401b038311610ab85780602384011215610ab8578260040135613d9381613d18565b93613da16040519586613cf7565b81855260248486019260051b820101928311610ab857602401905b828210613dca575050505090565b81356001600160a01b0381168103610ab8578152908301908301613dbc565b600435908115158203610ab857565b6040906003190112610ab8576004356001600160a01b0381168103610ab857906024358015158103610ab85790565b6080906003190112610ab8576001600160a01b036004358181168103610ab857916024358281168103610ab857916044359081168103610ab8579060643590565b6004359060ff82168203610ab857565b60005b838110613e8b5750506000910152565b8181015183820152602001613e7b565b90602091613eb481518092818552858086019101613e78565b601f01601f1916010190565b9060ff825116815260e080613ee46020850151610100806020870152850190613e9b565b9360408101516040850152606081015160608501526080810151608085015260a081015160a085015260c081015160c08501520151151591015290565b6080906003190112610ab8576001600160a01b03906004358281168103610ab857916024359081168103610ab857906044359060643590565b6060906003190112610ab8576001600160a01b03906004358281168103610ab857916024359081168103610ab8579060443590565b60cd54811015613fc65760cd6000527f83978b4c69c48dd978ab43fe30f077615294f938fb7f936d9eb340e51ea7db2e0190600090565b634e487b7160e01b600052603260045260246000fd5b8054821015613fc65760005260206000200190600090565b60a0906003190112610ab8576001600160a01b03906004358281168103610ab857916024358181168103610ab857916044358281168103610ab857916064359081168103610ab8579060843590565b9181601f84011215610ab8578235916001600160401b038311610ab8576020808501948460051b010111610ab857565b6040600319820112610ab8576001600160401b0391600435838111610ab8578261409f91600401614043565b93909392602435918211610ab8576140b991600401614043565b9091565b6001600160401b038111613c8f57601f01601f191660200190565b6020908160408183019282815285518094520193019160005b8281106140ff575050505090565b83516001600160a01b0316855293810193928101926001016140f1565b3360009081527fffdfc1249c027f9191656349feb0761381bb32c9f557e01f419fd08754bf5a1b602090815260408083205490929060ff161561415e57505050565b614167336144f1565b908084519061417582613cdc565b6042825284820192606036853782511561430257603084538251906001918210156143025790607860218501536041915b8183116142945750505061425257604861424e93869361423293614223985198899376020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b8a8601526141fa815180928c603789019101613e78565b8401917001034b99036b4b9b9b4b733903937b6329607d1b603784015251809386840190613e78565b01036028810187520185613cf7565b5192839262461bcd60e51b845260048401526024830190613e9b565b0390fd5b60648486519062461bcd60e51b825280600483015260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152fd5b909192600f811660108110156142ee576f181899199a1a9b1b9c1cb0b131b232b360811b901a6142c485876144e0565b5360041c9280156142da576000190191906141a6565b634e487b7160e01b82526011600452602482fd5b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b81526032600452602490fd5b60009080825260209060658252604092838120338252835260ff8482205416156143405750505050565b614349336144f1565b9184519061435682613cdc565b6042825284820192606036853782511561430257603084538251906001918210156143025790607860218501536041915b8183116143db5750505061425257604861424e93869361423293614223985198899376020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b8a8601526141fa815180928c603789019101613e78565b909192600f811660108110156142ee576f181899199a1a9b1b9c1cb0b131b232b360811b901a61440b85876144e0565b5360041c9280156142da57600019019190614387565b90604061445f9260009080825260656020528282209360018060a01b03169384835260205260ff8383205416614462575b8152609760205220614684565b50565b808252606560205282822084835260205282822060ff1981541690553384827ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b8580a4614452565b818102929181159184041417156144bd57565b634e487b7160e01b600052601160045260246000fd5b919082018092116144bd57565b908151811015613fc6570160200190565b60405190606082018281106001600160401b03821117613c8f57604052602a8252602082016040368237825115613fc657603090538151600190811015613fc657607860218401536029905b80821161459157505061454d5790565b606460405162461bcd60e51b815260206004820152602060248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152fd5b9091600f811660108110156145ea576f181899199a1a9b1b9c1cb0b131b232b360811b901a6145c084866144e0565b5360041c9180156145d557600019019061453d565b60246000634e487b7160e01b81526011600452fd5b60246000634e487b7160e01b81526032600452fd5b9190600183016000908282528060205260408220541560001461467e57845494600160401b86101561466a578361465a614643886001604098999a01855584613fdc565b819391549060031b91821b91600019901b19161790565b9055549382526020522055600190565b634e487b7160e01b83526041600452602483fd5b50925050565b9060018201906000928184528260205260408420549081151560001461476d57600019918083018181116147595782549084820191821161474557808203614710575b505050805480156146fc578201916146df8383613fdc565b909182549160031b1b191690555582526020526040812055600190565b634e487b7160e01b86526031600452602486fd5b6147306147206146439386613fdc565b90549060031b1c92839286613fdc565b905586528460205260408620553880806146c7565b634e487b7160e01b88526011600452602488fd5b634e487b7160e01b87526011600452602487fd5b5050505090565b60001981146144bd5760010190565b8051821015613fc65760209160051b010190565b604051906147a482613cc1565b60118252701b585c9ad95d081b9bdd081b1a5cdd1959607a1b6020830152565b156147cc5750565b60405162461bcd60e51b81526020600482015290819061424e906024830190613e9b565b6001600160a01b03808216600090815260cc602052604081208054919493926001926148219060ff166108c0614797565b841685520160205260408320805460ff811661476d5760ff1916600117905560cb60205260408320805490600160401b8210156148ae57826117748361488f9360017f3ab23ab0d51cccc0c3085aec51f99228625aa1a922b3a8ca89a26b0f2027a1a5989796018155613fdc565b604080516001600160a01b03928316815292909116602083015290a190565b634e487b7160e01b85526041600452602485fd5b9190826080910312610ab8578151916020810151916060604083015192015190565b604051906148f182613cc1565b600e82526d39b730b839b437ba1032b93937b960911b6020830152565b1561491557565b634e487b7160e01b600052600160045260246000fd5b604080516361bfb47160e11b81523360048201526001600160a01b03838116939091608081602481885afa8015614b8a57600080928192614b60575b50614974906129726148e4565b614b4f576149839033836152a7565b8360005260209260cc845260019384826000200133600052815281600020805460ff811615614b425760ff1916905560cb8152816000209482519081968791848254948581520191600052846000209060005b86868210614b2a57505050506149ee92500386613cf7565b845194859660005b888110614af8575b505050614a12859660cb939495961061490e565b33600052528060002092835494600019958681019081116144bd57614a6e9183614a3f614a499389613fdc565b9390549289613fdc565b92909360031b1c169082549060031b9160018060a01b03809116831b921b1916179055565b8354938415614ae2577fe699a64c18b07ac5b7301aa273f36a2287239eb9501d81950672794afba29a0d95614ada950191614aa98383613fdc565b815460039190911b9290921b19909116905555516001600160a01b0390911681523360208201529081906040820190565b0390a1600090565b634e487b7160e01b600052603160045260246000fd5b8187614b048386614783565b511614614b1957614b1490614774565b6149f6565b9650614a12915060cb9050386149fe565b83548b1685528b9550909301929181019181016149d6565b5050505050505050600090565b8351631a4e452560e31b8152600490fd5b90506149749250614b7f915060803d8111612af257612adf8183613cf7565b509290929190614967565b84513d6000823e3d90fd5b9190826040910312610ab8576020825192015190565b60d354811015613fc65760d360005260031b7f915c3eb987b20e1af620c1403197bf687fb7f18513b3a73fde6e78c7072c41a60190600090565b90600182811c92168015614c15575b6020831014614bff57565b634e487b7160e01b600052602260045260246000fd5b91607f1691614bf4565b818110614c2a575050565b60008155600101614c1f565b9190601f8111614c4557505050565b614c71926000526020600020906020601f840160051c83019310614c73575b601f0160051c0190614c1f565b565b9091508190614c64565b90614dc05760ff82511660ff19825416178155600191828201602080830151948551916001600160401b038311613c8f57614cc283614cbc8654614be5565b86614c36565b80601f8411600114614d4c575091808060e0959360079795614c719a600094614d41575b50501b916000199060031b1c19161790555b60408101516002850155606081015160038501556080810151600485015560a0810151600585015560c081015160068501550151151591019060ff801983541691151516179055565b015192503880614ce6565b9193949596601f1984168660005283600020936000905b828210614da95750509260e095928592614c719a99966007999610614d90575b505050811b019055614cf8565b015160001960f88460031b161c19169055388080614d83565b808886978294978701518155019601940190614d63565b634e487b7160e01b600052600060045260246000fd5b60d35490600160401b821015613c8f57611c06826001614c71940160d355614bab565b60ff6000199116019060ff82116144bd57565b90808214614ee057614e1e8154614be5565b906001600160401b038211613c8f578190614e3d82614cbc8654614be5565b600090601f8311600114614e7457600092614e69575b50508160011b916000199060031b1c1916179055565b015490503880614e53565b81526020808220858352818320935090601f1985169083905b828210614ec7575050908460019594939210614eae575b505050811b019055565b015460001960f88460031b161c19169055388080614ea4565b8495819295850154815560018091019601940190614e8d565b5050565b60d3548015614ae25760001901614efa81614bab565b614dc05760076000918281558260018201614f158154614be5565b80614f41575b50506002820155826003820155826004820155826005820155826006820155015560d355565b82601f8211600114614f59575050555b823880614f1b565b9091808252614f77601f60208420940160051c840160018501614c1f565b5555614f51565b60ff1660ff81146144bd5760010190565b60405190614f9c82613ca5565b8160e0600091828152606060208201528260408201528260608201528260808201528260a08201528260c08201520152565b90604051614fdb81613ca5565b809260ff8154168252600180820160405191600091805490614ffc82614be5565b808652918381169081156150a7575060011461506b575b50505060e0928261502a60ff946007940382613cf7565b6020860152600281015460408601526003810154606086015260048101546080860152600581015460a0860152600681015460c08601520154161515910152565b90925060005260209182600020916000925b82841061509457505050820101828261502a615013565b805486850186015292840192810161507d565b60ff191660208088019190915292151560051b8601909201935085925084915061502a9050615013565b60ff906150dc614f8f565b501660005260d46020526150fa61061d60ff60406000205416614bab565b90565b9190811015613fc65760051b0190565b356001600160a01b0381168103610ab85790565b90816020910312610ab857518015158103610ab85790565b60018060a01b038091169060009082825260209060cc825260409460ff86852054161561529657169283835260cc825260ff8584205416156152855780835260cc825260ff8584205460081c169380845260ff8685205460081c16928651928184600481637f4e225760e11b948582525afa93841561527b57869461525a575b508190600489518095819382525afa94851561524f5794615230575b50501561521057820361520257156151f5576151f0906150d1565b015190565b606091506151f0906150d1565b5060a091506151f0906150d1565b919250508103615225576151f06080916150d1565b6151f060c0916150d1565b615247929450803d10610af457610ae68183613cf7565b9138806151d5565b8751903d90823e3d90fd5b8291945061527490823d8411610af457610ae68183613cf7565b93906151b9565b88513d88823e3d90fd5b84516334b04fe360e11b8152600490fd5b85516334b04fe360e11b8152600490fd5b9160018060a01b038093169160009280845260cc6020526040946152d360ff87872054166108c0614797565b81855260cc6020528060018787200193169283865260205260ff86862054161561537757859260849160dc541684519586948593634e79238f60e01b85526004850152602484015260448301528660648301525afa91821561536c579161534d575b5061533d5750565b51633a23d82560e01b8152600490fd5b6153649150823d84116109dd576109cd8183613cf7565b905038615335565b8351903d90823e3d90fd5b505050505050565b60018060a01b0380911690600090828252602060cc815260409160ff8385205416156154df5790806024939260db541683519485809263fc57d4df60e01b82528960048301525afa9283156109e45784936154b0575b508294831561549f5790808392600494519485809263313ce56760e01b82525afa9182156154965750849161545d575b5060ff9150166012811061541a575b50505090565b90919392506012036012811161544957604d811161544957615441929350600a0a906144aa565b388080615414565b634e487b7160e01b84526011600452602484fd5b905081813d831161548f575b6154738183613cf7565b8101031261080c575160ff8116810361080c5760ff9038615405565b503d615469565b513d86823e3d90fd5b82516348fa9b2b60e11b8152600490fd5b9080935081813d83116154d8575b6154c88183613cf7565b81010312610c2f575191386153d5565b503d6154be565b82516334b04fe360e11b8152600490fd5b90816020910312610ab857516001600160a01b0381168103610ab8579056fe2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a585dbb3f830c4325b9ffb1ad42c16ada76c518747b0fb7ee297b261fc6a0f29f71aec636243f9709bb0007ae15e9afb8150ab01716d75fd7573be5cc096e03b0a264697066735822122023fca9bc89d9892b3a0a8e6c148a29eb06cd6137a236d952bc1143a31910ac9a64736f6c63430008130033";
1927
+ const _bytecode = "0x60808060405234620000c6576000549060ff8260081c1662000074575060ff8082161062000038575b604051615d669081620000cc8239f35b60ff90811916176000557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160ff8152a13862000028565b62461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608490fd5b600080fdfe61024080604052600436101561001457600080fd5b60006101405260003560e01c9081627e3dd21461441e5750806301ffc9a7146143c85780631407e2811461436057806322c70ebd146141f457806323ec2fb2146141aa57806324008a6214614170578063248a9ca31461413d57806324a3d62214614111578063250d71e7146140b05780632bebbc091461406a5780632f2ff15d14613f9e5780633278eb0414613f72578063360f5a0114613f4657806336568abe14613eb45780633e90dce514613bd15780634e79238f146132475780634ef4c3e11461300557806352d84d1e14612fc357806355ee1fe114612f4d5780635608737514612e945780635f5af1aa14612cb95780635fc7e71e14611f9a5780637dc0d1d014611f6e57806381a397e414611edf57806387bae18f14611e575780638c765e9414611e1b5780638e8f294b14611dbd5780639158c2aa14611c2b57806391d1485414611bda57806395ee820814611baf578063a217fddf14611b90578063a7adfb4414611a6c578063a7c1abe014611a0a578063abfceffc14611987578063b0772d0b146118ec578063bdcdc25814611880578063c299823814611797578063cc2a9a5b146114be578063d02f73511461137e578063d33219b414611352578063d547741f1461130f578063d78a18d81461129a578063da3d454c146105e9578063dce1544914610588578063e22b393414610377578063e63ab1e914610339578063eabe7d91146102ec578063ede4edd0146102c4578063f794062e146102815763f96dae0a1461024b57600080fd5b3461027a5761014051806003193601126102775760d1546040516001600160a01b039091168152602090f35b80fd5b6101405180fd5b3461027a57602036600319011261027a576001600160a01b036102a2614438565b16610140515260cc602052602060ff6040610140512054166040519015158152f35b3461027a57602036600319011261027a576102e56102e0614438565b614d11565b6101405180f35b3461027a576102fa366144b5565b9060018060a01b038316610140515260cc60205260ff60406101405120541615610327576102e592615053565b6040516341554b6360e01b8152600490fd5b3461027a5761014051806003193601126102775760206040517f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8152f35b3461027a57606036600319011261027a5767ffffffffffffffff60043581811161027a576103a99036906004016146a3565b60243583811161027a576103c19036906004016146a3565b9360443590811161027a576103da9036906004016146a3565b9390916103e56146d4565b8315801561057e575b8015610574575b61056257610140515b84811061040c576101405180f35b61041781888461501b565b6104209061502b565b6001600160a01b03908161043584898861501b565b61043e9061503f565b16610140515260e56020918183526101405160409020906104819190640100000000600160981b0382549160201b1690640100000000600160981b031916179055565b61048c848a8961501b565b6104959061502b565b91836104a2868b8a61501b565b6104ab9061503f565b166101405152526101405160409020600101906001600160781b03166001600160781b03198254161790556104e182878661501b565b6104ea9061503f565b906104f683898861501b565b6104ff9061502b565b9161050b848a8961501b565b6105149061502b565b604080516001600160781b0395861681529190941660208201529116917f1f4350c8add28a86ccd16ab5ca63fc8dda2858c65a32b7b4b7c281300e14da1291a261055d90614bd6565b6103fe565b60405163b4fa3fb360e01b8152600490fd5b50848414156103f5565b50858414156103ee565b3461027a57604036600319011261027a576105a1614438565b61014080516001600160a01b03928316905260cb6020525160408120805460243593929084101561027757506020926105d991614537565b9190546040519260031b1c168152f35b3461027a576105f7366144b5565b6101005261014080516001600160a01b038416905260cc60205251604090205490919060ff16156103275761014080516001600160a01b038316905260e560205251604090205460081c60ff166112885760018060a01b038116610140515260cc6020526001604061014051200160018060a01b03831660005260205260ff60406000205416156111ff575b60018060a01b038116610140515260e56020526001600160781b03604061014051205460201c168061115c575b506106b9615bb2565b50600160ff60e65460701c16019060ff8211610d0f576106db60ff831661468b565b906106e96040519283614669565b60ff8316808352601f19906106fd9061468b565b0160005b818110611145575050600060c0526000610719615bb2565b60018060a01b03861660c0515260cb602052604060c05120916040518084602082965493848152019060c0515260c0519260208420935b81811061112357505061076592500384614669565b60c0515b8351811015610c42576001600160a01b036107848286614be5565b5116908160c0515260cc60205260ff604060c051205460081c1660ff6107aa828a614be5565b51511615610a2a575b6040516361bfb47160e11b81526001600160a01b038b16600482015290608082602481875afa91821561093c5760c051948591869087956109f1575b506001600160a01b038b168214948515806109e9575b806109e1575b6109d15760049761085e6108759261085961082587615a10565b60405196879161083483614614565b82526040519061084382614614565b81526040519361085285614614565b8452615cd0565b615cd0565b9061087e670de0b6b3a76400008094819385615d09565b51049685615d09565b510496610949575b5050604051637f4e225760e11b81529660209288925082905afa94851561093c576108ef958b9160c0519161090d575b50156108f457826040926108df60206108d56108e7976108d596614be5565b5101918251614aa9565b90528b614be5565b90525b614bd6565b610769565b826080926108df60606108d56108e7976108d596614be5565b61092f915060203d602011610935575b6109278183614669565b810190614f87565b8e6108b6565b503d61091d565b6040513d60c051823e3d90fd5b906109a692948161096f602096999460405161096481614614565b60c051905251614a87565b8060405161097c81614614565b5204908082116109af5761099f9161099391614d04565b955b6101005190615d09565b5104614aa9565b93908e80610886565b6109be906109c4939492614d04565b90614aa9565b9061099f60c05195610995565b5050505050506108ef9150614bd6565b50831561080b565b508715610805565b9250509450610a1991925060803d608011610a23575b610a118183614669565b810190614cc5565b939295908e6107ef565b503d610a07565b8060c0515260e4602052604060c0512060405190610a47826145e2565b549060ff8216815261ffff8260081c169081602082015261ffff8360181c16604082015261ffff8360281c16606082015261ffff8360381c16608082015261ffff8360481c1660a082015281662386f26fc10000810204662386f26fc100001482151715610c2a57662386f26fc1000060405192610ac484614614565b02825261ffff60408201511680662386f26fc10000810204662386f26fc100001481151715610c2a57662386f26fc1000060405191610b0283614614565b02815261ffff6060830151169081662386f26fc10000810204662386f26fc100001482151715610c2a57662386f26fc1000060405192610b4184614614565b02825261ffff6080840151169283662386f26fc10000810204662386f26fc100001484151715610c2a5760a061ffff91662386f26fc1000060405196610b8688614614565b0286520151169384662386f26fc10000810204662386f26fc100001485151715610c2a57662386f26fc1000060405195610bbf87614614565b02855260ff60405196610bd188614630565b16865260c051602087015260c051604087015260c051606087015260c051608087015260a086015260c085015260e0840152610100830152610120820152610c19828a614be5565b52610c248189614be5565b506107b3565b634e487b7160e01b60c051526011600452602460c051fd5b5060c080516001600160a01b038616905260cc60205251604081205460081c60ff169285929188918891905b60ff821660ff8516811015610e885760ff610c898286614be5565b51511615610e7e57610c9b9084614be5565b5190608082015180610e5b575b50604082015180610e38575b50608082015180610e15575b50604082015180610df2575b50610ce06020830151606084015190614aa9565b151580610dd7575b610d8f57815160ff168803610d25575060ff90915b1660ff8114610d0f5760010190610c6e565b634e487b7160e01b600052601160045260246000fd5b9194816080610d80610d8993610d7261099f610d5d61010060ff99015160c05190670de0b6b3a764000093849160208b015190615d09565b9061099f610120880151606089015190615d09565b60c052604084015190614aa9565b91015190614aa9565b94610cfd565b60a48260ff81511690602081015190606081015160806040830151920151926040519463f523ae3d60e01b865260048601526024850152604484015260648301526084820152fd5b50610deb6040830151608084015190614aa9565b1515610ce8565b610e08606084019182519060e086015191615c40565b6040850152905288610ccc565b610e2b606084019182519060e086015191615c40565b6080850152905288610cc0565b610e4e602084019182519060a086015191615c40565b6040850152905288610cb4565b610e71602084019182519060c086015191615c40565b6080850152905288610ca8565b509060ff90610cfd565b50858560c05181811160001461110f5750610ea59060c051614d04565b60c0526000905b6040830192835180151580611104575b6110c7575b5060808101918251801515806110bc575b61107f575b5083611061575b83611043575b60c051906001600160a01b03811615159081610fc9575b50610f4e92610f569592610f4692600014610f9b5761099f610f34670de0b6b3a7640000928361099f60c0870151602088015190615d09565b925b606060e082015191015190615d09565b945190614aa9565b905190614aa9565b90151580610f92575b610f8057610f6e576101405180f35b604051633a23d82560e01b8152600490fd5b604051633bcdab6b60e01b8152600490fd5b50801515610f5f565b50670de0b6b3a764000061099f610fc360a08401518361099f60c05192602088015190615d09565b92610f36565b604051637f4e225760e11b81529295929150602090829060049082906001600160a01b03165afa92831561103757610f5695610f4e94610f4693600091611018575b5015925092955092610efb565b611031915060203d602011610935576109278183614669565b8961100b565b6040513d6000823e3d90fd5b61105a606083019485519061012085015191615c40565b9452610ee4565b611078602083019485519061010085015191615c40565b9452610ede565b60c051818111156110a7575050611099835160c051614d04565b60c052600083525b85610ed7565b6110b091614d04565b8352600060c0526110a1565b5060c0511515610ed2565b60c051818111156110ef5750506110e1845160c051614d04565b60c052600084525b84610ec1565b6110f891614d04565b8452600060c0526110e9565b5060c0511515610ebc565b61111891614d04565b90600060c052610eac565b84546001600160a01b0316835260019485019488945060209093019201610750565b602090611150615bb2565b82828701015201610701565b6040516308f7a6e360e31b81526020816004816001600160a01b0387165afa80156111f15761014051906111b8575b61119a91506101005190614aa9565b10156111a657826106b0565b6040516353977d1f60e01b8152600490fd5b506020813d6020116111e9575b816111d260209383614669565b810103126111e45761119a905161118b565b600080fd5b3d91506111c5565b6040513d61014051823e3d90fd5b6001600160a01b03811633036112765733610140515260cc60205260ff60406101405120541615610327576112348233614bf9565b60018060a01b038116610140515260cc6020526001604061014051200160018060a01b03831660005260205261127160ff60406000205416614ce7565b610683565b6040516318e2bacb60e11b8152600490fd5b60405163095865a360e11b8152600490fd5b3461027a57602036600319011261027a5760ff6112b56144a5565b16610140515260e460205260c060406101405120546040519060ff8116825261ffff90818160081c166020840152818160181c166040840152818160281c166060840152818160381c16608084015260481c1660a0820152f35b3461027a57604036600319011261027a576102e560043561132e61444e565b90806101405152606560205261134d60016040610140512001546148e2565b614a11565b3461027a5761014051806003193601126102775760dd546040516001600160a01b039091168152602090f35b3461027a5761138c3661454f565b5050509060018060a01b038091169182610140515260209060cc825260ff6040610140512054161561032757821680610140515260cc825260ff604061014051205416156103275783610140515260e5825260ff604061014051205460181c166114ac57604051938285600481635fe3b56760e01b948582525afa9485156111f157610140519561148b575b50829060046040518094819382525afa9081156111f1578392610140519261145e575b50501691160361144c576101405180f35b604051630c73eb0560e01b8152600490fd5b61147d9250803d10611484575b6114758183614669565b810190615b93565b848061143b565b503d61146b565b839195506114a590823d8411611484576114758183614669565b9490611418565b6040516307f4077b60e11b8152600490fd5b3461027a5760c036600319011261027a576114d7614438565b6114df61444e565b906044356001600160a01b03811690036111e4576064356001600160a01b03811690036111e457608435916001600160a01b03831683036111e45760a4356001600160a01b03811681036111e45761014051549160ff8360081c16159485809661178a575b8015611773575b15611717577ff261845a790fe29bbd6631e2ca4a5bdc83e6eed7c3271d9590d97287e00e912394602094610140519088600160ff198316178355611706575b508052606585526101405160408082206001600160a01b0384166000908152908852205460ff16156116a8575b505060d180546001600160a01b039384166001600160a01b03199182161790915560da80546044358516908316811790915560de80546064359095169483168517905560408051918252602082019490945290927f4f813296278c4a6ff473beaa88063942b681c61aa1f935692e19c41a02dde62a91a160dd80546001600160a01b0392831690841617905560db8054939091169183168217905560405161014051909216178152a161166b576101405180f35b6101405161ff001981541690557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160018152a16102e5565b8052606585526101405160408082206001600160a01b039390931660008181529388529220805460ff191660011790553391907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a486806115b7565b61ffff19166101011781558861158a565b60405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608490fd5b50303b15801561154b5750600160ff85161461154b565b50600160ff851610611544565b3461027a5760208060031936011261027a5760043567ffffffffffffffff811161027a573660238201121561027a578060040135906117d58261468b565b916117e36040519384614669565b80835260248484019160051b8301019136831161027a57602401905b82821061186157505050805190610140515b82811061181f576101405180f35b6001600160a01b036118318284614be5565b51169081610140515260cc855260ff60406101405120541615610327576108ea61185c923390614bf9565b611811565b81356001600160a01b03811681036111e45781529084019084016117ff565b3461027a5761188e36614464565b91905060018060a01b03831680610140515260e560205260ff604061014051205460101c166118da57610140515260cc60205260ff60406101405120541615610327576102e592615053565b60405163cd1fda9f60e01b8152600490fd5b3461027a576101405180600319360112610277576040518060cd549182815260208091019260cd61014051527f83978b4c69c48dd978ab43fe30f077615294f938fb7f936d9eb340e51ea7db2e9161014051905b828210611967576119638561195781890382614669565b6040519182918261459e565b0390f35b83546001600160a01b031686529485019460019384019390910190611940565b3461027a5760208060031936011261027a576001600160a01b03806119aa614438565b16610140515260cb8252604061014051209160405180928285549283815201946101405152610140519280842093915b8383106119f15761196386611957818a0382614669565b84548116875295810195600194850194909201916119da565b3461027a5761014051806003193601126102775760e6546040805161ffff83168152601083901c63ffffffff9081166020830152603084901c811692820192909252605083901c909116606082015260709190911c60ff16608082015260a090f35b3461027a5760a036600319011261027a57611a856146d4565b61ffff611a90614f9f565b1660e6549065ffffffff0000611aa4614fd2565b60101b1669ffffffff000000000000611abb614fe5565b60301b169063ffffffff60501b611ad0614ff8565b60501b169260ff60701b611ae261500b565b60701b16946001600160781b031916171717171760e6557f14afda479c9cdb1b364268a7f4859305595991e335158f423d3f30ece9565fa1611b22614f9f565b611b2a614fd2565b90611b86611b36614fe5565b611b3e614ff8565b611b4661500b565b9160405195869586939260809360ff939796929761ffff60a088019916875263ffffffff9283809216602089015216604087015216606085015216910152565b0390a16101405180f35b3461027a57610140518060031936011261027757602090604051908152f35b3461027a57602036600319011261027a576020611bd2611bcd614438565b615a10565b604051908152f35b3461027a57604036600319011261027a57611bf361444e565b60043561014051526065602052604061014051209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b3461027a5760c036600319011261027a57611c446144a5565b6024359061ffff918281168091036111e457604435928084168094036111e457606435918183168093036111e457608435908282168092036111e45760a4359283168093036111e4577f9fda7abee4eda89d92494b6c6eaa73afc7d274ff49f02c4900e35dfbdb64910f9260a092611cba6146d4565b60405195611cc7876145e2565b60ff881698878a80995260208101868152604082018381526060830185815260808401908782528a8501928984528d610140515260e460205260ff604061014051209651166affff00000000000000000068ffff0000000000000066ffff000000000064ffff00000062ffff008b549a5160081b16955160181b16955160281b16955160381b16955160481b16956affffffffffffffffffffff191617171717171790556040519485526020850152604084015260608301526080820152a260e6549160ff8360701c1610611d9d576101405180f35b60ff60701b1990911660709190911b60ff60701b161760e65580806102e5565b3461027a57602036600319011261027a576001600160a01b03611dde614438565b16610140515260cc60205260606040610140512060ff600282549201541660ff604051928181161515845260081c16602083015215156040820152f35b3461027a57610140518060031936011261027757606060e7546040519061ffff908181168352818160101c16602084015260201c166040820152f35b3461027a57602036600319011261027a57611e70614438565b611e786146d4565b6001600160a01b03168015611ecd576020817f2d4667ae407248b3da2da6f92d6dc3c9d3529d53fbdc7d476d540d68bb29d02d926001600160601b0360a01b60dd54161760dd55604051908152a16101405180f35b6040516342bcdf7f60e11b8152600490fd5b3461027a57602036600319011261027a576001600160a01b03611f00614438565b16610140515260e560205260c06040610140512060018154916001600160781b03918291015416906040519260ff81161515845260ff8160081c161515602085015260ff8160101c161515604085015260ff8160181c161515606085015260201c16608083015260a0820152f35b3461027a5761014051806003193601126102775760db546040516001600160a01b039091168152602090f35b3461027a57611fa83661454f565b93915061016052806101205260018060a01b0316610140515260cc6020526101405160ff60408220541615918215612c99575b5050612c87576040516395dd919360e01b8152610160516001600160a01b0390811660048301526101205160209183916024918391165afa9081156111f1576101405191612c55575b5061203f63ffffffff60e654806101805260501c1642614d04565b60018060a01b036101605116610140515260e260205265ffffffffffff6040610140512054161015612c4357604051630c71782360e41b815261012051602090829060049082906001600160a01b03165afa9081156111f1576101405191612c24575b50156120c657106120b4576101405180f35b60405163e46c155960e01b8152600490fd5b906120cf615bb2565b506101805160ff6001818360701c160111610d0f576120fb60ff6001816121089460701c16011661468b565b604051806101c052614669565b60ff6001816101805160701c1601166101c05152601f1961213660ff6001816101805160701c16011661468b565b0160005b818110612c0a575050600060e052600090600060a052612158615bb2565b60a05260018060a01b03610160511660e0515260cb602052604060e0512060405190816101e0526020815492838152019060e0515260e0519160208320925b818110612beb5750506121b291506101e05180910390614669565b60e0515b6101e051805182101561265f576001600160a01b03906121d7908390614be5565b5116908160e0515260cc602052604060e051205460089060ff6122018183851c166101c051614be5565b51511615612433575b6040516361bfb47160e11b8152610160516001600160a01b0316600482015291608083602481885afa92831561234b5760e0519586918790889661240a575b50610120516001600160a01b0316821495861580612402575b806123fa575b6123e9576004986122826108759261085961082587615a10565b90612299670de0b6b3a76400008094819385615d09565b510497612358575b5050604051637f4e225760e11b81529760209289925082905afa801561234b576123049660e0519161232c575b50156123095760ff83836108d5936122f760206108d5866108e79a60409a1c166101c051614be5565b90521c166101c051614be5565b6121b6565b60ff83836108d5936122f760606108d5866108e79a60809a1c166101c051614be5565b612345915060203d602011610935576109278183614669565b8a6122ce565b6040513d60e051823e3d90fd5b906123c492948161237e6020969a9460405161237381614614565b60e051905251614a87565b8060405161238b81614614565b5204908082116123cd576123b0916123a291614d04565b955b60405161237381614614565b806040516123bd81614614565b5204614aa9565b94908b806122a1565b6109be906123dc939492614d04565b906123b060e051956123a4565b505050505050506123049150614bd6565b508315612268565b508815612262565b925050955061242991935060803d608011610a2357610a118183614669565b949296908b612249565b60ff81831c1660e0515260e4602052604060e0512060405190612455826145e2565b549060ff8216815261ffff82851c169081602082015261ffff8360181c16604082015261ffff8360281c16606082015261ffff8360381c16608082015261ffff8360481c1660a082015281662386f26fc10000810204662386f26fc10000148215171561264757662386f26fc10000604051926124d184614614565b02825261ffff60408201511680662386f26fc10000810204662386f26fc10000148115171561264757662386f26fc100006040519161250f83614614565b02815261ffff6060830151169081662386f26fc10000810204662386f26fc10000148215171561264757662386f26fc100006040519261254e84614614565b02825261ffff6080840151169283662386f26fc10000810204662386f26fc1000014841517156126475760a061ffff91662386f26fc100006040519661259388614614565b0286520151169384662386f26fc10000810204662386f26fc10000148515171561264757662386f26fc10000604051956125cc87614614565b02855260ff604051966125de88614630565b16865260e051602087015260e051604087015260e051606087015260e051608087015260a086015260c085015260e084015261010083015261012082015261262e60ff83851c166101c051614be5565b5261264160ff82841c166101c051614be5565b5061220a565b634e487b7160e01b60e051526011600452602460e051fd5b5050919060018060a01b03610120511660e0515260cc60205260e0519260ff604085205460081c16935b60ff6001816101805160701c16011660ff82169081101561287e5760ff6126b3826101c051614be5565b51511615612875576126c8906101c051614be5565b51608081015180612852575b5060408101518061282f575b5060808101518061280c575b506040810151806127e9575b5061270c6020820151606083015190614aa9565b1515806127ce575b61278657805160ff16860361273b5760a05260ff905b1660ff8114610d0f57600101612689565b806080610d8060ff949661277261099f610d5d61010061278098015160e05190670de0b6b3a764000093849160208b015190615d09565b60e052604084015190614aa9565b9261272a565b8060ff60a492511690602081015190606081015160806040830151920151926040519463f523ae3d60e01b865260048601526024850152604484015260648301526084820152fd5b506127e26040820151608083015190614aa9565b1515612714565b6127ff606083019182519060e085015191615c40565b60408401529052866126f8565b612822606083019182519060e085015191615c40565b60808401529052866126ec565b612845602083019182519060a085015191615c40565b60408401529052866126e0565b612868602083019182519060c085015191615c40565b60808401529052866126d4565b5060ff9061272a565b505091925060e051818111600014612bd8575061289d9060e051614d04565b60e05260005b604060a051015180151580612bcd575b612b81575b50608060a051015180151580612b76575b612b2a575b5080612b0a575b80612aea575b60e051610120519091906001600160a01b0316151580612a8d575b6060929015612a595761295861294a61292b61296593670de0b6b3a764000061099f60a051602060c082015191015190615d09565b60a05161099f60e0820151670de0b6b3a7640000988993015190615d09565b92604060a051015190614aa9565b608060a051015190614aa9565b90151580612a50575b610f805715612a3e5761298361012051615a10565b9061ffff6101805116662386f26fc100009081810290808204831481151715612a24576d04ee2d6d415b85acef810000000002918183041490151715612a24576129da826129d2878294614a96565b048094614a96565b040463ffffffff6101805160101c1611600014612a0a575011156102e55760405163e46c155960e01b8152600490fd5b915011156102e55760405163e46c155960e01b8152600490fd5b634e487b7160e01b61014051526011600452602461014051fd5b60405163095bf33360e01b8152600490fd5b5080151561296e565b5061296561295861294a612a8860a051670de0b6b3a764000061099f60a0830151602060e05194015190615d09565b61292b565b5060405191637f4e225760e11b835260208360048160018060a01b0361012051165afa801561103757606093600091612acb575b50159092506128f6565b612ae4915060203d602011610935576109278183614669565b86612ac1565b612b0360a0516060810192610120845192015191615c40565b91526128db565b612b2360a0516020810192610100845192015191615c40565b91526128d5565b60e05181811115612b5c575050612b49608060a051015160e051614d04565b60e0526000608060a05101525b836128ce565b612b6591614d04565b608060a0510152600060e052612b56565b5060e05115156128c9565b60e05181811115612bb3575050612ba0604060a051015160e051614d04565b60e0526000604060a05101525b836128b8565b612bbc91614d04565b604060a0510152600060e052612bad565b5060e05115156128b3565b612be191614d04565b600060e0526128a3565b83546001600160a01b0316835260019384019360209093019201612197565b602090612c15615bb2565b82826101c0510101520161213a565b612c3d915060203d602011610935576109278183614669565b836120a2565b60405163d26a7d5f60e01b8152600490fd5b90506020813d602011612c7f575b81612c7060209383614669565b810103126111e4575182612024565b3d9150612c63565b6040516334b04fe360e11b8152600490fd5b6001600160a01b031690525061014051604090205460ff16158280611fdb565b3461027a5760208060031936011261027a57612cd3614438565b612cdb6146d4565b6001600160a01b03908116908115611ecd577f0613b6ee6a04f0d09f390e4d9318894b9f6ac7fd83897cd8d18896ba579c401e928160d55416927f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8061014051526065808452612d5460016040610140512001546148e2565b81600052808452604060002086600052845260ff60406000205416612e48575b826001600160601b0360a01b60d554161760d555816101405152808452612da460016040610140512001546148e2565b816101405152808452610140516040812084600052855260ff6040600020541615612df5575b60d554604080516001600160a01b038a81168252928916909216602083015289919081908101611b86565b82905283526101405192604084209083600052526040600020600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a48380808080612dca565b816000528084526040600020866000528452604060002060ff1981541690553386837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b600080a4612d74565b3461027a57606036600319011261027a57612ead6146d4565b7f2698927ee5b9013fbd186eaff76d8f2c53d81f992f036c5a8e0ebcc3b9e34c27606061ffff80612edc614f9f565b1660e7549063ffff0000612eee614fb0565b60101b169065ffff00000000612f02614fc1565b60201b169265ffffffffffff191617171760e755612f1e614f9f565b90612f27614fb0565b81612f30614fc1565b918160405195168552166020840152166040820152a16101405180f35b3461027a57602036600319011261027a57612f66614438565b612f6e6146d4565b6001600160a01b03168015611ecd576020817ff261845a790fe29bbd6631e2ca4a5bdc83e6eed7c3271d9590d97287e00e9123926001600160601b0360a01b60db54161760db55604051908152a16101405180f35b3461027a57602036600319011261027a5760043560cd5481101561027a57612fec6020916144ea565b905460405160039290921b1c6001600160a01b03168152f35b3461027a57613013366144b5565b60018060a09493941b038092169182610140515260209360cc855260ff604061014051205416156103275783610140515260e5855260ff604061014051205416613235576040516361bfb47160e11b81529181166004830181905291608081602481885afa80156111f15761014051918291613213575b5085610140515260cc87526001604061014051200184600052875260ff6040600020541615918261320a575b5081613201575b50613192575b505081610140515260e583526001600160781b0390816001604061014051200154161515938461310f575b505050506130fd576101405180f35b6040516354db2d5d60e11b8152600490fd5b90919293506040516318160ddd60e01b81528181600481885afa9081156111f1576101405191613164575b5060e59261314791614aa9565b9361014051525260016040610140512001541610818080806130ee565b90508181813d831161318b575b61317b8183614669565b810103126111e4575160e561313a565b503d613171565b8333036131ef5733610140515260cc855260ff60406101405120541615610327576131bd9033614bf9565b82610140515260cc8452600160406101405120019060005283526131e860ff60406000205416614ce7565b83806130c3565b60405163094d2b6d60e21b8152600490fd5b905015866130bd565b159150876130b6565b905061322d915060803d8111610a2357610a118183614669565b50508761308a565b604051636be9245d60e11b8152600490fd5b3461027a57608036600319011261027a57613260614438565b61326861444e565b613270615bb2565b50600160ff60e65460701c1601806101a05260ff8111610d0f5760ff613296911661468b565b906132a46040519283614669565b60ff6101a051168252601f196132bf60ff6101a0511661468b565b0160005b818110613bba57505060006080526000916132dc615bb2565b60018060a01b0385166080515260cb6020526040608051209060405180836020829554938481520190608051526080519260208420935b818110613b9857505061332892500383614669565b6080515b825181101561378a576001600160a01b036133478285614be5565b511690816080515260cc6020526040608051205460089060ff61336e8183851c1689614be5565b51511615613564575b6040516361bfb47160e11b81526001600160a01b038b16600482015291608083602481885afa9283156134ae576080519586918790889661353b575b506001600160a01b038c16821495861580613533575b8061352b575b61351a576004986133e96108759261085961082587615a10565b90613400670de0b6b3a76400008094819385615d09565b5104976134bb575b5050604051637f4e225760e11b81529760209289925082905afa9586156134ae57613469968a916080519161348f575b501561346e5783836108d59361345f60206108d560ff96876108e79b60409b1c1690614be5565b90521c1689614be5565b61332c565b83836108d59361345f60606108d560ff96876108e79b60809b1c1690614be5565b6134a8915060203d602011610935576109278183614669565b8e613438565b6040513d608051823e3d90fd5b906134f59294816134d36020969a9460443590615d09565b5104908082116134fe5761099f916134ea91614d04565b955b60643590615d09565b94908e80613408565b6109be9061350d939492614d04565b9061099f608051956134ec565b505050505050506134699150614bd6565b5083156133cf565b5088156133c9565b925050955061355a91935060803d608011610a2357610a118183614669565b949296908e6133b3565b60ff81831c166080515260e460205260406080512060405190613586826145e2565b549060ff8216815261ffff82851c169081602082015261ffff8360181c16604082015261ffff8360281c16606082015261ffff8360381c16608082015261ffff8360481c1660a082015281662386f26fc10000810204662386f26fc10000148215171561377257662386f26fc100006040519261360284614614565b02825261ffff60408201511680662386f26fc10000810204662386f26fc10000148115171561377257662386f26fc100006040519161364083614614565b02815261ffff6060830151169081662386f26fc10000810204662386f26fc10000148215171561377257662386f26fc100006040519261367f84614614565b02825261ffff6080840151169283662386f26fc10000810204662386f26fc1000014841517156137725760a061ffff91662386f26fc10000604051966136c488614614565b0286520151169384662386f26fc10000810204662386f26fc10000148515171561377257662386f26fc10000604051956136fd87614614565b02855260ff6040519661370f88614630565b168652608051602087015260805160408701526080516060870152608051608087015260a086015260c085015260e084015261010083015261012082015261375c60ff83851c1689614be5565b5261376c60ff82841c1688614be5565b50613377565b634e487b7160e01b6080515260116004526024608051fd5b608080516001600160a01b038716905260cc60205251604081205460081c60ff1690878787865b60ff851660ff6101a051168110156139505760ff6137cf8285614be5565b51511615613946576137e19083614be5565b5190608082015180613923575b50604082015180613900575b506080820151806138dd575b506040820151806138ba575b506138266020830151606084015190614aa9565b15158061389f575b610d8f57815160ff168703613855575060ff90945b1660ff8114610d0f57600101936137b1565b9493816080610d806138999361388c61099f610d5d61010060ff990151865190670de0b6b3a764000093849160208b015190615d09565b8352604084015190614aa9565b93613843565b506138b36040830151608084015190614aa9565b151561382e565b6138d0606084019182519060e086015191615c40565b6040850152905287613812565b6138f3606084019182519060e086015191615c40565b6080850152905287613806565b613916602084019182519060a086015191615c40565b60408501529052876137fa565b613939602084019182519060c086015191615c40565b60808501529052876137ee565b509360ff90613843565b508284608051818111600014613b84575061396d90608051614d04565b6080526000905b6040830192835180151580613b79575b613b3c575b506080810191825180151580613b31575b613af4575b5083613ad6575b83613ab8575b608051906001600160a01b03811615159081613a4a575b50610f4e926139fc9592610f4692600014613a225761099f610f34670de0b6b3a7640000928361099f60c0870151602088015190615d09565b9080151580613a19575b610f805760409182519182526020820152f35b50811515613a06565b50670de0b6b3a764000061099f610fc360a08401518361099f60805192602088015190615d09565b604051637f4e225760e11b81529295929150602090829060049082906001600160a01b03165afa928315611037576139fc95610f4e94610f4693600091613a99575b50159250929550926139c3565b613ab2915060203d602011610935576109278183614669565b89613a8c565b613acf606083019485519061012085015191615c40565b94526139ac565b613aed602083019485519061010085015191615c40565b94526139a6565b60805181811115613b1c575050613b0e8351608051614d04565b608052600083525b8561399f565b613b2591614d04565b83526000608052613b16565b50608051151561399a565b60805181811115613b64575050613b568451608051614d04565b608052600084525b84613989565b613b6d91614d04565b84526000608052613b5e565b506080511515613984565b613b8d91614d04565b906000608052613974565b84546001600160a01b0316835260019485019487945060209093019201613313565b602090613bc5615bb2565b828287010152016132c3565b3461027a57608036600319011261027a57613bea614438565b6024359060ff82169081830361027a576044356001600160781b0391828216820361027a576064359283169081840361027a57613c256146d4565b60018060a01b03908181169687610140515260209660cc885260ff604061014051205416613e735715613ea257604051637f4e225760e11b815287816004818c5afa80156111f157613e85575b50813b156105625787610140515260cc875261014051906001604083209161ff0083549160081b169061ffff1916171790559060cd54915b828110613e4d5750600160401b821015613e2157613cd1826001613cf0940160cd556144ea565b90919082549060031b9160018060a01b03809116831b921b1916179055565b640100000000431015613e3b5760da5416803b1561027a5760405190633ace041560e11b825286600483015263ffffffff43166024830152816044816101405180945af180156111f157613e08575b5060e5847fcf583bb0c569eb967f806b11601c4cb93c10310485c67add5f8362c2f212321f7f1f4350c8add28a86ccd16ab5ca63fc8dda2858c65a32b7b4b7c281300e14da1296604051898152a186610140515252600160406101405120613dca848290640100000000600160981b0382549160201b1690640100000000600160981b031916179055565b0180546effffffffffffffffffffffffffffff1916919091179055604080516001600160781b03928316815292909116602083015290a26101405180f35b67ffffffffffffffff8111613e215760405260e5613d3f565b634e487b7160e01b61014051526041600452602461014051fd5b604051631391e11b60e21b8152600490fd5b8884613e58836144ea565b90549060031b1c1614613e7357613e6e90614bd6565b613caa565b604051634d5eeb4960e01b8152600490fd5b613e9b90883d8a11610935576109278183614669565b5088613c72565b604051631b47388560e11b8152600490fd5b3461027a57604036600319011261027a57613ecd61444e565b336001600160a01b03821603613ee9576102e590600435614a11565b60405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608490fd5b3461027a5761014051806003193601126102775760da546040516001600160a01b039091168152602090f35b3461027a5761014051806003193601126102775760de546040516001600160a01b039091168152602090f35b3461027a57604036600319011261027a57600435613fba61444e565b8161014051526065602052613fd860016040610140512001546148e2565b81610140515260656020526101405190604082209060018060a01b03168092526020526101405160ff60408220541615614013576101405180f35b82905260656020526101405181604082209152602052610140519160408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a48080806102e5565b3461027a57602036600319011261027a576001600160a01b0361408b614438565b16610140515260e2602052602065ffffffffffff604061014051205416604051908152f35b3461027a57602036600319011261027a5760ff6140cb6144a5565b6140d36146d4565b1680610140515260e460205261014051908160408120557f43d0e400379e99c6a1d618a8b7110cc3558e16380afb06f6b69f5da65c17a7d88280a280f35b3461027a5761014051806003193601126102775760d5546040516001600160a01b039091168152602090f35b3461027a57602036600319011261027a576004356101405152606560205260206001604061014051200154604051908152f35b3461027a5761417e36614464565b50505060018060a01b0316610140515260cc60205260ff60406101405120541615610327576101405180f35b3461027a57602036600319011261027a576141c3614438565b6141cb6146d4565b6001600160a01b03168015611ecd576001600160601b0360a01b60d154161760d1556101405180f35b3461027a5760a036600319011261027a5761420d614438565b6024359081151580920361027a5760443580151580910361027a5760643580151580910361027a576084359081151580920361027a576101405180526020926065845261014051604081209033905284526101405160ff604082205416159081614318575b50614306577f6cdba85bf8c0449c45d7967a9c1ef7e6f69aabd25eb273e4b6f184f9e26477a69560a095600180881b03169485610140515260e5815260406101405120805463ff0000008760181b169062ff00008760101b169060ff86169063ffffffff19161761ff008760081b161717179055604051958652850152604084015260608301526080820152a16101405180f35b604051630e8e849b60e41b8152600490fd5b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a91505260658452610140516040812090339052845260ff6040610140512054161587614272565b3461027a57604036600319011261027a57614379614438565b33610140515260cc60205260ff604061014051205416156103275760018060a01b0316610140515260e2602052610140516040812065ffffffffffff421665ffffffffffff1982541617905580f35b3461027a57602036600319011261027a5760043563ffffffff60e01b811680910361027a57602090637965db0b60e01b811490811561440d575b506040519015158152f35b6301ffc9a760e01b14905082614402565b346111e45760003660031901126111e45780600160209252f35b600435906001600160a01b03821682036111e457565b602435906001600160a01b03821682036111e457565b60809060031901126111e4576001600160a01b0360043581811681036111e4579160243582811681036111e4579160443590811681036111e4579060643590565b6004359060ff821682036111e457565b60609060031901126111e4576001600160a01b039060043582811681036111e4579160243590811681036111e4579060443590565b60cd548110156145215760cd6000527f83978b4c69c48dd978ab43fe30f077615294f938fb7f936d9eb340e51ea7db2e0190600090565b634e487b7160e01b600052603260045260246000fd5b80548210156145215760005260206000200190600090565b60a09060031901126111e4576001600160a01b039060043582811681036111e4579160243581811681036111e4579160443582811681036111e4579160643590811681036111e4579060843590565b6020908160408183019282815285518094520193019160005b8281106145c5575050505090565b83516001600160a01b0316855293810193928101926001016145b7565b60c0810190811067ffffffffffffffff8211176145fe57604052565b634e487b7160e01b600052604160045260246000fd5b6020810190811067ffffffffffffffff8211176145fe57604052565b610140810190811067ffffffffffffffff8211176145fe57604052565b6080810190811067ffffffffffffffff8211176145fe57604052565b90601f8019910116810190811067ffffffffffffffff8211176145fe57604052565b67ffffffffffffffff81116145fe5760051b60200190565b9181601f840112156111e45782359167ffffffffffffffff83116111e4576020808501948460051b0101116111e457565b3360009081527fffdfc1249c027f9191656349feb0761381bb32c9f557e01f419fd08754bf5a1b60209081526040808320549092919060ff161561471757505050565b61472033614ac7565b83518361472c8261464d565b604282528382019460603687378251156148ce57603086538251906001918210156148ce5790607860218501536041915b8183116148605750505061481e57846147ec60486148109360449798519889916147dd8984019876020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b8a526147b4815180928d6037890191016149ee565b8401917001034b99036b4b9b9b4b733903937b6329607d1b6037840152518093868401906149ee565b01036028810189520187614669565b5194859362461bcd60e51b85526004850152518092816024860152858501906149ee565b601f01601f19168101030190fd5b60648386519062461bcd60e51b825280600483015260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152fd5b909192600f811660108110156148ba576f181899199a1a9b1b9c1cb0b131b232b360811b901a6148908587614ab6565b5360041c9280156148a65760001901919061475d565b634e487b7160e01b82526011600452602482fd5b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b81526032600452602490fd5b6000818152602060658152604092838320338452825260ff84842054161561490a5750505050565b61491333614ac7565b908451906149208261464d565b604282528382019460603687378251156148ce57603086538251906001918210156148ce5790607860218501536041915b8183116149a85750505061481e57846147ec60486148109360449798519889916147dd8984019876020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b8a526147b4815180928d6037890191016149ee565b909192600f811660108110156148ba576f181899199a1a9b1b9c1cb0b131b232b360811b901a6149d88587614ab6565b5360041c9280156148a657600019019190614951565b60005b838110614a015750506000910152565b81810151838201526020016149f1565b906000918083526065602052604083209160018060a01b03169182845260205260ff604084205416614a4257505050565b8083526065602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a4565b906001600092151715610d0f57565b81810292918115918404141715610d0f57565b91908201809211610d0f57565b908151811015614521570160200190565b604051906060820182811067ffffffffffffffff8211176145fe57604052602a82526020820160403682378251156145215760309053815160019081101561452157607860218401536029905b808211614b68575050614b245790565b606460405162461bcd60e51b815260206004820152602060248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152fd5b9091600f81166010811015614bc1576f181899199a1a9b1b9c1cb0b131b232b360811b901a614b978486614ab6565b5360041c918015614bac576000190190614b14565b60246000634e487b7160e01b81526011600452fd5b60246000634e487b7160e01b81526032600452fd5b6000198114610d0f5760010190565b80518210156145215760209160051b010190565b919060018060a01b0392600093808216855260cc60205260016040862001908316855260205260408420805460ff8116614cbd5760ff1916600117905560cb60205260408420805494600160401b861015614ca9575081613cd186614c859360017f3ab23ab0d51cccc0c3085aec51f99228625aa1a922b3a8ca89a26b0f2027a1a59899018155614537565b604080516001600160a01b039283168152929091166020830152819081015b0390a1565b634e487b7160e01b81526041600452602490fd5b505050509050565b91908260809103126111e4578151916020810151916060604083015192015190565b15614cee57565b634e487b7160e01b600052600160045260246000fd5b91908203918211610d0f57565b604080516361bfb47160e11b81523360048201526001600160a01b03838116939192909190608084602481885afa8015614f7c576000948591614f56575b50614f46578460005260209360cc855260ff82600020541615614f3557614d77903384615053565b8460005260cc845260019384826000200133600052815281600020805460ff811615614f2b5760ff1916905560cb8152816000209482519081968791848254948581520191600052846000209060005b86868210614f135750505050614ddf92500386614669565b845194859660005b888110614ee1575b505050614e03859660cb9394959610614ce7565b3360005252806000209283549460001995868101908111610d0f57614e5f9183614e30614e3a9389614537565b9390549289614537565b92909360031b1c169082549060031b9160018060a01b03809116831b921b1916179055565b8354938415614ecb577fe699a64c18b07ac5b7301aa273f36a2287239eb9501d81950672794afba29a0d95614ca4950191614e9a8383614537565b815460039190911b9290921b19909116905555516001600160a01b0390911681523360208201529081906040820190565b634e487b7160e01b600052603160045260246000fd5b8187614eed8386614be5565b511614614f0257614efd90614bd6565b614de7565b9650614e03915060cb905038614def565b83548b1685528b955090930192918101918101614dc7565b5050505050505050565b81516341554b6360e01b8152600490fd5b51631a4e452560e31b8152600490fd5b9050614f7191945060803d8111610a2357610a118183614669565b505093909338614d4f565b50513d6000823e3d90fd5b908160209103126111e4575180151581036111e45790565b60043561ffff811681036111e45790565b60243561ffff811681036111e45790565b60443561ffff811681036111e45790565b60243563ffffffff811681036111e45790565b60443563ffffffff811681036111e45790565b60643563ffffffff811681036111e45790565b60843560ff811681036111e45790565b91908110156145215760051b0190565b356001600160781b03811681036111e45790565b356001600160a01b03811681036111e45790565b90929181610220526102005260018060a01b031660005260cc602052600160406000200160018060a01b03831660005260205260ff6040600020541615615a0c5761509c615bb2565b50600160ff60e65460701c16019060ff8211610d0f576150be60ff831661468b565b906150cc6040519283614669565b60ff8316808352601f19906150e09061468b565b0160005b8181106159f557505060009060006150fa615bb2565b9060018060a01b03871660005260cb6020526040600020936040518086602082985493848152019060005260206000209260005b8181106159d357505061514392500386614669565b60005b85518110156155ae576001600160a01b036151618288614be5565b5116908160005260cc6020526040600020549160089260ff6151878183871c168c614be5565b515116156153a6575b6040516361bfb47160e11b81526001600160a01b038d16600482015293608085602481865afa9485156110375760009360009160009060009861537d575b50610220516001600160a01b031682141580615375575b8061536d575b61535d5761522a61521360049961085961520486615a10565b60405195869161083483614614565b96615233670de0b6b3a7640000809381938b615d09565b51049584615d09565b516102205191900497906001600160a01b031684146152f2575b5050604051637f4e225760e11b81529760209289925082905afa958615611037576152ad968d916000916152d3575b50156152b25783836108d5936152a360206108d560ff96876108e79b60409b1c1690614be5565b90521c168c614be5565b615146565b83836108d5936152a360606108d560ff96876108e79b60809b1c1690614be5565b6152ec915060203d602011610935576109278183614669565b3861527c565b9061533992948161530b6020969a946102005190615d09565b510490808211615342576123b09161532291614d04565b955b600060405161533281614614565b5251614a87565b9490388061524d565b6109be90615351939492614d04565b906123b0600095615324565b5050505050506152ad9150614bd6565b5082156151eb565b5085156151e5565b925050935061539c91955060803d608011610a2357610a118183614669565b96929490386151ce565b60ff81851c1660005260e46020526040600020604051906153c6826145e2565b549060ff8216815261ffff82871c169081602082015261ffff8360181c16604082015261ffff8360281c16606082015261ffff8360381c16608082015261ffff8360481c1660a082015281662386f26fc10000810204662386f26fc100001482151715610d0f57662386f26fc100006040519261544284614614565b02825261ffff60408201511680662386f26fc10000810204662386f26fc100001481151715610d0f57662386f26fc100006040519161548083614614565b02815261ffff6060830151169081662386f26fc10000810204662386f26fc100001482151715610d0f57662386f26fc10000604051926154bf84614614565b02825261ffff6080840151169283662386f26fc10000810204662386f26fc100001484151715610d0f5760a061ffff91662386f26fc100006040519661550488614614565b0286520151169384662386f26fc10000810204662386f26fc100001485151715610d0f57662386f26fc100006040519561553d87614614565b02855260ff6040519661554f88614630565b1686526000602087015260006040870152600060608701526000608087015260a086015260c085015260e084015261010083015261012082015261559860ff83871c168c614be5565b526155a860ff82861c168b614be5565b50615190565b50610220516001600160a01b0316600090815260cc602052604081205460081c60ff169850969195909450909290915b60ff871660ff85168110156157b05760ff6155f98286614be5565b515116156157a65761560b9084614be5565b519060808201805180615786575b506040830190815180615766575b50805180615746575b50815180615726575b506020840180516156506060870191825190614aa9565b151580615711575b6156d657855160ff168d0361568357505050505060ff90965b1660ff8114610d0f57600101956155de565b856156d0959c9b9261099f6156c8936101206156bd610f4e98999f61010060ff9d01519561099f670de0b6b3a76400009788925190615d09565b940151905190615d09565b985190614aa9565b95615671565b60a4928460ff8851169351925190519151926040519463f523ae3d60e01b865260048601526024850152604484015260648301526084820152fd5b5061571f8451845190614aa9565b1515615658565b61573c606086019182519060e088015191615c40565b8452905238615639565b61575c606086019182519060e088015191615c40565b8352905238615630565b61577c602086019182519060a088015191615c40565b8452905238615627565b61579c602085019182519060c087015191615c40565b8352905238615619565b509560ff90615671565b509550955050508181116000146159c257906157cb91614d04565b906000915b60408201928351801515806159b9575b615983575b50608083019182518015158061597a575b615947575b5081615929575b8161590b575b6102205181906001600160a01b031615158061588e575b94670de0b6b3a764000061099f610f4e9594610f4694615859996000146158755750610f34908361099f60c0870151602088015190615d09565b9015158061586c575b610f8057610f6e57565b50801515615862565b610fc391508361099f60a0870151602088015190615d09565b5060409291925194637f4e225760e11b865260208660048160018060a01b0361022051165afa80156110375761099f610f4e95610f4694670de0b6b3a7640000936158599a6000916158ec575b50159499509450949550505061581f565b615905915060203d602011610935576109278183614669565b386158db565b615922606085019283519061012087015191615c40565b9252615808565b615940602085019283519061010087015191615c40565b9252615802565b90818111156159685761595d9150835190614d04565b600083525b386157fb565b61597191614d04565b82526000615962565b508115156157f6565b9091818111156159a65761599a9150845190614d04565b90600084525b386157e5565b6159af91614d04565b83526000906159a0565b508215156157e0565b6159cb91614d04565b9060006157d0565b84546001600160a01b031683526001948501948a94506020909301920161512e565b602090615a00615bb2565b828287010152016150e4565b9050565b60018060a01b0380911690600090828252602060cc815260409160ff838520541615615b825790806024939260db541683519485809263fc57d4df60e01b82528960048301525afa928315615b78578493615b45575b5082948315615b345790808392600494519485809263313ce56760e01b82525afa918215615b2b57508491615aee575b5060ff91501660128110615aab575b50505090565b909193925060120360128111615ada57604d8111615ada57615ad2929350600a0a90614a96565b388080615aa5565b634e487b7160e01b84526011600452602484fd5b905081813d8311615b24575b615b048183614669565b81010312615b20575160ff81168103615b205760ff9038615a96565b8280fd5b503d615afa565b513d86823e3d90fd5b82516348fa9b2b60e11b8152600490fd5b9080935081813d8311615b71575b615b5d8183614669565b81010312615b6d57519138615a66565b8380fd5b503d615b53565b82513d86823e3d90fd5b82516334b04fe360e11b8152600490fd5b908160209103126111e457516001600160a01b03811681036111e45790565b604090815191615bc183614630565b6101208360009283825283602083015283818301528360608301528360808301528051615bed81614614565b84815260a08301528051615c0081614614565b84815260c08301528051615c1381614614565b84815260e08301528051615c2681614614565b8481526101008301525192615c3a84614614565b83520152565b90929180518015615cc7578290615c61670de0b6b3a7640000928392614a96565b0491818602918683041486151715610d0f5751918215615cb1576000908196808211600014615c9e5750505090615c9a92910490614d04565b9190565b925092509450615cae9250614d04565b90565b634e487b7160e01b600052601260045260246000fd5b50505060009190565b670de0b6b3a764000091615cf6916000604051615cec81614614565b5251905190614a96565b0460405190615d0482614614565b815290565b90615d23916000604051615d1c81614614565b5251614a96565b60405190615d048261461456fea26469706673582212204dfdecb5da381288c7a8e8827aa9d5b9eef48e988fdeb25777b2a87ef4b7d85f64736f6c63430008130033";
2923
1928
  const isSuperArgs = (xs) => xs.length > 1;
2924
1929
  class Comptroller__factory extends ethers_1.ContractFactory {
2925
1930
  constructor(...args) {