This token is reported to have been spammed to many users. Please exercise caution when interacting with it.
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 15,025 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer | 13422218 | 1203 days ago | IN | 0 ETH | 0.00284997 | ||||
Transfer | 13422141 | 1203 days ago | IN | 0 ETH | 0.00220093 | ||||
Transfer | 9184394 | 1858 days ago | IN | 0 ETH | 0.00022114 | ||||
Transfer | 9184389 | 1858 days ago | IN | 0 ETH | 0.00041148 | ||||
Reward | 9178545 | 1859 days ago | IN | 0 ETH | 0.0038695 | ||||
Reward | 9174782 | 1860 days ago | IN | 0 ETH | 0.00313264 | ||||
Reward | 9138340 | 1867 days ago | IN | 0 ETH | 0.0038695 | ||||
Reward | 9136403 | 1867 days ago | IN | 0 ETH | 0.00313264 | ||||
Reward | 9131313 | 1868 days ago | IN | 0 ETH | 0.00024892 | ||||
Reward | 9128793 | 1869 days ago | IN | 0 ETH | 0.00319061 | ||||
Reward | 9107723 | 1873 days ago | IN | 0 ETH | 0.00346179 | ||||
Reward | 9099230 | 1875 days ago | IN | 0 ETH | 0.00313264 | ||||
Reward | 9097290 | 1875 days ago | IN | 0 ETH | 0.0038695 | ||||
Reward | 9063198 | 1881 days ago | IN | 0 ETH | 0.000227 | ||||
Reward | 9063195 | 1881 days ago | IN | 0 ETH | 0.00238987 | ||||
Reward | 9051842 | 1883 days ago | IN | 0 ETH | 0.00188072 | ||||
Reward | 9046517 | 1884 days ago | IN | 0 ETH | 0.00264158 | ||||
Reward | 9012358 | 1890 days ago | IN | 0 ETH | 0.00188072 | ||||
Reward | 8989754 | 1894 days ago | IN | 0 ETH | 0.000227 | ||||
Reward | 8989754 | 1894 days ago | IN | 0 ETH | 0.00238987 | ||||
Reward | 8986309 | 1895 days ago | IN | 0 ETH | 0.00264158 | ||||
Reward | 8968836 | 1897 days ago | IN | 0 ETH | 0.00188072 | ||||
Reward | 8947140 | 1901 days ago | IN | 0 ETH | 0.000227 | ||||
Reward | 8947138 | 1901 days ago | IN | 0 ETH | 0.00238987 | ||||
Reward | 8941024 | 1902 days ago | IN | 0 ETH | 0.000227 |
Latest 20 internal transactions
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
8004818 | 2049 days ago | 0.3 ETH | ||||
7870597 | 2070 days ago | 0.1 ETH | ||||
7866884 | 2071 days ago | 0.7 ETH | ||||
7864848 | 2071 days ago | 2 ETH | ||||
7854426 | 2073 days ago | 0.77 ETH | ||||
7853760 | 2073 days ago | 0.381 ETH | ||||
7834744 | 2076 days ago | 4.49 ETH | ||||
7827675 | 2077 days ago | 17 ETH | ||||
7771493 | 2085 days ago | 4.5 ETH | ||||
7750902 | 2089 days ago | 5.95 ETH | ||||
7750738 | 2089 days ago | 1.44 ETH | ||||
7748737 | 2089 days ago | 5.89 ETH | ||||
7748517 | 2089 days ago | 5.56 ETH | ||||
7745728 | 2089 days ago | 6 ETH | ||||
7744910 | 2090 days ago | 5.69 ETH | ||||
7743748 | 2090 days ago | 0.359 ETH | ||||
7741986 | 2090 days ago | 6.1 ETH | ||||
7740251 | 2090 days ago | 5.43 ETH | ||||
7641505 | 2106 days ago | 1.3 ETH | ||||
7494247 | 2129 days ago | 0.001 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
USDT
Compiler Version
v0.4.25+commit.59dbf8f1
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2019-03-29 */ pragma solidity ^ 0.4.24; // ---------------------------------------------------------------------------- // 安全的加减乘除 // ---------------------------------------------------------------------------- library SafeMath { function add(uint a, uint b) internal pure returns(uint c) { c = a + b; require(c >= a); } function sub(uint a, uint b) internal pure returns(uint c) { require(b <= a); c = a - b; } function mul(uint a, uint b) internal pure returns(uint c) { c = a * b; require(a == 0 || c / a == b); } function div(uint a, uint b) internal pure returns(uint c) { require(b > 0); c = a / b; } } // ---------------------------------------------------------------------------- // ERC Token Standard #20 Interface // https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md // ---------------------------------------------------------------------------- contract ERC20Interface { function totalSupply() public constant returns(uint); function balanceOf(address tokenOwner) public constant returns(uint balance); function allowance(address tokenOwner, address spender) public constant returns(uint remaining); function transfer(address to, uint tokens) public returns(bool success); function approve(address spender, uint tokens) public returns(bool success); function transferFrom(address from, address to, uint tokens) public returns(bool success); event Transfer(address indexed from, address indexed to, uint tokens); event Approval(address indexed tokenOwner, address indexed spender, uint tokens); } contract EttToken{ function tokenAdd(address user,uint tokens) public returns(bool success); function tokenSub(address user,uint tokens) public returns(bool success); function balanceOf(address tokenOwner) public constant returns(uint balance); } // ---------------------------------------------------------------------------- // 核心类 // ---------------------------------------------------------------------------- contract USDT is ERC20Interface{ using SafeMath for uint; string public symbol; string public name; uint8 public decimals; uint _totalSupply;//总发行 // uint public sellPrice; //出售价格 1枚代币换多少以太 /1000 uint public buyPrice; //购买价格 多少以太可购买1枚代币 /1000 uint public transper; //转账手续费 /3% bool public actived; uint public teamper1;//团队奖% uint public teamper2;//团队奖% //uint public sellper;//15 uint public sysinteth; mapping(address => uint) balances;//总计 //mapping(address => uint) myeth;//本金 // mapping(address => uint) froeth;//冻结 //mapping(address => uint) used; mapping(address => mapping(address => uint)) allowed; /* 冻结账户 */ mapping(address => bool) public frozenAccount; //上家地址 mapping(address => address) public fromaddr; //管理员帐号 mapping(address => bool) public admins; // 记录各个账户的增量时间 mapping(address => uint) public crontime; // 挖矿次数 // mapping(address => uint) public mintnum; uint[] public permans; mapping(address => uint) public teamget; struct sunsdata{ mapping(uint => uint) n; mapping(uint => uint) n_effective; } mapping(address => sunsdata) suns; address public intertoken; modifier onlyInterface { require(intertoken != address(0)); require(msg.sender == intertoken); _; } /* 通知 */ event FrozenFunds(address target, bool frozen); address public owner; address public financer; modifier onlyOwner { require(msg.sender == owner); _; } modifier onlyFinancer { require(msg.sender == financer); _; } struct record{ //当前可提现本金 uint can_draw_capital; //当前已投资本金 uint not_draw_capital; //总的应释放利润 uint total_profit; //总的已释放利润 uint releasd_profit; //投资时间 uint last_investdate; uint history_releasd_profit; } mapping(address=>record) public user_inverst_record; struct plan{ uint account; uint times; } mapping(uint => plan) public plans; struct node_profit{ uint menber_counts; uint percent; } mapping(uint => node_profit) public node_profits; // uint public min_investment; uint public per; uint public OnceWidrawTime; mapping(address => bool) _effective_son; struct quit_conf{ uint interval; uint rate1; uint rate2; } quit_conf public quit_config; uint teamPrice1; uint teamPrice2; mapping(address=>bool) public isleader; mapping(address =>uint) public leader_eth; mapping(address=>uint) public userineth; address [] public leaders; EttToken public ett; uint public ettRate; uint generation; uint generation_team; mapping(address=>address) public ethtop; // ------------------------------------------------------------------------ // Constructor // ------------------------------------------------------------------------ constructor(EttToken _ettAddress,address [] _supernodes) public { symbol = "USDT"; name = "USDT Coin"; decimals = 18; _totalSupply = 1000000000 ether; buyPrice = 138 ether; //购买价格 1eth can buy how much mt transper = uint(0);//转账手续费 /100 teamper1 = 10;//团队奖% /100 teamper2 = 20;//团队奖% /100 //sellper = 85;// /100 actived = true; permans = [40,10,12,6]; //permans = [3,3,2,2];//test balances[this] = _totalSupply; owner = msg.sender; financer = msg.sender; per = 1; plans[1].account = 7000 ether; plans[1].times = 2 ; plans[2].account = 35000 ether; plans[2].times = 3 ; plans[3].account = 70000 ether; plans[3].times = 4 ; plans[4].account = 210000 ether; plans[4].times = 5 ; for(uint i=1;i<=16;i++){ node_profits[i].menber_counts = i; if(i==1){ node_profits[i].percent = 100; }else if(i==2){ node_profits[i].percent = 20; }else if(i==3){ node_profits[i].percent = 15; }else if(i == 4){ node_profits[i].percent = 10; }else{ node_profits[i].percent = 5; } } OnceWidrawTime = 24 hours; //OnceWidrawTime = 10 seconds; //min_investment = plans[1].account ; //quit_config.interval = 30 days //quit_config.interval = 30 seconds; quit_config.interval = 30 days; quit_config.rate1 = 5; quit_config.rate2 = 1; teamPrice1 = 100000 ether; teamPrice2 = 500000 ether; ettRate = 70 ether; generation = 16; generation_team = 8; ett = _ettAddress; for(uint m;m<_supernodes.length;m++){ addLeader(_supernodes[m]); } emit Transfer(address(0), owner, _totalSupply); } /* 获取用户金额 */ function balanceOf(address user) public view returns(uint balance) { return balances[user]; } function ethbalance(address user) public view returns(uint _balance) { _balance = address(user).balance; } /* * 获取用户的挖矿时间 * @param {Object} address */ function getaddtime(address _addr) public view returns(uint) { if(crontime[_addr] < 2) { return(0); }else{ return(crontime[_addr]); } } function getmy(address user) public view returns( uint myblance, uint meth, uint mytime, uint bprice, uint tmoney, uint myineth, bool _isleader, uint _leader_eth, uint [10] _inverst /* uint _can_draw_capital, uint _not_draw_capital, uint _last_investdate, uint _total_profit, uint _releasd_profit, uint _history_releasd_profit */ ){ address _user = user; myblance = balances[_user];//0 meth = ethbalance(_user);//2 mytime = crontime[_user];//5 bprice = buyPrice;//6 tmoney = balances[this];//9 myineth = userineth[_user]; _isleader = isleader[_user]; _leader_eth = leader_eth[_user]; _inverst[0]=user_inverst_record[_user].can_draw_capital; _inverst[1]=user_inverst_record[_user].last_investdate; _inverst[2]=user_inverst_record[_user].not_draw_capital; _inverst[3]=user_inverst_record[_user].total_profit; _inverst[4]=user_inverst_record[_user].releasd_profit; _inverst[5] = user_inverst_record[_user].history_releasd_profit; _inverst[6] = ethbalance(_user); _inverst[7] = getquitfee(_user); _inverst[8] = ettRate; _inverst[9] = getettbalance(_user); /* _can_draw_capital=user_inverst_record[_user].can_draw_capital; _last_investdate=user_inverst_record[_user].last_investdate; _not_draw_capital=user_inverst_record[_user].not_draw_capital; _total_profit=user_inverst_record[_user].total_profit; _releasd_profit=user_inverst_record[_user].releasd_profit; _history_releasd_profit = user_inverst_record[_user].history_releasd_profit; */ } function setRwardGeneration(uint _generation,uint _generation_team) public onlyOwner returns(bool){ if(_generation_team>1&&_generation>1&&_generation<=16){ generation = _generation; generation_team = _generation_team; return true; }else{ return false; } } function getRwardGeneration() public view onlyOwner returns(uint _generation,uint _generation_team){ _generation = generation; _generation_team = generation_team; } function geteam(address _user) public view returns( uint nn1,//0 uint nn2,//1 uint n_effective1, uint n_effective2, uint [16] n, uint [16] n_effective, uint ms,//6 uint tm,//7 uint lid//11 ){ nn1 = suns[_user].n[1]; nn2 = suns[_user].n[2]; n_effective1 = suns[_user].n_effective[1]; n_effective2 = suns[_user].n_effective[2]; for(uint i;i<16;i++){ n[i] = suns[_user].n[i+1]; n_effective[i] = suns[_user].n_effective[i+1]; } ms = teamget[_user]; tm = getaddtime(_user); if(suns[_user].n_effective[2] >= permans[2] && suns[_user].n_effective[1] >= permans[3]){ lid = 1; } if(suns[_user].n_effective[2] >= permans[0] && suns[_user].n_effective[1] >= permans[1]){ lid = 2; } } function getsys() public view returns( uint tmoney,//0 uint _sysinteth ){ tmoney = _totalSupply.sub(balances[this]); _sysinteth = sysinteth; } function _transfer(address from, address to, uint tokens) private returns(bool success) { require(!frozenAccount[from]); require(!frozenAccount[to]); require(actived == true); uint addper = tokens*transper/100; uint allmoney = tokens + addper; require(balances[from] >= allmoney); require(tokens > 0 && tokens < _totalSupply); // 防止转移到0x0, 用burn代替这个功能 require(to != 0x0); require(from != to); // 将此保存为将来的断言, 函数最后会有一个检验103 - 3 + 10 uint previousBalances = balances[from] - addper + balances[to]; //如果用户没有上家 if(fromaddr[to] == address(0) && fromaddr[from] != to) { //指定上家地址 fromaddr[to] = from; address top = fromaddr[to]; if(isleader[ethtop[top]]){ ethtop[to] = ethtop[top]; } if(isleader[top] ){ ethtop[to] = top; } address _to = to; for(uint i = 1;i<=16;i++){ if(top != address(0) && top !=_to){ suns[top].n[i] += 1; _to = top; top = fromaddr[top]; continue; }else{ break; } } } balances[from] = balances[from].sub(allmoney); balances[this] = balances[this].add(addper); balances[to] = balances[to].add(tokens); emit Transfer(from, this, addper); emit Transfer(from, to, tokens); // 断言检测, 不应该为错 assert(balances[from] + balances[to] == previousBalances);//90 10 return true; } /* * 用户转账 * @param {Object} address */ function transfer(address to, uint tokens) public returns(bool success) { _transfer(msg.sender, to, tokens); success = true; } function intertransfer(address from, address to, uint tokens) public onlyInterface returns(bool success) { _transfer(from, to, tokens); success = true; } /* * 获取上家地址 * @param {Object} address */ function getfrom(address _addr) public view returns(address) { return(fromaddr[_addr]); } function approve(address spender, uint tokens) public returns(bool success) { require(tokens > 1 && tokens < _totalSupply); require(balances[msg.sender] >= tokens); allowed[msg.sender][spender] = tokens; emit Approval(msg.sender, spender, tokens); return true; } /* * 授权转账 * @param {Object} address */ function transferFrom(address from, address to, uint tokens) public returns(bool success) { require(actived == true); require(!frozenAccount[from]); require(!frozenAccount[to]); require(tokens > 1 && tokens < _totalSupply); require(balances[from] >= tokens); balances[from] = balances[from].sub(tokens); allowed[from][msg.sender] = allowed[from][msg.sender].sub(tokens); balances[to] = balances[to].add(tokens); emit Transfer(from, to, tokens); return true; } /* * 获取授权信息 * @param {Object} address */ function allowance(address tokenOwner, address spender) public view returns(uint remaining) { return allowed[tokenOwner][spender]; } /// 冻结 or 解冻账户 function freezeAccount(address target, bool freeze) public onlyOwner{ frozenAccount[target] = freeze; emit FrozenFunds(target, freeze); } /* * 系统设置 * @param {Object} uint */ function setconf( uint _per, uint _newOnceWidrawTime, uint _newBuyPrice, uint _ettRate ) public onlyOwner{ require(_per>0); require(ettRate>0); per = _per; OnceWidrawTime = _newOnceWidrawTime; buyPrice = _newBuyPrice; ettRate = _ettRate; } // * 获取系统设置 function getconf() public view returns( uint _per, uint _newOnceWidrawTime, uint _newBuyPrice, uint _ettRate) { _per = per; _newOnceWidrawTime = OnceWidrawTime; _newBuyPrice = buyPrice; _ettRate = ettRate; } function setother( uint _transper, uint _quit_interval, uint _quit_rate1, uint _quit_rate2 ) public onlyOwner{ transper = _transper; quit_config = quit_conf(_quit_interval,_quit_rate1,_quit_rate2); } function getquitfee(address _user) public view returns(uint ){ uint _fee; //require(actived == true&&!frozenAccount[msg.sender]); if (user_inverst_record[_user].can_draw_capital > 0){ uint interval = now.sub(user_inverst_record[_user].last_investdate); uint rate = quit_config.rate2; if(interval<quit_config.interval){ rate = quit_config.rate1; } uint fee = user_inverst_record[_user].can_draw_capital*rate/100; } _fee = fee; return _fee; } function getother() public view returns( uint _onceWidrawTime, uint newBuyPrice, uint _transper, uint _quit_interval, uint _quit_rate1, uint _quit_rate2 ){ _onceWidrawTime = OnceWidrawTime;//0 newBuyPrice = buyPrice;//1 _transper = transper; _quit_interval = quit_config.interval; _quit_rate1 = quit_config.rate1; _quit_rate2 = quit_config.rate2; } function setNodeProfit(uint _node,uint _members,uint _percert) public onlyOwner returns(bool){ //require(_node<=16&&_node>=1); require(_node>=1); require(_members>0&&_percert>0&&_percert<=100); node_profits[_node] = node_profit(_members,_percert); return true; } function setPlan(uint _plan,uint _account,uint _times) public onlyOwner returns(bool){ require(_plan<=4&&_plan>=1); require(_account>0&&_times>0); plans[_plan] = plan(_account,_times); return true; } function getPlan(uint _plan) public view returns(uint _account,uint _times){ require(_plan>0 && _plan <=4); _account=plans[_plan].account; _times = plans[_plan].times; } function getNodeProfit(uint _node) public view returns(uint _members,uint _percert){ require(_node>0 && _node <=16); _members = node_profits[_node].menber_counts; _percert = node_profits[_node].percent; } function setsysteam( uint _newteamPrice1, uint _newteamPrice2, uint teamper1s, uint teamper2s, uint t1, uint t2, uint t3, uint t4 ) public onlyOwner{ teamPrice1=_newteamPrice1; teamPrice2=_newteamPrice2; teamper1 = teamper1s; teamper2 = teamper2s; permans = [t1,t2,t3,t4]; } function getsysteam() public view returns( uint teamprice1, uint teamprice2, uint teamper1s, uint teamper2s, uint t1, uint t2, uint t3, uint t4 ){ teamprice1 = teamPrice1; teamprice2 = teamPrice2; teamper1s = teamper1;//4 teamper2s = teamper2;//5 t1 = permans[0];//6 t2 = permans[1];//7 t3 = permans[2];//8 t4 = permans[3];//9 } /* * 设置是否开启 * @param {Object} bool */ function setactive(bool tags) public onlyOwner { actived = tags; } function setadmin(address adminaddr) onlyOwner public { require(adminaddr != owner && adminaddr != address(0)); owner = adminaddr; } function setfinancer(address financeraddr) onlyOwner public { financer = financeraddr; } /* * 获取总发行 */ function totalSupply() public view returns(uint) { return _totalSupply; } function addusermoney(address target, uint256 mintedAmount) private{ require(!frozenAccount[target]); require(actived == true); require(balances[this] > mintedAmount); balances[target] = balances[target].add(mintedAmount); balances[this] = balances[this].sub(mintedAmount); emit Transfer(this, target, mintedAmount); } function subusermoney(address target, uint256 mintedAmount) private{ require(!frozenAccount[target]); require(actived == true); require(balances[target] > mintedAmount); balances[target] = balances[target].sub(mintedAmount); balances[this] = balances[this].add(mintedAmount); emit Transfer( target,this, mintedAmount); } /* * 向指定账户拨发资金 * @param {Object} address */ function adduser(address target, uint256 mintedAmount) public onlyFinancer{ addusermoney(target, mintedAmount); } function subuser(address target, uint256 mintedAmount) public onlyFinancer{ subusermoney(target, mintedAmount); } /* function interadduser(address target, uint256 mintedAmount) public onlyInterface{ addusermoney(target, mintedAmount); } function intersubuser(address target, uint256 mintedAmount) public onlyInterface{ subusermoney(target, mintedAmount); } */ function setteam(address user, uint amount) private returns(bool) { require(amount >0); teamget[user] += amount; if(suns[user].n_effective[2] >= permans[2] && suns[user].n_effective[1] >= permans[3]){ //teamget[user] += amount; uint chkmoney = teamPrice1; uint sendmoney = teamget[user]*teamper1/100; if(suns[user].n_effective[2] >= permans[0] && suns[user].n_effective[1] >= permans[1]){ chkmoney = teamPrice2; sendmoney = teamget[user]*teamper2/100; } if(teamget[user] >= chkmoney) { _update_user_inverst(user,sendmoney); teamget[user] = uint(0); } } return(true); } function _reset_user_inverst(address user) private returns(bool){ user_inverst_record[user].can_draw_capital = uint(0); user_inverst_record[user].not_draw_capital = uint(0); user_inverst_record[user].releasd_profit = uint(0); //user_inverst_record[user].last_investdate = uint(0); user_inverst_record[user].total_profit = uint(0); crontime[user]=uint(0); return(true); } function _update_user_inverst(address user,uint rewards) private returns(uint){ require(rewards >0); uint _mint_account; if(user_inverst_record[user].not_draw_capital==uint(0)){ return _mint_account; } /*剩余可释放*/ uint releasable = user_inverst_record[user].total_profit.sub(user_inverst_record[user].releasd_profit); if(releasable<=rewards){ _reset_user_inverst(user); _mint_account = releasable; } else{ /* 修改可提现本金 */ _mint_account = rewards; if(user_inverst_record[user].can_draw_capital>0){ if(user_inverst_record[user].can_draw_capital>rewards){ user_inverst_record[user].can_draw_capital=user_inverst_record[user].can_draw_capital.sub(rewards); } else{ user_inverst_record[user].can_draw_capital = uint(0); } } /* 修改已释放利润 */ user_inverst_record[user].releasd_profit += _mint_account; } require(balances[this]>= _mint_account); user_inverst_record[user].history_releasd_profit += _mint_account; balances[user] += _mint_account; balances[this] -= _mint_account; emit Transfer(this, user, _mint_account); return _mint_account; } function hasReward(address _user)public view returns(bool){ if(crontime[_user] <= now - OnceWidrawTime && crontime[_user]!=0){ return true; } else{ return false; } } function reward() public returns(bool){ require(actived == true&&!frozenAccount[msg.sender]); address user = msg.sender; require(crontime[user] <= now - OnceWidrawTime && crontime[user]!=0); /* 静态 */ uint rewards = user_inverst_record[user].not_draw_capital*per/1000; /*挖矿数量*/ uint _mint_account = _update_user_inverst(user,rewards); /* 动态 */ address top = fromaddr[user]; address _user = user; for(uint i=1;i<=generation;i++){ if(top != address(0) && top != _user){ if(suns[top].n_effective[1]>=node_profits[i].menber_counts){ uint upmoney = _mint_account*node_profits[i].percent/100; //settop(top, upmoney); _update_user_inverst(top,upmoney); //setteam(top,_mint_account); } _user = top; top = fromaddr[top]; continue; } break; } //团队业绩统计 _user = user; top = fromaddr[user]; for(uint n=1;n<=generation_team;n++){ if(top != address(0) && top != _user){ setteam(top,_mint_account); _user = top; top = fromaddr[top]; continue; } break; } /*修改下次提现时间*/ if(crontime[user]>uint(0)){ crontime[user] = now + OnceWidrawTime; } return true; } /* * 用户参与挖矿 */ function mint(uint _tokens) public { require(actived == true&&!frozenAccount[msg.sender]); address user = msg.sender; require(_tokens>=plans[1].account && balances[user]>=_tokens); require(!frozenAccount[user]); /*16代以内有效用户设置,可以改成N代*/ address top = fromaddr[user]; address _user = user; for(uint n=1;n<=16;n++){ if(top != address(0) && top !=_user){ if(!_effective_son[user] && n==1){ ++suns[top].n_effective[n]; _effective_son[user] = true; top = fromaddr[top]; continue; } else if(n >=2){ ++suns[top].n_effective[n]; _user = top; top = fromaddr[top]; continue; }else{ break; } } break; } /* 修改投资信息 */ user_inverst_record[user].can_draw_capital += _tokens; user_inverst_record[user].not_draw_capital += _tokens; user_inverst_record[user].last_investdate = now; /* 增加总投资利润 */ uint _profits; for(uint i=4;i>=1;i--){ if(_tokens >= plans[i].account){ _profits = plans[i].times * _tokens; break; } } user_inverst_record[user].total_profit += _profits; balances[user] -= _tokens; balances[this] += _tokens; crontime[user] = now + OnceWidrawTime; } function quitMint() public returns(bool){ require(actived == true&&!frozenAccount[msg.sender]); require(user_inverst_record[msg.sender].can_draw_capital > 0); uint interval = now.sub(user_inverst_record[msg.sender].last_investdate); uint rate = quit_config.rate2; if(interval<quit_config.interval){ rate = quit_config.rate1; } uint fee = user_inverst_record[msg.sender].can_draw_capital*rate/100; uint refund = user_inverst_record[msg.sender].can_draw_capital.sub(fee); _reset_user_inverst(msg.sender); require(balances[this]>=refund); balances[msg.sender] += refund; balances[this] -= refund; emit Transfer(this, msg.sender,refund); return(true); } function addleadereth(address _user,uint _ethvalue) private returns(bool){ address _ethtop = ethtop[_user]; if(_ethtop!=address(0) ){ leader_eth[_ethtop] += _ethvalue; } /* if(isleader[_user]){ leader_eth[_user] += _ethvalue; } */ /* address user = _user; address top = fromaddr[_user]; for(uint i=1;;i++){ if(top!=address(0)&&top!= user){ if(isleader[top]){ leader_eth[top] += _ethvalue; break; } (user,top)=(top,fromaddr[top]); continue; } break; } */ return(true); } function addLeader(address _leader) public onlyOwner returns(bool){ require(_leader!=address(0) && !isleader[_leader]); isleader[_leader] = true; leaders.push(_leader); return(true); } function subLeader(address _leader)public onlyOwner returns(bool){ require(_leader!=address(0) && isleader[_leader]); isleader[_leader] = false; return(true); } /* * */ function getleaders()public view returns(address [] memory _leaders,uint [] memory _eths){ uint l; for(uint i;i<leaders.length;i++){ if(isleader[leaders[i]]){ l++; } } address [] memory _leaders1 = new address[](l); uint [] memory _eths1 = new uint[](l); for(uint n;n<leaders.length;n++){ if(isleader[leaders[n]]){ l--; _leaders1[l] = leaders[n]; _eths1[l] = leader_eth[leaders[n]]; } } _eths = _eths1; _leaders = _leaders1; } function setEttTokenAddress(address _ett) public onlyOwner returns(bool){ require(_ett!=address(0) && _ett != address(this)); ett = EttToken(_ett); return true; } /* function setEttRate(uint _rate) public onlyOwner returns(bool){ require(_rate>0); ettRate = _rate; return true; } */ /* * sell usdt */ function usdt2ett(uint _tokens) public returns(bool){ require(actived); require(_tokens>0 && balances[msg.sender] >= _tokens); require(ett!=address(0)); uint _ettAmount = _tokens * ettRate / 1 ether; ett.tokenAdd(msg.sender,_ettAmount); balances[msg.sender] -= _tokens; emit Transfer(msg.sender,this,_tokens); return true; } /* * sell ett */ function ett2usdt(uint _tokens) public returns(bool){ require(actived); require(_tokens>0); require(ett!=address(0)); if(getettbalance(msg.sender)>= _tokens){ uint _usdts = _tokens*1 ether/ettRate; ett.tokenSub(msg.sender,_tokens); require(balances[this]> _usdts); balances[msg.sender] += _usdts; balances[this] -= _usdts; emit Transfer(this,msg.sender,_tokens); }else{ return false; } return true; } function getettbalance(address _user) public view returns(uint256 _balance){ require(ett!=address(0)); _balance = ett.balanceOf(_user); } /* * 获取总账目 */ function getall() public view returns(uint256 money) { money = address(this).balance; } /* * 购买 */ function buy() public payable returns(uint) { require(msg.value > 0 && actived); address user = msg.sender; require(!frozenAccount[user]); uint amount = msg.value * buyPrice/1 ether; require(balances[this] >= amount && amount < _totalSupply); balances[user] = balances[user].add(amount); sysinteth += msg.value; userineth[user] += msg.value; balances[this] = balances[this].sub(amount); addleadereth(user,msg.value); owner.transfer(msg.value); emit Transfer(this, user, amount); return(amount); } function() payable public { buy(); } /* * 批量发币 * @param {Object} address */ function addBalances(address[] recipients, uint256[] moenys) public onlyOwner{ uint256 sum = 0; for(uint256 i = 0; i < recipients.length; i++) { balances[recipients[i]] = balances[recipients[i]].add(moenys[i]); sum = sum.add(moenys[i]); emit Transfer(this, recipients[i], moenys[i]); } balances[this] = balances[this].sub(sum); } /* * 批量减币 * @param {Object} address */ function subBalances(address[] recipients, uint256[] moenys) public onlyOwner{ uint256 sum = 0; for(uint256 i = 0; i < recipients.length; i++) { balances[recipients[i]] = balances[recipients[i]].sub(moenys[i]); sum = sum.add(moenys[i]); emit Transfer(recipients[i], this, moenys[i]); } balances[this] = balances[this].add(sum); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[{"name":"_node","type":"uint256"}],"name":"getNodeProfit","outputs":[{"name":"_members","type":"uint256"},{"name":"_percert","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"financeraddr","type":"address"}],"name":"setfinancer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"tokens","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_leader","type":"address"}],"name":"subLeader","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"OnceWidrawTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"reward","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_plan","type":"uint256"}],"name":"getPlan","outputs":[{"name":"_account","type":"uint256"},{"name":"_times","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"node_profits","outputs":[{"name":"menber_counts","type":"uint256"},{"name":"percent","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ettRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"getaddtime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"target","type":"address"},{"name":"mintedAmount","type":"uint256"}],"name":"adduser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getsysteam","outputs":[{"name":"teamprice1","type":"uint256"},{"name":"teamprice2","type":"uint256"},{"name":"teamper1s","type":"uint256"},{"name":"teamper2s","type":"uint256"},{"name":"t1","type":"uint256"},{"name":"t2","type":"uint256"},{"name":"t3","type":"uint256"},{"name":"t4","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getother","outputs":[{"name":"_onceWidrawTime","type":"uint256"},{"name":"newBuyPrice","type":"uint256"},{"name":"_transper","type":"uint256"},{"name":"_quit_interval","type":"uint256"},{"name":"_quit_rate1","type":"uint256"},{"name":"_quit_rate2","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_generation","type":"uint256"},{"name":"_generation_team","type":"uint256"}],"name":"setRwardGeneration","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"admins","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getconf","outputs":[{"name":"_per","type":"uint256"},{"name":"_newOnceWidrawTime","type":"uint256"},{"name":"_newBuyPrice","type":"uint256"},{"name":"_ettRate","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"sysinteth","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"recipients","type":"address[]"},{"name":"moenys","type":"uint256[]"}],"name":"subBalances","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"fromaddr","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_user","type":"address"}],"name":"getquitfee","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"leader_eth","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"ethtop","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"user","type":"address"}],"name":"getmy","outputs":[{"name":"myblance","type":"uint256"},{"name":"meth","type":"uint256"},{"name":"mytime","type":"uint256"},{"name":"bprice","type":"uint256"},{"name":"tmoney","type":"uint256"},{"name":"myineth","type":"uint256"},{"name":"_isleader","type":"bool"},{"name":"_leader_eth","type":"uint256"},{"name":"_inverst","type":"uint256[10]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_plan","type":"uint256"},{"name":"_account","type":"uint256"},{"name":"_times","type":"uint256"}],"name":"setPlan","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"permans","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_per","type":"uint256"},{"name":"_newOnceWidrawTime","type":"uint256"},{"name":"_newBuyPrice","type":"uint256"},{"name":"_ettRate","type":"uint256"}],"name":"setconf","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"teamget","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"user","type":"address"}],"name":"ethbalance","outputs":[{"name":"_balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"teamper2","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"user","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"transper","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"per","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"buyPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"quit_config","outputs":[{"name":"interval","type":"uint256"},{"name":"rate1","type":"uint256"},{"name":"rate2","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"userineth","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getall","outputs":[{"name":"money","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"crontime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_user","type":"address"}],"name":"geteam","outputs":[{"name":"nn1","type":"uint256"},{"name":"nn2","type":"uint256"},{"name":"n_effective1","type":"uint256"},{"name":"n_effective2","type":"uint256"},{"name":"n","type":"uint256[16]"},{"name":"n_effective","type":"uint256[16]"},{"name":"ms","type":"uint256"},{"name":"tm","type":"uint256"},{"name":"lid","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"tokens","type":"uint256"}],"name":"intertransfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getRwardGeneration","outputs":[{"name":"_generation","type":"uint256"},{"name":"_generation_team","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokens","type":"uint256"}],"name":"mint","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_ett","type":"address"}],"name":"setEttTokenAddress","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"leaders","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"buy","outputs":[{"name":"","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"_user","type":"address"}],"name":"getettbalance","outputs":[{"name":"_balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"user_inverst_record","outputs":[{"name":"can_draw_capital","type":"uint256"},{"name":"not_draw_capital","type":"uint256"},{"name":"total_profit","type":"uint256"},{"name":"releasd_profit","type":"uint256"},{"name":"last_investdate","type":"uint256"},{"name":"history_releasd_profit","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"intertoken","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"teamper1","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"plans","outputs":[{"name":"account","type":"uint256"},{"name":"times","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"frozenAccount","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokens","type":"uint256"}],"name":"usdt2ett","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newteamPrice1","type":"uint256"},{"name":"_newteamPrice2","type":"uint256"},{"name":"teamper1s","type":"uint256"},{"name":"teamper2s","type":"uint256"},{"name":"t1","type":"uint256"},{"name":"t2","type":"uint256"},{"name":"t3","type":"uint256"},{"name":"t4","type":"uint256"}],"name":"setsysteam","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"isleader","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"financer","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ett","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_node","type":"uint256"},{"name":"_members","type":"uint256"},{"name":"_percert","type":"uint256"}],"name":"setNodeProfit","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"target","type":"address"},{"name":"mintedAmount","type":"uint256"}],"name":"subuser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"tokenOwner","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"adminaddr","type":"address"}],"name":"setadmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"recipients","type":"address[]"},{"name":"moenys","type":"uint256[]"}],"name":"addBalances","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getleaders","outputs":[{"name":"_leaders","type":"address[]"},{"name":"_eths","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getsys","outputs":[{"name":"tmoney","type":"uint256"},{"name":"_sysinteth","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"target","type":"address"},{"name":"freeze","type":"bool"}],"name":"freezeAccount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"actived","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"getfrom","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"quitMint","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_leader","type":"address"}],"name":"addLeader","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"tags","type":"bool"}],"name":"setactive","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_user","type":"address"}],"name":"hasReward","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokens","type":"uint256"}],"name":"ett2usdt","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_transper","type":"uint256"},{"name":"_quit_interval","type":"uint256"},{"name":"_quit_rate1","type":"uint256"},{"name":"_quit_rate2","type":"uint256"}],"name":"setother","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_ettAddress","type":"address"},{"name":"_supernodes","type":"address[]"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"target","type":"address"},{"indexed":false,"name":"frozen","type":"bool"}],"name":"FrozenFunds","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"tokenOwner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Approval","type":"event"}]
Contract Creation Code
60806040523480156200001157600080fd5b50604051620045a9380380620045a9833981016040818152825160208085015183850190935260048085527f5553445400000000000000000000000000000000000000000000000000000000919094019081529093919091019160009182916200007d9183916200056f565b506040805180820190915260098082527f5553445420436f696e00000000000000000000000000000000000000000000006020909201918252620000c4916001916200056f565b506002805460ff199081166012179091556b033b2e3c9fd0803ce800000060035568077b227cd83be8000060049081556000600555600a6007819055601460085560068054909316600117835560408051608081018252602881526020810192909252600c9082015260608101929092526200014391601091620005f4565b5060038054306000908152600a602090815260408220929092556014805433600160a060020a0319918216811790925560158054909116909117905560016019819055601790925269017b7883c069166000007ff36d6bc9642eb6fb6ee9998b09ce990566df752ab06e11f8de7ab633bbd57b8f5560027ff36d6bc9642eb6fb6ee9998b09ce990566df752ab06e11f8de7ab633bbd57b90556907695a92c20d6fe000007fc52df653038b2ad477d8d97f1ddd63cfd138847b628ad8a7b89c109c3f8782ca557fc52df653038b2ad477d8d97f1ddd63cfd138847b628ad8a7b89c109c3f8782cb92909255690ed2b525841adfc000007fd8b2bced50346359af71f91110b86cdf684b6ab1c6ca64a7583c044d5c24de5c5560047fd8b2bced50346359af71f91110b86cdf684b6ab1c6ca64a7583c044d5c24de5d819055909152692c781f708c509f4000007f68052a315987b3c92fe6f7df77391bc5a825cabe4950d34f36f8f4e8a6abcb4d5560057f68052a315987b3c92fe6f7df77391bc5a825cabe4950d34f36f8f4e8a6abcb4e5591505b60108211620003ad5760008281526018602052604090208290556001821415620003185760008281526018602052604090206064600190910155620003a1565b81600214156200033e5760008281526018602052604090206014600190910155620003a1565b816003141562000364576000828152601860205260409020600f600190910155620003a1565b81600414156200038a576000828152601860205260409020600a600190910155620003a1565b600082815260186020526040902060056001909101555b600190910190620002d8565b62015180601a5562278d00601c556005601d556001601e5569152d02c7e14af6800000601f556969e10de76676d08000006020556803cb71f51fc55800006026556010602755600860285560258054600160a060020a031916600160a060020a0386161790555b82518110156200045a576200045083828151811015156200043157fe5b90602001906020020151620004ac640100000000026401000000009004565b5060010162000414565b6014546003546040805191825251600160a060020a03909216916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050505062000657565b601454600090600160a060020a03163314620004c757600080fd5b600160a060020a03821615801590620004f95750600160a060020a03821660009081526021602052604090205460ff16155b15156200050557600080fd5b50600160a060020a03166000818152602160205260408120805460ff1916600190811790915560248054808301825592527f7cd332d19b93bcabe3cce7ca0c18a052f57e5fd03b4758a09f30f5ddc4b22ec49091018054600160a060020a03191690921790915590565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620005b257805160ff1916838001178555620005e2565b82800160010185558215620005e2579182015b82811115620005e2578251825591602001919060010190620005c5565b50620005f092915062000637565b5090565b828054828255906000526020600020908101928215620005e2579160200282015b82811115620005e2578251829060ff1690559160200191906001019062000615565b6200065491905b80821115620005f057600081556001016200063e565b90565b613f4280620006676000396000f30060806040526004361061038f5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630193712d811461039a57806303b0ec19146103cb57806306fdde03146103ee578063095ea7b31461047857806318160ddd146104b05780632157f9f0146104d757806321ed6243146104f8578063228cb7331461050d57806323b872dd1461052257806326cd52741461054c57806327d01317146105645780632a699f2c1461057c578063313ce5671461059157806332eb5e44146105bc5780633435ea80146105dd57806339b79267146106015780633abd8e4e146106575780633d42c9fc1461069f578063429b62e5146106ba57806343463b98146106db578063443e031b1461071657806346e360601461072b578063478904eb146107b95780634c03f36a146107f65780634e9723bc146108175780635087399b1461083857806353813af8146108595780635ddc8cb5146108f157806360cb613e1461090f578063698705c8146109275780636a3c6067146109485780636eb09ce2146109695780636ee7578a1461098a57806370a082311461099f57806379931772146109c05780637ec9c3b8146109d55780638620410b146109ea578063875ee10a146109ff5780638aa7243314610a325780638da5cb5b14610a535780639097479514610a68578063936f73c614610a7d57806394dafb1614610a9e57806395d89b4114610b57578063966dcd2614610b6c5780639a3b416714610b96578063a0712d6814610bab578063a1ad3b4914610bc3578063a36e657714610be4578063a6f2ae3a14610bfc578063a76369f014610c04578063a8b4515c14610c25578063a9059cbb14610c46578063aec2e82114610c6a578063afcf28cd14610c7f578063b162061614610c94578063b414d4b614610cac578063b5ccf1d914610ccd578063b73480b914610ce5578063c0cd88b814610d12578063cd581cb214610d33578063cede67cb14610d48578063cefea0a314610d5d578063d4e3293814610d7b578063dd62ed3e14610d9f578063dded49cb14610dc6578063ddf0c07014610de7578063e297fd2814610e75578063e4be47e714610f23578063e724529c14610f38578063e736f03c14610f5e578063e987cc4514610f73578063ef0ad84614610f94578063f134038214610fa9578063f43a72b014610fca578063f856f6ce14610fe4578063f906fcce14611005578063fb50f5de1461101d575b61039761103e565b50005b3480156103a657600080fd5b506103b26004356111be565b6040805192835260208301919091528051918290030190f35b3480156103d757600080fd5b506103ec600160a060020a03600435166111f9565b005b3480156103fa57600080fd5b5061040361123f565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561043d578181015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561048457600080fd5b5061049c600160a060020a03600435166024356112cc565b604080519115158252519081900360200190f35b3480156104bc57600080fd5b506104c561136e565b60408051918252519081900360200190f35b3480156104e357600080fd5b5061049c600160a060020a0360043516611375565b34801561050457600080fd5b506104c56113f3565b34801561051957600080fd5b5061049c6113f9565b34801561052e57600080fd5b5061049c600160a060020a0360043581169060243516604435611698565b34801561055857600080fd5b506103b2600435611835565b34801561057057600080fd5b506103b2600435611870565b34801561058857600080fd5b506104c5611889565b34801561059d57600080fd5b506105a661188f565b6040805160ff9092168252519081900360200190f35b3480156105c857600080fd5b506104c5600160a060020a0360043516611898565b3480156105e957600080fd5b506103ec600160a060020a03600435166024356118e0565b34801561060d57600080fd5b50610616611905565b604080519889526020890197909752878701959095526060870193909352608086019190915260a085015260c084015260e083015251908190036101000190f35b34801561066357600080fd5b5061066c611996565b604080519687526020870195909552858501939093526060850191909152608084015260a0830152519081900360c00190f35b3480156106ab57600080fd5b5061049c6004356024356119b4565b3480156106c657600080fd5b5061049c600160a060020a0360043516611a0a565b3480156106e757600080fd5b506106f0611a1f565b604080519485526020850193909352838301919091526060830152519081900360800190f35b34801561072257600080fd5b506104c5611a33565b34801561073757600080fd5b50604080516020600480358082013583810280860185019096528085526103ec95369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750611a399650505050505050565b3480156107c557600080fd5b506107da600160a060020a0360043516611bc6565b60408051600160a060020a039092168252519081900360200190f35b34801561080257600080fd5b506104c5600160a060020a0360043516611be1565b34801561082357600080fd5b506104c5600160a060020a0360043516611c78565b34801561084457600080fd5b506107da600160a060020a0360043516611c8a565b34801561086557600080fd5b5061087a600160a060020a0360043516611ca5565b604051808a81526020018981526020018881526020018781526020018681526020018581526020018415151515815260200183815260200182600a60200280838360005b838110156108d65781810151838201526020016108be565b50505050905001995050505050505050505060405180910390f35b3480156108fd57600080fd5b5061049c600435602435604435611e97565b34801561091b57600080fd5b506104c5600435611f19565b34801561093357600080fd5b506103ec600435602435604435606435611f38565b34801561095457600080fd5b506104c5600160a060020a0360043516611f7f565b34801561097557600080fd5b506104c5600160a060020a0360043516611f91565b34801561099657600080fd5b506104c5611f9e565b3480156109ab57600080fd5b506104c5600160a060020a0360043516611fa4565b3480156109cc57600080fd5b506104c5611fbf565b3480156109e157600080fd5b506104c5611fc5565b3480156109f657600080fd5b506104c5611fcb565b348015610a0b57600080fd5b50610a14611fd1565b60408051938452602084019290925282820152519081900360600190f35b348015610a3e57600080fd5b506104c5600160a060020a0360043516611fdd565b348015610a5f57600080fd5b506107da611fef565b348015610a7457600080fd5b506104c5611ffe565b348015610a8957600080fd5b506104c5600160a060020a0360043516612003565b348015610aaa57600080fd5b50610abf600160a060020a0360043516612015565b604051808a815260200189815260200188815260200187815260200186601060200280838360005b83811015610aff578181015183820152602001610ae7565b5050505090500185601060200280838360005b83811015610b2a578181015183820152602001610b12565b50505050905001848152602001838152602001828152602001995050505050505050505060405180910390f35b348015610b6357600080fd5b50610403612260565b348015610b7857600080fd5b5061049c600160a060020a03600435811690602435166044356122bb565b348015610ba257600080fd5b506103b2612302565b348015610bb757600080fd5b506103ec60043561232a565b348015610bcf57600080fd5b5061049c600160a060020a03600435166125fd565b348015610bf057600080fd5b506107da600435612675565b6104c561103e565b348015610c1057600080fd5b506104c5600160a060020a036004351661269d565b348015610c3157600080fd5b5061066c600160a060020a0360043516612751565b348015610c5257600080fd5b5061049c600160a060020a0360043516602435612786565b348015610c7657600080fd5b506107da61279d565b348015610c8b57600080fd5b506104c56127ac565b348015610ca057600080fd5b506103b26004356127b2565b348015610cb857600080fd5b5061049c600160a060020a03600435166127cb565b348015610cd957600080fd5b5061049c6004356127e0565b348015610cf157600080fd5b506103ec60043560243560443560643560843560a43560c43560e435612929565b348015610d1e57600080fd5b5061049c600160a060020a036004351661298c565b348015610d3f57600080fd5b506107da6129a1565b348015610d5457600080fd5b506107da6129b0565b348015610d6957600080fd5b5061049c6004356024356044356129bf565b348015610d8757600080fd5b506103ec600160a060020a0360043516602435612a3f565b348015610dab57600080fd5b506104c5600160a060020a0360043581169060243516612a60565b348015610dd257600080fd5b506103ec600160a060020a0360043516612a8b565b348015610df357600080fd5b50604080516020600480358082013583810280860185019096528085526103ec95369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750612b029650505050505050565b348015610e8157600080fd5b50610e8a612c62565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015610ece578181015183820152602001610eb6565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015610f0d578181015183820152602001610ef5565b5050505090500194505050505060405180910390f35b348015610f2f57600080fd5b506103b2612e27565b348015610f4457600080fd5b506103ec600160a060020a03600435166024351515612e57565b348015610f6a57600080fd5b5061049c612ed2565b348015610f7f57600080fd5b506107da600160a060020a0360043516612edb565b348015610fa057600080fd5b5061049c612ef9565b348015610fb557600080fd5b5061049c600160a060020a0360043516613028565b348015610fd657600080fd5b506103ec60043515156130f5565b348015610ff057600080fd5b5061049c600160a060020a036004351661311f565b34801561101157600080fd5b5061049c600435613179565b34801561102957600080fd5b506103ec6004356024356044356064356132ef565b60008060008034118015611054575060065460ff165b151561105f57600080fd5b336000818152600c602052604090205490925060ff161561107f57600080fd5b600454670de0b6b3a7640000903402306000908152600a6020526040902054919004915081118015906110b3575060035481105b15156110be57600080fd5b600160a060020a0382166000908152600a60205260409020546110e7908263ffffffff61333216565b600160a060020a0383166000908152600a602081815260408084209490945560098054349081019091556023825284842080549091019055308352522054611135908263ffffffff61334216565b306000908152600a602052604090205561114f8234613357565b50601454604051600160a060020a03909116903480156108fc02916000818181858888f19350505050158015611189573d6000803e3d6000fd5b50604080518281529051600160a060020a038416913091600080516020613ef78339815191529181900360200190a392915050565b6000806000831180156111d2575060108311155b15156111dd57600080fd5b5050600090815260186020526040902080546001909101549091565b601454600160a060020a0316331461121057600080fd5b6015805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156112c45780601f10611299576101008083540402835291602001916112c4565b820191906000526020600020905b8154815290600101906020018083116112a757829003601f168201915b505050505081565b60006001821180156112df575060035482105b15156112ea57600080fd5b336000908152600a602052604090205482111561130657600080fd5b336000818152600b60209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b6003545b90565b601454600090600160a060020a0316331461138f57600080fd5b600160a060020a038216158015906113bf5750600160a060020a03821660009081526021602052604090205460ff165b15156113ca57600080fd5b50600160a060020a0381166000908152602160205260409020805460ff1916905560015b919050565b601a5481565b6000806000806000806000806000600660009054906101000a900460ff1615156001151514801561143a5750336000908152600c602052604090205460ff16155b151561144557600080fd5b601a54336000818152600f60205260409020549099504291909103108015906114855750600160a060020a0388166000908152600f602052604090205415155b151561149057600080fd5b601954600160a060020a0389166000908152601660205260409020600101546103e891020496506114c188886133a2565b600160a060020a03808a166000908152600d6020526040902054919750169450879350600192505b60275483116115b157600160a060020a0385161580159061151c575083600160a060020a031685600160a060020a031614155b156115a157600083815260186020908152604080832054600160a060020a038916845260128352818420600180865201909252909120541061157e57600083815260186020526040902060010154606490870204915061157c85836133a2565b505b600160a060020a038086166000908152600d6020526040902054169493506115a6565b6115b1565b6001909201916114e9565b50600160a060020a038088166000908152600d602052604090205416935086925060015b602854811161164857600160a060020a03851615801590611608575083600160a060020a031685600160a060020a031614155b1561163b576116178587613576565b50600160a060020a038086166000908152600d602052604090205416949350611640565b611648565b6001016115d5565b600160a060020a0388166000908152600f6020526040812054111561168957601a54600160a060020a0389166000908152600f602052604090204290910190555b60019850505050505050505090565b60065460009060ff1615156001146116af57600080fd5b600160a060020a0384166000908152600c602052604090205460ff16156116d557600080fd5b600160a060020a0383166000908152600c602052604090205460ff16156116fb57600080fd5b60018211801561170c575060035482105b151561171757600080fd5b600160a060020a0384166000908152600a602052604090205482111561173c57600080fd5b600160a060020a0384166000908152600a6020526040902054611765908363ffffffff61334216565b600160a060020a0385166000908152600a6020908152604080832093909355600b8152828220338352905220546117a2908363ffffffff61334216565b600160a060020a038086166000908152600b602090815260408083203384528252808320949094559186168152600a90915220546117e6908363ffffffff61333216565b600160a060020a038085166000818152600a60209081526040918290209490945580518681529051919392881692600080516020613ef783398151915292918290030190a35060019392505050565b600080600083118015611849575060048311155b151561185457600080fd5b5050600090815260176020526040902080546001909101549091565b6018602052600090815260409020805460019091015482565b60265481565b60025460ff1681565b600160a060020a0381166000908152600f6020526040812054600211156118c1575060006113ee565b50600160a060020a0381166000908152600f60205260409020546113ee565b601554600160a060020a031633146118f757600080fd5b6119018282613763565b5050565b601f54602054600754600854601080546000918291829182918290811061192857fe5b906000526020600020015493506010600181548110151561194557fe5b906000526020600020015492506010600281548110151561196257fe5b906000526020600020015491506010600381548110151561197f57fe5b906000526020600020015490509091929394959697565b601a54600454600554601c54601d54601e5494959394929391929091565b601454600090600160a060020a031633146119ce57600080fd5b6001821180156119de5750600183115b80156119eb575060108311155b15611a025750602782905560288190556001611368565b506000611368565b600e6020526000908152604090205460ff1681565b601954601a54600454602654929391929091565b60095481565b6014546000908190600160a060020a03163314611a5557600080fd5b5060009050805b8351811015611b9057611ac18382815181101515611a7657fe5b90602001906020020151600a60008785815181101515611a9257fe5b6020908102909101810151600160a060020a03168252810191909152604001600020549063ffffffff61334216565b600a60008684815181101515611ad357fe5b6020908102909101810151600160a060020a03168252810191909152604001600020558251611b1f90849083908110611b0857fe5b60209081029091010151839063ffffffff61333216565b915030600160a060020a03168482815181101515611b3957fe5b90602001906020020151600160a060020a0316600080516020613ef78339815191528584815181101515611b6957fe5b906020019060200201516040518082815260200191505060405180910390a3600101611a5c565b306000908152600a6020526040902054611bb0908363ffffffff61333216565b306000908152600a602052604090205550505050565b600d60205260009081526040902054600160a060020a031681565b600160a060020a0381166000908152601660205260408120548190819081908190811015611c6f57600160a060020a038616600090815260166020526040902060040154611c3690429063ffffffff61334216565b601e54601c549194509250831015611c4e57601d5491505b50600160a060020a0385166000908152601660205260409020546064908202045b95945050505050565b60226020526000908152604090205481565b602960205260009081526040902054600160a060020a031681565b600080600080600080600080611cb9613e51565b600160a060020a038a166000908152600a6020526040902054985089611cde81611f91565b9850600f600082600160a060020a0316600160a060020a031681526020019081526020016000205497506004549650600a600030600160a060020a0316600160a060020a031681526020019081526020016000205495506023600082600160a060020a0316600160a060020a031681526020019081526020016000205494506021600082600160a060020a0316600160a060020a0316815260200190815260200160002060009054906101000a900460ff1693506022600082600160a060020a0316600160a060020a031681526020019081526020016000205492506016600082600160a060020a0316600160a060020a0316815260200190815260200160002060000154826000600a81101515611df257fe5b60209081029190910191909152600160a060020a0382166000818152601680845260408083206004810154888701526001810154918801919091526002810154606088015260038101546080880152929091529091526005015460a0830152611e5a81611f91565b60c0830152611e6881611be1565b60e0830152602654610100830152611e7f8161269d565b61012083015250979996985094969395929491939092565b601454600090600160a060020a03163314611eb157600080fd5b60048411158015611ec3575060018410155b1515611ece57600080fd5b600083118015611ede5750600082115b1515611ee957600080fd5b50604080518082018252928352602080840192835260009485526017905290922090518155905160019182015590565b6010805482908110611f2757fe5b600091825260209091200154905081565b601454600160a060020a03163314611f4f57600080fd5b60008411611f5c57600080fd5b602654600010611f6b57600080fd5b601993909355601a91909155600455602655565b60116020526000908152604090205481565b600160a060020a03163190565b60085481565b600160a060020a03166000908152600a602052604090205490565b60055481565b60195481565b60045481565b601c54601d54601e5483565b60236020526000908152604090205481565b601454600160a060020a031681565b303190565b600f6020526000908152604090205481565b600080600080612023613e71565b61202b613e71565b600160a060020a0387166000908152601260209081526040808320600180855281845282852054600280875284872054838852929093019094528285205491855291842054929950909750955093508080805b601081101561210557600160a060020a038b1660009081526012602090815260408083206001850184529091529020548682601081106120ba57fe5b60209081029190910191909152600160a060020a038c166000908152601282526040808220600185810184520190925220548582601081106120f857fe5b602002015260010161207e565b600160a060020a038b1660009081526011602052604090205493506121298b611898565b92506010600281548110151561213b57fe5b6000918252602080832090910154600160a060020a038e16835260128252604080842060028552600101909252912054108015906121b5575060108054600390811061218357fe5b6000918252602080832090910154600160a060020a038e16835260128252604080842060018086520190925291205410155b156121bf57600191505b6010805460009081106121ce57fe5b6000918252602080832090910154600160a060020a038e1683526012825260408084206002855260010190925291205410801590612248575060108054600190811061221657fe5b6000918252602080832090910154600160a060020a038e16835260128252604080842060018086520190925291205410155b1561225257600291505b509193959799909294969850565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156112c45780601f10611299576101008083540402835291602001916112c4565b601354600090600160a060020a031615156122d557600080fd5b601354600160a060020a031633146122ec57600080fd5b6122f7848484613856565b506001949350505050565b6014546000908190600160a060020a0316331461231e57600080fd5b50506027546028549091565b6006546000908190819081908190819060ff161515600114801561235e5750336000908152600c602052604090205460ff16155b151561236957600080fd5b600160005260176020527ff36d6bc9642eb6fb6ee9998b09ce990566df752ab06e11f8de7ab633bbd57b8f5433965087108015906123bf5750600160a060020a0386166000908152600a60205260409020548711155b15156123ca57600080fd5b600160a060020a0386166000908152600c602052604090205460ff16156123f057600080fd5b600160a060020a038087166000908152600d6020526040902054169450859350600192505b6010831161252c57600160a060020a03851615801590612447575083600160a060020a031685600160a060020a031614155b1561251c57600160a060020a0386166000908152601b602052604090205460ff161580156124755750826001145b156124d257600160a060020a039485166000818152601260209081526040808320878452600190810183528184208054820190558a8a168452601b8352818420805460ff19169091179055928252600d9052205490941693612521565b6002831061251c57600160a060020a0380861660008181526012602090815260408083208884526001908101835281842080549091019055928252600d9052205416949350612521565b61252c565b600190920191612415565b50600160a060020a038516600090815260166020526040902080548701815560018101805488019055426004918201555b6001811061259e576000818152601760205260409020548710612595576000818152601760205260409020600101548702915061259e565b6000190161255d565b50600160a060020a0390941660008181526016602090815260408083206002018054909801909755600a8152868220805489900390553082528682208054909801909755601a54918152600f9096529390942042909301909255505050565b601454600090600160a060020a0316331461261757600080fd5b600160a060020a038216158015906126385750600160a060020a0382163014155b151561264357600080fd5b5060258054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff199091161790556001919050565b602480548290811061268357fe5b600091825260209091200154600160a060020a0316905081565b602554600090600160a060020a031615156126b757600080fd5b602554604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152915191909216916370a082319160248083019260209291908290030181600087803b15801561271f57600080fd5b505af1158015612733573d6000803e3d6000fd5b505050506040513d602081101561274957600080fd5b505192915050565b601660205260009081526040902080546001820154600283015460038401546004850154600590950154939492939192909186565b6000612793338484613856565b5060019392505050565b601354600160a060020a031681565b60075481565b6017602052600090815260409020805460019091015482565b600c6020526000908152604090205460ff1681565b600654600090819060ff1615156127f657600080fd5b6000831180156128155750336000908152600a60205260409020548311155b151561282057600080fd5b602554600160a060020a0316151561283757600080fd5b602654670de0b6b3a7640000908402602554604080517fcfa860c300000000000000000000000000000000000000000000000000000000815233600482015293909204602484018190529151919350600160a060020a03169163cfa860c39160448083019260209291908290030181600087803b1580156128b757600080fd5b505af11580156128cb573d6000803e3d6000fd5b505050506040513d60208110156128e157600080fd5b5050336000818152600a60209081526040918290208054879003905581518681529151309392600080516020613ef783398151915292908290030190a3600191505b50919050565b601454600160a060020a0316331461294057600080fd5b601f88905560208781556007879055600886905560408051608081018252868152918201859052810183905260608101829052612981906010906004613e91565b505050505050505050565b60216020526000908152604090205460ff1681565b601554600160a060020a031681565b602554600160a060020a031681565b601454600090600160a060020a031633146129d957600080fd5b60018410156129e757600080fd5b6000831180156129f75750600082115b8015612a04575060648211155b1515612a0f57600080fd5b50604080518082018252928352602080840192835260009485526018905290922090518155905160019182015590565b601554600160a060020a03163314612a5657600080fd5b6119018282613d0f565b600160a060020a039182166000908152600b6020908152604080832093909416825291909152205490565b601454600160a060020a03163314612aa257600080fd5b601454600160a060020a03828116911614801590612ac85750600160a060020a03811615155b1515612ad357600080fd5b6014805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6014546000908190600160a060020a03163314612b1e57600080fd5b5060009050805b8351811015612c4257612b8a8382815181101515612b3f57fe5b90602001906020020151600a60008785815181101515612b5b57fe5b6020908102909101810151600160a060020a03168252810191909152604001600020549063ffffffff61333216565b600a60008684815181101515612b9c57fe5b6020908102909101810151600160a060020a03168252810191909152604001600020558251612bd190849083908110611b0857fe5b91508381815181101515612be157fe5b90602001906020020151600160a060020a031630600160a060020a0316600080516020613ef78339815191528584815181101515612c1b57fe5b906020019060200201516040518082815260200191505060405180910390a3600101612b25565b306000908152600a6020526040902054611bb0908363ffffffff61334216565b60608060008060608060005b602454841015612cca5760216000602486815481101515612c8b57fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff1615612cbf576001909401935b600190930192612c6e565b84604051908082528060200260200182016040528015612cf4578160200160208202803883390190505b50925084604051908082528060200260200182016040528015612d21578160200160208202803883390190505b5091505b602454811015612e1b5760216000602483815481101515612d4257fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff1615612e1357602480546000199096019582908110612d8457fe5b6000918252602090912001548351600160a060020a0390911690849087908110612daa57fe5b600160a060020a039092166020928302909101909101526024805460229160009184908110612dd557fe5b6000918252602080832090910154600160a060020a031683528201929092526040019020548251839087908110612e0857fe5b602090810290910101525b600101612d25565b50909590945092505050565b306000908152600a60205260408120546003548291612e4c919063ffffffff61334216565b915060095490509091565b601454600160a060020a03163314612e6e57600080fd5b600160a060020a0382166000818152600c6020908152604091829020805460ff191685151590811790915582519384529083015280517f48335238b4855f35377ed80f164e8c6f3c366e54ac00b96a6402d4a9814a03a59281900390910190a15050565b60065460ff1681565b600160a060020a039081166000908152600d60205260409020541690565b600654600090819081908190819060ff1615156001148015612f2b5750336000908152600c602052604090205460ff16155b1515612f3657600080fd5b3360009081526016602052604081205411612f5057600080fd5b33600090815260166020526040902060040154612f7490429063ffffffff61334216565b601e54601c549195509350841015612f8c57601d5492505b336000908152601660205260409020546064848202049250612fae9083613342565b9050612fb933613e0f565b50306000908152600a6020526040902054811115612fd657600080fd5b336000818152600a6020908152604080832080548601905530808452928190208054869003905580518581529051600080516020613ef7833981519152929181900390910190a3600194505050505090565b601454600090600160a060020a0316331461304257600080fd5b600160a060020a038216158015906130735750600160a060020a03821660009081526021602052604090205460ff16155b151561307e57600080fd5b50600160a060020a03166000818152602160205260408120805460ff1916600190811790915560248054808301825592527f7cd332d19b93bcabe3cce7ca0c18a052f57e5fd03b4758a09f30f5ddc4b22ec4909101805473ffffffffffffffffffffffffffffffffffffffff191690921790915590565b601454600160a060020a0316331461310c57600080fd5b6006805460ff1916911515919091179055565b601a54600160a060020a0382166000908152600f602052604081205490914203108015906131645750600160a060020a0382166000908152600f602052604090205415155b15613171575060016113ee565b5060006113ee565b600654600090819060ff16151561318f57600080fd5b6000831161319c57600080fd5b602554600160a060020a031615156131b357600080fd5b826131bd3361269d565b106132dd5760265483670de0b6b3a7640000028115156131d957fe5b602554604080517fed619eb8000000000000000000000000000000000000000000000000000000008152336004820152602481018890529051939092049350600160a060020a03169163ed619eb8916044808201926020929091908290030181600087803b15801561324a57600080fd5b505af115801561325e573d6000803e3d6000fd5b505050506040513d602081101561327457600080fd5b5050306000908152600a6020526040902054811061329157600080fd5b336000818152600a6020908152604080832080548601905530808452928190208054869003905580518781529051600080516020613ef7833981519152929181900390910190a36132e6565b60009150612923565b50600192915050565b601454600160a060020a0316331461330657600080fd5b600593909355604080516060810182528381526020810183905201839052601c91909155601d55601e55565b8181018281101561136857600080fd5b60008282111561335157600080fd5b50900390565b600160a060020a03808316600090815260296020526040812054909116801561279357600160a060020a03811660009081526022602052604090208054840190555060019392505050565b600080808084116133b257600080fd5b600160a060020a03851660009081526016602052604090206001015415156133dc5781925061356e565b600160a060020a0385166000908152601660205260409020600381015460029091015461340e9163ffffffff61334216565b90508381116134295761342085613e0f565b508091506134ee565b600160a060020a03851660009081526016602052604081205485935011156134cc57600160a060020a0385166000908152601660205260409020548410156134b257600160a060020a038516600090815260166020526040902054613494908563ffffffff61334216565b600160a060020a0386166000908152601660205260409020556134cc565b600160a060020a0385166000908152601660205260408120555b600160a060020a03851660009081526016602052604090206003018054830190555b306000908152600a602052604090205482111561350a57600080fd5b600160a060020a0385166000818152601660209081526040808320600501805487019055600a825280832080548701905530808452928190208054879003905580518681529051600080516020613ef7833981519152929181900390910190a38192505b505092915050565b6000808080841161358657600080fd5b600160a060020a03851660009081526011602052604090208054850190556010805460029081106135b357fe5b6000918252602080832090910154600160a060020a0388168352601282526040808420600285526001019092529120541080159061362d57506010805460039081106135fb57fe5b6000918252602080832090910154600160a060020a038816835260128252604080842060018086520190925291205410155b156122f757601f54600754600160a060020a038716600090815260116020526040902054919350606491020490506010600081548110151561366b57fe5b6000918252602080832090910154600160a060020a038816835260128252604080842060028552600101909252912054108015906136e557506010805460019081106136b357fe5b6000918252602080832090910154600160a060020a038816835260128252604080842060018086520190925291205410155b1561371557505060208054600854600160a060020a03861660009081526011909352604090922054909160649102045b600160a060020a03851660009081526011602052604090205482116122f75761373e85826133a2565b50600160a060020a038516600090815260116020526040812055506001949350505050565b600160a060020a0382166000908152600c602052604090205460ff161561378957600080fd5b60065460ff16151560011461379d57600080fd5b306000908152600a602052604090205481106137b857600080fd5b600160a060020a0382166000908152600a60205260409020546137e1908263ffffffff61333216565b600160a060020a0383166000908152600a6020526040808220929092553081522054613813908263ffffffff61334216565b306000818152600a60209081526040918290209390935580518481529051600160a060020a03861693600080516020613ef7833981519152928290030190a35050565b600160a060020a0383166000908152600c602052604081205481908190819081908190819060ff161561388857600080fd5b600160a060020a0389166000908152600c602052604090205460ff16156138ae57600080fd5b60065460ff1615156001146138c257600080fd5b6005546064908902600160a060020a038c166000908152600a6020526040902054919004965088870195508511156138f957600080fd5b60008811801561390a575060035488105b151561391557600080fd5b600160a060020a038916151561392a57600080fd5b600160a060020a038a8116908a16141561394357600080fd5b600160a060020a03808a166000818152600a60209081526040808320548f8616845281842054948452600d9092529091205491899003019550161580156139a75750600160a060020a038a81166000908152600d60205260409020548116908a1614155b15613bc95789600d60008b600160a060020a0316600160a060020a0316815260200190815260200160002060006101000a815481600160a060020a030219169083600160a060020a03160217905550600d60008a600160a060020a0316600160a060020a0316815260200190815260200160002060009054906101000a9004600160a060020a03169250602160006029600086600160a060020a0316600160a060020a0316815260200190815260200160002060009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a0316815260200190815260200160002060009054906101000a900460ff1615613ae457600160a060020a03808416600090815260296020526040808220548c841683529120805473ffffffffffffffffffffffffffffffffffffffff1916919092161790555b600160a060020a03831660009081526021602052604090205460ff1615613b4157600160a060020a038981166000908152602960205260409020805473ffffffffffffffffffffffffffffffffffffffff19169185169190911790555b5087905060015b60108111613bc957600160a060020a03831615801590613b7a575081600160a060020a031683600160a060020a031614155b15613bbc57600160a060020a038084166000818152601260209081526040808320868452825280832080546001019055928252600d9052205416929150613bc1565b613bc9565b600101613b48565b600160a060020a038a166000908152600a6020526040902054613bf2908663ffffffff61334216565b600160a060020a038b166000908152600a6020526040808220929092553081522054613c24908763ffffffff61333216565b306000908152600a602052604080822092909255600160a060020a038b1681522054613c56908963ffffffff61333216565b600160a060020a03808b166000908152600a602090815260409182902093909355805189815290513093928e1692600080516020613ef7833981519152928290030190a388600160a060020a03168a600160a060020a0316600080516020613ef78339815191528a6040518082815260200191505060405180910390a3600160a060020a03808a166000908152600a602052604080822054928d168252902054018414613cff57fe5b5060019998505050505050505050565b600160a060020a0382166000908152600c602052604090205460ff1615613d3557600080fd5b60065460ff161515600114613d4957600080fd5b600160a060020a0382166000908152600a60205260409020548110613d6d57600080fd5b600160a060020a0382166000908152600a6020526040902054613d96908263ffffffff61334216565b600160a060020a0383166000908152600a6020526040808220929092553081522054613dc8908263ffffffff61333216565b306000818152600a602090815260409182902093909355805184815290519192600160a060020a03861692600080516020613ef78339815191529281900390910190a35050565b600160a060020a031660009081526016602090815260408083208381556001808201859055600382018590556002909101849055600f90925282209190915590565b61014060405190810160405280600a906020820280388339509192915050565b610200604051908101604052806010906020820280388339509192915050565b828054828255906000526020600020908101928215613ecc579160200282015b82811115613ecc578251825591602001919060010190613eb1565b50613ed8929150613edc565b5090565b61137291905b80821115613ed85760008155600101613ee25600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a723058201c431d65e5b5850ec15a14cc596d361c9e647c78341d8f16e47645ea7c83457400290000000000000000000000003152089a1700abdf66dfe45159069e814be6c2940000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000d0000000000000000000000004aeb3d07101bc6b5b85723143aeb8f230961b5ed000000000000000000000000e7526fa8ea297ff0c49bd1d708abd104c2355b6a00000000000000000000000000ad0c1ea42c832303d249a006a4a5b8cd5f738100000000000000000000000066ba4d733c60116a5c217f51f8dc414230334d230000000000000000000000009b7aba0ca90e318ebd414023fd53e22bdde74a7f000000000000000000000000e27d6ce787f1c704ae89a0f1a8fcd7d5aca183da000000000000000000000000cd3c7c5b41e8ff4471ab2ce1d8b117be48e813b5000000000000000000000000ad2da2a5259dbde4ab1487880fb8a871c6e04e06000000000000000000000000ff1b6f20291f6889663692c9b7281e0e7b2f8250000000000000000000000000aae907903dc65fd07b8b3ce20d2085aedd9d91880000000000000000000000008264ab8d3423574e64c27b15bec9ae79000bcbb3000000000000000000000000cfa67f8c5aa513457738188e9f7e3e6d4682f0d8000000000000000000000000b361addedc0cbb5d8d93808564049b6cfebddd38
Deployed Bytecode
0x60806040526004361061038f5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630193712d811461039a57806303b0ec19146103cb57806306fdde03146103ee578063095ea7b31461047857806318160ddd146104b05780632157f9f0146104d757806321ed6243146104f8578063228cb7331461050d57806323b872dd1461052257806326cd52741461054c57806327d01317146105645780632a699f2c1461057c578063313ce5671461059157806332eb5e44146105bc5780633435ea80146105dd57806339b79267146106015780633abd8e4e146106575780633d42c9fc1461069f578063429b62e5146106ba57806343463b98146106db578063443e031b1461071657806346e360601461072b578063478904eb146107b95780634c03f36a146107f65780634e9723bc146108175780635087399b1461083857806353813af8146108595780635ddc8cb5146108f157806360cb613e1461090f578063698705c8146109275780636a3c6067146109485780636eb09ce2146109695780636ee7578a1461098a57806370a082311461099f57806379931772146109c05780637ec9c3b8146109d55780638620410b146109ea578063875ee10a146109ff5780638aa7243314610a325780638da5cb5b14610a535780639097479514610a68578063936f73c614610a7d57806394dafb1614610a9e57806395d89b4114610b57578063966dcd2614610b6c5780639a3b416714610b96578063a0712d6814610bab578063a1ad3b4914610bc3578063a36e657714610be4578063a6f2ae3a14610bfc578063a76369f014610c04578063a8b4515c14610c25578063a9059cbb14610c46578063aec2e82114610c6a578063afcf28cd14610c7f578063b162061614610c94578063b414d4b614610cac578063b5ccf1d914610ccd578063b73480b914610ce5578063c0cd88b814610d12578063cd581cb214610d33578063cede67cb14610d48578063cefea0a314610d5d578063d4e3293814610d7b578063dd62ed3e14610d9f578063dded49cb14610dc6578063ddf0c07014610de7578063e297fd2814610e75578063e4be47e714610f23578063e724529c14610f38578063e736f03c14610f5e578063e987cc4514610f73578063ef0ad84614610f94578063f134038214610fa9578063f43a72b014610fca578063f856f6ce14610fe4578063f906fcce14611005578063fb50f5de1461101d575b61039761103e565b50005b3480156103a657600080fd5b506103b26004356111be565b6040805192835260208301919091528051918290030190f35b3480156103d757600080fd5b506103ec600160a060020a03600435166111f9565b005b3480156103fa57600080fd5b5061040361123f565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561043d578181015183820152602001610425565b50505050905090810190601f16801561046a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561048457600080fd5b5061049c600160a060020a03600435166024356112cc565b604080519115158252519081900360200190f35b3480156104bc57600080fd5b506104c561136e565b60408051918252519081900360200190f35b3480156104e357600080fd5b5061049c600160a060020a0360043516611375565b34801561050457600080fd5b506104c56113f3565b34801561051957600080fd5b5061049c6113f9565b34801561052e57600080fd5b5061049c600160a060020a0360043581169060243516604435611698565b34801561055857600080fd5b506103b2600435611835565b34801561057057600080fd5b506103b2600435611870565b34801561058857600080fd5b506104c5611889565b34801561059d57600080fd5b506105a661188f565b6040805160ff9092168252519081900360200190f35b3480156105c857600080fd5b506104c5600160a060020a0360043516611898565b3480156105e957600080fd5b506103ec600160a060020a03600435166024356118e0565b34801561060d57600080fd5b50610616611905565b604080519889526020890197909752878701959095526060870193909352608086019190915260a085015260c084015260e083015251908190036101000190f35b34801561066357600080fd5b5061066c611996565b604080519687526020870195909552858501939093526060850191909152608084015260a0830152519081900360c00190f35b3480156106ab57600080fd5b5061049c6004356024356119b4565b3480156106c657600080fd5b5061049c600160a060020a0360043516611a0a565b3480156106e757600080fd5b506106f0611a1f565b604080519485526020850193909352838301919091526060830152519081900360800190f35b34801561072257600080fd5b506104c5611a33565b34801561073757600080fd5b50604080516020600480358082013583810280860185019096528085526103ec95369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750611a399650505050505050565b3480156107c557600080fd5b506107da600160a060020a0360043516611bc6565b60408051600160a060020a039092168252519081900360200190f35b34801561080257600080fd5b506104c5600160a060020a0360043516611be1565b34801561082357600080fd5b506104c5600160a060020a0360043516611c78565b34801561084457600080fd5b506107da600160a060020a0360043516611c8a565b34801561086557600080fd5b5061087a600160a060020a0360043516611ca5565b604051808a81526020018981526020018881526020018781526020018681526020018581526020018415151515815260200183815260200182600a60200280838360005b838110156108d65781810151838201526020016108be565b50505050905001995050505050505050505060405180910390f35b3480156108fd57600080fd5b5061049c600435602435604435611e97565b34801561091b57600080fd5b506104c5600435611f19565b34801561093357600080fd5b506103ec600435602435604435606435611f38565b34801561095457600080fd5b506104c5600160a060020a0360043516611f7f565b34801561097557600080fd5b506104c5600160a060020a0360043516611f91565b34801561099657600080fd5b506104c5611f9e565b3480156109ab57600080fd5b506104c5600160a060020a0360043516611fa4565b3480156109cc57600080fd5b506104c5611fbf565b3480156109e157600080fd5b506104c5611fc5565b3480156109f657600080fd5b506104c5611fcb565b348015610a0b57600080fd5b50610a14611fd1565b60408051938452602084019290925282820152519081900360600190f35b348015610a3e57600080fd5b506104c5600160a060020a0360043516611fdd565b348015610a5f57600080fd5b506107da611fef565b348015610a7457600080fd5b506104c5611ffe565b348015610a8957600080fd5b506104c5600160a060020a0360043516612003565b348015610aaa57600080fd5b50610abf600160a060020a0360043516612015565b604051808a815260200189815260200188815260200187815260200186601060200280838360005b83811015610aff578181015183820152602001610ae7565b5050505090500185601060200280838360005b83811015610b2a578181015183820152602001610b12565b50505050905001848152602001838152602001828152602001995050505050505050505060405180910390f35b348015610b6357600080fd5b50610403612260565b348015610b7857600080fd5b5061049c600160a060020a03600435811690602435166044356122bb565b348015610ba257600080fd5b506103b2612302565b348015610bb757600080fd5b506103ec60043561232a565b348015610bcf57600080fd5b5061049c600160a060020a03600435166125fd565b348015610bf057600080fd5b506107da600435612675565b6104c561103e565b348015610c1057600080fd5b506104c5600160a060020a036004351661269d565b348015610c3157600080fd5b5061066c600160a060020a0360043516612751565b348015610c5257600080fd5b5061049c600160a060020a0360043516602435612786565b348015610c7657600080fd5b506107da61279d565b348015610c8b57600080fd5b506104c56127ac565b348015610ca057600080fd5b506103b26004356127b2565b348015610cb857600080fd5b5061049c600160a060020a03600435166127cb565b348015610cd957600080fd5b5061049c6004356127e0565b348015610cf157600080fd5b506103ec60043560243560443560643560843560a43560c43560e435612929565b348015610d1e57600080fd5b5061049c600160a060020a036004351661298c565b348015610d3f57600080fd5b506107da6129a1565b348015610d5457600080fd5b506107da6129b0565b348015610d6957600080fd5b5061049c6004356024356044356129bf565b348015610d8757600080fd5b506103ec600160a060020a0360043516602435612a3f565b348015610dab57600080fd5b506104c5600160a060020a0360043581169060243516612a60565b348015610dd257600080fd5b506103ec600160a060020a0360043516612a8b565b348015610df357600080fd5b50604080516020600480358082013583810280860185019096528085526103ec95369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750949750612b029650505050505050565b348015610e8157600080fd5b50610e8a612c62565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015610ece578181015183820152602001610eb6565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015610f0d578181015183820152602001610ef5565b5050505090500194505050505060405180910390f35b348015610f2f57600080fd5b506103b2612e27565b348015610f4457600080fd5b506103ec600160a060020a03600435166024351515612e57565b348015610f6a57600080fd5b5061049c612ed2565b348015610f7f57600080fd5b506107da600160a060020a0360043516612edb565b348015610fa057600080fd5b5061049c612ef9565b348015610fb557600080fd5b5061049c600160a060020a0360043516613028565b348015610fd657600080fd5b506103ec60043515156130f5565b348015610ff057600080fd5b5061049c600160a060020a036004351661311f565b34801561101157600080fd5b5061049c600435613179565b34801561102957600080fd5b506103ec6004356024356044356064356132ef565b60008060008034118015611054575060065460ff165b151561105f57600080fd5b336000818152600c602052604090205490925060ff161561107f57600080fd5b600454670de0b6b3a7640000903402306000908152600a6020526040902054919004915081118015906110b3575060035481105b15156110be57600080fd5b600160a060020a0382166000908152600a60205260409020546110e7908263ffffffff61333216565b600160a060020a0383166000908152600a602081815260408084209490945560098054349081019091556023825284842080549091019055308352522054611135908263ffffffff61334216565b306000908152600a602052604090205561114f8234613357565b50601454604051600160a060020a03909116903480156108fc02916000818181858888f19350505050158015611189573d6000803e3d6000fd5b50604080518281529051600160a060020a038416913091600080516020613ef78339815191529181900360200190a392915050565b6000806000831180156111d2575060108311155b15156111dd57600080fd5b5050600090815260186020526040902080546001909101549091565b601454600160a060020a0316331461121057600080fd5b6015805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156112c45780601f10611299576101008083540402835291602001916112c4565b820191906000526020600020905b8154815290600101906020018083116112a757829003601f168201915b505050505081565b60006001821180156112df575060035482105b15156112ea57600080fd5b336000908152600a602052604090205482111561130657600080fd5b336000818152600b60209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b6003545b90565b601454600090600160a060020a0316331461138f57600080fd5b600160a060020a038216158015906113bf5750600160a060020a03821660009081526021602052604090205460ff165b15156113ca57600080fd5b50600160a060020a0381166000908152602160205260409020805460ff1916905560015b919050565b601a5481565b6000806000806000806000806000600660009054906101000a900460ff1615156001151514801561143a5750336000908152600c602052604090205460ff16155b151561144557600080fd5b601a54336000818152600f60205260409020549099504291909103108015906114855750600160a060020a0388166000908152600f602052604090205415155b151561149057600080fd5b601954600160a060020a0389166000908152601660205260409020600101546103e891020496506114c188886133a2565b600160a060020a03808a166000908152600d6020526040902054919750169450879350600192505b60275483116115b157600160a060020a0385161580159061151c575083600160a060020a031685600160a060020a031614155b156115a157600083815260186020908152604080832054600160a060020a038916845260128352818420600180865201909252909120541061157e57600083815260186020526040902060010154606490870204915061157c85836133a2565b505b600160a060020a038086166000908152600d6020526040902054169493506115a6565b6115b1565b6001909201916114e9565b50600160a060020a038088166000908152600d602052604090205416935086925060015b602854811161164857600160a060020a03851615801590611608575083600160a060020a031685600160a060020a031614155b1561163b576116178587613576565b50600160a060020a038086166000908152600d602052604090205416949350611640565b611648565b6001016115d5565b600160a060020a0388166000908152600f6020526040812054111561168957601a54600160a060020a0389166000908152600f602052604090204290910190555b60019850505050505050505090565b60065460009060ff1615156001146116af57600080fd5b600160a060020a0384166000908152600c602052604090205460ff16156116d557600080fd5b600160a060020a0383166000908152600c602052604090205460ff16156116fb57600080fd5b60018211801561170c575060035482105b151561171757600080fd5b600160a060020a0384166000908152600a602052604090205482111561173c57600080fd5b600160a060020a0384166000908152600a6020526040902054611765908363ffffffff61334216565b600160a060020a0385166000908152600a6020908152604080832093909355600b8152828220338352905220546117a2908363ffffffff61334216565b600160a060020a038086166000908152600b602090815260408083203384528252808320949094559186168152600a90915220546117e6908363ffffffff61333216565b600160a060020a038085166000818152600a60209081526040918290209490945580518681529051919392881692600080516020613ef783398151915292918290030190a35060019392505050565b600080600083118015611849575060048311155b151561185457600080fd5b5050600090815260176020526040902080546001909101549091565b6018602052600090815260409020805460019091015482565b60265481565b60025460ff1681565b600160a060020a0381166000908152600f6020526040812054600211156118c1575060006113ee565b50600160a060020a0381166000908152600f60205260409020546113ee565b601554600160a060020a031633146118f757600080fd5b6119018282613763565b5050565b601f54602054600754600854601080546000918291829182918290811061192857fe5b906000526020600020015493506010600181548110151561194557fe5b906000526020600020015492506010600281548110151561196257fe5b906000526020600020015491506010600381548110151561197f57fe5b906000526020600020015490509091929394959697565b601a54600454600554601c54601d54601e5494959394929391929091565b601454600090600160a060020a031633146119ce57600080fd5b6001821180156119de5750600183115b80156119eb575060108311155b15611a025750602782905560288190556001611368565b506000611368565b600e6020526000908152604090205460ff1681565b601954601a54600454602654929391929091565b60095481565b6014546000908190600160a060020a03163314611a5557600080fd5b5060009050805b8351811015611b9057611ac18382815181101515611a7657fe5b90602001906020020151600a60008785815181101515611a9257fe5b6020908102909101810151600160a060020a03168252810191909152604001600020549063ffffffff61334216565b600a60008684815181101515611ad357fe5b6020908102909101810151600160a060020a03168252810191909152604001600020558251611b1f90849083908110611b0857fe5b60209081029091010151839063ffffffff61333216565b915030600160a060020a03168482815181101515611b3957fe5b90602001906020020151600160a060020a0316600080516020613ef78339815191528584815181101515611b6957fe5b906020019060200201516040518082815260200191505060405180910390a3600101611a5c565b306000908152600a6020526040902054611bb0908363ffffffff61333216565b306000908152600a602052604090205550505050565b600d60205260009081526040902054600160a060020a031681565b600160a060020a0381166000908152601660205260408120548190819081908190811015611c6f57600160a060020a038616600090815260166020526040902060040154611c3690429063ffffffff61334216565b601e54601c549194509250831015611c4e57601d5491505b50600160a060020a0385166000908152601660205260409020546064908202045b95945050505050565b60226020526000908152604090205481565b602960205260009081526040902054600160a060020a031681565b600080600080600080600080611cb9613e51565b600160a060020a038a166000908152600a6020526040902054985089611cde81611f91565b9850600f600082600160a060020a0316600160a060020a031681526020019081526020016000205497506004549650600a600030600160a060020a0316600160a060020a031681526020019081526020016000205495506023600082600160a060020a0316600160a060020a031681526020019081526020016000205494506021600082600160a060020a0316600160a060020a0316815260200190815260200160002060009054906101000a900460ff1693506022600082600160a060020a0316600160a060020a031681526020019081526020016000205492506016600082600160a060020a0316600160a060020a0316815260200190815260200160002060000154826000600a81101515611df257fe5b60209081029190910191909152600160a060020a0382166000818152601680845260408083206004810154888701526001810154918801919091526002810154606088015260038101546080880152929091529091526005015460a0830152611e5a81611f91565b60c0830152611e6881611be1565b60e0830152602654610100830152611e7f8161269d565b61012083015250979996985094969395929491939092565b601454600090600160a060020a03163314611eb157600080fd5b60048411158015611ec3575060018410155b1515611ece57600080fd5b600083118015611ede5750600082115b1515611ee957600080fd5b50604080518082018252928352602080840192835260009485526017905290922090518155905160019182015590565b6010805482908110611f2757fe5b600091825260209091200154905081565b601454600160a060020a03163314611f4f57600080fd5b60008411611f5c57600080fd5b602654600010611f6b57600080fd5b601993909355601a91909155600455602655565b60116020526000908152604090205481565b600160a060020a03163190565b60085481565b600160a060020a03166000908152600a602052604090205490565b60055481565b60195481565b60045481565b601c54601d54601e5483565b60236020526000908152604090205481565b601454600160a060020a031681565b303190565b600f6020526000908152604090205481565b600080600080612023613e71565b61202b613e71565b600160a060020a0387166000908152601260209081526040808320600180855281845282852054600280875284872054838852929093019094528285205491855291842054929950909750955093508080805b601081101561210557600160a060020a038b1660009081526012602090815260408083206001850184529091529020548682601081106120ba57fe5b60209081029190910191909152600160a060020a038c166000908152601282526040808220600185810184520190925220548582601081106120f857fe5b602002015260010161207e565b600160a060020a038b1660009081526011602052604090205493506121298b611898565b92506010600281548110151561213b57fe5b6000918252602080832090910154600160a060020a038e16835260128252604080842060028552600101909252912054108015906121b5575060108054600390811061218357fe5b6000918252602080832090910154600160a060020a038e16835260128252604080842060018086520190925291205410155b156121bf57600191505b6010805460009081106121ce57fe5b6000918252602080832090910154600160a060020a038e1683526012825260408084206002855260010190925291205410801590612248575060108054600190811061221657fe5b6000918252602080832090910154600160a060020a038e16835260128252604080842060018086520190925291205410155b1561225257600291505b509193959799909294969850565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156112c45780601f10611299576101008083540402835291602001916112c4565b601354600090600160a060020a031615156122d557600080fd5b601354600160a060020a031633146122ec57600080fd5b6122f7848484613856565b506001949350505050565b6014546000908190600160a060020a0316331461231e57600080fd5b50506027546028549091565b6006546000908190819081908190819060ff161515600114801561235e5750336000908152600c602052604090205460ff16155b151561236957600080fd5b600160005260176020527ff36d6bc9642eb6fb6ee9998b09ce990566df752ab06e11f8de7ab633bbd57b8f5433965087108015906123bf5750600160a060020a0386166000908152600a60205260409020548711155b15156123ca57600080fd5b600160a060020a0386166000908152600c602052604090205460ff16156123f057600080fd5b600160a060020a038087166000908152600d6020526040902054169450859350600192505b6010831161252c57600160a060020a03851615801590612447575083600160a060020a031685600160a060020a031614155b1561251c57600160a060020a0386166000908152601b602052604090205460ff161580156124755750826001145b156124d257600160a060020a039485166000818152601260209081526040808320878452600190810183528184208054820190558a8a168452601b8352818420805460ff19169091179055928252600d9052205490941693612521565b6002831061251c57600160a060020a0380861660008181526012602090815260408083208884526001908101835281842080549091019055928252600d9052205416949350612521565b61252c565b600190920191612415565b50600160a060020a038516600090815260166020526040902080548701815560018101805488019055426004918201555b6001811061259e576000818152601760205260409020548710612595576000818152601760205260409020600101548702915061259e565b6000190161255d565b50600160a060020a0390941660008181526016602090815260408083206002018054909801909755600a8152868220805489900390553082528682208054909801909755601a54918152600f9096529390942042909301909255505050565b601454600090600160a060020a0316331461261757600080fd5b600160a060020a038216158015906126385750600160a060020a0382163014155b151561264357600080fd5b5060258054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff199091161790556001919050565b602480548290811061268357fe5b600091825260209091200154600160a060020a0316905081565b602554600090600160a060020a031615156126b757600080fd5b602554604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152915191909216916370a082319160248083019260209291908290030181600087803b15801561271f57600080fd5b505af1158015612733573d6000803e3d6000fd5b505050506040513d602081101561274957600080fd5b505192915050565b601660205260009081526040902080546001820154600283015460038401546004850154600590950154939492939192909186565b6000612793338484613856565b5060019392505050565b601354600160a060020a031681565b60075481565b6017602052600090815260409020805460019091015482565b600c6020526000908152604090205460ff1681565b600654600090819060ff1615156127f657600080fd5b6000831180156128155750336000908152600a60205260409020548311155b151561282057600080fd5b602554600160a060020a0316151561283757600080fd5b602654670de0b6b3a7640000908402602554604080517fcfa860c300000000000000000000000000000000000000000000000000000000815233600482015293909204602484018190529151919350600160a060020a03169163cfa860c39160448083019260209291908290030181600087803b1580156128b757600080fd5b505af11580156128cb573d6000803e3d6000fd5b505050506040513d60208110156128e157600080fd5b5050336000818152600a60209081526040918290208054879003905581518681529151309392600080516020613ef783398151915292908290030190a3600191505b50919050565b601454600160a060020a0316331461294057600080fd5b601f88905560208781556007879055600886905560408051608081018252868152918201859052810183905260608101829052612981906010906004613e91565b505050505050505050565b60216020526000908152604090205460ff1681565b601554600160a060020a031681565b602554600160a060020a031681565b601454600090600160a060020a031633146129d957600080fd5b60018410156129e757600080fd5b6000831180156129f75750600082115b8015612a04575060648211155b1515612a0f57600080fd5b50604080518082018252928352602080840192835260009485526018905290922090518155905160019182015590565b601554600160a060020a03163314612a5657600080fd5b6119018282613d0f565b600160a060020a039182166000908152600b6020908152604080832093909416825291909152205490565b601454600160a060020a03163314612aa257600080fd5b601454600160a060020a03828116911614801590612ac85750600160a060020a03811615155b1515612ad357600080fd5b6014805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6014546000908190600160a060020a03163314612b1e57600080fd5b5060009050805b8351811015612c4257612b8a8382815181101515612b3f57fe5b90602001906020020151600a60008785815181101515612b5b57fe5b6020908102909101810151600160a060020a03168252810191909152604001600020549063ffffffff61333216565b600a60008684815181101515612b9c57fe5b6020908102909101810151600160a060020a03168252810191909152604001600020558251612bd190849083908110611b0857fe5b91508381815181101515612be157fe5b90602001906020020151600160a060020a031630600160a060020a0316600080516020613ef78339815191528584815181101515612c1b57fe5b906020019060200201516040518082815260200191505060405180910390a3600101612b25565b306000908152600a6020526040902054611bb0908363ffffffff61334216565b60608060008060608060005b602454841015612cca5760216000602486815481101515612c8b57fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff1615612cbf576001909401935b600190930192612c6e565b84604051908082528060200260200182016040528015612cf4578160200160208202803883390190505b50925084604051908082528060200260200182016040528015612d21578160200160208202803883390190505b5091505b602454811015612e1b5760216000602483815481101515612d4257fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff1615612e1357602480546000199096019582908110612d8457fe5b6000918252602090912001548351600160a060020a0390911690849087908110612daa57fe5b600160a060020a039092166020928302909101909101526024805460229160009184908110612dd557fe5b6000918252602080832090910154600160a060020a031683528201929092526040019020548251839087908110612e0857fe5b602090810290910101525b600101612d25565b50909590945092505050565b306000908152600a60205260408120546003548291612e4c919063ffffffff61334216565b915060095490509091565b601454600160a060020a03163314612e6e57600080fd5b600160a060020a0382166000818152600c6020908152604091829020805460ff191685151590811790915582519384529083015280517f48335238b4855f35377ed80f164e8c6f3c366e54ac00b96a6402d4a9814a03a59281900390910190a15050565b60065460ff1681565b600160a060020a039081166000908152600d60205260409020541690565b600654600090819081908190819060ff1615156001148015612f2b5750336000908152600c602052604090205460ff16155b1515612f3657600080fd5b3360009081526016602052604081205411612f5057600080fd5b33600090815260166020526040902060040154612f7490429063ffffffff61334216565b601e54601c549195509350841015612f8c57601d5492505b336000908152601660205260409020546064848202049250612fae9083613342565b9050612fb933613e0f565b50306000908152600a6020526040902054811115612fd657600080fd5b336000818152600a6020908152604080832080548601905530808452928190208054869003905580518581529051600080516020613ef7833981519152929181900390910190a3600194505050505090565b601454600090600160a060020a0316331461304257600080fd5b600160a060020a038216158015906130735750600160a060020a03821660009081526021602052604090205460ff16155b151561307e57600080fd5b50600160a060020a03166000818152602160205260408120805460ff1916600190811790915560248054808301825592527f7cd332d19b93bcabe3cce7ca0c18a052f57e5fd03b4758a09f30f5ddc4b22ec4909101805473ffffffffffffffffffffffffffffffffffffffff191690921790915590565b601454600160a060020a0316331461310c57600080fd5b6006805460ff1916911515919091179055565b601a54600160a060020a0382166000908152600f602052604081205490914203108015906131645750600160a060020a0382166000908152600f602052604090205415155b15613171575060016113ee565b5060006113ee565b600654600090819060ff16151561318f57600080fd5b6000831161319c57600080fd5b602554600160a060020a031615156131b357600080fd5b826131bd3361269d565b106132dd5760265483670de0b6b3a7640000028115156131d957fe5b602554604080517fed619eb8000000000000000000000000000000000000000000000000000000008152336004820152602481018890529051939092049350600160a060020a03169163ed619eb8916044808201926020929091908290030181600087803b15801561324a57600080fd5b505af115801561325e573d6000803e3d6000fd5b505050506040513d602081101561327457600080fd5b5050306000908152600a6020526040902054811061329157600080fd5b336000818152600a6020908152604080832080548601905530808452928190208054869003905580518781529051600080516020613ef7833981519152929181900390910190a36132e6565b60009150612923565b50600192915050565b601454600160a060020a0316331461330657600080fd5b600593909355604080516060810182528381526020810183905201839052601c91909155601d55601e55565b8181018281101561136857600080fd5b60008282111561335157600080fd5b50900390565b600160a060020a03808316600090815260296020526040812054909116801561279357600160a060020a03811660009081526022602052604090208054840190555060019392505050565b600080808084116133b257600080fd5b600160a060020a03851660009081526016602052604090206001015415156133dc5781925061356e565b600160a060020a0385166000908152601660205260409020600381015460029091015461340e9163ffffffff61334216565b90508381116134295761342085613e0f565b508091506134ee565b600160a060020a03851660009081526016602052604081205485935011156134cc57600160a060020a0385166000908152601660205260409020548410156134b257600160a060020a038516600090815260166020526040902054613494908563ffffffff61334216565b600160a060020a0386166000908152601660205260409020556134cc565b600160a060020a0385166000908152601660205260408120555b600160a060020a03851660009081526016602052604090206003018054830190555b306000908152600a602052604090205482111561350a57600080fd5b600160a060020a0385166000818152601660209081526040808320600501805487019055600a825280832080548701905530808452928190208054879003905580518681529051600080516020613ef7833981519152929181900390910190a38192505b505092915050565b6000808080841161358657600080fd5b600160a060020a03851660009081526011602052604090208054850190556010805460029081106135b357fe5b6000918252602080832090910154600160a060020a0388168352601282526040808420600285526001019092529120541080159061362d57506010805460039081106135fb57fe5b6000918252602080832090910154600160a060020a038816835260128252604080842060018086520190925291205410155b156122f757601f54600754600160a060020a038716600090815260116020526040902054919350606491020490506010600081548110151561366b57fe5b6000918252602080832090910154600160a060020a038816835260128252604080842060028552600101909252912054108015906136e557506010805460019081106136b357fe5b6000918252602080832090910154600160a060020a038816835260128252604080842060018086520190925291205410155b1561371557505060208054600854600160a060020a03861660009081526011909352604090922054909160649102045b600160a060020a03851660009081526011602052604090205482116122f75761373e85826133a2565b50600160a060020a038516600090815260116020526040812055506001949350505050565b600160a060020a0382166000908152600c602052604090205460ff161561378957600080fd5b60065460ff16151560011461379d57600080fd5b306000908152600a602052604090205481106137b857600080fd5b600160a060020a0382166000908152600a60205260409020546137e1908263ffffffff61333216565b600160a060020a0383166000908152600a6020526040808220929092553081522054613813908263ffffffff61334216565b306000818152600a60209081526040918290209390935580518481529051600160a060020a03861693600080516020613ef7833981519152928290030190a35050565b600160a060020a0383166000908152600c602052604081205481908190819081908190819060ff161561388857600080fd5b600160a060020a0389166000908152600c602052604090205460ff16156138ae57600080fd5b60065460ff1615156001146138c257600080fd5b6005546064908902600160a060020a038c166000908152600a6020526040902054919004965088870195508511156138f957600080fd5b60008811801561390a575060035488105b151561391557600080fd5b600160a060020a038916151561392a57600080fd5b600160a060020a038a8116908a16141561394357600080fd5b600160a060020a03808a166000818152600a60209081526040808320548f8616845281842054948452600d9092529091205491899003019550161580156139a75750600160a060020a038a81166000908152600d60205260409020548116908a1614155b15613bc95789600d60008b600160a060020a0316600160a060020a0316815260200190815260200160002060006101000a815481600160a060020a030219169083600160a060020a03160217905550600d60008a600160a060020a0316600160a060020a0316815260200190815260200160002060009054906101000a9004600160a060020a03169250602160006029600086600160a060020a0316600160a060020a0316815260200190815260200160002060009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a0316815260200190815260200160002060009054906101000a900460ff1615613ae457600160a060020a03808416600090815260296020526040808220548c841683529120805473ffffffffffffffffffffffffffffffffffffffff1916919092161790555b600160a060020a03831660009081526021602052604090205460ff1615613b4157600160a060020a038981166000908152602960205260409020805473ffffffffffffffffffffffffffffffffffffffff19169185169190911790555b5087905060015b60108111613bc957600160a060020a03831615801590613b7a575081600160a060020a031683600160a060020a031614155b15613bbc57600160a060020a038084166000818152601260209081526040808320868452825280832080546001019055928252600d9052205416929150613bc1565b613bc9565b600101613b48565b600160a060020a038a166000908152600a6020526040902054613bf2908663ffffffff61334216565b600160a060020a038b166000908152600a6020526040808220929092553081522054613c24908763ffffffff61333216565b306000908152600a602052604080822092909255600160a060020a038b1681522054613c56908963ffffffff61333216565b600160a060020a03808b166000908152600a602090815260409182902093909355805189815290513093928e1692600080516020613ef7833981519152928290030190a388600160a060020a03168a600160a060020a0316600080516020613ef78339815191528a6040518082815260200191505060405180910390a3600160a060020a03808a166000908152600a602052604080822054928d168252902054018414613cff57fe5b5060019998505050505050505050565b600160a060020a0382166000908152600c602052604090205460ff1615613d3557600080fd5b60065460ff161515600114613d4957600080fd5b600160a060020a0382166000908152600a60205260409020548110613d6d57600080fd5b600160a060020a0382166000908152600a6020526040902054613d96908263ffffffff61334216565b600160a060020a0383166000908152600a6020526040808220929092553081522054613dc8908263ffffffff61333216565b306000818152600a602090815260409182902093909355805184815290519192600160a060020a03861692600080516020613ef78339815191529281900390910190a35050565b600160a060020a031660009081526016602090815260408083208381556001808201859055600382018590556002909101849055600f90925282209190915590565b61014060405190810160405280600a906020820280388339509192915050565b610200604051908101604052806010906020820280388339509192915050565b828054828255906000526020600020908101928215613ecc579160200282015b82811115613ecc578251825591602001919060010190613eb1565b50613ed8929150613edc565b5090565b61137291905b80821115613ed85760008155600101613ee25600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a723058201c431d65e5b5850ec15a14cc596d361c9e647c78341d8f16e47645ea7c8345740029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000003152089a1700abdf66dfe45159069e814be6c2940000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000d0000000000000000000000004aeb3d07101bc6b5b85723143aeb8f230961b5ed000000000000000000000000e7526fa8ea297ff0c49bd1d708abd104c2355b6a00000000000000000000000000ad0c1ea42c832303d249a006a4a5b8cd5f738100000000000000000000000066ba4d733c60116a5c217f51f8dc414230334d230000000000000000000000009b7aba0ca90e318ebd414023fd53e22bdde74a7f000000000000000000000000e27d6ce787f1c704ae89a0f1a8fcd7d5aca183da000000000000000000000000cd3c7c5b41e8ff4471ab2ce1d8b117be48e813b5000000000000000000000000ad2da2a5259dbde4ab1487880fb8a871c6e04e06000000000000000000000000ff1b6f20291f6889663692c9b7281e0e7b2f8250000000000000000000000000aae907903dc65fd07b8b3ce20d2085aedd9d91880000000000000000000000008264ab8d3423574e64c27b15bec9ae79000bcbb3000000000000000000000000cfa67f8c5aa513457738188e9f7e3e6d4682f0d8000000000000000000000000b361addedc0cbb5d8d93808564049b6cfebddd38
-----Decoded View---------------
Arg [0] : _ettAddress (address): 0x3152089A1700abdF66dfE45159069E814BE6C294
Arg [1] : _supernodes (address[]): 0x4aEB3D07101BC6B5b85723143AeB8f230961b5eD,0xE7526fa8Ea297Ff0c49Bd1d708AbD104c2355b6A,0x00ad0C1eA42C832303D249A006a4A5B8CD5f7381,0x66ba4D733c60116A5c217F51f8DC414230334d23,0x9B7abA0Ca90e318eBd414023fD53E22BdDe74A7f,0xE27d6cE787F1C704Ae89A0F1a8FCD7d5acA183da,0xCd3c7C5B41E8FF4471AB2ce1D8B117be48e813B5,0xad2DA2a5259Dbde4Ab1487880fB8a871c6e04e06,0xff1b6F20291f6889663692C9b7281e0e7b2F8250,0xAaE907903dC65Fd07B8B3cE20d2085aEdD9D9188,0x8264Ab8D3423574E64c27B15BEC9AE79000bCBB3,0xcfa67f8c5aA513457738188E9F7E3e6D4682F0d8,0xb361ADDedC0cBB5D8D93808564049B6CFebdDd38
-----Encoded View---------------
16 Constructor Arguments found :
Arg [0] : 0000000000000000000000003152089a1700abdf66dfe45159069e814be6c294
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [2] : 000000000000000000000000000000000000000000000000000000000000000d
Arg [3] : 0000000000000000000000004aeb3d07101bc6b5b85723143aeb8f230961b5ed
Arg [4] : 000000000000000000000000e7526fa8ea297ff0c49bd1d708abd104c2355b6a
Arg [5] : 00000000000000000000000000ad0c1ea42c832303d249a006a4a5b8cd5f7381
Arg [6] : 00000000000000000000000066ba4d733c60116a5c217f51f8dc414230334d23
Arg [7] : 0000000000000000000000009b7aba0ca90e318ebd414023fd53e22bdde74a7f
Arg [8] : 000000000000000000000000e27d6ce787f1c704ae89a0f1a8fcd7d5aca183da
Arg [9] : 000000000000000000000000cd3c7c5b41e8ff4471ab2ce1d8b117be48e813b5
Arg [10] : 000000000000000000000000ad2da2a5259dbde4ab1487880fb8a871c6e04e06
Arg [11] : 000000000000000000000000ff1b6f20291f6889663692c9b7281e0e7b2f8250
Arg [12] : 000000000000000000000000aae907903dc65fd07b8b3ce20d2085aedd9d9188
Arg [13] : 0000000000000000000000008264ab8d3423574e64c27b15bec9ae79000bcbb3
Arg [14] : 000000000000000000000000cfa67f8c5aa513457738188e9f7e3e6d4682f0d8
Arg [15] : 000000000000000000000000b361addedc0cbb5d8d93808564049b6cfebddd38
Swarm Source
bzzr://1c431d65e5b5850ec15a14cc596d361c9e647c78341d8f16e47645ea7c834574
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ 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.