@flarenetwork/flare-periphery-contract-artifacts 0.0.2 → 0.0.4

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 (211) hide show
  1. package/dist/README.md +5 -0
  2. package/dist/coston/abis.coston.d.ts.map +1 -1
  3. package/dist/coston/abis.coston.js +14 -4
  4. package/dist/coston/abis.coston.js.map +1 -1
  5. package/dist/coston/artifacts/contracts/assetRegistry/implementation/FlareAssetRegistry.sol/FlareAssetRegistry.json +525 -0
  6. package/dist/coston/artifacts/contracts/assetRegistry/implementation/WNatRegistryProvider.sol/WNatRegistryProvider.json +113 -0
  7. package/dist/coston/artifacts/contracts/assetRegistry/interface/IIERC20WithMetadata.sol/IIERC20WithMetadata.json +233 -0
  8. package/dist/coston/artifacts/contracts/assetRegistry/interface/IIFlareAssetRegistry.sol/IIFlareAssetRegistry.json +316 -0
  9. package/dist/coston/artifacts/contracts/assetRegistry/interface/IIFlareAssetRegistryProvider.sol/IIFlareAssetRegistryProvider.json +66 -0
  10. package/dist/coston/artifacts/contracts/assetRegistry/lib/StandardAttributes.sol/StandardAttributes.json +10 -0
  11. package/dist/coston/artifacts/contracts/claiming/implementation/ClaimSetupManager.sol/ClaimSetupManager.json +2 -2
  12. package/dist/coston/artifacts/contracts/claiming/implementation/DelegationAccount.sol/DelegationAccount.json +2 -2
  13. package/dist/coston/artifacts/contracts/ftso/implementation/Ftso.sol/Ftso.json +2 -2
  14. package/dist/coston/artifacts/contracts/ftso/implementation/FtsoManager.sol/FtsoManager.json +3 -3
  15. package/dist/coston/artifacts/contracts/ftso/lib/FtsoEpoch.sol/FtsoEpoch.json +2 -2
  16. package/dist/coston/artifacts/contracts/ftso/lib/FtsoManagement.sol/FtsoManagement.json +2 -2
  17. package/dist/coston/artifacts/contracts/ftso/lib/FtsoVote.sol/FtsoVote.json +2 -2
  18. package/dist/coston/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockFtsoRegistry.json +2 -2
  19. package/dist/coston/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockPriceSubmitter.json +2 -2
  20. package/dist/coston/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockVoterWhitelister.json +40 -2
  21. package/dist/coston/artifacts/contracts/genesis/implementation/FlareDaemon.sol/FlareDaemon.json +2 -2
  22. package/dist/coston/artifacts/contracts/governance/implementation/InflationAllocation.sol/InflationAllocation.json +2 -2
  23. package/dist/coston/artifacts/contracts/governance/implementation/PollingFoundation.sol/PollingFoundation.json +2 -2
  24. package/dist/coston/artifacts/contracts/governance/implementation/PollingFtso.sol/PollingFtso.json +1187 -0
  25. package/dist/coston/artifacts/contracts/inflation/implementation/Inflation.sol/Inflation.json +2 -2
  26. package/dist/coston/artifacts/contracts/inflation/lib/InflationAnnum.sol/InflationAnnum.json +2 -2
  27. package/dist/coston/artifacts/contracts/inflation/lib/InflationAnnums.sol/InflationAnnums.json +2 -2
  28. package/dist/coston/artifacts/contracts/inflation/lib/RewardService.sol/RewardService.json +2 -2
  29. package/dist/coston/artifacts/contracts/inflation/lib/RewardServices.sol/RewardServices.json +2 -2
  30. package/dist/coston/artifacts/contracts/token/implementation/CleanupBlockNumberManager.sol/CleanupBlockNumberManager.json +172 -37
  31. package/dist/coston/artifacts/contracts/token/implementation/Delegatable.sol/Delegatable.json +2 -2
  32. package/dist/coston/artifacts/contracts/token/implementation/GovernanceVotePower.sol/GovernanceVotePower.json +2 -2
  33. package/dist/coston/artifacts/contracts/token/implementation/VPContract.sol/VPContract.json +2 -2
  34. package/dist/coston/artifacts/contracts/token/implementation/VPToken.sol/VPToken.json +2 -2
  35. package/dist/coston/artifacts/contracts/token/implementation/WNat.sol/WNat.json +2 -2
  36. package/dist/coston/artifacts/contracts/token/lib/DelegationHistory.sol/DelegationHistory.json +2 -2
  37. package/dist/coston/artifacts/contracts/token/lib/ExplicitDelegation.sol/ExplicitDelegation.json +2 -2
  38. package/dist/coston/artifacts/contracts/token/lib/PercentageDelegation.sol/PercentageDelegation.json +2 -2
  39. package/dist/coston/artifacts/contracts/tokenPools/implementation/FtsoRewardManager.sol/FtsoRewardManager.json +523 -138
  40. package/dist/coston/artifacts/contracts/tokenPools/interface/IIFtsoRewardManager.sol/IIFtsoRewardManager.json +322 -0
  41. package/dist/coston/artifacts/contracts/utils/implementation/FtsoV2Upgrader.sol/FtsoV2Upgrader.json +2 -2
  42. package/dist/coston/artifacts/contracts/utils/implementation/GovernedAndFlareDaemonized.sol/GovernedAndFlareDaemonized.json +2 -2
  43. package/dist/coston/artifacts/contracts/utils/implementation/GovernedAndFlareDaemonizedV2.sol/GovernedAndFlareDaemonizedV2.json +2 -2
  44. package/dist/coston/artifacts/contracts/utils/implementation/SafePct.sol/SafePct.json +2 -2
  45. package/dist/coston/artifacts/contracts/utils/implementation/VoterWhitelister.sol/VoterWhitelister.json +276 -41
  46. package/dist/coston/artifacts/contracts/utils/interface/IIVoterWhitelister.sol/IIVoterWhitelister.json +72 -0
  47. package/dist/coston/deploys/contractAddresses.d.ts +5 -0
  48. package/dist/coston/deploys/contractAddresses.d.ts.map +1 -1
  49. package/dist/coston/deploys/contractAddresses.js +8 -3
  50. package/dist/coston/deploys/contractAddresses.js.map +1 -1
  51. package/dist/coston/deploys/coston.json +172 -0
  52. package/dist/coston2/abis.coston2.d.ts.map +1 -1
  53. package/dist/coston2/abis.coston2.js +2 -0
  54. package/dist/coston2/abis.coston2.js.map +1 -1
  55. package/dist/coston2/artifacts/contracts/claiming/implementation/ClaimSetupManager.sol/ClaimSetupManager.json +2 -2
  56. package/dist/coston2/artifacts/contracts/claiming/implementation/DelegationAccount.sol/DelegationAccount.json +2 -2
  57. package/dist/coston2/artifacts/contracts/ftso/implementation/Ftso.sol/Ftso.json +2 -2
  58. package/dist/coston2/artifacts/contracts/ftso/implementation/FtsoManager.sol/FtsoManager.json +2 -2
  59. package/dist/coston2/artifacts/contracts/ftso/lib/FtsoEpoch.sol/FtsoEpoch.json +2 -2
  60. package/dist/coston2/artifacts/contracts/ftso/lib/FtsoManagement.sol/FtsoManagement.json +2 -2
  61. package/dist/coston2/artifacts/contracts/ftso/lib/FtsoVote.sol/FtsoVote.json +2 -2
  62. package/dist/coston2/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockFtsoRegistry.json +2 -2
  63. package/dist/coston2/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockPriceSubmitter.json +2 -2
  64. package/dist/coston2/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockVoterWhitelister.json +40 -2
  65. package/dist/coston2/artifacts/contracts/genesis/implementation/FlareDaemon.sol/FlareDaemon.json +2 -2
  66. package/dist/coston2/artifacts/contracts/genesis/implementation/InitialAirdrop.sol/InitialAirdrop.json +2 -2
  67. package/dist/coston2/artifacts/contracts/governance/implementation/PollingFoundation.sol/PollingFoundation.json +2 -2
  68. package/dist/coston2/artifacts/contracts/governance/implementation/PollingFtso.sol/PollingFtso.json +1187 -0
  69. package/dist/coston2/artifacts/contracts/inflation/implementation/Inflation.sol/Inflation.json +2 -2
  70. package/dist/coston2/artifacts/contracts/inflation/implementation/InflationAllocation.sol/InflationAllocation.json +2 -2
  71. package/dist/coston2/artifacts/contracts/inflation/lib/InflationAnnum.sol/InflationAnnum.json +2 -2
  72. package/dist/coston2/artifacts/contracts/inflation/lib/InflationAnnums.sol/InflationAnnums.json +2 -2
  73. package/dist/coston2/artifacts/contracts/inflation/lib/RewardService.sol/RewardService.json +2 -2
  74. package/dist/coston2/artifacts/contracts/inflation/lib/RewardServices.sol/RewardServices.json +2 -2
  75. package/dist/coston2/artifacts/contracts/token/implementation/Delegatable.sol/Delegatable.json +2 -2
  76. package/dist/coston2/artifacts/contracts/token/implementation/GovernanceVotePower.sol/GovernanceVotePower.json +2 -2
  77. package/dist/coston2/artifacts/contracts/token/implementation/VPContract.sol/VPContract.json +2 -2
  78. package/dist/coston2/artifacts/contracts/token/implementation/VPToken.sol/VPToken.json +2 -2
  79. package/dist/coston2/artifacts/contracts/token/implementation/WNat.sol/WNat.json +2 -2
  80. package/dist/coston2/artifacts/contracts/token/lib/DelegationHistory.sol/DelegationHistory.json +2 -2
  81. package/dist/coston2/artifacts/contracts/token/lib/ExplicitDelegation.sol/ExplicitDelegation.json +2 -2
  82. package/dist/coston2/artifacts/contracts/token/lib/PercentageDelegation.sol/PercentageDelegation.json +2 -2
  83. package/dist/coston2/artifacts/contracts/tokenPools/implementation/AttestationProviderRewardManager.sol/AttestationProviderRewardManager.json +2 -2
  84. package/dist/coston2/artifacts/contracts/tokenPools/implementation/DistributionToDelegators.sol/DistributionToDelegators.json +2 -2
  85. package/dist/coston2/artifacts/contracts/tokenPools/implementation/Escrow.sol/Escrow.json +2 -2
  86. package/dist/coston2/artifacts/contracts/tokenPools/implementation/FtsoRewardManager.sol/FtsoRewardManager.json +2 -2
  87. package/dist/coston2/artifacts/contracts/tokenPools/implementation/IncentivePool.sol/IncentivePool.json +2 -2
  88. package/dist/coston2/artifacts/contracts/tokenPools/implementation/IncentivePoolAllocation.sol/IncentivePoolAllocation.json +2 -2
  89. package/dist/coston2/artifacts/contracts/tokenPools/implementation/ValidatorRewardManager.sol/ValidatorRewardManager.json +2 -2
  90. package/dist/coston2/artifacts/contracts/tokenPools/lib/IncentivePoolAnnum.sol/IncentivePoolAnnum.json +2 -2
  91. package/dist/coston2/artifacts/contracts/tokenPools/lib/IncentivePoolAnnums.sol/IncentivePoolAnnums.json +2 -2
  92. package/dist/coston2/artifacts/contracts/tokenPools/lib/IncentivePoolRewardService.sol/IncentivePoolRewardService.json +2 -2
  93. package/dist/coston2/artifacts/contracts/tokenPools/lib/IncentivePoolRewardServices.sol/IncentivePoolRewardServices.json +2 -2
  94. package/dist/coston2/artifacts/contracts/utils/implementation/FundDistributor.sol/FundDistributor.json +2 -2
  95. package/dist/coston2/artifacts/contracts/utils/implementation/GovernedAndFlareDaemonized.sol/GovernedAndFlareDaemonized.json +2 -2
  96. package/dist/coston2/artifacts/contracts/utils/implementation/SafePct.sol/SafePct.json +2 -2
  97. package/dist/coston2/artifacts/contracts/utils/implementation/VoterWhitelister.sol/VoterWhitelister.json +126 -3
  98. package/dist/coston2/artifacts/contracts/utils/interface/IIVoterWhitelister.sol/IIVoterWhitelister.json +72 -0
  99. package/dist/coston2/deploys/contractAddresses.d.ts +1 -0
  100. package/dist/coston2/deploys/contractAddresses.d.ts.map +1 -1
  101. package/dist/coston2/deploys/contractAddresses.js +2 -1
  102. package/dist/coston2/deploys/contractAddresses.js.map +1 -1
  103. package/dist/coston2/deploys/coston2.json +222 -0
  104. package/dist/flare/abis.flare.d.ts.map +1 -1
  105. package/dist/flare/abis.flare.js +2 -0
  106. package/dist/flare/abis.flare.js.map +1 -1
  107. package/dist/flare/artifacts/contracts/claiming/implementation/ClaimSetupManager.sol/ClaimSetupManager.json +2 -2
  108. package/dist/flare/artifacts/contracts/claiming/implementation/DelegationAccount.sol/DelegationAccount.json +2 -2
  109. package/dist/flare/artifacts/contracts/ftso/implementation/Ftso.sol/Ftso.json +2 -2
  110. package/dist/flare/artifacts/contracts/ftso/implementation/FtsoManager.sol/FtsoManager.json +2 -2
  111. package/dist/flare/artifacts/contracts/ftso/lib/FtsoEpoch.sol/FtsoEpoch.json +2 -2
  112. package/dist/flare/artifacts/contracts/ftso/lib/FtsoManagement.sol/FtsoManagement.json +2 -2
  113. package/dist/flare/artifacts/contracts/ftso/lib/FtsoVote.sol/FtsoVote.json +2 -2
  114. package/dist/flare/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockFtsoRegistry.json +2 -2
  115. package/dist/flare/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockPriceSubmitter.json +2 -2
  116. package/dist/flare/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockVoterWhitelister.json +40 -2
  117. package/dist/flare/artifacts/contracts/genesis/implementation/FlareDaemon.sol/FlareDaemon.json +2 -2
  118. package/dist/flare/artifacts/contracts/genesis/implementation/InitialAirdrop.sol/InitialAirdrop.json +2 -2
  119. package/dist/flare/artifacts/contracts/governance/implementation/PollingFoundation.sol/PollingFoundation.json +2 -2
  120. package/dist/flare/artifacts/contracts/governance/implementation/PollingFtso.sol/PollingFtso.json +1187 -0
  121. package/dist/flare/artifacts/contracts/inflation/implementation/Inflation.sol/Inflation.json +2 -2
  122. package/dist/flare/artifacts/contracts/inflation/implementation/InflationAllocation.sol/InflationAllocation.json +2 -2
  123. package/dist/flare/artifacts/contracts/inflation/lib/InflationAnnum.sol/InflationAnnum.json +2 -2
  124. package/dist/flare/artifacts/contracts/inflation/lib/InflationAnnums.sol/InflationAnnums.json +2 -2
  125. package/dist/flare/artifacts/contracts/inflation/lib/RewardService.sol/RewardService.json +2 -2
  126. package/dist/flare/artifacts/contracts/inflation/lib/RewardServices.sol/RewardServices.json +2 -2
  127. package/dist/flare/artifacts/contracts/token/implementation/Delegatable.sol/Delegatable.json +2 -2
  128. package/dist/flare/artifacts/contracts/token/implementation/GovernanceVotePower.sol/GovernanceVotePower.json +2 -2
  129. package/dist/flare/artifacts/contracts/token/implementation/VPContract.sol/VPContract.json +2 -2
  130. package/dist/flare/artifacts/contracts/token/implementation/VPToken.sol/VPToken.json +2 -2
  131. package/dist/flare/artifacts/contracts/token/implementation/WNat.sol/WNat.json +2 -2
  132. package/dist/flare/artifacts/contracts/token/lib/DelegationHistory.sol/DelegationHistory.json +2 -2
  133. package/dist/flare/artifacts/contracts/token/lib/ExplicitDelegation.sol/ExplicitDelegation.json +2 -2
  134. package/dist/flare/artifacts/contracts/token/lib/PercentageDelegation.sol/PercentageDelegation.json +2 -2
  135. package/dist/flare/artifacts/contracts/tokenPools/implementation/AttestationProviderRewardManager.sol/AttestationProviderRewardManager.json +2 -2
  136. package/dist/flare/artifacts/contracts/tokenPools/implementation/DistributionToDelegators.sol/DistributionToDelegators.json +2 -2
  137. package/dist/flare/artifacts/contracts/tokenPools/implementation/Escrow.sol/Escrow.json +2 -2
  138. package/dist/flare/artifacts/contracts/tokenPools/implementation/FtsoRewardManager.sol/FtsoRewardManager.json +2 -2
  139. package/dist/flare/artifacts/contracts/tokenPools/implementation/IncentivePool.sol/IncentivePool.json +2 -2
  140. package/dist/flare/artifacts/contracts/tokenPools/implementation/IncentivePoolAllocation.sol/IncentivePoolAllocation.json +2 -2
  141. package/dist/flare/artifacts/contracts/tokenPools/implementation/ValidatorRewardManager.sol/ValidatorRewardManager.json +2 -2
  142. package/dist/flare/artifacts/contracts/tokenPools/lib/IncentivePoolAnnum.sol/IncentivePoolAnnum.json +2 -2
  143. package/dist/flare/artifacts/contracts/tokenPools/lib/IncentivePoolAnnums.sol/IncentivePoolAnnums.json +2 -2
  144. package/dist/flare/artifacts/contracts/tokenPools/lib/IncentivePoolRewardService.sol/IncentivePoolRewardService.json +2 -2
  145. package/dist/flare/artifacts/contracts/tokenPools/lib/IncentivePoolRewardServices.sol/IncentivePoolRewardServices.json +2 -2
  146. package/dist/flare/artifacts/contracts/utils/implementation/FundDistributor.sol/FundDistributor.json +2 -2
  147. package/dist/flare/artifacts/contracts/utils/implementation/GovernedAndFlareDaemonized.sol/GovernedAndFlareDaemonized.json +2 -2
  148. package/dist/flare/artifacts/contracts/utils/implementation/SafePct.sol/SafePct.json +2 -2
  149. package/dist/flare/artifacts/contracts/utils/implementation/VoterWhitelister.sol/VoterWhitelister.json +126 -3
  150. package/dist/flare/artifacts/contracts/utils/interface/IIVoterWhitelister.sol/IIVoterWhitelister.json +72 -0
  151. package/dist/flare/deploys/contractAddresses.d.ts +2 -0
  152. package/dist/flare/deploys/contractAddresses.d.ts.map +1 -1
  153. package/dist/flare/deploys/contractAddresses.js +3 -1
  154. package/dist/flare/deploys/contractAddresses.js.map +1 -1
  155. package/dist/flare/deploys/flare.json +222 -0
  156. package/dist/package.json +28 -0
  157. package/dist/songbird/abis.songbird.d.ts.map +1 -1
  158. package/dist/songbird/abis.songbird.js +14 -4
  159. package/dist/songbird/abis.songbird.js.map +1 -1
  160. package/dist/songbird/artifacts/contracts/assetRegistry/implementation/FlareAssetRegistry.sol/FlareAssetRegistry.json +525 -0
  161. package/dist/songbird/artifacts/contracts/assetRegistry/implementation/WNatRegistryProvider.sol/WNatRegistryProvider.json +113 -0
  162. package/dist/songbird/artifacts/contracts/assetRegistry/interface/IIERC20WithMetadata.sol/IIERC20WithMetadata.json +233 -0
  163. package/dist/songbird/artifacts/contracts/assetRegistry/interface/IIFlareAssetRegistry.sol/IIFlareAssetRegistry.json +316 -0
  164. package/dist/songbird/artifacts/contracts/assetRegistry/interface/IIFlareAssetRegistryProvider.sol/IIFlareAssetRegistryProvider.json +66 -0
  165. package/dist/songbird/artifacts/contracts/assetRegistry/lib/StandardAttributes.sol/StandardAttributes.json +10 -0
  166. package/dist/songbird/artifacts/contracts/claiming/implementation/ClaimSetupManager.sol/ClaimSetupManager.json +2 -2
  167. package/dist/songbird/artifacts/contracts/claiming/implementation/DelegationAccount.sol/DelegationAccount.json +2 -2
  168. package/dist/songbird/artifacts/contracts/ftso/implementation/Ftso.sol/Ftso.json +2 -2
  169. package/dist/songbird/artifacts/contracts/ftso/implementation/FtsoManager.sol/FtsoManager.json +3 -3
  170. package/dist/songbird/artifacts/contracts/ftso/lib/FtsoEpoch.sol/FtsoEpoch.json +2 -2
  171. package/dist/songbird/artifacts/contracts/ftso/lib/FtsoManagement.sol/FtsoManagement.json +2 -2
  172. package/dist/songbird/artifacts/contracts/ftso/lib/FtsoVote.sol/FtsoVote.json +2 -2
  173. package/dist/songbird/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockFtsoRegistry.json +2 -2
  174. package/dist/songbird/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockPriceSubmitter.json +2 -2
  175. package/dist/songbird/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockVoterWhitelister.json +40 -2
  176. package/dist/songbird/artifacts/contracts/genesis/implementation/FlareDaemon.sol/FlareDaemon.json +2 -2
  177. package/dist/songbird/artifacts/contracts/governance/implementation/InflationAllocation.sol/InflationAllocation.json +2 -2
  178. package/dist/songbird/artifacts/contracts/governance/implementation/PollingFoundation.sol/PollingFoundation.json +2 -2
  179. package/dist/songbird/artifacts/contracts/governance/implementation/PollingFtso.sol/PollingFtso.json +1187 -0
  180. package/dist/songbird/artifacts/contracts/inflation/implementation/Inflation.sol/Inflation.json +2 -2
  181. package/dist/songbird/artifacts/contracts/inflation/lib/InflationAnnum.sol/InflationAnnum.json +2 -2
  182. package/dist/songbird/artifacts/contracts/inflation/lib/InflationAnnums.sol/InflationAnnums.json +2 -2
  183. package/dist/songbird/artifacts/contracts/inflation/lib/RewardService.sol/RewardService.json +2 -2
  184. package/dist/songbird/artifacts/contracts/inflation/lib/RewardServices.sol/RewardServices.json +2 -2
  185. package/dist/songbird/artifacts/contracts/token/implementation/CleanupBlockNumberManager.sol/CleanupBlockNumberManager.json +172 -37
  186. package/dist/songbird/artifacts/contracts/token/implementation/Delegatable.sol/Delegatable.json +2 -2
  187. package/dist/songbird/artifacts/contracts/token/implementation/GovernanceVotePower.sol/GovernanceVotePower.json +2 -2
  188. package/dist/songbird/artifacts/contracts/token/implementation/VPContract.sol/VPContract.json +2 -2
  189. package/dist/songbird/artifacts/contracts/token/implementation/VPToken.sol/VPToken.json +2 -2
  190. package/dist/songbird/artifacts/contracts/token/implementation/WNat.sol/WNat.json +2 -2
  191. package/dist/songbird/artifacts/contracts/token/lib/DelegationHistory.sol/DelegationHistory.json +2 -2
  192. package/dist/songbird/artifacts/contracts/token/lib/ExplicitDelegation.sol/ExplicitDelegation.json +2 -2
  193. package/dist/songbird/artifacts/contracts/token/lib/PercentageDelegation.sol/PercentageDelegation.json +2 -2
  194. package/dist/songbird/artifacts/contracts/tokenPools/implementation/FtsoRewardManager.sol/FtsoRewardManager.json +523 -138
  195. package/dist/songbird/artifacts/contracts/tokenPools/interface/IIFtsoRewardManager.sol/IIFtsoRewardManager.json +322 -0
  196. package/dist/songbird/artifacts/contracts/utils/implementation/FtsoV2Upgrader.sol/FtsoV2Upgrader.json +2 -2
  197. package/dist/songbird/artifacts/contracts/utils/implementation/GovernedAndFlareDaemonized.sol/GovernedAndFlareDaemonized.json +2 -2
  198. package/dist/songbird/artifacts/contracts/utils/implementation/GovernedAndFlareDaemonizedV2.sol/GovernedAndFlareDaemonizedV2.json +2 -2
  199. package/dist/songbird/artifacts/contracts/utils/implementation/SafePct.sol/SafePct.json +2 -2
  200. package/dist/songbird/artifacts/contracts/utils/implementation/VoterWhitelister.sol/VoterWhitelister.json +276 -41
  201. package/dist/songbird/artifacts/contracts/utils/interface/IIVoterWhitelister.sol/IIVoterWhitelister.json +72 -0
  202. package/dist/songbird/deploys/contractAddresses.d.ts +5 -0
  203. package/dist/songbird/deploys/contractAddresses.d.ts.map +1 -1
  204. package/dist/songbird/deploys/contractAddresses.js +8 -3
  205. package/dist/songbird/deploys/contractAddresses.js.map +1 -1
  206. package/dist/songbird/deploys/songbird.json +172 -0
  207. package/package.json +1 -1
  208. package/dist/coston/artifacts/contracts/tokenPools/implementation/Distribution.sol/Distribution.json +0 -414
  209. package/dist/coston/artifacts/contracts/tokenPools/interface/IIFtsoRewardManagerV2.sol/IIFtsoRewardManagerV2.json +0 -949
  210. package/dist/songbird/artifacts/contracts/tokenPools/implementation/Distribution.sol/Distribution.json +0 -414
  211. package/dist/songbird/artifacts/contracts/tokenPools/interface/IIFtsoRewardManagerV2.sol/IIFtsoRewardManagerV2.json +0 -949
@@ -11,7 +11,12 @@
11
11
  "type": "address"
12
12
  },
13
13
  {
14
- "internalType": "contract IIFtsoRewardManager",
14
+ "internalType": "address",
15
+ "name": "_addressUpdater",
16
+ "type": "address"
17
+ },
18
+ {
19
+ "internalType": "address",
15
20
  "name": "_oldFtsoRewardManager",
16
21
  "type": "address"
17
22
  },
@@ -73,11 +78,11 @@
73
78
  {
74
79
  "indexed": false,
75
80
  "internalType": "address",
76
- "name": "proposedGovernance",
81
+ "name": "ftsoRewardManager",
77
82
  "type": "address"
78
83
  }
79
84
  ],
80
- "name": "GovernanceProposed",
85
+ "name": "FtsoRewardManagerActivated",
81
86
  "type": "event"
82
87
  },
83
88
  {
@@ -86,17 +91,62 @@
86
91
  {
87
92
  "indexed": false,
88
93
  "internalType": "address",
89
- "name": "oldGovernance",
94
+ "name": "ftsoRewardManager",
90
95
  "type": "address"
96
+ }
97
+ ],
98
+ "name": "FtsoRewardManagerDeactivated",
99
+ "type": "event"
100
+ },
101
+ {
102
+ "anonymous": false,
103
+ "inputs": [
104
+ {
105
+ "indexed": false,
106
+ "internalType": "bytes4",
107
+ "name": "selector",
108
+ "type": "bytes4"
109
+ },
110
+ {
111
+ "indexed": false,
112
+ "internalType": "uint256",
113
+ "name": "allowedAfterTimestamp",
114
+ "type": "uint256"
91
115
  },
116
+ {
117
+ "indexed": false,
118
+ "internalType": "bytes",
119
+ "name": "encodedCall",
120
+ "type": "bytes"
121
+ }
122
+ ],
123
+ "name": "GovernanceCallTimelocked",
124
+ "type": "event"
125
+ },
126
+ {
127
+ "anonymous": false,
128
+ "inputs": [
92
129
  {
93
130
  "indexed": false,
94
131
  "internalType": "address",
95
- "name": "newGoveranance",
132
+ "name": "initialGovernance",
96
133
  "type": "address"
97
134
  }
98
135
  ],
99
- "name": "GovernanceUpdated",
136
+ "name": "GovernanceInitialised",
137
+ "type": "event"
138
+ },
139
+ {
140
+ "anonymous": false,
141
+ "inputs": [
142
+ {
143
+ "indexed": false,
144
+ "internalType": "address",
145
+ "name": "governanceSettings",
146
+ "type": "address"
147
+ }
148
+ ],
149
+ "name": "GovernedProductionModeEntered",
100
150
  "type": "event"
101
151
  },
102
152
  {
@@ -149,6 +199,19 @@
149
199
  "name": "RewardClaimed",
150
200
  "type": "event"
151
201
  },
202
+ {
203
+ "anonymous": false,
204
+ "inputs": [
205
+ {
206
+ "indexed": false,
207
+ "internalType": "uint256",
208
+ "name": "rewardEpochId",
209
+ "type": "uint256"
210
+ }
211
+ ],
212
+ "name": "RewardClaimsEnabled",
213
+ "type": "event"
214
+ },
152
215
  {
153
216
  "anonymous": false,
154
217
  "inputs": [
@@ -162,6 +225,19 @@
162
225
  "name": "RewardClaimsExpired",
163
226
  "type": "event"
164
227
  },
228
+ {
229
+ "anonymous": false,
230
+ "inputs": [
231
+ {
232
+ "indexed": false,
233
+ "internalType": "uint256",
234
+ "name": "amountBurnedWei",
235
+ "type": "uint256"
236
+ }
237
+ ],
238
+ "name": "RewardsBurned",
239
+ "type": "event"
240
+ },
165
241
  {
166
242
  "anonymous": false,
167
243
  "inputs": [
@@ -193,6 +269,86 @@
193
269
  "name": "RewardsDistributed",
194
270
  "type": "event"
195
271
  },
272
+ {
273
+ "anonymous": false,
274
+ "inputs": [
275
+ {
276
+ "indexed": false,
277
+ "internalType": "bytes4",
278
+ "name": "selector",
279
+ "type": "bytes4"
280
+ },
281
+ {
282
+ "indexed": false,
283
+ "internalType": "uint256",
284
+ "name": "timestamp",
285
+ "type": "uint256"
286
+ }
287
+ ],
288
+ "name": "TimelockedGovernanceCallCanceled",
289
+ "type": "event"
290
+ },
291
+ {
292
+ "anonymous": false,
293
+ "inputs": [
294
+ {
295
+ "indexed": false,
296
+ "internalType": "bytes4",
297
+ "name": "selector",
298
+ "type": "bytes4"
299
+ },
300
+ {
301
+ "indexed": false,
302
+ "internalType": "uint256",
303
+ "name": "timestamp",
304
+ "type": "uint256"
305
+ }
306
+ ],
307
+ "name": "TimelockedGovernanceCallExecuted",
308
+ "type": "event"
309
+ },
310
+ {
311
+ "anonymous": false,
312
+ "inputs": [
313
+ {
314
+ "indexed": false,
315
+ "internalType": "uint256",
316
+ "name": "epochId",
317
+ "type": "uint256"
318
+ },
319
+ {
320
+ "indexed": false,
321
+ "internalType": "uint256",
322
+ "name": "reward",
323
+ "type": "uint256"
324
+ }
325
+ ],
326
+ "name": "UnearnedRewardsAccrued",
327
+ "type": "event"
328
+ },
329
+ {
330
+ "inputs": [
331
+ {
332
+ "internalType": "uint256",
333
+ "name": "_epochId",
334
+ "type": "uint256"
335
+ },
336
+ {
337
+ "internalType": "uint256",
338
+ "name": "_priceEpochDurationSeconds",
339
+ "type": "uint256"
340
+ },
341
+ {
342
+ "internalType": "uint256",
343
+ "name": "_priceEpochEndTime",
344
+ "type": "uint256"
345
+ }
346
+ ],
347
+ "name": "accrueUnearnedRewards",
348
+ "outputs": [],
349
+ "stateMutability": "nonpayable",
350
+ "type": "function"
351
+ },
196
352
  {
197
353
  "inputs": [],
198
354
  "name": "activate",
@@ -214,26 +370,60 @@
214
370
  "type": "function"
215
371
  },
216
372
  {
217
- "inputs": [],
218
- "name": "claimGovernance",
373
+ "inputs": [
374
+ {
375
+ "internalType": "address[]",
376
+ "name": "_rewardOwners",
377
+ "type": "address[]"
378
+ },
379
+ {
380
+ "internalType": "uint256",
381
+ "name": "_rewardEpoch",
382
+ "type": "uint256"
383
+ }
384
+ ],
385
+ "name": "autoClaim",
386
+ "outputs": [],
387
+ "stateMutability": "nonpayable",
388
+ "type": "function"
389
+ },
390
+ {
391
+ "inputs": [
392
+ {
393
+ "internalType": "bytes4",
394
+ "name": "_selector",
395
+ "type": "bytes4"
396
+ }
397
+ ],
398
+ "name": "cancelGovernanceCall",
219
399
  "outputs": [],
220
400
  "stateMutability": "nonpayable",
221
401
  "type": "function"
222
402
  },
223
403
  {
224
404
  "inputs": [
405
+ {
406
+ "internalType": "address",
407
+ "name": "_rewardOwner",
408
+ "type": "address"
409
+ },
225
410
  {
226
411
  "internalType": "address payable",
227
412
  "name": "_recipient",
228
413
  "type": "address"
229
414
  },
230
415
  {
231
- "internalType": "uint256[]",
232
- "name": "_rewardEpochs",
233
- "type": "uint256[]"
416
+ "internalType": "uint256",
417
+ "name": "_rewardEpoch",
418
+ "type": "uint256"
419
+ },
420
+ {
421
+ "internalType": "bool",
422
+ "name": "_wrap",
423
+ "type": "bool"
234
424
  }
235
425
  ],
236
- "name": "claimReward",
426
+ "name": "claim",
237
427
  "outputs": [
238
428
  {
239
429
  "internalType": "uint256",
@@ -246,6 +436,11 @@
246
436
  },
247
437
  {
248
438
  "inputs": [
439
+ {
440
+ "internalType": "address",
441
+ "name": "_rewardOwner",
442
+ "type": "address"
443
+ },
249
444
  {
250
445
  "internalType": "address payable",
251
446
  "name": "_recipient",
@@ -260,9 +455,14 @@
260
455
  "internalType": "address[]",
261
456
  "name": "_dataProviders",
262
457
  "type": "address[]"
458
+ },
459
+ {
460
+ "internalType": "bool",
461
+ "name": "_wrap",
462
+ "type": "bool"
263
463
  }
264
464
  ],
265
- "name": "claimRewardFromDataProviders",
465
+ "name": "claimFromDataProviders",
266
466
  "outputs": [
267
467
  {
268
468
  "internalType": "uint256",
@@ -275,30 +475,83 @@
275
475
  },
276
476
  {
277
477
  "inputs": [
478
+ {
479
+ "internalType": "address payable",
480
+ "name": "_recipient",
481
+ "type": "address"
482
+ },
483
+ {
484
+ "internalType": "uint256[]",
485
+ "name": "_rewardEpochs",
486
+ "type": "uint256[]"
487
+ }
488
+ ],
489
+ "name": "claimReward",
490
+ "outputs": [
278
491
  {
279
492
  "internalType": "uint256",
280
- "name": "_rewardEpoch",
493
+ "name": "_rewardAmount",
281
494
  "type": "uint256"
282
495
  }
283
496
  ],
284
- "name": "closeExpiredRewardEpoch",
285
- "outputs": [],
286
497
  "stateMutability": "nonpayable",
287
498
  "type": "function"
288
499
  },
289
500
  {
290
- "inputs": [],
291
- "name": "dailyAuthorizedInflation",
501
+ "inputs": [
502
+ {
503
+ "internalType": "address payable",
504
+ "name": "_recipient",
505
+ "type": "address"
506
+ },
507
+ {
508
+ "internalType": "uint256[]",
509
+ "name": "_rewardEpochs",
510
+ "type": "uint256[]"
511
+ },
512
+ {
513
+ "internalType": "address[]",
514
+ "name": "_dataProviders",
515
+ "type": "address[]"
516
+ }
517
+ ],
518
+ "name": "claimRewardFromDataProviders",
292
519
  "outputs": [
293
520
  {
294
521
  "internalType": "uint256",
295
- "name": "",
522
+ "name": "_rewardAmount",
296
523
  "type": "uint256"
297
524
  }
298
525
  ],
526
+ "stateMutability": "nonpayable",
527
+ "type": "function"
528
+ },
529
+ {
530
+ "inputs": [],
531
+ "name": "claimSetupManager",
532
+ "outputs": [
533
+ {
534
+ "internalType": "contract IIClaimSetupManager",
535
+ "name": "",
536
+ "type": "address"
537
+ }
538
+ ],
299
539
  "stateMutability": "view",
300
540
  "type": "function"
301
541
  },
542
+ {
543
+ "inputs": [
544
+ {
545
+ "internalType": "uint256",
546
+ "name": "_rewardEpoch",
547
+ "type": "uint256"
548
+ }
549
+ ],
550
+ "name": "closeExpiredRewardEpoch",
551
+ "outputs": [],
552
+ "stateMutability": "nonpayable",
553
+ "type": "function"
554
+ },
302
555
  {
303
556
  "inputs": [],
304
557
  "name": "deactivate",
@@ -367,14 +620,47 @@
367
620
  "type": "uint256"
368
621
  }
369
622
  ],
370
- "name": "distributeRewards",
371
- "outputs": [],
372
- "stateMutability": "nonpayable",
623
+ "name": "distributeRewards",
624
+ "outputs": [],
625
+ "stateMutability": "nonpayable",
626
+ "type": "function"
627
+ },
628
+ {
629
+ "inputs": [],
630
+ "name": "enableClaims",
631
+ "outputs": [],
632
+ "stateMutability": "nonpayable",
633
+ "type": "function"
634
+ },
635
+ {
636
+ "inputs": [
637
+ {
638
+ "internalType": "bytes4",
639
+ "name": "_selector",
640
+ "type": "bytes4"
641
+ }
642
+ ],
643
+ "name": "executeGovernanceCall",
644
+ "outputs": [],
645
+ "stateMutability": "nonpayable",
646
+ "type": "function"
647
+ },
648
+ {
649
+ "inputs": [],
650
+ "name": "feePercentageUpdateOffset",
651
+ "outputs": [
652
+ {
653
+ "internalType": "uint256",
654
+ "name": "",
655
+ "type": "uint256"
656
+ }
657
+ ],
658
+ "stateMutability": "view",
373
659
  "type": "function"
374
660
  },
375
661
  {
376
662
  "inputs": [],
377
- "name": "feePercentageUpdateOffset",
663
+ "name": "firstClaimableRewardEpoch",
378
664
  "outputs": [
379
665
  {
380
666
  "internalType": "uint256",
@@ -398,6 +684,19 @@
398
684
  "stateMutability": "view",
399
685
  "type": "function"
400
686
  },
687
+ {
688
+ "inputs": [],
689
+ "name": "getAddressUpdater",
690
+ "outputs": [
691
+ {
692
+ "internalType": "address",
693
+ "name": "_addressUpdater",
694
+ "type": "address"
695
+ }
696
+ ],
697
+ "stateMutability": "view",
698
+ "type": "function"
699
+ },
401
700
  {
402
701
  "inputs": [
403
702
  {
@@ -432,6 +731,19 @@
432
731
  "stateMutability": "view",
433
732
  "type": "function"
434
733
  },
734
+ {
735
+ "inputs": [],
736
+ "name": "getContractName",
737
+ "outputs": [
738
+ {
739
+ "internalType": "string",
740
+ "name": "",
741
+ "type": "string"
742
+ }
743
+ ],
744
+ "stateMutability": "pure",
745
+ "type": "function"
746
+ },
435
747
  {
436
748
  "inputs": [],
437
749
  "name": "getCurrentRewardEpoch",
@@ -464,6 +776,59 @@
464
776
  "stateMutability": "view",
465
777
  "type": "function"
466
778
  },
779
+ {
780
+ "inputs": [
781
+ {
782
+ "internalType": "address",
783
+ "name": "_dataProvider",
784
+ "type": "address"
785
+ },
786
+ {
787
+ "internalType": "uint256",
788
+ "name": "_rewardEpoch",
789
+ "type": "uint256"
790
+ }
791
+ ],
792
+ "name": "getDataProviderFeePercentage",
793
+ "outputs": [
794
+ {
795
+ "internalType": "uint256",
796
+ "name": "_feePercentageBIPS",
797
+ "type": "uint256"
798
+ }
799
+ ],
800
+ "stateMutability": "view",
801
+ "type": "function"
802
+ },
803
+ {
804
+ "inputs": [
805
+ {
806
+ "internalType": "uint256",
807
+ "name": "_rewardEpoch",
808
+ "type": "uint256"
809
+ },
810
+ {
811
+ "internalType": "address",
812
+ "name": "_dataProvider",
813
+ "type": "address"
814
+ }
815
+ ],
816
+ "name": "getDataProviderPerformanceInfo",
817
+ "outputs": [
818
+ {
819
+ "internalType": "uint256",
820
+ "name": "_rewardAmount",
821
+ "type": "uint256"
822
+ },
823
+ {
824
+ "internalType": "uint256",
825
+ "name": "_votePowerIgnoringRevocation",
826
+ "type": "uint256"
827
+ }
828
+ ],
829
+ "stateMutability": "view",
830
+ "type": "function"
831
+ },
467
832
  {
468
833
  "inputs": [
469
834
  {
@@ -696,7 +1061,7 @@
696
1061
  "outputs": [
697
1062
  {
698
1063
  "internalType": "uint256",
699
- "name": "_foundationAllocatedFundsWei",
1064
+ "name": "_lockedFundsWei",
700
1065
  "type": "uint256"
701
1066
  },
702
1067
  {
@@ -713,6 +1078,59 @@
713
1078
  "stateMutability": "view",
714
1079
  "type": "function"
715
1080
  },
1081
+ {
1082
+ "inputs": [],
1083
+ "name": "getTotals",
1084
+ "outputs": [
1085
+ {
1086
+ "internalType": "uint256",
1087
+ "name": "_totalAwardedWei",
1088
+ "type": "uint256"
1089
+ },
1090
+ {
1091
+ "internalType": "uint256",
1092
+ "name": "_totalClaimedWei",
1093
+ "type": "uint256"
1094
+ },
1095
+ {
1096
+ "internalType": "uint256",
1097
+ "name": "_totalExpiredWei",
1098
+ "type": "uint256"
1099
+ },
1100
+ {
1101
+ "internalType": "uint256",
1102
+ "name": "_totalUnearnedWei",
1103
+ "type": "uint256"
1104
+ },
1105
+ {
1106
+ "internalType": "uint256",
1107
+ "name": "_totalBurnedWei",
1108
+ "type": "uint256"
1109
+ },
1110
+ {
1111
+ "internalType": "uint256",
1112
+ "name": "_totalInflationAuthorizedWei",
1113
+ "type": "uint256"
1114
+ },
1115
+ {
1116
+ "internalType": "uint256",
1117
+ "name": "_totalInflationReceivedWei",
1118
+ "type": "uint256"
1119
+ },
1120
+ {
1121
+ "internalType": "uint256",
1122
+ "name": "_lastInflationAuthorizationReceivedTs",
1123
+ "type": "uint256"
1124
+ },
1125
+ {
1126
+ "internalType": "uint256",
1127
+ "name": "_dailyAuthorizedInflation",
1128
+ "type": "uint256"
1129
+ }
1130
+ ],
1131
+ "stateMutability": "view",
1132
+ "type": "function"
1133
+ },
716
1134
  {
717
1135
  "inputs": [
718
1136
  {
@@ -755,11 +1173,24 @@
755
1173
  "stateMutability": "view",
756
1174
  "type": "function"
757
1175
  },
1176
+ {
1177
+ "inputs": [],
1178
+ "name": "governanceSettings",
1179
+ "outputs": [
1180
+ {
1181
+ "internalType": "contract IGovernanceSettings",
1182
+ "name": "",
1183
+ "type": "address"
1184
+ }
1185
+ ],
1186
+ "stateMutability": "view",
1187
+ "type": "function"
1188
+ },
758
1189
  {
759
1190
  "inputs": [
760
1191
  {
761
1192
  "internalType": "address",
762
- "name": "_governance",
1193
+ "name": "_initialGovernance",
763
1194
  "type": "address"
764
1195
  }
765
1196
  ],
@@ -770,64 +1201,57 @@
770
1201
  },
771
1202
  {
772
1203
  "inputs": [],
773
- "name": "lastInflationAuthorizationReceivedTs",
1204
+ "name": "newFtsoRewardManager",
774
1205
  "outputs": [
775
1206
  {
776
- "internalType": "uint256",
1207
+ "internalType": "address",
777
1208
  "name": "",
778
- "type": "uint256"
1209
+ "type": "address"
779
1210
  }
780
1211
  ],
781
1212
  "stateMutability": "view",
782
1213
  "type": "function"
783
1214
  },
784
1215
  {
785
- "inputs": [],
786
- "name": "newFtsoRewardManager",
787
- "outputs": [
1216
+ "inputs": [
788
1217
  {
789
1218
  "internalType": "address",
790
- "name": "",
1219
+ "name": "_rewardOwner",
791
1220
  "type": "address"
792
1221
  }
793
1222
  ],
794
- "stateMutability": "view",
795
- "type": "function"
796
- },
797
- {
798
- "inputs": [],
799
- "name": "oldFtsoRewardManager",
1223
+ "name": "nextClaimableRewardEpoch",
800
1224
  "outputs": [
801
1225
  {
802
- "internalType": "contract IIFtsoRewardManager",
1226
+ "internalType": "uint256",
803
1227
  "name": "",
804
- "type": "address"
1228
+ "type": "uint256"
805
1229
  }
806
1230
  ],
807
1231
  "stateMutability": "view",
808
1232
  "type": "function"
809
1233
  },
810
1234
  {
811
- "inputs": [
1235
+ "inputs": [],
1236
+ "name": "oldFtsoRewardManager",
1237
+ "outputs": [
812
1238
  {
813
1239
  "internalType": "address",
814
- "name": "_governance",
1240
+ "name": "",
815
1241
  "type": "address"
816
1242
  }
817
1243
  ],
818
- "name": "proposeGovernance",
819
- "outputs": [],
820
- "stateMutability": "nonpayable",
1244
+ "stateMutability": "view",
821
1245
  "type": "function"
822
1246
  },
823
1247
  {
824
1248
  "inputs": [],
825
- "name": "proposedGovernance",
1249
+ "name": "productionMode",
826
1250
  "outputs": [
827
1251
  {
828
- "internalType": "address",
1252
+ "internalType": "bool",
829
1253
  "name": "",
830
- "type": "address"
1254
+ "type": "bool"
831
1255
  }
832
1256
  ],
833
1257
  "stateMutability": "view",
@@ -840,29 +1264,6 @@
840
1264
  "stateMutability": "payable",
841
1265
  "type": "function"
842
1266
  },
843
- {
844
- "inputs": [
845
- {
846
- "internalType": "address",
847
- "name": "_inflation",
848
- "type": "address"
849
- },
850
- {
851
- "internalType": "contract IIFtsoManager",
852
- "name": "_ftsoManager",
853
- "type": "address"
854
- },
855
- {
856
- "internalType": "contract WNat",
857
- "name": "_wNat",
858
- "type": "address"
859
- }
860
- ],
861
- "name": "setContractAddresses",
862
- "outputs": [],
863
- "stateMutability": "nonpayable",
864
- "type": "function"
865
- },
866
1267
  {
867
1268
  "inputs": [
868
1269
  {
@@ -917,77 +1318,30 @@
917
1318
  },
918
1319
  {
919
1320
  "inputs": [],
920
- "name": "totalAwardedWei",
921
- "outputs": [
922
- {
923
- "internalType": "uint256",
924
- "name": "",
925
- "type": "uint256"
926
- }
927
- ],
928
- "stateMutability": "view",
929
- "type": "function"
930
- },
931
- {
932
- "inputs": [],
933
- "name": "totalClaimedWei",
934
- "outputs": [
935
- {
936
- "internalType": "uint256",
937
- "name": "",
938
- "type": "uint256"
939
- }
940
- ],
941
- "stateMutability": "view",
942
- "type": "function"
943
- },
944
- {
945
- "inputs": [],
946
- "name": "totalExpiredWei",
947
- "outputs": [
948
- {
949
- "internalType": "uint256",
950
- "name": "",
951
- "type": "uint256"
952
- }
953
- ],
954
- "stateMutability": "view",
1321
+ "name": "switchToProductionMode",
1322
+ "outputs": [],
1323
+ "stateMutability": "nonpayable",
955
1324
  "type": "function"
956
1325
  },
957
1326
  {
958
- "inputs": [],
959
- "name": "totalInflationAuthorizedWei",
960
- "outputs": [
1327
+ "inputs": [
961
1328
  {
962
- "internalType": "uint256",
1329
+ "internalType": "bytes4",
963
1330
  "name": "",
964
- "type": "uint256"
1331
+ "type": "bytes4"
965
1332
  }
966
1333
  ],
967
- "stateMutability": "view",
968
- "type": "function"
969
- },
970
- {
971
- "inputs": [],
972
- "name": "totalInflationReceivedWei",
1334
+ "name": "timelockedCalls",
973
1335
  "outputs": [
974
1336
  {
975
1337
  "internalType": "uint256",
976
- "name": "",
1338
+ "name": "allowedAfterTimestamp",
977
1339
  "type": "uint256"
978
- }
979
- ],
980
- "stateMutability": "view",
981
- "type": "function"
982
- },
983
- {
984
- "inputs": [],
985
- "name": "totalSelfDestructReceivedWei",
986
- "outputs": [
1340
+ },
987
1341
  {
988
- "internalType": "uint256",
989
- "name": "",
990
- "type": "uint256"
1342
+ "internalType": "bytes",
1343
+ "name": "encodedCall",
1344
+ "type": "bytes"
991
1345
  }
992
1346
  ],
993
1347
  "stateMutability": "view",
@@ -996,12 +1350,17 @@
996
1350
  {
997
1351
  "inputs": [
998
1352
  {
999
- "internalType": "address",
1000
- "name": "_governance",
1001
- "type": "address"
1353
+ "internalType": "bytes32[]",
1354
+ "name": "_contractNameHashes",
1355
+ "type": "bytes32[]"
1356
+ },
1357
+ {
1358
+ "internalType": "address[]",
1359
+ "name": "_contractAddresses",
1360
+ "type": "address[]"
1002
1361
  }
1003
1362
  ],
1004
- "name": "transferGovernance",
1363
+ "name": "updateContractAddresses",
1005
1364
  "outputs": [],
1006
1365
  "stateMutability": "nonpayable",
1007
1366
  "type": "function"
@@ -1020,8 +1379,34 @@
1020
1379
  "type": "function"
1021
1380
  }
1022
1381
  ],
1023
- "bytecode": "0x60e06040523480156200001157600080fd5b5060405162004b5638038062004b56833981810160405260808110156200003757600080fd5b508051602082015160408301516060909301519192909183806001600160a01b038116156200006b576200006b81620000e1565b506001600160a01b038116620000bb576040805162461bcd60e51b815260206004820152601060248201526f5f676f7665726e616e6365207a65726f60801b604482015290519081900360640190fd5b50600160025560609290921b6001600160601b03191660c05260805260a05250620001c5565b600154600160a01b900460ff161562000141576040805162461bcd60e51b815260206004820152601460248201527f696e697469616c6973656420213d2066616c7365000000000000000000000000604482015290519081900360640190fd5b6001805460ff60a01b1916600160a01b179055600054604080516001600160a01b039283168152918316602083015280517f434a2db650703b36c824e745330d6397cdaa9ee2cc891a4938ae853e1c50b68d9281900390910190a1600080546001600160a01b039092166001600160a01b0319928316179055600180549091169055565b60805160a05160c05160601c61493e620002186000398061112452806115c352806116e25280612f325280612f735250806127ff52806141a95250806112e4528061154052806119ba525061493e6000f3fe6080604052600436106102935760003560e01c806382a2b9051161015a578063c373a08e116100c1578063d6c1dbee1161007a578063d6c1dbee14610d64578063e273956314610d8e578063e416b7e114610db8578063e7c830d414610f1d578063ed39d3f814610f32578063f2edab5a14610f4757610293565b8063c373a08e14610b4c578063cfbcd25f14610b7f578063d0c1c39314610bb2578063d20bb54214610bc7578063d38bfff414610d07578063d418634a14610d3a57610293565b8063a4472c1011610113578063a4472c1014610764578063a5555aea14610884578063a9b79e1714610899578063b2af870a146109f6578063b482403414610ab4578063b4a2043d14610ac957610293565b806382a2b9051461063357806385b4c538146106665780638ab63380146106c25780639d6a890f146107075780639edbf0071461073a5780639f71043e1461074f57610293565b80633123b7d8116101fe5780635d36b190116101b75780635d36b190146105915780635de8b2f3146105a657806360f7ac97146105bb578063657d9695146105d0578063708e34ce14610609578063729936151461061e57610293565b80633123b7d81461041757806333b7971e1461042c5780633e7ff8571461053d578063473252c41461055257806351b42b00146105675780635aa6e6751461057c57610293565b806311a7aaaa1161025057806311a7aaaa1461036657806312f97ac01461037b57806316e693281461039057806316fe49c7146103ba5780631de56098146103cf5780632dafdbbf146103e457610293565b806302fb0c5e146102985780630441218e146102c157806306201f1d146102ef5780630cb72344146102f95780630cc2a8fe1461032a5780630f15f4c014610351575b600080fd5b3480156102a457600080fd5b506102ad610f71565b604080519115158252519081900360200190f35b3480156102cd57600080fd5b506102d6610f7a565b6040805192835260208301919091528051918290030190f35b6102f7610f8e565b005b34801561030557600080fd5b5061030e611122565b604080516001600160a01b039092168252519081900360200190f35b34801561033657600080fd5b5061033f611146565b60408051918252519081900360200190f35b34801561035d57600080fd5b506102f761114c565b34801561037257600080fd5b5061030e611237565b34801561038757600080fd5b5061030e611246565b34801561039c57600080fd5b5061033f600480360360208110156103b357600080fd5b5035611255565b3480156103c657600080fd5b5061033f61153e565b3480156103db57600080fd5b506102f7611562565b3480156103f057600080fd5b506103f9611759565b60408051938452602084019290925282820152519081900360600190f35b34801561042357600080fd5b5061033f611764565b34801561043857600080fd5b5061045f6004803603602081101561044f57600080fd5b50356001600160a01b031661176a565b60405180806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b838110156104a757818101518382015260200161048f565b50505050905001848103835286818151815260200191508051906020019060200280838360005b838110156104e65781810151838201526020016104ce565b50505050905001848103825285818151815260200191508051906020019060200280838360005b8381101561052557818101518382015260200161050d565b50505050905001965050505050505060405180910390f35b34801561054957600080fd5b5061033f611a23565b34801561055e57600080fd5b5061033f611a29565b34801561057357600080fd5b506102f7611a2f565b34801561058857600080fd5b5061030e611a8c565b34801561059d57600080fd5b506102f7611a9b565b3480156105b257600080fd5b5061033f611b5d565b3480156105c757600080fd5b5061030e611b63565b3480156105dc57600080fd5b506102d6600480360360408110156105f357600080fd5b50803590602001356001600160a01b0316611b72565b34801561061557600080fd5b5061033f611bae565b34801561062a57600080fd5b5061033f611bb4565b34801561063f57600080fd5b506102f76004803603602081101561065657600080fd5b50356001600160a01b0316611bba565b34801561067257600080fd5b506106a76004803603606081101561068957600080fd5b508035906001600160a01b0360208201358116916040013516611cc3565b60408051921515835260208301919091528051918290030190f35b3480156106ce57600080fd5b506102f7600480360360608110156106e557600080fd5b506001600160a01b038135811691602081013582169160409091013516611cff565b34801561071357600080fd5b506102f76004803603602081101561072a57600080fd5b50356001600160a01b0316611efa565b34801561074657600080fd5b5061030e611fd4565b34801561075b57600080fd5b5061033f611fe3565b34801561077057600080fd5b5061079d6004803603604081101561078757600080fd5b506001600160a01b038135169060200135611fe9565b604051808060200180602001806020018515158152602001848103845288818151815260200191508051906020019060200280838360005b838110156107ed5781810151838201526020016107d5565b50505050905001848103835287818151815260200191508051906020019060200280838360005b8381101561082c578181015183820152602001610814565b50505050905001848103825286818151815260200191508051906020019060200280838360005b8381101561086b578181015183820152602001610853565b5050505090500197505050505050505060405180910390f35b34801561089057600080fd5b5061033f6120b8565b3480156108a557600080fd5b506102f760048036036101208110156108bd57600080fd5b810190602081018135600160201b8111156108d757600080fd5b8201836020820111156108e957600080fd5b803590602001918460208302840111600160201b8311171561090a57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561095957600080fd5b82018360208201111561096b57600080fd5b803590602001918460208302840111600160201b8311171561098c57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550508235935050506020810135906001600160a01b036040820135169060608101359060808101359060a08101359060c001356120be565b348015610a0257600080fd5b5061033f60048036036040811015610a1957600080fd5b6001600160a01b038235169190810190604081016020820135600160201b811115610a4357600080fd5b820183602082011115610a5557600080fd5b803590602001918460208302840111600160201b83111715610a7657600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550612548945050505050565b348015610ac057600080fd5b5061033f6127fd565b348015610ad557600080fd5b50610afc60048036036020811015610aec57600080fd5b50356001600160a01b0316612821565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610b38578181015183820152602001610b20565b505050509050019250505060405180910390f35b348015610b5857600080fd5b506102f760048036036020811015610b6f57600080fd5b50356001600160a01b03166129c6565b348015610b8b57600080fd5b5061033f60048036036020811015610ba257600080fd5b50356001600160a01b0316612a6b565b348015610bbe57600080fd5b5061033f612af6565b348015610bd357600080fd5b5061033f60048036036060811015610bea57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b811115610c1457600080fd5b820183602082011115610c2657600080fd5b803590602001918460208302840111600160201b83111715610c4757600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b811115610c9657600080fd5b820183602082011115610ca857600080fd5b803590602001918460208302840111600160201b83111715610cc957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550612afc945050505050565b348015610d1357600080fd5b506102f760048036036020811015610d2a57600080fd5b50356001600160a01b0316612d9d565b348015610d4657600080fd5b506102d660048036036020811015610d5d57600080fd5b5035612e5f565b348015610d7057600080fd5b506102f760048036036020811015610d8757600080fd5b5035612e7e565b348015610d9a57600080fd5b506102f760048036036020811015610db157600080fd5b503561305b565b348015610dc457600080fd5b50610e7b60048036036060811015610ddb57600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b811115610e0a57600080fd5b820183602082011115610e1c57600080fd5b803590602001918460208302840111600160201b83111715610e3d57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061312a945050505050565b6040518080602001806020018415158152602001838103835286818151815260200191508051906020019060200280838360005b83811015610ec7578181015183820152602001610eaf565b50505050905001838103825285818151815260200191508051906020019060200280838360005b83811015610f06578181015183820152602001610eee565b505050509050019550505050505060405180910390f35b348015610f2957600080fd5b5061033f6131f3565b348015610f3e57600080fd5b5061030e613269565b348015610f5357600080fd5b5061033f60048036036020811015610f6a57600080fd5b5035613278565b60035460ff1681565b600080610f856132f6565b90939092509050565b60165460408051808201909152600e81526d696e666c6174696f6e206f6e6c7960901b6020820152906001600160a01b0316331461104a5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561100f578181015183820152602001610ff7565b50505050905090810190601f16801561103c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060006110556133fd565b506010549091506110669034613457565b60105560148190556040805134815290517f95c4e29cc99bc027cfc3cd719d6fd973d5f0317061885fbb322b9b17d8d35d379181900360200190a1506110aa6134b8565b47146040518060400160405280600e81526020016d6f7574206f662062616c616e636560901b8152509061111f5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561100f578181015183820152602001610ff7565b50565b7f000000000000000000000000000000000000000000000000000000000000000081565b600e5481565b6000546001600160a01b0316331461119d576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b6016546001600160a01b0316158015906111c157506015546001600160a01b031615155b80156111d757506017546001600160a01b031615155b611228576040805162461bcd60e51b815260206004820152601a60248201527f636f6e747261637420616464726573736573206e6f7420736574000000000000604482015290519081900360640190fd5b6003805460ff19166001179055565b6015546001600160a01b031681565b6018546001600160a01b031681565b60006127108211156040518060400160405280601c81526020017f696e76616c6964206665652070657263656e746167652076616c756500000000815250906112df5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561100f578181015183820152602001610ff7565b5060007f0000000000000000000000000000000000000000000000000000000000000000601560009054906101000a90046001600160a01b03166001600160a01b031663e7c830d46040518163ffffffff1660e01b815260040160206040518083038186803b15801561135157600080fd5b505afa158015611365573d6000803e3d6000fd5b505050506040513d602081101561137b57600080fd5b5051336000908152600b602052604090208054929091019250908015611473578160018203815481106113aa57fe5b9060005260206000200160000160029054906101000a90046001600160f01b03166001600160f01b03168310156040518060600160405280602181526020016148e8602191399061143c5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561100f578181015183820152602001610ff7565b5081600182038154811061144c57fe5b6000918252602090912001546201000090046001600160f01b031683141561147357600019015b8154811415611489578154600101825560008290525b8482828154811061149657fe5b6000918252602090912001805461ffff191661ffff92909216919091179055600160f01b83106114c257fe5b828282815481106114cf57fe5b60009182526020918290200180546001600160f01b0393909316620100000261ffff9093169290921790915560408051878152918201859052805133927fd89f05622c2dcb0b4fcaa19e62fc2a2b0923955685fb7b0c641467f764244abc92908290030190a250909392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000546001600160a01b031633146115b3576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b60035460ff161580156115ee57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615155b80156115fa5750600554155b80156116065750600454155b61164b576040805162461bcd60e51b81526020600482015260116024820152706e6f7420696e697469616c20737461746560781b604482015290519081900360640190fd5b601560009054906101000a90046001600160a01b03166001600160a01b031663e7c830d46040518163ffffffff1660e01b815260040160206040518083038186803b15801561169957600080fd5b505afa1580156116ad573d6000803e3d6000fd5b505050506040513d60208110156116c357600080fd5b505160055560408051633e7ff85760e01b815290516001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691633e7ff857916004808301926020929190829003018186803b15801561172857600080fd5b505afa15801561173c573d6000803e3d6000fd5b505050506040513d602081101561175257600080fd5b5051600455565b600f54600d54600092565b60055490565b6001600160a01b0381166000908152600b602052604090208054606091829182919015611a1b57601554604080516339f20c3560e21b815290516000926001600160a01b03169163e7c830d4916004808301926020929190829003018186803b1580156117d657600080fd5b505afa1580156117ea573d6000803e3d6000fd5b505050506040513d602081101561180057600080fd5b505182549091505b60008111801561184057508183600183038154811061182357fe5b6000918252602090912001546201000090046001600160f01b0316115b1561184e5760001901611808565b82548190038015611a1757806001600160401b038111801561186f57600080fd5b50604051908082528060200260200182016040528015611899578160200160208202803683370190505b509650806001600160401b03811180156118b257600080fd5b506040519080825280602002602001820160405280156118dc578160200160208202803683370190505b509550806001600160401b03811180156118f557600080fd5b5060405190808252806020026020018201604052801561191f578160200160208202803683370190505b50945060005b81811015611a1557848382018154811061193b57fe5b600091825260209091200154885161ffff9091169089908390811061195c57fe5b602002602001018181525050848382018154811061197657fe5b9060005260206000200160000160029054906101000a90046001600160f01b03166001600160f01b03168782815181106119ac57fe5b6020026020010181815250507f0000000000000000000000000000000000000000000000000000000000000000848883815181106119e657fe5b60200260200101510314158682815181106119fd57fe5b91151560209283029190910190910152600101611925565b505b5050505b509193909250565b60045490565b60125481565b6000546001600160a01b03163314611a80576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b6003805460ff19169055565b6000546001600160a01b031681565b6001546001600160a01b03163314611aea576040805162461bcd60e51b815260206004820152600d60248201526c1b9bdd0818db185a5b585a5b9d609a1b604482015290519081900360640190fd5b600054600154604080516001600160a01b03938416815292909116602083015280517f434a2db650703b36c824e745330d6397cdaa9ee2cc891a4938ae853e1c50b68d9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b600c5481565b6001546001600160a01b031681565b60008281526007602090815260408083206001600160a01b03909416808452938252808320549483526006825280832093835292905220549091565b60135481565b60115481565b6000546001600160a01b03163314611c0b576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b6018546001600160a01b031615611c57576040805162461bcd60e51b815260206004820152600b60248201526a185b1c9958591e481cd95d60aa1b604482015290519081900360640190fd5b6001600160a01b038116611ca1576040805162461bcd60e51b815260206004820152600c60248201526b61646472657373207a65726f60a01b604482015290519081900360640190fd5b601880546001600160a01b0319166001600160a01b0392909216919091179055565b60009283526008602090815260408085206001600160a01b0394851686528252808520929093168452529020805460019091015460ff90911691565b6000546001600160a01b03163314611d50576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b60408051808201909152600e81526d696e666c6174696f6e207a65726f60901b60208201526001600160a01b038416611dca5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561100f578181015183820152602001610ff7565b5060408051808201909152600f81526e373790333a39b79036b0b730b3b2b960891b60208201526001600160a01b038316611e465760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561100f578181015183820152602001610ff7565b506040805180820190915260078152661b9bc81dd3985d60ca1b60208201526001600160a01b038216611eba5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561100f578181015183820152602001610ff7565b50601680546001600160a01b039485166001600160a01b031991821617909155601580549385169382169390931790925560178054919093169116179055565b600154600160a01b900460ff1615611f50576040805162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b604482015290519081900360640190fd5b6001805460ff60a01b1916600160a01b179055600054604080516001600160a01b039283168152918316602083015280517f434a2db650703b36c824e745330d6397cdaa9ee2cc891a4938ae853e1c50b68d9281900390910190a1600080546001600160a01b039092166001600160a01b0319928316179055600180549091169055565b6017546001600160a01b031681565b600d5481565b6060806060600080601560009054906101000a90046001600160a01b03166001600160a01b031663e7c830d46040518163ffffffff1660e01b815260040160206040518083038186803b15801561203f57600080fd5b505afa158015612053573d6000803e3d6000fd5b505050506040513d602081101561206957600080fd5b5051905061207786826134dc565b9150818061208457508086145b156120ae57600061209788886000613504565b805160408201516060909201519097509095509350505b5092959194509250565b60105481565b6015546040805180820190915260118152706674736f206d616e61676572206f6e6c7960781b6020820152906001600160a01b031633146121405760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561100f578181015183820152602001610ff7565b5086158015906121505750885115155b61215657fe5b60006121736121658487613bd7565b61216d613c88565b90613cad565b905060008a516001600160401b038111801561218e57600080fd5b506040519080825280602002602001820160405280156121b8578160200160208202803683370190505b50905081816000815181106121c957fe5b602002602001018181525050888a6000815181106121e357fe5b60209081029190910101528a51600019015b6122458b828151811061220457fe5b60200260200101518c60008151811061221957fe5b60200260200101518460008151811061222e57fe5b6020026020010151613d149092919063ffffffff16565b82828151811061225157fe5b60200260200101818152505081818151811061226957fe5b60200260200101516007600088815260200190815260200160002060008e848151811061229257fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000828254019250508190555061237c612710601760009054906101000a90046001600160a01b03166001600160a01b03166392bfe6d88f85815181106122fd57fe5b6020026020010151886040518363ffffffff1660e01b815260040180836001600160a01b031681526020018281526020019250505060206040518083038186803b15801561234a57600080fd5b505afa15801561235e573d6000803e3d6000fd5b505050506040513d602081101561237457600080fd5b505190613e1a565b6006600088815260200190815260200160002060008e848151811061239d57fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000208190555080600014156123d757612446565b8181815181106123e357fe5b6020026020010151826000815181106123f857fe5b6020026020010181815103915081815250508a818151811061241657fe5b60200260200101518b60008151811061242b57fe5b602090810291909101018051919091039052600019016121f5565b6000868152600960205260409020805484019055600c546124679084613457565b600c81905550876001600160a01b03167f8b2bc56c62594afde5b520e83e1ca19ebd071798db21382e328014f47b31ce578a8e85604051808481526020018060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156124e55781810151838201526020016124cd565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561252457818101518382015260200161250c565b505050509050019550505050505060405180910390a2505050505050505050505050565b60035460408051808201909152601a81527f726577617264206d616e61676572206465616374697661746564000000000000602082015260009160ff166125d05760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561100f578181015183820152602001610ff7565b50600280541415612628576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b600280556126346133fd565b5050601554604080516339f20c3560e21b815290516000926001600160a01b03169163e7c830d4916004808301926020929190829003018186803b15801561267b57600080fd5b505afa15801561268f573d6000803e3d6000fd5b505050506040513d60208110156126a557600080fd5b5051905060005b8351811015612764576126d28482815181106126c457fe5b6020026020010151836134dc565b6126db5761275c565b60006126fc338684815181106126ed57fe5b60200260200101516001613504565b9050600061271e8787858151811061271057fe5b602002602001015184613e73565b905080600a600088868151811061273157fe5b6020026020010151815260200190815260200160002060008282540192505081905550808501945050505b6001016126ac565b5061276f8483614051565b504760145560016002556127816134b8565b47146040518060400160405280600e81526020016d6f7574206f662062616c616e636560901b815250906127f65760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561100f578181015183820152602001610ff7565b5092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b606060008061282e6132f6565b90925090506001828203016000816001600160401b038111801561285157600080fd5b5060405190808252806020026020018201604052801561287b578160200160208202803683370190505b5090506000805b8381101561292857600061289a898389016001613504565b905060005b81606001515181101561291e57816060015181815181106128bc57fe5b60200260200101511580156128e857506000826040015182815181106128de57fe5b6020026020010151115b156129165760018584815181106128fb57fe5b9115156020928302919091019091015260019093019261291e565b60010161289f565b5050600101612882565b50806001600160401b038111801561293f57600080fd5b50604051908082528060200260200182016040528015612969578160200160208202803683370190505b5095506000805b848110156129ba5783818151811061298457fe5b6020026020010151156129b2578087018883815181106129a057fe5b60209081029190910101526001909101905b600101612970565b50505050505050919050565b6000546001600160a01b03163314612a17576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f1f95fb40be3a947982072902a887b521248d1d8931a39eb38f84f4d6fd758b699181900360200190a150565b6000612af082601560009054906101000a90046001600160a01b03166001600160a01b031663e7c830d46040518163ffffffff1660e01b815260040160206040518083038186803b158015612abf57600080fd5b505afa158015612ad3573d6000803e3d6000fd5b505050506040513d6020811015612ae957600080fd5b5051614124565b92915050565b600f5481565b60035460408051808201909152601a81527f726577617264206d616e61676572206465616374697661746564000000000000602082015260009160ff16612b845760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561100f578181015183820152602001610ff7565b50600280541415612bdc576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60028055612be86133fd565b5050601554604080516339f20c3560e21b815290516000926001600160a01b03169163e7c830d4916004808301926020929190829003018186803b158015612c2f57600080fd5b505afa158015612c43573d6000803e3d6000fd5b505050506040513d6020811015612c5957600080fd5b5051905060005b8451811015612d0357612c788582815181106126c457fe5b612c8157612cfb565b612c89614887565b612ca933878481518110612c9957fe5b60200260200101518760016141d0565b90506000612cbd8888858151811061271057fe5b905080600a6000898681518110612cd057fe5b6020026020010151815260200190815260200160002060008282540192505081905550808501945050505b600101612c60565b50612d0e8583614051565b50476014556001600255612d206134b8565b47146040518060400160405280600e81526020016d6f7574206f662062616c616e636560901b81525090612d955760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561100f578181015183820152602001610ff7565b509392505050565b6000546001600160a01b03163314612dee576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b600054604080516001600160a01b039283168152918316602083015280517f434a2db650703b36c824e745330d6397cdaa9ee2cc891a4938ae853e1c50b68d9281900390910190a1600080546001600160a01b039092166001600160a01b0319928316179055600180549091169055565b600090815260096020908152604080832054600a909252909120549091565b6015546001600160a01b0316331480612ea157506018546001600160a01b031633145b612ee2576040805162461bcd60e51b815260206004820152600d60248201526c6f6e6c79206d616e616765727360981b604482015290519081900360640190fd5b8060045414612f30576040805162461bcd60e51b81526020600482015260156024820152741ddc9bdb99c81c995dd85c9908195c1bd8da081a59605a1b604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615801590612f6c575060055460320181105b15612ff0577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d6c1dbee826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015612fd757600080fd5b505af1158015612feb573d6000803e3d6000fd5b505050505b6000818152600a6020908152604080832054600990925290912054600e549190039061301c9082613457565b600e556040805183815290517f5d05c64f281304391697cf987812e1a736413a062a9bdf39af4102209eb6fa589181900360200190a150600101600455565b60165460408051808201909152600e81526d696e666c6174696f6e206f6e6c7960901b6020820152906001600160a01b031633146130da5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561100f578181015183820152602001610ff7565b506013819055600f546130ed9082613457565b600f55426012556040805182815290517f187f32a0f765499f15b3bb52ed0aebf6015059f230f2ace7e701e60a476695959181900360200190a150565b606080600080601560009054906101000a90046001600160a01b03166001600160a01b031663e7c830d46040518163ffffffff1660e01b815260040160206040518083038186803b15801561317e57600080fd5b505afa158015613192573d6000803e3d6000fd5b505050506040513d60208110156131a857600080fd5b505190506131b686826134dc565b915081806131c357508086145b156131e95760006131d788888860006141d0565b90508060400151945080606001519350505b5093509350939050565b601554604080516339f20c3560e21b815290516000926001600160a01b03169163e7c830d4916004808301926020929190829003018186803b15801561323857600080fd5b505afa15801561324c573d6000803e3d6000fd5b505050506040513d602081101561326257600080fd5b5051905090565b6016546001600160a01b031690565b60155460408051637976d5ad60e11b81526004810184905290516000926001600160a01b03169163f2edab5a916024808301926020929190829003018186803b1580156132c457600080fd5b505afa1580156132d8573d6000803e3d6000fd5b505050506040513d60208110156132ee57600080fd5b505192915050565b60048054601554604080516339f20c3560e21b81529051929360009384936001600160a01b03169263e7c830d49281810192602092909190829003018186803b15801561334257600080fd5b505afa158015613356573d6000803e3d6000fd5b505050506040513d602081101561336c57600080fd5b505160408051808201909152601f81527f6e6f2065706f6368207769746820636c61696d61626c652072657761726473006020820152909150816133f15760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561100f578181015183820152602001610ff7565b50600181039150509091565b6000806134153460145461345790919063ffffffff16565b905047915080821115613449576134418161343b8460115461345790919063ffffffff16565b90614579565b601155613453565b8082101561345357fe5b9091565b6000828201838110156134b1576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60006134d7600d5461343b60115460105461345790919063ffffffff16565b905090565b60006004548310806134ee5750818310155b156134fb57506000612af0565b50600192915050565b61350c614887565b60155460408051637976d5ad60e11b81526004810186905290516000926001600160a01b03169163f2edab5a916024808301926020929190829003018186803b15801561355857600080fd5b505afa15801561356c573d6000803e3d6000fd5b505050506040513d602081101561358257600080fd5b5051905060006135938587806145d6565b9050600061359f6148af565b82156135c057856135bb576135b587898a614609565b60208201525b6135de565b6135cb88888661463c565b91506135d88789846147b2565b60208201525b82806135ee575060008160200151115b151581526017546040805163ed475a7960e01b81526001600160a01b038b811660048301526024820188905291516060938493169163ed475a79916044808301926000929190829003018186803b15801561364857600080fd5b505afa15801561365c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052608081101561368557600080fd5b8101908080516040519392919084600160201b8211156136a457600080fd5b9083019060208201858111156136b957600080fd5b82518660208202830111600160201b821117156136d557600080fd5b82525081516020918201928201910280838360005b838110156137025781810151838201526020016136ea565b5050505090500160405260200180516040519392919084600160201b82111561372a57600080fd5b90830190602082018581111561373f57600080fd5b82518660208202830111600160201b8211171561375b57600080fd5b82525081516020918201928201910280838360005b83811015613788578181015183820152602001613770565b5050505091909101604052505083518751949650929450919291506137b090505760006137b3565b60015b60ff16016001600160401b03811180156137cc57600080fd5b506040519080825280602002602001820160405280156137f6578160200160208202803683370190505b50808852516001600160401b038111801561381057600080fd5b5060405190808252806020026020018201604052801561383a578160200160208202803683370190505b5060208801528651516001600160401b038111801561385857600080fd5b50604051908082528060200260200182016040528015613882578160200160208202803683370190505b5060408801528651516001600160401b03811180156138a057600080fd5b506040519080825280602002602001820160405280156138ca578160200160208202803683370190505b50606088015282511561396e578987600001516000815181106138e957fe5b60200260200101906001600160a01b031690816001600160a01b03168152505084876060015160008151811061391b57fe5b60200260200101901515908115158152505083876020015160008151811061393f57fe5b6020026020010181815250508260200151876040015160008151811061396157fe5b6020026020010181815250505b815115613bca576017546040805163277166bf60e11b81526001600160a01b038d81166004830152602482018a905291516000939290921691634ee2cd7e91604480820192602092909190829003018186803b1580156139cd57600080fd5b505afa1580156139e1573d6000803e3d6000fd5b505050506040513d60208110156139f757600080fd5b5051905060005b8351811015613bc7576000818660000151613a1a576000613a1d565b60015b60ff16019050848281518110613a2f57fe5b60200260200101518a600001518281518110613a4757fe5b60200260200101906001600160a01b031690816001600160a01b031681525050613a858c868481518110613a7757fe5b60200260200101518f6145d6565b8a606001518281518110613a9557fe5b60200260200101901515908115158152505089606001518181518110613ab757fe5b602002602001015115613b09578a613b0457613ae78c868481518110613ad957fe5b60200260200101518f614609565b8a604001518281518110613af757fe5b6020026020010181815250505b613bbe565b613b50858381518110613b1857fe5b6020026020010151613b4a868581518110613b2f57fe5b602002602001015161271087613d149092919063ffffffff16565b8e614844565b8a602001518281518110613b6057fe5b602002602001018181525050613ba18c868481518110613b7c57fe5b60200260200101518c602001518481518110613b9457fe5b60200260200101516147b2565b8a604001518281518110613bb157fe5b6020026020010181815250505b506001016139fe565b50505b5050505050509392505050565b600080613bf26201517f60125461345790919063ffffffff16565b905080841115604051806040016040528060118152602001706166746572206461696c79206379636c6560781b81525090613c6e5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561100f578181015183820152602001610ff7565b50613c7d8361216d8387614579565b600101949350505050565b60006134d7613ca4600e54600c5461457990919063ffffffff16565b600f5490614579565b6000808211613d03576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381613d0c57fe5b049392505050565b6000808211613d5d576040805162461bcd60e51b815260206004820152601060248201526f4469766973696f6e206279207a65726f60801b604482015290519081900360640190fd5b83613d6a575060006134b1565b83830283858281613d7757fe5b041415613d9057828181613d8757fe5b049150506134b1565b6000838681613d9b57fe5b0490506000848781613da957fe5b0690506000858781613db757fe5b0490506000868881613dc557fe5b069050613e0d613dd98861216d8685613e1a565b613e07613de68686613e1a565b613e07613df38987613e1a565b613e078d613e018c8b613e1a565b90613e1a565b90613457565b9998505050505050505050565b600082613e2957506000612af0565b82820282848281613e3657fe5b04146134b15760405162461bcd60e51b81526004018080602001828103825260218152602001806148c76021913960400191505060405180910390fd5b600080805b8351518110156140485783606001518181518110613e9257fe5b602002602001015115613ea457614040565b600084600001518281518110613eb657fe5b60200260200101519050600085602001518381518110613ed257fe5b602002602001015190506000811115613f0f5760008781526006602090815260408083206001600160a01b03861684529091529020805482900390555b600086604001518481518110613f2157fe5b602002602001015190506000811115613f6a5760008881526007602090815260408083206001600160a01b0387168452909152902080548290039055600d805482019055938401935b60008881526008602090815260408083206001600160a01b038716845282528083203384529091529020805460ff1615613fdd576040805162461bcd60e51b815260206004820152600f60248201526e185b1c9958591e4818db185a5b5959608a1b604482015290519081900360640190fd5b805460ff1916600190811782558101829055604080518a81526020810184905281516001600160a01b03808e16933393918916927f6ec685171a9028d19dc155a48e7824e3c68b03bc8995410e006abe3cbbeb3e2d9281900390910190a4505050505b600101613e78565b50949350505050565b8015614120576040516000906001600160a01b0384169083908381818185875af1925050503d80600081146140a2576040519150601f19603f3d011682016040523d82523d6000602084013e6140a7565b606091505b50509050806040518060400160405280600c81526020016b18db185a5b4819985a5b195960a21b8152509061411d5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561100f578181015183820152602001610ff7565b50505b5050565b6001600160a01b0382166000908152600b6020526040812080545b80156141a65781546000199091019082908290811061415a57fe5b6000918252602090912001546201000090046001600160f01b031684106141a15781818154811061418757fe5b60009182526020909120015461ffff169250612af0915050565b61413f565b507f0000000000000000000000000000000000000000000000000000000000000000949350505050565b6141d8614887565b60155460408051637976d5ad60e11b81526004810187905290516000926001600160a01b03169163f2edab5a916024808301926020929190829003018186803b15801561422457600080fd5b505afa158015614238573d6000803e3d6000fd5b505050506040513d602081101561424e57600080fd5b50518451858452909150806001600160401b038111801561426e57600080fd5b50604051908082528060200260200182016040528015614298578160200160208202803683370190505b506020840152806001600160401b03811180156142b457600080fd5b506040519080825280602002602001820160405280156142de578160200160208202803683370190505b506040840152806001600160401b03811180156142fa57600080fd5b50604051908082528060200260200182016040528015614324578160200160208202803683370190505b50606084015260005b8181101561456e576143538787838151811061434557fe5b60200260200101518a6145d6565b8460600151828151811061436357fe5b6020026020010190151590811515815250508360600151818151811061438557fe5b6020026020010151156143d757846143d2576143b5878783815181106143a757fe5b60200260200101518a614609565b846040015182815181106143c557fe5b6020026020010181815250505b614566565b876001600160a01b03168682815181106143ed57fe5b60200260200101516001600160a01b031614156144305761440f88888561463c565b8460200151828151811061441f57fe5b602002602001018181525050614521565b60175486516000916001600160a01b03169063e64767aa908b908a908690811061445657fe5b6020026020010151876040518463ffffffff1660e01b815260040180846001600160a01b03168152602001836001600160a01b03168152602001828152602001935050505060206040518083038186803b1580156144b357600080fd5b505afa1580156144c7573d6000803e3d6000fd5b505050506040513d60208110156144dd57600080fd5b50518751909150614503908890849081106144f457fe5b6020026020010151828a614844565b8560200151838151811061451357fe5b602002602001018181525050505b6145498787838151811061453157fe5b602002602001015186602001518481518110613b9457fe5b8460400151828151811061455957fe5b6020026020010181815250505b60010161432d565b505050949350505050565b6000828211156145d0576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60009283526008602090815260408085206001600160a01b03948516865282528085209290931684525290205460ff1690565b60009283526008602090815260408085206001600160a01b03948516865282528085209290931684525290206001015490565b60175460408051634181ad4160e11b81526001600160a01b038681166004830152602482018590529151600093849316916383035a82916044808301926020929190829003018186803b15801561469257600080fd5b505afa1580156146a6573d6000803e3d6000fd5b505050506040513d60208110156146bc57600080fd5b505160175460408051631257fcdb60e31b81526001600160a01b03898116600483015260248201889052915193945060009391909216916392bfe6d8916044808301926020929190829003018186803b15801561471857600080fd5b505afa15801561472c573d6000803e3d6000fd5b505050506040513d602081101561474257600080fd5b50519050818114156147635761475a81612710613e1a565b925050506134b1565b81811161476c57fe5b600082156147825761478083612710613e1a565b015b600061478e8888614124565b905080156147a7576147a284840382613e1a565b820191505b509695505050505050565b6000816147c1575060006134b1565b60008481526007602090815260408083206001600160a01b0387168452909152902054806147f35760009150506134b1565b60008581526006602090815260408083206001600160a01b038816845290915290205483811415614826575090506134b1565b80841061482f57fe5b61483a828583613d14565b9695505050505050565b600082614853575060006134b1565b6000806148608685614124565b90506127108110156140485761487b85612710839003613e1a565b90910195945050505050565b6040518060800160405280606081526020016060815260200160608152602001606081525090565b60408051808201909152600080825260208201529056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f776665652070657263656e746167652063616e206e6f742062652075706461746564a26469706673582212206bff96e3719ccd67cd805c1ba4ed990c16d8488ac81ef2139618d2cdeae7757e64736f6c63430007060033",
1024
- "deployedBytecode": "0x6080604052600436106102935760003560e01c806382a2b9051161015a578063c373a08e116100c1578063d6c1dbee1161007a578063d6c1dbee14610d64578063e273956314610d8e578063e416b7e114610db8578063e7c830d414610f1d578063ed39d3f814610f32578063f2edab5a14610f4757610293565b8063c373a08e14610b4c578063cfbcd25f14610b7f578063d0c1c39314610bb2578063d20bb54214610bc7578063d38bfff414610d07578063d418634a14610d3a57610293565b8063a4472c1011610113578063a4472c1014610764578063a5555aea14610884578063a9b79e1714610899578063b2af870a146109f6578063b482403414610ab4578063b4a2043d14610ac957610293565b806382a2b9051461063357806385b4c538146106665780638ab63380146106c25780639d6a890f146107075780639edbf0071461073a5780639f71043e1461074f57610293565b80633123b7d8116101fe5780635d36b190116101b75780635d36b190146105915780635de8b2f3146105a657806360f7ac97146105bb578063657d9695146105d0578063708e34ce14610609578063729936151461061e57610293565b80633123b7d81461041757806333b7971e1461042c5780633e7ff8571461053d578063473252c41461055257806351b42b00146105675780635aa6e6751461057c57610293565b806311a7aaaa1161025057806311a7aaaa1461036657806312f97ac01461037b57806316e693281461039057806316fe49c7146103ba5780631de56098146103cf5780632dafdbbf146103e457610293565b806302fb0c5e146102985780630441218e146102c157806306201f1d146102ef5780630cb72344146102f95780630cc2a8fe1461032a5780630f15f4c014610351575b600080fd5b3480156102a457600080fd5b506102ad610f71565b604080519115158252519081900360200190f35b3480156102cd57600080fd5b506102d6610f7a565b6040805192835260208301919091528051918290030190f35b6102f7610f8e565b005b34801561030557600080fd5b5061030e611122565b604080516001600160a01b039092168252519081900360200190f35b34801561033657600080fd5b5061033f611146565b60408051918252519081900360200190f35b34801561035d57600080fd5b506102f761114c565b34801561037257600080fd5b5061030e611237565b34801561038757600080fd5b5061030e611246565b34801561039c57600080fd5b5061033f600480360360208110156103b357600080fd5b5035611255565b3480156103c657600080fd5b5061033f61153e565b3480156103db57600080fd5b506102f7611562565b3480156103f057600080fd5b506103f9611759565b60408051938452602084019290925282820152519081900360600190f35b34801561042357600080fd5b5061033f611764565b34801561043857600080fd5b5061045f6004803603602081101561044f57600080fd5b50356001600160a01b031661176a565b60405180806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b838110156104a757818101518382015260200161048f565b50505050905001848103835286818151815260200191508051906020019060200280838360005b838110156104e65781810151838201526020016104ce565b50505050905001848103825285818151815260200191508051906020019060200280838360005b8381101561052557818101518382015260200161050d565b50505050905001965050505050505060405180910390f35b34801561054957600080fd5b5061033f611a23565b34801561055e57600080fd5b5061033f611a29565b34801561057357600080fd5b506102f7611a2f565b34801561058857600080fd5b5061030e611a8c565b34801561059d57600080fd5b506102f7611a9b565b3480156105b257600080fd5b5061033f611b5d565b3480156105c757600080fd5b5061030e611b63565b3480156105dc57600080fd5b506102d6600480360360408110156105f357600080fd5b50803590602001356001600160a01b0316611b72565b34801561061557600080fd5b5061033f611bae565b34801561062a57600080fd5b5061033f611bb4565b34801561063f57600080fd5b506102f76004803603602081101561065657600080fd5b50356001600160a01b0316611bba565b34801561067257600080fd5b506106a76004803603606081101561068957600080fd5b508035906001600160a01b0360208201358116916040013516611cc3565b60408051921515835260208301919091528051918290030190f35b3480156106ce57600080fd5b506102f7600480360360608110156106e557600080fd5b506001600160a01b038135811691602081013582169160409091013516611cff565b34801561071357600080fd5b506102f76004803603602081101561072a57600080fd5b50356001600160a01b0316611efa565b34801561074657600080fd5b5061030e611fd4565b34801561075b57600080fd5b5061033f611fe3565b34801561077057600080fd5b5061079d6004803603604081101561078757600080fd5b506001600160a01b038135169060200135611fe9565b604051808060200180602001806020018515158152602001848103845288818151815260200191508051906020019060200280838360005b838110156107ed5781810151838201526020016107d5565b50505050905001848103835287818151815260200191508051906020019060200280838360005b8381101561082c578181015183820152602001610814565b50505050905001848103825286818151815260200191508051906020019060200280838360005b8381101561086b578181015183820152602001610853565b5050505090500197505050505050505060405180910390f35b34801561089057600080fd5b5061033f6120b8565b3480156108a557600080fd5b506102f760048036036101208110156108bd57600080fd5b810190602081018135600160201b8111156108d757600080fd5b8201836020820111156108e957600080fd5b803590602001918460208302840111600160201b8311171561090a57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561095957600080fd5b82018360208201111561096b57600080fd5b803590602001918460208302840111600160201b8311171561098c57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550508235935050506020810135906001600160a01b036040820135169060608101359060808101359060a08101359060c001356120be565b348015610a0257600080fd5b5061033f60048036036040811015610a1957600080fd5b6001600160a01b038235169190810190604081016020820135600160201b811115610a4357600080fd5b820183602082011115610a5557600080fd5b803590602001918460208302840111600160201b83111715610a7657600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550612548945050505050565b348015610ac057600080fd5b5061033f6127fd565b348015610ad557600080fd5b50610afc60048036036020811015610aec57600080fd5b50356001600160a01b0316612821565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610b38578181015183820152602001610b20565b505050509050019250505060405180910390f35b348015610b5857600080fd5b506102f760048036036020811015610b6f57600080fd5b50356001600160a01b03166129c6565b348015610b8b57600080fd5b5061033f60048036036020811015610ba257600080fd5b50356001600160a01b0316612a6b565b348015610bbe57600080fd5b5061033f612af6565b348015610bd357600080fd5b5061033f60048036036060811015610bea57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b811115610c1457600080fd5b820183602082011115610c2657600080fd5b803590602001918460208302840111600160201b83111715610c4757600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b811115610c9657600080fd5b820183602082011115610ca857600080fd5b803590602001918460208302840111600160201b83111715610cc957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550612afc945050505050565b348015610d1357600080fd5b506102f760048036036020811015610d2a57600080fd5b50356001600160a01b0316612d9d565b348015610d4657600080fd5b506102d660048036036020811015610d5d57600080fd5b5035612e5f565b348015610d7057600080fd5b506102f760048036036020811015610d8757600080fd5b5035612e7e565b348015610d9a57600080fd5b506102f760048036036020811015610db157600080fd5b503561305b565b348015610dc457600080fd5b50610e7b60048036036060811015610ddb57600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b811115610e0a57600080fd5b820183602082011115610e1c57600080fd5b803590602001918460208302840111600160201b83111715610e3d57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061312a945050505050565b6040518080602001806020018415158152602001838103835286818151815260200191508051906020019060200280838360005b83811015610ec7578181015183820152602001610eaf565b50505050905001838103825285818151815260200191508051906020019060200280838360005b83811015610f06578181015183820152602001610eee565b505050509050019550505050505060405180910390f35b348015610f2957600080fd5b5061033f6131f3565b348015610f3e57600080fd5b5061030e613269565b348015610f5357600080fd5b5061033f60048036036020811015610f6a57600080fd5b5035613278565b60035460ff1681565b600080610f856132f6565b90939092509050565b60165460408051808201909152600e81526d696e666c6174696f6e206f6e6c7960901b6020820152906001600160a01b0316331461104a5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561100f578181015183820152602001610ff7565b50505050905090810190601f16801561103c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060006110556133fd565b506010549091506110669034613457565b60105560148190556040805134815290517f95c4e29cc99bc027cfc3cd719d6fd973d5f0317061885fbb322b9b17d8d35d379181900360200190a1506110aa6134b8565b47146040518060400160405280600e81526020016d6f7574206f662062616c616e636560901b8152509061111f5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561100f578181015183820152602001610ff7565b50565b7f000000000000000000000000000000000000000000000000000000000000000081565b600e5481565b6000546001600160a01b0316331461119d576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b6016546001600160a01b0316158015906111c157506015546001600160a01b031615155b80156111d757506017546001600160a01b031615155b611228576040805162461bcd60e51b815260206004820152601a60248201527f636f6e747261637420616464726573736573206e6f7420736574000000000000604482015290519081900360640190fd5b6003805460ff19166001179055565b6015546001600160a01b031681565b6018546001600160a01b031681565b60006127108211156040518060400160405280601c81526020017f696e76616c6964206665652070657263656e746167652076616c756500000000815250906112df5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561100f578181015183820152602001610ff7565b5060007f0000000000000000000000000000000000000000000000000000000000000000601560009054906101000a90046001600160a01b03166001600160a01b031663e7c830d46040518163ffffffff1660e01b815260040160206040518083038186803b15801561135157600080fd5b505afa158015611365573d6000803e3d6000fd5b505050506040513d602081101561137b57600080fd5b5051336000908152600b602052604090208054929091019250908015611473578160018203815481106113aa57fe5b9060005260206000200160000160029054906101000a90046001600160f01b03166001600160f01b03168310156040518060600160405280602181526020016148e8602191399061143c5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561100f578181015183820152602001610ff7565b5081600182038154811061144c57fe5b6000918252602090912001546201000090046001600160f01b031683141561147357600019015b8154811415611489578154600101825560008290525b8482828154811061149657fe5b6000918252602090912001805461ffff191661ffff92909216919091179055600160f01b83106114c257fe5b828282815481106114cf57fe5b60009182526020918290200180546001600160f01b0393909316620100000261ffff9093169290921790915560408051878152918201859052805133927fd89f05622c2dcb0b4fcaa19e62fc2a2b0923955685fb7b0c641467f764244abc92908290030190a250909392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000546001600160a01b031633146115b3576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b60035460ff161580156115ee57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615155b80156115fa5750600554155b80156116065750600454155b61164b576040805162461bcd60e51b81526020600482015260116024820152706e6f7420696e697469616c20737461746560781b604482015290519081900360640190fd5b601560009054906101000a90046001600160a01b03166001600160a01b031663e7c830d46040518163ffffffff1660e01b815260040160206040518083038186803b15801561169957600080fd5b505afa1580156116ad573d6000803e3d6000fd5b505050506040513d60208110156116c357600080fd5b505160055560408051633e7ff85760e01b815290516001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691633e7ff857916004808301926020929190829003018186803b15801561172857600080fd5b505afa15801561173c573d6000803e3d6000fd5b505050506040513d602081101561175257600080fd5b5051600455565b600f54600d54600092565b60055490565b6001600160a01b0381166000908152600b602052604090208054606091829182919015611a1b57601554604080516339f20c3560e21b815290516000926001600160a01b03169163e7c830d4916004808301926020929190829003018186803b1580156117d657600080fd5b505afa1580156117ea573d6000803e3d6000fd5b505050506040513d602081101561180057600080fd5b505182549091505b60008111801561184057508183600183038154811061182357fe5b6000918252602090912001546201000090046001600160f01b0316115b1561184e5760001901611808565b82548190038015611a1757806001600160401b038111801561186f57600080fd5b50604051908082528060200260200182016040528015611899578160200160208202803683370190505b509650806001600160401b03811180156118b257600080fd5b506040519080825280602002602001820160405280156118dc578160200160208202803683370190505b509550806001600160401b03811180156118f557600080fd5b5060405190808252806020026020018201604052801561191f578160200160208202803683370190505b50945060005b81811015611a1557848382018154811061193b57fe5b600091825260209091200154885161ffff9091169089908390811061195c57fe5b602002602001018181525050848382018154811061197657fe5b9060005260206000200160000160029054906101000a90046001600160f01b03166001600160f01b03168782815181106119ac57fe5b6020026020010181815250507f0000000000000000000000000000000000000000000000000000000000000000848883815181106119e657fe5b60200260200101510314158682815181106119fd57fe5b91151560209283029190910190910152600101611925565b505b5050505b509193909250565b60045490565b60125481565b6000546001600160a01b03163314611a80576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b6003805460ff19169055565b6000546001600160a01b031681565b6001546001600160a01b03163314611aea576040805162461bcd60e51b815260206004820152600d60248201526c1b9bdd0818db185a5b585a5b9d609a1b604482015290519081900360640190fd5b600054600154604080516001600160a01b03938416815292909116602083015280517f434a2db650703b36c824e745330d6397cdaa9ee2cc891a4938ae853e1c50b68d9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b600c5481565b6001546001600160a01b031681565b60008281526007602090815260408083206001600160a01b03909416808452938252808320549483526006825280832093835292905220549091565b60135481565b60115481565b6000546001600160a01b03163314611c0b576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b6018546001600160a01b031615611c57576040805162461bcd60e51b815260206004820152600b60248201526a185b1c9958591e481cd95d60aa1b604482015290519081900360640190fd5b6001600160a01b038116611ca1576040805162461bcd60e51b815260206004820152600c60248201526b61646472657373207a65726f60a01b604482015290519081900360640190fd5b601880546001600160a01b0319166001600160a01b0392909216919091179055565b60009283526008602090815260408085206001600160a01b0394851686528252808520929093168452529020805460019091015460ff90911691565b6000546001600160a01b03163314611d50576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b60408051808201909152600e81526d696e666c6174696f6e207a65726f60901b60208201526001600160a01b038416611dca5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561100f578181015183820152602001610ff7565b5060408051808201909152600f81526e373790333a39b79036b0b730b3b2b960891b60208201526001600160a01b038316611e465760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561100f578181015183820152602001610ff7565b506040805180820190915260078152661b9bc81dd3985d60ca1b60208201526001600160a01b038216611eba5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561100f578181015183820152602001610ff7565b50601680546001600160a01b039485166001600160a01b031991821617909155601580549385169382169390931790925560178054919093169116179055565b600154600160a01b900460ff1615611f50576040805162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b604482015290519081900360640190fd5b6001805460ff60a01b1916600160a01b179055600054604080516001600160a01b039283168152918316602083015280517f434a2db650703b36c824e745330d6397cdaa9ee2cc891a4938ae853e1c50b68d9281900390910190a1600080546001600160a01b039092166001600160a01b0319928316179055600180549091169055565b6017546001600160a01b031681565b600d5481565b6060806060600080601560009054906101000a90046001600160a01b03166001600160a01b031663e7c830d46040518163ffffffff1660e01b815260040160206040518083038186803b15801561203f57600080fd5b505afa158015612053573d6000803e3d6000fd5b505050506040513d602081101561206957600080fd5b5051905061207786826134dc565b9150818061208457508086145b156120ae57600061209788886000613504565b805160408201516060909201519097509095509350505b5092959194509250565b60105481565b6015546040805180820190915260118152706674736f206d616e61676572206f6e6c7960781b6020820152906001600160a01b031633146121405760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561100f578181015183820152602001610ff7565b5086158015906121505750885115155b61215657fe5b60006121736121658487613bd7565b61216d613c88565b90613cad565b905060008a516001600160401b038111801561218e57600080fd5b506040519080825280602002602001820160405280156121b8578160200160208202803683370190505b50905081816000815181106121c957fe5b602002602001018181525050888a6000815181106121e357fe5b60209081029190910101528a51600019015b6122458b828151811061220457fe5b60200260200101518c60008151811061221957fe5b60200260200101518460008151811061222e57fe5b6020026020010151613d149092919063ffffffff16565b82828151811061225157fe5b60200260200101818152505081818151811061226957fe5b60200260200101516007600088815260200190815260200160002060008e848151811061229257fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000828254019250508190555061237c612710601760009054906101000a90046001600160a01b03166001600160a01b03166392bfe6d88f85815181106122fd57fe5b6020026020010151886040518363ffffffff1660e01b815260040180836001600160a01b031681526020018281526020019250505060206040518083038186803b15801561234a57600080fd5b505afa15801561235e573d6000803e3d6000fd5b505050506040513d602081101561237457600080fd5b505190613e1a565b6006600088815260200190815260200160002060008e848151811061239d57fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000208190555080600014156123d757612446565b8181815181106123e357fe5b6020026020010151826000815181106123f857fe5b6020026020010181815103915081815250508a818151811061241657fe5b60200260200101518b60008151811061242b57fe5b602090810291909101018051919091039052600019016121f5565b6000868152600960205260409020805484019055600c546124679084613457565b600c81905550876001600160a01b03167f8b2bc56c62594afde5b520e83e1ca19ebd071798db21382e328014f47b31ce578a8e85604051808481526020018060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156124e55781810151838201526020016124cd565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561252457818101518382015260200161250c565b505050509050019550505050505060405180910390a2505050505050505050505050565b60035460408051808201909152601a81527f726577617264206d616e61676572206465616374697661746564000000000000602082015260009160ff166125d05760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561100f578181015183820152602001610ff7565b50600280541415612628576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b600280556126346133fd565b5050601554604080516339f20c3560e21b815290516000926001600160a01b03169163e7c830d4916004808301926020929190829003018186803b15801561267b57600080fd5b505afa15801561268f573d6000803e3d6000fd5b505050506040513d60208110156126a557600080fd5b5051905060005b8351811015612764576126d28482815181106126c457fe5b6020026020010151836134dc565b6126db5761275c565b60006126fc338684815181106126ed57fe5b60200260200101516001613504565b9050600061271e8787858151811061271057fe5b602002602001015184613e73565b905080600a600088868151811061273157fe5b6020026020010151815260200190815260200160002060008282540192505081905550808501945050505b6001016126ac565b5061276f8483614051565b504760145560016002556127816134b8565b47146040518060400160405280600e81526020016d6f7574206f662062616c616e636560901b815250906127f65760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561100f578181015183820152602001610ff7565b5092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b606060008061282e6132f6565b90925090506001828203016000816001600160401b038111801561285157600080fd5b5060405190808252806020026020018201604052801561287b578160200160208202803683370190505b5090506000805b8381101561292857600061289a898389016001613504565b905060005b81606001515181101561291e57816060015181815181106128bc57fe5b60200260200101511580156128e857506000826040015182815181106128de57fe5b6020026020010151115b156129165760018584815181106128fb57fe5b9115156020928302919091019091015260019093019261291e565b60010161289f565b5050600101612882565b50806001600160401b038111801561293f57600080fd5b50604051908082528060200260200182016040528015612969578160200160208202803683370190505b5095506000805b848110156129ba5783818151811061298457fe5b6020026020010151156129b2578087018883815181106129a057fe5b60209081029190910101526001909101905b600101612970565b50505050505050919050565b6000546001600160a01b03163314612a17576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f1f95fb40be3a947982072902a887b521248d1d8931a39eb38f84f4d6fd758b699181900360200190a150565b6000612af082601560009054906101000a90046001600160a01b03166001600160a01b031663e7c830d46040518163ffffffff1660e01b815260040160206040518083038186803b158015612abf57600080fd5b505afa158015612ad3573d6000803e3d6000fd5b505050506040513d6020811015612ae957600080fd5b5051614124565b92915050565b600f5481565b60035460408051808201909152601a81527f726577617264206d616e61676572206465616374697661746564000000000000602082015260009160ff16612b845760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561100f578181015183820152602001610ff7565b50600280541415612bdc576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60028055612be86133fd565b5050601554604080516339f20c3560e21b815290516000926001600160a01b03169163e7c830d4916004808301926020929190829003018186803b158015612c2f57600080fd5b505afa158015612c43573d6000803e3d6000fd5b505050506040513d6020811015612c5957600080fd5b5051905060005b8451811015612d0357612c788582815181106126c457fe5b612c8157612cfb565b612c89614887565b612ca933878481518110612c9957fe5b60200260200101518760016141d0565b90506000612cbd8888858151811061271057fe5b905080600a6000898681518110612cd057fe5b6020026020010151815260200190815260200160002060008282540192505081905550808501945050505b600101612c60565b50612d0e8583614051565b50476014556001600255612d206134b8565b47146040518060400160405280600e81526020016d6f7574206f662062616c616e636560901b81525090612d955760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561100f578181015183820152602001610ff7565b509392505050565b6000546001600160a01b03163314612dee576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b600054604080516001600160a01b039283168152918316602083015280517f434a2db650703b36c824e745330d6397cdaa9ee2cc891a4938ae853e1c50b68d9281900390910190a1600080546001600160a01b039092166001600160a01b0319928316179055600180549091169055565b600090815260096020908152604080832054600a909252909120549091565b6015546001600160a01b0316331480612ea157506018546001600160a01b031633145b612ee2576040805162461bcd60e51b815260206004820152600d60248201526c6f6e6c79206d616e616765727360981b604482015290519081900360640190fd5b8060045414612f30576040805162461bcd60e51b81526020600482015260156024820152741ddc9bdb99c81c995dd85c9908195c1bd8da081a59605a1b604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615801590612f6c575060055460320181105b15612ff0577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d6c1dbee826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015612fd757600080fd5b505af1158015612feb573d6000803e3d6000fd5b505050505b6000818152600a6020908152604080832054600990925290912054600e549190039061301c9082613457565b600e556040805183815290517f5d05c64f281304391697cf987812e1a736413a062a9bdf39af4102209eb6fa589181900360200190a150600101600455565b60165460408051808201909152600e81526d696e666c6174696f6e206f6e6c7960901b6020820152906001600160a01b031633146130da5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561100f578181015183820152602001610ff7565b506013819055600f546130ed9082613457565b600f55426012556040805182815290517f187f32a0f765499f15b3bb52ed0aebf6015059f230f2ace7e701e60a476695959181900360200190a150565b606080600080601560009054906101000a90046001600160a01b03166001600160a01b031663e7c830d46040518163ffffffff1660e01b815260040160206040518083038186803b15801561317e57600080fd5b505afa158015613192573d6000803e3d6000fd5b505050506040513d60208110156131a857600080fd5b505190506131b686826134dc565b915081806131c357508086145b156131e95760006131d788888860006141d0565b90508060400151945080606001519350505b5093509350939050565b601554604080516339f20c3560e21b815290516000926001600160a01b03169163e7c830d4916004808301926020929190829003018186803b15801561323857600080fd5b505afa15801561324c573d6000803e3d6000fd5b505050506040513d602081101561326257600080fd5b5051905090565b6016546001600160a01b031690565b60155460408051637976d5ad60e11b81526004810184905290516000926001600160a01b03169163f2edab5a916024808301926020929190829003018186803b1580156132c457600080fd5b505afa1580156132d8573d6000803e3d6000fd5b505050506040513d60208110156132ee57600080fd5b505192915050565b60048054601554604080516339f20c3560e21b81529051929360009384936001600160a01b03169263e7c830d49281810192602092909190829003018186803b15801561334257600080fd5b505afa158015613356573d6000803e3d6000fd5b505050506040513d602081101561336c57600080fd5b505160408051808201909152601f81527f6e6f2065706f6368207769746820636c61696d61626c652072657761726473006020820152909150816133f15760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561100f578181015183820152602001610ff7565b50600181039150509091565b6000806134153460145461345790919063ffffffff16565b905047915080821115613449576134418161343b8460115461345790919063ffffffff16565b90614579565b601155613453565b8082101561345357fe5b9091565b6000828201838110156134b1576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60006134d7600d5461343b60115460105461345790919063ffffffff16565b905090565b60006004548310806134ee5750818310155b156134fb57506000612af0565b50600192915050565b61350c614887565b60155460408051637976d5ad60e11b81526004810186905290516000926001600160a01b03169163f2edab5a916024808301926020929190829003018186803b15801561355857600080fd5b505afa15801561356c573d6000803e3d6000fd5b505050506040513d602081101561358257600080fd5b5051905060006135938587806145d6565b9050600061359f6148af565b82156135c057856135bb576135b587898a614609565b60208201525b6135de565b6135cb88888661463c565b91506135d88789846147b2565b60208201525b82806135ee575060008160200151115b151581526017546040805163ed475a7960e01b81526001600160a01b038b811660048301526024820188905291516060938493169163ed475a79916044808301926000929190829003018186803b15801561364857600080fd5b505afa15801561365c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052608081101561368557600080fd5b8101908080516040519392919084600160201b8211156136a457600080fd5b9083019060208201858111156136b957600080fd5b82518660208202830111600160201b821117156136d557600080fd5b82525081516020918201928201910280838360005b838110156137025781810151838201526020016136ea565b5050505090500160405260200180516040519392919084600160201b82111561372a57600080fd5b90830190602082018581111561373f57600080fd5b82518660208202830111600160201b8211171561375b57600080fd5b82525081516020918201928201910280838360005b83811015613788578181015183820152602001613770565b5050505091909101604052505083518751949650929450919291506137b090505760006137b3565b60015b60ff16016001600160401b03811180156137cc57600080fd5b506040519080825280602002602001820160405280156137f6578160200160208202803683370190505b50808852516001600160401b038111801561381057600080fd5b5060405190808252806020026020018201604052801561383a578160200160208202803683370190505b5060208801528651516001600160401b038111801561385857600080fd5b50604051908082528060200260200182016040528015613882578160200160208202803683370190505b5060408801528651516001600160401b03811180156138a057600080fd5b506040519080825280602002602001820160405280156138ca578160200160208202803683370190505b50606088015282511561396e578987600001516000815181106138e957fe5b60200260200101906001600160a01b031690816001600160a01b03168152505084876060015160008151811061391b57fe5b60200260200101901515908115158152505083876020015160008151811061393f57fe5b6020026020010181815250508260200151876040015160008151811061396157fe5b6020026020010181815250505b815115613bca576017546040805163277166bf60e11b81526001600160a01b038d81166004830152602482018a905291516000939290921691634ee2cd7e91604480820192602092909190829003018186803b1580156139cd57600080fd5b505afa1580156139e1573d6000803e3d6000fd5b505050506040513d60208110156139f757600080fd5b5051905060005b8351811015613bc7576000818660000151613a1a576000613a1d565b60015b60ff16019050848281518110613a2f57fe5b60200260200101518a600001518281518110613a4757fe5b60200260200101906001600160a01b031690816001600160a01b031681525050613a858c868481518110613a7757fe5b60200260200101518f6145d6565b8a606001518281518110613a9557fe5b60200260200101901515908115158152505089606001518181518110613ab757fe5b602002602001015115613b09578a613b0457613ae78c868481518110613ad957fe5b60200260200101518f614609565b8a604001518281518110613af757fe5b6020026020010181815250505b613bbe565b613b50858381518110613b1857fe5b6020026020010151613b4a868581518110613b2f57fe5b602002602001015161271087613d149092919063ffffffff16565b8e614844565b8a602001518281518110613b6057fe5b602002602001018181525050613ba18c868481518110613b7c57fe5b60200260200101518c602001518481518110613b9457fe5b60200260200101516147b2565b8a604001518281518110613bb157fe5b6020026020010181815250505b506001016139fe565b50505b5050505050509392505050565b600080613bf26201517f60125461345790919063ffffffff16565b905080841115604051806040016040528060118152602001706166746572206461696c79206379636c6560781b81525090613c6e5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561100f578181015183820152602001610ff7565b50613c7d8361216d8387614579565b600101949350505050565b60006134d7613ca4600e54600c5461457990919063ffffffff16565b600f5490614579565b6000808211613d03576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381613d0c57fe5b049392505050565b6000808211613d5d576040805162461bcd60e51b815260206004820152601060248201526f4469766973696f6e206279207a65726f60801b604482015290519081900360640190fd5b83613d6a575060006134b1565b83830283858281613d7757fe5b041415613d9057828181613d8757fe5b049150506134b1565b6000838681613d9b57fe5b0490506000848781613da957fe5b0690506000858781613db757fe5b0490506000868881613dc557fe5b069050613e0d613dd98861216d8685613e1a565b613e07613de68686613e1a565b613e07613df38987613e1a565b613e078d613e018c8b613e1a565b90613e1a565b90613457565b9998505050505050505050565b600082613e2957506000612af0565b82820282848281613e3657fe5b04146134b15760405162461bcd60e51b81526004018080602001828103825260218152602001806148c76021913960400191505060405180910390fd5b600080805b8351518110156140485783606001518181518110613e9257fe5b602002602001015115613ea457614040565b600084600001518281518110613eb657fe5b60200260200101519050600085602001518381518110613ed257fe5b602002602001015190506000811115613f0f5760008781526006602090815260408083206001600160a01b03861684529091529020805482900390555b600086604001518481518110613f2157fe5b602002602001015190506000811115613f6a5760008881526007602090815260408083206001600160a01b0387168452909152902080548290039055600d805482019055938401935b60008881526008602090815260408083206001600160a01b038716845282528083203384529091529020805460ff1615613fdd576040805162461bcd60e51b815260206004820152600f60248201526e185b1c9958591e4818db185a5b5959608a1b604482015290519081900360640190fd5b805460ff1916600190811782558101829055604080518a81526020810184905281516001600160a01b03808e16933393918916927f6ec685171a9028d19dc155a48e7824e3c68b03bc8995410e006abe3cbbeb3e2d9281900390910190a4505050505b600101613e78565b50949350505050565b8015614120576040516000906001600160a01b0384169083908381818185875af1925050503d80600081146140a2576040519150601f19603f3d011682016040523d82523d6000602084013e6140a7565b606091505b50509050806040518060400160405280600c81526020016b18db185a5b4819985a5b195960a21b8152509061411d5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561100f578181015183820152602001610ff7565b50505b5050565b6001600160a01b0382166000908152600b6020526040812080545b80156141a65781546000199091019082908290811061415a57fe5b6000918252602090912001546201000090046001600160f01b031684106141a15781818154811061418757fe5b60009182526020909120015461ffff169250612af0915050565b61413f565b507f0000000000000000000000000000000000000000000000000000000000000000949350505050565b6141d8614887565b60155460408051637976d5ad60e11b81526004810187905290516000926001600160a01b03169163f2edab5a916024808301926020929190829003018186803b15801561422457600080fd5b505afa158015614238573d6000803e3d6000fd5b505050506040513d602081101561424e57600080fd5b50518451858452909150806001600160401b038111801561426e57600080fd5b50604051908082528060200260200182016040528015614298578160200160208202803683370190505b506020840152806001600160401b03811180156142b457600080fd5b506040519080825280602002602001820160405280156142de578160200160208202803683370190505b506040840152806001600160401b03811180156142fa57600080fd5b50604051908082528060200260200182016040528015614324578160200160208202803683370190505b50606084015260005b8181101561456e576143538787838151811061434557fe5b60200260200101518a6145d6565b8460600151828151811061436357fe5b6020026020010190151590811515815250508360600151818151811061438557fe5b6020026020010151156143d757846143d2576143b5878783815181106143a757fe5b60200260200101518a614609565b846040015182815181106143c557fe5b6020026020010181815250505b614566565b876001600160a01b03168682815181106143ed57fe5b60200260200101516001600160a01b031614156144305761440f88888561463c565b8460200151828151811061441f57fe5b602002602001018181525050614521565b60175486516000916001600160a01b03169063e64767aa908b908a908690811061445657fe5b6020026020010151876040518463ffffffff1660e01b815260040180846001600160a01b03168152602001836001600160a01b03168152602001828152602001935050505060206040518083038186803b1580156144b357600080fd5b505afa1580156144c7573d6000803e3d6000fd5b505050506040513d60208110156144dd57600080fd5b50518751909150614503908890849081106144f457fe5b6020026020010151828a614844565b8560200151838151811061451357fe5b602002602001018181525050505b6145498787838151811061453157fe5b602002602001015186602001518481518110613b9457fe5b8460400151828151811061455957fe5b6020026020010181815250505b60010161432d565b505050949350505050565b6000828211156145d0576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60009283526008602090815260408085206001600160a01b03948516865282528085209290931684525290205460ff1690565b60009283526008602090815260408085206001600160a01b03948516865282528085209290931684525290206001015490565b60175460408051634181ad4160e11b81526001600160a01b038681166004830152602482018590529151600093849316916383035a82916044808301926020929190829003018186803b15801561469257600080fd5b505afa1580156146a6573d6000803e3d6000fd5b505050506040513d60208110156146bc57600080fd5b505160175460408051631257fcdb60e31b81526001600160a01b03898116600483015260248201889052915193945060009391909216916392bfe6d8916044808301926020929190829003018186803b15801561471857600080fd5b505afa15801561472c573d6000803e3d6000fd5b505050506040513d602081101561474257600080fd5b50519050818114156147635761475a81612710613e1a565b925050506134b1565b81811161476c57fe5b600082156147825761478083612710613e1a565b015b600061478e8888614124565b905080156147a7576147a284840382613e1a565b820191505b509695505050505050565b6000816147c1575060006134b1565b60008481526007602090815260408083206001600160a01b0387168452909152902054806147f35760009150506134b1565b60008581526006602090815260408083206001600160a01b038816845290915290205483811415614826575090506134b1565b80841061482f57fe5b61483a828583613d14565b9695505050505050565b600082614853575060006134b1565b6000806148608685614124565b90506127108110156140485761487b85612710839003613e1a565b90910195945050505050565b6040518060800160405280606081526020016060815260200160608152602001606081525090565b60408051808201909152600080825260208201529056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f776665652070657263656e746167652063616e206e6f742062652075706461746564a26469706673582212206bff96e3719ccd67cd805c1ba4ed990c16d8488ac81ef2139618d2cdeae7757e64736f6c63430007060033",
1025
- "linkReferences": {},
1026
- "deployedLinkReferences": {}
1382
+ "bytecode": "0x60a06040523480156200001157600080fd5b5060405162005b8538038062005b85833981810160405260a08110156200003757600080fd5b508051602082015160408301516060840151608090940151929391929091908385806001600160a01b0381161562000074576200007481620000fd565b506001600160a01b038116620000c4576040805162461bcd60e51b815260206004820152601060248201526f5f676f7665726e616e6365207a65726f60801b604482015290519081900360640190fd5b506001600255620000d581620001c0565b5060609290921b6001600160601b031916608052600f556010555050600019600455620001e4565b600054600160a01b900460ff16156200015d576040805162461bcd60e51b815260206004820152601460248201527f696e697469616c6973656420213d2066616c7365000000000000000000000000604482015290519081900360640190fd5b60008054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b60805160601c61597462000211600039806114b852806116e45280613222528061326352506159746000f3fe6080604052600436106103505760003560e01c806384e10a90116101c6578063cfbcd25f116100f7578063e7c830d411610095578063ed39d3f81161006f578063ed39d3f814611353578063f2edab5a14611368578063f5a9838314611392578063f5f5ba72146113a757610350565b8063e7c830d4146112f0578063ea28edad14611305578063eb82dd7f1461131a57610350565b8063d6c1dbee116100d1578063d6c1dbee14611155578063e17f212e1461117f578063e273956314611194578063e416b7e1146111be57610350565b8063cfbcd25f1461101d578063d20bb54214611050578063d418634a1461112b57610350565b8063a9b79e1711610164578063b2c121921161013e578063b2c1219214610f25578063b482403414610f70578063b4a2043d14610f85578063c4db96191461100857610350565b8063a9b79e1714610c0d578063b00c0b7614610d6a578063b2af870a14610e9a57610350565b8063961c00ed116101a0578063961c00ed14610a6c5780639d6a890f14610aa55780639edbf00714610ad8578063a4472c1014610aed57610350565b806384e10a901461093957806385b4c538146109955780638dc305fa146109f157610350565b806333b7971e116102a0578063657d96951161023e57806369b91b591161021857806369b91b591461080b57806374e6310e1461083e5780637b6b2c0a146108f157806382a2b9051461090657610350565b8063657d96951461076857806367dcac53146107a157806367fc4029146107d757610350565b80635267a15d1161027a5780635267a15d146106f55780635aa6e6751461070a5780635ff270791461071f57806362354e031461075357610350565b806333b7971e146105ba5780633e7ff857146106cb57806351b42b00146106e057610350565b806312f97ac01161030d5780631de56098116102e75780631de560981461047757806321bb25af1461048c5780632dafdbbf146105725780633123b7d8146105a557610350565b806312f97ac01461041157806316e693281461042657806316fe49c71461046257610350565b806302fb0c5e146103555780630441218e1461037e57806306201f1d146103ac5780630cb72344146103b65780630f15f4c0146103e757806311a7aaaa146103fc575b600080fd5b34801561036157600080fd5b5061036a611431565b604080519115158252519081900360200190f35b34801561038a57600080fd5b5061039361143a565b6040805192835260208301919091528051918290030190f35b6103b461144e565b005b3480156103c257600080fd5b506103cb6114b6565b604080516001600160a01b039092168252519081900360200190f35b3480156103f357600080fd5b506103b46114da565b34801561040857600080fd5b506103cb6115a3565b34801561041d57600080fd5b506103cb6115b2565b34801561043257600080fd5b506104506004803603602081101561044957600080fd5b50356115c1565b60408051918252519081900360200190f35b34801561046e57600080fd5b5061045061169f565b34801561048357600080fd5b506103b46116a5565b34801561049857600080fd5b50610450600480360360a08110156104af57600080fd5b6001600160a01b038235811692602081013590911691810190606081016040820135600160201b8111156104e257600080fd5b8201836020820111156104f457600080fd5b803590602001918460208302840111600160201b8311171561051557600080fd5b919390929091602081019035600160201b81111561053257600080fd5b82018360208201111561054457600080fd5b803590602001918460208302840111600160201b8311171561056557600080fd5b919350915035151561180b565b34801561057e57600080fd5b50610587611897565b60408051938452602084019290925282820152519081900360600190f35b3480156105b157600080fd5b506104506118c2565b3480156105c657600080fd5b506105ed600480360360208110156105dd57600080fd5b50356001600160a01b03166118d1565b60405180806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b8381101561063557818101518382015260200161061d565b50505050905001848103835286818151815260200191508051906020019060200280838360005b8381101561067457818101518382015260200161065c565b50505050905001848103825285818151815260200191508051906020019060200280838360005b838110156106b357818101518382015260200161069b565b50505050905001965050505050505060405180910390f35b3480156106d757600080fd5b50610450611b25565b3480156106ec57600080fd5b506103b4611b2b565b34801561070157600080fd5b506103cb611b72565b34801561071657600080fd5b506103cb611b97565b34801561072b57600080fd5b506103b46004803603602081101561074257600080fd5b50356001600160e01b031916611c38565b34801561075f57600080fd5b506103cb611f9a565b34801561077457600080fd5b506103936004803603604081101561078b57600080fd5b50803590602001356001600160a01b0316611fb2565b3480156107ad57600080fd5b506103b4600480360360608110156107c457600080fd5b5080359060208101359060400135611fee565b3480156107e357600080fd5b506103b4600480360360208110156107fa57600080fd5b50356001600160e01b031916612056565b34801561081757600080fd5b506104506004803603602081101561082e57600080fd5b50356001600160a01b031661213e565b34801561084a57600080fd5b506108726004803603602081101561086157600080fd5b50356001600160e01b031916612157565b6040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156108b557818101518382015260200161089d565b50505050905090810190601f1680156108e25780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b3480156108fd57600080fd5b506104506121fd565b34801561091257600080fd5b506103b46004803603602081101561092957600080fd5b50356001600160a01b0316612203565b34801561094557600080fd5b5061094e6122f6565b60408051998a5260208a0198909852888801969096526060880194909452608087019290925260a086015260c085015260e084015261010083015251908190036101200190f35b3480156109a157600080fd5b506109d6600480360360608110156109b857600080fd5b508035906001600160a01b036020820135811691604001351661231c565b60408051921515835260208301919091528051918290030190f35b3480156109fd57600080fd5b506103b460048036036040811015610a1457600080fd5b810190602081018135600160201b811115610a2e57600080fd5b820183602082011115610a4057600080fd5b803590602001918460208302840111600160201b83111715610a6157600080fd5b919350915035612370565b348015610a7857600080fd5b5061045060048036036040811015610a8f57600080fd5b506001600160a01b03813516906020013561271e565b348015610ab157600080fd5b506103b460048036036020811015610ac857600080fd5b50356001600160a01b03166127a0565b348015610ae457600080fd5b506103cb612859565b348015610af957600080fd5b50610b2660048036036040811015610b1057600080fd5b506001600160a01b038135169060200135612868565b604051808060200180602001806020018515158152602001848103845288818151815260200191508051906020019060200280838360005b83811015610b76578181015183820152602001610b5e565b50505050905001848103835287818151815260200191508051906020019060200280838360005b83811015610bb5578181015183820152602001610b9d565b50505050905001848103825286818151815260200191508051906020019060200280838360005b83811015610bf4578181015183820152602001610bdc565b5050505090500197505050505050505060405180910390f35b348015610c1957600080fd5b506103b46004803603610120811015610c3157600080fd5b810190602081018135600160201b811115610c4b57600080fd5b820183602082011115610c5d57600080fd5b803590602001918460208302840111600160201b83111715610c7e57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b811115610ccd57600080fd5b820183602082011115610cdf57600080fd5b803590602001918460208302840111600160201b83111715610d0057600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550508235935050506020810135906001600160a01b036040820135169060608101359060808101359060a08101359060c001356128d2565b348015610d7657600080fd5b506103b460048036036040811015610d8d57600080fd5b810190602081018135600160201b811115610da757600080fd5b820183602082011115610db957600080fd5b803590602001918460208302840111600160201b83111715610dda57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b811115610e2957600080fd5b820183602082011115610e3b57600080fd5b803590602001918460208302840111600160201b83111715610e5c57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550612d21945050505050565b348015610ea657600080fd5b5061045060048036036040811015610ebd57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b811115610ee757600080fd5b820183602082011115610ef957600080fd5b803590602001918460208302840111600160201b83111715610f1a57600080fd5b509092509050612dcc565b348015610f3157600080fd5b5061045060048036036080811015610f4857600080fd5b506001600160a01b038135811691602081013590911690604081013590606001351515612e82565b348015610f7c57600080fd5b50610450612f08565b348015610f9157600080fd5b50610fb860048036036020811015610fa857600080fd5b50356001600160a01b0316612f0e565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610ff4578181015183820152602001610fdc565b505050509050019250505060405180910390f35b34801561101457600080fd5b506103cb6130b5565b34801561102957600080fd5b506104506004803603602081101561104057600080fd5b50356001600160a01b03166130c4565b34801561105c57600080fd5b506104506004803603606081101561107357600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561109d57600080fd5b8201836020820111156110af57600080fd5b803590602001918460208302840111600160201b831117156110d057600080fd5b919390929091602081019035600160201b8111156110ed57600080fd5b8201836020820111156110ff57600080fd5b803590602001918460208302840111600160201b8311171561112057600080fd5b5090925090506130db565b34801561113757600080fd5b506103936004803603602081101561114e57600080fd5b5035613156565b34801561116157600080fd5b506103b46004803603602081101561117857600080fd5b5035613175565b34801561118b57600080fd5b5061036a61334b565b3480156111a057600080fd5b506103b4600480360360208110156111b757600080fd5b503561335b565b3480156111ca57600080fd5b5061124e600480360360608110156111e157600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b81111561121057600080fd5b82018360208201111561122257600080fd5b803590602001918460208302840111600160201b8311171561124357600080fd5b5090925090506133b2565b6040518080602001806020018415158152602001838103835286818151815260200191508051906020019060200280838360005b8381101561129a578181015183820152602001611282565b50505050905001838103825285818151815260200191508051906020019060200280838360005b838110156112d95781810151838201526020016112c1565b505050509050019550505050505060405180910390f35b3480156112fc57600080fd5b50610450613418565b34801561131157600080fd5b506103b4613422565b34801561132657600080fd5b506103936004803603604081101561133d57600080fd5b50803590602001356001600160a01b03166134b5565b34801561135f57600080fd5b506103cb6134f1565b34801561137457600080fd5b506104506004803603602081101561138b57600080fd5b5035613500565b34801561139e57600080fd5b506103b461350b565b3480156113b357600080fd5b506113bc6135d2565b6040805160208082528351818301528351919283929083019185019080838360005b838110156113f65781810151838201526020016113de565b50505050905090810190601f1680156114235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60035460ff1681565b6000806114456135fd565b90939092509050565b61145661366d565b61145e6136bd565b601b5560185461146e9034613724565b60185561147961377e565b6040805134815290517f95c4e29cc99bc027cfc3cd719d6fd973d5f0317061885fbb322b9b17d8d35d379181900360200190a16114b461385e565b565b7f000000000000000000000000000000000000000000000000000000000000000081565b6114e26138aa565b601e546001600160a01b0316158015906115065750601c546001600160a01b031615155b801561151c5750601f546001600160a01b031615155b611561576040805162461bcd60e51b81526020600482015260116024820152701859191c995cdcd95cc81b9bdd081cd95d607a1b604482015290519081900360640190fd5b6003805460ff191660011790556040805130815290517f2d9c100169d5e24ef79d07ec273fcbbd5ce996a849ef0223f37c49f6418df84d9181900360200190a1565b601c546001600160a01b031681565b6020546001600160a01b031681565b60008073__$b9040dea2fd9c47e6b7e0e916053de4d6b$__63e937a562600f856115e9613909565b6040518463ffffffff1660e01b815260040180848152602001838152602001828152602001935050505060206040518083038186803b15801561162b57600080fd5b505af415801561163f573d6000803e3d6000fd5b505050506040513d602081101561165557600080fd5b50516040805185815260208101839052815192935033927fd89f05622c2dcb0b4fcaa19e62fc2a2b0923955685fb7b0c641467f764244abc929181900390910190a290505b919050565b600f5490565b600054600160b01b900460ff16806116c75750600054600160a81b900460ff16155b15611800576116d461394e565b60035460ff1615801561170f57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615155b801561171b5750600654155b80156117275750600554155b61176c576040805162461bcd60e51b81526020600482015260116024820152706e6f7420696e697469616c20737461746560781b604482015290519081900360640190fd5b61177f6001611779613909565b90613724565b600655601c5460408051633e7ff85760e01b815290516001600160a01b0390921691633e7ff85791600480820192602092909190829003018186803b1580156117c757600080fd5b505afa1580156117db573d6000803e3d6000fd5b505050506040513d60208110156117f157600080fd5b505160055560006004556114b4565b6114b4600036613983565b6000611815613b13565b60028054141561185a576040805162461bcd60e51b815260206004820152601f60248201526000805160206158d7833981519152604482015290519081900360640190fd5b60028055878761186a8282613b6a565b6118798a8a8a8a8a8a8a613bf7565b6001600255925061188c915061385e9050565b979650505050505050565b6000806000806017546118b760165460135461372490919063ffffffff16565b925092509250909192565b60006118cc613db4565b905090565b6060808073__$b9040dea2fd9c47e6b7e0e916053de4d6b$__6325459925600f866118fa613909565b6040518463ffffffff1660e01b815260040180848152602001836001600160a01b03168152602001828152602001935050505060006040518083038186803b15801561194557600080fd5b505af4158015611959573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052606081101561198257600080fd5b8101908080516040519392919084600160201b8211156119a157600080fd5b9083019060208201858111156119b657600080fd5b82518660208202830111600160201b821117156119d257600080fd5b82525081516020918201928201910280838360005b838110156119ff5781810151838201526020016119e7565b5050505090500160405260200180516040519392919084600160201b821115611a2757600080fd5b908301906020820185811115611a3c57600080fd5b82518660208202830111600160201b82111715611a5857600080fd5b82525081516020918201928201910280838360005b83811015611a85578181015183820152602001611a6d565b5050505090500160405260200180516040519392919084600160201b821115611aad57600080fd5b908301906020820185811115611ac257600080fd5b82518660208202830111600160201b82111715611ade57600080fd5b82525081516020918201928201910280838360005b83811015611b0b578181015183820152602001611af3565b505050509050016040525050509250925092509193909250565b60055490565b611b336138aa565b6003805460ff191690556040805130815290517fa391f4e911c33688045cc1f43dc17c05924f79ad72a8cf5a58cf00c3acc9090e9181900360200190a1565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e77195490565b60008054600160a81b900460ff16611bba576000546001600160a01b03166118cc565b73183faff6997c98a812a3b98748fc80241d08f3126001600160a01b031663732524946040518163ffffffff1660e01b815260040160206040518083038186803b158015611c0757600080fd5b505afa158015611c1b573d6000803e3d6000fd5b505050506040513d6020811015611c3157600080fd5b5051905090565b60408051630debfda360e41b8152336004820152905173183faff6997c98a812a3b98748fc80241d08f3129163debfda30916024808301926020929190829003018186803b158015611c8957600080fd5b505afa158015611c9d573d6000803e3d6000fd5b505050506040513d6020811015611cb357600080fd5b5051611cf6576040805162461bcd60e51b815260206004820152600d60248201526c37b7363c9032bc32b1baba37b960991b604482015290519081900360640190fd5b6001600160e01b0319811660009081526001602052604090208054611d62576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b8054421015611db8576040805162461bcd60e51b815260206004820152601960248201527f74696d656c6f636b3a206e6f7420616c6c6f7765642079657400000000000000604482015290519081900360640190fd5b6000816001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611e525780601f10611e2757610100808354040283529160200191611e52565b820191906000526020600020905b815481529060010190602001808311611e3557829003601f168201915b5050506001600160e01b0319861660009081526001602081905260408220828155949550909250611e8691508301826157b6565b50506000805460ff60b01b1916600160b01b178155604051825130918491819060208401908083835b60208310611ece5780518252601f199092019160209182019101611eaf565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611f30576040519150601f19603f3d011682016040523d82523d6000602084013e611f35565b606091505b50506000805460ff60b01b19169055604080516001600160e01b03198716815242602082015281519293507fa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438929081900390910190a1611f9481613dc5565b50505050565b73183faff6997c98a812a3b98748fc80241d08f31281565b60009182526007602090815260408084206001600160a01b0390931684529190529020546001600160801b0380821692600160801b9092041690565b611ff6613de2565b60006120028383613e35565b6015549091506120129082613724565b601555604080518581526020810183905281517f754fa5a3ace0438b80ec651f7d61e44f761a808ebd17d7ce70da619399611a08929181900390910190a150505050565b61205e6138aa565b6001600160e01b031981166000908152600160205260409020546120c9576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b604080516001600160e01b03198316815242602082015281517f7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8929181900390910190a16001600160e01b03198116600090815260016020819052604082208281559190612139908301826157b6565b505050565b60006121518261214c613e52565b613e72565b92915050565b600160208181526000928352604092839020805481840180548651600296821615610100026000190190911695909504601f810185900485028601850190965285855290949193929091908301828280156121f35780601f106121c8576101008083540402835291602001916121f3565b820191906000526020600020905b8154815290600101906020018083116121d657829003601f168201915b5050505050905082565b60045481565b600054600160b01b900460ff16806122255750600054600160a81b900460ff16155b156122e85761223261394e565b6020546001600160a01b03161561227e576040805162461bcd60e51b815260206004820152600b60248201526a185b1c9958591e481cd95d60aa1b604482015290519081900360640190fd5b6001600160a01b0381166122c8576040805162461bcd60e51b815260206004820152600c60248201526b61646472657373207a65726f60a01b604482015290519081900360640190fd5b602080546001600160a01b0319166001600160a01b0383161790556122f3565b6122f3600036613983565b50565b601254601354601454601554601654601754601854601954601a54909192939495969798565b60008061232a858585613e95565b6000958652600a602090815260408088206001600160a01b039788168952825280882095909616875293909352505091205490916101009091046001600160801b031690565b612378613b13565b6002805414156123bd576040805162461bcd60e51b815260206004820152601f60248201526000805160206158d7833981519152604482015290519081900360640190fd5b600280556123c96136bd565b5060005b82811015612401576123f98484838181106123e457fe5b905060200201356001600160a01b0316613ed7565b6001016123cd565b50600061240c613909565b90506124188282613f23565b612459576040805162461bcd60e51b815260206004820152600d60248201526c6e6f7420636c61696d61626c6560981b604482015290519081900360640190fd5b601d546040805163712441d960e11b81523360048201818152602483019384526044830188905260009485946001600160a01b039091169363e24883b293928b928b92606401846020850280828437600081840152601f19601f82011690508083019250505094505050505060006040518083038186803b1580156124dd57600080fd5b505afa1580156124f1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604090815281101561251a57600080fd5b8101908080516040519392919084600160201b82111561253957600080fd5b90830190602082018581111561254e57600080fd5b82518660208202830111600160201b8211171561256a57600080fd5b82525081516020918201928201910280838360005b8381101561259757818101518382015260200161257f565b50505050919091016040525060200151929450919250600091506125bb9050613e52565b905060005b868110156126f65760008888838181106125d657fe5b905060200201356001600160a01b0316905060008583815181106125f657fe5b60200260200101519050600061260e83838b88613f45565b9050816001600160a01b0316836001600160a01b0316146126375761263582838b88613f45565b015b60408051808201909152601881527f636c61696d656420616d6f756e7420746f6f20736d616c6c000000000000000060208201526126789082908890613fe9565b905080156126eb57601f546040805163b760faf960e01b81526001600160a01b0385811660048301529151919092169163b760faf991849160248082019260009290919082900301818588803b1580156126d157600080fd5b505af11580156126e5573d6000803e3d6000fd5b50505050505b5050506001016125c0565b5061270c336127058489614080565b60006140d9565b5050600160025550612139905061385e565b600081612729613db4565b111580156127455750600f5461274190611779613909565b8211155b61278d576040805162461bcd60e51b81526020600482015260146024820152730d2dcecc2d8d2c840e4caeec2e4c840cae0dec6d60631b604482015290519081900360640190fd5b612799600f84846141f4565b9392505050565b600054600160a01b900460ff16156127f6576040805162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b604482015290519081900360640190fd5b60008054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b601f546001600160a01b031681565b6060806060600080612878613909565b90506128848682613f23565b9150818061289e5750808614801561289e57506004548610155b156128c85760006128b188886000614287565b805160408201516060909201519097509095509350505b5092959194509250565b6128da613de2565b86158015906128e95750885115155b6128ef57fe5b6000838152600c6020526040812082905561290a8584613e35565b905060008a5167ffffffffffffffff8111801561292657600080fd5b50604051908082528060200260200182016040528015612950578160200160208202803683370190505b509050818160008151811061296157fe5b602002602001018181525050888a60008151811061297b57fe5b60209081029190910101528a51600019015b60008c828151811061299b57fe5b602002602001015190506129f58c83815181106129b457fe5b60200260200101518d6000815181106129c957fe5b6020026020010151856000815181106129de57fe5b602002602001015161484a9092919063ffffffff16565b838381518110612a0157fe5b60209081029190910181019190915260008881526007825260408082206001600160a01b0385168352909252208351612a4d90859085908110612a4057fe5b602002602001015161494a565b81546001600160801b031981166001600160801b039182169290920116178155601f5460408051631257fcdb60e31b81526001600160a01b038581166004830152602482018a9052915160009392909216916392bfe6d891604480820192602092909190829003018186803b158015612ac557600080fd5b505afa158015612ad9573d6000803e3d6000fd5b505050506040513d6020811015612aef57600080fd5b50519050612b07612b0282612710614080565b61494a565b82546001600160801b03918216600160801b0291161782558451859085908110612b2d57fe5b60209081029190910181015160008b81526009835260408082206001600160a01b03881680845290855281832080549094019093558c82526008845280822092825291909252902054612ba05760008981526008602090815260408083206001600160a01b038716845290915290208190555b83612bad57505050612c1f565b848481518110612bb957fe5b602002602001015185600081518110612bce57fe5b6020026020010181815103915081815250508d8481518110612bec57fe5b60200260200101518e600081518110612c0157fe5b6020908102919091010180519190910390525050506000190161298d565b6000868152600d60205260409020805484019055601254612c409084613724565b601281905550876001600160a01b03167f8b2bc56c62594afde5b520e83e1ca19ebd071798db21382e328014f47b31ce578a8e85604051808481526020018060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015612cbe578181015183820152602001612ca6565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015612cfd578181015183820152602001612ce5565b505050509050019550505050505060405180910390a2505050505050505050505050565b612d29611b72565b6001600160a01b0316336001600160a01b031614612d85576040805162461bcd60e51b815260206004820152601460248201527337b7363c9030b2323932b9b9903ab83230ba32b960611b604482015290519081900360640190fd5b612dbe612db983836040518060400160405280600e81526020016d20b2323932b9b9aab83230ba32b960911b81525061498e565b614ab2565b612dc88282614ad6565b5050565b6000612dd6613b13565b600280541415612e1b576040805162461bcd60e51b815260206004820152601f60248201526000805160206158d7833981519152604482015290519081900360640190fd5b600280556000805b83811015612e6357848482818110612e3757fe5b90506020020135821015612e5b57848482818110612e5157fe5b9050602002013591505b600101612e23565b50612e713386836000614c21565b60016002559150612799905061385e565b6000612e8c613b13565b600280541415612ed1576040805162461bcd60e51b815260206004820152601f60248201526000805160206158d7833981519152604482015290519081900360640190fd5b600280558484612ee18282613b6a565b612eed87878787614c21565b60016002559250612f00915061385e9050565b949350505050565b60105490565b6060600080612f1b6135fd565b909250905060018282030160008167ffffffffffffffff81118015612f3f57600080fd5b50604051908082528060200260200182016040528015612f69578160200160208202803683370190505b5090506000805b83811015613016576000612f88898389016001614287565b905060005b81606001515181101561300c5781606001518181518110612faa57fe5b6020026020010151158015612fd65750600082604001518281518110612fcc57fe5b6020026020010151115b15613004576001858481518110612fe957fe5b9115156020928302919091019091015260019093019261300c565b600101612f8d565b5050600101612f70565b508067ffffffffffffffff8111801561302e57600080fd5b50604051908082528060200260200182016040528015613058578160200160208202803683370190505b5095506000805b848110156130a95783818151811061307357fe5b6020026020010151156130a15780870188838151811061308f57fe5b60209081029190910101526001909101905b60010161305f565b50505050505050919050565b601d546001600160a01b031681565b6000612151826130d2613909565b600f91906141f4565b60006130e5613b13565b60028054141561312a576040805162461bcd60e51b815260206004820152601f60248201526000805160206158d7833981519152604482015290519081900360640190fd5b6002805561313e3387878787876000613bf7565b6001600255905061314d61385e565b95945050505050565b6000908152600d6020908152604080832054600e909252909120549091565b601c546001600160a01b031633148061319857506020546001600160a01b031633145b6131d9576040805162461bcd60e51b815260206004820152600d60248201526c6f6e6c79206d616e616765727360981b604482015290519081900360640190fd5b8060055414613220576040805162461bcd60e51b815260206004820152600e60248201526d1ddc9bdb99c8195c1bd8da081a5960921b604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161580159061325c575060065460320181105b156132e0577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d6c1dbee826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156132c757600080fd5b505af11580156132db573d6000803e3d6000fd5b505050505b6000818152600e6020908152604080832054600d909252909120546014549190039061330c9082613724565b6014556040805183815290517f5d05c64f281304391697cf987812e1a736413a062a9bdf39af4102209eb6fa589181900360200190a150600101600555565b600054600160a81b900460ff1681565b61336361366d565b601a8190556017546133759082613724565b601755426019556040805182815290517f187f32a0f765499f15b3bb52ed0aebf6015059f230f2ace7e701e60a476695959181900360200190a150565b6060806000806133c0613909565b90506133cc8782613f23565b915081806133e6575080871480156133e657506004548710155b1561340d5760006133fb898989896000614c9e565b90508060400151945080606001519350505b509450945094915050565b60006118cc613909565b61342a6138aa565b60001960045414613474576040805162461bcd60e51b815260206004820152600f60248201526e185b1c9958591e48195b98589b1959608a1b604482015290519081900360640190fd5b61347c613909565b600481905560408051918252517f1cfb844c44f9325fc9ad6cc6191a4a24b0415137fe300b6c9071523a253f7a089181900360200190a1565b60008281526009602090815260408083206001600160a01b03909416808452938252808320549483526008825280832093835292905220549091565b601e546001600160a01b031690565b60006121518261507a565b6135136138aa565b600054600160a81b900460ff1615613572576040805162461bcd60e51b815260206004820152601a60248201527f616c726561647920696e2070726f64756374696f6e206d6f6465000000000000604482015290519081900360640190fd5b60008054600161ff0160a01b031916600160a81b1790556040805173183faff6997c98a812a3b98748fc80241d08f312815290517f83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c9181900360200190a1565b604080518082019091526011815270233a39b7a932bbb0b93226b0b730b3b2b960791b602082015290565b60055460008061360b613909565b905060008111613662576040805162461bcd60e51b815260206004820152601f60248201527f6e6f2065706f6368207769746820636c61696d61626c65207265776172647300604482015290519081900360640190fd5b600181039150509091565b601e546001600160a01b031633146114b4576040805162461bcd60e51b815260206004820152600e60248201526d696e666c6174696f6e206f6e6c7960901b604482015290519081900360640190fd5b601b546000906136cd9034613724565b905047818111156137165761dead6108fc6136e8838561510c565b6040518115909202916000818181858888f19350505050158015613710573d6000803e3d6000fd5b50613720565b8181101561372057fe5b5090565b600082820183811015612799576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006137a360165461379d60145460155461372490919063ffffffff16565b9061510c565b905080156122f35760006137ba476014606461484a565b90506000818311156137cd5750806137d0565b50815b8015612139576016546137e39082613724565b601655601b546137f3908261510c565b601b5560405161dead9082156108fc029083906000818181858888f19350505050158015613825573d6000803e3d6000fd5b506040805182815290517f44d5cd18c37b86a3423952287006d9550ab3cff404d6e899d5499d9ef87100b59181900360200190a1505050565b613866615169565b47146114b4576040805162461bcd60e51b815260206004820152600e60248201526d6f7574206f662062616c616e636560901b604482015290519081900360640190fd5b6138b2611b97565b6001600160a01b0316336001600160a01b0316146114b4576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b601c54604080516339f20c3560e21b815290516000926001600160a01b03169163e7c830d4916004808301926020929190829003018186803b158015611c0757600080fd5b600054600160b01b900460ff161561397b5733301461396957fe5b6000805460ff60b01b191690556114b4565b6114b46138aa565b61398b6138aa565b600082359050600073183faff6997c98a812a3b98748fc80241d08f3126001600160a01b0316636221a54b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156139e057600080fd5b505afa1580156139f4573d6000803e3d6000fd5b505050506040513d6020811015613a0a57600080fd5b505160408051808201825242830180825282516020601f89018190048102820181019094528781529394509290918281019190889088908190840183828082843760009201829052509390945250506001600160e01b03198616815260016020818152604090922084518155848301518051919450613a8e939285019201906157fa565b509050507fed948300a3694aa01d4a6b258bfd664350193d770c0b51f8387277f6d83ea3b68382878760405180856001600160e01b0319168152602001848152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f191690920182900397509095505050505050a15050505050565b60035460ff166114b4576040805162461bcd60e51b815260206004820152601a60248201527f726577617264206d616e61676572206465616374697661746564000000000000604482015290519081900360640190fd5b336001600160a01b0383161415613b8057612dc8565b601d546040805163ce2caa5760e01b81523360048201526001600160a01b03858116602483015284811660448301529151919092169163ce2caa57916064808301926000929190829003018186803b158015613bdb57600080fd5b505afa158015613bef573d6000803e3d6000fd5b505050505050565b6000613c0287613ed7565b613c0a6136bd565b506002601f546040805163f683776760e01b81526001600160a01b038c811660048301529151919092169163f6837767916024808301926020929190829003018186803b158015613c5a57600080fd5b505afa158015613c6e573d6000803e3d6000fd5b505050506040513d6020811015613c8457600080fd5b505114613cd8576040805162461bcd60e51b815260206004820152601860248201527f6578706c696369742064656c65676174696f6e206f6e6c790000000000000000604482015290519081900360640190fd5b6000613ce2613909565b905060005b86811015613d9c57613d0b888883818110613cfe57fe5b9050602002013583613f23565b613d1457613d94565b6000613d368b8a8a85818110613d2657fe5b9050602002013589896001614c9e565b90506000613d5a8c8c8c8c87818110613d4b57fe5b90506020020135856001615188565b905080600e60008c8c87818110613d6d57fe5b60209081029290920135835250810191909152604001600020805490910190559390930192505b600101613ce7565b50613da88883856140d9565b50979650505050505050565b600654600090612151906001615400565b3d604051818101604052816000823e8215613dde578181f35b8181fd5b601c546001600160a01b031633146114b4576040805162461bcd60e51b81526020600482015260116024820152706674736f206d616e61676572206f6e6c7960781b604482015290519081900360640190fd5b6000612799613e448385615426565b613e4c6154a5565b906154c4565b60006118cc600454613e6d613e65613db4565b60055461552b565b61552b565b6001600160a01b0382166000908152600b6020526040812054612799908361552b565b6000838152600a602090815260408083206001600160a01b038087168552908352818420908516845290915281205460ff1680612f005750612f008483615542565b6001600160a01b0381166122f3576040805162461bcd60e51b815260206004820152600e60248201526d726563697069656e74207a65726f60901b604482015290519081900360640190fd5b60006004548310158015613f3957506005548310155b80156127995750501190565b600080613f528684613e72565b90505b838111613f9f576000613f6a87836001614287565b90506000613f7c888885856000615188565b6000848152600e6020526040902080548201905593909301925050600101613f55565b506001600160a01b0385166000908152600b6020526040902054600184011115612f00576001600160a01b0385166000908152600b60205260409020600184019055949350505050565b600081848411156140785760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561403d578181015183820152602001614025565b50505050905090810190601f16801561406a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008261408f57506000612151565b8282028284828161409c57fe5b04146127995760405162461bcd60e51b815260040180806020018281038252602181526020018061591e6021913960400191505060405180910390fd5b81156141eb57801561415457601f546040805163b760faf960e01b81526001600160a01b0386811660048301529151919092169163b760faf991859160248082019260009290919082900301818588803b15801561413657600080fd5b505af115801561414a573d6000803e3d6000fd5b50505050506141eb565b6040516000906001600160a01b0385169084908381818185875af1925050503d806000811461419f576040519150601f19603f3d011682016040523d82523d6000602084013e6141a4565b606091505b50509050806141e9576040805162461bcd60e51b815260206004820152600c60248201526b18db185a5b4819985a5b195960a21b604482015290519081900360640190fd5b505b505047601b5550565b6001600160a01b0382166000908152600284016020526040812080545b80156142785781546000199091019082908290811061422c57fe5b6000918252602090912001546201000090046001600160f01b031684106142735781818154811061425957fe5b60009182526020909120015461ffff169250612799915050565b614211565b50505060018301549392505050565b61428f615882565b600061429a8461507a565b90506000806142a76158aa565b6142b18789615542565b156142bf5750505050612799565b60008781526009602090815260408083206001600160a01b038c1684529091529020541515806142ed575085155b1561431f576142fd88888661555e565b915061430a8789846156d4565b6001600160801b031660208201819052151592505b601f546040805163ed475a7960e01b81526001600160a01b038b811660048301526024820188905291516060938493169163ed475a79916044808301926000929190829003018186803b15801561437557600080fd5b505afa158015614389573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260808110156143b257600080fd5b8101908080516040519392919084600160201b8211156143d157600080fd5b9083019060208201858111156143e657600080fd5b82518660208202830111600160201b8211171561440257600080fd5b82525081516020918201928201910280838360005b8381101561442f578181015183820152602001614417565b5050505090500160405260200180516040519392919084600160201b82111561445757600080fd5b90830190602082018581111561446c57600080fd5b82518660208202830111600160201b8211171561448857600080fd5b82525081516020918201928201910280838360005b838110156144b557818101518382015260200161449d565b5050505091909101604052505083519395509193508791506144da90505760006144dd565b60015b60ff160167ffffffffffffffff811180156144f757600080fd5b50604051908082528060200260200182016040528015614521578160200160208202803683370190505b508088525167ffffffffffffffff8111801561453c57600080fd5b50604051908082528060200260200182016040528015614566578160200160208202803683370190505b50602088015286515167ffffffffffffffff8111801561458557600080fd5b506040519080825280602002602001820160405280156145af578160200160208202803683370190505b50604088015286515167ffffffffffffffff811180156145ce57600080fd5b506040519080825280602002602001820160405280156145f8578160200160208202803683370190505b50606088015284156146805789876000015160008151811061461657fe5b60200260200101906001600160a01b031690816001600160a01b03168152505083876020015160008151811061464857fe5b60200260200101818152505082602001516001600160801b0316876040015160008151811061467357fe5b6020026020010181815250505b81511561483d57601f546040805163277166bf60e11b81526001600160a01b038d81166004830152602482018a905291516000939290921691634ee2cd7e91604480820192602092909190829003018186803b1580156146df57600080fd5b505afa1580156146f3573d6000803e3d6000fd5b505050506040513d602081101561470957600080fd5b5051905060005b835181101561483a576000818861472857600061472b565b60015b60ff1601905084828151811061473d57fe5b60200260200101518a60000151828151811061475557fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506147bc85838151811061478457fe5b60200260200101516147b686858151811061479b57fe5b60200260200101516127108761484a9092919063ffffffff16565b8e615771565b8a6020015182815181106147cc57fe5b60200260200101818152505061480d8c8684815181106147e857fe5b60200260200101518c60200151848151811061480057fe5b60200260200101516156d4565b6001600160801b03168a60400151828151811061482657fe5b602090810291909101015250600101614710565b50505b5050505050509392505050565b6000808211614893576040805162461bcd60e51b815260206004820152601060248201526f4469766973696f6e206279207a65726f60801b604482015290519081900360640190fd5b836148a057506000612799565b838302838582816148ad57fe5b0414156148c6578281816148bd57fe5b04915050612799565b60008386816148d157fe5b04905060008487816148df57fe5b06905060008587816148ed57fe5b04905060008688816148fb57fe5b06905061493d61490f88613e4c8685614080565b61177961491c8686614080565b6117796149298987614080565b6117798d6149378c8b614080565b90614080565b9998505050505050505050565b6000600160801b82106137205760405162461bcd60e51b81526004018080602001828103825260278152602001806158f76027913960400191505060405180910390fd5b600080826040516020018080602001828103825283818151815260200191508051906020019080838360005b838110156149d25781810151838201526020016149ba565b50505050905090810190601f1680156149ff5780820380516001836020036101000a031916815260200191505b50925050506040516020818303038152906040528051906020012090506000805b8651811015614a6757868181518110614a3557fe5b6020026020010151831415614a5f57858181518110614a5057fe5b60200260200101519150614a67565b600101614a20565b506001600160a01b03811661314d576040805162461bcd60e51b815260206004820152600c60248201526b61646472657373207a65726f60a01b604482015290519081900360640190fd5b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b614b0282826040518060400160405280600981526020016824b7333630ba34b7b760b91b81525061498e565b601e60006101000a8154816001600160a01b0302191690836001600160a01b03160217905550614b5682826040518060400160405280600b81526020016a233a39b7a6b0b730b3b2b960a91b81525061498e565b601c60006101000a8154816001600160a01b0302191690836001600160a01b03160217905550614ba382826040518060400160405280600481526020016315d3985d60e21b81525061498e565b601f60006101000a8154816001600160a01b0302191690836001600160a01b03160217905550614bfd82826040518060400160405280601181526020017021b630b4b6a9b2ba3ab826b0b730b3b2b960791b81525061498e565b601d80546001600160a01b0319166001600160a01b03929092169190911790555050565b6000614c2c84613ed7565b614c346136bd565b506000614c3f613909565b9050808410158015614c515750600081115b15614c5d576001810393505b614c678482613f23565b614c75576000915050612f00565b614c88868686614c83613e52565b613f45565b9150614c958583856140d9565b50949350505050565b614ca6615882565b6000614cb18661507a565b6040805160208088028281018201909352878252929350869290918891849182918501908490808284376000920191909152505050908452508067ffffffffffffffff81118015614d0157600080fd5b50604051908082528060200260200182016040528015614d2b578160200160208202803683370190505b5060208401528067ffffffffffffffff81118015614d4857600080fd5b50604051908082528060200260200182016040528015614d72578160200160208202803683370190505b5060408401528067ffffffffffffffff81118015614d8f57600080fd5b50604051908082528060200260200182016040528015614db9578160200160208202803683370190505b50606084015260005b8181101561506e57614df088888884818110614dda57fe5b905060200201356001600160a01b03168b613e95565b84606001518281518110614e0057fe5b60200260200101901515908115158152505083606001518181518110614e2257fe5b602002602001015115614eb75784614eb2576000888152600a6020526040812090888884818110614e4f57fe5b602090810292909201356001600160a01b039081168452838301949094525060409182016000908120938d16815292905290819020549085015180516101009092046001600160801b03169183908110614ea557fe5b6020026020010181815250505b615066565b886001600160a01b0316878783818110614ecd57fe5b905060200201356001600160a01b03166001600160a01b03161415614f1857614ef789898561555e565b84602001518281518110614f0757fe5b602002602001018181525050615010565b601f546000906001600160a01b031663e64767aa8b8a8a86818110614f3957fe5b905060200201356001600160a01b0316876040518463ffffffff1660e01b815260040180846001600160a01b03168152602001836001600160a01b03168152602001828152602001935050505060206040518083038186803b158015614f9e57600080fd5b505afa158015614fb2573d6000803e3d6000fd5b505050506040513d6020811015614fc857600080fd5b50519050614ff2888884818110614fdb57fe5b905060200201356001600160a01b0316828b615771565b8560200151838151811061500257fe5b602002602001018181525050505b6150408888888481811061502057fe5b905060200201356001600160a01b03168660200151848151811061480057fe5b6001600160801b03168460400151828151811061505957fe5b6020026020010181815250505b600101614dc2565b50505095945050505050565b6000818152600c60205260409020548061169a57601c5460408051637976d5ad60e11b81526004810185905290516001600160a01b039092169163f2edab5a91602480820192602092909190829003018186803b1580156150da57600080fd5b505afa1580156150ee573d6000803e3d6000fd5b505050506040513d602081101561510457600080fd5b505192915050565b600082821115615163576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60006118cc60165461379d60135460185461510c90919063ffffffff16565b600080805b8451518110156153f557846060015181815181106151a757fe5b6020026020010151156151b9576153ed565b6000856000015182815181106151cb57fe5b60209081029190910181015160008981526007835260408082206001600160a01b038416835284528120928901518051929450909161520f919086908110612a4057fe5b90506001600160801b038116156152405781546001600160801b03600160801b808304821684900382160291161782555b600061525589604001518681518110612a4057fe5b90506001600160801b038116156152985782546001600160801b031981166001600160801b03918216839003821617845560138054918316918201905595909501945b8715615382576000600a60008c81526020019081526020016000206000866001600160a01b03166001600160a01b0316815260200190815260200160002060008e6001600160a01b03166001600160a01b0316815260200190815260200160002090508060000160009054906101000a900460ff1615615351576040805162461bcd60e51b815260206004820152600f60248201526e185b1c9958591e4818db185a5b5959608a1b604482015290519081900360640190fd5b8054600160ff199091161770ffffffffffffffffffffffffffffffff0019166101006001600160801b038416021790555b8a6001600160a01b03168c6001600160a01b0316856001600160a01b03167f6ec685171a9028d19dc155a48e7824e3c68b03bc8995410e006abe3cbbeb3e2d8d8560405180838152602001826001600160801b031681526020019250505060405180910390a4505050505b60010161518d565b509695505050505050565b600080838311156154165750600090508061541f565b50600190508183035b9250929050565b6000806154416201517f60195461372490919063ffffffff16565b90508084111561548c576040805162461bcd60e51b81526020600482015260116024820152706166746572206461696c79206379636c6560781b604482015290519081900360640190fd5b61549a83613e4c838761510c565b600101949350505050565b60006118cc60155461379d60125460175461510c90919063ffffffff16565b600080821161551a576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161552357fe5b049392505050565b60008183101561553b5781612799565b5090919050565b6001600160a01b03166000908152600b60205260409020541190565b601f5460408051634181ad4160e11b81526001600160a01b038681166004830152602482018590529151600093849316916383035a82916044808301926020929190829003018186803b1580156155b457600080fd5b505afa1580156155c8573d6000803e3d6000fd5b505050506040513d60208110156155de57600080fd5b5051601f5460408051631257fcdb60e31b81526001600160a01b03898116600483015260248201889052915193945060009391909216916392bfe6d8916044808301926020929190829003018186803b15801561563a57600080fd5b505afa15801561564e573d6000803e3d6000fd5b505050506040513d602081101561566457600080fd5b50519050818114156156855761567c81612710614080565b92505050612799565b81811161568e57fe5b600082156156a4576156a283612710614080565b015b60006156b2600f89896141f4565b905080156153f5576156c684840382614080565b909101979650505050505050565b6000816156e357506000612799565b60008481526007602090815260408083206001600160a01b0387168452909152902080546001600160801b03168061572057600092505050612799565b8154600160801b90046001600160801b031684811415615744575091506127999050565b806001600160801b0316851061575657fe5b61188c612b026001600160801b03848116908890851661484a565b60008261578057506000612799565b60008061578f600f87866141f4565b9050612710811015614c95576157aa85612710839003614080565b90910195945050505050565b50805460018160011615610100020316600290046000825580601f106157dc57506122f3565b601f0160209004906000526020600020908101906122f391906158c1565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826158305760008555615876565b82601f1061584957805160ff1916838001178555615876565b82800160010185558215615876579182015b8281111561587657825182559160200191906001019061585b565b506137209291506158c1565b6040518060800160405280606081526020016060815260200160608152602001606081525090565b604080518082019091526000808252602082015290565b5b8082111561372057600081556001016158c256fe5265656e7472616e637947756172643a207265656e7472616e742063616c6c0053616665436173743a2076616c756520646f65736e27742066697420696e203132382062697473536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220519af7979c09fa4e7bda9cc896c4530aa2881881c12808a0e0e53a10257a5a8364736f6c63430007060033",
1383
+ "deployedBytecode": "0x6080604052600436106103505760003560e01c806384e10a90116101c6578063cfbcd25f116100f7578063e7c830d411610095578063ed39d3f81161006f578063ed39d3f814611353578063f2edab5a14611368578063f5a9838314611392578063f5f5ba72146113a757610350565b8063e7c830d4146112f0578063ea28edad14611305578063eb82dd7f1461131a57610350565b8063d6c1dbee116100d1578063d6c1dbee14611155578063e17f212e1461117f578063e273956314611194578063e416b7e1146111be57610350565b8063cfbcd25f1461101d578063d20bb54214611050578063d418634a1461112b57610350565b8063a9b79e1711610164578063b2c121921161013e578063b2c1219214610f25578063b482403414610f70578063b4a2043d14610f85578063c4db96191461100857610350565b8063a9b79e1714610c0d578063b00c0b7614610d6a578063b2af870a14610e9a57610350565b8063961c00ed116101a0578063961c00ed14610a6c5780639d6a890f14610aa55780639edbf00714610ad8578063a4472c1014610aed57610350565b806384e10a901461093957806385b4c538146109955780638dc305fa146109f157610350565b806333b7971e116102a0578063657d96951161023e57806369b91b591161021857806369b91b591461080b57806374e6310e1461083e5780637b6b2c0a146108f157806382a2b9051461090657610350565b8063657d96951461076857806367dcac53146107a157806367fc4029146107d757610350565b80635267a15d1161027a5780635267a15d146106f55780635aa6e6751461070a5780635ff270791461071f57806362354e031461075357610350565b806333b7971e146105ba5780633e7ff857146106cb57806351b42b00146106e057610350565b806312f97ac01161030d5780631de56098116102e75780631de560981461047757806321bb25af1461048c5780632dafdbbf146105725780633123b7d8146105a557610350565b806312f97ac01461041157806316e693281461042657806316fe49c71461046257610350565b806302fb0c5e146103555780630441218e1461037e57806306201f1d146103ac5780630cb72344146103b65780630f15f4c0146103e757806311a7aaaa146103fc575b600080fd5b34801561036157600080fd5b5061036a611431565b604080519115158252519081900360200190f35b34801561038a57600080fd5b5061039361143a565b6040805192835260208301919091528051918290030190f35b6103b461144e565b005b3480156103c257600080fd5b506103cb6114b6565b604080516001600160a01b039092168252519081900360200190f35b3480156103f357600080fd5b506103b46114da565b34801561040857600080fd5b506103cb6115a3565b34801561041d57600080fd5b506103cb6115b2565b34801561043257600080fd5b506104506004803603602081101561044957600080fd5b50356115c1565b60408051918252519081900360200190f35b34801561046e57600080fd5b5061045061169f565b34801561048357600080fd5b506103b46116a5565b34801561049857600080fd5b50610450600480360360a08110156104af57600080fd5b6001600160a01b038235811692602081013590911691810190606081016040820135600160201b8111156104e257600080fd5b8201836020820111156104f457600080fd5b803590602001918460208302840111600160201b8311171561051557600080fd5b919390929091602081019035600160201b81111561053257600080fd5b82018360208201111561054457600080fd5b803590602001918460208302840111600160201b8311171561056557600080fd5b919350915035151561180b565b34801561057e57600080fd5b50610587611897565b60408051938452602084019290925282820152519081900360600190f35b3480156105b157600080fd5b506104506118c2565b3480156105c657600080fd5b506105ed600480360360208110156105dd57600080fd5b50356001600160a01b03166118d1565b60405180806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b8381101561063557818101518382015260200161061d565b50505050905001848103835286818151815260200191508051906020019060200280838360005b8381101561067457818101518382015260200161065c565b50505050905001848103825285818151815260200191508051906020019060200280838360005b838110156106b357818101518382015260200161069b565b50505050905001965050505050505060405180910390f35b3480156106d757600080fd5b50610450611b25565b3480156106ec57600080fd5b506103b4611b2b565b34801561070157600080fd5b506103cb611b72565b34801561071657600080fd5b506103cb611b97565b34801561072b57600080fd5b506103b46004803603602081101561074257600080fd5b50356001600160e01b031916611c38565b34801561075f57600080fd5b506103cb611f9a565b34801561077457600080fd5b506103936004803603604081101561078b57600080fd5b50803590602001356001600160a01b0316611fb2565b3480156107ad57600080fd5b506103b4600480360360608110156107c457600080fd5b5080359060208101359060400135611fee565b3480156107e357600080fd5b506103b4600480360360208110156107fa57600080fd5b50356001600160e01b031916612056565b34801561081757600080fd5b506104506004803603602081101561082e57600080fd5b50356001600160a01b031661213e565b34801561084a57600080fd5b506108726004803603602081101561086157600080fd5b50356001600160e01b031916612157565b6040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156108b557818101518382015260200161089d565b50505050905090810190601f1680156108e25780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b3480156108fd57600080fd5b506104506121fd565b34801561091257600080fd5b506103b46004803603602081101561092957600080fd5b50356001600160a01b0316612203565b34801561094557600080fd5b5061094e6122f6565b60408051998a5260208a0198909852888801969096526060880194909452608087019290925260a086015260c085015260e084015261010083015251908190036101200190f35b3480156109a157600080fd5b506109d6600480360360608110156109b857600080fd5b508035906001600160a01b036020820135811691604001351661231c565b60408051921515835260208301919091528051918290030190f35b3480156109fd57600080fd5b506103b460048036036040811015610a1457600080fd5b810190602081018135600160201b811115610a2e57600080fd5b820183602082011115610a4057600080fd5b803590602001918460208302840111600160201b83111715610a6157600080fd5b919350915035612370565b348015610a7857600080fd5b5061045060048036036040811015610a8f57600080fd5b506001600160a01b03813516906020013561271e565b348015610ab157600080fd5b506103b460048036036020811015610ac857600080fd5b50356001600160a01b03166127a0565b348015610ae457600080fd5b506103cb612859565b348015610af957600080fd5b50610b2660048036036040811015610b1057600080fd5b506001600160a01b038135169060200135612868565b604051808060200180602001806020018515158152602001848103845288818151815260200191508051906020019060200280838360005b83811015610b76578181015183820152602001610b5e565b50505050905001848103835287818151815260200191508051906020019060200280838360005b83811015610bb5578181015183820152602001610b9d565b50505050905001848103825286818151815260200191508051906020019060200280838360005b83811015610bf4578181015183820152602001610bdc565b5050505090500197505050505050505060405180910390f35b348015610c1957600080fd5b506103b46004803603610120811015610c3157600080fd5b810190602081018135600160201b811115610c4b57600080fd5b820183602082011115610c5d57600080fd5b803590602001918460208302840111600160201b83111715610c7e57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b811115610ccd57600080fd5b820183602082011115610cdf57600080fd5b803590602001918460208302840111600160201b83111715610d0057600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550508235935050506020810135906001600160a01b036040820135169060608101359060808101359060a08101359060c001356128d2565b348015610d7657600080fd5b506103b460048036036040811015610d8d57600080fd5b810190602081018135600160201b811115610da757600080fd5b820183602082011115610db957600080fd5b803590602001918460208302840111600160201b83111715610dda57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b811115610e2957600080fd5b820183602082011115610e3b57600080fd5b803590602001918460208302840111600160201b83111715610e5c57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550612d21945050505050565b348015610ea657600080fd5b5061045060048036036040811015610ebd57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b811115610ee757600080fd5b820183602082011115610ef957600080fd5b803590602001918460208302840111600160201b83111715610f1a57600080fd5b509092509050612dcc565b348015610f3157600080fd5b5061045060048036036080811015610f4857600080fd5b506001600160a01b038135811691602081013590911690604081013590606001351515612e82565b348015610f7c57600080fd5b50610450612f08565b348015610f9157600080fd5b50610fb860048036036020811015610fa857600080fd5b50356001600160a01b0316612f0e565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610ff4578181015183820152602001610fdc565b505050509050019250505060405180910390f35b34801561101457600080fd5b506103cb6130b5565b34801561102957600080fd5b506104506004803603602081101561104057600080fd5b50356001600160a01b03166130c4565b34801561105c57600080fd5b506104506004803603606081101561107357600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561109d57600080fd5b8201836020820111156110af57600080fd5b803590602001918460208302840111600160201b831117156110d057600080fd5b919390929091602081019035600160201b8111156110ed57600080fd5b8201836020820111156110ff57600080fd5b803590602001918460208302840111600160201b8311171561112057600080fd5b5090925090506130db565b34801561113757600080fd5b506103936004803603602081101561114e57600080fd5b5035613156565b34801561116157600080fd5b506103b46004803603602081101561117857600080fd5b5035613175565b34801561118b57600080fd5b5061036a61334b565b3480156111a057600080fd5b506103b4600480360360208110156111b757600080fd5b503561335b565b3480156111ca57600080fd5b5061124e600480360360608110156111e157600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b81111561121057600080fd5b82018360208201111561122257600080fd5b803590602001918460208302840111600160201b8311171561124357600080fd5b5090925090506133b2565b6040518080602001806020018415158152602001838103835286818151815260200191508051906020019060200280838360005b8381101561129a578181015183820152602001611282565b50505050905001838103825285818151815260200191508051906020019060200280838360005b838110156112d95781810151838201526020016112c1565b505050509050019550505050505060405180910390f35b3480156112fc57600080fd5b50610450613418565b34801561131157600080fd5b506103b4613422565b34801561132657600080fd5b506103936004803603604081101561133d57600080fd5b50803590602001356001600160a01b03166134b5565b34801561135f57600080fd5b506103cb6134f1565b34801561137457600080fd5b506104506004803603602081101561138b57600080fd5b5035613500565b34801561139e57600080fd5b506103b461350b565b3480156113b357600080fd5b506113bc6135d2565b6040805160208082528351818301528351919283929083019185019080838360005b838110156113f65781810151838201526020016113de565b50505050905090810190601f1680156114235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60035460ff1681565b6000806114456135fd565b90939092509050565b61145661366d565b61145e6136bd565b601b5560185461146e9034613724565b60185561147961377e565b6040805134815290517f95c4e29cc99bc027cfc3cd719d6fd973d5f0317061885fbb322b9b17d8d35d379181900360200190a16114b461385e565b565b7f000000000000000000000000000000000000000000000000000000000000000081565b6114e26138aa565b601e546001600160a01b0316158015906115065750601c546001600160a01b031615155b801561151c5750601f546001600160a01b031615155b611561576040805162461bcd60e51b81526020600482015260116024820152701859191c995cdcd95cc81b9bdd081cd95d607a1b604482015290519081900360640190fd5b6003805460ff191660011790556040805130815290517f2d9c100169d5e24ef79d07ec273fcbbd5ce996a849ef0223f37c49f6418df84d9181900360200190a1565b601c546001600160a01b031681565b6020546001600160a01b031681565b60008073__$b9040dea2fd9c47e6b7e0e916053de4d6b$__63e937a562600f856115e9613909565b6040518463ffffffff1660e01b815260040180848152602001838152602001828152602001935050505060206040518083038186803b15801561162b57600080fd5b505af415801561163f573d6000803e3d6000fd5b505050506040513d602081101561165557600080fd5b50516040805185815260208101839052815192935033927fd89f05622c2dcb0b4fcaa19e62fc2a2b0923955685fb7b0c641467f764244abc929181900390910190a290505b919050565b600f5490565b600054600160b01b900460ff16806116c75750600054600160a81b900460ff16155b15611800576116d461394e565b60035460ff1615801561170f57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615155b801561171b5750600654155b80156117275750600554155b61176c576040805162461bcd60e51b81526020600482015260116024820152706e6f7420696e697469616c20737461746560781b604482015290519081900360640190fd5b61177f6001611779613909565b90613724565b600655601c5460408051633e7ff85760e01b815290516001600160a01b0390921691633e7ff85791600480820192602092909190829003018186803b1580156117c757600080fd5b505afa1580156117db573d6000803e3d6000fd5b505050506040513d60208110156117f157600080fd5b505160055560006004556114b4565b6114b4600036613983565b6000611815613b13565b60028054141561185a576040805162461bcd60e51b815260206004820152601f60248201526000805160206158d7833981519152604482015290519081900360640190fd5b60028055878761186a8282613b6a565b6118798a8a8a8a8a8a8a613bf7565b6001600255925061188c915061385e9050565b979650505050505050565b6000806000806017546118b760165460135461372490919063ffffffff16565b925092509250909192565b60006118cc613db4565b905090565b6060808073__$b9040dea2fd9c47e6b7e0e916053de4d6b$__6325459925600f866118fa613909565b6040518463ffffffff1660e01b815260040180848152602001836001600160a01b03168152602001828152602001935050505060006040518083038186803b15801561194557600080fd5b505af4158015611959573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052606081101561198257600080fd5b8101908080516040519392919084600160201b8211156119a157600080fd5b9083019060208201858111156119b657600080fd5b82518660208202830111600160201b821117156119d257600080fd5b82525081516020918201928201910280838360005b838110156119ff5781810151838201526020016119e7565b5050505090500160405260200180516040519392919084600160201b821115611a2757600080fd5b908301906020820185811115611a3c57600080fd5b82518660208202830111600160201b82111715611a5857600080fd5b82525081516020918201928201910280838360005b83811015611a85578181015183820152602001611a6d565b5050505090500160405260200180516040519392919084600160201b821115611aad57600080fd5b908301906020820185811115611ac257600080fd5b82518660208202830111600160201b82111715611ade57600080fd5b82525081516020918201928201910280838360005b83811015611b0b578181015183820152602001611af3565b505050509050016040525050509250925092509193909250565b60055490565b611b336138aa565b6003805460ff191690556040805130815290517fa391f4e911c33688045cc1f43dc17c05924f79ad72a8cf5a58cf00c3acc9090e9181900360200190a1565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e77195490565b60008054600160a81b900460ff16611bba576000546001600160a01b03166118cc565b73183faff6997c98a812a3b98748fc80241d08f3126001600160a01b031663732524946040518163ffffffff1660e01b815260040160206040518083038186803b158015611c0757600080fd5b505afa158015611c1b573d6000803e3d6000fd5b505050506040513d6020811015611c3157600080fd5b5051905090565b60408051630debfda360e41b8152336004820152905173183faff6997c98a812a3b98748fc80241d08f3129163debfda30916024808301926020929190829003018186803b158015611c8957600080fd5b505afa158015611c9d573d6000803e3d6000fd5b505050506040513d6020811015611cb357600080fd5b5051611cf6576040805162461bcd60e51b815260206004820152600d60248201526c37b7363c9032bc32b1baba37b960991b604482015290519081900360640190fd5b6001600160e01b0319811660009081526001602052604090208054611d62576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b8054421015611db8576040805162461bcd60e51b815260206004820152601960248201527f74696d656c6f636b3a206e6f7420616c6c6f7765642079657400000000000000604482015290519081900360640190fd5b6000816001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611e525780601f10611e2757610100808354040283529160200191611e52565b820191906000526020600020905b815481529060010190602001808311611e3557829003601f168201915b5050506001600160e01b0319861660009081526001602081905260408220828155949550909250611e8691508301826157b6565b50506000805460ff60b01b1916600160b01b178155604051825130918491819060208401908083835b60208310611ece5780518252601f199092019160209182019101611eaf565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611f30576040519150601f19603f3d011682016040523d82523d6000602084013e611f35565b606091505b50506000805460ff60b01b19169055604080516001600160e01b03198716815242602082015281519293507fa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438929081900390910190a1611f9481613dc5565b50505050565b73183faff6997c98a812a3b98748fc80241d08f31281565b60009182526007602090815260408084206001600160a01b0390931684529190529020546001600160801b0380821692600160801b9092041690565b611ff6613de2565b60006120028383613e35565b6015549091506120129082613724565b601555604080518581526020810183905281517f754fa5a3ace0438b80ec651f7d61e44f761a808ebd17d7ce70da619399611a08929181900390910190a150505050565b61205e6138aa565b6001600160e01b031981166000908152600160205260409020546120c9576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b604080516001600160e01b03198316815242602082015281517f7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8929181900390910190a16001600160e01b03198116600090815260016020819052604082208281559190612139908301826157b6565b505050565b60006121518261214c613e52565b613e72565b92915050565b600160208181526000928352604092839020805481840180548651600296821615610100026000190190911695909504601f810185900485028601850190965285855290949193929091908301828280156121f35780601f106121c8576101008083540402835291602001916121f3565b820191906000526020600020905b8154815290600101906020018083116121d657829003601f168201915b5050505050905082565b60045481565b600054600160b01b900460ff16806122255750600054600160a81b900460ff16155b156122e85761223261394e565b6020546001600160a01b03161561227e576040805162461bcd60e51b815260206004820152600b60248201526a185b1c9958591e481cd95d60aa1b604482015290519081900360640190fd5b6001600160a01b0381166122c8576040805162461bcd60e51b815260206004820152600c60248201526b61646472657373207a65726f60a01b604482015290519081900360640190fd5b602080546001600160a01b0319166001600160a01b0383161790556122f3565b6122f3600036613983565b50565b601254601354601454601554601654601754601854601954601a54909192939495969798565b60008061232a858585613e95565b6000958652600a602090815260408088206001600160a01b039788168952825280882095909616875293909352505091205490916101009091046001600160801b031690565b612378613b13565b6002805414156123bd576040805162461bcd60e51b815260206004820152601f60248201526000805160206158d7833981519152604482015290519081900360640190fd5b600280556123c96136bd565b5060005b82811015612401576123f98484838181106123e457fe5b905060200201356001600160a01b0316613ed7565b6001016123cd565b50600061240c613909565b90506124188282613f23565b612459576040805162461bcd60e51b815260206004820152600d60248201526c6e6f7420636c61696d61626c6560981b604482015290519081900360640190fd5b601d546040805163712441d960e11b81523360048201818152602483019384526044830188905260009485946001600160a01b039091169363e24883b293928b928b92606401846020850280828437600081840152601f19601f82011690508083019250505094505050505060006040518083038186803b1580156124dd57600080fd5b505afa1580156124f1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604090815281101561251a57600080fd5b8101908080516040519392919084600160201b82111561253957600080fd5b90830190602082018581111561254e57600080fd5b82518660208202830111600160201b8211171561256a57600080fd5b82525081516020918201928201910280838360005b8381101561259757818101518382015260200161257f565b50505050919091016040525060200151929450919250600091506125bb9050613e52565b905060005b868110156126f65760008888838181106125d657fe5b905060200201356001600160a01b0316905060008583815181106125f657fe5b60200260200101519050600061260e83838b88613f45565b9050816001600160a01b0316836001600160a01b0316146126375761263582838b88613f45565b015b60408051808201909152601881527f636c61696d656420616d6f756e7420746f6f20736d616c6c000000000000000060208201526126789082908890613fe9565b905080156126eb57601f546040805163b760faf960e01b81526001600160a01b0385811660048301529151919092169163b760faf991849160248082019260009290919082900301818588803b1580156126d157600080fd5b505af11580156126e5573d6000803e3d6000fd5b50505050505b5050506001016125c0565b5061270c336127058489614080565b60006140d9565b5050600160025550612139905061385e565b600081612729613db4565b111580156127455750600f5461274190611779613909565b8211155b61278d576040805162461bcd60e51b81526020600482015260146024820152730d2dcecc2d8d2c840e4caeec2e4c840cae0dec6d60631b604482015290519081900360640190fd5b612799600f84846141f4565b9392505050565b600054600160a01b900460ff16156127f6576040805162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b604482015290519081900360640190fd5b60008054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b601f546001600160a01b031681565b6060806060600080612878613909565b90506128848682613f23565b9150818061289e5750808614801561289e57506004548610155b156128c85760006128b188886000614287565b805160408201516060909201519097509095509350505b5092959194509250565b6128da613de2565b86158015906128e95750885115155b6128ef57fe5b6000838152600c6020526040812082905561290a8584613e35565b905060008a5167ffffffffffffffff8111801561292657600080fd5b50604051908082528060200260200182016040528015612950578160200160208202803683370190505b509050818160008151811061296157fe5b602002602001018181525050888a60008151811061297b57fe5b60209081029190910101528a51600019015b60008c828151811061299b57fe5b602002602001015190506129f58c83815181106129b457fe5b60200260200101518d6000815181106129c957fe5b6020026020010151856000815181106129de57fe5b602002602001015161484a9092919063ffffffff16565b838381518110612a0157fe5b60209081029190910181019190915260008881526007825260408082206001600160a01b0385168352909252208351612a4d90859085908110612a4057fe5b602002602001015161494a565b81546001600160801b031981166001600160801b039182169290920116178155601f5460408051631257fcdb60e31b81526001600160a01b038581166004830152602482018a9052915160009392909216916392bfe6d891604480820192602092909190829003018186803b158015612ac557600080fd5b505afa158015612ad9573d6000803e3d6000fd5b505050506040513d6020811015612aef57600080fd5b50519050612b07612b0282612710614080565b61494a565b82546001600160801b03918216600160801b0291161782558451859085908110612b2d57fe5b60209081029190910181015160008b81526009835260408082206001600160a01b03881680845290855281832080549094019093558c82526008845280822092825291909252902054612ba05760008981526008602090815260408083206001600160a01b038716845290915290208190555b83612bad57505050612c1f565b848481518110612bb957fe5b602002602001015185600081518110612bce57fe5b6020026020010181815103915081815250508d8481518110612bec57fe5b60200260200101518e600081518110612c0157fe5b6020908102919091010180519190910390525050506000190161298d565b6000868152600d60205260409020805484019055601254612c409084613724565b601281905550876001600160a01b03167f8b2bc56c62594afde5b520e83e1ca19ebd071798db21382e328014f47b31ce578a8e85604051808481526020018060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015612cbe578181015183820152602001612ca6565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015612cfd578181015183820152602001612ce5565b505050509050019550505050505060405180910390a2505050505050505050505050565b612d29611b72565b6001600160a01b0316336001600160a01b031614612d85576040805162461bcd60e51b815260206004820152601460248201527337b7363c9030b2323932b9b9903ab83230ba32b960611b604482015290519081900360640190fd5b612dbe612db983836040518060400160405280600e81526020016d20b2323932b9b9aab83230ba32b960911b81525061498e565b614ab2565b612dc88282614ad6565b5050565b6000612dd6613b13565b600280541415612e1b576040805162461bcd60e51b815260206004820152601f60248201526000805160206158d7833981519152604482015290519081900360640190fd5b600280556000805b83811015612e6357848482818110612e3757fe5b90506020020135821015612e5b57848482818110612e5157fe5b9050602002013591505b600101612e23565b50612e713386836000614c21565b60016002559150612799905061385e565b6000612e8c613b13565b600280541415612ed1576040805162461bcd60e51b815260206004820152601f60248201526000805160206158d7833981519152604482015290519081900360640190fd5b600280558484612ee18282613b6a565b612eed87878787614c21565b60016002559250612f00915061385e9050565b949350505050565b60105490565b6060600080612f1b6135fd565b909250905060018282030160008167ffffffffffffffff81118015612f3f57600080fd5b50604051908082528060200260200182016040528015612f69578160200160208202803683370190505b5090506000805b83811015613016576000612f88898389016001614287565b905060005b81606001515181101561300c5781606001518181518110612faa57fe5b6020026020010151158015612fd65750600082604001518281518110612fcc57fe5b6020026020010151115b15613004576001858481518110612fe957fe5b9115156020928302919091019091015260019093019261300c565b600101612f8d565b5050600101612f70565b508067ffffffffffffffff8111801561302e57600080fd5b50604051908082528060200260200182016040528015613058578160200160208202803683370190505b5095506000805b848110156130a95783818151811061307357fe5b6020026020010151156130a15780870188838151811061308f57fe5b60209081029190910101526001909101905b60010161305f565b50505050505050919050565b601d546001600160a01b031681565b6000612151826130d2613909565b600f91906141f4565b60006130e5613b13565b60028054141561312a576040805162461bcd60e51b815260206004820152601f60248201526000805160206158d7833981519152604482015290519081900360640190fd5b6002805561313e3387878787876000613bf7565b6001600255905061314d61385e565b95945050505050565b6000908152600d6020908152604080832054600e909252909120549091565b601c546001600160a01b031633148061319857506020546001600160a01b031633145b6131d9576040805162461bcd60e51b815260206004820152600d60248201526c6f6e6c79206d616e616765727360981b604482015290519081900360640190fd5b8060055414613220576040805162461bcd60e51b815260206004820152600e60248201526d1ddc9bdb99c8195c1bd8da081a5960921b604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161580159061325c575060065460320181105b156132e0577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d6c1dbee826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156132c757600080fd5b505af11580156132db573d6000803e3d6000fd5b505050505b6000818152600e6020908152604080832054600d909252909120546014549190039061330c9082613724565b6014556040805183815290517f5d05c64f281304391697cf987812e1a736413a062a9bdf39af4102209eb6fa589181900360200190a150600101600555565b600054600160a81b900460ff1681565b61336361366d565b601a8190556017546133759082613724565b601755426019556040805182815290517f187f32a0f765499f15b3bb52ed0aebf6015059f230f2ace7e701e60a476695959181900360200190a150565b6060806000806133c0613909565b90506133cc8782613f23565b915081806133e6575080871480156133e657506004548710155b1561340d5760006133fb898989896000614c9e565b90508060400151945080606001519350505b509450945094915050565b60006118cc613909565b61342a6138aa565b60001960045414613474576040805162461bcd60e51b815260206004820152600f60248201526e185b1c9958591e48195b98589b1959608a1b604482015290519081900360640190fd5b61347c613909565b600481905560408051918252517f1cfb844c44f9325fc9ad6cc6191a4a24b0415137fe300b6c9071523a253f7a089181900360200190a1565b60008281526009602090815260408083206001600160a01b03909416808452938252808320549483526008825280832093835292905220549091565b601e546001600160a01b031690565b60006121518261507a565b6135136138aa565b600054600160a81b900460ff1615613572576040805162461bcd60e51b815260206004820152601a60248201527f616c726561647920696e2070726f64756374696f6e206d6f6465000000000000604482015290519081900360640190fd5b60008054600161ff0160a01b031916600160a81b1790556040805173183faff6997c98a812a3b98748fc80241d08f312815290517f83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c9181900360200190a1565b604080518082019091526011815270233a39b7a932bbb0b93226b0b730b3b2b960791b602082015290565b60055460008061360b613909565b905060008111613662576040805162461bcd60e51b815260206004820152601f60248201527f6e6f2065706f6368207769746820636c61696d61626c65207265776172647300604482015290519081900360640190fd5b600181039150509091565b601e546001600160a01b031633146114b4576040805162461bcd60e51b815260206004820152600e60248201526d696e666c6174696f6e206f6e6c7960901b604482015290519081900360640190fd5b601b546000906136cd9034613724565b905047818111156137165761dead6108fc6136e8838561510c565b6040518115909202916000818181858888f19350505050158015613710573d6000803e3d6000fd5b50613720565b8181101561372057fe5b5090565b600082820183811015612799576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006137a360165461379d60145460155461372490919063ffffffff16565b9061510c565b905080156122f35760006137ba476014606461484a565b90506000818311156137cd5750806137d0565b50815b8015612139576016546137e39082613724565b601655601b546137f3908261510c565b601b5560405161dead9082156108fc029083906000818181858888f19350505050158015613825573d6000803e3d6000fd5b506040805182815290517f44d5cd18c37b86a3423952287006d9550ab3cff404d6e899d5499d9ef87100b59181900360200190a1505050565b613866615169565b47146114b4576040805162461bcd60e51b815260206004820152600e60248201526d6f7574206f662062616c616e636560901b604482015290519081900360640190fd5b6138b2611b97565b6001600160a01b0316336001600160a01b0316146114b4576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b601c54604080516339f20c3560e21b815290516000926001600160a01b03169163e7c830d4916004808301926020929190829003018186803b158015611c0757600080fd5b600054600160b01b900460ff161561397b5733301461396957fe5b6000805460ff60b01b191690556114b4565b6114b46138aa565b61398b6138aa565b600082359050600073183faff6997c98a812a3b98748fc80241d08f3126001600160a01b0316636221a54b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156139e057600080fd5b505afa1580156139f4573d6000803e3d6000fd5b505050506040513d6020811015613a0a57600080fd5b505160408051808201825242830180825282516020601f89018190048102820181019094528781529394509290918281019190889088908190840183828082843760009201829052509390945250506001600160e01b03198616815260016020818152604090922084518155848301518051919450613a8e939285019201906157fa565b509050507fed948300a3694aa01d4a6b258bfd664350193d770c0b51f8387277f6d83ea3b68382878760405180856001600160e01b0319168152602001848152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f191690920182900397509095505050505050a15050505050565b60035460ff166114b4576040805162461bcd60e51b815260206004820152601a60248201527f726577617264206d616e61676572206465616374697661746564000000000000604482015290519081900360640190fd5b336001600160a01b0383161415613b8057612dc8565b601d546040805163ce2caa5760e01b81523360048201526001600160a01b03858116602483015284811660448301529151919092169163ce2caa57916064808301926000929190829003018186803b158015613bdb57600080fd5b505afa158015613bef573d6000803e3d6000fd5b505050505050565b6000613c0287613ed7565b613c0a6136bd565b506002601f546040805163f683776760e01b81526001600160a01b038c811660048301529151919092169163f6837767916024808301926020929190829003018186803b158015613c5a57600080fd5b505afa158015613c6e573d6000803e3d6000fd5b505050506040513d6020811015613c8457600080fd5b505114613cd8576040805162461bcd60e51b815260206004820152601860248201527f6578706c696369742064656c65676174696f6e206f6e6c790000000000000000604482015290519081900360640190fd5b6000613ce2613909565b905060005b86811015613d9c57613d0b888883818110613cfe57fe5b9050602002013583613f23565b613d1457613d94565b6000613d368b8a8a85818110613d2657fe5b9050602002013589896001614c9e565b90506000613d5a8c8c8c8c87818110613d4b57fe5b90506020020135856001615188565b905080600e60008c8c87818110613d6d57fe5b60209081029290920135835250810191909152604001600020805490910190559390930192505b600101613ce7565b50613da88883856140d9565b50979650505050505050565b600654600090612151906001615400565b3d604051818101604052816000823e8215613dde578181f35b8181fd5b601c546001600160a01b031633146114b4576040805162461bcd60e51b81526020600482015260116024820152706674736f206d616e61676572206f6e6c7960781b604482015290519081900360640190fd5b6000612799613e448385615426565b613e4c6154a5565b906154c4565b60006118cc600454613e6d613e65613db4565b60055461552b565b61552b565b6001600160a01b0382166000908152600b6020526040812054612799908361552b565b6000838152600a602090815260408083206001600160a01b038087168552908352818420908516845290915281205460ff1680612f005750612f008483615542565b6001600160a01b0381166122f3576040805162461bcd60e51b815260206004820152600e60248201526d726563697069656e74207a65726f60901b604482015290519081900360640190fd5b60006004548310158015613f3957506005548310155b80156127995750501190565b600080613f528684613e72565b90505b838111613f9f576000613f6a87836001614287565b90506000613f7c888885856000615188565b6000848152600e6020526040902080548201905593909301925050600101613f55565b506001600160a01b0385166000908152600b6020526040902054600184011115612f00576001600160a01b0385166000908152600b60205260409020600184019055949350505050565b600081848411156140785760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561403d578181015183820152602001614025565b50505050905090810190601f16801561406a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008261408f57506000612151565b8282028284828161409c57fe5b04146127995760405162461bcd60e51b815260040180806020018281038252602181526020018061591e6021913960400191505060405180910390fd5b81156141eb57801561415457601f546040805163b760faf960e01b81526001600160a01b0386811660048301529151919092169163b760faf991859160248082019260009290919082900301818588803b15801561413657600080fd5b505af115801561414a573d6000803e3d6000fd5b50505050506141eb565b6040516000906001600160a01b0385169084908381818185875af1925050503d806000811461419f576040519150601f19603f3d011682016040523d82523d6000602084013e6141a4565b606091505b50509050806141e9576040805162461bcd60e51b815260206004820152600c60248201526b18db185a5b4819985a5b195960a21b604482015290519081900360640190fd5b505b505047601b5550565b6001600160a01b0382166000908152600284016020526040812080545b80156142785781546000199091019082908290811061422c57fe5b6000918252602090912001546201000090046001600160f01b031684106142735781818154811061425957fe5b60009182526020909120015461ffff169250612799915050565b614211565b50505060018301549392505050565b61428f615882565b600061429a8461507a565b90506000806142a76158aa565b6142b18789615542565b156142bf5750505050612799565b60008781526009602090815260408083206001600160a01b038c1684529091529020541515806142ed575085155b1561431f576142fd88888661555e565b915061430a8789846156d4565b6001600160801b031660208201819052151592505b601f546040805163ed475a7960e01b81526001600160a01b038b811660048301526024820188905291516060938493169163ed475a79916044808301926000929190829003018186803b15801561437557600080fd5b505afa158015614389573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260808110156143b257600080fd5b8101908080516040519392919084600160201b8211156143d157600080fd5b9083019060208201858111156143e657600080fd5b82518660208202830111600160201b8211171561440257600080fd5b82525081516020918201928201910280838360005b8381101561442f578181015183820152602001614417565b5050505090500160405260200180516040519392919084600160201b82111561445757600080fd5b90830190602082018581111561446c57600080fd5b82518660208202830111600160201b8211171561448857600080fd5b82525081516020918201928201910280838360005b838110156144b557818101518382015260200161449d565b5050505091909101604052505083519395509193508791506144da90505760006144dd565b60015b60ff160167ffffffffffffffff811180156144f757600080fd5b50604051908082528060200260200182016040528015614521578160200160208202803683370190505b508088525167ffffffffffffffff8111801561453c57600080fd5b50604051908082528060200260200182016040528015614566578160200160208202803683370190505b50602088015286515167ffffffffffffffff8111801561458557600080fd5b506040519080825280602002602001820160405280156145af578160200160208202803683370190505b50604088015286515167ffffffffffffffff811180156145ce57600080fd5b506040519080825280602002602001820160405280156145f8578160200160208202803683370190505b50606088015284156146805789876000015160008151811061461657fe5b60200260200101906001600160a01b031690816001600160a01b03168152505083876020015160008151811061464857fe5b60200260200101818152505082602001516001600160801b0316876040015160008151811061467357fe5b6020026020010181815250505b81511561483d57601f546040805163277166bf60e11b81526001600160a01b038d81166004830152602482018a905291516000939290921691634ee2cd7e91604480820192602092909190829003018186803b1580156146df57600080fd5b505afa1580156146f3573d6000803e3d6000fd5b505050506040513d602081101561470957600080fd5b5051905060005b835181101561483a576000818861472857600061472b565b60015b60ff1601905084828151811061473d57fe5b60200260200101518a60000151828151811061475557fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506147bc85838151811061478457fe5b60200260200101516147b686858151811061479b57fe5b60200260200101516127108761484a9092919063ffffffff16565b8e615771565b8a6020015182815181106147cc57fe5b60200260200101818152505061480d8c8684815181106147e857fe5b60200260200101518c60200151848151811061480057fe5b60200260200101516156d4565b6001600160801b03168a60400151828151811061482657fe5b602090810291909101015250600101614710565b50505b5050505050509392505050565b6000808211614893576040805162461bcd60e51b815260206004820152601060248201526f4469766973696f6e206279207a65726f60801b604482015290519081900360640190fd5b836148a057506000612799565b838302838582816148ad57fe5b0414156148c6578281816148bd57fe5b04915050612799565b60008386816148d157fe5b04905060008487816148df57fe5b06905060008587816148ed57fe5b04905060008688816148fb57fe5b06905061493d61490f88613e4c8685614080565b61177961491c8686614080565b6117796149298987614080565b6117798d6149378c8b614080565b90614080565b9998505050505050505050565b6000600160801b82106137205760405162461bcd60e51b81526004018080602001828103825260278152602001806158f76027913960400191505060405180910390fd5b600080826040516020018080602001828103825283818151815260200191508051906020019080838360005b838110156149d25781810151838201526020016149ba565b50505050905090810190601f1680156149ff5780820380516001836020036101000a031916815260200191505b50925050506040516020818303038152906040528051906020012090506000805b8651811015614a6757868181518110614a3557fe5b6020026020010151831415614a5f57858181518110614a5057fe5b60200260200101519150614a67565b600101614a20565b506001600160a01b03811661314d576040805162461bcd60e51b815260206004820152600c60248201526b61646472657373207a65726f60a01b604482015290519081900360640190fd5b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b614b0282826040518060400160405280600981526020016824b7333630ba34b7b760b91b81525061498e565b601e60006101000a8154816001600160a01b0302191690836001600160a01b03160217905550614b5682826040518060400160405280600b81526020016a233a39b7a6b0b730b3b2b960a91b81525061498e565b601c60006101000a8154816001600160a01b0302191690836001600160a01b03160217905550614ba382826040518060400160405280600481526020016315d3985d60e21b81525061498e565b601f60006101000a8154816001600160a01b0302191690836001600160a01b03160217905550614bfd82826040518060400160405280601181526020017021b630b4b6a9b2ba3ab826b0b730b3b2b960791b81525061498e565b601d80546001600160a01b0319166001600160a01b03929092169190911790555050565b6000614c2c84613ed7565b614c346136bd565b506000614c3f613909565b9050808410158015614c515750600081115b15614c5d576001810393505b614c678482613f23565b614c75576000915050612f00565b614c88868686614c83613e52565b613f45565b9150614c958583856140d9565b50949350505050565b614ca6615882565b6000614cb18661507a565b6040805160208088028281018201909352878252929350869290918891849182918501908490808284376000920191909152505050908452508067ffffffffffffffff81118015614d0157600080fd5b50604051908082528060200260200182016040528015614d2b578160200160208202803683370190505b5060208401528067ffffffffffffffff81118015614d4857600080fd5b50604051908082528060200260200182016040528015614d72578160200160208202803683370190505b5060408401528067ffffffffffffffff81118015614d8f57600080fd5b50604051908082528060200260200182016040528015614db9578160200160208202803683370190505b50606084015260005b8181101561506e57614df088888884818110614dda57fe5b905060200201356001600160a01b03168b613e95565b84606001518281518110614e0057fe5b60200260200101901515908115158152505083606001518181518110614e2257fe5b602002602001015115614eb75784614eb2576000888152600a6020526040812090888884818110614e4f57fe5b602090810292909201356001600160a01b039081168452838301949094525060409182016000908120938d16815292905290819020549085015180516101009092046001600160801b03169183908110614ea557fe5b6020026020010181815250505b615066565b886001600160a01b0316878783818110614ecd57fe5b905060200201356001600160a01b03166001600160a01b03161415614f1857614ef789898561555e565b84602001518281518110614f0757fe5b602002602001018181525050615010565b601f546000906001600160a01b031663e64767aa8b8a8a86818110614f3957fe5b905060200201356001600160a01b0316876040518463ffffffff1660e01b815260040180846001600160a01b03168152602001836001600160a01b03168152602001828152602001935050505060206040518083038186803b158015614f9e57600080fd5b505afa158015614fb2573d6000803e3d6000fd5b505050506040513d6020811015614fc857600080fd5b50519050614ff2888884818110614fdb57fe5b905060200201356001600160a01b0316828b615771565b8560200151838151811061500257fe5b602002602001018181525050505b6150408888888481811061502057fe5b905060200201356001600160a01b03168660200151848151811061480057fe5b6001600160801b03168460400151828151811061505957fe5b6020026020010181815250505b600101614dc2565b50505095945050505050565b6000818152600c60205260409020548061169a57601c5460408051637976d5ad60e11b81526004810185905290516001600160a01b039092169163f2edab5a91602480820192602092909190829003018186803b1580156150da57600080fd5b505afa1580156150ee573d6000803e3d6000fd5b505050506040513d602081101561510457600080fd5b505192915050565b600082821115615163576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60006118cc60165461379d60135460185461510c90919063ffffffff16565b600080805b8451518110156153f557846060015181815181106151a757fe5b6020026020010151156151b9576153ed565b6000856000015182815181106151cb57fe5b60209081029190910181015160008981526007835260408082206001600160a01b038416835284528120928901518051929450909161520f919086908110612a4057fe5b90506001600160801b038116156152405781546001600160801b03600160801b808304821684900382160291161782555b600061525589604001518681518110612a4057fe5b90506001600160801b038116156152985782546001600160801b031981166001600160801b03918216839003821617845560138054918316918201905595909501945b8715615382576000600a60008c81526020019081526020016000206000866001600160a01b03166001600160a01b0316815260200190815260200160002060008e6001600160a01b03166001600160a01b0316815260200190815260200160002090508060000160009054906101000a900460ff1615615351576040805162461bcd60e51b815260206004820152600f60248201526e185b1c9958591e4818db185a5b5959608a1b604482015290519081900360640190fd5b8054600160ff199091161770ffffffffffffffffffffffffffffffff0019166101006001600160801b038416021790555b8a6001600160a01b03168c6001600160a01b0316856001600160a01b03167f6ec685171a9028d19dc155a48e7824e3c68b03bc8995410e006abe3cbbeb3e2d8d8560405180838152602001826001600160801b031681526020019250505060405180910390a4505050505b60010161518d565b509695505050505050565b600080838311156154165750600090508061541f565b50600190508183035b9250929050565b6000806154416201517f60195461372490919063ffffffff16565b90508084111561548c576040805162461bcd60e51b81526020600482015260116024820152706166746572206461696c79206379636c6560781b604482015290519081900360640190fd5b61549a83613e4c838761510c565b600101949350505050565b60006118cc60155461379d60125460175461510c90919063ffffffff16565b600080821161551a576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161552357fe5b049392505050565b60008183101561553b5781612799565b5090919050565b6001600160a01b03166000908152600b60205260409020541190565b601f5460408051634181ad4160e11b81526001600160a01b038681166004830152602482018590529151600093849316916383035a82916044808301926020929190829003018186803b1580156155b457600080fd5b505afa1580156155c8573d6000803e3d6000fd5b505050506040513d60208110156155de57600080fd5b5051601f5460408051631257fcdb60e31b81526001600160a01b03898116600483015260248201889052915193945060009391909216916392bfe6d8916044808301926020929190829003018186803b15801561563a57600080fd5b505afa15801561564e573d6000803e3d6000fd5b505050506040513d602081101561566457600080fd5b50519050818114156156855761567c81612710614080565b92505050612799565b81811161568e57fe5b600082156156a4576156a283612710614080565b015b60006156b2600f89896141f4565b905080156153f5576156c684840382614080565b909101979650505050505050565b6000816156e357506000612799565b60008481526007602090815260408083206001600160a01b0387168452909152902080546001600160801b03168061572057600092505050612799565b8154600160801b90046001600160801b031684811415615744575091506127999050565b806001600160801b0316851061575657fe5b61188c612b026001600160801b03848116908890851661484a565b60008261578057506000612799565b60008061578f600f87866141f4565b9050612710811015614c95576157aa85612710839003614080565b90910195945050505050565b50805460018160011615610100020316600290046000825580601f106157dc57506122f3565b601f0160209004906000526020600020908101906122f391906158c1565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826158305760008555615876565b82601f1061584957805160ff1916838001178555615876565b82800160010185558215615876579182015b8281111561587657825182559160200191906001019061585b565b506137209291506158c1565b6040518060800160405280606081526020016060815260200160608152602001606081525090565b604080518082019091526000808252602082015290565b5b8082111561372057600081556001016158c256fe5265656e7472616e637947756172643a207265656e7472616e742063616c6c0053616665436173743a2076616c756520646f65736e27742066697420696e203132382062697473536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220519af7979c09fa4e7bda9cc896c4530aa2881881c12808a0e0e53a10257a5a8364736f6c63430007060033",
1384
+ "linkReferences": {
1385
+ "contracts/tokenPools/lib/DataProviderFee.sol": {
1386
+ "DataProviderFee": [
1387
+ {
1388
+ "length": 20,
1389
+ "start": 6103
1390
+ },
1391
+ {
1392
+ "length": 20,
1393
+ "start": 6888
1394
+ }
1395
+ ]
1396
+ }
1397
+ },
1398
+ "deployedLinkReferences": {
1399
+ "contracts/tokenPools/lib/DataProviderFee.sol": {
1400
+ "DataProviderFee": [
1401
+ {
1402
+ "length": 20,
1403
+ "start": 5574
1404
+ },
1405
+ {
1406
+ "length": 20,
1407
+ "start": 6359
1408
+ }
1409
+ ]
1410
+ }
1411
+ }
1027
1412
  }