More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 117 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Withdraw | 12241706 | 1299 days ago | IN | 0 ETH | 0.0083547 | ||||
Get Reward | 12241696 | 1299 days ago | IN | 0 ETH | 0.01861813 | ||||
Withdraw | 12210480 | 1304 days ago | IN | 0 ETH | 0.00956272 | ||||
Get Reward | 12210478 | 1304 days ago | IN | 0 ETH | 0.011706 | ||||
Continue Staking | 12168326 | 1310 days ago | IN | 0 ETH | 0.01765452 | ||||
Get Reward | 12119952 | 1318 days ago | IN | 0 ETH | 0.01793457 | ||||
Get Reward | 11827899 | 1363 days ago | IN | 0 ETH | 0.02703689 | ||||
Withdraw | 11827895 | 1363 days ago | IN | 0 ETH | 0.03229413 | ||||
Continue Staking | 11571176 | 1402 days ago | IN | 0 ETH | 0.00511448 | ||||
Continue Staking | 11496862 | 1414 days ago | IN | 0 ETH | 0.00613737 | ||||
Get Reward | 11451046 | 1421 days ago | IN | 0 ETH | 0.0090398 | ||||
Get Reward | 11433920 | 1423 days ago | IN | 0 ETH | 0.00262823 | ||||
Withdraw | 11433916 | 1423 days ago | IN | 0 ETH | 0.00167115 | ||||
Withdraw | 11430451 | 1424 days ago | IN | 0 ETH | 0.00445641 | ||||
Get Reward | 11430432 | 1424 days ago | IN | 0 ETH | 0.00629355 | ||||
Withdraw | 11417388 | 1426 days ago | IN | 0 ETH | 0.00195896 | ||||
Get Reward | 11412750 | 1427 days ago | IN | 0 ETH | 0.00738023 | ||||
Stake | 11408679 | 1427 days ago | IN | 0 ETH | 0.00352086 | ||||
Withdraw | 11408561 | 1427 days ago | IN | 0 ETH | 0.00388231 | ||||
Get Reward | 11408480 | 1427 days ago | IN | 0 ETH | 0.0048383 | ||||
Continue Staking | 11405283 | 1428 days ago | IN | 0 ETH | 0.00447517 | ||||
Get Reward | 11398706 | 1429 days ago | IN | 0 ETH | 0.00259674 | ||||
Get Reward | 11398218 | 1429 days ago | IN | 0 ETH | 0.00289231 | ||||
Get Reward | 11388235 | 1430 days ago | IN | 0 ETH | 0.00243957 | ||||
Get Reward | 11382112 | 1431 days ago | IN | 0 ETH | 0.00355344 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
BerserkETHPool
Compiler Version
v0.5.17+commit.d19bba13
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-11-10 */ pragma solidity ^0.5.5; library Math { function max(uint256 a, uint256 b) internal pure returns (uint256) { return a >= b ? a : b; } function min(uint256 a, uint256 b) internal pure returns (uint256) { return a < b ? a : b; } function average(uint256 a, uint256 b) internal pure returns (uint256) { return (a / 2) + (b / 2) + ((a % 2 + b % 2) / 2); } } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } pragma solidity ^0.5.0; contract Context { constructor () internal {} function _msgSender() internal view returns (address payable) { return msg.sender; } function _msgData() internal view returns (bytes memory) { this; return msg.data; } } pragma solidity ^0.5.0; contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () internal { _owner = _msgSender(); emit OwnershipTransferred(address(0), _owner); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(isOwner(), "Ownable: caller is not the owner"); _; } function isOwner() public view returns (bool) { return _msgSender() == _owner; } function renounceOwnership() public onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public onlyOwner { _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } pragma solidity ^0.5.0; interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function mint(address account, uint amount) external; function burn(uint amount) external; function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } pragma solidity ^0.5.5; library Address { function isContract(address account) internal view returns (bool) { bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly {codehash := extcodehash(account)} return (codehash != 0x0 && codehash != accountHash); } function toPayable(address account) internal pure returns (address payable) { return address(uint160(account)); } function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-call-value (bool success,) = recipient.call.value(amount)(""); require(success, "Address: unable to send value, recipient may have reverted"); } } pragma solidity ^0.5.0; library SafeERC20 { using SafeMath for uint256; using Address for address; function safeTransfer(IERC20 token, address to, uint256 value) internal { callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value)); } function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal { callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value)); } function safeApprove(IERC20 token, address spender, uint256 value) internal { require((value == 0) || (token.allowance(address(this), spender) == 0), "SafeERC20: approve from non-zero to non-zero allowance" ); callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value)); } function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal { uint256 newAllowance = token.allowance(address(this), spender).add(value); callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); } function safeDecreaseAllowance(IERC20 token, address spender, uint256 value) internal { uint256 newAllowance = token.allowance(address(this), spender).sub(value, "SafeERC20: decreased allowance below zero"); callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); } function callOptionalReturn(IERC20 token, bytes memory data) private { require(address(token).isContract(), "SafeERC20: call to non-contract"); (bool success, bytes memory returndata) = address(token).call(data); require(success, "SafeERC20: low-level call failed"); if (returndata.length > 0) {// Return data is optional // solhint-disable-next-line max-line-length require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed"); } } } pragma solidity ^0.5.0; contract IRewardDistributionRecipient is Ownable { address public rewardVote; function setRewardVote(address _rewardVote) external onlyOwner { rewardVote = _rewardVote; } } pragma solidity ^0.5.0; contract LPTokenWrapper { using SafeMath for uint256; using SafeERC20 for IERC20; using Address for address; IERC20 public y = IERC20(0x5aeEc06Be0Ac269cE284dBB3186454eA56484712); //define uni token uint256 private _totalSupply; mapping(address => uint256) private _balances; function totalSupply() public view returns (uint256) { return _totalSupply; } function balanceOf(address account) public view returns (uint256) { return _balances[account]; } function tokenStake(uint256 amount) internal { _totalSupply = _totalSupply.add(amount); _balances[msg.sender] = _balances[msg.sender].add(amount); y.safeTransferFrom(msg.sender, address(this), amount); } function tokenWithdraw(uint256 amount, uint256 gracePeriodUser) internal { if (block.timestamp > gracePeriodUser){ _totalSupply = _totalSupply.sub(amount); _balances[msg.sender] = _balances[msg.sender].sub(amount); y.safeTransfer(msg.sender, amount); } else { uint256 gracePenalty = amount.mul(20).div(100); _totalSupply = _totalSupply.sub(amount); _balances[msg.sender] = _balances[msg.sender].sub(amount); uint256 sentUserAmount= amount - gracePenalty; y.safeTransfer(msg.sender, sentUserAmount); y.safeTransfer(address(0x2222222222222222222222222222222222222222),gracePenalty); } } } interface IBerserkVote { function averageVotingValue(address poolAddress, uint256 votingItem) external view returns (uint16); function getNumVotes( address poolAddressStake, uint256 valueAmount ) external view returns (uint256); } interface IBerserkToken{ function transfer(address recipient, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); function burn(uint amount) external; function mint(address account, uint amount) external; function resetBurnAmount() external; function getBurnAmount() external returns (uint256); event Transfer(address indexed from, address indexed to, uint256 value); } contract BerserkETHPool is LPTokenWrapper, IRewardDistributionRecipient { IBerserkToken public berserk = IBerserkToken(0x7a9d78B9e8F32038E580457D497f79E660101D88); //define token uint256 public DURATION = 1 weeks; uint256 public NUMBER_EPOCHS = 100000000; uint256 public EPOCH_REWARD = 26 ether; uint256 public gracePeriod = 2 weeks; // Period for unstaking without penalty uint256 public currentEpochReward = EPOCH_REWARD; uint256 public totalAccumulatedReward = 0; uint256 public currentEpoch = 1; uint256 public starttime = 1605114000; //Start time at : 11th November 6:00 PM CEST uint256 public periodFinish = 0; uint256 public rewardRate = 0; uint256 public lastUpdateTime; uint256 public rewardPerTokenStored; mapping(address => uint256) public userRewardPerTokenPaid; mapping(address => uint256) public rewards; mapping(address => uint256) public accumulatedStakingPower; // will accumulate every time staker does getReward() mapping (address => uint256) public gracePeriodList; uint256 public burnAmountTest= 0; event RewardAdded(uint256 reward); event Burned(uint256 reward); event Staked(address indexed user, uint256 amount); event Withdrawn(address indexed user, uint256 amount); event RewardPaid(address indexed user, uint256 reward); event CommissionPaid(address indexed user, uint256 reward); modifier updateReward(address account) { rewardPerTokenStored = rewardPerToken(); lastUpdateTime = lastTimeRewardApplicable(); if (account != address(0)) { rewards[account] = earned(account); userRewardPerTokenPaid[account] = rewardPerTokenStored; } _; } function lastTimeRewardApplicable() public view returns (uint256) { return Math.min(block.timestamp, periodFinish); } function rewardPerToken() public view returns (uint256) { if (totalSupply() == 0) { return rewardPerTokenStored; } return rewardPerTokenStored.add( lastTimeRewardApplicable() .sub(lastUpdateTime) .mul(rewardRate) .mul(1e18) .div(totalSupply()) ); } function earned(address account) public view returns (uint256) { uint256 calculatedEarned = balanceOf(account) .mul(rewardPerToken().sub(userRewardPerTokenPaid[account])) .div(1e18) .add(rewards[account]); return calculatedEarned; } function stakingPower(address account) public view returns (uint256) { return accumulatedStakingPower[account].add(earned(account)); } function continueStaking() public updateReward(msg.sender) checkNextEpoch checkStart { } function stake(uint256 amount) public updateReward(msg.sender) checkNextEpoch checkStart { require(amount > 0, "Cannot stake 0"); gracePeriodList[msg.sender]= block.timestamp + gracePeriod; super.tokenStake(amount); emit Staked(msg.sender, amount); } function withdraw(uint256 amount) public updateReward(msg.sender) checkNextEpoch checkStart { require(amount > 0, "Cannot withdraw 0"); super.tokenWithdraw(amount, gracePeriodList[msg.sender]); emit Withdrawn(msg.sender, amount); } function getPeriodFinish() public view returns (uint256){ return periodFinish; } function getReward() public updateReward(msg.sender) checkNextEpoch checkStart returns (uint256) { uint256 reward = earned(msg.sender); if (reward > 1) { accumulatedStakingPower[msg.sender] = accumulatedStakingPower[msg.sender].add(rewards[msg.sender]); rewards[msg.sender] = 0; berserk.transfer(msg.sender, reward); emit RewardPaid(msg.sender, reward); return reward; } return 0; } function getAmountBurned() public returns (uint256){ burnAmountTest= berserk.getBurnAmount(); return burnAmountTest; } function getUserGracePeriod() public view returns(uint256){ return gracePeriodList[msg.sender]; } function getBoolUserGracePeriod() public view returns (bool){ if (block.timestamp>gracePeriodList[msg.sender]) return true; else return false; } function getcheck() public view returns(uint256){ return burnAmountTest; } function resetBurnPoolAmount() public { berserk.resetBurnAmount(); } function nextRewardMultiplier() public view returns (uint16) { if (rewardVote != address(0)) { uint256 numberOfVotes = IBerserkVote(rewardVote).getNumVotes(address(this), periodFinish); if (numberOfVotes >=30) { uint16 votingValue = IBerserkVote(rewardVote).averageVotingValue(address(this), periodFinish); if (votingValue > 0) return votingValue; } } return 100; } modifier checkNextEpoch() { if (block.timestamp >= periodFinish) { uint256 rewardMultiplier = nextRewardMultiplier(); // 50% -> 200% (by vote) if (currentEpoch == 1){ currentEpochReward= EPOCH_REWARD.mul(2).div(7); DURATION = 2 days; } if (currentEpoch ==2 ){ currentEpochReward= EPOCH_REWARD; DURATION= 1 weeks; } if (currentEpoch > 2){ currentEpochReward= EPOCH_REWARD.mul(rewardMultiplier).div(100); } if (currentEpochReward > 0) { berserk.mint(address(this), currentEpochReward); burnAmountTest= berserk.getBurnAmount(); currentEpochReward = currentEpochReward+burnAmountTest; berserk.resetBurnAmount(); totalAccumulatedReward = totalAccumulatedReward.add(currentEpochReward); currentEpoch++; } rewardRate = currentEpochReward.div(DURATION); lastUpdateTime = block.timestamp; periodFinish = block.timestamp.add(DURATION); emit RewardAdded(currentEpochReward); } _; } modifier checkStart() { require(block.timestamp > starttime, "not start"); _; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"Burned","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"CommissionPaid","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"RewardAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"RewardPaid","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Staked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdrawn","type":"event"},{"constant":true,"inputs":[],"name":"DURATION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"EPOCH_REWARD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"NUMBER_EPOCHS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"accumulatedStakingPower","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"berserk","outputs":[{"internalType":"contract IBerserkToken","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"burnAmountTest","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"continueStaking","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"currentEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"currentEpochReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"earned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"getAmountBurned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getBoolUserGracePeriod","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getPeriodFinish","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"getReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getUserGracePeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getcheck","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"gracePeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"gracePeriodList","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lastTimeRewardApplicable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lastUpdateTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"nextRewardMultiplier","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"periodFinish","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"resetBurnPoolAmount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"rewardPerToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rewardPerTokenStored","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rewardRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rewardVote","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"rewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_rewardVote","type":"address"}],"name":"setRewardVote","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"stake","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"stakingPower","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"starttime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalAccumulatedReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userRewardPerTokenPaid","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"y","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}]
Contract Creation Code
6080604052735aeec06be0ac269ce284dbb3186454ea564847126000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a9d78b9e8f32038e580457d497f79e660101d88600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062093a806006556305f5e100600755680168d28e3f0028000060085562127500600955600854600a556000600b556001600c55635fac1890600d556000600e556000600f5560006016556101056101c760201b60201c565b600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36101cf565b600033905090565b61397d80620001df6000396000f3fe608060405234801561001057600080fd5b506004361061025d5760003560e01c80638da5889711610146578063c8f33c91116100c3578063e68e035b11610087578063e68e035b1461089a578063e9b46e6d146108b8578063ebe2b12b14610910578063f2fde38b1461092e578063fb6c91b614610972578063ffe489021461097c5761025d565b8063c8f33c91146107d8578063cb17d14f146107f6578063cd3daf9d14610814578063d9a038ea14610832578063df136d651461087c5761025d565b8063a06db7dc1161010a578063a06db7dc146106da578063a56dfe4a146106f8578063a694fc3a14610742578063c331ff6a14610770578063c3dee20b1461078e5761025d565b80638da58897146105ee5780638da5cb5b1461060c5780638f32d59b1461065657806391f5bb56146106785780639ee1d8fb146106d05761025d565b8063207e821d116101df57806370a08231116101a357806370a08231146104da578063715018a614610532578063766718081461053c5780637b0a47ee1461055a57806380faa57d146105785780638b876347146105965761025d565b8063207e821d1461042c5780632e1a7d4d1461044a5780632e329bd3146104785780633d18b9121461049e57806348925650146104bc5761025d565b806318160ddd1161022657806318160ddd14610370578063194186c61461038e5780631961eaf9146103ac5780631be05289146103f05780632048f7711461040e5761025d565b80628cc262146102625780630700037d146102ba578063097fffe5146103125780630fcfc6a81461033457806313eb6c8814610352575b600080fd5b6102a46004803603602081101561027857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109d4565b6040518082815260200191505060405180910390f35b6102fc600480360360208110156102d057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ac0565b6040518082815260200191505060405180910390f35b61031a610ad8565b604051808215151515815260200191505060405180910390f35b61033c610b32565b6040518082815260200191505060405180910390f35b61035a610b38565b6040518082815260200191505060405180910390f35b610378610b3e565b6040518082815260200191505060405180910390f35b610396610b48565b6040518082815260200191505060405180910390f35b6103ee600480360360208110156103c257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b4e565b005b6103f8610c0c565b6040518082815260200191505060405180910390f35b610416610c12565b6040518082815260200191505060405180910390f35b610434610c1c565b6040518082815260200191505060405180910390f35b6104766004803603602081101561046057600080fd5b8101908080359060200190929190505050610c22565b005b6104806111f7565b604051808261ffff1661ffff16815260200191505060405180910390f35b6104a6611449565b6040518082815260200191505060405180910390f35b6104c4611b84565b6040518082815260200191505060405180910390f35b61051c600480360360208110156104f057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611bcb565b6040518082815260200191505060405180910390f35b61053a611c14565b005b610544611d4f565b6040518082815260200191505060405180910390f35b610562611d55565b6040518082815260200191505060405180910390f35b610580611d5b565b6040518082815260200191505060405180910390f35b6105d8600480360360208110156105ac57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d6e565b6040518082815260200191505060405180910390f35b6105f6611d86565b6040518082815260200191505060405180910390f35b610614611d8c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61065e611db6565b604051808215151515815260200191505060405180910390f35b6106ba6004803603602081101561068e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e15565b6040518082815260200191505060405180910390f35b6106d8611e2d565b005b6106e2611eb1565b6040518082815260200191505060405180910390f35b610700611eb7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61076e6004803603602081101561075857600080fd5b8101908080359060200190929190505050611edc565b005b6107786124b9565b6040518082815260200191505060405180910390f35b61079661256e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107e0612594565b6040518082815260200191505060405180910390f35b6107fe61259a565b6040518082815260200191505060405180910390f35b61081c6125a4565b6040518082815260200191505060405180910390f35b61083a61263c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610884612662565b6040518082815260200191505060405180910390f35b6108a2612668565b6040518082815260200191505060405180910390f35b6108fa600480360360208110156108ce57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061266e565b6040518082815260200191505060405180910390f35b610918612686565b6040518082815260200191505060405180910390f35b6109706004803603602081101561094457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061268c565b005b61097a612712565b005b6109be6004803603602081101561099257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612bd9565b6040518082815260200191505060405180910390f35b600080610ab5601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610aa7670de0b6b3a7640000610a99610a82601260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a746125a4565b612c3c90919063ffffffff16565b610a8b89611bcb565b612c8690919063ffffffff16565b612d0c90919063ffffffff16565b612d5690919063ffffffff16565b905080915050919050565b60136020528060005260406000206000915090505481565b6000601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054421115610b2a5760019050610b2f565b600090505b90565b60075481565b60085481565b6000600154905090565b60165481565b610b56611db6565b610bc8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60065481565b6000601654905090565b600b5481565b33610c2b6125a4565b601181905550610c39611d5b565b601081905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610d0657610c7c816109d4565b601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601154601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600e54421061106f576000610d196111f7565b61ffff1690506001600c541415610d6457610d536007610d456002600854612c8690919063ffffffff16565b612d0c90919063ffffffff16565b600a819055506202a3006006819055505b6002600c541415610d8357600854600a8190555062093a806006819055505b6002600c541115610dbd57610db66064610da883600854612c8690919063ffffffff16565b612d0c90919063ffffffff16565b600a819055505b6000600a541115610ff557600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1930600a546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015610e7357600080fd5b505af1158015610e87573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0c5c5856040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610ef557600080fd5b505af1158015610f09573d6000803e3d6000fd5b505050506040513d6020811015610f1f57600080fd5b8101908080519060200190929190505050601681905550601654600a5401600a81905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ace892346040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610fad57600080fd5b505af1158015610fc1573d6000803e3d6000fd5b50505050610fdc600a54600b54612d5690919063ffffffff16565b600b81905550600c600081548092919060010191905055505b61100c600654600a54612d0c90919063ffffffff16565b600f819055504260108190555061102e60065442612d5690919063ffffffff16565b600e819055507fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d600a546040518082815260200191505060405180910390a1505b600d5442116110e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f6e6f74207374617274000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000821161115c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f43616e6e6f74207769746864726177203000000000000000000000000000000081525060200191505060405180910390fd5b6111a582601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612dde565b3373ffffffffffffffffffffffffffffffffffffffff167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5836040518082815260200191505060405180910390a25050565b60008073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611441576000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d8476fec30600e546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060206040518083038186803b1580156112f957600080fd5b505afa15801561130d573d6000803e3d6000fd5b505050506040513d602081101561132357600080fd5b81019080805190602001909291905050509050601e811061143f576000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166397ec0ffd30600e546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060206040518083038186803b1580156113e957600080fd5b505afa1580156113fd573d6000803e3d6000fd5b505050506040513d602081101561141357600080fd5b8101908080519060200190929190505050905060008161ffff16111561143d578092505050611446565b505b505b606490505b90565b6000336114546125a4565b601181905550611462611d5b565b601081905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461152f576114a5816109d4565b601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601154601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600e5442106118985760006115426111f7565b61ffff1690506001600c54141561158d5761157c600761156e6002600854612c8690919063ffffffff16565b612d0c90919063ffffffff16565b600a819055506202a3006006819055505b6002600c5414156115ac57600854600a8190555062093a806006819055505b6002600c5411156115e6576115df60646115d183600854612c8690919063ffffffff16565b612d0c90919063ffffffff16565b600a819055505b6000600a54111561181e57600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1930600a546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561169c57600080fd5b505af11580156116b0573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0c5c5856040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561171e57600080fd5b505af1158015611732573d6000803e3d6000fd5b505050506040513d602081101561174857600080fd5b8101908080519060200190929190505050601681905550601654600a5401600a81905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ace892346040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156117d657600080fd5b505af11580156117ea573d6000803e3d6000fd5b50505050611805600a54600b54612d5690919063ffffffff16565b600b81905550600c600081548092919060010191905055505b611835600654600a54612d0c90919063ffffffff16565b600f819055504260108190555061185760065442612d5690919063ffffffff16565b600e819055507fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d600a546040518082815260200191505060405180910390a1505b600d54421161190f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f6e6f74207374617274000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600061191a336109d4565b90506001811115611b7a576119b6601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d5690919063ffffffff16565b601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611ae757600080fd5b505af1158015611afb573d6000803e3d6000fd5b505050506040513d6020811015611b1157600080fd5b8101908080519060200190929190505050503373ffffffffffffffffffffffffffffffffffffffff167fe2403640ba68fed3a2f88b7557551d1993f84b99bb10ff833f0cf8db0c5e0486826040518082815260200191505060405180910390a280925050611b80565b60009250505b5090565b6000601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611c1c611db6565b611c8e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600c5481565b600f5481565b6000611d6942600e5461307c565b905090565b60126020528060005260406000206000915090505481565b600d5481565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611df9613095565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b60156020528060005260406000206000915090505481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ace892346040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611e9757600080fd5b505af1158015611eab573d6000803e3d6000fd5b50505050565b60095481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b33611ee56125a4565b601181905550611ef3611d5b565b601081905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611fc057611f36816109d4565b601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601154601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600e544210612329576000611fd36111f7565b61ffff1690506001600c54141561201e5761200d6007611fff6002600854612c8690919063ffffffff16565b612d0c90919063ffffffff16565b600a819055506202a3006006819055505b6002600c54141561203d57600854600a8190555062093a806006819055505b6002600c54111561207757612070606461206283600854612c8690919063ffffffff16565b612d0c90919063ffffffff16565b600a819055505b6000600a5411156122af57600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1930600a546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561212d57600080fd5b505af1158015612141573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0c5c5856040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156121af57600080fd5b505af11580156121c3573d6000803e3d6000fd5b505050506040513d60208110156121d957600080fd5b8101908080519060200190929190505050601681905550601654600a5401600a81905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ace892346040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561226757600080fd5b505af115801561227b573d6000803e3d6000fd5b50505050612296600a54600b54612d5690919063ffffffff16565b600b81905550600c600081548092919060010191905055505b6122c6600654600a54612d0c90919063ffffffff16565b600f81905550426010819055506122e860065442612d5690919063ffffffff16565b600e819055507fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d600a546040518082815260200191505060405180910390a1505b600d5442116123a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f6e6f74207374617274000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60008211612416576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f43616e6e6f74207374616b65203000000000000000000000000000000000000081525060200191505060405180910390fd5b6009544201601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124678261309d565b3373ffffffffffffffffffffffffffffffffffffffff167f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d836040518082815260200191505060405180910390a25050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0c5c5856040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561252557600080fd5b505af1158015612539573d6000803e3d6000fd5b505050506040513d602081101561254f57600080fd5b8101908080519060200190929190505050601681905550601654905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60105481565b6000600e54905090565b6000806125af610b3e565b14156125bf576011549050612639565b6126366126256125cd610b3e565b612617670de0b6b3a7640000612609600f546125fb6010546125ed611d5b565b612c3c90919063ffffffff16565b612c8690919063ffffffff16565b612c8690919063ffffffff16565b612d0c90919063ffffffff16565b601154612d5690919063ffffffff16565b90505b90565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60115481565b600a5481565b60146020528060005260406000206000915090505481565b600e5481565b612694611db6565b612706576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b61270f8161319e565b50565b3361271b6125a4565b601181905550612729611d5b565b601081905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146127f65761276c816109d4565b601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601154601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600e544210612b5f5760006128096111f7565b61ffff1690506001600c5414156128545761284360076128356002600854612c8690919063ffffffff16565b612d0c90919063ffffffff16565b600a819055506202a3006006819055505b6002600c54141561287357600854600a8190555062093a806006819055505b6002600c5411156128ad576128a6606461289883600854612c8690919063ffffffff16565b612d0c90919063ffffffff16565b600a819055505b6000600a541115612ae557600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1930600a546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561296357600080fd5b505af1158015612977573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0c5c5856040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156129e557600080fd5b505af11580156129f9573d6000803e3d6000fd5b505050506040513d6020811015612a0f57600080fd5b8101908080519060200190929190505050601681905550601654600a5401600a81905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ace892346040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612a9d57600080fd5b505af1158015612ab1573d6000803e3d6000fd5b50505050612acc600a54600b54612d5690919063ffffffff16565b600b81905550600c600081548092919060010191905055505b612afc600654600a54612d0c90919063ffffffff16565b600f8190555042601081905550612b1e60065442612d5690919063ffffffff16565b600e819055507fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d600a546040518082815260200191505060405180910390a1505b600d544211612bd6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f6e6f74207374617274000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b50565b6000612c35612be7836109d4565b601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d5690919063ffffffff16565b9050919050565b6000612c7e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506132e4565b905092915050565b600080831415612c995760009050612d06565b6000828402905082848281612caa57fe5b0414612d01576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806138fe6021913960400191505060405180910390fd5b809150505b92915050565b6000612d4e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506133a4565b905092915050565b600080828401905083811015612dd4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b80421115612ee757612dfb82600154612c3c90919063ffffffff16565b600181905550612e5382600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c3c90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ee233836000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661346a9092919063ffffffff16565b613078565b6000612f106064612f02601486612c8690919063ffffffff16565b612d0c90919063ffffffff16565b9050612f2783600154612c3c90919063ffffffff16565b600181905550612f7f83600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c3c90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000818403905061301533826000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661346a9092919063ffffffff16565b613075732222222222222222222222222222222222222222836000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661346a9092919063ffffffff16565b50505b5050565b600081831061308b578161308d565b825b905092915050565b600033905090565b6130b281600154612d5690919063ffffffff16565b60018190555061310a81600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d5690919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061319b3330836000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661353b909392919063ffffffff16565b50565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415613224576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806138d86026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000838311158290613391576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561335657808201518184015260208101905061333b565b50505050905090810190601f1680156133835780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008083118290613450576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156134155780820151818401526020810190506133fa565b50505050905090810190601f1680156134425780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161345c57fe5b049050809150509392505050565b613536838473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb905060e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050613641565b505050565b61363b848573ffffffffffffffffffffffffffffffffffffffff166323b872dd905060e01b858585604051602401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050613641565b50505050565b6136608273ffffffffffffffffffffffffffffffffffffffff1661388c565b6136d2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e74726163740081525060200191505060405180910390fd5b600060608373ffffffffffffffffffffffffffffffffffffffff16836040518082805190602001908083835b6020831061372157805182526020820191506020810190506020830392506136fe565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613783576040519150601f19603f3d011682016040523d82523d6000602084013e613788565b606091505b509150915081613800576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656481525060200191505060405180910390fd5b6000815111156138865780806020019051602081101561381f57600080fd5b8101908080519060200190929190505050613885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a81526020018061391f602a913960400191505060405180910390fd5b5b50505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f91506000801b82141580156138ce5750808214155b9250505091905056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a265627a7a7231582088857cf4284d7fcf8af9ce50782510a81772f5a82845da70d214f7b06e27dda964736f6c63430005110032
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061025d5760003560e01c80638da5889711610146578063c8f33c91116100c3578063e68e035b11610087578063e68e035b1461089a578063e9b46e6d146108b8578063ebe2b12b14610910578063f2fde38b1461092e578063fb6c91b614610972578063ffe489021461097c5761025d565b8063c8f33c91146107d8578063cb17d14f146107f6578063cd3daf9d14610814578063d9a038ea14610832578063df136d651461087c5761025d565b8063a06db7dc1161010a578063a06db7dc146106da578063a56dfe4a146106f8578063a694fc3a14610742578063c331ff6a14610770578063c3dee20b1461078e5761025d565b80638da58897146105ee5780638da5cb5b1461060c5780638f32d59b1461065657806391f5bb56146106785780639ee1d8fb146106d05761025d565b8063207e821d116101df57806370a08231116101a357806370a08231146104da578063715018a614610532578063766718081461053c5780637b0a47ee1461055a57806380faa57d146105785780638b876347146105965761025d565b8063207e821d1461042c5780632e1a7d4d1461044a5780632e329bd3146104785780633d18b9121461049e57806348925650146104bc5761025d565b806318160ddd1161022657806318160ddd14610370578063194186c61461038e5780631961eaf9146103ac5780631be05289146103f05780632048f7711461040e5761025d565b80628cc262146102625780630700037d146102ba578063097fffe5146103125780630fcfc6a81461033457806313eb6c8814610352575b600080fd5b6102a46004803603602081101561027857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109d4565b6040518082815260200191505060405180910390f35b6102fc600480360360208110156102d057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ac0565b6040518082815260200191505060405180910390f35b61031a610ad8565b604051808215151515815260200191505060405180910390f35b61033c610b32565b6040518082815260200191505060405180910390f35b61035a610b38565b6040518082815260200191505060405180910390f35b610378610b3e565b6040518082815260200191505060405180910390f35b610396610b48565b6040518082815260200191505060405180910390f35b6103ee600480360360208110156103c257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b4e565b005b6103f8610c0c565b6040518082815260200191505060405180910390f35b610416610c12565b6040518082815260200191505060405180910390f35b610434610c1c565b6040518082815260200191505060405180910390f35b6104766004803603602081101561046057600080fd5b8101908080359060200190929190505050610c22565b005b6104806111f7565b604051808261ffff1661ffff16815260200191505060405180910390f35b6104a6611449565b6040518082815260200191505060405180910390f35b6104c4611b84565b6040518082815260200191505060405180910390f35b61051c600480360360208110156104f057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611bcb565b6040518082815260200191505060405180910390f35b61053a611c14565b005b610544611d4f565b6040518082815260200191505060405180910390f35b610562611d55565b6040518082815260200191505060405180910390f35b610580611d5b565b6040518082815260200191505060405180910390f35b6105d8600480360360208110156105ac57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d6e565b6040518082815260200191505060405180910390f35b6105f6611d86565b6040518082815260200191505060405180910390f35b610614611d8c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61065e611db6565b604051808215151515815260200191505060405180910390f35b6106ba6004803603602081101561068e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e15565b6040518082815260200191505060405180910390f35b6106d8611e2d565b005b6106e2611eb1565b6040518082815260200191505060405180910390f35b610700611eb7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61076e6004803603602081101561075857600080fd5b8101908080359060200190929190505050611edc565b005b6107786124b9565b6040518082815260200191505060405180910390f35b61079661256e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107e0612594565b6040518082815260200191505060405180910390f35b6107fe61259a565b6040518082815260200191505060405180910390f35b61081c6125a4565b6040518082815260200191505060405180910390f35b61083a61263c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610884612662565b6040518082815260200191505060405180910390f35b6108a2612668565b6040518082815260200191505060405180910390f35b6108fa600480360360208110156108ce57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061266e565b6040518082815260200191505060405180910390f35b610918612686565b6040518082815260200191505060405180910390f35b6109706004803603602081101561094457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061268c565b005b61097a612712565b005b6109be6004803603602081101561099257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612bd9565b6040518082815260200191505060405180910390f35b600080610ab5601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610aa7670de0b6b3a7640000610a99610a82601260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a746125a4565b612c3c90919063ffffffff16565b610a8b89611bcb565b612c8690919063ffffffff16565b612d0c90919063ffffffff16565b612d5690919063ffffffff16565b905080915050919050565b60136020528060005260406000206000915090505481565b6000601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054421115610b2a5760019050610b2f565b600090505b90565b60075481565b60085481565b6000600154905090565b60165481565b610b56611db6565b610bc8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60065481565b6000601654905090565b600b5481565b33610c2b6125a4565b601181905550610c39611d5b565b601081905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610d0657610c7c816109d4565b601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601154601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600e54421061106f576000610d196111f7565b61ffff1690506001600c541415610d6457610d536007610d456002600854612c8690919063ffffffff16565b612d0c90919063ffffffff16565b600a819055506202a3006006819055505b6002600c541415610d8357600854600a8190555062093a806006819055505b6002600c541115610dbd57610db66064610da883600854612c8690919063ffffffff16565b612d0c90919063ffffffff16565b600a819055505b6000600a541115610ff557600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1930600a546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015610e7357600080fd5b505af1158015610e87573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0c5c5856040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610ef557600080fd5b505af1158015610f09573d6000803e3d6000fd5b505050506040513d6020811015610f1f57600080fd5b8101908080519060200190929190505050601681905550601654600a5401600a81905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ace892346040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610fad57600080fd5b505af1158015610fc1573d6000803e3d6000fd5b50505050610fdc600a54600b54612d5690919063ffffffff16565b600b81905550600c600081548092919060010191905055505b61100c600654600a54612d0c90919063ffffffff16565b600f819055504260108190555061102e60065442612d5690919063ffffffff16565b600e819055507fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d600a546040518082815260200191505060405180910390a1505b600d5442116110e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f6e6f74207374617274000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000821161115c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f43616e6e6f74207769746864726177203000000000000000000000000000000081525060200191505060405180910390fd5b6111a582601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612dde565b3373ffffffffffffffffffffffffffffffffffffffff167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5836040518082815260200191505060405180910390a25050565b60008073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611441576000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d8476fec30600e546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060206040518083038186803b1580156112f957600080fd5b505afa15801561130d573d6000803e3d6000fd5b505050506040513d602081101561132357600080fd5b81019080805190602001909291905050509050601e811061143f576000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166397ec0ffd30600e546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060206040518083038186803b1580156113e957600080fd5b505afa1580156113fd573d6000803e3d6000fd5b505050506040513d602081101561141357600080fd5b8101908080519060200190929190505050905060008161ffff16111561143d578092505050611446565b505b505b606490505b90565b6000336114546125a4565b601181905550611462611d5b565b601081905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461152f576114a5816109d4565b601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601154601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600e5442106118985760006115426111f7565b61ffff1690506001600c54141561158d5761157c600761156e6002600854612c8690919063ffffffff16565b612d0c90919063ffffffff16565b600a819055506202a3006006819055505b6002600c5414156115ac57600854600a8190555062093a806006819055505b6002600c5411156115e6576115df60646115d183600854612c8690919063ffffffff16565b612d0c90919063ffffffff16565b600a819055505b6000600a54111561181e57600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1930600a546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561169c57600080fd5b505af11580156116b0573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0c5c5856040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561171e57600080fd5b505af1158015611732573d6000803e3d6000fd5b505050506040513d602081101561174857600080fd5b8101908080519060200190929190505050601681905550601654600a5401600a81905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ace892346040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156117d657600080fd5b505af11580156117ea573d6000803e3d6000fd5b50505050611805600a54600b54612d5690919063ffffffff16565b600b81905550600c600081548092919060010191905055505b611835600654600a54612d0c90919063ffffffff16565b600f819055504260108190555061185760065442612d5690919063ffffffff16565b600e819055507fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d600a546040518082815260200191505060405180910390a1505b600d54421161190f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f6e6f74207374617274000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600061191a336109d4565b90506001811115611b7a576119b6601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d5690919063ffffffff16565b601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611ae757600080fd5b505af1158015611afb573d6000803e3d6000fd5b505050506040513d6020811015611b1157600080fd5b8101908080519060200190929190505050503373ffffffffffffffffffffffffffffffffffffffff167fe2403640ba68fed3a2f88b7557551d1993f84b99bb10ff833f0cf8db0c5e0486826040518082815260200191505060405180910390a280925050611b80565b60009250505b5090565b6000601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611c1c611db6565b611c8e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600c5481565b600f5481565b6000611d6942600e5461307c565b905090565b60126020528060005260406000206000915090505481565b600d5481565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611df9613095565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b60156020528060005260406000206000915090505481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ace892346040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611e9757600080fd5b505af1158015611eab573d6000803e3d6000fd5b50505050565b60095481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b33611ee56125a4565b601181905550611ef3611d5b565b601081905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611fc057611f36816109d4565b601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601154601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600e544210612329576000611fd36111f7565b61ffff1690506001600c54141561201e5761200d6007611fff6002600854612c8690919063ffffffff16565b612d0c90919063ffffffff16565b600a819055506202a3006006819055505b6002600c54141561203d57600854600a8190555062093a806006819055505b6002600c54111561207757612070606461206283600854612c8690919063ffffffff16565b612d0c90919063ffffffff16565b600a819055505b6000600a5411156122af57600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1930600a546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561212d57600080fd5b505af1158015612141573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0c5c5856040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156121af57600080fd5b505af11580156121c3573d6000803e3d6000fd5b505050506040513d60208110156121d957600080fd5b8101908080519060200190929190505050601681905550601654600a5401600a81905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ace892346040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561226757600080fd5b505af115801561227b573d6000803e3d6000fd5b50505050612296600a54600b54612d5690919063ffffffff16565b600b81905550600c600081548092919060010191905055505b6122c6600654600a54612d0c90919063ffffffff16565b600f81905550426010819055506122e860065442612d5690919063ffffffff16565b600e819055507fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d600a546040518082815260200191505060405180910390a1505b600d5442116123a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f6e6f74207374617274000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60008211612416576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f43616e6e6f74207374616b65203000000000000000000000000000000000000081525060200191505060405180910390fd5b6009544201601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124678261309d565b3373ffffffffffffffffffffffffffffffffffffffff167f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d836040518082815260200191505060405180910390a25050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0c5c5856040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561252557600080fd5b505af1158015612539573d6000803e3d6000fd5b505050506040513d602081101561254f57600080fd5b8101908080519060200190929190505050601681905550601654905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60105481565b6000600e54905090565b6000806125af610b3e565b14156125bf576011549050612639565b6126366126256125cd610b3e565b612617670de0b6b3a7640000612609600f546125fb6010546125ed611d5b565b612c3c90919063ffffffff16565b612c8690919063ffffffff16565b612c8690919063ffffffff16565b612d0c90919063ffffffff16565b601154612d5690919063ffffffff16565b90505b90565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60115481565b600a5481565b60146020528060005260406000206000915090505481565b600e5481565b612694611db6565b612706576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b61270f8161319e565b50565b3361271b6125a4565b601181905550612729611d5b565b601081905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146127f65761276c816109d4565b601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601154601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600e544210612b5f5760006128096111f7565b61ffff1690506001600c5414156128545761284360076128356002600854612c8690919063ffffffff16565b612d0c90919063ffffffff16565b600a819055506202a3006006819055505b6002600c54141561287357600854600a8190555062093a806006819055505b6002600c5411156128ad576128a6606461289883600854612c8690919063ffffffff16565b612d0c90919063ffffffff16565b600a819055505b6000600a541115612ae557600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1930600a546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561296357600080fd5b505af1158015612977573d6000803e3d6000fd5b50505050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0c5c5856040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156129e557600080fd5b505af11580156129f9573d6000803e3d6000fd5b505050506040513d6020811015612a0f57600080fd5b8101908080519060200190929190505050601681905550601654600a5401600a81905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ace892346040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612a9d57600080fd5b505af1158015612ab1573d6000803e3d6000fd5b50505050612acc600a54600b54612d5690919063ffffffff16565b600b81905550600c600081548092919060010191905055505b612afc600654600a54612d0c90919063ffffffff16565b600f8190555042601081905550612b1e60065442612d5690919063ffffffff16565b600e819055507fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d600a546040518082815260200191505060405180910390a1505b600d544211612bd6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f6e6f74207374617274000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b50565b6000612c35612be7836109d4565b601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d5690919063ffffffff16565b9050919050565b6000612c7e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506132e4565b905092915050565b600080831415612c995760009050612d06565b6000828402905082848281612caa57fe5b0414612d01576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806138fe6021913960400191505060405180910390fd5b809150505b92915050565b6000612d4e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506133a4565b905092915050565b600080828401905083811015612dd4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b80421115612ee757612dfb82600154612c3c90919063ffffffff16565b600181905550612e5382600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c3c90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ee233836000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661346a9092919063ffffffff16565b613078565b6000612f106064612f02601486612c8690919063ffffffff16565b612d0c90919063ffffffff16565b9050612f2783600154612c3c90919063ffffffff16565b600181905550612f7f83600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c3c90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000818403905061301533826000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661346a9092919063ffffffff16565b613075732222222222222222222222222222222222222222836000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661346a9092919063ffffffff16565b50505b5050565b600081831061308b578161308d565b825b905092915050565b600033905090565b6130b281600154612d5690919063ffffffff16565b60018190555061310a81600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d5690919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061319b3330836000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661353b909392919063ffffffff16565b50565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415613224576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806138d86026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000838311158290613391576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561335657808201518184015260208101905061333b565b50505050905090810190601f1680156133835780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008083118290613450576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156134155780820151818401526020810190506133fa565b50505050905090810190601f1680156134425780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161345c57fe5b049050809150509392505050565b613536838473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb905060e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050613641565b505050565b61363b848573ffffffffffffffffffffffffffffffffffffffff166323b872dd905060e01b858585604051602401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050613641565b50505050565b6136608273ffffffffffffffffffffffffffffffffffffffff1661388c565b6136d2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e74726163740081525060200191505060405180910390fd5b600060608373ffffffffffffffffffffffffffffffffffffffff16836040518082805190602001908083835b6020831061372157805182526020820191506020810190506020830392506136fe565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613783576040519150601f19603f3d011682016040523d82523d6000602084013e613788565b606091505b509150915081613800576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656481525060200191505060405180910390fd5b6000815111156138865780806020019051602081101561381f57600080fd5b8101908080519060200190929190505050613885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a81526020018061391f602a913960400191505060405180910390fd5b5b50505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f91506000801b82141580156138ce5750808214155b9250505091905056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a265627a7a7231582088857cf4284d7fcf8af9ce50782510a81772f5a82845da70d214f7b06e27dda964736f6c63430005110032
Deployed Bytecode Sourcemap
9678:6708:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9678:6708:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11993:294;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11993:294:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10545:42;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10545:42:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14068:180;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;9913:41;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9963:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7695:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10771:32;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7234:106;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7234:106:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;9872:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14260:88;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10153:41;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12869:263;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12869:263:0;;;;;;;;;;;;;;;;;:::i;:::-;;14450:484;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13254:526;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13945:111;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7794:110;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7794:110:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2790:140;;;:::i;:::-;;10201:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10367:29;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11470:131;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10481:57;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10481:57:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10239:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2491:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2688:94;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10713:51;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10713:51:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14360:82;;;:::i;:::-;;10011:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7509:68;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;12566:291;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12566:291:0;;;;;;;;;;;;;;;;;:::i;:::-;;13792:141;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7200:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10403:29;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13146:94;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11609:376;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9757:88;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10439:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10096:48;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10594:58;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10594:58:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10329:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2938:109;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2938:109:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;12455:103;;;:::i;:::-;;12295:148;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12295:148:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11993:294;12047:7;12067:24;12094:151;12228:7;:16;12236:7;12228:16;;;;;;;;;;;;;;;;12094:115;12204:4;12094:91;12131:53;12152:22;:31;12175:7;12152:31;;;;;;;;;;;;;;;;12131:16;:14;:16::i;:::-;:20;;:53;;;;:::i;:::-;12094:18;12104:7;12094:9;:18::i;:::-;:36;;:91;;;;:::i;:::-;:109;;:115;;;;:::i;:::-;:133;;:151;;;;:::i;:::-;12067:178;;12263:16;12256:23;;;11993:294;;;:::o;10545:42::-;;;;;;;;;;;;;;;;;:::o;14068:180::-;14123:4;14159:15;:27;14175:10;14159:27;;;;;;;;;;;;;;;;14143:15;:43;14139:101;;;14208:4;14201:11;;;;14139:101;14235:5;14228:12;;14068:180;;:::o;9913:41::-;;;;:::o;9963:39::-;;;;:::o;7695:91::-;7739:7;7766:12;;7759:19;;7695:91;:::o;10771:32::-;;;;:::o;7234:106::-;2616:9;:7;:9::i;:::-;2608:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7321:11;7308:10;;:24;;;;;;;;;;;;;;;;;;7234:106;:::o;9872:34::-;;;;:::o;14260:88::-;14300:7;14326:14;;14319:21;;14260:88;:::o;10153:41::-;;;;:::o;12869:263::-;12923:10;11205:16;:14;:16::i;:::-;11182:20;:39;;;;11249:26;:24;:26::i;:::-;11232:14;:43;;;;11309:1;11290:21;;:7;:21;;;11286:157;;11347:15;11354:7;11347:6;:15::i;:::-;11328:7;:16;11336:7;11328:16;;;;;;;;;;;;;;;:34;;;;11411:20;;11377:22;:31;11400:7;11377:31;;;;;;;;;;;;;;;:54;;;;11286:157;15002:12;;14983:15;:31;14979:1269;;15031:24;15058:22;:20;:22::i;:::-;15031:49;;;;15154:1;15138:12;;:17;15134:139;;;15195:26;15219:1;15195:19;15212:1;15195:12;;:16;;:19;;;;:::i;:::-;:23;;:26;;;;:::i;:::-;15175:18;:46;;;;15251:6;15240:8;:17;;;;15134:139;15320:1;15305:12;;:16;15301:125;;;15362:12;;15342:18;:32;;;;15403:7;15393:8;:17;;;;15301:125;15473:1;15458:12;;:16;15454:119;;;15514:43;15553:3;15514:34;15531:16;15514:12;;:16;;:34;;;;:::i;:::-;:38;;:43;;;;:::i;:::-;15494:18;:63;;;;15454:119;15626:1;15605:18;;:22;15601:417;;;15648:7;;;;;;;;;;;:12;;;15669:4;15676:18;;15648:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15648:47:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15648:47:0;;;;15730:7;;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15730:23:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15730:23:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15730:23:0;;;;;;;;;;;;;;;;15714:14;:39;;;;15812:14;;15793:18;;:33;15772:18;:54;;;;15845:7;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15845:25:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15845:25:0;;;;15923:46;15950:18;;15923:22;;:26;;:46;;;;:::i;:::-;15898:22;:71;;;;15988:12;;:14;;;;;;;;;;;;;15601:417;16047:32;16070:8;;16047:18;;:22;;:32;;;;:::i;:::-;16034:10;:45;;;;16111:15;16094:14;:32;;;;16156:29;16176:8;;16156:15;:19;;:29;;;;:::i;:::-;16141:12;:44;;;;16205:31;16217:18;;16205:31;;;;;;;;;;;;;;;;;;14979:1269;;16334:9;;16316:15;:27;16308:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12989:1;12980:6;:10;12972:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13023:56;13043:6;13051:15;:27;13067:10;13051:27;;;;;;;;;;;;;;;;13023:19;:56::i;:::-;13105:10;13095:29;;;13117:6;13095:29;;;;;;;;;;;;;;;;;;12869:263;;:::o;14450:484::-;14503:6;14548:1;14526:24;;:10;;;;;;;;;;;:24;;;14522:384;;14567:21;14604:10;;;;;;;;;;;14591:36;;;14636:4;14643:12;;14591:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14591:65:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14591:65:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14591:65:0;;;;;;;;;;;;;;;;14567:89;;14705:2;14689:13;:18;14685:210;;14728:18;14762:10;;;;;;;;;;;14749:43;;;14801:4;14808:12;;14749:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14749:72:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14749:72:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14749:72:0;;;;;;;;;;;;;;;;14728:93;;14858:1;14844:11;:15;;;14840:39;;;14868:11;14861:18;;;;;;14840:39;14685:210;;14522:384;;14923:3;14916:10;;14450:484;;:::o;13254:526::-;13342:7;13295:10;11205:16;:14;:16::i;:::-;11182:20;:39;;;;11249:26;:24;:26::i;:::-;11232:14;:43;;;;11309:1;11290:21;;:7;:21;;;11286:157;;11347:15;11354:7;11347:6;:15::i;:::-;11328:7;:16;11336:7;11328:16;;;;;;;;;;;;;;;:34;;;;11411:20;;11377:22;:31;11400:7;11377:31;;;;;;;;;;;;;;;:54;;;;11286:157;15002:12;;14983:15;:31;14979:1269;;15031:24;15058:22;:20;:22::i;:::-;15031:49;;;;15154:1;15138:12;;:17;15134:139;;;15195:26;15219:1;15195:19;15212:1;15195:12;;:16;;:19;;;;:::i;:::-;:23;;:26;;;;:::i;:::-;15175:18;:46;;;;15251:6;15240:8;:17;;;;15134:139;15320:1;15305:12;;:16;15301:125;;;15362:12;;15342:18;:32;;;;15403:7;15393:8;:17;;;;15301:125;15473:1;15458:12;;:16;15454:119;;;15514:43;15553:3;15514:34;15531:16;15514:12;;:16;;:34;;;;:::i;:::-;:38;;:43;;;;:::i;:::-;15494:18;:63;;;;15454:119;15626:1;15605:18;;:22;15601:417;;;15648:7;;;;;;;;;;;:12;;;15669:4;15676:18;;15648:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15648:47:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15648:47:0;;;;15730:7;;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15730:23:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15730:23:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15730:23:0;;;;;;;;;;;;;;;;15714:14;:39;;;;15812:14;;15793:18;;:33;15772:18;:54;;;;15845:7;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15845:25:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15845:25:0;;;;15923:46;15950:18;;15923:22;;:26;;:46;;;;:::i;:::-;15898:22;:71;;;;15988:12;;:14;;;;;;;;;;;;;15601:417;16047:32;16070:8;;16047:18;;:22;;:32;;;;:::i;:::-;16034:10;:45;;;;16111:15;16094:14;:32;;;;16156:29;16176:8;;16156:15;:19;;:29;;;;:::i;:::-;16141:12;:44;;;;16205:31;16217:18;;16205:31;;;;;;;;;;;;;;;;;;14979:1269;;16334:9;;16316:15;:27;16308:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13362:14;13379:18;13386:10;13379:6;:18::i;:::-;13362:35;;13425:1;13416:6;:10;13412:342;;;13481:60;13521:7;:19;13529:10;13521:19;;;;;;;;;;;;;;;;13481:23;:35;13505:10;13481:35;;;;;;;;;;;;;;;;:39;;:60;;;;:::i;:::-;13443:23;:35;13467:10;13443:35;;;;;;;;;;;;;;;:98;;;;13578:1;13556:7;:19;13564:10;13556:19;;;;;;;;;;;;;;;:23;;;;13596:7;;;;;;;;;;;:16;;;13613:10;13625:6;13596:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13596:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13596:36:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13596:36:0;;;;;;;;;;;;;;;;;13663:10;13652:30;;;13675:6;13652:30;;;;;;;;;;;;;;;;;;13722:6;13715:13;;;;;13412:342;13771:1;13764:8;;;16368:1;13254:526;;:::o;13945:111::-;13995:7;14021:15;:27;14037:10;14021:27;;;;;;;;;;;;;;;;14014:34;;13945:111;:::o;7794:110::-;7851:7;7878:9;:18;7888:7;7878:18;;;;;;;;;;;;;;;;7871:25;;7794:110;;;:::o;2790:140::-;2616:9;:7;:9::i;:::-;2608:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2889:1;2852:40;;2873:6;;;;;;;;;;;2852:40;;;;;;;;;;;;2920:1;2903:6;;:19;;;;;;;;;;;;;;;;;;2790:140::o;10201:31::-;;;;:::o;10367:29::-;;;;:::o;11470:131::-;11527:7;11554:39;11563:15;11580:12;;11554:8;:39::i;:::-;11547:46;;11470:131;:::o;10481:57::-;;;;;;;;;;;;;;;;;:::o;10239:37::-;;;;:::o;2491:79::-;2529:7;2556:6;;;;;;;;;;;2549:13;;2491:79;:::o;2688:94::-;2728:4;2768:6;;;;;;;;;;;2752:22;;:12;:10;:12::i;:::-;:22;;;2745:29;;2688:94;:::o;10713:51::-;;;;;;;;;;;;;;;;;:::o;14360:82::-;14409:7;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14409:25:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14409:25:0;;;;14360:82::o;10011:36::-;;;;:::o;7509:68::-;;;;;;;;;;;;;:::o;12566:291::-;12617:10;11205:16;:14;:16::i;:::-;11182:20;:39;;;;11249:26;:24;:26::i;:::-;11232:14;:43;;;;11309:1;11290:21;;:7;:21;;;11286:157;;11347:15;11354:7;11347:6;:15::i;:::-;11328:7;:16;11336:7;11328:16;;;;;;;;;;;;;;;:34;;;;11411:20;;11377:22;:31;11400:7;11377:31;;;;;;;;;;;;;;;:54;;;;11286:157;15002:12;;14983:15;:31;14979:1269;;15031:24;15058:22;:20;:22::i;:::-;15031:49;;;;15154:1;15138:12;;:17;15134:139;;;15195:26;15219:1;15195:19;15212:1;15195:12;;:16;;:19;;;;:::i;:::-;:23;;:26;;;;:::i;:::-;15175:18;:46;;;;15251:6;15240:8;:17;;;;15134:139;15320:1;15305:12;;:16;15301:125;;;15362:12;;15342:18;:32;;;;15403:7;15393:8;:17;;;;15301:125;15473:1;15458:12;;:16;15454:119;;;15514:43;15553:3;15514:34;15531:16;15514:12;;:16;;:34;;;;:::i;:::-;:38;;:43;;;;:::i;:::-;15494:18;:63;;;;15454:119;15626:1;15605:18;;:22;15601:417;;;15648:7;;;;;;;;;;;:12;;;15669:4;15676:18;;15648:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15648:47:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15648:47:0;;;;15730:7;;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15730:23:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15730:23:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15730:23:0;;;;;;;;;;;;;;;;15714:14;:39;;;;15812:14;;15793:18;;:33;15772:18;:54;;;;15845:7;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15845:25:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15845:25:0;;;;15923:46;15950:18;;15923:22;;:26;;:46;;;;:::i;:::-;15898:22;:71;;;;15988:12;;:14;;;;;;;;;;;;;15601:417;16047:32;16070:8;;16047:18;;:22;;:32;;;;:::i;:::-;16034:10;:45;;;;16111:15;16094:14;:32;;;;16156:29;16176:8;;16156:15;:19;;:29;;;;:::i;:::-;16141:12;:44;;;;16205:31;16217:18;;16205:31;;;;;;;;;;;;;;;;;;14979:1269;;16334:9;;16316:15;:27;16308:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12683:1;12674:6;:10;12666:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12761:11;;12743:15;:29;12714:15;:27;12730:10;12714:27;;;;;;;;;;;;;;;:58;;;;12783:24;12800:6;12783:16;:24::i;:::-;12830:10;12823:26;;;12842:6;12823:26;;;;;;;;;;;;;;;;;;12566:291;;:::o;13792:141::-;13835:7;13870;;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13870:23:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13870:23:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13870:23:0;;;;;;;;;;;;;;;;13854:14;:39;;;;13911:14;;13904:21;;13792:141;:::o;7200:25::-;;;;;;;;;;;;;:::o;10403:29::-;;;;:::o;13146:94::-;13194:7;13220:12;;13213:19;;13146:94;:::o;11609:376::-;11656:7;11697:1;11680:13;:11;:13::i;:::-;:18;11676:78;;;11722:20;;11715:27;;;;11676:78;11780:197;11819:147;11952:13;:11;:13::i;:::-;11819:114;11928:4;11819:90;11898:10;;11819:60;11864:14;;11819:26;:24;:26::i;:::-;:44;;:60;;;;:::i;:::-;:78;;:90;;;;:::i;:::-;:108;;:114;;;;:::i;:::-;:132;;:147;;;;:::i;:::-;11780:20;;:24;;:197;;;;:::i;:::-;11764:213;;11609:376;;:::o;9757:88::-;;;;;;;;;;;;;:::o;10439:35::-;;;;:::o;10096:48::-;;;;:::o;10594:58::-;;;;;;;;;;;;;;;;;:::o;10329:31::-;;;;:::o;2938:109::-;2616:9;:7;:9::i;:::-;2608:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3011:28;3030:8;3011:18;:28::i;:::-;2938:109;:::o;12455:103::-;12502:10;11205:16;:14;:16::i;:::-;11182:20;:39;;;;11249:26;:24;:26::i;:::-;11232:14;:43;;;;11309:1;11290:21;;:7;:21;;;11286:157;;11347:15;11354:7;11347:6;:15::i;:::-;11328:7;:16;11336:7;11328:16;;;;;;;;;;;;;;;:34;;;;11411:20;;11377:22;:31;11400:7;11377:31;;;;;;;;;;;;;;;:54;;;;11286:157;15002:12;;14983:15;:31;14979:1269;;15031:24;15058:22;:20;:22::i;:::-;15031:49;;;;15154:1;15138:12;;:17;15134:139;;;15195:26;15219:1;15195:19;15212:1;15195:12;;:16;;:19;;;;:::i;:::-;:23;;:26;;;;:::i;:::-;15175:18;:46;;;;15251:6;15240:8;:17;;;;15134:139;15320:1;15305:12;;:16;15301:125;;;15362:12;;15342:18;:32;;;;15403:7;15393:8;:17;;;;15301:125;15473:1;15458:12;;:16;15454:119;;;15514:43;15553:3;15514:34;15531:16;15514:12;;:16;;:34;;;;:::i;:::-;:38;;:43;;;;:::i;:::-;15494:18;:63;;;;15454:119;15626:1;15605:18;;:22;15601:417;;;15648:7;;;;;;;;;;;:12;;;15669:4;15676:18;;15648:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15648:47:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15648:47:0;;;;15730:7;;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15730:23:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15730:23:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15730:23:0;;;;;;;;;;;;;;;;15714:14;:39;;;;15812:14;;15793:18;;:33;15772:18;:54;;;;15845:7;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15845:25:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15845:25:0;;;;15923:46;15950:18;;15923:22;;:26;;:46;;;;:::i;:::-;15898:22;:71;;;;15988:12;;:14;;;;;;;;;;;;;15601:417;16047:32;16070:8;;16047:18;;:22;;:32;;;;:::i;:::-;16034:10;:45;;;;16111:15;16094:14;:32;;;;16156:29;16176:8;;16156:15;:19;;:29;;;;:::i;:::-;16141:12;:44;;;;16205:31;16217:18;;16205:31;;;;;;;;;;;;;;;;;;14979:1269;;16334:9;;16316:15;:27;16308:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12455:103;:::o;12295:148::-;12355:7;12382:53;12419:15;12426:7;12419:6;:15::i;:::-;12382:23;:32;12406:7;12382:32;;;;;;;;;;;;;;;;:36;;:53;;;;:::i;:::-;12375:60;;12295:148;;;:::o;638:136::-;696:7;723:43;727:1;730;723:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;716:50;;638:136;;;;:::o;980:248::-;1038:7;1067:1;1062;:6;1058:47;;;1092:1;1085:8;;;;1058:47;1117:9;1133:1;1129;:5;1117:17;;1162:1;1157;1153;:5;;;;;;:10;1145:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1219:1;1212:8;;;980:248;;;;;:::o;1236:132::-;1294:7;1321:39;1325:1;1328;1321:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1314:46;;1236:132;;;;:::o;451:179::-;509:7;529:9;545:1;541;:5;529:17;;570:1;565;:6;;557:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;621:1;614:8;;;451:179;;;;:::o;8155:766::-;8261:15;8243;:33;8239:675;;;8307:24;8324:6;8307:12;;:16;;:24;;;;:::i;:::-;8292:12;:39;;;;8370:33;8396:6;8370:9;:21;8380:10;8370:21;;;;;;;;;;;;;;;;:25;;:33;;;;:::i;:::-;8346:9;:21;8356:10;8346:21;;;;;;;;;;;;;;;:57;;;;8418:34;8433:10;8445:6;8418:1;;;;;;;;;;;:14;;;;:34;;;;;:::i;:::-;8239:675;;;8504:20;8527:23;8546:3;8527:14;8538:2;8527:6;:10;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;8504:46;;8580:24;8597:6;8580:12;;:16;;:24;;;;:::i;:::-;8565:12;:39;;;;8643:33;8669:6;8643:9;:21;8653:10;8643:21;;;;;;;;;;;;;;;;:25;;:33;;;;:::i;:::-;8619:9;:21;8629:10;8619:21;;;;;;;;;;;;;;;:57;;;;8691:22;8724:12;8715:6;:21;8691:45;;8765:42;8780:10;8792:14;8765:1;;;;;;;;;;;:14;;;;:42;;;;;:::i;:::-;8822:80;8845:42;8889:12;8822:1;;;;;;;;;;;:14;;;;:80;;;;;:::i;:::-;8239:675;;;8155:766;;:::o;164:106::-;222:7;253:1;249;:5;:13;;261:1;249:13;;;257:1;249:13;242:20;;164:106;;;;:::o;1967:98::-;2012:15;2047:10;2040:17;;1967:98;:::o;7912:235::-;7983:24;8000:6;7983:12;;:16;;:24;;;;:::i;:::-;7968:12;:39;;;;8042:33;8068:6;8042:9;:21;8052:10;8042:21;;;;;;;;;;;;;;;;:25;;:33;;;;:::i;:::-;8018:9;:21;8028:10;8018:21;;;;;;;;;;;;;;;:57;;;;8086:53;8105:10;8125:4;8132:6;8086:1;;;;;;;;;;;:18;;;;:53;;;;;;:::i;:::-;7912:235;:::o;3055:229::-;3149:1;3129:22;;:8;:22;;;;3121:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3239:8;3210:38;;3231:6;;;;;;;;;;;3210:38;;;;;;;;;;;;3268:8;3259:6;;:17;;;;;;;;;;;;;;;;;;3055:229;:::o;782:190::-;868:7;901:1;896;:6;;904:12;888:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;888:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;928:9;944:1;940;:5;928:17;;963:1;956:8;;;782:190;;;;;:::o;1376:189::-;1462:7;1494:1;1490;:5;1497:12;1482:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1482:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1521:9;1537:1;1533;:5;;;;;;1521:17;;1556:1;1549:8;;;1376:189;;;;;:::o;5173:176::-;5256:85;5275:5;5305;:14;;;:23;;;;5330:2;5334:5;5282:58;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;5282:58:0;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;5282:58:0;5256:18;:85::i;:::-;5173:176;;;:::o;5357:204::-;5458:95;5477:5;5507;:18;;;:27;;;;5536:4;5542:2;5546:5;5484:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;5484:68:0;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;5484:68:0;5458:18;:95::i;:::-;5357:204;;;;:::o;6561:547::-;6659:27;6667:5;6659:25;;;:27::i;:::-;6651:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6736:12;6750:23;6785:5;6777:19;;6797:4;6777:25;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;6777:25:0;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;6735:67:0;;;;6821:7;6813:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6902:1;6882:10;:17;:21;6878:223;;;7023:10;7012:30;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7012:30:0;;;;;;;;;;;;;;;;7004:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6878:223;6561:547;;;;:::o;4160:372::-;4220:4;4237:16;4264:19;4286:66;4264:88;;;;4454:7;4442:20;4430:32;;4493:3;4481:15;;:8;:15;;:42;;;;;4512:11;4500:8;:23;;4481:42;4473:51;;;;4160:372;;;:::o
Swarm Source
bzzr://88857cf4284d7fcf8af9ce50782510a81772f5a82845da70d214f7b06e27dda9
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $0.101874 | 768.2479 | $78.26 |
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.