Token migration announcement. Megaweapon token contract has migrated to a new address.
ERC-20
Overview
Max Total Supply
10,000,010,000,000 $WEAPON
Holders
2,041
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
0 $WEAPONValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
WEAPON
Compiler Version
v0.8.1+commit.df193b15
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-11-23 */ pragma solidity ^0.8.0; interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } // SPDX-License-Identifier: MIT interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } contract WEAPON is Context, IERC20{ uint256 private _txLimit; uint256 private _limitTime; bool private _swapping; bool public tradingEnabled = false; bool public stakingEnabled = false; mapping (address => bool) private _isPool; mapping (address => uint256) private _balances; mapping (address => uint256) private _stakedBalances; mapping (address => uint256) private _stakeExpireTime; mapping (address => uint256) private _stakeBeginTime; mapping (address => mapping (address => uint256)) private _allowances; uint256 private _totalSupply = 10 * 10**6 * 10**9; string private _name = "Megaweapon"; string private _symbol = "$WEAPON"; uint8 private _decimals = 9; uint8 private _buyTax = 10; uint8 private _sellTax = 10; address private _lp; address payable private _devWallet; address payable private _stakingContract; address private _uniRouter = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; address private _pair = address(0); IUniswapV2Router02 private UniV2Router; constructor(address dev) { _lp = _msgSender(); _balances[_lp] = _totalSupply; UniV2Router = IUniswapV2Router02(_uniRouter); _devWallet = payable(dev); } event Stake(address indexed _staker, uint256 amount, uint256 stakeTime, uint256 stakeExpire); event Reconcile(address indexed _staker, uint256 amount, bool isLoss); modifier lockSwap { _swapping = true; _; _swapping = false; } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return availableBalanceOf(account); } function stakedBalanceOf(address account) public view returns (uint256) { if (stakingEnabled && _stakeExpireTime[account] > block.timestamp) { return _stakedBalances[account]; } else return 0; } function availableBalanceOf(address account) public view returns (uint256) { if (stakingEnabled && _stakeExpireTime[account] > block.timestamp) { return _balances[account] - _stakedBalances[account]; } else return _balances[account]; } function isStaked(address account) public view returns (bool) { if (stakingEnabled && _stakeExpireTime[account] > block.timestamp && _stakedBalances[account] > 0){ return true; } else return false; } function getStake(address account) public view returns (uint256, uint256, uint256) { if (stakingEnabled && _stakeExpireTime[account] > block.timestamp && _stakedBalances[account] > 0) return (_stakedBalances[account], _stakeBeginTime[account], _stakeExpireTime[account]); else return (0,0,0); } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { require (_allowances[sender][_msgSender()] >= amount, "ERC20: transfer amount exceeds allowance"); _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()] - amount); return true; } function _approve(address owner, address spender, uint256 amount) private { 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); } function _transfer(address sender, address recipient, uint256 amount) private { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); require(_balances[sender] >= amount, "ERC20: transfer exceeds balance"); require(availableBalanceOf(sender) >= amount, "$WEAPON: transfer exceeds unstaked balance"); require(amount > 0, "$WEAPON: cannot transfer zero"); uint256 taxedAmount = amount; uint256 tax = 0; if (_isPool[sender] == true && recipient != _lp && recipient != _uniRouter) { require (block.timestamp > _limitTime || amount <= 50000 * 10**9, "$WEAPON: max tx limit"); require (block.number > _txLimit, "$WEAPON: trading not enabled"); tax = amount * _buyTax / 100; taxedAmount = amount - tax; _balances[address(this)] += tax; } if (_isPool[recipient] == true && sender != _lp && sender != _uniRouter){ require (block.number > _txLimit, "$WEAPON: trading not enabled"); require (block.timestamp > _limitTime || amount <= 50000 * 10**9, "$WEAPON: max tx limit"); tax = amount * _sellTax / 100; taxedAmount = amount - tax; _balances[address(this)] += tax; if (_balances[address(this)] > 100 * 10**9 && !_swapping) { uint256 _swapAmount = _balances[address(this)]; if (_swapAmount > amount * 40 / 100) _swapAmount = amount * 40 / 100; _tokensToETH(_swapAmount); } } _balances[recipient] += taxedAmount; _balances[sender] -= amount; emit Transfer(sender, recipient, amount); } function stake(uint256 amount, uint256 unstakeTime) external { require (stakingEnabled, "$WEAPON: staking currently not enabled"); require (unstakeTime > (block.timestamp + 85399),"$WEAPON: minimum stake time 24 hours"); require (unstakeTime >= _stakeExpireTime[_msgSender()], "$WEAPON: new stake time cannot be shorter"); require (availableBalanceOf(_msgSender()) >= amount, "$WEAPON: stake exceeds available balance"); require (amount > 0, "$WEAPON: cannot stake 0 tokens"); if (_stakeExpireTime[_msgSender()] > block.timestamp) _stakedBalances[_msgSender()] = _stakedBalances[_msgSender()] + amount; else _stakedBalances[_msgSender()] = amount; _stakeExpireTime[_msgSender()] = unstakeTime; _stakeBeginTime[_msgSender()] = block.timestamp; emit Stake(_msgSender(), amount, block.timestamp, unstakeTime); } function reconcile(address[] calldata account, uint256[] calldata amount, bool[] calldata isLoss) external { require (_msgSender() == _stakingContract, "$WEAPON: Unauthorized"); uint i = 0; uint max = account.length; while (i < max) { if (isLoss[i] == true) { if (_stakedBalances[account[i]] > amount[i]) _stakedBalances[account[i]] = _stakedBalances[account[i]] - amount[i]; else _stakedBalances[account[i]] = 0; _balances[account[i]] = _balances[account[i]] - amount[i]; } else { _stakedBalances[account[i]] = _stakedBalances[account[i]] + amount[i]; _balances[account[i]] = _balances[account[i]] + amount[i]; } emit Reconcile(account[i], amount[i], isLoss[i]); i++; } } function mint(uint256 amount, address recipient) external { require (_msgSender() == _devWallet, "$WEAPON: Unauthorized"); require (block.timestamp > 1640995200, "$WEAPON: too soon"); _totalSupply = _totalSupply + amount; _balances[recipient] = _balances[recipient] + amount; emit Transfer(address(0), recipient, amount); } function toggleStaking() external { require (_msgSender() == _devWallet || _msgSender() == _stakingContract, "$WEAPON: Unauthorized"); require (_stakingContract != address(0), "$WEAPON: staking contract not set"); if (stakingEnabled == true) stakingEnabled = false; else stakingEnabled = true; } function lockedAndLoaded(uint txLimit) external { require (_msgSender() == _devWallet, "$WEAPON: Unauthorized"); require (tradingEnabled == false, "$WEAPON: already loaded, sucka"); tradingEnabled = true; _setTxLimit(txLimit, block.number); } function setStakingContract(address addr) external { require (_msgSender() == _devWallet, "$WEAPON: Unauthorized"); _stakingContract = payable(addr); } function getStakingContract() public view returns (address) { return _stakingContract; } function reduceBuyTax(uint8 newTax) external { require (_msgSender() == _devWallet, "$WEAPON: Unauthorized"); require (newTax < _buyTax, "$WEAPON: new tax must be lower"); _buyTax = newTax; } function reduceSellTax(uint8 newTax) external { require (_msgSender() == _devWallet, "$WEAPON: Unauthorized"); require (newTax < _sellTax, "$WEAPON: new tax must be lower"); _sellTax = newTax; } function setPool(address addr) external { require (_msgSender() == _devWallet, "$WEAPON: Unuthorized"); _isPool[addr] = true; } function isPool(address addr) public view returns (bool){ return _isPool[addr]; } function _setTxLimit(uint256 txLimit, uint256 limitBegin) private { _txLimit = limitBegin + txLimit; _limitTime = block.timestamp + 1800; } function _transferETH(uint256 amount, address payable _to) private { (bool sent, bytes memory data) = _to.call{value: amount}(""); require(sent, "Failed to send Ether"); } function _tokensToETH(uint256 amount) private lockSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = UniV2Router.WETH(); _approve(address(this), _uniRouter, amount); UniV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(amount, 0, path, address(this), block.timestamp); if (address(this).balance > 0) { if (stakingEnabled) { uint stakingShare = address(this).balance * 20 / 100; _transferETH(stakingShare, _stakingContract); } _transferETH(address(this).balance, _devWallet); } } function failsafeTokenSwap(uint256 amount) external { require (_msgSender() == _devWallet, "$WEAPON: Unauthorized"); _tokensToETH(amount); } function failsafeETHtransfer() external { require (_msgSender() == _devWallet, "$WEAPON: Unauthorized"); (bool sent, bytes memory data) = _msgSender().call{value: address(this).balance}(""); require(sent, "Failed to send Ether"); } receive() external payable {} fallback() external payable {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"dev","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_staker","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"bool","name":"isLoss","type":"bool"}],"name":"Reconcile","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_staker","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"stakeTime","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"stakeExpire","type":"uint256"}],"name":"Stake","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"},{"stateMutability":"payable","type":"fallback"},{"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":"availableBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"failsafeETHtransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"failsafeTokenSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getStakingContract","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"isPool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isStaked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"txLimit","type":"uint256"}],"name":"lockedAndLoaded","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"recipient","type":"address"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"account","type":"address[]"},{"internalType":"uint256[]","name":"amount","type":"uint256[]"},{"internalType":"bool[]","name":"isLoss","type":"bool[]"}],"name":"reconcile","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"newTax","type":"uint8"}],"name":"reduceBuyTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"newTax","type":"uint8"}],"name":"reduceSellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"setPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"setStakingContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"unstakeTime","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"stakedBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stakingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toggleStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6002805462ffff0019169055662386f26fc1000060095560c0604052600a60808190526926b2b3b0bbb2b0b837b760b11b60a09081526200004291908162000178565b5060408051808201909152600780825266122ba2a0a827a760c91b60209092019182526200007391600b9162000178565b50600c8054600960ff199091161761ff001916610a001762ff00001916620a0000179055600f8054737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031991821617909155601080549091169055348015620000d657600080fd5b5060405162002a6438038062002a64833981016040819052620000f9916200021e565b6200010362000174565b600c80546301000000600160b81b03191663010000006001600160a01b039384168102919091179182905560095491048216600090815260046020526040902055600f54601180549183166001600160a01b0319928316179055600d8054909116929091169190911790556200028b565b3390565b82805462000186906200024e565b90600052602060002090601f016020900481019282620001aa5760008555620001f5565b82601f10620001c557805160ff1916838001178555620001f5565b82800160010185558215620001f5579182015b82811115620001f5578251825591602001919060010190620001d8565b506200020392915062000207565b5090565b5b8082111562000203576000815560010162000208565b60006020828403121562000230578081fd5b81516001600160a01b038116811462000247578182fd5b9392505050565b6002810460018216806200026357607f821691505b602082108114156200028557634e487b7160e01b600052602260045260246000fd5b50919050565b6127c9806200029b6000396000f3fe6080604052600436106101bb5760003560e01c80635e9b968d116100ec57806395d89b411161008a578063a9059cbb11610064578063a9059cbb146104ba578063d8fda58d146104da578063d9181d68146104fa578063dd62ed3e1461051a576101c2565b806395d89b411461046557806397db12921461047a5780639dd373b91461049a576101c2565b80637a766460116100c65780637a766460146103d45780637b0472f0146104035780638e68dce41461042357806394bf804d14610445576101c2565b80635e9b968d146103745780636177fd181461039457806370a08231146103b4576101c2565b806323b872dd116101595780633b8105b3116101335780633b8105b31461030a5780634437152a1461031f5780634ada218b1461033f5780635b16ebb714610354576101c2565b806323b872dd146102a857806325d998bb146102c8578063313ce567146102e8576101c2565b806311d2f6891161019557806311d2f68914610231578063167653911461025157806318160ddd1461027e5780631cfff51b14610293576101c2565b806306fdde03146101c4578063095ea7b3146101ef5780631023231c1461021c576101c2565b366101c257005b005b3480156101d057600080fd5b506101d961053a565b6040516101e69190612079565b60405180910390f35b3480156101fb57600080fd5b5061020f61020a366004611ef8565b6105cc565b6040516101e6919061206e565b34801561022857600080fd5b506101c26105e9565b34801561023d57600080fd5b506101c261024c366004612036565b6106b5565b34801561025d57600080fd5b5061027161026c366004611e41565b61073b565b6040516101e691906125f7565b34801561028a57600080fd5b5061027161079a565b34801561029f57600080fd5b5061020f6107a0565b3480156102b457600080fd5b5061020f6102c3366004611eb8565b6107af565b3480156102d457600080fd5b506102716102e3366004611e41565b610884565b3480156102f457600080fd5b506102fd610910565b6040516101e69190612696565b34801561031657600080fd5b506101c2610919565b34801561032b57600080fd5b506101c261033a366004611e41565b6109db565b34801561034b57600080fd5b5061020f610a39565b34801561036057600080fd5b5061020f61036f366004611e41565b610a47565b34801561038057600080fd5b506101c261038f366004611fd9565b610a65565b3480156103a057600080fd5b5061020f6103af366004611e41565b610ae3565b3480156103c057600080fd5b506102716103cf366004611e41565b610b45565b3480156103e057600080fd5b506103f46103ef366004611e41565b610b56565b6040516101e693929190612680565b34801561040f57600080fd5b506101c261041e366004612015565b610bf9565b34801561042f57600080fd5b50610438610e49565b6040516101e6919061205a565b34801561045157600080fd5b506101c2610460366004611ff1565b610e58565b34801561047157600080fd5b506101d9610f45565b34801561048657600080fd5b506101c2610495366004611f23565b610f54565b3480156104a657600080fd5b506101c26104b5366004611e41565b611526565b3480156104c657600080fd5b5061020f6104d5366004611ef8565b611582565b3480156104e657600080fd5b506101c26104f5366004611fd9565b611596565b34801561050657600080fd5b506101c2610515366004612036565b6115d9565b34801561052657600080fd5b50610271610535366004611e80565b61165c565b6060600a805461054990612712565b80601f016020809104026020016040519081016040528092919081815260200182805461057590612712565b80156105c25780601f10610597576101008083540402835291602001916105c2565b820191906000526020600020905b8154815290600101906020018083116105a557829003601f168201915b5050505050905090565b60006105e06105d9611687565b848461168b565b50600192915050565b600d546001600160a01b03166105fd611687565b6001600160a01b03161461062c5760405162461bcd60e51b815260040161062390612280565b60405180910390fd5b600080610637611687565b6001600160a01b03164760405161064d90612057565b60006040518083038185875af1925050503d806000811461068a576040519150601f19603f3d011682016040523d82523d6000602084013e61068f565b606091505b5091509150816106b15760405162461bcd60e51b815260040161062390612252565b5050565b600d546001600160a01b03166106c9611687565b6001600160a01b0316146106ef5760405162461bcd60e51b815260040161062390612280565b600c5460ff6201000090910481169082161061071d5760405162461bcd60e51b8152600401610623906123e2565b600c805460ff909216620100000262ff000019909216919091179055565b60025460009062010000900460ff16801561076d57506001600160a01b03821660009081526006602052604090205442105b1561079157506001600160a01b038116600090815260056020526040902054610795565b5060005b919050565b60095490565b60025462010000900460ff1681565b6001600160a01b03831660009081526008602052604081208290826107d2611687565b6001600160a01b03166001600160a01b031681526020019081526020016000205410156108115760405162461bcd60e51b81526004016106239061239a565b61081c84848461173f565b61087a84610828611687565b6001600160a01b0387166000908152600860205260408120869161084a611687565b6001600160a01b03166001600160a01b031681526020019081526020016000205461087591906126fb565b61168b565b5060019392505050565b60025460009062010000900460ff1680156108b657506001600160a01b03821660009081526006602052604090205442105b156108f1576001600160a01b0382166000908152600560209081526040808320546004909252909120546108ea91906126fb565b9050610795565b506001600160a01b038116600090815260046020526040902054610795565b600c5460ff1690565b600d546001600160a01b031661092d611687565b6001600160a01b0316148061095c5750600e546001600160a01b0316610951611687565b6001600160a01b0316145b6109785760405162461bcd60e51b815260040161062390612280565b600e546001600160a01b03166109a05760405162461bcd60e51b81526004016106239061258b565b60025462010000900460ff161515600114156109c7576002805462ff0000191690556109d9565b6002805462ff00001916620100001790555b565b600d546001600160a01b03166109ef611687565b6001600160a01b031614610a155760405162461bcd60e51b8152600401610623906124a2565b6001600160a01b03166000908152600360205260409020805460ff19166001179055565b600254610100900460ff1681565b6001600160a01b031660009081526003602052604090205460ff1690565b600d546001600160a01b0316610a79611687565b6001600160a01b031614610a9f5760405162461bcd60e51b815260040161062390612280565b600254610100900460ff1615610ac75760405162461bcd60e51b8152600401610623906122af565b6002805461ff001916610100179055610ae08143611b52565b50565b60025460009062010000900460ff168015610b1557506001600160a01b03821660009081526006602052604090205442105b8015610b3857506001600160a01b03821660009081526005602052604090205415155b1561079157506001610795565b6000610b5082610884565b92915050565b600080600060028054906101000a900460ff168015610b8c57506001600160a01b03841660009081526006602052604090205442105b8015610baf57506001600160a01b03841660009081526005602052604090205415155b15610be8575050506001600160a01b03811660009081526005602090815260408083205460078352818420546006909352922054610bf2565b5060009150819050805b9193909250565b60025462010000900460ff16610c215760405162461bcd60e51b81526004016106239061231d565b610c2e4262014d976126a4565b8111610c4c5760405162461bcd60e51b815260040161062390612518565b60066000610c58611687565b6001600160a01b03166001600160a01b0316815260200190815260200160002054811015610c985760405162461bcd60e51b81526004016106239061210f565b81610ca46102e3611687565b1015610cc25760405162461bcd60e51b8152600401610623906124d0565b60008211610ce25760405162461bcd60e51b8152600401610623906121a2565b4260066000610cef611687565b6001600160a01b03166001600160a01b03168152602001908152602001600020541115610d79578160056000610d23611687565b6001600160a01b03166001600160a01b0316815260200190815260200160002054610d4e91906126a4565b60056000610d5a611687565b6001600160a01b03168152602081019190915260400160002055610da1565b8160056000610d86611687565b6001600160a01b031681526020810191909152604001600020555b8060066000610dae611687565b6001600160a01b03166001600160a01b03168152602001908152602001600020819055504260076000610ddf611687565b6001600160a01b03168152602081019190915260400160002055610e01611687565b6001600160a01b03167ff556991011e831bcfac4f406d547e5e32cdd98267efab83935230d5f8d02c446834284604051610e3d93929190612680565b60405180910390a25050565b600e546001600160a01b031690565b600d546001600160a01b0316610e6c611687565b6001600160a01b031614610e925760405162461bcd60e51b815260040161062390612280565b6361cf99804211610eb55760405162461bcd60e51b8152600401610623906125cc565b81600954610ec391906126a4565b6009556001600160a01b038116600090815260046020526040902054610eea9083906126a4565b6001600160a01b0382166000818152600460205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f399086906125f7565b60405180910390a35050565b6060600b805461054990612712565b600e546001600160a01b0316610f68611687565b6001600160a01b031614610f8e5760405162461bcd60e51b815260040161062390612280565b6000855b8082101561151c57838383818110610fba57634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610fcf9190611fb9565b15156001141561127c57858583818110610ff957634e487b7160e01b600052603260045260246000fd5b90506020020135600560008a8a8681811061102457634e487b7160e01b600052603260045260246000fd5b90506020020160208101906110399190611e41565b6001600160a01b03166001600160a01b031681526020019081526020016000205411156111435785858381811061108057634e487b7160e01b600052603260045260246000fd5b90506020020135600560008a8a868181106110ab57634e487b7160e01b600052603260045260246000fd5b90506020020160208101906110c09190611e41565b6001600160a01b03166001600160a01b03168152602001908152602001600020546110eb91906126fb565b600560008a8a8681811061110f57634e487b7160e01b600052603260045260246000fd5b90506020020160208101906111249190611e41565b6001600160a01b03168152602081019190915260400160002055611199565b6000600560008a8a8681811061116957634e487b7160e01b600052603260045260246000fd5b905060200201602081019061117e9190611e41565b6001600160a01b031681526020810191909152604001600020555b8585838181106111b957634e487b7160e01b600052603260045260246000fd5b90506020020135600460008a8a868181106111e457634e487b7160e01b600052603260045260246000fd5b90506020020160208101906111f99190611e41565b6001600160a01b03166001600160a01b031681526020019081526020016000205461122491906126fb565b600460008a8a8681811061124857634e487b7160e01b600052603260045260246000fd5b905060200201602081019061125d9190611e41565b6001600160a01b03168152602081019190915260400160002055611439565b85858381811061129c57634e487b7160e01b600052603260045260246000fd5b90506020020135600560008a8a868181106112c757634e487b7160e01b600052603260045260246000fd5b90506020020160208101906112dc9190611e41565b6001600160a01b03166001600160a01b031681526020019081526020016000205461130791906126a4565b600560008a8a8681811061132b57634e487b7160e01b600052603260045260246000fd5b90506020020160208101906113409190611e41565b6001600160a01b0316815260208101919091526040016000205585858381811061137a57634e487b7160e01b600052603260045260246000fd5b90506020020135600460008a8a868181106113a557634e487b7160e01b600052603260045260246000fd5b90506020020160208101906113ba9190611e41565b6001600160a01b03166001600160a01b03168152602001908152602001600020546113e591906126a4565b600460008a8a8681811061140957634e487b7160e01b600052603260045260246000fd5b905060200201602081019061141e9190611e41565b6001600160a01b031681526020810191909152604001600020555b87878381811061145957634e487b7160e01b600052603260045260246000fd5b905060200201602081019061146e9190611e41565b6001600160a01b03167f40d1bd8722cd8a4a9b2de996db4d475067e7bc01ad81394bf5c5b1b98bd4d2fc8787858181106114b857634e487b7160e01b600052603260045260246000fd5b905060200201358686868181106114df57634e487b7160e01b600052603260045260246000fd5b90506020020160208101906114f49190611fb9565b604051611502929190612600565b60405180910390a2816115148161274d565b925050610f92565b5050505050505050565b600d546001600160a01b031661153a611687565b6001600160a01b0316146115605760405162461bcd60e51b815260040161062390612280565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b60006105e061158f611687565b848461173f565b600d546001600160a01b03166115aa611687565b6001600160a01b0316146115d05760405162461bcd60e51b815260040161062390612280565b610ae081611b72565b600d546001600160a01b03166115ed611687565b6001600160a01b0316146116135760405162461bcd60e51b815260040161062390612280565b600c5460ff6101009091048116908216106116405760405162461bcd60e51b8152600401610623906123e2565b600c805460ff9092166101000261ff0019909216919091179055565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b3390565b6001600160a01b0383166116b15760405162461bcd60e51b81526004016106239061245e565b6001600160a01b0382166116d75760405162461bcd60e51b8152600401610623906121d9565b6001600160a01b0380841660008181526008602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906117329085906125f7565b60405180910390a3505050565b6001600160a01b0383166117655760405162461bcd60e51b815260040161062390612419565b6001600160a01b03821661178b5760405162461bcd60e51b8152600401610623906120cc565b6001600160a01b0383166000908152600460205260409020548111156117c35760405162461bcd60e51b815260040161062390612363565b806117cd84610884565b10156117eb5760405162461bcd60e51b815260040161062390612158565b6000811161180b5760405162461bcd60e51b81526004016106239061221b565b6001600160a01b03831660009081526003602052604081205482919060ff16151560011480156118505750600c546001600160a01b0385811663010000009092041614155b801561186a5750600f546001600160a01b03858116911614155b1561191a576001544211806118855750652d79883d20008311155b6118a15760405162461bcd60e51b81526004016106239061255c565b60005443116118c25760405162461bcd60e51b8152600401610623906122e6565b600c546064906118da90610100900460ff16856126dc565b6118e491906126bc565b90506118f081846126fb565b306000908152600460205260408120805492945083929091906119149084906126a4565b90915550505b6001600160a01b03841660009081526003602052604090205460ff161515600114801561195c5750600c546001600160a01b0386811663010000009092041614155b80156119765750600f546001600160a01b03868116911614155b15611aa457600054431161199c5760405162461bcd60e51b8152600401610623906122e6565b6001544211806119b25750652d79883d20008311155b6119ce5760405162461bcd60e51b81526004016106239061255c565b600c546064906119e79062010000900460ff16856126dc565b6119f191906126bc565b90506119fd81846126fb565b30600090815260046020526040812080549294508392909190611a219084906126a4565b90915550503060009081526004602052604090205464174876e800108015611a4c575060025460ff16155b15611aa457306000908152600460205260409020546064611a6e8560286126dc565b611a7891906126bc565b811115611a99576064611a8c8560286126dc565b611a9691906126bc565b90505b611aa281611b72565b505b6001600160a01b03841660009081526004602052604081208054849290611acc9084906126a4565b90915550506001600160a01b03851660009081526004602052604081208054859290611af99084906126fb565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611b4391906125f7565b60405180910390a35050505050565b611b5c82826126a4565b600055611b6b426107086126a4565b6001555050565b6002805460ff191660011781556040805182815260608101825260009290916020830190803683370190505090503081600081518110611bc257634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611c1657600080fd5b505afa158015611c2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c4e9190611e64565b81600181518110611c6f57634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152600f54611c95913091168461168b565b60115460405163791ac94760e01b81526001600160a01b039091169063791ac94790611cce908590600090869030904290600401612610565b600060405180830381600087803b158015611ce857600080fd5b505af1158015611cfc573d6000803e3d6000fd5b505050506000471115611d665760025462010000900460ff1615611d4f5760006064611d294760146126dc565b611d3391906126bc565b600e54909150611d4d9082906001600160a01b0316611d74565b505b600d54611d669047906001600160a01b0316611d74565b50506002805460ff19169055565b600080826001600160a01b031684604051611d8e90612057565b60006040518083038185875af1925050503d8060008114611dcb576040519150601f19603f3d011682016040523d82523d6000602084013e611dd0565b606091505b509150915081611df25760405162461bcd60e51b815260040161062390612252565b50505050565b60008083601f840112611e09578182fd5b50813567ffffffffffffffff811115611e20578182fd5b6020830191508360208083028501011115611e3a57600080fd5b9250929050565b600060208284031215611e52578081fd5b8135611e5d8161277e565b9392505050565b600060208284031215611e75578081fd5b8151611e5d8161277e565b60008060408385031215611e92578081fd5b8235611e9d8161277e565b91506020830135611ead8161277e565b809150509250929050565b600080600060608486031215611ecc578081fd5b8335611ed78161277e565b92506020840135611ee78161277e565b929592945050506040919091013590565b60008060408385031215611f0a578182fd5b8235611f158161277e565b946020939093013593505050565b60008060008060008060608789031215611f3b578182fd5b863567ffffffffffffffff80821115611f52578384fd5b611f5e8a838b01611df8565b90985096506020890135915080821115611f76578384fd5b611f828a838b01611df8565b90965094506040890135915080821115611f9a578384fd5b50611fa789828a01611df8565b979a9699509497509295939492505050565b600060208284031215611fca578081fd5b81358015158114611e5d578182fd5b600060208284031215611fea578081fd5b5035919050565b60008060408385031215612003578182fd5b823591506020830135611ead8161277e565b60008060408385031215612027578182fd5b50508035926020909101359150565b600060208284031215612047578081fd5b813560ff81168114611e5d578182fd5b90565b6001600160a01b0391909116815260200190565b901515815260200190565b6000602080835283518082850152825b818110156120a557858101830151858201604001528201612089565b818111156120b65783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526029908201527f24574541504f4e3a206e6577207374616b652074696d652063616e6e6f742062604082015268329039b437b93a32b960b91b606082015260800190565b6020808252602a908201527f24574541504f4e3a207472616e73666572206578636565647320756e7374616b60408201526965642062616c616e636560b01b606082015260800190565b6020808252601e908201527f24574541504f4e3a2063616e6e6f74207374616b65203020746f6b656e730000604082015260600190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601d908201527f24574541504f4e3a2063616e6e6f74207472616e73666572207a65726f000000604082015260600190565b6020808252601490820152732330b4b632b2103a379039b2b7321022ba3432b960611b604082015260600190565b6020808252601590820152740915d1505413d38e88155b985d5d1a1bdc9a5e9959605a1b604082015260600190565b6020808252601e908201527f24574541504f4e3a20616c7265616479206c6f616465642c207375636b610000604082015260600190565b6020808252601c908201527f24574541504f4e3a2074726164696e67206e6f7420656e61626c656400000000604082015260600190565b60208082526026908201527f24574541504f4e3a207374616b696e672063757272656e746c79206e6f7420656040820152651b98589b195960d21b606082015260800190565b6020808252601f908201527f45524332303a207472616e7366657220657863656564732062616c616e636500604082015260600190565b60208082526028908201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616040820152676c6c6f77616e636560c01b606082015260800190565b6020808252601e908201527f24574541504f4e3a206e657720746178206d757374206265206c6f7765720000604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b6020808252601490820152730915d1505413d38e88155b9d5d1a1bdc9a5e995960621b604082015260600190565b60208082526028908201527f24574541504f4e3a207374616b65206578636565647320617661696c61626c656040820152672062616c616e636560c01b606082015260800190565b60208082526024908201527f24574541504f4e3a206d696e696d756d207374616b652074696d6520323420686040820152636f75727360e01b606082015260800190565b6020808252601590820152740915d1505413d38e881b585e081d1e081b1a5b5a5d605a1b604082015260600190565b60208082526021908201527f24574541504f4e3a207374616b696e6720636f6e7472616374206e6f742073656040820152601d60fa1b606082015260800190565b602080825260119082015270122ba2a0a827a71d103a37b79039b7b7b760791b604082015260600190565b90815260200190565b9182521515602082015260400190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b8181101561265f5784516001600160a01b03168352938301939183019160010161263a565b50506001600160a01b03969096166060850152505050608001529392505050565b9283526020830191909152604082015260600190565b60ff91909116815260200190565b600082198211156126b7576126b7612768565b500190565b6000826126d757634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156126f6576126f6612768565b500290565b60008282101561270d5761270d612768565b500390565b60028104600182168061272657607f821691505b6020821081141561274757634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561276157612761612768565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114610ae057600080fdfea26469706673582212202b00e7b5f1f701553389f2c2d216043c90510555fdd5b1d094eeffbbd0c4e0fe64736f6c634300080100330000000000000000000000001ed7f72a25c45df4dc5b9a53af8ad5269a827862
Deployed Bytecode
0x6080604052600436106101bb5760003560e01c80635e9b968d116100ec57806395d89b411161008a578063a9059cbb11610064578063a9059cbb146104ba578063d8fda58d146104da578063d9181d68146104fa578063dd62ed3e1461051a576101c2565b806395d89b411461046557806397db12921461047a5780639dd373b91461049a576101c2565b80637a766460116100c65780637a766460146103d45780637b0472f0146104035780638e68dce41461042357806394bf804d14610445576101c2565b80635e9b968d146103745780636177fd181461039457806370a08231146103b4576101c2565b806323b872dd116101595780633b8105b3116101335780633b8105b31461030a5780634437152a1461031f5780634ada218b1461033f5780635b16ebb714610354576101c2565b806323b872dd146102a857806325d998bb146102c8578063313ce567146102e8576101c2565b806311d2f6891161019557806311d2f68914610231578063167653911461025157806318160ddd1461027e5780631cfff51b14610293576101c2565b806306fdde03146101c4578063095ea7b3146101ef5780631023231c1461021c576101c2565b366101c257005b005b3480156101d057600080fd5b506101d961053a565b6040516101e69190612079565b60405180910390f35b3480156101fb57600080fd5b5061020f61020a366004611ef8565b6105cc565b6040516101e6919061206e565b34801561022857600080fd5b506101c26105e9565b34801561023d57600080fd5b506101c261024c366004612036565b6106b5565b34801561025d57600080fd5b5061027161026c366004611e41565b61073b565b6040516101e691906125f7565b34801561028a57600080fd5b5061027161079a565b34801561029f57600080fd5b5061020f6107a0565b3480156102b457600080fd5b5061020f6102c3366004611eb8565b6107af565b3480156102d457600080fd5b506102716102e3366004611e41565b610884565b3480156102f457600080fd5b506102fd610910565b6040516101e69190612696565b34801561031657600080fd5b506101c2610919565b34801561032b57600080fd5b506101c261033a366004611e41565b6109db565b34801561034b57600080fd5b5061020f610a39565b34801561036057600080fd5b5061020f61036f366004611e41565b610a47565b34801561038057600080fd5b506101c261038f366004611fd9565b610a65565b3480156103a057600080fd5b5061020f6103af366004611e41565b610ae3565b3480156103c057600080fd5b506102716103cf366004611e41565b610b45565b3480156103e057600080fd5b506103f46103ef366004611e41565b610b56565b6040516101e693929190612680565b34801561040f57600080fd5b506101c261041e366004612015565b610bf9565b34801561042f57600080fd5b50610438610e49565b6040516101e6919061205a565b34801561045157600080fd5b506101c2610460366004611ff1565b610e58565b34801561047157600080fd5b506101d9610f45565b34801561048657600080fd5b506101c2610495366004611f23565b610f54565b3480156104a657600080fd5b506101c26104b5366004611e41565b611526565b3480156104c657600080fd5b5061020f6104d5366004611ef8565b611582565b3480156104e657600080fd5b506101c26104f5366004611fd9565b611596565b34801561050657600080fd5b506101c2610515366004612036565b6115d9565b34801561052657600080fd5b50610271610535366004611e80565b61165c565b6060600a805461054990612712565b80601f016020809104026020016040519081016040528092919081815260200182805461057590612712565b80156105c25780601f10610597576101008083540402835291602001916105c2565b820191906000526020600020905b8154815290600101906020018083116105a557829003601f168201915b5050505050905090565b60006105e06105d9611687565b848461168b565b50600192915050565b600d546001600160a01b03166105fd611687565b6001600160a01b03161461062c5760405162461bcd60e51b815260040161062390612280565b60405180910390fd5b600080610637611687565b6001600160a01b03164760405161064d90612057565b60006040518083038185875af1925050503d806000811461068a576040519150601f19603f3d011682016040523d82523d6000602084013e61068f565b606091505b5091509150816106b15760405162461bcd60e51b815260040161062390612252565b5050565b600d546001600160a01b03166106c9611687565b6001600160a01b0316146106ef5760405162461bcd60e51b815260040161062390612280565b600c5460ff6201000090910481169082161061071d5760405162461bcd60e51b8152600401610623906123e2565b600c805460ff909216620100000262ff000019909216919091179055565b60025460009062010000900460ff16801561076d57506001600160a01b03821660009081526006602052604090205442105b1561079157506001600160a01b038116600090815260056020526040902054610795565b5060005b919050565b60095490565b60025462010000900460ff1681565b6001600160a01b03831660009081526008602052604081208290826107d2611687565b6001600160a01b03166001600160a01b031681526020019081526020016000205410156108115760405162461bcd60e51b81526004016106239061239a565b61081c84848461173f565b61087a84610828611687565b6001600160a01b0387166000908152600860205260408120869161084a611687565b6001600160a01b03166001600160a01b031681526020019081526020016000205461087591906126fb565b61168b565b5060019392505050565b60025460009062010000900460ff1680156108b657506001600160a01b03821660009081526006602052604090205442105b156108f1576001600160a01b0382166000908152600560209081526040808320546004909252909120546108ea91906126fb565b9050610795565b506001600160a01b038116600090815260046020526040902054610795565b600c5460ff1690565b600d546001600160a01b031661092d611687565b6001600160a01b0316148061095c5750600e546001600160a01b0316610951611687565b6001600160a01b0316145b6109785760405162461bcd60e51b815260040161062390612280565b600e546001600160a01b03166109a05760405162461bcd60e51b81526004016106239061258b565b60025462010000900460ff161515600114156109c7576002805462ff0000191690556109d9565b6002805462ff00001916620100001790555b565b600d546001600160a01b03166109ef611687565b6001600160a01b031614610a155760405162461bcd60e51b8152600401610623906124a2565b6001600160a01b03166000908152600360205260409020805460ff19166001179055565b600254610100900460ff1681565b6001600160a01b031660009081526003602052604090205460ff1690565b600d546001600160a01b0316610a79611687565b6001600160a01b031614610a9f5760405162461bcd60e51b815260040161062390612280565b600254610100900460ff1615610ac75760405162461bcd60e51b8152600401610623906122af565b6002805461ff001916610100179055610ae08143611b52565b50565b60025460009062010000900460ff168015610b1557506001600160a01b03821660009081526006602052604090205442105b8015610b3857506001600160a01b03821660009081526005602052604090205415155b1561079157506001610795565b6000610b5082610884565b92915050565b600080600060028054906101000a900460ff168015610b8c57506001600160a01b03841660009081526006602052604090205442105b8015610baf57506001600160a01b03841660009081526005602052604090205415155b15610be8575050506001600160a01b03811660009081526005602090815260408083205460078352818420546006909352922054610bf2565b5060009150819050805b9193909250565b60025462010000900460ff16610c215760405162461bcd60e51b81526004016106239061231d565b610c2e4262014d976126a4565b8111610c4c5760405162461bcd60e51b815260040161062390612518565b60066000610c58611687565b6001600160a01b03166001600160a01b0316815260200190815260200160002054811015610c985760405162461bcd60e51b81526004016106239061210f565b81610ca46102e3611687565b1015610cc25760405162461bcd60e51b8152600401610623906124d0565b60008211610ce25760405162461bcd60e51b8152600401610623906121a2565b4260066000610cef611687565b6001600160a01b03166001600160a01b03168152602001908152602001600020541115610d79578160056000610d23611687565b6001600160a01b03166001600160a01b0316815260200190815260200160002054610d4e91906126a4565b60056000610d5a611687565b6001600160a01b03168152602081019190915260400160002055610da1565b8160056000610d86611687565b6001600160a01b031681526020810191909152604001600020555b8060066000610dae611687565b6001600160a01b03166001600160a01b03168152602001908152602001600020819055504260076000610ddf611687565b6001600160a01b03168152602081019190915260400160002055610e01611687565b6001600160a01b03167ff556991011e831bcfac4f406d547e5e32cdd98267efab83935230d5f8d02c446834284604051610e3d93929190612680565b60405180910390a25050565b600e546001600160a01b031690565b600d546001600160a01b0316610e6c611687565b6001600160a01b031614610e925760405162461bcd60e51b815260040161062390612280565b6361cf99804211610eb55760405162461bcd60e51b8152600401610623906125cc565b81600954610ec391906126a4565b6009556001600160a01b038116600090815260046020526040902054610eea9083906126a4565b6001600160a01b0382166000818152600460205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f399086906125f7565b60405180910390a35050565b6060600b805461054990612712565b600e546001600160a01b0316610f68611687565b6001600160a01b031614610f8e5760405162461bcd60e51b815260040161062390612280565b6000855b8082101561151c57838383818110610fba57634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610fcf9190611fb9565b15156001141561127c57858583818110610ff957634e487b7160e01b600052603260045260246000fd5b90506020020135600560008a8a8681811061102457634e487b7160e01b600052603260045260246000fd5b90506020020160208101906110399190611e41565b6001600160a01b03166001600160a01b031681526020019081526020016000205411156111435785858381811061108057634e487b7160e01b600052603260045260246000fd5b90506020020135600560008a8a868181106110ab57634e487b7160e01b600052603260045260246000fd5b90506020020160208101906110c09190611e41565b6001600160a01b03166001600160a01b03168152602001908152602001600020546110eb91906126fb565b600560008a8a8681811061110f57634e487b7160e01b600052603260045260246000fd5b90506020020160208101906111249190611e41565b6001600160a01b03168152602081019190915260400160002055611199565b6000600560008a8a8681811061116957634e487b7160e01b600052603260045260246000fd5b905060200201602081019061117e9190611e41565b6001600160a01b031681526020810191909152604001600020555b8585838181106111b957634e487b7160e01b600052603260045260246000fd5b90506020020135600460008a8a868181106111e457634e487b7160e01b600052603260045260246000fd5b90506020020160208101906111f99190611e41565b6001600160a01b03166001600160a01b031681526020019081526020016000205461122491906126fb565b600460008a8a8681811061124857634e487b7160e01b600052603260045260246000fd5b905060200201602081019061125d9190611e41565b6001600160a01b03168152602081019190915260400160002055611439565b85858381811061129c57634e487b7160e01b600052603260045260246000fd5b90506020020135600560008a8a868181106112c757634e487b7160e01b600052603260045260246000fd5b90506020020160208101906112dc9190611e41565b6001600160a01b03166001600160a01b031681526020019081526020016000205461130791906126a4565b600560008a8a8681811061132b57634e487b7160e01b600052603260045260246000fd5b90506020020160208101906113409190611e41565b6001600160a01b0316815260208101919091526040016000205585858381811061137a57634e487b7160e01b600052603260045260246000fd5b90506020020135600460008a8a868181106113a557634e487b7160e01b600052603260045260246000fd5b90506020020160208101906113ba9190611e41565b6001600160a01b03166001600160a01b03168152602001908152602001600020546113e591906126a4565b600460008a8a8681811061140957634e487b7160e01b600052603260045260246000fd5b905060200201602081019061141e9190611e41565b6001600160a01b031681526020810191909152604001600020555b87878381811061145957634e487b7160e01b600052603260045260246000fd5b905060200201602081019061146e9190611e41565b6001600160a01b03167f40d1bd8722cd8a4a9b2de996db4d475067e7bc01ad81394bf5c5b1b98bd4d2fc8787858181106114b857634e487b7160e01b600052603260045260246000fd5b905060200201358686868181106114df57634e487b7160e01b600052603260045260246000fd5b90506020020160208101906114f49190611fb9565b604051611502929190612600565b60405180910390a2816115148161274d565b925050610f92565b5050505050505050565b600d546001600160a01b031661153a611687565b6001600160a01b0316146115605760405162461bcd60e51b815260040161062390612280565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b60006105e061158f611687565b848461173f565b600d546001600160a01b03166115aa611687565b6001600160a01b0316146115d05760405162461bcd60e51b815260040161062390612280565b610ae081611b72565b600d546001600160a01b03166115ed611687565b6001600160a01b0316146116135760405162461bcd60e51b815260040161062390612280565b600c5460ff6101009091048116908216106116405760405162461bcd60e51b8152600401610623906123e2565b600c805460ff9092166101000261ff0019909216919091179055565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b3390565b6001600160a01b0383166116b15760405162461bcd60e51b81526004016106239061245e565b6001600160a01b0382166116d75760405162461bcd60e51b8152600401610623906121d9565b6001600160a01b0380841660008181526008602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906117329085906125f7565b60405180910390a3505050565b6001600160a01b0383166117655760405162461bcd60e51b815260040161062390612419565b6001600160a01b03821661178b5760405162461bcd60e51b8152600401610623906120cc565b6001600160a01b0383166000908152600460205260409020548111156117c35760405162461bcd60e51b815260040161062390612363565b806117cd84610884565b10156117eb5760405162461bcd60e51b815260040161062390612158565b6000811161180b5760405162461bcd60e51b81526004016106239061221b565b6001600160a01b03831660009081526003602052604081205482919060ff16151560011480156118505750600c546001600160a01b0385811663010000009092041614155b801561186a5750600f546001600160a01b03858116911614155b1561191a576001544211806118855750652d79883d20008311155b6118a15760405162461bcd60e51b81526004016106239061255c565b60005443116118c25760405162461bcd60e51b8152600401610623906122e6565b600c546064906118da90610100900460ff16856126dc565b6118e491906126bc565b90506118f081846126fb565b306000908152600460205260408120805492945083929091906119149084906126a4565b90915550505b6001600160a01b03841660009081526003602052604090205460ff161515600114801561195c5750600c546001600160a01b0386811663010000009092041614155b80156119765750600f546001600160a01b03868116911614155b15611aa457600054431161199c5760405162461bcd60e51b8152600401610623906122e6565b6001544211806119b25750652d79883d20008311155b6119ce5760405162461bcd60e51b81526004016106239061255c565b600c546064906119e79062010000900460ff16856126dc565b6119f191906126bc565b90506119fd81846126fb565b30600090815260046020526040812080549294508392909190611a219084906126a4565b90915550503060009081526004602052604090205464174876e800108015611a4c575060025460ff16155b15611aa457306000908152600460205260409020546064611a6e8560286126dc565b611a7891906126bc565b811115611a99576064611a8c8560286126dc565b611a9691906126bc565b90505b611aa281611b72565b505b6001600160a01b03841660009081526004602052604081208054849290611acc9084906126a4565b90915550506001600160a01b03851660009081526004602052604081208054859290611af99084906126fb565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611b4391906125f7565b60405180910390a35050505050565b611b5c82826126a4565b600055611b6b426107086126a4565b6001555050565b6002805460ff191660011781556040805182815260608101825260009290916020830190803683370190505090503081600081518110611bc257634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611c1657600080fd5b505afa158015611c2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c4e9190611e64565b81600181518110611c6f57634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152600f54611c95913091168461168b565b60115460405163791ac94760e01b81526001600160a01b039091169063791ac94790611cce908590600090869030904290600401612610565b600060405180830381600087803b158015611ce857600080fd5b505af1158015611cfc573d6000803e3d6000fd5b505050506000471115611d665760025462010000900460ff1615611d4f5760006064611d294760146126dc565b611d3391906126bc565b600e54909150611d4d9082906001600160a01b0316611d74565b505b600d54611d669047906001600160a01b0316611d74565b50506002805460ff19169055565b600080826001600160a01b031684604051611d8e90612057565b60006040518083038185875af1925050503d8060008114611dcb576040519150601f19603f3d011682016040523d82523d6000602084013e611dd0565b606091505b509150915081611df25760405162461bcd60e51b815260040161062390612252565b50505050565b60008083601f840112611e09578182fd5b50813567ffffffffffffffff811115611e20578182fd5b6020830191508360208083028501011115611e3a57600080fd5b9250929050565b600060208284031215611e52578081fd5b8135611e5d8161277e565b9392505050565b600060208284031215611e75578081fd5b8151611e5d8161277e565b60008060408385031215611e92578081fd5b8235611e9d8161277e565b91506020830135611ead8161277e565b809150509250929050565b600080600060608486031215611ecc578081fd5b8335611ed78161277e565b92506020840135611ee78161277e565b929592945050506040919091013590565b60008060408385031215611f0a578182fd5b8235611f158161277e565b946020939093013593505050565b60008060008060008060608789031215611f3b578182fd5b863567ffffffffffffffff80821115611f52578384fd5b611f5e8a838b01611df8565b90985096506020890135915080821115611f76578384fd5b611f828a838b01611df8565b90965094506040890135915080821115611f9a578384fd5b50611fa789828a01611df8565b979a9699509497509295939492505050565b600060208284031215611fca578081fd5b81358015158114611e5d578182fd5b600060208284031215611fea578081fd5b5035919050565b60008060408385031215612003578182fd5b823591506020830135611ead8161277e565b60008060408385031215612027578182fd5b50508035926020909101359150565b600060208284031215612047578081fd5b813560ff81168114611e5d578182fd5b90565b6001600160a01b0391909116815260200190565b901515815260200190565b6000602080835283518082850152825b818110156120a557858101830151858201604001528201612089565b818111156120b65783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526029908201527f24574541504f4e3a206e6577207374616b652074696d652063616e6e6f742062604082015268329039b437b93a32b960b91b606082015260800190565b6020808252602a908201527f24574541504f4e3a207472616e73666572206578636565647320756e7374616b60408201526965642062616c616e636560b01b606082015260800190565b6020808252601e908201527f24574541504f4e3a2063616e6e6f74207374616b65203020746f6b656e730000604082015260600190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601d908201527f24574541504f4e3a2063616e6e6f74207472616e73666572207a65726f000000604082015260600190565b6020808252601490820152732330b4b632b2103a379039b2b7321022ba3432b960611b604082015260600190565b6020808252601590820152740915d1505413d38e88155b985d5d1a1bdc9a5e9959605a1b604082015260600190565b6020808252601e908201527f24574541504f4e3a20616c7265616479206c6f616465642c207375636b610000604082015260600190565b6020808252601c908201527f24574541504f4e3a2074726164696e67206e6f7420656e61626c656400000000604082015260600190565b60208082526026908201527f24574541504f4e3a207374616b696e672063757272656e746c79206e6f7420656040820152651b98589b195960d21b606082015260800190565b6020808252601f908201527f45524332303a207472616e7366657220657863656564732062616c616e636500604082015260600190565b60208082526028908201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616040820152676c6c6f77616e636560c01b606082015260800190565b6020808252601e908201527f24574541504f4e3a206e657720746178206d757374206265206c6f7765720000604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b6020808252601490820152730915d1505413d38e88155b9d5d1a1bdc9a5e995960621b604082015260600190565b60208082526028908201527f24574541504f4e3a207374616b65206578636565647320617661696c61626c656040820152672062616c616e636560c01b606082015260800190565b60208082526024908201527f24574541504f4e3a206d696e696d756d207374616b652074696d6520323420686040820152636f75727360e01b606082015260800190565b6020808252601590820152740915d1505413d38e881b585e081d1e081b1a5b5a5d605a1b604082015260600190565b60208082526021908201527f24574541504f4e3a207374616b696e6720636f6e7472616374206e6f742073656040820152601d60fa1b606082015260800190565b602080825260119082015270122ba2a0a827a71d103a37b79039b7b7b760791b604082015260600190565b90815260200190565b9182521515602082015260400190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b8181101561265f5784516001600160a01b03168352938301939183019160010161263a565b50506001600160a01b03969096166060850152505050608001529392505050565b9283526020830191909152604082015260600190565b60ff91909116815260200190565b600082198211156126b7576126b7612768565b500190565b6000826126d757634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156126f6576126f6612768565b500290565b60008282101561270d5761270d612768565b500390565b60028104600182168061272657607f821691505b6020821081141561274757634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561276157612761612768565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114610ae057600080fdfea26469706673582212202b00e7b5f1f701553389f2c2d216043c90510555fdd5b1d094eeffbbd0c4e0fe64736f6c63430008010033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000001ed7f72a25c45df4dc5b9a53af8ad5269a827862
-----Decoded View---------------
Arg [0] : dev (address): 0x1ed7f72A25c45df4dC5b9A53AF8Ad5269a827862
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000001ed7f72a25c45df4dc5b9a53af8ad5269a827862
Deployed Bytecode Sourcemap
8428:11739:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10023:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12016:161;;;;;;;;;;-1:-1:-1;12016:161:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;19826:263::-;;;;;;;;;;;;;:::i;18096:226::-;;;;;;;;;;-1:-1:-1;18096:226:0;;;;;:::i;:::-;;:::i;10544:251::-;;;;;;;;;;-1:-1:-1;10544:251:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;10300:100::-;;;;;;;;;;;;;:::i;8613:34::-;;;;;;;;;;;;;:::i;12185:374::-;;;;;;;;;;-1:-1:-1;12185:374:0;;;;;:::i;:::-;;:::i;10803:289::-;;;;;;;;;;-1:-1:-1;10803:289:0;;;;;:::i;:::-;;:::i;10209:83::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;16938:336::-;;;;;;;;;;;;;:::i;18330:150::-;;;;;;;;;;-1:-1:-1;18330:150:0;;;;;:::i;:::-;;:::i;8572:34::-;;;;;;;;;;;;;:::i;18492:95::-;;;;;;;;;;-1:-1:-1;18492:95:0;;;;;:::i;:::-;;:::i;17282:283::-;;;;;;;;;;-1:-1:-1;17282:283:0;;;;;:::i;:::-;;:::i;11100:244::-;;;;;;;;;;-1:-1:-1;11100:244:0;;;;;:::i;:::-;;:::i;10408:128::-;;;;;;;;;;-1:-1:-1;10408:128:0;;;;;:::i;:::-;;:::i;11352:330::-;;;;;;;;;;-1:-1:-1;11352:330:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;14742:909::-;;;;;;;;;;-1:-1:-1;14742:909:0;;;;;:::i;:::-;;:::i;17755:102::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;16555:375::-;;;;;;;;;;-1:-1:-1;16555:375:0;;;;;:::i;:::-;;:::i;10114:87::-;;;;;;;;;;;;;:::i;15659:888::-;;;;;;;;;;-1:-1:-1;15659:888:0;;;;;:::i;:::-;;:::i;17573:174::-;;;;;;;;;;-1:-1:-1;17573:174:0;;;;;:::i;:::-;;:::i;11690:167::-;;;;;;;;;;-1:-1:-1;11690:167:0;;;;;:::i;:::-;;:::i;19655:163::-;;;;;;;;;;-1:-1:-1;19655:163:0;;;;;:::i;:::-;;:::i;17865:223::-;;;;;;;;;;-1:-1:-1;17865:223:0;;;;;:::i;:::-;;:::i;11865:143::-;;;;;;;;;;-1:-1:-1;11865:143:0;;;;;:::i;:::-;;:::i;10023:83::-;10060:13;10093:5;10086:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10023:83;:::o;12016:161::-;12091:4;12108:39;12117:12;:10;:12::i;:::-;12131:7;12140:6;12108:8;:39::i;:::-;-1:-1:-1;12165:4:0;12016:161;;;;:::o;19826:263::-;19902:10;;-1:-1:-1;;;;;19902:10:0;19886:12;:10;:12::i;:::-;-1:-1:-1;;;;;19886:26:0;;19877:61;;;;-1:-1:-1;;;19877:61:0;;;;;;;:::i;:::-;;;;;;;;;19950:9;19961:17;19982:12;:10;:12::i;:::-;-1:-1:-1;;;;;19982:17:0;20007:21;19982:51;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19949:84;;;;20052:4;20044:37;;;;-1:-1:-1;;;20044:37:0;;;;;;;:::i;:::-;19826:263;;:::o;18096:226::-;18178:10;;-1:-1:-1;;;;;18178:10:0;18162:12;:10;:12::i;:::-;-1:-1:-1;;;;;18162:26:0;;18153:61;;;;-1:-1:-1;;;18153:61:0;;;;;;;:::i;:::-;18243:8;;;;;;;;;18234:17;;;;18225:61;;;;-1:-1:-1;;;18225:61:0;;;;;;;:::i;:::-;18297:8;:17;;;;;;;;-1:-1:-1;;18297:17:0;;;;;;;;;18096:226::o;10544:251::-;10631:14;;10607:7;;10631:14;;;;;:61;;;;-1:-1:-1;;;;;;10649:25:0;;;;;;:16;:25;;;;;;10677:15;-1:-1:-1;10631:61:0;10627:152;;;-1:-1:-1;;;;;;10716:24:0;;;;;;:15;:24;;;;;;10709:31;;10627:152;-1:-1:-1;10778:1:0;10627:152;10544:251;;;:::o;10300:100::-;10380:12;;10300:100;:::o;8613:34::-;;;;;;;;;:::o;12185:374::-;-1:-1:-1;;;;;12309:19:0;;12283:4;12309:19;;;:11;:19;;;;;12346:6;;12283:4;12329:12;:10;:12::i;:::-;-1:-1:-1;;;;;12309:33:0;-1:-1:-1;;;;;12309:33:0;;;;;;;;;;;;;:43;;12300:97;;;;-1:-1:-1;;;12300:97:0;;;;;;;:::i;:::-;12408:36;12418:6;12426:9;12437:6;12408:9;:36::i;:::-;12455:74;12464:6;12472:12;:10;:12::i;:::-;-1:-1:-1;;;;;12486:19:0;;;;;;:11;:19;;;;;12522:6;;12506:12;:10;:12::i;:::-;-1:-1:-1;;;;;12486:33:0;-1:-1:-1;;;;;12486:33:0;;;;;;;;;;;;;:42;;;;:::i;:::-;12455:8;:74::i;:::-;-1:-1:-1;12547:4:0;12185:374;;;;;:::o;10803:289::-;10893:14;;10869:7;;10893:14;;;;;:61;;;;-1:-1:-1;;;;;;10911:25:0;;;;;;:16;:25;;;;;;10939:15;-1:-1:-1;10893:61:0;10889:190;;;-1:-1:-1;;;;;10999:24:0;;;;;;:15;:24;;;;;;;;;10978:9;:18;;;;;;;:45;;10999:24;10978:45;:::i;:::-;10971:52;;;;10889:190;-1:-1:-1;;;;;;11061:18:0;;;;;;:9;:18;;;;;;11054:25;;10209:83;10275:9;;;;10209:83;:::o;16938:336::-;17008:10;;-1:-1:-1;;;;;17008:10:0;16992:12;:10;:12::i;:::-;-1:-1:-1;;;;;16992:26:0;;:62;;;-1:-1:-1;17038:16:0;;-1:-1:-1;;;;;17038:16:0;17022:12;:10;:12::i;:::-;-1:-1:-1;;;;;17022:32:0;;16992:62;16983:97;;;;-1:-1:-1;;;16983:97:0;;;;;;;:::i;:::-;17100:16;;-1:-1:-1;;;;;17100:16:0;17091:77;;;;-1:-1:-1;;;17091:77:0;;;;;;;:::i;:::-;17183:14;;;;;;;:22;;17201:4;17183:22;17179:87;;;17207:14;:22;;-1:-1:-1;;17207:22:0;;;17179:87;;;17245:14;:21;;-1:-1:-1;;17245:21:0;;;;;17179:87;16938:336::o;18330:150::-;18406:10;;-1:-1:-1;;;;;18406:10:0;18390:12;:10;:12::i;:::-;-1:-1:-1;;;;;18390:26:0;;18381:60;;;;-1:-1:-1;;;18381:60:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18452:13:0;;;;;:7;:13;;;;;:20;;-1:-1:-1;;18452:20:0;18468:4;18452:20;;;18330:150::o;8572:34::-;;;;;;;;;:::o;18492:95::-;-1:-1:-1;;;;;18566:13:0;18543:4;18566:13;;;:7;:13;;;;;;;;;18492:95::o;17282:283::-;17366:10;;-1:-1:-1;;;;;17366:10:0;17350:12;:10;:12::i;:::-;-1:-1:-1;;;;;17350:26:0;;17341:61;;;;-1:-1:-1;;;17341:61:0;;;;;;;:::i;:::-;17422:14;;;;;;;:23;17413:67;;;;-1:-1:-1;;;17413:67:0;;;;;;;:::i;:::-;17491:14;:21;;-1:-1:-1;;17491:21:0;;;;;17523:34;17535:7;17544:12;17523:11;:34::i;:::-;17282:283;:::o;11100:244::-;11177:14;;11156:4;;11177:14;;;;;:61;;;;-1:-1:-1;;;;;;11195:25:0;;;;;;:16;:25;;;;;;11223:15;-1:-1:-1;11177:61:0;:93;;;;-1:-1:-1;;;;;;11242:24:0;;11269:1;11242:24;;;:15;:24;;;;;;:28;;11177:93;11173:163;;;-1:-1:-1;11293:4:0;11286:11;;10408:128;10474:7;10501:27;10520:7;10501:18;:27::i;:::-;10494:34;10408:128;-1:-1:-1;;10408:128:0:o;11352:330::-;11408:7;11417;11426;11450:14;;;;;;;;;;:61;;;;-1:-1:-1;;;;;;11468:25:0;;;;;;:16;:25;;;;;;11496:15;-1:-1:-1;11450:61:0;:93;;;;-1:-1:-1;;;;;;11515:24:0;;11542:1;11515:24;;;:15;:24;;;;;;:28;;11450:93;11446:228;;;-1:-1:-1;;;;;;;;11566:24:0;;;;;;:15;:24;;;;;;;;;11592:15;:24;;;;;;11618:16;:25;;;;;;11558:86;;11446:228;-1:-1:-1;11668:1:0;;-1:-1:-1;11668:1:0;;-1:-1:-1;11668:1:0;11446:228;11352:330;;;;;:::o;14742:909::-;14823:14;;;;;;;14814:66;;;;-1:-1:-1;;;14814:66:0;;;;;;;:::i;:::-;14916:23;:15;14934:5;14916:23;:::i;:::-;14901:11;:39;14892:88;;;;-1:-1:-1;;;14892:88:0;;;;;;;:::i;:::-;15016:16;:30;15033:12;:10;:12::i;:::-;-1:-1:-1;;;;;15016:30:0;-1:-1:-1;;;;;15016:30:0;;;;;;;;;;;;;15001:11;:45;;14992:100;;;;-1:-1:-1;;;14992:100:0;;;;;;;:::i;:::-;15148:6;15112:32;15131:12;:10;:12::i;15112:32::-;:42;;15103:96;;;;-1:-1:-1;;;15103:96:0;;;;;;;:::i;:::-;15228:1;15219:6;:10;15210:54;;;;-1:-1:-1;;;15210:54:0;;;;;;;:::i;:::-;15314:15;15281:16;:30;15298:12;:10;:12::i;:::-;-1:-1:-1;;;;;15281:30:0;-1:-1:-1;;;;;15281:30:0;;;;;;;;;;;;;:48;15277:178;;;15395:6;15363:15;:29;15379:12;:10;:12::i;:::-;-1:-1:-1;;;;;15363:29:0;-1:-1:-1;;;;;15363:29:0;;;;;;;;;;;;;:38;;;;:::i;:::-;15331:15;:29;15347:12;:10;:12::i;:::-;-1:-1:-1;;;;;15331:29:0;;;;;;;;;;;;-1:-1:-1;15331:29:0;:70;15277:178;;;15449:6;15417:15;:29;15433:12;:10;:12::i;:::-;-1:-1:-1;;;;;15417:29:0;;;;;;;;;;;;-1:-1:-1;15417:29:0;:38;15277:178;15499:11;15466:16;:30;15483:12;:10;:12::i;:::-;-1:-1:-1;;;;;15466:30:0;-1:-1:-1;;;;;15466:30:0;;;;;;;;;;;;:44;;;;15553:15;15521;:29;15537:12;:10;:12::i;:::-;-1:-1:-1;;;;;15521:29:0;;;;;;;;;;;;-1:-1:-1;15521:29:0;:47;15592:12;:10;:12::i;:::-;-1:-1:-1;;;;;15586:57:0;;15606:6;15614:15;15631:11;15586:57;;;;;;;;:::i;:::-;;;;;;;;14742:909;;:::o;17755:102::-;17833:16;;-1:-1:-1;;;;;17833:16:0;17755:102;:::o;16555:375::-;16649:10;;-1:-1:-1;;;;;16649:10:0;16633:12;:10;:12::i;:::-;-1:-1:-1;;;;;16633:26:0;;16624:61;;;;-1:-1:-1;;;16624:61:0;;;;;;;:::i;:::-;16723:10;16705:15;:28;16696:59;;;;-1:-1:-1;;;16696:59:0;;;;;;;:::i;:::-;16796:6;16781:12;;:21;;;;:::i;:::-;16766:12;:36;-1:-1:-1;;;;;16836:20:0;;;;;;:9;:20;;;;;;:29;;16859:6;;16836:29;:::i;:::-;-1:-1:-1;;;;;16813:20:0;;;;;;:9;:20;;;;;;:52;;;;16883:39;;16813:20;;;16883:39;;;;16915:6;;16883:39;:::i;:::-;;;;;;;;16555:375;;:::o;10114:87::-;10153:13;10186:7;10179:14;;;;;:::i;15659:888::-;15802:16;;-1:-1:-1;;;;;15802:16:0;15786:12;:10;:12::i;:::-;-1:-1:-1;;;;;15786:32:0;;15777:67;;;;-1:-1:-1;;;15777:67:0;;;;;;;:::i;:::-;15855:6;15887:7;15912:628;15923:3;15919:1;:7;15912:628;;;15947:6;;15954:1;15947:9;;;;;-1:-1:-1;;;15947:9:0;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:17;;15960:4;15947:17;15943:503;;;16019:6;;16026:1;16019:9;;;;;-1:-1:-1;;;16019:9:0;;;;;;;;;;;;;;;15989:15;:27;16005:7;;16013:1;16005:10;;;;;-1:-1:-1;;;16005:10:0;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15989:27:0;-1:-1:-1;;;;;15989:27:0;;;;;;;;;;;;;:39;15985:169;;;16090:6;;16097:1;16090:9;;;;;-1:-1:-1;;;16090:9:0;;;;;;;;;;;;;;;16060:15;:27;16076:7;;16084:1;16076:10;;;;;-1:-1:-1;;;16076:10:0;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16060:27:0;-1:-1:-1;;;;;16060:27:0;;;;;;;;;;;;;:39;;;;:::i;:::-;16030:15;:27;16046:7;;16054:1;16046:10;;;;;-1:-1:-1;;;16046:10:0;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16030:27:0;;;;;;;;;;;;-1:-1:-1;16030:27:0;:69;15985:169;;;16153:1;16123:15;:27;16139:7;;16147:1;16139:10;;;;;-1:-1:-1;;;16139:10:0;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16123:27:0;;;;;;;;;;;;-1:-1:-1;16123:27:0;:31;15985:169;16221:6;;16228:1;16221:9;;;;;-1:-1:-1;;;16221:9:0;;;;;;;;;;;;;;;16197;:21;16207:7;;16215:1;16207:10;;;;;-1:-1:-1;;;16207:10:0;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16197:21:0;-1:-1:-1;;;;;16197:21:0;;;;;;;;;;;;;:33;;;;:::i;:::-;16173:9;:21;16183:7;;16191:1;16183:10;;;;;-1:-1:-1;;;16183:10:0;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16173:21:0;;;;;;;;;;;;-1:-1:-1;16173:21:0;:57;15943:503;;;16345:6;;16352:1;16345:9;;;;;-1:-1:-1;;;16345:9:0;;;;;;;;;;;;;;;16315:15;:27;16331:7;;16339:1;16331:10;;;;;-1:-1:-1;;;16331:10:0;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16315:27:0;-1:-1:-1;;;;;16315:27:0;;;;;;;;;;;;;:39;;;;:::i;:::-;16285:15;:27;16301:7;;16309:1;16301:10;;;;;-1:-1:-1;;;16301:10:0;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16285:27:0;;;;;;;;;;;;-1:-1:-1;16285:27:0;:69;16421:6;;16428:1;16421:9;;;;;-1:-1:-1;;;16421:9:0;;;;;;;;;;;;;;;16397;:21;16407:7;;16415:1;16407:10;;;;;-1:-1:-1;;;16407:10:0;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16397:21:0;-1:-1:-1;;;;;16397:21:0;;;;;;;;;;;;;:33;;;;:::i;:::-;16373:9;:21;16383:7;;16391:1;16383:10;;;;;-1:-1:-1;;;16383:10:0;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16373:21:0;;;;;;;;;;;;-1:-1:-1;16373:21:0;:57;15943:503;16477:7;;16485:1;16477:10;;;;;-1:-1:-1;;;16477:10:0;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16467:43:0;;16489:6;;16496:1;16489:9;;;;;-1:-1:-1;;;16489:9:0;;;;;;;;;;;;;;;16500:6;;16507:1;16500:9;;;;;-1:-1:-1;;;16500:9:0;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16467:43;;;;;;;:::i;:::-;;;;;;;;16525:3;;;;:::i;:::-;;;;15912:628;;;15659:888;;;;;;;;:::o;17573:174::-;17660:10;;-1:-1:-1;;;;;17660:10:0;17644:12;:10;:12::i;:::-;-1:-1:-1;;;;;17644:26:0;;17635:61;;;;-1:-1:-1;;;17635:61:0;;;;;;;:::i;:::-;17707:16;:32;;-1:-1:-1;;;;;;17707:32:0;-1:-1:-1;;;;;17707:32:0;;;;;;;;;;17573:174::o;11690:167::-;11768:4;11785:42;11795:12;:10;:12::i;:::-;11809:9;11820:6;11785:9;:42::i;19655:163::-;19743:10;;-1:-1:-1;;;;;19743:10:0;19727:12;:10;:12::i;:::-;-1:-1:-1;;;;;19727:26:0;;19718:61;;;;-1:-1:-1;;;19718:61:0;;;;;;;:::i;:::-;19790:20;19803:6;19790:12;:20::i;17865:223::-;17946:10;;-1:-1:-1;;;;;17946:10:0;17930:12;:10;:12::i;:::-;-1:-1:-1;;;;;17930:26:0;;17921:61;;;;-1:-1:-1;;;17921:61:0;;;;;;;:::i;:::-;18011:7;;;;;;;;;18002:16;;;;17993:60;;;;-1:-1:-1;;;17993:60:0;;;;;;;:::i;:::-;18064:7;:16;;;;;;;;-1:-1:-1;;18064:16:0;;;;;;;;;17865:223::o;11865:143::-;-1:-1:-1;;;;;11973:18:0;;;11946:7;11973:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;11865:143::o;5463:98::-;5543:10;5463:98;:::o;12567:337::-;-1:-1:-1;;;;;12660:19:0;;12652:68;;;;-1:-1:-1;;;12652:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12739:21:0;;12731:68;;;;-1:-1:-1;;;12731:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12812:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;;:36;;;12864:32;;;;;12842:6;;12864:32;:::i;:::-;;;;;;;;12567:337;;;:::o;12912:1822::-;-1:-1:-1;;;;;13009:20:0;;13001:70;;;;-1:-1:-1;;;13001:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13090:23:0;;13082:71;;;;-1:-1:-1;;;13082:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13172:17:0;;;;;;:9;:17;;;;;;:27;-1:-1:-1;13172:27:0;13164:71;;;;-1:-1:-1;;;13164:71:0;;;;;;;:::i;:::-;13284:6;13254:26;13273:6;13254:18;:26::i;:::-;:36;;13246:91;;;;-1:-1:-1;;;13246:91:0;;;;;;;:::i;:::-;13365:1;13356:6;:10;13348:52;;;;-1:-1:-1;;;13348:52:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13488:15:0;;13413:19;13488:15;;;:7;:15;;;;;;13435:6;;13413:19;13488:15;;:23;;:15;:23;:43;;;;-1:-1:-1;13528:3:0;;-1:-1:-1;;;;;13515:16:0;;;13528:3;;;;;13515:16;;13488:43;:70;;;;-1:-1:-1;13548:10:0;;-1:-1:-1;;;;;13535:23:0;;;13548:10;;13535:23;;13488:70;13484:403;;;13602:10;;13584:15;:28;:55;;;;13626:13;13616:6;:23;;13584:55;13575:90;;;;-1:-1:-1;;;13575:90:0;;;;;;;:::i;:::-;13704:8;;13689:12;:23;13680:65;;;;-1:-1:-1;;;13680:65:0;;;;;;;:::i;:::-;13775:7;;13785:3;;13766:16;;13775:7;;;;;13766:6;:16;:::i;:::-;:22;;;;:::i;:::-;13760:28;-1:-1:-1;13817:12:0;13760:28;13817:6;:12;:::i;:::-;13862:4;13844:24;;;;:9;:24;;;;;:31;;13803:26;;-1:-1:-1;13872:3:0;;13844:24;;;:31;;13872:3;;13844:31;:::i;:::-;;;;-1:-1:-1;;13484:403:0;-1:-1:-1;;;;;13901:18:0;;;;;;:7;:18;;;;;;;;:26;;:18;:26;:43;;;;-1:-1:-1;13941:3:0;;-1:-1:-1;;;;;13931:13:0;;;13941:3;;;;;13931:13;;13901:43;:67;;;;-1:-1:-1;13958:10:0;;-1:-1:-1;;;;;13948:20:0;;;13958:10;;13948:20;;13901:67;13897:687;;;14009:8;;13994:12;:23;13985:65;;;;-1:-1:-1;;;13985:65:0;;;;;;;:::i;:::-;14092:10;;14074:15;:28;:55;;;;14116:13;14106:6;:23;;14074:55;14065:90;;;;-1:-1:-1;;;14065:90:0;;;;;;;:::i;:::-;14185:8;;14196:3;;14176:17;;14185:8;;;;;14176:6;:17;:::i;:::-;:23;;;;:::i;:::-;14170:29;-1:-1:-1;14228:12:0;14170:29;14228:6;:12;:::i;:::-;14273:4;14255:24;;;;:9;:24;;;;;:31;;14214:26;;-1:-1:-1;14283:3:0;;14255:24;;;:31;;14283:3;;14255:31;:::i;:::-;;;;-1:-1:-1;;14325:4:0;14307:24;;;;:9;:24;;;;;;14334:11;-1:-1:-1;14307:52:0;;;;-1:-1:-1;14350:9:0;;;;14349:10;14307:52;14303:270;;;14420:4;14380:19;14402:24;;;:9;:24;;;;;;14477:3;14463:11;:6;14472:2;14463:11;:::i;:::-;:17;;;;:::i;:::-;14449:11;:31;14445:68;;;14510:3;14496:11;:6;14505:2;14496:11;:::i;:::-;:17;;;;:::i;:::-;14482:31;;14445:68;14532:25;14545:11;14532:12;:25::i;:::-;14303:270;;-1:-1:-1;;;;;14600:20:0;;;;;;:9;:20;;;;;:35;;14624:11;;14600:20;:35;;14624:11;;14600:35;:::i;:::-;;;;-1:-1:-1;;;;;;;14646:17:0;;;;;;:9;:17;;;;;:27;;14667:6;;14646:17;:27;;14667:6;;14646:27;:::i;:::-;;;;;;;;14708:9;-1:-1:-1;;;;;14691:35:0;14700:6;-1:-1:-1;;;;;14691:35:0;;14719:6;14691:35;;;;;;:::i;:::-;;;;;;;;12912:1822;;;;;:::o;18595:162::-;18683:20;18696:7;18683:10;:20;:::i;:::-;18672:8;:31;18727:22;:15;18745:4;18727:22;:::i;:::-;18714:10;:35;-1:-1:-1;;18595:162:0:o;18967:676::-;9951:9;:16;;-1:-1:-1;;9951:16:0;9963:4;9951:16;;;19057::::1;::::0;;;;;;;::::1;::::0;;-1:-1:-1;;19057:16:0;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;19057:16:0::1;19033:40;;19102:4;19084;19089:1;19084:7;;;;;;-1:-1:-1::0;;;19084:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;19084:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;19128:11:::1;::::0;:18:::1;::::0;;-1:-1:-1;;;19128:18:0;;;;:11;;;::::1;::::0;:16:::1;::::0;:18:::1;::::0;;::::1;::::0;19084:7;;19128:18;;;;;:11;:18;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19118:4;19123:1;19118:7;;;;;;-1:-1:-1::0;;;19118:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;19118:28:0;;::::1;:7;::::0;;::::1;::::0;;;;;:28;19183:10:::1;::::0;19159:43:::1;::::0;19176:4:::1;::::0;19183:10:::1;19195:6:::0;19159:8:::1;:43::i;:::-;19213:11;::::0;:111:::1;::::0;-1:-1:-1;;;19213:111:0;;-1:-1:-1;;;;;19213:11:0;;::::1;::::0;:62:::1;::::0;:111:::1;::::0;19276:6;;19213:11:::1;::::0;19287:4;;19301::::1;::::0;19308:15:::1;::::0;19213:111:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;19365:1;19341:21;:25;19337:299;;;19397:14;::::0;;;::::1;;;19393:170;;;19432:17;19481:3;19452:26;:21;19476:2;19452:26;:::i;:::-;:32;;;;:::i;:::-;19530:16;::::0;19432:52;;-1:-1:-1;19503:44:0::1;::::0;19432:52;;-1:-1:-1;;;;;19530:16:0::1;19503:12;:44::i;:::-;19393:170;;19613:10;::::0;19577:47:::1;::::0;19590:21:::1;::::0;-1:-1:-1;;;;;19613:10:0::1;19577:12;:47::i;:::-;-1:-1:-1::0;;9990:9:0;:17;;-1:-1:-1;;9990:17:0;;;18967:676::o;18765:194::-;18844:9;18855:17;18876:3;-1:-1:-1;;;;;18876:8:0;18892:6;18876:27;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18843:60;;;;18922:4;18914:37;;;;-1:-1:-1;;;18914:37:0;;;;;;;:::i;:::-;18765:194;;;;:::o;14:404:1:-;;;147:3;140:4;132:6;128:17;124:27;114:2;;172:8;162;155:26;114:2;-1:-1:-1;202:20:1;;245:18;234:30;;231:2;;;284:8;274;267:26;231:2;328:4;320:6;316:17;304:29;;391:3;384:4;376;368:6;364:17;356:6;352:30;348:41;345:50;342:2;;;408:1;405;398:12;342:2;104:314;;;;;:::o;423:259::-;;535:2;523:9;514:7;510:23;506:32;503:2;;;556:6;548;541:22;503:2;600:9;587:23;619:33;646:5;619:33;:::i;:::-;671:5;493:189;-1:-1:-1;;;493:189:1:o;687:263::-;;810:2;798:9;789:7;785:23;781:32;778:2;;;831:6;823;816:22;778:2;868:9;862:16;887:33;914:5;887:33;:::i;955:402::-;;;1084:2;1072:9;1063:7;1059:23;1055:32;1052:2;;;1105:6;1097;1090:22;1052:2;1149:9;1136:23;1168:33;1195:5;1168:33;:::i;:::-;1220:5;-1:-1:-1;1277:2:1;1262:18;;1249:32;1290:35;1249:32;1290:35;:::i;:::-;1344:7;1334:17;;;1042:315;;;;;:::o;1362:470::-;;;;1508:2;1496:9;1487:7;1483:23;1479:32;1476:2;;;1529:6;1521;1514:22;1476:2;1573:9;1560:23;1592:33;1619:5;1592:33;:::i;:::-;1644:5;-1:-1:-1;1701:2:1;1686:18;;1673:32;1714:35;1673:32;1714:35;:::i;:::-;1466:366;;1768:7;;-1:-1:-1;;;1822:2:1;1807:18;;;;1794:32;;1466:366::o;1837:327::-;;;1966:2;1954:9;1945:7;1941:23;1937:32;1934:2;;;1987:6;1979;1972:22;1934:2;2031:9;2018:23;2050:33;2077:5;2050:33;:::i;:::-;2102:5;2154:2;2139:18;;;;2126:32;;-1:-1:-1;;;1924:240:1:o;2169:1143::-;;;;;;;2417:2;2405:9;2396:7;2392:23;2388:32;2385:2;;;2438:6;2430;2423:22;2385:2;2483:9;2470:23;2512:18;2553:2;2545:6;2542:14;2539:2;;;2574:6;2566;2559:22;2539:2;2618:76;2686:7;2677:6;2666:9;2662:22;2618:76;:::i;:::-;2713:8;;-1:-1:-1;2592:102:1;-1:-1:-1;2801:2:1;2786:18;;2773:32;;-1:-1:-1;2817:16:1;;;2814:2;;;2851:6;2843;2836:22;2814:2;2895:78;2965:7;2954:8;2943:9;2939:24;2895:78;:::i;:::-;2992:8;;-1:-1:-1;2869:104:1;-1:-1:-1;3080:2:1;3065:18;;3052:32;;-1:-1:-1;3096:16:1;;;3093:2;;;3130:6;3122;3115:22;3093:2;;3174:78;3244:7;3233:8;3222:9;3218:24;3174:78;:::i;:::-;2375:937;;;;-1:-1:-1;2375:937:1;;-1:-1:-1;2375:937:1;;3271:8;;2375:937;-1:-1:-1;;;2375:937:1:o;3317:293::-;;3426:2;3414:9;3405:7;3401:23;3397:32;3394:2;;;3447:6;3439;3432:22;3394:2;3491:9;3478:23;3544:5;3537:13;3530:21;3523:5;3520:32;3510:2;;3571:6;3563;3556:22;3615:190;;3727:2;3715:9;3706:7;3702:23;3698:32;3695:2;;;3748:6;3740;3733:22;3695:2;-1:-1:-1;3776:23:1;;3685:120;-1:-1:-1;3685:120:1:o;3810:327::-;;;3939:2;3927:9;3918:7;3914:23;3910:32;3907:2;;;3960:6;3952;3945:22;3907:2;4001:9;3988:23;3978:33;;4061:2;4050:9;4046:18;4033:32;4074:33;4101:5;4074:33;:::i;4142:258::-;;;4271:2;4259:9;4250:7;4246:23;4242:32;4239:2;;;4292:6;4284;4277:22;4239:2;-1:-1:-1;;4320:23:1;;;4390:2;4375:18;;;4362:32;;-1:-1:-1;4229:171:1:o;4405:289::-;;4515:2;4503:9;4494:7;4490:23;4486:32;4483:2;;;4536:6;4528;4521:22;4483:2;4580:9;4567:23;4630:4;4623:5;4619:16;4612:5;4609:27;4599:2;;4655:6;4647;4640:22;4699:205;4899:3;4890:14::o;4909:203::-;-1:-1:-1;;;;;5073:32:1;;;;5055:51;;5043:2;5028:18;;5010:102::o;5117:187::-;5282:14;;5275:22;5257:41;;5245:2;5230:18;;5212:92::o;5309:603::-;;5450:2;5479;5468:9;5461:21;5511:6;5505:13;5554:6;5549:2;5538:9;5534:18;5527:34;5579:4;5592:140;5606:6;5603:1;5600:13;5592:140;;;5701:14;;;5697:23;;5691:30;5667:17;;;5686:2;5663:26;5656:66;5621:10;;5592:140;;;5750:6;5747:1;5744:13;5741:2;;;5820:4;5815:2;5806:6;5795:9;5791:22;5787:31;5780:45;5741:2;-1:-1:-1;5896:2:1;5875:15;-1:-1:-1;;5871:29:1;5856:45;;;;5903:2;5852:54;;5430:482;-1:-1:-1;;;5430:482:1:o;5917:399::-;6119:2;6101:21;;;6158:2;6138:18;;;6131:30;6197:34;6192:2;6177:18;;6170:62;-1:-1:-1;;;6263:2:1;6248:18;;6241:33;6306:3;6291:19;;6091:225::o;6321:405::-;6523:2;6505:21;;;6562:2;6542:18;;;6535:30;6601:34;6596:2;6581:18;;6574:62;-1:-1:-1;;;6667:2:1;6652:18;;6645:39;6716:3;6701:19;;6495:231::o;6731:406::-;6933:2;6915:21;;;6972:2;6952:18;;;6945:30;7011:34;7006:2;6991:18;;6984:62;-1:-1:-1;;;7077:2:1;7062:18;;7055:40;7127:3;7112:19;;6905:232::o;7142:354::-;7344:2;7326:21;;;7383:2;7363:18;;;7356:30;7422:32;7417:2;7402:18;;7395:60;7487:2;7472:18;;7316:180::o;7501:398::-;7703:2;7685:21;;;7742:2;7722:18;;;7715:30;7781:34;7776:2;7761:18;;7754:62;-1:-1:-1;;;7847:2:1;7832:18;;7825:32;7889:3;7874:19;;7675:224::o;7904:353::-;8106:2;8088:21;;;8145:2;8125:18;;;8118:30;8184:31;8179:2;8164:18;;8157:59;8248:2;8233:18;;8078:179::o;8262:344::-;8464:2;8446:21;;;8503:2;8483:18;;;8476:30;-1:-1:-1;;;8537:2:1;8522:18;;8515:50;8597:2;8582:18;;8436:170::o;8611:345::-;8813:2;8795:21;;;8852:2;8832:18;;;8825:30;-1:-1:-1;;;8886:2:1;8871:18;;8864:51;8947:2;8932:18;;8785:171::o;8961:354::-;9163:2;9145:21;;;9202:2;9182:18;;;9175:30;9241:32;9236:2;9221:18;;9214:60;9306:2;9291:18;;9135:180::o;9320:352::-;9522:2;9504:21;;;9561:2;9541:18;;;9534:30;9600;9595:2;9580:18;;9573:58;9663:2;9648:18;;9494:178::o;9677:402::-;9879:2;9861:21;;;9918:2;9898:18;;;9891:30;9957:34;9952:2;9937:18;;9930:62;-1:-1:-1;;;10023:2:1;10008:18;;10001:36;10069:3;10054:19;;9851:228::o;10084:355::-;10286:2;10268:21;;;10325:2;10305:18;;;10298:30;10364:33;10359:2;10344:18;;10337:61;10430:2;10415:18;;10258:181::o;10444:404::-;10646:2;10628:21;;;10685:2;10665:18;;;10658:30;10724:34;10719:2;10704:18;;10697:62;-1:-1:-1;;;10790:2:1;10775:18;;10768:38;10838:3;10823:19;;10618:230::o;10853:354::-;11055:2;11037:21;;;11094:2;11074:18;;;11067:30;11133:32;11128:2;11113:18;;11106:60;11198:2;11183:18;;11027:180::o;11212:401::-;11414:2;11396:21;;;11453:2;11433:18;;;11426:30;11492:34;11487:2;11472:18;;11465:62;-1:-1:-1;;;11558:2:1;11543:18;;11536:35;11603:3;11588:19;;11386:227::o;11618:400::-;11820:2;11802:21;;;11859:2;11839:18;;;11832:30;11898:34;11893:2;11878:18;;11871:62;-1:-1:-1;;;11964:2:1;11949:18;;11942:34;12008:3;11993:19;;11792:226::o;12023:344::-;12225:2;12207:21;;;12264:2;12244:18;;;12237:30;-1:-1:-1;;;12298:2:1;12283:18;;12276:50;12358:2;12343:18;;12197:170::o;12372:404::-;12574:2;12556:21;;;12613:2;12593:18;;;12586:30;12652:34;12647:2;12632:18;;12625:62;-1:-1:-1;;;12718:2:1;12703:18;;12696:38;12766:3;12751:19;;12546:230::o;12781:400::-;12983:2;12965:21;;;13022:2;13002:18;;;12995:30;13061:34;13056:2;13041:18;;13034:62;-1:-1:-1;;;13127:2:1;13112:18;;13105:34;13171:3;13156:19;;12955:226::o;13186:345::-;13388:2;13370:21;;;13427:2;13407:18;;;13400:30;-1:-1:-1;;;13461:2:1;13446:18;;13439:51;13522:2;13507:18;;13360:171::o;13536:397::-;13738:2;13720:21;;;13777:2;13757:18;;;13750:30;13816:34;13811:2;13796:18;;13789:62;-1:-1:-1;;;13882:2:1;13867:18;;13860:31;13923:3;13908:19;;13710:223::o;13938:341::-;14140:2;14122:21;;;14179:2;14159:18;;;14152:30;-1:-1:-1;;;14213:2:1;14198:18;;14191:47;14270:2;14255:18;;14112:167::o;14284:177::-;14430:25;;;14418:2;14403:18;;14385:76::o;14466:258::-;14634:25;;;14702:14;14695:22;14690:2;14675:18;;14668:50;14622:2;14607:18;;14589:135::o;14729:983::-;;15039:3;15028:9;15024:19;15070:6;15059:9;15052:25;15096:2;15134:6;15129:2;15118:9;15114:18;15107:34;15177:3;15172:2;15161:9;15157:18;15150:31;15201:6;15236;15230:13;15267:6;15259;15252:22;15305:3;15294:9;15290:19;15283:26;;15344:2;15336:6;15332:15;15318:29;;15365:4;15378:195;15392:6;15389:1;15386:13;15378:195;;;15457:13;;-1:-1:-1;;;;;15453:39:1;15441:52;;15548:15;;;;15513:12;;;;15489:1;15407:9;15378:195;;;-1:-1:-1;;;;;;;15629:32:1;;;;15624:2;15609:18;;15602:60;-1:-1:-1;;;15693:3:1;15678:19;15671:35;15590:3;15000:712;-1:-1:-1;;;15000:712:1:o;15717:319::-;15919:25;;;15975:2;15960:18;;15953:34;;;;16018:2;16003:18;;15996:34;15907:2;15892:18;;15874:162::o;16041:184::-;16213:4;16201:17;;;;16183:36;;16171:2;16156:18;;16138:87::o;16230:128::-;;16301:1;16297:6;16294:1;16291:13;16288:2;;;16307:18;;:::i;:::-;-1:-1:-1;16343:9:1;;16278:80::o;16363:217::-;;16429:1;16419:2;;-1:-1:-1;;;16454:31:1;;16508:4;16505:1;16498:15;16536:4;16461:1;16526:15;16419:2;-1:-1:-1;16565:9:1;;16409:171::o;16585:168::-;;16691:1;16687;16683:6;16679:14;16676:1;16673:21;16668:1;16661:9;16654:17;16650:45;16647:2;;;16698:18;;:::i;:::-;-1:-1:-1;16738:9:1;;16637:116::o;16758:125::-;;16826:1;16823;16820:8;16817:2;;;16831:18;;:::i;:::-;-1:-1:-1;16868:9:1;;16807:76::o;16888:380::-;16973:1;16963:12;;17020:1;17010:12;;;17031:2;;17085:4;17077:6;17073:17;17063:27;;17031:2;17138;17130:6;17127:14;17107:18;17104:38;17101:2;;;17184:10;17179:3;17175:20;17172:1;17165:31;17219:4;17216:1;17209:15;17247:4;17244:1;17237:15;17101:2;;16943:325;;;:::o;17273:135::-;;-1:-1:-1;;17333:17:1;;17330:2;;;17353:18;;:::i;:::-;-1:-1:-1;17400:1:1;17389:13;;17320:88::o;17413:127::-;17474:10;17469:3;17465:20;17462:1;17455:31;17505:4;17502:1;17495:15;17529:4;17526:1;17519:15;17545:133;-1:-1:-1;;;;;17622:31:1;;17612:42;;17602:2;;17668:1;17665;17658:12
Swarm Source
ipfs://2b00e7b5f1f701553389f2c2d216043c90510555fdd5b1d094eeffbbd0c4e0fe
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.