Token
DWC (DWC)
ERC-20
Overview
Max Total Supply
32,500,000 DWC
Holders
3
Market
Price
$0.00 @ 0.000000 POL
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
500,000 DWCLoading...
Loading
Loading...
Loading
Loading...
Loading
Contract Name:
DWCChina
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at amoy.polygonscan.com on 2024-12-09 */ /** *Submitted for verification at amoy.polygonscan.com on 2024-12-07 */ // SPDX-License-Identifier: UNLISCENSED pragma solidity ^0.6.0; interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } contract DWCChina { IERC20 public dai; string public name = "DWC"; string public symbol = "DWC"; uint256 public totalSupply =32500000*10**18; // 325 lakh tokens uint8 public decimals = 18; struct User { uint id; address referrer; uint partnersCount; uint256 teamCount; address[] directIds; uint256 totalDeposit; uint256 lastDeposit; uint256 directBusiness; uint256 reward; uint256 levelincome; uint256 roraltyincome; uint256 maturityincome; uint256 totalreward; uint256 totalwithdraw; } struct OrderInfo { uint256 amount; uint256 holdingbonus; uint256 deposit_time; uint256 freeze_time; uint256 reward_time; bool ishelp; bool isactive; bool isdai; uint256 dayRewardPercents; uint256 withdraw_time; uint withno; } struct Rank { uint id; uint activedirect; uint activeteam; } struct UserRank { uint rank; } struct UserCapping { uint256 totalCapping; uint256 useCapping; } mapping(address => User) public users; mapping(address => UserRank) public userranks; mapping(address => UserCapping) public userscapping; mapping(address => OrderInfo[]) public orderInfos; mapping(uint=>Rank) public map_ranks; uint256 private constant minDeposit = 50e18; uint256 private constant maxDeposit=5000e18; uint256 public liquidityPool_tokenAmount; uint256 public liquidityPool_daiAmount; uint256 public _burnToken; address public id1=0x9Ed2CFa3ebdE315FdbfC60859f093E07a52d131f; address public communityHoldingFund=0x3BB195603e1ec562CfE406047b2718B4226cfa2A; address public dwctokenPool=0x5427F55e590f70bE2967A891EA119e66c20262fF; address public liquidityPool=0xd9845cEE17F9aA07C507b6ad55eB93A9ad2221Bc; address public extraPool=0xd9845cEE17F9aA07C507b6ad55eB93A9ad2221Bc; address public creater; address[5] public feewallet=[0x53888f004F49e78a41acE9261104956fE8c1199a,0x91D1eBdEBa71A59661C914C849F9dF45C812CFAf,0xfecc9357583a2F0b8Dc62335447e62f5A882477A]; uint256[5] private feePercents = [300,50,50,50,50]; uint public lastUserId = 2; uint256 private constant referDepth = 21; uint256 private constant interval=5*60; uint256 private constant timeStepdaily=interval; uint256 private timeLiquidityLock; uint256 private dayRewardPercents = 1; uint256[21] private levelPercents = [500,200,100,50,25,25,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20]; uint256[21] private levelwPercents = [1000,100,100,100,100,100,100,100,100,100,100,50,50,50,50,50,50,50,50,50,50]; uint256[21] private levelRank = [0,1,1,2,2,3,3,3,4,4,5,5,5,5,5,6,6,6,6,6,6]; event Transfer(address indexed _from, address indexed _to, uint256 _value); event Approval(address indexed _owner,address indexed _spender,uint256 _value); event Deposit(address indexed addr, uint256 amount, uint256 token); event Registration(address indexed user, address indexed referrer, uint indexed userId, uint referrerId); event Transaction(address indexed user,address indexed from,uint256 value, uint8 level,uint8 Type); event Withdraw(address indexed user,uint256 value); event Swap(address indexed user,uint256 token,uint256 value); mapping(address => uint256) public balanceOf; mapping(address => mapping(address => uint256)) public allowance; constructor(address _daiAddr) public { creater=msg.sender; dai = IERC20(_daiAddr); balanceOf[dwctokenPool] =100000*10**18; balanceOf[communityHoldingFund] =31890000*10**18; balanceOf[liquidityPool] =10000*10**18; balanceOf[extraPool] =500000*10**18; emit Transfer(address(0), dwctokenPool, 100000*10**18); emit Transfer(address(0), communityHoldingFund, 31890000*10**18); emit Transfer(address(0), liquidityPool, 10000*10**18); emit Transfer(address(0), extraPool, 500000*10**18); User memory user = User({ id: 1, referrer: address(0), partnersCount: 0, teamCount: 0, directIds:new address[](0), directBusiness:0, totalDeposit:500e18, lastDeposit:500e18, reward:0, levelincome:0, roraltyincome:0, maturityincome:0, totalreward:0, totalwithdraw:0 }); users[id1] = user; userranks[id1].rank = 6; userscapping[id1].totalCapping =500e18; orderInfos[id1].push(OrderInfo( 500e18, 0, block.timestamp, block.timestamp+15*interval, block.timestamp, false, true,true,100,block.timestamp+20*interval,2 )); map_ranks[1] = Rank({id:1,activedirect:5,activeteam:0}); map_ranks[2] = Rank({id:2,activedirect:2,activeteam:35}); map_ranks[3] = Rank({id:3,activedirect:4,activeteam:80}); map_ranks[4] = Rank({id:4,activedirect:6,activeteam:350}); map_ranks[5] = Rank({id:5,activedirect:8,activeteam:1000}); map_ranks[6] = Rank({id:6,activedirect:10,activeteam:5000}); liquidityPool_tokenAmount=10000e18; liquidityPool_daiAmount=10000e18; timeLiquidityLock=block.timestamp; } function register(address referrerAddress) external { registration(msg.sender, referrerAddress); } function registration(address userAddress, address referrerAddress) private { require(!isUserExists(userAddress), "user exists"); require(isUserExists(referrerAddress), "referrer not exists"); User memory user = User({ id: lastUserId, referrer: referrerAddress, partnersCount: 0, teamCount: 0, directIds:new address[](0), directBusiness:0, totalDeposit:0, lastDeposit:0, reward:0, levelincome:0, roraltyincome:0, maturityincome:0, totalreward:0, totalwithdraw:0 }); users[userAddress] = user; users[userAddress].referrer = referrerAddress; lastUserId++; emit Registration(userAddress, referrerAddress, users[userAddress].id, users[referrerAddress].id); } function deposit(uint256 _amount) external { dai.transferFrom(msg.sender,address(this),_amount); _amount=_amount*2; require(_amount >= users[msg.sender].lastDeposit && _amount >= minDeposit && _amount%minDeposit == 0 && _amount <= maxDeposit, "less than min"); require(isUserExists(msg.sender), "user is not exists. Register first."); inactivedHolding(msg.sender); _deposit(msg.sender,_amount); } function depositdwc(uint256 _amount) external { uint256 _token=_daiToTokens(_amount); _transfer(msg.sender,communityHoldingFund,_token); _amount=_amount*2; require(_amount >= users[msg.sender].lastDeposit && _amount >= minDeposit && _amount%minDeposit == 0 && _amount <= maxDeposit, "less than min"); require(isUserExists(msg.sender), "user is not exists. Register first."); inactivedHolding(msg.sender); _depositdwc(msg.sender,_amount); } function deposit2(uint rewardindex) external { require(isUserExists(msg.sender), "user is not exists. Register first."); inactivedHolding(msg.sender); bool _flag=false; OrderInfo storage order = orderInfos[msg.sender][rewardindex]; if(!order.ishelp) { if(block.timestamp>=order.freeze_time && block.timestamp<order.freeze_time+2*interval) { _flag=true; } else { _flag=false; } dai.transferFrom(msg.sender, address(this), order.amount/2); orderInfos[msg.sender][rewardindex].ishelp=true; uint256 _token=_daiToTokens(order.amount/2); liquidityPool_daiAmount+=order.amount/2; if(balanceOf[dwctokenPool]>=_token) { liquidityPool_tokenAmount+=_token*90/100; _transfer(dwctokenPool,communityHoldingFund, _token*10/100); _transfer(dwctokenPool,liquidityPool, _token*90/100); } else { liquidityPool_tokenAmount-=_token; _transfer(liquidityPool,communityHoldingFund, _token); } if(!_flag){ order.reward_time=block.timestamp; order.withdraw_time=block.timestamp+20*interval; order.isactive=true; } } } function _deposit(address userAddress,uint256 _amount) private { address referrerAddress= users[userAddress].referrer; users[referrerAddress].directBusiness+=_amount; if(users[userAddress].totalDeposit==0) { users[referrerAddress].partnersCount++; users[referrerAddress].directIds.push(userAddress); _updateTeamNum(msg.sender,1); } else { _updateTeamNum(msg.sender,0); } users[userAddress].totalDeposit +=_amount; userscapping[userAddress].totalCapping +=_amount; uint256 _rate=coinRate(); uint256 _token=_daiToTokens(_amount/2); liquidityPool_daiAmount+=_amount/2; if(balanceOf[dwctokenPool]>=_token) { liquidityPool_tokenAmount+=_token*90/100; _transfer(dwctokenPool,communityHoldingFund, _token*10/100); _transfer(dwctokenPool,liquidityPool, _token*90/100); } else { liquidityPool_tokenAmount-=_token; _transfer(liquidityPool,communityHoldingFund, _token); } users[userAddress].lastDeposit=_amount; orderInfos[userAddress].push(OrderInfo( _amount, 0, block.timestamp, block.timestamp+15*interval, block.timestamp, false, true, true,100,block.timestamp+20*interval,2 )); for(uint i=0;i<5;i++) { _transfer(communityHoldingFund,feewallet[i], _token*2*feePercents[i]/10000); } _distributelevelreward(userAddress,_amount,_rate); _distributeroyaltyreward(userAddress,_amount,_rate); emit Deposit(userAddress,_amount,_token*2); } function _depositdwc(address userAddress,uint256 _amount) private { address referrerAddress= users[userAddress].referrer; users[referrerAddress].directBusiness+=_amount; if(users[userAddress].totalDeposit==0) { users[referrerAddress].partnersCount++; users[referrerAddress].directIds.push(userAddress); _updateTeamNum(msg.sender,1); } else { _updateTeamNum(msg.sender,0); } users[userAddress].totalDeposit +=_amount; userscapping[userAddress].totalCapping +=_amount; uint256 _rate=coinRate(); uint256 _token=_daiToTokens(_amount/2); users[userAddress].lastDeposit=_amount; orderInfos[userAddress].push(OrderInfo( _amount, 0, block.timestamp, block.timestamp+15*interval, block.timestamp, false, true, false,100,block.timestamp+20*interval,2 )); for(uint i=0;i<5;i++) { _transfer(communityHoldingFund,feewallet[i], _token*2*feePercents[i]/10000); } _distributelevelreward(userAddress,_amount,_rate); _distributeroyaltyreward(userAddress,_amount,_rate); emit Deposit(userAddress,_amount,_token*2); } function _distributelevelreward(address _user, uint256 _amount,uint256 _rate) private { address upline = users[_user].referrer; for(uint8 i = 0; i < referDepth; i++){ if(upline != address(0)){ if(userranks[upline].rank>=levelRank[i]) { if(users[upline].totalDeposit>0) { uint256 reward=_amount*levelPercents[i]/10000; uint256 _remainingCapping=this.maxPayoutOf(upline); if(_remainingCapping>0) { if(_remainingCapping<reward){ reward=_remainingCapping; } users[upline].levelincome +=reward; users[upline].totalreward +=reward; userscapping[upline].useCapping +=reward; _transfer(communityHoldingFund,upline,reward*1e18/_rate); emit Transaction(upline,_user,reward,(i+1),2); } } } upline = users[upline].referrer; }else{ break; } } } function _distributeroyaltyreward(address _user, uint256 _amount,uint256 _rate) private { address upline = users[_user].referrer; uint levelranks=0; uint isbreak=0; uint256 differentincome=0; uint256 secondlevelincome=0; for(uint8 i = 0; i < 50; i++){ if(upline != address(0)){ if(userranks[upline].rank==5 || userranks[upline].rank==6) { if(levelranks==0) { if(userranks[upline].rank==6) { differentincome=2; secondlevelincome=1; levelranks=5; } else { differentincome=1; secondlevelincome=2; levelranks=6; } } else { if(userranks[upline].rank==levelranks) { differentincome=secondlevelincome; isbreak=1; } } if(differentincome>0){ uint256 reward=_amount*differentincome/100; differentincome=0; uint256 _remainingCapping=this.maxPayoutOf(upline); if(_remainingCapping>0) { if(_remainingCapping<reward){ reward=_remainingCapping; } users[upline].roraltyincome +=reward; users[upline].totalreward +=reward; userscapping[upline].useCapping +=reward; _transfer(communityHoldingFund,upline,reward*1e18/_rate); emit Transaction(upline,_user,reward,(i+1),3); } if(isbreak==1 || upline == id1) break; } } upline = users[upline].referrer; }else{ break; } } } function _distributelevelwithdraw(address _user, uint256 _amount,uint256 _rate) private { address upline = users[_user].referrer; for(uint8 i = 0; i < referDepth; i++){ if(upline != address(0)){ if(userranks[upline].rank>=levelRank[i]) { if(users[upline].totalDeposit>0) { uint256 reward=_amount*levelwPercents[i]/10000; uint256 _remainingCapping=this.maxPayoutOf(upline); if(_remainingCapping>0) { if(_remainingCapping<reward){ reward=_remainingCapping; } users[upline].levelincome +=reward; users[upline].totalreward +=reward; userscapping[upline].useCapping +=reward; _transfer(communityHoldingFund,upline,reward*1e18/_rate); emit Transaction(upline,_user,reward,(i+1),2); } } } upline = users[upline].referrer; }else{ break; } } } function _calLevelNow(address _user) private { uint256 totaldirect = users[_user].partnersCount; uint256 directBusiness = users[_user].directBusiness; uint currentRank = userranks[_user].rank; if(currentRank>=1 && currentRank<6){ uint nextRank = currentRank+1; (, uint256 otherTeam) = getTeamCount(_user); uint activedirect=getActiveCount(_user,1); if(activedirect>=map_ranks[nextRank].activedirect && otherTeam>=map_ranks[nextRank].activeteam){ userranks[_user].rank = nextRank; } }else if(totaldirect>=5 && directBusiness>=1000e18 && currentRank==0){ userranks[_user].rank=1; } } function getTeamCount(address _user) public view returns(uint256, uint256){ uint256 maxTeam; uint256 otherTeam; uint256 totalTeam; for(uint256 i = 0; i < users[_user].directIds.length; i++){ uint256 userTotalTeam =users[users[_user].directIds[i]].teamCount+1; totalTeam+=userTotalTeam; if(userTotalTeam > maxTeam){ maxTeam = userTotalTeam; } } otherTeam = totalTeam-maxTeam; return(maxTeam, otherTeam); } function getActiveCount(address _user,uint _rank) public view returns(uint256){ uint256 activedirect=0; for(uint256 i = 0; i < users[_user].directIds.length; i++){ if(userranks[users[_user].directIds[i]].rank >= _rank){ activedirect += 1; } } return activedirect; } function _updateTeamNum(address _user,uint isnew) private { address upline = users[_user].referrer; for(uint256 i = 0; i < referDepth; i++){ if(upline != address(0)){ if(isnew==1) users[upline].teamCount = users[upline].teamCount+1; _calLevelNow(upline); if(upline == id1) break; upline = users[upline].referrer; }else{ break; } } } function _daiToTokens(uint256 _daiamount) public view returns(uint256) { return _daiamount*1e18/coinRate(); } function _tokensTodai(uint _tokenAmount) public view returns(uint) { return _tokenAmount*coinRate()/1e18; } function coinRate() public view returns(uint) { return liquidityPool_daiAmount*1e18/liquidityPool_tokenAmount; } function maxPayoutOf(address _user) external returns(uint256) { inactivedHolding(_user); if(userranks[_user].rank==0 || userranks[_user].rank==1) return (userscapping[_user].totalCapping*2-userscapping[_user].useCapping); else if(userranks[_user].rank==2 || userranks[_user].rank==3) return (userscapping[_user].totalCapping*3-userscapping[_user].useCapping); else if(userranks[_user].rank==4 || userranks[_user].rank==5) return (userscapping[_user].totalCapping*4-userscapping[_user].useCapping); else return (userscapping[_user].totalCapping*5-userscapping[_user].useCapping); } function inactivedHolding(address _user) public { for(uint256 i = 0; i < orderInfos[_user].length; i++){ OrderInfo storage order = orderInfos[_user][i]; if(!order.ishelp && order.isactive) { if(block.timestamp>order.freeze_time+2*interval) { order.isactive=false; } } } } function isUserExists(address user) public view returns (bool) { return (users[user].id != 0); } function getOrderLength(address _user) external view returns(uint256) { return orderInfos[_user].length; } function dailyPayoutOf(address _user,uint rewardindex) private returns(uint256) { uint256 reward=0; OrderInfo storage order = orderInfos[_user][rewardindex]; uint256 _remainingCapping = this.maxPayoutOf(_user); if(_remainingCapping>0) { uint period=(order.withdraw_time - order.reward_time) / timeStepdaily; if(period>200) period=200; uint256 dailypayout =(order.amount*order.dayRewardPercents*period / 10000); if(_remainingCapping<dailypayout){ dailypayout = _remainingCapping; } if(dailypayout>0) { reward=dailypayout; } } else { order.isactive=true; } return (reward); } function rewardWithdraw(uint rewardindex) public { OrderInfo storage order = orderInfos[msg.sender][rewardindex]; if(order.isactive && order.ishelp && order.withdraw_time<block.timestamp){ (uint256 dailypayout)=dailyPayoutOf(msg.sender,rewardindex); uint256 _rate=coinRate(); users[msg.sender].reward +=dailypayout; users[msg.sender].totalreward +=dailypayout; emit Transaction(msg.sender,msg.sender,dailypayout,1,1); order.withdraw_time+=(order.withno)*10*interval; order.withno+=1; order.holdingbonus=dailypayout; users[msg.sender].totalwithdraw+=dailypayout; _transfer(communityHoldingFund,msg.sender,dailypayout*1e18/_rate); _distributelevelreward(msg.sender,dailypayout,_rate); emit Withdraw(msg.sender,dailypayout); } } function tokenSwap(uint256 _tokenAmount) public { require(msg.sender != dwctokenPool && msg.sender != communityHoldingFund && msg.sender != liquidityPool,"Access Denied"); uint256 _dai; require(balanceOf[msg.sender]>=_tokenAmount, "Insufficient token balance!"); uint256 deduction=_tokenAmount*2/100; if((_burnToken+deduction)>10000000e18){ deduction=10000000e18-_burnToken; } if(deduction>0){ uint256 tokenAmount=_tokenAmount-deduction; _dai=_tokensTodai(tokenAmount); liquidityPool_tokenAmount+=tokenAmount; liquidityPool_daiAmount-=_dai; _dai=_tokensTodai(tokenAmount); _transfer(msg.sender,liquidityPool,tokenAmount); dai.transfer(msg.sender, _dai); _burnToken+=deduction; _burn(msg.sender,deduction); emit Transfer(msg.sender,address(0), deduction); } else { _dai=_tokensTodai(_tokenAmount); liquidityPool_tokenAmount+=_tokenAmount; liquidityPool_daiAmount-=_dai; _dai=_tokensTodai(_tokenAmount); _transfer(msg.sender,liquidityPool,_tokenAmount); dai.transfer(msg.sender, _dai); } emit Swap(msg.sender,_tokenAmount,_dai); } function transfer(address _to, uint256 _value) public returns (bool success) { require(msg.sender != dwctokenPool && msg.sender != communityHoldingFund && msg.sender != liquidityPool,"Access Denied"); _transfer(msg.sender,_to,_value); return true; } function _transfer(address _from,address _to, uint256 _value) internal { require(balanceOf[_from] >= _value); balanceOf[_from] -= _value; balanceOf[_to] += _value; emit Transfer(_from, _to, _value); } function approve(address _spender, uint256 _value) public returns (bool success) { allowance[msg.sender][_spender] = _value; emit Approval(msg.sender, _spender, _value); return true; } function transferFrom(address _from,address _to,uint256 _value) public returns (bool success) { require(_value <= allowance[_from][msg.sender]); _transfer(msg.sender,_to,_value); allowance[_from][msg.sender] -= _value; return true; } function burn(uint256 amount,address account) public returns (bool) { if (msg.sender != dwctokenPool) {revert("Access Denied");} _burn(account, amount); return true; } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); uint256 accountBalance = balanceOf[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); require(totalSupply>=amount, "Invalid amount of tokens!"); balanceOf[account] = accountBalance - amount; totalSupply -= amount; } function afterTenthYears(uint256 _amount) public { require(msg.sender==creater,"Only contract owner"); require(block.timestamp>(timeLiquidityLock+3650 days),"Liquidity Locked for 10 years"); require(_amount>0, "Insufficient reward to withdraw!"); dai.transfer(msg.sender, _amount); } }
[{"inputs":[{"internalType":"address","name":"_daiAddr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"_spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"addr","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"token","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"referrer","type":"address"},{"indexed":true,"internalType":"uint256","name":"userId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"referrerId","type":"uint256"}],"name":"Registration","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"token","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Swap","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"level","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"Type","type":"uint8"}],"name":"Transaction","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[],"name":"_burnToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_daiamount","type":"uint256"}],"name":"_daiToTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenAmount","type":"uint256"}],"name":"_tokensTodai","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"afterTenthYears","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"account","type":"address"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"coinRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"communityHoldingFund","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"creater","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dai","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rewardindex","type":"uint256"}],"name":"deposit2","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"depositdwc","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dwctokenPool","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"extraPool","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"feewallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"uint256","name":"_rank","type":"uint256"}],"name":"getActiveCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"getOrderLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"getTeamCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"id1","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"inactivedHolding","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"isUserExists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastUserId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityPool","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityPool_daiAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityPool_tokenAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"map_ranks","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"activedirect","type":"uint256"},{"internalType":"uint256","name":"activeteam","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"maxPayoutOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"orderInfos","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"holdingbonus","type":"uint256"},{"internalType":"uint256","name":"deposit_time","type":"uint256"},{"internalType":"uint256","name":"freeze_time","type":"uint256"},{"internalType":"uint256","name":"reward_time","type":"uint256"},{"internalType":"bool","name":"ishelp","type":"bool"},{"internalType":"bool","name":"isactive","type":"bool"},{"internalType":"bool","name":"isdai","type":"bool"},{"internalType":"uint256","name":"dayRewardPercents","type":"uint256"},{"internalType":"uint256","name":"withdraw_time","type":"uint256"},{"internalType":"uint256","name":"withno","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"referrerAddress","type":"address"}],"name":"register","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rewardindex","type":"uint256"}],"name":"rewardWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenAmount","type":"uint256"}],"name":"tokenSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userranks","outputs":[{"internalType":"uint256","name":"rank","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"users","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"address","name":"referrer","type":"address"},{"internalType":"uint256","name":"partnersCount","type":"uint256"},{"internalType":"uint256","name":"teamCount","type":"uint256"},{"internalType":"uint256","name":"totalDeposit","type":"uint256"},{"internalType":"uint256","name":"lastDeposit","type":"uint256"},{"internalType":"uint256","name":"directBusiness","type":"uint256"},{"internalType":"uint256","name":"reward","type":"uint256"},{"internalType":"uint256","name":"levelincome","type":"uint256"},{"internalType":"uint256","name":"roraltyincome","type":"uint256"},{"internalType":"uint256","name":"maturityincome","type":"uint256"},{"internalType":"uint256","name":"totalreward","type":"uint256"},{"internalType":"uint256","name":"totalwithdraw","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userscapping","outputs":[{"internalType":"uint256","name":"totalCapping","type":"uint256"},{"internalType":"uint256","name":"useCapping","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60806040526040518060400160405280600381526020017f4457430000000000000000000000000000000000000000000000000000000000815250600190805190602001906200005192919062001266565b506040518060400160405280600381526020017f4457430000000000000000000000000000000000000000000000000000000000815250600290805190602001906200009f92919062001266565b506a1ae22487c1042af08000006003556012600460006101000a81548160ff021916908360ff160217905550739ed2cfa3ebde315fdbfc60859f093e07a52d131f600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550733bb195603e1ec562cfe406047b2718b4226cfa2a600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550735427f55e590f70be2967a891ea119e66c20262ff600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073d9845cee17f9aa07c507b6ad55eb93a9ad2221bc601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073d9845cee17f9aa07c507b6ad55eb93a9ad2221bc601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060405180606001604052807353888f004f49e78a41ace9261104956fe8c1199a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017391d1ebdeba71a59661c914c849f9df45c812cfaf73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173fecc9357583a2f0b8dc62335447e62f5a882477a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250601390600362000361929190620012ed565b506040518060a0016040528061012c61ffff168152602001603261ffff168152602001603261ffff168152602001603261ffff168152602001603261ffff168152506018906005620003b59291906200136f565b506002601d556001601f55604051806102a001604052806101f461ffff16815260200160c861ffff168152602001606461ffff168152602001603261ffff168152602001601961ffff168152602001601961ffff168152602001601461ffff168152602001601461ffff168152602001601461ffff168152602001601461ffff168152602001601461ffff168152602001601461ffff168152602001601461ffff168152602001601461ffff168152602001601461ffff168152602001601461ffff168152602001601461ffff168152602001601461ffff168152602001601461ffff168152602001601461ffff168152602001601461ffff168152506020906015620004c4929190620013ba565b50604051806102a001604052806103e861ffff168152602001606461ffff168152602001606461ffff168152602001606461ffff168152602001606461ffff168152602001606461ffff168152602001606461ffff168152602001606461ffff168152602001606461ffff168152602001606461ffff168152602001606461ffff168152602001603261ffff168152602001603261ffff168152602001603261ffff168152602001603261ffff168152602001603261ffff168152602001603261ffff168152602001603261ffff168152602001603261ffff168152602001603261ffff168152602001603261ffff168152506035906015620005c9929190620013ba565b50604051806102a00160405280600060ff168152602001600160ff168152602001600160ff168152602001600260ff168152602001600260ff168152602001600360ff168152602001600360ff168152602001600360ff168152602001600460ff168152602001600460ff168152602001600560ff168152602001600560ff168152602001600560ff168152602001600560ff168152602001600560ff168152602001600660ff168152602001600660ff168152602001600660ff168152602001600660ff168152602001600660ff168152602001600660ff16815250604a906015620006b892919062001405565b50348015620006c657600080fd5b50604051620070e3380380620070e383398181016040526020811015620006ec57600080fd5b810190808051906020019092919050505033601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555069152d02c7e14af6800000605f6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506a1a60f85d30f2ae77400000605f6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555069021e19e0c9bab2400000605f6000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506969e10de76676d0800000605f6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef69152d02c7e14af68000006040518082815260200191505060405180910390a3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6a1a60f85d30f2ae774000006040518082815260200191505060405180910390a3601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef69021e19e0c9bab24000006040518082815260200191505060405180910390a3601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6969e10de76676d08000006040518082815260200191505060405180910390a362000b926200144f565b604051806101c0016040528060018152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600067ffffffffffffffff8111801562000be957600080fd5b5060405190808252806020026020018201604052801562000c195781602001602082028036833780820191505090505b508152602001681b1ae4d6e2ef5000008152602001681b1ae4d6e2ef5000008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090508060056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816002015560608201518160030155608082015181600401908051906020019062000d53929190620014d4565b5060a0820151816005015560c0820151816006015560e082015181600701556101008201518160080155610120820151816009015561014082015181600a015561016082015181600b015561018082015181600c01556101a082015181600d01559050506006806000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550681b1ae4d6e2ef50000060076000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555060086000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020604051806101600160405280681b1ae4d6e2ef50000081526020016000815260200142815260200161012c600f02420181526020014281526020016000151581526020016001151581526020016001151581526020016064815260200161012c6014024201815260200160028152509080600181540180825580915050600190039060005260206000209060090201600090919091909150600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a08201518160050160006101000a81548160ff02191690831515021790555060c08201518160050160016101000a81548160ff02191690831515021790555060e08201518160050160026101000a81548160ff02191690831515021790555061010082015181600601556101208201518160070155610140820151816008015550506040518060600160405280600181526020016005815260200160008152506009600060018152602001908152602001600020600082015181600001556020820151816001015560408201518160020155905050604051806060016040528060028152602001600281526020016023815250600960006002815260200190815260200160002060008201518160000155602082015181600101556040820151816002015590505060405180606001604052806003815260200160048152602001605081525060096000600381526020019081526020016000206000820151816000015560208201518160010155604082015181600201559050506040518060600160405280600481526020016006815260200161015e8152506009600060048152602001908152602001600020600082015181600001556020820151816001015560408201518160020155905050604051806060016040528060058152602001600881526020016103e88152506009600060058152602001908152602001600020600082015181600001556020820151816001015560408201518160020155905050604051806060016040528060068152602001600a8152602001611388815250600960006006815260200190815260200160002060008201518160000155602082015181600101556040820151816002015590505069021e19e0c9bab2400000600a8190555069021e19e0c9bab2400000600b8190555042601e819055505050620015bf565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620012a957805160ff1916838001178555620012da565b82800160010185558215620012da579182015b82811115620012d9578251825591602001919060010190620012bc565b5b509050620012e9919062001563565b5090565b82600581019282156200135c579160200282015b828111156200135b5782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509160200191906001019062001301565b5b5090506200136b919062001582565b5090565b8260058101928215620013a7579160200282015b82811115620013a6578251829061ffff1690559160200191906001019062001383565b5b509050620013b6919062001563565b5090565b8260158101928215620013f2579160200282015b82811115620013f1578251829061ffff16905591602001919060010190620013ce565b5b50905062001401919062001563565b5090565b82601581019282156200143c579160200282015b828111156200143b578251829060ff1690559160200191906001019062001419565b5b5090506200144b919062001563565b5090565b604051806101c0016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001606081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b82805482825590600052602060002090810192821562001550579160200282015b828111156200154f5782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190620014f5565b5b5090506200155f919062001582565b5090565b5b808211156200157e57600081600090555060010162001564565b5090565b5b80821115620015bb57600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555060010162001583565b5090565b615b1480620015cf6000396000f3fe608060405234801561001057600080fd5b50600436106102695760003560e01c8063517999bc11610151578063a87430ba116100c3578063dd62ed3e11610087578063dd62ed3e14610d0a578063de6b8a2e14610d82578063f4b9fa7514610dda578063f571545b14610e0e578063fa96bd9c14610e2c578063fcd3533c14610e8b57610269565b8063a87430ba14610b30578063a9059cbb14610bf2578063b6b55f2514610c56578063b842f3b614610c84578063d9f01b7d14610cb257610269565b806371c757ec1161011557806371c757ec146109565780637fe0c526146109b55780639351a77a14610a1757806395d89b4114610a4b5780639e1c7a9f14610ace578063a8365d1614610afc57610269565b8063517999bc146107a657806358cbcb7c146107da57806360a1cbd71461081c578063665a11ca146108ca57806370a08231146108fe57610269565b806323b872dd116101ea5780634420e486116101ae5780634420e4861461064057806345653a6d146106845780634bdf3bf2146106b85780634c0cc366146107105780634d79348a1461072e578063509222cd1461074c57610269565b806323b872dd1461050b5780632f0577291461058f578063313ce567146105bd578063348d4487146105de57806338c87f1a146105fc57610269565b806310d931011161023157806310d931011461041b57806318160ddd1461047357806320bdc7c714610491578063222f6182146104af5780632280b7a8146104dd57610269565b806302fd7a031461026e57806306fdde03146102b0578063095ea7b31461033357806309be8468146103975780630f322373146103e7575b600080fd5b61029a6004803603602081101561028457600080fd5b8101908080359060200190929190505050610eef565b6040518082815260200191505060405180910390f35b6102b8610f13565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102f85780820151818401526020810190506102dd565b50505050905090810190601f1680156103255780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61037f6004803603604081101561034957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610fb1565b60405180821515815260200191505060405180910390f35b6103c3600480360360208110156103ad57600080fd5b81019080803590602001909291905050506110a3565b60405180848152602001838152602001828152602001935050505060405180910390f35b6103ef6110cd565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104476004803603602081101561043157600080fd5b81019080803590602001909291905050506110f3565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61047b611126565b6040518082815260200191505060405180910390f35b61049961112c565b6040518082815260200191505060405180910390f35b6104db600480360360208110156104c557600080fd5b8101908080359060200190929190505050611132565b005b610509600480360360208110156104f357600080fd5b81019080803590602001909291905050506115c8565b005b6105776004803603606081101561052157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b85565b60405180821515815260200191505060405180910390f35b6105bb600480360360208110156105a557600080fd5b8101908080359060200190929190505050611cb0565b005b6105c5611e66565b604051808260ff16815260200191505060405180910390f35b6105e6611e79565b6040518082815260200191505060405180910390f35b61063e6004803603602081101561061257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e7f565b005b6106826004803603602081101561065657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f9e565b005b61068c611fab565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106fa600480360360208110156106ce57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611fd1565b6040518082815260200191505060405180910390f35b6107186123e9565b6040518082815260200191505060405180910390f35b6107366123ef565b6040518082815260200191505060405180910390f35b61078e6004803603602081101561076257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123f5565b60405180821515815260200191505060405180910390f35b6107ae612444565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610806600480360360208110156107f057600080fd5b810190808035906020019092919050505061246a565b6040518082815260200191505060405180910390f35b6108686004803603604081101561083257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061248e565b604051808c81526020018b81526020018a81526020018981526020018881526020018715158152602001861515815260200185151581526020018481526020018381526020018281526020019b50505050505050505050505060405180910390f35b6108d2612529565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6109406004803603602081101561091457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061254f565b6040518082815260200191505060405180910390f35b6109986004803603602081101561096c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612567565b604051808381526020018281526020019250505060405180910390f35b610a01600480360360408110156109cb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506126b6565b6040518082815260200191505060405180910390f35b610a1f6127ec565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610a53612812565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610a93578082015181840152602081019050610a78565b50505050905090810190601f168015610ac05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610afa60048036036020811015610ae457600080fd5b81019080803590602001909291905050506128b0565b005b610b04612b36565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610b7260048036036020811015610b4657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612b5c565b604051808e81526020018d73ffffffffffffffffffffffffffffffffffffffff1681526020018c81526020018b81526020018a81526020018981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019d505050505050505050505050505060405180910390f35b610c3e60048036036040811015610c0857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612be2565b60405180821515815260200191505060405180910390f35b610c8260048036036020811015610c6c57600080fd5b8101908080359060200190929190505050612d71565b005b610cb060048036036020811015610c9a57600080fd5b8101908080359060200190929190505050612fd7565b005b610cf460048036036020811015610cc857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506132cc565b6040518082815260200191505060405180910390f35b610d6c60048036036040811015610d2057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506132ea565b6040518082815260200191505060405180910390f35b610dc460048036036020811015610d9857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061330f565b6040518082815260200191505060405180910390f35b610de261335b565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610e1661337f565b6040518082815260200191505060405180910390f35b610e6e60048036036020811015610e4257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061339e565b604051808381526020018281526020019250505060405180910390f35b610ed760048036036040811015610ea157600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506133c2565b60405180821515815260200191505060405180910390f35b6000610ef961337f565b670de0b6b3a7640000830281610f0b57fe5b049050919050565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610fa95780601f10610f7e57610100808354040283529160200191610fa9565b820191906000526020600020905b815481529060010190602001808311610f8c57829003601f168201915b505050505081565b600081606060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60096020528060005260406000206000915090508060000154908060010154908060020154905083565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6013816005811061110057fe5b016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b600c5481565b61113b336123f5565b611190576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180615abc6023913960400191505060405180910390fd5b61119933611e7f565b600080600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083815481106111e657fe5b906000526020600020906009020190508060050160009054906101000a900460ff166115c3578060030154421015801561122a575061012c60020281600301540142105b15611238576001915061123d565b600091505b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330600285600001548161128957fe5b046040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156112fa57600080fd5b505af115801561130e573d6000803e3d6000fd5b505050506040513d602081101561132457600080fd5b8101908080519060200190929190505050506001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020848154811061138257fe5b906000526020600020906009020160050160006101000a81548160ff02191690831515021790555060006113c360028360000154816113bd57fe5b04610eef565b905060028260000154816113d357fe5b04600b6000828254019250508190555080605f6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611525576064605a82028161145857fe5b04600a600082825401925050819055506114c4600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166064600a8502816114be57fe5b0461349b565b611520600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166064605a85028161151a57fe5b0461349b565b611585565b80600a60008282540392505081905550611584601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168361349b565b5b826115c15742826004018190555061012c6014024201826007018190555060018260050160016101000a81548160ff0219169083151502179055505b505b505050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156116745750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b80156116ce5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b611740576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f4163636573732044656e6965640000000000000000000000000000000000000081525060200191505060405180910390fd5b600081605f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156117f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f496e73756666696369656e7420746f6b656e2062616c616e636521000000000081525060200191505060405180910390fd5b60006064600284028161180657fe5b0490506a084595161401484a00000081600c5401111561183357600c546a084595161401484a0000000390505b60008111156119f9576000818403905061184c8161246a565b925080600a6000828254019250508190555082600b600082825403925050819055506118778161246a565b92506118a633601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168361349b565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33856040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561193757600080fd5b505af115801561194b573d6000803e3d6000fd5b505050506040513d602081101561196157600080fd5b81019080805190602001909291905050505081600c6000828254019250508190555061198d33836135eb565b600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a350611b2a565b611a028361246a565b915082600a6000828254019250508190555081600b60008282540392505081905550611a2d8361246a565b9150611a5c33601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168561349b565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611aed57600080fd5b505af1158015611b01573d6000803e3d6000fd5b505050506040513d6020811015611b1757600080fd5b8101908080519060200190929190505050505b3373ffffffffffffffffffffffffffffffffffffffff167f77f92a1b6a1a11de8ca49515ad4c1fad45632dd3442167d74b90b304a3c7a7588484604051808381526020018281526020019250505060405180910390a2505050565b6000606060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115611c1057600080fd5b611c1b33848461349b565b81606060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550600190509392505050565b6000611cbb82610eef565b9050611cea33600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168361349b565b600282029150600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600601548210158015611d4b57506802b5e3af16b18800008210155b8015611d69575060006802b5e3af16b18800008381611d6657fe5b06145b8015611d7f575069010f0cf064dd592000008211155b611df1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f6c657373207468616e206d696e0000000000000000000000000000000000000081525060200191505060405180910390fd5b611dfa336123f5565b611e4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180615abc6023913960400191505060405180910390fd5b611e5833611e7f565b611e6233836137e1565b5050565b600460009054906101000a900460ff1681565b601d5481565b60005b600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050811015611f9a576000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110611f1857fe5b906000526020600020906009020190508060050160009054906101000a900460ff16158015611f5557508060050160019054906101000a900460ff165b15611f8c5761012c600202816003015401421115611f8b5760008160050160016101000a81548160ff0219169083151502179055505b5b508080600101915050611e82565b5050565b611fa83382613d8a565b50565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611fdc82611e7f565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154148061206f57506001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154145b1561210557600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101546002600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154020390506123e4565b6002600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154148061219857506003600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154145b1561222e57600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101546003600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154020390506123e4565b6004600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414806122c157506005600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154145b1561235757600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101546004600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154020390506123e4565b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101546005600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154020390505b919050565b600b5481565b600a5481565b600080600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414159050919050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a764000061247d61337f565b83028161248657fe5b049050919050565b600860205281600052604060002081815481106124a757fe5b9060005260206000209060090201600091509150508060000154908060010154908060020154908060030154908060040154908060050160009054906101000a900460ff16908060050160019054906101000a900460ff16908060050160029054906101000a900460ff1690806006015490806007015490806008015490508b565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b605f6020528060005260406000206000915090505481565b600080600080600080600090505b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401805490508110156126a2576000600160056000600560008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401858154811061261757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154019050808301925084811115612694578094505b508080600101915050612575565b508281039150828294509450505050915091565b6000806000905060005b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401805490508110156127e1578360066000600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401848154811061275f57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154106127d4576001820191505b80806001019150506126c0565b508091505092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156128a85780601f1061287d576101008083540402835291602001916128a8565b820191906000526020600020905b81548152906001019060200180831161288b57829003601f168201915b505050505081565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612973576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f4f6e6c7920636f6e7472616374206f776e65720000000000000000000000000081525060200191505060405180910390fd5b6312cc0300601e540142116129f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4c6971756964697479204c6f636b656420666f7220313020796561727300000081525060200191505060405180910390fd5b60008111612a66576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f496e73756666696369656e742072657761726420746f2077697468647261772181525060200191505060405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612af757600080fd5b505af1158015612b0b573d6000803e3d6000fd5b505050506040513d6020811015612b2157600080fd5b81019080805190602001909291905050505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60056020528060005260406000206000915090508060000154908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600201549080600301549080600501549080600601549080600701549080600801549080600901549080600a01549080600b01549080600c01549080600d015490508d565b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015612c905750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b8015612cea5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b612d5c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f4163636573732044656e6965640000000000000000000000000000000000000081525060200191505060405180910390fd5b612d6733848461349b565b6001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015612e2057600080fd5b505af1158015612e34573d6000803e3d6000fd5b505050506040513d6020811015612e4a57600080fd5b810190808051906020019092919050505050600281029050600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600601548110158015612ebd57506802b5e3af16b18800008110155b8015612edb575060006802b5e3af16b18800008281612ed857fe5b06145b8015612ef1575069010f0cf064dd592000008111155b612f63576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f6c657373207468616e206d696e0000000000000000000000000000000000000081525060200191505060405180910390fd5b612f6c336123f5565b612fc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180615abc6023913960400191505060405180910390fd5b612fca33611e7f565b612fd433826141fa565b50565b6000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811061302357fe5b906000526020600020906009020190508060050160019054906101000a900460ff16801561305f57508060050160009054906101000a900460ff165b801561306e5750428160070154105b156132c857600061307f338461495f565b9050600061308b61337f565b905081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206008016000828254019250508190555081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600c01600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fd37adea57de2e02e4fdb7fee1f759f58571fbe14c10408e0d894042689edb7128460018060405180848152602001838152602001828152602001935050505060405180910390a361012c600a8460080154020283600701600082825401925050819055506001836008016000828254019250508190555081836001018190555081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600d016000828254019250508190555061326c600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff163383670de0b6b3a764000086028161326657fe5b0461349b565b613277338383614b01565b3373ffffffffffffffffffffffffffffffffffffffff167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364836040518082815260200191505060405180910390a250505b5050565b60066020528060005260406000206000915090508060000154905081565b6060602052816000526040600020602052806000526040600020600091509150505481565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600a54670de0b6b3a7640000600b54028161339857fe5b04905090565b60076020528060005260406000206000915090508060000154908060010154905082565b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613487576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f4163636573732044656e6965640000000000000000000000000000000000000081525060200191505060405180910390fd5b61349182846135eb565b6001905092915050565b80605f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156134e757600080fd5b80605f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555080605f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613671576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615a9b6021913960400191505060405180910390fd5b6000605f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561370e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180615a796022913960400191505060405180910390fd5b816003541015613786576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f496e76616c696420616d6f756e74206f6620746f6b656e73210000000000000081525060200191505060405180910390fd5b818103605f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600360008282540392505081905550505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600701600082825401925050819055506000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206005015414156139e857600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008154809291906001019190505550600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401839080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506139e3336001614f64565b6139f4565b6139f3336000614f64565b5b81600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206005016000828254019250508190555081600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001600082825401925050819055506000613a9e61337f565b90506000613ab560028581613aaf57fe5b04610eef565b905083600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060181905550600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518061016001604052808681526020016000815260200142815260200161012c600f02420181526020014281526020016000151581526020016001151581526020016000151581526020016064815260200161012c6014024201815260200160028152509080600181540180825580915050600190039060005260206000209060090201600090919091909150600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a08201518160050160006101000a81548160ff02191690831515021790555060c08201518160050160016101000a81548160ff02191690831515021790555060e08201518160050160026101000a81548160ff021916908315150217905550610100820151816006015561012082015181600701556101408201518160080155505060005b6005811015613d1357613d06600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660138360058110613cc057fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661271060188560058110613cf257fe5b0154600287020281613d0057fe5b0461349b565b8080600101915050613c84565b50613d1f858584614b01565b613d2a858584615187565b8473ffffffffffffffffffffffffffffffffffffffff167f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a158560028402604051808381526020018281526020019250505060405180910390a25050505050565b613d93826123f5565b15613e06576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f757365722065786973747300000000000000000000000000000000000000000081525060200191505060405180910390fd5b613e0f816123f5565b613e81576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f7265666572726572206e6f74206578697374730000000000000000000000000081525060200191505060405180910390fd5b613e8961592e565b604051806101c00160405280601d5481526020018373ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600067ffffffffffffffff81118015613edf57600080fd5b50604051908082528060200260200182016040528015613f0e5781602001602082028036833780820191505090505b50815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815250905080600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604082015181600201556060820151816003015560808201518160040190805190602001906140149291906159b3565b5060a0820151816005015560c0820151816006015560e082015181600701556101008201518160080155610120820151816009015561014082015181600a015561016082015181600b015561018082015181600c01556101a082015181600d015590505081600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601d60008154809291906001019190505550600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001548273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f309bb360e8b69c23937ccc5fb01f9aeeead1c95a99604e175113ff82f2b1723a600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546040518082815260200191505060405180910390a4505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600701600082825401925050819055506000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050154141561440157600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008154809291906001019190505550600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401839080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506143fc336001614f64565b61440d565b61440c336000614f64565b5b81600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206005016000828254019250508190555081600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000828254019250508190555060006144b761337f565b905060006144ce600285816144c857fe5b04610eef565b9050600284816144da57fe5b04600b6000828254019250508190555080605f6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061462c576064605a82028161455f57fe5b04600a600082825401925050819055506145cb600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166064600a8502816145c557fe5b0461349b565b614627600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166064605a85028161462157fe5b0461349b565b61468c565b80600a6000828254039250508190555061468b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168361349b565b5b83600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060181905550600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518061016001604052808681526020016000815260200142815260200161012c600f02420181526020014281526020016000151581526020016001151581526020016001151581526020016064815260200161012c6014024201815260200160028152509080600181540180825580915050600190039060005260206000209060090201600090919091909150600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a08201518160050160006101000a81548160ff02191690831515021790555060c08201518160050160016101000a81548160ff02191690831515021790555060e08201518160050160026101000a81548160ff021916908315150217905550610100820151816006015561012082015181600701556101408201518160080155505060005b60058110156148e8576148db600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166013836005811061489557fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612710601885600581106148c757fe5b01546002870202816148d557fe5b0461349b565b8080600101915050614859565b506148f4858584614b01565b6148ff858584615187565b8473ffffffffffffffffffffffffffffffffffffffff167f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a158560028402604051808381526020018281526020019250505060405180910390a25050505050565b600080600090506000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002084815481106149b257fe5b9060005260206000209060090201905060003073ffffffffffffffffffffffffffffffffffffffff16634bdf3bf2876040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015614a2d57600080fd5b505af1158015614a41573d6000803e3d6000fd5b505050506040513d6020811015614a5757600080fd5b810190808051906020019092919050505090506000811115614ad757600061012c836004015484600701540381614a8a57fe5b04905060c8811115614a9b5760c890505b60006127108285600601548660000154020281614ab457fe5b04905080831015614ac3578290505b6000811115614ad0578094505b5050614af5565b60018260050160016101000a81548160ff0219169083151502179055505b82935050505092915050565b6000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060005b60158160ff161015614f5d57600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614614f4b57604a8160ff1660158110614bbb57fe5b0154600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410614ee1576000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600501541115614ee057600061271060208360ff1660158110614c6557fe5b0154860281614c7057fe5b04905060003073ffffffffffffffffffffffffffffffffffffffff16634bdf3bf2856040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015614cde57600080fd5b505af1158015614cf2573d6000803e3d6000fd5b505050506040513d6020811015614d0857600080fd5b810190808051906020019092919050505090506000811115614edd5781811015614d30578091505b81600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206009016000828254019250508190555081600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600c016000828254019250508190555081600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008282540192505081905550614e60600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168587670de0b6b3a7640000860281614e5a57fe5b0461349b565b8673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fd37adea57de2e02e4fdb7fee1f759f58571fbe14c10408e0d894042689edb71284600187016002604051808481526020018360ff168152602001828152602001935050505060405180910390a35b50505b5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150614f50565b614f5d565b8080600101915050614b6b565b5050505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060005b601581101561518157600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461516f5760018314156150a1576001600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003015401600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301819055505b6150aa82615712565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561510557615181565b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150615174565b615181565b8080600101915050614fce565b50505050565b6000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008060008060005b60328160ff16101561570757600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16146156f5576005600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414806152c9575060068060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154145b1561568b5760008514156153445760068060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414156153325760029250600191506005945061533f565b6001925060029150600694505b615397565b84600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141561539657819250600193505b5b600083111561568a5760006064848a02816153ae57fe5b0490506000935060003073ffffffffffffffffffffffffffffffffffffffff16634bdf3bf2896040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561542057600080fd5b505af1158015615434573d6000803e3d6000fd5b505050506040513d602081101561544a57600080fd5b81019080805190602001909291905050509050600081111561561f5781811015615472578091505b81600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600a016000828254019250508190555081600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600c016000828254019250508190555081600760008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825401925050819055506155a2600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16898b670de0b6b3a764000086028161559c57fe5b0461349b565b8a73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fd37adea57de2e02e4fdb7fee1f759f58571fbe14c10408e0d894042689edb71284600187016003604051808481526020018360ff168152602001828152602001935050505060405180910390a35b600186148061567b5750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16145b15615687575050615707565b50505b5b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1695506156fa565b615707565b80806001019150506151f7565b505050505050505050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015490506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206007015490506000600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050600181101580156157f85750600681105b156158b3576000600182019050600061581086612567565b91505060006158208760016126b6565b90506009600084815260200190815260200160002060010154811015801561585e575060096000848152602001908152602001600020600201548210155b156158ab5782600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505b505050615928565b600583101580156158cd5750683635c9adc5dea000008210155b80156158d95750600081145b15615927576001600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505b5b50505050565b604051806101c0016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001606081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b828054828255906000526020600020908101928215615a2c579160200282015b82811115615a2b5782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550916020019190600101906159d3565b5b509050615a399190615a3d565b5090565b5b80821115615a7457600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101615a3e565b509056fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737375736572206973206e6f74206578697374732e2052656769737465722066697273742ea26469706673582212208713c6ba44696a81192d1d40110fd9a46662f586b82683a679f01dbfdbd85d9d64736f6c634300060c0033000000000000000000000000567c50f9571ec31efc9c02d3b9a7510195a9976f
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106102695760003560e01c8063517999bc11610151578063a87430ba116100c3578063dd62ed3e11610087578063dd62ed3e14610d0a578063de6b8a2e14610d82578063f4b9fa7514610dda578063f571545b14610e0e578063fa96bd9c14610e2c578063fcd3533c14610e8b57610269565b8063a87430ba14610b30578063a9059cbb14610bf2578063b6b55f2514610c56578063b842f3b614610c84578063d9f01b7d14610cb257610269565b806371c757ec1161011557806371c757ec146109565780637fe0c526146109b55780639351a77a14610a1757806395d89b4114610a4b5780639e1c7a9f14610ace578063a8365d1614610afc57610269565b8063517999bc146107a657806358cbcb7c146107da57806360a1cbd71461081c578063665a11ca146108ca57806370a08231146108fe57610269565b806323b872dd116101ea5780634420e486116101ae5780634420e4861461064057806345653a6d146106845780634bdf3bf2146106b85780634c0cc366146107105780634d79348a1461072e578063509222cd1461074c57610269565b806323b872dd1461050b5780632f0577291461058f578063313ce567146105bd578063348d4487146105de57806338c87f1a146105fc57610269565b806310d931011161023157806310d931011461041b57806318160ddd1461047357806320bdc7c714610491578063222f6182146104af5780632280b7a8146104dd57610269565b806302fd7a031461026e57806306fdde03146102b0578063095ea7b31461033357806309be8468146103975780630f322373146103e7575b600080fd5b61029a6004803603602081101561028457600080fd5b8101908080359060200190929190505050610eef565b6040518082815260200191505060405180910390f35b6102b8610f13565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102f85780820151818401526020810190506102dd565b50505050905090810190601f1680156103255780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61037f6004803603604081101561034957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610fb1565b60405180821515815260200191505060405180910390f35b6103c3600480360360208110156103ad57600080fd5b81019080803590602001909291905050506110a3565b60405180848152602001838152602001828152602001935050505060405180910390f35b6103ef6110cd565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104476004803603602081101561043157600080fd5b81019080803590602001909291905050506110f3565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61047b611126565b6040518082815260200191505060405180910390f35b61049961112c565b6040518082815260200191505060405180910390f35b6104db600480360360208110156104c557600080fd5b8101908080359060200190929190505050611132565b005b610509600480360360208110156104f357600080fd5b81019080803590602001909291905050506115c8565b005b6105776004803603606081101561052157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b85565b60405180821515815260200191505060405180910390f35b6105bb600480360360208110156105a557600080fd5b8101908080359060200190929190505050611cb0565b005b6105c5611e66565b604051808260ff16815260200191505060405180910390f35b6105e6611e79565b6040518082815260200191505060405180910390f35b61063e6004803603602081101561061257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e7f565b005b6106826004803603602081101561065657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f9e565b005b61068c611fab565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106fa600480360360208110156106ce57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611fd1565b6040518082815260200191505060405180910390f35b6107186123e9565b6040518082815260200191505060405180910390f35b6107366123ef565b6040518082815260200191505060405180910390f35b61078e6004803603602081101561076257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123f5565b60405180821515815260200191505060405180910390f35b6107ae612444565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610806600480360360208110156107f057600080fd5b810190808035906020019092919050505061246a565b6040518082815260200191505060405180910390f35b6108686004803603604081101561083257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061248e565b604051808c81526020018b81526020018a81526020018981526020018881526020018715158152602001861515815260200185151581526020018481526020018381526020018281526020019b50505050505050505050505060405180910390f35b6108d2612529565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6109406004803603602081101561091457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061254f565b6040518082815260200191505060405180910390f35b6109986004803603602081101561096c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612567565b604051808381526020018281526020019250505060405180910390f35b610a01600480360360408110156109cb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506126b6565b6040518082815260200191505060405180910390f35b610a1f6127ec565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610a53612812565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610a93578082015181840152602081019050610a78565b50505050905090810190601f168015610ac05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610afa60048036036020811015610ae457600080fd5b81019080803590602001909291905050506128b0565b005b610b04612b36565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610b7260048036036020811015610b4657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612b5c565b604051808e81526020018d73ffffffffffffffffffffffffffffffffffffffff1681526020018c81526020018b81526020018a81526020018981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019d505050505050505050505050505060405180910390f35b610c3e60048036036040811015610c0857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612be2565b60405180821515815260200191505060405180910390f35b610c8260048036036020811015610c6c57600080fd5b8101908080359060200190929190505050612d71565b005b610cb060048036036020811015610c9a57600080fd5b8101908080359060200190929190505050612fd7565b005b610cf460048036036020811015610cc857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506132cc565b6040518082815260200191505060405180910390f35b610d6c60048036036040811015610d2057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506132ea565b6040518082815260200191505060405180910390f35b610dc460048036036020811015610d9857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061330f565b6040518082815260200191505060405180910390f35b610de261335b565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610e1661337f565b6040518082815260200191505060405180910390f35b610e6e60048036036020811015610e4257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061339e565b604051808381526020018281526020019250505060405180910390f35b610ed760048036036040811015610ea157600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506133c2565b60405180821515815260200191505060405180910390f35b6000610ef961337f565b670de0b6b3a7640000830281610f0b57fe5b049050919050565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610fa95780601f10610f7e57610100808354040283529160200191610fa9565b820191906000526020600020905b815481529060010190602001808311610f8c57829003601f168201915b505050505081565b600081606060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60096020528060005260406000206000915090508060000154908060010154908060020154905083565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6013816005811061110057fe5b016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b600c5481565b61113b336123f5565b611190576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180615abc6023913960400191505060405180910390fd5b61119933611e7f565b600080600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083815481106111e657fe5b906000526020600020906009020190508060050160009054906101000a900460ff166115c3578060030154421015801561122a575061012c60020281600301540142105b15611238576001915061123d565b600091505b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330600285600001548161128957fe5b046040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156112fa57600080fd5b505af115801561130e573d6000803e3d6000fd5b505050506040513d602081101561132457600080fd5b8101908080519060200190929190505050506001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020848154811061138257fe5b906000526020600020906009020160050160006101000a81548160ff02191690831515021790555060006113c360028360000154816113bd57fe5b04610eef565b905060028260000154816113d357fe5b04600b6000828254019250508190555080605f6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611525576064605a82028161145857fe5b04600a600082825401925050819055506114c4600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166064600a8502816114be57fe5b0461349b565b611520600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166064605a85028161151a57fe5b0461349b565b611585565b80600a60008282540392505081905550611584601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168361349b565b5b826115c15742826004018190555061012c6014024201826007018190555060018260050160016101000a81548160ff0219169083151502179055505b505b505050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156116745750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b80156116ce5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b611740576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f4163636573732044656e6965640000000000000000000000000000000000000081525060200191505060405180910390fd5b600081605f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156117f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f496e73756666696369656e7420746f6b656e2062616c616e636521000000000081525060200191505060405180910390fd5b60006064600284028161180657fe5b0490506a084595161401484a00000081600c5401111561183357600c546a084595161401484a0000000390505b60008111156119f9576000818403905061184c8161246a565b925080600a6000828254019250508190555082600b600082825403925050819055506118778161246a565b92506118a633601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168361349b565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33856040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561193757600080fd5b505af115801561194b573d6000803e3d6000fd5b505050506040513d602081101561196157600080fd5b81019080805190602001909291905050505081600c6000828254019250508190555061198d33836135eb565b600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a350611b2a565b611a028361246a565b915082600a6000828254019250508190555081600b60008282540392505081905550611a2d8361246a565b9150611a5c33601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168561349b565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611aed57600080fd5b505af1158015611b01573d6000803e3d6000fd5b505050506040513d6020811015611b1757600080fd5b8101908080519060200190929190505050505b3373ffffffffffffffffffffffffffffffffffffffff167f77f92a1b6a1a11de8ca49515ad4c1fad45632dd3442167d74b90b304a3c7a7588484604051808381526020018281526020019250505060405180910390a2505050565b6000606060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115611c1057600080fd5b611c1b33848461349b565b81606060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550600190509392505050565b6000611cbb82610eef565b9050611cea33600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168361349b565b600282029150600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600601548210158015611d4b57506802b5e3af16b18800008210155b8015611d69575060006802b5e3af16b18800008381611d6657fe5b06145b8015611d7f575069010f0cf064dd592000008211155b611df1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f6c657373207468616e206d696e0000000000000000000000000000000000000081525060200191505060405180910390fd5b611dfa336123f5565b611e4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180615abc6023913960400191505060405180910390fd5b611e5833611e7f565b611e6233836137e1565b5050565b600460009054906101000a900460ff1681565b601d5481565b60005b600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050811015611f9a576000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110611f1857fe5b906000526020600020906009020190508060050160009054906101000a900460ff16158015611f5557508060050160019054906101000a900460ff165b15611f8c5761012c600202816003015401421115611f8b5760008160050160016101000a81548160ff0219169083151502179055505b5b508080600101915050611e82565b5050565b611fa83382613d8a565b50565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611fdc82611e7f565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154148061206f57506001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154145b1561210557600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101546002600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154020390506123e4565b6002600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154148061219857506003600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154145b1561222e57600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101546003600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154020390506123e4565b6004600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414806122c157506005600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154145b1561235757600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101546004600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154020390506123e4565b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101546005600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154020390505b919050565b600b5481565b600a5481565b600080600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414159050919050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a764000061247d61337f565b83028161248657fe5b049050919050565b600860205281600052604060002081815481106124a757fe5b9060005260206000209060090201600091509150508060000154908060010154908060020154908060030154908060040154908060050160009054906101000a900460ff16908060050160019054906101000a900460ff16908060050160029054906101000a900460ff1690806006015490806007015490806008015490508b565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b605f6020528060005260406000206000915090505481565b600080600080600080600090505b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401805490508110156126a2576000600160056000600560008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401858154811061261757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154019050808301925084811115612694578094505b508080600101915050612575565b508281039150828294509450505050915091565b6000806000905060005b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401805490508110156127e1578360066000600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401848154811061275f57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154106127d4576001820191505b80806001019150506126c0565b508091505092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156128a85780601f1061287d576101008083540402835291602001916128a8565b820191906000526020600020905b81548152906001019060200180831161288b57829003601f168201915b505050505081565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612973576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f4f6e6c7920636f6e7472616374206f776e65720000000000000000000000000081525060200191505060405180910390fd5b6312cc0300601e540142116129f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4c6971756964697479204c6f636b656420666f7220313020796561727300000081525060200191505060405180910390fd5b60008111612a66576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f496e73756666696369656e742072657761726420746f2077697468647261772181525060200191505060405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612af757600080fd5b505af1158015612b0b573d6000803e3d6000fd5b505050506040513d6020811015612b2157600080fd5b81019080805190602001909291905050505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60056020528060005260406000206000915090508060000154908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600201549080600301549080600501549080600601549080600701549080600801549080600901549080600a01549080600b01549080600c01549080600d015490508d565b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015612c905750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b8015612cea5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b612d5c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f4163636573732044656e6965640000000000000000000000000000000000000081525060200191505060405180910390fd5b612d6733848461349b565b6001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015612e2057600080fd5b505af1158015612e34573d6000803e3d6000fd5b505050506040513d6020811015612e4a57600080fd5b810190808051906020019092919050505050600281029050600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600601548110158015612ebd57506802b5e3af16b18800008110155b8015612edb575060006802b5e3af16b18800008281612ed857fe5b06145b8015612ef1575069010f0cf064dd592000008111155b612f63576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f6c657373207468616e206d696e0000000000000000000000000000000000000081525060200191505060405180910390fd5b612f6c336123f5565b612fc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180615abc6023913960400191505060405180910390fd5b612fca33611e7f565b612fd433826141fa565b50565b6000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811061302357fe5b906000526020600020906009020190508060050160019054906101000a900460ff16801561305f57508060050160009054906101000a900460ff165b801561306e5750428160070154105b156132c857600061307f338461495f565b9050600061308b61337f565b905081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206008016000828254019250508190555081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600c01600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fd37adea57de2e02e4fdb7fee1f759f58571fbe14c10408e0d894042689edb7128460018060405180848152602001838152602001828152602001935050505060405180910390a361012c600a8460080154020283600701600082825401925050819055506001836008016000828254019250508190555081836001018190555081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600d016000828254019250508190555061326c600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff163383670de0b6b3a764000086028161326657fe5b0461349b565b613277338383614b01565b3373ffffffffffffffffffffffffffffffffffffffff167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364836040518082815260200191505060405180910390a250505b5050565b60066020528060005260406000206000915090508060000154905081565b6060602052816000526040600020602052806000526040600020600091509150505481565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600a54670de0b6b3a7640000600b54028161339857fe5b04905090565b60076020528060005260406000206000915090508060000154908060010154905082565b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613487576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f4163636573732044656e6965640000000000000000000000000000000000000081525060200191505060405180910390fd5b61349182846135eb565b6001905092915050565b80605f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156134e757600080fd5b80605f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555080605f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613671576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615a9b6021913960400191505060405180910390fd5b6000605f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561370e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180615a796022913960400191505060405180910390fd5b816003541015613786576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f496e76616c696420616d6f756e74206f6620746f6b656e73210000000000000081525060200191505060405180910390fd5b818103605f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600360008282540392505081905550505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600701600082825401925050819055506000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206005015414156139e857600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008154809291906001019190505550600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401839080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506139e3336001614f64565b6139f4565b6139f3336000614f64565b5b81600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206005016000828254019250508190555081600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001600082825401925050819055506000613a9e61337f565b90506000613ab560028581613aaf57fe5b04610eef565b905083600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060181905550600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518061016001604052808681526020016000815260200142815260200161012c600f02420181526020014281526020016000151581526020016001151581526020016000151581526020016064815260200161012c6014024201815260200160028152509080600181540180825580915050600190039060005260206000209060090201600090919091909150600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a08201518160050160006101000a81548160ff02191690831515021790555060c08201518160050160016101000a81548160ff02191690831515021790555060e08201518160050160026101000a81548160ff021916908315150217905550610100820151816006015561012082015181600701556101408201518160080155505060005b6005811015613d1357613d06600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660138360058110613cc057fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661271060188560058110613cf257fe5b0154600287020281613d0057fe5b0461349b565b8080600101915050613c84565b50613d1f858584614b01565b613d2a858584615187565b8473ffffffffffffffffffffffffffffffffffffffff167f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a158560028402604051808381526020018281526020019250505060405180910390a25050505050565b613d93826123f5565b15613e06576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f757365722065786973747300000000000000000000000000000000000000000081525060200191505060405180910390fd5b613e0f816123f5565b613e81576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f7265666572726572206e6f74206578697374730000000000000000000000000081525060200191505060405180910390fd5b613e8961592e565b604051806101c00160405280601d5481526020018373ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600067ffffffffffffffff81118015613edf57600080fd5b50604051908082528060200260200182016040528015613f0e5781602001602082028036833780820191505090505b50815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815250905080600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604082015181600201556060820151816003015560808201518160040190805190602001906140149291906159b3565b5060a0820151816005015560c0820151816006015560e082015181600701556101008201518160080155610120820151816009015561014082015181600a015561016082015181600b015561018082015181600c01556101a082015181600d015590505081600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601d60008154809291906001019190505550600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001548273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f309bb360e8b69c23937ccc5fb01f9aeeead1c95a99604e175113ff82f2b1723a600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546040518082815260200191505060405180910390a4505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600701600082825401925050819055506000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050154141561440157600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008154809291906001019190505550600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401839080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506143fc336001614f64565b61440d565b61440c336000614f64565b5b81600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206005016000828254019250508190555081600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000828254019250508190555060006144b761337f565b905060006144ce600285816144c857fe5b04610eef565b9050600284816144da57fe5b04600b6000828254019250508190555080605f6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061462c576064605a82028161455f57fe5b04600a600082825401925050819055506145cb600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166064600a8502816145c557fe5b0461349b565b614627600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166064605a85028161462157fe5b0461349b565b61468c565b80600a6000828254039250508190555061468b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168361349b565b5b83600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060181905550600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518061016001604052808681526020016000815260200142815260200161012c600f02420181526020014281526020016000151581526020016001151581526020016001151581526020016064815260200161012c6014024201815260200160028152509080600181540180825580915050600190039060005260206000209060090201600090919091909150600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a08201518160050160006101000a81548160ff02191690831515021790555060c08201518160050160016101000a81548160ff02191690831515021790555060e08201518160050160026101000a81548160ff021916908315150217905550610100820151816006015561012082015181600701556101408201518160080155505060005b60058110156148e8576148db600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166013836005811061489557fe5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612710601885600581106148c757fe5b01546002870202816148d557fe5b0461349b565b8080600101915050614859565b506148f4858584614b01565b6148ff858584615187565b8473ffffffffffffffffffffffffffffffffffffffff167f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a158560028402604051808381526020018281526020019250505060405180910390a25050505050565b600080600090506000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002084815481106149b257fe5b9060005260206000209060090201905060003073ffffffffffffffffffffffffffffffffffffffff16634bdf3bf2876040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015614a2d57600080fd5b505af1158015614a41573d6000803e3d6000fd5b505050506040513d6020811015614a5757600080fd5b810190808051906020019092919050505090506000811115614ad757600061012c836004015484600701540381614a8a57fe5b04905060c8811115614a9b5760c890505b60006127108285600601548660000154020281614ab457fe5b04905080831015614ac3578290505b6000811115614ad0578094505b5050614af5565b60018260050160016101000a81548160ff0219169083151502179055505b82935050505092915050565b6000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060005b60158160ff161015614f5d57600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614614f4b57604a8160ff1660158110614bbb57fe5b0154600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410614ee1576000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600501541115614ee057600061271060208360ff1660158110614c6557fe5b0154860281614c7057fe5b04905060003073ffffffffffffffffffffffffffffffffffffffff16634bdf3bf2856040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015614cde57600080fd5b505af1158015614cf2573d6000803e3d6000fd5b505050506040513d6020811015614d0857600080fd5b810190808051906020019092919050505090506000811115614edd5781811015614d30578091505b81600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206009016000828254019250508190555081600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600c016000828254019250508190555081600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008282540192505081905550614e60600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168587670de0b6b3a7640000860281614e5a57fe5b0461349b565b8673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fd37adea57de2e02e4fdb7fee1f759f58571fbe14c10408e0d894042689edb71284600187016002604051808481526020018360ff168152602001828152602001935050505060405180910390a35b50505b5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150614f50565b614f5d565b8080600101915050614b6b565b5050505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060005b601581101561518157600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461516f5760018314156150a1576001600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003015401600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301819055505b6150aa82615712565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561510557615181565b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150615174565b615181565b8080600101915050614fce565b50505050565b6000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008060008060005b60328160ff16101561570757600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16146156f5576005600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414806152c9575060068060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154145b1561568b5760008514156153445760068060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414156153325760029250600191506005945061533f565b6001925060029150600694505b615397565b84600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141561539657819250600193505b5b600083111561568a5760006064848a02816153ae57fe5b0490506000935060003073ffffffffffffffffffffffffffffffffffffffff16634bdf3bf2896040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561542057600080fd5b505af1158015615434573d6000803e3d6000fd5b505050506040513d602081101561544a57600080fd5b81019080805190602001909291905050509050600081111561561f5781811015615472578091505b81600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600a016000828254019250508190555081600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600c016000828254019250508190555081600760008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825401925050819055506155a2600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16898b670de0b6b3a764000086028161559c57fe5b0461349b565b8a73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fd37adea57de2e02e4fdb7fee1f759f58571fbe14c10408e0d894042689edb71284600187016003604051808481526020018360ff168152602001828152602001935050505060405180910390a35b600186148061567b5750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16145b15615687575050615707565b50505b5b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1695506156fa565b615707565b80806001019150506151f7565b505050505050505050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015490506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206007015490506000600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050600181101580156157f85750600681105b156158b3576000600182019050600061581086612567565b91505060006158208760016126b6565b90506009600084815260200190815260200160002060010154811015801561585e575060096000848152602001908152602001600020600201548210155b156158ab5782600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505b505050615928565b600583101580156158cd5750683635c9adc5dea000008210155b80156158d95750600081145b15615927576001600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505b5b50505050565b604051806101c0016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001606081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b828054828255906000526020600020908101928215615a2c579160200282015b82811115615a2b5782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550916020019190600101906159d3565b5b509050615a399190615a3d565b5090565b5b80821115615a7457600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101615a3e565b509056fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737375736572206973206e6f74206578697374732e2052656769737465722066697273742ea26469706673582212208713c6ba44696a81192d1d40110fd9a46662f586b82683a679f01dbfdbd85d9d64736f6c634300060c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000567c50f9571ec31efc9c02d3b9a7510195a9976f
-----Decoded View---------------
Arg [0] : _daiAddr (address): 0x567C50F9571EC31eFC9C02d3B9a7510195A9976F
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000567c50f9571ec31efc9c02d3b9a7510195a9976f
Deployed Bytecode Sourcemap
822:26995:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20807:134;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;872:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26302:216;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;2321:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2901:67;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3004:158;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;940:43;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2557:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8582:1392;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24389:1373;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;26528:274;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;8067:509;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1009:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3226;;;:::i;:::-;;;;;;;;;;;;;;;;;;;21919:402;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6530:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2975:22;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;21222:691;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2512:38;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2465:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;22332:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;2589:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;20947:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2265:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2823:71;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4385:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19359:561;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;19926:357;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2742:70;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;905:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27481:333;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2657:78;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;2111:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25768:281;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7604:457;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23470:913;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2155:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4436:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;22452:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;848:17;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;21085:131;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2207:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;26814:199;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;20807:134;20869:7;20917:10;:8;:10::i;:::-;20912:4;20901:10;:15;:26;;;;;;20894:33;;20807:134;;;:::o;872:26::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;26302:216::-;26369:12;26428:6;26394:9;:21;26404:10;26394:21;;;;;;;;;;;;;;;:31;26416:8;26394:31;;;;;;;;;;;;;;;:40;;;;26471:8;26450:38;;26459:10;26450:38;;;26481:6;26450:38;;;;;;;;;;;;;;;;;;26506:4;26499:11;;26302:216;;;;:::o;2321:36::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2901:67::-;;;;;;;;;;;;;:::o;3004:158::-;;;;;;;;;;;;;;;;;;;;;;;:::o;940:43::-;;;;:::o;2557:25::-;;;;:::o;8582:1392::-;8646:24;8659:10;8646:12;:24::i;:::-;8638:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8721:28;8738:10;8721:16;:28::i;:::-;8761:10;8789:23;8815:10;:22;8826:10;8815:22;;;;;;;;;;;;;;;8838:11;8815:35;;;;;;;;;;;;;;;;;;8789:61;;8862:5;:12;;;;;;;;;;;;8858:1109;;8911:5;:17;;;8894:15;:34;;:82;;;;;3340:4;8966:1;:10;8948:5;:17;;;:28;8932:15;:44;8894:82;8891:183;;;9004:4;8998:10;;8891:183;;;9053:5;9047:11;;8891:183;9088:3;;;;;;;;;;:16;;;9105:10;9125:4;9145:1;9132:5;:12;;;:14;;;;;;9088:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9205:4;9162:10;:22;9173:10;9162:22;;;;;;;;;;;;;;;9185:11;9162:35;;;;;;;;;;;;;;;;;;:42;;;:47;;;;;;;;;;;;;;;;;;9224:14;9239:28;9265:1;9252:5;:12;;;:14;;;;;;9239:12;:28::i;:::-;9224:43;;9320:1;9307:5;:12;;;:14;;;;;;9282:23;;:39;;;;;;;;;;;9364:6;9339:9;:23;9349:12;;;;;;;;;;;9339:23;;;;;;;;;;;;;;;;:31;9336:430;;9428:3;9425:2;9418:6;:9;:13;;;;;;9391:25;;:40;;;;;;;;;;;9458:59;9468:12;;;;;;;;;;;9481:20;;;;;;;;;;;9513:3;9510:2;9503:6;:9;:13;;;;;;9458:9;:59::i;:::-;9537:52;9547:12;;;;;;;;;;;9560:13;;;;;;;;;;;9585:3;9582:2;9575:6;:9;:13;;;;;;9537:9;:52::i;:::-;9336:430;;;9670:6;9643:25;;:33;;;;;;;;;;;9697:53;9707:13;;;;;;;;;;;9721:20;;;;;;;;;;;9743:6;9697:9;:53::i;:::-;9336:430;9784:5;9780:182;;9827:15;9809:5;:17;;:33;;;;3340:4;9897:2;:11;9881:15;:27;9861:5;:19;;:47;;;;9942:4;9927:5;:14;;;:19;;;;;;;;;;;;;;;;;;9780:182;8858:1109;;8582:1392;;;:::o;24389:1373::-;24475:12;;;;;;;;;;;24461:26;;:10;:26;;;;:64;;;;;24505:20;;;;;;;;;;;24491:34;;:10;:34;;;;24461:64;:95;;;;;24543:13;;;;;;;;;;;24529:27;;:10;:27;;;;24461:95;24453:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24584:12;24632;24609:9;:21;24619:10;24609:21;;;;;;;;;;;;;;;;:35;;24601:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24688:17;24721:3;24719:1;24706:12;:14;:18;;;;;;24688:36;;24761:11;24750:9;24739:10;;:20;24738:34;24735:97;;;24810:10;;24798:11;:22;24788:32;;24735:97;24855:1;24845:9;:11;24842:863;;;24878:19;24911:9;24898:12;:22;24878:42;;24941:25;24954:11;24941:12;:25::i;:::-;24936:30;;25008:11;24981:25;;:38;;;;;;;;;;;25059:4;25034:23;;:29;;;;;;;;;;;25083:25;25096:11;25083:12;:25::i;:::-;25078:30;;25123:47;25133:10;25144:13;;;;;;;;;;;25158:11;25123:9;:47::i;:::-;25185:3;;;;;;;;;;:12;;;25198:10;25210:4;25185:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25243:9;25231:10;;:21;;;;;;;;;;;25267:27;25273:10;25284:9;25267:5;:27::i;:::-;25342:1;25314:42;;25323:10;25314:42;;;25346:9;25314:42;;;;;;;;;;;;;;;;;;24842:863;;;;25403:26;25416:12;25403;:26::i;:::-;25398:31;;25471:12;25444:25;;:39;;;;;;;;;;;25523:4;25498:23;;:29;;;;;;;;;;;25547:26;25560:12;25547;:26::i;:::-;25542:31;;25588:48;25598:10;25609:13;;;;;;;;;;;25623:12;25588:9;:48::i;:::-;25651:3;;;;;;;;;;:12;;;25664:10;25676:4;25651:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24842:863;25725:10;25720:34;;;25736:12;25749:4;25720:34;;;;;;;;;;;;;;;;;;;;;;;;24389:1373;;;:::o;26528:274::-;26608:12;26651:9;:16;26661:5;26651:16;;;;;;;;;;;;;;;:28;26668:10;26651:28;;;;;;;;;;;;;;;;26641:6;:38;;26633:47;;;;;;26691:32;26701:10;26712:3;26716:6;26691:9;:32::i;:::-;26766:6;26734:9;:16;26744:5;26734:16;;;;;;;;;;;;;;;:28;26751:10;26734:28;;;;;;;;;;;;;;;;:38;;;;;;;;;;;26790:4;26783:11;;26528:274;;;;;:::o;8067:509::-;8124:14;8139:21;8152:7;8139:12;:21::i;:::-;8124:36;;8171:49;8181:10;8192:20;;;;;;;;;;;8213:6;8171:9;:49::i;:::-;8247:1;8239:7;:9;8231:17;;8278:5;:17;8284:10;8278:17;;;;;;;;;;;;;;;:29;;;8267:7;:40;;:65;;;;;2402:5;8311:7;:21;;8267:65;:92;;;;;8358:1;2402:5;8336:7;:18;;;;;;:23;8267:92;:117;;;;;2451:7;8363;:21;;8267:117;8259:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8421:24;8434:10;8421:12;:24::i;:::-;8413:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8496:28;8513:10;8496:16;:28::i;:::-;8537:31;8549:10;8560:7;8537:11;:31::i;:::-;8067:509;;:::o;1009:26::-;;;;;;;;;;;;;:::o;3226:::-;;;;:::o;21919:402::-;21982:9;21978:333;22001:10;:17;22012:5;22001:17;;;;;;;;;;;;;;;:24;;;;21997:1;:28;21978:333;;;22043:23;22069:10;:17;22080:5;22069:17;;;;;;;;;;;;;;;22087:1;22069:20;;;;;;;;;;;;;;;;;;22043:46;;22108:5;:12;;;;;;;;;;;;22107:13;:31;;;;;22124:5;:14;;;;;;;;;;;;22107:31;22104:196;;;3340:4;22203:1;:10;22185:5;:17;;;:28;22169:15;:44;22166:120;;;22261:5;22246;:14;;;:20;;;;;;;;;;;;;;;;;;22166:120;22104:196;21978:333;22027:3;;;;;;;21978:333;;;;21919:402;:::o;6530:121::-;6602:41;6615:10;6627:15;6602:12;:41::i;:::-;6530:121;:::o;2975:22::-;;;;;;;;;;;;;:::o;21222:691::-;21275:7;21299:23;21316:5;21299:16;:23::i;:::-;21363:1;21340:9;:16;21350:5;21340:16;;;;;;;;;;;;;;;:21;;;:24;:52;;;;21391:1;21368:9;:16;21378:5;21368:16;;;;;;;;;;;;;;;:21;;;:24;21340:52;21337:568;;;21450:12;:19;21463:5;21450:19;;;;;;;;;;;;;;;:30;;;21448:1;21415:12;:19;21428:5;21415:19;;;;;;;;;;;;;;;:32;;;:34;:65;21407:74;;;;21337:568;21523:1;21500:9;:16;21510:5;21500:16;;;;;;;;;;;;;;;:21;;;:24;:52;;;;21551:1;21528:9;:16;21538:5;21528:16;;;;;;;;;;;;;;;:21;;;:24;21500:52;21497:408;;;21610:12;:19;21623:5;21610:19;;;;;;;;;;;;;;;:30;;;21608:1;21575:12;:19;21588:5;21575:19;;;;;;;;;;;;;;;:32;;;:34;:65;21567:74;;;;21497:408;21683:1;21660:9;:16;21670:5;21660:16;;;;;;;;;;;;;;;:21;;;:24;:52;;;;21711:1;21688:9;:16;21698:5;21688:16;;;;;;;;;;;;;;;:21;;;:24;21660:52;21657:248;;;21770:12;:19;21783:5;21770:19;;;;;;;;;;;;;;;:30;;;21768:1;21735:12;:19;21748:5;21735:19;;;;;;;;;;;;;;;:32;;;:34;:65;21727:74;;;;21657:248;21874:12;:19;21887:5;21874:19;;;;;;;;;;;;;;;:30;;;21872:1;21839:12;:19;21852:5;21839:19;;;;;;;;;;;;;;;:32;;;:34;:65;21831:74;;21222:691;;;;:::o;2512:38::-;;;;:::o;2465:40::-;;;;:::o;22332:110::-;22389:4;22432:1;22414:5;:11;22420:4;22414:11;;;;;;;;;;;;;;;:14;;;:19;;22406:28;;22332:110;;;:::o;2589:61::-;;;;;;;;;;;;;:::o;20947:126::-;21008:4;21061;21050:10;:8;:10::i;:::-;21037:12;:23;:28;;;;;;21030:35;;20947:126;;;:::o;2265:49::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2823:71::-;;;;;;;;;;;;;:::o;4385:44::-;;;;;;;;;;;;;;;;;:::o;19359:561::-;19416:7;19425;19452:15;19478:17;19506;19538:9;19550:1;19538:13;;19534:302;19557:5;:12;19563:5;19557:12;;;;;;;;;;;;;;;:22;;:29;;;;19553:1;:33;19534:302;;;19607:21;19673:1;19630:5;:32;19636:5;:12;19642:5;19636:12;;;;;;;;;;;;;;;:22;;19659:1;19636:25;;;;;;;;;;;;;;;;;;;;;;;;;19630:32;;;;;;;;;;;;;;;:42;;;:44;19607:67;;19712:13;19701:24;;;;19759:7;19743:13;:23;19740:85;;;19796:13;19786:23;;19740:85;19534:302;19588:3;;;;;;;19534:302;;;;19868:7;19858:9;:17;19846:29;;19893:7;19902:9;19886:26;;;;;;;19359:561;;;:::o;19926:357::-;19996:7;20023:20;20044:1;20023:22;;20060:9;20056:190;20079:5;:12;20085:5;20079:12;;;;;;;;;;;;;;;:22;;:29;;;;20075:1;:33;20056:190;;;20177:5;20132:9;:36;20142:5;:12;20148:5;20142:12;;;;;;;;;;;;;;;:22;;20165:1;20142:25;;;;;;;;;;;;;;;;;;;;;;;;;20132:36;;;;;;;;;;;;;;;:41;;;:50;20129:106;;20218:1;20202:17;;;;20129:106;20110:3;;;;;;;20056:190;;;;20263:12;20256:19;;;19926:357;;;;:::o;2742:70::-;;;;;;;;;;;;;:::o;905:28::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;27481:333::-;27566:7;;;;;;;;;;;27554:19;;:10;:19;;;27546:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27651:9;27633:17;;:27;27616:15;:45;27608:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27722:1;27714:7;:9;27706:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27771:3;;;;;;;;;;:12;;;27784:10;27796:7;27771:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27481:333;:::o;2657:78::-;;;;;;;;;;;;;:::o;2111:37::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;25768:281::-;25831:12;25878;;;;;;;;;;;25864:26;;:10;:26;;;;:64;;;;;25908:20;;;;;;;;;;;25894:34;;:10;:34;;;;25864:64;:95;;;;;25946:13;;;;;;;;;;;25932:27;;:10;:27;;;;25864:95;25856:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25987:32;25997:10;26008:3;26012:6;25987:9;:32::i;:::-;26037:4;26030:11;;25768:281;;;;:::o;7604:457::-;7658:3;;;;;;;;;;:16;;;7675:10;7694:4;7700:7;7658:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7735:1;7727:7;:9;7719:17;;7766:5;:17;7772:10;7766:17;;;;;;;;;;;;;;;:29;;;7755:7;:40;;:65;;;;;2402:5;7799:7;:21;;7755:65;:92;;;;;7846:1;2402:5;7824:7;:18;;;;;;:23;7755:92;:117;;;;;2451:7;7851;:21;;7755:117;7747:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7909:24;7922:10;7909:12;:24::i;:::-;7901:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7984:28;8001:10;7984:16;:28::i;:::-;8025;8034:10;8045:7;8025:8;:28::i;:::-;7604:457;:::o;23470:913::-;23529:23;23555:10;:22;23566:10;23555:22;;;;;;;;;;;;;;;23578:11;23555:35;;;;;;;;;;;;;;;;;;23529:61;;23598:5;:14;;;;;;;;;;;;:30;;;;;23616:5;:12;;;;;;;;;;;;23598:30;:69;;;;;23652:15;23632:5;:19;;;:35;23598:69;23595:781;;;23684:19;23705:37;23719:10;23730:11;23705:13;:37::i;:::-;23683:59;;23758:13;23772:10;:8;:10::i;:::-;23758:24;;23818:11;23791:5;:17;23797:10;23791:17;;;;;;;;;;;;;;;:24;;;:38;;;;;;;;;;;23870:11;23838:5;:17;23844:10;23838:17;;;;;;;;;;;;;;;:29;;;:43;;;;;;;;;;;23924:10;23901:50;;23913:10;23901:50;;;23935:11;23947:1;23949;23901:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3340:4;23994:2;23980:5;:12;;;23979:17;:26;23958:5;:19;;;:47;;;;;;;;;;;24038:1;24024:5;:12;;;:15;;;;;;;;;;;24073:11;24054:5;:18;;:30;;;;24146:11;24113:5;:17;24119:10;24113:17;;;;;;;;;;;;;;;:31;;;:44;;;;;;;;;;;24172:65;24182:20;;;;;;;;;;;24203:10;24231:5;24226:4;24214:11;:16;:22;;;;;;24172:9;:65::i;:::-;24252:52;24275:10;24286:11;24298:5;24252:22;:52::i;:::-;24347:10;24338:32;;;24358:11;24338:32;;;;;;;;;;;;;;;;;;23595:781;;;23470:913;;:::o;2155:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;4436:64::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;22452:120::-;22513:7;22540:10;:17;22551:5;22540:17;;;;;;;;;;;;;;;:24;;;;22533:31;;22452:120;;;:::o;848:17::-;;;;;;;;;;;;:::o;21085:131::-;21125:4;21183:25;;21178:4;21154:23;;:28;:54;;;;;;21147:61;;21085:131;:::o;2207:51::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;26814:199::-;26876:4;26911:12;;;;;;;;;;;26897:26;;:10;:26;;;26893:58;;26926:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26893:58;26961:22;26967:7;26976:6;26961:5;:22::i;:::-;27001:4;26994:11;;26814:199;;;;:::o;26055:241::-;26165:6;26145:9;:16;26155:5;26145:16;;;;;;;;;;;;;;;;:26;;26137:35;;;;;;26203:6;26183:9;:16;26193:5;26183:16;;;;;;;;;;;;;;;;:26;;;;;;;;;;;26238:6;26220:9;:14;26230:3;26220:14;;;;;;;;;;;;;;;;:24;;;;;;;;;;;26276:3;26260:28;;26269:5;26260:28;;;26281:6;26260:28;;;;;;;;;;;;;;;;;;26055:241;;;:::o;27019:456::-;27128:1;27109:21;;:7;:21;;;;27101:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27179:22;27204:9;:18;27214:7;27204:18;;;;;;;;;;;;;;;;27179:43;;27259:6;27241:14;:24;;27233:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27336:6;27323:11;;:19;;27315:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27421:6;27404:14;:23;27383:9;:18;27393:7;27383:18;;;;;;;;;;;;;;;:44;;;;27461:6;27446:11;;:21;;;;;;;;;;;27019:456;;;:::o;11849:1410::-;11944:23;11969:5;:18;11975:11;11969:18;;;;;;;;;;;;;;;:27;;;;;;;;;;;;11944:52;;12046:7;12007:5;:22;12013:15;12007:22;;;;;;;;;;;;;;;:37;;;:46;;;;;;;;;;;12108:1;12075:5;:18;12081:11;12075:18;;;;;;;;;;;;;;;:31;;;:34;12072:301;;;12143:5;:22;12149:15;12143:22;;;;;;;;;;;;;;;:36;;;:38;;;;;;;;;;;;;12196:5;:22;12202:15;12196:22;;;;;;;;;;;;;;;:32;;12234:11;12196:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12261:28;12276:10;12287:1;12261:14;:28::i;:::-;12072:301;;;12333:28;12348:10;12359:1;12333:14;:28::i;:::-;12072:301;12417:7;12383:5;:18;12389:11;12383:18;;;;;;;;;;;;;;;:31;;;:41;;;;;;;;;;;12477:7;12436:12;:25;12449:11;12436:25;;;;;;;;;;;;;;;:38;;;:48;;;;;;;;;;;12497:13;12511:10;:8;:10::i;:::-;12497:24;;12540:14;12555:23;12576:1;12568:7;:9;;;;;;12555:12;:23::i;:::-;12540:38;;12622:7;12591:5;:18;12597:11;12591:18;;;;;;;;;;;;;;;:30;;:38;;;;12640:10;:23;12651:11;12640:23;;;;;;;;;;;;;;;12669:242;;;;;;;;12693:7;12669:242;;;;12702:1;12669:242;;;;12718:15;12669:242;;;;3340:4;12765:2;:11;12749:15;:27;12669:242;;;;12792:15;12669:242;;;;12822:5;12669:242;;;;;;12842:4;12669:242;;;;;;12861:5;12669:242;;;;;;12867:3;12669:242;;;;3340:4;12887:2;:11;12871:15;:27;12669:242;;;;12899:1;12669:242;;;12640:272;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12927:6;12923:134;12938:1;12936;:3;12923:134;;;12969:75;12979:20;;;;;;;;;;;13000:9;13010:1;13000:12;;;;;;;;;;;;;;;;;;13038:5;13023:11;13035:1;13023:14;;;;;;;;;13021:1;13014:6;:8;:23;:29;;;;;;12969:9;:75::i;:::-;12940:3;;;;;;;12923:134;;;;13068:49;13091:11;13103:7;13111:5;13068:22;:49::i;:::-;13129:51;13154:11;13166:7;13174:5;13129:24;:51::i;:::-;13212:11;13204:37;;;13224:7;13239:1;13232:6;:8;13204:37;;;;;;;;;;;;;;;;;;;;;;;;11849:1410;;;;;:::o;6657:941::-;6753:25;6766:11;6753:12;:25::i;:::-;6752:26;6744:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6813:29;6826:15;6813:12;:29::i;:::-;6805:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6877:16;;:::i;:::-;6896:455;;;;;;;;6920:10;;6896:455;;;;6967:15;6896:455;;;;;;7012:1;6896:455;;;;7039:1;6896:455;;;;7079:1;7065:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6896:455;;;;7140:1;6896:455;;;;7168:1;6896:455;;;;7111:1;6896:455;;;;7191:1;6896:455;;;;7219:1;6896:455;;;;7249:1;6896:455;;;;7280:1;6896:455;;;;7308:1;6896:455;;;;7338:1;6896:455;;;6877:474;;7391:4;7370:5;:18;7376:11;7370:18;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7436:15;7406:5;:18;7412:11;7406:18;;;;;;;;;;;;;;;:27;;;:45;;;;;;;;;;;;;;;;;;7462:10;;:12;;;;;;;;;;;;;7541:5;:18;7547:11;7541:18;;;;;;;;;;;;;;;:21;;;7524:15;7498:92;;7511:11;7498:92;;;7564:5;:22;7570:15;7564:22;;;;;;;;;;;;;;;:25;;;7498:92;;;;;;;;;;;;;;;;;;6657:941;;;:::o;9985:1858::-;10077:23;10102:5;:18;10108:11;10102:18;;;;;;;;;;;;;;;:27;;;;;;;;;;;;10077:52;;10179:7;10140:5;:22;10146:15;10140:22;;;;;;;;;;;;;;;:37;;;:46;;;;;;;;;;;10241:1;10208:5;:18;10214:11;10208:18;;;;;;;;;;;;;;;:31;;;:34;10205:313;;;10276:5;:22;10282:15;10276:22;;;;;;;;;;;;;;;:36;;;:38;;;;;;;;;;;;;10329:5;:22;10335:15;10329:22;;;;;;;;;;;;;;;:32;;10367:11;10329:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10406:28;10421:10;10432:1;10406:14;:28::i;:::-;10205:313;;;10478:28;10493:10;10504:1;10478:14;:28::i;:::-;10205:313;10562:7;10528:5;:18;10534:11;10528:18;;;;;;;;;;;;;;;:31;;;:41;;;;;;;;;;;10622:7;10581:12;:25;10594:11;10581:25;;;;;;;;;;;;;;;:38;;;:48;;;;;;;;;;;10640:13;10654:10;:8;:10::i;:::-;10640:24;;10675:14;10690:23;10711:1;10703:7;:9;;;;;;10690:12;:23::i;:::-;10675:38;;10757:1;10749:7;:9;;;;;;10724:23;;:34;;;;;;;;;;;10797:6;10772:9;:23;10782:12;;;;;;;;;;;10772:23;;;;;;;;;;;;;;;;:31;10769:398;;10857:3;10854:2;10847:6;:9;:13;;;;;;10820:25;;:40;;;;;;;;;;;10883:59;10893:12;;;;;;;;;;;10906:20;;;;;;;;;;;10938:3;10935:2;10928:6;:9;:13;;;;;;10883:9;:59::i;:::-;10958:52;10968:12;;;;;;;;;;;10981:13;;;;;;;;;;;11006:3;11003:2;10996:6;:9;:13;;;;;;10958:9;:52::i;:::-;10769:398;;;11079:6;11052:25;;:33;;;;;;;;;;;11102:53;11112:13;;;;;;;;;;;11126:20;;;;;;;;;;;11148:6;11102:9;:53::i;:::-;10769:398;11208:7;11177:5;:18;11183:11;11177:18;;;;;;;;;;;;;;;:30;;:38;;;;11226:10;:23;11237:11;11226:23;;;;;;;;;;;;;;;11255:241;;;;;;;;11279:7;11255:241;;;;11288:1;11255:241;;;;11304:15;11255:241;;;;3340:4;11351:2;:11;11335:15;:27;11255:241;;;;11378:15;11255:241;;;;11408:5;11255:241;;;;;;11428:4;11255:241;;;;;;11447:4;11255:241;;;;;;11452:3;11255:241;;;;3340:4;11472:2;:11;11456:15;:27;11255:241;;;;11484:1;11255:241;;;11226:271;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11512:6;11508:134;11523:1;11521;:3;11508:134;;;11554:75;11564:20;;;;;;;;;;;11585:9;11595:1;11585:12;;;;;;;;;;;;;;;;;;11623:5;11608:11;11620:1;11608:14;;;;;;;;;11606:1;11599:6;:8;:23;:29;;;;;;11554:9;:75::i;:::-;11525:3;;;;;;;11508:134;;;;11652:49;11675:11;11687:7;11695:5;11652:22;:49::i;:::-;11713:51;11738:11;11750:7;11758:5;11713:24;:51::i;:::-;11796:11;11788:37;;;11808:7;11823:1;11816:6;:8;11788:37;;;;;;;;;;;;;;;;;;;;;;;;9985:1858;;;;;:::o;22580:884::-;22651:7;22675:14;22690:1;22675:16;;22702:23;22728:10;:17;22739:5;22728:17;;;;;;;;;;;;;;;22746:11;22728:30;;;;;;;;;;;;;;;;;;22702:56;;22769:25;22797:4;:16;;;22814:5;22797:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22769:51;;22865:1;22847:17;:19;22844:593;;;22892:11;3340:4;22927:5;:17;;;22905:5;:19;;;:39;22904:57;;;;;;22892:69;;22986:3;22979:6;:10;22976:38;;;23011:3;23004:10;;22976:38;23029:19;23097:5;23088:6;23064:5;:23;;;23051:5;:12;;;:36;:43;:51;;;;;;23029:74;;23140:11;23122:17;:29;23119:127;;;23185:17;23171:31;;23119:127;23275:1;23263:11;:13;23260:85;;;23318:11;23311:18;;23260:85;22844:593;;;;;23421:4;23406:5;:14;;;:19;;;;;;;;;;;;;;;;;;22844:593;23449:6;23441:15;;;;;22580:884;;;;:::o;13265:1426::-;13362:14;13379:5;:12;13385:5;13379:12;;;;;;;;;;;;;;;:21;;;;;;;;;;;;13362:38;;13415:7;13411:1273;3297:2;13428:1;:14;;;13411:1273;;;13484:1;13466:20;;:6;:20;;;13463:1210;;13533:9;13543:1;13533:12;;;;;;;;;;;13509:9;:17;13519:6;13509:17;;;;;;;;;;;;;;;:22;;;:36;13506:1042;;13617:1;13590:5;:13;13596:6;13590:13;;;;;;;;;;;;;;;:26;;;:28;13587:942;;;13692:14;13732:5;13715:13;13729:1;13715:16;;;;;;;;;;;13707:7;:24;:30;;;;;;13692:45;;13788:25;13814:4;:16;;;13831:6;13814:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13788:50;;13888:1;13870:17;:19;13867:639;;;13968:6;13950:17;:24;13947:143;;;14017:17;14010:24;;13947:143;14148:6;14120:5;:13;14126:6;14120:13;;;;;;;;;;;;;;;:25;;;:34;;;;;;;;;;;14236:6;14208:5;:13;14214:6;14208:13;;;;;;;;;;;;;;;:25;;;:34;;;;;;;;;;;14308:6;14274:12;:20;14287:6;14274:20;;;;;;;;;;;;;;;:31;;;:40;;;;;;;;;;;14345:56;14355:20;;;;;;;;;;;14376:6;14395:5;14390:4;14383:6;:11;:17;;;;;;14345:9;:56::i;:::-;14456:5;14437:40;;14449:6;14437:40;;;14462:6;14472:1;14470;:3;14475:1;14437:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13867:639;13587:942;;;13506:1042;14575:5;:13;14581:6;14575:13;;;;;;;;;;;;;;;:22;;;;;;;;;;;;14566:31;;13463:1210;;;14652:5;;13463:1210;13444:3;;;;;;;13411:1273;;;;13265:1426;;;;:::o;20289:509::-;20358:14;20375:5;:12;20381:5;20375:12;;;;;;;;;;;;;;;:21;;;;;;;;;;;;20358:38;;20411:9;20407:384;3297:2;20426:1;:14;20407:384;;;20482:1;20464:20;;:6;:20;;;20461:319;;20514:1;20507:5;:8;20504:85;;;20588:1;20564:5;:13;20570:6;20564:13;;;;;;;;;;;;;;;:23;;;:25;20538:5;:13;20544:6;20538:13;;;;;;;;;;;;;;;:23;;:51;;;;20504:85;20608:20;20621:6;20608:12;:20::i;:::-;20660:3;;;;;;;;;;;20650:13;;:6;:13;;;20647:23;;;20665:5;;20647:23;20698:5;:13;20704:6;20698:13;;;;;;;;;;;;;;;:22;;;;;;;;;;;;20689:31;;20461:319;;;20759:5;;20461:319;20442:3;;;;;;;20407:384;;;;20289:509;;;:::o;14697:2444::-;14796:14;14813:5;:12;14819:5;14813:12;;;;;;;;;;;;;;;:21;;;;;;;;;;;;14796:38;;14845:15;14873:12;14898:23;14934:25;14976:7;14972:2162;14993:2;14989:1;:6;;;14972:2162;;;15049:1;15031:20;;:6;:20;;;15028:2095;;15098:1;15074:9;:17;15084:6;15074:17;;;;;;;;;;;;;;;:22;;;:25;:54;;;;15127:1;15103:9;:17;15113:6;15103:17;;;;;;;;;;;;;;;:22;;;:25;15074:54;15071:1913;;;15168:1;15156:10;:13;15153:798;;;15246:1;15222:9;:17;15232:6;15222:17;;;;;;;;;;;;;;;:22;;;:25;15219:418;;;15315:1;15299:17;;15365:1;15347:19;;15408:1;15397:12;;15219:418;;;15515:1;15499:17;;15565:1;15547:19;;15608:1;15597:12;;15219:418;15153:798;;;15741:10;15717:9;:17;15727:6;15717:17;;;;;;;;;;;;;;;:22;;;:34;15714:214;;;15819:17;15803:33;;15875:1;15867:9;;15714:214;15153:798;15992:1;15976:15;:17;15973:992;;;16021:14;16060:3;16044:15;16036:7;:23;:27;;;;;;16021:42;;16108:1;16092:17;;16158:25;16184:4;:16;;;16201:6;16184:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16158:50;;16258:1;16240:17;:19;16237:641;;;16338:6;16320:17;:24;16317:143;;;16387:17;16380:24;;16317:143;16520:6;16490:5;:13;16496:6;16490:13;;;;;;;;;;;;;;;:27;;;:36;;;;;;;;;;;16608:6;16580:5;:13;16586:6;16580:13;;;;;;;;;;;;;;;:25;;;:34;;;;;;;;;;;16680:6;16646:12;:20;16659:6;16646:20;;;;;;;;;;;;;;;:31;;;:40;;;;;;;;;;;16717:56;16727:20;;;;;;;;;;;16748:6;16767:5;16762:4;16755:6;:11;:17;;;;;;16717:9;:56::i;:::-;16828:5;16809:40;;16821:6;16809:40;;;16834:6;16844:1;16842;:3;16847:1;16809:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16237:641;16916:1;16907:7;:10;:27;;;;16931:3;;;;;;;;;;;16921:13;;:6;:13;;;16907:27;16904:37;;;16936:5;;;;16904:37;15973:992;;;15071:1913;17011:5;:13;17017:6;17011:13;;;;;;;;;;;;;;;:22;;;;;;;;;;;;17002:31;;15028:2095;;;17102:5;;15028:2095;14997:3;;;;;;;14972:2162;;;;14697:2444;;;;;;;;:::o;18582:771::-;18646:19;18669:5;:12;18675:5;18669:12;;;;;;;;;;;;;;;:26;;;18646:49;;18706:22;18732:5;:12;18738:5;18732:12;;;;;;;;;;;;;;;:27;;;18706:53;;18770:16;18789:9;:16;18799:5;18789:16;;;;;;;;;;;;;;;:21;;;18770:40;;18837:1;18824:11;:14;;:31;;;;;18854:1;18842:11;:13;18824:31;18821:525;;;18883:13;18911:1;18899:11;:13;18883:29;;18930:17;18951:19;18964:5;18951:12;:19::i;:::-;18927:43;;;18985:17;19003:23;19018:5;19024:1;19003:14;:23::i;:::-;18985:41;;19058:9;:19;19068:8;19058:19;;;;;;;;;;;:32;;;19044:12;:46;;:91;;;;;19105:9;:19;19115:8;19105:19;;;;;;;;;;;:30;;;19094:9;:41;;19044:91;19041:162;;;19179:8;19155:9;:16;19165:5;19155:16;;;;;;;;;;;;;;;:21;;:32;;;;19041:162;18821:525;;;;;;19249:1;19236:11;:14;;:41;;;;;19270:7;19254:14;:23;;19236:41;:59;;;;;19294:1;19281:11;:14;19236:59;19233:113;;;19333:1;19311:9;:16;19321:5;19311:16;;;;;;;;;;;;;;;:21;;:23;;;;19233:113;18821:525;18582:771;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o
Swarm Source
ipfs://8713c6ba44696a81192d1d40110fd9a46662f586b82683a679f01dbfdbd85d9d
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.