@gooddollar/goodcollective-contracts 1.0.1 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (180) hide show
  1. package/contracts/DirectPayments/DirectPaymentsPool.sol +12 -2
  2. package/contracts/GoodCollective/GoodCollectiveSuperApp.sol +264 -0
  3. package/contracts/GoodCollective/SuperAppBaseFlow.sol +204 -0
  4. package/contracts/utils/SwapRouterMock.sol +32 -0
  5. package/package.json +4 -1
  6. package/releases/deployment.json +7984 -2746
  7. package/typechain-types/@gooddollar/goodprotocol/contracts/Interfaces.sol/AggregatorV3Interface.ts +199 -0
  8. package/typechain-types/@gooddollar/goodprotocol/contracts/Interfaces.sol/CERC20.ts +630 -0
  9. package/typechain-types/@gooddollar/goodprotocol/contracts/Interfaces.sol/ERC20.ts +450 -0
  10. package/typechain-types/@gooddollar/goodprotocol/contracts/Interfaces.sol/IAaveIncentivesController.ts +161 -0
  11. package/typechain-types/@gooddollar/goodprotocol/contracts/Interfaces.sol/IAdminWallet.ts +189 -0
  12. package/typechain-types/@gooddollar/goodprotocol/contracts/Interfaces.sol/IDonationStaking.ts +98 -0
  13. package/typechain-types/@gooddollar/goodprotocol/contracts/Interfaces.sol/IERC2917.ts +750 -0
  14. package/typechain-types/@gooddollar/goodprotocol/contracts/Interfaces.sol/IFirstClaimPool.ts +144 -0
  15. package/typechain-types/@gooddollar/goodprotocol/contracts/Interfaces.sol/IGoodDollar.ts +1033 -0
  16. package/typechain-types/@gooddollar/goodprotocol/contracts/Interfaces.sol/IGoodStaking.ts +281 -0
  17. package/typechain-types/@gooddollar/goodprotocol/contracts/Interfaces.sol/IHasRouter.ts +81 -0
  18. package/typechain-types/@gooddollar/goodprotocol/contracts/Interfaces.sol/IIdentity.ts +598 -0
  19. package/typechain-types/@gooddollar/goodprotocol/contracts/Interfaces.sol/IIdentityV2.ts +689 -0
  20. package/typechain-types/@gooddollar/goodprotocol/contracts/Interfaces.sol/ILendingPool.ts +257 -0
  21. package/typechain-types/@gooddollar/goodprotocol/contracts/Interfaces.sol/IMultichainRouter.ts +179 -0
  22. package/typechain-types/@gooddollar/goodprotocol/contracts/Interfaces.sol/INameService.ts +100 -0
  23. package/typechain-types/@gooddollar/goodprotocol/contracts/Interfaces.sol/IUBIScheme.ts +137 -0
  24. package/typechain-types/@gooddollar/goodprotocol/contracts/Interfaces.sol/ProxyAdmin.ts +278 -0
  25. package/typechain-types/@gooddollar/goodprotocol/contracts/Interfaces.sol/Reserve.ts +117 -0
  26. package/typechain-types/@gooddollar/goodprotocol/contracts/Interfaces.sol/Staking.ts +175 -0
  27. package/typechain-types/@gooddollar/goodprotocol/contracts/Interfaces.sol/Uniswap.ts +464 -0
  28. package/typechain-types/@gooddollar/goodprotocol/contracts/Interfaces.sol/UniswapFactory.ts +105 -0
  29. package/typechain-types/@gooddollar/goodprotocol/contracts/Interfaces.sol/UniswapPair.ts +209 -0
  30. package/typechain-types/@gooddollar/goodprotocol/contracts/Interfaces.sol/index.ts +26 -0
  31. package/typechain-types/@gooddollar/goodprotocol/contracts/index.ts +7 -0
  32. package/typechain-types/@gooddollar/goodprotocol/contracts/token/FeesFormula.sol/IFeesFormula.ts +115 -0
  33. package/typechain-types/@gooddollar/goodprotocol/contracts/token/FeesFormula.sol/index.ts +4 -0
  34. package/typechain-types/@gooddollar/goodprotocol/contracts/token/index.ts +7 -0
  35. package/typechain-types/@gooddollar/goodprotocol/contracts/token/superfluid/ISuperGoodDollar.sol/IGoodDollarCustom.ts +726 -0
  36. package/typechain-types/@gooddollar/goodprotocol/contracts/token/superfluid/ISuperGoodDollar.sol/ISuperGoodDollar.ts +3662 -0
  37. package/typechain-types/@gooddollar/goodprotocol/contracts/token/superfluid/ISuperGoodDollar.sol/index.ts +5 -0
  38. package/typechain-types/@gooddollar/goodprotocol/contracts/token/superfluid/index.ts +5 -0
  39. package/typechain-types/@gooddollar/goodprotocol/index.ts +5 -0
  40. package/typechain-types/@gooddollar/index.ts +5 -0
  41. package/typechain-types/@openzeppelin/contracts/index.ts +4 -0
  42. package/typechain-types/@openzeppelin/contracts/token/ERC20/IERC20.ts +342 -0
  43. package/typechain-types/@openzeppelin/contracts/token/ERC20/index.ts +4 -0
  44. package/typechain-types/@openzeppelin/contracts/token/ERC721/IERC721.ts +559 -0
  45. package/typechain-types/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.ts +619 -0
  46. package/typechain-types/@openzeppelin/contracts/token/ERC721/extensions/index.ts +4 -0
  47. package/typechain-types/@openzeppelin/contracts/token/ERC721/index.ts +6 -0
  48. package/typechain-types/@openzeppelin/contracts/token/ERC777/IERC777.ts +650 -0
  49. package/typechain-types/@openzeppelin/contracts/token/ERC777/index.ts +4 -0
  50. package/typechain-types/@openzeppelin/contracts/token/index.ts +9 -0
  51. package/typechain-types/@openzeppelin/contracts/utils/index.ts +5 -0
  52. package/typechain-types/@openzeppelin/contracts/utils/introspection/IERC165.ts +103 -0
  53. package/typechain-types/@openzeppelin/contracts/utils/introspection/index.ts +4 -0
  54. package/typechain-types/@superfluid-finance/ethereum-contracts/contracts/index.ts +5 -0
  55. package/typechain-types/@superfluid-finance/ethereum-contracts/contracts/interfaces/agreements/IConstantFlowAgreementV1.ts +1390 -0
  56. package/typechain-types/@superfluid-finance/ethereum-contracts/contracts/interfaces/agreements/IInstantDistributionAgreementV1.ts +1280 -0
  57. package/typechain-types/@superfluid-finance/ethereum-contracts/contracts/interfaces/agreements/index.ts +5 -0
  58. package/typechain-types/@superfluid-finance/ethereum-contracts/contracts/interfaces/index.ts +9 -0
  59. package/typechain-types/@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/IConstantInflowNFT.ts +876 -0
  60. package/typechain-types/@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/IConstantOutflowNFT.ts +945 -0
  61. package/typechain-types/@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/IFlowNFTBase.ts +807 -0
  62. package/typechain-types/@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/ISuperAgreement.ts +157 -0
  63. package/typechain-types/@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/ISuperApp.ts +457 -0
  64. package/typechain-types/@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/ISuperToken.ts +2806 -0
  65. package/typechain-types/@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/ISuperTokenFactory.ts +465 -0
  66. package/typechain-types/@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/ISuperfluid.ts +1727 -0
  67. package/typechain-types/@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/ISuperfluidGovernance.ts +506 -0
  68. package/typechain-types/@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/ISuperfluidToken.ts +1010 -0
  69. package/typechain-types/@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/index.ts +13 -0
  70. package/typechain-types/@superfluid-finance/ethereum-contracts/contracts/interfaces/tokens/ERC20WithTokenInfo.ts +384 -0
  71. package/typechain-types/@superfluid-finance/ethereum-contracts/contracts/interfaces/tokens/TokenInfo.ts +109 -0
  72. package/typechain-types/@superfluid-finance/ethereum-contracts/contracts/interfaces/tokens/index.ts +5 -0
  73. package/typechain-types/@superfluid-finance/ethereum-contracts/index.ts +5 -0
  74. package/typechain-types/@superfluid-finance/index.ts +5 -0
  75. package/typechain-types/@uniswap/index.ts +7 -0
  76. package/typechain-types/@uniswap/v3-core/contracts/index.ts +5 -0
  77. package/typechain-types/@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.ts +122 -0
  78. package/typechain-types/@uniswap/v3-core/contracts/interfaces/callback/index.ts +4 -0
  79. package/typechain-types/@uniswap/v3-core/contracts/interfaces/index.ts +5 -0
  80. package/typechain-types/@uniswap/v3-core/index.ts +5 -0
  81. package/typechain-types/@uniswap/v3-periphery/contracts/index.ts +5 -0
  82. package/typechain-types/@uniswap/v3-periphery/contracts/interfaces/ISwapRouter.ts +369 -0
  83. package/typechain-types/@uniswap/v3-periphery/contracts/interfaces/index.ts +4 -0
  84. package/typechain-types/@uniswap/v3-periphery/index.ts +5 -0
  85. package/typechain-types/contracts/DirectPayments/DirectPaymentsPool.sol/DirectPaymentsPool.ts +763 -0
  86. package/typechain-types/contracts/GoodCollective/GoodCollectiveSuperApp.ts +843 -0
  87. package/typechain-types/contracts/GoodCollective/SuperAppBaseFlow.ts +523 -0
  88. package/typechain-types/contracts/GoodCollective/index.ts +5 -0
  89. package/typechain-types/contracts/index.ts +4 -1
  90. package/typechain-types/contracts/utils/SwapRouterMock.ts +194 -0
  91. package/typechain-types/contracts/utils/index.ts +4 -0
  92. package/typechain-types/factories/@gooddollar/goodprotocol/contracts/Interfaces.sol/AggregatorV3Interface__factory.ts +121 -0
  93. package/typechain-types/factories/@gooddollar/goodprotocol/contracts/Interfaces.sol/CERC20__factory.ts +384 -0
  94. package/typechain-types/factories/@gooddollar/goodprotocol/contracts/Interfaces.sol/ERC20__factory.ts +288 -0
  95. package/typechain-types/factories/@gooddollar/goodprotocol/contracts/Interfaces.sol/IAaveIncentivesController__factory.ts +83 -0
  96. package/typechain-types/factories/@gooddollar/goodprotocol/contracts/Interfaces.sol/IAdminWallet__factory.ts +78 -0
  97. package/typechain-types/factories/@gooddollar/goodprotocol/contracts/Interfaces.sol/IDonationStaking__factory.ts +33 -0
  98. package/typechain-types/factories/@gooddollar/goodprotocol/contracts/Interfaces.sol/IERC2917__factory.ts +496 -0
  99. package/typechain-types/factories/@gooddollar/goodprotocol/contracts/Interfaces.sol/IFirstClaimPool__factory.ts +65 -0
  100. package/typechain-types/factories/@gooddollar/goodprotocol/contracts/Interfaces.sol/IGoodDollar__factory.ts +598 -0
  101. package/typechain-types/factories/@gooddollar/goodprotocol/contracts/Interfaces.sol/IGoodStaking__factory.ts +178 -0
  102. package/typechain-types/factories/@gooddollar/goodprotocol/contracts/Interfaces.sol/IHasRouter__factory.ts +39 -0
  103. package/typechain-types/factories/@gooddollar/goodprotocol/contracts/Interfaces.sol/IIdentityV2__factory.ts +334 -0
  104. package/typechain-types/factories/@gooddollar/goodprotocol/contracts/Interfaces.sol/IIdentity__factory.ts +287 -0
  105. package/typechain-types/factories/@gooddollar/goodprotocol/contracts/Interfaces.sol/ILendingPool__factory.ts +171 -0
  106. package/typechain-types/factories/@gooddollar/goodprotocol/contracts/Interfaces.sol/IMultichainRouter__factory.ts +82 -0
  107. package/typechain-types/factories/@gooddollar/goodprotocol/contracts/Interfaces.sol/INameService__factory.ts +45 -0
  108. package/typechain-types/factories/@gooddollar/goodprotocol/contracts/Interfaces.sol/IUBIScheme__factory.ts +71 -0
  109. package/typechain-types/factories/@gooddollar/goodprotocol/contracts/Interfaces.sol/ProxyAdmin__factory.ts +131 -0
  110. package/typechain-types/factories/@gooddollar/goodprotocol/contracts/Interfaces.sol/Reserve__factory.ts +55 -0
  111. package/typechain-types/factories/@gooddollar/goodprotocol/contracts/Interfaces.sol/Staking__factory.ts +77 -0
  112. package/typechain-types/factories/@gooddollar/goodprotocol/contracts/Interfaces.sol/UniswapFactory__factory.ts +50 -0
  113. package/typechain-types/factories/@gooddollar/goodprotocol/contracts/Interfaces.sol/UniswapPair__factory.ts +120 -0
  114. package/typechain-types/factories/@gooddollar/goodprotocol/contracts/Interfaces.sol/Uniswap__factory.ts +275 -0
  115. package/typechain-types/factories/@gooddollar/goodprotocol/contracts/Interfaces.sol/index.ts +26 -0
  116. package/typechain-types/factories/@gooddollar/goodprotocol/contracts/index.ts +5 -0
  117. package/typechain-types/factories/@gooddollar/goodprotocol/contracts/token/FeesFormula.sol/IFeesFormula__factory.ts +60 -0
  118. package/typechain-types/factories/@gooddollar/goodprotocol/contracts/token/FeesFormula.sol/index.ts +4 -0
  119. package/typechain-types/factories/@gooddollar/goodprotocol/contracts/token/index.ts +5 -0
  120. package/typechain-types/factories/@gooddollar/goodprotocol/contracts/token/superfluid/ISuperGoodDollar.sol/IGoodDollarCustom__factory.ts +370 -0
  121. package/typechain-types/factories/@gooddollar/goodprotocol/contracts/token/superfluid/ISuperGoodDollar.sol/ISuperGoodDollar__factory.ts +2301 -0
  122. package/typechain-types/factories/@gooddollar/goodprotocol/contracts/token/superfluid/ISuperGoodDollar.sol/index.ts +5 -0
  123. package/typechain-types/factories/@gooddollar/goodprotocol/contracts/token/superfluid/index.ts +4 -0
  124. package/typechain-types/factories/@gooddollar/goodprotocol/index.ts +4 -0
  125. package/typechain-types/factories/@gooddollar/index.ts +4 -0
  126. package/typechain-types/factories/@openzeppelin/contracts/index.ts +2 -0
  127. package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/IERC20__factory.ts +206 -0
  128. package/typechain-types/factories/@openzeppelin/contracts/token/ERC20/index.ts +4 -0
  129. package/typechain-types/factories/@openzeppelin/contracts/token/ERC721/IERC721__factory.ts +311 -0
  130. package/typechain-types/factories/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata__factory.ts +356 -0
  131. package/typechain-types/factories/@openzeppelin/contracts/token/ERC721/extensions/index.ts +4 -0
  132. package/typechain-types/factories/@openzeppelin/contracts/token/ERC721/index.ts +5 -0
  133. package/typechain-types/factories/@openzeppelin/contracts/token/ERC777/IERC777__factory.ts +417 -0
  134. package/typechain-types/factories/@openzeppelin/contracts/token/ERC777/index.ts +4 -0
  135. package/typechain-types/factories/@openzeppelin/contracts/token/index.ts +6 -0
  136. package/typechain-types/factories/@openzeppelin/contracts/utils/index.ts +4 -0
  137. package/typechain-types/factories/@openzeppelin/contracts/utils/introspection/IERC165__factory.ts +45 -0
  138. package/typechain-types/factories/@openzeppelin/contracts/utils/introspection/index.ts +4 -0
  139. package/typechain-types/factories/@superfluid-finance/ethereum-contracts/contracts/index.ts +4 -0
  140. package/typechain-types/factories/@superfluid-finance/ethereum-contracts/contracts/interfaces/agreements/IConstantFlowAgreementV1__factory.ts +986 -0
  141. package/typechain-types/factories/@superfluid-finance/ethereum-contracts/contracts/interfaces/agreements/IInstantDistributionAgreementV1__factory.ts +1015 -0
  142. package/typechain-types/factories/@superfluid-finance/ethereum-contracts/contracts/interfaces/agreements/index.ts +5 -0
  143. package/typechain-types/factories/@superfluid-finance/ethereum-contracts/contracts/interfaces/index.ts +6 -0
  144. package/typechain-types/factories/@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/IConstantInflowNFT__factory.ts +551 -0
  145. package/typechain-types/factories/@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/IConstantOutflowNFT__factory.ts +614 -0
  146. package/typechain-types/factories/@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/IFlowNFTBase__factory.ts +515 -0
  147. package/typechain-types/factories/@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/ISuperAgreement__factory.ts +78 -0
  148. package/typechain-types/factories/@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/ISuperApp__factory.ts +275 -0
  149. package/typechain-types/factories/@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/ISuperTokenFactory__factory.ts +276 -0
  150. package/typechain-types/factories/@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/ISuperToken__factory.ts +1839 -0
  151. package/typechain-types/factories/@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/ISuperfluidGovernance__factory.ts +264 -0
  152. package/typechain-types/factories/@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/ISuperfluidToken__factory.ts +697 -0
  153. package/typechain-types/factories/@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/ISuperfluid__factory.ts +1151 -0
  154. package/typechain-types/factories/@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/index.ts +13 -0
  155. package/typechain-types/factories/@superfluid-finance/ethereum-contracts/contracts/interfaces/tokens/ERC20WithTokenInfo__factory.ts +248 -0
  156. package/typechain-types/factories/@superfluid-finance/ethereum-contracts/contracts/interfaces/tokens/TokenInfo__factory.ts +65 -0
  157. package/typechain-types/factories/@superfluid-finance/ethereum-contracts/contracts/interfaces/tokens/index.ts +5 -0
  158. package/typechain-types/factories/@superfluid-finance/ethereum-contracts/index.ts +4 -0
  159. package/typechain-types/factories/@superfluid-finance/index.ts +4 -0
  160. package/typechain-types/factories/@uniswap/index.ts +5 -0
  161. package/typechain-types/factories/@uniswap/v3-core/contracts/index.ts +4 -0
  162. package/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback__factory.ts +53 -0
  163. package/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/callback/index.ts +4 -0
  164. package/typechain-types/factories/@uniswap/v3-core/contracts/interfaces/index.ts +4 -0
  165. package/typechain-types/factories/@uniswap/v3-core/index.ts +4 -0
  166. package/typechain-types/factories/@uniswap/v3-periphery/contracts/index.ts +4 -0
  167. package/typechain-types/factories/@uniswap/v3-periphery/contracts/interfaces/ISwapRouter__factory.ts +263 -0
  168. package/typechain-types/factories/@uniswap/v3-periphery/contracts/interfaces/index.ts +4 -0
  169. package/typechain-types/factories/@uniswap/v3-periphery/index.ts +4 -0
  170. package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsFactory__factory.ts +1 -1
  171. package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsPool.sol/DirectPaymentsPool__factory.ts +581 -3
  172. package/typechain-types/factories/contracts/GoodCollective/GoodCollectiveSuperApp__factory.ts +584 -0
  173. package/typechain-types/factories/contracts/GoodCollective/SuperAppBaseFlow__factory.ts +335 -0
  174. package/typechain-types/factories/contracts/GoodCollective/index.ts +5 -0
  175. package/typechain-types/factories/contracts/index.ts +2 -1
  176. package/typechain-types/factories/contracts/utils/SwapRouterMock__factory.ts +183 -0
  177. package/typechain-types/factories/contracts/utils/index.ts +4 -0
  178. package/typechain-types/factories/index.ts +3 -0
  179. package/typechain-types/hardhat.d.ts +445 -4
  180. package/typechain-types/index.ts +106 -4
@@ -10,6 +10,22 @@ import type {
10
10
  } from "../../../../contracts/DirectPayments/DirectPaymentsPool.sol/DirectPaymentsPool";
11
11
 
12
12
  const _abi = [
13
+ {
14
+ inputs: [
15
+ {
16
+ internalType: "contract ISuperfluid",
17
+ name: "_host",
18
+ type: "address",
19
+ },
20
+ {
21
+ internalType: "contract ISwapRouter",
22
+ name: "_swapRouter",
23
+ type: "address",
24
+ },
25
+ ],
26
+ stateMutability: "nonpayable",
27
+ type: "constructor",
28
+ },
13
29
  {
14
30
  inputs: [
15
31
  {
@@ -64,6 +80,27 @@ const _abi = [
64
80
  name: "NO_BALANCE",
65
81
  type: "error",
66
82
  },
83
+ {
84
+ inputs: [],
85
+ name: "NotAcceptedSuperToken",
86
+ type: "error",
87
+ },
88
+ {
89
+ inputs: [],
90
+ name: "NotImplemented",
91
+ type: "error",
92
+ },
93
+ {
94
+ inputs: [
95
+ {
96
+ internalType: "address",
97
+ name: "",
98
+ type: "address",
99
+ },
100
+ ],
101
+ name: "ONLY_HOST_OR_SENDER",
102
+ type: "error",
103
+ },
67
104
  {
68
105
  inputs: [],
69
106
  name: "OVER_GLOBAL_LIMITS",
@@ -85,6 +122,26 @@ const _abi = [
85
122
  name: "UNSUPPORTED_NFT",
86
123
  type: "error",
87
124
  },
125
+ {
126
+ inputs: [],
127
+ name: "UNSUPPORTED_TOKEN",
128
+ type: "error",
129
+ },
130
+ {
131
+ inputs: [],
132
+ name: "UnauthorizedHost",
133
+ type: "error",
134
+ },
135
+ {
136
+ inputs: [],
137
+ name: "ZERO_ADDRESS",
138
+ type: "error",
139
+ },
140
+ {
141
+ inputs: [],
142
+ name: "ZERO_AMOUNT",
143
+ type: "error",
144
+ },
88
145
  {
89
146
  anonymous: false,
90
147
  inputs: [
@@ -330,6 +387,37 @@ const _abi = [
330
387
  name: "RoleRevoked",
331
388
  type: "event",
332
389
  },
390
+ {
391
+ anonymous: false,
392
+ inputs: [
393
+ {
394
+ indexed: true,
395
+ internalType: "address",
396
+ name: "supporter",
397
+ type: "address",
398
+ },
399
+ {
400
+ indexed: false,
401
+ internalType: "uint256",
402
+ name: "contribution",
403
+ type: "uint256",
404
+ },
405
+ {
406
+ indexed: false,
407
+ internalType: "int96",
408
+ name: "flowRate",
409
+ type: "int96",
410
+ },
411
+ {
412
+ indexed: false,
413
+ internalType: "uint256",
414
+ name: "lastUpdated",
415
+ type: "uint256",
416
+ },
417
+ ],
418
+ name: "SupporterUpdated",
419
+ type: "event",
420
+ },
333
421
  {
334
422
  anonymous: false,
335
423
  inputs: [
@@ -343,6 +431,19 @@ const _abi = [
343
431
  name: "Upgraded",
344
432
  type: "event",
345
433
  },
434
+ {
435
+ inputs: [],
436
+ name: "CFAV1_TYPE",
437
+ outputs: [
438
+ {
439
+ internalType: "bytes32",
440
+ name: "",
441
+ type: "bytes32",
442
+ },
443
+ ],
444
+ stateMutability: "view",
445
+ type: "function",
446
+ },
346
447
  {
347
448
  inputs: [],
348
449
  name: "DEFAULT_ADMIN_ROLE",
@@ -400,6 +501,255 @@ const _abi = [
400
501
  stateMutability: "nonpayable",
401
502
  type: "function",
402
503
  },
504
+ {
505
+ inputs: [
506
+ {
507
+ internalType: "contract ISuperToken",
508
+ name: "superToken",
509
+ type: "address",
510
+ },
511
+ {
512
+ internalType: "address",
513
+ name: "",
514
+ type: "address",
515
+ },
516
+ {
517
+ internalType: "bytes32",
518
+ name: "",
519
+ type: "bytes32",
520
+ },
521
+ {
522
+ internalType: "bytes",
523
+ name: "agreementData",
524
+ type: "bytes",
525
+ },
526
+ {
527
+ internalType: "bytes",
528
+ name: "",
529
+ type: "bytes",
530
+ },
531
+ {
532
+ internalType: "bytes",
533
+ name: "ctx",
534
+ type: "bytes",
535
+ },
536
+ ],
537
+ name: "afterAgreementCreated",
538
+ outputs: [
539
+ {
540
+ internalType: "bytes",
541
+ name: "newCtx",
542
+ type: "bytes",
543
+ },
544
+ ],
545
+ stateMutability: "nonpayable",
546
+ type: "function",
547
+ },
548
+ {
549
+ inputs: [
550
+ {
551
+ internalType: "contract ISuperToken",
552
+ name: "superToken",
553
+ type: "address",
554
+ },
555
+ {
556
+ internalType: "address",
557
+ name: "agreementClass",
558
+ type: "address",
559
+ },
560
+ {
561
+ internalType: "bytes32",
562
+ name: "",
563
+ type: "bytes32",
564
+ },
565
+ {
566
+ internalType: "bytes",
567
+ name: "agreementData",
568
+ type: "bytes",
569
+ },
570
+ {
571
+ internalType: "bytes",
572
+ name: "cbdata",
573
+ type: "bytes",
574
+ },
575
+ {
576
+ internalType: "bytes",
577
+ name: "ctx",
578
+ type: "bytes",
579
+ },
580
+ ],
581
+ name: "afterAgreementTerminated",
582
+ outputs: [
583
+ {
584
+ internalType: "bytes",
585
+ name: "newCtx",
586
+ type: "bytes",
587
+ },
588
+ ],
589
+ stateMutability: "nonpayable",
590
+ type: "function",
591
+ },
592
+ {
593
+ inputs: [
594
+ {
595
+ internalType: "contract ISuperToken",
596
+ name: "superToken",
597
+ type: "address",
598
+ },
599
+ {
600
+ internalType: "address",
601
+ name: "",
602
+ type: "address",
603
+ },
604
+ {
605
+ internalType: "bytes32",
606
+ name: "",
607
+ type: "bytes32",
608
+ },
609
+ {
610
+ internalType: "bytes",
611
+ name: "agreementData",
612
+ type: "bytes",
613
+ },
614
+ {
615
+ internalType: "bytes",
616
+ name: "cbdata",
617
+ type: "bytes",
618
+ },
619
+ {
620
+ internalType: "bytes",
621
+ name: "ctx",
622
+ type: "bytes",
623
+ },
624
+ ],
625
+ name: "afterAgreementUpdated",
626
+ outputs: [
627
+ {
628
+ internalType: "bytes",
629
+ name: "newCtx",
630
+ type: "bytes",
631
+ },
632
+ ],
633
+ stateMutability: "nonpayable",
634
+ type: "function",
635
+ },
636
+ {
637
+ inputs: [
638
+ {
639
+ internalType: "contract ISuperToken",
640
+ name: "superToken",
641
+ type: "address",
642
+ },
643
+ {
644
+ internalType: "address",
645
+ name: "agreementClass",
646
+ type: "address",
647
+ },
648
+ {
649
+ internalType: "bytes32",
650
+ name: "",
651
+ type: "bytes32",
652
+ },
653
+ {
654
+ internalType: "bytes",
655
+ name: "",
656
+ type: "bytes",
657
+ },
658
+ {
659
+ internalType: "bytes",
660
+ name: "",
661
+ type: "bytes",
662
+ },
663
+ ],
664
+ name: "beforeAgreementCreated",
665
+ outputs: [
666
+ {
667
+ internalType: "bytes",
668
+ name: "",
669
+ type: "bytes",
670
+ },
671
+ ],
672
+ stateMutability: "view",
673
+ type: "function",
674
+ },
675
+ {
676
+ inputs: [
677
+ {
678
+ internalType: "contract ISuperToken",
679
+ name: "superToken",
680
+ type: "address",
681
+ },
682
+ {
683
+ internalType: "address",
684
+ name: "agreementClass",
685
+ type: "address",
686
+ },
687
+ {
688
+ internalType: "bytes32",
689
+ name: "",
690
+ type: "bytes32",
691
+ },
692
+ {
693
+ internalType: "bytes",
694
+ name: "agreementData",
695
+ type: "bytes",
696
+ },
697
+ {
698
+ internalType: "bytes",
699
+ name: "",
700
+ type: "bytes",
701
+ },
702
+ ],
703
+ name: "beforeAgreementTerminated",
704
+ outputs: [
705
+ {
706
+ internalType: "bytes",
707
+ name: "",
708
+ type: "bytes",
709
+ },
710
+ ],
711
+ stateMutability: "view",
712
+ type: "function",
713
+ },
714
+ {
715
+ inputs: [
716
+ {
717
+ internalType: "contract ISuperToken",
718
+ name: "superToken",
719
+ type: "address",
720
+ },
721
+ {
722
+ internalType: "address",
723
+ name: "agreementClass",
724
+ type: "address",
725
+ },
726
+ {
727
+ internalType: "bytes32",
728
+ name: "",
729
+ type: "bytes32",
730
+ },
731
+ {
732
+ internalType: "bytes",
733
+ name: "agreementData",
734
+ type: "bytes",
735
+ },
736
+ {
737
+ internalType: "bytes",
738
+ name: "",
739
+ type: "bytes",
740
+ },
741
+ ],
742
+ name: "beforeAgreementUpdated",
743
+ outputs: [
744
+ {
745
+ internalType: "bytes",
746
+ name: "",
747
+ type: "bytes",
748
+ },
749
+ ],
750
+ stateMutability: "view",
751
+ type: "function",
752
+ },
403
753
  {
404
754
  inputs: [
405
755
  {
@@ -512,6 +862,25 @@ const _abi = [
512
862
  stateMutability: "view",
513
863
  type: "function",
514
864
  },
865
+ {
866
+ inputs: [
867
+ {
868
+ internalType: "address",
869
+ name: "_user",
870
+ type: "address",
871
+ },
872
+ ],
873
+ name: "getRealtimeContribution",
874
+ outputs: [
875
+ {
876
+ internalType: "uint256",
877
+ name: "",
878
+ type: "uint256",
879
+ },
880
+ ],
881
+ stateMutability: "view",
882
+ type: "function",
883
+ },
515
884
  {
516
885
  inputs: [
517
886
  {
@@ -582,6 +951,62 @@ const _abi = [
582
951
  stateMutability: "nonpayable",
583
952
  type: "function",
584
953
  },
954
+ {
955
+ inputs: [
956
+ {
957
+ components: [
958
+ {
959
+ internalType: "address",
960
+ name: "swapFrom",
961
+ type: "address",
962
+ },
963
+ {
964
+ internalType: "uint256",
965
+ name: "amount",
966
+ type: "uint256",
967
+ },
968
+ {
969
+ internalType: "uint256",
970
+ name: "minReturn",
971
+ type: "uint256",
972
+ },
973
+ {
974
+ internalType: "uint256",
975
+ name: "timestamp",
976
+ type: "uint256",
977
+ },
978
+ {
979
+ internalType: "bytes",
980
+ name: "path",
981
+ type: "bytes",
982
+ },
983
+ ],
984
+ internalType: "struct GoodCollectiveSuperApp.SwapData",
985
+ name: "_customData",
986
+ type: "tuple",
987
+ },
988
+ {
989
+ internalType: "address",
990
+ name: "_sender",
991
+ type: "address",
992
+ },
993
+ {
994
+ internalType: "bytes",
995
+ name: "_ctx",
996
+ type: "bytes",
997
+ },
998
+ ],
999
+ name: "handleSwap",
1000
+ outputs: [
1001
+ {
1002
+ internalType: "bytes",
1003
+ name: "",
1004
+ type: "bytes",
1005
+ },
1006
+ ],
1007
+ stateMutability: "nonpayable",
1008
+ type: "function",
1009
+ },
585
1010
  {
586
1011
  inputs: [
587
1012
  {
@@ -606,6 +1031,19 @@ const _abi = [
606
1031
  stateMutability: "view",
607
1032
  type: "function",
608
1033
  },
1034
+ {
1035
+ inputs: [],
1036
+ name: "host",
1037
+ outputs: [
1038
+ {
1039
+ internalType: "contract ISuperfluid",
1040
+ name: "",
1041
+ type: "address",
1042
+ },
1043
+ ],
1044
+ stateMutability: "view",
1045
+ type: "function",
1046
+ },
609
1047
  {
610
1048
  inputs: [
611
1049
  {
@@ -683,6 +1121,25 @@ const _abi = [
683
1121
  stateMutability: "nonpayable",
684
1122
  type: "function",
685
1123
  },
1124
+ {
1125
+ inputs: [
1126
+ {
1127
+ internalType: "contract ISuperToken",
1128
+ name: "_superToken",
1129
+ type: "address",
1130
+ },
1131
+ ],
1132
+ name: "isAcceptedSuperToken",
1133
+ outputs: [
1134
+ {
1135
+ internalType: "bool",
1136
+ name: "",
1137
+ type: "bool",
1138
+ },
1139
+ ],
1140
+ stateMutability: "view",
1141
+ type: "function",
1142
+ },
686
1143
  {
687
1144
  inputs: [],
688
1145
  name: "limits",
@@ -883,6 +1340,35 @@ const _abi = [
883
1340
  stateMutability: "nonpayable",
884
1341
  type: "function",
885
1342
  },
1343
+ {
1344
+ inputs: [
1345
+ {
1346
+ internalType: "address",
1347
+ name: "_sender",
1348
+ type: "address",
1349
+ },
1350
+ {
1351
+ internalType: "uint256",
1352
+ name: "_amount",
1353
+ type: "uint256",
1354
+ },
1355
+ {
1356
+ internalType: "bytes",
1357
+ name: "",
1358
+ type: "bytes",
1359
+ },
1360
+ ],
1361
+ name: "onTokenTransfer",
1362
+ outputs: [
1363
+ {
1364
+ internalType: "bool",
1365
+ name: "",
1366
+ type: "bool",
1367
+ },
1368
+ ],
1369
+ stateMutability: "nonpayable",
1370
+ type: "function",
1371
+ },
886
1372
  {
887
1373
  inputs: [],
888
1374
  name: "proxiableUUID",
@@ -978,6 +1464,77 @@ const _abi = [
978
1464
  stateMutability: "view",
979
1465
  type: "function",
980
1466
  },
1467
+ {
1468
+ inputs: [],
1469
+ name: "superToken",
1470
+ outputs: [
1471
+ {
1472
+ internalType: "contract ISuperToken",
1473
+ name: "",
1474
+ type: "address",
1475
+ },
1476
+ ],
1477
+ stateMutability: "view",
1478
+ type: "function",
1479
+ },
1480
+ {
1481
+ inputs: [
1482
+ {
1483
+ internalType: "address",
1484
+ name: "_sender",
1485
+ type: "address",
1486
+ },
1487
+ {
1488
+ internalType: "uint256",
1489
+ name: "_amount",
1490
+ type: "uint256",
1491
+ },
1492
+ {
1493
+ internalType: "bytes",
1494
+ name: "_ctx",
1495
+ type: "bytes",
1496
+ },
1497
+ ],
1498
+ name: "support",
1499
+ outputs: [
1500
+ {
1501
+ internalType: "bytes",
1502
+ name: "",
1503
+ type: "bytes",
1504
+ },
1505
+ ],
1506
+ stateMutability: "nonpayable",
1507
+ type: "function",
1508
+ },
1509
+ {
1510
+ inputs: [
1511
+ {
1512
+ internalType: "address",
1513
+ name: "",
1514
+ type: "address",
1515
+ },
1516
+ ],
1517
+ name: "supporters",
1518
+ outputs: [
1519
+ {
1520
+ internalType: "uint256",
1521
+ name: "contribution",
1522
+ type: "uint256",
1523
+ },
1524
+ {
1525
+ internalType: "int96",
1526
+ name: "flowRate",
1527
+ type: "int96",
1528
+ },
1529
+ {
1530
+ internalType: "uint128",
1531
+ name: "lastUpdated",
1532
+ type: "uint128",
1533
+ },
1534
+ ],
1535
+ stateMutability: "view",
1536
+ type: "function",
1537
+ },
981
1538
  {
982
1539
  inputs: [
983
1540
  {
@@ -997,6 +1554,19 @@ const _abi = [
997
1554
  stateMutability: "view",
998
1555
  type: "function",
999
1556
  },
1557
+ {
1558
+ inputs: [],
1559
+ name: "swapRouter",
1560
+ outputs: [
1561
+ {
1562
+ internalType: "contract ISwapRouter",
1563
+ name: "",
1564
+ type: "address",
1565
+ },
1566
+ ],
1567
+ stateMutability: "view",
1568
+ type: "function",
1569
+ },
1000
1570
  {
1001
1571
  inputs: [
1002
1572
  {
@@ -1044,7 +1614,7 @@ const _abi = [
1044
1614
  ] as const;
1045
1615
 
1046
1616
  const _bytecode =
1047
- "0x60a06040523060805234801561001457600080fd5b506080516134a961005a60003960008181610870015281816108b0015281816109a7015281816109e701528181610a56015281816110a401526110e401526134a96000f3fe6080604052600436106101475760003560e01c80630150aefb1461014c57806301ffc9a71461019257806308ae4b0c146101b25780630b1ca49a146101e3578063150b7a02146102055780631bb15f3d1461023e578063248a9ca3146102ea5780632f2ff15d1461031857806336568abe146103385780633659cfe614610358578063379607f5146103785780633a5673a41461039857806347ccca02146103c65780634f1ef286146103e757806352d1902d146103fa5780636180c7931461040f578063860aefcf1461042f57806391d148541461046c5780639894b52f1461048c5780639986a376146104ac578063a217fddf146104cc578063a49b2713146104e1578063ae82720014610501578063c2e11e3f14610514578063d539139314610562578063d547741f14610584578063e06174e4146105a4578063ec87621c14610620575b600080fd5b34801561015857600080fd5b5061017d6101673660046124d7565b6101066020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561019e57600080fd5b5061017d6101ad3660046124f0565b610654565b3480156101be57600080fd5b5061017d6101cd36600461253f565b6101076020526000908152604090205460ff1681565b3480156101ef57600080fd5b506102036101fe36600461253f565b61068b565b005b34801561021157600080fd5b5061022561022036600461255c565b6106f3565b6040516001600160e01b03199091168152602001610189565b34801561024a57600080fd5b506102a661025936600461253f565b61010860205260009081526040902080546001909101546001600160801b0380831692600160801b90819004821692918216916001600160401b03918104821691600160c01b9091041685565b604080516001600160801b039687168152948616602086015292909416918301919091526001600160401b039081166060830152909116608082015260a001610189565b3480156102f657600080fd5b5061030a6103053660046124d7565b6107ad565b604051908152602001610189565b34801561032457600080fd5b506102036103333660046125fa565b6107c2565b34801561034457600080fd5b506102036103533660046125fa565b6107e3565b34801561036457600080fd5b5061020361037336600461253f565b610866565b34801561038457600080fd5b506102036103933660046124d7565b610925565b3480156103a457600080fd5b5061010b546103b9906001600160a01b031681565b604051610189919061262a565b3480156103d257600080fd5b50610105546103b9906001600160a01b031681565b6102036103f536600461276d565b61099d565b34801561040657600080fd5b5061030a610a49565b34801561041b57600080fd5b5061020361042a36600461276d565b610af7565b34801561043b57600080fd5b5061010254610103546101045461045192919083565b60408051938452602084019290925290820152606001610189565b34801561047857600080fd5b5061017d6104873660046125fa565b610cdf565b34801561049857600080fd5b506102036104a7366004612a09565b610d0a565b3480156104b857600080fd5b506102036104c7366004612b75565b610dc1565b3480156104d857600080fd5b5061030a600081565b3480156104ed57600080fd5b506102036104fc366004612c8e565b610fef565b61020361050f366004612cf1565b61109a565b34801561052057600080fd5b506101095461010a546102a6916001600160801b0380821692600160801b92839004821692918116916001600160401b03908204811691600160c01b90041685565b34801561056e57600080fd5b5061030a6000805160206133ed83398151915281565b34801561059057600080fd5b5061020361059f3660046125fa565b6111b7565b3480156105b057600080fd5b5060fb5460fe5460ff5461010054610101546105e39463ffffffff16936001600160a01b03908116938116928116911685565b6040805163ffffffff90961686526001600160a01b039485166020870152928416928501929092528216606084015216608082015260a001610189565b34801561062c57600080fd5b5061030a7f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b0881565b60006001600160e01b03198216637965db0b60e01b148061068557506301ffc9a760e01b6001600160e01b03198316145b92915050565b6000610696816111d3565b6001600160a01b0382166000908152610107602052604090819020805460ff19169055517f6e76fb4c77256006d9c38ec7d82b45a8c8f3c27b1d6766fffc42dfb8de684492906106e790849061262a565b60405180910390a15050565b610105546040516302b5313d60e21b81526004810185905260009182916001600160a01b0390911690630ad4c4f490602401600060405180830381865afa158015610742573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261076a9190810190612df2565b60fb54815191925063ffffffff91821691161461079a5760405163f26722ad60e01b815260040160405180910390fd5b50630a85bd0160e11b9695505050505050565b60009081526065602052604090206001015490565b6107cb826107ad565b6107d4816111d3565b6107de83836111dd565b505050565b6001600160a01b03811633146108585760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6108628282611263565b5050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036108ae5760405162461bcd60e51b815260040161084f90612fa4565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166108e06112ca565b6001600160a01b0316146109065760405162461bcd60e51b815260040161084f90612fde565b60408051600080825260208201909252610922918391906112e6565b50565b610105546040516302b5313d60e21b8152600481018390526109229183916001600160a01b0390911690630ad4c4f490602401600060405180830381865afa158015610975573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104a79190810190612df2565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036109e55760405162461bcd60e51b815260040161084f90612fa4565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610a176112ca565b6001600160a01b031614610a3d5760405162461bcd60e51b815260040161084f90612fde565b610862828260016112e6565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610ae45760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b606482015260840161084f565b5060008051602061342d83398151915290565b610100546001600160a01b031615610bab57610100546040516316874da360e11b81526000916001600160a01b031690632d0e9b4690610b3b90869060040161262a565b6020604051808303816000875af1158015610b5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7e9190613018565b90506001600160a01b038116610ba95782604051630b7b234960e01b815260040161084f919061262a565b505b60ff546001600160a01b031615610c5e5760ff546040516356a42afd60e11b81526001600160a01b039091169063ad4855fa90610bf2903090339087908790600401613061565b6020604051808303816000875af1158015610c11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c35919061309f565b1515600003610c59578160405163130f4a3760e11b815260040161084f919061262a565b610c8b565b610c69600033610cdf565b1515600003610c8b57604051634df0b5ad60e11b815260040160405180910390fd5b6001600160a01b0382166000908152610107602052604090819020805460ff19166001179055517fb251eb052afc73ffd02ffe85ad79990a8b3fed60d76dbc2fa2fdd7123dffd914906106e790849061262a565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b61010554604051638055b10f60e01b81526001600160a01b0390911690638055b10f90610d3d90859085906004016131d7565b600060405180830381865afa158015610d5a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d829190810190612df2565b506000828152610106602052604090205460ff1615610db7576040516330e51df560e11b81526004810183905260240161084f565b6108628282611451565b600054610100900460ff1615808015610de15750600054600160ff909116105b80610e025750610df03061164f565b158015610e02575060005460ff166001145b610e655760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161084f565b6000805460ff191660011790558015610e88576000805461ff0019166101001790555b61010b80546001600160a01b03191633179055825160fb805463ffffffff90921663ffffffff19909216919091178155602080850151805160059387939092610ed89260fc929190910190612373565b5060408201518051610ef491600284019160209091019061241c565b5060608201516003820180546001600160a01b03199081166001600160a01b03938416179091556080840151600484018054831691841691909117905560a0840151600584018054831691841691909117905560c090930151600690920180548416928216929092179091558451610102556020850151610103556040850151610104556101058054909216908716179055610f9160003361165e565b610fa26000801b856060015161165e565b508015610fe9576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b6000805160206133ed833981519152611007816111d3565b6101055460405163149e33f960e31b81526000916001600160a01b03169063a4f19fc89061103e90889088906001906004016131f0565b6020604051808303816000875af115801561105d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110819190613233565b90508215611093576110938185610d0a565b5050505050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036110e25760405162461bcd60e51b815260040161084f90612fa4565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166111146112ca565b6001600160a01b03161461113a5760405162461bcd60e51b815260040161084f90612fde565b61010b5460408051638abf607760e01b815290516000926001600160a01b031691638abf60779160048083019260209291908290030181865afa158015611185573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a99190613018565b9050610862818360006112e6565b6111c0826107ad565b6111c9816111d3565b6107de8383611263565b6109228133611668565b6111e78282610cdf565b6108625760008281526065602090815260408083206001600160a01b03851684529091529020805460ff1916600117905561121f3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b61126d8282610cdf565b156108625760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60008051602061342d833981519152546001600160a01b031690565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611319576107de836116c1565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611373575060408051601f3d908101601f1916820190925261137091810190613233565b60015b6113d65760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840161084f565b60008051602061342d83398151915281146114455760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840161084f565b506107de83838361175b565b60008281526101066020526040808220805460ff191660011790556101015490516370a0823160e01b815282916001600160a01b0316906370a082319061149c90309060040161262a565b602060405180830381865afa1580156114b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114dd9190613233565b905060005b83606001515181101561160e57600061151b8560600151838151811061150a5761150a61324c565b602002602001015160000151611780565b90506001600160801b038116156115fb57846060015182815181106115425761154261324c565b602002602001015160400151816001600160801b03166115629190613278565b61156c908561328f565b93508284111561158f5760405163701b93d160e11b815260040160405180910390fd5b61159984846132a2565b92506115fb856060015183815181106115b4576115b461324c565b602002602001015160800151866060015184815181106115d6576115d661324c565b602002602001015160400151836001600160801b03166115f69190613278565b611834565b5080611606816132b5565b9150506114e2565b50837f47b0878030426a9511b1cd915a0ac34bd29f33d4f846616b55847303ff8ebcbe8360405161164191815260200190565b60405180910390a250505050565b6001600160a01b03163b151590565b61086282826111dd565b6116728282610cdf565b6108625761167f816118d6565b61168a8360206118e8565b60405160200161169b9291906132ce565b60408051601f198184030181529082905262461bcd60e51b825261084f9160040161333d565b6116ca8161164f565b61172c5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161084f565b60008051602061342d83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61176483611a8a565b6000825111806117715750805b156107de57610fe98383611aca565b6000805b60fc5481101561182b5760fc8054829081106117a2576117a261324c565b90600052602060002090601091828204019190066002029054906101000a900461ffff1661ffff168361ffff16036118195760fd8054829081106117e8576117e861324c565b90600052602060002090600291828204019190066010029054906101000a90046001600160801b0316915050919050565b80611823816132b5565b915050611784565b50600092915050565b60008251826001600160801b031661184c9190613350565b905060005b83518110156118cc5761187d84828151811061186f5761186f61324c565b602002602001015183611bbc565b6118ba8482815181106118925761189261324c565b6020908102919091010151610101546001600160a01b0316906001600160801b038516611eb9565b806118c4816132b5565b915050611851565b506107de82611f0b565b60606106856001600160a01b03831660145b606060006118f7836002613278565b61190290600261328f565b6001600160401b038111156119195761191961263e565b6040519080825280601f01601f191660200182016040528015611943576020820181803683370190505b509050600360fc1b8160008151811061195e5761195e61324c565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061198d5761198d61324c565b60200101906001600160f81b031916908160001a90535060006119b1846002613278565b6119bc90600161328f565b90505b6001811115611a34576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106119f0576119f061324c565b1a60f81b828281518110611a0657611a0661324c565b60200101906001600160f81b031916908160001a90535060049490941c93611a2d81613372565b90506119bf565b508315611a835760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161084f565b9392505050565b611a93816116c1565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060611ad58361164f565b611b305760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b606482015260840161084f565b600080846001600160a01b031684604051611b4b9190613389565b600060405180830381855af49150503d8060008114611b86576040519150601f19603f3d011682016040523d82523d6000602084013e611b8b565b606091505b5091509150611bb3828260405180606001604052806027815260200161344d602791396120e1565b95945050505050565b6001600160a01b0382166000908152610107602052604081205460ff1615159003611bfc578160405163130f4a3760e11b815260040161084f919061262a565b6000611c066120fa565b6001600160a01b038416600090815261010860205260409020600101549091504290611c4590600160801b90046001600160401b0316620151806133a5565b6001600160401b03161015611c8b576001600160a01b03831660009081526101086020526040902080546001600160801b0319166001600160801b038416179055611ce2565b6001600160a01b0383166000908152610108602052604081208054849290611cbd9084906001600160801b03166133cc565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505b6001600160a01b038316600090815261010860205260409020600101546001600160401b03808316600160c01b909204161015611d4f576001600160a01b03831660009081526101086020526040902080546001600160801b03808516600160801b029116179055611db0565b6001600160a01b0383166000908152610108602052604090208054839190601090611d8b908490600160801b90046001600160801b03166133cc565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505b6001600160a01b0383166000908152610108602052604081206001018054849290611de59084906001600160801b03166133cc565b82546101009290920a6001600160801b038181021990931691831602179091556001600160a01b0385166000908152610108602052604090206001810180548316600160801b426001600160401b03908116919091026001600160c01b031691909117600160c01b9187169190910217905561010454905490911611905080611e995750610103546001600160a01b03841660009081526101086020526040902054600160801b90046001600160801b0316115b156107de5782604051636e661e3360e11b815260040161084f919061262a565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526107de90849061210e565b6000611f156120fa565b61010a549091504290611f3b90600160801b90046001600160401b0316620151806133a5565b6001600160401b03161015611f6b5761010980546001600160801b0319166001600160801b038416179055611faf565b6101098054839190600090611f8a9084906001600160801b03166133cc565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505b61010a546001600160401b03808316600160c01b909204161015611fed5761010980546001600160801b03808516600160801b029116179055612038565b6101098054839190601090612013908490600160801b90046001600160801b03166133cc565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505b61010a80548391906000906120579084906001600160801b03166133cc565b82546101009290920a6001600160801b0381810219909316918316021790915561010a80548216600160801b426001600160401b0390811682026001600160c01b031692909217600160c01b92871692909202919091179091556101025461010954919091049091161115905061086257604051639803f99760e01b815260040160405180910390fd5b606083156120f0575081611a83565b611a8383836121e0565b600061210962278d0042613350565b905090565b6000612163826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661220a9092919063ffffffff16565b8051909150156107de5780806020019051810190612181919061309f565b6107de5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161084f565b8151156121f05781518083602001fd5b8060405162461bcd60e51b815260040161084f919061333d565b60606122198484600085612221565b949350505050565b6060824710156122825760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161084f565b600080866001600160a01b0316858760405161229e9190613389565b60006040518083038185875af1925050503d80600081146122db576040519150601f19603f3d011682016040523d82523d6000602084013e6122e0565b606091505b50915091506122f1878383876122fc565b979650505050505050565b60608315612369578251600003612362576123168561164f565b6123625760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161084f565b5081612219565b61221983836121e0565b82805482825590600052602060002090600f0160109004810192821561240c5791602002820160005b838211156123dc57835183826101000a81548161ffff021916908361ffff160217905550926020019260020160208160010104928301926001030261239c565b801561240a5782816101000a81549061ffff02191690556002016020816001010492830192600103026123dc565b505b506124189291506124c2565b5090565b8280548282559060005260206000209060010160029004810192821561240c5791602002820160005b8382111561248f57835183826101000a8154816001600160801b0302191690836001600160801b031602179055509260200192601001602081600f01049283019260010302612445565b801561240a5782816101000a8154906001600160801b030219169055601001602081600f0104928301926001030261248f565b5b8082111561241857600081556001016124c3565b6000602082840312156124e957600080fd5b5035919050565b60006020828403121561250257600080fd5b81356001600160e01b031981168114611a8357600080fd5b6001600160a01b038116811461092257600080fd5b803561253a8161251a565b919050565b60006020828403121561255157600080fd5b8135611a838161251a565b60008060008060006080868803121561257457600080fd5b853561257f8161251a565b9450602086013561258f8161251a565b93506040860135925060608601356001600160401b03808211156125b257600080fd5b818801915088601f8301126125c657600080fd5b8135818111156125d557600080fd5b8960208285010111156125e757600080fd5b9699959850939650602001949392505050565b6000806040838503121561260d57600080fd5b82359150602083013561261f8161251a565b809150509250929050565b6001600160a01b0391909116815260200190565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b03811182821017156126765761267661263e565b60405290565b60405160a081016001600160401b03811182821017156126765761267661263e565b60405160e081016001600160401b03811182821017156126765761267661263e565b604051601f8201601f191681016001600160401b03811182821017156126e8576126e861263e565b604052919050565b60006001600160401b038211156127095761270961263e565b50601f01601f191660200190565b600082601f83011261272857600080fd5b813561273b612736826126f0565b6126c0565b81815284602083860101111561275057600080fd5b816020850160208301376000918101602001919091529392505050565b6000806040838503121561278057600080fd5b823561278b8161251a565b915060208301356001600160401b038111156127a657600080fd5b6127b285828601612717565b9150509250929050565b63ffffffff8116811461092257600080fd5b803561253a816127bc565b61ffff8116811461092257600080fd5b60006001600160401b038211156128025761280261263e565b5060051b60200190565b600082601f83011261281d57600080fd5b8135602061282d612736836127e9565b82815260059290921b8401810191818101908684111561284c57600080fd5b8286015b848110156128705780356128638161251a565b8352918301918301612850565b509695505050505050565b60006080828403121561288d57600080fd5b612895612654565b905081356128a2816127bc565b81526020828101356128b3816127d9565b8282015260408301356001600160401b03808211156128d157600080fd5b6128dd86838701612717565b60408501526060915081850135818111156128f757600080fd5b8501601f8101871361290857600080fd5b8035612916612736826127e9565b81815260059190911b8201850190858101908983111561293557600080fd5b8684015b838110156129f6578035868111156129515760008081fd5b850160a0818d03601f19018113156129695760008081fd5b61297161267c565b8a83013561297e816127d9565b8152604083013561298e816127bc565b818c0152828a013560408201526080830135898111156129ae5760008081fd5b6129bc8f8d83870101612717565b828c0152509082013590888211156129d45760008081fd5b6129e28e8c8486010161280c565b608082015285525050918701918701612939565b5080868901525050505050505092915050565b60008060408385031215612a1c57600080fd5b8235915060208301356001600160401b03811115612a3957600080fd5b6127b28582860161287b565b600082601f830112612a5657600080fd5b81356020612a66612736836127e9565b82815260059290921b84018101918181019086841115612a8557600080fd5b8286015b84811015612870578035612a9c816127d9565b8352918301918301612a89565b600082601f830112612aba57600080fd5b81356020612aca612736836127e9565b82815260059290921b84018101918181019086841115612ae957600080fd5b8286015b848110156128705780356001600160801b0381168114612b0d5760008081fd5b8352918301918301612aed565b600060608284031215612b2c57600080fd5b604051606081016001600160401b0381118282101715612b4e57612b4e61263e565b80604052508091508235815260208301356020820152604083013560408201525092915050565b600080600060a08486031215612b8a57600080fd5b8335612b958161251a565b925060208401356001600160401b0380821115612bb157600080fd5b9085019060e08288031215612bc557600080fd5b612bcd61269e565b612bd6836127ce565b8152602083013582811115612bea57600080fd5b612bf689828601612a45565b602083015250604083013582811115612c0e57600080fd5b612c1a89828601612aa9565b604083015250612c2c6060840161252f565b6060820152612c3d6080840161252f565b6080820152612c4e60a0840161252f565b60a0820152612c5f60c0840161252f565b60c0820152809450505050612c778560408601612b1a565b90509250925092565b801515811461092257600080fd5b600080600060608486031215612ca357600080fd5b8335612cae8161251a565b925060208401356001600160401b03811115612cc957600080fd5b612cd58682870161287b565b9250506040840135612ce681612c80565b809150509250925092565b600060208284031215612d0357600080fd5b81356001600160401b03811115612d1957600080fd5b61221984828501612717565b60005b83811015612d40578181015183820152602001612d28565b50506000910152565b600082601f830112612d5a57600080fd5b8151612d68612736826126f0565b818152846020838601011115612d7d57600080fd5b612219826020830160208701612d25565b600082601f830112612d9f57600080fd5b81516020612daf612736836127e9565b82815260059290921b84018101918181019086841115612dce57600080fd5b8286015b84811015612870578051612de58161251a565b8352918301918301612dd2565b60006020808385031215612e0557600080fd5b82516001600160401b0380821115612e1c57600080fd5b9084019060808287031215612e3057600080fd5b612e38612654565b8251612e43816127bc565b815282840151612e52816127d9565b81850152604083015182811115612e6857600080fd5b612e7488828601612d49565b604083015250606083015182811115612e8c57600080fd5b80840193505086601f840112612ea157600080fd5b8251612eaf612736826127e9565b81815260059190911b84018501908581019089831115612ece57600080fd5b8686015b83811015612f9157805186811115612eea5760008081fd5b870160a0818d03601f1901811315612f025760008081fd5b612f0a61267c565b8a830151612f17816127d9565b81526040830151612f27816127bc565b818c015260608301516040820152608083015189811115612f485760008081fd5b612f568f8d83870101612d49565b606083015250908201519088821115612f6f5760008081fd5b612f7d8e8c84860101612d8e565b608082015285525050918701918701612ed2565b5060608401525090979650505050505050565b6020808252602c9082015260008051602061340d83398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c9082015260008051602061340d83398151915260408201526b6163746976652070726f787960a01b606082015260800190565b60006020828403121561302a57600080fd5b8151611a838161251a565b6000815180845261304d816020860160208601612d25565b601f01601f19169290920160200192915050565b6001600160a01b03858116825284811660208301528316604082015260806060820181905260009061309590830184613035565b9695505050505050565b6000602082840312156130b157600080fd5b8151611a8381612c80565b6000608063ffffffff80845116855260208085015161ffff80821683890152604091508187015185838a01526130f4868a0182613035565b90506060808901518a8303828c01528281518085528785019150878160051b86010188840193506000805b838110156131c357601f19888403018552855160a08a82511685528d8d830151168d8601528b8201518c86015288820151818a87015261316182870182613035565b9150508e82015191508481038f8601528082518083528e830191508e840193508592505b808310156131ae5783516001600160a01b03168252928e019260019290920191908e0190613185565b50978d0197968d01969450505060010161311f565b50909e9d5050505050505050505050505050565b82815260406020820152600061221960408301846130bc565b6001600160a01b0384168152608060208201819052600090613214908301856130bc565b9215156040830152508082036060909101526000815260200192915050565b60006020828403121561324557600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761068557610685613262565b8082018082111561068557610685613262565b8181038181111561068557610685613262565b6000600182016132c7576132c7613262565b5060010190565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b815260008351613300816017850160208801612d25565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351613331816028840160208801612d25565b01602801949350505050565b602081526000611a836020830184613035565b60008261336d57634e487b7160e01b600052601260045260246000fd5b500490565b60008161338157613381613262565b506000190190565b6000825161339b818460208701612d25565b9190910192915050565b6001600160401b038181168382160190808211156133c5576133c5613262565b5092915050565b6001600160801b038181168382160190808211156133c5576133c561326256fef0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc946756e6374696f6e206d7573742062652063616c6c6564207468726f75676820360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220eef69bb17067c9b9d5553a6f4c5c443a943def98f811dc8b3f408d90efaccdfb64736f6c63430008130033";
1617
+ "0x60e06040523060c0523480156200001557600080fd5b5060405162004da438038062004da4833981016040819052620000389162000098565b6001600160a01b038216608081905282908290620000695760405163538ba4f960e01b815260040160405180910390fd5b6001600160a01b031660a05250620000d7915050565b6001600160a01b03811681146200009557600080fd5b50565b60008060408385031215620000ac57600080fd5b8251620000b9816200007f565b6020840151909250620000cc816200007f565b809150509250929050565b60805160a05160c051614c266200017e6000396000818161101f0152818161105f01528181611156015281816111960152818161120501528181611c630152611ca301526000818161082401528181610c1501528181610c8f0152610ddb01526000818161096d01528181610bab01528181610ee1015281816112b3015281816113900152818161167301528181611aa6015281816120d201526126b70152614c266000f3fe6080604052600436106101f75760003560e01c80630150aefb146101fc57806301ffc9a71461024257806308ae4b0c146102625780630b1ca49a14610293578063150b7a02146102b55780631a2a84b3146102ee5780631bb15f3d1461031c5780631db128c7146103c8578063230dbd29146103f5578063248a9ca3146104155780632b4116f7146104355780632f2ff15d1461046257806330d9c9151461048257806336568abe146104a25780633659cfe6146104c2578063379607f5146104e25780633a5673a41461050257806347ccca02146105235780634f1ef2861461054457806352d1902d1461055757806353c11f991461056c5780635f9e7d771461058c5780636180c793146105ac578063647c75e2146105cc57806372ca8a3e1461063d578063860aefcf1461065d578063884d1f401461069a57806391d14854146106ba5780639894b52f146106da5780639986a376146106fa5780639f8fddd21461071a578063a217fddf1461073a578063a49b27131461074f578063a4c0ed361461076f578063ae8272001461078f578063bcb4546f146107a2578063c2e11e3f146107c4578063c31c9c0714610812578063d539139314610846578063d547741f14610868578063d86ed3e514610888578063e06174e4146108a8578063ec87621c14610927578063f437bc591461095b575b600080fd5b34801561020857600080fd5b5061022d6102173660046137e0565b61013a6020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561024e57600080fd5b5061022d61025d3660046137f9565b61098f565b34801561026e57600080fd5b5061022d61027d366004613848565b61013b6020526000908152604090205460ff1681565b34801561029f57600080fd5b506102b36102ae366004613848565b6109c6565b005b3480156102c157600080fd5b506102d56102d03660046138ad565b610a2e565b6040516001600160e01b03199091168152602001610239565b3480156102fa57600080fd5b5061030e610309366004613848565b610ae9565b604051908152602001610239565b34801561032857600080fd5b50610384610337366004613848565b61013c60205260009081526040902080546001909101546001600160801b0380831692600160801b90819004821692918216916001600160401b03918104821691600160c01b9091041685565b604080516001600160801b039687168152948616602086015292909416918301919091526001600160401b039081166060830152909116608082015260a001610239565b3480156103d457600080fd5b506103e86103e3366004613a4e565b610b89565b6040516102399190613b72565b34801561040157600080fd5b506103e8610410366004613b85565b610e57565b34801561042157600080fd5b5061030e6104303660046137e0565b610e9e565b34801561044157600080fd5b50609754610455906001600160a01b031681565b6040516102399190613c4f565b34801561046e57600080fd5b506102b361047d366004613c63565b610eb3565b34801561048e57600080fd5b506103e861049d366004613c93565b610ed4565b3480156104ae57600080fd5b506102b36104bd366004613c63565b610f97565b3480156104ce57600080fd5b506102b36104dd366004613848565b611015565b3480156104ee57600080fd5b506102b36104fd3660046137e0565b6110d4565b34801561050e57600080fd5b5061013f54610455906001600160a01b031681565b34801561052f57600080fd5b5061013954610455906001600160a01b031681565b6102b3610552366004613d31565b61114c565b34801561056357600080fd5b5061030e6111f8565b34801561057857600080fd5b506103e8610587366004613b85565b6112a6565b34801561059857600080fd5b506103e86105a7366004613c93565b611383565b3480156105b857600080fd5b506102b36105c7366004613d31565b611468565b3480156105d857600080fd5b506106166105e7366004613848565b60986020526000908152604090208054600190910154600b81900b90600160601b90046001600160801b031683565b60408051938452600b9290920b60208401526001600160801b031690820152606001610239565b34801561064957600080fd5b5061022d610658366004613848565b611652565b34801561066957600080fd5b5061013654610137546101385461067f92919083565b60408051938452602084019290925290820152606001610239565b3480156106a657600080fd5b506103e86106b5366004613c93565b611666565b3480156106c657600080fd5b5061022d6106d5366004613c63565b611763565b3480156106e657600080fd5b506102b36106f5366004613fcd565b61178e565b34801561070657600080fd5b506102b3610715366004614139565b611845565b34801561072657600080fd5b506103e8610735366004614244565b611a84565b34801561074657600080fd5b5061030e600081565b34801561075b57600080fd5b506102b361076a3660046142a0565b611b43565b34801561077b57600080fd5b5061022d61078a366004614303565b611bee565b6102b361079d36600461435e565b611c59565b3480156107ae57600080fd5b5061030e600080516020614b4a83398151915281565b3480156107d057600080fd5b5061013d5461013e54610384916001600160801b0380821692600160801b92839004821692918116916001600160401b03908204811691600160c01b90041685565b34801561081e57600080fd5b506104557f000000000000000000000000000000000000000000000000000000000000000081565b34801561085257600080fd5b5061030e600080516020614b6a83398151915281565b34801561087457600080fd5b506102b3610883366004613c63565b611d76565b34801561089457600080fd5b506103e86108a3366004613b85565b611d92565b3480156108b457600080fd5b5061012f54610132546101335461013454610135546108ea9463ffffffff16936001600160a01b03908116938116928116911685565b6040805163ffffffff90961686526001600160a01b039485166020870152928416928501929092528216606084015216608082015260a001610239565b34801561093357600080fd5b5061030e7f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b0881565b34801561096757600080fd5b506104557f000000000000000000000000000000000000000000000000000000000000000081565b60006001600160e01b03198216637965db0b60e01b14806109c057506301ffc9a760e01b6001600160e01b03198316145b92915050565b60006109d181611dc0565b6001600160a01b038216600090815261013b602052604090819020805460ff19169055517f6e76fb4c77256006d9c38ec7d82b45a8c8f3c27b1d6766fffc42dfb8de68449290610a22908490613c4f565b60405180910390a15050565b610139546040516302b5313d60e21b81526004810185905260009182916001600160a01b0390911690630ad4c4f490602401600060405180830381865afa158015610a7d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610aa5919081019061443b565b61012f54815191925063ffffffff918216911614610ad65760405163f26722ad60e01b815260040160405180910390fd5b50630a85bd0160e11b9695505050505050565b6001600160a01b0381166000908152609860209081526040808320815160608101835281548152600190910154600b81900b938201849052600160601b90046001600160801b031691810191909152908203610b46575192915050565b6040810151610b5e906001600160801b031642614603565b81602001516001600160601b0316610b769190614616565b8151610b82919061462d565b9392505050565b606082336001600160a01b03821614801590610bce5750336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614155b15610bf7573360405163087231bf60e31b8152600401610bee9190613c4f565b60405180910390fd5b610c0b856000015185308860200151611dca565b610c3e85600001517f00000000000000000000000000000000000000000000000000000000000000008760200151611ed4565b60808501515115610d235760006040518060a0016040528087608001518152602001866001600160a01b031681526020018760600151815260200187602001518152602001876040015181525090507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c04b8d59826040518263ffffffff1660e01b8152600401610cd99190614640565b6020604051808303816000875af1158015610cf8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1c9190614698565b5050610e4e565b604080516101008101825286516001600160a01b0390811682526097548116602080840191825261271084860190815289841660608087019182528c015160808701908152928c015160a087019081528c88015160c08801908152600060e08901908152985163414bf38960e01b8152885188166004820152955187166024870152925162ffffff16604486015290518516606485015291516084840152905160a48301525160c48201529251811660e484015290917f00000000000000000000000000000000000000000000000000000000000000009091169063414bf38990610104016020604051808303816000875af1158015610e27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e4b9190614698565b50505b50909392505050565b60606000610e67878901896146b1565b509050600080610e79878901896146ee565b91509150610e8b8d8484848a8a611fd7565b93505050505b9998505050505050505050565b60009081526065602052604090206001015490565b610ebc82610e9e565b610ec581611dc0565b610ecf8383612026565b505050565b6060336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610f1f57604051632f2d36a760e01b815260040160405180910390fd5b610f28876120ac565b610f4b5750604080518082019091526002815261060f60f31b6020820152610f8c565b610f5488611652565b610f7157604051631ea25bab60e31b815260040160405180910390fd5b50604080518082019091526002815261060f60f31b60208201525b979650505050505050565b6001600160a01b03811633146110075760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610bee565b6110118282612160565b5050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361105d5760405162461bcd60e51b8152600401610bee9061471a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661108f6121c7565b6001600160a01b0316146110b55760405162461bcd60e51b8152600401610bee90614754565b604080516000808252602082019092526110d1918391906121e3565b50565b610139546040516302b5313d60e21b8152600481018390526110d19183916001600160a01b0390911690630ad4c4f490602401600060405180830381865afa158015611124573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106f5919081019061443b565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036111945760405162461bcd60e51b8152600401610bee9061471a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166111c66121c7565b6001600160a01b0316146111ec5760405162461bcd60e51b8152600401610bee90614754565b611011828260016121e3565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146112935760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b6064820152608401610bee565b50600080516020614baa83398151915290565b6060336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415806112e657506112e4896120ac565b155b806112f757506112f58a611652565b155b1561133b5782828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929350610e9192505050565b60008061134a888a018a6146b1565b909250905060008061135e888a018a61478e565b915091506113718e858584868c8c61234e565b9e9d5050505050505050505050505050565b6060336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415806113c357506113c1876120ac565b155b806113d457506113d288611652565b155b156113f85750604080518082019091526002815261060f60f31b6020820152610f8c565b600080611407868801886146b1565b90925090506000806114236001600160a01b038d16858561239e565b5050915091508181604051602001611448929190918252600b0b602082015260400190565b604051602081830303815290604052945050505050979650505050505050565b610134546001600160a01b03161561151c57610134546040516316874da360e11b81526000916001600160a01b031690632d0e9b46906114ac908690600401613c4f565b6020604051808303816000875af11580156114cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ef91906147b3565b90506001600160a01b03811661151a5782604051630b7b234960e01b8152600401610bee9190613c4f565b505b610133546001600160a01b0316156115d157610133546040516356a42afd60e11b81526001600160a01b039091169063ad4855fa906115659030903390879087906004016147d0565b6020604051808303816000875af1158015611584573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a8919061480e565b15156000036115cc578160405163130f4a3760e11b8152600401610bee9190613c4f565b6115fe565b6115dc600033611763565b15156000036115fe57604051634df0b5ad60e11b815260040160405180910390fd5b6001600160a01b038216600090815261013b602052604090819020805460ff19166001179055517fb251eb052afc73ffd02ffe85ad79990a8b3fed60d76dbc2fa2fdd7123dffd91490610a22908490613c4f565b6097546001600160a01b0390811691161490565b6060336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146116b157604051632f2d36a760e01b815260040160405180910390fd5b6116ba876120ac565b6116dd5750604080518082019091526002815261060f60f31b6020820152610f8c565b6116e688611652565b61170357604051631ea25bab60e31b815260040160405180910390fd5b6000611711858701876146b1565b50905060008061172b6001600160a01b038c16843061239e565b505060408051600b9290920b60208301528181019290925281518082038301815260609091019091529b9a5050505050505050505050565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b61013954604051638055b10f60e01b81526001600160a01b0390911690638055b10f906117c19085908590600401614946565b600060405180830381865afa1580156117de573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611806919081019061443b565b50600082815261013a602052604090205460ff161561183b576040516330e51df560e11b815260048101839052602401610bee565b6110118282612440565b600054610100900460ff16158080156118655750600054600160ff909116105b8061188657506118743061263e565b158015611886575060005460ff166001145b6118e95760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610bee565b6000805460ff19166001179055801561190c576000805461ff0019166101001790555b61013f80546001600160a01b03191633179055825161012f805463ffffffff90921663ffffffff199092169190911781556020808501518051869392611958926101309291019061367c565b5060408201518051611974916002840191602090910190613725565b5060608201516003820180546001600160a01b03199081166001600160a01b03938416179091556080840151600484018054831691841691909117905560a0840151600584018054831691841691909117905560c090930151600690920180548416928216929092179091558351610136556020840151610137556040840151610138556101398054909216908616179055611a1160003361264d565b611a226000801b846060015161264d565b61013554611a38906001600160a01b0316612657565b8015611a7e576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b606083336001600160a01b03821614801590611ac95750336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614155b15611ae9573360405163087231bf60e31b8152600401610bee9190613c4f565b83600003611b0a57604051630f6fa54560e41b815260040160405180910390fd5b609754611b22906001600160a01b0316863087611dca565b610e4e85611b326103e88761495f565b611b3e6103e842614603565b61270f565b600080516020614b6a833981519152611b5b81611dc0565b6101395460405163149e33f960e31b81526000916001600160a01b03169063a4f19fc890611b929088908890600190600401614981565b6020604051808303816000875af1158015611bb1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bd59190614698565b90508215611be757611be7818561178e565b5050505050565b6097546000906001600160a01b03163314611c1c57604051630ce706f760e41b815260040160405180910390fd5b83600003611c3d57604051630f6fa54560e41b815260040160405180910390fd5b611c4d85611b326103e88761495f565b5060015b949350505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611ca15760405162461bcd60e51b8152600401610bee9061471a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611cd36121c7565b6001600160a01b031614611cf95760405162461bcd60e51b8152600401610bee90614754565b61013f5460408051638abf607760e01b815290516000926001600160a01b031691638abf60779160048083019260209291908290030181865afa158015611d44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d6891906147b3565b9050611011818360006121e3565b611d7f82610e9e565b611d8881611dc0565b610ecf8383612160565b60606000611da2878901896146b1565b509050611db18b828686612831565b9b9a5050505050505050505050565b6110d1813361287f565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b1790529151600092839290881691611e2e91906149c4565b6000604051808303816000865af19150503d8060008114611e6b576040519150601f19603f3d011682016040523d82523d6000602084013e611e70565b606091505b5091509150818015611e9a575080511580611e9a575080806020019051810190611e9a919061480e565b611ecc5760405162461bcd60e51b815260206004820152600360248201526229aa2360e91b6044820152606401610bee565b505050505050565b600080846001600160a01b031663095ea7b360e01b8585604051602401611efc9291906149e0565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051611f3a91906149c4565b6000604051808303816000865af19150503d8060008114611f77576040519150601f19603f3d011682016040523d82523d6000602084013e611f7c565b606091505b5091509150818015611fa6575080511580611fa6575080806020019051810190611fa6919061480e565b611be75760405162461bcd60e51b8152602060048201526002602482015261534160f01b6044820152606401610bee565b6060611fe486868661270f565b82828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929a9950505050505050505050565b6120308282611763565b6110115760008281526065602090815260408083206001600160a01b03851684529091529020805460ff191660011790556120683390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b604051635b69006f60e11b8152600080516020614b4a83398151915260048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063b6d200de90602401602060405180830381865afa158015612121573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061214591906147b3565b6001600160a01b0316826001600160a01b0316149050919050565b61216a8282611763565b156110115760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600080516020614baa833981519152546001600160a01b031690565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561221657610ecf836128d8565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612270575060408051601f3d908101601f1916820190925261226d91810190614698565b60015b6122d35760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610bee565b600080516020614baa83398151915281146123425760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610bee565b50610ecf838383612972565b606061235b87868661270f565b82828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929b9a5050505050505050505050565b60008060008060006123af88612997565b604051631cd43d1160e31b81526001600160a01b038b811660048301528a811660248301528981166044830152919350908316915063e6a1e88890606401608060405180830381865afa15801561240a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061242e91906149f9565b929b919a509850909650945050505050565b600082815261013a6020526040808220805460ff191660011790556101355490516370a0823160e01b815282916001600160a01b0316906370a082319061248b903090600401613c4f565b602060405180830381865afa1580156124a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124cc9190614698565b905060005b8360600151518110156125fd57600061250a856060015183815181106124f9576124f9614a37565b602002602001015160000151612b06565b90506001600160801b038116156125ea578460600151828151811061253157612531614a37565b602002602001015160400151816001600160801b03166125519190614616565b61255b908561462d565b93508284111561257e5760405163701b93d160e11b815260040160405180910390fd5b6125888484614603565b92506125ea856060015183815181106125a3576125a3614a37565b602002602001015160800151866060015184815181106125c5576125c5614a37565b602002602001015160400151836001600160801b03166125e59190614616565b612bbd565b50806125f581614a4d565b9150506124d1565b50837f47b0878030426a9511b1cd915a0ac34bd29f33d4f846616b55847303ff8ebcbe8360405161263091815260200190565b60405180910390a250505050565b6001600160a01b03163b151590565b6110118282612026565b6001600160a01b03811661267e5760405163538ba4f960e01b815260040160405180910390fd5b609780546001600160a01b0319166001600160a01b03838116919091179091556040516315a722b960e31b8152600160048201819052917f0000000000000000000000000000000000000000000000000000000000000000169063ad3915c890602401600060405180830381600087803b1580156126fb57600080fd5b505af1158015611ecc573d6000803e3d6000fd5b609754600090612729906001600160a01b0316853061239e565b50506001600160a01b038616600090815260986020526040902060010180546001600160e01b031916600160601b426001600160801b038116919091026001600160601b031916919091176001600160601b0384161790915590925061279191508390614603565b6127a4906001600160601b038516614616565b6001600160a01b038516600090815260986020526040812080549091906127cc90849061462d565b90915550506001600160a01b038416600081815260986020526040908190205490517ff72670ccbd68e6b74da384b1332a3c7fef4466b45359f94f4b79c22e206a6fbe916126309185904290928352600b9190910b6020830152604082015260600190565b606061283f8460008061270f565b82828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509298975050505050505050565b6128898282611763565b6110115761289681612c5f565b6128a1836020612c71565b6040516020016128b2929190614a66565b60408051601f198184030181529082905262461bcd60e51b8252610bee91600401613b72565b6128e18161263e565b6129435760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610bee565b600080516020614baa83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61297b83612e0c565b6000825111806129885750805b15610ecf57611a7e8383612e4c565b7f65599bf746e17a00ea62e3610586992d88101b78eec3cf380706621fb97ea837547fb969d79d88acd02d04ed7ee7d43b949e7daf093d363abcfbbc43dfdfd1ce969a546001600160a01b038116612ad5576001600160a01b038216612a5c57826001600160a01b03166320bc44256040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a5991906147b3565b91505b604051635b69006f60e11b8152600080516020614b4a83398151915260048201526001600160a01b0383169063b6d200de90602401602060405180830381865afa158015612aae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ad291906147b3565b90505b6001600160a01b038216612aeb57612aeb614ad5565b6001600160a01b038116612b0157612b01614ad5565b915091565b6000805b61013054811015612bb457610130805482908110612b2a57612b2a614a37565b90600052602060002090601091828204019190066002029054906101000a900461ffff1661ffff168361ffff1603612ba257610131805482908110612b7157612b71614a37565b90600052602060002090600291828204019190066010029054906101000a90046001600160801b0316915050919050565b80612bac81614a4d565b915050612b0a565b50600092915050565b60008251826001600160801b0316612bd5919061495f565b905060005b8351811015612c5557612c06848281518110612bf857612bf8614a37565b602002602001015183612f3e565b612c43848281518110612c1b57612c1b614a37565b6020908102919091010151610135546001600160a01b0316906001600160801b03851661323b565b80612c4d81614a4d565b915050612bda565b50610ecf82613291565b60606109c06001600160a01b03831660145b60606000612c80836002614616565b612c8b90600261462d565b6001600160401b03811115612ca257612ca261391f565b6040519080825280601f01601f191660200182016040528015612ccc576020820181803683370190505b509050600360fc1b81600081518110612ce757612ce7614a37565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110612d1657612d16614a37565b60200101906001600160f81b031916908160001a9053506000612d3a846002614616565b612d4590600161462d565b90505b6001811115612dbd576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110612d7957612d79614a37565b1a60f81b828281518110612d8f57612d8f614a37565b60200101906001600160f81b031916908160001a90535060049490941c93612db681614aeb565b9050612d48565b508315610b825760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610bee565b612e15816128d8565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060612e578361263e565b612eb25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610bee565b600080846001600160a01b031684604051612ecd91906149c4565b600060405180830381855af49150503d8060008114612f08576040519150601f19603f3d011682016040523d82523d6000602084013e612f0d565b606091505b5091509150612f358282604051806060016040528060278152602001614bca60279139613467565b95945050505050565b6001600160a01b038216600090815261013b602052604081205460ff1615159003612f7e578160405163130f4a3760e11b8152600401610bee9190613c4f565b6000612f88613480565b6001600160a01b038416600090815261013c60205260409020600101549091504290612fc790600160801b90046001600160401b031662015180614b02565b6001600160401b0316101561300d576001600160a01b038316600090815261013c6020526040902080546001600160801b0319166001600160801b038416179055613064565b6001600160a01b038316600090815261013c60205260408120805484929061303f9084906001600160801b0316614b29565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505b6001600160a01b038316600090815261013c60205260409020600101546001600160401b03808316600160c01b9092041610156130d1576001600160a01b038316600090815261013c6020526040902080546001600160801b03808516600160801b029116179055613132565b6001600160a01b038316600090815261013c60205260409020805483919060109061310d908490600160801b90046001600160801b0316614b29565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505b6001600160a01b038316600090815261013c6020526040812060010180548492906131679084906001600160801b0316614b29565b82546101009290920a6001600160801b038181021990931691831602179091556001600160a01b038516600090815261013c602052604090206001810180548316600160801b426001600160401b03908116919091026001600160c01b031691909117600160c01b918716919091021790556101385490549091161190508061321b5750610137546001600160a01b038416600090815261013c6020526040902054600160801b90046001600160801b0316115b15610ecf5782604051636e661e3360e11b8152600401610bee9190613c4f565b610ecf8363a9059cbb60e01b848460405160240161325a9291906149e0565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613494565b600061329b613480565b61013e5490915042906132c190600160801b90046001600160401b031662015180614b02565b6001600160401b031610156132f15761013d80546001600160801b0319166001600160801b038416179055613335565b61013d80548391906000906133109084906001600160801b0316614b29565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505b61013e546001600160401b03808316600160c01b9092041610156133735761013d80546001600160801b03808516600160801b0291161790556133be565b61013d8054839190601090613399908490600160801b90046001600160801b0316614b29565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505b61013e80548391906000906133dd9084906001600160801b0316614b29565b82546101009290920a6001600160801b0381810219909316918316021790915561013e80548216600160801b426001600160401b0390811682026001600160c01b031692909217600160c01b92871692909202919091179091556101365461013d54919091049091161115905061101157604051639803f99760e01b815260040160405180910390fd5b60608315613476575081610b82565b610b828383613566565b600061348f62278d004261495f565b905090565b60006134e9826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166135909092919063ffffffff16565b805190915015610ecf5780806020019051810190613507919061480e565b610ecf5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610bee565b8151156135765781518083602001fd5b8060405162461bcd60e51b8152600401610bee9190613b72565b6060611c51848460008585600080866001600160a01b031685876040516135b791906149c4565b60006040518083038185875af1925050503d80600081146135f4576040519150601f19603f3d011682016040523d82523d6000602084013e6135f9565b606091505b5091509150610f8c878383876060831561367257825160000361366b5761361f8561263e565b61366b5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610bee565b5081611c51565b611c518383613566565b82805482825590600052602060002090600f016010900481019282156137155791602002820160005b838211156136e557835183826101000a81548161ffff021916908361ffff16021790555092602001926002016020816001010492830192600103026136a5565b80156137135782816101000a81549061ffff02191690556002016020816001010492830192600103026136e5565b505b506137219291506137cb565b5090565b828054828255906000526020600020906001016002900481019282156137155791602002820160005b8382111561379857835183826101000a8154816001600160801b0302191690836001600160801b031602179055509260200192601001602081600f0104928301926001030261374e565b80156137135782816101000a8154906001600160801b030219169055601001602081600f01049283019260010302613798565b5b8082111561372157600081556001016137cc565b6000602082840312156137f257600080fd5b5035919050565b60006020828403121561380b57600080fd5b81356001600160e01b031981168114610b8257600080fd5b6001600160a01b03811681146110d157600080fd5b803561384381613823565b919050565b60006020828403121561385a57600080fd5b8135610b8281613823565b60008083601f84011261387757600080fd5b5081356001600160401b0381111561388e57600080fd5b6020830191508360208285010111156138a657600080fd5b9250929050565b6000806000806000608086880312156138c557600080fd5b85356138d081613823565b945060208601356138e081613823565b93506040860135925060608601356001600160401b0381111561390257600080fd5b61390e88828901613865565b969995985093965092949392505050565b634e487b7160e01b600052604160045260246000fd5b60405160a081016001600160401b03811182821017156139575761395761391f565b60405290565b604051608081016001600160401b03811182821017156139575761395761391f565b60405160e081016001600160401b03811182821017156139575761395761391f565b604051601f8201601f191681016001600160401b03811182821017156139c9576139c961391f565b604052919050565b60006001600160401b038211156139ea576139ea61391f565b50601f01601f191660200190565b600082601f830112613a0957600080fd5b8135613a1c613a17826139d1565b6139a1565b818152846020838601011115613a3157600080fd5b816020850160208301376000918101602001919091529392505050565b600080600060608486031215613a6357600080fd5b83356001600160401b0380821115613a7a57600080fd5b9085019060a08288031215613a8e57600080fd5b613a96613935565b8235613aa181613823565b80825250602083013560208201526040830135604082015260608301356060820152608083013582811115613ad557600080fd5b613ae1898286016139f8565b6080830152509450613af560208701613838565b93506040860135915080821115613b0b57600080fd5b50613b18868287016139f8565b9150509250925092565b60005b83811015613b3d578181015183820152602001613b25565b50506000910152565b60008151808452613b5e816020860160208601613b22565b601f01601f19169290920160200192915050565b602081526000610b826020830184613b46565b600080600080600080600080600060c08a8c031215613ba357600080fd5b8935613bae81613823565b985060208a0135613bbe81613823565b975060408a0135965060608a01356001600160401b0380821115613be157600080fd5b613bed8d838e01613865565b909850965060808c0135915080821115613c0657600080fd5b613c128d838e01613865565b909650945060a08c0135915080821115613c2b57600080fd5b50613c388c828d01613865565b915080935050809150509295985092959850929598565b6001600160a01b0391909116815260200190565b60008060408385031215613c7657600080fd5b823591506020830135613c8881613823565b809150509250929050565b600080600080600080600060a0888a031215613cae57600080fd5b8735613cb981613823565b96506020880135613cc981613823565b95506040880135945060608801356001600160401b0380821115613cec57600080fd5b613cf88b838c01613865565b909650945060808a0135915080821115613d1157600080fd5b50613d1e8a828b01613865565b989b979a50959850939692959293505050565b60008060408385031215613d4457600080fd5b8235613d4f81613823565b915060208301356001600160401b03811115613d6a57600080fd5b613d76858286016139f8565b9150509250929050565b63ffffffff811681146110d157600080fd5b803561384381613d80565b61ffff811681146110d157600080fd5b60006001600160401b03821115613dc657613dc661391f565b5060051b60200190565b600082601f830112613de157600080fd5b81356020613df1613a1783613dad565b82815260059290921b84018101918181019086841115613e1057600080fd5b8286015b84811015613e34578035613e2781613823565b8352918301918301613e14565b509695505050505050565b600060808284031215613e5157600080fd5b613e5961395d565b90508135613e6681613d80565b8152602082810135613e7781613d9d565b8282015260408301356001600160401b0380821115613e9557600080fd5b613ea1868387016139f8565b6040850152606091508185013581811115613ebb57600080fd5b8501601f81018713613ecc57600080fd5b8035613eda613a1782613dad565b81815260059190911b82018501908581019089831115613ef957600080fd5b8684015b83811015613fba57803586811115613f155760008081fd5b850160a0818d03601f1901811315613f2d5760008081fd5b613f35613935565b8a830135613f4281613d9d565b81526040830135613f5281613d80565b818c0152828a01356040820152608083013589811115613f725760008081fd5b613f808f8d838701016139f8565b828c015250908201359088821115613f985760008081fd5b613fa68e8c84860101613dd0565b608082015285525050918701918701613efd565b5080868901525050505050505092915050565b60008060408385031215613fe057600080fd5b8235915060208301356001600160401b03811115613ffd57600080fd5b613d7685828601613e3f565b600082601f83011261401a57600080fd5b8135602061402a613a1783613dad565b82815260059290921b8401810191818101908684111561404957600080fd5b8286015b84811015613e3457803561406081613d9d565b835291830191830161404d565b600082601f83011261407e57600080fd5b8135602061408e613a1783613dad565b82815260059290921b840181019181810190868411156140ad57600080fd5b8286015b84811015613e345780356001600160801b03811681146140d15760008081fd5b83529183019183016140b1565b6000606082840312156140f057600080fd5b604051606081016001600160401b03811182821017156141125761411261391f565b80604052508091508235815260208301356020820152604083013560408201525092915050565b600080600060a0848603121561414e57600080fd5b833561415981613823565b925060208401356001600160401b038082111561417557600080fd5b9085019060e0828803121561418957600080fd5b61419161397f565b61419a83613d92565b81526020830135828111156141ae57600080fd5b6141ba89828601614009565b6020830152506040830135828111156141d257600080fd5b6141de8982860161406d565b6040830152506141f060608401613838565b606082015261420160808401613838565b608082015261421260a08401613838565b60a082015261422360c08401613838565b60c082015280945050505061423b85604086016140de565b90509250925092565b60008060006060848603121561425957600080fd5b833561426481613823565b92506020840135915060408401356001600160401b0381111561428657600080fd5b613b18868287016139f8565b80151581146110d157600080fd5b6000806000606084860312156142b557600080fd5b83356142c081613823565b925060208401356001600160401b038111156142db57600080fd5b6142e786828701613e3f565b92505060408401356142f881614292565b809150509250925092565b6000806000806060858703121561431957600080fd5b843561432481613823565b93506020850135925060408501356001600160401b0381111561434657600080fd5b61435287828801613865565b95989497509550505050565b60006020828403121561437057600080fd5b81356001600160401b0381111561438657600080fd5b611c51848285016139f8565b600082601f8301126143a357600080fd5b81516143b1613a17826139d1565b8181528460208386010111156143c657600080fd5b611c51826020830160208701613b22565b600082601f8301126143e857600080fd5b815160206143f8613a1783613dad565b82815260059290921b8401810191818101908684111561441757600080fd5b8286015b84811015613e3457805161442e81613823565b835291830191830161441b565b6000602080838503121561444e57600080fd5b82516001600160401b038082111561446557600080fd5b908401906080828703121561447957600080fd5b61448161395d565b825161448c81613d80565b81528284015161449b81613d9d565b818501526040830151828111156144b157600080fd5b6144bd88828601614392565b6040830152506060830151828111156144d557600080fd5b80840193505086601f8401126144ea57600080fd5b82516144f8613a1782613dad565b81815260059190911b8401850190858101908983111561451757600080fd5b8686015b838110156145da578051868111156145335760008081fd5b870160a0818d03601f190181131561454b5760008081fd5b614553613935565b8a83015161456081613d9d565b8152604083015161457081613d80565b818c0152606083015160408201526080830151898111156145915760008081fd5b61459f8f8d83870101614392565b6060830152509082015190888211156145b85760008081fd5b6145c68e8c848601016143d7565b60808201528552505091870191870161451b565b5060608401525090979650505050505050565b634e487b7160e01b600052601160045260246000fd5b818103818111156109c0576109c06145ed565b80820281158282048414176109c0576109c06145ed565b808201808211156109c0576109c06145ed565b602081526000825160a0602084015261465c60c0840182613b46565b905060018060a01b0360208501511660408401526040840151606084015260608401516080840152608084015160a08401528091505092915050565b6000602082840312156146aa57600080fd5b5051919050565b600080604083850312156146c457600080fd5b82356146cf81613823565b91506020830135613c8881613823565b80600b0b81146110d157600080fd5b6000806040838503121561470157600080fd5b823561470c816146df565b946020939093013593505050565b6020808252602c90820152600080516020614b8a83398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c90820152600080516020614b8a83398151915260408201526b6163746976652070726f787960a01b606082015260800190565b600080604083850312156147a157600080fd5b823591506020830135613c88816146df565b6000602082840312156147c557600080fd5b8151610b8281613823565b6001600160a01b03858116825284811660208301528316604082015260806060820181905260009061480490830184613b46565b9695505050505050565b60006020828403121561482057600080fd5b8151610b8281614292565b6000608063ffffffff80845116855260208085015161ffff80821683890152604091508187015185838a0152614863868a0182613b46565b90506060808901518a8303828c01528281518085528785019150878160051b86010188840193506000805b8381101561493257601f19888403018552855160a08a82511685528d8d830151168d8601528b8201518c86015288820151818a8701526148d082870182613b46565b9150508e82015191508481038f8601528082518083528e830191508e840193508592505b8083101561491d5783516001600160a01b03168252928e019260019290920191908e01906148f4565b50978d0197968d01969450505060010161488e565b50909e9d5050505050505050505050505050565b828152604060208201526000611c51604083018461482b565b60008261497c57634e487b7160e01b600052601260045260246000fd5b500490565b6001600160a01b03841681526080602082018190526000906149a59083018561482b565b9215156040830152508082036060909101526000815260200192915050565b600082516149d6818460208701613b22565b9190910192915050565b6001600160a01b03929092168252602082015260400190565b60008060008060808587031215614a0f57600080fd5b845193506020850151614a21816146df565b6040860151606090960151949790965092505050565b634e487b7160e01b600052603260045260246000fd5b600060018201614a5f57614a5f6145ed565b5060010190565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b815260008351614a98816017850160208801613b22565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351614ac9816028840160208801613b22565b01602801949350505050565b634e487b7160e01b600052600160045260246000fd5b600081614afa57614afa6145ed565b506000190190565b6001600160401b03818116838216019080821115614b2257614b226145ed565b5092915050565b6001600160801b03818116838216019080821115614b2257614b226145ed56fea9214cc96615e0085d3bb077758db69497dc2dce3b2b1e97bc93c3d18d83efd3f0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc946756e6374696f6e206d7573742062652063616c6c6564207468726f75676820360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220a83a6b6a408cdfa65478258320e69c8aade41352974de00c6370e213d6e4bc9564736f6c63430008130033";
1048
1618
 
1049
1619
  type DirectPaymentsPoolConstructorParams =
1050
1620
  | [signer?: Signer]
@@ -1064,14 +1634,22 @@ export class DirectPaymentsPool__factory extends ContractFactory {
1064
1634
  }
1065
1635
 
1066
1636
  override deploy(
1637
+ _host: PromiseOrValue<string>,
1638
+ _swapRouter: PromiseOrValue<string>,
1067
1639
  overrides?: Overrides & { from?: PromiseOrValue<string> }
1068
1640
  ): Promise<DirectPaymentsPool> {
1069
- return super.deploy(overrides || {}) as Promise<DirectPaymentsPool>;
1641
+ return super.deploy(
1642
+ _host,
1643
+ _swapRouter,
1644
+ overrides || {}
1645
+ ) as Promise<DirectPaymentsPool>;
1070
1646
  }
1071
1647
  override getDeployTransaction(
1648
+ _host: PromiseOrValue<string>,
1649
+ _swapRouter: PromiseOrValue<string>,
1072
1650
  overrides?: Overrides & { from?: PromiseOrValue<string> }
1073
1651
  ): TransactionRequest {
1074
- return super.getDeployTransaction(overrides || {});
1652
+ return super.getDeployTransaction(_host, _swapRouter, overrides || {});
1075
1653
  }
1076
1654
  override attach(address: string): DirectPaymentsPool {
1077
1655
  return super.attach(address) as DirectPaymentsPool;