Source Code
Latest 25 from a total of 53 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Withdraw | 14427576 | 1453 days ago | IN | 0 ETH | 0.0023717 | ||||
| Withdraw | 11598036 | 1892 days ago | IN | 0 ETH | 0.01044498 | ||||
| Deposit | 11548562 | 1900 days ago | IN | 0 ETH | 0.00932185 | ||||
| Deposit | 11547834 | 1900 days ago | IN | 0 ETH | 0.01254193 | ||||
| Registration Ext | 11541390 | 1901 days ago | IN | 0 ETH | 0.00711679 | ||||
| Withdraw | 11534073 | 1902 days ago | IN | 0 ETH | 0.000998 | ||||
| Withdraw | 11534073 | 1902 days ago | IN | 0 ETH | 0.00498644 | ||||
| Registration Ext | 11527748 | 1903 days ago | IN | 0 ETH | 0.00698065 | ||||
| Deposit | 11427686 | 1919 days ago | IN | 0 ETH | 0.00223986 | ||||
| Deposit | 11386303 | 1925 days ago | IN | 0 ETH | 0.00527076 | ||||
| Deposit | 11386215 | 1925 days ago | IN | 0 ETH | 0.00739558 | ||||
| Withdraw | 11386168 | 1925 days ago | IN | 0 ETH | 0.01089672 | ||||
| Deposit | 11374023 | 1927 days ago | IN | 0 ETH | 0.00242267 | ||||
| Registration Ext | 11373640 | 1927 days ago | IN | 0 ETH | 0.0060338 | ||||
| Registration Ext | 11352910 | 1930 days ago | IN | 0 ETH | 0.00174329 | ||||
| Registration Ext | 11351087 | 1930 days ago | IN | 0 ETH | 0.00207609 | ||||
| Registration Ext | 11344947 | 1931 days ago | IN | 0 ETH | 0.00238258 | ||||
| Registration Ext | 11339643 | 1932 days ago | IN | 0 ETH | 0.00422057 | ||||
| Withdraw | 11324216 | 1934 days ago | IN | 0 ETH | 0.0076282 | ||||
| Withdraw | 11316866 | 1936 days ago | IN | 0 ETH | 0.00865145 | ||||
| Withdraw | 11315838 | 1936 days ago | IN | 0 ETH | 0.01579327 | ||||
| Deposit | 11314927 | 1936 days ago | IN | 0 ETH | 0.0156761 | ||||
| Deposit | 11314336 | 1936 days ago | IN | 0 ETH | 0.00462684 | ||||
| Registration Ext | 11314240 | 1936 days ago | IN | 0 ETH | 0.00827714 | ||||
| Registration Ext | 11313790 | 1936 days ago | IN | 0 ETH | 0.00618852 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
MasterChef
Compiler Version
v0.6.3+commit.8dda9521
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2020-11-22
*/
pragma solidity 0.6.3;
abstract contract Context {
function _msgSender() internal view virtual returns (address payable) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes memory) {
this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
return msg.data;
}
}
interface IERC20 {
function totalSupply() external view returns (uint256);
/**
* @dev Returns the amount of tokens owned by `account`.
*/
function balanceOf(address account) external view returns (uint256);
function transfer(address recipient, uint256 amount) external returns (bool);
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);
}
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) {
// Gas optimization: this is cheaper than requiring 'a' not being zero, but the
// benefit is lost if 'b' is also tested.
// See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
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;
// assert(a == b * c + a % b); // There is no case in which this doesn't hold
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;
}
}
contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the deployer as the initial owner.
*/
constructor () internal {
address msgSender = _msgSender();
_owner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view returns (address) {
return _owner;
}
modifier onlyOwner() {
require(_owner == _msgSender(), "Ownable: caller is not the owner");
_;
}
function renounceOwnership() public virtual onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
}
library Address {
function isContract(address account) internal view returns (bool) {
// This method relies on extcodesize, which returns 0 for contracts in
// construction, since the code is only stored at the end of the
// constructor execution.
uint256 size;
// solhint-disable-next-line no-inline-assembly
assembly { size := extcodesize(account) }
return size > 0;
}
function sendValue(address payable recipient, uint256 amount) internal {
require(address(this).balance >= amount, "Address: insufficient balance");
// solhint-disable-next-line avoid-low-level-calls, avoid-call-value
(bool success, ) = recipient.call{ value: amount }("");
require(success, "Address: unable to send value, recipient may have reverted");
}
function functionCall(address target, bytes memory data) internal returns (bytes memory) {
return functionCall(target, data, "Address: low-level call failed");
}
function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
return functionCallWithValue(target, data, 0, errorMessage);
}
function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
}
function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
require(address(this).balance >= value, "Address: insufficient balance for call");
require(isContract(target), "Address: call to non-contract");
// solhint-disable-next-line avoid-low-level-calls
(bool success, bytes memory returndata) = target.call{ value: value }(data);
return _verifyCallResult(success, returndata, errorMessage);
}
function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
return functionStaticCall(target, data, "Address: low-level static call failed");
}
function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) {
require(isContract(target), "Address: static call to non-contract");
// solhint-disable-next-line avoid-low-level-calls
(bool success, bytes memory returndata) = target.staticcall(data);
return _verifyCallResult(success, returndata, errorMessage);
}
function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
return functionDelegateCall(target, data, "Address: low-level delegate call failed");
}
function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
require(isContract(target), "Address: delegate call to non-contract");
// solhint-disable-next-line avoid-low-level-calls
(bool success, bytes memory returndata) = target.delegatecall(data);
return _verifyCallResult(success, returndata, errorMessage);
}
function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) {
if (success) {
return returndata;
} else {
// Look for revert reason and bubble it up if present
if (returndata.length > 0) {
// The easiest way to bubble the revert reason is using memory via assembly
// solhint-disable-next-line no-inline-assembly
assembly {
let returndata_size := mload(returndata)
revert(add(32, returndata), returndata_size)
}
} else {
revert(errorMessage);
}
}
}
}
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 {
// safeApprove should only be called when setting an initial allowance,
// or when resetting it to zero. To increase and decrease it, use
// 'safeIncreaseAllowance' and 'safeDecreaseAllowance'
// solhint-disable-next-line max-line-length
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 {
bytes memory returndata = address(token).functionCall(data, "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");
}
}
}
contract MasterChef is Ownable {
using SafeMath for uint256;
using SafeERC20 for IERC20;
// Info of each user.
struct UserInfo {
uint256 pid;
uint256 amount; // How many LP tokens the user has provided.
uint256 reward;
uint256 rewardPaid;
uint256 userRewardPerTokenPaid;
}
// Info of each user that stakes LP tokens.
mapping (uint256 => mapping (address => UserInfo)) public userInfo;
// Info of each pool.
struct PoolInfo {
IERC20 lpToken; // Address of LP token contract.
uint256 allocPoint; // How many allocation points assigned to this pool. Pizzas to distribute per block.
uint256 lastRewardTime; // Last block number that Pizzas distribution occurs.
uint256 accPizzaPerShare; // Accumulated Pizzas per share, times 1e18. See below.
uint256 totalPool;
}
// Info of each pool.
PoolInfo[] public poolInfo;
struct User {
uint id;
address referrer;
uint256[] referAmount;
uint256 referReward;
uint256[] referCount;
uint256 referRewardPerTokenPaid;
}
mapping(address => User) public users;
uint public lastUserId = 2;
mapping(uint256 => address) public regisUser;
bool initialized = false;
//uint256 public initreward = 1250*1e18;
uint256 public starttime;
uint256 public periodFinish = 0;
uint256 public rewardRate = 0;
uint256 public totalMinted = 0;
IERC20 public pizza ;
address public defaultReferAddr;
address public projectAddress;
// Total allocation poitns. Must be the sum of all allocation points in all pools.
uint256 public totalAllocPoint = 0;
// Bonus muliplier for early pizza makers.
uint256 public constant BONUS_MULTIPLIER = 1;
event RewardPaid(address indexed user, uint256 reward);
event Deposit(address indexed user, uint256 indexed pid, uint256 amount);
event Withdraw(address indexed user, uint256 indexed pid, uint256 amount);
event Registration(address indexed user, address indexed referrer, uint indexed userId, uint referrerId);
//constructor
// function initContract
constructor (IERC20 _pizza,uint256 _rewardRate,uint256 _starttime,uint256 _periodFinish,address _defaultReferAddr,address _projectAddress) public onlyOwner{
require(initialized == false,"has initialized");
pizza = _pizza;
rewardRate = _rewardRate;
starttime = _starttime;
periodFinish = _periodFinish;
defaultReferAddr = _defaultReferAddr;
projectAddress = _projectAddress;
User memory user = User({
id: 1,
referrer: address(0),
referAmount:new uint256[](2),
referReward:0,
referCount:new uint256[](2),
referRewardPerTokenPaid:0
});
users[defaultReferAddr] = user;
regisUser[1] = defaultReferAddr;
initialized = true;
}
function poolLength() external view returns (uint256) {
return poolInfo.length;
}
function isUserExists(address user) public view returns (bool) {
return (users[user].id != 0);
}
function registrationExt(address referrerAddress) external {
registration(msg.sender, referrerAddress);
}
function registration(address userAddress, address referrerAddress) private {
//require(msg.value == 0.05 ether, "registration cost 0.05");
require(!isUserExists(userAddress), "user exists");
require(isUserExists(referrerAddress), "referrer not exists");
// uint32 size;
//assembly {
// size := extcodesize(userAddress)
// }
//require(size == 0, "cannot be a contract");
require(!Address.isContract(userAddress), "cannot be a contract");
User memory user = User({
id: lastUserId,
referrer: referrerAddress,
referAmount:new uint256[](2),
referReward:0,
referCount:new uint256[](2),
referRewardPerTokenPaid:0
});
regisUser[lastUserId] = userAddress;
users[userAddress] = user;
users[referrerAddress].referCount[0] = users[referrerAddress].referCount[0].add(1);
address _refer = users[referrerAddress].referrer;
if(_refer != address(0)){
users[_refer].referCount[1] = users[_refer].referCount[1].add(1);
}
lastUserId++;
emit Registration(userAddress, referrerAddress, users[userAddress].id, users[referrerAddress].id);
}
// Add a new lp to the pool. Can only be called by the owner.
// XXX DO NOT add the same LP token more than once. Rewards will be messed up if you do.
function addLp(uint256 _allocPoint, IERC20 _lpToken) public onlyOwner {
uint256 lastRewardTime = block.timestamp > starttime ? block.timestamp : starttime;
totalAllocPoint = totalAllocPoint.add(_allocPoint);
poolInfo.push(PoolInfo({
lpToken: _lpToken,
allocPoint: _allocPoint,
lastRewardTime: lastRewardTime,
accPizzaPerShare: 0,
totalPool:0
}));
}
// Update the given pool's Pizza allocation point. Can only be called by the owner.
function set(uint256 _pid, uint256 _allocPoint) public onlyOwner {
totalAllocPoint = totalAllocPoint.sub(poolInfo[_pid].allocPoint).add(_allocPoint);
poolInfo[_pid].allocPoint = _allocPoint;
}
function setTotalAllocPoint(uint256 _totalAllocPoint) public onlyOwner{
totalAllocPoint = _totalAllocPoint;
}
function setRewardRate(uint256 _rewardRate) public onlyOwner {
rewardRate = _rewardRate;
}
// Return reward multiplier over the given _from to _to block.
function getMultiplier(uint256 _from, uint256 _to) public view returns (uint256) {
if (_to <= periodFinish) {
return _to.sub(_from).mul(BONUS_MULTIPLIER);
} else if (_from >= periodFinish) {
return _to.sub(_from);
} else {
return periodFinish.sub(_from).mul(BONUS_MULTIPLIER).add(
_to.sub(periodFinish)
);
}
}
function getRewardRate() public view returns(uint256){
if(totalMinted < 50000*1e18){
return rewardRate;
}else if(totalMinted >= 50000*1e18 && totalMinted <= 690000 * 1e18){
return rewardRate.mul(50).div(100);
}else{
return 0;
}
}
function pendingPizza(uint256 _pid, address _user) public view returns (uint256) {
PoolInfo storage pool = poolInfo[_pid];
UserInfo storage user = userInfo[_pid][_user];
uint256 accPizzaPerShare = pool.accPizzaPerShare;
uint256 lpSupply = pool.totalPool;
uint256 result = user.reward;
if (block.timestamp > pool.lastRewardTime && lpSupply != 0) {
uint256 multiplier = getMultiplier(pool.lastRewardTime, block.timestamp);
uint256 pizzaReward = multiplier.mul(getRewardRate()).mul(pool.allocPoint).div(totalAllocPoint);
accPizzaPerShare = pool.accPizzaPerShare.add(pizzaReward.mul(1e18).div(lpSupply));
}
result = result.add(user.amount.mul((accPizzaPerShare).sub(user.userRewardPerTokenPaid)).div(1e18));
return result;
}
function pendingAllPizza(address _user) public view returns (uint256) {
uint256 result = 0;
for(uint256 i = 0;i< poolInfo.length;i++ ){
result = result.add(pendingPizza(i,_user));
}
return result;
}
function allPizzaAmount(address _user) public view returns (uint256) {
uint256 result = 0;
for(uint256 i = 0;i< poolInfo.length;i++ ){
UserInfo storage user = userInfo[i][_user];
result = result.add(pendingPizza(i,_user).add(user.rewardPaid));
}
return result;
}
function getAllDeposit(address _user) public view returns (uint256) {
uint256 result = 0;
for(uint256 i = 0;i< poolInfo.length;i++ ){
UserInfo storage user = userInfo[i][_user];
result = result.add(user.amount);
}
return result;
}
function getReferCount(address userAddress) public view returns(uint256[] memory){
if(isUserExists(userAddress)){
return users[userAddress].referCount;
}
return new uint256[](2);
}
function getReferAmount(address _user,uint256 _index) public view returns(uint256){
if(isUserExists(_user)){
return users[_user].referAmount[_index];
}
return 0;
}
// Update reward variables of the given pool to be up-to-date.
function updatePool(uint256 _pid,address _user) internal {
PoolInfo storage pool = poolInfo[_pid];
if (block.timestamp <= pool.lastRewardTime) {
return;
}
uint256 lpSupply = pool.totalPool;
if (lpSupply == 0) {
pool.lastRewardTime = block.timestamp;
return;
}
UserInfo storage user = userInfo[_pid][_user];
uint256 multiplier = getMultiplier(pool.lastRewardTime, block.timestamp);
uint256 pizzaReward = multiplier.mul(getRewardRate()).mul(pool.allocPoint).div(totalAllocPoint);
totalMinted = totalMinted.add(pizzaReward);
//pizza.mint(address(this), pizzaReward);
pool.accPizzaPerShare = pool.accPizzaPerShare.add(pizzaReward.mul(1e18).div(lpSupply));
user.reward = user.amount.mul((pool.accPizzaPerShare).sub(user.userRewardPerTokenPaid)).div(1e18).add(user.reward);
user.userRewardPerTokenPaid = pool.accPizzaPerShare;
pool.lastRewardTime = block.timestamp;
}
// Deposit LP tokens to MasterChef for pizza allocation.
function deposit(uint256 _pid, uint256 _amount) public checkStart {
require(isUserExists(msg.sender), "user don't exists");
PoolInfo storage pool = poolInfo[_pid];
UserInfo storage user = userInfo[_pid][msg.sender];
updatePool(_pid,msg.sender);
if(_amount > 0) {
pool.lpToken.safeTransferFrom(address(msg.sender), address(this), _amount);
user.amount = user.amount.add(_amount);
user.pid = _pid;
pool.totalPool = pool.totalPool.add(_amount);
address _referrer = users[msg.sender].referrer;
for(uint256 i = 0;i<2;i++){
if(_referrer!= address(0) && isUserExists(_referrer)){
users[_referrer].referAmount[i] = _amount.add(users[_referrer].referAmount[i]);
_referrer = users[_referrer].referrer;
}else break;
}
}
emit Deposit(msg.sender, _pid, _amount);
}
function getReward(uint256 _pid) public {
PoolInfo storage pool = poolInfo[_pid];
UserInfo storage user = userInfo[_pid][msg.sender];
uint256 accPizzaPerShare = pool.accPizzaPerShare;
uint256 lpSupply = pool.totalPool;
if (block.timestamp > pool.lastRewardTime && lpSupply != 0) {
uint256 multiplier = getMultiplier(pool.lastRewardTime, block.timestamp);
uint256 pizzaReward = multiplier.mul(getRewardRate()).mul(pool.allocPoint).div(totalAllocPoint);
accPizzaPerShare = pool.accPizzaPerShare.add(pizzaReward.mul(1e18).div(lpSupply));
}
uint256 reward = user.amount.mul((accPizzaPerShare).sub(user.userRewardPerTokenPaid)).div(1e18).add(user.reward);
if (reward > 0) {
safePizzaTransfer(msg.sender, reward);
user.rewardPaid = user.rewardPaid.add(reward);
user.reward = 0;
emit RewardPaid(msg.sender, reward);
}
user.userRewardPerTokenPaid = accPizzaPerShare;
}
// Withdraw LP tokens from MasterChef.
function withdraw(uint256 _pid, uint256 _amount) public{
UserInfo storage user = userInfo[_pid][msg.sender];
PoolInfo storage pool = poolInfo[_pid];
require(user.amount >= _amount, "withdraw: not good");
updatePool(_pid,msg.sender);
safePizzaTransfer(msg.sender, user.reward);
// safePizzaTransfer(projectAddress, user.reward.mul(10).div(100));
user.rewardPaid = user.rewardPaid.add(user.reward);
emit RewardPaid(msg.sender, user.rewardPaid);
if(_amount > 0) {
user.amount = user.amount.sub(_amount);
pool.lpToken.safeTransfer(address(msg.sender), _amount);
pool.totalPool = pool.totalPool.sub(_amount);
address _referrer = users[msg.sender].referrer;
for(uint256 i = 0;i<2;i++){
if(_referrer!= address(0) && isUserExists(_referrer)){
users[_referrer].referAmount[i] = users[_referrer].referAmount[i].sub(_amount);
users[_referrer].referReward = users[_referrer].referReward.add(user.reward.mul(10).div(100).div(i+1));
safePizzaTransfer(_referrer, user.reward.mul(10).div(100).div(i+1));
_referrer = users[_referrer].referrer;
}else break;
}
}
user.reward = 0;
emit Withdraw(msg.sender, _pid, _amount);
}
// Withdraw without caring about rewards. EMERGENCY ONLY.
// function emergencyWithdraw(uint256 _pid) public {
// PoolInfo storage pool = poolInfo[_pid];
// UserInfo storage user = userInfo[_pid][msg.sender];
// pool.lpToken.safeTransfer(address(msg.sender), user.amount);
// emit EmergencyWithdraw(msg.sender, _pid, user.amount);
// user.amount = 0;
// }
// Safe pizza transfer function, just in case if rounding error causes pool to not have enough pizzas.
function safePizzaTransfer(address _to, uint256 _amount) internal {
uint256 pizzaBal = pizza.balanceOf(address(this));
if (_amount > pizzaBal) {
pizza.transfer(_to, pizzaBal);
} else {
pizza.transfer(_to, _amount);
}
}
modifier checkStart(){
require(block.timestamp > starttime,"not start");
_;
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"contract IERC20","name":"_pizza","type":"address"},{"internalType":"uint256","name":"_rewardRate","type":"uint256"},{"internalType":"uint256","name":"_starttime","type":"uint256"},{"internalType":"uint256","name":"_periodFinish","type":"uint256"},{"internalType":"address","name":"_defaultReferAddr","type":"address"},{"internalType":"address","name":"_projectAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Deposit","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":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"referrer","type":"address"},{"indexed":true,"internalType":"uint256","name":"userId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"referrerId","type":"uint256"}],"name":"Registration","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":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[],"name":"BONUS_MULTIPLIER","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_allocPoint","type":"uint256"},{"internalType":"contract IERC20","name":"_lpToken","type":"address"}],"name":"addLp","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"allPizzaAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"defaultReferAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"getAllDeposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_from","type":"uint256"},{"internalType":"uint256","name":"_to","type":"uint256"}],"name":"getMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"uint256","name":"_index","type":"uint256"}],"name":"getReferAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"}],"name":"getReferCount","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"}],"name":"getReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getRewardRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"isUserExists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastUserId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"pendingAllPizza","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"address","name":"_user","type":"address"}],"name":"pendingPizza","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"periodFinish","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pizza","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"poolInfo","outputs":[{"internalType":"contract IERC20","name":"lpToken","type":"address"},{"internalType":"uint256","name":"allocPoint","type":"uint256"},{"internalType":"uint256","name":"lastRewardTime","type":"uint256"},{"internalType":"uint256","name":"accPizzaPerShare","type":"uint256"},{"internalType":"uint256","name":"totalPool","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"poolLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"projectAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"regisUser","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"referrerAddress","type":"address"}],"name":"registrationExt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"uint256","name":"_allocPoint","type":"uint256"}],"name":"set","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rewardRate","type":"uint256"}],"name":"setRewardRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_totalAllocPoint","type":"uint256"}],"name":"setTotalAllocPoint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"starttime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalAllocPoint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalMinted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"userInfo","outputs":[{"internalType":"uint256","name":"pid","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"reward","type":"uint256"},{"internalType":"uint256","name":"rewardPaid","type":"uint256"},{"internalType":"uint256","name":"userRewardPerTokenPaid","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"users","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"address","name":"referrer","type":"address"},{"internalType":"uint256","name":"referReward","type":"uint256"},{"internalType":"uint256","name":"referRewardPerTokenPaid","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
608060405260026004556000600660006101000a81548160ff021916908315150217905550600060085560006009556000600a556000600e553480156200004557600080fd5b506040516200442f3803806200442f833981810160405260c08110156200006b57600080fd5b810190808051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291905050506000620000c0620005ec60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506200016e620005ec60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000230576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60001515600660009054906101000a900460ff16151514620002ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f68617320696e697469616c697a6564000000000000000000000000000000000081525060200191505060405180910390fd5b85600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600981905550836007819055508260088190555081600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200039c620005f4565b6040518060c0016040528060018152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016002604051908082528060200260200182016040528015620003fc5781602001602082028036833780820191505090505b5081526020016000815260200160026040519080825280602002602001820160405280156200043a5781602001602082028036833780820191505090505b508152602001600081525090508060036000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020190805190602001906200051892919062000640565b506060820151816003015560808201518160040190805190602001906200054192919062000640565b5060a08201518160050155905050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600560006001815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660006101000a81548160ff02191690831515021790555050505050505050620006ba565b600033905090565b6040518060c0016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001606081526020016000815260200160608152602001600081525090565b8280548282559060005260206000209081019282156200067f579160200282015b828111156200067e57825182559160200191906001019062000661565b5b5090506200068e919062000692565b5090565b620006b791905b80821115620006b357600081600090555060010162000699565b5090565b90565b613d6580620006ca6000396000f3fe608060405234801561001057600080fd5b50600436106102115760003560e01c80637b0a47ee116101255780639e447fc6116100ad578063ca8e6c031161007c578063ca8e6c0314610a68578063cb41eda814610a96578063e2bbb15814610ae0578063ebe2b12b14610b18578063f2fde38b14610b3657610211565b80639e447fc614610921578063a2309ff81461094f578063a87430ba1461096d578063a9f2f53414610a0657610211565b80638da58897116100f45780638da58897146107565780638da5cb5b146107745780638dbb1e3a146107be57806393f1a40b1461080a5780639ca019d31461088857610211565b80637b0a47ee146106a45780637e1a3786146106c25780638190611b146106e05780638aa285501461073857610211565b80633cf96af1116101a85780635c74c239116101775780635c74c239146105665780635cc61bbc146105b05780635fcadc32146105fe578063715018a614610656578063797eee241461066057610211565b80633cf96af114610430578063441a3e701461047a578063509222cd146104b257806359948f441461050e57610211565b806317caf6f1116101e457806317caf6f11461038e5780631ab06ee5146103ac5780631c4b774b146103e4578063348d44871461041257610211565b8063081e3eda14610216578063151b03c1146102345780631526fe2714610296578063155298a514610320575b600080fd5b61021e610b7a565b6040518082815260200191505060405180910390f35b6102806004803603604081101561024a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b87565b6040518082815260200191505060405180910390f35b6102c2600480360360208110156102ac57600080fd5b8101908080359060200190929190505050610c01565b604051808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018481526020018381526020018281526020019550505050505060405180910390f35b61034c6004803603602081101561033657600080fd5b8101908080359060200190929190505050610c64565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610396610c97565b6040518082815260200191505060405180910390f35b6103e2600480360360408110156103c257600080fd5b810190808035906020019092919080359060200190929190505050610c9d565b005b610410600480360360208110156103fa57600080fd5b8101908080359060200190929190505050610dd8565b005b61041a611015565b6040518082815260200191505060405180910390f35b61043861101b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104b06004803603604081101561049057600080fd5b810190808035906020019092919080359060200190929190505050611041565b005b6104f4600480360360208110156104c857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115d4565b604051808215151515815260200191505060405180910390f35b6105506004803603602081101561052457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611623565b6040518082815260200191505060405180910390f35b61056e6116c2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105fc600480360360408110156105c657600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116e8565b005b6106406004803603602081101561061457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118c3565b6040518082815260200191505060405180910390f35b61065e611912565b005b6106a26004803603602081101561067657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a9a565b005b6106ac611aa7565b6040518082815260200191505060405180910390f35b6106ca611aad565b6040518082815260200191505060405180910390f35b610722600480360360208110156106f657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b32565b6040518082815260200191505060405180910390f35b610740611bec565b6040518082815260200191505060405180910390f35b61075e611bf1565b6040518082815260200191505060405180910390f35b61077c611bf7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107f4600480360360408110156107d457600080fd5b810190808035906020019092919080359060200190929190505050611c20565b6040518082815260200191505060405180910390f35b6108566004803603604081101561082057600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cd2565b604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390f35b6108ca6004803603602081101561089e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d15565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561090d5780820151818401526020810190506108f2565b505050509050019250505060405180910390f35b61094d6004803603602081101561093757600080fd5b8101908080359060200190929190505050611df6565b005b610957611ec9565b6040518082815260200191505060405180910390f35b6109af6004803603602081101561098357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ecf565b604051808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200194505050505060405180910390f35b610a5260048036036040811015610a1c57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f1f565b6040518082815260200191505060405180910390f35b610a9460048036036020811015610a7e57600080fd5b81019080803590602001909291905050506120d2565b005b610a9e6121a5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610b1660048036036040811015610af657600080fd5b8101908080359060200190929190803590602001909291905050506121cb565b005b610b20612631565b6040518082815260200191505060405180910390f35b610b7860048036036020811015610b4c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612637565b005b6000600280549050905090565b6000610b92836115d4565b15610bf657600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002018281548110610be457fe5b90600052602060002001549050610bfb565b600090505b92915050565b60028181548110610c0e57fe5b90600052602060002090600502016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030154908060040154905085565b60056020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b610ca5612844565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d66576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b610dab81610d9d60028581548110610d7a57fe5b906000526020600020906005020160010154600e5461284c90919063ffffffff16565b61289690919063ffffffff16565b600e819055508060028381548110610dbf57fe5b9060005260206000209060050201600101819055505050565b600060028281548110610de757fe5b9060005260206000209060050201905060006001600084815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600082600301549050600083600401549050836002015442118015610e71575060008114155b15610f18576000610e86856002015442611c20565b90506000610ece600e54610ec08860010154610eb2610ea3611aad565b8761291e90919063ffffffff16565b61291e90919063ffffffff16565b6129a490919063ffffffff16565b9050610f13610f0084610ef2670de0b6b3a76400008561291e90919063ffffffff16565b6129a490919063ffffffff16565b876003015461289690919063ffffffff16565b935050505b6000610f778460020154610f69670de0b6b3a7640000610f5b610f4889600401548961284c90919063ffffffff16565b896001015461291e90919063ffffffff16565b6129a490919063ffffffff16565b61289690919063ffffffff16565b9050600081111561100457610f8c33826129ee565b610fa381856003015461289690919063ffffffff16565b8460030181905550600084600201819055503373ffffffffffffffffffffffffffffffffffffffff167fe2403640ba68fed3a2f88b7557551d1993f84b99bb10ff833f0cf8db0c5e0486826040518082815260200191505060405180910390a25b828460040181905550505050505050565b60045481565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006001600084815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000600284815481106110a457fe5b90600052602060002090600502019050828260010154101561112e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f77697468647261773a206e6f7420676f6f64000000000000000000000000000081525060200191505060405180910390fd5b6111388433612ca9565b6111463383600201546129ee565b6111618260020154836003015461289690919063ffffffff16565b82600301819055503373ffffffffffffffffffffffffffffffffffffffff167fe2403640ba68fed3a2f88b7557551d1993f84b99bb10ff833f0cf8db0c5e048683600301546040518082815260200191505060405180910390a26000831115611575576111db83836001015461284c90919063ffffffff16565b826001018190555061123233848360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612e989092919063ffffffff16565b61124983826004015461284c90919063ffffffff16565b81600401819055506000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008090505b600281101561157257600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156113095750611308826115d4565b5b156115605761137885600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201838154811061135f57fe5b906000526020600020015461284c90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020182815481106113c557fe5b90600052602060002001819055506114676114166001830161140860646113fa600a8a6002015461291e90919063ffffffff16565b6129a490919063ffffffff16565b6129a490919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003015461289690919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301819055506114f6826114f1600184016114e360646114d5600a8b6002015461291e90919063ffffffff16565b6129a490919063ffffffff16565b6129a490919063ffffffff16565b6129ee565b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150611565565b611572565b80806001019150506112be565b50505b60008260020181905550833373ffffffffffffffffffffffffffffffffffffffff167ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b568856040518082815260200191505060405180910390a350505050565b600080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414159050919050565b6000806000905060008090505b6002805490508110156116b85760006001600083815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506116a881600101548461289690919063ffffffff16565b9250508080600101915050611630565b5080915050919050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6116f0612844565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600060075442116117c4576007546117c6565b425b90506117dd83600e5461289690919063ffffffff16565b600e8190555060026040518060a001604052808473ffffffffffffffffffffffffffffffffffffffff168152602001858152602001838152602001600081526020016000815250908060018154018082558091505060019003906000526020600020906005020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101556040820151816002015560608201518160030155608082015181600401555050505050565b6000806000905060008090505b600280549050811015611908576118f96118ea8286611f1f565b8361289690919063ffffffff16565b915080806001019150506118d0565b5080915050919050565b61191a612844565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611aa43382612f50565b50565b60095481565b6000690a968163f0a57b400000600a541015611acd576009549050611b2f565b690a968163f0a57b400000600a5410158015611af5575069921cf9965f520b400000600a5411155b15611b2a57611b236064611b15603260095461291e90919063ffffffff16565b6129a490919063ffffffff16565b9050611b2f565b600090505b90565b6000806000905060008090505b600280549050811015611be25760006001600083815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050611bd2611bc38260030154611bb58589611f1f565b61289690919063ffffffff16565b8461289690919063ffffffff16565b9250508080600101915050611b3f565b5080915050919050565b600181565b60075481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006008548211611c5857611c516001611c43858561284c90919063ffffffff16565b61291e90919063ffffffff16565b9050611ccc565b6008548310611c7b57611c74838361284c90919063ffffffff16565b9050611ccc565b611cc9611c936008548461284c90919063ffffffff16565b611cbb6001611cad8760085461284c90919063ffffffff16565b61291e90919063ffffffff16565b61289690919063ffffffff16565b90505b92915050565b6001602052816000526040600020602052806000526040600020600091509150508060000154908060010154908060020154908060030154908060040154905085565b6060611d20826115d4565b15611dbd57600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401805480602002602001604051908101604052809291908181526020018280548015611db157602002820191906000526020600020905b815481526020019060010190808311611d9d575b50505050509050611df1565b6002604051908082528060200260200182016040528015611ded5781602001602082028036833780820191505090505b5090505b919050565b611dfe612844565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ebf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8060098190555050565b600a5481565b60036020528060005260406000206000915090508060000154908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060030154908060050154905084565b60008060028481548110611f2f57fe5b9060005260206000209060050201905060006001600086815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600082600301549050600083600401549050600083600201549050846002015442118015611fc2575060008214155b15612069576000611fd7866002015442611c20565b9050600061201f600e546120118960010154612003611ff4611aad565b8761291e90919063ffffffff16565b61291e90919063ffffffff16565b6129a490919063ffffffff16565b905061206461205185612043670de0b6b3a76400008561291e90919063ffffffff16565b6129a490919063ffffffff16565b886003015461289690919063ffffffff16565b945050505b6120c26120b3670de0b6b3a76400006120a561209288600401548861284c90919063ffffffff16565b886001015461291e90919063ffffffff16565b6129a490919063ffffffff16565b8261289690919063ffffffff16565b9050809550505050505092915050565b6120da612844565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461219b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600e8190555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6007544211612242576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f6e6f74207374617274000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b61224b336115d4565b6122bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f7573657220646f6e27742065786973747300000000000000000000000000000081525060200191505060405180910390fd5b6000600283815481106122cc57fe5b9060005260206000209060050201905060006001600085815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905061233a8433612ca9565b60008311156125dc576123943330858560000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166135d8909392919063ffffffff16565b6123ab83826001015461289690919063ffffffff16565b81600101819055508381600001819055506123d383836004015461289690919063ffffffff16565b82600401819055506000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008090505b60028110156125d957600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156124935750612492826115d4565b5b156125c757612502600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020182815481106124e857fe5b90600052602060002001548661289690919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201828154811061254f57fe5b9060005260206000200181905550600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691506125cc565b6125d9565b8080600101915050612448565b50505b833373ffffffffffffffffffffffffffffffffffffffff167f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a15856040518082815260200191505060405180910390a350505050565b60085481565b61263f612844565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612700576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612786576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180613c996026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600061288e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506136c5565b905092915050565b600080828401905083811015612914576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600080831415612931576000905061299e565b600082840290508284828161294257fe5b0414612999576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180613ce56021913960400191505060405180910390fd5b809150505b92915050565b60006129e683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613785565b905092915050565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612a8f57600080fd5b505afa158015612aa3573d6000803e3d6000fd5b505050506040513d6020811015612ab957600080fd5b8101908080519060200190929190505050905080821115612bbe57600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612b7d57600080fd5b505af1158015612b91573d6000803e3d6000fd5b505050506040513d6020811015612ba757600080fd5b810190808051906020019092919050505050612ca4565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612c6757600080fd5b505af1158015612c7b573d6000803e3d6000fd5b505050506040513d6020811015612c9157600080fd5b8101908080519060200190929190505050505b505050565b600060028381548110612cb857fe5b9060005260206000209060050201905080600201544211612cd95750612e94565b6000816004015490506000811415612cfb574282600201819055505050612e94565b60006001600086815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000612d5f846002015442611c20565b90506000612da7600e54612d998760010154612d8b612d7c611aad565b8761291e90919063ffffffff16565b61291e90919063ffffffff16565b6129a490919063ffffffff16565b9050612dbe81600a5461289690919063ffffffff16565b600a81905550612e07612df485612de6670de0b6b3a76400008561291e90919063ffffffff16565b6129a490919063ffffffff16565b866003015461289690919063ffffffff16565b8560030181905550612e708360020154612e62670de0b6b3a7640000612e54612e4188600401548b6003015461284c90919063ffffffff16565b886001015461291e90919063ffffffff16565b6129a490919063ffffffff16565b61289690919063ffffffff16565b83600201819055508460030154836004018190555042856002018190555050505050505b5050565b612f4b8363a9059cbb60e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061384b565b505050565b612f59826115d4565b15612fcc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f757365722065786973747300000000000000000000000000000000000000000081525060200191505060405180910390fd5b612fd5816115d4565b613047576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f7265666572726572206e6f74206578697374730000000000000000000000000081525060200191505060405180910390fd5b6130508261393a565b156130c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f63616e6e6f74206265206120636f6e747261637400000000000000000000000081525060200191505060405180910390fd5b6130cb613bda565b6040518060c0016040528060045481526020018373ffffffffffffffffffffffffffffffffffffffff168152602001600260405190808252806020026020018201604052801561312a5781602001602082028036833780820191505090505b5081526020016000815260200160026040519080825280602002602001820160405280156131675781602001602082028036833780820191505090505b508152602001600081525090508260056000600454815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816002019080519060200190613275929190613c26565b5060608201518160030155608082015181600401908051906020019061329c929190613c26565b5060a082015181600501559050506133166001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004016000815481106132fd57fe5b906000526020600020015461289690919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040160008154811061336457fe5b90600052602060002001819055506000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146134d6576134796001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040160018154811061346057fe5b906000526020600020015461289690919063ffffffff16565b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004016001815481106134c757fe5b90600052602060002001819055505b600460008154809291906001019190505550600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001548373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f309bb360e8b69c23937ccc5fb01f9aeeead1c95a99604e175113ff82f2b1723a600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546040518082815260200191505060405180910390a450505050565b6136bf846323b872dd60e01b858585604051602401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061384b565b50505050565b6000838311158290613772576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561373757808201518184015260208101905061371c565b50505050905090810190601f1680156137645780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008083118290613831576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156137f65780820151818401526020810190506137db565b50505050905090810190601f1680156138235780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161383d57fe5b049050809150509392505050565b60606138ad826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661394d9092919063ffffffff16565b9050600081511115613935578080602001905160208110156138ce57600080fd5b8101908080519060200190929190505050613934576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180613d06602a913960400191505060405180910390fd5b5b505050565b600080823b905060008111915050919050565b606061395c8484600085613965565b90509392505050565b6060824710156139c0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180613cbf6026913960400191505060405180910390fd5b6139c98561393a565b613a3b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000081525060200191505060405180910390fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b60208310613a8b5780518252602082019150602081019050602083039250613a68565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114613aed576040519150601f19603f3d011682016040523d82523d6000602084013e613af2565b606091505b5091509150613b02828286613b0e565b92505050949350505050565b60608315613b1e57829050613bd3565b600083511115613b315782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613b98578082015181840152602081019050613b7d565b50505050905090810190601f168015613bc55780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b9392505050565b6040518060c0016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001606081526020016000815260200160608152602001600081525090565b828054828255906000526020600020908101928215613c62579160200282015b82811115613c61578251825591602001919060010190613c46565b5b509050613c6f9190613c73565b5090565b613c9591905b80821115613c91576000816000905550600101613c79565b5090565b9056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a2646970667358221220c1bfd87fa5e37696da162d75af3f4c1ecdce181be7687eb626ee5c739ddcaeb064736f6c63430006030033000000000000000000000000b1b5f91ce0306b53570cb3fc85ef27311b5e208200000000000000000000000000000000000000000000000000cd98cb94f23b42000000000000000000000000000000000000000000000000000000005fba36a0000000000000000000000000000000000000000000000000000000005fbb882000000000000000000000000099623e3b5bd89ee251a3d1044afd12cba273b45f00000000000000000000000099623e3b5bd89ee251a3d1044afd12cba273b45f
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106102115760003560e01c80637b0a47ee116101255780639e447fc6116100ad578063ca8e6c031161007c578063ca8e6c0314610a68578063cb41eda814610a96578063e2bbb15814610ae0578063ebe2b12b14610b18578063f2fde38b14610b3657610211565b80639e447fc614610921578063a2309ff81461094f578063a87430ba1461096d578063a9f2f53414610a0657610211565b80638da58897116100f45780638da58897146107565780638da5cb5b146107745780638dbb1e3a146107be57806393f1a40b1461080a5780639ca019d31461088857610211565b80637b0a47ee146106a45780637e1a3786146106c25780638190611b146106e05780638aa285501461073857610211565b80633cf96af1116101a85780635c74c239116101775780635c74c239146105665780635cc61bbc146105b05780635fcadc32146105fe578063715018a614610656578063797eee241461066057610211565b80633cf96af114610430578063441a3e701461047a578063509222cd146104b257806359948f441461050e57610211565b806317caf6f1116101e457806317caf6f11461038e5780631ab06ee5146103ac5780631c4b774b146103e4578063348d44871461041257610211565b8063081e3eda14610216578063151b03c1146102345780631526fe2714610296578063155298a514610320575b600080fd5b61021e610b7a565b6040518082815260200191505060405180910390f35b6102806004803603604081101561024a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b87565b6040518082815260200191505060405180910390f35b6102c2600480360360208110156102ac57600080fd5b8101908080359060200190929190505050610c01565b604051808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018481526020018381526020018281526020019550505050505060405180910390f35b61034c6004803603602081101561033657600080fd5b8101908080359060200190929190505050610c64565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610396610c97565b6040518082815260200191505060405180910390f35b6103e2600480360360408110156103c257600080fd5b810190808035906020019092919080359060200190929190505050610c9d565b005b610410600480360360208110156103fa57600080fd5b8101908080359060200190929190505050610dd8565b005b61041a611015565b6040518082815260200191505060405180910390f35b61043861101b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104b06004803603604081101561049057600080fd5b810190808035906020019092919080359060200190929190505050611041565b005b6104f4600480360360208110156104c857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115d4565b604051808215151515815260200191505060405180910390f35b6105506004803603602081101561052457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611623565b6040518082815260200191505060405180910390f35b61056e6116c2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105fc600480360360408110156105c657600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116e8565b005b6106406004803603602081101561061457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118c3565b6040518082815260200191505060405180910390f35b61065e611912565b005b6106a26004803603602081101561067657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a9a565b005b6106ac611aa7565b6040518082815260200191505060405180910390f35b6106ca611aad565b6040518082815260200191505060405180910390f35b610722600480360360208110156106f657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b32565b6040518082815260200191505060405180910390f35b610740611bec565b6040518082815260200191505060405180910390f35b61075e611bf1565b6040518082815260200191505060405180910390f35b61077c611bf7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107f4600480360360408110156107d457600080fd5b810190808035906020019092919080359060200190929190505050611c20565b6040518082815260200191505060405180910390f35b6108566004803603604081101561082057600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cd2565b604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390f35b6108ca6004803603602081101561089e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d15565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561090d5780820151818401526020810190506108f2565b505050509050019250505060405180910390f35b61094d6004803603602081101561093757600080fd5b8101908080359060200190929190505050611df6565b005b610957611ec9565b6040518082815260200191505060405180910390f35b6109af6004803603602081101561098357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ecf565b604051808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200194505050505060405180910390f35b610a5260048036036040811015610a1c57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f1f565b6040518082815260200191505060405180910390f35b610a9460048036036020811015610a7e57600080fd5b81019080803590602001909291905050506120d2565b005b610a9e6121a5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610b1660048036036040811015610af657600080fd5b8101908080359060200190929190803590602001909291905050506121cb565b005b610b20612631565b6040518082815260200191505060405180910390f35b610b7860048036036020811015610b4c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612637565b005b6000600280549050905090565b6000610b92836115d4565b15610bf657600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002018281548110610be457fe5b90600052602060002001549050610bfb565b600090505b92915050565b60028181548110610c0e57fe5b90600052602060002090600502016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030154908060040154905085565b60056020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b610ca5612844565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d66576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b610dab81610d9d60028581548110610d7a57fe5b906000526020600020906005020160010154600e5461284c90919063ffffffff16565b61289690919063ffffffff16565b600e819055508060028381548110610dbf57fe5b9060005260206000209060050201600101819055505050565b600060028281548110610de757fe5b9060005260206000209060050201905060006001600084815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600082600301549050600083600401549050836002015442118015610e71575060008114155b15610f18576000610e86856002015442611c20565b90506000610ece600e54610ec08860010154610eb2610ea3611aad565b8761291e90919063ffffffff16565b61291e90919063ffffffff16565b6129a490919063ffffffff16565b9050610f13610f0084610ef2670de0b6b3a76400008561291e90919063ffffffff16565b6129a490919063ffffffff16565b876003015461289690919063ffffffff16565b935050505b6000610f778460020154610f69670de0b6b3a7640000610f5b610f4889600401548961284c90919063ffffffff16565b896001015461291e90919063ffffffff16565b6129a490919063ffffffff16565b61289690919063ffffffff16565b9050600081111561100457610f8c33826129ee565b610fa381856003015461289690919063ffffffff16565b8460030181905550600084600201819055503373ffffffffffffffffffffffffffffffffffffffff167fe2403640ba68fed3a2f88b7557551d1993f84b99bb10ff833f0cf8db0c5e0486826040518082815260200191505060405180910390a25b828460040181905550505050505050565b60045481565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006001600084815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000600284815481106110a457fe5b90600052602060002090600502019050828260010154101561112e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f77697468647261773a206e6f7420676f6f64000000000000000000000000000081525060200191505060405180910390fd5b6111388433612ca9565b6111463383600201546129ee565b6111618260020154836003015461289690919063ffffffff16565b82600301819055503373ffffffffffffffffffffffffffffffffffffffff167fe2403640ba68fed3a2f88b7557551d1993f84b99bb10ff833f0cf8db0c5e048683600301546040518082815260200191505060405180910390a26000831115611575576111db83836001015461284c90919063ffffffff16565b826001018190555061123233848360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612e989092919063ffffffff16565b61124983826004015461284c90919063ffffffff16565b81600401819055506000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008090505b600281101561157257600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156113095750611308826115d4565b5b156115605761137885600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201838154811061135f57fe5b906000526020600020015461284c90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020182815481106113c557fe5b90600052602060002001819055506114676114166001830161140860646113fa600a8a6002015461291e90919063ffffffff16565b6129a490919063ffffffff16565b6129a490919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003015461289690919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301819055506114f6826114f1600184016114e360646114d5600a8b6002015461291e90919063ffffffff16565b6129a490919063ffffffff16565b6129a490919063ffffffff16565b6129ee565b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150611565565b611572565b80806001019150506112be565b50505b60008260020181905550833373ffffffffffffffffffffffffffffffffffffffff167ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b568856040518082815260200191505060405180910390a350505050565b600080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414159050919050565b6000806000905060008090505b6002805490508110156116b85760006001600083815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506116a881600101548461289690919063ffffffff16565b9250508080600101915050611630565b5080915050919050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6116f0612844565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600060075442116117c4576007546117c6565b425b90506117dd83600e5461289690919063ffffffff16565b600e8190555060026040518060a001604052808473ffffffffffffffffffffffffffffffffffffffff168152602001858152602001838152602001600081526020016000815250908060018154018082558091505060019003906000526020600020906005020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101556040820151816002015560608201518160030155608082015181600401555050505050565b6000806000905060008090505b600280549050811015611908576118f96118ea8286611f1f565b8361289690919063ffffffff16565b915080806001019150506118d0565b5080915050919050565b61191a612844565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611aa43382612f50565b50565b60095481565b6000690a968163f0a57b400000600a541015611acd576009549050611b2f565b690a968163f0a57b400000600a5410158015611af5575069921cf9965f520b400000600a5411155b15611b2a57611b236064611b15603260095461291e90919063ffffffff16565b6129a490919063ffffffff16565b9050611b2f565b600090505b90565b6000806000905060008090505b600280549050811015611be25760006001600083815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050611bd2611bc38260030154611bb58589611f1f565b61289690919063ffffffff16565b8461289690919063ffffffff16565b9250508080600101915050611b3f565b5080915050919050565b600181565b60075481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006008548211611c5857611c516001611c43858561284c90919063ffffffff16565b61291e90919063ffffffff16565b9050611ccc565b6008548310611c7b57611c74838361284c90919063ffffffff16565b9050611ccc565b611cc9611c936008548461284c90919063ffffffff16565b611cbb6001611cad8760085461284c90919063ffffffff16565b61291e90919063ffffffff16565b61289690919063ffffffff16565b90505b92915050565b6001602052816000526040600020602052806000526040600020600091509150508060000154908060010154908060020154908060030154908060040154905085565b6060611d20826115d4565b15611dbd57600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401805480602002602001604051908101604052809291908181526020018280548015611db157602002820191906000526020600020905b815481526020019060010190808311611d9d575b50505050509050611df1565b6002604051908082528060200260200182016040528015611ded5781602001602082028036833780820191505090505b5090505b919050565b611dfe612844565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ebf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8060098190555050565b600a5481565b60036020528060005260406000206000915090508060000154908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060030154908060050154905084565b60008060028481548110611f2f57fe5b9060005260206000209060050201905060006001600086815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600082600301549050600083600401549050600083600201549050846002015442118015611fc2575060008214155b15612069576000611fd7866002015442611c20565b9050600061201f600e546120118960010154612003611ff4611aad565b8761291e90919063ffffffff16565b61291e90919063ffffffff16565b6129a490919063ffffffff16565b905061206461205185612043670de0b6b3a76400008561291e90919063ffffffff16565b6129a490919063ffffffff16565b886003015461289690919063ffffffff16565b945050505b6120c26120b3670de0b6b3a76400006120a561209288600401548861284c90919063ffffffff16565b886001015461291e90919063ffffffff16565b6129a490919063ffffffff16565b8261289690919063ffffffff16565b9050809550505050505092915050565b6120da612844565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461219b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600e8190555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6007544211612242576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f6e6f74207374617274000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b61224b336115d4565b6122bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f7573657220646f6e27742065786973747300000000000000000000000000000081525060200191505060405180910390fd5b6000600283815481106122cc57fe5b9060005260206000209060050201905060006001600085815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905061233a8433612ca9565b60008311156125dc576123943330858560000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166135d8909392919063ffffffff16565b6123ab83826001015461289690919063ffffffff16565b81600101819055508381600001819055506123d383836004015461289690919063ffffffff16565b82600401819055506000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008090505b60028110156125d957600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156124935750612492826115d4565b5b156125c757612502600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020182815481106124e857fe5b90600052602060002001548661289690919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201828154811061254f57fe5b9060005260206000200181905550600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691506125cc565b6125d9565b8080600101915050612448565b50505b833373ffffffffffffffffffffffffffffffffffffffff167f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a15856040518082815260200191505060405180910390a350505050565b60085481565b61263f612844565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612700576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612786576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180613c996026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600061288e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506136c5565b905092915050565b600080828401905083811015612914576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600080831415612931576000905061299e565b600082840290508284828161294257fe5b0414612999576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180613ce56021913960400191505060405180910390fd5b809150505b92915050565b60006129e683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613785565b905092915050565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612a8f57600080fd5b505afa158015612aa3573d6000803e3d6000fd5b505050506040513d6020811015612ab957600080fd5b8101908080519060200190929190505050905080821115612bbe57600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612b7d57600080fd5b505af1158015612b91573d6000803e3d6000fd5b505050506040513d6020811015612ba757600080fd5b810190808051906020019092919050505050612ca4565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612c6757600080fd5b505af1158015612c7b573d6000803e3d6000fd5b505050506040513d6020811015612c9157600080fd5b8101908080519060200190929190505050505b505050565b600060028381548110612cb857fe5b9060005260206000209060050201905080600201544211612cd95750612e94565b6000816004015490506000811415612cfb574282600201819055505050612e94565b60006001600086815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000612d5f846002015442611c20565b90506000612da7600e54612d998760010154612d8b612d7c611aad565b8761291e90919063ffffffff16565b61291e90919063ffffffff16565b6129a490919063ffffffff16565b9050612dbe81600a5461289690919063ffffffff16565b600a81905550612e07612df485612de6670de0b6b3a76400008561291e90919063ffffffff16565b6129a490919063ffffffff16565b866003015461289690919063ffffffff16565b8560030181905550612e708360020154612e62670de0b6b3a7640000612e54612e4188600401548b6003015461284c90919063ffffffff16565b886001015461291e90919063ffffffff16565b6129a490919063ffffffff16565b61289690919063ffffffff16565b83600201819055508460030154836004018190555042856002018190555050505050505b5050565b612f4b8363a9059cbb60e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061384b565b505050565b612f59826115d4565b15612fcc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f757365722065786973747300000000000000000000000000000000000000000081525060200191505060405180910390fd5b612fd5816115d4565b613047576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f7265666572726572206e6f74206578697374730000000000000000000000000081525060200191505060405180910390fd5b6130508261393a565b156130c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f63616e6e6f74206265206120636f6e747261637400000000000000000000000081525060200191505060405180910390fd5b6130cb613bda565b6040518060c0016040528060045481526020018373ffffffffffffffffffffffffffffffffffffffff168152602001600260405190808252806020026020018201604052801561312a5781602001602082028036833780820191505090505b5081526020016000815260200160026040519080825280602002602001820160405280156131675781602001602082028036833780820191505090505b508152602001600081525090508260056000600454815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816002019080519060200190613275929190613c26565b5060608201518160030155608082015181600401908051906020019061329c929190613c26565b5060a082015181600501559050506133166001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004016000815481106132fd57fe5b906000526020600020015461289690919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040160008154811061336457fe5b90600052602060002001819055506000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146134d6576134796001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040160018154811061346057fe5b906000526020600020015461289690919063ffffffff16565b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004016001815481106134c757fe5b90600052602060002001819055505b600460008154809291906001019190505550600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001548373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f309bb360e8b69c23937ccc5fb01f9aeeead1c95a99604e175113ff82f2b1723a600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546040518082815260200191505060405180910390a450505050565b6136bf846323b872dd60e01b858585604051602401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061384b565b50505050565b6000838311158290613772576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561373757808201518184015260208101905061371c565b50505050905090810190601f1680156137645780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008083118290613831576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156137f65780820151818401526020810190506137db565b50505050905090810190601f1680156138235780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161383d57fe5b049050809150509392505050565b60606138ad826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661394d9092919063ffffffff16565b9050600081511115613935578080602001905160208110156138ce57600080fd5b8101908080519060200190929190505050613934576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180613d06602a913960400191505060405180910390fd5b5b505050565b600080823b905060008111915050919050565b606061395c8484600085613965565b90509392505050565b6060824710156139c0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180613cbf6026913960400191505060405180910390fd5b6139c98561393a565b613a3b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000081525060200191505060405180910390fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b60208310613a8b5780518252602082019150602081019050602083039250613a68565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114613aed576040519150601f19603f3d011682016040523d82523d6000602084013e613af2565b606091505b5091509150613b02828286613b0e565b92505050949350505050565b60608315613b1e57829050613bd3565b600083511115613b315782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613b98578082015181840152602081019050613b7d565b50505050905090810190601f168015613bc55780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b9392505050565b6040518060c0016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001606081526020016000815260200160608152602001600081525090565b828054828255906000526020600020908101928215613c62579160200282015b82811115613c61578251825591602001919060010190613c46565b5b509050613c6f9190613c73565b5090565b613c9591905b80821115613c91576000816000905550600101613c79565b5090565b9056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a2646970667358221220c1bfd87fa5e37696da162d75af3f4c1ecdce181be7687eb626ee5c739ddcaeb064736f6c63430006030033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000b1b5f91ce0306b53570cb3fc85ef27311b5e208200000000000000000000000000000000000000000000000000cd98cb94f23b42000000000000000000000000000000000000000000000000000000005fba36a0000000000000000000000000000000000000000000000000000000005fbb882000000000000000000000000099623e3b5bd89ee251a3d1044afd12cba273b45f00000000000000000000000099623e3b5bd89ee251a3d1044afd12cba273b45f
-----Decoded View---------------
Arg [0] : _pizza (address): 0xB1B5F91ce0306B53570cb3Fc85ef27311B5E2082
Arg [1] : _rewardRate (uint256): 57870370370370370
Arg [2] : _starttime (uint256): 1606039200
Arg [3] : _periodFinish (uint256): 1606125600
Arg [4] : _defaultReferAddr (address): 0x99623E3B5bD89ee251a3d1044AfD12cbA273B45f
Arg [5] : _projectAddress (address): 0x99623E3B5bD89ee251a3d1044AfD12cbA273B45f
-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 000000000000000000000000b1b5f91ce0306b53570cb3fc85ef27311b5e2082
Arg [1] : 00000000000000000000000000000000000000000000000000cd98cb94f23b42
Arg [2] : 000000000000000000000000000000000000000000000000000000005fba36a0
Arg [3] : 000000000000000000000000000000000000000000000000000000005fbb8820
Arg [4] : 00000000000000000000000099623e3b5bd89ee251a3d1044afd12cba273b45f
Arg [5] : 00000000000000000000000099623e3b5bd89ee251a3d1044afd12cba273b45f
Deployed Bytecode Sourcemap
10372:14053:0:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;10372:14053:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;13394:95:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18820:178;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;18820:178:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11309:26;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;11309:26:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11625:44;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;11625:44:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;12122:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15738:217;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;15738:217:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21105:1016;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;21105:1016:0;;;;;;;;;;;;;;;;;:::i;:::-;;11595:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11993:29;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;22178:1318;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;22178:1318:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13500:104;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;13500:104:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;18340:263;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;18340:263:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11925:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;15183:450;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;15183:450:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17805:226;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;17805:226:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3706:148;;;:::i;:::-;;13615:119;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;13615:119:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;11844:29;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16687:259;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18039:293;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;18039:293:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12211:44;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11771:24;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3490:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;16263:419;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;16263:419:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10755:66;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;10755:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18612:198;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;18612:198:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;18612:198:0;;;;;;;;;;;;;;;;;16081:96;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;16081:96:0;;;;;;;;;;;;;;;;;:::i;:::-;;11882:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11549:37;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;11549:37:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16954:843;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;16954:843:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15961:114;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;15961:114:0;;;;;;;;;;;;;;;;;:::i;:::-;;11955:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;20183:911;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;20183:911:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11804:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3862:244;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;3862:244:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;13394:95;13439:7;13466:8;:15;;;;13459:22;;13394:95;:::o;18820:178::-;18894:7;18910:19;18923:5;18910:12;:19::i;:::-;18907:74;;;18943:5;:12;18949:5;18943:12;;;;;;;;;;;;;;;:24;;18968:6;18943:32;;;;;;;;;;;;;;;;18936:39;;;;18907:74;18992:1;18985:8;;18820:178;;;;;:::o;11309:26::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11625:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;12122:34::-;;;;:::o;15738:217::-;3627:12;:10;:12::i;:::-;3617:22;;:6;;;;;;;;;;;:22;;;3609:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15834:63:::1;15885:11;15834:46;15854:8;15863:4;15854:14;;;;;;;;;;;;;;;;;;:25;;;15834:15;;:19;;:46;;;;:::i;:::-;:50;;:63;;;;:::i;:::-;15816:15;:81;;;;15936:11;15908:8;15917:4;15908:14;;;;;;;;;;;;;;;;;;:25;;:39;;;;15738:217:::0;;:::o;21105:1016::-;21153:21;21177:8;21186:4;21177:14;;;;;;;;;;;;;;;;;;21153:38;;21202:21;21226:8;:14;21235:4;21226:14;;;;;;;;;;;:26;21241:10;21226:26;;;;;;;;;;;;;;;21202:50;;21263:24;21290:4;:21;;;21263:48;;21322:16;21341:4;:14;;;21322:33;;21388:4;:19;;;21370:15;:37;:54;;;;;21423:1;21411:8;:13;;21370:54;21366:366;;;21441:18;21463:51;21477:4;:19;;;21498:15;21463:13;:51::i;:::-;21441:73;;21529:19;21551:73;21608:15;;21551:52;21587:4;:15;;;21551:31;21566:15;:13;:15::i;:::-;21551:10;:14;;:31;;;;:::i;:::-;:35;;:52;;;;:::i;:::-;:56;;:73;;;;:::i;:::-;21529:95;;21658:62;21684:35;21710:8;21684:21;21700:4;21684:11;:15;;:21;;;;:::i;:::-;:25;;:35;;;;:::i;:::-;21658:4;:21;;;:25;;:62;;;;:::i;:::-;21639:81;;21366:366;;;21742:14;21759:95;21842:4;:11;;;21759:78;21832:4;21759:68;21775:51;21798:4;:27;;;21776:16;21775:22;;:51;;;;:::i;:::-;21759:4;:11;;;:15;;:68;;;;:::i;:::-;:72;;:78;;;;:::i;:::-;:82;;:95;;;;:::i;:::-;21742:112;;21881:1;21872:6;:10;21868:193;;;21890:37;21908:10;21920:6;21890:17;:37::i;:::-;21951:27;21971:6;21951:4;:15;;;:19;;:27;;;;:::i;:::-;21933:4;:15;;:45;;;;21998:1;21984:4;:11;;:15;;;;22030:10;22019:30;;;22042:6;22019:30;;;;;;;;;;;;;;;;;;21868:193;22097:16;22067:4;:27;;:46;;;;21105:1016;;;;;;:::o;11595:26::-;;;;:::o;11993:29::-;;;;;;;;;;;;;:::o;22178:1318::-;22240:21;22264:8;:14;22273:4;22264:14;;;;;;;;;;;:26;22279:10;22264:26;;;;;;;;;;;;;;;22240:50;;22309:21;22333:8;22342:4;22333:14;;;;;;;;;;;;;;;;;;22309:38;;22391:7;22376:4;:11;;;:22;;22368:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22432:27;22443:4;22448:10;22432;:27::i;:::-;22483:42;22501:10;22513:4;:11;;;22483:17;:42::i;:::-;22627:32;22647:4;:11;;;22627:4;:15;;;:19;;:32;;;;:::i;:::-;22609:4;:15;;:50;;;;22680:10;22669:39;;;22692:4;:15;;;22669:39;;;;;;;;;;;;;;;;;;22732:1;22722:7;:11;22719:699;;;22764:24;22780:7;22764:4;:11;;;:15;;:24;;;;:::i;:::-;22750:4;:11;;:38;;;;22803:55;22837:10;22850:7;22803:4;:12;;;;;;;;;;;;:25;;;;:55;;;;;:::i;:::-;22884:27;22903:7;22884:4;:14;;;:18;;:27;;;;:::i;:::-;22867:4;:14;;:44;;;;22921:17;22941:5;:17;22947:10;22941:17;;;;;;;;;;;;;;;:26;;;;;;;;;;;;22921:46;;22977:9;22989:1;22977:13;;22973:433;22993:1;22991;:3;22973:433;;;23029:1;23009:22;;:9;:22;;;;:49;;;;;23035:23;23048:9;23035:12;:23::i;:::-;23009:49;23006:393;;;23101:44;23137:7;23101:5;:16;23107:9;23101:16;;;;;;;;;;;;;;;:28;;23130:1;23101:31;;;;;;;;;;;;;;;;:35;;:44;;;;:::i;:::-;23067:5;:16;23073:9;23067:16;;;;;;;;;;;;;;;:28;;23096:1;23067:31;;;;;;;;;;;;;;;:78;;;;23186:71;23219:37;23254:1;23252;:3;23219:28;23243:3;23219:19;23235:2;23219:4;:11;;;:15;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;:32;;:37;;;;:::i;:::-;23186:5;:16;23192:9;23186:16;;;;;;;;;;;;;;;:28;;;:32;;:71;;;;:::i;:::-;23154:5;:16;23160:9;23154:16;;;;;;;;;;;;;;;:28;;:103;;;;23269:67;23287:9;23298:37;23333:1;23331;:3;23298:28;23322:3;23298:19;23314:2;23298:4;:11;;;:15;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;:32;;:37;;;;:::i;:::-;23269:17;:67::i;:::-;23356:5;:16;23362:9;23356:16;;;;;;;;;;;;;;;:25;;;;;;;;;;;;23344:37;;23006:393;;;23394:5;;23006:393;22995:3;;;;;;;22973:433;;;;22719:699;;23436:1;23422:4;:11;;:15;;;;23474:4;23462:10;23453:35;;;23480:7;23453:35;;;;;;;;;;;;;;;;;;22178:1318;;;;:::o;13500:104::-;13557:4;13594:1;13576:5;:11;13582:4;13576:11;;;;;;;;;;;;;;;:14;;;:19;;13568:28;;13500:104;;;:::o;18340:263::-;18399:7;18413:14;18430:1;18413:18;;18440:9;18452:1;18440:13;;18436:136;18457:8;:15;;;;18454:1;:18;18436:136;;;18484:21;18508:8;:11;18517:1;18508:11;;;;;;;;;;;:18;18520:5;18508:18;;;;;;;;;;;;;;;18484:42;;18543:23;18554:4;:11;;;18543:6;:10;;:23;;;;:::i;:::-;18534:32;;18436:136;18473:3;;;;;;;18436:136;;;;18589:6;18582:13;;;18340:263;;;:::o;11925:19::-;;;;;;;;;;;;;:::o;15183:450::-;3627:12;:10;:12::i;:::-;3617:22;;:6;;;;;;;;;;;:22;;;3609:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15267:22:::1;15310:9;;15292:15;:27;:57;;15340:9;;15292:57;;;15322:15;15292:57;15267:82;;15378:32;15398:11;15378:15;;:19;;:32;;;;:::i;:::-;15360:15;:50;;;;15421:8;15435:187;;;;;;;;15468:8;15435:187;;;;;;15503:11;15435:187;;;;15545:14;15435:187;;;;15592:1;15435:187;;;;15609:1;15435:187;;::::0;15421:202:::1;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;15421:202:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3687:1;15183:450:::0;;:::o;17805:226::-;17866:7;17880:15;17898:1;17880:19;;17908:9;17920:1;17908:13;;17904:96;17925:8;:15;;;;17922:1;:18;17904:96;;;17961:33;17972:21;17985:1;17987:5;17972:12;:21::i;:::-;17961:6;:10;;:33;;;;:::i;:::-;17952:42;;17941:3;;;;;;;17904:96;;;;18017:6;18010:13;;;17805:226;;;:::o;3706:148::-;3627:12;:10;:12::i;:::-;3617:22;;:6;;;;;;;;;;;:22;;;3609:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3813:1:::1;3776:40;;3797:6;::::0;::::1;;;;;;;;;3776:40;;;;;;;;;;;;3844:1;3827:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3706:148::o:0;13615:119::-;13685:41;13698:10;13710:15;13685:12;:41::i;:::-;13615:119;:::o;11844:29::-;;;;:::o;16687:259::-;16732:7;16766:10;16752:11;;:24;16749:193;;;16790:10;;16783:17;;;;16749:193;16829:10;16814:11;;:25;;:57;;;;;16858:13;16843:11;;:28;;16814:57;16811:131;;;16885:27;16908:3;16885:18;16900:2;16885:10;;:14;;:18;;;;:::i;:::-;:22;;:27;;;;:::i;:::-;16878:34;;;;16811:131;16935:1;16928:8;;16687:259;;:::o;18039:293::-;18099:7;18113:14;18130:1;18113:18;;18140:9;18152:1;18140:13;;18136:165;18157:8;:15;;;;18154:1;:18;18136:165;;;18184:21;18208:8;:11;18217:1;18208:11;;;;;;;;;;;:18;18220:5;18208:18;;;;;;;;;;;;;;;18184:42;;18241:54;18252:42;18278:4;:15;;;18252:21;18265:1;18267:5;18252:12;:21::i;:::-;:25;;:42;;;;:::i;:::-;18241:6;:10;;:54;;;;:::i;:::-;18232:63;;18136:165;18173:3;;;;;;;18136:165;;;;18318:6;18311:13;;;18039:293;;;:::o;12211:44::-;12254:1;12211:44;:::o;11771:24::-;;;;:::o;3490:79::-;3528:7;3555:6;;;;;;;;;;;3548:13;;3490:79;:::o;16263:419::-;16335:7;16366:12;;16359:3;:19;16355:320;;16402:36;12254:1;16402:14;16410:5;16402:3;:7;;:14;;;;:::i;:::-;:18;;:36;;;;:::i;:::-;16395:43;;;;16355:320;16469:12;;16460:5;:21;16456:219;;16505:14;16513:5;16505:3;:7;;:14;;;;:::i;:::-;16498:21;;;;16456:219;16559:104;16627:21;16635:12;;16627:3;:7;;:21;;;;:::i;:::-;16559:45;12254:1;16559:23;16576:5;16559:12;;:16;;:23;;;;:::i;:::-;:27;;:45;;;;:::i;:::-;:49;;:104;;;;:::i;:::-;16552:111;;16263:419;;;;;:::o;10755:66::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;18612:198::-;18676:16;18704:25;18717:11;18704:12;:25::i;:::-;18701:77;;;18743:5;:18;18749:11;18743:18;;;;;;;;;;;;;;;:29;;18736:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18701:77;18803:1;18789:16;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;125:4;109:14;101:6;88:42;156:4;148:6;144:17;134:27;;0:165;18789:16:0;;;;18782:23;;18612:198;;;;:::o;16081:96::-;3627:12;:10;:12::i;:::-;3617:22;;:6;;;;;;;;;;;:22;;;3609:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16160:11:::1;16147:10;:24;;;;16081:96:::0;:::o;11882:30::-;;;;:::o;11549:37::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;16954:843::-;17026:7;17046:21;17070:8;17079:4;17070:14;;;;;;;;;;;;;;;;;;17046:38;;17095:21;17119:8;:14;17128:4;17119:14;;;;;;;;;;;:21;17134:5;17119:21;;;;;;;;;;;;;;;17095:45;;17151:24;17178:4;:21;;;17151:48;;17210:16;17229:4;:14;;;17210:33;;17248:14;17265:4;:11;;;17248:28;;17309:4;:19;;;17291:15;:37;:54;;;;;17344:1;17332:8;:13;;17291:54;17287:366;;;17362:18;17384:51;17398:4;:19;;;17419:15;17384:13;:51::i;:::-;17362:73;;17450:19;17472:73;17529:15;;17472:52;17508:4;:15;;;17472:31;17487:15;:13;:15::i;:::-;17472:10;:14;;:31;;;;:::i;:::-;:35;;:52;;;;:::i;:::-;:56;;:73;;;;:::i;:::-;17450:95;;17579:62;17605:35;17631:8;17605:21;17621:4;17605:11;:15;;:21;;;;:::i;:::-;:25;;:35;;;;:::i;:::-;17579:4;:21;;;:25;;:62;;;;:::i;:::-;17560:81;;17287:366;;;17668:90;17679:78;17752:4;17679:68;17695:51;17718:4;:27;;;17696:16;17695:22;;:51;;;;:::i;:::-;17679:4;:11;;;:15;;:68;;;;:::i;:::-;:72;;:78;;;;:::i;:::-;17668:6;:10;;:90;;;;:::i;:::-;17659:99;;17783:6;17776:13;;;;;;;16954:843;;;;:::o;15961:114::-;3627:12;:10;:12::i;:::-;3617:22;;:6;;;;;;;;;;;:22;;;3609:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16054:16:::1;16036:15;:34;;;;15961:114:::0;:::o;11955:31::-;;;;;;;;;;;;;:::o;20183:911::-;24377:9;;24358:15;:28;24350:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20264:24:::1;20277:10;20264:12;:24::i;:::-;20256:54;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;20323:21;20347:8;20356:4;20347:14;;;;;;;;;;;;;;;;;;20323:38;;20372:21;20396:8;:14;20405:4;20396:14;;;;;;;;;;;:26;20411:10;20396:26;;;;;;;;;;;;;;;20372:50;;20433:27;20444:4;20449:10;20433;:27::i;:::-;20489:1;20479:7;:11;20476:561;;;20507:74;20545:10;20566:4;20573:7;20507:4;:12;;;;;;;;;;;;:29;;;;:74;;;;;;:::i;:::-;20610:24;20626:7;20610:4;:11;;;:15;;:24;;;;:::i;:::-;20596:4;:11;;:38;;;;20651:4;20640;:8;;:15;;;;20678:27;20697:7;20678:4;:14;;;:18;;:27;;;;:::i;:::-;20661:4;:14;;:44;;;;20719:17;20739:5;:17;20745:10;20739:17;;;;;;;;;;;;;;;:26;;;;;;;;;;;;20719:46;;20775:9;20787:1:::0;20775:13:::1;;20771:251;20791:1;20789;:3;20771:251;;;20831:1;20811:22;;:9;:22;;;;:49;;;;;20837:23;20850:9;20837:12;:23::i;:::-;20811:49;20808:207;;;20903:44;20915:5;:16;20921:9;20915:16;;;;;;;;;;;;;;;:28;;20944:1;20915:31;;;;;;;;;;;;;;;;20903:7;:11;;:44;;;;:::i;:::-;20869:5;:16;20875:9;20869:16;;;;;;;;;;;;;;;:28;;20898:1;20869:31;;;;;;;;;;;;;;;:78;;;;20972:5;:16;20978:9;20972:16;;;;;;;;;;;;;;;:25;;;;;;;;;;;;20960:37;;20808:207;;;21010:5;;20808:207;20793:3;;;;;;;20771:251;;;;20476:561;;21072:4;21060:10;21052:34;;;21078:7;21052:34;;;;;;;;;;;;;;;;;;24409:1;;20183:911:::0;;:::o;11804:31::-;;;;:::o;3862:244::-;3627:12;:10;:12::i;:::-;3617:22;;:6;;;;;;;;;;;:22;;;3609:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3971:1:::1;3951:22;;:8;:22;;;;3943:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4061:8;4032:38;;4053:6;::::0;::::1;;;;;;;;;4032:38;;;;;;;;;;;;4090:8;4081:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3862:244:::0;:::o;63:106::-;116:15;151:10;144:17;;63:106;:::o;1417:136::-;1475:7;1502:43;1506:1;1509;1502:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1495:50;;1417:136;;;;:::o;1228:181::-;1286:7;1306:9;1322:1;1318;:5;1306:17;;1347:1;1342;:6;;1334:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1400:1;1393:8;;;1228:181;;;;:::o;1763:471::-;1821:7;2071:1;2066;:6;2062:47;;;2096:1;2089:8;;;;2062:47;2121:9;2137:1;2133;:5;2121:17;;2166:1;2161;2157;:5;;;;;;:10;2149:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2225:1;2218:8;;;1763:471;;;;;:::o;2244:132::-;2302:7;2329:39;2333:1;2336;2329:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2322:46;;2244:132;;;;:::o;24023:285::-;24100:16;24119:5;;;;;;;;;;;:15;;;24143:4;24119:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;24119:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;24119:30:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;24119:30:0;;;;;;;;;;;;;;;;24100:49;;24174:8;24164:7;:18;24160:141;;;24199:5;;;;;;;;;;;:14;;;24214:3;24219:8;24199:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;24199:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;24199:29:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;24199:29:0;;;;;;;;;;;;;;;;;24160:141;;;24261:5;;;;;;;;;;;:14;;;24276:3;24281:7;24261:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;24261:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;24261:28:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;24261:28:0;;;;;;;;;;;;;;;;;24160:141;24023:285;;;:::o;19075:1036::-;19143:21;19167:8;19176:4;19167:14;;;;;;;;;;;;;;;;;;19143:38;;19215:4;:19;;;19196:15;:38;19192:77;;19251:7;;;19192:77;19279:16;19298:4;:14;;;19279:33;;19339:1;19327:8;:13;19323:104;;;19379:15;19357:4;:19;;:37;;;;19409:7;;;;19323:104;19431:21;19455:8;:14;19464:4;19455:14;;;;;;;;;;;:21;19470:5;19455:21;;;;;;;;;;;;;;;19431:45;;19491:18;19512:51;19526:4;:19;;;19547:15;19512:13;:51::i;:::-;19491:72;;19574:19;19596:73;19653:15;;19596:52;19632:4;:15;;;19596:31;19611:15;:13;:15::i;:::-;19596:10;:14;;:31;;;;:::i;:::-;:35;;:52;;;;:::i;:::-;:56;;:73;;;;:::i;:::-;19574:95;;19694:28;19710:11;19694;;:15;;:28;;;;:::i;:::-;19680:11;:42;;;;19806:62;19832:35;19858:8;19832:21;19848:4;19832:11;:15;;:21;;;;:::i;:::-;:25;;:35;;;;:::i;:::-;19806:4;:21;;;:25;;:62;;;;:::i;:::-;19782:4;:21;;:86;;;;19891:100;19979:4;:11;;;19891:83;19969:4;19891:73;19907:56;19935:4;:27;;;19908:4;:21;;;19907:27;;:56;;;;:::i;:::-;19891:4;:11;;;:15;;:73;;;;:::i;:::-;:77;;:83;;;;:::i;:::-;:87;;:100;;;;:::i;:::-;19877:4;:11;;:114;;;;20034:4;:21;;;20004:4;:27;;:51;;;;20088:15;20066:4;:19;;:37;;;;19075:1036;;;;;;;;:::o;8278:177::-;8361:86;8381:5;8411:23;;;8436:2;8440:5;8388:58;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;8388: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;;;8388:58:0;8361:19;:86::i;:::-;8278:177;;;:::o;13742:1265::-;13908:25;13921:11;13908:12;:25::i;:::-;13907:26;13899:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13968:29;13981:15;13968:12;:29::i;:::-;13960:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14201:31;14220:11;14201:18;:31::i;:::-;14200:32;14192:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14281:16;;:::i;:::-;14300:205;;;;;;;;14324:10;;14300:205;;;;14359:15;14300:205;;;;;;14406:1;14392:16;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;125:4;109:14;101:6;88:42;156:4;148:6;144:17;134:27;;0:165;14392:16:0;;;;14300:205;;;;14426:1;14300:205;;;;14458:1;14444:16;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;125:4;109:14;101:6;88:42;156:4;148:6;144:17;134:27;;0:165;14444:16:0;;;;14300:205;;;;14490:1;14300:205;;;14281:224;;14544:11;14520:9;:21;14530:10;;14520:21;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;14597:4;14576:5;:18;14582:11;14576:18;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;14649:43;14690:1;14649:5;:22;14655:15;14649:22;;;;;;;;;;;;;;;:33;;14683:1;14649:36;;;;;;;;;;;;;;;;:40;;:43;;;;:::i;:::-;14610:5;:22;14616:15;14610:22;;;;;;;;;;;;;;;:33;;14644:1;14610:36;;;;;;;;;;;;;;;:82;;;;14701:14;14718:5;:22;14724:15;14718:22;;;;;;;;;;;;;;;:31;;;;;;;;;;;;14701:48;;14775:1;14757:20;;:6;:20;;;14754:100;;14814:34;14846:1;14814:5;:13;14820:6;14814:13;;;;;;;;;;;;;;;:24;;14839:1;14814:27;;;;;;;;;;;;;;;;:31;;:34;;;;:::i;:::-;14784:5;:13;14790:6;14784:13;;;;;;;;;;;;;;;:24;;14809:1;14784:27;;;;;;;;;;;;;;;:64;;;;14754:100;14868:10;;:12;;;;;;;;;;;;;14950:5;:18;14956:11;14950:18;;;;;;;;;;;;;;;:21;;;14933:15;14907:92;;14920:11;14907:92;;;14973:5;:22;14979:15;14973:22;;;;;;;;;;;;;;;:25;;;14907:92;;;;;;;;;;;;;;;;;;13742:1265;;;;:::o;8463:205::-;8564:96;8584:5;8614:27;;;8643:4;8649:2;8653:5;8591:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;8591: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;;;8591:68:0;8564:19;:96::i;:::-;8463:205;;;;:::o;1563:192::-;1649:7;1682:1;1677;:6;;1685:12;1669: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;1669:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1709:9;1725:1;1721;:5;1709:17;;1746:1;1739:8;;;1563:192;;;;;:::o;2384:278::-;2470:7;2502:1;2498;:5;2505:12;2490: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;2490:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2529:9;2545:1;2541;:5;;;;;;2529:17;;2653:1;2646:8;;;2384:278;;;;;:::o;9943:420::-;10026:23;10052:69;10080:4;10052:69;;;;;;;;;;;;;;;;;10060:5;10052:27;;;;:69;;;;;:::i;:::-;10026:95;;10156:1;10136:10;:17;:21;10132:224;;;10278:10;10267:30;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;10267:30:0;;;;;;;;;;;;;;;;10259:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10132:224;9943:420;;;:::o;4154:422::-;4214:4;4422:12;4533:7;4521:20;4513:28;;4567:1;4560:4;:8;4553:15;;;4154:422;;;:::o;5176:195::-;5279:12;5311:52;5333:6;5341:4;5347:1;5350:12;5311:21;:52::i;:::-;5304:59;;5176:195;;;;;:::o;5615:530::-;5742:12;5800:5;5775:21;:30;;5767:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5867:18;5878:6;5867:10;:18::i;:::-;5859:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5993:12;6007:23;6034:6;:11;;6054:5;6062:4;6034:33;;;;;;;;;;;;;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;;;6034:33:0;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;5992:75:0;;;;6085:52;6103:7;6112:10;6124:12;6085:17;:52::i;:::-;6078:59;;;;5615:530;;;;;;:::o;7433:742::-;7548:12;7577:7;7573:595;;;7608:10;7601:17;;;;7573:595;7742:1;7722:10;:17;:21;7718:439;;;7985:10;7979:17;8046:15;8033:10;8029:2;8025:19;8018:44;7933:148;8128:12;8121:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;8121:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7433:742;;;;;;:::o;10372:14053::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o
Swarm Source
ipfs://c1bfd87fa5e37696da162d75af3f4c1ecdce181be7687eb626ee5c739ddcaeb0
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
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.