ERC-20
Decentralized Web
Overview
Max Total Supply
2,500,000,000 VARC
Holders
230 (0.00%)
Market
Price
$0.00 @ 0.000000 ETH
Onchain Market Cap
$1,796,953.12
Circulating Supply Market Cap
$0.00
Other Info
Token Contract (WITH 18 Decimals)
Balance
1,525,459 VARCValue
$1,096.47 ( ~0.322863014450858 Eth) [0.0610%]Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
VARCcoin
Compiler Version
v0.4.24+commit.e67f0147
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2019-05-29 */ pragma solidity ^0.4.24; library SafeMath { function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; assert(c / a == b); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a / b; return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; assert(c >= a); return c; } } contract Ownable { address public owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() public { owner = msg.sender; } modifier onlyOwner() { require(msg.sender == owner); _; } function transferOwnership(address newOwner) public onlyOwner { require(newOwner != address(0)); emit OwnershipTransferred(owner, newOwner); owner = newOwner; } } contract Pausable is Ownable { event Pause(); event Unpause(); bool public paused = false; modifier whenNotPaused() { require(!paused); _; } modifier whenPaused() { require(paused); _; } function pause() onlyOwner whenNotPaused public { paused = true; emit Pause(); } function unpause() onlyOwner whenPaused public { paused = false; emit Unpause(); } } contract ERC20 { function balanceOf(address who) public view returns (uint256); function allowance(address owner, address spender) public view returns (uint256); function transfer(address to, uint256 value) public returns (bool); function approve(address spender, uint256 value) public returns (bool); function transferFrom(address from, address to, uint256 value) public returns (bool); event Approval(address indexed owner, address indexed spender, uint256 value); event Transfer(address indexed from, address indexed to, uint256 value); } contract Token is ERC20, Pausable { struct sUserInfo { uint256 balance; bool lock; mapping(address => uint256) allowed; } using SafeMath for uint256; string public name; string public symbol; uint256 public decimals; uint256 public totalSupply; bool public restoreFinished = false; mapping(address => sUserInfo) user; event Mint(uint256 value); event Burn(uint256 value); event RestoreFinished(); modifier canRestore() { require(!restoreFinished); _; } function () external payable { revert(); } function validTransfer(address _from, address _to, uint256 _value, bool _lockCheck) internal { require(_to != address(this)); require(_to != address(0)); require(user[_from].balance >= _value); if(_lockCheck) { require(user[_from].lock == false); } } function lock(address _owner) public onlyOwner returns (bool) { require(user[_owner].lock == false); user[_owner].lock = true; return true; } function unlock(address _owner) public onlyOwner returns (bool) { require(user[_owner].lock == true); user[_owner].lock = false; return true; } function burn(address _to, uint256 _value) public onlyOwner returns (bool) { require(_value <= user[_to].balance); user[_to].balance = user[_to].balance.sub(_value); totalSupply = totalSupply.sub(_value); emit Burn(_value); return true; } function distribute(address _to, uint256 _value) public onlyOwner returns (bool) { validTransfer(msg.sender, _to, _value, false); user[msg.sender].balance = user[msg.sender].balance.sub(_value); user[_to].balance = user[_to].balance.add(_value); emit Transfer(msg.sender, _to, _value); return true; } function approve(address _spender, uint256 _value) public whenNotPaused returns (bool) { require(_value > 0); user[msg.sender].allowed[_spender] = _value; emit Approval(msg.sender, _spender, _value); return true; } function transferFrom(address _from, address _to, uint256 _value) public whenNotPaused returns (bool) { validTransfer(_from, _to, _value, true); require(_value <= user[_from].allowed[msg.sender]); user[_from].balance = user[_from].balance.sub(_value); user[_to].balance = user[_to].balance.add(_value); user[_from].allowed[msg.sender] = user[_from].allowed[msg.sender].sub(_value); emit Transfer(_from, _to, _value); return true; } function transfer(address _to, uint256 _value) public whenNotPaused returns (bool) { validTransfer(msg.sender, _to, _value, true); user[msg.sender].balance = user[msg.sender].balance.sub(_value); user[_to].balance = user[_to].balance.add(_value); emit Transfer(msg.sender, _to, _value); return true; } function transferRestore(address _from, address _to, uint256 _value) public onlyOwner canRestore returns (bool) { validTransfer(_from, _to, _value, false); user[_from].balance = user[_from].balance.sub(_value); user[_to].balance = user[_to].balance.add(_value); emit Transfer(_from, _to, _value); return true; } function finishRestore() public onlyOwner returns (bool) { restoreFinished = true; emit RestoreFinished(); return true; } function balanceOf(address _owner) public view returns (uint256) { return user[_owner].balance; } function lockState(address _owner) public view returns (bool) { return user[_owner].lock; } function allowance(address _owner, address _spender) public view returns (uint256) { return user[_owner].allowed[_spender]; } } contract LockBalance is Ownable { enum eLockType {None, Individual, GroupA, GroupB, GroupC, GroupD, GroupE, GroupF, GroupG, GroupH, GroupI, GroupJ} struct sGroupLockDate { uint256[] lockTime; uint256[] lockPercent; } struct sLockInfo { uint256[] lockType; uint256[] lockBalanceStandard; uint256[] startTime; uint256[] endTime; } using SafeMath for uint256; mapping(uint => sGroupLockDate) groupLockDate; mapping(address => sLockInfo) lockUser; event Lock(address indexed from, uint256 value, uint256 endTime); function setLockUser(address _to, eLockType _lockType, uint256 _value, uint256 _endTime) internal { lockUser[_to].lockType.push(uint256(_lockType)); lockUser[_to].lockBalanceStandard.push(_value); lockUser[_to].startTime.push(now); lockUser[_to].endTime.push(_endTime); emit Lock(_to, _value, _endTime); } function lockBalanceGroup(address _owner, uint _index) internal view returns (uint256) { uint256 percent = 0; uint256 key = uint256(lockUser[_owner].lockType[_index]); uint256 time = 99999999999; for(uint256 i = 0 ; i < groupLockDate[key].lockTime.length; i++) { if(now < groupLockDate[key].lockTime[i]) { if(groupLockDate[key].lockTime[i] < time) { time = groupLockDate[key].lockTime[i]; percent = groupLockDate[key].lockPercent[i]; } } } if(percent == 0){ return 0; } else { return lockUser[_owner].lockBalanceStandard[_index].mul(uint256(percent)).div(100); } } function lockBalanceIndividual(address _owner, uint _index) internal view returns (uint256) { if(now < lockUser[_owner].endTime[_index]) { return lockUser[_owner].lockBalanceStandard[_index]; } else { return 0; } } function clearLockUser(address _owner, uint _index) onlyOwner public { require(lockUser[_owner].endTime.length >_index); lockUser[_owner].endTime[_index] = 0; } function addLockDate(eLockType _lockType, uint256 _second, uint256 _percent) onlyOwner public { require(_percent > 0 && _percent <= 100); sGroupLockDate storage lockInfo = groupLockDate[uint256(_lockType)]; bool isExists = false; for(uint256 i = 0; i < lockInfo.lockTime.length; i++) { if(lockInfo.lockTime[i] == _second) { revert(); break; } } if(isExists) { revert(); } else { lockInfo.lockTime.push(_second); lockInfo.lockPercent.push(_percent); } } function deleteLockDate(eLockType _lockType, uint256 _lockTime) onlyOwner public { sGroupLockDate storage lockDate = groupLockDate[uint256(_lockType)]; bool isExists = false; uint256 index = 0; for(uint256 i = 0; i < lockDate.lockTime.length; i++) { if(lockDate.lockTime[i] == _lockTime) { isExists = true; index = i; break; } } if(isExists) { for(uint256 k = index; k < lockDate.lockTime.length - 1; k++){ lockDate.lockTime[k] = lockDate.lockTime[k + 1]; lockDate.lockPercent[k] = lockDate.lockPercent[k + 1]; } delete lockDate.lockTime[lockDate.lockTime.length - 1]; lockDate.lockTime.length--; delete lockDate.lockPercent[lockDate.lockPercent.length - 1]; lockDate.lockPercent.length--; } else { revert(); } } function lockTypeInfoGroup(eLockType _type) public view returns (uint256[] memory , uint256[] memory ) { uint256 key = uint256(_type); return (groupLockDate[key].lockTime, groupLockDate[key].lockPercent); } function lockUserInfo(address _owner) public view returns (uint256[] memory , uint256[] memory , uint256[] memory , uint256[] memory , uint256[] memory ) { uint256[] memory balance = new uint256[](lockUser[_owner].lockType.length); for(uint256 i = 0; i < lockUser[_owner].lockType.length; i++){ if(lockUser[_owner].lockType[i] == uint256(eLockType.Individual)) { balance[i] = balance[i].add(lockBalanceIndividual(_owner, i)); } else if(lockUser[_owner].lockType[i] != uint256(eLockType.None)) { balance[i] = balance[i].add(lockBalanceGroup(_owner, i)); } } return (lockUser[_owner].lockType, lockUser[_owner].lockBalanceStandard, balance, lockUser[_owner].startTime, lockUser[_owner].endTime); } function lockBalanceAll(address _owner) public view returns (uint256) { uint256 lockBalance = 0; for(uint256 i = 0; i < lockUser[_owner].lockType.length; i++){ if(lockUser[_owner].lockType[i] == uint256(eLockType.Individual)) { lockBalance = lockBalance.add(lockBalanceIndividual(_owner, i)); } else if(lockUser[_owner].lockType[i] != uint256(eLockType.None)) { lockBalance = lockBalance.add(lockBalanceGroup(_owner, i)); } } return lockBalance; } } contract VARCcoin is Token, LockBalance { constructor() public { name = "VARC"; symbol = "VARC"; decimals = 18; uint256 initialSupply = 2500000000; totalSupply = initialSupply * 10 ** uint(decimals); user[owner].balance = totalSupply; emit Transfer(address(0), owner, totalSupply); } function validTransfer(address _from, address _to, uint256 _value, bool _lockCheck) internal { super.validTransfer(_from, _to, _value, _lockCheck); if(_lockCheck) { require(_value <= useBalanceOf(_from)); } } function setLockUsers(eLockType _type, address[] memory _to, uint256[] memory _value, uint256[] memory _endTime) onlyOwner public { require(_to.length > 0); require(_to.length == _value.length); require(_to.length == _endTime.length); require(_type != eLockType.None); for(uint256 i = 0; i < _to.length; i++){ require(_value[i] <= useBalanceOf(_to[i])); setLockUser(_to[i], _type, _value[i], _endTime[i]); } } function useBalanceOf(address _owner) public view returns (uint256) { return balanceOf(_owner).sub(lockBalanceAll(_owner)); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"lockBalanceAll","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"restoreFinished","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_lockType","type":"uint8"},{"name":"_lockTime","type":"uint256"}],"name":"deleteLockDate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"}],"name":"unlock","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferRestore","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"useBalanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_type","type":"uint8"}],"name":"lockTypeInfoGroup","outputs":[{"name":"","type":"uint256[]"},{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finishRestore","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"lockState","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_type","type":"uint8"},{"name":"_to","type":"address[]"},{"name":"_value","type":"uint256[]"},{"name":"_endTime","type":"uint256[]"}],"name":"setLockUsers","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_lockType","type":"uint8"},{"name":"_second","type":"uint256"},{"name":"_percent","type":"uint256"}],"name":"addLockDate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"burn","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"},{"name":"_index","type":"uint256"}],"name":"clearLockUser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"lockUserInfo","outputs":[{"name":"","type":"uint256[]"},{"name":"","type":"uint256[]"},{"name":"","type":"uint256[]"},{"name":"","type":"uint256[]"},{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"}],"name":"lock","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"distribute","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"endTime","type":"uint256"}],"name":"Lock","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"value","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[],"name":"RestoreFinished","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"}]
Contract Creation Code
608060405260008060146101000a81548160ff0219169083151502179055506000600560006101000a81548160ff0219169083151502179055503480156200004657600080fd5b506000336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040805190810160405280600481526020017f564152430000000000000000000000000000000000000000000000000000000081525060019080519060200190620000d69291906200023c565b506040805190810160405280600481526020017f564152430000000000000000000000000000000000000000000000000000000081525060029080519060200190620001249291906200023c565b506012600381905550639502f9009050600354600a0a8102600481905550600454600660008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6004546040518082815260200191505060405180910390a350620002eb565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200027f57805160ff1916838001178555620002b0565b82800160010185558215620002b0579182015b82811115620002af57825182559160200191906001019062000292565b5b509050620002bf9190620002c3565b5090565b620002e891905b80821115620002e4576000816000905550600101620002ca565b5090565b90565b61374680620002fb6000396000f300608060405260043610610180576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063015d200f1461018557806305c7400a146101dc57806306fdde031461020b5780630789a3131461029b578063095ea7b3146102d557806318160ddd1461033a57806323b872dd146103655780632f6c493c146103ea578063313ce567146104455780633f4ba83a146104705780634149953d146104875780635c975abb1461050c57806369132d431461053b57806370a08231146105925780638456cb59146105e95780638da5cb5b146106005780638e2833341461065757806390e99b091461072457806394dbc70e1461075357806395d89b41146107ae5780639846d9de1461083e5780639a713d05146109375780639dc29fac1461097b578063a26a1bc9146109e0578063a9059cbb14610a2d578063ac1a717514610a92578063dd62ed3e14610c4a578063f2fde38b14610cc1578063f435f5a714610d04578063fb93210814610d5f575b600080fd5b34801561019157600080fd5b506101c6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610dc4565b6040518082815260200191505060405180910390f35b3480156101e857600080fd5b506101f1610f53565b604051808215151515815260200191505060405180910390f35b34801561021757600080fd5b50610220610f66565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610260578082015181840152602081019050610245565b50505050905090810190601f16801561028d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102a757600080fd5b506102d3600480360381019080803560ff16906020019092919080359060200190929190505050611004565b005b3480156102e157600080fd5b50610320600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611219565b604051808215151515815260200191505060405180910390f35b34801561034657600080fd5b5061034f611338565b6040518082815260200191505060405180910390f35b34801561037157600080fd5b506103d0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061133e565b604051808215151515815260200191505060405180910390f35b3480156103f657600080fd5b5061042b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116b1565b604051808215151515815260200191505060405180910390f35b34801561045157600080fd5b5061045a6117d4565b6040518082815260200191505060405180910390f35b34801561047c57600080fd5b506104856117da565b005b34801561049357600080fd5b506104f2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611898565b604051808215151515815260200191505060405180910390f35b34801561051857600080fd5b50610521611ac4565b604051808215151515815260200191505060405180910390f35b34801561054757600080fd5b5061057c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ad7565b6040518082815260200191505060405180910390f35b34801561059e57600080fd5b506105d3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b03565b6040518082815260200191505060405180910390f35b3480156105f557600080fd5b506105fe611b4f565b005b34801561060c57600080fd5b50610615611c0f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561066357600080fd5b50610685600480360381019080803560ff169060200190929190505050611c34565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156106cc5780820151818401526020810190506106b1565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561070e5780820151818401526020810190506106f3565b5050505090500194505050505060405180910390f35b34801561073057600080fd5b50610739611d21565b604051808215151515815260200191505060405180910390f35b34801561075f57600080fd5b50610794600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611dcc565b604051808215151515815260200191505060405180910390f35b3480156107ba57600080fd5b506107c3611e25565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108035780820151818401526020810190506107e8565b50505050905090810190601f1680156108305780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561084a57600080fd5b50610935600480360381019080803560ff169060200190929190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050611ec3565b005b34801561094357600080fd5b50610979600480360381019080803560ff169060200190929190803590602001909291908035906020019092919050505061202e565b005b34801561098757600080fd5b506109c6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612186565b604051808215151515815260200191505060405180910390f35b3480156109ec57600080fd5b50610a2b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061232b565b005b348015610a3957600080fd5b50610a78600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061243c565b604051808215151515815260200191505060405180910390f35b348015610a9e57600080fd5b50610ad3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061260b565b60405180806020018060200180602001806020018060200186810386528b818151815260200191508051906020019060200280838360005b83811015610b26578082015181840152602081019050610b0b565b5050505090500186810385528a818151815260200191508051906020019060200280838360005b83811015610b68578082015181840152602081019050610b4d565b50505050905001868103845289818151815260200191508051906020019060200280838360005b83811015610baa578082015181840152602081019050610b8f565b50505050905001868103835288818151815260200191508051906020019060200280838360005b83811015610bec578082015181840152602081019050610bd1565b50505050905001868103825287818151815260200191508051906020019060200280838360005b83811015610c2e578082015181840152602081019050610c13565b505050509050019a505050505050505050505060405180910390f35b348015610c5657600080fd5b50610cab600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612ad2565b6040518082815260200191505060405180910390f35b348015610ccd57600080fd5b50610d02600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612b5c565b005b348015610d1057600080fd5b50610d45600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612cb1565b604051808215151515815260200191505060405180910390f35b348015610d6b57600080fd5b50610daa600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612dd4565b604051808215151515815260200191505060405180910390f35b6000806000809150600090505b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000180549050811015610f49576001600b811115610e2b57fe5b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000182815481101515610e7a57fe5b90600052602060002001541415610eae57610ea7610e988583612fe3565b836130b290919063ffffffff16565b9150610f3c565b6000600b811115610ebb57fe5b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000182815481101515610f0a57fe5b9060005260206000200154141515610f3b57610f38610f2985836130d0565b836130b290919063ffffffff16565b91505b5b8080600101915050610dd1565b8192505050919050565b600560009054906101000a900460ff1681565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ffc5780601f10610fd157610100808354040283529160200191610ffc565b820191906000526020600020905b815481529060010190602001808311610fdf57829003601f168201915b505050505081565b60008060008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561106757600080fd5b6007600088600b81111561107757fe5b815260200190815260200160002094506000935060009250600091505b84600001805490508210156110df578585600001838154811015156110b557fe5b906000526020600020015414156110d257600193508192506110df565b8180600101925050611094565b831561120b578290505b600185600001805490500381101561118457846000016001820181548110151561110f57fe5b9060005260206000200154856000018281548110151561112b57fe5b9060005260206000200181905550846001016001820181548110151561114d57fe5b9060005260206000200154856001018281548110151561116957fe5b906000526020600020018190555080806001019150506110e9565b84600001600186600001805490500381548110151561119f57fe5b9060005260206000200160009055846000018054809190600190036111c491906136c9565b508460010160018660010180549050038154811015156111e057fe5b90600052602060002001600090558460010180548091906001900361120591906136c9565b50611210565b600080fd5b50505050505050565b60008060149054906101000a900460ff1615151561123657600080fd5b60008211151561124557600080fd5b81600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60045481565b60008060149054906101000a900460ff1615151561135b57600080fd5b61136884848460016132dc565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156113f657600080fd5b61144b82600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461330c90919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506114e682600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546130b290919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506115be82600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461330c90919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561170e57600080fd5b60011515600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff16151514151561177057600080fd5b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548160ff02191690831515021790555060019050919050565b60035481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561183557600080fd5b600060149054906101000a900460ff16151561185057600080fd5b60008060146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118f557600080fd5b600560009054906101000a900460ff1615151561191157600080fd5b61191e84848460006132dc565b61197382600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461330c90919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550611a0e82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546130b290919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600060149054906101000a900460ff1681565b6000611afc611ae583610dc4565b611aee84611b03565b61330c90919063ffffffff16565b9050919050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611baa57600080fd5b600060149054906101000a900460ff16151515611bc657600080fd5b6001600060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606080600083600b811115611c4557fe5b9050600760008281526020019081526020016000206000016007600083815260200190815260200160002060010181805480602002602001604051908101604052809291908181526020018280548015611cbe57602002820191906000526020600020905b815481526020019060010190808311611caa575b5050505050915080805480602002602001604051908101604052809291908181526020018280548015611d1057602002820191906000526020600020905b815481526020019060010190808311611cfc575b505050505090509250925050915091565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d7e57600080fd5b6001600560006101000a81548160ff0219169083151502179055507f7187cbcbda53f626dba64b95bb4562770cbe3f2026eebce9d93b79a169f8460c60405160405180910390a16001905090565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff169050919050565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611ebb5780601f10611e9057610100808354040283529160200191611ebb565b820191906000526020600020905b815481529060010190602001808311611e9e57829003601f168201915b505050505081565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f2057600080fd5b60008451111515611f3057600080fd5b82518451141515611f4057600080fd5b81518451141515611f5057600080fd5b6000600b811115611f5d57fe5b85600b811115611f6957fe5b14151515611f7657600080fd5b600090505b835181101561202757611fa48482815181101515611f9557fe5b90602001906020020151611ad7565b8382815181101515611fb257fe5b9060200190602002015111151515611fc957600080fd5b61201a8482815181101515611fda57fe5b90602001906020020151868584815181101515611ff357fe5b90602001906020020151858581518110151561200b57fe5b90602001906020020151613325565b8080600101915050611f7b565b5050505050565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561208e57600080fd5b60008411801561209f575060648411155b15156120aa57600080fd5b6007600087600b8111156120ba57fe5b8152602001908152602001600020925060009150600090505b8260000180549050811015612117578483600001828154811015156120f457fe5b9060005260206000200154141561210a57600080fd5b80806001019150506120d3565b811561212257600080fd5b8260000185908060018154018082558091505090600182039060005260206000200160009091929091909150555082600101849080600181540180825580915050906001820390600052602060002001600090919290919091505550505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156121e357600080fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154821115151561223457600080fd5b61228982600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461330c90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506122e48260045461330c90919063ffffffff16565b6004819055507fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb826040518082815260200191505060405180910390a16001905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561238657600080fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301805490501115156123d957600080fd5b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003018281548110151561242a57fe5b90600052602060002001819055505050565b60008060149054906101000a900460ff1615151561245957600080fd5b61246633848460016132dc565b6124bb82600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461330c90919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555061255682600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546130b290919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6060806060806060806000600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054905060405190808252806020026020018201604052801561268a5781602001602082028038833980820191505090505b509150600090505b600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054905081101561286c576001600b8111156126ec57fe5b600860008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018281548110151561273b57fe5b906000526020600020015414156127a05761277f6127598983612fe3565b838381518110151561276757fe5b906020019060200201516130b290919063ffffffff16565b828281518110151561278d57fe5b906020019060200201818152505061285f565b6000600b8111156127ad57fe5b600860008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001828154811015156127fc57fe5b906000526020600020015414151561285e5761284161281b89836130d0565b838381518110151561282957fe5b906020019060200201516130b290919063ffffffff16565b828281518110151561284f57fe5b90602001906020020181815250505b5b8080600101915050612692565b600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001600860008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010183600860008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201600860008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301848054806020026020016040519081016040528092919081815260200182805480156129c057602002820191906000526020600020905b8154815260200190600101908083116129ac575b5050505050945083805480602002602001604051908101604052809291908181526020018280548015612a1257602002820191906000526020600020905b8154815260200190600101908083116129fe575b5050505050935081805480602002602001604051908101604052809291908181526020018280548015612a6457602002820191906000526020600020905b815481526020019060010190808311612a50575b5050505050915080805480602002602001604051908101604052809291908181526020018280548015612ab657602002820191906000526020600020905b815481526020019060010190808311612aa2575b5050505050905096509650965096509650505091939590929450565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612bb757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515612bf357600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612d0e57600080fd5b60001515600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff161515141515612d7057600080fd5b6001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548160ff02191690831515021790555060019050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612e3157600080fd5b612e3e33848460006132dc565b612e9382600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461330c90919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550612f2e82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546130b290919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003018281548110151561303457fe5b90600052602060002001544210156130a757600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018281548110151561309557fe5b906000526020600020015490506130ac565b600090505b92915050565b60008082840190508381101515156130c657fe5b8091505092915050565b6000806000806000809350600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018681548110151561312a57fe5b9060005260206000200154925064174876e7ff9150600090505b600760008481526020019081526020016000206000018054905081101561323e57600760008481526020019081526020016000206000018181548110151561318857fe5b9060005260206000200154421015613231578160076000858152602001908152602001600020600001828154811015156131be57fe5b906000526020600020015410156132305760076000848152602001908152602001600020600001818154811015156131f257fe5b90600052602060002001549150600760008481526020019081526020016000206001018181548110151561322257fe5b906000526020600020015493505b5b8080600101915050613144565b600084141561325057600094506132d2565b6132cf60646132c186600860008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018a8154811015156132a857fe5b906000526020600020015461353c90919063ffffffff16565b61357790919063ffffffff16565b94505b5050505092915050565b6132e884848484613592565b8015613306576132f784611ad7565b821115151561330557600080fd5b5b50505050565b600082821115151561331a57fe5b818303905092915050565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000183600b81111561337357fe5b9080600181540180825580915050906001820390600052602060002001600090919290919091505550600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101829080600181540180825580915050906001820390600052602060002001600090919290919091505550600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201429080600181540180825580915050906001820390600052602060002001600090919290919091505550600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003018190806001815401808255809150509060018203906000526020600020016000909192909190915055508373ffffffffffffffffffffffffffffffffffffffff167f49eaf4942f1237055eb4cfa5f31c9dfe50d5b4ade01e021f7de8be2fbbde557b8383604051808381526020018281526020019250505060405180910390a250505050565b60008060008414156135515760009150613570565b828402905082848281151561356257fe5b0414151561356c57fe5b8091505b5092915050565b600080828481151561358557fe5b0490508091505092915050565b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156135cd57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561360957600080fd5b81600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541015151561365a57600080fd5b80156136c35760001515600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff1615151415156136c257600080fd5b5b50505050565b8154818355818111156136f0578183600052602060002091820191016136ef91906136f5565b5b505050565b61371791905b808211156137135760008160009055506001016136fb565b5090565b905600a165627a7a723058205780a75a6b7584b966323e1e2c7e826f8322d4befc0f0edc5a7d818a415cc1480029
Deployed Bytecode
0x608060405260043610610180576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063015d200f1461018557806305c7400a146101dc57806306fdde031461020b5780630789a3131461029b578063095ea7b3146102d557806318160ddd1461033a57806323b872dd146103655780632f6c493c146103ea578063313ce567146104455780633f4ba83a146104705780634149953d146104875780635c975abb1461050c57806369132d431461053b57806370a08231146105925780638456cb59146105e95780638da5cb5b146106005780638e2833341461065757806390e99b091461072457806394dbc70e1461075357806395d89b41146107ae5780639846d9de1461083e5780639a713d05146109375780639dc29fac1461097b578063a26a1bc9146109e0578063a9059cbb14610a2d578063ac1a717514610a92578063dd62ed3e14610c4a578063f2fde38b14610cc1578063f435f5a714610d04578063fb93210814610d5f575b600080fd5b34801561019157600080fd5b506101c6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610dc4565b6040518082815260200191505060405180910390f35b3480156101e857600080fd5b506101f1610f53565b604051808215151515815260200191505060405180910390f35b34801561021757600080fd5b50610220610f66565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610260578082015181840152602081019050610245565b50505050905090810190601f16801561028d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102a757600080fd5b506102d3600480360381019080803560ff16906020019092919080359060200190929190505050611004565b005b3480156102e157600080fd5b50610320600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611219565b604051808215151515815260200191505060405180910390f35b34801561034657600080fd5b5061034f611338565b6040518082815260200191505060405180910390f35b34801561037157600080fd5b506103d0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061133e565b604051808215151515815260200191505060405180910390f35b3480156103f657600080fd5b5061042b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116b1565b604051808215151515815260200191505060405180910390f35b34801561045157600080fd5b5061045a6117d4565b6040518082815260200191505060405180910390f35b34801561047c57600080fd5b506104856117da565b005b34801561049357600080fd5b506104f2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611898565b604051808215151515815260200191505060405180910390f35b34801561051857600080fd5b50610521611ac4565b604051808215151515815260200191505060405180910390f35b34801561054757600080fd5b5061057c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ad7565b6040518082815260200191505060405180910390f35b34801561059e57600080fd5b506105d3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b03565b6040518082815260200191505060405180910390f35b3480156105f557600080fd5b506105fe611b4f565b005b34801561060c57600080fd5b50610615611c0f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561066357600080fd5b50610685600480360381019080803560ff169060200190929190505050611c34565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156106cc5780820151818401526020810190506106b1565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561070e5780820151818401526020810190506106f3565b5050505090500194505050505060405180910390f35b34801561073057600080fd5b50610739611d21565b604051808215151515815260200191505060405180910390f35b34801561075f57600080fd5b50610794600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611dcc565b604051808215151515815260200191505060405180910390f35b3480156107ba57600080fd5b506107c3611e25565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108035780820151818401526020810190506107e8565b50505050905090810190601f1680156108305780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561084a57600080fd5b50610935600480360381019080803560ff169060200190929190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050611ec3565b005b34801561094357600080fd5b50610979600480360381019080803560ff169060200190929190803590602001909291908035906020019092919050505061202e565b005b34801561098757600080fd5b506109c6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612186565b604051808215151515815260200191505060405180910390f35b3480156109ec57600080fd5b50610a2b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061232b565b005b348015610a3957600080fd5b50610a78600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061243c565b604051808215151515815260200191505060405180910390f35b348015610a9e57600080fd5b50610ad3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061260b565b60405180806020018060200180602001806020018060200186810386528b818151815260200191508051906020019060200280838360005b83811015610b26578082015181840152602081019050610b0b565b5050505090500186810385528a818151815260200191508051906020019060200280838360005b83811015610b68578082015181840152602081019050610b4d565b50505050905001868103845289818151815260200191508051906020019060200280838360005b83811015610baa578082015181840152602081019050610b8f565b50505050905001868103835288818151815260200191508051906020019060200280838360005b83811015610bec578082015181840152602081019050610bd1565b50505050905001868103825287818151815260200191508051906020019060200280838360005b83811015610c2e578082015181840152602081019050610c13565b505050509050019a505050505050505050505060405180910390f35b348015610c5657600080fd5b50610cab600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612ad2565b6040518082815260200191505060405180910390f35b348015610ccd57600080fd5b50610d02600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612b5c565b005b348015610d1057600080fd5b50610d45600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612cb1565b604051808215151515815260200191505060405180910390f35b348015610d6b57600080fd5b50610daa600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612dd4565b604051808215151515815260200191505060405180910390f35b6000806000809150600090505b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000180549050811015610f49576001600b811115610e2b57fe5b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000182815481101515610e7a57fe5b90600052602060002001541415610eae57610ea7610e988583612fe3565b836130b290919063ffffffff16565b9150610f3c565b6000600b811115610ebb57fe5b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000182815481101515610f0a57fe5b9060005260206000200154141515610f3b57610f38610f2985836130d0565b836130b290919063ffffffff16565b91505b5b8080600101915050610dd1565b8192505050919050565b600560009054906101000a900460ff1681565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ffc5780601f10610fd157610100808354040283529160200191610ffc565b820191906000526020600020905b815481529060010190602001808311610fdf57829003601f168201915b505050505081565b60008060008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561106757600080fd5b6007600088600b81111561107757fe5b815260200190815260200160002094506000935060009250600091505b84600001805490508210156110df578585600001838154811015156110b557fe5b906000526020600020015414156110d257600193508192506110df565b8180600101925050611094565b831561120b578290505b600185600001805490500381101561118457846000016001820181548110151561110f57fe5b9060005260206000200154856000018281548110151561112b57fe5b9060005260206000200181905550846001016001820181548110151561114d57fe5b9060005260206000200154856001018281548110151561116957fe5b906000526020600020018190555080806001019150506110e9565b84600001600186600001805490500381548110151561119f57fe5b9060005260206000200160009055846000018054809190600190036111c491906136c9565b508460010160018660010180549050038154811015156111e057fe5b90600052602060002001600090558460010180548091906001900361120591906136c9565b50611210565b600080fd5b50505050505050565b60008060149054906101000a900460ff1615151561123657600080fd5b60008211151561124557600080fd5b81600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60045481565b60008060149054906101000a900460ff1615151561135b57600080fd5b61136884848460016132dc565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156113f657600080fd5b61144b82600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461330c90919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506114e682600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546130b290919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506115be82600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461330c90919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561170e57600080fd5b60011515600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff16151514151561177057600080fd5b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548160ff02191690831515021790555060019050919050565b60035481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561183557600080fd5b600060149054906101000a900460ff16151561185057600080fd5b60008060146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118f557600080fd5b600560009054906101000a900460ff1615151561191157600080fd5b61191e84848460006132dc565b61197382600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461330c90919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550611a0e82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546130b290919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600060149054906101000a900460ff1681565b6000611afc611ae583610dc4565b611aee84611b03565b61330c90919063ffffffff16565b9050919050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611baa57600080fd5b600060149054906101000a900460ff16151515611bc657600080fd5b6001600060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606080600083600b811115611c4557fe5b9050600760008281526020019081526020016000206000016007600083815260200190815260200160002060010181805480602002602001604051908101604052809291908181526020018280548015611cbe57602002820191906000526020600020905b815481526020019060010190808311611caa575b5050505050915080805480602002602001604051908101604052809291908181526020018280548015611d1057602002820191906000526020600020905b815481526020019060010190808311611cfc575b505050505090509250925050915091565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d7e57600080fd5b6001600560006101000a81548160ff0219169083151502179055507f7187cbcbda53f626dba64b95bb4562770cbe3f2026eebce9d93b79a169f8460c60405160405180910390a16001905090565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff169050919050565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611ebb5780601f10611e9057610100808354040283529160200191611ebb565b820191906000526020600020905b815481529060010190602001808311611e9e57829003601f168201915b505050505081565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f2057600080fd5b60008451111515611f3057600080fd5b82518451141515611f4057600080fd5b81518451141515611f5057600080fd5b6000600b811115611f5d57fe5b85600b811115611f6957fe5b14151515611f7657600080fd5b600090505b835181101561202757611fa48482815181101515611f9557fe5b90602001906020020151611ad7565b8382815181101515611fb257fe5b9060200190602002015111151515611fc957600080fd5b61201a8482815181101515611fda57fe5b90602001906020020151868584815181101515611ff357fe5b90602001906020020151858581518110151561200b57fe5b90602001906020020151613325565b8080600101915050611f7b565b5050505050565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561208e57600080fd5b60008411801561209f575060648411155b15156120aa57600080fd5b6007600087600b8111156120ba57fe5b8152602001908152602001600020925060009150600090505b8260000180549050811015612117578483600001828154811015156120f457fe5b9060005260206000200154141561210a57600080fd5b80806001019150506120d3565b811561212257600080fd5b8260000185908060018154018082558091505090600182039060005260206000200160009091929091909150555082600101849080600181540180825580915050906001820390600052602060002001600090919290919091505550505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156121e357600080fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154821115151561223457600080fd5b61228982600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461330c90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506122e48260045461330c90919063ffffffff16565b6004819055507fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb826040518082815260200191505060405180910390a16001905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561238657600080fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301805490501115156123d957600080fd5b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003018281548110151561242a57fe5b90600052602060002001819055505050565b60008060149054906101000a900460ff1615151561245957600080fd5b61246633848460016132dc565b6124bb82600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461330c90919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555061255682600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546130b290919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6060806060806060806000600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054905060405190808252806020026020018201604052801561268a5781602001602082028038833980820191505090505b509150600090505b600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054905081101561286c576001600b8111156126ec57fe5b600860008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018281548110151561273b57fe5b906000526020600020015414156127a05761277f6127598983612fe3565b838381518110151561276757fe5b906020019060200201516130b290919063ffffffff16565b828281518110151561278d57fe5b906020019060200201818152505061285f565b6000600b8111156127ad57fe5b600860008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001828154811015156127fc57fe5b906000526020600020015414151561285e5761284161281b89836130d0565b838381518110151561282957fe5b906020019060200201516130b290919063ffffffff16565b828281518110151561284f57fe5b90602001906020020181815250505b5b8080600101915050612692565b600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001600860008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010183600860008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201600860008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301848054806020026020016040519081016040528092919081815260200182805480156129c057602002820191906000526020600020905b8154815260200190600101908083116129ac575b5050505050945083805480602002602001604051908101604052809291908181526020018280548015612a1257602002820191906000526020600020905b8154815260200190600101908083116129fe575b5050505050935081805480602002602001604051908101604052809291908181526020018280548015612a6457602002820191906000526020600020905b815481526020019060010190808311612a50575b5050505050915080805480602002602001604051908101604052809291908181526020018280548015612ab657602002820191906000526020600020905b815481526020019060010190808311612aa2575b5050505050905096509650965096509650505091939590929450565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612bb757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515612bf357600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612d0e57600080fd5b60001515600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff161515141515612d7057600080fd5b6001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548160ff02191690831515021790555060019050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612e3157600080fd5b612e3e33848460006132dc565b612e9382600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461330c90919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550612f2e82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546130b290919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003018281548110151561303457fe5b90600052602060002001544210156130a757600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018281548110151561309557fe5b906000526020600020015490506130ac565b600090505b92915050565b60008082840190508381101515156130c657fe5b8091505092915050565b6000806000806000809350600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018681548110151561312a57fe5b9060005260206000200154925064174876e7ff9150600090505b600760008481526020019081526020016000206000018054905081101561323e57600760008481526020019081526020016000206000018181548110151561318857fe5b9060005260206000200154421015613231578160076000858152602001908152602001600020600001828154811015156131be57fe5b906000526020600020015410156132305760076000848152602001908152602001600020600001818154811015156131f257fe5b90600052602060002001549150600760008481526020019081526020016000206001018181548110151561322257fe5b906000526020600020015493505b5b8080600101915050613144565b600084141561325057600094506132d2565b6132cf60646132c186600860008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018a8154811015156132a857fe5b906000526020600020015461353c90919063ffffffff16565b61357790919063ffffffff16565b94505b5050505092915050565b6132e884848484613592565b8015613306576132f784611ad7565b821115151561330557600080fd5b5b50505050565b600082821115151561331a57fe5b818303905092915050565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000183600b81111561337357fe5b9080600181540180825580915050906001820390600052602060002001600090919290919091505550600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101829080600181540180825580915050906001820390600052602060002001600090919290919091505550600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201429080600181540180825580915050906001820390600052602060002001600090919290919091505550600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003018190806001815401808255809150509060018203906000526020600020016000909192909190915055508373ffffffffffffffffffffffffffffffffffffffff167f49eaf4942f1237055eb4cfa5f31c9dfe50d5b4ade01e021f7de8be2fbbde557b8383604051808381526020018281526020019250505060405180910390a250505050565b60008060008414156135515760009150613570565b828402905082848281151561356257fe5b0414151561356c57fe5b8091505b5092915050565b600080828481151561358557fe5b0490508091505092915050565b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156135cd57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561360957600080fd5b81600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541015151561365a57600080fd5b80156136c35760001515600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff1615151415156136c257600080fd5b5b50505050565b8154818355818111156136f0578183600052602060002091820191016136ef91906136f5565b5b505050565b61371791905b808211156137135760008160009055506001016136fb565b5090565b905600a165627a7a723058205780a75a6b7584b966323e1e2c7e826f8322d4befc0f0edc5a7d818a415cc1480029
Deployed Bytecode Sourcemap
12011:1294:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2895:8;;;11437:561;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11437:561:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2578:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2578:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;2461:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2461:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2461:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9300:1021;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9300:1021:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4281:256;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4281:256:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2543:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2543:26:0;;;;;;;;;;;;;;;;;;;;;;;4543:504;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4543:504:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3423:174;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3423:174:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2513:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2513:23:0;;;;;;;;;;;;;;;;;;;;;;;1559:105;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1559:105:0;;;;;;5426:379;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5426:379:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1257:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1257:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;13157:139;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13157:139:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5988:111;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5988:111:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1448:103;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1448:103:0;;;;;;701:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;701:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;10331:229;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10331:229:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;10331:229:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;10331:229:0;;;;;;;;;;;;;;;;;;;5817:153;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5817:153:0;;;;;;;;;;;;;;;;;;;;;;;;;;;6105:105;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6105:105:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2486:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2486:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2486:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12638:507;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12638:507:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8651:637;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8651:637:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3606:288;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3606:288:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8452:183;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8452:183:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5059:355;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5059:355:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10566:865;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10566:865:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;10566:865:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;10566:865:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;10566:865:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;10566:865:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;10566:865:0;;;;;;;;;;;;;;;;;;;;;;;;;6216:139;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6216:139:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;976:192;;8:9:-1;5:2;;;30:1;27;20:12;5:2;976:192:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;3244:173;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3244:173:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3905:368;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3905:368:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11437:561;11498:7;11518:19;11556:9;11540:1;11518:23;;11568:1;11556:13;;11552:410;11575:8;:16;11584:6;11575:16;;;;;;;;;;;;;;;:25;;:32;;;;11571:1;:36;11552:410;;;11671:20;11663:29;;;;;;;;11631:8;:16;11640:6;11631:16;;;;;;;;;;;;;;;:25;;11657:1;11631:28;;;;;;;;;;;;;;;;;;:61;11628:323;;;11727:49;11743:32;11765:6;11773:1;11743:21;:32::i;:::-;11727:11;:15;;:49;;;;:::i;:::-;11713:63;;11628:323;;;11841:14;11833:23;;;;;;;;11801:8;:16;11810:6;11801:16;;;;;;;;;;;;;;;:25;;11827:1;11801:28;;;;;;;;;;;;;;;;;;:55;;11798:153;;;11891:44;11907:27;11924:6;11932:1;11907:16;:27::i;:::-;11891:11;:15;;:44;;;;:::i;:::-;11877:58;;11798:153;11628:323;11609:3;;;;;;;11552:410;;;11979:11;11972:18;;11437:561;;;;;:::o;2578:35::-;;;;;;;;;;;;;:::o;2461:18::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9300:1021::-;9392:31;9480:13;9512;9544:9;9812;944:5;;;;;;;;;;;930:19;;:10;:19;;;922:28;;;;;;;;9426:13;:33;9448:9;9440:18;;;;;;;;9426:33;;;;;;;;;;;9392:67;;9496:5;9480:21;;9528:1;9512:17;;9556:1;9544:13;;9540:220;9563:8;:17;;:24;;;;9559:1;:28;9540:220;;;9636:9;9612:8;:17;;9630:1;9612:20;;;;;;;;;;;;;;;;;;:33;9609:140;;;9677:4;9666:15;;9708:1;9700:9;;9728:5;;9609:140;9589:3;;;;;;;9540:220;;;9783:8;9780:524;;;9824:5;9812:17;;9808:215;9862:1;9835:8;:17;;:24;;;;:28;9831:1;:32;9808:215;;;9911:8;:17;;9933:1;9929;:5;9911:24;;;;;;;;;;;;;;;;;;9888:8;:17;;9906:1;9888:20;;;;;;;;;;;;;;;;;:47;;;;9980:8;:20;;10005:1;10001;:5;9980:27;;;;;;;;;;;;;;;;;;9954:8;:20;;9975:1;9954:23;;;;;;;;;;;;;;;;;:53;;;;9865:3;;;;;;;9808:215;;;10044:8;:17;;10089:1;10062:8;:17;;:24;;;;:28;10044:47;;;;;;;;;;;;;;;;;10037:54;;;10106:8;:17;;:26;;;;;;;;;;;;:::i;:::-;;10154:8;:20;;10205:1;10175:8;:20;;:27;;;;:31;10154:53;;;;;;;;;;;;;;;;;10147:60;;;10222:8;:20;;:29;;;;;;;;;;;;:::i;:::-;;9780:524;;;10284:8;;;9780:524;9300:1021;;;;;;;:::o;4281:256::-;4362:4;1337:6;;;;;;;;;;;1336:7;1328:16;;;;;;;;4396:1;4387:6;:10;4379:19;;;;;;;;4446:6;4409:4;:16;4414:10;4409:16;;;;;;;;;;;;;;;:24;;:34;4434:8;4409:34;;;;;;;;;;;;;;;:43;;;;4490:8;4469:38;;4478:10;4469:38;;;4500:6;4469:38;;;;;;;;;;;;;;;;;;4525:4;4518:11;;4281:256;;;;:::o;2543:26::-;;;;:::o;4543:504::-;4639:4;1337:6;;;;;;;;;;;1336:7;1328:16;;;;;;;;4656:39;4670:5;4677:3;4682:6;4690:4;4656:13;:39::i;:::-;4725:4;:11;4730:5;4725:11;;;;;;;;;;;;;;;:19;;:31;4745:10;4725:31;;;;;;;;;;;;;;;;4714:6;:42;;4706:51;;;;;;;;4792:31;4816:6;4792:4;:11;4797:5;4792:11;;;;;;;;;;;;;;;:19;;;:23;;:31;;;;:::i;:::-;4770:4;:11;4775:5;4770:11;;;;;;;;;;;;;;;:19;;:53;;;;4854:29;4876:6;4854:4;:9;4859:3;4854:9;;;;;;;;;;;;;;;:17;;;:21;;:29;;;;:::i;:::-;4834:4;:9;4839:3;4834:9;;;;;;;;;;;;;;;:17;;:49;;;;4930:43;4966:6;4930:4;:11;4935:5;4930:11;;;;;;;;;;;;;;;:19;;:31;4950:10;4930:31;;;;;;;;;;;;;;;;:35;;:43;;;;:::i;:::-;4896:4;:11;4901:5;4896:11;;;;;;;;;;;;;;;:19;;:31;4916:10;4896:31;;;;;;;;;;;;;;;:77;;;;5005:3;4989:28;;4998:5;4989:28;;;5010:6;4989:28;;;;;;;;;;;;;;;;;;5035:4;5028:11;;4543:504;;;;;:::o;3423:174::-;3481:4;944:5;;;;;;;;;;;930:19;;:10;:19;;;922:28;;;;;;;;3527:4;3506:25;;:4;:12;3511:6;3506:12;;;;;;;;;;;;;;;:17;;;;;;;;;;;;:25;;;3498:34;;;;;;;;3563:5;3543:4;:12;3548:6;3543:12;;;;;;;;;;;;;;;:17;;;:25;;;;;;;;;;;;;;;;;;3585:4;3578:11;;3423:174;;;:::o;2513:23::-;;;;:::o;1559:105::-;944:5;;;;;;;;;;;930:19;;:10;:19;;;922:28;;;;;;;;1413:6;;;;;;;;;;;1405:15;;;;;;;;1626:5;1617:6;;:14;;;;;;;;;;;;;;;;;;1647:9;;;;;;;;;;1559:105::o;5426:379::-;5532:4;944:5;;;;;;;;;;;930:19;;:10;:19;;;922:28;;;;;;;;2807:15;;;;;;;;;;;2806:16;2798:25;;;;;;;;5549:40;5563:5;5570:3;5575:6;5583:5;5549:13;:40::i;:::-;5631:31;5655:6;5631:4;:11;5636:5;5631:11;;;;;;;;;;;;;;;:19;;;:23;;:31;;;;:::i;:::-;5609:4;:11;5614:5;5609:11;;;;;;;;;;;;;;;:19;;:53;;;;5693:29;5715:6;5693:4;:9;5698:3;5693:9;;;;;;;;;;;;;;;:17;;;:21;;:29;;;;:::i;:::-;5673:4;:9;5678:3;5673:9;;;;;;;;;;;;;;;:17;;:49;;;;5763:3;5747:28;;5756:5;5747:28;;;5768:6;5747:28;;;;;;;;;;;;;;;;;;5793:4;5786:11;;5426:379;;;;;:::o;1257:26::-;;;;;;;;;;;;;:::o;13157:139::-;13216:7;13243:45;13265:22;13280:6;13265:14;:22::i;:::-;13243:17;13253:6;13243:9;:17::i;:::-;:21;;:45;;;;:::i;:::-;13236:52;;13157:139;;;:::o;5988:111::-;6044:7;6071:4;:12;6076:6;6071:12;;;;;;;;;;;;;;;:20;;;6064:27;;5988:111;;;:::o;1448:103::-;944:5;;;;;;;;;;;930:19;;:10;:19;;;922:28;;;;;;;;1337:6;;;;;;;;;;;1336:7;1328:16;;;;;;;;1516:4;1507:6;;:13;;;;;;;;;;;;;;;;;;1536:7;;;;;;;;;;1448:103::o;701:20::-;;;;;;;;;;;;;:::o;10331:229::-;10396:9;10415;10445:11;10467:5;10459:14;;;;;;;;10445:28;;10492:13;:18;10506:3;10492:18;;;;;;;;;;;:27;;10521:13;:18;10535:3;10521:18;;;;;;;;;;;:30;;10484:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10331:229;;;;:::o;5817:153::-;5868:4;944:5;;;;;;;;;;;930:19;;:10;:19;;;922:28;;;;;;;;5903:4;5885:15;;:22;;;;;;;;;;;;;;;;;;5923:17;;;;;;;;;;5958:4;5951:11;;5817:153;:::o;6105:105::-;6161:4;6185;:12;6190:6;6185:12;;;;;;;;;;;;;;;:17;;;;;;;;;;;;6178:24;;6105:105;;;:::o;2486:20::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;12638:507::-;12969:9;944:5;;;;;;;;;;;930:19;;:10;:19;;;922:28;;;;;;;;12803:1;12790:3;:10;:14;12782:23;;;;;;;;12838:6;:13;12824:3;:10;:27;12816:36;;;;;;;;12885:8;:15;12871:3;:10;:29;12863:38;;;;;;;;12929:14;12920:23;;;;;;;;:5;:23;;;;;;;;;;12912:32;;;;;;;;12981:1;12969:13;;12965:173;12988:3;:10;12984:1;:14;12965:173;;;13040:20;13053:3;13057:1;13053:6;;;;;;;;;;;;;;;;;;13040:12;:20::i;:::-;13027:6;13034:1;13027:9;;;;;;;;;;;;;;;;;;:33;;13019:42;;;;;;;;13076:50;13088:3;13092:1;13088:6;;;;;;;;;;;;;;;;;;13096:5;13103:6;13110:1;13103:9;;;;;;;;;;;;;;;;;;13114:8;13123:1;13114:11;;;;;;;;;;;;;;;;;;13076;:50::i;:::-;13000:3;;;;;;;12965:173;;;12638:507;;;;;:::o;8651:637::-;8807:31;8885:13;8921:9;944:5;;;;;;;;;;;930:19;;:10;:19;;;922:28;;;;;;;;8775:1;8764:8;:12;:31;;;;;8792:3;8780:8;:15;;8764:31;8756:40;;;;;;;;8841:13;:33;8863:9;8855:18;;;;;;;;8841:33;;;;;;;;;;;8807:67;;8901:5;8885:21;;8933:1;8921:13;;8917:183;8940:8;:17;;:24;;;;8936:1;:28;8917:183;;;9013:7;8989:8;:17;;9007:1;8989:20;;;;;;;;;;;;;;;;;;:31;8986:103;;;9041:8;;;8986:103;8966:3;;;;;;;8917:183;;;9123:8;9120:161;;;9147:8;;;9120:161;9188:8;:17;;9211:7;9188:31;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;9188:31:0;;;;;;;;;;;;;;;;;;;;;;9234:8;:20;;9260:8;9234:35;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;9234:35:0;;;;;;;;;;;;;;;;;;;;;;8651:637;;;;;;:::o;3606:288::-;3675:4;944:5;;;;;;;;;;;930:19;;:10;:19;;;922:28;;;;;;;;3710:4;:9;3715:3;3710:9;;;;;;;;;;;;;;;:17;;;3700:6;:27;;3692:36;;;;;;;;3759:29;3781:6;3759:4;:9;3764:3;3759:9;;;;;;;;;;;;;;;:17;;;:21;;:29;;;;:::i;:::-;3739:4;:9;3744:3;3739:9;;;;;;;;;;;;;;;:17;;:49;;;;3813:23;3829:6;3813:11;;:15;;:23;;;;:::i;:::-;3799:11;:37;;;;3852:12;3857:6;3852:12;;;;;;;;;;;;;;;;;;3882:4;3875:11;;3606:288;;;;:::o;8452:183::-;944:5;;;;;;;;;;;930:19;;:10;:19;;;922:28;;;;;;;;8573:6;8540:8;:16;8549:6;8540:16;;;;;;;;;;;;;;;:24;;:31;;;;:39;8532:48;;;;;;;;8626:1;8591:8;:16;8600:6;8591:16;;;;;;;;;;;;;;;:24;;8616:6;8591:32;;;;;;;;;;;;;;;;;:36;;;;8452:183;;:::o;5059:355::-;5136:4;1337:6;;;;;;;;;;;1336:7;1328:16;;;;;;;;5153:44;5167:10;5179:3;5184:6;5192:4;5153:13;:44::i;:::-;5237:36;5266:6;5237:4;:16;5242:10;5237:16;;;;;;;;;;;;;;;:24;;;:28;;:36;;;;:::i;:::-;5210:4;:16;5215:10;5210:16;;;;;;;;;;;;;;;:24;;:63;;;;5304:29;5326:6;5304:4;:9;5309:3;5304:9;;;;;;;;;;;;;;;:17;;;:21;;:29;;;;:::i;:::-;5284:4;:9;5289:3;5284:9;;;;;;;;;;;;;;;:17;;:49;;;;5372:3;5351:33;;5360:10;5351:33;;;5377:6;5351:33;;;;;;;;;;;;;;;;;;5402:4;5395:11;;5059:355;;;;:::o;10566:865::-;10625:9;10644;10663;10682;10701;10741:24;10830:9;10782:8;:16;10791:6;10782:16;;;;;;;;;;;;;;;:25;;:32;;;;10768:47;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;10768:47:0;;;;10741:74;;10842:1;10830:13;;10826:406;10849:8;:16;10858:6;10849:16;;;;;;;;;;;;;;;:25;;:32;;;;10845:1;:36;10826:406;;;10945:20;10937:29;;;;;;;;10905:8;:16;10914:6;10905:16;;;;;;;;;;;;;;;:25;;10931:1;10905:28;;;;;;;;;;;;;;;;;;:61;10902:319;;;11000:48;11015:32;11037:6;11045:1;11015:21;:32::i;:::-;11000:7;11008:1;11000:10;;;;;;;;;;;;;;;;;;:14;;:48;;;;:::i;:::-;10987:7;10995:1;10987:10;;;;;;;;;;;;;;;;;:61;;;;;10902:319;;;11113:14;11105:23;;;;;;;;11073:8;:16;11082:6;11073:16;;;;;;;;;;;;;;;:25;;11099:1;11073:28;;;;;;;;;;;;;;;;;;:55;;11070:151;;;11162:43;11177:27;11194:6;11202:1;11177:16;:27::i;:::-;11162:7;11170:1;11162:10;;;;;;;;;;;;;;;;;;:14;;:43;;;;:::i;:::-;11149:7;11157:1;11149:10;;;;;;;;;;;;;;;;;:56;;;;;11070:151;10902:319;10883:3;;;;;;;10826:406;;;11260:8;:16;11269:6;11260:16;;;;;;;;;;;;;;;:25;;11296:8;:16;11305:6;11296:16;;;;;;;;;;;;;;;:36;;11343:7;11361:8;:16;11370:6;11361:16;;;;;;;;;;;;;;;:26;;11398:8;:16;11407:6;11398:16;;;;;;;;;;;;;;;:24;;11252:171;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10566:865;;;;;;;;;:::o;6216:139::-;6290:7;6317:4;:12;6322:6;6317:12;;;;;;;;;;;;;;;:20;;:30;6338:8;6317:30;;;;;;;;;;;;;;;;6310:37;;6216:139;;;;:::o;976:192::-;944:5;;;;;;;;;;;930:19;;:10;:19;;;922:28;;;;;;;;1077:1;1057:22;;:8;:22;;;;1049:31;;;;;;;;1124:8;1096:37;;1117:5;;;;;;;;;;;1096:37;;;;;;;;;;;;1152:8;1144:5;;:16;;;;;;;;;;;;;;;;;;976:192;:::o;3244:173::-;3300:4;944:5;;;;;;;;;;;930:19;;:10;:19;;;922:28;;;;;;;;3346:5;3325:26;;:4;:12;3330:6;3325:12;;;;;;;;;;;;;;;:17;;;;;;;;;;;;:26;;;3317:35;;;;;;;;3383:4;3363;:12;3368:6;3363:12;;;;;;;;;;;;;;;:17;;;:24;;;;;;;;;;;;;;;;;;3405:4;3398:11;;3244:173;;;:::o;3905:368::-;3980:4;944:5;;;;;;;;;;;930:19;;:10;:19;;;922:28;;;;;;;;3997:45;4011:10;4023:3;4028:6;4036:5;3997:13;:45::i;:::-;4089:36;4118:6;4089:4;:16;4094:10;4089:16;;;;;;;;;;;;;;;:24;;;:28;;:36;;;;:::i;:::-;4062:4;:16;4067:10;4062:16;;;;;;;;;;;;;;;:24;;:63;;;;4156:29;4178:6;4156:4;:9;4161:3;4156:9;;;;;;;;;;;;;;;:17;;;:21;;:29;;;;:::i;:::-;4136:4;:9;4141:3;4136:9;;;;;;;;;;;;;;;:17;;:49;;;;4231:3;4210:33;;4219:10;4210:33;;;4236:6;4210:33;;;;;;;;;;;;;;;;;;4261:4;4254:11;;3905:368;;;;:::o;8168:272::-;8251:7;8280:8;:16;8289:6;8280:16;;;;;;;;;;;;;;;:24;;8305:6;8280:32;;;;;;;;;;;;;;;;;;8274:3;:38;8271:162;;;8336:8;:16;8345:6;8336:16;;;;;;;;;;;;;;;:36;;8373:6;8336:44;;;;;;;;;;;;;;;;;;8329:51;;;;8271:162;8420:1;8413:8;;8168:272;;;;;:::o;523:147::-;581:7;601:9;617:1;613;:5;601:17;;641:1;636;:6;;629:14;;;;;;661:1;654:8;;523:147;;;;;:::o;7375:785::-;7453:7;7473:15;7503:11;7572:12;7613:9;7491:1;7473:19;;7525:8;:16;7534:6;7525:16;;;;;;;;;;;;;;;:25;;7551:6;7525:33;;;;;;;;;;;;;;;;;;7503:56;;7587:11;7572:26;;7625:1;7613:13;;7609:358;7633:13;:18;7647:3;7633:18;;;;;;;;;;;:27;;:34;;;;7629:1;:38;7609:358;;;7698:13;:18;7712:3;7698:18;;;;;;;;;;;:27;;7726:1;7698:30;;;;;;;;;;;;;;;;;;7692:3;:36;7689:267;;;7785:4;7752:13;:18;7766:3;7752:18;;;;;;;;;;;:27;;7780:1;7752:30;;;;;;;;;;;;;;;;;;:37;7749:192;;;7821:13;:18;7835:3;7821:18;;;;;;;;;;;:27;;7849:1;7821:30;;;;;;;;;;;;;;;;;;7814:37;;7884:13;:18;7898:3;7884:18;;;;;;;;;;;:30;;7915:1;7884:33;;;;;;;;;;;;;;;;;;7874:43;;7749:192;7689:267;7669:3;;;;;;;7609:358;;;8001:1;7990:7;:12;7987:166;;;8025:1;8018:8;;;;7987:166;8066:75;8137:3;8066:66;8123:7;8066:8;:16;8075:6;8066:16;;;;;;;;;;;;;;;:36;;8103:6;8066:44;;;;;;;;;;;;;;;;;;:48;;:66;;;;:::i;:::-;:70;;:75;;;;:::i;:::-;8059:82;;7375:785;;;;;;;;;:::o;12377:253::-;12481:51;12501:5;12508:3;12513:6;12521:10;12481:19;:51::i;:::-;12546:10;12543:80;;;12591:19;12604:5;12591:12;:19::i;:::-;12581:6;:29;;12573:38;;;;;;;;12543:80;12377:253;;;;:::o;394:123::-;452:7;484:1;479;:6;;472:14;;;;;;508:1;504;:5;497:12;;394:123;;;;:::o;7010:357::-;7119:8;:13;7128:3;7119:13;;;;;;;;;;;;;;;:22;;7155:9;7147:18;;;;;;;;7119:47;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;7119:47:0;;;;;;;;;;;;;;;;;;;;;;7177:8;:13;7186:3;7177:13;;;;;;;;;;;;;;;:33;;7216:6;7177:46;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;7177:46:0;;;;;;;;;;;;;;;;;;;;;;7234:8;:13;7243:3;7234:13;;;;;;;;;;;;;;;:23;;7263:3;7234:33;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;7234:33:0;;;;;;;;;;;;;;;;;;;;;;7278:8;:13;7287:3;7278:13;;;;;;;;;;;;;;;:21;;7305:8;7278:36;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;7278:36:0;;;;;;;;;;;;;;;;;;;;;;7337:3;7332:27;;;7342:6;7350:8;7332:27;;;;;;;;;;;;;;;;;;;;;;;;7010:357;;;;:::o;52:208::-;110:7;187:9;139:1;134;:6;130:47;;;164:1;157:8;;;;130:47;203:1;199;:5;187:17;;231:1;226;222;:5;;;;;;;;:10;215:18;;;;;;251:1;244:8;;52:208;;;;;;:::o;266:122::-;324:7;344:9;360:1;356;:5;;;;;;;;344:17;;379:1;372:8;;266:122;;;;;:::o;2923:313::-;3050:4;3035:20;;:3;:20;;;;3027:29;;;;;;;;3090:1;3075:17;;:3;:17;;;;3067:26;;;;;;;;3135:6;3112:4;:11;3117:5;3112:11;;;;;;;;;;;;;;;:19;;;:29;;3104:38;;;;;;;;3156:10;3153:76;;;3211:5;3191:25;;:4;:11;3196:5;3191:11;;;;;;;;;;;;;;;:16;;;;;;;;;;;;:25;;;3183:34;;;;;;;;3153:76;2923:313;;;;:::o;12011:1294::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o
Swarm Source
bzzr://5780a75a6b7584b966323e1e2c7e826f8322d4befc0f0edc5a7d818a415cc148
Loading...
Loading
Loading...
Loading
[ 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.