ERC-20
Staking
Overview
Max Total Supply
1,024,976,437.737399556 PERL
Holders
8,831 (0.00%)
Market
Price
$0.00 @ 0.000001 ETH (+455.37%)
Onchain Market Cap
$3,288,831.65
Circulating Supply Market Cap
$0.00
Other Info
Token Contract (WITH 18 Decimals)
Balance
892,630.199680567383383285 PERLValue
$2,864.17 ( ~1.0380 Eth) [0.0871%]Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Perlin
Compiler Version
v0.6.8+commit.0bbfe453
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion, Unlicense license, Audited
Contract Source Code (Solidity)Audit Report
/** *Submitted for verification at Etherscan.io on 2020-08-20 */ // SPDX-License-Identifier: UNLICENSED pragma solidity 0.6.8; //ERC20 Interface interface ERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address, uint256) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address, uint256) external returns (bool); function transferFrom(address, address, uint256) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } interface PerlinDAO { function isPerlinDAO() external view returns (bool); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } } //======================================PERLIN=========================================// contract Perlin is ERC20 { using SafeMath for uint256; // ERC-20 Parameters string public name; string public symbol; uint256 public decimals; uint256 public override totalSupply; // ERC-20 Mappings mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; // Parameters uint256 one; bool public emitting; uint256 public emissionCurve; uint256 baseline; uint256 public totalCap; uint256 public secondsPerEra; uint256 public currentEra; uint256 public nextEraTime; address public incentiveAddress; address public DAO; address public perlin1; address public burnAddress; // Events event NewCurve(address indexed DAO, uint256 newCurve); event NewIncentiveAddress(address indexed DAO, address newIncentiveAddress); event NewDuration(address indexed DAO, uint256 newDuration); event NewDAO(address indexed DAO, address newOwner); event NewEra(uint256 currentEra, uint256 nextEraTime, uint256 emission); // Only DAO can execute modifier onlyDAO() { require(msg.sender == DAO, "Must be DAO"); _; } //=====================================CREATION=========================================// // Constructor constructor() public { name = 'Perlin'; symbol = 'PERL'; decimals = 18; one = 10 ** decimals; totalSupply = 0; totalCap = 3 * 10**9 * one; // 3 billion emissionCurve = 2048; emitting = false; currentEra = 1; secondsPerEra = 86400; nextEraTime = now + secondsPerEra; DAO = 0x3F2a2c502E575f2fd4053c76f4E21623143518d8; perlin1 = 0xb5A73f5Fc8BbdbcE59bfD01CA8d35062e0dad801; baseline = 1033200000 * one; // Perlin1 Inital Supply burnAddress = 0x0000000000000000000000000000000000000001; } //========================================ERC20=========================================// function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } // ERC20 Transfer function function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(msg.sender, recipient, amount); return true; } // ERC20 Approve, change allowance functions function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(msg.sender, spender, amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(msg.sender, spender, _allowances[msg.sender][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(msg.sender, spender, _allowances[msg.sender][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } function _approve(address owner, address spender, uint256 amount) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } // ERC20 TransferFrom function function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } // Internal transfer function function _transfer(address sender, address recipient, uint256 amount) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance"); _balances[recipient] = _balances[recipient].add(amount); _checkEmission(); emit Transfer(sender, recipient, amount); } // Internal mint (upgrading and daily emissions) function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); totalSupply = totalSupply.add(amount); require(totalSupply <= totalCap, "Must not mint more than the cap"); _balances[account] = _balances[account].add(amount); emit Transfer(address(0), account, amount); } // Burn supply function burn(uint256 amount) public virtual { _burn(msg.sender, amount); } function burnFrom(address account, uint256 amount) public virtual { uint256 decreasedAllowance = allowance(account, msg.sender).sub(amount, "ERC20: burn amount exceeds allowance"); _approve(account, msg.sender, decreasedAllowance); _burn(account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance"); totalSupply = totalSupply.sub(amount); emit Transfer(account, address(0), amount); } //=========================================DAO=========================================// // Can start function daoStartEmissions() public onlyDAO { emitting = true; } // Can stop function daoStopEmissions() public onlyDAO { emitting = false; } // Can change emissionCurve function daoChangeEmissionCurve(uint256 newCurve) public onlyDAO { emissionCurve = newCurve; emit NewCurve(msg.sender, newCurve); } // Can change daily time function daoChangeEraDuration(uint256 newDuration) public onlyDAO { require(newDuration >= 100, "Must be greater than 100 seconds"); secondsPerEra = newDuration; emit NewDuration(msg.sender, newDuration); } // Can change Incentive Address function daoChangeIncentiveAddress(address newIncentiveAddress) public onlyDAO { incentiveAddress = newIncentiveAddress; emit NewIncentiveAddress(msg.sender, newIncentiveAddress); } // Can change DAO function daoChange(address newDAO) public onlyDAO { if (isContract(newDAO)) { require(PerlinDAO(newDAO).isPerlinDAO(), "Must be DAO"); } DAO = newDAO; emit NewDAO(msg.sender, newDAO); } function isContract(address account) internal view returns (bool) { uint256 size; // solhint-disable-next-line no-inline-assembly assembly { size := extcodesize(account) } return size > 0; } // Can purge DAO function daoPurge() public onlyDAO { DAO = address(0); emit NewDAO(msg.sender, address(0)); } //======================================EMISSION========================================// // Internal - Update emission function function _checkEmission() private { if ((now >= nextEraTime) && emitting) { // If new Era and allowed to emit currentEra = currentEra.add(1); // Increment Era nextEraTime = now.add(secondsPerEra); // Set next Era time uint256 _emission = getDailyEmission(); // Get Daily Dmission _mint(incentiveAddress, _emission); // Mint to the Incentive Address emit NewEra(currentEra, nextEraTime, _emission); // Emit Event } } // Calculate Daily Emission function getDailyEmission() public view returns (uint256) { // emission = (adjustedCap - totalSupply) / emissionCurve // adjustedCap = totalCap * (totalSupply / 1bn) uint adjustedCap = (totalCap.mul(totalSupply)).div(baseline); return (adjustedCap.sub(totalSupply)).div(emissionCurve); } //======================================UPGRADE========================================// // Old Owners to Upgrade function upgrade() public { uint balance = ERC20(perlin1).balanceOf(msg.sender); require(ERC20(perlin1).transferFrom(msg.sender, burnAddress, balance)); uint factor = 10**9; // perlin1 had 9 decimals _mint(msg.sender, balance.mul(factor)); // Correct ratio 1 : 10**9 } }
Contract Security Audit
- Quantstamp - August 19th, 2020 - Security Audit Report
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"DAO","type":"address"},{"indexed":false,"internalType":"uint256","name":"newCurve","type":"uint256"}],"name":"NewCurve","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"DAO","type":"address"},{"indexed":false,"internalType":"address","name":"newOwner","type":"address"}],"name":"NewDAO","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"DAO","type":"address"},{"indexed":false,"internalType":"uint256","name":"newDuration","type":"uint256"}],"name":"NewDuration","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"currentEra","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"nextEraTime","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"emission","type":"uint256"}],"name":"NewEra","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"DAO","type":"address"},{"indexed":false,"internalType":"address","name":"newIncentiveAddress","type":"address"}],"name":"NewIncentiveAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DAO","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"burnAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currentEra","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newDAO","type":"address"}],"name":"daoChange","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newCurve","type":"uint256"}],"name":"daoChangeEmissionCurve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newDuration","type":"uint256"}],"name":"daoChangeEraDuration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newIncentiveAddress","type":"address"}],"name":"daoChangeIncentiveAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"daoPurge","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"daoStartEmissions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"daoStopEmissions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"emissionCurve","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"emitting","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getDailyEmission","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"incentiveAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextEraTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"perlin1","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"secondsPerEra","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalCap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"upgrade","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b506040518060400160405280600681526020017f5065726c696e0000000000000000000000000000000000000000000000000000815250600090805190602001906200005f9291906200021b565b506040518060400160405280600481526020017f5045524c0000000000000000000000000000000000000000000000000000000081525060019080519060200190620000ad9291906200021b565b506012600281905550600254600a0a600681905550600060038190555060065463b2d05e0002600a819055506108006008819055506000600760006101000a81548160ff0219169083151502179055506001600c8190555062015180600b81905550600b544201600d81905550733f2a2c502e575f2fd4053c76f4e21623143518d8600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073b5a73f5fc8bbdbce59bfd01ca8d35062e0dad801601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600654633d956180026009819055506001601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620002ca565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200025e57805160ff19168380011785556200028f565b828001600101855582156200028f579182015b828111156200028e57825182559160200191906001019062000271565b5b5090506200029e9190620002a2565b5090565b620002c791905b80821115620002c3576000816000905550600101620002a9565b5090565b90565b612a6b80620002da6000396000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c80636d2cf23b1161010f5780639a67759b116100a2578063cc1a03ae11610071578063cc1a03ae146108dd578063d55ec6971461090b578063dd62ed3e14610915578063f293e6751461098d576101f0565b80639a67759b146107e9578063a457c2d714610807578063a9059cbb1461086d578063bf4dbf57146108d3576101f0565b806379cc6790116100de57806379cc6790146106b057806395d89b41146106fe578063973628f61461078157806398fabd3a1461079f576101f0565b80636d2cf23b146105c05780636fdd999c1461060457806370a082311461060e57806370d5ae0514610666576101f0565b8063313ce5671161018757806357fbdcdd1161015657806357fbdcdd146105205780635adbc4221461056a5780635c7b5357146105985780636b92a3b6146105a2576101f0565b8063313ce5671461042a578063395093511461044857806342966c68146104ae5780634ebaf56e146104dc576101f0565b806316450092116101c3578063164500921461031e57806318160ddd1461033c57806323b872dd1461035a57806328957be2146103e0576101f0565b806306fdde03146101f55780630781f4d214610278578063090bbb011461029a578063095ea7b3146102b8575b600080fd5b6101fd6109ab565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561023d578082015181840152602081019050610222565b50505050905090810190601f16801561026a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610280610a49565b604051808215151515815260200191505060405180910390f35b6102a2610a5c565b6040518082815260200191505060405180910390f35b610304600480360360408110156102ce57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a62565b604051808215151515815260200191505060405180910390f35b610326610a79565b6040518082815260200191505060405180910390f35b610344610a7f565b6040518082815260200191505060405180910390f35b6103c66004803603606081101561037057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a85565b604051808215151515815260200191505060405180910390f35b6103e8610b50565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610432610b76565b6040518082815260200191505060405180910390f35b6104946004803603604081101561045e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b7c565b604051808215151515815260200191505060405180910390f35b6104da600480360360208110156104c457600080fd5b8101908080359060200190929190505050610c21565b005b61051e600480360360208110156104f257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c2e565b005b610528610daf565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105966004803603602081101561058057600080fd5b8101908080359060200190929190505050610dd5565b005b6105a0610f67565b005b6105aa6110e9565b6040518082815260200191505060405180910390f35b610602600480360360208110156105d657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110ef565b005b61060c611372565b005b6106506004803603602081101561062457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611452565b6040518082815260200191505060405180910390f35b61066e61149b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106fc600480360360408110156106c657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506114c1565b005b610706611515565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561074657808201518184015260208101905061072b565b50505050905090810190601f1680156107735780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6107896115b3565b6040518082815260200191505060405180910390f35b6107a76115b9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107f16115df565b6040518082815260200191505060405180910390f35b6108536004803603604081101561081d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115e5565b604051808215151515815260200191505060405180910390f35b6108b96004803603604081101561088357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506116a4565b604051808215151515815260200191505060405180910390f35b6108db6116bb565b005b610909600480360360208110156108f357600080fd5b810190808035906020019092919050505061179b565b005b6109136118b6565b005b6109776004803603604081101561092b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b00565b6040518082815260200191505060405180910390f35b610995611b87565b6040518082815260200191505060405180910390f35b60008054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a415780601f10610a1657610100808354040283529160200191610a41565b820191906000526020600020905b815481529060010190602001808311610a2457829003601f168201915b505050505081565b600760009054906101000a900460ff1681565b600d5481565b6000610a6f338484611be6565b6001905092915050565b600a5481565b60035481565b6000610a92848484611ddd565b610b458433610b408560405180606001604052806028815260200161295b60289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209f9092919063ffffffff16565b611be6565b600190509392505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60025481565b6000610c173384610c1285600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461215f90919063ffffffff16565b611be6565b6001905092915050565b610c2b33826121e7565b50565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610cf1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f4d7573742062652044414f00000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff167f5b536d33bf72072f3abff40e9c9bc550f83025bbc9b8cc36972c166d8b568b4382604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a250565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e98576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f4d7573742062652044414f00000000000000000000000000000000000000000081525060200191505060405180910390fd5b6064811015610f0f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4d7573742062652067726561746572207468616e20313030207365636f6e647381525060200191505060405180910390fd5b80600b819055503373ffffffffffffffffffffffffffffffffffffffff167fc0473c2cbb9705ca96e7d892f51ae51b81f597dab7ed6eb25f0a3e7c75d46639826040518082815260200191505060405180910390a250565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461102a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f4d7573742062652044414f00000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff167f567cac11d4a66456bbe20dc60d3579ec446a4e2fffae2a85f82ad0f1f18214f16000604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a2565b600b5481565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111b2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f4d7573742062652044414f00000000000000000000000000000000000000000081525060200191505060405180910390fd5b6111bb816123a1565b156112b4578073ffffffffffffffffffffffffffffffffffffffff1663039f85b56040518163ffffffff1660e01b815260040160206040518083038186803b15801561120657600080fd5b505afa15801561121a573d6000803e3d6000fd5b505050506040513d602081101561123057600080fd5b81019080805190602001909291905050506112b3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f4d7573742062652044414f00000000000000000000000000000000000000000081525060200191505060405180910390fd5b5b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff167f567cac11d4a66456bbe20dc60d3579ec446a4e2fffae2a85f82ad0f1f18214f182604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a250565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611435576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f4d7573742062652044414f00000000000000000000000000000000000000000081525060200191505060405180910390fd5b6001600760006101000a81548160ff021916908315150217905550565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006114f982604051806060016040528060248152602001612983602491396114ea8633611b00565b61209f9092919063ffffffff16565b9050611506833383611be6565b61151083836121e7565b505050565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156115ab5780601f10611580576101008083540402835291602001916115ab565b820191906000526020600020905b81548152906001019060200180831161158e57829003601f168201915b505050505081565b600c5481565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60085481565b600061169a338461169585604051806060016040528060258152602001612a1160259139600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209f9092919063ffffffff16565b611be6565b6001905092915050565b60006116b1338484611ddd565b6001905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461177e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f4d7573742062652044414f00000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600760006101000a81548160ff021916908315150217905550565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461185e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f4d7573742062652044414f00000000000000000000000000000000000000000081525060200191505060405180910390fd5b806008819055503373ffffffffffffffffffffffffffffffffffffffff167fe61d471656d849b230e45307bce5f71d00383888866b992d6a6993b72361e799826040518082815260200191505060405180910390a250565b6000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561195757600080fd5b505afa15801561196b573d6000803e3d6000fd5b505050506040513d602081101561198157600080fd5b81019080805190602001909291905050509050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd33601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015611a9357600080fd5b505af1158015611aa7573d6000803e3d6000fd5b505050506040513d6020811015611abd57600080fd5b8101908080519060200190929190505050611ad757600080fd5b6000633b9aca009050611afc33611af783856123b490919063ffffffff16565b61243a565b5050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080611bb5600954611ba7600354600a546123b490919063ffffffff16565b61267190919063ffffffff16565b9050611be0600854611bd2600354846126bb90919063ffffffff16565b61267190919063ffffffff16565b91505090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c6c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806129ed6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611cf2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806128f26022913960400191505060405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611e63576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806129c86025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ee9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806128ad6023913960400191505060405180910390fd5b611f558160405180606001604052806026815260200161291460269139600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209f9092919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fea81600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461215f90919063ffffffff16565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612035612705565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600083831115829061214c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156121115780820151818401526020810190506120f6565b50505050905090810190601f16801561213e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000808284019050838110156121dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561226d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806129a76021913960400191505060405180910390fd5b6122d9816040518060600160405280602281526020016128d060229139600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209f9092919063ffffffff16565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612331816003546126bb90919063ffffffff16565b600381905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600080823b905060008111915050919050565b6000808314156123c75760009050612434565b60008284029050828482816123d857fe5b041461242f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061293a6021913960400191505060405180910390fd5b809150505b92915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156124dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b6124f28160035461215f90919063ffffffff16565b600381905550600a546003541115612572576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4d757374206e6f74206d696e74206d6f7265207468616e20746865206361700081525060200191505060405180910390fd5b6125c481600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461215f90919063ffffffff16565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60006126b383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506127e6565b905092915050565b60006126fd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061209f565b905092915050565b600d5442101580156127235750600760009054906101000a900460ff165b156127e45761273e6001600c5461215f90919063ffffffff16565b600c81905550612759600b544261215f90919063ffffffff16565b600d819055506000612769611b87565b9050612797600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168261243a565b7f9d472bcf372fce01fd875c3296e8e5ae0a08bfca42dedac19e202271ce8f39c5600c54600d548360405180848152602001838152602001828152602001935050505060405180910390a1505b565b60008083118290612892576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561285757808201518184015260208101905061283c565b50505050905090810190601f1680156128845780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161289e57fe5b04905080915050939250505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220afae69c169b65eea7d5541d20da8b16a4aa545ab1816e8b8e8bff251ec52b1cd64736f6c63430006080033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101f05760003560e01c80636d2cf23b1161010f5780639a67759b116100a2578063cc1a03ae11610071578063cc1a03ae146108dd578063d55ec6971461090b578063dd62ed3e14610915578063f293e6751461098d576101f0565b80639a67759b146107e9578063a457c2d714610807578063a9059cbb1461086d578063bf4dbf57146108d3576101f0565b806379cc6790116100de57806379cc6790146106b057806395d89b41146106fe578063973628f61461078157806398fabd3a1461079f576101f0565b80636d2cf23b146105c05780636fdd999c1461060457806370a082311461060e57806370d5ae0514610666576101f0565b8063313ce5671161018757806357fbdcdd1161015657806357fbdcdd146105205780635adbc4221461056a5780635c7b5357146105985780636b92a3b6146105a2576101f0565b8063313ce5671461042a578063395093511461044857806342966c68146104ae5780634ebaf56e146104dc576101f0565b806316450092116101c3578063164500921461031e57806318160ddd1461033c57806323b872dd1461035a57806328957be2146103e0576101f0565b806306fdde03146101f55780630781f4d214610278578063090bbb011461029a578063095ea7b3146102b8575b600080fd5b6101fd6109ab565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561023d578082015181840152602081019050610222565b50505050905090810190601f16801561026a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610280610a49565b604051808215151515815260200191505060405180910390f35b6102a2610a5c565b6040518082815260200191505060405180910390f35b610304600480360360408110156102ce57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a62565b604051808215151515815260200191505060405180910390f35b610326610a79565b6040518082815260200191505060405180910390f35b610344610a7f565b6040518082815260200191505060405180910390f35b6103c66004803603606081101561037057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a85565b604051808215151515815260200191505060405180910390f35b6103e8610b50565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610432610b76565b6040518082815260200191505060405180910390f35b6104946004803603604081101561045e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b7c565b604051808215151515815260200191505060405180910390f35b6104da600480360360208110156104c457600080fd5b8101908080359060200190929190505050610c21565b005b61051e600480360360208110156104f257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c2e565b005b610528610daf565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105966004803603602081101561058057600080fd5b8101908080359060200190929190505050610dd5565b005b6105a0610f67565b005b6105aa6110e9565b6040518082815260200191505060405180910390f35b610602600480360360208110156105d657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110ef565b005b61060c611372565b005b6106506004803603602081101561062457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611452565b6040518082815260200191505060405180910390f35b61066e61149b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106fc600480360360408110156106c657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506114c1565b005b610706611515565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561074657808201518184015260208101905061072b565b50505050905090810190601f1680156107735780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6107896115b3565b6040518082815260200191505060405180910390f35b6107a76115b9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107f16115df565b6040518082815260200191505060405180910390f35b6108536004803603604081101561081d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115e5565b604051808215151515815260200191505060405180910390f35b6108b96004803603604081101561088357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506116a4565b604051808215151515815260200191505060405180910390f35b6108db6116bb565b005b610909600480360360208110156108f357600080fd5b810190808035906020019092919050505061179b565b005b6109136118b6565b005b6109776004803603604081101561092b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b00565b6040518082815260200191505060405180910390f35b610995611b87565b6040518082815260200191505060405180910390f35b60008054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a415780601f10610a1657610100808354040283529160200191610a41565b820191906000526020600020905b815481529060010190602001808311610a2457829003601f168201915b505050505081565b600760009054906101000a900460ff1681565b600d5481565b6000610a6f338484611be6565b6001905092915050565b600a5481565b60035481565b6000610a92848484611ddd565b610b458433610b408560405180606001604052806028815260200161295b60289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209f9092919063ffffffff16565b611be6565b600190509392505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60025481565b6000610c173384610c1285600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461215f90919063ffffffff16565b611be6565b6001905092915050565b610c2b33826121e7565b50565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610cf1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f4d7573742062652044414f00000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff167f5b536d33bf72072f3abff40e9c9bc550f83025bbc9b8cc36972c166d8b568b4382604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a250565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e98576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f4d7573742062652044414f00000000000000000000000000000000000000000081525060200191505060405180910390fd5b6064811015610f0f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4d7573742062652067726561746572207468616e20313030207365636f6e647381525060200191505060405180910390fd5b80600b819055503373ffffffffffffffffffffffffffffffffffffffff167fc0473c2cbb9705ca96e7d892f51ae51b81f597dab7ed6eb25f0a3e7c75d46639826040518082815260200191505060405180910390a250565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461102a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f4d7573742062652044414f00000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff167f567cac11d4a66456bbe20dc60d3579ec446a4e2fffae2a85f82ad0f1f18214f16000604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a2565b600b5481565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111b2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f4d7573742062652044414f00000000000000000000000000000000000000000081525060200191505060405180910390fd5b6111bb816123a1565b156112b4578073ffffffffffffffffffffffffffffffffffffffff1663039f85b56040518163ffffffff1660e01b815260040160206040518083038186803b15801561120657600080fd5b505afa15801561121a573d6000803e3d6000fd5b505050506040513d602081101561123057600080fd5b81019080805190602001909291905050506112b3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f4d7573742062652044414f00000000000000000000000000000000000000000081525060200191505060405180910390fd5b5b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff167f567cac11d4a66456bbe20dc60d3579ec446a4e2fffae2a85f82ad0f1f18214f182604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a250565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611435576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f4d7573742062652044414f00000000000000000000000000000000000000000081525060200191505060405180910390fd5b6001600760006101000a81548160ff021916908315150217905550565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006114f982604051806060016040528060248152602001612983602491396114ea8633611b00565b61209f9092919063ffffffff16565b9050611506833383611be6565b61151083836121e7565b505050565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156115ab5780601f10611580576101008083540402835291602001916115ab565b820191906000526020600020905b81548152906001019060200180831161158e57829003601f168201915b505050505081565b600c5481565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60085481565b600061169a338461169585604051806060016040528060258152602001612a1160259139600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209f9092919063ffffffff16565b611be6565b6001905092915050565b60006116b1338484611ddd565b6001905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461177e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f4d7573742062652044414f00000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600760006101000a81548160ff021916908315150217905550565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461185e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f4d7573742062652044414f00000000000000000000000000000000000000000081525060200191505060405180910390fd5b806008819055503373ffffffffffffffffffffffffffffffffffffffff167fe61d471656d849b230e45307bce5f71d00383888866b992d6a6993b72361e799826040518082815260200191505060405180910390a250565b6000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561195757600080fd5b505afa15801561196b573d6000803e3d6000fd5b505050506040513d602081101561198157600080fd5b81019080805190602001909291905050509050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd33601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015611a9357600080fd5b505af1158015611aa7573d6000803e3d6000fd5b505050506040513d6020811015611abd57600080fd5b8101908080519060200190929190505050611ad757600080fd5b6000633b9aca009050611afc33611af783856123b490919063ffffffff16565b61243a565b5050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080611bb5600954611ba7600354600a546123b490919063ffffffff16565b61267190919063ffffffff16565b9050611be0600854611bd2600354846126bb90919063ffffffff16565b61267190919063ffffffff16565b91505090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c6c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806129ed6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611cf2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806128f26022913960400191505060405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611e63576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806129c86025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ee9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806128ad6023913960400191505060405180910390fd5b611f558160405180606001604052806026815260200161291460269139600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209f9092919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fea81600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461215f90919063ffffffff16565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612035612705565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600083831115829061214c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156121115780820151818401526020810190506120f6565b50505050905090810190601f16801561213e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000808284019050838110156121dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561226d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806129a76021913960400191505060405180910390fd5b6122d9816040518060600160405280602281526020016128d060229139600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209f9092919063ffffffff16565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612331816003546126bb90919063ffffffff16565b600381905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600080823b905060008111915050919050565b6000808314156123c75760009050612434565b60008284029050828482816123d857fe5b041461242f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061293a6021913960400191505060405180910390fd5b809150505b92915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156124dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b6124f28160035461215f90919063ffffffff16565b600381905550600a546003541115612572576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4d757374206e6f74206d696e74206d6f7265207468616e20746865206361700081525060200191505060405180910390fd5b6125c481600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461215f90919063ffffffff16565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60006126b383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506127e6565b905092915050565b60006126fd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061209f565b905092915050565b600d5442101580156127235750600760009054906101000a900460ff165b156127e45761273e6001600c5461215f90919063ffffffff16565b600c81905550612759600b544261215f90919063ffffffff16565b600d819055506000612769611b87565b9050612797600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168261243a565b7f9d472bcf372fce01fd875c3296e8e5ae0a08bfca42dedac19e202271ce8f39c5600c54600d548360405180848152602001838152602001828152602001935050505060405180910390a1505b565b60008083118290612892576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561285757808201518184015260208101905061283c565b50505050905090810190601f1680156128845780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161289e57fe5b04905080915050939250505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220afae69c169b65eea7d5541d20da8b16a4aa545ab1816e8b8e8bff251ec52b1cd64736f6c63430006080033
Deployed Bytecode Sourcemap
2019:9127:0:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2019:9127:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;2112:18:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2112:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2417:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2599:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4636:167;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;4636:167:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2502:23;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2184:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5692:317;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;5692:317:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2634:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2159:23;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4809:214;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;4809:214:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7032:89;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;7032:89:0;;;;;;;;;;;;;;;;;:::i;:::-;;8584:204;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;8584:204:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;2697:22;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8303:238;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;8303:238:0;;;;;;;;;;;;;;;;;:::i;:::-;;9323:116;;;:::i;:::-;;2532:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8817:239;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;8817:239:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;7895:78;;;:::i;:::-;;4093:119;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;4093:119:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2726:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7127:289;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;7127:289:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2132:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2132:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2567:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2672:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2444:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5029:265;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;5029:265:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4407:173;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;4407:173:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7996:78;;;:::i;:::-;;8113:154;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;8113:154:0;;;;;;;;;;;;;;;;;:::i;:::-;;10831:312;;;:::i;:::-;;4218:151;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;4218:151:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10372:328;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2112:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2417:20::-;;;;;;;;;;;;;:::o;2599:26::-;;;;:::o;4636:167::-;4719:4;4736:37;4745:10;4757:7;4766:6;4736:8;:37::i;:::-;4791:4;4784:11;;4636:167;;;;:::o;2502:23::-;;;;:::o;2184:35::-;;;;:::o;5692:317::-;5798:4;5815:36;5825:6;5833:9;5844:6;5815:9;:36::i;:::-;5862:117;5871:6;5879:10;5891:87;5927:6;5891:87;;;;;;;;;;;;;;;;;:11;:19;5903:6;5891:19;;;;;;;;;;;;;;;:31;5911:10;5891:31;;;;;;;;;;;;;;;;:35;;:87;;;;;:::i;:::-;5862:8;:117::i;:::-;5997:4;5990:11;;5692:317;;;;;:::o;2634:31::-;;;;;;;;;;;;;:::o;2159:23::-;;;;:::o;4809:214::-;4897:4;4914:79;4923:10;4935:7;4944:48;4981:10;4944:11;:23;4956:10;4944:23;;;;;;;;;;;;;;;:32;4968:7;4944:32;;;;;;;;;;;;;;;;:36;;:48;;;;:::i;:::-;4914:8;:79::i;:::-;5011:4;5004:11;;4809:214;;;;:::o;7032:89::-;7088:25;7094:10;7106:6;7088:5;:25::i;:::-;7032:89;:::o;8584:204::-;3203:3;;;;;;;;;;;3189:17;;:10;:17;;;3181:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8693:19:::1;8674:16;;:38;;;;;;;;;;;;;;;;;;8748:10;8728:52;;;8760:19;8728:52;;;;;;;;;;;;;;;;;;;;;;8584:204:::0;:::o;2697:22::-;;;;;;;;;;;;;:::o;8303:238::-;3203:3;;;;;;;;;;;3189:17;;:10;:17;;;3181:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8403:3:::1;8388:11;:18;;8380:63;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;8470:11;8454:13;:27;;;;8509:10;8497:36;;;8521:11;8497:36;;;;;;;;;;;;;;;;;;8303:238:::0;:::o;9323:116::-;3203:3;;;;;;;;;;;3189:17;;:10;:17;;;3181:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9383:1:::1;9369:3;;:16;;;;;;;;;;;;;;;;;;9408:10;9401:30;;;9428:1;9401:30;;;;;;;;;;;;;;;;;;;;;;9323:116::o:0;2532:28::-;;;;:::o;8817:239::-;3203:3;;;;;;;;;;;3189:17;;:10;:17;;;3181:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8882:18:::1;8893:6;8882:10;:18::i;:::-;8878:106;;;8935:6;8925:29;;;:31;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::1;2:2;8925:31:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;8925:31:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::1;4:2;8925:31:0;;;;;;;;;;;;;;;;8917:55;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;8878:106;9000:6;8994:3;;:12;;;;;;;;;;;;;;;;;;9029:10;9022:26;;;9041:6;9022:26;;;;;;;;;;;;;;;;;;;;;;8817:239:::0;:::o;7895:78::-;3203:3;;;;;;;;;;;3189:17;;:10;:17;;;3181:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7961:4:::1;7950:8;;:15;;;;;;;;;;;;;;;;;;7895:78::o:0;4093:119::-;4159:7;4186:9;:18;4196:7;4186:18;;;;;;;;;;;;;;;;4179:25;;4093:119;;;:::o;2726:26::-;;;;;;;;;;;;;:::o;7127:289::-;7204:26;7233:82;7268:6;7233:82;;;;;;;;;;;;;;;;;:30;7243:7;7252:10;7233:9;:30::i;:::-;:34;;:82;;;;;:::i;:::-;7204:111;;7326:49;7335:7;7344:10;7356:18;7326:8;:49::i;:::-;7386:22;7392:7;7401:6;7386:5;:22::i;:::-;7127:289;;;:::o;2132:20::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2567:25::-;;;;:::o;2672:18::-;;;;;;;;;;;;;:::o;2444:28::-;;;;:::o;5029:265::-;5122:4;5139:125;5148:10;5160:7;5169:94;5206:15;5169:94;;;;;;;;;;;;;;;;;:11;:23;5181:10;5169:23;;;;;;;;;;;;;;;:32;5193:7;5169:32;;;;;;;;;;;;;;;;:36;;:94;;;;;:::i;:::-;5139:8;:125::i;:::-;5282:4;5275:11;;5029:265;;;;:::o;4407:173::-;4493:4;4510:40;4520:10;4532:9;4543:6;4510:9;:40::i;:::-;4568:4;4561:11;;4407:173;;;;:::o;7996:78::-;3203:3;;;;;;;;;;;3189:17;;:10;:17;;;3181:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8061:5:::1;8050:8;;:16;;;;;;;;;;;;;;;;;;7996:78::o:0;8113:154::-;3203:3;;;;;;;;;;;3189:17;;:10;:17;;;3181:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8205:8:::1;8189:13;:24;;;;8238:10;8229:30;;;8250:8;8229:30;;;;;;;;;;;;;;;;;;8113:154:::0;:::o;10831:312::-;10868:12;10889:7;;;;;;;;;;;10883:24;;;10908:10;10883:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;10883:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10883:36:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;10883:36:0;;;;;;;;;;;;;;;;10868:51;;10944:7;;;;;;;;;;;10938:27;;;10966:10;10978:11;;;;;;;;;;;10991:7;10938:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;10938:61:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10938:61:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;10938:61:0;;;;;;;;;;;;;;;;10930:70;;12:1:-1;9;2:12;10930:70:0;11011:11;11025:5;11011:19;;11069:38;11075:10;11087:19;11099:6;11087:7;:11;;:19;;;;:::i;:::-;11069:5;:38::i;:::-;10831:312;;:::o;4218:151::-;4307:7;4334:11;:18;4346:5;4334:18;;;;;;;;;;;;;;;:27;4353:7;4334:27;;;;;;;;;;;;;;;;4327:34;;4218:151;;;;:::o;10372:328::-;10421:7;10565:16;10584:41;10616:8;;10585:25;10598:11;;10585:8;;:12;;:25;;;;:::i;:::-;10584:31;;:41;;;;:::i;:::-;10565:60;;10643:49;10678:13;;10644:28;10660:11;;10644;:15;;:28;;;;:::i;:::-;10643:34;;:49;;;;:::i;:::-;10636:56;;;10372:328;:::o;5300:344::-;5419:1;5402:19;;:5;:19;;;;5394:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5500:1;5481:21;;:7;:21;;;;5473:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5582:6;5552:11;:18;5564:5;5552:18;;;;;;;;;;;;;;;:27;5571:7;5552:27;;;;;;;;;;;;;;;:36;;;;5620:7;5604:32;;5613:5;5604:32;;;5629:6;5604:32;;;;;;;;;;;;;;;;;;5300:344;;;:::o;6052:504::-;6176:1;6158:20;;:6;:20;;;;6150:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6260:1;6239:23;;:9;:23;;;;6231:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6333;6355:6;6333:71;;;;;;;;;;;;;;;;;:9;:17;6343:6;6333:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;6313:9;:17;6323:6;6313:17;;;;;;;;;;;;;;;:91;;;;6438:32;6463:6;6438:9;:20;6448:9;6438:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;6415:9;:20;6425:9;6415:20;;;;;;;;;;;;;;;:55;;;;6481:16;:14;:16::i;:::-;6530:9;6513:35;;6522:6;6513:35;;;6541:6;6513:35;;;;;;;;;;;;;;;;;;6052:504;;;:::o;1144:190::-;1230:7;1263:1;1258;:6;;1266:12;1250:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1250:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1290:9;1306:1;1302;:5;1290:17;;1325:1;1318:8;;;1144:190;;;;;:::o;817:179::-;875:7;895:9;911:1;907;:5;895:17;;936:1;931;:6;;923:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;987:1;980:8;;;817:179;;;;:::o;7422:352::-;7525:1;7506:21;;:7;:21;;;;7498:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7597:68;7620:6;7597:68;;;;;;;;;;;;;;;;;:9;:18;7607:7;7597:18;;;;;;;;;;;;;;;;:22;;:68;;;;;:::i;:::-;7576:9;:18;7586:7;7576:18;;;;;;;;;;;;;;;:89;;;;7690:23;7706:6;7690:11;;:15;;:23;;;;:::i;:::-;7676:11;:37;;;;7755:1;7729:37;;7738:7;7729:37;;;7759:6;7729:37;;;;;;;;;;;;;;;;;;7422:352;;:::o;9062:231::-;9122:4;9139:12;9250:7;9238:20;9230:28;;9284:1;9277:4;:8;9270:15;;;9062:231;;;:::o;1673:246::-;1731:7;1760:1;1755;:6;1751:47;;;1785:1;1778:8;;;;1751:47;1808:9;1824:1;1820;:5;1808:17;;1853:1;1848;1844;:5;;;;;;:10;1836:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1910:1;1903:8;;;1673:246;;;;;:::o;6616:390::-;6719:1;6700:21;;:7;:21;;;;6692:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6782:23;6798:6;6782:11;;:15;;:23;;;;:::i;:::-;6768:11;:37;;;;6839:8;;6824:11;;:23;;6816:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6915:30;6938:6;6915:9;:18;6925:7;6915:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;6894:9;:18;6904:7;6894:18;;;;;;;;;;;;;;;:51;;;;6982:7;6961:37;;6978:1;6961:37;;;6991:6;6961:37;;;;;;;;;;;;;;;;;;6616:390;;:::o;1340:132::-;1398:7;1425:39;1429:1;1432;1425:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1418:46;;1340:132;;;;:::o;1002:136::-;1060:7;1087:43;1091:1;1094;1087:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1080:50;;1002:136;;;;:::o;9587:746::-;9644:11;;9637:3;:18;;9636:32;;;;;9660:8;;;;;;;;;;;9636:32;9632:694;;;9775:17;9790:1;9775:10;;:14;;:17;;;;:::i;:::-;9762:10;:30;;;;9885:22;9893:13;;9885:3;:7;;:22;;;;:::i;:::-;9871:11;:36;;;;9984:17;10004:18;:16;:18::i;:::-;9984:38;;10098:34;10104:16;;;;;;;;;;;10122:9;10098:5;:34::i;:::-;10228:42;10235:10;;10247:11;;10260:9;10228:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9632:694;;9587:746::o;1478:189::-;1564:7;1596:1;1592;:5;1599:12;1584:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1584:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1623:9;1639:1;1635;:5;;;;;;1623:17;;1658:1;1651:8;;;1478:189;;;;;:::o
Swarm Source
ipfs://afae69c169b65eea7d5541d20da8b16a4aa545ab1816e8b8e8bff251ec52b1cd
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.